From 89fd2cf7202c321512c2ea699a3a220a7138ed44 Mon Sep 17 00:00:00 2001
From: wujianwei <wjw@11.com>
Date: 星期四, 09 四月 2026 10:40:52 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/cwxt_master' into cwxt_master

---
 ui/admin-ui3/src/views/tms/tmsVehicleDocument/index.vue |  503 +++++++++++++++++++++++++++++++++----------------------
 1 files changed, 297 insertions(+), 206 deletions(-)

diff --git a/ui/admin-ui3/src/views/tms/tmsVehicleDocument/index.vue b/ui/admin-ui3/src/views/tms/tmsVehicleDocument/index.vue
index 2431ea7..2cdb968 100644
--- a/ui/admin-ui3/src/views/tms/tmsVehicleDocument/index.vue
+++ b/ui/admin-ui3/src/views/tms/tmsVehicleDocument/index.vue
@@ -95,86 +95,297 @@
   rowKey: 'id',
   searchLabelWidth:100,
   labelWidth:110,
+  group:[
+    {
+      label: '鍩烘湰淇℃伅',
+      prop: 'jbxx',
+      column:{
+        systemCode: {
+          label: '绯荤粺缂栧彿',
+          addDisplay: false,disabled: true,
+          editDisplay: true,
+          viewDisplay: true,
+          hide: false,minWidth:150,
+          search: true,
+          rules: [
+            {
+              required: true,
+              message: "绯荤粺缂栧彿涓嶈兘涓虹┖", trigger: "blur"
+            }
+          ],
+        },
+        vehicleId: {
+          label: '杞︾墝鍙�',
+          addDisplay: true,
+          editDisplay: true,
+          viewDisplay: true,
+          hide:true,
+          rules: [
+            {
+              required: true,
+              message: "杞︾墝鍙蜂笉鑳戒负绌�", trigger: "change"
+            }
+          ],
+          change: (val: any) => {
+            const table = crudRef.value?.getPropRef?.('vehicleId')?.$refs?.temp;
+            if (!table) return;
+            let active = table.active;
+            if (Array.isArray(active)) active = active[0];
+            if (active) {
+              Object.assign(form.value, {
+                vehicleId: active.id,
+                plateNumber: active.licensePlate,
+                serviceProviderId: active.serviceProviderId,
+                serviceProviderName: active.serviceProviderName,
+              });
+            }
+          },
+          type: 'table',suffixIcon:'search',dataType: 'string',
+          children:{
+            border: true,
+            searchMenuSpan: 5,
+            searchLabelWidth:100,
+            column:{
+              systemCode: {
+                label: '绯荤粺缂栧彿', minWidth: 130,
+                search: true,
+              },
+              serviceProviderName: {
+                label: '杞﹁締鏈嶅姟鍟�',minWidth: 120,
+                search: true,
+              },
+              vehicleType: {
+                label: '杞﹁締绫诲瀷',minWidth: 120,
+              },
+              licensePlate: {
+                label: '杞︾墝鍙�', minWidth: 150,
+              },
+              licenseHk: {
+                label: '棣欐腐鐗岀収', minWidth: 150,
+              },
+              licenseMo: {
+                label: '婢抽棬鐗岀収', minWidth: 150,
+              },
+            },
+
+          },
+          props:{
+            label: 'licensePlate',
+            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]
+              }
+              getTmsVehicle(id).then(res=>{
+                return callback(res.data||{})
+              })
+            }else{
+              listTmsVehicle({pageSize:page.pageSize,pageNum:page.currentPage,...data}).then(res=>{
+                return callback({
+                  total: res.total,
+                  data: res.rows||[],
+                })
+              })
+            }
+
+          }
+
+        },
+
+        plateNumber: {
+          label: '杞︾墝鍙�',
+          display: false,
+          hide: false,minWidth:150,
+          search: true,
+
+        },
+
+
+        // serviceProviderId: {
+        //   label: '杞﹁締鏈嶅姟鍟�',
+        //   addDisplay: true,disabled:true,
+        //   editDisplay: true,
+        //   viewDisplay: true,
+        //   hide: true,
+        //   rules: [
+        //     {
+        //       required: true,
+        //       message: "杞﹁締鏈嶅姟鍟嗕负绌�", trigger: "change"
+        //     }
+        //   ],
+        // },
+        serviceProviderName: {
+          label: '杞﹁締鏈嶅姟鍟�',
+          display: true,disabled:true,
+          hide: false,minWidth:150,
+          search: true,
+          rules: [
+            {
+              required: true,
+              message: "杞﹁締鏈嶅姟鍟嗕负绌�", trigger: "change"
+            }
+          ],
+
+        },
+
+        certificateType: {
+          label: '璇佷欢绫诲瀷',
+          addDisplay: true,dataType: 'string',
+          type: 'select', dicUrl: '/system/dict/data/type/license_type',
+          editDisplay: true,
+          viewDisplay: true,
+          hide: false,minWidth:150,
+          search: true,
+          rules: [
+            {
+              required: true,
+              message: "璇佷欢绫诲瀷涓嶈兘涓虹┖", trigger: "change"
+            }
+          ],
+        },
+        certificateNumber: {
+          label: '璇佷欢鍙�',
+          addDisplay: true,
+          editDisplay: true,
+          viewDisplay: true,
+          hide: false,minWidth:150,
+          search: true,
+          rules: [
+            {
+              required: true,
+              message: "璇佷欢鍙蜂笉鑳戒负绌�", trigger: "blur"
+            }
+          ],
+        },
+
+        registerDate: {
+          label: '娉ㄥ唽鏃ユ湡',
+          type: 'date', valueFormat: 'YYYY-MM-DD',
+          addDisplay: true,
+          editDisplay: true,
+          viewDisplay: true,
+          hide: false,minWidth:150,
+          search: false,
+        },
+        expireDate: {
+          label: '鍒版湡鏃ユ湡',
+          type: 'date', valueFormat: 'YYYY-MM-DD',
+          addDisplay: true,
+          editDisplay: true,
+          viewDisplay: true,
+          hide: false,minWidth:150,
+          search: false,
+        },
+
+        lastAnnualCheckDate: {
+          label: '涓婃骞村鏃ユ湡',
+          type: 'date', valueFormat: 'YYYY-MM-DD',
+          addDisplay: true,
+          editDisplay: true,
+          viewDisplay: true,
+          hide: false,minWidth:150,
+          search: false,
+        },
+        invalidDate: {
+          label: '搴熸鏃ユ湡',
+          type: 'date', valueFormat: 'YYYY-MM-DD',
+          addDisplay: true,
+          editDisplay: true,
+          viewDisplay: true,
+          hide: false,minWidth:150,
+          search: false,
+        },
+        certificateFile: {
+          label: '璇佷欢鍑瘉',
+          addDisplay: true,
+          editDisplay: true,
+          viewDisplay: true,
+          hide: true,minWidth:150,
+          search: false,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: true,
+          viewDisplay: true,
+          hide: false,minWidth:150,
+          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,minWidth:150,
+          search: false,
+        },
+        updateTime: {
+          label: '鏇存柊鏃堕棿',
+          type: 'date', valueFormat: 'YYYY-MM-DD',
+          addDisplay: false,
+          editDisplay: false,
+          viewDisplay: true,
+          hide: false,minWidth:180,
+          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: '绯荤粺缂栧彿',
-      addDisplay: false,disabled: true,
-      editDisplay: true,
-      viewDisplay: true,
+      display: false,
       hide: false,minWidth:150,
       search: true,
-      rules: [
-        {
-          required: true,
-          message: "绯荤粺缂栧彿涓嶈兘涓虹┖", trigger: "blur"
-        }
-      ],
-    },
-    vehicleId: {
-      label: '杞︾墝鍙�',
-      addDisplay: true,
-      editDisplay: true,
-      viewDisplay: true,
-      hide:true,
-      rules: [
-        {
-          required: true,
-          message: "杞︾墝鍙蜂笉鑳戒负绌�", trigger: "change"
-        }
-      ],
-      type: 'table',suffixIcon:'search',
-      children:{
-        border: true,
-        searchMenuSpan: 5,
-        searchLabelWidth:100,
-        column:{
-          systemCode: {
-            label: '绯荤粺缂栧彿', minWidth: 130,
-            search: true,
-          },
-          serviceProviderName: {
-            label: '杞﹁締鏈嶅姟鍟�',minWidth: 120,
-            search: true,
-          },
-          vehicleType: {
-            label: '杞﹁締绫诲瀷',minWidth: 120,
-          },
-          licensePlate: {
-            label: '杞︾墝鍙�', minWidth: 150,
-          },
-          licenseHk: {
-            label: '棣欐腐鐗岀収', minWidth: 150,
-          },
-          licenseMo: {
-            label: '婢抽棬鐗岀収', minWidth: 150,
-          },
-        },
-
-      },
-      props:{
-        label: 'licensePlate',
-        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]
-          }
-          getTmsVehicle(id).then(res=>{
-            return callback(res.data||{})
-          })
-        }else{
-          listTmsVehicle({pageSize:page.pageSize,pageNum:page.currentPage,...data}).then(res=>{
-            return callback({
-              total: res.total,
-              data: res.rows||[],
-            })
-          })
-        }
-
-      }
-
     },
 
     plateNumber: {
@@ -184,166 +395,67 @@
       search: true,
 
     },
