Selaa lähdekoodia

Merge branch 'master' of http://git.cc-lotus.info/service-platform/web-test

wuhongyu 5 vuotta sitten
vanhempi
commit
f7db5db30a

+ 76 - 35
src/layout/login/loginMain.vue

@@ -20,116 +20,116 @@
             </el-tab-pane>
             <el-tab-pane label="注册" name="second">
               <el-col :span="24">
-                <el-form ref="forms" :model="forms" label-width="120px">
-                  <el-form-item label="用户名称">
+                <el-form ref="forms" :model="forms" :rules="rules" label-width="120px">
+                  <el-form-item label="用户名称" prop="name">
                     <el-input v-model="forms.name" placeholder="请输入用户名称"></el-input>
                   </el-form-item>
-                  <el-form-item label="手机号">
+                  <el-form-item label="手机号" prop="phone">
                     <el-input v-model="forms.phone" placeholder="请输入手机号" :minlength="11" :maxlength="11"></el-input>
                   </el-form-item>
-                  <el-form-item label="登录密码">
+                  <el-form-item label="登录密码" prop="password">
                     <el-input v-model="forms.password" placeholder="请输入登录密码" show-password></el-input>
                   </el-form-item>
-                  <el-form-item label="身份证号">
+                  <el-form-item label="身份证号" prop="cardnumber">
                     <el-input v-model="forms.cardnumber" placeholder="请输入身份证号" :minlength="18" :maxlength="18"></el-input>
                   </el-form-item>
-                  <el-form-item label="邮箱">
+                  <el-form-item label="邮箱" prop="email">
                     <el-input v-model="forms.email" placeholder="请输入邮箱"></el-input>
                   </el-form-item>
-                  <el-form-item label="地址">
+                  <el-form-item label="地址" prop="addr">
                     <el-input v-model="forms.addr" placeholder="请输入地址"></el-input>
                   </el-form-item>
                   <el-form-item label="头像图片" prop="img_path">
                     <upload :limit="1" :data="forms.img_path" type="img_path" :url="'/files/imgpath/upload'" @upload="uploadSuccess"></upload>
                   </el-form-item>
-                  <el-form-item label="用户类别">
+                  <el-form-item label="用户类别" prop="role">
                     <el-radio-group v-model="forms.role">
                       <el-radio label="2">个人</el-radio>
                       <el-radio label="3">企业管理员</el-radio>
                       <el-radio label="6">专家</el-radio>
                     </el-radio-group>
                   </el-form-item>
-                  <el-form-item label="身份证正面" v-if="forms.role == '2' || forms.role == '3'">
+                  <el-form-item label="身份证正面" v-if="forms.role == '2' || forms.role == '3'" prop="cardfile_a">
                     <upload :limit="1" :data="forms.cardfile_a" type="cardfile_a" :url="'/files/cardfilea/upload'" @upload="uploadSuccess"></upload>
                   </el-form-item>
-                  <el-form-item label="身份证背面" v-if="forms.role == '2' || forms.role == '3'">
+                  <el-form-item label="身份证背面" v-if="forms.role == '2' || forms.role == '3'" prop="cardfile_b">
                     <upload :limit="1" :data="forms.cardfile_b" type="cardfile_b" :url="'/files/cardfileb/upload'" @upload="uploadSuccess"></upload>
                   </el-form-item>
-                  <el-form-item label="组织机构图片" v-if="forms.role == '3'">
+                  <el-form-item label="组织机构图片" v-if="forms.role == '3'" prop="img_qy">
                     <upload :limit="1" :data="forms.img_qy" type="img_qy" :url="'/files/imgqy/upload'" @upload="uploadSuccess"></upload>
                   </el-form-item>
                   <template v-if="forms.role == '3'">
-                    <el-form-item label="机构类型">
+                    <el-form-item label="机构类型" prop="institution_type">
                       <el-input v-model="forms.institution_type" placeholder="请输入机构类型"></el-input>
                     </el-form-item>
-                    <el-form-item label="机构名称">
+                    <el-form-item label="机构名称" prop="institution_name">
                       <el-input v-model="forms.institution_name" placeholder="请输入机构名称"></el-input>
                     </el-form-item>
-                    <el-form-item label="机构代码">
+                    <el-form-item label="机构代码" prop="institution_code">
                       <el-input v-model="forms.institution_code" placeholder="请输入机构代码"></el-input>
                     </el-form-item>
