浏览代码

Merge remote-tracking branch 'origin/master' into master

yejian016332 3 年之前
父节点
当前提交
d36447cbda

+ 31 - 0
imcs-ui/src/api/machiningClient/qualityMgr.js

@@ -0,0 +1,31 @@
+/*********************** 【质量中心-查看质检结果】API ********************/
+import axiosApi from '../AxiosApi.js'
+
+const apiList = {
+  page: {
+    method: 'POST',
+    url: `/authority/orderProduct/page`
+  }
+}
+
+export default {
+	getList (data) {
+	    return axiosApi({
+	    	...apiList.getList,
+	    	data
+	    })
+  	},
+  	page (data) {
+	    return axiosApi({
+	      	...apiList.page,
+	      	data
+	    })
+  	},
+  	download (data) {
+	    return axiosApi({
+	      	...apiList.download,
+	      	responseType: "blob",
+	     	data
+	    })
+  	}
+}

二进制
imcs-ui/src/assets/yunMap/clampImg.png


+ 130 - 133
imcs-ui/src/lang/zh/machining.js

@@ -1,133 +1,130 @@
-/***************************【机加工人端】***********************************/
-export default {
-	machining: {
-		// 本模型下的共通
-		common: {
-			uniqueCode: '请先输入入产线编码!',
-			marking: '标注处理',
-			viewTask: '任务详情',
-			viewOrder: '查看补单',
-			viewPlan: '查看计划',
-			custerm: '客户名称',
-			orderNo: '订单编号',
-			jiaohuTime: '交货期',
-			downloadReport: '下载报告',
-			status: '状态',
-			exeStatus:{
-				noStart: '待执行',
-				run: '进行中',
-				finished: '已完成'
-			},
-			testResult: {
-				one: '合格',
-				two: '不合格'
-			},
-			handleWay: {
-				one: '补单',
-				two: '废品发货'
-			},
-			handleStatus: {
-				one: '待处理',
-				two: '已处理'
-			}
-		},
-		// 列表搜索表单名称
-		searchForm: {
-      offset: {
-        workpieceName: '零件名称',
-        orderNo: '订单编号',
-        workpieceId: '零件编号',
-        createTime: '生成日期',
-      },
-		},
-		// 按钮的名称
-	  	buttons: {
-	  		noFinished: '暂不完成',
-	  		finished: '我已完成'
-	  	},
-	  	// 列表的cell名称
-		table: {
-			// 【待完成任务】列表table字段名称
-			schedul: {
-				taskNodeNo: '节点任务编号',
-				prority: '优先级',
-				exeStatus: '节点任务状态',
-				overtimeStatus: '是否超时',
-				bomDesc: '产品名称',
-				procedureNo: '工序号',
-				procedureDesc: '工序名称',
-				resourceDesc: '执行位置',
-				planTime: '计划时间',
-				ratedWorkHours: '额定工时',
-				orderNo: '订单编号',
-				planNo: '计划编号',
-				taskNo: '任务编号'
-			},
-			// 质量中心-不合格品管理
-			unQuality: {
-				no: '单据编号',
-				bomName: '产品名称',
-				uniqueCode: '产品唯一码',
-				testResult: '质检结果',
-				bomNum: '数量',
-				handleUserName: '质检人',
-				handleStatus: '处理状态',
-				handleWay: '处理方式',
-				name9: '补单单号',
-				name10: '所属订单号',
-				name11: '所属计划',
-				name12: '生成单据时间',
-				createUserName: '生成人',
-				handleTime: '处理时间',
-				handleUserName: '处理人'
-			},
-			// 质量中心-质量管理
-			qualityMgr: {
-				no: '订单编号',
-				bomName: '客户简称',
-				uniqueCode: '来源',
-				testResult: '订单状态',
-				bomNum: '产品数量',
-				handleUserName: '生产中',
-				handleStatus: '已完成',
-				handleWay: '不合格产品',
-				name9: '合格产品',
-				name10: '补单次',
-				name12: '下单日期',
-				handleTime: '交货日期',
-			},
-			qualityResult: {
-				no: '单据编号',
-				bomName: '产品名称',
-				productCode: '产品编码',
-				uniqueCode: '产品系统唯一码',
-				testResult: '质检结果',
-				name10: '所属订单号',
-				name11: '所属计划'
-			},
-      // 【偏置点管理】列表table字段名称
-      offset: {
-        no: '编号',
-        orderNo: '订单编号',
-        workpieceName: '零件名称',
-        workpieceId: '零件编号',
-        procedureName: '工序名称',
-        offsetX: 'X',
-        offsetY: 'Y',
-        offsetZ: 'Z',
-        createTime: '生成日期',
-      },
-		},
-		// 表单数据名称
-		form: {
-			handleWay: '处理方式',
-			addOrderId: '补单订单',
-			handleStatus: '处理状态'
-
-		},
-		// 表单验证规则提示信息
-		rules: {
-
-		}
-	}
-}
+/***************************【机加工人端】***********************************/
+export default {
+	machining: {
+		// 本模型下的共通
+		common: {
+			uniqueCode: '请先输入入产线编码!',
+			marking: '标注处理',
+			viewTask: '任务详情',
+			viewOrder: '查看补单',
+			viewPlan: '查看计划',
+			custerm: '客户名称',
+			orderNo: '订单编号',
+			jiaohuTime: '交货期',
+			downloadReport: '下载报告',
+			status: '状态',
+			exeStatus:{
+				noStart: '待执行',
+				run: '进行中',
+				finished: '已完成'
+			},
+			testResult: {
+				one: '合格',
+				two: '不合格'
+			},
+			handleWay: {
+				one: '补单',
+				two: '废品发货'
+			},
+			handleStatus: {
+				one: '待处理',
+				two: '已处理'
+			}
+		},
+		// 列表搜索表单名称
+		searchForm: {
+      offset: {
+        workpieceName: '零件名称',
+        orderNo: '订单编号',
+        workpieceId: '零件编号',
+        createTime: '生成日期',
+      },
+		},
+		// 按钮的名称
+	  	buttons: {
+	  		noFinished: '暂不完成',
+	  		finished: '我已完成'
+	  	},
+	  	// 列表的cell名称
+		table: {
+			// 【待完成任务】列表table字段名称
+			schedul: {
+				taskNodeNo: '节点任务编号',
+				prority: '优先级',
+				exeStatus: '节点任务状态',
+				overtimeStatus: '是否超时',
+				bomDesc: '产品名称',
+				procedureNo: '工序号',
+				procedureDesc: '工序名称',
+				resourceDesc: '执行位置',
+				planTime: '计划时间',
+				ratedWorkHours: '额定工时',
+				orderNo: '订单编号',
+				planNo: '计划编号',
+				taskNo: '任务编号'
+			},
+			// 质量中心-不合格品管理
+			unQuality: {
+				no: '单据编号',
+				bomName: '产品名称',
+				uniqueCode: '产品唯一码',
+				testResult: '质检结果',
+				handleStatus: '处理状态',
+				handleWay: '处理方式',
+				name9: '补单单号',
+				name10: '所属订单号',
+				name11: '所属计划',
+				name12: '不合格生成时间',
+				createUserName: '生成人',
+				handleTime: '处理时间',
+				handleUserName: '处理人'
+			},
+			// 质量中心-质量管理
+			qualityMgr: {
+				orderNo: '订单编号',
+				bomName: '零件名称',
+        produceStatus: '生产状态',
+				testResult: '订单状态',
+				bomNum: '零件数量',
+        completeNum: '已完成数量',
+        unqualifiedCount: '不合格零件',
+        qualifiedCount: '合格零件',
+        addOrderCount: '补单次数',
+        createTime: '下单日期'
+			},
+			qualityResult: {
+				no: '单据编号',
+        orderNo: '订单编号',
+        workpieceName: '零件名称',
+        uniqueCode: '唯一码',
+        procedureName: '检测序',
+        okFlag:'检测结果',
+        measuringReport:'检测报告',
+        createTime:'生成日期'
+			},
+      // 【偏置点管理】列表table字段名称
+      offset: {
+        no: '编号',
+        orderNo: '订单编号',
+        workpieceName: '零件名称',
+        workpieceId: '零件编号',
+        procedureName: '工序名称',
+        offsetX: 'X',
+        offsetY: 'Y',
+        offsetZ: 'Z',
+        createTime: '生成日期',
+      },
+		},
+		// 表单数据名称
+		form: {
+			handleWay: '处理方式',
+			addOrderId: '补单订单',
+			handleStatus: '处理状态'
+
+		},
+		// 表单验证规则提示信息
+		rules: {
+
+		}
+	}
+}

+ 2 - 0
imcs-ui/src/lang/zh/prepare.js

