forked from integrated_whb/integrated_whb_vue
				
			货运挂车
							parent
							
								
									bd44a63496
								
							
						
					
					
						commit
						0bd143e47d
					
				|  | @ -1,5 +1,5 @@ | ||||||
| import { post, upload } from "@/request/axios.js"; | import { post, upload } from "@/request/axios.js"; | ||||||
| 
 | import { ref } from "vue"; | ||||||
| export const getEnterpriseList = (params) => post("/corpinfo/list", params); // 获取企业列表
 | export const getEnterpriseList = (params) => post("/corpinfo/list", params); // 获取企业列表
 | ||||||
| export const getEnterpriseInfo = (params) => post("/corpinfo/goEdit", params); // 获取企业信息
 | export const getEnterpriseInfo = (params) => post("/corpinfo/goEdit", params); // 获取企业信息
 | ||||||
| export const setEnterpriseInfo = (params) => upload("/corpinfo/edit", params); // 修改企业信息
 | export const setEnterpriseInfo = (params) => upload("/corpinfo/edit", params); // 修改企业信息
 | ||||||
|  | @ -53,3 +53,17 @@ export const setElectronicFenceEdit = (params) => | ||||||
|   post("/electronicfence/edit", params); // 电子围栏区域新增
 |   post("/electronicfence/edit", params); // 电子围栏区域新增
 | ||||||
| export const getElectronicFenceView = (params) => | export const getElectronicFenceView = (params) => | ||||||
|   post("/electronicfence/goEdit", params); // 电子围栏区域详情
 |   post("/electronicfence/goEdit", params); // 电子围栏区域详情
 | ||||||
|  | export const getFreightTrailerList = (params) => post("/freightTrailer/list", params); // 货运挂车列表
 | ||||||
|  | export const getFreightTrailerView = (params) => post("/freightTrailer/goEdit", params); // 货运挂车查看
 | ||||||
|  | export const setFreightTrailerAdd = (params) => post("/freightTrailer/add", params); // 货运挂车新增
 | ||||||
|  | export const setFreightTrailerEdit = (params) => post("/freightTrailer/edit", params); // 货运挂车修改
 | ||||||
|  | export const setFreightTrailerDelete = (params) => post("/freightTrailer/delete", params); // 货运挂车删除
 | ||||||
|  | const getCorpList = (params) => post("/freightTrailer/corpList", params) | ||||||
|  | export const getFreightTrailerCorpList = async () => { | ||||||
|  |     const resData = await getCorpList() | ||||||
|  |     return ref(resData.list); | ||||||
|  | };// 货运挂车 企业列表
 | ||||||
|  | export const getFreightTrailerCorpList1 = async () => { | ||||||
|  |     const resData = await getCorpList() | ||||||
|  |     return resData.list; | ||||||
|  | };// 货运挂车 企业列表
 | ||||||
|  | @ -0,0 +1,293 @@ | ||||||
|  | <template> | ||||||
|  |     <layout-card> | ||||||
|  |         <el-form ref="formRef" :rules="rules" :model="form" label-width="140px"> | ||||||
|  |             <el-row :gutter="20"> | ||||||
|  |                 <el-col :span="24"> | ||||||
|  |                     <el-divider content-position="left">基本信息</el-divider> | ||||||
|  |                 </el-col> | ||||||
|  |                 <el-col :span="12"> | ||||||
|  |                     <el-form-item label="自编号" prop="NUM"> | ||||||
|  |                         <el-input v-model.number="form.NUM" /> | ||||||
|  |                     </el-form-item> | ||||||
|  |                 </el-col> | ||||||
|  |                 <el-col :span="12"> | ||||||
|  |                     <el-form-item label="车牌号" prop="PLATE_NUMBER"> | ||||||
|  |                         <el-input v-model="form.PLATE_NUMBER" /> | ||||||
|  |                     </el-form-item> | ||||||
|  |                 </el-col> | ||||||
|  |                 <el-col :span="12"> | ||||||
|  |                     <el-form-item label="车架号" prop="VIN"> | ||||||
|  |                         <el-input v-model="form.VIN" /> | ||||||
|  |                     </el-form-item> | ||||||
|  |                 </el-col> | ||||||
|  |                 <el-col :span="12"> | ||||||
|  |                     <el-form-item label="车身编号" prop="VEHICLE_BODY_NUMBER"> | ||||||
|  |                         <el-input v-model="form.VEHICLE_BODY_NUMBER" /> | ||||||
|  |                     </el-form-item> | ||||||
|  |                 </el-col> | ||||||
|  |                 <el-col :span="12"> | ||||||
|  |                     <el-form-item label="挂车类型" prop="TRAILER_TYPE"> | ||||||
|  |                         <el-input v-model="form.TRAILER_TYPE" /> | ||||||
|  |                     </el-form-item> | ||||||
|  |                 </el-col> | ||||||
|  |                 <el-col :span="12"> | ||||||
|  |                     <el-form-item label="营运证号" prop="OPER_CERTIFICATE_NUM"> | ||||||
|  |                         <el-input v-model="form.OPER_CERTIFICATE_NUM" /> | ||||||
|  |                     </el-form-item> | ||||||
|  |                 </el-col> | ||||||
|  |                 <el-col :span="12"> | ||||||
|  |                     <el-form-item label="归属部门" prop="BELONGING_DEPT"> | ||||||
|  |                         <layout-department v-model="form.BELONGING_DEPT"/> | ||||||
|  |                     </el-form-item> | ||||||
|  |                 </el-col> | ||||||
|  |                 <el-col :span="12"> | ||||||
|  |                     <el-form-item label="车主/业户" prop="CAR_OWNERS"> | ||||||
|  |                         <el-input v-model="form.CAR_OWNERS" /> | ||||||
|  |                     </el-form-item> | ||||||
|  |                 </el-col> | ||||||
|  |                 <el-col :span="12"> | ||||||
|  |                     <el-form-item label="车主电话" prop="CAR_OWNERS_TEL"> | ||||||
|  |                         <el-input v-model="form.CAR_OWNERS_TEL" /> | ||||||
|  |                     </el-form-item> | ||||||
|  |                 </el-col> | ||||||
|  |                 <el-col :span="12"> | ||||||
|  |                     <el-form-item label="联系人" prop="CONTACTS"> | ||||||
|  |                         <el-input v-model="form.CONTACTS" /> | ||||||
|  |                     </el-form-item> | ||||||
|  |                 </el-col> | ||||||
|  |                 <el-col :span="12"> | ||||||
|  |                     <el-form-item label="联系电话" prop="CONTACT_PHONE"> | ||||||
|  |                         <el-input v-model="form.CONTACT_PHONE" /> | ||||||
|  |                     </el-form-item> | ||||||
|  |                 </el-col> | ||||||
|  |                 <el-col :span="12"> | ||||||
|  |                     <el-form-item label="初登日期" prop="INITIAL_REGISTRATION_DATE"> | ||||||
|  |                         <el-date-picker | ||||||
|  |                                 v-model="form.INITIAL_REGISTRATION_DATE" | ||||||
|  |                                 value-format="YYYY-MM-DD" | ||||||
|  |                                 format="YYYY-MM-DD" | ||||||
|  |                                 type="date" | ||||||
|  |                         /> | ||||||
|  |                     </el-form-item> | ||||||
|  |                 </el-col> | ||||||
|  |                 <el-col :span="12"> | ||||||
|  |                     <el-form-item label="发证日期" prop="CERTIFICATE_DATE"> | ||||||
|  |                         <el-date-picker | ||||||
|  |                                 v-model="form.CERTIFICATE_DATE" | ||||||
|  |                                 value-format="YYYY-MM-DD" | ||||||
|  |                                 format="YYYY-MM-DD" | ||||||
|  |                                 type="date" | ||||||
|  |                         /> | ||||||
|  |                     </el-form-item> | ||||||
|  |                 </el-col> | ||||||
|  |                 <el-col :span="12"> | ||||||
|  |                     <el-form-item label="到期日期" prop="DUE_DATE"> | ||||||
|  |                         <el-date-picker | ||||||
|  |                                 v-model="form.DUE_DATE" | ||||||
|  |                                 value-format="YYYY-MM-DD" | ||||||
|  |                                 format="YYYY-MM-DD" | ||||||
|  |                                 type="date" | ||||||
|  |                         /> | ||||||
|  |                     </el-form-item> | ||||||
|  |                 </el-col> | ||||||
|  |                 <el-col :span="24"> | ||||||
|  |                     <el-divider content-position="left">详细信息</el-divider> | ||||||
|  |                 </el-col> | ||||||
|  |                 <el-col :span="12"> | ||||||
|  |                     <el-form-item label="挂车品牌" prop="TRAILER_BRAND"> | ||||||
|  |                         <el-input v-model="form.TRAILER_BRAND" /> | ||||||
|  |                     </el-form-item> | ||||||
|  |                 </el-col> | ||||||
|  |                 <el-col :span="12"> | ||||||
|  |                     <el-form-item label="挂车型号" prop="TRAILER_MODEL"> | ||||||
|  |                         <el-input v-model="form.TRAILER_MODEL" /> | ||||||
|  |                     </el-form-item> | ||||||
|  |                 </el-col> | ||||||
|  |                 <el-col :span="12"> | ||||||
|  |                     <el-form-item label="核定总质量" prop="APPROVED_TOTAL_MASS"> | ||||||
|  |                         <el-input v-model="form.APPROVED_TOTAL_MASS" /> | ||||||
|  |                     </el-form-item> | ||||||
|  |                 </el-col> | ||||||
|  |                 <el-col :span="12"> | ||||||
|  |                     <el-form-item label="核定载质量" prop="APPROVED_LOAD_CAPACITY"> | ||||||
|  |                         <el-input v-model="form.APPROVED_LOAD_CAPACITY" /> | ||||||
|  |                     </el-form-item> | ||||||
|  |                 </el-col> | ||||||
|  |                 <el-col :span="12"> | ||||||
|  |                     <el-form-item label="容积/体积" prop="VOLUME"> | ||||||
|  |                         <el-input v-model="form.TEAM_NAME" /> | ||||||
|  |                     </el-form-item> | ||||||
|  |                 </el-col> | ||||||
|  |                 <el-col :span="12"> | ||||||
|  |                     <el-form-item label="备注" prop="NOTES"> | ||||||
|  |                         <el-input | ||||||
|  |                                 v-model="form.NOTES" | ||||||
|  |                                 type="textarea" | ||||||
|  |                                 :autosize="{ minRows: 3 }" | ||||||
|  |                         /> | ||||||
|  |                     </el-form-item> | ||||||
|  |                 </el-col> | ||||||
|  |                 <el-col :span="24"> | ||||||
|  |                     <el-divider content-position="left">相关照片</el-divider> | ||||||
|  |                 </el-col> | ||||||
|  |                 <el-col :span="12"> | ||||||
|  |                     <el-form-item label="挂车照片" prop="TRAILER_IMG"> | ||||||
|  |                         <layout-upload | ||||||
|  |                                 v-model:file-list="form.TRAILER_IMG" | ||||||
|  |                                 list-type="picture-card" | ||||||
|  |                                 accept=".jpg,.jpeg,.png" | ||||||
|  | 
 | ||||||
