|
@@ -37,9 +37,14 @@
|
|
|
</div>
|
|
|
<div class="text1" style="padding-top: 8px;padding-bottom: 3px">请选择责任类别</div>
|
|
|
<div class="tag-box">
|
|
|
- <div :class="selectData.keyDepartment.tagData.includes('1') ? 'tag tag-active' : 'tag'" @click="handleClickTag('keyDepartment', '1')">主要负责人</div>
|
|
|
- <div :class="selectData.keyDepartment.tagData.includes('2') ? 'tag tag-active' : 'tag'" @click="handleClickTag('keyDepartment', '2')">分管负责人</div>
|
|
|
- <div :class="selectData.keyDepartment.tagData.includes('3') ? 'tag tag-active' : 'tag'" @click="handleClickTag('keyDepartment', '3')">具体负责人</div>
|
|
|
+ <div
|
|
|
+ v-for="item in typeList1"
|
|
|
+ :key="item.value"
|
|
|
+ :class="selectData.keyDepartment.tagData.includes(item) ? 'tag tag-active' : 'tag'"
|
|
|
+ @click="handleClickTag('keyDepartment', item)"
|
|
|
+ >
|
|
|
+ {{ item.label }}
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div v-if="item.label === '水利部门'" class="text-box">
|
|
@@ -49,20 +54,27 @@
|
|
|
</div>
|
|
|
<div class="text1" style="padding-top: 8px;padding-bottom: 3px">请选择责任类别</div>
|
|
|
<div class="tag-box">
|
|
|
- <div :class="selectData.waterResourcesDepartment.tagData.includes('1') ? 'tag tag-active' : 'tag'" @click="handleClickTag('waterResourcesDepartment', '1')">管理单位责任人</div>
|
|
|
- <div :class="selectData.waterResourcesDepartment.tagData.includes('2') ? 'tag tag-active' : 'tag'" @click="handleClickTag('waterResourcesDepartment', '2')">行政责任人</div>
|
|
|
- <div :class="selectData.waterResourcesDepartment.tagData.includes('3') ? 'tag tag-active' : 'tag'" @click="handleClickTag('waterResourcesDepartment', '3')">技术责任人</div>
|
|
|
- <div :class="selectData.waterResourcesDepartment.tagData.includes('4') ? 'tag tag-active' : 'tag'" @click="handleClickTag('waterResourcesDepartment', '4')">巡查责任人</div>
|
|
|
- <div :class="selectData.waterResourcesDepartment.tagData.includes('5') ? 'tag tag-active' : 'tag'" @click="handleClickTag('waterResourcesDepartment', '5')">其他</div>
|
|
|
+ <div
|
|
|
+ v-for="item in typeList2"
|
|
|
+ :key="item.value"
|
|
|
+ :class="selectData.keyDepartment.tagData.includes(item) ? 'tag tag-active' : 'tag'"
|
|
|
+ @click="handleClickTag('keyDepartment', item)"
|
|
|
+ >
|
|
|
+ {{ item.label }}
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div v-if="item.label === '抢救队伍'" class="text-box">
|
|
|
<div class="text1" style="padding-top: 8px;padding-bottom: 3px">请选择责任类别</div>
|
|
|
<div class="tag-box">
|
|
|
- <div :class="selectData.rescueTeam.tagData.includes('1') ? 'tag tag-active' : 'tag'" @click="handleClickTag('rescueTeam', '1')">主要负责人</div>
|
|
|
- <div :class="selectData.rescueTeam.tagData.includes('2') ? 'tag tag-active' : 'tag'" @click="handleClickTag('rescueTeam', '2')">分管负责人</div>
|
|
|
- <div :class="selectData.rescueTeam.tagData.includes('3') ? 'tag tag-active' : 'tag'" @click="handleClickTag('rescueTeam', '3')">具体联系人</div>
|
|
|
- <div :class="selectData.rescueTeam.tagData.includes('4') ? 'tag tag-active' : 'tag'" @click="handleClickTag('rescueTeam', '4')">抢险队员</div>
|
|
|
+ <div
|
|
|
+ v-for="item in typeList3"
|
|
|
+ :key="item.value"
|
|
|
+ :class="selectData.keyDepartment.tagData.includes(item) ? 'tag tag-active' : 'tag'"
|
|
|
+ @click="handleClickTag('keyDepartment', item)"
|
|
|
+ >
|
|
|
+ {{ item.label }}
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div v-if="item.label === '地质灾害'" class="text-box">
|
|
@@ -301,60 +313,99 @@ const selectOptions = ref([
|
|
|
]);
|
|
|
const selectData = ref({
|
|
|
government: {
|
|
|
- data: []
|
|
|
+ data: [],
|
|
|
+ labelData: []
|
|
|
},
|
|
|
headquarters: {
|
|
|
- data: []
|
|
|
+ data: [],
|
|
|
+ labelData: []
|
|
|
},
|
|
|
emergencyDepartment: {
|
|
|
- data: []
|
|
|
+ data: [],
|
|
|
+ labelData: []
|
|
|
},
|
|
|
memberUnit: {
|
|
|
name: '',
|
|
|
- data: []
|
|
|
+ data: [],
|
|
|
+ labelData: []
|
|
|
},
|
|
|
keyDepartment: {
|
|
|
name: '',
|
|
|
tagData: [],
|
|
|
- data: []
|
|
|
+ data: [],
|
|
|
+ labelData: []
|
|
|
},
|
|
|
administrativeVillage: {
|
|
|
- data: []
|
|
|
+ data: [],
|
|
|
+ labelData: []
|
|
|
},
|
|
|
waterResourcesDepartment: {
|
|
|
name: '',
|
|
|
tagData: [],
|
|
|
- data: []
|
|
|
+ data: [],
|
|
|
+ labelData: []
|
|
|
},
|
|
|
threatenedTransfer: {
|
|
|
- data: []
|
|
|
+ data: [],
|
|
|
+ labelData: []
|
|
|
},
|
|
|
rescueTeam: {
|
|
|
tagData: [],
|
|
|
- data: []
|
|
|
+ data: [],
|
|
|
+ labelData: []
|
|
|
},
|
|
|
geologicalDisaster: {
|
|
|
name: '',
|
|
|
- data: []
|
|
|
+ data: [],
|
|
|
+ labelData: []
|
|
|
},
|
|
|
other: {
|
|
|
name: '',
|
|
|
- data: []
|
|
|
+ data: [],
|
|
|
+ labelData: []
|
|
|
},
|
|
|
-})
|
|
|
+});
|
|
|
+const typeList1 = ref([
|
|
|
+ { label: '主要负责人', value: '1' },
|
|
|
+ { label: '分管负责人', value: '2' },
|
|
|
+ { label: '具体负责人', value: '3' },
|
|
|
+]);
|
|
|
+const typeList2 = ref([
|
|
|
+ { label: '管理单位责任人', value: '1' },
|
|
|
+ { label: '行政责任人', value: '2' },
|
|
|
+ { label: '技术责任人', value: '3' },
|
|
|
+ { label: '巡查责任人', value: '4' },
|
|
|
+ { label: '其他', value: '5' }
|
|
|
+]);
|
|
|
+const typeList3 = ref([
|
|
|
+ { label: '主要负责人', value: '1' },
|
|
|
+ { label: '分管负责人', value: '2' },
|
|
|
+ { label: '具体联系人', value: '3' },
|
|
|
+ { label: '抢险队员', value: '4' }
|
|
|
+]);
|
|
|
// 子项选中变化
|
|
|
const checkBoxChange = (data) => {
|
|
|
let checked = selectData.value[data.key] && selectData.value[data.key].data && data.list.length === selectData.value[data.key].data.length;
|
|
|
data.isIndeterminate = !checked && selectData.value[data.key].data.length > 0;
|
|
|
data.checked = checked;
|
|
|
+ let labelData = [];
|
|
|
+ selectData.value[data.key].data.forEach(item => {
|
|
|
+ for(let i = 0; i < data.list.length; i++) {
|
|
|
+ if (item === data.list[i].value) {
|
|
|
+ labelData.push(data.list[i].label);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ selectData.value[data.key].labelData = labelData;
|
|
|
+ selectData.value[data.key].parentName = data.label;
|
|
|
};
|
|
|
|
|
|
-const handleClickTag = (key, value) => {
|
|
|
- let index = selectData.value[key].tagData.findIndex(item => item === value);
|
|
|
+const handleClickTag = (key, data) => {
|
|
|
+ let index = selectData.value[key].tagData.findIndex(item => item.value === data.value);
|
|
|
if (index > -1) {
|
|
|
selectData.value[key].tagData.splice(index, 1);
|
|
|
} else {
|
|
|
- selectData.value[key].tagData.push(value);
|
|
|
+ selectData.value[key].tagData.push(data);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -362,8 +413,28 @@ const onCancel = () => {
|
|
|
emits('update:modelValue', false)
|
|
|
}
|
|
|
const onConfirm = () => {
|
|
|
+ let data = [];
|
|
|
+ for(let key in selectData.value) {
|
|
|
+ if (selectData.value[key].data && selectData.value[key].data.length > 0) {
|
|
|
+ let obj = {
|
|
|
+ key: key,
|
|
|
+ parentName: selectData.value[key].parentName,
|
|
|
+ data: selectData.value[key].data,
|
|
|
+ labelData: selectData.value[key].labelData,
|
|
|
+ name: '',
|
|
|
+ tagData: []
|
|
|
+ }
|
|
|
+ if (['memberUnit', 'keyDepartment', 'waterResourcesDepartment', 'geologicalDisaster', 'other'].includes(key) && selectData.value[key].name) {
|
|
|
+ obj.name = selectData.value[key].name;
|
|
|
+ }
|
|
|
+ if (['keyDepartment', 'waterResourcesDepartment', 'rescueTeam'].includes(key) && selectData.value[key].tagData && selectData.value[key].tagData.length > 0) {
|
|
|
+ obj.tagData = selectData.value[key].tagData;
|
|
|
+ }
|
|
|
+ data.push(obj)
|
|
|
+ }
|
|
|
+ }
|
|
|
onCancel();
|
|
|
- emits('confirm')
|
|
|
+ emits('confirm', data)
|
|
|
};
|
|
|
</script>
|
|
|
|