luoyb
2021-01-31 ece367bce18895a76a9236e39f4be2f557308a77
feat(信息录入): 体检信息

完成体检基本增、删、改功能(缺少员工选择功能)
1个文件已修改
390 ■■■■ 已修改文件
src/views/user/Informationinput.vue 390 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/user/Informationinput.vue
@@ -150,12 +150,7 @@
            width="180"
          />
        </el-table>
        <el-table
          v-show="showArr[1].show"
          ref="workExperienceTable"
          :data="workExperienceData"
          style="width: 100%"
        >
        <el-table v-show="showArr[1].show" ref="workExperienceTable" :data="workExperienceData" style="width: 100%">
          <el-table-column
            type="selection"
            width="55"
@@ -177,86 +172,34 @@
          <el-table-column prop="endDate" label="结束日期" width="180" />
          <el-table-column prop="jobContent" label="主要工作内容" width="180" />
        </el-table>
        <el-table
          v-show="showArr[2].show"
          :data="physicalData"
          style="width: 100%"
        >
        <el-table v-show="showArr[2].show" ref="physicalExamTable" :data="physicalExamData" style="width: 100%">
          <el-table-column
            type="selection"
            width="55"
          />
          <el-table-column
            fixed="left"
            label="操作"
            width="100"
          >
            <template>
              <el-button type="text" size="small">编辑</el-button>
            <template slot-scope="scope">
              <el-button type="text" size="small" @click="editPhysicalExam(scope.row)">编辑</el-button>
            </template>
          </el-table-column>
          <el-table-column
            prop="userNumb"
            label="员工编号"
            width="180"
          />
          <el-table-column
            prop="name"
            label="姓名"
            width="180"
          />
          <el-table-column
            prop="sex"
            label="性别"
            width="180"
          />
          <el-table-column
            prop="idNumber"
            label="身份证号码"
            width="180"
          />
          <el-table-column
            prop="hospital"
            label="体检医院"
            width="180"
          />
          <el-table-column
            prop="physicalDate"
            label="体检日期"
            width="180"
          />
          <el-table-column
            prop="physicalType"
            label="体检类型"
            width="180"
          />
          <el-table-column
            prop="bloodPressure"
            label="血压"
            width="180"
          />
          <el-table-column
            prop="transaminase"
            label="转氨酶"
            width="180"
          />
          <el-table-column
            prop="ecg"
            label="心电图"
            width="180"
          />
          <el-table-column
            prop="conclusion"
            label="体检结论"
            width="180"
          />
          <el-table-column
            prop="reviewRecords"
            label="复查记录"
            width="180"
          />
          <el-table-column
            prop="remark"
            label="备注"
            width="240"
          />
          <el-table-column prop="empNumb" label="员工编号" width="180" />
          <el-table-column prop="deptName" label="护卫点" width="180" />
          <el-table-column prop="empName" label="员工姓名" width="180" />
          <el-table-column prop="certificateNumb" label="身份证号码" width="180" />
          <el-table-column prop="jobName" label="岗位" width="180" />
          <el-table-column prop="hospital" label="体检医院" width="180" />
          <el-table-column prop="physicalExamDate" label="体检日期" width="180" />
          <el-table-column prop="physicalExamType" label="体检类型" width="180" />
          <el-table-column prop="bloodPressure" label="血压" width="180" />
          <el-table-column prop="transaminase" label="转氨酶" width="180" />
          <el-table-column prop="ecg" label="心电图" width="180" />
          <el-table-column prop="conclusion" label="体检结论" width="180" />
          <el-table-column prop="reviewRecord" label="复查记录" width="180" />
          <el-table-column prop="remark" label="备注" width="180" />
        </el-table>
        <el-table
          v-show="showArr[3].show"
