|
@@ -31,11 +31,20 @@
|
|
|
</div>
|
|
</div>
|
|
|
<div class="changeItems">
|
|
<div class="changeItems">
|
|
|
<div
|
|
<div
|
|
|
|
|
+ class="changeItem"
|
|
|
|
|
+ :class="roomTypeIndex == '全部' ? 'changeItem_active' : ''"
|
|
|
|
|
+ @click="changeTypes('全部')"
|
|
|
|
|
+ >
|
|
|
|
|
+ 全部
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div
|
|
|
v-for="i in roomTypes"
|
|
v-for="i in roomTypes"
|
|
|
class="changeItem"
|
|
class="changeItem"
|
|
|
:class="roomTypeIndex == i ? 'changeItem_active' : ''"
|
|
:class="roomTypeIndex == i ? 'changeItem_active' : ''"
|
|
|
@click="changeTypes(i)"
|
|
@click="changeTypes(i)"
|
|
|
- >{{ i }}</div>
|
|
|
|
|
|
|
+ >
|
|
|
|
|
+ {{ i }}
|
|
|
|
|
+ </div>
|
|
|
</div>
|
|
</div>
|
|
|
<div class="changeItems">
|
|
<div class="changeItems">
|
|
|
<el-button
|
|
<el-button
|
|
@@ -75,11 +84,11 @@
|
|
|
<div class="footer" v-loading="loading">
|
|
<div class="footer" v-loading="loading">
|
|
|
<div class="floor" v-for="item in roomList.list">
|
|
<div class="floor" v-for="item in roomList.list">
|
|
|
<div class="title">
|
|
<div class="title">
|
|
|
- <span class="t1">{{ item.title }}</span
|
|
|
|
|
- ><span class="t2">{{ item.roomlength }}</span>
|
|
|
|
|
|
|
+ <span class="t1">{{ item.name }} <span style="color:#1e7dfb">( {{ item.roomType==1?'全':'钟' }} )</span></span>
|
|
|
|
|
+ <span class="t2"> / 共{{ item.total }}间</span>
|
|
|
</div>
|
|
</div>
|
|
|
<div class="roomList">
|
|
<div class="roomList">
|
|
|
- <div class="room" v-for="i in item.children">
|
|
|
|
|
|
|
+ <div class="room" v-for="i in item.vos">
|
|
|
<el-popover
|
|
<el-popover
|
|
|
popper-class="roominfoPopper"
|
|
popper-class="roominfoPopper"
|
|
|
placement="bottom-start"
|
|
placement="bottom-start"
|
|
@@ -90,54 +99,53 @@
|
|
|
>
|
|
>
|
|
|
<template #reference>
|
|
<template #reference>
|
|
|
<div @click="itemClick(i)">
|
|
<div @click="itemClick(i)">
|
|
|
- <div class="roomNum">{{ i.roomNum }}</div>
|
|
|
|
|
|
|
+ <div class="roomNum">{{ i.roomNumber }}</div>
|
|
|
<div class="rLock">房间锁</div>
|
|
<div class="rLock">房间锁</div>
|
|
|
<div class="wifi">
|
|
<div class="wifi">
|
|
|
- <img src="@/assets/icons/wifiOpen.png" alt="" />
|
|
|
|
|
- <img src="@/assets/icons/wifiClose.png" alt="" />
|
|
|
|
|
- {{ i.wifiMAC }}
|
|
|
|
|
|
|
+ <img v-if="i.equipmentState==1" src="@/assets/icons/wifiOpen.png" alt="" />
|
|
|
|
|
+ <img v-else src="@/assets/icons/wifiClose.png" alt="" />
|
|
|
|
|
+ {{ i.equipmentType }}
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
|
<div class="roomInfo">
|
|
<div class="roomInfo">
|
|
|
- <div class="title">{{ item.title }} (房间锁)</div>
|
|
|
|
|
|
|
+ <div class="close" @click="closeRoom(i)">
|
|
|
|
|
+ <img src="@/assets/icons/close.png" alt="" />
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="title">{{ i.roomNumber }} (房间锁)</div>
|
|
|
<div class="content">
|
|
<div class="content">
|
|
|
<div class="lefts">
|
|
<div class="lefts">
|
|
|
<div>
|
|
<div>
|
|
|
<span>设备型号</span>
|
|
<span>设备型号</span>
|
|
|
- <span>{{ i.shebei }}</span>
|
|
|
|
|
|
|
+ <span>{{ i.equipmentType }}</span>
|
|
|
</div>
|
|
</div>
|
|
|
<div>
|
|
<div>
|
|
|
<span>网络类型</span>
|
|
<span>网络类型</span>
|
|
|
- <span>{{ i.wangluo }}</span>
|
|
|
|
|
|
|
+ <span>{{ i.networkType }}</span>
|
|
|
</div>
|
|
</div>
|
|
|
<div>
|
|
<div>
|
|
|
<span>WIFI MAC</span>
|
|
<span>WIFI MAC</span>
|
|
|
- <span>{{ i.wifiMAC }}</span>
|
|
|
|
|
- </div>
|
|
|
|
|
- <div>
|
|
|
|
|
- <span>蓝牙MAC</span>
|
|
|
|
|
- <span>{{ i.lanyaMAC }}</span>
|
|
|
|
|
|
|
+ <span>{{ i.wifiMac }}</span>
|
|
|
</div>
|
|
</div>
|
|
|
<div>
|
|
<div>
|
|
|
<span>绑定时间</span>
|
|
<span>绑定时间</span>
|
|
|
- <span>{{ i.time }}</span>
|
|
|
|
|
|
|
+ <span>{{ i.bindingTime }}</span>
|
|
|
</div>
|
|
</div>
|
|
|
<div>
|
|
<div>
|
|
|
<span>电量</span>
|
|
<span>电量</span>
|
|
|
- <span>{{ i.dianliang }}</span>
|
|
|
|
|
|
|
+ <span v-if="electricQuantity">{{ electricQuantity }}%</span>
|
|
|
</div>
|
|
</div>
|
|
|
<div>
|
|
<div>
|
|
|
<span>网络状态</span>
|
|
<span>网络状态</span>
|
|
|
- <span>{{ i.statu }}</span>
|
|
|
|
|
|
|
+ <span v-if="i.networkState==1">在线</span>
|
|
|
|
|
+ <span v-if="i.networkState==0">离线</span>
|
|
|
|
|
+ <span v-if="i.networkState==null"></span>
|
|
|
</div>
|
|
</div>
|
|
|
<div>
|
|
<div>
|
|
|
<span>设备状态</span>
|
|
<span>设备状态</span>
|
|
|
- <span>{{ i.shebeiStatu }}</span>
|
|
|
|
|
- </div>
|
|
|
|
|
- <div>
|
|
|
|
|
- <span>上一次开锁</span>
|
|
|
|
|
- <span>{{ i.lastLock }}</span>
|
|
|
|
|
|
|
+ <span v-if="i.equipmentState==1">在线</span>
|
|
|
|
|
+ <span v-if="i.equipmentState==0">离线</span>
|
|
|
|
|
+ <span v-if="i.equipmentState==null"></span>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
<div class="rigths">
|
|
<div class="rigths">
|
|
@@ -149,11 +157,11 @@
|
|
|
<img src="@/assets/icons/key.png" alt="" />
|
|
<img src="@/assets/icons/key.png" alt="" />
|
|
|
<span>钥匙管理</span>
|
|
<span>钥匙管理</span>
|
|
|
</div>
|
|
</div>
|
|
|
- <div @click="newsClick">
|
|
|
|
|
|
|
+ <div @click="newsClick(i)">
|
|
|
<img src="@/assets/icons/news.png" alt="" />
|
|
<img src="@/assets/icons/news.png" alt="" />
|
|
|
<span>消息列表</span>
|
|
<span>消息列表</span>
|
|
|
</div>
|
|
</div>
|
|
|
- <div @click="unlockingClick">
|
|
|
|
|
|
|
+ <div @click="unlockingClick(i)">
|
|
|
<img src="@/assets/icons/unlocking.png" alt="" />
|
|
<img src="@/assets/icons/unlocking.png" alt="" />
|
|
|
<span>远程开锁</span>
|
|
<span>远程开锁</span>
|
|
|
</div>
|
|
</div>
|
|
@@ -161,7 +169,15 @@
|
|
|
<img src="@/assets/icons/resetPass.png" alt="" />
|
|
<img src="@/assets/icons/resetPass.png" alt="" />
|
|
|
<span>重置管理员密码</span>
|
|
<span>重置管理员密码</span>
|
|
|
</div>
|
|
</div>
|
|
|
- <div @click="deblockingClick">
|
|
|
|
|
|
|
+ <div @click="bindingClick(i)" v-if="i.equipmentState!=1">
|
|
|
|
|
+ <img
|
|
|
|
|
+ class="deblocking"
|
|
|
|
|
+ src="@/assets/icons/binding.png"
|
|
|
|
|
+ alt=""
|
|
|
|
|
+ />
|
|
|
|
|
+ <span>绑定设备</span>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div @click="deblockingClick(i)" v-if="i.equipmentState==1">
|
|
|
<img
|
|
<img
|
|
|
class="deblocking"
|
|
class="deblocking"
|
|
|
src="@/assets/icons/deblocking.png"
|
|
src="@/assets/icons/deblocking.png"
|
|
@@ -185,7 +201,7 @@
|
|
|
:close-on-press-escape="false"
|
|
:close-on-press-escape="false"
|
|
|
title="消息列表"
|
|
title="消息列表"
|
|
|
align-center
|
|
align-center
|
|
|
- width="800"
|
|
|
|
|
|
|
+ width="1000"
|
|
|
:before-close="cancelNews"
|
|
:before-close="cancelNews"
|
|
|
>
|
|
>
|
|
|
<div class="middle">
|
|
<div class="middle">
|
|
@@ -209,8 +225,8 @@
|
|
|
<div v-if="newsIndex == 1">
|
|
<div v-if="newsIndex == 1">
|
|
|
<div class="footers" v-loading="loading">
|
|
<div class="footers" v-loading="loading">
|
|
|
<el-table
|
|
<el-table
|
|
|
- :row-class-name="tableRowClassName2"
|
|
|
|
|
- :data="roomList.list"
|
|
|
|
|
|
|
+ :row-class-name="tableRowClassName"
|
|
|
|
|
+ :data="newTableList"
|
|
|
@selection-change="handleSelectionChange"
|
|
@selection-change="handleSelectionChange"
|
|
|
style="width: 100%; height: 550px"
|
|
style="width: 100%; height: 550px"
|
|
|
:header-cell-style="{
|
|
:header-cell-style="{
|
|
@@ -219,10 +235,10 @@
|
|
|
border: 0,
|
|
border: 0,
|
|
|
}"
|
|
}"
|
|
|
>
|
|
>
|
|
|
- <el-table-column align="center" prop="houseName" label="姓名">
|
|
|
|
|
|
|
+ <el-table-column align="center" prop="roomNumber" label="房间号">
|
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
<el-table-column align="center" prop="setDate" label="角色" />
|
|
<el-table-column align="center" prop="setDate" label="角色" />
|
|
|
- <el-table-column align="center" prop="price" label="解锁类型" />
|
|
|
|
|
|
|
+ <el-table-column align="center" prop="unlockType" label="解锁类型" />
|
|
|
<el-table-column
|
|
<el-table-column
|
|
|
align="center"
|
|
align="center"
|
|
|
prop="operationName"
|
|
prop="operationName"
|
|
@@ -230,7 +246,7 @@
|
|
|
/>
|
|
/>
|
|
|
<el-table-column
|
|
<el-table-column
|
|
|
align="center"
|
|
align="center"
|
|
|
- prop="operationTime"
|
|
|
|
|
|
|
+ prop="updateTime"
|
|
|
label="消息时间"
|
|
label="消息时间"
|
|
|
>
|
|
>
|
|
|
</el-table-column>
|
|
</el-table-column>
|
|
@@ -251,8 +267,8 @@
|
|
|
<div v-if="newsIndex == 2">
|
|
<div v-if="newsIndex == 2">
|
|
|
<div class="footers" v-loading="loading">
|
|
<div class="footers" v-loading="loading">
|
|
|
<el-table
|
|
<el-table
|
|
|
- :row-class-name="tableRowClassName2"
|
|
|
|
|
- :data="roomList.list"
|
|
|
|
|
|
|
+ :row-class-name="tableRowClassName"
|
|
|
|
|
+ :data="newTableList"
|
|
|
@selection-change="handleSelectionChange"
|
|
@selection-change="handleSelectionChange"
|
|
|
style="width: 100%; height: 550px"
|
|
style="width: 100%; height: 550px"
|
|
|
:header-cell-style="{
|
|
:header-cell-style="{
|
|
@@ -261,18 +277,18 @@
|
|
|
border: 0,
|
|
border: 0,
|
|
|
}"
|
|
}"
|
|
|
>
|
|
>
|
|
|
- <el-table-column align="center" prop="houseName" label="操作编号">
|
|
|
|
|
|
|
+ <el-table-column align="center" prop="roomNumber" label="房间号">
|
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
- <el-table-column align="center" prop="setDate" label="类型" />
|
|
|
|
|
- <el-table-column align="center" prop="price" label="操作人" />
|
|
|
|
|
|
|
+ <el-table-column align="center" prop="type" label="类型" />
|
|
|
|
|
+ <el-table-column align="center" prop="operatorName" label="操作人" />
|
|
|
<el-table-column
|
|
<el-table-column
|
|
|
align="center"
|
|
align="center"
|
|
|
- prop="operationName"
|
|
|
|
|
|
|
+ prop="dataTime"
|
|
|
label="操作时间"
|
|
label="操作时间"
|
|
|
/>
|
|
/>
|
|
|
<el-table-column
|
|
<el-table-column
|
|
|
align="center"
|
|
align="center"
|
|
|
- prop="operationTime"
|
|
|
|
|
|
|
+ prop="content"
|
|
|
label="操作内容"
|
|
label="操作内容"
|
|
|
>
|
|
>
|
|
|
</el-table-column>
|
|
</el-table-column>
|
|
@@ -310,7 +326,7 @@
|
|
|
color="rgba(41, 109, 227, 1)"
|
|
color="rgba(41, 109, 227, 1)"
|
|
|
class="queding"
|
|
class="queding"
|
|
|
type="primary"
|
|
type="primary"
|
|
|
- @click="submitAdd(ruleFormRef)"
|
|
|
|
|
|
|
+ @click="unlockingSubmit"
|
|
|
>
|
|
>
|
|
|
确定
|
|
确定
|
|
|
</el-button>
|
|
</el-button>
|
|
@@ -319,6 +335,51 @@
|
|
|
</div>
|
|
</div>
|
|
|
</el-dialog>
|
|
</el-dialog>
|
|
|
|
|
|
|
|
|
|
+ <!-- 绑定设备 -->
|
|
|
|
|
+ <el-dialog
|
|
|
|
|
+ class="BindingDialog"
|
|
|
|
|
+ v-model="bindingVisible"
|
|
|
|
|
+ :close-on-click-modal="false"
|
|
|
|
|
+ :close-on-press-escape="false"
|
|
|
|
|
+ title="绑定设备"
|
|
|
|
|
+ align-center
|
|
|
|
|
+ width="450"
|
|
|
|
|
+ :before-close="cancelBinding"
|
|
|
|
|
+ >
|
|
|
|
|
+ <div class="middle">
|
|
|
|
|
+ <el-form
|
|
|
|
|
+ ref="ruleFormRef"
|
|
|
|
|
+ :model="bindingRef"
|
|
|
|
|
+ :rules="bindingrules"
|
|
|
|
|
+ label-width="100px"
|
|
|
|
|
+ class="demo-ruleForm"
|
|
|
|
|
+ :size="formSize"
|
|
|
|
|
+ label-position="left"
|
|
|
|
|
+ status-icon
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-form-item label="绑定设备 :" prop="luid">
|
|
|
|
|
+ <el-input
|
|
|
|
|
+ style="width: 250px"
|
|
|
|
|
+ v-model="bindingList.luid"
|
|
|
|
|
+ placeholder="请输入设备id"
|
|
|
|
|
+ clearable
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item class="options">
|
|
|
|
|
+ <el-button
|
|
|
|
|
+ color="rgba(0, 97, 255, 1)"
|
|
|
|
|
+ class="queding"
|
|
|
|
|
+ type="primary"
|
|
|
|
|
+ @click="bindingSubmit(bindingRef)"
|
|
|
|
|
+ >
|
|
|
|
|
+ 确定
|
|
|
|
|
+ </el-button>
|
|
|
|
|
+ <el-button @click="cancelBinding">取消</el-button>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ </el-form>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </el-dialog>
|
|
|
|
|
+
|
|
|
<!-- 解绑设备 -->
|
|
<!-- 解绑设备 -->
|
|
|
<el-dialog
|
|
<el-dialog
|
|
|
class="unlockingDialog"
|
|
class="unlockingDialog"
|
|
@@ -337,7 +398,7 @@
|
|
|
color="rgba(41, 109, 227, 1)"
|
|
color="rgba(41, 109, 227, 1)"
|
|
|
class="queding"
|
|
class="queding"
|
|
|
type="primary"
|
|
type="primary"
|
|
|
- @click="submitAdd(ruleFormRef)"
|
|
|
|
|
|
|
+ @click="deblockSubmit"
|
|
|
>
|
|
>
|
|
|
确定
|
|
确定
|
|
|
</el-button>
|
|
</el-button>
|
|
@@ -548,7 +609,7 @@
|
|
|
</template> -->
|
|
</template> -->
|
|
|
<div class="table">
|
|
<div class="table">
|
|
|
<el-table
|
|
<el-table
|
|
|
- :row-class-name="tableRowClassName2"
|
|
|
|
|
|
|
+ :row-class-name="tableRowClassName"
|
|
|
:data="tableData.list"
|
|
:data="tableData.list"
|
|
|
@selection-change="handleSelectionChange"
|
|
@selection-change="handleSelectionChange"
|
|
|
style="width: 100%; height: 200px"
|
|
style="width: 100%; height: 200px"
|
|
@@ -664,7 +725,7 @@
|
|
|
</template> -->
|
|
</template> -->
|
|
|
<div class="table">
|
|
<div class="table">
|
|
|
<el-table
|
|
<el-table
|
|
|
- :row-class-name="tableRowClassName2"
|
|
|
|
|
|
|
+ :row-class-name="tableRowClassName"
|
|
|
:data="tableData.list"
|
|
:data="tableData.list"
|
|
|
@selection-change="handleSelectionChange"
|
|
@selection-change="handleSelectionChange"
|
|
|
style="width: 100%; height: 200px"
|
|
style="width: 100%; height: 200px"
|
|
@@ -765,7 +826,7 @@
|
|
|
</template> -->
|
|
</template> -->
|
|
|
<div class="table">
|
|
<div class="table">
|
|
|
<el-table
|
|
<el-table
|
|
|
- :row-class-name="tableRowClassName2"
|
|
|
|
|
|
|
+ :row-class-name="tableRowClassName"
|
|
|
:data="roomList.list"
|
|
:data="roomList.list"
|
|
|
@selection-change="handleSelectionChange"
|
|
@selection-change="handleSelectionChange"
|
|
|
style="width: 100%; height: 200px"
|
|
style="width: 100%; height: 200px"
|
|
@@ -1214,8 +1275,8 @@ const searchInput = reactive({
|
|
|
keyWord: "",
|
|
keyWord: "",
|
|
|
}); // 搜索按钮数据
|
|
}); // 搜索按钮数据
|
|
|
|
|
|
|
|
-const roomTypes=ref();// 房间类型数据
|
|
|
|
|
-const roomTypeIndex=ref()// 选中的房间类型
|
|
|
|
|
|
|
+const roomTypes = ref(); // 房间类型数据
|
|
|
|
|
+const roomTypeIndex = ref("全部"); // 选中的房间类型
|
|
|
const roomList = reactive({
|
|
const roomList = reactive({
|
|
|
list: [
|
|
list: [
|
|
|
{
|
|
{
|
|
@@ -1511,6 +1572,7 @@ const roomList = reactive({
|
|
|
},
|
|
},
|
|
|
],
|
|
],
|
|
|
});
|
|
});
|
|
|
|
|
+const electricQuantity=ref() // 每个房间的电量
|
|
|
|
|
|
|
|
// 设置临时总卡 (头部按钮--------------------------------------------------------)
|
|
// 设置临时总卡 (头部按钮--------------------------------------------------------)
|
|
|
const temporaryCardVisible = ref(false);
|
|
const temporaryCardVisible = ref(false);
|
|
@@ -1574,14 +1636,30 @@ const temporaryCardRules = reactive({
|
|
|
// 消息列表弹窗(----------------------------------------------------)
|
|
// 消息列表弹窗(----------------------------------------------------)
|
|
|
const newsVisible = ref(false);
|
|
const newsVisible = ref(false);
|
|
|
const newsIndex = ref(1);
|
|
const newsIndex = ref(1);
|
|
|
|
|
+const newshouseNumberId=ref()
|
|
|
const newsPage = ref(1); // 当前页
|
|
const newsPage = ref(1); // 当前页
|
|
|
-const newsSize = ref(7);
|
|
|
|
|
|
|
+const newsSize = ref(10);
|
|
|
const newsTotal = ref(20); // 当前总数
|
|
const newsTotal = ref(20); // 当前总数
|
|
|
|
|
+const newTableList=ref()
|
|
|
|
|
|
|
|
// 远程开锁(--------------------------------------------------------)
|
|
// 远程开锁(--------------------------------------------------------)
|
|
|
const unlockingVisible = ref(false);
|
|
const unlockingVisible = ref(false);
|
|
|
|
|
+const unlockList = reactive({ luid: "", roomNumber: "",houseNumberId:'' });
|
|
|
|
|
+
|
|
|
|
|
+// 绑定设备 (--------------------------------------------------------)
|
|
|
|
|
+const bindingVisible = ref(false);
|
|
|
|
|
+const bindingRef=ref();
|
|
|
|
|
+const bindingList = reactive({ houseNumberId:"",luid: "" });
|
|
|
|
|
+// 表单验证
|
|
|
|
|
+const bindingrules = reactive({
|
|
|
|
|
+ luid: [
|
|
|
|
|
+ { required: true, message: "姓名不能为空", trigger: "blur" },
|
|
|
|
|
+ ],
|
|
|
|
|
+});
|
|
|
|
|
+
|
|
|
// 解绑设备 (--------------------------------------------------------)
|
|
// 解绑设备 (--------------------------------------------------------)
|
|
|
const deblockingVisible = ref(false);
|
|
const deblockingVisible = ref(false);
|
|
|
|
|
+const dellockList = reactive({ houseNumberId: "" });
|
|
|
// 禁用门锁 (--------------------------------------------------------)
|
|
// 禁用门锁 (--------------------------------------------------------)
|
|
|
const forbiddenVisible = ref(false);
|
|
const forbiddenVisible = ref(false);
|
|
|
// 重置管理员密码 (--------------------------------------------------------)
|
|
// 重置管理员密码 (--------------------------------------------------------)
|
|
@@ -1811,33 +1889,46 @@ const identityCardTitle = ref("");
|
|
|
// const identityCardNum = ref(""); // 身份证卡号
|
|
// const identityCardNum = ref(""); // 身份证卡号
|
|
|
const identityCardIndex = ref(0); // 读卡步骤
|
|
const identityCardIndex = ref(0); // 读卡步骤
|
|
|
|
|
|
|
|
-watch(
|
|
|
|
|
- () => searchInput.createTime,
|
|
|
|
|
- (newVal, oldVal) => {
|
|
|
|
|
- console.log("监听时间:", newVal);
|
|
|
|
|
- if (newVal == null) {
|
|
|
|
|
- getList();
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-);
|
|
|
|
|
-
|
|
|
|
|
-// 点击房间查看面板操作
|
|
|
|
|
-const itemClick = (i) => {
|
|
|
|
|
|
|
+// 点击房间查看面板操作 (--------------------------------------------------)
|
|
|
|
|
+const itemClick = async (i) => {
|
|
|
roomList.list.forEach((item) => {
|
|
roomList.list.forEach((item) => {
|
|
|
- item.children.forEach((ii) => {
|
|
|
|
|
|
|
+ item.vos.forEach((ii) => {
|
|
|
ii.visible = false;
|
|
ii.visible = false;
|
|
|
});
|
|
});
|
|
|
});
|
|
});
|
|
|
i.visible = true;
|
|
i.visible = true;
|
|
|
- // if (i.visible == true) {
|
|
|
|
|
- // i.visible = false;
|
|
|
|
|
- // } else {
|
|
|
|
|
- // i.visible = true;
|
|
|
|
|
- // }
|
|
|
|
|
|
|
+ let data = {
|
|
|
|
|
+ houseNumberId: i.houseNumberId,
|
|
|
|
|
+ permissionSettingId: sessionStorage.getItem("permissionSettingId"),
|
|
|
|
|
+ };
|
|
|
|
|
+ let res = await axios({
|
|
|
|
|
+ method: "get",
|
|
|
|
|
+ url: api.value + "/house-lock/particular",
|
|
|
|
|
+ headers: {
|
|
|
|
|
+ token: sessionStorage.getItem("token"),
|
|
|
|
|
+ user_head: sessionStorage.getItem("userhead"),
|
|
|
|
|
+ },
|
|
|
|
|
+ params: data,
|
|
|
|
|
+ });
|
|
|
|
|
+ console.log(res, "门锁详情");
|
|
|
|
|
+ if (res.data.code == 200) {
|
|
|
|
|
+ electricQuantity.value=res.data.data.electricQuantity;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ ElMessage({
|
|
|
|
|
+ type: "error",
|
|
|
|
|
+ showClose: true,
|
|
|
|
|
+ message: res.data.message,
|
|
|
|
|
+ center: true,
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+};
|
|
|
|
|
+// 关闭操作面板
|
|
|
|
|
+const closeRoom = (i) => {
|
|
|
|
|
+ i.visible = false;
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
// 房型列表展示条
|
|
// 房型列表展示条
|
|
|
-const roomNameTypeData=async ()=>{
|
|
|
|
|
|
|
+const roomNameTypeData = async () => {
|
|
|
let res = await axios({
|
|
let res = await axios({
|
|
|
method: "get",
|
|
method: "get",
|
|
|
url: api.value + "/house/roomNameType",
|
|
url: api.value + "/house/roomNameType",
|
|
@@ -1848,8 +1939,8 @@ const roomNameTypeData=async ()=>{
|
|
|
});
|
|
});
|
|
|
console.log(res, "房型管理");
|
|
console.log(res, "房型管理");
|
|
|
if (res.data.code == 200) {
|
|
if (res.data.code == 200) {
|
|
|
- roomTypes.value=res.data.data
|
|
|
|
|
- roomTypeIndex.value=roomTypes.value[0]
|
|
|
|
|
|
|
+ roomTypes.value = res.data.data;
|
|
|
|
|
+ // roomTypeIndex.value=roomTypes.value[0]
|
|
|
loading.value = false;
|
|
loading.value = false;
|
|
|
// ElMessage({
|
|
// ElMessage({
|
|
|
// type: "success",
|
|
// type: "success",
|
|
@@ -1866,48 +1957,46 @@ const roomNameTypeData=async ()=>{
|
|
|
center: true,
|
|
center: true,
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
-}
|
|
|
|
|
-const changeTypes=(val)=>{
|
|
|
|
|
- roomTypeIndex.value=val
|
|
|
|
|
-}
|
|
|
|
|
|
|
+};
|
|
|
|
|
+const changeTypes = (val) => {
|
|
|
|
|
+ console.log(val);
|
|
|
|
|
+ roomTypeIndex.value = val;
|
|
|
|
|
+ getList().then(()=>{
|
|
|
|
|
+ roomList.list.forEach((item) => {
|
|
|
|
|
+ item.vos.forEach((ii) => {
|
|
|
|
|
+ ii.visible = false;
|
|
|
|
|
+ });
|
|
|
|
|
+ });
|
|
|
|
|
+ })
|
|
|
|
|
+};
|
|
|
|
|
|
|
|
// 查看员工列表
|
|
// 查看员工列表
|
|
|
const getList = async () => {
|
|
const getList = async () => {
|
|
|
loading.value = true;
|
|
loading.value = true;
|
|
|
let data = {
|
|
let data = {
|
|
|
- page: currentPage.value, // 当前页
|
|
|
|
|
- rows: pageSize.value, // 一页数据条数
|
|
|
|
|
- ledgerParam: searchInput.keyWord,
|
|
|
|
|
- managerId: sessionStorage.getItem("token"),
|
|
|
|
|
|
|
+ roomNumber: searchInput.keyWord,
|
|
|
|
|
+ permissionSettingId: sessionStorage.getItem("permissionSettingId"),
|
|
|
|
|
+ roomName: roomTypeIndex.value,
|
|
|
};
|
|
};
|
|
|
- if (searchInput.createTime) {
|
|
|
|
|
- data.payStartTime = searchInput.createTime[0];
|
|
|
|
|
- data.payEndTime = searchInput.createTime[1];
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- if (searchInput.status) {
|
|
|
|
|
- if (searchInput.status != 0) {
|
|
|
|
|
- data.orderStatus = searchInput.status;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ if (roomTypeIndex.value == "全部") {
|
|
|
|
|
+ data.roomName = "";
|
|
|
}
|
|
}
|
|
|
let res = await axios({
|
|
let res = await axios({
|
|
|
- method: "post",
|
|
|
|
|
- url: api.value + "/mhotel/bookquearyBookPage.action",
|
|
|
|
|
|
|
+ method: "get",
|
|
|
|
|
+ url: api.value + "/house-lock/list",
|
|
|
headers: {
|
|
headers: {
|
|
|
- // token: sessionStorage.getItem("token"),
|
|
|
|
|
- // user_head: sessionStorage.getItem("userhead"),
|
|
|
|
|
|
|
+ token: sessionStorage.getItem("token"),
|
|
|
|
|
+ user_head: sessionStorage.getItem("userhead"),
|
|
|
},
|
|
},
|
|
|
params: data,
|
|
params: data,
|
|
|
});
|
|
});
|
|
|
- console.log(res, "用户列表");
|
|
|
|
|
|
|
+ console.log(res, "门锁页面展示");
|
|
|
if (res.data.code == 200) {
|
|
if (res.data.code == 200) {
|
|
|
loading.value = false;
|
|
loading.value = false;
|
|
|
- // ElMessage({
|
|
|
|
|
- // type: "success",
|
|
|
|
|
- // showClose: true,
|
|
|
|
|
- // message: res.data.message,
|
|
|
|
|
- // center: true,
|
|
|
|
|
- // });
|
|
|
|
|
|
|
+ res.data.data.forEach((item) => {
|
|
|
|
|
+ item.total = item.vos.length;
|
|
|
|
|
+ });
|
|
|
|
|
+ roomList.list = res.data.data;
|
|
|
} else {
|
|
} else {
|
|
|
loading.value = false;
|
|
loading.value = false;
|
|
|
ElMessage({
|
|
ElMessage({
|
|
@@ -1933,14 +2022,127 @@ const cancelTemporaryCard = () => {
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
// 消息列表 (---------------------------------------------------------------)
|
|
// 消息列表 (---------------------------------------------------------------)
|
|
|
-const newsClick = () => {
|
|
|
|
|
|
|
+const newsClick =async (row) => {
|
|
|
newsVisible.value = true;
|
|
newsVisible.value = true;
|
|
|
|
|
+ console.log(row,'消息列表');
|
|
|
|
|
+ newshouseNumberId.value=row.houseNumberId
|
|
|
|
|
+ if(newsIndex.value==1){
|
|
|
|
|
+ let data = {
|
|
|
|
|
+ houseNumberId: newshouseNumberId.value,
|
|
|
|
|
+ permissionSettingId: sessionStorage.getItem("permissionSettingId"),
|
|
|
|
|
+ page: newsPage.value,
|
|
|
|
|
+ size: newsSize.value,
|
|
|
|
|
+ };
|
|
|
|
|
+ let res = await axios({
|
|
|
|
|
+ method: "get",
|
|
|
|
|
+ url: api.value + "/unlocking-record/pageList",
|
|
|
|
|
+ headers: {
|
|
|
|
|
+ token: sessionStorage.getItem("token"),
|
|
|
|
|
+ user_head: sessionStorage.getItem("userhead"),
|
|
|
|
|
+ },
|
|
|
|
|
+ params: data,
|
|
|
|
|
+ });
|
|
|
|
|
+ console.log(res, "开锁记录");
|
|
|
|
|
+ if (res.data.code == 200) {
|
|
|
|
|
+ newTableList.value=res.data.data.records
|
|
|
|
|
+ newsTotal.value=res.data.data.total
|
|
|
|
|
+ } else {
|
|
|
|
|
+ ElMessage({
|
|
|
|
|
+ type: "error",
|
|
|
|
|
+ showClose: true,
|
|
|
|
|
+ message: res.data.message,
|
|
|
|
|
+ center: true,
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ }else if(newsIndex.value==2){
|
|
|
|
|
+ let data = {
|
|
|
|
|
+ houseNumberId: newshouseNumberId.value,
|
|
|
|
|
+ permissionSettingId: sessionStorage.getItem("permissionSettingId"),
|
|
|
|
|
+ page: newsPage.value,
|
|
|
|
|
+ size: newsSize.value,
|
|
|
|
|
+ };
|
|
|
|
|
+ let res = await axios({
|
|
|
|
|
+ method: "get",
|
|
|
|
|
+ url: api.value + "/operating-record/pageList",
|
|
|
|
|
+ headers: {
|
|
|
|
|
+ token: sessionStorage.getItem("token"),
|
|
|
|
|
+ user_head: sessionStorage.getItem("userhead"),
|
|
|
|
|
+ },
|
|
|
|
|
+ params: data,
|
|
|
|
|
+ });
|
|
|
|
|
+ console.log(res, "操作记录");
|
|
|
|
|
+ if (res.data.code == 200) {
|
|
|
|
|
+ newTableList.value=res.data.data.records
|
|
|
|
|
+ newsTotal.value=res.data.data.total
|
|
|
|
|
+ } else {
|
|
|
|
|
+ ElMessage({
|
|
|
|
|
+ type: "error",
|
|
|
|
|
+ showClose: true,
|
|
|
|
|
+ message: res.data.message,
|
|
|
|
|
+ center: true,
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
};
|
|
};
|
|
|
// 切换消息列表
|
|
// 切换消息列表
|
|
|
-const changeNews = (ind) => {
|
|
|
|
|
|
|
+const changeNews =async (ind) => {
|
|
|
newsIndex.value = ind;
|
|
newsIndex.value = ind;
|
|
|
if (ind == 1) {
|
|
if (ind == 1) {
|
|
|
|
|
+ let data = {
|
|
|
|
|
+ houseNumberId: newshouseNumberId.value,
|
|
|
|
|
+ permissionSettingId: sessionStorage.getItem("permissionSettingId"),
|
|
|
|
|
+ page: newsPage.value,
|
|
|
|
|
+ size: newsSize.value,
|
|
|
|
|
+ };
|
|
|
|
|
+ let res = await axios({
|
|
|
|
|
+ method: "get",
|
|
|
|
|
+ url: api.value + "/unlocking-record/pageList",
|
|
|
|
|
+ headers: {
|
|
|
|
|
+ token: sessionStorage.getItem("token"),
|
|
|
|
|
+ user_head: sessionStorage.getItem("userhead"),
|
|
|
|
|
+ },
|
|
|
|
|
+ params: data,
|
|
|
|
|
+ });
|
|
|
|
|
+ console.log(res, "开锁记录");
|
|
|
|
|
+ if (res.data.code == 200) {
|
|
|
|
|
+ newTableList.value=res.data.data.records
|
|
|
|
|
+ newsTotal.value=res.data.data.total
|
|
|
|
|
+ } else {
|
|
|
|
|
+ ElMessage({
|
|
|
|
|
+ type: "error",
|
|
|
|
|
+ showClose: true,
|
|
|
|
|
+ message: res.data.message,
|
|
|
|
|
+ center: true,
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
} else if (ind == 2) {
|
|
} else if (ind == 2) {
|
|
|
|
|
+ let data = {
|
|
|
|
|
+ houseNumberId: newshouseNumberId.value,
|
|
|
|
|
+ permissionSettingId: sessionStorage.getItem("permissionSettingId"),
|
|
|
|
|
+ page: newsPage.value,
|
|
|
|
|
+ size: newsSize.value,
|
|
|
|
|
+ };
|
|
|
|
|
+ let res = await axios({
|
|
|
|
|
+ method: "get",
|
|
|
|
|
+ url: api.value + "/operating-record/pageList",
|
|
|
|
|
+ headers: {
|
|
|
|
|
+ token: sessionStorage.getItem("token"),
|
|
|
|
|
+ user_head: sessionStorage.getItem("userhead"),
|
|
|
|
|
+ },
|
|
|
|
|
+ params: data,
|
|
|
|
|
+ });
|
|
|
|
|
+ console.log(res, "开锁记录");
|
|
|
|
|
+ if (res.data.code == 200) {
|
|
|
|
|
+ newTableList.value=res.data.data.records
|
|
|
|
|
+ newsTotal.value=res.data.data.total
|
|
|
|
|
+ } else {
|
|
|
|
|
+ ElMessage({
|
|
|
|
|
+ type: "error",
|
|
|
|
|
+ showClose: true,
|
|
|
|
|
+ message: res.data.message,
|
|
|
|
|
+ center: true,
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
|
// 关闭弹窗列表
|
|
// 关闭弹窗列表
|
|
@@ -1951,19 +2153,154 @@ const cancelNews = () => {
|
|
|
const newsHandleCurrentChange = (value) => {
|
|
const newsHandleCurrentChange = (value) => {
|
|
|
// console.log(value);
|
|
// console.log(value);
|
|
|
newsPage.value = value;
|
|
newsPage.value = value;
|
|
|
|
|
+ changeNews(newsIndex.value)
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
// 远程开锁(-----------------------------------------------------------------)
|
|
// 远程开锁(-----------------------------------------------------------------)
|
|
|
-const unlockingClick = () => {
|
|
|
|
|
|
|
+const unlockingClick = (row) => {
|
|
|
|
|
+ console.log(row, "远程开锁");
|
|
|
unlockingVisible.value = true;
|
|
unlockingVisible.value = true;
|
|
|
|
|
+ unlockList.luid = row.equipmentType;
|
|
|
|
|
+ unlockList.roomNumber = row.roomNumber;
|
|
|
|
|
+ unlockList.houseNumberId = row.houseNumberId;
|
|
|
|
|
+};
|
|
|
|
|
+// 确定远程开锁
|
|
|
|
|
+const unlockingSubmit = async () => {
|
|
|
|
|
+ let data = {
|
|
|
|
|
+ luid: unlockList.luid,
|
|
|
|
|
+ roomNumber: unlockList.roomNumber,
|
|
|
|
|
+ houseNumberId: unlockList.houseNumberId,
|
|
|
|
|
+ permissionSettingId: sessionStorage.getItem("permissionSettingId"),
|
|
|
|
|
+ };
|
|
|
|
|
+ let res = await axios({
|
|
|
|
|
+ method: "post",
|
|
|
|
|
+ url: api.value + "/house-lock/remoteUnlocking",
|
|
|
|
|
+ headers: {
|
|
|
|
|
+ token: sessionStorage.getItem("token"),
|
|
|
|
|
+ user_head: sessionStorage.getItem("userhead"),
|
|
|
|
|
+ },
|
|
|
|
|
+ data: data,
|
|
|
|
|
+ });
|
|
|
|
|
+ console.log(res, "确定远程开锁");
|
|
|
|
|
+ if (res.data.code == 200) {
|
|
|
|
|
+ unlockingVisible.value = false;
|
|
|
|
|
+ getList()
|
|
|
|
|
+ ElMessage({
|
|
|
|
|
+ type: "success",
|
|
|
|
|
+ showClose: true,
|
|
|
|
|
+ message: res.data.message,
|
|
|
|
|
+ center: true,
|
|
|
|
|
+ });
|
|
|
|
|
+ } else {
|
|
|
|
|
+ ElMessage({
|
|
|
|
|
+ type: "error",
|
|
|
|
|
+ showClose: true,
|
|
|
|
|
+ message: res.data.message,
|
|
|
|
|
+ center: true,
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
};
|
|
};
|
|
|
const cancelUnlocking = () => {
|
|
const cancelUnlocking = () => {
|
|
|
unlockingVisible.value = false;
|
|
unlockingVisible.value = false;
|
|
|
};
|
|
};
|
|
|
|
|
+
|
|
|
|
|
+// 绑定设备(-----------------------------------------------------------------)
|
|
|
|
|
+const bindingClick = (row) => {
|
|
|
|
|
+ console.log(row, "绑定设备");
|
|
|
|
|
+ bindingVisible.value = true;
|
|
|
|
|
+ bindingList.houseNumberId=row.houseNumberId;
|
|
|
|
|
+};
|
|
|
|
|
+// 确定绑定设备
|
|
|
|
|
+const bindingSubmit = lodash.debounce(async (formEl) => {
|
|
|
|
|
+ if (!formEl) return;
|
|
|
|
|
+ await formEl.validate(async (valid, fields) => {
|
|
|
|
|
+ if (valid) {
|
|
|
|
|
+ let data = {
|
|
|
|
|
+ permissionSettingId: sessionStorage.getItem("permissionSettingId"),
|
|
|
|
|
+ houseNumberId: bindingList.houseNumberId, //房间号id
|
|
|
|
|
+ adminId: sessionStorage.getItem("id"), //管理员id
|
|
|
|
|
+ luid: bindingList.luid //锁设备ID
|
|
|
|
|
+ };
|
|
|
|
|
+ let res = await axios({
|
|
|
|
|
+ method: "post",
|
|
|
|
|
+ url: api.value + "/house-lock/binding",
|
|
|
|
|
+ headers: {
|
|
|
|
|
+ token: sessionStorage.getItem("token"),
|
|
|
|
|
+ user_head: sessionStorage.getItem("user_head"),
|
|
|
|
|
+ },
|
|
|
|
|
+ data: data,
|
|
|
|
|
+ });
|
|
|
|
|
+ console.log(res, "确定绑定设备");
|
|
|
|
|
+ if (res.data.code == 200) {
|
|
|
|
|
+ getList();
|
|
|
|
|
+ ElMessage({
|
|
|
|
|
+ type: "success",
|
|
|
|
|
+ showClose: true,
|
|
|
|
|
+ message: res.data.message,
|
|
|
|
|
+ center: true,
|
|
|
|
|
+ });
|
|
|
|
|
+ bindingVisible.value = false;
|
|
|
|
|
+ bindingRef.value.resetFields();
|
|
|
|
|
+ } else {
|
|
|
|
|
+ ElMessage({
|
|
|
|
|
+ type: "error",
|
|
|
|
|
+ showClose: true,
|
|
|
|
|
+ message: res.data.message,
|
|
|
|
|
+ center: true,
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ console.log("error submit!", fields);
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+}, 1000);
|
|
|
|
|
+// 取消绑定设备
|
|
|
|
|
+const cancelBinding = () => {
|
|
|
|
|
+ bindingVisible.value = false;
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
// 解绑设备(-----------------------------------------------------------------)
|
|
// 解绑设备(-----------------------------------------------------------------)
|
|
|
-const deblockingClick = () => {
|
|
|
|
|
|
|
+const deblockingClick = (row) => {
|
|
|
|
|
+ console.log(row, "解绑设备");
|
|
|
deblockingVisible.value = true;
|
|
deblockingVisible.value = true;
|
|
|
|
|
+ dellockList.houseNumberId = row.houseNumberId;
|
|
|
};
|
|
};
|
|
|
|
|
+// 确定解绑设备
|
|
|
|
|
+const deblockSubmit = async () => {
|
|
|
|
|
+ let data = {
|
|
|
|
|
+ houseNumberId: dellockList.houseNumberId,
|
|
|
|
|
+ permissionSettingId: sessionStorage.getItem("permissionSettingId"),
|
|
|
|
|
+ adminId: sessionStorage.getItem("id"),
|
|
|
|
|
+ };
|
|
|
|
|
+ let res = await axios({
|
|
|
|
|
+ method: "get",
|
|
|
|
|
+ url: api.value + "/house-lock/unbind",
|
|
|
|
|
+ headers: {
|
|
|
|
|
+ token: sessionStorage.getItem("token"),
|
|
|
|
|
+ user_head: sessionStorage.getItem("userhead"),
|
|
|
|
|
+ },
|
|
|
|
|
+ params: data,
|
|
|
|
|
+ });
|
|
|
|
|
+ console.log(res, "确定解绑设备");
|
|
|
|
|
+ if (res.data.code == 200) {
|
|
|
|
|
+ deblockingVisible.value = false;
|
|
|
|
|
+ getList()
|
|
|
|
|
+ ElMessage({
|
|
|
|
|
+ type: "success",
|
|
|
|
|
+ showClose: true,
|
|
|
|
|
+ message: res.data.message,
|
|
|
|
|
+ center: true,
|
|
|
|
|
+ });
|
|
|
|
|
+ } else {
|
|
|
|
|
+ ElMessage({
|
|
|
|
|
+ type: "error",
|
|
|
|
|
+ showClose: true,
|
|
|
|
|
+ message: res.data.message,
|
|
|
|
|
+ center: true,
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+};
|
|
|
|
|
+// 取消绑定
|
|
|
const cancelDeblocking = () => {
|
|
const cancelDeblocking = () => {
|
|
|
deblockingVisible.value = false;
|
|
deblockingVisible.value = false;
|
|
|
};
|
|
};
|
|
@@ -2295,7 +2632,8 @@ const handleCurrentChange = (value) => {
|
|
|
|
|
|
|
|
onBeforeMount(async () => {
|
|
onBeforeMount(async () => {
|
|
|
api.value = store.state.user.api;
|
|
api.value = store.state.user.api;
|
|
|
- roomNameTypeData()
|
|
|
|
|
|
|
+ roomNameTypeData();
|
|
|
|
|
+ getList();
|
|
|
});
|
|
});
|
|
|
onUnmounted(() => {
|
|
onUnmounted(() => {
|
|
|
// document.removeEventListener("keyup", Enters);
|
|
// document.removeEventListener("keyup", Enters);
|
|
@@ -2323,13 +2661,13 @@ onUnmounted(() => {
|
|
|
color: rgb(0, 0, 0);
|
|
color: rgb(0, 0, 0);
|
|
|
font-size: 18px;
|
|
font-size: 18px;
|
|
|
font-weight: 600;
|
|
font-weight: 600;
|
|
|
- .cameratxt{
|
|
|
|
|
|
|
+ .cameratxt {
|
|
|
height: 60px;
|
|
height: 60px;
|
|
|
line-height: 60px;
|
|
line-height: 60px;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- .middles{
|
|
|
|
|
|
|
+ .middles {
|
|
|
height: calc(100% - 61px);
|
|
height: calc(100% - 61px);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -2754,6 +3092,17 @@ onUnmounted(() => {
|
|
|
border: 1px solid red;
|
|
border: 1px solid red;
|
|
|
color: #fff;
|
|
color: #fff;
|
|
|
font-size: 14px;
|
|
font-size: 14px;
|
|
|
|
|
+ position: relative;
|
|
|
|
|
+ .close {
|
|
|
|
|
+ position: absolute;
|
|
|
|
|
+ cursor: pointer;
|
|
|
|
|
+ right: -40px;
|
|
|
|
|
+ top: -30px;
|
|
|
|
|
+ img {
|
|
|
|
|
+ width: 30px;
|
|
|
|
|
+ height: 30px;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
.title {
|
|
.title {
|
|
|
font-size: 16px;
|
|
font-size: 16px;
|
|
|
padding: 7.5px 0;
|
|
padding: 7.5px 0;
|
|
@@ -3019,11 +3368,11 @@ onUnmounted(() => {
|
|
|
margin-left: 5px;
|
|
margin-left: 5px;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- .el-table__body .even2 {
|
|
|
|
|
|
|
+ .el-table__body .even {
|
|
|
background-color: #fff;
|
|
background-color: #fff;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- .el-table__body .odd2 {
|
|
|
|
|
|
|
+ .el-table__body .odd {
|
|
|
background-color: rgba(240, 243, 247, 1);
|
|
background-color: rgba(240, 243, 247, 1);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -3093,6 +3442,50 @@ onUnmounted(() => {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+// 绑定设备弹窗
|
|
|
|
|
+:deep(.BindingDialog) {
|
|
|
|
|
+ height: 300px;
|
|
|
|
|
+ overflow: hidden;
|
|
|
|
|
+ border-radius: 11px;
|
|
|
|
|
+
|
|
|
|
|
+ .el-dialog__header {
|
|
|
|
|
+ border-radius: 11px 11px 0 0;
|
|
|
|
|
+ background: rgba(245, 249, 255, 1);
|
|
|
|
|
+ font-weight: 600;
|
|
|
|
|
+ height: 60px;
|
|
|
|
|
+ padding: 0 20px;
|
|
|
|
|
+ line-height: 60px;
|
|
|
|
|
+ margin: 0;
|
|
|
|
|
+ border-bottom: 1px solid rgba(230, 230, 230, 1);
|
|
|
|
|
+
|
|
|
|
|
+ .el-dialog__headerbtn {
|
|
|
|
|
+ outline: none;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .el-dialog__body {
|
|
|
|
|
+ padding: 20px;
|
|
|
|
|
+
|
|
|
|
|
+ .middle {
|
|
|
|
|
+ width: 96%;
|
|
|
|
|
+ color: #000;
|
|
|
|
|
+ .options {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: row-reverse;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ margin: 120px 0 0 0;
|
|
|
|
|
+ .el-form-item__content{
|
|
|
|
|
+ flex: none;
|
|
|
|
|
+ }
|
|
|
|
|
+ .queding {
|
|
|
|
|
+ margin-left: 20px;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
// 设置临时总卡
|
|
// 设置临时总卡
|
|
|
:deep(.temporaryCardDialog) {
|
|
:deep(.temporaryCardDialog) {
|
|
|
// height: 420px;
|
|
// height: 420px;
|
|
@@ -3263,7 +3656,6 @@ onUnmounted(() => {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
// 钥匙管理 密码管理
|
|
// 钥匙管理 密码管理
|