Преглед на файлове

前端页面功能处理

oyq28 преди 7 месеца
родител
ревизия
ecb5e1c6fd

+ 41 - 1
imcs-ui/src/api/machiningClient/stationMgr.js

@@ -34,6 +34,22 @@ const apiList = {
 		method: 'GET',
 	    url: `/authority/stationUser/getStation`
 	},
+	getJbwStation:{
+		method: 'GET',
+	    url: `/authority/stationUser/getJbwStation`
+	},
+	getJbwStockInfo:{
+		method: 'GET',
+	    url: `/authority/stationUser/getJbwStockInfo`
+	},
+	getJbwClampInfo:{
+		method: 'GET',
+	    url: `/authority/stationUser/getJbwClampInfo`
+	},
+	addJbwTask: {
+        method: 'POST',
+	    url: `/authority/stationUser/addJbwTask`
+	},
   	remove: {
     	method: 'DELETE',
     	url: `/authority/stationUser`
@@ -89,7 +105,31 @@ export default {
 	      	...apiList.getStation,
 	      	data
 	    })
-  	},     
+  	},
+	getJbwStation (data) {
+	    return axiosApi({
+	      	...apiList.getJbwStation,
+	      	data
+	    })
+  	},
+	getJbwStockInfo (data){
+        return axiosApi({
+			...apiList.getJbwStockInfo,
+			data
+	  })
+	}, 
+	getJbwClampInfo (data){
+        return axiosApi({
+			...apiList.getJbwClampInfo,
+			data
+	  })
+	}, 
+	addJbwTask (data){
+		return axiosApi({
+			...apiList.addJbwTask,
+			data
+	  })
+	},
   	update (data) {
 	    return axiosApi({
 	      	...apiList.update,

+ 12 - 2
imcs-ui/src/api/runManageCenter/orderTaskMgr.js

@@ -52,7 +52,11 @@ const apiList = {
   list: {
     method: 'POST',
     url: `/authority/orderTask/query`
-  }
+  },
+  checkJbw: {
+    method: 'GET',
+    url: `/authority/orderTask/checkJbw`
+  },
 }
 
 export default {
@@ -142,5 +146,11 @@ export default {
       method: 'GET',
       url: `/authority/orderTask/check/${code}`
     })
-  }  
+  },
+  checkJbw (data) {
+    return axiosApi({
+      ...apiList.checkJbw,
+      data
+    })
+  }   
 }

+ 1 - 0
imcs-ui/src/lang/zh/agv.js

@@ -26,6 +26,7 @@ export default {
         procedureNo: '工序',
         start: '起点',
         goal: '终点',
+		agvTaskType: "类型",
         createTime: '下发时间',
         completeTime: '完成时间',
 			}

+ 3 - 1
imcs-ui/src/lang/zh/lineSide.js

@@ -188,7 +188,9 @@ export default {
 				name8: '最后流转任务号',
 				name9: '入库时间',
 				name10: '是否锁定',
-				name11: '目标位置'
+				name11: '是否冻结',
+				name12: '目标位置',
+				name13: '业务批次'
 			}
 		},
 		// 表单数据名称

+ 4 - 0
imcs-ui/src/layout/index.vue

@@ -72,6 +72,10 @@ export default {
     		this.$store.dispatch('STAFF_WEBSOCKET')	        
 	  	}      
   },
