| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  | <template> | 
					
						
							|  |  |  |  |   <div class="page"> | 
					
						
							|  |  |  |  |     <topBar | 
					
						
							|  |  |  |  |       v-if="topList.length > 0" | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |       :top-list="topList" | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |       :moren="moren" | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |     /> | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |     <div class="thetopbox"> | 
					
						
							|  |  |  |  |       <el-form ref="form" :model="queryParams" label-width="100px"> | 
					
						
							|  |  |  |  |         <el-row> | 
					
						
							|  |  |  |  |           <el-col :span="4"> | 
					
						
							| 
									
										
										
										
											2025-04-01 23:46:26 +08:00
										 |  |  |  |             <el-form-item :label="'会员编号'" prop="memberCode"> | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |               <el-input | 
					
						
							|  |  |  |  |                 v-model="queryParams.memberCode" | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |                 clearable | 
					
						
							|  |  |  |  |               /></el-form-item></el-col> | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |           <el-col :span="4"> | 
					
						
							| 
									
										
										
										
											2025-04-01 23:46:26 +08:00
										 |  |  |  |             <el-form-item :label="'结算期数'" prop="memberSettlePeriodId"> | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |               <el-select | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |                 v-model="queryParams.memberSettlePeriodId" | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |                 clearable | 
					
						
							| 
									
										
										
										
											2025-04-01 23:46:26 +08:00
										 |  |  |  |                 :placeholder="'请选择'" | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |               > | 
					
						
							|  |  |  |  |                 <el-option | 
					
						
							|  |  |  |  |                   v-for="item in memberSettlePeriodList" | 
					
						
							|  |  |  |  |                   :key="item.pkId" | 
					
						
							|  |  |  |  |                   :label="item.settleDate" | 
					
						
							|  |  |  |  |                   :value="item.pkId" | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |                 /> </el-select></el-form-item></el-col> | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |           <el-col :span="4"> | 
					
						
							| 
									
										
										
										
											2025-04-01 23:46:26 +08:00
										 |  |  |  |             <el-form-item :label="'展示层数'" prop="level"> | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |               <el-input | 
					
						
							|  |  |  |  |                 v-model="queryParams.level" | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |                 clearable | 
					
						
							|  |  |  |  |               /></el-form-item></el-col> | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |           <el-col :span="4"> | 
					
						
							| 
									
										
										
										
											2025-04-01 23:46:26 +08:00
										 |  |  |  |             <el-form-item :label="'是否固定'" prop="cantz"> | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |               <el-select v-model="cantz" clearable :placeholder="'请选择'"> | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |                 <el-option | 
					
						
							|  |  |  |  |                   v-for="(item, index) in tzList" | 
					
						
							|  |  |  |  |                   :key="index" | 
					
						
							|  |  |  |  |                   :label="item.label" | 
					
						
							|  |  |  |  |                   :value="item.value" | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |                 /> | 
					
						
							|  |  |  |  |               </el-select> </el-form-item></el-col> | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |           <el-col :span="4" style="margin-left: 30px"> | 
					
						
							|  |  |  |  |             <div class="searchbox"> | 
					
						
							| 
									
										
										
										
											2025-04-01 23:46:26 +08:00
										 |  |  |  |               <el-button class="searchbtn" @click="getSearch"> {{ '搜索' }}</el-button> | 
					
						
							|  |  |  |  |               <el-button @click="reChongzhi"> {{ '重置' }}</el-button> | 
					
						
							|  |  |  |  |               <el-button @click="goback"> {{ '返回' }}</el-button> | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |             </div> | 
					
						
							|  |  |  |  |           </el-col> | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |         </el-row></el-form> | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |     </div> | 
					
						
							|  |  |  |  |     <div class="theorgtree"> | 
					
						
							|  |  |  |  |       <div class="lefttop"> | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |         <div v-for="(item, index) in avaerInfoList" :key="index" class="single"> | 
					
						
							|  |  |  |  |           <img :src="item.value" alt=""> | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |           <div class="singletitle">{{ item.name }}</div> | 
					
						
							|  |  |  |  |         </div> | 
					
						
							|  |  |  |  |       </div> | 
					
						
							|  |  |  |  |       <div class="tree"> | 
					
						
							|  |  |  |  |         <div class="tree-content" @mousedown.stop="move" @wheel="handleWheel"> | 
					
						
							|  |  |  |  |           <div :style="{ transform: `scale(${scale})` }"> | 
					
						
							|  |  |  |  |             <vue2-org-tree | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |               ref="orgTree" | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |               :data="data" | 
					
						
							|  |  |  |  |               collapsable | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |               :render-content="renderContent" | 
					
						
							|  |  |  |  |               v-bind="$listeners" | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |               @on-expand="onExpand" | 
					
						
							|  |  |  |  |               @on-node-click="NodeClick" | 
					
						
							|  |  |  |  |               @on-node-mouseover="onMouseover" | 
					
						
							|  |  |  |  |               @on-node-mouseout="onMouseout" | 
					
						
							|  |  |  |  |             /> | 
					
						
							|  |  |  |  |           </div> | 
					
						
							|  |  |  |  |         </div> | 
					
						
							|  |  |  |  |       </div> | 
					
						
							|  |  |  |  |     </div> | 
					
						
							|  |  |  |  |     <el-dialog | 
					
						
							|  |  |  |  |       :visible.sync="ifShow" | 
					
						
							|  |  |  |  |       :close-on-click-modal="false" | 
					
						
							|  |  |  |  |       width="516px" | 
					
						
							|  |  |  |  |     > | 
					
						
							|  |  |  |  |       <div class="rendercontent"> | 
					
						
							|  |  |  |  |         <div ref="htmlContent"> | 
					
						
							|  |  |  |  |           <div class="toprender"> | 
					
						
							|  |  |  |  |             <div class="leftimg"> | 
					
						
							|  |  |  |  |               <img | 
					
						
							|  |  |  |  |                 class="img1" | 
					
						
							|  |  |  |  |                 :src="'data:image/png;base64,' + treeData.avatarUrlBase64" | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |               > | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |               <img | 
					
						
							|  |  |  |  |                 class="img2" | 
					
						
							|  |  |  |  |                 :src="'data:image/png;base64,' + treeData.countryUrl2Base64" | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |               > | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |             </div> | 
					
						
							|  |  |  |  |             <div class="centerbox"> | 
					
						
							|  |  |  |  |               <div class="lineboex"> | 
					
						
							| 
									
										
										
										
											2025-04-01 23:46:26 +08:00
										 |  |  |  |                 <div class="linetitle">{{ '会员编号' }}</div> | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |                 <div class="linecontent">{{ treeData.memberCode }}</div> | 
					
						
							|  |  |  |  |               </div> | 
					
						
							|  |  |  |  |               <div class="lineboex"> | 
					
						
							| 
									
										
										
										
											2025-04-01 23:46:26 +08:00
										 |  |  |  |                 <div class="linetitle">{{ '会员姓名' }}</div> | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |                 <div class="linecontent">{{ treeData.name }}</div> | 
					
						
							|  |  |  |  |               </div> | 
					
						
							|  |  |  |  |               <div class="lineboex"> | 
					
						
							| 
									
										
										
										
											2025-04-01 23:46:26 +08:00
										 |  |  |  |                 <div class="linetitle">{{ '支付日期' }}</div> | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |                 <div class="linecontent">{{ treeData.payDate }}</div> | 
					
						
							|  |  |  |  |               </div> | 
					
						
							|  |  |  |  |             </div> | 
					
						
							|  |  |  |  |             <div class="rightimg"> | 
					
						
							|  |  |  |  |               <img | 
					
						
							|  |  |  |  |                 :src=" | 
					
						
							|  |  |  |  |                   'data:image/png;base64,' + treeData.settleCountryUrl2Base64 | 
					
						
							|  |  |  |  |                 " | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |               > | 
					
						
							|  |  |  |  |               <div>{{ '结算国家' }}</div> | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |             </div> | 
					
						
							|  |  |  |  |           </div> | 
					
						
							|  |  |  |  |           <div class="bottomrender"> | 
					
						
							|  |  |  |  |             <div class="flexbox"> | 
					
						
							| 
									
										
										
										
											2025-04-01 23:46:26 +08:00
										 |  |  |  |               <div class="thetitle">{{ '业绩' }}({{ isLocals() }})</div> | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |               <div class="linecontent">{{ '真实新增' }}</div> | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |               <div class="linecontent">首购新增</div> | 
					
						
							|  |  |  |  |               <div class="linecontent">复购新增</div> | 
					
						
							|  |  |  |  |               <div class="linecontent">真实累计</div> | 
					
						
							|  |  |  |  |               <div class="linecontent">首购累计</div> | 
					
						
							|  |  |  |  |               <div class="linecontent">复购累计</div> | 
					
						
							|  |  |  |  |               <div class="linecontent">首购结余</div> | 
					
						
							|  |  |  |  |               <div class="linecontent">复购结余</div> | 
					
						
							| 
									
										
										
										
											2025-04-28 16:28:22 +08:00
										 |  |  |  |               <!-- <div class="linecontent">新増套数</div> | 
					
						
							|  |  |  |  |               <div class="linecontent">累计套数</div> --> | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |             </div> | 
					
						
							|  |  |  |  |             <div class="flexbox"> | 
					
						
							|  |  |  |  |               <div class="thetitle">左区</div> | 
					
						
							|  |  |  |  |               <div class="linecontent">{{ treeData.leftRealNewPv }}</div> | 
					
						
							|  |  |  |  |               <div class="linecontent">{{ treeData.leftFirstPurchaseAdd }}</div> | 
					
						
							|  |  |  |  |               <div class="linecontent"> | 
					
						
							|  |  |  |  |                 {{ treeData.leftRepeatPurchaseAdd }} | 
					
						
							|  |  |  |  |               </div> | 
					
						
							|  |  |  |  |               <div class="linecontent">{{ treeData.leftRealTotal }}</div> | 
					
						
							|  |  |  |  |               <div class="linecontent">{{ treeData.leftFirstTotal }}</div> | 
					
						
							|  |  |  |  |               <div class="linecontent"> | 
					
						
							|  |  |  |  |                 {{ treeData.leftRepeatPurchaseTotal }} | 
					
						
							|  |  |  |  |               </div> | 
					
						
							|  |  |  |  |               <div class="linecontent">{{ treeData.leftFirstSurplus }}</div> | 
					
						
							|  |  |  |  |               <div class="linecontent"> | 
					
						
							|  |  |  |  |                 {{ treeData.leftRepeatPurchaseSurplus }} | 
					
						
							|  |  |  |  |               </div> | 
					
						
							| 
									
										
										
										
											2025-04-28 16:28:22 +08:00
										 |  |  |  |               <!-- <div class="linecontent">{{ treeData.aNewBox || 0 }}</div> | 
					
						
							|  |  |  |  |               <div class="linecontent">{{ treeData.aSumBox || 0 }}</div> --> | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |             </div> | 
					
						
							|  |  |  |  |             <div class="flexbox"> | 
					
						
							|  |  |  |  |               <div class="thetitle">右区</div> | 
					
						
							|  |  |  |  |               <div class="linecontent">{{ treeData.rightRealNewPv }}</div> | 
					
						
							|  |  |  |  |               <div class="linecontent"> | 
					
						
							|  |  |  |  |                 {{ treeData.rightFirstPurchaseAdd }} | 
					
						
							|  |  |  |  |               </div> | 
					
						
							|  |  |  |  |               <div class="linecontent"> | 
					
						
							|  |  |  |  |                 {{ treeData.rightRepeatPurchaseAdd }} | 
					
						
							|  |  |  |  |               </div> | 
					
						
							|  |  |  |  |               <div class="linecontent">{{ treeData.rightRealTotal }}</div> | 
					
						
							|  |  |  |  |               <div class="linecontent">{{ treeData.rightFirstTotal }}</div> | 
					
						
							|  |  |  |  |               <div class="linecontent"> | 
					
						
							|  |  |  |  |                 {{ treeData.rightRepeatPurchaseTotal }} | 
					
						
							|  |  |  |  |               </div> | 
					
						
							|  |  |  |  |               <div class="linecontent">{{ treeData.rightFirstSurplus }}</div> | 
					
						
							|  |  |  |  |               <div class="linecontent"> | 
					
						
							|  |  |  |  |                 {{ treeData.rightRepeatPurchaseSurplus }} | 
					
						
							|  |  |  |  |               </div> | 
					
						
							| 
									
										
										
										
											2025-04-28 16:28:22 +08:00
										 |  |  |  |               <!-- <div class="linecontent">{{ treeData.bNewBox || 0 }}</div> | 
					
						
							|  |  |  |  |               <div class="linecontent">{{ treeData.bSumBox || 0 }}</div> --> | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |             </div> | 
					
						
							|  |  |  |  |           </div> | 
					
						
							|  |  |  |  |         </div> | 
					
						
							|  |  |  |  |         <div class="footerbox"> | 
					
						
							|  |  |  |  |           <div class="footerbtn btn1" @click="downloadImage">下载图片</div> | 
					
						
							|  |  |  |  |           <div class="footerbtn btn2" @click="copyText">复制文字</div> | 
					
						
							|  |  |  |  |           <!-- <div class="footerbtn btn3"  @click="goTop(treeData)">置顶</div> --> | 
					
						
							|  |  |  |  |         </div> | 
					
						
							|  |  |  |  |       </div> | 
					
						
							|  |  |  |  |     </el-dialog> | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |     <div v-show="false" ref="copyContent" class="copyContent"> | 
					
						
							| 
									
										
										
										
											2025-04-01 23:46:26 +08:00
										 |  |  |  |       <div>{{ '会员编号' }}:{{ treeData.memberCode }}</div> | 
					
						
							|  |  |  |  |       <div>{{ '会员姓名' }}:{{ treeData.name }}</div> | 
					
						
							|  |  |  |  |       <div>{{ '支付日期' }}:{{ treeData.payDate }}</div> | 
					
						
							|  |  |  |  |       <div>{{ '业绩' }}({{ isLocals() }})  左区  右区</div> | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |       <div> | 
					
						
							|  |  |  |  |         真实新增  {{ treeData.leftRealNewPv }}  {{ | 
					
						
							|  |  |  |  |           treeData.rightRealNewPv | 
					
						
							|  |  |  |  |         }} | 
					
						
							|  |  |  |  |       </div> | 
					
						
							|  |  |  |  |       <div> | 
					
						
							|  |  |  |  |         首购新增  {{ treeData.leftFirstPurchaseAdd }}  {{ | 
					
						
							|  |  |  |  |           treeData.rightFirstPurchaseAdd | 
					
						
							|  |  |  |  |         }} | 
					
						
							|  |  |  |  |       </div> | 
					
						
							|  |  |  |  |       <div> | 
					
						
							|  |  |  |  |         复购新增{{ treeData.leftRepeatPurchaseAdd }}   | 
					
						
							|  |  |  |  |         {{ treeData.rightRepeatPurchaseAdd }} | 
					
						
							|  |  |  |  |       </div> | 
					
						
							|  |  |  |  |       <div> | 
					
						
							|  |  |  |  |         真实累计{{ treeData.leftRealTotal }}  {{ | 
					
						
							|  |  |  |  |           treeData.rightRealTotal | 
					
						
							|  |  |  |  |         }} | 
					
						
							|  |  |  |  |       </div> | 
					
						
							|  |  |  |  |       <div> | 
					
						
							|  |  |  |  |         首购累计{{ treeData.leftFirstTotal }}  {{ | 
					
						
							|  |  |  |  |           treeData.rightFirstTotal | 
					
						
							|  |  |  |  |         }} | 
					
						
							|  |  |  |  |       </div> | 
					
						
							|  |  |  |  |       <div> | 
					
						
							|  |  |  |  |         复购累计 {{ treeData.leftRepeatPurchaseTotal }}  {{ | 
					
						
							|  |  |  |  |           treeData.rightRepeatPurchaseTotal | 
					
						
							|  |  |  |  |         }} | 
					
						
							|  |  |  |  |       </div> | 
					
						
							|  |  |  |  |       <div> | 
					
						
							|  |  |  |  |         首购结余{{ treeData.leftFirstSurplus }}  {{ | 
					
						
							|  |  |  |  |           treeData.rightFirstSurplus | 
					
						
							|  |  |  |  |         }} | 
					
						
							|  |  |  |  |       </div> | 
					
						
							|  |  |  |  |       <div> | 
					
						
							|  |  |  |  |         复购结余 {{ treeData.leftRepeatPurchaseSurplus }}  {{ | 
					
						
							|  |  |  |  |           treeData.rightRepeatPurchaseSurplus | 
					
						
							|  |  |  |  |         }} | 
					
						
							|  |  |  |  |       </div> | 
					
						
							|  |  |  |  |     </div> | 
					
						
							|  |  |  |  |   </div> | 
					
						
							|  |  |  |  | </template> | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  | <script> | 
					
						
							|  |  |  |  | import html2canvas from 'html2canvas' | 
					
						
							|  |  |  |  | import topBar from '@/components/topBar' | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  | import { | 
					
						
							|  |  |  |  |   getAzFramework, | 
					
						
							|  |  |  |  |   getAvarerInfo, | 
					
						
							|  |  |  |  |   getMemberSettlePeriod, | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |   getUrlBase | 
					
						
							|  |  |  |  | } from '@/api/archityecture' | 
					
						
							|  |  |  |  | import { isLocals } from '../../../utils/numberToCurrency' | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  | export default { | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |   name: 'Azjg2', | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |   components: { | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |     topBar | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |   }, | 
					
						
							|  |  |  |  |   data() { | 
					
						
							|  |  |  |  |     return { | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |       moren: 'azjg2', | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |       topList: [ | 
					
						
							|  |  |  |  |         { | 
					
						
							| 
									
										
										
										
											2025-04-01 23:46:26 +08:00
										 |  |  |  |           name: '方案一', | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |           path: 'azjg' | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |         }, | 
					
						
							|  |  |  |  |         { | 
					
						
							| 
									
										
										
										
											2025-04-01 23:46:26 +08:00
										 |  |  |  |           name: '方案二', | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |           path: 'azjg2' | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |         }, | 
					
						
							|  |  |  |  |         { | 
					
						
							| 
									
										
										
										
											2025-04-01 23:46:26 +08:00
										 |  |  |  |           name: '方案三', | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |           path: 'azjg3' | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |         }, | 
					
						
							|  |  |  |  |         { | 
					
						
							| 
									
										
										
										
											2025-04-01 23:46:26 +08:00
										 |  |  |  |           name: '方案四', | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |           path: 'azjg4' | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |         }, | 
					
						
							|  |  |  |  |         { | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |           name: '方案五', | 
					
						
							|  |  |  |  |           path: 'azjg5' | 
					
						
							|  |  |  |  |         } | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |       ], | 
					
						
							|  |  |  |  |       queryParams: { | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |         memberSettlePeriodId: '', // 期数
 | 
					
						
							|  |  |  |  |         memberCode: '', // 会员编号
 | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |         level: 5, | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |         type: 2 | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |       }, | 
					
						
							|  |  |  |  |       basicSwitch: false, | 
					
						
							|  |  |  |  |       basicInfo: { id: null, label: null }, | 
					
						
							|  |  |  |  |       data: {}, | 
					
						
							|  |  |  |  |       treeData: {}, | 
					
						
							|  |  |  |  |       ifShow: false, | 
					
						
							|  |  |  |  |       avaerInfoList: [], | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |       memberSettlePeriodList: [], // 期数
 | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |       tzList: [ | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |         { value: 0, label: '是' }, | 
					
						
							|  |  |  |  |         { value: 1, label: '否' } | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |       ], | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |       cantz: 1, // 0不可拖拽,1可拖拽
 | 
					
						
							|  |  |  |  |       scale: 1 | 
					
						
							|  |  |  |  |     } | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |   }, | 
					
						
							|  |  |  |  |   created() { | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |     this.getSearch() | 
					
						
							|  |  |  |  |     this.getAvarerInfo() | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |   }, | 
					
						
							|  |  |  |  |   methods: { | 
					
						
							|  |  |  |  |     handleWheel(event) { | 
					
						
							|  |  |  |  |       if (this.cantz == 1) { | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |         event.preventDefault() | 
					
						
							|  |  |  |  |         const delta = Math.sign(event.deltaY) | 
					
						
							|  |  |  |  |         const newScale = this.scale - delta * 0.1 | 
					
						
							|  |  |  |  |         this.scale = Math.max(0.01, Math.min(newScale, 10)) | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |       } | 
					
						
							|  |  |  |  |     }, | 
					
						
							|  |  |  |  |     isLocals, | 
					
						
							|  |  |  |  |     copyText() { | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |       const copyContent = this.$refs.copyContent | 
					
						
							|  |  |  |  |       const textLines = Array.from(copyContent.querySelectorAll('div')).map( | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |         (div) => div.textContent.trim() | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |       ) | 
					
						
							|  |  |  |  |       const text = textLines.join('\n') | 
					
						
							|  |  |  |  |       const tempInput = document.createElement('textarea') | 
					
						
							|  |  |  |  |       tempInput.value = text | 
					
						
							|  |  |  |  |       document.body.appendChild(tempInput) | 
					
						
							|  |  |  |  |       tempInput.select() | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |       try { | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |         document.execCommand('copy') | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |         this.$message({ | 
					
						
							| 
									
										
										
										
											2025-04-01 23:46:26 +08:00
										 |  |  |  |           message: '复制成功', | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |           type: 'success' | 
					
						
							|  |  |  |  |         }) | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |       } catch (error) { | 
					
						
							|  |  |  |  |         this.$message({ | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |           message: '复制失败', | 
					
						
							|  |  |  |  |           type: 'warning' | 
					
						
							|  |  |  |  |         }) | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |       } | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |       tempInput.remove() | 
					
						
							|  |  |  |  |       window.getSelection().removeAllRanges() | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |     }, | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |     // 返回
 | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |     goback() { | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |       this.queryParams.memberCode = this.data.parentMemberCode | 
					
						
							|  |  |  |  |       this.getSearch() | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |     }, | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |     // 拖拽移动
 | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |     move(e) { | 
					
						
							|  |  |  |  |       if (this.cantz == 0) { | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |         return | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |       } | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |       const odiv = e.currentTarget // 获取元素
 | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |       // 算出鼠标相对元素的位置
 | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |       const disX = e.clientX - odiv.offsetLeft | 
					
						
							|  |  |  |  |       const disY = e.clientY - odiv.offsetTop | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |       document.onmousemove = (e) => { | 
					
						
							|  |  |  |  |         // 鼠标按下并移动的事件
 | 
					
						
							|  |  |  |  |         // 用鼠标的位置减去鼠标相对元素的位置,得到元素的位置
 | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |         const left = e.clientX - disX | 
					
						
							|  |  |  |  |         const top = e.clientY - disY | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |         // 绑定元素位置到positionX和positionY上面
 | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |         this.positionX = top | 
					
						
							|  |  |  |  |         this.positionY = left | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |         // 移动当前元素
 | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |         odiv.style.left = left + 'px' | 
					
						
							|  |  |  |  |         odiv.style.top = top + 'px' | 
					
						
							|  |  |  |  |       } | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |       document.onmouseup = () => { | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |         document.onmousemove = null | 
					
						
							|  |  |  |  |         document.onmouseup = null | 
					
						
							|  |  |  |  |       } | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |     }, | 
					
						
							|  |  |  |  |     async downloadImage() { | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |       const element = this.$refs.htmlContent | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |       // 使用html2canvas将节点生成为图片
 | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |       const canvas = await html2canvas(element) | 
					
						
							|  |  |  |  |       const image = canvas.toDataURL('image/png') | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |       // 复制图片到剪贴板
 | 
					
						
							|  |  |  |  |       try { | 
					
						
							|  |  |  |  |         await navigator.clipboard.write([ | 
					
						
							|  |  |  |  |           new ClipboardItem({ | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |             'image/png': await new Promise((resolve) => | 
					
						
							|  |  |  |  |               canvas.toBlob(resolve, 'image/png') | 
					
						
							|  |  |  |  |             ) | 
					
						
							|  |  |  |  |           }) | 
					
						
							|  |  |  |  |         ]) | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |         this.$message({ | 
					
						
							| 
									
										
										
										
											2025-04-01 23:46:26 +08:00
										 |  |  |  |           message: '复制成功', | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |           type: 'success' | 
					
						
							|  |  |  |  |         }) | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |       } catch (error) { | 
					
						
							|  |  |  |  |         // this.$message({
 | 
					
						
							|  |  |  |  |         //   message: "复制失败",
 | 
					
						
							|  |  |  |  |         //   type: "warning",
 | 
					
						
							|  |  |  |  |         // });
 | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  |       // 下载图片到本地
 | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |       const link = document.createElement('a') | 
					
						
							|  |  |  |  |       link.href = image | 
					
						
							|  |  |  |  |       link.download = 'image.png' | 
					
						
							|  |  |  |  |       link.click() | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |     }, | 
					
						
							|  |  |  |  |     getAvarerInfo() { | 
					
						
							|  |  |  |  |       getAvarerInfo().then((res) => { | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |         this.avaerInfoList = res.data | 
					
						
							|  |  |  |  |       }) | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |       getMemberSettlePeriod().then((res) => { | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |         this.memberSettlePeriodList = res.data | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |         this.memberSettlePeriodList.forEach((ele) => { | 
					
						
							|  |  |  |  |           if (ele.isThisDay == 0) { | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |             this.queryParams.memberSettlePeriodId = ele.pkId | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |           } | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |         }) | 
					
						
							|  |  |  |  |       }) | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |     }, | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |     // 鼠标移入
 | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |     onMouseover(e, data) { | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |       this.basicInfo = data | 
					
						
							|  |  |  |  |       this.basicSwitch = true | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |     }, | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |     // 鼠标移出
 | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |     onMouseout(e, data) { | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |       this.basicSwitch = false | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |     }, | 
					
						
							|  |  |  |  |     // <div class="xrBox">
 | 
					
						
							|  |  |  |  |     //     <div class="neibox" on-click={() => this.showPover(data)}>
 | 
					
						
							|  |  |  |  |     //       <div class="topbox">
 | 
					
						
							|  |  |  |  |     //         <img src={data.avatarUrl}></img>
 | 
					
						
							|  |  |  |  |     //       </div>
 | 
					
						
							|  |  |  |  |     //       <div class="centerbox">
 | 
					
						
							|  |  |  |  |     //         <div class="cflexbox">
 | 
					
						
							|  |  |  |  |     //           <img src={data.countryUrl}></img>
 | 
					
						
							|  |  |  |  |     //           <div class="matitle">{data.memberCode}</div>
 | 
					
						
							|  |  |  |  |     //         </div>
 | 
					
						
							|  |  |  |  |     //         <div class="cflexbox">
 | 
					
						
							|  |  |  |  |     //           <img src={data.settleCountryUrl}></img>
 | 
					
						
							|  |  |  |  |     //           <div class="matitle">{data.name}</div>
 | 
					
						
							|  |  |  |  |     //         </div>
 | 
					
						
							|  |  |  |  |     //       </div>
 | 
					
						
							|  |  |  |  |     //       <div class="footerbox">
 | 
					
						
							|  |  |  |  |     //         {/* 阻止冒泡事件 */}
 | 
					
						
							|  |  |  |  |     //         <div class="ftopbtn" on-click={() => {event.stopPropagation(),this.goTop(data)}}>置顶</div>
 | 
					
						
							|  |  |  |  |     //       </div>
 | 
					
						
							|  |  |  |  |     //     </div>
 | 
					
						
							|  |  |  |  |     //   </div>
 | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |     // 渲染节点
 | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |     renderContent(h, data) { | 
					
						
							|  |  |  |  |       return ( | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |         <div class='xrBox'> | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |           {/* 判断data.codeName是否为空 */} | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |           <div class='neibox'> | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |             {data.memberCode ? ( | 
					
						
							|  |  |  |  |               <div on-click={() => this.showPover(data)}> | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |                 <div class='topbox'> | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |                   <img src={data.settleCountryUrl2}></img> | 
					
						
							|  |  |  |  |                 </div> | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |                 <div class='footerbox'> | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |                   {/* 阻止冒泡事件 */} | 
					
						
							|  |  |  |  |                   <div | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |                     class='ftopbtn' | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |                     style={{ backgroundColor: data.color }} | 
					
						
							|  |  |  |  |                     on-click={() => { | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |                       event.stopPropagation(), this.goTop(data) | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |                     }} | 
					
						
							|  |  |  |  |                   > | 
					
						
							| 
									
										
										
										
											2025-04-01 23:46:26 +08:00
										 |  |  |  |                     {'置顶'} | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |                   </div> | 
					
						
							|  |  |  |  |                 </div> | 
					
						
							|  |  |  |  |               </div> | 
					
						
							|  |  |  |  |             ) : null} | 
					
						
							|  |  |  |  |           </div> | 
					
						
							|  |  |  |  |         </div> | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |       ) | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |     }, | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |     // 置顶
 | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |     goTop(row) { | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |       this.queryParams.memberCode = row.memberCode | 
					
						
							|  |  |  |  |       this.getSearch() | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |     }, | 
					
						
							|  |  |  |  |     showPover(row) { | 
					
						
							|  |  |  |  |       getUrlBase({ | 
					
						
							|  |  |  |  |         countryUrl2: row.countryUrl2, | 
					
						
							|  |  |  |  |         settleCountryUrl2: row.settleCountryUrl2, | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |         avatarUrl: row.avatarUrl | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |       }).then((res) => { | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |         this.treeData = row | 
					
						
							|  |  |  |  |         this.treeData.countryUrl2Base64 = res.countryUrl2Base64 | 
					
						
							|  |  |  |  |         this.treeData.settleCountryUrl2Base64 = res.settleCountryUrl2Base64 | 
					
						
							|  |  |  |  |         this.treeData.avatarUrlBase64 = res.avatarUrlBase64 | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |         this.ifShow = true | 
					
						
							|  |  |  |  |       }) | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |     }, | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |     // 点击节点
 | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |     NodeClick(e, data) {}, | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |     // 默认展开
 | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |     toggleExpand(data, val) { | 
					
						
							|  |  |  |  |       if (Array.isArray(data)) { | 
					
						
							|  |  |  |  |         data.forEach((item) => { | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |           this.$set(item, 'expand', val) | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |           if (item.children) { | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |             this.toggleExpand(item.children, val) | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |           } | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |         }) | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |       } else { | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |         this.$set(data, 'expand', val) | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |         if (data.children) { | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |           this.toggleExpand(data.children, val) | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |         } | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  |     }, | 
					
						
							|  |  |  |  |     collapse(list) { | 
					
						
							|  |  |  |  |       list.forEach((child) => { | 
					
						
							|  |  |  |  |         if (child.expand) { | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |           child.expand = false | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |         } | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |         child.children && this.collapse(child.children) | 
					
						
							|  |  |  |  |       }) | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |     }, | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |     // 展开
 | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |     onExpand(e, data) { | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |       if ('expand' in data) { | 
					
						
							|  |  |  |  |         data.expand = !data.expand | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |         if (!data.expand && data.children) { | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |           this.collapse(data.children) | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |         } | 
					
						
							|  |  |  |  |       } else { | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |         this.$set(data, 'expand', true) | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |       } | 
					
						
							|  |  |  |  |     }, | 
					
						
							|  |  |  |  |     getSearch() { | 
					
						
							|  |  |  |  |       getAzFramework(this.queryParams).then((res) => { | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |         this.data = res.data[0] | 
					
						
							|  |  |  |  |         this.toggleExpand(this.data, true) | 
					
						
							|  |  |  |  |       }) | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |     }, | 
					
						
							|  |  |  |  |     reChongzhi() { | 
					
						
							|  |  |  |  |       this.queryParams = { | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |         memberSettlePeriodId: '', // 期数
 | 
					
						
							|  |  |  |  |         memberCode: '', // 会员编号
 | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  |         level: 5, | 
					
						
							| 
									
										
										
										
											2025-04-14 17:51:17 +08:00
										 |  |  |  |         type: 2 | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  |       this.getSearch() | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |   } | 
					
						
							|  |  |  |  | } | 
					
						
							| 
									
										
										
										
											2025-03-23 09:18:42 +08:00
										 |  |  |  | </script> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   <style lang="scss" scoped> | 
					
						
							|  |  |  |  |   ::v-deep .el-dialog__headerbtn{ | 
					
						
							|  |  |  |  |   top: 5px; | 
					
						
							|  |  |  |  |   right: 10px; | 
					
						
							|  |  |  |  |   border: 1px solid #c8c3c3; | 
					
						
							|  |  |  |  |   padding: 2px 3px; | 
					
						
							|  |  |  |  |   border-radius: 50%; | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | ::v-deep .tree-content { | 
					
						
							|  |  |  |  |   background: rgba(0, 0, 0, 0) !important; | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | .tree { | 
					
						
							|  |  |  |  |   background: #fff; | 
					
						
							|  |  |  |  |   // min-height: 100vh;
 | 
					
						
							|  |  |  |  |   min-height: calc(100vh - 110px); | 
					
						
							|  |  |  |  |   position: relative; | 
					
						
							|  |  |  |  |   text-align: center; | 
					
						
							|  |  |  |  |   // overflow-x: scroll;
 | 
					
						
							|  |  |  |  |   width: 100%; | 
					
						
							|  |  |  |  |   height: 100%; | 
					
						
							|  |  |  |  |   margin: auto; | 
					
						
							|  |  |  |  |   // overflow-y: hidden;
 | 
					
						
							|  |  |  |  |   // margin-left: -60px;
 | 
					
						
							|  |  |  |  |   // margin-top: 20px;
 | 
					
						
							|  |  |  |  |   // background: red;
 | 
					
						
							|  |  |  |  |   &-content { | 
					
						
							|  |  |  |  |     text-align: center; | 
					
						
							|  |  |  |  |     width: 100%; | 
					
						
							|  |  |  |  |     height: 100%; | 
					
						
							|  |  |  |  |     background: #fff; | 
					
						
							|  |  |  |  |     position: absolute; | 
					
						
							|  |  |  |  |     top: 0; | 
					
						
							|  |  |  |  |     left: 0; | 
					
						
							|  |  |  |  |     // overflow: auto;
 | 
					
						
							|  |  |  |  |   } | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | ::v-deep .org-tree-node-btn { | 
					
						
							|  |  |  |  |   display: none; | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | ::v-deep .org-tree-node-label-inner { | 
					
						
							|  |  |  |  |   padding: 0; | 
					
						
							|  |  |  |  |   background: rgba(0, 0, 0, 0); | 
					
						
							|  |  |  |  |   padding: 0 !important; | 
					
						
							|  |  |  |  |   border: none; | 
					
						
							|  |  |  |  |   border-radius: 10px; | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | ::v-deep .el-dialog__body { | 
					
						
							|  |  |  |  |   padding: 0; | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | ::v-deep .org-tree-container { | 
					
						
							|  |  |  |  |   display: block; | 
					
						
							|  |  |  |  |   background: rgba(1, 1, 1, 0) !important; | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | ::v-deep .xrBox { | 
					
						
							|  |  |  |  |   .neibox { | 
					
						
							|  |  |  |  |     padding: 8px 15px; | 
					
						
							|  |  |  |  |     margin: auto; | 
					
						
							|  |  |  |  |     min-width: 50px; | 
					
						
							|  |  |  |  |     min-height: 50px; | 
					
						
							|  |  |  |  |     // z-index: 99;
 | 
					
						
							|  |  |  |  |     .topbox { | 
					
						
							|  |  |  |  |       margin: 0 auto; | 
					
						
							|  |  |  |  |       img { | 
					
						
							|  |  |  |  |         width: 52px; | 
					
						
							|  |  |  |  |         height: 36px; | 
					
						
							|  |  |  |  |         border-radius: 8px; | 
					
						
							|  |  |  |  |         // border-radius: 50%;
 | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |     .centerbox { | 
					
						
							|  |  |  |  |       display: flex; | 
					
						
							|  |  |  |  |       align-items: center; | 
					
						
							|  |  |  |  |       justify-content: space-between; | 
					
						
							|  |  |  |  |       padding: 10px; | 
					
						
							|  |  |  |  |       text-align: center; | 
					
						
							|  |  |  |  |       box-shadow: 0px 2px 20px 0px rgba(204, 204, 204, 0.5); | 
					
						
							|  |  |  |  |       .cflexbox { | 
					
						
							|  |  |  |  |         margin: 0 10px; | 
					
						
							|  |  |  |  |         img { | 
					
						
							|  |  |  |  |           width: 51px; | 
					
						
							|  |  |  |  |           height: 34px; | 
					
						
							|  |  |  |  |           border-radius: 10px; | 
					
						
							|  |  |  |  |           margin-bottom: 8px; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         .matitle { | 
					
						
							|  |  |  |  |           font-size: 10px; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |     .footerbox { | 
					
						
							|  |  |  |  |       // margin-top: 10px;
 | 
					
						
							|  |  |  |  |       .ftopbtn { | 
					
						
							|  |  |  |  |         margin: 0 auto; | 
					
						
							|  |  |  |  |         // width: 35px;
 | 
					
						
							|  |  |  |  |         // height: 16px;
 | 
					
						
							|  |  |  |  |         background: #21c8f4; | 
					
						
							|  |  |  |  |         border-radius: 4px; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         display: flex; | 
					
						
							|  |  |  |  |         padding: 4px 9px; | 
					
						
							|  |  |  |  |         align-items: center; | 
					
						
							|  |  |  |  |         justify-content: center; | 
					
						
							|  |  |  |  |         color: #ffffff; | 
					
						
							|  |  |  |  |         cursor: pointer; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         margin-top: 10px; | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |   } | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | .lefttop { | 
					
						
							|  |  |  |  |   display: flex; | 
					
						
							|  |  |  |  |   justify-items: center; | 
					
						
							|  |  |  |  |   align-items: center; | 
					
						
							|  |  |  |  |   padding-left: 20px; | 
					
						
							|  |  |  |  |   background: #ffffff; | 
					
						
							|  |  |  |  |   .single { | 
					
						
							|  |  |  |  |     margin: 0 5px; | 
					
						
							|  |  |  |  |     img { | 
					
						
							|  |  |  |  |       width: 40px; | 
					
						
							|  |  |  |  |       height: 40px; | 
					
						
							|  |  |  |  |       border-radius: 50%; | 
					
						
							|  |  |  |  |       // box-shadow: 0px 2px 20px 0px rgba(204, 204, 204, 0.5);
 | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |     .singletitle { | 
					
						
							|  |  |  |  |       text-align: center; | 
					
						
							|  |  |  |  |       font-size: 10px; | 
					
						
							|  |  |  |  |       font-family: PingFang SC-Regular, PingFang SC; | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |   } | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | ::v-deep .org-tree-node-label .org-tree-node-label-inner { | 
					
						
							|  |  |  |  |   padding: 0; | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | ::v-deep .el-dialog__body { | 
					
						
							|  |  |  |  |   padding: 0; | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | ::v-deep .org-tree-container { | 
					
						
							|  |  |  |  |   display: block; | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | // ::v-deep .xrBox {
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | // }
 | 
					
						
							|  |  |  |  | ::v-deep .rendercontent { | 
					
						
							|  |  |  |  |   .toprender { | 
					
						
							|  |  |  |  |     display: flex; | 
					
						
							|  |  |  |  |     border-bottom: 1px solid #cccccc; | 
					
						
							|  |  |  |  |     .leftimg { | 
					
						
							|  |  |  |  |       border-right: 1px solid #cccccc; | 
					
						
							|  |  |  |  |       flex: 1; | 
					
						
							|  |  |  |  |       display: flex; | 
					
						
							|  |  |  |  |       flex-direction: column; | 
					
						
							|  |  |  |  |       align-items: center; | 
					
						
							|  |  |  |  |       padding: 10px; | 
					
						
							|  |  |  |  |       .img1 { | 
					
						
							|  |  |  |  |         width: 75px; | 
					
						
							|  |  |  |  |         height: 75px; | 
					
						
							|  |  |  |  |         border-radius: 50%; | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  |       .img2 { | 
					
						
							|  |  |  |  |         margin-top: 10px; | 
					
						
							|  |  |  |  |         width: 50px; | 
					
						
							|  |  |  |  |         height: 30px; | 
					
						
							|  |  |  |  |         border-radius: 10px; | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |     .centerbox { | 
					
						
							|  |  |  |  |       padding: 10px; | 
					
						
							|  |  |  |  |       .lineboex { | 
					
						
							|  |  |  |  |         display: flex; | 
					
						
							|  |  |  |  |         align-items: center; | 
					
						
							|  |  |  |  |         margin: 10px 0; | 
					
						
							|  |  |  |  |         .linetitle { | 
					
						
							|  |  |  |  |           margin-right: 5px; | 
					
						
							|  |  |  |  |           font-size: 10px; | 
					
						
							|  |  |  |  |           font-family: MicrosoftYaHei-Bold, MicrosoftYaHei; | 
					
						
							|  |  |  |  |           font-weight: bold; | 
					
						
							|  |  |  |  |           color: #333333; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         .linecontent { | 
					
						
							|  |  |  |  |           font-size: 10px; | 
					
						
							|  |  |  |  |           font-family: MicrosoftYaHei; | 
					
						
							|  |  |  |  |           color: #333333; | 
					
						
							|  |  |  |  |           display: flex; | 
					
						
							|  |  |  |  |           justify-content: center; | 
					
						
							|  |  |  |  |           align-items: center; | 
					
						
							|  |  |  |  |           padding: 10px 0; | 
					
						
							|  |  |  |  |           width: 166px; | 
					
						
							|  |  |  |  |           height: 20px; | 
					
						
							|  |  |  |  |           background: rgba(216, 216, 216, 0.3); | 
					
						
							|  |  |  |  |           border-radius: 4px; | 
					
						
							|  |  |  |  |           border: 1px solid #cccccc; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |     .rightimg { | 
					
						
							|  |  |  |  |       flex: 1; | 
					
						
							|  |  |  |  |       padding: 10px; | 
					
						
							|  |  |  |  |       font-size: 10px; | 
					
						
							|  |  |  |  |       display: flex; | 
					
						
							|  |  |  |  |       align-items: center; | 
					
						
							|  |  |  |  |       flex-direction: column; | 
					
						
							|  |  |  |  |       justify-content: center; | 
					
						
							|  |  |  |  |       font-family: MicrosoftYaHei-Bold, MicrosoftYaHei; | 
					
						
							|  |  |  |  |       font-weight: bold; | 
					
						
							|  |  |  |  |       color: #333333; | 
					
						
							|  |  |  |  |       text-align: center; | 
					
						
							|  |  |  |  |       img { | 
					
						
							|  |  |  |  |         width: 75px; | 
					
						
							|  |  |  |  |         height: 50px; | 
					
						
							|  |  |  |  |         border-radius: 10px; | 
					
						
							|  |  |  |  |         margin-bottom: 10px; | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |   } | 
					
						
							|  |  |  |  |   .bottomrender { | 
					
						
							|  |  |  |  |     padding: 10px; | 
					
						
							|  |  |  |  |     display: flex; | 
					
						
							|  |  |  |  |     .flexbox { | 
					
						
							|  |  |  |  |       flex: 1; | 
					
						
							|  |  |  |  |       display: flex; | 
					
						
							|  |  |  |  |       flex-direction: column; | 
					
						
							|  |  |  |  |       align-items: center; | 
					
						
							|  |  |  |  |       .thetitle { | 
					
						
							|  |  |  |  |         font-size: 10px; | 
					
						
							|  |  |  |  |         font-family: MicrosoftYaHei-Bold, MicrosoftYaHei; | 
					
						
							|  |  |  |  |         font-weight: bold; | 
					
						
							|  |  |  |  |         color: #333333; | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  |       .linecontent { | 
					
						
							|  |  |  |  |         margin-top: 5px; | 
					
						
							|  |  |  |  |         padding: 10px 0; | 
					
						
							|  |  |  |  |         font-size: 10px; | 
					
						
							|  |  |  |  |         font-family: MicrosoftYaHei; | 
					
						
							|  |  |  |  |         color: #333333; | 
					
						
							|  |  |  |  |         display: flex; | 
					
						
							|  |  |  |  |         justify-content: center; | 
					
						
							|  |  |  |  |         align-items: center; | 
					
						
							|  |  |  |  |         width: 110px; | 
					
						
							|  |  |  |  |         height: 20px; | 
					
						
							|  |  |  |  |         background: rgba(216, 216, 216, 0.3); | 
					
						
							|  |  |  |  |         border-radius: 4px; | 
					
						
							|  |  |  |  |         border: 1px solid #cccccc; | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |   } | 
					
						
							|  |  |  |  |   .footerbox { | 
					
						
							|  |  |  |  |     display: flex; | 
					
						
							|  |  |  |  |     padding: 10px; | 
					
						
							|  |  |  |  |     justify-content: space-around; | 
					
						
							|  |  |  |  |     .footerbtn { | 
					
						
							|  |  |  |  |       width: 78px; | 
					
						
							|  |  |  |  |       height: 28px; | 
					
						
							|  |  |  |  |       border-radius: 5px; | 
					
						
							|  |  |  |  |       display: flex; | 
					
						
							|  |  |  |  |       align-items: center; | 
					
						
							|  |  |  |  |       justify-content: center; | 
					
						
							|  |  |  |  |       font-size: 14px; | 
					
						
							|  |  |  |  |       font-family: MicrosoftYaHei; | 
					
						
							|  |  |  |  |       color: #ffffff; | 
					
						
							|  |  |  |  |       padding: 10px; | 
					
						
							|  |  |  |  |       cursor: pointer; | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |     .btn1 { | 
					
						
							|  |  |  |  |       background: #ee1e26; | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |     .btn2 { | 
					
						
							|  |  |  |  |       background: #f37825; | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |     .btn3 { | 
					
						
							|  |  |  |  |       background: #21c8f4; | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |   } | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | ::v-deep .org-tree-container { | 
					
						
							|  |  |  |  |   display: block; | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | .page { | 
					
						
							|  |  |  |  |   padding: 10px 20px; | 
					
						
							|  |  |  |  |   background: #f9f9f9; | 
					
						
							|  |  |  |  |   font-size: 14px; | 
					
						
							|  |  |  |  |   .thetopbox { | 
					
						
							|  |  |  |  |     padding: 20px; | 
					
						
							|  |  |  |  |     background: #ffffff; | 
					
						
							|  |  |  |  |     border-radius: 8px; | 
					
						
							|  |  |  |  |     .searchbox { | 
					
						
							|  |  |  |  |       display: flex; | 
					
						
							|  |  |  |  |       align-items: center; | 
					
						
							|  |  |  |  |       .searchtitle { | 
					
						
							|  |  |  |  |         margin-right: 10px; | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  |       .searchbtn { | 
					
						
							|  |  |  |  |         background: #c8161d; | 
					
						
							|  |  |  |  |         color: #ffffff; | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   } | 
					
						
							|  |  |  |  |   .theorgtree { | 
					
						
							|  |  |  |  |       overflow: auto; | 
					
						
							|  |  |  |  |       // margin-top: 20px;
 | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | ::v-deep .org-tree { | 
					
						
							|  |  |  |  |   margin: 0 auto; | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | </style> |