From 759ed15af8f9d423dc882337f8536d4bb76e7f57 Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期二, 29 十一月 2022 11:06:18 +0800
Subject: [PATCH] 卡口管理还原

---
 src/views/systemSetting/device/bayonet/create/index.vue |  439 +++++++++++++++++++++++++++++++++---------------------
 1 files changed, 269 insertions(+), 170 deletions(-)

diff --git a/src/views/systemSetting/device/bayonet/create/index.vue b/src/views/systemSetting/device/bayonet/create/index.vue
index 31c6da0..170d4f3 100644
--- a/src/views/systemSetting/device/bayonet/create/index.vue
+++ b/src/views/systemSetting/device/bayonet/create/index.vue
@@ -1,206 +1,305 @@
 <template>
-    <div class="create">
-        <el-form ref="device" label-position="right" label-width="120px" :model="bayonet" :rules="rules">
-            <!-- 鍗″彛鍚嶇О -->
-            <div class="device-item">
-                <div class="item-left">
-                    <el-form-item label="鍗″彛鍚嶇О:" prop="bayonetName">
-                        <el-input v-model="bayonet.bayonetName" placeholder="璇峰~鍐欏崱鍙e悕绉�"></el-input>
-                    </el-form-item>
-                </div>
-                <div class="item-right"></div>
-            </div>
-            <!-- 缁忕含搴︿綅缃� -->
-            <div class="device-item">
-                <div class="item-left">
-                    <el-form-item label="缁忕含搴︿綅缃�:" prop="longitude">
-                        <el-input v-model="bayonet.longitude" placeholder="璇峰~鍐欑粡搴︿綅缃�"></el-input>
-                    </el-form-item>
-                    <el-form-item prop="latitude">
-                        <el-input v-model="bayonet.latitude" placeholder="璇峰~鍐欑含搴︿綅缃�"></el-input>
-                    </el-form-item>
-                </div>
-                <div class="item-right"></div>
-            </div>
-            <!-- 鎵�灞炲尯鍩� -->
-            <div class="device-item">
-                <div class="item-left">
-                    <el-form-item label="鎵�灞炲尯鍩�:" prop="belongArea">
-                        <el-input v-model="bayonet.belongArea" placeholder="璇峰~鍐欏尯鍩熷悕绉�"></el-input>
-                    </el-form-item>
-                </div>
-                <div class="item-right"></div>
-            </div>
-            <!-- 鍩熷悕/ip -->
-            <div class="device-item">
-                <div class="item-left">
-                    <el-form-item label="鍩熷悕/IP:" prop="ipAddress">
-                        <el-input v-model="bayonet.ipAddress" placeholder="璇峰~鍐欏煙鍚嶆垨鑰匢P"></el-input>
-                    </el-form-item>
-                </div>
-                <div class="item-right"></div>
-            </div>
-            <!-- 绔彛鍙� -->
-            <div class="device-item">
-                <div class="item-left">
-                    <el-form-item label="绔彛鍙�:" prop="port">
-                        <el-input v-model="bayonet.port" placeholder="璇疯緭鍏ョ鍙e彿"></el-input>
-                    </el-form-item>
-                </div>
-                <div class="item-right"></div>
-            </div>
-            <!-- 鍓嶇绫诲瀷 -->
-            <div class="device-item">
-                <div class="item-left">
-                    <el-form-item label="鍓嶇绫诲瀷:" prop="frontEndType">
-                        <el-input v-model="bayonet.frontEndType" placeholder="璇疯緭鍏ュ墠绔被鍨�"></el-input>
-                    </el-form-item>
-                </div>
-                <div class="item-right"></div>
-            </div>
-            <!-- 鍑哄叆鍩庣被鍨� -->
-            <div class="device-item">
-                <div class="item-left">
-                    <el-form-item label="鍑哄叆鍩庣被鍨�:" prop="inOutCityType">
-                        <el-input v-model="bayonet.inOutCityType" placeholder="鍑哄煄/鍏ュ煄"></el-input>
-                    </el-form-item>
-                </div>
-                <div class="item-right"></div>
-            </div>
-            <!-- 鎻忚堪 -->
-            <div class="device-item">
-                <div class="item-left">
-                    <el-form-item label="鎻忚堪:" prop="description">
-                        <el-input type="textarea" :rows='5' maxlength="200" v-model="bayonet.description" placeholder="璇疯緭鍏ユ弿杩板唴瀹�200瀛椾互鍐�"></el-input>
-                    </el-form-item>
-                </div>
-                <div class="item-right"></div>
-            </div>
-            <!-- 鎸夐挳 -->
-            <div class="device-btn">
-                <el-button @click="closeDialog">杩斿洖</el-button>
-                <el-button type="primary" @click="onSubmit">纭畾</el-button>
-            </div>
-        </el-form>
-    </div>
+  <div class="create">
+    <el-form
+      ref="device"
+      label-position="right"
+      label-width="120px"
+      :model="bayonet"
+      :rules="rules"
+    >
+      <!-- 鍗″彛鍚嶇О -->
+      <div class="device-item">
+        <div class="item-left">
+          <el-form-item label="鍗″彛鍚嶇О:" prop="name">
+            <el-input
+              v-model="bayonet.name"
+              placeholder="璇峰~鍐欏崱鍙e悕绉�"
+            ></el-input>
+          </el-form-item>
+        </div>
+        <div class="item-right"></div>
+      </div>
+      <!-- 缁忕含搴︿綅缃� -->
+      <div class="device-item">
+        <div class="item-left">
+          <el-form-item label="缁忕含搴︿綅缃�:" prop="longitude">
+            <el-input
+              v-model="bayonet.longitude"
+              placeholder="璇峰~鍐欑粡搴︿綅缃�"
+            ></el-input>
+          </el-form-item>
+          <el-form-item prop="latitude">
+            <el-input
+              v-model="bayonet.latitude"
+              placeholder="璇峰~鍐欑含搴︿綅缃�"
+            ></el-input>
+          </el-form-item>
+        </div>
+        <div class="item-right"></div>
+      </div>
+      <!-- 鎵�灞炲尯鍩� -->
+      <div class="device-item">
+        <div class="item-left">
+          <el-form-item label="鎵�灞炲尯鍩�:" prop="belongArea">
+            <el-input
+              v-model="bayonet.belongArea"
+              placeholder="璇峰~鍐欏尯鍩熷悕绉�"
+            ></el-input>
+          </el-form-item>
+        </div>
+        <div class="item-right"></div>
+      </div>
+      <!-- 鍩熷悕/ip -->
+      <div class="device-item">
+        <div class="item-left">
+          <el-form-item label="鍩熷悕/IP:" prop="ipAddress">
+            <el-input
+              v-model="bayonet.ipAddress"
+              placeholder="璇峰~鍐欏煙鍚嶆垨鑰匢P"
+            ></el-input>
+          </el-form-item>
+        </div>
+        <div class="item-right"></div>
+      </div>
+      <!-- 绔彛鍙� -->
+      <div class="device-item">
+        <div class="item-left">
+          <el-form-item label="绔彛鍙�:" prop="port">
+            <el-input
+              v-model="bayonet.port"
+              placeholder="璇疯緭鍏ョ鍙e彿"
+            ></el-input>
+          </el-form-item>
+        </div>
+        <div class="item-right"></div>
+      </div>
+      <!-- 鍓嶇绫诲瀷 -->
+      <div class="device-item">
+        <div class="item-left">
+          <el-form-item class="optionItem" label="鍓嶇绫诲瀷:" prop="role">
+            <el-select
+              v-model="bayonet.frontEndType"
+              placeholder="璇疯緭鍏ュ墠绔被鍨�"
+              collapse-tags
+            >
+              <el-option
+                v-for="item in frontEndTypeList"
+                :key="item.id"
+                :label="item.name"
+                :value="item.id"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+        </div>
+        <div class="item-right"></div>
+      </div>
+      <!-- 鍑哄叆鍩庣被鍨� -->
+      <div class="device-item">
+        <div class="item-left">
+          <el-form-item class="optionItem" label="鍑哄叆鍩庣被鍨�:" prop="role">
+            <el-select
+              v-model="bayonet.inOutCityType"
+              placeholder="璇疯緭鍏ュ嚭鍏ュ煄绫诲瀷"
+              collapse-tags
+            >
+              <el-option
+                v-for="item in inOutTypeList"
+                :key="item.id"
+                :label="item.name"
+                :value="item.id"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+        </div>
+        <div class="item-right"></div>
+      </div>
+      <!-- 鎻忚堪 -->
+      <div class="device-item">
+        <div class="item-left">
+          <el-form-item label="鎻忚堪:" prop="description">
+            <el-input
+              type="textarea"
+              :rows="5"
+              maxlength="200"
+              v-model="bayonet.description"
+              placeholder="璇疯緭鍏ユ弿杩板唴瀹�200瀛椾互鍐�"
+            ></el-input>
+          </el-form-item>
+        </div>
+        <div class="item-right"></div>
+      </div>
+      <!-- 鎸夐挳 -->
+      <div class="device-btn">
+        <el-button @click="closeDialog">杩斿洖</el-button>
+        <el-button type="primary" @click="onSubmit">纭畾</el-button>
+      </div>
+    </el-form>
+  </div>
 </template>
 <script>
 import bayonet from "@/api/system/bayonet";