@@ -139,6 +139,8 @@ export default {
 				mapNo: '图号',
 				period: '周期',
 				num: '数量',
+				type: '类型',
+				clampImg: '装夹方式',
 				expiryDate: '有效期',
 				materialNo: '材料编号',
 				joinDate: '入厂日期',

+ 5 - 2
imcs-ui/src/lang/zh/runCenter.js

@@ -347,7 +347,7 @@ export default {
 				last: '个订单在生产'
 			},
 			viewSched: {
-				name: '任务信息',
+				name: '任务工单',
 				procedureDesc: '工序名称',
 				content: '工序内容',
 				status: '任务状态',
@@ -365,7 +365,10 @@ export default {
 				taskResour: '任务资源',
 				orderNo: '订单编号',
 				jindu: '进度',
-				autoLiuc: '自动化执行流程'
+				autoLiuc: '自动化执行流程',
+				procedurePosition: '执行位置',
+				startTime: '开始时间',
+				endTime: '结束时间'
 			}
 		},
 		// 表单验证规则提示信息

+ 76 - 21
imcs-ui/src/views/zuihou/machiningClient/touchScreen/Index.vue

@@ -94,16 +94,16 @@
             v-for="(item, index) in taskData.slice(0, 3)"
             :key="item.id"
             :offset="index == 0 ? 0 : 1"
-            v-show="item.status == 0 ? true : false"
+            v-show="item.status < 2 ? true : false"
             :style="
               index == 0
                 ? 'zoom:1;min-width:300px;'
                 : 'zoom:0.6;min-width:180px;'
             "
           >
-            <el-card :gutter="24" class="box-card" style="margin: 5px">
-              <div class="card_content">
-                <div class="block card_header">
+            <el-card :gutter="24" class="box-card" style="margin: 5px" >
+              <div class="card_content" >
+                <div class="block card_header" @click="view(item)">
                   <el-image
                     style="
                       width: 90px;
@@ -112,7 +112,7 @@
                       max-height: 200%;
                     "
                     :src="resolveLogo('status' + (index + 1) + '.png')"
-                    fit="fill"
+                    fit="fill"                    
                   >
                   </el-image>
                   <span>{{ item.taskName }}</span>
@@ -148,7 +148,7 @@
                         icon="el-icon-view"
                         size="medium"
                         :disabled="index == 0 ? false : true"
-                        @click="finishTask(item)"
+                        @click.native="finishTask(item)"
                       >
                         完成
                       </el-button>
@@ -167,7 +167,7 @@
             <el-table
               :data="finishData"              
               border
-			  style="height:100%;min-height:80px;"
+			        style="height:100%;min-height:80px;"
               :header-cell-style="{ background: '#1890ff', color: '#fff' }"
             >
               <el-table-column
@@ -185,21 +185,21 @@
                   </div>
                 </template>
               </el-table-column>
-              <el-table-column prop="name" label="零件名称" width="150">
+              <el-table-column prop="name" label="零件名称" align="center">
               </el-table-column>
-              <el-table-column prop="taskNo" label="工序号" width="80">
+              <el-table-column prop="taskNo" label="工序号" width="80" align="center">
               </el-table-column>
-              <el-table-column prop="taskName" label="工序名称" width="100">
+              <el-table-column prop="taskName" label="工序名称" align="center">
               </el-table-column>
-              <el-table-column prop="planTime" label="额定时间" width="100">
+              <el-table-column prop="planTime" label="额定时间" width="100" align="center">
               </el-table-column>
-              <el-table-column prop="activeTime" label="实际时间" width="100">
+              <el-table-column prop="activeTime" label="实际时间" width="100" align="center">
               </el-table-column>
-              <el-table-column prop="startTime" label="开始时间" width="150">
+              <el-table-column prop="startTime" label="开始时间" width="150" align="center">
               </el-table-column>
-              <el-table-column prop="endTime" label="结束时间" width="150">
+              <el-table-column prop="endTime" label="结束时间" width="150" align="center">
               </el-table-column>
-              <el-table-column prop="overTime" label="是否超时" width="100">
+              <el-table-column prop="overTime" label="是否超时" width="100" align="center">
 				  <template slot-scope="scope">
                       {{ scope.overTime ? "是" : "否" }}
                  </template>
@@ -216,18 +216,40 @@
       @get-data="showRFID"
       @close="viewClose"
     />
+
+    <!-- 【查看】组件 -->
+      <task-view1
+	      	ref="view1"
+	      	:dialog-visible="view1Visible"
+	      	@close="viewClose"
+	    />
+	    <task-view2
+	      	ref="view2"
+	      	:dialog-visible="view2Visible"
+	      	@close="viewClose"
+	    />
+
+      <!-- 【查看】组件 -->
+	    <task-view3
+	      	ref="view3"
+	      	:dialog-visible="view3Visible"
+	      	@close="viewClose"
+	    />
   </div>
 </template>
 
 
 <script>
 // 【查看】组件
-import TaskView from "../waitingTasks/components/View";
+import TaskView from "./components/View";
+import TaskView1 from "./components/View1";
+import TaskView2 from "./components/View2";
+import TaskView3 from "./components/View3";
 import { fullScreen, exitFullScreen, initQueryParams } from "@/utils/commons";
 import stationMgrApi from "@/api/machiningClient/stationMgr";
 export default {
   name: "TouchScreen",
-  components: { TaskView },
+  components: { TaskView,TaskView1,TaskView2,TaskView3 },
   props: {},
   data() {
     return {
@@ -250,7 +272,9 @@ export default {
           trayNo: "TP7788",
           time: 15,
           left: 2,
-          status: 0,
+          status: 1,
+          content: "完成装夹,rfid读写",
+          step: 1,
         },
         {
           id: 2,
@@ -261,7 +285,9 @@ export default {
           trayNo: "TP7788",
           time: 25,
           left: 6,
-          status: 0,
+          status: 1,
+          content: "",
+          step: 2,
         },
         {
           id: 3,
@@ -273,6 +299,8 @@ export default {
           time: 5,
           left: 1,
           status: 0,
+          content: "",
+          step: 3,
         },
         {
           id: 4,
@@ -284,12 +312,17 @@ export default {
           time: 5,
           left: 1,
           status: 0,
+          content: "",
+          step: 3
         },
       ],
       finishData: [],
-      step: 1,
+      current: 1,
       confirmDisabled: true,
       tenantViewVisible: false,
+      view1Visible: false,
+      view2Visible: false,
+      view3Visible: false,
       isFullSreen: false, // 默认不全屏
     };
   },
@@ -351,8 +384,30 @@ export default {
     resolveLogo(logo) {
       return require(`@/assets/yunMap/${logo}`);
     },
+    view (item) {
+        let that = this;
+        let current = that.options.filter(function (c, i, a) {
+          if (c.value == that.opValue) {
+             return c
+          }
+        })
+        item.procedurePosition = current[0].name;
+        let index = item.step;
+        if(index % 3 == 1){
+           this.$refs.view1.setTenant(item)
+           this.view1Visible = true
+        }else if(index % 3 == 2){
+           this.$refs.view2.setTenant(item)
+           this.view2Visible = true
+        }else if(index % 3 == 0){
+           this.$refs.view3.setTenant(item)
+           this.view3Visible = true
+        }
+	  },
     viewClose() {
-      this.tenantViewVisible = false;
+      this.view1Visible = false
+      this.view2Visible = false
+      this.view3Visible = false      
     },
     setPercentage(time, left) {
       return this.formatGap(time, left)[0] > 100

+ 518 - 0
imcs-ui/src/views/zuihou/machiningClient/touchScreen/components/View.vue

@@ -0,0 +1,518 @@
+<template>
+  <el-dialog
+    :title="$t(&quot;common.view&quot;)"
+    width="80%"
+    :append-to-body="true"
+    :visible.sync="isVisible"
+    class="tenant-view"
+  >
+    <div class="boxDiv">
+    	<!-- 任务信息 -->
+        <el-steps :active="1" finish-status="success" simple style="margin-top: 20px">
+  				<el-step title="夹具安装" >1111</el-step>
+  				<el-step title="物料装夹" >2222</el-step>  				
+		</el-steps>
+
+
+    	<el-row>
+    		<p class="titleP" style="margin-top: 0;">{{$t("runCenter.form.viewSched.name")+":"}}</p>
+    		<table class="comtable" border="0" cellspacing="0" cellpadding="6">
+    			<tr>
+    				<td class="blodTd" align="center" width="120">{{$t("runCenter.form.viewSched.procedureDesc")+":"}}</td>
+    				<td width="200">{{tenant.procedureDesc}}</td>
+    				<td class="blodTd" align="center" width="120">{{$t("runCenter.form.viewSched.content")+":"}}</td>
+    				<td width="300">{{tenant.content}}</td>
+    				<td class="blodTd" align="center" width="120">{{$t("runCenter.form.viewSched.status")+":"}}</td>
+    				<td width="200">
+		          <el-tag v-if="tenant.status == '1'" type="info">{{$t("runCenter.common.schedulStatus.noStart")}}</el-tag>
+							<el-tag v-if="tenant.status == '2'" type="">{{$t("runCenter.common.schedulStatus.run")}}</el-tag>
+							<el-tag v-if="tenant.status == '3'" type="success">{{$t("runCenter.common.schedulStatus.finished")}}</el-tag>
+    				</td>
+    			</tr>
+    			<tr>
+    				<td class="blodTd" align="center">{{$t("runCenter.form.viewSched.procedureNo")+":"}}</td>
+    				<td>{{tenant.procedureNo}}</td>
+    				<td class="blodTd" align="center">{{$t("runCenter.form.viewSched.prepareWorkHours")+":"}}</td>
+    				<td>{{tenant.prepareWorkHours}}</td>
+    				<td class="blodTd" align="center">{{$t("runCenter.form.viewSched.overtimeStatus")+":"}}</td>
+    				<td>{{tenant.overtimeStatus}}</td>
+    			</tr>
+    			<tr>
+    				<td class="blodTd" align="center">{{$t("runCenter.form.viewSched.bomDesc")+":"}}</td>
+    				<td>{{tenant.bomDesc}}</td>
+    				<td class="blodTd" align="center">{{$t("runCenter.form.viewSched.ratedWorkHours")+":"}}</td>
+    				<td>{{tenant.ratedWorkHours}}</td>
+    				<td class="blodTd" align="center">{{$t("runCenter.form.viewSched.resourceDesc")+":"}}</td>
+    				<td>{{tenant.resourceDesc}}</td>
+    			</tr>
+    			<tr>
+    				<td class="blodTd" align="center">{{$t("runCenter.form.viewSched.bomNo")+":"}}</td>
+    				<td>{{tenant.bomNo}}</td>
+    				<td class="blodTd" align="center">{{$t("runCenter.form.viewSched.planTime")+":"}}</td>
+    				<td>{{tenant.planTime}}</td>
+    				<td class="blodTd" align="center">{{$t("runCenter.form.viewSched.executorName")+":"}}</td>
+    				<td>{{tenant.executorName}}</td>
+    			</tr>
+    			<tr>
+    				<td class="blodTd" align="center">{{$t("runCenter.form.viewSched.planNo")+":"}}</td>
+    				<td>{{tenant.planNo}}</td>
+    				<td class="blodTd" align="center">{{$t("runCenter.form.viewSched.actualTime")+":"}}</td>
+    				<td>{{tenant.actualTime}}</td>
+    				<td class="blodTd" align="center">{{$t("runCenter.form.viewSched.taskResour")+":"}}</td>
+    				<td>查看任务资源</td>
+    			</tr>
+    			<tr>
+    				<td class="blodTd" align="center">{{$t("runCenter.form.viewSched.orderNo")+":"}}</td>
+    				<td>{{tenant.orderNo}}</td>
+    				<td class="blodTd" align="center">{{$t("runCenter.form.viewSched.jindu")+":"}}</td>
+    				<td><el-progress :text-inside="true" :stroke-width="24" :percentage="tenant.process"></el-progress></td>
+    				<td class="blodTd" align="center"></td>
+    				<td></td>
+    			</tr>
+    		</table>
+    	</el-row>
+    	
+    	<!-- 自动化执行流程 -->
+    	<el-row>
+    		<p class="titleP">{{$t("runCenter.form.viewSched.autoLiuc")}}</p>
+    		<el-table
+	      	:key="tableKey"
+	      	ref="table"
+	      	v-loading="loading"
+	      	:data="tableData.records"
+	      	border
+	      	fit
+	      	row-key="id"
+	      	style="width: 100%;"
+	      	highlight-current-row
+    			@current-change="handleCurrentChange"
+		    >
+		    	<!-- 序号 -->
+		    	<el-table-column :label='$t("common.serialNo")' width="55px" align="center">
+			      <template slot-scope="scope">
+			        <div>
+			          {{scope.$index+(queryParams.current - 1) * queryParams.size + 1}}
+			        </div>
+			      </template>
+		      	</el-table-column>
+		      	<!-- 权重 -->
+		      	<el-table-column prop="prority" :label='$t("runCenter.table.aotoProcess.prority")' :show-overflow-tooltip="true" width="120px"></el-table-column>
+				    <!-- 设备 -->
+				    <el-table-column prop="resourceName" :label='$t("runCenter.table.aotoProcess.resourceName")' :show-overflow-tooltip="true" width="120px"></el-table-column>
+				    <!-- 动作包指令(报文) -->
+				    <el-table-column prop="code" :label='$t("runCenter.table.aotoProcess.code")' :show-overflow-tooltip="true" width="160px"></el-table-column>
+				    <!-- 执行动作 -->
+				    <el-table-column prop="instructionName" :label='$t("runCenter.table.aotoProcess.instructionName")' :show-overflow-tooltip="true"></el-table-column>
+				    <!-- 操作说明 -->
+				    <el-table-column prop="remark" :label='$t("runCenter.table.aotoProcess.remark")' :show-overflow-tooltip="true" width="180px"></el-table-column>
+			     	<!-- 执行状态 -->
+			     	<el-table-column prop="exeStatus" :label='$t("runCenter.table.aotoProcess.exeStatus")' width="150px">
+			     		<template slot-scope="{ row }">
+				      	<el-tag v-if="row.exeStatus == '1'" type="info">{{$t("runCenter.common.exeStatus.noStart")}}</el-tag>
+								<el-tag v-if="row.exeStatus == '2'" type="">{{$t("runCenter.common.exeStatus.run")}}</el-tag>
+								<el-tag v-if="row.exeStatus == '3'" type="success">{{$t("runCenter.common.exeStatus.finished")}}</el-tag>
+							</template>
+			     	</el-table-column>
+			      <!-- 执行结果 -->
+			      <el-table-column prop="exeResult" :label='$t("runCenter.table.aotoProcess.exeResult")' width="150px">
+			      	<template slot-scope="{ row }">
+			      		<el-tag v-if="row.exeResult == '1'" type="success">{{$t("runCenter.common.exeResult.success")}}</el-tag>
+								<el-tag v-if="row.exeResult == '0'">{{$t("runCenter.common.exeResult.fail")}}</el-tag>
+							</template>
+			      </el-table-column>
+			      <!-- 开始时间 -->
+			      <el-table-column prop="startTime" :label='$t("runCenter.table.aotoProcess.startTime")' width="150px"></el-table-column>
+			      <!-- 结束时间 -->
+			      <el-table-column prop="endTime" :label='$t("runCenter.table.aotoProcess.endTime")' width="150px"></el-table-column>
+			      <!-- 反馈信息 -->
+			      <el-table-column prop="feedback" :label='$t("runCenter.table.aotoProcess.feedback")' width="150px"></el-table-column>
+			      <!-- 反馈附件 -->
+			      <el-table-column prop="feedbackFile" :label='$t("runCenter.table.aotoProcess.feedbackFile")' width="150px"></el-table-column>
+		    </el-table>
+		    <!-- 【分页】组件 -->
+		  	<pagination
+		      v-show="tableData.total > 0"
+		      :limit.sync="queryParams.size"
+		      :page.sync="queryParams.current"
+		      :total="Number(tableData.total)"
+		      @pagination="fetch"
+		    />
+    	</el-row>
+    	<!-- 所需原材料 -->
+    	<el-row>
+    		<p class="titleP">{{$t("prepare.common.meterial")}}</p>
+    		<!-- Table数据 -->
+				<el-table
+		      ref="table"
+		      v-loading="loading"
+		      :data="tableData1"
+		      border
+		      fit
+		      style="width: 100%;"
+		    >
+		    	<!-- 编号 -->
+		      <el-table-column prop="no" :label='$t("prepare.table.tools.no")' align="center" width="120px"></el-table-column>
+		      <!-- 名称 -->
+		      <el-table-column prop="name" :label='$t("prepare.table.tools.name")' align="center" width="150px"></el-table-column>
+		     	<!-- 规格 -->
+		     	<el-table-column prop="specification" :label='$t("prepare.table.tools.specification")' :show-overflow-tooltip="true" width="180px"></el-table-column>
+		      <!-- 品牌 -->
+		      <el-table-column prop="brand.data" :label='$t("prepare.table.tools.brand")' width="120px"></el-table-column>
+		      <!-- 备注 -->
+		      <el-table-column prop="remark" :label='$t("common.remark")'></el-table-column>
+		      <!-- 入产线编码 -->
+		      <el-table-column prop="uniqueCode" label='入产线编码'>
+		      	<template slot-scope="{ row }">
+		      		<el-input size="small" v-model="row.uniqueCode" :placeholder='$t("common.pleaseEnter")'></el-input>
+		      	</template>
+		      </el-table-column>
+		    </el-table>
+    	</el-row>	
+    	<!-- 托盘夹具组 -->
+    	<el-row>
+    		<p class="titleP">{{$t("prepare.common.tpJgroup")}}</p>
+    		<!-- Table数据 :span-method="objectSpanMethod"  -->
+				<el-table
+		      ref="table"
+		      v-loading="loading"
+		      :data="tableData2"
+		      border
+		      fit
+		      highlight-current-row
+	    		@current-change="handleCurrentChange"
+		      style="width: 100%;"
+		      :span-method="objectSpanMethod"
+		    >
+		    	<!-- 组序 -->
+		    	<el-table-column prop="groupSort" :label='$t("prepare.table.toolGroup.groupSort")' align="center" width="70px"></el-table-column>
+		    	<!-- 优先级 -->
+		    	<el-table-column prop="groupPrority" :label='$t("prepare.table.toolGroup.groupPrority")' align="center" width="80px"></el-table-column>
+		    	<!-- 类型 -->
+		    	<el-table-column prop="category.data" :label='$t("prepare.table.toolGroup.category")' align="center" width="100px">
+		    		<template slot-scope="{ row }">
+		    			<span>{{row.category.data}}</span>
+		    			<!--<el-button v-if="row.category.key == '02'" type="text" @click="editTools(row)">{{row.category.data}}</el-button>
+		    			<el-button v-else type="text" @click="addRow(row)">{{row.category.data}}</el-button>-->
+		    		</template>
+		    	</el-table-column>
+		    	<!-- 名称 -->
+		    	<el-table-column prop="name" :label='$t("prepare.table.toolGroup.name")' align="center" width="120px" :show-overflow-tooltip="true"></el-table-column>
+		      <!-- 编号 -->
+		      <el-table-column prop="no" :label='$t("prepare.table.toolGroup.no")' align="center" width="120px" :show-overflow-tooltip="true"></el-table-column>
+		      <!-- 规格 -->
+		      <el-table-column prop="specification" :label='$t("prepare.table.toolGroup.specification")' width="180px" :show-overflow-tooltip="true"></el-table-column>
+		      <!-- 品牌 -->
+		      <el-table-column prop="brand.data" :label='$t("prepare.table.toolGroup.brand")' width="180px"></el-table-column>
+		      <!-- 使用加紧位置 -->
+		      <el-table-column prop="positions" :label='$t("prepare.table.toolGroup.positions")' align="center" width="180px"></el-table-column>
+		      <!-- 装甲方式 -->
+		      <el-table-column prop="armorPic" :label='$t("prepare.table.toolGroup.armorPic")' align="center" width="180px">
+		      	<template slot-scope="{ row }" v-if="row.category.key == '02'">
+		      		<div v-if="row.jjImgList && row.jjImgList.length > 0" class="demo-image__preview">
+							  <el-image 
+							    style="width: 100px; height: 60px"
+							    :src="row.jjImgList[0]" 
+							    :preview-src-list="row.jjImgList">
+							  </el-image>
+							</div>
+		          <!--<el-button v-else type="text" @click="handleClick(row)">{{$t("common.uploadImg")}}</el-button>-->
+						</template>
+		      </el-table-column>
+		      <!-- 备注 -->
+		      <el-table-column prop="remark" :label='$t("common.remark")' width="180px"></el-table-column>
+		      <!-- 入产线编码 -->
+		      <el-table-column prop="uniqueCode" label='入产线编码' width="150px">
+		      	<template slot-scope="{ row }">
+		      		<el-input size="small" v-model="row.uniqueCode" :placeholder='$t("common.pleaseEnter")'></el-input>
+		      	</template>
+		      </el-table-column>
+		    </el-table>
+    	</el-row>
+    		
+    	<div slot="footer" class="dialog-footer">
+	      <el-button plain type="info" @click="isVisible = false">{{ $t('machining.buttons.noFinished') }}</el-button>
+	      <el-button type="primary" :disabled="confirmDisabled" @click="submitForm">{{ $t('machining.buttons.finished') }}</el-button>
+	    </div>
+    </div>
+  </el-dialog>
+</template>
+<script>
+	// 【分页】组件
+	import Pagination from "@/components/Pagination"
+	// 【自动化程序管理】-API
+	import automatedProcessesApi from "@/api/prepareProductMgr/automatedProcesses"
+	// 【产品工艺版本管理】-API
+	import technologyVersionApi from "@/api/prepareProductMgr/technologyVersion"
+	// 【机加工人端】-API
+	import machiningClientApi from "@/api/machiningClient/machiningClient"
+	// 列表查询的共通参数
+	import { initQueryParams } from '@/utils/commons'
+export default {
+  name: 'TaskView',
+  components: { Pagination },
+  props: {
+    dialogVisible: {
+      type: Boolean,
+      default: false
+    }
+  },
+  data () {
+    return {
+      screenWidth: 0,
+      confirmDisabled: false,
+      width: this.initWidth(),
+      tenant: {},
+      queryParams: initQueryParams({}),
+      loading: false,
+    	tenantViewVisible: false,
+    	tableKey: 0,
+	  	tableData: {
+	    	total: 0
+	  	},
+	  	tableData1: [],
+	  	tableData2: [],
+	  	currentRow: null, // 当前选择的行
+	  	
+	  	spanArr: [],  // 【组序】合并单元格
+	    spanArr2: [],  // 【优先级】合并单元格
+    }
+  },
+  // 实例已经在内存中创建好,此时data和methods已将ok,如果要操作data中的数据或是调用methods中的方法,最早只能在created中操作
+  created() {
+  	// 加载列表数据
+  	// this.fetch()
+	},
+  computed: {
+    isVisible: {
+      get () {
+        return this.dialogVisible
+      },
+      set () {
+        this.close()
+      }
+    }
+  },
+  mounted () {
+    window.onresize = () => {
+      return (() => {
+        this.width = this.initWidth()
+      })()
+    }
+  },
+  methods: {
+  	submitForm(){
+  		let obj ={
+  			taskNode: this.tenant,
+  			meterialList: this.tableData1,
+  			procedureTrayList: this.tableData2
+  		}
+  		console.log("表单数据:", obj)
+  		// return false
+  		machiningClientApi.finishTaskNode(obj).then((response) => {
+	      const res = response.data
+	      if (res.isSuccess) {
+	        this.isVisible = false
+	        this.$message({
+	          message: this.$t('tips.updateSuccess'),
+	          type: 'success'
+	        })
+	        // 通知列表
+	        this.$emit("success");
+	      }
+	    }).finally(() => {
+	      this.confirmDisabled = false
+	      return true
+	    })
+  	},
+  	// table的当前行值变化后
+  	handleCurrentChange(val) {
+			// 设置当前行
+    	this.currentRow = val;
+  	},
+    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 '650px'
+      }
+    },
+    setTenant (val) {
+      this.tenant = { ...val }
+      // 加载上部门2个数据
+  		this.fetch()
+  		// 加载下部分2个数据
+  		this.getDetail(val)
+    },
+    close () {
+      this.$emit('close')
+    },
+    fetch (params = {}) {
+      this.loading = true
+      /*// 日期区间-参数
+      if (this.queryParams.timeRange) {
+        this.queryParams.map.createTime_st = this.queryParams.timeRange[0]
+        this.queryParams.map.createTime_ed = this.queryParams.timeRange[1]
+      }
+			// 分页-参数
+      this.queryParams.current = params.current ? params.current : this.queryParams.current
+      this.queryParams.size = params.size ? params.size : this.queryParams.size
+      // 条件-参数*/
+      console.log("列表的row数据:", this.tenant)
+      automatedProcessesApi.taskAutoNodeList({taskId: this.tenant.taskId, procedureId: this.tenant.procedureId, orderId: this.tenant.orderId}).then(response => {
+        const res = response.data
+        if (res.isSuccess) {
+          this.tableData.records = res.data
+        }
+        // eslint-disable-next-line no-return-assign
+      }).finally(() => this.loading = false)
+     
+    },
+    //获得数据相同的行数
+ 		rowspanFiled(data, filed) {
+ 			let spanArr5 = [];
+	    data.forEach((item,index) => {
+        if( index === 0){
+            spanArr5.push(1);
+            this.position = 0;
+        }else{
+            if(data[index].groupSort === data[index-1].groupSort && data[index][filed] === data[index-1][filed]){
+                spanArr5[this.position] += 1;
+                spanArr5.push(0);
+            }else{
+                spanArr5.push(1);
+                this.position = index;
+            }
+        }
+	    })
+	    return spanArr5;
+    },
+    //合并
+ 		objectSpanMethod({ row, column, rowIndex, columnIndex }) {  //表格合并行
+	    if (columnIndex === 0) {
+	        let _row = this.spanArr[rowIndex];
+	        let _col = _row > 0 ? 1 : 0;
+	        return {
+	            rowspan: _row,
+	            colspan: _col
+	        }
+	    }
+	    if(columnIndex === 1){
+	        let _row = this.spanArr2[rowIndex];
+	        let _col = _row > 0 ? 1 : 0;
+	        return {
+	            rowspan: _row,
+	            colspan: _col
+	        }
+	    }
+    },
+    //合并
+ 		objectSpanMethod({ row, column, rowIndex, columnIndex }) {  //表格合并行
+	    if (columnIndex === 0) {
+	        let _row = this.spanArr[rowIndex];
+	        let _col = _row > 0 ? 1 : 0;
+	        return {
+	            rowspan: _row,
+	            colspan: _col
+	        }
+	    }
+	    if(columnIndex === 1){
+	        let _row = this.spanArr2[rowIndex];
+	        let _col = _row > 0 ? 1 : 0;
+	        return {
+	            rowspan: _row,
+	            colspan: _col
+	        }
+	    }
+    },
+    // 根据【工艺id】查询详情信息
+    getDetail(obj){
+    	machiningClientApi.getTaskNodeProcessAnalysis(obj).then(res => {
+    		res = res.data 
+    		if(res.isSuccess){
+    			console.log("详情信息:", res.data)
+    			// 给各个组件赋值
+		    	// 把【设备】的数据,给【程序】使用
+		    	// this.setProgram(eqList)
+		    	// 获取【所需原材料】数据
+		    	this.tableData1 = this.setKeyList(res.data.meterialList)
+		    	// 获取【托盘夹具组】数据
+		    	this.tableData2 = this.setKeyList(res.data.procedureTrayList, 'tray')
+		    	// 要合并列的准备数据
+		    	if(this.tableData2.length > 0){
+		    		this.spanArr = this.rowspanFiled(this.tableData2, "groupSort")
+				  	this.spanArr2 = this.rowspanFiled(this.tableData2, "groupPrority")
+		    	}
+    		}
+    	})
+    },
+    // 赋值前处理-添加key数据健
+    setKeyList(list, flag){
+    	if(list.length > 0){
+    		let arr = []
+    		list.forEach(item => {
+    			// 添加唯一键
+	    		item.key = ''+ Math.random()
+	    		// 如果是托盘夹具的时候,组装分类
+	    		if(flag == 'tray'){
+	    			// 把【组序】和【优先级】改成字符串
+	    			//item.groupSort = ''+ item.groupSort
+	    			//item.groupPrority = ''+ item.groupPrority
+	    			// 给图片一个列表数据,jjImgList
+	    			item.jjImgList = []
+	    			if(!!item.armorPic){
+	    				item.jjImgList.push(item.armorPic)
+	    			}
+	    			// 添加类型
+	    			if(item.bizType == '1'){
+	    				item.category = {key: '03',data: '托盘'}
+	    			}else{
+	    				item.category = {key: '02',data: '夹具'}
+	    			}
+	    		}
+	    		arr.push(item)
+	    	})
+    		list = arr
+    	}
+    	return list
+    }
+  }
+}
+</script>
+<style lang="scss" scoped>
+	.dialog-footer{
+		text-align: center;
+		padding: 30px;
+	}
+	.titleP{
+		position: relative;
+		font-size: 16px;
+		padding-left: 15px;
+	}
+	.titleP:before{
+		content: '';
+		position: absolute;
+		left: 0;
+		top: 3px;
+		width: 5px;
+		height: 80%;
+		background: #0F79DC;
+	}
+	.comtable{
+		width: 100%;
+		border-left: 1px solid #CCCCCC;
+		border-top: 1px solid #CCCCCC;
+	}
+	.comtable td{
+		border-right: 1px solid #CCCCCC;
+		border-bottom: 1px solid #CCCCCC;
+	}
+	.blodTd{
+		background: #EEEEEE;
+		color: #333333;
+	}
+</style>

+ 418 - 0
imcs-ui/src/views/zuihou/machiningClient/touchScreen/components/View1.vue

@@ -0,0 +1,418 @@
+<template>
+  <el-dialog
+    :title="$t(&quot;common.view&quot;)"
+    width="80%"
+    :append-to-body="true"
+    :visible.sync="isVisible"
+    class="tenant-view"
+  >
+    <div class="boxDiv">
+    	<!-- 任务信息 -->
+        <el-steps :active="active" finish-status="success" simple style="margin:20px 0;">
+  				<el-step title="夹具安装" ></el-step>
+  				<el-step title="物料装夹" ></el-step>  				
+		</el-steps>
+
+    	<el-row v-show="this.active==1">
+    		<p style="margin-top:0;text-align:center;font-size:18px;">{{$t("runCenter.form.viewSched.name")}}
+				<span style="float:right;margin-right:20px;font-size:14px;">{{$t("runCenter.form.viewSched.bomNo")+":"}}{{tenant.no}}</span>
+			</p>
+    		<table class="comtable" border="0" cellspacing="0" cellpadding="6">
+    			<tr>
+    				<td class="blodTd" align="center" width="120">{{$t("runCenter.form.viewSched.procedureNo")+":"}}</td>
+    				<td width="200">{{tenant.taskNo}}</td>
+    				<td class="blodTd" align="center" width="120">{{$t("runCenter.form.viewSched.status")+":"}}</td>
+    				<td width="120">
+                         <el-tag v-if="tenant.status == 0" type="info">{{$t("runCenter.common.schedulStatus.noStart")}}</el-tag>
+							<el-tag v-if="tenant.status == 1" type="">{{$t("runCenter.common.schedulStatus.run")}}</el-tag>
+							<el-tag v-if="tenant.status == 2" type="success">{{$t("runCenter.common.schedulStatus.finished")}}</el-tag> 
+					</td>    				
+    			</tr>
+    			<tr>
+					<td class="blodTd" align="center">{{$t("runCenter.form.viewSched.procedureDesc")+":"}}</td>
+    				<td>{{tenant.taskName}}</td>
+					<td class="blodTd" align="center">{{$t("runCenter.form.viewSched.content")+":"}}</td>
+    				<td width="200">{{tenant.content}}</td>    				
+    			</tr>
+				<tr>
+                    <td class="blodTd" align="center">{{$t("runCenter.form.viewSched.prepareWorkHours")+":"}}</td>
+    				<td>{{tenant.time}}分钟</td>
+    				<td class="blodTd" align="center">{{$t("runCenter.form.viewSched.procedurePosition")+":"}}</td>
+    				<td>{{tenant.procedurePosition}}</td>
+				</tr>	
+    			<tr>
+    				<td class="blodTd" align="center">{{$t("runCenter.form.viewSched.startTime")+":"}}</td>
+    				<td>{{tenant.bomDesc}}</td>
+    				<td class="blodTd" align="center">{{$t("runCenter.form.viewSched.endTime")+":"}}</td>
+    				<td>{{tenant.endTime}}</td>
+    			</tr>
+    		</table>
+    	</el-row>    	
+    	
+    	<!-- 安装夹具 -->
+    	<el-row v-show="this.active==1">
+    		<p class="titleP" style="margin-top:15px;color:#000;font-size:18px;" >ST1: 请安装夹具 <span style="color:red;margin-left:5px;font-size:14px;">系统检测夹具不足</span></p>
+    		<!-- Table数据 -->
+			<el-table
+		      ref="table"
+		      v-loading="loading"
+		      :data="tableData.records"
+		      border
+		      fit
+		      style="width: 100%;"
+		    >
+		      <!-- 编号 -->
+		      <el-table-column prop="no" :label='$t("prepare.table.tools.no")' align="center" ></el-table-column>
+		       <!-- 编号 -->
+		      <el-table-column prop="type" :label='$t("prepare.table.tools.type")' align="center" ></el-table-column>
+			  <!-- 名称 -->
+		      <el-table-column prop="name" :label='$t("prepare.table.tools.name")' align="center"></el-table-column>
+		     
+		    </el-table>
+    	</el-row>	
+
+		<!-- 装夹物料 -->
+    	<el-row v-show="this.active>1">
+    		<p class="titleP" style="margin-top:15px;color:#000;font-size:18px;" >ST2: 装夹物料</p>
+    		<!-- Table数据 -->
+			<el-table
+		      ref="table1"
+		      v-loading="loading"
+		      :data="tableData1.records"
+		      border
+		      fit
+		      style="width: 100%;"
+		    >
+		      <!-- 编号 -->
+		      <el-table-column prop="no" :label='$t("prepare.table.tools.no")' align="center" ></el-table-column>
+		       <!-- 编号 -->
+		      <el-table-column prop="type" :label='$t("prepare.table.tools.type")' align="center" ></el-table-column>
+			  <!-- 名称 -->
+		      <el-table-column prop="name" :label='$t("prepare.table.tools.name")' align="center"></el-table-column>
+              <!-- 装夹方式 -->
+		      <el-table-column prop="clampImg" :label='$t("prepare.table.tools.clampImg")' align="center">
+                    <template slot-scope="{ row }">
+                         <div class="block">
+                             <el-image
+      							style="width: 60px; height: 60px"
+      							:src="row.clampImg"
+      							fit="fill"></el-image>
+						 </div>	 
+					</template>
+			  </el-table-column>
+			  <!-- 备注 -->
+		      <el-table-column prop="remark" :label='$t("prepare.table.tools.name")' align="center"></el-table-column>		     
+ 
+		    </el-table>
+    	</el-row>
+
+		<!-- 输入唯一码 -->
+    	<el-row v-show="this.active>1">
+          <p class="titleP" style="margin-top:15px;color:#000;font-size:18px;" >输入零件编码    <el-button size="small" type="primary" @click.native="generate" round>系统生成</el-button></p>
+          <el-input v-model="uniqueCode" placeholder="输入零件编码"></el-input>
+
+	    </el-row>		
+    	    		
+    	<div slot="footer" class="dialog-footer">
+		  <el-button plain type="info" @click.native="prev" v-show="this.active>1"  >返回上一步</el-button>		     
+	      <el-button type="primary" :disabled="confirmDisabled" @click.native="next" v-show="this.active==1">已完成,下一步</el-button>
+		  <el-button type="primary" :disabled="confirmDisabled" @click.native="submitForm" v-show="this.active>1">上料完成</el-button>
+	    </div>
+    </div>
+  </el-dialog>
+</template>
+<script>
+	// 【分页】组件
+	import Pagination from "@/components/Pagination"
+	// 【自动化程序管理】-API
+	import automatedProcessesApi from "@/api/prepareProductMgr/automatedProcesses"
+	// 【产品工艺版本管理】-API
+	import technologyVersionApi from "@/api/prepareProductMgr/technologyVersion"
+	// 【机加工人端】-API
+	import machiningClientApi from "@/api/machiningClient/machiningClient"
+	// 列表查询的共通参数
+	import { initQueryParams } from '@/utils/commons'
+export default {
+  name: 'TaskView',
+  components: { Pagination },
+  props: {
+    dialogVisible: {
+      type: Boolean,
+      default: false
+    }
+  },
+  data () {
+    return {
+	  active: 1,
+      screenWidth: 0,
+      confirmDisabled: false,
+      width: this.initWidth(),
+      tenant: {},
+      queryParams: initQueryParams({}),
+      loading: false,
+	  uniqueCode: '',	  
+    	tenantViewVisible: false,
+    	tableKey: 0,
+	  	tableData: {
+	    	total: 0
+	  	},
+	  	tableData1: {
+           total: 0
+		},
+	  	tableData2: [],
+	  	currentRow: null, // 当前选择的行
+	  	
+	  	spanArr: [],  // 【组序】合并单元格
+	    spanArr2: [],  // 【优先级】合并单元格
+    }
+  },
+  // 实例已经在内存中创建好,此时data和methods已将ok,如果要操作data中的数据或是调用methods中的方法,最早只能在created中操作
+  created() {
+  	// 加载列表数据
+  	// this.fetch()
+	},
+  computed: {
+    isVisible: {
+      get () {
+        return this.dialogVisible
+      },
+      set () {
+        this.close()
+      }
+    }
+  },
+  mounted () {
+    window.onresize = () => {
+      return (() => {
+        this.width = this.initWidth()
+      })()
+    }
+  },
+  methods: {
+	prev(){
+      if (this.active-- < 0) this.active = 0;
+	},  
+	next(){
+       if (this.active++ > 1) this.active = 0;
+	},  
+  	submitForm(){
+  		let obj = {
+  			taskNode: this.tenant,
+  			meterialList: this.tableData1,
+  			procedureTrayList: this.tableData2
+  		}
+  		console.log("表单数据:", obj)
+  		// return false
+  		machiningClientApi.finishTaskNode(obj).then((response) => {
+	      const res = response.data
+	      if (res.isSuccess) {
+	        this.isVisible = false
+	        this.$message({
+	          message: this.$t('tips.updateSuccess'),
+	          type: 'success'
+	        })
+	        // 通知列表
+	        this.$emit("success");
+	      }
+	    }).finally(() => {
+	      this.confirmDisabled = false
+	      return true
+	    })
+  	},
+  	// table的当前行值变化后
+  	handleCurrentChange(val) {
+			// 设置当前行
+    	this.currentRow = val;
+  	},
+    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 '650px'
+      }
+    },
+    setTenant (val) {
+      this.tenant = { ...val }
+      // 加载上部门2个数据
+  		this.fetch()
+  		// 加载下部分2个数据
+  		//this.getDetail(val)
+    },
+    close () {
+      this.$emit('close')
+    },
+    fetch (params = {}) {
+      this.loading = true
+      //日期区间-参数
+      if (this.queryParams.timeRange) {
+        this.queryParams.map.createTime_st = this.queryParams.timeRange[0]
+        this.queryParams.map.createTime_ed = this.queryParams.timeRange[1]
+      }
+	  // 分页-参数
+      this.queryParams.current = params.current ? params.current : this.queryParams.current
+      this.queryParams.size = params.size ? params.size : this.queryParams.size
+      // 条件-参数
+      console.log("列表的row数据:", this.tenant)
+	  /*
+      automatedProcessesApi.taskAutoNodeList({taskId: this.tenant.taskId, procedureId: this.tenant.procedureId, orderId: this.tenant.orderId}).then(response => {
+        const res = response.data
+        if (res.isSuccess) {
+          this.tableData.records = res.data
+        }
+        // eslint-disable-next-line no-return-assign
+      }).finally(() => this.loading = false) */
+	  this.tableData.records = [{'no':'龙威夹','type':'&230','name':'龙威'}];
+	  this.tableData1.records = [{'no':'龙威夹','type':'&230','name':'龙威','clampImg':require(`@/assets/yunMap/clampImg.png`),'remark':'备注'}];
+	  this.loading = false;
+     
+    },
+    //获得数据相同的行数
+ 	rowspanFiled(data, filed) {
+ 			let spanArr5 = [];
+	    data.forEach((item,index) => {
+        if( index === 0){
+            spanArr5.push(1);
+            this.position = 0;
+        }else{
+            if(data[index].groupSort === data[index-1].groupSort && data[index][filed] === data[index-1][filed]){
+                spanArr5[this.position] += 1;
+                spanArr5.push(0);
+            }else{
+                spanArr5.push(1);
+                this.position = index;
+            }
+        }
+	    })
+	    return spanArr5;
+    },
+    //合并
+ 		objectSpanMethod({ row, column, rowIndex, columnIndex }) {  //表格合并行
+	    if (columnIndex === 0) {
+	        let _row = this.spanArr[rowIndex];
+	        let _col = _row > 0 ? 1 : 0;
+	        return {
+	            rowspan: _row,
+	            colspan: _col
+	        }
+	    }
+	    if(columnIndex === 1){
+	        let _row = this.spanArr2[rowIndex];
+	        let _col = _row > 0 ? 1 : 0;
+	        return {
+	            rowspan: _row,
+	            colspan: _col
+	        }
+	    }
+    },
+    //合并
+ 		objectSpanMethod({ row, column, rowIndex, columnIndex }) {  //表格合并行
+	    if (columnIndex === 0) {
+	        let _row = this.spanArr[rowIndex];
+	        let _col = _row > 0 ? 1 : 0;
+	        return {
+	            rowspan: _row,
+	            colspan: _col
+	        }
+	    }
+	    if(columnIndex === 1){
+	        let _row = this.spanArr2[rowIndex];
+	        let _col = _row > 0 ? 1 : 0;
+	        return {
+	            rowspan: _row,
+	            colspan: _col
+	        }
+	    }
+    },
+    // 根据【工艺id】查询详情信息
+    getDetail(obj){
+		/*		
+    	machiningClientApi.getTaskNodeProcessAnalysis(obj).then(res => {
+    		res = res.data 
+    		if(res.isSuccess){
+    			console.log("详情信息:", res.data)
+    			// 给各个组件赋值
+		    	// 把【设备】的数据,给【程序】使用
+		    	// this.setProgram(eqList)
+		    	// 获取【所需原材料】数据
+		    	this.tableData1 = this.setKeyList(res.data.meterialList)
+		    	// 获取【托盘夹具组】数据
+		    	this.tableData2 = this.setKeyList(res.data.procedureTrayList, 'tray')
+		    	// 要合并列的准备数据
+		    	if(this.tableData2.length > 0){
+		    		this.spanArr = this.rowspanFiled(this.tableData2, "groupSort")
+				  	this.spanArr2 = this.rowspanFiled(this.tableData2, "groupPrority")
+		    	}
+    		}
+    	}) */		
+    },
+    // 赋值前处理-添加key数据健
+    setKeyList(list, flag){
+    	if(list.length > 0){
+    		let arr = []
+    		list.forEach(item => {
+    			// 添加唯一键
+	    		item.key = ''+ Math.random()
+	    		// 如果是托盘夹具的时候,组装分类
+	    		if(flag == 'tray'){
+	    			// 把【组序】和【优先级】改成字符串
+	    			//item.groupSort = ''+ item.groupSort
+	    			//item.groupPrority = ''+ item.groupPrority
+	    			// 给图片一个列表数据,jjImgList
+	    			item.jjImgList = []
+	    			if(!!item.armorPic){
+	    				item.jjImgList.push(item.armorPic)
+	    			}
+	    			// 添加类型
+	    			if(item.bizType == '1'){
+	    				item.category = {key: '03',data: '托盘'}
+	    			}else{
+	    				item.category = {key: '02',data: '夹具'}
+	    			}
+	    		}
+	    		arr.push(item)
+	    	})
+    		list = arr
+    	}
+    	return list
+    }
+  }
+}
+</script>
+<style lang="scss" scoped>
+	.dialog-footer{
+		text-align: center;
+		padding: 30px;
+	}
+	.titleP{
+		position: relative;
+		font-size: 16px;
+		padding-left: 15px;
+	}
+	.titleP:before{
+		content: '';
+		position: absolute;
+		left: 0;
+		top: 3px;
+		width: 5px;
+		height: 80%;
+		background: #0F79DC;
+	}
+	.comtable{
+		width: 100%;
+		border-left: 1px solid #CCCCCC;
+		border-top: 1px solid #CCCCCC;
+	}
+	.comtable td{
+		border-right: 1px solid #CCCCCC;
+		border-bottom: 1px solid #CCCCCC;
+	}
+	.blodTd{
+		background: #EEEEEE;
+		color: #333333;
+	}
+</style>

+ 512 - 0
imcs-ui/src/views/zuihou/machiningClient/touchScreen/components/View2.vue

@@ -0,0 +1,512 @@
+<template>
+  <el-dialog
+    :title="$t(&quot;common.view&quot;)"
+    width="80%"
+    :append-to-body="true"
+    :visible.sync="isVisible"
+    class="tenant-view"
+  >
+    <div class="boxDiv">
+    	<!-- 任务信息 -->
+    	<el-row>
+    		<p class="titleP" style="margin-top: 0;">{{$t("runCenter.form.viewSched.name")+":"}}</p>
+    		<table class="comtable" border="0" cellspacing="0" cellpadding="6">
+    			<tr>
+    				<td class="blodTd" align="center" width="120">{{$t("runCenter.form.viewSched.procedureDesc")+":"}}</td>
+    				<td width="200">{{tenant.procedureDesc}}</td>
+    				<td class="blodTd" align="center" width="120">{{$t("runCenter.form.viewSched.content")+":"}}</td>
+    				<td width="300">{{tenant.content}}</td>
+    				<td class="blodTd" align="center" width="120">{{$t("runCenter.form.viewSched.status")+":"}}</td>
+    				<td width="200">
+		          <el-tag v-if="tenant.status == '1'" type="info">{{$t("runCenter.common.schedulStatus.noStart")}}</el-tag>
+							<el-tag v-if="tenant.status == '2'" type="">{{$t("runCenter.common.schedulStatus.run")}}</el-tag>
+							<el-tag v-if="tenant.status == '3'" type="success">{{$t("runCenter.common.schedulStatus.finished")}}</el-tag>
+    				</td>
+    			</tr>
+    			<tr>
+    				<td class="blodTd" align="center">{{$t("runCenter.form.viewSched.procedureNo")+":"}}</td>
+    				<td>{{tenant.procedureNo}}</td>
+    				<td class="blodTd" align="center">{{$t("runCenter.form.viewSched.prepareWorkHours")+":"}}</td>
+    				<td>{{tenant.prepareWorkHours}}</td>
+    				<td class="blodTd" align="center">{{$t("runCenter.form.viewSched.overtimeStatus")+":"}}</td>
+    				<td>{{tenant.overtimeStatus}}</td>
+    			</tr>
+    			<tr>
+    				<td class="blodTd" align="center">{{$t("runCenter.form.viewSched.bomDesc")+":"}}</td>
+    				<td>{{tenant.bomDesc}}</td>
+    				<td class="blodTd" align="center">{{$t("runCenter.form.viewSched.ratedWorkHours")+":"}}</td>
+    				<td>{{tenant.ratedWorkHours}}</td>
+    				<td class="blodTd" align="center">{{$t("runCenter.form.viewSched.resourceDesc")+":"}}</td>
+    				<td>{{tenant.resourceDesc}}</td>
+    			</tr>
+    			<tr>
+    				<td class="blodTd" align="center">{{$t("runCenter.form.viewSched.bomNo")+":"}}</td>
+    				<td>{{tenant.bomNo}}</td>
+    				<td class="blodTd" align="center">{{$t("runCenter.form.viewSched.planTime")+":"}}</td>
+    				<td>{{tenant.planTime}}</td>
+    				<td class="blodTd" align="center">{{$t("runCenter.form.viewSched.executorName")+":"}}</td>
+    				<td>{{tenant.executorName}}</td>
+    			</tr>
+    			<tr>
+    				<td class="blodTd" align="center">{{$t("runCenter.form.viewSched.planNo")+":"}}</td>
+    				<td>{{tenant.planNo}}</td>
+    				<td class="blodTd" align="center">{{$t("runCenter.form.viewSched.actualTime")+":"}}</td>
+    				<td>{{tenant.actualTime}}</td>
+    				<td class="blodTd" align="center">{{$t("runCenter.form.viewSched.taskResour")+":"}}</td>
+    				<td>查看任务资源</td>
+    			</tr>
+    			<tr>
+    				<td class="blodTd" align="center">{{$t("runCenter.form.viewSched.orderNo")+":"}}</td>
+    				<td>{{tenant.orderNo}}</td>
+    				<td class="blodTd" align="center">{{$t("runCenter.form.viewSched.jindu")+":"}}</td>
+    				<td><el-progress :text-inside="true" :stroke-width="24" :percentage="tenant.process"></el-progress></td>
+    				<td class="blodTd" align="center"></td>
+    				<td></td>
+    			</tr>
+    		</table>
+    	</el-row>
+    	
+    	<!-- 自动化执行流程 -->
+    	<el-row>
+    		<p class="titleP">{{$t("runCenter.form.viewSched.autoLiuc")}}</p>
+    		<el-table
+	      	:key="tableKey"
+	      	ref="table"
+	      	v-loading="loading"
+	      	:data="tableData.records"
+	      	border
+	      	fit
+	      	row-key="id"
+	      	style="width: 100%;"
+	      	highlight-current-row
+    			@current-change="handleCurrentChange"
+		    >
+		    	<!-- 序号 -->
+		    	<el-table-column :label='$t("common.serialNo")' width="55px" align="center">
+			      <template slot-scope="scope">
+			        <div>
+			          {{scope.$index+(queryParams.current - 1) * queryParams.size + 1}}
+			        </div>
+			      </template>
+		      	</el-table-column>
+		      	<!-- 权重 -->
+		      	<el-table-column prop="prority" :label='$t("runCenter.table.aotoProcess.prority")' :show-overflow-tooltip="true" width="120px"></el-table-column>
+				    <!-- 设备 -->
+				    <el-table-column prop="resourceName" :label='$t("runCenter.table.aotoProcess.resourceName")' :show-overflow-tooltip="true" width="120px"></el-table-column>
+				    <!-- 动作包指令(报文) -->
+				    <el-table-column prop="code" :label='$t("runCenter.table.aotoProcess.code")' :show-overflow-tooltip="true" width="160px"></el-table-column>
+				    <!-- 执行动作 -->
+				    <el-table-column prop="instructionName" :label='$t("runCenter.table.aotoProcess.instructionName")' :show-overflow-tooltip="true"></el-table-column>
+				    <!-- 操作说明 -->
+				    <el-table-column prop="remark" :label='$t("runCenter.table.aotoProcess.remark")' :show-overflow-tooltip="true" width="180px"></el-table-column>
+			     	<!-- 执行状态 -->
+			     	<el-table-column prop="exeStatus" :label='$t("runCenter.table.aotoProcess.exeStatus")' width="150px">
+			     		<template slot-scope="{ row }">
+				      	<el-tag v-if="row.exeStatus == '1'" type="info">{{$t("runCenter.common.exeStatus.noStart")}}</el-tag>
+								<el-tag v-if="row.exeStatus == '2'" type="">{{$t("runCenter.common.exeStatus.run")}}</el-tag>
+								<el-tag v-if="row.exeStatus == '3'" type="success">{{$t("runCenter.common.exeStatus.finished")}}</el-tag>
+							</template>
+			     	</el-table-column>
+			      <!-- 执行结果 -->
+			      <el-table-column prop="exeResult" :label='$t("runCenter.table.aotoProcess.exeResult")' width="150px">
+			      	<template slot-scope="{ row }">
+			      		<el-tag v-if="row.exeResult == '1'" type="success">{{$t("runCenter.common.exeResult.success")}}</el-tag>
+								<el-tag v-if="row.exeResult == '0'">{{$t("runCenter.common.exeResult.fail")}}</el-tag>
+							</template>
+			      </el-table-column>
+			      <!-- 开始时间 -->
+			      <el-table-column prop="startTime" :label='$t("runCenter.table.aotoProcess.startTime")' width="150px"></el-table-column>
+			      <!-- 结束时间 -->
+			      <el-table-column prop="endTime" :label='$t("runCenter.table.aotoProcess.endTime")' width="150px"></el-table-column>
+			      <!-- 反馈信息 -->
+			      <el-table-column prop="feedback" :label='$t("runCenter.table.aotoProcess.feedback")' width="150px"></el-table-column>
+			      <!-- 反馈附件 -->
+			      <el-table-column prop="feedbackFile" :label='$t("runCenter.table.aotoProcess.feedbackFile")' width="150px"></el-table-column>
+		    </el-table>
+		    <!-- 【分页】组件 -->
+		  	<pagination
+		      v-show="tableData.total > 0"
+		      :limit.sync="queryParams.size"
+		      :page.sync="queryParams.current"
+		      :total="Number(tableData.total)"
+		      @pagination="fetch"
+		    />
+    	</el-row>
+    	<!-- 所需原材料 -->
+    	<el-row>
+    		<p class="titleP">{{$t("prepare.common.meterial")}}</p>
+    		<!-- Table数据 -->
+				<el-table
+		      ref="table"
+		      v-loading="loading"
+		      :data="tableData1"
+		      border
+		      fit
+		      style="width: 100%;"
+		    >
+		    	<!-- 编号 -->
+		      <el-table-column prop="no" :label='$t("prepare.table.tools.no")' align="center" width="120px"></el-table-column>
+		      <!-- 名称 -->
+		      <el-table-column prop="name" :label='$t("prepare.table.tools.name")' align="center" width="150px"></el-table-column>
+		     	<!-- 规格 -->
+		     	<el-table-column prop="specification" :label='$t("prepare.table.tools.specification")' :show-overflow-tooltip="true" width="180px"></el-table-column>
+		      <!-- 品牌 -->
+		      <el-table-column prop="brand.data" :label='$t("prepare.table.tools.brand")' width="120px"></el-table-column>
+		      <!-- 备注 -->
+		      <el-table-column prop="remark" :label='$t("common.remark")'></el-table-column>
+		      <!-- 入产线编码 -->
+		      <el-table-column prop="uniqueCode" label='入产线编码'>
+		      	<template slot-scope="{ row }">
+		      		<el-input size="small" v-model="row.uniqueCode" :placeholder='$t("common.pleaseEnter")'></el-input>
+		      	</template>
+		      </el-table-column>
+		    </el-table>
+    	</el-row>	
+    	<!-- 托盘夹具组 -->
+    	<el-row>
+    		<p class="titleP">{{$t("prepare.common.tpJgroup")}}</p>
+    		<!-- Table数据 :span-method="objectSpanMethod"  -->
+				<el-table
+		      ref="table"
+		      v-loading="loading"
+		      :data="tableData2"
+		      border
+		      fit
+		      highlight-current-row
+	    		@current-change="handleCurrentChange"
+		      style="width: 100%;"
+		      :span-method="objectSpanMethod"
+		    >
+		    	<!-- 组序 -->
+		    	<el-table-column prop="groupSort" :label='$t("prepare.table.toolGroup.groupSort")' align="center" width="70px"></el-table-column>
+		    	<!-- 优先级 -->
+		    	<el-table-column prop="groupPrority" :label='$t("prepare.table.toolGroup.groupPrority")' align="center" width="80px"></el-table-column>
+		    	<!-- 类型 -->
+		    	<el-table-column prop="category.data" :label='$t("prepare.table.toolGroup.category")' align="center" width="100px">
+		    		<template slot-scope="{ row }">
+		    			<span>{{row.category.data}}</span>
+		    			<!--<el-button v-if="row.category.key == '02'" type="text" @click="editTools(row)">{{row.category.data}}</el-button>
+		    			<el-button v-else type="text" @click="addRow(row)">{{row.category.data}}</el-button>-->
+		    		</template>
+		    	</el-table-column>
+		    	<!-- 名称 -->
+		    	<el-table-column prop="name" :label='$t("prepare.table.toolGroup.name")' align="center" width="120px" :show-overflow-tooltip="true"></el-table-column>
+		      <!-- 编号 -->
+		      <el-table-column prop="no" :label='$t("prepare.table.toolGroup.no")' align="center" width="120px" :show-overflow-tooltip="true"></el-table-column>
+		      <!-- 规格 -->
+		      <el-table-column prop="specification" :label='$t("prepare.table.toolGroup.specification")' width="180px" :show-overflow-tooltip="true"></el-table-column>
+		      <!-- 品牌 -->
+		      <el-table-column prop="brand.data" :label='$t("prepare.table.toolGroup.brand")' width="180px"></el-table-column>
+		      <!-- 使用加紧位置 -->
+		      <el-table-column prop="positions" :label='$t("prepare.table.toolGroup.positions")' align="center" width="180px"></el-table-column>
+		      <!-- 装甲方式 -->
+		      <el-table-column prop="armorPic" :label='$t("prepare.table.toolGroup.armorPic")' align="center" width="180px">
+		      	<template slot-scope="{ row }" v-if="row.category.key == '02'">
+		      		<div v-if="row.jjImgList && row.jjImgList.length > 0" class="demo-image__preview">
+							  <el-image 
+							    style="width: 100px; height: 60px"
+							    :src="row.jjImgList[0]" 
+							    :preview-src-list="row.jjImgList">
+							  </el-image>
+							</div>
+		          <!--<el-button v-else type="text" @click="handleClick(row)">{{$t("common.uploadImg")}}</el-button>-->
+						</template>
+		      </el-table-column>
+		      <!-- 备注 -->
+		      <el-table-column prop="remark" :label='$t("common.remark")' width="180px"></el-table-column>
+		      <!-- 入产线编码 -->
+		      <el-table-column prop="uniqueCode" label='入产线编码' width="150px">
+		      	<template slot-scope="{ row }">
+		      		<el-input size="small" v-model="row.uniqueCode" :placeholder='$t("common.pleaseEnter")'></el-input>
+		      	</template>
+		      </el-table-column>
+		    </el-table>
+    	</el-row>
+    		
+    	<div slot="footer" class="dialog-footer">
+	      <el-button plain type="info" @click="isVisible = false">{{ $t('machining.buttons.noFinished') }}</el-button>
+	      <el-button type="primary" :disabled="confirmDisabled" @click="submitForm">{{ $t('machining.buttons.finished') }}</el-button>
+	    </div>
+    </div>
+  </el-dialog>
+</template>
+<script>
+	// 【分页】组件
+	import Pagination from "@/components/Pagination"
+	// 【自动化程序管理】-API
+	import automatedProcessesApi from "@/api/prepareProductMgr/automatedProcesses"
+	// 【产品工艺版本管理】-API
+	import technologyVersionApi from "@/api/prepareProductMgr/technologyVersion"
+	// 【机加工人端】-API
+	import machiningClientApi from "@/api/machiningClient/machiningClient"
+	// 列表查询的共通参数
+	import { initQueryParams } from '@/utils/commons'
+export default {
+  name: 'TaskView',
+  components: { Pagination },
+  props: {
+    dialogVisible: {
+      type: Boolean,
+      default: false
+    }
+  },
+  data () {
+    return {
+      screenWidth: 0,
+      confirmDisabled: false,
+      width: this.initWidth(),
+      tenant: {},
+      queryParams: initQueryParams({}),
+      loading: false,
+    	tenantViewVisible: false,
+    	tableKey: 0,
+	  	tableData: {
+	    	total: 0
+	  	},
+	  	tableData1: [],
+	  	tableData2: [],
+	  	currentRow: null, // 当前选择的行
+	  	
+	  	spanArr: [],  // 【组序】合并单元格
+	    spanArr2: [],  // 【优先级】合并单元格
+    }
+  },
+  // 实例已经在内存中创建好,此时data和methods已将ok,如果要操作data中的数据或是调用methods中的方法,最早只能在created中操作
+  created() {
+  	// 加载列表数据
+  	// this.fetch()
+	},
+  computed: {
+    isVisible: {
+      get () {
+        return this.dialogVisible
+      },
+      set () {
+        this.close()
+      }
+    }
+  },
+  mounted () {
+    window.onresize = () => {
+      return (() => {
+        this.width = this.initWidth()
+      })()
+    }
+  },
+  methods: {
+  	submitForm(){
+  		let obj ={
+  			taskNode: this.tenant,
+  			meterialList: this.tableData1,
+  			procedureTrayList: this.tableData2
+  		}
+  		console.log("表单数据:", obj)
+  		// return false
+  		machiningClientApi.finishTaskNode(obj).then((response) => {
+	      const res = response.data
+	      if (res.isSuccess) {
+	        this.isVisible = false
+	        this.$message({
+	          message: this.$t('tips.updateSuccess'),
+	          type: 'success'
+	        })
+	        // 通知列表
+	        this.$emit("success");
+	      }
+	    }).finally(() => {
+	      this.confirmDisabled = false
+	      return true
+	    })
+  	},
+  	// table的当前行值变化后
+  	handleCurrentChange(val) {
+			// 设置当前行
+    	this.currentRow = val;
+  	},
+    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 '650px'
+      }
+    },
+    setTenant (val) {
+      this.tenant = { ...val }
+      // 加载上部门2个数据
+  		this.fetch()
+  		// 加载下部分2个数据
+  		this.getDetail(val)
+    },
+    close () {
+      this.$emit('close')
+    },
+    fetch (params = {}) {
+      this.loading = true
+      /*// 日期区间-参数
+      if (this.queryParams.timeRange) {
+        this.queryParams.map.createTime_st = this.queryParams.timeRange[0]
+        this.queryParams.map.createTime_ed = this.queryParams.timeRange[1]
+      }
+			// 分页-参数
+      this.queryParams.current = params.current ? params.current : this.queryParams.current
+      this.queryParams.size = params.size ? params.size : this.queryParams.size
+      // 条件-参数*/
+      console.log("列表的row数据:", this.tenant)
+      automatedProcessesApi.taskAutoNodeList({taskId: this.tenant.taskId, procedureId: this.tenant.procedureId, orderId: this.tenant.orderId}).then(response => {
+        const res = response.data
+        if (res.isSuccess) {
+          this.tableData.records = res.data
+        }
+        // eslint-disable-next-line no-return-assign
+      }).finally(() => this.loading = false)
+     
+    },
+    //获得数据相同的行数
+ 		rowspanFiled(data, filed) {
+ 			let spanArr5 = [];
+	    data.forEach((item,index) => {
+        if( index === 0){
+            spanArr5.push(1);
+            this.position = 0;
+        }else{
+            if(data[index].groupSort === data[index-1].groupSort && data[index][filed] === data[index-1][filed]){
+                spanArr5[this.position] += 1;
+                spanArr5.push(0);
+            }else{
+                spanArr5.push(1);
+                this.position = index;
+            }
+        }
+	    })
+	    return spanArr5;
+    },
+    //合并
+ 		objectSpanMethod({ row, column, rowIndex, columnIndex }) {  //表格合并行
+	    if (columnIndex === 0) {
+	        let _row = this.spanArr[rowIndex];
+	        let _col = _row > 0 ? 1 : 0;
+	        return {
+	            rowspan: _row,
+	            colspan: _col
+	        }
+	    }
+	    if(columnIndex === 1){
+	        let _row = this.spanArr2[rowIndex];
+	        let _col = _row > 0 ? 1 : 0;
+	        return {
+	            rowspan: _row,
+	            colspan: _col
+	        }
+	    }
+    },
+    //合并
+ 		objectSpanMethod({ row, column, rowIndex, columnIndex }) {  //表格合并行
+	    if (columnIndex === 0) {
+	        let _row = this.spanArr[rowIndex];
+	        let _col = _row > 0 ? 1 : 0;
+	        return {
+	            rowspan: _row,
+	            colspan: _col
+	        }
+	    }
+	    if(columnIndex === 1){
+	        let _row = this.spanArr2[rowIndex];
+	        let _col = _row > 0 ? 1 : 0;
+	        return {
+	            rowspan: _row,
+	            colspan: _col
+	        }
+	    }
+    },
+    // 根据【工艺id】查询详情信息
+    getDetail(obj){
+    	machiningClientApi.getTaskNodeProcessAnalysis(obj).then(res => {
+    		res = res.data 
+    		if(res.isSuccess){
+    			console.log("详情信息:", res.data)
+    			// 给各个组件赋值
+		    	// 把【设备】的数据,给【程序】使用
+		    	// this.setProgram(eqList)
+		    	// 获取【所需原材料】数据
+		    	this.tableData1 = this.setKeyList(res.data.meterialList)
+		    	// 获取【托盘夹具组】数据
+		    	this.tableData2 = this.setKeyList(res.data.procedureTrayList, 'tray')
+		    	// 要合并列的准备数据
+		    	if(this.tableData2.length > 0){
+		    		this.spanArr = this.rowspanFiled(this.tableData2, "groupSort")
+				  	this.spanArr2 = this.rowspanFiled(this.tableData2, "groupPrority")
+		    	}
+    		}
+    	})
+    },
+    // 赋值前处理-添加key数据健
+    setKeyList(list, flag){
+    	if(list.length > 0){
+    		let arr = []
+    		list.forEach(item => {
+    			// 添加唯一键
+	    		item.key = ''+ Math.random()
+	    		// 如果是托盘夹具的时候,组装分类
+	    		if(flag == 'tray'){
+	    			// 把【组序】和【优先级】改成字符串
+	    			//item.groupSort = ''+ item.groupSort
+	    			//item.groupPrority = ''+ item.groupPrority
+	    			// 给图片一个列表数据,jjImgList
+	    			item.jjImgList = []
+	    			if(!!item.armorPic){
+	    				item.jjImgList.push(item.armorPic)
+	    			}
+	    			// 添加类型
+	    			if(item.bizType == '1'){
+	    				item.category = {key: '03',data: '托盘'}
+	    			}else{
+	    				item.category = {key: '02',data: '夹具'}
+	    			}
+	    		}
+	    		arr.push(item)
+	    	})
+    		list = arr
+    	}
+    	return list
+    }
+  }
+}
+</script>
+<style lang="scss" scoped>
+	.dialog-footer{
+		text-align: center;
+		padding: 30px;
+	}
+	.titleP{
+		position: relative;
+		font-size: 16px;
+		padding-left: 15px;
+	}
+	.titleP:before{
+		content: '';
+		position: absolute;
+		left: 0;
+		top: 3px;
+		width: 5px;
+		height: 80%;
+		background: #0F79DC;
+	}
+	.comtable{
+		width: 100%;
+		border-left: 1px solid #CCCCCC;
+		border-top: 1px solid #CCCCCC;
+	}
+	.comtable td{
+		border-right: 1px solid #CCCCCC;
+		border-bottom: 1px solid #CCCCCC;
+	}
+	.blodTd{
+		background: #EEEEEE;
+		color: #333333;
+	}
+</style>

