2024-02-23 16:52:51 +08:00
|
|
|
|
<template>
|
|
|
|
|
<a-modal
|
2024-03-25 15:45:30 +08:00
|
|
|
|
:title="mdl.id>0?'编辑':'新增'"
|
2024-03-26 14:23:04 +08:00
|
|
|
|
style='top: 20px'
|
2024-03-27 14:49:43 +08:00
|
|
|
|
width='1200px'
|
2024-03-26 14:23:04 +08:00
|
|
|
|
v-model='visible'
|
|
|
|
|
:confirmLoading='confirmLoading'
|
2024-03-07 09:41:32 +08:00
|
|
|
|
|
2024-03-26 14:23:04 +08:00
|
|
|
|
@ok='handleSubmit'
|
2024-02-23 16:52:51 +08:00
|
|
|
|
>
|
2024-03-26 14:23:04 +08:00
|
|
|
|
<a-form :form='form'>
|
|
|
|
|
<a-form-item style='display: none'>
|
2024-02-23 16:52:51 +08:00
|
|
|
|
<a-input v-decorator="['id']" />
|
|
|
|
|
</a-form-item>
|
2024-03-26 14:23:04 +08:00
|
|
|
|
<a-form-item style='display: none'>
|
2024-02-23 16:52:51 +08:00
|
|
|
|
<a-input v-decorator="['version']" />
|
|
|
|
|
</a-form-item>
|
2024-03-07 09:41:32 +08:00
|
|
|
|
|
|
|
|
|
<a-row>
|
2024-03-26 14:23:04 +08:00
|
|
|
|
<a-col :span='10'>
|
2024-09-25 00:22:02 +08:00
|
|
|
|
<a-form-item label='所属楼层' :labelCol='labelCol' :wrapperCol='wrapperCol'>
|
|
|
|
|
<a-select v-decorator="['floor',{rules: [{ required: true, message: '选择所属楼层' }]}]"
|
|
|
|
|
placeholder='所属楼层'>
|
|
|
|
|
<a-select-option v-for='item in typeList' :value='item.value'>
|
|
|
|
|
{{ item.text }}
|
|
|
|
|
</a-select-option>
|
2024-04-02 15:40:03 +08:00
|
|
|
|
</a-select>
|
2024-03-07 09:41:32 +08:00
|
|
|
|
</a-form-item>
|
|
|
|
|
</a-col>
|
2024-03-26 14:23:04 +08:00
|
|
|
|
<a-col :span='10'>
|
2024-09-25 00:22:02 +08:00
|
|
|
|
<a-form-item label='会议室名称' :labelCol='labelCol' :wrapperCol='wrapperCol'>
|
|
|
|
|
<a-input placeholder='会议室名称'
|
|
|
|
|
v-decorator="['name',{rules: [{ required: true, message: '输入会议室名称' }]}]" />
|
2024-03-07 09:41:32 +08:00
|
|
|
|
</a-form-item>
|
|
|
|
|
</a-col>
|
|
|
|
|
|
|
|
|
|
</a-row>
|
|
|
|
|
<a-row>
|
2024-03-26 14:23:04 +08:00
|
|
|
|
<a-col :span='10'>
|
2024-09-25 00:22:02 +08:00
|
|
|
|
<a-form-item label='会议室形式' :labelCol='labelCol' :wrapperCol='wrapperCol'>
|
|
|
|
|
<a-select v-decorator="['typeName',{rules: [{ required: true, message: '选择会议室形式' }]}]"
|
|
|
|
|
placeholder='会议室形式'>
|
|
|
|
|
<a-select-option v-for='item in shapeList' :value='item.value'>
|
|
|
|
|
{{ item.text }}
|
2024-03-07 09:41:32 +08:00
|
|
|
|
</a-select-option>
|
|
|
|
|
</a-select>
|
|
|
|
|
</a-form-item>
|
|
|
|
|
</a-col>
|
2024-03-26 14:23:04 +08:00
|
|
|
|
<a-col :span='10'>
|
2024-09-25 00:22:02 +08:00
|
|
|
|
<a-form-item :labelCol='labelCol' :wrapperCol='wrapperCol' label='所属房间 '>
|
|
|
|
|
<a-input placeholder='所属房间'
|
|
|
|
|
v-decorator="['roomNum',{rules: [{ required: true, message: '输入所属房间' }]}]" />
|
2024-03-07 09:41:32 +08:00
|
|
|
|
</a-form-item>
|
|
|
|
|
</a-col>
|
2024-04-02 15:40:03 +08:00
|
|
|
|
|
2024-09-25 00:22:02 +08:00
|
|
|
|
</a-row>
|
2024-04-02 15:40:03 +08:00
|
|
|
|
<a-row>
|
|
|
|
|
<a-col :span='10'>
|
2024-09-25 00:22:02 +08:00
|
|
|
|
<a-form-item label='会议室面积' :labelCol='labelCol' :wrapperCol='wrapperCol'>
|
|
|
|
|
<a-input placeholder='会议室面积'
|
|
|
|
|
v-decorator="['area',{rules: [{ required: true, message: '请输入会议室面积' }]}]" />
|
2024-04-02 15:40:03 +08:00
|
|
|
|
</a-form-item>
|
|
|
|
|
</a-col>
|
2024-03-26 14:23:04 +08:00
|
|
|
|
<a-col :span='10'>
|
|
|
|
|
<a-form-item label='容纳人数' :labelCol='labelCol' :wrapperCol='wrapperCol'>
|
|
|
|
|
<a-input placeholder='容纳人数'
|
|
|
|
|
v-decorator="['capacityNum',{rules: [{ required: true, message: '输入容纳人数' }]}]" />
|
2024-03-07 09:41:32 +08:00
|
|
|
|
</a-form-item>
|
|
|
|
|
</a-col>
|
2024-04-02 16:02:17 +08:00
|
|
|
|
|
2024-03-07 09:41:32 +08:00
|
|
|
|
</a-row>
|
|
|
|
|
<a-row>
|
2024-03-28 15:37:49 +08:00
|
|
|
|
<a-col :span='10'>
|
2024-09-25 00:22:02 +08:00
|
|
|
|
<a-form-item label='会议室设备' :labelCol='labelCol' :wrapperCol='wrapperCol'>
|
|
|
|
|
<a-checkbox-group :defaultValue='defaultCheckedList'
|
|
|
|
|
v-decorator="['device',{rules: [{ required: true, message: '请选择会议室设备' }]}]">
|
|
|
|
|
<a-checkbox v-for='item in deviceList' :value='item.value'>
|
|
|
|
|
{{ item.text }}
|
|
|
|
|
</a-checkbox>
|
|
|
|
|
</a-checkbox-group>
|
2024-03-28 15:37:49 +08:00
|
|
|
|
</a-form-item>
|
|
|
|
|
</a-col>
|
2024-03-26 14:23:04 +08:00
|
|
|
|
<a-col :span='10'>
|
|
|
|
|
<a-form-item label='是否启用' :labelCol='labelCol' :wrapperCol='wrapperCol'>
|
2024-09-25 00:22:02 +08:00
|
|
|
|
<a-select v-decorator="['enable',{rules: [{ required: true, message: '请选择是否启用'}]}]"
|
2024-03-26 14:23:04 +08:00
|
|
|
|
placeholder='是否启用'>
|
|
|
|
|
<a-select-option :value='0'>
|
|
|
|
|
是
|
|
|
|
|
</a-select-option>
|
|
|
|
|
<a-select-option :value='1'>
|
|
|
|
|
否
|
|
|
|
|
</a-select-option>
|
2024-03-07 09:41:32 +08:00
|
|
|
|
</a-select>
|
|
|
|
|
</a-form-item>
|
|
|
|
|
</a-col>
|
|
|
|
|
</a-row>
|
|
|
|
|
<a-row>
|
2024-03-26 14:23:04 +08:00
|
|
|
|
<a-col :span='10'>
|
2024-03-28 15:17:20 +08:00
|
|
|
|
<a-form-item :labelCol='labelCol' :wrapperCol='wrapperCol' label='会议室描述 '>
|
2024-03-28 15:37:49 +08:00
|
|
|
|
<a-textarea placeholder='会议室描述 ' v-decorator="['content']" style='height: 100px' />
|
2024-03-07 09:41:32 +08:00
|
|
|
|
</a-form-item>
|
|
|
|
|
</a-col>
|
|
|
|
|
</a-row>
|
|
|
|
|
<a-row>
|
2024-03-26 14:23:04 +08:00
|
|
|
|
<a-col :span='10'>
|
2024-03-27 14:49:43 +08:00
|
|
|
|
<a-form-item :labelCol='labelCol' :wrapperCol='wrapperCol' label='室内图片'>
|
2024-03-07 09:41:32 +08:00
|
|
|
|
<a-upload
|
2024-09-25 00:22:02 +08:00
|
|
|
|
v-decorator="['files', {rules: [{ required: true, message: '上传室内图片' }]}]"
|
2024-03-26 14:23:04 +08:00
|
|
|
|
list-type='picture-card'
|
|
|
|
|
class='avatar-uploader'
|
2024-04-08 15:25:44 +08:00
|
|
|
|
:file-list='fileList'
|
2024-03-26 14:23:04 +08:00
|
|
|
|
:action='uploadUrl'
|
|
|
|
|
:headers='headers'
|
2024-04-08 15:25:44 +08:00
|
|
|
|
@preview='handlePreview'
|
|
|
|
|
@change='handleChangeFileList'
|
2024-03-07 09:41:32 +08:00
|
|
|
|
>
|
2024-04-08 15:25:44 +08:00
|
|
|
|
<div v-if='fileList.length < 4'>
|
|
|
|
|
<a-icon type='plus' />
|
2024-03-26 14:23:04 +08:00
|
|
|
|
<div class='ant-upload-text'> 上传</div>
|
2024-03-07 09:41:32 +08:00
|
|
|
|
</div>
|
|
|
|
|
</a-upload>
|
2024-04-08 15:25:44 +08:00
|
|
|
|
<a-modal :visible='previewVisible' :footer='null' @cancel='handleCancel'>
|
|
|
|
|
<img style='width: 100%' :src='previewImage' />
|
|
|
|
|
</a-modal>
|
2024-03-07 09:41:32 +08:00
|
|
|
|
</a-form-item>
|
|
|
|
|
</a-col>
|
|
|
|
|
</a-row>
|
2024-04-08 15:25:44 +08:00
|
|
|
|
|
2024-02-23 16:52:51 +08:00
|
|
|
|
</a-form>
|
|
|
|
|
</a-modal>
|
|
|
|
|
</template>
|
|
|
|
|
<script>
|
2024-03-26 14:23:04 +08:00
|
|
|
|
import {
|
|
|
|
|
saveRoomContent,
|
|
|
|
|
getRoomListByFloorId,
|
2024-09-25 00:22:02 +08:00
|
|
|
|
selectRoomById, getMeetingDict, getRoomInfo
|
2024-03-26 14:23:04 +08:00
|
|
|
|
} from '@/api/admin/meeting/roomContent'
|
2024-02-23 16:52:51 +08:00
|
|
|
|
import pick from 'lodash.pick'
|
|
|
|
|
import storage from 'store'
|
2024-03-07 09:41:32 +08:00
|
|
|
|
import moment from 'moment'
|
2024-02-23 16:52:51 +08:00
|
|
|
|
import { ACCESS_TOKEN } from '@/store/mutation-types'
|
2024-04-02 15:40:03 +08:00
|
|
|
|
import { getInfo } from '@/api/login'
|
|
|
|
|
import { getTenantList } from '@/api/tenant'
|
|
|
|
|
import { getParkList } from '@/api/admin/park'
|
|
|
|
|
import { getBuildingList } from '@/api/admin/building'
|
|
|
|
|
import { getBuildingDetailList } from '@/api/admin/buildingDetail'
|
2024-02-23 16:52:51 +08:00
|
|
|
|
|
|
|
|
|
export default {
|
|
|
|
|
name: 'RoomContentModal',
|
|
|
|
|
props: {},
|
|
|
|
|
components: {},
|
2024-03-26 14:23:04 +08:00
|
|
|
|
data() {
|
2024-02-23 16:52:51 +08:00
|
|
|
|
return {
|
|
|
|
|
visible: false,
|
|
|
|
|
labelCol: {
|
|
|
|
|
xs: { span: 24 },
|
2024-03-27 14:49:43 +08:00
|
|
|
|
sm: { span: 8 }
|
2024-02-23 16:52:51 +08:00
|
|
|
|
},
|
2024-09-25 00:22:02 +08:00
|
|
|
|
// uploadUrl: process.env.VUE_APP_API_BASE_URL + '/api/dfs/upload',
|
|
|
|
|
uploadUrl: process.env.VUE_APP_API_BASE_URL + '/admin/meetingRoom/upload',
|
2024-02-23 16:52:51 +08:00
|
|
|
|
imageUrl: '',
|
|
|
|
|
headers: {
|
|
|
|
|
Authorization: 'Bearer ' + storage.get(ACCESS_TOKEN)
|
|
|
|
|
},
|
|
|
|
|
loading: false,
|
|
|
|
|
wrapperCol: {
|
2024-03-27 14:49:43 +08:00
|
|
|
|
xs: { span: 35 },
|
2024-03-26 14:23:04 +08:00
|
|
|
|
sm: { span: 16 }
|
2024-02-23 16:52:51 +08:00
|
|
|
|
},
|
|
|
|
|
confirmLoading: false,
|
|
|
|
|
mdl: {},
|
2024-03-05 17:23:01 +08:00
|
|
|
|
typeData: [],
|
2024-04-02 15:40:03 +08:00
|
|
|
|
form: this.$form.createForm(this),
|
|
|
|
|
userDetail: {},
|
2024-09-25 00:22:02 +08:00
|
|
|
|
typeList: [],
|
|
|
|
|
shapeList: [],
|
|
|
|
|
deviceList: [],
|
|
|
|
|
typeMap: {},
|
|
|
|
|
shapeMap: {},
|
|
|
|
|
deviceMap: {},
|
|
|
|
|
// tenantList: [], // 地区
|
|
|
|
|
// parkList: [], // 园区
|
|
|
|
|
// buildingList: [], // 楼宇
|
|
|
|
|
// buildingDetailList: [], // 楼层
|
|
|
|
|
// roomList: [], // 房间
|
2024-04-02 15:40:03 +08:00
|
|
|
|
tenantEnable: false,
|
2024-04-08 15:25:44 +08:00
|
|
|
|
parkEnable: false,
|
|
|
|
|
previewVisible: false,
|
|
|
|
|
previewImage: '',
|
|
|
|
|
fileList: []
|
2024-02-23 16:52:51 +08:00
|
|
|
|
}
|
|
|
|
|
},
|
2024-03-26 14:23:04 +08:00
|
|
|
|
beforeCreate() {
|
|
|
|
|
},
|
|
|
|
|
created() {
|
2024-04-02 15:40:03 +08:00
|
|
|
|
|
2024-03-26 14:23:04 +08:00
|
|
|
|
},
|
2024-03-07 09:41:32 +08:00
|
|
|
|
mounted() {
|
2024-09-25 00:22:02 +08:00
|
|
|
|
this.getDict()
|
2024-03-07 09:41:32 +08:00
|
|
|
|
},
|
2024-02-23 16:52:51 +08:00
|
|
|
|
methods: {
|
2024-09-25 00:22:02 +08:00
|
|
|
|
getDict() {
|
|
|
|
|
getMeetingDict().then((res) => {
|
|
|
|
|
// 楼层
|
|
|
|
|
let _typeList = []
|
|
|
|
|
let _typeMap = {}
|
|
|
|
|
let dataObj = res.data
|
|
|
|
|
for (let key in dataObj.floors) {
|
|
|
|
|
let eachObj = dataObj.floors[key]
|
|
|
|
|
const keys = Object.keys(eachObj)
|
|
|
|
|
_typeList.push({
|
|
|
|
|
text: keys[0],
|
|
|
|
|
value: keys[0]
|
2024-04-02 15:40:03 +08:00
|
|
|
|
})
|
2024-09-25 00:22:02 +08:00
|
|
|
|
this.typeMap[keys[0]] = eachObj[keys[0]]
|
|
|
|
|
// this.typeMap.keys[0] = eachObj[keys[0]]
|
2024-04-02 15:40:03 +08:00
|
|
|
|
}
|
2024-03-07 09:41:32 +08:00
|
|
|
|
|
2024-09-25 00:22:02 +08:00
|
|
|
|
this.typeList = _typeList
|
2024-04-02 15:40:03 +08:00
|
|
|
|
|
2024-09-25 00:22:02 +08:00
|
|
|
|
// 形状
|
|
|
|
|
let _shapeList = []
|
|
|
|
|
for (let key in dataObj.types) {
|
|
|
|
|
let eachObj = dataObj.types[key]
|
|
|
|
|
const keys = Object.keys(eachObj)
|
|
|
|
|
_shapeList.push({
|
|
|
|
|
text: keys[0],
|
|
|
|
|
value: keys[0]
|
|
|
|
|
})
|
|
|
|
|
this.shapeMap[keys[0]] = eachObj[keys[0]]
|
|
|
|
|
}
|
|
|
|
|
this.shapeList = _shapeList
|
2024-04-02 15:40:03 +08:00
|
|
|
|
|
2024-09-25 00:22:02 +08:00
|
|
|
|
// 设备
|
|
|
|
|
let _deviceList = []
|
|
|
|
|
for (let key in dataObj.devices) {
|
|
|
|
|
let eachObj = dataObj.devices[key]
|
|
|
|
|
const keys = Object.keys(eachObj)
|
|
|
|
|
_deviceList.push({
|
|
|
|
|
text: keys[0],
|
|
|
|
|
value: keys[0]
|
|
|
|
|
})
|
|
|
|
|
this.deviceMap[keys[0]] = eachObj[keys[0]]
|
|
|
|
|
}
|
|
|
|
|
this.deviceList = _deviceList
|
2024-03-07 09:41:32 +08:00
|
|
|
|
})
|
|
|
|
|
},
|
2024-09-25 00:22:02 +08:00
|
|
|
|
// 获取用户详细信息
|
|
|
|
|
getUserDetail() {
|
|
|
|
|
getInfo().then(res => {
|
|
|
|
|
console.log('getUserDetail', res)
|
|
|
|
|
this.userDetail = res
|
|
|
|
|
// 园区:5
|
|
|
|
|
// if (this.userDetail.roleIds && this.userDetail.roleIds.length > 0 && this.userDetail.roleIds[0] == 5) {
|
|
|
|
|
// //
|
|
|
|
|
// // 判断:是新增就查询园区
|
|
|
|
|
// let { id } = this.mdl
|
|
|
|
|
// if (!id) {
|
|
|
|
|
// // 选择地区 -> 查询园区
|
|
|
|
|
// this.selectTenant(this.userDetail.tenantId)
|
|
|
|
|
// // 选择园区 -> 查询楼宇
|
|
|
|
|
// this.selectPark(this.userDetail.parkId)
|
|
|
|
|
// }
|
|
|
|
|
// //
|
|
|
|
|
// // 不可编辑
|
|
|
|
|
// this.tenantEnable = true
|
|
|
|
|
// this.parkEnable = true
|
|
|
|
|
// // 关联地区和园区
|
|
|
|
|
// this.mdl.parkId = this.userDetail.parkId
|
|
|
|
|
// this.mdl.tenantId = this.userDetail.tenantId
|
|
|
|
|
// this.form.setFieldsValue({
|
|
|
|
|
// parkId: this.mdl.parkId,
|
|
|
|
|
// tenantId: this.mdl.tenantId
|
|
|
|
|
// })
|
|
|
|
|
// }
|
|
|
|
|
console.log(this.mdl)
|
2024-04-02 15:40:03 +08:00
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
moment,
|
|
|
|
|
//
|
2024-04-08 15:25:44 +08:00
|
|
|
|
async handlePreview(file) {
|
|
|
|
|
if (!file.url && !file.preview) {
|
|
|
|
|
file.preview = await getBase64FileList(file.originFileObj)
|
2024-02-23 16:52:51 +08:00
|
|
|
|
}
|
2024-04-08 15:25:44 +08:00
|
|
|
|
this.previewImage = file.url || file.preview
|
|
|
|
|
this.previewVisible = true
|
2024-02-23 16:52:51 +08:00
|
|
|
|
},
|
2024-04-08 15:25:44 +08:00
|
|
|
|
handleCancel() {
|
|
|
|
|
this.previewVisible = false
|
|
|
|
|
},
|
|
|
|
|
// 上传banner
|
|
|
|
|
handleChangeFileList({ fileList }) {
|
|
|
|
|
this.fileList = fileList
|
2024-02-23 16:52:51 +08:00
|
|
|
|
},
|
2024-03-26 14:23:04 +08:00
|
|
|
|
add() {
|
2024-02-23 16:52:51 +08:00
|
|
|
|
this.form.resetFields()
|
2024-04-15 11:29:56 +08:00
|
|
|
|
this.mdl = {}
|
2024-09-25 00:22:02 +08:00
|
|
|
|
this.fileList = []
|
|
|
|
|
this.visible = true
|
2024-02-23 16:52:51 +08:00
|
|
|
|
},
|
2024-09-25 00:22:02 +08:00
|
|
|
|
edit(id) {
|
|
|
|
|
this.form.resetFields()
|
|
|
|
|
this.mdl = {}
|
|
|
|
|
this.fileList = []
|
|
|
|
|
getRoomInfo({ roomId: id }).then((res) => {
|
|
|
|
|
let deviceStr = res.room.device
|
|
|
|
|
if (deviceStr != '') {
|
|
|
|
|
deviceStr = deviceStr.replaceAll(' ', '')
|
|
|
|
|
let deviceArr = deviceStr.split('#')
|
|
|
|
|
if (deviceArr[0] == '') {
|
|
|
|
|
deviceArr.shift()
|
|
|
|
|
}
|
|
|
|
|
res.room.device = deviceArr
|
2024-04-02 15:40:03 +08:00
|
|
|
|
}
|
2024-09-25 00:22:02 +08:00
|
|
|
|
this.mdl = Object.assign(this.mdl, res.room)
|
2024-04-02 15:40:03 +08:00
|
|
|
|
|
2024-09-25 00:22:02 +08:00
|
|
|
|
this.visible = true
|
|
|
|
|
this.$nextTick(() => {
|
|
|
|
|
this.form.setFieldsValue(
|
|
|
|
|
pick(
|
|
|
|
|
this.mdl,
|
|
|
|
|
'id',
|
|
|
|
|
'device',
|
|
|
|
|
'typeName',
|
|
|
|
|
'name',
|
|
|
|
|
'capacityNum',
|
|
|
|
|
'floor',
|
|
|
|
|
'files',
|
|
|
|
|
'startTime',
|
|
|
|
|
'endDate',
|
|
|
|
|
'money',
|
|
|
|
|
'enable',
|
|
|
|
|
'typeName',
|
|
|
|
|
'content',
|
|
|
|
|
'area',
|
|
|
|
|
'roomNum'
|
|
|
|
|
)
|
2024-02-23 16:52:51 +08:00
|
|
|
|
)
|
2024-09-25 00:22:02 +08:00
|
|
|
|
})
|
|
|
|
|
// 图片
|
|
|
|
|
console.log(this.mdl)
|
|
|
|
|
if (this.mdl.imgs) {
|
|
|
|
|
let files = []
|
|
|
|
|
let fileId = []
|
|
|
|
|
for (let key in this.mdl.imgs) {
|
|
|
|
|
let eachObj = this.mdl.imgs[key]
|
|
|
|
|
files.push({
|
|
|
|
|
uid: '0',
|
|
|
|
|
id: eachObj.id,
|
|
|
|
|
url: process.env.VUE_APP_MODEL_BASE_URL + eachObj.url,
|
|
|
|
|
status: 'done',
|
|
|
|
|
name: eachObj.url
|
|
|
|
|
})
|
|
|
|
|
fileId.push(eachObj.id)
|
|
|
|
|
}
|
|
|
|
|
this.fileList = files
|
|
|
|
|
this.mdl.files = fileId
|
|
|
|
|
} else {
|
|
|
|
|
this.fileList = []
|
|
|
|
|
}
|
2024-02-23 16:52:51 +08:00
|
|
|
|
})
|
2024-09-25 00:22:02 +08:00
|
|
|
|
|
|
|
|
|
// // let copyMdl = JSON.parse(JSON.stringify(this.mdl))
|
|
|
|
|
// // 查询地区
|
|
|
|
|
// // this.getTenantData()
|
|
|
|
|
// //
|
|
|
|
|
// if (record.id != 0) { // 编辑
|
|
|
|
|
// } else { // 新增
|
|
|
|
|
// }
|
|
|
|
|
// // 获取用户信息
|
|
|
|
|
// this.getUserDetail()
|
|
|
|
|
|
|
|
|
|
// //
|
|
|
|
|
|
2024-02-23 16:52:51 +08:00
|
|
|
|
},
|
2024-03-26 14:23:04 +08:00
|
|
|
|
handleSubmit(e) {
|
2024-02-23 16:52:51 +08:00
|
|
|
|
e.preventDefault()
|
|
|
|
|
this.form.validateFields((err, values) => {
|
|
|
|
|
if (!err) {
|
|
|
|
|
console.log('Received values of form: ', values)
|
2024-09-25 00:22:02 +08:00
|
|
|
|
this.confirmLoading = false
|
|
|
|
|
|
|
|
|
|
// const indoorPicUrl = []
|
|
|
|
|
const files = []
|
|
|
|
|
|
2024-04-08 15:25:44 +08:00
|
|
|
|
this.fileList.forEach((file, index) => {
|
|
|
|
|
// 添加原来的
|
2024-09-25 00:22:02 +08:00
|
|
|
|
|
|
|
|
|
if (file.hasOwnProperty('url') && file.hasOwnProperty('id')) {
|
|
|
|
|
// indoorPicUrl.push({ 'name': file.name, 'url': file.name, 'id': file.id })
|
|
|
|
|
|
|
|
|
|
files.push(file.id)
|
2024-04-08 15:25:44 +08:00
|
|
|
|
}
|
2024-09-25 00:22:02 +08:00
|
|
|
|
if (file.hasOwnProperty('response') && file.status === 'done' && file.response.code === 0) {
|
2024-04-08 15:25:44 +08:00
|
|
|
|
const data = file.response
|
2024-09-25 00:22:02 +08:00
|
|
|
|
// indoorPicUrl.push({ 'name': data.fileName, 'url': data.fileName, 'uid': index })
|
|
|
|
|
files.push(file.response.id)
|
2024-04-08 15:25:44 +08:00
|
|
|
|
}
|
2024-09-25 00:22:02 +08:00
|
|
|
|
|
2024-04-08 15:25:44 +08:00
|
|
|
|
})
|
2024-09-25 00:22:02 +08:00
|
|
|
|
|
2024-04-08 15:25:44 +08:00
|
|
|
|
// 多个图片
|
2024-09-25 00:22:02 +08:00
|
|
|
|
// values.indoorPicUrl = JSON.stringify(indoorPicUrl)
|
2024-09-25 22:13:53 +08:00
|
|
|
|
// values.files = files
|
2024-09-25 00:22:02 +08:00
|
|
|
|
let deviceArr = values.device
|
|
|
|
|
let deviceStr = ''
|
|
|
|
|
for (let key in deviceArr) {
|
|
|
|
|
let eachObj = deviceArr[key]
|
|
|
|
|
deviceStr += '#' + eachObj + ' '
|
|
|
|
|
}
|
|
|
|
|
values.device = deviceStr
|
|
|
|
|
values.floorId = this.typeMap[values.floor]
|
|
|
|
|
values.typeId = this.shapeMap[values.typeName]
|
2024-09-25 22:13:53 +08:00
|
|
|
|
saveRoomContent(values, files)
|
2024-02-23 16:52:51 +08:00
|
|
|
|
.then((res) => {
|
|
|
|
|
if (res.code === 0) {
|
|
|
|
|
this.$message.success('保存成功')
|
|
|
|
|
this.$emit('ok')
|
|
|
|
|
this.visible = false
|
|
|
|
|
} else {
|
|
|
|
|
this.$message.error(res.msg)
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
.catch(() => {
|
|
|
|
|
this.$message.error('系统错误,请稍后再试')
|
|
|
|
|
})
|
|
|
|
|
.finally(() => {
|
|
|
|
|
this.confirmLoading = false
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
})
|
2024-03-26 14:23:04 +08:00
|
|
|
|
}
|
2024-02-23 16:52:51 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
2024-03-26 14:23:04 +08:00
|
|
|
|
|
|
|
|
|
function getBase64(img, callback) {
|
2024-02-23 16:52:51 +08:00
|
|
|
|
const reader = new FileReader()
|
|
|
|
|
reader.addEventListener('load', () => callback(reader.result))
|
|
|
|
|
reader.readAsDataURL(img)
|
|
|
|
|
}
|
|
|
|
|
</script>
|
2024-03-07 09:41:32 +08:00
|
|
|
|
|
|
|
|
|
<style scoped>
|
2024-03-26 14:23:04 +08:00
|
|
|
|
.self-item-cell {
|
2024-03-07 09:41:32 +08:00
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
align-items: center;
|
|
|
|
|
}
|
|
|
|
|
|
2024-03-26 14:23:04 +08:00
|
|
|
|
.self-item-cell .self-item {
|
2024-03-07 09:41:32 +08:00
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: flex-start;
|
|
|
|
|
align-items: center;
|
|
|
|
|
width: 50%;
|
|
|
|
|
}
|
|
|
|
|
|
2024-03-26 14:23:04 +08:00
|
|
|
|
.self-item-cell .self-item:first-of-type {
|
2024-03-07 09:41:32 +08:00
|
|
|
|
margin-right: 10px;
|
|
|
|
|
}
|
|
|
|
|
|
2024-03-26 14:23:04 +08:00
|
|
|
|
.self-item-cell .self-item .title {
|
2024-03-07 09:41:32 +08:00
|
|
|
|
margin-right: 10px;
|
|
|
|
|
}
|
|
|
|
|
|
2024-03-26 14:23:04 +08:00
|
|
|
|
.self-item-cell .self-item .input {
|
2024-03-07 09:41:32 +08:00
|
|
|
|
flex: 1;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
</style>
|