diff --git a/src/api/index.js b/src/api/index.js index 5e467a5..b23559b 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -1,6 +1,7 @@ import axios from 'axios' // import qs from 'qs' import {MessageBox, Message} from 'element-ui' +import Verification from '@/components/verifition/verification.js' import router from '@/router/index' import store from '@/store/index' import signMd5Utils from '@/utils/sign' @@ -88,6 +89,12 @@ api.interceptors.response.use( }) } return Promise.reject(res) + } else if (res.code === 416) { + console.log('validate') + Verification().then(value => { + console.log(value) + }) + return Promise.reject(res) } return Promise.resolve(res) }, diff --git a/src/components/verifition/Verify.vue b/src/components/verifition/Verify.vue index dbf9e6b..1d408bb 100644 --- a/src/components/verifition/Verify.vue +++ b/src/components/verifition/Verify.vue @@ -95,7 +95,7 @@ export default { data() { return { // showBox:true, - clickShow: false, + clickShow: true, // 内部类型 verifyType: undefined, // 所用组件类型 diff --git a/src/components/verifition/verification.js b/src/components/verifition/verification.js new file mode 100644 index 0000000..a4ab26c --- /dev/null +++ b/src/components/verifition/verification.js @@ -0,0 +1,28 @@ +// 参考文章 +//https://www.jianshu.com/p/514122716e38 +//https://www.cnblogs.com/shandou/p/13812538.html +import Vue from 'vue' // 引入 Vue 是因为要用到 Vue.extend() 这个方法 +import verification from './verification.vue' // 引入刚才的 toast 组件 + +let verificationConstructor = Vue.extend(verification) +let instance + +const Verification = function(options = {}) { + return new Promise((reslove, reject) => { + instance = new verificationConstructor({ + data: options // 这里的 data 会传到 message.vue 组件中的 data 中,当然也可以写在 props 里 + }) // 渲染组件 + instance.callback = (action, val) => { + if (action === 'verifySuccess') { + reslove(val) + } else if (action === 'cancel') { + reject() + } + } + document.body.appendChild(instance.$mount().$el) // 挂载到 body 下 + Vue.nextTick(() => { + instance.visible = true + }) + }) +} +export default Verification diff --git a/src/components/verifition/verification.vue b/src/components/verifition/verification.vue new file mode 100644 index 0000000..881f2e6 --- /dev/null +++ b/src/components/verifition/verification.vue @@ -0,0 +1,42 @@ + + + + + diff --git a/src/views/account/login.vue b/src/views/account/login.vue index dee0cfd..7142f3f 100644 --- a/src/views/account/login.vue +++ b/src/views/account/login.vue @@ -132,7 +132,6 @@ @@ -206,27 +205,16 @@ -