+ 512 - 0
imcs-ui/src/views/zuihou/machiningClient/touchScreen/components/View3.vue

@@ -0,0 +1,512 @@
+<template>
+  <el-dialog
+    :title="$t(&quot;common.view&quot;)"
+    width="80%"
+    :append-to-body="true"
+    :visible.sync="isVisible"
+    class="tenant-view"
+  >
+    <div class="boxDiv">
+    	<!-- 任务信息 -->
+    	<el-row>
+    		<p class="titleP" style="margin-top: 0;">{{$t("runCenter.form.viewSched.name")+":"}}</p>
+    		<table class="comtable" border="0" cellspacing="0" cellpadding="6">
+    			<tr>
+    				<td class="blodTd" align="center" width="120">{{$t("runCenter.form.viewSched.procedureDesc")+":"}}</td>
+    				<td width="200">{{tenant.procedureDesc}}</td>
+    				<td class="blodTd" align="center" width="120">{{$t("runCenter.form.viewSched.content")+":"}}</td>
+    				<td width="300">{{tenant.content}}</td>
+    				<td class="blodTd" align="center" width="120">{{$t("runCenter.form.viewSched.status")+":"}}</td>
+    				<td width="200">
+		          <el-tag v-if="tenant.status == '1'" type="info">{{$t("runCenter.common.schedulStatus.noStart")}}</el-tag>
+							<el-tag v-if="tenant.status == '2'" type="">{{$t("runCenter.common.schedulStatus.run")}}</el-tag>
+							<el-tag v-if="tenant.status == '3'" type="success">{{$t("runCenter.common.schedulStatus.finished")}}</el-tag>
+    				</td>
+    			</tr>
+    			<tr>
+    				<td class="blodTd" align="center">{{$t("runCenter.form.viewSched.procedureNo")+":"}}</td>
+    				<td>{{tenant.procedureNo}}</td>
+    				<td class="blodTd" align="center">{{$t("runCenter.form.viewSched.prepareWorkHours")+":"}}</td>
+    				<td>{{tenant.prepareWorkHours}}</td>
+    				<td class="blodTd" align="center">{{$t("runCenter.form.viewSched.overtimeStatus")+":"}}</td>
+    				<td>{{tenant.overtimeStatus}}</td>
+    			</tr>
+    			<tr>
+    				<td class="blodTd" align="center">{{$t("runCenter.form.viewSched.bomDesc")+":"}}</td>
+    				<td>{{tenant.bomDesc}}</td>
+    				<td class="blodTd" align="center">{{$t("runCenter.form.viewSched.ratedWorkHours")+":"}}</td>
+    				<td>{{tenant.ratedWorkHours}}</td>
+    				<td class="blodTd" align="center">{{$t("runCenter.form.viewSched.resourceDesc")+":"}}</td>
+    				<td>{{tenant.resourceDesc}}</td>
+    			</tr>
+    			<tr>
+    				<td class="blodTd" align="center">{{$t("runCenter.form.viewSched.bomNo")+":"}}</td>
+    				<td>{{tenant.bomNo}}</td>
+    				<td class="blodTd" align="center">{{$t("runCenter.form.viewSched.planTime")+":"}}</td>
+    				<td>{{tenant.planTime}}</td>
+    				<td class="blodTd" align="center">{{$t("runCenter.form.viewSched.executorName")+":"}}</td>
+    				<td>{{tenant.executorName}}</td>
+    			</tr>
+    			<tr>
+    				<td class="blodTd" align="center">{{$t("runCenter.form.viewSched.planNo")+":"}}</td>
+    				<td>{{tenant.planNo}}</td>
+    				<td class="blodTd" align="center">{{$t("runCenter.form.viewSched.actualTime")+":"}}</td>
+    				<td>{{tenant.actualTime}}</td>
+    				<td class="blodTd" align="center">{{$t("runCenter.form.viewSched.taskResour")+":"}}</td>
+    				<td>查看任务资源</td>
+    			</tr>
+    			<tr>
+    				<td class="blodTd" align="center">{{$t("runCenter.form.viewSched.orderNo")+":"}}</td>
+    				<td>{{tenant.orderNo}}</td>
+    				<td class="blodTd" align="center">{{$t("runCenter.form.viewSched.jindu")+":"}}</td>
+    				<td><el-progress :text-inside="true" :stroke-width="24" :percentage="tenant.process"></el-progress></td>
+    				<td class="blodTd" align="center"></td>
+    				<td></td>
+    			</tr>
+    		</table>
+    	</el-row>
+    	
+    	<!-- 自动化执行流程 -->
+    	<el-row>
+    		<p class="titleP">{{$t("runCenter.form.viewSched.autoLiuc")}}</p>
+    		<el-table
+	      	:key="tableKey"
+	      	ref="table"
+	      	v-loading="loading"
+	      	:data="tableData.records"
+	      	border
+	      	fit
+	      	row-key="id"
+	      	style="width: 100%;"
+	      	highlight-current-row
+    			@current-change="handleCurrentChange"
+		    >
+		    	<!-- 序号 -->
+		    	<el-table-column :label='$t("common.serialNo")' width="55px" align="center">
+			      <template slot-scope="scope">
+			        <div>
+			          {{scope.$index+(queryParams.current - 1) * queryParams.size + 1}}
+			        </div>
+			      </template>
+		      	</el-table-column>
+		      	<!-- 权重 -->
+		      	<el-table-column prop="prority" :label='$t("runCenter.table.aotoProcess.prority")' :show-overflow-tooltip="true" width="120px"></el-table-column>
+				    <!-- 设备 -->
+				    <el-table-column prop="resourceName" :label='$t("runCenter.table.aotoProcess.resourceName")' :show-overflow-tooltip="true" width="120px"></el-table-column>
+				    <!-- 动作包指令(报文) -->
+				    <el-table-column prop="code" :label='$t("runCenter.table.aotoProcess.code")' :show-overflow-tooltip="true" width="160px"></el-table-column>
+				    <!-- 执行动作 -->
+				    <el-table-column prop="instructionName" :label='$t("runCenter.table.aotoProcess.instructionName")' :show-overflow-tooltip="true"></el-table-column>
+				    <!-- 操作说明 -->
+				    <el-table-column prop="remark" :label='$t("runCenter.table.aotoProcess.remark")' :show-overflow-tooltip="true" width="180px"></el-table-column>
+			     	<!-- 执行状态 -->
+			     	<el-table-column prop="exeStatus" :label='$t("runCenter.table.aotoProcess.exeStatus")' width="150px">
+			     		<template slot-scope="{ row }">
+				      	<el-tag v-if="row.exeStatus == '1'" type="info">{{$t("runCenter.common.exeStatus.noStart")}}</el-tag>
+								<el-tag v-if="row.exeStatus == '2'" type="">{{$t("runCenter.common.exeStatus.run")}}</el-tag>
+								<el-tag v-if="row.exeStatus == '3'" type="success">{{$t("runCenter.common.exeStatus.finished")}}</el-tag>
+							</template>
+			     	</el-table-column>
+			      <!-- 执行结果 -->
+			      <el-table-column prop="exeResult" :label='$t("runCenter.table.aotoProcess.exeResult")' width="150px">
+			      	<template slot-scope="{ row }">
+			      		<el-tag v-if="row.exeResult == '1'" type="success">{{$t("runCenter.common.exeResult.success")}}</el-tag>
+								<el-tag v-if="row.exeResult == '0'">{{$t("runCenter.common.exeResult.fail")}}</el-tag>
+							</template>
+			      </el-table-column>
+			      <!-- 开始时间 -->
+			      <el-table-column prop="startTime" :label='$t("runCenter.table.aotoProcess.startTime")' width="150px"></el-table-column>
+			      <!-- 结束时间 -->
+			      <el-table-column prop="endTime" :label='$t("runCenter.table.aotoProcess.endTime")' width="150px"></el-table-column>
+			      <!-- 反馈信息 -->
+			      <el-table-column prop="feedback" :label='$t("runCenter.table.aotoProcess.feedback")' width="150px"></el-table-column>
+			      <!-- 反馈附件 -->
+			      <el-table-column prop="feedbackFile" :label='$t("runCenter.table.aotoProcess.feedbackFile")' width="150px"></el-table-column>
+		    </el-table>
+		    <!-- 【分页】组件 -->
+		  	<pagination
+		      v-show="tableData.total > 0"
+		      :limit.sync="queryParams.size"
+		      :page.sync="queryParams.current"
+		      :total="Number(tableData.total)"
+		      @pagination="fetch"
+		    />
+    	</el-row>
+    	<!-- 所需原材料 -->
+    	<el-row>
+    		<p class="titleP">{{$t("prepare.common.meterial")}}</p>
+    		<!-- Table数据 -->
+				<el-table
+		      ref="table"
+		      v-loading="loading"
+		      :data="tableData1"
+		      border
+		      fit
+		      style="width: 100%;"
+		    >
+		    	<!-- 编号 -->
+		      <el-table-column prop="no" :label='$t("prepare.table.tools.no")' align="center" width="120px"></el-table-column>
+		      <!-- 名称 -->
+		      <el-table-column prop="name" :label='$t("prepare.table.tools.name")' align="center" width="150px"></el-table-column>
+		     	<!-- 规格 -->
+		     	<el-table-column prop="specification" :label='$t("prepare.table.tools.specification")' :show-overflow-tooltip="true" width="180px"></el-table-column>
+		      <!-- 品牌 -->
+		      <el-table-column prop="brand.data" :label='$t("prepare.table.tools.brand")' width="120px"></el-table-column>
+		      <!-- 备注 -->
+		      <el-table-column prop="remark" :label='$t("common.remark")'></el-table-column>
+		      <!-- 入产线编码 -->
+		      <el-table-column prop="uniqueCode" label='入产线编码'>
+		      	<template slot-scope="{ row }">
+		      		<el-input size="small" v-model="row.uniqueCode" :placeholder='$t("common.pleaseEnter")'></el-input>
+		      	</template>
+		      </el-table-column>
+		    </el-table>
+    	</el-row>	
+    	<!-- 托盘夹具组 -->
+    	<el-row>
+    		<p class="titleP">{{$t("prepare.common.tpJgroup")}}</p>
+    		<!-- Table数据 :span-method="objectSpanMethod"  -->
+				<el-table
+		      ref="table"
+		      v-loading="loading"
+		      :data="tableData2"
+		      border
+		      fit
+		      highlight-current-row
+	    		@current-change="handleCurrentChange"
+		      style="width: 100%;"
+		      :span-method="objectSpanMethod"
+		    >
+		    	<!-- 组序 -->
+		    	<el-table-column prop="groupSort" :label='$t("prepare.table.toolGroup.groupSort")' align="center" width="70px"></el-table-column>
+		    	<!-- 优先级 -->
+		    	<el-table-column prop="groupPrority" :label='$t("prepare.table.toolGroup.groupPrority")' align="center" width="80px"></el-table-column>
+		    	<!-- 类型 -->
+		    	<el-table-column prop="category.data" :label='$t("prepare.table.toolGroup.category")' align="center" width="100px">
+		    		<template slot-scope="{ row }">
+		    			<span>{{row.category.data}}</span>
+		    			<!--<el-button v-if="row.category.key == '02'" type="text" @click="editTools(row)">{{row.category.data}}</el-button>
+		    			<el-button v-else type="text" @click="addRow(row)">{{row.category.data}}</el-button>-->
+		    		</template>
+		    	</el-table-column>
+		    	<!-- 名称 -->
+		    	<el-table-column prop="name" :label='$t("prepare.table.toolGroup.name")' align="center" width="120px" :show-overflow-tooltip="true"></el-table-column>
+		      <!-- 编号 -->
+		      <el-table-column prop="no" :label='$t("prepare.table.toolGroup.no")' align="center" width="120px" :show-overflow-tooltip="true"></el-table-column>
+		      <!-- 规格 -->
+		      <el-table-column prop="specification" :label='$t("prepare.table.toolGroup.specification")' width="180px" :show-overflow-tooltip="true"></el-table-column>
+		      <!-- 品牌 -->
+		      <el-table-column prop="brand.data" :label='$t("prepare.table.toolGroup.brand")' width="180px"></el-table-column>
+		      <!-- 使用加紧位置 -->
+		      <el-table-column prop="positions" :label='$t("prepare.table.toolGroup.positions")' align="center" width="180px"></el-table-column>
+		      <!-- 装甲方式 -->
+		      <el-table-column prop="armorPic" :label='$t("prepare.table.toolGroup.armorPic")' align="center" width="180px">
+		      	<template slot-scope="{ row }" v-if="row.category.key == '02'">
+		      		<div v-if="row.jjImgList && row.jjImgList.length > 0" class="demo-image__preview">
+							  <el-image 
+							    style="width: 100px; height: 60px"
+							    :src="row.jjImgList[0]" 
+							    :preview-src-list="row.jjImgList">
+							  </el-image>
+							</div>
+		          <!--<el-button v-else type="text" @click="handleClick(row)">{{$t("common.uploadImg")}}</el-button>-->
+						</template>
+		      </el-table-column>
+		      <!-- 备注 -->
+		      <el-table-column prop="remark" :label='$t("common.remark")' width="180px"></el-table-column>
+		      <!-- 入产线编码 -->
+		      <el-table-column prop="uniqueCode" label='入产线编码' width="150px">
+		      	<template slot-scope="{ row }">
+		      		<el-input size="small" v-model="row.uniqueCode" :placeholder='$t("common.pleaseEnter")'></el-input>
+		      	</template>
+		      </el-table-column>
+		    </el-table>
+    	</el-row>
+    		
+    	<div slot="footer" class="dialog-footer">
+	      <el-button plain type="info" @click="isVisible = false">{{ $t('machining.buttons.noFinished') }}</el-button>
+	      <el-button type="primary" :disabled="confirmDisabled" @click="submitForm">{{ $t('machining.buttons.finished') }}</el-button>
+	    </div>
+    </div>
+  </el-dialog>
+</template>
+<script>
+	// 【分页】组件
+	import Pagination from "@/components/Pagination"
+	// 【自动化程序管理】-API
+	import automatedProcessesApi from "@/api/prepareProductMgr/automatedProcesses"
+	// 【产品工艺版本管理】-API
+	import technologyVersionApi from "@/api/prepareProductMgr/technologyVersion"
+	// 【机加工人端】-API
+	import machiningClientApi from "@/api/machiningClient/machiningClient"
+	// 列表查询的共通参数
+	import { initQueryParams } from '@/utils/commons'
+export default {
+  name: 'TaskView',
+  components: { Pagination },
+  props: {
+    dialogVisible: {
+      type: Boolean,
+      default: false
+    }
+  },
+  data () {
+    return {
+      screenWidth: 0,
+      confirmDisabled: false,
+      width: this.initWidth(),
+      tenant: {},
+      queryParams: initQueryParams({}),
+      loading: false,
+    	tenantViewVisible: false,
+    	tableKey: 0,
+	  	tableData: {
+	    	total: 0
+	  	},
+	  	tableData1: [],
+	  	tableData2: [],
+	  	currentRow: null, // 当前选择的行
+	  	
+	  	spanArr: [],  // 【组序】合并单元格
+	    spanArr2: [],  // 【优先级】合并单元格
+    }
+  },
+  // 实例已经在内存中创建好,此时data和methods已将ok,如果要操作data中的数据或是调用methods中的方法,最早只能在created中操作
+  created() {
+  	// 加载列表数据
+  	// this.fetch()
+	},
+  computed: {
+    isVisible: {
+      get () {
+        return this.dialogVisible
+      },
+      set () {
+        this.close()
+      }
+    }
+  },
+  mounted () {
+    window.onresize = () => {
+      return (() => {
+        this.width = this.initWidth()
+      })()
+    }
+  },
+  methods: {
+  	submitForm(){
+  		let obj ={
+  			taskNode: this.tenant,
+  			meterialList: this.tableData1,
+  			procedureTrayList: this.tableData2
+  		}
+  		console.log("表单数据:", obj)
+  		// return false
+  		machiningClientApi.finishTaskNode(obj).then((response) => {
+	      const res = response.data
+	      if (res.isSuccess) {
+	        this.isVisible = false
+	        this.$message({
+	          message: this.$t('tips.updateSuccess'),
+	          type: 'success'
+	        })
+	        // 通知列表
+	        this.$emit("success");
+	      }
+	    }).finally(() => {
+	      this.confirmDisabled = false
+	      return true
+	    })
+  	},
+  	// table的当前行值变化后
+  	handleCurrentChange(val) {
+			// 设置当前行
+    	this.currentRow = val;
+  	},
+    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 '650px'
+      }
+    },
+    setTenant (val) {
+      this.tenant = { ...val }
+      // 加载上部门2个数据
+  		this.fetch()
+  		// 加载下部分2个数据
+  		this.getDetail(val)
+    },
+    close () {
+      this.$emit('close')
+    },
+    fetch (params = {}) {
+      this.loading = true
+      /*// 日期区间-参数
+      if (this.queryParams.timeRange) {
+        this.queryParams.map.createTime_st = this.queryParams.timeRange[0]
+        this.queryParams.map.createTime_ed = this.queryParams.timeRange[1]
+      }
+			// 分页-参数
+      this.queryParams.current = params.current ? params.current : this.queryParams.current
+      this.queryParams.size = params.size ? params.size : this.queryParams.size
+      // 条件-参数*/
+      console.log("列表的row数据:", this.tenant)
+      automatedProcessesApi.taskAutoNodeList({taskId: this.tenant.taskId, procedureId: this.tenant.procedureId, orderId: this.tenant.orderId}).then(response => {
+        const res = response.data
+        if (res.isSuccess) {
+          this.tableData.records = res.data
+        }
+        // eslint-disable-next-line no-return-assign
+      }).finally(() => this.loading = false)
+     
+    },
+    //获得数据相同的行数
+ 		rowspanFiled(data, filed) {
+ 			let spanArr5 = [];
+	    data.forEach((item,index) => {
+        if( index === 0){
+            spanArr5.push(1);
+            this.position = 0;
+        }else{
+            if(data[index].groupSort === data[index-1].groupSort && data[index][filed] === data[index-1][filed]){
+                spanArr5[this.position] += 1;
+                spanArr5.push(0);
+            }else{
+                spanArr5.push(1);
+                this.position = index;
+            }
+        }
+	    })
+	    return spanArr5;
+    },
+    //合并
+ 		objectSpanMethod({ row, column, rowIndex, columnIndex }) {  //表格合并行
+	    if (columnIndex === 0) {
+	        let _row = this.spanArr[rowIndex];
+	        let _col = _row > 0 ? 1 : 0;
+	        return {
+	            rowspan: _row,
+	            colspan: _col
+	        }
+	    }
+	    if(columnIndex === 1){
+	        let _row = this.spanArr2[rowIndex];
+	        let _col = _row > 0 ? 1 : 0;
+	        return {
+	            rowspan: _row,
+	            colspan: _col
+	        }
+	    }
+    },
+    //合并
+ 		objectSpanMethod({ row, column, rowIndex, columnIndex }) {  //表格合并行
+	    if (columnIndex === 0) {
+	        let _row = this.spanArr[rowIndex];
+	        let _col = _row > 0 ? 1 : 0;
+	        return {
+	            rowspan: _row,
+	            colspan: _col
+	        }
+	    }
+	    if(columnIndex === 1){
+	        let _row = this.spanArr2[rowIndex];
+	        let _col = _row > 0 ? 1 : 0;
+	        return {
+	            rowspan: _row,
+	            colspan: _col
+	        }
+	    }
+    },
+    // 根据【工艺id】查询详情信息
+    getDetail(obj){
+    	machiningClientApi.getTaskNodeProcessAnalysis(obj).then(res => {
+    		res = res.data 
+    		if(res.isSuccess){
+    			console.log("详情信息:", res.data)
+    			// 给各个组件赋值
+		    	// 把【设备】的数据,给【程序】使用
+		    	// this.setProgram(eqList)
+		    	// 获取【所需原材料】数据
+		    	this.tableData1 = this.setKeyList(res.data.meterialList)
+		    	// 获取【托盘夹具组】数据
+		    	this.tableData2 = this.setKeyList(res.data.procedureTrayList, 'tray')
+		    	// 要合并列的准备数据
+		    	if(this.tableData2.length > 0){
+		    		this.spanArr = this.rowspanFiled(this.tableData2, "groupSort")
+				  	this.spanArr2 = this.rowspanFiled(this.tableData2, "groupPrority")
+		    	}
+    		}
+    	})
+    },
+    // 赋值前处理-添加key数据健
+    setKeyList(list, flag){
+    	if(list.length > 0){
+    		let arr = []
+    		list.forEach(item => {
+    			// 添加唯一键
+	    		item.key = ''+ Math.random()
+	    		// 如果是托盘夹具的时候,组装分类
+	    		if(flag == 'tray'){
+	    			// 把【组序】和【优先级】改成字符串
+	    			//item.groupSort = ''+ item.groupSort
+	    			//item.groupPrority = ''+ item.groupPrority
+	    			// 给图片一个列表数据,jjImgList
+	    			item.jjImgList = []
+	    			if(!!item.armorPic){
+	    				item.jjImgList.push(item.armorPic)
+	    			}
+	    			// 添加类型
+	    			if(item.bizType == '1'){
+	    				item.category = {key: '03',data: '托盘'}
+	    			}else{
+	    				item.category = {key: '02',data: '夹具'}
+	    			}
+	    		}
+	    		arr.push(item)
+	    	})
+    		list = arr
+    	}
+    	return list
+    }
+  }
+}
+</script>
+<style lang="scss" scoped>
+	.dialog-footer{
+		text-align: center;
+		padding: 30px;
+	}
+	.titleP{
+		position: relative;
+		font-size: 16px;
+		padding-left: 15px;
+	}
+	.titleP:before{
+		content: '';
+		position: absolute;
+		left: 0;
+		top: 3px;
+		width: 5px;
+		height: 80%;
+		background: #0F79DC;
+	}
+	.comtable{
+		width: 100%;
+		border-left: 1px solid #CCCCCC;
+		border-top: 1px solid #CCCCCC;
+	}
+	.comtable td{
+		border-right: 1px solid #CCCCCC;
+		border-bottom: 1px solid #CCCCCC;
+	}
+	.blodTd{
+		background: #EEEEEE;
+		color: #333333;
+	}
+</style>

