From 8e49faa42ff419efa0641478702ce7d5f8455bd9 Mon Sep 17 00:00:00 2001
From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com>
Date: 星期三, 30 七月 2025 20:47:56 +0800
Subject: [PATCH] 1

---
 项目代码/WCS/WIDESEAWCS_Client/src/views/LineComponent.vue |  174 +++++++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 147 insertions(+), 27 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/src/views/LineComponent.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/src/views/LineComponent.vue"
index d377da6..0aebd5a 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/src/views/LineComponent.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/src/views/LineComponent.vue"
@@ -20,7 +20,9 @@
   <div class="line-container">
     <div class="line"></div>
     <!-- <div class="dot" :style="{ right: dotPosition + 'px' }" ref="childDot" @click="mouseClick"></div> -->
-    <div :class="update()" :style="{ transform: `translateX(${StackerCrane.CurrentColumn<33?StackerCrane.CurrentColumn * 30-29:0}px)` }" ref="childDot" @click="mouseClick"></div>
+    <div :class="update()"
+      :style="{ transform: `translateX(${StackerCrane.CurrentColumn < 33 ? StackerCrane.CurrentColumn * 30 - 29 : 0}px)` }"
+      ref="childDot" @click="mouseClick"></div>
   </div>
   <div>
     <el-row style="padding-top: 5px;">
@@ -41,19 +43,17 @@
     </el-row>
   </div>
 
-  <el-dialog v-model="dialogVisible" title="淇℃伅鏌ョ湅" :before-close="handleClose">
-    <el-form ref="$form" :model="StackerCrane" label-position="left" label-width="100px" size="medium">
+  <el-dialog v-model="dialogVisible" title="鍫嗗灈鏈轰俊鎭煡鐪�" :before-close="handleClose">
+    <el-form ref="$form" :model="StackerCrane" label-position="left" label-width="120px" size="medium">
       <el-row :gutter="20" type="flex" justify="start" align="top" tag="div">
         <el-col :span="12" :offset="0" :push="0" :pull="0" tag="div">
           <el-form-item label="璁惧缂栧彿锛�">
-            <!-- <el-input v-model="equipNo"></el-input> -->
             <j-el-description :value="StackerCrane.DeviceName" type="primary" ellipsis></j-el-description>
           </el-form-item>
         </el-col>
         <el-col :span="12" :offset="0" :push="0" :pull="0" tag="div">
           <el-form-item label="璁惧鐘舵��:">
-            <j-el-description :value="StackerCrane.Fault" type="primary"
-              ellipsis></j-el-description>
+            <j-el-description :value="StackerCrane.Fault" type="primary" ellipsis></j-el-description>
           </el-form-item>
         </el-col>
       </el-row>
@@ -69,7 +69,7 @@
           </el-form-item>
         </el-col>
       </el-row>
-      <el-row :gutter="20" type="flex" justify="start" align="top" tag="div">
+      <el-row :gutter="20" type="flex" justify="start" align="top" tag="div" style="margin-bottom: 10px;">
         <el-col :span="12" :offset="0" :push="0" :pull="0" tag="div">
           <el-form-item label="浣滀笟鐘舵��:">
             <j-el-description :value="StackerCrane.Running" type="primary" ellipsis></j-el-description>
@@ -81,6 +81,64 @@
               :value="StackerCrane.CurrentRow + '-' + StackerCrane.CurrentColumn + '-' + StackerCrane.CurrentLayer"
               type="primary" ellipsis></j-el-description>
           </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row :gutter="20" type="flex" justify="start" align="top" tag="div" style="margin-bottom: 10px;">
