<template>
|
<el-dialog title="工伤案件" append-to-body :visible.sync="dialogVisible" width="50%" @close="handleClose">
|
<el-form
|
ref="occupationalForm"
|
:model="formData"
|
:rules="rules"
|
label-position="right"
|
label-width="140px"
|
>
|
<el-row>
|
<el-col :span="12">
|
<el-form-item label="姓名" prop="empName">
|
<el-input v-model="formData.empName" :disabled="empInfoDisabled">
|
<el-button v-if="!empInfoDisabled" slot="append" icon="el-icon-search" @click="$emit('select-employee')" />
|
</el-input>
|
</el-form-item>
|
<el-form-item label="身份证号码" prop="certificateNumb">
|
<el-input v-model="formData.certificateNumb" :disabled="empInfoDisabled" />
|
</el-form-item>
|
<el-form-item label="性别" prop="sex">
|
<el-select v-model="formData.sex" placeholder="请选择性别" :disabled="empInfoDisabled">
|
<el-option
|
v-for="dict in sexOptions"
|
:key="dict.dicItemCode"
|
:label="dict.dicItemName"
|
:value="dict.dicItemCode"
|
/>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="受伤时间" prop="injuredTime">
|
<el-date-picker
|
v-model="formData.injuredTime"
|
value-format="yyyy-MM-dd HH:mm:ss"
|
type="datetime"
|
placeholder="选择受伤时间"
|
/>
|
</el-form-item>
|
<el-form-item label="受伤部位" prop="injuredPart">
|
<el-input v-model="formData.injuredPart" />
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="员工编号" prop="empNumb">
|
<el-input v-model="formData.empNumb" :disabled="empInfoDisabled" />
|
</el-form-item>
|
<el-form-item label="部门(护卫点)" prop="allDeptName">
|
<el-input v-model="formData.allDeptName" :disabled="empInfoDisabled" />
|
</el-form-item>
|
<el-form-item label="岗位" prop="jobName">
|
<el-input v-model="formData.jobName" :disabled="empInfoDisabled" />
|
</el-form-item>
|
<el-form-item label="受伤地点" prop="injuredAddress">
|
<el-input v-model="formData.injuredAddress" />
|
</el-form-item>
|
<el-form-item label="工伤诊断" prop="injuredDiacrisis">
|
<el-input v-model="formData.injuredDiacrisis" />
|
</el-form-item>
|
</el-col>
|
</el-row>
|
|
<el-row>
|
<el-col :span="24">
|
<el-form-item label="受伤经过描述" prop="injuredDescribe">
|
<el-input v-model="formData.injuredDescribe" type="textarea" />
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="12">
|
<el-form-item label="就诊医院" prop="hospitalName">
|
<el-input v-model="formData.hospitalName" />
|
</el-form-item>
|
<el-form-item label="是否住院" prop="hospitalizatioFlag">
|
<el-select v-model="formData.hospitalizatioFlag" placeholder="是否住院">
|
<el-option
|
v-for="dict in hospitalizatioFlagOptions"
|
:key="dict.dicItemCode"
|
:label="dict.dicItemName"
|
:value="dict.dicItemCode"
|
/>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="报案时间" prop="reportTime">
|
<el-date-picker
|
v-model="formData.reportTime"
|
value-format="yyyy-MM-dd HH:mm:ss"
|
type="datetime"
|
placeholder="选择报案时间"
|
/>
|
</el-form-item>
|
<el-form-item label="递交人" prop="sbumitBy">
|
<el-input v-model="formData.sbumitBy" />
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="就诊科室" prop="treatmentName">
|
<el-input v-model="formData.treatmentName" />
|
</el-form-item>
|
<el-form-item label="床号" prop="bedNumb">
|
<el-input v-model="formData.bedNumb" />
|
</el-form-item>
|
<el-form-item label="递交资料时间" prop="submitTime">
|
<el-date-picker
|
v-model="formData.submitTime"
|
value-format="yyyy-MM-dd"
|
type="date"
|
placeholder="选择递交资料时间"
|
/>
|
</el-form-item>
|
<el-form-item label="人事处理时间" prop="hrDoDate">
|
<el-date-picker
|
v-model="formData.hrDoDate"
|
value-format="yyyy-MM-dd"
|
type="date"
|
placeholder="选择人事处理时间"
|
/>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
社保赔偿费用
|
<el-divider />
|
<el-row>
|
<el-col :span="12">
|
<el-form-item label="医疗总费用" prop="expensesFee">
|
<el-input v-model="formData.expensesFee" />
|
</el-form-item>
|
<el-form-item label="一次性伤残补助金" prop="socialDisability">
|
<el-input v-model="formData.socialDisability" />
|
</el-form-item>
|
<el-form-item label="一次性医疗补助金" prop="socialSubsidy">
|
<el-input v-model="formData.socialSubsidy" />
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="剔除总额">
|
<el-input v-model="formData.eliminate" />
|
</el-form-item>
|
<el-form-item label="住院伙食补贴">
|
<el-input v-model="formData.socialAllowance" />
|
</el-form-item>
|
<el-form-item label="社保赔偿总费用">
|
<el-input v-model="formData.socialCompensation" />
|
</el-form-item>
|
</el-col>
|
</el-row>
|
公司赔偿费用
|
<el-divider />
|
<el-row>
|
<el-col :span="12">
|
<el-form-item label="已赔付医药费用" prop="compensated">
|
<el-input v-model="formData.compensated" />
|
</el-form-item>
|
<el-form-item label="一次性伤残补助金">
|
<el-input v-model="formData.companylDisability" />
|
</el-form-item>
|
<el-form-item label="一次性医疗补助金">
|
<el-input v-model="formData.companySubsidy" />
|
</el-form-item>
|
<el-form-item label="一次性就业补助金">
|
<el-input v-model="formData.jobSubsidy" />
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="其他赔偿报销">
|
<el-input v-model="formData.otherCompensated" />
|
</el-form-item>
|
<el-form-item label="工伤生活补贴">
|
<el-input v-model="formData.companyAllowance" />
|
</el-form-item>
|
<el-form-item label="公司赔偿总费用" prop="companyCompensation">
|
<el-input v-model="formData.companyCompensation" />
|
</el-form-item>
|
<el-form-item label="是否结案" prop="settleStatus">
|
<el-select v-model="formData.settleStatus" placeholder="">
|
<el-option
|
v-for="dict in settleStatusOptions"
|
:key="dict.dicItemCode"
|
:label="dict.dicItemName"
|
:value="dict.dicItemCode"
|
/>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
|
<el-row>
|
<el-col :span="24">
|
<el-form-item label="备注">
|
<el-input v-model="formData.remark" type="textarea" />
|
</el-form-item>
|
</el-col>
|
</el-row>
|
</el-form>
|
<div slot="footer" class="dialog-footer">
|
<el-button type="primary" @click="handleSave">保 存</el-button>
|
<el-button v-if="isAdd && showContinueButton" type="primary" @click="handleSaveContinue">保存并继续新增</el-button>
|
</div>
|
</el-dialog>
|
</template>
|
|
<script>
|
export default {
|
name: 'WorkInjuryEdit',
|
props: {
|
visible: {
|
type: Boolean,
|
default: false
|
},
|
isAdd: {
|
type: Boolean,
|
default: true
|
},
|
editData: {
|
type: Object,
|
default: () => ({})
|
},
|
sexOptions: {
|
type: Array,
|
default: () => []
|
},
|
hospitalizatioFlagOptions: {
|
type: Array,
|
default: () => []
|
},
|
settleStatusOptions: {
|
type: Array,
|
default: () => []
|
},
|
showContinueButton: {
|
type: Boolean,
|
default: false
|
},
|
empInfoDisabled: {
|
type: Boolean,
|
default: true
|
}
|
},
|
data() {
|
return {
|
formData: this.getEmptyForm(),
|
rules: {
|
injuredTime: [{ required: true, message: '请选择受伤时间', trigger: 'blur' }],
|
injuredPart: [{ required: true, message: '请输入受伤部位', trigger: 'blur' }, {
|
max: 40,
|
message: '长度不超过40个字符',
|
trigger: 'blur'
|
}],
|
injuredDescribe: [{ required: true, message: '请输入受伤经过描述', trigger: 'blur' }, {
|
max: 512,
|
message: '长度不超过512个字符',
|
trigger: 'blur'
|
}],
|
hospitalName: [{ required: true, message: '请输入就诊医院', trigger: 'blur' }, {
|
max: 40,
|
message: '长度不超过40个字符',
|
trigger: 'blur'
|
}],
|
hospitalizatioFlag: [{ required: true, message: '请选择是否住院', trigger: 'blur' }],
|
innsureFee: [{ required: true, message: '请输入保险赔付费用', trigger: 'blur' }],
|
settleDate: [{ required: true, message: '请选择案结时间', trigger: 'change' }],
|
expensesFee: [{ required: true, message: '请输入医疗总费用', trigger: 'blur' }],
|
settleStatus: [{ required: true, message: '请选择结案状态', trigger: 'change' }],
|
injuredAddress: [{ required: true, message: '请输入受伤地点', trigger: 'blur' }],
|
compensated: [{ required: true, message: '请输入已赔付医药费用', trigger: 'blur' }],
|
companyCompensation: [{ required: true, message: '请输入公司赔偿总费用', trigger: 'blur' }]
|
}
|
}
|
},
|
computed: {
|
dialogVisible: {
|
get() {
|
return this.visible
|
},
|
set(val) {
|
this.$emit('update:visible', val)
|
}
|
}
|
},
|
watch: {
|
visible(val) {
|
if (val && !this.isAdd && this.editData) {
|
const data = { ...this.editData }
|
data.hospitalizatioFlag = '' + data.hospitalizatioFlag
|
data.settleStatus = '' + data.settleStatus
|
this.formData = { ...this.getEmptyForm(), ...data }
|
} else if (val && this.isAdd) {
|
this.formData = { ...this.getEmptyForm(), ...this.editData }
|
}
|
},
|
editData: {
|
deep: true,
|
handler(val) {
|
if (this.visible && val) {
|
this.formData = { ...this.formData, ...val }
|
}
|
}
|
}
|
},
|
methods: {
|
getEmptyForm() {
|
return {
|
occupationalId: '',
|
empId: '',
|
empNumb: '',
|
empName: '',
|
sex: '',
|
certificateNumb: '',
|
deptId: '',
|
deptName: '',
|
allDeptName: '',
|
JobId: '',
|
jobName: '',
|
injuredTime: '',
|
injuredAddress: '',
|
injuredPart: '',
|
injuredDiacrisis: '',
|
injuredDescribe: '',
|
hospitalName: '',
|
treatmentName: '',
|
hospitalizatioFlag: '',
|
bedNumb: '',
|
reportTime: '',
|
submitTime: '',
|
sbumitBy: '',
|
hrDoDate: '',
|
expensesFee: '',
|
eliminate: '',
|
socialDisability: '',
|
socialAllowance: '',
|
socialSubsidy: '',
|
socialCompensation: '',
|
compensated: '',
|
otherCompensated: '',
|
companylDisability: '',
|
companyAllowance: '',
|
companySubsidy: '',
|
companyCompensation: '',
|
jobSubsidy: '',
|
settleStatus: '',
|
delFlag: '2',
|
empStatus: 0,
|
version: '',
|
remark: ''
|
}
|
},
|
handleSave() {
|
this.$refs.occupationalForm.validate((valid) => {
|
if (valid) {
|
if (this.isAdd) {
|
this.formData.delFlag = '2'
|
this.$post('hr/empOccupational', { ...this.formData }).then(() => {
|
this.$message({
|
message: this.$t('tips.createSuccess'),
|
type: 'success'
|
})
|
this.$emit('success')
|
this.handleClose()
|
})
|
} else {
|
this.$put('hr/empOccupational', { ...this.formData }).then(() => {
|
this.$message({
|
message: this.$t('tips.updateSuccess'),
|
type: 'success'
|
})
|
this.$emit('success')
|
this.handleClose()
|
})
|
}
|
}
|
})
|
},
|
handleSaveContinue() {
|
this.$refs.occupationalForm.validate((valid) => {
|
if (valid && this.isAdd) {
|
this.formData.delFlag = '2'
|
this.$post('hr/empOccupational', { ...this.formData }).then(() => {
|
this.$message({
|
message: this.$t('tips.createSuccess'),
|
type: 'success'
|
})
|
this.$emit('continue')
|
})
|
}
|
})
|
},
|
handleClose() {
|
this.$refs.occupationalForm.resetFields()
|
this.formData = this.getEmptyForm()
|
this.dialogVisible = false
|
}
|
}
|
}
|
</script>
|