From 5a149d626ae8bc3fa4bddbb53f8caf40f51f6da6 Mon Sep 17 00:00:00 2001 From: zs <zhousong@weben-smart.com> Date: 周三, 04 6月 2025 17:42:13 +0800 Subject: [PATCH] Merge branch 'master' of http://222.71.245.114:9086/r/HIA24016N_PipeLineDemo --- PipeLineLems/pipelinelems_web/src/widgets/PipeAccessoryAssembly/Views/Pages/PipeAccessoryAssembly/PipeAccessoryAssembly.tsx | 657 ++++++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 442 insertions(+), 215 deletions(-) diff --git a/PipeLineLems/pipelinelems_web/src/widgets/PipeAccessoryAssembly/Views/Pages/PipeAccessoryAssembly/PipeAccessoryAssembly.tsx b/PipeLineLems/pipelinelems_web/src/widgets/PipeAccessoryAssembly/Views/Pages/PipeAccessoryAssembly/PipeAccessoryAssembly.tsx index 91441ff..595e58c 100644 --- a/PipeLineLems/pipelinelems_web/src/widgets/PipeAccessoryAssembly/Views/Pages/PipeAccessoryAssembly/PipeAccessoryAssembly.tsx +++ b/PipeLineLems/pipelinelems_web/src/widgets/PipeAccessoryAssembly/Views/Pages/PipeAccessoryAssembly/PipeAccessoryAssembly.tsx @@ -1,8 +1,13 @@ import { defineComponent, onMounted, ref } from 'vue' import type { Ref } from 'vue' import styles from './PipeAccessoryAssembly.module.scss' +import { usePipeAccessoryAssembly } from '../../../Controllers/PipeAccessoryAssembly' import pipeImage from '@/images/pipe-assembly-drawing-example.png' -import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox' +import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox' +import { columns } from './Config' +import TdButton from '@/components/TdButton/TdButton' +import BaseTable from '@/components/Table/Table' +import dayjs from 'dayjs' import { ElInput, ElForm, @@ -19,31 +24,67 @@ instock, findSingleWorkPlanByFilter, startProduction, - finishProduction + finishProduction, } from '@/widgets/PipeAccessoryAssembly/Models/Service/PipeAccessoryAssembly' import { Message } from '@element-plus/icons-vue/dist/types' +interface RenderTableType { + url?: string + dataSource: Ref<any[]> + isDrag?: boolean + isChecked?: boolean + isHidePagination?: boolean + params?: Record<string, any> + autoHeight?: boolean +} + export default defineComponent({ name: 'PipeAccessoryAssembly', - setup() { - // 鏌ヨ琛ㄥ崟鏁版嵁 -const queryForm = ref({ - pipeSpecCode: '', - processRouteNumber: '', - taskCode: '', - length: '', - projectNumber: '', - shipNumber: '', - material: '', - outerDiameter: '', - thickness: '', - plannedStartTime: '', - plannedEndTime: '', - workstationCode: '', - processName: '', - equipmentCode: '' -}) + setup(props, ctx) { + const { + dataSource, + contextMenu, + dialogConfig, + dialogConfigForQuery, + tableRef, + current, + search, + sort, + headers, + onError, + onSearch, + onRowClick, + // onConfirmWorkTask, + onCheck, + // onAddWorkTask, + onAdvancedQuery, + onExport, + openDetail, + onSuccess, + onBeforeUpload, + onSendFlangeCode, + onFinishSendFlangeCode + } = usePipeAccessoryAssembly(props, ctx) + // 鏌ヨ琛ㄥ崟鏁版嵁 + const queryForm = ref({ + pipeSpecCode: '', + processRouteNumber: '', + taskCode: '', + length: '', + projectNumber: '', + shipNumber: '', + material: '', + outerDiameter: '', + thickness: '', + plannedStartTime: '', + plannedEndTime: '', + workstationCode: '', + processName: '', + equipmentCode: '', + }) + + // 鏁版嵁婧� const modelOptions = ref<Array<{ value: string; label: string }>>([]) const placeNoOptions = ref<Array<{ value: string; label: string }>>([]) @@ -94,30 +135,33 @@ label: item.placeNoDesc, })) } - const handleChange =async (value) => { - console.log('杈撳叆鍐呭纭:', value); // 澶卞幓鐒︾偣鎴栧洖杞︽椂瑙﹀彂 - if(value==''){ - initQueryForm(); - return; + const handleChange = async (value) => { + console.log('杈撳叆鍐呭纭:', value) // 澶卞幓鐒︾偣鎴栧洖杞︽椂瑙﹀彂 + if (value == '') { + initQueryForm() + + return } // 鍦ㄦ澶勬坊鍔犱笟鍔¢�昏緫锛堝鏍¢獙銆佹彁浜ょ瓑锛� - const param={ - pipeSpecCode:value, - pipeSpecCode_FilterMode:2,//绮惧噯鏌ヨ - processName:'瑁呴厤宸ュ簭', - processName_FilterMode:2,//绮惧噯鏌ヨ + const param = { + pipeSpecCode: value, + pipeSpecCode_FilterMode: 2, //绮惧噯鏌ヨ + processName: '瑁呴厤宸ュ簭', + processName_FilterMode: 2, //绮惧噯鏌ヨ } - const workPlan = await findSingleWorkPlanByFilter(param); - console.log('杩斿洖:'+workPlan); - if(workPlan==''){ - ElMessage.error('娌℃湁鎵惧埌鏁版嵁'); - initQueryForm(); - }else{ - queryForm.value=workPlan; + const workPlan = await findSingleWorkPlanByFilter(param) + console.log('杩斿洖:' + workPlan) + if (workPlan == '') { + ElMessage.error('娌℃湁鎵惧埌鏁版嵁') + initQueryForm() + } else { + queryForm.value = workPlan + refreshProcessRoute(); } - }; - const initQueryForm=()=>{ - queryForm.value ={ pipeSpecCode: '', + } + const initQueryForm = () => { + queryForm.value = { + pipeSpecCode: '', processRouteNumber: '', taskCode: '', length: '', @@ -130,69 +174,226 @@ plannedEndTime: '', workstationCode: '', processName: '', - equipmentCode: ''} - } + equipmentCode: '', + } + dataSource.value=[] //娓呯┖琛ㄦ牸鏁版嵁 + } +//鎮ㄧ殑涓氬姟閫昏緫 +const paramForProcessRoute= { + processName: '娉曞叞鍐茬爜宸ュ簭', + ProcessName_FilterMode:2,//绮惧噯鏌ヨ + pipeSpecCode: 'XXX',//榛樿鍏堢粰涓笉瀛樺湪鐨勬暟鎹� + pipeSpecCode_FilterMode:2,//绮惧噯鏌ヨ +} + +let routeUrl=ref(""); + // 鍒锋柊宸ヨ壓淇℃伅 + const refreshProcessRoute = () => { + console.log('鎵ц 鍒锋柊宸ヨ壓淇℃伅') + if (queryForm.value.pipeSpecCode == '') { + ElMessage.error('璇疯緭鍏ョ娈电紪鐮�') + return + } + routeUrl.value="/api/v1/PipeLineLems/workTask/page"; + paramForProcessRoute.pipeSpecCode = queryForm.value.pipeSpecCode + tableRef.value.getList(paramForProcessRoute) + } + // 涓嬪彂娉曞叞鍐茬爜 + const sendFlangeCode = () => { + console.log('鎵ц 涓嬪彂娉曞叞鍐茬爜') + if (queryForm.value.pipeSpecCode == '') { + ElMessage.error('璇疯緭鍏ョ娈电紪鐮�') + return + } + onSendFlangeCode(); + } + // 瀹屽伐娉曞叞鍐茬爜 + const finishSendFlangeCode = () => { + console.log('鎵ц 瀹屽伐娉曞叞鍐茬爜') + if (queryForm.value.pipeSpecCode == '') { + ElMessage.error('璇疯緭鍏ョ娈电紪鐮�') + return + } + onFinishSendFlangeCode(); + } // 寮�宸ヤ簨浠跺鐞� const startWork = () => { - console.log('鎵ц寮�宸ユ搷浣�'); - if(queryForm.value.pipeSpecCode==''){ - ElMessage.error('璇疯緭鍏ョ娈电紪鐮�'); + console.log('鎵ц寮�宸ユ搷浣�') + if (queryForm.value.pipeSpecCode == '') { + ElMessage.error('璇疯緭鍏ョ娈电紪鐮�') return } - ConfirmBox( - `纭畾瑕佸皢绠℃缂栫爜${queryForm.value.pipeSpecCode}寮�宸ュ悧` - ).then(async () => { - //鎮ㄧ殑涓氬姟閫昏緫 - const param={ - taskCode:queryForm.value.taskCode, - }; - const ret = await startProduction(param); - console.log('杩斿洖:'+ret); - if(ret.code="200"){ - ElMessage.success('寮�宸ユ垚鍔�'); - }else{ - ElMessage.error('寮�宸ュけ璐�:'+ret.message); - } - }) - } + ConfirmBox(`纭畾瑕佸皢绠℃缂栫爜${queryForm.value.pipeSpecCode}寮�宸ュ悧`).then( + async () => { + //鎮ㄧ殑涓氬姟閫昏緫 + const param = { + taskCode: queryForm.value.taskCode, + } + const ret = await startProduction(param) + console.log('杩斿洖:' + ret) + if ((ret.code = '200')) { + ElMessage.success('寮�宸ユ垚鍔�') + } else { + ElMessage.error('寮�宸ュけ璐�:' + ret.message) + } + } + ) + } // 瀹屽伐浜嬩欢澶勭悊 const finishWork = () => { - console.log('鎵ц寮�宸ユ搷浣�'); - if(queryForm.value.pipeSpecCode==''){ - ElMessage.error('璇疯緭鍏ョ娈电紪鐮�'); + console.log('鎵ц寮�宸ユ搷浣�') + if (queryForm.value.pipeSpecCode == '') { + ElMessage.error('璇疯緭鍏ョ娈电紪鐮�') return } - ConfirmBox( - `纭畾瑕佸皢绠℃缂栫爜${queryForm.value.pipeSpecCode}瀹屽伐鍚梎 - ).then(async () => { - //鎮ㄧ殑涓氬姟閫昏緫 - const param={ - pipeSpecCode:queryForm.value.pipeSpecCode, - processName:queryForm.value.processName, - }; - const ret = await finishProduction(param); - console.log('杩斿洖:'+ret); - if(ret.code="200"){ - ElMessage.success('瀹屽伐鎴愬姛'); - }else{ - ElMessage.error('瀹屽伐澶辫触:'+ret.message); - } - }) + ConfirmBox(`纭畾瑕佸皢绠℃缂栫爜${queryForm.value.pipeSpecCode}瀹屽伐鍚梎).then( + async () => { + //鎮ㄧ殑涓氬姟閫昏緫 + const param = { + pipeSpecCode: queryForm.value.pipeSpecCode, + processName: queryForm.value.processName, + } + const ret = await finishProduction(param) + console.log('杩斿洖:' + ret) + if ((ret.code = '200')) { + ElMessage.success('瀹屽伐鎴愬姛') + } else { + ElMessage.error('瀹屽伐澶辫触:' + ret.message) + } + } + ) } - const tableData = ref([ - { sequence: 1, flangeA: 'RF-200-1.6MPa', flangeB: 'WN-200-1.6MPa' }, - { sequence: 2, flangeA: 'WN-250-2.5MPa', flangeB: 'SO-250-2.5MPa' }, - { sequence: 3, flangeA: 'PL-300-1.0MPa', flangeB: 'RF-300-1.0MPa' }, - { sequence: 4, flangeA: 'SO-150-2.0MPa', flangeB: 'WN-150-2.0MPa' }, - { sequence: 5, flangeA: 'RF-400-1.6MPa', flangeB: 'PL-400-1.6MPa' }, - { sequence: 6, flangeA: 'WN-200-4.0MPa', flangeB: 'SO-200-4.0MPa' }, - { sequence: 7, flangeA: 'SO-300-1.6MPa', flangeB: 'RF-300-1.6MPa' }, - { sequence: 8, flangeA: 'PL-250-1.0MPa', flangeB: 'WN-250-1.0MPa' }, - { sequence: 9, flangeA: 'RF-150-2.5MPa', flangeB: 'SO-150-2.5MPa' }, - { sequence: 10, flangeA: 'WN-400-2.0MPa', flangeB: 'PL-400-2.0MPa' } - ]); + /** + * @returns 琛ㄦ牸 + */ + const RenderBaseTable = (props: RenderTableType) => { + const { + url, + dataSource, + isDrag, + isChecked, + isHidePagination, + params, + autoHeight, + maxHeight, + } = props + + return ( + <div + class={{ + [styles.workTaskList]: true, + }} + > + <BaseTable + ref={tableRef} + url={url} + sortUrlTpl="/api/v1/PipeLineLems/workTask/{id}/adjustsort/{sort}" + v-model:dataSource={dataSource.value} + columns={columns} + contextMenu={contextMenu} + params={params} + isDrag={isDrag} + isChecked={isChecked} + autoHeight={autoHeight} + maxHeight={maxHeight} + onCheck={onCheck} + onRowClick={onRowClick} + isHidePagination={isHidePagination} + pageSize={20} + v-slots={{ + plannedStartTime: ({ row }: any) => { + return ( + <div> + {row.plannedStartTime != null + ? dayjs(row.plannedStartTime).format( + 'YYYY-MM-DD HH:mm:ss' + ) + : '-'} + </div> + ) + }, + plannedEndTime: ({ row }: any) => { + return ( + <div> + {row.plannedEndTime != null + ? dayjs(row.plannedEndTime).format('YYYY-MM-DD HH:mm:ss') + : '-'} + </div> + ) + }, + creationTime: ({ row }: any) => { + return ( + <div> + {row.creationTime != null + ? dayjs(row.creationTime).format('YYYY-MM-DD HH:mm:ss') + : '-'} + </div> + ) + }, + lastModificationTime: ({ row }: any) => { + return ( + <div> + {row.lastModificationTime != null + ? dayjs(row.lastModificationTime).format( + 'YYYY-MM-DD HH:mm:ss' + ) + : '-'} + </div> + ) + }, + isDeleted: ({ row }: any) => { + return ( + <div> + {row.isDeleted != null + ? row.isDeleted + ? '鏄�' + : '鍚�' + : '-'} + </div> + ) + }, + deletionTime: ({ row }: any) => { + return ( + <div> + {row.deletionTime != null + ? dayjs(row.deletionTime).format('YYYY-MM-DD HH:mm:ss') + : '-'} + </div> + ) + }, + isDisabled: ({ row }: any) => { + return ( + <div> + {row.isDisabled != null + ? row.isDisabled + ? '鏄�' + : '鍚�' + : '-'} + </div> + ) + }, + name: ({ row }: any) => { + return row?.name ? ( + <TdButton + onClick={() => openDetail(row)} + text={<span style="color:#5a84ff">璇︽儏</span>} + icon="scale" + tip={row?.name} + hover + > + {row?.name} + </TdButton> + ) : ( + '-' + ) + }, + }} + ></BaseTable> + </div> + ) + } return () => { return ( @@ -200,134 +401,137 @@ class={styles.PipeAccessoryAssemblyContent} style="overflow-y: auto !important; height: 100%;" > - <ElFormItem label="绠℃缂栫爜 "> - <ElInput - v-model={queryForm.value.pipeSpecCode} - clearable - class={styles.formInput} - onInput={handleChange} - /> - </ElFormItem> + <ElFormItem label="绠℃缂栫爜 "> + <ElInput + v-model={queryForm.value.pipeSpecCode} + clearable + class={styles.formInput} + onInput={handleChange} + /> + </ElFormItem> <div class={styles.actionButtons}> - <ElButton type="warning" onClick={startWork}>寮�宸�</ElButton> - <ElButton type="warning" onClick={finishWork}>瀹屽伐</ElButton> + <ElButton type="warning" onClick={startWork}> + 寮�宸� + </ElButton> + <ElButton type="warning" onClick={finishWork}> + 瀹屽伐 + </ElButton> {/* <ElButton type="warning">鏆傚仠</ElButton> <ElButton type="warning">鑷姩</ElButton> <ElButton type="warning">璐ㄦ</ElButton> */} </div> <h2 class={styles.blockTitle}>褰撳墠浠诲姟</h2> - <ElForm label-position="left" > - - <ElFormItem label="鐗╂枡娴佸悜 "> - <ElInput - v-model={queryForm.value.processRouteNumber} - disabled - clearable - class={styles.formInput} - /> - </ElFormItem> - <ElFormItem label="浠诲姟缂栧彿 "> - <ElInput - v-model={queryForm.value.taskCode} - disabled - clearable - class={styles.formInput} - /> - </ElFormItem> - <ElFormItem label="绠℃闀垮害 "> - <ElInput - v-model={queryForm.value.length} - disabled - clearable - class={styles.formInput} - /> - </ElFormItem> - <ElFormItem label="椤圭洰 鍙�"> - <ElInput - v-model={queryForm.value.projectNumber} - disabled - clearable - class={styles.formInput} - /> - </ElFormItem> - <ElFormItem label="鑸� 鍙�"> - <ElInput - v-model={queryForm.value.shipNumber} - disabled - clearable - class={styles.formInput} - /> - </ElFormItem> - <ElFormItem label="鏉� 璐�"> - <ElInput - v-model={queryForm.value.material} - disabled - clearable - class={styles.formInput} - /> - </ElFormItem> - <ElFormItem label="澶� 寰�"> - <ElInput - v-model={queryForm.value.outerDiameter} - disabled - clearable - class={styles.formInput} - /> - </ElFormItem> - <ElFormItem label="澹� 鍘�"> - <ElInput - v-model={queryForm.value.thickness} - disabled - clearable - class={styles.formInput} - /> - </ElFormItem> - <ElFormItem label="璁″垝寮�濮嬫椂闂�"> - <ElInput - v-model={queryForm.value.plannedStartTime} - disabled - clearable - class={styles.formInput} - /> - </ElFormItem> - <ElFormItem label="璁″垝瀹屾垚鏃堕棿"> - <ElInput - v-model={queryForm.value.plannedEndTime} - disabled - clearable - class={styles.formInput} - /> - </ElFormItem> - </ElForm> + <ElForm label-position="left"> + <ElFormItem label="鐗╂枡娴佸悜 "> + <ElInput + v-model={queryForm.value.processRouteNumber} + disabled + clearable + class={styles.formInput} + /> + </ElFormItem> + <ElFormItem label="浠诲姟缂栧彿 "> + <ElInput + v-model={queryForm.value.taskCode} + disabled + clearable + class={styles.formInput} + /> + </ElFormItem> + <ElFormItem label="绠℃闀垮害 "> + <ElInput + v-model={queryForm.value.length} + disabled + clearable + class={styles.formInput} + /> + </ElFormItem> + <ElFormItem label="椤圭洰 鍙�"> + <ElInput + v-model={queryForm.value.projectNumber} + disabled + clearable + class={styles.formInput} + /> + </ElFormItem> + <ElFormItem label="鑸� 鍙�"> + <ElInput + v-model={queryForm.value.shipNumber} + disabled + clearable + class={styles.formInput} + /> + </ElFormItem> + <ElFormItem label="鏉� 璐�"> + <ElInput + v-model={queryForm.value.material} + disabled + clearable + class={styles.formInput} + /> + </ElFormItem> + <ElFormItem label="澶� 寰�"> + <ElInput + v-model={queryForm.value.outerDiameter} + disabled + clearable + class={styles.formInput} + /> + </ElFormItem> + <ElFormItem label="澹� 鍘�"> + <ElInput + v-model={queryForm.value.thickness} + disabled + clearable + class={styles.formInput} + /> + </ElFormItem> + <ElFormItem label="璁″垝寮�濮嬫椂闂�"> + <ElInput + v-model={queryForm.value.plannedStartTime} + disabled + clearable + class={styles.formInput} + /> + </ElFormItem> + <ElFormItem label="璁″垝瀹屾垚鏃堕棿"> + <ElInput + v-model={queryForm.value.plannedEndTime} + disabled + clearable + class={styles.formInput} + /> + </ElFormItem> + </ElForm> - <h2 class={styles.blockTitle}>褰撳墠宸ヤ綅/璁惧淇℃伅</h2> - <ElForm label-position="left" > - <ElFormItem label="宸ヤ綅浠g爜 "> - <ElInput - v-model={queryForm.value.workstationCode} - disabled - clearable - class={styles.formInput} - /> - </ElFormItem> - <ElFormItem label="宸ュ簭鍚嶇О "> - <ElInput - v-model={queryForm.value.processName} - disabled - clearable - class={styles.formInput} - /> - </ElFormItem> - <ElFormItem label="璁惧浠g爜 "> - <ElInput - v-model={queryForm.value.equipmentCode} - disabled - clearable - class={styles.formInput} - /> - </ElFormItem> - {/* <ElFormItem label="璁惧鐘舵��"> + <h2 class={styles.blockTitle}>褰撳墠宸ヤ綅/璁惧淇℃伅</h2> + <ElForm label-position="left"> + <ElFormItem label="宸ヤ綅浠g爜 "> + <ElInput + v-model={queryForm.value.workstationCode} + disabled + clearable + class={styles.formInput} + /> + </ElFormItem> + <ElFormItem label="宸ュ簭鍚嶇О "> + <ElInput + v-model={queryForm.value.processName} + disabled + clearable + class={styles.formInput} + /> + </ElFormItem> + <ElFormItem label="璁惧浠g爜 "> + <ElInput + v-model={queryForm.value.equipmentCode} + disabled + clearable + class={styles.formInput} + /> + </ElFormItem> + {/* <ElFormItem label="璁惧鐘舵��"> <ElInput v-model={queryForm.value.materialBatch} disabled @@ -335,7 +539,7 @@ class={styles.formInput} /> </ElFormItem> */} - {/* <ElFormItem label="鎿嶄綔浜�"> + {/* <ElFormItem label="鎿嶄綔浜�"> <ElInput v-model={queryForm.value.materialBatch} disabled @@ -343,16 +547,39 @@ class={styles.formInput} /> </ElFormItem> */} - </ElForm> + </ElForm> {/* <div class="info-block"> <h2 class="block-title">宸ヨ壓淇℃伅</h2> - <el-table stripe v-model:dataSource={tableData}> + <el-table stripe :data={tableData}> <el-table-column prop="sequence" label="搴�"></el-table-column> <el-table-column prop="flangeA" label="娉曞叞A"></el-table-column> <el-table-column prop="flangeB" label="娉曞叞B"></el-table-column> </el-table> </div> */} + <div class="info-block"> + <h2 class="block-title">宸ヨ壓淇℃伅</h2> + <div class={styles.actionButtons} style="margin-bottom:5px;"> + <ElButton type="warning" onClick={refreshProcessRoute}> + 鍒锋柊 + </ElButton> + <ElButton type="warning" onClick={sendFlangeCode}> + 涓嬪彂娉曞叞鍐茬爜 + </ElButton> + <ElButton type="warning" onClick={finishSendFlangeCode}> + 瀹屽伐娉曞叞鍐茬爜 + </ElButton> + </div> + <RenderBaseTable + url={routeUrl.value} + dataSource={dataSource} + isChecked={true} + isDrag={true} + autoHeight={false} + maxHeight="500px" + params={paramForProcessRoute} + /> + </div> <h2 class="block-title">鍥剧焊</h2> <img src={pipeImage} -- Gitblit v1.9.3