+ 54 - 78
imcs-ui/src/views/zuihou/qualityCenter/qualityMgr/Index.vue

@@ -3,42 +3,42 @@
 		<!-- 搜索模块 -->
     <div class="filter-container">
     	<span>
-    		<span>{{$t("machining.common.custerm")}}:</span>
-    		<el-input v-model="queryParams.model.name" :placeholder='$t("common.pleaseEnter")' style="width: 180px;" size="medium"/>
+    		<span>{{$t("machining.table.qualityMgr.bomName")}}:</span>
+    		<el-input v-model="queryParams.model.bomName" :placeholder='$t("common.pleaseEnter")' style="width: 180px;" size="medium"/>
     	</span>
     	<span style="margin-left: 15px;">
     		<span>{{$t("machining.common.orderNo")}}:</span>
-    		<el-input v-model="queryParams.model.name" :placeholder='$t("common.pleaseEnter")' style="width: 180px;" size="medium"/>
-    	</span>
-    	<span style="margin-left: 15px;">
-    		<span>{{$t("machining.common.status")}}:</span>
-    		<el-select v-model="queryParams.model.status" :placeholder='$t("common.pleaseSelect")' size="medium" style="width: 180px;">
-        	<el-option
-			      v-for="item in audioStatus"
-			      :key="item.value"
-			      :label="item.label"
-			      :value="item.value">
-			    </el-option>
-      	</el-select>
+    		<el-input v-model="queryParams.model.orderNo" :placeholder='$t("common.pleaseEnter")' style="width: 180px;" size="medium"/>
     	</span>
