index.vue 51 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189
  1. <template>
  2. <div id="family">
  3. <nav>
  4. <div class="tab-box">
  5. <el-tabs v-model="value" @tab-click="chooseMedicine" type="card">
  6. <el-tab-pane v-for="item in options" :key="item.value" :label="item.label" :name="item.value"
  7. :disabled="item.disabled">{{ item.label }}
  8. </el-tab-pane>
  9. </el-tabs>
  10. </div>
  11. <div class="button-box">
  12. <el-button @click="handleClickConfig" size="small">批量配置信息点</el-button>
  13. </div>
  14. </nav>
  15. <main>
  16. <div class="left_main" v-loading="isLoading">
  17. <header>
  18. <el-input style="width:323px;" v-model="searchVal" @change="changeVal" placeholder="支持关键字、英文代号查找" clearable>
  19. <i slot="prefix" class="el-input__icon el-icon-search" style="cursor:pointer;"
  20. @click="changeVal(searchVal)"></i>
  21. </el-input>
  22. </header>
  23. <div class="family_all">
  24. <div class="family" v-for="(letter,index) in letterArr" :key="index">
  25. <div class="family_title" :id="letter">{{ letter }}</div>
  26. <div class="family_content" v-if="!searchArr.length">
  27. <ul class="family_list">
  28. <li class="family_item" @click="familyActive(family.name,family.code)"
  29. :class="active == family.name ? 'active' : ''" v-for="(family,index) in allFamily" :key="index"
  30. v-show="family.capitalize === letter">{{ family.name }}-{{ family.code }}
  31. <span
  32. v-if="family.aliasName && family.aliasName != family.name || family.aliasCode && family.aliasCode != family.code"
  33. style="color: #999">({{
  34. family.aliasName
  35. }}-{{ family.aliasCode }})</span>
  36. </li>
  37. </ul>
  38. </div>
  39. <div class="family_content" v-else>
  40. <ul class="family_list">
  41. <li class="family_item" @click="familyActive(family.name,family.code)"
  42. :class="active == family.name ? 'active' : ''" v-for="(family,index) in searchArr" :key="index"
  43. v-show="family.capitalize === letter">{{ family.name }}-{{ family.code }}
  44. </li>
  45. </ul>
  46. </div>
  47. </div>
  48. <div id="letter"></div>
  49. <div class="initials">
  50. <ul id="characterList">
  51. <li @click="moveScroll()">↑</li>
  52. <li v-for="(character,index) in letterArr" :key="index" @click="moveScroll(character)">{{ character }}
  53. </li>
  54. </ul>
  55. </div>
  56. </div>
  57. </div>
  58. <div class="right_main" v-loading="rightLoading">
  59. <!--锚点-->
  60. <div v-if="labelKey.length && tabsFalg">
  61. <el-tabs
  62. v-model="stepActive"
  63. tab-position="right"
  64. class="reset-steps"
  65. @tab-click="jump"
  66. >
  67. <el-tab-pane
  68. :label="item.firstName || '信息'"
  69. :name="index | numToStr"
  70. v-for="(item,index) in labelKey"
  71. :key="item.firstName"
  72. />
  73. </el-tabs>
  74. <section
  75. v-for="(item,index) in labelKey"
  76. :key="index"
  77. class="d_jump"
  78. >
  79. <h3>{{ item.firstName || '信息' }}</h3>
  80. <div
  81. class="label_main"
  82. v-for="(tag,tagIndex) in item.details"
  83. :key="tagIndex"
  84. >
  85. <p v-if="tag.SecondName">{{ tag.SecondName }}</p>
  86. <ul
  87. v-for="(detail,detailInd) in tag.details"
  88. :key="detailInd"
  89. >
  90. <el-checkbox
  91. :title="detail.InfoPointName"
  92. :disabled="!detail.UnDisabled"
  93. v-model="detail.Visible"
  94. @change="boxChange(detail)">{{ detail.InfoPointName }}
  95. </el-checkbox>
  96. </ul>
  97. </div>
  98. </section>
  99. </div>
  100. <!--/锚点-->
  101. <div v-else class="center" style="margin-top:260px;">
  102. <i class="icon-wushuju iconfont"></i> 请先选择左侧分类
  103. </div>
  104. </div>
  105. </main>
  106. <!-- 批量配置信息点 -->
  107. <config-dialog :dialog="dialog" @configInfo="familyActive(active, code)"></config-dialog>
  108. <!-- 请求提示弹窗 -->
  109. <el-dialog title="提示" :Visible.sync="dialogVisible">
  110. <span>{{ ajaxMsg }}</span>
  111. <span slot="footer" class="dialog-footer">
  112. <el-button @click="dialogVisible = false">取 消</el-button>
  113. <el-button type="primary" @click="dialogVisible = false">确 定</el-button>
  114. </span>
  115. </el-dialog>
  116. </div>
  117. </template>
  118. <script>
  119. import buildInput from "@/components/common/search_input";
  120. import configDialog from "@/components/dialogs/config/infoPoint"
  121. import { getDataDictionary, queryPhysicsAllType, setDataDictionary } from "@/api/dict";
  122. import { mapGetters } from "vuex";
  123. export default {
  124. name: "family",
  125. components: {
  126. configDialog,
  127. "build-input": buildInput
  128. },
  129. data() {
  130. return {
  131. value: "equipment",
  132. stepActive: '0',
  133. options: [{
  134. label: "设备",
  135. value: "equipment",
  136. disabled: false,
  137. }, {
  138. label: "部件",
  139. value: "component",
  140. disabled: false,
  141. }, {
  142. label: "资产",
  143. value: "property",
  144. disabled: false,
  145. }, {
  146. label: "业务空间",
  147. value: "space",
  148. disabled: false,
  149. }, {
  150. label: "系统",
  151. value: "system",
  152. disabled: false,
  153. }, {
  154. label: "租户",
  155. value: "tenant",
  156. disabled: true,
  157. }, {
  158. label: "竖井",
  159. value: "shaft",
  160. disabled: false,
  161. }],
  162. tabsFalg: false,
  163. active: "",
  164. checked2: false,
  165. allFamily: [],
  166. dialog: {
  167. config: false
  168. },
  169. dialogVisible: false,
  170. ajaxMsg: "",
  171. code: '',
  172. letterArr: [], //出现的a-z字符
  173. UserId: "18612660722", //用户id
  174. labelKey: [], // 右侧主体数据承接数组
  175. searchArr: [], // 搜索后的数据
  176. searchVal: "", //搜索内容
  177. isLoading: true, //loading弹窗
  178. rightLoading: false, //右侧loading
  179. strChineseFirstPY: "YDYQSXMWZSSXJBYMGCCZQPSSQBYCDSCDQLDYLYBSSJGYZZJJFKCCLZDHWDWZJLJPFYYNWJJTMYHZWZHFLZPPQHGSCYYYNJQYXXGJHHSDSJNKKTMOMLCRXYPSNQSECCQZGGLLYJLMYZZSECYKYYHQWJSSGGYXYZYJWWKDJHYCHMYXJTLXJYQBYXZLDWRDJRWYSRLDZJPCBZJJBRCFTLECZSTZFXXZHTRQHYBDLYCZSSYMMRFMYQZPWWJJYFCRWFDFZQPYDDWYXKYJAWJFFXYPSFTZYHHYZYSWCJYXSCLCXXWZZXNBGNNXBXLZSZSBSGPYSYZDHMDZBQBZCWDZZYYTZHBTSYYBZGNTNXQYWQSKBPHHLXGYBFMJEBJHHGQTJCYSXSTKZHLYCKGLYSMZXYALMELDCCXGZYRJXSDLTYZCQKCNNJWHJTZZCQLJSTSTBNXBTYXCEQXGKWJYFLZQLYHYXSPSFXLMPBYSXXXYDJCZYLLLSJXFHJXPJBTFFYABYXBHZZBJYZLWLCZGGBTSSMDTJZXPTHYQTGLJSCQFZKJZJQNLZWLSLHDZBWJNCJZYZSQQYCQYRZCJJWYBRTWPYFTWEXCSKDZCTBZHYZZYYJXZCFFZZMJYXXSDZZOTTBZLQWFCKSZSXFYRLNYJMBDTHJXSQQCCSBXYYTSYFBXDZTGBCNSLCYZZPSAZYZZSCJCSHZQYDXLBPJLLMQXTYDZXSQJTZPXLCGLQTZWJBHCTSYJSFXYEJJTLBGXSXJMYJQQPFZASYJNTYDJXKJCDJSZCBARTDCLYJQMWNQNCLLLKBYBZZSYHQQLTWLCCXTXLLZNTYLNEWYZYXCZXXGRKRMTCNDNJTSYYSSDQDGHSDBJGHRWRQLYBGLXHLGTGXBQJDZPYJSJYJCTMRNYMGRZJCZGJMZMGXMPRYXKJNYMSGMZJYMKMFXMLDTGFBHCJHKYLPFMDXLQJJSMTQGZSJLQDLDGJYCALCMZCSDJLLNXDJFFFFJCZFMZFFPFKHKGDPSXKTACJDHHZDDCRRCFQYJKQCCWJDXHWJLYLLZGCFCQDSMLZPBJJPLSBCJGGDCKKDEZSQCCKJGCGKDJTJDLZYCXKLQSCGJCLTFPCQCZGWPJDQYZJJBYJHSJDZWGFSJGZKQCCZLLPSPKJGQJHZZLJPLGJGJJTHJJYJZCZMLZLYQBGJWMLJKXZDZNJQSYZMLJLLJKYWXMKJLHSKJGBMCLYYMKXJQLBMLLKMDXXKWYXYSLMLPSJQQJQXYXFJTJDXMXXLLCXQBSYJBGWYMBGGBCYXPJYGPEPFGDJGBHBNSQJYZJKJKHXQFGQZKFHYGKHDKLLSDJQXPQYKYBNQSXQNSZSWHBSXWHXWBZZXDMNSJBSBKBBZKLYLXGWXDRWYQZMYWSJQLCJXXJXKJEQXSCYETLZHLYYYSDZPAQYZCMTLSHTZCFYZYXYLJSDCJQAGYSLCQLYYYSHMRQQKLDXZSCSSSYDYCJYSFSJBFRSSZQSBXXPXJYSDRCKGJLGDKZJZBDKTCSYQPYHSTCLDJDHMXMCGXYZHJDDTMHLTXZXYLYMOHYJCLTYFBQQXPFBDFHHTKSQHZYYWCNXXCRWHOWGYJLEGWDQCWGFJYCSNTMYTOLBYGWQWESJPWNMLRYDZSZTXYQPZGCWXHNGPYXSHMYQJXZTDPPBFYHZHTJYFDZWKGKZBLDNTSXHQEEGZZYLZMMZYJZGXZXKHKSTXNXXWYLYAPSTHXDWHZYMPXAGKYDXBHNHXKDPJNMYHYLPMGOCSLNZHKXXLPZZLBMLSFBHHGYGYYGGBHSCYAQTYWLXTZQCEZYDQDQMMHTKLLSZHLSJZWFYHQSWSCWLQAZYNYTLSXTHAZNKZZSZZLAXXZWWCTGQQTDDYZTCCHYQZFLXPSLZYGPZSZNGLNDQTBDLXGTCTAJDKYWNSYZLJHHZZCWNYYZYWMHYCHHYXHJKZWSXHZYXLYSKQYSPSLYZWMYPPKBYGLKZHTYXAXQSYSHXASMCHKDSCRSWJPWXSGZJLWWSCHSJHSQNHCSEGNDAQTBAALZZMSSTDQJCJKTSCJAXPLGGXHHGXXZCXPDMMHLDGTYBYSJMXHMRCPXXJZCKZXSHMLQXXTTHXWZFKHCCZDYTCJYXQHLXDHYPJQXYLSYYDZOZJNYXQEZYSQYAYXWYPDGXDDXSPPYZNDLTWRHXYDXZZJHTCXMCZLHPYYYYMHZLLHNXMYLLLMDCPPXHMXDKYCYRDLTXJCHHZZXZLCCLYLNZSHZJZZLNNRLWHYQSNJHXYNTTTKYJPYCHHYEGKCTTWLGQRLGGTGTYGYHPYHYLQYQGCWYQKPYYYTTTTLHYHLLTYTTSPLKYZXGZWGPYDSSZZDQXSKCQNMJJZZBXYQMJRTFFBTKHZKBXLJJKDXJTLBWFZPPTKQTZTGPDGNTPJYFALQMKGXBDCLZFHZCLLLLADPMXDJHLCCLGYHDZFGYDDGCYYFGYDXKSSEBDHYKDKDKHNAXXYBPBYYHXZQGAFFQYJXDMLJCSQZLLPCHBSXGJYNDYBYQSPZWJLZKSDDTACTBXZDYZYPJZQSJNKKTKNJDJGYYPGTLFYQKASDNTCYHBLWDZHBBYDWJRYGKZYHEYYFJMSDTYFZJJHGCXPLXHLDWXXJKYTCYKSSSMTWCTTQZLPBSZDZWZXGZAGYKTYWXLHLSPBCLLOQMMZSSLCMBJCSZZKYDCZJGQQDSMCYTZQQLWZQZXSSFPTTFQMDDZDSHDTDWFHTDYZJYQJQKYPBDJYYXTLJHDRQXXXHAYDHRJLKLYTWHLLRLLRCXYLBWSRSZZSYMKZZHHKYHXKSMDSYDYCJPBZBSQLFCXXXNXKXWYWSDZYQOGGQMMYHCDZTTFJYYBGSTTTYBYKJDHKYXBELHTYPJQNFXFDYKZHQKZBYJTZBXHFDXKDASWTAWAJLDYJSFHBLDNNTNQJTJNCHXFJSRFWHZFMDRYJYJWZPDJKZYJYMPCYZNYNXFBYTFYFWYGDBNZZZDNYTXZEMMQBSQEHXFZMBMFLZZSRXYMJGSXWZJSPRYDJSJGXHJJGLJJYNZZJXHGXKYMLPYYYCXYTWQZSWHWLYRJLPXSLSXMFSWWKLCTNXNYNPSJSZHDZEPTXMYYWXYYSYWLXJQZQXZDCLEEELMCPJPCLWBXSQHFWWTFFJTNQJHJQDXHWLBYZNFJLALKYYJLDXHHYCSTYYWNRJYXYWTRMDRQHWQCMFJDYZMHMYYXJWMYZQZXTLMRSPWWCHAQBXYGZYPXYYRRCLMPYMGKSJSZYSRMYJSNXTPLNBAPPYPYLXYYZKYNLDZYJZCZNNLMZHHARQMPGWQTZMXXMLLHGDZXYHXKYXYCJMFFYYHJFSBSSQLXXNDYCANNMTCJCYPRRNYTYQNYYMBMSXNDLYLYSLJRLXYSXQMLLYZLZJJJKYZZCSFBZXXMSTBJGNXYZHLXNMCWSCYZYFZLXBRNNNYLBNRTGZQYSATSWRYHYJZMZDHZGZDWYBSSCSKXSYHYTXXGCQGXZZSHYXJSCRHMKKBXCZJYJYMKQHZJFNBHMQHYSNJNZYBKNQMCLGQHWLZNZSWXKHLJHYYBQLBFCDSXDLDSPFZPSKJYZWZXZDDXJSMMEGJSCSSMGCLXXKYYYLNYPWWWGYDKZJGGGZGGSYCKNJWNJPCXBJJTQTJWDSSPJXZXNZXUMELPXFSXTLLXCLJXJJLJZXCTPSWXLYDHLYQRWHSYCSQYYBYAYWJJJQFWQCQQCJQGXALDBZZYJGKGXPLTZYFXJLTPADKYQHPMATLCPDCKBMTXYBHKLENXDLEEGQDYMSAWHZMLJTWYGXLYQZLJEEYYBQQFFNLYXRDSCTGJGXYYNKLLYQKCCTLHJLQMKKZGCYYGLLLJDZGYDHZWXPYSJBZKDZGYZZHYWYFQYTYZSZYEZZLYMHJJHTSMQWYZLKYYWZCSRKQYTLTDXWCTYJKLWSQZWBDCQYNCJSRSZJLKCDCDTLZZZACQQZZDDXYPLXZBQJYLZLLLQDDZQJYJYJZYXNYYYNYJXKXDAZWYRDLJYYYRJLXLLDYXJCYWYWNQCCLDDNYYYNYCKCZHXXCCLGZQJGKWPPCQQJYSBZZXYJSQPXJPZBSBDSFNSFPZXHDWZTDWPPTFLZZBZDMYYPQJRSDZSQZSQXBDGCPZSWDWCSQZGMDHZXMWWFYBPDGPHTMJTHZSMMBGZMBZJCFZWFZBBZMQCFMBDMCJXLGPNJBBXGYHYYJGPTZGZMQBQTCGYXJXLWZKYDPDYMGCFTPFXYZTZXDZXTGKMTYBBCLBJASKYTSSQYYMSZXFJEWLXLLSZBQJJJAKLYLXLYCCTSXMCWFKKKBSXLLLLJYXTYLTJYYTDPJHNHNNKBYQNFQYYZBYYESSESSGDYHFHWTCJBSDZZTFDMXHCNJZYMQWSRYJDZJQPDQBBSTJGGFBKJBXTGQHNGWJXJGDLLTHZHHYYYYYYSXWTYYYCCBDBPYPZYCCZYJPZYWCBDLFWZCWJDXXHYHLHWZZXJTCZLCDPXUJCZZZLYXJJTXPHFXWPYWXZPTDZZBDZCYHJHMLXBQXSBYLRDTGJRRCTTTHYTCZWMXFYTWWZCWJWXJYWCSKYBZSCCTZQNHXNWXXKHKFHTSWOCCJYBCMPZZYKBNNZPBZHHZDLSYDDYTYFJPXYNGFXBYQXCBHXCPSXTYZDMKYSNXSXLHKMZXLYHDHKWHXXSSKQYHHCJYXGLHZXCSNHEKDTGZXQYPKDHEXTYKCNYMYYYPKQYYYKXZLTHJQTBYQHXBMYHSQCKWWYLLHCYYLNNEQXQWMCFBDCCMLJGGXDQKTLXKGNQCDGZJWYJJLYHHQTTTNWCHMXCXWHWSZJYDJCCDBQCDGDNYXZTHCQRXCBHZTQCBXWGQWYYBXHMBYMYQTYEXMQKYAQYRGYZSLFYKKQHYSSQYSHJGJCNXKZYCXSBXYXHYYLSTYCXQTHYSMGSCPMMGCCCCCMTZTASMGQZJHKLOSQYLSWTMXSYQKDZLJQQYPLSYCZTCQQPBBQJZCLPKHQZYYXXDTDDTSJCXFFLLCHQXMJLWCJCXTSPYCXNDTJSHJWXDQQJSKXYAMYLSJHMLALYKXCYYDMNMDQMXMCZNNCYBZKKYFLMCHCMLHXRCJJHSYLNMTJZGZGYWJXSRXCWJGJQHQZDQJDCJJZKJKGDZQGJJYJYLXZXXCDQHHHEYTMHLFSBDJSYYSHFYSTCZQLPBDRFRZTZYKYWHSZYQKWDQZRKMSYNBCRXQBJYFAZPZZEDZCJYWBCJWHYJBQSZYWRYSZPTDKZPFPBNZTKLQYHBBZPNPPTYZZYBQNYDCPJMMCYCQMCYFZZDCMNLFPBPLNGQJTBTTNJZPZBBZNJKLJQYLNBZQHKSJZNGGQSZZKYXSHPZSNBCGZKDDZQANZHJKDRTLZLSWJLJZLYWTJNDJZJHXYAYNCBGTZCSSQMNJPJYTYSWXZFKWJQTKHTZPLBHSNJZSYZBWZZZZLSYLSBJHDWWQPSLMMFBJDWAQYZTCJTBNNWZXQXCDSLQGDSDPDZHJTQQPSWLYYJZLGYXYZLCTCBJTKTYCZJTQKBSJLGMGZDMCSGPYNJZYQYYKNXRPWSZXMTNCSZZYXYBYHYZAXYWQCJTLLCKJJTJHGDXDXYQYZZBYWDLWQCGLZGJGQRQZCZSSBCRPCSKYDZNXJSQGXSSJMYDNSTZTPBDLTKZWXQWQTZEXNQCZGWEZKSSBYBRTSSSLCCGBPSZQSZLCCGLLLZXHZQTHCZMQGYZQZNMCOCSZJMMZSQPJYGQLJYJPPLDXRGZYXCCSXHSHGTZNLZWZKJCXTCFCJXLBMQBCZZWPQDNHXLJCTHYZLGYLNLSZZPCXDSCQQHJQKSXZPBAJYEMSMJTZDXLCJYRYYNWJBNGZZTMJXLTBSLYRZPYLSSCNXPHLLHYLLQQZQLXYMRSYCXZLMMCZLTZSDWTJJLLNZGGQXPFSKYGYGHBFZPDKMWGHCXMSGDXJMCJZDYCABXJDLNBCDQYGSKYDQTXDJJYXMSZQAZDZFSLQXYJSJZYLBTXXWXQQZBJZUFBBLYLWDSLJHXJYZJWTDJCZFQZQZZDZSXZZQLZCDZFJHYSPYMPQZMLPPLFFXJJNZZYLSJEYQZFPFZKSYWJJJHRDJZZXTXXGLGHYDXCSKYSWMMZCWYBAZBJKSHFHJCXMHFQHYXXYZFTSJYZFXYXPZLCHMZMBXHZZSXYFYMNCWDABAZLXKTCSHHXKXJJZJSTHYGXSXYYHHHJWXKZXSSBZZWHHHCWTZZZPJXSNXQQJGZYZYWLLCWXZFXXYXYHXMKYYSWSQMNLNAYCYSPMJKHWCQHYLAJJMZXHMMCNZHBHXCLXTJPLTXYJHDYYLTTXFSZHYXXSJBJYAYRSMXYPLCKDUYHLXRLNLLSTYZYYQYGYHHSCCSMZCTZQXKYQFPYYRPFFLKQUNTSZLLZMWWTCQQYZWTLLMLMPWMBZSSTZRBPDDTLQJJBXZCSRZQQYGWCSXFWZLXCCRSZDZMCYGGDZQSGTJSWLJMYMMZYHFBJDGYXCCPSHXNZCSBSJYJGJMPPWAFFYFNXHYZXZYLREMZGZCYZSSZDLLJCSQFNXZKPTXZGXJJGFMYYYSNBTYLBNLHPFZDCYFBMGQRRSSSZXYSGTZRNYDZZCDGPJAFJFZKNZBLCZSZPSGCYCJSZLMLRSZBZZLDLSLLYSXSQZQLYXZLSKKBRXBRBZCYCXZZZEEYFGKLZLYYHGZSGZLFJHGTGWKRAAJYZKZQTSSHJJXDCYZUYJLZYRZDQQHGJZXSSZBYKJPBFRTJXLLFQWJHYLQTYMBLPZDXTZYGBDHZZRBGXHWNJTJXLKSCFSMWLSDQYSJTXKZSCFWJLBXFTZLLJZLLQBLSQMQQCGCZFPBPHZCZJLPYYGGDTGWDCFCZQYYYQYSSCLXZSKLZZZGFFCQNWGLHQYZJJCZLQZZYJPJZZBPDCCMHJGXDQDGDLZQMFGPSYTSDYFWWDJZJYSXYYCZCYHZWPBYKXRYLYBHKJKSFXTZJMMCKHLLTNYYMSYXYZPYJQYCSYCWMTJJKQYRHLLQXPSGTLYYCLJSCPXJYZFNMLRGJJTYZBXYZMSJYJHHFZQMSYXRSZCWTLRTQZSSTKXGQKGSPTGCZNJSJCQCXHMXGGZTQYDJKZDLBZSXJLHYQGGGTHQSZPYHJHHGYYGKGGCWJZZYLCZLXQSFTGZSLLLMLJSKCTBLLZZSZMMNYTPZSXQHJCJYQXYZXZQZCPSHKZZYSXCDFGMWQRLLQXRFZTLYSTCTMJCXJJXHJNXTNRZTZFQYHQGLLGCXSZSJDJLJCYDSJTLNYXHSZXCGJZYQPYLFHDJSBPCCZHJJJQZJQDYBSSLLCMYTTMQTBHJQNNYGKYRQYQMZGCJKPDCGMYZHQLLSLLCLMHOLZGDYYFZSLJCQZLYLZQJESHNYLLJXGJXLYSYYYXNBZLJSSZCQQCJYLLZLTJYLLZLLBNYLGQCHXYYXOXCXQKYJXXXYKLXSXXYQXCYKQXQCSGYXXYQXYGYTQOHXHXPYXXXULCYEYCHZZCBWQBBWJQZSCSZSSLZYLKDESJZWMYMCYTSDSXXSCJPQQSQYLYYZYCMDJDZYWCBTJSYDJKCYDDJLBDJJSODZYSYXQQYXDHHGQQYQHDYXWGMMMAJDYBBBPPBCMUUPLJZSMTXERXJMHQNUTPJDCBSSMSSSTKJTSSMMTRCPLZSZMLQDSDMJMQPNQDXCFYNBFSDQXYXHYAYKQYDDLQYYYSSZBYDSLNTFQTZQPZMCHDHCZCWFDXTMYQSPHQYYXSRGJCWTJTZZQMGWJJTJHTQJBBHWZPXXHYQFXXQYWYYHYSCDYDHHQMNMTMWCPBSZPPZZGLMZFOLLCFWHMMSJZTTDHZZYFFYTZZGZYSKYJXQYJZQBHMBZZLYGHGFMSHPZFZSNCLPBQSNJXZSLXXFPMTYJYGBXLLDLXPZJYZJYHHZCYWHJYLSJEXFSZZYWXKZJLUYDTMLYMQJPWXYHXSKTQJEZRPXXZHHMHWQPWQLYJJQJJZSZCPHJLCHHNXJLQWZJHBMZYXBDHHYPZLHLHLGFWLCHYYTLHJXCJMSCPXSTKPNHQXSRTYXXTESYJCTLSSLSTDLLLWWYHDHRJZSFGXTSYCZYNYHTDHWJSLHTZDQDJZXXQHGYLTZPHCSQFCLNJTCLZPFSTPDYNYLGMJLLYCQHYSSHCHYLHQYQTMZYPBYWRFQYKQSYSLZDQJMPXYYSSRHZJNYWTQDFZBWWTWWRXCWHGYHXMKMYYYQMSMZHNGCEPMLQQMTCWCTMMPXJPJJHFXYYZSXZHTYBMSTSYJTTQQQYYLHYNPYQZLCYZHZWSMYLKFJXLWGXYPJYTYSYXYMZCKTTWLKSMZSYLMPWLZWXWQZSSAQSYXYRHSSNTSRAPXCPWCMGDXHXZDZYFJHGZTTSBJHGYZSZYSMYCLLLXBTYXHBBZJKSSDMALXHYCFYGMQYPJYCQXJLLLJGSLZGQLYCJCCZOTYXMTMTTLLWTGPXYMZMKLPSZZZXHKQYSXCTYJZYHXSHYXZKXLZWPSQPYHJWPJPWXQQYLXSDHMRSLZZYZWTTCYXYSZZSHBSCCSTPLWSSCJCHNLCGCHSSPHYLHFHHXJSXYLLNYLSZDHZXYLSXLWZYKCLDYAXZCMDDYSPJTQJZLNWQPSSSWCTSTSZLBLNXSMNYYMJQBQHRZWTYYDCHQLXKPZWBGQYBKFCMZWPZLLYYLSZYDWHXPSBCMLJBSCGBHXLQHYRLJXYSWXWXZSLDFHLSLYNJLZYFLYJYCDRJLFSYZFSLLCQYQFGJYHYXZLYLMSTDJCYHBZLLNWLXXYGYYHSMGDHXXHHLZZJZXCZZZCYQZFNGWPYLCPKPYYPMCLQKDGXZGGWQBDXZZKZFBXXLZXJTPJPTTBYTSZZDWSLCHZHSLTYXHQLHYXXXYYZYSWTXZKHLXZXZPYHGCHKCFSYHUTJRLXFJXPTZTWHPLYXFCRHXSHXKYXXYHZQDXQWULHYHMJTBFLKHTXCWHJFWJCFPQRYQXCYYYQYGRPYWSGSUNGWCHKZDXYFLXXHJJBYZWTSXXNCYJJYMSWZJQRMHXZWFQSYLZJZGBHYNSLBGTTCSYBYXXWXYHXYYXNSQYXMQYWRGYQLXBBZLJSYLPSYTJZYHYZAWLRORJMKSCZJXXXYXCHDYXRYXXJDTSQFXLYLTSFFYXLMTYJMJUYYYXLTZCSXQZQHZXLYYXZHDNBRXXXJCTYHLBRLMBRLLAXKYLLLJLYXXLYCRYLCJTGJCMTLZLLCYZZPZPCYAWHJJFYBDYYZSMPCKZDQYQPBPCJPDCYZMDPBCYYDYCNNPLMTMLRMFMMGWYZBSJGYGSMZQQQZTXMKQWGXLLPJGZBQCDJJJFPKJKCXBLJMSWMDTQJXLDLPPBXCWRCQFBFQJCZAHZGMYKPHYYHZYKNDKZMBPJYXPXYHLFPNYYGXJDBKXNXHJMZJXSTRSTLDXSKZYSYBZXJLXYSLBZYSLHXJPFXPQNBYLLJQKYGZMCYZZYMCCSLCLHZFWFWYXZMWSXTYNXJHPYYMCYSPMHYSMYDYSHQYZCHMJJMZCAAGCFJBBHPLYZYLXXSDJGXDHKXXTXXNBHRMLYJSLTXMRHNLXQJXYZLLYSWQGDLBJHDCGJYQYCMHWFMJYBMBYJYJWYMDPWHXQLDYGPDFXXBCGJSPCKRSSYZJMSLBZZJFLJJJLGXZGYXYXLSZQYXBEXYXHGCXBPLDYHWETTWWCJMBTXCHXYQXLLXFLYXLLJLSSFWDPZSMYJCLMWYTCZPCHQEKCQBWLCQYDPLQPPQZQFJQDJHYMMCXTXDRMJWRHXCJZYLQXDYYNHYYHRSLSRSYWWZJYMTLTLLGTQCJZYABTCKZCJYCCQLJZQXALMZYHYWLWDXZXQDLLQSHGPJFJLJHJABCQZDJGTKHSSTCYJLPSWZLXZXRWGLDLZRLZXTGSLLLLZLYXXWGDZYGBDPHZPBRLWSXQBPFDWOFMWHLYPCBJCCLDMBZPBZZLCYQXLDOMZBLZWPDWYYGDSTTHCSQSCCRSSSYSLFYBFNTYJSZDFNDPDHDZZMBBLSLCMYFFGTJJQWFTMTPJWFNLBZCMMJTGBDZLQLPYFHYYMJYLSDCHDZJWJCCTLJCLDTLJJCPDDSQDSSZYBNDBJLGGJZXSXNLYCYBJXQYCBYLZCFZPPGKCXZDZFZTJJFJSJXZBNZYJQTTYJYHTYCZHYMDJXTTMPXSPLZCDWSLSHXYPZGTFMLCJTYCBPMGDKWYCYZCDSZZYHFLYCTYGWHKJYYLSJCXGYWJCBLLCSNDDBTZBSCLYZCZZSSQDLLMQYYHFSLQLLXFTYHABXGWNYWYYPLLSDLDLLBJCYXJZMLHLJDXYYQYTDLLLBUGBFDFBBQJZZMDPJHGCLGMJJPGAEHHBWCQXAXHHHZCHXYPHJAXHLPHJPGPZJQCQZGJJZZUZDMQYYBZZPHYHYBWHAZYJHYKFGDPFQSDLZMLJXKXGALXZDAGLMDGXMWZQYXXDXXPFDMMSSYMPFMDMMKXKSYZYSHDZKXSYSMMZZZMSYDNZZCZXFPLSTMZDNMXCKJMZTYYMZMZZMSXHHDCZJEMXXKLJSTLWLSQLYJZLLZJSSDPPMHNLZJCZYHMXXHGZCJMDHXTKGRMXFWMCGMWKDTKSXQMMMFZZYDKMSCLCMPCGMHSPXQPZDSSLCXKYXTWLWJYAHZJGZQMCSNXYYMMPMLKJXMHLMLQMXCTKZMJQYSZJSYSZHSYJZJCDAJZYBSDQJZGWZQQXFKDMSDJLFWEHKZQKJPEYPZYSZCDWYJFFMZZYLTTDZZEFMZLBNPPLPLPEPSZALLTYLKCKQZKGENQLWAGYXYDPXLHSXQQWQCQXQCLHYXXMLYCCWLYMQYSKGCHLCJNSZKPYZKCQZQLJPDMDZHLASXLBYDWQLWDNBQCRYDDZTJYBKBWSZDXDTNPJDTCTQDFXQQMGNXECLTTBKPWSLCTYQLPWYZZKLPYGZCQQPLLKCCYLPQMZCZQCLJSLQZDJXLDDHPZQDLJJXZQDXYZQKZLJCYQDYJPPYPQYKJYRMPCBYMCXKLLZLLFQPYLLLMBSGLCYSSLRSYSQTMXYXZQZFDZUYSYZTFFMZZSMZQHZSSCCMLYXWTPZGXZJGZGSJSGKDDHTQGGZLLBJDZLCBCHYXYZHZFYWXYZYMSDBZZYJGTSMTFXQYXQSTDGSLNXDLRYZZLRYYLXQHTXSRTZNGZXBNQQZFMYKMZJBZYMKBPNLYZPBLMCNQYZZZSJZHJCTZKHYZZJRDYZHNPXGLFZTLKGJTCTSSYLLGZRZBBQZZKLPKLCZYSSUYXBJFPNJZZXCDWXZYJXZZDJJKGGRSRJKMSMZJLSJYWQSKYHQJSXPJZZZLSNSHRNYPZTWCHKLPSRZLZXYJQXQKYSJYCZTLQZYBBYBWZPQDWWYZCYTJCJXCKCWDKKZXSGKDZXWWYYJQYYTCYTDLLXWKCZKKLCCLZCQQDZLQLCSFQCHQHSFSMQZZLNBJJZBSJHTSZDYSJQJPDLZCDCWJKJZZLPYCGMZWDJJBSJQZSYZYHHXJPBJYDSSXDZNCGLQMBTSFSBPDZDLZNFGFJGFSMPXJQLMBLGQCYYXBQKDJJQYRFKZTJDHCZKLBSDZCFJTPLLJGXHYXZCSSZZXSTJYGKGCKGYOQXJPLZPBPGTGYJZGHZQZZLBJLSQFZGKQQJZGYCZBZQTLDXRJXBSXXPZXHYZYCLWDXJJHXMFDZPFZHQHQMQGKSLYHTYCGFRZGNQXCLPDLBZCSCZQLLJBLHBZCYPZZPPDYMZZSGYHCKCPZJGSLJLNSCDSLDLXBMSTLDDFJMKDJDHZLZXLSZQPQPGJLLYBDSZGQLBZLSLKYYHZTTNTJYQTZZPSZQZTLLJTYYLLQLLQYZQLBDZLSLYYZYMDFSZSNHLXZNCZQZPBWSKRFBSYZMTHBLGJPMCZZLSTLXSHTCSYZLZBLFEQHLXFLCJLYLJQCBZLZJHHSSTBRMHXZHJZCLXFNBGXGTQJCZTMSFZKJMSSNXLJKBHSJXNTNLZDNTLMSJXGZJYJCZXYJYJWRWWQNZTNFJSZPZSHZJFYRDJSFSZJZBJFZQZZHZLXFYSBZQLZSGYFTZDCSZXZJBQMSZKJRHYJZCKMJKHCHGTXKXQGLXPXFXTRTYLXJXHDTSJXHJZJXZWZLCQSBTXWXGXTXXHXFTSDKFJHZYJFJXRZSDLLLTQSQQZQWZXSYQTWGWBZCGZLLYZBCLMQQTZHZXZXLJFRMYZFLXYSQXXJKXRMQDZDMMYYBSQBHGZMWFWXGMXLZPYYTGZYCCDXYZXYWGSYJYZNBHPZJSQSYXSXRTFYZGRHZTXSZZTHCBFCLSYXZLZQMZLMPLMXZJXSFLBYZMYQHXJSXRXSQZZZSSLYFRCZJRCRXHHZXQYDYHXSJJHZCXZBTYNSYSXJBQLPXZQPYMLXZKYXLXCJLCYSXXZZLXDLLLJJYHZXGYJWKJRWYHCPSGNRZLFZWFZZNSXGXFLZSXZZZBFCSYJDBRJKRDHHGXJLJJTGXJXXSTJTJXLYXQFCSGSWMSBCTLQZZWLZZKXJMLTMJYHSDDBXGZHDLBMYJFRZFSGCLYJBPMLYSMSXLSZJQQHJZFXGFQFQBPXZGYYQXGZTCQWYLTLGWSGWHRLFSFGZJMGMGBGTJFSYZZGZYZAFLSSPMLPFLCWBJZCLJJMZLPJJLYMQDMYYYFBGYGYZMLYZDXQYXRQQQHSYYYQXYLJTYXFSFSLLGNQCYHYCWFHCCCFXPYLYPLLZYXXXXXKQHHXSHJZCFZSCZJXCPZWHHHHHAPYLQALPQAFYHXDYLUKMZQGGGDDESRNNZLTZGCHYPPYSQJJHCLLJTOLNJPZLJLHYMHEYDYDSQYCDDHGZUNDZCLZYZLLZNTNYZGSLHSLPJJBDGWXPCDUTJCKLKCLWKLLCASSTKZZDNQNTTLYYZSSYSSZZRYLJQKCQDHHCRXRZYDGRGCWCGZQFFFPPJFZYNAKRGYWYQPQXXFKJTSZZXSWZDDFBBXTBGTZKZNPZZPZXZPJSZBMQHKCYXYLDKLJNYPKYGHGDZJXXEAHPNZKZTZCMXCXMMJXNKSZQNMNLWBWWXJKYHCPSTMCSQTZJYXTPCTPDTNNPGLLLZSJLSPBLPLQHDTNJNLYYRSZFFJFQWDPHZDWMRZCCLODAXNSSNYZRESTYJWJYJDBCFXNMWTTBYLWSTSZGYBLJPXGLBOCLHPCBJLTMXZLJYLZXCLTPNCLCKXTPZJSWCYXSFYSZDKNTLBYJCYJLLSTGQCBXRYZXBXKLYLHZLQZLNZCXWJZLJZJNCJHXMNZZGJZZXTZJXYCYYCXXJYYXJJXSSSJSTSSTTPPGQTCSXWZDCSYFPTFBFHFBBLZJCLZZDBXGCXLQPXKFZFLSYLTUWBMQJHSZBMDDBCYSCCLDXYCDDQLYJJWMQLLCSGLJJSYFPYYCCYLTJANTJJPWYCMMGQYYSXDXQMZHSZXPFTWWZQSWQRFKJLZJQQYFBRXJHHFWJJZYQAZMYFRHCYYBYQWLPEXCCZSTYRLTTDMQLYKMBBGMYYJPRKZNPBSXYXBHYZDJDNGHPMFSGMWFZMFQMMBCMZZCJJLCNUXYQLMLRYGQZCYXZLWJGCJCGGMCJNFYZZJHYCPRRCMTZQZXHFQGTJXCCJEAQCRJYHPLQLSZDJRBCQHQDYRHYLYXJSYMHZYDWLDFRYHBPYDTSSCNWBXGLPZMLZZTQSSCPJMXXYCSJYTYCGHYCJWYRXXLFEMWJNMKLLSWTXHYYYNCMMCWJDQDJZGLLJWJRKHPZGGFLCCSCZMCBLTBHBQJXQDSPDJZZGKGLFQYWBZYZJLTSTDHQHCTCBCHFLQMPWDSHYYTQWCNZZJTLBYMBPDYYYXSQKXWYYFLXXNCWCXYPMAELYKKJMZZZBRXYYQJFLJPFHHHYTZZXSGQQMHSPGDZQWBWPJHZJDYSCQWZKTXXSQLZYYMYSDZGRXCKKUJLWPYSYSCSYZLRMLQSYLJXBCXTLWDQZPCYCYKPPPNSXFYZJJRCEMHSZMSXLXGLRWGCSTLRSXBZGBZGZTCPLUJLSLYLYMTXMTZPALZXPXJTJWTCYYZLBLXBZLQMYLXPGHDSLSSDMXMBDZZSXWHAMLCZCPJMCNHJYSNSYGCHSKQMZZQDLLKABLWJXSFMOCDXJRRLYQZKJMYBYQLYHETFJZFRFKSRYXFJTWDSXXSYSQJYSLYXWJHSNLXYYXHBHAWHHJZXWMYLJCSSLKYDZTXBZSYFDXGXZJKHSXXYBSSXDPYNZWRPTQZCZENYGCXQFJYKJBZMLJCMQQXUOXSLYXXLYLLJDZBTYMHPFSTTQQWLHOKYBLZZALZXQLHZWRRQHLSTMYPYXJJXMQSJFNBXYXYJXXYQYLTHYLQYFMLKLJTMLLHSZWKZHLJMLHLJKLJSTLQXYLMBHHLNLZXQJHXCFXXLHYHJJGBYZZKBXSCQDJQDSUJZYYHZHHMGSXCSYMXFEBCQWWRBPYYJQTYZCYQYQQZYHMWFFHGZFRJFCDPXNTQYZPDYKHJLFRZXPPXZDBBGZQSTLGDGYLCQMLCHHMFYWLZYXKJLYPQHSYWMQQGQZMLZJNSQXJQSYJYCBEHSXFSZPXZWFLLBCYYJDYTDTHWZSFJMQQYJLMQXXLLDTTKHHYBFPWTYYSQQWNQWLGWDEBZWCMYGCULKJXTMXMYJSXHYBRWFYMWFRXYQMXYSZTZZTFYKMLDHQDXWYYNLCRYJBLPSXCXYWLSPRRJWXHQYPHTYDNXHHMMYWYTZCSQMTSSCCDALWZTCPQPYJLLQZYJSWXMZZMMYLMXCLMXCZMXMZSQTZPPQQBLPGXQZHFLJJHYTJSRXWZXSCCDLXTYJDCQJXSLQYCLZXLZZXMXQRJMHRHZJBHMFLJLMLCLQNLDXZLLLPYPSYJYSXCQQDCMQJZZXHNPNXZMEKMXHYKYQLXSXTXJYYHWDCWDZHQYYBGYBCYSCFGPSJNZDYZZJZXRZRQJJYMCANYRJTLDPPYZBSTJKXXZYPFDWFGZZRPYMTNGXZQBYXNBUFNQKRJQZMJEGRZGYCLKXZDSKKNSXKCLJSPJYYZLQQJYBZSSQLLLKJXTBKTYLCCDDBLSPPFYLGYDTZJYQGGKQTTFZXBDKTYYHYBBFYTYYBCLPDYTGDHRYRNJSPTCSNYJQHKLLLZSLYDXXWBCJQSPXBPJZJCJDZFFXXBRMLAZHCSNDLBJDSZBLPRZTSWSBXBCLLXXLZDJZSJPYLYXXYFTFFFBHJJXGBYXJPMMMPSSJZJMTLYZJXSWXTYLEDQPJMYGQZJGDJLQJWJQLLSJGJGYGMSCLJJXDTYGJQJQJCJZCJGDZZSXQGSJGGCXHQXSNQLZZBXHSGZXCXYLJXYXYYDFQQJHJFXDHCTXJYRXYSQTJXYEFYYSSYYJXNCYZXFXMSYSZXYYSCHSHXZZZGZZZGFJDLTYLNPZGYJYZYYQZPBXQBDZTZCZYXXYHHSQXSHDHGQHJHGYWSZTMZMLHYXGEBTYLZKQWYTJZRCLEKYSTDBCYKQQSAYXCJXWWGSBHJYZYDHCSJKQCXSWXFLTYNYZPZCCZJQTZWJQDZZZQZLJJXLSBHPYXXPSXSHHEZTXFPTLQYZZXHYTXNCFZYYHXGNXMYWXTZSJPTHHGYMXMXQZXTSBCZYJYXXTYYZYPCQLMMSZMJZZLLZXGXZAAJZYXJMZXWDXZSXZDZXLEYJJZQBHZWZZZQTZPSXZTDSXJJJZNYAZPHXYYSRNQDTHZHYYKYJHDZXZLSWCLYBZYECWCYCRYLCXNHZYDZYDYJDFRJJHTRSQTXYXJRJHOJYNXELXSFSFJZGHPZSXZSZDZCQZBYYKLSGSJHCZSHDGQGXYZGXCHXZJWYQWGYHKSSEQZZNDZFKWYSSTCLZSTSYMCDHJXXYWEYXCZAYDMPXMDSXYBSQMJMZJMTZQLPJYQZCGQHXJHHLXXHLHDLDJQCLDWBSXFZZYYSCHTYTYYBHECXHYKGJPXHHYZJFXHWHBDZFYZBCAPNPGNYDMSXHMMMMAMYNBYJTMPXYYMCTHJBZYFCGTYHWPHFTWZZEZSBZEGPFMTSKFTYCMHFLLHGPZJXZJGZJYXZSBBQSCZZLZCCSTPGXMJSFTCCZJZDJXCYBZLFCJSYZFGSZLYBCWZZBYZDZYPSWYJZXZBDSYUXLZZBZFYGCZXBZHZFTPBGZGEJBSTGKDMFHYZZJHZLLZZGJQZLSFDJSSCBZGPDLFZFZSZYZYZSYGCXSNXXCHCZXTZZLJFZGQSQYXZJQDCCZTQCDXZJYQJQCHXZTDLGSCXZSYQJQTZWLQDQZTQCHQQJZYEZZZPBWKDJFCJPZTYPQYQTTYNLMBDKTJZPQZQZZFPZSBNJLGYJDXJDZZKZGQKXDLPZJTCJDQBXDJQJSTCKNXBXZMSLYJCQMTJQWWCJQNJNLLLHJCWQTBZQYDZCZPZZDZYDDCYZZZCCJTTJFZDPRRTZTJDCQTQZDTJNPLZBCLLCTZSXKJZQZPZLBZRBTJDCXFCZDBCCJJLTQQPLDCGZDBBZJCQDCJWYNLLZYZCCDWLLXWZLXRXNTQQCZXKQLSGDFQTDDGLRLAJJTKUYMKQLLTZYTDYYCZGJWYXDXFRSKSTQTENQMRKQZHHQKDLDAZFKYPBGGPZREBZZYKZZSPEGJXGYKQZZZSLYSYYYZWFQZYLZZLZHWCHKYPQGNPGBLPLRRJYXCCSYYHSFZFYBZYYTGZXYLXCZWXXZJZBLFFLGSKHYJZEYJHLPLLLLCZGXDRZELRHGKLZZYHZLYQSZZJZQLJZFLNBHGWLCZCFJYSPYXZLZLXGCCPZBLLCYBBBBUBBCBPCRNNZCZYRBFSRLDCGQYYQXYGMQZWTZYTYJXYFWTEHZZJYWLCCNTZYJJZDEDPZDZTSYQJHDYMBJNYJZLXTSSTPHNDJXXBYXQTZQDDTJTDYYTGWSCSZQFLSHLGLBCZPHDLYZJYCKWTYTYLBNYTSDSYCCTYSZYYEBHEXHQDTWNYGYCLXTSZYSTQMYGZAZCCSZZDSLZCLZRQXYYELJSBYMXSXZTEMBBLLYYLLYTDQYSHYMRQWKFKBFXNXSBYCHXBWJYHTQBPBSBWDZYLKGZSKYHXQZJXHXJXGNLJKZLYYCDXLFYFGHLJGJYBXQLYBXQPQGZTZPLNCYPXDJYQYDYMRBESJYYHKXXSTMXRCZZYWXYQYBMCLLYZHQYZWQXDBXBZWZMSLPDMYSKFMZKLZCYQYCZLQXFZZYDQZPZYGYJYZMZXDZFYFYTTQTZHGSPCZMLCCYTZXJCYTJMKSLPZHYSNZLLYTPZCTZZCKTXDHXXTQCYFKSMQCCYYAZHTJPCYLZLYJBJXTPNYLJYYNRXSYLMMNXJSMYBCSYSYLZYLXJJQYLDZLPQBFZZBLFNDXQKCZFYWHGQMRDSXYCYTXNQQJZYYPFZXDYZFPRXEJDGYQBXRCNFYYQPGHYJDYZXGRHTKYLNWDZNTSMPKLBTHBPYSZBZTJZSZZJTYYXZPHSSZZBZCZPTQFZMYFLYPYBBJQXZMXXDJMTSYSKKBJZXHJCKLPSMKYJZCXTMLJYXRZZQSLXXQPYZXMKYXXXJCLJPRMYYGADYSKQLSNDHYZKQXZYZTCGHZTLMLWZYBWSYCTBHJHJFCWZTXWYTKZLXQSHLYJZJXTMPLPYCGLTBZZTLZJCYJGDTCLKLPLLQPJMZPAPXYZLKKTKDZCZZBNZDYDYQZJYJGMCTXLTGXSZLMLHBGLKFWNWZHDXUHLFMKYSLGXDTWWFRJEJZTZHYDXYKSHWFZCQSHKTMQQHTZHYMJDJSKHXZJZBZZXYMPAGQMSTPXLSKLZYNWRTSQLSZBPSPSGZWYHTLKSSSWHZZLYYTNXJGMJSZSUFWNLSOZTXGXLSAMMLBWLDSZYLAKQCQCTMYCFJBSLXCLZZCLXXKSBZQCLHJPSQPLSXXCKSLNHPSFQQYTXYJZLQLDXZQJZDYYDJNZPTUZDSKJFSLJHYLZSQZLBTXYDGTQFDBYAZXDZHZJNHHQBYKNXJJQCZMLLJZKSPLDYCLBBLXKLELXJLBQYCXJXGCNLCQPLZLZYJTZLJGYZDZPLTQCSXFDMNYCXGBTJDCZNBGBQYQJWGKFHTNPYQZQGBKPBBYZMTJDYTBLSQMPSXTBNPDXKLEMYYCJYNZCTLDYKZZXDDXHQSHDGMZSJYCCTAYRZLPYLTLKXSLZCGGEXCLFXLKJRTLQJAQZNCMBYDKKCXGLCZJZXJHPTDJJMZQYKQSECQZDSHHADMLZFMMZBGNTJNNLGBYJBRBTMLBYJDZXLCJLPLDLPCQDHLXZLYCBLCXZZJADJLNZMMSSSMYBHBSQKBHRSXXJMXSDZNZPXLGBRHWGGFCXGMSKLLTSJYYCQLTSKYWYYHYWXBXQYWPYWYKQLSQPTNTKHQCWDQKTWPXXHCPTHTWUMSSYHBWCRWXHJMKMZNGWTMLKFGHKJYLSYYCXWHYECLQHKQHTTQKHFZLDXQWYZYYDESBPKYRZPJFYYZJCEQDZZDLATZBBFJLLCXDLMJSSXEGYGSJQXCWBXSSZPDYZCXDNYXPPZYDLYJCZPLTXLSXYZYRXCYYYDYLWWNZSAHJSYQYHGYWWAXTJZDAXYSRLTDPSSYYFNEJDXYZHLXLLLZQZSJNYQYQQXYJGHZGZCYJCHZLYCDSHWSHJZYJXCLLNXZJJYYXNFXMWFPYLCYLLABWDDHWDXJMCXZTZPMLQZHSFHZYNZTLLDYWLSLXHYMMYLMBWWKYXYADTXYLLDJPYBPWUXJMWMLLSAFDLLYFLBHHHBQQLTZJCQJLDJTFFKMMMBYTHYGDCQRDDWRQJXNBYSNWZDBYYTBJHPYBYTTJXAAHGQDQTMYSTQXKBTZPKJLZRBEQQSSMJJBDJOTGTBXPGBKTLHQXJJJCTHXQDWJLWRFWQGWSHCKRYSWGFTGYGBXSDWDWRFHWYTJJXXXJYZYSLPYYYPAYXHYDQKXSHXYXGSKQHYWFDDDPPLCJLQQEEWXKSYYKDYPLTJTHKJLTCYYHHJTTPLTZZCDLTHQKZXQYSTEEYWYYZYXXYYSTTJKLLPZMCYHQGXYHSRMBXPLLNQYDQHXSXXWGDQBSHYLLPJJJTHYJKYPPTHYYKTYEZYENMDSHLCRPQFDGFXZPSFTLJXXJBSWYYSKSFLXLPPLBBBLBSFXFYZBSJSSYLPBBFFFFSSCJDSTZSXZRYYSYFFSYZYZBJTBCTSBSDHRTJJBYTCXYJEYLXCBNEBJDSYXYKGSJZBXBYTFZWGENYHHTHZHHXFWGCSTBGXKLSXYWMTMBYXJSTZSCDYQRCYTWXZFHMYMCXLZNSDJTTTXRYCFYJSBSDYERXJLJXBBDEYNJGHXGCKGSCYMBLXJMSZNSKGXFBNBPTHFJAAFXYXFPXMYPQDTZCXZZPXRSYWZDLYBBKTYQPQJPZYPZJZNJPZJLZZFYSBTTSLMPTZRTDXQSJEHBZYLZDHLJSQMLHTXTJECXSLZZSPKTLZKQQYFSYGYWPCPQFHQHYTQXZKRSGTTSQCZLPTXCDYYZXSQZSLXLZMYCPCQBZYXHBSXLZDLTCDXTYLZJYYZPZYZLTXJSJXHLPMYTXCQRBLZSSFJZZTNJYTXMYJHLHPPLCYXQJQQKZZSCPZKSWALQSBLCCZJSXGWWWYGYKTJBBZTDKHXHKGTGPBKQYSLPXPJCKBMLLXDZSTBKLGGQKQLSBKKTFXRMDKBFTPZFRTBBRFERQGXYJPZSSTLBZTPSZQZSJDHLJQLZBPMSMMSXLQQNHKNBLRDDNXXDHDDJCYYGYLXGZLXSYGMQQGKHBPMXYXLYTQWLWGCPBMQXCYZYDRJBHTDJYHQSHTMJSBYPLWHLZFFNYPMHXXHPLTBQPFBJWQDBYGPNZTPFZJGSDDTQSHZEAWZZYLLTYYBWJKXXGHLFKXDJTMSZSQYNZGGSWQSPHTLSSKMCLZXYSZQZXNCJDQGZDLFNYKLJCJLLZLMZZNHYDSSHTHZZLZZBBHQZWWYCRZHLYQQJBEYFXXXWHSRXWQHWPSLMSSKZTTYGYQQWRSLALHMJTQJSMXQBJJZJXZYZKXBYQXBJXSHZTSFJLXMXZXFGHKZSZGGYLCLSARJYHSLLLMZXELGLXYDJYTLFBHBPNLYZFBBHPTGJKWETZHKJJXZXXGLLJLSTGSHJJYQLQZFKCGNNDJSSZFDBCTWWSEQFHQJBSAQTGYPQLBXBMMYWXGSLZHGLZGQYFLZBYFZJFRYSFMBYZHQGFWZSYFYJJPHZBYYZFFWODGRLMFTWLBZGYCQXCDJYGZYYYYTYTYDWEGAZYHXJLZYYHLRMGRXXZCLHNELJJTJTPWJYBJJBXJJTJTEEKHWSLJPLPSFYZPQQBDLQJJTYYQLYZKDKSQJYYQZLDQTGJQYZJSUCMRYQTHTEJMFCTYHYPKMHYZWJDQFHYYXWSHCTXRLJHQXHCCYYYJLTKTTYTMXGTCJTZAYYOCZLYLBSZYWJYTSJYHBYSHFJLYGJXXTMZYYLTXXYPZLXYJZYZYYPNHMYMDYYLBLHLSYYQQLLNJJYMSOYQBZGDLYXYLCQYXTSZEGXHZGLHWBLJHEYXTWQMAKBPQCGYSHHEGQCMWYYWLJYJHYYZLLJJYLHZYHMGSLJLJXCJJYCLYCJPCPZJZJMMYLCQLNQLJQJSXYJMLSZLJQLYCMMHCFMMFPQQMFYLQMCFFQMMMMHMZNFHHJGTTHHKHSLNCHHYQDXTMMQDCYZYXYQMYQYLTDCYYYZAZZCYMZYDLZFFFMMYCQZWZZMABTBYZTDMNZZGGDFTYPCGQYTTSSFFWFDTZQSSYSTWXJHXYTSXXYLBYQHWWKXHZXWZNNZZJZJJQJCCCHYYXBZXZCYZTLLCQXYNJYCYYCYNZZQYYYEWYCZDCJYCCHYJLBTZYYCQWMPWPYMLGKDLDLGKQQBGYCHJXY",
  180. oMultiDiff: {
  181. "19969": "DZ",
  182. "19975": "WM",
  183. "19988": "QJ",
  184. "20048": "YL",
  185. "20056": "SC",
  186. "20060": "NM",
  187. "20094": "QG",
  188. "20127": "QJ",
  189. "20167": "QC",
  190. "20193": "YG",
  191. "20250": "KH",
  192. "20256": "ZC",
  193. "20282": "SC",
  194. "20285": "QJG",
  195. "20291": "TD",
  196. "20314": "YD",
  197. "20340": "NE",
  198. "20375": "TD",
  199. "20389": "YJ",
  200. "20391": "CZ",
  201. "20415": "PB",
  202. "20446": "YS",
  203. "20447": "SQ",
  204. "20985": "AW",
  205. "21032": "PB",
  206. "21048": "XQ",
  207. "21049": "SC",
  208. "21089": "YS",
  209. "21119": "JC",
  210. "21242": "SB",
  211. "21273": "SC",
  212. "21305": "YP",
  213. "21306": "QO",
  214. "21330": "ZC",
  215. "21333": "SDC",
  216. "21345": "QK",
  217. "21378": "CA",
  218. "21397": "SC",
  219. "21414": "XS",
  220. "21442": "SC",
  221. "21477": "JG",
  222. "21480": "TD",
  223. "21484": "ZS",
  224. "21494": "YX",
  225. "21505": "YX",
  226. "21512": "HG",
  227. "21523": "XH",
  228. "21537": "PB",
  229. "21542": "PF",
  230. "21549": "KH",
  231. "21571": "E",
  232. "21574": "DA",
  233. "21588": "TD",
  234. "21589": "O",
  235. "21618": "ZC",
  236. "21621": "KHA",
  237. "21632": "ZJ",
  238. "21654": "KG",
  239. "21679": "LKG",
  240. "21683": "KH",
  241. "21710": "A",
  242. "21719": "YH",
  243. "21734": "WOE",
  244. "21769": "A",
  245. "21780": "WN",
  246. "21804": "XH",
  247. "21834": "A",
  248. "21899": "ZD",
  249. "21903": "RN",
  250. "21908": "WO",
  251. "21939": "ZC",
  252. "21956": "SA",
  253. "21964": "YA",
  254. "21970": "TD",
  255. "22003": "A",
  256. "22031": "JG",
  257. "22040": "XS",
  258. "22060": "ZC",
  259. "22066": "ZC",
  260. "22079": "MH",
  261. "22129": "XJ",
  262. "22179": "XA",
  263. "22237": "NJ",
  264. "22244": "TD",
  265. "22280": "JQ",
  266. "22300": "YH",
  267. "22313": "XW",
  268. "22331": "YQ",
  269. "22343": "YJ",
  270. "22351": "PH",
  271. "22395": "DC",
  272. "22412": "TD",
  273. "22484": "PB",
  274. "22500": "PB",
  275. "22534": "ZD",
  276. "22549": "DH",
  277. "22561": "PB",
  278. "22612": "TD",
  279. "22771": "KQ",
  280. "22831": "HB",
  281. "22841": "JG",
  282. "22855": "QJ",
  283. "22865": "XQ",
  284. "23013": "ML",
  285. "23081": "WM",
  286. "23487": "SX",
  287. "23558": "QJ",
  288. "23561": "YW",
  289. "23586": "YW",
  290. "23614": "YW",
  291. "23615": "SN",
  292. "23631": "PB",
  293. "23646": "ZS",
  294. "23663": "ZT",
  295. "23673": "YG",
  296. "23762": "TD",
  297. "23769": "ZS",
  298. "23780": "QJ",
  299. "23884": "QK",
  300. "24055": "XH",
  301. "24113": "DC",
  302. "24162": "ZC",
  303. "24191": "GA",
  304. "24273": "QJ",
  305. "24324": "NL",
  306. "24377": "TD",
  307. "24378": "QJ",
  308. "24439": "PF",
  309. "24554": "ZS",
  310. "24683": "TD",
  311. "24694": "WE",
  312. "24733": "LK",
  313. "24925": "TN",
  314. "25094": "ZG",
  315. "25100": "XQ",
  316. "25103": "XH",
  317. "25153": "PB",
  318. "25170": "PB",
  319. "25179": "KG",
  320. "25203": "PB",
  321. "25240": "ZS",
  322. "25282": "FB",
  323. "25303": "NA",
  324. "25324": "KG",
  325. "25341": "ZY",
  326. "25373": "WZ",
  327. "25375": "XJ",
  328. "25384": "A",
  329. "25457": "A",
  330. "25528": "SD",
  331. "25530": "SC",
  332. "25552": "TD",
  333. "25774": "ZC",
  334. "25874": "ZC",
  335. "26044": "YW",
  336. "26080": "WM",
  337. "26292": "PB",
  338. "26333": "PB",
  339. "26355": "ZY",
  340. "26366": "CZ",
  341. "26397": "ZC",
  342. "26399": "QJ",
  343. "26415": "ZS",
  344. "26451": "SB",
  345. "26526": "ZC",
  346. "26552": "JG",
  347. "26561": "TD",
  348. "26588": "JG",
  349. "26597": "CZ",
  350. "26629": "ZS",
  351. "26638": "YL",
  352. "26646": "XQ",
  353. "26653": "KG",
  354. "26657": "XJ",
  355. "26727": "HG",
  356. "26894": "ZC",
  357. "26937": "ZS",
  358. "26946": "ZC",
  359. "26999": "KJ",
  360. "27099": "KJ",
  361. "27449": "YQ",
  362. "27481": "XS",
  363. "27542": "ZS",
  364. "27663": "ZS",
  365. "27748": "TS",
  366. "27784": "SC",
  367. "27788": "ZD",
  368. "27795": "TD",
  369. "27812": "O",
  370. "27850": "PB",
  371. "27852": "MB",
  372. "27895": "SL",
  373. "27898": "PL",
  374. "27973": "QJ",
  375. "27981": "KH",
  376. "27986": "HX",
  377. "27994": "XJ",
  378. "28044": "YC",
  379. "28065": "WG",
  380. "28177": "SM",
  381. "28267": "QJ",
  382. "28291": "KH",
  383. "28337": "ZQ",
  384. "28463": "TL",
  385. "28548": "DC",
  386. "28601": "TD",
  387. "28689": "PB",
  388. "28805": "JG",
  389. "28820": "QG",
  390. "28846": "PB",
  391. "28952": "TD",
  392. "28975": "ZC",
  393. "29100": "A",
  394. "29325": "QJ",
  395. "29575": "SL",
  396. "29602": "FB",
  397. "30010": "TD",
  398. "30044": "CX",
  399. "30058": "PF",
  400. "30091": "YSP",
  401. "30111": "YN",
  402. "30229": "XJ",
  403. "30427": "SC",
  404. "30465": "SX",
  405. "30631": "YQ",
  406. "30655": "QJ",
  407. "30684": "QJG",
  408. "30707": "SD",
  409. "30729": "XH",
  410. "30796": "LG",
  411. "30917": "PB",
  412. "31074": "NM",
  413. "31085": "JZ",
  414. "31109": "SC",
  415. "31181": "ZC",
  416. "31192": "MLB",
  417. "31293": "JQ",
  418. "31400": "YX",
  419. "31584": "YJ",
  420. "31896": "ZN",
  421. "31909": "ZY",
  422. "31995": "XJ",
  423. "32321": "PF",
  424. "32327": "ZY",
  425. "32418": "HG",
  426. "32420": "XQ",
  427. "32421": "HG",
  428. "32438": "LG",
  429. "32473": "GJ",
  430. "32488": "TD",
  431. "32521": "QJ",
  432. "32527": "PB",
  433. "32562": "ZSQ",
  434. "32564": "JZ",
  435. "32735": "ZD",
  436. "32793": "PB",
  437. "33071": "PF",
  438. "33098": "XL",
  439. "33100": "YA",
  440. "33152": "PB",
  441. "33261": "CX",
  442. "33324": "BP",
  443. "33333": "TD",
  444. "33406": "YA",
  445. "33426": "WM",
  446. "33432": "PB",
  447. "33445": "JG",
  448. "33486": "ZN",
  449. "33493": "TS",
  450. "33507": "QJ",
  451. "33540": "QJ",
  452. "33544": "ZC",
  453. "33564": "XQ",
  454. "33617": "YT",
  455. "33632": "QJ",
  456. "33636": "XH",
  457. "33637": "YX",
  458. "33694": "WG",
  459. "33705": "PF",
  460. "33728": "YW",
  461. "33882": "SR",
  462. "34067": "WM",
  463. "34074": "YW",
  464. "34121": "QJ",
  465. "34255": "ZC",
  466. "34259": "XL",
  467. "34425": "JH",
  468. "34430": "XH",
  469. "34485": "KH",
  470. "34503": "YS",
  471. "34532": "HG",
  472. "34552": "XS",
  473. "34558": "YE",
  474. "34593": "ZL",
  475. "34660": "YQ",
  476. "34892": "XH",
  477. "34928": "SC",
  478. "34999": "QJ",
  479. "35048": "PB",
  480. "35059": "SC",
  481. "35098": "ZC",
  482. "35203": "TQ",
  483. "35265": "JX",
  484. "35299": "JX",
  485. "35782": "SZ",
  486. "35828": "YS",
  487. "35830": "E",
  488. "35843": "TD",
  489. "35895": "YG",
  490. "35977": "MH",
  491. "36158": "JG",
  492. "36228": "QJ",
  493. "36426": "XQ",
  494. "36466": "DC",
  495. "36710": "JC",
  496. "36711": "ZYG",
  497. "36767": "PB",
  498. "36866": "SK",
  499. "36951": "YW",
  500. "37034": "YX",
  501. "37063": "XH",
  502. "37218": "ZC",
  503. "37325": "ZC",
  504. "38063": "PB",
  505. "38079": "TD",
  506. "38085": "QY",
  507. "38107": "DC",
  508. "38116": "TD",
  509. "38123": "YD",
  510. "38224": "HG",
  511. "38241": "XTC",
  512. "38271": "ZC",
  513. "38415": "YE",
  514. "38426": "KH",
  515. "38461": "YD",
  516. "38463": "AE",
  517. "38466": "PB",
  518. "38477": "XJ",
  519. "38518": "YT",
  520. "38551": "WK",
  521. "38585": "ZC",
  522. "38704": "XS",
  523. "38739": "LJ",
  524. "38761": "GJ",
  525. "38808": "SQ",
  526. "39048": "JG",
  527. "39049": "XJ",
  528. "39052": "HG",
  529. "39076": "CZ",
  530. "39271": "XT",
  531. "39534": "TD",
  532. "39552": "TD",
  533. "39584": "PB",
  534. "39647": "SB",
  535. "39730": "LG",
  536. "39748": "TPB",
  537. "40109": "ZQ",
  538. "40479": "ND",
  539. "40516": "HG",
  540. "40536": "HG",
  541. "40583": "QJ",
  542. "40765": "YQ",
  543. "40784": "QJ",
  544. "40840": "YK",
  545. "40863": "QJG"
  546. }
  547. };
  548. },
  549. computed: {
  550. ...mapGetters("layout", [
  551. "projectId",
  552. "secret",
  553. "userId"
  554. ]),
  555. },
  556. created() {
  557. this.getAllFamily();
  558. },
  559. mounted() {
  560. let listener = document.querySelector('.right_main')
  561. listener.addEventListener('scroll', this.onScroll)
  562. },
  563. filters: {
  564. numToStr(index) {
  565. return index.toString()
  566. }
  567. },
  568. methods: {
  569. chooseMedicine(val) {
  570. this.getAllFamily()
  571. },
  572. //批量配置信息点
  573. handleClickConfig() {
  574. this.dialog.config = true
  575. },
  576. //获取所有设备族
  577. getAllFamily() {
  578. this.labelKey = [];
  579. this.active = "";
  580. this.searchVal = "";
  581. this.allFamily = [];
  582. this.isLoading = true;
  583. // if (this.value == "property") {
  584. // queryFamilyAll(res => {
  585. // this.allFamily = res.Content.map((item) => {
  586. // return {
  587. // code: item.Code,
  588. // name: item.Name
  589. // }
  590. // })
  591. // this.isLoading = false
  592. // this.familySort()
  593. // })
  594. // } else if (this.value == "space") {
  595. // queryDictionaryHead({Filters: "parentId = 'Space';Code != 'Ispace'"}, res => {
  596. // this.allFamily = res.Content.map(item => {
  597. // return {
  598. // "code": item.Code,
  599. // "name": item.Name
  600. // }
  601. // })
  602. // console.log(this.allFamily)
  603. // this.isLoading = false
  604. // this.familySort();
  605. // })
  606. // } else if (this.value == "tenant") {
  607. // this.allFamily = [{
  608. // "code": "Tenant",
  609. // "name": "租户"
  610. // }]
  611. // this.isLoading = false
  612. // this.familySort()
  613. // } else if (this.value == "shaft") {
  614. // this.allFamily = [{
  615. // "code": "Shaft",
  616. // "name": "竖井"
  617. // }]
  618. // this.isLoading = false
  619. // this.familySort()
  620. // } else {
  621. // let param = {"Type": this.value, ProjectId: 'Pj1101050029'}
  622. // queryPhysicsAllType(param, res => {
  623. // this.allFamily = res.content.map((item) => ({
  624. // code: item.code,
  625. // name: item.name,
  626. // aliasName: item.aliasName,
  627. // aliasCode: item.aliasCode
  628. // }))
  629. // this.isLoading = false
  630. // this.familySort()
  631. // })
  632. // }
  633. let param = { "type": this.value, projectId: 'Pj1101050029' }
  634. queryPhysicsAllType(param, res => {
  635. if (res.content) {
  636. this.allFamily = res.content.map((item) => ({
  637. code: item.code,
  638. name: item.name,
  639. aliasName: item.aliasName,
  640. aliasCode: item.aliasCode
  641. }))
  642. }
  643. this.isLoading = false
  644. this.familySort()
  645. })
  646. },
  647. changeSpace(arr) {
  648. return arr.map(item => {
  649. return {
  650. name: item.name,
  651. code: item.code
  652. }
  653. })
  654. },
  655. //点击checkBox的事件
  656. boxChange(detail) {
  657. let param = {
  658. content: [{
  659. classCode: this.code,
  660. code: detail.InfoPointCode,
  661. visible: detail.Visible,
  662. groupCode: detail.groupCode,
  663. id: detail.id,
  664. type: detail.type
  665. }]
  666. }
  667. setDataDictionary(param, res => {
  668. return
  669. });
  670. },
  671. //修改search
  672. changeVal(val) {
  673. this.searchArr = [];
  674. this.letterArr = [];
  675. let newArr = [],
  676. arr = [],
  677. obj = {};
  678. const self = this;
  679. for (let i = 0; i < this.allFamily.length; i++) {
  680. if (this.allFamily[i].name.indexOf(val) >= 0 || this.allFamily[i].code.indexOf(val) >= 0) {
  681. newArr.push(this.allFamily[i]);
  682. }
  683. }
  684. newArr.forEach(function (value, index, array) {
  685. //在每个城市加一个capitalize的标识代表首字母
  686. value.capitalize = self
  687. .makePy(value.name)[0]
  688. .toUpperCase()
  689. .substr(0, 1);
  690. if (!obj[value.capitalize]) {
  691. obj[value.capitalize] = true;
  692. arr.push(value.capitalize);
  693. }
  694. });
  695. if (val == "") {
  696. this.getAllFamily();
  697. } else {
  698. this.searchArr = newArr;
  699. this.letterArr = arr.sort();
  700. }
  701. },
  702. //高亮行
  703. familyActive(name, code) {
  704. this.stepActive = 0
  705. this.active = name
  706. this.code = code
  707. if (code) {
  708. let param = {
  709. type: code,
  710. orders: "sort asc, name desc",
  711. };
  712. this.rightLoading = true
  713. this.tabsFalg = false
  714. getDataDictionary(param, result => {
  715. this.rightLoading = false
  716. if (result.result == "success") {
  717. this.tabsFalg = true
  718. this.labelKey = this.arrayCnt(result.content)
  719. // this.labelKey = result.content
  720. } else {
  721. this.dialogVisible = true;
  722. this.ajaxMsg = "请求出错";
  723. }
  724. });
  725. }
  726. },
  727. //处理头部函数
  728. arrayCnt(arr) {
  729. let first = {}
  730. //一级循环出来一级标签
  731. arr.map(item => {
  732. if (first[item.firstName] && first[item.firstName].length) {
  733. } else {
  734. first[item.firstName] = []
  735. }
  736. first[item.firstName].push({
  737. InfoPointName: item.name,
  738. InfoPointCode: item.code,
  739. Visible: item.visible,
  740. UnDisabled: item.unDisabled,
  741. SecondName: item.secondName ? item.secondName : '',
  742. type: item.type,
  743. classCode: item.classCode,
  744. id: item.id,
  745. groupCode: item.groupCode,
  746. })
  747. })
  748. //循环出第二级标签
  749. let sound = []
  750. for (let key in first) {
  751. let obj = {
  752. firstName: key !== 'undefined' ? key : '信息',
  753. details: {}
  754. }
  755. first[key].map(item => {
  756. if (!!obj.details[item.SecondName] && obj.details[item.SecondName].length) {
  757. } else {
  758. obj.details[item.SecondName] = []
  759. }
  760. obj.details[item.SecondName].push({
  761. InfoPointName: item.InfoPointName,
  762. InfoPointCode: item.InfoPointCode,
  763. Visible: item.Visible,
  764. UnDisabled: item.UnDisabled,
  765. type: item.type,
  766. classCode: item.classCode,
  767. id: item.id,
  768. groupCode: item.groupCode,
  769. })
  770. })
  771. sound.push(obj)
  772. }
  773. //循环出制定的数据结构
  774. let newArr = sound.map(item => {
  775. let copyarr = Object.assign(item.details, {})
  776. for (let k in item.details) {
  777. if (item.details instanceof Array) {
  778. } else {
  779. item.details = []
  780. }
  781. item.details.push({
  782. SecondName: k,
  783. details: copyarr[k]
  784. })
  785. }
  786. return item
  787. })
  788. return newArr
  789. },
  790. //所选字母淡入淡出效果
  791. moveScroll(character) {
  792. const LetterBox = $("#letter");
  793. const Initials = $(".initials");
  794. Initials.css("background", "rgba(145,145,145,0.6)");
  795. if (self.timeOut) {
  796. clearTimeout(self.timeOut);
  797. }
  798. self.timeOut = setTimeout(function () {
  799. Initials.css("background", "rgba(145,145,145,0)");
  800. LetterBox.fadeOut();
  801. }, 1000);
  802. if (character == undefined) {
  803. $(".family_all").animate({
  804. scrollTop: "0px"
  805. }, 300); //点击第一个滚到顶部
  806. } else {
  807. if ($("#" + character).length > 0) {
  808. LetterBox.html(character).fadeIn();
  809. const LetterTop = document.getElementById(character).offsetTop;
  810. $(".family_all").animate({
  811. scrollTop: LetterTop
  812. }, 300);
  813. }
  814. }
  815. },
  816. //排序方法
  817. familySort() {
  818. this.letterArr = [];
  819. let obj = {};
  820. let arr = [];
  821. const self = this;
  822. this.allFamily.forEach(function (value, index, array) {
  823. //在每个城市加一个capitalize的标识代表首字母
  824. value.capitalize = self
  825. .makePy(value.name)[0]
  826. .toUpperCase()
  827. .substr(0, 1);
  828. if (!obj[value.capitalize]) {
  829. obj[value.capitalize] = true;
  830. arr.push(value.capitalize);
  831. }
  832. });
  833. //字母列表排序
  834. this.letterArr = arr.sort();
  835. },
  836. //对字符串进行截取
  837. makePy(str) {
  838. if (typeof str != "string")
  839. throw new Error(-1, "函数makePy需要字符串类型参数!");
  840. let arrResult = new Array(); //保存中间结果的数组
  841. for (let i = 0, len = str.length; i < len; i++) {
  842. //获得unicode码
  843. let ch = str.charAt(i);
  844. //检查该unicode码是否在处理范围之内,在则返回该码对映汉字的拼音首字母,不在则调用其它函数处理
  845. arrResult.push(this.checkCh(ch));
  846. }
  847. //处理arrResult,返回所有可能的拼音首字母串数组
  848. return this.mkRslt(arrResult);
  849. },
  850. //处理中文字符
  851. checkCh(ch) {
  852. let uni = ch.charCodeAt(0);
  853. //如果不在汉字处理范围之内,返回原字符,也可以调用自己的处理函数
  854. if (uni > 40869 || uni < 19968) return ch; //dealWithOthers(ch);
  855. //检查是否是多音字,是按多音字处理,不是就直接在this.strChineseFirstPY字符串中找对应的首字母
  856. return this.oMultiDiff[uni] ?
  857. this.oMultiDiff[uni] :
  858. this.strChineseFirstPY.charAt(uni - 19968);
  859. },
  860. //对数组添加首字母
  861. mkRslt(arr) {
  862. let arrRslt = [""];
  863. for (let i = 0, len = arr.length; i < len; i++) {
  864. let str = arr[i];
  865. let strlen = str.length;
  866. if (strlen == 1) {
  867. for (let k = 0; k < arrRslt.length; k++) {
  868. arrRslt[k] += str;
  869. }
  870. } else {
  871. let tmpArr = arrRslt.slice(0);
  872. arrRslt = [];
  873. for (let k = 0; k < strlen; k++) {
  874. //复制一个相同的arrRslt
  875. let tmp = tmpArr.slice(0);
  876. //把当前字符str[k]添加到每个元素末尾
  877. for (let j = 0; j < tmp.length; j++) {
  878. tmp[j] += str.charAt(k);
  879. }
  880. //把复制并修改后的数组连接到arrRslt上
  881. arrRslt = arrRslt.concat(tmp);
  882. }
  883. }
  884. }
  885. return arrRslt;
  886. },
  887. jump(tab, event) {
  888. this.stepActive = tab.index
  889. let jump = document.querySelectorAll('.d_jump'),
  890. total = jump[tab.index].offsetTop,// 获取需要滚动的距离
  891. listener = document.querySelector('.right_main'),
  892. distance = listener.scrollTop,
  893. step = total / 50;
  894. if (total > distance) {
  895. smoothDown()
  896. } else {
  897. let newTotal = distance - total + 100
  898. step = newTotal / 50
  899. smoothUp()
  900. }
  901. function smoothDown() {
  902. if (distance < total) {
  903. distance += step
  904. listener.scrollTop = distance
  905. setTimeout(smoothDown, 10)
  906. } else {
  907. listener.scrollTop = total
  908. }
  909. }
  910. function smoothUp() {
  911. if (distance > total) {
  912. distance -= step
  913. listener.scrollTop = distance
  914. setTimeout(smoothUp, 10)
  915. } else {
  916. listener.scrollTop = total
  917. }
  918. }
  919. },
  920. onScroll() {
  921. let scrolled = document.querySelector('.right_main').scrollTop
  922. let jump = document.querySelectorAll('.d_jump')
  923. // let active = Array.from(jump).findIndex((item, index) => {
  924. // return item.offsetTop > scrolled ? index : ''
  925. // })
  926. // this.stepActive = active.toString()
  927. for (let i = 0; i < jump.length; i++) {
  928. if (jump[i].offsetTop >= scrolled) {
  929. this.stepActive = i.toString()
  930. break
  931. }
  932. }
  933. }
  934. },
  935. watch: {
  936. projectId() {
  937. this.getAllFamily()
  938. this.main = null
  939. this.active = ""
  940. this.code = ""
  941. this.tabsFalg = false
  942. this.stepActive = 0
  943. }
  944. }
  945. };
  946. </script>
  947. <style lang="scss">
  948. #page-main .el-scrollbar .el-scrollbar__wrap .el-scrollbar__view {
  949. height: 100%;
  950. }
  951. #page-main .right_main .el-tabs__content {
  952. height: 100%;
  953. padding-top: 5px;
  954. overflow-y: auto;
  955. }
  956. nav .el-tabs__content {
  957. display: none;
  958. }
  959. nav .el-tabs__header {
  960. margin: 0;
  961. }
  962. nav .el-tabs--card > .el-tabs__header .el-tabs__item.is-active {
  963. border-top: 2px solid #409EFF;
  964. }
  965. nav .el-tabs--card > .el-tabs__header .el-tabs__item {
  966. border-top: 2px solid transparent;
  967. }
  968. </style>
  969. <style lang="scss" scoped>
  970. #family {
  971. overflow-y: hidden;
  972. height: 100%;
  973. display: flex;
  974. flex-direction: column;
  975. padding: 10px;
  976. background: #fff;
  977. .el-step {
  978. cursor: pointer;
  979. }
  980. .reset-steps {
  981. height: 100%;
  982. float: right;
  983. position: fixed;
  984. // top: 25px;
  985. right: 40px;
  986. }
  987. select {
  988. height: 28px;
  989. line-height: 40px;
  990. option {
  991. height: 28px;
  992. }
  993. }
  994. header {
  995. height: 3rem;
  996. line-height: 3rem;
  997. margin: 0 0rem;
  998. box-sizing: border-box;
  999. padding-left: 10px;
  1000. margin-bottom: 3px;
  1001. }
  1002. .family_all::-webkit-scrollbar {
  1003. background: #FFF;
  1004. }
  1005. nav {
  1006. flex: 1;
  1007. display: flex;
  1008. flex-direction: row;
  1009. overflow: hidden;
  1010. .tab-box {
  1011. flex: 1;
  1012. }
  1013. .button-box {
  1014. width: 200px;
  1015. text-align: right;
  1016. border-bottom: 1px solid #E4E7ED;
  1017. }
  1018. }
  1019. main {
  1020. // flex: 1;
  1021. border: 1px solid #E4E7ED;
  1022. border-top: none;
  1023. height: calc(100% - 42px);
  1024. overflow: hidden;
  1025. position: relative;
  1026. transform: translate(0, 0);
  1027. .left_main {
  1028. width: 350px;
  1029. float: left;
  1030. height: 100%;
  1031. position: absolute;
  1032. top: 0;
  1033. bottom: 0;
  1034. background-color: #fff;
  1035. .family_all {
  1036. overflow-y: auto;
  1037. height: calc(100% - 60px);
  1038. position: relative;
  1039. }
  1040. #letter {
  1041. width: 100px;
  1042. height: 100px;
  1043. border-radius: 5px;
  1044. font-size: 75px;
  1045. color: #555;
  1046. text-align: center;
  1047. line-height: 100px;
  1048. background: rgba(145, 145, 145, 0.6);
  1049. position: fixed;
  1050. left: 50%;
  1051. top: 50%;
  1052. margin: -50px 0px 0px -50px;
  1053. z-index: 99;
  1054. display: none;
  1055. }
  1056. .initials {
  1057. position: fixed;
  1058. top: 42px;
  1059. left: 334px;
  1060. height: 100%;
  1061. width: 16px;
  1062. text-align: center;
  1063. font-size: 12px;
  1064. padding-top: 30px;
  1065. z-index: 99;
  1066. background: white !important;
  1067. li {
  1068. cursor: pointer;
  1069. font-size: 14px;
  1070. }
  1071. li:hover {
  1072. color: #409eff;
  1073. }
  1074. }
  1075. .family_title {
  1076. font-size: 18px;
  1077. font-weight: bold;
  1078. padding: 5px 10px;
  1079. background-color: #ccc;
  1080. }
  1081. .family_content {
  1082. background-color: #fff;
  1083. }
  1084. .family_item {
  1085. padding: 5px 10px;
  1086. border-bottom: 1px solid #eee;
  1087. color: #333;
  1088. cursor: pointer;
  1089. }
  1090. .family_item:hover {
  1091. background-color: #409eff;
  1092. color: #fff;
  1093. }
  1094. .active {
  1095. background-color: #409eff;
  1096. color: #fff;
  1097. }
  1098. }
  1099. .right_main {
  1100. float: right;
  1101. overflow-y: auto;
  1102. width: calc(100% - 370px);
  1103. padding-left: 10px;
  1104. height: 100%;
  1105. background-color: #fff;
  1106. border-left: 1px solid #f5f5f5;
  1107. .d_jump {
  1108. width: calc(100% - 105px);
  1109. }
  1110. .right_main_msg {
  1111. padding-left: 10px;
  1112. padding-top: 200px;
  1113. font-size: 40px;
  1114. font-weight: 600;
  1115. }
  1116. .label_main {
  1117. p {
  1118. /*font-size: 18px;*/
  1119. padding-left: 30px;
  1120. color: #333;
  1121. line-height: 40px;
  1122. }
  1123. ul {
  1124. display: inline-block;
  1125. width: 230px;
  1126. line-height: 30px;
  1127. .el-checkbox {
  1128. width: 220px;
  1129. overflow: hidden;
  1130. white-space: nowrap;
  1131. text-overflow: ellipsis;
  1132. }
  1133. /deep/ .el-checkbox__label {
  1134. display: initial;
  1135. }
  1136. }
  1137. }
  1138. }
  1139. }
  1140. }
  1141. </style>