wujianwei
6 天以前 89fd2cf7202c321512c2ea699a3a220a7138ed44
ui/admin-ui3/src/views/tms/tmsVehicleDocument/index.vue
@@ -1,5 +1,5 @@
<template>
  <basicContainer >
  <basicContainer>
    <avue-crud
        :option="option"
        :table-loading="pageF.loading"
@@ -50,228 +50,453 @@
</template>
<script setup name="tmsVehicleDocument" lang="ts">
  import {TmsVehicleDocumentI,addTmsVehicleDocument, delTmsVehicleDocument, exportTmsVehicleDocument, getTmsVehicleDocument, listTmsVehicleDocument, updateTmsVehicleDocument} from "@/api/tms/tmsVehicleDocument";
  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 {
  TmsVehicleDocumentI,
  addTmsVehicleDocument,
  delTmsVehicleDocument,
  exportTmsVehicleDocument,
  getTmsVehicleDocument,
  listTmsVehicleDocument,
  updateTmsVehicleDocument
} from "@/api/tms/tmsVehicleDocument";
import useCurrentInstance from "@/utils/useCurrentInstance";
import {computed, onMounted, reactive, ref, toRefs, watch} 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 {getTmsVehicle, listTmsVehicle} from "@/api/tms/tmsVehicle";
  const { proxy } = useCurrentInstance();
  const crudRef = ref();
const {proxy} = useCurrentInstance();
const crudRef = ref();
  const permissionList = computed(()=>{
    return {
      addBtn: hasPermission(["tms:tmsVehicleDocument:add"]),
      delBtn: hasPermission(["tms:tmsVehicleDocument:remove"]),
      editBtn: hasPermission(["tms:tmsVehicleDocument:edit"]),
      viewBtn: hasPermission(["tms:tmsVehicleDocument:query"]),
    }
  })
