guhongwei 4 vuotta sitten
vanhempi
commit
1d239fd375

+ 12 - 4
src/views/superAdminCenter/adminUser/index.vue

@@ -1,7 +1,7 @@
 <template>
   <div id="adminUser">
     <el-row>
-      <el-col :span="24" class="add" style="text-align:right;padding: 10px 20px;" v-if="user.pid == undefined && user.role == '0'">
+      <el-col :span="24" class="add" v-if="user.pid == undefined && user.role == '0'">
         <el-button size="mini" type="primary" @click="toAdd" icon="el-icon-plus">添加{{ theme }}</el-button>
       </el-col>
       <el-col :span="24" class="main">
@@ -79,8 +79,8 @@ export default {
   methods: {
     ...users(['query', 'fetch', 'create', 'update', 'delete']),
     ...authUser({ authUserDelete: 'delete', getAdminUser: 'query' }),
-    async search({ skip = 0, limit = 10, ...info } = {}) {
-      const res = await this.getAdminUser({ skip, limit, pid: this.user.uid, isdel: '0', ...info });
+    async search({ skip = 0, limit = 9, ...info } = {}) {
+      const res = await this.getAdminUser({ skip, limit: 9, pid: this.user.uid, isdel: '0', ...info });
       if (this.$checkRes(res)) {
         this.$set(this, `list`, res.data);
         this.$set(this, `total`, res.total);
@@ -140,4 +140,12 @@ export default {
 };
 </script>
 
-<style lang="less" scoped></style>
+<style lang="less" scoped>
+.add {
+  padding: 0 16px 0 0;
+  text-align: right;
+}
+.main {
+  padding: 0 16px 0 0;
+}
+</style>

+ 3 - 3
src/views/superAdminCenter/index.vue

@@ -125,18 +125,18 @@ export default {
   background-color: #e9edf6;
 }
 .main {
-  min-height: 834px;
+  min-height: 656px;
   margin: 15px 0;
 }
 .mainMenu {
   width: 20%;
-  height: 834px;
+  height: 656px;
   overflow-y: auto;
   background-color: #fff;
 }
 .mainMess {
   float: right;
-  height: 834px;
+  height: 656px;
   overflow-y: auto;
   background-color: #fff;
 }

+ 3 - 2
src/views/superAdminCenter/menuInfo.vue

@@ -75,9 +75,10 @@ export default {
       if (index == 20) {
         let r = { cpt: 'bindWx', name: '绑定微信' };
         if (r) this.$emit('setRight', r);
+      } else {
+        let r = this.menuList[index];
+        if (r) this.$emit('setRight', r);
       }
-      let r = this.menuList[index];
-      if (r) this.$emit('setRight', r);
     },
   },
   watch: {

+ 8 - 4
src/views/superAdminCenter/permission/index.vue

@@ -1,9 +1,9 @@
 <template>
   <div id="adminUser">
     <el-row>
-      <el-col :span="24" class="add" style="text-align:right;padding: 10px 20px;">
-        <!-- <el-button size="mini" type="primary" @click="toAdd" icon="el-icon-plus">添加{{ theme }}</el-button> -->
-      </el-col>
+      <!-- <el-col :span="24" class="add" style="text-align:right;padding: 10px 20px;">
+        <el-button size="mini" type="primary" @click="toAdd" icon="el-icon-plus">添加{{ theme }}</el-button>
+      </el-col> -->
       <el-col :span="24" class="main">
         <data-table :fields="fields" @delete="toDelete" :data="list" :opera="opera" @edit="toEdit" :total="total" @query="search"></data-table>
       </el-col>
@@ -139,4 +139,8 @@ export default {
 };
 </script>
 
-<style lang="less" scoped></style>
+<style lang="less" scoped>
+.main {
+  padding: 10px 18px 0 0px;
+}
+</style>

+ 2 - 2
src/views/superAdminCenter/role/index.vue

@@ -5,7 +5,7 @@
         <el-button size="mini" type="primary" @click="toAdd" icon="el-icon-plus">添加{{ theme }}</el-button>
       </el-col>
       <el-col :span="24" class="main">
-        <data-table :fields="fields" :usePage="false" @delete="toDelete" :data="list" :opera="opera" @edit="toEdit" :total="total" @query="search"></data-table>
+        <data-table :fields="fields" @delete="toDelete" :data="list" :opera="opera" @edit="toEdit" :total="total" @query="search"></data-table>
       </el-col>
       <el-dialog :title="theme" width="60%" :visible.sync="dialog" @closed="handleClose" :destroy-on-close="true">
         <data-form :data="form" :fields="fields" @save="toSave" :isNew="dialogIsNew"></data-form>
@@ -56,7 +56,7 @@ export default {
   methods: {
     ...mapActions(['query', 'create', 'update', 'delete']),
     async search({ skip = 0, limit = 10, ...info } = {}) {
-      const res = await this.query({ ...info });
+      const res = await this.query({ skip, limit, ...info });
       if (this.$checkRes(res)) {
         this.$set(this, `list`, res.data.reverse());
         this.$set(this, `total`, res.total);

+ 397 - 0
src/views/superAdminCenter/user copy/index.vue

@@ -0,0 +1,397 @@
+<template>
+  <div id="index">
+    <el-row>
+      <el-col :span="24">
+        <el-col :span="24" class="main">
+          <el-tabs v-model="activeName" type="card">
+            <el-tab-pane label="待审核" name="first">
+              <one :oneList="oneList" :total="onetotal" @handleDelete="handleDelete" @handleEdit="handleEdit1"></one>
+            </el-tab-pane>
+            <el-tab-pane label="审核成功" name="second">
+              <two :oneList="twoList" :total="twototal" @handleDelete="handleDelete" @handleEdit="handleEdit1"></two>
+            </el-tab-pane>
+            <el-tab-pane label="审核失败" name="third">
+              <three :oneList="threeList" :total="threetotal" @handleDelete="handleDelete" @handleEdit="handleEdit1"></three>
+            </el-tab-pane>
+          </el-tabs>
+        </el-col>
+        <el-dialog :title="theme" width="60%" :visible.sync="dialog" @closed="handleClose" :destroy-on-close="true">
+          <el-form ref="form" :model="form" label-width="100px">
+            <el-form-item label="用户状态" v-if="form.role !== '1'">
+              <el-radio-group v-model="form.status">
+                <el-radio label="0" disabled>已注册</el-radio>
+                <el-radio label="1">审核成功</el-radio>
+                <el-radio label="2">审核未通过</el-radio>
+              </el-radio-group>
+            </el-form-item>
+            <el-form-item label="用户名称" prop="name">
+              <el-input v-model="form.name" placeholder="请输入用户名称"></el-input>
+            </el-form-item>
+            <el-form-item label="用户ID" prop="phone">
+              <el-input v-model="form.phone" placeholder="请输入手机号" :minlength="11" :maxlength="11" disabled></el-input>
+            </el-form-item>
+            <el-form-item label="用户类别" prop="role">
+              <el-radio-group v-model="form.role" disabled>
+                <el-radio label="4">个人</el-radio>
+                <el-radio label="5">机构管理员</el-radio>
+                <el-radio label="6">专家</el-radio>
+              </el-radio-group>
+            </el-form-item>
+            <span v-if="form.role == '4' || form.role == '5'">
+              <el-form-item label="电子邮箱" prop="email">
+                <el-input v-model="form.email" placeholder="请输入电子邮箱"></el-input>
+              </el-form-item>
+              <el-form-item label="联系地址" prop="addr">
+                <el-input v-model="form.addr" placeholder="请输入联系地址"></el-input>
+              </el-form-item>
+              <el-form-item label="办公电话" prop="office_phone">
+                <el-input v-model="form.office_phone" placeholder="请输入办公电话"></el-input>
+              </el-form-item>
+              <el-form-item label="所属行业" prop="profession">
+                <el-input v-model="form.profession" placeholder="请输入所属行业"></el-input>
+              </el-form-item>
+            </span>
+            <!-- <span v-if="form.role == '4'">
+              <el-form-item label="个人简历" v-if="form.role == '4'">
+                <el-input type="textarea" v-model="form.resume" placeholder="请输入个人简介"></el-input>
+              </el-form-item>
+            </span> -->
+            <span v-if="form.role == '5'">
+              <el-form-item label="注册类型">
+                <el-input v-model="form.companytype" placeholder="请输入注册类型"></el-input>
+              </el-form-item>
+              <el-form-item label="注册时间">
+                <el-date-picker v-model="form.companydate" placeholder="请选择" value-format="yyyy-MM-dd" format="yyyy-MM-dd" type="date"> </el-date-picker>
+              </el-form-item>
+              <el-form-item label="统一社会信用代码">
+                <el-input v-model="form.institution_code" placeholder="请输入统一社会信用代码" disabled></el-input>
+              </el-form-item>
+              <el-form-item label="注册资金">
+                <el-input v-model="form.companycapital" placeholder="请输入注册资金"></el-input>
+              </el-form-item>
+              <el-form-item label="企业法人">
+                <el-input v-model="form.companyperson" placeholder="请输入企业法人"></el-input>
+              </el-form-item>
+              <el-form-item label="上年度企业总收入">
+                <el-input v-model="form.sndqyzsr" placeholder="请输入上年度企业总收入"></el-input>
+              </el-form-item>
+              <el-form-item label="上年度研发费用">
+                <el-input v-model="form.sndyffy" placeholder="请输入上年度研发费用"></el-input>
+              </el-form-item>
+              <el-form-item label="企业总人数">
+                <el-input v-model="form.companytotal" placeholder="请输入企业总人数"></el-input>
+              </el-form-item>
+              <el-form-item label="企业简介">
+                <el-input
+                  v-model="form.companybrief"
+                  type="textarea"
+                  maxlength="300"
+                  show-word-limit
+                  :autosize="{ minRows: 4, maxRows: 5 }"
+                  placeholder="请输入企业简介"
+                ></el-input>
+              </el-form-item>
+              <el-form-item label="主要产品">
+                <el-input
+                  v-model="form.mainproduct"
+                  type="textarea"
+                  maxlength="300"
+                  show-word-limit
+                  :autosize="{ minRows: 4, maxRows: 5 }"
+                  placeholder="请输入主要产品"
+                ></el-input>
+              </el-form-item>
+              <el-form-item label="企业资质/荣誉">
+                <el-input
+                  v-model="form.qualifications"
+                  type="textarea"
+                  maxlength="300"
+                  show-word-limit
+                  :autosize="{ minRows: 4, maxRows: 5 }"
+                  placeholder="请输入企业资质/荣誉"
+                ></el-input>
+              </el-form-item>
+            </span>
+            <span v-else-if="form.role == '6'">
+              <el-form-item label="头像">
+                <upload :limit="1" :data="form.expertimage" type="expertimage" :url="'/files/imgpath/upload'" @upload="uploadSuccess"></upload>
+              </el-form-item>
+              <el-form-item label="最高学历">
+                <el-input v-model="form.education" placeholder="请输入最高学历"></el-input>
+              </el-form-item>
+              <el-form-item label="毕业院校">
+                <el-input v-model="form.school" placeholder="请输入毕业院校"></el-input>
+              </el-form-item>
+              <el-form-item label="出生日期">
+                <el-date-picker v-model="form.birthDate" type="date" placeholder="选择日期" value-format="yyyy-MM-dd"> </el-date-picker>
+              </el-form-item>
+              <el-form-item label="QQ/微信">
+                <el-input v-model="form.qqwx" placeholder="请输入QQ/微信"></el-input>
+              </el-form-item>
+              <el-form-item label="电子邮箱">
+                <el-input v-model="form.email" placeholder="请输入电子邮箱"></el-input>
+              </el-form-item>
+              <el-form-item label="工作单位">
+                <el-input v-model="form.company" placeholder="请输入工作单位"></el-input>
+              </el-form-item>
+              <el-form-item label="职务职称">
+                <el-input v-model="form.zwzc" placeholder="请输入职务职称"></el-input>
+              </el-form-item>
+              <el-form-item label="擅长领域">
+                <el-input v-model="form.expertise" placeholder="请输入擅长领域"></el-input>
+              </el-form-item>
+              <el-form-item label="工作经历">
+                <el-input
+                  v-model="form.workexperience"
+                  type="textarea"
+                  maxlength="300"
+                  show-word-limit
+                  :autosize="{ minRows: 2, maxRows: 5 }"
+                  placeholder="请输入工作经历"
+                ></el-input>
+              </el-form-item>
+              <el-form-item label="科研综述">
+                <el-input
+                  v-model="form.scientific"
+                  type="textarea"
+                  maxlength="300"
+                  show-word-limit
+                  :autosize="{ minRows: 2, maxRows: 5 }"
+                  placeholder="请输入科研综述"
+                ></el-input>
+              </el-form-item>
+              <el-form-item label="承担项目">
+                <el-input
+                  v-model="form.undertakingproject"
+                  type="textarea"
+                  maxlength="300"
+                  show-word-limit
+                  :autosize="{ minRows: 2, maxRows: 5 }"
+                  placeholder="请输入承担项目"
+                ></el-input>
+              </el-form-item>
+              <el-form-item label="科技奖励">
+                <el-input
+                  v-model="form.scienceaward"
+                  type="textarea"
+                  maxlength="300"
+                  show-word-limit
+                  :autosize="{ minRows: 2, maxRows: 5 }"
+                  placeholder="请输入科技奖励"
+                ></el-input>
+              </el-form-item>
+              <el-form-item label="社会任职">
+                <el-input
+                  v-model="form.social"
+                  type="textarea"
+                  maxlength="300"
+                  show-word-limit
+                  :autosize="{ minRows: 2, maxRows: 5 }"
+                  placeholder="请输入社会任职"
+                ></el-input>
+              </el-form-item>
+            </span>
+            <el-form-item>
+              <el-button @click="handleClose">返回</el-button>
+              <el-button type="primary" @click="handleSave()">提交</el-button>
+            </el-form-item>
+          </el-form>
+        </el-dialog>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import one from './parts/one.vue';
+import two from './parts/two.vue';
+import three from './parts/three.vue';
+import upload from '@/components/uploadone.vue';
+import dataTable from '@/components/data-table.vue';
+import { mapState, createNamespacedHelpers } from 'vuex';
+const { mapActions: users } = createNamespacedHelpers('users');
+const { mapActions: authUser } = createNamespacedHelpers('authUser');
+const { mapActions: expertsuser } = createNamespacedHelpers('expertsuser');
+export default {
+  name: 'index',
+  props: {},
+  components: {
+    // dataTable,
+    upload,
+    one,
+    two,
+    three,
+  },
+  data: function() {
+    return {
+      theme: '用戶',
+      activeName: 'first',
+      dialog: false,
+      // 个人,机构,专家信息
+      form: {},
+      // 提交时,需要的uid
+      editData: {},
+      // 待审核
+      oneList: [],
+      onetotal: 0,
+      // 审核成功
+      twoList: [],
+      twototal: 0,
+      // 审核失败
+      threeList: [],
+      threetotal: 0,
+    };
+  },
+  created() {
+    this.search();
+  },
+  methods: {
+    ...authUser({ authdelete: 'delete' }),
+    ...users(['fetch', 'create', 'query', 'update', 'delete', 'userquery']),
+    ...expertsuser({ exportuserFetch: 'fetch', exportuserCreate: 'create', exportuserUpdate: 'update', exportuserDelete: 'delete' }),
+    async search({ skip = 0, limit = 10, pid = '', ...info } = {}) {
+      if (this.user.code == 'JLCJGLY') {
+        const res = await this.userquery({ skip, limit: 20, ...info });
+        if (this.$checkRes(res)) {
+          let one = res.data.filter(i => i.status == '0' && i.isdel == '0');
+          if (one) {
+            this.$set(this, `oneList`, one);
+            this.$set(this, `onetotal`, one.length);
+          }
+          let two = res.data.filter(i => i.status == '1' && i.isdel == '0');
+          if (two) {
+            this.$set(this, `twototal`, two.length);
+            this.$set(this, `twoList`, two);
+          }
+          let three = res.data.filter(i => i.status == '2' && i.isdel == '0');
+          if (three) {
+            this.$set(this, `threeList`, three);
+            this.$set(this, `threetotal`, three.length);
+          }
+        }
+      } else {
+        const res = await this.userquery({ skip, pid, code: this.user.code, ...info });
+        if (this.$checkRes(res)) {
+          let one = res.data.filter(i => i.status == '0' && i.isdel == '0');
+          if (one) {
+            this.$set(this, `oneList`, one);
+            this.$set(this, `onetotal`, one.length);
+          }
+          let two = res.data.filter(i => i.status == '1' && i.isdel == '0');
+          if (two) {
+            this.$set(this, `twototal`, two.length);
+            this.$set(this, `twoList`, two);
+          }
+          let three = res.data.filter(i => i.status == '2' && i.isdel == '0');
+          if (three) {
+            this.$set(this, `threeList`, three);
+            this.$set(this, `threetotal`, three.length);
+          }
+        }
+      }
+    },
+    // 审核打开
+    async handleEdit1(data) {
+      if (data.role == '4' || data.role == '5') {
+        let res = await this.fetch(data.uid);
+        if (this.$checkRes(res)) {
+          this.$set(this, `form`, res.data);
+        }
+      } else {
+        let res = await this.exportuserFetch(data.uid);
+        if (this.$checkRes(res)) {
+          this.$set(this, `form`, res.data);
+        }
+      }
+      this.$set(this, `editData`, data);
+      this.dialog = true;
+    },
+    // 提交
+    async handleSave() {
+      let data = this.form;
+      if (data.role == '4' || data.role == '5') {
+        data.id = this.editData.uid;
+        let res = await this.update(data);
+        if (this.$checkRes(res)) {
+          this.$message({
+            message: '审核信息成功',
+            type: 'success',
+          });
+          this.handleClose();
+        }
+      } else if (data.role == '6') {
+        data.id = this.editData.uid;
+        let res = await this.exportuserUpdate(data);
+        if (this.$checkRes(res)) {
+          this.$message({
+            message: '审核信息成功',
+            type: 'success',
+          });
+          this.handleClose();
+        }
+      }
+    },
+    // 刪除
+    async handleDelete(data) {
+      this.$confirm('您确定要删除此信息吗?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning',
+      })
+        .then(async () => {
+          if (data.role == '4' || data.role == '5') {
+            let res = await this.delete(data.uid);
+            if (this.$checkRes(res)) {
+              res = await this.authdelete(data.id);
+              if (this.$checkRes(res)) {
+                this.$message({
+                  message: '删除信息成功',
+                  type: 'success',
+                });
+                this.search();
+              }
+            }
+          } else {
+            let res = await this.exportuserDelete(data.uid);
+            if (this.$checkRes(res)) {
+              res = await this.authdelete(data.id);
+              if (this.$checkRes(res)) {
+                this.$message({
+                  message: '删除信息成功',
+                  type: 'success',
+                });
+                this.search();
+              }
+            }
+          }
+        })
+        .catch(() => {});
+    },
+    // 取消
+    handleClose() {
+      this.dialog = false;
+      this.form = {};
+    },
+    // 图片
+    uploadSuccess({ type, data }) {
+      this.$set(this.form, `${type}`, data.uri);
+    },
+    setIsQy(data) {
+      let val = '0';
+      data == '2' ? (val = '0') : (val = '1');
+      this.$set(this.form, `is_qy`, val);
+    },
+  },
+  computed: {
+    ...mapState(['user']),
+    pageTitle() {
+      return `${this.$route.meta.title}`;
+    },
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+};
+</script>
+
+<style lang="less" scoped></style>

src/views/superAdminCenter/user/parts/one.vue → src/views/superAdminCenter/user copy/parts/one.vue


src/views/superAdminCenter/user/parts/three.vue → src/views/superAdminCenter/user copy/parts/three.vue


src/views/superAdminCenter/user/parts/two.vue → src/views/superAdminCenter/user copy/parts/two.vue


+ 73 - 276
src/views/superAdminCenter/user/index.vue

@@ -1,236 +1,47 @@
 <template>
   <div id="index">
     <el-row>
-      <el-col :span="24">
-        <el-col :span="24" class="main">
-          <el-tabs v-model="activeName" type="card">
-            <el-tab-pane label="待审核" name="first">
-              <one :oneList="oneList" :total="onetotal" @handleDelete="handleDelete" @handleEdit="handleEdit1"></one>
-            </el-tab-pane>
-            <el-tab-pane label="审核成功" name="second">
-              <two :oneList="twoList" :total="twototal" @handleDelete="handleDelete" @handleEdit="handleEdit1"></two>
-            </el-tab-pane>
-            <el-tab-pane label="审核失败" name="third">
-              <three :oneList="threeList" :total="threetotal" @handleDelete="handleDelete" @handleEdit="handleEdit1"></three>
-            </el-tab-pane>
-          </el-tabs>
-        </el-col>
-        <el-dialog :title="theme" width="60%" :visible.sync="dialog" @closed="handleClose" :destroy-on-close="true">
-          <el-form ref="form" :model="form" label-width="100px">
-            <el-form-item label="用户状态" v-if="form.role !== '1'">
-              <el-radio-group v-model="form.status">
-                <el-radio label="0" disabled>已注册</el-radio>
-                <el-radio label="1">审核成功</el-radio>
-                <el-radio label="2">审核未通过</el-radio>
-              </el-radio-group>
-            </el-form-item>
-            <el-form-item label="用户名称" prop="name">
-              <el-input v-model="form.name" placeholder="请输入用户名称"></el-input>
-            </el-form-item>
-            <el-form-item label="用户ID" prop="phone">
-              <el-input v-model="form.phone" placeholder="请输入手机号" :minlength="11" :maxlength="11" disabled></el-input>
-            </el-form-item>
-            <el-form-item label="用户类别" prop="role">
-              <el-radio-group v-model="form.role" disabled>
-                <el-radio label="4">个人</el-radio>
-                <el-radio label="5">机构管理员</el-radio>
-                <el-radio label="6">专家</el-radio>
-              </el-radio-group>
-            </el-form-item>
-            <span v-if="form.role == '4' || form.role == '5'">
-              <el-form-item label="电子邮箱" prop="email">
-                <el-input v-model="form.email" placeholder="请输入电子邮箱"></el-input>
-              </el-form-item>
-              <el-form-item label="联系地址" prop="addr">
-                <el-input v-model="form.addr" placeholder="请输入联系地址"></el-input>
-              </el-form-item>
-              <el-form-item label="办公电话" prop="office_phone">
-                <el-input v-model="form.office_phone" placeholder="请输入办公电话"></el-input>
-              </el-form-item>
-              <el-form-item label="所属行业" prop="profession">
-                <el-input v-model="form.profession" placeholder="请输入所属行业"></el-input>
-              </el-form-item>
-            </span>
-            <!-- <span v-if="form.role == '4'">
-              <el-form-item label="个人简历" v-if="form.role == '4'">
-                <el-input type="textarea" v-model="form.resume" placeholder="请输入个人简介"></el-input>
-              </el-form-item>
-            </span> -->
-            <span v-if="form.role == '5'">
-              <el-form-item label="注册类型">
-                <el-input v-model="form.companytype" placeholder="请输入注册类型"></el-input>
-              </el-form-item>
-              <el-form-item label="注册时间">
-                <el-date-picker v-model="form.companydate" placeholder="请选择" value-format="yyyy-MM-dd" format="yyyy-MM-dd" type="date"> </el-date-picker>
-              </el-form-item>
-              <el-form-item label="统一社会信用代码">
-                <el-input v-model="form.institution_code" placeholder="请输入统一社会信用代码" disabled></el-input>
-              </el-form-item>
-              <el-form-item label="注册资金">
-                <el-input v-model="form.companycapital" placeholder="请输入注册资金"></el-input>
-              </el-form-item>
-              <el-form-item label="企业法人">
-                <el-input v-model="form.companyperson" placeholder="请输入企业法人"></el-input>
-              </el-form-item>
-              <el-form-item label="上年度企业总收入">
-                <el-input v-model="form.sndqyzsr" placeholder="请输入上年度企业总收入"></el-input>
-              </el-form-item>
-              <el-form-item label="上年度研发费用">
-                <el-input v-model="form.sndyffy" placeholder="请输入上年度研发费用"></el-input>
-              </el-form-item>
-              <el-form-item label="企业总人数">
-                <el-input v-model="form.companytotal" placeholder="请输入企业总人数"></el-input>
-              </el-form-item>
-              <el-form-item label="企业简介">
-                <el-input
-                  v-model="form.companybrief"
-                  type="textarea"
-                  maxlength="300"
-                  show-word-limit
-                  :autosize="{ minRows: 4, maxRows: 5 }"
-                  placeholder="请输入企业简介"
-                ></el-input>
-              </el-form-item>
-              <el-form-item label="主要产品">
-                <el-input
-                  v-model="form.mainproduct"
-                  type="textarea"
-                  maxlength="300"
-                  show-word-limit
-                  :autosize="{ minRows: 4, maxRows: 5 }"
-                  placeholder="请输入主要产品"
-                ></el-input>
-              </el-form-item>
-              <el-form-item label="企业资质/荣誉">
-                <el-input
-                  v-model="form.qualifications"
-                  type="textarea"
-                  maxlength="300"
-                  show-word-limit
-                  :autosize="{ minRows: 4, maxRows: 5 }"
-                  placeholder="请输入企业资质/荣誉"
-                ></el-input>
-              </el-form-item>
-            </span>
-            <span v-else-if="form.role == '6'">
-              <el-form-item label="头像">
-                <upload :limit="1" :data="form.expertimage" type="expertimage" :url="'/files/imgpath/upload'" @upload="uploadSuccess"></upload>
-              </el-form-item>
-              <el-form-item label="最高学历">
-                <el-input v-model="form.education" placeholder="请输入最高学历"></el-input>
-              </el-form-item>
-              <el-form-item label="毕业院校">
-                <el-input v-model="form.school" placeholder="请输入毕业院校"></el-input>
-              </el-form-item>
-              <el-form-item label="出生日期">
-                <el-date-picker v-model="form.birthDate" type="date" placeholder="选择日期" value-format="yyyy-MM-dd"> </el-date-picker>
-              </el-form-item>
-              <el-form-item label="QQ/微信">
-                <el-input v-model="form.qqwx" placeholder="请输入QQ/微信"></el-input>
-              </el-form-item>
-              <el-form-item label="电子邮箱">
-                <el-input v-model="form.email" placeholder="请输入电子邮箱"></el-input>
-              </el-form-item>
-              <el-form-item label="工作单位">
-                <el-input v-model="form.company" placeholder="请输入工作单位"></el-input>
-              </el-form-item>
-              <el-form-item label="职务职称">
-                <el-input v-model="form.zwzc" placeholder="请输入职务职称"></el-input>
-              </el-form-item>
-              <el-form-item label="擅长领域">
-                <el-input v-model="form.expertise" placeholder="请输入擅长领域"></el-input>
-              </el-form-item>
-              <el-form-item label="工作经历">
-                <el-input
-                  v-model="form.workexperience"
-                  type="textarea"
-                  maxlength="300"
-                  show-word-limit
-                  :autosize="{ minRows: 2, maxRows: 5 }"
-                  placeholder="请输入工作经历"
-                ></el-input>
-              </el-form-item>
-              <el-form-item label="科研综述">
-                <el-input
-                  v-model="form.scientific"
-                  type="textarea"
-                  maxlength="300"
-                  show-word-limit
-                  :autosize="{ minRows: 2, maxRows: 5 }"
-                  placeholder="请输入科研综述"
-                ></el-input>
-              </el-form-item>
-              <el-form-item label="承担项目">
-                <el-input
-                  v-model="form.undertakingproject"
-                  type="textarea"
-                  maxlength="300"
-                  show-word-limit
-                  :autosize="{ minRows: 2, maxRows: 5 }"
-                  placeholder="请输入承担项目"
-                ></el-input>
-              </el-form-item>
-              <el-form-item label="科技奖励">
-                <el-input
-                  v-model="form.scienceaward"
-                  type="textarea"
-                  maxlength="300"
-                  show-word-limit
-                  :autosize="{ minRows: 2, maxRows: 5 }"
-                  placeholder="请输入科技奖励"
-                ></el-input>
-              </el-form-item>
-              <el-form-item label="社会任职">
-                <el-input
-                  v-model="form.social"
-                  type="textarea"
-                  maxlength="300"
-                  show-word-limit
-                  :autosize="{ minRows: 2, maxRows: 5 }"
-                  placeholder="请输入社会任职"
-                ></el-input>
-              </el-form-item>
-            </span>
-            <el-form-item>
-              <el-button @click="handleClose">返回</el-button>
-              <el-button type="primary" @click="handleSave()">提交</el-button>
-            </el-form-item>
-          </el-form>
-        </el-dialog>
+      <el-col :span="24" class="main">
+        <el-tabs v-model="activeName" type="card" @tab-click="clickBtn">
+          <el-tab-pane label="待审核" name="first">
+            <list :list="oneList" :total="onetotal" :type="type" @handleDelete="handleDelete" @handleEdit="handleEdit"></list>
+          </el-tab-pane>
+          <el-tab-pane label="审核完成" name="second">
+            <list :list="twoList" :total="twototal" :type="type" @handleDelete="handleDelete" @handleEdit="handleEdit"></list>
+          </el-tab-pane>
+          <el-tab-pane label="审核失败" name="third">
+            <list :list="threeList" :total="threetotal" :type="type" @handleDelete="handleDelete" @handleEdit="handleEdit"></list>
+          </el-tab-pane>
+        </el-tabs>
       </el-col>
     </el-row>
+    <el-dialog title="详细信息" width="60%" :visible.sync="dialog" @closed="handleClose" :destroy-on-close="true">
+      <detailInfo :form="form" @handleSave="handleSave" @handleClose="handleClose"></detailInfo>
+    </el-dialog>
   </div>
 </template>
 
 <script>
-import one from './parts/one.vue';
-import two from './parts/two.vue';
-import three from './parts/three.vue';
-import upload from '@/components/uploadone.vue';
-import dataTable from '@/components/data-table.vue';
+import list from './parts/list.vue';
+import detailInfo from './parts/detailInfo.vue';
 import { mapState, createNamespacedHelpers } from 'vuex';
-const { mapActions: users } = createNamespacedHelpers('users');
 const { mapActions: authUser } = createNamespacedHelpers('authUser');
+const { mapActions: users } = createNamespacedHelpers('users');
 const { mapActions: expertsuser } = createNamespacedHelpers('expertsuser');
 export default {
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
   name: 'index',
   props: {},
   components: {
-    // dataTable,
-    upload,
-    one,
-    two,
-    three,
+    list,
+    detailInfo,
   },
   data: function() {
     return {
-      theme: '用戶',
       activeName: 'first',
-      dialog: false,
-      // 个人,机构,专家信息
-      form: {},
-      // 提交时,需要的uid
-      editData: {},
+      type: '0',
       // 待审核
       oneList: [],
       onetotal: 0,
@@ -240,65 +51,62 @@ export default {
       // 审核失败
       threeList: [],
       threetotal: 0,
+      // 审核
+      dialog: false,
+      form: {},
+      editData: {},
     };
   },
-  created() {
-    this.search();
+  async created() {
+    await this.search();
   },
   methods: {
     ...authUser({ authdelete: 'delete' }),
-    ...users(['fetch', 'create', 'query', 'update', 'delete', 'userquery']),
-    ...expertsuser({ exportuserFetch: 'fetch', exportuserCreate: 'create', exportuserUpdate: 'update', exportuserDelete: 'delete' }),
-    async search({ skip = 0, limit = 10, pid = '', ...info } = {}) {
-      if (this.user.code == 'JLCJGLY') {
-        const res = await this.userquery({ skip, ...info });
-        if (this.$checkRes(res)) {
-          let one = res.data.filter(i => i.status == '0' && i.isdel == '0');
-          if (one) {
-            this.$set(this, `oneList`, one);
-            this.$set(this, `onetotal`, one.length);
-          }
-          let two = res.data.filter(i => i.status == '1' && i.isdel == '0');
-          if (two) {
-            this.$set(this, `twototal`, two.length);
-            this.$set(this, `twoList`, two);
-          }
-          let three = res.data.filter(i => i.status == '2' && i.isdel == '0');
-          if (three) {
-            this.$set(this, `threeList`, three);
-            this.$set(this, `threetotal`, three.length);
-          }
+    ...users(['query', 'userquery', 'fetch', 'update', 'create', 'delete']),
+    ...expertsuser({ expertQuery: 'query', expertFetch: 'fetch', expertCreate: 'create', expertUpdate: 'update', expertDelete: 'delete' }),
+    async search({ skip = 0, limit = 10, ...info } = {}) {
+      let code = this.user.code;
+      if (code == 'JLCJGLY') {
+        let res = await this.userquery({ skip, ...info });
+        let one = res.data.filter(i => i.status == '0');
+        let two = res.data.filter(i => i.status == '1');
+        let thr = res.data.filter(i => i.status == '2');
+        if (one || two || thr) {
+          this.$set(this, `oneList`, one);
+          this.$set(this, `onetotal`, one.length);
+          this.$set(this, `twoList`, two);
+          this.$set(this, `twototal`, two.length);
+          this.$set(this, `threeList`, thr);
+          this.$set(this, `threetotal`, thr.length);
         }
       } else {
-        const res = await this.userquery({ skip, pid, code: this.user.code, ...info });
-        if (this.$checkRes(res)) {
-          let one = res.data.filter(i => i.status == '0' && i.isdel == '0');
-          if (one) {
-            this.$set(this, `oneList`, one);
-            this.$set(this, `onetotal`, one.length);
-          }
-          let two = res.data.filter(i => i.status == '1' && i.isdel == '0');
-          if (two) {
-            this.$set(this, `twototal`, two.length);
-            this.$set(this, `twoList`, two);
-          }
-          let three = res.data.filter(i => i.status == '2' && i.isdel == '0');
-          if (three) {
-            this.$set(this, `threeList`, three);
-            this.$set(this, `threetotal`, three.length);
-          }
+        let res = await this.userquery({ skip, code, ...info });
+        let one = res.data.filter(i => i.status == '0');
+        let two = res.data.filter(i => i.status == '1');
+        let thr = res.data.filter(i => i.status == '2');
+        if (one || two || thr) {
+          this.$set(this, `oneList`, one);
+          this.$set(this, `onetotal`, one.length);
+          this.$set(this, `twoList`, two);
+          this.$set(this, `twototal`, two.length);
+          this.$set(this, `threeList`, thr);
+          this.$set(this, `threetotal`, thr.length);
         }
       }
     },
-    // 审核打开
-    async handleEdit1(data) {
+    // 选择
+    clickBtn(tab) {
+      this.$set(this, `type`, tab.index);
+    },
+    // 审核。查看
+    async handleEdit(data) {
       if (data.role == '4' || data.role == '5') {
         let res = await this.fetch(data.uid);
         if (this.$checkRes(res)) {
           this.$set(this, `form`, res.data);
         }
       } else {
-        let res = await this.exportuserFetch(data.uid);
+        let res = await this.expertFetch(data.uid);
         if (this.$checkRes(res)) {
           this.$set(this, `form`, res.data);
         }
@@ -307,8 +115,7 @@ export default {
       this.dialog = true;
     },
     // 提交
-    async handleSave() {
-      let data = this.form;
+    async handleSave(data) {
       if (data.role == '4' || data.role == '5') {
         data.id = this.editData.uid;
         let res = await this.update(data);
@@ -321,7 +128,7 @@ export default {
         }
       } else if (data.role == '6') {
         data.id = this.editData.uid;
-        let res = await this.exportuserUpdate(data);
+        let res = await this.expertUpdate(data);
         if (this.$checkRes(res)) {
           this.$message({
             message: '审核信息成功',
@@ -352,7 +159,7 @@ export default {
               }
             }
           } else {
-            let res = await this.exportuserDelete(data.uid);
+            let res = await this.expertDelete(data.uid);
             if (this.$checkRes(res)) {
               res = await this.authdelete(data.id);
               if (this.$checkRes(res)) {
@@ -372,26 +179,16 @@ export default {
       this.dialog = false;
       this.form = {};
     },
-    // 图片
-    uploadSuccess({ type, data }) {
-      this.$set(this.form, `${type}`, data.uri);
-    },
-    setIsQy(data) {
-      let val = '0';
-      data == '2' ? (val = '0') : (val = '1');
-      this.$set(this.form, `is_qy`, val);
-    },
   },
   computed: {
     ...mapState(['user']),
-    pageTitle() {
-      return `${this.$route.meta.title}`;
-    },
-  },
-  metaInfo() {
-    return { title: this.$route.meta.title };
   },
+  watch: {},
 };
 </script>
 
-<style lang="less" scoped></style>
+<style lang="less" scoped>
+.main {
+  padding: 0 16px 0 0;
+}
+</style>

+ 212 - 0
src/views/superAdminCenter/user/parts/detailInfo.vue

@@ -0,0 +1,212 @@
+<template>
+  <div id="detailInfo">
+    <el-row>
+      <el-col :span="24">
+        <el-form ref="form" :model="form" label-width="120px">
+          <el-form-item label="用户状态" v-if="form.role !== '1'">
+            <el-radio-group v-model="form.status">
+              <el-radio label="0" disabled>已注册</el-radio>
+              <el-radio label="1">审核成功</el-radio>
+              <el-radio label="2">审核未通过</el-radio>
+            </el-radio-group>
+          </el-form-item>
+          <el-form-item label="用户名称" prop="name">
+            <el-input v-model="form.name" placeholder="请输入用户名称"></el-input>
+          </el-form-item>
+          <el-form-item label="用户ID" prop="phone">
+            <el-input v-model="form.phone" placeholder="请输入手机号" :minlength="11" :maxlength="11" disabled></el-input>
+          </el-form-item>
+          <el-form-item label="用户类别" prop="role">
+            <el-radio-group v-model="form.role" disabled>
+              <el-radio label="4">个人</el-radio>
+              <el-radio label="5">机构管理员</el-radio>
+              <el-radio label="6">专家</el-radio>
+            </el-radio-group>
+          </el-form-item>
+          <span v-if="form.role == '4' || form.role == '5'">
+            <el-form-item label="电子邮箱" prop="email">
+              <el-input v-model="form.email" placeholder="请输入电子邮箱"></el-input>
+            </el-form-item>
+            <el-form-item label="联系地址" prop="addr">
+              <el-input v-model="form.addr" placeholder="请输入联系地址"></el-input>
+            </el-form-item>
+            <el-form-item label="办公电话" prop="office_phone">
+              <el-input v-model="form.office_phone" placeholder="请输入办公电话"></el-input>
+            </el-form-item>
+            <el-form-item label="所属行业" prop="profession">
+              <el-input v-model="form.profession" placeholder="请输入所属行业"></el-input>
+            </el-form-item>
+          </span>
+          <span v-if="form.role == '5'">
+            <el-form-item label="注册类型">
+              <el-input v-model="form.companytype" placeholder="请输入注册类型"></el-input>
+            </el-form-item>
+            <el-form-item label="注册时间">
+              <el-date-picker v-model="form.companydate" placeholder="请选择" value-format="yyyy-MM-dd" format="yyyy-MM-dd" type="date"> </el-date-picker>
+            </el-form-item>
+            <el-form-item label="统一社会信用代码">
+              <el-input v-model="form.institution_code" placeholder="请输入统一社会信用代码" disabled></el-input>
+            </el-form-item>
+            <el-form-item label="注册资金">
+              <el-input v-model="form.companycapital" placeholder="请输入注册资金"></el-input>
+            </el-form-item>
+            <el-form-item label="企业法人">
+              <el-input v-model="form.companyperson" placeholder="请输入企业法人"></el-input>
+            </el-form-item>
+            <el-form-item label="上年度企业总收入">
+              <el-input v-model="form.sndqyzsr" placeholder="请输入上年度企业总收入"></el-input>
+            </el-form-item>
+            <el-form-item label="上年度研发费用">
+              <el-input v-model="form.sndyffy" placeholder="请输入上年度研发费用"></el-input>
+            </el-form-item>
+            <el-form-item label="企业总人数">
+              <el-input v-model="form.companytotal" placeholder="请输入企业总人数"></el-input>
+            </el-form-item>
+            <el-form-item label="企业简介">
+              <el-input
+                v-model="form.companybrief"
+                type="textarea"
+                maxlength="300"
+                show-word-limit
+                :autosize="{ minRows: 4, maxRows: 5 }"
+                placeholder="请输入企业简介"
+              ></el-input>
+            </el-form-item>
+            <el-form-item label="主要产品">
+              <el-input
+                v-model="form.mainproduct"
+                type="textarea"
+                maxlength="300"
+                show-word-limit
+                :autosize="{ minRows: 4, maxRows: 5 }"
+                placeholder="请输入主要产品"
+              ></el-input>
+            </el-form-item>
+            <el-form-item label="企业资质/荣誉">
+              <el-input
+                v-model="form.qualifications"
+                type="textarea"
+                maxlength="300"
+                show-word-limit
+                :autosize="{ minRows: 4, maxRows: 5 }"
+                placeholder="请输入企业资质/荣誉"
+              ></el-input>
+            </el-form-item>
+          </span>
+          <span v-else-if="form.role == '6'">
+            <el-form-item label="头像">
+              <upload :limit="1" :data="form.expertimage" type="expertimage" :url="'/files/imgpath/upload'" @upload="uploadSuccess"></upload>
+            </el-form-item>
+            <el-form-item label="最高学历">
+              <el-input v-model="form.education" placeholder="请输入最高学历"></el-input>
+            </el-form-item>
+            <el-form-item label="毕业院校">
+              <el-input v-model="form.school" placeholder="请输入毕业院校"></el-input>
+            </el-form-item>
+            <el-form-item label="出生日期">
+              <el-date-picker v-model="form.birthDate" type="date" placeholder="选择日期" value-format="yyyy-MM-dd"> </el-date-picker>
+            </el-form-item>
+            <el-form-item label="QQ/微信">
+              <el-input v-model="form.qqwx" placeholder="请输入QQ/微信"></el-input>
+            </el-form-item>
+            <el-form-item label="电子邮箱">
+              <el-input v-model="form.email" placeholder="请输入电子邮箱"></el-input>
+            </el-form-item>
+            <el-form-item label="工作单位">
+              <el-input v-model="form.company" placeholder="请输入工作单位"></el-input>
+            </el-form-item>
+            <el-form-item label="职务职称">
+              <el-input v-model="form.zwzc" placeholder="请输入职务职称"></el-input>
+            </el-form-item>
+            <el-form-item label="擅长领域">
+              <el-input v-model="form.expertise" placeholder="请输入擅长领域"></el-input>
+            </el-form-item>
+            <el-form-item label="工作经历">
+              <el-input
+                v-model="form.workexperience"
+                type="textarea"
+                maxlength="300"
+                show-word-limit
+                :autosize="{ minRows: 2, maxRows: 5 }"
+                placeholder="请输入工作经历"
+              ></el-input>
+            </el-form-item>
+            <el-form-item label="科研综述">
+              <el-input
+                v-model="form.scientific"
+                type="textarea"
+                maxlength="300"
+                show-word-limit
+                :autosize="{ minRows: 2, maxRows: 5 }"
+                placeholder="请输入科研综述"
+              ></el-input>
+            </el-form-item>
+            <el-form-item label="承担项目">
+              <el-input
+                v-model="form.undertakingproject"
+                type="textarea"
+                maxlength="300"
+                show-word-limit
+                :autosize="{ minRows: 2, maxRows: 5 }"
+                placeholder="请输入承担项目"
+              ></el-input>
+            </el-form-item>
+            <el-form-item label="科技奖励">
+              <el-input
+                v-model="form.scienceaward"
+                type="textarea"
+                maxlength="300"
+                show-word-limit
+                :autosize="{ minRows: 2, maxRows: 5 }"
+                placeholder="请输入科技奖励"
+              ></el-input>
+            </el-form-item>
+            <el-form-item label="社会任职">
+              <el-input
+                v-model="form.social"
+                type="textarea"
+                maxlength="300"
+                show-word-limit
+                :autosize="{ minRows: 2, maxRows: 5 }"
+                placeholder="请输入社会任职"
+              ></el-input>
+            </el-form-item>
+          </span>
+          <el-form-item>
+            <el-button @click="handleClose">返回</el-button>
+            <el-button type="primary" @click="handleSave">提交</el-button>
+          </el-form-item>
+        </el-form>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'detailInfo',
+  props: {
+    form: { type: Object },
+  },
+  components: {},
+  data: function() {
+    return {};
+  },
+  created() {},
+  methods: {
+    handleClose() {
+      this.$emit('handleClose');
+    },
+    handleSave() {
+      this.$emit('handleSave', this.form);
+    },
+  },
+  computed: {
+    ...mapState(['user']),
+  },
+  watch: {},
+};
+</script>
+
+<style lang="less" scoped></style>

+ 130 - 0
src/views/superAdminCenter/user/parts/list.vue

@@ -0,0 +1,130 @@
+<template>
+  <div id="list">
+    <el-row>
+      <el-col :span="24" class="main">
+        <el-col :span="24" class="list">
+          <el-table :data="datalist" style="width: 100%" border>
+            <el-table-column prop="name" label="用户名称" align="center" show-overflow-tooltip> </el-table-column>
+            <el-table-column prop="phone" label="用户ID" align="center" show-overflow-tooltip> </el-table-column>
+            <el-table-column label="用户类型" align="center">
+              <template v-slot="scoped">
+                {{
+                  `${scoped.row.role}` == `4` ? '个人用户' : `${scoped.row.role}` == `5` ? '机构用户' : `${scoped.row.role}` == `6` ? '专家用户' : '临时用户'
+                }}
+              </template>
+            </el-table-column>
+            <el-table-column label="状态" align="center">
+              <template v-slot="scoped">
+                {{
+                  `${scoped.row.status}` == `0` ? '审核中' : `${scoped.row.status}` == `1` ? '审核通过' : `${scoped.row.status}` == `2` ? '审核拒绝' : '草稿'
+                }}
+              </template>
+            </el-table-column>
+            <span v-if="type == '0'">
+              <el-table-column fixed="right" label="操作" align="center">
+                <template slot-scope="scoped">
+                  <el-button type="text" size="small" @click="handleEdit(scoped.row)">审核</el-button>
+                  <el-button type="text" size="small" @click="handleDelete(scoped.row)">删除</el-button>
+                </template>
+              </el-table-column>
+            </span>
+            <span v-else-if="type == '1'">
+              <el-table-column fixed="right" label="操作" align="center">
+                <template slot-scope="scoped">
+                  <el-button type="text" size="small" @click="handleEdit(scoped.row)">查看</el-button>
+                  <el-button type="text" size="small" @click="handleDelete(scoped.row)">删除</el-button>
+                </template>
+              </el-table-column>
+            </span>
+            <span v-else-if="type == '2'">
+              <el-table-column fixed="right" label="操作" align="center">
+                <template slot-scope="scoped">
+                  <el-button type="text" size="small" @click="handleDelete(scoped.row)">删除</el-button>
+                </template>
+              </el-table-column>
+            </span>
+          </el-table>
+        </el-col>
+        <el-col :span="24" class="page">
+          <el-pagination
+            @current-change="handleCurrentChange"
+            :current-page="currentPage"
+            layout="total, prev, pager, next, jumper"
+            :total="total"
+            :page-size="pageSize"
+          >
+          </el-pagination>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  name: 'list',
+  props: {
+    list: { type: Array },
+    total: { type: Number },
+    type: { type: String },
+  },
+  components: {},
+  data: function() {
+    return {
+      currentPage: 1,
+      pageSize: 10,
+      origin: [],
+      datalist: [],
+    };
+  },
+  created() {},
+  methods: {
+    search(page = 1) {
+      this.$set(this, `datalist`, this.origin[page - 1]);
+    },
+    handleCurrentChange(currentPage) {
+      this.search(currentPage);
+    },
+    handleEdit(data) {
+      this.$emit('handleEdit', data);
+    },
+    handleDelete(data) {
+      this.$emit('handleDelete', data);
+    },
+  },
+  computed: {
+    ...mapState(['user']),
+  },
+  watch: {
+    list: {
+      immediate: true,
+      deep: true,
+      handler(val) {
+        if (val && val.length > 0) this.$set(this, `origin`, _.chunk(val, this.pageSize));
+        this.search();
+      },
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.main {
+  .list {
+    /deep/.el-table td {
+      padding: 5px 0;
+    }
+    /deep/.el-table th {
+      padding: 5px 0;
+    }
+  }
+  .page {
+    text-align: center;
+    padding: 10px 0;
+  }
+}
+</style>