Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
W
wangxiaolu-sfa-ui
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
sfa
wangxiaolu-sfa-ui
Commits
2579f150
提交
2579f150
authored
5月 21, 2025
作者:
lidongxu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refactor(task): 梳理促销任务中代码
同上
上级
e0f1672b
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
66 行增加
和
111 行删除
+66
-111
index.js
src/hooks/promotion/index.js
+14
-0
index.vue
src/views/promotion/task/index.vue
+52
-111
没有找到文件。
src/hooks/promotion/index.js
浏览文件 @
2579f150
import
{
parseTime
}
from
'@/utils'
/**
* 判断计划是否可编辑/删除
* @param {*} row 计划信息对象
...
...
@@ -10,4 +11,16 @@ export const checkPlanExpire = (row) => {
rowDate
.
setHours
(
rowDate
.
getHours
()
+
1
)
// 2. 计划状态已经开始了,不可编辑/删除
return
!
(
rowDate
<
date
||
row
.
planStatus
===
1
)
}
/**
* 判断任务是否可删除
* @param {*} row 计划信息对象
* @returns boolean true 展示删除按钮,false 不展示删除按钮
*/
export
const
checkTaskExpire
=
(
row
)
=>
{
// 上报日期不是当月则隐藏按钮
const
date
=
parseTime
(
row
.
createDate
,
'{y}-{m}'
)
const
currentDate
=
parseTime
(
new
Date
(),
'{y}-{m}'
)
return
date
===
currentDate
}
\ No newline at end of file
src/views/promotion/task/index.vue
浏览文件 @
2579f150
...
...
@@ -89,7 +89,7 @@
查看照片
</el-button>
<el-button
type=
"danger"
v-if=
"
showDelet
e(scope.row)"
v-if=
"
checkTaskExpir
e(scope.row)"
@
click=
"deleteView(scope.row)"
text
>
删除
...
...
@@ -128,8 +128,8 @@
</template>
<
script
setup
>
import
{
useDatePickerOptions
}
from
'@/hooks'
import
{
getWarZoneListAPI
,
getChargeListAPI
,
getTaskListAPI
,
getProCityAPI
,
deletePromotionSystemAPI
,
getPromotionSystemAPI
,
getPromotionActivityAPI
}
from
'@/api'
import
{
useDatePickerOptions
,
checkTaskExpire
}
from
'@/hooks'
import
{
getWarZoneListAPI
,
getChargeListAPI
,
getTaskListAPI
,
deletePromotionSystemAPI
,
getPromotionSystemAPI
,
getPromotionActivityAPI
}
from
'@/api'
import
{
parseTime
}
from
'@/utils'
import
{
PROMOTION_TASK_STATUS_LIST
}
from
'@/dicts'
import
userStore
from
'@/store/modules/user'
...
...
@@ -141,52 +141,8 @@ const { recentPickerOptions: pickerOptions, todayDate } = useDatePickerOptions(0
const
isCityManager
=
userStore
().
promotionIdentity
const
empInfo
=
userStore
().
empInfo
/****************** 任务搜索 ******************/
const
queryParams
=
reactive
({
taskStatus
:
''
,
region
:
'全国'
,
provinceId
:
undefined
,
cityId
:
undefined
,
zoneId
:
undefined
,
managerId
:
undefined
,
storeName
:
undefined
,
page
:
1
,
pageSize
:
10
,
date
:
todayDate
})
const
taskStatusList
=
ref
(
PROMOTION_TASK_STATUS_LIST
)
const
photoDialogVisible
=
ref
(
false
)
const
photoDialogList
=
ref
([])
const
photoLookInfoObj
=
ref
({})
const
total
=
ref
(
0
)
// 区域查询
const
provinceList
=
ref
([])
const
cityList
=
ref
([])
const
getProCity
=
async
()
=>
{
const
{
data
}
=
await
getProCityAPI
(
queryParams
)
if
(
queryParams
.
provinceId
)
{
queryParams
.
cityId
=
undefined
cityList
.
value
=
data
.
map
(
item
=>
({
label
:
item
.
name
,
value
:
item
.
num
}))
}
else
{
provinceList
.
value
=
data
.
map
(
item
=>
({
label
:
item
.
name
,
value
:
item
.
num
}))
}
getTaskList
()
}
getProCity
()
/****************** 搜索参数 ******************/
const
taskStatusList
=
ref
(
PROMOTION_TASK_STATUS_LIST
)
// 任务状态
// 战区列表
const
zoneList
=
ref
([])
const
getZoneList
=
async
()
=>
{
...
...
@@ -197,8 +153,9 @@ const getZoneList = async () => {
value
:
item
.
qcId
}
})
// 如果是城市经理,默认设置战区为当前登录的城市经理
isCityManager
&&
(
queryParams
.
zoneId
=
managerList
.
value
.
find
(
item
=>
item
.
employeeNo
===
empInfo
.
empNo
)?.
deptQcId
)
}
getZoneList
()
// 负责人列表
const
managerList
=
ref
([])
...
...
@@ -213,10 +170,25 @@ const getManagerList = async () => {
deptQcId
:
item
.
deptQcId
}
})
// 如果是城市经理,默认设置负责人为当前登录的城市经理
isCityManager
&&
(
queryParams
.
managerId
=
managerList
.
value
.
find
(
item
=>
item
.
employeeNo
===
empInfo
.
empNo
)?.
value
)
}
getManagerList
()
// 任务列表
/****************** 任务列表 ******************/
const
queryParams
=
reactive
({
taskStatus
:
''
,
region
:
'全国'
,
provinceId
:
undefined
,
cityId
:
undefined
,
zoneId
:
undefined
,
managerId
:
undefined
,
storeName
:
undefined
,
page
:
1
,
pageSize
:
10
,
date
:
todayDate
})
const
total
=
ref
(
0
)
const
tableList
=
ref
([])
const
columns
=
ref
([
{
...
...
@@ -302,41 +274,17 @@ const columns = ref([
prop
:
'manageName'
,
width
:
120
}
])
// 删除任务列表
const
deleteView
=
async
(
row
)
=>
{
await
proxy
.
$modal
.
confirm
(
'确认删除该记录吗?'
,
'提示'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
})
await
deletePromotionSystemAPI
(
row
.
id
)
// 提示删除成功
getTaskList
()
proxy
.
$modal
.
msgSuccess
(
'删除成功'
)
}
])
// 任务列表
// 获取任务列表
const
getTaskList
=
async
()
=>
{
// 后台省市不要 id,自己查个名字给后台
queryParams
.
province
=
provinceList
.
value
.
find
(
item
=>
item
.
value
===
queryParams
.
provinceId
)?.
label
queryParams
.
city
=
cityList
.
value
.
find
(
item
=>
item
.
value
===
queryParams
.
cityId
)?.
label
// 城市经理查自己,职能角色查所有(需要的是促销系统 id)
if
(
isCityManager
)
{
// 城市经理
await
getManagerList
()
queryParams
.
managerId
=
managerList
.
value
.
find
(
item
=>
item
.
employeeNo
===
empInfo
.
empNo
)?.
value
// 先从归属人查询当前登录用户的战区 ID
queryParams
.
zoneId
=
managerList
.
value
.
find
(
item
=>
item
.
employeeNo
===
empInfo
.
empNo
)?.
deptQcId
}
const
{
data
:
{
records
,
totalRecord
}
}
=
await
getTaskListAPI
(
queryParams
)
const
{
data
:
{
records
,
totalRecord
}
}
=
await
getTaskListAPI
({
...
queryParams
,
province
:
queryParams
.
provinceName
,
city
:
queryParams
.
cityName
})
tableList
.
value
=
records
total
.
value
=
totalRecord
}
getTaskList
()
const
formatter
=
(
row
,
columns
,
value
)
=>
{
// 判断有值再转换
if
(
columns
.
property
===
'clockDto.clockInTime'
&&
value
)
{
...
...
@@ -350,31 +298,35 @@ const formatter = (row, columns, value) => {
}
else
if
(
columns
.
property
===
'week'
)
{
return
parseTime
(
row
[
'createDate'
],
'周{a}'
)
}
else
if
(
columns
.
property
===
'approveStatus'
&&
value
)
{
const
obj
=
{
SUBMITTED
:
'未审批'
,
APPROVED
:
'已审批'
}
return
obj
[
value
]
return
taskStatusList
.
value
.
find
(
item
=>
item
.
value
===
value
)?.
label
}
return
value
}
// 区域查询切换
const
regionChange
=
(
val
)
=>
{
if
(
val
===
'全国'
)
{
queryParams
.
provinceId
=
undefined
queryParams
.
cityId
=
undefined
}
else
if
(
val
===
'省'
)
{
queryParams
.
cityId
=
undefined
}
else
if
(
val
===
'省-市'
)
{
cityList
.
value
=
[]
getProCity
()
}
// 删除任务
const
deleteView
=
async
(
row
)
=>
{
await
proxy
.
$modal
.
confirm
(
'确认删除该记录吗?'
,
'提示'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
})
await
deletePromotionSystemAPI
(
row
.
id
)
getTaskList
()
proxy
.
$modal
.
msgSuccess
(
'删除成功'
)
}
// 查看照片
const
lookPhoto
=
async
(
row
)
=>
{
onMounted
(
async
()
=>
{
await
getManagerList
()
await
getZoneList
()
getTaskList
()
})
/***************** 查看图片弹窗 *****************/
const
photoDialogVisible
=
ref
(
false
)
const
photoDialogList
=
ref
([])
// 图片数据集合
const
photoLookInfoObj
=
ref
({})
const
lookPhoto
=
async
(
row
)
=>
{
// 查看照片
photoDialogVisible
.
value
=
true
photoLookInfoObj
.
value
=
row
const
result
=
await
getPromotionActivityAPI
(
row
.
id
)
...
...
@@ -448,18 +400,7 @@ const lookPhoto = async (row) => {
}]
}
const
currentChange
=
(
page
)
=>
{
queryParams
.
page
=
page
getTaskList
()
}
// 是否展示删除按钮
const
showDelete
=
(
row
)
=>
{
// 上报日期不是当月则隐藏按钮
const
date
=
parseTime
(
row
.
createDate
,
'{y}-{m}'
)
const
currentDate
=
parseTime
(
new
Date
(),
'{y}-{m}'
)
return
date
===
currentDate
}
</
script
>
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论