Ver Fonte

前端页面功能处理

oyq28 há 1 mês atrás
pai
commit
ae2e533ff1

+ 127 - 0
imcs-ui/src/api/systemMgr/toolQuery.js

@@ -0,0 +1,127 @@
+import axiosApi from '../AxiosApi.js'
+
+const apiList = {
+  getZoneRateList:{
+    method:'POST',
+    url: `/authority/toolQuery/getZoneRateList`
+  },
+  getWorkflowList:{
+    method:'POST',
+    url: `/authority/toolQuery/getWorkflowList`
+  },
+  getWorkflowDetail:{
+    method:'POST',
+    url: `/authority/toolQuery/getWorkflowDetail`
+  },
+	getBizStatusList: {
+    method: 'POST',
+    url: `/authority/toolQuery/getBizStatusList`
+  },
+  getAgvLockList: {
+    method: 'POST',
+    url: `/authority/toolQuery/getAgvLockList`
+  },
+  getCacheCallbackList: {
+    method: 'POST',
+    url: `/authority/toolQuery/getCacheCallbackList`
+  },
+  getStorgeLockList: {
+    method: 'POST',
+    url: `/authority/toolQuery/getStorgeLockList`
+  },
+  getCacheKeyList: {
+    method: 'POST',
+    url: `/authority/toolQuery/getCacheKeyList`
+  },
+  getOfflineList: {
+    method: 'POST',
+    url: `/authority/toolQuery/getOfflineList`
+  },
+  getOrderTaskList:{
+    method: 'POST',
+    url: `/authority/toolQuery/getOrderTaskList`
+  },
+  getXbkDyTaskList:{
+    method: 'POST',
+    url: `/authority/toolQuery/getXbkDyTaskList`
+  },
+  getZcwDyTaskList:{
+    method: 'POST',
+    url: `/authority/toolQuery/getZcwDyTaskList`
+  }
+}
+
+export default {
+  getZoneRateList (data) {
+    return axiosApi({
+      ...apiList.getZoneRateList,
+      data
+    })
+  },
+  getWorkflowList (data){
+    return axiosApi({
+      ...apiList.getWorkflowList,
+      data
+    })
+  },
+  getWorkflowDetail (data){
+    return axiosApi({
+      ...apiList.getWorkflowDetail,
+      data
+    })
+  },
+	getBizStatusList (data) {
+    return axiosApi({
+      ...apiList.getBizStatusList,
+      data
+    })
+  },
+  getAgvLockList (data) {
+    return axiosApi({
+      ...apiList.getAgvLockList,
+      data
+    })
+  },
+  getCacheCallbackList (data) {
+    return axiosApi({
+      ...apiList.getCacheCallbackList,
+      data
+    })
+  },
+  getStorgeLockList (data) {
+    return axiosApi({
+      ...apiList.getStorgeLockList,
+      data
+    })
+  },
+  getCacheKeyList (data) {
+    return axiosApi({
+      ...apiList.getCacheKeyList,      
+      data
+    })
+  },
+  getOfflineList (data) {
+    return axiosApi({
+      ...apiList.getOfflineList,      
+      data
+    })
+  },
+  getOrderTaskList (data) {
+    return axiosApi({
+      ...apiList.getOrderTaskList,      
+      data
+    })
+  },
+  getXbkDyTaskList (data) {
+    return axiosApi({
+      ...apiList.getXbkDyTaskList,      
+      data
+    }) 
+  },
+  getZcwDyTaskList (data) {
+    return axiosApi({
+      ...apiList.getZcwDyTaskList,      
+      data
+    }) 
+  },
+}

+ 21 - 1
imcs-ui/src/api/systemMgr/toolbar.js

@@ -37,6 +37,10 @@ const apiList = {
     method: 'POST',
     url: `/authority/toolbar/refreshXbk`
   },
+  applyFeeding: {
+    method: 'POST',
+    url: `/authority/toolbar/applyFeeding`
+  },
   manualTask: {
     method: 'POST',
     url: `/authority/toolbar/manualTask`
@@ -44,7 +48,11 @@ const apiList = {
   manualXbk: {
     method: 'POST',
     url: `/authority/toolbar/manualXbk`
-  } 
+  },
+  addNodeMsg: {
+    method: 'POST',
+    url: `/authority/toolbar/addNodeMsg`
+  }  
 }
 
 export default {
@@ -96,6 +104,12 @@ export default {
       data
     })
   },
+  applyFeeding (data) {
+    return axiosApi({
+      ...apiList.applyFeeding,
+      data
+    })
+  },
   sendCallback (data) {
     return axiosApi({
       ...apiList.sendCallback,
@@ -113,5 +127,11 @@ export default {
       ...apiList.manualXbk,
       data
     })
+  },
+  addNodeMsg (data) {
+    return axiosApi({
+      ...apiList.addNodeMsg,
+      data
+    })
   }
 }

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

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

+ 653 - 0
imcs-ui/src/views/zuihou/dispatchMgr/toolQuery/Index.vue

