1
0

index.vue 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <template>
  2. <view class="msilde">
  3. <view class="left">
  4. <u-collapse accordion :value="list[0].deptId">
  5. <u-collapse-item :title="d.deptName" :name="d.deptId" v-for="(d, index) in list" :key="d.deptName">
  6. <view :class="{ active: index == i.current }" v-for="(i, index) in d.children" :key="i.deptName" class="item" @click="selected(i, index)">{{ i.deptName }}</view>
  7. </u-collapse-item>
  8. </u-collapse>
  9. </view>
  10. <view class="right">
  11. <view class="contents">
  12. <u-divider :text="item.deptName + '介绍'" v-if="item.deptName"></u-divider>
  13. <u-parse :content="item.brief"></u-parse>
  14. </view>
  15. </view>
  16. </view>
  17. </template>
  18. <script>
  19. export default {
  20. data() {
  21. return {
  22. item: {},
  23. list: [{ deptId: 0 }]
  24. };
  25. },
  26. onLoad(e) {
  27. this.getData();
  28. },
  29. methods: {
  30. getData() {
  31. this.http.request({
  32. url: '/app/department/list',
  33. success: (res) => {
  34. this.list = res.data.data;
  35. if (this.list.length > 0 && this.list[0].children.length > 0) {
  36. this.selected(this.list[0].children[0], 0);
  37. }
  38. }
  39. });
  40. },
  41. selected(item, index) {
  42. this.list.flatMap((i) => i.children).forEach((j) => (j.current = -1));
  43. item.current = index;
  44. this.http.request({
  45. url: '/app/department/detail/' + item.deptId,
  46. success: (res) => {
  47. this.item = res.data.data;
  48. this.item.brief = res.data.data.brief.replace(new RegExp('/profile/upload/', 'g'), this.http.ip + '/profile/upload/');
  49. }
  50. });
  51. }
  52. }
  53. };
  54. </script>
  55. <style lang="scss"></style>