guhongwei 4 vuotta sitten
vanhempi
commit
74ea24b7ad

+ 5 - 0
src/components/common/Sidebar.vue

@@ -66,6 +66,11 @@ export default {
           index: 'yw',
           title: '业务管理员',
         },
+        {
+          icon: 'el-icon-s-home',
+          index: 'user',
+          title: '用户管理',
+        },
       ],
     };
   },

+ 6 - 0
src/router/index.js

@@ -53,6 +53,12 @@ export default new Router({
           component: () => import('../views/yw/detail.vue'),
           meta: { title: '业务管理员信息管理' },
         },
+        // 用户管理
+        {
+          path: '/user',
+          component: () => import('../views/user/index.vue'),
+          meta: { title: '用户管理' },
+        },
       ],
     },
     {

+ 65 - 0
src/views/user/index.vue

@@ -0,0 +1,65 @@
+<template>
+  <div id="index">
+    <el-row>
+      <el-col :span="24" class="main">
+        <el-col :span="24" class="type">
+          <el-radio-group v-model="userType">
+            <el-radio label="1" border>个人用户</el-radio>
+            <el-radio label="2" border>机构用户</el-radio>
+            <el-radio label="3" border>专家用户</el-radio>
+          </el-radio-group>
+        </el-col>
+        <el-col :span="24" class="list">
+          <span v-if="userType == '1'">
+            <perUser></perUser>
+          </span>
+          <span v-else-if="userType == '2'">
+            <mechUser></mechUser>
+          </span>
+          <span v-else-if="userType == '3'">
+            <expeUser></expeUser>
+          </span>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import perUser from './parts/perUser.vue';
+import mechUser from './parts/mechUser.vue';
+import expeUser from './parts/expeUser.vue';
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  name: 'index',
+  props: {},
+  components: {
+    perUser,
+    mechUser,
+    expeUser,
+  },
+  data: function() {
+    return {
+      // 用户类别
+      userType: '1',
+    };
+  },
+  created() {},
+  methods: {},
+  computed: {
+    ...mapState(['user']),
+  },
+  watch: {},
+};
+</script>
+
+<style lang="less" scoped>
+.main {
+  .type {
+    margin: 0 0 20px 0;
+  }
+}
+</style>

+ 94 - 0
src/views/user/parts/expeUser.vue

@@ -0,0 +1,94 @@
+<template>
+  <div id="expeUser">
+    <el-row>
+      <el-col :span="24">
+        <el-tabs v-model="active" type="card">
+          <el-tab-pane label="待审核" name="first">
+            <data-table :fields="fields" :opera="opera" :data="oneList" :total="oneTotal" @query="search" @edit="toEdit" @delete="toDelete"></data-table>
+          </el-tab-pane>
+          <el-tab-pane label="审核通过" name="second">
+            <data-table :fields="fields" :opera="opera" :data="twoList" :total="twoTotal" @query="search" @edit="toEdit" @delete="toDelete"></data-table>
+          </el-tab-pane>
+          <el-tab-pane label="审核失败" name="third">
+            <data-table :fields="fields" :opera="opera" :data="thrList" :total="thrTotal" @query="search" @edit="toEdit" @delete="toDelete"></data-table>
+          </el-tab-pane>
+        </el-tabs>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import dataTable from '@common/src/components/frame/filter-page-table.vue';
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  name: 'expeUser',
+  props: {},
+  components: {
+    dataTable,
+  },
+  data: function() {
+    return {
+      active: 'first',
+      opera: [
+        {
+          label: '编辑',
+          method: 'edit',
+        },
+        {
+          label: '删除',
+          method: 'delete',
+        },
+      ],
+      fields: [
+        { label: '机构代码或邀请码', prop: 'code' },
+        { label: '用户名', prop: 'name' },
+        { label: '用户ID', prop: 'phone' },
+        { label: '电子邮箱', prop: 'email' },
+        {
+          label: '状态',
+          prop: 'status',
+          format: item => {
+            return item === '0' ? '审核中' : item === '1' ? '审核通过' : '审核拒绝';
+          },
+        },
+      ],
+      // 待审核
+      oneList: [],
+      oneTotal: 0,
+      // 审核通过
+      twoList: [],
+      twoTotal: 0,
+      // 审核失败
+      thrList: [],
+      thrTotal: 0,
+    };
+  },
+  async created() {
+    await this.search();
+  },
+  methods: {
+    // 查询列表
+    search({ skip = 0, limit = 10, ...info } = {}) {
+      console.log('列表');
+    },
+    // 修改
+    toEdit({ data }) {
+      console.log('修改');
+    },
+    // 删除
+    toDelete({ data }) {
+      console.log('删除');
+    },
+  },
+  computed: {
+    ...mapState(['user']),
+  },
+  watch: {},
+};
+</script>
+
+<style lang="less" scoped></style>

+ 95 - 0
src/views/user/parts/mechUser.vue

