Files
admin-vben5/apps/web-antd/src/views/property/greenPlantRentalManagement/orderManagement/data.ts

319 lines
6.8 KiB
TypeScript
Raw Normal View History

2025-07-01 17:57:12 +08:00
import type {FormSchemaGetter} from '#/adapter/form';
import type {VxeGridProps} from '#/adapter/vxe-table';
2025-06-26 18:04:51 +08:00
import {getDictOptions} from "#/utils/dict";
2025-07-01 17:57:12 +08:00
import {renderDict} from "#/utils/render";
2025-06-26 18:04:51 +08:00
export const querySchema: FormSchemaGetter = () => [
{
component: 'Input',
fieldName: 'orderNo',
2025-06-30 14:45:06 +08:00
label: '订单号',
2025-06-26 18:04:51 +08:00
},
{
component: 'Input',
fieldName: 'customerName',
label: '客户名称',
},
{
component: 'Select',
componentProps: {
2025-07-01 17:57:12 +08:00
options: getDictOptions('wy_khlx')
2025-06-26 18:04:51 +08:00
},
fieldName: 'customerType',
label: '客户类型',
},
{
component: 'Select',
componentProps: {
2025-07-01 17:57:12 +08:00
options: getDictOptions('wy_zlfs')
2025-06-26 18:04:51 +08:00
},
fieldName: 'rentalType',
label: '租赁方式',
},
{
component: 'Select',
componentProps: {
2025-07-01 17:57:12 +08:00
options: getDictOptions('pro_charging_status')
2025-06-26 18:04:51 +08:00
},
fieldName: 'paymentStatus',
label: '支付状态',
},
];
export const columns: VxeGridProps['columns'] = [
2025-07-01 17:57:12 +08:00
{type: 'checkbox', width: 60},
2025-06-26 18:04:51 +08:00
{
title: '订单号',
field: 'orderNo',
2025-07-01 17:57:12 +08:00
width: 100
2025-06-26 18:04:51 +08:00
},
{
title: '客户名称',
field: 'customerName',
2025-07-01 17:57:12 +08:00
width: 100
2025-06-26 18:04:51 +08:00
},
{
title: '客户类型',
field: 'customerType',
2025-07-01 17:57:12 +08:00
slots: {
default: ({ row }) => {
return renderDict(row.customerType, 'wy_khlx');
},
},
width: 100
2025-06-26 18:04:51 +08:00
},
{
title: '租赁周期',
field: 'rentalPeriod',
2025-07-01 17:57:12 +08:00
slots: {
default: ({ row }) => {
2025-07-02 18:00:26 +08:00
return renderDict(row.rentalPeriod, 'wy_time_unit');
2025-07-01 17:57:12 +08:00
},
},
width: 100
2025-06-26 18:04:51 +08:00
},
{
title: '租赁开始时间',
field: 'startTime',
2025-07-01 17:57:12 +08:00
width: 120
2025-06-26 18:04:51 +08:00
},
{
title: '租赁结束时间',
field: 'endTime',
2025-07-01 17:57:12 +08:00
width: 120
2025-06-26 18:04:51 +08:00
},
{
title: '应付总额',
field: 'totalAmount',
2025-07-01 17:57:12 +08:00
width: 100
2025-06-26 18:04:51 +08:00
},
{
title: '租赁方式',
field: 'rentalType',
2025-07-01 17:57:12 +08:00
slots: {
default: ({ row }) => {
return renderDict(row.rentalType, 'wy_zlfs');
},
},
width: 100
2025-06-26 18:04:51 +08:00
},
{
2025-06-30 14:45:06 +08:00
title: '租赁商品',
2025-06-26 18:04:51 +08:00
field: 'planId',
2025-07-01 17:57:12 +08:00
// slots: {default: 'planId'},
width: 100
2025-06-26 18:04:51 +08:00
},
{
title: '支付状态',
field: 'paymentStatus',
2025-07-01 17:57:12 +08:00
slots: {
default: ({ row }) => {
return renderDict(row.paymentStatus, 'pro_charging_status');
},
},
width: 100
2025-06-26 18:04:51 +08:00
},
{
title: '是否续租',
field: 'isRelet',
2025-07-01 17:57:12 +08:00
slots: {
default: ({ row }) => {
return renderDict(row.isRelet, 'wy_sf');
},
},
width: 100
2025-06-26 18:04:51 +08:00
},
{
title: '合同状态',
field: 'contractStatus',
2025-07-01 17:57:12 +08:00
slots: {
default: ({ row }) => {
return renderDict(row.contractStatus, 'wy_htzt');
},
},
width: 100
2025-06-26 18:04:51 +08:00
},
{
title: '签署时间',
field: 'signTime',
2025-07-01 17:57:12 +08:00
width: 100
2025-06-26 18:04:51 +08:00
},
{
field: 'action',
fixed: 'right',
2025-07-01 17:57:12 +08:00
slots: {default: 'action'},
2025-06-26 18:04:51 +08:00
title: '操作',
2025-06-30 14:45:06 +08:00
minWidth: 180,
2025-06-26 18:04:51 +08:00
},
];
export const modalSchema: FormSchemaGetter = () => [
{
label: '主键',
fieldName: 'id',
component: 'Input',
dependencies: {
show: () => false,
triggerFields: [''],
},
},
{
label: '客户名称',
fieldName: 'customerName',
component: 'Input',
rules: 'required',
},
{
label: '客户类型',
fieldName: 'customerType',
component: 'Select',
componentProps: {
2025-07-01 17:57:12 +08:00
options: getDictOptions('wy_khlx')
2025-06-26 18:04:51 +08:00
},
rules: 'selectRequired',
},
{
label: '租赁周期',
fieldName: 'rentalPeriod',
component: 'Select',
componentProps: {
2025-07-01 17:57:12 +08:00
options: getDictOptions('wy_time_unit')
2025-06-26 18:04:51 +08:00
},
rules: 'selectRequired',
},
{
2025-06-30 14:45:06 +08:00
label: '租赁时间',
fieldName: 'rentalTime',
component: 'RangePicker',
2025-06-26 18:04:51 +08:00
componentProps: {
showTime: true,
2025-06-30 18:11:49 +08:00
format: 'YYYY-MM-DD',
valueFormat: 'YYYY-MM-DD',
2025-06-26 18:04:51 +08:00
},
2025-06-30 14:45:06 +08:00
rules: 'selectRequired',
2025-06-26 18:04:51 +08:00
},
{
label: '租赁方式',
fieldName: 'rentalType',
component: 'Select',
componentProps: {
2025-07-01 17:57:12 +08:00
options: getDictOptions('wy_zlfs')
2025-06-26 18:04:51 +08:00
},
rules: 'selectRequired',
2025-07-01 17:57:12 +08:00
formItemClass: 'col-span-2'
2025-06-26 18:04:51 +08:00
},
{
2025-07-01 17:57:12 +08:00
label: '租赁方案',
2025-06-26 18:04:51 +08:00
fieldName: 'planId',
2025-07-01 17:57:12 +08:00
component: 'Select',
2025-06-30 14:45:06 +08:00
dependencies: {
// 仅当 租赁方式 为 2套餐 时显示
show: (formValues) => formValues.rentalType === '2',
triggerFields: ['rentalType'],
},
2025-07-01 17:57:12 +08:00
rules: 'selectRequired',
formItemClass: 'col-span-2'
2025-06-26 18:04:51 +08:00
},
{
2025-07-01 17:57:12 +08:00
label: '方案详情',
fieldName: 'planInfo',
2025-06-26 18:04:51 +08:00
component: 'Input',
2025-07-01 17:57:12 +08:00
dependencies: {
// 仅当 租赁方式 为 2套餐 时显示
show: (formValues) => formValues.rentalType === '2' && formValues.planId != null,
triggerFields: ['rentalType'],
},
formItemClass: 'col-span-2'
},
{
label: '绿植产品',
fieldName: 'productId',
component: 'Select',
2025-06-30 14:45:06 +08:00
dependencies: {
// 仅当 租赁方式 为 1单点 时显示
show: (formValues) => formValues.rentalType === '1',
triggerFields: ['rentalType'],
},
2025-07-01 17:57:12 +08:00
rules: 'selectRequired',
formItemClass: 'col-span-2'
2025-06-26 18:04:51 +08:00
},
{
2025-06-30 18:11:49 +08:00
label: '租赁数量',
2025-06-26 18:04:51 +08:00
fieldName: 'productNum',
2025-06-30 18:11:49 +08:00
component: 'InputNumber',
componentProps: {
min: 1,
precision: 0,
2025-07-01 17:57:12 +08:00
step: 1,
placeholder:'租赁数量不可超出绿植产品库存数量'
2025-06-30 18:11:49 +08:00
},
2025-06-30 14:45:06 +08:00
dependencies: {
// 仅当 租赁方式 为 1单点 时显示
show: (formValues) => formValues.rentalType === '1',
2025-07-01 17:57:12 +08:00
triggerFields: ['rentalType', 'productId'],
2025-06-30 14:45:06 +08:00
},
rules: 'required',
2025-06-26 18:04:51 +08:00
},
2025-07-01 17:57:12 +08:00
// {
// label: '应付总额',
// fieldName: 'totalAmount',
// component: 'Input',
// rules: 'required',
// },
// {
// label: '支付状态',
// fieldName: 'paymentStatus',
// component: 'Select',
// componentProps: {
// options: getDictOptions('pro_charging_status'),
// },
// rules: 'selectRequired',
// },
2025-06-30 18:11:49 +08:00
// {
// label: '是否续租',
// fieldName: 'isRelet',
// component: 'RadioGroup',
// componentProps: {
// buttonStyle: 'solid',
// optionType: 'button',
// options: getDictOptions('wy_sf'),
// },
// },
2025-06-26 18:04:51 +08:00
{
label: '合同状态',
fieldName: 'contractStatus',
component: 'Select',
componentProps: {
2025-06-30 18:11:49 +08:00
options: getDictOptions('wy_htzt'),
2025-06-26 18:04:51 +08:00
},
2025-07-01 17:57:12 +08:00
rules: 'selectRequired'
},
{
label: '合同编号',
fieldName: 'contractCode',
component: 'Input',
dependencies: {
show: (formValues) => formValues.contractStatus != null && formValues.contractStatus != 1,
triggerFields: ['contractStatus'],
},
rules: 'required'
2025-06-26 18:04:51 +08:00
},
{
label: '签署时间',
fieldName: 'signTime',
component: 'DatePicker',
componentProps: {
showTime: true,
2025-07-01 17:57:12 +08:00
format: 'YYYY-MM-DD',
valueFormat: 'YYYY-MM-DD',
},
dependencies: {
show: (formValues) => formValues.contractStatus != null && formValues.contractStatus != 1,
triggerFields: ['contractStatus'],
2025-06-26 18:04:51 +08:00
},
2025-07-01 17:57:12 +08:00
rules: 'required'
2025-06-26 18:04:51 +08:00
},
];