13 changed files with 1424 additions and 29 deletions
-
1src/components/doctorCheck/CheckItemList.vue
-
146src/components/occDisease/OccDisease.vue
-
343src/components/occDisease/OccDiseaseBase.vue
-
241src/components/occDisease/OccDiseaseConclusion.vue
-
209src/components/occDisease/OccDiseaseHistory.vue
-
172src/components/occDisease/OccDiseasePoison.vue
-
164src/components/occDisease/OccDiseaseSymptom.vue
-
25src/components/patientRegister/PatientRegisterEdit.vue
-
1src/components/patientRegister/PatientRegisterList.vue
-
44src/components/report/BtnReport.vue
-
30src/components/report/PatientRegisterListNobtn.vue
-
31src/components/sumDoctorCheck/ButtonList.vue
-
34src/store/index.js
@ -0,0 +1,146 @@ |
|||||
|
<template> |
||||
|
<div style="margin-top: -15px;"> |
||||
|
<el-tabs v-model="tabChoosed" style="height: 510px;"> |
||||
|
<el-tab-pane label="基本信息" name="1"> |
||||
|
<OccDiseaseBase :patientRegisterId="patientRegisterId" /> |
||||
|
</el-tab-pane> |
||||
|
|
||||
|
<el-tab-pane label="毒害因素" name="2"> |
||||
|
<OccDiseasePoison :patientRegisterId="patientRegisterId" /> |
||||
|
</el-tab-pane> |
||||
|
|
||||
|
<el-tab-pane label="职业史" name="3"> |
||||
|
<OccDiseaseHistory :patientRegisterId="patientRegisterId" /> |
||||
|
</el-tab-pane> |
||||
|
<el-tab-pane label="症状" name="4"> |
||||
|
<OccDiseaseSymptom :patientRegisterId="patientRegisterId" /> |
||||
|
</el-tab-pane> |
||||
|
<el-tab-pane label="体征" name="5"> |
||||
|
<CheckDetails :patientRegisterId="patientRegisterId" :tabChoosed="'2'" /> |
||||
|
</el-tab-pane> |
||||
|
<el-tab-pane label="检查结论" name="6"> |
||||
|
<OccDiseaseConclusion :patientRegisterId="patientRegisterId" /> |
||||
|
</el-tab-pane> |
||||
|
</el-tabs> |
||||
|
<div style="display: flex;justify-content: space-between;"> |
||||
|
<div></div> |
||||
|
<div> |
||||
|
<el-button class="commonbutton" @click="btnOk">确定</el-button> |
||||
|
<el-button class="commonbutton" @click="btnClose">关闭</el-button> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</template> |
||||
|
<script> |
||||
|
import { mapState } from "vuex"; |
||||
|
import { getapi, postapi, putapi, deletapi } from "@/api/api"; |
||||
|
|
||||
|
import OccDiseaseBase from "./OccDiseaseBase.vue"; |
||||
|
import OccDiseasePoison from "./OccDiseasePoison.vue"; |
||||
|
import OccDiseaseHistory from "./OccDiseaseHistory.vue"; |
||||
|
import OccDiseaseSymptom from "./OccDiseaseSymptom.vue"; |
||||
|
import CheckDetails from "../../components/sumDoctorCheck/CheckDetails.vue"; |
||||
|
import OccDiseaseConclusion from "./OccDiseaseConclusion.vue"; |
||||
|
|
||||
|
export default { |
||||
|
components: { |
||||
|
OccDiseaseBase, |
||||
|
OccDiseasePoison, |
||||
|
OccDiseaseHistory, |
||||
|
OccDiseaseSymptom, |
||||
|
CheckDetails, |
||||
|
OccDiseaseConclusion |
||||
|
}, |
||||
|
props: ["patientRegisterId"], |
||||
|
data() { |
||||
|
return { |
||||
|
tabChoosed: "1", |
||||
|
}; |
||||
|
}, |
||||
|
|
||||
|
created() { |
||||
|
if (this.$route.query.patient_register) { |
||||
|
this.dataTransOpts.tableS.patient_register = this.$route.query.patient_register |
||||
|
} else { |
||||
|
this.dataTransOpts.tableS.patient_register = { id: '', patientRegisterNo: '' } |
||||
|
this.dataTransOpts.tableS.register_check = { id: '' } |
||||
|
} |
||||
|
}, |
||||
|
|
||||
|
//挂载完成 |
||||
|
mounted() { |
||||
|
this.dictInit(); |
||||
|
|
||||
|
this.initOccDiseaseData() |
||||
|
|
||||
|
}, |
||||
|
|
||||
|
computed: { |
||||
|
...mapState([ |
||||
|
"window", |
||||
|
"dict", |
||||
|
"dataTransOpts", |
||||
|
"dialogWin" |
||||
|
]), |
||||
|
}, |
||||
|
|
||||
|
methods: { |
||||
|
|
||||
|
//数据初始化 |
||||
|
dictInit() { |
||||
|
|
||||
|
//职业病检查类别 |
||||
|
postapi("/api/app/Poison/GetPoisonWithTypeList").then((res) => { |
||||
|
if (res.code > -1) { |
||||
|
this.dict.postion = res.data; |
||||
|
this.dict.postionList = [] |
||||
|
this.dict.postion.forEach(e => { |
||||
|
e.poisonDtos.forEach(e2 => { |
||||
|
this.dict.postionList.push({ |
||||
|
poisonTypeName: e.poisonTypeName, |
||||
|
id: e2.id, |
||||
|
displayName: e2.displayName, |
||||
|
simpleCode: e2.simpleCode |
||||
|
}) |
||||
|
}); |
||||
|
}); |
||||
|
} |
||||
|
}); |
||||
|
}, |
||||
|
|
||||
|
initOccDiseaseData() { |
||||
|
|
||||
|
this.dataTransOpts.refresh.sumDoctor.M++ // 刷新体征 |
||||
|
}, |
||||
|
|
||||
|
// 点击确定 |
||||
|
btnOk() { |
||||
|
|
||||
|
}, |
||||
|
|
||||
|
// 点击确定 |
||||
|
btnClose() { |
||||
|
this.dialogWin.OccDisease = false |
||||
|
}, |
||||
|
|
||||
|
}, |
||||
|
|
||||
|
//监听事件() |
||||
|
watch: { |
||||
|
"dataTransOpts.plus.OccDisease": { |
||||
|
// immediate:true, |
||||
|
handler(newVal, oldVal) { |
||||
|
console.log(`watch 职业病 newVal: ${newVal}, oldVal: ${oldVal} `); |
||||
|
if (newVal != oldVal) this.initOccDiseaseData() |
||||
|
} |
||||
|
}, |
||||
|
|
||||
|
}, |
||||
|
}; |
||||
|
</script> |
||||
|
<style scoped> |
||||
|
@import '../../assets/css/global_card.css'; |
||||
|
@import '../../assets/css/global_input.css'; |
||||
|
@import '../../assets/css/global_table.css'; |
||||
|
@import '../../assets/css/global.css'; |
||||
|
</style> |
||||
@ -0,0 +1,343 @@ |
|||||
|
<template> |
||||
|
<div style="height: 468px;overflow-y: auto;"> |
||||
|
<el-form :model="form" ref="form" label-width="80px" :rules="rules"> |
||||
|
<el-row> |
||||
|
<el-col :span="6"> |
||||
|
<el-form-item prop="ocCheckTypeId" label="检查类别"> |
||||
|
<el-select v-model="form.ocCheckTypeId" size="small"> |
||||
|
<el-option v-for="item in dict.occCheckType" :key="item.value" :label="item.displayName" :value="item.id" /> |
||||
|
</el-select> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
<el-col :span="6"> |
||||
|
<el-form-item label="工种"> |
||||
|
<el-input v-model="form.jobType" size="small"></el-input> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
<el-col :span="6"> |
||||
|
<el-form-item prop="totalWorkTime" label="总工龄"> |
||||
|
<el-input v-model="form.totalWorkTime" size="small"></el-input> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
<el-col :span="6"> |
||||
|
<el-form-item prop="poisonWorkTime" label="接害工龄"> |
||||
|
<el-input v-model="form.poisonWorkTime" size="small"></el-input> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
</el-row> |
||||
|
<el-row> |
||||
|
<el-col :span="24"> |
||||
|
<el-form-item label="一、既往病史:" label-width="105px"> |
||||
|
<el-input type="textarea" v-model="form.previousHistory" size="small" |
||||
|
:autosize="{ minRows: 1, maxRows: 10 }"></el-input> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
</el-row> |
||||
|
<el-row> |
||||
|
<el-col :span="16"> |
||||
|
<el-form-item label="二、急慢性职业病史:病名" label-width="175px"> |
||||
|
<el-input v-model="form.occupationalDisease" size="small"></el-input> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
<el-col :span="8"> |
||||
|
<el-form-item prop="diagnosisDate" label="诊断日期"> |
||||
|
<el-date-picker v-model="form.diagnosisDate" type="date" format="yyyy-MM-dd" value-format="yyyy-MM-dd" |
||||
|
placeholder="诊断日期" size="small" style="width: 100%" /> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
</el-row> |
||||
|
<el-row> |
||||
|
<el-col :span="16"> |
||||
|
<el-form-item prop="diagnosisHospital" label="诊断单位" label-width="175px"> |
||||
|
<el-input v-model="form.diagnosisHospital" size="small"></el-input> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
<el-col :span="8"> |
||||
|
<el-form-item prop="recovery" label="是否痊愈"> |
||||
|
<el-checkbox v-model="form.recovery" true-label="Y" false-label="N"></el-checkbox> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
</el-row> |
||||
|
<el-row> |
||||
|
<el-col :span="8"> |
||||
|
<el-form-item label="三、月经史: 初经" label-width="120px"> |
||||
|
<el-input type="number" v-model="form.firstMenstruation" size="small"> |
||||
|
<template slot="append">岁</template> |
||||
|
</el-input> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
<el-col :span="8"> |
||||
|
<el-form-item prop="menstruationTimeLength" label="经期"> |
||||
|
<el-input type="number" v-model="form.menstruationTimeLength" size="small"> |
||||
|
<template slot="append">天</template> |
||||
|
</el-input> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
<el-col :span="8"> |
||||
|
<el-form-item prop="menstruationCycle" label="周期"> |
||||
|
<el-input type="number" v-model="form.menstruationCycle" size="small"> |
||||
|
<template slot="append">天</template> |
||||
|
</el-input> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
</el-row> |
||||
|
<el-row> |
||||
|
<el-col :span="8"> |
||||
|
<el-form-item label="是否停经" label-width="120px"> |
||||
|
<el-checkbox v-model="form.menstruationFlag" true-label="Y" false-label="N"></el-checkbox> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
<el-col :span="7"> |
||||
|
<el-form-item prop="menstruationEndAge" label="停经年龄"> |
||||
|
<el-input type="number" v-model="form.menstruationEndAge" size="small"> |
||||
|
<template slot="append">岁</template> |
||||
|
</el-input> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
<el-col :span="9"> |
||||
|
<el-form-item prop="lastMenstrualPeriodDate" label="末次月经日期" label-width="120px"> |
||||
|
<el-date-picker v-model="form.lastMenstrualPeriodDate" type="date" format="yyyy-MM-dd" value-format="yyyy-MM-dd" |
||||
|
placeholder="末次月经日期" size="small" style="width: 100%" /> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
</el-row> |
||||
|
<el-row> |
||||
|
<el-col :span="8"> |
||||
|
<el-form-item label="四、生育史:现有子女" label-width="145px"> |
||||
|
<el-input type="number" v-model="form.childrenNum" size="small"> |
||||
|
<template slot="append">人</template> |
||||
|
</el-input> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
<el-col :span="4"> |
||||
|
<el-form-item label="流产" label-width="50px"> |
||||
|
<el-input type="number" v-model="form.abortionTimes" size="small"> |
||||
|
<template slot="append">次</template> |
||||
|
</el-input> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
<el-col :span="4"> |
||||
|
<el-form-item label="早产" label-width="50px"> |
||||
|
<el-input type="number" v-model="form.prematureBirthTimes" size="small"> |
||||
|
<template slot="append">次</template> |
||||
|
</el-input> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
<el-col :span="4"> |
||||
|
<el-form-item label="死产" label-width="50px"> |
||||
|
<el-input type="number" v-model="form.stillbirthTimes" size="small"> |
||||
|
<template slot="append">人</template> |
||||
|
</el-input> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
<el-col :span="4"> |
||||
|
<el-form-item label="异常胎" label-width="60px"> |
||||
|
<el-input type="number" v-model="form.abnormalTimes" size="small"> |
||||
|
<template slot="append">次</template> |
||||
|
</el-input> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
</el-row> |
||||
|
<el-row> |
||||
|
<el-col :span="12"> |
||||
|
<el-form-item label="五、烟酒史:吸烟" label-width="115px"> |
||||
|
<el-radio-group v-model="form.smokeFlag"> |
||||
|
<el-radio :label="3">不吸</el-radio> |
||||
|
<el-radio :label="6">偶尔吸</el-radio> |
||||
|
<el-radio :label="9">经常吸</el-radio> |
||||
|
</el-radio-group> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
<el-col :span="6"> |
||||
|
<el-form-item label="频次"> |
||||
|
<el-input type="number" v-model="form.smokeNum" size="small"> |
||||
|
<template slot="append">支/天</template> |
||||
|
</el-input> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
<el-col :span="6"> |
||||
|
<el-form-item label="烟龄"> |
||||
|
<el-input type="number" v-model="form.smokeYears" size="small"> |
||||
|
<template slot="append">年</template> |
||||
|
</el-input> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
</el-row> |
||||
|
<el-row> |
||||
|
<el-col :span="12"> |
||||
|
<el-form-item label="喝酒" label-width="115px"> |
||||
|
<el-radio-group v-model="form.drinkFlag"> |
||||
|
<el-radio :label="3">不喝</el-radio> |
||||
|
<el-radio :label="6">偶尔喝</el-radio> |
||||
|
<el-radio :label="9">经常喝</el-radio> |
||||
|
</el-radio-group> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
<el-col :span="6"> |
||||
|
<el-form-item label="频次"> |
||||
|
<el-input type="number" v-model="form.drinkNum" size="small"> |
||||
|
<template slot="append">ml/次</template> |
||||
|
</el-input> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
<el-col :span="6"> |
||||
|
<el-form-item label="酒龄"> |
||||
|
<el-input type="number" v-model="form.drinkYears" size="small"> |
||||
|
<template slot="append">年</template> |
||||
|
</el-input> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
</el-row> |
||||
|
<el-row> |
||||
|
<el-col :span="24"> |
||||
|
<el-form-item label="六、其他:" label-width="75px"> |
||||
|
<el-input type="textarea" v-model="form.other" size="small" |
||||
|
:autosize="{ minRows: 1, maxRows: 10 }"></el-input> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
</el-row> |
||||
|
<el-row> |
||||
|
<el-col :span="5"> |
||||
|
<el-form-item label="创建者"> |
||||
|
<el-input v-model="form.creatorName" disabled size="small"></el-input> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
<el-col :span="7"> |
||||
|
<el-form-item label="创建时间" label-width="80px" style="margin-left:-10px;"> |
||||
|
<el-date-picker v-model="form.creationTime" type="datetime" size="small" style="width: 100%" disabled /> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
<el-col :span="5"> |
||||
|
<el-form-item label="修改者"> |
||||
|
<el-input v-model="form.creatorName" disabled size="small"></el-input> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
<el-col :span="7"> |
||||
|
<el-form-item label="修改时间" label-width="80px" style="margin-left:-10px;"> |
||||
|
<el-date-picker v-model="form.lastModificationTime" type="datetime" size="small" style="width: 100%" |
||||
|
disabled /> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
</el-row> |
||||
|
</el-form> |
||||
|
</div> |
||||
|
</template> |
||||
|
<script> |
||||
|
import moment from "moment"; |
||||
|
import { mapState } from "vuex"; |
||||
|
import { getapi, postapi, putapi, deletapi } from "@/api/api"; |
||||
|
import { getPagePriv, checkPagePriv, objCopy, deepCopy, arrayExistObj } from "../../utlis/proFunc"; |
||||
|
export default { |
||||
|
components: {}, |
||||
|
props: ["refFunc","patientRegisterId"], |
||||
|
data() { |
||||
|
return { |
||||
|
pagePriv: { |
||||
|
routeUrlorPageName: 'customerOrg', //当前页面归属路由或归属页面权限名称 |
||||
|
privs: [] // 页面权限 |
||||
|
}, |
||||
|
|
||||
|
form: { //联系人表单信息 |
||||
|
id: "", |
||||
|
patientRegisterId: '', // 体检人员 |
||||
|
ocCheckTypeId: '', // 检查类别 |
||||
|
jobType:'', // 工种 |
||||
|
totalWorkTime:'', //总工龄 |
||||
|
poisonWorkTime:'', //接害工龄 |
||||
|
previousHistory:'', // 既往病史 |
||||
|
occupationalDisease:'', // 急慢性职业病史:病名 |
||||
|
diagnosisDate:'', // 诊断日期 |
||||
|
diagnosisHospital:'', // 诊断单位 |
||||
|
recovery:'', //是否痊愈 |
||||
|
firstMenstruation:'', //初经 岁 |
||||
|
menstruationTimeLength:'', //经期 天 |
||||
|
menstruationCycle:'', //周期 天 |
||||
|
menstruationFlag:'', // 是否停经 |
||||
|
menstruationEndAge:'', // 停经年龄 |
||||
|
lastMenstrualPeriodDate:'', // 末次月经日期 |
||||
|
childrenNum:'', //现有子女 |
||||
|
abortionTimes:'', // 流产 |
||||
|
prematureBirthTimes:'', // 早产 |
||||
|
stillbirthTimes:'', // 死产 |
||||
|
abnormalTimes:'', // 异常胎 |
||||
|
smokeFlag:'', // 吸烟 |
||||
|
smokeNum:'', // 吸烟频次 |
||||
|
smokeYears:'', //烟龄 |
||||
|
drinkFlag:'', // 喝酒 |
||||
|
drinkNum:'', // 喝酒频次 |
||||
|
drinkYears:'', // 酒龄 |
||||
|
other:'', // 其他 |
||||
|
}, |
||||
|
|
||||
|
formInit: {}, |
||||
|
contactMethodList: [], //联系方式(可修改) |
||||
|
|
||||
|
|
||||
|
Methodtypes: [ |
||||
|
//{ value: '',label: '所有订单状态' }, |
||||
|
{ value: "0", label: "电话" }, |
||||
|
{ value: "1", label: "邮箱" }, |
||||
|
], |
||||
|
|
||||
|
rules: { |
||||
|
displayName: [ |
||||
|
{ required: true, message: "请输入名称", trigger: "blur" }, |
||||
|
], |
||||
|
}, |
||||
|
}; |
||||
|
}, |
||||
|
|
||||
|
created() { |
||||
|
//获取用户当前页面的权限 |
||||
|
let userPriv = window.sessionStorage.getItem('userPriv') |
||||
|
if (userPriv) this.pagePriv.privs = deepCopy(getPagePriv(this.pagePriv.routeUrlorPageName)) |
||||
|
this.formInit = deepCopy(this.form) |
||||
|
}, |
||||
|
|
||||
|
//挂载完成 |
||||
|
mounted() { |
||||
|
this.dictInit() |
||||
|
}, |
||||
|
|
||||
|
computed: { |
||||
|
...mapState(["window", "dict", "dialogWin", "dataTransOpts"]), |
||||
|
}, |
||||
|
|
||||
|
methods: { |
||||
|
moment, checkPagePriv, |
||||
|
|
||||
|
//数据初始化 |
||||
|
dictInit() { |
||||
|
//职业病检查类别 |
||||
|
postapi("/api/app/OcCheckType/GetList").then((res) => { |
||||
|
if (res.code > -1) { |
||||
|
this.dict.occCheckType = res.data; |
||||
|
} |
||||
|
}); |
||||
|
}, |
||||
|
|
||||
|
}, |
||||
|
|
||||
|
watch: { |
||||
|
// 单位id未变时,强制刷新 |
||||
|
"dataTransOpts.refresh.contact_person.S": { |
||||
|
// immediate: true, |
||||
|
handler(newVal, oldVal) { |
||||
|
console.log(`watch 联系人 newVal:${newVal} oldVal:${oldVal} customerOrgId: ${this.dataTransOpts.tableS.contact_person.id}`); |
||||
|
this.getFormData(this.dataTransOpts.tableS.contact_person.id) |
||||
|
} |
||||
|
}, |
||||
|
|
||||
|
}, |
||||
|
}; |
||||
|
</script> |
||||
|
<style scoped> |
||||
|
@import '../../assets/css/global_table.css'; |
||||
|
@import '../../assets/css/global_input.css'; |
||||
|
@import '../../assets/css/global_form.css'; |
||||
|
@import '../../assets/css/global_dialog.css'; |
||||
|
|
||||
|
.btnClass { |
||||
|
width: 110px; |
||||
|
} |
||||
|
</style> |
||||
@ -0,0 +1,241 @@ |
|||||
|
<template> |
||||
|
<div> |
||||
|
<table width="100%"> |
||||
|
<tr> |
||||
|
<td width="50%">职业性异常:</td> |
||||
|
<td width="50%">建议:</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td><el-input type="textarea" v-model="form.remark" size="small" :autosize="{ minRows: 8, maxRows: 8 }"></el-input></td> |
||||
|
<td><el-input type="textarea" v-model="form.remark" size="small" :autosize="{ minRows: 8, maxRows: 8 }"></el-input></td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td width="50%">非职业性异常:</td> |
||||
|
<td width="50%">建议:</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td><el-input type="textarea" v-model="form.remark" size="small" :autosize="{ minRows: 8, maxRows: 8 }"></el-input></td> |
||||
|
<td><el-input type="textarea" v-model="form.remark" size="small" :autosize="{ minRows: 8, maxRows: 8 }"></el-input></td> |
||||
|
</tr> |
||||
|
</table> |
||||
|
|
||||
|
|
||||
|
<div>处理意见:</div> |
||||
|
<div> |
||||
|
<el-input type="textarea" v-model="form.remark" size="small" :autosize="{ minRows: 2, maxRows: 2 }"></el-input> |
||||
|
</div> |
||||
|
</div> |
||||
|
</template> |
||||
|
<script> |
||||
|
import moment from "moment"; |
||||
|
import { mapState } from "vuex"; |
||||
|
import { getapi, postapi, putapi, deletapi } from "@/api/api"; |
||||
|
import { getPagePriv, checkPagePriv, objCopy, deepCopy, arrayExistObj } from "../../utlis/proFunc"; |
||||
|
export default { |
||||
|
components: {}, |
||||
|
props: ["refFunc"], |
||||
|
data() { |
||||
|
return { |
||||
|
pagePriv: { |
||||
|
routeUrlorPageName: 'customerOrg', //当前页面归属路由或归属页面权限名称 |
||||
|
privs: [] // 页面权限 |
||||
|
}, |
||||
|
|
||||
|
form: { //联系人表单信息 |
||||
|
id: "", |
||||
|
customerOrgId: '', |
||||
|
creationTime: null, |
||||
|
lastModificationTime: null, |
||||
|
creatorName: "", |
||||
|
lastModifierName: "", |
||||
|
displayName: "", |
||||
|
title: "", |
||||
|
remark: "", |
||||
|
}, |
||||
|
formInit: {}, |
||||
|
contactMethodList: [], //联系方式(可修改) |
||||
|
|
||||
|
|
||||
|
Methodtypes: [ |
||||
|
//{ value: '',label: '所有订单状态' }, |
||||
|
{ value: "0", label: "电话" }, |
||||
|
{ value: "1", label: "邮箱" }, |
||||
|
], |
||||
|
|
||||
|
rules: { |
||||
|
displayName: [ |
||||
|
{ required: true, message: "请输入名称", trigger: "blur" }, |
||||
|
], |
||||
|
}, |
||||
|
}; |
||||
|
}, |
||||
|
|
||||
|
created() { |
||||
|
//获取用户当前页面的权限 |
||||
|
let userPriv = window.sessionStorage.getItem('userPriv') |
||||
|
if (userPriv) this.pagePriv.privs = deepCopy(getPagePriv(this.pagePriv.routeUrlorPageName)) |
||||
|
this.formInit = deepCopy(this.form) |
||||
|
}, |
||||
|
|
||||
|
//挂载完成 |
||||
|
mounted() { |
||||
|
this.getFormData(this.dataTransOpts.tableS.contact_person.id) |
||||
|
}, |
||||
|
|
||||
|
computed: { |
||||
|
...mapState(["window", "customerOrg", "dialogWin", "dataTransOpts"]), |
||||
|
}, |
||||
|
|
||||
|
methods: { |
||||
|
moment, checkPagePriv, |
||||
|
|
||||
|
// 获取表单数据 |
||||
|
getFormData(id) { |
||||
|
if (!id) { |
||||
|
this.form = deepCopy(this.formInit) |
||||
|
this.form.customerOrgId = this.dataTransOpts.tableS.customer_org.id |
||||
|
this.contactMethodList = [] |
||||
|
return |
||||
|
} |
||||
|
getapi(`/api/app/contact-person/${id}`) |
||||
|
.then(res => { |
||||
|
if (res.code != -1) { |
||||
|
this.form = deepCopy(res.data) |
||||
|
this.getContactMethodList(res.data.id) |
||||
|
} |
||||
|
}) |
||||
|
|
||||
|
}, |
||||
|
|
||||
|
//获取联系方式列表 |
||||
|
//api/app/contact-method/in-contact-person-id?ContactPersonId=3a0c08ad-4304-138b-d9e6-a7338739dfc4' \ |
||||
|
getContactMethodList(ContactPersonId) { |
||||
|
if (!ContactPersonId) { |
||||
|
this.contactMethodList = [] |
||||
|
return |
||||
|
} |
||||
|
getapi("/api/app/contact-method/in-contact-person-id", { |
||||
|
ContactPersonId, |
||||
|
}).then(res => { |
||||
|
//console.log('res.data',res.data) |
||||
|
if (res.code != -1) this.contactMethodList = res.data; |
||||
|
}); |
||||
|
}, |
||||
|
|
||||
|
//删除联系方式行 |
||||
|
deleteRow(index) { |
||||
|
this.$confirm("此操作确定后将永久删除该记录, 是否继续?", "提示", { |
||||
|
confirmButtonText: "是", |
||||
|
cancelButtonText: "否", |
||||
|
type: "warning", |
||||
|
}).then(() => { |
||||
|
this.contactMethodList.splice(index, 1); |
||||
|
//this.submit('form'); |
||||
|
}).catch((err) => { |
||||
|
if (err == 'cancel') { |
||||
|
this.$message.info({ showClose: true, message: "已取消删除" }); |
||||
|
} |
||||
|
}); |
||||
|
}, |
||||
|
|
||||
|
//联系人信息提交 |
||||
|
submit(formName) { |
||||
|
let body = { |
||||
|
customerOrgId: "", |
||||
|
displayName: "", |
||||
|
title: "", |
||||
|
remark: "", |
||||
|
}; |
||||
|
this.$refs[formName].validate((valid, fields) => { |
||||
|
if (!valid) { |
||||
|
this.$message.warning({ showClose: true, message: fields[Object.keys(fields)[0]][0].message }); |
||||
|
return false; |
||||
|
} |
||||
|
|
||||
|
objCopy(this.form, body); |
||||
|
let contactMethod = { |
||||
|
contactPersonId: this.form.id, |
||||
|
details: this.contactMethodList |
||||
|
} |
||||
|
|
||||
|
console.log("body,contactMethod", body, contactMethod); |
||||
|
|
||||
|
if (!this.form.id) { |
||||
|
postapi("/api/app/contact-person", body) |
||||
|
.then((res) => { |
||||
|
//console.log('api/app/contact-person') |
||||
|
if (res.code != -1) { |
||||
|
this.form = res.data |
||||
|
this.dataTransOpts.tableS.contact_person.id = res.data.id |
||||
|
this.refFunc(['curChooseRow'], res.data) |
||||
|
contactMethod.contactPersonId = res.data.id |
||||
|
return postapi('/api/app/contactmethod/createmany', contactMethod); |
||||
|
} |
||||
|
}) |
||||
|
.then((res) => { |
||||
|
//console.log('api/app/contact-method/many') |
||||
|
if (res && res.code != -1) { |
||||
|
console.log("操作成功!"); |
||||
|
this.dialogWin.ContactPersonEdit = false |
||||
|
} |
||||
|
}); |
||||
|
} else { |
||||
|
putapi(`/api/app/contact-person/${this.form.id}`, body) |
||||
|
.then((res) => { |
||||
|
if (res.code != -1) { |
||||
|
this.refFunc(['curChooseRow'], this.form) |
||||
|
return postapi('/api/app/contactmethod/createmany', contactMethod); |
||||
|
} |
||||
|
}) |
||||
|
.then((res) => { |
||||
|
//console.log('api/app/contact-method/many') |
||||
|
//this.getContactPersonList(this.customerOrgId); //改成局部刷新 |
||||
|
if (res && res.code != -1) { |
||||
|
console.log("操作成功!"); |
||||
|
this.dialogWin.ContactPersonEdit = false |
||||
|
} |
||||
|
}); |
||||
|
} |
||||
|
}) |
||||
|
}, |
||||
|
|
||||
|
//新增联系方式 |
||||
|
addMethod() { |
||||
|
this.contactMethodList.push({ |
||||
|
contactMethodValue: "", |
||||
|
contactMethodType: "0", |
||||
|
contactPersonId: this.form.id, |
||||
|
}); |
||||
|
}, |
||||
|
|
||||
|
}, |
||||
|
|
||||
|
watch: { |
||||
|
// 单位id未变时,强制刷新 |
||||
|
"dataTransOpts.refresh.contact_person.S": { |
||||
|
// immediate: true, |
||||
|
handler(newVal, oldVal) { |
||||
|
console.log(`watch 联系人 newVal:${newVal} oldVal:${oldVal} customerOrgId: ${this.dataTransOpts.tableS.contact_person.id}`); |
||||
|
this.getFormData(this.dataTransOpts.tableS.contact_person.id) |
||||
|
} |
||||
|
}, |
||||
|
|
||||
|
// 'customerOrgId' (newVal,oldVal){ |
||||
|
// console.log('watch customerOrgId',newVal,oldVal) |
||||
|
// if(newVal != oldVal){ |
||||
|
// this.personId = '' |
||||
|
// } |
||||
|
// } |
||||
|
}, |
||||
|
}; |
||||
|
</script> |
||||
|
<style scoped> |
||||
|
@import '../../assets/css/global_table.css'; |
||||
|
@import '../../assets/css/global_input.css'; |
||||
|
@import '../../assets/css/global_form.css'; |
||||
|
@import '../../assets/css/global_dialog.css'; |
||||
|
|
||||
|
.btnClass { |
||||
|
width: 110px; |
||||
|
} |
||||
|
</style> |
||||
@ -0,0 +1,209 @@ |
|||||
|
<template> |
||||
|
<div> |
||||
|
<el-table :data="dataTransOpts.tableM.patient_occupational_history" border height="465" row-key="id" size="small" |
||||
|
highlight-current-row ref="contactMethod"> |
||||
|
<el-table-column prop="beginDate" label="开始日期" min-width="100"> |
||||
|
<template slot-scope="scope"> |
||||
|
<el-date-picker v-model="scope.row.beginDate" type="date" format="yyyy-MM-dd" value-format="yyyy-MM-dd" |
||||
|
placeholder="开始日期" size="small" style="width: 100%" /> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column prop="endDate" label="结束日期" min-width="100"> |
||||
|
<template slot-scope="scope"> |
||||
|
<el-date-picker v-model="scope.row.endDate" type="date" format="yyyy-MM-dd" value-format="yyyy-MM-dd" |
||||
|
placeholder="结束日期" size="small" style="width: 100%" /> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column prop="org" label="工作单位" min-width="200"> |
||||
|
<template slot-scope="scope"> |
||||
|
<el-input v-model="scope.row.org" size="small" /> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column prop="workShop" label="车间" min-width="80"> |
||||
|
<template slot-scope="scope"> |
||||
|
<el-input v-model="scope.row.workShop" size="small" /> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column prop="workType" label="工种" min-width="80"> |
||||
|
<template slot-scope="scope"> |
||||
|
<el-input v-model="scope.row.workType" size="small" /> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column prop="poison" label="毒害因素" min-width="200"> |
||||
|
<template slot-scope="scope"> |
||||
|
<el-select v-model="scope.row.poison" size="small" style="width:220px" clearable filterable |
||||
|
:filter-method="filterMethod"> |
||||
|
<el-option-group v-for="group in postion" :key="group.poisonTypeName" :label="group.poisonTypeName"> |
||||
|
<el-option v-for="item in group.poisonDtos" :key="item.id" :label="item.displayName" :value="item.displayName" /> |
||||
|
</el-option-group> |
||||
|
</el-select> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column prop="protectiveMeasures" label="防护措施" min-width="200"> |
||||
|
<template slot-scope="scope"> |
||||
|
<el-select v-model="scope.row.protectiveMeasures" size="small"> |
||||
|
<el-option v-for="item in protectiveMeasures" :key="item.id" :label="item.displayName" :value="item.displayName" /> |
||||
|
</el-select> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column prop="lastModifierId" label="修改人员" min-width="80" align="center" /> |
||||
|
<el-table-column prop="lastModificationTime" label="修改时间" min-width="150" align="center" /> |
||||
|
<el-table-column prop="creatorId" label="创建人员" min-width="80" align="center" /> |
||||
|
<el-table-column prop="creationTime" label="创建时间" min-width="150" align="center" /> |
||||
|
<el-table-column fixed="right" width="30" align="center"> |
||||
|
<template slot="header"> |
||||
|
<div style="display: flex;justify-content:space-between;"> |
||||
|
<div></div> |
||||
|
<div> |
||||
|
<i class="el-icon-plus" @click="btnAdd" style="font-size: 24px;color: blue;cursor:pointer;"></i> |
||||
|
</div> |
||||
|
</div> |
||||
|
</template> |
||||
|
<template slot-scope="scope"> |
||||
|
<i class="el-icon-delete" @click="deleteRow(scope.$index)" |
||||
|
style="font-size: 24px;color: red;cursor:pointer;"></i> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
</el-table> |
||||
|
|
||||
|
</div> |
||||
|
</template> |
||||
|
<script> |
||||
|
import moment from "moment"; |
||||
|
import { mapState } from "vuex"; |
||||
|
import { getapi, postapi, putapi, deletapi } from "@/api/api"; |
||||
|
import { getPagePriv, checkPagePriv, objCopy, deepCopy, arrayExistObj } from "../../utlis/proFunc"; |
||||
|
export default { |
||||
|
components: {}, |
||||
|
props: ["refFunc"], |
||||
|
data() { |
||||
|
return { |
||||
|
pagePriv: { |
||||
|
routeUrlorPageName: 'customerOrg', //当前页面归属路由或归属页面权限名称 |
||||
|
privs: [] // 页面权限 |
||||
|
}, |
||||
|
protectiveMeasures:[], |
||||
|
postion: [ |
||||
|
{ |
||||
|
poisonTypeName: "职业史", |
||||
|
poisonDtos: [ |
||||
|
{ |
||||
|
id: "3a12ad8e-3b84-75a2-415e-c03ed69bda66", |
||||
|
displayName: "噪声,粉尘", |
||||
|
simpleCode: "ZS,FC" |
||||
|
} |
||||
|
] |
||||
|
} |
||||
|
], // 毒害因素 |
||||
|
}; |
||||
|
}, |
||||
|
|
||||
|
created() { |
||||
|
//获取用户当前页面的权限 |
||||
|
let userPriv = window.sessionStorage.getItem('userPriv') |
||||
|
if (userPriv) this.pagePriv.privs = deepCopy(getPagePriv(this.pagePriv.routeUrlorPageName)) |
||||
|
|
||||
|
}, |
||||
|
|
||||
|
//挂载完成 |
||||
|
mounted() { |
||||
|
this.dictInit() |
||||
|
}, |
||||
|
|
||||
|
computed: { |
||||
|
...mapState(["window", "dict", "dialogWin", "dataTransOpts"]), |
||||
|
}, |
||||
|
|
||||
|
methods: { |
||||
|
moment, checkPagePriv, |
||||
|
|
||||
|
dictInit() { |
||||
|
//职业病检查类别 |
||||
|
postapi("/api/app/ProtectiveMeasures/GetList").then((res) => { |
||||
|
if (res.code > -1) { |
||||
|
this.protectiveMeasures = res.data; |
||||
|
} |
||||
|
}); |
||||
|
}, |
||||
|
|
||||
|
|
||||
|
filterMethod(v) { |
||||
|
if (v) { |
||||
|
let lv = v.toUpperCase() |
||||
|
let postion = [] |
||||
|
let postionList = this.dict.postionList.filter(e => { |
||||
|
return e.poisonTypeName.indexOf(lv) > -1 || e.displayName.indexOf(lv) > -1 || e.simpleCode.indexOf(lv) > -1 |
||||
|
}) |
||||
|
postionList.forEach(e => { |
||||
|
let lfind = arrayExistObj(postion, "poisonTypeName", e.poisonTypeName) |
||||
|
if (lfind == -1) { |
||||
|
postion.push({ poisonTypeName: e.poisonTypeName, poisonDtos: [{ id: e.id, displayName: e.displayName, simpleCode: e.simpleCode }] }) |
||||
|
} else { |
||||
|
postion[lfind]['poisonDtos'].push({ id: e.id, displayName: e.displayName, simpleCode: e.simpleCode }) |
||||
|
} |
||||
|
}); |
||||
|
this.postion = postion |
||||
|
} else { |
||||
|
this.postion = deepCopy(this.dict.postion) |
||||
|
} |
||||
|
console.log('filterMethod', v) |
||||
|
|
||||
|
}, |
||||
|
|
||||
|
|
||||
|
//删除联系方式行 |
||||
|
deleteRow(index) { |
||||
|
this.$confirm("此操作确定后将永久删除该记录, 是否继续?", "提示", { |
||||
|
confirmButtonText: "是", |
||||
|
cancelButtonText: "否", |
||||
|
type: "warning", |
||||
|
}).then(() => { |
||||
|
this.dataTransOpts.tableM.patient_occupational_history.splice(index, 1); |
||||
|
//this.submit('form'); |
||||
|
}).catch((err) => { |
||||
|
if (err != 'cancel') { |
||||
|
this.$message.info({ showClose: true, message: err }); |
||||
|
} |
||||
|
}); |
||||
|
}, |
||||
|
|
||||
|
//新增联系方式 |
||||
|
btnAdd() { |
||||
|
this.postion = deepCopy(this.dict.postion) |
||||
|
this.dataTransOpts.tableM.patient_occupational_history.push({ |
||||
|
patientRegisterId: this.patientRegisterId |
||||
|
}); |
||||
|
}, |
||||
|
|
||||
|
}, |
||||
|
|
||||
|
watch: { |
||||
|
// 单位id未变时,强制刷新 |
||||
|
// "dataTransOpts.refresh.contact_person.S": { |
||||
|
// // immediate: true, |
||||
|
// handler(newVal, oldVal) { |
||||
|
// console.log(`watch 联系人 newVal:${newVal} oldVal:${oldVal} customerOrgId: ${this.dataTransOpts.tableS.contact_person.id}`); |
||||
|
// this.getFormData(this.dataTransOpts.tableS.contact_person.id) |
||||
|
// } |
||||
|
// }, |
||||
|
|
||||
|
}, |
||||
|
}; |
||||
|
</script> |
||||
|
<style scoped> |
||||
|
@import '../../assets/css/global_table.css'; |
||||
|
@import '../../assets/css/global_input.css'; |
||||
|
@import '../../assets/css/global_form.css'; |
||||
|
@import '../../assets/css/global_dialog.css'; |
||||
|
|
||||
|
::v-deep .el-select-group__title { |
||||
|
font-size: 15px; |
||||
|
background-color: #EEEEEE; |
||||
|
color: black; |
||||
|
font-weight: 700; |
||||
|
} |
||||
|
|
||||
|
.btnClass { |
||||
|
width: 110px; |
||||
|
} |
||||
|
</style> |
||||
@ -0,0 +1,172 @@ |
|||||
|
<template> |
||||
|
<div> |
||||
|
<el-table :data="dataTransOpts.tableM.patient_poison" border height="465" row-key="id" size="small" |
||||
|
highlight-current-row ref="patientPoison"> |
||||
|
<el-table-column prop="poisonId" label="毒害因素" min-width="200"> |
||||
|
<template slot-scope="scope"> |
||||
|
<el-select v-model="scope.row.poisonId" size="small" style="width:220px" clearable filterable |
||||
|
:filter-method="filterMethod"> |
||||
|
<el-option-group v-for="group in postion" :key="group.poisonTypeName" :label="group.poisonTypeName"> |
||||
|
<el-option v-for="item in group.poisonDtos" :key="item.id" :label="item.displayName" :value="item.id" /> |
||||
|
</el-option-group> |
||||
|
</el-select> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column prop="lastModifierId" label="修改人员" min-width="80" align="center" /> |
||||
|
<el-table-column prop="lastModificationTime" label="修改时间" min-width="150" align="center" /> |
||||
|
<el-table-column prop="creatorId" label="创建人员" min-width="80" align="center" /> |
||||
|
<el-table-column prop="creationTime" label="创建时间" min-width="150" align="center" /> |
||||
|
<el-table-column fixed="right" width="30" align="center"> |
||||
|
<template slot="header"> |
||||
|
<div style="display: flex;justify-content:space-between;"> |
||||
|
<div></div> |
||||
|
<div> |
||||
|
<i class="el-icon-plus" @click="btnAdd" style="font-size: 24px;color: blue;cursor:pointer;"></i> |
||||
|
</div> |
||||
|
</div> |
||||
|
</template> |
||||
|
<template slot-scope="scope"> |
||||
|
<i class="el-icon-delete" @click="deleteRow(scope.$index)" |
||||
|
style="font-size: 24px;color: red;cursor:pointer;"></i> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
</el-table> |
||||
|
|
||||
|
</div> |
||||
|
</template> |
||||
|
<script> |
||||
|
import moment from "moment"; |
||||
|
import { mapState } from "vuex"; |
||||
|
import { getapi, postapi, putapi, deletapi } from "@/api/api"; |
||||
|
import { getPagePriv, checkPagePriv, objCopy, deepCopy, arrayExistObj } from "../../utlis/proFunc"; |
||||
|
export default { |
||||
|
components: {}, |
||||
|
props: ["refFunc"], |
||||
|
data() { |
||||
|
return { |
||||
|
pagePriv: { |
||||
|
routeUrlorPageName: 'customerOrg', //当前页面归属路由或归属页面权限名称 |
||||
|
privs: [] // 页面权限 |
||||
|
}, |
||||
|
postion: [ |
||||
|
{ |
||||
|
poisonTypeName: "职业史", |
||||
|
poisonDtos: [ |
||||
|
{ |
||||
|
id: "3a12ad8e-3b84-75a2-415e-c03ed69bda66", |
||||
|
displayName: "噪声,粉尘", |
||||
|
simpleCode: "ZS,FC" |
||||
|
} |
||||
|
] |
||||
|
} |
||||
|
], // 毒害因素 |
||||
|
|
||||
|
}; |
||||
|
}, |
||||
|
|
||||
|
created() { |
||||
|
//获取用户当前页面的权限 |
||||
|
let userPriv = window.sessionStorage.getItem('userPriv') |
||||
|
if (userPriv) this.pagePriv.privs = deepCopy(getPagePriv(this.pagePriv.routeUrlorPageName)) |
||||
|
|
||||
|
}, |
||||
|
|
||||
|
//挂载完成 |
||||
|
mounted() { |
||||
|
// this.postion = deepCopy(this.dict.postion) |
||||
|
}, |
||||
|
|
||||
|
computed: { |
||||
|
...mapState(["window", "dict", "dialogWin", "dataTransOpts"]), |
||||
|
}, |
||||
|
|
||||
|
methods: { |
||||
|
moment, checkPagePriv, |
||||
|
|
||||
|
filterMethod(v) { |
||||
|
if (v) { |
||||
|
let lv = v.toUpperCase() |
||||
|
let postion = [] |
||||
|
let postionList = this.dict.postionList.filter(e => { |
||||
|
return e.poisonTypeName.indexOf(lv) > -1 || e.displayName.indexOf(lv) > -1 || e.simpleCode.indexOf(lv) > -1 |
||||
|
}) |
||||
|
postionList.forEach(e => { |
||||
|
let lfind = arrayExistObj(postion, "poisonTypeName", e.poisonTypeName) |
||||
|
if (lfind == -1) { |
||||
|
postion.push({ poisonTypeName: e.poisonTypeName, poisonDtos: [{ id: e.id, displayName: e.displayName, simpleCode: e.simpleCode }] }) |
||||
|
} else { |
||||
|
postion[lfind]['poisonDtos'].push({ id: e.id, displayName: e.displayName, simpleCode: e.simpleCode }) |
||||
|
} |
||||
|
}); |
||||
|
this.postion = postion |
||||
|
} else { |
||||
|
this.postion = deepCopy(this.dict.postion) |
||||
|
} |
||||
|
console.log('filterMethod', v) |
||||
|
|
||||
|
}, |
||||
|
|
||||
|
|
||||
|
//删除联系方式行 |
||||
|
deleteRow(index) { |
||||
|
this.$confirm("此操作确定后将永久删除该记录, 是否继续?", "提示", { |
||||
|
confirmButtonText: "是", |
||||
|
cancelButtonText: "否", |
||||
|
type: "warning", |
||||
|
}).then(() => { |
||||
|
this.dataTransOpts.tableM.patient_poison.splice(index, 1); |
||||
|
//this.submit('form'); |
||||
|
}).catch((err) => { |
||||
|
if (err != 'cancel') { |
||||
|
this.$message.info({ showClose: true, message: err }); |
||||
|
} |
||||
|
}); |
||||
|
}, |
||||
|
|
||||
|
//新增联系方式 |
||||
|
btnAdd() { |
||||
|
this.postion = deepCopy(this.dict.postion) |
||||
|
this.dataTransOpts.tableM.patient_poison.push({ |
||||
|
patientRegisterId: this.patientRegisterId, |
||||
|
poisonId: '' |
||||
|
}); |
||||
|
}, |
||||
|
|
||||
|
}, |
||||
|
|
||||
|
watch: { |
||||
|
// 单位id未变时,强制刷新 |
||||
|
"dataTransOpts.refresh.contact_person.S": { |
||||
|
// immediate: true, |
||||
|
handler(newVal, oldVal) { |
||||
|
console.log(`watch 联系人 newVal:${newVal} oldVal:${oldVal} customerOrgId: ${this.dataTransOpts.tableS.contact_person.id}`); |
||||
|
this.getFormData(this.dataTransOpts.tableS.contact_person.id) |
||||
|
} |
||||
|
}, |
||||
|
|
||||
|
// 'customerOrgId' (newVal,oldVal){ |
||||
|
// console.log('watch customerOrgId',newVal,oldVal) |
||||
|
// if(newVal != oldVal){ |
||||
|
// this.personId = '' |
||||
|
// } |
||||
|
// } |
||||
|
}, |
||||
|
}; |
||||
|
</script> |
||||
|
<style scoped> |
||||
|
@import '../../assets/css/global_table.css'; |
||||
|
@import '../../assets/css/global_input.css'; |
||||
|
@import '../../assets/css/global_form.css'; |
||||
|
@import '../../assets/css/global_dialog.css'; |
||||
|
|
||||
|
::v-deep .el-select-group__title { |
||||
|
font-size: 15px; |
||||
|
background-color: #EEEEEE; |
||||
|
color: black; |
||||
|
font-weight: 700; |
||||
|
} |
||||
|
|
||||
|
.btnClass { |
||||
|
width: 110px; |
||||
|
} |
||||
|
</style> |
||||
@ -0,0 +1,164 @@ |
|||||
|
<template> |
||||
|
<div> |
||||
|
<el-table :data="dataTransOpts.tableM.patient_symptom" border height="465" row-key="id" size="small" |
||||
|
highlight-current-row ref="patientSymptom"> |
||||
|
<el-table-column prop="symptomId" label="项目" min-width="200"> |
||||
|
<template slot-scope="scope"> |
||||
|
<el-select v-model="scope.row.symptomId" size="small" clearable filterable :filter-method="filterMethod"> |
||||
|
<el-option v-for="item in symptom" :key="item.id" :label="item.displayName" :value="item.id" /> |
||||
|
</el-select> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column prop="degree" label="程度" min-width="70"> |
||||
|
<template slot-scope="scope"> |
||||
|
<el-select v-model="scope.row.degree" size="small"> |
||||
|
<el-option v-for="item in dict.degree" :key="item.id" :label="item.displayName" :value="item.id" /> |
||||
|
</el-select> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column prop="timeLength" label="时长" min-width="70"> |
||||
|
<template slot-scope="scope"> |
||||
|
<el-input v-model="scope.row.timeLength" size="small" /> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column prop="lastModifierId" label="修改人员" min-width="80" align="center" /> |
||||
|
<el-table-column prop="lastModificationTime" label="修改时间" min-width="150" align="center" /> |
||||
|
<el-table-column prop="creatorId" label="创建人员" min-width="80" align="center" /> |
||||
|
<el-table-column prop="creationTime" label="创建时间" min-width="150" align="center" /> |
||||
|
<el-table-column fixed="right" width="30" align="center"> |
||||
|
<template slot="header"> |
||||
|
<div style="display: flex;justify-content:space-between;"> |
||||
|
<div></div> |
||||
|
<div> |
||||
|
<i class="el-icon-plus" @click="btnAdd" style="font-size: 24px;color: blue;cursor:pointer;"></i> |
||||
|
</div> |
||||
|
</div> |
||||
|
</template> |
||||
|
<template slot-scope="scope"> |
||||
|
<i class="el-icon-delete" @click="deleteRow(scope.$index)" |
||||
|
style="font-size: 24px;color: red;cursor:pointer;"></i> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
</el-table> |
||||
|
|
||||
|
</div> |
||||
|
</template> |
||||
|
<script> |
||||
|
import moment from "moment"; |
||||
|
import { mapState } from "vuex"; |
||||
|
import { getapi, postapi, putapi, deletapi } from "@/api/api"; |
||||
|
import { getPagePriv, checkPagePriv, objCopy, deepCopy, arrayExistObj } from "../../utlis/proFunc"; |
||||
|
export default { |
||||
|
components: {}, |
||||
|
props: ["refFunc","patientRegisterId"], |
||||
|
data() { |
||||
|
return { |
||||
|
pagePriv: { |
||||
|
routeUrlorPageName: 'customerOrg', //当前页面归属路由或归属页面权限名称 |
||||
|
privs: [] // 页面权限 |
||||
|
}, |
||||
|
symptom:[] |
||||
|
}; |
||||
|
}, |
||||
|
|
||||
|
created() { |
||||
|
//获取用户当前页面的权限 |
||||
|
let userPriv = window.sessionStorage.getItem('userPriv') |
||||
|
if (userPriv) this.pagePriv.privs = deepCopy(getPagePriv(this.pagePriv.routeUrlorPageName)) |
||||
|
|
||||
|
}, |
||||
|
|
||||
|
//挂载完成 |
||||
|
mounted() { |
||||
|
this.dictInit() |
||||
|
}, |
||||
|
|
||||
|
computed: { |
||||
|
...mapState(["window", "dict", "dialogWin", "dataTransOpts"]), |
||||
|
}, |
||||
|
|
||||
|
methods: { |
||||
|
moment, checkPagePriv, |
||||
|
|
||||
|
//数据初始化 |
||||
|
dictInit() { |
||||
|
// 职业病--症状列表 |
||||
|
postapi("/api/app/Symptom/GetList").then((res) => { |
||||
|
if (res.code > -1) { |
||||
|
this.dict.symptom = res.data; |
||||
|
this.symptom = res.data |
||||
|
} |
||||
|
}); |
||||
|
}, |
||||
|
|
||||
|
filterMethod(v) { |
||||
|
if (v) { |
||||
|
let lv = v.toUpperCase() |
||||
|
this.symptom = this.dict.symptom.filter(e => { |
||||
|
return e.displayName.indexOf(lv) > -1 || e.simpleCode.indexOf(lv) > -1 |
||||
|
}) |
||||
|
} else { |
||||
|
this.symptom = deepCopy(this.dict.symptom) |
||||
|
} |
||||
|
}, |
||||
|
|
||||
|
//删除联系方式行 |
||||
|
deleteRow(index) { |
||||
|
this.$confirm("此操作确定后将永久删除该记录, 是否继续?", "提示", { |
||||
|
confirmButtonText: "是", |
||||
|
cancelButtonText: "否", |
||||
|
type: "warning", |
||||
|
}).then(() => { |
||||
|
this.dataTransOpts.tableM.patient_symptom.splice(index, 1); |
||||
|
//this.submit('form'); |
||||
|
}).catch((err) => { |
||||
|
if (err != 'cancel') { |
||||
|
this.$message.info({ showClose: true, message: err }); |
||||
|
} |
||||
|
}); |
||||
|
}, |
||||
|
|
||||
|
|
||||
|
|
||||
|
//新增联系方式 |
||||
|
btnAdd() { |
||||
|
console.log('this.dataTransOpts.tableM.patient_symptom',this.dataTransOpts.tableM.patient_symptom) |
||||
|
this.dataTransOpts.tableM.patient_symptom.push({ |
||||
|
patientRegisterId: this.patientRegisterId, |
||||
|
symptomId:'', |
||||
|
degree:'', |
||||
|
timeLength:'' |
||||
|
}); |
||||
|
}, |
||||
|
|
||||
|
}, |
||||
|
|
||||
|
watch: { |
||||
|
// 单位id未变时,强制刷新 |
||||
|
"dataTransOpts.refresh.contact_person.S": { |
||||
|
// immediate: true, |
||||
|
handler(newVal, oldVal) { |
||||
|
console.log(`watch 联系人 newVal:${newVal} oldVal:${oldVal} customerOrgId: ${this.dataTransOpts.tableS.contact_person.id}`); |
||||
|
this.getFormData(this.dataTransOpts.tableS.contact_person.id) |
||||
|
} |
||||
|
}, |
||||
|
|
||||
|
// 'customerOrgId' (newVal,oldVal){ |
||||
|
// console.log('watch customerOrgId',newVal,oldVal) |
||||
|
// if(newVal != oldVal){ |
||||
|
// this.personId = '' |
||||
|
// } |
||||
|
// } |
||||
|
}, |
||||
|
}; |
||||
|
</script> |
||||
|
<style scoped> |
||||
|
@import '../../assets/css/global_table.css'; |
||||
|
@import '../../assets/css/global_input.css'; |
||||
|
@import '../../assets/css/global_form.css'; |
||||
|
@import '../../assets/css/global_dialog.css'; |
||||
|
|
||||
|
.btnClass { |
||||
|
width: 110px; |
||||
|
} |
||||
|
</style> |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue