Kaynağa Gözat

前端页面功能处理

oyq28 7 ay önce
ebeveyn
işleme
def60e3daf

+ 10 - 0
imcs-ui/src/api/Dispatch.js

@@ -24,6 +24,10 @@ const apiList = {
   preview: {
     method: 'POST',
     url: `/authority/dispatch/preview`
+  },
+  selectLogs: {
+    method: 'POST',
+    url: `/authority/dispatchRecord/selectLogs`
   }
 }
 
@@ -57,5 +61,11 @@ export default {
       ...apiList.delete,
       data
     })
+  },
+  selectLogs(data){
+    return axiosApi({
+      ...apiList.selectLogs,
+      data
+    })
   }
 }

+ 4 - 4
imcs-ui/src/api/systemMgr/toolbar.js

@@ -45,9 +45,9 @@ const apiList = {
     method: 'POST',
     url: `/authority/toolbar/manualTask`
   },
-  manualXbk: {
+  addOrderTask: {
     method: 'POST',
-    url: `/authority/toolbar/manualXbk`
+    url: `/authority/toolbar/addOrderTask`
   },
   addNodeMsg: {
     method: 'POST',
@@ -126,9 +126,9 @@ export default {
       data
     })
   },
-  manualXbk (data) {
+  addOrderTask (data) {
     return axiosApi({
-      ...apiList.manualXbk,
+      ...apiList.addOrderTask,
       data
     })
   },

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

@@ -30,7 +30,8 @@ export default {
 				four: '出库',
 				five: '任务号出库',
 				six: '锁定',
-				serven: '解锁'
+				serven: '解锁',
+				eight: '批量出库'
 			}
 		},
 		// 列表搜索表单名称

+ 592 - 0
imcs-ui/src/views/zuihou/dispatchMgr/productLineInfo/Index.vue

