Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
C
corporateCulture-qd
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
王立鹏
corporateCulture-qd
Commits
b1614d17
Commit
b1614d17
authored
Mar 11, 2026
by
lijiabin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
【需求 20331】 feat: 完成后台相关页面
parent
a26cfd3d
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
54 additions
and
35 deletions
+54
-35
index.vue
src/views/backend/caseManage/index.vue
+10
-1
index.vue
src/views/backend/goodsDistribution/index.vue
+44
-34
No files found.
src/views/backend/caseManage/index.vue
View file @
b1614d17
...
...
@@ -43,7 +43,9 @@
搜索
</el-button
>
<el-button
@
click=
"reset"
>
重置
</el-button>
<el-button
type=
"primary"
@
click=
"downloadImportTemplate"
>
<el-icon><IEpDownload
/></el-icon>
下载导入模板
</el-button
>
<ImportExcelBtn
:api=
"importCaseExcel"
@
success=
"refresh"
@
error=
"handleError"
/>
<el-button
type=
"primary"
@
click=
"handleBatchPublish"
>
批量发布/隐藏
</el-button>
<el-button
type=
"danger"
@
click=
"handleBatchDelete"
>
批量删除
</el-button>
...
...
@@ -380,6 +382,13 @@ const handleError = (list: BackendCaseListItemDto[]) => {
errorListDialogVisible
.
value
=
true
errorList
.
value
=
list
}
const
downloadImportTemplate
=
()
=>
{
window
.
open
(
'https://soundasia.oss-cn-shenzhen.aliyuncs.com/OA/readName/xlsx/2026/03/11/Common/1773219970707.xlsx'
,
'_blank'
,
)
}
</
script
>
<
style
scoped
lang=
"scss"
>
...
...
src/views/backend/goodsDistribution/index.vue
View file @
b1614d17
...
...
@@ -5,6 +5,7 @@
<el-input
v-model=
"searchParams.itemName"
placeholder=
"请输入商品名称"
clearable
class=
"w-200px"
></el-input>
...
...
@@ -14,19 +15,22 @@
class=
"search-select mx-12px"
clearable
>
<el-option
label=
"待发
货
"
:value=
"0"
/>
<el-option
label=
"已发
货
"
:value=
"1"
/>
<el-option
label=
"待发
放
"
:value=
"0"
/>
<el-option
label=
"已发
放
"
:value=
"1"
/>
<el-option
label=
"已取消"
:value=
"2"
/>
</el-select>
<el-select
v-model=
"searchParams.source"
v-model=
"searchParams.source
Type
"
placeholder=
"请选择来源"
class=
"search-select"
clearable
>
<el-option
label=
"商城"
:value=
"1"
/>
<el-option
label=
"大转盘"
:value=
"2"
/>
<el-option
label=
"每日抽奖"
:value=
"3"
/>
<el-option
v-for=
"item in goodsDistributionTypeListOptions"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
/>
</el-select>
<el-button
type=
"primary"
@
click=
"refresh"
class=
"ml-12px"
>
<el-icon><IEpSearch
/></el-icon>
...
...
@@ -51,21 +55,26 @@
height=
"100%"
@
selection-change=
"handleSelectionChange"
>
<
el-table-column
type=
"selection"
width=
"55"
>
</el-table-column
>
<
!--
<el-table-column
type=
"selection"
width=
"55"
>
</el-table-column>
--
>
<el-table-column
prop=
"itemName"
label=
"商品名称"
min-width=
"200"
/>
<el-table-column
prop=
"imageUrl"
label=
"图片"
width=
"300"
>
<template
#
default=
"
{ row }">
<el-image
v-if=
"row.imageUrl"
:preview-teleported=
"true"
:src=
"row.imageUrl"
class=
"w-20 h-20 object-cover"
:preview-src-list=
"[row.imageUrl]"
/>
<span
v-else
>
暂无图片
</span>
</
template
>
</el-table-column>
<el-table-column
prop=
"source"
label=
"来源"
min-width=
"200"
>
<el-table-column
prop=
"source
Type
"
label=
"来源"
min-width=
"200"
>
<
template
#
default=
"{ row }"
>
{{
row
.
source
===
1
?
'商城'
:
row
.
source
===
2
?
'大转盘'
:
'每日抽奖'
}}
{{
goodsDistributionTypeListOptions
.
find
((
item
)
=>
item
.
value
===
row
.
sourceType
)
?.
label
}}
</
template
>
</el-table-column>
<el-table-column
prop=
"num"
label=
"兑换数量"
min-width=
"200"
>
</el-table-column>
...
...
@@ -88,23 +97,22 @@
</el-table-column>
<el-table-column
prop=
"status"
label=
"发放状态"
min-width=
"200"
>
<
template
#
default=
"{ row }"
>
{{
row
.
status
===
0
?
'待发
货'
:
row
.
status
===
1
?
'已发货
'
:
'已取消'
}}
{{
row
.
status
===
0
?
'待发
放'
:
row
.
status
===
1
?
'已发放
'
:
'已取消'
}}
</
template
>
</el-table-column>
<el-table-column
prop=
"memo"
label=
"发放人备注"
min-width=
"200"
/>
<el-table-column
label=
"操作"
width=
"150"
fixed=
"right"
>
<
template
#
default=
"{ row }"
>
<el-button
v-if=
"row.status === 0
"
type=
"primary"
link
@
click=
"handleIssue(row)"
>
<el-button
:disabled=
"row.status === 1
"
type=
"primary"
link
@
click=
"handleIssue(row)"
>
发放
</el-button>
<el-button
<
!--
<
el-button
v-if=
"row.status === 1"
type=
"warning"
link
@
click=
"handleCancelIssue(row)"
>
取消发放
</el-button>
</el-button>
-->
<!--
<el-button
type=
"danger"
link
@
click=
"handleDelete(row)"
>
删除
</el-button>
-->
</
template
>
</el-table-column>
...
...
@@ -176,8 +184,9 @@ import ExportExcelBtn from '@/components/common/ExportExcelBtn/index.vue'
import
type
{
ExportColumn
}
from
'@/utils'
import
{
push
}
from
'notivue'
import
{
useMessageBox
}
from
'@/hooks'
import
{
goodsDistributionTypeListOptions
}
from
'@/constants'
const
{
confirm
,
prompt
}
=
useMessageBox
()
const
{
prompt
}
=
useMessageBox
()
const
{
loading
,
list
,
total
,
reset
,
goToPage
,
changePageSize
,
refresh
,
searchParams
,
search
}
=
usePageSearch
(
getBackendExchangeList
,
{
defaultParams
:
{},
...
...
@@ -195,9 +204,9 @@ const columns: ExportColumn<BackendShopItemDto>[] = [
},
{
title
:
'来源'
,
key
:
'source'
,
key
:
'source
Type
'
,
formatter
:
(
value
)
=>
{
return
value
===
1
?
'商城'
:
value
===
2
?
'大转盘'
:
'每日抽奖'
return
goodsDistributionTypeListOptions
.
find
((
item
)
=>
item
.
value
===
value
)?.
label
},
},
...
...
@@ -229,14 +238,14 @@ const columns: ExportColumn<BackendShopItemDto>[] = [
title
:
'发放时间'
,
key
:
'issueTime'
,
formatter
:
(
value
)
=>
{
return
value
?
dayjs
((
value
as
number
)
*
1000
).
format
(
'YYYY-MM-DD HH:mm:ss'
)
:
'未发
货
'
return
value
?
dayjs
((
value
as
number
)
*
1000
).
format
(
'YYYY-MM-DD HH:mm:ss'
)
:
'未发
放
'
},
},
{
title
:
'发放状态'
,
key
:
'status'
,
formatter
:
(
value
)
=>
{
return
value
===
0
?
'待发
货'
:
value
===
1
?
'已发货
'
:
'已取消'
return
value
===
0
?
'待发
放'
:
value
===
1
?
'已发放
'
:
'已取消'
},
},
{
...
...
@@ -267,21 +276,21 @@ const formRules: FormRules = {
}
// 取消发放
const
handleCancelIssue
=
async
(
row
:
BackendColumnListItemDto
)
=>
{
await
confirm
({
title
:
'提示'
,
message
:
'确定要取消发放吗?'
,
confirmText
:
'确定'
,
cancelText
:
'取消'
,
type
:
'warning'
,
})
await
issueProduct
({
id
:
row
.
id
,
status
:
0
,
})
push
.
success
(
'取消发放成功'
)
refresh
()
}
//
const handleCancelIssue = async (row: BackendColumnListItemDto) => {
//
await confirm({
//
title: '提示',
//
message: '确定要取消发放吗?',
//
confirmText: '确定',
//
cancelText: '取消',
//
type: 'warning',
//
})
//
await issueProduct({
//
id: row.id,
//
status: 0,
//
})
//
push.success('取消发放成功')
//
refresh()
//
}
// 发放
const
handleIssue
=
async
(
row
:
BackendColumnListItemDto
)
=>
{
...
...
@@ -294,6 +303,7 @@ const handleIssue = async (row: BackendColumnListItemDto) => {
id
:
row
.
id
,
memo
,
status
:
1
,
sourceType
:
row
.
sourceType
,
})
push
.
success
(
'发放成功'
)
refresh
()
...
...
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