From 87f050d752fe2ca1958bece915c9f1c4d58706b6 Mon Sep 17 00:00:00 2001 From: wangqing <250543222@qq.com> Date: Sat, 29 May 2021 23:20:22 +0800 Subject: [PATCH 1/3] fix --- .env.development | 2 + .env.production | 2 + .eslintignore | 2 +- plop-templates/component/prompt.js | 2 +- src/api/index.js | 35 +- src/assets/styles/index.scss | 10 +- src/components/form/SignPad/index.vue | 2 +- src/components/generator/config.js | 2 +- src/router/modules/form.js | 4 +- src/router/modules/project.js | 45 +++ src/router/modules/root.js | 66 +--- src/utils/constants.js | 4 +- src/utils/sign.js | 1 + src/views/account/ForgetPwd.vue | 39 +-- src/views/account/login.vue | 16 +- src/views/form/{ => editor}/DraggableItem.vue | 0 src/views/form/{ => editor}/IconsDialog.vue | 0 src/views/form/{ => editor}/RightPanel.vue | 223 ++++++------ .../form/{ => editor}/TreeNodeDialog.vue | 2 +- .../form/{editor.vue => editor/index.vue} | 2 +- src/views/form/index.vue | 202 +++++++---- src/views/form/{logic.vue => logic/index.vue} | 2 +- src/views/form/newIndex.vue | 165 --------- src/views/form/oldIndex.vue | 85 +++++ src/views/form/{ => preview}/ProjectForm.vue | 0 .../form/{PreView.vue => preview/index.vue} | 0 .../form/{publish.vue => publish/index.vue} | 0 .../form/{setting.vue => setting/index.vue} | 0 .../{statistics.vue => statistics/index.vue} | 0 src/views/form/{theme.vue => theme/index.vue} | 2 +- src/views/form/{write.vue => write/index.vue} | 2 +- src/views/home/NewIndex.vue | 271 --------------- src/views/home/index.vue | 322 +++++++++++------- src/views/home/oldIndex.vue | 205 +++++++++++ .../project/{MyProject.vue => my/index.vue} | 2 +- .../{RecycleBin.vue => recycle/index.vue} | 0 .../{template.vue => template/index.vue} | 92 +++-- .../preview.vue} | 2 +- 38 files changed, 898 insertions(+), 913 deletions(-) create mode 100644 src/router/modules/project.js rename src/views/form/{ => editor}/DraggableItem.vue (100%) rename src/views/form/{ => editor}/IconsDialog.vue (100%) rename src/views/form/{ => editor}/RightPanel.vue (94%) rename src/views/form/{ => editor}/TreeNodeDialog.vue (99%) rename src/views/form/{editor.vue => editor/index.vue} (99%) rename src/views/form/{logic.vue => logic/index.vue} (99%) delete mode 100644 src/views/form/newIndex.vue create mode 100644 src/views/form/oldIndex.vue rename src/views/form/{ => preview}/ProjectForm.vue (100%) rename src/views/form/{PreView.vue => preview/index.vue} (100%) rename src/views/form/{publish.vue => publish/index.vue} (100%) rename src/views/form/{setting.vue => setting/index.vue} (100%) rename src/views/form/{statistics.vue => statistics/index.vue} (100%) rename src/views/form/{theme.vue => theme/index.vue} (99%) rename src/views/form/{write.vue => write/index.vue} (99%) delete mode 100644 src/views/home/NewIndex.vue create mode 100644 src/views/home/oldIndex.vue rename src/views/project/{MyProject.vue => my/index.vue} (99%) rename src/views/project/{RecycleBin.vue => recycle/index.vue} (100%) rename src/views/project/{template.vue => template/index.vue} (72%) rename src/views/project/{TemplatePreview.vue => template/preview.vue} (97%) diff --git a/.env.development b/.env.development index cf41b70..494a9d1 100644 --- a/.env.development +++ b/.env.development @@ -9,3 +9,5 @@ VUE_APP_CDN = OFF VUE_APP_DEBUG_TOOL = # 高德地图key VUE_APP_MAP_KEY = f2200337d0d08538e78729572749882d +# 微信功能开关 +VUE_APP_WX = true diff --git a/.env.production b/.env.production index 3741072..1f8dcb9 100644 --- a/.env.production +++ b/.env.production @@ -9,3 +9,5 @@ VUE_APP_CDN = OFF VUE_APP_DEBUG_TOOL = # 高德地图key VUE_APP_MAP_KEY = f2200337d0d08538e78729572749882d +# 微信功能开关 +VUE_APP_WX = true diff --git a/.eslintignore b/.eslintignore index e09f782..14ae794 100644 --- a/.eslintignore +++ b/.eslintignore @@ -7,4 +7,4 @@ src/components/echarts/china.js src/components/render/ src/components/verifition/ src/components/tinymce/ -src/views/form/RightPanel.vue +src/views/form/editor/RightPanel.vue diff --git a/plop-templates/component/prompt.js b/plop-templates/component/prompt.js index 13739d1..ba1ca5b 100644 --- a/plop-templates/component/prompt.js +++ b/plop-templates/component/prompt.js @@ -47,7 +47,7 @@ module.exports = { actions: data => { let path = '' if (data.isGlobal) { - path = 'src/components/{{properCase name}}/index.vue' + path = 'src/components/{{properCase name}}/oldIndex.vue' } else { path = `${data.path}/components/{{properCase name}}/index.vue` } diff --git a/src/api/index.js b/src/api/index.js index cb35d32..b3390d7 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -1,6 +1,6 @@ import axios from 'axios' // import qs from 'qs' -import {MessageBox, Message} from 'element-ui' +import {Message, MessageBox} from 'element-ui' import Verification from '@/components/verifition/verification.js' import router from '@/router/index' import store from '@/store/index' @@ -39,7 +39,11 @@ api.interceptors.request.use( } ) -function signRequest(request) { +/** + * 签名请求 + * @param request + */ +const signRequest = request => { // 签名验证 if (request.params == undefined) { request.params = {} @@ -51,7 +55,8 @@ function signRequest(request) { } api.interceptors.response.use( - response => { + async response => { + console.log(response) /** * 全局拦截请求发送后返回的数据,如果数据有报错则在这做全局的错误提示 * 假设返回数据格式为:{"code":500,"msg":"邮箱地址不正确","data":null} @@ -60,16 +65,11 @@ api.interceptors.response.use( * 请求出错时 msg 会返回错误信息 * 则代码如下 */ - console.log(response) let errCodes = [500, 405, 403] const res = response.data - // eslint-disable-next-line no-debugger - debugger if (res.code === 200) { return Promise.resolve(res) } else if (errCodes.includes(res.code)) { - // eslint-disable-next-line no-debugger - debugger // 这里做错误提示,如果使用了 element ui 则可以使用 Message 进行提示 Message({ message: res.msg || 'Error', @@ -99,18 +99,17 @@ api.interceptors.response.use( } return Promise.reject(res) } else if (res.code === 416) { - console.log('validate') - Verification().then(value => { - console.log(value) - setTimeout(function() { - response.config.params.slideCode = value - delete response.config.params.sign + // 需要滑动验证 + let result = {} + await Verification().then(async value => { + response.config.params.slideCode = value + delete response.config.params.sign + if (response.config.data) { response.config.data = JSON.parse(response.config.data) - signRequest(response.config) - return axios(response.config) - }, 1000) + } + result = await api.request(response.config) }) - return Promise.reject(res) + return Promise.resolve(result) } return Promise.resolve(res) }, diff --git a/src/assets/styles/index.scss b/src/assets/styles/index.scss index b662055..d4f82f6 100644 --- a/src/assets/styles/index.scss +++ b/src/assets/styles/index.scss @@ -72,7 +72,7 @@ div:focus { margin-right: 10px; } .ml-20 { - margin-left: 20px; + margin-left: 20px !important; } .ml-10 { margin-left: 10px; @@ -99,6 +99,11 @@ div:focus { flex-direction: column; box-sizing: border-box; } +.flex-center { + display: flex; + justify-content: center; + align-content: center; +} .desc-text { color: rgba(155, 155, 155, 100); font-size: 14px; @@ -107,6 +112,9 @@ div:focus { .width-full { width: 100% !important; } +.width50 { + width: 50% !important; +} .width80 { width: 80% !important; margin: 0 auto; diff --git a/src/components/form/SignPad/index.vue b/src/components/form/SignPad/index.vue index 1c39ce2..b4ccf97 100644 --- a/src/components/form/SignPad/index.vue +++ b/src/components/form/SignPad/index.vue @@ -2,7 +2,7 @@
- +