@@ -0,0 +1,592 @@
+<template>
+  <div class="app-container space">
+    <el-row :gutter="12">
+      <el-col :span="24">
+        <el-card shadow="always">
+          <div slot="header" class="clearfix">
+            <span>产线运行记录</span>
+
+            <el-radio v-model="exeStatus" label="1">全部</el-radio>
+				    <el-radio v-model="exeStatus" label="2">执行中</el-radio>
+            <el-radio v-model="exeStatus" label="4">暂停中</el-radio>
+
+           <span>批次号</span>
+              <el-input
+              v-model="queryParams.model.completeBatchNo"
+              :placeholder="$t('common.pleaseEnter')"
+              style="width: 250px"
+              size="large"
+            />
+
+            <el-button type="primary" size="mini" @click="getLog()">查询</el-button>
+          </div>
+          <!-- 列表数据 -->
+          <el-table
+            ref="table"
+            v-loading="loading"
+            :data="tableData.records"
+            border
+            fit
+            row-key="id"
+            style="width: 100%;"
+          >
+            <el-table-column prop="orderName" label='订单名称'  width="160px" show-overflow-tooltip> </el-table-column>
+            <el-table-column prop="completeBatchNo" label='同一零件批次'  width="140px"  show-overflow-tooltip> </el-table-column>
+            <el-table-column prop="uniqueCode" label='零件编码'  width="140px"  show-overflow-tooltip> </el-table-column>
+            <el-table-column prop="taskNodeName" label='任务名称'  width="180px"> </el-table-column>
+            <el-table-column prop="startStorge" label='开始点位'  width="180px"> </el-table-column>
+            <el-table-column prop="endStorge" label='结束点位' width="180px"></el-table-column>
+            <el-table-column prop="executeTime" label='执行时间' width="160px"></el-table-column>
+            <el-table-column prop="exeStatus" label='执行状态' width="80px">
+              <template slot-scope="{ row }">
+                <el-tag v-if="row.exeStatus == '1'" type="info">待执行</el-tag>
+                <el-tag v-if="row.exeStatus == '2'" type="primary">执行中</el-tag>
+                <el-tag v-if="row.exeStatus == '3'" type="success">已完成</el-tag>
+                <el-tag v-if="row.exeStatus == '4'" type="warning">暂停中</el-tag>
+              </template>
+            </el-table-column>
+            <el-table-column prop="sendStatus" label='是否下发' width="80px">
+              <template slot-scope="{ row }">
+                <el-tag v-if="row.sendStatus == '0'" type="info">未下发</el-tag>
+                <el-tag v-if="row.sendStatus == '1'"  type="primary">已下发</el-tag>
+                <el-tag v-if="row.sendStatus == '2'" type="success">已返回</el-tag>
+              </template>
+            </el-table-column>
+            <el-table-column prop="exeResult" label='执行结果' width="80px">
+              <template slot-scope="{ row }">
+                <el-tag v-if="row.exeResult == '1'" type="success">成功</el-tag>
+                <el-tag v-if="row.exeResult == '0'" type="danger">失败</el-tag>
+              </template>
+            </el-table-column>
+            <el-table-column prop="feedback" label='运行时信息' width="160px" show-tooltip-when-overflow></el-table-column>
+            <el-table-column prop="callBack" label='回调信息' width="160px" show-overflow-tooltip >
+              <template slot-scope="{ row }">
+                <el-tag v-if="row.sendStatus == '1'" type="info">{{ row.feedback }}}</el-tag>
+              </template>  
+            </el-table-column>
+          <el-table-column 
+              :label="$t('table.operation')"
+              fixed="right"
+              align="center"
+              column-key="operation"
+              width="300px">
+              <template slot-scope="{ row }">
+                <el-button v-if="(row.taskNodeName ==='人工上料' || row.taskNodeName ==='人工下料') && row.exeStatus === '2' && row.sendStatus == 0" size="mini" type="info" >需要人工操作物料</el-button>
+                <!--<el-button v-if="row.taskNodeName !='人工上料' && row.taskNodeName !='人工下料' && row.exeStatus === '2' && row.sendStatus == 0" size="mini" type="danger" @click="resendCommand(row)">指令重发</el-button>-->
+                <!--<el-button v-if="(row.exeStatus === '2' && row.sendStatus == 1 && row.exeResult != 1)  || (row.exeStatus === '2' && row.sendStatus == 2 && row.exeResult != 1)" type="warning" size="mini"  @click="taskNodeCallback(row)">模拟回调</el-button>-->
+                <el-button v-if="row.exeStatus === '2' && row.exeResult!='1' && row.taskNodeName.indexOf('人工')<0 && row.orderName.indexOf('orderTask')<0 " type="warning" size="mini"  @click="suspend(row)">节点暂停</el-button> 
+                <el-button v-if="row.exeStatus === '4' && row.taskNodeName.indexOf('人工')<0 && row.orderName.indexOf('orderTask')<0 " type="warning" size="mini"  @click="manualTask(row)">异常处理</el-button>  
+                   
+                <el-tooltip
+                  class="item"
+                  content="解锁库位"
+                  effect="dark"
+                  placement="top-start"
+                  v-if="row.exeStatus === '4' && row.lockStatus === '0'" 
+                >
+                  
+                  <i
+                    class="el-icon-unlock table-operation"
+                    style="color: #2db7f5"
+                    @click="unlock(row)"
+                  />
+                </el-tooltip>
+                <el-tooltip
+                  class="item"
+                  content="执行下一个节点"
+                  effect="dark"
+                  placement="top-start"
+                  v-if="row.exeStatus === '6'"
+                >
+                  <i
+                    class="el-icon-caret-bottom table-operation"
+                    style="color: #2db7f5"
+                    @click="executeNextNode(row)"
+                  />
+                </el-tooltip>
+              </template>
+            </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-card>
+      </el-col>      
+    </el-row>
+
+    <el-dialog
+      title="提示"
+      :visible.sync="dialogVisible"
+      width="30%"
+      :before-close="handleClose">
+      <el-button @click="dialogVisible = false">取 消</el-button>
+      <el-button type="primary" @click="unlockStorge(0)">解除库位锁</el-button>
+      <el-button v-if="false" type="primary" @click="unlockStorge(1)">解除库位锁并移库</el-button>
+    </el-dialog>
+    <el-dialog
+      title="节点信息"
+      :visible.sync="visible"
+      width="60%">
+      <el-table
+        ref="table"
+        :data="taskNodeList"
+        border
+        fit
+        row-key="id"
+        style="width: 100%;"
+      >
+        <el-table-column prop="orderName" label='订单名称'  width="120px"> </el-table-column>
+        <el-table-column prop="bomName" label='零件名称'  width="120px"> </el-table-column>
+        <el-table-column prop="nodeName" label='节点名称'  width="160px"> </el-table-column>
+        <el-table-column prop="exeStatus" label='执行状态' width="100px">          
+          <template slot-scope="{ row }">            
+            <el-tag v-if="row.exeStatus == '1'" type="info">待执行</el-tag>
+            <el-tag v-if="row.exeSta=='2'" type="success">执行中</el-tag>
+            <el-tag v-if="row.exeStatus == '3'" type="success">已完成</el-tag>
+            <el-tag v-if="row.exeStatus == '4'" type="warning">暂停中</el-tag>            
+          </template>
+        </el-table-column>
+        <el-table-column prop="exeResult" label='执行结果' width="100px">
+          <template slot-scope="{ row }">
+            <el-tag v-if="row.exeResult == '1'" >成功</el-tag>
+            <el-tag v-if="row.exeResult == '0'" >失败</el-tag>
+          </template>
+        </el-table-column>
+        <el-table-column prop="startTime" label='开始时间' width="160px"></el-table-column>
+        <el-table-column prop="endTime" label='结束时间' width="160px"></el-table-column>
+        <el-table-column prop="targetResourceName" label='目标设备' width="120px"></el-table-column>
+        <el-table-column prop="resourceName" label='操作设备' width="120px"></el-table-column>
+      </el-table>
+    </el-dialog>
+  </div>
+</template>
+<script>
+import dispatchMgrApi from "@/api/Dispatch";
+import Pagination from "@/components/Pagination/index.vue";
+import {initQueryParams} from "@/utils/commons";
+import toolbarApi from "@/api/systemMgr/toolbar";
+export default {
+  name: "productLineInfo",
+  components: {Pagination},
+  data() {
+    return{
+      list: {},
+      plcInfo: {},
+      pcInfo: {},
+      point: '',
+      loading: false,
+      tableData: {
+        total: 0
+      },
+      queryParams: initQueryParams({}),
+      dialogVisible: false,
+      id: '',
+      exeStatus:'1',
+      lock:{},
+      visible: false,
+      taskNodeList: []
+    }
+  },
+  created() {
+    this.fetch();
+
+  },
+  methods: {
+    executeNextNode(row){
+      this.loading = true;
+      this.$confirm("是否确认跳过当前节点执行下一个节点【如需移库,必须先完成移库】", this.$t('common.tips'), {
+        confirmButtonText: this.$t('common.confirm'),
+        cancelButtonText: this.$t('common.cancel'),
+        type: 'warning'
+      }).then(() => {
+        //查询PLC点位信息
+        dispatchMgrApi.executeNextNode(row.id).then((response)=>{
+          const res = response.data;
+          this.loading = false;
+          if(res.isSuccess){
+            this.$message({
+              message:'执行成功',
+              type: "success"
+            });
+            this.getLog();
+          }else{
+            this.$message({
+              message:'执行失败:' + res.msg,
+              type: "error"
+            });
+          }
+        }).catch(e=>{
+          this.loading = false;
+          this.$message({
+            message:'执行失败:' + e.message,
+            type: "error"
+          });
+        })
+      }).catch(() => {
+        this.loading = false;
+        this.$message.info("已取消")
+      })
+    },
+    cancelTaskNodeLog(row){
+      this.loading = true;
+      this.$confirm("是否确认取消", this.$t('common.tips'), {
+        confirmButtonText: this.$t('common.confirm'),
+        cancelButtonText: this.$t('common.cancel'),
+        type: 'warning'
+      }).then(() => {
+        //查询PLC点位信息
+        dispatchMgrApi.cancelTaskNodeLog(row.id).then((response)=>{
+          const res = response.data;
+          this.loading = false;
+          if(res.isSuccess){
+            this.$message({
+              message:'取消指令成功',
+              type: "success"
+            });
+            this.getLog();
+          }else{
+            this.$message({
+              message:'取消指令失败:' + res.msg,
+              type: "error"
+            });
+          }
+        }).catch(e=>{
+          this.loading = false;
+          this.$message({
+            message:'取消指令失败:' + e.message,
+            type: "error"
+          });
+        }).finally(() => this.getLog())
+      }).catch(() => {
+        this.loading = false;
+        this.$message.info("已取消")
+      })
+    },
+    suspend(row){
+      var params = {}
+      params.taskId = row.taskId
+      params.taskNodeId = row.taskNodeId
+      params.status = '4'
+
+      this.loading = true;
+      this.$confirm("是否确认暂停节点", this.$t('common.tips'), {
+        confirmButtonText: this.$t('common.confirm'),
+        cancelButtonText: this.$t('common.cancel'),
+        type: 'warning'
+      }).then(() => {
+        //模拟回调接口
+        toolbarApi.updateBizStatus(params).then((response)=>{
+          const res = response.data;
+          this.loading = false;
+          console.log(response)
+          if(res.isSuccess){
+            // 延迟两秒执行查询功能,因为模拟回调后,下一个任务会进入mq进行执行,所以执行数据会出现几毫秒的延迟,如果立马刷新,会导致数据查询不到
+            setTimeout(() => {
+              this.$message({
+              message:'暂停节点成功',
+              type: "success"
+            });
+              this.getLog();
+            }, 2000);
+          }else{
+            this.getLog();
+            this.$message({
+              message:'暂停节点失败:' + res.msg,
+              type: "error"
+            });
+          }
+        }).catch(e=>{
+          this.loading = false;
+          this.getLog();
+          this.$message({
+            message:'错误:' + e.message,
+            type: "error"
+          });
+        })
+      }).catch(() => {
+        this.loading = false;
+        this.$message.info("已取消")
+      })
+
+    },
+    manualTask(row){
+      var params = {}
+      params.completeBatchNo = row.completeBatchNo
+
+      this.loading = true;
+      this.$confirm("是否确认手动异常处理", this.$t('common.tips'), {
+        confirmButtonText: this.$t('common.confirm'),
+        cancelButtonText: this.$t('common.cancel'),
+        type: 'warning'
+      }).then(() => {
+        //模拟回调接口
+        toolbarApi.manualTask(params).then((response)=>{
+          const res = response.data;
+          this.loading = false;
+          console.log(response)
+          if(res.isSuccess){
+            // 延迟两秒执行查询功能,因为模拟回调后,下一个任务会进入mq进行执行,所以执行数据会出现几毫秒的延迟,如果立马刷新,会导致数据查询不到
+            setTimeout(() => {
+              this.$message({
+              message:'异常处理成功',
+              type: "success"
+            });
+              this.getLog();
+            }, 2000);
+          }else{
+            this.getLog();
+            this.$message({
+              message:'异常处理失败:' + res.msg,
+              type: "error"
+            });
+          }
+        }).catch(e=>{
+          this.loading = false;
+          this.getLog();
+          this.$message({
+            message:'错误:' + e.message,
+            type: "error"
+          });
+        })
+      }).catch(() => {
+        this.loading = false;
+        this.$message.info("已取消")
+      })
+
+    },
+    // 模拟ccs 设备回调
+    taskNodeCallback(row){
+      var params = {}
+      params.code = '1'
+      params.taskId = row.taskId
+      params.taskNodeId = row.taskNodeId
+
+      this.loading = true;
+      this.$confirm("是否确认模拟回调", this.$t('common.tips'), {
+        confirmButtonText: this.$t('common.confirm'),
+        cancelButtonText: this.$t('common.cancel'),
+        type: 'warning'
+      }).then(() => {
+        //模拟回调接口
+        dispatchMgrApi.taskNodeCallback(params).then((response)=>{
+          const res = response.data;
+          this.loading = false;
+          console.log(response)
+          if(res.isSuccess){
+            // 延迟两秒执行查询功能,因为模拟回调后,下一个任务会进入mq进行执行,所以执行数据会出现几毫秒的延迟,如果立马刷新,会导致数据查询不到
+            setTimeout(() => {
+              this.$message({
+              message:'模拟回调成功',
+              type: "success"
+            });
+              this.getLog();
+            }, 2000);
+          }else{
+            this.getLog();
+            this.$message({
+              message:'模拟回调失败:' + res.msg,
+              type: "error"
+            });
+          }
+        }).catch(e=>{
+          this.loading = false;
+          this.getLog();
+          this.$message({
+            message:'错误:' + e.message,
+            type: "error"
+          });
+        })
+      }).catch(() => {
+        this.loading = false;
+        this.$message.info("已取消")
+      })
+    },
+    unlock(row){
+      this.lock.taskId = row.taskId
+      this.lock.taskNodeId = row.taskNodeId
+      this.dialogVisible = true
+    },
+    unlockStorge(moveFlag){
+      this.loading = true;
+      this.$confirm("是否确认执行此操作", this.$t('common.tips'), {
+        confirmButtonText: this.$t('common.confirm'),
+        cancelButtonText: this.$t('common.cancel'),
+        type: 'warning'
+      }).then(() => {
+        //查询PLC点位信息
+        toolbarApi.freeLock(this.lock).then((response)=>{
+          const res = response.data;
+          this.loading = false;
+          this.id = ''
+          this.dialogVisible = false
+          if(res.isSuccess){
+            this.$message({
+              message:'取消指令成功',
+              type: "success"
+            });
+            this.getLog();
+          }else{
+            this.$message({
+              message:'取消指令失败:' + res.msg,
+              type: "error"
+            });
+          }
+
+        }).catch(e=>{
+          this.loading = false;
+          this.dialogVisible = false
+          this.id = ''
+          this.$message({
+            message:'取消指令失败:' + e.message,
+            type: "error"
+          });
+        })
+      }).catch(() => {
+        this.loading = false;
+        this.$message.info("已取消")
+      })
+    },
+    handleClose(){
+      this.id = '';
+      this.dialogVisible = false
+
+    },
+    fetch(){
+      //查询日志
+      this.getLog();
+      //查询PLC点位信息
+      //this.getPlcInfo();
+    },
+    //指令重发
+    resendCommand(row){
+      this.loading = true;
+      this.$confirm("重发指令前请确认好准备工作,如已准备好,点击确认按钮", this.$t('common.tips'), {
+        confirmButtonText: this.$t('common.confirm'),
+        cancelButtonText: this.$t('common.cancel'),
+        type: 'warning'
+      }).then(() => {
+        //查询PLC点位信息
+        dispatchMgrApi.resendCommand(row.id).then((response)=>{
+          const res = response.data;
+          this.loading = false;
+          if(res.isSuccess){
+            this.$message({
+              message:'指令重发成功',
+              type: "success"
+            });
+          }else{
+            this.$message({
+              message:'指令重发失败:' + res.msg,
+              type: "error"
+            });
+          }
+        }).catch(e=>{
+          this.loading = false;
+          this.$message({
+            message:'指令重发失败:' + e.message,
+            type: "error"
+          });
+        })
+      }).catch(() => {
+        this.loading = false;
+        this.$message.info("已取消")
+      })
+
+    },
+    getLog(params = {}){
+      this.loading = true
+      this.queryParams.current = params.current ? params.current : this.queryParams.current
+      this.queryParams.size = params.size ? params.size : this.queryParams.size
+      this.queryParams.model.exeStatus = this.exeStatus=='1'? '' : this.exeStatus
+      dispatchMgrApi.selectLogs(this.queryParams).then((response) => {
+        const res = response.data;
+        this.loading = false
+        if(res.isSuccess){
+          this.tableData = res.data
+        }else{
+          this.$message({
+            message:'查询失败',
+            type: "error"
+          });
+        }
+      })
+    },
+    getPlcInfo(){
+      //查询PLC点位信息      
+      dispatchMgrApi.getPointInfo().then((response)=>{
+        const res = response.data;
+        if(res.isSuccess){
+          this.pcInfo = res.data['pcToPlcMap'];
+          this.plcInfo = res.data['plcToPcMap']
+          this.$message({
+            message:'成功',
+            type: "success"
+          });
+        }
+      }).catch(e=>{
+        this.$message({
+          message:'查询失败' + e.message,
+          type: "error"
+        });
+      })
+    },
+    clearAll(){
+      //一键清零
+      this.clearPlcPoint('1');
+    },
+    clearOne(){
+      if(!this.point){
+        this.$message.error("请输入要清零的地址")
+        return;
+      }
+      //单点清零
+      this.clearPlcPoint('2');
+    },
+    clearPlcPoint(flag){
+      this.$confirm('确认清除PLC地址位数据嘛?请谨慎考虑', this.$t("common.tips"), {
+        confirmButtonText: this.$t("common.confirm"),
+        cancelButtonText: this.$t("common.cancel"),
+        type: "warning"
+      }).then(() => {
+        //清除PLC点位
+        dispatchMgrApi.clearPlcPoint(this.point,flag).then((response)=>{
+          const res = response.data;
+          if(res.isSuccess){
+            this.$message({
+              message:'成功',
+              type: "success"
+            });
+            this.getPlcInfo();
+          }else{
+            this.$message({
+              message:'清除失败' + res.msg,
+              type: "error"
+            });
+          }
+        }).catch(e=>{
+          this.$message({
+            message:'清除失败' + e.message,
+            type: "error"
+          });
+        })
+      }).catch(() => {
+
+      })
+    }
+  }
+}
+</script>
+<style lang="scss" scoped>
+.card_content {
+  padding: 8px;
+  width: 100%;
+  text-align: left;
+}
+.el-form-item {
+  margin-bottom: 0;
+}
+</style>