@@ -0,0 +1,653 @@
+<template>
+  <div class="app-container space">
+
+	<el-card class="box-card">
+        <div slot="header" class="clearfix">查询产线设备在线率</div>
+		<el-form ref="form" :model="form" label-width="100px">
+			<el-row :gutter="12" >
+				<el-col :xs="6" :sm="5">
+					<el-form-item label="产线类型:" prop="zoneCode">
+                    	<el-select v-model="form.zoneCode" placeholder="选择产线类型">
+							 <el-option v-for="zoneCode in lineList" :label="zoneCode.name" :value="zoneCode.value" :key="zoneCode.value" ></el-option>		
+			  			</el-select>
+					</el-form-item>
+				</el-col>											
+			</el-row>
+			<el-form-item>
+    			<el-button type="primary" @click="getZoneRateList" >发送</el-button>    		
+  			</el-form-item>	
+			  <el-row :gutter="12" >			  
+				<el-col :span="4" v-for="(item, index) in zoneRateList" :key="item.id">
+					<el-form-item :label="index==0? '加工设备数':(index==1? '设备联网率':'设备上线率')">
+					  {{zoneRateList[index].rate}}{{index!=0?'%':''}}
+					</el-form-item>	
+				</el-col>
+			  </el-row>	
+	  </el-form>
+	</el-card>
+
+	<el-card class="box-card">		
+        <div slot="header" class="clearfix">查询业务节点状态</div>
+		<el-form ref="form2" :model="form2" label-width="80px">
+			<el-row :gutter="12" >
+				<el-form-item label="超时天数:" prop="timeSpan">
+                	<el-input-number v-model="form2.timeSpan" :min="0" :max="30"></el-input-number>
+				</el-form-item>
+			</el-row>
+			<el-form-item>
+    			<el-button type="primary" @click="getBizStatusList" >发送</el-button>    		
+  			</el-form-item>
+			<!--
+			<el-row :gutter="20">
+				<el-col :span="4">
+				    <div>
+						<el-form-item label="进行中:">
+							456/2
+						</el-form-item>		
+					</div>	
+				</el-col>
+				<el-col :span="4">
+					<div>
+                        <el-form-item label="暂停中:">
+							456/2
+						</el-form-item>	
+					</div>
+				</el-col>
+				<el-col :span="6">
+					<div>
+                        <el-form-item label="线边库中:">
+							456/2
+						</el-form-item>	
+					</div>
+				</el-col>
+			</el-row>		
+		-->
+			<el-row :gutter="10" v-for="(item, index) in bizStatuList" :key="item.id">
+				<el-col :span="4">
+					<el-form-item label="ID:">
+					 {{bizStatuList[index].id}}
+					</el-form-item>	
+				</el-col>
+				<el-col :span="6">
+					<el-form-item label="名称:">
+						{{bizStatuList[index].nodeName}}
+					</el-form-item>
+			    </el-col>
+				<el-col :span="6">
+					<el-form-item label="批次号:">
+						{{bizStatuList[index].completeBatchNo}}
+					</el-form-item>
+				</el-col>
+				<el-col :span="6">
+					<el-form-item label="状态:">
+						{{bizStatuList[index].exeStatus=="2"?"进行中":(bizStatuList[index].exeStatus=="4"? "暂存中":"线边库暂存中")}}
+					</el-form-item>
+				</el-col>				
+			</el-row>	
+		</el-form>
+	</el-card>
+
+	<el-card class="box-card">
+        <div slot="header" class="clearfix">查询AGV锁定状态</div>
+		<el-form label-width="80px">
+		<el-row :gutter="10" v-for="agvLock in agvLockList" :key="agvLock.id">
+			    <el-col :span="6">
+					<el-form-item label="ID:">
+					 {{agvLock.id}}
+					</el-form-item>	
+				</el-col>
+				<el-col :span="6">
+					<el-form-item label="设备ID:">
+						{{agvLock.target_resource_id}}
+					</el-form-item>
+			    </el-col>
+				<el-col :span="6">
+					<el-form-item label="目标设备:">
+						{{agvLock.name}}
+					</el-form-item>
+				</el-col>				
+		   </el-row>
+		</el-form>
+	</el-card>
+
+	<el-card class="box-card">
+        <div slot="header" class="clearfix">查询节点回调数据</div>
+		<el-form label-width="80px">
+		<el-row :gutter="10" v-for="cacheCallback in cacheCallbackList" :key="cacheCallback.Id">
+			    <el-col :span="5">
+					<el-form-item label="节点ID:">
+					 {{cacheCallback.taskNodeId}}
+					</el-form-item>	
+				</el-col>
+				<el-col :span="5">
+					<el-form-item label="任务名称:">
+						{{cacheCallback.operateName}}
+					</el-form-item>
+			    </el-col>
+				<el-col :span="5">
+					<el-form-item label="任务ID:">
+						{{cacheCallback.taskId}}
+					</el-form-item>
+				</el-col>
+				<el-col :span="3">
+					<el-form-item label="任务状态:">
+						{{cacheCallback.state=="1"?"未完成":"已完成"}}
+					</el-form-item>
+				</el-col>
+				<el-col :span="5">
+					<el-form-item label="地址:">
+						{{cacheCallback.address}}
+					</el-form-item>
+				</el-col>				
+		   </el-row>
+		</el-form>
+		
+	</el-card>
+
+	<el-card class="box-card">
+        <div slot="header" class="clearfix">查询点库位锁定状态</div>
+		<el-form label-width="80px">
+		<el-row :gutter="10" v-for="storgeLock in storgeLockList" :key="storgeLock.id">
+			    <el-col :span="6">
+					<el-form-item label="名称:">
+					 {{storgeLock.name}}
+					</el-form-item>	
+				</el-col>
+				<el-col :span="3">
+					<el-form-item label="启用状态:">
+						{{storgeLock.status=="0"?"不可用":"可用"}}
+					</el-form-item>
+			    </el-col>
+				<el-col :span="3">
+					<el-form-item label="锁定状态:">
+						{{storgeLock.lockStatus=="0"?"已锁定":"未锁定"}}
+					</el-form-item>
+				</el-col>
+				<el-col :span="6">
+					<el-form-item label="锁定节点:">
+						{{storgeLock.campId}}
+					</el-form-item>
+				</el-col>
+				<el-col :span="6">
+					<el-form-item label="锁定批次:">
+						{{storgeLock.completeBatchNo}}
+					</el-form-item>
+				</el-col>				
+		   </el-row>
+		</el-form>
+	</el-card>
+
+	<el-card class="box-card">
+        <div slot="header" class="clearfix">查询不在线设备</div>
+		<el-form label-width="80px">
+		<el-row :gutter="10" v-for="offline in offlineList" :key="offline.id">
+			    <el-col :span="6">
+					<el-form-item label="名称:">
+					 {{offline.name}}
+					</el-form-item>	
+				</el-col>
+				<el-col :span="6">
+					<el-form-item label="在线状态:">
+						{{offline.onlineStatus=='0'?"下线":"上线"}}
+					</el-form-item>
+			    </el-col>
+				<el-col :span="6">
+					<el-form-item label="掉线状态:">
+						{{offline.status=='0'?"掉线":"上线"}}
+					</el-form-item>
+				</el-col>
+				<el-col :span="6">
+					<el-form-item label="IP:">
+						{{offline.ip}}
+					</el-form-item>
+				</el-col>								
+		   </el-row>
+		</el-form>
+	</el-card>
+
+	<el-card class="box-card">
+        <div slot="header" class="clearfix">查询自定义订单</div>		
+		<el-form label-width="80px">
+		<el-row :gutter="10"  v-for="task in orderTaskList" :key="task.id">
+			    <el-col :span="4">
+					<el-form-item label="订单名称">
+					 {{ task.orderName}}
+					</el-form-item>	
+				</el-col>
+				<el-col :span="4">
+					<el-form-item label="产品" label-width="100px">
+						{{task.bomDesc}}
+					</el-form-item>
+			    </el-col>
+				<el-col :span="5">
+					<el-form-item label="开始时间" label-width="100px">
+						{{task.startTime}}
+					</el-form-item>
+			    </el-col>
+				<el-col :span="5">
+					<el-form-item label="结束时间" label-width="100px">
+						{{task.endTime}}
+					</el-form-item>
+			    </el-col>								
+		   </el-row>
+		</el-form>	  
+	</el-card>
+
+	<el-card class="box-card">
+        <div slot="header" class="clearfix">查询线边库调度任务</div>		
+		<el-form label-width="80px">
+		<el-row :gutter="10"  v-for="task in xbkDyTaskList" :key="task.id">
+			    <el-col :span="4">
+					<el-form-item label="订单名称">
+					 {{ task.orderName}}
+					</el-form-item>	
+				</el-col>
+				<el-col :span="4">
+					<el-form-item label="任务ID">
+					 {{ task.id}}
+					</el-form-item>	
+				</el-col>
+				<el-col :span="4">
+					<el-form-item label="产品" label-width="100px">
+						{{task.bomDesc}}
+					</el-form-item>
+			    </el-col>
+				<el-col :span="5">
+					<el-form-item label="开始时间" label-width="100px">
+						{{task.startTime}}
+					</el-form-item>
+			    </el-col>
+				<el-col :span="6">
+					<el-form-item label="目标设备" label-width="100px">
+						{{task.resourceDesc}}
+					</el-form-item>
+			    </el-col>								
+		   </el-row>
+		</el-form>	  
+	</el-card>
+
+    <el-card class="box-card">
+        <div slot="header" class="clearfix">查询暂存位调度任务</div>		
+		<el-form label-width="80px">
+		<el-row :gutter="10"  v-for="task in zcwDyTaskList" :key="task.id">
+			    <el-col :span="4">
+					<el-form-item label="订单名称">
+					 {{ task.orderName}}
+					</el-form-item>	
+				</el-col>
+				<el-col :span="4">
+					<el-form-item label="产品" label-width="100px">
+						{{task.bomDesc}}
+					</el-form-item>
+			    </el-col>
+				<el-col :span="5">
+					<el-form-item label="开始时间" label-width="100px">
+						{{task.startTime}}
+					</el-form-item>
+			    </el-col>
+				<el-col :span="6">
+					<el-form-item label="目标设备" label-width="100px">
+						{{task.resourceDesc}}
+					</el-form-item>
+			    </el-col>								
+		   </el-row>
+		</el-form>	  
+	</el-card>
+
+	<el-card class="box-card">
+        <div slot="header" class="clearfix">查询零件流程</div>
+		<el-form ref="form3" :model="form3" label-width="120px">		
+		<el-row :gutter="12" >
+			<el-col :span="8">
+				<el-form-item label="零件批次号:" prop="completeBatchNo">
+                	<el-input v-model="form3.completeBatchNo" placeholder="零件批次号"></el-input>
+				</el-form-item>
+			</el-col>	
+			<el-col :span="8">
+				<el-form-item>
+    				<el-button type="primary" @click="getWorkflowList" >发送</el-button>    		
+  				</el-form-item>	
+			</el-col> 
+		</el-row>			 
+		
+		<el-row :gutter="10"  v-if="workflowList.task">	
+			<el-col :span="4">
+				<el-form-item label="零件名称" label-width="100px">
+					 {{workflowList.task? workflowList.task.bomDesc:'任务已结束'}}
+				</el-form-item>	
+		   </el-col>			
+		   <el-col :span="5">
+				<el-form-item label="任务名称" label-width="100px">
+					 {{workflowList.task? workflowList.task.procedureName:'任务已结束'}}
+				</el-form-item>	
+		 </el-col>
+		 <el-col :span="5">
+			  <el-form-item label="任务开始" label-width="100px">
+					 {{workflowList.task? workflowList.task.startTime:'任务已结束'}}
+			  </el-form-item>	
+		  </el-col>
+		  <el-col :span="7">
+			  <el-form-item label="节点名称" label-width="100px">
+					 {{workflowList.taskNode? workflowList.taskNode.nodeName:'节点已结束'}}
+			  </el-form-item>	
+		  </el-col>
+		  <el-col :span="5">
+			  <el-form-item label="节点开始" label-width="100px">
+					 {{workflowList.taskNode? workflowList.taskNode.startTime:'节点已结束'}}
+			  </el-form-item>	
+		  </el-col>		
+		  <el-col :span="6">
+			  <el-form-item>
+    				<el-button type="primary" @click="getWorkflowDetail" >查看详情</el-button>    		
+  			  </el-form-item>	
+		  </el-col>	
+		</el-row>
+
+      </el-form>		
+	</el-card>	
+
+	<el-card class="box-card">
+        <div slot="header" class="clearfix">查询缓存关键字</div>		
+		<el-form label-width="80px">
+		<el-row :gutter="10">
+			    <el-col :span="6">
+					<el-form-item label="是否排产">
+					 {{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? "禁用":"启用"}}
+					</el-form-item>
+			    </el-col>								
+		   </el-row>
+		</el-form>	  
+	</el-card>
+
+	<tenant-view
+      ref="view"
+      :dialog-visible="tenantViewVisible"
+      @close="viewClose"
+    />
+	
+  </div>
+</template>
+
+<script>	
+	// 【锁定记录、出入库记录】-API
+	import toolQueryApi from "@/api/systemMgr/toolQuery"
+	import elDragDialog from '@/directive/el-drag-dialog'
+	// 【查看】组件
+	import TenantView from "./components/View"	
+	import { convertEnum, initDicts, initQueryParams } from '@/utils/commons'
+	export default {
+	  name: "ToolQuery",
+	  directives: {elDragDialog},
+	  components: {TenantView},
+	  props: {
+	  },
+	  data () {
+	    return {
+		  form:{			
+			zoneCode: "KT"
+		  },
+		  form2:{
+            timeSpan: "2",
+		  },
+		  form3:{
+            completeBatchNo: "",
+		  },		  
+		  workflowList:[],
+		  zoneRateList:[],
+		  orderTaskList: [],	     		  
+		  bizStatuList: [],
+		  agvLockList: [],
+		  cacheCallbackList: [],
+		  xbkDyTaskList:[],
+		  zcwDyTaskList:[],
+		  storgeLockList: [],
+		  cacheKeyList: [],
+		  offlineList:[],
+		  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,
+	      queryParams: initQueryParams({}),
+	      selection: [],
+	      loading: false
+		}  	      
+	  },
+	  // 实例已经在内存中创建好,此时data和methods已将ok,如果要操作data中的数据或是调用methods中的方法,最早只能在created中操作
+	  created() {
+	  	// 调用常量-审核状态
+	  	this.audioStatus = this.$constWKS.OPTTYPE
+	  	// 加载【字典】
+	  	initDicts(['NATION'], this.dicts);
+	  	// 加载列表数据
+	  	this.fetch()
+		},
+	  computed: {
+	    currentUser () {
+	      return this.$store.state.account.user
+	    },
+	    nationList() {
+          return convertEnum(this.dicts.NATION)
+        }
+	  },
+	  mounted () {
+	   
+	  },
+	  methods: {  
+		getWorkflowList(){
+		  let completeBatchNo = this.form3.completeBatchNo? {"completeBatchNo" : this.form3.completeBatchNo.toString()}: null;
+		  if(completeBatchNo==null){
+			this.$message({
+              	message: '输入数据不能为空',
+              	type: 'warning'
+            });
+			return false	
+		  }		
+          toolQueryApi.getWorkflowList(completeBatchNo).then(response=>{
+						const res = response.data
+						if(res.isSuccess){
+							this.workflowList = res.data
+							console.log(this.workflowList)
+						}else{
+							this.$message({
+              					message: res.msg,
+              					type: 'warning'
+            				})
+						}
+				}).finally(()=>{
+					return true		
+			})
+		},
+		getWorkflowDetail(){
+			this.$refs.view.setTenant({"completeBatchNo":this.form3.completeBatchNo.toString()})
+        	this.tenantViewVisible = true	
+		},
+		viewClose() {
+        	this.tenantViewVisible = false
+        },
+		getZoneRateList(){
+			let query = this.form.zoneCode ? {"zoneCode" : this.form.zoneCode.toString()} : {}	
+			toolQueryApi.getZoneRateList(query).then(response=>{
+						const res = response.data
+						if(res.isSuccess){
+							this.zoneRateList = res.data.data
+							console.log(this.zoneRateList)
+						}else{
+							this.$message({
+              					message: res.msg,
+              					type: 'warning'
+            				})
+						}
+				}).finally(()=>{
+					return true		
+			})
+		},   
+	    getBizStatusList () {
+			let query = this.form2.timeSpan ? {"timeSpan" : this.form2.timeSpan.toString()} : {}		
+			toolQueryApi.getBizStatusList(query).then(response=>{
+						const res = response.data
+						if(res.isSuccess){
+							this.bizStatuList = res.data.data
+							//console.log(this.bizStatuList)
+						}else{
+							this.$message({
+              					message: res.msg,
+              					type: 'warning'
+            				})
+						}
+				}).finally(()=>{
+					return true		
+			})
+	    },
+	    getAgvLockList () {
+			toolQueryApi.getAgvLockList({}).then(response=>{
+						const res = response.data
+						if(res.isSuccess){
+							this.agvLockList = res.data.data
+							//console.log(this.agvLockList)
+						}else{
+							this.$message({
+              					message: res.msg,
+              					type: 'warning'
+            				})
+						}
+				}).finally(()=>{
+					return true		
+			})	      
+	    },
+	    getCacheCallbackList () {
+			toolQueryApi.getCacheCallbackList({}).then(response=>{
+						const res = response.data
+						if(res.isSuccess){
+							this.cacheCallbackList = res.data.data
+							//console.log(this.cacheCallbackList)
+						}else{
+							this.$message({
+              					message: res.msg,
+              					type: 'warning'
+            				})
+						}
+				}).finally(()=>{
+					return true		
+			})
+	    },
+	    getStorgeLockList () {
+	        toolQueryApi.getStorgeLockList({}).then(response=>{
+						const res = response.data
+						if(res.isSuccess){
+							this.storgeLockList = res.data.data
+						}else{
+							this.$message({
+              					message: res.msg,
+              					type: 'warning'
+            				})
+						}
+				}).finally(()=>{
+					return true		
+			})
+	    },
+	    getCacheKeyList () {
+			toolQueryApi.getCacheKeyList({}).then(response=>{
+						const res = response.data
+						if(res.isSuccess){
+							this.cacheKeyList = res.data
+						}else{
+							this.$message({
+              					message: res.msg,
+              					type: 'warning'
+            				})
+						}
+				}).finally(()=>{
+					return true		
+			})	     
+	    },
+		getOfflineList () {
+			toolQueryApi.getOfflineList({}).then(response=>{
+						const res = response.data
+						if(res.isSuccess){
+							this.offlineList = res.data.data
+						}else{
+							this.$message({
+              					message: res.msg,
+              					type: 'warning'
+            				})
+						}
+				}).finally(()=>{
+					return true		
+			})	     
+	    },		
+		getOrderTaskList(){
+			toolQueryApi.getOrderTaskList({}).then(response=>{
+						const res = response.data
+						console.log(res)
+						if(res.isSuccess){
+							this.orderTaskList = res.data.data.records
+						}else{
+							this.$message({
+              					message: res.msg,
+              					type: 'warning'
+            				})
+						}
+				}).finally(()=>{
+					return true		
+			})
+		},
+		getXbkDyTaskList(){
+            toolQueryApi.getXbkDyTaskList({}).then(response=>{
+						const res = response.data						
+						if(res.isSuccess){
+							this.xbkDyTaskList = res.data.data
+						}else{
+							this.$message({
+              					message: res.msg,
+              					type: 'warning'
+            				})
+						}
+				}).finally(()=>{
+					return true		
+			})
+		},
+		getZcwDyTaskList(){
+            toolQueryApi.getZcwDyTaskList({}).then(response=>{
+						const res = response.data						
+						if(res.isSuccess){
+							this.zcwDyTaskList = res.data.data
+						}else{
+							this.$message({
+              					message: res.msg,
+              					type: 'warning'
+            				})
+						}
+				}).finally(()=>{
+					return true		
+			})
+		},
+	    fetch () {
+			this.getZoneRateList()
+	      	this.getBizStatusList()
+			this.getAgvLockList()
+			this.getCacheCallbackList()
+			this.getStorgeLockList()
+			this.getCacheKeyList()
+			this.getOfflineList()
+			this.getOrderTaskList()
+			this.getXbkDyTaskList()
+			this.getZcwDyTaskList()
+	    }
+	  }
+	}
+</script>
+<style lang="scss" scoped>
+   .space  .box-card  {
+     margin: 10px 0;
+   }
+</style>

