From 43dc204f89527ba402666ba92345efbfe751f297 Mon Sep 17 00:00:00 2001 From: MrShi <1878285526@qq.com> Date: 星期四, 09 十月 2025 18:32:22 +0800 Subject: [PATCH] 钥匙柜、钥匙 --- admin/src/components/business/OperaJkCabinetWindow.vue | 225 +++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 159 insertions(+), 66 deletions(-) diff --git a/admin/src/components/business/OperaJkCabinetWindow.vue b/admin/src/components/business/OperaJkCabinetWindow.vue index ee63049..7817588 100644 --- a/admin/src/components/business/OperaJkCabinetWindow.vue +++ b/admin/src/components/business/OperaJkCabinetWindow.vue @@ -1,29 +1,13 @@ <template> <GlobalWindow + width="50%" :title="title" :visible.sync="visible" :confirm-working="isWorking" @confirm="confirm" > <el-form :model="form" ref="form" :rules="rules"> - <el-form-item label="鍒涘缓浜虹紪鐮�" prop="creator"> - <el-input v-model="form.creator" placeholder="璇疯緭鍏ュ垱寤轰汉缂栫爜" v-trim/> - </el-form-item> - <el-form-item label="鍒涘缓鏃堕棿" prop="createDate"> - <el-date-picker v-model="form.createDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�"></el-date-picker> - </el-form-item> - <el-form-item label="鏇存柊浜虹紪鐮�" prop="editor"> - <el-input v-model="form.editor" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" v-trim/> - </el-form-item> - <el-form-item label="鏇存柊鏃堕棿" prop="editDate"> - <el-date-picker v-model="form.editDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ洿鏂版椂闂�"></el-date-picker> - </el-form-item> - <el-form-item label="鏄惁鍒犻櫎0鍚� 1鏄�" prop="isdeleted"> - <el-input v-model="form.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀垹闄�0鍚� 1鏄�" v-trim/> - </el-form-item> - <el-form-item label="澶囨敞" prop="info"> - <el-input v-model="form.info" placeholder="璇疯緭鍏ュ娉�" v-trim/> - </el-form-item> + <h3 style="margin: 0 0 20px 0;">璁惧淇℃伅</h3> <el-form-item label="璁惧缂栧彿" prop="code"> <el-input v-model="form.code" placeholder="璇疯緭鍏ヨ澶囩紪鍙�" v-trim/> </el-form-item> @@ -39,53 +23,97 @@ <el-form-item label="閫氳鍦板潃" prop="linkAddr"> <el-input v-model="form.linkAddr" placeholder="璇疯緭鍏ラ�氳鍦板潃" v-trim/> </el-form-item> - <el-form-item label="鐘舵�� 0鏈粦瀹� 1鍦ㄤ綅 2鍊熷嚭" prop="status"> - <el-input v-model="form.status" placeholder="璇疯緭鍏ョ姸鎬� 0鏈粦瀹� 1鍦ㄤ綅 2鍊熷嚭" v-trim/> + <el-form-item label="绔彛鍙�" prop="port"> + <el-input v-model="form.port" placeholder="璇疯緭鍏ョ鍙e彿" v-trim/> </el-form-item> - <el-form-item label="绔彛" prop="port"> - <el-input v-model="form.port" placeholder="璇疯緭鍏ョ鍙�" v-trim/> + <el-form-item label="璁惧绠$悊鍛�" prop="managerIdList"> + <el-select v-model="form.managerIdList" filterable multiple placeholder="璇烽�夋嫨璁惧绠$悊鍛�"> + <el-option + v-for="item in memberList" + :key="item.id" + :label="item.name+'-'+item.companyName" + :value="item.id"> + </el-option> + </el-select> </el-form-item> - <el-form-item label="璁惧绠$悊鍛樼紪鐮侊紙鍏宠仈member)" prop="managerId"> - <el-input v-model="form.managerId" placeholder="璇疯緭鍏ヨ澶囩鐞嗗憳缂栫爜锛堝叧鑱攎ember)" v-trim/> + <el-form-item label="浣跨敤鏃堕暱" prop="useTime"> + <div style="width: 100%; display: flex; align-items: center;"> + <el-input v-model="form.useTime" placeholder="璇疯緭鍏ュ崟娆℃嬁鍙栭挜鍖欏彲浣跨敤鏃堕暱" v-trim style="flex: 1;"/> + <span style="margin-left: 20px;">鍗曚綅锛氬垎閽�</span> + </div> </el-form-item> - <el-form-item label="浣跨敤鏃堕暱(绉�)" prop="useTime"> - <el-input v-model="form.useTime" placeholder="璇疯緭鍏ヤ娇鐢ㄦ椂闀�(绉�)" v-trim/> + <el-form-item label="鍙岄噸楠岃瘉" prop="doubleAuth"> + <div style="width: 100%; display: flex; align-items: center;"> + <el-switch + v-model="form.doubleAuth" + active-color="#13ce66" + inactive-color="#ff4949" + :active-value="1" + :inactive-value="0"> + </el-switch> + <span style="margin-left: 20px; color: #999999;">寮�鍚弻閲嶈璇佸悗锛岄挜鍖欓鍙栨椂鍏堟牎楠岄獙璇佷汉韬唤锛屽啀鏍¢獙鍙告満韬唤</span> + </div> </el-form-item> - <el-form-item label="鏄惁鍙岄噸楠岃瘉 0鍚� 1鏄�" prop="doubleAuth"> - <el-input v-model="form.doubleAuth" placeholder="璇疯緭鍏ユ槸鍚﹀弻閲嶉獙璇� 0鍚� 1鏄�" v-trim/> - </el-form-item> - <el-form-item label="楠岃瘉浜虹紪鐮侊紙鍏宠仈member)" prop="authMemberId"> - <el-input v-model="form.authMemberId" placeholder="璇疯緭鍏ラ獙璇佷汉缂栫爜锛堝叧鑱攎ember)" v-trim/> - </el-form-item> - <el-form-item label="鎺掓暟" prop="rowNum"> - <el-input v-model="form.rowNum" placeholder="璇疯緭鍏ユ帓鏁�" v-trim/> - </el-form-item> - <el-form-item label="鍒楁暟" prop="columnNum"> - <el-input v-model="form.columnNum" placeholder="璇疯緭鍏ュ垪鏁�" v-trim/> - </el-form-item> - <el-form-item label="鏈�鍚庨�氳鏃堕棿" prop="haertTime"> - <el-date-picker v-model="form.haertTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ渶鍚庨�氳鏃堕棿"></el-date-picker> + <el-form-item label="楠岃瘉浜�" prop="authMemberIdList"> + <el-select v-model="form.authMemberIdList" filterable multiple placeholder="璇烽�夋嫨楠岃瘉浜�"> + <el-option + v-for="item in memberList" + :key="item.id" + :label="item.name+'-'+item.companyName" + :value="item.id"> + </el-option> + </el-select> </el-form-item> <el-form-item label="鎵�鍦ㄤ綅缃�" prop="lacation"> <el-input v-model="form.lacation" placeholder="璇疯緭鍏ユ墍鍦ㄤ綅缃�" v-trim/> </el-form-item> - <el-form-item label="缁忓害" prop="longitude"> - <el-input v-model="form.longitude" placeholder="璇疯緭鍏ョ粡搴�" v-trim/> + <el-form-item label="缁忕含搴�" prop="longitude"> + <div style="width: 100%; display: flex; align-items: center;"> + <el-input v-model="form.longitude" placeholder="璇疯緭鍏ョ粡绾害" v-trim/> + <a style="margin-left: 20px; flex-shrink: 0;" href="https://lbs.amap.com/tools/picker" target="_blank">缁忕含搴﹀湪绾挎嬀鍙栧湴鍧�</a> + </div> </el-form-item> - <el-form-item label="缁村害" prop="latitude"> - <el-input v-model="form.latitude" placeholder="璇疯緭鍏ョ淮搴�" v-trim/> + <el-form-item label="鐘舵��" prop="status"> + <el-switch + v-model="form.status" + active-color="#13ce66" + inactive-color="#ff4949" + :active-value="0" + :inactive-value="1"> + </el-switch> </el-form-item> - <el-form-item label="缂栫爜鏂瑰紡 0鑷姩缂栫爜 1鎵嬪姩缂栫爜" prop="noType"> - <el-input v-model="form.noType" placeholder="璇疯緭鍏ョ紪鐮佹柟寮� 0鑷姩缂栫爜 1鎵嬪姩缂栫爜" v-trim/> + <h3 style="margin: 20px 0;">鏌滅粍淇℃伅</h3> + <el-form-item label="鎺掑垪" prop="rowNum"> + <div style="width: 100%; display: flex; align-items: center;"> + <el-input v-model="form.rowNum" type="number" placeholder="璇疯緭鍏ユ帓鏁�" v-trim> + <template slot="append">鎺�</template> + </el-input> + <span style="margin: 0 20px;">x</span> + <el-input v-model="form.columnNum" type="number" placeholder="璇疯緭鍏ュ垪鏁�" v-trim> + <template slot="append">鍒�</template> + </el-input> + </div> </el-form-item> - <el-form-item label="缂栫爜鍓嶇紑" prop="noPrefix"> - <el-input v-model="form.noPrefix" placeholder="璇疯緭鍏ョ紪鐮佸墠缂�" v-trim/> + <el-form-item label="缂栫爜" prop="noType"> + <el-radio-group v-model="form.noType" @change="changeNoType"> + <el-radio :label="0">鑷姩缂栫爜</el-radio> + <el-radio :label="1">鎵嬪姩缂栫爜</el-radio> + </el-radio-group> </el-form-item> - <el-form-item label="缂栫爜浣嶆暟" prop="noLength"> - <el-input v-model="form.noLength" placeholder="璇疯緭鍏ョ紪鐮佷綅鏁�" v-trim/> + <el-form-item label="鍓嶇紑" prop="noPrefix" v-if="form.noType === 1"> + <div style="width: 100%; display: flex; align-items: center;"> + <el-input style="flex: 1;" v-model="form.noPrefix" placeholder="璇疯緭鍏ユ暟瀛楁垨瀛楁瘝" v-trim/> + <span style="margin: 0 20px;">浣嶆暟</span> + <el-input style="flex: 1;" v-model="form.noLength" placeholder="璇疯緭鍏ユ暟瀛�" v-trim/> + <span style="margin: 0 20px;">璧峰缂栧彿</span> + <el-input style="flex: 1;" v-model="form.noIndex" placeholder="璇疯緭鍏ユ暟瀛�" v-trim/> + </div> </el-form-item> - <el-form-item label="璧峰缂栫爜" prop="noIndex"> - <el-input v-model="form.noIndex" placeholder="璇疯緭鍏ヨ捣濮嬬紪鐮�" v-trim/> + <el-form-item label="鎺掑垪椤哄簭" prop="sortType" v-if="form.noType === 1"> + <el-radio-group v-model="form.sortType"> + <el-radio :label="0">浠庡乏寰�鍙�</el-radio> + <el-radio :label="1">浠庝笂鍚戜笅</el-radio> + </el-radio-group> </el-form-item> </el-form> </GlobalWindow> @@ -94,6 +122,7 @@ <script> import BaseOpera from '@/components/base/BaseOpera' import GlobalWindow from '@/components/common/GlobalWindow' +import { allList } from '@/api/business/member' export default { name: 'OperaJkCabinetWindow', extends: BaseOpera, @@ -103,37 +132,65 @@ // 琛ㄥ崟鏁版嵁 form: { id: null, - creator: '', - createDate: '', - editor: '', - editDate: '', - isdeleted: '', - info: '', code: '', name: '', devId: '', serialNo: '', linkAddr: '', - status: '', + status: 0, port: '', - managerId: '', + managerIdList: '', useTime: '', - doubleAuth: '', - authMemberId: '', + doubleAuth: 0, + authMemberIdList: '', rowNum: '', columnNum: '', - haertTime: '', lacation: '', longitude: '', latitude: '', - noType: '', + noType: 0, noPrefix: '', noLength: '', - noIndex: '' + noIndex: '', + sortType: 0 }, // 楠岃瘉瑙勫垯 rules: { - } + code: [ + { required: true, message: '璇疯緭鍏ヨ澶囩紪鍙�', trigger: 'blur' } + ], + name: [ + { required: true, message: '璇疯緭鍏ヨ澶囧悕绉�', trigger: 'blur' } + ], + devId: [ + { required: true, message: '璇疯緭鍏ヨ澶嘔D', trigger: 'blur' } + ], + linkAddr: [ + { required: true, message: '璇疯緭鍏ラ�氳鍦板潃', trigger: 'blur' } + ], + port: [ + { required: true, message: '璇疯緭鍏ョ鍙e彿', trigger: 'blur' } + ], + managerIdList: [ + { required: true, message: '璇烽�夋嫨璁惧绠$悊鍛�', trigger: 'blur' } + ], + authMemberIdList: [ + { required: true, message: '璇烽�夋嫨楠岃瘉浜�', trigger: 'blur' } + ], + rowNum: [ + { required: true, message: '璇疯緭鍏ユ帓鍒�', trigger: 'blur' } + ], + noType: [ + { required: true, message: '璇烽�夋嫨缂栫爜', trigger: 'blur' } + ], + noPrefix: [ + { required: true, message: '璇疯緭鍏ュ墠缂�', trigger: 'blur' } + ], + sortType: [ + { required: true, message: '璇疯緭鍏ユ帓鍒楅『搴�', trigger: 'blur' } + ] + }, + memberList: [] } }, created () { @@ -141,6 +198,42 @@ api: '/business/jkCabinet', 'field.id': 'id' }) + }, + methods: { + open (title, target) { + this.title = title + this.loadMember() + this.visible = true + // 鏂板缓 + if (target == null) { + this.$nextTick(() => { + this.$refs.form.resetFields() + this.form[this.configData['field.id']] = null + }) + return + } + // 缂栬緫 + this.$nextTick(() => { + for (const key in this.form) { + this.form[key] = target[key] + } + }) + }, + loadMember () { + allList({ + type: 2 + }).then(res => { + this.memberList = res + }) + }, + changeNoType() { + if (this.form.noType === 0) { + this.form.noPrefix = '' + this.form.noLength = '' + this.form.noIndex = '' + this.form.sortType = 0 + } + } } } </script> -- Gitblit v1.9.3