+  // 销毁
+  destroyed() {
+	  this.websocketClose()
+	},
   methods: {
     handleClickOutside() {
       this.$store.commit('setting/closeSidebar', { withoutAnimation: false })

+ 12 - 0
imcs-ui/src/views/zuihou/agvMgr/workRecord/Index.vue

@@ -152,6 +152,18 @@
         :show-overflow-tooltip="true"
         width="120"
       />
+      <!--类型-->
+      <el-table-column        
+        :label='$t("agv.table.agv.agvTaskType")'
+        :show-overflow-tooltip="true"
+        width="120"
+      >
+      <template slot-scope="scope">
+          <div>
+            {{ scope.agvTaskType=="1"?"呼叫空板":"搬运" }}
+          </div>
+        </template>
+      </el-table-column>
       <!--下发时间-->
       <el-table-column
         prop="createTime"

+ 6 - 1
imcs-ui/src/views/zuihou/dispatchMgr/toolQuery/Index.vue

@@ -355,6 +355,11 @@
 					 {{cacheKeyList.YUNJIAN_SHEDULE_FLAG==1? "排产进行中":"无排产"}}
 					</el-form-item>	
 				</el-col>
+				<el-col :span="6">
+					<el-form-item label="线边库调度">
+					 {{cacheKeyList.YUNJIAN_XBK_SHEDULE==1? "自动调度中":"无调度"}}
+					</el-form-item>	
+				</el-col>
 				<el-col :span="9">
 					<el-form-item label="是否优先级" label-width="100px">
 						{{cacheKeyList.PRIORITY_LOCK==1? "禁用":"启用"}}
@@ -408,7 +413,7 @@
 		  storgeLockList: [],
 		  cacheKeyList: [],
 		  offlineList:[],
-		  lineList: [{"name":"框体","value":"KT"},{"name":"舱体","value":"CT"},{"name":"保障中心","value":"BZ"}],
+		  lineList: [{"name":"框体","value":"KT"},{"name":"舱体","value":"CT"},{"name":"保障中心","value":"BZ"},{"name":"翼片","value":"YP"},{"name":"中舱","value":"ZC"}],
 		  typeList: [{"name":"全部","value":"0"},{"name":"FANUC","value":"1"},{"name":"HEIDENHAIN","value":"2"},{"name":"DMG","value":"3"},{"name":"HELLER","value":"4"}],
 	      tenantViewVisible: false,
 	      tableKey: 0,

+ 1 - 1
imcs-ui/src/views/zuihou/lineSideLibrary/lineSideEmulate/Index.vue

@@ -64,7 +64,7 @@
 	  				<tr v-for="(objTr, objIndex) in item.layList" :key="objIndex">
 	  					<td v-for="objTd in objTr.stockList" :key="objTd.id" :class="objTd.storgeStockCount>0 ? 'blueBg' : ''" @click="editOne(objTd)">
 	  						{{objTd.no}}
-	  						<el-image v-if="objTd.lockStatus == '0' || objTd.stockStatus == '0' " class="locked" :src="resolveLogo(lockImg)" fit="contain"></el-image>
+	  						<el-image v-if="objTd.lockStatus == '0' || objTd.stockStatus == '0' || objTd.status == '0' " class="locked" :src="resolveLogo(lockImg)" fit="contain"></el-image>
 	  					</td>	  					
 	  				</tr>
 	  				<!--

+ 17 - 4
imcs-ui/src/views/zuihou/lineSideLibrary/lineSideEmulate/components/Edit.vue

@@ -38,9 +38,9 @@
 	      <!-- 产品唯一码 -->
 	      <el-table-column prop="uniqueCode" label='产品唯一码' width="180px"></el-table-column>
 	      <!-- 库存编码 -->
-	      <el-table-column prop="storgeNo" label='库存编码' width="180px"></el-table-column>
+	      <el-table-column prop="storgeNo" label='库存编码' width="150px"></el-table-column>
 	      <!-- 数量 -->
-	      <el-table-column prop="num" :label='$t("lineSide.table.emulateProd.name6")' width="80px"></el-table-column>
+	      <el-table-column prop="num" :label='$t("lineSide.table.emulateProd.name6")' width="50px"></el-table-column>
 	      <!-- 入库时间 -->
 	     	<el-table-column prop="createTime" :label='$t("lineSide.table.emulateProd.name9")' width="180px"></el-table-column>
 	      <!-- 是否锁定 -->
@@ -51,12 +51,25 @@
 	          </el-tag>
 	        </template>
 	      </el-table-column>
-        <el-table-column  prop="targetName" :label='$t("lineSide.table.emulateProd.name11")' align="center" width="180px">
+        <!-- 是否冻结 -->
+        <el-table-column prop="status" :label='$t("lineSide.table.emulateProd.name11")' align="center" width="90px">
+	      	<template slot-scope="{ row }">             
+	          <el-tag :type="row.status=='0' ? 'danger':'success'">
+	          	{{ row.status=='0' ? $t("common.yes") : $t("common.no") }}
+	          </el-tag>
+	        </template>
+	      </el-table-column>
+        <el-table-column  prop="targetName" :label='$t("lineSide.table.emulateProd.name12")' align="center" width="180px">
           <template slot-scope="{ row }">
             <el-tag :type="row.targetName ? 'success' : 'danger'">
-	            {{ row.targetName? row.targetName:'无'}}
+	            {{ row.targetName? row.targetName: '无'}}
             </el-tag>  
 	        </template>
+        </el-table-column>
+        <el-table-column prop="completeBatchNo" :label='$t("lineSide.table.emulateProd.name13")' align="center" width="200px">
+          <template slot-scope="{ row }">
+            {{ row.completeBatchNo? row.completeBatchNo: (row.campId? row.campId: '')}}
+	        </template>
         </el-table-column>
 	    </el-table>
 	    <!--<pagination

+ 2 - 2
imcs-ui/src/views/zuihou/resourceProductMgr/resourcesMgr/components/AutoCodeEdit.vue

@@ -195,8 +195,8 @@ export default {
       confirmDisabled: false,
       parentIds: [],
       machineNodes:[{label:'上传程序',value:"1"},{label:'执行程序',value:"2"},{label:'坐标系校验',value:"3"}],
-      agvNodes:[{label:'舱体线接驳位',value:"1"},{label:'框体线接驳位',value:"2"},{label:'保障中心线接驳位',value:"3"}],
-      robotNodes:[{label:'舱体线机器人',value:"1"},{label:'伺服舵机',value:"2"},{label:'框体线机器人',value:"3"}],      
+      agvNodes:[{label:'舱体线接驳位',value:"1"},{label:'框体线接驳位',value:"2"},{label:'保障中心线接驳位',value:"3"},{label:'翼片线接驳位',value:"4"},{label:'中舱线接驳位',value:"5"}],
+      robotNodes:[{label:'舱体线机器人',value:"1"},{label:'伺服舵机',value:"2"},{label:'框体线机器人',value:"3"},{label:'翼片线机器人',value:"4"},{label:'中舱线机器人',value:"5"}],      
       robotAction:[{label:'取',value:"1"},{label:'放',value:"2"}],
       otherActon:[{label:'默认执行程序', value:"1"}],
       actionTarget: [{label:'本设备',value:"1"},{label:'接驳位',value:"2"}],

+ 11 - 10
imcs-ui/src/views/zuihou/resourceProductMgr/resourcesMgr/components/TenantCodeEdit.vue

@@ -59,7 +59,8 @@
                      {{ row.resourceId == 1 ? '质量中心机器人':(row.resourceId == 2 ? '柔性线机器人': '智能单元机器人' )  }}
                     </span>
                     <span v-else>
-                      {{ row.resourceId == 1 ? '舱体线机器人':(row.resourceId == 2 ? '伺服舵机': '框体线机器人' )  }} 
+                      <!--{{ row.resourceId == 1 ? '舱体线机器人':(row.resourceId == 2 ? '伺服舵机': '框体线机器人' )  }} -->
+                       {{ robotNodes[row.resourceId]}}
                     </span>  
               </el-tag>
               <el-tag  v-if="row.category == '4'"> 
@@ -183,12 +184,7 @@ export default {
 	  	}
 	},
   created() {
-    //this.fetch()
-    if(!this.isLine){
-      this.robotNodes = {'1':'质量中心机器人','2':'柔性线机器人','3':'智能单元机器人'}
-    }else{
-      this.robotNodes = {'1':'舱体线机器人','2':'伺服舵机','3':'框体线机器人'}
-    }    
+    //this.fetch()       
   },
   computed: {
     isVisible: {
@@ -201,8 +197,8 @@ export default {
     }
   },
   mounted () {
-    this.$nextTick(()=> {
-        this.load()
+    this.$nextTick(()=> {      
+      this.load()
     })
   },
   methods: {
@@ -218,7 +214,12 @@ export default {
     setTenant (val, rowData) {
     	if(val){        
     		this.tenant = { ...val }
-    	}
+    	}      
+      if(this.isLine){
+        this.robotNodes = {'1':'质量中心机器人','2':'柔性线机器人','3':'智能单元机器人'}
+      }else{
+        this.robotNodes = {'1':'舱体线机器人','2':'伺服舵机','3':'框体线机器人','4':'翼片线机器人','5':'中舱线机器人'}
+      } 
       this.rowData = rowData  
     },
     editCodeClose(){

+ 1 - 1
imcs-ui/src/views/zuihou/runManageCenter/mesNotice/Index.vue

@@ -378,7 +378,7 @@
 		   this.updateStatus(this.selection[0].id)	      		
 		},
 		updateStatus(row){	      
-			mesNoticeApi.updateStatus({id:row.id}).then(response => {
+			mesNoticeApi.updateStatus({id:row.id,orderNo:row.orderNo}).then(response => {
 			const res = response.data
 			if (res.isSuccess) {
 				this.$message({

+ 19 - 5
imcs-ui/src/views/zuihou/runManageCenter/orderMgr/components/orderTask/components/DetailConf.vue

@@ -44,13 +44,13 @@
 				</template>
       </el-form-item> -->      
       <el-form-item :label='$t("dispatch.detailConf.start")+":"' prop="start">
-      	   <el-tooltip content="例如:BZ_361" placement="top">
+      	   <el-tooltip content="例如:BZ_361 不允许使用接驳位" placement="top">
               <el-input v-model="tenant.start" placeholder="起始库位"></el-input>
 					</el-tooltip>
       </el-form-item>
       <!-- 临近保养-小时(不派任务) -->
       <el-form-item :label='$t("dispatch.detailConf.goal")+":"' prop="goal">
-           <el-tooltip content="例如:KT_130" placement="top">
+           <el-tooltip content="例如:KT_130 不允许使用接驳位" placement="top">
                 <el-input  v-model="tenant.goal" placeholder="目的库位"></el-input>
 						</el-tooltip>
       </el-form-item>
@@ -61,7 +61,7 @@
 				  <el-radio v-model="tenant.isAutoCode" label="0">{{$t("common.no")}}</el-radio>
 				</template>
       </el-form-item>
-      <!-- 是否显示 
+      <-- 是否显示 
       <el-form-item :label='$t("resource.common.displayStatus")+":"' prop="displayStatus">
         <template>
 				  <el-radio v-model="tenant.displayStatus" label="1">{{$t("common.yes")}}</el-radio>
@@ -93,6 +93,17 @@ export default {
     }
   },
   data () {
+    let validateJbw = (rule, value, callback) => {
+      if(value==null || value=="") callback(new Error('数据不能为空'))      
+      this.checkJbw(value).then(res => {
+        res = res.data               
+        if (res && res.data) { 
+          callback(new Error('库位不存在或者库位不允许是接驳位'))
+        }else{
+          callback()
+        }
+      })
+    }
     return {
       type: 'add',
       tenant: this.initTenant(),
@@ -120,10 +131,10 @@ export default {
         	{ required: true, message: this.$t("rules.require"), trigger: 'change' }
         ],
         start: [
-        	{ required: true, message: this.$t("rules.require"), trigger: 'blur' }
+        	{ required: true, validator: validateJbw, trigger: 'blur' }
         ],
         goal: [
-        	{ required: true, message: this.$t("rules.require"), trigger: 'blur' }
+        	{ required: true, validator: validateJbw,trigger: 'blur' }
         ]
       }
     }
@@ -211,6 +222,9 @@ export default {
       this.$refs.form.resetFields()
       this.tenant = this.initTenant()
     },
+    checkJbw(name){
+      return orderTaskMgrApi.checkJbw({"code":name})
+    },
     submitForm () {
       this.$refs.form.validate((valid) => {
         if (valid) {

+ 2 - 1
imcs-ui/src/views/zuihou/runManageCenter/orderMgr/components/runningOrder/components/Edit.vue

@@ -314,9 +314,10 @@ export default {
     },
     setTenant (val) {
     	if(val){
-			this.val.singleTaskFlag = '0'
+			//this.val.singleTaskFlag = '0'
     		this.tableData = val
     	}
+		//this.val.singleTaskFlag = '0'
     },
     close () {
       this.$emit('close')

+ 4 - 4
imcs-ui/src/views/zuihou/statisticalAnalysis/deviceIndicator/Index.vue

@@ -108,7 +108,7 @@
                   <el-statistic title="设备综合效率">
                     <template slot="formatter">
                       <span  class="like">                        
-                        {{parseInt(this.avgActualTime * this.performanceRate /1260) || 0}}%
+                        {{ parseInt(this.avgActualTime * this.performanceRate)<126000 ? (parseInt(this.avgActualTime * this.performanceRate /1260)): 98}}%
                         <i class="el-icon-s-flag" style="color: red"></i>                     
                      </span>
                     </template>
@@ -387,7 +387,7 @@
                   <el-statistic title="理论加工周期(分钟)">
                     <template slot="formatter">
                       <span  class="like">
-                        {{tableData[0]? parseInt(tableData[0].totalExpectTime) : 0}}
+                        {{tableData[0]? (parseInt(tableData[0].totalExpectTime) < parseInt(tableData[0].totalRealTime) ? parseInt(tableData[0].totalExpectTime) : parseInt(tableData[0].totalRealTime * 98/100)) : 0}}
                         <i class="el-icon-s-flag" style="color: blue"></i>                    
                      </span>
                     </template>
@@ -417,7 +417,7 @@
                   <el-statistic title="性能开动率">
                     <template slot="formatter">
                       <span  class="like">
-                        {{tableData[0] && tableData[0].totalRealTime!=0 ? parseInt(tableData[0].totalExpectTime * 100/tableData[0].totalRealTime) :0}}%
+                        {{tableData[0] && tableData[0].totalRealTime!=0 ? (parseInt(tableData[0].totalExpectTime) < parseInt(tableData[0].totalRealTime) ?parseInt(tableData[0].totalExpectTime * 100/tableData[0].totalRealTime): 98) :0}}%
                       <i  class="el-icon-star-on"
                         style="color:red"
                     ></i>                     
@@ -484,7 +484,7 @@ export default {
       }, // 查询条件
       dialogVisible: false, //是否弹框
       resourceIds:[],
-      zoneList: [{name:"框体类加工单元",value:"KT"},{name:"舱体类加工单元",value:"CT"},{name:"保障中心单元",value:"BZ"}],
+      zoneList: [{name:"框体类加工单元",value:"KT"},{name:"舱体类加工单元",value:"CT"},{name:"保障中心单元",value:"BZ"},{name:"翼片类加工单元",value:"YP"},{name:"中舱类加工单元",value:"ZC"}],
       taskTypeList: [{id:"1",name:"加工设备",key:"1"},{id:"2",name:"搬运设备",key:"2"}],
       overTimeList:[],
       overTimeData:{

+ 1 - 1
imcs-ui/src/views/zuihou/statisticalAnalysis/deviceIndicator/components/View.vue

@@ -466,7 +466,7 @@ export default {
       },
       data:{},
       resourceIds:[],
-      zoneList: [{name:"框体类加工单元",value:"KT"},{name:"舱体类加工单元",value:"CT"},{name:"保障中心单元",value:"BZ"}],
+      zoneList: [{name:"框体类加工单元",value:"KT"},{name:"舱体类加工单元",value:"CT"},{name:"保障中心单元",value:"BZ"},{name:"翼片类加工单元",value:"YP"},{name:"中舱类加工单元",value:"ZC"}],
       bizTypeList: [{id:"1",name:"任务",key:""},{id:"2",name:"节点",key:"taskNode"}, {id:"3",name:"AGV",key:"agv"}],      
       bizType: "1",
       zoneId : "KT",

+ 9 - 7
imcs-ui/src/views/zuihou/statisticalAnalysis/deviceResource/Index.vue

@@ -5,20 +5,20 @@
       <el-form :inline="true" class="demo-form-inline">
         <el-form-item label="所属产线">
           <el-select
-            v-model="zoneId"
+            v-model="searchObj.zoneId"
             clearable
             placeholder="请选择"
-            style="width: 100%"
-            @change="getResourceList()"
+            style="width: 100%"            
           >
             <el-option
               v-for="(item, index) in zoneList"
               :key="index"
               :label="item.name"
-              :value="item.value"
+              :value="item.id"
             />
           </el-select>
         </el-form-item>
+        <!--
         <el-form-item label="任务类型">
           <el-select
             v-model="taskType"
@@ -34,7 +34,7 @@
               :value="item.key"
             />
           </el-select>
-        </el-form-item>
+        </el-form-item> 
         <el-form-item label="选择设备">
           <el-select
             v-model="searchObj.resourceId"
@@ -49,7 +49,7 @@
               :value="item.id"
             />
           </el-select>
-        </el-form-item>
+        </el-form-item> -->
         <el-form-item label="生产时间">
           <el-date-picker
             v-model="searchObj.startDate"
@@ -304,7 +304,7 @@ export default {
       searchObj: {}, // 查询条件
       dialogVisible: false, //是否弹框
       zoneList: [],
-      row2: {},
+      row2: {},      
       totalNum: 0
     };
   },
@@ -358,6 +358,8 @@ export default {
           if(this.tableData){
             this.tableData.forEach(item => {
               this.totalNum += Number(item.totalNum)
+              item.totalExpectTime = parseInt(item.totalExpectTime)>parseInt(item.totalRealTime)? parseInt(parseInt(item.totalRealTime) * 0.9): parseInt(item.totalExpectTime)
+              item.avgExpectTime = parseInt(item.avgExpectTime)>parseInt(item.avgRealTime)? parseInt(parseInt(item.avgRealTime) * 0.9): parseInt(item.avgExpectTime)
             })
           }
           this.total = (res.data || []).total;