Browse Source

Merge branch 'master' of http://8.134.10.79:3000/Leadfyy.co/uniapp-shikongwang

# Conflicts:
#	App.vue
#	common/api.js
master
Enzo 5 years ago
parent
commit
06f62a25cb
  1. 26
      App.vue
  2. 9
      common/api.js
  3. 44
      package-lock.json
  4. 9
      pages.json
  5. 4
      pages/center/index.vue
  6. 74
      pages/collect/index.vue
  7. 23
      pages/contactService/index.vue
  8. 40
      pages/goodsDetail/index.vue
  9. 2
      pages/index/index.vue
  10. 3
      pages/login/index.vue
  11. 12
      pages/route/index.vue

26
App.vue

@ -4,7 +4,7 @@
},
onLaunch: function() {
this.login(); // TODO
this.getUserInfo();
},
onShow: function() {
// #ifdef MP-WEIXIN
@ -15,10 +15,27 @@
console.log('App Hide')
},
methods: {
//
getUserInfo(){
let userinfo = uni.getStorageSync('userinfo');
if(userinfo && userinfo.id){
return;
}
uni.login({
complete: result => {
if(result.errMsg == 'login:ok'){
let code = result.code;
this.userCode(code);
}
}
})
},
// code
userCode(code){
this.$http('', { code }).then(res => {
console.log("code", code);
this.$http(this.API.API_WXLOGIN, { code }).then(res => {
console.log("获得用户信息", res);
uni.setStorageSync('userinfo', res.data);
})
},
//
@ -26,12 +43,12 @@
this.checkSession().then(code => {
this.userCode(code);
}).catch(err => {
console.log("进入。。。。。。")
uni.login({
complete: result => {
console.log(result)
if(result.errMsg == 'login:ok'){
let code = result.code;
uni.setStorageSync('login_token', code);
this.userCode(code);
}
}
@ -44,7 +61,8 @@
uni.checkSession({
complete: result => {
if(result.errMsg == 'checkSession:ok'){ // session
let login_token = uni.getStorageSync();
// let login_token = uni.getStorageSync('login_token');
let login_token = undefined;
if(login_token){
resolve(login_token);
}else{

9
common/api.js

@ -21,7 +21,12 @@ export const API_COFIRMORDER_DETAILS = '/api/order/confirm';
export const API_GOODS_DETAIL = '/api/goods/detail'; // 商品详情
export const API_COLLECT_DEAL = '/api/collect/deal'; // 商品收藏
export const TEST = '/api/order/deal';
//订单预支付
export const API_PRPAID = '/api/order/deal'
/* 个人中心相关 */
export const API_COLLECT_LIST = '/api/collect/list'; // 我的收藏列表
/* 用户相关 */
export const API_WXLOGIN = '/api/wxlogin'; // 用户登录

44
package-lock.json

@ -2,46 +2,10 @@
"requires": true,
"lockfileVersion": 1,
"dependencies": {
"clipboard": {
"version": "2.0.8",
"resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.8.tgz",
"integrity": "sha512-Y6WO0unAIQp5bLmk1zdThRhgJt/x3ks6f30s3oE3H1mgIEU33XyQjEf8gsf6DxC7NPX8Y1SsNWjUjL/ywLnnbQ==",
"requires": {
"good-listener": "^1.2.2",
"select": "^1.1.2",
"tiny-emitter": "^2.0.0"
}
},
"delegate": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz",
"integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw=="
},
"good-listener": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz",
"integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=",
"requires": {
"delegate": "^3.1.2"
}
},
"select": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz",
"integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0="
},
"tiny-emitter": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz",
"integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q=="
},
"vue-clipboard2": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/vue-clipboard2/-/vue-clipboard2-0.3.1.tgz",
"integrity": "sha512-H5S/agEDj0kXjUb5GP2c0hCzIXWRBygaWLN3NEFsaI9I3uWin778SFEMt8QRXiPG+7anyjqWiw2lqcxWUSfkYg==",
"requires": {
"clipboard": "^2.0.0"
}
"tki-qrcode": {
"version": "0.1.6",
"resolved": "https://registry.npmjs.org/tki-qrcode/-/tki-qrcode-0.1.6.tgz",
"integrity": "sha512-EnnlS8psowC7PsW3MDYcxvJYkuklX3WAZ/BYanR4TdBHTu74GfjTBX8Y16REP+AeDENiVtBPh4jtTRL2P736hQ=="
}
}
}

9
pages.json

@ -75,7 +75,8 @@
{
"path": "pages/collect/index",
"style": {
"navigationBarTitleText": "我的收藏"
"navigationBarTitleText": "我的收藏",
"enablePullDownRefresh": true
}
},
{
@ -95,6 +96,12 @@
"style": {
"navigationBarTitleText": "绑定"
}
},
{
"path": "pages/route/index",
"style": {
"navigationBarTitleText": "时空网"
}
}
],
"globalStyle": {

4
pages/center/index.vue

@ -15,7 +15,7 @@
</view>
</view>
<view class="list">
<view class="lf-row-between list-item" hover-class="lf-opacity">
<view class="lf-row-between list-item" hover-class="lf-opacity" @click="$url('/pages/collect/index')">
<view>
<u-icon name="heart" size="50" class="lf-text-vertical"></u-icon>
<text class="lf-text-vertical lf-m-l-16 lf-font-32">我的收藏</text>
@ -24,7 +24,7 @@
<u-icon name="arrow-right" size="40" color="#777777"></u-icon>
</view>
</view>
<view class="lf-row-between list-item" hover-class="lf-opacity">
<view class="lf-row-between list-item" hover-class="lf-opacity" @click="$url('/pages/contactService/index')">
<view>
<u-icon name="heart" size="50" class="lf-text-vertical"></u-icon>
<text class="lf-text-vertical lf-m-l-16 lf-font-32">联系客服</text>

74
pages/collect/index.vue

@ -1,20 +1,21 @@
<template>
<view>
<view class="list-box">
<view class="lf-row-between list-item" v-for="(item, index) in list" :key="index" hover-class="lf-opacity">
<image class="goods-img"></image>
<view class="lf-row-between list-item" v-for="(item, index) in list" :key="item.id">
<image class="goods-img" :src="item.goods.cover" @click="enterDetail(index)"></image>
<view style="width: 480rpx;">
<view class="lf-font-32 lf-line-1">网红辣椒棒魔鬼辣椒挑战全网第</view>
<view class="lf-font-32 lf-line-1" @click="enterDetail(index)">{{ item.goods.name }}</view>
<view class="lf-row-between lf-m-t-20">
<view class="lf-flex">
<image class="shop-img"></image>
<view class="lf-m-l-10 lf-font-28 lf-line-1 shop-name">李大叔家的店</view>
<image class="shop-img" :src="item.goods.store.cover"></image>
<view class="lf-m-l-10 lf-font-28 lf-line-1 shop-name">{{ item.goods.store.name }}</view>
</view>
<view>
<u-icon name="heart-fill" color="#ff0f00"></u-icon>
<view @click="switchCollect(index)">
<u-icon name="heart-fill" color="#ff0f00" v-if="item.is_collect"></u-icon>
<u-icon name="heart" v-else></u-icon>
</view>
</view>
<view class="lf-m-t-20 lf-font-24 lf-color-gray">收藏时间 2021-6-17 12:37:54</view>
<view class="lf-m-t-20 lf-font-24 lf-color-gray">{{ item.created_at_text }}</view>
</view>
</view>
</view>
@ -30,16 +31,63 @@
export default {
data(){
return {
list: [1, 2],
loadingClass: false,
loadingText: '已显示全部数据~'
list: [],
loadingClass: true,
loadingText: '正在加载中',
page: 1,
isPage: true,
pageSize: 20
}
},
onLoad(){
this.getCollectList();
},
methods: {
getCollectList(){
// TODO
this.$http(this.API.API_COLLECT_LIST).then(res => {
this.isPage = res.data.has_more_page;
let list = res.data.items.map(item => {
item.is_collect = true; //
return item;
});
if(!res.data.has_more_page){
this.loadingClass = false;
this.loadingText = '已显示全部数据~';
}
if(this.page == 1){
this.list = list;
}else{
this.list.push(...list);
}
})
},
//
switchCollect(index){
let goods_id = this.list[index].goods_id;
this.$http(this.API.API_COLLECT_DEAL, {goods_id}).then(res => {
this.list[index].is_collect = Boolean(res.data.user.is_collect);
})
},
//
enterDetail(index){
let goods_id = this.list[index].goods_id;
this.$url('/pages/goodsDetail/index?id='+ goods_id);
}
},
onReachBottom(){
if(this.isPage){
this.page = this.page + 1;
this.getCollectList();
}
},
onPullDownRefresh(){
this.page = 1;
this.isPage = true;
this.loadingClass = true;
this.loadingText = '正在加载中';
this.getCollectList();
uni.stopPullDownRefresh();
}
}
</script>

23
pages/contactService/index.vue

@ -8,7 +8,7 @@
<view class="lf-color-gray">服务时间</view>
<view>10:0020:00</view>
</view>
<view class="lf-row-between item">
<view class="lf-row-between item" @click="makePhoneCall">
<view class="lf-color-gray">客服电话</view>
<view>13278683790</view>
</view>
@ -20,12 +20,12 @@
<view class="lf-color-gray">客服微信</view>
<view>
<text>whhu8798</text>
<text class="lf-m-l-20 lf-color-primary">复制</text>
<text class="lf-m-l-20 lf-color-primary" @click="copy">复制</text>
</view>
</view>
<view class="lf-row-between item">
<view class="lf-color-gray">当前版本</view>
<view>1.0.1</view>
<view>{{ version }}</view>
</view>
</view>
</template>
@ -34,14 +34,25 @@
export default {
data(){
return {
version: ''
}
},
onLoad(){
this.version = this.API.VERSION;
},
methods: {
//
makePhoneCall(){
uni.makePhoneCall({
phoneNumber: ''
})
},
//
copy(){
uni.setClipboardData({
data: 'a'
})
}
}
}
</script>

40
pages/goodsDetail/index.vue

@ -14,7 +14,7 @@
<view class="lf-flex price">
<view>¥{{ goods_detail.specs[0].selling_price }}</view>
<view>¥{{ goods_detail.specs[0].original_price }}</view>
<view>{{ goods_detail.specs[0].cost }}</view>
<view v-if="goods_detail.specs[0].cost">{{ goods_detail.specs[0].cost }}</view>
</view>
<view>
<view class="lf-color-gray">{{ goods_detail.specs[0].sold_stock_text }}</view>
@ -33,9 +33,11 @@
<image class="lf-fle shop-img" :src="goods_detail.store.cover"></image>
<view class="lf-font-32 lf-m-l-20" style="max-width: 512rpx;">{{ goods_detail.store.name }}</view>
</view>
<u-icon name="phone" color="#3A62FF" size="46"></u-icon>
<view @click="makePhoneCall(goods_detail.store.tel)">
<u-icon name="phone" color="#3A62FF" size="46"></u-icon>
</view>
</view>
<view class="lf-flex lf-m-t-20">
<view class="lf-flex lf-m-t-20" @click="openMap">
<u-icon name="map-fill" size="60"></u-icon>
<view class="lf-m-l-20 lf-font-32">{{ goods_detail.store.address }}</view>
</view>
@ -68,7 +70,7 @@
<view class="lf-m-t-1">分享</view>
</button>
</view>
<button class="btn">立即抢购</button>
<button class="btn" @click="addCart">立即抢购</button>
</view>
</view>
</template>
@ -101,11 +103,39 @@
console.log("res", res);
this.is_collect = Boolean(res.data.user.is_collect);
})
},
//
makePhoneCall(phoneStr){
uni.makePhoneCall({
phoneNumber: String(phoneStr)
})
},
//
openMap(){
return;
uni.openLocation({
longitude: 108.36637,
latitude: 22.817746,
scale: 18
})
},
//
addCart(){
// this.$http(this.API.).then(res => {
// })
}
},
onShareAppMessage(){
let goods = this.goods_detail;
let title = goods.name;
let imageUrl = goods.cover;
let path = '/pages/route/index';
return {
title: '测试'
title,
path,
imageUrl
}
}
}

2
pages/index/index.vue

@ -14,7 +14,7 @@
<view class="u-line-progress">
<u-line-progress :percent="item.specs[0].sold_percent" height="20" :striped="true" active-color="#FE9903" :show-percent="false" inactive-color="#F5F5F5"></u-line-progress>
</view>
<text class="progress">{{ item.specs[0].sold_percent_text }}</text>
<text class="progress lf-m-r-10">{{ item.specs[0].sold_percent_text }}</text>
<text class="bought">{{ item.specs[0].sold_stock_text }}</text>
</view>
<view class="lf-row-between price">

3
pages/login/index.vue

@ -41,7 +41,8 @@
return {
checked: false, //
isLogin: false, //
userInfo: {}
userInfo: {},
type: 'phone', // phone | userinfo
}
},
onLoad(){

12
pages/route/index.vue

@ -0,0 +1,12 @@
<template>
<view></view>
</template>
<script>
/* 路由分发页面仅供跳转页面 */
export default {
onLoad(options){
this.$url('/pages/index/index', {type: 'switch'});
}
}
</script>
Loading…
Cancel
Save