+<!--    	<span style="margin-left: 15px;">-->
+<!--    		<span>{{$t("machining.table.qualityMgr.produceStatus")}}:</span>-->
+<!--    		<el-select v-model="queryParams.model.produceStatus" :placeholder='$t("common.pleaseSelect")' size="medium" style="width: 180px;">-->
+<!--        	<el-option-->
+<!--			      v-for="item in audioStatus"-->
+<!--			      :key="item.value"-->
+<!--			      :label="item.label"-->
+<!--			      :value="item.value">-->
+<!--			    </el-option>-->
+<!--      	</el-select>-->
+<!--    	</span>-->
     </div>
     <div class="filter-container">
-    	<span>
-    		<span>{{$t("machining.common.jiaohuTime")}}:</span>
-    		<el-date-picker
-		      v-model="queryParams.timeRange"
-		      type="daterange"
-		      :picker-options="pickerOptions"
-		      :range-separator='$t("common.separator")'
-		      :start-placeholder='$t("common.startTime")'
-		      :end-placeholder='$t("common.endTime")'
-		      format="yyyy-MM-dd"
-			  	value-format="yyyy-MM-dd"
-		      align="right"
-		      style="width: 350px;"
-		    >
-		    </el-date-picker>
-    	</span>
+<!--    	<span>-->
+<!--    		<span>{{$t("machining.common.jiaohuTime")}}:</span>-->
+<!--    		<el-date-picker-->
+<!--		      v-model="queryParams.timeRange"-->
+<!--		      type="daterange"-->
+<!--		      :picker-options="pickerOptions"-->
+<!--		      :range-separator='$t("common.separator")'-->
+<!--		      :start-placeholder='$t("common.startTime")'-->
+<!--		      :end-placeholder='$t("common.endTime")'-->
+<!--		      format="yyyy-MM-dd"-->
+<!--			  	value-format="yyyy-MM-dd"-->
+<!--		      align="right"-->
+<!--		      style="width: 350px;"-->
+<!--		    >-->
+<!--		    </el-date-picker>-->
+<!--    	</span>-->
       <span style="margin-left: 15px;">
 	      <el-button plain type="primary" icon="el-icon-search" size="medium" @click="search">
 	        {{ $t("table.search") }}
