| | |
| | | <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> |
| | |
| | | label: '客户名称', |
| | | search: true, |
| | | minWidth: 220, |
| | | |
| | | showOverflowTooltip: true, |
| | | type: 'select', // 设置为下拉框类型 |
| | | dicData: [], // 使用 selectCustomName 作为数据源 |
| | | disabled: false // 根据需要设置是否禁用 |
| | |
| | | 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: '运营模式', |
| | |
| | | |
| | | carrierName: { |
| | | label: '承运商', |
| | | minWidth: 210, |
| | | minWidth: 220, |
| | | showOverflowTooltip: true, |
| | | }, |
| | | departureLocation: { |
| | | label: '出发地', |
| | | minWidth: 200, |
| | | minWidth: 220, |
| | | showOverflowTooltip: true, |
| | | }, |
| | | arrivalLocation: { |
| | | label: '目的地', |
| | | minWidth: 200, |
| | | minWidth: 220, |
| | | showOverflowTooltip: true, |
| | | |
| | | }, |
| | | |
| | |
| | | minWidth: 120, |
| | | |
| | | }, |
| | | isCreate: { |
| | | isCreate: { |
| | | label: '是否已入账', dataType: 'string', |
| | | type: 'select', |
| | | fixed: 'right', |
| | |
| | | type: 'select', |
| | | dataType: 'string', |
| | | minWidth: 120, |
| | | |
| | | |
| | | dicUrl: '/system/dict/data/type/sys_matching_status', |
| | | }, |
| | | isCostMatched: { |
| | |
| | | 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, |
| | |
| | | dispatchNo.value = row.dispatchNo; |
| | | dialog.title = '费用明细'; |
| | | if (activeName.value == 'first') { |
| | | listEstimatedReceivable({ dispatchNo: row.dispatchNo, feeType: 1,isConfirmed:1 }).then((res) => { |
| | | listEstimatedReceivable({ dispatchNo: row.dispatchNo, feeType: 1, isConfirmed: 1 }).then((res) => { |
| | | if (res.code === 200) { |
| | | dialog.detail = true; |
| | | tableDataList.value = res.rows || []; |
| | |
| | | }) |
| | | } else if (activeName.value == 'second') { |
| | | // 这里可以添加查询收入相关的逻辑 |
| | | listEstimatedReceivable({ dispatchNo: row.dispatchNo, feeType: 0,isConfirmed:1 }).then((res) => { |
| | | listEstimatedReceivable({ dispatchNo: row.dispatchNo, feeType: 0, isConfirmed: 1 }).then((res) => { |
| | | if (res.code === 200) { |
| | | dialog.detail = true; |
| | | tableDataList.value = res.rows || []; |
| | |
| | | } |
| | | } |
| | | const getListVable = (dispatchNo, feeType) => { |
| | | listEstimatedReceivable({ dispatchNo: dispatchNo, feeType: feeType,isConfirmed:1 }).then((res) => { |
| | | listEstimatedReceivable({ dispatchNo: dispatchNo, feeType: feeType, isConfirmed: 1 }).then((res) => { |
| | | if (res.code === 200) { |
| | | tableDataList.value = res.rows || []; |
| | | } |
| | |
| | | return sums; |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | :deep(.avue-crud__table) { |
| | | overflow-y: auto; |
| | | } |
| | | |
| | | :deep(.el-scrollbar__bar.is-horizontal) { |
| | | pointer-events: auto; |
| | | } |
| | | </style> |