+ 60 - 42
imcs-ui/src/views/zuihou/dispatchMgr/tools/Index.vue

@@ -47,7 +47,7 @@
 	  </el-form>
 	</el-card>
 
-	<el-card class="box-card">
+	<el-card class="box-card"  v-if="false">
         <div slot="header" class="clearfix">读取RFID数据</div>
 		<el-form ref="form2" :model="form2" :rules="rules2" label-width="80px">
 			<el-row :gutter="12" >
@@ -159,24 +159,20 @@
 	  </el-form>
 	</el-card>
 
-	<!--
 	<el-card class="box-card">
-        <div slot="header" class="clearfix">动态移动零件(产线内)</div>
-		<el-form ref="form7" :model="form7" :rules="rules5" label-width="80px">
-			<el-row :gutter="12" >
-				<el-col :xs="6" :sm="5">
-					<el-select v-model="form7.zoneId" placeholder="选择产线">
-						<el-option v-for="deviceUnit in lineList " :label="deviceUnit.name" :value="deviceUnit.id" :key="deviceUnit.id" ></el-option>		
-			  		</el-select>
-				</el-col>
-				<el-col :xs="6" :sm="5">					
-					<el-form-item label="起始位:" prop="start">                    	
-						<el-input-number v-model="form7.startpointId" :min="1" ></el-input-number>
+        <div slot="header" class="clearfix">零件异常流程处理</div>
+		<el-form ref="form7" :model="form7" :rules="rules5" label-width="120px">
+			<el-row :gutter="12" >				
+				<el-col :xs="6" :sm="8">					
+					<el-form-item label="零件批次号:" prop="completeBatchNo">
+                		<el-input v-model="form7.completeBatchNo" placeholder="零件批次号"></el-input>
 					</el-form-item>
