| | |
| | | updateTmsConsignor |
| | | } from "@/api/tms/tmsConsignor"; |
| | | import useCurrentInstance from "@/utils/useCurrentInstance"; |
| | | import {computed, reactive, ref, toRefs,watch,onMounted} from "vue"; |
| | | import {computed, reactive, ref, toRefs,watch,nextTick} from "vue"; |
| | | import {PagesInterface, PageQueryInterface} from "@/utils/globalInterface"; |
| | | import {usePagePlus} from "@/hooks/usePagePlus"; |
| | | import {hasPermission} from "@/utils/permissionUtils"; |
| | | import {getTmsCustomerInfo, listTmsCustomerInfo} from "@/api/tms/tmsCustomerInfo"; |
| | | import {getArea, getCity, getProvince, getStreet} from "@/api/tms/tmsRegion"; |
| | | import {getArea, getCity, getProvince, getStreet,getAddressCode} from "@/api/tms/tmsRegion"; |
| | | |
| | | const {proxy} = useCurrentInstance(); |
| | | const crudRef = ref(); |
| | |
| | | contactName: { |
| | | label: '联系人姓名',minWidth: 120, |
| | | }, |
| | | signCompany: { |
| | | signCompanyName: { |
| | | label: '签约公司', minWidth: 150, |
| | | }, |
| | | }, |
| | |
| | | }) |
| | | } |
| | | |
| | | } |
| | | }, |
| | | change: (val: any) => { |
| | | const table = crudRef.value?.getPropRef?.('customerId')?.$refs?.temp; |
| | | if (!table) return; |
| | | let active = table.active; |
| | | if (Array.isArray(active)) active = active[0]; |
| | | if (active) { |
| | | Object.assign(form.value, { |
| | | customerId: active.id, |
| | | customerSysCode: active.customerCode, |
| | | customerName: active.customerShortName, |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | }, |
| | | customerSysCode: { |
| | | label: '客户编码',minWidth: 150, |
| | |
| | | label: '地址信息', |
| | | prop: 'dzxx', |
| | | column:{ |
| | | region: { |
| | | label: '行政区域',minWidth: 150,type:'cascader', |
| | | addDisplay: true, |
| | | editDisplay: true, |
| | | viewDisplay: true,span: 24, |
| | | hide: true, |
| | | search: false, |
| | | lazy: true, |
| | | props: { |
| | | label: 'name', |
| | | value: 'code' |
| | | }, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "行政区域不能为空", trigger: "blur" |
| | | } |
| | | ], |
| | | change:({value=[]}:{value:any})=>{ |
| | | if (value && value.length>0){ |
| | | form.value.provinceId = value[0]; |
| | | form.value.cityId = value[1]; |
| | | form.value.districtId = value[2]; |
| | | form.value.streetId = value[3]; |
| | | const cascader = crudRef.value?.getPropRef?.('region')?.$refs?.temp; |
| | | if (cascader.getCheckedNodes() && cascader.getCheckedNodes().length >0){ |
| | | console.log(cascader.getCheckedNodes()) |
| | | form.value.regionLabel= cascader.getCheckedNodes()[0].text!; |
| | | } |
| | | } |
| | | }, |
| | | lazyLoad (node:any, resolve:any) { |
| | | const stopLevel = 3; |
| | | const level = node.level; |
| | | const data = node.data || {}; |
| | | const code = data.code; |
| | | let list:any = []; |
| | | const callback = () => { |
| | | resolve((list || []).map((ele:any) => ({ |
| | | ...ele, |
| | | leaf: level >= stopLevel |
| | | }))); |
| | | }; |
| | | if (level === 0) { |
| | | getProvince().then(res => { |
| | | list = res.data || []; |
| | | callback(); |
| | | }); |
| | | } else if (level === 1) { |
| | | getCity(code).then(res => { |
| | | list = res.data ||[]; |
| | | callback(); |
| | | }); |
| | | } else if (level === 2) { |
| | | getArea(code).then(res => { |
| | | list = res.data || []; |
| | | callback(); |
| | | }); |
| | | }else if (level === 3) { |
| | | getStreet(code).then(res => { |
| | | list = res.data || []; |
| | | callback(); |
| | | }); |
| | | } else { |
| | | callback(); |
| | | } |
| | | } |
| | | }, |
| | | |
| | | mapLocationDetail: { |
| | | label: '地图位置',minWidth: 150, |
| | | addDisplay: true, |
| | |
| | | hide: true, |
| | | search: false, |
| | | type: 'map', |
| | | mapChange: async (params:any)=>{ |
| | | if (params.info === "OK") { |
| | | console.log( params) |
| | | let { province, city, district, township } = params.regeocode.addressComponent || {}; |
| | | |
| | | const res = await getAddressCode({province, city, district, township}); |
| | | const {provinceCode, cityCode, districtCode, townshipCode} = res.data || {}; |
| | | |
| | | form.value.regionLabel = province + " / " + city + " / " + district + " / " + township; |
| | | |
| | | form.value.region = [provinceCode, cityCode, districtCode, townshipCode]; |
| | | form.value.provinceId = provinceCode; |
| | | form.value.cityId = cityCode; |
| | | form.value.districtId = districtCode; |
| | | form.value.streetId = townshipCode; |
| | | |
| | | form.value.dispatchTransportArea = params.regeocode.formattedAddress; |
| | | |
| | | } |
| | | } |
| | | |
| | | }, |
| | | dispatchTransportArea: { |
| | | label: '调度单运输地', |
| | |
| | | } |
| | | ], |
| | | }, |
| | | electronicFenceRange: { |
| | | label: '电子围栏范围', |
| | | addDisplay: true,minWidth: 150, |
| | | editDisplay: true, |
| | | viewDisplay: true,append:'米', |
| | | hide: false, |
| | | search: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "电子围栏范围不能为空", trigger: "blur" |
| | | } |
| | | ], |
| | | }, |
| | | // region: { |
| | | // label: '行政区域',minWidth: 150,type:'cascader', |
| | | // addDisplay: true, |
| | | // editDisplay: true,checkStrictly:true, |
| | | // viewDisplay: true,span: 24,checkOnClickNode:true, |
| | | // hide: true, |
| | | // search: false, |
| | | // lazy: true, |
| | | // props: { |
| | | // label: 'name', |
| | | // value: 'code' |
| | | // }, |
| | | // rules: [ |
| | | // { |
| | | // required: true, |
| | | // message: "行政区域不能为空", trigger: "blur" |
| | | // } |
| | | // ], |
| | | // change:({value=[]}:{value:any})=>{ |
| | | // if (value && value.length>0){ |
| | | // console.log( value) |
| | | // form.value.provinceId = value[0]; |
| | | // form.value.cityId = value[1]; |
| | | // form.value.districtId = value[2]; |
| | | // form.value.streetId = value[3]; |
| | | // const cascader = crudRef.value?.getPropRef?.('region')?.$refs?.temp; |
| | | // console.log('cascader.getCheckedNodes()',cascader) |
| | | // nextTick(()=>{ |
| | | // crudRef.value.getPropRef('region').$refs.temp.$forceUpdate() |
| | | // }) |
| | | // if (cascader.getCheckedNodes() && cascader.getCheckedNodes().length >0){ |
| | | // form.value.regionLabel= cascader.getCheckedNodes()[0].text!; |
| | | // } |
| | | // } |
| | | // }, |
| | | // lazyLoad (node:any, resolve:any) { |
| | | // const stopLevel = 3; |
| | | // const level = node.level; |
| | | // const data = node.data || {}; |
| | | // const code = data.code; |
| | | // let list:any = []; |
| | | // const callback = () => { |
| | | // |
| | | // resolve((list || []).map((ele:any) => ({ |
| | | // ...ele, |
| | | // leaf: level >= stopLevel |
| | | // }))); |
| | | // }; |
| | | // console.log( level) |
| | | // if (level === 0) { |
| | | // getProvince().then(res => { |
| | | // list = res.data || []; |
| | | // callback(); |
| | | // }); |
| | | // } else if (level === 1) { |
| | | // getCity(code).then(res => { |
| | | // list = res.data ||[]; |
| | | // callback(); |
| | | // }); |
| | | // } else if (level === 2) { |
| | | // getArea(code).then(res => { |
| | | // list = res.data || []; |
| | | // callback(); |
| | | // }); |
| | | // }else if (level === 3) { |
| | | // getStreet(code).then(res => { |
| | | // list = res.data || []; |
| | | // callback(); |
| | | // }); |
| | | // } else { |
| | | // callback(); |
| | | // } |
| | | // } |
| | | // }, |
| | | } |
| | | }, |
| | | { |
| | |
| | | row.addressDetail = row.mapLocationDetail[2] |
| | | } |
| | | }, |
| | | handleEndOpenFunc:()=>{ |
| | | form.value.region = [form.value.provinceId, form.value.cityId, |
| | | form.value.districtId, form.value.streetId]; |
| | | if (form.value.mapLocation && form.value.addressDetail){ |
| | | form.value.mapLocationDetail = [...form.value.mapLocation.split(','), form.value.addressDetail]; |
| | | handleEndOpenFunc: ()=>{ |
| | | if (form.value.mapLocation && form.value.addressDetail) { |
| | | form.value.mapLocationDetail = [...form.value.mapLocation.split(',').map(item=> Number(item)), form.value.addressDetail]; |
| | | crudRef.value.getPropRef('mapLocationDetail').$refs.temp.text = form.value.mapLocationDetail; |
| | | |
| | | } |
| | | nextTick(()=>{ |
| | | crudRef.value.getPropRef('region').$refs.temp.$forceUpdate() |
| | | }) |
| | | console.log( ) |
| | | // crudRef.value.getPropRef('region').$refs.temp.setCheckedKeys(form.value.region); |
| | | |
| | | |
| | | }, |
| | | handleBeforeOpenFunc:(type:string)=>{ |
| | | if (type=='add'){ |
| | |
| | | } |
| | | } |
| | | }) |
| | | onMounted(() => { |
| | | watch(() => form.value.customerId, () => { |
| | | |
| | | if (!form.value.customerId){ |
| | | return; |
| | | } |
| | | const table = crudRef.value?.getPropRef?.('customerId')?.$refs?.temp; |
| | | if (!table) return; |
| | | |
| | | let active = table.active; |
| | | if (Array.isArray(active)) active = active[0]; |
| | | |
| | | if (active) { |
| | | Object.assign(form.value, { |
| | | customerId: active.id, |
| | | customerSysCode: active.customerCode, |
| | | customerName: active.customerShortName, |
| | | }); |
| | | } |
| | | }); |
| | | }); |
| | | |
| | | |
| | | </script> |