From 0010b446cb0f747f4995355b468f9a32244e57dc Mon Sep 17 00:00:00 2001
From: wujianwei <wjw@11.com>
Date: 星期五, 26 十二月 2025 15:47:37 +0800
Subject: [PATCH] 新增发票管理

---
 ui/admin-ui3/src/views/tms/tmsRoute/index.vue |  985 ++++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 689 insertions(+), 296 deletions(-)

diff --git a/ui/admin-ui3/src/views/tms/tmsRoute/index.vue b/ui/admin-ui3/src/views/tms/tmsRoute/index.vue
index dfacfec..2debd27 100644
--- a/ui/admin-ui3/src/views/tms/tmsRoute/index.vue
+++ b/ui/admin-ui3/src/views/tms/tmsRoute/index.vue
@@ -1,5 +1,5 @@
 <template>
-  <basicContainer >
+  <basicContainer>
     <avue-crud
         :option="option"
         :table-loading="pageF.loading"
@@ -50,311 +50,704 @@
 </template>
 
 <script setup name="tmsRoute" lang="ts">
-  import {TmsRouteI,addTmsRoute, delTmsRoute, exportTmsRoute, getTmsRoute, listTmsRoute, updateTmsRoute} from "@/api/tms/tmsRoute";
-  import useCurrentInstance from "@/utils/useCurrentInstance";
-  import {computed,reactive, ref, toRefs} from "vue";
-  import {PagesInterface, PageQueryInterface} from "@/utils/globalInterface";
-  import {usePagePlus} from "@/hooks/usePagePlus";
-  import {hasPermission} from "@/utils/permissionUtils";
+import {
+  TmsRouteI,
+  addTmsRoute,
+  delTmsRoute,
+  exportTmsRoute,
+  getTmsRoute,
+  listTmsRoute,
+  updateTmsRoute
+} from "@/api/tms/tmsRoute";
+import useCurrentInstance from "@/utils/useCurrentInstance";
+import {computed, reactive, ref, toRefs} from "vue";
+import {PagesInterface, PageQueryInterface} from "@/utils/globalInterface";
+import {usePagePlus} from "@/hooks/usePagePlus";
+import {hasPermission} from "@/utils/permissionUtils";
+import {getArea, getCity, getProvince, getStreet} from "@/api/tms/tmsRegion";
 
-  const { proxy } = useCurrentInstance();
-  const crudRef = ref();
+const {proxy} = useCurrentInstance();
+const crudRef = ref();
 
-  const permissionList = computed(()=>{
-    return {
-      addBtn: hasPermission(["tms:tmsRoute:add"]),
-      delBtn: hasPermission(["tms:tmsRoute:remove"]),
-      editBtn: hasPermission(["tms:tmsRoute:edit"]),
-      viewBtn: hasPermission(["tms:tmsRoute:query"]),
-    }
-  })
+const permissionList = computed(() => {
+  return {
+    addBtn: hasPermission(["tms:tmsRoute:add"]),
+    delBtn: hasPermission(["tms:tmsRoute:remove"]),
+    editBtn: hasPermission(["tms:tmsRoute:edit"]),
+    viewBtn: hasPermission(["tms:tmsRoute:query"]),
+  }
+})
 
