sen
2026-01-29 fea2d693c33fdbcb4c8304a96a4e584829cb437b
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>