6f2383a7e5
付款申请汇票筛选与提示去重、结算菜单拆分与金蝶同步弹框、应收应付详情高度、合同计费与半月结调整,以及导入运单批量删除校验。 Co-authored-by: Cursor <cursoragent@cursor.com>
177 lines
5.6 KiB
JavaScript
177 lines
5.6 KiB
JavaScript
/**
|
||
* 付款申请列表(avue-crud)配置
|
||
* ------------------------------------------------------------------
|
||
* 列表页与其它模块统一使用 avue-crud,头部 4 个按钮(刷新 / 列显隐 / 搜索显隐 /
|
||
* 表格卡片切换)由 avue-crud 自带,不做二次封装。
|
||
*
|
||
* 搜索项与表格列 label 不一致的(如表格列「收款方」/ 搜索项「客户名称」),
|
||
* 单独定义一个 hide 的搜索列,并用 searchProp 映射到后端字段。
|
||
*
|
||
* ⚠️ avue 的 searchOrder 为降序排序,值越大越靠前(见 header-search2.js:
|
||
* `list.sort((a, b) => (b.searchOrder || 0) - (a.searchOrder || 0))`)。
|
||
*/
|
||
|
||
const textFormatter = (row, value) =>
|
||
value === null || value === undefined || value === '' ? '-' : value;
|
||
|
||
const moneyFormatter = (row, value) => Number(value || 0).toFixed(2);
|
||
|
||
// 仅用于搜索、不在表格中出现的列
|
||
const searchOnlyColumn = ({ label, prop, searchOrder, searchProp, dicData }) => {
|
||
const column = {
|
||
label,
|
||
prop,
|
||
search: true,
|
||
searchOrder,
|
||
searchPlaceholder: '请输入',
|
||
hide: true,
|
||
showColumn: false,
|
||
addDisplay: false,
|
||
editDisplay: false,
|
||
viewDisplay: false,
|
||
};
|
||
if (searchProp) column.searchProp = searchProp;
|
||
if (dicData) {
|
||
column.type = 'select';
|
||
column.searchPlaceholder = '请选择';
|
||
column.dicData = dicData;
|
||
}
|
||
return column;
|
||
};
|
||
|
||
export const paymentApplicationOption = ({
|
||
paymentTypeOptions = [],
|
||
approvalStatusOptions = [],
|
||
kingdeeStatusOptions = [],
|
||
} = {}) => ({
|
||
height: 'auto',
|
||
calcHeight: 32,
|
||
tip: false,
|
||
searchBtnText: '查询',
|
||
emptyBtnText: '重置',
|
||
searchShow: true,
|
||
searchIcon: true,
|
||
searchLabelWidth: 88,
|
||
// 查询/重置紧跟首行 4 个条件(4×5 + 菜单 4 = 24),不再独占下一整行
|
||
searchMenuSpan: 4,
|
||
searchIndex: 4,
|
||
searchMenuPosition: 'right',
|
||
border: true,
|
||
index: true,
|
||
indexLabel: '序号',
|
||
indexWidth: 70,
|
||
indexFixed: 'left',
|
||
selection: true,
|
||
selectionWidth: 52,
|
||
selectionFixed: 'left',
|
||
addBtn: false,
|
||
viewBtn: false,
|
||
delBtn: false,
|
||
editBtn: false,
|
||
copyBtn: false,
|
||
menuWidth: 320,
|
||
menuFixed: 'right',
|
||
dialogClickModal: false,
|
||
column: [
|
||
// ---------- 搜索项(前 4 项默认展示,其余折叠;searchOrder 越大越靠前) ----------
|
||
{
|
||
label: '单据号',
|
||
prop: 'paymentNo',
|
||
slot: true,
|
||
search: true,
|
||
searchSpan: 5,
|
||
searchOrder: 9,
|
||
searchPlaceholder: '请输入',
|
||
minWidth: 150,
|
||
},
|
||
{
|
||
label: '日期',
|
||
prop: 'applyDateRange',
|
||
type: 'daterange',
|
||
searchType: 'daterange',
|
||
search: true,
|
||
searchSpan: 5,
|
||
searchOrder: 8,
|
||
hide: true,
|
||
showColumn: false,
|
||
addDisplay: false,
|
||
editDisplay: false,
|
||
viewDisplay: false,
|
||
},
|
||
{
|
||
...searchOnlyColumn({
|
||
label: '客户名称',
|
||
prop: 'payeeNameSearch',
|
||
searchOrder: 7,
|
||
searchProp: 'payeeName',
|
||
}),
|
||
searchSpan: 5,
|
||
},
|
||
{
|
||
...searchOnlyColumn({
|
||
label: '项目名称',
|
||
prop: 'projectNameSearch',
|
||
searchOrder: 6,
|
||
searchProp: 'projectName',
|
||
}),
|
||
searchSpan: 5,
|
||
},
|
||
searchOnlyColumn({
|
||
label: '关联结算单',
|
||
prop: 'settlementNo',
|
||
searchOrder: 4,
|
||
}),
|
||
searchOnlyColumn({
|
||
label: '付款类型',
|
||
prop: 'paymentType',
|
||
searchOrder: 3,
|
||
dicData: paymentTypeOptions,
|
||
}),
|
||
searchOnlyColumn({
|
||
label: '审核状态',
|
||
prop: 'approvalStatus',
|
||
searchOrder: 2,
|
||
dicData: approvalStatusOptions,
|
||
}),
|
||
searchOnlyColumn({
|
||
label: '金蝶单据状态',
|
||
prop: 'kingdeeStatus',
|
||
searchOrder: 1,
|
||
dicData: kingdeeStatusOptions,
|
||
}),
|
||
// ---------- 表格列 ----------
|
||
{ label: '付款类型', prop: 'paymentTypeName', minWidth: 110, formatter: textFormatter },
|
||
{ label: '所属项目', prop: 'projectName', minWidth: 140, formatter: textFormatter },
|
||
{
|
||
label: '所属组织',
|
||
prop: 'deptName',
|
||
search: true,
|
||
searchOrder: 5,
|
||
searchslot: true,
|
||
minWidth: 120,
|
||
formatter: textFormatter,
|
||
},
|
||
{ label: '合同编号', prop: 'contractNo', minWidth: 130, formatter: textFormatter },
|
||
{ label: '合同名称', prop: 'contractName', minWidth: 140, formatter: textFormatter },
|
||
{ label: '付款方', prop: 'payerName', minWidth: 130, formatter: textFormatter },
|
||
{ label: '收款方', prop: 'payeeName', minWidth: 130, formatter: textFormatter },
|
||
{ label: '申请付款金额', prop: 'appliedAmount', minWidth: 140, formatter: moneyFormatter },
|
||
{ label: '已付款金额', prop: 'paidAmount', minWidth: 130, formatter: moneyFormatter },
|
||
{
|
||
label: '匹配发票金额',
|
||
prop: 'matchedInvoiceAmount',
|
||
minWidth: 130,
|
||
formatter: moneyFormatter,
|
||
},
|
||
{ label: '申请人', prop: 'applicantName', minWidth: 100, formatter: textFormatter },
|
||
{ label: '申请日期', prop: 'applyDate', minWidth: 120, formatter: textFormatter },
|
||
{ label: '审核状态', prop: 'approvalStatusName', slot: true, minWidth: 110 },
|
||
{ label: '当前节点', prop: 'currentNode', minWidth: 120, formatter: textFormatter },
|
||
{ label: '当前处理人', prop: 'currentProcessor', minWidth: 120, formatter: textFormatter },
|
||
{ label: '金蝶单据号', prop: 'kingdeeBillNo', minWidth: 130, formatter: textFormatter },
|
||
{ label: '金蝶单据状态', prop: 'kingdeeStatusName', minWidth: 130, formatter: textFormatter },
|
||
{ label: '金蝶锁状态', prop: 'kingdeeLockStatus', slot: true, minWidth: 150 },
|
||
{ label: '附件同步', prop: 'attachmentSyncStatusName', minWidth: 100, formatter: textFormatter },
|
||
],
|
||
});
|