保存视觉审核与文档流迁移进度

This commit is contained in:
rain
2026-07-20 17:23:09 +08:00
parent 5a31a75da0
commit 01d246c47b
59 changed files with 3615 additions and 378 deletions
+39 -23
View File
@@ -142,7 +142,7 @@
block
:type="moduleState === 'error' ? 'secondary' : 'primary'"
:label="stateCopy.action"
@click="moduleState = 'ready'"
@click="handleStateAction"
/>
</view>
</view>
@@ -212,9 +212,11 @@ const normalizedNote = computed(() =>
);
const normalizedSectionCopy = (copy) =>
String(copy || "").replace(/待接入|功能待接入/g, "后续功能阶段开放");
const stateCopy = computed(
() =>
({
const stateCopy = computed(() => {
const pageState = page.value.states?.[moduleState.value];
if (pageState) return pageState;
return (
{
empty: {
eyebrow: "暂无内容",
title: `还没有${page.value.title}记录`,
@@ -233,8 +235,16 @@ const stateCopy = computed(
copy: "请稍后重新进入,现有资料不会受到影响。",
action: "重新查看",
},
})[moduleState.value] || {},
);
}[moduleState.value] || {}
);
});
const handleStateAction = () => {
if (stateCopy.value.actionMode === "back") {
uni.navigateBack();
return;
}
moduleState.value = "ready";
};
const completeAction = () => {
moduleState.value = "success";
};
@@ -308,8 +318,14 @@ onUnmounted(() => {
}
.form-row {
position: relative;
height: 84rpx;
display: grid;
grid-template-columns: auto minmax(0, 1fr);
min-height: 84rpx;
align-items: center;
gap: 22rpx;
margin-top: 14rpx;
padding: 14rpx 26rpx;
box-sizing: border-box;
}
.form-row image,
.detail-card image,
@@ -320,27 +336,24 @@ onUnmounted(() => {
inset: 0;
width: 100%;
height: 100%;
pointer-events: none;
}
.form-row > text {
position: absolute;
top: 28rpx;
left: 26rpx;
position: relative;
z-index: 1;
color: $ink;
font-size: 24rpx;
font-weight: 700;
}
.form-row input {
position: absolute;
top: 0;
right: 22rpx;
bottom: 0;
left: 178rpx;
position: relative;
z-index: 1;
height: 84rpx;
width: 100%;
min-width: 0;
height: 56rpx;
color: $ink;
font-size: 23rpx;
line-height: 84rpx;
text-align: right;
}
.form-placeholder {
color: #9e8e79;
@@ -448,13 +461,18 @@ onUnmounted(() => {
}
.settings-row {
position: relative;
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
min-height: 94rpx;
align-items: center;
gap: 20rpx;
margin-top: 14rpx;
padding: 20rpx 28rpx 18rpx 26rpx;
box-sizing: border-box;
}
.settings-row > view {
position: relative;
z-index: 1;
padding: 20rpx 98rpx 18rpx 26rpx;
}
.settings-row > view text:first-child {
color: $ink;
@@ -467,9 +485,7 @@ onUnmounted(() => {
font-size: 21rpx;
}
.settings-row > text {
position: absolute;
top: 34rpx;
right: 28rpx;
position: relative;
z-index: 1;
color: $brand-red;
font-size: 21rpx;
@@ -540,8 +556,8 @@ onUnmounted(() => {
padding-right: 20rpx;
padding-left: 20rpx;
}
.form-row input {
left: 162rpx;
.form-row {
gap: 14rpx;
}
.status-card__body {
padding-right: 44rpx;
+16 -2
View File
@@ -1,5 +1,6 @@
<!-- 公共组件根页朱砂页头与普通返回页头根页背景图层由统一基础资产提供 -->
<template>
<view class="page-header-slot" :class="{ 'page-header-slot--root': root }">
<view class="page-header" :class="{ 'page-header--root': root }">
<!-- 根页头部使用不透明朱砂底图与透明祠堂线稿两层完整资产 -->
<image
@@ -56,6 +57,7 @@
}}</view>
</view>
</view>
</view>
</template>
<script setup>
@@ -70,7 +72,21 @@ const goBack = () => uni.navigateBack();
</script>
<style scoped lang="scss">
.page-header-slot {
height: 104rpx;
flex: none;
}
.page-header-slot--root {
height: calc(124rpx + var(--status-bar-height, 0px));
}
.page-header {
position: fixed;
top: 0;
right: 0;
left: 0;
z-index: 30;
display: flex;
align-items: center;
height: 104rpx;
@@ -81,8 +97,6 @@ const goBack = () => uni.navigateBack();
}
.page-header--root {
position: relative;
z-index: 3;
height: calc(124rpx + var(--status-bar-height, 0px));
padding-top: var(--status-bar-height, 0px);
background-color: #b52e22;
+22 -15
View File
@@ -219,19 +219,22 @@ const showConflictHelp = () => {
position: relative;
z-index: 2;
width: calc(100% - 32rpx);
height: min(640px, calc((100vw - 16px) * 1.48));
min-height: min(640px, calc((100vw - 16px) * 1.48));
margin: 18rpx auto 0;
padding: 7.5% 8%;
box-sizing: border-box;
}
.member-form-panel__skin {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
pointer-events: none;
}
.member-form,
.member-form-result {
position: absolute;
inset: 7.5% 8%;
position: relative;
z-index: 1;
}
.member-form__eyebrow {
display: block;
@@ -256,35 +259,38 @@ const showConflictHelp = () => {
}
.member-field {
position: relative;
height: 78rpx;
display: grid;
grid-template-columns: auto minmax(0, 1fr);
min-height: 78rpx;
align-items: center;
gap: 20rpx;
margin-top: 12rpx;
padding: 12rpx 22rpx;
box-sizing: border-box;
}
.member-field image {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
pointer-events: none;
}
.member-field > text {
position: absolute;
top: 27rpx;
left: 22rpx;
position: relative;
z-index: 1;
color: $ink;
font-size: 24rpx;
font-weight: 700;
}
.member-field input {
position: absolute;
top: 0;
right: 18rpx;
bottom: 0;
left: 164rpx;
position: relative;
z-index: 1;
height: 78rpx;
width: 100%;
min-width: 0;
height: 54rpx;
color: $ink;
font-size: 24rpx;
line-height: 78rpx;
text-align: right;
}
.member-placeholder {
color: #a79884;
@@ -308,6 +314,7 @@ const showConflictHelp = () => {
inset: 0;
width: 100%;
height: 100%;
pointer-events: none;
}
.member-form-action text {
position: relative;
@@ -324,7 +331,7 @@ const showConflictHelp = () => {
color: $ink;
}
.member-form-result {
top: 29%;
margin-top: 21.5%;
text-align: center;
}
.member-form-result .member-form__eyebrow {