-                    <el-form-item label="机构性质">
+                    <el-form-item label="机构性质" prop="institution_nature">
                       <el-input v-model="forms.institution_nature" placeholder="请输入机构性质"></el-input>
                     </el-form-item>
                   </template>
-                  <el-form-item label="办公电话" v-if="forms.role == '2' || forms.role == '3'">
+                  <el-form-item label="办公电话" v-if="forms.role == '2' || forms.role == '3'" prop="office_phone">
                     <el-input v-model="forms.office_phone" placeholder="请输入办公电话"></el-input>
                   </el-form-item>
-                  <el-form-item label="所属行业" v-if="forms.role == '2' || forms.role == '3'">
+                  <el-form-item label="所属行业" v-if="forms.role == '2' || forms.role == '3'" prop="profession">
                     <el-input v-model="forms.profession" placeholder="请输入所属行业"></el-input>
                   </el-form-item>
-                  <el-form-item label="性别" v-if="forms.role == '6'">
+                  <el-form-item label="性别" v-if="forms.role == '6'" prop="gender">
                     <el-select v-model="forms.gender" placeholder="请选择民性别">
                       <el-option v-for="(item, index) in gender_list" :key="index" :label="item.name" :value="item.name"></el-option>
                     </el-select>
                   </el-form-item>
-                  <el-form-item label="出生日期" v-if="forms.role == '6'">
+                  <el-form-item label="出生日期" v-if="forms.role == '6'" prop="birthday">
                     <el-date-picker v-model="forms.birthday" type="date" placeholder="选择日期" value-format="yyyy-MM-dd"> </el-date-picker>
                   </el-form-item>
-                  <el-form-item label="职称级别" v-if="forms.role == '6'">
+                  <el-form-item label="职称级别" v-if="forms.role == '6'" prop="level">
                     <el-input v-model="forms.level" placeholder="请输入职称级别"></el-input>
                   </el-form-item>
-                  <el-form-item label="职称" v-if="forms.role == '6'">
+                  <el-form-item label="职称" v-if="forms.role == '6'" prop="levelname">
                     <el-input v-model="forms.levelname" placeholder="请输入职称"></el-input>
                   </el-form-item>
-                  <el-form-item label="职务" v-if="forms.role == '6'">
+                  <el-form-item label="职务" v-if="forms.role == '6'" prop="position">
                     <el-input v-model="forms.position" placeholder="请输入职务"></el-input>
                   </el-form-item>
-                  <el-form-item label="院校" v-if="forms.role == '6'">
+                  <el-form-item label="院校" v-if="forms.role == '6'" prop="school">
                     <el-input v-model="forms.school" placeholder="请输入院校"></el-input>
                   </el-form-item>
-                  <el-form-item label="学历" v-if="forms.role == '6'">
+                  <el-form-item label="学历" v-if="forms.role == '6'" prop="xl">
                     <el-select v-model="forms.xl" placeholder="请选择学历要求">
                       <el-option v-for="(item, index) in edu_list" :key="index" :label="item.name" :value="item.name"></el-option>
                     </el-select>
                   </el-form-item>
-                  <el-form-item label="学位" v-if="forms.role == '6'">
+                  <el-form-item label="学位" v-if="forms.role == '6'" prop="xw">
                     <el-select v-model="forms.xw" placeholder="请选择学位">
                       <el-option v-for="(item, index) in degree_list" :key="index" :label="item.name" :value="item.name"></el-option>
                     </el-select>
                   </el-form-item>
-                  <el-form-item label="专业" v-if="forms.role == '6'">
+                  <el-form-item label="专业" v-if="forms.role == '6'" prop="major">
                     <el-input v-model="forms.major" placeholder="请输入专业"></el-input>
                   </el-form-item>
-                  <el-form-item label="从事专业" v-if="forms.role == '6'">
+                  <el-form-item label="从事专业" v-if="forms.role == '6'" prop="professional">
                     <el-input v-model="forms.professional" placeholder="请输入从事专业"></el-input>
                   </el-form-item>
-                  <el-form-item label="个人简历" v-if="forms.role == '2' || forms.role == '6'">
+                  <el-form-item label="个人简历" v-if="forms.role == '2' || forms.role == '6'" prop="resume">
                     <el-input type="textarea" v-model="forms.resume" placeholder="请输入个人简介"></el-input>
                   </el-form-item>
