From a34222bb2dae3feb96e84166268467e9f7c6c435 Mon Sep 17 00:00:00 2001 From: lyh <925863403@qq.com> Date: 星期五, 04 七月 2025 20:01:39 +0800 Subject: [PATCH] 去除多余文件 --- /dev/null | 599 ------------------------------------------------------ src/views/eam/equipment/EamEquipmentLedger.vue | 2 2 files changed, 1 insertions(+), 600 deletions(-) diff --git a/src/views/eam/equipment/EamEquipmentLedger.vue b/src/views/eam/equipment/EamEquipmentLedger.vue index c8f40fb..ac6cb61 100644 --- a/src/views/eam/equipment/EamEquipmentLedger.vue +++ b/src/views/eam/equipment/EamEquipmentLedger.vue @@ -308,7 +308,7 @@ { title: '鍐峰嵈绯荤粺', align: 'center', - dataIndex: 'coolSystem' + dataIndex: 'coolSystem_dictText' }, { title: '鐏伀鍣�', diff --git a/src/views/flowable/workflow/assignEquipmentFileStream/AssignEquipmentFileStreamHandle.vue b/src/views/flowable/workflow/assignEquipmentFileStream/AssignEquipmentFileStreamHandle.vue deleted file mode 100644 index 654bc7a..0000000 --- a/src/views/flowable/workflow/assignEquipmentFileStream/AssignEquipmentFileStreamHandle.vue +++ /dev/null @@ -1,469 +0,0 @@ -<!-- - Description: 宸ヤ綔娴�-DNC-璁惧缁撴瀯鏍戞寚娲句骇鍝佺粨鏋勬爲澶勭悊椤甸潰 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="equipmentId_dictText"> - <a-input :disabled='coldisabled' v-model="tableRowRecord.equipmentId_dictText" ></a-input> - </a-form-model-item> - </a-col> - <a-col :span='span'> - <a-form-model-item label="璁惧绋嬪簭鏂囦欢鍚�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="equipmentDocId_dictText"> - <a-input :disabled='coldisabled' v-model="tableRowRecord.equipmentDocId_dictText" ></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="productId_dictText"> - <a-input :disabled='coldisabled' v-model="tableRowRecord.productId_dictText" ></a-input> - </a-form-model-item> - </a-col> - <a-col :span='span'> - <a-form-model-item label="閮ㄤ欢鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="componentId_dictText"> - <a-input :disabled='coldisabled' v-model="tableRowRecord.componentId_dictText" ></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="partsId_dictText"> - <a-input :disabled='coldisabled' v-model="tableRowRecord.partsId_dictText"></a-input> - </a-form-model-item> - </a-col> - <a-col :span='span'> - <a-form-model-item label="宸ヨ壓瑙勭▼鐗堟湰鍙�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="psvId_dictText"> - <a-input :disabled='coldisabled' v-model="tableRowRecord.psvId_dictText" ></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="processId_dictText"> - <a-input :disabled='coldisabled' v-model="tableRowRecord.processId_dictText" ></a-input> - </a-form-model-item> - </a-col> - <a-col :span='span'> - <a-form-model-item label="宸ユ鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="stepId_dictText"> - <a-input :disabled='coldisabled' v-model="tableRowRecord.stepId_dictText" ></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="deviceTypeName"> - <a-input :disabled='coldisabled' v-model="tableRowRecord.deviceTypeName" ></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-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.auditType' 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-row> - <div class="table-operator" style="text-align: right;"> - <a-button - @click="handleQueXiaoTask" - icon="close" - :disabled="isSubmitting" - :class="{'disabled-btn': isSubmitting}" - >鍙栨秷</a-button> - <a-button - @click="submitForm" - type="primary" - :disabled="isSubmitting" - :loading="isSubmitting" - > - 鎻� 浜� - </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: '/dncFlow/assignEquipmentFileStream/selectVoById', - diagramView: '/assign/flow/diagramView', - queryHisTaskList:'/dncFlow/dispatchFile/queryHisTaskList', - auditGuideCardBatch:"/dncFlow/assignEquipmentFileStream/audit", - }, - dictOptions: {}, - superFieldList: [], - workflowSource: [], - isSubmitting: false, - } - }, - 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() { - // 濡傛灉姝e湪鎻愪氦锛岄樆姝㈠彇娑堟搷浣� - if (this.isSubmitting) return; - this.visible = false; - this.routeReload(); - }, - submitForm () { - // 濡傛灉姝e湪鎻愪氦锛岄樆姝㈤噸澶嶇偣鍑� - if (this.isSubmitting) return; - - // 寮�鍚叏灞�绂侀�� - this.isSubmitting = true; - document.body.classList.add('submitting'); - - const that = this; - - // 瀹氫箟涓�涓仮澶嶇姸鎬佺殑鍑芥暟 - const resetState = () => { - that.isSubmitting = false; - document.body.classList.remove('submitting'); - }; - if (!that.assignFileStream.auditType==null || that.assignFileStream.auditType===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) { - resetState(); // 楠岃瘉澶辫触锛屾仮澶嶇姸鎬� - return; - } - if (!err) { - that.confirmLoading = true; - let url=this.url.auditGuideCardBatch - let method = 'post'; - let flowTaskVo = {} - 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 - flowTaskVo.auditType = that.assignFileStream.auditType - 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); - } - }) - .catch((error) => { - console.error(error); - that.$message.error('鎻愪氦澶辫触'); - }) - .finally(() => { - that.confirmLoading = false; - resetState(); // 璇锋眰缁撴潫锛屾仮澶嶇姸鎬� - }); - } - }) - }, - 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[0] - console.log('this.tableRowRecord----->', this.tableRowRecord) - } - })) - }).finally( - this.visible = true, - console.log('this.approveData---->', this.approveData) - ) - } - } -} -</script> -<style scoped> -/* 鍏ㄥ眬绂侀�夋牱寮� - 浣滅敤浜庢暣涓〉闈� */ -html.submitting, -html.submitting body { - pointer-events: none !important; - cursor: wait !important; -} - -/* 钂欏眰鏁堟灉澧炲己 */ -html.submitting::before { - content: ''; - position: fixed; - top: 0; - left: 0; - right: 0; - bottom: 0; - background: rgba(255, 255, 255, 0.5); - z-index: 9998; -} - -/* 鍔犺浇鎸囩ず鍣� - 鏇存槑鏄剧殑瑙嗚鍙嶉 */ -html.submitting::after { - content: '鎻愪氦涓�...'; - position: fixed; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - background: #1890ff; - color: white; - padding: 10px 20px; - border-radius: 4px; - z-index: 9999; -} - -/* 绂佺敤鐘舵�佹寜閽牱寮� */ -.disabled-btn { - opacity: 0.6; - cursor: not-allowed !important; -} - -.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 diff --git a/src/views/flowable/workflow/assignFileStream/AssignFileStreamHandle.vue b/src/views/flowable/workflow/assignFileStream/AssignFileStreamHandle.vue deleted file mode 100644 index 7ecc9d4..0000000 --- a/src/views/flowable/workflow/assignFileStream/AssignFileStreamHandle.vue +++ /dev/null @@ -1,510 +0,0 @@ -<!-- - 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 }} - </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='productName'> - <a-input :disabled='coldisabled' v-model='tableRowRecord.productName'></a-input> - </a-form-model-item> - </a-col> - <a-col :span='span'> - <a-form-model-item label='閮ㄤ欢鍚嶇О' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='componentId'> - <a-input :disabled='coldisabled' v-model='tableRowRecord.componentName'></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='partsName'> - <a-input :disabled='coldisabled' v-model='tableRowRecord.partsName'></a-input> - </a-form-model-item> - </a-col> - <a-col :span='span'> - <a-form-model-item label='宸ュ簭鍚嶇О' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='processName'> - <a-input :disabled='coldisabled' v-model='tableRowRecord.processName'></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='stepName'> - <a-input :disabled='coldisabled' v-model='tableRowRecord.stepName'></a-input> - </a-form-model-item> - </a-col> - <a-col :span='span'> - <a-form-model-item label='璁惧鍚嶇О' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='deviceName'> - <a-input :disabled='coldisabled' v-model='tableRowRecord.deviceName'></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='deviceManagementCode'> - <a-input :disabled='coldisabled' v-model='tableRowRecord.deviceManagementCode'></a-input> - </a-form-model-item> - </a-col> - <a-col :span='span'> - <a-form-model-item label='鏁版帶绯荤粺绫诲埆' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='deviceManagementName'> - <a-input :disabled='coldisabled' v-model='tableRowRecord.deviceManagementName'></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='docName'> - <a-input :disabled='coldisabled' v-model='tableRowRecord.docName'></a-input> - </a-form-model-item> - </a-col> - <a-col :span='span'> - <a-form-model-item label='鏂囨。鐗堟湰' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='version'> - <a-input :disabled='coldisabled' v-model='tableRowRecord.version'></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'> - <a-form-model-item label="鐢宠浜�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop='applyUser'> - <a-input :disabled='coldisabled' v-model='tableRowRecord.applyUser'></a-input> - </a-form-model-item > - </a-col> - <a-col ::span='span'> - <a-form-model-item label="鐢宠鍘熷洜" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="applyReason"> - <a-textarea :disabled='coldisabled' v-model="tableRowRecord.applyReason" rows="4" /> - </a-form-model-item > - </a-col> - <a-col ::span='span'> - <a-form-model-item label="鐢宠鏃堕棿" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="applyTime"> - <a-input :disabled='coldisabled' v-model='tableRowRecord.applyTime'></a-input> - </a-form-model-item > - </a-col> -<!-- <a-col :span="24">--> -<!-- <a-form-item label="瀵嗙骇涓�" :labelCol="labelCol" :wrapperCol="wrapperCol">--> -<!-- <j-dict-select-tag type='list' v-model='assignFileStream.secretLevel' dictCode='dnc_secret_level' placeholder="璇烽�夋嫨瀵嗙骇" />--> -<!-- </a-form-item>--> -<!-- </a-col>--> - <a-col :span="24" class="btxx"> - <a-form-item label="瀹℃壒鐘舵��" :labelCol="labelCol" :wrapperCol="wrapperCol"> - <j-dict-select-tag type='list' v-model='assignFileStream.status' dictCode='dnc_assign_stream_status' placeholder="璇烽�夋嫨瀹℃壒鐘舵��" /> - </a-form-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-row> - <div class="table-operator" style="text-align: right;"> - <a-button - @click="handleQueXiaoTask" - icon="close" - :disabled="isSubmitting" - :class="{'disabled-btn': isSubmitting}" - >鍙栨秷</a-button> - <a-button - @click="submitForm" - type="primary" - :disabled="isSubmitting" - :loading="isSubmitting" - > - 鎻� 浜� - </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: {}, - approveContent:"", - imageSrc: null, - drawerVisible: true, - labelCol: { - xs: { span: 24 }, - sm: { span: 5 } - }, - wrapperCol: { - xs: { span: 30 }, - sm: { span: 16 } - }, - validatorRules: { - version: { - rules: [ - { required: true, message: '璇疯緭鍏ユ枃妗g増鏈�!'}, - ] - }, - applyUser: { - rules: [ - { required: true, message: '璇烽�夋嫨鐢宠浜�!'}, - ] - }, - approveContent: { - rules: [ - { required: true, message: '璇疯緭鍏ュ鎵规剰瑙�!'}, - ] - }, - docName: { - rules: [ - { required: true, message: '璇疯緭鍏ユ枃妗e悕绉�!'}, - ] - }, - status: { - rules: [ - { required: true, message: '璇烽�夋嫨瀹℃壒鐘舵��!'}, - ] - }, - }, - approveData: {}, - flowData: {}, - title: '瀹℃壒椤甸潰', - width: 1000, - visible: false, - // 琛ㄥご - url: { - queryBomDataById: '/nc/activit/selectVoById', - diagramView: '/assign/flow/diagramView', - queryHisTaskList:'/dncFlow/dispatchFile/queryHisTaskList', - approve:"/nc/activit/assign/file/approve", - }, - dictOptions: {}, - superFieldList: [], - workflowSource: [], - isSubmitting: false, - } - }, - 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() { - // 濡傛灉姝e湪鎻愪氦锛岄樆姝㈠彇娑堟搷浣� - if (this.isSubmitting) return; - this.visible = false; - this.routeReload(); - }, - submitForm () { - // 濡傛灉姝e湪鎻愪氦锛岄樆姝㈤噸澶嶇偣鍑� - if (this.isSubmitting) return; - - // 寮�鍚叏灞�绂侀�� - this.isSubmitting = true; - document.body.classList.add('submitting'); - - const that = this; - - // 瀹氫箟涓�涓仮澶嶇姸鎬佺殑鍑芥暟 - const resetState = () => { - that.isSubmitting = false; - document.body.classList.remove('submitting'); - }; - - 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; - } - // 瑙﹀彂琛ㄥ崟楠岃瘉 - this.form.validateFields((err, values) => { - if (err) { - resetState(); // 楠岃瘉澶辫触锛屾仮澶嶇姸鎬� - return; - } - if (!err) { - that.confirmLoading = true; - let url=this.url.approve - let method = 'post'; - let flowTaskVo = {} - flowTaskVo.status=that.assignFileStream.status; - flowTaskVo.approveContent =that.assignFileStream.approveContent; - flowTaskVo.comment =that.assignFileStream.approveContent; - flowTaskVo.secretLevel = that.assignFileStream.secretLevel; - flowTaskVo.dataId = this.selectShenpiData.dataId - flowTaskVo.taskId = this.selectShenpiData.id - flowTaskVo.userId = this.selectShenpiData.assignee - flowTaskVo.instanceId = this.selectShenpiData.procInstId - flowTaskVo.targetKey = this.selectShenpiData.taskDefKey - flowTaskVo.values = this.selectShenpiData.variables - flowTaskVo.assignee = this.selectShenpiData.assignee - flowTaskVo.secretLevel = that.assignFileStream.secretLevel; - 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); - } - }).catch((error) => { - console.error(error); - that.$message.error('鎻愪氦澶辫触'); - }) - .finally(() => { - that.confirmLoading = false; - resetState(); // 璇锋眰缁撴潫锛屾仮澶嶇姸鎬� - }); - } - }) - }, - 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> -/* 鍏ㄥ眬绂侀�夋牱寮� - 浣滅敤浜庢暣涓〉闈� */ -html.submitting, -html.submitting body { - pointer-events: none !important; - cursor: wait !important; -} - -/* 钂欏眰鏁堟灉澧炲己 */ -html.submitting::before { - content: ''; - position: fixed; - top: 0; - left: 0; - right: 0; - bottom: 0; - background: rgba(255, 255, 255, 0.5); - z-index: 9998; -} - -/* 鍔犺浇鎸囩ず鍣� - 鏇存槑鏄剧殑瑙嗚鍙嶉 */ -html.submitting::after { - content: '鎻愪氦涓�...'; - position: fixed; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - background: #1890ff; - color: white; - padding: 10px 20px; - border-radius: 4px; - z-index: 9999; -} - -/* 绂佺敤鐘舵�佹寜閽牱寮� */ -.disabled-btn { - opacity: 0.6; - cursor: not-allowed !important; -} - -.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 diff --git a/src/views/flowable/workflow/assignFileStream/AssignFileStreamXq.vue b/src/views/flowable/workflow/assignFileStream/AssignFileStreamXq.vue deleted file mode 100644 index e74754c..0000000 --- a/src/views/flowable/workflow/assignFileStream/AssignFileStreamXq.vue +++ /dev/null @@ -1,389 +0,0 @@ -<!-- - 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 }} - </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='productName'> - <a-input :disabled='coldisabled' v-model='tableRowRecord.productName'></a-input> - </a-form-model-item> - </a-col> - <a-col :span='span'> - <a-form-model-item label='閮ㄤ欢鍚嶇О' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='componentId'> - <a-input :disabled='coldisabled' v-model='tableRowRecord.componentName'></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='partsName'> - <a-input :disabled='coldisabled' v-model='tableRowRecord.partsName'></a-input> - </a-form-model-item> - </a-col> - <a-col :span='span'> - <a-form-model-item label='宸ュ簭鍚嶇О' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='processName'> - <a-input :disabled='coldisabled' v-model='tableRowRecord.processName'></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='stepName'> - <a-input :disabled='coldisabled' v-model='tableRowRecord.stepName'></a-input> - </a-form-model-item> - </a-col> - <a-col :span='span'> - <a-form-model-item label='璁惧鍚嶇О' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='deviceName'> - <a-input :disabled='coldisabled' v-model='tableRowRecord.deviceName'></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='deviceManagementCode'> - <a-input :disabled='coldisabled' v-model='tableRowRecord.deviceManagementCode'></a-input> - </a-form-model-item> - </a-col> - <a-col :span='span'> - <a-form-model-item label='鏁版帶绯荤粺绫诲埆' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='deviceManagementName'> - <a-input :disabled='coldisabled' v-model='tableRowRecord.deviceManagementName'></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='docName'> - <a-input :disabled='coldisabled' v-model='tableRowRecord.docName'></a-input> - </a-form-model-item> - </a-col> - <a-col :span='span'> - <a-form-model-item label='鏂囨。鐗堟湰' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='version'> - <a-input :disabled='coldisabled' v-model='tableRowRecord.version'></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> - </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: {}, - approveContent:"", - imageSrc: null, - drawerVisible: true, - labelCol: { - xs: { span: 24 }, - sm: { span: 5 } - }, - wrapperCol: { - xs: { span: 30 }, - sm: { span: 16 } - }, - validatorRules: { - version: { - rules: [ - { required: true, message: '璇疯緭鍏ユ枃妗g増鏈�!'}, - ] - }, - applyUser: { - rules: [ - { required: true, message: '璇烽�夋嫨鐢宠浜�!'}, - ] - }, - approveContent: { - rules: [ - { required: true, message: '璇疯緭鍏ュ鎵规剰瑙�!'}, - ] - }, - docName: { - rules: [ - { required: true, message: '璇疯緭鍏ユ枃妗e悕绉�!'}, - ] - }, - status: { - rules: [ - { required: true, message: '璇烽�夋嫨瀹℃壒鐘舵��!'}, - ] - }, - }, - approveData: {}, - flowData: {}, - title: '璇︽儏椤甸潰', - width: 1000, - visible: false, - // 琛ㄥご - url: { - queryBomDataById: '/nc/activit/selectVoById', - diagramView: '/assign/flow/diagramView', - queryHisTaskList:'/dncFlow/dispatchFile/queryHisTaskList', - approve:"/activit/assign/file/approve", - }, - 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; - } - // 瑙﹀彂琛ㄥ崟楠岃瘉 - this.form.validateFields((err, values) => { - if (!err) { - that.confirmLoading = true; - let url=this.url.approve - let method = 'post'; - let flowTaskVo = {} - flowTaskVo.status=that.assignFileStream.status; - flowTaskVo.approveContent =that.assignFileStream.approveContent; - flowTaskVo.comment =that.assignFileStream.approveContent; - flowTaskVo.secretLevel = that.assignFileStream.secretLevel; - flowTaskVo.dataId = this.selectShenpiData.dataId - flowTaskVo.taskId = this.selectShenpiData.id - flowTaskVo.userId = this.selectShenpiData.assignee - flowTaskVo.instanceId = this.selectShenpiData.procInstId - flowTaskVo.targetKey = this.selectShenpiData.taskDefKey - flowTaskVo.values = this.selectShenpiData.variables - flowTaskVo.assignee = this.selectShenpiData.assignee - flowTaskVo.secretLevel = that.assignFileStream.secretLevel; - console.log("琛ㄥ崟鎻愪氦鏁版嵁",flowTaskVo) - httpAction(url,flowTaskVo,method).then((res)=>{ - if(res.success){ - that.$message.success(res.message); - that.$emit('ok'); - }else{ - that.$message.warning(res.message); - } - }).finally(() => { - that.confirmLoading = false; - }) - } - - }) - }, - getAllApproveData(item) { - console.log('selectShenpiData----->', this.selectShenpiData) - console.log('item----->', item) - 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 diff --git a/src/views/flowable/workflow/dispatchFile/DispatchFileBachHandleForm.vue b/src/views/flowable/workflow/dispatchFile/DispatchFileBachHandleForm.vue deleted file mode 100644 index 5da0304..0000000 --- a/src/views/flowable/workflow/dispatchFile/DispatchFileBachHandleForm.vue +++ /dev/null @@ -1,215 +0,0 @@ -<template> - <a-spin :spinning="confirmLoading"> - <j-form-container > - <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail"> - <a-row> - <a-col :span="24" v-if="selectBachData.taskDefKey ==='task_proofread'" class="btxx"> - <a-form-model-item label="澶勭悊绫诲瀷" :labelCol="labelCol" :wrapperCol="wrapperCol" prop='status'> - <j-dict-select-tag type='list' v-model='model.status' dictCode='nc_sq_handle_type_jd' placeholder="璇烽�夋嫨澶勭悊绫诲瀷" /> - </a-form-model-item > - </a-col> - <a-col :span="24" v-if="selectBachData.taskDefKey ==='task_approve' || selectBachData.taskDefKey ==='task_cut' || selectBachData.taskDefKey ==='task_finalize'" class="btxx"> - <a-form-model-item label="澶勭悊绫诲瀷" :labelCol="labelCol" :wrapperCol="wrapperCol" prop='status'> - <j-dict-select-tag type='list' v-model='model.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="model.approveContent" rows="4" placeholder="璇疯緭鍏ュ鐞嗘剰瑙�"/> - </a-form-model-item > - </a-col> - </a-row> - </a-form-model> - </j-form-container> - </a-spin> -</template> - -<script> - import axios from 'axios'; - import { - httpAction, - getAction - } from '@/api/manage' - import { - validateDuplicateValue - } from '@/utils/util' - - export default { - name: 'ChCfForm', - components: {}, - props: { - //琛ㄥ崟绂佺敤 - disabled: { - type: Boolean, - default: false, - required: false - } - }, - data() { - return { - principalList: [], - model: {}, - labelCol: { - xs: { - span: 24 - }, - sm: { - span: 5 - }, - }, - wrapperCol: { - xs: { - span: 24 - }, - sm: { - span: 16 - }, - }, - confirmLoading: false, - validatorRules: { - address: [{ - required: true, - message: '璇烽�夋嫨鍦板潃!' - }, ], - bt: [{ - required: true, - message: '璇疯緭鍏ユ爣棰�!' - }, ], - }, - url: { - approvalBatch: "/dncFlow/dispatchFile/approvalBatch", - }, - selectBachData:{} - } - }, - computed: { - formDisabled() { - return this.disabled - }, - }, - created() { - //澶囦唤model鍘熷鍊� - this.modelDefault = JSON.parse(JSON.stringify(this.model)); - }, - methods: { - handleChange(e) { - console.log(e); - let sss = e.split('||||') - console.log(sss); - this.model.jd = sss[0] - this.model.address = sss[1] - console.log(sss) - }, - handleSearch(e) { - if (e === '') { - return - } - const that = this; - axios.get('/s-api/api/index/lsdz?input=' + e) - .then(response => { - that.principalList = [] - console.log(that.principalList) - for (var i = 0; i < response.data.data.length; i++) { - that.principalList.push({ - value: response.data.data[i].inputValueId + '||||' + response.data.data[i].setout, - label: response.data.data[i].setout, - }); - } - // that.principalList = response.data.data - console.log(that.principalList, '8888'); // 杈撳嚭杩斿洖鐨勬暟鎹� - }) - .catch(error => { - console.error(error); // 澶勭悊閿欒鎯呭喌 - }); - }, - add() { - this.edit(this.modelDefault); - }, - edit(record) { - this.selectBachData=record - this.visible = true; - }, - submitForm () { - const that = this; - if (that.selectBachData.taskDefKey ==='task_prepare'){ - // 瑙﹀彂琛ㄥ崟楠岃瘉-閲嶆柊鍚姩 - this.$refs.form.validate(valid => { - if (valid) { - that.confirmLoading = true; - let url=this.url.approvalBatch; - let method = 'post'; - let flowTaskVo = {} - flowTaskVo.comment =this.model.approveContent; - flowTaskVo.taskIds=that.selectBachData.taskIds - flowTaskVo.targetKey=that.selectBachData.taskDefKey - 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; - }) - } - }) - //璺冲嚭鏂规硶 - return false; - }else { - if (!that.model.status==null || that.model.status===undefined){ - this.$message.warning('璇烽�夋嫨澶勭悊绫诲瀷锛�') - return false; - } - } - if (!that.model.approveContent==null || that.model.approveContent===undefined) { - this.$message.warning('璇疯緭鍏ュ鐞嗘剰瑙侊紒') - return false; - } - // 瑙﹀彂琛ㄥ崟楠岃瘉 - this.$refs.form.validate(valid => { - if (valid) { - that.confirmLoading = true; - let url=this.url.approvalBatch - let method = 'post'; - let handle =this.model.status === '1'; - let flowTaskVo = {} - switch (that.selectBachData.taskDefKey){ - case "task_approve": - flowTaskVo.ratify=handle; - break; - case "task_cut": - flowTaskVo.cut=handle; - break; - case "task_finalize": - flowTaskVo.stereotype=handle; - break; - } - if (that.selectBachData.taskDefKey ==='task_proofread'){ - flowTaskVo.proofreadStatus =that.model.status; - } - flowTaskVo.comment =that.model.approveContent; - flowTaskVo.taskIds=that.selectBachData.taskIds - flowTaskVo.targetKey=that.selectBachData.taskDefKey - console.log("琛ㄥ崟鎻愪氦鏁版嵁",flowTaskVo) - httpAction(url,flowTaskVo,method).then((res)=>{ - if(res.success){ - that.$message.success(res.message); - that.valid = false - that.close(); - //鍒锋柊琛ㄦ牸 - that.$emit('ok') - }else{ - that.$message.warning(res.message); - } - }).finally(() => { - that.confirmLoading = false; - }) - } - }) - }, - } - } -</script> \ No newline at end of file diff --git "a/src/views/flowable/workflow/dispatchFile/DispatchFileBachHandleStyle\043Drawer.vue" "b/src/views/flowable/workflow/dispatchFile/DispatchFileBachHandleStyle\043Drawer.vue" deleted file mode 100644 index c3bfc8a..0000000 --- "a/src/views/flowable/workflow/dispatchFile/DispatchFileBachHandleStyle\043Drawer.vue" +++ /dev/null @@ -1,62 +0,0 @@ -<template> - <j-modal - :title="title" - :width="width" - :visible="visible" - switchFullscreen - @ok="handleOk" - :okButtonProps="{ class:{'jee-hidden': disableSubmit} }" - @cancel="handleCancel" - cancelText="鍏抽棴"> - <DispatchFileBachHandleForm ref="realForm" @ok="submitCallback" :disabled="disableSubmit" normal></DispatchFileBachHandleForm> - </j-modal> - - -</template> -<script> - - import DispatchFileBachHandleForm from './DispatchFileBachHandleForm.vue' - - export default { - name: 'DispatchFileBachHandleStyle', - components: { - DispatchFileBachHandleForm - }, - data () { - return { - title:'', - width:800, - visible: false, - disableSubmit: false - } - }, - methods: { - add () { - this.visible=true - this.$nextTick(()=>{ - this.$refs.realForm.add(); - }) - }, - edit (record) { - this.visible=true - this.$nextTick(()=>{ - this.$refs.realForm.edit(record); - }); - }, - close () { - this.$emit('close'); - this.visible = false; - }, - submitCallback(){ - this.$emit('ok'); - this.visible = false; - }, - handleOk () { - this.$refs.realForm.submitForm(); - }, - handleCancel () { - this.close() - } - } - } -</script> \ No newline at end of file diff --git a/src/views/flowable/workflow/dispatchFile/DispatchFileHandle.vue b/src/views/flowable/workflow/dispatchFile/DispatchFileHandle.vue deleted file mode 100644 index 09f1b0a..0000000 --- a/src/views/flowable/workflow/dispatchFile/DispatchFileHandle.vue +++ /dev/null @@ -1,506 +0,0 @@ -<!-- - Description: 宸ヤ綔娴�-NC瀹$澶勭悊椤甸潰 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='docName'> - <a-input :disabled='coldisabled' v-model='tableRowRecord.docName'></a-input> - </a-form-model-item> - </a-col> - <a-col :span='span'> - <a-form-model-item label='鏂囨。鐗堟湰' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='publishVersion'> - <a-input :disabled='coldisabled' v-model='tableRowRecord.publishVersion'></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='docSuffix'> - <a-input :disabled='coldisabled' v-model='tableRowRecord.docSuffix'></a-input> - </a-form-model-item> - </a-col> - <a-col :span='span'> - <a-form-model-item label='绯荤粺鎸囧畾鐗堟湰' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='componentId'> - <a-input :disabled='coldisabled' v-model='tableRowRecord.componentName'></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='pullStatus_dictText'> - <a-input :disabled='coldisabled' v-model='tableRowRecord.pullStatus_dictText'></a-input> - </a-form-model-item> - </a-col> - <a-col :span='span'> - <a-form-model-item label='鍑哄簱浜�' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='pullUser_dictText'> - <a-input :disabled='coldisabled' v-model='tableRowRecord.pullUser_dictText'></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' v-if="selectShenpiData.taskDefKey ==='task_proofread'" 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_jd' placeholder="璇烽�夋嫨澶勭悊绫诲瀷" /> - </a-form-model-item > - </a-col> - <a-col ::span='span' v-if="selectShenpiData.taskDefKey ==='task_approve' || selectShenpiData.taskDefKey ==='task_cut' || selectShenpiData.taskDefKey ==='task_finalize'" 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-row> - <div class="table-operator" style="text-align: right;"> - <a-button - @click="handleQueXiaoTask" - icon="close" - :disabled="isSubmitting" - :class="{'disabled-btn': isSubmitting}" - >鍙栨秷</a-button> - <a-button - @click="submitForm" - type="primary" - :disabled="isSubmitting" - :loading="isSubmitting" - > - 鎻� 浜� - </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: {}, - approveContent:"", - 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: '/dncFlow/dispatchFile/selectVoById', - diagramView: '/assign/flow/diagramView', - queryHisTaskList:'/dncFlow/dispatchFile/queryHisTaskList', - approve:"/dncFlow/dispatchFile/approval", - saveDispatchFile:"/dncFlow/dispatchFile/saveDispatchFile" - }, - dictOptions: {}, - superFieldList: [], - workflowSource: [], - isSubmitting: false, - } - }, - 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() { - // 濡傛灉姝e湪鎻愪氦锛岄樆姝㈠彇娑堟搷浣� - if (this.isSubmitting) return; - this.visible = false; - this.routeReload(); - }, - submitForm() { - // 濡傛灉姝e湪鎻愪氦锛岄樆姝㈤噸澶嶇偣鍑� - if (this.isSubmitting) return; - - // 寮�鍚叏灞�绂侀�� - this.isSubmitting = true; - document.body.classList.add('submitting'); - - const that = this; - - // 瀹氫箟涓�涓仮澶嶇姸鎬佺殑鍑芥暟 - const resetState = () => { - that.isSubmitting = false; - document.body.classList.remove('submitting'); - }; - - // 澶勭悊task_prepare鍒嗘敮 - if (that.selectShenpiData.taskDefKey === 'task_prepare') { - this.form.validateFields((err, values) => { - if (err) { - resetState(); // 楠岃瘉澶辫触锛屾仮澶嶇姸鎬� - return; - } - that.confirmLoading = true; - let url = that.url.saveDispatchFile; - let method = 'post'; - let flowTaskVo = { - comment: that.assignFileStream.approveContent, - dataId: that.selectShenpiData.dataId, - instanceId: that.selectShenpiData.procInstId, - taskId: that.selectShenpiData.id - }; - 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); - } - }) - .catch((error) => { - console.error(error); - that.$message.error('鎻愪氦澶辫触'); - }) - .finally(() => { - that.confirmLoading = false; - resetState(); // 璇锋眰缁撴潫锛屾仮澶嶇姸鎬� - }); - }); - } else { - // 澶勭悊鍏朵粬浠诲姟鍒嗘敮 - // 鍏堟鏌ュ鐞嗙被鍨嬪拰鎰忚 - if (!that.assignFileStream.status) { - that.$message.warning('璇烽�夋嫨澶勭悊绫诲瀷锛�'); - resetState(); - return; - } - if (!that.assignFileStream.approveContent) { - that.$message.warning('璇疯緭鍏ュ鐞嗘剰瑙侊紒'); - resetState(); - return; - } - - // 杩涜琛ㄥ崟楠岃瘉 - this.form.validateFields((err, values) => { - if (err) { - resetState(); - return; - } - that.confirmLoading = true; - let url = that.url.approve; - let method = 'post'; - let handle = that.assignFileStream.status === '1'; - let flowTaskVo = { - comment: that.assignFileStream.approveContent, - dataId: that.selectShenpiData.dataId, - taskId: that.selectShenpiData.id, - userId: that.selectShenpiData.assignee, - instanceId: that.selectShenpiData.procInstId, - values: that.selectShenpiData.variables - }; - - switch (that.selectShenpiData.taskDefKey) { - case "task_approve": - flowTaskVo.ratify = handle; - break; - case "task_cut": - flowTaskVo.cut = handle; - break; - case "task_finalize": - flowTaskVo.stereotype = handle; - break; - } - if (that.selectShenpiData.taskDefKey === 'task_proofread') { - flowTaskVo.proofreadStatus = that.assignFileStream.status; - } - - 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); - } - }) - .catch((error) => { - console.error(error); - that.$message.error('鎻愪氦澶辫触'); - }) - .finally(() => { - that.confirmLoading = false; - resetState(); - }); - }); - } - }, - 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[0] - console.log('this.tableRowRecord----->', this.tableRowRecord[0]) - } - })) - }).finally( - this.visible = true, - console.log('this.approveData---->', this.approveData) - ) - } - } -} -</script> -<style scoped> -/* 鍏ㄥ眬绂侀�夋牱寮� - 浣滅敤浜庢暣涓〉闈� */ -html.submitting, -html.submitting body { - pointer-events: none !important; - cursor: wait !important; -} - -/* 钂欏眰鏁堟灉澧炲己 */ -html.submitting::before { - content: ''; - position: fixed; - top: 0; - left: 0; - right: 0; - bottom: 0; - background: rgba(255, 255, 255, 0.5); - z-index: 9998; -} - -/* 鍔犺浇鎸囩ず鍣� - 鏇存槑鏄剧殑瑙嗚鍙嶉 */ -html.submitting::after { - content: '鎻愪氦涓�...'; - position: fixed; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - background: #1890ff; - color: white; - padding: 10px 20px; - border-radius: 4px; - z-index: 9999; -} - -/* 绂佺敤鐘舵�佹寜閽牱寮� */ -.disabled-btn { - opacity: 0.6; - cursor: not-allowed !important; -} - -.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 diff --git a/src/views/flowable/workflow/dispatchFile/DispatchFileXq.vue b/src/views/flowable/workflow/dispatchFile/DispatchFileXq.vue deleted file mode 100644 index f0f148b..0000000 --- a/src/views/flowable/workflow/dispatchFile/DispatchFileXq.vue +++ /dev/null @@ -1,364 +0,0 @@ -<!-- - Description: 宸ヤ綔娴�-NC瀹$璇︽儏椤甸潰 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='docName'> - <a-input :disabled='coldisabled' v-model='tableRowRecord.docName'></a-input> - </a-form-model-item> - </a-col> - <a-col :span='span'> - <a-form-model-item label='鏂囨。鐗堟湰' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='publishVersion'> - <a-input :disabled='coldisabled' v-model='tableRowRecord.publishVersion'></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='docSuffix'> - <a-input :disabled='coldisabled' v-model='tableRowRecord.docSuffix'></a-input> - </a-form-model-item> - </a-col> - <a-col :span='span'> - <a-form-model-item label='绯荤粺鎸囧畾鐗堟湰' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='componentId'> - <a-input :disabled='coldisabled' v-model='tableRowRecord.componentName'></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='pullStatus_dictText'> - <a-input :disabled='coldisabled' v-model='tableRowRecord.pullStatus_dictText'></a-input> - </a-form-model-item> - </a-col> - <a-col :span='span'> - <a-form-model-item label='鍑哄簱浜�' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='pullUser_dictText'> - <a-input :disabled='coldisabled' v-model='tableRowRecord.pullUser_dictText'></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> - </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: {}, - approveContent:"", - imageSrc: null, - drawerVisible: true, - labelCol: { - xs: { span: 24 }, - sm: { span: 5 } - }, - wrapperCol: { - xs: { span: 30 }, - sm: { span: 16 } - }, - validatorRules: { - version: { - rules: [ - { required: true, message: '璇疯緭鍏ユ枃妗g増鏈�!'}, - ] - }, - applyUser: { - rules: [ - { required: true, message: '璇烽�夋嫨鐢宠浜�!'}, - ] - }, - approveContent: { - rules: [ - { required: true, message: '璇疯緭鍏ュ鎵规剰瑙�!'}, - ] - }, - docName: { - rules: [ - { required: true, message: '璇疯緭鍏ユ枃妗e悕绉�!'}, - ] - }, - status: { - rules: [ - { required: true, message: '璇烽�夋嫨瀹℃壒鐘舵��!'}, - ] - }, - }, - approveData: {}, - flowData: {}, - title: '璇︽儏椤甸潰', - width: 1000, - visible: false, - // 琛ㄥご - url: { - queryBomDataById: '/dncFlow/dispatchFile/selectVoById', - diagramView: '/assign/flow/diagramView', - queryHisTaskList:'/dncFlow/dispatchFile/queryHisTaskList', - approve:"/activit/assign/file/approve", - }, - 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; - } - // 瑙﹀彂琛ㄥ崟楠岃瘉 - this.form.validateFields((err, values) => { - if (!err) { - that.confirmLoading = true; - let url=this.url.approve - let method = 'post'; - let flowTaskVo = {} - flowTaskVo.status=that.assignFileStream.status; - flowTaskVo.approveContent =that.assignFileStream.approveContent; - flowTaskVo.comment =that.assignFileStream.approveContent; - flowTaskVo.secretLevel = that.assignFileStream.secretLevel; - flowTaskVo.dataId = this.selectShenpiData.dataId - flowTaskVo.taskId = this.selectShenpiData.id - flowTaskVo.userId = this.selectShenpiData.assignee - flowTaskVo.instanceId = this.selectShenpiData.procInstId - flowTaskVo.targetKey = this.selectShenpiData.taskDefKey - flowTaskVo.values = this.selectShenpiData.variables - flowTaskVo.assignee = this.selectShenpiData.assignee - flowTaskVo.secretLevel = that.assignFileStream.secretLevel; - console.log("琛ㄥ崟鎻愪氦鏁版嵁",flowTaskVo) - httpAction(url,flowTaskVo,method).then((res)=>{ - if(res.success){ - that.$message.success(res.message); - that.$emit('ok'); - }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[0] - console.log('this.tableRowRecord----->', this.tableRowRecord[0]) - } - })) - }).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 diff --git a/src/views/flowable/workflow/guideCardBatch/GuideCardBatchHandle.vue b/src/views/flowable/workflow/guideCardBatch/GuideCardBatchHandle.vue deleted file mode 100644 index 6899a2e..0000000 --- a/src/views/flowable/workflow/guideCardBatch/GuideCardBatchHandle.vue +++ /dev/null @@ -1,484 +0,0 @@ -<!-- - 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" - icon="close" - :disabled="isSubmitting" - :class="{'disabled-btn': isSubmitting}" - >鍙栨秷</a-button> - <a-button - @click="submitForm" - type="primary" - :disabled="isSubmitting" - :loading="isSubmitting" - > - 鎻� 浜� - </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: [], - isSubmitting: false, - } - }, - 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() { - // 濡傛灉姝e湪鎻愪氦锛岄樆姝㈠彇娑堟搷浣� - if (this.isSubmitting) return; - this.visible = false; - this.routeReload(); - }, - submitForm () { - // 濡傛灉姝e湪鎻愪氦锛岄樆姝㈤噸澶嶇偣鍑� - if (this.isSubmitting) return; - - // 寮�鍚叏灞�绂侀�� - this.isSubmitting = true; - document.body.classList.add('submitting'); - - const that = this; - - // 瀹氫箟涓�涓仮澶嶇姸鎬佺殑鍑芥暟 - const resetState = () => { - that.isSubmitting = false; - document.body.classList.remove('submitting'); - }; - 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) { - resetState(); // 楠岃瘉澶辫触锛屾仮澶嶇姸鎬� - return; - } - 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); - } - }) - .catch((error) => { - console.error(error); - that.$message.error('鎻愪氦澶辫触'); - }) - .finally(() => { - that.confirmLoading = false; - resetState(); // 璇锋眰缁撴潫锛屾仮澶嶇姸鎬� - }); - } - }) - }, - 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> -/* 鍏ㄥ眬绂侀�夋牱寮� - 浣滅敤浜庢暣涓〉闈� */ -html.submitting, -html.submitting body { - pointer-events: none !important; - cursor: wait !important; -} - -/* 钂欏眰鏁堟灉澧炲己 */ -html.submitting::before { - content: ''; - position: fixed; - top: 0; - left: 0; - right: 0; - bottom: 0; - background: rgba(255, 255, 255, 0.5); - z-index: 9998; -} - -/* 鍔犺浇鎸囩ず鍣� - 鏇存槑鏄剧殑瑙嗚鍙嶉 */ -html.submitting::after { - content: '鎻愪氦涓�...'; - position: fixed; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - background: #1890ff; - color: white; - padding: 10px 20px; - border-radius: 4px; - z-index: 9999; -} - -/* 绂佺敤鐘舵�佹寜閽牱寮� */ -.disabled-btn { - opacity: 0.6; - cursor: not-allowed !important; -} -.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 diff --git a/src/views/flowable/workflow/inboundOrder/InboundOrderHandle.vue b/src/views/flowable/workflow/inboundOrder/InboundOrderHandle.vue deleted file mode 100644 index fda8bb8..0000000 --- a/src/views/flowable/workflow/inboundOrder/InboundOrderHandle.vue +++ /dev/null @@ -1,522 +0,0 @@ -<template> - <a-modal - :title="title" - :width="width" - :visible="visible" - :footer="null" - @cancel="handCancel" - > - <a-card :bordered="false"> - <div> - <b>{{ selectInboundOrderData.description }}</b> - <br> - <br> - <a-tag color="blue"> - 澶勭悊浜� {{ selectInboundOrderData.assignee_dictText }} - </a-tag> - <a-tag color="blue"> - 鍒涘缓鏃堕棿 {{ selectInboundOrderData.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'> - <a-row> - <a-col :span='span'> - <a-form-model-item label='鍏ュ簱鍗曠紪鍙�' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='inboundNum'> - <a-input :disabled='coldisabled' v-model='tableRowRecord.inboundNum'></a-input> - </a-form-model-item> - </a-col> - <a-col :span='span'> - <a-form-model-item label='鍏ュ簱绫诲瀷' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='inStorehouseType'> - <j-dict-select-tag :disabled="coldisabled" type="list" v-model="tableRowRecord.inStorehouseType" dictCode="in_storehouse_type" /> - </a-form-model-item> - </a-col> - </a-row> - <a-row> - <a-col :span='span'> - <a-form-model-item label='鍏ュ簱鏃堕棿' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='inboundTime'> - <j-date :disabled="coldisabled" v-model="tableRowRecord.inboundTime" :show-time="true" dateFormat="YYYY-MM-DD HH:mm" style="width: 100%"/> - </a-form-model-item> - </a-col> - <a-col :span='span'> - <a-form-model-item label='鐢宠鍘熷洜' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='applicationReason'> - <a-input :disabled='coldisabled' v-model='tableRowRecord.applicationReason'></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='handler'> - <a-input :disabled='coldisabled' v-model='tableRowRecord.handler_dictText'></a-input> - </a-form-model-item> - </a-col> - <a-col :span='span'> - <a-form-model-item label='澶囨敞' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='remark'> - <a-textarea :disabled="coldisabled" v-model="tableRowRecord.remark" rows="4" /> - </a-form-model-item> - </a-col> - </a-row> - </a-form-model> - </a-tab-pane> - <a-tab-pane key='2' tab='鐢宠鍗曟槑缁嗕俊鎭�'> - <a-table - ref="table" - size="middle" - bordered - rowKey="id" - :scroll="{x:'max-content'}" - :columns="columns" - :dataSource="dataSource" - :pagination="ipagination" - :loading="loading" - :rowSelection="null"> - </a-table> - </a-tab-pane> - <a-tab-pane key='3' tab='娴佺▼鑺傜偣'> - <a-timeline> - <a-timeline-item v-for="(item,index) in hitaskDataSource" :key="index"> - <div> - <h3 style="font-weight: bold;">{{item.taskName}}</h3> - <div>澶勭悊浜猴細{{item.assignee_dictText}}</div> - <div v-if="index !==0">澶勭悊鏃堕暱锛歿{item.duration}}</div> - <div v-if="item.name !== '鎻愪氦鐢宠'">澶勭悊绫诲瀷锛歿{item.sequenceFlowName}}</div> - <div v-if="item.description">澶勭悊鎰忚锛歿{item.description}}</div> - </div> - </a-timeline-item> - </a-timeline> - </a-tab-pane> - </a-tabs> - </a-spin> - </a-form> - </div> - <div v-if="auditVisible"> - <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'> - <a-form-model-item label="鐢宠浜�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop='handler_dictText'> - <a-input :disabled='coldisabled' v-model='tableRowRecord.handler_dictText'></a-input> - </a-form-model-item > - </a-col> - <a-col ::span='span'> - <a-form-model-item label="鐢宠鏃堕棿" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="createTime"> - <a-input :disabled='coldisabled' v-model='tableRowRecord.createTime'></a-input> - </a-form-model-item > - </a-col> - <a-col :span="24" class="btxx"> - <a-form-item label="瀹℃壒鐘舵��" :labelCol="labelCol" :wrapperCol="wrapperCol"> - <a-select v-model='assignFileStream.status' placeholder="璇烽�夋嫨瀹℃壒缁撴灉"> - <a-select-option value="3">閫氳繃</a-select-option> - <a-select-option value="4">椹冲洖</a-select-option> - </a-select> - </a-form-item> - </a-col> - <a-col :span="24" class="btxx"> - <a-form-model-item label="瀹℃壒鎰忚" :labelCol="labelCol" :wrapperCol="wrapperCol"> - <a-textarea v-model="assignFileStream.approvalOpinion" rows="4" placeholder="璇疯緭鍏ュ鎵规剰瑙�"/> - </a-form-model-item > - </a-col> - </a-row> - <div class="table-operator" style="text-align: right;"> - <a-button - @click="handleQueXiaoTask" - icon="close" - :disabled="isSubmitting" - :class="{'disabled-btn': isSubmitting}" - >鍙栨秷</a-button> - <a-button - @click="submitForm" - type="primary" - :disabled="isSubmitting" - :loading="isSubmitting" - > - 鎻� 浜� - </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: { - selectInboundOrderData: { - type: Object, - required: true - } - }, - - data() { - return { - form: this.$form.createForm(this), - span: 12, - span1: 8, - coldisabled: true, - spinning: false, - tableRowRecord: {}, - assignFileStream:{}, - tableDataSource: [], - usageDataSource: [], - hitaskDataSource:[], - dataSource: [], - bomForm: {}, - imageSrc: null, - drawerVisible: true, - auditVisible: true, - loading: false, - labelCol: { - xs: { span: 24 }, - sm: { span: 5 } - }, - wrapperCol: { - xs: { span: 30 }, - sm: { span: 16 } - }, - /* 鍒嗛〉鍙傛暟 */ - ipagination:{ - current: 1, - pageSize: 5, - pageSizeOptions: ['5', '10', '50'], - showTotal: (total, range) => { - return range[0] + "-" + range[1] + " 鍏�" + total + "鏉�" - }, - showQuickJumper: true, - showSizeChanger: true, - total: 0 - }, - columns: [ - { - title: '#', - dataIndex: '', - key:'rowIndex', - width:60, - align:"center", - customRender:function (t,r,index) { - return parseInt(index)+1; - } - }, - { - title:'宸ュ叿缂栫爜', - align:"center", - dataIndex: 'toolCode' - }, - { - title:'宸ュ叿绫诲瀷', - align:"center", - dataIndex: 'applicationType' - }, - { - title:'涓枃鍚嶇О', - align:"center", - dataIndex: 'chineseName' - }, - { - title:'鍨嬪彿/鍥惧彿', - align:"center", - dataIndex: 'toolModel' - }, - { - title:'鐢宠鍏ュ簱鏁伴噺', - align:"center", - dataIndex: 'inStorageQuantity' - }, - ], - validatorRules: { - status: { - rules: [ - { required: true, message: '璇烽�夋嫨瀹℃壒鐘舵��!'}, - ] - }, - }, - approveData: {}, - flowData: {}, - title: '瀹℃壒椤甸潰', - width: 1200, - visible: false, - // 琛ㄥご - url: { - queryInboundOrder: '/tms/inboundOrder/list', - queryInboundDetailList: 'tms/inboundDetail/list', - diagramView: '/assign/flow/diagramView', - queryHisTaskList:'/assign/flow/queryHisTaskList', - approve:"/tms/inboundOrder/approval", - }, - dictOptions: {}, - superFieldList: [], - workflowSource: [], - isSubmitting: false, - } - }, - created() { - }, - computed: {}, - methods: { - callback() { - }, - handCancel() { - this.visible = false - }, - clearTableSource() { - this.tableDataSource = [] - this.usageDataSource = [] - }, - fetchAndShowBmp() { - try { - let parm = { - processDefinitionId: this.flowData.processDefinitionId, - processInstanceId:this.flowData.processInstanceId, - TaskDefinitionKey:this.flowData.processDefinitionKey - } - downFile(this.url.diagramView,parm,'get').then((res=>{ - const urlObject = window.URL.createObjectURL(new Blob([res])) - this.imageSrc = urlObject - })) - } catch (error) { - console.error('Error fetching image blob:', error) - alert('鏃犳硶鍔犺浇鍥剧墖锛岃绋嶅悗鍐嶈瘯銆�') - } - }, - handleQueXiaoTask() { - // 濡傛灉姝e湪鎻愪氦锛岄樆姝㈠彇娑堟搷浣� - if (this.isSubmitting) return; - this.visible = false; - this.routeReload(); - }, - submitForm () { - // 濡傛灉姝e湪鎻愪氦锛岄樆姝㈤噸澶嶇偣鍑� - if (this.isSubmitting) return; - - // 寮�鍚叏灞�绂侀�� - this.isSubmitting = true; - document.body.classList.add('submitting'); - - const that = this; - - // 瀹氫箟涓�涓仮澶嶇姸鎬佺殑鍑芥暟 - const resetState = () => { - that.isSubmitting = false; - document.body.classList.remove('submitting'); - }; - - if (!that.assignFileStream.status==null || that.assignFileStream.status===undefined){ - this.$message.warning('璇烽�夋嫨瀹℃壒鐘舵�侊紒') - return false; - } - if (!that.assignFileStream.approvalOpinion==null || that.assignFileStream.approvalOpinion===undefined) { - this.$message.warning('璇疯緭鍏ュ鎵规剰瑙侊紒') - return false; - } - // 瑙﹀彂琛ㄥ崟楠岃瘉 - this.form.validateFields((err, values) => { - if (err) { - resetState(); // 楠岃瘉澶辫触锛屾仮澶嶇姸鎬� - return; - } - if (!err) { - that.confirmLoading = true; - let url=this.url.approve - let method = 'post'; - let flowTaskVo = {} - flowTaskVo.status=that.assignFileStream.status; - flowTaskVo.approvalOpinion =that.assignFileStream.approvalOpinion; - flowTaskVo.comment =that.assignFileStream.approvalOpinion; - flowTaskVo.dataId = this.selectInboundOrderData.dataId - flowTaskVo.taskId = this.selectInboundOrderData.id - flowTaskVo.userId = this.selectInboundOrderData.assignee - flowTaskVo.instanceId = this.selectInboundOrderData.procInstId - flowTaskVo.targetKey = this.selectInboundOrderData.taskDefKey - flowTaskVo.values = this.selectInboundOrderData.variables - flowTaskVo.assignee = this.selectInboundOrderData.assignee - 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); - } - }) - .catch((error) => { - console.error(error); - that.$message.error('鎻愪氦澶辫触'); - }) - .finally(() => { - that.confirmLoading = false; - resetState(); // 璇锋眰缁撴潫锛屾仮澶嶇姸鎬� - }); - } - - }) - }, - getAllApproveData(item) { - this.visible = true - this.loading = true - this.flowData = item - getAction(this.url.queryHisTaskList, {procInstId: item.procInstId}).then(res=>{ - if(res.success){ - this.hitaskDataSource = res.result - } - }) - getAction(this.url.queryInboundOrder, {id: item.dataId}).then((res => { - if (res.success) { - this.tableRowRecord = res.result.records[0] - } - })) - getAction(this.url.queryInboundDetailList, {inboundOrderId: item.dataId}).then(res => { - if (res.success) { - this.dataSource = res.result.records - if (res.result.total) { - this.ipagination.total = res.result.total - } else { - this.ipagination.total = 0 - } - } else { - this.$message.warning(res.message) - } - }).finally(() => { - this.loading = false - }) - } - } -} -</script> -<style scoped> -/* 鍏ㄥ眬绂侀�夋牱寮� - 浣滅敤浜庢暣涓〉闈� */ -html.submitting, -html.submitting body { - pointer-events: none !important; - cursor: wait !important; -} - -/* 钂欏眰鏁堟灉澧炲己 */ -html.submitting::before { - content: ''; - position: fixed; - top: 0; - left: 0; - right: 0; - bottom: 0; - background: rgba(255, 255, 255, 0.5); - z-index: 9998; -} - -/* 鍔犺浇鎸囩ず鍣� - 鏇存槑鏄剧殑瑙嗚鍙嶉 */ -html.submitting::after { - content: '鎻愪氦涓�...'; - position: fixed; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - background: #1890ff; - color: white; - padding: 10px 20px; - border-radius: 4px; - z-index: 9999; -} - -/* 绂佺敤鐘舵�佹寜閽牱寮� */ -.disabled-btn { - opacity: 0.6; - cursor: not-allowed !important; -} -.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 diff --git a/src/views/flowable/workflow/lossBound/lossBoundHandle.vue b/src/views/flowable/workflow/lossBound/lossBoundHandle.vue deleted file mode 100644 index 5d932c7..0000000 --- a/src/views/flowable/workflow/lossBound/lossBoundHandle.vue +++ /dev/null @@ -1,582 +0,0 @@ -<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"> - <a-row> - <a-col :span="span"> - <a-form-model-item label="鎶ユ崯鍗曞崟鍙�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="outNum"> - <a-input disabled v-model="tableRowRecord.orderCode"></a-input> - </a-form-model-item> - </a-col> - <a-col :span="span"> - <a-form-model-item label="鎶ユ崯浜�" :labelCol="labelCol" :wrapperCol="wrapperCol" - prop="outStorehouseType"> - <j-dict-select-tag disabled - v-model="tableRowRecord.losser" dictCode="sys_user,realname,id" - placeholder="璇烽�夋嫨" /> - </a-form-model-item> - </a-col> - </a-row> - <a-row> - <a-col :span="span"> - <a-form-model-item label="鎶ユ崯鏃堕棿" :labelCol="labelCol" :wrapperCol="wrapperCol" - prop="outboundTime"> - <j-date disabled v-model="tableRowRecord.lossTime" :show-time="true" - dateFormat="YYYY-MM-DD HH:mm" style="width: 100%" /> - </a-form-model-item> - </a-col> - <a-col :span="span"> - <a-form-model-item label="鎶ユ崯鍘熷洜" :labelCol="labelCol" :wrapperCol="wrapperCol" - prop="subjectMatter"> - <a-input disabled v-model="tableRowRecord.lossReason"></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="handler"> - <j-dict-select-tag disabled - v-model="tableRowRecord.handler" dictCode="sys_user,realname,id" - placeholder="璇烽�夋嫨" /> - </a-form-model-item> - </a-col> - <a-col :span="span"> - <a-form-model-item label="澶囨敞" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="remark"> - <a-textarea disabled v-model="tableRowRecord.remark" rows="4" /> - </a-form-model-item> - </a-col> - </a-row> - </a-form-model> - </a-tab-pane> - <a-tab-pane key="2" tab="鎶ユ崯鏄庣粏淇℃伅"> - <a-table - ref="table" - size="middle" - bordered - rowKey="id" - :scroll="{x:'max-content'}" - :columns="columns" - :dataSource="dataSource" - :pagination="ipagination" - :loading="loading" - :rowSelection="null"> - </a-table> - </a-tab-pane> - <a-tab-pane key="3" tab="娴佺▼鑺傜偣"> - <a-timeline> - <a-timeline-item v-for="(item,index) in hitaskDataSource" :key="index"> - <div> - <h3 style="font-weight: bold;">{{ item.taskName }}</h3> - <div>澶勭悊浜猴細{{ item.assignee_dictText }}</div> - <div v-if="index !==0">澶勭悊鏃堕暱锛歿{ item.duration }}</div> - <div v-if="item.name !== '鎻愪氦鐢宠'">澶勭悊绫诲瀷锛歿{ item.sequenceFlowName }}</div> - <div v-if="item.description">澶勭悊鎰忚锛歿{ item.description }}</div> - </div> - </a-timeline-item> - </a-timeline> - </a-tab-pane> - </a-tabs> - </a-spin> - </a-form> - </div> - <div v-if="auditVisible"> - <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"> - <a-form-model-item label="鐢宠浜�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="handler_dictText"> - <a-input :readOnly="inputReadOnly" v-model="tableRowRecord.handler_dictText"></a-input> - </a-form-model-item> - </a-col> - <a-col ::span="span"> - <a-form-model-item label="鐢宠鏃堕棿" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="createTime"> - <a-input :readOnly="inputReadOnly" v-model="tableRowRecord.createTime"></a-input> - </a-form-model-item> - </a-col> - <a-col :span="24" class="btxx"> - <a-form-item label="瀹℃壒鐘舵��" :labelCol="labelCol" :wrapperCol="wrapperCol"> - <a-select :disabled="disableSubmit" v-model="assignFileStream.status" placeholder="璇烽�夋嫨瀹℃壒缁撴灉"> - <a-select-option value="3">閫氳繃</a-select-option> - <a-select-option value="4">椹冲洖</a-select-option> - </a-select> - </a-form-item> - </a-col> - <a-col :span="24" class="btxx"> - <a-form-model-item label="瀹℃壒鎰忚" :labelCol="labelCol" :wrapperCol="wrapperCol"> - <a-textarea :disabled="disableSubmit" v-model="assignFileStream.approvalOpinion" rows="4" - placeholder="璇疯緭鍏ュ鎵规剰瑙�" /> - </a-form-model-item> - </a-col> - </a-row> - <div class="table-operator" style="text-align: right;"> - <a-button - @click="handleQueXiaoTask" - icon="close" - :disabled="isSubmitting" - :class="{'disabled-btn': isSubmitting}" - >鍙栨秷</a-button> - <a-button - @click="submitForm" - type="primary" - :disabled="isSubmitting" - :loading="isSubmitting" - > - 鎻� 浜� - </a-button> - </div> - </a-form-model> - </div> - </a-card> - - - </a-modal> -</template> - -<script> - -import '@assets/less/TableExpand.less' -import { mixinDevice } from '@/utils/mixin' -import { downFile, getAction, httpAction } from '@api/manage' - -export default { - name: 'lossBoundHandle', - mixins: [mixinDevice], - props: { - selectShenpiData: { - type: Object, - required: true - } - }, - - data() { - return { - form: this.$form.createForm(this), - span: 12, - span1: 8, - disableSubmit: false, - inputReadOnly: true, - spinning: false, - tableRowRecord: {}, - assignFileStream: {}, - tableDataSource: [], - usageDataSource: [], - hitaskDataSource: [], - dataSource: [], - bomForm: {}, - imageSrc: null, - drawerVisible: true, - auditVisible: true, - loading: false, - labelCol: { - xs: { span: 24 }, - sm: { span: 5 } - }, - wrapperCol: { - xs: { span: 30 }, - sm: { span: 16 } - }, - /* 鍒嗛〉鍙傛暟 */ - ipagination: { - current: 1, - pageSize: 5, - pageSizeOptions: ['5', '10', '50'], - showTotal: (total, range) => { - return range[0] + '-' + range[1] + ' 鍏�' + total + '鏉�' - }, - showQuickJumper: true, - showSizeChanger: true, - total: 0 - }, - columns: [ - { - title: '#', - dataIndex: '', - key: 'rowIndex', - width: 60, - align: 'center', - customRender: function(t, r, index) { - return parseInt(index) + 1 - } - }, - { - title: '鍒�鍏风紪鍙�', - align: 'center', - dataIndex: 'toolCode' - }, - { - title: '宸ュ叿绫诲瀷', - align: 'center', - dataIndex: 'applicationType_dictText' - }, - { - title: '鎶ユ崯鍘熷洜', - align: 'center', - dataIndex: 'lossReason' - }, - { - title: '鎶ユ崯鏁伴噺', - align: 'center', - dataIndex: 'lossNumber' - }, - { - title: '涓枃鍚嶇О', - align: 'center', - dataIndex: 'chineseName' - }, - { - title: '鍨嬪彿/鍥惧彿', - align: 'center', - dataIndex: 'toolModel' - }, - { - title: '鍒�鍏锋潗鏂�', - align: 'center', - dataIndex: 'toolMaterial' - }, - { - title: '闆朵欢鏉愭枡', - align: 'center', - dataIndex: 'partMaterial' - }, - { - title: '鍘傚', - align: 'center', - dataIndex: 'supplierId' - }, - { - title: '瀛樺偍浣嶇疆(搴撲綅鍙�)', - align: 'center', - dataIndex: 'positionCode' - }, - - { - title: '鍒涘缓鏃堕棿', - align: 'center', - dataIndex: 'createTime' - }, - { - title: '澶囨敞', - align: 'center', - dataIndex: 'remark' - } - ], - validatorRules: { - status: { - rules: [ - { required: true, message: '璇烽�夋嫨瀹℃壒鐘舵��!' } - ] - } - }, - approveData: {}, - flowData: {}, - title: '瀹℃壒椤甸潰', - width: 1200, - visible: false, - // 琛ㄥご - url: { - queryLossBoundOrder: '/tms/toolsLossBound/queryById', - queryLossBoundDetailList: '/tms/toolsLossBound/listlossboundDetailByMainId', - diagramView: '/assign/flow/diagramView', - queryHisTaskList: '/assign/flow/queryHisTaskList', - approve: '/tms/toolsLossBound/approval' - }, - dictOptions: {}, - superFieldList: [], - workflowSource: [], - isSubmitting: false, - } - }, - 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() { - // 濡傛灉姝e湪鎻愪氦锛岄樆姝㈠彇娑堟搷浣� - if (this.isSubmitting) return; - this.visible = false; - this.routeReload(); - }, - submitForm() { - // 濡傛灉姝e湪鎻愪氦锛岄樆姝㈤噸澶嶇偣鍑� - if (this.isSubmitting) return; - - // 寮�鍚叏灞�绂侀�� - this.isSubmitting = true; - document.body.classList.add('submitting'); - - const that = this; - - // 瀹氫箟涓�涓仮澶嶇姸鎬佺殑鍑芥暟 - const resetState = () => { - that.isSubmitting = false; - document.body.classList.remove('submitting'); - }; - - if (!that.assignFileStream.status == null || that.assignFileStream.status === undefined) { - this.$message.warning('璇烽�夋嫨瀹℃壒鐘舵�侊紒') - return false - } - if (!that.assignFileStream.approvalOpinion == null || that.assignFileStream.approvalOpinion === undefined) { - this.$message.warning('璇疯緭鍏ュ鎵规剰瑙侊紒') - return false - } - // 瑙﹀彂琛ㄥ崟楠岃瘉 - this.form.validateFields((err, values) => { - if (err) { - resetState(); // 楠岃瘉澶辫触锛屾仮澶嶇姸鎬� - return; - } - if (!err) { - that.confirmLoading = true - let url = this.url.approve - let method = 'post' - let flowTaskVo = {} - flowTaskVo.status = that.assignFileStream.status - flowTaskVo.approvalOpinion = that.assignFileStream.approvalOpinion - flowTaskVo.comment = that.assignFileStream.approvalOpinion - flowTaskVo.dataId = this.selectShenpiData.dataId - flowTaskVo.taskId = this.selectShenpiData.id - flowTaskVo.userId = this.selectShenpiData.assignee - flowTaskVo.instanceId = this.selectShenpiData.procInstId - flowTaskVo.targetKey = this.selectShenpiData.taskDefKey - flowTaskVo.values = this.selectShenpiData.variables - flowTaskVo.assignee = this.selectShenpiData.assignee - 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) - } - }) - .catch((error) => { - console.error(error); - that.$message.error('鎻愪氦澶辫触'); - }) - .finally(() => { - that.confirmLoading = false; - resetState(); // 璇锋眰缁撴潫锛屾仮澶嶇姸鎬� - }); - } - - }) - }, - /** - * 鑾峰彇娴佺▼鑺傜偣鍜屾祦绋嬪浘 - * @param record 寰呭姙璁板綍淇℃伅 - */ - getAllApproveData(item) { - this.visible = true - this.loading = true - console.log('selectShenpiData----->', this.selectShenpiData) - this.flowData = item - getAction(this.url.queryHisTaskList, { procInstId: item.procInstId }).then(res => { - if (res.success) { - this.hitaskDataSource = res.result - } - }) - getAction(this.url.queryLossBoundOrder, { id: item.dataId }).then((res => { - if (res.success) { - this.tableRowRecord = res.result - } - })) - getAction(this.url.queryLossBoundDetailList, { lossBoundId: item.dataId }).then(res => { - if (res.success) { - this.dataSource = res.result.records - if (res.result.total) { - this.ipagination.total = res.result.total - } else { - this.ipagination.total = 0 - } - } else { - this.$message.warning(res.message) - } - }).finally(() => { - this.loading = false - }) - } - } -} -</script> -<style scoped> -/* 鍏ㄥ眬绂侀�夋牱寮� - 浣滅敤浜庢暣涓〉闈� */ -html.submitting, -html.submitting body { - pointer-events: none !important; - cursor: wait !important; -} - -/* 钂欏眰鏁堟灉澧炲己 */ -html.submitting::before { - content: ''; - position: fixed; - top: 0; - left: 0; - right: 0; - bottom: 0; - background: rgba(255, 255, 255, 0.5); - z-index: 9998; -} - -/* 鍔犺浇鎸囩ず鍣� - 鏇存槑鏄剧殑瑙嗚鍙嶉 */ -html.submitting::after { - content: '鎻愪氦涓�...'; - position: fixed; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - background: #1890ff; - color: white; - padding: 10px 20px; - border-radius: 4px; - z-index: 9999; -} - -/* 绂佺敤鐘舵�佹寜閽牱寮� */ -.disabled-btn { - opacity: 0.6; - cursor: not-allowed !important; -} -.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 diff --git a/src/views/flowable/workflow/outBoundOrder/OutBoundOrderHandle.vue b/src/views/flowable/workflow/outBoundOrder/OutBoundOrderHandle.vue deleted file mode 100644 index ee3e296..0000000 --- a/src/views/flowable/workflow/outBoundOrder/OutBoundOrderHandle.vue +++ /dev/null @@ -1,569 +0,0 @@ -<!-- - 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'> - <a-row> - <a-col :span='span'> - <a-form-model-item label='鍑哄簱鍗曠紪鍙�' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='outNum'> - <a-input :disabled='coldisabled' v-model='tableRowRecord.outNum'></a-input> - </a-form-model-item> - </a-col> - <a-col :span='span'> - <a-form-model-item label='鍑哄簱绫诲瀷' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='outStorehouseType'> - <j-dict-select-tag :disabled="coldisabled" type="list" v-model="tableRowRecord.outStorehouseType" dictCode="out_storehouse_type" /> - </a-form-model-item> - </a-col> - </a-row> - <a-row> - <a-col :span='span'> - <a-form-model-item label='鍑哄簱鏃堕棿' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='outboundTime'> - <j-date :disabled="coldisabled" v-model="tableRowRecord.outboundTime" :show-time="true" dateFormat="YYYY-MM-DD HH:mm" style="width: 100%"/> - </a-form-model-item> - </a-col> - <a-col :span='span'> - <a-form-model-item label='棰嗙敤浜嬬敱' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='subjectMatter'> - <a-input :disabled='coldisabled' v-model='tableRowRecord.subjectMatter'></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='handler'> - <a-input :disabled='coldisabled' v-model='tableRowRecord.handler_dictText'></a-input> - </a-form-model-item> - </a-col> - <a-col :span='span'> - <a-form-model-item label='澶囨敞' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='remark'> - <a-textarea :disabled="coldisabled" v-model="tableRowRecord.remark" rows="4" /> - </a-form-model-item> - </a-col> - </a-row> - </a-form-model> - </a-tab-pane> - <a-tab-pane key='2' tab='鐢宠鏄庣粏淇℃伅'> - <a-table - ref="table" - size="middle" - bordered - rowKey="id" - :scroll="{x:'max-content'}" - :columns="columns" - :dataSource="dataSource" - :pagination="ipagination" - :loading="loading" - :rowSelection="null"> - </a-table> - </a-tab-pane> - <a-tab-pane key='3' tab='娴佺▼鑺傜偣'> - <a-timeline> - <a-timeline-item v-for="(item,index) in hitaskDataSource" :key="index"> - <div> - <h3 style="font-weight: bold;">{{item.taskName}}</h3> - <div>澶勭悊浜猴細{{item.assignee_dictText}}</div> - <div v-if="index !==0">澶勭悊鏃堕暱锛歿{item.duration}}</div> - <div v-if="item.name !== '鎻愪氦鐢宠'">澶勭悊绫诲瀷锛歿{item.sequenceFlowName}}</div> - <div v-if="item.description">澶勭悊鎰忚锛歿{item.description}}</div> - </div> - </a-timeline-item> - </a-timeline> - </a-tab-pane> - </a-tabs> - </a-spin> - </a-form> - </div> - <div v-if="auditVisible"> - <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'> - <a-form-model-item label="鐢宠浜�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop='handler_dictText'> - <a-input :disabled='coldisabled' v-model='tableRowRecord.handler_dictText'></a-input> - </a-form-model-item > - </a-col> - <a-col ::span='span'> - <a-form-model-item label="鐢宠鏃堕棿" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="createTime"> - <a-input :disabled='coldisabled' v-model='tableRowRecord.createTime'></a-input> - </a-form-model-item > - </a-col> - <a-col :span="24" class="btxx"> - <a-form-item label="瀹℃壒鐘舵��" :labelCol="labelCol" :wrapperCol="wrapperCol"> - <a-select v-model='assignFileStream.status' placeholder="璇烽�夋嫨瀹℃壒缁撴灉"> - <a-select-option value="3">閫氳繃</a-select-option> - <a-select-option value="4">椹冲洖</a-select-option> - </a-select> - </a-form-item> - </a-col> - <a-col :span="24" class="btxx"> - <a-form-model-item label="瀹℃壒鎰忚" :labelCol="labelCol" :wrapperCol="wrapperCol"> - <a-textarea v-model="assignFileStream.approvalOpinion" rows="4" placeholder="璇疯緭鍏ュ鎵规剰瑙�"/> - </a-form-model-item > - </a-col> - </a-row> - <div class="table-operator" style="text-align: right;"> - <a-button - @click="handleQueXiaoTask" - icon="close" - :disabled="isSubmitting" - :class="{'disabled-btn': isSubmitting}" - >鍙栨秷</a-button> - <a-button - @click="submitForm" - type="primary" - :disabled="isSubmitting" - :loading="isSubmitting" - > - 鎻� 浜� - </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:[], - dataSource: [], - bomForm: {}, - imageSrc: null, - drawerVisible: true, - auditVisible: true, - loading: false, - labelCol: { - xs: { span: 24 }, - sm: { span: 5 } - }, - wrapperCol: { - xs: { span: 30 }, - sm: { span: 16 } - }, - /* 鍒嗛〉鍙傛暟 */ - ipagination:{ - current: 1, - pageSize: 5, - pageSizeOptions: ['5', '10', '50'], - showTotal: (total, range) => { - return range[0] + "-" + range[1] + " 鍏�" + total + "鏉�" - }, - showQuickJumper: true, - showSizeChanger: true, - total: 0 - }, - columns: [ - { - title: '#', - dataIndex: '', - key:'rowIndex', - width:60, - align:"center", - customRender:function (t,r,index) { - return parseInt(index)+1; - } - }, - { - title:'宸ュ叿缂栫爜', - align:"left", - dataIndex: 'toolNum' - }, - { - title:'宸ュ叿缂栧彿', - align:"left", - dataIndex: 'toolId' - }, - { - title:'宸ュ叿绫诲瀷', - align:"center", - dataIndex: 'applicationType_dictText' - }, - { - title:'涓枃鍚嶇О', - align:"center", - dataIndex: 'chineseName' - }, - { - title:'鍨嬪彿/鍥惧彿', - align:"left", - dataIndex: 'toolModel' - }, - { - title:'鍒�鍏锋潗鏂�', - align:"center", - dataIndex: 'toolMaterial' - }, - { - title:'闆朵欢鏉愭枡', - align:"center", - dataIndex: 'partMaterial' - }, - { - title:'鍘傚', - align:"center", - dataIndex: 'supplierId' - }, - { - title:'浠撳簱', - align:"center", - dataIndex: 'warehouseName' - }, - { - title:'鍑哄簱搴撲綅', - align:"center", - dataIndex: 'outboundLocation' - }, - { - title:'鍙敤搴撳瓨鏁伴噺', - align:"left", - dataIndex: 'quantity' - }, - { - title:'鐢宠鍑哄簱鏁伴噺', - align:"left", - dataIndex: 'outboundQuantity' - }, - { - title:'鍒涘缓鏃堕棿', - align:"left", - dataIndex: 'createTime' - } - ], - validatorRules: { - status: { - rules: [ - { required: true, message: '璇烽�夋嫨瀹℃壒鐘舵��!'}, - ] - }, - }, - approveData: {}, - flowData: {}, - title: '瀹℃壒椤甸潰', - width: 1200, - visible: false, - // 琛ㄥご - url: { - queryOutBoundOrder: '/tms/outboundOrder/queryById', - queryOutBoundDetailList: '/tms/outboundOrder/listOutboundDetailByMainId', - diagramView: '/assign/flow/diagramView', - queryHisTaskList:'/assign/flow/queryHisTaskList', - approve:"/tms/outboundOrder/approval", - }, - dictOptions: {}, - superFieldList: [], - workflowSource: [], - isSubmitting: false, - } - }, - created() { - }, - computed: {}, - methods: { - callback() { - }, - handCancel() { - this.assignFileStream = {} - 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() { - // 濡傛灉姝e湪鎻愪氦锛岄樆姝㈠彇娑堟搷浣� - if (this.isSubmitting) return; - this.visible = false; - this.routeReload(); - }, - submitForm () { - // 濡傛灉姝e湪鎻愪氦锛岄樆姝㈤噸澶嶇偣鍑� - if (this.isSubmitting) return; - - // 寮�鍚叏灞�绂侀�� - this.isSubmitting = true; - document.body.classList.add('submitting'); - - const that = this; - - // 瀹氫箟涓�涓仮澶嶇姸鎬佺殑鍑芥暟 - const resetState = () => { - that.isSubmitting = false; - document.body.classList.remove('submitting'); - }; - if (!that.assignFileStream.status==null || that.assignFileStream.status===undefined){ - this.$message.warning('璇烽�夋嫨瀹℃壒鐘舵�侊紒') - return false; - } - if (!that.assignFileStream.approvalOpinion==null || that.assignFileStream.approvalOpinion===undefined) { - this.$message.warning('璇疯緭鍏ュ鎵规剰瑙侊紒') - return false; - } - // 瑙﹀彂琛ㄥ崟楠岃瘉 - this.form.validateFields((err, values) => { - if (err) { - resetState(); // 楠岃瘉澶辫触锛屾仮澶嶇姸鎬� - return; - } - if (!err) { - that.confirmLoading = true; - let url=this.url.approve - let method = 'post'; - let flowTaskVo = {} - flowTaskVo.status=that.assignFileStream.status; - flowTaskVo.approvalOpinion =that.assignFileStream.approvalOpinion; - flowTaskVo.comment =that.assignFileStream.approvalOpinion; - flowTaskVo.dataId = this.selectShenpiData.dataId - flowTaskVo.taskId = this.selectShenpiData.id - flowTaskVo.userId = this.selectShenpiData.assignee - flowTaskVo.instanceId = this.selectShenpiData.procInstId - flowTaskVo.targetKey = this.selectShenpiData.taskDefKey - flowTaskVo.values = this.selectShenpiData.variables - flowTaskVo.assignee = this.selectShenpiData.assignee - console.log("琛ㄥ崟鎻愪氦鏁版嵁",flowTaskVo) - httpAction(url,flowTaskVo,method).then((res)=>{ - if(res.success){ - that.$message.success(res.message); - this.handCancel() - //鍒锋柊琛ㄦ牸 - that.$emit('searchReset') - }else{ - that.$message.warning(res.message); - } - }) - .catch((error) => { - console.error(error); - that.$message.error('鎻愪氦澶辫触'); - }) - .finally(() => { - that.confirmLoading = false; - resetState(); // 璇锋眰缁撴潫锛屾仮澶嶇姸鎬� - }); - } - }) - }, - getAllApproveData(item) { - this.visible = true - this.loading = true - console.log('selectShenpiData----->', this.selectShenpiData) - this.flowData = item - getAction(this.url.queryHisTaskList, {procInstId: item.procInstId}).then(res=>{ - if(res.success){ - this.hitaskDataSource = res.result - } - }) - getAction(this.url.queryOutBoundOrder, {id: item.dataId}).then((res => { - if (res.success) { - this.tableRowRecord = res.result - } - })) - getAction(this.url.queryOutBoundDetailList, {outStorehouseId: item.dataId}).then(res => { - if (res.success) { - this.dataSource = res.result.records - if (res.result.total) { - this.ipagination.total = res.result.total - } else { - this.ipagination.total = 0 - } - } else { - this.$message.warning(res.message) - } - }).finally(() => { - this.loading = false - }) - } - } -} -</script> -<style scoped> -/* 鍏ㄥ眬绂侀�夋牱寮� - 浣滅敤浜庢暣涓〉闈� */ -html.submitting, -html.submitting body { - pointer-events: none !important; - cursor: wait !important; -} - -/* 钂欏眰鏁堟灉澧炲己 */ -html.submitting::before { - content: ''; - position: fixed; - top: 0; - left: 0; - right: 0; - bottom: 0; - background: rgba(255, 255, 255, 0.5); - z-index: 9998; -} - -/* 鍔犺浇鎸囩ず鍣� - 鏇存槑鏄剧殑瑙嗚鍙嶉 */ -html.submitting::after { - content: '鎻愪氦涓�...'; - position: fixed; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - background: #1890ff; - color: white; - padding: 10px 20px; - border-radius: 4px; - z-index: 9999; -} - -/* 绂佺敤鐘舵�佹寜閽牱寮� */ -.disabled-btn { - opacity: 0.6; - cursor: not-allowed !important; -} -.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 diff --git a/src/views/flowable/workflow/sparePartApply/SparePartApplyHandle.vue b/src/views/flowable/workflow/sparePartApply/SparePartApplyHandle.vue deleted file mode 100644 index 972be29..0000000 --- a/src/views/flowable/workflow/sparePartApply/SparePartApplyHandle.vue +++ /dev/null @@ -1,576 +0,0 @@ -<!-- - 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>{{ selectSparePartApplyData.description }}</b> - <br> - <br> - <a-tag color="blue"> - 澶勭悊浜� {{ selectSparePartApplyData.assignee_dictText }} - </a-tag> - <a-tag color="blue"> - 鍒涘缓鏃堕棿 {{ selectSparePartApplyData.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='2' - tab='鐢宠鏄庣粏淇℃伅' - > - <a-row> - <a-col :span='span'> - <a-form-model-item - label='澶囦欢璇疯喘鍗曠紪鍙�' - :labelCol='labelCol' - :wrapperCol='wrapperCol' - prop='requisitionCode' - > - <a-input - :disabled='coldisabled' - v-model='tableRowRecord.requisitionCode' - ></a-input> - </a-form-model-item> - </a-col> - </a-row> - <a-table - ref="table" - size="middle" - bordered - rowKey="id" - :scroll="{x:'max-content'}" - :columns="columns" - :dataSource="dataSource" - :pagination="ipagination" - :loading="loading" - :rowSelection="null" - > - </a-table> - </a-tab-pane> - <a-tab-pane - key='3' - tab='娴佺▼鑺傜偣' - > - <a-timeline> - <a-timeline-item - v-for="(item,index) in hitaskDataSource" - :key="index" - > - <div> - <h3 style="font-weight: bold;">{{item.taskName}}</h3> - <div>澶勭悊浜猴細{{item.assignee_dictText}}</div> - <div v-if="index !==0">澶勭悊鏃堕暱锛歿{item.duration}}</div> - <div v-if="item.name !== '鎻愪氦鐢宠'">澶勭悊绫诲瀷锛歿{item.sequenceFlowName}}</div> - <div v-if="item.description">澶勭悊鎰忚锛歿{item.description}}</div> - </div> - </a-timeline-item> - </a-timeline> - </a-tab-pane> - </a-tabs> - </a-spin> - </a-form> - </div> - <div v-if="auditVisible"> - <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'> - <a-form-model-item - label="鐢宠浜�" - :labelCol="labelCol" - :wrapperCol="wrapperCol" - prop='reportUser' - > - <a-input - :disabled='coldisabled' - v-model='tableRowRecord.reportUser' - ></a-input> - </a-form-model-item> - </a-col> - <a-col ::span='span'> - <a-form-model-item - label="鐢宠鏃堕棿" - :labelCol="labelCol" - :wrapperCol="wrapperCol" - prop="createTime" - > - <a-input - :disabled='coldisabled' - v-model='tableRowRecord.createTime' - ></a-input> - </a-form-model-item> - </a-col> - <a-col - :span="24" - class="btxx" - > - <a-form-item - label="瀹℃壒鐘舵��" - :labelCol="labelCol" - :wrapperCol="wrapperCol" - > - <a-select - v-model='assignFileStream.status' - placeholder="璇烽�夋嫨瀹℃壒缁撴灉" - > - <a-select-option value="1">閫氳繃</a-select-option> - <a-select-option value="2">椹冲洖</a-select-option> - </a-select> - </a-form-item> - </a-col> - <a-col - :span="24" - class="btxx" - > - <a-form-model-item - label="瀹℃壒鎰忚" - :labelCol="labelCol" - :wrapperCol="wrapperCol" - > - <a-textarea - v-model="assignFileStream.approvalOpinion" - rows="4" - placeholder="璇疯緭鍏ュ鎵规剰瑙�" - /> - </a-form-model-item> - </a-col> - </a-row> - <div - class="table-operator" - style="text-align: right;" - > - <a-button - @click="handleQueXiaoTask" - icon="close" - :disabled="isSubmitting" - :class="{'disabled-btn': isSubmitting}" - >鍙栨秷</a-button> - <a-button - @click="submitForm" - type="primary" - :disabled="isSubmitting" - :loading="isSubmitting" - > - 鎻� 浜� - </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: { - selectSparePartApplyData: { - type: Object, - required: true - } - }, - - data() { - return { - form: this.$form.createForm(this), - span: 12, - span1: 8, - coldisabled: true, - spinning: false, - tableRowRecord: {}, - assignFileStream: {}, - tableDataSource: [], - usageDataSource: [], - hitaskDataSource: [], - dataSource: [], - bomForm: {}, - imageSrc: null, - drawerVisible: true, - auditVisible: true, - loading: false, - labelCol: { - xs: { span: 24 }, - sm: { span: 5 } - }, - wrapperCol: { - xs: { span: 30 }, - sm: { span: 16 } - }, - /* 鍒嗛〉鍙傛暟 */ - ipagination: { - current: 1, - pageSize: 5, - pageSizeOptions: ['5', '10', '50'], - showTotal: (total, range) => { - return range[0] + "-" + range[1] + " 鍏�" + total + "鏉�" - }, - showQuickJumper: true, - showSizeChanger: true, - total: 0 - }, - columns: [ - { - title: '#', - dataIndex: '', - key: 'rowIndex', - width: 60, - align: "center", - customRender: function (t, r, index) { - return parseInt(index) + 1; - } - }, - { - title: '澶囦欢鍒嗙被', - align: "left", - dataIndex: 'partCategory' - }, - { - title: '澶囦欢缂栫爜', - align: "left", - dataIndex: 'partCode' - }, - { - title: '澶囦欢鍚嶇О', - align: "center", - dataIndex: 'partName' - }, - { - title: '澶囦欢瑙勬牸', - align: "center", - dataIndex: 'partModel' - }, - { - title: '鍨嬪彿', - align: "center", - dataIndex: 'partSpecification' - }, - - { - title: '鐢宠鏁伴噺', - align: "center", - dataIndex: 'quantity' - }, - ], - validatorRules: { - status: { - rules: [ - { required: true, message: '璇烽�夋嫨瀹℃壒鐘舵��!' }, - ] - }, - }, - approveData: {}, - flowData: {}, - title: '瀹℃壒椤甸潰', - width: 1200, - visible: false, - // 琛ㄥご - url: { - getSparePartRequisitionList: '/eam/eamSparePartRequisition/getSparePartRequisitionList', - diagramView: '/assign/flow/diagramView', - queryHisTaskList: '/assign/flow/queryHisTaskList', - approve: "/eam/eamSparePartRequisition/approval", - }, - dictOptions: {}, - superFieldList: [], - workflowSource: [], - isSubmitting: false, - } - }, - created() { - }, - computed: {}, - methods: { - callback() { - }, - handCancel() { - this.assignFileStream = {} - 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() { - // 濡傛灉姝e湪鎻愪氦锛岄樆姝㈠彇娑堟搷浣� - if (this.isSubmitting) return; - this.visible = false; - this.routeReload(); - }, - submitForm() { - // 濡傛灉姝e湪鎻愪氦锛岄樆姝㈤噸澶嶇偣鍑� - if (this.isSubmitting) return; - - // 寮�鍚叏灞�绂侀�� - this.isSubmitting = true; - document.body.classList.add('submitting'); - - const that = this; - - // 瀹氫箟涓�涓仮澶嶇姸鎬佺殑鍑芥暟 - const resetState = () => { - that.isSubmitting = false; - document.body.classList.remove('submitting'); - }; - that.spinning = true - if (!that.assignFileStream.status == null || that.assignFileStream.status === undefined) { - this.$message.warning('璇烽�夋嫨瀹℃壒鐘舵�侊紒') - return false; - } - if (!that.assignFileStream.approvalOpinion == null || that.assignFileStream.approvalOpinion === undefined) { - this.$message.warning('璇疯緭鍏ュ鎵规剰瑙侊紒') - return false; - } - // 瑙﹀彂琛ㄥ崟楠岃瘉 - this.form.validateFields((err, values) => { - if (err) { - resetState(); // 楠岃瘉澶辫触锛屾仮澶嶇姸鎬� - return; - } - if (!err) { - that.confirmLoading = true; - let url = this.url.approve - let method = 'post'; - let EamSparePartRequisitionRequest = {} - EamSparePartRequisitionRequest.id = this.flowData.dataId - EamSparePartRequisitionRequest.status = that.assignFileStream.status; - EamSparePartRequisitionRequest.approvalOpinion = that.assignFileStream.approvalOpinion; - EamSparePartRequisitionRequest.comment = that.assignFileStream.approvalOpinion; - EamSparePartRequisitionRequest.dataId = this.selectSparePartApplyData.dataId - EamSparePartRequisitionRequest.taskId = this.selectSparePartApplyData.id - EamSparePartRequisitionRequest.userId = this.selectSparePartApplyData.assignee - EamSparePartRequisitionRequest.instanceId = this.selectSparePartApplyData.procInstId - EamSparePartRequisitionRequest.targetKey = this.selectSparePartApplyData.taskDefKey - EamSparePartRequisitionRequest.values = this.selectSparePartApplyData.variables - EamSparePartRequisitionRequest.assignee = this.selectSparePartApplyData.assignee - httpAction(url, EamSparePartRequisitionRequest, method).then((res) => { - if (res.success) { - that.$message.success(res.message); - this.handCancel() - //鍒锋柊琛ㄦ牸 - that.$emit('searchReset') - } else { - that.$message.warning(res.message); - } - }) - .catch((error) => { - console.error(error); - that.$message.error('鎻愪氦澶辫触'); - }) - .finally(() => { - that.confirmLoading = false; - resetState(); // 璇锋眰缁撴潫锛屾仮澶嶇姸鎬� - }); - } - - }) - }, - - - getAllApproveData(item) { - this.tableRowRecord = {} - this.assignFileStream = {} - this.visible = true - this.loading = true - console.log('selectSparePartApplyData----->', this.selectSparePartApplyData) - this.flowData = item - getAction(this.url.queryHisTaskList, { procInstId: item.procInstId }).then(res => { - if (res.success) { - this.hitaskDataSource = res.result - } - }) - getAction(this.url.getSparePartRequisitionList, { id: item.dataId }).then(res => { - if (res.success) { - this.tableRowRecord.requisitionCode = res.result.records[0].requisitionCode - this.tableRowRecord.reportUser = res.result.records[0].reportUser - this.tableRowRecord.createTime = res.result.records[0].createTime - this.dataSource = res.result.records[0].sparePartRequisitionDetailList - if (res.result.total) { - this.ipagination.total = res.result.total - } else { - this.ipagination.total = 0 - } - } else { - this.$message.warning(res.message) - } - }).finally(() => { - this.loading = false - }) - } - } -} -</script> -<style scoped> -/* 鍏ㄥ眬绂侀�夋牱寮� - 浣滅敤浜庢暣涓〉闈� */ -html.submitting, -html.submitting body { - pointer-events: none !important; - cursor: wait !important; -} - -/* 钂欏眰鏁堟灉澧炲己 */ -html.submitting::before { - content: ''; - position: fixed; - top: 0; - left: 0; - right: 0; - bottom: 0; - background: rgba(255, 255, 255, 0.5); - z-index: 9998; -} - -/* 鍔犺浇鎸囩ず鍣� - 鏇存槑鏄剧殑瑙嗚鍙嶉 */ -html.submitting::after { - content: '鎻愪氦涓�...'; - position: fixed; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - background: #1890ff; - color: white; - padding: 10px 20px; - border-radius: 4px; - z-index: 9999; -} - -/* 绂佺敤鐘舵�佹寜閽牱寮� */ -.disabled-btn { - opacity: 0.6; - cursor: not-allowed !important; -} -.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 diff --git a/src/views/flowable/workflow/standardizedProcess/StandardizedProcessHandle.vue b/src/views/flowable/workflow/standardizedProcess/StandardizedProcessHandle.vue deleted file mode 100644 index 6e074b0..0000000 --- a/src/views/flowable/workflow/standardizedProcess/StandardizedProcessHandle.vue +++ /dev/null @@ -1,495 +0,0 @@ -<!-- - Description: 宸ヤ綔娴�-NC瀹$澶勭悊椤甸潰 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='docName'> - <a-input :disabled='coldisabled' v-model='tableRowRecord.docName'></a-input> - </a-form-model-item> - </a-col> - <a-col :span='span'> - <a-form-model-item label='鏂囨。鐗堟湰' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='publishVersion'> - <a-input :disabled='coldisabled' v-model='tableRowRecord.publishVersion'></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='docSuffix'> - <a-input :disabled='coldisabled' v-model='tableRowRecord.docSuffix'></a-input> - </a-form-model-item> - </a-col> - <a-col :span='span'> - <a-form-model-item label='绯荤粺鎸囧畾鐗堟湰' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='componentId'> - <a-input :disabled='coldisabled' v-model='tableRowRecord.componentName'></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='pullStatus_dictText'> - <a-input :disabled='coldisabled' v-model='tableRowRecord.pullStatus_dictText'></a-input> - </a-form-model-item> - </a-col> - <a-col :span='span'> - <a-form-model-item label='鍑哄簱浜�' :labelCol='labelCol' :wrapperCol='wrapperCol' prop='pullUser_dictText'> - <a-input :disabled='coldisabled' v-model='tableRowRecord.pullUser_dictText'></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' v-if="selectShenpiData.taskDefKey ==='task_proofread'" 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_jd' placeholder="璇烽�夋嫨澶勭悊绫诲瀷" /> - </a-form-model-item > - </a-col> - <a-col ::span='span' v-if="selectShenpiData.taskDefKey ==='task_approve' || selectShenpiData.taskDefKey ==='Activity_0ocot6b'|| selectShenpiData.taskDefKey ==='task_cut' || selectShenpiData.taskDefKey ==='task_finalize'" 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-row> - <div class="table-operator" style="text-align: right;"> - <a-button - @click="handleQueXiaoTask" - icon="close" - :disabled="isSubmitting" - :class="{'disabled-btn': isSubmitting}" - >鍙栨秷</a-button> - <a-button - @click="submitForm" - type="primary" - :disabled="isSubmitting" - :loading="isSubmitting" - > - 鎻� 浜� - </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: {}, - approveContent:"", - 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: { - diagramView: '/assign/flow/diagramView', - queryHisTaskList:'/dncFlow/dispatchFile/queryHisTaskList', - approve:"/dncFlow/dispatchFile/approval", - saveDispatchFile:"/dncFlow/dispatchFile/saveDispatchFile", - queryDocInfoByFlowDataId:'/dncFlow/dispatchFile/queryDocInfoByFlowDataId' - }, - dictOptions: {}, - superFieldList: [], - workflowSource: [], - isSubmitting: false, - } - }, - 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() { - // 濡傛灉姝e湪鎻愪氦锛岄樆姝㈠彇娑堟搷浣� - if (this.isSubmitting) return; - this.visible = false; - this.routeReload(); - }, - submitForm () { - // 濡傛灉姝e湪鎻愪氦锛岄樆姝㈤噸澶嶇偣鍑� - if (this.isSubmitting) return; - - // 寮�鍚叏灞�绂侀�� - this.isSubmitting = true; - document.body.classList.add('submitting'); - - const that = this; - - // 瀹氫箟涓�涓仮澶嶇姸鎬佺殑鍑芥暟 - const resetState = () => { - that.isSubmitting = false; - document.body.classList.remove('submitting'); - }; - console.log('selectShenpiData---->',that.selectShenpiData) - if (that.selectShenpiData.taskDefKey ==='task_prepare'){ - // 瑙﹀彂琛ㄥ崟楠岃瘉-閲嶆柊鍚姩 - this.form.validateFields((err, values) => { - if (err) { - resetState(); // 楠岃瘉澶辫触锛屾仮澶嶇姸鎬� - return; - }else { - that.confirmLoading = true; - let url=this.url.saveDispatchFile; - let method = 'post'; - let flowTaskVo = {} - flowTaskVo.comment =that.assignFileStream.approveContent; - flowTaskVo.dataId = this.selectShenpiData.dataId - flowTaskVo.instanceId = this.selectShenpiData.procInstId - flowTaskVo.taskId = this.selectShenpiData.id - 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); - } - }).catch((error) => { - console.error(error); - that.$message.error('鎻愪氦澶辫触'); - }) - .finally(() => { - that.confirmLoading = false; - resetState(); // 璇锋眰缁撴潫锛屾仮澶嶇姸鎬� - }); - } - }) - //璺冲嚭鏂规硶 - return false; - }else { - if (!that.assignFileStream.status==null || that.assignFileStream.status===undefined){ - this.$message.warning('璇烽�夋嫨澶勭悊绫诲瀷锛�') - resetState(); - return false; - } - } - if (!that.assignFileStream.approveContent==null || that.assignFileStream.approveContent===undefined) { - this.$message.warning('璇疯緭鍏ュ鐞嗘剰瑙侊紒') - resetState(); - return false; - } - // 瑙﹀彂琛ㄥ崟楠岃瘉 - this.form.validateFields((err, values) => { - if (err) { - resetState(); - return; - } - if (!err) { - that.confirmLoading = true; - let url=this.url.approve - let method = 'post'; - let handle =that.assignFileStream.status === '1'; - let flowTaskVo = {} - switch (that.selectShenpiData.taskDefKey){ - case "task_approve": - flowTaskVo.ratify=handle; - break; - case "task_cut": - flowTaskVo.cut=handle; - break; - case "task_finalize": - flowTaskVo.stereotype=handle; - break; - } - if (that.selectShenpiData.taskDefKey ==='task_proofread'){ - flowTaskVo.proofreadStatus =that.assignFileStream.status; - } - 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 - 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; - resetState(); - }) - } - }) - }, - async getAllApproveData(item) { - console.log('selectShenpiData----->', this.selectShenpiData) - this.flowData = item - let param = { - 'dataId': item.dataId - } - let parmhis={ - 'procInstId': item.procInstId - } - const hitaskDataList = await getAction(this.url.queryHisTaskList,parmhis) - if(hitaskDataList.success){ - this.hitaskDataSource=hitaskDataList.result - } - const docInforResult = await getAction(this.url.queryDocInfoByFlowDataId,param) - if(docInforResult.success){ - this.tableRowRecord = docInforResult.result - this.visible=true - } - } - } -} -</script> -<style scoped> -/* 鍏ㄥ眬绂侀�夋牱寮� - 浣滅敤浜庢暣涓〉闈� */ -html.submitting, -html.submitting body { - pointer-events: none !important; - cursor: wait !important; -} - -/* 钂欏眰鏁堟灉澧炲己 */ -html.submitting::before { - content: ''; - position: fixed; - top: 0; - left: 0; - right: 0; - bottom: 0; - background: rgba(255, 255, 255, 0.5); - z-index: 9998; -} - -/* 鍔犺浇鎸囩ず鍣� - 鏇存槑鏄剧殑瑙嗚鍙嶉 */ -html.submitting::after { - content: '鎻愪氦涓�...'; - position: fixed; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - background: #1890ff; - color: white; - padding: 10px 20px; - border-radius: 4px; - z-index: 9999; -} - -/* 绂佺敤鐘舵�佹寜閽牱寮� */ -.disabled-btn { - opacity: 0.6; - cursor: not-allowed !important; -} - -.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 diff --git a/src/views/flowable/workflow/stocktakingBound/stocktakingBoundHandle.vue b/src/views/flowable/workflow/stocktakingBound/stocktakingBoundHandle.vue deleted file mode 100644 index a36b68d..0000000 --- a/src/views/flowable/workflow/stocktakingBound/stocktakingBoundHandle.vue +++ /dev/null @@ -1,599 +0,0 @@ -<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"> - <a-row> - <a-col :span="span"> - <a-form-model-item label="鍑哄簱鍗曠紪鍙�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="outNum"> - <a-input disabled v-model="tableRowRecord.outNum"></a-input> - </a-form-model-item> - </a-col> - <a-col :span="span"> - <a-form-model-item label="鍑哄簱绫诲瀷" :labelCol="labelCol" :wrapperCol="wrapperCol" - prop="outStorehouseType"> - <j-dict-select-tag disabled type="list" - v-model="tableRowRecord.outStorehouseType" dictCode="out_storehouse_type" /> - </a-form-model-item> - </a-col> - </a-row> - <a-row> - <a-col :span="span"> - <a-form-model-item label="鍑哄簱鏃堕棿" :labelCol="labelCol" :wrapperCol="wrapperCol" - prop="outboundTime"> - <j-date disabled v-model="tableRowRecord.outboundTime" :show-time="true" - dateFormat="YYYY-MM-DD HH:mm" style="width: 100%" /> - </a-form-model-item> - </a-col> - <a-col :span="span"> - <a-form-model-item label="棰嗙敤浜嬬敱" :labelCol="labelCol" :wrapperCol="wrapperCol" - prop="subjectMatter"> - <a-input disabled v-model="tableRowRecord.subjectMatter"></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="handler"> - <a-input disabled v-model="tableRowRecord.handler_dictText"></a-input> - </a-form-model-item> - </a-col> - <a-col :span="span"> - <a-form-model-item label="澶囨敞" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="remark"> - <a-textarea disabled v-model="tableRowRecord.remark" rows="4" /> - </a-form-model-item> - </a-col> - </a-row> - </a-form-model> - </a-tab-pane> - <a-tab-pane key="2" tab="鐩樼偣鏄庣粏淇℃伅"> - <a-table - ref="table" - size="middle" - bordered - rowKey="id" - :scroll="{x:'max-content'}" - :columns="columns" - :dataSource="dataSource" - :pagination="ipagination" - :loading="loading" - :rowSelection="null"> - </a-table> - </a-tab-pane> - <a-tab-pane key="3" tab="娴佺▼鑺傜偣"> - <a-timeline> - <a-timeline-item v-for="(item,index) in hitaskDataSource" :key="index"> - <div> - <h3 style="font-weight: bold;">{{ item.taskName }}</h3> - <div>澶勭悊浜猴細{{ item.assignee_dictText }}</div> - <div v-if="index !==0">澶勭悊鏃堕暱锛歿{ item.duration }}</div> - <div v-if="item.name !== '鎻愪氦鐢宠'">澶勭悊绫诲瀷锛歿{ item.sequenceFlowName }}</div> - <div v-if="item.description">澶勭悊鎰忚锛歿{ item.description }}</div> - </div> - </a-timeline-item> - </a-timeline> - </a-tab-pane> - </a-tabs> - </a-spin> - </a-form> - </div> - <div v-if="auditVisible"> - <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"> - <a-form-model-item label="鐢宠浜�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="handler_dictText"> - <a-input :readOnly="inputReadOnly" v-model="tableRowRecord.handler_dictText"></a-input> - </a-form-model-item> - </a-col> - <a-col ::span="span"> - <a-form-model-item label="鐢宠鏃堕棿" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="createTime"> - <a-input :readOnly="inputReadOnly" v-model="tableRowRecord.createTime"></a-input> - </a-form-model-item> - </a-col> - <a-col :span="24" class="btxx"> - <a-form-item label="瀹℃壒鐘舵��" :labelCol="labelCol" :wrapperCol="wrapperCol"> - <a-select :disabled="disableSubmit" v-model="assignFileStream.status" placeholder="璇烽�夋嫨瀹℃壒缁撴灉"> - <a-select-option value="3">閫氳繃</a-select-option> - <a-select-option value="4">椹冲洖</a-select-option> - </a-select> - </a-form-item> - </a-col> - <a-col :span="24" class="btxx"> - <a-form-model-item label="瀹℃壒鎰忚" :labelCol="labelCol" :wrapperCol="wrapperCol"> - <a-textarea :disabled="disableSubmit" v-model="assignFileStream.approvalOpinion" rows="4" - placeholder="璇疯緭鍏ュ鎵规剰瑙�" /> - </a-form-model-item> - </a-col> - </a-row> - <div class="table-operator" style="text-align: right;"> - <a-button - @click="handleQueXiaoTask" - icon="close" - :disabled="isSubmitting" - :class="{'disabled-btn': isSubmitting}" - >鍙栨秷</a-button> - <a-button - @click="submitForm" - type="primary" - :disabled="isSubmitting" - :loading="isSubmitting" - > - 鎻� 浜� - </a-button> - </div> - </a-form-model> - </div> - </a-card> - - - </a-modal> -</template> - -<script> - -import '@assets/less/TableExpand.less' -import { mixinDevice } from '@/utils/mixin' -import { downFile, getAction, httpAction } from '@api/manage' - -export default { - name: 'stocktakingBoundHandle', - mixins: [mixinDevice], - props: { - selectShenpiData: { - type: Object, - required: true - } - }, - - data() { - return { - form: this.$form.createForm(this), - span: 12, - span1: 8, - inputReadOnly: true, - spinning: false, - tableRowRecord: {}, - assignFileStream: {}, - tableDataSource: [], - usageDataSource: [], - hitaskDataSource: [], - dataSource: [], - bomForm: {}, - imageSrc: null, - drawerVisible: true, - auditVisible: true, - disableSubmit: false, - loading: false, - labelCol: { - xs: { span: 24 }, - sm: { span: 5 } - }, - wrapperCol: { - xs: { span: 30 }, - sm: { span: 16 } - }, - /* 鍒嗛〉鍙傛暟 */ - ipagination: { - current: 1, - pageSize: 5, - pageSizeOptions: ['5', '10', '50'], - showTotal: (total, range) => { - return range[0] + '-' + range[1] + ' 鍏�' + total + '鏉�' - }, - showQuickJumper: true, - showSizeChanger: true, - total: 0 - }, - columns: [ - { - title: '#', - dataIndex: '', - key: 'rowIndex', - width: 60, - align: 'center', - customRender: function(t, r, index) { - return parseInt(index) + 1 - } - }, - { - title: '鍒�鍏风紪鍙�', - dataIndex: 'toolCode', - align: 'center' - }, - { - title: '宸ュ叿绫诲瀷', - dataIndex: 'applicationType_dictText', - align: 'center' - - }, - - { - title: '涓枃鍚嶇О', - dataIndex: 'chineseName', - align: 'center' - }, - - { - title: '鍨嬪彿/鍥惧彿', - dataIndex: 'toolModel', - align: 'center' - }, - { - title: '鍒�鍏锋潗鏂�', - dataIndex: 'toolMaterial', - align: 'center' - - }, - { - title: '闆朵欢鏉愭枡', - dataIndex: 'partMaterial', - align: 'center' - }, - { - title: '鍘傚', - dataIndex: 'supplierId', - align: 'center' - - }, - { - title: '瀛樺偍浣嶇疆(搴撲綅鍙�)', - dataIndex: 'goodsShelvesId', - align: 'center' - }, - - { - title: '璐﹂潰鏁伴噺', - dataIndex: 'bookQuantity', - align: 'center' - - }, - { - title: '鍙敤鏁伴噺', - dataIndex: 'availableQuantity', - align: 'center' - - }, - { - title: '瀹炵洏鏁伴噺', - dataIndex: 'practicalQuantity', - align: 'center' - }, - { - title: '宸紓鍊�', - dataIndex: 'differenceValue', - align: 'center' - }, - { - title: '鐩樹簭鐩樼泩', - dataIndex: 'surplusDeficit_dictText', - align: 'center' - }, - { - title: '鐩樺簱鏃堕棿', - dataIndex: 'stocktakingDate', - align: 'center' - }, - { - title: '澶囨敞', - dataIndex: 'remark', - align: 'center' - } - ], - validatorRules: { - status: { - rules: [ - { required: true, message: '璇烽�夋嫨瀹℃壒鐘舵��!' } - ] - } - }, - approveData: {}, - flowData: {}, - title: '瀹℃壒椤甸潰', - width: 1200, - visible: false, - // 琛ㄥご - url: { - queryStocktakingBoundOrder: '/tms/toolsStocktakingBound/queryById', - queryStocktakingBoundDetailList: '/tms/toolsStocktakingBound/listToolsStocktakingBoundControllerDetailsByMainId', - diagramView: '/assign/flow/diagramView', - queryHisTaskList: '/assign/flow/queryHisTaskList', - approve: '/tms/toolsStocktakingBound/approval' - }, - dictOptions: {}, - superFieldList: [], - workflowSource: [], - isSubmitting: false, - } - }, - 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() { - // 濡傛灉姝e湪鎻愪氦锛岄樆姝㈠彇娑堟搷浣� - if (this.isSubmitting) return; - this.visible = false; - this.routeReload(); - }, - submitForm() { - // 濡傛灉姝e湪鎻愪氦锛岄樆姝㈤噸澶嶇偣鍑� - if (this.isSubmitting) return; - - // 寮�鍚叏灞�绂侀�� - this.isSubmitting = true; - document.body.classList.add('submitting'); - - const that = this; - - // 瀹氫箟涓�涓仮澶嶇姸鎬佺殑鍑芥暟 - const resetState = () => { - that.isSubmitting = false; - document.body.classList.remove('submitting'); - }; - if (!that.assignFileStream.status == null || that.assignFileStream.status === undefined) { - this.$message.warning('璇烽�夋嫨瀹℃壒鐘舵�侊紒') - return false - } - if (!that.assignFileStream.approvalOpinion == null || that.assignFileStream.approvalOpinion === undefined) { - this.$message.warning('璇疯緭鍏ュ鎵规剰瑙侊紒') - return false - } - // 瑙﹀彂琛ㄥ崟楠岃瘉 - this.form.validateFields((err, values) => { - if (err) { - resetState(); // 楠岃瘉澶辫触锛屾仮澶嶇姸鎬� - return; - } - if (!err) { - that.confirmLoading = true - let url = this.url.approve - let method = 'post' - let flowTaskVo = {} - flowTaskVo.status = that.assignFileStream.status - flowTaskVo.approvalOpinion = that.assignFileStream.approvalOpinion - flowTaskVo.comment = that.assignFileStream.approvalOpinion - flowTaskVo.dataId = this.selectShenpiData.dataId - flowTaskVo.taskId = this.selectShenpiData.id - flowTaskVo.userId = this.selectShenpiData.assignee - flowTaskVo.instanceId = this.selectShenpiData.procInstId - flowTaskVo.targetKey = this.selectShenpiData.taskDefKey - flowTaskVo.values = this.selectShenpiData.variables - flowTaskVo.assignee = this.selectShenpiData.assignee - 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) - } - }) - .catch((error) => { - console.error(error); - that.$message.error('鎻愪氦澶辫触'); - }) - .finally(() => { - that.confirmLoading = false; - resetState(); // 璇锋眰缁撴潫锛屾仮澶嶇姸鎬� - }); - } - }) - }, - /** - * 鑾峰彇娴佺▼鑺傜偣鍜屾祦绋嬪浘 - * @param record 寰呭姙璁板綍淇℃伅 - */ - getAllApproveData(item) { - this.visible = true - this.loading = true - console.log('selectShenpiData----->', this.selectShenpiData) - this.flowData = item - getAction(this.url.queryHisTaskList, { procInstId: item.procInstId }).then(res => { - if (res.success) { - this.hitaskDataSource = res.result - } - }) - getAction(this.url.queryStocktakingBoundOrder, { id: item.dataId }).then((res => { - if (res.success) { - this.tableRowRecord = res.result - } - })) - getAction(this.url.queryStocktakingBoundDetailList, { stocktakingBoundId: item.dataId }).then(res => { - if (res.success) { - this.dataSource = res.result.records - if (res.result.total) { - this.ipagination.total = res.result.total - } else { - this.ipagination.total = 0 - } - } else { - this.$message.warning(res.message) - } - }).finally(() => { - this.loading = false - }) - } - } -} -</script> -<style scoped> -/* 鍏ㄥ眬绂侀�夋牱寮� - 浣滅敤浜庢暣涓〉闈� */ -html.submitting, -html.submitting body { - pointer-events: none !important; - cursor: wait !important; -} - -/* 钂欏眰鏁堟灉澧炲己 */ -html.submitting::before { - content: ''; - position: fixed; - top: 0; - left: 0; - right: 0; - bottom: 0; - background: rgba(255, 255, 255, 0.5); - z-index: 9998; -} - -/* 鍔犺浇鎸囩ず鍣� - 鏇存槑鏄剧殑瑙嗚鍙嶉 */ -html.submitting::after { - content: '鎻愪氦涓�...'; - position: fixed; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - background: #1890ff; - color: white; - padding: 10px 20px; - border-radius: 4px; - z-index: 9999; -} - -/* 绂佺敤鐘舵�佹寜閽牱寮� */ -.disabled-btn { - opacity: 0.6; - cursor: not-allowed !important; -} -.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