+ 176 - 0
imcs-ui/src/views/zuihou/dispatchMgr/toolQuery/components/View.vue

@@ -0,0 +1,176 @@
+<template>
+  <el-dialog
+    :title="$t(&quot;common.view&quot;)"
+    :width="width"
+    :append-to-body="true"
+    :visible.sync="isVisible"
+    class="tenant-view"
+  >
+    <el-row :gutter="10">
+      <el-col :xs="24" :sm="3">
+        <div class="view-item">  
+          <span>NO</span>
+        </div>     
+      </el-col>  
+      <el-col :xs="24" :sm="5">
+        <div class="view-item">  
+          <span>名称</span>
+        </div>     
+      </el-col> 
+      <el-col :xs="24" :sm="3">
+        <div class="view-item">  
+          <span>编号</span>
+        </div>     
+      </el-col> 
+      <el-col :xs="24" :sm="4">
+        <div class="view-item">
+          <span>设备</span>  
+        </div>     
+      </el-col> 
+      <el-col :xs="24" :sm="5">
+        <div class="view-item">  
+          <span>开始时间</span>
+        </div>     
+      </el-col>
+      <el-col :xs="24" :sm="4">
+        <div class="view-item">  
+          <span>目标设备</span>
+        </div>     
+      </el-col>  
+    </el-row>
+    <el-row :gutter="10" v-for="taskNode in workflowList " :key="taskNode.id" >
+      <el-col :xs="24" :sm="3">
+        <div class="view-item">          
+          <span v-if="taskNode.exe_status == '2'" style="color: #f50" >{{ taskNode.id }}</span>
+          <span v-else >{{ taskNode.id }}</span>           
+        </div>
+      </el-col>
+      <el-col :xs="24" :sm="5">
+        <div class="view-item">         
+          <span>{{ taskNode.node_name }}</span>
+        </div>
+      </el-col>
+      <el-col :xs="24" :sm="3">
+        <div class="view-item">          
+          <span>{{ taskNode.procedure_no }}</span>          
+        </div>
+      </el-col>
+      <el-col :xs="24" :sm="4">
+        <div class="view-item">          
+          <span>{{ taskNode.ResourceName }}</span>         
+        </div>
+      </el-col>
+      <el-col :xs="24" :sm="5">
+        <div class="view-item">          
+          <span>{{ taskNode.start_time }}</span>          
+        </div>
+      </el-col>
+      <el-col :xs="24" :sm="4">
+        <div class="view-item">          
+          <span>{{ taskNode.targetResourceName }}</span>         
+        </div>
+      </el-col>      
+    </el-row>    
+  </el-dialog>
+</template>
+<script>
+import toolQueryApi from "@/api/systemMgr/toolQuery"
+export default {
+  name: 'TenantView',
+  filters: {
+    passwordErrorLockTimeFilter (time) {
+      if (time === '0') {
+        return '当天23点59分'
+      }
+      return time
+    }
+  },
+  props: {
+    dialogVisible: {
+      type: Boolean,
+      default: false
+    }
+  },
+  data () {
+    return {
+      screenWidth: 0,
+      width: this.initWidth(),
+      workflowList:[],
+      tenant: {}
+    }
+  },
+  computed: {
+    isVisible: {
+      get () {
+        return this.dialogVisible
+      },
+      set () {
+        this.close()
+      }
+    }
+  },
+  mounted () {
+    window.onresize = () => {
+      return (() => {
+        this.width = this.initWidth()
+      })()
+    }
+  },
+  methods: {
+    initWidth () {
+      this.screenWidth = document.body.clientWidth      
+      if (this.screenWidth < 550) {
+        return '95%'
+      } else if (this.screenWidth < 990) {
+        return '580px'
+      } else if (this.screenWidth < 1400) {
+        return '600px'
+      } else {
+        return '1050px'
+      }
+    },
+    setTenant (val) {
+      this.tenant = { ...val }
+      toolQueryApi.getWorkflowDetail({"completeBatchNo":this.tenant.completeBatchNo}).then(response=>{
+						const res = response.data
+						if(res.isSuccess){
+							this.workflowList = res.data.data
+							console.log(this.workflowList)
+						}else{
+							this.$message({
+              					message: res.msg,
+              					type: 'warning'
+            	})
+						}
+				}).finally(()=>{
+					return true		
+			})
+    },
+    close () {
+      this.$emit('close')
+    }
+  }
+}
+</script>
+<style lang="scss" scoped>
+.tenant-view {
+  .img-wrapper {
+    text-align: center;
+    margin-top: -1.5rem;
+    margin-bottom: 10px;
+    img {
+      width: 4rem;
+      border-radius: 50%;
+    }
+  }
+  .view-item {
+    margin: 7px;
+    i {
+      font-size: 0.97rem;
+    }
+    span {
+      margin-left: 5px;
+    }
+  }
+}
+</style>

