zhangback
2025-11-27 d457a0f31290ba12273a51e75f6c2cc714659efc
ui/admin-ui3/src/views/tms/tmsContract/index.vue
@@ -1,5 +1,5 @@
<template>
  <basicContainer >
  <basicContainer>
    <avue-crud
        :option="option"
        :table-loading="pageF.loading"
@@ -50,414 +50,761 @@
</template>
<script setup name="tmsContract" lang="ts">
  import {TmsContractI,addTmsContract, delTmsContract, exportTmsContract, getTmsContract, listTmsContract, updateTmsContract} from "@/api/tms/tmsContract";
  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 {
  TmsContractI,
  addTmsContract,
  delTmsContract,
  exportTmsContract,
  getTmsContract,
  listTmsContract,
  updateTmsContract
} from "@/api/tms/tmsContract";
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 dayjs from 'dayjs';
import {formatDate} from "@/utils/ruoyi";
import {getTmsSettlementEntity, listTmsSettlementEntity} from "@/api/tms/tmsSettlementEntity";
import router from "@/router";
const {proxy} = useCurrentInstance();
const crudRef = ref();
  const { proxy } = useCurrentInstance();
  const crudRef = ref();
const permissionList = computed(() => {
  return {
    addBtn: hasPermission(["tms:tmsContract:add"]),
    delBtn: hasPermission(["tms:tmsContract:remove"]),
    editBtn: hasPermission(["tms:tmsContract:edit"]),
    viewBtn: hasPermission(["tms:tmsContract:query"]),
  }
})
  const permissionList = computed(()=>{
    return {
      addBtn: hasPermission(["tms:tmsContract:add"]),
      delBtn: hasPermission(["tms:tmsContract:remove"]),
      editBtn: hasPermission(["tms:tmsContract:edit"]),
      viewBtn: hasPermission(["tms:tmsContract:query"]),
    }
  })
  const data = reactive({
    form:<TmsContractI>{},
    queryParams:<TmsContractI&PageQueryInterface>{},
    page: <PagesInterface>{
      pageSize: 10,
      total: 0,
      currentPage: 1,
    },
    selectionList:[],
  })
  const {queryParams,form,page,selectionList} = toRefs(data);
  const option = ref({
    pageKey: 'TmsContract',
    rowKey: 'id',
    column: {
                                id: {
          label: '主键ID',
                  addDisplay : false,
        editDisplay : false,
        viewDisplay : false,
        hide : true,
        search : false,
                  },
                                systemCode: {
const data = reactive({
  form: <TmsContractI>{},
  queryParams: <TmsContractI & PageQueryInterface>{},
  page: <PagesInterface>{
    pageSize: 10,
    total: 0,
    currentPage: 1,
  },
  selectionList: [],
})
const {queryParams, form, page, selectionList} = toRefs(data);
const option = ref({
  pageKey: 'TmsContract',
  rowKey: 'id',
  labelWidth: 100,
  searchLabelWidth: 100,
  group:[
    {
      label: '基本信息',
      prop: 'jbxx',
      column:{
        systemCode: {
          label: '系统编号',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                      rules: [
              {
                required: true,
                message: "系统编号不能为空", trigger: "blur" }
            ],                  },
                                contractCode: {
          addDisplay: false,disabled:true,
          editDisplay: true,
          viewDisplay: true,
          rules: [
            {
              required: true,
              message: "系统编号不能为空", trigger: "blur"
            }
          ],
        },
        isTempContract: {
          label: '临时合同',
          type: 'radio', dataType: 'string', dicUrl: '/system/dict/data/type/sys_number_is',
          addDisplay: true,value:'1',
          editDisplay: true,
          viewDisplay: true,
          rules: [
            {
              required: true,
              message: "是否临时合同不能为空", trigger: "change"
            }
          ],
        },
        contractCode: {
          label: '合同编号',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                      rules: [
              {
                required: true,
                message: "合同编号不能为空", trigger: "blur" }
            ],                  },
                                contractName: {
          label: '合同简称',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                      rules: [
              {
                required: true,
                message: "合同简称不能为空", trigger: "blur" }
            ],                  },
                                contractType: {
          addDisplay: true,
          editDisplay: true,
          viewDisplay: true,
          rules: [
            {
              required: true,
              message: "合同编号不能为空", trigger: "blur"
            }
          ],
        },
        contractName: {
          label: '合同名称',
          addDisplay: true,
          editDisplay: true,
          viewDisplay: true,
          rules: [
            {
              required: true,
              message: "合同名称不能为空", trigger: "blur"
            }
          ],
        },
        contractType: {
          label: '合同类型',
                      type: 'select', dataType:'string', dicUrl: '/system/dict/data/type/contract_type',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                      rules: [
              {
                required: true,
                message: "合同类型不能为空", trigger: "change"
                 }
            ],                  },
                                signDate: {
          type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/contract_type',
          addDisplay: true,
          editDisplay: true,
          viewDisplay: true,
          rules: [
            {
              required: true,
              message: "合同类型不能为空", trigger: "change"
            }
          ],
        },
        signDate: {
          label: '签约日期',
                      type: 'date', valueFormat: 'YYYY-MM-DD',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                      rules: [
              {
                required: true,
                message: "签约日期不能为空", trigger: "blur" }
            ],                  },
                                contractStartDate: {
          label: '合同期限开始时间',
                      type: 'date', valueFormat: 'YYYY-MM-DD',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                      rules: [
              {
                required: true,
                message: "合同期限开始时间不能为空", trigger: "blur" }
            ],                  },
                                contractEndDate: {
          label: '合同期限结束时间',
                      type: 'date', valueFormat: 'YYYY-MM-DD',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                      rules: [
              {
                required: true,
                message: "合同期限结束时间不能为空", trigger: "blur" }
            ],                  },
                                contractStatus: {
          label: '合同状态',
                      type: 'select', dataType:'string', dicUrl: '/system/dict/data/type/contract_status',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                      rules: [
              {
                required: true,
                message: "合同状态不能为空", trigger: "change"
                 }
            ],                  },
                                partyAName: {
          label: '甲方名称',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                      rules: [
              {
                required: true,
                message: "甲方名称不能为空", trigger: "blur" }
            ],                  },
                                partyAContact: {
          label: '甲方联系人',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay : false,
        hide : true,
        search : false,
                  },
                                partyAContactInfo: {
          label: '甲方联系方式',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay : false,
        hide : true,
        search : false,
                  },
                                partyBName: {
          label: '乙方名称',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                      rules: [
              {
                required: true,
                message: "乙方名称不能为空", trigger: "blur" }
            ],                  },
                                partyBContact: {
          label: '乙方联系人',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay : false,
        hide : true,
        search : false,
                  },
                                partyBContactInfo: {
          label: '乙方联系方式',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay : false,
        hide : true,
        search : false,
                  },
                                contractAmount: {
          label: '合同金额',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                      rules: [
              {
                required: true,
                message: "合同金额不能为空", trigger: "blur" }
            ],                  },
                                paymentMethod: {
          label: '付款方式',
                      type: 'select', dataType:'string', dicUrl: '/system/dict/data/type/payment_method',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                      rules: [
              {
                required: true,
                message: "付款方式不能为空", trigger: "change"
                 }
            ],                  },
                                paymentCycle: {
          label: '付款周期',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay : false,
        hide : true,
        search : false,
                  },
                                paidAmount: {
          label: '已付款项',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay : false,
        hide : true,
        search : false,
                  },
                                unpaidAmount: {
          label: '未付款项',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay : false,
        hide : true,
        search : false,
                  },
                                invoiceStatus: {
          label: '发票状态',
                      type: 'select', dataType:'string', dicUrl: '/system/dict/data/type/invoice_status',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                      rules: [
              {
                required: true,
                message: "发票状态不能为空", trigger: "change"
                 }
            ],                  },
                                fulfillmentStatus: {
          label: '履行状态',
                      type: 'select', dataType:'string', dicUrl: '/system/dict/data/type/fulfillment_status',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                      rules: [
              {
                required: true,
                message: "履行状态不能为空", trigger: "change"
                 }
            ],                  },
                                fulfillmentProgress: {
          label: '履行进度',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay : false,
        hide : true,
        search : false,
                  },
                                acceptanceStatus: {
          label: '验收状态',
                      type: 'select', dataType:'string', dicUrl: '/system/dict/data/type/acceptance_status',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                  },
                                attachmentName: {
          label: '附件名称',
                  addDisplay : false,
        editDisplay : false,
        viewDisplay : false,
        hide : true,
        search : false,
                  },
                                attachmentPath: {
          label: '附件路径',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay : false,
        hide : true,
        search : false,
                  },
                                uploadedBy: {
          label: '上传人',
                  addDisplay : false,
        editDisplay : false,
        viewDisplay : false,
        hide : true,
        search : false,
                  },
                                uploadTime: {
          label: '上传时间',
                      type: 'date', valueFormat: 'YYYY-MM-DD',
                  addDisplay : false,
        editDisplay : false,
        viewDisplay : false,
        hide : true,
        search : false,
                  },
                                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,
                  },
          type: 'date', valueFormat: 'YYYY-MM-DD',
          addDisplay: true,
          editDisplay: true,
          viewDisplay: true,
        },
        contractDate: {
          label: '合同期限',
          addDisplay: true,
          editDisplay: true,
          viewDisplay: true,
          rules: [
            {
              required: true,
              message: "合同期限时间不能为空", trigger: "blur"
            }
          ],
          type: "datetimerange",
          format: 'YYYY-MM-DD HH:mm:ss',
          valueFormat: 'YYYY-MM-DD HH:mm:ss',
          change: ({value}:{value:any}) => {
            if (Array.isArray(value) && value.length >1){
              form.value.contractStartDate = value[0]
              form.value.contractEndDate = value[1]
            }
            if (!(Array.isArray(value) && value.length >1)&& form.value.contractStartDate && form.value.contractEndDate){
              form.value.contractDate = [
                formatDate(form.value.contractStartDate),
                formatDate(form.value.contractEndDate)
              ];
            }
          }
  })
  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:listTmsContract,
    getDetailApi:getTmsContract,
    exportApi:exportTmsContract,
    deleteApi:delTmsContract,
    addApi:addTmsContract,
    updateApi:updateTmsContract,
    handleUpdateFunc:()=>{
      crudRef.value.rowEdit(selectionList.value[0]);
        },
        // contractStartDate: {
        //   label: '合同期限开始时间',
        //   type: 'date', valueFormat: 'YYYY-MM-DD',
        //   display: false,
        //   rules: [
        //     {
        //       required: true,
        //       message: "合同期限开始时间不能为空", trigger: "blur"
        //     }
        //   ],
        // },
        // contractEndDate: {
        //   label: '合同期限结束时间',
        //   type: 'date', valueFormat: 'YYYY-MM-DD',
        //   display: false,
        //   rules: [
        //     {
        //       required: true,
        //       message: "合同期限结束时间不能为空", trigger: "blur"
        //     }
        //   ],
        // },
        contractStatus: {
          label: '合同状态',
          type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/contract_status',
          addDisplay: true,
          editDisplay: true,
          viewDisplay: true,value: '0',
          rules: [
            {
              required: true,
              message: "合同状态不能为空", trigger: "change"
            }
          ],
        },
      }
    },
    handleSelectionChangeFunc:(selection:any)=>{
      selectionList.value = selection;
    {
      label: '甲方信息',
      prop: 'jfxx',
      column:{
        partyAId: {
          label: '甲方名称',
          addDisplay: true,
          editDisplay: true,
          viewDisplay: true,
          rules: [
            {
              required: true,
              message: "甲方名称不能为空", trigger: "change"
            }
          ],
          type: 'table',suffixIcon:'search',
          children:{
            border: true,
            searchMenuSpan: 5,
            column:{
              customerType: {
                label: '客户类型', minWidth: 120,
                type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/customer_type',
                search: true,
              },
              customerShortName: {
                label: '客户简称', minWidth: 130,
                search: true,
              },
              customerCode: {
                label: '客户编号',minWidth: 120,
                search: true,
              },
              contactName: {
                label: '联系人姓名',minWidth: 120,
              },
              signCompanyName: {
                label: '签约公司', minWidth: 150,
              },
            },
          },
          props:{
            label: 'customerShortName',
            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]
              }
              getTmsCustomerInfo(id).then(res=>{
                return callback(res.data||{})
              })
            }else{
              listTmsCustomerInfo({pageSize:page.pageSize,pageNum:page.currentPage,...data}).then(res=>{
                return callback({
                  total: res.total,
                  data: res.rows||[],
                })
              })
            }
          },
          change: (val: any) => {
            const table = crudRef.value?.getPropRef?.('partyAId')?.$refs?.temp;
            if (!table) return;
            let active = table.active;
            if (Array.isArray(active)) active = active[0];
            if (active) {
              Object.assign(form.value, {
                partyAId: active.id,
                partyAName: active.customerShortName,
                partyAContact: active.contactName,
                partyAContactInfo: active.contactPhone,
              });
            }
          },
        },
        partyAContact: {
          label: '甲方联系人',
          addDisplay: true,
          editDisplay: true,
          viewDisplay: true,
        },
        partyAContactInfo: {
          label: '甲方联系方式',
          addDisplay: true,
          editDisplay: true,
          viewDisplay: true,
        },
      }
    },
    {
      label: '乙方信息',
      prop: 'yfxx',
      column: {
        partyBId: {
          label: '乙方名称',
          addDisplay: true,
          editDisplay: true,
          viewDisplay: true,
          rules: [
            {
              required: true,
              message: "乙方名称不能为空", trigger: "change"
            }
          ],
          type: 'table',suffixIcon:'search',
          children:{
            border: true,
            searchMenuSpan: 5,
            column:{
              customerType: {
                label: '客户类型', minWidth: 120,
                type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/customer_type',
                search: true,
              },
              customerShortName: {
                label: '客户简称', minWidth: 130,
                search: true,
              },
              customerCode: {
                label: '客户编号',minWidth: 120,
                search: true,
              },
              contactName: {
                label: '联系人姓名',minWidth: 120,
              },
            },
          },
          props:{
            label: 'customerShortName',
            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]
              }
              getTmsSettlementEntity(id).then(res=>{
                return callback(res.data||{})
              })
            }else{
              listTmsSettlementEntity({pageSize:page.pageSize,pageNum:page.currentPage,...data}).then(res=>{
                return callback({
                  total: res.total,
                  data: res.rows||[],
                })
              })
            }
          },
          change: (val: any) => {
            const table = crudRef.value?.getPropRef?.('partyBId')?.$refs?.temp;
            if (!table) return;
            let active = table.active;
            if (Array.isArray(active)) active = active[0];
            if (active) {
              Object.assign(form.value, {
                partyBId: active.id,
                partyBName: active.customerShortName,
                partyBContact: active.contactName,
                partyBContactInfo: active.contactPhone,
              });
            }
          },
        },
        // partyBName: {
        //   label: '乙方名称',
        //   addDisplay: true,
        //   editDisplay: true,
        //   viewDisplay: true,
        //   rules: [
        //     {
        //       required: true,
        //       message: "乙方名称不能为空", trigger: "blur"
        //     }
        //   ],
        // },
        partyBContact: {
          label: '乙方联系人',
          addDisplay: true,
          editDisplay: true,
          viewDisplay: true,
        },
        partyBContactInfo: {
          label: '乙方联系方式',
          addDisplay: true,
          editDisplay: true,
          viewDisplay: true,
        },
      }
    },
    {
      label: '款项信息',
      prop: 'kfxx',
      column: {
        contractAmount: {
          label: '合同金额',
          addDisplay: true,
          editDisplay: true,
          viewDisplay: true,
          rules: [
            {
              required: true,
              message: "合同金额不能为空", trigger: "blur"
            }
          ],
        },
        // paymentMethod: {
        //   label: '付款方式',
        //   type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/payment_method',
        //   addDisplay: true,
        //   editDisplay: true,
        //   viewDisplay: true,
        //   rules: [
        //     {
        //       required: true,
        //       message: "付款方式不能为空", trigger: "change"
        //     }
        //   ],
        // },
        paymentCycle: {
          label: '付款周期',
          addDisplay: true,
          editDisplay: true,
          viewDisplay: true,
        },
        paidAmount: {
          label: '已付款项',
          addDisplay: true,
          editDisplay: true,
          viewDisplay: true,
        },
        unpaidAmount: {
          label: '未付款项',
          addDisplay: true,
          editDisplay: true,
          viewDisplay: true,
        },
        invoiceStatus: {
          label: '发票状态',
          type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/invoice_status',
          addDisplay: true,
          editDisplay: true,
          viewDisplay: true,
          // rules: [
          //   {
          //     required: true,
          //     message: "发票状态不能为空", trigger: "change"
          //   }
          // ],
        },
      }
    },
    {
      label: '履行信息',
      prop: 'xlyx',
      column: {
        fulfillmentStatus: {
          label: '履行状态',
          type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/fulfillment_status',
          addDisplay: true,
          editDisplay: true,
          viewDisplay: true,
          rules: [
            {
              required: true,
              message: "履行状态不能为空", trigger: "change"
            }
          ],
        },
        fulfillmentProgress: {
          label: '履行进度',
          addDisplay: true,
          editDisplay: true,
          viewDisplay: true,
        },
        acceptanceStatus: {
          label: '验收状态',
          type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/acceptance_status',
          addDisplay: true,
          editDisplay: true,
          viewDisplay: true,
        },
      }
    },
    {
      label: '附件信息',
      prop: 'fjxx',
      column: {
        // attachmentName: {
        //   label: '附件名称',
        //   addDisplay: false,
        //   editDisplay: false,
        //   viewDisplay: true,
        // },
        attachmentPath: {
          label: '附件',
          addDisplay: true,
          editDisplay: true,
          viewDisplay: true,span: 24,
          accept:'string',dataType: 'string',
          type: 'upload',
          action: '/common/upload2',
          propsHttp:{
            home:'url',
            name:'newFileName',
          },
          rules: [
            {
              required: true,
              message: "请上传附件", trigger: "change"
            }
          ],
        },
        // uploadedBy: {
        //   label: '上传人',
        //   addDisplay: false,
        //   editDisplay: false,
        //   viewDisplay: true,
        // },
      }
    },
    {
      label: '其他信息',
      prop: 'qtxx',
      column: {
        status: {
          label: '合同数据状态',dataType: 'string',
          type: 'radio', dicUrl: '/system/dict/data/type/sys_normal_disable',
          addDisplay: false,
          editDisplay: false,
          viewDisplay: true,
          rules: [
            {
              required: true,
              message: "合同数据状态不能为空", trigger: "blur"
            }
          ],
        },
        createBy: {
          label: '创建人',
          addDisplay: false,
          editDisplay: false,
          viewDisplay: true,
        },
        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,
        },
        updateTime: {
          label: '更新时间',
          addDisplay: false,
          editDisplay: false,
          viewDisplay: true,
        },
        remark: {
          label: '合同补充说明',
          type: 'textarea', minRows: 3, maxRows: 5,
          addDisplay: true,span:24,
          editDisplay: true,
          viewDisplay: true,
        },
      }
    }
  })
  ],
  column: {
    systemCode: {
      label: '系统编号',
      display: false,
      hide: false, minWidth:150,
      search: true,
    },
    contractCode: {
      label: '合同编号',
      display: false,
      hide: false,
      search: true,minWidth:150,
    },
    contractName: {
      label: '合同名称',
      display: false,minWidth:150,
      hide: false,
      search: true,
    },
    isTempContract: {
      label: '临时合同',
      type: 'radio', dataType: 'string', dicUrl: '/system/dict/data/type/sys_number_is',
      display: false,minWidth:150,
      hide: false,
      search: true,
    },
    contractType: {
      label: '合同类型',
      type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/contract_type',
      display: false,minWidth:150,
      hide: false,
      search: true,
    },
    signDate: {
      label: '签约日期',
      type: 'date', valueFormat: 'YYYY-MM-DD',
      display: false,minWidth:150,
      hide: false,
      search: true,
    },
    contractDate: {
      label: '合同期限',
      display: false,
      hide: false,
      search: false,minWidth:300,
      formatter: (row:any, column:any) => {
        if (row.contractStartDate && row.contractEndDate) {
          return row.contractStartDate + '~' + row.contractEndDate
        }
        return ''
      },
    },
    contractStatus: {
      label: '合同状态',
      type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/contract_status',
      display: false,
      hide: false,
      search: true,minWidth:150,
    },
    partyAName: {
      label: '甲方名称',
      display: false,
      hide: false,
      search: true,minWidth:150,
    },
    partyBName: {
      label: '乙方名称',
      display: false,
      hide: false,minWidth:150,
      search: true,
    },
    contractAmount: {
      label: '合同金额',
      display: false,
      hide: false,minWidth:150,
      search: false,
    },
    // paymentMethod: {
    //   label: '付款方式',
    //   type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/payment_method',
    //   display: false,
    //   hide: false,minWidth:150,
    //   search: true,
    // },
    invoiceStatus: {
      label: '发票状态',
      type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/invoice_status',
      display: false,
      hide: false,
      search: true,minWidth:150,
      rules: [
        {
          required: true,
          message: "发票状态不能为空", trigger: "change"
        }
      ],
    },
    fulfillmentStatus: {
      label: '履行状态',
      type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/fulfillment_status',
      display: false,
      hide: false,minWidth:150,
      search: true,
    },
    acceptanceStatus: {
      label: '验收状态',
      type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/acceptance_status',
      display: false,
      hide: false,minWidth:150,
      search: true,
    },
    status: {
      label: '合同数据状态',dataType: 'string',
      type: 'radio', dicUrl: '/system/dict/data/type/sys_normal_disable',
      display: false,
      hide: false,
      search: true,minWidth:150,
      rules: [
        {
          required: true,
          message: "合同数据状态不能为空", trigger: "blur"
        }
      ],
    },
    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: listTmsContract,
  getDetailApi: getTmsContract,
  exportApi: exportTmsContract,
  deleteApi: delTmsContract,
  addApi: addTmsContract,
  updateApi: updateTmsContract,
  getBeginListFunc:()=>{
    queryParams.value.contractStatus = <any>router.currentRoute.value.query.contactStatus || undefined;
  },
  handleUpdateFunc: () => {
    crudRef.value.rowEdit(selectionList.value[0]);
  },
  handleSelectionChangeFunc: (selection: any) => {
    selectionList.value = selection;
  },
})
console.log(router.currentRoute.value.query.contactStatus)
</script>