Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
phsl
/
admin
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
561ab08b
authored
Aug 01, 2025
by
yangchen
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
实现banner功能
parent
66e266b7
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
644 additions
and
0 deletions
+644
-0
pnpm-lock.yaml
+0
-0
src/api/homepage/banner/index.ts
+65
-0
src/router/modules/remaining.ts
+1
-0
src/utils/dict.ts
+3
-0
src/views/homepage/info/banner-info/index.vue
+374
-0
src/views/homepage/info/computility-information/index.vue
+201
-0
No files found.
pnpm-lock.yaml
View file @
561ab08b
This source diff could not be displayed because it is too large. You can
view the blob
instead.
src/api/homepage/banner/index.ts
0 → 100644
View file @
561ab08b
import
request
from
'@/config/axios'
// 查询banner页管理列表
export
function
listBanner
(
query
)
{
return
request
.
get
({
url
:
'/biz/banner-info/page'
,
params
:
query
})
}
// 查询banner页管理详细
export
function
getBanner
(
id
)
{
return
request
.
get
({
url
:
`/biz/banner-info/get?id=
${
id
}
`
})
}
// 新增banner页管理
export
function
addBanner
(
data
)
{
return
request
.
post
({
url
:
'/biz/banner-info/create'
,
data
})
}
// 修改banner页管理
export
function
updateBanner
(
data
)
{
return
request
.
put
({
url
:
'/biz/banner-info/update'
,
data
})
}
// 删除banner页管理
export
function
delBanner
(
id
)
{
return
request
.
delete
({
url
:
`/biz/banner-info/delete?id=
${
id
}
`
})
}
// export interface BannerVO {
// id: number
// image: string
// information: string
// title: string
// url: string
// description: string
// showStatus: number | null
// delFlag: string | null
// orderNum: number
// }
//
// // 查询banner页管理列表
// export const getBannerPage = async (params: any) => {
// return await request.get({ url: `/homepage/banner/page`, params })
// }
//
// // 查询banner页管理详细
// export const getBanner = async (id: number) => {
// return await request.get({ url: `/homepage/banner/get?id=` + id })
// }
//
//
// // 新增banner页管理
// export const createBanner = async (data: BannerVO) => {
// return await request.post({ url: `/homepage/banner/create`, data })
// }
//
// // 修改banner页管理
// export const updateBanner = async (data: BannerVO) => {
// return await request.put({ url: `/homepage/banner/update`, data })
// }
//
// // 删除banner页管理
// export const deleteBanner = async (id: number) => {
// return await request.delete({ url: `/homepage/banner/delete?id=` + id })
// }
src/router/modules/remaining.ts
View file @
561ab08b
import
{
Layout
}
from
'@/utils/routerHelper'
import
{
Layout
}
from
'@/utils/routerHelper'
import
type
{
AppRouteRecordRaw
}
from
'@/router/types'
// 确保引入类型定义
const
{
t
}
=
useI18n
()
const
{
t
}
=
useI18n
()
/**
/**
...
...
src/utils/dict.ts
View file @
561ab08b
...
@@ -245,4 +245,7 @@ export enum DICT_TYPE {
...
@@ -245,4 +245,7 @@ export enum DICT_TYPE {
IOT_PLUGIN_TYPE
=
'iot_plugin_type'
,
// IOT 插件类型
IOT_PLUGIN_TYPE
=
'iot_plugin_type'
,
// IOT 插件类型
IOT_DATA_BRIDGE_DIRECTION_ENUM
=
'iot_data_bridge_direction_enum'
,
// 桥梁方向
IOT_DATA_BRIDGE_DIRECTION_ENUM
=
'iot_data_bridge_direction_enum'
,
// 桥梁方向
IOT_DATA_BRIDGE_TYPE_ENUM
=
'iot_data_bridge_type_enum'
// 桥梁类型
IOT_DATA_BRIDGE_TYPE_ENUM
=
'iot_data_bridge_type_enum'
// 桥梁类型
// ========== 首页信息模块 ==========
HOME_INFO_COMPUTILITY_TYPE
=
'home_info_computility_type'
}
}
src/views/homepage/info/banner-info/index.vue
0 → 100644
View file @
561ab08b
<
template
>
<div
class=
"app-container"
>
<el-form
:model=
"queryParams"
ref=
"queryRef"
:inline=
"true"
v-show=
"showSearch"
>
<el-form-item
label=
"内容"
prop=
"information"
>
<el-input
v-model=
"queryParams.information"
placeholder=
"请输入内容"
clearable
@
keyup
.
enter=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"标题"
prop=
"title"
>
<el-input
v-model=
"queryParams.title"
placeholder=
"请输入标题"
clearable
@
keyup
.
enter=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"链接地址"
prop=
"url"
>
<el-input
v-model=
"queryParams.url"
placeholder=
"请输入链接地址"
clearable
@
keyup
.
enter=
"handleQuery"
/>
</el-form-item>
<!--
<el-form-item
label=
"状态"
prop=
"showStatus"
>
-->
<!--
<el-select
v-model=
"queryParams.showStatus"
placeholder=
"请选择状态"
clearable
>
-->
<!--
<el-option-->
<!-- v-for="dict in show_status"-->
<!-- :key="dict.value"-->
<!-- :label="dict.label"-->
<!-- :value="dict.value"-->
<!-- />-->
<!--
</el-select>
-->
<!--
</el-form-item>
-->
<el-form-item
label=
"状态"
prop=
"showStatus"
>
<el-select
v-model=
"queryParams.showStatus"
placeholder=
"请选择状态"
clearable
class=
"!w-120px"
>
<el-option
v-for=
"dict in getIntDictOptions(DICT_TYPE.COMMON_STATUS)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
<el-form-item>
<el-button
@
click=
"handleQuery"
>
<Icon
class=
"mr-5px"
icon=
"ep:search"
/>
搜索
</el-button>
<el-button
@
click=
"resetQuery"
>
<Icon
class=
"mr-5px"
icon=
"ep:refresh"
/>
重置
</el-button>
<el-button
type=
"primary"
@
click=
"handleAdd"
v-hasPermi=
"['biz:banner-info:create']"
>
<Icon
icon=
"ep:plus"
class=
"mr-5px"
/>
新增
</el-button>
</el-form-item>
</el-form>
<!--
<el-row
:gutter=
"10"
class=
"mb8"
>
-->
<!--
<el-col
:span=
"1.5"
>
-->
<!--
<el-button-->
<!-- type="primary"-->
<!-- plain-->
<!-- icon="Plus"-->
<!-- @click="handleAdd"-->
<!-- v-hasPermi="['biz:banner-info:create']"-->
<!-- >新增
</el-button>
-->
<!--
</el-col>
-->
<!--<!–
<right-toolbar
v-model:showSearch=
"showSearch"
@
queryTable=
"getList"
/>
–>
-->
<!--
</el-row>
-->
<el-table
v-loading=
"loading"
:data=
"bannerList"
@
selection-change=
"handleSelectionChange"
>
<el-table-column
type=
"selection"
width=
"30"
align=
"center"
/>
<el-table-column
label=
"排序值"
align=
"center"
prop=
"orderNum"
/>
<!--
<el-table-column
label=
"主键"
align=
"center"
prop=
"id"
/>
-->
<el-table-column
label=
"轮播图地址"
align=
"center"
prop=
"image"
width=
"100"
>
<template
#
default=
"scope"
>
<img
:src=
"scope.row.image"
alt=
"移动端分类图"
class=
"h-36px"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"内容"
align=
"center"
prop=
"information"
/>
<el-table-column
label=
"标题"
align=
"center"
prop=
"title"
/>
<el-table-column
label=
"链接地址"
align=
"center"
prop=
"url"
/>
<el-table-column
label=
"描述内容"
align=
"center"
prop=
"description"
/>
<el-table-column
label=
"状态"
align=
"center"
prop=
"showStatus"
>
<
template
#
default=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.COMMON_STATUS"
:value=
"scope.row.showStatus"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"备注"
align=
"center"
prop=
"remark"
/>
<el-table-column
label=
"操作"
align=
"center"
class-name=
"small-padding fixed-width"
>
<
template
#
default=
"scope"
>
<el-button
link
type=
"primary"
icon=
"Edit"
@
click=
"handleUpdate(scope.row)"
v-hasPermi=
"['biz:banner-info:update']"
>
修改
</el-button>
<el-button
link
type=
"danger"
icon=
"Delete"
@
click=
"handleDelete(scope.row)"
v-hasPermi=
"['biz:banner-info:delete']"
>
删除
</el-button>
</
template
>
</el-table-column>
</el-table>
<pagination
v-show=
"total>0"
:total=
"total"
v-model:page=
"queryParams.pageNum"
v-model:limit=
"queryParams.pageSize"
@
pagination=
"getList"
/>
<!-- 添加或修改banner页管理对话框 -->
<el-dialog
:title=
"title"
v-model=
"open"
width=
"700px"
append-to-body
>
<el-form
ref=
"bannerRef"
:model=
"form"
:rules=
"rules"
label-width=
"90px"
>
<el-row
:gutter=
"20"
>
<el-col
:span=
"24"
>
<el-form-item
label=
"轮播图地址"
prop=
"image"
>
<UploadImg
v-model=
"form.image"
:limit=
"1"
:is-show-tip=
"false"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"内容"
prop=
"information"
>
<el-input
v-model=
"form.information"
placeholder=
"请输入内容"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"标题"
prop=
"title"
>
<el-input
v-model=
"form.title"
placeholder=
"请输入标题"
/>
</el-form-item>
</el-col>
<el-col
:span=
"24"
>
<el-form-item
label=
"链接地址"
prop=
"url"
>
<el-input
v-model=
"form.url"
placeholder=
"请输入链接地址"
/>
</el-form-item>
</el-col>
<el-col
:span=
"24"
>
<el-form-item
label=
"描述内容"
prop=
"description"
>
<el-input
v-model=
"form.description"
type=
"textarea"
placeholder=
"请输入内容"
/>
</el-form-item>
</el-col>
<el-form-item
label=
"状态"
prop=
"showStatus"
>
<el-radio-group
v-model=
"form.showStatus"
>
<el-radio
v-for=
"dict in getIntDictOptions(DICT_TYPE.COMMON_STATUS)"
:key=
"dict.value"
:label=
"dict.value"
>
{{ dict.label }}
</el-radio>
</el-radio-group>
</el-form-item>
<el-col
:span=
"12"
>
<el-form-item
label=
"排序值"
prop=
"orderNum"
>
<el-input
v-model=
"form.orderNum"
placeholder=
"请输入排序值"
/>
</el-form-item>
</el-col>
<el-col
:span=
"24"
>
<el-form-item
label=
"备注"
prop=
"remark"
>
<el-input
v-model=
"form.remark"
placeholder=
"请输入备注"
/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<
template
#
footer
>
<div
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"submitForm"
>
确 定
</el-button>
<el-button
@
click=
"cancel"
>
取 消
</el-button>
</div>
</
template
>
</el-dialog>
</div>
</template>
<
script
setup
lang=
"ts"
name=
"Banner"
>
import
{
listBanner
,
getBanner
,
delBanner
,
addBanner
,
updateBanner
}
from
"@/api/homepage/banner"
;
import
{
DICT_TYPE
,
getIntDictOptions
}
from
'@/utils/dict'
import
{
UploadImg
}
from
"@/components/UploadFile"
;
const
{
proxy
}
=
getCurrentInstance
();
// const { show_status } = proxy.useDict('show_status');
const
bannerList
=
ref
([]);
const
open
=
ref
(
false
);
const
loading
=
ref
(
true
);
const
showSearch
=
ref
(
true
);
const
ids
=
ref
([]);
const
single
=
ref
(
true
);
const
multiple
=
ref
(
true
);
const
total
=
ref
(
0
);
const
title
=
ref
(
""
);
const
data
=
reactive
({
form
:
{},
queryParams
:
{
pageNum
:
1
,
pageSize
:
10
,
information
:
''
,
// 空字符串替代 null
title
:
''
,
url
:
''
,
showStatus
:
undefined
// 使用 undefined 避免传参 null
},
rules
:
{
information
:
[
{
required
:
true
,
message
:
"内容不能为空"
,
trigger
:
"blur"
}
],
title
:
[
{
required
:
true
,
message
:
"标题不能为空"
,
trigger
:
"blur"
}
],
showStatus
:
[
{
required
:
true
,
message
:
"状态不能为空"
,
trigger
:
"change"
}
],
orderNum
:[
{
required
:
true
,
message
:
"排序值不能为空"
,
trigger
:
"blur"
}
]
}
});
const
{
queryParams
,
form
,
rules
}
=
toRefs
(
data
);
/** 查询banner页管理列表 */
function
getList
()
{
loading
.
value
=
true
;
listBanner
(
queryParams
.
value
).
then
(
response
=>
{
bannerList
.
value
=
response
.
list
;
total
.
value
=
response
.
total
;
loading
.
value
=
false
;
});
}
// 取消按钮
function
cancel
()
{
open
.
value
=
false
;
reset
();
}
// 表单重置
function
reset
()
{
form
.
value
=
{
id
:
null
,
image
:
''
,
// 初始化为空字符串而非 null
information
:
''
,
title
:
''
,
url
:
''
,
description
:
''
,
showStatus
:
0
,
// 明确初始值(0或1,根据 DICT_TYPE.COMMON_STATUS)
orderNum
:
0
,
// 排序值初始化
remark
:
''
};
}
/** 搜索按钮操作 */
function
handleQuery
()
{
queryParams
.
value
.
pageNum
=
1
;
getList
();
}
/** 重置按钮操作 */
function
resetQuery
()
{
// proxy.resetForm("queryRef");
handleQuery
();
}
// 多选框选中数据
function
handleSelectionChange
(
selection
)
{
ids
.
value
=
selection
.
map
(
item
=>
item
.
id
);
single
.
value
=
selection
.
length
!=
1
;
multiple
.
value
=
!
selection
.
length
;
}
/** 新增按钮操作 */
function
handleAdd
()
{
reset
();
open
.
value
=
true
;
title
.
value
=
"添加banner页管理"
;
}
/** 修改按钮操作 */
async
function
handleUpdate
(
row
:
any
)
{
// 重置表单状态
reset
();
// 设置对话框标题
title
.
value
=
"修改banner页管理"
;
try
{
// 加载当前行数据详情
const
response
=
await
getBanner
(
row
.
id
);
// 将API返回的数据填充到表单
form
.
value
=
{
...
form
.
value
,
// 保留初始值
...
response
,
// 覆盖API返回的数据
id
:
row
.
id
// 确保ID正确
};
// 打开对话框
open
.
value
=
true
;
}
catch
(
error
)
{
console
.
error
(
"获取banner详情失败"
,
error
);
// 添加错误提示(可选)
ElMessage
.
error
(
"获取数据失败,请重试"
);
}
}
/** 提交按钮 */
function
submitForm
()
{
proxy
.
$refs
[
"bannerRef"
].
validate
(
valid
=>
{
if
(
valid
)
{
if
(
form
.
value
.
id
!=
null
)
{
updateBanner
(
form
.
value
).
then
(
response
=>
{
// proxy.$modal.msgSuccess("修改成功");
open
.
value
=
false
;
getList
();
});
}
else
{
addBanner
(
form
.
value
).
then
(
response
=>
{
// proxy.$modal.msgSuccess("新增成功");
open
.
value
=
false
;
getList
();
});
}
}
});
}
import
{
ElMessage
,
ElMessageBox
}
from
'element-plus'
;
// 修改handleDelete函数定义
const
handleDelete
=
async
(
row
)
=>
{
try
{
// 使用ElMessageBox.confirm进行二次确认
await
ElMessageBox
.
confirm
(
`是否确认删除标题为"
${
row
.
title
}
"的轮播图?`
,
'提示'
,
{}
)
// 发起删除
await
delBanner
(
row
.
id
)
// 提示删除成功
ElMessage
.
success
(
'删除成功'
)
// 刷新列表
await
getList
()
}
catch
(
error
)
{
// 用户点击了取消,不进行任何操作
if
(
error
!==
'cancel'
)
{
// 处理其他错误
ElMessage
.
error
(
'删除失败'
)
}
}
}
// /** 删除按钮操作 */
// function handleDelete(row) {
// const _ids = row.id;
// proxy.$modal.confirm('是否确认删除banner页管理编号为"' + _ids + '"的数据项?').then(function() {
// return delBanner(_ids);
// }).then(() => {
// getList();
// proxy.$modal.msgSuccess("删除成功");
// }).catch(() => {});
// }
// /** 导出按钮操作 */
// function handleExport() {
// proxy.download('computility/banner/export', {
// ...queryParams.value
// }, `banner_${new Date().getTime()}.xlsx`)
// }
getList
();
</
script
>
src/views/homepage/info/computility-information/index.vue
0 → 100644
View file @
561ab08b
<!--<template>-->
<!-- <ContentWrap>-->
<!-- <!– 搜索工作栏 –>-->
<!-- <el-form-->
<!-- class="-mb-15px"-->
<!-- :model="queryParams"-->
<!-- ref="queryFormRef"-->
<!-- :inline="true"-->
<!-- label-width="68px"-->
<!-- >-->
<!-- <el-form-item label="内容" prop="information">-->
<!-- <el-input-->
<!-- v-model="queryParams.information"-->
<!-- placeholder="请输入内容"-->
<!-- clearable-->
<!-- @keyup.enter="handleQuery"-->
<!-- class="!w-240px"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="标题" prop="title">-->
<!-- <el-input-->
<!-- v-model="queryParams.title"-->
<!-- placeholder="请输入标题"-->
<!-- clearable-->
<!-- @keyup.enter="handleQuery"-->
<!-- class="!w-240px"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="链接地址" prop="url">-->
<!-- <el-input-->
<!-- v-model="queryParams.url"-->
<!-- placeholder="请输入链接地址"-->
<!-- clearable-->
<!-- @keyup.enter="handleQuery"-->
<!-- class="!w-240px"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="计算资源应用类别" prop="category">-->
<!-- <el-select v-model="queryParams.category" placeholder="请选择应用类别" clearable class="!w-240px">-->
<!-- <el-option-->
<!-- v-for="dict in getIntDictOptions(DICT_TYPE.)"-->
<!-- :key="dict.value"-->
<!-- :label="dict.label"-->
<!-- :value="dict.value"-->
<!-- />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="状态" prop="status">-->
<!-- <el-select v-model="queryParams.status" placeholder="请选择状态" clearable class="!w-240px">-->
<!-- <el-option-->
<!-- v-for="dict in getIntDictOptions(DICT_TYPE.COMMON_STATUS)"-->
<!-- :key="dict.value"-->
<!-- :label="dict.label"-->
<!-- :value="dict.value"-->
<!-- />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- <el-form-item>-->
<!-- <el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>-->
<!-- <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>-->
<!-- <el-button type="primary" @click="openForm('create')" v-hasPermi="['member:level:create']">-->
<!-- <Icon icon="ep:plus" class="mr-5px" /> 新增-->
<!-- </el-button>-->
<!-- </el-form-item>-->
<!-- </el-form>-->
<!-- </ContentWrap>-->
<!-- <!– 列表 –>-->
<!-- <ContentWrap>-->
<!-- <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">-->
<!-- <el-table-column label="编号" align="center" prop="id" min-width="60" />-->
<!-- <el-table-column label="等级图标" align="center" prop="icon" min-width="80">-->
<!-- <template #default="scope">-->
<!-- <el-image-->
<!-- :src="scope.row.icon"-->
<!-- class="h-30px w-30px"-->
<!-- :preview-src-list="[scope.row.icon]"-->
<!-- />-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- <el-table-column label="等级背景图" align="center" prop="backgroundUrl" min-width="100">-->
<!-- <template #default="scope">-->
<!-- <el-image-->
<!-- :src="scope.row.backgroundUrl"-->
<!-- class="h-30px w-30px"-->
<!-- :preview-src-list="[scope.row.backgroundUrl]"-->
<!-- />-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- <el-table-column label="等级名称" align="center" prop="name" min-width="100" />-->
<!-- <el-table-column label="等级" align="center" prop="level" min-width="60" />-->
<!-- <el-table-column label="升级经验" align="center" prop="experience" min-width="80" />-->
<!-- <el-table-column label="享受折扣(%)" align="center" prop="discountPercent" min-width="110" />-->
<!-- <el-table-column label="状态" align="center" prop="status" min-width="70">-->
<!-- <template #default="scope">-->
<!-- <dict-tag :type="DICT_TYPE.COMMON_STATUS" :value="scope.row.status" />-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- <el-table-column-->
<!-- label="创建时间"-->
<!-- align="center"-->
<!-- prop="createTime"-->
<!-- :formatter="dateFormatter"-->
<!-- min-width="170"-->
<!-- />-->
<!-- <el-table-column label="操作" align="center" min-width="110px" fixed="right">-->
<!-- <template #default="scope">-->
<!-- <el-button-->
<!-- link-->
<!-- type="primary"-->
<!-- @click="openForm('update', scope.row.id)"-->
<!-- v-hasPermi="['member:level:update']"-->
<!-- >-->
<!-- 编辑-->
<!-- </el-button>-->
<!-- <el-button-->
<!-- link-->
<!-- type="danger"-->
<!-- @click="handleDelete(scope.row.id)"-->
<!-- v-hasPermi="['member:level:delete']"-->
<!-- >-->
<!-- 删除-->
<!-- </el-button>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- </el-table>-->
<!-- </ContentWrap>-->
<!-- <!– 表单弹窗:添加/修改 –>-->
<!-- <LevelForm ref="formRef" @success="getList" />-->
<!--</template>-->
<!--<script setup lang="ts">-->
<!--import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'-->
<!--import { dateFormatter } from '@/utils/formatTime'-->
<!--import * as LevelApi from '@/api/member/level'-->
<!--import LevelForm from './LevelForm.vue'-->
<!--/** 会员等级管理 **/-->
<!--defineOptions({ name: 'MemberLevel' })-->
<!--const message = useMessage() // 消息弹窗-->
<!--const { t } = useI18n() // 国际化-->
<!--const loading = ref(true) // 列表的加载中-->
<!--const list = ref([]) // 列表的数据-->
<!--const queryParams = reactive({-->
<!-- name: null,-->
<!-- status: null-->
<!--})-->
<!--const queryFormRef = ref() // 搜索的表单-->
<!--/** 查询列表 */-->
<!--const getList = async () => {-->
<!-- loading.value = true-->
<!-- try {-->
<!-- list.value = await LevelApi.getLevelList(queryParams)-->
<!-- } finally {-->
<!-- loading.value = false-->
<!-- }-->
<!--}-->
<!--/** 搜索按钮操作 */-->
<!--const handleQuery = () => {-->
<!-- getList()-->
<!--}-->
<!--/** 重置按钮操作 */-->
<!--const resetQuery = () => {-->
<!-- queryFormRef.value.resetFields()-->
<!-- handleQuery()-->
<!--}-->
<!--/** 添加/修改操作 */-->
<!--const formRef = ref()-->
<!--const openForm = (type: string, id?: number) => {-->
<!-- formRef.value.open(type, id)-->
<!--}-->
<!--/** 删除按钮操作 */-->
<!--const handleDelete = async (id: number) => {-->
<!-- try {-->
<!-- // 删除的二次确认-->
<!-- await message.delConfirm()-->
<!-- // 发起删除-->
<!-- await LevelApi.deleteLevel(id)-->
<!-- message.success(t('common.delSuccess'))-->
<!-- // 刷新列表-->
<!-- await getList()-->
<!-- } catch {}-->
<!--}-->
<!--/** 初始化 **/-->
<!--onMounted(() => {-->
<!-- getList()-->
<!--})-->
<!--</script>-->
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment