mirror of
https://gitee.com/elegant_wings/dbd-meeting-html.git
synced 2025-06-21 04:29:36 +08:00
新增了会议预约记录的页面和会议管理的页面
This commit is contained in:
parent
f232fa9d63
commit
3720b9ccd9
42
src/api/admin/meeting/meetingReservation.js
Normal file
42
src/api/admin/meeting/meetingReservation.js
Normal file
@ -0,0 +1,42 @@
|
||||
import { axios } from '@/utils/request'
|
||||
|
||||
const api = {
|
||||
meetingReservation: '/admin/mr'
|
||||
}
|
||||
|
||||
export function getMeetingReservationList (parameter) {
|
||||
return axios({
|
||||
url: api.meetingReservation + '/list',
|
||||
method: 'post',
|
||||
data: parameter
|
||||
})
|
||||
}
|
||||
|
||||
export function getAllRoom (parameter) {
|
||||
return axios({
|
||||
url: api.meetingReservation + '/getAllRoom',
|
||||
method: 'post',
|
||||
data: parameter
|
||||
})
|
||||
}
|
||||
|
||||
export function saveMeetingReservation (parameter) {
|
||||
return axios({
|
||||
url: api.meetingReservation + (parameter.id > 0 ? '/update' : '/save'),
|
||||
method: 'post',
|
||||
data: parameter,
|
||||
headers: {
|
||||
'Content-Type': 'application/json;charset=UTF-8'
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
export function delMeetingReservation (parameter) {
|
||||
return axios({
|
||||
url: api.meetingReservation + '/remove',
|
||||
method: 'post',
|
||||
params: parameter
|
||||
})
|
||||
}
|
||||
|
||||
export const meetingReservationExport = api.meetingReservation + '/export'
|
192
src/views/admin/meeting/MeetingMangerList.vue
Normal file
192
src/views/admin/meeting/MeetingMangerList.vue
Normal file
@ -0,0 +1,192 @@
|
||||
<template>
|
||||
<a-card :bordered="false">
|
||||
<div class="table-page-search-wrapper">
|
||||
<a-form layout="inline">
|
||||
<a-row :gutter="48">
|
||||
|
||||
|
||||
<a-col :md="5" :sm="15">
|
||||
<a-form-item label="状态">
|
||||
<a-select v-model="queryParam.status">
|
||||
<a-select-option value="1">
|
||||
取消
|
||||
</a-select-option>
|
||||
<a-select-option value="3">
|
||||
驳回
|
||||
</a-select-option>
|
||||
<a-select-option value="4">
|
||||
占用
|
||||
</a-select-option>
|
||||
<a-select-option value="5">
|
||||
待审核
|
||||
</a-select-option>
|
||||
<a-select-option value="7">
|
||||
审核通过
|
||||
</a-select-option>
|
||||
<a-select-option value="9">
|
||||
进行中
|
||||
</a-select-option>
|
||||
<a-select-option value="11">
|
||||
已结束
|
||||
</a-select-option>
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :md="5" :sm="15">
|
||||
<a-form-item label="会议室名称">
|
||||
<a-input placeholder="会议室名称" v-model="queryParam.roomName" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :md="5" :sm="15">
|
||||
<a-form-item label="设备">
|
||||
<a-input placeholder="设备" v-model="queryParam.deviceId" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :md="5" :sm="15">
|
||||
<a-form-item label="人数">
|
||||
<a-input placeholder="请输人数" v-model="queryParam.num" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :md="5" :sm="15">
|
||||
<a-form-item label="形式">
|
||||
<a-input placeholder="请输入形式" v-model="queryParam.parkId" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :md="8" :sm="24">
|
||||
<span class="table-page-search-submitButtons">
|
||||
<a-button type="primary" @click="$refs.table.refresh(true)">查询</a-button>
|
||||
<a-button style="margin-left: 8px" @click="() => queryParam = {}">重置</a-button>
|
||||
<a-button type="primary" style="margin-left: 450px">会议预约</a-button>
|
||||
<a-button type="success" style="margin-left: 8px">占用</a-button>
|
||||
</span>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
<div class="room">
|
||||
<div class="roomItem" v-for="item in roomList">
|
||||
<div class="title">
|
||||
{{ item.name }}
|
||||
</div>
|
||||
<div class="nav">
|
||||
<div class="nav-item" v-for="room in item.list" :key="room.id">
|
||||
<div class="desc" >
|
||||
{{ room.name }}
|
||||
</div>
|
||||
<!-- <div class="desc disabled" >-->
|
||||
<!-- {{ room.name }}-->
|
||||
<!-- </div>-->
|
||||
<div class="desc-item">
|
||||
<div class="num">
|
||||
{{ room.capacityNum }}人
|
||||
</div>
|
||||
<div class="shape">
|
||||
{{room.typeName}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a-card>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getAllRoom } from '@/api/admin/meeting/meetingReservation'
|
||||
|
||||
export default {
|
||||
name: 'MeetingMangerList',
|
||||
data () {
|
||||
return {
|
||||
|
||||
form: this.$form.createForm(this),
|
||||
mdl: {},
|
||||
// 高级搜索 展开/关闭
|
||||
advanced: false,
|
||||
// 查询参数
|
||||
queryParam: {},
|
||||
roomList: []
|
||||
// 表头
|
||||
|
||||
}
|
||||
},
|
||||
created () {
|
||||
this.getAllRoomList()
|
||||
},
|
||||
methods: {
|
||||
getAllRoomList () {
|
||||
getAllRoom({ timeFormat: 0, min: 1, max: 1000 }).then(res => {
|
||||
const roomArr = {}
|
||||
const valueObj = res.data
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
for (const key in valueObj) {
|
||||
const eachObj = valueObj[key]
|
||||
if (eachObj['floorId'] in roomArr) {
|
||||
} else {
|
||||
roomArr[eachObj['floorId']] = {
|
||||
name: eachObj['floor'],
|
||||
list: []
|
||||
}
|
||||
}
|
||||
roomArr[eachObj['floorId']]['list'].push(eachObj)
|
||||
}
|
||||
this.roomList = roomArr
|
||||
console.log(this.roomList)
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.room {
|
||||
border-top: 1px solid rgb(221 215 215 / 65%);
|
||||
}
|
||||
|
||||
.roomItem {
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.roomItem .desc {
|
||||
width: 150px;
|
||||
height: 50px;
|
||||
background-color: #A3CDFF;
|
||||
border-radius: 10px 10px 0 0px;
|
||||
line-height: 50px;
|
||||
text-align: center;
|
||||
font-size: 20px;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
|
||||
.roomItem .desc-item {
|
||||
width: 150px;
|
||||
height: 30px;
|
||||
background-color: #D8E9FC;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
border-radius: 0 0px 10px 10px;
|
||||
}
|
||||
|
||||
.desc-item .num {
|
||||
padding-left: 10px;
|
||||
}
|
||||
|
||||
.desc-item .shape {
|
||||
padding-right: 10px;
|
||||
}
|
||||
|
||||
.disabled{
|
||||
background-color: #F2F2F2 !important;
|
||||
}
|
||||
|
||||
.nav {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.nav-item {
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
</style>
|
326
src/views/admin/meeting/MeetingReservationList.vue
Normal file
326
src/views/admin/meeting/MeetingReservationList.vue
Normal file
@ -0,0 +1,326 @@
|
||||
<template>
|
||||
<a-card :bordered="false">
|
||||
<div class="table-page-search-wrapper">
|
||||
<a-form layout="inline">
|
||||
<a-row :gutter="48">
|
||||
<!-- <a-col :md="5" :sm="15">-->
|
||||
<!-- <a-form-item label="预约号">-->
|
||||
<!-- <a-input placeholder="请输入预约号" v-model="queryParam.sn"/>-->
|
||||
<!-- </a-form-item>-->
|
||||
<!-- </a-col>-->
|
||||
<!-- <a-col :md="5" :sm="15">-->
|
||||
<!-- <a-form-item label="会议室id">-->
|
||||
<!-- <a-input placeholder="请输入会议室id" v-model="queryParam.roomId"/>-->
|
||||
<!-- </a-form-item>-->
|
||||
<!-- </a-col>-->
|
||||
<!-- <a-col :md="5" :sm="15">-->
|
||||
<!-- <a-form-item label="预约时间格式:0 任意时间,1上午,2下午,3晚上">-->
|
||||
<!-- <a-input placeholder="请输入预约时间格式:0 任意时间,1上午,2下午,3晚上" v-model="queryParam.timeFormat"/>-->
|
||||
<!-- </a-form-item>-->
|
||||
<!-- </a-col>-->
|
||||
<!-- <a-col :md="5" :sm="15">-->
|
||||
<!-- <a-form-item label="参与人数">-->
|
||||
<!-- <a-input placeholder="请输入参与人数" v-model="queryParam.personNum"/>-->
|
||||
<!-- </a-form-item>-->
|
||||
<!-- </a-col>-->
|
||||
<!-- <a-col :md="5" :sm="15">-->
|
||||
<!-- <a-form-item label="参会领导">-->
|
||||
<!-- <a-input placeholder="请输入参会领导" v-model="queryParam.leader"/>-->
|
||||
<!-- </a-form-item>-->
|
||||
<!-- </a-col>-->
|
||||
<!-- <a-col :md="5" :sm="15">-->
|
||||
<!-- <a-form-item label="预约人姓名">-->
|
||||
<!-- <a-input placeholder="请输入预约人姓名" v-model="queryParam.bookingUserName"/>-->
|
||||
<!-- </a-form-item>-->
|
||||
<!-- </a-col>-->
|
||||
<!-- <a-col :md="5" :sm="15">-->
|
||||
<!-- <a-form-item label="预约人联系电话">-->
|
||||
<!-- <a-input placeholder="请输入预约人联系电话" v-model="queryParam.bookingUserPhone"/>-->
|
||||
<!-- </a-form-item>-->
|
||||
<!-- </a-col>-->
|
||||
<!-- <a-col :md="5" :sm="15">-->
|
||||
<!-- <a-form-item label="预约用户单位id">-->
|
||||
<!-- <a-input placeholder="请输入预约用户单位id" v-model="queryParam.userOrgId"/>-->
|
||||
<!-- </a-form-item>-->
|
||||
<!-- </a-col>-->
|
||||
<!-- <a-col :md="5" :sm="15">-->
|
||||
<!-- <a-form-item label="预约用户单位名称">-->
|
||||
<!-- <a-input placeholder="请输入预约用户单位名称" v-model="queryParam.userOrg"/>-->
|
||||
<!-- </a-form-item>-->
|
||||
<!-- </a-col>-->
|
||||
<!-- <a-col :md="5" :sm="15">-->
|
||||
<!-- <a-form-item label="操作记录,json 格式">-->
|
||||
<!-- <a-input placeholder="请输入操作记录,json 格式" v-model="queryParam.operate"/>-->
|
||||
<!-- </a-form-item>-->
|
||||
<!-- </a-col>-->
|
||||
<!-- <a-col :md="5" :sm="15">-->
|
||||
<!-- <a-form-item label="扩展1">-->
|
||||
<!-- <a-input placeholder="请输入扩展1" v-model="queryParam.ext1"/>-->
|
||||
<!-- </a-form-item>-->
|
||||
<!-- </a-col>-->
|
||||
<!-- <a-col :md="5" :sm="15">-->
|
||||
<!-- <a-form-item label="扩展2">-->
|
||||
<!-- <a-input placeholder="请输入扩展2" v-model="queryParam.ext2"/>-->
|
||||
<!-- </a-form-item>-->
|
||||
<!-- </a-col>-->
|
||||
<!-- <a-col :md="5" :sm="15">-->
|
||||
<!-- <a-form-item label="扩展3">-->
|
||||
<!-- <a-input placeholder="请输入扩展3" v-model="queryParam.ext3"/>-->
|
||||
<!-- </a-form-item>-->
|
||||
<!-- </a-col>-->
|
||||
<!-- <a-col :md="5" :sm="15">-->
|
||||
<!-- <a-form-item label="园区ID">-->
|
||||
<!-- <a-input placeholder="请输入园区ID" v-model="queryParam.parkId"/>-->
|
||||
<!-- </a-form-item>-->
|
||||
<!-- </a-col>-->
|
||||
<a-col :md="8" :sm="24">
|
||||
<span class="table-page-search-submitButtons">
|
||||
<a-button type="primary" @click="$refs.table.refresh(true)">查询</a-button>
|
||||
<a-button style="margin-left: 8px" @click="() => queryParam = {}">重置</a-button>
|
||||
</span>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
</div>
|
||||
<div class="table-operator">
|
||||
<a-button v-if="addEnable" type="primary" icon="plus" @click="$refs.modal.add()">新建</a-button>
|
||||
<a-dropdown v-if="removeEnable&&selectedRowKeys.length > 0">
|
||||
<a-button type="danger" icon="delete" @click="delByIds(selectedRowKeys)">删除</a-button>
|
||||
</a-dropdown>
|
||||
</div>
|
||||
<s-table
|
||||
size="default"
|
||||
ref="table"
|
||||
rowKey="id"
|
||||
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
|
||||
:columns="columns"
|
||||
:data="loadData"
|
||||
>
|
||||
<!-- '预约状态,1 取消 3 驳回 4 占用 5 待审核 7 审核通过,待开始 9 进行中 11已结束',-->
|
||||
<span slot="status" slot-scope="text, record">
|
||||
<a-tag v-if="record.status == 1" color="pink">
|
||||
取消
|
||||
</a-tag>
|
||||
<a-tag v-if="record.status == 3" color="red">
|
||||
驳回
|
||||
</a-tag>
|
||||
<a-tag v-if="record.status == 4" color="purple">
|
||||
占用
|
||||
</a-tag>
|
||||
<a-tag v-if="record.status == 5" color="blue">
|
||||
待审核
|
||||
</a-tag>
|
||||
<a-tag v-if="record.status == 7" color="green">
|
||||
审核通过
|
||||
</a-tag>
|
||||
<a-tag v-if="record.status == 9" color="cyan">
|
||||
进行中
|
||||
</a-tag>
|
||||
<a-tag v-if="record.status == 11" color="orange">
|
||||
已结束
|
||||
</a-tag>
|
||||
</span>
|
||||
<span slot="action" slot-scope="text, record">
|
||||
<a v-if="editEnabel" @click="handleEdit(record)">编辑</a>
|
||||
<a-divider type="vertical" />
|
||||
<a v-if="removeEnable" @click="delByIds([record.id])">删除</a>
|
||||
</span>
|
||||
</s-table>
|
||||
<meetingReservation-modal ref="modal" @ok="handleOk" />
|
||||
</a-card>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { STable } from '@/components'
|
||||
|
||||
import { delMeetingReservation, getMeetingReservationList } from '@/api/admin/meeting/meetingReservation'
|
||||
import MeetingReservationModal from './modules/MeetingReservationModal.vue'
|
||||
import { checkPermission } from '@/utils/permissions'
|
||||
import { getRoomServeList } from '@/api/admin/meeting/roomServe'
|
||||
|
||||
export default {
|
||||
name: 'TableList',
|
||||
components: {
|
||||
STable,
|
||||
MeetingReservationModal
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
labelCol: {
|
||||
xs: { span: 24 },
|
||||
sm: { span: 5 }
|
||||
},
|
||||
wrapperCol: {
|
||||
xs: { span: 24 },
|
||||
sm: { span: 16 }
|
||||
},
|
||||
form: this.$form.createForm(this),
|
||||
mdl: {},
|
||||
// 高级搜索 展开/关闭
|
||||
advanced: false,
|
||||
// 查询参数
|
||||
queryParam: {},
|
||||
// 表头
|
||||
columns: [
|
||||
{
|
||||
title: '会议名称',
|
||||
dataIndex: 'title'
|
||||
},
|
||||
{
|
||||
title: '会议室',
|
||||
dataIndex: 'name'
|
||||
},
|
||||
// {
|
||||
// title: '预约号',
|
||||
// dataIndex: 'sn'
|
||||
// },
|
||||
|
||||
{
|
||||
title: '预约-开始时间',
|
||||
dataIndex: 'start',
|
||||
sorter: true
|
||||
},
|
||||
{
|
||||
title: '预约-结束时间',
|
||||
dataIndex: 'end',
|
||||
sorter: true
|
||||
},
|
||||
{
|
||||
title: '预约用户单位名称',
|
||||
dataIndex: 'userOrg'
|
||||
},
|
||||
{
|
||||
title: '预约人姓名',
|
||||
dataIndex: 'bookingUserName'
|
||||
},
|
||||
{
|
||||
title: '预约人联系电话',
|
||||
dataIndex: 'bookingUserPhone'
|
||||
},
|
||||
{
|
||||
title: '会议服务',
|
||||
dataIndex: 'device'
|
||||
},
|
||||
{
|
||||
title: '预约状态',
|
||||
dataIndex: 'status',
|
||||
scopedSlots: { customRender: 'status' }
|
||||
},
|
||||
{
|
||||
title: '操作',
|
||||
width: '200px',
|
||||
dataIndex: 'action',
|
||||
scopedSlots: { customRender: 'action' }
|
||||
}
|
||||
// {
|
||||
// title: '预约时间格式:0 任意时间,1上午,2下午,3晚上',
|
||||
// dataIndex: 'timeFormat'
|
||||
// },
|
||||
|
||||
// {
|
||||
// title: '参与人数',
|
||||
// dataIndex: 'personNum'
|
||||
// },
|
||||
// {
|
||||
// title: '参会领导',
|
||||
// dataIndex: 'leader'
|
||||
// },
|
||||
|
||||
// {
|
||||
// title: '预约用户单位id',
|
||||
// dataIndex: 'userOrgId'
|
||||
// },
|
||||
|
||||
// {
|
||||
// title: '预约状态,1 取消 3 驳回 4 占用 5 待审核 7 审核通过,待开始 9 进行中 11已结束',
|
||||
// dataIndex: 'status'
|
||||
// },
|
||||
// {
|
||||
// title: '操作记录,json 格式',
|
||||
// dataIndex: 'operate'
|
||||
// },
|
||||
// {
|
||||
// title: '备注',
|
||||
// dataIndex: 'remark'
|
||||
// },
|
||||
// {
|
||||
// title: '扩展1',
|
||||
// dataIndex: 'ext1'
|
||||
// },
|
||||
// {
|
||||
// title: '扩展2',
|
||||
// dataIndex: 'ext2'
|
||||
// },
|
||||
// {
|
||||
// title: '扩展3',
|
||||
// dataIndex: 'ext3'
|
||||
// },
|
||||
// {
|
||||
// title: '园区ID',
|
||||
// dataIndex: 'parkId'
|
||||
// },
|
||||
|
||||
],
|
||||
// 加载数据方法 必须为 Promise 对象
|
||||
loadData: parameter => {
|
||||
return getMeetingReservationList(Object.assign(parameter, this.queryParam))
|
||||
},
|
||||
serveLoadData: (parameter) => {
|
||||
let param = {
|
||||
parkId: this.parkId
|
||||
}
|
||||
return getRoomServeList(Object.assign(parameter, param))
|
||||
},
|
||||
selectedRowKeys: [],
|
||||
selectedRows: [],
|
||||
addEnable: checkPermission('meeting:meetingReservation:add'),
|
||||
editEnabel: checkPermission('meeting:meetingReservation:edit'),
|
||||
removeEnable: checkPermission('meeting:meetingReservation:remove')
|
||||
}
|
||||
},
|
||||
filters: {},
|
||||
created () {
|
||||
},
|
||||
methods: {
|
||||
onSelectChange (selectedRowKeys, selectedRows) {
|
||||
this.selectedRowKeys = selectedRowKeys
|
||||
this.selectedRows = selectedRows
|
||||
},
|
||||
handleAdd () {
|
||||
this.$refs.modal.add()
|
||||
},
|
||||
handleEdit (record) {
|
||||
this.$refs.modal.edit(record)
|
||||
},
|
||||
handleOk () {
|
||||
this.$refs.table.refresh(true)
|
||||
console.log('handleSaveOk')
|
||||
},
|
||||
delByIds (ids) {
|
||||
delMeetingReservation({ ids: ids.join(',') }).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.$message.success('删除成功')
|
||||
this.handleOk()
|
||||
} else {
|
||||
this.$message.error(res.msg)
|
||||
}
|
||||
this.selectedRowKeys = []
|
||||
})
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
/*
|
||||
'selectedRows': function (selectedRows) {
|
||||
this.needTotalList = this.needTotalList.map(item => {
|
||||
return {
|
||||
...item,
|
||||
total: selectedRows.reduce( (sum, val) => {
|
||||
return sum + val[item.dataIndex]
|
||||
}, 0)
|
||||
}
|
||||
})
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
</script>
|
251
src/views/admin/meeting/modules/MeetingReservationModal.vue
Normal file
251
src/views/admin/meeting/modules/MeetingReservationModal.vue
Normal file
@ -0,0 +1,251 @@
|
||||
<template>
|
||||
<a-modal
|
||||
title="操作"
|
||||
style="top: 20px;"
|
||||
:width="800"
|
||||
v-model="visible"
|
||||
:confirmLoading="confirmLoading"
|
||||
@ok="handleSubmit"
|
||||
>
|
||||
<a-form :form="form">
|
||||
<a-form-item style="display:none">
|
||||
<a-input v-decorator="['id']" />
|
||||
</a-form-item>
|
||||
<a-form-item style="display:none">
|
||||
<a-input v-decorator="['version']" />
|
||||
</a-form-item>
|
||||
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="会议名称">
|
||||
<a-input placeholder="会议名称" v-decorator="['title']" />
|
||||
</a-form-item>
|
||||
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="会议室名称">
|
||||
<a-select v-decorator="['roomId']"
|
||||
@change="selectRoomList"
|
||||
>
|
||||
<a-select-option v-for="item in roomList" :key="item.id">{{ item.name }}</a-select-option>
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="预约时间">
|
||||
<a-date-picker
|
||||
v-model="startValue"
|
||||
v-decorator="['start']"
|
||||
:disabled-date="disabledStartDate"
|
||||
show-time
|
||||
format="YYYY-MM-DD HH:mm:ss"
|
||||
placeholder="开始时间"
|
||||
@openChange="handleStartOpenChange"
|
||||
/>
|
||||
<a-date-picker
|
||||
v-model="startValue"
|
||||
v-decorator="['end']"
|
||||
:disabled-date="disabledEndDate"
|
||||
show-time
|
||||
format="YYYY-MM-DD HH:mm:ss"
|
||||
placeholder="结束时间"
|
||||
:open="endOpen"
|
||||
@openChange="handleEndOpenChange"
|
||||
/>
|
||||
</a-form-item>
|
||||
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="预约人姓名">
|
||||
<a-input placeholder="预约人姓名" v-decorator="['bookingUserName']" />
|
||||
</a-form-item>
|
||||
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="预约人联系电话">
|
||||
<a-input placeholder="预约人联系电话" v-decorator="['bookingUserPhone']" />
|
||||
</a-form-item>
|
||||
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="预约用户单位名称">
|
||||
<a-input placeholder="预约用户单位名称" v-decorator="['userOrg']" />
|
||||
</a-form-item>
|
||||
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="会议服务">
|
||||
<a-select v-decorator="['service']"
|
||||
>
|
||||
<a-select-option v-for="item in serviceList" :key="item.value">{{ item.text }}</a-select-option>
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
<!-- <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="预约号">-->
|
||||
<!-- <a-input placeholder="预约号" v-decorator="['sn', {rules: [{required: true, message: '请输入预约号'}]}]"/>-->
|
||||
<!-- </a-form-item>-->
|
||||
<!-- <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="会议室id">-->
|
||||
<!-- <a-input placeholder="会议室id" v-decorator="['roomId', {rules: [{required: true, message: '请输入会议室id'}]}]"/>-->
|
||||
<!-- </a-form-item>-->
|
||||
<!-- <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="预约时间格式:0 任意时间,1上午,2下午,3晚上">-->
|
||||
<!-- <a-input placeholder="预约时间格式:0 任意时间,1上午,2下午,3晚上" v-decorator="['timeFormat', {rules: [{required: true, message: '请输入预约时间格式:0 任意时间,1上午,2下午,3晚上'}]}]"/>-->
|
||||
<!-- </a-form-item>-->
|
||||
<!-- <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="参与人数">-->
|
||||
<!-- <a-input placeholder="参与人数" v-decorator="['personNum']"/>-->
|
||||
<!-- </a-form-item>-->
|
||||
<!-- <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="参会领导">-->
|
||||
<!-- <a-input placeholder="参会领导" v-decorator="['leader']"/>-->
|
||||
<!-- </a-form-item>-->
|
||||
|
||||
<!-- <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="操作记录,json 格式">-->
|
||||
<!-- <a-input placeholder="操作记录,json 格式" v-decorator="['operate']"/>-->
|
||||
<!-- </a-form-item>-->
|
||||
<!-- <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="备注">-->
|
||||
<!-- <a-input placeholder="备注" v-decorator="['remark']"/>-->
|
||||
<!-- </a-form-item>-->
|
||||
<!-- <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="扩展1">-->
|
||||
<!-- <a-input placeholder="扩展1" v-decorator="['ext1']"/>-->
|
||||
<!-- </a-form-item>-->
|
||||
<!-- <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="扩展2">-->
|
||||
<!-- <a-input placeholder="扩展2" v-decorator="['ext2']"/>-->
|
||||
<!-- </a-form-item>-->
|
||||
<!-- <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="扩展3">-->
|
||||
<!-- <a-input placeholder="扩展3" v-decorator="['ext3']"/>-->
|
||||
<!-- </a-form-item>-->
|
||||
<!-- <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="创建者">-->
|
||||
<!-- <a-input placeholder="创建者" v-decorator="['createBy', {rules: [{required: true, message: '请输入创建者'}]}]"/>-->
|
||||
<!-- </a-form-item>-->
|
||||
<!-- <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="更新者">-->
|
||||
<!-- <a-input placeholder="更新者" v-decorator="['updateBy']"/>-->
|
||||
<!-- </a-form-item>-->
|
||||
<!-- <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="租户ID">-->
|
||||
<!-- <a-input placeholder="租户ID" v-decorator="['tenantId']"/>-->
|
||||
<!-- </a-form-item>-->
|
||||
<!-- <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="园区ID">-->
|
||||
<!-- <a-input placeholder="园区ID" v-decorator="['parkId']"/>-->
|
||||
<!-- </a-form-item>-->
|
||||
</a-form>
|
||||
</a-modal>
|
||||
</template>
|
||||
<script>
|
||||
import { saveMeetingReservation, getAllRoom } from '@/api/admin/meeting/meetingReservation'
|
||||
import pick from 'lodash.pick'
|
||||
import { getMeetingDict } from '@/api/admin/meeting/roomContent'
|
||||
|
||||
export default {
|
||||
name: 'MeetingReservationModal',
|
||||
props: {},
|
||||
components: {},
|
||||
data () {
|
||||
return {
|
||||
visible: false,
|
||||
labelCol: {
|
||||
xs: { span: 24 },
|
||||
sm: { span: 5 }
|
||||
},
|
||||
wrapperCol: {
|
||||
xs: { span: 24 },
|
||||
sm: { span: 16 }
|
||||
},
|
||||
confirmLoading: false,
|
||||
mdl: {},
|
||||
form: this.$form.createForm(this),
|
||||
startValue: null,
|
||||
endValue: null,
|
||||
endOpen: false,
|
||||
roomList: [],
|
||||
serviceList: []
|
||||
}
|
||||
},
|
||||
beforeCreate () {
|
||||
},
|
||||
created () {
|
||||
this.getAllRoomList()
|
||||
},
|
||||
mounted () {
|
||||
this.getDict()
|
||||
},
|
||||
methods: {
|
||||
getDict () {
|
||||
getMeetingDict().then((res) => {
|
||||
const dataObj = res.data
|
||||
// 设备
|
||||
const _serviceList = []
|
||||
for (const key in dataObj.services) {
|
||||
const eachObj = dataObj.services[key]
|
||||
const keys = Object.keys(eachObj)
|
||||
_serviceList.push({
|
||||
text: keys[0],
|
||||
value: eachObj[keys[0]]
|
||||
})
|
||||
}
|
||||
this.serviceList = _serviceList
|
||||
})
|
||||
console.log(this.serviceList)
|
||||
},
|
||||
selectRoomList () {
|
||||
console.log()
|
||||
},
|
||||
getAllRoomList () {
|
||||
getAllRoom({ timeFormat: 0, min: 1, max: 1000 }).then(res => {
|
||||
this.roomList = res.data
|
||||
})
|
||||
},
|
||||
|
||||
disabledStartDate (startValue) {
|
||||
const endValue = this.endValue
|
||||
if (!startValue || !endValue) {
|
||||
return false
|
||||
}
|
||||
return startValue.valueOf() > endValue.valueOf()
|
||||
},
|
||||
disabledEndDate (endValue) {
|
||||
const startValue = this.startValue
|
||||
if (!endValue || !startValue) {
|
||||
return false
|
||||
}
|
||||
return startValue.valueOf() >= endValue.valueOf()
|
||||
},
|
||||
handleStartOpenChange (open) {
|
||||
if (!open) {
|
||||
this.endOpen = true
|
||||
}
|
||||
},
|
||||
handleEndOpenChange (open) {
|
||||
this.endOpen = open
|
||||
},
|
||||
add () {
|
||||
this.form.resetFields()
|
||||
this.edit({ id: 0 })
|
||||
},
|
||||
edit (record) {
|
||||
this.mdl = Object.assign(record)
|
||||
this.visible = true
|
||||
this.$nextTick(() => {
|
||||
this.form.setFieldsValue(pick(this.mdl, 'id', 'sn', 'roomId', 'start', 'end', 'timeFormat', 'title', 'personNum', 'leader', 'bookingUserName', 'bookingUserPhone', 'userOrgId', 'userOrg', 'status', 'operate', 'remark', 'ext1', 'ext2', 'ext3', 'deleteFlag', 'createBy', 'createTime', 'updateBy', 'updateTime', 'tenantId', 'parkId'))
|
||||
})
|
||||
},
|
||||
handleSubmit (e) {
|
||||
e.preventDefault()
|
||||
this.form.validateFields((err, values) => {
|
||||
if (!err) {
|
||||
console.log('Received values of form: ', values)
|
||||
this.confirmLoading = true
|
||||
saveMeetingReservation(values).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.$message.success('保存成功')
|
||||
this.$emit('ok')
|
||||
this.visible = false
|
||||
} else {
|
||||
this.$message.error(res.msg)
|
||||
}
|
||||
}).catch(() => {
|
||||
this.$message.error('系统错误,请稍后再试')
|
||||
}).finally(() => {
|
||||
this.confirmLoading = false
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
startValue (val) {
|
||||
console.log('startValue', val)
|
||||
},
|
||||
endValue (val) {
|
||||
console.log('endValue', val)
|
||||
}
|
||||
/*
|
||||
'selectedRows': function (selectedRows) {
|
||||
this.needTotalList = this.needTotalList.map(item => {
|
||||
return {
|
||||
...item,
|
||||
total: selectedRows.reduce( (sum, val) => {
|
||||
return sum + val[item.dataIndex]
|
||||
}, 0)
|
||||
}
|
||||
})
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
</script>
|
Loading…
x
Reference in New Issue
Block a user