+ 156 - 2
imcs-ui/src/views/zuihou/dispatchMgr/tools/Index.vue

@@ -91,6 +91,7 @@
 	  </el-form>
 	</el-card>
 
+	<!---
 	<el-card class="box-card">
         <div slot="header" class="clearfix">创建AGV任务</div>
 		<el-form ref="form4" :model="form4" :rules="rules4" label-width="80px">
@@ -114,7 +115,7 @@
     			<el-button type="primary" @click="addHikTask">创建</el-button>    		
   			</el-form-item>
 	  </el-form>
-	</el-card>
+	</el-card> -->
 
 	<el-card class="box-card">
         <div slot="header" class="clearfix">重发指令</div>
@@ -158,6 +159,7 @@
 	  </el-form>
 	</el-card>
 
+	<!--
 	<el-card class="box-card">
         <div slot="header" class="clearfix">动态移动零件(产线内)</div>
 		<el-form ref="form7" :model="form7" :rules="rules5" label-width="80px">
@@ -203,6 +205,35 @@
     			<el-button type="primary" @click="manualXbk">执行</el-button>    		
   			</el-form-item>
 	  </el-form>
+	</el-card> -->
+	<el-card class="box-card">
+        <div slot="header" class="clearfix">添加动态消息</div>
+		<el-form ref="form12" :model="form12" :rules="rules9" label-width="80px">
+			<el-row :gutter="12" >
+				<el-col :xs="6" :sm="8">
+					<el-form-item label="节点ID:" prop="taskNodeId">
+                    	<el-input  v-model="form12.taskNodeId" placeholder="节点ID"></el-input>
+					</el-form-item>
+				</el-col>
+				<el-col :xs="6" :sm="6">
+					<el-form-item label="类型:" prop="msgType">
+                    	<el-select v-model="form12.msgType" placeholder="选择消息类型">
+							 <!--<el-option v-for="deviceType in typeList" :label="deviceType.name" :value="deviceType.value" :key="deviceType.value" ></el-option>	-->	
+			  			     <el-option label="普通消息" value="1"></el-option>
+							 <el-option label="线边库消息" value="2"></el-option>
+						</el-select>
+					</el-form-item>
+				</el-col>
+				<el-col :xs="6" :sm="5">
+					<el-form-item label="次序号:" prop="count">
+                    	<el-input-number v-model="form12.count" :min="0" :max="form12.msgType=='1'?3:5"></el-input-number>
+					</el-form-item>
+				</el-col>											
+			</el-row>
+			<el-form-item>
+    			<el-button type="primary" @click="addNodeMsg" >发送</el-button>    		
+  			</el-form-item>
+	  </el-form>
 	</el-card>
 
 	<el-card class="box-card">
