提交 c6f338ce authored 作者: lidongxu's avatar lidongxu

feat(plan): 完成计划批量修改给别人功能

同上
上级 e7f50ca2
......@@ -91,7 +91,7 @@ export function addPlanByWebAPI(data) {
export function updatePlanByWebAPI(data) {
return request({
baseURL: VITE_APP_PROMOTION,
url: '/plan/v2/core/update',
url: '/plan/v2/core/one',
method: 'PUT',
data
})
......@@ -118,4 +118,14 @@ export function updatePlanAPI(data) {
method: 'PUT',
data
})
}
// 批量修改计划归属人
export function batchUpdatePlanAPI(data) {
return request({
baseURL: VITE_APP_PROMOTION,
url: '/plan/v2/core/more',
method: 'PUT',
data
})
}
\ No newline at end of file
......@@ -38,7 +38,6 @@
</div>
</div>
</el-card>
<el-dialog title="编辑常用报表"
v-model="visible">
<div class="wrap">
......
......@@ -140,6 +140,10 @@
plain
icon="Plus"
@click="handleAdd">新增</el-button>
<el-button type="primary"
plain
icon="Edit"
@click="handleEditEmp">修改归属人</el-button>
<el-button type="warning"
plain
icon="Download">
......@@ -325,7 +329,6 @@
filterable
clearable
style="width: 95%"
:disabled="cityManagerPrivilege || !!addOrEditPlanForm.id"
@change="selEmployee">
<el-option v-for="item in managerList"
:key="item.employeeNo"
......@@ -398,12 +401,50 @@
</div>
</template>
</el-dialog>
<!-- 修改计划归属人 -->
<el-dialog title="修改计划归属人"
v-model="editPlanEmpVisible"
width="60%">
<!-- 表单 -->
<el-form :model="editPlanEmpForm"
label-width="150px"
:rules="editPlanEmpRules"
ref="editPlanEmpRef"
inline>
<el-form-item label="归属人"
prop="employeeId">
<el-select v-model="editPlanEmpForm.employeeId"
placeholder="请选择归属人(搜索)"
filterable
clearable>
<el-option v-for="item in managerList"
:key="item.value"
:label="item.label"
:value="item.value" />
</el-select>
</el-form-item>
</el-form>
<!-- 取消确定 -->
<template #footer>
<div class="dialog-footer">
<el-button type="default"
@click="editPlanEmpVisible = false">
取消
</el-button>
<el-button type="primary"
@click="handleEditPlanEmp"
:disabled="!editPlanEmpForm.employeeId">
确定保存
</el-button>
</div>
</template>
</el-dialog>
</div>
</div>
</template>
<script setup>
import { getPlanListAPI, uploadFileToOSSAPI, addPlanAPI, savePlanAPI, deletePlanAPI, addPlanByRoleAPI, getProCityAPI, getDealerListAPI, getWarZoneListAPI, getChargeListAPI, addPlanByWebAPI, updatePlanByWebAPI, getPlanStoreListAPI, updatePlanAPI } from '@/api'
import { getPlanListAPI, uploadFileToOSSAPI, addPlanAPI, savePlanAPI, deletePlanAPI, addPlanByRoleAPI, getProCityAPI, getDealerListAPI, getWarZoneListAPI, getChargeListAPI, addPlanByWebAPI, updatePlanByWebAPI, getPlanStoreListAPI, updatePlanAPI, batchUpdatePlanAPI } from '@/api'
import { useDatePickerOptions } from '@/hooks'
import { v4 as uuidv4 } from 'uuid';
import store from '@/store'
......@@ -435,6 +476,7 @@ const taskStatusList = ref([
// 查询参数-区域查询
const provinceList = ref([])
const cityList = ref([])
const getProCity = async () => {
const { data } = await getProCityAPI(queryParams)
if (queryParams.provinceId) {
......@@ -514,13 +556,13 @@ const regionChange = (val) => {
getPlanList()
}
// 等待被删除的数据
const deleteList = ref([])
// 表格复选框的数据
const checkedRowList = ref([])
// 全选
const handleSelectionChange = (val) => {
deleteList.value = val
multiple.value = !(deleteList.value.length > 0)
checkedRowList.value = val
multiple.value = !(checkedRowList.value.length > 0)
}
// 任务列表
......@@ -698,6 +740,38 @@ const tableRowTimeOutClassName = ({ row }) => {
}
}
// 批量修改归属人
const editPlanEmpVisible = ref(false)
const editPlanEmpForm = ref({
employeeId: null
})
const editPlanEmpRules = ref({
employeeId: [{
required: true,
message: '请选择归属人',
trigger: 'change'
}]
})
const handleEditEmp = () => {
editPlanEmpVisible.value = true
nextTick(() => {
editPlanEmpForm.value.employeeId = null
proxy.resetForm("editPlanEmpRef");
})
}
// 确定批量修改计划人
const handleEditPlanEmp = async () => {
const res = await batchUpdatePlanAPI({
employeeId: editPlanEmpForm.value.employeeId,
operName: store.state.value.user.userInfo.userName,
planIds: checkedRowList.value.map(item => item.id)
})
ElMessage.success(res.msg)
editPlanEmpVisible.value = false
getPlanList()
}
// 上传计划表格
const uploadFile = async (file) => {
proxy.$modal.loading("正在上传数据,请稍后...");
......@@ -956,9 +1030,9 @@ const disabledDateFn = (time) => {
const handleAdd = () => {
resetAddOrEditPlanForm()
// 只有城市经理情况下,默认填充当前登录人为归属人
if (cityManagerPrivilege.value) {
addOrEditPlanForm.value.employeeNo = store.state.value.user.userInfo.userName
}
// if (cityManagerPrivilege.value) {
// addOrEditPlanForm.value.employeeNo = store.state.value.user.userInfo.userName
// }
addOrEditPlanVisible.value = true
}
const activityModeList = ref([
......@@ -1017,6 +1091,10 @@ const handleAddOrEditPlan = async () => {
addOrEditPlanForm.value.operName = store.state.value.user.userInfo.nickName
addOrEditPlanForm.value.operId = store.state.value.user.userInfo.userId
if (addOrEditPlanForm.value.id) {
// 根据归属人 employeeId 查询它的 id 和名字
const employeeInfo = managerList.value.find(item => item.employeeNo === addOrEditPlanForm.value.employeeNo)
addOrEditPlanForm.value.employeeId = employeeInfo.value
addOrEditPlanForm.value.employeeName = employeeInfo.label
await updatePlanByWebAPI(addOrEditPlanForm.value)
} else {
await addPlanByWebAPI(addOrEditPlanForm.value)
......@@ -1029,7 +1107,7 @@ const handleAddOrEditPlan = async () => {
// 删除计划
const deletePlane = (row) => {
deleteList.value = [row]
checkedRowList.value = [row]
handleDelete()
}
const handleDelete = async () => {
......@@ -1040,7 +1118,7 @@ const handleDelete = async () => {
type: 'warning'
})
await deletePlanAPI({
planIds: deleteList.value.map(o => o.id),
planIds: checkedRowList.value.map(o => o.id),
employeeNo: store.state.value.user.userInfo.userName
})
ElMessage.success('删除成功')
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论