diff --git a/src/common/modules.js b/src/common/modules.js index 3838ba0b..9a9a7ba4 100644 --- a/src/common/modules.js +++ b/src/common/modules.js @@ -1,6 +1,7 @@ import http from "./http"; import Vue from "vue"; import CryptoJS from "./crypto-js"; +import qs from 'query-string' /** * 用户登录信息和方法 @@ -136,6 +137,41 @@ export const user = { } else return Promise.reject(res.msg) }) }, + getWechatToken({commit, dispatch}, params) { + const encryptByDES = password => { + let isIos = uni.getSystemInfoSync().system.toUpperCase == 'ios' + let key = "thanks,villcloud" + let iv = CryptoJS.enc.Latin1.parse(key) + let encrypted = CryptoJS.AES.encrypt(password, iv, { + iv: iv, + mode: CryptoJS.mode.CBC, + padding: CryptoJS.pad.ZeroPadding + }) + if (isIos) { + return encodeURIComponent(encrypted.toString()); + } else { + return encrypted.toString(); + } + } + let {module} = params, action = "/auth/wechat-mp/token" + return http.post(action, params, { + withoutToken: true, + module, + params: { + ...params, grant_type: 'password', + password: encryptByDES(params.password) + }, + headers: { + Authorization: "Basic d3htcDp3eG1w" + } + }).then(res => { + if (res?.access_token) { + const token = [res?.token_type, res?.access_token].join(" ").trim() + commit("setToken", token) + return token + } else return Promise.reject(res.msg) + }) + }, getAccount({dispatch, commit}, config) { //获取企业微信后台账号信息 return http.post("/admin/user/detail-phone", null, config).then(res => { @@ -161,6 +197,20 @@ export const user = { * 企微jssdk功能 */ let timer = {} +/** + * 微信oauth2跳转链接 + * https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&agentid=AGENTID#wechat_redirect + * @param params + */ +const oauth2Weixin = params => qs.stringifyUrl({ + url: "https://open.weixin.qq.com/connect/oauth2/authorize", + query: { + response_type: 'code', + url: encodeURIComponent(location.href), + ...params + }, + fragmentIdentifier: "wechat_redirect" +}) export const wxwork = { state: () => ({ agentSignURL: "", @@ -218,27 +268,34 @@ export const wxwork = { }) } }, - getCode({state, dispatch}, tryAgentSign = false) { - let {corpid: corpId, suiteId, agentid: agentId} = state.config, url = location.href, REDIRECT_URI = encodeURIComponent(url), scope = "snsapi_privateinfo" - if (/AppForm/.test(location.pathname)) { - scope = "snsapi_base" - } else if (suiteId) { - corpId = suiteId - scope = "snsapi_privateinfo" + getCode({state, dispatch}, params) { + const excute = (tryAgentSign = false) => { + if (!params.appid) { + let {corpid: corpId, suiteId, agentid} = state.config, scope = "snsapi_privateinfo" + if (/AppForm/.test(location.pathname)) { + scope = "snsapi_base" + } else if (suiteId) { + corpId = suiteId + scope = "snsapi_privateinfo" + } + params = {appid: corpId, agentid, scope} + return new Promise((resolve, reject) => { + if (corpId && scope) { + const oauthURL = oauth2Weixin(params) + location.replace(oauthURL) + } else if (!tryAgentSign && corpId) { + dispatch("agentSign", {corpId, suiteId}).then(() => excute(true)).then(() => resolve()) + } else reject("URL缺少必要参数(corpId)") + }) + } else new Promise((resolve, reject) => { + const {appid} = params + if (!!appid) { + const oauthURL = oauth2Weixin(params) + location.replace(oauthURL) + } else reject("URL缺少必要参数(appid)") + }) } - return new Promise((resolve, reject) => { - if (corpId && scope) { - let oauthURL = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&agentid=AGENTID#wechat_redirect' - .replace(/APPID/g, corpId) - .replace(/REDIRECT_URI/g, REDIRECT_URI) - .replace(/SCOPE/g, scope) - .replace(/AGENTID/g, agentId) - console.log(location, oauthURL) - location.replace(oauthURL) - } else if (!tryAgentSign && corpId) { - dispatch("agentSign", {corpId, suiteId}).then(() => dispatch("getCode", true)).then(() => resolve()) - } else reject("URL缺少必要参数(corpId)") - }) + return excute() }, injectJWeixin({state, commit, rootState}, apis) { const inject = (jsApiList) => new Promise((resolve, reject) => { diff --git a/src/components/AiBottomBtn.vue b/src/components/AiBottomBtn.vue index b73f83a8..9fc3454f 100644 --- a/src/components/AiBottomBtn.vue +++ b/src/components/AiBottomBtn.vue @@ -4,9 +4,9 @@ -
+
-
+
@@ -15,7 +15,9 @@ export default { name: "AiBottomBtn", props: { - text: {default: ""} + text: {default: ""}, + circle: Boolean, + background: {default: "inherit"} } } @@ -37,6 +39,14 @@ export default { color: #FFFFFF; background: #1365DD; box-shadow: inset 0px 1px 0px 0px #EEEEEE; + + &.circle { + border-radius: 52px; + line-height: 80px; + flex-shrink: 0; + padding: 0 70px; + width: auto; + } } .transport { diff --git a/src/components/AiHighlight.vue b/src/components/AiHighlight.vue new file mode 100644 index 00000000..ebca4b41 --- /dev/null +++ b/src/components/AiHighlight.vue @@ -0,0 +1,55 @@ + + + + + diff --git a/src/main.js b/src/main.js index 062d2560..30753f3d 100644 --- a/src/main.js +++ b/src/main.js @@ -42,5 +42,7 @@ if (/saas/.test(location.pathname)) {//上架版 if (/AppCountryAlbum/.test(location.pathname)) {//乡村相册版 params = {action: "/app/wxcptp/portal/agentSign", corpId: "wpytYEDgAAcpXjmlYkYwKO60JDGDWrXg", suiteId: "ww0da13777658d1262"} } -store.dispatch("agentSign", params).finally(() => app.$mount()) +if (/AppVote/.test(location.pathname)) {//微信公众号网页开发 + app.$mount() +} else store.dispatch("agentSign", params).finally(() => app.$mount()) diff --git a/src/manifest.json b/src/manifest.json index 6edf9673..9f469c97 100644 --- a/src/manifest.json +++ b/src/manifest.json @@ -66,7 +66,7 @@ } }, "/ns": { - "target": "http://dvcp.sinoecare.net", + "target": "http://192.168.1.87:12525", "changeOrigin": true, "pathRewrite": { "^/ns": "/" diff --git a/src/project/fengdu/AppVote/AppVote.vue b/src/project/fengdu/AppVote/AppVote.vue new file mode 100644 index 00000000..d37f46b1 --- /dev/null +++ b/src/project/fengdu/AppVote/AppVote.vue @@ -0,0 +1,108 @@ + + + + + diff --git a/src/project/fengdu/AppVote/voteDetail.vue b/src/project/fengdu/AppVote/voteDetail.vue new file mode 100644 index 00000000..995554ca --- /dev/null +++ b/src/project/fengdu/AppVote/voteDetail.vue @@ -0,0 +1,57 @@ + + + + +