| | |
| | | * @version: |
| | | * @Date: 2024-06-19 20:34:27 |
| | | * @LastEditors: Ben Lin |
| | | * @LastEditTime: 2024-07-06 23:15:08 |
| | | * @LastEditTime: 2024-09-11 20:51:11 |
| | | */ |
| | | |
| | | import { Ref, ref } from 'vue'; |
| | | import { DeleteEntity, getEntity } from '/@/api/tigerapi/system'; |
| | | import { Ref, ref, unref } from 'vue'; |
| | | import { DeleteEntity, getEntity, SaveEntity } from '/@/api/tigerapi/system'; |
| | | import { ActionItem, BasicColumn, FormSchema, useTable } from '/@/components/Table'; |
| | | import { isNullOrEmpty, isNullOrUnDef } from '/@/utils/is'; |
| | | import { useDrawer } from '/@/components/Drawer'; |
| | | import { EditOperation, Search, custDel } from '../data'; |
| | | import { SaveBasPkgRule } from '/@/api/tigerapi/mes/baserule'; |
| | | import { BAS_PKG_RULE } from '/@/api/tigerapi/model/mesModel'; |
| | | |
| | | function _default(): any[] { |
| | | const ActionColumn: BasicColumn = { |
| | |
| | | * @param {*} u |
| | | * @return {*} |
| | | */ |
| | | EditOperation: (data: Ref<any[]>, d, u, item) => { |
| | | EditOperation: (data: Ref<any[]>, d, u, name) => { |
| | | //更新 |
| | | var _data = data.value[item].map((item) => { |
| | | if (item['ID'] == d.ID) |
| | | return { |
| | | ...item, |
| | | PKG_CODE: d.PKG_CODE, |
| | | PKG_NAME: d.PKG_NAME, |
| | | PKG_LEVEL: d.PKG_LEVEL, |
| | | PKG_QTY: d.PKG_QTY, |
| | | LABEL_CODE: d.LABEL_CODE, |
| | | REMARK: d.REMARK, |
| | | }; |
| | | var _data = data.value[name].map((item) => { |
| | | if (item['ID'] == d.ID) { |
| | | if (name == 'BAS_PKG_DTL') { |
| | | return { |
| | | ...item, |
| | | PKG_CODE: d.PKG_CODE, |
| | | PKG_NAME: d.PKG_NAME, |
| | | PKG_LEVEL: d.PKG_LEVEL, |
| | | PKG_QTY: d.PKG_QTY, |
| | | LABEL_CODE: d.LABEL_CODE, |
| | | REMARK: d.REMARK, |
| | | }; |
| | | } |
| | | if (name == 'BAS_PKG_PROD') { |
| | | return { |
| | | ...item, |
| | | ITEM_CODE: d.ITEM_CODE, |
| | | MIN_WEIGHT: d.MIN_WEIGHT, |
| | | MIN_UNIT: d.MIN_UNIT, |
| | | MAX_WEIGHT: d.MAX_WEIGHT, |
| | | MAX_UNIT: d.MAX_UNIT, |
| | | REMARK: d.REMARK, |
| | | }; |
| | | } |
| | | } |
| | | return item; |
| | | }); |
| | | EditOperation(data, d, u, item, _data); |
| | | EditOperation(data, d, u, name, _data); |
| | | }, |
| | | /** |
| | | * @description: 高级表单和详情页面返回主页面的url |
| | |
| | | { |
| | | BAS_PKG_DTL: useDrawer(), |
| | | }, |
| | | { |
| | | BAS_PKG_PROD: useDrawer(), |
| | | }, |
| | | ]; |
| | | }, |
| | | /** |
| | |
| | | fixed: 'right', |
| | | }, //自定义操作列 |
| | | }), |
| | | BAS_PKG_PROD: useTable({ |
| | | title: '列表信息', |
| | | dataSource: data.value['BAS_PKG_PROD'], |
| | | columns: baseColumns['BAS_PKG_PROD'], |
| | | formConfig: { |
| | | labelWidth: 140, |
| | | schemas: searchForms['BAS_PKG_PROD'], |
| | | submitFunc: () => Search('BAS_PKG_PROD', data, args[0]), //自定义查询提交按钮的方法,触发查询提交事件 |
| | | }, |
| | | useSearchForm: true, |
| | | showTableSetting: false, |
| | | bordered: true, |
| | | canResize: true, |
| | | showIndexColumn: false, |
| | | actionColumn: { |
| | | width: 130, |
| | | title: '操作', |
| | | dataIndex: 'action', |
| | | slots: { customRender: 'action' }, |
| | | fixed: 'right', |
| | | }, //自定义操作列 |
| | | }), |
| | | }; |
| | | }, |
| | | /** |
| | |
| | | case 'BAS_PKG_DTL': |
| | | data = d.data.value[d.type].filter((item) => item.PKG_CODE.includes(d.values.PKG_CODE)); |
| | | if (isNullOrEmpty(d.values.PKG_CODE)) { |
| | | data = d.data.value[d.type]; |
| | | } |
| | | break; |
| | | case 'BAS_PKG_PROD': |
| | | data = d.data.value[d.type].filter((item) => item.ITEM_CODE.includes(d.values.ITEM_CODE)); |
| | | if (isNullOrEmpty(d.values.ITEM_CODE)) { |
| | | data = d.data.value[d.type]; |
| | | } |
| | | break; |
| | |
| | | pageContent: '这里可以添加和修改包装规则和包装信息。', |
| | | tableTitle: { |
| | | BAS_PKG_DTL: '包装信息管理', |
| | | BAS_PKG_PROD: '称重范围管理', |
| | | }, |
| | | }; |
| | | }, |
| | | GetUseForm: () => { |
| | | return {}; |
| | | }, |
| | | /** |
| | | * @description: 提交所有 |
| | | * @return {*} |
| | | */ |
| | | SubmitAll: (data: Ref<any[]>, keyFieldValues: Ref<{}>, ...args) => { |
| | | const validates = args[1].validates; |
| | | const Keys = args[1].Keys; |
| | | const isAllUpdate = args[1].isAllUpdate; |
| | | const baseCards = args[1].baseCards; |
| | | const IsExist = args[1].IsExist; |
| | | /* 循环保存高级表单中主表单信息,如果有多个的话,所以要循环 */ |
| | | let i; |
| | | let p = [] as Promise<any>[]; |
| | | for (i = 0; i < Keys.length; i++) { |
| | | p.push( |
| | | SaveEntity( |
| | | validates[Keys[i]], |
| | | unref(isAllUpdate), |
| | | baseCards.value[i]['entityName'], |
| | | `${IsExist}='${validates[Keys[i]][IsExist]}'`, |
| | | true, |
| | | ), |
| | | ); |
| | | } |
| | | Promise.all(p).then(() => { |
| | | SaveBasPkgRule({ |
| | | PkgDtl: data.value['BAS_PKG_DTL'], |
| | | PkgProd: data.value['BAS_PKG_PROD'], |
| | | PkgRule: {} as unknown as BAS_PKG_RULE, |
| | | }).then((action) => { |
| | | if (action.IsSuccessed) { |
| | | args[0](); |
| | | } |
| | | }); |
| | | }); |
| | | }, |
| | | }; |
| | | |
| | |
| | | }, |
| | | }, |
| | | ] as FormSchema[], |
| | | BAS_PKG_PROD: [ |
| | | { |
| | | field: 'ITEM_CODE', |
| | | label: '物料编码', |
| | | component: 'Input', |
| | | colProps: { |
| | | span: 8, |
| | | }, |
| | | }, |
| | | ] as FormSchema[], |
| | | }; |
| | | |
| | | const baseColumns = { |
| | |
| | | dataIndex: 'PKG_QTY', |
| | | }, |
| | | { |
| | | title: '标签模板', |
| | | dataIndex: 'LABEL_CODE', |
| | | }, |
| | | { |
| | | title: '包装规则ID', |
| | | dataIndex: 'PKG_RULE_ID', |
| | | ifShow: false, |
| | | }, |
| | | { |
| | | title: '备注', |
| | | dataIndex: 'REMARK', |
| | | }, |
| | | { |
| | | title: '更新时间', |
| | | dataIndex: 'UPDATE_TIME', |
| | | }, |
| | | { |
| | | title: '更新人', |
| | | dataIndex: 'UPDATE_USER', |
| | | }, |
| | | ] as BasicColumn[], |
| | | BAS_PKG_PROD: [ |
| | | { |
| | | title: '物料编码', |
| | | dataIndex: 'ITEM_CODE', |
| | | }, |
| | | { |
| | | title: '称重下限', |
| | | dataIndex: 'MIN_WEIGHT', |
| | | }, |
| | | { |
| | | title: '称重下限单位', |
| | | dataIndex: 'MIN_UNIT', |
| | | }, |
| | | { |
| | | title: '称重上限', |
| | | dataIndex: 'MAX_WEIGHT', |
| | | }, |
| | | { |
| | | title: '称重上限单位', |
| | | dataIndex: 'MAX_UNIT', |
| | | }, |
| | | { |
| | | title: '包装规则ID', |
| | | dataIndex: 'PKG_RULE_ID', |
| | | ifShow: false, |
| | |
| | | ] as BasicColumn[], |
| | | }; |
| | | |
| | | let disableQty = false; |
| | | const crudForms = { |
| | | BAS_PKG_DTL: [ |
| | | { |
| | |
| | | span: 24, |
| | | }, |
| | | componentProps: ({ formModel }) => { |
| | | formModel.PKG_LEVEL = |
| | | _data['BAS_PKG_DTL'].reduce((max, item) => { |
| | | return max < Number(item.PKG_LEVEL) ? Number(item.PKG_LEVEL) : max; |
| | | }, 0) + 1; |
| | | if (isNullOrEmpty(formModel.PKG_LEVEL) || Number(formModel.PKG_LEVEL) == 0) { |
| | | formModel.PKG_LEVEL = |
| | | _data['BAS_PKG_DTL'].reduce((max, item) => { |
| | | return max < Number(item.PKG_LEVEL) ? Number(item.PKG_LEVEL) : max; |
| | | }, 0) + 1; |
| | | } |
| | | // if (formModel.PKG_LEVEL == 1) { |
| | | // disableQty = true; |
| | | // formModel.PKG_QTY = 1; |
| | | // } else { |
| | | // disableQty = false; |
| | | // } |
| | | return { |
| | | onChange: (e) => {}, |
| | | }; |
| | |
| | | colProps: { |
| | | span: 24, |
| | | }, |
| | | dynamicDisabled: ({ values }) => { |
| | | return disableQty; |
| | | }, |
| | | }, |
| | | { |
| | | field: 'LABEL_CODE', |
| | | label: '模板编码', |
| | | component: 'Input', |
| | | show: true, |
| | | // required: true, |
| | | colProps: { |
| | | span: 22, |
| | | }, |
| | | }, |
| | | { |
| | | field: 'BAS_LABEL_TEMP1PSelect_0', //按低代码配置的规则,实体名+序号+PSelect_0,序号用来区分多个的时候,PSelect_0这是个固定后缀 |
| | | label: '1', |
| | | defaultValue: 'BAS_LABEL_TEMP', |
| | | component: 'Input', |
| | | colProps: { span: 2 }, |
| | | colSlot: 'BAS_LABEL_TEMP1add', //按低代码配置的规则,实体名+序号+add,序号用来区分多个的时候,add这是个固定后缀 |
| | | }, |
| | | { |
| | | label: '包装名称', |
| | |
| | | show: false, |
| | | }, |
| | | ] as FormSchema[], |
| | | BAS_PKG_PROD: [ |
| | | { |
| | | label: '包装规则ID', |
| | | field: 'PKG_RULE_ID', |
| | | component: 'Input', |
| | | colProps: { |
| | | span: 24, |
| | | }, |
| | | dynamicDisabled: ({ values }) => { |
| | | return true; |
| | | }, |
| | | }, |
| | | { |
| | | label: '物料编码', |
| | | field: 'ITEM_CODE', |
| | | component: 'Input', |
| | | required: true, |
| | | colProps: { |
| | | span: 22, |
| | | }, |
| | | }, |
| | | { |
| | | field: 'BAS_ITEM1PSelect_0', //按低代码配置的规则,实体名+序号+PSelect_0,序号用来区分多个的时候,PSelect_0这是个固定后缀 |
| | | label: '1', |
| | | defaultValue: 'BAS_ITEM', |
| | | component: 'Input', |
| | | colProps: { span: 2 }, |
| | | colSlot: 'BAS_ITEM1add', //按低代码配置的规则,实体名+序号+add,序号用来区分多个的时候,add这是个固定后缀 |
| | | }, |
| | | { |
| | | label: '称重下限', |
| | | field: 'MIN_WEIGHT', |
| | | component: 'Input', |
| | | required: true, |
| | | colProps: { |
| | | span: 24, |
| | | }, |
| | | }, |
| | | { |
| | | label: '称重下限单位', |
| | | field: 'MIN_UNIT', |
| | | required: true, |
| | | component: 'Input', |
| | | colProps: { |
| | | span: 24, |
| | | }, |
| | | }, |
| | | { |
| | | label: '称重上限', |
| | | field: 'MAX_WEIGHT', |
| | | required: true, |
| | | component: 'Input', |
| | | colProps: { |
| | | span: 24, |
| | | }, |
| | | }, |
| | | { |
| | | label: '称重上限单位', |
| | | field: 'MAX_UNIT', |
| | | required: true, |
| | | component: 'Input', |
| | | colProps: { |
| | | span: 24, |
| | | }, |
| | | }, |
| | | { |
| | | label: '备注', |
| | | field: 'REMARK', |
| | | component: 'Input', |
| | | colProps: { |
| | | span: 24, |
| | | }, |
| | | }, |
| | | { |
| | | label: 'ID', |
| | | field: 'ID', |
| | | component: 'Input', |
| | | colProps: { |
| | | span: 24, |
| | | }, |
| | | show: false, |
| | | }, |
| | | ] as FormSchema[], |
| | | }; |
| | | |
| | | return [methods, ActionColumn]; |