mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-12 12:26:47 +08:00
受众成员列表、删除、批量删除受众
This commit is contained in:
@@ -34,7 +34,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="btns">
|
<div class="btns">
|
||||||
<div class="btn btn3" @click="handleNew">
|
<div class="btn btn3" @click="handleAddAudienceClick">
|
||||||
<div class="search"></div>
|
<div class="search"></div>
|
||||||
<div class="btnText">添加受众</div>
|
<div class="btnText">添加受众</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -253,6 +253,130 @@
|
|||||||
<a-modal v-model:visible="visibleDeleteAudience" width="500px" title="删除受众" @ok="handleDelete">
|
<a-modal v-model:visible="visibleDeleteAudience" width="500px" title="删除受众" @ok="handleDelete">
|
||||||
<div style="margin: 20px 50px">您确定要删除此受众吗?</div>
|
<div style="margin: 20px 50px">您确定要删除此受众吗?</div>
|
||||||
</a-modal>
|
</a-modal>
|
||||||
|
<a-modal v-model:visible="visibleDeleteAudienceMember" width="500px" title="删除受众成员" @ok="handleDeleteMember">
|
||||||
|
<div style="margin: 20px 50px">您确定要删除此受众成员吗?</div>
|
||||||
|
</a-modal>
|
||||||
|
<a-modal v-model:visible="visibleBatchDeleteAudienceMember" width="500px" title="批量删除受众成员" @ok="handleBatchDeleteMember">
|
||||||
|
<div style="margin: 20px 50px">您确定要批量删除所选数据吗?</div>
|
||||||
|
</a-modal>
|
||||||
|
<a-modal
|
||||||
|
v-model:visible="visibleAddAudience"
|
||||||
|
width="1100px"
|
||||||
|
title="添加受众"
|
||||||
|
@ok="handleAddAudienceNext"
|
||||||
|
okText="下一步">
|
||||||
|
<div style="margin: 20px 20px">
|
||||||
|
<a-form
|
||||||
|
:model="ruleForm"
|
||||||
|
name="basic"
|
||||||
|
:label-col="{ span: 8 }"
|
||||||
|
:wrapper-col="{ span: 16 }"
|
||||||
|
autocomplete="off"
|
||||||
|
|
||||||
|
>
|
||||||
|
<a-form-item
|
||||||
|
label="名称"
|
||||||
|
name="audienceName"
|
||||||
|
:rules="[{ required: true, message: '请填写名称!' }]"
|
||||||
|
>
|
||||||
|
<a-input style="width:300px" v-model:value="ruleForm.audienceName" placeholder="请填写名称" />
|
||||||
|
</a-form-item>
|
||||||
|
|
||||||
|
<a-form-item
|
||||||
|
label="描述"
|
||||||
|
name="description"
|
||||||
|
:rules="[{ required: false, message: '请填写描述!' }]"
|
||||||
|
>
|
||||||
|
<a-textarea style="width:300px" v-model:value="ruleForm.description" placeholder="请填写描述" />
|
||||||
|
</a-form-item>
|
||||||
|
</a-form>
|
||||||
|
</div>
|
||||||
|
</a-modal>
|
||||||
|
<a-modal
|
||||||
|
v-model:visible="visibleAudienceInfo"
|
||||||
|
width="1100px"
|
||||||
|
title="受众信息"
|
||||||
|
:footer="null"
|
||||||
|
>
|
||||||
|
<div style="padding:10px" class="researchmanage">
|
||||||
|
<!-- 搜索框及按钮 -->
|
||||||
|
<div class="filter">
|
||||||
|
<div class="filterItems">
|
||||||
|
<div class="select">
|
||||||
|
<a-input
|
||||||
|
v-model:value="searchDataMember.keyword"
|
||||||
|
style="width: 270px; height: 40px; border-radius: 8px"
|
||||||
|
placeholder="请输入姓名/工号"
|
||||||
|
allowClear
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="display: flex; margin-bottom: 20px">
|
||||||
|
<div class="btn btn1" @click="handleSearchMember">
|
||||||
|
<div class="search"></div>
|
||||||
|
<div class="btnText">搜索</div>
|
||||||
|
</div>
|
||||||
|
<div class="btnn btn2" @click="handleRestMember" style="width: 105px">
|
||||||
|
<div class="search"></div>
|
||||||
|
<div class="btnText">重置</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="btns">
|
||||||
|
<div style="margin-right:10px" class="btn btn3" @click="handleAddAudienceMemberClick">
|
||||||
|
<div class="search"></div>
|
||||||
|
<div class="btnText">添加</div>
|
||||||
|
</div>
|
||||||
|
<div style="margin-right:10px" class="btn btn3" @click="handleExportAudienceMemberClick">
|
||||||
|
<!-- <div class="search"></div> -->
|
||||||
|
<div class="btnText">导入</div>
|
||||||
|
</div>
|
||||||
|
<div class="btn btn3" @click="handleBatchDeleteMemberClick">
|
||||||
|
<!-- <div class="search"></div> -->
|
||||||
|
<div class="btnText">批量删除</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- 搜索框及按钮 -->
|
||||||
|
<!-- 表格 -->
|
||||||
|
<div class="tableBox">
|
||||||
|
<a-table
|
||||||
|
style="border: 1px solid #f2f6fe"
|
||||||
|
:columns="columnAudience"
|
||||||
|
:data-source="tableDataMember"
|
||||||
|
:loading="loading"
|
||||||
|
:scroll="{ x: 1000 }"
|
||||||
|
:pagination="false"
|
||||||
|
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
|
||||||
|
>
|
||||||
|
<template #operationAudience="{ record }">
|
||||||
|
<a-space style="padding-right: 10px">
|
||||||
|
<a-button
|
||||||
|
@click="handleDeleteMemberClick(record)"
|
||||||
|
type="link"
|
||||||
|
>删除
|
||||||
|
</a-button>
|
||||||
|
</a-space>
|
||||||
|
</template>
|
||||||
|
</a-table>
|
||||||
|
</div>
|
||||||
|
<div class="pa">
|
||||||
|
<a-pagination
|
||||||
|
:showSizeChanger="false"
|
||||||
|
:showQuickJumper="true"
|
||||||
|
:hideOnSinglePage="true"
|
||||||
|
:pageSize="searchDataMember.pageSize"
|
||||||
|
:current="searchDataMember.pageNo"
|
||||||
|
:total="tableTotalMember"
|
||||||
|
class="pagination"
|
||||||
|
@change="handelChangePageMember"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
底部按键区
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</a-modal>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
@@ -269,6 +393,10 @@ import {
|
|||||||
publishAudience,
|
publishAudience,
|
||||||
stopAudience,
|
stopAudience,
|
||||||
deleteAudience,
|
deleteAudience,
|
||||||
|
createAudience,
|
||||||
|
getAudienceMemberList,
|
||||||
|
deleteAudienceMember,
|
||||||
|
deleteBatchAudienceMember,
|
||||||
} from "@/api/indexAudience";
|
} from "@/api/indexAudience";
|
||||||
import { checkPer } from "@/utils/utils";
|
import { checkPer } from "@/utils/utils";
|
||||||
import { Form, message } from "ant-design-vue";
|
import { Form, message } from "ant-design-vue";
|
||||||
@@ -379,6 +507,66 @@ const column = [
|
|||||||
slots: { customRender: "operation" },
|
slots: { customRender: "operation" },
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
const columnAudience = [
|
||||||
|
{
|
||||||
|
title: "姓名",
|
||||||
|
dataIndex: "userName",
|
||||||
|
key: "userName",
|
||||||
|
// width: "20%",
|
||||||
|
align: "center",
|
||||||
|
ellipsis: true,
|
||||||
|
className: "h",
|
||||||
|
customRender: ({ text }) => {
|
||||||
|
return text ? text : "-";
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "工号",
|
||||||
|
dataIndex: "workNum",
|
||||||
|
key: "workNum",
|
||||||
|
// width: "5%",
|
||||||
|
align: "center",
|
||||||
|
ellipsis: true,
|
||||||
|
className: "h",
|
||||||
|
customRender: ({ text }) => {
|
||||||
|
return text ? text : "-";
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "部门",
|
||||||
|
dataIndex: "departName",
|
||||||
|
key: "departName",
|
||||||
|
// width: "5%",
|
||||||
|
align: "center",
|
||||||
|
ellipsis: true,
|
||||||
|
className: "h",
|
||||||
|
customRender: ({ text }) => {
|
||||||
|
return text ? text : "-";
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "组织路径",
|
||||||
|
dataIndex: "orgPath",
|
||||||
|
key: "orgPath",
|
||||||
|
// width: "5%",
|
||||||
|
align: "center",
|
||||||
|
ellipsis: true,
|
||||||
|
className: "h",
|
||||||
|
customRender: ({ text }) => {
|
||||||
|
return text ? text : "-";
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "操作",
|
||||||
|
// width: "5%",
|
||||||
|
className: "h",
|
||||||
|
dataIndex: "id",
|
||||||
|
key: "id",
|
||||||
|
// fixed: "right",
|
||||||
|
// align: "right",
|
||||||
|
slots: { customRender: "operationAudience" },
|
||||||
|
},
|
||||||
|
];
|
||||||
const searchData = ref({
|
const searchData = ref({
|
||||||
pageNo: 1,
|
pageNo: 1,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
@@ -387,6 +575,12 @@ const searchData = ref({
|
|||||||
searchEndTime: "",
|
searchEndTime: "",
|
||||||
searchStartTime: "",
|
searchStartTime: "",
|
||||||
});
|
});
|
||||||
|
const searchDataMember = ref({
|
||||||
|
pageNo: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
keyword: "",
|
||||||
|
audienceId: "",
|
||||||
|
});
|
||||||
const formData = ref({
|
const formData = ref({
|
||||||
assessmentName: "",
|
assessmentName: "",
|
||||||
id: "",
|
id: "",
|
||||||
@@ -396,13 +590,28 @@ const formData = ref({
|
|||||||
|
|
||||||
const tableData = ref([
|
const tableData = ref([
|
||||||
|
|
||||||
|
]);
|
||||||
|
const tableDataMember = ref([
|
||||||
|
|
||||||
]);
|
]);
|
||||||
|
|
||||||
const tableTotal = ref(0);
|
const tableTotal = ref(0);
|
||||||
|
const tableTotalMember = ref(0);
|
||||||
const visibleCopyAudience = ref(false);
|
const visibleCopyAudience = ref(false);
|
||||||
const visibleDeleteAudience = ref(false);
|
const visibleDeleteAudience = ref(false);
|
||||||
const audienceId = ref("");
|
const visibleDeleteAudienceMember = ref(false);
|
||||||
|
const visibleBatchDeleteAudienceMember = ref(false);
|
||||||
|
const audienceId = ref("1073279922736201728");
|
||||||
const audienceName = ref("");
|
const audienceName = ref("");
|
||||||
|
const memberId = ref("");
|
||||||
|
const memberIdList = ref([]);
|
||||||
|
const visibleAddAudience = ref(false);
|
||||||
|
const visibleAudienceInfo = ref(true);
|
||||||
|
const ruleForm = ref({
|
||||||
|
audienceName: "",
|
||||||
|
description: "",
|
||||||
|
});
|
||||||
|
const selectedRowKeys = ref([]);
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
// 是否需要触发新建弹框
|
// 是否需要触发新建弹框
|
||||||
@@ -537,6 +746,13 @@ const handelChangePage = (page) => {
|
|||||||
// fetch();
|
// fetch();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const handelChangePageMember = (page) => {
|
||||||
|
console.log("handelChangePageMember page:",page);
|
||||||
|
searchDataMember.value.pageNo = page;
|
||||||
|
getAudienceMemberPageList();
|
||||||
|
// fetch();
|
||||||
|
};
|
||||||
|
|
||||||
function timeChange(time, timeStr) {
|
function timeChange(time, timeStr) {
|
||||||
searchData.value.searchStartTime = timeStr[0];
|
searchData.value.searchStartTime = timeStr[0];
|
||||||
searchData.value.searchEndTime = timeStr[1];
|
searchData.value.searchEndTime = timeStr[1];
|
||||||
@@ -547,17 +763,29 @@ const handleSearch = () => {
|
|||||||
getAudiencePageList();
|
getAudiencePageList();
|
||||||
// fetch();
|
// fetch();
|
||||||
|
|
||||||
|
};
|
||||||
|
const handleSearchMember = () => {
|
||||||
|
console.log("handleSearch searchDate:",searchDataMember.value);
|
||||||
|
getAudienceMemberPageList();
|
||||||
|
// fetch();
|
||||||
|
|
||||||
};
|
};
|
||||||
const handleRest = () => {
|
const handleRest = () => {
|
||||||
// dateTime.value = [];
|
// dateTime.value = [];
|
||||||
// resetFields();
|
// resetFields();
|
||||||
// fetch();
|
// fetch();
|
||||||
console.log("handleRest searchDate:",searchData.value);
|
console.log("handleRest searchData:",searchData.value);
|
||||||
searchData.value.pageNo = 1;
|
searchData.value.pageNo = 1;
|
||||||
searchData.value.audienceName = '';
|
searchData.value.audienceName = '';
|
||||||
searchData.value.status = null;
|
searchData.value.status = null;
|
||||||
getAudiencePageList();
|
getAudiencePageList();
|
||||||
};
|
};
|
||||||
|
const handleRestMember = () => {
|
||||||
|
console.log("handleRestMember searchDataMember:",searchData.value);
|
||||||
|
searchDataMember.value.pageNo = 1;
|
||||||
|
searchDataMember.value.keyword = '';
|
||||||
|
getAudienceMemberPageList();
|
||||||
|
};
|
||||||
|
|
||||||
function handleCancel() {
|
function handleCancel() {
|
||||||
resetFormFields();
|
resetFormFields();
|
||||||
@@ -682,10 +910,23 @@ const handleDeleteClick = (record) => {
|
|||||||
audienceId.value = record.audienceId;
|
audienceId.value = record.audienceId;
|
||||||
visibleDeleteAudience.value = true;
|
visibleDeleteAudience.value = true;
|
||||||
}
|
}
|
||||||
|
const handleDeleteMemberClick = (record) => {
|
||||||
|
console.log("handleDeleteMemberClick record:",record);
|
||||||
|
memberId.value = record.userId;
|
||||||
|
visibleDeleteAudienceMember.value = true;
|
||||||
|
}
|
||||||
|
const handleBatchDeleteMemberClick = () => {
|
||||||
|
console.log("handleBatchDeleteMemberClick");
|
||||||
|
visibleBatchDeleteAudienceMember.value = true;
|
||||||
|
}
|
||||||
const handleDeleteCancel = () => {
|
const handleDeleteCancel = () => {
|
||||||
console.log("handleDeleteCancel");
|
console.log("handleDeleteCancel");
|
||||||
visibleDeleteAudience.value = false;
|
visibleDeleteAudience.value = false;
|
||||||
}
|
}
|
||||||
|
const handleDeleteMemberCancel = () => {
|
||||||
|
console.log("handleDeleteMemberCancel");
|
||||||
|
visibleDeleteAudienceMember.value = false;
|
||||||
|
}
|
||||||
const handleDelete = async () => {
|
const handleDelete = async () => {
|
||||||
console.log("handleDelete audienceId:",audienceId.value);
|
console.log("handleDelete audienceId:",audienceId.value);
|
||||||
let res = await deleteAudience({
|
let res = await deleteAudience({
|
||||||
@@ -700,6 +941,101 @@ const handleDelete = async () => {
|
|||||||
message.error(res.data.message);
|
message.error(res.data.message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
const handleDeleteMember = async () => {
|
||||||
|
console.log("handleDeleteMember memberId:",memberId.value, "audienceId:",audienceId.value);
|
||||||
|
let res = await deleteAudienceMember({
|
||||||
|
audienceId: audienceId.value,
|
||||||
|
memberId: memberId.value,
|
||||||
|
})
|
||||||
|
console.log("deleteAudienceMember res:",res);
|
||||||
|
if(res&&res.data.status==200){
|
||||||
|
message.success("删除成功");
|
||||||
|
visibleDeleteAudienceMember.value = false;
|
||||||
|
getAudienceMemberPageList();
|
||||||
|
}else{
|
||||||
|
message.error(res.data.message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const handleBatchDeleteMember = async () => {
|
||||||
|
memberIdList.value = selectedRowKeys.value;
|
||||||
|
console.log("handleBatchDeleteMember memberIdList:",memberIdList.value, "audienceId:",audienceId.value);
|
||||||
|
let res = await deleteBatchAudienceMember({
|
||||||
|
audienceId: audienceId.value,
|
||||||
|
memberIdList: memberIdList.value,
|
||||||
|
})
|
||||||
|
console.log("batch deleteAudienceMember res:",res);
|
||||||
|
if(res&&res.data.status==200){
|
||||||
|
message.success("删除成功");
|
||||||
|
visibleBatchDeleteAudienceMember.value = false;
|
||||||
|
getAudienceMemberPageList();
|
||||||
|
}else{
|
||||||
|
message.error(res.data.message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const handleAddAudienceClick = () => {
|
||||||
|
visibleAddAudience.value = true;
|
||||||
|
|
||||||
|
}
|
||||||
|
const handleAddAudienceNext = async () => {
|
||||||
|
if(!ruleForm.value.audienceName){
|
||||||
|
message.warning("请填写受众名称");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
console.log("handleAddAudienceNext ruleForm:",ruleForm.value);
|
||||||
|
let res = await createAudience({
|
||||||
|
...ruleForm.value
|
||||||
|
})
|
||||||
|
console.log("createAudience res:",res);
|
||||||
|
if(res&&res.data.status==200){
|
||||||
|
message.success("创建受众成功");
|
||||||
|
visibleAddAudience.value = false;
|
||||||
|
getAudiencePageList();
|
||||||
|
}else{
|
||||||
|
message.error(res.data.message);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
const onSelectChange = (keys) => {
|
||||||
|
console.log('selectedRowKeys changed: ', keys);
|
||||||
|
// state.selectedRowKeys = selectedRowKeys;
|
||||||
|
selectedRowKeys.value = keys;
|
||||||
|
};
|
||||||
|
|
||||||
|
const getAudienceMemberPageList = async () => {
|
||||||
|
console.log("getAudienceMemberPageList searchData:",searchData.value);
|
||||||
|
console.log("getAudienceMemberPageList searchData pageSize:",searchData.value.pageSize);
|
||||||
|
let res = await getAudienceMemberList({
|
||||||
|
audienceId: audienceId.value,
|
||||||
|
keyword: searchDataMember.value.keyword,
|
||||||
|
pageNo: searchDataMember.value.pageNo,
|
||||||
|
pageSize: searchDataMember.value.pageSize,
|
||||||
|
})
|
||||||
|
console.log("getAudienceMemberPageList res:",res);
|
||||||
|
if(res&&res.data.status==200){
|
||||||
|
let dataList=[];
|
||||||
|
res.data.result.list.forEach(item=>{
|
||||||
|
let oneItem = {
|
||||||
|
...item,
|
||||||
|
key:item.userId,
|
||||||
|
}
|
||||||
|
dataList.push(oneItem);
|
||||||
|
});
|
||||||
|
tableDataMember.value = dataList;
|
||||||
|
tableTotalMember.value = res.data.result.total;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
// 后面要删除
|
||||||
|
getAudienceMemberPageList();
|
||||||
|
|
||||||
|
const handleAddAudienceMemberClick = () => {
|
||||||
|
// visibleAddAudience.value = true;
|
||||||
|
|
||||||
|
}
|
||||||
|
const handleExportAudienceMemberClick = () => {
|
||||||
|
// visibleAddAudience.value = true;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
Reference in New Issue
Block a user