From 7298d5354963a88643a543b51b90192dc9fc934c Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期四, 11 九月 2025 18:43:14 +0800
Subject: [PATCH] 最新版本541200007
---
admin/src/views/business/device.vue | 181 +++++++++++++++++++++++++--------------------
1 files changed, 101 insertions(+), 80 deletions(-)
diff --git a/admin/src/views/business/device.vue b/admin/src/views/business/device.vue
index dc6a3de..584e995 100644
--- a/admin/src/views/business/device.vue
+++ b/admin/src/views/business/device.vue
@@ -1,63 +1,70 @@
<template>
- <TableLayout :permissions="['business:device:query']">
- <!-- 鎼滅储琛ㄥ崟 -->
- <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
- <el-form-item label="闂ㄧ鍚嶇О" prop="name">
- <el-input v-model="searchForm.name" placeholder="璇疯緭鍏ラ棬绂佸悕绉�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="闂ㄧ绛夌骇" prop="level">
- <el-select v-model="searchForm.level" placeholder="璇烽�夋嫨闂ㄧ绛夌骇" @keypress.enter.native="search">
- <el-option label="涓�绾ч棬绂�" value="1"></el-option>
- <el-option label="浜岀骇闂ㄧ" value="2"></el-option>
- <el-option label="涓夌骇闂ㄧ" value="3"></el-option>
- </el-select>
- </el-form-item>
- <section>
- <el-button type="primary" @click="search">鎼滅储</el-button>
- <el-button @click="reset">閲嶇疆</el-button>
- </section>
- </el-form>
- <!-- 琛ㄦ牸鍜屽垎椤� -->
- <template v-slot:table-wrap>
- <ul class="toolbar">
- <li><el-button type="primary" @click="synchronousData">鍚屾</el-button></li>
- </ul>
- <el-table
- v-loading="isWorking.search"
- :data="tableData.list"
- stripe
- >
- <el-table-column prop="manufature" label="鍘傚晢" min-width="100px"></el-table-column>
- <el-table-column prop="no" label="璁惧缂栧彿" min-width="100px"></el-table-column>
- <el-table-column prop="name" label="闂ㄧ鍚嶇О" min-width="100px"></el-table-column>
- <el-table-column prop="level" label="闂ㄧ绛夌骇" min-width="100px"></el-table-column>
- <el-table-column prop="status" label="璁惧鐘舵��" min-width="100px">
- <template slot-scope="{row}">
- <span v-if="row.status === 0">绂佺敤</span>
- <span v-if="row.status === 1">鍚敤</span>
- </template>
- </el-table-column>
- <el-table-column
- v-if="containPermissions(['business:device:update'])"
- label="鎿嶄綔"
- min-width="120"
- fixed="right"
- >
- <template slot-scope="{row}">
- <el-button type="text" @click="$refs.operaDeviceWindow.open('缂栬緫璁惧淇℃伅琛�', row)" icon="el-icon-edit" v-permissions="['business:company:update']">缂栬緫</el-button>
- </template>
- </el-table-column>
- </el-table>
- <pagination
- @size-change="handleSizeChange"
- @current-change="handlePageChange"
- :pagination="tableData.pagination"
- >
- </pagination>
- </template>
- <!-- 鏂板缓/淇敼 -->
- <OperaDeviceWindow ref="operaDeviceWindow" @success="handlePageChange"/>
- </TableLayout>
+ <TableLayout :permissions="['business:device:query']">
+ <!-- 鎼滅储琛ㄥ崟 -->
+ <div ref="QueryFormRef" slot="search-form">
+ <el-form ref="searchForm" :model="searchForm" label-width="100px" inline>
+ <el-form-item label="闂ㄧ鐐瑰悕绉�" prop="doorName">
+ <el-input v-model="searchForm.doorName" placeholder="璇疯緭鍏ラ棬绂佺偣鍚嶇О" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍖哄煙鍚嶇О" prop="regionPathName">
+ <el-input v-model="searchForm.regionPathName" placeholder="璇疯緭鍏ュ尯鍩熷悕绉�"
+ @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鏄惁鍥尯鍏ュ彛" prop="isEntrance">
+ <el-select v-model="searchForm.isEntrance" placeholder="璇烽�夋嫨">
+ <el-option label="鏄�" value="1"></el-option>
+ <el-option label="鍚�" value="0"></el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="鍦ㄧ嚎鐘舵��" prop="online">
+ <el-select v-model="searchForm.online" placeholder="璇烽�夋嫨" clearable>
+ <el-option label="绂荤嚎" value="0"></el-option>
+ <el-option label="鍦ㄧ嚎" value="1"></el-option>
+ </el-select>
+ </el-form-item>
+ <section>
+ <el-button type="primary" @click="search">鎼滅储</el-button>
+ <el-button @click="reset">閲嶇疆</el-button>
+ </section>
+ </el-form>
+ </div>
+
+ <!-- 琛ㄦ牸鍜屽垎椤� -->
+ <template v-slot:table-wrap>
+ <ul class="toolbar">
+ <li><el-button type="primary" @click="synchronousData">鍚屾</el-button></li>
+ </ul>
+ <el-table :height="tableHeightNew" v-loading="isWorking.search" :data="tableData.list" stripe>
+ <el-table-column label="搴忓彿" width="55" fixed><template slot-scope="scope">{{ scope.$index + 1
+ }}</template></el-table-column>
+ <el-table-column prop="name" label="璁惧鍚嶇О"></el-table-column>
+ <el-table-column prop="doorName" label="闂ㄧ鐐瑰悕绉�"></el-table-column>
+ <el-table-column prop="regionPathName" label="鍖哄煙鍚嶇О"></el-table-column>
+ <el-table-column prop="doorNo" label="闂ㄧ鐐圭紪鍙�"></el-table-column>
+ <el-table-column prop="manufature" label="鍘傚晢"></el-table-column>
+ <el-table-column prop="online" label="鍦ㄧ嚎鐘舵��">
+ <template slot-scope="{row}">
+ <span v-if="row.online == 0">绂荤嚎</span>
+ <span v-if="row.online == 1">鍦ㄧ嚎</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="ip" label="璁惧ip"></el-table-column>
+ <el-table-column prop="port" label="璁惧绔彛"></el-table-column>
+ <el-table-column label="鏄惁鍥尯鍏ュ彛">
+ <template slot-scope="{row}">
+ <el-switch @change="changeManufature($event, row)" v-model="row.isEntrance" active-color="#13ce66"
+ inactive-color="#ff4949" :active-value="1" :inactive-value="0">
+ </el-switch>
+ </template>
+ </el-table-column>
+ <el-table-column prop="no" width="200px" label="璁惧鍙�"></el-table-column>
+ </el-table>
+ <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination">
+ </pagination>
+ </template>
+ <!-- 鏂板缓/淇敼 -->
+ <!-- <OperaDeviceWindow ref="operaDeviceWindow" @success="handlePageChange"/>-->
+ </TableLayout>
</template>
<script>
@@ -65,22 +72,25 @@
import TableLayout from '@/layouts/TableLayout'
import Pagination from '@/components/common/Pagination'
import OperaDeviceWindow from '@/components/business/OperaDeviceWindow'
-import { syncDevices } from '@/api/business/device'
+import { syncDevices, updateEntranceById } from '@/api/business/device'
export default {
name: 'Device',
extends: BaseTable,
components: { TableLayout, Pagination, OperaDeviceWindow },
- data () {
+ data() {
return {
// 鎼滅储
searchForm: {
- name: '',
- level: ''
+ doorName: '',
+ regionPathName: '',
+ isEntrance: '',
+ online: '',
+ type: 0
},
options: []
}
},
- created () {
+ created() {
this.config({
module: '璁惧淇℃伅琛�',
api: '/business/device',
@@ -89,24 +99,35 @@
})
this.search()
},
+ mounted() {
+ this.$nextTick(() => {
+ this.tableHeight = document.body.scrollHeight - this.$refs.QueryFormRef.offsetHeight - 300
+ })
+ },
methods: {
- synchronousData () {
- this.$confirm('纭鍚屾鍚�?', '鎻愮ず', {
- confirmButtonText: '纭畾',
- cancelButtonText: '鍙栨秷',
- type: 'warning'
- }).then(() => {
- syncDevices({})
- .then(res => {
- this.$message({
- type: 'success',
- message: '鍚屾鎴愬姛'
- })
- this.search()
- })
- }).catch(() => {
-
+ changeManufature(e, row) {
+ updateEntranceById({
+ id: row.id,
+ isEntrance: e
})
+ },
+ synchronousData() {
+ this.$dialog.actionConfirm('鎿嶄綔纭鎻愰啋', '鎮ㄧ‘璁ゅ悓姝ュ叏閮ㄤ俊鎭悧锛�')
+ .then(() => {
+ this.isWorking.delete = true
+ syncDevices({ type: 0 })
+ .then(res => {
+ this.$tip.apiSuccess(res || '鍚屾鎴愬姛')
+ this.search()
+ })
+ .catch(e => {
+ this.$tip.apiFailed(e)
+ })
+ .finally(() => {
+ this.isWorking.delete = false
+ })
+ })
+ .catch(() => { })
}
}
}
--
Gitblit v1.9.3