| | |
| | | import { z } from '#/adapter/form'; |
| | | import { getAccountSimpleList } from '#/api/erp/finance/account'; |
| | | import { getItemPage } from '#/api/mdm/item'; |
| | | import { getCustomerSimpleList as getCrmCustomerSimpleList } from '#/api/crm/customer'; |
| | | import { getSimpleUserList } from '#/api/system/user'; |
| | | import { getRangePickerDefaultProps } from '#/utils'; |
| | | import CrmCustomerSelect from '#/components/crm-customer-select.vue'; |
| | | |
| | | import { markRaw } from 'vue'; |
| | | |
| | | /** 表单类型 */ |
| | | export type FormType = 'create' | 'detail' | 'edit'; |
| | |
| | | }, |
| | | }, |
| | | { |
| | | fieldName: 'productionStatus', |
| | | label: '生产状态', |
| | | component: 'Input', |
| | | dependencies: { |
| | | triggerFields: ['needProduction', 'productionStatus'], |
| | | show: (values) => { |
| | | return formType === 'detail' && values.needProduction === 1; |
| | | }, |
| | | }, |
| | | componentProps: { |
| | | disabled: true, |
| | | }, |
| | | slots: { default: 'productionStatus' }, |
| | | }, |
| | | { |
| | | fieldName: 'productionFinishTime', |
| | | label: '生产完成时间', |
| | | component: 'Input', |
| | | dependencies: { |
| | | triggerFields: ['productionStatus'], |
| | | show: (values) => { |
| | | return formType === 'detail' && values.productionStatus === 1; |
| | | }, |
| | | }, |
| | | componentProps: { |
| | | disabled: true, |
| | | }, |
| | | }, |
| | | { |
| | | fieldName: 'orderTime', |
| | | label: '订单时间', |
| | | component: 'DatePicker', |
| | |
| | | { |
| | | label: '客户', |
| | | fieldName: 'customerId', |
| | | component: 'ApiSelect', |
| | | component: markRaw(CrmCustomerSelect), |
| | | componentProps: { |
| | | placeholder: '请选择客户', |
| | | allowClear: true, |
| | | showSearch: true, |
| | | api: getCrmCustomerSimpleList, |
| | | labelField: 'name', |
| | | valueField: 'id', |
| | | }, |
| | | rules: 'required', |
| | | }, |
| | |
| | | formItemClass: 'col-span-2', |
| | | }, |
| | | { |
| | | fieldName: 'fileUrl', |
| | | fieldName: 'blobIds', |
| | | label: '附件', |
| | | component: 'FileUpload', |
| | | componentProps: { |
| | | maxNumber: 1, |
| | | maxSize: 10, |
| | | accept: [ |
| | | 'pdf', |
| | | 'doc', |
| | | 'docx', |
| | | 'xls', |
| | | 'xlsx', |
| | | 'txt', |
| | | 'jpg', |
| | | 'jpeg', |
| | | 'png', |
| | | ], |
| | | valueKey: 'id', |
| | | maxNumber: 10, |
| | | multiple: true, |
| | | showDescription: formType !== 'detail', |
| | | disabled: formType === 'detail', |
| | | }, |
| | |
| | | formatter: 'formatAmount3', |
| | | }, |
| | | { |
| | | field: 'productBarCode', |
| | | title: '条码', |
| | | minWidth: 120, |
| | | }, |
| | | { |
| | | field: 'productUnitName', |
| | | title: '单位', |
| | | minWidth: 80, |
| | |
| | | field: 'productUnitName3', |
| | | title: '辅单位2', |
| | | minWidth: 80, |
| | | }, |
| | | { |
| | | field: 'needProduction', |
| | | title: '需要生产', |
| | | minWidth: 100, |
| | | slots: { default: 'needProduction' }, |
| | | }, |
| | | { |
| | | field: 'remark', |
| | |
| | | }, |
| | | { |
| | | title: '操作', |
| | | width: 320, |
| | | width: 80, |
| | | fixed: 'right', |
| | | slots: { default: 'actions' }, |
| | | visible: !disabled, |
| | |
| | | { |
| | | fieldName: 'supplierId', |
| | | label: '客户', |
| | | component: 'ApiSelect', |
| | | component: markRaw(CrmCustomerSelect), |
| | | componentProps: { |
| | | placeholder: '请选择客户', |
| | | allowClear: true, |
| | | showSearch: true, |
| | | api: getCrmCustomerSimpleList, |
| | | labelField: 'name', |
| | | valueField: 'id', |
| | | }, |
| | | }, |
| | | { |
| | |
| | | componentProps: { |
| | | options: [ |
| | | { label: '未出库', value: 0 }, |
| | | { label: '部分出库', value: 1 }, |
| | | { label: '全部出库', value: 2 }, |
| | | { label: '已预留', value: 1 }, |
| | | { label: '部分出库', value: 2 }, |
| | | { label: '全部出库', value: 3 }, |
| | | ], |
| | | placeholder: '请选择出库状态', |
| | | allowClear: true, |
| | | }, |
| | | }, |
| | | { |
| | | fieldName: 'returnStatus', |
| | | label: '退货状态', |
| | | fieldName: 'productionStatus', |
| | | label: '生产状态', |
| | | component: 'Select', |
| | | componentProps: { |
| | | options: [ |
| | | { label: '未退货', value: 0 }, |
| | | { label: '部分退货', value: 1 }, |
| | | { label: '全部退货', value: 2 }, |
| | | { label: '无需生产', value: -1 }, |
| | | { label: '未完成', value: 0 }, |
| | | { label: '已完成', value: 1 }, |
| | | ], |
| | | placeholder: '请选择退货状态', |
| | | placeholder: '请选择生产状态', |
| | | allowClear: true, |
| | | }, |
| | | }, |
| | |
| | | minWidth: 120, |
| | | }, |
| | | { |
| | | field: 'outCount', |
| | | title: '出库数量', |
| | | formatter: 'formatAmount3', |
| | | minWidth: 120, |
| | | }, |
| | | { |
| | | field: 'returnCount', |
| | | title: '退货数量', |
| | | formatter: 'formatAmount3', |
| | | minWidth: 120, |
| | | }, |
| | | { |
| | | field: 'totalProductPrice', |
| | | title: '金额合计', |
| | | formatter: 'formatAmount2', |
| | |
| | | minWidth: 120, |
| | | }, |
| | | { |
| | | field: 'outStatus', |
| | | title: '出库状态', |
| | | minWidth: 100, |
| | | fixed: 'right', |
| | | slots: { default: 'outStatus' }, |
| | | }, |
| | | { |
| | | field: 'productionStatus', |
| | | title: '生产状态', |
| | | minWidth: 100, |
| | | fixed: 'right', |
| | | slots: { default: 'productionStatus' }, |
| | | }, |
| | | { |
| | | field: 'status', |
| | | title: '状态', |
| | | minWidth: 100, |
| | |
| | | slots: { default: 'status' }, |
| | | }, |
| | | { |
| | | field: 'needProduction', |
| | | title: '需要生产', |
| | | minWidth: 100, |
| | | fixed: 'right', |
| | | slots: { default: 'needProduction' }, |
| | | }, |
| | | { |
| | | title: '操作', |
| | | width: 260, |
| | | fixed: 'right', |