This commit is contained in:
FLL
2025-09-05 14:44:35 +08:00
6 changed files with 65 additions and 20 deletions

View File

@@ -90,6 +90,10 @@ export interface MeetVO {
* 负责人
*/
principalsName: string;
/**
* 保密等级
*/
secrecyGrade: string;
}
export interface MeetForm extends BaseEntity {

View File

@@ -63,11 +63,6 @@ export const columns: VxeGridProps['columns'] = [
},
width:120
},
{
title: '客服电话',
field: 'serviceName',
width:120
},
{
field: 'action',
fixed: 'right',
@@ -122,10 +117,10 @@ export const modalSchema: FormSchemaGetter = () => [
},
},
{
label: '客服电话',
fieldName: 'serviceName',
component: 'Input',
rules: 'required',
label: '反馈单位',
fieldName: 'feedbackUnit',
component: 'Select',
rules: 'selectRequired',
},
{
label: '反馈内容',

View File

@@ -18,6 +18,7 @@ import type {FeedbacksVO} from "#/api/property/customerService/feedbacks/model";
import {
workOrdersTypeTree
} from "#/api/property/businessManagement/workOrdersType";
import {resident_unitList} from "#/api/property/resident/unit";
const emit = defineEmits<{ reload: [] }>();
@@ -66,6 +67,7 @@ const [BasicModal, modalApi] = useVbenModal({
const {id} = modalApi.getData() as { id?: number | string };
isUpdate.value = !!id;
await initWorkOrderTypeOption()
await initUnitOption()
if (isUpdate.value && id) {
const record = await feedbacksInfo(id);
detail.value = record
@@ -127,6 +129,25 @@ async function initWorkOrderTypeOption() {
]);
}
async function initUnitOption() {
let params = {
pageSize: 1000,
pageNum: 1
}
const res = await resident_unitList(params)
formApi.updateSchema([{
componentProps: () => ({
options: res.rows,
//开启搜索
showSearch: true,
//数据过滤字段
optionFilterProp: 'name',
//下拉显示字段
fieldNames: {label: 'name', value: 'id'},
}),
fieldName: 'feedbackUnit',
}])
}
</script>
<template>

View File

@@ -5,7 +5,7 @@ export const querySchema: FormSchemaGetter = () => [
{
component: 'Input',
fieldName: 'floorName',
label: '楼层名称',
label: '楼栋号',
},
];
@@ -22,7 +22,7 @@ export const columns: VxeGridProps['columns'] = [
field: 'buildingText',
},
{
title: '楼层名称',
title: '楼栋号',
field: 'floorName',
},
{
@@ -76,11 +76,12 @@ export const modalSchema: FormSchemaGetter = () => [
component: 'TreeSelect',
fieldName: 'buildingId',
defaultValue: undefined,
label: '社区建筑',
label: '建筑名称',
rules: 'selectRequired',
formItemClass:'col-span-2',
},
{
label: '楼层数名称',
label: '楼栋号',
fieldName: 'floorName',
component: 'Input',
rules: 'required',

View File

@@ -54,10 +54,15 @@ async function handleOpenChange(open: boolean) {
{{ conferenceSettingsDetail.name }}
</DescriptionsItem>
<DescriptionsItem label="会议室类型">
<component
<component v-if="conferenceSettingsDetail.meetingRoomType!=null"
:is="renderDict(conferenceSettingsDetail.meetingRoomType,'meeting_room_type')"
/>
</DescriptionsItem>
<DescriptionsItem label="保密等级">
<component v-if="conferenceSettingsDetail.secrecyGrade!=null"
:is="renderDict(conferenceSettingsDetail.secrecyGrade,'wy_hysbmdj')"
/>
</DescriptionsItem>
<DescriptionsItem label="可容纳人数">
{{ conferenceSettingsDetail.personNumber }}
</DescriptionsItem>

View File

@@ -42,7 +42,16 @@ export const columns: VxeGridProps['columns'] = [
field: 'meetingRoomType',
slots: {
default: ({row}) => {
return row.meetingRoomType!=null?renderDict(row.meetingRoomType, 'meeting_room_type'):'';
return row.meetingRoomType!=null?renderDict(row.meetingRoomType, 'meeting_room_type'):'-';
},
},
minWidth:100,
},
{
title: '保密等级',
slots: {
default: ({row}) => {
return row.secrecyGrade!=null?renderDict(row.secrecyGrade, 'wy_hysbmdj'):'-';
},
},
minWidth:100,
@@ -124,6 +133,16 @@ export const modalSchema: FormSchemaGetter = () => [
},
rules: 'selectRequired',
},
{
label: '保密等级',
fieldName: 'secrecyGrade',
component: 'Select',
componentProps: {
options: getDictOptions('wy_hysbmdj'),
},
rules: 'selectRequired',
formItemClass: 'col-span-1',
},
{
label: '可容纳人数',
fieldName: 'personNumber',