diff --git a/.gitignore b/.gitignore
index 185e663..56c5d5b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -19,3 +19,6 @@ yarn-error.log*
*.njsproj
*.sln
*.sw*
+
+vue.config.js
+.env.development
\ No newline at end of file
diff --git a/README.md b/README.md
index 5253c16..dd95bb7 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,9 @@
ICS Ant
Overview
+## 前端文档地址:
+https://1x.antdv.com/components/
+
----
项目下载和运行
----
diff --git a/src/App.vue b/src/App.vue
index ec4784d..c24c654 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -9,18 +9,21 @@
diff --git a/src/api/admin/meeting/count.js b/src/api/admin/meeting/count.js
new file mode 100644
index 0000000..897c61a
--- /dev/null
+++ b/src/api/admin/meeting/count.js
@@ -0,0 +1,93 @@
+import { axios } from '@/utils/request'
+
+
+/**
+ * 会议室统计数据
+ * /admin/ms/roomStats
+ * @参数 day 格式:2024-09-30
+ * @返回
+ * alreadyBooking, 已预约会议室数量
+ * noBooking,未预约会议室数量
+ * going,开会中会议室数量
+ * free,空闲中会议室数量
+ * @param parameter
+ * @returns {AxiosPromise}
+ */
+export function getNum(parameter) {
+ return axios({
+ url: '/admin/ms/roomStats',
+ method: 'post',
+ params: parameter
+ })
+}
+
+/**
+ * 按日历统计数据
+ * /admin/ms/calendar
+ * @参数 month 月份,格式:2024-09
+ * @返回,月份的每一天 的 预约记录
+ * @param parameter
+ * @returns {AxiosPromise}
+ */
+export function getCalendar(parameter) {
+ return axios({
+ url: '/admin/ms/calendar',
+ method: 'post',
+ params: parameter
+ })
+}
+
+/**
+ * 按照会议状态统计
+ * /admin/ms/meetingStats
+ * 无参
+ * @返回
+ * * wait, 待开始会议数量
+ * * going,进行中会议数量
+ * * closed,已结束会议数量
+ * @param parameter
+ * @returns {AxiosPromise}
+ */
+export function getStatus(parameter) {
+ return axios({
+ url: '/admin/ms/meetingStats',
+ method: 'post',
+ params: parameter
+ })
+}
+
+/**
+ * 会议待办 (前10条)
+ * /admin/ms/meetingAudit
+ * 无参
+ * @param parameter
+ * @returns {AxiosPromise}
+ */
+export function getWait(parameter) {
+ return axios({
+ url: '/admin/ms/meetingAudit',
+ method: 'post',
+ params: parameter
+ })
+}
+
+/**
+ * 图表统计数据
+ *
+ *
+ * @参数 startDate 统计数据开始时间,日期格式示例:2024-08-23
+ * @参数 endDate 统计数据结束时间,日期格式示例:2024-09-23
+ * @返回
+ * roomRank,会议室使用排名
+ * serve,服务情况
+ * roomType,会议室形式统计
+ * orgMeeting,部门开会情况(取前10个部门)
+ * everyDay,开会情况--按天(取前20天)
+ */
+export function getChartData(parameter) {
+ return axios({
+ url: '/admin/ms/chartStats',
+ method: 'post',
+ params: parameter
+ })
+}
\ No newline at end of file
diff --git a/src/api/admin/meeting/roomContent.js b/src/api/admin/meeting/roomContent.js
index 9c62f3f..7619b59 100644
--- a/src/api/admin/meeting/roomContent.js
+++ b/src/api/admin/meeting/roomContent.js
@@ -4,24 +4,33 @@ const api = {
roomContent: '/meeting/roomContent'
}
-export function getRoomContentList (parameter) {
+export function getMeetingDict(parameter) {
return axios({
- url: api.roomContent + '/list',
- method: 'get',
+ url: '/app/mr/getConstData',
+ method: 'post',
params: parameter
})
}
-export function get (id) {
+export function getRoomContentList(parameter) {
return axios({
- url: api.roomContent + '/get/'+id,
+ // url: api.roomContent + '/list',
+ url: '/admin/meetingRoom/list',
+ method: 'post',
+ params: parameter
+ })
+}
+
+export function get(id) {
+ return axios({
+ url: api.roomContent + '/get/' + id,
method: 'get',
params: {}
})
}
-export function selectSearchInfoByType (parameter) {
+export function selectSearchInfoByType(parameter) {
return axios({
url: api.roomContent + '/searchInfo/1',
method: 'get',
@@ -29,7 +38,7 @@ export function selectSearchInfoByType (parameter) {
})
}
-export function selectSearchInfoByCapacity (parameter) {
+export function selectSearchInfoByCapacity(parameter) {
return axios({
url: api.roomContent + '/searchInfo/2',
method: 'get',
@@ -37,7 +46,7 @@ export function selectSearchInfoByCapacity (parameter) {
})
}
-export function selectSearchInfoByShape (parameter) {
+export function selectSearchInfoByShape(parameter) {
return axios({
url: api.roomContent + '/searchInfo/4',
method: 'get',
@@ -45,9 +54,23 @@ export function selectSearchInfoByShape (parameter) {
})
}
-export function saveRoomContent (parameter) {
+export function saveRoomContent(parameter, files) {
return axios({
- url: api.roomContent + (parameter.id > 0 ? '/update' : '/save'),
+ url: '/admin/meetingRoom' + (parameter.id > 0 ? '/update' : '/save'),
+ method: 'post',
+ data: {
+ room: parameter,
+ files: files
+ },
+ headers: {
+ 'Content-Type': 'application/json;charset=UTF-8'
+ }
+ })
+}
+
+export function getRoomInfo(parameter) {
+ return axios({
+ url: '/app/mr/roomMrs',
method: 'post',
data: parameter,
headers: {
@@ -56,7 +79,7 @@ export function saveRoomContent (parameter) {
})
}
-export function addRoomServe (parameter) {
+export function addRoomServe(parameter) {
return axios({
url: api.roomContent + '/addRoomServe',
method: 'post',
@@ -67,7 +90,7 @@ export function addRoomServe (parameter) {
})
}
-export function addRoomItem (parameter) {
+export function addRoomItem(parameter) {
return axios({
url: api.roomContent + '/addRoomItem',
method: 'post',
@@ -79,7 +102,7 @@ export function addRoomItem (parameter) {
}
//根据会议室id 获取服务列表
-export function selectRoomServeByRoom (parameter) {
+export function selectRoomServeByRoom(parameter) {
return axios({
url: api.roomContent + '/selectRoomServeByRoom',
method: 'post',
@@ -91,7 +114,7 @@ export function selectRoomServeByRoom (parameter) {
}
-export function getFloorList (parameter) {
+export function getFloorList(parameter) {
return axios({
url: api.roomContent + '/getFloorList',
method: 'get',
@@ -99,7 +122,7 @@ export function getFloorList (parameter) {
})
}
-export function getCustomerList (parameter) {
+export function getCustomerList(parameter) {
return axios({
url: api.roomContent + '/customerList',
method: 'get',
@@ -108,7 +131,7 @@ export function getCustomerList (parameter) {
}
-export function selectRoomById (parameter) {
+export function selectRoomById(parameter) {
return axios({
url: api.roomContent + '/selectRoomById',
method: 'get',
@@ -117,7 +140,7 @@ export function selectRoomById (parameter) {
}
-export function getRoomListByFloorId (parameter) {
+export function getRoomListByFloorId(parameter) {
return axios({
url: api.roomContent + '/getRoomListByFloorId',
method: 'get',
@@ -125,7 +148,7 @@ export function getRoomListByFloorId (parameter) {
})
}
-export function getRoomListByBuildIdsRq (parameter) {
+export function getRoomListByBuildIdsRq(parameter) {
return axios({
url: api.roomContent + '/getRoomListByBuildIds',
method: 'post',
@@ -136,7 +159,7 @@ export function getRoomListByBuildIdsRq (parameter) {
})
}
-export function selectRoomItemByRoom (parameter) {
+export function selectRoomItemByRoom(parameter) {
return axios({
url: api.roomContent + '/selectRoomItemByRoom',
method: 'post',
@@ -148,15 +171,14 @@ export function selectRoomItemByRoom (parameter) {
}
-export function delRoomContent (parameter) {
+export function delRoomContent(parameter) {
return axios({
- url: api.roomContent + '/remove',
+ // url: api.roomContent + '/remove',
+ url: '/admin/meetingRoom/remove',
method: 'post',
params: parameter
})
}
-
-
export const roomContentExport = api.roomContent + '/export'
diff --git a/src/api/admin/meeting/uto.js b/src/api/admin/meeting/uto.js
new file mode 100644
index 0000000..bfe642a
--- /dev/null
+++ b/src/api/admin/meeting/uto.js
@@ -0,0 +1,34 @@
+import { axios } from '@/utils/request'
+
+const api = {
+ meetingUto: '/admin/uto'
+}
+
+export function getMeetingUtoList (parameter) {
+ return axios({
+ url: api.meetingUto + '/list',
+ method: 'get',
+ params: parameter
+ })
+}
+
+export function saveMeetingUto (parameter) {
+ return axios({
+ url: api.meetingUto + (parameter.id > 0 ? '/update' : '/save'),
+ method: 'post',
+ data: parameter,
+ headers: {
+ 'Content-Type': 'application/json;charset=UTF-8'
+ }
+ })
+}
+
+export function delMeetingUto (parameter) {
+ return axios({
+ url: api.meetingUto + '/remove',
+ method: 'post',
+ params: parameter
+ })
+}
+
+export const meetingUtoExport = api.meetingUto + '/export'
diff --git a/src/views/admin/IcsCustomerStaffList.vue b/src/views/admin/IcsCustomerStaffList.vue
index beacb5d..24b45be 100644
--- a/src/views/admin/IcsCustomerStaffList.vue
+++ b/src/views/admin/IcsCustomerStaffList.vue
@@ -36,20 +36,39 @@
:columns='columns'
:data='loadData'
>
+
- 维修员
+ 普通用户
-
+
派单员
-
- 网格长
+
+ 维修人
+
+
+ 管理员
+
+
+ 楼层管理员
+
+
+
+ 普通用户
+
+
+ 会议服务人员
+
+
+ 会议管理员
+
+
-
-
+ 编辑
+
删除
@@ -97,10 +116,15 @@ export default {
dataIndex: 'mobile'
},
{
- title: '角色类型',
+ title: '报修角色类型',
dataIndex: 'dataType',
scopedSlots: { customRender: 'dataType' }
},
+ {
+ title: '会议角色类型',
+ dataIndex: 'roomRole',
+ scopedSlots: { customRender: 'roomRole' }
+ },
{
title: '创建时间',
dataIndex: 'createTime'
diff --git a/src/views/admin/RepairList.vue b/src/views/admin/RepairList.vue
index 63b341a..e9d3b18 100644
--- a/src/views/admin/RepairList.vue
+++ b/src/views/admin/RepairList.vue
@@ -103,6 +103,7 @@
size='default'
ref='table'
rowKey='id'
+ showPagination="true"
:rowSelection='{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}'
:columns='columns'
:data='loadData'
diff --git a/src/views/admin/meeting/MeetingCount.vue b/src/views/admin/meeting/MeetingCount.vue
new file mode 100644
index 0000000..467739a
--- /dev/null
+++ b/src/views/admin/meeting/MeetingCount.vue
@@ -0,0 +1,665 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ 已预约会议室
+
+
+ {{ roomNum.alreadyBooking }}
+
+
+
+
+
+
+
+
+
+ 未预约会议室
+
+
+ {{ roomNum.noBooking }}
+
+
+
+
+
+
+
+
+
+ 开会中会议室
+
+
+ {{ roomNum.going }}
+
+
+
+
+
+
+
+
+
+ 空闲中会议室
+
+
+ {{ roomNum.free }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 预约部门:{{ item.org }}
+ 会议时间:{{ item.time }}
+
+ -
+ {{ item.time }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ statusNum.going }}
+
+
+
+
+
+
+
+
+
+
+ {{ statusNum.wait }}
+
+
+
+
+
+
+
+
+
+
+ {{ statusNum.closed }}
+
+
+
+
+
+
+
+
+
+ {{ item.title }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/admin/meeting/RoomContentList.vue b/src/views/admin/meeting/RoomContentList.vue
index 0799964..097b98d 100644
--- a/src/views/admin/meeting/RoomContentList.vue
+++ b/src/views/admin/meeting/RoomContentList.vue
@@ -4,36 +4,15 @@
-
-
+
+
-
-
-
- 会议室
-
-
- 路演厅
-
-
- 洽谈室
-
-
- 直播间
-
-
- 茶室
-
-
- 长阳会客厅
-
-
- 多功能厅
-
-
- 数据要素
+
+
+
+ {{ item.text }}
@@ -41,35 +20,29 @@
-
- 围桌式
-
-
- 课桌式
-
-
- 长方形
-
-
- U形
-
-
- 鱼骨形
-
-
- 开放形
-
-
- 会议形
+
+ {{ item.text }}
-
-
- {{ item.capacityNum }}
+
+
+ 全部
+
+
+ 0-20
+
+
+ 21-50
+
+
+ 51-100
+
+
+ 100以上
@@ -77,7 +50,7 @@
查询
- (queryParam = {})'>重置
+ 重置
@@ -93,6 +66,7 @@
size='default'
ref='table'
rowKey='id'
+ showPagination='true'
:rowSelection='{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }'
:columns='columns'
:data='loadData'
@@ -107,47 +81,14 @@
{{ record.serveCount }}
- 编辑
+ 编辑
- 删除
+ 删除
-
- 是否确认删除?
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 查询
- (itemQueryParam = {})'>重置
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
- 免费服务
-
-
- 增值服务
-
-
-
-
-
-
-
- 查询
- (serveQueryParam = {})'>重置
-
-
-
-
-
-
-
+
-
- {{ text | serveTypeFilter }}
-
@@ -216,7 +121,7 @@ import { STable } from '@/components'
import {
getRoomContentList, delRoomContent, selectSearchInfoByType,
selectSearchInfoByShape, selectSearchInfoByCapacity, addRoomServe,
- selectRoomServeByRoom, selectRoomItemByRoom
+ selectRoomServeByRoom, selectRoomItemByRoom, getMeetingDict
} from '@/api/admin/meeting/roomContent'
import { getRoomServeList } from '@/api/admin/meeting/roomServe'
import { getRoomItemList } from '@/api/admin/meeting/roomItem'
@@ -224,6 +129,7 @@ import RoomContentModal from './modules/RoomContentModal.vue'
import { checkPermission } from '@/utils/permissions'
import { getDictArray } from '@/utils/dict'
import { addRoomItem } from '../../../api/admin/meeting/roomContent'
+import { delRepairDevice } from '@/api/admin/repair/repairDevice'
const typeMap = {}
const serveTypeMap = {}
@@ -235,6 +141,7 @@ export default {
},
data() {
return {
+ parkId: 25,
labelCol: {
xs: { span: 24 },
sm: { span: 5 }
@@ -251,9 +158,13 @@ export default {
// 高级搜索 展开/关闭
advanced: false,
// 查询参数
- queryParam: {},
- itemQueryParam: {
+ queryParam: {
+ meetingName: '',
+ typeName: '',
+ shape: '',
+ capacityNum: ''
},
+ itemQueryParam: {},
serveQueryParam: {},
capacityList: [],
shapeList: [],
@@ -269,28 +180,21 @@ export default {
{
title: '服务名称',
dataIndex: 'serveName'
- },
- {
- title: '服务类型',
- dataIndex: 'serveType',
- scopedSlots: { customRender: 'serveType' }
- },
- {
- title: '金额',
- dataIndex: 'money'
}
],
-
// 表头
columns: [
{
title: '会议室名称',
- dataIndex: 'meetingName'
+ dataIndex: 'name'
},
{
- title: '会议室类型',
- dataIndex: 'type',
- scopedSlots: { customRender: 'type' }
+ title: '所属楼层',
+ dataIndex: 'floor',
+ },
+ {
+ title: '所属房间',
+ dataIndex: 'roomNum'
},
{
title: '容纳人数',
@@ -298,26 +202,17 @@ export default {
},
{
title: '排列形状',
- dataIndex: 'shape'
+ dataIndex: 'typeName'
},
{
title: '会议室设备',
- dataIndex: 'itemCount',
- scopedSlots: { customRender: 'item' }
- },
- {
- title: '关联服务',
- dataIndex: 'serveCount',
- scopedSlots: { customRender: 'serve' }
- },
- {
- title: '金额',
- dataIndex: 'money'
- },
- {
- title: '负责人',
- dataIndex: 'headName'
+ dataIndex: 'device',
},
+ // {
+ // title: '关联服务',
+ // dataIndex: 'serveCount',
+ // scopedSlots: { customRender: 'serve' }
+ // },
{
title: '操作',
width: '200px',
@@ -327,19 +222,59 @@ export default {
],
// 加载数据方法 必须为 Promise 对象
loadData: (parameter) => {
- return getRoomContentList(Object.assign(parameter, this.queryParam))
- },
- itemLoadData: (parameter) => {
- console.log(this.parkId)
- let param ={
- parkId:this.parkId
+ let minPerNum = 0
+ let maxPerNum = 1000
+ let perNumValue = this.queryParam.capacityNum
+ if (perNumValue == 1) {
+ // 1-20
+ maxPerNum = 20
+ minPerNum = 1
+ } else if (perNumValue == 2) {
+ // 21-50
+ minPerNum = 21
+ maxPerNum = 50
+ } else if (perNumValue == 3) {
+ // 51-100
+ minPerNum = 51
+ maxPerNum = 100
+ } else if (perNumValue == 4) {
+ // 51-100
+ minPerNum = 101
+ maxPerNum = 1000
+ } else {
+ // 全部
+ minPerNum = 1
+ maxPerNum = 1000
}
+ const param = {
+ name: this.queryParam.meetingName, // 名称
+ floor: this.queryParam.typeName, // 楼层名称
+ typeName: this.queryParam.shape, // 形状
+ // capacityNum: this.queryParam.capacityNum // 容纳人数
+ min: minPerNum, // 最小容纳人数
+ max: maxPerNum, // 最大容纳人数
+ }
+ // if (param.typeName === '') {
+ // delete param.typeName
+ // }
+ // if (param.shape === '') {
+ // delete param.shape
+ // }
+ // if (param.capacityNum === '') {
+ // delete param.capacityNum
+ // }
+ return getRoomContentList(Object.assign(parameter, param))
+ },
+ itemLoadData: (parameter) => {
+ let param = {
+ parkId: this.parkId
+ }
return getRoomItemList(Object.assign(parameter, param))
},
serveLoadData: (parameter) => {
- let param ={
- parkId:this.parkId
+ let param = {
+ parkId: this.parkId
}
return getRoomServeList(Object.assign(parameter, param))
},
@@ -358,7 +293,7 @@ export default {
// 删除
deleteVisible: false,
deleteLoading: false,
- deleteIds : null,
+ deleteIds: null
}
},
filters: {
@@ -374,18 +309,65 @@ export default {
TypeData.map(d => {
typeMap[d.dictValue] = { text: d.dictLabel }
})
- console.log(typeMap)
+ // console.log(typeMap)
const serveTypeData = await getDictArray('serve_type')
serveTypeData.map(d => {
serveTypeMap[d.dictValue] = { text: d.dictLabel }
})
},
mounted() {
- this.selectSearchInfoByType()
- this.selectSearchInfoByShape()
- this.selectSearchInfoByCapacity()
+ this.getDict()
+ // this.selectSearchInfoByType()
+ // this.selectSearchInfoByShape()
+ // this.selectSearchInfoByCapacity()
},
methods: {
+ // 获取查询参数
+ getDict() {
+ getMeetingDict().then((res) => {
+ // 楼层
+ let _typeList = []
+ let dataObj = res.data
+ for (let key in dataObj.floors) {
+ let eachObj = dataObj.floors[key]
+ const keys = Object.keys(eachObj)
+ _typeList.push({
+ text: keys[0],
+ value: keys[0]
+ })
+ }
+ _typeList = [{
+ text: '全部',
+ value: ''
+ }, ..._typeList]
+ this.typeList = _typeList
+
+ // 形状
+ let _shapeList = []
+ for (let key in dataObj.types) {
+ let eachObj = dataObj.types[key]
+ const keys = Object.keys(eachObj)
+ _shapeList.push({
+ text: keys[0],
+ value: keys[0]
+ })
+ }
+ _shapeList = [{
+ text: '全部',
+ value: ''
+ }, ..._shapeList]
+ this.shapeList = _shapeList
+ })
+ },
+ reset() {
+ this.queryParam = {
+ meetingName: '',
+ typeName: '',
+ shape: '',
+ capacityNum: ''
+ }
+ this.$refs.table.refresh(true)
+ },
itemHandleOk() {
console.log(this.meetingId)
let params = {
@@ -433,9 +415,9 @@ export default {
},
handleItemTable(record) {
let params = {
- roomContentId: record.id,
+ roomContentId: record.id
}
- this.parkId = record.parkId
+ // this.parkId = record.parkId
selectRoomItemByRoom(params).then((res) => {
this.selectedItemRowKeys = res.data.map(d => d.itemId)
@@ -447,10 +429,9 @@ export default {
},
handleServeTable(record) {
let params = {
- romeContentId: record.id,
-
+ romeContentId: record.id
}
- this.parkId = record.parkId
+ // this.parkId = record.parkId
selectRoomServeByRoom(params).then((res) => {
this.selectedServeRowKeys = res.data.map(d => d.serveId)
this.selectedServeRows = res.data
@@ -461,21 +442,21 @@ export default {
},
// 获取查询条件
- selectSearchInfoByType() {
- selectSearchInfoByType().then((res) => {
- this.typeList = res.roomContents
- })
- },
- selectSearchInfoByShape() {
- selectSearchInfoByShape().then((res) => {
- this.shapeList = res.roomContents
- })
- },
- selectSearchInfoByCapacity() {
- selectSearchInfoByCapacity().then((res) => {
- this.capacityList = res.roomContents
- })
- },
+ // selectSearchInfoByType() {
+ // selectSearchInfoByType().then((res) => {
+ // this.typeList = res.roomContents
+ // })
+ // },
+ // selectSearchInfoByShape() {
+ // selectSearchInfoByShape().then((res) => {
+ // this.shapeList = res.roomContents
+ // })
+ // },
+ // selectSearchInfoByCapacity() {
+ // selectSearchInfoByCapacity().then((res) => {
+ // this.capacityList = res.roomContents
+ // })
+ // },
onSelectChange(selectedRowKeys, selectedRows) {
this.selectedRowKeys = selectedRowKeys
this.selectedRows = selectedRows
@@ -483,37 +464,43 @@ export default {
handleAdd() {
this.$refs.modal.add()
},
- handleEdit(record) {
- this.$refs.modal.edit(record)
+ handleEdit(id) {
+ this.$refs.modal.edit(id)
},
handleOk() {
this.$refs.table.refresh(true)
},
delByIds(ids) {
- delRoomContent({ ids: ids.join(',') }).then((res) => {
- if (res.code === 0) {
- this.$message.success('删除成功')
- this.handleOk()
- } else {
- this.$message.error(res.msg)
+ const _this = this
+ if (ids === '') {
+ this.$message.error('请选择后删除!')
+ return
+ }
+ this.$confirm({
+ title: '警告',
+ content: '删除后不可恢复,是否确认删除?',
+ okText: '是',
+ okType: 'warning',
+ cancelText: '否',
+ onOk() {
+ delRoomContent({ ids: ids.join(',') }).then((res) => {
+ if (res.code === 0) {
+ _this.$message.success('删除成功')
+ _this.handleOk()
+ } else {
+ _this.$message.error(res.msg)
+ }
+ _this.selectedRowKeys = []
+ // 删除结束
+ _this.deleteVisible = false
+ _this.deleteLoading = false
+ })
+ },
+ onCancel() {
}
- this.selectedRowKeys = []
- // 删除结束
- this.deleteVisible = false
- this.deleteLoading = false
})
},
- deleteShow(ids) {
- this.deleteVisible = true
- this.deleteIds = ids
- },
- deleteOk() {
- this.deleteLoading = true;
- this.delByIds(this.deleteIds)
- },
- deleteCancel() {
- this.deleteVisible = false
- },
+
},
watch: {
/*
diff --git a/src/views/admin/meeting/UtoList.vue b/src/views/admin/meeting/UtoList.vue
new file mode 100644
index 0000000..70a21b0
--- /dev/null
+++ b/src/views/admin/meeting/UtoList.vue
@@ -0,0 +1,184 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+ 重置
+
+
+
+
+
+
+
+
+ 编辑
+
+ 删除
+
+
+
+
+
+
+
diff --git a/src/views/admin/meeting/modules/RoomContentModal.vue b/src/views/admin/meeting/modules/RoomContentModal.vue
index cfe2831..2417ea4 100644
--- a/src/views/admin/meeting/modules/RoomContentModal.vue
+++ b/src/views/admin/meeting/modules/RoomContentModal.vue
@@ -18,235 +18,81 @@
-
-
- {{ item.name }}
-
-
-
-
-
-
- {{ item.name }}
-
-
-
-
-
-
-
-
-
- {{ item.buildingName }}
-
-
-
-
-
-
-
- {{ item.floorName }}
+
+
+
+ {{ item.text }}
-
-
-
-
-
-
-
- {{ item.name }}
-
-
-
-
-
-
-
-
-
-
-
-
+ v-decorator="['name',{rules: [{ required: true, message: '输入会议室名称' }]}]" />
+
+
+
-
-
-
- 会议室
-
-
- 路演厅
-
-
- 洽谈室
-
-
- 直播间
-
-
- 茶室
-
-
- 长阳会客厅
-
-
- 多功能厅
-
-
- 数据要素
+
+
+
+ {{ item.text }}
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
- 围桌式
-
-
- 课桌式
-
-
- 长方形
-
-
- U形
-
-
- 鱼骨形
-
-
- 开放形
-
-
- 会议形
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 是
-
-
- 否
-
-
-
-
-
-
-
-
-
-
-
- 是
-
-
- 否
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+ {{ item.text }}
+
+
+
+
+
+
+
+
+ {{ item.text }}
+
+
-
是
@@ -259,12 +105,6 @@
-
-
-
-
-
@@ -275,7 +115,7 @@
{
+ // 楼层
+ let _typeList = []
+ let _typeMap = {}
+ let dataObj = res.data
+ for (let key in dataObj.floors) {
+ let eachObj = dataObj.floors[key]
+ const keys = Object.keys(eachObj)
+ _typeList.push({
+ text: keys[0],
+ value: keys[0]
+ })
+ this.typeMap[keys[0]] = eachObj[keys[0]]
+ // this.typeMap.keys[0] = eachObj[keys[0]]
+ }
+
+ this.typeList = _typeList
+
+ // 形状
+ let _shapeList = []
+ for (let key in dataObj.types) {
+ let eachObj = dataObj.types[key]
+ const keys = Object.keys(eachObj)
+ _shapeList.push({
+ text: keys[0],
+ value: keys[0]
+ })
+ this.shapeMap[keys[0]] = eachObj[keys[0]]
+ }
+ this.shapeList = _shapeList
+
+ // 设备
+ let _deviceList = []
+ for (let key in dataObj.devices) {
+ let eachObj = dataObj.devices[key]
+ const keys = Object.keys(eachObj)
+ _deviceList.push({
+ text: keys[0],
+ value: keys[0]
+ })
+ this.deviceMap[keys[0]] = eachObj[keys[0]]
+ }
+ this.deviceList = _deviceList
+
+ // 设备
+ let _serviceList = []
+ for (let key in dataObj.services) {
+ let eachObj = dataObj.services[key]
+ const keys = Object.keys(eachObj)
+ _serviceList.push({
+ text: keys[0],
+ value: eachObj[keys[0]]
+ })
+ this.serviceMap[keys[0]] = eachObj[keys[0]]
+ }
+ this.serviceList = _serviceList
+ })
+ },
// 获取用户详细信息
getUserDetail() {
getInfo().then(res => {
console.log('getUserDetail', res)
this.userDetail = res
// 园区:5
- if (this.userDetail.roleIds && this.userDetail.roleIds.length > 0 && this.userDetail.roleIds[0] == 5) {
- //
- // 判断:是新增就查询园区
- let { id } = this.mdl
- if (!id) {
- // 选择地区 -> 查询园区
- this.selectTenant(this.userDetail.tenantId)
- // 选择园区 -> 查询楼宇
- this.selectPark(this.userDetail.parkId)
- }
- //
- // 不可编辑
- this.tenantEnable = true
- this.parkEnable = true
- // 关联地区和园区
- this.mdl.parkId = this.userDetail.parkId
- this.mdl.tenantId = this.userDetail.tenantId
- this.form.setFieldsValue({
- parkId: this.mdl.parkId,
- tenantId: this.mdl.tenantId
- })
- }
+ // if (this.userDetail.roleIds && this.userDetail.roleIds.length > 0 && this.userDetail.roleIds[0] == 5) {
+ // //
+ // // 判断:是新增就查询园区
+ // let { id } = this.mdl
+ // if (!id) {
+ // // 选择地区 -> 查询园区
+ // this.selectTenant(this.userDetail.tenantId)
+ // // 选择园区 -> 查询楼宇
+ // this.selectPark(this.userDetail.parkId)
+ // }
+ // //
+ // // 不可编辑
+ // this.tenantEnable = true
+ // this.parkEnable = true
+ // // 关联地区和园区
+ // this.mdl.parkId = this.userDetail.parkId
+ // this.mdl.tenantId = this.userDetail.tenantId
+ // this.form.setFieldsValue({
+ // parkId: this.mdl.parkId,
+ // tenantId: this.mdl.tenantId
+ // })
+ // }
+ console.log(this.mdl)
})
},
- // 查询地区
- getTenantData() {
- getTenantList().then(res => {
- this.tenantList = res.rows
- })
- },
- // 选择地区 -> 查询园区
- selectTenant(id) {
- console.log('selectTenant', id)
- // 清空数据
- this.mdl.parkId = null // 园区
- this.mdl.buildingId = null // 楼宇
- this.mdl.buildId = null // 楼层
- this.mdl.roomId = null // 所属房间
- this.mdl.area = null // 会议室面积
-
- this.form.setFieldsValue({
- parkId: null, // 园区
- buildingId: null, // 楼宇
- buildId: null, // 楼层
- roomId: null, // 所属房间
- area: null // 会议室面积
- })
- // 查询园区
- getParkList({
- tenantId: id
- }).then(res => {
- this.parkList = res.rows
- })
- },
- // 选择园区 -> 查询楼宇
- selectPark(id) {
- // 清空数据
- this.mdl.buildingId = null // 楼宇
- this.mdl.buildId = null // 楼层
- this.mdl.roomId = null // 所属房间
- this.mdl.area = null // 会议室面积
-
- this.form.setFieldsValue({
- buildingId: null, // 楼宇
- buildId: null, // 楼层
- roomId: null, // 所属房间
- area: null // 会议室面积
- })
- // 查询楼宇
- getBuildingList({
- parkId: id
- }).then(res => {
- this.buildingList = res.rows
- })
- },
- // 选择楼宇 -> 查询楼层
- selectBuilding(id) {
- // 清空数据
- this.mdl.buildId = null // 楼层
- this.mdl.roomId = null // 所属房间
- this.mdl.area = null // 会议室面积
-
- this.form.setFieldsValue({
- buildId: null, // 楼层
- roomId: null, // 所属房间
- area: null // 会议室面积
- })
- // 查询楼层
- getBuildingDetailList({
- buildingId: id
- }).then(res => {
- this.buildingDetailList = res.rows
- })
- },
- // 选择楼层 -> 查询房间
- selectBuildingDetail(buildingDetailId) {
- // 查询房间
- this.getRoomListByFloorIdMethod(buildingDetailId)
- },
- // 查询房间
- getRoomListByFloorIdMethod(buildingDetailId, id) {
- // 清空数据
- this.mdl.roomId = null // 所属房间
- this.mdl.area = null // 会议室面积
-
- this.form.setFieldsValue({
- roomId: null, // 所属房间
- area: null // 会议室面积
- })
- // 查询房间
- getRoomListByFloorId({
- 'id': id,
- 'buildingDetailId': buildingDetailId,
- 'type': 0
- }).then((res) => {
- this.roomList = res.data
- })
- },
- // 选择房间 -> 查询面积
- selectRoom(id) {
- // 清空数据
- this.mdl.area = null // 会议室面积
-
- this.form.setFieldsValue({
- area: null // 会议室面积
- })
- // 查询面积
- selectRoomById({
- 'id': id
- }).then((res) => {
- this.form.setFieldsValue({
- area: res.data.area
- })
- })
- },
- //
- selectChangeIsToll(value) {
- this.mdl.isToll = value
- },
moment,
//
async handlePreview(file) {
@@ -525,109 +320,142 @@ export default {
add() {
this.form.resetFields()
this.mdl = {}
- this.edit({ id: 0 })
- },
- edit(record) {
- this.mdl = Object.assign(this.mdl, record)
- let copyMdl = JSON.parse(JSON.stringify(this.mdl))
- // 查询地区
- this.getTenantData()
- //
- if (record.id != 0) { // 编辑
- // 选择地区 -> 查询园区
- if (copyMdl.tenantId) {
- this.mdl = JSON.parse(JSON.stringify(copyMdl))
- this.selectTenant(copyMdl.tenantId)
- }
- // 选择园区 -> 查询楼宇
- if (copyMdl.parkId) {
- this.mdl = JSON.parse(JSON.stringify(copyMdl))
- this.selectPark(copyMdl.parkId)
- }
- // 选择楼宇 -> 查询楼层
- if (copyMdl.buildingId) {
- this.mdl = JSON.parse(JSON.stringify(copyMdl))
- this.selectBuilding(copyMdl.buildingId)
- }
- // 选择楼层 -> 查询房间
- if (copyMdl.buildId) {
- this.mdl = JSON.parse(JSON.stringify(copyMdl))
- this.getRoomListByFloorIdMethod(copyMdl.buildId, copyMdl.roomId)
- }
- // 防止替换
- this.mdl = JSON.parse(JSON.stringify(copyMdl))
-
- } else { // 新增
-
- }
- // 获取用户信息
- this.getUserDetail()
- // 图片
- if (this.mdl.indoorPicUrl) {
- this.mdl.indoorPicUrl = JSON.parse(this.mdl.indoorPicUrl)
- this.mdl.indoorPicUrl.forEach((item, i) => {
- item.url = process.env.VUE_APP_API_BASE_URL + item.url
- })
- this.fileList = this.mdl.indoorPicUrl
- } else {
- this.fileList = []
- }
- //
+ this.fileList = []
this.visible = true
- this.$nextTick(() => {
- this.form.setFieldsValue(
- pick(
- this.mdl,
- 'id',
- 'type',
- 'meetingName',
- 'capacityNum',
- 'expandNum',
- 'indoorPicUrl',
- 'startTime',
- 'endDate',
- 'money',
- 'isShow',
- 'shape',
- 'area',
- 'address',
- 'headName',
- 'headPhone',
- 'isTicket',
- 'isToll',
- 'money',
- 'remake',
- 'duration',
- 'content',
- 'tenantId',
- 'parkId',
- 'buildingId',
- 'buildId',
- 'roomId'
+ },
+ edit(id) {
+ this.form.resetFields()
+ this.mdl = {}
+ this.fileList = []
+ getRoomInfo({ roomId: id }).then((res) => {
+ let deviceStr = res.room.device
+ if (deviceStr != '') {
+ deviceStr = deviceStr.replaceAll(' ', '')
+ let deviceArr = deviceStr.split('#')
+ if (deviceArr[0] == '') {
+ deviceArr.shift()
+ }
+ res.room.device = deviceArr
+ }
+ let serviceStr = res.room.ext1
+ if (serviceStr && serviceStr != '') {
+ let serviceArr = serviceStr.split(',')
+ res.room.service = serviceArr
+ }
+ this.mdl = Object.assign(this.mdl, res.room)
+
+ this.visible = true
+ this.$nextTick(() => {
+ this.form.setFieldsValue(
+ pick(
+ this.mdl,
+ 'id',
+ 'device',
+ 'typeName',
+ 'name',
+ 'capacityNum',
+ 'floor',
+ 'files',
+ 'startTime',
+ 'endDate',
+ 'money',
+ 'enable',
+ 'typeName',
+ 'content',
+ 'area',
+ 'roomNum',
+ 'service'
+ )
)
- )
+ })
+ // 图片
+ console.log(this.mdl)
+ if (this.mdl.imgs) {
+ let files = []
+ let fileId = []
+ for (let key in this.mdl.imgs) {
+ let eachObj = this.mdl.imgs[key]
+ files.push({
+ uid: '0',
+ id: eachObj.id,
+ url: process.env.VUE_APP_MODEL_BASE_URL + eachObj.url,
+ status: 'done',
+ name: eachObj.url
+ })
+ fileId.push(eachObj.id)
+ }
+ this.fileList = files
+ this.mdl.files = fileId
+ } else {
+ this.fileList = []
+ }
})
+
+ // // let copyMdl = JSON.parse(JSON.stringify(this.mdl))
+ // // 查询地区
+ // // this.getTenantData()
+ // //
+ // if (record.id != 0) { // 编辑
+ // } else { // 新增
+ // }
+ // // 获取用户信息
+ // this.getUserDetail()
+
+ // //
+
},
handleSubmit(e) {
e.preventDefault()
this.form.validateFields((err, values) => {
if (!err) {
console.log('Received values of form: ', values)
- this.confirmLoading = true
- const indoorPicUrl = []
+ this.confirmLoading = false
+
+ // const indoorPicUrl = []
+ const files = []
+
this.fileList.forEach((file, index) => {
// 添加原来的
- if (file.hasOwnProperty('name') && file.hasOwnProperty('url') && file.hasOwnProperty('uid')) {
- indoorPicUrl.push({ 'name': file.name, 'url': file.name, 'uid': index })
+
+ if (file.hasOwnProperty('url') && file.hasOwnProperty('id')) {
+ // indoorPicUrl.push({ 'name': file.name, 'url': file.name, 'id': file.id })
+
+ files.push(file.id)
}
- if (file.status === 'done' && file.response.code === 0) {
+ if (file.hasOwnProperty('response') && file.status === 'done' && file.response.code === 0) {
const data = file.response
- indoorPicUrl.push({ 'name': data.fileName, 'url': data.fileName, 'uid': index })
+ // indoorPicUrl.push({ 'name': data.fileName, 'url': data.fileName, 'uid': index })
+ files.push(file.response.id)
}
+
})
+
// 多个图片
- values.indoorPicUrl = JSON.stringify(indoorPicUrl)
- saveRoomContent(values)
+ // values.indoorPicUrl = JSON.stringify(indoorPicUrl)
+ // values.files = files
+ let deviceArr = values.device
+ let deviceStr = ''
+ for (let key in deviceArr) {
+ let eachObj = deviceArr[key]
+ deviceStr += '#' + eachObj + ' '
+ }
+ values.device = deviceStr
+
+ let serviceArr = values.service
+ let serviceStr = ''
+ for (let key in serviceArr) {
+ let eachObj = serviceArr[key]
+ serviceStr += eachObj + ','
+ }
+ // 去掉最后一个,号
+ if (serviceStr != '') {
+ serviceStr = serviceStr.substring(0, serviceStr.length - 1)
+ }
+ // 存到ext1里
+ values.ext1 = serviceStr
+ values.floorId = this.typeMap[values.floor]
+ values.typeId = this.shapeMap[values.typeName]
+ saveRoomContent(values, files)
.then((res) => {
if (res.code === 0) {
this.$message.success('保存成功')
diff --git a/src/views/admin/meeting/modules/UtoModal.vue b/src/views/admin/meeting/modules/UtoModal.vue
new file mode 100644
index 0000000..9fe658e
--- /dev/null
+++ b/src/views/admin/meeting/modules/UtoModal.vue
@@ -0,0 +1,115 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/admin/modules/IcsCustomerStaffModal.vue b/src/views/admin/modules/IcsCustomerStaffModal.vue
index f2b6fc6..c6a152a 100644
--- a/src/views/admin/modules/IcsCustomerStaffModal.vue
+++ b/src/views/admin/modules/IcsCustomerStaffModal.vue
@@ -1,89 +1,89 @@
-
-
+
+
-
-
-
- {{ item.name }}
-
-
+
+
-
-
+
+
-
-
-
-
-
+
+
男
女
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 普通用户
+ 派单员
+ 维修人
+ 管理员
+ 楼层管理员
+
-
-
-
-
-
+
+
+ 普通用户
+ 会议服务人员
+ 会议管理员
+
-
-
+
+
+ 音控组
+ 会务服务组
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
@@ -103,7 +103,7 @@ export default {
name: 'IcsCustomerStaffModal',
props: {},
components: {},
- data() {
+ data () {
return {
visible: false,
labelCol: {
@@ -129,13 +129,13 @@ export default {
avatarLoading: false
}
},
- beforeCreate() {
+ beforeCreate () {
},
- created() {
+ created () {
},
methods: {
// 照片
- photoBeforeUpload(file) {
+ photoBeforeUpload (file) {
const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png'
if (!isJpgOrPng) {
this.$message.error('You can only upload JPG file!')
@@ -146,7 +146,7 @@ export default {
}
return isJpgOrPng && isLt2M
},
- photoHandleChange(info) {
+ photoHandleChange (info) {
if (info.file.status === 'uploading') {
this.photoLoading = true
return
@@ -169,7 +169,7 @@ export default {
}
},
// 头像
- avatarBeforeUpload(file) {
+ avatarBeforeUpload (file) {
const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png'
if (!isJpgOrPng) {
this.$message.error('You can only upload JPG file!')
@@ -180,7 +180,7 @@ export default {
}
return isJpgOrPng && isLt2M
},
- avatarHandleChange(info) {
+ avatarHandleChange (info) {
if (info.file.status === 'uploading') {
this.avatarLoading = true
return
@@ -202,16 +202,17 @@ export default {
})
}
},
- getBase64(img, callback) {
+ getBase64 (img, callback) {
const reader = new FileReader()
reader.addEventListener('load', () => callback(reader.result))
reader.readAsDataURL(img)
},
- add() {
+ add () {
this.form.resetFields()
this.edit({ id: 0 })
},
- edit(record) {
+ edit (record) {
+ console.log(record)
// 查询企业
getCustomerList().then(res => {
console.log('getCustomerList', res)
@@ -220,7 +221,7 @@ export default {
this.mdl = Object.assign(record)
this.visible = true
this.$nextTick(() => {
- this.form.setFieldsValue(pick(this.mdl, 'id', 'icsCustomerId', 'name', 'mobile', 'gender', 'photo', 'avatar', 'username', 'cardNo', 'address', 'email', 'degree', 'urgent'))
+ this.form.setFieldsValue(pick(this.mdl, 'id', 'icsCustomerId', 'name', 'mobile', 'gender', 'photo', 'avatar', 'dataType', 'roomRole', 'roomRoleType', 'username', 'cardNo', 'address', 'email', 'degree', 'urgent'))
})
//
if (this.mdl.photo) {
@@ -234,7 +235,7 @@ export default {
this.avatarImageUrl = ''
}
},
- handleSubmit(e) {
+ handleSubmit (e) {
e.preventDefault()
this.form.validateFields((err, values) => {
if (!err) {
@@ -242,6 +243,7 @@ export default {
this.confirmLoading = true
console.log('Received values of form: ')
saveIcsCustomerStaff(values).then(res => {
+ console.log(111)
if (res.code === 0) {
this.$message.success('保存成功')
this.$emit('ok')
diff --git a/src/views/admin/repair/PerformanceList.vue b/src/views/admin/repair/PerformanceList.vue
index 7718f72..8ea947a 100644
--- a/src/views/admin/repair/PerformanceList.vue
+++ b/src/views/admin/repair/PerformanceList.vue
@@ -28,6 +28,7 @@
size='default'
ref='tableFloor'
rowKey='id'
+ showPagination="true"
:columns='floorColumns'
:data='loadFloor'
>
@@ -58,6 +59,7 @@
size='default'
ref='tableFloorCreate'
rowKey='id'
+ showPagination="true"
:columns='floorCreateColumns'
:data='loadFloorCreate'
>
@@ -88,6 +90,7 @@
size='default'
ref='tableWorker'
rowKey='id'
+ showPagination="true"
:columns='columns'
:data='loadWorker'
>
diff --git a/src/views/admin/repair/RepairAddressList.vue b/src/views/admin/repair/RepairAddressList.vue
index 1b2266a..d2e6874 100644
--- a/src/views/admin/repair/RepairAddressList.vue
+++ b/src/views/admin/repair/RepairAddressList.vue
@@ -22,6 +22,7 @@
size="default"
ref="table"
rowKey="id"
+ showPagination="true"
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
:columns="columns"
:data="loadData"
diff --git a/src/views/admin/repair/RepairDeviceList.vue b/src/views/admin/repair/RepairDeviceList.vue
index eb51409..cb5e468 100644
--- a/src/views/admin/repair/RepairDeviceList.vue
+++ b/src/views/admin/repair/RepairDeviceList.vue
@@ -27,6 +27,7 @@
size='default'
ref='table'
rowKey='id'
+ showPagination="true"
:rowSelection='{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}'
:columns='columns'
:data='loadData'
diff --git a/src/views/admin/repair/RepairDeviceTypeList.vue b/src/views/admin/repair/RepairDeviceTypeList.vue
index 676d6f0..c7e1c36 100644
--- a/src/views/admin/repair/RepairDeviceTypeList.vue
+++ b/src/views/admin/repair/RepairDeviceTypeList.vue
@@ -28,6 +28,7 @@
size='default'
ref='table'
rowKey='id'
+ showPagination="true"
:rowSelection='{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}'
:columns='columns'
:data='loadData'
diff --git a/src/views/admin/repair/RepairHistory.vue b/src/views/admin/repair/RepairHistory.vue
index c30562f..666a4d0 100644
--- a/src/views/admin/repair/RepairHistory.vue
+++ b/src/views/admin/repair/RepairHistory.vue
@@ -51,6 +51,7 @@
size='default'
ref='table'
rowKey='id'
+ showPagination="true"
:columns='columns'
:data='loadData'
>