From bece33cb749abdb8dae0d68c21ed30f6e1edf8ca Mon Sep 17 00:00:00 2001 From: lyh <925863403@qq.com> Date: 星期二, 17 六月 2025 13:37:14 +0800 Subject: [PATCH] 修改确认表与刀具清单展示 新增程序确认表前端流程展示 --- src/views/dnc/base/modules/ProductStructure/GuideCardBatch/GuideCardBatchList.vue | 43 +++ src/views/dnc/base/modules/ProductStructure/GuideCardBatch/GuideCardPrintModal.vue | 34 +- src/views/dnc/base/modules/ProductStructure/GuideCardBatch/KnifeListPrintModal.vue | 158 +++---------- src/views/flowable/workflow/FlowTodo.vue | 19 + src/views/flowable/workflow/guideCardBatch/GuideCardBatchHandle.vue | 408 ++++++++++++++++++++++++++++++++++ 5 files changed, 522 insertions(+), 140 deletions(-) diff --git a/src/views/dnc/base/modules/ProductStructure/GuideCardBatch/GuideCardBatchList.vue b/src/views/dnc/base/modules/ProductStructure/GuideCardBatch/GuideCardBatchList.vue index 3b539f6..13c7147 100644 --- a/src/views/dnc/base/modules/ProductStructure/GuideCardBatch/GuideCardBatchList.vue +++ b/src/views/dnc/base/modules/ProductStructure/GuideCardBatch/GuideCardBatchList.vue @@ -79,9 +79,9 @@ <a-divider type="vertical" /> - <a @click="handleDetail(record)">鍙戣捣娴佺▼</a> + <a v-if="record.flowStatus === '1'" @click="handleStartFlow(record)">鍙戣捣娴佺▼</a> - <a-divider type="vertical" /> + <a-divider v-if="record.flowStatus === '1'" type="vertical" /> <a @click="handleDetail(record)">璇︽儏</a> @@ -184,6 +184,7 @@ deleteBatch: "/dnc/guideCardBatch/deleteBatch", exportXlsUrl: "/dnc/guideCardBatch/exportXls", importExcelUrl: "dnc/guideCardBatch/importExcel", + startGuideCardBatch: "/dnc/guideCardBatch/startGuideCardBatch" }, dictOptions:{}, @@ -292,6 +293,44 @@ handleOpenPrintKnifeListModal(record){ this.$refs.knifeListPrintModal.visible = true this.$refs.knifeListPrintModal.detail = Object.assign({},record) + this.$refs.knifeListPrintModal.handleCutter(record.docId) + }, + + handleStartFlow(record){ + const that = this + that.$confirm({ + this: '鎻愮ず', + content: `纭鍙戣捣纭娴佺▼鍚楋紵`, + okText: '纭', + cancelText: '鍙栨秷', + onOk: () => { + getAction(this.url.startGuideCardBatch,{id:record.id}).then(res => { + if (res.success) { + that.$notification.success({ + message: '娑堟伅', + description: res.message + }) + } else { + that.$notification.error({ + message: '娑堟伅', + description: res.message + }) + } + }) + .catch(err => { + that.$notification.error({ + message: '娑堟伅', + description: err.message + }) + }) + .finally(() => { + that.$destroyAll() + }) + }, + onCancel: () => { + that.$destroyAll() + } + }) } } } diff --git a/src/views/dnc/base/modules/ProductStructure/GuideCardBatch/GuideCardPrintModal.vue b/src/views/dnc/base/modules/ProductStructure/GuideCardBatch/GuideCardPrintModal.vue index ca84eb8..3296f46 100644 --- a/src/views/dnc/base/modules/ProductStructure/GuideCardBatch/GuideCardPrintModal.vue +++ b/src/views/dnc/base/modules/ProductStructure/GuideCardBatch/GuideCardPrintModal.vue @@ -5,40 +5,40 @@ <div class="table-header"> <h3>鏁版帶鍔犲伐绋嬪簭纭琛�</h3> <div> - <div>鍗曚綅锛�<span>鏈哄姞涓績</span></div> - <div>缂栧彿锛�<span>25-C140-PST-293</span></div> + <div>鍗曚綅锛�<span>{{detail.unit}}</span></div> + <div>缂栧彿锛�<span>{{detail.serialNumber}}</span></div> </div> </div> <table border="1"> <tr> <th colspan="2">绋嬪簭鏂囦欢鍚�</th> - <td colspan="9">TY9F-11-2507-002-TY9F1W0130-30-3</td> + <td colspan="9">{{detail.docName}}</td> </tr> <tr> <th colspan="2">闆朵欢鍥惧彿</th> - <td colspan="4">TY9F-11-2507-002-TY9F1W0130</td> + <td colspan="4">{{detail.partsCode}}</td> <th>闆朵欢鍚嶇О</th> - <td colspan="4">杞帴澶�</td> + <td colspan="4">{{detail.partsName}}</td> </tr> <tr> <th colspan="2">闆朵欢鏉愭枡</th> - <td colspan="4">閽㈡</td> + <td colspan="4">{{detail.materielDesp}}</td> <th>澶瑰叿</th> <td colspan="4">{{detail.fixtureInformation}}</td> </tr> <tr> <th colspan="2">宸ュ簭锛堝伐姝ュ彿锛�</th> - <td colspan="2">30-3</td> + <td colspan="2">{{detail.processWorkCode}}</td> <th>鍔犲伐鎵规</th> - <td>S2501</td> + <td>{{detail.processingBatch}}</td> <th>鍔犲伐鏁伴噺</th> - <td colspan="2">20</td> + <td colspan="2">{{detail.processingQuantity}}</td> <th>鍔犲伐璁惧</th> - <td>3140123</td> + <td>{{detail.processingEquipment}}</td> </tr> <tr style="height: 500px"> @@ -53,18 +53,18 @@ </tr> <tr> - <th colspan="2">缂栧啓鏃ユ湡</th> - <td colspan="2">寮犱笁/2025-4-16</td> - <th>鍔犲伐鎵规</th> - <td colspan="2">鏉庡洓/2025-4-18</td> + <th colspan="2">缂栧啓/鏃ユ湡</th> + <td colspan="2">{{detail.compiler_dictText}}/{{detail.compilerTime}}</td> + <th>鏍″/鏃ユ湡</th> + <td colspan="2">{{detail.proofreader_dictText}}/{{detail.proofreaderTime}}</td> <th colspan="2">鎿嶄綔鑰�/棣栨鏃ユ湡</th> - <td colspan="2">璧典簲/2025-4-18</td> + <td colspan="2">{{detail.operator_dictText}}/{{detail.inspectionTime}}</td> </tr> <tr style="height: 70px"> - <th colspan="7">鏍规嵁棣栦欢妫�楠屾儏鍐碉紝鍚屾剰璇ョ▼搴忕敤浜庢湰鎵规鐢熶骇锛�</th> + <th colspan="7">{{detail.inspectionOpinion}}</th> <th colspan="2">瀹℃壒/鏃ユ湡</th> - <td colspan="2">鐜嬪叚/2025-4-20</td> + <td colspan="2">{{detail.approver_dictText}}/{{detail.approverTime}}</td> </tr> </table> </div> diff --git a/src/views/dnc/base/modules/ProductStructure/GuideCardBatch/KnifeListPrintModal.vue b/src/views/dnc/base/modules/ProductStructure/GuideCardBatch/KnifeListPrintModal.vue index 173cc7f..5890c50 100644 --- a/src/views/dnc/base/modules/ProductStructure/GuideCardBatch/KnifeListPrintModal.vue +++ b/src/views/dnc/base/modules/ProductStructure/GuideCardBatch/KnifeListPrintModal.vue @@ -5,60 +5,60 @@ <div class="table-header"> <h3>鍒�鍏锋竻鍗�</h3> <div> - <div>鍗曚綅锛�<span>鏈哄姞涓績</span></div> - <div>缂栧彿锛�<span>25-C140-PST-293</span></div> + <div>鍗曚綅锛�<span>{{detail.unit}}</span></div> + <div>缂栧彿锛�<span>{{detail.serialNumber}}</span></div> </div> </div> <table border="1"> <tr> <th colspan="2">绋嬪簭澶栭儴鏂囦欢鍚�</th> - <td colspan="9">TY9F-11-2507-002-TY9F1W0130-30-3</td> + <td colspan="9">{{detail.docName}}</td> </tr> <tr> <th colspan="2">闆朵欢鍥惧彿</th> - <td colspan="5">TY9F-11-2507-002-TY9F1W0130</td> + <td colspan="5">{{detail.partsCode}}</td> <th>闆朵欢鍚嶇О</th> - <td colspan="3">杞帴澶�</td> + <td colspan="3">{{detail.partsName}}</td> </tr> <tr> <th colspan="2">闆朵欢鏉愭枡</th> - <td colspan="3">閽㈡</td> + <td colspan="3">{{detail.materielDesp}}</td> <th colspan="2">澶瑰叿</th> <td colspan="4">{{detail.fixtureInformation}}</td> </tr> <tr> <th colspan="2">宸ュ簭锛堝伐姝ュ彿锛�</th> - <td>30-3</td> + <td>{{detail.processWorkCode}}</td> <th colspan="2">鍔犲伐鎵规</th> - <td colspan="2">S2501</td> + <td colspan="2">{{detail.processingBatch}}</td> <th>鍔犲伐鏁伴噺</th> - <td>20</td> + <td>{{detail.processingQuantity}}</td> <th>鍔犲伐璁惧</th> - <td>3140123</td> + <td>{{detail.processingEquipment}}</td> </tr> <tr> - <th colspan="2">鍒�浣嶅彿</th> - <th>鍒�鍏锋弿杩�</th> - <th colspan="2">鏈�鐭伐浣滈暱搴�</th> <th colspan="2">鍒�鍏风紪鍙�</th> - <th>瑙勬牸</th> - <th>搴撲綅</th> - <th colspan="2">澶囨敞</th> + <th>鍒�鍏峰悕绉�</th> + <th colspan="2">鍒�鍏风畝绉�</th> + <th colspan="2">鍒�鍏疯鏍�</th> + <th>鍒�浣�</th> + <th>鍒�鍏锋暟閲�</th> + <th colspan="2">鎻忚堪</th> </tr> <tr v-for="item in knifeList" :key="item.knifeId"> - <td colspan="2">{{item.knifeNo}}</td> - <td>{{item.knifeDescription}}</td> - <td colspan="2">{{item.minWorkLength}}</td> - <td colspan="2">{{item.knifeId}}</td> - <td>{{item.spec}}</td> - <td>{{item.position}}</td> - <td colspan="2">{{item.remark}}</td> + <td colspan="2">{{item.cutterCode}}</td> + <td>{{item.cutterName}}</td> + <td colspan="2">{{item.cutterType}}</td> + <td colspan="2">{{item.cutterSpec}}</td> + <td>{{item.cutterSpacing}}</td> + <td>{{item.quantity}}</td> + <td colspan="2">{{item.description}}</td> </tr> </table> </div> @@ -70,114 +70,32 @@ </template> <script> + import { getAction } from '@api/manage' + export default { name: 'KnifeListPrintModal', data() { return { visible: false, detail: {}, - knifeList: [ - { - knifeNo: '1', - knifeDescription: '8E', - minWorkLength: '35', - knifeId: 'Q20110211', - spec: '', - position: '05070201', - remark: '' - }, - { - knifeNo: '2', - knifeDescription: '6E', - minWorkLength: '35', - knifeId: 'Q20110212', - spec: '', - position: '05070202', - remark: '' - }, - { - knifeNo: '5', - knifeDescription: '6R', - minWorkLength: '20', - knifeId: 'Q20110213', - spec: '', - position: '05070203', - remark: '' - }, - { - knifeNo: '1', - knifeDescription: '8E', - minWorkLength: '35', - knifeId: 'Q20110214', - spec: '', - position: '05070201', - remark: '' - }, - { - knifeNo: '2', - knifeDescription: '6E', - minWorkLength: '35', - knifeId: 'Q20110215', - spec: '', - position: '05070202', - remark: '' - }, - { - knifeNo: '5', - knifeDescription: '6R', - minWorkLength: '20', - knifeId: 'Q20110216', - spec: '', - position: '05070203', - remark: '' - }, - { - knifeNo: '1', - knifeDescription: '8E', - minWorkLength: '35', - knifeId: 'Q20110217', - spec: '', - position: '05070201', - remark: '' - }, - { - knifeNo: '2', - knifeDescription: '6E', - minWorkLength: '35', - knifeId: 'Q20110218', - spec: '', - position: '05070202', - remark: '' - }, - { - knifeNo: '5', - knifeDescription: '6R', - minWorkLength: '20', - knifeId: 'Q20110219', - spec: '', - position: '05070203', - remark: '' - }, - { - knifeNo: '1', - knifeDescription: '8E', - minWorkLength: '35', - knifeId: 'Q20110220', - spec: '', - position: '05070201', - remark: '' - } - ] + knifeList: [], + url:{ + getByBusinessId: '/nc/cutter/getList' + } } }, methods: { - getImageUrl(imgSrcSuffix) { - return `${window._CONFIG['domianURL']}/${imgSrcSuffix}` - }, - handleCancel() { this.visible = false - } + }, + handleCutter(docId){ + getAction(this.url.getByBusinessId,{docId:docId}).then((res)=>{ + if(res.success){ + this.knifeList = res.result + this.visible = true + } + }) + }, } } </script> diff --git a/src/views/flowable/workflow/FlowTodo.vue b/src/views/flowable/workflow/FlowTodo.vue index e40a1fd..1e8d371 100644 --- a/src/views/flowable/workflow/FlowTodo.vue +++ b/src/views/flowable/workflow/FlowTodo.vue @@ -275,6 +275,11 @@ :selectSparePartApplyData='selectSparePartApplyData' @searchReset='searchReset' ></spare-part-apply-handle> + <guide-card-batch-handle + ref='guideCardBatchHandle' + :selectShenpiData='selectGuideCardData' + @searchReset='searchReset' + ></guide-card-batch-handle> </a-card> </template> @@ -294,6 +299,7 @@ import AssignFileStreamHandle from '@views/flowable/workflow/assignFileStream/AssignFileStreamHandle.vue' import DispatchFileHandle from '@views/flowable/workflow/dispatchFile/DispatchFileHandle.vue' import DispatchFileBachHandleStyle from '@views/flowable/workflow/dispatchFile/DispatchFileBachHandleStyle#Drawer.vue' +import GuideCardBatchHandle from '@views/flowable/workflow/guideCardBatch/GuideCardBatchHandle.vue' import OutBoundOrderHandle from '@views/flowable/workflow/outBoundOrder/OutBoundOrderHandle.vue' import EquipmentLeanOutApprovalModal from '@views/flowable/workflow/leanOut/EquipmentLeanOutApprovalModal.vue' import SecondMaintenanceApprovalModal @@ -332,7 +338,8 @@ EquipmentTransferApprovalModal, EquipmentScrapApprovalModal, SparePartApplyHandle, - StandardizedProcessHandle + StandardizedProcessHandle, + GuideCardBatchHandle }, data() { return { @@ -420,6 +427,7 @@ selectStocktakingBoundOrderData: {}, selectInboundOrderData: {}, selectSparePartApplyData: {}, + selectGuideCardData:{}, //涓氬姟淇℃伅ID dataId: undefined } @@ -526,6 +534,9 @@ break case 'spare_part_apply': this.handleSparePartApplyApproval(item) + break + case 'programConfirmApproval': + this.handleGuideCardApproval(item) break default: alert('娌℃壘鍒拌娴佺▼') @@ -697,6 +708,12 @@ this.$refs.sparePartApplyModal.getAllApproveData(item) } }, + handleGuideCardApproval(item) { + console.log('item----->', item) + this.selectGuideCardData = item + this.$refs.guideCardBatchHandle.clearTableSource() + this.$refs.guideCardBatchHandle.getAllApproveData(item) + }, } } </script> diff --git a/src/views/flowable/workflow/guideCardBatch/GuideCardBatchHandle.vue b/src/views/flowable/workflow/guideCardBatch/GuideCardBatchHandle.vue new file mode 100644 index 0000000..b8172eb --- /dev/null +++ b/src/views/flowable/workflow/guideCardBatch/GuideCardBatchHandle.vue @@ -0,0 +1,408 @@ +<!-- + Description: 宸ヤ綔娴�-绋嬪簭鍔犲伐纭琛ㄦ祦绋嬪鐞嗛〉闈� List + Author: 浣滆�� liuyh + Date: 2025-02-27 +--> +<template> + <a-modal + :title="title" + :width="width" + :visible="visible" + :footer="null" + @cancel="handCancel" + > + <a-card :bordered="false"> + <div> + <b>{{ selectShenpiData.description }}</b> + <br> + <br> + <a-tag color="blue"> + 褰撳墠澶勭悊浜� {{ selectShenpiData.assignee_dictText }} + </a-tag> + <a-tag color="blue"> + 浠诲姟鍒涘缓鏃堕棿 {{ selectShenpiData.createTime }} + </a-tag> + <br> + <br> + <button @click="fetchAndShowBmp" class="btn-custom">鎵撳紑娴佺▼鍥�</button> + <div v-if="imageSrc"> + <img :src="imageSrc" alt="Fetched Image" /> + </div> + <hr class="shallow-hr"> + </div> + <div> + <b>瀹$璇︽儏</b> + <br> + <a-form :form='form'> + <a-spin :spinning="spinning"> + <a-tabs default-active-key='1' @change='callback'> + <a-tab-pane key='1' tab='鍩烘湰淇℃伅'> + <a-form-model ref='form' :model='tableRowRecord' :rules='validatorRules'> + <a-row> + <a-col :span='span'> + <a-form-model-item label="娴佹按鍙�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="serialNumber"> + <a-input :disabled='coldisabled' v-model="tableRowRecord.serialNumber" ></a-input> + </a-form-model-item> + </a-col> + <a-col :span='span'> + <a-form-model-item label="绋嬪簭鏂囦欢鍚�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="docName"> + <a-input :disabled='coldisabled' v-model="tableRowRecord.docName" ></a-input> + </a-form-model-item> + </a-col> + </a-row> + <a-row> + <a-col :span='span'> + <a-form-model-item label="闆朵欢鍥惧彿" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="partsCode"> + <a-input :disabled='coldisabled' v-model="tableRowRecord.partsCode" ></a-input> + </a-form-model-item> + </a-col> + <a-col :span='span'> + <a-form-model-item label="闆朵欢鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="partsName"> + <a-input :disabled='coldisabled' v-model="tableRowRecord.partsName" ></a-input> + </a-form-model-item> + </a-col> + </a-row> + <a-row> + <a-col :span='span'> + <a-form-model-item label="闆朵欢鏉愭枡" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="materielDesp"> + <a-input :disabled='coldisabled' v-model="tableRowRecord.materielDesp"></a-input> + </a-form-model-item> + </a-col> + <a-col :span='span'> + <a-form-model-item label="澶瑰叿" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="fixtureInformation"> + <a-input :disabled='coldisabled' v-model="tableRowRecord.fixtureInformation" ></a-input> + </a-form-model-item> + </a-col> + </a-row> + <a-row> + <a-col :span='span'> + <a-form-model-item label="宸ュ簭锛堝伐姝ュ彿锛�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="processWorkCode"> + <a-input :disabled='coldisabled' v-model="tableRowRecord.processWorkCode" ></a-input> + </a-form-model-item> + </a-col> + <a-col :span='span'> + <a-form-model-item label="鍔犲伐鎵规" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="processingBatch"> + <a-input :disabled='coldisabled' v-model="tableRowRecord.processingBatch" ></a-input> + </a-form-model-item> + </a-col> + </a-row> + <a-row> + <a-col :span='span'> + <a-form-model-item label="鍔犲伐鏁伴噺" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="processingQuantity"> + <a-input :disabled='coldisabled' v-model="tableRowRecord.processingQuantity" ></a-input> + </a-form-model-item> + </a-col> + <a-col :span='span'> + <a-form-model-item label="鍔犲伐璁惧" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="processingEquipment"> + <a-input :disabled='coldisabled' v-model="tableRowRecord.processingEquipment" ></a-input> + </a-form-model-item> + </a-col> + </a-row> + </a-form-model> + </a-tab-pane> + <a-tab-pane key='2' tab='娴佺▼鑺傜偣'> + <a-card> + <a-timeline style="padding:0 1% 0 12%" > + <a-timeline-item color='white' v-for="(item,index1) in hitaskDataSource" :key="index1"> + <div class="bottom"> + <p>澶勭悊浜猴細{{item.assignee_dictText}}</p> + <p v-if="index1 !==0">澶勭悊鏃堕暱锛歿{item.duration}}</p> + <p v-if="item.name !== '鎻愪氦鐢宠'">澶勭悊绫诲瀷锛歿{item.sequenceFlowName}}</p> + <p v-if="item.description != null">澶勭悊鎰忚锛歿{item.description}}</p> + <div class="left_qiu"><span>{{item.taskName}}</span></div> + </div> + </a-timeline-item> + </a-timeline> + </a-card> + </a-tab-pane> + </a-tabs> + </a-spin> + </a-form> + </div> + <div> + <hr class="shallow-hr"> + <br> + <b>瀹℃壒璇︽儏</b> + <br> + <a-form-model ref="form" :model="approveData" :rules="validatorRules" slot="detail"> + <a-row> + <a-col ::span='span' class="btxx"> + <a-form-model-item label="澶勭悊绫诲瀷" :labelCol="labelCol" :wrapperCol="wrapperCol" prop='status'> + <j-dict-select-tag type='list' v-model='assignFileStream.status' dictCode='nc_sq_handle_type' placeholder="璇烽�夋嫨澶勭悊绫诲瀷" /> + </a-form-model-item > + </a-col> + <a-col :span="24" class="btxx"> + <a-form-model-item label="澶勭悊鎰忚" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-textarea v-model="assignFileStream.approveContent" rows="4" placeholder="璇疯緭鍏ュ鐞嗘剰瑙�"/> + </a-form-model-item > + </a-col> + + <a-col :span="24" class="btxx" v-if="this.selectShenpiData.taskDefKey == 'operation'"> + <a-form-model-item label="棣栨鎰忚" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-textarea v-model="assignFileStream.inspectionOpinion" rows="4" placeholder="璇疯緭鍏ラ妫�鎰忚"/> + </a-form-model-item > + </a-col> + </a-row> + <div class="table-operator" style="text-align: right;"> + <a-button @click="handleQueXiaoTask" type="primary" icon="close">鍙栨秷</a-button> + <a-button @click="submitForm">鎻� 浜�</a-button> + </div> + </a-form-model> + </div> + </a-card> + + + </a-modal> +</template> + +<script> + +import '@assets/less/TableExpand.less' +import { mixinDevice } from '@/utils/mixin' +import { getAction, deleteAction, postAction, downFile, httpAction } from '@api/manage' +export default { + name: 'FlowShenPi', + mixins: [mixinDevice], + props: { + selectShenpiData: { + type: Object, + required: true + } + }, + + data() { + return { + form: this.$form.createForm(this), + span: 12, + span1: 8, + coldisabled: true, + spinning: false, + tableRowRecord: {}, + assignFileStream:{}, + tableDataSource: [], + usageDataSource: [], + hitaskDataSource:[], + bomForm: {}, + imageSrc: null, + drawerVisible: true, + labelCol: { + xs: { span: 24 }, + sm: { span: 5 } + }, + wrapperCol: { + xs: { span: 30 }, + sm: { span: 16 } + }, + validatorRules: { + status: { + rules: [ + { required: true, message: '璇烽�夋嫨瀹℃壒鐘舵��!'}, + ] + }, + }, + approveData: {}, + flowData: {}, + title: '璇︽儏椤甸潰', + width: 1000, + visible: false, + // 琛ㄥご + url: { + queryBomDataById: '/dnc/guideCardBatch/queryById', + diagramView: '/assign/flow/diagramView', + queryHisTaskList:'/dncFlow/dispatchFile/queryHisTaskList', + auditGuideCardBatch:"/dnc/guideCardBatch/auditGuideCardBatch", + }, + dictOptions: {}, + superFieldList: [], + workflowSource: [] + } + }, + created() { + }, + computed: {}, + methods: { + callback() { + }, + handCancel() { + this.visible = false + }, + clearTableSource() { + this.tableDataSource = [] + this.usageDataSource = [] + }, + fetchAndShowBmp() { + console.log('flowData----->', this.flowData) + try { + let parm = { + processDefinitionId: this.flowData.processDefinitionId, + processInstanceId:this.flowData.processInstanceId, + TaskDefinitionKey:this.flowData.processDefinitionKey + } + downFile(this.url.diagramView,parm,'get').then((res=>{ + console.log('Pica------>',res) + const urlObject = window.URL.createObjectURL(new Blob([res])) + this.imageSrc = urlObject + })) + } catch (error) { + console.error('Error fetching image blob:', error) + alert('鏃犳硶鍔犺浇鍥剧墖锛岃绋嶅悗鍐嶈瘯銆�') + } + }, + handleQueXiaoTask(){ + this.visible = false + this.routeReload() + }, + submitForm () { + const that = this; + if (!that.assignFileStream.status==null || that.assignFileStream.status===undefined){ + this.$message.warning('璇烽�夋嫨澶勭悊绫诲瀷锛�') + return false; + } + if (!that.assignFileStream.approveContent==null || that.assignFileStream.approveContent===undefined) { + this.$message.warning('璇疯緭鍏ュ鐞嗘剰瑙侊紒') + return false; + } + if ((!that.selectShenpiData.inspectionOpinion==null || that.selectShenpiData.taskDefKey===undefined)&&that.selectShenpiData.taskDefKey==="proofread") { + this.$message.warning('璇疯緭鍏ラ妫�鎰忚锛�') + } + // 瑙﹀彂琛ㄥ崟楠岃瘉 + this.form.validateFields((err, values) => { + if (!err) { + that.confirmLoading = true; + let url=this.url.auditGuideCardBatch + let method = 'post'; + let handle =that.assignFileStream.status === '1'; + let flowTaskVo = {} + switch (that.selectShenpiData.taskDefKey){ + case "proofread": + flowTaskVo.checkType=handle; + break; + case "operation": + flowTaskVo.confirmType=handle; + break; + case "approval": + flowTaskVo.approveType=handle; + break; + } + flowTaskVo.comment =that.assignFileStream.approveContent; + flowTaskVo.dataId = this.selectShenpiData.dataId + flowTaskVo.taskId = this.selectShenpiData.id + flowTaskVo.userId = this.selectShenpiData.assignee + flowTaskVo.instanceId = this.selectShenpiData.procInstId + flowTaskVo.values = this.selectShenpiData.variables + flowTaskVo.inspectionOpinion=that.assignFileStream.inspectionOpinion + console.log("琛ㄥ崟鎻愪氦鏁版嵁",flowTaskVo) + httpAction(url,flowTaskVo,method).then((res)=>{ + if(res.success){ + that.$message.success(res.message); + that.visible = false + //鍒锋柊琛ㄦ牸 + that.$emit('searchReset') + }else{ + that.$message.warning(res.message); + } + }).finally(() => { + that.confirmLoading = false; + }) + } + }) + }, + getAllApproveData(item) { + console.log('selectShenpiData----->', this.selectShenpiData) + this.flowData = item + let param = { + 'id': item.dataId + } + let parmhis={ + 'procInstId': item.procInstId + } + getAction(this.url.queryHisTaskList,parmhis).then(res=>{ + this.hitaskDataSource=res.result + getAction(this.url.queryBomDataById, param).then((res => { + if (res.success) { + this.tableRowRecord = res.result + console.log('this.tableRowRecord----->', this.tableRowRecord) + } + })) + }).finally( + this.visible = true, + console.log('this.approveData---->', this.approveData) + ) + } + } +} +</script> +<style scoped> +.shallow-hr { + border: 0; + height: 1px; /* 鍒嗙晫绾跨殑楂樺害 */ + background-color: rgba(0, 0, 0, 0.1); /* 浣跨敤 RGBA 棰滆壊锛屽苟璁剧疆杈冧綆鐨勯�忔槑搴� */ + margin: 20px 0; /* 鍒嗙晫绾夸笂涓嬬殑澶栬竟璺� */ +} +.btn-custom { + background-color: #4CAF50; /* 缁胯壊鑳屾櫙 */ + color: white; /* 鐧借壊鏂囧瓧 */ + border: none; /* 鏃犺竟妗� */ + padding: 5px 15px; /* 鍐呰竟璺� */ + text-align: center; /* 鏂囧瓧灞呬腑 */ + text-decoration: none; /* 鏃犱笅鍒掔嚎 */ + display: inline-block; /* 琛屽唴鍧楀厓绱� */ + font-size: 12px; /* 瀛椾綋澶у皬 */ + margin: 4px 2px; /* 澶栬竟璺� */ + cursor: pointer; /* 榧犳爣鎮仠鏃舵樉绀烘墜鍨� */ + border-radius: 4px; /* 鍦嗚杈规 */ +} + +.bold-large-label { + font-weight: bold; + font-size: 20px; /* 鎴栦綘闇�瑕佺殑浠讳綍澶у皬 */ +} +.left_qiu{ + position: absolute; + left: -74px; + top: 0; + width:54px; + border-radius: 50%; + height:54px; + font-size: 13px; + margin: auto; + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: center; + background: #0099ff; + transform: translate(0, 0); +} +/deep/ .ant-timeline-item-tail{ + left: -29px !important; +} +.left_qiu span{ + width: 3em; + display: block; + color: #fff; + text-align: center; +} +.img{ + width: 75%; +} + +.wrap{ + clear: both; + width: 100%; + display: flex; + height: 50px; + border: 1px solid #ccc; + /* background-color: aqua; */ +} +.box{ + width:21%; + height:50px; + border-right: 1px solid #ccc; + line-height: 50px; + /* background: red; */ + text-align:center; + margin: auto; +} + +@import '~@assets/less/common.less'; +</style> \ No newline at end of file -- Gitblit v1.9.3