修改了展厅管理功能模块

This commit is contained in:
chendaze 2024-03-20 16:09:42 +08:00
parent 800d2f531a
commit 86195fc846
6 changed files with 255 additions and 230 deletions

View File

@ -12,6 +12,14 @@ export function getShowroomList (parameter) {
})
}
export function get (id) {
return axios({
url: api.showroom + '/get/'+id,
method: 'get',
params: {}
})
}
export function saveShowroom (parameter) {
return axios({
url: api.showroom + (parameter.id > 0 ? '/update' : '/save'),

View File

@ -3,66 +3,11 @@
<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.showroomCode"/>
</a-form-item>
</a-col>
<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-input placeholder="请输入容纳人数" v-model="queryParam.capacityNum"/>
</a-form-item>
</a-col>
<a-col :md="5" :sm="15">
<a-form-item label="扩充人数">
<a-input placeholder="请输入扩充人数" v-model="queryParam.expandNum"/>
</a-form-item>
</a-col>
<a-col :md="5" :sm="15">
<a-form-item label="室内图片url">
<a-input placeholder="请输入室内图片url" v-model="queryParam.indoorPicUrl"/>
</a-form-item>
</a-col>
<a-col :md="5" :sm="15">
<a-form-item label="地址">
<a-input placeholder="请输入地址" v-model="queryParam.address"/>
</a-form-item>
</a-col>
<a-col :md="5" :sm="15">
<a-form-item label="是否展示">
<a-input placeholder="请输入是否展示" v-model="queryParam.isShow"/>
</a-form-item>
</a-col>
<a-col :md="5" :sm="15">
<a-form-item label="负责人姓名">
<a-input placeholder="请输入负责人姓名" v-model="queryParam.headName"/>
</a-form-item>
</a-col>
<a-col :md="5" :sm="15">
<a-form-item label="负责人手机号">
<a-input placeholder="请输入负责人手机号" v-model="queryParam.headPhone"/>
</a-form-item>
</a-col>
<a-col :md="5" :sm="15">
<a-form-item label="会议描述">
<a-input placeholder="请输入会议描述" v-model="queryParam.content"/>
</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="展厅面积">
<a-input placeholder="请输入展厅面积" v-model="queryParam.area"/>
</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>
@ -86,6 +31,9 @@
:columns="columns"
:data="loadData"
>
<span slot='isShow' slot-scope='text,record'>
<a-switch :checked="record.isShow === 0 ? true : false" @change="onChange(record,$event)" />
</span>
<span slot="action" slot-scope="text, record">
<a v-if="editEnabel" @click="handleEdit(record)">编辑</a>
<a-divider type="vertical" />
@ -99,7 +47,7 @@
<script>
import {STable} from '@/components'
import {delShowroom} from '@/api/admin/meeting/showroom'
import {delShowroom,getShowroomList,saveShowroom} from '@/api/admin/meeting/showroom'
import ShowroomModal from './modules/ShowroomModal.vue'
import {checkPermission} from '@/utils/permissions'
@ -127,10 +75,7 @@
queryParam: {},
//
columns: [
{
title: '展厅编码',
dataIndex: 'showroomCode'
},
{
title: '展厅名称',
dataIndex: 'meetingName'
@ -140,31 +85,15 @@
dataIndex: 'capacityNum'
},
{
title: '扩充人数',
dataIndex: 'expandNum'
},
{
title: '室内图片url',
dataIndex: 'indoorPicUrl'
},
{
title: '地址',
dataIndex: 'address'
},
{
title: '开始时间',
title: '展示开始时间',
dataIndex: 'startTime',
sorter: true
},
{
title: '结束时间',
title: '展示结束时间',
dataIndex: 'endDate',
sorter: true
},
{
title: '是否展示',
dataIndex: 'isShow'
},
{
title: '负责人姓名',
dataIndex: 'headName'
@ -174,17 +103,11 @@
dataIndex: 'headPhone'
},
{
title: '会议描述',
dataIndex: 'content'
},
{
title: '房间id',
dataIndex: 'roomId'
},
{
title: '展厅面积',
dataIndex: 'area'
title: '是否展示',
dataIndex: 'isShow',
scopedSlots: { customRender: 'isShow' }
},
{
title: '操作',
width: '200px',
@ -212,6 +135,14 @@
this.selectedRowKeys = selectedRowKeys
this.selectedRows = selectedRows
},
onChange(record,selected,selectedRows,event){
record.isShow = selected ?0:1
saveShowroom(record).then((res)=>{
if (res.code == 0){
this.$message.success('修改成功');
}
})
},
handleAdd () {
this.$refs.modal.add()
},

View File

@ -8,36 +8,6 @@
<a-input placeholder="请输入会议主体id" v-model="queryParam.showroomId"/>
</a-form-item>
</a-col>
<a-col :md="5" :sm="15">
<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="主题">
<a-input placeholder="请输入主题" v-model="queryParam.title"/>
</a-form-item>
</a-col>
<a-col :md="5" :sm="15">
<a-form-item label="预约状态">
<a-input placeholder="请输入预约状态" v-model="queryParam.stauts"/>
</a-form-item>
</a-col>
<a-col :md="5" :sm="15">
<a-form-item label="预约编号">
<a-input placeholder="请输入预约编号" v-model="queryParam.reservationNumber"/>
</a-form-item>
</a-col>
<a-col :md="5" :sm="15">
<a-form-item label="订单取消原因">
<a-input placeholder="请输入订单取消原因" v-model="queryParam.cancelResaon"/>
</a-form-item>
</a-col>
<a-col :md="5" :sm="15">
<a-form-item label="备注">
<a-input placeholder="请输入备注" v-model="queryParam.remake"/>
</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>
@ -74,7 +44,7 @@
<script>
import {STable} from '@/components'
import {delShowroomRecord} from '@/api/admin/meeting/showroomRecord'
import {delShowroomRecord,getShowroomRecordList} from '@/api/admin/meeting/showroomRecord'
import ShowroomRecordModal from './modules/ShowroomRecordModal.vue'
import {checkPermission} from '@/utils/permissions'
@ -103,33 +73,21 @@
//
columns: [
{
title: '会议主体id',
dataIndex: 'showroomId'
title: '展厅名称',
dataIndex: 'meetingName'
},
{
title: '用户id',
dataIndex: 'userId'
},
{
title: '主题',
title: '展厅主题',
dataIndex: 'title'
},
{
title: '预约状态',
dataIndex: 'stauts'
},
{
title: '预约编号',
title: '来参观人员',
dataIndex: 'reservationNumber'
},
{
title: '订单取消时间',
dataIndex: 'cancelTime',
sorter: true
},
{
title: '订单取消原因',
dataIndex: 'cancelResaon'
title: '来参观人员',
dataIndex: 'visitType'
},
{
title: '预约-开始时间',
@ -141,10 +99,6 @@
dataIndex: 'endDate',
sorter: true
},
{
title: '备注',
dataIndex: 'remake'
},
{
title: '操作',
width: '200px',

View File

@ -370,8 +370,7 @@ export default {
isToll:res.isToll.toString(),
isShow:res.isShow.toString(),
isTicket:res.isTicket.toString(),
type:res.typeName
type:res.typeValue.toString()
})
})
}

View File

@ -1,90 +1,195 @@
<template>
<a-modal
title="操作"
style="top: 20px;"
:width="800"
v-model="visible"
:confirmLoading="confirmLoading"
@ok="handleSubmit"
title='操作'
style='top: 20px;'
:width='1000'
v-model='visible'
:confirmLoading='confirmLoading'
@ok='handleSubmit'
>
<a-form :form="form">
<a-form-item style="display:none">
<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-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="['showroomCode']"/>
<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-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="展厅名称">
<a-input placeholder="展厅名称" v-decorator="['meetingName']"/>
</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-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="容纳人数">
<a-input placeholder="容纳人数" v-decorator="['capacityNum']"/>
</a-col>
</a-row>
<a-row>
<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-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="扩充人数">
<a-input placeholder="扩充人数" v-decorator="['expandNum']"/>
</a-col>
<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-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="室内图片url">
<a-input placeholder="室内图片url" v-decorator="['indoorPicUrl']"/>
</a-col>
</a-row>
<a-row>
<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-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="地址">
<a-input placeholder="地址" v-decorator="['address']"/>
</a-col>
<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-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="是否展示">
<a-input placeholder="是否展示" v-decorator="['isShow']"/>
</a-col>
</a-row>
<a-row>
<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-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="负责人姓名">
<a-input placeholder="负责人姓名" v-decorator="['headName']"/>
</a-col>
<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-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="负责人手机号">
<a-input placeholder="负责人手机号" v-decorator="['headPhone']"/>
</a-col>
</a-row>
<a-row>
<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-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="会议描述">
<a-input placeholder="会议描述" v-decorator="['content']"/>
</a-col>
<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-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="创建者">
<a-input placeholder="创建者" v-decorator="['createBy']"/>
</a-col>
</a-row>
<a-row>
<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-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="更新者">
<a-input placeholder="更新者" v-decorator="['updateBy']"/>
</a-col>
<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-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="版本">
<a-input placeholder="版本" v-decorator="['version']"/>
</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="['area']"/>
</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 {saveShowroom} from '@/api/admin/meeting/showroom'
import { saveShowroom,get } from '@/api/admin/meeting/showroom'
import {
getFloorList,
getRoomListByFloorId,
selectRoomById,
} from '@/api/admin/meeting/roomContent'
import pick from 'lodash.pick'
import moment from 'moment'
import storage from 'store'
export default {
name: 'ShowroomModal',
props: {
},
components: {
props: {},
components: {},
mounted() {
this.getFloorList()
},
data() {
return {
visible: false,
labelCol: {
xs: { span: 24 },
sm: { span: 5 }
sm: { span: 5 },
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 16 }
sm: { span: 16 },
},
confirmLoading: false,
mdl: {},
floorList: [],
roomList: [],
form: this.$form.createForm(this)
}
},
@ -93,6 +198,31 @@
created() {
},
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
})
},
add() {
this.form.resetFields()
this.edit({ id: 0 })
@ -100,9 +230,24 @@
edit(record) {
this.mdl = Object.assign(record)
this.visible = true
this.$nextTick(() => {
this.form.setFieldsValue(pick(this.mdl, 'id', 'showroomCode', 'meetingName', 'capacityNum', 'expandNum', 'indoorPicUrl', 'address', 'startTime', 'endDate', 'isShow', 'headName', 'headPhone', 'content', 'createBy', 'createTime', 'updateBy', 'updateTime', 'version', 'deleteFlag', 'roomId', 'area'))
})
get(record.id).then(res =>{
let param = {
'buildingDetailId': res.buildId
}
getRoomListByFloorId(param).then((res) => {
this.roomList = res.data
})
this.form.setFieldsValue({
roomId:res.roomId,
buildId:res.buildingName.toString(),
isShow:res.isShow.toString()
})
})
},
handleSubmit(e) {
e.preventDefault()

View File

@ -14,32 +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="['showroomId']"/>
</a-form-item>
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="用户id">
<a-input placeholder="用户id" v-decorator="['userId']"/>
<a-input placeholder="展厅名称" v-decorator="['meetingName']"/>
</a-form-item>
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="主题">
<a-input placeholder="主题" v-decorator="['title']"/>
<a-input placeholder="展厅主体" v-decorator="['title']"/>
</a-form-item>
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="预约状态">
<a-input placeholder="预约状态" v-decorator="['stauts']"/>
</a-form-item>
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="预约编号">
<a-input placeholder="预约编号" v-decorator="['reservationNumber']"/>
<a-input placeholder="预约开始时间" v-decorator="['startTime']"/>
</a-form-item>
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="订单取消原因">
<a-input placeholder="订单取消原因" v-decorator="['cancelResaon']"/>
</a-form-item>
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="创建者">
<a-input placeholder="创建者" v-decorator="['createBy']"/>
</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="备注">
<a-input placeholder="备注" v-decorator="['remake']"/>
<a-input placeholder="预约结束时间" v-decorator="['endDate']"/>
</a-form-item>
</a-form>
</a-modal>