From f670b79094c95d791fc43c8fc8b5858ebf8426dc Mon Sep 17 00:00:00 2001
From: zhangwencui <1064582902@qq.com>
Date: 星期四, 17 九月 2026 13:50:29 +0800
Subject: [PATCH] 一些向web对齐
---
src/pages/oa/ApproveManage/approve-list/apply.vue | 83 +++++++++++++++++++++++++++++------------
1 files changed, 59 insertions(+), 24 deletions(-)
diff --git a/src/pages/oa/ApproveManage/approve-list/apply.vue b/src/pages/oa/ApproveManage/approve-list/apply.vue
index b529db3..00226a3 100644
--- a/src/pages/oa/ApproveManage/approve-list/apply.vue
+++ b/src/pages/oa/ApproveManage/approve-list/apply.vue
@@ -6,7 +6,6 @@
<view class="approve-apply-page">
<PageHeader :title="pageTitle"
@back="goBack" />
-
<scroll-view class="form-scroll"
scroll-y
:show-scrollbar="false">
@@ -42,7 +41,6 @@
</up-form-item>
</u-cell-group>
</up-form>
-
<view class="section-card">
<view class="section-head">
<text class="section-title">濉姤鍐呭</text>
@@ -121,7 +119,6 @@
</up-form>
<view v-else
class="empty-hint">璇ユā鏉挎殏鏃犲~鎶ラ」</view>
-
<!-- 璇峰亣锛氬亣鏈熶綑棰� + 鏃堕暱鑷姩璁$畻 -->
<view v-if="isLeaveModule"
class="module-extra-block">
@@ -148,7 +145,6 @@
</up-form-item>
</up-form>
</view>
-
<!-- 鍔犵彮锛氭椂闀胯嚜鍔ㄨ绠� -->
<view v-if="isOvertimeModule"
class="module-extra-block">
@@ -166,7 +162,6 @@
</up-form-item>
</up-form>
</view>
-
<!-- 璋冨矖锛氬師宀椾綅鑷姩甯﹀嚭 -->
<view v-if="isTransferModule"
class="module-extra-block">
@@ -182,7 +177,6 @@
</up-form>
</view>
</view>
-
<view class="section-card">
<view class="section-head">
<text class="section-title">瀹℃壒娴佺▼</text>
@@ -234,14 +228,12 @@
text="鏈幏鍙栧埌妯℃澘璇︽儏" />
</view>
</scroll-view>
-
<FooterButtons v-if="!loading && detail"
cancel-text="鍙栨秷"
:confirm-text="confirmText"
:loading="submitting"
@cancel="goBack"
@confirm="handleSubmit" />
-
<up-popup :show="showDatePicker"
mode="bottom"
@close="showDatePicker = false">
@@ -251,7 +243,6 @@
@confirm="onDateConfirm"
@cancel="onDatePickerCancel" />
</up-popup>
-
<up-action-sheet :show="showSelectSheet"
:title="selectSheetTitle"
:actions="selectSheetActions"
@@ -312,9 +303,24 @@
parseFieldDateToTs,
} from "../../_utils/approvalFormField.js";
- import { EDIT_STORAGE_KEY } from "../../_utils/approveListUtils.js";
+ import {
+ EDIT_STORAGE_KEY,
+ mapFlowNodesToTasks,
+ } from "../../_utils/approveListUtils.js";
- const LEVEL_TEXT = ["", "涓�", "浜�", "涓�", "鍥�", "浜�", "鍏�", "涓�", "鍏�", "涔�", "鍗�"];
+ const LEVEL_TEXT = [
+ "",
+ "涓�",
+ "浜�",
+ "涓�",
+ "鍥�",
+ "浜�",
+ "鍏�",
+ "涓�",
+ "鍏�",
+ "涔�",
+ "鍗�",
+ ];
const userStore = useUserStore();
const moduleKey = ref("");
@@ -363,7 +369,9 @@
const isEditMode = computed(() => !!instanceId.value);
const pageTitle = computed(() => (isEditMode.value ? "淇敼瀹℃壒" : "鍙戣捣瀹℃壒"));
- const confirmText = computed(() => (isEditMode.value ? "淇濆瓨淇敼" : "鎻愪氦瀹℃壒"));
+ const confirmText = computed(() =>
+ isEditMode.value ? "淇濆瓨淇敼" : "鎻愪氦瀹℃壒"
+ );
const applicantName = computed(
() => userStore.nickName || userStore.name || "-"
@@ -414,8 +422,10 @@
const levelLabel = n => LEVEL_TEXT[Number(n)] || String(n);
- const selectSheetTitle = computed(
- () => (activeSelectField.value?.label ? `閫夋嫨${activeSelectField.value.label}` : "璇烽�夋嫨")
+ const selectSheetTitle = computed(() =>
+ activeSelectField.value?.label
+ ? `閫夋嫨${activeSelectField.value.label}`
+ : "璇烽�夋嫨"
);
const selectSheetActions = computed(() => {
@@ -466,7 +476,8 @@
});
const matched = options.find(
opt =>
- String(opt.value) === String(stored) || String(opt.label) === String(stored)
+ String(opt.value) === String(stored) ||
+ String(opt.label) === String(stored)
);
return (
matched?.label ||
@@ -547,7 +558,9 @@
const val = formValues[field.key];
if (val === undefined || val === null || String(val).trim() === "") {
const action =
- isSelectField(field) || isDateLikeField(field) || isDatetimerangeField(field)
+ isSelectField(field) ||
+ isDateLikeField(field) ||
+ isDatetimerangeField(field)
? "璇烽�夋嫨"
: "璇峰~鍐�";
uni.showToast({ title: `${action}${field.label}`, icon: "none" });
@@ -569,7 +582,8 @@
options.length &&
!options.some(
opt =>
- String(opt.value) === String(val) || String(opt.label) === String(val)
+ String(opt.value) === String(val) ||
+ String(opt.label) === String(val)
)
) {
uni.showToast({ title: `${field.label}閫夐」鏃犳晥`, icon: "none" });
@@ -602,14 +616,28 @@
formConfigData.value.fields
);
const allFields = formConfigData.value.fields || [];
+ const formPayload = {};
+ allFields.forEach(field => {
+ if (!field?.key) return;
+ formPayload[field.key] = formValues[field.key] ?? "";
+ });
+ Object.entries(formValues).forEach(([key, val]) => {
+ if (key && formPayload[key] === undefined) formPayload[key] = val;
+ });
return JSON.stringify({
- prompt: formConfigData.value.prompt,
- fields: allFields.map(field => ({
- ...field,
- value: formValues[field.key] ?? "",
- })),
+ summaryPlaceholder: formConfigData.value.prompt || "",
+ approvalType: formConfigData.value.approvalType || "",
+ fields: allFields.map(({ value: _value, ...rest }) => rest),
+ formPayload,
});
};
+
+ /** 妯℃澘 nodes 鈫� 瀹℃壒浠诲姟锛堜笌 Web buildInstanceDto 涓�鑷达級 */
+ const buildInstanceTasks = instanceIdValue =>
+ mapFlowNodesToTasks(detail.value?.nodes, {
+ instanceId: instanceIdValue,
+ templateId: detail.value?.id,
+ });
const buildSavePayload = () => ({
templateId: detail.value.id,
@@ -623,6 +651,7 @@
applyTime: parseTime(new Date()),
deptId: userStore.currentDeptId || undefined,
formConfig: buildFormConfigPayload(),
+ tasks: buildInstanceTasks(),
});
const buildUpdatePayload = () => {
@@ -648,6 +677,7 @@
deptId: row.deptId,
deleted: row.deleted,
formConfig: buildFormConfigPayload(),
+ tasks: buildInstanceTasks(instanceId.value),
approveAction: row.approveAction,
approveComment: row.approveComment,
};
@@ -780,7 +810,9 @@
try {
const res = await findPostOptions();
const rows = res?.data ?? res?.rows ?? [];
- postIdToName.value = buildPostIdToNameMap(Array.isArray(rows) ? rows : []);
+ postIdToName.value = buildPostIdToNameMap(
+ Array.isArray(rows) ? rows : []
+ );
} catch {
postIdToName.value = {};
}
@@ -794,7 +826,10 @@
return;
}
const user = userById(transferUserPool.value, uid);
- extraForm.originalPostName = resolveOriginalPostName(user, postIdToName.value);
+ extraForm.originalPostName = resolveOriginalPostName(
+ user,
+ postIdToName.value
+ );
}
const goBack = () => {
--
Gitblit v1.9.3