-
-
-    // serviceProviderId: {
-    //   label: '杞﹁締鏈嶅姟鍟�',
-    //   addDisplay: true,disabled:true,
-    //   editDisplay: true,
-    //   viewDisplay: true,
-    //   hide: true,
-    //   rules: [
-    //     {
-    //       required: true,
-    //       message: "杞﹁締鏈嶅姟鍟嗕负绌�", trigger: "change"
-    //     }
-    //   ],
-    // },
     serviceProviderName: {
       label: '杞﹁締鏈嶅姟鍟�',
-      display: true,disabled:true,
+      display: false,disabled:true,
       hide: false,minWidth:150,
       search: true,
-      rules: [
-        {
-          required: true,
-          message: "杞﹁締鏈嶅姟鍟嗕负绌�", trigger: "change"
-        }
-      ],
-
     },
-
     certificateType: {
-      label: '璇佷欢绫诲瀷',
-      addDisplay: true,dataType: 'string',
+      label: '璇佷欢绫诲瀷',dataType: 'string',
       type: 'select', dicUrl: '/system/dict/data/type/license_type',
-      editDisplay: true,
-      viewDisplay: true,
+      display: false,
       hide: false,minWidth:150,
       search: true,
-      rules: [
-        {
-          required: true,
-          message: "璇佷欢绫诲瀷涓嶈兘涓虹┖", trigger: "change"
-        }
-      ],
     },
     certificateNumber: {
       label: '璇佷欢鍙�',
-      addDisplay: true,
-      editDisplay: true,
-      viewDisplay: true,
+      display: false,
       hide: false,minWidth:150,
       search: true,
-      rules: [
-        {
-          required: true,
-          message: "璇佷欢鍙蜂笉鑳戒负绌�", trigger: "blur"
-        }
-      ],
     },
