forked from integrated_whb/integrated_whb_vue
				
			bug优化
							parent
							
								
									6c1000d5f9
								
							
						
					
					
						commit
						558799d0c9
					
				
							
								
								
									
										2
									
								
								.env
								
								
								
								
							
							
						
						
									
										2
									
								
								.env
								
								
								
								
							|  | @ -1,4 +1,4 @@ | ||||||
| VITE_BASE_URL=http://192.168.0.55:8093/ | VITE_BASE_URL=http://192.168.0.49:8093/ | ||||||
| VITE_PROXY=/api/ | VITE_PROXY=/api/ | ||||||
| VITE_FILE_URL=https://file.zcloudchina.com/YTHFile | VITE_FILE_URL=https://file.zcloudchina.com/YTHFile | ||||||
| VITE_TEMPLATE_URL=https://qaaq.qhdsafety.com/file/ | VITE_TEMPLATE_URL=https://qaaq.qhdsafety.com/file/ | ||||||
|  |  | ||||||
|  | @ -4,10 +4,23 @@ | ||||||
|       <el-row :gutter="20"> |       <el-row :gutter="20"> | ||||||
|         <el-col :span="24"> |         <el-col :span="24"> | ||||||
|           <el-divider content-position="left">基本信息</el-divider> |           <el-divider content-position="left">基本信息</el-divider> | ||||||
|  |           <div class="buttons-container"> | ||||||
|  |             <el-button type="primary" @click="fnDownloadTemplate" | ||||||
|  |               >下载模板</el-button | ||||||
|  |             > | ||||||
|  |             <el-button type="primary" @click="fnUploadQuestions" | ||||||
|  |               >上传</el-button | ||||||
|  |             > | ||||||
|  |           </div> | ||||||
|         </el-col> |         </el-col> | ||||||
|         <el-col :span="12"> |         <el-col :span="12"> | ||||||
|           <el-form-item label="自编号" prop="NUM"> |           <el-form-item label="自编号" prop="NUM"> | ||||||
|             <el-input v-model="form.NUM" maxlength="50" show-word-limit /> |             <el-input | ||||||
|  |               v-model="form.NUM" | ||||||
|  |               maxlength="50" | ||||||
|  |               show-word-limit | ||||||
|  |               clearable | ||||||
|  |             /> | ||||||
|           </el-form-item> |           </el-form-item> | ||||||
|         </el-col> |         </el-col> | ||||||
|         <el-col :span="12"> |         <el-col :span="12"> | ||||||
|  | @ -16,12 +29,18 @@ | ||||||
|               v-model="form.PLATE_NUMBER" |               v-model="form.PLATE_NUMBER" | ||||||
|               maxlength="50" |               maxlength="50" | ||||||
|               show-word-limit |               show-word-limit | ||||||
|  |               clearable | ||||||
|             /> |             /> | ||||||
|           </el-form-item> |           </el-form-item> | ||||||
|         </el-col> |         </el-col> | ||||||
|         <el-col :span="12"> |         <el-col :span="12"> | ||||||
|           <el-form-item label="车架号" prop="VIN"> |           <el-form-item label="车架号" prop="VIN"> | ||||||
|             <el-input v-model="form.VIN" maxlength="50" show-word-limit /> |             <el-input | ||||||
|  |               v-model="form.VIN" | ||||||
|  |               maxlength="50" | ||||||
|  |               show-word-limit | ||||||
|  |               clearable | ||||||
|  |             /> | ||||||
|           </el-form-item> |           </el-form-item> | ||||||
|         </el-col> |         </el-col> | ||||||
|         <el-col :span="12"> |         <el-col :span="12"> | ||||||
|  | @ -30,6 +49,7 @@ | ||||||
|               v-model="form.VEHICLE_BODY_NUMBER" |               v-model="form.VEHICLE_BODY_NUMBER" | ||||||
|               maxlength="50" |               maxlength="50" | ||||||
|               show-word-limit |               show-word-limit | ||||||
|  |               clearable | ||||||
|             /> |             /> | ||||||
|           </el-form-item> |           </el-form-item> | ||||||
|         </el-col> |         </el-col> | ||||||
|  | @ -39,6 +59,7 @@ | ||||||
|               v-model="form.TRAILER_TYPE" |               v-model="form.TRAILER_TYPE" | ||||||
|               maxlength="50" |               maxlength="50" | ||||||
|               show-word-limit |               show-word-limit | ||||||
|  |               clearable | ||||||
|             /> |             /> | ||||||
|           </el-form-item> |           </el-form-item> | ||||||
|         </el-col> |         </el-col> | ||||||
|  | @ -48,6 +69,7 @@ | ||||||
|               v-model="form.OPER_CERTIFICATE_NUM" |               v-model="form.OPER_CERTIFICATE_NUM" | ||||||
|               maxlength="50" |               maxlength="50" | ||||||
|               show-word-limit |               show-word-limit | ||||||
|  |               clearable | ||||||
|             /> |             /> | ||||||
|           </el-form-item> |           </el-form-item> | ||||||
|         </el-col> |         </el-col> | ||||||
|  | @ -62,6 +84,7 @@ | ||||||
|               v-model="form.CAR_OWNERS" |               v-model="form.CAR_OWNERS" | ||||||
|               maxlength="50" |               maxlength="50" | ||||||
|               show-word-limit |               show-word-limit | ||||||
|  |               clearable | ||||||
|             /> |             /> | ||||||
|           </el-form-item> |           </el-form-item> | ||||||
|         </el-col> |         </el-col> | ||||||
|  | @ -71,12 +94,18 @@ | ||||||
|               v-model="form.CAR_OWNERS_TEL" |               v-model="form.CAR_OWNERS_TEL" | ||||||
|               maxlength="11" |               maxlength="11" | ||||||
|               show-word-limit |               show-word-limit | ||||||
|  |               clearable | ||||||
|             /> |             /> | ||||||
|           </el-form-item> |           </el-form-item> | ||||||
|         </el-col> |         </el-col> | ||||||
|         <el-col :span="12"> |         <el-col :span="12"> | ||||||
|           <el-form-item label="联系人" prop="CONTACTS"> |           <el-form-item label="联系人" prop="CONTACTS"> | ||||||
|             <el-input v-model="form.CONTACTS" maxlength="50" show-word-limit /> |             <el-input | ||||||
|  |               v-model="form.CONTACTS" | ||||||
|  |               maxlength="50" | ||||||
|  |               show-word-limit | ||||||
|  |               clearable | ||||||
|  |             /> | ||||||
|           </el-form-item> |           </el-form-item> | ||||||
|         </el-col> |         </el-col> | ||||||
|         <el-col :span="12"> |         <el-col :span="12"> | ||||||
|  | @ -85,6 +114,7 @@ | ||||||
|               v-model="form.CONTACT_PHONE" |               v-model="form.CONTACT_PHONE" | ||||||
|               maxlength="11" |               maxlength="11" | ||||||
|               show-word-limit |               show-word-limit | ||||||
|  |               clearable | ||||||
|             /> |             /> | ||||||
|           </el-form-item> |           </el-form-item> | ||||||
|         </el-col> |         </el-col> | ||||||
|  | @ -95,6 +125,7 @@ | ||||||
|               value-format="YYYY-MM-DD" |               value-format="YYYY-MM-DD" | ||||||
|               format="YYYY-MM-DD" |               format="YYYY-MM-DD" | ||||||
|               type="date" |               type="date" | ||||||
|  |               clearable | ||||||
|             /> |             /> | ||||||
|           </el-form-item> |           </el-form-item> | ||||||
|         </el-col> |         </el-col> | ||||||
|  | @ -105,6 +136,7 @@ | ||||||
|               value-format="YYYY-MM-DD" |               value-format="YYYY-MM-DD" | ||||||
|               format="YYYY-MM-DD" |               format="YYYY-MM-DD" | ||||||
|               type="date" |               type="date" | ||||||
|  |               clearable | ||||||
|             /> |             /> | ||||||
|           </el-form-item> |           </el-form-item> | ||||||
|         </el-col> |         </el-col> | ||||||
|  | @ -115,6 +147,7 @@ | ||||||
|               value-format="YYYY-MM-DD" |               value-format="YYYY-MM-DD" | ||||||
|               format="YYYY-MM-DD" |               format="YYYY-MM-DD" | ||||||
|               type="date" |               type="date" | ||||||
|  |               clearable | ||||||
|             /> |             /> | ||||||
|           </el-form-item> |           </el-form-item> | ||||||
|         </el-col> |         </el-col> | ||||||
|  | @ -127,6 +160,7 @@ | ||||||
|               v-model="form.TRAILER_BRAND" |               v-model="form.TRAILER_BRAND" | ||||||
|               maxlength="50" |               maxlength="50" | ||||||
|               show-word-limit |               show-word-limit | ||||||
|  |               clearable | ||||||
|             /> |             /> | ||||||
|           </el-form-item> |           </el-form-item> | ||||||
|         </el-col> |         </el-col> | ||||||
|  | @ -136,6 +170,7 @@ | ||||||
|               v-model="form.TRAILER_MODEL" |               v-model="form.TRAILER_MODEL" | ||||||
|               maxlength="50" |               maxlength="50" | ||||||
|               show-word-limit |               show-word-limit | ||||||
|  |               clearable | ||||||
|             /> |             /> | ||||||
|           </el-form-item> |           </el-form-item> | ||||||
|         </el-col> |         </el-col> | ||||||
|  | @ -145,6 +180,7 @@ | ||||||
|               v-model="form.APPROVED_TOTAL_MASS" |               v-model="form.APPROVED_TOTAL_MASS" | ||||||
|               maxlength="50" |               maxlength="50" | ||||||
|               show-word-limit |               show-word-limit | ||||||
|  |               clearable | ||||||
|             /> |             /> | ||||||
|           </el-form-item> |           </el-form-item> | ||||||
|         </el-col> |         </el-col> | ||||||
|  | @ -154,12 +190,18 @@ | ||||||
|               v-model="form.APPROVED_LOAD_CAPACITY" |               v-model="form.APPROVED_LOAD_CAPACITY" | ||||||
|               maxlength="50" |               maxlength="50" | ||||||
|               show-word-limit |               show-word-limit | ||||||
|  |               clearable | ||||||
|             /> |             /> | ||||||
|           </el-form-item> |           </el-form-item> | ||||||
|         </el-col> |         </el-col> | ||||||
|         <el-col :span="12"> |         <el-col :span="12"> | ||||||
|           <el-form-item label="容积/体积" prop="VOLUME"> |           <el-form-item label="容积/体积" prop="VOLUME"> | ||||||
|             <el-input v-model="form.TEAM_NAME" maxlength="50" show-word-limit /> |             <el-input | ||||||
|  |               v-model="form.VOLUME" | ||||||
|  |               maxlength="50" | ||||||
|  |               show-word-limit | ||||||
|  |               clearable | ||||||
|  |             /> | ||||||
|           </el-form-item> |           </el-form-item> | ||||||
|         </el-col> |         </el-col> | ||||||
|         <el-col :span="12"> |         <el-col :span="12"> | ||||||
|  | @ -170,6 +212,7 @@ | ||||||
|               :autosize="{ minRows: 3 }" |               :autosize="{ minRows: 3 }" | ||||||
|               maxlength="250" |               maxlength="250" | ||||||
|               show-word-limit |               show-word-limit | ||||||
|  |               clearable | ||||||
|             /> |             /> | ||||||
|           </el-form-item> |           </el-form-item> | ||||||
|         </el-col> |         </el-col> | ||||||
|  | @ -235,7 +278,7 @@ import { | ||||||
|   setFreightTrailerEdit, |   setFreightTrailerEdit, | ||||||
| } from "@/request/enterprise_management.js"; | } from "@/request/enterprise_management.js"; | ||||||
| import { setUploadImg } from "@/request/api.js"; | import { setUploadImg } from "@/request/api.js"; | ||||||
| import { ElMessage } from "element-plus"; | import { ElMessage, ElMessageBox } from "element-plus"; | ||||||
| import { useRoute, useRouter } from "vue-router"; | import { useRoute, useRouter } from "vue-router"; | ||||||
| import useFormValidate from "@/assets/js/useFormValidate.js"; | import useFormValidate from "@/assets/js/useFormValidate.js"; | ||||||
| import { addingPrefixToFile } from "@/assets/js/utils.js"; | import { addingPrefixToFile } from "@/assets/js/utils.js"; | ||||||
|  | @ -334,6 +377,16 @@ const fnGetData = async () => { | ||||||
| }; | }; | ||||||
| fnGetData(); | fnGetData(); | ||||||
| 
 | 
 | ||||||