+        <el-col :span="24" :offset="0" :push="0" :pull="0" tag="div">
+          <el-form-item label="鎶ヨ淇℃伅:">
+            <j-el-description :value="StackerCrane.StackerAlarm" type="primary" ellipsis></j-el-description>
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-divider />
+      <h4 style="margin-bottom: 50px;">鎵嬪姩鎿嶄綔</h4>
+      <el-form ref="form" :model="form" label-width="90px">
+        <el-row :gutter="20" type="flex" justify="start" align="top" tag="div">
+          <el-col :span="16" :offset="0" :push="0" :pull="0" tag="div">
+            <el-form-item label="浠诲姟鍛戒护"  prop="TargetAddress">
+              <el-select size="large" v-model="form.TaskType" placeholder="璇烽�夋嫨浠诲姟鍛戒护">
+                <el-option label="鍏ュ簱" value="17" />
+                <el-option label="鍑哄簱" value="18" />
+                <el-option label="绉诲簱" value="20" />
+                <el-option label="鍙栬揣" value="24" />
+                <el-option label="鏀捐揣" value="48" />
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="20" type="flex" justify="start" align="top" tag="div">
+          <el-col :span="16" :offset="0" :push="0" :pull="0" tag="div">
+            <el-form-item label="璧风偣琛屽垪灞�:">
+              <el-input size="large" v-model="form.SourceAddress" style="width: 800px" placeholder="璇疯緭鍏ヨ捣鐐硅鍒楀眰" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="20" type="flex" justify="start" align="top" tag="div">
+          <el-col :span="16" :offset="0" :push="0" :pull="0" tag="div">
+            <el-form-item label="缁堢偣琛屽垪灞�:">
+              <el-input size="large" v-model="form.TargetAddress" style="width: 800px" placeholder="璇疯緭鍏ョ粓鐐硅鍒楀眰" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <el-divider />
+      <el-row :gutter="20" type="flex" justify="start" align="top" tag="div">
+        <el-col :span="8" :offset="0" :push="0" :pull="0" tag="div">
+          <el-button type="primary" size="small" plain @click="start">
+            <i class="el-icon-check">鍚姩</i>
+          </el-button>
+
+        </el-col>
+        <el-col :span="8" :offset="0" :push="0" :pull="0" tag="div">
+          <el-button type="warning" size="small" plain @click="reset">
+            <i class="el-icon-check">澶嶄綅</i>
+          </el-button>
+
+        </el-col>
+        <el-col :span="8" :offset="0" :push="0" :pull="0" tag="div">
+          <el-button type="danger" size="small" plain @click="emergencyStop">
+            <i class="el-icon-check">鎬ュ仠</i>
+          </el-button>
         </el-col>
       </el-row>
     </el-form>
@@ -116,7 +174,15 @@
         CurrentTaskNum: "",
         Running: "",
         DeviceName: "",
