| | |
| | | <template> |
| | | <PageWrapper title="工艺流程图" content="根据生产工艺设计工艺流程" contentFullHeight fixedHeight> |
| | | <FlowChart :data="demoData" /> |
| | | <a-layout style="min-height: 100vh"> |
| | | <a-layout-content> |
| | | <FlowChart :data="demoData" /> |
| | | </a-layout-content> |
| | | <a-layout-sider |
| | | width="450" |
| | | style="background: #fafafa; border-left: 1px solid #d9d9d9; padding: 20px" |
| | | ><BasicForm |
| | | autoFocusFirstItem |
| | | :labelWidth="80" |
| | | :schemas="schemas" |
| | | :actionColOptions="{ span: 24 }" |
| | | :submitButtonOptions="{ text: '确定' }" |
| | | @submit="handleSubmit" |
| | | @reset="handleReset" |
| | | /></a-layout-sider> |
| | | </a-layout> |
| | | </PageWrapper> |
| | | </template> |
| | | |
| | | <script lang="ts"> |
| | | <script lang="ts" setup> |
| | | import { FlowChart } from '/@/components/FlowChart'; |
| | | import { PageWrapper } from '/@/components/Page'; |
| | | import { BasicForm, FormSchema } from '/@/components/Form/index'; |
| | | import { getOperAllList } from '/@/api/tigerapi/mes/oper'; |
| | | import { ref } from 'vue'; |
| | | |
| | | export default { |
| | | components: { FlowChart, PageWrapper }, |
| | | setup() { |
| | | let demoData = { |
| | | nodes: [ |
| | | { |
| | | id: '5d82e943-477f-4313-aaff-a736d8caba74', |
| | | type: 'rect', |
| | | x: 340, |
| | | y: 120, |
| | | properties: {}, |
| | | text: { |
| | | x: 340, |
| | | y: 120, |
| | | value: '测试工序', |
| | | }, |
| | | }, |
| | | { |
| | | id: '6e0c6714-69a7-4160-8bda-61f4e6d285dd', |
| | | type: 'rect', |
| | | x: 560, |
| | | y: 120, |
| | | properties: {}, |
| | | text: { |
| | | x: 560, |
| | | y: 120, |
| | | value: '上料工序', |
| | | }, |
| | | }, |
| | | { |
| | | id: '80b2ee17-5a0e-4586-ba28-6ba59fcc0f59', |
| | | type: 'rect', |
| | | x: 340, |
| | | y: 280, |
| | | properties: { |
| | | isReturn: true, |
| | | }, |
| | | text: { |
| | | x: 340, |
| | | y: 280, |
| | | value: '维修工序', |
| | | }, |
| | | }, |
| | | const isRuter = (type: string) => type === '0'; |
| | | const isOper = (type: string) => type === '1'; |
| | | const schemas: FormSchema[] = [ |
| | | // { |
| | | // field: 'divider-basic', |
| | | // component: 'Divider', |
| | | // label: '属性页', |
| | | // }, |
| | | { |
| | | field: 'func_type', |
| | | label: '属性页', |
| | | component: 'RadioButtonGroup', |
| | | defaultValue: '0', |
| | | componentProps: { |
| | | options: [ |
| | | { label: '工艺流程', value: '0' }, |
| | | { label: '工序', value: '1' }, |
| | | ], |
| | | edges: [ |
| | | { |
| | | id: 'Flow_0p4u47c', |
| | | type: 'bpmn:sequenceFlow', |
| | | sourceNodeId: '5d82e943-477f-4313-aaff-a736d8caba74', |
| | | targetNodeId: '6e0c6714-69a7-4160-8bda-61f4e6d285dd', |
| | | startPoint: { |
| | | x: 390, |
| | | y: 120, |
| | | }, |
| | | endPoint: { |
| | | x: 510, |
| | | y: 120, |
| | | }, |
| | | properties: {}, |
| | | pointsList: [ |
| | | { |
| | | x: 390, |
| | | y: 120, |
| | | }, |
| | | { |
| | | x: 510, |
| | | y: 120, |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | id: 'Flow_09tu4cm', |
| | | type: 'bpmn:sequenceFlow', |
| | | sourceNodeId: '5d82e943-477f-4313-aaff-a736d8caba74', |
| | | targetNodeId: '80b2ee17-5a0e-4586-ba28-6ba59fcc0f59', |
| | | startPoint: { |
| | | x: 340, |
| | | y: 160, |
| | | }, |
| | | endPoint: { |
| | | x: 340, |
| | | y: 240, |
| | | }, |
| | | properties: {}, |
| | | pointsList: [ |
| | | { |
| | | x: 340, |
| | | y: 160, |
| | | }, |
| | | { |
| | | x: 340, |
| | | y: 240, |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | id: '22226ec4-9960-497d-93cb-6226a3f29b3d', |
| | | type: 'custom-edge', |
| | | sourceNodeId: '80b2ee17-5a0e-4586-ba28-6ba59fcc0f59', |
| | | targetNodeId: '5d82e943-477f-4313-aaff-a736d8caba74', |
| | | startPoint: { |
| | | x: 351, |
| | | y: 240, |
| | | }, |
| | | endPoint: { |
| | | x: 351, |
| | | y: 160, |
| | | }, |
| | | properties: {}, |
| | | pointsList: [ |
| | | { |
| | | x: 351, |
| | | y: 240, |
| | | }, |
| | | { |
| | | x: 351, |
| | | y: 160, |
| | | }, |
| | | ], |
| | | }, |
| | | ], |
| | | }; |
| | | return { |
| | | demoData, |
| | | }; |
| | | }, |
| | | colProps: { lg: 24, md: 24 }, |
| | | }, |
| | | }; |
| | | { |
| | | field: 'OPER_CODE', |
| | | component: 'ApiSelect', |
| | | label: '选择工序', |
| | | componentProps: { |
| | | api: getOperAllList, |
| | | // params: { |
| | | // id: 1, |
| | | // }, |
| | | resultField: 'items', |
| | | labelField: 'OPER_NAME', |
| | | valueField: 'OPER_CODE', |
| | | // not request untill to select |
| | | immediate: false, |
| | | onChange: (e) => { |
| | | console.log('selected:', e); |
| | | }, |
| | | // atfer request callback |
| | | onOptionsChange: (options) => { |
| | | console.log('get options', options.length, options); |
| | | }, |
| | | }, |
| | | ifShow: ({ values }) => isOper(values.func_type), |
| | | }, |
| | | { |
| | | field: 'field2', |
| | | component: 'Input', |
| | | label: '工序类型', |
| | | // componentProps:{}, |
| | | // can func |
| | | componentProps: ({ schema, formModel }) => { |
| | | console.log('form:', schema); |
| | | console.log('formModel:', formModel); |
| | | return { |
| | | placeholder: '测试', |
| | | onChange: (e: any) => { |
| | | console.log(e); |
| | | }, |
| | | }; |
| | | }, |
| | | renderComponentContent: () => { |
| | | return { |
| | | prefix: () => '工序', |
| | | suffix: () => '类型', |
| | | }; |
| | | }, |
| | | }, |
| | | { |
| | | field: 'field3', |
| | | component: 'Select', |
| | | label: '工序行为', |
| | | componentProps: { |
| | | options: [ |
| | | { |
| | | label: '存储过程', |
| | | value: '1', |
| | | key: '1', |
| | | }, |
| | | { |
| | | label: '条码规则', |
| | | value: '2', |
| | | key: '2', |
| | | }, |
| | | { |
| | | label: '行为一', |
| | | value: '3', |
| | | key: '3', |
| | | }, |
| | | { |
| | | label: '行为二', |
| | | value: '4', |
| | | key: '4', |
| | | }, |
| | | { |
| | | label: '行为三', |
| | | value: '5', |
| | | key: '5', |
| | | }, |
| | | ], |
| | | }, |
| | | }, |
| | | { |
| | | field: 'field4', |
| | | component: 'Switch', |
| | | label: '是否计算直通率', |
| | | colProps: { |
| | | span: 16, |
| | | }, |
| | | labelWidth: 200, |
| | | }, |
| | | { |
| | | field: 'field5', |
| | | component: 'Switch', |
| | | label: '是否可跳站', |
| | | colProps: { |
| | | span: 16, |
| | | }, |
| | | labelWidth: 200, |
| | | }, |
| | | ]; |
| | | const demoData = ref({ |
| | | nodes: [ |
| | | { |
| | | id: '5d82e943-477f-4313-aaff-a736d8caba74', |
| | | type: 'rect', |
| | | x: 340, |
| | | y: 120, |
| | | properties: {}, |
| | | text: { |
| | | x: 340, |
| | | y: 120, |
| | | value: '测试工序', |
| | | }, |
| | | }, |
| | | { |
| | | id: '6e0c6714-69a7-4160-8bda-61f4e6d285dd', |
| | | type: 'rect', |
| | | x: 560, |
| | | y: 120, |
| | | properties: {}, |
| | | text: { |
| | | x: 560, |
| | | y: 120, |
| | | value: '上料工序', |
| | | }, |
| | | }, |
| | | { |
| | | id: '80b2ee17-5a0e-4586-ba28-6ba59fcc0f59', |
| | | type: 'rect', |
| | | x: 340, |
| | | y: 280, |
| | | properties: { |
| | | isReturn: true, |
| | | }, |
| | | text: { |
| | | x: 340, |
| | | y: 280, |
| | | value: '维修工序', |
| | | }, |
| | | }, |
| | | ], |
| | | edges: [ |
| | | { |
| | | id: 'Flow_0p4u47c', |
| | | type: 'bpmn:sequenceFlow', |
| | | sourceNodeId: '5d82e943-477f-4313-aaff-a736d8caba74', |
| | | targetNodeId: '6e0c6714-69a7-4160-8bda-61f4e6d285dd', |
| | | startPoint: { |
| | | x: 390, |
| | | y: 120, |
| | | }, |
| | | endPoint: { |
| | | x: 510, |
| | | y: 120, |
| | | }, |
| | | properties: {}, |
| | | pointsList: [ |
| | | { |
| | | x: 390, |
| | | y: 120, |
| | | }, |
| | | { |
| | | x: 510, |
| | | y: 120, |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | id: 'Flow_09tu4cm', |
| | | type: 'bpmn:sequenceFlow', |
| | | sourceNodeId: '5d82e943-477f-4313-aaff-a736d8caba74', |
| | | targetNodeId: '80b2ee17-5a0e-4586-ba28-6ba59fcc0f59', |
| | | startPoint: { |
| | | x: 340, |
| | | y: 160, |
| | | }, |
| | | endPoint: { |
| | | x: 340, |
| | | y: 240, |
| | | }, |
| | | properties: {}, |
| | | pointsList: [ |
| | | { |
| | | x: 340, |
| | | y: 160, |
| | | }, |
| | | { |
| | | x: 340, |
| | | y: 240, |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | id: '22226ec4-9960-497d-93cb-6226a3f29b3d', |
| | | type: 'custom-edge', |
| | | sourceNodeId: '80b2ee17-5a0e-4586-ba28-6ba59fcc0f59', |
| | | targetNodeId: '5d82e943-477f-4313-aaff-a736d8caba74', |
| | | startPoint: { |
| | | x: 351, |
| | | y: 240, |
| | | }, |
| | | endPoint: { |
| | | x: 351, |
| | | y: 160, |
| | | }, |
| | | properties: {}, |
| | | pointsList: [ |
| | | { |
| | | x: 351, |
| | | y: 240, |
| | | }, |
| | | { |
| | | x: 351, |
| | | y: 160, |
| | | }, |
| | | ], |
| | | }, |
| | | ], |
| | | }); |
| | | function handleReset() {} |
| | | function handleSubmit(_values: any) {} |
| | | </script> |