|  |                                 delete-to-server | ||||||
|  |                         /> | ||||||
|  |                     </el-form-item> | ||||||
|  |                 </el-col> | ||||||
|  |                 <el-col :span="12"> | ||||||
|  |                     <el-form-item label="行驶证照片" prop="DRIVING_LICENSE_IMG"> | ||||||
|  |                         <layout-upload | ||||||
|  |                                 v-model:file-list="form.DRIVING_LICENSE_IMG" | ||||||
|  |                                 list-type="picture-card" | ||||||
|  |                                 accept=".jpg,.jpeg,.png" | ||||||
|  | 
 | ||||||
|  |                                 delete-to-server | ||||||
|  |                         /> | ||||||
|  |                     </el-form-item> | ||||||
|  |                 </el-col> | ||||||
|  |                 <el-col :span="12"> | ||||||
|  |                     <el-form-item label="运营证照片" prop="OPER_CERTIFICATE_IMG"> | ||||||
|  |                         <layout-upload | ||||||
|  |                                 v-model:file-list="form.OPER_CERTIFICATE_IMG" | ||||||
|  |                                 list-type="picture-card" | ||||||
|  |                                 accept=".jpg,.jpeg,.png" | ||||||
|  | 
 | ||||||
|  |                                 delete-to-server | ||||||
|  |                         /> | ||||||
|  |                     </el-form-item> | ||||||
|  |                 </el-col> | ||||||
|  |                 <el-col :span="12"> | ||||||
|  |                     <el-form-item label="挂车资料" prop="TRAILER_INFO"> | ||||||
|  |                         <layout-upload | ||||||
|  |                                 v-model:file-list="form.TRAILER_INFO" | ||||||
|  |                                 list-type="picture-card" | ||||||
|  |                                 accept=".jpg,.jpeg,.png" | ||||||
|  | 
 | ||||||
|  |                                 delete-to-server | ||||||
|  |                         /> | ||||||
|  |                     </el-form-item> | ||||||
|  |                 </el-col> | ||||||
|  |             </el-row> | ||||||
|  |         </el-form> | ||||||
|  |         <div class="mt-10 tc"> | ||||||
|  |             <el-button type="primary" @click="fnSubmit">保存</el-button> | ||||||
|  |         </div> | ||||||
|  |     </layout-card> | ||||||
|  | </template> | ||||||
|  | 
 | ||||||
|  | <script setup> | ||||||
|  |     import LayoutUpload from "@/components/upload/index.vue"; | ||||||
|  |     import LayoutDepartment from "@/components/department/index.vue"; | ||||||
|  |     import { ref } from "vue"; | ||||||
|  |     import { debounce } from "throttle-debounce"; | ||||||
|  |     import {getFreightTrailerView, setFreightTrailerAdd ,setFreightTrailerEdit,} from "@/request/enterprise_management.js"; | ||||||
|  |     import { setUploadImg } from "@/request/api.js"; | ||||||
|  |     import { ElMessage } from "element-plus"; | ||||||
|  |     import { useRoute, useRouter, } from "vue-router"; | ||||||
|  |     import useFormValidate from "@/assets/js/useFormValidate.js"; | ||||||
|  |     import { addingPrefixToFile } from "@/assets/js/utils.js"; | ||||||
|  |     const route = useRoute(); | ||||||
|  |     const router = useRouter(); | ||||||
|  |     const FREIGHTTRAILER_ID = route.query.FREIGHTTRAILER_ID | ||||||
|  |     const formRef = ref(null); | ||||||
|  |     const form = ref({ | ||||||
|  |         NUM:'', | ||||||
|  |         PLATE_NUMBER:'', | ||||||
|  |         VIN:'', | ||||||
|  |         VEHICLE_BODY_NUMBER:'', | ||||||
|  |         TRAILER_TYPE:'', | ||||||
|  |         OPER_CERTIFICATE_NUM:'', | ||||||
|  |         BELONGING_DEPT:'', | ||||||
|  |         CAR_OWNERS:'', | ||||||
|  |         CAR_OWNERS_TEL:'', | ||||||
|  |         CONTACTS:'', | ||||||
|  |         CONTACT_PHONE:'', | ||||||
|  |         INITIAL_REGISTRATION_DATE:'', | ||||||
|  |         CERTIFICATE_DATE:'', | ||||||
|  |         DUE_DATE:'', | ||||||
|  |         TRAILER_BRAND:'', | ||||||
|  |         TRAILER_MODEL:'', | ||||||
|  |         APPROVED_TOTAL_MASS:'', | ||||||
|  |         APPROVED_LOAD_CAPACITY:'', | ||||||
|  |         VOLUME:'', | ||||||
|  |         NOTES:'', | ||||||
|  |         TRAILER_IMG:[], | ||||||
|  |         DRIVING_LICENSE_IMG:[], | ||||||
|  |         OPER_CERTIFICATE_IMG:[], | ||||||
|  |         TRAILER_INFO:[], | ||||||
|  |     }); | ||||||
|  |     const rules = { | ||||||
|  |         PLATE_NUMBER: [{ required: true, message: "请输入", trigger: "blur" }], | ||||||
|  |         VIN: [{ required: true, message: "请输入", trigger: "blur" }], | ||||||
|  |         TRAILER_TYPE: [{ required: true, message: "请输入", trigger: "blur" }], | ||||||
|  |         CAR_OWNERS: [{ required: true, message: "请输入", trigger: "blur" }], | ||||||
|  |         CAR_OWNERS_TEL: [{ required: true, message: "请输入", trigger: "blur" }], | ||||||
|  |         CONTACTS: [{ required: true, message: "请输入", trigger: "blur" }], | ||||||
|  |         CONTACT_PHONE: [{ required: true, message: "请输入", trigger: "blur" }], | ||||||
|  |         INITIAL_REGISTRATION_DATE: [{ required: true, message: "请输入", trigger: "blur" }], | ||||||
|  |     } | ||||||
|  |     const fnGetData = async () => { | ||||||
|  |         if (!FREIGHTTRAILER_ID) return; | ||||||
|  |         const resData = await getFreightTrailerView({ FREIGHTTRAILER_ID }); | ||||||
|  |         form.value = resData.pd; | ||||||
|  |         form.value.TRAILER_IMG = addingPrefixToFile( | ||||||
|  |             resData.trailerImgs | ||||||
|  |         ); | ||||||
|  |         form.value.DRIVING_LICENSE_IMG = addingPrefixToFile( | ||||||
|  |             resData.drivingLicenseImgs | ||||||
|  |         ); | ||||||
|  |         form.value.OPER_CERTIFICATE_IMG = addingPrefixToFile( | ||||||
|  |             resData.operCertificateImgs | ||||||
|  |         ); | ||||||
|  |         form.value.TRAILER_INFO = addingPrefixToFile( | ||||||
|  |             resData.trailerInfoImgs | ||||||
|  |         ); | ||||||
|  |     }; | ||||||
|  |     fnGetData(); | ||||||
|  | 
 | ||||||