@@ -243,6 +274,45 @@
   			</el-form-item>
 	  </el-form>
 	</el-card>
+
+	<el-card class="box-card">
+        <div slot="header" class="clearfix">启动申请上料程序</div>
+		<el-form ref="form11" :model="form11" :rules="rules8" label-width="80px">
+			<el-row :gutter="12" >
+				<el-col :xs="6" :sm="5">
+					<el-form-item label="设备IP:" prop="ip">
+						<el-tooltip content="例如:192.168.11.240" placement="top">
+                    		<el-input v-model="form11.ip" placeholder="设备IP"></el-input>
+						</el-tooltip>
+					</el-form-item>
+				</el-col>
+				<el-col :xs="6" :sm="5">
+					<el-form-item label="文件名:" prop="fileName">
+						<el-tooltip content="例如:SMG80-JS2020810-100T-02.H" placement="top">
+                    		<el-input v-model="form11.fileName" placeholder="文件名"></el-input>
+						</el-tooltip>
+					</el-form-item>
+				</el-col>
+				<el-col :xs="6" :sm="5">
+					<el-form-item label="目录名:" prop="remotePath">
+						<el-tooltip content="例如:JS20.20.810-ZJZJXZJ" placement="top">
+                    		<el-input v-model="form11.remotePath" placeholder="目录名"></el-input>
+						</el-tooltip>
+					</el-form-item>
+				</el-col>
+				<el-col :xs="6" :sm="5">
+					<el-form-item label="端口号:" prop="port">
+						<el-tooltip content="例如:1900" placement="top">
+                    		<el-input-number v-model="form11.port" :min="1" :max="2000"></el-input-number>
+						</el-tooltip>
+					</el-form-item>
+				</el-col>										
+			</el-row>
+			<el-form-item>
+    			<el-button type="primary" @click="applyFeeding" >发送</el-button>    		
+  			</el-form-item>
+	  </el-form>
+	</el-card>
   </div>
 </template>
 
