guhongwei пре 4 година
родитељ
комит
b9413e4b63

+ 7 - 0
src/router/index.js

@@ -37,6 +37,13 @@ const web = [
         meta: { title: '科技服务' },
         component: () => import('../views/service/index.vue'),
       },
+      {
+        path: '/service/register',
+        name: 'service_register',
+        meta: { title: '用户注册' },
+        component: () => import('../views/service/register.vue'),
+      },
+
       {
         path: '/market/index',
         name: 'market_index',

+ 7 - 6
src/views/adminCenter/expert/detail.vue

@@ -33,18 +33,19 @@ export default {
       fields: [
         { label: '姓名', model: 'name', type: 'text' },
         { label: '电话号码', model: 'phone', options: { maxLength: 11 }, type: 'text' },
+        { label: '邮箱', model: 'email', type: 'text' },
         { label: '地址', model: 'addr', type: 'text' },
         { label: '办公电话', model: 'office_phone', type: 'text' },
         { label: '所属行业', model: 'profession', type: 'text' },
-        { label: '最高学历', model: 'education', type: 'text' },
-        { label: '毕业院校', model: 'school', type: 'text' },
-        { label: '出生日期', model: 'birthDate', type: 'date', type: 'text' },
+
+        { label: '头像图片', model: 'img_path', custom: true },
         { label: 'qq&微信', model: 'qqwx', type: 'text' },
-        { label: '邮箱', model: 'email', type: 'text' },
-        { label: '单位名称', model: 'company', type: 'text' },
+        { label: '出生日期', model: 'birthDate', type: 'date', type: 'text' },
+        { label: '毕业院校', model: 'school', type: 'text' },
+        { label: '最高学历', model: 'education', type: 'text' },
         { label: '职务职称', model: 'zwzc', type: 'text' },
         { label: '擅长领域', model: 'expertise', type: 'text' },
-        { label: '头像图片', model: 'img_path', custom: true },
+        { label: '工作单位', model: 'company', type: 'text' },
         { label: '工作经历', model: 'workexperience', type: 'textarea', options: { maxRows: 5, minRows: 3 }, type: 'text' },
         { label: '科研综述', model: 'scientific', type: 'textarea', options: { maxRows: 5, minRows: 3 }, type: 'text' },
         { label: '承担项目', model: 'undertakingproject', type: 'text' },

+ 7 - 0
src/views/service/btnList.js

@@ -2,29 +2,36 @@ export const btnList = [
   {
     icon: 'iconkejixiangmu',
     name: '科技项目评审',
+    type: '1',
   },
   {
     icon: 'iconHNTE',
     name: '高企政策服务',
+    type: '2',
   },
   {
     icon: 'icontianchongxing-',
     name: '创新劵服务',
+    type: '3',
   },
   {
     icon: 'iconchengguo',
     name: '科技成果评价',
+    type: '4',
   },
   {
     icon: 'iconzj',
     name: '专家智库',
+    type: '5',
   },
   {
     icon: 'iconzhongguohangtiantubiaoheji-weizhuanlunkuo-',
     name: '企业管理',
+    type: '6',
   },
   {
     icon: 'iconjigouguanli',
     name: '机构管理',
+    type: '7',
   },
 ];

+ 20 - 2
src/views/service/index.vue

@@ -4,7 +4,7 @@
       <el-col :span="24" class="main">
         <div class="w_1200">
           <el-col :span="24" class="one">
-            <el-col :span="6" class="list" v-for="(item, index) in list" :key="index">
+            <el-col :span="6" class="list" v-for="(item, index) in list" :key="index" @click.native="link(item.type)">
               <el-col :span="24" class="name">
                 <i class="iconfont" :class="item.icon"></i>
                 <p>{{ item.name }}</p>
@@ -39,7 +39,25 @@ export default {
     };
   },
   created() {},
-  methods: {},
+  methods: {
+    link(type) {
+      if (type == '1') {
+        console.log('1');
+      } else if (type == '2') {
+        console.log('2');
+      } else if (type == '3') {
+        console.log('3');
+      } else if (type == '4') {
+        console.log('4');
+      } else if (type == '5') {
+        this.$router.push({ path: '/service/register', query: { type: type } });
+      } else if (type == '6') {
+        this.$router.push({ path: '/service/register', query: { type: type } });
+      } else if (type == '7') {
+        this.$router.push({ path: '/service/register', query: { type: type } });
+      }
+    },
+  },
   computed: {
     ...mapState(['user']),
   },

+ 87 - 0
src/views/service/register.vue

@@ -0,0 +1,87 @@
+<template>
+  <div id="register">
+    <el-row>
+      <el-col :span="24" class="main">
+        <div class="w_1200">
+          <el-col :span="24" class="one">
+            <el-col :span="24" class="btn">
+              <el-button type="primary" size="mini" @click="back">返回</el-button>
+            </el-col>
+            <el-col :span="24" class="text">环南湖科创先导区双创服务平台-{{ type == '5' ? '专家' : type == '6' ? '企业' : '机构' }}账号注册</el-col>
+            <el-col :span="24" class="dwon">
+              <expert v-if="type == '5'"></expert>
+              <company v-else-if="type == '6'"></company>
+              <mechanism v-else-if="type == '7'"></mechanism>
+            </el-col>
+          </el-col>
+        </div>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import expert from './register/expert.vue';
+import company from './register/company.vue';
+import mechanism from './register/mechanism.vue';
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'register',
+  props: {},
+  components: { expert, company, mechanism },
+  data: function () {
+    return {};
+  },
+  created() {},
+  methods: {
+    back() {
+      this.$router.push({ path: '/service/index' });
+    },
+  },
+  computed: {
+    ...mapState(['user']),
+    type() {
+      return this.$route.query.type;
+    },
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  watch: {
+    test: {
+      deep: true,
+      immediate: true,
+      handler(val) {},
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.main {
+  min-height: 500px;
+  margin: 10px 0;
+  .one {
+    min-height: 500px;
+    border-radius: 5px;
+    border: 1px solid #ccc;
+    .btn {
+      margin: 10px;
+    }
+    .text {
+      font-size: 30px;
+      text-align: center;
+    }
+    .dwon {
+      padding: 0 10px;
+      .title {
+        font-size: 16px;
+        font-weight: bold;
+        border-bottom: 1px dashed #ccc;
+        padding: 10px 0;
+        margin: 0 0 10px 0;
+      }
+    }
+  }
+}
+</style>

+ 188 - 0
src/views/service/register/company.vue

@@ -0,0 +1,188 @@
+<template>
+  <div id="company">
+    <el-row>
+      <el-col :span="24" class="main">
+        <el-col :span="24" class="one">
+          <el-form :model="form" :rules="rules" ref="form" label-width="100px">
+            <el-col :span="24" class="title"> 基本信息 </el-col>
+            <el-col :span="24" class="info">
+              <el-form-item label="企业名称" prop="name">
+                <el-input v-model="form.name" placeholder="请输入企业名称"></el-input>
+              </el-form-item>
+              <el-form-item label="机构代码" prop="institution_code">
+                <el-input v-model="form.institution_code" placeholder="请输入机构代码"></el-input>
+              </el-form-item>
+              <el-form-item label="手机号" prop="phone">
+                <el-input v-model="form.phone" placeholder="请输入手机号"></el-input>
+              </el-form-item>
+              <el-form-item label="登录密码" prop="passwd">
+                <el-input v-model="form.passwd" placeholder="请输入登录密码" show-password></el-input>
+              </el-form-item>
+              <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>
+            </el-col>
+            <el-col :span="24" class="title"> 详细信息 </el-col>
+            <el-col :span="24" class="info">
+              <el-form-item label="注册类型" prop="companytype">
+                <el-input v-model="form.companytype" placeholder="请输入注册类型"></el-input>
+              </el-form-item>
+              <el-form-item label="注册时间" prop="companydate">
+                <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="注册资金" prop="companycapital">
+                <el-input v-model="form.companycapital" placeholder="请输入注册资金"></el-input>
+              </el-form-item>
+              <el-form-item label="企业法人" prop="companyperson">
+                <el-input v-model="form.companyperson" placeholder="请输入企业法人"></el-input>
+              </el-form-item>
+              <el-form-item label="企业总收入" prop="sndqyzsr">
+                <el-input v-model="form.sndqyzsr" placeholder="请输入上年度企业总收入"></el-input>
+              </el-form-item>
+              <el-form-item label="研发费用" prop="sndyffy">
+                <el-input v-model="form.sndyffy" placeholder="请输入上年度研发费用"></el-input>
+              </el-form-item>
+              <el-form-item label="企业总人数" prop="companytotal">
+                <el-input v-model="form.companytotal" placeholder="请输入企业总人数"></el-input>
+              </el-form-item>
+              <el-form-item label="研发人数" prop="zjzyfrs">
+                <el-input v-model="form.zjzyfrs" placeholder="请输入专&兼职研发人数"></el-input>
+              </el-form-item>
+              <el-form-item label="企业简介" prop="companybrief">
+                <el-input
+                  v-model="form.companybrief"
+                  placeholder="请输入企业简介"
+                  type="textarea"
+                  maxlength="300"
+                  :autosize="{ minRows: 4, maxRows: 6 }"
+                  show-word-limit
+                ></el-input>
+              </el-form-item>
+              <el-form-item label="主要产品" prop="mainproduct">
+                <el-input
+                  v-model="form.mainproduct"
+                  placeholder="请输入主要产品"
+                  type="textarea"
+                  maxlength="300"
+                  :autosize="{ minRows: 4, maxRows: 6 }"
+                  show-word-limit
+                ></el-input>
+              </el-form-item>
+              <el-form-item label="资质&荣誉" prop="qualifications">
+                <el-input
+                  v-model="form.qualifications"
+                  placeholder="请输入企业资质&荣誉"
+                  type="textarea"
+                  maxlength="300"
+                  :autosize="{ minRows: 4, maxRows: 6 }"
+                  show-word-limit
+                ></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24" class="btn">
+              <el-button type="primary" size="mini">取消注册</el-button>
+              <el-button type="primary" size="mini" @click="onSubmit('form')">提交注册</el-button>
+            </el-col>
+          </el-form>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+const { mapActions: organization } = createNamespacedHelpers('organization');
+export default {
+  name: 'company',
+  props: {},
+  components: {},
+  data: function () {
+    return {
+      form: {},
+      rules: {
+        name: [{ required: true, message: '请输入企业名称', trigger: 'blur' }],
+        phone: [
+          { required: true, message: '请输入手机号', trigger: 'blur' },
+          { max: 11, message: '不得超过11' },
+        ],
+        passwd: [{ required: true, message: '请输入登录密码', trigger: 'blur' }],
+        email: [{ required: true, message: '请输入电子邮箱', trigger: 'blur' }],
+        addr: [{ required: true, message: '请输入联系地址', trigger: 'blur' }],
+        office_phone: [{ required: true, message: '请输入办公电话', trigger: 'blur' }],
+        profession: [{ required: true, message: '请输入所属行业', trigger: 'blur' }],
+        institution_code: [{ required: true, message: '请输入机构代码', trigger: 'blur' }],
+      },
+    };
+  },
+  created() {},
+  methods: {
+    ...organization(['create']),
+    onSubmit(formName) {
+      this.$refs[formName].validate(async (valid) => {
+        if (valid) {
+          let data = this.form;
+          data.status = '0';
+          let res = await this.create(data);
+          if (this.$checkRes(res)) {
+            this.$message({
+              message: '账号注册成功',
+              type: 'success',
+            });
+            this.$router.push({ path: '/service/index' });
+          }
+        } else {
+          console.log('error submit!!');
+          return false;
+        }
+      });
+    },
+  },
+  computed: {
+    ...mapState(['user']),
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  watch: {
+    test: {
+      deep: true,
+      immediate: true,
+      handler(val) {},
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.main {
+  .one {
+    .title {
+      font-size: 16px;
+      font-weight: bold;
+      border-bottom: 1px dashed #ccc;
+      padding: 0 0 10px 0;
+      margin: 0 0 10px 0;
+    }
+    .info {
+      border: 1px solid #ccc;
+      border-radius: 5px;
+      padding: 10px;
+      margin: 0 0 10px 0;
+    }
+    .btn {
+      text-align: center;
+      margin: 0 0 10px 0;
+    }
+  }
+}
+</style>

+ 204 - 0
src/views/service/register/expert.vue

@@ -0,0 +1,204 @@
+<template>
+  <div id="expert">
+    <el-row>
+      <el-col :span="24" class="main">
+        <el-col :span="24" class="one">
+          <el-form :model="form" :rules="rules" ref="form" label-width="100px">
+            <el-col :span="24" class="title"> 基本信息 </el-col>
+            <el-col :span="24" class="info">
+              <el-form-item label="姓名" prop="name">
+                <el-input v-model="form.name" placeholder="请输入姓名"></el-input>
+              </el-form-item>
+              <el-form-item label="手机号" prop="phone">
+                <el-input v-model="form.phone" placeholder="请输入手机号"></el-input>
+              </el-form-item>
+              <el-form-item label="登录密码" prop="passwd">
+                <el-input v-model="form.passwd" placeholder="请输入登录密码" show-password></el-input>
+              </el-form-item>
+              <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>
+            </el-col>
+            <el-col :span="24" class="title"> 详细信息 </el-col>
+            <el-col :span="24" class="info">
+              <el-form-item label="头像图片" prop="img_path">
+                <el-input v-model="form.img_path" placeholder="请输入头像图片"></el-input>
+              </el-form-item>
+              <el-form-item label="qq&微信" prop="qqwx">
+                <el-input v-model="form.qqwx" placeholder="请输入qq&微信"></el-input>
+              </el-form-item>
+              <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-form-item label="毕业院校" prop="school">
+                <el-input v-model="form.school" placeholder="请输入毕业院校"></el-input>
+              </el-form-item>
+              <el-form-item label="最高学历" prop="education">
+                <el-input v-model="form.education" placeholder="请输入最高学历"></el-input>
+              </el-form-item>
+              <el-form-item label="职务职称" prop="zwzc">
+                <el-input v-model="form.zwzc" placeholder="请输入职务职称"></el-input>
+              </el-form-item>
+              <el-form-item label="擅长领域" prop="expertise">
+                <el-input v-model="form.expertise" placeholder="请输入擅长领域"></el-input>
+              </el-form-item>
+              <el-form-item label="工作单位" prop="company">
+                <el-input v-model="form.company" placeholder="请输入工作单位"></el-input>
+              </el-form-item>
+              <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-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-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-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-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-col :span="24" class="btn">
+              <el-button type="primary" size="mini">取消注册</el-button>
+              <el-button type="primary" size="mini" @click="onSubmit('form')">提交注册</el-button>
+            </el-col>
+          </el-form>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+const { mapActions: mapExpert } = createNamespacedHelpers('expert');
+export default {
+  name: 'expert',
+  props: {},
+  components: {},
+  data: function () {
+    return {
+      form: {},
+      rules: {
+        name: [{ required: true, message: '请输入姓名', trigger: 'blur' }],
+        phone: [
+          { required: true, message: '请输入手机号', trigger: 'blur' },
+          { max: 11, message: '不得超过11' },
+        ],
+        passwd: [{ required: true, message: '请输入登录密码', trigger: 'blur' }],
+        email: [{ required: true, message: '请输入电子邮箱', trigger: 'blur' }],
+        addr: [{ required: true, message: '请输入联系地址', trigger: 'blur' }],
+        office_phone: [{ required: true, message: '请输入办公电话', trigger: 'blur' }],
+        profession: [{ required: true, message: '请输入所属行业', trigger: 'blur' }],
+      },
+    };
+  },
+  created() {},
+  methods: {
+    ...mapExpert(['create']),
+    onSubmit(formName) {
+      this.$refs[formName].validate(async (valid) => {
+        if (valid) {
+          let data = this.form;
+          data.status = '0';
+          let res = await this.create(data);
+          if (this.$checkRes(res)) {
+            this.$message({
+              message: '账号注册成功',
+              type: 'success',
+            });
+            this.$router.push({ path: '/service/index' });
+          }
+        } else {
+          console.log('error submit!!');
+          return false;
+        }
+      });
+    },
+  },
+  computed: {
+    ...mapState(['user']),
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  watch: {
+    test: {
+      deep: true,
+      immediate: true,
+      handler(val) {},
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.main {
+  .one {
+    .title {
+      font-size: 16px;
+      font-weight: bold;
+      border-bottom: 1px dashed #ccc;
+      padding: 0 0 10px 0;
+      margin: 0 0 10px 0;
+    }
+    .info {
+      border: 1px solid #ccc;
+      border-radius: 5px;
+      padding: 10px;
+      margin: 0 0 10px 0;
+    }
+    .btn {
+      text-align: center;
+      margin: 0 0 10px 0;
+    }
+  }
+}
+</style>

+ 36 - 0
src/views/service/register/mechanism.vue

@@ -0,0 +1,36 @@
+<template>
+  <div id="mechanism">
+    <el-row>
+      <el-col :span="24" class="main"> test </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'mechanism',
+  props: {},
+  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></style>