|  |     const fnSubmit = debounce( | ||||||
|  |         1000, | ||||||
|  |         async () => { | ||||||
|  |             await useFormValidate(formRef); | ||||||
|  |             const resData = !FREIGHTTRAILER_ID | ||||||
|  |                 ? await setFreightTrailerAdd({ ...form.value }) | ||||||
|  |                 : await setFreightTrailerEdit({ ...form.value ,FREIGHTTRAILER_ID:FREIGHTTRAILER_ID}); | ||||||
|  |             const currentFreighttrailerId =resData.pd.FREIGHTTRAILER_ID | ||||||
|  |             for (let i = 0; i < form.value.TRAILER_IMG.length; i++) { | ||||||
|  |                 if (form.value.TRAILER_IMG[i].raw) | ||||||
|  |                     await fnUploadImage(currentFreighttrailerId, form.value.TRAILER_IMG[i].raw, 120); | ||||||
|  |             } | ||||||
|  |             for (let i = 0; i < form.value.DRIVING_LICENSE_IMG.length; i++) { | ||||||
|  |                 if (form.value.DRIVING_LICENSE_IMG[i].raw) | ||||||
|  |                     await fnUploadImage(currentFreighttrailerId, form.value.DRIVING_LICENSE_IMG[i].raw, 121); | ||||||
|  |             } | ||||||
|  |             for (let i = 0; i < form.value.OPER_CERTIFICATE_IMG.length; i++) { | ||||||
|  |                 if (form.value.OPER_CERTIFICATE_IMG[i].raw) | ||||||
|  |                     await fnUploadImage(currentFreighttrailerId, form.value.OPER_CERTIFICATE_IMG[i].raw, 122); | ||||||
|  |             } | ||||||
|  |             for (let i = 0; i < form.value.TRAILER_INFO.length; i++) { | ||||||
|  |                 if (form.value.TRAILER_INFO[i].raw) | ||||||
|  |                     await fnUploadImage(currentFreighttrailerId, form.value.TRAILER_INFO[i].raw, 123); | ||||||
|  |             } | ||||||
|  |             ElMessage.success("保存成功"); | ||||||
|  |             router.back(); | ||||||
|  |         }, | ||||||
|  |         { atBegin: true } | ||||||
|  |     ); | ||||||
|  |     const fnUploadImage = async (HIDDEN_ID, FFILE, TYPE) => { | ||||||
|  |         const formData = new FormData(); | ||||||
|  |         formData.append("FOREIGN_KEY", HIDDEN_ID); | ||||||
|  |         formData.append("TYPE", TYPE); | ||||||
|  |         formData.append("FFILE", FFILE); | ||||||
|  |         await setUploadImg(formData); | ||||||
|  |     }; | ||||||
|  | </script> | ||||||
|  | 
 | ||||||
|  | <style scoped lang="scss"></style> | ||||||
|  | @ -0,0 +1,135 @@ | ||||||
|  | <template> | ||||||
|  |   <el-dialog v-model="visible" title="导出" :on-close="fnClose"> | ||||||
|  |     <el-checkbox | ||||||
|  |       :indeterminate="isIndeterminate" | ||||||
|  |       v-model="checkAll" | ||||||
|  |       @change="fnCheckAllChange" | ||||||
|  |     > | ||||||
|  |       全选 | ||||||
|  |     </el-checkbox> | ||||||
|  |     <el-checkbox v-model="havePicture"> | ||||||
|  |       导出带图片的excel(最多10条) | ||||||
|  |     </el-checkbox> | ||||||
|  |     <el-divider /> | ||||||
|  |     <el-checkbox-group v-model="checkOptions" @change="fnCheckedChange"> | ||||||
|  |       <el-row> | ||||||
|  |         <el-col v-for="(item, index) in options" :span="4" :key="index"> | ||||||
|  |           <el-checkbox :label="item" :value="item" /> | ||||||
|  |         </el-col> | ||||||
|  |       </el-row> | ||||||
|  |     </el-checkbox-group> | ||||||
|  |     <template #footer> | ||||||
|  |       <el-button @click="fnClose">取 消</el-button> | ||||||
|  |       <el-button type="primary" @click="fnSubmit">导 出</el-button> | ||||||
|  |     </template> | ||||||
|  |   </el-dialog> | ||||||
|  | </template> | ||||||
|  | 
 | ||||||
|  | <script setup> | ||||||
|  | import { useVModel } from "@vueuse/core"; | ||||||
|  | import { ref } from "vue"; | ||||||
|  | import { debounce } from "throttle-debounce"; | ||||||
|  | import { ElMessage } from "element-plus"; | ||||||
|  | import useDownloadBlob from "@/assets/js/useDownloadBlob.js"; | ||||||
|  | import QS from "qs"; | ||||||
|  | 
 | ||||||
