Tcsm
2023-03-30 ec611c9a2f5160b33505458a096c84762f6be02e
3.30提交
1个文件已修改
439 ■■■■■ 已修改文件
ruoyi-ui/src/views/self/index.vue 439 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/self/index.vue
@@ -9,10 +9,198 @@
    <h1 style="font-size:21px">个人简历</h1>
    <el-divider />
    <h2 style="font-size:16px">基本信息</h2>
    <el-col :span="8">
      
    <el-container>
      <div style="padding-left:30px">
        <el-container>
          <el-col>
            <el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="60px" label-position="left">
              <el-row :span="6">
                <el-form-item label="姓名" prop="nickName">
                  <el-input v-model="formData.nickName" placeholder="请输入姓名" clearable :style="{width: '100%'}">
                  </el-input>
                </el-form-item>
              </el-row>
              <el-row :span="6">
                <el-form-item label="曾用名" prop="oldName">
                  <el-input v-model="formData.oldName" placeholder="请输入曾用名" clearable :style="{width: '100%'}">
                  </el-input>
                </el-form-item>
              </el-row>
              <el-row :span="8">
                <el-form-item label="身份证号" prop="field107">
                  <el-input v-model="formData.field107" placeholder="请输入身份证号" clearable :style="{width: '100%'}">
                  </el-input>
                </el-form-item>
              </el-row>
            </el-form>
    </el-col>
        </el-container>
      </div>
      <div style="padding-left:70px">
        <el-container>
          <el-col >
            <el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="60px" label-position="left">
              <el-row :span="6">
                <el-form-item label="性别" prop="sex">
                  <el-input v-model="formData.sex" placeholder="请输入性别" clearable :style="{width: '100%'}">
                  </el-input>
                </el-form-item>
              </el-row>
              <el-row :span="6">
                <el-form-item label="民族" prop="field105">
                  <el-input v-model="formData.field105" placeholder="请输入民族" clearable :style="{width: '100%'}">
                  </el-input>
                </el-form-item>
              </el-row>
              <el-row :span="8">
                <el-form-item label="联系方式" prop="field107">
                  <el-input v-model="formData.field107" placeholder="请输入联系方式" clearable :style="{width: '100%'}">
                  </el-input>
                </el-form-item>
              </el-row>
            </el-form>
          </el-col>
        </el-container>
      </div>
      <div style="padding-left:70px">
        <el-container>
          <el-col>
            <el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="60px" label-position="left">
              <el-row :span="6">
                <el-form-item label="国籍" prop="nationality">
                  <el-input v-model="formData.nationality" placeholder="请输入国籍" clearable :style="{width: '100%'}">
                  </el-input>
                </el-form-item>
              </el-row>
              <el-row :span="6">
                <el-form-item label="婚姻状况" prop="maritalStatus">
                  <el-input v-model="formData.maritalStatus" placeholder="请输入婚姻状况" clearable :style="{width: '100%'}">
                  </el-input>
                </el-form-item>
              </el-row>
            </el-form>
          </el-col>
        </el-container>
      </div>
      <div style="padding-left:70px;padding-top:30px">
        <el-row :gutter="6" >
          <el-upload ref="ref1"
                     action=""
                     :file-list="fileList"
                     list-type="picture-card"
                     accept="image/*"
                     :auto-upload="false"
                     :multiple="false"
                     :limit="1">
            <i class="el-icon-plus"></i>
          </el-upload>
        </el-row>
      </div>
      <div style="padding-left:50px;padding-top:30px"  >
        <el-container>
          <el-row :span="2" style="flex-direction: column;">
            <el-button type="primary" @click="submitForm">编辑</el-button>
            <br>
            <el-button type="primary" @click="submitForm">导入</el-button>
          </el-row>
        </el-container>
      </div>
    </el-container>
    <el-container>
      <div style="padding-left:30px">
        <el-container>
          <el-col>
            <el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="100px" label-position="left">
              <el-row :span="15">
                <el-form-item label="户籍地址" prop="field108">
                  <el-input v-model="formData.field108" placeholder="请输入户籍地址" clearable :style="{width: '100%'}">
                  </el-input>
                </el-form-item>
              </el-row>
              <el-row :span="15">
                <el-form-item label="常住地址" prop="field110">
                  <el-input v-model="formData.field110" placeholder="请输入常住地址" clearable :style="{width: '100%'}">
                  </el-input>
                </el-form-item>
              </el-row>
              <el-row :span="15">
                <el-form-item label="单位及职务职称" prop="field112">
                  <el-input v-model="formData.field112" placeholder="请输入单位及职务职称" clearable :style="{width: '100%'}">
                  </el-input>
                </el-form-item>
              </el-row>
            </el-form>
          </el-col>
        </el-container>
      </div>
      <div style="padding-left:30px">
        <el-container>
          <el-col>
            <el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="100px" label-position="left">
              <el-row :span="12">
                <el-form-item label="户籍地公安机关" prop="field109">
                  <el-input v-model="formData.field109" placeholder="请输入户籍地公安机关" clearable :style="{width: '100%'}">
                  </el-input>
                </el-form-item>
              </el-row>
              <el-row :span="12">
                <el-form-item label="常住地公安机关" prop="field111">
                  <el-input v-model="formData.field111" placeholder="请输入常住地公安机关" clearable :style="{width: '100%'}">
                  </el-input>
                </el-form-item>
              </el-row>
            </el-form>
          </el-col>
        </el-container>
      </div>
    </el-container>
    <el-container>
      <div style="width:100%"><h2 style="font-size:15px" >主要学习及工作经历</h2></div>
      <el-button type="primary" icon="el-icon-edit" round></el-button>
    <el-button type="primary" icon="el-icon-delete" round></el-button>
    </el-container>
    <el-table v-loading="loading" :data="individualList" @selection-change="handleSelectionChange">
      <el-table-column label="起止日期" prop="time" sortable width="350" align="center" />
      <el-table-column label="主要学习经历、工作单位及任职情况" prop="circumstance" sortable width="400" align="center" />
      <el-table-column label="证明人" prop="witness" sortable width="350" align="center" />
      <el-table-column label="删除" align="center" class-name="small-padding fixed-width" sortable width="100">
        <template slot-scope="scope" v-if="scope.row.roleId !== 1">
          <el-button
            size="mini"
            type="text"
            icon="el-icon-edit"
            @click="handleUpdate(scope.row)"
            v-hasPermi="['system:role:edit']"
          >修改</el-button>
          <el-button
            size="mini"
            type="text"
            icon="el-icon-delete"
            @click="handleDelete(scope.row)"
            v-hasPermi="['system:role:remove']"
          >删除</el-button>
          <el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)" v-hasPermi="['system:role:edit']">
            <el-button size="mini" type="text" icon="el-icon-d-arrow-right"  @click="handleCheck(scope.row)">查看详情</el-button>
          </el-dropdown>
        </template>
      </el-table-column>
    </el-table>
    <pagination
      v-show="total>0"
      :total="total"
      :page.sync="queryParams.pageNum"
      :limit.sync="queryParams.pageSize"
      @pagination="getList"
    />
  </div>