@@ -1067,52 +1010,55 @@
    </el-dialog>
    <el-dialog title="体检信息" :visible.sync="dialogshowArr[2].show" width="50%">
      <el-form :model="physicalForm" label-position="right" label-width="120px">
      <el-form :model="physicalExamForm" label-position="right" label-width="120px">
        <el-row>
          <el-col :span="12">
            <el-form-item label="员工编号">
              <el-input v-model="physicalForm.name" />
              <el-input v-model="physicalExamForm.empNumb" />
            </el-form-item>
            <el-form-item label="身份证号码">
              <el-input v-model="physicalForm.name" />
              <el-input v-model="physicalExamForm.certificateNumb" />
            </el-form-item>
            <el-form-item label="部门名称"><el-input v-model="physicalExamForm.deptName" /></el-form-item>
            <el-form-item label="体检医院">
              <el-input v-model="physicalForm.name" />
              <el-input v-model="physicalExamForm.hospital" />
            </el-form-item>
            <el-form-item label="体检类型" prop="region">
              <el-select v-model="physicalForm.name" placeholder="请选择体检类型">
              <el-select v-model="physicalExamForm.physicalExamType" placeholder="请选择体检类型">
                <el-option label="普通体检" value="1" />
                <el-option label="员工体检" value="2" />
              </el-select>
            </el-form-item>
            <el-form-item label="转氨酶">
              <el-input v-model="physicalForm.name" />
              <el-input v-model="physicalExamForm.transaminase" />
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="姓名">
              <el-input v-model="physicalForm.name" />
              <el-input v-model="physicalExamForm.empName" />
            </el-form-item>
            <el-form-item label="性别" prop="region">
              <el-select v-model="physicalForm.name" placeholder="请选择性别">
              <el-select v-model="physicalExamForm.sex" placeholder="请选择性别">
                <el-option label="男" value="1" />
                <el-option label="女" value="2" />
              </el-select>
            </el-form-item>
            <el-form-item label="岗位名称"><el-input v-model="physicalExamForm.jobName" /></el-form-item>
            <el-form-item label="体检日期">
              <el-date-picker
                v-model="physicalForm.name"
                v-model="physicalExamForm.physicalExamDate"
                value-format="yyyy-MM-dd"
                type="date"
                placeholder="选择体检日期"
              />
            </el-form-item>
            <el-form-item label="血压">
              <el-input v-model="physicalForm.name" />
              <el-input v-model="physicalExamForm.bloodPressure" />
            </el-form-item>
            <el-form-item label="心电图" prop="region">
              <el-select v-model="physicalForm.name" placeholder="请选择心电图">
              <el-select v-model="physicalExamForm.name" placeholder="ecg">
                <el-option label="正常" value="1" />
                <el-option label="异常" value="2" />
                <el-option label="异常" value="0" />
              </el-select>
            </el-form-item>
          </el-col>
@@ -1120,24 +1066,25 @@
        <el-row>
          <el-col :span="24">
            <el-form-item label="体检结论">
              <el-input v-model="physicalForm.name" />
              <el-input v-model="physicalExamForm.conclusion" />
            </el-form-item>
            <el-form-item label="复查记录">
              <el-input v-model="physicalForm.name" />
              <el-input v-model="physicalExamForm.reviewRecord" />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="24">
            <el-form-item label="备注">
              <el-input v-model="physicalForm.name" type="textarea" />
              <el-input v-model="physicalExamForm.remark" type="textarea" />
            </el-form-item>
          </el-col>
        </el-row>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="putPhysicalExam()">保 存</el-button>
        <el-button type="primary" @click="putPhysicalExamContinue()">保存并继续新增</el-button>
        <el-button @click="dialogIsShow()">取 消</el-button>
        <el-button type="primary" @click="dialogIsShow()">确 定</el-button>
      </div>
    </el-dialog>
@@ -1966,49 +1913,7 @@
      // eslint-disable-next-line no-undef
      showArr: [{ show: true }, { show: false }, { show: false }, { show: false }, { show: false }, { show: false }, { show: false }, { show: false }, { show: false }, { show: false }, { show: false }, { show: false }, { show: false }, { show: false }],
      isAdd: false,
      physicalData: [{
        name: '王小虎',
        userNumb: '12321222',
        sex: '女',
        idNumber: '430422199823222222',
        hospital: '宝安中心医院',
        physicalDate: '2020-01-01',
        physicalType: '员工体检',
        bloodPressure: '80/120',
        transaminase: '85',
        ecg: '正常',
        conclusion: '血压偏高',
        reviewRecords: '2019-02-05',
        remark: ''
      }, {
        name: '王小虎',
        userNumb: '12321222',
        sex: '女',
        idNumber: '430422199823222222',
        hospital: '宝安中心医院',
        physicalDate: '2020-01-01',
        physicalType: '员工体检',
        bloodPressure: '80/120',
        transaminase: '85',
        ecg: '正常',
        conclusion: '血压偏高',
        reviewRecords: '2019-02-05',
        remark: ''
      }, {
        name: '王小虎',
        userNumb: '12321222',
        sex: '女',
        idNumber: '430422199823222222',
        hospital: '宝安中心医院',
        physicalDate: '2020-01-01',
        physicalType: '员工体检',
        bloodPressure: '80/120',
        transaminase: '85',
        ecg: '正常',
        conclusion: '血压偏高',
        reviewRecords: '2019-02-05',
        remark: ''
      }],
      physicalExamData: [],
      workExperienceData: [],
      basicInformationData: [],
      contractData: [],
