|
|
@@ -4,32 +4,41 @@
|
|
|
|
|
|
<!-- 操作按钮区域 -->
|
|
|
<div class="table-operator">
|
|
|
- <a-tag color="pink" v-if="buildingFloorSearchTag.name" >
|
|
|
- {{ buildingFloorSearchTag.name }}
|
|
|
- <a-icon type="close" @click="onFliterClose" />
|
|
|
- </a-tag>
|
|
|
+ <a-tag color="pink" v-if="buildingFloorSearchTag.name">
|
|
|
+ {{ buildingFloorSearchTag.name }}
|
|
|
+ <a-icon type="close" @click="onFliterClose" />
|
|
|
+ </a-tag>
|
|
|
<a-button @click="handleAdd" type="primary" icon="plus"
|
|
|
>新增房间</a-button
|
|
|
>
|
|
|
<a-button @click="onAddBatch" type="primary" icon="tags"
|
|
|
>批量新增</a-button
|
|
|
>
|
|
|
+ <a-popconfirm title="确定全部删除吗?" @confirm="delAll">
|
|
|
+ <a-button
|
|
|
+ :disabled="delLoading"
|
|
|
+ :loading="delLoading"
|
|
|
+ type="primary"
|
|
|
+ icon="stop"
|
|
|
+ >全部删除</a-button
|
|
|
+ >
|
|
|
+ </a-popconfirm>
|
|
|
+
|
|
|
<a-popconfirm
|
|
|
- title="确定全部删除吗?"
|
|
|
- @confirm="delAll"
|
|
|
- >
|
|
|
- <a-button :disabled="delLoading" :loading="delLoading" type="primary" icon="stop">全部删除</a-button>
|
|
|
- </a-popconfirm>
|
|
|
-
|
|
|
- <a-popconfirm
|
|
|
- v-if="selectedRowKeys.length > 0"
|
|
|
- title="确定删除吗?"
|
|
|
- @confirm="delBatch"
|
|
|
- >
|
|
|
- <a-button :disabled="delLoading" :loading="delLoading" icon="stop" style="margin-left: 8px">
|
|
|
- 批量删除</a-button>
|
|
|
- </a-popconfirm>
|
|
|
-
|
|
|
+ v-if="selectedRowKeys.length > 0"
|
|
|
+ title="确定删除吗?"
|
|
|
+ @confirm="delBatch"
|
|
|
+ >
|
|
|
+ <a-button
|
|
|
+ :disabled="delLoading"
|
|
|
+ :loading="delLoading"
|
|
|
+ icon="stop"
|
|
|
+ style="margin-left: 8px"
|
|
|
+ >
|
|
|
+ 批量删除</a-button
|
|
|
+ >
|
|
|
+ </a-popconfirm>
|
|
|
+
|
|
|
<!-- <a-dropdown v-if="selectedRowKeys.length > 0">
|
|
|
<a-button style="margin-left: 8px">
|
|
|
批量操作 <a-icon type="down"
|
|
|
@@ -59,7 +68,11 @@
|
|
|
class="j-table-force-nowrap"
|
|
|
@change="handleTableChange"
|
|
|
>
|
|
|
-
|
|
|
+ <template slot="numberSlot" slot-scope="text, record">
|
|
|
+ <div style="display: flex; align-items: center">
|
|
|
+ <a-input v-model="record.passWord" @blur="(e) => handleNumber(e, record)" />
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
<template slot="layoutId" slot-scope="text, record">
|
|
|
{{ getLayoutName(record) }}
|
|
|
</template>
|
|
|
@@ -72,7 +85,7 @@
|
|
|
<template slot="htmlSlot" slot-scope="text">
|
|
|
<div v-html="text"></div>
|
|
|
</template>
|
|
|
-
|
|
|
+
|
|
|
<span slot="action" slot-scope="text, record">
|
|
|
<a @click="handleEdit(record)">编辑</a>
|
|
|
|
|
|
@@ -94,17 +107,18 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
+import { httpAction, getAction } from "@/api/manage";
|
|
|
import { JeecgListMixin } from "@/mixins/JeecgListMixin";
|
|
|
import roomNumModal from "./roomNumModal.vue"; // todo roomLayoutForm 需要替换成房型的表单弹窗
|
|
|
-import roomImgs from './roomImagesForm.vue'
|
|
|
+import roomImgs from "./roomImagesForm.vue";
|
|
|
import { getAllLayouts } from "@/api/roomLayout";
|
|
|
-import { delBatch, delAll } from '@/api/roomBuildingApi'
|
|
|
+import { delBatch, delAll } from "@/api/roomBuildingApi";
|
|
|
let hotelInfo = JSON.parse(localStorage.getItem("storeInfo"));
|
|
|
export default {
|
|
|
mixins: [JeecgListMixin],
|
|
|
components: {
|
|
|
roomNumModal,
|
|
|
- roomImgs
|
|
|
+ roomImgs,
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
|
@@ -153,9 +167,10 @@ export default {
|
|
|
scopedSlots: { customRender: "prefix_name" },
|
|
|
},
|
|
|
{
|
|
|
- title: "创建时间",
|
|
|
+ title: "门锁密码",
|
|
|
align: "center",
|
|
|
- dataIndex: "createAt",
|
|
|
+ dataIndex: "passWord",
|
|
|
+ scopedSlots: { customRender: "numberSlot" },
|
|
|
},
|
|
|
{
|
|
|
title: "操作",
|
|
|
@@ -175,7 +190,7 @@ export default {
|
|
|
importExcelUrl: "rooms/cesRooms/importExcel",
|
|
|
},
|
|
|
buildingFloorSearchTag: {
|
|
|
- name: null
|
|
|
+ name: null,
|
|
|
},
|
|
|
dictOptions: {},
|
|
|
superFieldList: [],
|
|
|
@@ -196,31 +211,43 @@ export default {
|
|
|
});
|
|
|
},
|
|
|
methods: {
|
|
|
+ handleNumber(e, record) {
|
|
|
+ const that = this;
|
|
|
+ let method = "put";
|
|
|
+ httpAction("/rooms/cesRooms/modify", record, method)
|
|
|
+ .then((res) => {
|
|
|
+ if (res.success) {
|
|
|
+ that.$message.success(res.message);
|
|
|
+ } else {
|
|
|
+ that.$message.warning(res.message);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
onImgSave() {
|
|
|
- this.loadData()
|
|
|
+ this.loadData();
|
|
|
},
|
|
|
onFliterClose() {
|
|
|
- this.filters['buildId'] = null
|
|
|
- this.filters['floorId'] = null
|
|
|
- this.ipagination.current = 1
|
|
|
- this.buildingFloorSearchTag.name = null
|
|
|
- this.loadData()
|
|
|
+ this.filters["buildId"] = null;
|
|
|
+ this.filters["floorId"] = null;
|
|
|
+ this.ipagination.current = 1;
|
|
|
+ this.buildingFloorSearchTag.name = null;
|
|
|
+ this.loadData();
|
|
|
},
|
|
|
// 搜索
|
|
|
searchParam(id, name, isBuilding) {
|
|
|
- this.$set(this.buildingFloorSearchTag,'name',name)
|
|
|
- if(isBuilding) {
|
|
|
- this.filters['buildId'] = id
|
|
|
- if(this.filters['floorId']) {
|
|
|
- delete this.filters.floorId
|
|
|
- }
|
|
|
- } else {
|
|
|
- this.filters['floorId'] = id
|
|
|
- if(this.filters['buildId']) {
|
|
|
- delete this.filters.buildId
|
|
|
- }
|
|
|
+ this.$set(this.buildingFloorSearchTag, "name", name);
|
|
|
+ if (isBuilding) {
|
|
|
+ this.filters["buildId"] = id;
|
|
|
+ if (this.filters["floorId"]) {
|
|
|
+ delete this.filters.floorId;
|
|
|
}
|
|
|
- this.loadData()
|
|
|
+ } else {
|
|
|
+ this.filters["floorId"] = id;
|
|
|
+ if (this.filters["buildId"]) {
|
|
|
+ delete this.filters.buildId;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.loadData();
|
|
|
},
|
|
|
getLayoutName(row) {
|
|
|
let i = this.layouts.findIndex((s) => s.id == row.layoutId);
|
|
|
@@ -231,47 +258,51 @@ export default {
|
|
|
},
|
|
|
// 批量删除
|
|
|
delBatch() {
|
|
|
- let hotelInfo = JSON.parse(localStorage.getItem('storeInfo'))
|
|
|
- let keys = this.selectedRowKeys
|
|
|
- this.delLoading = true
|
|
|
+ let hotelInfo = JSON.parse(localStorage.getItem("storeInfo"));
|
|
|
+ let keys = this.selectedRowKeys;
|
|
|
+ this.delLoading = true;
|
|
|
delBatch({
|
|
|
hotelId: hotelInfo.id,
|
|
|
- idStr: keys.toString()
|
|
|
- }).then(res => {
|
|
|
- if(res.code == 200) {
|
|
|
- this.selectedRowKeys = []
|
|
|
- this.$message.success('删除成功');
|
|
|
- this.loadData()
|
|
|
- }
|
|
|
- }).finally(_ => {
|
|
|
- this.delLoading = false
|
|
|
+ idStr: keys.toString(),
|
|
|
})
|
|
|
+ .then((res) => {
|
|
|
+ if (res.code == 200) {
|
|
|
+ this.selectedRowKeys = [];
|
|
|
+ this.$message.success("删除成功");
|
|
|
+ this.loadData();
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .finally((_) => {
|
|
|
+ this.delLoading = false;
|
|
|
+ });
|
|
|
},
|
|
|
// 删除所有
|
|
|
delAll() {
|
|
|
- let hotelInfo = JSON.parse(localStorage.getItem('storeInfo'))
|
|
|
- this.delLoading = true
|
|
|
+ let hotelInfo = JSON.parse(localStorage.getItem("storeInfo"));
|
|
|
+ this.delLoading = true;
|
|
|
delAll({
|
|
|
hotelId: hotelInfo.id,
|
|
|
- }).then(res => {
|
|
|
- if(res.code == 200) {
|
|
|
- this.selectedRowKeys = []
|
|
|
- this.$message.success('全部删除成功');
|
|
|
- this.loadData()
|
|
|
- }
|
|
|
- }).finally(_ => {
|
|
|
- this.delLoading = false
|
|
|
})
|
|
|
+ .then((res) => {
|
|
|
+ if (res.code == 200) {
|
|
|
+ this.selectedRowKeys = [];
|
|
|
+ this.$message.success("全部删除成功");
|
|
|
+ this.loadData();
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .finally((_) => {
|
|
|
+ this.delLoading = false;
|
|
|
+ });
|
|
|
},
|
|
|
// 批量添加按钮
|
|
|
onAddBatch() {
|
|
|
- this.$router.push('/tenant/gen/rooms');
|
|
|
+ this.$router.push("/tenant/gen/rooms");
|
|
|
},
|
|
|
// 全部删除
|
|
|
onDelAll() {},
|
|
|
// 显示图片弹窗
|
|
|
handleImage(row) {
|
|
|
- this.$refs.roomimgmodal.setModel(row)
|
|
|
+ this.$refs.roomimgmodal.setModel(row);
|
|
|
},
|
|
|
onSaveOk() {
|
|
|
this.loadData();
|