-      }
+        DeviceCode: "",
+        StackerAlarm:"",
+      },
+      form: {
+        TaskType: "",
+        SourceAddress: "",
+        TargetAddress: "",
+        DeviceCode: "",
+      },
     };
   },
   props: {
@@ -135,31 +201,84 @@
   },
   methods: {
     moveDot(x) {
-        this.StackerCrane.Automatic=x.Automatic==null?"鏁呴殰":x.Automatic;
-				this.StackerCrane.Fault=x.Fault==null?"鏁呴殰":x.Fault;
-				this.StackerCrane.Running=x.Running==null?"鏁呴殰":x.Running;
-				this.StackerCrane.CurrentColumn=x.CurrentColumn==undefined?1:x.CurrentColumn;
-				this.StackerCrane.CurrentLayer=x.CurrentLayer==undefined?1:x.CurrentLayer;
-				this.StackerCrane.LevelPoint=x.LevelPoint;
-				this.StackerCrane.DeviceName=x.DeviceName;
+      this.StackerCrane.Automatic = x.Automatic == null ? "鏁呴殰" : x.Automatic;
+      this.StackerCrane.Fault = x.Fault == null ? "鏁呴殰" : x.Fault;
+      this.StackerCrane.Running = x.Running == null ? "鏁呴殰" : x.Running;
+      this.StackerCrane.CurrentColumn = x.CurrentColumn == undefined ? 1 : x.CurrentColumn;
+      this.StackerCrane.CurrentLayer = x.CurrentLayer == undefined ? 1 : x.CurrentLayer;
+      this.StackerCrane.LevelPoint = x.LevelPoint;
+      this.StackerCrane.DeviceName = x.DeviceName;
+      this.StackerCrane.StackerAlarm = x.StackerAlarm;
+      this.form.DeviceCode = x.DeviceCode;
     },
-    update(){
-      if(this.StackerCrane.Automatic=="鑱旀満妯″紡"&&this.StackerCrane.Fault!="鏁呴殰"&&this.StackerCrane.Running=="寰呮満"){
-          return 'dot-Automatic ';
-        }
-        else if(this.StackerCrane.Automatic=="鑱旀満妯″紡"&&this.StackerCrane.Fault!="鏁呴殰"&&this.StackerCrane.Running=="杩愯涓�"){
-          return 'dot-Running ';
-        }else if(this.StackerCrane.Fault=="鏁呴殰"){
-          return 'dot-Fault ';
-        }else{
-          return 'dot-Fault ';
-        }
-		},
+    update() {
+      if (this.StackerCrane.Automatic == "鑱旀満妯″紡" && this.StackerCrane.Fault != "鏁呴殰" && this.StackerCrane.Running == "寰呮満") {
+        return 'dot-Automatic ';
+      }
+      else if (this.StackerCrane.Automatic == "鑱旀満妯″紡" && this.StackerCrane.Fault != "鏁呴殰" && this.StackerCrane.Running == "杩愯涓�") {
+        return 'dot-Running ';
+      } else if (this.StackerCrane.Fault == "鏁呴殰") {
+        return 'dot-Fault ';
+      } else {
+        return 'dot-Fault ';
+      }
+    },
     mouseClick() {
       this.fullscreenLoading = true;
       this.dialogVisible = true;
       this.fullscreenLoading = false;
     },
+    start() {
+      this.fullscreenLoading = true;
+      this.http.post("api/DeviceInfo/StackerHandTask", this.form)
+        .then((x) => {
+          if (!x.status) {
+            this.$message.error(x.message);
+          } else {
+            this.$Message.success("鍫嗗灈鏈哄懡浠ゅ凡涓嬪彂");
+            // $vue.success("鎴愬姛.");
+            this.show = false;
+            $vue.refresh();
+          }
+        })
+        .finally(() => {
+          this.fullscreenLoading = false;
+        });
+    }, reset() {
+      this.fullscreenLoading = true;
+      this.http.post("api/DeviceInfo/StackerReset?DeviceCode=" + this.form.DeviceCode)
+        .then((x) => {
+          if (!x.status) {
+            this.$message.error(x.message);
+          } else {
+            this.$Message.success("澶嶄綅鎴愬姛");
+            // $vue.success("鎴愬姛.");
+            this.show = false;
+            $vue.refresh();
+          }
+        })
+        .finally(() => {
+          this.fullscreenLoading = false;
+        });
+    },
+
+    emergencyStop() {
+      this.fullscreenLoading = true;
+      this.http.post("api/DeviceInfo/StackerEmergencyStop?DeviceCode=" + this.form.DeviceCode)
+        .then((x) => {
+          if (!x.status) {
+            this.$message.error(x.message);
+          } else {
+            this.$Message.success("鎬ュ仠宸叉寜涓�");
+            // $vue.success("鎴愬姛.");
+            // this.show = false;
+            // $vue.refresh();
+          }
+        })
+        .finally(() => {
+          this.fullscreenLoading = false;
+        });
+    }
   },
 };
 </script>
@@ -196,6 +315,7 @@
   font-weight: bold;
   color: white;
 }
+
 .dot-Automatic {
   position: absolute;
   top: -5px;

--
Gitblit v1.9.3