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) {
+ :src="item.coversPath"/>
diff --git a/apps/web-antd/src/views/property/resident/person/person-detail.vue b/apps/web-antd/src/views/property/resident/person/person-detail.vue
index a17c5b9f..c4142a89 100644
--- a/apps/web-antd/src/views/property/resident/person/person-detail.vue
+++ b/apps/web-antd/src/views/property/resident/person/person-detail.vue
@@ -9,14 +9,15 @@ import duration from 'dayjs/plugin/duration';
import relativeTime from 'dayjs/plugin/relativeTime';
import {personInfo} from '#/api/property/resident/person';
-import type {Person} from "#/api/property/resident/person/model";
+import type {PersonVO} from "#/api/property/resident/person/model";
import {accessControlColumns,carColumns} from "#/views/property/resident/person/data";
import {renderDict, renderDictValue} from "#/utils/render";
+import {ossInfo} from "#/api/system/oss";
dayjs.extend(duration);
dayjs.extend(relativeTime);
-const personDetail = shallowRef(null);
+const personDetail = shallowRef(null);
const [BasicModal, modalApi] = useVbenModal({
onOpenChange: handleOpenChange,
@@ -38,7 +39,10 @@ async function handleOpenChange(open: boolean) {
const {id} = modalApi.getData() as { id: number | string };
// 赋值
personDetail.value = await personInfo(id);
-
+ if(personDetail.value.img){
+ const res = await ossInfo([personDetail.value.img]);
+ personDetail.value.imgPath = res?.[0]?.url
+ }
modalApi.modalLoading(false);
}
@@ -64,7 +68,7 @@ async function handleOpenChange(open: boolean) {
- {{ personDetail.img }}
+
{{ personDetail.time}}
diff --git a/apps/web-antd/src/views/property/roomBooking/conferenceSettings/conferenceSettings-detail.vue b/apps/web-antd/src/views/property/roomBooking/conferenceSettings/conferenceSettings-detail.vue
index 37046e88..928a9594 100644
--- a/apps/web-antd/src/views/property/roomBooking/conferenceSettings/conferenceSettings-detail.vue
+++ b/apps/web-antd/src/views/property/roomBooking/conferenceSettings/conferenceSettings-detail.vue
@@ -1,6 +1,6 @@
@@ -56,7 +69,7 @@ async function handleOpenChange(open: boolean) {
{{ conferenceSettingsDetail.baseService }}
- {{ conferenceSettingsDetail.principalsName+'-'+conferenceSettingsDetail.phoneNo }}
+ {{ conferenceSettingsDetail.principalsName + '-' + conferenceSettingsDetail.phoneNo }}
- {{ conferenceSettingsDetail.picture }}
+
+
![图片加载失败]()
+
- {{ conferenceSettingsDetail.openStartHours+'-'+ conferenceSettingsDetail.openEndHours}}
+ {{ conferenceSettingsDetail.openStartHours + '-' + conferenceSettingsDetail.openEndHours }}
{{ conferenceSettingsDetail.descs }}
diff --git a/apps/web-antd/src/views/property/roomBooking/conferenceSettings/conferenceSettings-modal.vue b/apps/web-antd/src/views/property/roomBooking/conferenceSettings/conferenceSettings-modal.vue
index 705c0e54..87e534c0 100644
--- a/apps/web-antd/src/views/property/roomBooking/conferenceSettings/conferenceSettings-modal.vue
+++ b/apps/web-antd/src/views/property/roomBooking/conferenceSettings/conferenceSettings-modal.vue
@@ -78,6 +78,9 @@ const [BasicModal, modalApi] = useVbenModal({
if (record.openStartHours&&record.openEndHours) {
record.openHours = [dayjs(record.openStartHours, 'HH:mm'), dayjs(record.openEndHours, 'HH:mm')];
}
+ if(record.picture){
+ record.pictureArr=record.picture.split(';',)
+ }
await formApi.setValues(record);
}
await markInitialized();
@@ -99,6 +102,9 @@ async function handleConfirm() {
data.openStartHours=data.openHours[0]?.format('HH:mm');
data.openEndHours=data.openHours[1]?.format('HH:mm');
}
+ if(data.pictureArr){
+ data.picture=data.pictureArr.join(';',)
+ }
await (isUpdate.value ? meetUpdate(data) : meetAdd(data));
resetInitialized();
emit('reload');
diff --git a/apps/web-antd/src/views/property/roomBooking/conferenceSettings/data.ts b/apps/web-antd/src/views/property/roomBooking/conferenceSettings/data.ts
index a3761cde..1c829d53 100644
--- a/apps/web-antd/src/views/property/roomBooking/conferenceSettings/data.ts
+++ b/apps/web-antd/src/views/property/roomBooking/conferenceSettings/data.ts
@@ -184,7 +184,7 @@ export const modalSchema: FormSchemaGetter = () => [
},
{
label: '会议室图片',
- fieldName: 'picture',
+ fieldName: 'pictureArr',
component: 'ImageUpload',
componentProps: {
maxCount: 10, // 最大上传文件数 默认为1 为1会绑定为string而非string[]类型
diff --git a/apps/web-antd/src/views/property/roomBooking/conferenceSettings/index.vue b/apps/web-antd/src/views/property/roomBooking/conferenceSettings/index.vue
index 04028926..88291ab5 100644
--- a/apps/web-antd/src/views/property/roomBooking/conferenceSettings/index.vue
+++ b/apps/web-antd/src/views/property/roomBooking/conferenceSettings/index.vue
@@ -163,8 +163,8 @@ const { hasAccessByCodes } = useAccess();