feat: 客户人员审核

This commit is contained in:
wangzhuo
2025-08-20 15:04:02 +08:00
parent 1fda9c6500
commit ed827b09af
12 changed files with 1145 additions and 141 deletions

View File

@@ -248,7 +248,7 @@
</uni-forms-item>
<view v-if="formData.userId" class="fab">
<button class="mini-btn btn"type="warn" @click="handleReject"> 驳回</button>
<button class="mini-btn btn" type="warn" @click="handleReject"> 驳回</button>
<button class="mini-btn btn" type="primary" @click="handleApprove"> 通过</button>
</view>
</uni-forms>
@@ -420,41 +420,13 @@ onLoad((options)=>{
}
})
})
// 选择客户人员
let handleCustomerClick = () => {
// 在起始页面跳转到test.vue页面并监听test.vue发送过来的事件数据
uni.navigateTo({
url: '/pages/business/CRM/customer/selectCustomer',
events: {
// 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据
cuSelected(data) {
console.log(data, "获取到返回的数据")
let {
cusName, // 公司名称
cusEstate, // 等级
cusId,
} = data;
customerUser.value.cusName = cusName;
if (!cusEstate) customerUser.value.sysThinkLevel = "该客户暂无等级信息,无法进行系统推荐"
formData.value.cusEstate = cusEstate;
formData.value.cusName = cusName;
formData.value.cusId = cusId;
getRecommendLevel();
}
},
success: function (res) {
// 通过eventChannel向被打开页面传送数据
res.eventChannel.emit('requestCusList', {data: {cusName: customerUser.value.cusName}})
}
})
}
// 选择职能
let handleFunctionChange = (e) => {
console.log(e.detail.value, '职能索引');
const {name} = functionalRequirementList[e.detail.value];
formData.value.functionalRequirements = name;
formData.value.function = name; // 职能需要特殊处理
getRecommendLevel();
}
@@ -618,13 +590,27 @@ let handleReject = () => {
async success(res){
if(res.confirm){
if(res.content){
await changeOfPrimaryOwnershipNoApproved({
let res = await changeOfPrimaryOwnershipNoApproved({
opinionOwn: res.content,
userId: formData.value.userId
})
uni.showToast({
title: '驳回成功'
})
if(res.code==200){
uni.showToast({
title: '操作成功',
success(){
const eventChannel = instance.getOpenerEventChannel();
eventChannel.emit('refreshOwnerChangeList')
setTimeout(()=>{
uni.navigateBack()
},1000)
}
})
}else{
uni.showToast({
title: '操作失败',
icon: 'error'
})
}
}else{
uni.showToast({
title: '操作失败!驳回原因不能为空',
@@ -644,12 +630,17 @@ let handleApprove = () => {
title: '操作成功',
success(){
setTimeout(()=>{
uni.navigateBack()
const eventChannel = instance.getOpenerEventChannel();
eventChannel.emit('refreshOwnerChangeList')
uni.navigateBack()
},1000)
}
})
}else{
uni.showToast({
title: '操作失败',
icon: 'error'
})
}
}).catch(err=>{
uni.showToast({

View File

@@ -7,7 +7,7 @@
<view class="con-body">
<view class="con-bg">
<!-- 头部 -->
<customHeader ref="customHeaderRef" :title="'客户人员归属人变更'" :leftFlag="true" :rightFlag="false">
<customHeader ref="customHeaderRef" :title="'客户人员归属人变更审核'" :leftFlag="true" :rightFlag="false">
</customHeader>
<!-- 高度来避免头部遮挡 -->
@@ -31,9 +31,9 @@
>
<view class="white-bg margin-bottom20" v-for="(item, index) in list" :key="index">
<view class="report-list" @click.stop="handleDetail(item)">
<view class="w-b-title title" >
<view class="r-list title" >
{{ item.cusName }}
<view class="r-right" :class="item.auditStatus ? '' : 'btn-edit' ">{{item.auditStatus?'':'待您审批'}}</view>
<view class="r-right" :class="item.auditStatus ? '' : 'btn-pink' ">{{item.auditStatus?'':'待您审批'}}</view>
</view>
<view class="r-list">
<view class="r-left">客户人员名称</view>
@@ -100,7 +100,7 @@ let timerId = null;
let handleSearch = () => {
// 防抖搜索 console.log(searchValue.value)
if (timerId) clearTimeout(timerId);
cssFlag.value = true;
timerId = setTimeout(async () => {
// let res = await getList(1, upOption.value.page.size)
@@ -143,13 +143,17 @@ const mescrollInit = (mescroll) => {
// 下拉刷新
const downCallback = async (mescroll) => {
try {
cssFlag.value = true;
uni.showLoading();
setTimeout(async () => {
// 重置页码为第一页
const res = await getList(1, mescroll.size || upOption.page.size);
cssFlag.value = false;
list.value = res.list;
cssFlag.value = false;
// 正确传递 total 参数
mescroll.endSuccess(res.list.length, res.total > (mescroll.size || upOption.page.size));
uni.hideLoading();
}, 500);
} catch (error) {
console.log(error)
@@ -262,12 +266,12 @@ let handleDetail = (item) => {
.white-bg {
padding-bottom: 10rpx;
.w-b-title{
.title{
align-items: flex-start;
}
}
.btn-edit{
.btn-pink{
white-space: nowrap;
}
</style>