fix(主播成员): 删除主播接口的参数调整

This commit is contained in:
hzj 2025-11-11 18:10:56 +08:00
parent 64876ec4f7
commit 36d28f6416

View File

@ -14,7 +14,9 @@
:label="item.label" :label="item.label"
:value="item.value" :value="item.value"
> >
<span style="float: left;"> <sys-origin-icon :icon="item.value" :desc="item.value" /></span> <span style="float: left;">
<sys-origin-icon :icon="item.value" :desc="item.value"
/></span>
<span style="float: left;margin-left:10px">{{ item.label }}</span> <span style="float: left;margin-left:10px">{{ item.label }}</span>
</el-option> </el-option>
</el-select> </el-select>
@ -36,10 +38,18 @@
</el-select> </el-select>
<div class="filter-item"> <div class="filter-item">
<account-input v-model="listQuery.ownUserId" :sys-origin="listQuery.sysOrigin" placeholder="代理ID" /> <account-input
v-model="listQuery.ownUserId"
:sys-origin="listQuery.sysOrigin"
placeholder="代理ID"
/>
</div> </div>
<div class="filter-item"> <div class="filter-item">
<account-input v-model="listQuery.memberId" :sys-origin="listQuery.sysOrigin" placeholder="成员ID" /> <account-input
v-model="listQuery.memberId"
:sys-origin="listQuery.sysOrigin"
placeholder="成员ID"
/>
</div> </div>
<div class="filter-item"> <div class="filter-item">
<el-input v-model="listQuery.notActiveDays" placeholder="不活跃天数" /> <el-input v-model="listQuery.notActiveDays" placeholder="不活跃天数" />
@ -68,12 +78,12 @@
class="filter-item" class="filter-item"
type="primary" type="primary"
icon="el-icon-edit" icon="el-icon-edit"
@click="teamMebmerAddVisible=true" @click="teamMebmerAddVisible = true"
> >
新增 新增
</el-button> </el-button>
<el-button <el-button
v-if="(selectTableRow.length > 0)" v-if="selectTableRow.length > 0"
class="filter-item" class="filter-item"
type="danger" type="danger"
icon="el-icon-delete" icon="el-icon-delete"
@ -93,7 +103,6 @@
highlight-current-row highlight-current-row
@selection-change="selectTableChange" @selection-change="selectTableChange"
> >
<el-table-column type="index" width="50" label="No" /> <el-table-column type="index" width="50" label="No" />
<el-table-column <el-table-column
type="selection" type="selection"
@ -101,28 +110,71 @@
show-overflow-tooltip show-overflow-tooltip
:selectable="tableSelectable" :selectable="tableSelectable"
/> />
<el-table-column label="代理" align="left" show-overflow-tooltip min-width="220"> <el-table-column
label="代理"
align="left"
show-overflow-tooltip
min-width="220"
>
<template slot-scope="scope"> <template slot-scope="scope">
<user-table-exhibit :user-profile="scope.row.ownUserProfile" :query-details="true" /> <user-table-exhibit
:user-profile="scope.row.ownUserProfile"
:query-details="true"
/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="成员" align="center" show-overflow-tooltip min-width="220"> <el-table-column
label="成员"
align="center"
show-overflow-tooltip
min-width="220"
>
<template slot-scope="scope"> <template slot-scope="scope">
<user-table-exhibit :user-profile="scope.row.userProfile" :query-details="true" :show-sys-origin="true" :tag-name="memberRoleMap[scope.row.role].name" /> <user-table-exhibit
:user-profile="scope.row.userProfile"
:query-details="true"
:show-sys-origin="true"
:tag-name="memberRoleMap[scope.row.role].name"
/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="备注" prop="remarks" align="center" show-overflow-tooltip min-width="200" /> <el-table-column
label="备注"
prop="remarks"
align="center"
show-overflow-tooltip
min-width="200"
/>
<el-table-column label="创建人" align="left" show-overflow-tooltip min-width="220"> <el-table-column
label="创建人"
align="left"
show-overflow-tooltip
min-width="220"
>
<template slot-scope="scope"> <template slot-scope="scope">
<user-table-exhibit v-if="scope.row.createUserProfile" :user-profile="scope.row.createUserProfile" :query-details="true" /> <user-table-exhibit
<div v-else-if="scope.row.createUserNickname" class="flex-l"> <avatar :name-avatar="scope.row.createUserNickname" /> <span style="margin-left: 10px;">{{ scope.row.createUserNickname }}</span></div> v-if="scope.row.createUserProfile"
:user-profile="scope.row.createUserProfile"
:query-details="true"
/>
<div v-else-if="scope.row.createUserNickname" class="flex-l">
<avatar :name-avatar="scope.row.createUserNickname" />
<span style="margin-left: 10px;">{{
scope.row.createUserNickname
}}</span>
</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="时间" align="center" show-overflow-tooltip min-width="220"> <el-table-column
label="时间"
align="center"
show-overflow-tooltip
min-width="220"
>
<template slot-scope="scope"> <template slot-scope="scope">
<div>创建: {{ scope.row.createTime | dateFormat }}</div> <div>创建: {{ scope.row.createTime | dateFormat }}</div>
<div>活跃: {{ scope.row.activeTime | dateFormat }}</div> <div>活跃: {{ scope.row.activeTime | dateFormat }}</div>
@ -135,10 +187,24 @@
<i class="el-icon-more" /> <i class="el-icon-more" />
</span> </span>
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
<el-dropdown-item v-if="scope.row.role !== 'OWN'" @click.native="clickMemberTeamChange(scope.row)">更换团队</el-dropdown-item> <el-dropdown-item
<el-dropdown-item v-if="scope.row.role !== 'OWN'" :disabled="delLoading" @click.native="clickRemoveMember(scope.row)">删除成员</el-dropdown-item> v-if="scope.row.role !== 'OWN'"
<el-dropdown-item @click.native="clickEditMemberRemarks(scope.row)">修改备注</el-dropdown-item> @click.native="clickMemberTeamChange(scope.row)"
<el-dropdown-item @click.native="clickResetTarget(scope.row)">重置目标</el-dropdown-item> >更换团队</el-dropdown-item
>
<el-dropdown-item
v-if="scope.row.role !== 'OWN'"
:disabled="delLoading"
@click.native="clickRemoveMember(scope.row)"
>删除成员</el-dropdown-item
>
<el-dropdown-item
@click.native="clickEditMemberRemarks(scope.row)"
>修改备注</el-dropdown-item
>
<el-dropdown-item @click.native="clickResetTarget(scope.row)"
>重置目标</el-dropdown-item
>
</el-dropdown-menu> </el-dropdown-menu>
</el-dropdown> </el-dropdown>
</template> </template>
@ -146,60 +212,72 @@
</el-table> </el-table>
<div v-if="listQuery.lastId" class="load-more"> <div v-if="listQuery.lastId" class="load-more">
<span v-if="notData">已加载全部</span> <span v-if="notData">已加载全部</span>
<el-button v-else size="mini" :disabled="loadMoreLoading" :loading="loadMoreLoading" @click="clickLoadMore">加载更多</el-button> <el-button
v-else
size="mini"
:disabled="loadMoreLoading"
:loading="loadMoreLoading"
@click="clickLoadMore"
>加载更多</el-button
>
</div> </div>
<team-member-add <team-member-add
v-if="teamMebmerAddVisible" v-if="teamMebmerAddVisible"
:sys-origin="listQuery.sysOrigin" :sys-origin="listQuery.sysOrigin"
@close="teamMebmerAddVisible=false" @close="teamMebmerAddVisible = false"
@success="teamMebmerAddSuccess" @success="teamMebmerAddSuccess"
/> />
<team-member-remark <team-member-remark
v-if="teamMebmerRemarkVisible" v-if="teamMebmerRemarkVisible"
:row="thatRow" :row="thatRow"
@close="teamMebmerRemarkVisible=false" @close="teamMebmerRemarkVisible = false"
@success="teamMebmerRemarkSuccess" @success="teamMebmerRemarkSuccess"
/> />
<team-member-change <team-member-change
v-if="teamMemberChangeVisible" v-if="teamMemberChangeVisible"
:row="thatRow" :row="thatRow"
@close="teamMemberChangeVisible=false" @close="teamMemberChangeVisible = false"
@success="teamMemberChangeSuccess" @success="teamMemberChangeSuccess"
/> />
<team-details-drawer <team-details-drawer
v-if="teamDetailsDrawerVisible" v-if="teamDetailsDrawerVisible"
:team-id="thatRow.teamProfile.id" :team-id="thatRow.teamProfile.id"
@close="teamDetailsDrawerVisible=false" @close="teamDetailsDrawerVisible = false"
/> />
<team-member-target-reset <team-member-target-reset
v-if="teamMemberTargetResetVisible" v-if="teamMemberTargetResetVisible"
:row="thatRow" :row="thatRow"
@close="teamMemberTargetResetVisible=false" @close="teamMemberTargetResetVisible = false"
/> />
</div> </div>
</template> </template>
<script> <script>
import { listMemberTable, removeTeamMember } from '@/api/team' import { listMemberTable, removeTeamMember } from "@/api/team";
import { pickerOptions } from '@/constant/el-const' import { pickerOptions } from "@/constant/el-const";
import { sysOriginPlatforms } from '@/constant/origin' import { sysOriginPlatforms } from "@/constant/origin";
import { teamMemberRoles, teamMemberRoleMap } from '@/constant/team-type' import { teamMemberRoles, teamMemberRoleMap } from "@/constant/team-type";
import { mapGetters } from 'vuex' import { mapGetters } from "vuex";
import TeamMemberAdd from './team-member-add' import TeamMemberAdd from "./team-member-add";
import TeamMemberRemark from './team-member-remark' import TeamMemberRemark from "./team-member-remark";
import TeamMemberChange from './team-member-change' import TeamMemberChange from "./team-member-change";
import TeamMemberTargetReset from './team-member-target-reset' import TeamMemberTargetReset from "./team-member-target-reset";
import TeamDetailsDrawer from './../components/TeamDetailsDrawer' import TeamDetailsDrawer from "./../components/TeamDetailsDrawer";
export default { export default {
components: { TeamMemberTargetReset, TeamMemberAdd, TeamMemberRemark, TeamMemberChange, TeamDetailsDrawer }, components: {
TeamMemberTargetReset,
TeamMemberAdd,
TeamMemberRemark,
TeamMemberChange,
TeamDetailsDrawer
},
data() { data() {
return { return {
teamMemberTargetResetVisible: false, teamMemberTargetResetVisible: false,
@ -214,30 +292,30 @@ export default {
delLoading: false, delLoading: false,
selectMemberIds: [], selectMemberIds: [],
pickerOptions, pickerOptions,
cardTeamId: '', cardTeamId: "",
cardSysOrigin: '', cardSysOrigin: "",
listQuery: { listQuery: {
limit: 20, limit: 20,
teamId: '', teamId: "",
memberId: '', memberId: "",
sysOrigin: '', sysOrigin: "",
role: '', role: "",
lastId: '', lastId: "",
startTime: '', startTime: "",
endTime: '', endTime: "",
notActiveDays: '', notActiveDays: "",
ownUserId: '' ownUserId: ""
}, },
listLoading: false, listLoading: false,
list: [], list: [],
notData: false, notData: false,
loadMoreLoading: false, loadMoreLoading: false,
rangeDate: '', rangeDate: "",
selectTableRow: [] selectTableRow: []
} };
}, },
computed: { computed: {
...mapGetters(['permissionsSysOriginPlatforms']) ...mapGetters(["permissionsSysOriginPlatforms"])
}, },
watch: { watch: {
rangeDate: { rangeDate: {
@ -245,162 +323,174 @@ export default {
deep: true, deep: true,
handler(newVal) { handler(newVal) {
if (newVal && newVal.length > 0) { if (newVal && newVal.length > 0) {
this.listQuery.startTime = newVal[0] this.listQuery.startTime = newVal[0];
this.listQuery.endTime = newVal[1] this.listQuery.endTime = newVal[1];
return return;
} }
this.listQuery.startTime = '' this.listQuery.startTime = "";
this.listQuery.endTime = '' this.listQuery.endTime = "";
} }
} }
}, },
created() { created() {
const that = this const that = this;
const querySystem = this.permissionsSysOriginPlatforms[0] const querySystem = this.permissionsSysOriginPlatforms[0];
if (!querySystem) { if (!querySystem) {
return return;
} }
that.listQuery.sysOrigin = querySystem.value that.listQuery.sysOrigin = querySystem.value;
that.renderData() that.renderData();
}, },
methods: { methods: {
renderData(isReset, loadMore) { renderData(isReset, loadMore) {
const that = this const that = this;
if (isReset === true) { if (isReset === true) {
that.list = [] that.list = [];
that.notData = false that.notData = false;
that.listQuery.lastId = '' that.listQuery.lastId = "";
} }
that.loadMoreLoading = loadMore that.loadMoreLoading = loadMore;
that.listLoading = !loadMore that.listLoading = !loadMore;
listMemberTable(that.listQuery).then(res => { listMemberTable(that.listQuery)
that.listLoading = false .then(res => {
that.loadMoreLoading = false that.listLoading = false;
const { body } = res that.loadMoreLoading = false;
const list = body || [] const { body } = res;
that.notData = list.length <= 0 const list = body || [];
if (!that.notData) { that.notData = list.length <= 0;
that.list = that.list.concat(list) if (!that.notData) {
that.listQuery.lastId = that.list[that.list.length - 1].id that.list = that.list.concat(list);
} that.listQuery.lastId = that.list[that.list.length - 1].id;
}).catch(er => { }
that.listLoading = false })
that.loadMoreLoading = false .catch(er => {
}) that.listLoading = false;
that.loadMoreLoading = false;
});
}, },
handleSearch() { handleSearch() {
this.renderData(true) this.renderData(true);
}, },
clickLoadMore() { clickLoadMore() {
const that = this const that = this;
that.loadMoreLoading = true that.loadMoreLoading = true;
that.renderData(false, true) that.renderData(false, true);
}, },
clickEditMemberRemarks(row) { clickEditMemberRemarks(row) {
this.thatRow = row this.thatRow = row;
this.teamMebmerRemarkVisible = true this.teamMebmerRemarkVisible = true;
}, },
clickResetTarget(row) { clickResetTarget(row) {
this.thatRow = row this.thatRow = row;
this.teamMemberTargetResetVisible = true this.teamMemberTargetResetVisible = true;
}, },
clickMemberTeamChange(row) { clickMemberTeamChange(row) {
this.thatRow = row this.thatRow = row;
this.teamMemberChangeVisible = row this.teamMemberChangeVisible = row;
}, },
clickRemoveMember(row, index) { clickRemoveMember(row, index) {
const that = this const that = this;
if (that.delLoading) { if (that.delLoading) {
that.$opsMessage.warn('正在提交处理中!') that.$opsMessage.warn("正在提交处理中!");
return return;
} }
that.$confirm('是否确认删除, 本期账单工作数据将会同步移除?', '提示', { that
confirmButtonText: '确定', .$confirm("是否确认删除, 本期账单工作数据将会同步移除?", "提示", {
cancelButtonText: '取消', confirmButtonText: "确定",
type: 'warning' cancelButtonText: "取消",
}).then(() => { type: "warning"
that.delLoading = true
removeTeamMember({ ids: [row.id] }).then(res => {
that.$opsMessage.success()
that.delLoading = false
that.list.splice(index, 1)
that.listQuery.lastId = that.list[that.list.length - 1].id
this.$refs.teamTable.clearSelection()
}) })
}).catch(() => { .then(() => {
that.delLoading = false that.delLoading = true;
}) removeTeamMember({ ids: [row.id] }).then(res => {
that.$opsMessage.success();
that.delLoading = false;
that.list.splice(index, 1);
that.listQuery.lastId = that.list[that.list.length - 1].id;
this.$refs.teamTable.clearSelection();
});
})
.catch(() => {
that.delLoading = false;
});
}, },
//
clickRemoveMemberBatch() { clickRemoveMemberBatch() {
const that = this const that = this;
if (that.delLoading) { if (that.delLoading) {
that.$opsMessage.warn('正在提交处理中!') that.$opsMessage.warn("正在提交处理中!");
return return;
} }
that.selectMemberIds = that.selectTableRow.map(item => item.id) that.selectMemberIds = that.selectTableRow.map(
that.$confirm('是否确认删除, 本期账单工作数据将会同步移除?', '提示', { item => item.userProfile.id
confirmButtonText: '确定', );
cancelButtonText: '取消', that
type: 'warning' .$confirm("是否确认删除, 本期账单工作数据将会同步移除?", "提示", {
}).then(() => { confirmButtonText: "确定",
that.delLoading = true cancelButtonText: "取消",
removeTeamMember({ ids: that.selectMemberIds }).then(res => { type: "warning"
that.$opsMessage.success()
that.delLoading = false
const processMemberIdStr = that.selectMemberIds.join(',')
const newList = []
that.list.forEach(row => {
if (processMemberIdStr.indexOf(row.id) < 0) {
newList.push(row)
}
})
that.list = newList
that.listQuery.lastId = that.list[that.list.length - 1].id
this.$refs.teamTable.clearSelection()
}) })
}).catch(() => { .then(() => {
that.delLoading = false that.delLoading = true;
}) removeTeamMember({ ids: that.selectMemberIds }).then(res => {
that.$opsMessage.success();
that.delLoading = false;
const processMemberIdStr = that.selectMemberIds.join(",");
const newList = [];
that.list.forEach(row => {
if (processMemberIdStr.indexOf(row.id) < 0) {
newList.push(row);
}
});
that.list = newList;
that.listQuery.lastId = that.list[that.list.length - 1].id;
this.$refs.teamTable.clearSelection();
});
})
.catch(() => {
that.delLoading = false;
});
}, },
teamMebmerAddSuccess() { teamMebmerAddSuccess() {
this.$opsMessage.success() this.$opsMessage.success();
this.teamMebmerAddVisible = false this.teamMebmerAddVisible = false;
this.renderData(true) this.renderData(true);
}, },
teamMebmerRemarkSuccess(form) { teamMebmerRemarkSuccess(form) {
this.$opsMessage.success() this.$opsMessage.success();
this.teamMebmerRemarkVisible = false this.teamMebmerRemarkVisible = false;
this.thatRow.remarks = form.remarks this.thatRow.remarks = form.remarks;
}, },
teamMemberChangeSuccess(res) { teamMemberChangeSuccess(res) {
const that = this const that = this;
that.$opsMessage.success() that.$opsMessage.success();
if (res) { if (res) {
const newList = [] const newList = [];
that.list.forEach(item => { that.list.forEach(item => {
newList.push(item.id !== that.thatRow.id ? item : res) newList.push(item.id !== that.thatRow.id ? item : res);
}) });
that.list = newList that.list = newList;
that.teamMemberChangeVisible = false that.teamMemberChangeVisible = false;
} }
}, },
editTeamProfile(row) { editTeamProfile(row) {
this.thatRow = row this.thatRow = row;
this.teamEditVisible = true this.teamEditVisible = true;
}, },
selectTableChange(list) { selectTableChange(list) {
this.selectTableRow = list this.selectTableRow = list;
}, },
tableSelectable(row) { tableSelectable(row) {
return row.role !== 'OWN' return row.role !== "OWN";
}, },
clickQueryTeamDetails(row) { clickQueryTeamDetails(row) {
this.thatRow = row this.thatRow = row;
this.teamDetailsDrawerVisible = true this.teamDetailsDrawerVisible = true;
} }
} }
} };
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.load-more { .load-more {