-				</el-col>
+				</el-col>				
 				<el-col :xs="6" :sm="5">					
-					<el-form-item label="目的位:" prop="goal">                    	
-						<el-input-number v-model="form7.endpointId" :min="1" ></el-input-number>
+					<el-form-item label="目的位:" prop="goal">
+						<el-tooltip content="例如:KT_130" placement="top">
+                    		<el-input  v-model="form7.goal" placeholder="目的库位"></el-input>
+						</el-tooltip>
 					</el-form-item>
 				</el-col>							
 			</el-row>
@@ -187,25 +183,30 @@
 	</el-card>
 
 	<el-card class="box-card">
-        <div slot="header" class="clearfix">零件动态入线边库(产线内)</div>
-		<el-form ref="form8" :model="form8" :rules="rules6" label-width="80px">
+        <div slot="header" class="clearfix">创建自定义订单</div>
+		<el-form ref="form8" :model="form8" :rules="rules4" label-width="80px">
 			<el-row :gutter="12" >
-				<el-col :xs="6" :sm="5">					
-					<el-select v-model="form8.zoneId" placeholder="选择产线">
-						<el-option v-for="deviceUnit in lineList " :label="deviceUnit.name" :value="deviceUnit.id" :key="deviceUnit.id" ></el-option>		
-			  		</el-select>
+				<el-col :xs="6" :sm="5">
+					  <el-form-item label="起点:" prop="start">
+						<el-tooltip content="例如:CT_100" placement="top">
+                    		<el-input v-model="form8.start" placeholder="起点"></el-input>
+						</el-tooltip>
+					</el-form-item>
 				</el-col>
 				<el-col :xs="6" :sm="5">
