fix(mobile): 审批弹窗加大字号、补请假天数并缩小意见框
同步请假类型下线外出/回家、新增临时回寝的安全 SQL(历史单不迁移)。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
1 parent
15ed3ec9fb
commit
b26bf58744
2 files changed
+184
-7
No files matched your search
@@ -0,0 +1,168 @@
|
||||
-- =============================================================================
|
||||
-- 请假类型调整:下线「外出请假」「回家请假」,新增「临时回寝」
|
||||
-- 日期:2026-10-21
|
||||
--
|
||||
-- 客户确认策略:
|
||||
-- - 历史请假单:不改类型(仍显示原「外出请假」「回家请假」)
|
||||
-- - 新建/编辑可选列表:不再出现外出、回家;可选择「临时回寝」
|
||||
--
|
||||
-- 影响表:仅 xg_leave_type_config
|
||||
-- 1) 旧类型:软删除 deleted=1 + 关闭 is_enabled=0(不物理删)
|
||||
-- 2) 新增:临时回寝 TEMP_BACK_DORM
|
||||
--
|
||||
-- 不碰:xg_student_leave(历史业务数据零修改)
|
||||
--
|
||||
-- 执行顺序:
|
||||
-- ① 只跑「一、执行前核查」
|
||||
-- ② 确认后跑「二、变更」
|
||||
-- ③ 「三、验收」通过再 COMMIT,否则 ROLLBACK
|
||||
-- =============================================================================
|
||||
|
||||
-- -----------------------------------------------------------------------------
|
||||
-- 一、执行前核查(只读)
|
||||
-- -----------------------------------------------------------------------------
|
||||
|
||||
-- 1.1 当前类型配置
|
||||
SELECT
|
||||
id,
|
||||
leave_type_code,
|
||||
leave_type_name,
|
||||
is_enabled,
|
||||
deleted,
|
||||
sort_order
|
||||
FROM xg_leave_type_config
|
||||
ORDER BY sort_order, id;
|
||||
|
||||
-- 1.2 将被下线的配置(预期:外出 / 回家)
|
||||
SELECT id, leave_type_code, leave_type_name, is_enabled, deleted
|
||||
FROM xg_leave_type_config
|
||||
WHERE deleted = 0
|
||||
AND (
|
||||
leave_type_code IN ('OUT_LEAVE', 'HOME_LEAVE')
|
||||
OR leave_type_name IN ('外出请假', '回家请假')
|
||||
);
|
||||
|
||||
-- 1.3 历史单仍保留旧类型(本脚本不会改这些行,仅供对照)
|
||||
SELECT leave_type_code, leave_type_name, COUNT(*) AS cnt
|
||||
FROM xg_student_leave
|
||||
WHERE deleted = 0
|
||||
AND (
|
||||
leave_type_code IN ('OUT_LEAVE', 'HOME_LEAVE')
|
||||
OR leave_type_name IN ('外出请假', '回家请假')
|
||||
)
|
||||
GROUP BY leave_type_code, leave_type_name;
|
||||
|
||||
-- =============================================================================
|
||||
-- 二、变更(事务)
|
||||
-- =============================================================================
|
||||
|
||||
START TRANSACTION;
|
||||
|
||||
-- 2.1 新增「临时回寝」(幂等:已有同编码或同名称则跳过)
|
||||
INSERT INTO xg_leave_type_config (
|
||||
id,
|
||||
tenant_id,
|
||||
create_dept,
|
||||
create_by,
|
||||
create_time,
|
||||
update_by,
|
||||
update_time,
|
||||
deleted,
|
||||
leave_type_name,
|
||||
leave_type_code,
|
||||
leave_type_desc,
|
||||
sort_order,
|
||||
need_location_on_apply,
|
||||
need_photo_on_cancel,
|
||||
need_location_on_cancel,
|
||||
need_cancel_for_non_leave,
|
||||
can_apply_in_advance,
|
||||
is_enabled,
|
||||
max_apply_duration,
|
||||
cancel_overdue_reminder
|
||||
)
|
||||
SELECT
|
||||
2026102111360000001,
|
||||
'000000',
|
||||
103,
|
||||
1,
|
||||
NOW(),
|
||||
1,
|
||||
NOW(),
|
||||
0,
|
||||
'临时回寝',
|
||||
'TEMP_BACK_DORM',
|
||||
'临时回寝请假(替换原外出请假、回家请假选项;历史单类型不迁移)',
|
||||
3,
|
||||
'1',
|
||||
'1',
|
||||
'1',
|
||||
'1',
|
||||
'1',
|
||||
'1',
|
||||
24.00,
|
||||
2.00
|
||||
FROM DUAL
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM xg_leave_type_config t
|
||||
WHERE t.leave_type_code = 'TEMP_BACK_DORM'
|
||||
OR t.leave_type_name = '临时回寝'
|
||||
);
|
||||
|
||||
-- 若主键冲突:ROLLBACK 后换未占用 id 再执行
|
||||
-- SELECT id FROM xg_leave_type_config WHERE id = 2026102111360000001;
|
||||
|
||||
-- 2.2 下线旧类型:软删 + 关闭(学生端列表按未删除且启用过滤,即选不到)
|
||||
UPDATE xg_leave_type_config
|
||||
SET
|
||||
deleted = 1,
|
||||
is_enabled = '0',
|
||||
update_by = 1,
|
||||
update_time = NOW(),
|
||||
leave_type_desc = CONCAT(
|
||||
IFNULL(leave_type_desc, ''),
|
||||
'【2026-10-21 已下线,新建请选临时回寝;历史数据保留原类型】'
|
||||
)
|
||||
WHERE deleted = 0
|
||||
AND (
|
||||
leave_type_code IN ('OUT_LEAVE', 'HOME_LEAVE')
|
||||
OR leave_type_name IN ('外出请假', '回家请假')
|
||||
);
|
||||
|
||||
-- -----------------------------------------------------------------------------
|
||||
-- 三、执行后验收(事务内)
|
||||
-- -----------------------------------------------------------------------------
|
||||
|
||||
-- 3.1 临时回寝应存在且启用
|
||||
SELECT id, leave_type_code, leave_type_name, is_enabled, deleted
|
||||
FROM xg_leave_type_config
|
||||
WHERE leave_type_code = 'TEMP_BACK_DORM'
|
||||
OR leave_type_name = '临时回寝';
|
||||
|
||||
-- 3.2 外出/回家应已软删关闭
|
||||
SELECT id, leave_type_code, leave_type_name, is_enabled, deleted
|
||||
FROM xg_leave_type_config
|
||||
WHERE leave_type_code IN ('OUT_LEAVE', 'HOME_LEAVE')
|
||||
OR leave_type_name IN ('外出请假', '回家请假');
|
||||
|
||||
-- 3.3 学生端可选类型(deleted=0 且 is_enabled=1):应有临时回寝,无外出/回家
|
||||
SELECT leave_type_code, leave_type_name, sort_order, is_enabled, deleted
|
||||
FROM xg_leave_type_config
|
||||
WHERE deleted = 0
|
||||
AND is_enabled = '1'
|
||||
ORDER BY sort_order, id;
|
||||
|
||||
-- 3.4 历史单旧类型条数应与执行前 1.3 一致(证明业务表未被改动)
|
||||
SELECT leave_type_code, leave_type_name, COUNT(*) AS cnt
|
||||
FROM xg_student_leave
|
||||
WHERE deleted = 0
|
||||
AND (
|
||||
leave_type_code IN ('OUT_LEAVE', 'HOME_LEAVE')
|
||||
OR leave_type_name IN ('外出请假', '回家请假')
|
||||
)
|
||||
GROUP BY leave_type_code, leave_type_name;
|
||||
|
||||
-- ========== 确认后 ==========
|
||||
-- COMMIT;
|
||||
-- 或 ROLLBACK;
|
||||
@@ -33,6 +33,10 @@
|
||||
<text class="leave-summary-label">结束时间</text>
|
||||
<text class="leave-summary-value">{{ formatLeaveDateTime(leaveInfo.endTime) }}</text>
|
||||
</view>
|
||||
<view class="leave-summary-row">
|
||||
<text class="leave-summary-label">请假天数</text>
|
||||
<text class="leave-summary-value">{{ formatLeaveDuration(leaveInfo.leaveDuration) }}</text>
|
||||
</view>
|
||||
<view class="leave-summary-row">
|
||||
<text class="leave-summary-label">是否离校</text>
|
||||
<text class="leave-summary-value">{{ formatLeaveSchool(leaveInfo.isLeaveSchool) }}</text>
|
||||
@@ -106,7 +110,7 @@
|
||||
v-model="form.message"
|
||||
placeholder="请输入审批意见"
|
||||
:maxlength="500"
|
||||
height="120"
|
||||
height="72"
|
||||
count
|
||||
/>
|
||||
</view>
|
||||
@@ -587,6 +591,11 @@ export default {
|
||||
return value || '-';
|
||||
},
|
||||
|
||||
formatLeaveDuration(value) {
|
||||
if (value === null || value === undefined || value === '') return '-';
|
||||
return `${value} 天`;
|
||||
},
|
||||
|
||||
// 关闭弹窗
|
||||
cancel() {
|
||||
this.visible = false;
|
||||
@@ -1231,7 +1240,7 @@ export default {
|
||||
}
|
||||
|
||||
.title {
|
||||
font-size: 32rpx;
|
||||
font-size: 34rpx;
|
||||
font-weight: 600;
|
||||
color: #333;
|
||||
}
|
||||
@@ -1243,12 +1252,12 @@ export default {
|
||||
}
|
||||
|
||||
.form-item {
|
||||
margin-bottom: 40rpx;
|
||||
margin-bottom: 32rpx;
|
||||
}
|
||||
|
||||
.label {
|
||||
display: block;
|
||||
font-size: 28rpx;
|
||||
font-size: 30rpx;
|
||||
font-weight: 500;
|
||||
color: #333;
|
||||
margin-bottom: 16rpx;
|
||||
@@ -1273,16 +1282,16 @@ export default {
|
||||
}
|
||||
|
||||
.leave-summary-label {
|
||||
width: 160rpx;
|
||||
width: 170rpx;
|
||||
flex-shrink: 0;
|
||||
font-size: 26rpx;
|
||||
font-size: 30rpx;
|
||||
color: #667085;
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
.leave-summary-value {
|
||||
flex: 1;
|
||||
font-size: 26rpx;
|
||||
font-size: 30rpx;
|
||||
color: #1f2937;
|
||||
line-height: 1.5;
|
||||
word-break: break-all;
|
||||
|
||||
Reference in new issue
Block a user