From c6b0ab0a2fbc1b37b8705527bb842156b71bd092 Mon Sep 17 00:00:00 2001
From: haoxuan <haoxuan>
Date: 星期一, 04 十二月 2023 10:10:27 +0800
Subject: [PATCH] 去掉多余的方法+人员生产效率对比组件
---
src/views/visualization.vue | 622 ++++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 428 insertions(+), 194 deletions(-)
diff --git a/src/views/visualization.vue b/src/views/visualization.vue
index 33b594a..a74ba65 100644
--- a/src/views/visualization.vue
+++ b/src/views/visualization.vue
@@ -1,22 +1,36 @@
<template>
- <div class="home">
- <!-- -->
- <template v-if="Tasks&&Tasks.length>0">
+ <div class="home" ref="homeRef">
+ <!-- v-if="Tasks&&Tasks.length>0" -->
+ <template >
<div class="left">
<p class="title">
- <span
- class="font set-title"
- style="float: left; margin-right: 15px;"
- @click="cutClick(1)"
- >
- <img style="width:32px;" v-if="activeName == 1" src="../../public/one-blue.png" />
- <img style="width:32px;" v-else src="../../public/one.png" />
- </span>
- <span class="font set-title" style="float: left" @click="cutClick(2)">
- <img style="width:32px;" v-if="activeName == 2" src="../../public/two-blue.png" />
- <img style="width:32px;" v-else src="../../public/two.png" />
- </span>
+ <template v-if="Number(ChannelAmount)>1">
+ <span
+ class="font set-title"
+ style="float: left; margin-right: 15px;"
+ @click="cutClick(1)"
+ >
+ <img style="width:32px;" v-if="activeName == 1" src="../../public/one-blue.png" />
+ <span v-else>
+ <img style="width:32px;" src="../../public/one.png" />
+ </span>
+ </span>
+ <span class="font set-title" style="float: left;margin-right: 15px;" @click="cutClick(2)">
+ <img style="width:32px;" v-if="activeName == 2" src="../../public/two-blue.png" />
+ <img style="width:32px;" v-else src="../../public/two.png" />
+ </span>
+ <span
+ class="font set-title"
+ style="float: left;"
+ @click="cutClick(3)"
+ >
+ <img style="width:32px;" v-if="activeName == 3" src="../../public/right-blue.png" />
+ <span v-else>
+ <img style="width:32px;" src="../../public/right.png" />
+ </span>
+ </span>
+ </template>
鐢熶骇绠$悊鐪嬫澘
<span
class="font el-icon-setting set-title"
@@ -33,7 +47,7 @@
</span>
</p>
<div
- :class="activeName == 1 ? 'active-one' : 'active-two'"
+ :class="(activeName == 1||activeName == 3) ? 'active-one' : 'active-two'"
v-for="(taskData, index) in Tasks"
:key="index"
>
@@ -90,7 +104,7 @@
style="font-size: 35px; font-weight: 600"
class="color_green"
>
- {{ taskData.finishNumber }}{{ taskData.Order.unit }}
+ {{ taskData.finishNumber || 0 }}{{ taskData.Order.unit }}
</dd>
</dl>
</div>
@@ -110,46 +124,46 @@
</div>
</div>
<div class="content_right">
- <el-descriptions :column="activeName == 1 ? 2 : 1" :colon="true">
+ <el-descriptions :column="(activeName == 1||activeName == 3) ? 2 : 1" :colon="true">
<el-descriptions-item label="浜у搧鍚嶇О">{{
- taskData.Order.productName || ""
+ taskData.Order.productName || "--"
}}</el-descriptions-item>
<el-descriptions-item label="鏁伴噺"
>{{ taskData.Order.amount || 0
}}{{ taskData.Order.unit }}</el-descriptions-item
>
<el-descriptions-item label="浜よ揣鏃ユ湡">{{
- taskData.Order.deliverDate || ""
+ taskData.Order.deliverDate || "--"
}}</el-descriptions-item>
<el-descriptions-item label="宸ユ椂">
- {{ taskData.Procedure.procedure.workHours || "" }}
+ {{ taskData.Procedure.procedure.workHours || "--" }}
</el-descriptions-item>
<el-descriptions-item label="璁″垝鏃堕棿"
- >{{ formatDate(taskData.Order.startTime) || "" }}
+ >{{ formatDate(taskData.Order.startTime) || "--" }}
-
{{ formatDate(taskData.Order.endTime) }}</el-descriptions-item
>
<el-descriptions-item label="璐х墿鎻忚堪">{{
- taskData.Order.orderAttr || ""
+ taskData.Order.orderAttr || "--"
}}</el-descriptions-item>
<el-descriptions-item label="瀹㈡埛鍚嶇О">{{
- taskData.Order.customer || ""
+ taskData.Order.customer || "--"
}}</el-descriptions-item>
<el-descriptions-item label="鍙傛暟瑕佹眰">{{
- taskData.Order.parameter || ""
+ taskData.Order.parameter || "--"
}}</el-descriptions-item>
</el-descriptions>
<el-descriptions :column="1" :colon="true">
<el-descriptions-item label="瀹屾垚搴�" style="width: 100%">
<!--:text-format="format" -->
<el-progress
- define-back-color="#133EAF"
- color="#09E5ED"
+ define-back-color="#132f6e"
+ color="#00cc66"
text-color="#fff"
:text-inside="true"
:stroke-width="30"
:percentage="
- (taskData.Order && taskData.finishNumber != 0)
+ (taskData.Order && taskData.finishNumber != 0 && taskData.Order.amount)
? parseInt(
(taskData.finishNumber / taskData.Order.amount) *
100
@@ -197,16 +211,32 @@
v-for="(list, index2) in item"
>
<div class="card_content">
- <div class="card_contentLeft">{{ list.materialId }}</div>
+ <div class="card_contentLeft font_dian">
+ <el-popover
+ width="200"
+ :content="list.materialId"
+ placement="top-start"
+ trigger="click"
+ >
+ <span slot="reference">{{ list.materialId }}</span>
+ </el-popover>
+ </div>
</div>
<div class="card-top-input-out-l">
- <div>
+ <div class="font_dian">
<!-- 璁惧12<i
style="font-size: 14px"
class="el-icon-right font-arrow-20"
></i>
璁惧13 -->
- {{ list.materialName }}
+ <el-popover
+ width="200"
+ :content="list.materialName"
+ placement="top-start"
+ trigger="click"
+ >
+ <span slot="reference">{{ list.materialName }}</span>
+ </el-popover>
</div>
</div>
<div class="card-top-input-out-r">
@@ -223,7 +253,7 @@
<i class="el-icon-phone-outline" />鐗╂枡鍛煎彨</el-button
>
</div>
- <i class="el-icon-arrow-right font-arrow-20 color_4efefa"></i>
+ <i class="el-icon-arrow-right font-arrow-20 color_318583"></i>
<div class="bottom_list">
<div class="bottom-title">
褰撳墠宸ュ簭:{{ taskData.Procedure.procedure.procedureName || "" }}
@@ -241,11 +271,12 @@
v-for="(item, index) in taskData.procedureList"
>
<div
- class="card"
:key="index2"
v-for="(list, index2) in item"
>
- <template v-if="list.name == '宸ュ簭'">
+ <div
+ class="card"
+ v-if="list.name == '宸ュ簭'">
<div class="card_content">
<div class="card_contentLeft color_blue font_dian">
<!-- {{ list.deviceName }} -->
@@ -263,7 +294,7 @@
<div class="card_top-3">
<span class="card-top-r-t"
>瀹屾垚杩涘害锛歿{
- taskData.Order && taskData.finishNumber != 0
+ (taskData.Order && taskData.finishNumber != 0 && taskData.Order.amount)
? parseInt(
(taskData.finishNumber /
taskData.Order.amount) *
@@ -274,8 +305,8 @@
>
<span class="card-top-r-b">
<el-progress
- define-back-color="#133EAF"
- color="#09E5ED"
+ define-back-color="#132f6e"
+ color="#00cc66"
text-color="#fff"
:text-inside="true"
:stroke-width="10"
@@ -298,29 +329,39 @@
</div>
<div class="card_top-2">
<div style="line-height: 45px; text-align: center">
- 鐢熶骇涓�
+ {{ taskData.Procedure.Status==3?'鐢熶骇瀹屾垚':'鐢熶骇涓�' }}
</div>
<!-- <span class="card-top-r-t">瀹屾垚杩涘害锛�50%</span>
<span class="card-top-r-b">12鏈�28鏃� 08:24</span> -->
</div>
- </template>
- <template v-else>
- <!-- <div class="card_content">
-
- </div> -->
- <div :class="activeName==1?'card_top-4 font_size_20px':'card_top-4'">
- <div>宸ヨ壓缂栧彿锛�<div >{{ list.number }}</div></div>
- <!-- <div
- style="
- font-size: 14px;
- color: #cfcfcf;
- line-height: 20px;
- "
+ </div>
+ <div v-else class="process-params">
+ <div class="process-params-title">
+ <el-popover
+ width="200"
+ :content="list.number"
+ placement="top-start"
+ trigger="click"
>
- 宸ヨ壓鐨勫叿浣撲俊鎭鐐瑰嚮鎺у埗鏌ョ湅锛�
- </div> -->
+ <span slot="reference">宸ヨ壓缂栧彿锛歿{ list.number }}</span>
+ </el-popover>
+
</div>
- </template>
+ <div class="process-params-value">
+ <!-- 宸ヨ壓鍙傛暟-->
+ {{mergeProcessParams(taskData.Arr)}}
+ </div>
+
+ <!-- <div
+ style="
+ font-size: 14px;
+ color: #cfcfcf;
+ line-height: 20px;
+ "
+ >
+ 宸ヨ壓鐨勫叿浣撲俊鎭鐐瑰嚮鎺у埗鏌ョ湅锛�
+ </div> -->
+ </div>
</div>
</el-carousel-item>
</el-carousel>
@@ -330,14 +371,16 @@
></p>
<div class="right-small-btn bottom-box-btn">
<el-button type="primary"> 鎵撳嵃</el-button>
+
<el-popover
+ v-if="taskData.Procedure.Status && taskData.Procedure.Status!==3"
placement="top-end"
width="160"
class="button-finish"
v-model="finishShow['finishShow&'+index]"
trigger="click"
>
- <p>璇风‘璁ゆ槸鍚﹀凡瀹屾垚璇ョ敓浜т换鍔�?</p>
+ <p><i class="el-icon-error" style="color:red;margin-right:5px;"/>璇风‘璁ゆ槸鍚﹀凡瀹屾垚璇ョ敓浜т换鍔�?</p>
<div style="text-align: right; margin: 0">
<el-button size="mini" @click="finishShow['finishShow&'+index] = false">
鍙栨秷</el-button
@@ -345,6 +388,7 @@
<el-button
type="primary"
size="mini"
+ class="color_f70f83"
@click="finishClick(index, taskData)"
>
纭畾</el-button
@@ -352,9 +396,10 @@
</div>
<el-button type="primary" slot="reference"> 瀹屾垚</el-button>
</el-popover>
+ <el-button v-else type="primary" class="huise"> 瀹屾垚</el-button>
</div>
</div>
- <i class="el-icon-arrow-right font-arrow-20 color_4efefa"></i>
+ <i class="el-icon-arrow-right font-arrow-20 color_318583"></i>
<div class="bottom_list">
<div class="bottom-title">
<span>杈撳嚭璧勬簮</span>
@@ -381,13 +426,27 @@
>
<div class="card">
<div class="card_content">
- <div class="card_contentLeft">
- {{ list.materialId }}
+ <div class="card_contentLeft font_dian">
+ <el-popover
+ width="200"
+ :content="list.materialId"
+ placement="top-start"
+ trigger="click"
+ >
+ <span slot="reference">{{ list.materialId }}</span>
+ </el-popover>
</div>
</div>
<div class="card-top-input-out-l">
- <div>
- {{ list.materialName }}
+ <div class="font_dian">
+ <el-popover
+ width="200"
+ :content="list.materialName"
+ placement="top-start"
+ trigger="click"
+ >
+ <span slot="reference">{{ list.materialName }}</span>
+ </el-popover>
</div>
</div>
<div class="card-top-input-out-r">
@@ -409,6 +468,7 @@
<template
v-if="activeName == 2 &&(!taskData||Object.keys(taskData).length==0)"
>
+
<el-empty description="鏆傛棤浠诲姟..."></el-empty>
</template>
</div>
@@ -431,12 +491,25 @@
<div class="right-top-m">
璁惧鐘舵��:
<!-- 1鏂紑2鐢熶骇3寰呮満 -->
- <span style="position: relative"
- v-if="plcStatus" >
- <img v-if="plcStatus == 1" src="../../public/duan.png" />
- <img v-else src="../../public/lian.png" />
- <!-- <span class="yuandian"></span> -->
- {{ plcStatus==1?'鏂紑':(plcStatus==2?'鐢熶骇涓�':'寰呮満') }}
+ <span style="position: relative" v-if="plcStatus" >
+ <el-popover
+ v-if="plcStatus == 1&&plcNotConnected"
+ width="180"
+ :content="plcNotConnected"
+ placement="top-end"
+ trigger="click"
+ >
+ <span slot="reference">
+ <img src="../../public/duan.png" />
+ 鏂紑
+ </span>
+ </el-popover>
+ <span v-else>
+ <img v-if="plcStatus == 1&&!plcNotConnected" src="../../public/duan.png" />
+ <img v-else src="../../public/lian.png" />
+ <!-- <span class="yuandian"></span> -->
+ {{ plcStatus==1?'鏂紑':(plcStatus==2?'鐢熶骇涓�':'寰呮満') }}
+ </span>
</span>
</div>
<div class="right-top-m-btn">
@@ -468,9 +541,9 @@
<!-- <span>{{ item.phoneNum || "" }}</span> -->
<span class="color_yellow"><i class="el-icon-star-on" /><i class="el-icon-star-on" /><i class="el-icon-star-on" /><i class="el-icon-star-on" /><i class="el-icon-star-on" /></span>
</dl>
-
+
</div>
-
+
<!-- <div
style="
width: 100%;
@@ -485,7 +558,7 @@
</div> -->
</div>
<div class="right_base">
- <div class="right-small-title" style="line-height: 40px">鐭ヨ瘑搴�</div>
+ <div class="right-small-title" style="line-height: 40px;margin-top:20px;">鐭ヨ瘑搴�</div>
<Knowledge />
<div class="right-base-btn call">
<el-button type="primary"
@@ -496,7 +569,7 @@
</div>
</template>
<!-- -->
- <template v-else>
+ <!-- <template v-else>
<div class="home-img-box">
<div class="bg-title">
<img src="../../public/bg-title.png" />
@@ -526,17 +599,21 @@
</div>
</div>
</div>
- </template>
+
+ </template> -->
<!-- 鎺у埗鐨勫脊妗� -->
<AddControl ref="control" :Arr="Arr" />
<!-- 鎺у埗鐨勫脊妗� -->
- <AddIssue
+ <TaskControlModal
ref="control"
- :Arr="Arr"
- :taskData="taskData"
- :Order="taskData.Order"
- @getSetProductNumber="getTaskInfo"
+ :activeName="activeName"
+ @getSetProductNumber="reloadPage"
@isTip="isTip"
+ />
+ <!-- 宸ヨ壓妯″瀷 -->
+ <ProcessModel
+ ref="processModel"
+ :processList="processList"
/>
</div>
</template>
@@ -550,20 +627,26 @@
startTask,
getProgress,
countdown,
+ getTaskUnStarted,
} from "@/api/home/index"; // 浜х嚎
import Card from "@/components/Card.vue";
import Knowledge from "../components/Knowledge.vue";
import AddControl from "../components/AddControl.vue";
import AddIssue from "../components/AddIssue.vue";
+import ProcessModel from "../components/ProcessModel.vue";
+import TaskControlModal from "@/components/TaskControlModal.vue";
export default {
components: {
+ TaskControlModal,
Card,
Knowledge,
AddControl,
AddIssue,
+ ProcessModel,
},
data() {
return {
+ pollingTaskCountTimer: null,
activeName: 1,
progress: 70, //杩涘害
passrate: 30, //鍚堟牸鐜�
@@ -573,6 +656,7 @@
// 鍙充晶瀹屾垚
finishShow:{},
workers:[],
+ TasksCopy:[],
Tasks: [
{
Order: {
@@ -658,12 +742,37 @@
countDownHour: 0,
countDownMinute: 0,
Arr: [],
+ ArrError:'',
// 璁板綍瀹氭椂鍣ㄧ姸鎬�
procInfoTimer: null,
cutdownTimer: null,
TaskCount:0,
plcStatus:0,
isTipShow:false,
+ // isFinsh:0,
+ safeProduce:'',
+ // 璁惧鏂紑鐨勫師鍥�
+ plcNotConnected:'',
+ ChannelAmount:0,
+ object:{
+ Order: {},
+ Procedure: {
+ procedure: { inputMaterials: [], outputMaterials: [], workers: [] },
+ },
+ inputMaterials: [],
+ outputMaterials: [],
+ procedureList: [],
+ },
+ processList:[
+ {
+ name:'浜у搧1+宸ヨ壓2',
+ number:'v1.0'
+ },
+ {
+ name:'浜у搧1+宸ヨ壓2',
+ number:'v2.0'
+ }
+ ]
};
},
mounted() {
@@ -679,13 +788,36 @@
this.getDate2();
}, 5000);
this.getTaskInfo();
+ this.getTaskCountStatistics()
+ },
+ beforeDestroy() {
+ clearTimeout(this.pollingTaskCountTimer)
+ },
+ watch:{
+ // isFinsh(){
+ // if(this.isFinsh==this.Tasks.length){
+ // this.getStartArr()
+ // }
+ // }
},
methods: {
+ mergeProcessParams(params){
+ if (params?.length){
+ return params.map(ele=> `${ele.Key}: ${ele.Value}`).join(' ')
+ }else{
+ return ''
+ }
+ },
taskClick(){
if(this.TaskCount>0){
- this.$refs.control.islook=true
+ // this.getStartArr()
+ this.$refs.control.show=true
}else{
- this.$message.error('鐩墠娌℃湁浠诲姟锛�')
+ this.$message({
+ message:'鐩墠娌℃湁浠诲姟锛�',
+ type: 'error',
+ duration: 3 * 1000
+ })
}
},
isTip(val){
@@ -693,11 +825,29 @@
},
cutClick(val) {
this.activeName = val;
- this.getTaskInfo();
+ if(this.activeName==2){
+ this.Tasks=this.TasksCopy.slice(0,2)
+ if(this.Tasks.length<2){
+ if(this.Tasks.length==0){
+ this.Tasks.push(this.object)
+ }
+ this.Tasks.push(this.object)
+ }
+ }else if(this.activeName==1){
+ this.Tasks=this.TasksCopy.slice(0,1)
+ if(this.Tasks.length<1){
+ this.Tasks.push(this.object)
+ }
+ }else if(this.activeName==3){
+ this.Tasks=this.TasksCopy.slice(1)
+ if(this.Tasks.length<1){
+ this.Tasks.push(this.object)
+ }
+ }
},
- reloadPage() {
+ reloadPage(val) {
// window.location.reload();
- this.getTaskInfo();
+ this.getTaskInfo(val);
},
getcountdown() {
countdown().then((res) => {
@@ -711,9 +861,14 @@
this.countDownMinute = res.data.CountDownMinute
? res.data.CountDownMinute
: 0;
+ if(this.countDownHour==0&& this.countDownMinute==0){
+ this.getTaskInfo();
+ }
}
});
},
+
+
getDateObj(date, fmt) {
if (/(y+)/.test(fmt)) {
@@ -747,7 +902,7 @@
formatDate(value) {
if (value) {
const now = value ? new Date(value * 1000) : new Date();
- let time = this.getDateObj(now, "yyyy-MM-dd hh:mm:ss");
+ let time = this.getDateObj(now, "MM-dd hh:mm");
return time;
} else {
return "";
@@ -777,7 +932,7 @@
let String=now-date*1000;
let seconds=Math.floor(String/1000)
let minutes=Math.floor(seconds/60)
-
+
let days=Math.floor(String/1000/60/60/24)
let hours=Math.floor(minutes/60)-days*24
let m=minutes-days*24*60-hours*60
@@ -787,18 +942,23 @@
setInterval(() => {
d= getCha();
}, 6000);
- return d;
+ return date?d:'--';
},
setInterCard(value, name, i) {
- if (this.Tasks[i].Procedure.procedure[value]!=null) {
+ if (this.TasksCopy[i].Procedure.procedure[value]!=null) {
let height = 200;
- let num = 1;
- if (this.$refs[name]) {
- height = this.$refs[name].$el?this.$refs[name].$el.offsetHeight:200;
- num = Math.floor(height / 80);
+ let num = 3;
+ // if (this.$refs[name]) {
+ // height = this.$refs[name].$el?this.$refs[name].$el.offsetHeight:200;
+ // num = Math.floor(height / 80);
+ // }
+ height = this.$refs['homeRef']?(this.$refs['homeRef'].offsetHeight-470-90-20):200;
+ if(this.activeName==2){
+ height=height-610-90-20
}
+ num = Math.floor(height / 80);
let inputMaterials = JSON.parse(
- JSON.stringify(this.Tasks[i].Procedure.procedure[value])
+ JSON.stringify(this.TasksCopy[i].Procedure.procedure[value])
);
let newDataList = [];
let current = 0;
@@ -819,75 +979,85 @@
}
}
}
- this.Tasks[i][value] = [...newDataList];
+ this.TasksCopy[i][value] = [...newDataList];
}
},
- getTaskInfo() {
- let object = {
- Order: {},
- Procedure: {
- procedure: { inputMaterials: [], outputMaterials: [], workers: [] },
- },
- inputMaterials: [],
- outputMaterials: [
- [
- {
- materialId:11111,
- materialName:'272澶у鍟婃斁鍋囦簡鍗¤壈鑻﹀鏂楀瀮鍦惧彂蹇�掑瀮鍦惧弽棣堟潵寰楀強鍏嬮殕',
- amount:100,
- unit:'浠�'
- }
- ]
- ],
- procedureList: [
- // [
- // {
- // name:"宸ュ簭",
- // deviceName:'1111dhafjdhajkhf jkdahjkf鎵撴硶鍗冲彲鎵撻枊閺堟帴鑲痉鍩哄晩鐪嬩締jdad澶ч浜笢鍗¤�佸徃鏈虹暘绐犲�掕嚰寮�浜嗘埧閲戦樋濂庣鍗佸叚灞婂弽棣堟媺寰锋柉鍩簁鎵撳崱鏈洪樋鐝傞檮浠舵墦寮�浜嗙偣鍑婚樋閲屽崱鍑忚偉鐨勫崱鎷夎兌寮�浜嗘埧澶ц涓婂厠闅唂k鍟﹀ぇ瀹堕槻绌洪浄閬旀暩鎿氱湅i'
- // },
- // ]
- ],
- };
+ /**
+ * 杞鑾峰彇浠诲姟鏁伴噺
+ */
+ getTaskCountStatistics(){
+ getTaskInfo({taskMode:1}).then((res) => {
+ if (res.code === 200&&res.data) {
+ this.TaskCount=res.data?.TaskCount ?? 0
+ }
+ },err=>{
+ this.TaskCount = 0
+ console.error(err)
+ }).finally(()=>{
+ this.pollingTaskCountTimer = setTimeout(()=>{
+ this.getTaskCountStatistics()
+ // 20绉掍竴娆¤疆璇�
+ },20000)
+ });
+ },
+
+ getTaskInfo(val) {
this.Tasks = [];
- getTaskInfo({ page: 1, pageSize: this.activeName }).then((res) => {
+ this.TasksCopy=[]
+ getTaskInfo({taskMode:2}).then((res) => {
if (res.code == 200&&res.data) {
let arr=[]
if(res.data.Tasks){
arr.sort(function(a,b){
- return (a.Position - b.Position)
+ return (a.Channel - b.Channel)
})
}
- this.Tasks = res.data.Tasks ? res.data.Tasks : [];
-
+ this.TasksCopy = res.data.Tasks ? res.data.Tasks : [];
+ // this.safeProduce=res.data.Prompt.safeProduce?res.data.Prompt.safeProduce:''
+ this.plcNotConnected=res.data.Prompt.plcNotConnected?res.data.Prompt.plcNotConnected:''
+ this.ChannelAmount=res.data.ChannelAmount?res.data.ChannelAmount:1
+ // if(this.ChannelAmount>1 &&this.TasksCopy.length<2){
+ // this.TasksCopy.push(this.object)
+ // }
this.TaskCount=res.data.TaskCount?res.data.TaskCount:0
+
+ if ((this.TasksCopy.length ==0 )||!this.TasksCopy) {
+ if (this.activeName == 1||this.activeName == 3) {
+ this.TasksCopy.push(this.object);
+ } else {
+ this.TasksCopy.push(this.object);
+ this.TasksCopy.push(this.object);
+ }
+ }
this.workers=res.data.workers?res.data.workers:[]
- for (let i in this.Tasks) {
- this.Tasks[i].procedureList = [];
- this.Tasks[i].inputMaterials = [];
- this.Tasks[i].outputMaterials = [];
- this.Tasks[i].finishNumber = 0;
+ for (let i in this.TasksCopy) {
+ this.TasksCopy[i].procedureList = [];
+ this.TasksCopy[i].inputMaterials = [];
+ this.TasksCopy[i].outputMaterials = [];
+ this.TasksCopy[i].finishNumber = 0;
this.finishShow['finishShow&'+i]=false
- this.Tasks[i].Procedure.procedure.workers = this.Tasks[i].Procedure
+ this.TasksCopy[i].Procedure.procedure.workers = this.TasksCopy[i].Procedure
.procedure.workers
- ? this.Tasks[i].Procedure.procedure.workers
+ ? this.TasksCopy[i].Procedure.procedure.workers
: [];
- this.Tasks[i].procedureList.push([
+
+ this.TasksCopy[i].procedureList.push([
{
name: "宸ュ簭",
- ...this.Tasks[i].Procedure.procedure,
+ ...this.TasksCopy[i].Procedure.procedure,
},
]);
-
- if (this.Tasks[i].Procedure.ID) {
- startTask({ id: this.Tasks[i].Procedure.ID }).then((res) => {
+
+ if (this.TasksCopy[i].Procedure.ID) {
+ startTask({ id: this.TasksCopy[i].Procedure.ID }).then((res) => {
if (res.code == 200) {
// res.data.number
- this.Tasks[i].procedureList[0].push({
+ this.TasksCopy[i].procedureList[0].push({
number: res.data.Number,
- name: "宸ヨ壓",
- Arr:res.data.Params ? res.data.Params : [],
});
+ this.TasksCopy[i].Arr=res.data.Params ? res.data.Params : []
+ // this.isFinsh=Number(i)+1
}
});
}
@@ -902,46 +1072,53 @@
}, 3000);
}
}
- if (this.Tasks.length == 0) {
- if (this.activeName == 1) {
- this.Tasks.push(object);
- } else {
- this.Tasks.push(object);
- this.Tasks.push(object);
- }
- }
- if (res.code != 200 || this.Tasks.length == 0) {
- this.getcountdown();
- // 鎺у埗閲嶆柊璇锋眰getTaskInfo, 鍙紑鍚竴涓畾鏃跺櫒
- if (!this.cutdownTimer) {
- this.cutdownTimer = setInterval(() => {
- this.getcountdown();
- }, 60000);
- }
- }
+ // if (res.code != 200 || this.TasksCopy.length == 0) {
+ // this.getcountdown();
+ // // 鎺у埗閲嶆柊璇锋眰getTaskInfo, 鍙紑鍚竴涓畾鏃跺櫒
+ // if (!this.cutdownTimer) {
+ // this.cutdownTimer = setInterval(() => {
+ // this.getcountdown();
+ // }, 60000);
+ // }
+ // }
+ this.cutClick(val?val:1)
});
-
- this.Tasks.push(object)
- this.Tasks.push(object)
+ // this.TasksCopy.push(this.object)
+ // this.TasksCopy.push(this.object)
},
getStartArr(){
- for (let i in this.Tasks) {
- if (this.Tasks[i].Procedure.Status==1) {
- this.Arr = this.Tasks[i].procedureList[0].Arr ?this.Tasks[i].procedureList[0].Arr: [];
- this.taskData=this.Tasks[i];
- break;
+ // for (let i in this.TasksCopy) {
+ // if (this.TasksCopy[i].Procedure.Status==1) {
+ // this.Arr = this.TasksCopy[i].Arr ?this.TasksCopy[i].Arr: [];
+ // // this.taskData=this.TasksCopy[i];
+ // break;
+ // }
+ // }
+ getTaskInfo({taskMode:1}).then(res=>{
+ if(res.code==200){
+ this.taskData=res.data.Tasks?res.data.Tasks[0]:{};
+ this.ArrError=''
+ if (Object.keys(this.taskData).length > 0 &&this.taskData.Procedure.ID) {
+ startTask({ id: this.taskData.Procedure.ID }).then((res) => {
+ if (res.code == 200) {
+ this.Arr =res.data.Params ? res.data.Params : []
+ }else{
+ this.ArrError=res.msg?res.msg:'鑾峰彇宸ヨ壓鍙傛暟澶辫触锛�';
+ }
+ });
+ }
}
- }
+ })
},
getProgressInfo() {
- for (let i in this.Tasks){
- if(this.Tasks[i].Procedure.ID){
+ for (let i in this.TasksCopy){
+ if(this.TasksCopy[i].Procedure.ID){
getProgress({
- position: Number(i),
- procedureId: this.Tasks[i].Procedure.ID,
+ channel: Number(i),
+ procedureId: this.TasksCopy[i].Procedure.ID,
}).then((res) => {
if (res.code == 200) {
- this.Tasks[i].finishNumber = res.data.finishNumber
+ this.TasksCopy[i].finishNumber = res.data.finishNumber
? res.data.finishNumber
: 0;
this.plcStatus=res.data.plcStatus?res.data.plcStatus:0
@@ -949,7 +1126,7 @@
});
}
}
-
+
},
// 璁剧疆
setUrl() {
@@ -980,7 +1157,7 @@
finishTask({ id: taskData.Procedure.ID }).then((res) => {
if (res.code == 200) {
this.finishShow['finishShow&'+i] = false;
- this.getTaskInfo();
+ this.reloadPage(this.activeName?this.activeName:1);
this.$message.success("鎿嶄綔鎴愬姛锛�");
}
});
@@ -1003,11 +1180,23 @@
width:200px;
line-height:1.3!important;
}
+.el-popover{
+ background:#12234a!important;
+ color:#fff!important;
+ border-color: #09e5ed !important;
+
+ .popper__arrow::after{
+ border-top-color:#09e5ed !important;
+ }
+}
.color_yellow{
color:yellow;
}
+.color_318583{
+ color:#318583;
+}
.el-empty{
- height:100%;
+ height:calc(100% - 190px);
.el-empty__description p{
font-size:16px!important;
color:#fff!important;
@@ -1024,10 +1213,10 @@
margin-bottom: 20px;
}
.content {
- height: 240px;
+ height: 300px;
}
.bottom {
- height: calc(100% - 410px);
+ height: calc(100% - 470px);
}
.font_size_20px{
font-size:20px!important;
@@ -1044,7 +1233,7 @@
box-sizing: border-box;
border-right: 1px solid #eee;
}
-
+
.small_title {
margin-bottom: 30px;
}
@@ -1059,18 +1248,18 @@
line-height: 20px;
}
.content {
- height: 370px;
+ height: 430px;
.content-top {
- height: calc(50% - 20px) !important;
- padding-top: 10px !important;
+ height: calc(50% - 30px) !important;
+ padding-top: 20px !important;
}
.el-descriptions__body {
font-size: 16px !important;
}
}
.bottom {
- height: calc(100% - 560px);
+ height: calc(100% - 610px);
}
.bottom_list .bottom-title {
font-size: 16px;
@@ -1100,7 +1289,7 @@
font-size:14px;
}
}
-
+
.el-step{
.el-step__icon{
background:#00cc66;
@@ -1288,8 +1477,7 @@
overflow-y:auto;
}
.el-carousel__item{
- // height:auto;
- min-height:160px;
+ height:auto;
}
}
.bottom-box-btn{
@@ -1297,6 +1485,10 @@
position:absolute;
bottom:10px;
left:10px;
+ .el-button{
+ height: 40px;
+
+ }
}
}
@@ -1304,7 +1496,6 @@
font-size: 20px;
}
.right-small-btn {
- margin-top: 10px;
width: calc(100% - 20px);
margin: 0 auto;
position: absolute;
@@ -1330,6 +1521,15 @@
border: 0;
}
}
+ .huise{
+ width: 46%;
+ float: right;
+ }
+ .huise.el-button--primary {
+ background: #CCE8E8;
+ color: #AAAAAA;
+ border: 0;
+ }
}
.home {
width: 100%;
@@ -1424,6 +1624,9 @@
background: rgb(22 72 173);
border-radius: 6px;
// background: #233b9e;
+ .el-descriptions-row{
+ height:45px;
+ }
.el-descriptions__body {
background: transparent;
font-size: 18px;
@@ -1463,15 +1666,28 @@
margin-top: 10px;
color: #333;
position: relative;
+ .font_dian{
+ -webkit-box-orient:vertical;
+ overflow:hidden;
+ text-overflow:ellipsis;
+ white-space:nowrap;
+ }
+ .card_top-2{
+ width:35%;
+ }
+ .card-top-input-out-r,
+ .card_top-3 {
+ width:65%;
+ }
.card_top-2,.card-top-input-out-r,
.card_top-3 {
- width: 50%;
height: 45px;
border-radius: 5px;
background: #6b83ff;
- font-size: 12px;
+ font-size: 13px;
color: #fff;
float: left;
+ font-weight: 700;
.card-top-r-t {
width: 100%;
text-align: center;
@@ -1577,12 +1793,7 @@
border-radius: 5px 5px 0 0;
background: rgb(19, 35, 90);
}
- .font_dian{
- -webkit-box-orient:vertical;
- overflow:hidden;
- text-overflow:ellipsis;
- white-space:nowrap;
- }
+
.card_contentRight {
width: 100%;
@@ -1653,7 +1864,7 @@
display:inline-block;
}
}
-
+
.yuandian {
width: 25px;
height: 25px;
@@ -1680,7 +1891,7 @@
.right_dutyLst {
width: calc(106% - 20px);
// height: 270px;
- height: 310px;
+ height: 370px;
border-radius: 4px;
line-height: 30px;
overflow: hidden;
@@ -1699,7 +1910,7 @@
}
.right-person-box {
width: 100%;
- height: calc(100% - 40px);
+ height: calc(100% - 60px);
overflow: auto;
margin-top: -10px;
}
@@ -1729,14 +1940,14 @@
}
.right_base {
width: 100%;
- height: calc(100% - 520px);
+ height: calc(100% - 580px);
min-height: 200px;
// overflow-y:auto;
position: relative;
.right-base-btn {
width: 100%;
position: absolute;
- bottom: 0;
+ bottom: 24px;
left: 0;
.el-button--primary {
width: 100%;
@@ -1746,6 +1957,10 @@
color: #fff;
font-weight: 700;
font-size: 18px;
+ height: 40px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
}
}
// .call {
@@ -1771,4 +1986,23 @@
font-weight: 700 !important;
font-size: 16px;
}
+.process-params{
+ margin-top: 10px;
+ border-radius: 5px;
+ overflow: hidden;
+ color: #fff;
+ font-size: 12px;
+ &-title{
+ height: 25px;
+ padding: 0 5px;
+ background-color: #13235a;
+ line-height: 25px;
+ }
+ &-value{
+ background-color: #6b83ff;
+ min-height: 45px;
+ box-sizing: border-box;
+ padding: 12px;
+ }
+}
</style>
--
Gitblit v1.8.0