From 67b7e64600caedb3b27d9962d5fde67f7ec1d4ea Mon Sep 17 00:00:00 2001 From: dev_ljl <2590379346@qq.com> Date: Sat, 23 Aug 2025 19:25:11 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E5=9B=BE=E7=89=87=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../businessManagement/workOrders/model.d.ts | 10 +- .../src/api/property/clean_order/model.d.ts | 10 ++ .../property/maintenance/knowledge/model.d.ts | 2 + .../api/property/productManagement/model.d.ts | 5 +- .../api/property/resident/person/model.d.ts | 6 ++ .../roomBooking/conferenceSettings/model.d.ts | 17 ++++ .../workOrders/work-orders-detail.vue | 19 +++- .../clean/cleanOrders/clean-modal.vue | 11 ++- .../views/property/clean/cleanOrders/data.ts | 4 +- .../conservationManagement/data.ts | 97 ++++++++++--------- .../plantsProduct-detail.vue | 10 +- .../knowledge/knowledge-detail.vue | 11 ++- .../maintenance/knowledgeBase/index.vue | 13 ++- .../resident/person/person-detail.vue | 12 ++- .../conferenceSettings-detail.vue | 27 ++++-- .../conferenceSettings-modal.vue | 6 ++ .../roomBooking/conferenceSettings/data.ts | 2 +- .../roomBooking/conferenceSettings/index.vue | 4 +- 18 files changed, 191 insertions(+), 75 deletions(-) diff --git a/apps/web-antd/src/api/property/businessManagement/workOrders/model.d.ts b/apps/web-antd/src/api/property/businessManagement/workOrders/model.d.ts index 302bca92..3513eafd 100644 --- a/apps/web-antd/src/api/property/businessManagement/workOrders/model.d.ts +++ b/apps/web-antd/src/api/property/businessManagement/workOrders/model.d.ts @@ -64,7 +64,7 @@ export interface WorkOrdersVO { /** * 评价 */ - serviceEvalua: string; + serviceEvalua: number; /** * 是否超时 @@ -82,6 +82,8 @@ export interface WorkOrdersVO { * 评价图片 */ imgUrl: string; + + evaluateImgPath: string | undefined; /** * 评价内容 */ @@ -99,6 +101,12 @@ export interface WorkOrdersVO { */ orderImgUrl: string; + orderImgPath: string|undefined; + + reportingType: string; + + processingWeight: string; + } export interface HandleRecords { diff --git a/apps/web-antd/src/api/property/clean_order/model.d.ts b/apps/web-antd/src/api/property/clean_order/model.d.ts index 74c0f48d..2b0b6751 100644 --- a/apps/web-antd/src/api/property/clean_order/model.d.ts +++ b/apps/web-antd/src/api/property/clean_order/model.d.ts @@ -144,6 +144,16 @@ export interface Clean_orderForm extends BaseEntity { */ phone?: string; + /** + * 签到图片 + */ + signImgUrl?: string; + + /** + * 评价图片 + */ + imgUrl?: string; + } export interface Clean_orderQuery extends PageQuery { diff --git a/apps/web-antd/src/api/property/maintenance/knowledge/model.d.ts b/apps/web-antd/src/api/property/maintenance/knowledge/model.d.ts index 8f61d24e..2d0262b4 100644 --- a/apps/web-antd/src/api/property/maintenance/knowledge/model.d.ts +++ b/apps/web-antd/src/api/property/maintenance/knowledge/model.d.ts @@ -21,6 +21,8 @@ export interface KnowledgeVO { */ covers: string; + coversPath: string|undefined; + /** * 内容 */ diff --git a/apps/web-antd/src/api/property/productManagement/model.d.ts b/apps/web-antd/src/api/property/productManagement/model.d.ts index 5d611320..0019420c 100644 --- a/apps/web-antd/src/api/property/productManagement/model.d.ts +++ b/apps/web-antd/src/api/property/productManagement/model.d.ts @@ -26,6 +26,8 @@ export interface PropertyVO { */ imgPath: string; + plantImg: string; + /** * 规格 */ @@ -102,7 +104,6 @@ export interface PropertyForm extends BaseEntity { * 备注 */ remark?: string; - } export interface PropertyQuery extends PageQuery { @@ -178,6 +179,8 @@ export interface plantsProduct extends BaseEntity { */ imgPath?: string; + plantImg: string |undefined; + /** * 规格 */ diff --git a/apps/web-antd/src/api/property/resident/person/model.d.ts b/apps/web-antd/src/api/property/resident/person/model.d.ts index 0e3d6e57..1fc4fa44 100644 --- a/apps/web-antd/src/api/property/resident/person/model.d.ts +++ b/apps/web-antd/src/api/property/resident/person/model.d.ts @@ -31,6 +31,8 @@ export interface PersonVO { */ img: string + imgPath?: string + /** * 所属单位id */ @@ -79,6 +81,10 @@ export interface PersonVO { rosterType?: string | number + email?: string + + idCard?: string + } export interface PersonForm extends BaseEntity { diff --git a/apps/web-antd/src/api/property/roomBooking/conferenceSettings/model.d.ts b/apps/web-antd/src/api/property/roomBooking/conferenceSettings/model.d.ts index 10b65829..11d1e48a 100644 --- a/apps/web-antd/src/api/property/roomBooking/conferenceSettings/model.d.ts +++ b/apps/web-antd/src/api/property/roomBooking/conferenceSettings/model.d.ts @@ -67,6 +67,8 @@ export interface MeetVO { * 图片 */ picture: string; + + pictureArr: string[]; /** * 开放时段开始时间 */ @@ -75,6 +77,19 @@ export interface MeetVO { * 开放时段结束时间 */ openEndHours: string; + + /** + * 会议室类型 + */ + meetingRoomType: string; + /** + * 位置 + */ + locationName: string; + /** + * 负责人 + */ + principalsName: string; } export interface MeetForm extends BaseEntity { @@ -161,6 +176,8 @@ export interface MeetForm extends BaseEntity { */ picture: string; + pictureArr: string[]; + /** * 开放时段开始时间 */ diff --git a/apps/web-antd/src/views/property/businessManagement/workOrders/work-orders-detail.vue b/apps/web-antd/src/views/property/businessManagement/workOrders/work-orders-detail.vue index 13517c09..7304f4b5 100644 --- a/apps/web-antd/src/views/property/businessManagement/workOrders/work-orders-detail.vue +++ b/apps/web-antd/src/views/property/businessManagement/workOrders/work-orders-detail.vue @@ -8,6 +8,7 @@ import relativeTime from 'dayjs/plugin/relativeTime'; import {renderDict} from "#/utils/render"; import {workOrdersInfo} from "#/api/property/businessManagement/workOrders"; import type {HandleRecords, WorkOrdersVO} from "#/api/property/businessManagement/workOrders/model"; +import {ossInfo} from "#/api/system/oss"; dayjs.extend(duration); dayjs.extend(relativeTime); @@ -28,12 +29,24 @@ async function handleOpenChange(open: boolean) { modalApi.modalLoading(true); const {id} = modalApi.getData() as { id: number | string }; orderDetail.value = await workOrdersInfo(id); - if(orderDetail.value){ + if(orderDetail.value.workOrdersRecordVoList){ handleRecords.value = orderDetail.value.workOrdersRecordVoList.map( (item, index) => ({ status: item.status, createTime: item.createTime, handlerName: index === 0 ? item.initiatorPeople : item.handlerName })) + } + try { + if (orderDetail.value.orderImgUrl) { + const res = await ossInfo([orderDetail.value.orderImgUrl]); + orderDetail.value.orderImgPath = res?.[0]?.url + } + if (orderDetail.value.imgUrl) { + const res = await ossInfo([orderDetail.value.imgUrl]); + orderDetail.value.evaluateImgPath = res?.[0]?.url + } + } catch (e) { + } modalApi.modalLoading(false); } @@ -101,10 +114,10 @@ async function handleOpenChange(open: boolean) { {{ orderDetail.serviceEvaluaText }} - {{ orderDetail.imgUrl }} + 图片加载失败 - {{ orderDetail.orderImgUrl }} + 图片加载失败 diff --git a/apps/web-antd/src/views/property/clean/cleanOrders/clean-modal.vue b/apps/web-antd/src/views/property/clean/cleanOrders/clean-modal.vue index cc11216f..e5f5c142 100644 --- a/apps/web-antd/src/views/property/clean/cleanOrders/clean-modal.vue +++ b/apps/web-antd/src/views/property/clean/cleanOrders/clean-modal.vue @@ -26,6 +26,7 @@ import cleanDetailModal from './clean-detail-modal.vue'; // import { modalSchema } from './data'; import { communityTree } from '#/api/property/community'; import { getDictOptions } from '#/utils/dict'; +import type {Clean_orderForm} from "#/api/property/clean_order/model"; const emit = defineEmits<{ reload: [] }>(); @@ -190,9 +191,13 @@ const modalSchema = [ { label: '评价图片', fieldName: 'imgUrl', - component: 'Input', + component: 'ImageUpload', + componentProps: { + helpMessage: false, + }, dependencies: { - show: () => (isReadonly.value ? true : false), + show: (formValue:Clean_orderForm) => + isReadonly.value && formValue.imgUrl ? true : false, triggerFields: [''], }, }, @@ -216,7 +221,7 @@ const modalSchema = [ helpMessage: false, }, dependencies: { - show: (formValue) => + show: (formValue:Clean_orderForm) => isReadonly.value && formValue.signImgUrl ? true : false, triggerFields: [''], }, diff --git a/apps/web-antd/src/views/property/clean/cleanOrders/data.ts b/apps/web-antd/src/views/property/clean/cleanOrders/data.ts index b23abae7..52ba873d 100644 --- a/apps/web-antd/src/views/property/clean/cleanOrders/data.ts +++ b/apps/web-antd/src/views/property/clean/cleanOrders/data.ts @@ -74,8 +74,8 @@ export const columns: VxeGridProps['columns'] = [ }, { title: '服务地址', - field: 'location', - width: '180', + field: 'locationName', + width: '260', }, { title: '合计费用(元)', diff --git a/apps/web-antd/src/views/property/greenPlantRentalManagement/conservationManagement/data.ts b/apps/web-antd/src/views/property/greenPlantRentalManagement/conservationManagement/data.ts index 20a6335e..99dde630 100644 --- a/apps/web-antd/src/views/property/greenPlantRentalManagement/conservationManagement/data.ts +++ b/apps/web-antd/src/views/property/greenPlantRentalManagement/conservationManagement/data.ts @@ -89,7 +89,7 @@ export const columns: VxeGridProps['columns'] = [ field: 'inspectResult', slots: { default: ({ row }) => { - return renderDict(row.inspectResult, 'pro_inspection_results'); + return row.inspectResult!=null? renderDict(row.inspectResult, 'pro_inspection_results'):''; }, }, minWidth: '120', @@ -152,6 +152,7 @@ export const modalSchema: FormSchemaGetter = () => [ component: 'Input', rules: 'required', labelWidth: 100, + formItemClass:'col-span-2' }, { label: '服务地点', @@ -160,6 +161,7 @@ export const modalSchema: FormSchemaGetter = () => [ defaultValue: undefined, rules: 'required', labelWidth: 100, + formItemClass:'col-span-2' }, { label: '服务类型', @@ -226,50 +228,51 @@ export const modalSchema: FormSchemaGetter = () => [ rules: 'required', labelWidth: 100, }, - { - label: '巡检结果', - fieldName: 'inspectResult', - component: 'Select', - componentProps: { - options: getDictOptions('pro_inspection_results'), - }, - rules: 'selectRequired', - labelWidth: 100, - }, - { - label: '处理措施', - fieldName: 'measure', - component: 'Textarea', - rules: 'required', - labelWidth: 100, - }, - { - label: '客户评分', - fieldName: 'customerScore', - component: 'Rate', - componentProps: { - allowHalf: false, - count: 5, - tooltips: ['1星', '2星', '3星', '4星', '5星'], - defaultValue: 0, - }, - rules: 'required', - labelWidth: 100, - }, - { - label: '客户反馈', - fieldName: 'customerAdvice', - component: 'Textarea', - labelWidth: 100, - }, - { - label: '处理状态', - fieldName: 'state', - component: 'Select', - componentProps: { - options: getDictOptions('pro_processing_status'), - }, - rules: 'selectRequired', - labelWidth: 100, - }, + // + // { + // label: '巡检结果', + // fieldName: 'inspectResult', + // component: 'Select', + // componentProps: { + // options: getDictOptions('pro_inspection_results'), + // }, + // rules: 'selectRequired', + // labelWidth: 100, + // }, + // { + // label: '处理措施', + // fieldName: 'measure', + // component: 'Textarea', + // rules: 'required', + // labelWidth: 100, + // }, + // { + // label: '客户评分', + // fieldName: 'customerScore', + // component: 'Rate', + // componentProps: { + // allowHalf: false, + // count: 5, + // tooltips: ['1星', '2星', '3星', '4星', '5星'], + // defaultValue: 0, + // }, + // rules: 'required', + // labelWidth: 100, + // }, + // { + // label: '客户反馈', + // fieldName: 'customerAdvice', + // component: 'Textarea', + // labelWidth: 100, + // }, + // { + // label: '处理状态', + // fieldName: 'state', + // component: 'Select', + // componentProps: { + // options: getDictOptions('pro_processing_status'), + // }, + // rules: 'selectRequired', + // labelWidth: 100, + // }, ]; diff --git a/apps/web-antd/src/views/property/greenPlantRentalManagement/productManagement/plantsProduct-detail.vue b/apps/web-antd/src/views/property/greenPlantRentalManagement/productManagement/plantsProduct-detail.vue index 4bde370b..fcc3dbac 100644 --- a/apps/web-antd/src/views/property/greenPlantRentalManagement/productManagement/plantsProduct-detail.vue +++ b/apps/web-antd/src/views/property/greenPlantRentalManagement/productManagement/plantsProduct-detail.vue @@ -5,6 +5,7 @@ import {useVbenModal} from '@vben/common-ui'; import {Descriptions, DescriptionsItem} from 'ant-design-vue'; import {plantsProductInfo} from '#/api/property/productManagement'; import {renderDict} from "#/utils/render"; +import {ossInfo} from "#/api/system/oss"; const [BasicModal, modalApi] = useVbenModal({ onOpenChange: handleOpenChange, @@ -21,8 +22,11 @@ async function handleOpenChange(open: boolean) { } modalApi.modalLoading(true); const {id} = modalApi.getData() as { id: number | string }; - const response = await plantsProductInfo(id); - plantsProductDetail.value = response; + plantsProductDetail.value = await plantsProductInfo(id); + if(plantsProductDetail.value.imgPath){ + const res = await ossInfo([plantsProductDetail.value.imgPath]); + plantsProductDetail.value.plantImg = res?.[0]?.url + } modalApi.modalLoading(false); } @@ -56,7 +60,7 @@ async function handleOpenChange(open: boolean) { /> - + 图片加载失败 {{ plantsProductDetail.remark }} diff --git a/apps/web-antd/src/views/property/maintenance/knowledge/knowledge-detail.vue b/apps/web-antd/src/views/property/maintenance/knowledge/knowledge-detail.vue index 4feb6e43..6b61b52f 100644 --- a/apps/web-antd/src/views/property/maintenance/knowledge/knowledge-detail.vue +++ b/apps/web-antd/src/views/property/maintenance/knowledge/knowledge-detail.vue @@ -8,6 +8,7 @@ import relativeTime from 'dayjs/plugin/relativeTime'; import {renderDict} from "#/utils/render"; import {knowledgeInfo} from "#/api/property/maintenance/knowledge"; import type {KnowledgeVO} from "#/api/property/maintenance/knowledge/model"; +import {ossInfo} from "#/api/system/oss"; dayjs.extend(duration); dayjs.extend(relativeTime); @@ -28,6 +29,14 @@ async function handleOpenChange(open: boolean) { modalApi.modalLoading(true); const {id} = modalApi.getData() as { id: number | string }; knowledgeDetail.value = await knowledgeInfo(id); + if(knowledgeDetail.value.covers){ + try { + const res = await ossInfo([knowledgeDetail.value.covers]); + knowledgeDetail.value.coversPath = res?.[0]?.url; + } catch (e) { + knowledgeDetail.value.coversPath = ''; + } + } modalApi.modalLoading(false); } @@ -50,7 +59,7 @@ async function handleOpenChange(open: boolean) { /> - + 图片加载失败 {{ knowledgeDetail.releaseTime}} diff --git a/apps/web-antd/src/views/property/maintenance/knowledgeBase/index.vue b/apps/web-antd/src/views/property/maintenance/knowledgeBase/index.vue index 7e454509..026a39b3 100644 --- a/apps/web-antd/src/views/property/maintenance/knowledgeBase/index.vue +++ b/apps/web-antd/src/views/property/maintenance/knowledgeBase/index.vue @@ -24,6 +24,7 @@ import {getDictOptions} from "#/utils/dict"; import type {KnowledgeForm, KnowledgeVO} from "#/api/property/maintenance/knowledge/model"; import {renderDict} from "#/utils/render"; import knowledgeDetail from '../knowledge/knowledge-detail.vue'; +import {ossInfo} from "#/api/system/oss"; const simpleImage = Empty.PRESENTED_IMAGE_SIMPLE; const [KnowledgeModal, modalApi] = useVbenModal({ @@ -66,6 +67,16 @@ const handleClean = () => { async function queryPageList() { const res = await knowledgeList(formState) pageList.value = res.rows + for (const item of pageList.value) { + if (item.covers) { + try { + const res = await ossInfo([item.covers]); + item.coversPath = res?.[0]?.url; + } catch (e) { + item.coversPath = ''; + } + } + } total.value = res.total } @@ -132,7 +143,7 @@ async function handleInfo(row: Required) {