| 
					
				 | 
			
			
				@@ -62,14 +62,10 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					<!-- 通报类别(单选框) --> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					<el-row :gutter="24"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						<el-col :span="24"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							<el-form-item label="通报类别" prop="notificationMattersType" required> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-								<el-select 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-									v-model="item.notificationMattersType" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-									:disabled="!isEditable" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-									placeholder="请选择通报类别" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-								> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							<el-form-item label="通报类别" prop="conm"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								<el-select v-model="item.conm" :disabled="!isEditable" placeholder="请选择通报类别"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 									<el-option 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-										v-for="item in notificationMattersTypeOptions" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+										v-for="item in conmOptions" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 										:key="item.value" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 										:label="item.label" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 										:value="item.value" 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -82,7 +78,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					<!-- 水上交通安全信息(多行文本) --> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					<el-row :gutter="24"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						<el-col :span="24"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							<el-form-item label="水上交通安全信息" prop="wtis" required> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							<el-form-item label="水上交通安全信息" prop="wtis"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								<el-input 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 									v-model="item.wtis" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 									type="textarea" 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -99,8 +95,16 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					<!-- 接收单位名称 --> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					<el-row :gutter="24"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						<el-col :span="24"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							<el-form-item label="接收单位名称" prop="receivingUnitName" required> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-								<el-input v-model="item.receivingUnitName" placeholder="" :disabled="true" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							<el-form-item label="接收单位名称" prop="middleIdList"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								<el-tree-select 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									v-model="item.middleIdList" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									:data="unitOptions" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									:disabled="!isEditable" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									node-key="strId" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									style="width: 100%" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									show-checkbox 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									multiple 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								/> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							</el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						</el-col> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					</el-row> 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -131,27 +135,19 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						</el-col> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					</el-row> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					<el-row :gutter="24"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						<el-col :span="24"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							<el-form-item label="上传附件"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-								<div style="color: #999999"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-									提示:目前支持的文件格式: *.gif, *.jpeg, *.jpg, *.png, *.rar, *.zip, *.doc, *.ppt, *.xls, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-									*.pdf, *.docx *.xlsx, *.bmp, *.xml,*.ofd,*.wps。 文件大小支持:100M以内。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-								</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							</el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						</el-col> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						<el-col :span="8"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							<el-form-item label="行政处罚决定" prop="smr"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-								<FileUpload :isShowTip="false" v-model="item.smr" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							<el-form-item label="查看附件" prop="smr"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								<FileUpload v-model="item.smr" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							</el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						</el-col> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						<el-col :span="8"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							<el-form-item label="通报事项的相关证据" prop="ertnmFilePath"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-								<FileUpload :isShowTip="false" v-model="item.ertnmFilePath" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								<FileUpload v-model="item.ertnmFilePath" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							</el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						</el-col> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						<el-col :span="8"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							<el-form-item label="通报事项的其他材料" prop="omfnmFilePath"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-								<FileUpload :isShowTip="false" v-model="item.omfnmFilePath" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								<FileUpload v-model="item.omfnmFilePath" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							</el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						</el-col> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					</el-row> 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -159,7 +155,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					<!-- 安全管理建议 --> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					<el-row :gutter="24" class="mt-4"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						<el-col :span="24"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							<el-form-item label="安全管理建议" prop="smr" required> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							<el-form-item label="安全管理建议" prop="smr"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								<el-input 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 									v-model="item.smr" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 									type="textarea" 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -173,11 +169,11 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						</el-col> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					</el-row> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					<!-- 安全管理建议附件(核心改造) --> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					<!-- 安全管理建议附件 --> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					<el-row :gutter="24"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						<el-col :span="24"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							<el-form-item label="安全管理建议附件"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-								<FileUpload :isShowTip="false" v-model="item.smraFilePath" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								<FileUpload v-model="item.smraFilePath" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							</el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						</el-col> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					</el-row> 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -185,7 +181,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					<!-- 是否需要反馈 --> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					<el-row :gutter="24"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						<el-col :span="6"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							<el-form-item label="是否需要反馈" prop="wfir" required> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							<el-form-item label="是否需要反馈" prop="wfir"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								<el-select v-model="item.wfir" placeholder="请选择是否需要反馈" :disabled="!isEditable"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 									<el-option 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 										v-for="item in isFeedback" 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -219,7 +215,10 @@ import type { FormInstance, FormRules, UploadFile } from 'element-plus'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { UploadFilled, Plus, Delete, Document } from '@element-plus/icons-vue'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { ElMessage } from 'element-plus'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import MattersListDrawer from './mattersListDrawer.vue'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import { outTypeList, asyncOutTypeList } from '@/libs/commonMeth'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { outTypeList, asyncOutTypeList, outDeptTree } from '@/libs/commonMeth'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { TreeOptions } from '@/types/global'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import useDeptStore from '@/store/modules/dept'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 interface Props { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	formData: any; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -228,7 +227,7 @@ const props = withDefaults(defineProps<Props>(), { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	formData: {}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-const notificationMattersTypeOptions = asyncOutTypeList('bj_category_onm'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const conmOptions = asyncOutTypeList('bj_category_onm'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const industryType = asyncOutTypeList('bj_industry_type'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const isFeedback = asyncOutTypeList('bj_is_feedback'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -254,12 +253,12 @@ const formRules = reactive<FormRules>({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		{ required: true, message: '请输入通报标准或具体行为', trigger: 'blur' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		{ max: 1000, message: '长度不能超过1000个字符', trigger: 'blur' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	notificationMattersType: [{ required: true, message: '请选择通报类别', trigger: 'change' }], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	conm: [{ required: true, message: '请选择通报类别', trigger: 'change' }], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	wtis: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		{ required: true, message: '请填写水上交通安全信息', trigger: 'blur' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		{ max: 3000, message: '长度不能超过3000个字符', trigger: 'blur' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	receivingUnitName: [{ required: true, message: '请选择接收单位名称', trigger: 'change' }], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	middleIdList: [{ required: true, message: '请选择接收单位名称', trigger: 'change' }], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	safetySuggestion: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		{ required: true, message: '请填写安全管理建议', trigger: 'blur' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		{ max: 200, message: '长度不能超过200个字符', trigger: 'blur' }, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -270,8 +269,12 @@ const formRules = reactive<FormRules>({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 // 抽屉控制 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const drawerVisible = ref(false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const unitOptions: any = ref<TreeOptions[]>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const deptStore = useDeptStore(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 // 初始化 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-onMounted(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+onMounted(async () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	// 从路由获取页面类型 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	const type = route.query.type as 'add' | 'edit' | 'detail'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	if (['add', 'edit', 'detail'].includes(type)) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -282,6 +285,11 @@ onMounted(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	if (currentType.value === 'edit' || currentType.value === 'detail') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		fetchNoticeData(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	// 加载组织架构 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if (!deptStore.hasDeptData) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		await deptStore.loadDeptDataFromCache(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	unitOptions.value = deptStore.deptData; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 // 监听路由变化 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -307,6 +315,7 @@ const onClickNotice = (id: number) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const selectedRow = (row: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	noticeItems.value[noticeItems.value.length - 1] = row; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	noticeItems.value.forEach(item => (item.middleIdList = [])); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	drawerVisible.value = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -322,7 +331,9 @@ const handleDelete = (index: number) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 // 添加通报事项 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const addNoticeItem = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	noticeItems.value.push({}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	noticeItems.value.push({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		middleIdList: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 // 表单校验 
			 |