index.vue 2.0 KB

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