const permissionList = computed(() => {
  return {
    addBtn: hasPermission(["tms:tmsVehicleDocument:add"]),
    delBtn: hasPermission(["tms:tmsVehicleDocument:remove"]),
    editBtn: hasPermission(["tms:tmsVehicleDocument:edit"]),
    viewBtn: hasPermission(["tms:tmsVehicleDocument:query"]),
  }
})
  const data = reactive({
    form:<TmsVehicleDocumentI>{},
    queryParams:<TmsVehicleDocumentI&PageQueryInterface>{},
    page: <PagesInterface>{
      pageSize: 10,
      total: 0,
      currentPage: 1,
    },
    selectionList:[],
  })
  const {queryParams,form,page,selectionList} = toRefs(data);
  const option = ref({
    pageKey: 'TmsVehicleDocument',
    rowKey: 'systemId',
    column: {
                                systemId: {
const data = reactive({
  form: <TmsVehicleDocumentI>{},
  queryParams: <TmsVehicleDocumentI & PageQueryInterface>{},
  page: <PagesInterface>{
    pageSize: 10,
    total: 0,
    currentPage: 1,
  },
  selectionList: [],
})
const {queryParams, form, page, selectionList} = toRefs(data);
const option = ref({
  pageKey: 'TmsVehicleDocument',
  rowKey: 'id',
  searchLabelWidth:100,
  labelWidth:110,
  group:[
    {
      label: '基本信息',
      prop: 'jbxx',
      column:{
        systemCode: {
          label: '系统编号',
                  addDisplay :true,
        editDisplay : false,
        viewDisplay : false,
        hide : true,
        search : false,
                  },
                                plateNumber: {
          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 :false,
        search :true,
                      rules: [
              {
                required: true,
                message: "车牌号不能为空", trigger: "blur" }
            ],                  },
                                id: {
          label: '',
                  addDisplay :true,
        editDisplay : false,
        viewDisplay : false,
        hide : true,
        search : false,
                  },
                                serviceProvider: {
          label: '车辆服务商',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                      rules: [
              {
                required: true,
                message: "车辆服务商不能为空", trigger: "blur" }
            ],                  },
                                certificateType: {
          label: '证件类型',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                      rules: [
              {
                required: true,
                message: "证件类型不能为空", trigger: "change"
                 }
            ],                  },
                                certificateNumber: {
          label: '证件号',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                      rules: [
              {
                required: true,
                message: "证件号不能为空", trigger: "blur" }
            ],                  },
                                registerDate: {
          label: '注册日期',
                      type: 'date', valueFormat: 'YYYY-MM-DD',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay : false,
        hide :false,
        search : false,
                  },
                                expireDate: {
          label: '到期日期',
                      type: 'date', valueFormat: 'YYYY-MM-DD',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay : false,
        hide :false,
        search : false,
                  },
                                certificateFile: {
          label: '证件凭证',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay : false,
        hide :false,
        search : false,
                  },
                                lastAnnualCheckDate: {
          label: '上次年审日期',
                      type: 'date', valueFormat: 'YYYY-MM-DD',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay : false,
        hide :false,
        search : false,
                  },
                                invalidDate: {
          label: '废止日期',
                      type: 'date', valueFormat: 'YYYY-MM-DD',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay : false,
        hide :false,
        search : false,
                  },
                                status: {
          label: '状态',
                      type: 'radio', dicUrl: '/system/dict/data/type/sys_normal_disable',
                  addDisplay :true,
        editDisplay :true,
        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,
                  },
          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||[],
                })
              })
            }
          }
  })
  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:'systemId',
    page:page.value,
    getListApi:listTmsVehicleDocument,
    getDetailApi:getTmsVehicleDocument,
    exportApi:exportTmsVehicleDocument,
    deleteApi:delTmsVehicleDocument,
    addApi:addTmsVehicleDocument,
    updateApi:updateTmsVehicleDocument,
    handleUpdateFunc:()=>{
      crudRef.value.rowEdit(selectionList.value[0]);
        },
        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',
          },
        },
      }
    },
    handleSelectionChangeFunc:(selection:any)=>{
      selectionList.value = selection;
    {
      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: '系统编号',
      display: false,
      hide: false,minWidth:150,
      search: true,
    },
    plateNumber: {
      label: '车牌号',
      display: false,
      hide: false,minWidth:150,
      search: true,
    },
    serviceProviderName: {
      label: '车辆服务商',
      display: false,disabled:true,
      hide: false,minWidth:150,
      search: true,
    },
    certificateType: {
      label: '证件类型',dataType: 'string',
      type: 'select', dicUrl: '/system/dict/data/type/license_type',
      display: false,
      hide: false,minWidth:150,
      search: true,
    },
    certificateNumber: {
      label: '证件号',
      display: false,
      hide: false,minWidth:150,
      search: true,
    },
    registerDate: {
      label: '注册日期',
      display: false,
      hide: false,minWidth:150,
      search: false,
    },
    expireDate: {
      label: '到期日期',
      display: false,
      hide: false,minWidth:150,
      search: false,
    },
    lastAnnualCheckDate: {
      label: '上次年审日期',
      display: false,
      hide: false,minWidth:150,
      search: false,
    },
    invalidDate: {
      label: '废止日期',
      display: false,
      hide: false,minWidth:150,
      search: false,
    },
    status: {
      label: '状态', dataType: 'string',
      type: 'radio', dicUrl: '/system/dict/data/type/sys_normal_disable',
      display: false,
      hide: false,minWidth:150,
      search: true,
    },
    updateBy: {
      label: '更新人',
      display: false,
      hide: false,minWidth:150,
      search: false,
    },
    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: listTmsVehicleDocument,
  getDetailApi: getTmsVehicleDocument,
  exportApi: exportTmsVehicleDocument,
  deleteApi: delTmsVehicleDocument,
  addApi: addTmsVehicleDocument,
  updateApi: updateTmsVehicleDocument,
  handleUpdateFunc: () => {
    crudRef.value.rowEdit(selectionList.value[0]);
  },
  handleSelectionChangeFunc: (selection: any) => {
    selectionList.value = selection;
  }
})
</script>
</script>