请在上面区域完成签名 然后点击确"确认"按钮

diff --git a/src/components/generator/config.js b/src/components/generator/config.js index 6c49857..56a03f8 100644 --- a/src/components/generator/config.js +++ b/src/components/generator/config.js @@ -621,7 +621,7 @@ export const assistComponents = [ typeId: 'SIGN_PAD', __config__: { label: '手写签名', - defaultValue: '手写签名', + defaultValue: '', showLabel: true, showDefaultValue: true, showRequired: true, diff --git a/src/router/modules/form.js b/src/router/modules/form.js index c1550a3..c2e0511 100644 --- a/src/router/modules/form.js +++ b/src/router/modules/form.js @@ -2,7 +2,7 @@ export default [ { path: '/project/form', meta: {requireLogin: false}, - component: () => import(/* webpackChunkName: 'root' */ '@/views/form/newIndex.vue'), + component: () => import(/* webpackChunkName: 'root' */ '@/views/form'), children: [ { path: '', @@ -22,7 +22,7 @@ export default [ { path: 'preview', meta: {requireLogin: true}, - component: () => import(/* webpackChunkName: 'root' */ '@/views/form/PreView') + component: () => import(/* webpackChunkName: 'root' */ '@/views/form/preview') }, { path: 'setting', diff --git a/src/router/modules/project.js b/src/router/modules/project.js new file mode 100644 index 0000000..1fea48a --- /dev/null +++ b/src/router/modules/project.js @@ -0,0 +1,45 @@ +export default [ + { + path: '/project', + meta: {requireLogin: true}, + component: () => import(/* webpackChunkName: 'root' */ '@/views/home'), + children: [ + { + path: 'my', + meta: {requireLogin: true}, + component: () => import(/* webpackChunkName: 'root' */ '@/views/project/my/index') + }, + { + path: 'recycle', + meta: {requireLogin: true}, + component: () => import(/* webpackChunkName: 'root' */ '@/views/project/recycle/index') + }, + { + path: 'template', + meta: {requireLogin: true}, + component: () => import(/* webpackChunkName: 'root' */ '@/views/project/template/index') + }, + + { + path: 'template/preview', + meta: {requireLogin: true}, + component: () => import(/* webpackChunkName: 'root' */ '@/views/project/template/preview.vue') + } + ] + }, + { + path: '/project/view', + meta: {requireLogin: false}, + component: () => import(/* webpackChunkName: 'root' */ '@/views/form/preview/ProjectForm.vue') + }, + { + path: '/s/:key', + meta: {requireLogin: false}, + component: () => import(/* webpackChunkName: 'root' */ '@/views/form/write') + }, + { + path: '/project/write', + meta: {requireLogin: false}, + component: () => import(/* webpackChunkName: 'root' */ '@/views/form/write') + } +] diff --git a/src/router/modules/root.js b/src/router/modules/root.js index 44c4e7c..d24eb25 100644 --- a/src/router/modules/root.js +++ b/src/router/modules/root.js @@ -54,27 +54,12 @@ export default [ { path: '/home', meta: {requireLogin: true}, - component: () => import(/* webpackChunkName: 'root' */ '@/views/home/NewIndex'), + component: () => import(/* webpackChunkName: 'root' */ '@/views/home'), children: [ { path: '/', meta: {requireLogin: true}, - component: () => import(/* webpackChunkName: 'root' */ '@/views/project/MyProject') - }, - { - path: 'my', - meta: {requireLogin: true}, - component: () => import(/* webpackChunkName: 'root' */ '@/views/project/MyProject') - }, - { - path: 'recycle', - meta: {requireLogin: true}, - component: () => import(/* webpackChunkName: 'root' */ '@/views/project/RecycleBin') - }, - { - path: 'template', - meta: {requireLogin: true}, - component: () => import(/* webpackChunkName: 'root' */ '@/views/project/template.vue') + component: () => import(/* webpackChunkName: 'root' */ '@/views/project/my/index') }, { path: 'member', @@ -82,51 +67,6 @@ export default [ component: () => import(/* webpackChunkName: 'root' */ '@/views/account/member') } ] - }, { - path: '/project', - meta: {requireLogin: true}, - component: () => import(/* webpackChunkName: 'root' */ '@/views/home/index.vue'), - children: [ - { - path: 'create', - meta: {requireLogin: true}, - component: () => import(/* webpackChunkName: 'root' */ '@/views/project/template.vue') - }, - { - path: 'my', - meta: {requireLogin: true}, - component: () => import(/* webpackChunkName: 'root' */ '@/views/project/MyProject.vue') - }, - - { - path: 'template/preview', - meta: {requireLogin: true}, - component: () => import(/* webpackChunkName: 'root' */ '@/views/project/TemplatePreview.vue') - } - // { - // path: 'form', - // meta: {requireLogin: true}, - // component: () => import(/* webpackChunkName: 'root' */ '@/views/form/index1.vue') - // } - ] - }, - { - path: '/project/preview', - meta: {requireLogin: false}, - component: () => import(/* webpackChunkName: 'root' */ '@/views/form/PreView.vue') - }, { - path: '/project/view', - meta: {requireLogin: false}, - component: () => import(/* webpackChunkName: 'root' */ '@/views/form/ProjectForm.vue') - }, - { - path: '/s/:key', - meta: {requireLogin: false}, - component: () => import(/* webpackChunkName: 'root' */ '@/views/form/write.vue') - }, - { - path: '/project/write', - meta: {requireLogin: false}, - component: () => import(/* webpackChunkName: 'root' */ '@/views/form/write.vue') } + ] diff --git a/src/utils/constants.js b/src/utils/constants.js index 19ca04f..9960159 100644 --- a/src/utils/constants.js +++ b/src/utils/constants.js @@ -4,5 +4,7 @@ export default { // 密码正则 passwordReg: /^.{6,}$/, passwordRegDesc: '密码最少为6位字符', - userUploadUrl: `${process.env.VUE_APP_API_ROOT}/user/file/upload` + userUploadUrl: `${process.env.VUE_APP_API_ROOT}/user/file/upload`, + // 启用微信功能 + enableWx: process.env.VUE_APP_WX } diff --git a/src/utils/sign.js b/src/utils/sign.js index 4a1496a..fb9beb0 100644 --- a/src/utils/sign.js +++ b/src/utils/sign.js @@ -48,6 +48,7 @@ export default class sign { let jsonObj = _.merge(urlParams, requestParams) jsonObj = _.merge(jsonObj, dataParams) let requestBody = this.sortAsc(jsonObj) + console.log(jsonObj) return CryptoJS.MD5(constants.signSecret + JSON.stringify(requestBody)).toString().toLowerCase() } diff --git a/src/views/account/ForgetPwd.vue b/src/views/account/ForgetPwd.vue index a3a23b6..b4f1a7f 100644 --- a/src/views/account/ForgetPwd.vue +++ b/src/views/account/ForgetPwd.vue @@ -14,7 +14,7 @@ /> - + @@ -22,7 +22,7 @@ - + 找回密码 @@ -37,7 +37,7 @@ - + 找回密码 @@ -78,26 +78,14 @@ 没有收到邮件?请检查您的垃圾邮件或者重新发送

-
- diff --git a/src/views/form/logic.vue b/src/views/form/logic/index.vue similarity index 99% rename from src/views/form/logic.vue rename to src/views/form/logic/index.vue index 96f96e3..6fdbe55 100644 --- a/src/views/form/logic.vue +++ b/src/views/form/logic/index.vue @@ -129,7 +129,7 @@ - - diff --git a/src/views/form/oldIndex.vue b/src/views/form/oldIndex.vue new file mode 100644 index 0000000..9c40257 --- /dev/null +++ b/src/views/form/oldIndex.vue @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/views/form/ProjectForm.vue b/src/views/form/preview/ProjectForm.vue similarity index 100% rename from src/views/form/ProjectForm.vue rename to src/views/form/preview/ProjectForm.vue diff --git a/src/views/form/PreView.vue b/src/views/form/preview/index.vue similarity index 100% rename from src/views/form/PreView.vue rename to src/views/form/preview/index.vue diff --git a/src/views/form/publish.vue b/src/views/form/publish/index.vue similarity index 100% rename from src/views/form/publish.vue rename to src/views/form/publish/index.vue diff --git a/src/views/form/setting.vue b/src/views/form/setting/index.vue similarity index 100% rename from src/views/form/setting.vue rename to src/views/form/setting/index.vue diff --git a/src/views/form/statistics.vue b/src/views/form/statistics/index.vue similarity index 100% rename from src/views/form/statistics.vue rename to src/views/form/statistics/index.vue diff --git a/src/views/form/theme.vue b/src/views/form/theme/index.vue similarity index 99% rename from src/views/form/theme.vue rename to src/views/form/theme/index.vue index 99ec15a..0237fbe 100644 --- a/src/views/form/theme.vue +++ b/src/views/form/theme/index.vue @@ -237,7 +237,7 @@ - - diff --git a/src/views/home/index.vue b/src/views/home/index.vue index b407bf6..f5c9ac0 100644 --- a/src/views/home/index.vue +++ b/src/views/home/index.vue @@ -1,102 +1,106 @@ + - diff --git a/src/views/home/oldIndex.vue b/src/views/home/oldIndex.vue new file mode 100644 index 0000000..44febee --- /dev/null +++ b/src/views/home/oldIndex.vue @@ -0,0 +1,205 @@ + + + diff --git a/src/views/project/MyProject.vue b/src/views/project/my/index.vue similarity index 99% rename from src/views/project/MyProject.vue rename to src/views/project/my/index.vue index 3234b09..d7ffddb 100644 --- a/src/views/project/MyProject.vue +++ b/src/views/project/my/index.vue @@ -120,7 +120,7 @@ -
+
diff --git a/src/views/project/RecycleBin.vue b/src/views/project/recycle/index.vue similarity index 100% rename from src/views/project/RecycleBin.vue rename to src/views/project/recycle/index.vue diff --git a/src/views/project/template.vue b/src/views/project/template/index.vue similarity index 72% rename from src/views/project/template.vue rename to src/views/project/template/index.vue index 96bcfa5..7c413dd 100644 --- a/src/views/project/template.vue +++ b/src/views/project/template/index.vue @@ -1,48 +1,41 @@ @@ -39,7 +42,7 @@ import ProjectForm from '../preview/ProjectForm' import loadWXJs from '@/utils/loadWxSdk' import defaultValue from '@/utils/defaultValue' -import { getQueryString} from '@/utils' +import {getQueryString} from '@/utils' import constants from '@/utils/constants' const uaParser = require('ua-parser-js') @@ -73,11 +76,13 @@ export default { wxSignature: {} } }, - beforeCreate() { - let meta = document.createElement('meta') - meta.content = 'width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no' - meta.name = 'viewport' - document.getElementsByTagName('head')[0].appendChild(meta) + metaInfo: { + meta: [ + { + name: 'viewport', + content: 'width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no' + } + ] }, created() { let key = this.$route.query.key || this.$route.params.key @@ -237,6 +242,9 @@ export default { } }) }, + /** + * 仅在微信打开 + */ onlyWxOpenHandle() { let wxUa = navigator.userAgent.toLowerCase() let isWeixin = wxUa.indexOf('micromessenger') != -1 @@ -245,6 +253,10 @@ export default { document.body.innerHTML = '

请在微信客户端打开链接

' } }, + openPublicResultHandle() { + let projectKey = this.projectConfig.projectKey + this.$router.replace({path: '/project/public/result', query: {projectKey}}) + }, submitForm(data) { // 完成时间 let inActiveTime = document.getElementById('inActiveTime').innerText