📖 code review:店铺装修逻辑
parent
f8ea20060f
commit
51c552fb72
65
App.vue
65
App.vue
|
@ -1,46 +1,39 @@
|
||||||
<script setup>
|
<script setup>
|
||||||
import {
|
import { onLaunch, onShow, onError } from '@dcloudio/uni-app';
|
||||||
onLaunch,
|
import { ShoproInit } from './sheep';
|
||||||
onShow,
|
|
||||||
onError
|
|
||||||
} from '@dcloudio/uni-app';
|
|
||||||
import {
|
|
||||||
ShoproInit
|
|
||||||
} from './sheep';
|
|
||||||
|
|
||||||
onLaunch(() => {
|
onLaunch(() => {
|
||||||
// 隐藏原生导航栏 使用自定义底部导航
|
// 隐藏原生导航栏 使用自定义底部导航
|
||||||
uni.hideTabBar();
|
uni.hideTabBar();
|
||||||
|
|
||||||
// 加载Shopro底层依赖
|
// 加载Shopro底层依赖
|
||||||
ShoproInit();
|
ShoproInit();
|
||||||
});
|
});
|
||||||
|
|
||||||
onError((err) => {
|
onError((err) => {
|
||||||
console.log('AppOnError:', err);
|
console.log('AppOnError:', err);
|
||||||
});
|
});
|
||||||
|
|
||||||
onShow((options) => {
|
onShow((options) => {
|
||||||
// #ifdef APP-PLUS
|
// #ifdef APP-PLUS
|
||||||
// 获取urlSchemes参数
|
// 获取urlSchemes参数
|
||||||
const args = plus.runtime.arguments;
|
const args = plus.runtime.arguments;
|
||||||
if (args) {}
|
if (args) {
|
||||||
|
}
|
||||||
|
|
||||||
// 获取剪贴板
|
// 获取剪贴板
|
||||||
uni.getClipboardData({
|
uni.getClipboardData({
|
||||||
success: (res) => {},
|
success: (res) => { },
|
||||||
});
|
});
|
||||||
// #endif
|
// #endif
|
||||||
|
|
||||||
// #ifdef MP-WEIXIN
|
// #ifdef MP-WEIXIN
|
||||||
// 确认收货回调结果
|
// 确认收货回调结果
|
||||||
console.log(options, 'options');
|
console.log(options,'options');
|
||||||
// #endif
|
// #endif
|
||||||
|
});
|
||||||
|
|
||||||
});
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
@import '@/sheep/scss/index.scss';
|
@import '@/sheep/scss/index.scss';
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -85,7 +85,7 @@
|
||||||
// #endif
|
// #endif
|
||||||
sheep.$router.go('/pages/pay/index', {
|
sheep.$router.go('/pages/pay/index', {
|
||||||
id: data.payOrderId,
|
id: data.payOrderId,
|
||||||
type: 'recharge'
|
orderType: 'recharge'
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,12 +8,11 @@
|
||||||
},
|
},
|
||||||
]">
|
]">
|
||||||
<view class="header-bg">
|
<view class="header-bg">
|
||||||
<view class="bg"></view>
|
<view class="bg" />
|
||||||
</view>
|
</view>
|
||||||
<view class="score-box ss-flex-col ss-row-center ss-col-center">
|
<view class="score-box ss-flex-col ss-row-center ss-col-center">
|
||||||
<view class="ss-m-b-30">
|
<view class="ss-m-b-30">
|
||||||
<text class="all-title ss-m-r-8">当前积分</text>
|
<text class="all-title ss-m-r-8">当前积分</text>
|
||||||
<!-- <text class="cicon-help-o"></text> -->
|
|
||||||
</view>
|
</view>
|
||||||
<text class="all-num">{{ userInfo.point || 0 }}</text>
|
<text class="all-num">{{ userInfo.point || 0 }}</text>
|
||||||
</view>
|
</view>
|
||||||
|
@ -100,7 +99,6 @@
|
||||||
name: '全部',
|
name: '全部',
|
||||||
value: 'all',
|
value: 'all',
|
||||||
},
|
},
|
||||||
|
|
||||||
// {
|
// {
|
||||||
// name: '收入',
|
// name: '收入',
|
||||||
// value: 'income',
|
// value: 'income',
|
||||||
|
@ -147,6 +145,7 @@
|
||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
onLoad(async (options) => {
|
onLoad(async (options) => {
|
||||||
state.today = dayjs().format('YYYY-MM-DD');
|
state.today = dayjs().format('YYYY-MM-DD');
|
||||||
state.date = [state.today, state.today];
|
state.date = [state.today, state.today];
|
||||||
|
@ -166,10 +165,6 @@
|
||||||
getLogList();
|
getLogList();
|
||||||
}
|
}
|
||||||
|
|
||||||
function appendTimeHMS(arr) {
|
|
||||||
return [arr[0] + ' 00:00:00', arr[1] + ' 23:59:59'];
|
|
||||||
}
|
|
||||||
|
|
||||||
function onLoadMore() {
|
function onLoadMore() {
|
||||||
// if (state.loadStatus !== 'noMore') {
|
// if (state.loadStatus !== 'noMore') {
|
||||||
getLogList(pagination.current_page + 1);
|
getLogList(pagination.current_page + 1);
|
||||||
|
|
|
@ -13,19 +13,6 @@ export default {
|
||||||
showLoading: false,
|
showLoading: false,
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
// 同步客户端页面到后端
|
|
||||||
pageSync: (pages) =>
|
|
||||||
request({
|
|
||||||
url: 'pageSync',
|
|
||||||
method: 'POST',
|
|
||||||
data: {
|
|
||||||
pages,
|
|
||||||
},
|
|
||||||
custom: {
|
|
||||||
showError: false,
|
|
||||||
showLoading: false,
|
|
||||||
},
|
|
||||||
}),
|
|
||||||
// 自定义页面
|
// 自定义页面
|
||||||
page: (id) =>
|
page: (id) =>
|
||||||
request({
|
request({
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<!-- 优惠券组 -->
|
<!-- 装修营销组件:优惠券 -->
|
||||||
<template>
|
<template>
|
||||||
<scroll-view class="scroll-box" scroll-x scroll-anchoring>
|
<scroll-view class="scroll-box" scroll-x scroll-anchoring>
|
||||||
<view class="coupon-box ss-flex">
|
<view class="coupon-box ss-flex">
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
<!-- 装修用户组件:用户卡券 -->
|
||||||
<template>
|
<template>
|
||||||
<view class="ss-coupon-menu-wrap ss-flex ss-col-center">
|
<view class="ss-coupon-menu-wrap ss-flex ss-col-center">
|
||||||
<view class="menu-item ss-flex-col ss-row-center ss-col-center" v-for="item in props.list" :key="item.title"
|
<view class="menu-item ss-flex-col ss-row-center ss-col-center" v-for="item in props.list" :key="item.title"
|
||||||
|
@ -41,13 +42,13 @@
|
||||||
path: '/pages/coupon/list',
|
path: '/pages/coupon/list',
|
||||||
type: 'expired',
|
type: 'expired',
|
||||||
},
|
},
|
||||||
// {
|
{
|
||||||
// title: '领券中心',
|
title: '领券中心',
|
||||||
// value: '0',
|
value: '0',
|
||||||
// icon: '/static/img/shop/order/all_coupon.png',
|
icon: '/static/img/shop/order/all_coupon.png',
|
||||||
// path: '/pages/coupon/list',
|
path: '/pages/coupon/list',
|
||||||
// type: 'all',
|
type: 'all',
|
||||||
// },
|
},
|
||||||
];
|
];
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
<!-- 顶部导航栏 -->
|
||||||
<template>
|
<template>
|
||||||
<navbar
|
<navbar
|
||||||
:alway="isAlway"
|
:alway="isAlway"
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
<!-- 装修基础组件:悬浮按钮 -->
|
||||||
<template>
|
<template>
|
||||||
<!-- 模态背景:展开时显示,点击后折叠 -->
|
<!-- 模态背景:展开时显示,点击后折叠 -->
|
||||||
<view class="modal-bg" v-if="fabRef?.isShow" @click="handleCollapseFab"></view>
|
<view class="modal-bg" v-if="fabRef?.isShow" @click="handleCollapseFab"></view>
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
<!-- 装修商品组件:商品卡片 -->
|
||||||
<template>
|
<template>
|
||||||
<!-- 商品卡片 -->
|
<!-- 商品卡片 -->
|
||||||
<view>
|
<view>
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
<!-- 装修商品组件:商品栏 -->
|
||||||
<template>
|
<template>
|
||||||
<view>
|
<view>
|
||||||
<!-- 布局1. 两列商品,图片左文案右 -->
|
<!-- 布局1. 两列商品,图片左文案右 -->
|
||||||
|
@ -27,7 +28,7 @@
|
||||||
:bottomRadius="data.borderRadiusBottom"
|
:bottomRadius="data.borderRadiusBottom"
|
||||||
:titleWidth="(454 - marginRight * 2 - data.space * 2 - marginLeft * 2) / 2"
|
:titleWidth="(454 - marginRight * 2 - data.space * 2 - marginLeft * 2) / 2"
|
||||||
@click="sheep.$router.go('/pages/goods/index', { id: item.id })"
|
@click="sheep.$router.go('/pages/goods/index', { id: item.id })"
|
||||||
></s-goods-column>
|
/>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<!-- 布局. 三列商品:图片上文案下 -->
|
<!-- 布局. 三列商品:图片上文案下 -->
|
||||||
|
@ -56,7 +57,7 @@
|
||||||
:topRadius="data.borderRadiusTop"
|
:topRadius="data.borderRadiusTop"
|
||||||
:bottomRadius="data.borderRadiusBottom"
|
:bottomRadius="data.borderRadiusBottom"
|
||||||
@click="sheep.$router.go('/pages/goods/index', { id: item.id })"
|
@click="sheep.$router.go('/pages/goods/index', { id: item.id })"
|
||||||
></s-goods-column>
|
/>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
|
@ -79,7 +80,7 @@
|
||||||
:titleColor="data.fields.name?.color"
|
:titleColor="data.fields.name?.color"
|
||||||
:titleWidth="(750 - marginRight * 2 - data.space * 4 - marginLeft * 2) / 3"
|
:titleWidth="(750 - marginRight * 2 - data.space * 4 - marginLeft * 2) / 3"
|
||||||
@click="sheep.$router.go('/pages/goods/index', { id: item.id })"
|
@click="sheep.$router.go('/pages/goods/index', { id: item.id })"
|
||||||
></s-goods-column>
|
/>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</scroll-view>
|
</scroll-view>
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
<!-- 装修图文组件:热区 -->
|
||||||
<template>
|
<template>
|
||||||
<view class="hotzone-wrap">
|
<view class="hotzone-wrap">
|
||||||
<image :src="sheep.$url.cdn(data.imgUrl)" style="width: 100%" mode="widthFix"></image>
|
<image :src="sheep.$url.cdn(data.imgUrl)" style="width: 100%" mode="widthFix"></image>
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
<!-- 装修图文组件:图片轮播 -->
|
||||||
<template>
|
<template>
|
||||||
<su-swiper
|
<su-swiper
|
||||||
:list="imgList"
|
:list="imgList"
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
|
<!-- 装修图文组件:图片展示 -->
|
||||||
<template>
|
<template>
|
||||||
<view @tap="sheep.$router.go(data?.url)">
|
<view @tap="sheep.$router.go(data?.url)">
|
||||||
<su-image :src="sheep.$url.cdn(data.imgUrl)" mode="widthFix"></su-image>
|
<su-image :src="sheep.$url.cdn(data.imgUrl)" mode="widthFix" />
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
<!-- 装修图文组件:广告魔方 -->
|
||||||
<template>
|
<template>
|
||||||
<view class="ss-cube-wrap" :style="[parseAdWrap]">
|
<view class="ss-cube-wrap" :style="[parseAdWrap]">
|
||||||
<view v-for="(item, index) in data.list" :key="index">
|
<view v-for="(item, index) in data.list" :key="index">
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
<!-- 装修基础组件:分割线 -->
|
||||||
<template>
|
<template>
|
||||||
<su-subline v-bind="data"></su-subline>
|
<su-subline v-bind="data"></su-subline>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
<!-- 装修基础组件:菜单导航(金刚区) -->
|
||||||
<template>
|
<template>
|
||||||
<!-- 包裹层 -->
|
<!-- 包裹层 -->
|
||||||
<view
|
<view
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
<!-- 装修基础组件:宫格导航 -->
|
||||||
<template>
|
<template>
|
||||||
<uni-grid :showBorder="Boolean(data.border)" :column="data.column">
|
<uni-grid :showBorder="Boolean(data.border)" :column="data.column">
|
||||||
<uni-grid-item
|
<uni-grid-item
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
<!-- 装修基础组件:列表导航 -->
|
||||||
<template>
|
<template>
|
||||||
<view class="menu-list-wrap">
|
<view class="menu-list-wrap">
|
||||||
<uni-list :border="true">
|
<uni-list :border="true">
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
<!-- 装修用户组件:用户订单 -->
|
||||||
<template>
|
<template>
|
||||||
<view class="ss-order-menu-wrap ss-flex ss-col-center">
|
<view class="ss-order-menu-wrap ss-flex ss-col-center">
|
||||||
<view
|
<view
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
<!-- 装修营销组件:营销文章 -->
|
||||||
<template>
|
<template>
|
||||||
<view
|
<view
|
||||||
:style="[
|
:style="[
|
||||||
|
@ -16,6 +17,7 @@
|
||||||
<script setup>
|
<script setup>
|
||||||
import { reactive, onMounted } from 'vue';
|
import { reactive, onMounted } from 'vue';
|
||||||
import ArticleApi from '@/sheep/api/promotion/article';
|
import ArticleApi from '@/sheep/api/promotion/article';
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
data: {
|
data: {
|
||||||
type: Object,
|
type: Object,
|
||||||
|
@ -26,9 +28,11 @@
|
||||||
default() {},
|
default() {},
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
const state = reactive({
|
const state = reactive({
|
||||||
content: '',
|
content: '',
|
||||||
});
|
});
|
||||||
|
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
const { data } = await ArticleApi.getArticle(props.data.id);
|
const { data } = await ArticleApi.getArticle(props.data.id);
|
||||||
state.content = data.content;
|
state.content = data.content;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<!-- 页面 -->
|
<!-- 装修商品组件:标题栏 -->
|
||||||
<template>
|
<template>
|
||||||
<view
|
<view
|
||||||
class="ss-title-wrap ss-flex ss-col-center"
|
class="ss-title-wrap ss-flex ss-col-center"
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<!-- 页面 -->
|
<!-- 装修用户组件:用户卡片 -->
|
||||||
<template>
|
<template>
|
||||||
<view class="ss-user-info-wrap ss-p-t-50">
|
<view class="ss-user-info-wrap ss-p-t-50">
|
||||||
<view class="ss-flex ss-col-center ss-row-between ss-m-b-20">
|
<view class="ss-flex ss-col-center ss-row-between ss-m-b-20">
|
||||||
|
@ -23,7 +23,7 @@
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
|
<!-- TODO @芋艿:用户接入 -->
|
||||||
<!-- 提示绑定手机号 先隐藏 yudao 需要再修改 -->
|
<!-- 提示绑定手机号 先隐藏 yudao 需要再修改 -->
|
||||||
<!-- <view
|
<!-- <view
|
||||||
class="bind-mobile-box ss-flex ss-row-between ss-col-center"
|
class="bind-mobile-box ss-flex ss-row-between ss-col-center"
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<!-- -->
|
<!-- 装修图文组件:视频播放 -->
|
||||||
<template>
|
<template>
|
||||||
<su-video
|
<su-video
|
||||||
class="sss"
|
class="sss"
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
<!-- 装修用户组件:用户资产 -->
|
||||||
<template>
|
<template>
|
||||||
<!-- TODO @惠智造:代码合并有问题,可以看看 -->
|
<!-- TODO @惠智造:代码合并有问题,可以看看 -->
|
||||||
<view class="ss-wallet-menu-wrap ss-flex ss-col-center">
|
<view class="ss-wallet-menu-wrap ss-flex ss-col-center">
|
||||||
|
|
|
@ -46,8 +46,9 @@ function ShoproDebug() {
|
||||||
// });
|
// });
|
||||||
// #endif
|
// #endif
|
||||||
|
|
||||||
|
// TODO 芋艿:可以打印路由
|
||||||
// 同步前端页面到后端
|
// 同步前端页面到后端
|
||||||
$api.app.pageSync(ROUTES);
|
// console.log(ROUTES)
|
||||||
}
|
}
|
||||||
|
|
||||||
export default sheep;
|
export default sheep;
|
||||||
|
|
|
@ -8,7 +8,7 @@ import PayOrderApi from '@/sheep/api/pay/order';
|
||||||
/**
|
/**
|
||||||
* 支付
|
* 支付
|
||||||
*
|
*
|
||||||
* @param {String} payment = ['wechat','alipay','wallet','offline'] - 支付方式
|
* @param {String} payment = ['wechat','alipay','wallet','mock'] - 支付方式
|
||||||
* @param {String} orderType = ['goods','recharge','groupon'] - 订单类型
|
* @param {String} orderType = ['goods','recharge','groupon'] - 订单类型
|
||||||
* @param {String} id - 订单号
|
* @param {String} id - 订单号
|
||||||
*/
|
*/
|
||||||
|
@ -33,8 +33,8 @@ export default class SheepPay {
|
||||||
wallet: () => {
|
wallet: () => {
|
||||||
this.walletPay();
|
this.walletPay();
|
||||||
},
|
},
|
||||||
offline: () => {
|
mock: () => {
|
||||||
this.offlinePay();
|
this.mockPay();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
WechatMiniProgram: {
|
WechatMiniProgram: {
|
||||||
|
@ -47,8 +47,8 @@ export default class SheepPay {
|
||||||
wallet: () => {
|
wallet: () => {
|
||||||
this.walletPay();
|
this.walletPay();
|
||||||
},
|
},
|
||||||
offline: () => {
|
mock: () => {
|
||||||
this.offlinePay();
|
this.mockPay();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
App: {
|
App: {
|
||||||
|
@ -61,8 +61,8 @@ export default class SheepPay {
|
||||||
wallet: () => {
|
wallet: () => {
|
||||||
this.walletPay();
|
this.walletPay();
|
||||||
},
|
},
|
||||||
offline: () => {
|
mock: () => {
|
||||||
this.offlinePay();
|
this.mockPay();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
H5: {
|
H5: {
|
||||||
|
@ -75,8 +75,8 @@ export default class SheepPay {
|
||||||
wallet: () => {
|
wallet: () => {
|
||||||
this.walletPay();
|
this.walletPay();
|
||||||
},
|
},
|
||||||
offline: () => {
|
mock: () => {
|
||||||
this.offlinePay();
|
this.mockPay();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
@ -182,10 +182,10 @@ export default class SheepPay {
|
||||||
code === 0 && this.payResult('success');
|
code === 0 && this.payResult('success');
|
||||||
}
|
}
|
||||||
|
|
||||||
// 货到付款 TODO 芋艿:待接入
|
// 模拟支付
|
||||||
async offlinePay() {
|
async mockPay() {
|
||||||
const { error } = await this.prepay();
|
const { code } = await this.prepay('mock');
|
||||||
error === 0 && this.payResult('success');
|
code === 0 && this.payResult('success');
|
||||||
}
|
}
|
||||||
|
|
||||||
// 支付宝复制链接支付 TODO 芋艿:待接入
|
// 支付宝复制链接支付 TODO 芋艿:待接入
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
<!-- 自定义导航栏 -->
|
||||||
<template>
|
<template>
|
||||||
<view class="uni-navbar" :class="{ 'uni-dark': dark }">
|
<view class="uni-navbar" :class="{ 'uni-dark': dark }">
|
||||||
<view
|
<view
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
<!-- 公告栏组件 -->
|
||||||
<template>
|
<template>
|
||||||
<view
|
<view
|
||||||
v-if="show"
|
v-if="show"
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
<!-- 自定义底部导航项 -->
|
||||||
<template>
|
<template>
|
||||||
<view class="u-tabbar-item" :style="[addStyle(customStyle)]">
|
<view class="u-tabbar-item" :style="[addStyle(customStyle)]">
|
||||||
<view v-if="isCenter" class="tabbar-center-item">
|
<view v-if="isCenter" class="tabbar-center-item">
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
<!-- 底部导航栏 -->
|
||||||
<template>
|
<template>
|
||||||
<view class="u-tabbar">
|
<view class="u-tabbar">
|
||||||
<view
|
<view
|
||||||
|
|
Loading…
Reference in New Issue