cxmo 1 рік тому
батько
коміт
ab332e80f5

+ 10 - 0
src/api/modules/crmApi.js

@@ -129,6 +129,10 @@ const customInterence = {
     // return http.get('/custom/seller/check/list',params)
     return http.get("/custom/seller/check/listV2", params);
   },
+  /* 获取正式客户共享-原销售列表 */
+  getShareSale:(params)=>{
+    return http.get("/custom/seller/check/Sharelist2",params)
+  },
   /* 客户详情
 		CompanyId 
 	*/
@@ -481,6 +485,12 @@ const customInterence = {
   salesShareList: (params) => {
     return http.get("/custom/seller/share/list", params);
   },
+  /**
+   * 获取分配销售列表,根据用户角色返回 共享客户组 or 权益销售组
+   */
+  getShareSaleList:(params)=>{
+    return http.get("/custom/seller/share/list", params);
+  },
   /**
    * 获取 共享客户列表
    * SortParam 排序字段

+ 75 - 12
src/views/custom_manage/customList/customShareList.vue

@@ -20,10 +20,24 @@
 			@change="getTableData"
 			v-if="roleType!=='ficc_seller'"
 		  />
-          <el-select v-model="sales" placeholder="请选择分配销售" style="width: 214px; margin-right: 20px;" 
+          <!-- <el-select v-model="sales" placeholder="请选择分配销售" style="width: 214px; margin-right: 20px;" 
           clearable filterable multiple collapse-tags @change="getTableData">
             <el-option :label="item.RealName" :value="item.AdminId" v-for="item in salesArr" :key="item.AdminId" ></el-option>
-          </el-select>
+          </el-select> -->
+          <el-cascader
+            v-model="sales"
+            :options="salesArr"
+            :show-all-levels="false"
+            placeholder="请选择分配销售"
+            :props="{
+                multiple:true,
+                emitPath:false,
+                value:'AdminId',
+                label:'RealName',
+                children:'ChildrenList'
+            }"
+            @change="getTableData">
+          </el-cascader>
         </div>
         <div v-else>
             <el-button type="primary" @click="$router.push('/customCityList')">查看同城客户</el-button>
@@ -44,7 +58,7 @@
           placeholder="客户名称/社会信用码/手机号码/邮箱"
           v-model="search_txt"
           style="max-width:531px;margin-bottom: 8px;"
-          @input="getTableData"
+          @input="handleCurrentChange(1)"
           clearable>
             <i slot="prefix" class="el-input__icon el-icon-search"></i>
           </el-input>
@@ -316,7 +330,8 @@
 								</span> -->
 								<div class="font-tool" style="display:flex;flex-direction:column;">
 									<span class="editsty" v-for="item in getToolBtnList(scope.row).slice(0,3)" :key="item.type" @click="itemclickHandle({type:item.type,data:scope.row})">
-										{{item.type==='分配销售'?scope.row.ShareSellerId?'修改销售':'分配销售':item.type}}
+										<!-- {{item.type==='分配销售'?scope.row.ShareSellerId?'修改销售':'分配销售':item.type}} -->
+										{{btnName(item,scope.row)}}
 									</span>
 								</div>
 								<el-dropdown size="medium" placement="bottom-start" @command="itemclickHandle" style="height: 16px;margin-left: 5px;" v-if="getToolBtnList(scope.row).length>3">
@@ -325,7 +340,7 @@
 										<el-dropdown-menu slot="dropdown">
 											<el-dropdown-item :command="{type:item.type,data:scope.row}" 
 											v-for="item in getToolBtnList(scope.row).slice(3)" :key="item.type">
-												<span>{{item.type=='设置共享'&&scope.row.IsShare==1?'取消共享':item.type}}</span>
+												<span>{{btnName(item,scope.row)}}</span>
 											</el-dropdown-item>
 										</el-dropdown-menu>
 									</span>
@@ -360,6 +375,7 @@
 		:close-on-click-modal="false"
 		:modal-append-to-body='false'
 		:title="assignedSellerTitle"
+		class="changeSaleDia"
 		@close="cancelAssign"
 		center
 		width="444px">
@@ -368,13 +384,27 @@
 					<span style="fontSize:16px;">{{assignform.CompanyName}}</span>
 				</el-form-item>
 				<el-form-item label="分配销售" prop="SellsId">
-					<el-select
+					<!-- <el-select
 						v-model="assignform.SellsId"
 						placeholder="请选择修改的销售"
 						style="width: 240px"
 						filterable>
 						<el-option :label="item.RealName" :value="item.AdminId" v-for="item in salesArr" :key="item.AdminId"></el-option>
-					</el-select>
+					</el-select> -->
+					<el-cascader
+						v-model="assignform.SellsId"
+						:options="salesArr"
+						:show-all-levels="false"
+						placeholder="请选择分配销售"
+						style="width: 240px"
+						:props="{
+							multiple:false,
+							emitPath:false,
+							value:'AdminId',
+							label:'RealName',
+							children:'ChildrenList'
+						}">
+					</el-cascader>
 				</el-form-item>
 			</el-form>	
 			<div style="display:flex;justify-content:center;margin:60px 0 35px;">
@@ -566,6 +596,12 @@ export default {
 		};
 	},
 	methods: {
+		// 用于返回按钮名称
+		btnName(btnItem,row){
+			if(btnItem.code=='BtnShare') return row.IsShare===1?'取消共享':'设置共享'
+			if(btnItem.code=='BtnModifySeller') return row.ShareSellerId?'修改销售':'分配销售'
+			return btnItem.type
+		},
 		/* 获取表格 */
 		getTableData() {
 			this.isShowloadding = true;
@@ -597,12 +633,22 @@ export default {
 				}
 			})
 		},