@@ -0,0 +1,95 @@
+<template>
+  <div id="mechUser">
+    <el-row>
+      <el-col :span="24">
+        <el-tabs v-model="active" type="card">
+          <el-tab-pane label="待审核" name="first">
+            <data-table :fields="fields" :opera="opera" :data="oneList" :total="oneTotal" @query="search" @edit="toEdit" @delete="toDelete"></data-table>
+          </el-tab-pane>
+          <el-tab-pane label="审核通过" name="second">
+            <data-table :fields="fields" :opera="opera" :data="twoList" :total="twoTotal" @query="search" @edit="toEdit" @delete="toDelete"></data-table>
+          </el-tab-pane>
+          <el-tab-pane label="审核失败" name="third">
+            <data-table :fields="fields" :opera="opera" :data="thrList" :total="thrTotal" @query="search" @edit="toEdit" @delete="toDelete"></data-table>
+          </el-tab-pane>
+        </el-tabs>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import dataTable from '@common/src/components/frame/filter-page-table.vue';
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  name: 'mechUser',
+  props: {},
+  components: {
+    dataTable,
+  },
+  data: function() {
+    return {
+      active: 'first',
+      opera: [
+        {
+          label: '编辑',
+          method: 'edit',
+        },
+        {
+          label: '删除',
+          method: 'delete',
+        },
+      ],
+      fields: [
+        { label: '机构代码或邀请码', prop: 'code' },
+        { label: '用户名', prop: 'name' },
+        { label: '用户ID', prop: 'phone' },
+        { label: '社会统一信用代码', prop: 'institution_code' },
+        { label: '电子邮箱', prop: 'email' },
+        {
+          label: '状态',
+          prop: 'status',
+          format: item => {
+            return item === '0' ? '审核中' : item === '1' ? '审核通过' : '审核拒绝';
+          },
+        },
+      ],
+      // 待审核
+      oneList: [],
+      oneTotal: 0,
+      // 审核通过
+      twoList: [],
+      twoTotal: 0,
+      // 审核失败
+      thrList: [],
+      thrTotal: 0,
+    };
+  },
+  async created() {
+    await this.search();
+  },
+  methods: {
+    // 查询列表
+    search({ skip = 0, limit = 10, ...info } = {}) {
+      console.log('列表');
+    },
+    // 修改
+    toEdit({ data }) {
+      console.log('修改');
+    },
+    // 删除
+    toDelete({ data }) {
+      console.log('删除');
+    },
+  },
+  computed: {
+    ...mapState(['user']),
+  },
+  watch: {},
+};
+</script>
+
+<style lang="less" scoped></style>

+ 94 - 0
src/views/user/parts/perUser.vue

@@ -0,0 +1,94 @@
+<template>
+  <div id="perUser">
+    <el-row>
+      <el-col :span="24">
+        <el-tabs v-model="active" type="card">
+          <el-tab-pane label="待审核" name="first">
+            <data-table :fields="fields" :opera="opera" :data="oneList" :total="oneTotal" @query="search" @edit="toEdit" @delete="toDelete"></data-table>
+          </el-tab-pane>
+          <el-tab-pane label="审核通过" name="second">
+            <data-table :fields="fields" :opera="opera" :data="twoList" :total="twoTotal" @query="search" @edit="toEdit" @delete="toDelete"></data-table>
+          </el-tab-pane>
+          <el-tab-pane label="审核失败" name="third">
+            <data-table :fields="fields" :opera="opera" :data="thrList" :total="thrTotal" @query="search" @edit="toEdit" @delete="toDelete"></data-table>
+          </el-tab-pane>
+        </el-tabs>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import dataTable from '@common/src/components/frame/filter-page-table.vue';
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  name: 'perUser',
+  props: {},
+  components: {
+    dataTable,
+  },
+  data: function() {
+    return {
+      active: 'first',
+      opera: [
+        {
+          label: '编辑',
+          method: 'edit',
+        },
+        {
+          label: '删除',
+          method: 'delete',
+        },
+      ],
+      fields: [
+        { label: '机构代码或邀请码', prop: 'code' },
+        { label: '用户名', prop: 'name' },
+        { label: '用户ID', prop: 'phone' },
+        { label: '电子邮箱', prop: 'email' },
+        {
+          label: '状态',
+          prop: 'status',
+          format: item => {
+            return item === '0' ? '审核中' : item === '1' ? '审核通过' : '审核拒绝';
+          },
+        },
+      ],
+      // 待审核
+      oneList: [],
+      oneTotal: 0,
+      // 审核通过
+      twoList: [],
+      twoTotal: 0,
+      // 审核失败
+      thrList: [],
+      thrTotal: 0,
+    };
+  },
+  async created() {
+    await this.search();
+  },
+  methods: {
+    // 查询列表
+    search({ skip = 0, limit = 10, ...info } = {}) {
+      console.log('列表');
+    },
+    // 修改
+    toEdit({ data }) {
+      console.log('修改');
+    },
+    // 删除
+    toDelete({ data }) {
+      console.log('删除');
+    },
+  },
+  computed: {
+    ...mapState(['user']),
+  },
+  watch: {},
+};
+</script>
+
+<style lang="less" scoped></style>