修改了房间主体的PC页面修改

This commit is contained in:
chendaze 2024-03-07 09:41:32 +08:00
parent 44e7df985d
commit cb3747ad0f
7 changed files with 706 additions and 202 deletions

View File

@ -1,7 +1,7 @@
import { axios } from '@/utils/request'
const api = {
reservationPerson: '/meeting/visitorPerson'
reservationPerson: '/meeting/reservationPerson'
}
export function getReservationPersonList (parameter) {

View File

@ -12,6 +12,15 @@ export function getRoomContentList (parameter) {
})
}
export function get (id) {
return axios({
url: api.roomContent + '/get/'+id,
method: 'get',
params: {}
})
}
export function selectSearchInfoByType (parameter) {
return axios({
url: api.roomContent + '/searchInfo/1',
@ -47,6 +56,80 @@ export function saveRoomContent (parameter) {
})
}
export function addRoomServe (parameter) {
return axios({
url: api.roomContent + '/addRoomServe',
method: 'post',
data: parameter,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
export function addRoomItem (parameter) {
return axios({
url: api.roomContent + '/addRoomItem',
method: 'post',
data: parameter,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
//根据会议室id 获取服务列表
export function selectRoomServeByRoom (parameter) {
return axios({
url: api.roomContent + '/selectRoomServeByRoom',
method: 'post',
data: parameter,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
export function getFloorList (parameter) {
return axios({
url: api.roomContent + '/getFloorList',
method: 'get',
params: parameter
})
}
export function selectRoomById (parameter) {
return axios({
url: api.roomContent + '/selectRoomById',
method: 'get',
params: parameter
})
}
export function getRoomListByFloorId (parameter) {
return axios({
url: api.roomContent + '/getRoomListByFloorId',
method: 'get',
params: parameter
})
}
export function selectRoomItemByRoom (parameter) {
return axios({
url: api.roomContent + '/selectRoomItemByRoom',
method: 'post',
data: parameter,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
export function delRoomContent (parameter) {
return axios({
url: api.roomContent + '/remove',

View File

@ -4,8 +4,13 @@
<a-form layout="inline">
<a-row :gutter="48">
<a-col :md="5" :sm="15">
<a-form-item label="用户id">
<a-input placeholder="请输入用户id" v-model="queryParam.userId"/>
<a-form-item label="邀请人id">
<a-input placeholder="请输入邀请人id" v-model="queryParam.userId"/>
</a-form-item>
</a-col>
<a-col :md="5" :sm="15">
<a-form-item label="参与人id">
<a-input placeholder="请输入参与人id" v-model="queryParam.participantId"/>
</a-form-item>
</a-col>
<a-col :md="5" :sm="15">
@ -14,13 +19,13 @@
</a-form-item>
</a-col>
<a-col :md="5" :sm="15">
<a-form-item label="姓名">
<a-input placeholder="请输入姓名" v-model="queryParam.name"/>
<a-form-item label="参与人名称">
<a-input placeholder="请输入参与人名称" v-model="queryParam.participantName"/>
</a-form-item>
</a-col>
<a-col :md="5" :sm="15">
<a-form-item label="手机号">
<a-input placeholder="请输入手机号" v-model="queryParam.phone"/>
<a-form-item label="参与人姓名">
<a-input placeholder="请输入参与人姓名" v-model="queryParam.participantPhone"/>
</a-form-item>
</a-col>
<a-col :md="8" :sm="24">
@ -59,7 +64,7 @@
<script>
import {STable} from '@/components'
import {delReservationPerson,getReservationPersonList} from '@/api/admin/meeting/reservationPerson'
import {delReservationPerson} from '@/api/admin/meeting/reservationPerson'
import ReservationPersonModal from './modules/ReservationPersonModal.vue'
import {checkPermission} from '@/utils/permissions'
@ -88,25 +93,33 @@
//
columns: [
{
title: '用户id',
title: '邀请人id',
dataIndex: 'userId'
},
{
title: '参与人id',
dataIndex: 'participantId'
},
{
title: '状态 0接受1拒绝',
dataIndex: 'status'
},
{
title: '创建时间',
dataIndex: 'joinTime',
sorter: true
},
{
title: '预约记录id',
dataIndex: 'reservationId'
},
{
title: '姓名',
dataIndex: 'name'
title: '参与人名称',
dataIndex: 'participantName'
},
{
title: '手机号',
dataIndex: 'phone'
},
{
title: '加入时间',
dataIndex: 'joinTime',
sorter: true
title: '参与人姓名',
dataIndex: 'participantPhone'
},
{
title: '操作',

View File

@ -1,144 +1,207 @@
<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.meetingName" />
<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.meetingName' />
</a-form-item>
</a-col>
<a-col :md="5" :sm="15">
<a-form-item label="类型">
<a-select v-model="queryParam.type" placeholder="请选择类型">
<a-select-option v-for="(item,index) in typeList" :key="item.id" :value="item.typeName">
{{ item.typeName }}
<a-col :md='5' :sm='15'>
<a-form-item label='类型'>
<a-select v-model='queryParam.typeName' placeholder='请选择类型'>
<a-select-option value='1'>
会议室
</a-select-option>
</a-select>
</a-form-item>
</a-col>
<a-col :md="5" :sm="15">
<a-form-item label="排列形状">
<a-select v-model="queryParam.shape" placeholder="请选择排列形状">
<a-select-option v-for="(item,index) in shapeList" :key="item.id" :value="item.shape">
{{ item.shape }}
<a-select-option value='2'>
路演厅
</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='6'>
直播间
</a-select-option>
<a-select-option value='7'>
茶室
</a-select-option>
</a-select>
</a-form-item>
</a-col>
<a-col :md="5" :sm="15">
<a-form-item label="容纳人数">
<a-select v-model="queryParam.status" placeholder="请选择类型">
<a-select-option v-for="(item,index) in capacityList" :key="item.id" :value="item.capacityNum">
<a-col :md='5' :sm='15'>
<a-form-item label='排列形状'>
<a-select v-model='queryParam.shape' placeholder='请选择排列形状'>
<a-select-option value="围桌式">
围桌式
</a-select-option>
<a-select-option value="课桌式">
课桌式
</a-select-option>
<a-select-option value="长方形">
长方形
</a-select-option>
<a-select-option value="U形">
U形
</a-select-option>
<a-select-option value="鱼骨形">
鱼骨形
</a-select-option>
</a-select>
</a-form-item>
</a-col>
<a-col :md='5' :sm='15'>
<a-form-item label='容纳人数'>
<a-select v-model='queryParam.capacityNum' placeholder='请选择类型'>
<a-select-option v-for='(item,index) in capacityList' :key='item.id' :value='item.capacityNum'>
{{ item.capacityNum }}
</a-select-option>
</a-select>
</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-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>
<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"
size='default'
ref='table'
rowKey='id'
:rowSelection='{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }'
:columns='columns'
:data='loadData'
>
<span slot="type" slot-scope="text">
<span slot='type' slot-scope='text'>
{{ text | typeFilter }}
</span>
<span slot="item" slot-scope="text,record">
<a @click="handleItemTable(record)">1</a>
<span slot='item' slot-scope='text,record'>
<a @click='handleItemTable(record)'>{{ record.itemCount }}</a>
</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 slot='serve' slot-scope='text,record'>
<a @click='handleServeTable(record)'>{{ record.serveCount }}</a>
</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>
<roomContent-modal ref="modal" @ok="handleOk" />
<roomContent-modal ref='modal' @ok='handleOk' />
<a-modal v-model="visible" title="会议设备" width="1000px" @ok='itemHandleOk()'>
<div class="table-page-search-wrapper">
<a-form layout="inline">
<a-row :gutter="48">
<a-col :md="8" :sm="15">
<a-form-item label="关键词">
<a-input placeholder="请输入关键词" v-model="itemQueryParam.itemName" />
</a-form-item>
</a-col>
<a-col :md="8" :sm="30">
<a-form-item label="服务类型">
<a-select v-model="itemQueryParam.itemType" placeholder="请选择服务类型">
<a-select-option value="1">
免费服务
</a-select-option>
<a-select-option value="2">
增值服务
</a-select-option>
</a-select>
</a-form-item>
</a-col>
<a-col :md="8" :sm="24">
<span class="table-page-search-submitButtons">
<a-modal v-model='visible' title='会议设备' width='500px' @ok='itemHandleOk()'>
<div class='table-page-search-wrapper'>
<a-form layout='inline'>
<a-row :gutter='48'>
<!-- <a-col :md='8' :sm='15'>-->
<!-- <a-form-item label='关键词'>-->
<!-- <a-input placeholder='请输入关键词' v-model='itemQueryParam.itemName' />-->
<!-- </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="() => (itemQueryParam = {})">重置</a-button>
<a-button type='primary' @click='$refs.table.refresh(true)'>查询</a-button>
<a-button style='margin-left: 8px' @click='() => (itemQueryParam = {})'>重置</a-button>
</span>
</a-col>
</a-row>
</a-form>
</div>
<div class="table-operator">
<div class='table-operator'>
</div>
<s-table
size="default"
ref="table"
rowKey="id"
:rowSelection="{ selectedRowKeys: selectedItemRowKeys, onChange: onItemSelectChange }"
:columns="itemColumns"
:data="itemLoadData"
size='default'
ref='table'
rowKey='id'
:rowSelection='{ selectedRowKeys: selectedItemRowKeys, onChange: onItemSelectChange }'
:columns='itemColumns'
:data='itemLoadData'
>
<span slot="serveType" slot-scope="text">
</s-table>
</a-modal>
<a-modal v-model='visible1' title='会议服务' width='1000px' @ok='serveHandleOk()'>
<div class='table-page-search-wrapper'>
<a-form layout='inline'>
<a-row :gutter='48'>
<!-- <a-col :md='8' :sm='15'>-->
<!-- <a-form-item label='关键词'>-->
<!-- <a-input placeholder='请输入关键词' v-model='serveQueryParam.serveName' />-->
<!-- </a-form-item>-->
<!-- </a-col>-->
<a-col :md='8' :sm='30'>
<a-form-item label='服务类型'>
<a-select v-model='serveQueryParam.itemType' placeholder='请选择服务类型'>
<a-select-option value='1'>
免费服务
</a-select-option>
<a-select-option value='2'>
增值服务
</a-select-option>
</a-select>
</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='() => (serveQueryParam = {})'>重置</a-button>
</span>
</a-col>
</a-row>
</a-form>
</div>
<div class='table-operator'>
</div>
<s-table
size='default'
ref='table'
rowKey='id'
:rowSelection='{ selectedRowKeys: selectedServeRowKeys, onChange: onServeSelectChange }'
:columns='serveColumns'
:data='serveLoadData'
>
<span slot='serveType' slot-scope='text'>
{{ text | serveTypeFilter }}
</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>
</a-modal>
</a-card>
</template>
<script>
import { STable } from '@/components'
import { getRoomContentList,delRoomContent,selectSearchInfoByType,selectSearchInfoByShape,selectSearchInfoByCapacity } from '@/api/admin/meeting/roomContent'
import { getRoomServeList } from '@/api/admin/meeting/roomServe'
import {
getRoomContentList, delRoomContent, selectSearchInfoByType,
selectSearchInfoByShape, selectSearchInfoByCapacity, addRoomServe,
selectRoomServeByRoom, selectRoomItemByRoom
} from '@/api/admin/meeting/roomContent'
import { getRoomServeList } from '@/api/admin/meeting/roomServe'
import { getRoomItemList } from '@/api/admin/meeting/roomItem'
import RoomContentModal from './modules/RoomContentModal.vue'
import { checkPermission } from '@/utils/permissions'
import { getDictArray } from '@/utils/dict'
import { addRoomItem } from '../../../api/admin/meeting/roomContent'
const typeMap = {}
const serveTypeMap = {}
@ -148,30 +211,38 @@ export default {
STable,
RoomContentModal
},
data () {
data() {
return {
labelCol: {
xs: { span: 24 },
sm: { span: 5 },
sm: { span: 5 }
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 16 },
sm: { span: 16 }
},
form: this.$form.createForm(this),
mdl: {},
visible: false,
visible1: false,
typeMap,
// /
advanced: false,
//
queryParam: {},
itemQueryParam:{},
itemQueryParam: {},
serveQueryParam: {},
capacityList: [],
shapeList: [],
typeList:[],
typeList: [],
serveTypeMap,
itemColumns: [
{
title: '物品名称',
dataIndex: 'name'
}
],
serveColumns: [
{
title: '服务名称',
dataIndex: 'serveName'
@ -184,7 +255,7 @@ export default {
{
title: '金额',
dataIndex: 'money'
},
}
],
//
@ -208,12 +279,13 @@ export default {
},
{
title: '会议设备',
dataIndex: 'item',
dataIndex: 'itemCount',
scopedSlots: { customRender: 'item' }
},
{
title: '关联服务',
dataIndex: 'money'
dataIndex: 'serveCount',
scopedSlots: { customRender: 'serve' }
},
{
title: '金额',
@ -221,41 +293,48 @@ export default {
},
{
title: '负责人',
dataIndex: 'createBy'
dataIndex: 'headName'
},
{
title: '操作',
width: '200px',
dataIndex: 'action',
scopedSlots: { customRender: 'action' }
},
}
],
// Promise
loadData: (parameter) => {
return getRoomContentList(Object.assign(parameter, this.queryParam))
},
itemLoadData:(parameter) => {
return getRoomServeList(Object.assign(parameter, this.itemQueryParam))
itemLoadData: (parameter) => {
return getRoomItemList(Object.assign(parameter, this.itemQueryParam))
},
serveLoadData: (parameter) => {
return getRoomServeList(Object.assign(parameter, this.serveQueryParam))
},
selectedRowKeys: [],
selectedRows: [],
selectedItemRowKeys: [],
selectedItemRows: [],
selectedServeRowKeys: [],
selectedServeRows: [],
meetingId: '',
addEnable: checkPermission('meeting:roomContent:add'),
editEnabel: checkPermission('meeting:roomContent:edit'),
removeEnable: checkPermission('meeting:roomContent:remove'),
removeEnable: checkPermission('meeting:roomContent:remove')
}
},
filters: {
typeFilter (Type) {
typeFilter(Type) {
return typeMap[Type].text
},
serveTypeFilter (serveType) {
serveTypeFilter(serveType) {
return serveTypeMap[serveType].text
}
},
async created () {
async created() {
const TypeData = await getDictArray('meeting_type')
TypeData.map(d => {
typeMap[d.dictValue] = { text: d.dictLabel }
@ -271,29 +350,88 @@ export default {
this.selectSearchInfoByCapacity()
},
methods: {
itemHandleOk(){
//
itemHandleOk() {
console.log(this.meetingId)
let params = {
itemIds: this.selectedItemRowKeys,
roomContentId: this.meetingId
}
addRoomItem(params).then((res) => {
if (res.code == 0) {
this.$message.success('关联成功')
this.visible = false
this.handleOk()
this.selectedItemRowKeys = []
this.selectedItemRows = []
}
})
},
onItemSelectChange(selectedRowKeys, selectedRows){
serveHandleOk() {
//
let params = {
serveIds: this.selectedServeRowKeys,
romeContentId: this.meetingId
}
addRoomServe(params).then((res) => {
if (res.code == 0) {
this.$message.success('关联成功')
this.visible1 = false
this.selectedServeRowKeys = []
this.selectedServeRows = []
this.handleOk()
}
})
},
onItemSelectChange(selectedRowKeys, selectedRows) {
this.selectedItemRowKeys = selectedRowKeys
this.selectedItemRows = selectedRows
console.log(this.selectedItemRowKeys)
},
handleItemTable () {
onServeSelectChange(selectedRowKeys, selectedRows) {
this.selectedServeRowKeys = selectedRowKeys
this.selectedServeRows = selectedRows
},
handleItemTable(record) {
let params = {
roomContentId: record.id
}
selectRoomItemByRoom(params).then((res) => {
this.selectedItemRowKeys = res.data.map(d => d.itemId)
this.selectedItemRows = res.data
})
this.visible = true
this.meetingId = record.id
},
handleServeTable(record) {
let params = {
romeContentId: record.id
}
selectRoomServeByRoom(params).then((res) => {
this.selectedServeRowKeys = res.data.map(d => d.serveId)
this.selectedServeRows = res.data
})
this.visible1 = true
this.meetingId = record.id
},
//
selectSearchInfoByType () {
selectSearchInfoByType() {
selectSearchInfoByType().then((res) => {
this.typeList = res.roomContents
})
},
selectSearchInfoByShape () {
selectSearchInfoByShape() {
selectSearchInfoByShape().then((res) => {
this.shapeList = res.roomContents
})
},
selectSearchInfoByCapacity () {
selectSearchInfoByCapacity() {
selectSearchInfoByCapacity().then((res) => {
this.capacityList = res.roomContents
})
@ -310,7 +448,6 @@ export default {
},
handleOk() {
this.$refs.table.refresh(true)
console.log('handleSaveOk')
},
delByIds(ids) {
delRoomContent({ ids: ids.join(',') }).then((res) => {
@ -322,7 +459,7 @@ export default {
}
this.selectedRowKeys = []
})
},
}
},
watch: {
/*
@ -337,6 +474,6 @@ export default {
})
}
*/
},
}
}
</script>

View File

@ -14,17 +14,20 @@
<a-form-item style="display:none">
<a-input v-decorator="['version']"/>
</a-form-item>
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="用户id">
<a-input placeholder="用户id" v-decorator="['userId']"/>
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="邀请人id">
<a-input placeholder="邀请人id" v-decorator="['userId']"/>
</a-form-item>
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="参与人id">
<a-input placeholder="参与人id" v-decorator="['participantId']"/>
</a-form-item>
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="预约记录id">
<a-input placeholder="预约记录id" v-decorator="['reservationId']"/>
</a-form-item>
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="姓名">
<a-input placeholder="姓名" v-decorator="['name']"/>
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="参与人名称">
<a-input placeholder="参与人名称" v-decorator="['participantName']"/>
</a-form-item>
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="手机号">
<a-input placeholder="手机号" v-decorator="['phone']"/>
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="参与人姓名">
<a-input placeholder="参与人姓名" v-decorator="['participantPhone']"/>
</a-form-item>
</a-form>
</a-modal>
@ -68,7 +71,7 @@
this.mdl = Object.assign(record)
this.visible = true
this.$nextTick(() => {
this.form.setFieldsValue(pick(this.mdl, 'id', 'userId', 'reservationId', 'name', 'phone', 'joinTime'))
this.form.setFieldsValue(pick(this.mdl, 'id', 'userId', 'participantId', 'status', 'joinTime', 'reservationId', 'participantName', 'participantPhone'))
})
},
handleSubmit (e) {

View File

@ -2,71 +2,261 @@
<a-modal
title="操作"
style="top: 20px"
:width="800"
:width="1000"
v-model="visible"
:confirmLoading="confirmLoading"
@ok="handleSubmit"
>
<a-form :form="form">
<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="['meetingName']" />
</a-form-item>
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="名称">
<a-input placeholder="类型" v-decorator="['meetingName']" />
</a-form-item>
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="容纳人数">
<a-input placeholder="容纳人数" v-decorator="['capacityNum']" />
</a-form-item>
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="扩充人数">
<a-input placeholder="扩充人数" v-decorator="['expandNum']" />
</a-form-item>
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="室内图片url">
<!-- <a-input placeholder="室内图片url" v-decorator="['indoorPicUrl']" />-->
<a-upload
v-decorator="['indoorPicUrl']"
list-type="picture-card"
class="avatar-uploader"
:show-upload-list="false"
:action="uploadUrl"
:headers="headers"
:before-upload="beforeUpload"
@change="handleChange"
>
<img v-if="imageUrl" :src="imageUrl" style="width: 102px; height: 102px"/>
<div v-else>
<a-icon :type="loading ? 'loading' : 'plus'" />
<div class="ant-upload-text"> 上传 </div>
</div>
</a-upload>
</a-form-item>
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="价格单位1小时、2天、3半天">
<a-input placeholder="价格单位1小时、2天、3半天" v-decorator="['priceUnit']" />
</a-form-item>
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="金额">
<a-input placeholder="金额" v-decorator="['money']" />
</a-form-item>
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="是否展示">
<a-input placeholder="是否展示" v-decorator="['isShow']" />
</a-form-item>
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="房间id">
<a-input placeholder="房间id" v-decorator="['roomId']" />
</a-form-item>
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="形状">
<a-input placeholder="形状" v-decorator="['shape']" />
</a-form-item>
<!-- 一行 -->
<a-row>
<a-col :span="10">
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="所属建筑">
<a-input placeholder="所属建筑" v-decorator="['build']" disabled='disabled' defaultValue='创智大厦' />
</a-form-item>
</a-col>
<a-col :span="10">
<a-form-item label="会议名称" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="会议名称" v-decorator="['meetingName',{rules: [{ required: true, message: '输入会议名称' }]}]" />
</a-form-item>
</a-col>
</a-row>
<a-row>
<a-col :span="10">
<a-form-item label="会议类型" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-select v-decorator="['type',{rules: [{ required: true, message: '输入会议类型' }]}]" placeholder="会议类型">
<a-select-option value="1">
会议室
</a-select-option>
<a-select-option value="2">
路演厅
</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="6">
直播间
</a-select-option>
<a-select-option value="7">
茶室
</a-select-option>
</a-select>
</a-form-item>
</a-col>
<a-col :span="10">
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="所属楼层">
<a-select v-decorator="['buildId',{rules: [{ required: true, message: '请选择所属楼层' }]}]" placeholder="所属楼层" @change='getRoomList' >
<a-select-option v-for="item in floorList" :key="item.id" :value="item.id" >
{{ item.floorName }}
</a-select-option>
</a-select>
</a-form-item>
</a-col>
</a-row>
<a-row>
<a-col :span="10">
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="所属房间">
<a-select v-decorator="['roomId',{rules: [{ required: true, message: '选择所属房间' }]}]" placeholder="所属房间" @change='getArea' >
<a-select-option v-for="item in roomList" :key="item.id" :value="item.id" >
{{ item.name }}
</a-select-option>
</a-select>
</a-form-item>
</a-col>
<a-col :span="10">
<a-form-item label="会议面积" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="会议面积" v-decorator="['area',{rules: [{ required: true, message: '请输入会议面积' }]}]" disabled='disabled' />
</a-form-item>
</a-col>
</a-row>
<a-row>
<a-col :span="10">
<a-form-item label="容纳人数" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="容纳人数" v-decorator="['capacityNum',{rules: [{ required: true, message: '输入容纳人数' }]}]" />
</a-form-item>
</a-col>
<a-col :span="10">
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="会议地址 ">
<a-input placeholder="会议地址" v-decorator="['address',{rules: [{ required: true, message: '输入会议地址' }]}]" />
</a-form-item>
</a-col>
</a-row>
<a-row>
<a-col :span="10">
<a-form-item label="排列形状" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-select v-decorator="['shape',{rules: [{ required: true, message: '输入排列形状' }]}]" placeholder="排列形状">
<a-select-option value="围桌式">
围桌式
</a-select-option>
<a-select-option value="课桌式">
课桌式
</a-select-option>
<a-select-option value="长方形">
长方形
</a-select-option>
<a-select-option value="U形">
U形
</a-select-option>
<a-select-option value="鱼骨形">
鱼骨形
</a-select-option>
</a-select>
</a-form-item>
</a-col>
<a-col :span="10">
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="负责人">
<a-input placeholder="负责人" v-decorator="['headName',{rules: [{ required: true, message: '输入负责人' }]}]" />
</a-form-item>
</a-col>
</a-row>
<a-row>
<a-col :span="10">
<a-form-item label="负责人联系方式" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="负责人联系方式" v-decorator="['headPhone',{rules: [{ required: true, message: '输入负责人联系方式'}]}]" />
</a-form-item>
</a-col>
<a-col :span="10">
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="启用时间">
<a-date-picker
format='YYYY-MM-DD HH:mm:ss'
valueFormat='YYYY-MM-DD HH:mm:ss'
v-decorator="['startTime',{rules: [{ required: true, message: '输入启用时间'}]}]"
:show-time="{ defaultValue: moment('00:00:00', 'HH:mm:ss') }"
type="date"
placeholder="选择时间"
style="width: 100%;"
/>
</a-form-item>
</a-col>
</a-row>
<a-row>
<a-col :span="10">
<a-form-item label="结束时间" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-date-picker
format='YYYY-MM-DD HH:mm:ss'
valueFormat='YYYY-MM-DD HH:mm:ss'
v-decorator="['endDate',{rules: [{ required: true, message: '输入结束时间'}]}]"
:show-time="{ defaultValue: moment('00:00:00', 'HH:mm:ss') }"
type="date"
placeholder="选择时间结束时间"
style="width: 100%;"
/>
</a-form-item>
</a-col>
<a-col :span="10">
<a-form-item label="是否使用优惠劵" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-select v-decorator="['isTicket',{rules: [{ required: true, message: '请选择优惠券'}]}]" placeholder="是否收费">
<a-select-option value="0">
</a-select-option>
<a-select-option value="1">
</a-select-option>
</a-select>
</a-form-item>
</a-col>
</a-row>
<a-row>
<a-col :span="10">
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="是否收费">
<a-select v-decorator="['isToll',{rules: [{ required: true, message: '请选择是否收费'}]}]" placeholder="是否收费">
<a-select-option value="0">
</a-select-option>
<a-select-option value="1">
</a-select-option>
</a-select>
</a-form-item>
</a-col>
<a-col :span="10">
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="收费金额 ">
<a-input placeholder="收费金额 " v-decorator="['money',{rules: [{ required: true, message: '请输入收费金额'}]}]" />
</a-form-item>
</a-col>
</a-row>
<a-row>
<a-col :span="10">
<a-form-item label="是否启用" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-select v-decorator="['isShow',{rules: [{ required: true, message: '请选择是否启用'}]}]" placeholder="是否启用">
<a-select-option value="0">
</a-select-option>
<a-select-option value="1">
</a-select-option>
</a-select>
</a-form-item>
</a-col>
<a-col :span="10">
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="金额备注 ">
<a-input placeholder="金额备注 " v-decorator="['remake']" />
</a-form-item>
</a-col>
</a-row>
<a-row>
<a-col :span="10">
<a-form-item label="起租时长" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="起租时长" v-decorator="['duration',{rules: [{ required: true, message: '请输入起租时长'}]}]" />
</a-form-item>
</a-col>
<a-col :span="10">
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="会议描述 ">
<a-input placeholder="会议描述 " v-decorator="['content']" />
</a-form-item>
</a-col>
</a-row>
<a-row>
<a-col :span="10">
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="室内图片url">
<!-- <a-input placeholder="室内图片url" v-decorator="['indoorPicUrl']" />-->
<a-upload
v-decorator="['indoorPicUrl']"
list-type="picture-card"
class="avatar-uploader"
:show-upload-list="false"
:action="uploadUrl"
:headers="headers"
:before-upload="beforeUpload"
@change="handleChange"
>
<img v-if="imageUrl" :src="imageUrl" style="width: 102px; height: 102px"/>
<div v-else>
<a-icon :type="loading ? 'loading' : 'plus'" />
<div class="ant-upload-text"> 上传 </div>
</div>
</a-upload>
</a-form-item>
</a-col>
</a-row>
</a-form>
</a-modal>
</template>
<script>
import { saveRoomContent } from '@/api/admin/meeting/roomContent'
import { saveRoomContent,getFloorList,getRoomListByFloorId,selectRoomById,get } from '@/api/admin/meeting/roomContent'
import pick from 'lodash.pick'
import storage from 'store'
import moment from 'moment'
import { ACCESS_TOKEN } from '@/store/mutation-types'
export default {
@ -78,7 +268,7 @@ export default {
visible: false,
labelCol: {
xs: { span: 24 },
sm: { span: 5 },
sm: { span: 8 },
},
uploadUrl: process.env.VUE_APP_API_BASE_URL + '/dfs/upload',
imageUrl: '',
@ -86,8 +276,11 @@ export default {
Authorization: 'Bearer ' + storage.get(ACCESS_TOKEN)
},
loading: false,
floorList:[],
roomList:[],
wrapperCol: {
xs: { span: 24 },
xs: { span: 16 },
sm: { span: 16 },
},
confirmLoading: false,
@ -98,7 +291,38 @@ export default {
},
beforeCreate () {},
created () {},
mounted() {
this.getFloorList()
},
methods: {
moment,
//
getArea(value){
let param={
"id":value
}
selectRoomById(param).then((res )=>{
this.form.setFieldsValue({
area: res.data.area
})
})
},
getFloorList(){
getFloorList().then((res) =>{
this.floorList = res.data
})
},
getRoomList(value){
let param={
"buildingDetailId":value
}
getRoomListByFloorId(param).then((res) =>{
this.roomList = res.data
})
},
beforeUpload (file) {
const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png'
if (!isJpgOrPng) {
@ -137,6 +361,18 @@ export default {
this.edit({ id: 0 })
},
edit (record) {
get(record.id).then((res) =>{
this.form.setFieldsValue({
area: res.area,
buildId:res.buildingName,
roomId:res.roomName,
isToll:res.isToll.toString(),
isShow:res.isShow.toString(),
isTicket:res.isTicket.toString(),
type:res.typeName
})
})
this.mdl = Object.assign(record)
this.visible = true
this.$nextTick(() => {
@ -150,18 +386,23 @@ export default {
'expandNum',
'indoorPicUrl',
'startTime',
'endTime',
'priceUnit',
'endDate',
'money',
'isShow',
'createBy',
'createTime',
'updateBy',
'updateTime',
'version',
'deleteFlag',
'roomId',
'shape'
'shape',
'area',
'buildId',
'address',
'headName',
'headPhone',
'isTicket',
'isToll',
'money',
'remake',
'duration',
'content',
)
)
})
@ -199,3 +440,31 @@ function getBase64 (img, callback) {
reader.readAsDataURL(img)
}
</script>
<style scoped>
.self-item-cell{
display: flex;
justify-content: space-between;
align-items: center;
}
.self-item-cell .self-item{
display: flex;
justify-content: flex-start;
align-items: center;
width: 50%;
}
.self-item-cell .self-item:first-of-type{
margin-right: 10px;
}
.self-item-cell .self-item .title{
margin-right: 10px;
}
.self-item-cell .self-item .input{
flex: 1;
}
</style>

View File

@ -20,8 +20,7 @@
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="服务类型">
<a-select placeholder="服务类型" v-decorator="['serveType', {rules: [{ message: '请选择服务类型' }]}]">
<a-select-option :value="'1'">免费服务</a-select-option>
<a-select-option :value="'2'">会务服务</a-select-option>
<a-select-option :value="'3'">其他服务</a-select-option>
<a-select-option :value="'2'">增值服务</a-select-option>
</a-select>
</a-form-item>
<!-- <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="服务时间30分钟起步">-->