Преглед изворни кода

修改验证码,更改调用公共仓库内的命名

lrf402788946 пре 5 година
родитељ
комит
cb07e27ec2

+ 23 - 5
src/store.js

@@ -34,6 +34,12 @@ const api = {
   corpLogin: '/api/corp/login',
   corpLogin: '/api/corp/login',
   dictionary: '/api/code/{type}/items', //type === xzqh:query:level(1/2);parent(无/code)
   dictionary: '/api/code/{type}/items', //type === xzqh:query:level(1/2);parent(无/code)
   corpReg: '/api/corp/corps', //query:type:0=>用户名+密码 account(学号@学校id)+passwd;1-微信(wxtoken)
   corpReg: '/api/corp/corps', //query:type:0=>用户名+密码 account(学号@学校id)+passwd;1-微信(wxtoken)
+  //验证码
+  verify: '/adminapi/verify/verify',
+  checkVerify: '/adminapi/verify/check_verify',
+  //短信验证码
+  message: '/adminapi/verify/sendmessage',
+  checkMessage: '/adminapi/verify/check_message',
 };
 };
 
 
 export default new Vuex.Store({
 export default new Vuex.Store({
@@ -346,15 +352,27 @@ export default new Vuex.Store({
       let result = await this.$axios.$post(api.corpReg, data, {}, { schid: schid, schname: schname });
       let result = await this.$axios.$post(api.corpReg, data, {}, { schid: schid, schname: schname });
       return result;
       return result;
     },
     },
-    //没用
-    async schCorps({ state, commit }) {
-      let result = await this.$axios.$get(api.corpReg, { schid: 999991 });
-      return result;
-    },
     async corpLogin({ state }, { type, data }) {
     async corpLogin({ state }, { type, data }) {
       let result = this.$axios.$post(api.corpLogin, data, {}, { type: type });
       let result = this.$axios.$post(api.corpLogin, data, {}, { type: type });
       return result;
       return result;
     },
     },
+    //验证码
+    async verifyOperation({ state }, { type, data }) {
+      let result;
+      if (type === 'verify') {
+        result = await this.$axios.$get(api.verify, {}, data);
+      }
+      if (type === 'checkVerify') {
+        result = await this.$axios.$post(api.checkVerify, data);
+      }
+      if (type === 'message') {
+        result = await this.$axios.$get(api.message, {}, data);
+      }
+      if (type === 'checkMessage') {
+        result = await this.$axios.$post(api.checkMessage, data);
+      }
+      return result;
+    },
   },
   },
 });
 });
 
 

+ 1 - 1
src/views/home/index.vue

@@ -119,7 +119,7 @@
 </template>
 </template>
 
 
 <script>
 <script>
