综合服务完善

This commit is contained in:
zjf committed 2025-10-10 15:17:02 +08:00
1 parent 0ebd6737fe
commit 2dbce0a362
7 files changed
+110 -26

No files matched your search

+3 -1
View File
@@ -11,7 +11,7 @@
<el-col :span="24" class="mb20">
<el-form-item label="图片" prop="picUrl">
<upload-img v-model="form.picUrl" :disabled="readonly"></upload-img>
<upload-image v-model:imageUrl="form.picUrl" :disabled="readonly" :limit="5" />
</el-form-item>
</el-col>
@@ -59,6 +59,8 @@ import { useDict } from '/@/hooks/dict';
import { useMessage } from "/@/hooks/message";
import { getObj, addObj, putObj } from '/@/api/integrated/feedback'
import { rule } from '/@/utils/validate';
import UploadImage from '/@/components/Upload/Image.vue';
const emit = defineEmits(['refresh']);
// 定义变量内容
+5 -1
View File
@@ -46,7 +46,11 @@
<el-table-column type="selection" width="40" align="center" />
<el-table-column type="index" label="#" width="40" />
<el-table-column prop="title" label="标题" show-overflow-tooltip/>
<el-table-column prop="picUrl" label="图片" show-overflow-tooltip/>
<el-table-column prop="picUrl" label="图片" align="center" width="160px" show-overflow-tooltip>
<template #default="scope">
<preview-image :src="scope.row.picUrl" />
</template>
</el-table-column>
<el-table-column prop="status" label="状态" show-overflow-tooltip>
<template #default="scope">
<dict-tag :options="maintenance_status" :value="scope.row.status"></dict-tag>
@@ -17,7 +17,7 @@
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="图片" prop="picUrl">
<upload-img v-model="form.picUrl" :disabled="readonly"></upload-img>
<upload-img v-model:imageUrl="form.picUrl" :disabled="readonly"></upload-img>
</el-form-item>
</el-col>
@@ -1,72 +1,113 @@
<template>
<el-dialog :title="form.id ? '编辑' : '新增'" v-model="visible"
:close-on-click-modal="false" draggable>
<el-form ref="dataFormRef" :model="form" :rules="dataRules" formDialogRef label-width="90px" v-loading="loading">
:close-on-click-modal="false" draggable width="800px">
<el-form ref="dataFormRef" :model="form" :rules="dataRules" formDialogRef label-width="130px" v-loading="loading">
<el-row :gutter="24">
<el-col :span="12" class="mb20">
<el-form-item label="摆放形式名称" prop="layoutName">
<el-input v-model="form.layoutName" placeholder="请输入摆放形式名称"/>
<el-input v-model="form.layoutName" placeholder="请输入摆放形式名称" clearable/>
</el-form-item>
</el-col>
<el-col :span="12" class="mb20">
<el-form-item label="摆放形式编码" prop="layoutCode">
<el-input v-model="form.layoutCode" placeholder="请输入摆放形式编码"/>
<el-input v-model="form.layoutCode" placeholder="请输入摆放形式编码" clearable/>
</el-form-item>
</el-col>
<el-col :span="12" class="mb20">
<el-col :span="24" class="mb20">
<el-form-item label="摆放形式描述" prop="description">
<el-input v-model="form.description" placeholder="请输入摆放形式描述"/>
<el-input
v-model="form.description"
type="textarea"
:rows="3"
placeholder="请输入摆放形式描述"
maxlength="500"
show-word-limit
clearable/>
</el-form-item>
</el-col>
<el-col :span="12" class="mb20">
<el-form-item label="最小容纳人数" prop="capacityMin">
<el-input v-model="form.capacityMin" placeholder="请输入最小容纳人数"/>
<el-input-number
v-model="form.capacityMin"
:min="1"
:max="9999"
placeholder="请输入最小容纳人数"
controls-position="right"
style="width: 100%"/>
</el-form-item>
</el-col>
<el-col :span="12" class="mb20">
<el-form-item label="最大容纳人数" prop="capacityMax">
<el-input v-model="form.capacityMax" placeholder="请输入最大容纳人数"/>
<el-input-number
v-model="form.capacityMax"
:min="1"
:max="9999"
placeholder="请输入最大容纳人数"
controls-position="right"
style="width: 100%"/>
</el-form-item>
</el-col>
<el-col :span="12" class="mb20">
<el-col :span="24" class="mb20">
<el-form-item label="摆放形式示意图" prop="layoutImage">
<el-input v-model="form.layoutImage" placeholder="请输入摆放形式示意图"/>
<upload-image v-model="form.layoutImage" :limit="1" />
<div class="el-form-item-msg">建议尺寸:800x600px,支持jpg、png格式</div>
</el-form-item>
</el-col>
<el-col :span="12" class="mb20">
<el-form-item label="布置所需时间(分钟)" prop="setupTime">
<el-input v-model="form.setupTime" placeholder="请输入布置所需时间(分钟)"/>
<el-form-item label="布置所需时间" prop="setupTime">
<el-input-number
v-model="form.setupTime"
:min="0"
:max="999"
placeholder="请输入布置所需时间"
controls-position="right"
style="width: 100%">
<template #append>分钟</template>
</el-input-number>
</el-form-item>
</el-col>
<el-col :span="12" class="mb20">
<el-form-item label="是否可用" prop="isAvailable">
<el-radio-group v-model="form.isAvailable">
<el-radio value="0">可用</el-radio>
<el-radio value="1">不可用</el-radio>
<el-radio label="0">可用</el-radio>
<el-radio label="1">不可用</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12" class="mb20">
<el-form-item label="排序" prop="sortOrder">
<el-input v-model="form.sortOrder" placeholder="请输入排序"/>
<el-input-number
v-model="form.sortOrder"
:min="0"
:max="9999"
placeholder="请输入排序"
controls-position="right"
style="width: 100%"/>
</el-form-item>
</el-col>
<el-col :span="12" class="mb20">
<el-col :span="24" class="mb20">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注"/>
<el-input
v-model="form.remark"
type="textarea"
:rows="3"
placeholder="请输入备注"
maxlength="500"
show-word-limit
clearable/>
</el-form-item>
</el-col>
</el-row>
</el-row>
</el-form>
<template #footer>
<span class="dialog-footer">
@@ -82,6 +123,8 @@ import { useDict } from '/@/hooks/dict';
import { useMessage } from "/@/hooks/message";
import { getObj, addObj, putObj } from '/@/api/integrated/meetingDeskLayout'
import { rule } from '/@/utils/validate';
import UploadImage from '/@/components/Upload/Image.vue';
const emit = defineEmits(['refresh']);
// 定义变量内容
@@ -97,18 +140,21 @@ const form = reactive({
layoutName: '',
layoutCode: '',
description: '',
capacityMin: '',
capacityMax: '',
capacityMin: null as number | null,
capacityMax: null as number | null,
layoutImage: '',
setupTime: '',
setupTime: null as number | null,
isAvailable: '0', // 默认可用
sortOrder: '',
sortOrder: 0 as number,
remark: '',
});
// 定义校验规则
const dataRules = ref({
layoutName: [{required: true, message: '摆放形式名称不能为空', trigger: 'blur'}],
layoutCode: [{required: true, message: '摆放形式编码不能为空', trigger: 'blur'}],
capacityMin: [{required: true, message: '最小容纳人数不能为空', trigger: 'change'}],
capacityMax: [{required: true, message: '最大容纳人数不能为空', trigger: 'change'}],
})
// 打开弹窗
@@ -125,6 +171,16 @@ const openDialog = (id: string) => {
if (id) {
form.id = id
getmeetingDeskLayoutData(id)
} else {
// 新增时设置默认值
form.isAvailable = '0'; // 默认可用
form.sortOrder = 0;
form.capacityMin = null;
form.capacityMax = null;
form.setupTime = null;
form.layoutImage = '';
form.description = '';
form.remark = '';
}
};
@@ -162,4 +218,23 @@ const getmeetingDeskLayoutData = (id: string) => {
defineExpose({
openDialog
});
</script>
</script>
<style scoped lang="scss">
.el-form-item-msg {
font-size: 12px;
color: #909399;
line-height: 1.5;
margin-top: 4px;
}
:deep(.el-input-number) {
width: 100%;
}
:deep(.el-textarea) {
.el-textarea__inner {
font-family: inherit;
}
}
</style>
@@ -10,3 +10,4 @@ export { default as ProductRankingTable } from './ProductRankingTable.vue';
@@ -210,3 +210,4 @@ export const SUCCESS_MESSAGES = {
@@ -199,3 +199,4 @@ export const TABLE_CONFIG = {