-  const data = reactive({
-    form:<TmsRouteI>{},
-    queryParams:<TmsRouteI&PageQueryInterface>{},
-    page: <PagesInterface>{
-      pageSize: 10,
-      total: 0,
-      currentPage: 1,
-    },
-    selectionList:[],
-  })
-  const {queryParams,form,page,selectionList} = toRefs(data);
-  const option = ref({
-    pageKey: 'TmsRoute',
-    rowKey: 'id',
-    column: {
-                                id: {
-          label: '涓婚敭ID',
-                  addDisplay : false,
-        editDisplay : false,
-        viewDisplay : false,
-        hide : true,
-        search : false,
-                  },
-                                systemCode: {
+const data = reactive({
+  form: <TmsRouteI>{},
+  queryParams: <TmsRouteI & PageQueryInterface>{},
+  page: <PagesInterface>{
+    pageSize: 10,
+    total: 0,
+    currentPage: 1,
+  },
+  selectionList: [],
+})
+const {queryParams, form, page, selectionList} = toRefs(data);
+const option = ref({
+  pageKey: 'TmsRoute',
+  rowKey: 'id',
+  labelWidth: 120,
+  group: [
+    {
+      label: '鍩烘湰淇℃伅',
+      prop: 'jbxx',
+      column:{
+        systemCode: {
           label: '绯荤粺缂栧彿',
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                      rules: [
-              {
-                required: true,
-                message: "绯荤粺缂栧彿涓嶈兘涓虹┖", trigger: "blur" }
-            ],                  },
-                                routeCode: {
+          addDisplay: false,
+          editDisplay: true, disabled: true,
+          viewDisplay: true,
+          hide: false,
+          search: true,
+          rules: [
+            {
+              required: true,
+              message: "绯荤粺缂栧彿涓嶈兘涓虹┖", trigger: "blur"
+            }
+          ],
+        },
+        routeCode: {
           label: '璺嚎缂栧彿',
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                      rules: [
-              {
-                required: true,
-                message: "璺嚎缂栧彿涓嶈兘涓虹┖", trigger: "blur" }
-            ],                  },
-                                routeName: {
+          addDisplay: true,
+          editDisplay: true,
+          viewDisplay: true,
+          hide: false,
+          search: true,
+          rules: [
+            {
+              required: true,
+              message: "璺嚎缂栧彿涓嶈兘涓虹┖", trigger: "blur"
+            }
+          ],
+        },
+        routeName: {
           label: '璺嚎鍚嶇О',
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                      rules: [
-              {
-                required: true,
-                message: "璺嚎鍚嶇О涓嶈兘涓虹┖", trigger: "blur" }
-            ],                  },
-                                routeType: {
+          addDisplay: true,
+          editDisplay: true,
+          viewDisplay: true,
+          hide: false,
+          search: true,
+          rules: [
+            {
+              required: true,
+              message: "璺嚎鍚嶇О涓嶈兘涓虹┖", trigger: "blur"
+            }
+          ],
+        },
+        routeType: {
           label: '璺嚎绫诲瀷',
-                      type: 'select', dataType:'string', dicUrl: '/system/dict/data/type/route_type',
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                      rules: [
-              {
-                required: true,
-                message: "璺嚎绫诲瀷涓嶈兘涓虹┖", trigger: "change"
-                 }
-            ],                  },
-                                transportMode: {
+          type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/route_type',
+          addDisplay: true,
+          editDisplay: true,
+          viewDisplay: true,
+          hide: false,
+          search: true,
+          rules: [
+            {
+              required: true,
+              message: "璺嚎绫诲瀷涓嶈兘涓虹┖", trigger: "change"
+            }
+          ],
+        },
+        transportMode: {
           label: '杩愯緭鏂瑰紡',
-                      type: 'select', dataType:'string', dicUrl: '/system/dict/data/type/transport_mode',
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                      rules: [
-              {
-                required: true,
-                message: "杩愯緭鏂瑰紡涓嶈兘涓虹┖", trigger: "change"
-                 }
-            ],                  },
-                                startArea: {
-          label: '璧风偣鍖哄煙',
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                      rules: [
-              {
-                required: true,
-                message: "璧风偣鍖哄煙涓嶈兘涓虹┖", trigger: "blur" }
-            ],                  },
-                                startWarehouse: {
-          label: '璧风偣浠撳簱锛屽叧鑱斾粨搴撶鐞�',
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                  },
-                                endArea: {
-          label: '缁堢偣鍖哄煙',
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                      rules: [
-              {
-                required: true,
-                message: "缁堢偣鍖哄煙涓嶈兘涓虹┖", trigger: "blur" }
-            ],                  },
-                                endWarehouse: {
-          label: '缁堢偣浠撳簱锛屽叧鑱斾粨搴撶鐞�',
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                  },
-                                viaStations: {
-          label: '閫旂粡绔欑偣锛屽绔欑偣鐢ㄩ�楀彿鍒嗛殧',
-                      type: 'textarea', minRows: 3, maxRows: 5,
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                  },
-                                distanceKm: {
-          label: '璺嚎閲岀▼',
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                      rules: [
-              {
-                required: true,
-                message: "璺嚎閲岀▼涓嶈兘涓虹┖", trigger: "blur" }
-            ],                  },
-                                estimatedHours: {
-          label: '棰勮鑰楁椂',
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                  },
-                                routeGroup: {
-          label: '鎵�灞炵嚎璺粍锛屼究浜庢壒閲忕淮鎶�',
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                  },
-                                suitableVehicleType: {
-          label: '閫傞厤杞﹀瀷',
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                  },
-                                suitableTrayType: {
-          label: '鎵樻灦绫诲瀷',
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                  },
-                                routeStatus: {
-          label: '璺嚎鐘舵��',
-                      type: 'select', dataType:'string', dicUrl: '/system/dict/data/type/route_status',
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                      rules: [
-              {
-                required: true,
-                message: "璺嚎鐘舵�佷笉鑳戒负绌�", trigger: "change"
-                 }
-            ],                  },
-                                isCommon: {
-          label: '鏄惁甯哥敤璺嚎',
-                      type: 'radio', dicUrl: '/system/dict/data/type/sys_number_is',
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                      rules: [
-              {
-                required: true,
-                message: "鏄惁甯哥敤璺嚎涓嶈兘涓虹┖", trigger: "blur" }
-            ],                  },
-                                status: {
-          label: '鐘舵��',
-                      type: 'radio', dicUrl: '/system/dict/data/type/sys_normal_disable',
-                  addDisplay : false,
-        editDisplay : false,
-        viewDisplay :true,
-        hide :false,
-        search :true,
-                      rules: [
-              {
-                required: true,
-                message: "鐘舵�佷笉鑳戒负绌�", trigger: "blur" }
-            ],                  },
-                                createBy: {
-          label: '鍒涘缓浜�',
-                  addDisplay : false,
-        editDisplay : false,
-        viewDisplay : false,
-        hide : true,
-        search : false,
-                  },
-                                createTime: {
-          label: '鍒涘缓鏃堕棿',
-                      type: 'date', valueFormat: 'YYYY-MM-DD',
-                  addDisplay : false,
-        editDisplay : false,
-        viewDisplay : false,
-        hide : true,
-        search : false,
-                  },
-                                updateBy: {
-          label: '鏇存柊浜�',
-                  addDisplay : false,
-        editDisplay : false,
-        viewDisplay : false,
-        hide :false,
-        search : false,
-                  },
-                                updateTime: {
-          label: '鏇存柊鏃堕棿',
-                      type: 'date', valueFormat: 'YYYY-MM-DD',
-                  addDisplay : false,
-        editDisplay : false,
-        viewDisplay : false,
-        hide :false,
-        search : false,
-                  },
-                                remark: {
-          label: '璺嚎琛ュ厖璇存槑',
-                      type: 'textarea', minRows: 3, maxRows: 5,
-                  addDisplay :true,
-        editDisplay :true,
-        viewDisplay : false,
-        hide : true,
-        search : false,
-                  },
-          }
-  })
-
-  const { tableData,pageF,rowSave,rowUpdate,rowDel,beforeOpen,searchChange,
-    searchReset,selectionChange,onLoad,currentChange,sizeChange,handleDelete,handleExport,handleUpdate,refreshChange} = usePagePlus({
-    form:form,
-    option:option,
-    queryParams:queryParams,
-    idKey:'id',
-    page:page.value,
-    getListApi:listTmsRoute,
-    getDetailApi:getTmsRoute,
-    exportApi:exportTmsRoute,
-    deleteApi:delTmsRoute,
-    addApi:addTmsRoute,
-    updateApi:updateTmsRoute,
-    handleUpdateFunc:()=>{
-      crudRef.value.rowEdit(selectionList.value[0]);
+          type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/transport_mode',
+          addDisplay: true,
+          editDisplay: true,
+          viewDisplay: true,
+          hide: false,
+          search: true,
+          rules: [
+            {
+              required: true,
+              message: "杩愯緭鏂瑰紡涓嶈兘涓虹┖", trigger: "change"
+            }
+          ],
+        },
+      }
     },
-    handleSelectionChangeFunc:(selection:any)=>{
-      selectionList.value = selection;
+    {
+      label: '璺嚎璇︽儏',
+      prop: 'lxxx',
+      column: {
+        startArea: {
+          label: '璧风偣鍖哄煙',type:'cascader',
+          addDisplay: true,
+          editDisplay: true,
+          viewDisplay: true,
+          hide: false,
+          search: true,
+          lazy: true,
+          props: {
+            label: 'name',
+            value: 'code'
+          },
+          rules: [
+            {
+              required: true,
+              message: "璧风偣鍖哄煙涓嶈兘涓虹┖", trigger: "blur"
+            }
+          ],
+          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();
+            }
+          }
+        },
+        startWarehouse: {
+          label: '璧风偣浠撳簱',
+          type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/sys_warehouse',
+          addDisplay: true,
+          editDisplay: true,
+          viewDisplay: true,
+
+        },
+        endArea: {
+          label: '缁堢偣鍖哄煙',
+          addDisplay: true,
+          editDisplay: true,type:'cascader',
+          viewDisplay: true,
+          rules: [
+            {
+              required: true,
+              message: "缁堢偣鍖哄煙涓嶈兘涓虹┖", trigger: "blur"
+            }
+          ],
+          lazy: true,
+          props: {
+            label: 'name',
+            value: 'code'
+          },
+          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();
+            }
+          }
+        },
+        endWarehouse: {
+          label: '缁堢偣浠撳簱',
+          addDisplay: true,
+          editDisplay: true,
+          viewDisplay: true,
+          type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/sys_warehouse',
+
+        },
+        viaStations: {
+          label: '閫旂粡绔欑偣',
+          type: 'textarea', minRows: 3, maxRows: 5,
+          addDisplay: true,span:24,
+          editDisplay: true,
+          viewDisplay: true,
+          hide: false, placeholder: '璇疯緭鍏ラ�旂粡绔欑偣,澶氱珯鐐圭敤閫楀彿鍒嗛殧',
+          search: true,
+        },
+        distanceKm: {
+          label: '璺嚎閲岀▼',
+          addDisplay: true,
+          editDisplay: true,append: 'Km',
+          viewDisplay: true,
+          hide: false,
+          search: true,
+          rules: [
+            {
+              required: true,
+              message: "璺嚎閲岀▼涓嶈兘涓虹┖", trigger: "blur"
+            }
+          ],
+        },
+        estimatedHours: {
+          label: '棰勮鑰楁椂',
+          addDisplay: true,append:'灏忔椂',
+          editDisplay: true,
+          viewDisplay: true,
+          hide: false,
+          search: true,
+        },
+      },
+    },
+    {
+      label: '鍏宠仈淇℃伅',
+      prop: 'glxx',
+      column: {
+        routeGroup: {
+          label: '鎵�灞炵嚎璺粍',
+          addDisplay: true,
+          editDisplay: true,
+          viewDisplay: true,
+          hide: false,
+          search: true,
+        },
+        suitableVehicleType: {
+          label: '閫傞厤杞﹀瀷',
+          addDisplay: true,
+          type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/license_type',
+
+          editDisplay: true,
+          viewDisplay: true,
+          hide: false,
+          search: true,
+        },
+        suitableTrayType: {
+          label: '鎵樻灦绫诲瀷',
+          addDisplay: true,
+          type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/shelf_type',
+
+          editDisplay: true,
+          viewDisplay: true,
+          hide: false,
+          search: true,
+        },
+      }
+    },{
+    label: '鐘舵�佷俊鎭�',
+      prop: 'ztxx',
+      column: {
+        routeStatus: {
+          label: '璺嚎鐘舵��',
+          type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/route_status',
+          addDisplay: true,
+          editDisplay: true,
+          viewDisplay: true,
+          hide: false,
+          search: true,
+          rules: [
+            {
+              required: true,
+              message: "璺嚎鐘舵�佷笉鑳戒负绌�", trigger: "change"
+            }
+          ],
+        },
+        isCommon: {
+          label: '鏄惁甯哥敤璺嚎',dataType: 'string',
+          type: 'radio', dicUrl: '/system/dict/data/type/sys_number_is',
+          addDisplay: true,
+          editDisplay: true,
+          viewDisplay: true,
+          hide: false,
+          search: true,
+          rules: [
+            {
+              required: true,
+              message: "鏄惁甯哥敤璺嚎涓嶈兘涓虹┖", trigger: "blur"
+            }
+          ],
+        },
+      }
+    },{
+    label: '鍏朵粬淇℃伅',
+      prop: 'qtxx',
+      column: {
+        status: {
+          label: '鐘舵��',dataType: 'string',
+          type: 'radio', dicUrl: '/system/dict/data/type/sys_normal_disable',
+          addDisplay: false,
+          editDisplay: false,
+          viewDisplay: true,
+          hide: false,
+          search: true,
+          rules: [
+            {
+              required: true,
+              message: "鐘舵�佷笉鑳戒负绌�", trigger: "blur"
+            }
+          ],
+        },
+        createBy: {
+          label: '鍒涘缓浜�',
+          addDisplay: false,
+          editDisplay: false,
+          viewDisplay: true,
+          hide: true,
+          search: false,
+        },
+        createTime: {
+          label: '鍒涘缓鏃堕棿',
+          type: 'date', valueFormat: 'YYYY-MM-DD',
+          addDisplay: false,
+          editDisplay: false,
+          viewDisplay: true,
+          hide: true,
+          search: false,
+        },
+        updateBy: {
+          label: '鏇存柊浜�',
+          addDisplay: false,
+          editDisplay: false,
+          viewDisplay: true,
+          hide: false,
+          search: false,
+        },
+        updateTime: {
+          label: '鏇存柊鏃堕棿',
+          type: 'date', valueFormat: 'YYYY-MM-DD',
+          addDisplay: false,
+          editDisplay: false,
+          viewDisplay: true,
+          hide: false,
+          search: false,
+        },
+        remark: {
+          label: '澶囨敞',
+          type: 'textarea', minRows: 3, maxRows: 5,
+          addDisplay: true,span:24,
+          editDisplay: true,
+          viewDisplay: true,
+          hide: true,
+          search: false,
+        },
+      }
     }
-  })
+  ],
+  column: {
+
+    systemCode: {
+      label: '绯荤粺缂栧彿',
+      display: false,
+      hide: false,
+      search: true,minWidth:150,
+
+    },
+    routeCode: {
+      label: '璺嚎缂栧彿',
+      display: false,minWidth:150,
+      hide: false,
+      search: true,
+    },
+    routeName: {
+      label: '璺嚎鍚嶇О',
+      display: false,minWidth:150,
+      hide: false,
+      search: true,
+
+    },
+    routeType: {
+      label: '璺嚎绫诲瀷',
+      type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/route_type',
+      display: false,
+      hide: false,
+      search: true,minWidth:150,
+    },
+    transportMode: {
+      label: '杩愯緭鏂瑰紡',
+      type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/transport_mode',
+      display: false,
+      hide: false,minWidth:150,
+      search: true,
+    },
+    // startArea: {
+    //   label: '璧风偣鍖哄煙',
+    //   display: false,type:'cascader',
+    //   hide: false,
+    //   search: true,minWidth:150,
+    //   lazy: true,
+    //   props: {
+    //     label: 'name',
+    //     value: 'code'
+    //   },
+    //   rules: [
+    //     {
+    //       required: true,
+    //       message: "璧风偣鍖哄煙涓嶈兘涓虹┖", trigger: "blur"
+    //     }
+    //   ],
+    //   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();
+    //     }
+    //   }
+    // },
+    startWarehouse: {
+      label: '璧风偣浠撳簱',
+      type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/sys_warehouse',
+      display: false,minWidth:150,
+      hide: false,
+      search: true,
+    },
+    // endArea: {
+    //   label: '缁堢偣鍖哄煙',
+    //   display: false,type:'cascader',
+    //   minWidth:150,
+    //   hide: false,
+    //   search: true,
+    //   props: {
+    //     label: 'name',
+    //     value: 'code'
+    //   },
+    //   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();
+    //     }
+    //   }
+    // },
+    endWarehouse: {
+      label: '缁堢偣浠撳簱',
+      display: false,
+      hide: false,minWidth:150,
+      search: true,
+      type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/sys_warehouse',
+
+    },
+    distanceKm: {
+      label: '璺嚎閲岀▼',
+      display: false,
+      hide: false,minWidth:150,
+      search: true,
+    },
+    estimatedHours: {
+      label: '棰勮鑰楁椂',
+      display: false,
+      hide: false,minWidth:150,
+      search: true,
+    },
+    suitableVehicleType: {
+      label: '閫傞厤杞﹀瀷',
+      display: false,
+      hide: false,minWidth:150,
+      search: true,
+      type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/license_type',
+
+    },
+    suitableTrayType: {
+      label: '鎵樻灦绫诲瀷',
+      display: false,
+      hide: false,minWidth:150,
+      search: true,
+      type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/shelf_type',
+
+    },
+    routeStatus: {
+      label: '璺嚎鐘舵��',
+      type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/route_status',
+      display: false,minWidth:150,
+      hide: false,
+      search: true,
+    },
+    isCommon: {
+      label: '鏄惁甯哥敤璺嚎',
+      type: 'radio',dataType: 'string',  dicUrl: '/system/dict/data/type/sys_number_is',
+      display: false,minWidth:150,
+      hide: false,
+      search: true,
+
+    },
+    status: {
+      label: '鐘舵��',
+      type: 'radio',dataType: 'string',  dicUrl: '/system/dict/data/type/sys_normal_disable',
+      display: false,
+      hide: false,minWidth:150,
+      search: true,
+    },
+
+    updateBy: {
+      label: '鏇存柊浜�',
+      display: false,
+      hide: false,
+      search: false,minWidth:150,
+    },
+    updateTime: {
+      label: '鏇存柊鏃堕棿',
+      display: false,
+      hide: false, minWidth:180,
+      search: false,
+    },
+  }
+})
+
+const {
+  tableData,
+  pageF,
+  rowSave,
+  rowUpdate,
+  rowDel,
+  beforeOpen,
+  searchChange,
+  searchReset,
+  selectionChange,
+  onLoad,
+  currentChange,
+  sizeChange,
+  handleDelete,
+  handleExport,
+  handleUpdate,
+  refreshChange
+} = usePagePlus({
+  form: form,
+  option: option,
+  queryParams: queryParams,
+  idKey: 'id',
+  page: page.value,
+  getListApi: listTmsRoute,
+  getDetailApi: getTmsRoute,
+  exportApi: exportTmsRoute,
+  deleteApi: delTmsRoute,
+  addApi: addTmsRoute,
+  updateApi: updateTmsRoute,
+  handleUpdateFunc: () => {
+    crudRef.value.rowEdit(selectionList.value[0]);
+  },
+  handleSelectionChangeFunc: (selection: any) => {
+    selectionList.value = selection;
+  },
+  rowSaveBegin:(row:any)=>{
+    if (Array.isArray(row.startArea)){
+      row.startArea = row.startArea.join(",");
+    }
+    if (Array.isArray(row.endArea)){
+      row.endArea = row.endArea.join(",");
+    }
+  },
+  rowUpdateBegin:(row:any)=>{
+    if (Array.isArray(row.startArea)){
+      row.startArea = row.startArea.join(",");
+    }
+    if (Array.isArray(row.endArea)){
+      row.endArea = row.endArea.join(",");
+    }
+  },
+  handleEndOpenFunc:()=>{
+    if (form.value.startArea){
+      form.value.startArea = form.value.startArea.split(",");
+    }
+    if (form.value.endArea){
+      form.value.endArea = form.value.endArea.split(",");
+    }
+  }
+})
 
 
 </script>

--
Gitblit v1.8.0