From 93c133349a5ccd7a328371fa113dce69d5611f21 Mon Sep 17 00:00:00 2001
From: liuyu <yu.liu@cqgbkj.com>
Date: 星期二, 22 九月 2026 09:25:39 +0800
Subject: [PATCH] feat(tms): 完成课程考试自测等页面与接口对接
---
apps/jnpf-web-apps-main/src/views/x/tms/signMode/index.vue | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 50 insertions(+), 10 deletions(-)
diff --git a/apps/jnpf-web-apps-main/src/views/x/tms/signMode/index.vue b/apps/jnpf-web-apps-main/src/views/x/tms/signMode/index.vue
index b532908..8d3c9ea 100644
--- a/apps/jnpf-web-apps-main/src/views/x/tms/signMode/index.vue
+++ b/apps/jnpf-web-apps-main/src/views/x/tms/signMode/index.vue
@@ -3,19 +3,32 @@
import type { SignModeItem } from './types';
+import { onMounted, ref } from 'vue';
+
import { useMessage } from '@jnpf/hooks';
import { useModal } from '@jnpf/ui/modal';
import { BasicVxeTable, TableAction, useVxeTable } from '@jnpf/ui/vxeTable';
import { deleteSignMode, getSignModeList, setSignModeEnabled } from '#/api/x/tms/signMode';
+import { useBaseStore } from '#/store';
+import {
+ TMS_DIC,
+ TMS_DIC_FIELD_NAMES,
+ labelOfDic,
+ loadTmsDic,
+ type TmsDicOpt,
+} from '#/views/x/tms/shared/dic';
import Form from './Form.vue';
-import { ENABLE_OPTIONS, labelOfEnabled, labelOfYesNo } from './constants';
defineOptions({ name: 'TmsSignMode' });
const { createMessage } = useMessage();
+const baseStore = useBaseStore();
const [registerForm, { openModal: openFormModal }] = useModal();
+
+const yesNoOpts = ref<TmsDicOpt[]>([]);
+const enableOpts = ref<TmsDicOpt[]>([]);
const columns: BasicColumn[] = [
{ title: '鏂瑰紡缂栫爜', dataIndex: 'modeCode', width: 140 },
@@ -32,7 +45,7 @@
dataIndex: 'matchRoster',
width: 120,
align: 'center',
- customRender: ({ record }) => labelOfYesNo((record as SignModeItem).matchRoster),
+ customRender: ({ record }) => labelOfDic(yesNoOpts.value, (record as SignModeItem).matchRoster),
},
{
title: '鐘舵��',
@@ -44,10 +57,10 @@
{ title: '澶囨敞', dataIndex: 'remark', minWidth: 220 },
];
-const [registerTable, { reload }] = useVxeTable({
+const [registerTable, { reload, getForm }] = useVxeTable({
api: fetchList,
columns,
- immediate: true,
+ immediate: false,
rowKey: 'id',
useSearchForm: true,
formConfig: {
@@ -64,7 +77,12 @@
field: 'enabled',
label: '鐘舵��',
component: 'Select',
- componentProps: { allowClear: true, placeholder: '璇烽�夋嫨', options: ENABLE_OPTIONS },
+ componentProps: {
+ allowClear: true,
+ placeholder: '璇烽�夋嫨',
+ options: enableOpts.value,
+ fieldNames: TMS_DIC_FIELD_NAMES,
+ },
},
],
},
@@ -74,6 +92,21 @@
dataIndex: 'action',
fixed: 'right',
},
+});
+
+onMounted(async () => {
+ yesNoOpts.value = await loadTmsDic(baseStore, TMS_DIC.yesNo);
+ enableOpts.value = await loadTmsDic(baseStore, TMS_DIC.enableStatus);
+ getForm()?.updateSchema?.({
+ field: 'enabled',
+ componentProps: {
+ allowClear: true,
+ placeholder: '璇烽�夋嫨',
+ options: enableOpts.value,
+ fieldNames: TMS_DIC_FIELD_NAMES,
+ },
+ });
+ reload();
});
async function fetchList(params: Record<string, any>) {
@@ -101,6 +134,10 @@
}
async function handleDelete(record: SignModeItem) {
+ if (record.enabled !== '0') {
+ createMessage.warning('璇峰厛鍋滅敤鍚庡啀鍒犻櫎');
+ return;
+ }
try {
await deleteSignMode(record.id);
createMessage.success('鍒犻櫎鎴愬姛');
@@ -112,7 +149,7 @@
function getTableActions(record: SignModeItem): ActionItem[] {
const enableLabel = record.enabled === '1' ? '鍋滅敤' : '鍚敤';
- return [
+ const actions: ActionItem[] = [
{ label: '缂栬緫', onClick: handleEdit.bind(null, record) },
{
label: enableLabel,
@@ -121,15 +158,18 @@
onOk: handleToggleEnabled.bind(null, record),
},
},
- {
+ ];
+ if (record.enabled === '0') {
+ actions.push({
label: '鍒犻櫎',
color: 'error',
modelConfirm: {
content: `纭畾鍒犻櫎绛惧埌鏂瑰紡銆�${record.modeName}銆嶅悧锛焋,
onOk: handleDelete.bind(null, record),
},
- },
- ];
+ });
+ }
+ return actions;
}
</script>
@@ -143,7 +183,7 @@
</template>
<template #enabled="{ record }">
<a-tag :color="record.enabled === '1' ? 'success' : 'default'">
- {{ labelOfEnabled(record.enabled) }}
+ {{ labelOfDic(enableOpts, record.enabled) }}
</a-tag>
</template>
<template #action="{ record }">
--
Gitblit v1.8.0