|  | const props = defineProps({ | ||||||
|  |   visible: { | ||||||
|  |     type: Boolean, | ||||||
|  |     required: true, | ||||||
|  |     default: false, | ||||||
|  |   }, | ||||||
|  |   searchForm: { | ||||||
|  |     type: Object, | ||||||
|  |     required: true, | ||||||
|  |     default: () => {}, | ||||||
|  |   }, | ||||||
|  |   ids: { | ||||||
|  |     type: Array, | ||||||
|  |     required: true, | ||||||
|  |     default: () => [], | ||||||
|  |   }, | ||||||
|  | }); | ||||||
|  | const emits = defineEmits(["update:visible"]); | ||||||
|  | const visible = useVModel(props, "visible", emits); | ||||||
|  | const options = [ | ||||||
|  |   "自编号", | ||||||
|  |   "车牌号", | ||||||
|  |   "车架号", | ||||||
|  |   "挂车类型", | ||||||
|  |   "营运证号", | ||||||
|  |   "运输企业", | ||||||
|  |   "归属部门", | ||||||
|  |   "车主/业户", | ||||||
|  |   "车主电话", | ||||||
|  |   "联系人", | ||||||
|  |   "联系电话", | ||||||
|  |   "初登日期", | ||||||
|  |   "发证日期", | ||||||
|  |   "到期日期", | ||||||
|  |   "挂车品牌", | ||||||
|  |   "挂车型号", | ||||||
|  |   "核定总质量", | ||||||
|  |   "核定载质量", | ||||||
|  |   "容积/体积", | ||||||
|  |   "备注", | ||||||
|  |   "挂车照片", | ||||||
|  |   "行驶证照片", | ||||||
|  |   "运营证照片", | ||||||
|  |   "挂车资料", | ||||||
|  | ]; | ||||||
|  | const checkAll = ref(true); | ||||||
|  | const isIndeterminate = ref(false); | ||||||
|  | const checkOptions = ref(options); | ||||||
|  | const havePicture = ref(false); | ||||||
|  | const fnCheckAllChange = (val) => { | ||||||
|  |   checkOptions.value = val ? options : []; | ||||||
|  |   isIndeterminate.value = false; | ||||||
|  | }; | ||||||
|  | const fnCheckedChange = (value) => { | ||||||
|  |   const checkedCount = value.length; | ||||||
|  |   checkAll.value = checkedCount === options.length; | ||||||
|  |   isIndeterminate.value = checkedCount > 0 && checkedCount < options.length; | ||||||
|  | }; | ||||||
|  | const fnClose = () => { | ||||||
|  |   visible.value = false; | ||||||
|  |   checkOptions.value = options; | ||||||
|  |   isIndeterminate.value = false; | ||||||
|  |   checkAll.value = true; | ||||||
|  |   havePicture.value = false; | ||||||
|  | }; | ||||||
|  | const fnSubmit = debounce( | ||||||
|  |   1000, | ||||||
|  |   () => { | ||||||
|  |     let data = { | ||||||
|  |       havePicture: havePicture.value ? "1" : "0", | ||||||
|  |       options: JSON.stringify(checkOptions.value), | ||||||
|  |     }; | ||||||
|  |     if (havePicture.value) { | ||||||
|  |       const ids = props.ids; | ||||||
|  |       if (ids.length === 0) { | ||||||
|  |         ElMessage.warning("请选择要导出的数据"); | ||||||
|  |         return; | ||||||
|  |       } | ||||||
|  |       if (ids.length > 10) { | ||||||
|  |         ElMessage.warning("选择的数据超过10条"); | ||||||
|  |         return; | ||||||
|  |       } | ||||||
|  |       data = { | ||||||
|  |         ...data, FREIGHTTRAILER_IDs: ids.join(","), | ||||||
|  |       }; | ||||||
|  |     } else { | ||||||
|  |       const searchForm = props.searchForm; | ||||||
|  |       data = { | ||||||
|  |         ...data, | ||||||
|  |         PLATE_NUMBER: searchForm.PLATE_NUMBER, | ||||||
|  |         VIN: searchForm.VIN, | ||||||
|  |       }; | ||||||
|  |     } | ||||||
|  |     useDownloadBlob("/freightTrailer/excel" + "?" + QS.stringify(data)); | ||||||
|  |   }, | ||||||
|  |   { atBegin: true } | ||||||
|  | ); | ||||||
|  | </script> | ||||||
|  | 
 | ||||||
|  | <style scoped lang="scss"></style> | ||||||
|  | @ -0,0 +1,293 @@ | ||||||
|  | <template> | ||||||
|  |     <layout-card> | ||||||
|  |         <el-form ref="formRef" :rules="rules" :model="form" label-width="140px"> | ||||||
|  |             <el-row :gutter="20"> | ||||||
|  |                 <el-col :span="24"> | ||||||
|  |                     <el-divider content-position="left">基本信息</el-divider> | ||||||
|  |                 </el-col> | ||||||
|  |                 <el-col :span="12"> | ||||||
|  |                     <el-form-item label="自编号" prop="NUM"> | ||||||
|  |                         <el-input v-model.number="form.NUM" /> | ||||||
|  |                     </el-form-item> | ||||||
|  |                 </el-col> | ||||||
|  |                 <el-col :span="12"> | ||||||
|  |                     <el-form-item label="车牌号" prop="PLATE_NUMBER"> | ||||||
|  |                         <el-input v-model="form.PLATE_NUMBER" /> | ||||||
|  |                     </el-form-item> | ||||||
|  |                 </el-col> | ||||||
|  |                 <el-col :span="12"> | ||||||
|  |                     <el-form-item label="车架号" prop="VIN"> | ||||||
|  |                         <el-input v-model="form.VIN" /> | ||||||
|  |                     </el-form-item> | ||||||
|  |                 </el-col> | ||||||
|  |                 <el-col :span="12"> | ||||||
|  |                     <el-form-item label="车身编号" prop="VEHICLE_BODY_NUMBER"> | ||||||
|  |                         <el-input v-model="form.VEHICLE_BODY_NUMBER" /> | ||||||
|  |                     </el-form-item> | ||||||
|  |                 </el-col> | ||||||
|  |                 <el-col :span="12"> | ||||||
|  |                     <el-form-item label="挂车类型" prop="TRAILER_TYPE"> | ||||||
|  |                         <el-input v-model="form.TRAILER_TYPE" /> | ||||||
|  |                     </el-form-item> | ||||||
|  |                 </el-col> | ||||||
|  |                 <el-col :span="12"> | ||||||
|  |                     <el-form-item label="营运证号" prop="OPER_CERTIFICATE_NUM"> | ||||||
|  |                         <el-input v-model="form.OPER_CERTIFICATE_NUM" /> | ||||||
|  |                     </el-form-item> | ||||||
|  |                 </el-col> | ||||||
|  |                 <el-col :span="12"> | ||||||
|  |                     <el-form-item label="归属部门" prop="BELONGING_DEPT"> | ||||||
|  |                         <layout-department v-model="form.BELONGING_DEPT"/> | ||||||
|  |                     </el-form-item> | ||||||
|  |                 </el-col> | ||||||
|  |                 <el-col :span="12"> | ||||||
|  |                     <el-form-item label="车主/业户" prop="CAR_OWNERS"> | ||||||
|  |                         <el-input v-model="form.CAR_OWNERS" /> | ||||||
|  |                     </el-form-item> | ||||||
|  |                 </el-col> | ||||||
|  |                 <el-col :span="12"> | ||||||
|  |                     <el-form-item label="车主电话" prop="CAR_OWNERS_TEL"> | ||||||
|  |                         <el-input v-model="form.CAR_OWNERS_TEL" /> | ||||||
|  |                     </el-form-item> | ||||||
|  |                 </el-col> | ||||||
|  |                 <el-col :span="12"> | ||||||
|  |                     <el-form-item label="联系人" prop="CONTACTS"> | ||||||
|  |                         <el-input v-model="form.CONTACTS" /> | ||||||
|  |                     </el-form-item> | ||||||
|  |                 </el-col> | ||||||
|  |                 <el-col :span="12"> | ||||||
|  |                     <el-form-item label="联系电话" prop="CONTACT_PHONE"> | ||||||
|  |                         <el-input v-model="form.CONTACT_PHONE" /> | ||||||
|  |                     </el-form-item> | ||||||
|  |                 </el-col> | ||||||
|  |                 <el-col :span="12"> | ||||||
|  |                     <el-form-item label="初登日期" prop="INITIAL_REGISTRATION_DATE"> | ||||||
|  |                         <el-date-picker | ||||||
|  |                                 v-model="form.INITIAL_REGISTRATION_DATE" | ||||||
|  |                                 value-format="YYYY-MM-DD" | ||||||
|  |                                 format="YYYY-MM-DD" | ||||||
|  |                                 type="date" | ||||||
|  |                         /> | ||||||
|  |                     </el-form-item> | ||||||
|  |                 </el-col> | ||||||
|  |                 <el-col :span="12"> | ||||||
|  |                     <el-form-item label="发证日期" prop="CERTIFICATE_DATE"> | ||||||
|  |                         <el-date-picker | ||||||
|  |                                 v-model="form.CERTIFICATE_DATE" | ||||||
|  |                                 value-format="YYYY-MM-DD" | ||||||
|  |                                 format="YYYY-MM-DD" | ||||||
|  |                                 type="date" | ||||||
|  |                         /> | ||||||
|  |                     </el-form-item> | ||||||
|  |                 </el-col> | ||||||
|  |                 <el-col :span="12"> | ||||||
|  |                     <el-form-item label="到期日期" prop="DUE_DATE"> | ||||||
|  |                         <el-date-picker | ||||||
|  |                                 v-model="form.DUE_DATE" | ||||||
|  |                                 value-format="YYYY-MM-DD" | ||||||
|  |                                 format="YYYY-MM-DD" | ||||||
|  |                                 type="date" | ||||||
|  |                         /> | ||||||
|  |                     </el-form-item> | ||||||
|  |                 </el-col> | ||||||
|  |                 <el-col :span="24"> | ||||||
|  |                     <el-divider content-position="left">详细信息</el-divider> | ||||||
|  |                 </el-col> | ||||||
|  |                 <el-col :span="12"> | ||||||
|  |                     <el-form-item label="挂车品牌" prop="TRAILER_BRAND"> | ||||||
|  |                         <el-input v-model="form.TRAILER_BRAND" /> | ||||||
|  |                     </el-form-item> | ||||||
|  |                 </el-col> | ||||||
|  |                 <el-col :span="12"> | ||||||
|  |                     <el-form-item label="挂车型号" prop="TRAILER_MODEL"> | ||||||
|  |                         <el-input v-model="form.TRAILER_MODEL" /> | ||||||
|  |                     </el-form-item> | ||||||
|  |                 </el-col> | ||||||
|  |                 <el-col :span="12"> | ||||||
|  |                     <el-form-item label="核定总质量" prop="APPROVED_TOTAL_MASS"> | ||||||
|  |                         <el-input v-model="form.APPROVED_TOTAL_MASS" /> | ||||||
|  |                     </el-form-item> | ||||||
|  |                 </el-col> | ||||||
|  |                 <el-col :span="12"> | ||||||
|  |                     <el-form-item label="核定载质量" prop="APPROVED_LOAD_CAPACITY"> | ||||||
|  |                         <el-input v-model="form.APPROVED_LOAD_CAPACITY" /> | ||||||
|  |                     </el-form-item> | ||||||
|  |                 </el-col> | ||||||
|  |                 <el-col :span="12"> | ||||||
|  |                     <el-form-item label="容积/体积" prop="VOLUME"> | ||||||
|  |                         <el-input v-model="form.TEAM_NAME" /> | ||||||
|  |                     </el-form-item> | ||||||
|  |                 </el-col> | ||||||
|  |                 <el-col :span="12"> | ||||||
|  |                     <el-form-item label="备注" prop="NOTES"> | ||||||
|  |                         <el-input | ||||||
|  |                                 v-model="form.NOTES" | ||||||
|  |                                 type="textarea" | ||||||
|  |                                 :autosize="{ minRows: 3 }" | ||||||
|  |                         /> | ||||||
|  |                     </el-form-item> | ||||||
|  |                 </el-col> | ||||||
|  |                 <el-col :span="24"> | ||||||
|  |                     <el-divider content-position="left">相关照片</el-divider> | ||||||
|  |                 </el-col> | ||||||
|  |                 <el-col :span="12"> | ||||||
|  |                     <el-form-item label="挂车照片" prop="TRAILER_IMG"> | ||||||
|  |                         <layout-upload | ||||||
|  |                                 v-model:file-list="form.TRAILER_IMG" | ||||||
|  |                                 list-type="picture-card" | ||||||
|  |                                 accept=".jpg,.jpeg,.png" | ||||||
|  | 
 | ||||||
