xiejiacheng 5 سال پیش
والد
کامیت
8d4b7b5f0d

+ 0 - 1
package.json

@@ -25,7 +25,6 @@
     "@vue/cli-plugin-babel": "^3.11.0",
     "@vue/cli-plugin-eslint": "^3.11.0",
     "@vue/cli-service": "^3.11.0",
-    "@vue/eslint-config-prettier": "^5.0.0",
     "babel-eslint": "^10.0.1",
     "eslint": "^5.16.0",
     "eslint-plugin-prettier": "^3.1.0",

+ 8 - 1
src/App.vue

@@ -5,7 +5,14 @@
     </transition>
   </div>
 </template>
-
+<script>
+export default {
+  created() {
+    let object = { name: 'xxx', role: 'doctor', id: '13089419810' };
+    sessionStorage.setItem('user', JSON.stringify(object));
+  },
+};
+</script>
 <style lang="less">
 body {
   margin: 0;

+ 0 - 15
src/components/README.md

@@ -1,15 +0,0 @@
-# 组件说明文档
-
-* slide-cell.vue:
-  * props: {
-    * info:用户信息
-      > name:用户名称,
-        reply:最后回复,
-        time:最后回复时间,
-        icon:用户头像,
-      
-    * left:左侧菜单按钮数组 Array 
-              >例如[{type,!text}](!fName)限制允许加一个按钮 [{type:type||primary,text:required}](,fName:required)
-              
-    * right:右侧菜单按钮数组 Array
-              >[{type:type||danger,text:required}]

+ 0 - 90
src/components/slide-cell.vue

@@ -1,90 +0,0 @@
-<template>
-  <div id="slide-cell">
-    <van-swipe-cell v-if="info">
-      <template slot="left" v-if="left.length > 0">
-        <van-button
-          v-for="(item, index) in left"
-          :key="index"
-          square
-          :type="`${item.type ? item.type : `primary`}`"
-          :text="item.text"
-          @click="toEmit('left', item.id)"
-          style="height:100%"
-        />
-      </template>
-      <van-cell title-class="title__class" @click="$router.push({ path: '/chat/index' })">
-        <!-- 用户/群组名称 -->
-        <template #title>
-          <van-row>
-            <van-col span="24" class="omission name__word">
-              {{ info.name }}
-            </van-col>
-          </van-row>
-        </template>
-        <!-- 最后的消息内容 -->
-        <template #label>
-          <van-row>
-            <van-col span="24" class="omission">
-              {{ info.reply }}
-            </van-col>
-          </van-row>
-        </template>
-        <!-- 最后的消息时间 -->
-        <template>
-          {{ info.time }}
-        </template>
-        <!-- 放人物头像 -->
-        <template #icon>
-          <van-image :src="info.icon" fit="contain" style="height: 3.5rem; width:3.5rem;padding-right:1rem" />
-        </template>
-      </van-cell>
-      <template slot="right" v-if="right.length > 0">
-        <van-button
-          v-for="(item, index) in right"
-          :key="index"
-          square
-          :type="`${item.type ? item.type : `danger`}`"
-          :text="item.text"
-          @click="toEmit('right', item.id)"
-          style="height:100%"
-        />
-      </template>
-    </van-swipe-cell>
-  </div>
-</template>
-
-<script>
-export default {
-  name: 'slide-cell',
-  props: {
-    info: null,
-    left: { type: Array, default: () => [] }, //左侧按钮数组[{type,!text,!fname(function name)}]
-    right: { type: Array, default: () => [] }, //右侧按钮数组[{type,!text,!fname}]
-  },
-  components: {},
-  data: () => ({}),
-  created() {},
-  computed: {},
-  methods: {
-    toEmit(type, id) {
-      this.$emit('slide', { type: type, id: id });
-    },
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.title__class {
-  flex: none;
-  width: 13rem;
-}
-.omission {
-  white-space: nowrap;
-  text-overflow: ellipsis;
-  overflow: hidden;
-  word-break: break-all;
-}
-.name__word {
-  font-weight: 500;
-}
-</style>

+ 0 - 16
src/config/framework.js

@@ -1,16 +0,0 @@
-export const footerProps = [
-  {
-    icon: 'home-o',
-    title: '主页',
-    router: '/',
-  },
-  {
-    icon: 'search',
-    title: '医生主页',
-    router: '/doctor/index',
-  },
-  {
-    icon: 'friends-o',
-    title: '联系人',
-  },
-];

+ 0 - 73
src/layout/chat-frame.vue

@@ -1,73 +0,0 @@
-<template>
-  <div id="chat-frame">
-    <van-sticky :offset-top="0">
-      <van-nav-bar :left-arrow="returns ? true : false" :left-text="returns ? title : ''" @click-left="$router.push({ path: returns })">
-        <template #right>
-          <van-icon name="ellipsis" @click="toCheckMore()" />
-        </template>
-      </van-nav-bar>
-    </van-sticky>
-    <div style="margin-bottom:50px;">
-      <van-row v-for="i in 100" :key="i">
-        <van-col span="24">{{ i }}</van-col>
-      </van-row>
-    </div>
-    <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">&nbsp; </van-col>
-      <van-col sapn="2" class="iconfont icon-21 icons">&nbsp; </van-col>
-    </van-row>
-  </div>
-</template>
-
-<script>
-export default {
-  name: 'chat-frame',
-  props: { title: null, returns: { type: null, default: null } },
-  components: {},
-  data: () => ({
-    value: '',
-  }),
-  created() {},
-  mounted() {
-    this.container = this.$refs.container;
-  },
-  computed: {},
-  methods: {
-    toCheckMore() {
-      //TODO 查看更多信息,返回父组件,根据不同情景查询
-      console.log('to More');
-    },
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.footer {
-  position: fixed;
-  bottom: 0;
-  width: 100%;
-  background: #cccccc;
-}
-.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;
-}
-</style>

+ 0 - 53
src/layout/framework.vue

@@ -1,53 +0,0 @@
-<template>
-  <div id="framework">
-    <van-sticky :offset-top="0">
-      <van-nav-bar :title="title" :left-arrow="returns ? true : false" :left-text="returns ? '返回' : ''" @click-left="$router.push({ path: returns })">
-        <template #right>
-          <slot name="rNav"></slot>
-        </template>
-      </van-nav-bar>
-    </van-sticky>
-    <slot></slot>
-    <van-tabbar v-model="active" active-color="#07c160" inactive-color="#000" :safe-area-inset-bottom="true" route>
-      <van-tabbar-item v-for="(item, index) in fProps" :key="index" :icon="item.icon" :name="item.title" replace :to="item.router">
-        {{ item.title }}
-      </van-tabbar-item>
-    </van-tabbar>
-  </div>
-</template>
-
-<script>
-import { footerProps } from '@/config/framework'; //framework配置文件
-export default {
-  name: 'framework',
-  props: {
-    title: null,
-    returns: { type: null, default: null },
-  },
-  components: {},
-  data: () => ({
-    active: `a`,
-    fProps: footerProps,
-  }),
-  created() {},
-  computed: {},
-  methods: {},
-};
-</script>
-
-<style lang="less" scoped>
-.is_actives {
-  div {
-    .van-icon {
-      color: red !important;
-    }
-    .van-grid-item__text {
-      color: red !important;
-    }
-  }
-}
-
-.van-tabbar {
-  background: #dadae4;
-}
-</style>

+ 0 - 44
src/layout/free-list.vue

@@ -1,44 +0,0 @@
-<template>
-  <div id="free-list">
-    <van-list v-model="tLoad" :finished="noMore" finished-text="没有更多了" @load="search">
-      <slot></slot>
-    </van-list>
-  </div>
-</template>
-
-<script>
-export default {
-  name: 'free-list',
-  props: {
-    loading: { type: Boolean, default: false },
-    noMore: { type: Boolean, default: false },
-    limit: { type: Number, default: 15 },
-  },
-  components: {},
-  data: () => ({
-    skip: 0,
-    page: 0,
-  }),
-  created() {},
-  computed: {
-    tLoad: {
-      get() {
-        return this.loading !== undefined ? this.loading : false;
-      },
-      set(val) {
-        return val;
-      },
-    },
-  },
-  methods: {
-    search() {
-      if (this.noMore) return;
-      this.page++;
-      this.skip = (this.page - 1) * this.$limit;
-      this.$emit('query', { options: { skip: this.skip, limit: this.limit } });
-    },
-  },
-};
-</script>
-
-<style lang="less" scoped></style>

+ 2 - 2
src/layout/xjc/chat-frame.vue

@@ -16,7 +16,7 @@
       <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-popup v-model="show1" position="bottom" :overlay="false">
       <van-grid clickable>
         <van-grid-item icon="photo" text="照片" />
         <van-grid-item icon="photograph" text="拍摄" />
@@ -24,7 +24,7 @@
         <van-grid-item icon="gift-card" text="红包" />
       </van-grid>
     </van-popup>
-    <van-popup v-model="show2" position="bottom" overlay="false">
+    <van-popup v-model="show2" position="bottom" :overlay="false">
       <van-grid clickable>
         展示表情页
       </van-grid>

+ 1 - 1
src/layout/xjc/framework.vue

@@ -27,7 +27,7 @@ export default {
   data: () => {
     return {
       show: false,
-      active: 'user',
+      active: 'firstpage',
     };
   },
   created() {},

+ 6 - 1
src/router.js

@@ -61,7 +61,7 @@ export default new Router({
       component: () => import('./views/xjc/common/notice'),
     },
     {
-      path: '/xjc/common/chat',
+      path: '/xjc/common/chat/:type',
       name: '聊天页面',
       component: () => import('./views/xjc/common/chat.vue'),
     },
@@ -100,6 +100,11 @@ export default new Router({
       name: '设置群名',
       component: () => import('./views/xjc/common/groupname.vue'),
     },
+    {
+      path: '/xjc/common/groupcode',
+      name: '群二维码',
+      component: () => import('./views/xjc/common/groupcode.vue'),
+    },
     {
       path: '/xjc/common/groupnotice',
       name: '群公告',

+ 0 - 23
src/views/chat/index.vue

@@ -1,23 +0,0 @@
-<template>
-  <div id="index">
-    <chat-frame returns="/doctor/index" title="二群"></chat-frame>
-  </div>
-</template>
-
-<script>
-import chatFrame from '@/layout/chat-frame.vue';
-export default {
-  metaInfo: { title: '群聊' },
-  name: 'index',
-  props: {},
-  components: {
-    chatFrame,
-  },
-  data: () => ({}),
-  created() {},
-  computed: {},
-  methods: {},
-};
-</script>
-
-<style lang="less" scoped></style>

+ 0 - 61
src/views/doctor/index.vue

@@ -1,61 +0,0 @@
-<template>
-  <div id="index">
-    <framework title="首页">
-      <free-list :loading="loading" :noMore="noMore" @query="search">
-        <slide-cell v-for="(item, index) in list" :key="index" :info="item" :left="left" :right="right" @slide="slideEvent"></slide-cell>
-      </free-list>
-    </framework>
-  </div>
-</template>
-
-<script>
-import slideCell from '@/components/slide-cell.vue';
-import freeList from '@/layout/free-list.vue';
-import framework from '@/layout/framework.vue';
-import { mapActions, mapState } from 'vuex';
-export default {
-  metaInfo: { title: '首页' },
-  name: 'index',
-  props: {},
-  components: {
-    framework,
-    freeList,
-    slideCell,
-  },
-  data: () => ({
-    // noMore: false,
-    headIcon: require('@/assets/head_icon.jpg'),
-    left: [{ text: '左侧按钮' }],
-    right: [{ text: '右侧按钮' }],
-  }),
-  created() {},
-  computed: {
-    ...mapState({
-      list: state => state.publics.list,
-      total: state => state.publics.total,
-      loading: state => state.publics.loading,
-    }),
-    noMore() {
-      return this.total ? this.list.length >= this.total : false;
-    },
-  },
-  methods: {
-    ...mapActions(['jobinfo']),
-    async search({ options }) {
-      await this.jobinfo({ type: 'query', data: { ...options } });
-    },
-    slideEvent({ type, id }) {
-      if (type === 'left') this.leftEvent(id);
-      else this.rightEvent(id);
-    },
-    leftEvent(id) {
-      console.log(`in leftEvent:${id}`);
-    },
-    rightEvnet(id) {
-      console.log(`in rightEvent:${id}`);
-    },
-  },
-};
-</script>
-
-<style lang="less" scoped></style>

+ 0 - 58
src/views/test/index.vue

@@ -1,58 +0,0 @@
-<template>
-  <div id="index">
-    <framework :title="`测试页`" :returns="`/`">
-      <template #rNav>
-        <van-icon name="plus" @click="rNav" />
-      </template>
-      <van-cell title="查看列表测试" @click="$router.push({ path: '/test/list' })" />
-      <van-cell title="999" label="哈哈" value="14:00">
-        <!-- 最后的消息时间 -->
-        <!-- <template>
-          default
-        </template> -->
-        <!-- 用户/群组名称 -->
-        <!-- <template #title>
-          title
-        </template> -->
-        <!-- 最后的消息内容 -->
-        <!-- <template #label>
-          label
-        </template> -->
-        <!-- 放人物头像 -->
-        <template #icon>
-          <van-image :src="headIcon" fit="contain" style="height: 3.5rem; width:3.5rem;padding-right:1rem" />
-        </template>
-        <!-- <template #right-icon>
-          right-icon
-        </template> -->
-      </van-cell>
-      <list></list>
-    </framework>
-  </div>
-</template>
-
-<script>
-import list from './list.vue';
-import framework from '@/layout/framework.vue';
-export default {
-  metaInfo: { title: '首页' },
-  name: 'index',
-  props: {},
-  components: {
-    framework,
-    list,
-  },
-  data: () => ({
-    headIcon: require('@/assets/head_icon.jpg'),
-  }),
-  created() {},
-  computed: {},
-  methods: {
-    rNav() {
-      console.log('click plus');
-    },
-  },
-};
-</script>
-
-<style lang="less" scoped></style>

+ 0 - 69
src/views/test/list.vue

@@ -1,69 +0,0 @@
-<template>
-  <div id="list">
-    <van-list v-model="loading" :finished="noMore" finished-text="没有更多了" @load="search">
-      <van-swipe-cell v-for="(item, index) in list" :key="index">
-        <template slot="left">
-          <van-button square type="primary" text="选择" />
-        </template>
-        <van-cell :title="item.title" />
-        <template slot="right">
-          <van-button square type="danger" text="删除" />
-          <van-button square type="primary" text="收藏" />
-        </template>
-      </van-swipe-cell>
-    </van-list>
-  </div>
-</template>
-
-<script>
-export default {
-  metaInfo: { title: '列表测试' },
-  name: 'list',
-  props: {},
-  components: {},
-  data: () => ({
-    list: [],
-    skip: 0,
-    page: 0,
-    totalRow: 0,
-    noMore: false,
-    loading: false,
-  }),
-  created() {},
-  computed: {},
-  methods: {
-    async search() {
-      this.$set(this, `loading`, true);
-      if (this.noMore) return;
-      this.page++;
-      this.skip = (this.page - 1) * this.$limit;
-      //模拟加载的过程,有时间,不一定瞬间加载出来
-      setTimeout(() => {
-        let arr = [];
-        arr = this.getData();
-        console.log(arr);
-        this.$set(this, `totalRow`, 30);
-        this.$set(this, `list`, this.list.concat(arr));
-        this.$set(this, `noMore`, this.list.length >= this.totalRow);
-        this.$set(this, `loading`, false);
-      }, 2000);
-    },
-    getData() {
-      let arr = [];
-      let len = this.skip === 0 ? 15 : this.skip + this.$limit;
-      for (let index = this.skip; index < len; index++) {
-        arr.push({
-          id: index,
-          title: `计划${index}`,
-          start_time: `${new Date().getFullYear()}-${new Date().getMonth() + 1}-${new Date().getDate()}`,
-          end_time: `${new Date().getFullYear()}-${new Date().getMonth() + 1}-${new Date().getDate()}`,
-          total: index,
-        });
-      }
-      return arr;
-    },
-  },
-};
-</script>
-
-<style lang="less" scoped></style>

+ 2 - 2
src/views/xjc/common/add.vue

@@ -1,6 +1,6 @@
 <template>
   <div id="add">
-    <detailFrame :title="`选择联系人`" returns="person">
+    <detailFrame :title="`选择联系人`">
       <template #rNav>
         <van-button type="primary" size="small">完成</van-button>
       </template>
@@ -12,7 +12,7 @@
       <van-col :span="24">
         <van-index-bar>
           <van-index-anchor index="A">
-            <van-checkbox v-model="checked" style="">
+            <van-checkbox v-model="checked">
               <van-cell title="病患姓名">
                 <template #icon>
                   <van-image :src="headIcon" fit="contain" style="height: 2.5rem; width:2.5rem;padding-right:1rem" />

+ 41 - 9
src/views/xjc/common/chat.vue

@@ -1,19 +1,24 @@
 <template>
   <div id="chat">
-    <chat-frame :title="`群组名称`" returns="firstpage">
+    <chat-frame :title="`群组名称/个人姓名`" :returns="`/xjc/common/${returns}`">
       <template #rNav>
-        <van-icon name="ellipsis" @click="$router.push({ path: '/xjc/common/group' })" />
+        <van-icon name="ellipsis" @click="$router.push({ path: `/xjc/common/${type}`, query: { returns: 'chat' } })" />
+        <!-- /xjc/common/${type}?returns=chat -->
       </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-image
+              style="width:50px;height:50px;"
+              :src="url"
+              @click="$router.push({ path: `/xjc/common/${type}`, query: { returns: 'chat' } })"
+            ></van-image>
           </van-col>
           <van-col :span="16" style="position: relative;">
             <p class="text">
-              你好
+              你好好您好您好您好您好
             </p>
             <span class="jian"></span>
           </van-col>
@@ -39,7 +44,14 @@
           </van-col>
           <van-col :span="16" style="position: relative;">
             <p class="text">
-              你好
+              您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好
+              您好
+              您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好
+              您好
+              您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好
+              您好
+              您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好
+              您好
             </p>
             <span class="jian"></span>
           </van-col>
@@ -51,6 +63,20 @@
           <van-col :span="16" style="position: relative;">
             <p class="text">
               您好
+              您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好
+              您好
+              您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好
+              您好
+              您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好
+              您好
+              您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好
+              您好
+              您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好
+              您好
+              您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好
+              您好
+              您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好
+              您好
             </p>
             <span class="jian"></span>
           </van-col>
@@ -75,7 +101,7 @@
           </van-col>
           <van-col :span="16" style="position: relative;">
             <p class="text">
-              您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好您好
+              您好您好
               <span class="jian"></span>
             </p>
           </van-col>
@@ -100,7 +126,14 @@ export default {
     url: require('@/assets/head_icon.jpg'),
   }),
   created() {},
-  computed: {},
+  computed: {
+    type() {
+      return this.$route.params.type;
+    },
+    returns() {
+      return this.$route.query.returns;
+    },
+  },
   methods: {},
 };
 </script>
@@ -133,7 +166,7 @@ export default {
 .jian {
   display: inline-block;
   position: absolute;
-  top: 20px;
+  top: 11px;
   right: -19px;
   width: 0;
   height: 0;
@@ -142,7 +175,6 @@ export default {
   border-color: #ccc #ccc #ccc #008000;
 }
 .left .jian {
-  top: 11px;
   left: -19px;
   border-color: #ccc #fff #ccc #ccc;
 }

+ 49 - 54
src/views/xjc/common/firstpage.vue

@@ -10,40 +10,48 @@
         <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%" />
+        <van-collapse v-model="activeNames">
+          <van-collapse-item title="群组" name="1">
+            <van-swipe-cell v-for="(item, index) in group" :key="index">
+              <van-cell
+                :title="item.title"
+                :label="item.label"
+                :value="item.time"
+                @click="$router.push({ path: `/xjc/common/chat/${item.type}`, query: { returns: 'firstpage' } })"
+              >
+                <template #icon>
+                  <van-icon dot>
+                    <van-image :src="headIcon" fit="contain" style="height: 3.5rem; width:3.5rem" />
+                  </van-icon>
                 </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%" />
+              </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, index) in person" :key="index">
+              <van-cell
+                :title="item.title"
+                :label="item.label"
+                :value="item.time"
+                @click="$router.push({ path: `/xjc/common/chat/${item.type}`, query: { returns: 'firstpage' } })"
+              >
+                <template #icon>
+                  <van-icon info="99+">
+                    <van-image :src="headIcon" fit="contain" style="height: 3.5rem; width:3.5rem" />
+                  </van-icon>
                 </template>
-              </van-swipe-cell>
-            </van-collapse-item>
-          </van-collapse>
-        </van-list>
+              </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-col>
     </van-row>
   </div>
@@ -59,12 +67,11 @@ export default {
   },
   data: () => {
     return {
-      activeNames: ['1'],
-      active: 'chat',
-      group: [{ title: '群组名称', label: 'content', time: 'time' }],
-      person: [{ title: '个人姓名', label: 'content', time: 'time' }],
-      loading: false,
-      finished: false,
+      value: '',
+      activeNames: ['1', '2'],
+      active: 'firstpage',
+      group: [{ title: '群组名称', label: 'content', time: 'time', type: 'group' }],
+      person: [{ title: '个人姓名', label: 'content', time: 'time', type: 'person' }],
       headIcon: require('@/assets/head_icon.jpg'),
     };
   },
@@ -74,27 +81,15 @@ export default {
     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;
+  padding: 0px;
+}
+/deep/.van-cell__title {
+  padding-left: 1rem;
 }
 </style>

+ 6 - 10
src/views/xjc/common/friends.vue

@@ -10,10 +10,10 @@
         <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-index-bar>
+          <van-index-anchor index="A"> </van-index-anchor>
           <van-swipe-cell class="person">
-            <van-cell title="病患姓名" @click="$router.push({ path: '/xjc/common/chat' })">
+            <van-cell title="病患姓名" @click="$router.push({ path: `/xjc/common/chat/${type}?returns=friends` })">
               <template #icon>
                 <van-image :src="headIcon" fit="contain" style="height: 2.5rem; width:2.5rem;padding-right:1rem" />
               </template>
@@ -39,19 +39,15 @@ export default {
   data: () => {
     return {
       active: 'friends',
+      value: '',
       list: [],
-      loading: false,
-      finished: false,
       headIcon: require('@/assets/head_icon.jpg'),
+      type: 'person', //person;group
     };
   },
   created() {},
   computed: {},
-  methods: {
-    rNav() {
-      console.log('click plus');
-    },
-  },
+  methods: {},
 };
 </script>
 

+ 9 - 2
src/views/xjc/common/group.vue

@@ -1,7 +1,7 @@
 <template>
   <div id="group">
     <van-row>
-      <detailFrame :title="`聊天信息`" returns="/xjc/common/chat"> </detailFrame>
+      <detailFrame :title="`聊天信息`" :returns="`/xjc/common/chat/group?returns=firstpage`"> </detailFrame>
       <van-col :span="24">
         <van-grid :column-num="5" :gutter="10" clickable>
           <van-grid-item v-for="value in 19" :key="value">
@@ -19,6 +19,9 @@
       <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="groupcode" title="群二维码" value="二维码"></van-cell>
+      </van-col>
       <van-col :span="24">
         <van-cell is-link to="groupnotice" title="群公告" label="notice"></van-cell>
       </van-col>
@@ -68,7 +71,11 @@ export default {
     };
   },
   created() {},
-  computed: {},
+  computed: {
+    returns() {
+      return this.$route.query.returns;
+    },
+  },
   methods: {},
 };
 </script>

+ 43 - 0
src/views/xjc/common/groupcode.vue

@@ -0,0 +1,43 @@
+<template>
+  <div id="groupcode">
+    <detailFrame :title="`群二维码名片`" returns="group">
+      <template #rNav>
+        <van-icon name="ellipsis" @click="show = true"> </van-icon>
+      </template>
+    </detailFrame>
+    <van-row>
+      <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" cancel-text="取消" @cancel="this.show = false" />
+  </div>
+</template>
+
+<script>
+import detailFrame from '@/layout/xjc/detail-frame.vue';
+export default {
+  name: 'groupcode',
+  props: {},
+  components: {
+    detailFrame,
+  },
+  data: () => {
+    return {
+      headIcon: require('@/assets/logo.png'),
+      show: false,
+      actions: [{ name: '保存图片' } ],
+    };
+  },
+  created() {},
+  computed: {},
+  methods: {
+    onSelect(item) {
+      this.show = false;
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped></style>

+ 7 - 7
src/views/xjc/common/headicon.vue

@@ -1,16 +1,16 @@
 <template>
   <div id="headicon">
+    <detailFrame :title="`个人头像`" returns="user">
+      <template #rNav>
+        <van-icon name="ellipsis" @click="show = true"> </van-icon>
+      </template>
+    </detailFrame>
     <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" />
+    <van-action-sheet v-model="show" :actions="actions" @select="onSelect" cancel-text="取消" @cancel="this.show = false" />
   </div>
 </template>
 
@@ -26,7 +26,7 @@ export default {
     return {
       headIcon: require('@/assets/logo.png'),
       show: false,
-      actions: [{ name: '拍照' }, { name: '从手机相册选择' }, { name: '取消' }],
+      actions: [{ name: '拍照' }, { name: '从手机相册选择' }],
     };
   },
   created() {},

+ 3 - 1
src/views/xjc/common/name.vue

@@ -23,7 +23,9 @@ export default {
   components: {
     detailFrame,
   },
-  data: () => ({}),
+  data: () => ({
+    value: '我的id',
+  }),
   created() {},
   computed: {},
   methods: {},

+ 16 - 5
src/views/xjc/common/person.vue

@@ -1,6 +1,6 @@
 <template>
   <div id="person">
-    <detailFrame :title="`聊天详情`" returns="/xjc/common/chat"> </detailFrame>
+    <detailFrame :title="`聊天详情`" :returns="`${returns === 'chat' ? '/xjc/common/chat/person?returns=firstpage' : '/xjc/common/friends'}`"> </detailFrame>
     <van-row>
       <van-col :span="24">
         <van-grid :column-num="5" :gutter="10" clickable>
@@ -33,11 +33,11 @@
       <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-list v-model="loading" :finished="finished" finished-text="没有更多了" @load="onLoad" v-if="role === 'doctor'">
         <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" />
+    <van-action-sheet v-model="show" :actions="actions" @select="onSelect" cancel-text="取消" @cancel="show = false" />
   </div>
 </template>
 
@@ -59,11 +59,22 @@ export default {
       loading: false,
       finished: false,
       show: false,
-      actions: [{ name: '清空聊天记录' }, { name: '取消' }],
+      actions: [{ name: '清空聊天记录' }],
     };
   },
   created() {},
-  computed: {},
+  computed: {
+    returns() {
+      return this.$route.query.returns;
+    },
+    role() {
+      let user = sessionStorage.getItem('user');
+      if (user) {
+        return JSON.parse(user).role;
+      }
+      return false;
+    },
+  },
   methods: {
     onSelect(item) {
       this.show = false;

+ 4 - 2
src/views/xjc/common/personnote.vue

@@ -1,6 +1,6 @@
 <template>
   <div id="personnote">
-    <detailFrame :title="`设置备注`" returns="person">
+    <detailFrame :title="`设置备注`">
       <template #rNav>
         <van-button type="primary" size="small">完成</van-button>
       </template>
@@ -23,7 +23,9 @@ export default {
   components: {
     detailFrame,
   },
-  data: () => ({}),
+  data: () => ({
+    value: '此病患需10号回访',
+  }),
   created() {},
   computed: {},
   methods: {},

+ 2 - 2
src/views/xjc/common/user.vue

@@ -23,7 +23,7 @@
       </van-col>
     </van-row>
     <van-popup v-model="show">弹出微信</van-popup>
-    <van-action-sheet v-model="show1" :actions="actions" @select="onSelect" />
+    <van-action-sheet v-model="show1" :actions="actions" @select="onSelect" cancel-text="取消" @cancel="show1 = false" />
   </div>
 </template>
 
@@ -40,7 +40,7 @@ export default {
       headIcon: require('@/assets/logo.png'),
       show: false,
       show1: false,
-      actions: [{ name: '退出登陆' }, { name: '取消' }],
+      actions: [{ name: '退出登' }],
     };
   },
   created() {},

+ 1 - 1
src/views/xjc/login/doctor.vue

@@ -16,7 +16,7 @@
         </van-cell-group>
       </van-col>
       <van-col :span="4" :offset="20">
-        <van-button type="primary" size="large" to="../common/firstpage">登录</van-button>
+        <van-button type="primary" to="../common/firstpage">登录</van-button>
       </van-col>
     </van-row>
   </div>