@@ -48,7 +48,7 @@
 	      </el-button>
       </span>
     </div>
-    
+
     <!-- 功能按钮 -->
     <el-row class="filter-container">
     	<el-col>
@@ -56,9 +56,6 @@
 	      <el-button type="primary" icon="el-icon-view" size="medium" @click="editOne">
 	        {{ $t("machining.common.viewOrder") }}
 	      </el-button>
-	      <el-button type="primary" icon="el-icon-view" size="medium" @click="batchDelete">
-	        {{ $t("machining.common.viewPlan") }}
-	      </el-button>
     	</el-col>
     </el-row>
 
@@ -86,44 +83,30 @@
       <!-- 序号 -->
       <el-table-column align="center" type="selection" width="50" :reserve-selection="true" />
       <!-- 订单编号 -->
-      <el-table-column prop="no" :label='$t("machining.table.qualityMgr.no")' :show-overflow-tooltip="true"></el-table-column>
-      <!-- 客户简称 -->
+      <el-table-column prop="orderNo" :label='$t("machining.table.qualityMgr.orderNo")' :show-overflow-tooltip="true"></el-table-column>
+      <!-- 零件简称 -->
       <el-table-column prop="bomName" :label='$t("machining.table.qualityMgr.bomName")' :show-overflow-tooltip="true"></el-table-column>