-					<el-form-item label="节点ID:" prop="startpointId">
-                    	<el-input v-model="form8.startpointId" placeholder="起始点位"></el-input>
+					<el-form-item label="终点:" prop="goal">
+						<el-tooltip content="例如:CT_104" placement="top">
+                    		<el-input v-model="form8.goal" placeholder="终点"></el-input>
+						</el-tooltip>
 					</el-form-item>
 				</el-col>				
 			</el-row>
 			<el-form-item>
-    			<el-button type="primary" @click="manualXbk">执行</el-button>    		
+    			<el-button type="primary" @click="addOrderTask">执行</el-button>    		
   			</el-form-item>
 	  </el-form>
-	</el-card> -->
+	</el-card>    
+	
 	<el-card class="box-card">
         <div slot="header" class="clearfix">添加动态消息</div>
 		<el-form ref="form12" :model="form12" :rules="rules9" label-width="80px">
@@ -389,13 +390,12 @@
 			taskId: '',
 		  },
 		  form7:{
-            zoneId: "",
-			startpointId: "",
-			endpointId: "",
+            completeBatchNo: "",
+			goal: "",
 		  },
 		  form8:{
-			zoneId: "",
-			startpointId: ""			
+			start: "",
+			goal: ""			
 		  },
 		  form9:{
             taskNodeId: '',
@@ -459,16 +459,10 @@
         		{ required: true, message: this.$t("rules.require"), trigger: 'blur' }
         	],
       	  },
