From 5a424170415da0453c2bada6441bc98c1b02f151 Mon Sep 17 00:00:00 2001
From: haoxuan <haoxuan>
Date: 星期二, 10 十月 2023 11:23:32 +0800
Subject: [PATCH] 工艺模型 增加产品+样式调整+再次打开弹框的分页修改
---
src/views/visualization.vue | 196 ++++++++++++++++++++++++++++++++++++++----------
1 files changed, 155 insertions(+), 41 deletions(-)
diff --git a/src/views/visualization.vue b/src/views/visualization.vue
index bb6eb01..de42bc4 100644
--- a/src/views/visualization.vue
+++ b/src/views/visualization.vue
@@ -90,7 +90,7 @@
</span> -->
</div>
<div class="gongx">
- <el-steps v-if="taskData.AllProcedures" :active="taskData.CurrentProcedureIndex?taskData.CurrentProcedureIndex:0" finish-status="success" class="steps">
+ <el-steps v-if="taskData.AllProcedures" :active="taskData.CurrentProcedureIndex ?? 0" finish-status="success" class="steps">
<el-step icon="" :title="item" v-for="(item,index) in taskData.AllProcedures" :key="index"></el-step>
</el-steps>
</div>
@@ -124,8 +124,8 @@
</div>
</div>
<div class="content_right">
- <div class="gif" v-if="taskData.Procedure.ID" @click="processModelClick(taskData)">
- <img v-if="isUpdateIcon" src="../../public/shan.gif" />
+ <div class="gif" v-if="taskData.Procedure.ID" @click="processModelClick(taskData,index)">
+ <img v-if="taskData.isUpdateIcon" src="../../public/shan.gif" />
<span v-else class="yuandian"></span>
</div>
<el-descriptions :column="(activeName == 1||activeName == 3) ? 2 : 1" :colon="true">
@@ -147,9 +147,9 @@
-
{{ formatDate(taskData.Order.endTime) }}</el-descriptions-item
>
- <el-descriptions-item label="璐х墿鎻忚堪">{{
- taskData.Order.orderAttr || "--"
- }}</el-descriptions-item>
+ <el-descriptions-item label="閫氶亾">
+ {{ channelNameConfig[taskData.Channel] || "--" }}
+ </el-descriptions-item>
<el-descriptions-item label="瀹㈡埛缂栫爜">{{
taskData.Order.customer || "--"
}}</el-descriptions-item>
@@ -524,7 +524,7 @@
<div class="right-person-box" v-if="workers && workers.length > 0">
<dl
class="right-small-person"
- v-for="(item, index) in workers"
+ v-for="(item, index) in deduplicateWorkers(displayWorkers())"
:key="index"
>
<dt>
@@ -605,8 +605,6 @@
</template> -->
<!-- 鎺у埗鐨勫脊妗� -->
- <AddControl ref="control" :Arr="Arr" />
- <!-- 鎺у埗鐨勫脊妗� -->
<TaskControlModal
ref="control"
:activeName="activeName"
@@ -617,6 +615,7 @@
<ProcessModel
ref="processModel"
:listData="listData"
+ @updateGet="updateGet"
/>
</div>
</template>
@@ -639,6 +638,8 @@
import AddIssue from "../components/AddIssue.vue";
import ProcessModel from "../components/ProcessModel.vue";
import TaskControlModal from "@/components/TaskControlModal.vue";
+import {channelNameConfig} from "@/common/constants";
+import _ from 'lodash'
export default {
components: {
TaskControlModal,
@@ -660,6 +661,8 @@
// 鍙充晶瀹屾垚
finishShow:{},
workers:[],
+ // 淇濆瓨褰撳墠涓嶅悓閫氶亾鐨勫�肩彮浜�
+ channelWorkersMap:{0:[],1:[]},
TasksCopy:[],
Tasks: [
{
@@ -769,10 +772,11 @@
procedureList: [],
},
processList:[],
- isUpdateIcon:false,
listData:[],
- resResult:null,
+ resResult:[],
resprocInfoTimer:null,
+ channelNameConfig: channelNameConfig,
+ index:null,
};
},
mounted() {
@@ -787,7 +791,11 @@
this.getDate3();
this.getDate2();
}, 5000);
- this.getTaskInfo();
+
+ let channelType = this.getChannelTypeFromUrl()
+ channelType = channelType ?? 1
+ this.activeName = channelType
+ this.getTaskInfo(channelType);
this.getTaskCountStatistics()
},
beforeDestroy() {
@@ -803,10 +811,22 @@
// }
},
methods: {
-
+ deduplicateWorkers(workers){
+ return _.uniqBy(workers,ele=>ele.workerName)
+ },
+ updateGet(number,val){
+ if(val){
+ this.getTaskInfo(this.activeName,'new')
+ return true;
+ }
+ this.listData.number=number
+ if(this.index){
+ this.TasksCopy[this.index].number=number
+ }
+ },
getModelList(){
- this.resResult=null
for (let i in this.TasksCopy){
+ this.TasksCopy[i].isUpdateIcon=false;
if(this.TasksCopy[i].Procedure.ID&&this.TasksCopy[i].number){
processModelList({
procedureId: this.TasksCopy[i].Procedure.ID,
@@ -817,21 +837,24 @@
if(res.code==200){
this.processList=res.data?res.data:[];
if(this.processList.length>0){
- for(let i in this.processList){
- if(this.processList[i].isUpdate){
- this.isUpdateIcon=true;
+ for(let j in this.processList){
+ if(this.processList[j].isUpdate){
+ this.TasksCopy[i].isUpdateIcon=true;
+ this.$forceUpdate()
break;
}
- }
+ }
}
}
- this.resResult=res;
+ this.resResult[i]=res;
+ console.log( this.resResult[i],'===res111')
})
}
}
},
- processModelClick(list){
+ processModelClick(list,index){
this.listData=list;
+ this.index=index
if( Object.keys(this.listData).length > 0){
if(this.listData.Procedure.ID&&this.listData.number){
this.$refs.processModel.islook=true
@@ -839,14 +862,22 @@
}
}
this.$message.error('褰撳墠宸ュ簭鏃犵紪鍙凤紝鏃犳硶鏌ョ湅宸ュ簭!')
-
},
getProcessModelList(){
this.getModelList()
- if (!this.ProcessModelTimer&&!this.resResult) {
+ let string=false;
+ if(this.resResult.length>0){
+ for(let i in this.resResult){
+ if(this.resResult[i]){
+ string=false;
+ }
+ }
+ }
+ if (!this.ProcessModelTimer&&!string) {
this.ProcessModelTimer = setInterval(() => {
+ this.resResult=[]
this.getModelList();
- }, 10000)
+ }, 5000)
}
},
mergeProcessParams(params){
@@ -873,6 +904,7 @@
},
cutClick(val) {
this.activeName = val;
+ this.updateChannelTypeToUrl(val)
if(this.activeName==2){
this.Tasks=this.TasksCopy.slice(0,2)
if(this.Tasks.length<2){
@@ -915,9 +947,6 @@
}
});
},
-
-
-
getDateObj(date, fmt) {
if (/(y+)/.test(fmt)) {
fmt = fmt.replace(
@@ -1050,14 +1079,33 @@
});
},
- getTaskInfo(val) {
+ /**
+ * 鏍规嵁褰撳墠灞曠ず鐨勬槸0閫氶亾杩樻槸1閫氶亾杩樻槸涓や釜閫氶亾灞曠ず瀵瑰簲鐨勫�肩彮浜�
+ * @return {*[]}
+ */
+ displayWorkers(){
+ let showWorkers = []
+ if (this.activeName===1){
+ showWorkers =[...this.channelWorkersMap[0]]
+ }else if (this.activeName===2){
+ showWorkers =[...this.channelWorkersMap[0],...this.channelWorkersMap[1]]
+ }else if (this.activeName===3){
+ showWorkers =[...this.channelWorkersMap[1]]
+ }else {
+ return []
+ }
+
+ return showWorkers
+ },
+
+ getTaskInfo(val,info) {
this.Tasks = [];
this.TasksCopy=[]
getTaskInfo({taskMode:2}).then((res) => {
if (res.code == 200&&res.data) {
- let arr=[]
+ // let arr=[]
if(res.data.Tasks){
- arr.sort(function(a,b){
+ res.data.Tasks.sort(function(a,b){
return (a.Channel - b.Channel)
})
}
@@ -1079,12 +1127,23 @@
}
}
this.workers=res.data.workers?res.data.workers:[]
+
+ // 灏嗗�肩彮浜烘牴鎹�氶亾鍙峰垎缁�
+ const groupByChannel= _.groupBy(res.data.Tasks,ele=>ele.Channel)
+ const taskList0= _.first(groupByChannel[0])
+ const taskList1= _.first(groupByChannel[1])
+ const worker0List = taskList0?.Procedure?.procedure?.workers ?? []
+ const worker1List = taskList1?.Procedure?.procedure?.workers ?? []
+ this.channelWorkersMap['0'] =worker0List
+ this.channelWorkersMap['1'] =worker1List
+
for (let i in this.TasksCopy) {
this.TasksCopy[i].procedureList = [];
this.TasksCopy[i].inputMaterials = [];
this.TasksCopy[i].outputMaterials = [];
this.TasksCopy[i].finishNumber = 0;
this.TasksCopy[i].number=0;
+ this.TasksCopy[i].isUpdateIcon=false;
this.finishShow['finishShow&'+i]=false
this.TasksCopy[i].Procedure.procedure.workers = this.TasksCopy[i].Procedure
.procedure.workers
@@ -1108,20 +1167,26 @@
});
this.TasksCopy[i].Arr=res.data.Params ? res.data.Params : []
// this.isFinsh=Number(i)+1
+ this.$forceUpdate()
}
});
}
this.setInterCard("inputMaterials", "cardBox1&" + i, i);
this.setInterCard("outputMaterials", "cardBox3&" + i, i);
}
+ this.getProcessModelList();
this.getStartArr()
+ this.cutClick(val?val:1)
+ if(info=='new'){
+ return true;
+ }
+
this.getProgressInfo();
if (!this.procInfoTimer&&!this.resprocInfoTimer) {
this.procInfoTimer = setInterval(() => {
this.getProgressInfo();
}, 3000);
}
- this.getProcessModelList();
}
// if (res.code != 200 || this.TasksCopy.length == 0) {
// this.getcountdown();
@@ -1132,7 +1197,7 @@
// }, 60000);
// }
// }
- this.cutClick(val?val:1)
+
});
// this.TasksCopy.push(this.object)
// this.TasksCopy.push(this.object)
@@ -1160,6 +1225,27 @@
}
}
})
+ },
+ /**
+ * 鍚慤RL涓缃綋鍓嶉�氶亾灞曠ず绫诲瀷
+ * @param {number} type 閫氶亾灞曠ず绫诲瀷
+ */
+ updateChannelTypeToUrl(type){
+ const activeName = this.getChannelTypeFromUrl();
+ if (activeName === type){
+ return
+ }
+ let path = this.$router.history.current.path
+ this.$router.push({path, query: {activeName: `${type ?? 1}`}})
+ },
+ /**
+ * 浠嶶RL鑾峰彇褰撳墠閫氶亾灞曠ず绫诲瀷
+ * @return {number}
+ */
+ getChannelTypeFromUrl(){
+ let activeName = new URLSearchParams(location.search).get('activeName')
+ activeName = activeName ? +activeName : undefined
+ return activeName
},
getProgressInfo() {
this.resprocInfoTimer=null
@@ -1352,19 +1438,47 @@
}
}
}
- .el-step__head.is-process{
- color: #00cc66 !important;
- border-color:#00cc66;
- }
- .el-step__title.is-process{
- color: #00cc66 !important;
- }
.el-step__head.is-wait{
color:#fff;
border-color:#fff;
}
.el-step__title.is-wait{
color:#fff;
+ }
+
+ // 浣挎楠ゆ潯鑺傜偣鐘舵�佹垚鍔熸椂,鍓嶉潰鐨勭嚎鍚屾鏇存敼棰滆壊
+ .steps{
+ /* 杩涜涓姸鎬侊細鍦堢嚎 */
+ & .el-step__head.is-process {
+ color: #00cc66;
+ border-color: #00cc66;
+ }
+ /* 杩涜涓姸鎬侊細鍦堝唴 */
+ & .el-step__head.is-process > .el-step__icon {
+ background: #00cc66;
+ color: #00cc66;
+ }
+ /* 杩涜涓姸鎬侊細title锛堟枃瀛楋級 */
+ & .el-step__title.is-process {
+ color: #00cc66;
+ }
+
+ /* 瀹屾垚鐘舵�侊細鍦堢嚎 */
+ & .el-step__head.is-success {
+ color: #00cc66;
+ border-color: #00cc66;
+ }
+ /* 瀹屾垚鐘舵�侊細title锛堟枃瀛楋級 */
+ & .el-step__title.is-success {
+ color: #00cc66;
+ }
+ /* 瀹屾垚鐘舵�侊細line
+ * 鎻忚堪锛氱涓�姝ュ畬鎴愶紝绗簩姝ヨ繘琛屾椂锛屼箣闂寸殑杩涘害鏉℃湁棰滆壊
+ */
+ & .el-step__head.is-success > .el-step__line > .el-step__line-inner {
+ width: 100% !important;
+ border-width: 1px !important;
+ }
}
}
.set-title {
@@ -1672,7 +1786,7 @@
width: 100%;
height: 30px;
// text-align: left;
- font-size: 24px;
+ font-size: 28px!important;
margin: 0;
text-align: center;
line-height: 36px;
@@ -1747,11 +1861,11 @@
white-space:nowrap;
}
.card_top-2{
- width:35%;
+ width:38%;
}
.card-top-input-out-r,
.card_top-3 {
- width:65%;
+ width:62%;
}
.card_top-2,.card-top-input-out-r,
.card_top-3 {
--
Gitblit v1.8.0