提交 2579f150 authored 作者: lidongxu's avatar lidongxu

refactor(task): 梳理促销任务中代码

同上
上级 e0f1672b
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
......@@ -89,7 +89,7 @@
查看照片
</el-button>
<el-button type="danger"
v-if="showDelete(scope.row)"
v-if="checkTaskExpire(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 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论