wujianwei
2026-01-14 4feb321e6fa88e86991da3610b2bdfcf5a2d87a7
ui/admin-ui3/src/views/tms/paymentTmsFinance/index.vue
@@ -1,5 +1,5 @@
<template>
  <basicContainer >
  <basicContainer>
    <avue-crud
        :option="option"
        :table-loading="pageF.loading"
@@ -21,21 +21,21 @@
        @on-load="onLoad"
    >
      <template #menu-left>
        <el-button
            type="success"
            icon="Edit"
            :disabled="pageF.single"
            v-hasPermi="['tms:tmsFinance:edit']"
            @click="handleUpdate">修改
        </el-button>
        <el-button
            type="danger"
            icon="Delete"
            :disabled="pageF.multiple"
            @click="handleDelete"
            v-hasPermi="['tms:tmsFinance:remove']"
        >删除
        </el-button>
        <!--        <el-button-->
        <!--            type="success"-->
        <!--            icon="Edit"-->
        <!--            :disabled="pageF.single"-->
        <!--            v-hasPermi="['tms:tmsFinance:edit']"-->
        <!--            @click="handleUpdate">修改-->
        <!--        </el-button>-->
        <!--        <el-button-->
        <!--            type="danger"-->
        <!--            icon="Delete"-->
        <!--            :disabled="pageF.multiple"-->
        <!--            @click="handleDelete"-->
        <!--            v-hasPermi="['tms:tmsFinance:remove']"-->
        <!--        >删除-->
        <!--        </el-button>-->
        <el-button
            type="warning"
            plain
@@ -45,540 +45,383 @@
        >导出
        </el-button>
      </template>
      <template #menu-before="{row}">
        <el-link size="small" type="primary" v-if="row.status == 0" @click="handleConfirm(row)" class="link-btn"
                 :underline="false" icon="el-icon-pointer">确认
        </el-link>
        <el-link size="small" type="primary" v-if="[0,1].includes(row.status)" @click="handleCancel(row)" class="link-btn" :underline="false"
                 icon="el-icon-connection">作废
        </el-link>
        <el-link size="small" type="primary" v-if="[0,1].includes(row.status)" @click="handleAddFinanceDetail(row)" class="link-btn"
                 :underline="false" icon="el-icon-edit-pen">费用明细
        </el-link>
      </template>
    </avue-crud>
    <el-dialog :title="pageF.title" v-model="pageF.open" class="avue-dialog avue-dialog--top" width="80%">
      总费用 <el-input-number v-model="form.totalAmount" disabled readonly></el-input-number>
      <avue-crud style="margin-top: 10px "
                 :option="financeTableOption"
                 :data="boxTableData"
                 :permission="permissionList2"
                 @row-update="rowDetailUpdate"
                 @row-save="rowDetailSave"
      >
        <template #menu="{row}">
          <el-link size="small" type="primary" v-if="[0].includes(row.status)" @click="handleCancelDetail(row)" class="link-btn" :underline="false"
                   icon="el-icon-connection">作废
          </el-link>
        </template>
      </avue-crud>
    </el-dialog>
  </basicContainer>
</template>
<script setup name="tmsFinance" lang="ts">
  import {TmsFinanceI,addTmsFinance, delTmsFinance, exportTmsFinance, getTmsFinance, listTmsFinance, updateTmsFinance} from "@/api/tms/tmsFinance";
  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 {
  TmsFinanceI,
  addTmsFinance,
  delTmsFinance,
  exportTmsFinance,
  getTmsFinance,
  listTmsFinance,
  updateTmsFinance,confirmFinance,cancelFinance
} from "@/api/tms/tmsFinance";
import {addTmsFinanceDetail, listTmsFinanceDetail,
  cancelFinanceDetail,
  updateTmsFinanceDetail} from "@/api/tms/tmsFinanceDetail"
  const { proxy } = useCurrentInstance();
  const crudRef = ref();
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 {ElMessage, ElMessageBox} from "element-plus";
import {confirmOrder} from "@/api/tms/tmsDispatchOrder";
  const permissionList = computed(()=>{
    return {
      addBtn: hasPermission(["tms:tmsFinance:add"]),
      delBtn: hasPermission(["tms:tmsFinance:remove"]),
      editBtn: hasPermission(["tms:tmsFinance:edit"]),
      viewBtn: hasPermission(["tms:tmsFinance:query"]),
    }
  })
