index.vue 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  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.deptId">
  9. <view :class="{ active: index == i.current }" v-for="(i, index) in d.children" :key="i.deptId" 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. selected(item, index) {
  52. this.list.forEach((i) => {
  53. if (i.children) {
  54. i.children.forEach((j) => {
  55. j.current = -1;
  56. });
  57. }
  58. });
  59. item.current = index;
  60. this.http.request({
  61. url: '/app/doctor/list',
  62. data: { deptId: item.deptId },
  63. success: (res) => {
  64. this.doctor_list = res.data.data;
  65. }
  66. });
  67. },
  68. go(url) {
  69. uni.navigateTo({ url: url });
  70. }
  71. }
  72. };
  73. </script>
  74. <style lang="scss"></style>