xiejiacheng 5 年之前
父節點
當前提交
5496420a64

+ 95 - 0
src/layout/xjc/chat-frame.vue

@@ -0,0 +1,95 @@
+<template>
+  <div id="chat-frame">
+    <van-sticky>
+      <van-nav-bar :title="title" :left-arrow="returns ? true : false" @click-left="$router.push({ path: returns })">
+        <template #right>
+          <slot name="rNav"></slot>
+        </template>
+      </van-nav-bar>
+    </van-sticky>
+
+    <van-row class="footer" type="flex" justify="center">
+      <van-col sapn="2" class="iconfont icon-yuyin icons">&nbsp; </van-col>
+      <van-col span="18" style="padding-right:5px;">
+        <van-field v-model="value" class="chat__input" />
+      </van-col>
+      <van-col sapn="2" class="iconfont icon-biaoqing icons" @click="showimoji">&nbsp; </van-col>
+      <van-col sapn="2" class="iconfont icon-21 icons" @click="showmore">&nbsp; </van-col>
+    </van-row>
+    <van-popup v-model="show1" position="bottom" overlay="false">
+      <van-grid clickable>
+        <van-grid-item icon="photo" text="照片" />
+        <van-grid-item icon="photograph" text="拍摄" />
+        <van-grid-item icon="phone" text="语音通话" />
+        <van-grid-item icon="gift-card" text="红包" />
+      </van-grid>
+    </van-popup>
+    <van-popup v-model="show2" position="bottom" overlay="false">
+      <van-grid clickable>
+        展示表情页
+      </van-grid>
+    </van-popup>
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'chat-frame',
+  props: {
+    title: null,
+    returns: { type: null, default: null },
+  },
+  components: {},
+  data: () => {
+    return {
+      value: '',
+      show1: false,
+      show2: false,
+    };
+  },
+  created() {},
+  mounted() {
+    this.container = this.$refs.container;
+  },
+  computed: {},
+  methods: {
+    showmore() {
+      this.show1 = true;
+    },
+    showimoji() {
+      this.show2 = true;
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.footer {
+  position: fixed;
+  bottom: 0;
+  width: 100%;
+  background: #cccccc;
+  z-index: 3;
+}
+.icons {
+  zoom: 1.5;
+  padding-top: 0.6rem;
+  padding-left: 0.1875rem;
+}
+.chat__input {
+  width: 100%;
+  background: #cccccc;
+  padding: 0.625rem 0;
+}
+/deep/.van-cell__value--alone {
+  color: #323233;
+  text-align: left;
+  background: #ffffff;
+}
+/deep/.van-field__control {
+  height: 27px;
+}
+.van-grid {
+  padding: 20px;
+}
+</style>

+ 32 - 0
src/layout/xjc/detail-frame.vue

@@ -0,0 +1,32 @@
+<template>
+  <div id="detail-frame">
+    <van-sticky>
+      <van-nav-bar :title="title" :left-arrow="returns ? true : false" @click-left="$router.push({ path: returns })">
+        <template #right>
+          <slot name="rNav"></slot>
+        </template>
+      </van-nav-bar>
+    </van-sticky>
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'detail-frame',
+  props: {
+    title: null,
+    returns: { type: null, default: null },
+  },
+  components: {},
+  data: () => {
+    return {
+      show: false,
+    };
+  },
+  created() {},
+  computed: {},
+  methods: {},
+};
+</script>
+
+<style lang="scss" scoped></style>

+ 39 - 0
src/layout/xjc/framework.vue

@@ -0,0 +1,39 @@
+<template>
+  <div id="framework">
+    <van-sticky>
+      <van-nav-bar :title="title" :left-arrow="returns ? true : false" @click-left="$router.push({ path: returns })">
+        <template #right>
+          <slot name="rNav"></slot>
+        </template>
+      </van-nav-bar>
+    </van-sticky>
+
+    <van-tabbar v-model="active" route>
+      <van-tabbar-item name="firstpage" icon="chat-o" to="/xjc/common/firstpage" info="5">寻访</van-tabbar-item>
+      <van-tabbar-item name="friends" icon="friends-o" to="/xjc/common/friends" dot>通讯录</van-tabbar-item>
+      <van-tabbar-item name="user" icon="user-circle-o" to="/xjc/common/user">我</van-tabbar-item>
+    </van-tabbar>
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'framework',
+  props: {
+    title: null,
+    returns: { type: null, default: null },
+  },
+  components: {},
+  data: () => {
+    return {
+      show: false,
+      active: 'user',
+    };
+  },
+  created() {},
+  computed: {},
+  methods: {},
+};
+</script>
+
+<style lang="scss" scoped></style>

+ 92 - 12
src/router.js

