|
|
@@ -1,127 +1,175 @@
|
|
|
-<template>
|
|
|
- <a-card :bordered="false">
|
|
|
- <!-- 查询区域-END -->
|
|
|
+<template xmlns="http://www.w3.org/1999/html">
|
|
|
+ <div>
|
|
|
+ <a-card :bordered="false">
|
|
|
+ <!-- 查询区域-END -->
|
|
|
|
|
|
- <!-- 操作按钮区域 -->
|
|
|
- <div class="table-operator">
|
|
|
- <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">
|
|
|
+ <!-- 操作按钮区域 -->
|
|
|
+ <div class="table-operator">
|
|
|
+ <a-tag color="pink" v-if="buildingFloorSearchTag.name">
|
|
|
+ {{ buildingFloorSearchTag.name }}
|
|
|
+ <a-icon type="close" @click="onFliterClose" />
|
|
|
+ </a-tag>
|
|
|
<a-button
|
|
|
- :disabled="delLoading"
|
|
|
- :loading="delLoading"
|
|
|
+ @click="handleAdd"
|
|
|
type="primary"
|
|
|
- icon="stop"
|
|
|
- >全部删除</a-button
|
|
|
+ icon="plus"
|
|
|
+ >新增房间</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"
|
|
|
+ @click="onAddBatch"
|
|
|
+ type="primary"
|
|
|
+ icon="tags"
|
|
|
+ >批量新增</a-button
|
|
|
>
|
|
|
- 批量删除</a-button
|
|
|
+ <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-popconfirm>
|
|
|
+ <a-button
|
|
|
+ :disabled="delLoading"
|
|
|
+ :loading="delLoading"
|
|
|
+ icon="stop"
|
|
|
+ style="margin-left: 8px"
|
|
|
+ >
|
|
|
+ 批量删除</a-button
|
|
|
+ >
|
|
|
+ </a-popconfirm>
|
|
|
|
|
|
- <!-- <a-dropdown v-if="selectedRowKeys.length > 0">
|
|
|
+ <!-- <a-dropdown v-if="selectedRowKeys.length > 0">
|
|
|
<a-button style="margin-left: 8px">
|
|
|
批量操作 <a-icon type="down"
|
|
|
/></a-button>
|
|
|
</a-dropdown> -->
|
|
|
- <a-button type="primary" @click="searchQuery" icon="search"
|
|
|
- >查询</a-button
|
|
|
- >
|
|
|
- </div>
|
|
|
+ <a-button
|
|
|
+ type="primary"
|
|
|
+ @click="searchQuery"
|
|
|
+ icon="search"
|
|
|
+ >查询</a-button>
|
|
|
+ <a-button
|
|
|
+ type="primary"
|
|
|
+ @click="()=>{editPasswordVisible = true}"
|
|
|
+ icon="edit"
|
|
|
+ >批量修改密码</a-button>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <!-- table区域-begin -->
|
|
|
+ <div>
|
|
|
+ <a-table
|
|
|
+ ref="table"
|
|
|
+ size="middle"
|
|
|
+ :scroll="{ x: true }"
|
|
|
+ bordered
|
|
|
+ rowKey="id"
|
|
|
+ :columns="columns"
|
|
|
+ :dataSource="dataSource"
|
|
|
+ :pagination="ipagination"
|
|
|
+ :loading="loading"
|
|
|
+ :rowSelection="{
|
|
|
+ selectedRowKeys: selectedRowKeys,
|
|
|
+ onChange: onSelectChange,
|
|
|
+ }"
|
|
|
+ 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>
|
|
|
+ <template slot="prefix_name" slot-scope="text, record">
|
|
|
+ {{ (record.prefix || '') + record.name }}
|
|
|
+ </template>
|
|
|
+ <template slot="pictureSlot" slot-scope="text, record">
|
|
|
+ <img :src="record.cover" style="width:40px;height40px;" />
|
|
|
+ </template>
|
|
|
+ <template slot="htmlSlot" slot-scope="text">
|
|
|
+ <div v-html="text"></div>
|
|
|
+ </template>
|
|
|
|
|
|
- <!-- table区域-begin -->
|
|
|
- <div>
|
|
|
- <a-table
|
|
|
- ref="table"
|
|
|
- size="middle"
|
|
|
- :scroll="{ x: true }"
|
|
|
- bordered
|
|
|
- rowKey="id"
|
|
|
- :columns="columns"
|
|
|
- :dataSource="dataSource"
|
|
|
- :pagination="ipagination"
|
|
|
- :loading="loading"
|
|
|
- :rowSelection="{
|
|
|
- selectedRowKeys: selectedRowKeys,
|
|
|
- onChange: onSelectChange,
|
|
|
- }"
|
|
|
- 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>
|
|
|
- <template slot="prefix_name" slot-scope="text, record">
|
|
|
- {{ (record.prefix || "") + record.name }}
|
|
|
- </template>
|
|
|
- <template slot="pictureSlot" slot-scope="text, record">
|
|
|
- <img :src="record.cover" style="width:40px;height40px;" />
|
|
|
- </template>
|
|
|
- <template slot="htmlSlot" slot-scope="text">
|
|
|
- <div v-html="text"></div>
|
|
|
- </template>
|
|
|
+ <span slot="action" slot-scope="text, record">
|
|
|
+ <a @click="handleEdit(record)">编辑</a>
|
|
|
|
|
|
- <span slot="action" slot-scope="text, record">
|
|
|
- <a @click="handleEdit(record)">编辑</a>
|
|
|
+ <a-divider type="vertical" />
|
|
|
+ <a-popconfirm
|
|
|
+ title="确定删除吗?"
|
|
|
+ @confirm="() => handleDelete(record.id)"
|
|
|
+ >
|
|
|
+ <a>删除</a>
|
|
|
+ </a-popconfirm>
|
|
|
+ <a-divider type="vertical" />
|
|
|
+ <a @click="handleImage(record)">图片</a>
|
|
|
+ </span>
|
|
|
+ </a-table>
|
|
|
+ </div>
|
|
|
+ <room-num-modal ref="modalForm" @ok="modalFormOk"></room-num-modal>
|
|
|
+ <room-imgs @saveOk="onImgSave" ref="roomimgmodal"></room-imgs>
|
|
|
+ </a-card>
|
|
|
|
|
|
- <a-divider type="vertical" />
|
|
|
- <a-popconfirm
|
|
|
- title="确定删除吗?"
|
|
|
- @confirm="() => handleDelete(record.id)"
|
|
|
- >
|
|
|
- <a>删除</a>
|
|
|
- </a-popconfirm>
|
|
|
- <a-divider type="vertical" />
|
|
|
- <a @click="handleImage(record)">图片</a>
|
|
|
- </span>
|
|
|
- </a-table>
|
|
|
- </div>
|
|
|
- <room-num-modal ref="modalForm" @ok="modalFormOk"></room-num-modal>
|
|
|
- <room-imgs @saveOk="onImgSave" ref="roomimgmodal"></room-imgs>
|
|
|
- </a-card>
|
|
|
+ <a-modal
|
|
|
+ width="600px"
|
|
|
+ title="楼栋楼层编辑"
|
|
|
+ :visible.sync="editPasswordVisible"
|
|
|
+ @cancel="editPasswordVisible = false"
|
|
|
+ @ok="editPassword"
|
|
|
+ >
|
|
|
+ <a-radio-group
|
|
|
+ :value="passwordTemplate">
|
|
|
+ <a-row>
|
|
|
+ <a-radio style="margin: 10px" :value="0">
|
|
|
+ 关联号与房间号相同
|
|
|
+ </a-radio><br/>
|
|
|
+ <a-radio style="margin: 10px" :value="1">
|
|
|
+ 关联号=
|
|
|
+ <a-input style="width: 60px"></a-input>
|
|
|
+ +房间号+
|
|
|
+ <a-input style="width: 60px"></a-input>
|
|
|
+ </a-radio><br/>
|
|
|
+ <a-radio style="margin: 10px" :value="2">
|
|
|
+ 关联号=
|
|
|
+ <a-input style="width: 60px"></a-input>
|
|
|
+ +缺首位的房间号+
|
|
|
+ <a-input style="width: 60px"></a-input>
|
|
|
+ </a-radio>
|
|
|
+ </a-row>
|
|
|
+ </a-radio-group>
|
|
|
+ </a-modal>
|
|
|
+ </div>
|
|
|
</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 { getAllLayouts } from "@/api/roomLayout";
|
|
|
-import { delBatch, delAll } from "@/api/roomBuildingApi";
|
|
|
-let hotelInfo = JSON.parse(localStorage.getItem("storeInfo"));
|
|
|
+import { httpAction, getAction, postAction } from '@/api/manage'
|
|
|
+import { JeecgListMixin } from '@/mixins/JeecgListMixin'
|
|
|
+import roomNumModal from './roomNumModal.vue' // todo roomLayoutForm 需要替换成房型的表单弹窗
|
|
|
+import roomImgs from './roomImagesForm.vue'
|
|
|
+import { getAllLayouts } from '@/api/roomLayout'
|
|
|
+import { delBatch, delAll } from '@/api/roomBuildingApi'
|
|
|
+let hotelInfo = JSON.parse(localStorage.getItem('storeInfo'))
|
|
|
export default {
|
|
|
mixins: [JeecgListMixin],
|
|
|
components: {
|
|
|
roomNumModal,
|
|
|
- roomImgs,
|
|
|
+ roomImgs
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
|
+ firstValue: '',
|
|
|
+ endValue: '',
|
|
|
+ passwordTemplate: '',
|
|
|
+ editPasswordVisible: false,
|
|
|
delLoading: false,
|
|
|
layouts: [],
|
|
|
queryParam: {},
|
|
|
@@ -129,187 +177,204 @@ export default {
|
|
|
ipagination: {
|
|
|
current: 1,
|
|
|
pageSize: 10,
|
|
|
- pageSizeOptions: ["10", "20", "30"],
|
|
|
+ pageSizeOptions: ['10', '20', '30'],
|
|
|
showTotal: (total, range) => {
|
|
|
- return range[0] + "-" + range[1] + " 共" + total + "条";
|
|
|
+ return range[0] + '-' + range[1] + ' 共' + total + '条'
|
|
|
},
|
|
|
showQuickJumper: true,
|
|
|
showSizeChanger: true,
|
|
|
- total: 0,
|
|
|
+ total: 0
|
|
|
},
|
|
|
// 表头
|
|
|
columns: [
|
|
|
{
|
|
|
- title: "商家",
|
|
|
- align: "center",
|
|
|
- dataIndex: "hotelName",
|
|
|
+ title: '商家',
|
|
|
+ align: 'center',
|
|
|
+ dataIndex: 'hotelName'
|
|
|
},
|
|
|
{
|
|
|
- title: "楼栋",
|
|
|
- align: "center",
|
|
|
- dataIndex: "buildName",
|
|
|
+ title: '楼栋',
|
|
|
+ align: 'center',
|
|
|
+ dataIndex: 'buildName'
|
|
|
},
|
|
|
{
|
|
|
- title: "楼层",
|
|
|
- align: "center",
|
|
|
- dataIndex: "floorName",
|
|
|
+ title: '楼层',
|
|
|
+ align: 'center',
|
|
|
+ dataIndex: 'floorName'
|
|
|
},
|
|
|
{
|
|
|
- title: "房型",
|
|
|
- align: "center",
|
|
|
- dataIndex: "layoutId",
|
|
|
- scopedSlots: { customRender: "layoutId" },
|
|
|
+ title: '房型',
|
|
|
+ align: 'center',
|
|
|
+ dataIndex: 'layoutId',
|
|
|
+ scopedSlots: { customRender: 'layoutId' }
|
|
|
},
|
|
|
{
|
|
|
- title: "房号",
|
|
|
- align: "center",
|
|
|
- dataIndex: "name",
|
|
|
- scopedSlots: { customRender: "prefix_name" },
|
|
|
+ title: '房号',
|
|
|
+ align: 'center',
|
|
|
+ dataIndex: 'name',
|
|
|
+ scopedSlots: { customRender: 'prefix_name' }
|
|
|
},
|
|
|
{
|
|
|
- title: "门锁密码",
|
|
|
- align: "center",
|
|
|
- dataIndex: "passWord",
|
|
|
- scopedSlots: { customRender: "numberSlot" },
|
|
|
+ title: '门锁密码',
|
|
|
+ align: 'center',
|
|
|
+ dataIndex: 'passWord',
|
|
|
+ scopedSlots: { customRender: 'numberSlot' }
|
|
|
},
|
|
|
{
|
|
|
- title: "操作",
|
|
|
- dataIndex: "action",
|
|
|
- align: "center",
|
|
|
- fixed: "right",
|
|
|
+ title: '操作',
|
|
|
+ dataIndex: 'action',
|
|
|
+ align: 'center',
|
|
|
+ fixed: 'right',
|
|
|
width: 147,
|
|
|
- scopedSlots: { customRender: "action" },
|
|
|
- },
|
|
|
+ scopedSlots: { customRender: 'action' }
|
|
|
+ }
|
|
|
],
|
|
|
url: {
|
|
|
// list: 'org.jeecg.modules.business/busMarketMember/list',
|
|
|
- list: "/rooms/cesRooms/list",
|
|
|
- delete: "/rooms/cesRooms/remove",
|
|
|
- deleteBatch: "/rooms/cesRooms/deleteBatch",
|
|
|
- exportXlsUrl: "/rooms/cesRooms/exportXls",
|
|
|
- importExcelUrl: "rooms/cesRooms/importExcel",
|
|
|
+ list: '/rooms/cesRooms/list',
|
|
|
+ delete: '/rooms/cesRooms/remove',
|
|
|
+ deleteBatch: '/rooms/cesRooms/deleteBatch',
|
|
|
+ exportXlsUrl: '/rooms/cesRooms/exportXls',
|
|
|
+ importExcelUrl: 'rooms/cesRooms/importExcel'
|
|
|
},
|
|
|
buildingFloorSearchTag: {
|
|
|
- name: null,
|
|
|
+ name: null
|
|
|
},
|
|
|
dictOptions: {},
|
|
|
superFieldList: [],
|
|
|
selectedRowKeys: [],
|
|
|
isorter: {
|
|
|
- column: "createTime",
|
|
|
- order: "desc",
|
|
|
- },
|
|
|
- };
|
|
|
+ column: 'createTime',
|
|
|
+ order: 'desc'
|
|
|
+ }
|
|
|
+ }
|
|
|
},
|
|
|
created() {
|
|
|
// this.loadData()
|
|
|
getAllLayouts().then((res) => {
|
|
|
if (res.code == 200) {
|
|
|
- this.layouts = res.result.records;
|
|
|
- this.loadData();
|
|
|
+ this.layouts = res.result.records
|
|
|
+ this.loadData()
|
|
|
}
|
|
|
- });
|
|
|
+ })
|
|
|
},
|
|
|
methods: {
|
|
|
handleNumber(e, record) {
|
|
|
- const that = this;
|
|
|
- let method = "put";
|
|
|
- httpAction("/rooms/cesRooms/modify", record, method)
|
|
|
+ const that = this
|
|
|
+ let method = 'put'
|
|
|
+ httpAction('/rooms/cesRooms/modify', record, method)
|
|
|
.then((res) => {
|
|
|
if (res.success) {
|
|
|
- that.$message.success(res.message);
|
|
|
+ that.$message.success(res.message)
|
|
|
} else {
|
|
|
- that.$message.warning(res.message);
|
|
|
+ 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);
|
|
|
+ this.$set(this.buildingFloorSearchTag, 'name', name)
|
|
|
if (isBuilding) {
|
|
|
- this.filters["buildId"] = id;
|
|
|
- if (this.filters["floorId"]) {
|
|
|
- delete this.filters.floorId;
|
|
|
+ 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.filters['floorId'] = id
|
|
|
+ if (this.filters['buildId']) {
|
|
|
+ delete this.filters.buildId
|
|
|
}
|
|
|
}
|
|
|
- this.loadData();
|
|
|
+ this.loadData()
|
|
|
},
|
|
|
getLayoutName(row) {
|
|
|
- let i = this.layouts.findIndex((s) => s.id == row.layoutId);
|
|
|
+ let i = this.layouts.findIndex((s) => s.id == row.layoutId)
|
|
|
if (i > -1) {
|
|
|
- return this.layouts[i].name;
|
|
|
+ return this.layouts[i].name
|
|
|
}
|
|
|
- return "";
|
|
|
+ return ''
|
|
|
},
|
|
|
// 批量删除
|
|
|
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(),
|
|
|
+ idStr: keys.toString()
|
|
|
})
|
|
|
.then((res) => {
|
|
|
if (res.code == 200) {
|
|
|
- this.selectedRowKeys = [];
|
|
|
- this.$message.success("删除成功");
|
|
|
- this.loadData();
|
|
|
+ this.selectedRowKeys = []
|
|
|
+ this.$message.success('删除成功')
|
|
|
+ this.loadData()
|
|
|
}
|
|
|
})
|
|
|
.finally((_) => {
|
|
|
- this.delLoading = false;
|
|
|
- });
|
|
|
+ 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,
|
|
|
+ hotelId: hotelInfo.id
|
|
|
})
|
|
|
.then((res) => {
|
|
|
if (res.code == 200) {
|
|
|
- this.selectedRowKeys = [];
|
|
|
- this.$message.success("全部删除成功");
|
|
|
- this.loadData();
|
|
|
+ this.selectedRowKeys = []
|
|
|
+ this.$message.success('全部删除成功')
|
|
|
+ this.loadData()
|
|
|
}
|
|
|
})
|
|
|
.finally((_) => {
|
|
|
- this.delLoading = false;
|
|
|
- });
|
|
|
+ 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();
|
|
|
+ this.loadData()
|
|
|
},
|
|
|
- },
|
|
|
-};
|
|
|
+ editPassword() {
|
|
|
+ console.log(this.getQueryParams())
|
|
|
+ console.log(this.passwordTemplate)
|
|
|
+ this.firstValue = '11'
|
|
|
+ this.endValue = '22'
|
|
|
+ const param = {
|
|
|
+ type: this.passwordTemplate,
|
|
|
+ firstValue: this.firstValue,
|
|
|
+ endValue: this.endValue
|
|
|
+ }
|
|
|
+ var assign = Object.assign(param, this.getQueryParams())
|
|
|
+ getAction('/rooms/cesRooms/batchEditPassword', assign)
|
|
|
+ .then(resp => {
|
|
|
+ console.log(resp)
|
|
|
+ })
|
|
|
+ this.editPasswordVisible = false
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
</script>
|
|
|
<style scoped>
|
|
|
@import "~@assets/less/common.less";
|
|
|
-</style>
|
|
|
+</style>
|