| 
					
				 | 
			
			
				@@ -18,6 +18,12 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           :label-col="formItemLayout.labelCol" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           :wrapper-col="formItemLayout.wrapperCol" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         <div style="display:flex;justify-content: flex-end;align-items: center;" v-if="authType==0"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+           <div style="width:270px;text-align: right;flex:1;">快捷全选:</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+           <div style="padding:0 10px;"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <a-checkbox-group :value="authAllPrice" :options="priceOptions" @change="onPriceChange" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+           </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				          <div style="height: 500px;overflow-y: auto;"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             <a-tree 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             checkable 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -81,6 +87,9 @@ export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         labelCol: { span: 6 }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         wrapperCol: { span: 16 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      authAllPrice: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      leafNode:[], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      checkLeafNode:[], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       form: {}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       rules: {}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       authType: '1', 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -97,16 +106,58 @@ export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       this.halfCheckedKeys = info.halfCheckedKeys 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       this.checkedKeys = checkedKeys 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 判断某分类是否全选 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    hasAllSelect(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      console.log(this.leafNode) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      console.log(this.checkLeafNode) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.priceOptions.map(item => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const a = this.leafNode.filter(n => n.pr == item.value) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const b = this.checkLeafNode.filter(n => n.pr == item.value) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(a&&b&&a.length == b.length && !this.authAllPrice.find(d => d==item.value)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.authAllPrice.push(item.value) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 全选某分类价格 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    allSelect(data,authPrice,flag){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      const _this = this 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      for (let i = 0; i < data.length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const node = data[i] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const a = node.code.split('_') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(a[a.length-1] == authPrice){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          // 全选 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if(flag){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            _this.checkedKeys.push(node.id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 取消 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            _this.checkedKeys = _this.checkedKeys.filter(item => item != node.id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (node.children && node.children.length) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          _this.allSelect(node.children, authPrice, flag) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    onPriceChange(val){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // 全选 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if(this.authAllPrice.length < val.length){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let tempVal = val.filter(item=>!this.authAllPrice.includes(item)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        console.log(tempVal) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.allSelect(this.nowData.allMenuList, tempVal[0], true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 取消 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let tempVal = this.authAllPrice.filter(item=>!val.includes(item)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.allSelect(this.nowData.allMenuList, tempVal[0], false) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.authAllPrice = val 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // 保存提交 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     handleSubmit () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       const _this = this 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       this.$refs.ruleForm.validate(valid => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (valid) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          if (this.checkedKeys.length == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return this.$message.warning('请先选择菜单') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           const arr = [...this.checkedKeys, ...this.halfCheckedKeys, ...this.checkedData].filter((x, index,self)=>self.indexOf(x)===index)  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          console.log(arr,this.checkedData) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          console.log(this.checkedData) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           _this.spinning = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           addMenuPower({ id: this.id, menuIds: arr.join(',') }).then(res => { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -166,6 +217,9 @@ export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       const _this = this 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       for (let i = 0; i < data.length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const node = data[i] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const a = node.code.split('_') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 已选节点勾选 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const hasNode = arr.find(item => item == node.id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if(!_this.isPriceNode(node)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           // 删除此节点 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           node.checkable = false 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -176,11 +230,16 @@ export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           node.class = 'leafNode' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           _this.expandedKeys.push(node.id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          // 已选节点勾选 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          const hasNode = arr.find(item => item == node.id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          // 默认回显已选节点 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           const hasCheck = _this.checkedKeys.find(item => item == node.id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           if (hasNode && !hasCheck) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             _this.checkedKeys.push(node.id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            _this.checkLeafNode.push({pr:a[a.length-1],id:node.id}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          // 统计价格节点 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          const hasLeaf = _this.leafNode.find(item => item.id == node.id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if(!hasLeaf){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            _this.leafNode.push({pr:a[a.length-1],id:node.id}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -206,6 +265,7 @@ export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       if(this.authType == 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.findPrice(treeData, this.checkedData) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.hasAllSelect() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       this.checkedData = this.checkedData.filter(item => !this.checkedKeys.includes(item)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       // console.log(this.checkedData) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -237,6 +297,9 @@ export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.$emit('close') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.$refs.ruleForm.resetFields() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.id = '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.authAllPrice = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.checkLeafNode = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.leafNode = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.checkedKeys = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.expandedKeys = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.titleText = '新增角色' 
			 |