-                  <el-form-item label="项目" v-if="forms.role == '6'">
+                  <el-form-item label="项目" v-if="forms.role == '6'" prop="project">
                     <el-input v-model="forms.project" placeholder="请输入项目"></el-input>
                   </el-form-item>
-                  <el-form-item label="学术成就" v-if="forms.role == '6'">
+                  <el-form-item label="学术成就" v-if="forms.role == '6'" prop="academic">
                     <el-input v-model="forms.academic" placeholder="请输入学术成就"></el-input>
                   </el-form-item>
-                  <el-form-item label="论文" v-if="forms.role == '6'">
+                  <el-form-item label="论文" v-if="forms.role == '6'" prop="paper">
                     <el-input v-model="forms.paper" placeholder="请输入论文"></el-input>
                   </el-form-item>
-                  <el-form-item label="备注" v-if="forms.role == '6'">
+                  <el-form-item label="备注" v-if="forms.role == '6'" prop="remark">
                     <el-input v-model="forms.remark" placeholder="请输入备注"></el-input>
                   </el-form-item>
-                  <el-col :span="24" class="loginSubmit"><el-button type="primary" @click="registerSubmit">注册</el-button></el-col>
+                  <el-col :span="24" class="loginSubmit"><el-button type="primary" @click="registerSubmit('forms')">注册</el-button></el-col>
                 </el-form>
               </el-col>
             </el-tab-pane>
@@ -193,6 +193,40 @@ export default {
         name: '其他',
       },
     ],
+    rules: {
+      name: [{ required: true, message: '请输入用户名称', trigger: 'blur' }],
+      phone: [{ required: true, message: '请输入手机号', trigger: 'blur' }],
+      password: [{ required: true, message: '请输入密码', trigger: 'blur' }],
+      cardnumber: [{ required: true, message: '请输入身份证号', trigger: 'blur' }],
+      email: [{ required: true, message: '请输入邮箱', trigger: 'blur' }],
+      addr: [{ required: true, message: '请输入地址', trigger: 'blur' }],
+      img_path: [{ required: true, message: '请输入头像', trigger: 'blur' }],
+      role: [{ required: true, message: '请输入用户类型', trigger: 'blur' }],
+      cardfile_a: [{ required: false, message: '请输入身份证正面', trigger: 'blur' }],
+      cardfile_b: [{ required: false, message: '请输入身份证反面', trigger: 'blur' }],
+      img_qy: [{ required: false, message: '请输入组织机构图片', trigger: 'blur' }],
+      institution_type: [{ required: false, message: '请输入机构类型', trigger: 'blur' }],
+      institution_name: [{ required: false, message: '请输入机构名称', trigger: 'blur' }],
+      institution_code: [{ required: false, message: '请输入机构代码', trigger: 'blur' }],
+      institution_nature: [{ required: false, message: '请输入机构性质', trigger: 'blur' }],
+      office_phone: [{ required: false, message: '请输入办公电话', trigger: 'blur' }],
+      profession: [{ required: false, message: '请输入从事专业', trigger: 'blur' }],
+      gender: [{ required: false, message: '请输入性别', trigger: 'blur' }],
+      birthday: [{ required: false, message: '请输入出生日期', trigger: 'blur' }],
+      level: [{ required: false, message: '请输入职称级别', trigger: 'blur' }],
+      levelname: [{ required: false, message: '请输入职称级别', trigger: 'blur' }],
+      position: [{ required: false, message: '请输入职务', trigger: 'blur' }],
+      school: [{ required: false, message: '请输入院校', trigger: 'blur' }],
+      xl: [{ required: false, message: '请输入学历', trigger: 'blur' }],
+      xw: [{ required: false, message: '请输入学位', trigger: 'blur' }],
+      major: [{ required: false, message: '请输入专业', trigger: 'blur' }],
+      professional: [{ required: false, message: '请输入从事专业', trigger: 'blur' }],
+      resume: [{ required: false, message: '请输入个人简介', trigger: 'blur' }],
+      project: [{ required: false, message: '请输入项目', trigger: 'blur' }],
+      academic: [{ required: false, message: '请输入学术成就', trigger: 'blur' }],
+      paper: [{ required: false, message: '请输入论文', trigger: 'blur' }],
+      remark: [{ required: false, message: '请输入备注', trigger: 'blur' }],
+    },
   }),
   created() {},
   computed: {},
