From 08abd54ca0a5a223cffbf38193bdebeffbc9e1df Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sun, 21 Jun 2026 04:44:53 -0700 Subject: [PATCH] =?UTF-8?q?fix(ts):=20=E6=94=B6=E6=95=9B=E5=B1=80=E9=83=A8?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E5=B9=B6=E5=88=A0=E9=99=A4=20XButton?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 删除 XButton/XTextButton,调用点改回 el-button - ContextMenu 收窄 trigger,移除 Element Plus 不支持的 focus - RewardActivityVO 三个商品范围数组改必填,表单创建/加载/重置均初始化为 [] - SpuShowcase 恢复直接 v-model,移除 computed 中转 - MES、Demo03、Codegen 等 VO 对齐表单场景,减少局部 Omit/unknown 断言 - MP 补 SimpleTagVO,修复用户标签 never[] 问题 - Redis 图表 option 在声明处定型,模板去除 EChartsOption cast - 修复 member 统计页 fenToYuan 漏导入 ts:check 252 → 133,无新增类型错误 --- src/api/infra/codegen/index.ts | 43 +++++++- src/api/infra/demo/demo03/erp/index.ts | 9 +- src/api/infra/demo/demo03/inner/index.ts | 9 +- src/api/infra/demo/demo03/normal/index.ts | 9 +- .../combination/combinationActivity.ts | 2 + .../mall/promotion/reward/rewardActivity.ts | 6 +- .../mall/promotion/seckill/seckillActivity.ts | 1 + src/api/mes/md/item/type/index.ts | 10 +- src/api/mes/md/unitmeasure/index.ts | 12 +-- src/api/mp/tag/index.ts | 7 +- .../src/ContentDetailWrap.vue | 4 +- src/components/Cropper/src/CopperModal.vue | 53 +++++----- src/components/Error/src/Error.vue | 2 +- src/components/Search/src/Search.vue | 36 +++---- src/components/XButton/index.ts | 4 - src/components/XButton/src/XButton.vue | 50 ---------- src/components/XButton/src/XTextButton.vue | 49 ---------- .../package/designer/ProcessDesigner.vue | 98 +++++++++---------- .../package/penal/form/ElementForm.vue | 2 +- .../penal/listeners/ElementListeners.vue | 22 ++--- .../penal/listeners/UserTaskListeners.vue | 20 ++-- .../penal/properties/ElementProperties.vue | 9 +- .../penal/signal-message/SignalAndMessage.vue | 8 +- .../task/task-components/CallActivity.vue | 16 +-- .../task/task-components/ReceiveTask.vue | 9 +- .../penal/task/task-components/UserTask.vue | 8 +- .../ContextMenu/src/ContextMenu.vue | 2 +- src/layout/components/Message/src/Message.vue | 4 +- src/layout/components/Setting/src/Setting.vue | 8 +- .../UserInfo/src/components/LockDialog.vue | 2 +- .../UserInfo/src/components/LockPage.vue | 12 +-- src/utils/index.ts | 7 ++ src/views/Login/SocialLogin.vue | 7 +- .../Login/components/ForgetPasswordForm.vue | 19 ++-- src/views/Login/components/LoginForm.vue | 34 +++---- src/views/Login/components/MobileForm.vue | 19 ++-- src/views/Login/components/QrCodeForm.vue | 2 +- src/views/Login/components/RegisterForm.vue | 12 +-- src/views/Profile/components/BasicInfo.vue | 4 +- src/views/Profile/components/ResetPwd.vue | 4 +- src/views/Profile/components/UserSocial.vue | 4 +- src/views/infra/codegen/EditTable.vue | 2 +- .../codegen/components/BasicInfoForm.vue | 12 +-- .../codegen/components/GenerateInfoForm.vue | 26 ++--- .../demo/demo03/erp/Demo03StudentForm.vue | 4 +- .../erp/components/Demo03CourseForm.vue | 6 +- .../erp/components/Demo03CourseList.vue | 2 +- .../demo03/erp/components/Demo03GradeForm.vue | 6 +- .../demo03/erp/components/Demo03GradeList.vue | 2 +- src/views/infra/demo/demo03/erp/index.vue | 10 +- .../demo/demo03/inner/Demo03StudentForm.vue | 4 +- .../inner/components/Demo03CourseForm.vue | 2 +- .../inner/components/Demo03GradeForm.vue | 2 +- .../inner/components/Demo03GradeList.vue | 4 +- src/views/infra/demo/demo03/inner/index.vue | 2 +- .../demo/demo03/normal/Demo03StudentForm.vue | 4 +- .../normal/components/Demo03CourseForm.vue | 2 +- .../normal/components/Demo03GradeForm.vue | 11 ++- src/views/infra/demo/demo03/normal/index.vue | 2 +- src/views/infra/redis/index.vue | 44 +++++---- .../detail/DeviceDetailsThingModelEvent.vue | 2 +- .../detail/DeviceDetailsThingModelService.vue | 2 +- .../home/components/OperationDataCard.vue | 10 +- .../mall/home/components/TradeTrendCard.vue | 10 +- src/views/mall/home/index.vue | 10 +- src/views/mall/product/brand/BrandForm.vue | 2 + src/views/mall/product/comment/index.vue | 2 +- .../mall/product/property/PropertyForm.vue | 10 +- .../mall/product/property/value/index.vue | 8 +- .../mall/product/spu/components/SkuList.vue | 11 +-- .../product/spu/components/SkuTableSelect.vue | 2 +- src/views/mall/product/spu/form/InfoForm.vue | 8 +- .../product/spu/form/ProductAttributes.vue | 20 ++-- .../spu/form/ProductPropertyAddForm.vue | 10 +- .../bargain/activity/BargainActivityForm.vue | 8 +- .../mall/promotion/bargain/record/index.vue | 20 +--- .../activity/CombinationActivityForm.vue | 2 +- .../components/CombinationTableSelect.vue | 6 +- src/views/mall/promotion/coupon/index.vue | 2 +- .../coupon/template/CouponTemplateForm.vue | 2 +- src/views/mall/promotion/diy/page/index.vue | 4 +- .../mall/promotion/diy/template/index.vue | 4 +- .../point/components/PointShowcase.vue | 2 +- .../promotion/rewardActivity/RewardForm.vue | 32 +++--- .../components/RewardRuleCouponSelect.vue | 2 +- .../seckill/activity/SeckillActivityForm.vue | 3 +- .../mall/promotion/seckill/activity/index.vue | 4 +- .../seckill/components/SeckillShowcase.vue | 2 +- .../seckill/components/SeckillTableSelect.vue | 4 +- .../mall/promotion/seckill/config/index.vue | 2 +- src/views/mall/statistics/member/index.vue | 6 +- .../product/components/ProductSummary.vue | 14 +-- src/views/mall/statistics/trade/index.vue | 30 +++--- .../mall/trade/delivery/pickUpOrder/index.vue | 48 ++++++--- src/views/member/config/index.vue | 6 +- src/views/mes/md/item/type/MdItemTypeForm.vue | 16 +-- .../item/type/components/MdItemTypeTree.vue | 2 +- .../mes/md/unitmeasure/UnitMeasureForm.vue | 24 ++--- .../components/MdUnitMeasureSelect.vue | 2 +- .../mes/pro/task/components/ProTaskSelect.vue | 2 +- .../WmMaterialStockSelectDialog.vue | 12 +-- src/views/mp/message/index.vue | 4 +- src/views/mp/user/UserForm.vue | 6 +- src/views/mp/user/index.vue | 2 +- src/views/system/mail/account/index.vue | 4 +- src/views/system/sms/channel/index.vue | 8 +- 106 files changed, 551 insertions(+), 626 deletions(-) delete mode 100644 src/components/XButton/index.ts delete mode 100644 src/components/XButton/src/XButton.vue delete mode 100644 src/components/XButton/src/XTextButton.vue diff --git a/src/api/infra/codegen/index.ts b/src/api/infra/codegen/index.ts index b0e93cda1..bccfa0ae2 100644 --- a/src/api/infra/codegen/index.ts +++ b/src/api/infra/codegen/index.ts @@ -20,6 +20,45 @@ export type CodegenTableVO = { parentMenuId: number } +export type CodegenTableSaveReqVO = CodegenTableVO & { + frontType?: number | null + genPath?: string + genType?: string + masterTableId?: number + subJoinColumnId?: number + subJoinMany?: boolean + treeParentColumnId?: number + treeNameColumnId?: number +} + +export const createEmptyCodegenTableSaveReqVO = (): CodegenTableSaveReqVO => ({ + id: 0, + tableId: 0, + isParentMenuIdValid: false, + dataSourceConfigId: 0, + scene: 0, + tableName: '', + tableComment: '', + remark: '', + moduleName: '', + businessName: '', + className: '', + classComment: '', + author: '', + createTime: new Date(), + updateTime: new Date(), + templateType: 0, + parentMenuId: 0, + frontType: null, + genPath: '', + genType: '', + masterTableId: undefined, + subJoinColumnId: undefined, + subJoinMany: undefined, + treeParentColumnId: undefined, + treeNameColumnId: undefined +}) + export type CodegenColumnVO = { id: number tableId: number @@ -52,7 +91,7 @@ export type CodegenPreviewVO = { } export type CodegenUpdateReqVO = { - table: CodegenTableVO | any + table: CodegenTableSaveReqVO columns: CodegenColumnVO[] } @@ -68,7 +107,7 @@ export const getCodegenTablePage = (params: PageParam) => { // 查询详情代码生成表定义 export const getCodegenTable = (id: number) => { - return request.get({ url: '/infra/codegen/detail?tableId=' + id }) + return request.get({ url: '/infra/codegen/detail?tableId=' + id }) } // 修改代码生成表定义 diff --git a/src/api/infra/demo/demo03/erp/index.ts b/src/api/infra/demo/demo03/erp/index.ts index 5deba7c1e..f89af1cc9 100644 --- a/src/api/infra/demo/demo03/erp/index.ts +++ b/src/api/infra/demo/demo03/erp/index.ts @@ -1,9 +1,8 @@ import request from '@/config/axios' -import type { Dayjs } from 'dayjs' /** 学生课程信息 */ export interface Demo03Course { - id: number // 编号 + id?: number // 编号 studentId?: number // 学生编号 name?: string // 名字 score?: number // 分数 @@ -11,7 +10,7 @@ export interface Demo03Course { /** 学生班级信息 */ export interface Demo03Grade { - id: number // 编号 + id?: number // 编号 studentId?: number // 学生编号 name?: string // 名字 teacher?: string // 班主任 @@ -19,10 +18,10 @@ export interface Demo03Grade { /** 学生信息 */ export interface Demo03Student { - id: number // 编号 + id?: number // 编号 name?: string // 名字 sex?: number // 性别 - birthday?: string | Dayjs // 出生日期 + birthday?: string | number // 出生日期 description?: string // 简介 } diff --git a/src/api/infra/demo/demo03/inner/index.ts b/src/api/infra/demo/demo03/inner/index.ts index 5c22aa4aa..713358950 100644 --- a/src/api/infra/demo/demo03/inner/index.ts +++ b/src/api/infra/demo/demo03/inner/index.ts @@ -1,9 +1,8 @@ import request from '@/config/axios' -import type { Dayjs } from 'dayjs' /** 学生课程信息 */ export interface Demo03Course { - id: number // 编号 + id?: number // 编号 studentId?: number // 学生编号 name?: string // 名字 score?: number // 分数 @@ -11,7 +10,7 @@ export interface Demo03Course { /** 学生班级信息 */ export interface Demo03Grade { - id: number // 编号 + id?: number // 编号 studentId?: number // 学生编号 name?: string // 名字 teacher?: string // 班主任 @@ -19,10 +18,10 @@ export interface Demo03Grade { /** 学生信息 */ export interface Demo03Student { - id: number // 编号 + id?: number // 编号 name?: string // 名字 sex?: number // 性别 - birthday?: string | Dayjs // 出生日期 + birthday?: string | number // 出生日期 description?: string // 简介 demo03courses?: Demo03Course[] demo03grade?: Demo03Grade diff --git a/src/api/infra/demo/demo03/normal/index.ts b/src/api/infra/demo/demo03/normal/index.ts index ff3d2f4cd..4f62fc1f2 100644 --- a/src/api/infra/demo/demo03/normal/index.ts +++ b/src/api/infra/demo/demo03/normal/index.ts @@ -1,9 +1,8 @@ import request from '@/config/axios' -import type { Dayjs } from 'dayjs' /** 学生课程信息 */ export interface Demo03Course { - id: number // 编号 + id?: number // 编号 studentId?: number // 学生编号 name?: string // 名字 score?: number // 分数 @@ -11,7 +10,7 @@ export interface Demo03Course { /** 学生班级信息 */ export interface Demo03Grade { - id: number // 编号 + id?: number // 编号 studentId?: number // 学生编号 name?: string // 名字 teacher?: string // 班主任 @@ -19,10 +18,10 @@ export interface Demo03Grade { /** 学生信息 */ export interface Demo03Student { - id: number // 编号 + id?: number // 编号 name?: string // 名字 sex?: number // 性别 - birthday?: string | Dayjs // 出生日期 + birthday?: string | number // 出生日期 description?: string // 简介 demo03courses?: Demo03Course[] demo03grade?: Demo03Grade diff --git a/src/api/mall/promotion/combination/combinationActivity.ts b/src/api/mall/promotion/combination/combinationActivity.ts index 640026726..f5769c437 100644 --- a/src/api/mall/promotion/combination/combinationActivity.ts +++ b/src/api/mall/promotion/combination/combinationActivity.ts @@ -5,6 +5,8 @@ export interface CombinationActivityVO { id?: number name?: string spuId?: number + spuName?: string + picUrl?: string totalLimitCount?: number singleLimitCount?: number startTime?: Date diff --git a/src/api/mall/promotion/reward/rewardActivity.ts b/src/api/mall/promotion/reward/rewardActivity.ts index e9f95ed80..429a3a387 100644 --- a/src/api/mall/promotion/reward/rewardActivity.ts +++ b/src/api/mall/promotion/reward/rewardActivity.ts @@ -10,10 +10,10 @@ export interface RewardActivityVO { conditionType?: number productScope?: number rules: RewardRule[] + productScopeValues: number[] // 商品范围:值为品类编号列表、商品编号列表 // 如下仅用于表单,不提交 - productScopeValues?: number[] // 商品范围:值为品类编号列表、商品编号列表 - productCategoryIds?: number[] - productSpuIds?: number[] + productCategoryIds: number[] + productSpuIds: number[] } // 优惠规则 diff --git a/src/api/mall/promotion/seckill/seckillActivity.ts b/src/api/mall/promotion/seckill/seckillActivity.ts index dc5a350a7..8d0fc4b65 100644 --- a/src/api/mall/promotion/seckill/seckillActivity.ts +++ b/src/api/mall/promotion/seckill/seckillActivity.ts @@ -5,6 +5,7 @@ export interface SeckillActivityVO { id?: number spuId?: number name?: string + picUrl?: string status?: number remark?: string startTime?: Date diff --git a/src/api/mes/md/item/type/index.ts b/src/api/mes/md/item/type/index.ts index edcd36e1a..b298f1198 100644 --- a/src/api/mes/md/item/type/index.ts +++ b/src/api/mes/md/item/type/index.ts @@ -2,14 +2,14 @@ import request from '@/config/axios' // MES 物料产品分类 VO export interface MdItemTypeVO { - id: number // 分类编号 - parentId: number // 父分类编号 - code: string // 分类编码 - name: string // 分类名称 + id?: number // 分类编号 + parentId?: number // 父分类编号 + code?: string // 分类编码 + name?: string // 分类名称 itemOrProduct: string // 物料/产品标识 sort: number // 显示排序 status: number // 状态 - remark: string // 备注 + remark?: string // 备注 } // MES 物料产品分类 API diff --git a/src/api/mes/md/unitmeasure/index.ts b/src/api/mes/md/unitmeasure/index.ts index a2e697d34..4c4603c08 100644 --- a/src/api/mes/md/unitmeasure/index.ts +++ b/src/api/mes/md/unitmeasure/index.ts @@ -2,14 +2,14 @@ import request from '@/config/axios' // MES 计量单位 VO export interface MdUnitMeasureVO { - id: number // 单位编号 - code: string // 单位编码 - name: string // 单位名称 + id?: number // 单位编号 + code?: string // 单位编码 + name?: string // 单位名称 primaryFlag: boolean // 是否主单位 - primaryId: number // 主单位编号 - changeRate: number // 与主单位换算比例 + primaryId?: number // 主单位编号 + changeRate?: number // 与主单位换算比例 status: number // 状态 - remark: string // 备注 + remark?: string // 备注 } // MES 计量单位 API diff --git a/src/api/mp/tag/index.ts b/src/api/mp/tag/index.ts index 50183a518..f49c14205 100644 --- a/src/api/mp/tag/index.ts +++ b/src/api/mp/tag/index.ts @@ -7,6 +7,11 @@ export interface TagVO { createTime: Date } +export interface SimpleTagVO { + tagId: number + name: string +} + // 创建公众号标签 export const createTag = (data: TagVO) => { return request.post({ @@ -47,7 +52,7 @@ export const getTagPage = (query: PageParam) => { // 获取公众号标签精简信息列表 export const getSimpleTagList = () => { - return request.get({ + return request.get({ url: '/mp/tag/list-all-simple' }) } diff --git a/src/components/ContentDetailWrap/src/ContentDetailWrap.vue b/src/components/ContentDetailWrap/src/ContentDetailWrap.vue index a9eacc011..b7d3db713 100644 --- a/src/components/ContentDetailWrap/src/ContentDetailWrap.vue +++ b/src/components/ContentDetailWrap/src/ContentDetailWrap.vue @@ -32,10 +32,10 @@ onMounted(() => { ]" >
- + {{ t('common.back') }} - +
diff --git a/src/components/Cropper/src/CopperModal.vue b/src/components/Cropper/src/CopperModal.vue index 721157870..c69c9675c 100644 --- a/src/components/Cropper/src/CopperModal.vue +++ b/src/components/Cropper/src/CopperModal.vue @@ -23,72 +23,81 @@
- + + + - + > + + - + > + + - + > + + - + > + + - + > + + - + > + + - + > + +
diff --git a/src/components/Error/src/Error.vue b/src/components/Error/src/Error.vue index 3fd7a1767..d6c9f1ceb 100644 --- a/src/components/Error/src/Error.vue +++ b/src/components/Error/src/Error.vue @@ -51,7 +51,7 @@ const btnClick = () => {
{{ errorMap[type].message }}
- {{ errorMap[type].buttonText }} + {{ errorMap[type].buttonText }}
diff --git a/src/components/Search/src/Search.vue b/src/components/Search/src/Search.vue index 3218a63a6..44086db44 100644 --- a/src/components/Search/src/Search.vue +++ b/src/components/Search/src/Search.vue @@ -114,19 +114,17 @@ const setVisible = () => { diff --git a/src/layout/components/UserInfo/src/components/LockPage.vue b/src/layout/components/UserInfo/src/components/LockPage.vue index 1a6e85706..d70d19dea 100644 --- a/src/layout/components/UserInfo/src/components/LockPage.vue +++ b/src/layout/components/UserInfo/src/components/LockPage.vue @@ -106,7 +106,7 @@ function handleShowForm(show = false) { {{ t('lock.message') }}
- {{ t('common.back') }} - - + {{ t('lock.backToLogin') }} - - + {{ t('lock.entrySystem') }} - +
diff --git a/src/utils/index.ts b/src/utils/index.ts index 062103f61..4f4df20f9 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -376,6 +376,13 @@ export const fenToYuan = (price: string | number): string => { return formatToFraction(price) } +/** + * 分转元,返回数字 + */ +export const fenToYuanNumber = (price: string | number): number => { + return Number(fenToYuan(price)) +} + /** * 计算环比 * diff --git a/src/views/Login/SocialLogin.vue b/src/views/Login/SocialLogin.vue index 87e4d3aad..241cea134 100644 --- a/src/views/Login/SocialLogin.vue +++ b/src/views/Login/SocialLogin.vue @@ -123,13 +123,14 @@ - + > + {{ t('login.login') }} + - + + {{ t('login.resetPassword') }} + - + + {{ t('login.backLogin') }} + diff --git a/src/views/Login/components/LoginForm.vue b/src/views/Login/components/LoginForm.vue index 1bb5173d8..367161229 100644 --- a/src/views/Login/components/LoginForm.vue +++ b/src/views/Login/components/LoginForm.vue @@ -69,13 +69,9 @@ - + + {{ t('login.login') }} + - + + {{ t('login.btnMobile') }} + - + + {{ t('login.btnQRCode') }} + - + + {{ t('login.btnRegister') }} + diff --git a/src/views/Login/components/MobileForm.vue b/src/views/Login/components/MobileForm.vue index bb4f1a69f..e27ef8626 100644 --- a/src/views/Login/components/MobileForm.vue +++ b/src/views/Login/components/MobileForm.vue @@ -70,23 +70,16 @@ - + + {{ t('login.login') }} + - + + {{ t('login.backLogin') }} + diff --git a/src/views/Login/components/QrCodeForm.vue b/src/views/Login/components/QrCodeForm.vue index 601052d52..d5e05ecd8 100644 --- a/src/views/Login/components/QrCodeForm.vue +++ b/src/views/Login/components/QrCodeForm.vue @@ -11,7 +11,7 @@ {{ t('login.qrcode') }}
- + {{ t('login.backLogin') }}
diff --git a/src/views/Login/components/RegisterForm.vue b/src/views/Login/components/RegisterForm.vue index 5b9d15a9a..2e34b7e06 100644 --- a/src/views/Login/components/RegisterForm.vue +++ b/src/views/Login/components/RegisterForm.vue @@ -75,13 +75,9 @@ - + + {{ t('login.register') }} + - + {{ t('login.hasUser') }} diff --git a/src/views/infra/demo/demo03/erp/components/Demo03GradeForm.vue b/src/views/infra/demo/demo03/erp/components/Demo03GradeForm.vue index 52f694701..170e2cc5a 100644 --- a/src/views/infra/demo/demo03/erp/components/Demo03GradeForm.vue +++ b/src/views/infra/demo/demo03/erp/components/Demo03GradeForm.vue @@ -30,7 +30,7 @@ const dialogVisible = ref(false) // 弹窗的是否展示 const dialogTitle = ref('') // 弹窗的标题 const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用 const formType = ref('') // 表单的类型:create - 新增;update - 修改 -const formData = ref({ +const formData = ref({ id: undefined, studentId: undefined, name: undefined, @@ -49,7 +49,7 @@ const open = async (type: string, id?: number, studentId?: number) => { dialogTitle.value = t('action.' + type) formType.value = type resetForm() - formData.value.studentId = studentId as any + formData.value.studentId = studentId // 修改时,设置数据 if (id) { formLoading.value = true @@ -70,7 +70,7 @@ const submitForm = async () => { // 提交请求 formLoading.value = true try { - const data = formData.value as unknown as Demo03Grade + const data = formData.value if (formType.value === 'create') { await Demo03StudentApi.createDemo03Grade(data) message.success(t('common.createSuccess')) diff --git a/src/views/infra/demo/demo03/erp/components/Demo03GradeList.vue b/src/views/infra/demo/demo03/erp/components/Demo03GradeList.vue index bafd753f6..82aac908a 100644 --- a/src/views/infra/demo/demo03/erp/components/Demo03GradeList.vue +++ b/src/views/infra/demo/demo03/erp/components/Demo03GradeList.vue @@ -158,6 +158,6 @@ const handleDeleteBatch = async () => { const checkedIds = ref([]) const handleRowCheckboxChange = (records: Demo03Grade[]) => { - checkedIds.value = records.map((item) => item.id) + checkedIds.value = records.map((item) => item.id!) } diff --git a/src/views/infra/demo/demo03/erp/index.vue b/src/views/infra/demo/demo03/erp/index.vue index b8b66748d..1e2d386be 100644 --- a/src/views/infra/demo/demo03/erp/index.vue +++ b/src/views/infra/demo/demo03/erp/index.vue @@ -142,10 +142,10 @@ - + - + @@ -238,7 +238,7 @@ const handleDeleteBatch = async () => { const checkedIds = ref([]) const handleRowCheckboxChange = (records: Demo03Student[]) => { - checkedIds.value = records.map((item) => item.id) + checkedIds.value = records.map((item) => item.id!) } /** 导出按钮操作 */ @@ -257,8 +257,8 @@ const handleExport = async () => { } /** 选中行操作 */ -const currentRow = ref({}) // 选中行 -const handleCurrentChange = (row) => { +const currentRow = ref() // 选中行 +const handleCurrentChange = (row: Demo03Student) => { currentRow.value = row } diff --git a/src/views/infra/demo/demo03/inner/Demo03StudentForm.vue b/src/views/infra/demo/demo03/inner/Demo03StudentForm.vue index 25be15cb7..8cdf40654 100644 --- a/src/views/infra/demo/demo03/inner/Demo03StudentForm.vue +++ b/src/views/infra/demo/demo03/inner/Demo03StudentForm.vue @@ -64,7 +64,7 @@ const dialogVisible = ref(false) // 弹窗的是否展示 const dialogTitle = ref('') // 弹窗的标题 const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用 const formType = ref('') // 表单的类型:create - 新增;update - 修改 -const formData = ref({ +const formData = ref({ id: undefined, name: undefined, sex: undefined, @@ -123,7 +123,7 @@ const submitForm = async () => { // 提交请求 formLoading.value = true try { - const data = formData.value as unknown as Demo03Student + const data = formData.value // 拼接子表的数据 data.demo03courses = demo03CourseFormRef.value.getData() data.demo03grade = demo03GradeFormRef.value.getData() diff --git a/src/views/infra/demo/demo03/inner/components/Demo03CourseForm.vue b/src/views/infra/demo/demo03/inner/components/Demo03CourseForm.vue index bde79b5a8..854624305 100644 --- a/src/views/infra/demo/demo03/inner/components/Demo03CourseForm.vue +++ b/src/views/infra/demo/demo03/inner/components/Demo03CourseForm.vue @@ -38,7 +38,7 @@ import { Demo03StudentApi } from '@/api/infra/demo/demo03/inner' const props = defineProps<{ - studentId: number // 学生编号(主表的关联字段) + studentId?: number // 学生编号(主表的关联字段) }>() const formLoading = ref(false) // 表单的加载中 const formData = ref([]) diff --git a/src/views/infra/demo/demo03/inner/components/Demo03GradeForm.vue b/src/views/infra/demo/demo03/inner/components/Demo03GradeForm.vue index a15bf51f9..b75c7ca83 100644 --- a/src/views/infra/demo/demo03/inner/components/Demo03GradeForm.vue +++ b/src/views/infra/demo/demo03/inner/components/Demo03GradeForm.vue @@ -18,7 +18,7 @@ import { Demo03StudentApi } from '@/api/infra/demo/demo03/inner' const props = defineProps<{ - studentId: number // 学生编号(主表的关联字段) + studentId?: number // 学生编号(主表的关联字段) }>() const formLoading = ref(false) // 表单的加载中 const formData = ref({}) diff --git a/src/views/infra/demo/demo03/inner/components/Demo03GradeList.vue b/src/views/infra/demo/demo03/inner/components/Demo03GradeList.vue index ffd66a6fb..07bd8d7fc 100644 --- a/src/views/infra/demo/demo03/inner/components/Demo03GradeList.vue +++ b/src/views/infra/demo/demo03/inner/components/Demo03GradeList.vue @@ -23,13 +23,13 @@