@@ -2538,20 +2443,32 @@
        absenteeismDay: '',
        remark: ''
      },
      physicalForm: {
        name: '',
        userNumb: '',
      physicalExamForm: {
        physicalExamId: '',
        empId: '',
        empNumb: '',
        empName: '',
        certificateNumb: '',
        sex: '',
        idNumber: '',
        deptId: '',
        deptName: '',
        JobId: '',
        jobName: '',
        hospital: '',
        physicalDate: '',
        physicalType: '',
        physicalExamDate: '',
        physicalExamType: '',
        bloodPressure: '',
        transaminase: '',
        ecg: '',
        conclusion: '',
        reviewRecords: '',
        remark: ''
        reviewRecord: '',
        remark: '',
        createTime: '',
        creator: '',
        modifyTime: '',
        modifier: '',
        delFlag: '',
        version: ''
      },
      workExperienceForm: {
        workExperienceId: '',
@@ -2637,6 +2554,7 @@
    this.getBadRecord()
    this.selectEmpBase()
    this.selectWorkExperience()
    this.selectPhysicalExam()
  },
  methods: {
    dialogIsShow() {
@@ -2654,6 +2572,60 @@
        this.showArr[this.thisShowIndex].show = false
      }
      this.thisShowIndex = index
    },
    butDelete() {
      switch (this.thisShowIndex) {
        case 1:
          var selected = this.$refs.workExperienceTable.selection
          if (selected.length > 0) {
            const delIds = []
            selected.forEach((j) => {
              delIds.push(j.workExperienceId)
            })
            this.$delete(`hr/empWorkExperience/` + delIds).then(() => {
              this.$message({
                message: this.$t('tips.deleteSuccess'),
                type: 'success'
              })
              this.selectWorkExperience()
            })
          }
          break
        case 2:
          // eslint-disable-next-line no-redeclare
          var selected = this.$refs.physicalExamTable.selection
          if (selected.length > 0) {
            const delIds = []
            selected.forEach((j) => {
              delIds.push(j.physicalExamId)
            })
            this.$delete(`hr/empPhysicalExam/` + delIds).then(() => {
              this.$message({
                message: this.$t('tips.deleteSuccess'),
                type: 'success'
              })
              this.selectPhysicalExam()
            })
          }
          break
        case 12:
          // eslint-disable-next-line no-redeclare
          var selected = this.$refs.badRecordTable.selection
          if (selected.length > 0) {
            const badIds = []
            selected.forEach((j) => {
              badIds.push(j.badId)
            })
            this.$delete(`hr/empBadRecord/` + badIds).then(() => {
              this.$message({
                message: this.$t('tips.deleteSuccess'),
                type: 'success'
              })
              this.getBadRecord()
            })
          }
          break
      }
    },
    getBadRecord() {
      this.$get('hr/empBadRecord/list').then((r) => {
@@ -2709,43 +2681,6 @@
      this.badRecordFrom.creator = row.creator
      this.badRecordFrom.remark = row.remark
      this.dialogshowArr[12].show = true
    },
    butDelete() {
      switch (this.thisShowIndex) {
        case 1:
          var selected = this.$refs.workExperienceTable.selection
          if (selected.length > 0) {
            const delIds = []
            selected.forEach((j) => {
              delIds.push(j.workExperienceId)
            })
            this.$delete(`hr/empWorkExperience/` + delIds).then(() => {
              this.$message({
                message: this.$t('tips.deleteSuccess'),
                type: 'success'
              })
              this.selectWorkExperience()
            })
          }
          break
        case 12:
          // eslint-disable-next-line no-redeclare
          var selected = this.$refs.badRecordTable.selection
          if (selected.length > 0) {
            const badIds = []
            selected.forEach((j) => {
              badIds.push(j.badId)
            })
            this.$delete(`hr/empBadRecord/` + badIds).then(() => {
              this.$message({
                message: this.$t('tips.deleteSuccess'),
                type: 'success'
              })
              this.getBadRecord()
            })
          }
          break
      }
    },
    selectEmpBase() {
      this.$get('hr/empBaseInfo/list').then((r) => {
@@ -2877,6 +2812,95 @@
      this.workExperienceForm.delFlag = row.delFlag
      this.workExperienceForm.version = row.version
      this.dialogshowArr[1].show = true
    },
    selectPhysicalExam() {
      this.$get('hr/empPhysicalExam/list').then((r) => {
        this.physicalExamData = r.data.data.rows
      }).catch((error) => {
        console.error(error)
        this.$message({
          message: this.$t('tips.getDataFail'),
          type: 'error'
        })
      })
    },
    putPhysicalExam() {
      if (this.isAdd) {
        this.$post('hr/empPhysicalExam', { ...this.physicalExamForm }).then(() => {
          this.buttonLoading = false
          this.$message({
            message: this.$t('tips.createSuccess'),
            type: 'success'
          })
          this.cleanPhysicalExam()
          this.selectPhysicalExam()
        })
      } else {
        this.$put('hr/empPhysicalExam', { ...this.physicalExamForm }).then(() => {
          this.$message({
            message: this.$t('tips.updateSuccess'),
            type: 'success'
          })
          this.$emit('success')
          this.cleanPhysicalExam()
          this.selectPhysicalExam()
        })
      }
      this.dialogIsShow()
    },
    putPhysicalExamContinue() {
      if (this.isAdd) {
        this.$post('hr/empPhysicalExam', { ...this.physicalExamForm }).then(() => {
          this.buttonLoading = false
          this.$message({
            message: this.$t('tips.createSuccess'),
            type: 'success'
          })
          this.cleanPhysicalExam()
          this.selectPhysicalExam()
        })
      }
    },
    cleanPhysicalExam() {
      this.physicalExamForm.hospital = ''
      this.physicalExamForm.physicalExamDate = ''
      this.physicalExamForm.physicalExamType = ''
      this.physicalExamForm.bloodPressure = ''
      this.physicalExamForm.transaminase = ''
      this.physicalExamForm.ecg = ''
      this.physicalExamForm.conclusion = ''
      this.physicalExamForm.reviewRecord = ''
      this.physicalExamForm.remark = ''
    },
    editPhysicalExam(row) {
      this.isAdd = false
      this.physicalExamForm.physicalExamId = row.physicalExamId
      this.physicalExamForm.empId = row.empId
      this.physicalExamForm.empNumb = row.empNumb
      this.physicalExamForm.empName = row.empName
      this.physicalExamForm.certificateNumb = row.certificateNumb
      this.physicalExamForm.sex = row.sex
      this.physicalExamForm.deptId = row.deptId
      this.physicalExamForm.deptName = row.deptName
      this.physicalExamForm.JobId = row.JobId
      this.physicalExamForm.jobName = row.jobName
      this.physicalExamForm.hospital = row.hospital
      this.physicalExamForm.physicalExamDate = row.physicalExamDate
      this.physicalExamForm.physicalExamType = row.physicalExamType
      this.physicalExamForm.bloodPressure = row.bloodPressure
      this.physicalExamForm.transaminase = row.transaminase
      this.physicalExamForm.ecg = row.ecg
      this.physicalExamForm.conclusion = row.conclusion
      this.physicalExamForm.reviewRecord = row.reviewRecord
      this.physicalExamForm.remark = row.remark
      this.physicalExamForm.createTime = row.createTime
      this.physicalExamForm.creator = row.creator
      this.physicalExamForm.modifyTime = row.modifyTime
      this.physicalExamForm.modifier = row.modifier
      this.physicalExamForm.delFlag = row.delFlag
      this.physicalExamForm.version = row.version
      this.dialogshowArr[2].show = true
    }
  }
}