From a241b66efcc41e973290a6722fb7a4d79b833ea1 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期二, 13 十月 2026 09:54:32 +0800
Subject: [PATCH] feat(bi): 为图表配置接口添加名称字段
---
src/views/erp/sale/order/data.ts | 51 +++++++++++++++++++++++++++++++++------------------
1 files changed, 33 insertions(+), 18 deletions(-)
diff --git a/src/views/erp/sale/order/data.ts b/src/views/erp/sale/order/data.ts
index 254f22a..6e8a843 100644
--- a/src/views/erp/sale/order/data.ts
+++ b/src/views/erp/sale/order/data.ts
@@ -5,10 +5,10 @@
import { z } from '#/adapter/form';
import { getAccountSimpleList } from '#/api/erp/finance/account';
-import { getItemPage } from '#/api/mdm/item';
import { getSimpleUserList } from '#/api/system/user';
-import { getRangePickerDefaultProps } from '#/utils';
+import { getRangePickerDefaultProps, withoutFixedColumns } from '#/utils';
import CrmCustomerSelect from '#/components/crm-customer-select.vue';
+import { MdmItemSelect } from '#/views/basicData/mdm/components';
import { markRaw } from 'vue';
@@ -70,9 +70,9 @@
component: 'DatePicker',
componentProps: {
placeholder: '閫夋嫨璁㈠崟鏃堕棿',
- showTime: true,
- format: 'YYYY-MM-DD HH:mm:ss',
- valueFormat: 'x',
+ showTime: false,
+ format: 'YYYY-MM-DD',
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
},
rules: 'required',
},
@@ -181,14 +181,27 @@
},
{
component: 'InputNumber',
- componentProps: {
+ componentProps: (values) => ({
class: '!w-full',
placeholder: '璇疯緭鍏ユ敹鍙栬閲�',
precision: 2,
min: 0,
- },
+ max: values.totalPrice ?? undefined,
+ }),
fieldName: 'depositPrice',
label: '鏀跺彇璁㈤噾',
+ dependencies: {
+ triggerFields: ['totalPrice'],
+ rules(values) {
+ if (values.totalPrice != null) {
+ return z
+ .number()
+ .min(0, '璁㈤噾涓嶈兘灏忎簬0')
+ .max(values.totalPrice, '鏀跺彇璁㈤噾涓嶈兘澶т簬浼樻儬鍚庨噾棰�');
+ }
+ return z.number().min(0, '璁㈤噾涓嶈兘灏忎簬0').optional();
+ },
+ },
rules: z.number().min(0).optional(),
},
];
@@ -198,7 +211,7 @@
export function useFormItemColumns(
disabled: boolean,
): VxeTableGridOptions['columns'] {
- return [
+ const columns: VxeTableGridOptions['columns'] = [
{ type: 'seq', title: '搴忓彿', minWidth: 50, fixed: 'left' },
{
field: 'productId',
@@ -216,6 +229,7 @@
title: '搴撳瓨',
minWidth: 80,
formatter: 'formatAmount3',
+ visible: false,
},
{
field: 'productUnitName',
@@ -226,11 +240,13 @@
field: 'productUnitName2',
title: '杈呭崟浣�1',
minWidth: 80,
+ visible: false,
},
{
field: 'productUnitName3',
title: '杈呭崟浣�2',
minWidth: 80,
+ visible: false,
},
{
field: 'needProduction',
@@ -243,6 +259,7 @@
title: '澶囨敞',
minWidth: 150,
slots: { default: 'remark' },
+ visible: false,
},
{
field: 'count',
@@ -294,6 +311,8 @@
visible: !disabled,
},
];
+ // 鏌ョ湅瀹℃壒鏄庣粏锛堝彧璇伙級鏃跺彇娑堝浐瀹氬垪锛岄伩鍏嶇獎寮圭獥閲屾尋鎺変骇鍝佸悕绉般�佸崟浣嶃�佸娉ㄧ瓑鍒�
+ return disabled ? withoutFixedColumns(columns) : columns;
}
/** 鍒楄〃鐨勬悳绱㈣〃鍗� */
@@ -311,17 +330,9 @@
{
fieldName: 'productId',
label: '浜у搧',
- component: 'ApiSelect',
+ component: markRaw(MdmItemSelect),
componentProps: {
placeholder: '璇烽�夋嫨浜у搧',
- allowClear: true,
- showSearch: true,
- api: async () => {
- const res = await getItemPage({ pageNo: 1, pageSize: 100, status: 0 });
- return res.list || [];
- },
- labelField: 'name',
- valueField: 'id',
},
},
{
@@ -330,6 +341,8 @@
component: 'RangePicker',
componentProps: {
...getRangePickerDefaultProps(),
+ showTime: false,
+ format: 'YYYY-MM-DD',
allowClear: true,
},
},
@@ -361,8 +374,10 @@
component: 'Select',
componentProps: {
options: [
- { label: '鏈鏍�', value: 10 },
+ { label: '鏈彁浜�', value: 0 },
+ { label: '瀹℃壒涓�', value: 15 },
{ label: '宸插鏍�', value: 20 },
+ { label: '宸查┏鍥�', value: 35 },
{ label: '宸蹭綔搴�', value: 30 },
],
placeholder: '璇烽�夋嫨鐘舵��',
--
Gitblit v1.9.3