Compare commits

...

2 Commits

Author SHA1 Message Date
杨豪 27b6c40a4d 代码同步 3 years ago
杨豪 e942e8634b 聚会h5 3 years ago
  1. 11
      App.vue
  2. 4
      common/config.js
  3. 139
      common/jweixin.js
  4. 2
      components/wm-poster/wm-posters.vue
  5. 5
      main.js
  6. 20
      manifest.json
  7. 27
      mixins/SendVerifyCode.js
  8. 30
      node_modules/jweixin-module/README.md
  9. 1
      node_modules/jweixin-module/lib/index.js
  10. 54
      node_modules/jweixin-module/package.json
  11. 21
      node_modules/vue-jsonp/LICENSE
  12. 153
      node_modules/vue-jsonp/README.md
  13. 73
      node_modules/vue-jsonp/dist/index.d.ts
  14. 8
      node_modules/vue-jsonp/dist/index.esm.js
  15. 8
      node_modules/vue-jsonp/dist/index.js
  16. 20
      node_modules/vue-jsonp/dist/utils/index.d.ts
  17. 80
      node_modules/vue-jsonp/package.json
  18. 15
      package-lock.json
  19. 5
      pages.json
  20. 85
      pages/index/index.vue
  21. 55
      pages/index/selectCampus.vue
  22. 5
      pages/index/taskDetail.vue
  23. 5
      pages/index/tuijianList.vue
  24. 5
      pages/my/channelshop.vue
  25. 17
      pages/my/index.vue
  26. 33
      pages/my/myVIP.vue
  27. 5
      pages/my/mychannel.vue
  28. 5
      pages/my/shareFriends.vue
  29. 5
      pages/my/teamList.vue
  30. 10
      pages/order/index.vue
  31. 245
      pages/public/login.vue
  32. 5
      pages/task/search.vue
  33. 5
      pages/task/tasklist.vue
  34. BIN
      static/img/code-icon.png
  35. BIN
      static/img/phone-icon.png
  36. 1
      wsl.txt

11
App.vue

@ -55,7 +55,16 @@
});
},
onShow: function() {
onShow: function(e) {
console.log(e.query.code)
if(e && e.query.code){ //h5code
let code = e.query.code
this.$queue.setData('wxCode', code);
}
if(e && e.query.latng){ //h5
this.$queue.setData('latH', e.query.latng.split(',')[0]);
this.$queue.setData('lngH', e.query.latng.split(',')[1]);
}
},
onHide: function() {}
};

4
common/config.js

