pengjun 2 years ago
parent
commit
bac381fb9f
  1. 1
      src/components/occDisease/OccDisease.vue
  2. 48
      src/components/occDisease/OccDiseaseHistory.vue
  3. 84
      src/components/occDisease/OccDiseasePoison.vue
  4. 2
      src/views/basic-dictionary/ToxicFactors.vue

1
src/components/occDisease/OccDisease.vue

@ -179,6 +179,7 @@ export default {
btnOk() { btnOk() {
let message = '' let message = ''
this.dataTransOpts.tableM.patient_poison.forEach((e, i) => { this.dataTransOpts.tableM.patient_poison.forEach((e, i) => {
if(e.poisonId) message = `接害因素,第 ${i+1} 行,不能为空`
if (!e.occupationalAbnormalId) e.occupationalAbnormalId = null if (!e.occupationalAbnormalId) e.occupationalAbnormalId = null
}); });
if (message) { if (message) {

48
src/components/occDisease/OccDiseaseHistory.vue

@ -68,20 +68,31 @@
<div> <div>
<el-dialog title="选择接害因素" :visible.sync="dialogPoison" width="400px" :close-on-click-modal="false" <el-dialog title="选择接害因素" :visible.sync="dialogPoison" width="400px" :close-on-click-modal="false"
:append-to-body="true"> :append-to-body="true">
<div style="height: 320px;">
<el-select v-model="choosedPoison" size="small" style="width:380px;" clearable filterable
<div style="height: 320px;display: flex;">
<el-select v-model="choosedPoison" size="small" style="width:350px;" clearable filterable
:filter-method="filterMethod" value-key="id" multiple> :filter-method="filterMethod" value-key="id" multiple>
<el-option-group v-for="group in poison" :key="group.poisonTypeName" :label="group.poisonTypeName"> <el-option-group v-for="group in poison" :key="group.poisonTypeName" :label="group.poisonTypeName">
<el-option v-for="item in group.poisonDtos" :key="item.id" :label="item.displayName" <el-option v-for="item in group.poisonDtos" :key="item.id" :label="item.displayName"
:value="item.displayName" /> :value="item.displayName" />
</el-option-group> </el-option-group>
</el-select> </el-select>
<el-tooltip content="添加接害因素字典库" placement="left-start">
<i class="el-icon-plus" @click="btnDictPoison"
style="margin: 2px 0 0 5px; font-size: 24px;color: green;cursor:pointer;"></i>
</el-tooltip>
</div> </div>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button type="primary" @click="btnOkPoison">确定</el-button> <el-button type="primary" @click="btnOkPoison">确定</el-button>
<el-button @click="dialogPoison = false">关闭</el-button> <el-button @click="dialogPoison = false">关闭</el-button>
</span> </span>
</el-dialog> </el-dialog>
<!-- 接害因素字典库 -->
<el-dialog title="" :visible.sync="dialogDictPoison" :close-on-click-modal="false" :append-to-body="true" fullscreen
@close="closeDialogDictPoison">
<div style="margin-top: 10px;">
<DictPoison />
</div>
</el-dialog>
</div> </div>
</div> </div>
</template> </template>
@ -90,8 +101,12 @@ import moment from "moment";
import { mapState } from "vuex"; import { mapState } from "vuex";
import { getapi, postapi, putapi, deletapi } from "@/api/api"; import { getapi, postapi, putapi, deletapi } from "@/api/api";
import { getPagePriv, checkPagePriv, objCopy, deepCopy, arrayExistObj } from "../../utlis/proFunc"; import { getPagePriv, checkPagePriv, objCopy, deepCopy, arrayExistObj } from "../../utlis/proFunc";
import DictPoison from "../../views/basic-dictionary/ToxicFactors.vue"
export default { export default {
components: {},
components: {
DictPoison
},
props: ["refFunc"], props: ["refFunc"],
data() { data() {
return { return {
@ -116,6 +131,7 @@ export default {
dialogPoison: false, dialogPoison: false,
currRow: 0, currRow: 0,
choosedPoison: [], choosedPoison: [],
dialogDictPoison: false,
}; };
}, },
@ -235,7 +251,33 @@ export default {
this.dataTransOpts.tableM.patient_occupational_history[this.currRow]['poison'] = `${this.choosedPoison}` this.dataTransOpts.tableM.patient_occupational_history[this.currRow]['poison'] = `${this.choosedPoison}`
this.dialogPoison = false this.dialogPoison = false
// console.log('this.dataTransOpts.tableM.patient_poison', this.dataTransOpts.tableM.patient_poison) // console.log('this.dataTransOpts.tableM.patient_poison', this.dataTransOpts.tableM.patient_poison)
},
//
btnDictPoison() {
this.dialogDictPoison = true
},
closeDialogDictPoison() {
//
postapi("/api/app/Poison/GetPoisonWithTypeList").then(res => {
if (res.code > -1) {
this.dict.poison = res.data;
this.dict.poisonList = []
this.dict.poison.forEach(e => {
e.poisonDtos.forEach(e2 => {
this.dict.poisonList.push({
poisonTypeName: e.poisonTypeName,
id: e2.id,
displayName: e2.displayName,
simpleCode: e2.simpleCode
})
});
});
this.refreshPoison()
} }
})
},
}, },

84
src/components/occDisease/OccDiseasePoison.vue

@ -12,7 +12,8 @@
</el-input> </el-input>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column v-if="height < 300" prop="occupationalAbnormalId" label="接害因素检查结论" min-width="130" align="center">
<el-table-column v-if="height < 300" prop="occupationalAbnormalId" label="接害因素检查结论" min-width="130"
align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-select v-model="scope.row.occupationalAbnormalId" size="small" clearable filterable <el-select v-model="scope.row.occupationalAbnormalId" size="small" clearable filterable
:filter-method="filterMethod" :disabled="!checkPagePriv(pagePriv.privs, '职业健康检查结论')"> :filter-method="filterMethod" :disabled="!checkPagePriv(pagePriv.privs, '职业健康检查结论')">
@ -44,19 +45,31 @@
<div> <div>
<el-dialog title="选择接害因素" :visible.sync="dialogPoison" width="400px" :close-on-click-modal="false" <el-dialog title="选择接害因素" :visible.sync="dialogPoison" width="400px" :close-on-click-modal="false"
:append-to-body="true"> :append-to-body="true">
<div style="height: 320px;">
<el-select v-model="choosedPoison" size="small" style="width:380px;" clearable filterable
<div style="height: 320px;display: flex;">
<el-select v-model="choosedPoison" size="small" style="width:350px;" clearable filterable
:filter-method="filterMethod" value-key="id"> :filter-method="filterMethod" value-key="id">
<el-option-group v-for="group in poison" :key="group.poisonTypeName" :label="group.poisonTypeName"> <el-option-group v-for="group in poison" :key="group.poisonTypeName" :label="group.poisonTypeName">
<el-option v-for="item in group.poisonDtos" :key="item.id" :label="item.displayName" :value="item" /> <el-option v-for="item in group.poisonDtos" :key="item.id" :label="item.displayName" :value="item" />
</el-option-group> </el-option-group>
</el-select> </el-select>
<el-tooltip content="添加接害因素字典库" placement="left-start">
<i class="el-icon-plus" @click="btnDictPoison"
style="margin: 2px 0 0 5px; font-size: 24px;color: green;cursor:pointer;"></i>
</el-tooltip>
</div> </div>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button type="primary" @click="btnOkPoison">确定</el-button> <el-button type="primary" @click="btnOkPoison">确定</el-button>
<el-button @click="dialogPoison = false">关闭</el-button> <el-button @click="dialogPoison = false">关闭</el-button>
</span> </span>
</el-dialog> </el-dialog>
<!-- 接害因素字典库 -->
<el-dialog title="" :visible.sync="dialogDictPoison" :close-on-click-modal="false" :append-to-body="true" fullscreen
@close="closeDialogDictPoison">
<div style="margin-top: 10px;">
<DictPoison />
</div>
</el-dialog>
</div> </div>
</div> </div>
</template> </template>
@ -65,8 +78,13 @@ import moment from "moment";
import { mapState } from "vuex"; import { mapState } from "vuex";
import { getapi, postapi, putapi, deletapi } from "@/api/api"; import { getapi, postapi, putapi, deletapi } from "@/api/api";
import { getPagePriv, checkPagePriv, objCopy, deepCopy, arrayExistObj } from "../../utlis/proFunc"; import { getPagePriv, checkPagePriv, objCopy, deepCopy, arrayExistObj } from "../../utlis/proFunc";
import DictPoison from "../../views/basic-dictionary/ToxicFactors.vue"
export default { export default {
components: {},
components: {
DictPoison
},
props: ["refFunc", "height"], props: ["refFunc", "height"],
data() { data() {
return { return {
@ -80,6 +98,7 @@ export default {
currRow: 0, currRow: 0,
choosedPoison: {}, choosedPoison: {},
dialogPoison: false, dialogPoison: false,
dialogDictPoison: false,
}; };
}, },
@ -105,25 +124,6 @@ export default {
// //
dictInit() { dictInit() {
//
// postapi("/api/app/Poison/GetPoisonWithTypeList").then(res => {
// if (res.code > -1) {
// this.dict.poison = res.data;
// this.poison = res.data;
// this.dict.poisonList = []
// this.dict.poison.forEach(e => {
// e.poisonDtos.forEach(e2 => {
// this.dict.poisonList.push({
// poisonTypeName: e.poisonTypeName,
// id: e2.id,
// displayName: e2.displayName,
// simpleCode: e2.simpleCode
// })
// });
// });
// }
// })
// //
postapi("/api/app/OccupationalAbnormal/GetList").then((res) => { postapi("/api/app/OccupationalAbnormal/GetList").then((res) => {
if (res.code > -1) { if (res.code > -1) {
@ -133,9 +133,9 @@ export default {
}, },
//
btnDispPoison(index) {
this.currRow = index
//
refreshPoison(){
let index = this.currRow
this.poisonList = deepCopy(this.dict.poisonList) this.poisonList = deepCopy(this.dict.poisonList)
this.dataTransOpts.tableM.patient_poison.forEach((e, i) => { this.dataTransOpts.tableM.patient_poison.forEach((e, i) => {
if (i != index) { if (i != index) {
@ -144,6 +144,12 @@ export default {
} }
}); });
this.poison = this.madeSelectGroup(this.poisonList) this.poison = this.madeSelectGroup(this.poisonList)
},
//
btnDispPoison(index) {
this.currRow = index
this.refreshPoison()
this.dialogPoison = true this.dialogPoison = true
}, },
@ -213,7 +219,33 @@ export default {
this.dataTransOpts.tableM.patient_poison[this.currRow]['poisonName'] = this.choosedPoison.displayName this.dataTransOpts.tableM.patient_poison[this.currRow]['poisonName'] = this.choosedPoison.displayName
this.dialogPoison = false this.dialogPoison = false
// console.log('this.dataTransOpts.tableM.patient_poison', this.dataTransOpts.tableM.patient_poison) // console.log('this.dataTransOpts.tableM.patient_poison', this.dataTransOpts.tableM.patient_poison)
},
//
btnDictPoison() {
this.dialogDictPoison = true
},
closeDialogDictPoison() {
//
postapi("/api/app/Poison/GetPoisonWithTypeList").then(res => {
if (res.code > -1) {
this.dict.poison = res.data;
this.dict.poisonList = []
this.dict.poison.forEach(e => {
e.poisonDtos.forEach(e2 => {
this.dict.poisonList.push({
poisonTypeName: e.poisonTypeName,
id: e2.id,
displayName: e2.displayName,
simpleCode: e2.simpleCode
})
});
});
this.refreshPoison()
} }
})
},
}, },

2
src/views/basic-dictionary/ToxicFactors.vue

@ -140,7 +140,7 @@
<el-dialog <el-dialog
:title="title == 1 ? '新增' : '修改'" :title="title == 1 ? '新增' : '修改'"
:visible.sync="dialogVisible" :visible.sync="dialogVisible"
width="75%"
width="75%" :append-to-body="true"
:close-on-click-modal="false" :close-on-click-modal="false"
> >
<el-form ref="form" :model="form" label-width="80px"> <el-form ref="form" :model="form" label-width="80px">

Loading…
Cancel
Save