-		/* 获取销售 */
+		/* 获取可分配销售 */
 		getSale() {
-			customInterence.salesShareList().then(res => {
-				console.log(res);
+			customInterence.getShareSaleList().then(res => {
 				if(res.Ret === 200) {
 					this.salesArr = res.Data|| []
+					//无子级的组无法选择
+					const filterNodes = (arr)=>{
+						arr.length &&arr.forEach((item) => {
+							item.ChildrenList && filterNodes(item.ChildrenList);
+							if (!Number(item.AdminId)&&!item.ChildrenList) {
+								item.disabled = true
+							}
+						})
+					}
+					filterNodes(this.salesArr)
+					console.log('salesArr',this.salesArr)
 				}
 			})
 		},
@@ -620,7 +666,7 @@ export default {
 			const {BtnItem} = data
 			for(const i in this.btnCommandList){
 				if(BtnItem[i]){
-					toolList.push({type:this.btnCommandList[i]})
+					toolList.push({type:this.btnCommandList[i],code:i+''})
 				}
 			}
 			return toolList
@@ -682,6 +728,9 @@ export default {
 				CompanyId:row.CompanyId,
 				SellsId:row.ShareSellerId==0?'':row.ShareSellerId+'',
 			}
+			//根据当前角色 获取salesArr
+			//若是ficc角色 取咨询组销售(一级)
+			//若是rai角色 去权益销售组(多级)
 			this.assignedSellerShow = true;
 		},
 		/* 页码改变 */
@@ -700,6 +749,10 @@ export default {
 		saveAssign() {
 			this.$refs.assignform.validate((valid) => {
 				if (valid) {
+					if(!Number(this.assignform.SellsId)){
+						this.$message.warning("请选择销售而不是分组!")
+						return
+					}
 					let param={
 						CompanyId:this.assignform.CompanyId,
 						SellsId:+this.assignform.SellsId
@@ -1020,11 +1073,16 @@ export default {
 
 		/* 获取销售 */
 		getoriginalSale() {
-			let status=0;
+			/* let status=0;
 			customInterence.getSale({"Status":status}).then(res => {
 				if(res.Ret === 200) {
 					this.originalSalesArr = res.Data.List||[];
 				}
+			}) */
+			customInterence.getShareSale().then(res=>{
+				if(res.Ret === 200){
+					this.originalSalesArr = res.Data.List||[]
+				}
 			})
 		},
 	},
@@ -1045,6 +1103,11 @@ export default {
 			}
 		}
 	}
+	.changeSaleDia{
+		.el-cascader .el-input{
+			width: 100%;
+		}
+	}
 </style>
 <style lang='scss' scoped>
 	.ficc-package {

+ 1 - 1
src/views/custom_manage/customSearch.vue

@@ -1564,7 +1564,7 @@ export default {
 		btnList(btnItem,part){
 			const allBtnList=[]
 			for (const key in btnItem) {
-				btnItem[key]&&key!=='BtnClose' && allBtnList.push(key)
+				btnItem[key]&&key!=='BtnClose'&&key!=='BtnShare' && allBtnList.push(key)
 			}
 			if(part==='front'){
 				// 返回前三个按钮