@ -1,4 +1,6 @@
const ROOTPATH1 = "https://bwc.xianmxkj.com/sqx_fast";
// const ROOTPATH1 = "http://10.11.32.109:8891/sqx_fast";
// const ROOTPATH1 = "http://10.11.32.107:8891/sqx_fast";
const ROOTPATH1 = "http://waimai.admin.service.yiqihuiju.com/sqx_fast";
const ROOTPATH = "https://bwc.xianmxkj.com/sqx_fast";
module.exports = {
APIHOST: ROOTPATH,

139
common/jweixin.js

@ -0,0 +1,139 @@
var jweixin = require('jweixin-module')
const userId = uni.getStorageSync('userId');
console.log(userId,'userId')
import HttpRequest from '../common/httpRequest'
export default {
//判断是否在微信中
isWechat: function () {
var ua = window.navigator.userAgent.toLowerCase();
if (ua.match(/micromessenger/i) == 'micromessenger') {
// console.log(‘是微信客户端‘)
return true;
} else {
// console.log(‘不是微信客户端‘)
return false;
}
},
//初始化sdk配置
initJssdkShare: function (callback, url) {
HttpRequest.getT('/appLogin/jsapiInit',{url: url}).then((result)=>{
if(result.code == 0){
jweixin.config({
debug: false,
appId: result.appId,
timestamp: result.timestamp,
nonceStr: result.nonceStr,
signature: result.signature,
jsApiList: [
'chooseWXPay',
'checkJsApi',
'updateTimelineShareData',
'updateAppMessageShareData',
'getLocation'
]
});
if (callback) {
callback(result);
}
}
})
},
share: function (data, url) {
url = url ? url : window.location.href;
console.log("url:" + url)
if (!this.isWechat()) {
uni.showToast({
title: '不在微信客户端',
icon: 'none'
})
return;
}
//每次都需要重新初始化配置,才可以进行分享
this.initJssdkShare(function (signData) {
jweixin.ready(function () {
var shareData = {
title: data && data.title ? data.title : signData.site_name,
desc: data && data.desc ? data.desc : signData.site_description,
link: url,
imgUrl: data && data.img ? data.img : signData.site_logo,
success: function (res) {
// 分享后的一些操作,比如分享统计等等
},
cancel: function (res) {}
};
//分享给朋友接口
jweixin.updateAppMessageShareData(shareData);
//分享到朋友圈接口
// jweixin.updateTimelineShareData(shareData);
});
}, url)
},
wxChatWebPay: function (url) {
if (!this.isWechat()) {
uni.showToast({
title: '不在微信客户端',
icon: 'none'
})
return;
}
return new Promise((resolve,reject)=>{
//每次都需要重新初始化配置
this.initJssdkShare(function () {
jweixin.ready(function () {
HttpRequest.postT('/api/order/wxPayMember?userId=' + userId + '&type=3').then((orderInfo)=>{
jweixin.chooseWXPay({
nonceStr: orderInfo.noncestr,
timestamp: orderInfo.timestamp,
package: orderInfo.package,
signType: orderInfo.signType,
paySign: orderInfo.sign,
success: (res) => {
console.log('支付成功')
resolve(res)
},
fail: (res)=> {
reject(res)
console.log('支付失败')
},
cancel: (res)=> {
resolve(res)
console.log('取消支付')
}
})
})
});
},url)
})
},
wxGetLocation: function(url){
return new Promise((resolve,reject)=>{
if (!this.isWechat()) {
uni.showModal({
title: '提示!',
content: '请在微信客户端内打开',
showCancel: false
})
uni.hideLoading()
return
reject(res)
}
//每次都需要重新初始化配置
this.initJssdkShare(function () {
jweixin.ready(function () {
jweixin.getLocation({
type: 'wgs84',
success: function (res) {
console.log('jssdk获取的位置:',res.longitude,res.latitude)
resolve(res)
},
cancel: function (res) {
reject(res)
alert('您已禁止获取位置信息')
}
});
});
},url)
})
}
}

2
components/wm-poster/wm-posters.vue

@ -24,7 +24,7 @@
},
Title: { //
Type: String,
default: '省钱兄霸王餐'
default: '惠聚'
},
TitleColor: { //
Type: String,

5
main.js

@ -27,11 +27,16 @@ Vue.config.productionTip = false
Vue.prototype.$Request = HttpRequest;
Vue.prototype.$queue = queue;
Vue.prototype.$WechatUrl = 'http://waimai.admin.service.yiqihuiju.com';
Vue.prototype.$Sysconf = HttpRequest.config;
Vue.prototype.$SysCache = HttpCache;
Vue.mixin(share)
App.mpType = 'app';
import {VueJsonp} from 'vue-jsonp'
Vue.use(VueJsonp)
const app = new Vue({
...App

20
manifest.json

@ -1,5 +1,5 @@
{
"name" : "省钱兄霸王餐",
"name" : "惠聚",
"appid" : "__UNI__uni_sqx",
"description" : "",
"versionName" : "1.0.6",
@ -165,7 +165,21 @@
"enable" : false
},
"h5" : {
"title" : "省钱兄霸王餐",
"domain" : "https://bwc.xianmxkj.com"
"title" : "惠聚",
"domain" : "http://waimai.admin.service.yiqihuiju.com",
"router" : {
"mode" : "history"
},
"devServer" : {
"https" : false,
"disableHostCheck" : true
},
"sdkConfigs" : {
"maps" : {
"qqmap" : {
"key" : "LH3BZ-NYN62-2SIUW-CGKY5-K5MXT-FWFOI"
}
}
}
}
}

27
mixins/SendVerifyCode.js

@ -0,0 +1,27 @@
export default {
data() {
return {
disabled: false,
text: "获取验证码"
};
},
methods: {
sendCode() {
if (this.disabled) return;
this.disabled = true;
let n = 60;
this.text = "剩余 " + n + "s";
const run = setInterval(() => {
n = n - 1;
if (n < 0) {
clearInterval(run);
}
this.text = "剩余 " + n + "s";
if (this.text < "剩余 " + 0 + "s") {
this.disabled = false;
this.text = "重新获取";
}
}, 1000);
}
}
};

30
node_modules/jweixin-module/README.md generated vendored

@ -0,0 +1,30 @@
# jweixin-module
微信JS-SDK
## 安装
### NPM
```shell
npm install jweixin-module --save
```
### UMD
```http
https://unpkg.com/jweixin-module/out/index.js
```
## 使用
```js
var jweixin = require('jweixin-module')
jweixin.ready(function(){
// TODO
});
```
## 完整API
>[微信JS-SDK说明文档](https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115)

1
node_modules/jweixin-module/lib/index.js generated vendored

File diff suppressed because one or more lines are too long

54
node_modules/jweixin-module/package.json generated vendored

@ -0,0 +1,54 @@
{
"_from": "jweixin-module",
"_id": "jweixin-module@1.6.0",
"_inBundle": false,
"_integrity": "sha1-Sn6mFAg+PJw/SeL9wruILPpY380=",
"_location": "/jweixin-module",
"_phantomChildren": {},
"_requested": {
"type": "tag",
"registry": true,
"raw": "jweixin-module",
"name": "jweixin-module",
"escapedName": "jweixin-module",
"rawSpec": "",
"saveSpec": null,
"fetchSpec": "latest"
},
"_requiredBy": [
"#USER",
"/"
],
"_resolved": "https://registry.nlark.com/jweixin-module/download/jweixin-module-1.6.0.tgz",
"_shasum": "4a7ea614083e3c9c3f49e2fdc2bb882cfa58dfcd",
"_spec": "jweixin-module",
"_where": "F:\\惠聚h5\\huiju-user",
"author": {
"name": "Shengqiang Guo"
},
"bugs": {
"url": "https://github.com/zhetengbiji/jweixin-module/issues"
},
"bundleDependencies": false,
"deprecated": false,
"description": "微信JS-SDK",
"devDependencies": {},
"homepage": "https://github.com/zhetengbiji/jweixin-module#readme",
"keywords": [
"wxjssdk",
"weixin",
"jweixin",
"wechat",
"jssdk",
"wx"
],
"license": "ISC",
"main": "lib/index.js",
"name": "jweixin-module",
"repository": {
"type": "git",
"url": "git+https://github.com/zhetengbiji/jweixin-module.git"
},
"scripts": {},
"version": "1.6.0"
}

21
node_modules/vue-jsonp/LICENSE generated vendored

@ -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.

153
node_modules/vue-jsonp/README.md generated vendored

@ -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<never>`
- `jsonp<T>: (url: string, param?: IJsonpParam, timeout?: number) => Promise<T>`
## 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<string>('/my-awesome-url')
assert(result === 'such a jsonp')
```
## License
MIT

73
node_modules/vue-jsonp/dist/index.d.ts generated vendored

@ -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<never>;
/**
* 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<T = any>(url: string, param?: IJsonpParam, timeout?: number): Promise<T>;
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;
}

8
node_modules/vue-jsonp/dist/index.esm.js generated vendored

@ -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};

8
node_modules/vue-jsonp/dist/index.js generated vendored

@ -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})}));

20
node_modules/vue-jsonp/dist/utils/index.d.ts generated vendored

@ -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 };

80
node_modules/vue-jsonp/package.json generated vendored

@ -0,0 +1,80 @@
{
"_from": "vue-jsonp",
"_id": "vue-jsonp@2.0.0",
"_inBundle": false,
"_integrity": "sha1-O/rFa7cpQaJRHBHhoSO4dvA0J/c=",
"_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.nlark.com/vue-jsonp/download/vue-jsonp-2.0.0.tgz",
"_shasum": "3bfac56bb72941a2511c11e1a123b876f03427f7",
"_spec": "vue-jsonp",
"_where": "F:\\惠聚h5\\huiju-user",
"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"
}

15
package-lock.json generated

@ -1,3 +1,16 @@
{
"lockfileVersion": 1
"requires": true,
"lockfileVersion": 1,
"dependencies": {
"jweixin-module": {
"version": "1.6.0",
"resolved": "https://registry.nlark.com/jweixin-module/download/jweixin-module-1.6.0.tgz",
"integrity": "sha1-Sn6mFAg+PJw/SeL9wruILPpY380="
},
"vue-jsonp": {
"version": "2.0.0",
"resolved": "https://registry.nlark.com/vue-jsonp/download/vue-jsonp-2.0.0.tgz",
"integrity": "sha1-O/rFa7cpQaJRHBHhoSO4dvA0J/c="
}
}
}

5
pages.json

@ -424,8 +424,11 @@
}
],
"globalStyle": {
// #ifdef H5
"navigationStyle": "custom",
// #endif
"navigationBarTextStyle": "black",
"navigationBarTitleText": "省钱兄霸王餐",
"navigationBarTitleText": "惠聚",
"navigationBarBackgroundColor": "#FFFFFF",
"backgroundColor": "#FFFFFF"
},

85
pages/index/index.vue

@ -72,6 +72,7 @@
<script>
import RenDropdownFilter from '@/components/ren-dropdown-filter/ren-dropdown-filter.vue'
import taskHomeList from "@/components/mask/task-home-list1.vue"
import jweixin from '@/common/jweixin.js'
var QQMapWX = require('@/js_sdk/qqmap-wx-jssdk1.2/qqmap-wx-jssdk.js');
var qqmapsdk;
export default {
@ -82,7 +83,7 @@
data() {
return {
localCampus: '未知',
city: '',
city: '定位中..',
meituanList: {},
elemeList: {},
banners: [],
@ -136,19 +137,17 @@
if (e.userByinvitationId) {
this.$queue.setData('userByinvitationId', e.userByinvitationId);
}
// #ifdef MP-WEIXIN
if (e.scene) {
const scene = decodeURIComponent(e.scene);
this.$queue.setData('userByinvitationId', scene.split(',')[0]);
}
// #endif
// #ifdef MP-WEIXIN
// API
qqmapsdk = new QQMapWX({
key: 'J5FBZ-XCUKI-UFEG2-5KOJJ-XD4L3-KNFNG'
key: 'LH3BZ-NYN62-2SIUW-CGKY5-K5MXT-FWFOI'
});
// #ifdef MP-WEIXIN
that.authorizationLocation();
// #endif
this.getBannerList();
@ -213,6 +212,7 @@
let that = this;
var city = this.$queue.getData('city');
var localCampus = this.$queue.getData('localCampus');
console.log(localCampus)
if (city && localCampus) {
console.log(city)
this.latitude = this.$queue.getData('latitude');
@ -223,13 +223,17 @@
this.page = 1;
this.getHaoDianTuiJian1();
this.getHaoDianTuiJian();
} else{
// #ifdef H5
that.initMyPosition();
// #endif
}
let userId = this.$queue.getData('userId');
if (userId) {
//
if (!uni.getStorageSync('sendindexMsg')) {
this.openMsg()
// this.openMsg()
}
}
},
@ -472,9 +476,23 @@
var that = this;
qqmapsdk.reverseGeocoder({
location: latitude + ',' + longitude || '',
output: 'jsonp',
success: function(res) { //
if (res.status == 0) {
console.log(res)
this.setLocation(latitude, longitude, res)
}
},
fail: function(error) {
console.error(error);
},
complete: function(res) {
console.log(res);
}
})
},
setLocation(latitude,longitude,res){
var that = this;
that.authorize = false;
var res = res.result;
that.latitude = latitude;
@ -487,13 +505,35 @@
that.localCampus = res.address_reference.landmark_l2.title;
that.getHaoDianTuiJian1();
that.getHaoDianTuiJian();
}
},
fail: function(error) {
console.error(error);
//
wxGetLocation(){
var that = this;
var pageUrl = encodeURIComponent(window.location.href);
jweixin.wxGetLocation(pageUrl).then((result)=>{
let str = `output=jsonp&location=${result.latitude},${result.longitude}&key=LH3BZ-NYN62-2SIUW-CGKY5-K5MXT-FWFOI`
this.$jsonp('https://apis.map.qq.com/ws/geocoder/v1/?'+str).then(res=>{
uni.hideLoading();
if(res.status == 0){
console.log(res)
that.setLocation(result.latitude, result.longitude, res)
}
})
})
},
complete: function(res) {
console.log(res);
//h5
loAcquire(longitude,latitude){
let that = this;
uni.showLoading({
title: '加载中',
mask:true
});
let str = `output=jsonp&key=J5FBZ-XCUKI-UFEG2-5KOJJ-XD4L3-KNFNG&location=${longitude},${latitude}`
this.$jsonp('https://apis.map.qq.com/ws/geocoder/v1/?'+str,{}).then(res=>{
uni.hideLoading();
console.log(res)
if(res.status == 0){
that.setLocation(latitude, longitude, res)
}
})
},
@ -505,7 +545,6 @@
// #ifdef MP-WEIXIN
uni.openSetting({
success(res3) {
console.log(res3)
if (res3.authSetting[
'scope.userLocation'
]) {
@ -521,13 +560,28 @@
},
initMyPosition() {
let that = this;
if(jweixin.isWechat()){
that.wxGetLocation()
} else{
uni.getLocation({
type: 'gcj02',
altitude: true,
success: res => {
that.initLocation(res.latitude, res.longitude);
// #ifdef MP-WEIXIN
that.initLocation(res.latitude, res.longitude)
// #endif
// #ifdef H5
that.loAcquire(res.latitude, res.longitude)
// #endif
},
fail: (res) => {
console.log(res)
},
complete: (res) => {
console.log(res)
}
});
}
},
authorizationLocation: function() {
let that = this;
@ -643,9 +697,14 @@
},
goLogin() {
this.$queue.setData('href', '/pages/index/index');
//#ifndef H5
uni.navigateTo({
url: '/pages/public/login'
});
//#endif
//#ifdef H5
window.location.href = this.$WechatUrl + '/sqx_fast/appLogin/wechatLogin';
//#endif
},
navClick: function(res) {
if (uni.getStorageSync('sendindexMsg')) {

55
pages/index/selectCampus.vue

@ -28,9 +28,12 @@
<script>
import ZhToPinYin from '@/js_sdk/tui-zh-pinyin/tui-zh-pinyin.js';
import jweixin from '@/common/jweixin.js'
var QQMapWX = require('@/js_sdk/qqmap-wx-jssdk1.2/qqmap-wx-jssdk.js');
var qqmapsdk;
// #ifdef MP-WEIXIN
var citySelector = requirePlugin('citySelector');
// #endif
export default {
data() {
return {
@ -44,11 +47,16 @@
names: "",
dizhi: ""
},
city: '西安'
city: '未知'
}
},
onLoad: function(options) {
const that = this;
var city = this.$queue.getData("city")
console.log(this.$queue.getData("city"))
if (city != '') {
this.city = city
}
// #ifdef MP-WEIXIN
// API
qqmapsdk = new QQMapWX({
@ -61,6 +69,7 @@
}
},
onShow() {
//#ifdef MP-WEIXIN
const item = citySelector.getCity();
if(item){
citySelector.clearCity();
@ -69,11 +78,30 @@
this.$queue.setData('city', item.name);
this.$queue.setData('localCampus', item.name);
}
var city = this.$queue.getData("city")
if (city != '') {
this.city = city
//#endif
//#ifdef H5
let lat = this.$queue.getData("latH")
let lng = this.$queue.getData("lngH")
console.log(lat,'latlatlatlat')
if(lat){
let str = `output=jsonp&location=${lat},${lng}&key=LH3BZ-NYN62-2SIUW-CGKY5-K5MXT-FWFOI`
this.$jsonp('https://apis.map.qq.com/ws/geocoder/v1/?'+str).then(res=>{
if(res.status == 0){
console.log(res,'resresresresres')
this.latitude = res.result.location.lat;
this.longitude = res.result.location.lng;
this.weizhi.names = res.result.formatted_addresses.recommend;
this.weizhi.dizhi = res.result.address
this.city = res.result.address_component.city
this.$queue.setData('latitude', this.latitude);
this.$queue.setData('longitude', this.longitude);
this.$queue.setData('city', res.result.address_component.city);
this.$queue.setData('localCampus', res.result.formatted_addresses.recommend);
}
})
}
//#endif
},
methods: {
gocity() {
@ -90,11 +118,14 @@
},
saveAddress() {
console.log("this.city____:" + this.city)
console.log("this.this.weizhi.names:" + this.weizhi.names)
this.$queue.setData('latitude', this.latitude);
this.$queue.setData('longitude', this.longitude);
this.$queue.setData('city', this.city);
this.$queue.setData('localCampus', this.weizhi.names);
uni.navigateBack();
// this.$queue.setData('localCampus', this.weizhi.names);
uni.switchTab({
url: '/pages/index/index'
})
},
initLocation(latitude, longitude) {
var that = this;
@ -122,6 +153,7 @@
},
dingwei() {
const that = this;
//#ifdef MP-WEIXIN
uni.chooseLocation({
success: function(res) {
console.log(res)
@ -130,7 +162,7 @@
console.log('纬度:' + res.latitude);
console.log('经度:' + res.longitude);
if (res.name && res.address) {
that.initLocation(res.latitude, res.longitude);
// that.initLocation(res.latitude, res.longitude);
that.latitude = res.latitude;
that.longitude = res.longitude;
that.weizhi.names = res.name;
@ -140,6 +172,12 @@
}
}
});
//#endif
//#ifdef H5
var pageUrl = window.location.href;
var url1 = `https://apis.map.qq.com/tools/locpicker?search=1&type=0&backurl=${pageUrl}&key=LH3BZ-NYN62-2SIUW-CGKY5-K5MXT-FWFOI&referer=myapp`
location.href= url1;
//#endif
}
}
}
@ -324,6 +362,7 @@
}
.navLeft {
display: flex;
align-items: center;
width: 20%;
position: absolute;

5
pages/index/taskDetail.vue

@ -741,9 +741,14 @@
},
goLogin() {
this.$queue.setData('href', '/pages/index/taskDetail?helpOrderId=' + this.helpOrderId);
//#ifndef H5
uni.navigateTo({
url: '/pages/public/login'
});
//#endif
//#ifdef H5
window.location.href = 'http://waimai.admin.service.yiqihuiju.com/sqx_fast/appLogin/wechatLogin';
//#endif
},
}
}

5
pages/index/tuijianList.vue

@ -128,9 +128,14 @@
})
},
goLogin() {
//#ifndef H5
uni.navigateTo({
url: '/pages/public/login'
});
//#endif
//#ifdef H5
window.location.href = 'http://waimai.admin.service.yiqihuiju.com/sqx_fast/appLogin/wechatLogin';
//#endif
},
goDetail(nav) {
uni.navigateTo({

5
pages/my/channelshop.vue

@ -38,9 +38,14 @@
methods: {
goLogin() {
this.$queue.setData('href', '/pages/index/index');
//#ifndef H5
uni.navigateTo({
url: '/pages/public/login'
});
//#endif
//#ifdef H5
window.location.href = 'http://waimai.admin.service.yiqihuiju.com/sqx_fast/appLogin/wechatLogin';
//#endif
},
clickItem: function(options) {
let token = this.$queue.getData('token');

17
pages/my/index.vue

@ -271,7 +271,7 @@
export default {
data() {
return {
avatar: "/static/img/logo.png",
avatar: "https://download.cyjyyjy.com/huijuLogo.png",
member: 0,
total: 0,
SumMoney: 0,
@ -329,8 +329,6 @@
let avatar = this.$queue.getData('avatar');
if (avatar && avatar !== 'undefined') {
this.avatar = avatar;
} else {
this.avatar = '/static/img/logo.png';
}
let nickName = this.$queue.getData('nickName');
if (nickName && nickName !== 'undefined') {
@ -354,7 +352,9 @@
//
if (this.showModal) {
//#ifdef MP-WEIXIN
this.openMsg()
//#endif
}
}
},
@ -659,9 +659,14 @@
},
goLogin() {
this.$queue.setData('href', '/pages/my/index');
//#ifndef H5
uni.navigateTo({
url: '/pages/public/login'
});
//#endif
//#ifdef H5
window.location.href = this.$WechatUrl + '/sqx_fast/appLogin/wechatLogin';
//#endif
},
//退
loginOut() {
@ -703,15 +708,15 @@
.user-bj {
width: 100%;
height: 370upx;
// height: 370upx;
z-index: 5;
}
.user-box {
width: 100%;
height: 250upx;
// height: 250upx;
z-index: 15;
padding: 150upx 30upx 0;
padding: 30upx 30upx 0;
display: flex;
align-items: center;

33
pages/my/myVIP.vue

@ -97,6 +97,7 @@
</template>
<script>
import jweixin from '@/common/jweixin.js'
export default {
data() {
return {
@ -166,18 +167,38 @@
});
},
goLogin() {
//#ifndef H5
uni.navigateTo({
url: '/pages/public/login'
});
//#endif
//#ifdef H5
window.location.href = 'http://waimai.admin.service.yiqihuiju.com/sqx_fast/appLogin/wechatLogin';
//#endif
},
btns() {
var that = this;
let token = this.$queue.getData('token');
if (token) {
let userId = this.$queue.getData('userId');
uni.showLoading({
title: '支付中'
});
this.$Request.postT('/api/order/wxPayMember?userId=' + userId).then(res => {
//#ifdef MP-WEIXIN
this.$Request.postT('/api/order/wxPayMember?userId=' + userId + '&type=3').then(res => {
this.wxPay(res)
uni.hideLoading();
})
//#endif
//#ifdef H5
this.h5Pay()
//#endif
} else {
uni.hideLoading();
this.goLogin();
}
},
wxPay(res){
uni.requestPayment({
provider: 'wxpay',
timeStamp: res.timestamp,
@ -196,13 +217,15 @@
},
fail: function(err) {
uni.hideLoading();
this.$queue.showToast('支付失败');
that.$queue.showToast('支付失败');
}
});
},
h5Pay(){
var pageUrl = encodeURIComponent(window.location.href);
jweixin.wxChatWebPay(pageUrl).then((result)=>{
uni.hideLoading();
})
} else {
this.goLogin();
}
},
}
}

5
pages/my/mychannel.vue

@ -42,9 +42,14 @@
}
},
goLogin() {
//#ifndef H5
uni.navigateTo({
url: '/pages/public/login'
});
//#endif
//#ifdef H5
window.location.href = 'http://waimai.admin.service.yiqihuiju.com/sqx_fast/appLogin/wechatLogin';
//#endif
}
}
}

5
pages/my/shareFriends.vue

@ -173,9 +173,14 @@
this.modalName = 'Image';
},
goLogin() {
//#ifndef H5
uni.navigateTo({
url: '/pages/public/login'
});
//#endif
//#ifdef H5
window.location.href = 'http://waimai.admin.service.yiqihuiju.com/sqx_fast/appLogin/wechatLogin';
//#endif
},
showModal() {
let token = this.$queue.getData('token');

5
pages/my/teamList.vue

@ -49,9 +49,14 @@
}
},
goLogin() {
//#ifndef H5
uni.navigateTo({
url: '/pages/public/login'
});
//#endif
//#ifdef H5
window.location.href = 'http://waimai.admin.service.yiqihuiju.com/sqx_fast/appLogin/wechatLogin';
//#endif
}
}
}

10
pages/order/index.vue

@ -117,7 +117,7 @@
this.page = 1;
this.getList();
} else {
this.goLogin();
// this.goLogin();
}
},
methods: {
@ -203,9 +203,14 @@
this.getList();
},
goLogin() {
//#ifndef H5
uni.navigateTo({
url: '/pages/public/login'
});
//#endif
//#ifdef H5
window.location.href = 'http://waimai.admin.service.yiqihuiju.com/sqx_fast/appLogin/wechatLogin';
//#endif
},
goDetail(id) {
var latitude = this.$queue.getData('latitude')
@ -357,7 +362,6 @@
.main {
padding: 106upx 20upx 0;
.card-box-order {
.list-item {
background: #FFFFFF;
@ -756,7 +760,7 @@
/* #endif */
/* #ifdef H5 */
position: fixed;
top: 44px;
top: 0px;
left: 0;
z-index: 999;
/* #endif */

245
pages/public/login.vue

@ -5,11 +5,14 @@
<view class="mp_wxBox">
<view>
<view class="headers">
<image src="../../static/img/logo.png" style="border-radius: 50%;"></image>
<image src="https://download.cyjyyjy.com/huijuLogo.png" style=" border-radius: 50%;"></image>
</view>
<view class="content">
<view>申请获取以下权限</view>
<text style="margin-top: 20rpx;">获得你的公开信息(昵称头像地区等)</text>
<view style="font-size: 16px;font-family: PingFang SC;font-weight: 500;color: #000000;"
class="title">惠聚买单</view>
<view
style="margin-top: 21rpx;font-size: 12px;font-family: PingFang SC;font-weight: 500;color: #000000;">
为了提供优质服务需要您授权基本信息</view>
</view>
<button v-show="weixinPhone" style="background: #FD441D;background-color: #FD441D;color: #FFFFFF;"
class="bottom" open-type="getPhoneNumber" @getphonenumber="getPhoneNumber">
@ -19,33 +22,62 @@
open-type="getUserInfo" withCredentials="true" lang="zh_CN" @getuserinfo="wxGetUserInfo">
立即登录
</button> -->
<button v-show="!weixinPhone" style="background: #FD441D;color: #FFFFFF;" class='bottom'
bindtap="getUserProfile" @tap="wxGetUserInfo">
授权登录
<button v-show="!weixinPhone" class='bottom1' bindtap="getUserProfile" @tap="wxGetUserInfo">
授权并查看
</button>
<button v-show="!weixinPhone" class='bottom2'>
暂不授权
</button>
<!-- 底部信息 -->
<view class="footer">
<text @tap="isShowAgree" class="cuIcon" :class="showAgree?'cuIcon-radiobox':'cuIcon-round'">同意
<text @tap="isShowAgree" class="cuIcon" :class="showAgree?'cuIcon-radiobox':'cuIcon-round'">我已阅读并同意
</text>
<!-- 协议地址 -->
<navigator url="/pages/member/mimi" open-type="navigate">隐私政策</navigator>
<navigator url="/pages/member/xieyi" open-type="navigate">用户服务协议</navigator>
<navigator url="/pages/member/mimi" open-type="navigate" style="color: #FF3232;">隐私政策</navigator>
<navigator url="/pages/member/xieyi" open-type="navigate" style="color: #FF3232;">用户服务协议
</navigator>
</view>
</view>
</view>
<!-- #endif -->
<!-- #ifdef H5 -->
<view class="register">
<view class="headers">
<image src="https://download.cyjyyjy.com/huijuLogo.png"></image>
</view>
<view class="list">
<view class="item">
<image src="../../static/img/phone-icon.png"></image>
<input type="text" maxlength="11" placeholder="输入手机号码" v-model="mobilePhone" />
</view>
<view class="item">
<image src="../../static/img/code-icon.png" mode=""></image>
<input type="text" maxlength="6" placeholder="填写验证码" class="codeIput" v-model="code" />
<view class="code-btn" :disabled="disabled" :class="disabled === true ? 'on' : ''" @click="sendClick">{{ text }}</view>
</view>
</view>
<view class="logon" @click="toLogin">立即登录</view>
</view>
<!-- 底部信息 -->
<view class="footer">
<text @tap="isShowAgree" class="cuIcon" :class="showAgree?'cuIcon-radiobox':'cuIcon-round'">我已阅读并同意
</text>
<!-- 协议地址 -->
<navigator url="/pages/member/mimi" open-type="navigate" style="color: #FF3232;">隐私政策</navigator>
<navigator url="/pages/member/xieyi" open-type="navigate" style="color: #FF3232;">用户服务协议</navigator>
</view>
</view>
<!-- #endif -->
</view>
</template>
<script>
import sendVerifyCode from "@/mixins/SendVerifyCode";
export default {
mixins: [sendVerifyCode],
data() {
return {
mobile: '',
code: '',
sessionkey: '',
flag: '1',
showAgree: false, //
@ -53,11 +85,45 @@
sending: false,
sendDataList: {},
phone: '',
sendTime: '获取验证码',
count: 60
text: '获取验证码',
count: 60,
mobilePhone: '',
code: '',
disabled: false
};
},
methods: {
//h5
sendClick(){
if(this.mobilePhone == ''){
return uni.showToast({
title: '请输入手机号码',
icon: 'none'
})
} else{
this.sendCode()
this.$queue.showLoading('正在发送验证码...');
this.$Request.getT('/appLogin/sendMsg/' + this.mobilePhone + '/bind').then(res => {
if (res.code === 0) {
this.sending = true;
this.$queue.showToast('验证码发送成功请注意查收');
uni.hideLoading();
} else {
uni.hideLoading();
uni.showModal({
showCancel: false,
title: '短信发送失败',
content: res.msg,
});
}
});
}
},
//h5
loginMobile(){
},
//
getPhoneNumber: function(e) {
console.log(e);
@ -71,7 +137,6 @@
//
setPhoneByInsert(decryptData, iv) {
this.$queue.showLoading('登录中...');
let data = {
decryptData: decryptData,
key: this.sessionkey,
@ -88,7 +153,8 @@
}
});
},
isShowAgree() {
isShowAgree(e) {
console.log(e)
//
this.showAgree = !this.showAgree;
},
@ -133,16 +199,13 @@
invitationCode: sendData.invitation
};
console.log(postData);
that.$Request.postJson('/appLogin/insertWxUser', postData).then(res => {
console.log(res);
if (res.code === 0) {
uni.hideLoading();
that.$queue.setData('token', res.token);
that.$queue.setData('userId', res.user.userId);
that.$queue.setData("avatar", res.user.imageUrl ? res.user.imageUrl :
'/static/img/logo.png');
that.$queue.setData("avatar", res.user.imageUrl ? res.user.imageUrl : '/static/img/logo.png');
that.$queue.setData("nickName", res.user.nickName ? res.user.nickName : res.user.phone);
that.$queue.setData("mobile", res.user.phone);
that.$queue.setData("invitationCode", res.user.invitationCode);
@ -154,7 +217,6 @@
that.$queue.setData("sex", res.user.sex);
that.$queue.setData("campus", res.user.campus);
that.$queue.setData("campusName", res.user.campusName);
uni.navigateBack();
// that.initUserInfo(res.user.userId, res.token);
} else {
@ -167,7 +229,6 @@
}
});
},
login(nickName, avatarUrl, sex) {
let that = this;
let url = '/wx/mp/login';
@ -192,7 +253,6 @@
uni.hideLoading();
//
//
var userByinvitationId = that.$queue.getData('userByinvitationId');
if (userByinvitationId) {
that.userByinvitationId = userByinvitationId;
@ -234,23 +294,31 @@
toLogin() {
this.$queue.loginClear();
let openid = this.$queue.getData('openid');
const wxCode = this.$queue.getData('wxCode');
console.log(wxCode)
const {
mobile,
code
mobilePhone,
code,
showAgree
} = this;
if (!mobile) {
this.$queue.showToast('请输入手机号');
} else if (mobile.length != 11) {
if (!mobilePhone) {
this.$queue.showToast('请输入手机号');
}else if (!code) {
this.$queue.showToast('请输入密码');
} else if (showAgree == false) {
uni.showToast({
icon: 'none',
position: 'bottom',
title: '请先同意《协议》'
});
return false;
} else {
this.$queue.showLoading('正在登录中...');
this.$Request
.postJson('/appLogin/login', {
password: code,
mobile: mobile,
openid: openid
.postJson('/appLogin/loginByPhone', {
code: code,
wxCode: wxCode,
mobile: mobilePhone
})
.then(res => {
if (res.code === 0) {
@ -322,21 +390,72 @@
}
};
</script>
<style lang="scss">
.headers {
.register{
width: 100%;
display: flex;
flex-direction: column;
align-items: center;
.list{
width: 560rpx;
.item{
padding: 18rpx 0;
display: flex;
border-bottom: 2rpx solid #DCDCDC;
image{
width: 40rpx;
height: 40rpx;
margin-right: 20rpx;
}
input{
width: 300rpx;
}
.code-btn{
min-width: 158rpx;
height: 48rpx;
border: 2rpx solid #FF2C2C;
border-radius: 32rpx;
text-align: center;
line-height: 48rpx;
color: #FF2A2A;
font-size: 24rpx;
&.on{
background: #F5F5F5;
color: #999;
border-color: #F5F5F5;
}
}
}
}
.logon{
width: 560rpx;
height: 80rpx;
background: linear-gradient(141deg, #FF4848 0%, #FF2929 100%);
border-radius: 40rpx;
color: #fff;
font-size: 30rpx;
text-align: center;
line-height: 80rpx;
margin-top: 120rpx;
}
}
.headers {
margin-top: 60rpx;
}
.headers>image {
width: 400upx;
height: 400upx;
.headers image {
width: 208rpx;
height: 208rpx;
border-radius: 12rpx;
}
.footer {
// padding-left: 140upx;
width: 100%;
height: 20px;
justify-content: center;
margin-top: 32upx;
margin-top: 248rpx;
font-size: 24upx;
color: #666666;
display: flex;
@ -359,7 +478,6 @@
.container {
top: 0;
padding-top: 32upx;
position: relative;
width: 100%;
height: 100%;
@ -368,16 +486,20 @@
.mp_wxBox {
.headers {
margin: 35% auto 50rpx;
text-align: center;
margin: 0 auto;
border-radius: 60rpx;
width: 650rpx;
height: 300rpx;
line-height: 450rpx;
margin-top: 64rpx;
text-align: center;
image {
width: 300rpx;
height: 300rpx;
width: 64px;
height: 64px;
margin: 0 auto;
}
.title {
margin-top: 0px;
}
}
@ -391,12 +513,31 @@
// margin-top: 40rpx;
}
.bottom {
line-height: 80upx;
border-radius: 80upx;
margin: 50rpx;
height: 80upx;
font-size: 35rpx;
.bottom1 {
width: 256px;
height: 38px;
background: linear-gradient(141deg, #FF4848 0%, #FF2929 100%);
opacity: 1;
border-radius: 19px;
font-size: 14px;
font-family: PingFang SC;
font-weight: 400;
color: #FFFFFF;
margin-top: 132rpx;
}
.bottom2 {
width: 256px;
height: 38px;
border: 2px solid #FF4848;
background: #FFFFFF;
opacity: 1;
border-radius: 19px;
font-size: 14px;
font-family: PingFang SC;
font-weight: 400;
color: #FF2F2F;
margin-top: 16rpx;
}
}
}

5
pages/task/search.vue

@ -61,9 +61,14 @@
});
},
goLogin() {
//#ifndef H5
uni.navigateTo({
url: '/pages/public/login'
});
//#endif
//#ifdef H5
window.location.href = 'http://waimai.admin.service.yiqihuiju.com/sqx_fast/appLogin/wechatLogin';
//#endif
},
rtBubble() {
if (this.searchValue === '' || this.searchValue === ' ') {

5
pages/task/tasklist.vue

@ -116,9 +116,14 @@
return n
},
goLogin() {
//#ifndef H5
uni.navigateTo({
url: '/pages/public/login'
});
//#endif
//#ifdef H5
window.location.href = 'http://waimai.admin.service.yiqihuiju.com/sqx_fast/appLogin/wechatLogin';
//#endif
},
//
tabSelect: function(itemId, index) {

BIN
static/img/code-icon.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 826 B

BIN
static/img/phone-icon.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 324 B

1
wsl.txt

@ -0,0 +1 @@
rsync -r ./ root@39.105.46.0:/root/html/huiju_h5
Loading…
Cancel
Save