From 145dbc2a4f5bafcb432fb35d7bc91101aa3318d8 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期一, 13 十月 2025 10:15:44 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/wuhuyancao' into wuhuyancao
---
admin/src/components/business/cabinetDetails.vue | 199 +++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 199 insertions(+), 0 deletions(-)
diff --git a/admin/src/components/business/cabinetDetails.vue b/admin/src/components/business/cabinetDetails.vue
new file mode 100644
index 0000000..f08a6ba
--- /dev/null
+++ b/admin/src/components/business/cabinetDetails.vue
@@ -0,0 +1,199 @@
+<template>
+ <GlobalWindow
+ :title="title"
+ width="100%"
+ :visible.sync="visible"
+ :withFooter="false"
+ >
+ <el-form ref="searchForm" :model="searchForm" label-width="100px" inline>
+ <el-form-item label="閽ュ寵" prop="keyCode">
+ <el-input v-model="searchForm.keyCode" placeholder="璇疯緭鍏ラ挜鍖欑紪鐮佹垨鍚嶇О" @keypress.enter.native="getList"></el-input>
+ </el-form-item>
+ <el-form-item label="鐘舵��" prop="status">
+ <el-select v-model="searchForm.status" placeholder="璇烽�夋嫨" @change="getList">
+ <el-option label="鍏ㄩ儴" value=""></el-option>
+ <el-option label="鍚敤" :value="0"></el-option>
+ <el-option label="绂佺敤" :value="1"></el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="鏌滄牸鐘舵��" prop="bindStatus">
+ <el-select v-model="searchForm.bindStatus" placeholder="璇烽�夋嫨" @change="getList">
+ <el-option label="鍏ㄩ儴" value=""></el-option>
+ <el-option label="鏈粦瀹�" :value="0"></el-option>
+ <el-option label="宸茬粦瀹�" :value="1"></el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item>
+ <el-button type="primary" @click="getList">鎼滅储</el-button>
+ </el-form-item>
+ <el-form-item>
+ <el-button @click="reset">閲嶇疆</el-button>
+ </el-form-item>
+ </el-form>
+ <ul class="toolbar">
+ <li><el-button type="primary" @click="bathUnBindKeys">鎵归噺瑙g粦</el-button></li>
+ </ul>
+ <el-table
+ v-loading="loading"
+ :data="list"
+ stripe
+ >
+ <el-table-column prop="code" label="鏌滄牸缂栫爜" min-width="100px"></el-table-column>
+ <el-table-column prop="cabinetName" label="鎵�灞為挜鍖欐煖" min-width="100px"></el-table-column>
+ <el-table-column prop="keyId" label="缁戝畾閽ュ寵" min-width="100px">
+ <template slot-scope="{row}">
+ <el-select v-model="row.keyId" placeholder="璇烽�夋嫨" @change="blurFunc($event, row, 1)">
+ <el-option
+ v-for="item in keysAll"
+ :key="item.id"
+ :label="item.code"
+ :value="item.id"
+ :disabled="item.isBinding === 1">
+ </el-option>
+ </el-select>
+ </template>
+ </el-table-column>
+ <el-table-column label="鏉垮彿" min-width="100px">
+ <template slot-scope="{row}">
+ <el-input v-model="row.boardCode" @blur="blurFunc($event, row, 2)" placeholder="璇疯緭鍏ユ澘鍙�"></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column label="閫氶亾鍙�" min-width="100px">
+ <template slot-scope="{row}">
+ <el-input v-model="row.channelCode" @blur="blurFunc($event, row, 3)" placeholder="璇疯緭鍏ラ�氶亾鍙�"></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column label="鐘舵��" min-width="100px">
+ <template slot-scope="{row}">
+ <el-switch
+ @change="changeStatus($event, row.id)"
+ v-model="row.status"
+ active-color="#13ce66"
+ inactive-color="#ff4949"
+ :active-value="0"
+ :inactive-value="1">
+ </el-switch>
+ </template>
+ </el-table-column>
+ <el-table-column label="杩愯鐘舵��" min-width="100px">
+ <template slot-scope="{row}">
+ <el-link type="success" v-if="row.workingStatus === 0">姝e父</el-link>
+ <el-link type="warning" v-if="row.workingStatus === 1">鏁呴殰</el-link>
+ </template>
+ </el-table-column>
+ <el-table-column label="鏌滄牸鐘舵��" min-width="100px">
+ <template slot-scope="{row}">
+ <el-link type="warning" v-if="row.bindStatus === 0">鏈粦瀹�</el-link>
+ <el-link type="success" v-if="row.bindStatus === 1">宸茬粦瀹�</el-link>
+ </template>
+ </el-table-column>
+ </el-table>
+ </GlobalWindow>
+</template>
+
+<script>
+ import BaseOpera from '@/components/base/BaseOpera'
+ import GlobalWindow from '@/components/common/GlobalWindow'
+ import { fetchList, updateStatusById, unBindKeys, updateById } from '@/api/business/jkCabinetGrid'
+ import { list } from '@/api/business/jkKeys'
+ export default {
+ name: 'cabinetDetails',
+ extends: BaseOpera,
+ components: { GlobalWindow },
+ data () {
+ return {
+ id: null,
+ info: null,
+ searchForm: {
+ keyCode: '',
+ status: '',
+ bindStatus: ''
+ },
+ list: [],
+ keysAll: [],
+ loading: false
+ }
+ },
+ methods: {
+ open (title, id) {
+ this.title = title
+ this.id = id
+ this.getList()
+ this.getKeysAll()
+ this.visible = true
+ },
+ getKeysAll() {
+ list({ })
+ .then(res => {
+ this.keysAll = res
+ })
+ },
+ blurFunc(e, row, type) {
+ let obj = {
+ id: row.id
+ }
+ if (type === 1) {
+ obj.keyId = row.keyId
+ } else if (type === 2) {
+ obj.boardCode = row.boardCode
+ } else if (type === 3) {
+ obj.channelCode = row.channelCode
+ }
+ updateById(obj)
+ .then(res => {
+ this.getList()
+ if (type === 1) {
+ this.getKeysAll()
+ }
+ })
+ },
+ bathUnBindKeys() {
+ this.$confirm('纭鎵归噺瑙g粦鍚�?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ unBindKeys(this.list.map(item => item.id))
+ .then(res => {
+ this.getList()
+ })
+ }).catch(() => {
+
+ });
+ },
+ changeStatus(status, id) {
+ updateStatusById({ id, status })
+ .then(res => {
+ this.getList()
+ })
+ },
+ handleCurrentChange(e) {
+ this.page = e
+ this.getList()
+ },
+ reset() {
+ this.searchForm.keyId = ''
+ this.searchForm.status = ''
+ this.searchForm.workingStatus = ''
+ this.getList()
+ },
+ getList() {
+ this.loading = true
+ fetchList({
+ capacity: 99999,
+ page: 1,
+ model: {
+ cabinetId: this.id,
+ keyId: this.searchForm.keyId,
+ status: this.searchForm.status,
+ workingStatus: this.searchForm.workingStatus
+ }
+ }).then(res => {
+ this.list = res.records
+ }).finally(() => {
+ this.loading = false
+ })
+ }
+ }
+ }
+</script>
--
Gitblit v1.9.3