@@ -304,6 +374,17 @@
 		  form10:{
 			deviceType: "0"
 		  },
+		  form11:{
+			ip: "",
+			port:1,
+			fileName:"",
+			remotePath:"",
+		  },
+		  form12:{
+			taskNodeId: "",
+			count:0,
+			msgType:"1"
+		  },
 		  lineList: [],
 		  typeList: [{"name":"全部","value":"0"},{"name":"FANUC","value":"1"},{"name":"HEIDENHAIN","value":"2"},{"name":"DMG","value":"3"},{"name":"HELLER","value":"4"}],
 	      tenantViewVisible: false,
@@ -366,7 +447,32 @@
 			deviceType: [
 				{ required: true, message: this.$t("rules.require"), trigger: 'blur' }
 			]
-		  }
+		  },
+		  rules8:{
+            ip: [
+        		{ required: true, message: this.$t("rules.require"), trigger: 'blur' }
+        	],
+			port: [
+        		{ required: true, message: this.$t("rules.require"), trigger: 'blur' }
+        	],
+			fileName: [
+        		{ required: true, message: this.$t("rules.require"), trigger: 'blur' }
+        	],
+			remotePath: [
+        		{ required: true, message: this.$t("rules.require"), trigger: 'blur' }
+        	],
+		  },
+		  rules9: {
+			taskNodeId: [
+        		{ required: true, message: this.$t("rules.require"), trigger: 'blur' }
+        	],
+			msgType: [
+				{ required: true, message: this.$t("rules.require"), trigger: 'blur' }
+			],
+			count: [
+        		{ required: true, message: this.$t("rules.require"), trigger: 'blur' }
+        	],
+		  },
 		}
 	  },
 	  // 实例已经在内存中创建好,此时data和methods已将ok,如果要操作data中的数据或是调用methods中的方法,最早只能在created中操作
@@ -586,6 +692,30 @@
 				}				
 			}); 
 		},
+		addNodeMsg(){
+			this.$refs.form12.validate((valid) => {
+				if(valid){
+					toolbarApi.addNodeMsg(this.form12).then(response=>{
+						const res = response.data
+						if(res.isSuccess){
+							this.$message({
+              					message: this.$t('tips.updateSuccess'),
+              					type: 'success'
+            				})
+						}else{
+							this.$message({
+              					message: res.msg,
+              					type: 'warning'
+            				})
+						}
+					}).finally(()=>{
+					   return true		
+					})					
+				}else{
+					return false
+				}				
+			});
+		},
 		refreshXbk(){
 			this.$refs.form10.validate((valid) => {
 				if(valid){
@@ -610,6 +740,30 @@
 				}				
 			}); 
 		},