|  | const fnDownloadTemplate = async () => { | ||||||
|  |   await ElMessageBox.confirm("确定要下载excel模板吗?", { | ||||||
|  |     type: "warning", | ||||||
|  |   }); | ||||||
|  |   window.open( | ||||||
|  |     import.meta.env[import.meta.env.DEV ? "VITE_PROXY" : "VITE_BASE_URL"] + | ||||||
|  |       "freightTrailer/downExcel" | ||||||
|  |   ); | ||||||
|  | }; | ||||||
|  | 
 | ||||||
| const fnSubmit = debounce( | const fnSubmit = debounce( | ||||||
|   1000, |   1000, | ||||||
|   async () => { |   async () => { | ||||||
|  | @ -391,4 +444,10 @@ const fnUploadImage = async (HIDDEN_ID, FFILE, TYPE) => { | ||||||
| }; | }; | ||||||
| </script> | </script> | ||||||
| 
 | 
 | ||||||
| <style scoped lang="scss"></style> | <style scoped> | ||||||
|  | .buttons-container { | ||||||
|  |   display: flex; | ||||||
|  |   justify-content: flex-end; | ||||||
|  |   padding-bottom: 20px; | ||||||
|  | } | ||||||
|  | </style> | ||||||
|  |  | ||||||
|  | @ -7,24 +7,24 @@ | ||||||
|         @submit.prevent="fnResetPaginationTransfer" |         @submit.prevent="fnResetPaginationTransfer" | ||||||
|       > |       > | ||||||
|         <el-row> |         <el-row> | ||||||
|           <el-col :span="5"> |           <el-col :span="4"> | ||||||
|             <el-form-item label="车牌号" prop="PLATE_NUMBER"> |             <el-form-item label="车牌号" prop="PLATE_NUMBER"> | ||||||
|               <el-input v-model="searchForm.PLATE_NUMBER" /> |               <el-input v-model="searchForm.PLATE_NUMBER" clearable /> | ||||||
|             </el-form-item> |             </el-form-item> | ||||||
|           </el-col> |           </el-col> | ||||||
|           <el-col :span="5"> |           <el-col :span="5"> | ||||||
|             <el-form-item label="车架号" prop="VIN"> |             <el-form-item label="车架号" prop="VIN"> | ||||||
|               <el-input v-model="searchForm.VIN" /> |               <el-input v-model="searchForm.VIN" clearable /> | ||||||
|             </el-form-item> |             </el-form-item> | ||||||
|           </el-col> |           </el-col> | ||||||
|           <el-col :span="5"> |           <el-col :span="5"> | ||||||
|             <el-form-item label="自编号" prop="NUM"> |             <el-form-item label="自编号" prop="NUM"> | ||||||
|               <el-input v-model="searchForm.NUM" /> |               <el-input v-model="searchForm.NUM" clearable /> | ||||||
|             </el-form-item> |             </el-form-item> | ||||||
|           </el-col> |           </el-col> | ||||||
|           <el-col :span="5"> |           <el-col :span="5"> | ||||||
|             <el-form-item label="归属部门" prop="DEPARTMENT_NAME"> |             <el-form-item label="归属部门" prop="DEPARTMENT_NAME"> | ||||||
|               <el-input v-model="searchForm.DEPARTMENT_NAME" /> |               <el-input v-model="searchForm.DEPARTMENT_NAME" clearable /> | ||||||
|             </el-form-item> |             </el-form-item> | ||||||
|           </el-col> |           </el-col> | ||||||
|           <el-col :span="3"> |           <el-col :span="3"> | ||||||
|  | @ -35,9 +35,12 @@ | ||||||
|               </el-button> |               </el-button> | ||||||
|             </el-form-item> |             </el-form-item> | ||||||
|           </el-col> |           </el-col> | ||||||
|           <el-col :span="1"> |           <el-col :span="6" :offset="18"> | ||||||
|             <el-form-item label-width="10px" class="end"> |             <el-form-item label-width="10px" class="end"> | ||||||
|               <el-button @click="fnExport">导出</el-button> |               <el-button type="primary" @click="fnImportDialogChangeShow"> | ||||||
|  |                 导入 | ||||||
|  |               </el-button> | ||||||
|  |               <el-button type="primary" @click="fnExport">导出</el-button> | ||||||
|             </el-form-item> |             </el-form-item> | ||||||
|           </el-col> |           </el-col> | ||||||
|         </el-row> |         </el-row> | ||||||
|  | @ -67,7 +70,7 @@ | ||||||
|           label="初登日期" |           label="初登日期" | ||||||
|           width="150" |           width="150" | ||||||
|         /> |         /> | ||||||
|         <el-table-column prop="DUE_DATE" label="到期日期" width="150" /> |         <el-table-column prop="DUE_DATE" label="到期日期" width="200" /> | ||||||
|         <el-table-column prop="DEPARTMENT_NAME" label="归属部门" width="150" /> |         <el-table-column prop="DEPARTMENT_NAME" label="归属部门" width="150" /> | ||||||
|         <el-table-column label="操作" width="150"> |         <el-table-column label="操作" width="150"> | ||||||
|           <template #default="{ row }"> |           <template #default="{ row }"> | ||||||
|  | @ -98,7 +101,7 @@ | ||||||
|               编辑 |               编辑 | ||||||
|             </el-button> |             </el-button> | ||||||
|             <el-button |             <el-button | ||||||
|               type="primary" |               type="danger" | ||||||
|               text |               text | ||||||
|               link |               link | ||||||
|               @click="fnDelete(row.FREIGHTTRAILER_ID)" |               @click="fnDelete(row.FREIGHTTRAILER_ID)" | ||||||
|  | @ -122,11 +125,6 @@ | ||||||
|         </template> |         </template> | ||||||
|       </layout-table> |       </layout-table> | ||||||
|     </layout-card> |     </layout-card> | ||||||
|     <export-excel |  | ||||||
|       v-model:visible="data.exportExcelDialog.visible" |  | ||||||
|       :search-form="searchForm" |  | ||||||
|       :ids="data.exportExcelDialog.ids" |  | ||||||
|     /> |  | ||||||
|   </div> |   </div> | ||||||
| </template> | </template> | ||||||
| 
 | 
 | ||||||
|  | @ -139,17 +137,9 @@ import { | ||||||
|   getFreightTrailerList, |   getFreightTrailerList, | ||||||
|   setFreightTrailerDelete, |   setFreightTrailerDelete, | ||||||
| } from "@/request/enterprise_management.js"; | } from "@/request/enterprise_management.js"; | ||||||
| import ExportExcel from "./components/export_excel.vue"; |  | ||||||
| import { reactive } from "vue"; |  | ||||||
| import { debounce } from "throttle-debounce"; | import { debounce } from "throttle-debounce"; | ||||||
| import { ElMessageBox, ElMessage } from "element-plus"; | import { ElMessageBox, ElMessage } from "element-plus"; | ||||||
| const router = useRouter(); | const router = useRouter(); | ||||||
| const data = reactive({ |  | ||||||
|   exportExcelDialog: { |  | ||||||
|     visible: false, |  | ||||||
|     ids: [], |  | ||||||
|   }, |  | ||||||
| }); |  | ||||||
| const { list, pagination, searchForm, fnGetData, fnResetPagination, tableRef } = | const { list, pagination, searchForm, fnGetData, fnResetPagination, tableRef } = | ||||||
|   useListData(getFreightTrailerList); |   useListData(getFreightTrailerList); | ||||||
| const fnGetDataTransfer = () => { | const fnGetDataTransfer = () => { | ||||||
|  | @ -168,6 +158,22 @@ const fnResetPaginationTransfer = () => { | ||||||
|     DEPARTMENT_NAME: searchForm.value.DEPARTMENT_NAME, |     DEPARTMENT_NAME: searchForm.value.DEPARTMENT_NAME, | ||||||
|   }); |   }); | ||||||
| }; | }; | ||||||
|  | const fnExport = async () => { | ||||||
|  |   const selectionData = tableRef.value.getSelectionRows(); | ||||||
|  |   if (selectionData.length === 0) { | ||||||
|  |     ElMessage.warning("请选择需要导出至excel报表的记录信息"); | ||||||
|  |     return; | ||||||
|  |   } | ||||||
|  |   await ElMessageBox.confirm("确定要导出到excel吗?", { type: "warning" }); | ||||||
|  |   const DATA_IDS = selectionData.map((item) => item.RISKUNIT_ID).join(","); | ||||||
|  |   window.location.href = | ||||||
|  |     import.meta.env[import.meta.env.DEV ? "VITE_PROXY" : "VITE_BASE_URL"] + | ||||||
|  |     "/freightTrailer/excel?" + | ||||||
|  |     "&KEYWORDS=" + | ||||||
|  |     (searchForm.value.KEYWORDS || "") + | ||||||
|  |     "&DATA_IDS=" + | ||||||
|  |     DATA_IDS; | ||||||
|  | }; | ||||||
| const fnDelete = debounce( | const fnDelete = debounce( | ||||||
|   1000, |   1000, | ||||||
|   async (FREIGHTTRAILER_ID) => { |   async (FREIGHTTRAILER_ID) => { | ||||||
|  | @ -179,13 +185,6 @@ const fnDelete = debounce( | ||||||
|   { atBegin: true } |   { atBegin: true } | ||||||
| ); | ); | ||||||
| const buttonJurisdiction = await useButtonJurisdiction("hidden"); | const buttonJurisdiction = await useButtonJurisdiction("hidden"); | ||||||
| const fnExport = () => { |  | ||||||
|   const selectionData = tableRef.value.getSelectionRows(); |  | ||||||
|   data.exportExcelDialog.ids = selectionData.map( |  | ||||||
|     (item) => item.FREIGHTTRAILER_ID |  | ||||||
|   ); |  | ||||||
|   data.exportExcelDialog.visible = true; |  | ||||||
| }; |  | ||||||
| </script> | </script> | ||||||
| 
 | 
 | ||||||
| <style scoped></style> | <style scoped></style> | ||||||
|  |  | ||||||
|  | @ -37,9 +37,9 @@ | ||||||
|         <el-descriptions-item label-class-name="width_200" label="联系人"> |         <el-descriptions-item label-class-name="width_200" label="联系人"> | ||||||
|           {{ info.CONTACTS }} |           {{ info.CONTACTS }} | ||||||
|         </el-descriptions-item> |         </el-descriptions-item> | ||||||
|         <el-descriptions-item label-class-name="width_200" label="车主电话"> |         <!--        <el-descriptions-item label-class-name="width_200" label="车主电话">--> | ||||||
|           {{ info.CAR_OWNERS_TEL }} |         <!--          {{ info.CAR_OWNERS_TEL }}--> | ||||||
|         </el-descriptions-item> |         <!--        </el-descriptions-item>--> | ||||||
|         <el-descriptions-item label-class-name="width_200" label="联系电话"> |         <el-descriptions-item label-class-name="width_200" label="联系电话"> | ||||||
|           {{ info.CONTACT_PHONE }} |           {{ info.CONTACT_PHONE }} | ||||||
|         </el-descriptions-item> |         </el-descriptions-item> | ||||||
|  |  | ||||||
|  | @ -18,7 +18,7 @@ | ||||||
|         label="经营企业" |         label="经营企业" | ||||||
|         prop="OPERATINGCOMPANY" |         prop="OPERATINGCOMPANY" | ||||||
|       > |       > | ||||||
|         <span>{{ operatingCompany }}</span> |         <span>{{ form.OPERATINGCOMPANY }}</span> | ||||||
|       </el-form-item> |       </el-form-item> | ||||||
|       <el-form-item label="合同文件" prop="file"> |       <el-form-item label="合同文件" prop="file"> | ||||||
|         <layout-upload |         <layout-upload | ||||||
|  | @ -38,9 +38,9 @@ | ||||||
|           clearable |           clearable | ||||||
|         /> |         /> | ||||||
|       </el-form-item> |       </el-form-item> | ||||||
|       <el-form-item label="备注" prop="MEETING_CONTENT"> |       <el-form-item label="备注" prop="CONTENT"> | ||||||
|         <el-input |         <el-input | ||||||
|           v-model="form.MEETING_CONTENT" |           v-model="form.CONTENT" | ||||||
|           type="textarea" |           type="textarea" | ||||||
|           placeholder="请输入内容" |           placeholder="请输入内容" | ||||||
|           style="width: 300px" |           style="width: 300px" | ||||||
|  | @ -55,14 +55,13 @@ | ||||||
| </template> | </template> | ||||||
| 
 | 
 | ||||||
| <script setup> | <script setup> | ||||||
| import { onMounted, ref, toRaw } from "vue"; | import { ref, toRaw } from "vue"; | ||||||
| import { useVModels } from "@vueuse/core"; | import { useVModels } from "@vueuse/core"; | ||||||
| import { ElMessage } from "element-plus"; | import { ElMessage } from "element-plus"; | ||||||
| import LayoutUpload from "@/components/upload/index.vue"; | import LayoutUpload from "@/components/upload/index.vue"; | ||||||
| import { | import { | ||||||
|   addContractView, |   addContractView, | ||||||
|   editContractView, |   editContractView, | ||||||
|   getSafetyContractList, |  | ||||||
| } from "@/request/traffic_safety_contract.js"; | } from "@/request/traffic_safety_contract.js"; | ||||||
| 
 | 
 | ||||||
| const props = defineProps({ | const props = defineProps({ | ||||||
|  | @ -101,13 +100,6 @@ const rules = { | ||||||
|   ], |   ], | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| const operatingCompany = ref(""); |  | ||||||
| onMounted(async () => { |  | ||||||
|   const resData = await getSafetyContractList(); |  | ||||||
|   if (resData && resData.varList && resData.varList.length > 0) { |  | ||||||
|     operatingCompany.value = resData.varList[0].CORP_NAME; |  | ||||||
|   } |  | ||||||
| }); |  | ||||||
| const formRef = ref(null); | const formRef = ref(null); | ||||||
| const fnClose = () => { | const fnClose = () => { | ||||||
|   formRef.value.resetFields(); |   formRef.value.resetFields(); | ||||||
|  |  | ||||||
|  | @ -109,6 +109,7 @@ import Add from "@/views/labor_contract/components/add.vue"; | ||||||
| import LayoutPdf from "@/components/pdf/index.vue"; | import LayoutPdf from "@/components/pdf/index.vue"; | ||||||
| import { | import { | ||||||
|   deleteContractView, |   deleteContractView, | ||||||
|  |   getSafetyContractList, | ||||||
|   getSafetyContractUserList, |   getSafetyContractUserList, | ||||||
| } from "@/request/traffic_safety_contract.js"; | } from "@/request/traffic_safety_contract.js"; | ||||||
| 
 | 
 | ||||||
|  | @ -152,7 +153,16 @@ const fnAddOrEdit = async ( | ||||||
|   data.addOrEditDialog.type = type; |   data.addOrEditDialog.type = type; | ||||||
|   data.addOrEditDialog.form = {}; |   data.addOrEditDialog.form = {}; | ||||||
|   if (type === "edit" && LABORCONTRACT_ID) { |   if (type === "edit" && LABORCONTRACT_ID) { | ||||||
|     data.addOrEditDialog.form.LABORCONTRACT_ID = LABORCONTRACT_ID; |     const resData = await getSafetyContractList({ LABORCONTRACT_ID }); | ||||||
|  |     if (resData && resData.varList && resData.varList.length > 0) { | ||||||
|  |       const detail = resData.varList.find( | ||||||
|  |         (detail) => detail.USER_ID === USER_ID | ||||||
|  |       ); | ||||||
|  |       data.addOrEditDialog.form = { | ||||||
|  |         ...detail, | ||||||
|  |         OPERATINGCOMPANY: detail.CORP_NAME, | ||||||
|  |       }; | ||||||
|  |     } | ||||||
|   } else { |   } else { | ||||||
|     data.addOrEditDialog.form = { USER_ID }; |     data.addOrEditDialog.form = { USER_ID }; | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  | @ -52,8 +52,9 @@ | ||||||
|             {{ serialNumber(pagination, $index) }} |             {{ serialNumber(pagination, $index) }} | ||||||
|           </template> |           </template> | ||||||
|         </el-table-column> |         </el-table-column> | ||||||
|         <el-table-column prop="NEWCONTRACTNAME" label="合同名称" width="250" /> |         <el-table-column prop="NEWCONTRACTNAME" label="用户名称" width="100" /> | ||||||
|         <el-table-column prop="COMPLETIONSTATUS" label="完成状态" width="250"> |         <el-table-column prop="CONTRACTNAME" label="合同名称" width="250" /> | ||||||
|  |         <el-table-column prop="COMPLETIONSTATUS" label="完成状态" width="150"> | ||||||
|           <template #default="{ row }"> |           <template #default="{ row }"> | ||||||
|             <el-tag v-if="row.COMPLETIONSTATUS === '1'">已上传</el-tag> |             <el-tag v-if="row.COMPLETIONSTATUS === '1'">已上传</el-tag> | ||||||
|             <el-tag v-else>未上传</el-tag> |             <el-tag v-else>未上传</el-tag> | ||||||
|  | @ -146,7 +147,7 @@ const data = reactive({ | ||||||
| watchEffect(() => { | watchEffect(() => { | ||||||
|   if (list.value.length > 0) { |   if (list.value.length > 0) { | ||||||
|     list.value.forEach((item) => { |     list.value.forEach((item) => { | ||||||
|       item.NEWCONTRACTNAME = `${item.NAME} 合同书`; |       item.NEWCONTRACTNAME = `${item.NAME}`; | ||||||
|     }); |     }); | ||||||
|   } |   } | ||||||
| }); | }); | ||||||
|  |  | ||||||
|  | @ -195,6 +195,17 @@ | ||||||
|             /> |             /> | ||||||
|           </el-form-item> |           </el-form-item> | ||||||
|         </el-col> |         </el-col> | ||||||
|  |         <el-col :span="12"> | ||||||
|  |           <el-form-item label="合同" prop="CONTRACT"> | ||||||
|  |             <layout-upload | ||||||
|  |               v-model:file-list="form.CONTRACT" | ||||||
|  |               list-type="picture-card" | ||||||
|  |               accept=".jpg,.jpeg,.png" | ||||||
|  |               :limit="99" | ||||||
|  |               delete-to-server | ||||||
|  |             /> | ||||||
|  |           </el-form-item> | ||||||
|  |         </el-col> | ||||||
|         <el-col :span="12"> |         <el-col :span="12"> | ||||||
|           <el-form-item label="备注" prop="NOTES"> |           <el-form-item label="备注" prop="NOTES"> | ||||||
|             <el-input |             <el-input | ||||||
|  | @ -248,6 +259,7 @@ const form = ref({ | ||||||
|   REMINDER_DATE: "", |   REMINDER_DATE: "", | ||||||
|   REMINDER_STATUS: "", |   REMINDER_STATUS: "", | ||||||
|   BEIDOUINFO: [], |   BEIDOUINFO: [], | ||||||
|  |   CONTRACT: [], | ||||||
| }); | }); | ||||||
| const data = reactive({ | const data = reactive({ | ||||||
|   vehicleList: [], |   vehicleList: [], | ||||||
|  | @ -339,6 +351,15 @@ const fnGetData = async () => { | ||||||
| }; | }; | ||||||
| fnGetData(); | fnGetData(); | ||||||
| 
 | 
 | ||||||
|  | // 假设128为北斗信息图片类型,129为合同图片类型 | ||||||
|  | const fnUploadImage = async (currentId, FFILE, TYPE) => { | ||||||
|  |   const formData = new FormData(); | ||||||
|  |   formData.append("FOREIGN_KEY", currentId); | ||||||
|  |   formData.append("TYPE", TYPE); // 这里的TYPE根据调用函数时传入的值决定 | ||||||
|  |   formData.append("FFILE", FFILE); | ||||||
|  |   await setUploadImg(formData); | ||||||
|  | }; | ||||||
|  | 
 | ||||||
| const fnSubmit = debounce( | const fnSubmit = debounce( | ||||||
|   1000, |   1000, | ||||||
|   async () => { |   async () => { | ||||||
|  | @ -347,22 +368,33 @@ const fnSubmit = debounce( | ||||||
|       ? await setBeidouAdd({ ...form.value }) |       ? await setBeidouAdd({ ...form.value }) | ||||||
|       : await setBeidouEdit({ ...form.value, BEIDOU_ID }); |       : await setBeidouEdit({ ...form.value, BEIDOU_ID }); | ||||||
|     const currentId = resData.pd.BEIDOU_ID; |     const currentId = resData.pd.BEIDOU_ID; | ||||||
|  | 
 | ||||||
|  |     // 北斗信息图片上传 | ||||||
|     for (let i = 0; i < form.value.BEIDOUINFO.length; i++) { |     for (let i = 0; i < form.value.BEIDOUINFO.length; i++) { | ||||||
|       if (form.value.BEIDOUINFO[i].raw) |       if (form.value.BEIDOUINFO[i].raw) { | ||||||
|         await fnUploadImage(currentId, form.value.BEIDOUINFO[i].raw, 128); |         await fnUploadImage(currentId, form.value.BEIDOUINFO[i].raw, "128"); // 北斗信息图片 | ||||||
|       } |       } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     // 合同图片上传 | ||||||
|  |     for (let i = 0; i < form.value.CONTRACT.length; i++) { | ||||||
|  |       if (form.value.CONTRACT[i].raw) { | ||||||
|  |         await fnUploadImage(currentId, form.value.CONTRACT[i].raw, "130"); // 合同图片 | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     ElMessage.success("保存成功"); |     ElMessage.success("保存成功"); | ||||||
|     router.back(); |     router.back(); | ||||||
|   }, |   }, | ||||||
|   { atBegin: true } |   { atBegin: true } | ||||||
| ); | ); | ||||||
| const fnUploadImage = async (HIDDEN_ID, FFILE, TYPE) => { | // const fnUploadImage = async (currentId, FFILE, TYPE) => { | ||||||
|   const formData = new FormData(); | //   const formData = new FormData(); | ||||||
|   formData.append("FOREIGN_KEY", HIDDEN_ID); | //   formData.append("FOREIGN_KEY", currentId); | ||||||
|   formData.append("TYPE", TYPE); | //   formData.append("TYPE", TYPE); | ||||||
|   formData.append("FFILE", FFILE); | //   formData.append("FFILE", FFILE); | ||||||
|   await setUploadImg(formData); | //   await setUploadImg(formData); | ||||||
| }; | // }; | ||||||
| </script> | </script> | ||||||
| 
 | 
 | ||||||
| <style scoped lang="scss"></style> | <style scoped lang="scss"></style> | ||||||
|  |  | ||||||
|  | @ -81,6 +81,22 @@ | ||||||
|             class="ml-10" |             class="ml-10" | ||||||
|           /> |           /> | ||||||
|         </el-descriptions-item> |         </el-descriptions-item> | ||||||
|  |         <el-descriptions-item | ||||||
|  |           label-class-name="width_200" | ||||||
|  |           label="合同" | ||||||
|  |           span="2" | ||||||
|  |         > | ||||||
|  |           <img | ||||||
|  |             v-for="item in info.CONTRACT" | ||||||
|  |             :key="item.FILEPATH" | ||||||
|  |             v-viewer | ||||||
|  |             :src="item.url" | ||||||
|  |             width="100" | ||||||
|  |             height="100" | ||||||
|  |             alt="" | ||||||
|  |             class="ml-10" | ||||||
|  |           /> | ||||||
|  |         </el-descriptions-item> | ||||||
|         <el-descriptions-item |         <el-descriptions-item | ||||||
|           label-class-name="width_200" |           label-class-name="width_200" | ||||||
|           label="备注" |           label="备注" | ||||||
|  |  | ||||||
|  | @ -160,7 +160,7 @@ | ||||||
|             </el-button> |             </el-button> | ||||||
|             <el-button |             <el-button | ||||||
|               v-if="expandedRows[row.INSPECTANNUALLY_ID]" |               v-if="expandedRows[row.INSPECTANNUALLY_ID]" | ||||||
|               type="primary" |               type="danger" | ||||||
|               link |               link | ||||||
|               @click="fnDelete(row.INSPECTANNUALLY_ID)" |               @click="fnDelete(row.INSPECTANNUALLY_ID)" | ||||||
|               >删除 |               >删除 | ||||||
|  |  | ||||||
|  | @ -22,7 +22,7 @@ | ||||||
|         label="经营企业" |         label="经营企业" | ||||||
|         prop="OPERATINGCOMPANY" |         prop="OPERATINGCOMPANY" | ||||||
|       > |       > | ||||||
|         <span>{{ operatingCompany }}</span> |         <span>{{ form.OPERATINGCOMPANY }}</span> | ||||||
|       </el-form-item> |       </el-form-item> | ||||||
|       <el-form-item label="职业危害告知书" prop="file"> |       <el-form-item label="职业危害告知书" prop="file"> | ||||||
|         <layout-upload |         <layout-upload | ||||||
|  | @ -42,9 +42,9 @@ | ||||||
|           clearable |           clearable | ||||||
|         /> |         /> | ||||||
|       </el-form-item> |       </el-form-item> | ||||||
|       <el-form-item label="备注" prop="MEETING_CONTENT"> |       <el-form-item label="备注" prop="CONTENT"> | ||||||
|         <el-input |         <el-input | ||||||
|           v-model="form.MEETING_CONTENT" |           v-model="form.CONTENT" | ||||||
|           type="textarea" |           type="textarea" | ||||||
|           placeholder="请输入内容" |           placeholder="请输入内容" | ||||||
|           style="width: 300px" |           style="width: 300px" | ||||||
|  | @ -59,14 +59,13 @@ | ||||||
| </template> | </template> | ||||||
| 
 | 
 | ||||||
| <script setup> | <script setup> | ||||||
| import { onMounted, ref, toRaw } from "vue"; | import { ref, toRaw } from "vue"; | ||||||
| import { useVModels } from "@vueuse/core"; | import { useVModels } from "@vueuse/core"; | ||||||
| import { ElMessage } from "element-plus"; | import { ElMessage } from "element-plus"; | ||||||
| import LayoutUpload from "@/components/upload/index.vue"; | import LayoutUpload from "@/components/upload/index.vue"; | ||||||
| import { | import { | ||||||
|   addOccupationalHazardsView, |   addOccupationalHazardsView, | ||||||
|   editOccupationalHazardsView, |   editOccupationalHazardsView, | ||||||
|   getSafetyOccupationalHazardsList, |  | ||||||
| } from "@/request/traffic_occupational_hazards.js"; | } from "@/request/traffic_occupational_hazards.js"; | ||||||
| 
 | 
 | ||||||
| const props = defineProps({ | const props = defineProps({ | ||||||
|  | @ -107,13 +106,6 @@ const rules = { | ||||||
|   ], |   ], | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| const operatingCompany = ref(""); |  | ||||||
| onMounted(async () => { |  | ||||||
|   const resData = await getSafetyOccupationalHazardsList(); |  | ||||||
|   if (resData && resData.varList && resData.varList.length > 0) { |  | ||||||
|     operatingCompany.value = resData.varList[0].CORP_NAME; |  | ||||||
|   } |  | ||||||
| }); |  | ||||||
| const formRef = ref(null); | const formRef = ref(null); | ||||||
| const fnClose = () => { | const fnClose = () => { | ||||||
|   formRef.value.resetFields(); |   formRef.value.resetFields(); | ||||||
|  |  | ||||||
|  | @ -111,6 +111,7 @@ import Add from "@/views/occupational_hazards/components/add.vue"; | ||||||
| import LayoutPdf from "@/components/pdf/index.vue"; | import LayoutPdf from "@/components/pdf/index.vue"; | ||||||
| import { | import { | ||||||
|   deleteOccupationalHazardsView, |   deleteOccupationalHazardsView, | ||||||
|  |   getSafetyOccupationalHazardsList, | ||||||
|   getSafetyOccupationalHazardsUserList, |   getSafetyOccupationalHazardsUserList, | ||||||
| } from "@/request/traffic_occupational_hazards.js"; | } from "@/request/traffic_occupational_hazards.js"; | ||||||
| 
 | 
 | ||||||
|  | @ -154,7 +155,18 @@ const fnAddOrEdit = async ( | ||||||
|   data.addOrEditDialog.type = type; |   data.addOrEditDialog.type = type; | ||||||
|   data.addOrEditDialog.form = {}; |   data.addOrEditDialog.form = {}; | ||||||
|   if (type === "edit" && OCCUPATIONALHAZARDS_ID) { |   if (type === "edit" && OCCUPATIONALHAZARDS_ID) { | ||||||
|     data.addOrEditDialog.form.OCCUPATIONALHAZARDS_ID = OCCUPATIONALHAZARDS_ID; |     const resData = await getSafetyOccupationalHazardsList({ | ||||||
|  |       OCCUPATIONALHAZARDS_ID, | ||||||
|  |     }); | ||||||
|  |     if (resData && resData.varList && resData.varList.length > 0) { | ||||||
|  |       const detail = resData.varList.find( | ||||||
|  |         (detail) => detail.USER_ID === USER_ID | ||||||
|  |       ); | ||||||
|  |       data.addOrEditDialog.form = { | ||||||
|  |         ...detail, | ||||||
|  |         OPERATINGCOMPANY: detail.CORP_NAME, | ||||||
|  |       }; | ||||||
|  |     } | ||||||
|   } else { |   } else { | ||||||
|     data.addOrEditDialog.form = { USER_ID }; |     data.addOrEditDialog.form = { USER_ID }; | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  | @ -58,22 +58,27 @@ | ||||||
|         </el-table-column> |         </el-table-column> | ||||||
|         <el-table-column |         <el-table-column | ||||||
|           prop="NEWOCCUPATIONALNAME" |           prop="NEWOCCUPATIONALNAME" | ||||||
|  |           label="用户名称" | ||||||
|  |           width="100" | ||||||
|  |         /> | ||||||
|  |         <el-table-column | ||||||
|  |           prop="OCCUPATIONALNAME" | ||||||
|           label="职业危害告知书" |           label="职业危害告知书" | ||||||
|           width="250" |           width="250" | ||||||
|         /> |         /> | ||||||
|         <el-table-column prop="COMPLETIONSTATUS" label="完成状态" width="250"> |         <el-table-column prop="COMPLETIONSTATUS" label="完成状态" width="100"> | ||||||
|           <template #default="{ row }"> |           <template #default="{ row }"> | ||||||
|             <el-tag v-if="row.COMPLETIONSTATUS === '1'">已上传</el-tag> |             <el-tag v-if="row.COMPLETIONSTATUS === '1'">已上传</el-tag> | ||||||
|             <el-tag v-else>未上传</el-tag> |             <el-tag v-else>未上传</el-tag> | ||||||
|           </template> |           </template> | ||||||
|         </el-table-column> |         </el-table-column> | ||||||
|         <el-table-column label="有效状态" prop="VALIDSTATUS"> |         <el-table-column label="有效状态" prop="VALIDSTATUS" width="100"> | ||||||
|           <template #default="{ row }"> |           <template #default="{ row }"> | ||||||
|             <el-tag v-if="row.VALIDSTATUS === '1'">正常</el-tag> |             <el-tag v-if="row.VALIDSTATUS === '1'">正常</el-tag> | ||||||
|             <el-tag v-else>未生效</el-tag> |             <el-tag v-else>未生效</el-tag> | ||||||
|           </template> |           </template> | ||||||
|         </el-table-column> |         </el-table-column> | ||||||
|         <el-table-column prop="CORP_NAME" label="经营企业" width="150" /> |         <el-table-column prop="CORP_NAME" label="经营企业" width="220" /> | ||||||
|         <el-table-column prop="OPERATIONTYPE" label="经营类型" width="150" /> |         <el-table-column prop="OPERATIONTYPE" label="经营类型" width="150" /> | ||||||
|         <el-table-column prop="EXPIRYDATE" label="到期时间" width="150" /> |         <el-table-column prop="EXPIRYDATE" label="到期时间" width="150" /> | ||||||
|         <el-table-column prop="CREATETIME" label="创建时间" width="150" /> |         <el-table-column prop="CREATETIME" label="创建时间" width="150" /> | ||||||
|  | @ -154,7 +159,7 @@ const data = reactive({ | ||||||
| watchEffect(() => { | watchEffect(() => { | ||||||
|   if (list.value.length > 0) { |   if (list.value.length > 0) { | ||||||
|     list.value.forEach((item) => { |     list.value.forEach((item) => { | ||||||
|       item.NEWOCCUPATIONALNAME = `${item.NAME} 职业危害告知书`; |       item.NEWOCCUPATIONALNAME = `${item.NAME}`; | ||||||
|     }); |     }); | ||||||
|   } |   } | ||||||
| }); | }); | ||||||
|  |  | ||||||
|  | @ -18,7 +18,7 @@ | ||||||
|         label="经营企业" |         label="经营企业" | ||||||
|         prop="OPERATINGCOMPANY" |         prop="OPERATINGCOMPANY" | ||||||
|       > |       > | ||||||
|         <span>{{ operatingCompany }}</span> |         <span>{{ form.OPERATINGCOMPANY }}</span> | ||||||
|       </el-form-item> |       </el-form-item> | ||||||
|       <el-form-item label="会议附件" prop="file"> |       <el-form-item label="会议附件" prop="file"> | ||||||
|         <layout-upload |         <layout-upload | ||||||
|  | @ -47,14 +47,13 @@ | ||||||
| </template> | </template> | ||||||
| 
 | 
 | ||||||
| <script setup> | <script setup> | ||||||
| import { onMounted, ref, toRaw } from "vue"; | import { ref, toRaw } from "vue"; | ||||||
| import { useVModels } from "@vueuse/core"; | import { useVModels } from "@vueuse/core"; | ||||||
| import { ElMessage } from "element-plus"; | import { ElMessage } from "element-plus"; | ||||||
| import LayoutUpload from "@/components/upload/index.vue"; | import LayoutUpload from "@/components/upload/index.vue"; | ||||||
| import { | import { | ||||||
|   addProductionView, |   addProductionView, | ||||||
|   editProductionView, |   editProductionView, | ||||||
|   getSafetyProductionList, |  | ||||||
| } from "@/request/traffic_safety_production.js"; | } from "@/request/traffic_safety_production.js"; | ||||||
| 
 | 
 | ||||||
| const props = defineProps({ | const props = defineProps({ | ||||||
|  | @ -91,15 +90,6 @@ const rules = { | ||||||
|   SYSTEMNAME: [{ required: true, message: "请输入名称", trigger: "blur" }], |   SYSTEMNAME: [{ required: true, message: "请输入名称", trigger: "blur" }], | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| const operatingCompany = ref(""); |  | ||||||
| const operationType = ref(""); |  | ||||||
| onMounted(async () => { |  | ||||||
|   const resData = await getSafetyProductionList(); |  | ||||||
|   if (resData && resData.varList && resData.varList.length > 0) { |  | ||||||
|     operatingCompany.value = resData.varList[0].CORP_NAME; |  | ||||||
|     operationType.value = resData.varList[0].OPERATIONTYPE; |  | ||||||
|   } |  | ||||||
| }); |  | ||||||
| const formRef = ref(null); | const formRef = ref(null); | ||||||
| const fnClose = () => { | const fnClose = () => { | ||||||
|   formRef.value.resetFields(); |   formRef.value.resetFields(); | ||||||
|  |  | ||||||
|  | @ -150,7 +150,15 @@ const fnAddOrEdit = async (SAFETYPRODUCTION_ID = "", type = "add") => { | ||||||
|   data.addOrEditDialog.visible = true; |   data.addOrEditDialog.visible = true; | ||||||
|   data.addOrEditDialog.type = type; |   data.addOrEditDialog.type = type; | ||||||
|   if (type === "edit" && SAFETYPRODUCTION_ID) { |   if (type === "edit" && SAFETYPRODUCTION_ID) { | ||||||
|     data.addOrEditDialog.form.SAFETYPRODUCTION_ID = SAFETYPRODUCTION_ID; |     const resData = await getSafetyProductionList({ SAFETYPRODUCTION_ID }); | ||||||
|  |     if (resData && resData.varList && resData.varList.length > 0) { | ||||||
|  |       const detail = resData.varList[0]; | ||||||
|  |       data.addOrEditDialog.form = { | ||||||
|  |         ...detail, | ||||||
|  |         OPERATINGCOMPANY: detail.CORP_NAME, | ||||||
|  |         EXPIRYDATE: detail.EXPIRYDATE, | ||||||
|  |       }; | ||||||
|  |     } | ||||||
|   } else { |   } else { | ||||||
|     data.addOrEditDialog.form = {}; |     data.addOrEditDialog.form = {}; | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  | @ -22,7 +22,7 @@ | ||||||
|         label="经营企业" |         label="经营企业" | ||||||
|         prop="OPERATINGCOMPANY" |         prop="OPERATINGCOMPANY" | ||||||
|       > |       > | ||||||
|         <span>{{ operatingCompany }}</span> |         <span>{{ form.OPERATINGCOMPANY }}</span> | ||||||
|       </el-form-item> |       </el-form-item> | ||||||
|       <el-form-item label="岗位安全责任书" prop="file"> |       <el-form-item label="岗位安全责任书" prop="file"> | ||||||
|         <layout-upload |         <layout-upload | ||||||
|  | @ -39,12 +39,13 @@ | ||||||
|           format="YYYY-MM-DD" |           format="YYYY-MM-DD" | ||||||
|           value-format="YYYY-MM-DD" |           value-format="YYYY-MM-DD" | ||||||
|           placeholder="选择时间" |           placeholder="选择时间" | ||||||
|  |           style="width: 200px" | ||||||
|           clearable |           clearable | ||||||
|         /> |         /> | ||||||
|       </el-form-item> |       </el-form-item> | ||||||
|       <el-form-item label="备注" prop="MEETING_CONTENT"> |       <el-form-item label="备注" prop="CONTENT"> | ||||||
|         <el-input |         <el-input | ||||||
|           v-model="form.MEETING_CONTENT" |           v-model="form.CONTENT" | ||||||
|           type="textarea" |           type="textarea" | ||||||
|           placeholder="请输入内容" |           placeholder="请输入内容" | ||||||
|           style="width: 300px" |           style="width: 300px" | ||||||
|  | @ -60,14 +61,13 @@ | ||||||
| </template> | </template> | ||||||
| 
 | 
 | ||||||
| <script setup> | <script setup> | ||||||
| import { onMounted, ref, toRaw } from "vue"; | import { ref, toRaw } from "vue"; | ||||||
| import { useVModels } from "@vueuse/core"; | import { useVModels } from "@vueuse/core"; | ||||||
| import { ElMessage } from "element-plus"; | import { ElMessage } from "element-plus"; | ||||||
| import LayoutUpload from "@/components/upload/index.vue"; | import LayoutUpload from "@/components/upload/index.vue"; | ||||||
| import { | import { | ||||||
|   addResponsibilityView, |   addResponsibilityView, | ||||||
|   editResponsibilityView, |   editResponsibilityView, | ||||||
|   getSafetyResponsibilityList, |  | ||||||
| } from "@/request/traffic_safety_responsibility.js"; | } from "@/request/traffic_safety_responsibility.js"; | ||||||
| 
 | 
 | ||||||
| const props = defineProps({ | const props = defineProps({ | ||||||
|  | @ -108,13 +108,6 @@ const rules = { | ||||||
|   ], |   ], | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| const operatingCompany = ref(""); |  | ||||||
| onMounted(async () => { |  | ||||||
|   const resData = await getSafetyResponsibilityList(); |  | ||||||
|   if (resData && resData.varList && resData.varList.length > 0) { |  | ||||||
|     operatingCompany.value = resData.varList[0].CORP_NAME; |  | ||||||
|   } |  | ||||||
| }); |  | ||||||
| const formRef = ref(null); | const formRef = ref(null); | ||||||
| const fnClose = () => { | const fnClose = () => { | ||||||
|   formRef.value.resetFields(); |   formRef.value.resetFields(); | ||||||
|  |  | ||||||
|  | @ -111,6 +111,7 @@ import Add from "@/views/safety_responsibility/components/add.vue"; | ||||||
| import LayoutPdf from "@/components/pdf/index.vue"; | import LayoutPdf from "@/components/pdf/index.vue"; | ||||||
| import { | import { | ||||||
|   deleteResponsibilityView, |   deleteResponsibilityView, | ||||||
|  |   getSafetyResponsibilityList, | ||||||
|   getSafetyResponsibilityUserList, |   getSafetyResponsibilityUserList, | ||||||
| } from "@/request/traffic_safety_responsibility.js"; | } from "@/request/traffic_safety_responsibility.js"; | ||||||
| 
 | 
 | ||||||
|  | @ -154,7 +155,18 @@ const fnAddOrEdit = async ( | ||||||
|   data.addOrEditDialog.type = type; |   data.addOrEditDialog.type = type; | ||||||
|   data.addOrEditDialog.form = {}; |   data.addOrEditDialog.form = {}; | ||||||
|   if (type === "edit" && SAFETYRESPONSIBILITY_ID) { |   if (type === "edit" && SAFETYRESPONSIBILITY_ID) { | ||||||
|     data.addOrEditDialog.form.SAFETYRESPONSIBILITY_ID = SAFETYRESPONSIBILITY_ID; |     const resData = await getSafetyResponsibilityList({ | ||||||
|  |       SAFETYRESPONSIBILITY_ID, | ||||||
|  |     }); | ||||||
|  |     if (resData && resData.varList && resData.varList.length > 0) { | ||||||
|  |       const detail = resData.varList.find( | ||||||
|  |         (detail) => detail.USER_ID === USER_ID | ||||||
|  |       ); | ||||||
|  |       data.addOrEditDialog.form = { | ||||||
|  |         ...detail, | ||||||
|  |         OPERATINGCOMPANY: detail.CORP_NAME, | ||||||
|  |       }; | ||||||
|  |     } | ||||||
|   } else { |   } else { | ||||||
|     data.addOrEditDialog.form = { USER_ID }; |     data.addOrEditDialog.form = { USER_ID }; | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  | @ -56,12 +56,13 @@ | ||||||
|             {{ serialNumber(pagination, $index) }} |             {{ serialNumber(pagination, $index) }} | ||||||
|           </template> |           </template> | ||||||
|         </el-table-column> |         </el-table-column> | ||||||
|  |         <el-table-column prop="NEWCONTRACTNAME" label="用户名称" width="100" /> | ||||||
|         <el-table-column |         <el-table-column | ||||||
|           prop="NEWCONTRACTNAME" |           prop="RESPONSIBILITYNAME" | ||||||
|           label="岗位安全责任书" |           label="岗位安全责任书" | ||||||
|           width="250" |           width="250" | ||||||
|         /> |         /> | ||||||
|         <el-table-column prop="COMPLETIONSTATUS" label="完成状态" width="250"> |         <el-table-column prop="COMPLETIONSTATUS" label="完成状态" width="100"> | ||||||
|           <template #default="{ row }"> |           <template #default="{ row }"> | ||||||
|             <el-tag v-if="row.COMPLETIONSTATUS === '1'">已上传</el-tag> |             <el-tag v-if="row.COMPLETIONSTATUS === '1'">已上传</el-tag> | ||||||
|             <el-tag v-else>未上传</el-tag> |             <el-tag v-else>未上传</el-tag> | ||||||
|  | @ -154,7 +155,7 @@ const data = reactive({ | ||||||
| watchEffect(() => { | watchEffect(() => { | ||||||
|   if (list.value.length > 0) { |   if (list.value.length > 0) { | ||||||
|     list.value.forEach((item) => { |     list.value.forEach((item) => { | ||||||
|       item.NEWCONTRACTNAME = `${item.NAME} 岗位安全责任书`; |       item.NEWCONTRACTNAME = `${item.NAME}`; | ||||||
|     }); |     }); | ||||||
|   } |   } | ||||||
| }); | }); | ||||||
|  |  | ||||||
|  | @ -23,7 +23,7 @@ | ||||||
|         label="经营企业" |         label="经营企业" | ||||||
|         prop="OPERATINGCOMPANY" |         prop="OPERATINGCOMPANY" | ||||||
|       > |       > | ||||||
|         <span>{{ operatingCompany }}</span> |         <span>{{ form.OPERATINGCOMPANY }}</span> | ||||||
|       </el-form-item> |       </el-form-item> | ||||||
|       <el-form-item label="承诺书文件" prop="file"> |       <el-form-item label="承诺书文件" prop="file"> | ||||||
|         <layout-upload |         <layout-upload | ||||||
|  | @ -44,9 +44,9 @@ | ||||||
|           clearable |           clearable | ||||||
|         /> |         /> | ||||||
|       </el-form-item> |       </el-form-item> | ||||||
|       <el-form-item label="备注" prop="MEETING_CONTENT"> |       <el-form-item label="备注" prop="CONTENT"> | ||||||
|         <el-input |         <el-input | ||||||
|           v-model="form.MEETING_CONTENT" |           v-model="form.CONTENT" | ||||||
|           type="textarea" |           type="textarea" | ||||||
|           placeholder="请输入内容" |           placeholder="请输入内容" | ||||||
|           style="width: 300px" |           style="width: 300px" | ||||||
|  | @ -61,14 +61,13 @@ | ||||||
| </template> | </template> | ||||||
| 
 | 
 | ||||||
| <script setup> | <script setup> | ||||||
| import { onMounted, ref, toRaw } from "vue"; | import { ref, toRaw } from "vue"; | ||||||
| import { useVModels } from "@vueuse/core"; | import { useVModels } from "@vueuse/core"; | ||||||
| import { ElMessage } from "element-plus"; | import { ElMessage } from "element-plus"; | ||||||
| import LayoutUpload from "@/components/upload/index.vue"; | import LayoutUpload from "@/components/upload/index.vue"; | ||||||
| import { | import { | ||||||
|   addCommitmentView, |   addCommitmentView, | ||||||
|   editCommitmentView, |   editCommitmentView, | ||||||
|   getSafetyCommitmentList, |  | ||||||
| } from "@/request/traffic_safety_commitment.js"; | } from "@/request/traffic_safety_commitment.js"; | ||||||
| 
 | 
 | ||||||
| const props = defineProps({ | const props = defineProps({ | ||||||
|  | @ -108,14 +107,6 @@ const rules = { | ||||||
|     { required: true, message: "请输入承诺书名称", trigger: "blur" }, |     { required: true, message: "请输入承诺书名称", trigger: "blur" }, | ||||||
|   ], |   ], | ||||||
| }; | }; | ||||||
| 
 |  | ||||||
| const operatingCompany = ref(""); |  | ||||||
| onMounted(async () => { |  | ||||||
|   const resData = await getSafetyCommitmentList(); |  | ||||||
|   if (resData && resData.varList && resData.varList.length > 0) { |  | ||||||
|     operatingCompany.value = resData.varList[0].CORP_NAME; |  | ||||||
|   } |  | ||||||
| }); |  | ||||||
| const formRef = ref(null); | const formRef = ref(null); | ||||||
| const fnClose = () => { | const fnClose = () => { | ||||||
|   formRef.value.resetFields(); |   formRef.value.resetFields(); | ||||||
|  |  | ||||||
|  | @ -105,6 +105,7 @@ | ||||||
| import { useRoute } from "vue-router"; | import { useRoute } from "vue-router"; | ||||||
| import { | import { | ||||||
|   deleteCommitmentView, |   deleteCommitmentView, | ||||||
|  |   getSafetyCommitmentList, | ||||||
|   getSafetyCommitmentUserList, |   getSafetyCommitmentUserList, | ||||||
| } from "@/request/traffic_safety_commitment.js"; | } from "@/request/traffic_safety_commitment.js"; | ||||||
| import useListData from "@/assets/js/useListData.js"; | import useListData from "@/assets/js/useListData.js"; | ||||||
|  | @ -154,9 +155,20 @@ const fnAddOrEdit = async ( | ||||||
| ) => { | ) => { | ||||||
|   data.addOrEditDialog.visible = true; |   data.addOrEditDialog.visible = true; | ||||||
|   data.addOrEditDialog.type = type; |   data.addOrEditDialog.type = type; | ||||||
|   data.addOrEditDialog.form = {}; |   if (type === "edit" && SECURITYCOMMITMENT_ID && USER_ID) { | ||||||
|   if (type === "edit" && SECURITYCOMMITMENT_ID) { |     const resData = await getSafetyCommitmentList({ | ||||||
|     data.addOrEditDialog.form.SECURITYCOMMITMENT_ID = SECURITYCOMMITMENT_ID; |       SECURITYCOMMITMENT_ID, | ||||||
|  |       USER_ID, | ||||||
|  |     }); | ||||||
|  |     if (resData && resData.varList && resData.varList.length > 0) { | ||||||
|  |       const detail = resData.varList.find( | ||||||
|  |         (detail) => detail.USER_ID === USER_ID | ||||||
|  |       ); | ||||||
|  |       data.addOrEditDialog.form = { | ||||||
|  |         ...detail, | ||||||
|  |         OPERATINGCOMPANY: detail.CORP_NAME, | ||||||
|  |       }; | ||||||
|  |     } | ||||||
|   } else { |   } else { | ||||||
|     data.addOrEditDialog.form = { USER_ID }; |     data.addOrEditDialog.form = { USER_ID }; | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  | @ -54,10 +54,11 @@ | ||||||
|         </el-table-column> |         </el-table-column> | ||||||
|         <el-table-column |         <el-table-column | ||||||
|           prop="NEWCOMMITMENTNAME" |           prop="NEWCOMMITMENTNAME" | ||||||
|           label="承诺书名称" |           label="用户名称" | ||||||
|           width="250" |           width="100" | ||||||
|         /> |         /> | ||||||
|         <el-table-column prop="COMPLETIONSTATUS" label="完成状态" width="250"> |         <el-table-column prop="COMMITMENTNAME" label="承诺书名称" width="250" /> | ||||||
|  |         <el-table-column prop="COMPLETIONSTATUS" label="完成状态" width="100"> | ||||||
|           <template #default="{ row }"> |           <template #default="{ row }"> | ||||||
|             <el-tag v-if="row.COMPLETIONSTATUS === '1'">已上传</el-tag> |             <el-tag v-if="row.COMPLETIONSTATUS === '1'">已上传</el-tag> | ||||||
|             <el-tag v-else>未上传</el-tag> |             <el-tag v-else>未上传</el-tag> | ||||||
|  | @ -150,7 +151,7 @@ const data = reactive({ | ||||||
| watchEffect(() => { | watchEffect(() => { | ||||||
|   if (list.value.length > 0) { |   if (list.value.length > 0) { | ||||||
|     list.value.forEach((item) => { |     list.value.forEach((item) => { | ||||||
|       item.NEWCOMMITMENTNAME = `${item.NAME} 安全承诺书`; |       item.NEWCOMMITMENTNAME = `${item.NAME}`; | ||||||
|     }); |     }); | ||||||
|   } |   } | ||||||
| }); | }); | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue