| | |
| | | export type SupplierInfoPageListGetResultModel = BasicFetchResult<SupplierInfoListItem>; |
| | | export type PackageRulePageListGetResultModel = BasicFetchResult<PackageRuleListItem>; |
| | | |
| | | /** |
| | | * @description: èªå®ä¹æ¹æ³æ¥å£ |
| | | * @return {*} |
| | | */ |
| | | export interface EntityCustFunctionType { |
| | | CreateAction: (fnName: string) => {}; |
| | | ActionItem: (params: Recordable<any>, data, ...args) => ActionItem[]; |
| | |
| | | GetSearchForm: () => []; |
| | | GetCrudForm: (type: string) => []; |
| | | GetBaseForm: () => []; |
| | | GetBaseCards: () => []; |
| | | GetBaseCards: (type: string | undefined) => []; |
| | | OthersValues: (val: string, id: string) => {}; |
| | | GetTitle: (type: string) => {}; |
| | | GetCrudColSlots: () => []; |
| | | nodeChange: ({}) => void; |
| | | CreateIcon: (params: Recordable<any>) => string; |
| | | SelectNode: (selectedNodes: Ref<any[]>) => {}; |
| | | GetNavItems: () => NavItem[]; |
| | | GetNavItems: (type: string) => NavItem[]; |
| | | navChangeItem: (action: any, ...args) => void; |
| | | GetUseModals: () => {}; |
| | | SubmitFunc: (values: Recordable<any>, type: string, emit) => void; |
| | | GetSlots: (type: string | undefined) => {}; |
| | | GenerateHtml: (type: string | null) => HTMLElement | null; |
| | | CustFunc: (type: string | undefined, ...args) => void | any; |
| | | } |
| | |
| | | /* |
| | | * @Description: file content |
| | | * @Author: Ben Lin |
| | | * @version: |
| | | * @Date: 2024-06-18 15:09:47 |
| | | * @LastEditors: Ben Lin |
| | | * @LastEditTime: 2024-06-29 05:14:10 |
| | | */ |
| | | import { withInstall } from '@/utils'; |
| | | import flowChart from './src/FlowChart.vue'; |
| | | import flowChartView from './src/FlowChartView.vue'; |
| | | |
| | | export const FlowChart = withInstall(flowChart); |
| | | |
| | | export const FlowChartView = withInstall(flowChartView); |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="h-full" :class="prefixCls"> |
| | | <div ref="lfElRef" class="h-full"></div> |
| | | </div> |
| | | </template> |
| | | <script lang="ts" setup> |
| | | import type { Ref } from 'vue'; |
| | | import type { Definition } from '@logicflow/core'; |
| | | import { ref, onMounted, unref, nextTick, computed, watch } from 'vue'; |
| | | import FlowChartToolbar from './FlowChartToolbar.vue'; |
| | | import LogicFlow from '@logicflow/core'; |
| | | import { Snapshot, BpmnElement, Menu, DndPanel, SelectionSelect } from '@logicflow/extension'; |
| | | import { useDesign } from '@/hooks/web/useDesign'; |
| | | import { useAppStore } from '@/store/modules/app'; |
| | | import { createFlowChartContext } from './useFlowContext'; |
| | | import { toLogicFlowData } from './adpterForTurbo'; |
| | | import { useModal, BasicModal } from '@/components/Modal'; |
| | | import { JsonPreview } from '@/components/CodeEditor'; |
| | | import { configDefaultDndPanel } from './config'; |
| | | import '@logicflow/core/dist/style/index.css'; |
| | | import '@logicflow/extension/lib/style/index.css'; |
| | | import { useGlobSetting } from '/@/hooks/setting'; |
| | | import customEdge from './customEdge'; |
| | | import { useMessage } from '/@/hooks/web/useMessage'; |
| | | import { useI18n } from '/@/hooks/web/useI18n'; |
| | | import actionRect from './actionRect'; |
| | | import TestNode from './TestNode'; |
| | | import CollectNode from './CollectNode'; |
| | | import AssemblyNode from './AssemblyNode'; |
| | | import PackingNode from './PackingNode'; |
| | | import RepairNode from './RepairNode'; |
| | | |
| | | defineOptions({ name: 'FlowChart' }); |
| | | |
| | | const props = defineProps({ |
| | | flowOptions: { |
| | | type: Object as PropType<Definition>, |
| | | default: () => ({}), |
| | | }, |
| | | |
| | | data: { |
| | | type: Object as PropType<any>, |
| | | default: () => ({}), |
| | | }, |
| | | |
| | | toolbar: { |
| | | type: Boolean, |
| | | default: true, |
| | | }, |
| | | patternItems: { |
| | | type: Array, |
| | | }, |
| | | }); |
| | | |
| | | const emit = defineEmits([ |
| | | 'view-data', |
| | | 'save-data', |
| | | 'add-lf', |
| | | 'select-node', |
| | | 'click-blank', |
| | | 'init', |
| | | 'undo', |
| | | 'redo', |
| | | ]); |
| | | const lfElRef = ref(null); |
| | | const graphData = ref({}); |
| | | |
| | | const lfInstance = ref(null) as Ref<LogicFlow | null>; |
| | | |
| | | const { prefixCls } = useDesign('flow-chart'); |
| | | const appStore = useAppStore(); |
| | | const [register, { openModal }] = useModal(); |
| | | createFlowChartContext({ |
| | | logicFlow: lfInstance as unknown as LogicFlow, |
| | | }); |
| | | |
| | | const getFlowOptions = computed(() => { |
| | | const { flowOptions } = props; |
| | | |
| | | const defaultOptions: Partial<Definition> = { |
| | | grid: true, |
| | | background: { |
| | | color: appStore.getDarkMode === 'light' ? '#f7f9ff' : '#151515', |
| | | }, |
| | | keyboard: { |
| | | enabled: true, |
| | | }, |
| | | edgeType: 'polyline', |
| | | ...flowOptions, |
| | | }; |
| | | return defaultOptions as Definition; |
| | | }); |
| | | |
| | | watch( |
| | | () => props.data, |
| | | () => { |
| | | onRender(); |
| | | }, |
| | | ); |
| | | |
| | | // TODO |
| | | // watch( |
| | | // () => appStore.getDarkMode, |
| | | // () => { |
| | | // init(); |
| | | // } |
| | | // ); |
| | | |
| | | watch( |
| | | () => unref(getFlowOptions), |
| | | (options) => { |
| | | unref(lfInstance)?.updateEditConfig(options); |
| | | }, |
| | | ); |
| | | |
| | | // init logicFlow |
| | | async function init() { |
| | | await nextTick(); |
| | | |
| | | const lfEl = unref(lfElRef); |
| | | if (!lfEl) { |
| | | return; |
| | | } |
| | | // LogicFlow.use(DndPanel); |
| | | |
| | | // Canvas configuration |
| | | // LogicFlow.use(Snapshot); |
| | | // Use the bpmn plug-in to introduce bpmn elements, which can be used after conversion in turbo |
| | | LogicFlow.use(BpmnElement); |
| | | // Start the right-click menu |
| | | // LogicFlow.use(Menu); |
| | | LogicFlow.use(SelectionSelect); |
| | | |
| | | lfInstance.value = new LogicFlow({ |
| | | ...unref(getFlowOptions), |
| | | container: lfEl, |
| | | edgeGenerator: (sourceNode) => { |
| | | // console.log('a'); |
| | | // èµ·å§èç¹ç±»å rect æ¶ä½¿ç¨ èªå®ä¹çè¾¹ custom-edge |
| | | if (sourceNode.properties.isReturn) return 'custom-edge'; |
| | | // if (sourceNode.type === 'rect') return 'custom-edge'; |
| | | // return 'custom-edge'; |
| | | }, |
| | | }); |
| | | const lf = unref(lfInstance)!; |
| | | lf?.setDefaultEdgeType('polyline'); |
| | | lf.register(actionRect); |
| | | lf.register(TestNode); |
| | | lf.register(CollectNode); |
| | | lf.register(AssemblyNode); |
| | | lf.register(PackingNode); |
| | | lf.register(RepairNode); |
| | | lf.register(customEdge); |
| | | onRender(); |
| | | lf?.setPatternItems(props.patternItems || configDefaultDndPanel(lf)); |
| | | } |
| | | |
| | | async function onRender() { |
| | | await nextTick(); |
| | | const lf = unref(lfInstance); |
| | | if (!lf) { |
| | | return; |
| | | } |
| | | const lFData = toLogicFlowData(props.data); |
| | | lf.render(lFData); |
| | | |
| | | lf.on('anchor:drop', (data) => { |
| | | const nodeData = data.nodeModel.getData(); |
| | | if (nodeData.properties.isReturn === true) { |
| | | console.log(11, nodeData.properties.isReturn); |
| | | data.nodeModel.graphModel.edges.forEach((element) => { |
| | | if (element.sourceNodeId === data.nodeModel.id) { |
| | | lf.changeEdgeType(element.id, 'custom-edge'); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | lf.on('node:click,edge:click', (data) => { |
| | | if (data.isSelected) { |
| | | console.log(data.data.text.value, data.isSelected); |
| | | // notification.success({ |
| | | // message: t('ç¹å»äºèç¹'), |
| | | // description: `${data.data.text.value}: ${data.isSelected}`, |
| | | // duration: 3, |
| | | // }); |
| | | emit('select-node', data, lf); |
| | | } else { |
| | | console.log(data.data.type); |
| | | } |
| | | }); |
| | | |
| | | lf.on('blank:mousedown', (e) => { |
| | | emit('click-blank'); |
| | | }); |
| | | |
| | | lf.on('node:dnd-add', (data, e) => { |
| | | console.log('node:dnd-add', data); |
| | | emit('select-node', data, lf); |
| | | }); |
| | | |
| | | emit('init', lf); |
| | | } |
| | | |
| | | function handlePreview() { |
| | | const lf = unref(lfInstance); |
| | | if (!lf) { |
| | | return; |
| | | } |
| | | graphData.value = unref(lf).getGraphData(); |
| | | openModal(); |
| | | } |
| | | |
| | | function handleSave() { |
| | | // console.log('handleSave'); |
| | | const lf = unref(lfInstance); |
| | | if (!lf) { |
| | | return; |
| | | } |
| | | emit('save-data', lf); |
| | | } |
| | | |
| | | function handleAdd() { |
| | | const lf = unref(lfInstance); |
| | | console.log('handleAdd'); |
| | | if (!lf) { |
| | | return; |
| | | } |
| | | // lf.clearData(); |
| | | lf.render({}); |
| | | } |
| | | |
| | | function handleAddlf() { |
| | | const lf = unref(lfInstance); |
| | | if (!lf) { |
| | | return; |
| | | } |
| | | emit('add-lf', lf); |
| | | } |
| | | |
| | | function handleUndo() { |
| | | const lf = unref(lfInstance); |
| | | if (!lf) { |
| | | return; |
| | | } |
| | | emit('undo', lf); |
| | | } |
| | | |
| | | function handleRedo() { |
| | | const lf = unref(lfInstance); |
| | | if (!lf) { |
| | | return; |
| | | } |
| | | emit('redo', lf); |
| | | } |
| | | |
| | | onMounted(init); |
| | | </script> |
| | |
| | | * @version: |
| | | * @Date: 2024-06-05 15:46:07 |
| | | * @LastEditors: Ben Lin |
| | | * @LastEditTime: 2024-06-13 09:28:27 |
| | | * @LastEditTime: 2024-06-28 14:26:49 |
| | | --> |
| | | <template> |
| | | <BasicModal |
| | |
| | | const dtlSlots = ref([] as any[]); |
| | | const formSchema = ref([] as FormSchema[]); |
| | | const formElName = ref([]); |
| | | const useFormData = ref({}); |
| | | const useFormData = ref<any>({}); |
| | | const props = defineProps({ |
| | | detailSlots: { type: Array, default: [] }, |
| | | }); |
| | |
| | | //循ç¯è¡¨ååæ°ç»ï¼æä½å表ååæ®µ |
| | | formElName.value.forEach((name) => { |
| | | if (!isNullOrUnDef(useFormData.value[name])) { |
| | | useFormData.value[name][1].resetFields(); |
| | | useFormData.value[name][1]['resetFields'](); |
| | | if (unref(isUpdate)) { |
| | | useFormData.value[name][1].setFieldsValue({ |
| | | useFormData.value[name][1]['setFieldsValue']({ |
| | | ...mValues.value, |
| | | }); |
| | | } |
| | |
| | | <!-- |
| | | * @Description: file content |
| | | * @Author: Ben Lin |
| | | * @version: |
| | | * @Date: 2024-06-18 15:09:48 |
| | | * @LastEditors: Ben Lin |
| | | * @LastEditTime: 2024-06-30 13:07:46 |
| | | --> |
| | | <template> |
| | | <BasicModal |
| | | v-bind="$attrs" |
| | | @register="registerModal" |
| | | :defaultFullscreen="true" |
| | | :title="title" |
| | | @ok="custFunction(isUpdate, 'rvSubmit', cType, setModalProps, closeModal, emit, slotName)" |
| | | @ok="custFunction(isUpdate, submitFn, cType, setModalProps, closeModal, emit, slotName)" |
| | | :width="width" |
| | | > |
| | | <!-- è¿éåµå
¥router-viewæ¥å±ç¤ºè·¯ç±é¡µé¢ --> |
| | |
| | | </BasicModal> |
| | | </template> |
| | | <script lang="ts" setup> |
| | | import { ref, unref, onMounted } from 'vue'; |
| | | import { GetSelectSuccess, OpenSelectItem, custFunction, getFormSchema } from './data'; |
| | | import { BasicModal, useModalInner, useModal } from '/@/components/Modal'; |
| | | import { ref, onMounted } from 'vue'; |
| | | import { custFunction } from './data'; |
| | | import { BasicModal, useModalInner } from '/@/components/Modal'; |
| | | import Route_View from '/@/views/tigerprojects/mes/eng/route/index.vue'; |
| | | |
| | | const emit = defineEmits(['success', 'register']); |
| | |
| | | const title = ref(''); |
| | | const width = ref(''); |
| | | const rotId = ref(''); |
| | | const submitFn = ref(''); |
| | | const slotName = ref(''); |
| | | |
| | | const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => { |
| | | setModalProps({ confirmLoading: false }); |
| | | rotId.value = data?.rotId; |
| | | slotName.value = data?.slotName; |
| | | submitFn.value = data?.submitFn; //'rvSubmit' |
| | | }); |
| | | |
| | | onMounted(() => {}); |
| | |
| | | * @version: |
| | | * @Date: 2024-06-05 15:50:59 |
| | | * @LastEditors: Ben Lin |
| | | * @LastEditTime: 2024-06-27 10:54:27 |
| | | * @LastEditTime: 2024-06-28 11:31:37 |
| | | */ |
| | | import { |
| | | getWoFns, |
| | |
| | | } |
| | | |
| | | export function getFormSchema(type: string) { |
| | | let _formSchema = [] as FormSchema[]; |
| | | let _formSchema: FormSchema[] = []; |
| | | switch (type) { |
| | | case 'BIZ_MES_WO': |
| | | _formSchema = woformSchema; |
| | |
| | | * @version: |
| | | * @Date: 2024-05-25 00:27:00 |
| | | * @LastEditors: Ben Lin |
| | | * @LastEditTime: 2024-06-24 22:58:16 |
| | | * @LastEditTime: 2024-06-28 11:40:38 |
| | | --> |
| | | <template> |
| | | <div> |
| | |
| | | edges: [], |
| | | }); |
| | | const formSchema = ref([] as FormSchema[]); |
| | | const woSchema = ref([] as FormSchema[]); |
| | | const prodSchema = ref([] as FormSchema[]); |
| | | const woSchema = ref<FormSchema[]>(getFormSchema('woinfo')); |
| | | const prodSchema = ref<FormSchema[]>(getFormSchema('prodinfo')); |
| | | const isCustEl = ref({ |
| | | forminfo: false, |
| | | woinfo: false, |
| | |
| | | }, |
| | | { name: 'rotinfo', slots: ['add'], preIcons: { add: 'search|svg' }, title: 'å·¥èºä¿¡æ¯' }, |
| | | ]; |
| | | woSchema.value = getFormSchema('woinfo'); |
| | | prodSchema.value = getFormSchema('prodinfo'); |
| | | // rotSchema.value = getFormSchema('rotinfo'); |
| | | //å·¥èºè·¯çº¿æ¸²æå¾åå§å |
| | | if (lfInstance.value != null) { |
| | |
| | | * @version: |
| | | * @Date: 2024-06-20 12:13:27 |
| | | * @LastEditors: Ben Lin |
| | | * @LastEditTime: 2024-06-27 00:39:37 |
| | | * @LastEditTime: 2024-06-30 13:04:00 |
| | | --> |
| | | <template> |
| | | <Card :title="GetTitle()['navTitle']"> |
| | | <Card :title="GetTitle(props.configType)['navTitle']"> |
| | | <CardGrid |
| | | v-for="item in GetNavItems()" |
| | | v-for="item in GetNavItems(props.configType)" |
| | | :key="item.title" |
| | | @click="navChangeItem(item.action, useModalData[item.action][1].openModal)" |
| | | > |
| | |
| | | /> |
| | | </CardGrid> |
| | | </Card> |
| | | <!-- å
¶ä»èªå®ä¹å¡çå
容 --> |
| | | <a-card |
| | | :title="item.title" |
| | | :bordered="false" |
| | | class="!mt-2" |
| | | v-for="(item, index) in otherSlots" |
| | | :key="item.name" |
| | | > |
| | | <slot :name="item.name" :index="index"></slot> |
| | | </a-card> |
| | | <RouteViewModal @register="registerRv" @success="RvItemSuccess" /> |
| | | </template> |
| | | <script lang="ts" setup> |
| | | import { Card, CardGrid } from 'ant-design-vue'; |
| | | import Icon from '@/components/Icon/Icon.vue'; |
| | | import GeneralModal from '/@/views/components/GeneralModal.vue'; |
| | | import RouteViewModal from '/@/views/components/RouteViewModal.vue'; |
| | | import StepModal from '/@/views/components/StepModal.vue'; |
| | | import { Ref, inject, ref, watch } from 'vue'; |
| | | import { Ref, inject, nextTick, onMounted, ref, watch } from 'vue'; |
| | | import { isNullOrUnDef } from '/@/utils/is'; |
| | | import { useTabs } from '/@/hooks/web/useTabs'; |
| | | import { EntityCustFunctionType } from '/@/api/tigerapi/model/basModel'; |
| | | import { useModal } from '/@/components/Modal'; |
| | | |
| | | const ACard = Card; |
| | | const objParams = inject('objParams') as Ref<any>; |
| | | const props = defineProps({ |
| | | configType: { type: String }, |
| | | nodes: { type: Array as PropType<any[]> }, |
| | | }); |
| | | const custImport = ref<any[]>([]); |
| | | const EntityCustFunction = ref([ |
| | | { |
| | | GetTitle() {}, |
| | | GetNavItems() {}, |
| | | GetTitle(type: string) {}, |
| | | GetNavItems(type: string) {}, |
| | | navChangeItem(action: any, ...args) {}, |
| | | GetUseModals() {}, |
| | | GetBaseCards(type: string | undefined) {}, |
| | | GetSelectSuccess(d, u, ...args) {}, |
| | | GenerateHtml(ype: string | null) {}, |
| | | CustFunc(type: string | undefined, ...args) {}, |
| | | } as EntityCustFunctionType, |
| | | ]); |
| | | /* 卿importå®ä½å.tsçèªå®ä¹æ¹æ³ */ |
| | | try { |
| | | custImport.value = await import(`../entityts/${objParams.value['Name']}.ts`); |
| | | } catch (e) {} |
| | | const [{ GetTitle, GetNavItems, navChangeItem, GetUseModals, GetSelectSuccess }] = isNullOrUnDef( |
| | | custImport.value['default'], |
| | | ) |
| | | const [ |
| | | { |
| | | GetTitle, |
| | | GetNavItems, |
| | | navChangeItem, |
| | | GetUseModals, |
| | | GetSelectSuccess, |
| | | GetBaseCards, |
| | | GenerateHtml, |
| | | CustFunc, |
| | | }, |
| | | ] = isNullOrUnDef(custImport.value['default']) |
| | | ? EntityCustFunction.value |
| | | : custImport.value['default'](); |
| | | |
| | | const useModalData = ref(GetUseModals()); |
| | | const otherSlots = ref<any[]>(GetBaseCards(props.configType)); |
| | | const { refreshPage } = useTabs(); |
| | | const [registerRv, { openModal: openRvModal }] = useModal(); |
| | | |
| | | // watch( |
| | | // () => Prod_Code, |
| | | // (v) => { |
| | | // if (v !== Prod_Code.value) { |
| | | // Prod_Code.value = isNullOrEmpty(v) ? Prod_Code.value : v; |
| | | // } |
| | | // }, |
| | | // { deep: true }, |
| | | // ); |
| | | watch( |
| | | [() => props.configType, () => props.nodes], |
| | | (v) => { |
| | | otherSlots.value = GetBaseCards(v[0]); |
| | | nextTick(() => { |
| | | // var div = document.getElementById('container') as HTMLElement; |
| | | // div.innerHTML = ''; |
| | | // div.appendChild(GenerateHtml(v[0])); |
| | | // setTimeout(() => { |
| | | // if (!isNullOrUnDef(v[1])) { |
| | | // CustFunc(v[0], v[1][0]['id'], '#lfContainer'); |
| | | // } |
| | | // }, 100); |
| | | }); |
| | | }, |
| | | { deep: true }, |
| | | ); |
| | | |
| | | onMounted(() => { |
| | | nextTick(() => { |
| | | // var div = document.getElementById('container') as HTMLElement; |
| | | // if (!isNullOrUnDef(div)) { |
| | | // div.innerHTML = ''; |
| | | // div.appendChild(GenerateHtml(props.configType)); |
| | | // setTimeout(() => { |
| | | // if (!isNullOrUnDef(props.nodes) && props.nodes.length > 0) { |
| | | // CustFunc(props.configType, props.nodes[0]['id'], '#lfContainer'); |
| | | // } |
| | | // }, 100); |
| | | // } |
| | | }); |
| | | }); |
| | | |
| | | /** |
| | | * @description: å¼¹åºéæ©æ¡æåè¿åæ¹æ³ |
| | |
| | | * @version: |
| | | * @Date: 2024-06-26 15:31:43 |
| | | * @LastEditors: Ben Lin |
| | | * @LastEditTime: 2024-06-26 21:41:54 |
| | | * @LastEditTime: 2024-06-29 05:50:18 |
| | | --> |
| | | <template> |
| | | <GeneralTree |
| | |
| | | |
| | | const emit = defineEmits(['select']); |
| | | const objParams = inject('objParams') as Ref<any>; |
| | | const nodeType = inject('nodeType') as Ref<any>; |
| | | const selectedNodes = inject('selectedNodes') as Ref<any>; |
| | | const custImport = ref<any[]>([]); |
| | | const EntityCustFunction = ref([ |
| | |
| | | try { |
| | | custImport.value = await import(`../entityts/${objParams.value['Name']}.ts`); |
| | | } catch (e) {} |
| | | const [{ CreateIcon, SelectNode }] = isNullOrUnDef(custImport.value['default']) |
| | | const [{ CreateIcon, SelectNode, fetchTreeData }] = isNullOrUnDef(custImport.value['default']) |
| | | ? EntityCustFunction.value |
| | | : custImport.value['default'](); |
| | | const treeData = ref<TreeItem[]>([]); |
| | |
| | | */ |
| | | async function fetch(type: string) { |
| | | if (!isNullOrUnDef(custImport.value)) { |
| | | const [{ fetchTreeData }] = custImport.value['default'](); |
| | | // const [{ fetchTreeData }] = custImport.value['default'](); |
| | | //æ ¹æ®typeè·åæ å½¢æ°æ® |
| | | const data = await fetchTreeData(type, objParams.value['CODE']); |
| | | title.value = data.title; |
| | |
| | | } |
| | | |
| | | function handleSelect(Id = '', info) { |
| | | nodeType.value = info.selectedNodes[0].type; |
| | | selectedNodes.value = info.selectedNodes; |
| | | emit('select', SelectNode(selectedNodes)); |
| | | } |
| | |
| | | * @return {*} |
| | | */ |
| | | function UnSelect(node) { |
| | | nodeType.value = ''; |
| | | emit('select', SelectNode(undefined)); |
| | | // reload(); |
| | | } |
| | |
| | | * @version: |
| | | * @Date: 2024-06-18 23:30:30 |
| | | * @LastEditors: Ben Lin |
| | | * @LastEditTime: 2024-06-27 22:31:13 |
| | | * @LastEditTime: 2024-06-29 06:16:43 |
| | | --> |
| | | <template> |
| | | <PageWrapper |
| | |
| | | @back="goBack" |
| | | > |
| | | <Suspense class="w-1/4 xl:w-1/5"> |
| | | <LeftTree @select="NodeSelect"/> |
| | | <LeftTree @select="NodeSelect" /> |
| | | </Suspense> |
| | | <Suspense> |
| | | <div class="w-3/4 xl:w-4/5 p-5"> |
| | | <CarGridNav v-if="showNav" /> |
| | | <Config v-if="showConfig" :configType="configType" @success="configSuccess"/> |
| | | <CarGridNav v-if="showNav" :configType="configType" :nodes="nodes"> |
| | | <template #[item] v-for="item in otherSlots" :key="item"> |
| | | <!-- èªå®ä¹å
容 --> |
| | | <div class="h-full" style="height: 400px"> |
| | | <FlowChartView :data="routeData" @init="init" |
| | | /></div> |
| | | </template> |
| | | </CarGridNav> |
| | | <Config v-if="showConfig" :configType="configType" @success="configSuccess" /> |
| | | </div> |
| | | </Suspense> |
| | | <!-- <BasicTable class="w-3/4 xl:w-4/5" @register="registerTable"> |
| | |
| | | import Config from './Config.vue'; |
| | | import LeftTree from './LeftTree.vue'; |
| | | import CustModal from '/@/views/components/CustModal.vue'; |
| | | import { OpenCustModal } from '../data'; |
| | | import { Ref, onMounted, provide, ref } from 'vue'; |
| | | import { OpenCustModal, initRoute } from '../data'; |
| | | import { Ref, VNode, onMounted, provide, ref, unref } from 'vue'; |
| | | import { FlowChartView } from '/@/components/FlowChart'; |
| | | import { useRoute } from 'vue-router'; |
| | | import { BasicForm, useForm } from '/@/components/Form/index'; |
| | | import { useTabs } from '/@/hooks/web/useTabs'; |
| | | import { isNullOrUnDef } from '/@/utils/is'; |
| | | import { useGo } from '/@/hooks/web/usePage'; |
| | | import { useMessage } from '/@/hooks/web/useMessage'; |
| | | import { getRouteData } from '/@/api/tigerapi/mes/router'; |
| | | import LogicFlow from '@logicflow/core'; |
| | | |
| | | defineOptions({ name: 'DeptManagement' }); |
| | | |
| | |
| | | const useFormData = ref({}); |
| | | const cType = ref(''); |
| | | const dtlSlots = ref([] as any[]); |
| | | const otherSlots = ref<any[]>([]); |
| | | const selectVals = ref({}); |
| | | const dense = isNullOrUnDef(objParams.value.dense) ? ref(false) : ref(objParams.value.dense); |
| | | const pageTitle = ref(objParams.value.pageTitle); |
| | | const pageContent = ref(objParams.value.pageContent); |
| | | const nodeType = ref(''); |
| | | const selectedNodes = ref([]); |
| | | const isMounted = ref(false); |
| | | const showNav = ref(false); |
| | | const showConfig = ref(false); |
| | | const configType = ref(''); |
| | | const nodes = ref([]); |
| | | const routeData = ref({ |
| | | nodes: [], |
| | | edges: [], |
| | | }); |
| | | const custImport = ref<any>(null); |
| | | const [registerCust, { openModal: openCustomModal, closeModal }] = useModal(); |
| | | provide<Ref<string>>('nodeType', nodeType); |
| | | provide<Ref<any>>('objParams', objParams); |
| | | provide<Ref<any>>('selectedNodes', selectedNodes); |
| | | setTitle(objParams.value.Title); //设置æ ç¾é¡µæ é¢ |
| | |
| | | /* 卿importå®ä½å.tsçèªå®ä¹æ¹æ³ */ |
| | | try { |
| | | custImport.value = await import(`../entityts/${entityName.value}.ts`); |
| | | if (custImport.value['default']) { |
| | | otherSlots.value = custImport.value['default']()[0]['GetSlots'](); |
| | | } |
| | | isMounted.value = true; |
| | | } catch (e) {} |
| | | } catch (e) { |
| | | console.log(e); |
| | | } |
| | | }); |
| | | |
| | | const currlf = ref(null) as Ref<LogicFlow | null>; |
| | | /** |
| | | * @description: å·¥èºè·¯çº¿åå§å |
| | | * @param {*} lf |
| | | * @return {*} |
| | | */ |
| | | async function init(lf, rotId) { |
| | | initRoute(lf, rotId, routeData, currlf); |
| | | } |
| | | |
| | | /** |
| | | * @description: éæ©èç¹æ¶æ ¹æ®è¿åçäºä»¶åæ°æ¾ç¤ºéèç¸åºç»ä»¶ |
| | | * @param {*} e |
| | | * @return {*} |
| | | */ |
| | | */ |
| | | function NodeSelect(e) { |
| | | showConfig.value = e.showConfig; |
| | | showNav.value = e.showNav; |
| | | configType.value = e.type |
| | | configType.value = e.type; |
| | | nodes.value = e.nodes; |
| | | routeData.value = { |
| | | nodes: [], |
| | | edges: [], |
| | | }; |
| | | initRoute(currlf, e.nodes[0].id, routeData, currlf); |
| | | } |
| | | |
| | | /** |
| | | * @description: ä¿åé
ç½®æåè¿åæ¹æ³ |
| | | * @return {*} |
| | | */ |
| | | */ |
| | | function configSuccess() { |
| | | notification.success({ message: 'æåä¿åè¡ä¸ºé
ç½®æ°æ®' }); |
| | | } |
| | |
| | | * @version: |
| | | * @Date: 2024-06-02 17:52:35 |
| | | * @LastEditors: Ben Lin |
| | | * @LastEditTime: 2024-06-26 22:23:12 |
| | | * @LastEditTime: 2024-06-29 06:12:26 |
| | | */ |
| | | |
| | | import { ActionItem, BasicColumn, FormSchema } from '/@/components/Table'; |
| | |
| | | import { isNullOrEmpty } from '/@/utils/is'; |
| | | import { woCustFn, woformSchema } from '/@/views/components/bizMesWo'; |
| | | import { useModal } from '/@/components/Modal'; |
| | | import LogicFlow from '@logicflow/core'; |
| | | import { BpmnElement } from '@logicflow/extension/es/bpmn'; |
| | | import { Ref, ref, unref } from 'vue'; |
| | | import customEdge from '/@/components/FlowChart/src/customEdge'; |
| | | import actionRect from '/@/components/FlowChart/src/actionRect'; |
| | | import TestNode from '/@/components/FlowChart/src/TestNode'; |
| | | import CollectNode from '/@/components/FlowChart/src/CollectNode'; |
| | | import AssemblyNode from '/@/components/FlowChart/src/AssemblyNode'; |
| | | import PackingNode from '/@/components/FlowChart/src/PackingNode'; |
| | | import RepairNode from '/@/components/FlowChart/src/RepairNode'; |
| | | import { getRouteData } from '/@/api/tigerapi/mes/router'; |
| | | import { toLogicFlowData } from '/@/components/FlowChart/src/adpterForTurbo'; |
| | | import { SelectionSelect } from '@logicflow/extension'; |
| | | |
| | | const { t } = useI18n(); |
| | | /** |
| | |
| | | } |
| | | return _formSchema; |
| | | } |
| | | |
| | | /** |
| | | * @description: å·¥èºè·¯çº¿åå§å |
| | | * @param {*} lf |
| | | * @return {*} |
| | | */ |
| | | export async function initRoute(lf, rotId, routeData, currlf) { |
| | | currlf.value = unref(lf); |
| | | //éè¿å·¥èºè·¯çº¿IDè·åå¾å½¢æ°æ®ï¼å¹¶æ¸²æ |
| | | var _data = await getRouteData(rotId); |
| | | console.log('ç»ä»¶å·²æè½½', _data); |
| | | if (_data.Data != null) { |
| | | _data.Data.nodes.forEach((n) => { |
| | | n.node.properties = JSON.parse(n.node.properties); |
| | | n['node']['text']['value'] = n.NODE_NAME; |
| | | routeData.value.nodes.push(n['node']); |
| | | }); |
| | | console.log('111', routeData.value); |
| | | _data.Data.edges.forEach((e) => { |
| | | e.edge.properties = JSON.parse(e.edge.properties); |
| | | routeData.value.edges.push(e.edge); |
| | | }); |
| | | _data.Data.acts.forEach((act) => { |
| | | act.node.properties = JSON.parse(act.node.properties); |
| | | routeData.value.nodes.push(act.node); |
| | | }); |
| | | unref(lf).render(routeData.value); |
| | | } |
| | | } |
| | |
| | | EditOperation(data, d, u) {}, |
| | | GetBaseColumns() {}, |
| | | GetSearchForm() {}, |
| | | GetCrudForm() {}, |
| | | GetCrudForm(type: string) {}, |
| | | OthersValues(val, id) {}, |
| | | GetSelectSuccess(d, u, ...args) {}, |
| | | OpenSelectItem(openItemModal: Fn, ...args) {}, |
| | |
| | | * @version: |
| | | * @Date: 2024-06-19 20:34:27 |
| | | * @LastEditors: Ben Lin |
| | | * @LastEditTime: 2024-06-26 03:13:41 |
| | | * @LastEditTime: 2024-06-28 14:21:49 |
| | | */ |
| | | |
| | | import { Ref, h, unref } from 'vue'; |
| | |
| | | slots: { customRender: 'action' }, |
| | | fixed: undefined, |
| | | }; |
| | | |
| | | |
| | | /** |
| | | * @description: äºèªå®ä¹æ¹æ³ |
| | | * @return {*} |
| | | */ |
| | | const methods = { |
| | | /** |
| | | * @description: è·åæ°å¢æé®çè¡ä¸º |
| | |
| | | }, |
| | | ]; |
| | | }, |
| | | GetBaseCards: () => { |
| | | /** |
| | | * @description: è·åå¡çå
é
ç½®å表ï¼ä»¥å¾ªç¯æ¾ç¤ºå¤ä¸ªå¡çå¹¶é
ç½®å¤ä¸ªææ§½ |
| | | * @return {*} |
| | | */ |
| | | GetBaseCards: (type: string) => { |
| | | return [ |
| | | { |
| | | name: 'BaseForm', |
| | |
| | | * @version: |
| | | * @Date: 2024-06-19 20:34:27 |
| | | * @LastEditors: Ben Lin |
| | | * @LastEditTime: 2024-06-26 18:33:05 |
| | | * @LastEditTime: 2024-06-28 10:52:16 |
| | | */ |
| | | |
| | | import { ActionItem, BasicColumn } from '/@/components/Table'; |
| | |
| | | |
| | | const { t } = useI18n(); |
| | | function _default() { |
| | | /** |
| | | * @description: èªå®ä¹ç¼è¾æ¹æ³ |
| | | * @param {Fn} args |
| | | * @param {*} params |
| | | * @return {*} |
| | | */ |
| | | function DftGrpEdit(args: Fn[], params: {}) { |
| | | const param = { |
| | | CODE: params['record']['DFTG_CODE'], |
| | | ID: params['record']['ID'], |
| | | Name: 'BAS_DEFECT', |
| | | Title: `ç¼è¾ä¸è¯ä»£ç ç»ï¼${params['record']['DFTG_CODE']}`, |
| | | pCode: 'DFTG_CODE', |
| | | IsID: false, |
| | | }; |
| | | args[5](`/BAS_DEFECT/High/${encodeURI(JSON.stringify(param))}`); |
| | | } |
| | | |
| | | const ActionColumn: BasicColumn = { |
| | | width: 100, |
| | | title: 'æä½', |
| | |
| | | slots: { customRender: 'action' }, |
| | | fixed: 'right', |
| | | }; |
| | | |
| | | /** |
| | | * @description: ä¸äºèªå®ä¹æ¹æ³ |
| | | * @return {*} |
| | | */ |
| | | const methods = { |
| | | /** |
| | | * @description: è·åæ°å¢æé®çè¡ä¸º |
| | |
| | | }, |
| | | }; |
| | | |
| | | /* 以䏿¯å
鍿¹æ³ï¼ä¸exportï¼ä¾ä¸é¢çæ¹æ³è°ç¨ */ |
| | | |
| | | /** |
| | | * @description: èªå®ä¹ç¼è¾æ¹æ³ |
| | | * @param {Fn} args |
| | | * @param {*} params |
| | | * @return {*} |
| | | */ |
| | | function DftGrpEdit(args: Fn[], params: {}) { |
| | | const param = { |
| | | CODE: params['record']['DFTG_CODE'], |
| | | ID: params['record']['ID'], |
| | | Name: 'BAS_DEFECT', |
| | | Title: `ç¼è¾ä¸è¯ä»£ç ç»ï¼${params['record']['DFTG_CODE']}`, |
| | | pCode: 'DFTG_CODE', |
| | | IsID: false, |
| | | }; |
| | | args[5](`/BAS_DEFECT/High/${encodeURI(JSON.stringify(param))}`); |
| | | } |
| | | |
| | | return [methods, ActionColumn]; |
| | | } |
| | | |
| | |
| | | * @version: |
| | | * @Date: 2024-06-19 20:34:27 |
| | | * @LastEditors: Ben Lin |
| | | * @LastEditTime: 2024-06-27 20:40:25 |
| | | * @LastEditTime: 2024-06-28 10:51:56 |
| | | */ |
| | | |
| | | import { ActionItem, BasicColumn } from '/@/components/Table'; |
| | |
| | | fixed: undefined, |
| | | }; |
| | | |
| | | /** |
| | | * @description: ä¸äºèªå®ä¹æ¹æ³ |
| | | * @return {*} |
| | | */ |
| | | const methods = { |
| | | /** |
| | | * @description: è·åæ°å¢æé®çè¡ä¸º |
| | |
| | | VAR_VALUE: d.values['val'], |
| | | }; |
| | | }, |
| | | OpenSelectItem:(openItemModal: Fn, ...args) => { |
| | | openItemModal(true, { |
| | | title: 'è¿ç¨åéå表', |
| | | schemas: [ |
| | | { |
| | | field: 'VAR_CODE', |
| | | component: 'Input', |
| | | label: 'è¿ç¨åéç¼ç ', |
| | | colProps: { |
| | | span: 12, |
| | | }, |
| | | OpenSelectItem: (openItemModal: Fn, ...args) => { |
| | | openItemModal(true, { |
| | | title: 'è¿ç¨åéå表', |
| | | schemas: [ |
| | | { |
| | | field: 'VAR_CODE', |
| | | component: 'Input', |
| | | label: 'è¿ç¨åéç¼ç ', |
| | | colProps: { |
| | | span: 12, |
| | | }, |
| | | ], |
| | | ItemColumns: [ |
| | | { |
| | | title: t('è¿ç¨åéç¼ç '), |
| | | dataIndex: 'VAR_CODE', |
| | | resizable: true, |
| | | sorter: true, |
| | | width: 200, |
| | | }, |
| | | { |
| | | title: t('è¿ç¨åéåç§°'), |
| | | dataIndex: 'VAR_NAME', |
| | | resizable: true, |
| | | sorter: true, |
| | | width: 180, |
| | | }, |
| | | ], |
| | | tableName: 'BAS_LABEL_PV', |
| | | rowKey: 'VAR_CODE', |
| | | searchInfo: {TABLE_NAME: 'BAS_LABEL_PV'} |
| | | }); |
| | | } |
| | | }, |
| | | ], |
| | | ItemColumns: [ |
| | | { |
| | | title: t('è¿ç¨åéç¼ç '), |
| | | dataIndex: 'VAR_CODE', |
| | | resizable: true, |
| | | sorter: true, |
| | | width: 200, |
| | | }, |
| | | { |
| | | title: t('è¿ç¨åéåç§°'), |
| | | dataIndex: 'VAR_NAME', |
| | | resizable: true, |
| | | sorter: true, |
| | | width: 180, |
| | | }, |
| | | ], |
| | | tableName: 'BAS_LABEL_PV', |
| | | rowKey: 'VAR_CODE', |
| | | searchInfo: { TABLE_NAME: 'BAS_LABEL_PV' }, |
| | | }); |
| | | }, |
| | | }; |
| | | |
| | | return [methods, ActionColumn]; |
| | |
| | | * @version: |
| | | * @Date: 2024-06-19 20:34:27 |
| | | * @LastEditors: Ben Lin |
| | | * @LastEditTime: 2024-06-24 15:52:02 |
| | | * @LastEditTime: 2024-06-28 10:52:45 |
| | | */ |
| | | |
| | | import { ActionItem, BasicColumn } from '/@/components/Table'; |
| | | |
| | | function _default() { |
| | | /** |
| | | * @description: 跳转å°è¯¦æ
页颿¹æ³ |
| | | * @param {Fn} go |
| | | * @return {*} |
| | | */ |
| | | function goDetail(go: Fn, params: Recordable) { |
| | | const id = { |
| | | ID: params['record'].ID, |
| | | CODE: params['record']['LABEL_CODE'], |
| | | Name: 'BAS_LABEL_VAR', |
| | | firstTabName: 'æ ç¾æ¨¡æ¿åé', |
| | | secondTabName: '', //'æ ç¾è¿ç¨åé', |
| | | firstTitle: '模æ¿åé', |
| | | secondTitle: '', //'è¿ç¨åé', |
| | | pageTitle: 'æ ç¾æ¨¡æ¿åé', //详æ
页颿 é¢ |
| | | contentStr: 'è¿éæ¯æ ç¾æ¨¡æ¿åé管ç页é¢ï¼å¯ä»¥ç®¡çæ ç¾ç模æ¿åéæè
æå°è¿ç¨ä¸çåé', |
| | | detailName: `模æ¿[${params['record'].LABEL_NAME}]`, |
| | | others: { LABEL_ID: params['record'].ID }, |
| | | colSlots: ['BAS_LABEL_PV1add'], |
| | | }; |
| | | go(`/BAS_LABEL_VAR/${encodeURI(JSON.stringify(id))}`); |
| | | } |
| | | |
| | | const ActionColumn: BasicColumn = { |
| | | width: 120, |
| | | title: 'æä½', |
| | |
| | | fixed: 'right', |
| | | }; |
| | | |
| | | /** |
| | | * @description: äºèªå®ä¹æ¹æ³ |
| | | * @return {*} |
| | | */ |
| | | const methods = { |
| | | /** |
| | | * @description: è·åæ°å¢æé®çè¡ä¸º |
| | |
| | | }, |
| | | }; |
| | | |
| | | /* 以䏿¯å
鍿¹æ³ï¼ä¸exportï¼ä¾ä¸é¢çæ¹æ³è°ç¨ */ |
| | | |
| | | /** |
| | | * @description: 跳转å°è¯¦æ
页颿¹æ³ |
| | | * @param {Fn} go |
| | | * @return {*} |
| | | */ |
| | | function goDetail(go: Fn, params: Recordable) { |
| | | const id = { |
| | | ID: params['record'].ID, |
| | | CODE: params['record']['LABEL_CODE'], |
| | | Name: 'BAS_LABEL_VAR', |
| | | firstTabName: 'æ ç¾æ¨¡æ¿åé', |
| | | secondTabName: '', //'æ ç¾è¿ç¨åé', |
| | | firstTitle: '模æ¿åé', |
| | | secondTitle: '', //'è¿ç¨åé', |
| | | pageTitle: 'æ ç¾æ¨¡æ¿åé', //详æ
页颿 é¢ |
| | | contentStr: 'è¿éæ¯æ ç¾æ¨¡æ¿åé管ç页é¢ï¼å¯ä»¥ç®¡çæ ç¾ç模æ¿åéæè
æå°è¿ç¨ä¸çåé', |
| | | detailName: `模æ¿[${params['record'].LABEL_NAME}]`, |
| | | others: { LABEL_ID: params['record'].ID }, |
| | | colSlots: ['BAS_LABEL_PV1add'], |
| | | }; |
| | | go(`/BAS_LABEL_VAR/${encodeURI(JSON.stringify(id))}`); |
| | | } |
| | | |
| | | return [methods, ActionColumn]; |
| | | } |
| | | |
| | |
| | | * @version: |
| | | * @Date: 2024-06-19 20:34:27 |
| | | * @LastEditors: Ben Lin |
| | | * @LastEditTime: 2024-06-23 23:42:04 |
| | | * @LastEditTime: 2024-06-28 10:53:28 |
| | | */ |
| | | |
| | | import { Tag, Tooltip } from 'ant-design-vue'; |
| | |
| | | slots: { customRender: 'action' }, |
| | | fixed: undefined, |
| | | }; |
| | | |
| | | /** |
| | | * @description: ä¸äºèªå®ä¹æ¹æ³ |
| | | * @return {*} |
| | | */ |
| | | const methods = { |
| | | /** |
| | | * @description: è·åæ°å¢æé®çè¡ä¸ºï¼å¿
éè¦æçæ¹æ³ |
| | |
| | | import { formatToDateTime } from '/@/utils/dateUtil'; |
| | | |
| | | function _default(): any[] { |
| | | /** |
| | | * @description: èªå®ä¹å 餿¹æ³ |
| | | * @param {Fn} args |
| | | * @param {*} params |
| | | * @return {*} |
| | | */ |
| | | function custDel(args: Fn[], params: {}) { |
| | | if (!isNullOrEmpty(params['data'])) { |
| | | var _data = params['data'].value.filter((item) => item['ID'] != params['record']['ID']); |
| | | params['data'].value = _data; |
| | | args[6]({ |
| | | dataSource: [], |
| | | }); |
| | | args[6]({ |
| | | dataSource: params['data'], |
| | | }); |
| | | args[1](); |
| | | } else { |
| | | DeleteEntity(params['record'], params['entityName']).then((action) => { |
| | | if (action.IsSuccessed) { |
| | | args[1](); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | |
| | | const ActionColumn: BasicColumn = { |
| | | width: 80, |
| | | title: 'æä½', |
| | |
| | | fixed: undefined, |
| | | }; |
| | | |
| | | /** |
| | | * @description: ä¸äºèªå®ä¹æ¹æ³ |
| | | * @return {*} |
| | | */ |
| | | const methods = { |
| | | /** |
| | | * @description: è·åæ°å¢æé®çè¡ä¸º |
| | |
| | | }, |
| | | }; |
| | | |
| | | /* 以䏿¯å
鍿¹æ³ï¼ä¸exportï¼ä¾ä¸é¢çæ¹æ³è°ç¨ */ |
| | | |
| | | /** |
| | | * @description: èªå®ä¹å 餿¹æ³ |
| | | * @param {Fn} args |
| | | * @param {*} params |
| | | * @return {*} |
| | | */ |
| | | function custDel(args: Fn[], params: {}) { |
| | | if (!isNullOrEmpty(params['data'])) { |
| | | var _data = params['data'].value.filter((item) => item['ID'] != params['record']['ID']); |
| | | params['data'].value = _data; |
| | | args[6]({ |
| | | dataSource: [], |
| | | }); |
| | | args[6]({ |
| | | dataSource: params['data'], |
| | | }); |
| | | args[1](); |
| | | } else { |
| | | DeleteEntity(params['record'], params['entityName']).then((action) => { |
| | | if (action.IsSuccessed) { |
| | | args[1](); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | |
| | | |
| | | return [methods, ActionColumn]; |
| | | } |
| | | |
| | |
| | | import { buildUUID } from '/@/utils/uuid'; |
| | | |
| | | function _default() { |
| | | /** |
| | | * @description: èªå®ä¹ç¼è¾æ¹æ³ï¼è·³è½¬å°é«çº§é¡µé¢ |
| | | * @param {Fn} args |
| | | * @param {*} params |
| | | * @return {*} |
| | | */ |
| | | function pkgGrpEdit(go: Fn, params: {}) { |
| | | const param = { |
| | | CODE: params['record']['RULE_CODE'], |
| | | ID: params['record']['ID'], |
| | | Name: 'BAS_PKG_DTL', |
| | | Title: `ç¼è¾å
è£
è§åï¼${params['record']['RULE_CODE']}`, |
| | | pCode: 'PKG_RULE_ID', |
| | | IsID: true, |
| | | }; |
| | | go(`/BAS_PKG_DTL/High/${encodeURI(JSON.stringify(param))}`); |
| | | } |
| | | |
| | | const ActionColumn: BasicColumn = { |
| | | width: 80, |
| | | title: 'æä½', |
| | |
| | | fixed: undefined, |
| | | }; |
| | | |
| | | /** |
| | | * @description: ä¸äºèªå®ä¹æ¹æ³ |
| | | * @return {*} |
| | | */ |
| | | const methods = { |
| | | /** |
| | | * @description: è·åæ°å¢æé®çè¡ä¸º |
| | |
| | | }, |
| | | }; |
| | | |
| | | /* 以䏿¯å
鍿¹æ³ï¼ä¸exportï¼ä¾ä¸é¢çæ¹æ³è°ç¨ */ |
| | | |
| | | /** |
| | | * @description: èªå®ä¹ç¼è¾æ¹æ³ï¼è·³è½¬å°é«çº§é¡µé¢ |
| | | * @param {Fn} args |
| | | * @param {*} params |
| | | * @return {*} |
| | | */ |
| | | function pkgGrpEdit(go: Fn, params: {}) { |
| | | const param = { |
| | | CODE: params['record']['RULE_CODE'], |
| | | ID: params['record']['ID'], |
| | | Name: 'BAS_PKG_DTL', |
| | | Title: `ç¼è¾å
è£
è§åï¼${params['record']['RULE_CODE']}`, |
| | | pCode: 'PKG_RULE_ID', |
| | | IsID: true, |
| | | }; |
| | | go(`/BAS_PKG_DTL/High/${encodeURI(JSON.stringify(param))}`); |
| | | } |
| | | |
| | | return [methods, ActionColumn]; |
| | | } |
| | | |
| | |
| | | /* |
| | | * @Description: file content |
| | | * @Description: ä¸è¯åå ç¸å
³ |
| | | * @Author: Ben Lin |
| | | * @version: |
| | | * @Date: 2024-06-22 00:58:43 |
| | | * @LastEditors: Ben Lin |
| | | * @LastEditTime: 2024-06-26 03:13:26 |
| | | */ |
| | | /* |
| | | * @Description: ä¸è¯åå ç¸å
³ |
| | | * @Author: Ben Lin |
| | | * @version: |
| | | * @Date: 2024-06-19 20:34:27 |
| | | * @LastEditors: Ben Lin |
| | | * @LastEditTime: 2024-06-23 18:12:40 |
| | | */ |
| | | |
| | | import { Ref, h } from 'vue'; |
| | | import { DeleteEntity, getEntity } from '/@/api/tigerapi/system'; |
| | | import { ActionItem, BasicColumn } from '/@/components/Table'; |
| | |
| | | import { Tag } from 'ant-design-vue'; |
| | | |
| | | function _default() { |
| | | /** |
| | | * @description: èªå®ä¹å 餿¹æ³ |
| | | * @param {Fn} args |
| | | * @param {*} params |
| | | * @return {*} |
| | | */ |
| | | function rsnGrpDel(args: Fn[], params: {}) { |
| | | if (!isNullOrEmpty(params['data'])) { |
| | | var _data = params['data'].value.filter((item) => item['ID'] != params['record']['ID']); |
| | | params['data'].value = _data; |
| | | args[6]({ |
| | | dataSource: [], |
| | | }); |
| | | args[6]({ |
| | | dataSource: params['data'], |
| | | }); |
| | | args[1](); |
| | | } else { |
| | | DeleteEntity(params['record'], params['entityName']).then((action) => { |
| | | if (action.IsSuccessed) { |
| | | args[1](); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | |
| | | const ActionColumn: BasicColumn = { |
| | | width: 80, |
| | | title: 'æä½', |
| | |
| | | fixed: undefined, |
| | | }; |
| | | |
| | | /** |
| | | * @description: ä¸äºèªå®ä¹æ¹æ³ |
| | | * @return {*} |
| | | */ |
| | | const methods = { |
| | | /** |
| | | * @description: è·åæ°å¢æé®çè¡ä¸º |
| | |
| | | /** |
| | | * @description: é«çº§è¡¨åå详æ
页é¢è¿å主页é¢çurl |
| | | * @return {*} |
| | | */ |
| | | */ |
| | | GetHomeUrl: () => { |
| | | return `/BAS_REASON_GRP/LC/${encodeURI(JSON.stringify({ ID: 'BAS_REASON_GRP', colSlots: [], crudColSlots: [] }))}`; |
| | | }, |
| | |
| | | }, |
| | | }; |
| | | |
| | | /* 以䏿¯å
鍿¹æ³ï¼ä¸exportï¼ä¾ä¸é¢çæ¹æ³è°ç¨ */ |
| | | |
| | | /** |
| | | * @description: èªå®ä¹å 餿¹æ³ |
| | | * @param {Fn} args |
| | | * @param {*} params |
| | | * @return {*} |
| | | */ |
| | | function rsnGrpDel(args: Fn[], params: {}) { |
| | | if (!isNullOrEmpty(params['data'])) { |
| | | var _data = params['data'].value.filter((item) => item['ID'] != params['record']['ID']); |
| | | params['data'].value = _data; |
| | | args[6]({ |
| | | dataSource: [], |
| | | }); |
| | | args[6]({ |
| | | dataSource: params['data'], |
| | | }); |
| | | args[1](); |
| | | } else { |
| | | DeleteEntity(params['record'], params['entityName']).then((action) => { |
| | | if (action.IsSuccessed) { |
| | | args[1](); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | |
| | | return [methods, ActionColumn]; |
| | | } |
| | | |
| | |
| | | const { t } = useI18n(); |
| | | |
| | | function _default() { |
| | | /** |
| | | * @description: èªå®ä¹ç¼è¾æ¹æ³ï¼è·³è½¬å°é«çº§é¡µé¢ |
| | | * @param {Fn} args |
| | | * @param {*} params |
| | | * @return {*} |
| | | */ |
| | | function rsnGrpEdit(args: Fn[], params: {}) { |
| | | const param = { |
| | | CODE: params['record']['RSNG_CODE'], |
| | | ID: params['record']['ID'], |
| | | Name: 'BAS_REASON', |
| | | Title: `ç¼è¾ä¸è¯åå ç»ï¼${params['record']['RSNG_CODE']}`, |
| | | pCode: 'RSNG_CODE', |
| | | IsID: false, |
| | | }; |
| | | args[5](`/BAS_REASON/High/${encodeURI(JSON.stringify(param))}`); |
| | | } |
| | | |
| | | const ActionColumn: BasicColumn = { |
| | | width: 180, |
| | | title: 'æä½', |
| | |
| | | fixed: undefined, |
| | | }; |
| | | |
| | | /** |
| | | * @description: ä¸äºèªå®ä¹æ¹æ³ |
| | | * @return {*} |
| | | */ |
| | | const methods = { |
| | | /** |
| | | * @description: è·åæ°å¢æé®çè¡ä¸º |
| | |
| | | RSNG_CODE: d.values['val'], |
| | | }; |
| | | }, |
| | | OpenSelectItem:(openItemModal: Fn, ...args) => { |
| | | OpenSelectItem: (openItemModal: Fn, ...args) => { |
| | | openItemModal(true, { |
| | | title: 'ä¸è¯åå ç»å表', |
| | | schemas: [ |
| | |
| | | ], |
| | | tableName: 'BAS_REASON_GRP', |
| | | rowKey: 'RSNG_CODE', |
| | | searchInfo: {TABLE_NAME: 'BAS_REASON_GRP'} |
| | | searchInfo: { TABLE_NAME: 'BAS_REASON_GRP' }, |
| | | }); |
| | | } |
| | | }, |
| | | }; |
| | | |
| | | /* 以䏿¯å
鍿¹æ³ï¼ä¸exportï¼ä¾ä¸é¢çæ¹æ³è°ç¨ */ |
| | | |
| | | /** |
| | | * @description: èªå®ä¹ç¼è¾æ¹æ³ï¼è·³è½¬å°é«çº§é¡µé¢ |
| | | * @param {Fn} args |
| | | * @param {*} params |
| | | * @return {*} |
| | | */ |
| | | function rsnGrpEdit(args: Fn[], params: {}) { |
| | | const param = { |
| | | CODE: params['record']['RSNG_CODE'], |
| | | ID: params['record']['ID'], |
| | | Name: 'BAS_REASON', |
| | | Title: `ç¼è¾ä¸è¯åå ç»ï¼${params['record']['RSNG_CODE']}`, |
| | | pCode: 'RSNG_CODE', |
| | | IsID: false, |
| | | }; |
| | | args[5](`/BAS_REASON/High/${encodeURI(JSON.stringify(param))}`); |
| | | } |
| | | |
| | | return [methods, ActionColumn]; |
| | | } |
| | | |
| | |
| | | * @version: |
| | | * @Date: 2024-06-19 20:34:27 |
| | | * @LastEditors: Ben Lin |
| | | * @LastEditTime: 2024-06-27 22:57:45 |
| | | * @LastEditTime: 2024-06-29 02:57:03 |
| | | */ |
| | | |
| | | import { Ref, ref, unref } from 'vue'; |
| | | import { Ref, h, ref, render, unref } from 'vue'; |
| | | import { GetRoutePTree, RouteToCust, RouteToProd } from '/@/api/tigerapi/mes/router'; |
| | | import { GetEnum, SaveEntity, convertToTree, getEntity } from '/@/api/tigerapi/system'; |
| | | import { useLocale } from '/@/locales/useLocale'; |
| | |
| | | import { NavItem } from '/@/api/tigerapi/model/basModel'; |
| | | import { useMessage } from '/@/hooks/web/useMessage'; |
| | | import { useModal } from '/@/components/Modal'; |
| | | import { FormSchema } from '/@/components/Table'; |
| | | import { initRoute } from '../data'; |
| | | |
| | | const { t } = useI18n(); |
| | | const { createErrorModal } = useMessage(); |
| | | const { getLocale } = useLocale(); |
| | | function _default() { |
| | | /* å®ä¹åé */ |
| | | const isNormal = (type: number) => type === 0; |
| | | const isScan = (type: number) => type === 1; |
| | | const isAssy = (type: number) => type === 2; |
| | |
| | | const isAudit = (type: number) => type === 4; |
| | | const isPrint = (type: number) => type === 5; |
| | | const isPackage = (type: number) => type === 6; |
| | | /** |
| | | * @description: 产åç»å®å·¥èºè·¯çº¿çä¸äºèªå®ä¹æ¹æ³ |
| | | * @return {*} |
| | | */ |
| | | const methods = { |
| | | /** |
| | | * @description: è·åæ 形徿 |
| | |
| | | data.fieldNames = { key: 'tid', title: 'name' }; |
| | | return data; |
| | | }, |
| | | /** |
| | | * @description: è·åé
置项表ååæ®µï¼æ ¹æ®æ å½¢èç¹typeä¸åèä¸å |
| | | * @param {string} type |
| | | * @return {*} |
| | | */ |
| | | GetCrudForm: (type: string) => { |
| | | let form: any[] = []; |
| | | let form: FormSchema[] = []; |
| | | switch (type) { |
| | | case 'Action': |
| | | form = [ |
| | | { |
| | | field: 'PROD_CODE', |
| | | label: '产åç¼ç ', |
| | | component: 'Input', |
| | | dynamicDisabled: ({ values }) => { |
| | | return true; |
| | | }, |
| | | colProps: { span: 12 }, |
| | | }, |
| | | { |
| | | field: 'ID', |
| | | label: 'ID', |
| | | component: 'Input', |
| | | show: false, |
| | | }, |
| | | { |
| | | field: 'ACT_ID', |
| | | label: 'ACT_ID', |
| | | component: 'Input', |
| | | show: false, |
| | | }, |
| | | { |
| | | field: 'ROT_ID', |
| | | label: 'ROT_ID', |
| | | component: 'Input', |
| | | show: false, |
| | | }, |
| | | { |
| | | field: 'ACT_CODE', |
| | | label: 'ACT_CODE', |
| | | component: 'Input', |
| | | show: false, |
| | | }, |
| | | { |
| | | field: 'NODE_ID', |
| | | label: 'NODE_ID', |
| | | component: 'Input', |
| | | show: false, |
| | | }, |
| | | { |
| | | field: 'CUST_CODE', |
| | | label: '客æ·ç¼ç ', |
| | | component: 'Input', |
| | | dynamicDisabled: ({ values }) => { |
| | | return true; |
| | | }, |
| | | colProps: { span: 12 }, |
| | | }, |
| | | { |
| | | field: 'ACT_TYPE', |
| | | label: 'è¡ä¸ºç±»å', |
| | | component: 'ApiSelect', |
| | | colProps: { span: 12 }, |
| | | defaultValue: 0, |
| | | componentProps: { |
| | | api: GetEnum, |
| | | params: { name: 'MES_PROD_ACTION+ACT_TYPEs' }, |
| | | resultField: 'Data', |
| | | labelField: unref(getLocale) == 'zh_CN' ? 'Desc' : 'Name', |
| | | valueField: 'Value', |
| | | // onChange: (e, v) => { |
| | | // alert(e) |
| | | // console.log('ApiSelect====>:', e, v); |
| | | // }, |
| | | }, |
| | | }, |
| | | { |
| | | field: 'IS_ACTIVE', |
| | | label: 'æ¯å¦å¯ç¨', |
| | | required: true, |
| | | component: 'Select', |
| | | colProps: { span: 12 }, |
| | | componentProps: { |
| | | options: [ |
| | | { |
| | | label: 'æ¯', |
| | | value: 'Y', |
| | | key: 'Y', |
| | | }, |
| | | { |
| | | label: 'å¦', |
| | | value: 'N', |
| | | key: 'N', |
| | | }, |
| | | ], |
| | | }, |
| | | }, |
| | | { |
| | | field: 'RULE_CODE', |
| | | label: 'æ«ç éªè¯', |
| | | component: 'Input', |
| | | colProps: { span: 10 }, |
| | | ifShow: ({ values }) => isScan(values.ACT_TYPE), |
| | | }, |
| | | { |
| | | field: '0', |
| | | label: '1', |
| | | defaultValue: '', |
| | | component: 'Input', |
| | | colProps: { span: 2, pull: 1 }, |
| | | ifShow: ({ values }) => isScan(values.ACT_TYPE), |
| | | colSlot: 'scanadd', |
| | | }, |
| | | { |
| | | field: 'ITEM_CODE', |
| | | label: 'ç»è£
䏿', |
| | | colProps: { span: 10 }, |
| | | component: 'Input', |
| | | ifShow: ({ values }) => isAssy(values.ACT_TYPE), |
| | | }, |
| | | { |
| | | field: '00', |
| | | label: '1', |
| | | defaultValue: '', |
| | | component: 'Input', |
| | | colProps: { span: 2, pull: 1 }, |
| | | ifShow: ({ values }) => isAssy(values.ACT_TYPE), |
| | | colSlot: 'assyadd', |
| | | }, |
| | | { |
| | | field: 'TEST_CODE', |
| | | label: 'äº§åæµè¯', |
| | | colProps: { span: 10 }, |
| | | component: 'Input', |
| | | ifShow: ({ values }) => isTest(values.ACT_TYPE), |
| | | }, |
| | | { |
| | | field: 'test0', |
| | | label: '1', |
| | | defaultValue: '', |
| | | component: 'Input', |
| | | colProps: { span: 2, pull: 1 }, |
| | | ifShow: ({ values }) => isTest(values.ACT_TYPE), |
| | | colSlot: 'testadd', |
| | | }, |
| | | { |
| | | field: 'SAPL_CODE', |
| | | label: 'äº§åæ½æ£', |
| | | colProps: { span: 10 }, |
| | | component: 'Input', |
| | | ifShow: ({ values }) => isAudit(values.ACT_TYPE), |
| | | }, |
| | | { |
| | | field: 'audit0', |
| | | label: '1', |
| | | defaultValue: '', |
| | | component: 'Input', |
| | | colProps: { span: 2, pull: 1 }, |
| | | ifShow: ({ values }) => isAudit(values.ACT_TYPE), |
| | | colSlot: 'auditadd', |
| | | }, |
| | | { |
| | | field: 'LABEL_CODE', |
| | | label: 'æ ç¾æå°', |
| | | colProps: { span: 10 }, |
| | | component: 'Input', |
| | | ifShow: ({ values }) => isPrint(values.ACT_TYPE), |
| | | }, |
| | | { |
| | | field: 'print0', |
| | | label: '1', |
| | | defaultValue: '', |
| | | component: 'Input', |
| | | colProps: { span: 2, pull: 1 }, |
| | | ifShow: ({ values }) => isPrint(values.ACT_TYPE), |
| | | colSlot: 'printadd', |
| | | }, |
| | | { |
| | | field: 'pkgRULE_CODE', |
| | | label: 'å
è£
è§å', |
| | | colProps: { span: 10 }, |
| | | component: 'Input', |
| | | ifShow: ({ values }) => isPackage(values.ACT_TYPE), |
| | | }, |
| | | { |
| | | field: 'pkg0', |
| | | label: '1', |
| | | defaultValue: '', |
| | | component: 'Input', |
| | | colProps: { span: 2, pull: 1 }, |
| | | ifShow: ({ values }) => isPackage(values.ACT_TYPE), |
| | | colSlot: 'pkgadd', |
| | | }, |
| | | { |
| | | field: 'REMARK', |
| | | label: '夿³¨', |
| | | component: 'Input', |
| | | colProps: { span: 12 }, |
| | | }, |
| | | ]; |
| | | form = actionFormShema; |
| | | break; |
| | | case 'Node': |
| | | form = [ |
| | | { |
| | | field: 'PROD_CODE', |
| | | label: '产åç¼ç ', |
| | | component: 'Input', |
| | | dynamicDisabled: ({ values }) => { |
| | | return true; |
| | | }, |
| | | colProps: { span: 12 }, |
| | | }, |
| | | { |
| | | field: 'ID', |
| | | label: 'ID', |
| | | component: 'Input', |
| | | show: false, |
| | | }, |
| | | { |
| | | field: 'ACT_ID', |
| | | label: 'ACT_ID', |
| | | component: 'Input', |
| | | show: false, |
| | | }, |
| | | { |
| | | field: 'ROT_ID', |
| | | label: 'ROT_ID', |
| | | component: 'Input', |
| | | show: false, |
| | | }, |
| | | { |
| | | field: 'NODE_ID', |
| | | label: 'NODE_ID', |
| | | component: 'Input', |
| | | show: false, |
| | | }, |
| | | { |
| | | field: 'NODE_NAME', |
| | | label: 'å·¥åºèç¹åç§°', |
| | | component: 'Input', |
| | | }, |
| | | { |
| | | field: 'CUST_CODE', |
| | | label: '客æ·ç¼ç ', |
| | | component: 'Input', |
| | | dynamicDisabled: ({ values }) => { |
| | | return true; |
| | | }, |
| | | colProps: { span: 12 }, |
| | | }, |
| | | { |
| | | field: 'OPER_CODE', |
| | | label: 'å·¥åºç¼ç ', |
| | | component: 'Input', |
| | | }, |
| | | { |
| | | field: 'IS_ACTIVE', |
| | | label: 'æ¯å¦å¯ç¨', |
| | | required: true, |
| | | component: 'Select', |
| | | colProps: { span: 12 }, |
| | | componentProps: { |
| | | options: [ |
| | | { |
| | | label: 'æ¯', |
| | | value: 'Y', |
| | | key: 'Y', |
| | | }, |
| | | { |
| | | label: 'å¦', |
| | | value: 'N', |
| | | key: 'N', |
| | | }, |
| | | ], |
| | | }, |
| | | }, |
| | | { |
| | | field: 'IS_CALC_FPY', |
| | | label: 'æ¯å¦è®¡ç®ç´éç', |
| | | required: true, |
| | | component: 'Select', |
| | | colProps: { span: 12 }, |
| | | componentProps: { |
| | | options: [ |
| | | { |
| | | label: 'æ¯', |
| | | value: 'Y', |
| | | key: 'Y', |
| | | }, |
| | | { |
| | | label: 'å¦', |
| | | value: 'N', |
| | | key: 'N', |
| | | }, |
| | | ], |
| | | }, |
| | | }, |
| | | { |
| | | field: 'CAN_SKIP', |
| | | label: 'æ¯å¦å
许跳ç«', |
| | | required: true, |
| | | component: 'Select', |
| | | colProps: { span: 12 }, |
| | | componentProps: { |
| | | options: [ |
| | | { |
| | | label: 'æ¯', |
| | | value: 'Y', |
| | | key: 'Y', |
| | | }, |
| | | { |
| | | label: 'å¦', |
| | | value: 'N', |
| | | key: 'N', |
| | | }, |
| | | ], |
| | | }, |
| | | }, |
| | | { |
| | | field: 'IS_INPUT', |
| | | label: 'æ¯å¦æå
¥ç«', |
| | | required: true, |
| | | component: 'Select', |
| | | colProps: { span: 12 }, |
| | | componentProps: { |
| | | options: [ |
| | | { |
| | | label: 'æ¯', |
| | | value: 'Y', |
| | | key: 'Y', |
| | | }, |
| | | { |
| | | label: 'å¦', |
| | | value: 'N', |
| | | key: 'N', |
| | | }, |
| | | ], |
| | | }, |
| | | }, |
| | | { |
| | | field: 'IS_OUTPUT', |
| | | label: 'æ¯å¦äº§åºç«', |
| | | required: true, |
| | | component: 'Select', |
| | | colProps: { span: 12 }, |
| | | componentProps: { |
| | | options: [ |
| | | { |
| | | label: 'æ¯', |
| | | value: 'Y', |
| | | key: 'Y', |
| | | }, |
| | | { |
| | | label: 'å¦', |
| | | value: 'N', |
| | | key: 'N', |
| | | }, |
| | | ], |
| | | }, |
| | | }, |
| | | { |
| | | field: 'REMARK', |
| | | label: '夿³¨', |
| | | component: 'Input', |
| | | colProps: { span: 12 }, |
| | | }, |
| | | ]; |
| | | form = nodeFormShema; |
| | | break; |
| | | } |
| | | return form; |
| | |
| | | GetCrudColSlots: () => { |
| | | return ['scanadd', 'assyadd', 'testadd', 'auditadd', 'printadd', 'pkgadd']; |
| | | }, |
| | | /** |
| | | * @description: 忢èç¹æ¶äºä»¶æ¹æ³ |
| | | * @return {*} |
| | | */ |
| | | nodeChange: (params: { |
| | | resetFields: any; |
| | | setFieldsValue: any; |
| | |
| | | for (i = 0; i < codes.length; i++) { |
| | | if (d.which == 'addRoute') { |
| | | RouteToProd({ rotId: codes[i], prodCode: args[1]['CODE'] }); |
| | | } else { |
| | | RouteToCust({ rotId: codes[i], prodCode: args[1]['CODE'], custCode: '' }); |
| | | } |
| | | } |
| | | |
| | |
| | | return { |
| | | addRoute: useModal(), |
| | | addCustomer: useModal(), |
| | | editRoute: useModal(), |
| | | }; |
| | | }, |
| | | /** |
| | |
| | | GetTitle: (type: string) => { |
| | | return { |
| | | configTitle: type == 'Action' ? 'è¡ä¸ºé
ç½®' : 'å·¥åºé
ç½®', |
| | | navTitle: 'æ·»å å·¥èºè·¯çº¿', |
| | | navTitle: type == 'Product' ? 'æ·»å å·¥èºè·¯çº¿' : 'å·¥èºè·¯çº¿ç»´æ¤', |
| | | }; |
| | | }, |
| | | /** |
| | | * @description: æ ¹æ®éä¸çæ èç¹å¤æè¦åæ¢åªä¸ªç»ä»¶ |
| | | * @description: æ ¹æ®éä¸çæ èç¹è¿å主页é¢ï¼èªå®ä¹æ¹æ³ï¼è¿éæ¯å¤æè¦åæ¢åªä¸ªç»ä»¶ |
| | | * @param {Ref} selectedNodes |
| | | * @return {*} |
| | | */ |
| | | SelectNode: (selectedNodes: Ref<any[]>) => { |
| | | let result = { showConfig: false, showNav: false, type: selectedNodes.value[0].type }; |
| | | let result = { |
| | | showConfig: false, |
| | | showNav: false, |
| | | type: selectedNodes.value[0].type, |
| | | nodes: selectedNodes.value, |
| | | }; |
| | | if (isNullOrUnDef(selectedNodes)) { |
| | | return result; |
| | | } |
| | | if (selectedNodes.value[0].type == 'Product') { |
| | | if (selectedNodes.value[0].type == 'Product' || selectedNodes.value[0].type == 'Route') { |
| | | result.showNav = true; |
| | | result.showConfig = false; |
| | | } |
| | |
| | | * @description: è·å导èªé¡¹ |
| | | * @return {*} |
| | | */ |
| | | GetNavItems: () => { |
| | | return [ |
| | | { |
| | | title: 'æ·»å 产åå·¥èºè·¯çº¿', |
| | | icon: 'add_green|svg', |
| | | color: '#1fdaca', |
| | | url: '/addRoute', |
| | | action: 'addRoute', |
| | | isStep: false, |
| | | }, |
| | | { |
| | | title: 'æ·»å 客æ·å·¥èºè·¯çº¿', |
| | | icon: 'add_customer|svg', |
| | | color: '#bf0c2c', |
| | | url: '/addCustomer', |
| | | action: 'addCustomer', |
| | | isStep: true, |
| | | }, |
| | | ] as NavItem[]; |
| | | GetNavItems: (type: string) => { |
| | | let item: NavItem[] = []; |
| | | switch (type) { |
| | | case 'Product': |
| | | item = [ |
| | | { |
| | | title: 'æ·»å 产åå·¥èºè·¯çº¿', |
| | | icon: 'add_green|svg', |
| | | color: '#1fdaca', |
| | | url: '/addRoute', |
| | | action: 'addRoute', |
| | | isStep: false, |
| | | }, |
| | | { |
| | | title: 'æ·»å 客æ·å·¥èºè·¯çº¿', |
| | | icon: 'add_customer|svg', |
| | | color: '#bf0c2c', |
| | | url: '/addCustomer', |
| | | action: 'addCustomer', |
| | | isStep: true, |
| | | }, |
| | | ]; |
| | | break; |
| | | case 'Route': |
| | | item = [ |
| | | { |
| | | title: 'ç¼è¾å·¥èºè·¯çº¿', |
| | | icon: 'clarity:note-edit-line', |
| | | color: '#1fdaca', |
| | | url: '/editRoute', |
| | | action: 'editRoute', |
| | | isStep: false, |
| | | }, |
| | | ]; |
| | | break; |
| | | } |
| | | return item; |
| | | }, |
| | | /** |
| | | * @description: 导èªé¡µé¢åæ¢æé®æ¶è°ç¨æ¹æ³ |
| | |
| | | */ |
| | | navChangeItem: (action: any, ...args) => { |
| | | switch (action) { |
| | | case 'editRoute': |
| | | break; |
| | | case 'addRoute': |
| | | args[0](true, { |
| | | title: 'å·¥èºè·¯çº¿å表', |
| | |
| | | break; |
| | | } |
| | | }, |
| | | /** |
| | | * @description: è·åå¡çå
é
ç½®å表ï¼ä»¥å¾ªç¯æ¾ç¤ºå¤ä¸ªå¡çå¹¶é
ç½®å¤ä¸ªææ§½ |
| | | * @return {*} |
| | | */ |
| | | GetBaseCards: (type: string) => { |
| | | let reusts: any[] = []; |
| | | switch (type) { |
| | | case 'Product': |
| | | reusts = []; |
| | | break; |
| | | case 'Route': |
| | | reusts = [ |
| | | { |
| | | name: 'RotInfo', |
| | | slots: [], |
| | | preIcons: {}, |
| | | title: 'å·¥èºè·¯çº¿å¾', |
| | | entityName: '', |
| | | }, |
| | | ]; |
| | | break; |
| | | } |
| | | return reusts; |
| | | }, |
| | | /** |
| | | * @description: è·åææ§½å表 |
| | | * @return {*} |
| | | */ |
| | | GetSlots: () => { |
| | | return ['RotInfo']; |
| | | }, |
| | | /** |
| | | * @description: çæhtml |
| | | * @return {*} |
| | | */ |
| | | GenerateHtml: (type: string | null) => { |
| | | const newElement = document.createElement('div'); |
| | | // newElement.textContent = 'New Element =>'+type; |
| | | // newElement.style.height = '250px'; |
| | | newElement.id = 'lfContainer'; |
| | | newElement.className = "h-full"; |
| | | // newElement.style.color = 'blue'; |
| | | // newElement.style.fontSize = '16px'; |
| | | return newElement; |
| | | }, |
| | | /** |
| | | * @description: èªå®ä¹æ¹æ³ |
| | | * @param {string} type |
| | | * @param {array} args |
| | | * @return {*} |
| | | */ |
| | | CustFunc: (type: string | undefined, ...args) => { |
| | | if (type == 'Route') { |
| | | initRoute(args[0], args[1]); |
| | | } |
| | | }, |
| | | }; |
| | | |
| | | /* 以䏿¯å
鍿¹æ³ï¼ä¸exportï¼ä¾ä¸é¢çæ¹æ³è°ç¨ */ |
| | | |
| | | /** |
| | | * @description: å¼¹åºéæ©æ¡-ç©æéæ©æ¡é
ç½® |
| | | * @return {*} |
| | | */ |
| | | const itemCodeModalCfg = { |
| | | title: 'ç©æå表', |
| | | schemas: [ |
| | |
| | | searchInfo: { TABLE_NAME: 'BAS_ITEM' }, |
| | | }; |
| | | |
| | | /** |
| | | * @description: å¼¹åºéæ©æ¡-è§åéæ©æ¡é
ç½® |
| | | * @return {*} |
| | | */ |
| | | const ruleModalCfg = { |
| | | title: 'è§åå表', |
| | | schemas: [ |
| | |
| | | searchInfo: { TABLE_NAME: 'BAS_CODE_RULE' }, |
| | | }; |
| | | |
| | | /** |
| | | * @description: å¼¹åºéæ©æ¡-æå°æ¨¡æ¿éæ©æ¡é
ç½® |
| | | * @return {*} |
| | | */ |
| | | const printModalCfg = { |
| | | title: 'æå°æ¨¡æ¿å表', |
| | | schemas: [ |
| | |
| | | searchInfo: { TABLE_NAME: 'BAS_PKG_RULE' }, |
| | | }; |
| | | |
| | | /** |
| | | * @description: è¡ä¸ºé
置表ååæ®µ |
| | | * @return {*} |
| | | */ |
| | | const actionFormShema: FormSchema[] = [ |
| | | { |
| | | field: 'PROD_CODE', |
| | | label: '产åç¼ç ', |
| | | component: 'Input', |
| | | dynamicDisabled: ({ values }) => { |
| | | return true; |
| | | }, |
| | | colProps: { span: 12 }, |
| | | }, |
| | | { |
| | | field: 'ID', |
| | | label: 'ID', |
| | | component: 'Input', |
| | | show: false, |
| | | }, |
| | | { |
| | | field: 'ACT_ID', |
| | | label: 'ACT_ID', |
| | | component: 'Input', |
| | | show: false, |
| | | }, |
| | | { |
| | | field: 'ROT_ID', |
| | | label: 'ROT_ID', |
| | | component: 'Input', |
| | | show: false, |
| | | }, |
| | | { |
| | | field: 'ACT_CODE', |
| | | label: 'ACT_CODE', |
| | | component: 'Input', |
| | | show: false, |
| | | }, |
| | | { |
| | | field: 'NODE_ID', |
| | | label: 'NODE_ID', |
| | | component: 'Input', |
| | | show: false, |
| | | }, |
| | | { |
| | | field: 'CUST_CODE', |
| | | label: '客æ·ç¼ç ', |
| | | component: 'Input', |
| | | dynamicDisabled: ({ values }) => { |
| | | return true; |
| | | }, |
| | | colProps: { span: 12 }, |
| | | }, |
| | | { |
| | | field: 'ACT_TYPE', |
| | | label: 'è¡ä¸ºç±»å', |
| | | component: 'ApiSelect', |
| | | colProps: { span: 12 }, |
| | | defaultValue: 0, |
| | | componentProps: { |
| | | api: GetEnum, |
| | | params: { name: 'MES_PROD_ACTION+ACT_TYPEs' }, |
| | | resultField: 'Data', |
| | | labelField: unref(getLocale) == 'zh_CN' ? 'Desc' : 'Name', |
| | | valueField: 'Value', |
| | | // onChange: (e, v) => { |
| | | // alert(e) |
| | | // console.log('ApiSelect====>:', e, v); |
| | | // }, |
| | | }, |
| | | }, |
| | | { |
| | | field: 'IS_ACTIVE', |
| | | label: 'æ¯å¦å¯ç¨', |
| | | required: true, |
| | | component: 'Select', |
| | | colProps: { span: 12 }, |
| | | componentProps: { |
| | | options: [ |
| | | { |
| | | label: 'æ¯', |
| | | value: 'Y', |
| | | key: 'Y', |
| | | }, |
| | | { |
| | | label: 'å¦', |
| | | value: 'N', |
| | | key: 'N', |
| | | }, |
| | | ], |
| | | }, |
| | | }, |
| | | { |
| | | field: 'RULE_CODE', |
| | | label: 'æ«ç éªè¯', |
| | | component: 'Input', |
| | | colProps: { span: 10 }, |
| | | ifShow: ({ values }) => isScan(values.ACT_TYPE), |
| | | }, |
| | | { |
| | | field: '0', |
| | | label: '1', |
| | | defaultValue: '', |
| | | component: 'Input', |
| | | colProps: { span: 2, pull: 1 }, |
| | | ifShow: ({ values }) => isScan(values.ACT_TYPE), |
| | | colSlot: 'scanadd', |
| | | }, |
| | | { |
| | | field: 'ITEM_CODE', |
| | | label: 'ç»è£
䏿', |
| | | colProps: { span: 10 }, |
| | | component: 'Input', |
| | | ifShow: ({ values }) => isAssy(values.ACT_TYPE), |
| | | }, |
| | | { |
| | | field: '00', |
| | | label: '1', |
| | | defaultValue: '', |
| | | component: 'Input', |
| | | colProps: { span: 2, pull: 1 }, |
| | | ifShow: ({ values }) => isAssy(values.ACT_TYPE), |
| | | colSlot: 'assyadd', |
| | | }, |
| | | { |
| | | field: 'TEST_CODE', |
| | | label: 'äº§åæµè¯', |
| | | colProps: { span: 10 }, |
| | | component: 'Input', |
| | | ifShow: ({ values }) => isTest(values.ACT_TYPE), |
| | | }, |
| | | { |
| | | field: 'test0', |
| | | label: '1', |
| | | defaultValue: '', |
| | | component: 'Input', |
| | | colProps: { span: 2, pull: 1 }, |
| | | ifShow: ({ values }) => isTest(values.ACT_TYPE), |
| | | colSlot: 'testadd', |
| | | }, |
| | | { |
| | | field: 'SAPL_CODE', |
| | | label: 'äº§åæ½æ£', |
| | | colProps: { span: 10 }, |
| | | component: 'Input', |
| | | ifShow: ({ values }) => isAudit(values.ACT_TYPE), |
| | | }, |
| | | { |
| | | field: 'audit0', |
| | | label: '1', |
| | | defaultValue: '', |
| | | component: 'Input', |
| | | colProps: { span: 2, pull: 1 }, |
| | | ifShow: ({ values }) => isAudit(values.ACT_TYPE), |
| | | colSlot: 'auditadd', |
| | | }, |
| | | { |
| | | field: 'LABEL_CODE', |
| | | label: 'æ ç¾æå°', |
| | | colProps: { span: 10 }, |
| | | component: 'Input', |
| | | ifShow: ({ values }) => isPrint(values.ACT_TYPE), |
| | | }, |
| | | { |
| | | field: 'print0', |
| | | label: '1', |
| | | defaultValue: '', |
| | | component: 'Input', |
| | | colProps: { span: 2, pull: 1 }, |
| | | ifShow: ({ values }) => isPrint(values.ACT_TYPE), |
| | | colSlot: 'printadd', |
| | | }, |
| | | { |
| | | field: 'pkgRULE_CODE', |
| | | label: 'å
è£
è§å', |
| | | colProps: { span: 10 }, |
| | | component: 'Input', |
| | | ifShow: ({ values }) => isPackage(values.ACT_TYPE), |
| | | }, |
| | | { |
| | | field: 'pkg0', |
| | | label: '1', |
| | | defaultValue: '', |
| | | component: 'Input', |
| | | colProps: { span: 2, pull: 1 }, |
| | | ifShow: ({ values }) => isPackage(values.ACT_TYPE), |
| | | colSlot: 'pkgadd', |
| | | }, |
| | | { |
| | | field: 'REMARK', |
| | | label: '夿³¨', |
| | | component: 'Input', |
| | | colProps: { span: 12 }, |
| | | }, |
| | | ]; |
| | | |
| | | /** |
| | | * @description: å·¥åºé
置表ååæ®µ |
| | | * @return {*} |
| | | */ |
| | | const nodeFormShema: FormSchema[] = [ |
| | | { |
| | | field: 'PROD_CODE', |
| | | label: '产åç¼ç ', |
| | | component: 'Input', |
| | | dynamicDisabled: ({ values }) => { |
| | | return true; |
| | | }, |
| | | colProps: { span: 12 }, |
| | | }, |
| | | { |
| | | field: 'ID', |
| | | label: 'ID', |
| | | component: 'Input', |
| | | show: false, |
| | | }, |
| | | { |
| | | field: 'ACT_ID', |
| | | label: 'ACT_ID', |
| | | component: 'Input', |
| | | show: false, |
| | | }, |
| | | { |
| | | field: 'ROT_ID', |
| | | label: 'ROT_ID', |
| | | component: 'Input', |
| | | show: false, |
| | | }, |
| | | { |
| | | field: 'NODE_ID', |
| | | label: 'NODE_ID', |
| | | component: 'Input', |
| | | show: false, |
| | | }, |
| | | { |
| | | field: 'NODE_NAME', |
| | | label: 'å·¥åºèç¹åç§°', |
| | | component: 'Input', |
| | | }, |
| | | { |
| | | field: 'CUST_CODE', |
| | | label: '客æ·ç¼ç ', |
| | | component: 'Input', |
| | | dynamicDisabled: ({ values }) => { |
| | | return true; |
| | | }, |
| | | colProps: { span: 12 }, |
| | | }, |
| | | { |
| | | field: 'OPER_CODE', |
| | | label: 'å·¥åºç¼ç ', |
| | | component: 'Input', |
| | | }, |
| | | { |
| | | field: 'IS_ACTIVE', |
| | | label: 'æ¯å¦å¯ç¨', |
| | | required: true, |
| | | component: 'Select', |
| | | colProps: { span: 12 }, |
| | | componentProps: { |
| | | options: [ |
| | | { |
| | | label: 'æ¯', |
| | | value: 'Y', |
| | | key: 'Y', |
| | | }, |
| | | { |
| | | label: 'å¦', |
| | | value: 'N', |
| | | key: 'N', |
| | | }, |
| | | ], |
| | | }, |
| | | }, |
| | | { |
| | | field: 'IS_CALC_FPY', |
| | | label: 'æ¯å¦è®¡ç®ç´éç', |
| | | required: true, |
| | | component: 'Select', |
| | | colProps: { span: 12 }, |
| | | componentProps: { |
| | | options: [ |
| | | { |
| | | label: 'æ¯', |
| | | value: 'Y', |
| | | key: 'Y', |
| | | }, |
| | | { |
| | | label: 'å¦', |
| | | value: 'N', |
| | | key: 'N', |
| | | }, |
| | | ], |
| | | }, |
| | | }, |
| | | { |
| | | field: 'CAN_SKIP', |
| | | label: 'æ¯å¦å
许跳ç«', |
| | | required: true, |
| | | component: 'Select', |
| | | colProps: { span: 12 }, |
| | | componentProps: { |
| | | options: [ |
| | | { |
| | | label: 'æ¯', |
| | | value: 'Y', |
| | | key: 'Y', |
| | | }, |
| | | { |
| | | label: 'å¦', |
| | | value: 'N', |
| | | key: 'N', |
| | | }, |
| | | ], |
| | | }, |
| | | }, |
| | | { |
| | | field: 'IS_INPUT', |
| | | label: 'æ¯å¦æå
¥ç«', |
| | | required: true, |
| | | component: 'Select', |
| | | colProps: { span: 12 }, |
| | | componentProps: { |
| | | options: [ |
| | | { |
| | | label: 'æ¯', |
| | | value: 'Y', |
| | | key: 'Y', |
| | | }, |
| | | { |
| | | label: 'å¦', |
| | | value: 'N', |
| | | key: 'N', |
| | | }, |
| | | ], |
| | | }, |
| | | }, |
| | | { |
| | | field: 'IS_OUTPUT', |
| | | label: 'æ¯å¦äº§åºç«', |
| | | required: true, |
| | | component: 'Select', |
| | | colProps: { span: 12 }, |
| | | componentProps: { |
| | | options: [ |
| | | { |
| | | label: 'æ¯', |
| | | value: 'Y', |
| | | key: 'Y', |
| | | }, |
| | | { |
| | | label: 'å¦', |
| | | value: 'N', |
| | | key: 'N', |
| | | }, |
| | | ], |
| | | }, |
| | | }, |
| | | { |
| | | field: 'REMARK', |
| | | label: '夿³¨', |
| | | component: 'Input', |
| | | colProps: { span: 12 }, |
| | | }, |
| | | ]; |
| | | |
| | | return [methods]; |
| | | } |
| | | |
| | |
| | | * @version: |
| | | * @Date: 2024-06-19 20:34:27 |
| | | * @LastEditors: Ben Lin |
| | | * @LastEditTime: 2024-06-26 03:07:40 |
| | | * @LastEditTime: 2024-06-28 10:57:44 |
| | | */ |
| | | |
| | | import { Ref, h, unref } from 'vue'; |
| | |
| | | fixed: undefined, |
| | | }; |
| | | |
| | | /** |
| | | * @description: ä¸äºèªå®ä¹æ¹æ³ |
| | | * @return {*} |
| | | */ |
| | | const methods = { |
| | | EditOperation: ( data: Ref<any[]>, d, u) => { |
| | | if (u.isUpdate) { |
| | |
| | | |
| | | const { t } = useI18n(); |
| | | function _default() { |
| | | /** |
| | | * @description: èªå®ä¹ç¼è¾æ¹æ³ |
| | | * @param {Fn} args |
| | | * @param {*} params |
| | | * @return {*} |
| | | */ |
| | | function insStdEdit(args: Fn[], params: {}) { |
| | | const param = { |
| | | CODE: params['record']['STD_CODE'], |
| | | ID: params['record']['ID'], |
| | | Name: 'QMS_INS_ITEM', //ä¸è¬æ¯æç»è¡¨å®ä½ |
| | | Title: `ç¼è¾æ£éªé¡¹ç®ï¼${params['record']['STD_CODE']}`, |
| | | pCode: 'TECH_STD', //跳转å°é«çº§è¡¨åçå
³é®å段å |
| | | mCode: 'STD_CODE', //跳转å°é«çº§è¡¨åçå
³é®åæ®µåæ å°å段 |
| | | IsID: false, |
| | | }; |
| | | args[5](`/QMS_INS_ITEM/High/${encodeURI(JSON.stringify(param))}`); |
| | | } |
| | | |
| | | const ActionColumn: BasicColumn = { |
| | | width: 100, |
| | | title: 'æä½', |
| | |
| | | fixed: 'right', |
| | | }; |
| | | |
| | | /** |
| | | * @description: ä¸äºèªå®æ¹æ³ |
| | | * @return {*} |
| | | */ |
| | | const methods = { |
| | | /** |
| | | * @description: è·åæ°å¢æé®çè¡ä¸º |
| | |
| | | * @param {*} d |
| | | * @param {*} u |
| | | * @return {*} |
| | | */ |
| | | */ |
| | | GetSelectSuccess: (d, u) => { |
| | | return { |
| | | ITEM_CODE: d.values['val'], |
| | |
| | | * @description: å¼¹åºéæ©æ¡æå¼æ¹æ³ |
| | | * @param {Fn} openItemModal |
| | | * @return {*} |
| | | */ |
| | | */ |
| | | OpenSelectItem: (openItemModal: Fn, ...args) => { |
| | | openItemModal(true, { |
| | | title: 'ç©æå表', |
| | |
| | | }, |
| | | }; |
| | | |
| | | /* 以䏿¯å
鍿¹æ³ï¼ä¸exportï¼ä¾ä¸é¢çæ¹æ³è°ç¨ */ |
| | | |
| | | /** |
| | | * @description: èªå®ä¹ç¼è¾æ¹æ³ |
| | | * @param {Fn} args |
| | | * @param {*} params |
| | | * @return {*} |
| | | */ |
| | | function insStdEdit(args: Fn[], params: {}) { |
| | | const param = { |
| | | CODE: params['record']['STD_CODE'], |
| | | ID: params['record']['ID'], |
| | | Name: 'QMS_INS_ITEM', //ä¸è¬æ¯æç»è¡¨å®ä½ |
| | | Title: `ç¼è¾æ£éªé¡¹ç®ï¼${params['record']['STD_CODE']}`, |
| | | pCode: 'TECH_STD', //跳转å°é«çº§è¡¨åçå
³é®å段å |
| | | mCode: 'STD_CODE', //跳转å°é«çº§è¡¨åçå
³é®åæ®µåæ å°å段 |
| | | IsID: false, |
| | | }; |
| | | args[5](`/QMS_INS_ITEM/High/${encodeURI(JSON.stringify(param))}`); |
| | | } |
| | | |
| | | return [methods, ActionColumn]; |
| | | } |
| | | |
| | |
| | | * @version: |
| | | * @Date: 2024-06-19 20:34:27 |
| | | * @LastEditors: Ben Lin |
| | | * @LastEditTime: 2024-06-25 18:37:56 |
| | | * @LastEditTime: 2024-06-28 10:58:43 |
| | | */ |
| | | |
| | | import { ActionItem, BasicColumn } from '/@/components/Table'; |
| | | |
| | | function _default() { |
| | | /** |
| | | * @description: 跳转产åå·¥èºç»å®é¡µé¢ |
| | | * @param {*} params |
| | | * @return {*} |
| | | */ |
| | | function handleBinding(go: Fn, params: Recordable<any>) { |
| | | const id = { |
| | | ID: params['record'].ID, |
| | | Name: 'ProdRouteBinding', |
| | | CODE: params['record'].ITEM_CODE, |
| | | Title: `产å[${params['record'].ITEM_CODE}]å·¥èºç»å®`, |
| | | colSlots: [], /* è¡¨æ ¼å
çæ¥è¯¢è¡¨ååæ®µçææ§½å表ï¼ä¸è¬ç¨äºå¼¹åºéæ©æ¡æé® */ |
| | | crudColSlots: [], /* å¢å æ¹è¡¨ååæ®µçææ§½å表ï¼ä¸è¬ç¨äºå¼¹åºéæ©æ¡æé® */ |
| | | dense: true, |
| | | pageTitle: `产åå·¥èºç»å®`, |
| | | pageContent: `è¿éæ¯ç®¡ç产åçå·¥èºç»å®ï¼ä¸ä¸ªäº§åå¯ä»¥ç»å®å¤ä¸ªå·¥èºè·¯çº¿`, |
| | | }; |
| | | go(`/ProdRouteBinding/CP/${encodeURI(JSON.stringify(id))}`); |
| | | // let obj = JSON.stringify(id); |
| | | // push({ |
| | | // path: '/ProdRouteBinding', |
| | | // state: {obj}, //HTML5 History API çä¼ åï¼åæ°éèä¸å¨å°åæ æ¾ç¤ºï¼historyï¼ |
| | | // }) |
| | | } |
| | | |
| | | const ActionColumn: BasicColumn = { |
| | | width: 80, |
| | | title: 'æä½', |
| | |
| | | fixed: undefined, |
| | | }; |
| | | |
| | | /** |
| | | * @description: ä¸äºèªå®ä¹æ¹æ³ |
| | | * @return {*} |
| | | */ |
| | | const methods = { |
| | | /** |
| | | * @description: è·åæ°å¢æé®çè¡ä¸º |
| | |
| | | }, |
| | | }; |
| | | |
| | | /* 以䏿¯å
鍿¹æ³ï¼ä¸exportï¼ä¾ä¸é¢çæ¹æ³è°ç¨ */ |
| | | |
| | | /** |
| | | * @description: 跳转产åå·¥èºç»å®é¡µé¢ |
| | | * @param {*} params |
| | | * @return {*} |
| | | */ |
| | | function handleBinding(go: Fn, params: Recordable<any>) { |
| | | const id = { |
| | | ID: params['record'].ID, |
| | | Name: 'ProdRouteBinding', |
| | | CODE: params['record'].ITEM_CODE, |
| | | Title: `产å[${params['record'].ITEM_CODE}]å·¥èºç»å®`, |
| | | colSlots: [] /* è¡¨æ ¼å
çæ¥è¯¢è¡¨ååæ®µçææ§½å表ï¼ä¸è¬ç¨äºå¼¹åºéæ©æ¡æé® */, |
| | | crudColSlots: [] /* å¢å æ¹è¡¨ååæ®µçææ§½å表ï¼ä¸è¬ç¨äºå¼¹åºéæ©æ¡æé® */, |
| | | dense: true, |
| | | pageTitle: `产åå·¥èºç»å®`, |
| | | pageContent: `è¿éæ¯ç®¡ç产åçå·¥èºç»å®ï¼ä¸ä¸ªäº§åå¯ä»¥ç»å®å¤ä¸ªå·¥èºè·¯çº¿`, |
| | | }; |
| | | go(`/ProdRouteBinding/CP/${encodeURI(JSON.stringify(id))}`); |
| | | // let obj = JSON.stringify(id); |
| | | // push({ |
| | | // path: '/ProdRouteBinding', |
| | | // state: {obj}, //HTML5 History API çä¼ åï¼åæ°éèä¸å¨å°åæ æ¾ç¤ºï¼historyï¼ |
| | | // }) |
| | | } |
| | | |
| | | return [methods, ActionColumn]; |
| | | } |
| | | |
| | |
| | | EditOperation(data, d, u) {}, |
| | | GetBaseColumns() {}, |
| | | GetSearchForm() {}, |
| | | GetCrudForm() {}, |
| | | GetCrudForm(type: string) {}, |
| | | OthersValues(val, id) {}, |
| | | } as EntityCustFunctionType, |
| | | ]); |