Procházet zdrojové kódy

:art: Improving structure / format of the code.api统一通过配置文件管理

lishangbu před 5 roky
rodič
revize
c7ac9cea7b

+ 9 - 1
src/api/admin/tenant.js

@@ -17,7 +17,7 @@
 
 import request from '@/router/axios'
 
-export function fetchList(query) {
+export function fetchPage(query) {
   return request({
     url: '/admin/tenant/page',
     method: 'get',
@@ -25,6 +25,14 @@ export function fetchList(query) {
   })
 }
 
+export function fetchList(query) {
+  return request({
+    url: '/admin/tenant/list',
+    method: 'get',
+    params: query
+  })
+}
+
 export function addObj(obj) {
   return request({
     url: '/admin/tenant',

+ 26 - 0
src/api/code.js

@@ -0,0 +1,26 @@
+import request from '@/router/axios'
+
+/**
+ * 获取验证码
+ * @param query 查询条件
+ * @param code 验证码对象
+ * @returns {Promise<T>}
+ */
+export function getCode(query, code) {
+  return request({
+    url: '/code',
+    method: 'get',
+    params: query,
+    responseType: 'arraybuffer'
+  }).then(response => {
+    //将从后台获取的图片流进行转换
+    return 'data:image/png;base64,' + btoa(
+      new Uint8Array(response.data).reduce((data, byte) => data + String.fromCharCode(byte), '')
+    )
+  }).then(function(data) {
+    //接收转换后的Base64图片
+    code.src = data
+  }).catch(function(err) {
+    console.log(err)
+  })
+}

+ 2 - 5
src/page/login/index.vue

@@ -40,7 +40,7 @@
   </div>
 </template>
 <script>
-import request from '@/router/axios'
+import {fetchList} from '@/api/admin/tenant'
 import userLogin from './userlogin'
 import codeLogin from './codelogin'
 import thirdLogin from './thirdlogin'
@@ -104,10 +104,7 @@ export default {
       setStore({ name: 'tenantId', content: command })
     },
     getTenantList () {
-      request({
-        url: '/admin/tenant/list',
-        method: 'get'
-      }).then(response => {
+      fetchList().then(response => {
         this.tenantList = response.data.data
       })
     },

+ 7 - 17
src/page/login/userlogin.vue

@@ -30,9 +30,6 @@
           slot="suffix"
           class="el-icon-view el-input__icon"
           @click="showPassword"/>
-        <!--<router-link to="/forgetlogin" slot="suffix">
-          <a href="#" class="alink" style="padding-left:8px;">忘记密码?</a>
-        </router-link>-->
         <i slot="prefix" class="iconfont icon-mima"></i>
       </el-input>
     </el-form-item>
@@ -53,16 +50,10 @@
         </el-col>
         <el-col :span="8">
           <div class="login-code">
-            <span
-              v-if="code.type == 'text'"
-              class="login-code-img"
-              @click="refreshCode">{{ code.value }}</span>
             <img
-              v-else
               :src="code.src"
               class="login-code-img"
               @click="refreshCode">
-              <!-- <i class="icon-shuaxin login-code-icon" @click="refreshCode"></i> -->
           </div>
         </el-col>
       </el-row>
@@ -82,6 +73,7 @@
 <script>
 import { randomLenNum } from '@/util/util'
 import { mapGetters } from 'vuex'
+import { getCode } from '@/api/code'
 
 export default {
   name: 'Userlogin',
@@ -95,14 +87,12 @@ export default {
         username: 'admin',
         password: '123456',
         code: '',
-        redomStr: ''
+        randomStr: ''
       },
       checked: false,
       code: {
-        src: '/code',
-        value: '',
-        len: 4,
-        type: 'image'
+        src: undefined,
+        len: 4
       },
       loginRules: {
         username: [
@@ -132,9 +122,9 @@ export default {
     refreshCode() {
       this.loginForm.code = ''
       this.loginForm.randomStr = randomLenNum(this.code.len, true)
-      this.code.type === 'text'
-        ? (this.code.value = randomLenNum(this.code.len))
-        : (this.code.src = `${this.codeUrl}?randomStr=${this.loginForm.randomStr}`)
+      getCode({ randomStr: this.loginForm.randomStr }, this.code).catch(() => {
+        this.$store.dispatch('FedLogOut')
+      })
     },
     showPassword() {
       this.passwordType == ''

+ 1 - 1
src/views/activiti/task.vue

@@ -88,7 +88,7 @@
       return {
         actPicUrl: '',
         obj: {},
-        flagList: {},
+        flagList: [],
         showTask: false,
         showComment: false,
         showPicDialog: false,

+ 2 - 2
src/views/admin/tenant/index.vue

@@ -37,7 +37,7 @@
 </template>
 
 <script>
-  import {addObj, delObj, fetchList, putObj} from '@/api/admin/tenant'
+  import {addObj, delObj, fetchPage, putObj} from '@/api/admin/tenant'
   import {tableOption} from '@/const/crud/admin/tenant'
   import {mapGetters} from 'vuex'
 
@@ -69,7 +69,7 @@
     methods: {
       getList(page, params) {
         this.tableLoading = true
-        fetchList(Object.assign({
+        fetchPage(Object.assign({
           current: page.currentPage,
           size: page.pageSize
         }, params, this.searchForm)).then(response => {