-import { deepClone } from "@/utils/helper";
+import { deepClone, getTypeList } from "@/utils/helper";
 
 export default {
   props: {
     originalBayonet: {
       type: Object,
-      default: () => {}
+      default: () => {},
     },
     isEdit: {
       type: Boolean,
-      default: () => false
-    }
+      default: () => false,
+    },
   },
 
   data() {
-      return {
-          bayonet: {
-              bayonetName: '',
-              latitude: '',
-              longitude: '',
-              belongArea: '',
-              ipAddress: '',
-              port: '',
-              frontEndType: '',
-              inOutCityType: '',
-              description: ''
+    return {
+      bayonet: {
+        name: "",
+        latitude: "",
+        longitude: "",
+        belongArea: "",
+        ipAddress: "",
+        port: "",
+        frontEndType: "",
+        inOutCityType: "",
+        description: "",
+      },
+      rules: {
+        name: [{ required: true, trigger: "blur", message: "璇峰~鍐欏崱鍙e悕绉�" }],
+        latitude: [
+          {
+            required: true,
+            trigger: ["blur", "change"],
+            message: "璇峰~鍐欑含搴︿綅缃�",
           },
-          rules: {
-            bayonetName: [{ required: true, trigger: 'blur', message: '璇峰~鍐欏崱鍙e悕绉�' }],
-            latitude: [{ required: true, trigger: ['blur', 'change'], message: '璇峰~鍐欑含搴︿綅缃�' }],
-            longitude: [{ required: true, trigger: ['blur', 'change'], message: '璇峰~鍐欑粡搴︿綅缃�' }],
-            belongArea: [{ required: true, trigger: ['blur', 'change'], message: '璇峰~鍐欏尯鍩熷悕绉�' }],
-            ipAddress: [{ required: true, trigger: ['blur', 'change'], message: '璇峰~鍐欏煙鍚嶆垨鑰匢P' }],
-            port: [{ required: true, trigger: ['blur', 'change'], message: '璇疯緭鍏ョ鍙e彿' }],
-            frontEndType: [{ required: true, trigger: ['blur', 'change'], message: '璇疯緭鍏ュ墠绔被鍨�' }],
-            inOutCityType: [{ required: true, trigger: ['blur', 'change'], message: '璇峰~鍐欏嚭鍩�/鍏ュ煄' }],
-            description: [{ required: true, trigger: ['blur', 'change'], message: '璇疯緭鍏ユ弿杩板唴瀹�' }]
-          }
-      }
+        ],
+        longitude: [
+          {
+            required: true,
+            trigger: ["blur", "change"],
+            message: "璇峰~鍐欑粡搴︿綅缃�",
+          },
+        ],
+        belongArea: [
+          {
+            required: true,
+            trigger: ["blur", "change"],
+            message: "璇峰~鍐欏尯鍩熷悕绉�",
+          },
+        ],
+        ipAddress: [
+          {
+            required: true,
+            trigger: ["blur", "change"],
+            message: "璇峰~鍐欏煙鍚嶆垨鑰匢P",
+          },
+        ],
+        port: [
+          {
+            required: true,
+            trigger: ["blur", "change"],
+            message: "璇疯緭鍏ョ鍙e彿",
+          },
+        ],
+        frontEndType: [
+          {
+            required: true,
+            trigger: ["blur", "change"],
+            message: "璇疯緭鍏ュ墠绔被鍨�",
+          },
+        ],
+        inOutCityType: [
+          {
+            required: true,
+            trigger: ["blur", "change"],
+            message: "璇峰~鍐欏嚭鍩�/鍏ュ煄",
+          },
+        ],
+      },
+      frontEndTypeList: [],
+      inOutTypeList: [],
+    };
   },
-
+  beforeCreate() {},
   created() {
-    this.bayonet = deepClone(this.originalBayonet);
+    this.getInOutCityTypeList();
+    this.getFrontEndTypeList();
     if (this.originalBayonet) {
-      this.bayonet.bayonetName = this.originalBayonet.name;
+      this.bayonet = this.originalBayonet;
     }
   },
-
   methods: {
-      onSubmit() {
-        this.$refs.device.validate(valid => {
-          if (valid) {
-            this.bayonet.longitude = Number(this.bayonet.longitude);
-            this.bayonet.latitude = Number(this.bayonet.latitude);
-            this.bayonet.inOutCityType = Number(this.bayonet.inOutCityType);
-            this.bayonet.belongArea = Number(this.bayonet.belongArea);
-            const copyBayonet = deepClone(this.bayonet);
-            delete copyBayonet.id;
-            if (!this.isEdit) {
-              bayonet.addBayonet(this.bayonet)
-                  .then(() => {
-                    this.$message({ type: 'success', message: '鎿嶄綔鎴愬姛' });
-                    this.$emit('closeDialog');
-                  })
-                  .catch(err => {
-                    this.$message({ type: 'error', message: err });
-                  })
-            } else {
-              bayonet.updateBayonet(copyBayonet)
-                  .then(() => {
-                    this.$message({ type: 'success', message: '鎿嶄綔鎴愬姛' });
-                    this.$emit('closeDialog');
-                  })
-                  .catch(err => {
-                    this.$message({ type: 'error', message: err });
-                  })
-            }
+    onSubmit() {
+      this.$refs.device.validate((valid) => {
+        if (valid) {
+          const copyBayonet = deepClone(this.bayonet);
+          if (!this.isEdit) {
+            bayonet
+              .addBayonet(this.bayonet)
+              .then(() => {
+                this.$message({ type: "success", message: "鎿嶄綔鎴愬姛" });
+                this.$emit("closeDialog");
+              })
+              .catch((err) => {
+                this.$message({ type: "error", message: err });
+              });
           } else {
-           this.$message({ type: 'warning', message: '璇锋鏌ュ繀濉」' });
+            bayonet
+              .updateBayonet(copyBayonet)
+              .then(() => {
+                this.$message({ type: "success", message: "鎿嶄綔鎴愬姛" });
+                this.$emit("closeDialog");
+              })
+              .catch((err) => {
+                this.$message({ type: "error", message: err });
+              });
           }
-        });
-      },
+        } else {
+          this.$message({ type: "warning", message: "璇锋鏌ュ繀濉」" });
+        }
+      });
+    },
+    async getInOutCityTypeList() {
+      this.inOutTypeList = await getTypeList(1, "14");
+    },
 
-      closeDialog() {
-        this.$emit('closeDialog');
-      }
-  }
-
-}
+    async getFrontEndTypeList() {
+      this.frontEndTypeList = await getTypeList(1, "13");
+    },
+    closeDialog() {
+      this.$emit("closeDialog");
+    },
+  },
+};
 </script>
 <style lang="scss" scoped>
 .create {
-    padding: 20px;
+  padding: 20px;
 
-    .device-item {
-        display: flex;
+  .device-item {
+    display: flex;
 
-        .item-left {
-            flex: 6;
-            display: flex;
+    .item-left {
+      flex: 6;
+      display: flex;
 
-            .el-form-item {
-                flex: 1;
-            }
-        }
-
-        .item-right {
-            flex: 4;
-        }
+      .el-form-item {
+        flex: 1;
+      }
     }
 
-    .device-btn {
-        padding-top: 20px;
-        display: flex;
-        justify-content: center;
+    .item-right {
+      flex: 4;
     }
+  }
+
+  .device-btn {
+    padding-top: 20px;
+    display: flex;
+    justify-content: center;
+  }
 }
 </style>
\ No newline at end of file

--
Gitblit v1.8.0