From d138b7df8fa97dc7ed6b07acdfef804ebb186a74 Mon Sep 17 00:00:00 2001 From: liuchengxin <13104445455@163.com> Date: 星期五, 27 五月 2022 21:21:21 +0800 Subject: [PATCH] BUG修改 --- src/views/construction/ipc/index.vue | 292 +++++++++++++++++++++++++++++++++++++--------------------- 1 files changed, 187 insertions(+), 105 deletions(-) diff --git a/src/views/construction/ipc/index.vue b/src/views/construction/ipc/index.vue index 35e4872..1e1aca8 100644 --- a/src/views/construction/ipc/index.vue +++ b/src/views/construction/ipc/index.vue @@ -1,5 +1,5 @@ <template> - <div class="app-container"> + <div class="construction-view"> <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> <el-form-item label="NVR" prop="nvrId"> <nvr v-model="queryParams.nvrId" :schoolId="schoolId"></nvr> @@ -10,137 +10,150 @@ <el-form-item label="鎵�灞炲崟浣�" prop="organizationId"> <organization v-model="queryParams.organizationId" :schoolId="schoolId"></organization> </el-form-item> - <el-form-item label="鏂藉伐鎵规" prop="constructionBatchId"> - <construction-batch v-model="queryParams.constructionBatchId" :schoolId="schoolId"></construction-batch> - </el-form-item> - <el-form-item label="鍨嬪彿" prop="model"> - <el-input - v-model="queryParams.model" - placeholder="璇疯緭鍏ュ瀷鍙�" - @keyup.enter.native="handleQuery" - /> - </el-form-item> + <template v-if="showMoreCondition"> + <el-form-item label="鏂藉伐鎵规" prop="constructionBatchId"> + <construction-batch v-model="queryParams.constructionBatchId" :schoolId="schoolId"></construction-batch> + </el-form-item> + <el-form-item label="鍨嬪彿" prop="model"> + <el-input + v-model="queryParams.model" + placeholder="璇疯緭鍏ュ瀷鍙�" + @keyup.enter.native="handleQuery" + /> + </el-form-item> + </template> <el-form-item> - <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button> - <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button> + <div class="show-more-search"> + <ShowMore :showMoreCondition.sync="showMoreCondition"></ShowMore> + <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button> + <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button> + </div> </el-form-item> </el-form> <el-row :gutter="10" class="mb8"> <el-col :span="1.5"> <el-button - type="primary" - plain - icon="el-icon-plus" - size="mini" - @click="handleAdd" - v-hasPermi="['oa:ipc:add']" - >鏂板</el-button> + type="primary" + plain + icon="el-icon-plus" + size="mini" + @click="handleAdd" + >鏂板 + </el-button> </el-col> <el-col :span="1.5"> <el-button - type="success" - plain - icon="el-icon-edit" - size="mini" - :disabled="single" - @click="handleUpdate" - v-hasPermi="['oa:ipc:edit']" - >淇敼</el-button> + type="success" + plain + icon="el-icon-edit" + size="mini" + :disabled="single" + @click="handleUpdate" + >淇敼 + </el-button> </el-col> <el-col :span="1.5"> <el-button - type="danger" - plain - icon="el-icon-delete" - size="mini" - :disabled="multiple" - @click="handleDelete" - v-hasPermi="['oa:ipc:remove']" - >鍒犻櫎</el-button> + type="danger" + plain + icon="el-icon-delete" + size="mini" + :disabled="multiple" + @click="handleDelete" + >鍒犻櫎 + </el-button> </el-col> </el-row> <el-table v-loading="loading" :data="ipcList" @selection-change="handleSelectionChange"> - <el-table-column type="selection" width="55" align="center" /> + <el-table-column type="selection" width="55" align="center"/> <el-table-column label="搴忓彿" align="center" width="50"> <template slot-scope="scope"> <span>{{ scope.$index + (queryParams.pageNum - 1) * queryParams.pageSize + 1 }} </span> </template> </el-table-column> - <el-table-column label="MAC" align="center" prop="mac" /> - <el-table-column label="IP" align="center" prop="ip" /> - <el-table-column label="绔彛" align="center" prop="port" /> - <el-table-column label="鐧诲綍璐︽埛" align="center" prop="loginAccount" /> - <el-table-column label="NVR" align="center" prop="nvrId_dictText" /> - <el-table-column label="閫氶亾" align="center" prop="passageway_dictText" /> - <el-table-column label="瀹夎浣嶇疆" align="center" prop="buildingId_dictText" /> - <el-table-column label="鎵�灞炲崟浣�" align="center" prop="organizationId_dictText" /> - <el-table-column label="鏂藉伐鎵规" align="center" prop="constructionBatchId_dictText" /> -<!-- <el-table-column label="搴忓垪鍙�" align="center" prop="serialNumber" />--> -<!-- <el-table-column label="鍨嬪彿" align="center" prop="model" />--> -<!-- <el-table-column label="鐢熶骇鍘傚晢" align="center" prop="manufacturerId_dictText" />--> - <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width"> + <el-table-column label="MAC" min-width="150" align="center" prop="mac"/> + <el-table-column label="IP" width="130" align="center" prop="ip"/> + <el-table-column label="璐︽埛/瀵嗙爜" min-width="180" align="center" prop="loginAccount"/> + <el-table-column label="NVR" align="center" min-width="150" prop="nvrId_dictText"> + <template slot-scope="scope"> + <el-link type="primary" @click="nvrClick(scope.row)">{{ scope.row.nvrId_dictText }}</el-link> + </template> + </el-table-column> + <el-table-column label="閫氶亾" align="center" prop="passageway_dictText"/> + <el-table-column label="搴忓垪鍙�" min-width="180" align="center" prop="serialNumber"/> + <el-table-column label="鐢熶骇鍘傚晢" min-width="220" align="center" prop="manufacturerId_dictText"/> + <el-table-column label="瀹夎浣嶇疆" min-width="240" align="center" prop="buildingId_dictText"/> + <el-table-column label="鎿嶄綔" align="center" fixed="right" width="180" class-name="small-padding fixed-width"> <template slot-scope="scope"> <el-button - size="mini" - type="text" - icon="el-icon-edit" - @click="handleUpdate(scope.row)" - v-hasPermi="['oa:ipc:edit']" - >淇敼</el-button> + size="mini" + type="text" + icon="el-icon-view" + @click="handleInfo(scope.row)" + >鏌ョ湅 + </el-button> <el-button - size="mini" - type="text" - class="del-btn" - icon="el-icon-delete" - @click="handleDelete(scope.row)" - v-hasPermi="['oa:ipc:remove']" - >鍒犻櫎</el-button> + size="mini" + type="text" + icon="el-icon-edit" + @click="handleUpdate(scope.row)" + >淇敼 + </el-button> + <el-button + size="mini" + type="text" + class="del-btn" + icon="el-icon-delete" + @click="handleDelete(scope.row)" + >鍒犻櫎 + </el-button> </template> </el-table-column> </el-table> <pagination - v-show="total>0" - :total="total" - :page.sync="queryParams.pageNum" - :limit.sync="queryParams.pageSize" - @pagination="getList" + v-show="total>0" + :total="total" + :page.sync="queryParams.pageNum" + :limit.sync="queryParams.pageSize" + @pagination="getList" /> <!-- 娣诲姞鎴栦慨鏀筰pc璁惧瀵硅瘽妗� --> - <el-dialog :title="title" :visible.sync="open" width="700px" :append-to-body="true" :close-on-click-modal="false" :destroy-on-close="true"> - <el-form ref="form" :model="form" :rules="rules" label-width="80px"> + <el-dialog :title="title" :visible.sync="open" width="920px" :append-to-body="true" :close-on-click-modal="false" + :destroy-on-close="true"> + <el-form ref="form" :model="form" :rules="rules" label-width="90px" :disabled="disabled"> <el-row> - <el-col :span="9"> + <el-col :span="8"> <el-form-item label="MAC" prop="mac"> - <el-input v-model="form.mac" placeholder="璇疯緭鍏AC" /> + <el-input v-model="form.mac" maxlength="17" show-word-limit placeholder="璇疯緭鍏AC"/> </el-form-item> </el-col> - <el-col :span="9"> + <el-col :span="8"> <el-form-item label="IP" prop="ip"> - <el-input v-model="form.ip" placeholder="璇疯緭鍏P" /> + <el-input v-model="form.ip" maxlength="15" show-word-limit placeholder="璇疯緭鍏P"/> </el-form-item> </el-col> - <el-col :span="6"> + <el-col :span="8"> <el-form-item label="绔彛" prop="port"> <el-input-number v-model="form.port" controls-position="right" :min="0" :max="65535"/> </el-form-item> </el-col> </el-row> - <el-form-item label="鐧诲綍璐︽埛" prop="loginAccount"> - <el-input v-model="form.loginAccount" maxlength="64" show-word-limit placeholder="璇疯緭鍏ョ櫥褰曡处鍙�"/> + <el-form-item label="璐︽埛/瀵嗙爜" prop="loginAccount"> + <el-input v-model="form.loginAccount" maxlength="64" show-word-limit placeholder="璇疯緭鍏ヨ处鎴�/瀵嗙爜"/> </el-form-item> <el-row> <el-col :span="12"> <el-form-item label="nvr" prop="nvrId"> - <nvr v-if="open" v-model="form.nvrId" :schoolId="schoolId"></nvr> + <nvr v-if="open" v-model="form.nvrId" :schoolId="schoolId"></nvr> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="閫氶亾" prop="passageway"> - <el-select v-model="form.passageway" placeholder="璇烽�夋嫨閫氶亾锛堣矾锛�"> + <el-select v-model="form.passageway" placeholder="璇烽�夋嫨閫氶亾锛堣矾锛�" style="width: 100%;"> <el-option v-for="dict in dict.type.DICT109" :key="dict.value" @@ -177,20 +190,31 @@ </el-row> </el-form> <div slot="footer" class="dialog-footer"> - <el-button :loading="buttonLoading" type="primary" @click="submitForm">纭� 瀹�</el-button> + <el-button :loading="buttonLoading" :disabled="disabled" type="primary" @click="copy">澶嶅埗涓婁竴鏉′俊鎭�</el-button> + <el-button :loading="buttonLoading" :disabled="disabled" type="primary" @click="submitForm">纭� 瀹�</el-button> <el-button @click="cancel">鍙� 娑�</el-button> </div> </el-dialog> + + <!-- 鏈嶅姟鍣� --> + <Dialog title="鏈嶅姟鍣�" :visible.sync="nvrOpen" width="700px" :append-to-body="true" :destroy-on-close="true"> + <nvr-form v-if="nvrOpen" :nvrId="nvrId"></nvr-form> + <div slot="footer" class="dialog-footer"> + <el-button @click="nvrOpen = false">鍏� 闂�</el-button> + </div> + </Dialog> </div> </template> <script> -import { listIpc, getIpc, delIpc, addIpc, updateIpc } from "@/api/oa/ipc"; +import {listIpc, getIpc, delIpc, addIpc, updateIpc, getCopyIpc} from "@/api/oa/ipc"; import building from "../../components/building"; import organization from "../../components/organization"; import constructionBatch from "../../components/constructionBatch"; import manufacturer from "../../components/manufacturer"; import nvr from '../../components/nvr' +import nvrForm from '../../components/nvr/form' +import ShowMore from "@/views/components/showMore"; export default { name: "Ipc", @@ -200,7 +224,9 @@ organization, constructionBatch, manufacturer, - nvr + nvr, + nvrForm, + ShowMore }, props: { schoolId: { @@ -245,45 +271,62 @@ // 琛ㄥ崟鏍¢獙 rules: { id: [ - { required: true, message: "涓嶈兘涓虹┖", trigger: "blur" } + {required: true, message: "涓嶈兘涓虹┖", trigger: "blur"} ], mac: [ - { required: true, message: "mac涓嶈兘涓虹┖", trigger: "blur" }, + {required: true, message: "mac涓嶈兘涓虹┖", trigger: "blur"}, { - pattern: /^[A-F0-9]{2}(-[A-F0-9]{2}){5}$|^[A-F0-9]{2}(:[A-F0-9]{2}){5}$|^[A-F0-9]{12}$|^[A-F0-9]{4}(\.[A-F0-9]{4}){2}$/, - message: "璇疯緭鍏ユ纭殑MAC", + pattern: /^[0-9a-fA-F:]*$/, + message: "璇疯緭鍏ユ纭殑MAC锛屾枃鏈寖鍥� 0~9銆乤~f銆丄~F銆侊細", trigger: "blur" } ], ip: [ - { required: true, message: "IP涓嶈兘涓虹┖", trigger: "blur" }, + {required: true, message: "IP涓嶈兘涓虹┖", trigger: "blur"}, { pattern: /^(\d|[1-9]\d|1\d{2}|2[0-5][0-5])\.(\d|[1-9]\d|1\d{2}|2[0-5][0-5])\.(\d|[1-9]\d|1\d{2}|2[0-5][0-5])\.(\d|[1-9]\d|1\d{2}|2[0-5][0-5])$/, - message: "璇疯緭鍏ユ纭殑ip鍦板潃", + message: "璇疯緭鍏ユ纭殑ip鍦板潃锛屾枃鏈寖鍥� 0~9銆�.", trigger: "blur" } ], port: [ - { required: true, message: "绔彛涓嶈兘涓虹┖", trigger: "blur" } + {required: true, message: "绔彛涓嶈兘涓虹┖", trigger: "blur"} ], loginAccount: [ - { required: true, message: "鐧诲綍璐︽埛涓嶈兘涓虹┖", trigger: "blur" } + {required: true, message: "鐧诲綍璐︽埛涓嶈兘涓虹┖", trigger: "blur"} ], buildingId: [ - { required: true, message: "瀹夎浣嶇疆涓嶈兘涓虹┖", trigger: "blur" } + {required: true, message: "瀹夎浣嶇疆涓嶈兘涓虹┖", trigger: "blur"} ], organizationId: [ - { required: true, message: "鎵�灞炲崟浣嶄笉鑳戒负绌�", trigger: "blur" } + {required: true, message: "鎵�灞炲崟浣嶄笉鑳戒负绌�", trigger: "blur"} ], constructionBatchId: [ - { required: true, message: "鏂藉伐鎵规涓嶈兘涓虹┖", trigger: "blur" } + {required: true, message: "鏂藉伐鎵规涓嶈兘涓虹┖", trigger: "blur"} ], - } + passageway: [] + }, + disabled: false, + nvrOpen: false, + nvrId: undefined, + showMoreCondition: false }; + }, + computed: { + getNvrId() { + return this.form.nvrId + } }, watch: { 'schoolId': function () { this.getList() + }, + getNvrId: function (v) { + if (v) { + this.rules.passageway = [{required: true, message: "閫氶亾涓嶈兘涓虹┖", trigger: "blur"}] + } else { + this.rules.passageway = [] + } } }, created() { @@ -341,25 +384,39 @@ // 澶氶�夋閫変腑鏁版嵁 handleSelectionChange(selection) { this.ids = selection.map(item => item.id) - this.single = selection.length!==1 + this.single = selection.length !== 1 this.multiple = !selection.length }, /** 鏂板鎸夐挳鎿嶄綔 */ handleAdd() { this.reset(); + this.disabled = false; this.open = true; - this.title = "娣诲姞ipc璁惧"; + this.title = "娣诲姞IPC璁惧"; }, - /** 淇敼鎸夐挳鎿嶄綔 */ - handleUpdate(row) { + handleInfo(row) { this.loading = true; + this.disabled = true; this.reset(); const id = row.id || this.ids getIpc(id).then(response => { this.loading = false; this.form = response.data; this.open = true; - this.title = "淇敼ipc璁惧"; + this.title = "IPC璁惧璇︽儏"; + }); + }, + /** 淇敼鎸夐挳鎿嶄綔 */ + handleUpdate(row) { + this.loading = true; + this.disabled = false; + this.reset(); + const id = row.id || this.ids + getIpc(id).then(response => { + this.loading = false; + this.form = response.data; + this.open = true; + this.title = "淇敼IPC璁惧"; }); }, /** 鎻愪氦鎸夐挳 */ @@ -388,10 +445,37 @@ } }); }, + copy() { + this.buttonLoading = true; + getCopyIpc().then(res => { + const obj = res.data; + // 缂栬緫 + if (this.form.id) { + obj.id = this.form.id; + } + // 鏂板 + else { + obj.id = undefined; + } + this.form = this.shallowCopy(obj); + this.$modal.msgSuccess("淇敼鎴愬姛"); + }).finally(() => { + this.buttonLoading = false; + }); + }, + shallowCopy(src) { + var dst = {}; + for (var prop in src) { + if (src.hasOwnProperty(prop)) { + dst[prop] = src[prop]; + } + } + return dst; + }, /** 鍒犻櫎鎸夐挳鎿嶄綔 */ handleDelete(row) { const ids = row.id || this.ids; - this.$modal.confirm('鏄惁纭鍒犻櫎ipc璁惧缂栧彿涓�"' + ids + '"鐨勬暟鎹」锛�').then(() => { + this.$modal.confirm('鏄惁纭鍒犻櫎锛�').then(() => { this.loading = true; return delIpc(ids); }).then(() => { @@ -402,11 +486,9 @@ this.loading = false; }); }, - /** 瀵煎嚭鎸夐挳鎿嶄綔 */ - handleExport() { - this.download('oa/ipc/export', { - ...this.queryParams - }, `ipc_${new Date().getTime()}.xlsx`) + nvrClick(row) { + this.nvrId = row.nvrId; + this.nvrOpen = true; } } }; -- Gitblit v1.9.1