guhongwei 4 년 전
부모
커밋
5492ab864c

+ 7 - 0
src/router/index.js

@@ -303,6 +303,13 @@ const web = [
         meta: { title: '创新券审核管理' },
         component: () => import('../views/adminCenter/inter/ticket/detail.vue'),
       },
+      // 专家用户
+      {
+        path: '/adminCenter/experts/basic',
+        name: 'experts_basic_index',
+        meta: { title: '专家基本信息' },
+        component: () => import('../views/adminCenter/experts/basic/index.vue'),
+      },
     ],
   },
 ];

+ 99 - 0
src/views/adminCenter/experts/basic/index.vue

@@ -0,0 +1,99 @@
+<template>
+  <div id="index">
+    <el-row>
+      <el-col :span="24" class="main">
+        <el-col :span="24" class="one">
+          <el-col :span="24" class="text"> 基本信息 </el-col>
+          <el-col :span="24" class="form"> <one :form="form" :rules="rules"></one> </el-col>
+          <el-col :span="24" class="text"> 详细信息 </el-col>
+          <el-col :span="24" class="form"> <two :form="form" :rules="rules"></two> </el-col>
+          <el-col :span="24" class="btn">
+            <el-button type="primary" @click="onSubmit">保存信息</el-button>
+          </el-col>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import one from './parts/one.vue';
+import two from './parts/two.vue';
+import { mapState, createNamespacedHelpers } from 'vuex';
+const { mapActions: expert } = createNamespacedHelpers('expert');
+export default {
+  name: 'index',
+  props: {},
+  components: {
+    one,
+    two,
+  },
+  data: function () {
+    return {
+      form: {},
+      rules: {},
+    };
+  },
+  async created() {
+    await this.search();
+  },
+  methods: {
+    ...expert(['fetch', 'update']),
+    async search() {
+      if (this.user.id) {
+        let res = await this.fetch(this.user.id);
+        if (this.$checkRes(res)) {
+          this.$set(this, `form`, res.data);
+        }
+      }
+    },
+    async onSubmit() {
+      let data = this.form;
+      let res = await this.update(data);
+      if (this.$checkRes(res)) {
+        this.$message({
+          message: '修改信息成功',
+          type: 'success',
+        });
+        this.search();
+      }
+    },
+  },
+  computed: {
+    ...mapState(['user']),
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  watch: {
+    test: {
+      deep: true,
+      immediate: true,
+      handler(val) {},
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.main {
+  border-radius: 10px;
+  box-shadow: 0 0 5px #cccccc;
+  padding: 20px;
+  .one {
+    .text {
+      height: 40px;
+      line-height: 40px;
+      border-bottom: 1px dashed #000;
+      margin: 0 0 10px 0;
+    }
+    .btn {
+      text-align: center;
+      padding: 15px 0;
+    }
+  }
+}
+.main:hover {
+  box-shadow: 0 0 5px #409eff;
+}
+</style>

+ 76 - 0
src/views/adminCenter/experts/basic/parts/one.vue

@@ -0,0 +1,76 @@
+<template>
+  <div id="one">
+    <el-row>
+      <el-col :span="24" class="main">
+        <el-form :model="form" :rules="rules" ref="form" label-width="100px">
+          <el-col :span="12">
+            <el-form-item label="姓名" prop="name">
+              <el-input v-model="form.name" placeholder="请输入姓名"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="手机号" prop="phone">
+              <el-input v-model="form.phone" placeholder="请输入手机号"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="电子邮箱" prop="email">
+              <el-input v-model="form.email" placeholder="请输入电子邮箱"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="联系地址" prop="addr">
+              <el-input v-model="form.addr" placeholder="请输入联系地址"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="办公电话" prop="office_phone">
+              <el-input v-model="form.office_phone" placeholder="请输入办公电话"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="所属行业" prop="profession">
+              <el-input v-model="form.profession" placeholder="请输入所属行业"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-form>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'one',
+  props: {
+    form: { type: Object },
+    rules: { type: Object },
+  },
+  components: {},
+  data: function () {
+    return {};
+  },
+  created() {},
+  methods: {},
+  computed: {
+    ...mapState(['user']),
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  watch: {
+    test: {
+      deep: true,
+      immediate: true,
+      handler(val) {},
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+/deep/.el-input__inner {
+  border: 1px solid #333;
+}
+</style>

+ 149 - 0
src/views/adminCenter/experts/basic/parts/two.vue

@@ -0,0 +1,149 @@
+<template>
+  <div id="one">
+    <el-row>
+      <el-col :span="24" class="main">
+        <el-form :model="form" :rules="rules" ref="form" label-width="100px">
+          <el-col :span="12">
+            <el-form-item label="qq&微信" prop="qqwx">
+              <el-input v-model="form.qqwx" placeholder="请输入qq&微信"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="出生日期" prop="birthDate">
+              <el-date-picker v-model="form.birthDate" placeholder="请选择" value-format="yyyy-MM-dd" format="yyyy-MM-dd" type="date"> </el-date-picker>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="毕业院校" prop="school">
+              <el-input v-model="form.school" placeholder="请输入毕业院校"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="最高学历" prop="education">
+              <el-input v-model="form.education" placeholder="请输入最高学历"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="职务职称" prop="zwzc">
+              <el-input v-model="form.zwzc" placeholder="请输入职务职称"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="擅长领域" prop="expertise">
+              <el-input v-model="form.expertise" placeholder="请输入擅长领域"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="工作单位" prop="company">
+              <el-input v-model="form.company" placeholder="请输入工作单位"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="头像图片" prop="img_path">
+              <e-upload url="/files/cysci/expert_imgpath/upload" :limit="1" v-model="form.img_path"></e-upload>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="工作经历" prop="workexperience">
+              <el-input
+                v-model="form.workexperience"
+                placeholder="请输入工作经历"
+                type="textarea"
+                maxlength="300"
+                :autosize="{ minRows: 4, maxRows: 6 }"
+                show-word-limit
+              ></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="科研综述" prop="scientific">
+              <el-input
+                v-model="form.scientific"
+                placeholder="请输入科研综述"
+                type="textarea"
+                maxlength="300"
+                :autosize="{ minRows: 4, maxRows: 6 }"
+                show-word-limit
+              ></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="承担项目" prop="undertakingproject">
+              <el-input
+                v-model="form.undertakingproject"
+                placeholder="请输入承担项目"
+                type="textarea"
+                maxlength="300"
+                :autosize="{ minRows: 4, maxRows: 6 }"
+                show-word-limit
+              ></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="科技奖励" prop="scienceaward">
+              <el-input
+                v-model="form.scienceaward"
+                placeholder="请输入科技奖励"
+                type="textarea"
+                maxlength="300"
+                :autosize="{ minRows: 4, maxRows: 6 }"
+                show-word-limit
+              ></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="社会任职" prop="social">
+              <el-input
+                v-model="form.social"
+                placeholder="请输入社会任职"
+                type="textarea"
+                maxlength="300"
+                :autosize="{ minRows: 4, maxRows: 6 }"
+                show-word-limit
+              ></el-input>
+            </el-form-item>
+          </el-col>
+        </el-form>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'one',
+  props: {
+    form: { type: Object },
+    rules: { type: Object },
+  },
+  components: {},
+  data: function () {
+    return {};
+  },
+  created() {},
+  methods: {},
+  computed: {
+    ...mapState(['user']),
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  watch: {
+    test: {
+      deep: true,
+      immediate: true,
+      handler(val) {},
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+/deep/.el-input__inner {
+  border: 1px solid #333;
+}
+/deep/.el-textarea__inner {
+  border: 1px solid #333;
+}
+</style>

+ 47 - 18
src/views/login.vue

@@ -7,7 +7,23 @@
             <el-col :span="24" class="title">环南湖科创先导区双创服务平台</el-col>
             <el-col :span="24" class="info">
               <el-tabs v-model="activeName" :stretch="true">
-                <el-tab-pane label="企业登录" name="first">
+                <el-tab-pane label="管理登录" name="first">
+                  <el-col :span="24" class="form">
+                    <el-form ref="adminForm" :model="adminForm">
+                      <el-form-item>
+                        <el-input v-model="adminForm.code_phone" prefix-icon="el-icon-user-solid" maxlength="11" placeholder="请输入服务机构账号"></el-input>
+                      </el-form-item>
+                      <el-form-item>
+                        <el-input v-model="adminForm.passwd" prefix-icon="el-icon-lock" placeholder="请输入账号密码" show-password></el-input>
+                      </el-form-item>
+                      <el-col :span="24" class="btn">
+                        <el-button type="danger" @click="resetBtn">取消登录</el-button>
+                        <el-button type="primary" @click="thrSubmit">提交登录</el-button>
+                      </el-col>
+                    </el-form>
+                  </el-col>
+                </el-tab-pane>
+                <el-tab-pane label="企业登录" name="second">
                   <el-col :span="24" class="form">
                     <el-form ref="form" :model="form">
                       <el-form-item>
@@ -23,7 +39,7 @@
                     </el-form>
                   </el-col>
                 </el-tab-pane>
-                <el-tab-pane label="中介机构登录" name="second">
+                <el-tab-pane label="机构登录" name="third">
                   <el-col :span="24" class="form">
                     <el-form ref="interForm" :model="interForm">
                       <el-form-item>
@@ -39,18 +55,18 @@
                     </el-form>
                   </el-col>
                 </el-tab-pane>
-                <el-tab-pane label="服务机构登录" name="third">
+                <el-tab-pane label="专家登录" name="fourth">
                   <el-col :span="24" class="form">
-                    <el-form ref="adminForm" :model="adminForm">
+                    <el-form ref="expertForm" :model="expertForm">
                       <el-form-item>
-                        <el-input v-model="adminForm.code_phone" prefix-icon="el-icon-user-solid" maxlength="11" placeholder="请输入服务机构账号"></el-input>
+                        <el-input v-model="expertForm.phone" prefix-icon="el-icon-user-solid" maxlength="11" placeholder="请输入专家账号"></el-input>
                       </el-form-item>
                       <el-form-item>
-                        <el-input v-model="adminForm.passwd" prefix-icon="el-icon-lock" placeholder="请输入账号密码" show-password></el-input>
+                        <el-input v-model="expertForm.passwd" prefix-icon="el-icon-lock" placeholder="请输入账号密码" show-password></el-input>
                       </el-form-item>
                       <el-col :span="24" class="btn">
                         <el-button type="danger" @click="resetBtn">取消登录</el-button>
-                        <el-button type="primary" @click="thrSubmit">提交登录</el-button>
+                        <el-button type="primary" @click="fourSubmit">提交登录</el-button>
                       </el-col>
                     </el-form>
                   </el-col>
@@ -67,9 +83,10 @@
 <script>
 const _ = require('lodash');
 import { mapState, createNamespacedHelpers } from 'vuex';
+const { mapActions: adminLogin } = createNamespacedHelpers('login');
 const { mapActions: organization } = createNamespacedHelpers('organization');
 const { mapActions: mechanism } = createNamespacedHelpers('mechanism');
-const { mapActions: adminLogin } = createNamespacedHelpers('login');
+const { mapActions: expertLogin } = createNamespacedHelpers('expert');
 export default {
   name: 'login',
   props: {},
@@ -78,22 +95,34 @@ export default {
     return {
       activeName: 'first',
       loginBj: require('@a/loginBj.jpg'),
+      // 管理登录
+      adminForm: {},
       // 企业登录
       form: {},
-      // 中介机构登录
+      // 机构登录
       interForm: {},
-      // 服务机构登录
-      adminForm: {},
+      // 专家登录
+      expertForm: {},
     };
   },
   created() {},
   methods: {
+    // 管理登录
+    ...adminLogin({ adminLogin: 'login' }),
     // 企业
     ...organization(['login']),
-    // 中介机构
+    // 机构
     ...mechanism({ interLogin: 'login' }),
-    // 服务机构登录
-    ...adminLogin({ adminLogin: 'login' }),
+    // 专家
+    ...expertLogin({ expertLogin: 'login' }),
+    // 管理员
+    async thrSubmit() {
+      let data = _.get(this, 'adminForm');
+      const res = await this.adminLogin(data);
+      if (this.$checkRes(res)) {
+        this.$router.push({ path: '/adminCenter/homeIndex' });
+      }
+    },
     // 企业
     async oneSubmit() {
       let data = _.get(this, 'form');
@@ -110,10 +139,10 @@ export default {
         this.$router.push({ path: '/adminCenter/homeIndex' });
       }
     },
-    // 管理员
-    async thrSubmit() {
-      let data = _.get(this, 'adminForm');
-      const res = await this.adminLogin(data);
+    // 专家
+    async fourSubmit() {
+      let data = _.get(this, 'expertForm');
+      const res = await this.expertLogin(data);
       if (this.$checkRes(res)) {
         this.$router.push({ path: '/adminCenter/homeIndex' });
       }

+ 1 - 1
src/views/service/register/expert.vue

@@ -31,7 +31,7 @@
             <el-col :span="24" class="title"> 详细信息 </el-col>
             <el-col :span="24" class="info">
               <el-form-item label="头像图片" prop="img_path">
-                <e-upload url="/files/cysci/expert_imgpath/upload" :limit="1" v-model="form.image"></e-upload>
+                <e-upload url="/files/cysci/expert_imgpath/upload" :limit="1" v-model="form.img_path"></e-upload>
               </el-form-item>
               <el-form-item label="qq&微信" prop="qqwx">
                 <el-input v-model="form.qqwx" placeholder="请输入qq&微信"></el-input>