archivetree.vue 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766
  1. <template>
  2. <basic-container>
  3. <el-row :gutter="20">
  4. <el-col
  5. span="9"
  6. class='marleft20'
  7. >
  8. <h2>归档目录树</h2>
  9. <el-tree
  10. v-if="leftTree"
  11. :props="props"
  12. :load="loadNode"
  13. :data="data"
  14. lazy
  15. >
  16. <span
  17. class=" flexStar"
  18. slot-scope="{ node, data }"
  19. >
  20. <span>{{ data.title }}</span>
  21. <span class="marleft10">
  22. <i
  23. @click.stop='addtree(data)'
  24. class="el-icon-circle-plus-outline"
  25. style="fontSize:18px;"
  26. v-if="data.isStorageNode!=1"
  27. ></i>
  28. <i
  29. @click.stop='edittree(data)'
  30. class="el-icon-edit-outline marleft5"
  31. style="fontSize:18px;"
  32. v-if="node.level!=1"
  33. ></i>
  34. <i
  35. @click.stop='deletetree(data)'
  36. class="el-icon-delete marleft5"
  37. style="fontSize:18px;"
  38. v-if="node.level!=1"
  39. ></i>
  40. </span>
  41. </span>
  42. </el-tree>
  43. </el-col>
  44. <el-col
  45. span="7"
  46. style="padding-top:30px;"
  47. >
  48. <h3>上传文件入口显示配置</h3>
  49. <div class="peizhi">
  50. <div class="flexEnd">
  51. <i
  52. @click="rightPushTree"
  53. class="el-icon-plus"
  54. style="backgroundColor:#2A97DF;color:#fff;fontSize:20px;cursor: pointer;"
  55. ></i>
  56. </div>
  57. <el-tree
  58. :props="Rightprops"
  59. :data="rightData"
  60. node-key="id"
  61. accordion
  62. ref="tree"
  63. class="filter-tree"
  64. >
  65. </el-tree>
  66. </div>
  67. </el-col>
  68. </el-row>
  69. <!-- 新增编辑 -->
  70. <el-dialog
  71. :title="form.id?'编辑':'新增'"
  72. :visible.sync="treeTap"
  73. width="700px"
  74. :modal-append-to-body="false"
  75. @close="treeClose"
  76. >
  77. <div>
  78. <el-form
  79. ref="form"
  80. :model="form"
  81. label-width="120px"
  82. :rules="rules"
  83. >
  84. <el-form-item
  85. label="节点名称"
  86. prop="nodeName"
  87. >
  88. <el-input
  89. v-model="form.nodeName"
  90. style="width:400px;"
  91. ></el-input>
  92. </el-form-item>
  93. <el-form-item
  94. label="岗位类型"
  95. prop="postType"
  96. >
  97. <el-select
  98. v-model="form.postType"
  99. placeholder="请选择岗位"
  100. style="width:400px;"
  101. >
  102. <el-option
  103. v-for="item in JobTypeList"
  104. :key="item.id"
  105. :label="item.title"
  106. :value="item.id"
  107. ></el-option>
  108. </el-select>
  109. </el-form-item>
  110. <el-form-item
  111. label="节点类型"
  112. prop="nodeType"
  113. >
  114. <el-select
  115. :disabled='form.id!=""'
  116. v-model="form.nodeType"
  117. placeholder="请选择节点"
  118. style="width:400px;"
  119. >
  120. <el-option
  121. v-for="item in nodeTypeList"
  122. :key="item"
  123. :label="item.label"
  124. :value="item.value"
  125. ></el-option>
  126. </el-select>
  127. </el-form-item>
  128. <template v-if="form.nodeType==2">
  129. <el-form-item
  130. label="是否存储节点"
  131. prop="isStorageNode"
  132. >
  133. <el-select
  134. :disabled='form.id!=""'
  135. v-model="form.isStorageNode"
  136. style="width:400px;"
  137. >
  138. <el-option
  139. v-for="item in storageNodeList"
  140. :key="item"
  141. :label="item.label"
  142. :value="item.value"
  143. ></el-option>
  144. </el-select>
  145. </el-form-item>
  146. <template v-if="form.isStorageNode==1">
  147. <el-form-item
  148. label="是否竣工图"
  149. prop="isBuiltDrawing"
  150. >
  151. <el-select
  152. v-model="form.isBuiltDrawing"
  153. style="width:400px;"
  154. >
  155. <el-option
  156. v-for="item in builtDrawingList"
  157. :key="item"
  158. :label="item.label"
  159. :value="item.value"
  160. ></el-option>
  161. </el-select>
  162. </el-form-item>
  163. <el-form-item
  164. label="是否接口节点"
  165. prop="isInterfaceNode"
  166. >
  167. <el-select
  168. v-model="form.isInterfaceNode"
  169. style="width:400px;"
  170. >
  171. <el-option
  172. v-for="item in interfaceNodeList"
  173. :key="item"
  174. :label="item.label"
  175. :value="item.value"
  176. ></el-option>
  177. </el-select>
  178. </el-form-item>
  179. <template v-if="form.isInterfaceNode==1">
  180. <el-form-item label="选择接口类型">
  181. <el-select
  182. v-model="form.interfaceType"
  183. style="width:400px;"
  184. >
  185. <el-option
  186. v-for="item in interfaceTypeList"
  187. :key="item"
  188. :label="item.label"
  189. :value="item.value"
  190. ></el-option>
  191. </el-select>
  192. </el-form-item>
  193. </template>
  194. </template>
  195. </template>
  196. <!-- 数字化文件上传 -->
  197. <template v-if="form.nodeType==1">
  198. <el-form-item
  199. label="关联类型"
  200. prop="associationType"
  201. >
  202. <el-select
  203. v-model="form.associationType"
  204. style="width:400px;"
  205. placeholder="请选择"
  206. >
  207. <el-option
  208. v-for="item in associationTypeList"
  209. :key="item"
  210. :label="item.label"
  211. :value="item.value"
  212. ></el-option>
  213. </el-select>
  214. </el-form-item>
  215. <template v-if="form.associationType==1">
  216. <el-form-item
  217. label="业内资料类型"
  218. prop="majorDataType"
  219. >
  220. <el-checkbox-group v-model="form.majorDataType">
  221. <el-checkbox
  222. v-for="item in majorDataTypeList"
  223. :key="item.dictKey"
  224. :label="item.dictKey"
  225. name="type"
  226. >{{item.dictValue}}</el-checkbox>
  227. </el-checkbox-group>
  228. </el-form-item>
  229. <el-form-item
  230. label="显示层级"
  231. prop="displayHierarchy"
  232. >
  233. <el-select
  234. v-model="form.displayHierarchy"
  235. style="width:400px;"
  236. placeholder="请选择"
  237. >
  238. <el-option
  239. v-for="item in displayHierarchyList"
  240. :key="item.dictKey"
  241. :label="item.dictValue"
  242. :value="item.dictKey"
  243. ></el-option>
  244. </el-select>
  245. </el-form-item>
  246. </template>
  247. </template>
  248. </el-form>
  249. </div>
  250. <span
  251. slot="footer"
  252. class="dialog-footer"
  253. >
  254. <el-button @click="treeTap=false">取 消</el-button>
  255. <el-button
  256. type="primary"
  257. @click="saveTree"
  258. >保 存</el-button>
  259. </span>
  260. </el-dialog>
  261. <!-- 右侧树 -->
  262. <el-dialog
  263. title="上传文件入口显示配置"
  264. :visible.sync="pushfileTap"
  265. :modal-append-to-body='false'
  266. width="800px"
  267. @close="pushFileClose"
  268. >
  269. <div>
  270. <el-tree
  271. :props="dialogProps"
  272. show-checkbox
  273. :data="dialogData"
  274. node-key="id"
  275. accordion
  276. ref="trees"
  277. class="filter-tree"
  278. >
  279. </el-tree>
  280. </div>
  281. <span
  282. slot="footer"
  283. class="dialog-footer"
  284. >
  285. <el-button @click="pushfileTap = false">取 消</el-button>
  286. <el-button
  287. type="primary"
  288. @click="saveFile"
  289. >确 定</el-button>
  290. </span>
  291. </el-dialog>
  292. </basic-container>
  293. </template>
  294. <script>
  295. import { archiveTreeInit, lazyTree, dictionary, remove, archiveTreeSave, archiveTreeUpdate, archiveTreeDetail, archiveTreetree, submitDisplayConfigTree } from "@/api/manager/archivetree";
  296. import { getToken } from '@/util/auth';
  297. import { roletree } from "@/api/system/role.js";
  298. export default {
  299. data () {
  300. return {
  301. //#region 左侧树
  302. leftTree: true,
  303. token: '',
  304. props: {
  305. label: 'title',
  306. children: 'children',
  307. isLeaf: 'hasChildren'
  308. },
  309. data: [],//树节点枚举值
  310. //#endregion
  311. //#region 新增编辑节点弹框
  312. treeTap: false,
  313. form: {
  314. id: '',//新增还是编辑
  315. parentId: '', //上级节点id
  316. nodeName: "", //节点名称
  317. nodeType: '', // 节点类型 2 = 数字化上传文件
  318. postType: '', //岗位类型
  319. isStorageNode: '', //是否为存储节点
  320. isBuiltDrawing: '', //竣工图
  321. isInterfaceNode: '', //是否接口节点
  322. interfaceType: '', //选择接口类型
  323. associationType: '', //关联类型
  324. majorDataType: [], //内业资料类型
  325. displayHierarchy: '' //显示层级
  326. },
  327. rules: {
  328. nodeName: [{ required: true, message: '请输入节点名称', trigger: 'blur' }],
  329. postType: [{ required: true, message: '请选择岗位类型', trigger: 'change' }],
  330. nodeType: [{ required: true, message: '请选择节点类型', trigger: 'change' }],
  331. isStorageNode: [{ required: true, message: '请选择存储节点', trigger: 'change' }],
  332. isBuiltDrawing: [{ required: true, message: '请选择竣工图', trigger: 'change' }],
  333. isInterfaceNode: [{ required: true, message: '请选择接口节点', trigger: 'change' }],
  334. interfaceType: [{ required: true, message: '请选择接口类型', trigger: 'change' }],
  335. associationType: [{ required: true, message: '请选择关联类型', trigger: 'change' }],
  336. majorDataType: [{ required: true, message: '请选择业内资料类型', trigger: 'change' }],
  337. displayHierarchy: [{ required: true, message: '请选择显示层级', trigger: 'change' }],
  338. },
  339. JobTypeList: [],//岗位类型枚举
  340. nodeTypeList: [
  341. {
  342. label: '关联电子原生文件',
  343. value: 1
  344. }, {
  345. label: '数字化上传文件',
  346. value: 2
  347. },
  348. ],//节点类型枚举
  349. storageNodeList: [{
  350. label: '是',
  351. value: 1
  352. }, {
  353. label: '否',
  354. value: 2
  355. },],//存储节点枚举
  356. builtDrawingList: [{
  357. label: '是',
  358. value: 1
  359. }, {
  360. label: '否',
  361. value: 2
  362. },],//竣工图枚举
  363. interfaceNodeList: [{
  364. label: '是',
  365. value: 1
  366. }, {
  367. label: '否',
  368. value: 2
  369. },],//接口节点枚举
  370. interfaceTypeList: [
  371. {
  372. label: '试验接口',
  373. value: 1
  374. }, {
  375. label: '计量接口',
  376. value: 2
  377. },
  378. ],//选择接口类型枚举
  379. associationTypeList: [{
  380. label: '质检资料',
  381. value: 1
  382. },
  383. {
  384. label: '试验资料',
  385. value: 2
  386. },
  387. {
  388. label: '影像资料',
  389. value: 3
  390. },
  391. {
  392. label: '台账资料',
  393. value: 4
  394. }],//
  395. majorDataTypeList: [],//
  396. displayHierarchyList: [],//
  397. //#endregion
  398. //#region 右侧树节点
  399. pushfileTap: false,//开关
  400. Rightprops: {
  401. label: 'title'
  402. },
  403. rightData: [],
  404. //#endregion
  405. //#region 右侧树弹框
  406. dialogProps: {
  407. label: 'title'
  408. },
  409. dialogData: [],
  410. checkXuan: [],
  411. //#endregion
  412. }
  413. },
  414. methods: {
  415. //#region 左侧树方法
  416. async loadNode (node, resolve) {
  417. console.log(node);
  418. if (node.level === 0) {
  419. resolve([{
  420. title: '系统级归档模板',
  421. hasChildren: false,
  422. id: 0,
  423. isStorageNode: 0,
  424. }])
  425. } else {
  426. resolve(await this.lazyTree(node.data.id))
  427. }
  428. },
  429. async archiveTreeInit () {//添加根节点
  430. const { data: res } = await archiveTreeInit()
  431. console.log(res);
  432. },
  433. async lazyTree (parentId) {//树节点懒加载
  434. const { data: res } = await lazyTree({
  435. parentId,
  436. token: this.token
  437. })
  438. console.log(res);
  439. if (res.code == 200 && res.msg == '操作成功') {
  440. res.data.forEach(val => {
  441. val.hasChildren = !val.hasChildren
  442. });
  443. return res.data
  444. } else if (res.code == 200 && res.msg == "未查询到信息") {
  445. return []
  446. }
  447. },
  448. addtree (data) {//添加树
  449. if (this.JobTypeList.length == 0) {
  450. this.roletree()
  451. }
  452. if (this.majorDataTypeList.length == 0) {
  453. this.major_data_type()//内业资料类型
  454. }
  455. if (this.displayHierarchyList.length == 0) {
  456. this.display_hierarchy()//显示层级
  457. }
  458. this.form.id = ''
  459. this.form.parentId = data.id
  460. this.treeTap = true
  461. },
  462. async edittree (data) {//编辑树
  463. console.log(data);
  464. if (this.JobTypeList.length == 0) {
  465. this.roletree()
  466. }
  467. if (this.majorDataTypeList.length == 0) {
  468. this.major_data_type()//内业资料类型
  469. }
  470. if (this.displayHierarchyList.length == 0) {
  471. this.display_hierarchy()//显示层级
  472. }
  473. await this.archiveTreeDetail(data.id)
  474. this.form.id = data.id
  475. this.form.parentId = ''
  476. this.treeTap = true
  477. },
  478. deletetree (data) {//删除树
  479. this.$confirm('是否删除此数据', '提示', {
  480. distinguishCancelAndClose: true,
  481. confirmButtonText: '确认',
  482. cancelButtonText: '取消'
  483. })
  484. .then(() => {
  485. this.remove(data.id)
  486. })
  487. .catch(() => {
  488. });
  489. },
  490. async remove (id) {//删除接口
  491. const { data: res } = await remove({ id })
  492. console.log(res);
  493. if (res.code == 200) {
  494. this.$message({
  495. type: 'success',
  496. message: '删除成功'
  497. })
  498. this.data = []
  499. this.leftTree = false
  500. this.$nextTick(() => {
  501. this.leftTree = true
  502. })
  503. }
  504. },
  505. async archiveTreeDetail (id) {//详情接口
  506. const { data: res } = await archiveTreeDetail({ id })
  507. console.log(res);
  508. if (res.code == 200) {
  509. this.form.nodeName = res.data.fullName //节点名称
  510. this.form.nodeType = res.data.nodeType // 节点类型 2 = 数字化上传文件
  511. this.form.postType = res.data.postType //岗位类型
  512. this.form.isStorageNode = res.data.isStorageNode //是否为存储节点
  513. this.form.isBuiltDrawing = res.data.isBuiltDrawing //竣工图
  514. this.form.isInterfaceNode = res.data.isInterfaceNode //是否接口节点
  515. this.form.interfaceType = res.data.interfaceType //选择接口类型
  516. this.form.associationType = res.data.associationType //关联类型
  517. this.form.majorDataType = res.data.majorDataType //内业资料类型
  518. this.form.displayHierarchy = res.data.displayHierarchy //显示层级
  519. }
  520. },
  521. //#endregion
  522. //#region 新增编辑节点弹框
  523. treeClose () {//弹框关闭事件
  524. this.form = {
  525. parentId: '', //上级节点id
  526. nodeName: "", //节点名称
  527. nodeType: '', // 节点类型 2 = 数字化上传文件
  528. postType: '', //岗位类型
  529. isStorageNode: '', //是否为存储节点
  530. isBuiltDrawing: '', //竣工图
  531. isInterfaceNode: '', //是否接口节点
  532. interfaceType: '', //选择接口类型
  533. associationType: '', //关联类型
  534. majorDataType: [], //内业资料类型
  535. displayHierarchy: '' //显示层级
  536. }
  537. this.$refs.form.resetFields();
  538. this.form.id = ''
  539. this.treeTap = false
  540. },
  541. async roletree () {//岗位类型枚举
  542. const { data: res } = await roletree()
  543. console.log(res);
  544. if (res.code == 200) {
  545. this.JobTypeList = res.data
  546. }
  547. },
  548. async major_data_type () {//内业资料类型
  549. const { data: res } = await dictionary({ code: 'major_data_type' })
  550. console.log(res);
  551. if (res.code == 200) {
  552. this.majorDataTypeList = res.data
  553. }
  554. },
  555. async display_hierarchy () {//显示层级
  556. const { data: res } = await dictionary({ code: 'display_hierarchy' })
  557. console.log(res);
  558. if (res.code == 200) {
  559. this.displayHierarchyList = res.data
  560. }
  561. },
  562. saveTree () {//保存按钮
  563. this.$refs.form.validate(val => {
  564. if (val) {
  565. if (this.form.nodeType == 2) {
  566. if (this.form.isStorageNode == 1) {
  567. if (this.form.isInterfaceNode == 1) {
  568. this.baocun({
  569. id: this.form.id,
  570. parentId: this.form.parentId, //上级节点id
  571. nodeName: this.form.nodeName, //节点名称
  572. nodeType: this.form.nodeType, // 节点类型
  573. postType: this.form.postType, //岗位类型
  574. isStorageNode: this.form.isStorageNode, //是否为存储节点
  575. isBuiltDrawing: this.form.isBuiltDrawing, //竣工图
  576. isInterfaceNode: this.form.isInterfaceNode, //是否接口节点
  577. interfaceType: this.form.interfaceType, //选择接口类型
  578. })
  579. } else {
  580. this.baocun({
  581. id: this.form.id,
  582. parentId: this.form.parentId, //上级节点id
  583. nodeName: this.form.nodeName, //节点名称
  584. nodeType: this.form.nodeType, // 节点类型
  585. postType: this.form.postType, //岗位类型
  586. isStorageNode: this.form.isStorageNode, //是否为存储节点
  587. isBuiltDrawing: this.form.isBuiltDrawing, //竣工图
  588. isInterfaceNode: this.form.isInterfaceNode, //是否接口节点
  589. })
  590. }
  591. } else {
  592. this.baocun({
  593. id: this.form.id,
  594. parentId: this.form.parentId, //上级节点id
  595. nodeName: this.form.nodeName, //节点名称
  596. nodeType: this.form.nodeType, // 节点类型
  597. postType: this.form.postType, //岗位类型
  598. isStorageNode: this.form.isStorageNode, //是否为存储节点
  599. })
  600. }
  601. } else if (this.form.nodeType == 1) {
  602. if (this.form.associationType == 1) {
  603. this.baocun({
  604. id: this.form.id,
  605. parentId: this.form.parentId, //上级节点id
  606. nodeName: this.form.nodeName, //节点名称
  607. nodeType: this.form.nodeType, // 节点类型
  608. associationType: this.form.associationType, //关联类型
  609. majorDataType: this.form.majorDataType, //内业资料类型
  610. displayHierarchy: this.form.displayHierarchy, //显示层级
  611. })
  612. } else {
  613. this.baocun({
  614. id: this.form.id,
  615. parentId: this.form.parentId, //上级节点id
  616. nodeName: this.form.nodeName, //节点名称
  617. nodeType: this.form.nodeType, // 节点类型
  618. associationType: this.form.associationType, //关联类型
  619. })
  620. }
  621. }
  622. }
  623. })
  624. },
  625. baocun (da) {
  626. if (this.form.id) {
  627. this.archiveTreeUpdate(da)
  628. } else {
  629. this.archiveTreeSave(da)
  630. }
  631. },
  632. async archiveTreeSave (da) {//新增
  633. const { data: res } = await archiveTreeSave(da)
  634. console.log(res);
  635. if (res.code == 200) {
  636. this.$message({
  637. type: 'success',
  638. message: '新增成功'
  639. })
  640. this.treeTap = false
  641. this.data = []
  642. this.leftTree = false
  643. this.$nextTick(() => {
  644. this.leftTree = true
  645. })
  646. }
  647. },
  648. async archiveTreeUpdate (da) {//编辑
  649. const { data: res } = await archiveTreeUpdate(da)
  650. console.log(res);
  651. if (res.code == 200) {
  652. this.$message({
  653. type: 'success',
  654. message: '编辑成功'
  655. })
  656. this.treeTap = false
  657. this.data = []
  658. this.leftTree = false
  659. this.$nextTick(() => {
  660. this.leftTree = true
  661. })
  662. }
  663. },
  664. //#endregion
  665. //#region 右侧树节点
  666. async rightPushTree () {//右侧节点树
  667. this.checkXuan = []
  668. await this.archiveTreetree2({
  669. token: this.token,
  670. nodeType: 2,
  671. })
  672. this.pushfileTap = true
  673. await this.saixuan(this.dialogData)
  674. console.log(this.checkXuan);
  675. this.$refs.trees.setCheckedKeys(this.checkXuan);
  676. },
  677. // 赛选
  678. saixuan (da) {//赛选
  679. if (da.length > 0) {
  680. da.forEach(val => {
  681. if (val.isDisplayTree == 1) {
  682. this.checkXuan.push(val.id)
  683. }
  684. if (val.hasChildren) {
  685. this.saixuan(val.children)
  686. }
  687. })
  688. }
  689. },
  690. pushFileClose () {//弹框关闭事件
  691. this.checkXuan = []
  692. },
  693. async archiveTreetree (da) {//右侧树全加载接口
  694. const { data: res } = await archiveTreetree(da)
  695. console.log(res);
  696. if (res.code == 200 && res.msg == "操作成功") {
  697. this.rightData = res.data
  698. }
  699. },
  700. //#endregion
  701. //#region 右侧树弹框
  702. async submitDisplayConfigTree (ids) {//保存接口
  703. const { data: res } = await submitDisplayConfigTree({ ids })
  704. console.log(res);
  705. if (res.code == 200) {
  706. this.$message({
  707. type: 'success',
  708. message: '设置成功'
  709. })
  710. this.archiveTreetree({
  711. token: this.token,
  712. disPlayTree: 1,
  713. nodeType: 2,
  714. })
  715. this.pushfileTap = false
  716. }
  717. },
  718. async archiveTreetree2 (da) {//右侧树全加载接口
  719. const { data: res } = await archiveTreetree(da)
  720. console.log(res);
  721. if (res.code == 200 && res.msg == "操作成功") {
  722. this.dialogData = res.data
  723. }
  724. },
  725. saveFile () {//保存按钮
  726. let arr = this.$refs.trees.getCheckedKeys()
  727. let ids = ''
  728. arr.forEach((val, key) => {
  729. ids += val
  730. if (key != arr.length - 1) {
  731. ids += ','
  732. }
  733. })
  734. this.submitDisplayConfigTree(ids)
  735. },
  736. //#endregion
  737. },
  738. created () {
  739. this.token = 'bearer ' + getToken()
  740. this.archiveTreetree({
  741. token: this.token,
  742. disPlayTree: 1,
  743. nodeType: 2,
  744. })
  745. },
  746. }
  747. </script>
  748. <style lang="scss" scoped>
  749. .peizhi {
  750. border: 1px solid #e5e5e5;
  751. border-radius: 5px;
  752. padding: 15px 10px;
  753. min-height: 600px;
  754. }
  755. </style>