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