|  |                                 delete-to-server | ||||||
|  |                         /> | ||||||
|  |                     </el-form-item> | ||||||
|  |                 </el-col> | ||||||
|  |                 <el-col :span="12"> | ||||||
|  |                     <el-form-item label="行驶证照片" prop="DRIVING_LICENSE_IMG"> | ||||||
|  |                         <layout-upload | ||||||
|  |                                 v-model:file-list="form.DRIVING_LICENSE_IMG" | ||||||
|  |                                 list-type="picture-card" | ||||||
|  |                                 accept=".jpg,.jpeg,.png" | ||||||
|  | 
 | ||||||
|  |                                 delete-to-server | ||||||
|  |                         /> | ||||||
|  |                     </el-form-item> | ||||||
|  |                 </el-col> | ||||||
|  |                 <el-col :span="12"> | ||||||
|  |                     <el-form-item label="运营证照片" prop="OPER_CERTIFICATE_IMG"> | ||||||
|  |                         <layout-upload | ||||||
|  |                                 v-model:file-list="form.OPER_CERTIFICATE_IMG" | ||||||
|  |                                 list-type="picture-card" | ||||||
|  |                                 accept=".jpg,.jpeg,.png" | ||||||
|  | 
 | ||||||
|  |                                 delete-to-server | ||||||
|  |                         /> | ||||||
|  |                     </el-form-item> | ||||||
|  |                 </el-col> | ||||||
|  |                 <el-col :span="12"> | ||||||
|  |                     <el-form-item label="挂车资料" prop="TRAILER_INFO"> | ||||||
|  |                         <layout-upload | ||||||
|  |                                 v-model:file-list="form.TRAILER_INFO" | ||||||
|  |                                 list-type="picture-card" | ||||||
|  |                                 accept=".jpg,.jpeg,.png" | ||||||
|  | 
 | ||||||
|  |                                 delete-to-server | ||||||
|  |                         /> | ||||||
|  |                     </el-form-item> | ||||||
|  |                 </el-col> | ||||||
|  |             </el-row> | ||||||
|  |         </el-form> | ||||||
|  |         <div class="mt-10 tc"> | ||||||
|  |             <el-button type="primary" @click="fnSubmit">保存</el-button> | ||||||
|  |         </div> | ||||||
|  |     </layout-card> | ||||||
|  | </template> | ||||||
|  | 
 | ||||||
|  | <script setup> | ||||||
|  |     import LayoutUpload from "@/components/upload/index.vue"; | ||||||
|  |     import LayoutDepartment from "@/components/department/index.vue"; | ||||||
|  |     import { ref } from "vue"; | ||||||
|  |     import { debounce } from "throttle-debounce"; | ||||||
|  |     import {getFreightTrailerView, setFreightTrailerAdd ,setFreightTrailerEdit,} from "@/request/enterprise_management.js"; | ||||||
|  |     import { setUploadImg } from "@/request/api.js"; | ||||||
|  |     import { ElMessage } from "element-plus"; | ||||||
|  |     import { useRoute, useRouter, } from "vue-router"; | ||||||
|  |     import useFormValidate from "@/assets/js/useFormValidate.js"; | ||||||
|  |     import { addingPrefixToFile } from "@/assets/js/utils.js"; | ||||||
|  |     const route = useRoute(); | ||||||
|  |     const router = useRouter(); | ||||||
|  |     const FREIGHTTRAILER_ID = route.query.FREIGHTTRAILER_ID | ||||||
|  |     const formRef = ref(null); | ||||||
|  |     const form = ref({ | ||||||
|  |         NUM:'', | ||||||
|  |         PLATE_NUMBER:'', | ||||||
|  |         VIN:'', | ||||||
|  |         VEHICLE_BODY_NUMBER:'', | ||||||
|  |         TRAILER_TYPE:'', | ||||||
|  |         OPER_CERTIFICATE_NUM:'', | ||||||
|  |         BELONGING_DEPT:'', | ||||||
|  |         CAR_OWNERS:'', | ||||||
|  |         CAR_OWNERS_TEL:'', | ||||||
|  |         CONTACTS:'', | ||||||
|  |         CONTACT_PHONE:'', | ||||||
|  |         INITIAL_REGISTRATION_DATE:'', | ||||||
|  |         CERTIFICATE_DATE:'', | ||||||
|  |         DUE_DATE:'', | ||||||
|  |         TRAILER_BRAND:'', | ||||||
|  |         TRAILER_MODEL:'', | ||||||
|  |         APPROVED_TOTAL_MASS:'', | ||||||
|  |         APPROVED_LOAD_CAPACITY:'', | ||||||
|  |         VOLUME:'', | ||||||
|  |         NOTES:'', | ||||||
|  |         TRAILER_IMG:[], | ||||||
|  |         DRIVING_LICENSE_IMG:[], | ||||||
|  |         OPER_CERTIFICATE_IMG:[], | ||||||
|  |         TRAILER_INFO:[], | ||||||
|  |     }); | ||||||
|  |     const rules = { | ||||||
|  |         PLATE_NUMBER: [{ required: true, message: "请输入", trigger: "blur" }], | ||||||
|  |         VIN: [{ required: true, message: "请输入", trigger: "blur" }], | ||||||
|  |         TRAILER_TYPE: [{ required: true, message: "请输入", trigger: "blur" }], | ||||||
|  |         CAR_OWNERS: [{ required: true, message: "请输入", trigger: "blur" }], | ||||||
|  |         CAR_OWNERS_TEL: [{ required: true, message: "请输入", trigger: "blur" }], | ||||||
|  |         CONTACTS: [{ required: true, message: "请输入", trigger: "blur" }], | ||||||
|  |         CONTACT_PHONE: [{ required: true, message: "请输入", trigger: "blur" }], | ||||||
|  |         INITIAL_REGISTRATION_DATE: [{ required: true, message: "请输入", trigger: "blur" }], | ||||||
|  |     } | ||||||
|  |     const fnGetData = async () => { | ||||||
|  |         if (!FREIGHTTRAILER_ID) return; | ||||||
|  |         const resData = await getFreightTrailerView({ FREIGHTTRAILER_ID }); | ||||||
|  |         form.value = resData.pd; | ||||||
|  |         form.value.TRAILER_IMG = addingPrefixToFile( | ||||||
|  |             resData.trailerImgs | ||||||
|  |         ); | ||||||
|  |         form.value.DRIVING_LICENSE_IMG = addingPrefixToFile( | ||||||
|  |             resData.drivingLicenseImgs | ||||||
|  |         ); | ||||||
|  |         form.value.OPER_CERTIFICATE_IMG = addingPrefixToFile( | ||||||
|  |             resData.operCertificateImgs | ||||||
|  |         ); | ||||||
|  |         form.value.TRAILER_INFO = addingPrefixToFile( | ||||||
|  |             resData.trailerInfoImgs | ||||||
|  |         ); | ||||||
|  |     }; | ||||||
|  |     fnGetData(); | ||||||
|  | 
 | ||||||
