浏览代码

配合 tnb 开发

reghao 4 年之前
父节点
当前提交
1562e5d742

二进制
public/favicon.png


二进制
public/favicon1.png


+ 14 - 4
src/components/login-form.vue

@@ -25,7 +25,7 @@
     </v-row>
     <v-row justify="center">
       <v-col cols="5">
-        <img :src="verifyImageUrl" alt="验证码" title="点击刷新" style="cursor:pointer;" @click="getVerifyImage">
+        <img :src="captchaUrl" alt="验证码" title="点击刷新" style="cursor:pointer;" @click="getVerifyImage">
       </v-col>
       <v-col cols="5">
         <v-text-field
@@ -54,7 +54,7 @@ export default {
   name: 'LoginFrom',
   data() {
     return {
-      verifyImageUrl: '/api/verifyImage',
+      captchaUrl: '/api/user/account/captcha',
       username: '',
       password: '',
       verifyCode: '',
@@ -79,12 +79,22 @@ export default {
       this.$emit('login', user)
     },
     getVerifyImage() {
-      this.verifyImageUrl = '/api/verifyImage?t=' + new Date().getTime()
+      this.captchaUrl = '/api/user/account/captcha?r=' + this.randomStr(10, 22)
+    },
+    randomStr(min, max) {
+      var returnStr = ''
+      var range = (max ? Math.round(Math.random() * (max - min)) + min : min)
+      var arr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']
+
+      for (var i = 0; i < range; i++) {
+        var index = Math.round(Math.random() * (arr.length - 1))
+        returnStr += arr[index]
+      }
+      return returnStr
     }
   }
 }
 </script>
 
 <style>
-
 </style>

+ 63 - 41
src/components/register-from.vue

@@ -3,11 +3,10 @@
     <v-row justify="center">
       <v-col cols="10">
         <v-text-field
-          v-model="registerUser.mail"
-          placeholder="请输入你的邮箱"
-          label="邮箱"
-          :rules="[() => registerUser.mail != null || '邮箱不能为空']"
-          type="email"
+          v-model="registerUser.username"
+          placeholder="请输入用户名"
+          label="用户名"
+          :rules="[() => registerUser.username != null || '用户名不能为空']"
           clearable
         />
       </v-col>
@@ -15,10 +14,11 @@
     <v-row justify="center">
       <v-col cols="10">
         <v-text-field
-          v-model="registerUser.phone"
-          placeholder="请输入你的手机号(系统原因,此项选填)"
-          label="手机号"
-
+          v-model="registerUser.email"
+          placeholder="请输入邮箱"
+          label="邮箱"
+          :rules="[() => registerUser.email != null || '邮箱不能为空']"
+          type="email"
           clearable
         />
       </v-col>
@@ -26,27 +26,27 @@
     <v-row justify="center">
       <v-col cols="10">
         <v-text-field
-          v-model="registerUser.username"
-          placeholder="昵称"
-          label="昵称"
-          :rules="[() => registerUser.username != null || '昵称不能为空']"
+          v-model="registerUser.password"
+          placeholder="请输入密码"
+          label="密码"
+          :rules="[() => registerUser.password != null || '密码不能为空']"
           clearable
+          type="password"
         />
       </v-col>
     </v-row>
-    <v-row justify="center">
+    <!--    <v-row justify="center">
       <v-col cols="10">
         <v-text-field
-          v-model="registerUser.password"
-          placeholder="密码"
-          label="密码"
-          :rules="[() => registerUser.password != null || '密码不能为空']"
+          v-model="registerUser.mobile"
+          placeholder="请输入你的手机号(系统原因,此项选填)"
+          label="手机号"
+
           clearable
-          type="password"
         />
       </v-col>
-    </v-row>
-    <v-row v-if="this.$store.state.webInfo.openInvitationRegister == 1" justify="center">
+    </v-row>-->
+    <!--    <v-row v-if="this.$store.state.webInfo.openInvitationRegister == 1" justify="center">
       <v-col cols="10">
         <v-text-field
           v-model="registerUser.invitationCode"
@@ -56,17 +56,17 @@
           :rules="[() => registerUser.invitationCode != null || '邀请码不能为空']"
         />
       </v-col>
-    </v-row>
+    </v-row>-->
     <v-row justify="center">
       <v-col cols="5">
-        <img :src="verifyImageUrl" alt="验证码" title="点击刷新" style="cursor:pointer;" @click="getVerifyImage">
+        <img :src="captchaUrl" alt="验证码" title="点击刷新" style="cursor:pointer;" @click="getVerifyImage">
       </v-col>
       <v-col cols="5">
         <v-text-field
-          v-model="registerUser.verifyCode"
+          v-model="registerUser.captcha"
           placeholder="验证码"
           label="验证码"
-          :rules="[() => registerUser.verifyCode != null || '验证码不能为空']"
+          :rules="[() => registerUser.captcha != null || '验证码不能为空']"
           clearable
         />
       </v-col>
@@ -82,47 +82,69 @@ export default {
   name: 'Register',
   data() {
     return {
-      verifyImageUrl: '/api/verifyImage',
+      captchaUrl: '/api/user/account/captcha',
       registerUser: {
-        mail: '',
-        phone: '',
+        regType: 1,
+        username: '',
+        email: '',
         password: '',
-        invitationCode: '',
-        verifyCode: '',
-        username: ''
+        // mobile: '',
+        regVerifyCode: '',
+        captcha: ''
+        // invitationCode: ''
       }
     }
   },
   methods: {
     submitRegister() {
+      console.log('用户注册')
+
       var re = /^(([^()[\]\\.,;:\s@\"]+(\.[^()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
-      if (!re.test(this.registerUser.mail)) {
+      if (!re.test(this.registerUser.email)) {
+        console.log('email 字段不符合要求')
         return
-      }
-      console.log(123456)
-      if (this.registerUser.password === '' || this.registerUser.password.length < 6 || this.registerUser.verifyCode === '' || this.registerUser.username === '') {
+      } else if (this.registerUser.password === '' || this.registerUser.password.length < 6) {
+        console.log('password 字段不符合要求')
+        return
+      } else if (this.registerUser.captcha === '' || this.registerUser.username === '') {
+        console.log('captcha 或 username 字段不符合要求')
         return
       }
-      if (this.$store.state.webInfo.openInvitationRegister === 1 && this.registerUser.invitationCode === '' && this.registerUser.username !== 'admin') {
+
+      if (this.$store.state.webInfo.openInvitationRegister === 1 && this.registerUser.invitationCode === '') {
+        console.log('openInvitationRegister 或 invitationCode 字段不符合要求')
         return
       }
 
-      if (this.registerUser.phone !== '') {
+      /* if (this.registerUser.username !== 'admin') {
+        return
+      }*/
+
+      /* if (this.registerUser.mobile !== '') {
         var myreg = /^[1][3,4,5,7,8][0-9]{9}$/
         if (!myreg.test((this.registerUser.phone))) {
           return
         }
-      }
-      console.log(this.registerUser)
+      }*/
       this.$emit('register', this.registerUser)
     },
     getVerifyImage() {
-      this.verifyImageUrl = '/api/verifyImage?t=' + new Date().getTime()
+      this.captchaUrl = '/api/user/account/captcha?r=' + this.randomStr(10, 22)
+    },
+    randomStr(min, max) {
+      var returnStr = ''
+      var range = (max ? Math.round(Math.random() * (max - min)) + min : min)
+      var arr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']
+
+      for (var i = 0; i < range; i++) {
+        var index = Math.round(Math.random() * (arr.length - 1))
+        returnStr += arr[index]
+      }
+      return returnStr
     }
   }
 }
 </script>
 
 <style>
-
 </style>

+ 15 - 4
src/components/setting/user-password-setting.vue

@@ -48,7 +48,7 @@
         </v-row>
         <v-row justify="center">
           <v-col cols="5">
-            <v-img :src="verifyImageUrl" alt="验证码" title="点击刷新" style="cursor:pointer;" max-width="200" @click="getVerifyImage" />
+            <v-img :src="captchaUrl" alt="验证码" title="点击刷新" style="cursor:pointer;" max-width="200" @click="getVerifyImage" />
           </v-col>
           <v-col cols="5">
             <v-text-field
@@ -102,7 +102,7 @@ export default {
         verifyCode: ''
       },
       temp: '',
-      verifyImageUrl: '/api/verifyImage',
+      captchaUrl: '/api/user/account/captcha',
       showMessage: false,
       message: ''
     }
@@ -111,7 +111,7 @@ export default {
   },
   methods: {
     getVerifyImage() {
-      this.verifyImageUrl = '/api/verifyImage?t=' + new Date().getTime()
+      this.captchaUrl = '/api/user/account/captcha?r=' + this.randomStr(10, 22)
     },
     save() {
       if (this.passoword.oldPassword === '') {
@@ -149,7 +149,18 @@ export default {
         .catch(e => {
           return null
         })
-    }
+    },
+      randomStr(min, max) {
+          var returnStr = ''
+          var range = (max ? Math.round(Math.random() * (max - min)) + min : min)
+          var arr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']
+
+          for (var i = 0; i < range; i++) {
+              var index = Math.round(Math.random() * (arr.length - 1))
+              returnStr += arr[index]
+          }
+          return returnStr
+      }
   }
 }
 </script>

+ 1 - 1
src/router/index.js

@@ -199,7 +199,7 @@ router.beforeEach((to, from, next) => {
   // router.app.$options.store
   // 获取网页信息
   if (router.app.$options.store.state.webInfo.name == null) {
-    fetch(`/api/web/info`, {
+    fetch(`/api/media/web/info`, {
       headers: {
         'Content-Type': 'application/json; charset=UTF-8'
       },

+ 1 - 1
src/views/admin/web-setting.vue

@@ -97,7 +97,7 @@ export default {
   },
   methods: {
     getSetting() {
-      fetch(`/api/web/info`, {
+      fetch(`/api/media/web/info`, {
         headers: {
           'Content-Type': 'application/json; charset=UTF-8'
         },

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

@@ -64,7 +64,7 @@ export default {
   },
   methods: {
     getVideoList() {
-      fetch(`/api/article/home/list?page=${this.page}&limit=${this.size}`, {
+      fetch(`/api/media/article/home/list?page=${this.page}&limit=${this.size}`, {
         headers: {
           'Content-Type': 'application/json; charset=UTF-8',
           'X-XSRF-TOKEN': this.$cookies.get('XSRF-TOKEN')

+ 7 - 8
src/views/login.vue

@@ -30,7 +30,7 @@
             </v-row>
             <v-row style="height: 48px" />
             <LoginFrom v-show="showLogin" @login="userLogin" />
-            <RegisterFrom v-show="showLogin == false" @register="register" />
+            <RegisterFrom v-show="showLogin === false" @register="register" />
             <v-row justify="center">
               <v-col cols="5">
                 <v-btn text color="primary">忘记密码</v-btn>
@@ -79,7 +79,7 @@ export default {
   },
   data() {
     return {
-      verifyImageUrl: '/api/verifyImage',
+      captchaUrl: '/api/user/account/captcha?r=123456',
       user: {},
       type: '登录',
       moveMessage: '没有账号,创建账号',
@@ -93,7 +93,7 @@ export default {
   },
   methods: {
     userLogin(value) {
-      fetch(`/api/login`, {
+      fetch(`/api/auth/login`, {
         headers: {
           'Content-Type': 'application/json; charset=UTF-8',
           'X-XSRF-TOKEN': this.$cookies.get('XSRF-TOKEN')
@@ -103,7 +103,7 @@ export default {
         body: JSON.stringify(value)
       }).then(response => response.json())
         .then(json => {
-          if (json.status === 200) {
+          if (json.code === 0) {
             const user = json.data
             // 保存用户
             this.$store.commit('setUserInfo', user)
@@ -119,7 +119,7 @@ export default {
         })
     },
     register(value) {
-      fetch(`/api/register`, {
+      fetch(`/api/user/account/signup`, {
         headers: {
           'Content-Type': 'application/json; charset=UTF-8',
           'X-XSRF-TOKEN': this.$cookies.get('XSRF-TOKEN')
@@ -129,12 +129,12 @@ export default {
         body: JSON.stringify(value)
       }).then(response => response.json())
         .then(json => {
-          if (json.status === 200) {
+          if (json.code === 0) {
             this.message = '注册成功,即将为你跳转到登录页面!'
             this.showMessage = true
             this.moveRegister()
           } else {
-            this.message = json.message
+            this.message = json.msg
             this.showMessage = true
           }
         })
@@ -163,5 +163,4 @@ export default {
 </script>
 
 <style>
-
 </style>

+ 2 - 2
vue.config.js

@@ -10,10 +10,10 @@ module.exports = {
   productionSourceMap: false,
   // options...
   devServer: {
-    port: 8000,
+    port: 8080,
     proxy: {
       '/api': {
-        target: 'http://127.0.0.1:8080',
+        target: 'http://127.0.0.1:8000',
         changeOrigin: true,
         ws: true,
         pathRewrite: {