From 075d8b76626b2c830cc3bef11fb32e89d6067a3e Mon Sep 17 00:00:00 2001
From: sen <sen@qq.com>
Date: 星期一, 23 三月 2026 10:34:00 +0800
Subject: [PATCH] 增加应收款分析管理界面

---
 ui/admin-ui3/src/views/tms/tmsDriver/index.vue |  553 ++++++++++++++++++++++++++++++++----------------------
 1 files changed, 327 insertions(+), 226 deletions(-)

diff --git a/ui/admin-ui3/src/views/tms/tmsDriver/index.vue b/ui/admin-ui3/src/views/tms/tmsDriver/index.vue
index ae461dc..d6dd05f 100644
--- a/ui/admin-ui3/src/views/tms/tmsDriver/index.vue
+++ b/ui/admin-ui3/src/views/tms/tmsDriver/index.vue
@@ -93,7 +93,309 @@
   pageKey: 'TmsDriver',
   rowKey: 'id',
   labelWidth: 120,
-  searchLabelWidth: 120,
+  searchLabelWidth: 100,
+  group:[
+    {
+      label: '鍩烘湰淇℃伅',
+      prop: 'jbxx',
+      column:{
+        systemCode: {
+          label: '绯荤粺缂栧彿',
+          addDisplay: false,disabled:true,
+          editDisplay: true,minWidth:150,
+          viewDisplay: true,
+          hide: false,
+          search: true,
+          rules: [
+            {
+              required: true,
+              message: "绯荤粺缂栧彿涓嶈兘涓虹┖", trigger: "blur"
+            }
+          ],
+        },
+        carrierType:{
+          label: '椹鹃┒鍛樼被鍨�',
+          display: true,
+          type: 'radio', dataType: 'string', dicUrl: '/system/dict/data/type/carrier_type',
+          rules: [
+            {
+              required: true,
+              message: "椹鹃┒鍛樼被鍨嬩笉鑳戒负绌�", trigger: "blur"
+            }
+          ],
+        },
+        vehicleProviderId: {
+          label: '杞﹁締鏈嶅姟鍟�',
+          addDisplay: true,
+          editDisplay: true,
+          viewDisplay: true,
+          hide: true,
+          rules: [
+            {
+              required: true,
+              message: "杞﹁締鏈嶅姟鍟嗕笉鑳戒负绌�", trigger: "change"
+            }
+          ],
+          change: (val: any) => {
+            const table = crudRef.value?.getPropRef?.('vehicleProviderId')?.$refs?.temp;
+            if (!table) return;
+            let active = table.active;
+            if (Array.isArray(active)) active = active[0];
+            if (active) {
+              Object.assign(form.value, {
+                vehicleProviderId: active.id,
+                vehicleProviderName: active.serviceShortName,
+              });
+            }
+          },
+          type: 'table', suffixIcon: 'search',dataType: 'string',
+          children: {
+            border: true,
+            searchLabelWidth: 100,
+            searchMenuSpan: 5,
+            column: {
+              serviceCode: {
+                label: '鏈嶅姟鍟嗙紪鐮�', minWidth: 130,
+                search: true,
+              },
+              serviceShortName: {
+                label: '鏈嶅姟鍟嗙畝绉�', minWidth: 120,
+                search: true,
+              },
+              serviceType: {
+                label: '鏈嶅姟绫诲瀷', multiple: true,
+                type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/service_type',
+                minWidth: 150,
+              },
+              isTransport: {
+                label: '鏄惁杩愯緭鏈嶅姟鍟�',
+                type: 'radio', dataType: 'string', dicUrl: '/system/dict/data/type/sys_number_is',
+                minWidth: 150,
+              },
+              isStorage: {
+                label: '鏄惁浠撳偍鏈嶅姟鍟�',
+                type: 'radio', dataType: 'string', dicUrl: '/system/dict/data/type/sys_number_is',
+                minWidth: 150,
+              },
+              isExpress: {
+                label: '鏄惁蹇�掓湇鍔″晢',
+                type: 'radio', dataType: 'string', dicUrl: '/system/dict/data/type/sys_number_is',
+                minWidth: 150,
+              },
+              contactName: {
+                label: '鑱旂郴浜哄鍚�', minWidth: 120,
+              },
+            },
+
+          },
+          props: {
+            label: 'serviceShortName',
+            value: 'id'
+          },
+          onLoad: ({page, value, data}: { page: any, value: any, data: any }, callback: any) => {
+            if (value) {
+              let id = value;
+              if (Array.isArray(value)) {
+                id = value[0]
+              }
+              getTmsServiceProvider(id).then(res => {
+                return callback(res.data || {})
+              })
+            } else {
+              listTmsServiceProvider({pageSize: page.pageSize, pageNum: page.currentPage, ...data}).then(res => {
+                return callback({
+                  total: res.total,
+                  data: res.rows || [],
+                })
+              })
+            }
+
+          }
+
+        },
+
+        driverName: {
+          label: '椹鹃┒鍛樺鍚�',
+          addDisplay: true,minWidth:150,
+          editDisplay: true,
+          viewDisplay: true,
+          hide: false,
+          search: true,
+          rules: [
+            {
+              required: true,
+              message: "椹鹃┒鍛樺鍚嶄笉鑳戒负绌�", trigger: "blur"
+            }
+          ],
+        },
+        mobile: {
+          label: '鎵嬫満',
+          addDisplay: true,minWidth:150,
+          editDisplay: true,
+          viewDisplay: true,
+          hide: false,
+          search: true,
+          rules: [
+            {
+              required: true,
+              message: "鎵嬫満涓嶈兘涓虹┖", trigger: "blur"
+            }
+          ],
+        },
+        email: {
+          label: '閭',
+          addDisplay: true,minWidth:150,
+          editDisplay: true,
+          viewDisplay: true,
+          hide: false,
+          search: false,
+        },
+        licenseType: {
+          label: '鍑嗛┚杞﹀瀷',
+          type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/before_license_type',
+          addDisplay: true,multiple:true,
+          editDisplay: true,minWidth:150,
+          viewDisplay: true,
+          hide: false,
+          search: false,
+          rules: [
+            {
+              required: true,
+              message: "鍑嗛┚杞﹀瀷涓嶈兘涓虹┖", trigger: "change"
+            }
+          ],
+        },
+        licenseNumber: {
+          label: '椹鹃┒璇佸彿',
+          addDisplay: true,minWidth:150,
+          editDisplay: true,
+          viewDisplay: true,
+          hide: false,
+          search: true,
+          rules: [
+            {
+              required: true,
+              message: "椹鹃┒璇佸彿涓嶈兘涓虹┖", trigger: "blur"
+            }
+          ],
+        },
+        licenseIssueDate: {
+          label: '椹鹃┒璇侀鍙栨棩鏈�',minWidth:150,
+          type: 'date', valueFormat: 'YYYY-MM-DD',
+          addDisplay: true,
+          editDisplay: true,
+          viewDisplay: true,
+          hide: false,
+          search: false,
+        },
+        licenseValidPeriod: {
+          label: '椹鹃┒璇佹湁鏁堟湡',
+          addDisplay: true,
+          editDisplay: true,minWidth:150,
+          viewDisplay: true,
+          hide: true,
+          search: false,
+          type: "daterange",
+          format: 'YYYY-MM-DD',
+          valueFormat: 'YYYY-MM-DD',
+          change: ({value}:{value:any}) => {
+            if (Array.isArray(value)){
+              form.value.licenseValidPeriodBefore = value[0]
+              form.value.licenseValidPeriodEnd = value[1]
+            }
+          }
+        },
+
+        currentVehicleCode: {
+          label: '褰撳墠缁戝畾杞﹁締',minWidth:150,
+          addDisplay: true,
+          editDisplay: true,
+          viewDisplay: true,
+          hide: false,
+          search: true,
+        },
+        licenseAttachment: {
+          label: '椹鹃┒璇佸嚟璇�',
+          //type: 'textarea', minRows: 3, maxRows: 5,
+          addDisplay: true,minWidth:150,
+          editDisplay: true,
+          viewDisplay: true,
+          span: 24,
+          accept:'string',dataType: 'string',
+          type: 'upload',
+          action: '/common/upload2',
+          propsHttp:{
+            home:'url',
+            name:'newFileName',
+          },
+        },
+      }
+    },
+    {
+      label: '鍏朵粬淇℃伅',
+      prop: 'qtxx',
+      column:{
+        status: {
+          label: '鐘舵��',dataType: 'string',
+          type: 'radio', dicUrl: '/system/dict/data/type/sys_normal_disable',
+          addDisplay: false,
+          editDisplay: false,minWidth:150,
+          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,minWidth:150,
+          editDisplay: false,
+          viewDisplay: true,
+          hide: false,
+          search: false,
+        },
+        updateTime: {
+          label: '鏇存柊鏃堕棿',
+          type: 'date', valueFormat: 'YYYY-MM-DD',
+          addDisplay: false,
+          editDisplay: false,
+          viewDisplay: true,minWidth:180,
+          hide: false,
+          search: false,
+        },
+        remark: {
+          label: '澶囨敞',
+          type: 'textarea', minRows: 3, maxRows: 5,
+          addDisplay: true,
+          editDisplay: true,
+          viewDisplay: true,
+          hide: true,
+          search: false,span:24,
+        },
+      }
+    }
+  ],
   column: {
     // id: {
     //   label: '涓婚敭ID',
@@ -105,17 +407,9 @@
     // },
     systemCode: {
       label: '绯荤粺缂栧彿',
-      addDisplay: false,disabled:true,
-      editDisplay: true,minWidth:150,
-      viewDisplay: true,
+      display: false,minWidth:150,
       hide: false,
       search: true,
-      rules: [
-        {
-          required: true,
-          message: "绯荤粺缂栧彿涓嶈兘涓虹┖", trigger: "blur"
-        }
-      ],
     },
     vehicleProviderName:{
       label: '杞﹁締鏈嶅姟鍟�',
@@ -123,89 +417,9 @@
       hide: false,
       search: true,
     },
-    vehicleProviderId: {
-      label: '杞﹁締鏈嶅姟鍟�',
-      addDisplay: true,
-      editDisplay: true,
-      viewDisplay: true,
-      hide: true,
-      rules: [
-        {
-          required: true,
-          message: "杞﹁締鏈嶅姟鍟嗕笉鑳戒负绌�", trigger: "blur"
-        }
-      ],
-      type: 'table', suffixIcon: 'search',
-      children: {
-        border: true,
-        searchLabelWidth: 100,
-        searchMenuSpan: 5,
-        column: {
-          serviceCode: {
-            label: '鏈嶅姟鍟嗙紪鐮�', minWidth: 130,
-            search: true,
-          },
-          serviceShortName: {
-            label: '鏈嶅姟鍟嗙畝绉�', minWidth: 120,
-            search: true,
-          },
-          serviceType: {
-            label: '鏈嶅姟绫诲瀷', multiple: true,
-            type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/service_type',
-            minWidth: 150,
-          },
-          isTransport: {
-            label: '鏄惁杩愯緭鏈嶅姟鍟�',
-            type: 'radio', dataType: 'string', dicUrl: '/system/dict/data/type/sys_number_is',
-            minWidth: 150,
-          },
-          isStorage: {
-            label: '鏄惁浠撳偍鏈嶅姟鍟�',
-            type: 'radio', dataType: 'string', dicUrl: '/system/dict/data/type/sys_number_is',
-            minWidth: 150,
-          },
-          isExpress: {
-            label: '鏄惁蹇�掓湇鍔″晢',
-            type: 'radio', dataType: 'string', dicUrl: '/system/dict/data/type/sys_number_is',
-            minWidth: 150,
-          },
-          contactName: {
-            label: '鑱旂郴浜哄鍚�', minWidth: 120,
-          },
-        },
-
-      },
-      props: {
-        label: 'serviceShortName',
-        value: 'id'
-      },
-      onLoad: ({page, value, data}: { page: any, value: any, data: any }, callback: any) => {
-        if (value) {
-          let id = value;
-          if (Array.isArray(value)) {
-            id = value[0]
-          }
-          getTmsServiceProvider(id).then(res => {
-            return callback(res.data || {})
-          })
-        } else {
-          listTmsServiceProvider({pageSize: page.pageSize, pageNum: page.currentPage, ...data}).then(res => {
-            return callback({
-              total: res.total,
-              data: res.rows || [],
-            })
-          })
-        }
-
-      }
-
-    },
-
     driverName: {
       label: '椹鹃┒鍛樺鍚�',
-      addDisplay: true,minWidth:150,
-      editDisplay: true,
-      viewDisplay: true,
+      display: false,minWidth:150,
       hide: false,
       search: true,
       rules: [
@@ -217,9 +431,7 @@
     },
     mobile: {
       label: '鎵嬫満',
-      addDisplay: true,minWidth:150,
-      editDisplay: true,
-      viewDisplay: true,
+      display: false,minWidth:150,
       hide: false,
       search: true,
       rules: [
@@ -231,160 +443,68 @@
     },
     email: {
       label: '閭',
-      addDisplay: true,minWidth:150,
-      editDisplay: true,
-      viewDisplay: true,
+      display: false,minWidth:150,
       hide: false,
       search: false,
     },
     licenseType: {
       label: '鍑嗛┚杞﹀瀷',
       type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/license_type',
-      addDisplay: true,
-      editDisplay: true,minWidth:150,
-      viewDisplay: true,
+      display: false,minWidth:150,multiple:true,
       hide: false,
       search: false,
-      rules: [
-        {
-          required: true,
-          message: "鍑嗛┚杞﹀瀷涓嶈兘涓虹┖", trigger: "change"
-        }
-      ],
     },
     licenseNumber: {
       label: '椹鹃┒璇佸彿',
-      addDisplay: true,minWidth:150,
-      editDisplay: true,
-      viewDisplay: true,
+      display: false,minWidth:150,
       hide: false,
       search: true,
-      rules: [
-        {
-          required: true,
-          message: "椹鹃┒璇佸彿涓嶈兘涓虹┖", trigger: "blur"
-        }
-      ],
     },
     licenseIssueDate: {
       label: '椹鹃┒璇侀鍙栨棩鏈�',minWidth:150,
-      type: 'date', valueFormat: 'YYYY-MM-DD',
-      addDisplay: true,
-      editDisplay: true,
-      viewDisplay: true,
+      display: false,
       hide: false,
       search: false,
     },
     licenseValidPeriod: {
-      label: '椹鹃┒璇佹湁鏁堟湡',
-      addDisplay: true,
-      editDisplay: true,minWidth:150,
-      viewDisplay: true,
-      hide: true,
-      search: false,
-      prop: "daterange",
-      type: "daterange",
-      format: 'YYYY-MM-DD',
-      valueFormat: 'YYYY-MM-DD',
-      change: ({value}:{value:any}) => {
-        if (Array.isArray(value)){
-          form.value.licenseValidPeriodBefore = value[0]
-          form.value.licenseValidPeriodEnd = value[1]
-        }
-      }
-    },
-    // licenseValidPeriodBefore: {
-    //   label: '椹鹃┒璇佹湁鏁堟湡寮�濮嬫椂闂�',
-    //   type: 'date', valueFormat: 'YYYY-MM-DD',
-    //   addDisplay: true,
-    //   editDisplay: true,
-    //   viewDisplay: true,
-    //   hide: true,
-    //   search: false,
-    // },
-    // licenseValidPeriodEnd: {
-    //   label: '椹鹃┒璇佹湁鏁堟湡缁撴潫鏃堕棿',
-    //   type: 'date', valueFormat: 'YYYY-MM-DD',
-    //   addDisplay: true,
-    //   editDisplay: true,
-    //   viewDisplay: true,
-    //   hide: true,
-    //   search: false,
-    // },
-    licenseAttachment: {
-      label: '椹鹃┒璇佸嚟璇侀摼鎺�',
-      //type: 'textarea', minRows: 3, maxRows: 5,
-      addDisplay: true,minWidth:150,
-      editDisplay: true,
-      viewDisplay: true,
+      label: '椹鹃┒璇佹湁鏁堟湡',display: false,minWidth:200,
       hide: false,
-      search: false,
+      formatter: (row:any) => {
+        return row.licenseValidPeriodBefore  + ' 鑷� ' + row.licenseValidPeriodEnd
+
+      },
     },
+    // licenseAttachment: {
+    //   label: '椹鹃┒璇佸嚟璇侀摼鎺�',display: false,minWidth:150,
+    //   hide: false,
+    //   search: false,
+    // },
     currentVehicleCode: {
       label: '褰撳墠缁戝畾杞﹁締',minWidth:150,
-      addDisplay: true,
-      editDisplay: true,
-      viewDisplay: true,
+      display: false,
       hide: false,
       search: true,
     },
     status: {
       label: '鐘舵��',dataType: 'string',
       type: 'radio', dicUrl: '/system/dict/data/type/sys_normal_disable',
-      addDisplay: false,
-      editDisplay: false,minWidth:150,
-      viewDisplay: true,
+     minWidth:150,
+      display: false,
       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,minWidth:150,
-      editDisplay: false,
-      viewDisplay: true,
+      label: '鏇存柊浜�',minWidth:150,
+      display: false,
       hide: false,
       search: false,
     },
     updateTime: {
       label: '鏇存柊鏃堕棿',
-      type: 'date', valueFormat: 'YYYY-MM-DD',
-      addDisplay: false,
-      editDisplay: false,
-      viewDisplay: true,minWidth:180,
+      display: false,minWidth:180,
       hide: false,
       search: false,
-    },
-    remark: {
-      label: '澶囨敞',
-      type: 'textarea', minRows: 3, maxRows: 5,
-      addDisplay: true,
-      editDisplay: true,
-      viewDisplay: true,
-      hide: true,
-      search: false,span:24,
     },
   }
 })
@@ -430,26 +550,7 @@
     }
   }
 })
-onMounted(() => {
-  watch(() => form.value.vehicleProviderId, () => {
 
-    if (!form.value.vehicleProviderId){
-      return;
-    }
-    const table = crudRef.value?.getPropRef?.('vehicleProviderId')?.$refs?.temp;
-    if (!table) return;
-
-    let active = table.active;
-    if (Array.isArray(active)) active = active[0];
-
-    if (active) {
-      Object.assign(form.value, {
-        vehicleProviderId: active.id,
-        vehicleProviderName: active.serviceShortName,
-      });
-    }
-  });
-});
 
 
 </script>

--
Gitblit v1.8.0