-      <!-- 来源 -->
-      <el-table-column prop="uniqueCode" :label='$t("machining.table.qualityMgr.uniqueCode")' width="100" :show-overflow-tooltip="true"></el-table-column>
-      <!-- 订单状态 -->
-      <el-table-column prop="testResult" :label='$t("machining.table.qualityMgr.testResult")' :show-overflow-tooltip="true">
+      <!-- 来源
+      <el-table-column prop="uniqueCode" :label='$t("machining.table.qualityMgr.uniqueCode")' width="100" :show-overflow-tooltip="true"></el-table-column>-->
+      <!-- 生产状态 -->
+      <el-table-column prop="produceStatus" :label='$t("machining.table.qualityMgr.produceStatus")' :show-overflow-tooltip="true">
       	<template slot-scope="{ row }">
-	      	<el-tag v-if="row.testResult == '1'">{{$t("machining.common.testResult.one")}}</el-tag>
-					<el-tag v-if="row.testResult == '0'" type="success">{{$t("machining.common.testResult.two")}}</el-tag>
+          <el-tag v-if="row.produceStatus == '0'" type="warning">{{$t("runCenter.common.produceStatus.panse")}}</el-tag>
+          <el-tag v-if="row.produceStatus == '1'" type="info">{{$t("runCenter.common.produceStatus.noStart")}}</el-tag>
+          <el-tag v-if="row.produceStatus == '2'">{{$t("runCenter.common.produceStatus.run")}}</el-tag>
+          <el-tag v-if="row.produceStatus == '3'" type="success">{{$t("runCenter.common.produceStatus.finished")}}</el-tag>
 				</template>
       </el-table-column>
       <!-- 产品数量 -->
       <el-table-column prop="bomNum" :label='$t("machining.table.qualityMgr.bomNum")' :show-overflow-tooltip="true"></el-table-column>
       <!-- 生产中 -->
-      <el-table-column prop="handleUserName" :label='$t("machining.table.qualityMgr.handleUserName")' :show-overflow-tooltip="true"></el-table-column>
-      <!-- 已完成 -->
-      <el-table-column prop="handleStatus" :label='$t("machining.table.qualityMgr.handleStatus")' align="center" width="90px">
-      	<template slot-scope="{ row }">
-	      	<el-tag v-if="row.handleStatus == '1'">{{$t("machining.common.handleStatus.one")}}</el-tag>
-					<el-tag v-if="row.handleStatus == '2'" type="success">{{$t("machining.common.handleStatus.two")}}</el-tag>
-				</template>
-      </el-table-column>
-      <!-- 不合格产品 -->
-      <el-table-column prop="handleWay" :label='$t("machining.table.qualityMgr.handleWay")' align="center" width="100px">
-      	<template slot-scope="{ row }">
-	      	<el-tag v-if="row.handleWay == '1'">{{$t("machining.common.handleWay.one")}}</el-tag>
-					<el-tag v-if="row.handleWay == '2'" type="success">{{$t("machining.common.handleWay.two")}}</el-tag>
-				</template>
-      </el-table-column>
-      <!-- 合格产品 -->
-      <el-table-column prop="addOrderNo" :label='$t("machining.table.qualityMgr.name9")' :show-overflow-tooltip="true"></el-table-column>
-      <!-- 补单次 -->
-      <el-table-column prop="orderNo" :label='$t("machining.table.qualityMgr.name10")' width="100" :show-overflow-tooltip="true"></el-table-column>
+<!--      <el-table-column prop="completeNum" :label='$t("machining.table.qualityMgr.completeNum")' :show-overflow-tooltip="true"></el-table-column>-->
+
+      <el-table-column prop="unqualifiedCount" :label='$t("machining.table.qualityMgr.unqualifiedCount")' :show-overflow-tooltip="true"></el-table-column>
+      <el-table-column prop="qualifiedCount" :label='$t("machining.table.qualityMgr.qualifiedCount")' :show-overflow-tooltip="true"></el-table-column>
+      <el-table-column prop="addOrderCount" :label='$t("machining.table.qualityMgr.addOrderCount")' :show-overflow-tooltip="true"></el-table-column>
       <!-- 下单日期 -->
-      <el-table-column prop="createTime" :label='$t("machining.table.qualityMgr.name12")' width="150" :show-overflow-tooltip="true"></el-table-column>
-      <!-- 交货日期 -->
-      <el-table-column prop="handleTime" :label='$t("machining.table.qualityMgr.handleTime")' width="180px"></el-table-column>
+      <el-table-column prop="createTime" :label='$t("machining.table.qualityMgr.createTime")' width="150" :show-overflow-tooltip="true"></el-table-column>
       <!-- 操作 -->
       <el-table-column
         :label="$t('table.operation')"
@@ -139,13 +122,6 @@
 	            style="color: #87d068;"
 	            @click="edit(row)"
 	          />
-          </el-tooltip>
-         	<el-tooltip class="item" :content="$t('machining.common.viewPlan')" effect="dark" placement="top-start">
-	          <i
-	            class="el-icon-view table-operation"
-	            style="color: #87d068;"
-	            @click="view(row)"
-	          />
           </el-tooltip>
         </template>
       </el-table-column>
@@ -193,12 +169,12 @@
 	// 【查看】组件
 	import TenantView from "./components/View"
 	// 【不合格产品管理】-API
-	import unqualifiedMgrApi from "@/api/machiningClient/unqualifiedMgr"
+	import unqualifiedMgrApi from "@/api/machiningClient/qualityMgr"
 	// 【弹出框】elementui组件
 	import elDragDialog from '@/directive/el-drag-dialog'
 	// 共通函数
 	import { downloadFile, initEnums, initDicts, initQueryParams } from '@/utils/commons'
-	
+
 	export default {
 	  name: "UnqualifiedMgr",
 	  directives: { elDragDialog },
@@ -278,7 +254,7 @@
       }
 	  },
 	  mounted () {
-	    
+
 	  },
 	  methods: {
 	    viewClose () {
@@ -322,7 +298,7 @@
 	        })
 	        return
 	      }
-	
+
 	      this.$confirm(this.$t("lineSide.tips.wareTips"), this.$t("common.tips"), {
 	      	distinguishCancelAndClose: true,
 	        confirmButtonText: this.$t("common.confirm"),
@@ -387,7 +363,7 @@
 	        this.queryParams.map.createTime_st = this.queryParams.timeRange[0]
 	        this.queryParams.map.createTime_ed = this.queryParams.timeRange[1]
 	      }
-	
+
 	      this.queryParams.current = params.current ? params.current : this.queryParams.current
 	      this.queryParams.size = params.size ? params.size : this.queryParams.size
 	      unqualifiedMgrApi.page(this.queryParams).then(response => {
@@ -397,7 +373,7 @@
 	        }
 	        // eslint-disable-next-line no-return-assign
 	      }).finally(() => this.loading = false)
-	     
+
 	    },
 	    cellClick (row, column) {
 	      if (column['columnKey'] === "operation") {
@@ -410,7 +386,7 @@
 	          this.$refs.table.toggleRowSelection(row)
 	        }
 	      })
-	
+
 	      if (!flag) {
 	        this.$refs.table.toggleRowSelection(row, true)
 	      }

+ 122 - 145
imcs-ui/src/views/zuihou/qualityCenter/qualityResult/Index.vue

@@ -1,27 +1,31 @@
 <template>
   <div class="app-container">
-		<!-- 搜索模块 -->
+    <!-- 搜索模块 -->
     <div class="filter-container">
     	<span>
-    		<span>{{$t("machining.table.qualityResult.productCode")}}:</span>
-    		<el-input v-model="queryParams.model.bomNo" :placeholder='$t("common.pleaseEnter")' style="width: 120px;" size="medium"/>
+    		<span>{{$t("machining.searchForm.offset.workpieceName")}}:</span>
+    		<el-input v-model="queryParams.model.workpieceName" :placeholder='$t("common.pleaseEnter")' style="width: 120px;" size="medium"/>
     	</span>
-    	<span style="margin-left: 10px;">
-    		<span>{{$t("machining.table.qualityResult.uniqueCode")}}:</span>
-    		<el-input v-model="queryParams.model.uniqueCode" :placeholder='$t("common.pleaseEnter")' style="width: 120px;" size="medium"/>
-    	</span>
-		<span style="margin-left: 10px;">
-    		<span>{{$t("machining.table.qualityResult.name10")}}:</span>
+      <span style="margin-left: 10px;">
+    		<span>{{$t("machining.searchForm.offset.orderNo")}}:</span>
     		<el-input v-model="queryParams.model.orderNo" :placeholder='$t("common.pleaseEnter")' style="width: 120px;" size="medium"/>
     	</span>
