-
{{ isUpdate ? '编辑植物组合包产品' : isReadonly ? '查看植物组合包产品' : '添加植物组合包产品' }}
+
+ {{
+ isUpdate
+ ? '编辑植物组合包产品'
+ : isReadonly
+ ? '查看植物组合包产品'
+ : '添加植物组合包产品'
+ }}
+
{{ $t('pages.common.add') }}
@@ -204,16 +236,38 @@ function getPlantTypeLabel(value: string | number) {
{{ index + 1 }}
- {{getPlantTypeLabel(record.plantType)}}
+ {{ getPlantTypeLabel(record.plantType) }}
-
-
+
+
-
-
-
-
-
+
From ea667a76bedc2342838345cc3845876225d6cef9 Mon Sep 17 00:00:00 2001
From: FLL <2162874245@qq.com>
Date: Wed, 30 Jul 2025 11:09:51 +0800
Subject: [PATCH 03/13] =?UTF-8?q?=E8=AE=BF=E5=AE=A2=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../visitorManagement/visitorTodo/data.ts | 24 +++++
.../visitorManagement/visitorTodo/index.vue | 34 +++----
.../visitorTodo/visitorTodo-modal.vue | 93 +++++++++++++++++++
3 files changed, 134 insertions(+), 17 deletions(-)
create mode 100644 apps/web-antd/src/views/property/visitorManagement/visitorTodo/visitorTodo-modal.vue
diff --git a/apps/web-antd/src/views/property/visitorManagement/visitorTodo/data.ts b/apps/web-antd/src/views/property/visitorManagement/visitorTodo/data.ts
index ea8ea78e..474139eb 100644
--- a/apps/web-antd/src/views/property/visitorManagement/visitorTodo/data.ts
+++ b/apps/web-antd/src/views/property/visitorManagement/visitorTodo/data.ts
@@ -131,3 +131,27 @@ export const columns: VxeGridProps['columns'] = [
width: 180,
},
];
+
+export const modalSchema: FormSchemaGetter = () => [
+ {
+ label: 'id',
+ fieldName: 'id',
+ component: 'Input',
+ dependencies: {
+ show: () => false,
+ triggerFields: [''],
+ },
+ },
+ {
+ label: '预约状态',
+ fieldName: 'serveStatus',
+ component: 'RadioGroup',
+ componentProps: {
+ options: [
+ { label: '通过', value: 1 },
+ { label: '不通过', value: 2 },
+ ],
+ },
+ rules: 'required',
+ }
+];
diff --git a/apps/web-antd/src/views/property/visitorManagement/visitorTodo/index.vue b/apps/web-antd/src/views/property/visitorManagement/visitorTodo/index.vue
index d9130eef..d456889a 100644
--- a/apps/web-antd/src/views/property/visitorManagement/visitorTodo/index.vue
+++ b/apps/web-antd/src/views/property/visitorManagement/visitorTodo/index.vue
@@ -12,7 +12,11 @@ import {
} from '#/api/property/visitorManagement';
import type { VisitorManagementForm } from '#/api/property/visitorManagement/model';
import visitorTodoDetail from './visitorTodo-detail.vue';
+import visitorTodoModal from './visitorTodo-modal.vue';
import { columns, querySchema } from './data';
+import VisitorInvitationModal
+ from "#/views/property/visitorManagement/visitorInvitation/visitorInvitation-modal.vue";
+import type {AttachForm} from "#/api/property/roomBooking/conferenceAddServices/model";
const formOptions: VbenFormProps = {
commonConfig: {
@@ -68,12 +72,14 @@ async function handleInfo(row: Required
) {
visitorTodoApi.open();
}
-async function handleDelete(row: Required) {
- row.serveStatus=1
- await visitorManagementUpdate(row);
- await tableApi.query();
-}
+const [VisitorTodoModal, modalApi] = useVbenModal({
+ connectedComponent: visitorTodoModal,
+});
+async function handleEdit(row: Required) {
+ modalApi.setData({ id: row.id });
+ modalApi.open();
+}
@@ -86,22 +92,16 @@ async function handleDelete(row: Required) {
>
{{ $t('pages.common.info') }}
-
-
- {{ '审核' }}
-
-
+ {{ '审核' }}
+
+
diff --git a/apps/web-antd/src/views/property/visitorManagement/visitorTodo/visitorTodo-modal.vue b/apps/web-antd/src/views/property/visitorManagement/visitorTodo/visitorTodo-modal.vue
new file mode 100644
index 00000000..04c73b27
--- /dev/null
+++ b/apps/web-antd/src/views/property/visitorManagement/visitorTodo/visitorTodo-modal.vue
@@ -0,0 +1,93 @@
+
+
+
+
+
+
+
+
From e0d55b6ab4a2ac07774502c6656423e0d2f0f9b6 Mon Sep 17 00:00:00 2001
From: fyy <2717885210@qq.com>
Date: Wed, 30 Jul 2025 14:57:42 +0800
Subject: [PATCH 04/13] =?UTF-8?q?feat:=20=E4=BF=AE=E6=94=B9=E5=9C=B0?=
=?UTF-8?q?=E5=9D=80=E6=9F=A5=E8=AF=A2=E5=B1=82=E7=BA=A7?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../clean/cleanOrders/clean-modal.vue | 185 ++++++++------
.../property/clean/cleanOrders/index.vue | 2 +-
.../costMeterWater/costMeterWater-modal.vue | 225 ++++++++++--------
.../houseCharge/houseCharge-add.vue | 164 +++++++------
.../orderMaintain-modal.vue | 17 +-
.../property/resident/unit/unit-modal.vue | 100 ++++----
.../conferenceSettings-modal.vue | 93 ++++----
7 files changed, 440 insertions(+), 346 deletions(-)
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 7a763c7f..3091c3a0 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
@@ -6,7 +6,7 @@ import { computed, ref } from 'vue';
import { useVbenModal } from '@vben/common-ui';
import { $t } from '@vben/locales';
-import { cloneDeep,handleNode,getPopupContainer } from '@vben/utils';
+import { cloneDeep, handleNode, getPopupContainer } from '@vben/utils';
import { Button, Table } from 'ant-design-vue';
import dayjs from 'dayjs';
@@ -43,7 +43,11 @@ const isAudit = ref(false);
const isRefund = ref(false);
const rowData = ref({});
const title = computed(() => {
- return isUpdate.value ? $t('pages.common.edit') : isReadonly.value ? '详情' : $t('pages.common.add');
+ return isUpdate.value
+ ? $t('pages.common.edit')
+ : isReadonly.value
+ ? '详情'
+ : $t('pages.common.add');
});
// 用来缓存 cleanList 的完整数据
@@ -123,9 +127,9 @@ const [BasicModal, modalApi] = useVbenModal({
return null;
}
// 查询服务地址树形结构
- setupCommunitySelect()
+ setupCommunitySelect();
modalApi.modalLoading(true);
- const { id, readonly,audit,refund,row } = modalApi.getData() as {
+ const { id, readonly, audit, refund, row } = modalApi.getData() as {
id?: string;
readonly?: boolean;
audit?: boolean;
@@ -138,9 +142,9 @@ const [BasicModal, modalApi] = useVbenModal({
isRefund.value = !!refund;
rowData.value = row;
//判断是否是编辑状态需要先判断是否是只读状态
- if(isReadonly.value){
+ if (isReadonly.value) {
isUpdate.value = false;
- }else{
+ } else {
isUpdate.value = !!id;
}
if ((isUpdate.value || isReadonly.value) && id) {
@@ -149,9 +153,9 @@ const [BasicModal, modalApi] = useVbenModal({
if (record.endTime) record.endTime = dayjs(record.endTime);
editUnitId.value = record.unitId || '';
detailTable.value = record.cleanList || [];
- for(const item of record.relationList){
- for(let i = 0; i < detailTable.value.length; i++){
- if(item.cleanId === detailTable.value[i].id){
+ for (const item of record.relationList) {
+ for (let i = 0; i < detailTable.value.length; i++) {
+ if (item.cleanId === detailTable.value[i].id) {
detailTable.value[i].area = item.areas;
detailTable.value[i].sumPeices = item.sumPrice;
}
@@ -271,11 +275,11 @@ const detailColumns = [
dataIndex: 'sumPeices',
key: 'sumPeices',
},
- {
- title: '操作',
- key: 'action',
- fixed: 'right' as const,
- },
+ {
+ title: '操作',
+ key: 'action',
+ fixed: 'right' as const,
+ },
];
const [DetailTable, detailTableApi] = useVbenVxeGrid({
@@ -298,7 +302,6 @@ function handleDetailReload(data: any) {
// 编辑订单服务详情
function handleEditDetailReload(data: any) {
detailTable.value[data.index] = data;
-
}
// 删除订单服务详情
function handleDeleteDetail(record: any, index: number) {
@@ -342,11 +345,15 @@ async function handleConfirm() {
data.unit = unitObj ? unitObj.name : data.unit || '';
data.name = cleanObj ? cleanObj.name : data.name || '';
data.unitId = unitObj ? unitObj.id : isUpdate.value ? editUnitId.value : '';
- data.sumPeices = Number(totalSumPeices.value)
+ data.sumPeices = Number(totalSumPeices.value);
data.cleanList = detailTable.value;
- if (data.starTime) data.starTime = dayjs(data.starTime).format('YYYY-MM-DD HH:mm:ss');
- if (data.endTime) data.endTime = dayjs(data.endTime).format('YYYY-MM-DD HH:mm:ss');
- isUpdate.value ? await clean_orderUpdate({...data,id:editCleanOrderId.value}) : await clean_orderAdd(data);
+ if (data.starTime)
+ data.starTime = dayjs(data.starTime).format('YYYY-MM-DD HH:mm:ss');
+ if (data.endTime)
+ data.endTime = dayjs(data.endTime).format('YYYY-MM-DD HH:mm:ss');
+ isUpdate.value
+ ? await clean_orderUpdate({ ...data, id: editCleanOrderId.value })
+ : await clean_orderAdd(data);
resetInitialized();
emit('reload');
modalApi.close();
@@ -359,17 +366,17 @@ async function handleConfirm() {
async function handleClosed() {
await formApi.resetForm();
- detailTable.value = [];//清空详情表格
+ detailTable.value = []; //清空详情表格
resetInitialized();
}
// 获取服务地址
async function setupCommunitySelect() {
- const areaList = await communityTree(5);
+ const areaList = await communityTree(4);
// 选中后显示在输入框的值 即父节点 / 子节点
// addFullName(areaList, 'areaName', ' / ');
const splitStr = '/';
handleNode(areaList, 'label', splitStr, function (node: any) {
- if (node.level != 5) {
+ if (node.level != 4) {
node.disabled = true;
}
});
@@ -399,58 +406,65 @@ async function setupCommunitySelect() {
]);
}
async function handleAudit(params: any) {
- modalApi.lock(true);
- const { valid } = await formApi.validate();
- if (!valid) {
- return;
- }
- const data = cloneDeep(await formApi.getValues());
- if(rowData.value){
+ modalApi.lock(true);
+ const { valid } = await formApi.validate();
+ if (!valid) {
+ return;
+ }
+ const data = cloneDeep(await formApi.getValues());
+ if (rowData.value) {
data.state = rowData.value.state;
data.isUnbooking = rowData.value?.isUnbooking;
- }
- // 单位数据缓存
- if (unitListData.length === 0) {
- const res = await resident_unitList();
- unitListData = res.rows || [];
- }
- // 劳务数据缓存 cleanListData 已有
- // 查找label
- const unitObj = unitListData.find((item) => item.id === data.unitId);
- const cleanObj = cleanListData.find((item) => item.id === data.name);
- data.unit = unitObj ? unitObj.name : data.unit || '';
- data.name = cleanObj ? cleanObj.name : data.name || '';
- data.unitId = unitObj ? unitObj.id : isUpdate.value ? editUnitId.value : '';
- data.sumPeices = Number(totalSumPeices.value)
- data.starTime = dayjs(data.starTime).format('YYYY-MM-DD HH:mm:ss');
- data.endTime = dayjs(data.endTime).format('YYYY-MM-DD HH:mm:ss');
- // data.sumPeices = parseInt(totalSumPeices.value, 10);
- // 组装 cleanIds
- // data.cleanIds = detailTable.value.map((item: any) => item.id);
- data.cleanList = detailTable.value;
- if(params.isRefund){
- data.isUnbooking = 1;
- } else if(params.isAudit){
- data.state = 1;
- }else{
- data.state = 2;
- }
- // 0:未审核 1:审核通过 2:审核不通过
- await clean_orderUpdate({...data,id:editCleanOrderId.value})
- resetInitialized();
- emit('reload');
- modalApi.close();
+ }
+ // 单位数据缓存
+ if (unitListData.length === 0) {
+ const res = await resident_unitList();
+ unitListData = res.rows || [];
+ }
+ // 劳务数据缓存 cleanListData 已有
+ // 查找label
+ const unitObj = unitListData.find((item) => item.id === data.unitId);
+ const cleanObj = cleanListData.find((item) => item.id === data.name);
+ data.unit = unitObj ? unitObj.name : data.unit || '';
+ data.name = cleanObj ? cleanObj.name : data.name || '';
+ data.unitId = unitObj ? unitObj.id : isUpdate.value ? editUnitId.value : '';
+ data.sumPeices = Number(totalSumPeices.value);
+ data.starTime = dayjs(data.starTime).format('YYYY-MM-DD HH:mm:ss');
+ data.endTime = dayjs(data.endTime).format('YYYY-MM-DD HH:mm:ss');
+ // data.sumPeices = parseInt(totalSumPeices.value, 10);
+ // 组装 cleanIds
+ // data.cleanIds = detailTable.value.map((item: any) => item.id);
+ data.cleanList = detailTable.value;
+ if (params.isRefund) {
+ data.isUnbooking = 1;
+ } else if (params.isAudit) {
+ data.state = 1;
+ } else {
+ data.state = 2;
+ }
+ // 0:未审核 1:审核通过 2:审核不通过
+ await clean_orderUpdate({ ...data, id: editCleanOrderId.value });
+ resetInitialized();
+ emit('reload');
+ modalApi.close();
}
-
-
+
-
{{ isUpdate ? '编辑保洁订单详情' : isReadonly ? '查看保洁订单详情' : '添加保洁订单详情' }}
+
+ {{
+ isUpdate
+ ? '编辑保洁订单详情'
+ : isReadonly
+ ? '查看保洁订单详情'
+ : '添加保洁订单详情'
+ }}
+
{{ $t('pages.common.add') }}
@@ -468,10 +482,26 @@ async function handleAudit(params: any) {
查看
-
- 查看
- 编辑
-
+
+ 查看
+ 编辑
+
删除
@@ -480,17 +510,26 @@ async function handleAudit(params: any) {
费用合计:{{ totalSumPeices }}元
-
+
取消
- 审核通过
- 审核不通过
+ 审核通过
+ 审核不通过
取消
- 退定
+ 退定
-
+