修改了会议室主体内容的PC页面

This commit is contained in:
chendaze 2024-03-05 17:23:01 +08:00
parent 4a7545069b
commit 44e7df985d
3 changed files with 217 additions and 44 deletions

View File

@ -12,6 +12,30 @@ export function getRoomContentList (parameter) {
}) })
} }
export function selectSearchInfoByType (parameter) {
return axios({
url: api.roomContent + '/searchInfo/1',
method: 'get',
params: {}
})
}
export function selectSearchInfoByCapacity (parameter) {
return axios({
url: api.roomContent + '/searchInfo/2',
method: 'get',
params: {}
})
}
export function selectSearchInfoByShape (parameter) {
return axios({
url: api.roomContent + '/searchInfo/4',
method: 'get',
params: {}
})
}
export function saveRoomContent (parameter) { export function saveRoomContent (parameter) {
return axios({ return axios({
url: api.roomContent + (parameter.id > 0 ? '/update' : '/save'), url: api.roomContent + (parameter.id > 0 ? '/update' : '/save'),
@ -31,4 +55,7 @@ export function delRoomContent (parameter) {
}) })
} }
export const roomContentExport = api.roomContent + '/export' export const roomContentExport = api.roomContent + '/export'

View File

@ -3,31 +3,39 @@
<div class="table-page-search-wrapper"> <div class="table-page-search-wrapper">
<a-form layout="inline"> <a-form layout="inline">
<a-row :gutter="48"> <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-col :md="5" :sm="15">
<a-form-item label="类型"> <a-form-item label="类型">
<a-input placeholder="请选择类型" v-model="queryParam.type" /> <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-select-option>
</a-select>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :md="5" :sm="15"> <a-col :md="5" :sm="15">
<a-form-item label="名称"> <a-form-item label="排列形状">
<a-input placeholder="请输入名称" v-model="queryParam.meetingName" /> <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>
</a-select>
</a-form-item> </a-form-item>
</a-col> </a-col>
<!-- <a-col :md="5" :sm="15"> <a-col :md="5" :sm="15">
<a-form-item label="容纳人数"> <a-form-item label="容纳人数">
<a-input placeholder="请输入容纳人数" v-model="queryParam.capacityNum" /> <a-select v-model="queryParam.status" 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-form-item>
</a-col> </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="是否展示">-->
<!-- <a-input placeholder="请输入是否展示" v-model="queryParam.isShow" />-->
<!-- </a-form-item>-->
<!-- </a-col>-->
<a-col :md="8" :sm="24"> <a-col :md="8" :sm="24">
<span class="table-page-search-submitButtons"> <span class="table-page-search-submitButtons">
<a-button type="primary" @click="$refs.table.refresh(true)">查询</a-button> <a-button type="primary" @click="$refs.table.refresh(true)">查询</a-button>
@ -51,6 +59,12 @@
:columns="columns" :columns="columns"
:data="loadData" :data="loadData"
> >
<span slot="type" slot-scope="text">
{{ text | typeFilter }}
</span>
<span slot="item" slot-scope="text,record">
<a @click="handleItemTable(record)">1</a>
</span>
<span slot="action" slot-scope="text, record"> <span slot="action" slot-scope="text, record">
<a v-if="editEnabel" @click="handleEdit(record)">编辑</a> <a v-if="editEnabel" @click="handleEdit(record)">编辑</a>
<a-divider type="vertical" /> <a-divider type="vertical" />
@ -58,23 +72,83 @@
</span> </span>
</s-table> </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-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>
<s-table
size="default"
ref="table"
rowKey="id"
:rowSelection="{ selectedRowKeys: selectedItemRowKeys, onChange: onItemSelectChange }"
:columns="itemColumns"
:data="itemLoadData"
>
<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> </a-card>
</template> </template>
<script> <script>
import { STable } from '@/components' import { STable } from '@/components'
import { getRoomContentList,delRoomContent } from '@/api/admin/meeting/roomContent' import { getRoomContentList,delRoomContent,selectSearchInfoByType,selectSearchInfoByShape,selectSearchInfoByCapacity } from '@/api/admin/meeting/roomContent'
import { getRoomServeList } from '@/api/admin/meeting/roomServe'
import RoomContentModal from './modules/RoomContentModal.vue' import RoomContentModal from './modules/RoomContentModal.vue'
import { checkPermission } from '@/utils/permissions' import { checkPermission } from '@/utils/permissions'
import { getDictArray } from '@/utils/dict'
const typeMap = {}
const serveTypeMap = {}
export default { export default {
name: 'TableList', name: 'TableList',
components: { components: {
STable, STable,
RoomContentModal RoomContentModal
}, },
data() { data () {
return { return {
labelCol: { labelCol: {
xs: { span: 24 }, xs: { span: 24 },
@ -86,54 +160,68 @@ export default {
}, },
form: this.$form.createForm(this), form: this.$form.createForm(this),
mdl: {}, mdl: {},
visible: false,
typeMap,
// / // /
advanced: false, advanced: false,
// //
queryParam: {}, queryParam: {},
itemQueryParam:{},
capacityList: [],
shapeList: [],
typeList:[],
serveTypeMap,
itemColumns: [
{
title: '服务名称',
dataIndex: 'serveName'
},
{
title: '服务类型',
dataIndex: 'serveType',
scopedSlots: { customRender: 'serveType' }
},
{
title: '金额',
dataIndex: 'money'
},
],
// //
columns: [ columns: [
{
title: '类型',
dataIndex: 'typeName'
},
{ {
title: '名称', title: '名称',
dataIndex: 'meetingName' dataIndex: 'meetingName'
}, },
{
title: '类型',
dataIndex: 'typeName',
scopedSlots: { customRender: 'typeName' }
},
{ {
title: '容纳人数', title: '容纳人数',
dataIndex: 'capacityNum' dataIndex: 'capacityNum'
}, },
{ {
title: '开始时间', title: '排列形状',
dataIndex: 'startTime', dataIndex: 'shape'
sorter: true
}, },
{ {
title: '结束时间', title: '会议设备',
dataIndex: 'endDate', dataIndex: 'item',
sorter: true scopedSlots: { customRender: 'item' }
},
{
title: '关联服务',
dataIndex: 'money'
}, },
// {
// title: '123',
// dataIndex: 'priceUnit'
// },
{ {
title: '金额', title: '金额',
dataIndex: 'money' dataIndex: 'money'
}, },
{ {
title: '是否展示', title: '负责人',
dataIndex: 'isShow' dataIndex: 'createBy'
},
{
title: '房间id',
dataIndex: 'roomId'
},
{
title: '形状',
dataIndex: 'shape'
}, },
{ {
title: '操作', title: '操作',
@ -146,16 +234,70 @@ export default {
loadData: (parameter) => { loadData: (parameter) => {
return getRoomContentList(Object.assign(parameter, this.queryParam)) return getRoomContentList(Object.assign(parameter, this.queryParam))
}, },
itemLoadData:(parameter) => {
return getRoomServeList(Object.assign(parameter, this.itemQueryParam))
},
selectedRowKeys: [], selectedRowKeys: [],
selectedRows: [], selectedRows: [],
selectedItemRowKeys: [],
selectedItemRows: [],
addEnable: checkPermission('meeting:roomContent:add'), addEnable: checkPermission('meeting:roomContent:add'),
editEnabel: checkPermission('meeting:roomContent:edit'), editEnabel: checkPermission('meeting:roomContent:edit'),
removeEnable: checkPermission('meeting:roomContent:remove'), removeEnable: checkPermission('meeting:roomContent:remove'),
} }
}, },
filters: {}, filters: {
created() {}, typeFilter (Type) {
return typeMap[Type].text
},
serveTypeFilter (serveType) {
return serveTypeMap[serveType].text
}
},
async created () {
const TypeData = await getDictArray('meeting_type')
TypeData.map(d => {
typeMap[d.dictValue] = { text: d.dictLabel }
})
const serveTypeData = await getDictArray('serve_type')
serveTypeData.map(d => {
serveTypeMap[d.dictValue] = { text: d.dictLabel }
})
},
mounted() {
this.selectSearchInfoByType()
this.selectSearchInfoByShape()
this.selectSearchInfoByCapacity()
},
methods: { methods: {
itemHandleOk(){
//
},
onItemSelectChange(selectedRowKeys, selectedRows){
this.selectedItemRowKeys = selectedRowKeys
this.selectedItemRows = selectedRows
console.log(this.selectedItemRowKeys)
},
handleItemTable () {
this.visible = true
},
//
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) { onSelectChange(selectedRowKeys, selectedRows) {
this.selectedRowKeys = selectedRowKeys this.selectedRowKeys = selectedRowKeys
this.selectedRows = selectedRows this.selectedRows = selectedRows

View File

@ -17,6 +17,9 @@
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="名称"> <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="名称">
<a-input placeholder="名称" v-decorator="['meetingName']" /> <a-input placeholder="名称" v-decorator="['meetingName']" />
</a-form-item> </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-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="容纳人数">
<a-input placeholder="容纳人数" v-decorator="['capacityNum']" /> <a-input placeholder="容纳人数" v-decorator="['capacityNum']" />
</a-form-item> </a-form-item>
@ -89,6 +92,7 @@ export default {
}, },
confirmLoading: false, confirmLoading: false,
mdl: {}, mdl: {},
typeData: [],
form: this.$form.createForm(this), form: this.$form.createForm(this),
} }
}, },