|  |     const fnSubmit = debounce( | ||||||
|  |         1000, | ||||||
|  |         async () => { | ||||||
|  |             await useFormValidate(formRef); | ||||||
|  |             const resData = !FREIGHTTRAILER_ID | ||||||
|  |                 ? await setFreightTrailerAdd({ ...form.value }) | ||||||
|  |                 : await setFreightTrailerEdit({ ...form.value ,FREIGHTTRAILER_ID:FREIGHTTRAILER_ID}); | ||||||
|  |             const currentFreighttrailerId =resData.pd.FREIGHTTRAILER_ID | ||||||
|  |             for (let i = 0; i < form.value.TRAILER_IMG.length; i++) { | ||||||
|  |                 if (form.value.TRAILER_IMG[i].raw) | ||||||
|  |                     await fnUploadImage(currentFreighttrailerId, form.value.TRAILER_IMG[i].raw, 120); | ||||||
|  |             } | ||||||
|  |             for (let i = 0; i < form.value.DRIVING_LICENSE_IMG.length; i++) { | ||||||
|  |                 if (form.value.DRIVING_LICENSE_IMG[i].raw) | ||||||
|  |                     await fnUploadImage(currentFreighttrailerId, form.value.DRIVING_LICENSE_IMG[i].raw, 121); | ||||||
|  |             } | ||||||
|  |             for (let i = 0; i < form.value.OPER_CERTIFICATE_IMG.length; i++) { | ||||||
|  |                 if (form.value.OPER_CERTIFICATE_IMG[i].raw) | ||||||
|  |                     await fnUploadImage(currentFreighttrailerId, form.value.OPER_CERTIFICATE_IMG[i].raw, 122); | ||||||
|  |             } | ||||||
|  |             for (let i = 0; i < form.value.TRAILER_INFO.length; i++) { | ||||||
|  |                 if (form.value.TRAILER_INFO[i].raw) | ||||||
|  |                     await fnUploadImage(currentFreighttrailerId, form.value.TRAILER_INFO[i].raw, 123); | ||||||
|  |             } | ||||||
|  |             ElMessage.success("保存成功"); | ||||||
|  |             router.back(); | ||||||
|  |         }, | ||||||
|  |         { atBegin: true } | ||||||
|  |     ); | ||||||
|  |     const fnUploadImage = async (HIDDEN_ID, FFILE, TYPE) => { | ||||||
|  |         const formData = new FormData(); | ||||||
|  |         formData.append("FOREIGN_KEY", HIDDEN_ID); | ||||||
|  |         formData.append("TYPE", TYPE); | ||||||
|  |         formData.append("FFILE", FFILE); | ||||||
|  |         await setUploadImg(formData); | ||||||
|  |     }; | ||||||
|  | </script> | ||||||
|  | 
 | ||||||
|  | <style scoped lang="scss"></style> | ||||||
|  | @ -0,0 +1,165 @@ | ||||||
|  | <template> | ||||||
|  |     <div> | ||||||
|  |         <el-card> | ||||||
|  |             <el-form | ||||||
|  |                     :model="searchForm" | ||||||
|  |                     label-width="100px" | ||||||
|  |                     @submit.prevent="fnResetPaginationTransfer" | ||||||
|  |             > | ||||||
|  |                 <el-row> | ||||||
|  |                     <el-col :span="5"> | ||||||
|  |                         <el-form-item label="车牌号" prop="PLATE_NUMBER"> | ||||||
|  |                             <el-input v-model="searchForm.PLATE_NUMBER" /> | ||||||
|  |                         </el-form-item> | ||||||
|  |                     </el-col> | ||||||
|  |                     <el-col :span="5"> | ||||||
|  |                         <el-form-item label="车架号" prop="VIN"> | ||||||
|  |                             <el-input v-model="searchForm.VIN" /> | ||||||
|  |                         </el-form-item> | ||||||
|  |                     </el-col> | ||||||
|  |                     <el-col :span="5"> | ||||||
|  |                         <el-form-item label="自编号" prop="NUM"> | ||||||
|  |                             <el-input v-model="searchForm.NUM" /> | ||||||
|  |                         </el-form-item> | ||||||
|  |                     </el-col> | ||||||
|  |                     <el-col :span="5"> | ||||||
|  |                         <el-form-item label="归属部门" prop="DEPARTMENT_NAME"> | ||||||
|  |                             <el-input v-model="searchForm.DEPARTMENT_NAME" /> | ||||||
|  |                         </el-form-item> | ||||||
|  |                     </el-col> | ||||||
|  |                     <el-col :span="3"> | ||||||
|  |                         <el-form-item label-width="10px"> | ||||||
|  |                             <el-button type="primary" native-type="submit">搜索</el-button> | ||||||
|  |                             <el-button native-type="reset" @click="fnResetPaginationTransfer"> | ||||||
|  |                                 重置 | ||||||
|  |                             </el-button> | ||||||
|  |                         </el-form-item> | ||||||
|  |                     </el-col> | ||||||
|  |                     <el-col :span="1"> | ||||||
|  |                         <el-form-item label-width="10px" class="end"> | ||||||
|  |                             <el-button @click="fnExport">导出</el-button> | ||||||
|  |                         </el-form-item> | ||||||
|  |                     </el-col> | ||||||
|  |                 </el-row> | ||||||
|  |             </el-form> | ||||||
|  |         </el-card> | ||||||
|  |         <layout-card> | ||||||
|  |             <layout-table | ||||||
|  |                     :data="list" | ||||||
|  |                     @get-data="fnGetDataTransfer" | ||||||
|  |                     v-model:pagination="pagination" | ||||||
|  |                     ref="tableRef" | ||||||
|  |                     row-key="HIDDEN_ID" | ||||||
|  |             > | ||||||
|  |                 <el-table-column reserve-selection type="selection" width="55" /> | ||||||
|  |                 <el-table-column label="序号" width="60"> | ||||||
|  |                     <template #default="{ $index }"> | ||||||
|  |                         {{ serialNumber(pagination, $index) }} | ||||||
|  |                     </template> | ||||||
|  |                 </el-table-column> | ||||||
|  |                 <el-table-column prop="NUM" label="自编号" width="150"/> | ||||||
|  |                 <el-table-column prop="PLATE_NUMBER" label="车牌号" width="150"/> | ||||||
|  |                 <el-table-column prop="CONTACTS" label="联系人" width="150"/> | ||||||
|  |                 <el-table-column prop="CONTACT_PHONE" label="联系电话" width="150"/> | ||||||
|  |                 <el-table-column prop="TRAILER_TYPE" label="挂车类型" width="150"/> | ||||||
|  |                 <el-table-column prop="INITIAL_REGISTRATION_DATE" label="初登日期" width="150"/> | ||||||
|  |                 <el-table-column prop="DUE_DATE" label="到期日期" width="150"/> | ||||||
|  |                 <el-table-column prop="DEPARTMENT_NAME" label="归属部门" width="150"/> | ||||||
|  |                 <el-table-column label="操作" width="150"> | ||||||
|  |                     <template #default="{ row }"> | ||||||
|  |                         <el-button | ||||||
|  |                                 type="primary" | ||||||
|  |                                 text | ||||||
|  |                                 link | ||||||
|  |                                 @click="router.push({path: '/enterprise_management/basics_info_management/freight_trailer/view',query: { FREIGHTTRAILER_ID: row.FREIGHTTRAILER_ID },})"> | ||||||
|  |                             查看 | ||||||
|  |                         </el-button> | ||||||
|  |                         <el-button | ||||||
|  |                                 type="primary" | ||||||
|  |                                 text | ||||||
|  |                                 link | ||||||
|  |                                 @click="router.push({path: '/enterprise_management/basics_info_management/freight_trailer/edit',query: { FREIGHTTRAILER_ID: row.FREIGHTTRAILER_ID },})"> | ||||||
|  |                             编辑 | ||||||
|  |                         </el-button> | ||||||
|  |                         <el-button | ||||||
|  |                                 type="primary" | ||||||
|  |                                 text | ||||||
|  |                                 link | ||||||
|  |                                 @click="fnDelete(row.FREIGHTTRAILER_ID)" | ||||||
|  |                         > | ||||||
|  |                             删除 | ||||||
|  |                         </el-button> | ||||||
|  |                     </template> | ||||||
|  |                 </el-table-column> | ||||||
|  |                 <template #button> | ||||||
|  |                     <el-button | ||||||
|  |                             v-if="buttonJurisdiction.add" | ||||||
|  |                             type="primary" | ||||||
|  |                             @click="router.push({ path: '/enterprise_management/basics_info_management/freight_trailer/add' })"> | ||||||
|  |                         新增 | ||||||
|  |                     </el-button> | ||||||
|  |                 </template> | ||||||
|  |             </layout-table> | ||||||
|  |         </layout-card> | ||||||
|  |         <export-excel | ||||||
|  |                 v-model:visible="data.exportExcelDialog.visible" | ||||||
|  |                 :search-form="searchForm" | ||||||
|  |                 :ids="data.exportExcelDialog.ids" | ||||||
|  |         /> | ||||||
|  |     </div> | ||||||
|  | </template> | ||||||
|  | 
 | ||||||