@@ -203,8 +237,15 @@ export default {
     loginSubmit() {
       this.$emit('submitDate', this.form);
     },
-    registerSubmit() {
-      this.$emit('submitDates', { data: this.forms, id: this.forms.id });
+    registerSubmit(formName) {
+      this.$refs[formName].validate(valid => {
+        if (valid) {
+          this.$emit('submitDates', { data: this.forms, id: this.forms.id });
+        } else {
+          console.log('error submit!!');
+          return false;
+        }
+      });
     },
     uploadSuccess({ type, data }) {
       this.$set(this.forms, `${type}`, data.uri);

+ 2 - 0
src/store/index.js

@@ -25,6 +25,7 @@ import maarkettype from '@common/store/market/markettype';
 import comment from '@common/store/live/comment';
 import tranaudit from '@common/store/market/tranaudit';
 import expertsuser from '@common/store/market/exportuser';
+import users from './user';
 Vue.use(Vuex);
 
 export default new Vuex.Store({
@@ -55,5 +56,6 @@ export default new Vuex.Store({
     comment,
     tranaudit,
     expertsuser,
+    users,
   },
 });

+ 39 - 0
src/store/user.js

@@ -0,0 +1,39 @@
+import Vue from 'vue';
+import Vuex from 'vuex';
+import _ from 'lodash';
+Vue.use(Vuex);
+const api = {
+  interface: `/api/market/user`,
+};
+const state = () => ({});
+const mutations = {};
+
+const actions = {
+  async query({ commit }, { skip = 0, limit = 10, ...info } = {}) {
+    const res = await this.$axios.$get(api.interface, { skip, limit, ...info });
+    return res;
+  },
+  async create({ commit }, payload) {
+    const res = await this.$axios.$post(`${api.interface}`, payload);
+    return res;
+  },
+  async fetch({ commit }, payload) {
+    const res = await this.$axios.$get(`${api.interface}/${payload}`);
+    return res;
+  },
+  async update({ commit }, { id, ...info } = {}) {
+    const res = await this.$axios.$post(`${api.interface}/${id}`, { ...info });
+    return res;
+  },
+  async delete({ commit }, payload) {
+    const res = await this.$axios.$delete(`${api.interface}/${payload}`);
+    return res;
+  },
+};
+
+export default {
+  namespaced: true,
+  state,
+  mutations,
+  actions,
+};

+ 2 - 2
src/views/dynamic/parts/top-right.vue

@@ -37,9 +37,9 @@ export default {
       let rooms = await this.countRoom();
       if (this.$checkRes(res)) {
         let arr = res.data.filter(f => f.status != '3');
-        let taking = rooms.errcode == 0 ? rooms.total : 0;
         let s1 = res.data.filter(f => f.status == '1'); //达成意向
         let s2 = res.data.filter(f => f.status == '2'); //对接完成
+        let s3 = res.data.filter(f => f.status == '0'); //正在洽谈
         this.myChart = echarts.init(document.getElementById('chart'));
         const option = {
           title: { text: '交易情况', left: 'center' },
@@ -61,7 +61,7 @@ export default {
               },
               type: 'bar',
               data: [
-                { name: '正在洽谈', value: taking, itemStyle: { color: '#7cb5ec' } },
+                { name: '正在洽谈', value: s3.length, itemStyle: { color: '#7cb5ec' } },
                 { name: '达成意向', value: s1.length, itemStyle: { color: '#ffa94b' } },
                 { name: '对接完成', value: s2.length, itemStyle: { color: '#346da4' } },
               ],

+ 0 - 102
src/views/dynamic/parts/userTwo copy.vue

@@ -1,102 +0,0 @@
-<template>
-  <div id="userTwo">
-    <el-row>
-      <el-col :span="24" class="userTwo">
-        <el-col :span="12" class="left">
-          <el-col :span="24" class="one">
-            <el-image style="width:166px;height:166px;" :src="dynamic1"></el-image>
-            <p>企业注册数量</p>
-            <p>{{ detail.num1 }}</p>
-          </el-col>
-          <el-col :span="24" class="one two">
-            <el-image style="width:166px;height:166px;" :src="dynamic2"></el-image>
-            <p>个人注册数量</p>
-            <p>{{ detail.num2 }}</p>
-          </el-col>
-        </el-col>
-        <el-col :span="12" class="left right">
-          <el-col :span="24" class="one">
-            <el-image style="width:166px;height:166px;" :src="dynamic3"></el-image>
-            <p>在线人数</p>
-            <p>{{ detail.num3 }}</p>
-          </el-col>
-          <el-col :span="24" class="one two">
-            <el-image style="width:166px;height:166px;" :src="dynamic4"></el-image>
-            <p>企业项目数量</p>
-            <p>{{ detail.num4 }}</p>
-          </el-col>
-        </el-col>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-export default {
-  name: 'userTwo',
-  props: {},
-  components: {},
-  data: () => ({
-    dynamic1: require('@/assets/dynamic1.png'),
-    dynamic2: require('@/assets/dynamic2.png'),
-    dynamic3: require('@/assets/dynamic3.png'),
-    dynamic4: require('@/assets/dynamic4.png'),
-    detail: {
-      num1: 1,
-      num2: 2,
-      num3: 3,
-      num4: 4,
-    },
-  }),
-  created() {},
-  computed: {},
-  methods: {},
-};
-</script>
-
-<style lang="less" scoped>
-.userTwo {
-  float: left;
-  width: 100%;
-}
-.userTwo .left {
-  width: 50%;
-}
-.userTwo .left .one {
-  float: left;
-  width: 212px;
-  height: 212px;
-  overflow: hidden;
-  border-radius: 10px;
-  box-shadow: 0 0 5px #ccc;
-  text-align: center;
-  padding: 20px 0;
-  position: relative;
-  margin: 40px 0 0 15px;
-}
-
-.userTwo .left .one p:nth-child(2) {
-  position: absolute;
-  top: 80px;
-  font-size: 14px;
-  color: #346da4;
-  font-weight: bold;
-  left: 60px;
-  text-align: center;
-  width: 86px;
-}
-.userTwo .left .one p:nth-child(3) {
-  position: absolute;
-  top: 110px;
-  left: 60px;
-  font-size: 14px;
-  color: #346da4;
-  font-weight: bold;
-  text-align: center;
-  width: 86px;
-}
-.userTwo .right {
-  width: 50%;
-  margin: 110px 0 0 0;
-}
-</style>

+ 35 - 5
src/views/dynamic/parts/userTwo.vue

@@ -22,13 +22,13 @@
         <el-col :span="12" class="right">
           <el-col class="box" :span="20" style="margin:50px 10px 10px 15px;">
             <el-col :span="24" class="three one">
-              <p>在线人数</p>
+              <p>专家注册数量</p>
               <p>{{ detail.num3 }}</p>
             </el-col>
           </el-col>
           <el-col class="box" :span="20">
             <el-col :span="24" class="four one">
-              <p>企业项目数量</p>
+              <p>发布需求数量</p>
               <p>{{ detail.num4 }}</p>
             </el-col>
           </el-col>
@@ -39,6 +39,10 @@
 </template>
 
 <script>
+import { mapState, mapActions, createNamespacedHelpers } from 'vuex';
+const { mapActions: users } = createNamespacedHelpers('users');
+const { mapActions: expertsuser } = createNamespacedHelpers('expertsuser');
+const { mapActions: marketproduct } = createNamespacedHelpers('marketproduct');
 export default {
   name: 'userTwo',
   props: {},
@@ -55,9 +59,35 @@ export default {
       num4: 4,
     },
   }),
-  created() {},
-  computed: {},
-  methods: {},
+  created() {
+    this.searchInfo();
+  },
+  methods: {
+    ...users({ userQuery: 'query' }),
+    ...expertsuser({ expertsuserQurty: 'query' }),
+    ...marketproduct({ marketproductQuery: 'query' }),
+    async searchInfo({} = {}) {
+      // 个人,企业
+      let res = await this.userQuery();
+      let s1 = res.data.filter(f => f.role == '2');
+      let s2 = res.data.filter(f => f.role == '3');
+      // 专家
+      let exportNum = await this.expertsuserQurty();
+      // 发布需求
+      let productNum = await this.marketproductQuery();
+      let listData = { num1: s1.length, num2: s2.length, num3: exportNum.data.length, num4: productNum.data.length };
+      this.$set(this, `detail`, listData);
+    },
+  },
+  computed: {
+    ...mapState(['user']),
+    pageTitle() {
+      return `${this.$route.meta.title}`;
+    },
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
 };
 </script>
 

+ 1 - 0
src/views/newlogin.vue

@@ -45,6 +45,7 @@ export default {
         let msg = `注册成功`;
         this.$checkRes(res, msg);
       }
+      window.location.reload();
     },
   },
   computed: {