+		applyFeeding(){
+			this.$refs.form11.validate((valid) => {
+				if(valid){
+					toolbarApi.applyFeeding(this.form11).then(response=>{
+						const res = response.data
+						if(res.isSuccess){
+							this.$message({
+              					message: this.$t('tips.updateSuccess'),
+              					type: 'success'
+            				})
+						}else{
+							this.$message({
+              					message: res.msg,
+              					type: 'warning'
+            				})
+						}
+					}).finally(()=>{
+					   return true		
+					})					
+				}else{
+					return false
+				}
+			});
+		},
 		manualTask(){			
 			this.$refs.form7.validate((valid) => {
 				if(valid){

+ 49 - 37
imcs-ui/src/views/zuihou/largeScreen/twoDatasModel/Index.vue

@@ -69,9 +69,9 @@
 					  <el-col :span="12">
 					  	<div id="percenter2" class="percenter">
 					  		<el-progress type="circle" :percentage="percentages[1]" color="#5cb87a" :stroke-width="10" :width="150"></el-progress>
-					  		<span class="pcText">SMG80 五轴机床 105</span>
+					  		<span class="pcText">P1000 五轴机床 105</span>
 					  	</div>
-              <div class="timeTxt" style="font-size: 15px;float: left"><span class="login-cycle" style="background-color: #13ce66;"></span><span style="margin-left: 15px">SMG80 五轴机床 105</span></div>
+              <div class="timeTxt" style="font-size: 15px;float: left"><span class="login-cycle" style="background-color: #13ce66;"></span><span style="margin-left: 15px">P1000 五轴机床 105</span></div>
 					  </el-col>
 <!--					  <el-col :span="8">
 					  	<div id="percenter3" class="percenter">
@@ -433,7 +433,17 @@
 	    return {
 		    dicts: {
 				RUN_MODE: {},  //运行模式
-        monthList: [],
+			},
+			runModes:['半自动模式','自动模式','手动模式'],
+			incomplete: 0,
+	    	gaugeData: {value: 0.67, name:"效率"},
+	    	gaudeWidth: '100%',
+	    	gaudeHeight: '190px',
+	    	percentages: [randomFloor(10,23), randomFloor(20,100), randomFloor(30,100)],
+	    	allDatas: [],
+	    	resourceId: '',
+			timeSpend: 0,
+			monthList: [],
         producePlanList: [],
         delayPlanList: [],
         orderConductCountList: [],
@@ -441,25 +451,15 @@
         myChartTwo: {},
         workHourList: [],
         topTongjiData: {
-				  producePlan: 0,
+		  producePlan: 0,
           delayPlan: 0,
           producePart: 0,
           badPart: 0
-        }
-			},
-			runModes:['自动模式','自动模式','自动模式'],
-			incomplete: 0,
-	    	gaugeData: {value: 0.67, name:"效率"},
-	    	gaudeWidth: '100%',
-	    	gaudeHeight: '190px',
-	    	percentages: [randomFloor(10,23), randomFloor(20,100), randomFloor(30,100)],
-	    	allDatas: [],
-	    	resourceId: '',
-			timeSpend: 0,
+        },
 			timeSpanList: {
 				timeSpanStatistics: {},
 				validTimeSpanStatistics: {},
-        resourceRate: {}
+        		resourceRate: {}
 			}, //[订单时长]数据
 	    	orderDatas: [], // [插单订单]数据
 	    	runDatas: [],  // [运行中订单]数据
@@ -468,6 +468,7 @@
 	  		mashingOneList: [], // [机器人]产线一数据
 			mashingTwoList: [],  // [机器人]产线二数据
 			mashingThreeList: [],
+			materialList:[], //原材料数据
 			weibaoList: [], //维保数据
 	    	tabDownData: {    // 下部分-数据
 	    		list: []
@@ -719,7 +720,8 @@
           this.orderInfo();
 
           //原材料预警
-          this.alarm();
+		  let objs = [{"name":"零件1","value":0.7},{"name":"零件2","value":0.3},{"name":"零件3","value":0.1}]
+          this.alarm(objs);
         }
       })
 
@@ -853,7 +855,7 @@
           elm6.dispose()
         }*/
 	  		var option1 = {
-			    value: this.timeSpanList.resourceRate["JC_104"] ? this.timeSpanList.resourceRate["JC_104"] : 0,    //百分比,必填
+			    value: this.timeSpanList.resourceRate["JC_104"] ? this.timeSpanList.resourceRate["JC_104"] : randomFloor(66,77),    //百分比,必填
 			    name:'SMG80 五轴机床 104',		//必填
 			    name2:'自动化单元',
 			    title:'',
@@ -865,8 +867,8 @@
 				percentPie(option1);
 
 				var option2 = {
-          value: this.timeSpanList.resourceRate["JC_105"] ? this.timeSpanList.resourceRate["JC_105"] : randomFloor(66,77),	  //百分比,必填
-			    name:'SMG80 五轴机床 105',				//必填
+          value: this.timeSpanList.resourceRate["JC_105"] ? this.timeSpanList.resourceRate["JC_105"] : 0,	  //百分比,必填
+			    name:'P1000 五轴机床 105',				//必填
 			    name2:'自动化单元',			//必填
 			    title:'',
 			    backgroundColor: null,
@@ -981,6 +983,16 @@
 							this.initPercentPie([0,0,0,parseInt(100 * this.mashingOneList.runData.length / this.mashingOneList.data.length),parseInt(100 * this.mashingTwoList.runData.length / this.mashingTwoList.data.length), parseInt(100 * this.mashingThreeList.runData.length / this.mashingThreeList.data.length)
 				    		])
 						  }
+                         // 计算原材料使用
+						 this.materialList = data.data.materialMap.materialData
+						 let objs = this.materialList.map(item=>{
+							let percent = (parseInt(item.totalNum) - parseInt(item.usedNum))/parseInt(item.totalNum)
+							let obj = {"name": item.equipment_name,"value": parseFloat(percent).toFixed(2)}
+							return obj;
+						 })
+						 
+						 this.alarm(objs)
+
 
 						 let runLen = this.mashingOneList.runData.length + this.mashingTwoList.runData.length + this.mashingThreeList.runData.length;
 						 //this.mashingTwoList.data = this.mashingTwoList.data.concat(this.mashingThreeList.data).concat(this.mashingOneList.data)
@@ -991,7 +1003,7 @@
 						 this.$refs.gauge.initChart(this.gaugeData)
 
 						 let datas = data.data.warnMap.warnData.records
-            console.log("datas:"+JSON.stringify(datas))
+            			 console.log("datas:"+JSON.stringify(datas))
 						 let that = this
 						 this.yujingList = datas.map((data)=>{
 						    let msg = data.feedback ? data.feedback : " 响应超时 ";
@@ -1282,7 +1294,7 @@
       },
 
       //水球图
-      alarm(){
+      alarm(objs){
         this.myChartThree = echarts.init(document.getElementById('containerAlarm'));
 
         var option = {
@@ -1292,7 +1304,7 @@
               top: '95%',
               left: '15%',
               style: {
-                text: '零件1',
+                text: objs[0]['name'],
                 textAlign: 'center',
                 fontSize: 10,
                 fill: '#FFFAF0', // 调整颜色
@@ -1303,7 +1315,7 @@
               left: '45%',
               top: '95%', // 调整文字相对于水球的位置
               style: {
-                text: '零件2',
+                text: objs[1]['name'],
                 textAlign: 'center',
                 fontSize: 10,
                 fill: '#FFFAF0', // 调整颜色
@@ -1314,7 +1326,7 @@
               left: '75%',
               top: '95%', // 调整文字相对于水球的位置
               style: {
-                text: '零件3',
+                text: objs[2]['name'],
                 textAlign: 'center',
                 fontSize: 10,
                 fill: '#FFFAF0', // 调整颜色
@@ -1328,19 +1340,19 @@
               center: ['20%', '50%'],
               data: [
                 {
-                  value: 0.7,
+                  value: objs[0]['value'],
                   itemStyle: {
                     color: '#00FF66' //第二个波浪将为红色
                   }
                 },
                 {
-                  value: 0.7,
+                  value: objs[0]['value'],
                   itemStyle: {
                     color: '#00FF66' //第二个波浪将为红色
                   }
                 },
                 {
-                  value: 0.7,
+                  value: objs[0]['value'],
                   itemStyle: {
                     color: '#00FF66' //第二个波浪将为红色
                   }
@@ -1348,7 +1360,7 @@
               ],
               label: {
                 normal: {
-                  formatter: (0.7 * 100).toFixed(2) + '%',
+                  formatter: (objs[0]['value'] * 100).toFixed(2) + '%',
                   textStyle: {
                     fontSize: 12,
 
@@ -1362,19 +1374,19 @@
               center: ['50%', '50%'],
               data: [
                 {
-                  value: 0.3,
+                  value: objs[1]['value'],
                   itemStyle: {
                     color: '#FFA500' //第二个波浪将为红色
                   }
                 },
                 {
-                  value: 0.3,
+                  value: objs[1]['value'],
                   itemStyle: {
                     color: '#FFA500' //第二个波浪将为红色
                   }
                 },
                 {
-                  value: 0.3,
+                  value: objs[1]['value'],
                   itemStyle: {
                     color: '#FFA500' //第二个波浪将为红色
                   }
@@ -1382,7 +1394,7 @@
               ],
               label: {
                 normal: {
-                  formatter: (0.30 * 100).toFixed(2) + '%',
+                  formatter: (objs[1]['value'] * 100).toFixed(2) + '%',
                   textStyle: {
                     fontSize: 12
                   }
@@ -1395,19 +1407,19 @@
               center: ['80%', '50%'],
               data: [
                 {
-                  value: 0.1,
+                  value: objs[2]['value'],
                   itemStyle: {
                     color: 'red' //第二个波浪将为红色
                   }
                 },
                 {
-                  value: 0.1,
+                  value: objs[2]['value'],
                   itemStyle: {
                     color: 'red' //第二个波浪将为红色
                   }
                 },
                 {
-                  value: 0.1,
+                  value: objs[2]['value'],
                   itemStyle: {
                     color: 'red' //第二个波浪将为红色
                   }
@@ -1415,7 +1427,7 @@
               ],
               label: {
                 normal: {
-                  formatter: (0.10 * 100).toFixed(2) + '%',
+                  formatter: (objs[2]['value'] * 100).toFixed(2) + '%',
                   textStyle: {
                     fontSize: 12
                   }

+ 12 - 0
imcs-ui/src/views/zuihou/lineSideLibrary/lineSideEmulate/components/Edit.vue

@@ -51,6 +51,18 @@
 	          </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: '无'}}
+            </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
 	      v-show="tableData.total > 0"

+ 3 - 7
imcs-ui/src/views/zuihou/prepareProductMgr/technologyVersion/components/TechnologyEdit.vue

@@ -68,18 +68,14 @@
 					<!-- <robotarm-form ref="robotarm"></robotarm-form> -->
 
 					<!-- 三坐标质检 -->
-<!--					<div class="szb">
-						&lt;!&ndash; 按钮功能 &ndash;&gt;
-				    	<div class="itemDiv">
-				    		&lt;!&ndash; 三坐标质检  &ndash;&gt;
+                  <div class="szb">						
+				    	<div class="itemDiv">				    		
 							<span class="titleSmall">{{$t("prepare.common.szbName")}}</span>
 							<el-radio-group :disabled="type == 'view' ? true : false" v-model="tenant.threeDimensionalConf" style="margin-right: 15px;">
 							    <el-radio label="0">{{$t("prepare.common.idNeed.unneed")}}</el-radio>
 							    <el-radio label="1">{{$t("prepare.common.idNeed.need")}}</el-radio>
 							</el-radio-group>
 						</div>
-
-						&lt;!&ndash; 输入框(需要) &ndash;&gt;
 						<div v-if="tenant.threeDimensionalConf == '1'" class="szbInput">
 							<span>
 								<span>{{ $t("prepare.form.threeDimensionalPrograme") }}:</span>
@@ -88,7 +84,7 @@
 						</div>
 					</div>
 
-					&lt;!&ndash; 三坐标偏置点检测 &ndash;&gt;
+					<!-- &lt;!&ndash; 三坐标偏置点检测 &ndash;&gt;
 					<div class="szbpzd">
 						&lt;!&ndash; 按钮功能 &ndash;&gt;
 				    	<div class="itemDiv">