-import resumes from '@resume/src/views/resume.vue';
+import resumes from '@publics/src/views/resume.vue';
 import { mapActions, mapState } from 'vuex';
 import { mapActions, mapState } from 'vuex';
 export default {
 export default {
   name: 'home',
   name: 'home',

+ 22 - 4
src/views/login/login.vue

@@ -29,9 +29,12 @@
                     <el-input placeholder="密码" prefix-icon="el-icon-lock" v-model="form.passwd" show-password></el-input>
                     <el-input placeholder="密码" prefix-icon="el-icon-lock" v-model="form.passwd" show-password></el-input>
                   </el-form-item>
                   </el-form-item>
                   <el-form-item prop="mobile" class="firmRightName">
                   <el-form-item prop="mobile" class="firmRightName">
-                    <el-col :span="16"> <el-input placeholder="验证码" prefix-icon="el-icon-lock" v-model="input3"></el-input></el-col>
+                    <el-col :span="16">
+                      <el-input placeholder="验证码" prefix-icon="el-icon-lock" v-model="verifyForm.code" @keyup.enter="toSubmit"></el-input>
+                    </el-col>
                     <el-col :span="8" class="firmRightImg">
                     <el-col :span="8" class="firmRightImg">
-                      <img :src="pic3" />
+                      <!-- <img :src="pic3" /> -->
+                      <verify v-model="verifyForm.code_id" ref="verifyPic"></verify>
                     </el-col>
                     </el-col>
                   </el-form-item>
                   </el-form-item>
                 </el-form>
                 </el-form>
@@ -99,6 +102,7 @@
 
 
 <script>
 <script>
 import qrcode from '@/components/qrcode.vue';
 import qrcode from '@/components/qrcode.vue';
+import verify from '@publics/src/components/verify.vue';
 import { mapActions, mapState } from 'vuex';
 import { mapActions, mapState } from 'vuex';
 const jwt = require('jsonwebtoken');
 const jwt = require('jsonwebtoken');
 
 
@@ -107,6 +111,7 @@ export default {
   props: {},
   props: {},
   components: {
   components: {
     qrcode,
     qrcode,
+    verify,
   },
   },
   data: () => ({
   data: () => ({
     pic: require('@/assets/head.jpg'),
     pic: require('@/assets/head.jpg'),
@@ -119,21 +124,32 @@ export default {
     checked: false,
     checked: false,
     form: {},
     form: {},
     formLabelWidth: '60px',
     formLabelWidth: '60px',
+    verifyForm: {},
   }),
   }),
   created() {
   created() {
     this.initQrcode();
     this.initQrcode();
   },
   },
   computed: {},
   computed: {},
   methods: {
   methods: {
-    ...mapActions(['corpLogin', 'createConnection', 'getWxtoken']),
+    ...mapActions(['corpLogin', 'createConnection', 'getWxtoken', 'verifyOperation']),
     toSubmit() {
     toSubmit() {
       this.$refs.form.validate(valid => {
       this.$refs.form.validate(valid => {
         if (valid) {
         if (valid) {
-          this.submit();
+          // this.submit();
+          this.checkVerify();
         }
         }
         return false;
         return false;
       });
       });
     },
     },
+    async checkVerify() {
+      let result = await this.verifyOperation({ type: 'checkVerify', data: this.verifyForm });
+      if (`${result.errcode}` === '0') {
+        this.submit();
+      } else {
+        this.$message.error('验证码错误');
+        this.$refs.verifyPic.toCreated();
+      }
+    },
     async submit(wxtoken) {
     async submit(wxtoken) {
       let data = JSON.parse(JSON.stringify(this.form));
       let data = JSON.parse(JSON.stringify(this.form));
       if (this.loginType !== 0) {
       if (this.loginType !== 0) {
@@ -149,6 +165,8 @@ export default {
         let info = jwt.decode(result.data);
         let info = jwt.decode(result.data);
         sessionStorage.setItem('user', JSON.stringify(info));
         sessionStorage.setItem('user', JSON.stringify(info));
         this.$router.push({ path: '/' });
         this.$router.push({ path: '/' });
+      } else {
+        this.$refs.verifyPic.toCreated();
       }
       }
     },
     },
     async initQrcode() {
     async initQrcode() {

+ 1 - 1
src/views/manager/deliver/list.vue

@@ -72,7 +72,7 @@
 </template>
 </template>
 
 
 <script>
 <script>
-import resumes from '@resume/src/views/resumeCor.vue';
+import resumes from '@publics/src/views/resumeCor.vue';
 export default {
 export default {
   name: 'list',
   name: 'list',
   props: {
   props: {

+ 1 - 1
src/views/manager/resume/index.vue

@@ -21,7 +21,7 @@
 </template>
 </template>
 
 
 <script>
 <script>
-import resumes from '@resume/src/views/resume.vue';
+import resumes from '@publics/src/views/resume.vue';
 import list from './list.vue';
 import list from './list.vue';
 import listTab from '@/layout/list-tab.vue';
 import listTab from '@/layout/list-tab.vue';
 import { mapActions, mapState } from 'vuex';
 import { mapActions, mapState } from 'vuex';

+ 27 - 8
src/views/registerEnt/basic.vue

@@ -22,14 +22,24 @@
             <el-input v-model="form.passwd" type="password" placeholder="请输入登录密码" show-password></el-input>
             <el-input v-model="form.passwd" type="password" placeholder="请输入登录密码" show-password></el-input>
           </el-form-item>
           </el-form-item>
           <el-form-item label="图形验证码">
           <el-form-item label="图形验证码">
-            <el-input v-model="form.code" type="password" placeholder="图形验证码" style="width:24%;"></el-input>
-            <el-image style="width: 100px; height: 35px;top:12px;left:5px;" :src="url"></el-image>
+            <el-row>
+              <el-col :span="6">
+                <el-input v-model="verifyForm.code" placeholder="图形验证码"></el-input>
+              </el-col>
+              <el-col :span="8">
+                <verify v-model="verifyForm.code_id" ref="verifyPic"></verify>
+              </el-col>
+            </el-row>
           </el-form-item>
           </el-form-item>
           <el-form-item label="手机验证码">
           <el-form-item label="手机验证码">
-            <el-input v-model="form.tel_code" type="password" placeholder="请输入手机验证码" style="width:24%;"></el-input>
-            <el-button type="success" style="width: 86px;height: 33px;padding: 0;margin: 0 0 0 5px;">
-              <el-link target="_blank" :underline="false" style="color:#fff;">获取验证码</el-link>
-            </el-button>
+            <el-row>
+              <el-col :span="6">
+                <el-input v-model="verifyForm.mobile_code" placeholder="请输入手机验证码"></el-input>
+              </el-col>
+              <el-col :span="10">
+                <verify-message :mobile="form.mobile"></verify-message>
+              </el-col>
+            </el-row>
           </el-form-item>
           </el-form-item>
         </el-form>
         </el-form>
         <h4 class="form-title">基本资料<span class="text-red">*</span></h4>
         <h4 class="form-title">基本资料<span class="text-red">*</span></h4>
@@ -44,6 +54,9 @@
               <el-option v-for="item in cityList" :key="item.code" :label="item.name" :value="item.name"> </el-option>
               <el-option v-for="item in cityList" :key="item.code" :label="item.name" :value="item.name"> </el-option>
             </el-select>
             </el-select>
           </el-form-item>
           </el-form-item>
+          <el-form-item label="企业主页">
+            <el-input v-model="form.info.url" placeholder="请输入企业主页"></el-input>
+          </el-form-item>
           <el-form-item label="企业地址">
           <el-form-item label="企业地址">
             <el-input v-model="form.info.address" placeholder="必填,请输入企业地址"></el-input>
             <el-input v-model="form.info.address" placeholder="必填,请输入企业地址"></el-input>
           </el-form-item>
           </el-form-item>
@@ -77,11 +90,16 @@
 </template>
 </template>
 
 
 <script>
 <script>
+import verify from '@publics/src/components/verify.vue'; //@commom/src/components/verify.vue
+import verifyMessage from '@publics/src/components/verify-message.vue';
 import { mapActions, mapState } from 'vuex';
 import { mapActions, mapState } from 'vuex';
 export default {
 export default {
   name: 'basic',
   name: 'basic',
   props: {},
   props: {},
-  components: {},
+  components: {
+    verify,
+    verifyMessage,
+  },
   data: () => ({
   data: () => ({
     form: {
     form: {
       info: {},
       info: {},
@@ -92,6 +110,7 @@ export default {
     cityList: [],
     cityList: [],
     scaleList: [],
     scaleList: [],
     schnameList: [],
     schnameList: [],
+    verifyForm: {},
   }),
   }),
   created() {
   created() {
     this.otherList();
     this.otherList();
@@ -100,7 +119,7 @@ export default {
   methods: {
   methods: {
     ...mapActions(['dicOperation']),
     ...mapActions(['dicOperation']),
     next() {
     next() {
-      this.$emit('next', this.form);
+      this.$emit('next', JSON.parse(JSON.stringify({ ...this.form, verifyForm: this.verifyForm })));
     },
     },
     async otherList() {
     async otherList() {
       let result = await this.dicOperation('dwgm');
       let result = await this.dicOperation('dwgm');

+ 28 - 9
src/views/registerEnt/register.vue

@@ -13,8 +13,8 @@
                 <el-step title="步骤二:填写认证资料"> </el-step>
                 <el-step title="步骤二:填写认证资料"> </el-step>
               </el-steps>
               </el-steps>
             </el-col>
             </el-col>
-            <basic v-if="active === 1" @next="next"></basic>
-            <business v-if="active === 2" @onSubmit="onSubmit" @back="back"></business>
+            <basic v-show="active === 1" @next="next" ref="basic"></basic>
+            <business v-show="active === 2" @onSubmit="onSubmit" @back="back"></business>
           </el-col>
           </el-col>
           <el-col :span="6" class="mainRight">
           <el-col :span="6" class="mainRight">
             <span style="font-size: 18px;">常见问题</span>
             <span style="font-size: 18px;">常见问题</span>
@@ -62,19 +62,38 @@ export default {
     active: 1,
     active: 1,
     form: {},
     form: {},
     sch: {},
     sch: {},
+    verifyForm: {},
   }),
   }),
-  async created() {
-    await this.schCorps();
-  },
+  async created() {},
   computed: {},
   computed: {},
   methods: {
   methods: {
-    ...mapActions(['corpReg', 'schCorps']),
+    ...mapActions(['corpReg', 'verifyOperation']),
 
 
-    next(data) {
-      if (this.active++ > 2) this.active = 0;
-      let { sch, ...info } = data;
+    async next(data) {
+      let { sch, verifyForm, ...info } = data;
       this.$set(this, `sch`, sch);
       this.$set(this, `sch`, sch);
+      this.$set(this, `verifyForm`, verifyForm);
       this.$set(this, `form`, data);
       this.$set(this, `form`, data);
+      if (!(await this.checkVerify())) {
+        this.$set(this, `active`, 1);
+        return;
+      }
+      if (this.active++ > 2) this.active = 0;
+    },
+    async checkVerify() {
+      let result;
+      result = await this.verifyOperation({ type: 'checkVerify', data: { code: this.verifyForm.code, code_id: this.verifyForm.code_id } });
+      if (`${result.errcode}` !== '0') {
+        this.$message.error('验证码错误');
+        this.$refs.basic.$refs.verifyPic.toCreated();
+        return false;
+      }
+      result = await this.verifyOperation({ type: 'checkMessage', data: { mobile: this.form.mobile, code: this.verifyForm.mobile_code } });
+      if (`${result.errcode}` !== '0') {
+        this.$message.error('手机验证码错误');
+        return false;
+      }
+      return true;
     },
     },
     back() {
     back() {
       this.active = 1;
       this.active = 1;

+ 6 - 2
vue.config.js

@@ -1,5 +1,5 @@
 const path = require('path');
 const path = require('path');
-const resumeSrc = path.resolve(__dirname, '../web-common');
+const publics = path.resolve(__dirname, '../web-common');
 module.exports = {
 module.exports = {
   publicPath: process.env.NODE_ENV === 'development' ? '/' : process.env.VUE_APP_ROUTER,
   publicPath: process.env.NODE_ENV === 'development' ? '/' : process.env.VUE_APP_ROUTER,
   configureWebpack: config => {
   configureWebpack: config => {
@@ -10,7 +10,7 @@ module.exports = {
           '@': path.resolve(__dirname, './src'),
           '@': path.resolve(__dirname, './src'),
           '@c': path.resolve(__dirname, './src/components'),
           '@c': path.resolve(__dirname, './src/components'),
           '@a': path.resolve(__dirname, './src/assets'),
           '@a': path.resolve(__dirname, './src/assets'),
-          '@resume': resumeSrc,
+          '@publics': publics,
         },
         },
       },
       },
     });
     });
@@ -35,6 +35,10 @@ module.exports = {
         target: 'http://smart.cc-lotus.info',
         target: 'http://smart.cc-lotus.info',
         ws: true,
         ws: true,
       },
       },
+      '/adminapi': {
+        target: 'http://10.16.5.15:8105',
+        ws: true,
+      },
     },
     },
   },
   },
 };
 };