添加会议室相关代码
main
zxf 1 week ago
parent 60f392e1e8
commit 38f7ec3bc2

@ -0,0 +1,63 @@
import request from '@/utils/request'
/**
* 新增cmmeetingroom
* @param pram
*/
export function cmmeetingroomCreateApi(data) {
return request({
url: `autogencode/cmmeetingroom/save`,
method: 'POST',
data
})
}
/**
* cmmeetingroom更新
* @param pram
*/
export function cmmeetingroomUpdateApi(data) {
return request({
url: `autogencode/cmmeetingroom/update`,
method: 'POST',
data
})
}
/**
* cmmeetingroom详情
* @param pram
*/
export function cmmeetingroomDetailApi(id) {
return request({
url: `autogencode/cmmeetingroom/info/${id}`,
method: 'GET'
})
}
/**
* cmmeetingroom批量删除
* @param ids
*/
export function cmmeetingroomDeleteApi(ids) {
return request({
url: `autogencode/cmmeetingroom/delete`,
method: 'POST',
data: ids
})
}
/**
* cmmeetingroom列表
* @param pram
*/
export function cmmeetingroomListApi(params) {
return request({
url: `autogencode/cmmeetingroom/list`,
method: 'GET',
params
})
}

@ -28,7 +28,33 @@
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">仓库名称<rq></rq></template>
<div class="nomal-text"><WarehouseName :stockCode="scope.row.stockCode"/></div>
<div v-if="tableReadonly" class="nomal-text">{{ scope.row.stockName }}</div>
<el-form-item v-else prop="stockCode" class="margin-none">
<el-select v-model="scope.row.stockCode" filterable placeholder="请选择仓库" style="width: 100%" clearable
@change="onWarehouseChange($event, scope.row)">
<el-option v-for="item in warehouseList" :key="item.stockCode" :label="item.stockName" :value="item.stockCode" />
</el-select>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">货架名称<rq></rq></template>
<div v-if="tableReadonly" class="nomal-text">{{ scope.row.shelfName }}</div>
<el-form-item v-else prop="shelfId" class="margin-none">
<el-select v-model="scope.row.shelfId" filterable placeholder="请选择货架" style="width: 100%" clearable
@change="onShelfChange($event, scope.row)">
<el-option v-for="item in shelfList" :key="item.id" :label="item.shelfName" :value="item.id" />
</el-select>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">货位名称<rq></rq></template>
<div v-if="tableReadonly" class="nomal-text">{{ scope.row.locationName }}</div>
<el-form-item v-else prop="locationId" class="margin-none">
<el-select v-model="scope.row.locationId" filterable placeholder="请选择货位" style="width: 100%" clearable
@change="onLocationChange($event, scope.row)">
<el-option v-for="item in locationList" :key="item.id" :label="item.locationName" :value="item.id" />
</el-select>
</el-form-item>
</el-descriptions-item>
<!-- <el-descriptions-item>-->
<!-- <template slot="label">仓位名称<rq></rq></template>-->
@ -231,20 +257,7 @@
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="船舶名称" prop="vesselName">
<el-select v-model="form.vesselId" filterable placeholder="请输入船舶名称" style="width: 100%" clearable
@change="setVesselDetail">
<el-option v-for="item in vesselList" :key="item.id" :label="item.vesselName" :value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="航次号" prop="voyageNo">
<el-input v-model="form.voyageNo" placeholder="请输入航次号" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<div style="margin-left: 20px;">
@ -260,7 +273,9 @@
<script>
import { cmcustproductListApi as listCargo } from '@/api/cmcustproduct.js'
import { cmcustListApi as listCust } from "@/api/cmcust";
// import { listStock } from "@/api/jxc/stock";
import { listWarehouse } from "@/api/cmwarehouse";
import { cmshelfListApi as listShelf } from "@/api/cmshelf";
import { cmlocationListApi as listLocation } from "@/api/cmstoragelocation";
import { ckbillDetailApi as getCkbillInfo, putBill } from '@/api/ckbill';
import { ckbillcargoDeleteApi as delCkcargo, recallPutBill } from '@/api/ckbillcargo';
// import { listVessel } from "@/api/jxc/vessel";
@ -277,7 +292,7 @@ export default {
dicts: ['bm_measuring_unit', 'sys_origin_country', 'sys_curr_type'],
data() {
return {
vesselList: [],
rules: {
cargoValue: [
{ required: true, message: "货物价值不能为空", trigger: "blur" }
@ -356,8 +371,12 @@ export default {
cargoList: [],
//
custList: [],
//
// stockList: [],
//
warehouseList: [],
//
shelfList: [],
//
locationList: [],
form: {
ckBillCargos: []
},
@ -405,6 +424,7 @@ export default {
//console.log("data", data);
this.getCargoList();
this.getCustList();
this.getWarehouseList();
// this.getStockList();
this.$nextTick(() => {
@ -597,6 +617,12 @@ export default {
cargoWt: 0,
cargoVol: 0,
cargoValue: 0,
stockCode: '',
shelfId: '',
locationId: '',
stockName: '',
shelfName: '',
locationName: '',
});
this.$refs.table.bodyWrapper.scrollTop = this.$refs.table.bodyWrapper.scrollHeight;
this.$nextTick(() => {
@ -671,6 +697,80 @@ export default {
}).catch(e => {
});
},
//
getWarehouseList() {
listWarehouse({}).then(response => {
this.warehouseList = response.data || [];
}).catch(e => {
console.error('获取仓库列表失败:', e);
this.warehouseList = [];
});
},
//
getShelfList(warehouseId) {
listShelf({ warehouseId }).then(response => {
this.shelfList = response.data || [];
}).catch(e => {
console.error('获取货架列表失败:', e);
this.shelfList = [];
});
},
//
getLocationList(shelfId) {
listLocation({ shelfId }).then(response => {
this.locationList = response.data || [];
}).catch(e => {
console.error('获取货位列表失败:', e);
this.locationList = [];
});
},
//
onWarehouseChange(stockCode, row) {
//
row.shelfId = '';
row.locationId = '';
row.shelfName = '';
row.locationName = '';
// ID
const warehouse = this.warehouseList.find(item => item.stockCode === stockCode);
if (warehouse) {
row.stockName = warehouse.stockName;
this.getShelfList(warehouse.id);
} else {
this.shelfList = [];
this.locationList = [];
}
},
//
onShelfChange(shelfId, row) {
//
row.locationId = '';
row.locationName = '';
if (shelfId) {
//
const shelf = this.shelfList.find(item => item.id === shelfId);
if (shelf) {
row.shelfName = shelf.shelfName;
this.getLocationList(shelfId);
}
} else {
this.locationList = [];
}
},
//
onLocationChange(locationId, row) {
if (locationId) {
//
const location = this.locationList.find(item => item.id === locationId);
if (location) {
row.locationName = location.locationName;
}
} else {
row.locationName = '';
}
},
//
// setStockDetail(stockId, form) {
// this.stockList.forEach(ele => {

@ -56,16 +56,11 @@
@selection-change="handleSelectionChange" border>
<el-table-column type="selection" width="55" align="center" fixed="left" />
<el-table-column label="货物名称" align="center" prop="cargoName" sortable='custom' min-width="80" fixed="left" />
<el-table-column label="仓库名称" align="center" prop="stockCode" sortable='custom' min-width="80" fixed="left">
<template slot-scope="scope">
<WarehouseName :stockCode="scope.row.stockCode" />
</template>
</el-table-column>
<el-table-column label="仓位名称" align="center" prop="stockName" sortable='custom' min-width="80" fixed="left" />
<el-table-column label="仓库名称" align="center" prop="stockName" sortable='custom' min-width="80" fixed="left" />
<el-table-column label="货架名称" align="center" prop="shelfName" sortable='custom' min-width="80" fixed="left" />
<el-table-column label="货位名称" align="center" prop="locationName" sortable='custom' min-width="80" fixed="left" />
<el-table-column label="货主名称" align="center" prop="custName" sortable='custom' min-width="150" />
<el-table-column label="船舶名称" align="center" prop="vesselName" sortable='custom' min-width="100" />
<el-table-column label="船舶航次" align="center" prop="voyageNo" sortable='custom' min-width="100" />
<el-table-column label="数据来源" align="center" prop="sourceType" sortable='custom' min-width="100">
<template slot-scope="scope">
<el-tag>{{ scope.row.sourceType == '0' ? '载货清单' : scope.row.sourceType == '2' ? '转场' : scope.row.sourceType == '3' ? '混配' : '直接入库' }}</el-tag>
@ -160,11 +155,7 @@ export default {
// optionsProp: 'id',
// optionsLabel: 'vesselName',
// },
{
label: '航次',
prop: 'voyageNo',
type: 'text',
},
{
label: '核注清单号',
prop: 'listNumber',
@ -195,11 +186,7 @@ export default {
optionsProp: 'stockCode',
optionsLabel: 'stockName',
},
{
label: '仓位名称',
prop: 'stockName',
type: 'text',
},
{
label: '报关单号',
prop: 'customsNo',
@ -240,10 +227,6 @@ export default {
billDate: null,
billNumber: null,
inoutType: "1",
voyageId: null,
voyageNo: null,
vesselId: null,
vesselName: null,
cargoId: null,
hsCode: null,
cargoName: null,
@ -260,6 +243,10 @@ export default {
stockId: null,
stockCode: null,
stockName: null,
shelfId: null,
shelfName: null,
locationId: null,
locationName: null,
cargoValue: null,
customsNo: null,
listNumber: null,

@ -0,0 +1,198 @@
<template>
<!-- 基于 Element UI 新增和修改弹窗 -->
<el-dialog
:title="!dataForm.id ? '添加' : '修改'"
:close-on-click-modal="false"
:visible.sync="visible">
<!-- 新增和修改表单 -->
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataSubmit()" label-width="120px">
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="会议室名称" prop="roomName">
<el-input v-model="dataForm.roomName" placeholder="会议室名称"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="会议室位置" prop="roomLocation">
<el-input v-model="dataForm.roomLocation" placeholder="会议室位置"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="容纳人数" prop="capacity">
<el-input-number v-model="dataForm.capacity" placeholder="容纳人数" :min="0" style="width: 100%"></el-input-number>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="总座位数" prop="totalSeats">
<el-input-number v-model="dataForm.totalSeats" placeholder="总座位数" :min="0" style="width: 100%"></el-input-number>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="固定座位数" prop="fixedSeats">
<el-input-number v-model="dataForm.fixedSeats" placeholder="固定座位数" :min="0" style="width: 100%"></el-input-number>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="可移动座位数" prop="movableSeats">
<el-input-number v-model="dataForm.movableSeats" placeholder="可移动座位数" :min="0" style="width: 100%"></el-input-number>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="座位布局类型" prop="seatLayout">
<el-input v-model="dataForm.seatLayout" placeholder="座位布局类型"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="配套设备" prop="equipmentConfig">
<el-input v-model="dataForm.equipmentConfig" placeholder="配套设备"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="收费标准" prop="chargeStandard">
<el-input v-model="dataForm.chargeStandard" placeholder="收费标准"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="可预约时间段" prop="reserveTimeRange">
<el-input v-model="dataForm.reserveTimeRange" placeholder="可预约时间段"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="会议室状态" prop="roomStatus">
<el-input v-model="dataForm.roomStatus" placeholder="会议室状态"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-form-item label="文件id" prop="fileId">
<el-input v-model="dataForm.fileId" placeholder="文件id"></el-input>
</el-form-item>
<el-form-item label="会议室描述" prop="description">
<el-input v-model="dataForm.description" placeholder="会议室描述"></el-input>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="dataForm.remark" placeholder="备注"></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="visible = false">取消</el-button>
<el-button type="primary" @click="dataSubmit()"></el-button>
</span>
</el-dialog>
</template>
<script>
import * as api from '@/api/cmmeetingroom.js'
export default {
dicts: ['room_status','seat_layout'],
data () {
return {
visible: false,
dataForm: {
id: 0,
roomName: '' ,
roomLocation: '' ,
capacity: '' ,
totalSeats: '' ,
fixedSeats: '' ,
movableSeats: '' ,
seatLayout: '' ,
equipmentConfig: '' ,
chargeStandard: '' ,
reserveTimeRange: '' ,
fileId: '' ,
roomStatus: '' ,
description: '' ,
remark: '' ,
},
dataRule: {
roomName: [
{ required: true, message: '会议室名称 为必填项', trigger: 'blur' }
],
// roomLocation: [
// { required: true, message: ' ', trigger: 'blur' }
// ],
// capacity: [
// { required: true, message: ' ', trigger: 'blur' }
// ],
// totalSeats: [
// { required: true, message: ' ', trigger: 'blur' }
// ],
// fixedSeats: [
// { required: true, message: ' ', trigger: 'blur' }
// ],
// movableSeats: [
// { required: true, message: ' ', trigger: 'blur' }
// ],
// seatLayout: [
// { required: true, message: '// ', trigger: 'blur' }
// ],
// equipmentConfig: [
// { required: true, message: ' ', trigger: 'blur' }
// ],
// chargeStandard: [
// { required: true, message: ' ', trigger: 'blur' }
// ],
// reserveTimeRange: [
// { required: true, message: ' ', trigger: 'blur' }
// ],
// fileId: [
// { required: true, message: 'id ', trigger: 'blur' }
// ],
roomStatus: [
{ required: true, message: '会议室状态 为必填项', trigger: 'blur' }
],
// description: [
// { required: true, message: ' ', trigger: 'blur' }
// ],
// remark: [
// { required: true, message: ' ', trigger: 'blur' }
// ],
}
}
},
methods: {
init (id) { //
this.dataForm.id = id || 0
this.visible = true
this.$nextTick(function() {
this.$refs['dataForm'].resetFields()
if (this.dataForm.id) {
api.cmmeetingroomDetailApi(id).then(function(res) {
this.dataForm = res;
}.bind(this))
}
}.bind(this))
},
//
dataSubmit () {
this.$refs['dataForm'].validate((valid) => {
if (valid) {
if (this.dataForm.id) {
api.cmmeetingroomUpdateApi(this.dataForm).then(function(res) {
this.$message.success('保存成功')
this.visible = false
this.$emit('refreshDataList')
}.bind(this));
} else {
api.cmmeetingroomCreateApi(this.dataForm).then(function(res) {
this.$message.success('新增成功')
this.visible = false
this.$emit('refreshDataList')
}.bind(this));
}
}
})
}
}
}
</script>

@ -0,0 +1,289 @@
<template>
<div class="divBox">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
<el-form-item label="会议室名称">
<el-input v-model="dataForm.roomName" placeholder="请输入会议室名称" clearable></el-input>
</el-form-item>
<el-form-item label="会议室位置">
<el-input v-model="dataForm.roomLocation" placeholder="请输入会议室位置" clearable></el-input>
</el-form-item>
<el-form-item label="座位布局类型">
<el-input v-model="dataForm.seatLayout" placeholder="请输入座位布局类型" clearable></el-input>
</el-form-item>
<el-form-item label="会议室状态">
<el-input v-model="dataForm.roomStatus" placeholder="请输入会议室状态" clearable></el-input>
</el-form-item>
<el-form-item>
<el-button @click="getDataList()"></el-button>
<el-button @click="resetForm()"></el-button>
<el-button v-hasPermi="['autogencode:cmmeetingroom:save']" type="primary" @click="addOrUpdateHandle()"></el-button>
<el-button v-hasPermi="['autogencode:cmmeetingroom:delete']" type="danger" @click="deleteHandle()" :disabled="dataListSelections.length <= 0"></el-button>
</el-form-item>
</el-form>
<el-table
:data="dataList"
border
v-loading="dataListLoading"
@selection-change="selectionChangeHandle"
style="width: 100%;">
<el-table-column
type="selection"
header-align="center"
align="center"
width="50">
</el-table-column>
<el-table-column
prop="roomName"
header-align="center"
align="center"
label="会议室名称">
</el-table-column>
<el-table-column
prop="roomLocation"
header-align="center"
align="center"
label="会议室位置">
</el-table-column>
<el-table-column
prop="capacity"
header-align="center"
align="center"
label="容纳人数">
</el-table-column>
<el-table-column
prop="totalSeats"
header-align="center"
align="center"
label="总座位数">
</el-table-column>
<el-table-column
prop="fixedSeats"
header-align="center"
align="center"
label="固定座位数">
</el-table-column>
<el-table-column
prop="movableSeats"
header-align="center"
align="center"
label="可移动座位数">
</el-table-column>
<el-table-column
prop="seatLayout"
header-align="center"
align="center"
label="座位布局类型">
</el-table-column>
<el-table-column
prop="equipmentConfig"
header-align="center"
align="center"
label="配套设备">
</el-table-column>
<el-table-column
prop="chargeStandard"
header-align="center"
align="center"
label="收费标准">
</el-table-column>
<el-table-column
prop="reserveTimeRange"
header-align="center"
align="center"
label="可预约时间段">
</el-table-column>
<el-table-column
prop="roomStatus"
header-align="center"
align="center"
label="会议室状态">
</el-table-column>
<el-table-column
prop="description"
header-align="center"
align="center"
label="会议室描述">
</el-table-column>
<el-table-column
prop="remark"
header-align="center"
align="center"
label="备注">
</el-table-column>
<el-table-column
fixed="right"
header-align="center"
align="center"
width="150"
label="操作">
<template slot-scope="scope">
<el-button type="text" size="small" @click="addOrUpdateHandle(scope.row.id)">{{ '' }}</el-button>
<el-button v-hasPermi="['autogencode:cmmeetingroom:delete']" type="text" size="small" @click="deleteHandle(scope.row.id)" style="color: #f56c6c;"></el-button>
</template>
</el-table-column>
</el-table>
<el-pagination
@size-change="sizeChangeHandle"
@current-change="currentChangeHandle"
:current-page="pageIndex"
:page-sizes="[10, 20, 50, 100]"
:page-size="pageSize"
:total="totalPage"
layout="total, sizes, prev, pager, next, jumper">
</el-pagination>
<!-- 表单弹窗, 新增数据和修改数据 -->
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update>
</div>
</template>
<script>
import AddOrUpdate from './cmmeetingroom-add-and-update'
import * as api from '@/api/cmmeetingroom.js'
export default {
dicts: ['room_status','seat_layout'],
data () {
return {
dataForm: {
roomName: '',
roomLocation: '',
capacity: '',
totalSeats: '',
fixedSeats: '',
movableSeats: '',
seatLayout: '',
equipmentConfig: '',
chargeStandard: '',
reserveTimeRange: '',
fileId: '',
roomStatus: '',
description: '',
remark: '',
},
dataList: [],
pageIndex: 1,
pageSize: 10,
totalPage: 0,
dataListLoading: false,
dataListSelections: [],
addOrUpdateVisible: false
}
},
components: {
AddOrUpdate
},
activated () {
this.getDataList()
},
mounted() {
//
this.getDataList()
},
methods: {
//
resetForm() {
this.dataForm = {
roomName: '',
roomLocation: '',
capacity: '',
totalSeats: '',
fixedSeats: '',
movableSeats: '',
seatLayout: '',
equipmentConfig: '',
chargeStandard: '',
reserveTimeRange: '',
fileId: '',
roomStatus: '',
description: '',
remark: '',
}
this.getDataList()
},
//
getDataList () {
this.dataListLoading = true
// CmMeetingRoomControllerPageParamRequest
const params = {
page: this.pageIndex,
limit: this.pageSize
}
//
if (this.dataForm.roomName) params.roomName = this.dataForm.roomName;
if (this.dataForm.roomLocation) params.roomLocation = this.dataForm.roomLocation;
if (this.dataForm.capacity) params.capacity = this.dataForm.capacity;
if (this.dataForm.totalSeats) params.totalSeats = this.dataForm.totalSeats;
if (this.dataForm.fixedSeats) params.fixedSeats = this.dataForm.fixedSeats;
if (this.dataForm.movableSeats) params.movableSeats = this.dataForm.movableSeats;
if (this.dataForm.seatLayout) params.seatLayout = this.dataForm.seatLayout;
if (this.dataForm.equipmentConfig) params.equipmentConfig = this.dataForm.equipmentConfig;
if (this.dataForm.chargeStandard) params.chargeStandard = this.dataForm.chargeStandard;
if (this.dataForm.reserveTimeRange) params.reserveTimeRange = this.dataForm.reserveTimeRange;
if (this.dataForm.fileId) params.fileId = this.dataForm.fileId;
if (this.dataForm.roomStatus) params.roomStatus = this.dataForm.roomStatus;
if (this.dataForm.description) params.description = this.dataForm.description;
if (this.dataForm.remark) params.remark = this.dataForm.remark;
api.cmmeetingroomListApi(params).then(res => {
this.dataListLoading = false
this.dataList = res.list || [];
this.totalPage = res.total;
}).catch(e => {
this.dataListLoading = false
})
},
//
sizeChangeHandle (val) {
this.pageSize = val
this.pageIndex = 1
this.getDataList()
},
//
currentChangeHandle (val) {
this.pageIndex = val
this.getDataList()
},
//
selectionChangeHandle (val) {
this.dataListSelections = val
},
// /
addOrUpdateHandle (id) {
this.addOrUpdateVisible = true
this.$nextTick(() => {
this.$refs.addOrUpdate.init(id)
})
},
//
deleteHandle (id) {
let ids = []
let idText = ''
// id
if (id) {
ids = [id]
idText = id
} else {
//
ids = this.dataListSelections.map(item => {
return item.id
})
idText = ids.join(',')
}
this.$confirm(`确定进行删除操作?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
// API
api.cmmeetingroomDeleteApi(ids).then(res => {
this.$message.success('删除成功')
this.getDataList()
})
})
},
}
}
</script>

@ -7,19 +7,6 @@
<!-- 新增和修改表单 -->
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataSubmit()" label-width="120px">
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="租赁信息" prop="tenantHouseId">
<el-select v-model="dataForm.tenantHouseId" placeholder="请选择租赁信息" :style="{ width: '100%' }" filterable
>
<el-option
v-for="item in tenantHouseList"
:key="item.id"
:label="`${item.houseNames && item.houseNames.length > 0 ? item.houseNames.join(',') : '无房屋'} (${item.rentBeginTime || ''}至${item.rentEndTime || ''})`"
:value="item.id"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="入住类型" prop="userType">
<el-select v-model="dataForm.userType" placeholder="请选择入住类型" :style="{ width: '100%' }">
@ -34,8 +21,6 @@
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="业主/租户" prop="userId">
<el-select v-model="dataForm.userId" placeholder="请选择" :style="{ width: '100%' }" filterable>
@ -62,6 +47,22 @@
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="租赁信息" prop="tenantHouseId">
<el-select v-model="dataForm.tenantHouseId" placeholder="请选择租赁信息" :style="{ width: '100%' }" filterable
:disabled="!dataForm.userType || !dataForm.userId">
<el-option v-if="!dataForm.userType || !dataForm.userId" label="请先选择入住类型和业主/租户" value="" disabled/>
<el-option
v-for="item in tenantHouseList"
:key="item.id"
:label="`${item.houseNames && item.houseNames.length > 0 ? item.houseNames.join(',') : '无房屋'} (${item.rentBeginTime || ''}至${item.rentEndTime || ''})`"
:value="item.id"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="入住日期" prop="checkInDate">
<el-date-picker
@ -200,13 +201,16 @@ export default {
},
watch: {
'dataForm.userType'(newVal) {
// id
//
// IDID
this.dataForm.userId = ''
this.dataForm.tenantHouseId = ''
//
this.getTenantHouseList()
},
'dataForm.userId'() {
// ID
// IDID
this.dataForm.tenantHouseId = ''
//
this.getTenantHouseList()
}
},

@ -0,0 +1,223 @@
package com.zbkj.modules.autogencode.controller;
import java.util.Arrays;
import java.util.Map;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zbkj.common.request.PageParamRequest;
import com.zbkj.common.response.CommonResult;
import com.zbkj.common.page.CommonPage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zbkj.modules.autogencode.entity.CmMeetingRoom;
import com.zbkj.modules.autogencode.service.CmMeetingRoomService;
/**
*
*/
@RestController
@RequestMapping("api/autogencode/cmmeetingroom")
public class CmMeetingRoomController {
@Autowired
private CmMeetingRoomService cmMeetingRoomService;
/**
*
*
*/
private void condition(LambdaQueryWrapper<CmMeetingRoom> queryWrapper, CmMeetingRoom request) {
if (request == null) {
return;
}
// 根据实体类字段自动生成查询条件
// 主键ID
if (request.getId() != null) {
queryWrapper.eq(CmMeetingRoom::getId, request.getId());
}
// 会议室名称
if (StrUtil.isNotBlank(request.getRoomName())) {
queryWrapper.eq(CmMeetingRoom::getRoomName, request.getRoomName());
}
// 会议室位置
if (StrUtil.isNotBlank(request.getRoomLocation())) {
queryWrapper.eq(CmMeetingRoom::getRoomLocation, request.getRoomLocation());
}
// 容纳人数
if (request.getCapacity() != null) {
queryWrapper.eq(CmMeetingRoom::getCapacity, request.getCapacity());
}
// 总座位数
if (request.getTotalSeats() != null) {
queryWrapper.eq(CmMeetingRoom::getTotalSeats, request.getTotalSeats());
}
// 固定座位数
if (request.getFixedSeats() != null) {
queryWrapper.eq(CmMeetingRoom::getFixedSeats, request.getFixedSeats());
}
// 可移动座位数
if (request.getMovableSeats() != null) {
queryWrapper.eq(CmMeetingRoom::getMovableSeats, request.getMovableSeats());
}
// 座位布局类型(圆桌式/剧院式/课桌式等)
if (StrUtil.isNotBlank(request.getSeatLayout())) {
queryWrapper.eq(CmMeetingRoom::getSeatLayout, request.getSeatLayout());
}
// 配套设备
if (StrUtil.isNotBlank(request.getEquipmentConfig())) {
queryWrapper.eq(CmMeetingRoom::getEquipmentConfig, request.getEquipmentConfig());
}
// 收费标准
if (StrUtil.isNotBlank(request.getChargeStandard())) {
queryWrapper.eq(CmMeetingRoom::getChargeStandard, request.getChargeStandard());
}
// 可预约时间段
if (StrUtil.isNotBlank(request.getReserveTimeRange())) {
queryWrapper.eq(CmMeetingRoom::getReserveTimeRange, request.getReserveTimeRange());
}
// 文件id
if (request.getFileId() != null) {
queryWrapper.eq(CmMeetingRoom::getFileId, request.getFileId());
}
// 会议室状态
if (request.getRoomStatus() != null) {
queryWrapper.eq(CmMeetingRoom::getRoomStatus, request.getRoomStatus());
}
// 会议室描述
if (StrUtil.isNotBlank(request.getDescription())) {
queryWrapper.eq(CmMeetingRoom::getDescription, request.getDescription());
}
// 备注
if (StrUtil.isNotBlank(request.getRemark())) {
queryWrapper.eq(CmMeetingRoom::getRemark, request.getRemark());
}
// 删除标志0代表存在 2代表删除
if (StrUtil.isNotBlank(request.getDelFlag())) {
queryWrapper.eq(CmMeetingRoom::getDelFlag, request.getDelFlag());
}
// 创建部门
if (request.getCreateDept() != null) {
queryWrapper.eq(CmMeetingRoom::getCreateDept, request.getCreateDept());
}
// 创建人
if (request.getCreateBy() != null) {
queryWrapper.eq(CmMeetingRoom::getCreateBy, request.getCreateBy());
}
// 创建时间
if (request.getCreateTime() != null) {
queryWrapper.eq(CmMeetingRoom::getCreateTime, request.getCreateTime());
}
// 修改人
if (request.getUpdateBy() != null) {
queryWrapper.eq(CmMeetingRoom::getUpdateBy, request.getUpdateBy());
}
// 修改时间
if (request.getUpdateTime() != null) {
queryWrapper.eq(CmMeetingRoom::getUpdateTime, request.getUpdateTime());
}
// 租户ID
if (StrUtil.isNotBlank(request.getTenantId())) {
queryWrapper.eq(CmMeetingRoom::getTenantId, request.getTenantId());
}
}
/**
*
* @param request
* @param pageParamRequest
*/
@ApiOperation(value = "分页列表")
@RequestMapping(value = "/list", method = RequestMethod.GET)
public CommonResult<CommonPage<CmMeetingRoom>> getList(@Validated CmMeetingRoom request, @Validated PageParamRequest pageParamRequest) {
LambdaQueryWrapper<CmMeetingRoom> queryWrapper = new LambdaQueryWrapper();
// 应用搜索条件
condition(queryWrapper, request);
CommonPage<CmMeetingRoom> page = CommonPage.restPage(cmMeetingRoomService.pageList(queryWrapper, pageParamRequest));
return CommonResult.success(page);
}
/**
*
*/
@RequestMapping(value = "/info/{id}", method = RequestMethod.GET)
public CommonResult<CmMeetingRoom> info(@PathVariable("id") Long id){
CmMeetingRoom cmMeetingRoom = cmMeetingRoomService.getById(id);
return CommonResult.success(cmMeetingRoom);
}
/**
*
*/
@RequestMapping(value = "/save", method = RequestMethod.POST)
public CommonResult<String> save(@RequestBody CmMeetingRoom cmMeetingRoom){
if (cmMeetingRoomService.save(cmMeetingRoom)) {
return CommonResult.success();
}
return CommonResult.failed();
}
/**
*
*/
@RequestMapping(value = "/update", method = RequestMethod.POST)
public CommonResult<String> update(@RequestBody CmMeetingRoom cmMeetingRoom){
if (cmMeetingRoomService.updateById(cmMeetingRoom)) {
return CommonResult.success();
}
return CommonResult.failed();
}
/**
* :id
*/
@RequestMapping(value = "/delete", method = RequestMethod.POST)
public CommonResult<String> delete(@RequestBody Long[] ids){
if (cmMeetingRoomService.removeByIds(Arrays.asList(ids))) {
return CommonResult.success();
}
return CommonResult.failed();
}
}

@ -0,0 +1,13 @@
package com.zbkj.modules.autogencode.dao;
import com.zbkj.modules.autogencode.entity.CmMeetingRoom;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
* DAO
*/
@Mapper
public interface CmMeetingRoomDao extends BaseMapper<CmMeetingRoom> {
}

@ -31,6 +31,7 @@ public class CkBillStock implements Serializable {
*/
@ApiModelProperty(value = "出入库类型")
private String inoutType;
/**
* ID
*/
@ -46,6 +47,36 @@ public class CkBillStock implements Serializable {
*/
@ApiModelProperty(value = "库场名称")
private String stockName;
/**
* ID
*/
@ApiModelProperty(value = "货架ID")
private Long shelfId;
/**
*
*/
@ApiModelProperty(value = "货架代码")
private String shelfCode;
/**
*
*/
@ApiModelProperty(value = "货架名称")
private String shelfName;
/**
* ID
*/
@ApiModelProperty(value = "货位ID")
private Long locationId;
/**
*
*/
@ApiModelProperty(value = "货位代码")
private String locationCode;
/**
*
*/
@ApiModelProperty(value = "货位名称")
private String locationName;
/**
*
*/

@ -0,0 +1,129 @@
package com.zbkj.modules.autogencode.entity;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
@Data
@TableName("cm_meeting_room")
public class CmMeetingRoom implements Serializable {
private static final long serialVersionUID = 1L;
/**
* ID
*/
@ApiModelProperty(value = "主键ID")
@TableId
private Long id;
/**
*
*/
@ApiModelProperty(value = "会议室名称")
private String roomName;
/**
*
*/
@ApiModelProperty(value = "会议室位置")
private String roomLocation;
/**
*
*/
@ApiModelProperty(value = "容纳人数")
private Integer capacity;
/**
*
*/
@ApiModelProperty(value = "总座位数")
private Integer totalSeats;
/**
*
*/
@ApiModelProperty(value = "固定座位数")
private Integer fixedSeats;
/**
*
*/
@ApiModelProperty(value = "可移动座位数")
private Integer movableSeats;
/**
* //
*/
@ApiModelProperty(value = "座位布局类型(圆桌式/剧院式/课桌式等)")
private String seatLayout;
/**
*
*/
@ApiModelProperty(value = "配套设备")
private String equipmentConfig;
/**
*
*/
@ApiModelProperty(value = "收费标准")
private String chargeStandard;
/**
*
*/
@ApiModelProperty(value = "可预约时间段")
private String reserveTimeRange;
/**
* id
*/
@ApiModelProperty(value = "文件id")
private Long fileId;
/**
*
*/
@ApiModelProperty(value = "会议室状态")
private Integer roomStatus;
/**
*
*/
@ApiModelProperty(value = "会议室描述")
private String description;
/**
*
*/
@ApiModelProperty(value = "备注")
private String remark;
/**
* 0 2
*/
@ApiModelProperty(value = "删除标志0代表存在 2代表删除")
private String delFlag;
/**
*
*/
@ApiModelProperty(value = "创建部门")
private Long createDept;
/**
*
*/
@ApiModelProperty(value = "创建人")
private Long createBy;
/**
*
*/
@ApiModelProperty(value = "创建时间")
private Date createTime;
/**
*
*/
@ApiModelProperty(value = "修改人")
private Long updateBy;
/**
*
*/
@ApiModelProperty(value = "修改时间")
private Date updateTime;
/**
* ID
*/
@ApiModelProperty(value = "租户ID")
private String tenantId;
}

@ -0,0 +1,25 @@
package com.zbkj.modules.autogencode.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zbkj.modules.autogencode.entity.CmMeetingRoom;
import com.zbkj.common.request.PageParamRequest;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import java.util.List;
import java.util.Map;
/**
*
* +----------------------------------------------------------------------
*/
public interface CmMeetingRoomService extends IService<CmMeetingRoom> {
/**
* CmMeetingRoom
* @param pageParamRequest
* @return
*/
List<CmMeetingRoom> pageList(LambdaQueryWrapper<CmMeetingRoom> queryWrapper, PageParamRequest pageParamRequest);
}

@ -0,0 +1,42 @@
package com.zbkj.modules.autogencode.service.impl;
import com.github.pagehelper.PageHelper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import com.zbkj.modules.autogencode.dao.CmMeetingRoomDao;
import com.zbkj.modules.autogencode.entity.CmMeetingRoom;
import com.zbkj.modules.autogencode.service.CmMeetingRoomService;
import com.zbkj.common.page.CommonPage;
import com.zbkj.common.request.PageParamRequest;
import javax.annotation.Resource;
import java.util.Map;
import java.util.Arrays;
import java.util.List;
@Service("cmMeetingRoomService")
public class CmMeetingRoomServiceImpl extends ServiceImpl<CmMeetingRoomDao, CmMeetingRoom> implements CmMeetingRoomService {
@Resource
private CmMeetingRoomDao dao;
/**
*
*/
@Override
public List<CmMeetingRoom> pageList(LambdaQueryWrapper<CmMeetingRoom> queryWrapper, PageParamRequest pageParamRequest) {
PageHelper.startPage(pageParamRequest.getPage(), pageParamRequest.getLimit());
return dao.selectList(queryWrapper);
}
}

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zbkj.modules.autogencode.dao.CmMeetingRoomDao">
<!-- 根据包名 模块名 以及类名 生成Mapper XML 配置文件 -->
<resultMap type="com.zbkj.modules.autogencode.entity.CmMeetingRoom" id="cmMeetingRoomMap">
<result property="id" column="id"/>
<result property="roomName" column="room_name"/>
<result property="roomLocation" column="room_location"/>
<result property="capacity" column="capacity"/>
<result property="totalSeats" column="total_seats"/>
<result property="fixedSeats" column="fixed_seats"/>
<result property="movableSeats" column="movable_seats"/>
<result property="seatLayout" column="seat_layout"/>
<result property="equipmentConfig" column="equipment_config"/>
<result property="chargeStandard" column="charge_standard"/>
<result property="reserveTimeRange" column="reserve_time_range"/>
<result property="fileId" column="file_id"/>
<result property="roomStatus" column="room_status"/>
<result property="description" column="description"/>
<result property="remark" column="remark"/>
<result property="delFlag" column="del_flag"/>
<result property="createDept" column="create_dept"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
<result property="tenantId" column="tenant_id"/>
</resultMap>
</mapper>
Loading…
Cancel
Save