@@ -11,24 +11,104 @@ export default new Router({
       component: () => import('./views/index.vue'),
     },
     {
-      path: '/test/index',
-      name: '测试页',
-      component: () => import('./views/test/index.vue'),
+      path: '/xjc/login/doctor',
+      name: '医生登录',
+      component: () => import('./views/xjc/login/doctor.vue'),
     },
     {
-      path: '/test/list',
-      name: '列表测试',
-      component: () => import('./views/test/list.vue'),
+      path: '/xjc/login/patient',
+      name: '病患注册',
+      component: () => import('./views/xjc/login/patient.vue'),
     },
     {
-      path: '/doctor/index',
-      name: '医生主页',
-      component: () => import('./views/doctor/index.vue'),
+      path: '/xjc/common/firstpage',
+      name: '主页',
+      component: () => import('./views/xjc/common/firstpage'),
     },
     {
-      path: '/chat/index',
-      name: '群聊',
-      component: () => import('./views/chat/index.vue'),
+      path: '/xjc/common/friends',
+      name: '通讯录',
+      component: () => import('./views/xjc/common/friends.vue'),
+    },
+    {
+      path: '/xjc/common/friendsAdd',
+      name: '添加朋友',
+      component: () => import('./views/xjc/common/friendsAdd.vue'),
+    },
+    {
+      path: '/xjc/common/user',
+      name: '个人信息',
+      component: () => import('./views/xjc/common/user.vue'),
+    },
+    {
+      path: '/xjc/common/headicon',
+      name: '更换头像',
+      component: () => import('./views/xjc/common/headicon'),
+    },
+    {
+      path: '/xjc/common/name',
+      name: '更换姓名',
+      component: () => import('./views/xjc/common/name'),
+    },
+    {
+      path: '/xjc/common/sex',
+      name: '更换性别',
+      component: () => import('./views/xjc/common/sex'),
+    },
+    {
+      path: '/xjc/common/notice',
+      name: '个性签名',
+      component: () => import('./views/xjc/common/notice'),
+    },
+    {
+      path: '/xjc/common/chat',
+      name: '聊天页面',
+      component: () => import('./views/xjc/common/chat.vue'),
+    },
+    {
+      path: '/xjc/common/chatmessage',
+      name: '聊天内容',
+      component: () => import('./views/xjc/common/chatmessage.vue'),
+    },
+    {
+      path: '/xjc/common/add',
+      name: '选择联系人',
+      component: () => import('./views/xjc/common/add.vue'),
+    },
+    {
+      path: '/xjc/common/person',
+      name: '病患详情',
+      component: () => import('./views/xjc/common/person.vue'),
+    },
+    {
+      path: '/xjc/common/personnote',
+      name: '设置备注',
+      component: () => import('./views/xjc/common/personnote.vue'),
+    },
+    {
+      path: '/xjc/common/group',
+      name: '群组详情',
+      component: () => import('./views/xjc/common/group.vue'),
+    },
+    {
+      path: '/xjc/common/groupitem',
+      name: '群成员',
+      component: () => import('./views/xjc/common/groupitem.vue'),
+    },
+    {
+      path: '/xjc/common/groupname',
+      name: '设置群名',
+      component: () => import('./views/xjc/common/groupname.vue'),
+    },
+    {
+      path: '/xjc/common/groupnotice',
+      name: '群公告',
+      component: () => import('./views/xjc/common/groupnotice.vue'),
+    },
+    {
+      path: '/xjc/common/groupperson',
+      name: '群昵称',
+      component: () => import('./views/xjc/common/groupperson.vue'),
     },
   ],
 });

+ 2 - 3
src/views/index.vue

@@ -1,8 +1,7 @@
 <template>
   <div id="index">
-    <van-cell title="查看列表页" @click="$router.push({ path: '/test/index' })" />
-    <van-cell title="查看列表测试" @click="$router.push({ path: '/test/list' })" />
-    <van-cell title="医生首页" @click="$router.push({ path: '/doctor/index' })" />
+    <van-cell title="医生登录页" @click="$router.push({ path: '/xjc/login/doctor' })" />
+    <van-cell title="病患注册页" @click="$router.push({ path: '/xjc/login/patient' })" />
   </div>
 </template>
 

+ 57 - 0
src/views/xjc/common/add.vue

@@ -0,0 +1,57 @@
+<template>
+  <div id="add">
+    <detailFrame :title="`选择联系人`" returns="person">
+      <template #rNav>
+        <van-button type="primary" size="small">完成</van-button>
+      </template>
+    </detailFrame>
+    <van-row>
+      <van-col :span="22" :offset="1">
+        <van-search placeholder="搜索" v-model="value" />
+      </van-col>
+      <van-col :span="24">
+        <van-index-bar>
+          <van-index-anchor index="A">
+            <van-checkbox v-model="checked" style="">
+              <van-cell title="病患姓名">
+                <template #icon>
+                  <van-image :src="headIcon" fit="contain" style="height: 2.5rem; width:2.5rem;padding-right:1rem" />
+                </template>
+              </van-cell>
+            </van-checkbox>
+          </van-index-anchor>
+        </van-index-bar>
+      </van-col>
+    </van-row>
+  </div>
+</template>
+
+<script>
+import detailFrame from '@/layout/xjc/detail-frame.vue';
+export default {
+  name: 'add',
+  props: {},
+  components: {
+    detailFrame,
+  },
+  data: () => {
+    return {
+      checked: true,
+      active: 'friends',
+      list: [],
+      loading: false,
+      finished: false,
+      headIcon: require('@/assets/head_icon.jpg'),
+    };
+  },
+  created() {},
+  computed: {},
+  methods: {},
+};
+</script>
+
+<style lang="less" scoped>
+.van-cell__title {
+  margin-top: 8px;
+}
+</style>