-		<span style="margin-left: 10px;">
-    		<span>{{$t("machining.table.qualityResult.name11")}}:</span>
-    		<el-input v-model="queryParams.model.planNo" :placeholder='$t("common.pleaseEnter")' style="width: 120px;" size="medium"/>
-    	</span>		
-		    	
-    </div>
-    <div class="filter-container">    	
-      <span style="margin-right: 15px;float:right;">
+      <span style="margin-left: 10px;">
+    		<span>{{$t("machining.searchForm.offset.workpieceId")}}:</span>
+    		<el-input v-model="queryParams.model.workpieceId" :placeholder='$t("common.pleaseEnter")' style="width: 120px;" size="medium"/>
+    	</span>
+      <span style="margin-left: 10px;">
+    		<span>{{$t("machining.searchForm.offset.createTime")}}:</span>
+        <!--    		<el-input v-model="queryParams.model.createTime" :placeholder='$t("common.pleaseEnter")' style="width: 120px;" size="medium"/>-->
+        <el-date-picker
+          v-model="queryParams.model.createTime"
+          type="datetime"
+          format="yyyy-MM-dd"
+          value-format="yyyy-MM-dd"
+          style="width: 20%;"
+        />
+    	</span>
+      <span style="margin-left: 10px;">
 	      <el-button plain type="primary" icon="el-icon-search" size="medium" @click="search">
 	        {{ $t("table.search") }}
 	      </el-button>
@@ -30,8 +34,7 @@
 	      </el-button>
       </span>
     </div>
-	
-	<!-- 列表数据 -->
+    <!-- 列表数据 -->
     <el-table
       :key="tableKey"
       ref="table"
@@ -40,38 +43,33 @@
       border
       fit
       row-key="id"
-      style="width: 100%;margin-top:50px;"      
-      @cell-click="cellClick"
+      style="width: 100%;margin-top:50px;"
     >
-	
-	    <!-- 序号 -->
-        <el-table-column align="center" type="selection" width="50" :reserve-selection="true" />
-    	<!-- 序号 -->
-    	<el-table-column :label='$t("common.serialNo")' width="55px" align="center">
-	      <template slot-scope="scope">
-	        <div>
-	          {{scope.$index+(queryParams.current - 1) * queryParams.size + 1}}
-	        </div>
-	      </template>
-      </el-table-column>
-	  
-	  <!-- 产品名称 -->
-      <el-table-column prop="bomName" :label='$t("machining.table.qualityResult.bomName")' :show-overflow-tooltip="true"></el-table-column>
-      <!-- 产品编码 -->
-      <el-table-column prop="bomNo" :label='$t("machining.table.qualityResult.productCode")' :show-overflow-tooltip="true"></el-table-column>
-      <!-- 产品系统唯一码 -->
-      <el-table-column prop="uniqueCode" :label='$t("machining.table.qualityResult.uniqueCode")' width="120" :show-overflow-tooltip="true"></el-table-column>
-      <!-- 质检结果 -->
-      <el-table-column prop="testResult" :label='$t("machining.table.qualityResult.testResult")' :show-overflow-tooltip="true">
-      	<template slot-scope="{ row }">
-	      	<el-tag v-if="row.testResult == '1'">{{$t("machining.common.testResult.one")}}</el-tag>
-			<el-tag v-if="row.testResult == '0'" type="success">{{$t("machining.common.testResult.two")}}</el-tag>
-		</template>
+
+      <!-- 序号 -->
+      <el-table-column align="center" type="selection" width="50" :reserve-selection="true" />
+      <!-- 序号 -->
+      <el-table-column :label='$t("common.serialNo")' width="55px" align="center">
+        <template slot-scope="scope">
+          <div>
+            {{scope.$index+(queryParams.current - 1) * queryParams.size + 1}}
+          </div>
+        </template>
       </el-table-column>
-      <!-- 所属订单号 -->
-      <el-table-column prop="orderNo" :label='$t("machining.table.qualityResult.name10")' width="100" :show-overflow-tooltip="true"></el-table-column>
-	  <!-- 所属计划 -->
-	  <el-table-column prop="planNo" :label='$t("machining.table.qualityResult.name11")' width="100" :show-overflow-tooltip="true"></el-table-column>
+      <!-- 订单编号 -->
+      <el-table-column prop="orderNo" :label='$t("machining.table.qualityResult.orderNo")' :show-overflow-tooltip="true"></el-table-column>
+      <!-- '零件名称 -->
+      <el-table-column prop="workpieceName" :label='$t("machining.table.qualityResult.workpieceName")' :show-overflow-tooltip="true"></el-table-column>
+      <!-- 零件编号 -->
+      <el-table-column prop="uniqueCode" :label='$t("machining.table.qualityResult.uniqueCode")'  :show-overflow-tooltip="true"></el-table-column>
+      <!-- 工序名称 -->
+      <el-table-column prop="procedureName" :label='$t("machining.table.qualityResult.procedureName")' :show-overflow-tooltip="true"></el-table-column>
+      <!-- X -->
+      <el-table-column prop="okFlag" :label='$t("machining.table.qualityResult.okFlag")' :show-overflow-tooltip="true"></el-table-column>
+      <!-- Y -->
+      <el-table-column prop="measuringReport" :label='$t("machining.table.qualityResult.measuringReport")' :show-overflow-tooltip="true"></el-table-column>
+      <!-- 所属计划 -->
+      <el-table-column prop="createTime" :label='$t("machining.table.qualityResult.createTime")' :show-overflow-tooltip="true"></el-table-column>
 
       <!-- 操作 -->
       <el-table-column
@@ -82,12 +80,12 @@
         width="80px"
       >
         <template slot-scope="{ row }">
-        	<el-tooltip class="item" :content="$t('machining.common.downloadReport')" effect="dark" placement="top-start">
-	          <i
-	            class="el-icon-view table-operation"
-	            style="color: #87d068"
-	            @click ="downloadReport(row)" 
-			  />
+          <el-tooltip class="item" :content="$t('machining.common.downloadReport')" effect="dark" placement="top-start">
+            <i
+              class="el-icon-view table-operation"
+              style="color: #87d068"
+              @click ="downloadReport(row)"
+            />
           </el-tooltip>
         </template>
       </el-table-column>
@@ -103,95 +101,74 @@
 </template>
 
 <script>
-	// 【分页】组件
-	import Pagination from "@/components/Pagination"
-	// 【不合格产品管理】-API
-	import qualityResultMgrApi from "@/api/machiningClient/qualityResultMgr"	
-	// 共通函数
-	import { downloadFile, initQueryParams } from '@/utils/commons'
-	
-	export default {
-	  name: "qualityResultMgr",
-	  directives: { },
-	  components: { Pagination },
-	  props: {
-	  },
-	  data () {
-	    return {
-	      tableKey: 0,
-	      queryParams: initQueryParams({
-		    // 'productStatus' : "3"
-		  }),
-	      selection: [],
-	      loading: false,
-	      tableData: {
-	        total: 0
-	      }	      
-	    }
-	  },
-	  // 实例已经在内存中创建好,此时data和methods已将ok,如果要操作data中的数据或是调用methods中的方法,最早只能在created中操作
-	  created() {	  	
-	  	// 加载列表数据
-	  	this.fetch()
-	  },
-	  computed: {
-	    currentUser () {
-	      return this.$store.state.account.user
-	    }
-	  },
-	  mounted () {
-	    
-	  },
-	  methods: {	    
-	    search () {
-	      this.fetch({
-	        ...this.queryParams
-	      })
-	    },
-	    reset () {
-	      this.queryParams = initQueryParams({})
-	      this.$refs.table.clearSort()
-	      this.$refs.table.clearFilter()
-	      this.search()
-	    },
-	    downloadReport (row) {
-	      this.queryParams.id = row.id
-		  //this.queryParams.id = "1111-1111-2021-09-12-10-36-32"
-		  qualityResultMgrApi.download(this.queryParams).then(response => {
-			downloadFile(response)	
-          })
-	    },
-	    fetch (params = {}) {
-	      this.loading = true        
-          //this.queryParams.model.produceStatus = "3" 
-	      this.queryParams.current = params.current ? params.current : this.queryParams.current
-	      this.queryParams.size = params.size ? params.size : this.queryParams.size
-	      qualityResultMgrApi.page(this.queryParams).then(response => {
-	        const res = response.data
-	        if (res.isSuccess) {
-	          this.tableData = res.data
-	        }
-	        // eslint-disable-next-line no-return-assign
-	      }).finally(() => this.loading = false)
-	     
-	    },
-	    cellClick (row, column) {
-	      if (column['columnKey'] === "operation") {
-	        return
-	      }
-	      let flag = false
-	      this.selection.forEach((item) => {
-	        if (item.id === row.id) {
-	          flag = true
-	          this.$refs.table.toggleRowSelection(row)
-	        }
-	      })
-	
-	      if (!flag) {
-	        this.$refs.table.toggleRowSelection(row, true)
-	      }
-	    }
-	  }
-	}
+  // 【分页】组件
+  import Pagination from "@/components/Pagination"
+  // 【不合格产品管理】-API
+  import measuringOffsetMgrApi from "@/api/machiningClient/measuringOffsetMgr"
+  // 共通函数
+  import { downloadFile, initQueryParams } from '@/utils/commons'
+
+  export default {
+    name: "measuringOffsetMgr",
+    directives: { },
+    components: { Pagination },
+    props: {
+    },
+    data () {
+      return {
+        tableKey: 0,
+        queryParams: initQueryParams({
+        }),
+        selection: [],
+        loading: false,
+        tableData: {
+          total: 0
+        }
+      }
+    },
+    // 实例已经在内存中创建好,此时data和methods已将ok,如果要操作data中的数据或是调用methods中的方法,最早只能在created中操作
+    created() {
+      // 加载列表数据
+      this.fetch()
+    },
+    computed: {
+      currentUser () {
+        return this.$store.state.account.user
+      }
+    },
+    mounted () {
+    },
+    methods: {
+      search () {
+        this.fetch({
+          ...this.queryParams
+        })
+      },
+      reset () {
+        this.queryParams = initQueryParams({})
+        this.$refs.table.clearSort()
+        this.$refs.table.clearFilter()
+        this.search()
+      },
+      downloadReport (row) {
+        this.queryParams.id = row.workpieceId
+        measuringOffsetMgrApi.download(this.queryParams).then(response => {
+          downloadFile(response)
+        })
+      },
+      fetch (params = {}) {
+        this.loading = true
+        this.queryParams.current = params.current ? params.current : this.queryParams.current
+        this.queryParams.size = params.size ? params.size : this.queryParams.size
+        console.log(this.queryParams.model.workpieceName)
+        measuringOffsetMgrApi.getList(this.queryParams).then(response => {
+          const res = response.data
+          if (res.isSuccess) {
+            this.tableData = res.data
+          }
+        }).finally(() => this.loading = false)
+      }
+    }
+  }
 </script>
 <style lang="scss" scoped></style>

+ 23 - 22
imcs-ui/src/views/zuihou/qualityCenter/unqualifiedMgr/Index.vue

@@ -26,7 +26,7 @@
 	      </el-button>
       </span>
     </div>
-    
+
     <!-- 功能按钮 -->
     <el-row class="filter-container">
     	<el-col>
@@ -71,19 +71,21 @@
       <el-table-column prop="uniqueCode" :label='$t("machining.table.unQuality.uniqueCode")' width="100" :show-overflow-tooltip="true"></el-table-column>
       <!-- 所属订单号 -->
       <el-table-column prop="orderNo" :label='$t("machining.table.unQuality.name10")' width="100" :show-overflow-tooltip="true"></el-table-column>
-      <!-- 所属计划 -->
-      <el-table-column prop="planNo" :label='$t("machining.table.unQuality.name11")' :show-overflow-tooltip="true"></el-table-column>
+      <!-- 生成单据时间 -->
+      <el-table-column prop="createTime" :label='$t("machining.table.unQuality.name12")' width="150" :show-overflow-tooltip="true"></el-table-column>
+      <!-- 所属计划
+      <el-table-column prop="planNo" :label='$t("machining.table.unQuality.name11")' :show-overflow-tooltip="true"></el-table-column>-->
       <!-- 质检结果 -->
-      <el-table-column prop="testResult" :label='$t("machining.table.unQuality.testResult")' :show-overflow-tooltip="true">
-      	<template slot-scope="{ row }">
-	      	<el-tag v-if="row.testResult == '1'">{{$t("machining.common.testResult.one")}}</el-tag>
-					<el-tag v-if="row.testResult == '0'" type="success">{{$t("machining.common.testResult.two")}}</el-tag>
-				</template>
-      </el-table-column>
-      <!-- 数量 -->
-      <el-table-column prop="bomNum" :label='$t("machining.table.unQuality.bomNum")' :show-overflow-tooltip="true"></el-table-column>
-      <!-- 质检人 -->
-      <el-table-column prop="handleUserName" :label='$t("machining.table.unQuality.handleUserName")' :show-overflow-tooltip="true"></el-table-column>
+<!--      <el-table-column prop="testResult" :label='$t("machining.table.unQuality.testResult")' :show-overflow-tooltip="true">-->
+<!--      	<template slot-scope="{ row }">-->
+<!--	      	<el-tag v-if="row.testResult == '1'">{{$t("machining.common.testResult.one")}}</el-tag>-->
+<!--					<el-tag v-if="row.testResult == '0'" type="success">{{$t("machining.common.testResult.two")}}</el-tag>-->
+<!--				</template>-->
+<!--      </el-table-column>-->
+<!--      &lt;!&ndash; 数量 &ndash;&gt;-->
+<!--      <el-table-column prop="bomNum" :label='$t("machining.table.unQuality.bomNum")' :show-overflow-tooltip="true"></el-table-column>-->
+<!--      &lt;!&ndash; 质检人 &ndash;&gt;-->
+<!--      <el-table-column prop="handleUserName" :label='$t("machining.table.unQuality.handleUserName")' :show-overflow-tooltip="true"></el-table-column>-->
       <!-- 处理状态 -->
       <el-table-column prop="handleStatus" :label='$t("machining.table.unQuality.handleStatus")' align="center" width="90px">
       	<template slot-scope="{ row }">
@@ -100,10 +102,9 @@
       </el-table-column>
       <!-- 补单单号 -->
       <el-table-column prop="addOrderNo" :label='$t("machining.table.unQuality.name9")' :show-overflow-tooltip="true"></el-table-column>
-      <!-- 生成单据时间 -->
-      <el-table-column prop="createTime" :label='$t("machining.table.unQuality.name12")' width="150" :show-overflow-tooltip="true"></el-table-column>
+
       <!-- 生成人 -->
-      <el-table-column prop="createUserName" :label='$t("machining.table.unQuality.createUserName")' :show-overflow-tooltip="true"></el-table-column>
+<!--      <el-table-column prop="createUserName" :label='$t("machining.table.unQuality.createUserName")' :show-overflow-tooltip="true"></el-table-column>-->
       <!-- 处理时间 -->
       <el-table-column prop="handleTime" :label='$t("machining.table.unQuality.handleTime")' width="180px"></el-table-column>
       <!-- 处理人 -->
@@ -189,7 +190,7 @@
 	import elDragDialog from '@/directive/el-drag-dialog'
 	// 共通函数
 	import { downloadFile, initEnums, initDicts, initQueryParams } from '@/utils/commons'
-	
+
 	export default {
 	  name: "UnqualifiedMgr",
 	  directives: { elDragDialog },
@@ -242,7 +243,7 @@
       }
 	  },
 	  mounted () {
-	    
+
 	  },
 	  methods: {
 	    viewClose () {
@@ -286,7 +287,7 @@
 	        })
 	        return
 	      }
-	
+
 	      this.$confirm(this.$t("lineSide.tips.wareTips"), this.$t("common.tips"), {
 	      	distinguishCancelAndClose: true,
 	        confirmButtonText: this.$t("common.confirm"),
@@ -351,7 +352,7 @@
 	        this.queryParams.map.createTime_st = this.queryParams.timeRange[0]
 	        this.queryParams.map.createTime_ed = this.queryParams.timeRange[1]
 	      }
-	
+
 	      this.queryParams.current = params.current ? params.current : this.queryParams.current
 	      this.queryParams.size = params.size ? params.size : this.queryParams.size
 	      unqualifiedMgrApi.page(this.queryParams).then(response => {
@@ -361,7 +362,7 @@
 	        }
 	        // eslint-disable-next-line no-return-assign
 	      }).finally(() => this.loading = false)
-	     
+
 	    },
 	    cellClick (row, column) {
 	      if (column['columnKey'] === "operation") {
@@ -374,7 +375,7 @@
 	          this.$refs.table.toggleRowSelection(row)
 	        }
 	      })
-	
+
 	      if (!flag) {
 	        this.$refs.table.toggleRowSelection(row, true)
 	      }