1
0

index.vue 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <template>
  2. <view class="msilde">
  3. <view class="left">
  4. <u-collapse accordion >
  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: []
  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. }
  36. });
  37. },
  38. selected(item, index) {
  39. this.list.flatMap((i) => i.children).forEach((j) => (j.current = -1));
  40. item.current = index;
  41. this.http.request({
  42. url: '/app/department/detail/' + item.deptId,
  43. success: (res) => {
  44. this.item = res.data.data;
  45. this.item.brief = res.data.data.brief.replace(new RegExp('/profile/upload/', 'g'), this.http.ip + '/profile/upload/');
  46. }
  47. });
  48. }
  49. }
  50. };
  51. </script>
  52. <style lang="scss"></style>