index.vue 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  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="list" v-if="doctor_list.length > 0">
  12. <view v-for="(item, index) in doctor_list" :key="index" class="item" @click="go('/pages/doctor/detail?id=' + item.id)">
  13. <image :src="item.avatar ? ip + item.avatar : '../../static/head.png'" mode="scaleToFill" class="avatar"></image>
  14. <view class="con">
  15. <view class="name">{{ item.name }}</view>
  16. <view class="brief ellip">{{ item.brief }}</view>
  17. </view>
  18. </view>
  19. </view>
  20. <u-empty v-else></u-empty>
  21. </view>
  22. </view>
  23. </template>
  24. <script>
  25. export default {
  26. data() {
  27. return {
  28. ip: this.http.ip,
  29. doctor_list: {},
  30. list: [{ deptId: 0 }]
  31. };
  32. },
  33. onLoad(e) {
  34. this.getData();
  35. },
  36. methods: {
  37. getData() {
  38. this.http.request({
  39. url: '/app/department/list',
  40. success: (res) => {
  41. this.list = res.data.data;
  42. if (this.list.length > 0 && this.list[0].children.length > 0) {
  43. this.selected(this.list[0].children[0], 0);
  44. }
  45. }
  46. });
  47. },
  48. open() {
  49. this.current = -1;
  50. },
  51. selected(item, index) {
  52. this.list.flatMap((i) => i.children).forEach((j) => (j.current = -1));
  53. item.current = index;
  54. this.http.request({
  55. url: '/app/doctor/list',
  56. data: { deptId: item.deptId },
  57. success: (res) => {
  58. this.doctor_list = res.data.data;
  59. }
  60. });
  61. },
  62. go(url) {
  63. uni.navigateTo({ url: url });
  64. }
  65. }
  66. };
  67. </script>
  68. <style lang="scss"></style>