|  | <script setup> | ||||||
|  |     import { useRouter } from "vue-router"; | ||||||
|  |     import { serialNumber } from "@/assets/js/utils"; | ||||||
|  |     import useButtonJurisdiction from "@/assets/js/useButtonJurisdiction.js"; | ||||||
|  |     import useListData from "@/assets/js/useListData.js"; | ||||||
|  |     import { getFreightTrailerList ,setFreightTrailerDelete} from "@/request/enterprise_management.js"; | ||||||
|  |     import ExportExcel from "./components/export_excel.vue"; | ||||||
|  |     import { reactive } from "vue"; | ||||||
|  |     import { debounce } from "throttle-debounce"; | ||||||
|  |     import { ElMessageBox ,ElMessage} from "element-plus"; | ||||||
|  |     const router = useRouter(); | ||||||
|  |     const data = reactive({ | ||||||
|  |         exportExcelDialog: { | ||||||
|  |             visible: false, | ||||||
|  |             ids: [], | ||||||
|  |         }, | ||||||
|  |     }); | ||||||
|  |     const { list, pagination, searchForm, fnGetData, fnResetPagination, tableRef } = | ||||||
|  |         useListData(getFreightTrailerList); | ||||||
|  |     const fnGetDataTransfer = () => { | ||||||
|  |         fnGetData({ | ||||||
|  |             PLATE_NUMBER: searchForm.value.PLATE_NUMBER, | ||||||
|  |             VIN: searchForm.value.VIN, | ||||||
|  |             NUM: searchForm.value.NUM, | ||||||
|  |             DEPARTMENT_NAME: searchForm.value.DEPARTMENT_NAME, | ||||||
|  |         }); | ||||||
|  |     }; | ||||||
|  |     const fnResetPaginationTransfer = () => { | ||||||
|  |         fnResetPagination({ | ||||||
|  |             PLATE_NUMBER: searchForm.value.PLATE_NUMBER, | ||||||
|  |             VIN: searchForm.value.VIN, | ||||||
|  |             NUM: searchForm.value.NUM, | ||||||
|  |             DEPARTMENT_NAME: searchForm.value.DEPARTMENT_NAME, | ||||||
|  |         }); | ||||||
|  |     }; | ||||||
|  |     const fnDelete = debounce( | ||||||
|  |         1000, | ||||||
|  |         async (FREIGHTTRAILER_ID) => { | ||||||
|  |             await ElMessageBox.confirm("确定要删除吗?", { type: "warning" }); | ||||||
|  |             await setFreightTrailerDelete({ FREIGHTTRAILER_ID }); | ||||||
|  |             ElMessage.success("删除成功"); | ||||||
|  |             fnResetPaginationTransfer(); | ||||||
|  |         }, | ||||||
|  |         { atBegin: true } | ||||||
|  |     ); | ||||||
|  |     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> | ||||||
|  | 
 | ||||||
|  | <style scoped></style> | ||||||
|  | @ -0,0 +1,177 @@ | ||||||
|  | <template> | ||||||
|  |     <layout-card> | ||||||
|  |         <div id="printContainer"> | ||||||
|  |             <el-divider content-position="left">基本信息</el-divider> | ||||||
|  |             <el-descriptions :column="2" border> | ||||||
|  |                 <el-descriptions-item label-class-name="width_200"  label="自编号"> | ||||||
|  |                     {{ info.NUM }} | ||||||
|  |                 </el-descriptions-item> | ||||||
|  |                 <el-descriptions-item label-class-name="width_200"  label="车牌号"> | ||||||
|  |                     {{ info.PLATE_NUMBER }} | ||||||
|  |                 </el-descriptions-item> | ||||||
|  |                 <el-descriptions-item label-class-name="width_200"  label="车架号"> | ||||||
|  |                     {{ info.VIN }} | ||||||
|  |                 </el-descriptions-item> | ||||||
|  |                 <el-descriptions-item label-class-name="width_200"  label="车身编号"> | ||||||
|  |                     {{ info.VEHICLE_BODY_NUMBER }} | ||||||
|  |                 </el-descriptions-item> | ||||||
|  |                 <el-descriptions-item label-class-name="width_200"  label="挂车类型"> | ||||||
|  |                     {{ info.TRAILER_TYPE }} | ||||||
|  |                 </el-descriptions-item> | ||||||
|  |                 <el-descriptions-item label-class-name="width_200"  label="营运证号"> | ||||||
|  |                     {{ info.OPER_CERTIFICATE_NUM }} | ||||||
|  |                 </el-descriptions-item> | ||||||
|  |                 <el-descriptions-item label-class-name="width_200"  label="运输企业"> | ||||||
|  |                     {{ info.TRANSPORT_ENTERPRISESNAME }} | ||||||
|  |                 </el-descriptions-item> | ||||||
|  |                 <el-descriptions-item label-class-name="width_200"  label="归属部门"> | ||||||
|  |                     {{ info.DEPARTMENT_NAME }} | ||||||
|  |                 </el-descriptions-item> | ||||||
|  |                 <el-descriptions-item label-class-name="width_200"  label="车主/业户"> | ||||||
|  |                     {{ info.CAR_OWNERS }} | ||||||
|  |                 </el-descriptions-item> | ||||||
|  |                 <el-descriptions-item label-class-name="width_200"  label="车主电话"> | ||||||
|  |                     {{ info.CAR_OWNERS_TEL }} | ||||||
|  |                 </el-descriptions-item> | ||||||
|  | 
 | ||||||
