From b7f85801605d9146399e9009f617be5d43165d46 Mon Sep 17 00:00:00 2001
From: songshankun <songshankun@foxmail.com>
Date: 星期四, 26 十月 2023 19:33:05 +0800
Subject: [PATCH] feat: PLC地址配置 接口方式选项添加modbudRTU选中项,选中modbusRTU时添加数据位/停止位/校验方式表单

---
 src/views/set.vue |  202 ++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 155 insertions(+), 47 deletions(-)

diff --git a/src/views/set.vue b/src/views/set.vue
index 3311d97..eea93c9 100644
--- a/src/views/set.vue
+++ b/src/views/set.vue
@@ -282,42 +282,123 @@
                   style="width: 100%"
                 >
                   <el-option label="modbusTCP" value="modbusTCP"></el-option>
-                  <el-option label="serial" value="serial"></el-option>
+                  <el-option label="涓插彛" value="serial"></el-option>
+                  <el-option label="modbusRTU" value="modbusRTU"></el-option>
                 </el-select>
               </el-form-item>
-              <el-form-item
-                label="娉㈢壒鐜�"
-                prop="baudRate"
-                v-if="form.method == 'serial'"
-                class="form-item float_right"
-              >
-                <el-input
-                  v-model="form.baudRate"
-                  placeholder="璇疯緭鍏�"
-                ></el-input>
-              </el-form-item>
-              <el-form-item
-                label="涓插彛鍚嶇О"
-                prop="serialName"
-                v-if="form.method == 'serial'"
-                class="form-item float_right"
-              >
-                <el-input
-                  v-model="form.serialName"
-                  placeholder="璇疯緭鍏�"
-                ></el-input>
-              </el-form-item>
-              <el-form-item
-                label="PLC鍦板潃"
-                v-if="form.method == 'modbusTCP'"
-                prop="address"
-                class="form-item float_right"
-              >
-                <el-input
-                  v-model="form.address"
-                  placeholder="璇疯緭鍏�"
-                ></el-input>
-              </el-form-item>
+              <template v-if="form.method === 'modbusTCP'">
+                <el-form-item
+                  label="PLC鍦板潃"
+                  prop="address"
+                  class="form-item float_right"
+                >
+                  <el-input
+                    v-model="form.address"
+                    placeholder="璇疯緭鍏�"
+                  ></el-input>
+                </el-form-item>
+
+                <el-form-item
+                  label="绔彛鍙�"
+                  prop="port"
+                  class="form-item float_right"
+                >
+                  <el-input
+                    v-model.number="form.port"
+                    placeholder="璇疯緭鍏�"
+                  ></el-input>
+                </el-form-item>
+              </template>
+
+              <template v-if="form.method === 'serial'">
+                <el-form-item
+                  label="娉㈢壒鐜�"
+                  prop="baudRate"
+
+                  class="form-item float_right"
+                >
+                  <el-input
+                    type="number"
+                    min="1"
+                    v-model="form.baudRate"
+                    placeholder="璇疯緭鍏�"
+                  ></el-input>
+                </el-form-item>
+                <el-form-item
+                  label="涓插彛鍚嶇О"
+                  prop="serialName"
+                  class="form-item float_right"
+                >
+                  <el-input
+                    v-model="form.serialName"
+                    placeholder="璇疯緭鍏�"
+                  ></el-input>
+                </el-form-item>
+              </template>
+
+              <template v-if="form.method === 'modbusRTU'">
+                <el-form-item
+                  label="鏁版嵁浣�"
+                  prop="dataBit"
+                  class="form-item float_right"
+                >
+                  <el-input
+                    type="number"
+                    min="1"
+                    v-model="form.dataBit"
+                    placeholder="璇疯緭鍏�"
+                  ></el-input>
+                </el-form-item>
+
+                <el-form-item
+                  label="鍋滄浣�"
+                  prop="stopBit"
+                  class="form-item float_right"
+                >
+                  <el-input
+                    type="number"
+                    min="1"
+                    v-model="form.stopBit"
+                    placeholder="璇疯緭鍏�"
+                  ></el-input>
+                </el-form-item>
+
+                <el-form-item label="鏍¢獙鏂瑰紡" prop="parity" class="form-item">
+                  <el-select
+                    v-model="form.parity"
+                    placeholder="璇烽�夋嫨"
+                    style="width: 100%"
+                  >
+                    <el-option label="濂囨牎楠�" :value="1"></el-option>
+                    <el-option label="鍋舵牎楠�" :value="2"></el-option>
+                    <el-option label="鏃犳牎楠�" :value="3"></el-option>
+                  </el-select>
+                </el-form-item>
+
+                <el-form-item
+                  label="娉㈢壒鐜�"
+                  prop="baudRate"
+                  class="form-item float_right"
+                >
+                  <el-input
+                    v-model="form.baudRate"
+                    placeholder="璇疯緭鍏�"
+                  ></el-input>
+                </el-form-item>
+
+                <el-form-item
+                  label="涓插彛鍚嶇О"
+                  prop="serialName"
+                  class="form-item float_right"
+                >
+                  <el-input
+                    v-model="form.serialName"
+                    placeholder="璇疯緭鍏�"
+                  ></el-input>
+                </el-form-item>
+              </template>
+
+
               <!-- <el-form-item label="绔彛鍚嶇О" prop="portName" class="form-item2">
                 <el-select
                   v-model="form.portName"