+ 156 - 0
src/views/xjc/common/chat.vue

@@ -0,0 +1,156 @@
+<template>
+  <div id="chat">
+    <chat-frame :title="`群组名称`" returns="firstpage">
+      <template #rNav>
+        <van-icon name="ellipsis" @click="$router.push({ path: '/xjc/common/group' })" />
+      </template>
+    </chat-frame>
+    <van-row>
+      <van-col :span="24" class="main">
+        <van-col :span="24" class="left">
+          <van-col :span="4" class="image">
+            <van-image style="width:50px;height:50px;" :src="url"></van-image>
+          </van-col>
+          <van-col :span="16" style="position: relative;">
+            <p class="text">
+              你好
+            </p>
+            <span class="jian"></span>
+          </van-col>
+        </van-col>
+        <van-col :span="24" class="right">
+          <van-col :span="4">
+            <p>&nbsp;</p>
+          </van-col>
+          <van-col :span="16" style="position: relative;">
+            <p class="text">
+              您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好
+              您好
+            </p>
+            <span class="jian"></span>
+          </van-col>
+          <van-col :span="4" class="image">
+            <van-image style="width:50px;height:50px;" :src="url"></van-image>
+          </van-col>
+        </van-col>
+        <van-col :span="24" class="left">
+          <van-col :span="4" class="image">
+            <van-image style="width:50px;height:50px;" :src="url"></van-image>
+          </van-col>
+          <van-col :span="16" style="position: relative;">
+            <p class="text">
+              你好
+            </p>
+            <span class="jian"></span>
+          </van-col>
+        </van-col>
+        <van-col :span="24" class="right">
+          <van-col :span="4">
+            <p>&nbsp;</p>
+          </van-col>
+          <van-col :span="16" style="position: relative;">
+            <p class="text">
+              您好
+            </p>
+            <span class="jian"></span>
+          </van-col>
+          <van-col :span="4" class="image">
+            <van-image style="width:50px;height:50px;" :src="url"></van-image>
+          </van-col>
+        </van-col>
+        <van-col :span="24" class="left">
+          <van-col :span="4" class="image">
+            <van-image style="width:50px;height:50px;" :src="url"></van-image>
+          </van-col>
+          <van-col :span="16" style="position: relative;">
+            <p class="text">
+              您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好
+            </p>
+            <span class="jian"></span>
+          </van-col>
+        </van-col>
+        <van-col :span="24" class="right">
+          <van-col :span="4">
+            <p>&nbsp;</p>
+          </van-col>
+          <van-col :span="16" style="position: relative;">
+            <p class="text">
+              您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好
+              <span class="jian"></span>
+            </p>
+          </van-col>
+          <van-col :span="4" class="image">
+            <van-image style="width:50px;height:50px;" :src="url"></van-image>
+          </van-col>
+        </van-col>
+      </van-col>
+    </van-row>
+  </div>
+</template>
+
+<script>
+import chatFrame from '@/layout/xjc/chat-frame.vue';
+export default {
+  name: 'chat',
+  props: {},
+  components: {
+    chatFrame,
+  },
+  data: () => ({
+    url: require('@/assets/head_icon.jpg'),
+  }),
+  created() {},
+  computed: {},
+  methods: {},
+};
+</script>
+
+<style lang="less" scoped>
+.main {
+  min-height: 700px;
+  background: #ccc;
+  margin-bottom: 46px;
+}
+.left {
+  margin-top: 10px;
+}
+.right {
+  margin-top: 10px;
+}
+.text {
+  margin: 0;
+  min-height: 20px;
+  text-align: left;
+  background: green;
+  padding: 10px;
+  border-radius: 5px;
+  position: relative;
+  z-index: 1;
+}
+.left .text {
+  background: #fff;
+}
+.jian {
+  display: inline-block;
+  position: absolute;
+  top: 20px;
+  right: -19px;
+  width: 0;
+  height: 0;
+  border-width: 10px;
+  border-style: solid;
+  border-color: #ccc #ccc #ccc #008000;
+}
+.left .jian {
+  top: 11px;
+  left: -19px;
+  border-color: #ccc #fff #ccc #ccc;
+}
+.image {
+  position: relative;
+  z-index: 2;
+}
+.right .image {
+  text-align: right;
+}
+</style>

+ 25 - 0
src/views/xjc/common/chatmessage.vue

@@ -0,0 +1,25 @@
+<template>
+  <div id="chatmessage">
+    <van-row>
+      <van-col :span="24">
+        <form action="/">
+          <van-search v-model="value" placeholder="搜索" show-action @search="onSearch" @cancel="onCancel" />
+        </form>
+      </van-col>
+    </van-row>
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'chatmessage',
+  props: {},
+  components: {},
+  data: () => ({}),
+  created() { },
+  computed: {},
+  methods: {},
+};
+</script>
+
+<style lang="scss" scoped></style>