|  |                 <el-descriptions-item label-class-name="width_200"  label="联系人"> | ||||||
|  |                     {{ info.CONTACTS }} | ||||||
|  |                 </el-descriptions-item> | ||||||
|  |                 <el-descriptions-item label-class-name="width_200"  label="车主电话"> | ||||||
|  |                     {{ info.CAR_OWNERS_TEL }} | ||||||
|  |                 </el-descriptions-item> | ||||||
|  |                 <el-descriptions-item label-class-name="width_200"  label="联系电话"> | ||||||
|  |                     {{ info.CONTACT_PHONE }} | ||||||
|  |                 </el-descriptions-item> | ||||||
|  |                 <el-descriptions-item label-class-name="width_200"  label="初登日期"> | ||||||
|  |                     {{ info.INITIAL_REGISTRATION_DATE }} | ||||||
|  |                 </el-descriptions-item> | ||||||
|  |                 <el-descriptions-item label-class-name="width_200"  label="发证日期"> | ||||||
|  |                     {{ info.CERTIFICATE_DATE }} | ||||||
|  |                 </el-descriptions-item> | ||||||
|  |                 <el-descriptions-item label-class-name="width_200"  label="到期日期"> | ||||||
|  |                     {{ info.DUE_DATE }} | ||||||
|  |                 </el-descriptions-item> | ||||||
|  |             </el-descriptions> | ||||||
|  |             <el-divider content-position="left">详细信息</el-divider> | ||||||
|  |             <el-descriptions :column="2" border> | ||||||
|  |                 <el-descriptions-item label-class-name="width_200"  label="挂车品牌"> | ||||||
|  |                     {{ info.TRAILER_BRAND }} | ||||||
|  |                 </el-descriptions-item> | ||||||
|  |                 <el-descriptions-item label-class-name="width_200"  label="挂车型号"> | ||||||
|  |                     {{ info.TRAILER_MODEL }} | ||||||
|  |                 </el-descriptions-item> | ||||||
|  |                 <el-descriptions-item label-class-name="width_200"  label="核定总质量"> | ||||||
|  |                     {{ info.APPROVED_TOTAL_MASS }} | ||||||
|  |                 </el-descriptions-item> | ||||||
|  |                 <el-descriptions-item label-class-name="width_200"  label="核定载质量"> | ||||||
|  |                     {{ info.APPROVED_LOAD_CAPACITY }} | ||||||
|  |                 </el-descriptions-item> | ||||||
|  |                 <el-descriptions-item label-class-name="width_200"  label="容积/体积"> | ||||||
|  |                     {{ info.VOLUME }} | ||||||
|  |                 </el-descriptions-item> | ||||||
|  |                 <el-descriptions-item label-class-name="width_200"  label="备注"> | ||||||
|  |                     {{ info.NOTES }} | ||||||
|  |                 </el-descriptions-item> | ||||||
|  |             </el-descriptions> | ||||||
|  |             <el-divider content-position="left">相关照片</el-divider> | ||||||
|  |             <el-descriptions :column="2" border> | ||||||
|  |                 <el-descriptions-item label-class-name="width_200"  label="挂车照片"> | ||||||
|  |                     <img | ||||||
|  |                             v-for="item in info.TRAILER_IMG" | ||||||
|  |                             :key="item.FILEPATH" | ||||||
|  |                             v-viewer | ||||||
|  |                             :src="item.url" | ||||||
|  |                             width="100" | ||||||
|  |                             height="100" | ||||||
|  |                             alt="" | ||||||
|  |                             class="ml-10" | ||||||
|  |                     /> | ||||||
|  |                 </el-descriptions-item> | ||||||
|  |                 <el-descriptions-item label-class-name="width_200"  label="行驶证照片"> | ||||||
|  |                     <img | ||||||
|  |                             v-for="item in info.DRIVING_LICENSE_IMG" | ||||||
|  |                             :key="item.FILEPATH" | ||||||
|  |                             v-viewer | ||||||
|  |                             :src="item.url" | ||||||
|  |                             width="100" | ||||||
|  |                             height="100" | ||||||
|  |                             alt="" | ||||||
|  |                             class="ml-10" | ||||||
|  |                     /> | ||||||
|  |                 </el-descriptions-item> | ||||||
|  |                 <el-descriptions-item label-class-name="width_200"  label="运营证照片"> | ||||||
|  |                     <img | ||||||
|  |                             v-for="item in info.OPER_CERTIFICATE_IMG" | ||||||
|  |                             :key="item.FILEPATH" | ||||||
|  |                             v-viewer | ||||||
|  |                             :src="item.url" | ||||||
|  |                             width="100" | ||||||
|  |                             height="100" | ||||||
|  |                             alt="" | ||||||
|  |                             class="ml-10" | ||||||
|  |                     /> | ||||||
|  |                 </el-descriptions-item> | ||||||
|  |                 <el-descriptions-item label-class-name="width_200"  label="挂车资料"> | ||||||
|  |                     <img | ||||||
|  |                             v-for="item in info.TRAILER_INFO" | ||||||
|  |                             :key="item.FILEPATH" | ||||||
|  |                             v-viewer | ||||||
|  |                             :src="item.url" | ||||||
|  |                             width="100" | ||||||
|  |                             height="100" | ||||||
|  |                             alt="" | ||||||
|  |                             class="ml-10" | ||||||
|  |                     /> | ||||||
|  |                 </el-descriptions-item> | ||||||
|  | 
 | ||||||
|  |             </el-descriptions> | ||||||
|  |         </div> | ||||||
|  |         <div class="mt-10 tc"> | ||||||
|  |             <el-button v-print="'#printContainer'" type="primary">打印</el-button> | ||||||
|  |         </div> | ||||||
|  |         <div v-html="PRINT_STYLE" /> | ||||||
|  |     </layout-card> | ||||||
|  | </template> | ||||||
|  | 
 | ||||||
|  | <script setup> | ||||||
|  |     import { ref } from "vue"; | ||||||
|  |     import { getFreightTrailerView,getFreightTrailerCorpList1 } from "@/request/enterprise_management.js"; | ||||||
|  |     import { useRoute } from "vue-router"; | ||||||
|  |     import { addingPrefixToFile } from "@/assets/js/utils.js"; | ||||||
|  |     const transportEnterprisesList = await getFreightTrailerCorpList1() | ||||||
|  |     const route = useRoute(); | ||||||
|  |     const FREIGHTTRAILER_ID = route.query; | ||||||
|  |     const info = ref({}); | ||||||
|  |     const fnGetData = async () => { | ||||||
|  |         if (!FREIGHTTRAILER_ID) return; | ||||||
|  |         const resData = await getFreightTrailerView(FREIGHTTRAILER_ID); | ||||||
|  |         info.value = resData.pd; | ||||||
|  |         for(let i=0;i<transportEnterprisesList.length;i++){ | ||||||
|  |            const item = transportEnterprisesList[i] | ||||||
|  |            if(item.CORPINFO_ID === info.value.TRANSPORT_ENTERPRISES){ | ||||||
|  |                info.value.TRANSPORT_ENTERPRISESNAME =  item.CORP_NAME | ||||||
|  |            } | ||||||
|  |         } | ||||||
|  |         info.value.TRAILER_IMG = addingPrefixToFile( | ||||||
|  |             resData.trailerImgs | ||||||
|  |         ); | ||||||
|  |         info.value.DRIVING_LICENSE_IMG = addingPrefixToFile( | ||||||
|  |             resData.drivingLicenseImgs | ||||||
|  |         ); | ||||||
|  |         info.value.OPER_CERTIFICATE_IMG = addingPrefixToFile( | ||||||
|  |             resData.operCertificateImgs | ||||||
|  |         ); | ||||||
|  |         info.value.TRAILER_INFO = addingPrefixToFile( | ||||||
|  |             resData.trailerInfoImgs | ||||||
|  |         ); | ||||||
|  | 
 | ||||||
|  |     }; | ||||||
|  |     fnGetData(); | ||||||
|  | </script> | ||||||
|  | 
 | ||||||
|  | <style lang="scss" scoped> | ||||||
|  |     .width_200{ | ||||||
|  |         width: 200px; | ||||||
|  |     } | ||||||
|  | </style> | ||||||
		Loading…
	
		Reference in New Issue