-		 rules5: {
-        	startpointId: [
-        		{ required: true, message: this.$t("rules.require"), trigger: 'blur' }
-        	],
-			endpointId: [
+		 rules5: {        	
+			completeBatchNo: [
         		{ required: true, message: this.$t("rules.require"), trigger: 'blur' }
-        	],
-			zoneId: [
-        		{ required: true, message: this.$t("rules.require"), trigger: 'blur' }
-        	],
+        	]
       	  },
 		  rules6: {
         	startpointId: [
@@ -732,6 +726,30 @@
 				}				
 			}); 
 		},
+		addOrderTask(){
+            this.$refs.form8.validate((valid) => {
+				if(valid){
+					toolbarApi.addOrderTask(this.form8).then(response=>{
+						const res = response.data
+						if(res.isSuccess){
+							this.$message({
+              					message: this.$t('tips.updateSuccess'),
+              					type: 'success'
+            				})
+						}else{
+							this.$message({
+              					message: res.msg,
+              					type: 'warning'
+            				})
+						}
+					}).finally(()=>{
+					   return true		
+					})					
+				}else{
+					return false
+				}				
+			});
+		},
 		addNodeMsg(){
 			this.$refs.form12.validate((valid) => {
 				if(valid){
@@ -807,8 +825,8 @@
 		manualTask(){			
 			this.$refs.form7.validate((valid) => {
 				if(valid){
-					this.form7.startpointId = this.form7.startpointId.toString()
-					this.form7.endpointId = this.form7.endpointId.toString()
+					this.form7.completeBatchNo = this.form7.completeBatchNo.toString()
+					this.form7.goal = this.form7.goal.toString()
 					toolbarApi.manualTask(this.form7).then(response=>{
 						const res = response.data
 						if(res.isSuccess){

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

@@ -86,6 +86,7 @@
 					<el-tag v-if="row.optType == '5'" type="">{{$t("lineSide.common.optType.five")}}</el-tag>
 					<el-tag v-if="row.optType == '6'" type="">{{$t("lineSide.common.optType.six")}}</el-tag>
 					<el-tag v-if="row.optType == '7'" type="">{{$t("lineSide.common.optType.serven")}}</el-tag>
+					<el-tag v-if="row.optType == '8'" type="">{{$t("lineSide.common.optType.eight")}}</el-tag>
 				</template>
       </el-table-column>
 	  <!-- 工装类型 -->
@@ -94,7 +95,9 @@
       		<el-tag v-if="row.goodsType == '1'" type="success">工装子盘</el-tag>
 	      	<el-tag v-if="row.goodsType == '2'" type="success">工装夹具</el-tag>
 			<el-tag v-if="row.goodsType == '3'" type="success">原材料</el-tag>
-			<el-tag v-if="row.goodsType == '4'" type="">零件产品</el-tag>					
+			<el-tag v-if="row.goodsType == '4'" type="">零件产品</el-tag>
+			<el-tag v-if="row.goodsType == '1,2,4'" type="">加工整体</el-tag>
+			<el-tag v-if="row.goodsType == '1,2'" type="">工装整体</el-tag>					
 		</template>
       </el-table-column>
       <!-- 数量 -->

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

@@ -78,8 +78,8 @@
     	</el-row>
 
     	<div slot="footer" class="dialog-footer">
-        <el-button v-if="unFeedingCount>0 || (unFeedingCount==0 && unBaitingCount==1)" type="primary" :disabled="confirmDisabled" @click="submitForm">{{ $t('machining.buttons.finished') }}</el-button>
-	      <el-button v-if="unFeedingCount==0 && unBaitingCount>0" type="primary" :disabled="confirmDisabled" @click="storageForm">{{ $t('machining.buttons.inFinished') }}</el-button>
+        <el-button type="primary" :disabled="confirmDisabled" @click="submitForm">{{ $t('machining.buttons.finished') }}</el-button>
+	      <el-button type="primary" :disabled="confirmDisabled" @click="storageForm">{{ $t('machining.buttons.inFinished') }}</el-button>
 	    </div>
     </div>
   </el-dialog>