-
     registerDate: {
       label: '娉ㄥ唽鏃ユ湡',
-      type: 'date', valueFormat: 'YYYY-MM-DD',
-      addDisplay: true,
-      editDisplay: true,
-      viewDisplay: true,
+      display: false,
       hide: false,minWidth:150,
       search: false,
     },
     expireDate: {
       label: '鍒版湡鏃ユ湡',
-      type: 'date', valueFormat: 'YYYY-MM-DD',
-      addDisplay: true,
-      editDisplay: true,
-      viewDisplay: true,
+      display: false,
       hide: false,minWidth:150,
       search: false,
     },
 
     lastAnnualCheckDate: {
       label: '涓婃骞村鏃ユ湡',
-      type: 'date', valueFormat: 'YYYY-MM-DD',
-      addDisplay: true,
-      editDisplay: true,
-      viewDisplay: true,
+      display: false,
       hide: false,minWidth:150,
       search: false,
     },
     invalidDate: {
       label: '搴熸鏃ユ湡',
-      type: 'date', valueFormat: 'YYYY-MM-DD',
-      addDisplay: true,
-      editDisplay: true,
-      viewDisplay: true,
+      display: false,
       hide: false,minWidth:150,
-      search: false,
-    },
-    certificateFile: {
-      label: '璇佷欢鍑瘉',
-      addDisplay: true,
-      editDisplay: true,
-      viewDisplay: true,
-      hide: true,minWidth:150,
       search: false,
     },
     status: {
       label: '鐘舵��', dataType: 'string',
       type: 'radio', dicUrl: '/system/dict/data/type/sys_normal_disable',
-      addDisplay: false,
-      editDisplay: true,
-      viewDisplay: true,
+      display: false,
       hide: false,minWidth:150,
       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,
+      display: false,
       hide: false,minWidth:150,
       search: false,
     },
     updateTime: {
       label: '鏇存柊鏃堕棿',
-      type: 'date', valueFormat: 'YYYY-MM-DD',
-      addDisplay: false,
-      editDisplay: false,
-      viewDisplay: true,
+      display: false,
       hide: false,minWidth:180,
-      search: false,
-    },
-    remark: {
-      label: '澶囨敞',
-      type: 'textarea', minRows: 3, maxRows: 5,
-      addDisplay: true,span:24,
-      editDisplay: true,
-      viewDisplay: true,
-      hide: true,
       search: false,
     },
   }
@@ -385,27 +497,6 @@
     selectionList.value = selection;
   }
 })
-onMounted(() => {
-  watch(() => form.value.vehicleId, () => {
 
-    if (!form.value.vehicleId){
-      return;
-    }
-    const table = crudRef.value?.getPropRef?.('vehicleId')?.$refs?.temp;
-    if (!table) return;
-
-    let active = table.active;
-    if (Array.isArray(active)) active = active[0];
-
-    if (active) {
-      Object.assign(form.value, {
-        vehicleId: active.id,
-        plateNumber: active.licensePlate,
-        serviceProviderId: active.serviceProviderId,
-        serviceProviderName: active.serviceProviderName,
-      });
-    }
-  });
-});
 
 </script>
\ No newline at end of file

--
Gitblit v1.8.0