|
|
@@ -79,6 +79,10 @@
|
|
|
<uni-icons type="home-filled" size="18" color="#3c82f8"></uni-icons>
|
|
|
<text>巡店记录</text>
|
|
|
</view>
|
|
|
+ <view class="action-btn leave-btn" v-if="item.is_job" @click="leaveSalesperson(item)">
|
|
|
+ <uni-icons type="minus" size="18" color="#f59e0b"></uni-icons>
|
|
|
+ <text>离职</text>
|
|
|
+ </view>
|
|
|
<view class="action-btn delete-btn" @click="deleteSalesperson(item.id)">
|
|
|
<uni-icons type="trash-filled" size="18" color="#e54d42"></uni-icons>
|
|
|
<text>删除</text>
|
|
|
@@ -96,7 +100,7 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
- import {ywyList,delYwy} from "@/api/hexiao";
|
|
|
+ import {ywyList,delYwy,transferStoreOwnership} from "@/api/hexiao";
|
|
|
|
|
|
export default {
|
|
|
data() {
|
|
|
@@ -208,6 +212,80 @@ export default {
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
+ leaveSalesperson(item) {
|
|
|
+ if (!item.is_job) {
|
|
|
+ uni.showToast({ title: '业务员已离职', icon: 'none' });
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ uni.showModal({
|
|
|
+ title: '确认离职',
|
|
|
+ content: `确认将${item.nick_name}设置为离职吗?`,
|
|
|
+ confirmColor: '#e54d42',
|
|
|
+ success: (res) => {
|
|
|
+ if (!res.confirm) return;
|
|
|
+ uni.showModal({
|
|
|
+ title: '门店继承',
|
|
|
+ content: '是否需要选择在职业务员进行门店继承?',
|
|
|
+ confirmText: '需要',
|
|
|
+ cancelText: '不需要',
|
|
|
+ success: (inheritRes) => {
|
|
|
+ if (inheritRes.confirm) {
|
|
|
+ this.chooseSuccessor(item);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (inheritRes.cancel) {
|
|
|
+ this.submitLeave(item.id);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ chooseSuccessor(item) {
|
|
|
+ const candidates = this.salespersonList.filter((person) => person.is_job && person.id !== item.id);
|
|
|
+ if (candidates.length === 0) {
|
|
|
+ uni.showToast({ title: '暂无可继承的在职业务员,已直接离职', icon: 'none' });
|
|
|
+ this.submitLeave(item.id);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ const itemList = candidates.map((person) => {
|
|
|
+ const phone = person.tel_ ? ` ${person.tel_}` : '';
|
|
|
+ return `${person.nick_name}${phone}`;
|
|
|
+ });
|
|
|
+ uni.showActionSheet({
|
|
|
+ itemList,
|
|
|
+ success: (res) => {
|
|
|
+ const selected = candidates[res.tapIndex];
|
|
|
+ if (selected) {
|
|
|
+ this.submitLeave(item.id, selected.id);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ fail: () => {
|
|
|
+ this.submitLeave(item.id);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ submitLeave(ywyId, inheritYwyId) {
|
|
|
+ uni.showLoading({ title: '处理中...' });
|
|
|
+ const data = {
|
|
|
+ leavingYwyId: ywyId,
|
|
|
+ inheritYwyId: inheritYwyId || 0
|
|
|
+ };
|
|
|
+ transferStoreOwnership(data)
|
|
|
+ .then((res) => {
|
|
|
+ uni.hideLoading();
|
|
|
+ if (res.code === 0) {
|
|
|
+ uni.showToast({ title: '已离职' });
|
|
|
+ this.fetchSalespeople(true);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ uni.showToast({ title: res.message || '操作失败', icon: 'none' });
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ uni.hideLoading();
|
|
|
+ uni.showToast({ title: '操作失败', icon: 'none' });
|
|
|
+ });
|
|
|
+ },
|
|
|
addNewSalesperson() {
|
|
|
console.log('跳转到新增业务员页面');
|
|
|
uni.navigateTo({ url: '/pages/hexiao/jxs/add_ywy' });
|
|
|
@@ -322,6 +400,7 @@ export default {
|
|
|
font-size: 26rpx;
|
|
|
color: #3c82f8;
|
|
|
text { margin-left: 8rpx; }
|
|
|
+ &.leave-btn { color: #f59e0b; }
|
|
|
&.delete-btn { color: #e54d42; }
|
|
|
}
|
|
|
|