hbchen 1 жил өмнө
parent
commit
1b63e9e0c2

+ 74 - 189
src/views/custom_manage/compontents/CauthList.vue

@@ -14,109 +14,23 @@
 		<!-- 权益拆分 -->
 		<div v-if="autharr[0] && autharr[0].RaiMerge == 2" class="qy_menuList">
 			<el-table :data="autharr[0].dataList" :show-header="false" border :span-method="spanMethod">
-				<el-table-column align="center">
+				<el-table-column align="center" :width="autharr[0].dataList[0][key].width?autharr[0].dataList[0][key].width:''" 
+				v-for="key in Object.keys(autharr[0].dataList[0])" :key="key">
 					<template slot-scope="scope">
-						<span v-if="!scope.row.PermissionTypeName">
-							{{scope.row.PermissionTypeName}}
-						</span>
-						<el-checkbox :label="scope.row.PermissionTypeName.value" v-else @change="handleCheckQY(scope.row.PermissionTypeName)"
-						v-model="scope.row.PermissionTypeName.isCheckAll" :disabled="scope.row.PermissionTypeName.isDisabled"
-						:indeterminate="scope.row.PermissionTypeName.isIndeterminate"></el-checkbox>
-					</template>
-				</el-table-column>
-				<el-table-column align="center">
-					<template slot-scope="scope">
-						<el-checkbox v-if="scope.row.medicine.value === '医药'" :label="scope.row.medicine.value" :indeterminate="scope.row.medicine.isIndeterminate"
-						@change="handleCheckQY(scope.row.medicine)" v-model="scope.row.medicine.isCheckAll" :disabled="scope.row.medicine.isDisabled"></el-checkbox>
-						<el-checkbox-group v-model="qyCheckList" v-else >
-							<el-checkbox :label="scope.row.medicine.value" class="checkbox-flex"
-							:disabled="scope.row.medicine.isDisabled">{{''}}</el-checkbox>
-						</el-checkbox-group>
-					</template>
-				</el-table-column>
-				<el-table-column align="center">
-					<template slot-scope="scope">
-						<el-checkbox v-if="scope.row.consumption.value === '消费'" :label="scope.row.consumption.value" :indeterminate="scope.row.consumption.isIndeterminate"
-						@change="handleCheckQY(scope.row.consumption)" v-model="scope.row.consumption.isCheckAll" :disabled="scope.row.consumption.isDisabled"></el-checkbox>
-						<el-checkbox-group v-model="qyCheckList" v-else >
-							<el-checkbox :label="scope.row.consumption.value" class="checkbox-flex"
-							:disabled="scope.row.consumption.isDisabled">{{''}}</el-checkbox>
-						</el-checkbox-group>
-					</template>
-				</el-table-column>
-				<el-table-column align="center">
-					<template slot-scope="scope">
-						<el-checkbox v-if="scope.row.technology.value === '科技'" :label="scope.row.technology.value" :indeterminate="scope.row.technology.isIndeterminate"
-						@change="handleCheckQY(scope.row.technology)" v-model="scope.row.technology.isCheckAll" :disabled="scope.row.technology.isDisabled"></el-checkbox>
-						<el-checkbox-group v-model="qyCheckList" v-else >
-							<el-checkbox :label="scope.row.technology.value" class="checkbox-flex"
-							:disabled="scope.row.technology.isDisabled">{{''}}</el-checkbox>
-						</el-checkbox-group>
-					</template>
-				</el-table-column>
-				<el-table-column align="center">
-					<template slot-scope="scope">
-						<el-checkbox v-if="scope.row.smart.value === '智造'" :label="scope.row.smart.value" :indeterminate="scope.row.smart.isIndeterminate"
-						@change="handleCheckQY(scope.row.smart)" v-model="scope.row.smart.isCheckAll" :disabled="scope.row.smart.isDisabled"></el-checkbox>
-						<el-checkbox-group v-model="qyCheckList" v-else >
-							<el-checkbox :label="scope.row.smart.value" class="checkbox-flex"
-							:disabled="scope.row.smart.isDisabled">{{''}}</el-checkbox>
-						</el-checkbox-group>
-					</template>
-				</el-table-column>
-				<el-table-column align="center">
-					<template slot-scope="scope">
-						<span v-if="scope.row.strategy.value === '策略'">
-							{{scope.row.strategy.value}}
-						</span>
-						<el-checkbox-group v-model="qyCheckList" v-else >
-							<el-checkbox :label="scope.row.strategy.value" class="checkbox-flex"
-							:disabled="scope.row.strategy.isDisabled">{{''}}</el-checkbox>
-						</el-checkbox-group>
-					</template>
-				</el-table-column>
-				<el-table-column align="center">
-					<template slot-scope="scope">
-						<span v-if="scope.row.experts.value === '专家'">
-							{{scope.row.experts.value}}
-						</span>
-						<el-checkbox-group v-model="qyCheckList" v-else >
-							<el-checkbox :label="scope.row.experts.value" class="checkbox-flex"
-							:disabled="scope.row.experts.isDisabled">{{''}}</el-checkbox>
-						</el-checkbox-group>
-					</template>
-				</el-table-column>
-				<el-table-column align="center">
-					<template slot-scope="scope">
-						<span v-if="scope.row.roadshow.value === '路演服务'">
-							{{scope.row.roadshow.value}}
-						</span>
-						<el-checkbox-group v-model="qyCheckList" v-else >
-							<el-checkbox :label="scope.row.roadshow.value" class="checkbox-flex"
-							:disabled="scope.row.roadshow.isDisabled">{{''}}</el-checkbox>
-						</el-checkbox-group>
-					</template>
-				</el-table-column>
-				<el-table-column align="center">
-					<template slot-scope="scope">
-						<span v-if="scope.row.choose.value === '研选订阅'">
-							{{scope.row.choose.value}}
-						</span>
-						<el-checkbox-group v-model="qyCheckList" v-else >
-							<el-checkbox :label="scope.row.choose.value" class="checkbox-flex"
-							:disabled="scope.row.choose.isDisabled">{{''}}</el-checkbox>
-						</el-checkbox-group>
-					</template>
-				</el-table-column>
-				<el-table-column align="center" width="100px">
-					<template slot-scope="scope">
-						<span v-if="scope.row.points.value === '研选扣点包'">
-							{{scope.row.points.value}}
-						</span>
-						<el-checkbox-group v-model="qyCheckList" v-else >
-							<el-checkbox :label="scope.row.points.value" class="checkbox-flex"
-							:disabled="scope.row.points.isDisabled">{{''}}</el-checkbox>
+						<!-- 主客观 区分的品种+复选框-->
+						<el-checkbox :label="scope.row[key].value" @change="handleCheckQY(scope.row[key])"
+						v-model="scope.row[key].isCheckAll" :disabled="scope.row[key].isDisabled"
+						:indeterminate="scope.row[key].isIndeterminate"
+						v-if="(scope.row[key].ids && scope.row[key].ids.length) || (scope.row[key].bothIds&& scope.row[key].bothIds.length)"></el-checkbox>
+						<!-- 不区分 只有复选框-->
+						<el-checkbox-group v-model="qyCheckList" v-else-if="typeof(scope.row[key].value)=='number'">
+							<el-checkbox :label="scope.row[key].value" class="checkbox-flex"
+							:disabled="scope.row[key].isDisabled">{{''}}</el-checkbox>
 						</el-checkbox-group>
+						<!-- 只有品种名称 -->
+						<template v-else>
+							{{scope.row[key].value}}
+						</template>
 					</template>
 				</el-table-column>
 			</el-table>
@@ -130,6 +44,20 @@
 </template>
 
 <script>