+ 100 - 0
src/views/xjc/common/firstpage.vue

@@ -0,0 +1,100 @@
+<template>
+  <div id="index">
+    <van-row>
+      <framework :title="`寻访`">
+        <template #rNav>
+          <van-icon name="add-o" @click="rNav" />
+        </template>
+      </framework>
+      <van-col :span="22" :offset="1">
+        <van-search placeholder="搜索" v-model="value" />
+      </van-col>
+      <van-col :span="24">
+        <van-list v-model="loading" :finished="finished" finished-text="没有更多了" @load="onLoad">
+          <van-collapse v-model="activeNames">
+            <van-collapse-item title="群组" name="1">
+              <van-swipe-cell v-for="item in group" :key="item">
+                <van-cell :title="item.title" :label="item.label" :value="item.time" @click="$router.push({ path: '/xjc/common/chat' })">
+                  <template #icon>
+                    <van-icon dot>
+                      <van-image :src="headIcon" fit="contain" style="height: 3.5rem; width:3.5rem;padding-right:1rem" />
+                    </van-icon>
+                  </template>
+                </van-cell>
+                <template slot="right">
+                  <van-button square type="primary" text="标为已读" style="height:100%;background-color:#ccc;border-color:#ccc" />
+                  <van-button square type="danger" text="删除" style="height:100%" />
+                </template>
+              </van-swipe-cell>
+            </van-collapse-item>
+            <van-collapse-item title="我的好友" name="2">
+              <van-swipe-cell v-for="item in person" :key="item">
+                <van-cell :title="item.title" :label="item.label" :value="item.time" @click="$router.push({ path: '/xjc/common/chat' })">
+                  <template #icon>
+                    <van-icon info="99">
+                      <van-image :src="headIcon" fit="contain" style="height: 3.5rem; width:3.5rem;padding-right:1rem" />
+                    </van-icon>
+                  </template>
+                </van-cell>
+                <template slot="right">
+                  <van-button square type="primary" text="标为已读" style="height:100%;background-color:#ccc;border-color:#ccc" />
+                  <van-button square type="danger" text="删除" style="height:100%" />
+                </template>
+              </van-swipe-cell>
+            </van-collapse-item>
+          </van-collapse>
+        </van-list>
+      </van-col>
+    </van-row>
+  </div>
+</template>
+
+<script>
+import framework from '@/layout/xjc/framework.vue';
+export default {
+  name: 'index',
+  props: {},
+  components: {
+    framework,
+  },
+  data: () => {
+    return {
+      activeNames: ['1'],
+      active: 'chat',
+      group: [{ title: '群组名称', label: 'content', time: 'time' }],
+      person: [{ title: '个人姓名', label: 'content', time: 'time' }],
+      loading: false,
+      finished: false,
+      headIcon: require('@/assets/head_icon.jpg'),
+    };
+  },
+  created() {},
+  computed: {},
+  methods: {
+    rNav() {
+      console.log('click add-o');
+    },
+    onLoad() {
+      // 异步更新数据
+      setTimeout(() => {
+        for (let i = 0; i < 5; i++) {
+          this.list.push(this.list.length + 1);
+        }
+        // 加载状态结束
+        this.loading = false;
+
+        // 数据全部加载完成
+        if (this.list.length >= 5) {
+          this.finished = true;
+        }
+      }, 500);
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+/deep/.van-collapse-item__content {
+    padding: 0px;
+}
+</style>

+ 62 - 0
src/views/xjc/common/friends.vue

@@ -0,0 +1,62 @@
+<template>
+  <div id="friends">
+    <van-row>
+      <framework :title="`通讯录`">
+        <template #rNav>
+          <van-icon name="plus" @click="$router.push({ path: '/xjc/common/friendsAdd' })" />
+        </template>
+      </framework>
+      <van-col :span="22" :offset="1">
+        <van-search placeholder="搜索" v-model="value" />
+      </van-col>
+      <van-col :span="24">
+        <van-index-bar v-model="loading" :finished="finished" finished-text="n位联系人" @load="onLoad">
+          <van-index-anchor index="A" />
+          <van-swipe-cell class="person">
+            <van-cell title="病患姓名" @click="$router.push({ path: '/xjc/common/chat' })">
+              <template #icon>
+                <van-image :src="headIcon" fit="contain" style="height: 2.5rem; width:2.5rem;padding-right:1rem" />
+              </template>
+            </van-cell>
+            <template slot="right">
+              <van-button square type="primary" text="备注" style="height:100%;background-color:#ccc;border-color:#ccc" />
+            </template>
+          </van-swipe-cell>
+        </van-index-bar>
+      </van-col>
+    </van-row>
+  </div>
+</template>
+
+<script>
+import framework from '@/layout/xjc/framework.vue';
+export default {
+  name: 'friends',
+  props: {},
+  components: {
+    framework,
+  },
+  data: () => {
+    return {
+      active: 'friends',
+      list: [],
+      loading: false,
+      finished: false,
+      headIcon: require('@/assets/head_icon.jpg'),
+    };
+  },
+  created() {},
+  computed: {},
+  methods: {
+    rNav() {
+      console.log('click plus');
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.van-cell__title {
+  margin-top: 8px;
+}
+</style>

+ 45 - 0
src/views/xjc/common/friendsAdd.vue

@@ -0,0 +1,45 @@
+<template>
+  <div id="friendsAdd">
+    <detailFrame :title="`添加朋友`" returns="friends"> </detailFrame>
+    <van-row>
+      <van-col :span="22" :offset="1">
+        <van-search placeholder="搜索" v-model="value" />
+      </van-col>
+      <van-col :span="24">
+        <van-cell is-link @click="showPopup1">从微信导入</van-cell>
+        <van-popup v-model="show1">弹出微信联系人</van-popup>
+        <van-cell is-link @click="showPopup2">手机联系人</van-cell>
+        <van-popup v-model="show2">弹出手机联系人</van-popup>
+      </van-col>
+    </van-row>
+  </div>
+</template>
+
+<script>
+import detailFrame from '@/layout/xjc/detail-frame.vue';
+export default {
+  name: 'friendsAdd',
+  props: {},
+  components: {
+    detailFrame,
+  },
+  data: () => {
+    return {
+      show1: false,
+      show2: false,
+    };
+  },
+  created() {},
+  computed: {},
+  methods: {
+    showPopup1() {
+      this.show1 = true;
+    },
+    showPopup2() {
+      this.show2 = true;
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped></style>

+ 80 - 0
src/views/xjc/common/group.vue

@@ -0,0 +1,80 @@
+<template>
+  <div id="group">
+    <van-row>
+      <detailFrame :title="`聊天信息`" returns="/xjc/common/chat"> </detailFrame>
+      <van-col :span="24">
+        <van-grid :column-num="5" :gutter="10" clickable>
+          <van-grid-item v-for="value in 19" :key="value">
+            <van-image :src="url" />
+            id
+          </van-grid-item>
+          <van-grid-item to="add">
+            <van-icon name="plus" />
+          </van-grid-item>
+        </van-grid>
+      </van-col>
+      <van-col :span="24">
+        <van-cell is-link to="groupitem" title="查看更多群成员" style="text-align:center"></van-cell>
+      </van-col>
+      <van-col :span="24">
+        <van-cell is-link to="groupname" title="群聊名称" value="groupname"></van-cell>
+      </van-col>
+      <van-col :span="24">
+        <van-cell is-link to="groupnotice" title="群公告" label="notice"></van-cell>
+      </van-col>
+      <van-col :span="24">
+        <van-cell is-link to="chatmessage" title="查找聊天内容"></van-cell>
+      </van-col>
+      <van-col :span="24">
+        <van-cell title="消息免打扰">
+          <van-switch v-model="checked1" size="24px" active-color="#07c160" />
+        </van-cell>
+        <van-cell title="置顶聊天">
+          <van-switch v-model="checked2" size="24px" active-color="#07c160" />
+        </van-cell>
+        <van-cell title="保存到通讯录">
+          <van-switch v-model="checked3" size="24px" active-color="#07c160" />
+        </van-cell>
+      </van-col>
+      <van-col :span="24">
+        <van-cell is-link to="groupperson" title="我在本群的昵称" value="personname in this group"></van-cell>
+      </van-col>
+      <van-cell title="显示群成员昵称">
+        <van-switch v-model="checked4" size="24px" active-color="#07c160" />
+      </van-cell>
+      <van-col :span="24">
+        <van-button type="default" style="width:100%;text-align:center;color:red">清空聊天记录</van-button>
+        <van-button type="default" style="width:100%;text-align:center;color:red">删除并退出</van-button>
+      </van-col>
+    </van-row>
+  </div>
+</template>
+
+<script>
+import detailFrame from '@/layout/xjc/detail-frame.vue';
+export default {
+  name: 'group',
+  props: {},
+  components: {
+    detailFrame,
+  },
+  data: () => {
+    return {
+      url: require('@/assets/head_icon.jpg'),
+      checked1: true,
+      checked2: true,
+      checked3: true,
+      checked4: true,
+    };
+  },
+  created() {},
+  computed: {},
+  methods: {},
+};
+</script>
+
+<style lang="less" scoped>
+/deep/.van-grid-item__content {
+  padding: 0;
+}
+</style>

+ 40 - 0
src/views/xjc/common/groupitem.vue

@@ -0,0 +1,40 @@
+<template>
+  <div id="groupitem">
+    <detailFrame :title="`群成员`" returns="group"> </detailFrame>
+    <van-row>
+      <van-col :span="22" :offset="1">
+        <van-search placeholder="搜索" v-model="value" />
+      </van-col>
+      <van-col :span="24">
+        <van-grid :column-num="5" :gutter="10" clickable>
+          <van-grid-item v-for="value in 200" :key="value">
+            <van-image :src="url" />
+            id
+          </van-grid-item>
+          <van-grid-item to="add">
+            <van-icon name="plus" />
+          </van-grid-item>
+        </van-grid>
+      </van-col>
+    </van-row>
+  </div>
+</template>
+
+<script>
+import detailFrame from '@/layout/xjc/detail-frame.vue';
+export default {
+  name: 'groupitem',
+  props: {},
+  components: {
+    detailFrame,
+  },
+  data: () => ({
+    url: require('@/assets/head_icon.jpg'),
+  }),
+  created() {},
+  computed: {},
+  methods: {},
+};
+</script>
+
+<style lang="scss" scoped></style>

+ 33 - 0
src/views/xjc/common/groupname.vue

@@ -0,0 +1,33 @@
+<template>
+  <div id="groupname">
+    <detailFrame :title="`设置群名`" returns="group">
+      <template #rNav>
+        <van-button type="primary" size="small">完成</van-button>
+      </template>
+    </detailFrame>
+    <van-row>
+      <van-col :span="24">
+        <van-cell-group>
+          <van-field v-model="value" />
+        </van-cell-group>
+      </van-col>
+    </van-row>
+  </div>
+</template>
+
+<script>
+import detailFrame from '@/layout/xjc/detail-frame.vue';
+export default {
+  name: 'groupname',
+  props: {},
+  components: {
+    detailFrame,
+  },
+  data: () => ({}),
+  created() {},
+  computed: {},
+  methods: {},
+};
+</script>
+
+<style lang="scss" scoped></style>

+ 33 - 0
src/views/xjc/common/groupnotice.vue

@@ -0,0 +1,33 @@
+<template>
+  <div id="groupnotice">
+    <detailFrame :title="`群公告`" returns="group">
+      <template #rNav>
+        <van-button type="primary" size="small">完成</van-button>
+      </template>
+    </detailFrame>
+    <van-row>
+      <van-col :span="24">
+        <van-cell-group>
+          <van-field v-model="message" rows="2" type="textarea" maxlength="50" show-word-limit />
+        </van-cell-group>
+      </van-col>
+    </van-row>
+  </div>
+</template>
+
+<script>
+import detailFrame from '@/layout/xjc/detail-frame.vue';
+export default {
+  name: 'groupnotice',
+  props: {},
+  components: {
+    detailFrame,
+  },
+  data: () => ({}),
+  created() {},
+  computed: {},
+  methods: {},
+};
+</script>
+
+<style lang="scss" scoped></style>

+ 33 - 0
src/views/xjc/common/groupperson.vue

@@ -0,0 +1,33 @@
+<template>
+  <div id="groupperson">
+    <detailFrame :title="`我在本群的昵称`" returns="group">
+      <template #rNav>
+        <van-button type="primary" size="small">完成</van-button>
+      </template>
+    </detailFrame>
+    <van-row>
+      <van-col :span="24">
+        <van-cell-group>
+          <van-field v-model="value" />
+        </van-cell-group>
+      </van-col>
+    </van-row>
+  </div>
+</template>
+
+<script>
+import detailFrame from '@/layout/xjc/detail-frame.vue';
+export default {
+  name: 'groupperson',
+  props: {},
+  components: {
+    detailFrame,
+  },
+  data: () => ({}),
+  created() {},
+  computed: {},
+  methods: {},
+};
+</script>
+
+<style lang="scss" scoped></style>

+ 42 - 0
src/views/xjc/common/headicon.vue

@@ -0,0 +1,42 @@
+<template>
+  <div id="headicon">
+    <van-row>
+      <detailFrame :title="`个人头像`" returns="user">
+        <template #rNav>
+          <van-icon name="ellipsis" @click="show = true"> </van-icon>
+        </template>
+      </detailFrame>
+      <van-col :span="24">
+        <van-image :src="headIcon" style="width: 100%;margin: 136px 0" />
+      </van-col>
+    </van-row>
+    <van-action-sheet v-model="show" :actions="actions" @select="onSelect" />
+  </div>
+</template>
+
+<script>
+import detailFrame from '@/layout/xjc/detail-frame.vue';
+export default {
+  name: 'headicon',
+  props: {},
+  components: {
+    detailFrame,
+  },
+  data: () => {
+    return {
+      headIcon: require('@/assets/logo.png'),
+      show: false,
+      actions: [{ name: '拍照' }, { name: '从手机相册选择' }, { name: '取消' }],
+    };
+  },
+  created() {},
+  computed: {},
+  methods: {
+    onSelect(item) {
+      this.show = false;
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped></style>

+ 33 - 0
src/views/xjc/common/name.vue

@@ -0,0 +1,33 @@
+<template>
+  <div id="name">
+    <detailFrame :title="`设置名字`" returns="user">
+      <template #rNav>
+        <van-button type="primary" size="small">完成</van-button>
+      </template>
+    </detailFrame>
+    <van-row>
+      <van-col :span="24">
+        <van-cell-group>
+          <van-field v-model="value" />
+        </van-cell-group>
+      </van-col>
+    </van-row>
+  </div>
+</template>
+
+<script>
+import detailFrame from '@/layout/xjc/detail-frame.vue';
+export default {
+  name: 'name',
+  props: {},
+  components: {
+    detailFrame,
+  },
+  data: () => ({}),
+  created() {},
+  computed: {},
+  methods: {},
+};
+</script>
+
+<style lang="scss" scoped></style>

+ 33 - 0
src/views/xjc/common/notice.vue

@@ -0,0 +1,33 @@
+<template>
+  <div id="notice">
+    <van-row>
+      <detailFrame :title="`设置个性签名`" returns="user">
+        <template #rNav>
+          <van-button type="primary" size="small">完成</van-button>
+        </template>
+      </detailFrame>
+      <van-col :span="24">
+        <van-cell-group>
+          <van-field v-model="message" rows="2" type="textarea" maxlength="50" show-word-limit />
+        </van-cell-group>
+      </van-col>
+    </van-row>
+  </div>
+</template>
+
+<script>
+import detailFrame from '@/layout/xjc/detail-frame.vue';
+export default {
+  name: 'notice',
+  props: {},
+  components: {
+    detailFrame,
+  },
+  data: () => ({}),
+  created() {},
+  computed: {},
+  methods: {},
+};
+</script>
+
+<style lang="scss" scoped></style>

+ 94 - 0
src/views/xjc/common/person.vue

@@ -0,0 +1,94 @@
+<template>
+  <div id="person">
+    <detailFrame :title="`聊天详情`" returns="/xjc/common/chat"> </detailFrame>
+    <van-row>
+      <van-col :span="24">
+        <van-grid :column-num="5" :gutter="10" clickable>
+          <van-grid-item v-for="value in 1" :key="value">
+            <van-image :src="url" />
+            id
+          </van-grid-item>
+          <van-grid-item to="add">
+            <van-icon name="plus" />
+          </van-grid-item>
+        </van-grid>
+      </van-col>
+      <van-col :span="24">
+        <van-cell is-link to="personnote">设置备注</van-cell>
+      </van-col>
+      <van-col :span="24">
+        <van-cell is-link to="chatmessage">查找聊天内容</van-cell>
+      </van-col>
+      <van-col :span="24">
+        <van-cell title="消息免打扰">
+          <van-switch v-model="checked1" size="24px" active-color="#07c160" />
+        </van-cell>
+        <van-cell title="置顶聊天">
+          <van-switch v-model="checked2" size="24px" active-color="#07c160" />
+        </van-cell>
+        <van-cell title="强提醒">
+          <van-switch v-model="checked3" size="24px" active-color="#07c160" />
+        </van-cell>
+      </van-col>
+      <van-col :span="24">
+        <van-button type="default" style="width:100%;text-align:left" @click="show = true">清空聊天记录</van-button>
+      </van-col>
+      <van-list v-model="loading" :finished="finished" finished-text="没有更多了" @load="onLoad">
+        <van-cell v-for="item in list" :key="item" :title="item" size="large" label="描述信息" />
+      </van-list>
+    </van-row>
+    <van-action-sheet v-model="show" :actions="actions" @select="onSelect" />
+  </div>
+</template>
+
+<script>
+import detailFrame from '@/layout/xjc/detail-frame.vue';
+export default {
+  name: 'person',
+  props: {},
+  components: {
+    detailFrame,
+  },
+  data: () => {
+    return {
+      url: require('@/assets/head_icon.jpg'),
+      checked1: true,
+      checked2: true,
+      checked3: true,
+      list: [],
+      loading: false,
+      finished: false,
+      show: false,
+      actions: [{ name: '清空聊天记录' }, { name: '取消' }],
+    };
+  },
+  created() {},
+  computed: {},
+  methods: {
+    onSelect(item) {
+      this.show = false;
+    },
+    onLoad() {
+      // 异步更新数据
+      setTimeout(() => {
+        for (let i = 0; i < 10; i++) {
+          this.list.push(this.list.length + 1);
+        }
+        // 加载状态结束
+        this.loading = false;
+
+        // 数据全部加载完成
+        if (this.list.length >= 40) {
+          this.finished = true;
+        }
+      }, 500);
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.van-action-sheet__item {
+  color: red;
+}
+</style>

+ 33 - 0
src/views/xjc/common/personnote.vue

@@ -0,0 +1,33 @@
+<template>
+  <div id="personnote">
+    <detailFrame :title="`设置备注`" returns="person">
+      <template #rNav>
+        <van-button type="primary" size="small">完成</van-button>
+      </template>
+    </detailFrame>
+    <van-row>
+      <van-col :span="24">
+        <van-cell-group title="备注名">
+          <van-field v-model="value" />
+        </van-cell-group>
+      </van-col>
+    </van-row>
+  </div>
+</template>
+
+<script>
+import detailFrame from '@/layout/xjc/detail-frame.vue';
+export default {
+  name: 'personnote',
+  props: {},
+  components: {
+    detailFrame,
+  },
+  data: () => ({}),
+  created() {},
+  computed: {},
+  methods: {},
+};
+</script>
+
+<style lang="scss" scoped></style>

+ 44 - 0
src/views/xjc/common/sex.vue

@@ -0,0 +1,44 @@
+<template>
+  <div id="sex">
+    <van-row>
+      <detailFrame :title="`设置性别`" returns="user">
+        <template #rNav>
+          <van-button type="primary" size="small">完成</van-button>
+        </template>
+      </detailFrame>
+      <van-col :span="24">
+        <van-radio-group v-model="radio">
+          <van-cell-group>
+            <van-cell title="男" clickable @click="radio = '1'">
+              <van-radio slot="right-icon" name="1" />
+            </van-cell>
+            <van-cell title="女" clickable @click="radio = '2'">
+              <van-radio slot="right-icon" name="2" />
+            </van-cell>
+          </van-cell-group>
+        </van-radio-group>
+      </van-col>
+    </van-row>
+  </div>
+</template>
+
+<script>
+import detailFrame from '@/layout/xjc/detail-frame.vue';
+export default {
+  name: 'sex',
+  props: {},
+  components: {
+    detailFrame,
+  },
+  data: () => {
+    return {
+      radio: '1',
+    };
+  },
+  created() {},
+  computed: {},
+  methods: {},
+};
+</script>
+
+<style lang="scss" scoped></style>

+ 66 - 0
src/views/xjc/common/user.vue

@@ -0,0 +1,66 @@
+<template>
+  <div id="user">
+    <van-row>
+      <framework :title="`个人信息`"> </framework>
+      <van-col :span="24">
+        <van-cell-group>
+          <van-cell is-link to="headicon" title="头像" class="headicon">
+            <van-icon slot="right-icon" style="line-height: inherit;">
+              <van-image :src="headIcon" fit="contain" style="height: 3.5rem; width:3.5rem;padding-right:1rem" />
+            </van-icon>
+          </van-cell>
+          <van-cell is-link to="name" title="名字"></van-cell>
+          <van-cell is-link to="sex" title="性别"></van-cell>
+          <van-cell is-link to="notice" title="个性签名"></van-cell>
+        </van-cell-group>
+      </van-col>
+      <van-col :span="24">
+        <van-cell is-link @click="showPopup">绑定微信</van-cell>
+      </van-col>
+      <van-col :span="24">
+        <van-button type="default" style="width:100%;text-align:center">切换账号</van-button>
+        <van-button type="default" style="width:100%;text-align:center" @click="show1 = true">退出登录</van-button>
+      </van-col>
+    </van-row>
+    <van-popup v-model="show">弹出微信</van-popup>
+    <van-action-sheet v-model="show1" :actions="actions" @select="onSelect" />
+  </div>
+</template>
+
+<script>
+import framework from '@/layout/xjc/framework.vue';
+export default {
+  name: 'user',
+  props: {},
+  components: {
+    framework,
+  },
+  data: () => {
+    return {
+      headIcon: require('@/assets/logo.png'),
+      show: false,
+      show1: false,
+      actions: [{ name: '退出登陆' }, { name: '取消' }],
+    };
+  },
+  created() {},
+  computed: {},
+  methods: {
+    showPopup() {
+      this.show = true;
+    },
+    onSelect(item) {
+      this.show1 = false;
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.headicon .van-cell__title {
+  margin: 18px 0;
+}
+.van-action-sheet__item {
+  color: red;
+}
+</style>

+ 37 - 0
src/views/xjc/login/doctor.vue

@@ -0,0 +1,37 @@
+<template>
+  <div id="doctor">
+    <van-row>
+      <van-col :span="24">
+        <van-cell-group>
+          <van-field
+            v-model="username"
+            required
+            clearable
+            label="工号"
+            right-icon="question-o"
+            placeholder="请输入工号"
+            @click-right-icon="$toast('question')"
+          />
+          <van-field v-model="password" type="password" label="密码" placeholder="请输入密码" required />
+        </van-cell-group>
+      </van-col>
+      <van-col :span="4" :offset="20">
+        <van-button type="primary" size="large" to="../common/firstpage">登录</van-button>
+      </van-col>
+    </van-row>
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'doctor',
+  props: {},
+  components: {},
+  data: () => ({}),
+  created() {},
+  computed: {},
+  methods: {},
+};
+</script>
+
+<style lang="scss" scoped></style>

+ 37 - 0
src/views/xjc/login/patient.vue

@@ -0,0 +1,37 @@
+<template>
+  <div id="patient">
+    <van-row>
+      <van-col :span="24">
+        <van-cell-group>
+          <van-field
+            v-model="username"
+            required
+            clearable
+            label="病历号"
+            right-icon="question-o"
+            placeholder="请输入病历号"
+            @click-right-icon="$toast('question')"
+          />
+          <van-field v-model="name" required label="姓名" placeholder="请输入您的姓名" />
+        </van-cell-group>
+      </van-col>
+      <van-col :span="4" :offset="20">
+        <van-button type="primary" to="../common/firstpage">注册</van-button>
+      </van-col>
+    </van-row>
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'patient',
+  props: {},
+  components: {},
+  data: () => ({}),
+  created() {},
+  computed: {},
+  methods: {},
+};
+</script>
+
+<style lang="scss" scoped></style>