const {proxy} = useCurrentInstance();
const crudRef = ref();
  const data = reactive({
    form:<TmsFinanceI>{},
    queryParams:<TmsFinanceI&PageQueryInterface>{},
    page: <PagesInterface>{
      pageSize: 10,
      total: 0,
      currentPage: 1,
const permissionList = computed(() => {
  return {
    addBtn: hasPermission(["tms:tmsFinance:add"]),
    delBtn: hasPermission(["tms:tmsFinance:remove"]),
    editBtn: hasPermission(["tms:tmsFinance:edit"]),
    viewBtn: hasPermission(["tms:tmsFinance:query"]),
  }
})
const permissionList2 = (key: any, row: any, index: any) => {
  if (key == 'addBtn') {
    return true
  }else if (key == 'editBtn') {
    return  [0].includes(row?.status)
  } else {
    return true;
  }
};
const data = reactive({
  form: <TmsFinanceI>{},
  queryParams: <TmsFinanceI & PageQueryInterface>{},
  page: <PagesInterface>{
    pageSize: 10,
    total: 0,
    currentPage: 1,
  },
  selectionList: [],
  boxTableData: []
})
const {queryParams, form, page, selectionList,boxTableData} = toRefs(data);
const option = ref({
  pageKey: 'TmsFinance',
  rowKey: 'id',
  addBtn: false,
  editBtn: false,
  delBtn: false,
  viewBtn: false,
  column: {
    systemCode: {
      label: '系统编号',
      hide: false,minWidth: 180,
      search: true,
    },
    selectionList:[],
  })
  const {queryParams,form,page,selectionList} = toRefs(data);
  const option = ref({
    pageKey: 'TmsFinance',
    rowKey: 'id',
    column: {
                                id: {
          label: '主键ID',
                  addDisplay :true,
        editDisplay : false,
        viewDisplay : false,
        hide : true,
        search : false,
                  },
                                systemCode: {
          label: '系统编号,新增时自动填写',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                      rules: [
              {
                required: true,
                message: "系统编号,新增时自动填写不能为空", trigger: "blur" }
            ],                  },
                                planName: {
          label: '应收',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                      rules: [
              {
                required: true,
                message: "应收不能为空", trigger: "blur" }
            ],                  },
                                dispatchId: {
          label: '调度单号',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                      rules: [
              {
                required: true,
                message: "调度单号不能为空", trigger: "blur" }
            ],                  },
                                dispatchNo: {
          label: '调度单号',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                      rules: [
              {
                required: true,
                message: "调度单号不能为空", trigger: "blur" }
            ],                  },
                                customerId: {
          label: '客户ID',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                      rules: [
              {
                required: true,
                message: "客户ID不能为空", trigger: "blur" }
            ],                  },
                                customerCode: {
          label: '客户编码',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                  },
                                projectId: {
          label: '关联项目ID',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                      rules: [
              {
                required: true,
                message: "关联项目ID不能为空", trigger: "blur" }
            ],                  },
                                projectName: {
          label: '关联项目名称',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                      rules: [
              {
                required: true,
                message: "关联项目名称不能为空", trigger: "blur" }
            ],                  },
                                vehicleProviderId: {
          label: '车辆服务商ID',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                      rules: [
              {
                required: true,
                message: "车辆服务商ID不能为空", trigger: "blur" }
            ],                  },
                                vehicleProviderName: {
          label: '车辆服务商名称',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                      rules: [
              {
                required: true,
                message: "车辆服务商名称不能为空", trigger: "blur" }
            ],                  },
                                requiredVehicleTypes: {
          label: '要求车型,由调度单数据生成',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                      rules: [
              {
                required: true,
                message: "要求车型,由调度单数据生成不能为空", trigger: "blur" }
            ],                  },
                                actualVehicleType: {
          label: '实际车型',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                  },
                                mainDriverId: {
          label: '关联驾驶员管理ID',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                      rules: [
              {
                required: true,
                message: "关联驾驶员管理ID不能为空", trigger: "blur" }
            ],                  },
                                mainDriver: {
          label: '主驾驶员,由调度单数据生成',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                      rules: [
              {
                required: true,
                message: "主驾驶员,由调度单数据生成不能为空", trigger: "blur" }
            ],                  },
                                assistantDriver: {
          label: '副驾驶员,由调度单数据生成',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                  },
                                vehicleId: {
          label: '车辆管理表ID',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                      rules: [
              {
                required: true,
                message: "车辆管理表ID不能为空", trigger: "blur" }
            ],                  },
                                licensePlate: {
          label: '车牌号,由调度单数据生成',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                      rules: [
              {
                required: true,
                message: "车牌号,由调度单数据生成不能为空", trigger: "blur" }
            ],                  },
                                totalAmount: {
          label: '总金额,由调度单数据生成',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                      rules: [
              {
                required: true,
                message: "总金额,由调度单数据生成不能为空", trigger: "blur" }
            ],                  },
                                transportRoute: {
          label: '运输线路,由调度单数据生成',
                      type: 'textarea', minRows: 3, maxRows: 5,
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                      rules: [
              {
                required: true,
                message: "运输线路,由调度单数据生成不能为空", trigger: "blur" }
            ],                  },
                                shipperId: {
          label: '发货人',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                      rules: [
              {
                required: true,
                message: "发货人不能为空", trigger: "blur" }
            ],                  },
                                shipperName: {
          label: '发货人名称',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                  },
                                shipperMobile: {
          label: '发货人手机号',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                  },
                                shipperAddress: {
          label: '发货人地址',
                      type: 'textarea', minRows: 3, maxRows: 5,
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                  },
                                shipperRegionCode: {
          label: '发货行政区域',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                  },
                                receiverId: {
          label: '收货人',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                      rules: [
              {
                required: true,
                message: "收货人不能为空", trigger: "blur" }
            ],                  },
                                receiverName: {
          label: '收货人名称',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                  },
                                receiverMobile: {
          label: '收货人手机号',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                  },
                                receiverAddress: {
          label: '收货人地址',
                      type: 'textarea', minRows: 3, maxRows: 5,
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                  },
                                receiverRegionCode: {
          label: '收货行政区域',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                  },
                                status: {
          label: '状态,0=待确认,1=已确认,2=作废',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                      rules: [
              {
                required: true,
                message: "状态,0=待确认,1=已确认,2=作废不能为空", trigger: "blur" }
            ],                  },
                                feeName: {
          label: '费用名称,生成费用时固定生成一条运费',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                      rules: [
              {
                required: true,
                message: "费用名称,生成费用时固定生成一条运费不能为空", trigger: "blur" }
            ],                  },
                                initialFeeAmount: {
          label: '初始费用金额,等于匹配报价方案的运费报价,新增后不可修改',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                      rules: [
              {
                required: true,
                message: "初始费用金额,等于匹配报价方案的运费报价,新增后不可修改不能为空", trigger: "blur" }
            ],                  },
                                actualFeeAmount: {
          label: '实际费用金额,默认等于初始费用,可修改',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                      rules: [
              {
                required: true,
                message: "实际费用金额,默认等于初始费用,可修改不能为空", trigger: "blur" }
            ],                  },
                                feeVoucherUrl: {
          label: '费用凭证,超链接',
                      type: 'textarea', minRows: 3, maxRows: 5,
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                  },
                                feeCreateTime: {
          label: '费用创建时间,新增时自动填写',
                      type: 'date', valueFormat: 'YYYY-MM-DD',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                      rules: [
              {
                required: true,
                message: "费用创建时间,新增时自动填写不能为空", trigger: "blur" }
            ],                  },
                                createBy: {
          label: '创建人,新增时自动填写',
                  addDisplay :true,
        editDisplay : false,
        viewDisplay : false,
        hide : true,
        search : false,
                      rules: [
              {
                required: true,
                message: "创建人,新增时自动填写不能为空", trigger: "blur" }
            ],                  },
                                createTime: {
          label: '创建时间,新增时自动填写',
                      type: 'date', valueFormat: 'YYYY-MM-DD',
                  addDisplay :true,
        editDisplay : false,
        viewDisplay : false,
        hide : true,
        search : false,
                      rules: [
              {
                required: true,
                message: "创建时间,新增时自动填写不能为空", trigger: "blur" }
            ],                  },
                                updateBy: {
          label: '更新人,新增时自动填写,被修改时自动更新',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay : false,
        hide : true,
        search : false,
                      rules: [
              {
                required: true,
                message: "更新人,新增时自动填写,被修改时自动更新不能为空", trigger: "blur" }
            ],                  },
                                updateTime: {
          label: '更新时间,新增时自动填写,被修改时自动更新',
                      type: 'date', valueFormat: 'YYYY-MM-DD',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay : false,
        hide : true,
        search : false,
                      rules: [
              {
                required: true,
                message: "更新时间,新增时自动填写,被修改时自动更新不能为空", trigger: "blur" }
            ],                  },
                                remark: {
          label: '备注',
                      type: 'textarea', minRows: 3, maxRows: 5,
                  addDisplay :true,
        editDisplay :true,
        viewDisplay : false,
        hide :false,
        search : false,
                  },
                                recordStatus: {
          label: '记录状态,0=正常,1=作废',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                      rules: [
              {
                required: true,
                message: "记录状态,0=正常,1=作废不能为空", trigger: "blur" }
            ],                  },
                                planId: {
          label: '',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                  },
                                type: {
          label: '类型',
                  addDisplay :true,
        editDisplay :true,
        viewDisplay :true,
        hide :false,
        search :true,
                  },
          }
  })
  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:listTmsFinance,
    getDetailApi:getTmsFinance,
    exportApi:exportTmsFinance,
    deleteApi:delTmsFinance,
    addApi:addTmsFinance,
    updateApi:updateTmsFinance,
    handleUpdateFunc:()=>{
      crudRef.value.rowEdit(selectionList.value[0]);
    dispatchNo: {
      label: '调度单号',minWidth: 150,
      search: true,
    },
    handleSelectionChangeFunc:(selection:any)=>{
      selectionList.value = selection;
    }
  })
    planName: {
      label: '应付方案名称',minWidth: 150,
      search: true,
    },
    customerName: {
      label: '客户',minWidth: 150,
      search: true,
    },
    projectName: {
      label: '项目名称',minWidth: 150,
      search: true,
    },
    vehicleProviderName: {
      label: '车辆服务商',minWidth: 150,
      search: false,
    },
    requiredVehicleTypes: {
      label: '要求车型',minWidth: 150,
      search: false,
      display: true, type: 'select', dicUrl: '/system/dict/data/type/license_type', dataType: 'string',
    },
    actualVehicleType: {
      label: '实际车型',minWidth: 150,
      search: false,
      display: true, type: 'select', dicUrl: '/system/dict/data/type/license_type', dataType: 'string',
    },
    mainDriverName: {
      label: '主驾驶员',minWidth: 150,
      search: false,
    },
    licensePlate: {
      label: '车牌号',minWidth: 150,
      search: false,
    },
    transportLine: {
      label: '运输线路',minWidth: 150, overHidden: true,
      search: false,
    },
    shipperName: {
      label: '发货人名称',minWidth: 150,
      search: false,
    },
    shipperRegionLabel: {
      label: '发货行政区域',minWidth: 150,
      search: false,
    },
    receiverName: {
      label: '收货人名称',
      search: false,minWidth: 150,
    },
    receiverRegionLabel: {
      label: '收货行政区域',
      search: false,minWidth: 150,
    },
    totalAmount: {
      label: '总金额',minWidth: 150,
      search: false,
    },
    confirmBy: {
      label: '费用确认人',minWidth: 150,
      search: false,
    },
    confirmTime: {
      label: '费用确认时间',minWidth: 180,
      search: false,
    },
    status: {
      label: '状态',minWidth: 150,
      search: false,fixed: 'right',
      display: true, type: 'select', dicUrl: '/system/dict/data/type/finance_status', dataType: 'string',
    },
    updateBy: {
      label: '更新人',
      search: false,minWidth: 150,
    },
    updateTime: {
      label: '更新时间',
      search: false,minWidth: 180,
    },
  }
})
const financeTableOption = ref({
  menu: true,
  addBtn: true,
  header: true, selection: false,
  viewBtn: false,
  delBtn: false,labelWidth:150,
  column: {
    feeType: {
      label: '费用名称',minWidth: 150,
      display: true,disabled: true,
      value: "99",
      type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/fee_type',
    },
    initialFeeAmount: {
      label: '初始登记费用金额',minWidth: 150,
      display: true,disabled: true,type: 'number',
    },
    actualFeeAmount: {
      label: '实际费用金额',minWidth: 150, type: 'number',
      display: true,
      rules: [
        {
          required: true,
          message: "实际费用金额不能为空", trigger: "change"
        }
      ],
    },
    feeVoucherUrl: {
      label: '费用凭证',
      display: true, hide:true,
      accept:'string',dataType: 'string',
      type: 'upload',
      action: '/common/upload2',
    },
    feeCreateTime: {
      label: '费用创建时间',minWidth: 180,
      display: false,
    },
    updateBy: {
      label: '更新人',minWidth: 150,
      display: false,
    },
    updateTime: {
      label: '更新时间',minWidth: 180,
      display: false,
    },
    status: {
      label: '状态',minWidth: 150, fixed: 'right',
      display: false,
      type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/finance_detail_status',
    },
  }
})
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: listTmsFinance,
  getDetailApi: getTmsFinance,
  exportApi: exportTmsFinance,
  deleteApi: delTmsFinance,
  addApi: addTmsFinance,
  updateApi: updateTmsFinance,
  handleUpdateFunc: () => {
    crudRef.value.rowEdit(selectionList.value[0]);
  },
  handleSelectionChangeFunc: (selection: any) => {
    selectionList.value = selection;
  },
  getBeginListFunc:()=>{
    queryParams.value.type = 1;
  }
})
const handleConfirm = (row: any) => {
  ElMessageBox.confirm("是否对调度单号" + row.dispatchNo + "的应付方案进行确认 ?", '系统提示', {
    confirmButtonText: '确定',
    cancelButtonText: '取消',
    type: 'warning'
  }).then(() => {
    return confirmFinance(row.id);
  }).then(() => {
    onLoad(page.value);
    ElMessage({
      message: "操作成功!",
      type: 'success'
    })
  });
}
const handleCancel = (row: any) => {
  ElMessageBox.confirm("是否对调度单号" + row.dispatchNo + "的应付方案进行作废?", '系统提示', {
    confirmButtonText: '确定',
    cancelButtonText: '取消',
    type: 'warning'
  }).then(() => {
    return cancelFinance(row.id);
  }).then(() => {
    onLoad(page.value);
    ElMessage({
      message: "操作成功!",
      type: 'success'
    })
  });
}
const handleAddFinanceDetail = (row:any) => {
  listTmsFinanceDetail({financeId:row.id,pageNum:1,pageSize: 9999}).then(res=>{
    boxTableData.value = res.rows || [];
    pageF.title = '费用明细';
    pageF.open = true;
    form.value = row;
  })
}
const rowDetailUpdate = (row:any,index:any,done:any, loading:any) => {
  updateTmsFinanceDetail( row).then(res=>{
    ElMessage({
      message: "修改成功!",
      type: 'success'
    })
    handleAddFinanceDetail(res.data);
    onLoad(page.value);
    done();
  }).catch(()=>{
    loading()
  })
}
const rowDetailSave = (row:any, done:any, loading:any) => {
  row.financeId = form.value.id;
  addTmsFinanceDetail({...row,dispatchOrderId:form.value.dispatchId,
    type: form.value.type,financeType:form.value.type
  }).then(res=>{
    ElMessage({
      message: "新增成功!",
      type: 'success'
    })
    handleAddFinanceDetail(res.data);
    onLoad(page.value);
    done();
  }).catch(()=>{
    loading()
  })
}
const handleCancelDetail = (row: any) => {
  ElMessageBox.confirm("是否作废掉 " + row.$feeType + "确定 ?", '系统提示', {
    confirmButtonText: '确定',
    cancelButtonText: '取消',
    type: 'warning'
  }).then(() => {
    return cancelFinanceDetail(row.id);
  }).then(() => {
    handleAddFinanceDetail(form.value);
    onLoad(page.value);
    ElMessage({
      message: "操作成功!",
      type: 'success'
    })
  });
}
</script>