+// 权益的ID:
+/**
+ * 科技-主观(20)-客观(37)
+ * 消费-主观(21)-客观(38)
+ * 医药-主观(22)-客观(39)
+ * 智造-主观(19)-客观(36)
+ * 策略(23)
+ * 专家(29)
+ * 固收(53)
+ * 调研(54)
+ * 路演服务(30)
+ * 研选订阅(31)
+ * 研选扣点包(52)
+ */
 import { customInterence } from '@/api/api.js'
 export default {
 	name:'',
@@ -144,43 +72,36 @@ export default {
 	},
 	watch: {
 		autharr(value){
+			// console.log(value,'valuevaluevaluevalue');
 			if(value[0] && value[0].customType=='权益') this.qyCheckList = value[0].CheckList
 		},
 		qyCheckList(value){
+			let checkedIds=value||[]
 			// 根据复选框选择的情况 改变医药、消费、科技、智造、主客观复选框的状态
-			let arr = ['medicine','consumption','technology','smart']
-			for (let i = 0; i < arr.length; i++) {
-				let element = arr[i];
-				let arrLength = value.filter(item => {
-					return item == this.autharr[0].dataList[1][element].value || item == this.autharr[0].dataList[2][element].value
-				}).length
-				if(arrLength == 2){
-					this.autharr[0].dataList[0][element].isCheckAll=true
-					this.autharr[0].dataList[0][element].isIndeterminate=false
-				}else if(arrLength == 1){
-					this.autharr[0].dataList[0][element].isCheckAll=false
-					this.autharr[0].dataList[0][element].isIndeterminate=true
-				}else{
-					this.autharr[0].dataList[0][element].isCheckAll=false
-					this.autharr[0].dataList[0][element].isIndeterminate=false
-				}
-			}
-			for (let i = 0; i < 2; i++) {
-				let arrLength = value.filter(item => {
-					return item == this.autharr[0].dataList[i+1].medicine.value || item == this.autharr[0].dataList[i+1].consumption.value ||
-						item == this.autharr[0].dataList[i+1].technology.value || item == this.autharr[0].dataList[i+1].smart.value
-				}).length
-				if(arrLength == 4){
-					this.autharr[0].dataList[i+1].PermissionTypeName.isCheckAll=true
-					this.autharr[0].dataList[i+1].PermissionTypeName.isIndeterminate=false
-				}else if(arrLength == 0){
-					this.autharr[0].dataList[i+1].PermissionTypeName.isCheckAll=false
-					this.autharr[0].dataList[i+1].PermissionTypeName.isIndeterminate=false
+			this.autharr[0].dataList.map(it =>{
+				if(it.PermissionTypeName&&it.PermissionTypeName.value){
+					let idArr = [...checkedIds,...it.PermissionTypeName.ids]
+					let idArrLen = idArr.length
+					// 去重后的
+					let idRemovalArrLen = [...new Set(idArr)].length
+					it.PermissionTypeName.isCheckAll = idArrLen-idRemovalArrLen == it.PermissionTypeName.ids.length
+					it.PermissionTypeName.isIndeterminate = idArrLen-idRemovalArrLen < it.PermissionTypeName.ids.length && 
+																									idArrLen-idRemovalArrLen > 0					
 				}else{
-					this.autharr[0].dataList[i+1].PermissionTypeName.isCheckAll=false
-					this.autharr[0].dataList[i+1].PermissionTypeName.isIndeterminate=true
+					Object.values(it).forEach(permission =>{
+						if(permission.bothIds && permission.bothIds.length>1){
+							// 有主客观的
+							let idArr = [...checkedIds,...permission.bothIds]
+							let idArrLen = idArr.length
+							// 去重后的
+							let idRemovalArrLen = [...new Set(idArr)].length
+							permission.isCheckAll = idArrLen-idRemovalArrLen == permission.bothIds.length
+							permission.isIndeterminate = idArrLen-idRemovalArrLen < permission.bothIds.length && 
+																											idArrLen-idRemovalArrLen > 0
+						}
+					})
 				}
-			}
+			})
 		}
 	},
 	data () {
@@ -203,7 +124,6 @@ export default {
 				// 权益拆分
 				checkArr = this.qyCheckList
 			}
-
 			customInterence.addTryout({
 				CompanyId:this.id,
 				ChartPermissionId:checkArr.join()
@@ -230,23 +150,27 @@ export default {
 				item.Items.map((it,i)=>{
 					if(item.CheckList.includes(it.ChartPermissionId) && it.PermissionType==1){
 						// 主观被选上,将客观的ID也push上
-						item.CheckList.push(item.Items[i+1].ChartPermissionId)
+						let ob=item.Items.find(pe => pe.PermissionName == it.PermissionName && pe.PermissionType==2)
+						item.CheckList.push(ob?ob.ChartPermissionId:0)
 					}else if(!item.CheckList.includes(it.ChartPermissionId) && it.PermissionType==1){
-						if(item.CheckList.indexOf(item.Items[i+1].ChartPermissionId)!=-1){
-							item.CheckList.splice(item.CheckList.indexOf(item.Items[i+1].ChartPermissionId),1)
+						// 主观被去除,将客观的ID也去除
+						let ob=item.Items.find(pe => pe.PermissionName == it.PermissionName && pe.PermissionType==2)
+						let obIndex = item.CheckList.indexOf(ob?ob.ChartPermissionId:0)
+						if(obIndex!=-1){
+							item.CheckList.splice(obIndex,1)
 						}
 					}
 				})
 			}
 			item.CheckList = [...new Set(item.CheckList)]
-			let len = item.CheckList.length;
+			let len = item.Items.filter(it => item.CheckList.includes(it.ChartPermissionId)).length
 			item.checkAll = len === item.Items.length;
 			item.isIndeterminate = len > 0 && len < item.Items.length;
 		},
 		// 权益选择套餐方法
 		// 合并单元格
 		spanMethod({ row, rowIndex, column,columnIndex  }){
-			if([5,6,7,8,9].includes(columnIndex)){
+			if(Object.values(row)[columnIndex].merge){
 				if(rowIndex == 1){
 					return [2,1]
 				}else if(rowIndex == 2){
@@ -255,65 +179,26 @@ export default {
 			}
 		},
 		handleCheckQY(item){
-			let arr = ['medicine','consumption','technology','smart']
-			let arrCh = ['医药','消费','科技','智造']
 			// 全选
 			if(item.isCheckAll){
-				if(item.value == '主观'){
-					for (let i = 0; i < arr.length; i++) {
-						const element = arr[i];
-						this.qyCheckList.push(this.autharr[0].dataList[1][element].value)
-						this.qyCheckList = [...new Set(this.qyCheckList)]
-					}
-				}else if(item.value == '客观'){
-					for (let i = 0; i < arr.length; i++) {
-						const element = arr[i];
-						this.qyCheckList.push(this.autharr[0].dataList[2][element].value)
-						this.qyCheckList = [...new Set(this.qyCheckList)]
-					}
+				if(["客观","主观"].includes(item.value)){
+					this.qyCheckList = [...new Set([...this.qyCheckList,...item.ids])]
 				}else{
-					for (let i = 0; i < arr.length; i++) {
-						const element = arr[i];
-						const elementCh = arrCh[i];
-						if(item.value == elementCh){
-							this.qyCheckList.push(this.autharr[0].dataList[1][element].value,this.autharr[0].dataList[2][element].value)
-							this.qyCheckList = [...new Set(this.qyCheckList)]
-							break
-						}
-					}
+					this.qyCheckList = [...new Set([...this.qyCheckList,...item.bothIds])]
 				}
 			}else{ //全部不选
-				if(item.value == '主观'){
-					for (let i = 0; i < arr.length; i++) {
-						const element = arr[i];
+				if(["客观","主观"].includes(item.value)){
+					item.ids.map(pId =>{
 						// 需要删除的索引
-						let deleteIndex = this.qyCheckList.findIndex(id=> {
-							return id == this.autharr[0].dataList[1][element].value && (!this.autharr[0].dataList[2][element].isDisabled)
-						});
+						let deleteIndex = this.qyCheckList.findIndex(id=> id==pId && !(this.autharr[0].defaultAuth.includes(id)));
 						if(deleteIndex!=-1) this.qyCheckList.splice(deleteIndex,1)
-					}
-				}else if(item.value == '客观'){
-					for (let i = 0; i < arr.length; i++) {
-						const element = arr[i];
-						let deleteIndex = this.qyCheckList.findIndex(id=> {
-							return id == this.autharr[0].dataList[2][element].value && (!this.autharr[0].dataList[2][element].isDisabled)
-						});
-						if(deleteIndex!=-1) this.qyCheckList.splice(deleteIndex,1)
-					}
+					})
 				}else{
-					for (let i = 0; i < arr.length; i++) {
-						const element = arr[i];
-						const elementCh = arrCh[i];
-						if(item.value == elementCh){
-							for (let i = 0; i < 2; i++) {
-								let deleteIndex = this.qyCheckList.findIndex(id=> {
-									return id == this.autharr[0].dataList[i+1][element].value && (!this.autharr[0].dataList[i+1][element].isDisabled)
-								});
-								if(deleteIndex!=-1) this.qyCheckList.splice(deleteIndex,1)
-							}
-							break
-						}
-					}
+					item.bothIds.map(pId =>{
+						// 需要删除的索引
+						let deleteIndex = this.qyCheckList.findIndex(id=> id==pId && !(this.autharr[0].defaultAuth.includes(id)));
+						if(deleteIndex!=-1) this.qyCheckList.splice(deleteIndex,1)
+					})
 				}
 			}
 		}

+ 27 - 6
src/views/custom_manage/compontents/CpessionTable.vue

@@ -139,14 +139,35 @@ export default {
 	mounted() {
 		this.isRaiMerge = this.authList[0].RaiMerge
 		/* 处理表格数据格式 */
-		this.filterAuth = this.authList.map((item) => {
+		let tempArr=this.authList.map((item) => {
 			return item.Items;
 		});
-		this.filterAuth = this.filterAuth.flat(Infinity);
-		if(this.isRaiMerge==1){
+		tempArr = tempArr.flat(Infinity);
+		console.log(tempArr);
+		if(!this.isRaiMerge){
+			this.filterAuth = tempArr
+		}else if(this.isRaiMerge==1){
 			// 主客观合并 只取主观的
-			this.filterAuth = this.filterAuth.filter(it => {
-				return (['医药','消费','科技','智造'].includes(it.PermissionName) && it.PermissionType==1) || (!['医药','消费','科技','智造'].includes(it.PermissionName))
+			this.filterAuth = tempArr.filter(it => {
+				return it.PermissionType==1 || it.PermissionType==0
+			})
+		}else if(this.isRaiMerge==2){
+			// 主客观拆分 只取主观的
+			tempArr.map(item =>{
+				// 排下序 
+				if(item.PermissionType==1){
+					//主观 找客观
+					this.filterAuth.push(item)
+					let ob = tempArr.find(it => it.PermissionName == item.PermissionName && it.PermissionType!=1)
+					ob && this.filterAuth.push(ob)
+				}else if(item.PermissionType==0){
+					this.filterAuth.push(item)
+				}else{
+					// 客观
+					if(!this.filterAuth.find(t => t.ChartPermissionId == item.ChartPermissionId)){
+						this.filterAuth.push(item)
+					}
+				}
 			})
 		}
 		/* 选中的id数组 */
@@ -161,7 +182,7 @@ export default {
 		let check_Auth = this.filterAuth.filter((item) => {
 			return select.includes(item.ChartPermissionId);
 		});
-
+		console.log(check_Auth,'check_Auth');
 		if (this.fromType === 'edit') {
 			/* 展示表格选中的key */
 			let _this = this; 

+ 32 - 4
src/views/custom_manage/compontents/CpessionTableEquity.vue

@@ -36,6 +36,19 @@
 </template>
 
 <script>
+/**权益权限ID
+ * 科技-主观(20)-客观(37)
+ * 消费-主观(21)-客观(38)
+ * 医药-主观(22)-客观(39)
+ * 智造-主观(19)-客观(36)
+ * 策略(23)
+ * 专家(29)
+ * 固收(53)
+ * 调研(54)
+ * 路演服务(30)
+ * 研选订阅(31)
+ * 研选扣点包(52)
+ */
 export default {
 	props: {
 		authList: {
@@ -61,7 +74,7 @@ export default {
 	methods: {
 		/* 处理合并数组 */
 		getRowSpan() {
-            this.filterAuth.map((v, i, s) => {
+			this.filterAuth.map((v, i, s) => {
 				if (!v.PermissionTypeName) {
 				this.indexArrEquity.push(i);
 				}
@@ -200,9 +213,24 @@ export default {
 		}else {
 			/* 显示只有权限的数组 */
 			this.filterAuth = [];
-			this.filterAuth = check_Auth.filter((item) => {
-				return item.Status === '正式' || item.Status === '试用' || item.Status === '永续'||item.Status=='关闭'
-			});
+			check_Auth.map(item =>{
+				// 排序 以防合并问题
+				if(item.Status === '正式' || item.Status === '试用' || item.Status === '永续'||item.Status=='关闭'){
+					if(item.PermissionType==1){
+						//主观 找客观
+						this.filterAuth.push(item)
+						let ob = check_Auth.find(it => it.PermissionName == item.PermissionName && it.PermissionType!=1)
+						ob && this.filterAuth.push(ob)
+					}else if(item.PermissionType==0){
+						this.filterAuth.push(item)
+					}else{
+						// 客观
+						if(!this.filterAuth.find(t => t.ChartPermissionId == item.ChartPermissionId)){
+							this.filterAuth.push(item)
+						}
+					}
+				}
+			})
 			this.isMerge = this.filterAuth.some((item) => !item.IsMerge)
 		}
 		

+ 17 - 2
src/views/custom_manage/customList/customAllList.vue

@@ -793,8 +793,23 @@
                         let authEquity = [] //权益
                         res.Data.ListRai ? res.Data.ListRai.forEach(item => { //权益
                             // 过滤没有权限的套餐
-                            authEquity.push(item.Items.filter(it => item.CheckList.includes(it
-                                .ChartPermissionId)))
+                            let check_Auth = item.Items.filter(it => item.CheckList.includes(it.ChartPermissionId))
+                            check_Auth.map(item =>{
+                                // 排序 以防合并问题
+                                if(item.PermissionType==1){
+                                    //主观 找客观
+                                    authEquity.push(item)
+                                    let ob = check_Auth.find(it => it.PermissionName == item.PermissionName && it.PermissionType!=1)
+                                    ob && authEquity.push(ob)
+                                }else if(item.PermissionType==0){
+                                    authEquity.push(item)
+                                }else{
+                                    // 客观
+                                    if(!authEquity.find(t => t.ChartPermissionId == item.ChartPermissionId)){
+                                        authEquity.push(item)
+                                    }
+                                }
+                            })
                         }) : ''
                         this.lookAuthListEquity = authEquity.flat(Infinity) //权益
                     }

+ 93 - 139
src/views/custom_manage/customList/customList.vue

@@ -1736,8 +1736,25 @@ ShareListDialog},
 					let authEquity =[] //权益
 					res.Data.ListRai ?	res.Data.ListRai.forEach(item=> {//权益
 						// 过滤没有权限的套餐
-						authEquity.push(item.Items.filter(it => item.CheckList.includes(it.ChartPermissionId)))
+						let check_Auth = item.Items.filter(it => item.CheckList.includes(it.ChartPermissionId))
+						check_Auth.map(item =>{
+						// 排序 以防合并问题
+							if(item.PermissionType==1){
+								//主观 找客观
+								authEquity.push(item)
+								let ob = check_Auth.find(it => it.PermissionName == item.PermissionName && it.PermissionType!=1)
+								ob && authEquity.push(ob)
+							}else if(item.PermissionType==0){
+								authEquity.push(item)
+							}else{
+								// 客观
+								if(!authEquity.find(t => t.ChartPermissionId == item.ChartPermissionId)){
+									authEquity.push(item)
+								}
+							}
+						})
 					}):''
+
 					this.lookAuthListEquity = authEquity.flat(Infinity) //权益
 				}
 			})
@@ -1880,10 +1897,24 @@ ShareListDialog},
 						auth.push(obj)
 					}):
 					// 权益 RaiMerge 0不管 1合并 2拆分 所传入的数据结构不一样
+					/**权益权限ID
+					 * 科技-主观(20)-客观(37)
+					 * 消费-主观(21)-客观(38)
+					 * 医药-主观(22)-客观(39)
+					 * 智造-主观(19)-客观(36)
+					 * 策略(23)
+					 * 专家(29)
+					 * 固收(53)
+					 * 调研(54)
+					 * 路演服务(30)
+					 * 研选订阅(31)
+					 * 研选扣点包(52)
+					 */
 					res.Data.ListRai[0].RaiMerge==1?res.Data.ListRai.forEach(item=> { // 合并
+						let checkedLen = item.Items.filter(it => item.CheckList && item.CheckList.includes(it.ChartPermissionId)).length
 						let obj = {
-							checkAll:item.CheckList&&item.CheckList.length===item.Items.length?true:false,
-							isIndeterminate:item.CheckList&&item.CheckList.length>0 && item.CheckList.length<item.Items.length,
+							checkAll:checkedLen === item.Items.length,
+							isIndeterminate:checkedLen > 0 && checkedLen < item.Items.length,
 							defaultAuth:item.CheckList,
 							...item,
 						}
@@ -1895,145 +1926,68 @@ ShareListDialog},
 							...item,
 						}	
 						// 组合所需的数据格式
-						obj.dataList=[
-							{
-								PermissionTypeName:'',
-								medicine:{
-									value:'医药',
-									isIndeterminate:item.CheckList.filter(id => [obj.Items[0].ChartPermissionId,obj.Items[1].ChartPermissionId].includes(id)).length ==1,
-									isCheckAll:item.CheckList.filter(id => [obj.Items[0].ChartPermissionId,obj.Items[1].ChartPermissionId].includes(id)).length == 2,
-									isDisabled:item.CheckList.filter(id => [obj.Items[0].ChartPermissionId,obj.Items[1].ChartPermissionId].includes(id)).length ==2
-								},
-								consumption:{
-									value:'消费',
-									isIndeterminate:item.CheckList.filter(id => [obj.Items[2].ChartPermissionId,obj.Items[3].ChartPermissionId].includes(id)).length ==1,
-									isCheckAll:item.CheckList.filter(id => [obj.Items[2].ChartPermissionId,obj.Items[3].ChartPermissionId].includes(id)).length == 2,
-									isDisabled:item.CheckList.filter(id => [obj.Items[2].ChartPermissionId,obj.Items[3].ChartPermissionId].includes(id)).length ==2
-								},
-								technology:{
-									value:'科技',
-									isIndeterminate:item.CheckList.filter(id => [obj.Items[4].ChartPermissionId,obj.Items[5].ChartPermissionId].includes(id)).length ==1,
-									isCheckAll:item.CheckList.filter(id => [obj.Items[4].ChartPermissionId,obj.Items[5].ChartPermissionId].includes(id)).length == 2,
-									isDisabled:item.CheckList.filter(id => [obj.Items[4].ChartPermissionId,obj.Items[5].ChartPermissionId].includes(id)).length ==2
-								},
-								smart:{
-									value:'智造',
-									isIndeterminate:item.CheckList.filter(id => [obj.Items[6].ChartPermissionId,obj.Items[7].ChartPermissionId].includes(id)).length ==1,
-									isCheckAll:item.CheckList.filter(id => [obj.Items[6].ChartPermissionId,obj.Items[7].ChartPermissionId].includes(id)).length == 2,
-									isDisabled:item.CheckList.filter(id => [obj.Items[6].ChartPermissionId,obj.Items[7].ChartPermissionId].includes(id)).length ==2
-								},
-								strategy:{
-									value:'策略'
-								},
-								experts:{
-									value:'专家'
-								},
-								roadshow:{
-									value:'路演服务'
-								},
-								choose:{
-									value:'研选订阅'
-								},
-								points:{
-									value:'研选扣点包'
-								},
-							},
-							{
-								PermissionTypeName:{
-									value:'主观',
-									isIndeterminate:[1,2,3].includes(item.CheckList.filter(id => [obj.Items[0].ChartPermissionId,obj.Items[2].ChartPermissionId,
-										obj.Items[4].ChartPermissionId,obj.Items[6].ChartPermissionId].includes(id)).length),
-									isCheckAll:item.CheckList.filter(id => [obj.Items[0].ChartPermissionId,obj.Items[2].ChartPermissionId,
-										obj.Items[4].ChartPermissionId,obj.Items[6].ChartPermissionId].includes(id)).length == 4,
-									isDisabled:item.CheckList.filter(id => [obj.Items[0].ChartPermissionId,obj.Items[2].ChartPermissionId,
-										obj.Items[4].ChartPermissionId,obj.Items[6].ChartPermissionId].includes(id)).length ==4
-								},
-								medicine:{
-									value:obj.Items[0].ChartPermissionId,
-									isDisabled:item.CheckList.includes(obj.Items[0].ChartPermissionId)
-								},
-								consumption:{
-									value:obj.Items[2].ChartPermissionId,
-									isDisabled:item.CheckList.includes(obj.Items[2].ChartPermissionId)
-								},
-								technology:{
-									value:obj.Items[4].ChartPermissionId,
-									isDisabled:item.CheckList.includes(obj.Items[4].ChartPermissionId)
-								},
-								smart:{
-									value:obj.Items[6].ChartPermissionId,
-									isDisabled:item.CheckList.includes(obj.Items[6].ChartPermissionId)
-								},
-								strategy:{
-									value:obj.Items[8].ChartPermissionId,
-									isDisabled:item.CheckList.includes(obj.Items[8].ChartPermissionId)
-								},
-								experts:{
-									value:obj.Items[9].ChartPermissionId,
-									isDisabled:item.CheckList.includes(obj.Items[9].ChartPermissionId)
-								},
-								roadshow:{
-									value:obj.Items[10].ChartPermissionId,
-									isDisabled:item.CheckList.includes(obj.Items[10].ChartPermissionId)
-								},
-								choose:{
-									value:obj.Items[11].ChartPermissionId,
-									isDisabled:item.CheckList.includes(obj.Items[11].ChartPermissionId)
-								},
-								points:{
-									value:obj.Items[12].ChartPermissionId,
-									isDisabled:item.CheckList.includes(obj.Items[12].ChartPermissionId)
+						let subjectivityIds=item.Items.filter(it => it.PermissionType==1).map(it => it.ChartPermissionId)//主观的ids
+						let subjectivityLength=subjectivityIds.length//有几个主观的id
+						let subjectivityCheckedLen = item.CheckList.filter(id => subjectivityIds.includes(id)).length//选中的有几个主观的id
+						let objectivityIds=item.Items.filter(it => it.PermissionType==2).map(it => it.ChartPermissionId)//客观的ids
+						let objectivityCheckedLen = item.CheckList.filter(id => objectivityIds.includes(id)).length//有几个客观的id
+						let objectivityLength=objectivityIds.length//选中的有几个客观的id
+						let arr = [{PermissionTypeName:''},
+											{PermissionTypeName:{
+												value:'主观',
+												isIndeterminate:subjectivityCheckedLen>0 && subjectivityCheckedLen<subjectivityLength,
+												isCheckAll:subjectivityCheckedLen == subjectivityLength,
+												isDisabled:subjectivityCheckedLen == subjectivityLength,
+												ids:subjectivityIds
+											}},
+											{PermissionTypeName:{
+												value:'客观',
+												isIndeterminate:objectivityCheckedLen > 0 && objectivityCheckedLen < objectivityLength,
+												isCheckAll:objectivityCheckedLen == objectivityLength,
+												isDisabled:objectivityCheckedLen == objectivityLength,
+												ids:objectivityIds
+											}}]
+						item.Items.map(cp =>{
+							if(cp.PermissionType==0){
+								// 没有主客观的权限
+								arr[0][cp.PermissionName]={
+									value:cp.PermissionName,
+									width:cp.PermissionName=='研选扣点包'?'100px':'',
+									merge:true
 								}
-							},
-							{
-								PermissionTypeName:{
-									value:'客观',
-									isIndeterminate:[1,2,3].includes(item.CheckList.filter(id => [obj.Items[1].ChartPermissionId,obj.Items[3].ChartPermissionId,
-										obj.Items[5].ChartPermissionId,obj.Items[7].ChartPermissionId].includes(id)).length),
-									isCheckAll:item.CheckList.filter(id => [obj.Items[1].ChartPermissionId,obj.Items[3].ChartPermissionId,
-										obj.Items[5].ChartPermissionId,obj.Items[7].ChartPermissionId].includes(id)).length == 4,
-									isDisabled:item.CheckList.filter(id => [obj.Items[1].ChartPermissionId,obj.Items[3].ChartPermissionId,
-										obj.Items[5].ChartPermissionId,obj.Items[7].ChartPermissionId].includes(id)).length ==4
-								},
-								medicine:{
-									value:obj.Items[1].ChartPermissionId,
-									isDisabled:item.CheckList.includes(obj.Items[1].ChartPermissionId)
-								},
-								consumption:{
-									value:obj.Items[3].ChartPermissionId,
-									isDisabled:item.CheckList.includes(obj.Items[3].ChartPermissionId)
-								},
-								technology:{
-									value:obj.Items[5].ChartPermissionId,
-									isDisabled:item.CheckList.includes(obj.Items[5].ChartPermissionId)
-								},
-								smart:{
-									value:obj.Items[7].ChartPermissionId,
-									isDisabled:item.CheckList.includes(obj.Items[7].ChartPermissionId)
-								},
-								strategy:{
-									value:obj.Items[8].ChartPermissionId,
-									isDisabled:item.CheckList.includes(obj.Items[8].ChartPermissionId)
-								},
-								experts:{
-									value:obj.Items[9].ChartPermissionId,
-									isDisabled:item.CheckList.includes(obj.Items[9].ChartPermissionId)
-								},
-								roadshow:{
-									value:obj.Items[10].ChartPermissionId,
-									isDisabled:item.CheckList.includes(obj.Items[10].ChartPermissionId)
-								},
-								choose:{
-									value:obj.Items[11].ChartPermissionId,
-									isDisabled:item.CheckList.includes(obj.Items[11].ChartPermissionId)
-								},
-								points:{
-									value:obj.Items[12].ChartPermissionId,
-									isDisabled:item.CheckList.includes(obj.Items[12].ChartPermissionId)
+								arr[1][cp.PermissionName]={
+									value:cp.ChartPermissionId,
+									isDisabled:item.CheckList.includes(cp.ChartPermissionId),
+									merge:true
+								}
+								arr[2][cp.PermissionName]={
+									value:cp.ChartPermissionId,
+									isDisabled:item.CheckList.includes(cp.ChartPermissionId),
+									merge:true
+								}
+							}else if(cp.PermissionType==1){
+								// 找出对应的客观Id
+								let objectivity = item.Items.find(it => it.PermissionName == cp.PermissionName && it.PermissionType==2)
+								arr[0][cp.PermissionName]={
+									value:cp.PermissionName,
+									isIndeterminate:item.CheckList.filter(id => [cp.ChartPermissionId,objectivity?objectivity.ChartPermissionId:0].includes(id)).length ==1,
+									isCheckAll:item.CheckList.filter(id => [cp.ChartPermissionId,objectivity?objectivity.ChartPermissionId:0].includes(id)).length == 2,
+									isDisabled:item.CheckList.filter(id => [cp.ChartPermissionId,objectivity?objectivity.ChartPermissionId:0].includes(id)).length ==2,
+									bothIds:[cp.ChartPermissionId,objectivity?objectivity.ChartPermissionId:0]
+								}
+								arr[1][cp.PermissionName]={
+									value:cp.ChartPermissionId,
+									isDisabled:item.CheckList.includes(cp.ChartPermissionId)
+								}
+							}else{
+								// 分主客观的客观
+								arr[2][cp.PermissionName]={
+									value:cp.ChartPermissionId,
+									isDisabled:item.CheckList.includes(cp.ChartPermissionId)
 								}
 							}
-						]
-
+						})
+						obj.dataList=arr
 						auth.push(obj)
 					})
 					this.authList = auth;

+ 92 - 139
src/views/custom_manage/customList/customShareList.vue

@@ -716,7 +716,23 @@ export default {
 					let authEquity =[] //权益
 					res.Data.ListRai ?	res.Data.ListRai.forEach(item=> {//权益
 						// 过滤没有权限的套餐
-						authEquity.push(item.Items.filter(it => item.CheckList.includes(it.ChartPermissionId)))
+						let check_Auth = item.Items.filter(it => item.CheckList.includes(it.ChartPermissionId))
+						check_Auth.map(item =>{
+						// 排序 以防合并问题
+							if(item.PermissionType==1){
+								//主观 找客观
+								authEquity.push(item)
+								let ob = check_Auth.find(it => it.PermissionName == item.PermissionName && it.PermissionType!=1)
+								ob && authEquity.push(ob)
+							}else if(item.PermissionType==0){
+								authEquity.push(item)
+							}else{
+								// 客观
+								if(!authEquity.find(t => t.ChartPermissionId == item.ChartPermissionId)){
+									authEquity.push(item)
+								}
+							}
+						})
 					}):''
 					this.lookAuthListEquity = authEquity.flat(Infinity) //权益
 				}
@@ -908,10 +924,24 @@ export default {
 						auth.push(obj)
 					}):
 					// 权益 RaiMerge 0不管 1合并 2拆分 所传入的数据结构不一样
+					/**权益权限ID
+					 * 科技-主观(20)-客观(37)
+					 * 消费-主观(21)-客观(38)
+					 * 医药-主观(22)-客观(39)
+					 * 智造-主观(19)-客观(36)
+					 * 策略(23)
+					 * 专家(29)
+					 * 固收(53)
+					 * 调研(54)
+					 * 路演服务(30)
+					 * 研选订阅(31)
+					 * 研选扣点包(52)
+					 */
 					res.Data.ListRai[0].RaiMerge==1?res.Data.ListRai.forEach(item=> { // 合并
+						let checkedLen = item.Items.filter(it => item.CheckList && item.CheckList.includes(it.ChartPermissionId)).length
 						let obj = {
-							checkAll:item.CheckList&&item.CheckList.length===item.Items.length?true:false,
-							isIndeterminate:item.CheckList&&item.CheckList.length>0 && item.CheckList.length<item.Items.length,
+							checkAll:checkedLen === item.Items.length,
+							isIndeterminate:checkedLen > 0 && checkedLen < item.Items.length,
 							defaultAuth:item.CheckList,
 							...item,
 						}
@@ -923,145 +953,68 @@ export default {
 							...item,
 						}	
 						// 组合所需的数据格式
-						obj.dataList=[
-							{
-								PermissionTypeName:'',
-								medicine:{
-									value:'医药',
-									isIndeterminate:item.CheckList.filter(id => [obj.Items[0].ChartPermissionId,obj.Items[1].ChartPermissionId].includes(id)).length ==1,
-									isCheckAll:item.CheckList.filter(id => [obj.Items[0].ChartPermissionId,obj.Items[1].ChartPermissionId].includes(id)).length == 2,
-									isDisabled:item.CheckList.filter(id => [obj.Items[0].ChartPermissionId,obj.Items[1].ChartPermissionId].includes(id)).length ==2
-								},
-								consumption:{
-									value:'消费',
-									isIndeterminate:item.CheckList.filter(id => [obj.Items[2].ChartPermissionId,obj.Items[3].ChartPermissionId].includes(id)).length ==1,
-									isCheckAll:item.CheckList.filter(id => [obj.Items[2].ChartPermissionId,obj.Items[3].ChartPermissionId].includes(id)).length == 2,
-									isDisabled:item.CheckList.filter(id => [obj.Items[2].ChartPermissionId,obj.Items[3].ChartPermissionId].includes(id)).length ==2
-								},
-								technology:{
-									value:'科技',
-									isIndeterminate:item.CheckList.filter(id => [obj.Items[4].ChartPermissionId,obj.Items[5].ChartPermissionId].includes(id)).length ==1,
-									isCheckAll:item.CheckList.filter(id => [obj.Items[4].ChartPermissionId,obj.Items[5].ChartPermissionId].includes(id)).length == 2,
-									isDisabled:item.CheckList.filter(id => [obj.Items[4].ChartPermissionId,obj.Items[5].ChartPermissionId].includes(id)).length ==2
-								},
-								smart:{
-									value:'智造',
-									isIndeterminate:item.CheckList.filter(id => [obj.Items[6].ChartPermissionId,obj.Items[7].ChartPermissionId].includes(id)).length ==1,
-									isCheckAll:item.CheckList.filter(id => [obj.Items[6].ChartPermissionId,obj.Items[7].ChartPermissionId].includes(id)).length == 2,
-									isDisabled:item.CheckList.filter(id => [obj.Items[6].ChartPermissionId,obj.Items[7].ChartPermissionId].includes(id)).length ==2
-								},
-								strategy:{
-									value:'策略'
-								},
-								experts:{
-									value:'专家'
-								},
-								roadshow:{
-									value:'路演服务'
-								},
-								choose:{
-									value:'研选订阅'
-								},
-								points:{
-									value:'研选扣点包'
-								},
-							},
-							{
-								PermissionTypeName:{
-									value:'主观',
-									isIndeterminate:[1,2,3].includes(item.CheckList.filter(id => [obj.Items[0].ChartPermissionId,obj.Items[2].ChartPermissionId,
-										obj.Items[4].ChartPermissionId,obj.Items[6].ChartPermissionId].includes(id)).length),
-									isCheckAll:item.CheckList.filter(id => [obj.Items[0].ChartPermissionId,obj.Items[2].ChartPermissionId,
-										obj.Items[4].ChartPermissionId,obj.Items[6].ChartPermissionId].includes(id)).length == 4,
-									isDisabled:item.CheckList.filter(id => [obj.Items[0].ChartPermissionId,obj.Items[2].ChartPermissionId,
-										obj.Items[4].ChartPermissionId,obj.Items[6].ChartPermissionId].includes(id)).length ==4
-								},
-								medicine:{
-									value:obj.Items[0].ChartPermissionId,
-									isDisabled:item.CheckList.includes(obj.Items[0].ChartPermissionId)
-								},
-								consumption:{
-									value:obj.Items[2].ChartPermissionId,
-									isDisabled:item.CheckList.includes(obj.Items[2].ChartPermissionId)
-								},
-								technology:{
-									value:obj.Items[4].ChartPermissionId,
-									isDisabled:item.CheckList.includes(obj.Items[4].ChartPermissionId)
-								},
-								smart:{
-									value:obj.Items[6].ChartPermissionId,
-									isDisabled:item.CheckList.includes(obj.Items[6].ChartPermissionId)
-								},
-								strategy:{
-									value:obj.Items[8].ChartPermissionId,
-									isDisabled:item.CheckList.includes(obj.Items[8].ChartPermissionId)
-								},
-								experts:{
-									value:obj.Items[9].ChartPermissionId,
-									isDisabled:item.CheckList.includes(obj.Items[9].ChartPermissionId)
-								},
-								roadshow:{
-									value:obj.Items[10].ChartPermissionId,
-									isDisabled:item.CheckList.includes(obj.Items[10].ChartPermissionId)
-								},
-								choose:{
-									value:obj.Items[11].ChartPermissionId,
-									isDisabled:item.CheckList.includes(obj.Items[11].ChartPermissionId)
-								},
-								points:{
-									value:obj.Items[12].ChartPermissionId,
-									isDisabled:item.CheckList.includes(obj.Items[12].ChartPermissionId)
+						let subjectivityIds=item.Items.filter(it => it.PermissionType==1).map(it => it.ChartPermissionId)//主观的ids
+						let subjectivityLength=subjectivityIds.length//有几个主观的id
+						let subjectivityCheckedLen = item.CheckList.filter(id => subjectivityIds.includes(id)).length//选中的有几个主观的id
+						let objectivityIds=item.Items.filter(it => it.PermissionType==2).map(it => it.ChartPermissionId)//客观的ids
+						let objectivityCheckedLen = item.CheckList.filter(id => objectivityIds.includes(id)).length//有几个客观的id
+						let objectivityLength=objectivityIds.length//选中的有几个客观的id
+						let arr = [{PermissionTypeName:''},
+											{PermissionTypeName:{
+												value:'主观',
+												isIndeterminate:subjectivityCheckedLen>0 && subjectivityCheckedLen<subjectivityLength,
+												isCheckAll:subjectivityCheckedLen == subjectivityLength,
+												isDisabled:subjectivityCheckedLen == subjectivityLength,
+												ids:subjectivityIds
+											}},
+											{PermissionTypeName:{
+												value:'客观',
+												isIndeterminate:objectivityCheckedLen > 0 && objectivityCheckedLen < objectivityLength,
+												isCheckAll:objectivityCheckedLen == objectivityLength,
+												isDisabled:objectivityCheckedLen == objectivityLength,
+												ids:objectivityIds
+											}}]
+						item.Items.map(cp =>{
+							if(cp.PermissionType==0){
+								// 没有主客观的权限
+								arr[0][cp.PermissionName]={
+									value:cp.PermissionName,
+									width:cp.PermissionName=='研选扣点包'?'100px':'',
+									merge:true
+								}
+								arr[1][cp.PermissionName]={
+									value:cp.ChartPermissionId,
+									isDisabled:item.CheckList.includes(cp.ChartPermissionId),
+									merge:true
 								}
-							},
-							{
-								PermissionTypeName:{
-									value:'客观',
-									isIndeterminate:[1,2,3].includes(item.CheckList.filter(id => [obj.Items[1].ChartPermissionId,obj.Items[3].ChartPermissionId,
-										obj.Items[5].ChartPermissionId,obj.Items[7].ChartPermissionId].includes(id)).length),
-									isCheckAll:item.CheckList.filter(id => [obj.Items[1].ChartPermissionId,obj.Items[3].ChartPermissionId,
-										obj.Items[5].ChartPermissionId,obj.Items[7].ChartPermissionId].includes(id)).length == 4,
-									isDisabled:item.CheckList.filter(id => [obj.Items[1].ChartPermissionId,obj.Items[3].ChartPermissionId,
-										obj.Items[5].ChartPermissionId,obj.Items[7].ChartPermissionId].includes(id)).length ==4
-								},
-								medicine:{
-									value:obj.Items[1].ChartPermissionId,
-									isDisabled:item.CheckList.includes(obj.Items[1].ChartPermissionId)
-								},
-								consumption:{
-									value:obj.Items[3].ChartPermissionId,
-									isDisabled:item.CheckList.includes(obj.Items[3].ChartPermissionId)
-								},
-								technology:{
-									value:obj.Items[5].ChartPermissionId,
-									isDisabled:item.CheckList.includes(obj.Items[5].ChartPermissionId)
-								},
-								smart:{
-									value:obj.Items[7].ChartPermissionId,
-									isDisabled:item.CheckList.includes(obj.Items[7].ChartPermissionId)
-								},
-								strategy:{
-									value:obj.Items[8].ChartPermissionId,
-									isDisabled:item.CheckList.includes(obj.Items[8].ChartPermissionId)
-								},
-								experts:{
-									value:obj.Items[9].ChartPermissionId,
-									isDisabled:item.CheckList.includes(obj.Items[9].ChartPermissionId)
-								},
-								roadshow:{
-									value:obj.Items[10].ChartPermissionId,
-									isDisabled:item.CheckList.includes(obj.Items[10].ChartPermissionId)
-								},
-								choose:{
-									value:obj.Items[11].ChartPermissionId,
-									isDisabled:item.CheckList.includes(obj.Items[11].ChartPermissionId)
-								},
-								points:{
-									value:obj.Items[12].ChartPermissionId,
-									isDisabled:item.CheckList.includes(obj.Items[12].ChartPermissionId)
+								arr[2][cp.PermissionName]={
+									value:cp.ChartPermissionId,
+									isDisabled:item.CheckList.includes(cp.ChartPermissionId),
+									merge:true
+								}
+							}else if(cp.PermissionType==1){
+								// 找出对应的客观Id
+								let objectivity = item.Items.find(it => it.PermissionName == cp.PermissionName && it.PermissionType==2)
+								arr[0][cp.PermissionName]={
+									value:cp.PermissionName,
+									isIndeterminate:item.CheckList.filter(id => [cp.ChartPermissionId,objectivity?objectivity.ChartPermissionId:0].includes(id)).length ==1,
+									isCheckAll:item.CheckList.filter(id => [cp.ChartPermissionId,objectivity?objectivity.ChartPermissionId:0].includes(id)).length == 2,
+									isDisabled:item.CheckList.filter(id => [cp.ChartPermissionId,objectivity?objectivity.ChartPermissionId:0].includes(id)).length ==2,
+									bothIds:[cp.ChartPermissionId,objectivity?objectivity.ChartPermissionId:0]
+								}
+								arr[1][cp.PermissionName]={
+									value:cp.ChartPermissionId,
+									isDisabled:item.CheckList.includes(cp.ChartPermissionId)
+								}
+							}else{
+								// 分主客观的客观
+								arr[2][cp.PermissionName]={
+									value:cp.ChartPermissionId,
+									isDisabled:item.CheckList.includes(cp.ChartPermissionId)
 								}
 							}
-						]
-
+						})
+						obj.dataList=arr
 						auth.push(obj)
 					})
 					this.authList = auth;

+ 94 - 141
src/views/custom_manage/customSearch.vue

@@ -861,7 +861,23 @@ export default {
 					let authEquity =[] //权益
 					res.Data.ListRai ?	res.Data.ListRai.forEach(item=> {//权益
 						// 过滤没有权限的套餐
-						authEquity.push(item.Items.filter(it => item.CheckList.includes(it.ChartPermissionId)))
+						let check_Auth = item.Items.filter(it => item.CheckList.includes(it.ChartPermissionId))
+						check_Auth.map(item =>{
+						// 排序 以防合并问题
+							if(item.PermissionType==1){
+								//主观 找客观
+								authEquity.push(item)
+								let ob = check_Auth.find(it => it.PermissionName == item.PermissionName && it.PermissionType!=1)
+								ob && authEquity.push(ob)
+							}else if(item.PermissionType==0){
+								authEquity.push(item)
+							}else{
+								// 客观
+								if(!authEquity.find(t => t.ChartPermissionId == item.ChartPermissionId)){
+									authEquity.push(item)
+								}
+							}
+						})
 					}):''
 					this.lookAuthListEquity = authEquity.flat(Infinity) //权益
 					this.isPermissionTypeShow = this.lookAuthListEquity.some(item => !item.IsMerge)
@@ -1341,10 +1357,24 @@ export default {
 						auth.push(obj)
 					}):
 					// 权益 RaiMerge 0不管 1合并 2拆分 所传入的数据结构不一样
-					res.Data.ListRai[0].RaiMerge==1?res.Data.ListRai.forEach(item=> { // 合并
+						/**权益权限ID
+						 * 科技-主观(20)-客观(37)
+						 * 消费-主观(21)-客观(38)
+						 * 医药-主观(22)-客观(39)
+						 * 智造-主观(19)-客观(36)
+						 * 策略(23)
+						 * 专家(29)
+						 * 固收(53)
+						 * 调研(54)
+						 * 路演服务(30)
+						 * 研选订阅(31)
+						 * 研选扣点包(52)
+						*/
+					 	res.Data.ListRai[0].RaiMerge==1?res.Data.ListRai.forEach(item=> { // 合并
+						let checkedLen = item.Items.filter(it => item.CheckList && item.CheckList.includes(it.ChartPermissionId)).length
 						let obj = {
-							checkAll:item.CheckList&&item.CheckList.length===item.Items.length?true:false,
-							isIndeterminate:item.CheckList&&item.CheckList.length>0 && item.CheckList.length<item.Items.length,
+							checkAll:checkedLen === item.Items.length,
+							isIndeterminate:checkedLen > 0 && checkedLen < item.Items.length,
 							defaultAuth:item.CheckList,
 							...item,
 						}
@@ -1352,149 +1382,72 @@ export default {
 					}): res.Data.ListRai.forEach(item=> { // 拆分
 						let obj = {
 							defaultAuth:item.CheckList,
-							customType:'权益',
+							customType:item.ClassifyName,
 							...item,
 						}	
 						// 组合所需的数据格式
-						obj.dataList=[
-							{
-								PermissionTypeName:'',
-								medicine:{
-									value:'医药',
-									isIndeterminate:item.CheckList.filter(id => [obj.Items[0].ChartPermissionId,obj.Items[1].ChartPermissionId].includes(id)).length ==1,
-									isCheckAll:item.CheckList.filter(id => [obj.Items[0].ChartPermissionId,obj.Items[1].ChartPermissionId].includes(id)).length == 2,
-									isDisabled:item.CheckList.filter(id => [obj.Items[0].ChartPermissionId,obj.Items[1].ChartPermissionId].includes(id)).length ==2
-								},
-								consumption:{
-									value:'消费',
-									isIndeterminate:item.CheckList.filter(id => [obj.Items[2].ChartPermissionId,obj.Items[3].ChartPermissionId].includes(id)).length ==1,
-									isCheckAll:item.CheckList.filter(id => [obj.Items[2].ChartPermissionId,obj.Items[3].ChartPermissionId].includes(id)).length == 2,
-									isDisabled:item.CheckList.filter(id => [obj.Items[2].ChartPermissionId,obj.Items[3].ChartPermissionId].includes(id)).length ==2
-								},
-								technology:{
-									value:'科技',
-									isIndeterminate:item.CheckList.filter(id => [obj.Items[4].ChartPermissionId,obj.Items[5].ChartPermissionId].includes(id)).length ==1,
-									isCheckAll:item.CheckList.filter(id => [obj.Items[4].ChartPermissionId,obj.Items[5].ChartPermissionId].includes(id)).length == 2,
-									isDisabled:item.CheckList.filter(id => [obj.Items[4].ChartPermissionId,obj.Items[5].ChartPermissionId].includes(id)).length ==2
-								},
-								smart:{
-									value:'智造',
-									isIndeterminate:item.CheckList.filter(id => [obj.Items[6].ChartPermissionId,obj.Items[7].ChartPermissionId].includes(id)).length ==1,
-									isCheckAll:item.CheckList.filter(id => [obj.Items[6].ChartPermissionId,obj.Items[7].ChartPermissionId].includes(id)).length == 2,
-									isDisabled:item.CheckList.filter(id => [obj.Items[6].ChartPermissionId,obj.Items[7].ChartPermissionId].includes(id)).length ==2
-								},
-								strategy:{
-									value:'策略'
-								},
-								experts:{
-									value:'专家'
-								},
-								roadshow:{
-									value:'路演服务'
-								},
-								choose:{
-									value:'研选订阅'
-								},
-								points:{
-									value:'研选扣点包'
-								},
-							},
-							{
-								PermissionTypeName:{
-									value:'主观',
-									isIndeterminate:[1,2,3].includes(item.CheckList.filter(id => [obj.Items[0].ChartPermissionId,obj.Items[2].ChartPermissionId,
-										obj.Items[4].ChartPermissionId,obj.Items[6].ChartPermissionId].includes(id)).length),
-									isCheckAll:item.CheckList.filter(id => [obj.Items[0].ChartPermissionId,obj.Items[2].ChartPermissionId,
-										obj.Items[4].ChartPermissionId,obj.Items[6].ChartPermissionId].includes(id)).length == 4,
-									isDisabled:item.CheckList.filter(id => [obj.Items[0].ChartPermissionId,obj.Items[2].ChartPermissionId,
-										obj.Items[4].ChartPermissionId,obj.Items[6].ChartPermissionId].includes(id)).length ==4
-								},
-								medicine:{
-									value:obj.Items[0].ChartPermissionId,
-									isDisabled:item.CheckList.includes(obj.Items[0].ChartPermissionId)
-								},
-								consumption:{
-									value:obj.Items[2].ChartPermissionId,
-									isDisabled:item.CheckList.includes(obj.Items[2].ChartPermissionId)
-								},
-								technology:{
-									value:obj.Items[4].ChartPermissionId,
-									isDisabled:item.CheckList.includes(obj.Items[4].ChartPermissionId)
-								},
-								smart:{
-									value:obj.Items[6].ChartPermissionId,
-									isDisabled:item.CheckList.includes(obj.Items[6].ChartPermissionId)
-								},
-								strategy:{
-									value:obj.Items[8].ChartPermissionId,
-									isDisabled:item.CheckList.includes(obj.Items[8].ChartPermissionId)
-								},
-								experts:{
-									value:obj.Items[9].ChartPermissionId,
-									isDisabled:item.CheckList.includes(obj.Items[9].ChartPermissionId)
-								},
-								roadshow:{
-									value:obj.Items[10].ChartPermissionId,
-									isDisabled:item.CheckList.includes(obj.Items[10].ChartPermissionId)
-								},
-								choose:{
-									value:obj.Items[11].ChartPermissionId,
-									isDisabled:item.CheckList.includes(obj.Items[11].ChartPermissionId)
-								},
-								points:{
-									value:obj.Items[12].ChartPermissionId,
-									isDisabled:item.CheckList.includes(obj.Items[12].ChartPermissionId)
+						let subjectivityIds=item.Items.filter(it => it.PermissionType==1).map(it => it.ChartPermissionId)//主观的ids
+						let subjectivityLength=subjectivityIds.length//有几个主观的id
+						let subjectivityCheckedLen = item.CheckList.filter(id => subjectivityIds.includes(id)).length//选中的有几个主观的id
+						let objectivityIds=item.Items.filter(it => it.PermissionType==2).map(it => it.ChartPermissionId)//客观的ids
+						let objectivityCheckedLen = item.CheckList.filter(id => objectivityIds.includes(id)).length//有几个客观的id
+						let objectivityLength=objectivityIds.length//选中的有几个客观的id
+						let arr = [{PermissionTypeName:''},
+											{PermissionTypeName:{
+												value:'主观',
+												isIndeterminate:subjectivityCheckedLen>0 && subjectivityCheckedLen<subjectivityLength,
+												isCheckAll:subjectivityCheckedLen == subjectivityLength,
+												isDisabled:subjectivityCheckedLen == subjectivityLength,
+												ids:subjectivityIds
+											}},
+											{PermissionTypeName:{
+												value:'客观',
+												isIndeterminate:objectivityCheckedLen > 0 && objectivityCheckedLen < objectivityLength,
+												isCheckAll:objectivityCheckedLen == objectivityLength,
+												isDisabled:objectivityCheckedLen == objectivityLength,
+												ids:objectivityIds
+											}}]
+						item.Items.map(cp =>{
+							if(cp.PermissionType==0){
+								// 没有主客观的权限
+								arr[0][cp.PermissionName]={
+									value:cp.PermissionName,
+									width:cp.PermissionName=='研选扣点包'?'100px':'',
+									merge:true
+								}
+								arr[1][cp.PermissionName]={
+									value:cp.ChartPermissionId,
+									isDisabled:item.CheckList.includes(cp.ChartPermissionId),
+									merge:true
 								}
-							},
-							{
-								PermissionTypeName:{
-									value:'客观',
-									isIndeterminate:[1,2,3].includes(item.CheckList.filter(id => [obj.Items[1].ChartPermissionId,obj.Items[3].ChartPermissionId,
-										obj.Items[5].ChartPermissionId,obj.Items[7].ChartPermissionId].includes(id)).length),
-									isCheckAll:item.CheckList.filter(id => [obj.Items[1].ChartPermissionId,obj.Items[3].ChartPermissionId,
-										obj.Items[5].ChartPermissionId,obj.Items[7].ChartPermissionId].includes(id)).length == 4,
-									isDisabled:item.CheckList.filter(id => [obj.Items[1].ChartPermissionId,obj.Items[3].ChartPermissionId,
-										obj.Items[5].ChartPermissionId,obj.Items[7].ChartPermissionId].includes(id)).length ==4
-								},
-								medicine:{
-									value:obj.Items[1].ChartPermissionId,
-									isDisabled:item.CheckList.includes(obj.Items[1].ChartPermissionId)
-								},
-								consumption:{
-									value:obj.Items[3].ChartPermissionId,
-									isDisabled:item.CheckList.includes(obj.Items[3].ChartPermissionId)
-								},
-								technology:{
-									value:obj.Items[5].ChartPermissionId,
-									isDisabled:item.CheckList.includes(obj.Items[5].ChartPermissionId)
-								},
-								smart:{
-									value:obj.Items[7].ChartPermissionId,
-									isDisabled:item.CheckList.includes(obj.Items[7].ChartPermissionId)
-								},
-								strategy:{
-									value:obj.Items[8].ChartPermissionId,
-									isDisabled:item.CheckList.includes(obj.Items[8].ChartPermissionId)
-								},
-								experts:{
-									value:obj.Items[9].ChartPermissionId,
-									isDisabled:item.CheckList.includes(obj.Items[9].ChartPermissionId)
-								},
-								roadshow:{
-									value:obj.Items[10].ChartPermissionId,
-									isDisabled:item.CheckList.includes(obj.Items[10].ChartPermissionId)
-								},
-								choose:{
-									value:obj.Items[11].ChartPermissionId,
-									isDisabled:item.CheckList.includes(obj.Items[11].ChartPermissionId)
-								},
-								points:{
-									value:obj.Items[12].ChartPermissionId,
-									isDisabled:item.CheckList.includes(obj.Items[12].ChartPermissionId)
+								arr[2][cp.PermissionName]={
+									value:cp.ChartPermissionId,
+									isDisabled:item.CheckList.includes(cp.ChartPermissionId),
+									merge:true
+								}
+							}else if(cp.PermissionType==1){
+								// 找出对应的客观Id
+								let objectivity = item.Items.find(it => it.PermissionName == cp.PermissionName && it.PermissionType==2)
+								arr[0][cp.PermissionName]={
+									value:cp.PermissionName,
+									isIndeterminate:item.CheckList.filter(id => [cp.ChartPermissionId,objectivity?objectivity.ChartPermissionId:0].includes(id)).length ==1,
+									isCheckAll:item.CheckList.filter(id => [cp.ChartPermissionId,objectivity?objectivity.ChartPermissionId:0].includes(id)).length == 2,
+									isDisabled:item.CheckList.filter(id => [cp.ChartPermissionId,objectivity?objectivity.ChartPermissionId:0].includes(id)).length ==2,
+									bothIds:[cp.ChartPermissionId,objectivity?objectivity.ChartPermissionId:0]
+								}
+								arr[1][cp.PermissionName]={
+									value:cp.ChartPermissionId,
+									isDisabled:item.CheckList.includes(cp.ChartPermissionId)
+								}
+							}else{
+								// 分主客观的客观
+								arr[2][cp.PermissionName]={
+									value:cp.ChartPermissionId,
+									isDisabled:item.CheckList.includes(cp.ChartPermissionId)
 								}
 							}
-						]
-
+						})
+						obj.dataList=arr
 						auth.push(obj)
 					})
 					this.authList = auth;