sen
1 天以前 5abcde36961125cbf436f91b8c17610a6b5f8308
ui/admin-ui3/src/views/cwgl/pendingSettlementBusiness/index.vue
@@ -3,7 +3,7 @@
    <avue-crud :option="option" v-model:search="queryParams" :table-loading="pageF.loading" :data="tableData"
      :page="page" :permission="permissionList" :before-open="beforeOpen" v-model="form" ref="crudRef"
      @row-update="rowUpdate" @row-save="rowSave" @refresh-change="refreshChange" @row-del="rowDel"
      @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
      @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
      @current-change="currentChange" @size-change="sizeChange" @on-load="onLoad">
      <template #menu-left>
@@ -191,7 +191,7 @@
      label: '客户名称',
      search: true,
      minWidth: 220,
      showOverflowTooltip: true,
      type: 'select',           // 设置为下拉框类型
      dicData: [], // 使用 selectCustomName 作为数据源
      disabled: false  // 根据需要设置是否禁用
@@ -204,14 +204,28 @@
    vehicleType: {
      label: '车型', search: true,
    },
    // createdTime: {
    //   label: '下单时间',
    //   display: false,
    //   search: true,
    //   type: 'date',
    //   format: 'YYYY-MM-DD',
    //   searchSpan: 5, minWidth: 120,
    //   valueFormat: 'YYYY-MM-DD',
    // },
    createdTimeArray: {
      label: '下单时间',
      search: true,
      searchRange: true,
      type: 'daterange',
      startPlaceholder: '开始日期',
      endPlaceholder: '结束日期',
      valueFormat: 'YYYY-MM-DD',
      hide: true
    },
    createdTime: {
      label: '下单时间',
      display: false,
      search: true,
      type: 'date',
      format: 'YYYY-MM-DD',
      searchSpan: 5, minWidth: 120,
      valueFormat: 'YYYY-MM-DD',
      minWidth: 180,
    },
    operationMode: {
      label: '运营模式',
@@ -246,15 +260,18 @@
    carrierName: {
      label: '承运商',
      minWidth: 210,
      minWidth: 220,
      showOverflowTooltip: true,
    },
    departureLocation: {
      label: '出发地',
      minWidth: 200,
      minWidth: 220,
      showOverflowTooltip: true,
    },
    arrivalLocation: {
      label: '目的地',
      minWidth: 200,
      minWidth: 220,
      showOverflowTooltip: true,
    },
@@ -308,7 +325,7 @@
      minWidth: 120,
    },
        isCreate: {
    isCreate: {
      label: '是否已入账', dataType: 'string',
      type: 'select',
      fixed: 'right',
@@ -327,7 +344,7 @@
      type: 'select',
      dataType: 'string',
      minWidth: 120,
      dicUrl: '/system/dict/data/type/sys_matching_status',
    },
    isCostMatched: {
@@ -465,7 +482,50 @@
        generateDisabled.value = false;
      }
      selectionList.value = selection;
    }
    },
    getBeginListFunc: (params = {}) => {
      // 1. 日期转换
      let newParams = <any>{ ...params };
      console.log(newParams, '2');
      if (newParams) {
        // 1. 定义日期字段映射 (数组名 : 接口需要的前缀)
        // 这样写的好处是:如果你有多个日期,直接在这里添加一行即可
        const dateMap = {
          createdTimeArray: 'createdTime',
        };
        // 2. 遍历处理日期
        Object.keys(dateMap).forEach(arrayKey => {
          const prefix = dateMap[arrayKey];
          const range = newParams[arrayKey];
          if (Array.isArray(range) && range.length > 0) {
            // 赋值 Begin 和 End
            newParams[`${prefix}Begin`] = range[0];
            newParams[`${prefix}End`] = range[1];
          }
          // 【核心改动】:无论是否有值,处理完后都把原始的 Array 字段删掉
          // 这样请求里就不会出现 confirmTimeRangeArray: [...]
          delete newParams[arrayKey];
        });
        // 3. 通用清洗:删除所有空字符串、null 或 undefined 的其他字段
        Object.keys(newParams).forEach(key => {
          const val = newParams[key];
          if (val === '' || val === null || val === undefined) {
            delete newParams[key];
          }
        });
      } else {
        newParams = {};
      }
      return newParams;
    },
  })
const dialog = reactive({
  visible: false,
@@ -553,7 +613,7 @@
  dispatchNo.value = row.dispatchNo;
  dialog.title = '费用明细';
  if (activeName.value == 'first') {
    listEstimatedReceivable({ dispatchNo: row.dispatchNo, feeType: 1 }).then((res) => {
    listEstimatedReceivable({ dispatchNo: row.dispatchNo, feeType: 1, isConfirmed: 1 }).then((res) => {
      if (res.code === 200) {
        dialog.detail = true;
        tableDataList.value = res.rows || [];
@@ -561,7 +621,7 @@
    })
  } else if (activeName.value == 'second') {
    // 这里可以添加查询收入相关的逻辑
    listEstimatedReceivable({ dispatchNo: row.dispatchNo, feeType: 0 }).then((res) => {
    listEstimatedReceivable({ dispatchNo: row.dispatchNo, feeType: 0, isConfirmed: 1 }).then((res) => {
      if (res.code === 200) {
        dialog.detail = true;
        tableDataList.value = res.rows || [];
@@ -570,7 +630,7 @@
  }
}
const getListVable = (dispatchNo, feeType) => {
  listEstimatedReceivable({ dispatchNo: dispatchNo, feeType: feeType }).then((res) => {
  listEstimatedReceivable({ dispatchNo: dispatchNo, feeType: feeType, isConfirmed: 1 }).then((res) => {
    if (res.code === 200) {
      tableDataList.value = res.rows || [];
    }
@@ -608,3 +668,13 @@
  return sums;
}
</script>
<style>
:deep(.avue-crud__table) {
  overflow-y: auto;
}
:deep(.el-scrollbar__bar.is-horizontal) {
  pointer-events: auto;
}
</style>