@@ -333,17 +414,6 @@
                   ></el-option>
                 </el-select>
               </el-form-item> -->
-              <el-form-item
-                label="绔彛鍙�"
-                prop="port"
-                v-if="form.method == 'modbusTCP'"
-                class="form-item float_right"
-              >
-                <el-input
-                  v-model.number="form.port"
-                  placeholder="璇疯緭鍏�"
-                ></el-input>
-              </el-form-item>
             </div>
             <!-- <el-button
               style="margin-bottom: 10px; float: right"
@@ -511,8 +581,13 @@
         portName: "",
         port: "",
         address: "",
-        baudRate:'',
+        // 娉㈢壒鐜囬粯璁�9600
+        baudRate: 0,
         serialName:'',
+        dataBit: 0,
+        stopBit: 0,
+        // 鏍¢獙鏂瑰紡 1濂囨牎楠�2鍋舵牎楠�3鏃犳牎楠�
+        parity: 3,
       },
 
       rules: {
@@ -657,6 +732,14 @@
       getPlc().then((res) => {
         if (res.code == 200) {
           this.form = JSON.parse(JSON.stringify(res.data));
+          this.form = {
+            ...this.form,
+            dataBit: this.form?.dataBit || 0,
+            stopBit: this.form?.stopBit || 0,
+            parity: this.form?.parity || 3,
+            baudRate: this.form?.baudRate || 0,
+          }
+          console.log('f',this.form)
           this.pclList = res.data.details
             ? JSON.parse(JSON.stringify(res.data.details))
             : [];
@@ -907,7 +990,32 @@
 
     saveThree() {
       let params = JSON.parse(JSON.stringify(this.form));
-      params.details = this.pclList;
+      params = {
+        ...params,
+        details : this.pclList,
+        dataBit: +params.dataBit,
+        stopBit: +params.stopBit,
+        parity: +params.parity,
+        baudRate: +params.baudRate
+      }
+
+      if (params.method === 'modbusRTU'){
+        if (!params.dataBit){
+          this.$message.error("鏁版嵁浣嶄笉鑳戒负 0")
+          return
+        }
+
+        if (!params.stopBit){
+          this.$message.error("鍋滄浣嶄笉鑳戒负 0")
+          return
+        }
+
+        if (!params.baudRate){
+          this.$message.error("娉㈢壒鐜囦笉鑳戒负 0")
+          return
+        }
+      }
+
       setPlc(params).then((res) => {
         if (res.code == 200) {
           this.$message.success("PLC閰嶇疆鎴愬姛锛�");

--
Gitblit v1.8.0