diff --git a/App.vue b/App.vue index 0368922..80e20c0 100644 --- a/App.vue +++ b/App.vue @@ -5,13 +5,13 @@ // brestUrl: 'http://192.168.3.4:9302/brest', // imgUrl: 'https://192.168.3.4:9301/filesystem/', //正式 - url: 'https://hsg.dctpay.com/crest', - imgUrl: 'https://hsg.dctpay.com/filesystem/', - brestUrl : 'https://hsg.dctpay.com/brest', + // url: 'https://hsg.dctpay.com/crest', + // imgUrl: 'https://hsg.dctpay.com/filesystem/', + // brestUrl : 'https://hsg.dctpay.com/brest', //测试 - // url: 'https://hsgcs.dctpay.com/crest', - // brestUrl : 'https://hsgcs.dctpay.com/brest', - // imgUrl: 'https://hsgcs.dctpay.com/filesystem/', + url: 'https://hsgcs.dctpay.com/crest', + brestUrl : 'https://hsgcs.dctpay.com/brest', + imgUrl: 'https://hsgcs.dctpay.com/filesystem/', userInfo: "", brestUserInfo : '', diff --git a/Utils/Api.js b/Utils/Api.js index 1063fed..9bf7034 100644 --- a/Utils/Api.js +++ b/Utils/Api.js @@ -132,8 +132,13 @@ export const getStoreList = params => { return POST('GET', `${base}/highMerchantStore/getStoreList`, params).then(res => res.data); } - - +/** + * H5 获取用户信息 + */ +//搜索门店 +export const getH5UserInfo = params => { + return POST('GET', `${base}/wechat/getH5UserInfo`, params).then(res => res.data); +} //**门店// diff --git a/components/Authorize.vue b/components/Authorize.vue index f9a6e86..43be838 100644 --- a/components/Authorize.vue +++ b/components/Authorize.vue @@ -128,6 +128,7 @@ }, getH5userinfo(){ console.log('[=========]') + location.href='https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxa075e8509802f826&redirect_uri=https%3A%2F%2Fhsgcs.dctpay.com%2FH5%2Findex.html%23%2F&response_type=code&scope=snsapi_userinfo#wechat_redirect'; }, close() { uni.reLaunch({ diff --git a/components/uni-data-picker/components/uni-data-picker/keypress.js b/components/uni-data-picker/components/uni-data-picker/keypress.js index 6ef26a2..aa1600d 100644 --- a/components/uni-data-picker/components/uni-data-picker/keypress.js +++ b/components/uni-data-picker/components/uni-data-picker/keypress.js @@ -37,7 +37,7 @@ export default { } document.addEventListener('keyup', listener) this.$once('hook:beforeDestroy', () => { - document.removeEventListener('keyup', listener) + // document.removeEventListener('keyup', listener) }) }, render: () => {} diff --git a/main.js b/main.js index 295c3da..d090f90 100644 --- a/main.js +++ b/main.js @@ -1,9 +1,10 @@ import Vue from 'vue' import App from './App' // import api from './Utils/Api.js' +import {VueJsonp} from 'vue-jsonp' Vue.config.productionTip = false // Vue.prototype.api = api; - +Vue.use(VueJsonp) App.mpType = 'app' const app = new Vue({ diff --git a/manifest.json b/manifest.json index 0b1da20..af41417 100644 --- a/manifest.json +++ b/manifest.json @@ -1,94 +1,95 @@ { - "name" : "嗨森逛", - "appid" : "__UNI__E807B53", - "description" : "", - "versionName" : "1.2.0", - "versionCode" : "100", - "transformPx" : false, - "app-plus" : { - "usingComponents" : true, //是否启用`自定义组件模式`,为true表示新的`自定义组件模式` ,否则为`template模板模式` - "softinput" : { - "navBar" : "none" // 是否显示软键盘上的导航条 - }, - /* 5+App特有相关 */ - "splashscreen" : { - "alwaysShowBeforeRender" : true, - "waiting" : true, - "autoclose" : true, - "delay" : 0 - }, - "modules" : { - "Share" : {}, - "OAuth" : {} - }, - /* 模块配置 */ - "distribute" : { - "orientation" : [ "portrait-primary" ], - /* 应用发布信息 */ - "android" : { - /* android打包配置 */ - "permissions" : [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" - ] - }, - "ios" : {}, - /* ios打包配置 */ - "sdkConfigs" : {} - } - }, - /* SDK配置 */ - "quickapp" : {}, - /* 快应用特有相关 */ - "mp-weixin" : { - /* 小程序特有相关 */ - "appid" : "wx8d49e2f83025229d", - "setting" : { - "urlCheck" : true - }, - "permission" : { - "scope.userLocation" : { - "desc" : "你的位置信息将用于小程序定位" - } - } - }, - "h5" : { - "sdkConfigs" : { - "maps" : { - "qqmap" : { - "key" : "7UMBZ-HFEHX-HSD4Q-Z3QY6-OQKN7-2QBDB" - } - } - }, - "title" : "嗨森逛", - "router" : { - "mode" : "hash" - }, - "devServer" : { - "port" : "", - "https" : false - }, - "domain" : "https://hsg.dctpay.com", - "template" : "" - } + "name": "嗨森逛", + "appid": "__UNI__E807B53", + "description": "", + "versionName": "1.2.0", + "versionCode": "100", + "transformPx": false, + "app-plus": { + "usingComponents": true, //是否启用`自定义组件模式`,为true表示新的`自定义组件模式` ,否则为`template模板模式` + "softinput": { + "navBar": "none" // 是否显示软键盘上的导航条 + }, + /* 5+App特有相关 */ + "splashscreen": { + "alwaysShowBeforeRender": true, + "waiting": true, + "autoclose": true, + "delay": 0 + }, + "modules": { + "Share": {}, + "OAuth": {} + }, + /* 模块配置 */ + "distribute": { + "orientation": ["portrait-primary"], + /* 应用发布信息 */ + "android": { + /* android打包配置 */ + "permissions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "ios": {}, + /* ios打包配置 */ + "sdkConfigs": {} + } + }, + /* SDK配置 */ + "quickapp": {}, + /* 快应用特有相关 */ + "mp-weixin": { + /* 小程序特有相关 */ + "appid": "wx8d49e2f83025229d", + "setting": { + "urlCheck": true + }, + "permission": { + "scope.userLocation": { + "desc": "你的位置信息将用于小程序定位" + } + } + }, + "h5": { + "sdkConfigs": { + "maps": { + "qqmap": { + "key": "7UMBZ-HFEHX-HSD4Q-Z3QY6-OQKN7-2QBDB" + } + } + }, + "title": "嗨森逛", + "router": { + "mode": "hash", + "base": "/H5/" + }, + "devServer" : { + "port" : "", + "https" : true + }, + "domain": "https://hsgcs.dctpay.com", + "template": "" + } } diff --git a/node_modules/vue-jsonp/LICENSE b/node_modules/vue-jsonp/LICENSE new file mode 100644 index 0000000..9b2ef9e --- /dev/null +++ b/node_modules/vue-jsonp/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 LancerComet + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/vue-jsonp/README.md b/node_modules/vue-jsonp/README.md new file mode 100644 index 0000000..8aa1e99 --- /dev/null +++ b/node_modules/vue-jsonp/README.md @@ -0,0 +1,153 @@ +# Vue-jsonp + +[![VueJsonp](https://github.com/LancerComet/vue-jsonp/workflows/Test/badge.svg)](https://github.com/LancerComet/vue-jsonp/actions) + +A tiny library for handling JSONP request. + +## Quick Start + +As Vue plugin: + +```ts +import { VueJsonp } from 'vue-jsonp' + +// Vue Plugin. +Vue.use(VueJsonp) + +// Now you can use this.$jsonp in Vue components. +const vm = new Vue() +vm.$jsonp('/some-jsonp-url', { + myCustomUrlParam: 'veryNice' +}) +``` + +Use function directly: + +```ts +import { jsonp } from 'vue-jsonp' + +jsonp('/some-jsonp-url', { + myCustomUrlParam: 'veryNice' +}) +``` + +## Send data and set query & function name + +### Send data + +```ts +// The request url will be "/some-jsonp-url?name=LancerComet&age=100&callback=jsonp_{RANDOM_STR}". +jsonp('/some-jsonp-url', { + name: 'LancerComet', + age: 100 +}) +``` + +### Custom query & function name + +The url uniform is `/url?{callbackQuery}={callbackName}&...`, the default is `/url?callback=jsonp_{RANDOM_STRING}&...`. + +And you can change it like this: + +```ts +// The request url will be "/some-jsonp-url?name=LancerComet&age=100&cb=jsonp_func". +jsonp('/some-jsonp-url', { + callbackQuery: 'cb', + callbackName: 'jsonp_func', + name: 'LancerComet', + age: 100 +}) +``` + +## Module exports + + - `VueJsonp: PluginObject` + + - `jsonp: (url: string, param?: IJsonpParam, timeout?: number) => Promise` + +## API + +### IJsonpParam + +IJsonpParam is the type of param for jsonp function. + +```ts +/** + * JSONP parameter declaration. + */ +interface IJsonpParam { + /** + * Callback query name. + * This param is used to define the query name of the callback function. + * + * @example + * // The request url will be "/some-url?myCallback=jsonp_func&myCustomUrlParam=veryNice" + * jsonp('/some-url', { + * callbackQuery: 'myCallback', + * callbackName: 'jsonp_func', + * myCustomUrlParam: 'veryNice' + * }) + * + * @default callback + */ + callbackQuery?: string + + /** + * Callback function name. + * This param is used to define the jsonp function name. + * + * @example + * // The request url will be "/some-url?myCallback=jsonp_func&myCustomUrlParam=veryNice" + * jsonp('/some-url', { + * callbackQuery: 'myCallback', + * callbackName: 'jsonp_func', + * myCustomUrlParam: 'veryNice' + * }) + * + * @default jsonp_ + randomStr() + */ + callbackName?: string + + /** + * Custom data. + */ + [key: string]: any +} +``` + +## Example + +```ts +import Vue from 'vue' +import { VueJsonp } from 'vue-jsonp' + +Vue.use(VueJsonp) + +const vm = new Vue() +const { code, data, message } = await vm.$jsonp<{ + code: number, + message: string, + data: { + id: number, + nickname: string + } +}>('/my-awesome-url', { + name: 'MyName', age: 20 +}) + +assert(code === 0) +assert(message === 'ok') +assert(data.id === 1) +assert(data.nickname === 'John Smith') +``` + +```ts +import { jsonp } from 'vue-jsonp' + +const result = await jsonp('/my-awesome-url') +assert(result === 'such a jsonp') +``` + +## License + +MIT diff --git a/node_modules/vue-jsonp/dist/index.d.ts b/node_modules/vue-jsonp/dist/index.d.ts new file mode 100644 index 0000000..ec621c7 --- /dev/null +++ b/node_modules/vue-jsonp/dist/index.d.ts @@ -0,0 +1,73 @@ +/** + * Vue Jsonp. + * # Carry Your World # + * + * @author: LancerComet + * @license: MIT + */ +import { PluginObject } from 'vue/types/plugin'; +declare module 'vue/types/vue' { + interface Vue { + $jsonp: typeof jsonp; + } +} +/** + * Vue JSONP. + */ +declare const VueJsonp: PluginObject; +/** + * JSONP function. + * + * @param { string } url Target URL address. + * @param { IJsonpParam } param Querying params object. + * @param { number } timeout Timeout setting (ms). + * + * @example + * jsonp('/url', { + * callbackQuery: '' + * callbackName: '', + * name: 'LancerComet', + * age: 26 + * }, 1000) + */ +declare function jsonp(url: string, param?: IJsonpParam, timeout?: number): Promise; +export { VueJsonp, jsonp }; +/** + * JSONP parameter declaration. + */ +interface IJsonpParam { + /** + * Callback query name. + * This param is used to define the query name of the callback function. + * + * @example + * // The request url will be "/some-url?myCallback=jsonp_func&myCustomUrlParam=veryNice" + * jsonp('/some-url', { + * callbackQuery: 'myCallback', + * callbackName: 'jsonp_func', + * myCustomUrlParam: 'veryNice' + * }) + * + * @default callback + */ + callbackQuery?: string; + /** + * Callback function name. + * This param is used to define the jsonp function name. + * + * @example + * // The request url will be "/some-url?myCallback=jsonp_func&myCustomUrlParam=veryNice" + * jsonp('/some-url', { + * callbackQuery: 'myCallback', + * callbackName: 'jsonp_func', + * myCustomUrlParam: 'veryNice' + * }) + * + * @default jsonp_ + randomStr() + */ + callbackName?: string; + /** + * Custom data. + */ + [key: string]: any; +} diff --git a/node_modules/vue-jsonp/dist/index.esm.js b/node_modules/vue-jsonp/dist/index.esm.js new file mode 100644 index 0000000..893bec4 --- /dev/null +++ b/node_modules/vue-jsonp/dist/index.esm.js @@ -0,0 +1,8 @@ +function e(t,n){t=t.replace(/=/g,"");var o=[];switch(n.constructor){case String:case Number:case Boolean:o.push(encodeURIComponent(t)+"="+encodeURIComponent(n));break;case Array:n.forEach((function(n){o=o.concat(e(t+"[]=",n))}));break;case Object:Object.keys(n).forEach((function(r){var a=n[r];o=o.concat(e(t+"["+r+"]",a))}))}return o}function t(e){var n=[];return e.forEach((function(e){"string"==typeof e?n.push(e):n=n.concat(t(e))})),n} +/** + * Vue Jsonp. + * # Carry Your World # + * + * @author: LancerComet + * @license: MIT + */var n={install:function(e){e.prototype.$jsonp=o}};function o(n,o,r){if(void 0===o&&(o={}),"string"!=typeof n)throw new Error('[Vue-jsonp] Type of param "url" is not string.');if("object"!=typeof o||!o)throw new Error("[Vue-jsonp] Invalid params, should be an object.");return r="number"==typeof r?r:5e3,new Promise((function(a,c){var u="string"==typeof o.callbackQuery?o.callbackQuery:"callback",i="string"==typeof o.callbackName?o.callbackName:"jsonp_"+(Math.floor(1e5*Math.random())*Date.now()).toString(16);o[u]=i,delete o.callbackQuery,delete o.callbackName;var s=[];Object.keys(o).forEach((function(t){s=s.concat(e(t,o[t]))}));var l=t(s).join("&"),f=function(){p(),clearTimeout(m),c({status:400,statusText:"Bad Request"})},p=function(){b.removeEventListener("error",f)},d=function(){document.body.removeChild(b),delete window[i]},m=null;r>-1&&(m=setTimeout((function(){p(),d(),c({statusText:"Request Timeout",status:408})}),r)),window[i]=function(e){clearTimeout(m),p(),d(),a(e)};var b=document.createElement("script");b.addEventListener("error",f),b.src=n+(/\?/.test(n)?"&":"?")+l,document.body.appendChild(b)}))}export{n as VueJsonp,o as jsonp}; diff --git a/node_modules/vue-jsonp/dist/index.js b/node_modules/vue-jsonp/dist/index.js new file mode 100644 index 0000000..c5e0aee --- /dev/null +++ b/node_modules/vue-jsonp/dist/index.js @@ -0,0 +1,8 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).VueJsonp={})}(this,(function(e){"use strict";function t(e,o){e=e.replace(/=/g,"");var n=[];switch(o.constructor){case String:case Number:case Boolean:n.push(encodeURIComponent(e)+"="+encodeURIComponent(o));break;case Array:o.forEach((function(o){n=n.concat(t(e+"[]=",o))}));break;case Object:Object.keys(o).forEach((function(r){var c=o[r];n=n.concat(t(e+"["+r+"]",c))}))}return n}function o(e){var t=[];return e.forEach((function(e){"string"==typeof e?t.push(e):t=t.concat(o(e))})),t} +/** + * Vue Jsonp. + * # Carry Your World # + * + * @author: LancerComet + * @license: MIT + */var n={install:function(e){e.prototype.$jsonp=r}};function r(e,n,r){if(void 0===n&&(n={}),"string"!=typeof e)throw new Error('[Vue-jsonp] Type of param "url" is not string.');if("object"!=typeof n||!n)throw new Error("[Vue-jsonp] Invalid params, should be an object.");return r="number"==typeof r?r:5e3,new Promise((function(c,a){var i="string"==typeof n.callbackQuery?n.callbackQuery:"callback",s="string"==typeof n.callbackName?n.callbackName:"jsonp_"+(Math.floor(1e5*Math.random())*Date.now()).toString(16);n[i]=s,delete n.callbackQuery,delete n.callbackName;var u=[];Object.keys(n).forEach((function(e){u=u.concat(t(e,n[e]))}));var f=o(u).join("&"),l=function(){p(),clearTimeout(b),a({status:400,statusText:"Bad Request"})},p=function(){m.removeEventListener("error",l)},d=function(){document.body.removeChild(m),delete window[s]},b=null;r>-1&&(b=setTimeout((function(){p(),d(),a({statusText:"Request Timeout",status:408})}),r)),window[s]=function(e){clearTimeout(b),p(),d(),c(e)};var m=document.createElement("script");m.addEventListener("error",l),m.src=e+(/\?/.test(e)?"&":"?")+f,document.body.appendChild(m)}))}e.VueJsonp=n,e.jsonp=r,Object.defineProperty(e,"__esModule",{value:!0})})); diff --git a/node_modules/vue-jsonp/dist/utils/index.d.ts b/node_modules/vue-jsonp/dist/utils/index.d.ts new file mode 100644 index 0000000..6b2f521 --- /dev/null +++ b/node_modules/vue-jsonp/dist/utils/index.d.ts @@ -0,0 +1,20 @@ +/** + * Generate random string. + * + * @return { string } + */ +declare function randomStr(): string; +/** + * Format params into querying string. + * + * @return {string[]} + */ +declare function formatParams(queryKey: string, value: any): string[]; +/** + * Flat querys. + * + * @param {string[] | (string[])[]} array + * @returns + */ +declare function flatten(array: string[] | (string[])[]): string[]; +export { formatParams, flatten, randomStr }; diff --git a/node_modules/vue-jsonp/package.json b/node_modules/vue-jsonp/package.json new file mode 100644 index 0000000..c3ceeaf --- /dev/null +++ b/node_modules/vue-jsonp/package.json @@ -0,0 +1,80 @@ +{ + "_from": "vue-jsonp", + "_id": "vue-jsonp@2.0.0", + "_inBundle": false, + "_integrity": "sha512-Mzd9GNeuKP5hHFDWZNMWOsCuMILSkA6jo2l4A02wheFz3qqBzH7aSEFTey1BRCZCLizlaf1EqJ5YUtF392KspA==", + "_location": "/vue-jsonp", + "_phantomChildren": {}, + "_requested": { + "type": "tag", + "registry": true, + "raw": "vue-jsonp", + "name": "vue-jsonp", + "escapedName": "vue-jsonp", + "rawSpec": "", + "saveSpec": null, + "fetchSpec": "latest" + }, + "_requiredBy": [ + "#USER", + "/" + ], + "_resolved": "https://registry.npmjs.org/vue-jsonp/-/vue-jsonp-2.0.0.tgz", + "_shasum": "3bfac56bb72941a2511c11e1a123b876f03427f7", + "_spec": "vue-jsonp", + "_where": "C:\\Users\\Administrator\\Documents\\high-mini", + "author": { + "name": "LancerComet", + "email": "chw644@hotmail.com" + }, + "bugs": { + "url": "https://github.com/LancerComet/vue-jsonp/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "A tiny library for handling JSONP request.", + "devDependencies": { + "@types/expect-puppeteer": "^4.4.3", + "@types/jest": "^26.0.14", + "@types/jest-environment-puppeteer": "^4.4.0", + "@types/puppeteer": "^3.0.2", + "jest": "^26.4.2", + "jest-puppeteer": "^4.4.0", + "puppeteer": "^5.3.1", + "rollup": "^2.28.2", + "rollup-plugin-cleanup": "^3.2.1", + "rollup-plugin-delete": "^2.0.0", + "rollup-plugin-terser": "^7.0.2", + "rollup-plugin-typescript2": "^0.27.3", + "ts-jest": "^26.4.1", + "tslint": "^6.1.3", + "typescript": "^4.0.3", + "vue": "^2.6.12" + }, + "files": [ + "dist/", + "index.d.ts", + "README.md" + ], + "homepage": "https://github.com/LancerComet/vue-jsonp#readme", + "keywords": [ + "Vue", + "JSONP" + ], + "license": "MIT", + "main": "./dist/index.js", + "module": "./dist/index.esm.js", + "name": "vue-jsonp", + "repository": { + "type": "git", + "url": "git+https://github.com/LancerComet/vue-jsonp.git" + }, + "scripts": { + "build": "rollup -c", + "prepublish": "npm run test", + "pretest": "npm run build", + "preversion": "npm run test", + "test": "jest" + }, + "version": "2.0.0" +} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..530f81d --- /dev/null +++ b/package-lock.json @@ -0,0 +1,11 @@ +{ + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "vue-jsonp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/vue-jsonp/-/vue-jsonp-2.0.0.tgz", + "integrity": "sha512-Mzd9GNeuKP5hHFDWZNMWOsCuMILSkA6jo2l4A02wheFz3qqBzH7aSEFTey1BRCZCLizlaf1EqJ5YUtF392KspA==" + } + } +} diff --git a/pages/tabBar/category/category.vue b/pages/tabBar/category/category.vue index 377c33a..365acf2 100644 --- a/pages/tabBar/category/category.vue +++ b/pages/tabBar/category/category.vue @@ -11,12 +11,12 @@ - - - + + - + @@ -36,7 +36,7 @@ - @@ -56,7 +56,7 @@ - +