</template>
@@ -22,13 +210,254 @@
export default {
  name: 'index',
  components: {},
  props: [],
  data() {
    return {
      input: ''
    }
  }
      input: '',
      filelist: [],
      // 遮罩层
      disabled: false,
      loading: true,
      // formData:[],
      // 选中数组
      ids: [],
      // 非单个禁用
      single: true,
      // 非多个禁用
      multiple: true,
      // 显示搜索条件
      showSearch: true,
      // 总条数
      total: 0,
      // 资产表格数据
      individualList: [],
      // 弹出层标题
      title: "",
      // 是否显示弹出层
      open: false,
      // 是否显示弹出层(数据权限)
      openDataScope: false,
      menuExpand: false,
      menuNodeAll: false,
      deptExpand: true,
      deptNodeAll: false,
      // 日期范围
      dateRange: [],
      // 数据范围选项
      fot:[".jpg",".jif"],
      fileList:[
      ],
      fileListOther:[
      ],
      dsb:true,
      btn:false,
      formData: {
        nickName: undefined,
        sex: undefined,
        nationality: undefined,
        oldName: undefined,
        field105: undefined,
        maritalStatus: undefined,
        field107: undefined,
        field108: undefined,
        field109: undefined,
        field110: undefined,
        field111: undefined,
        field112: undefined,
      },
      rules: {
        nickName: [{
          required: true,
          message: '请输入姓名',
          trigger: 'blur'
        }],
        sex: [{
          required: true,
          message: '请输入性别',
          trigger: 'blur'
        }],
        nationality: [{
          required: true,
          message: '请输入国籍',
          trigger: 'blur'
        }],
        oldName: [{
          required: true,
          message: '请输入曾用名',
          trigger: 'blur'
        }],
        field105: [{
          required: true,
          message: '请输入民族',
          trigger: 'blur'
        }],
        maritalStatus: [{
          // required: true,
          message: '请输入婚姻状况',
          trigger: 'blur'
        }],
        field107: [{
          // required: true,
          message: '请输入联系方式',
          trigger: 'blur'
        }],
        field108: [{
          // required: true,
          message: '请输入户籍地址',
          trigger: 'blur'
        }],
        field109: [{
          // required: true,
          message: '请输入户籍地公安机关',
          trigger: 'blur'
        }],
        field110: [{
          // required: true,
          message: '请输入常住地址',
          trigger: 'blur'
        }],
        field111: [{
          // required: true,
          message: '请输入常住地公安机关',
          trigger: 'blur'
        }],
        field112: [{
          // required: true,
          message: '请输入单位及职务职称',
          trigger: 'blur'
        }],
      },
      // 菜单列表
      menuOptions: [],
      // 部门列表
      deptOptions: [],
      // 查询参数
      queryParams: {
        pageNum: 1,
        pageSize: 5,
        time:undefined,
        circumstance:undefined,
        witness:undefined,
        createTime:undefined
      },
    }
  },
  computed: {},
  watch: {},
  created() {
    this.getList();
    // this.getCateInfor()
  },
  mounted() {},
  methods: {
    submitForm() {
      this.$refs['elForm'].validate(valid => {
        if (!valid) return
        // TODO 提交表单
      })
    },
    resetForm() {
      this.$refs['elForm'].resetFields()
    },
    fillFormData(){
      let formData = new FormData();
      let photo = this.$refs['ref1'].uploadFiles[0];
      if(photo===undefined){
        this.$message.error("请选择照片");
        return false;
      }
      if(photo!==undefined){
        formData.append('照片', photo.raw);//根据后端需要的参数进行相应更改,大多是文件格式
      }
      return formData;
    },
    dialogConfirm() {
      let formData=this.fillFormData();
      if(this.dialogMode ==='edit'){//dialogMode用于判断当前时添加还是编辑
        this.api.update(formData).then(res => {//调用修改接口
          if (res.data.code == "OK") {
            this.$message({
              type: "success",
              message: "修改成功!",
              duration:5000
            });
            this.fileList=[];
          } else {
            this.$message.error(res.data.message);
          }
        },()=>{
          this.$message.error("修改失败");
        }).finally(()=>{
        });
      }else{
        this.api.insert(formData).then(res => {//添加接口
          if (res.data.code == "OK") {
            this.$message({
              type: "success",
              message: "新建成功!",
              duration:5000
            });
            this.fileList=[];
          } else {
            this.$message.error(res.data.message);
          }
        },()=>{
          this.$message.error("新建失败");
        }).finally(()=>{
        });
      }
    },
    //点击编辑时图片回显
    edit(info){//info=>后台接口返回的数据
      let url=this.baseUrl+info.photo//url的地址根据项目实际需要,info.photo=>图片路径,this.baseUrl=>上传的网络地址
      this.fileList=[];
      this.fileList.push({
        'url': url
      })
      this.dialogMode='edit';//设置为编辑
    },
    onCreateNew(){
      this.fileList=[];
      this.dialogMode='create';//设置为添加
    },
    /** 个人信息列表 */
    getList() {
      this.loading = true;
      // console.log(this.queryParams)
      //  listProperty(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
      listIndividual(this.queryParams).then(response => {
          //  alert(123)
          //   console.log(response.data)
          this.individualList = response.data.data;
          this.total = response.data.total;
          this.loading = false;
        }
      );
    },
    /** 删除按钮操作 */
    handleDelete(row) {
      const Ids = row.id || this.ids;
      this.$modal.confirm('是否确认删除编号为"' + Ids + '"的数据项?').then(function() {
        return delProperty(Ids);
      }).then(() => {
        this.getList();
        this.$modal.msgSuccess("删除成功");
      }).catch(() => {});
    },
    /** 查看详细信息 */
    handleCheck(row){
      const id = row.id;
      this.$router.push("/family/note1/propertyInfo/" + id);
    },
  }
}
</script>