Merge pull request '优化101' (#8) from Branch_ccc into master

Reviewed-on: #8
This commit is contained in:
root 2024-10-17 18:41:26 +08:00
commit 5babf09a49
23 changed files with 1274 additions and 751 deletions

View File

@ -756,6 +756,17 @@
"title": "秒杀活动", "title": "秒杀活动",
"group": "营销活动" "group": "营销活动"
} }
},
{
"path": "point/exchange_list",
"style": {
"navigationBarTitleText": "兑换记录"
},
"meta": {
"sync": true,
"title": "兑换记录",
"group": "营销活动"
}
} }
] ]
} }

View File

@ -1,6 +1,6 @@
<!-- 签到界面 --> <!-- 签到界面 -->
<template> <template>
<s-layout title="签到有礼"> <s-layout title="" navbar="ss">
<view class="new-bg"> <view class="new-bg">
<image class="new-qdyl" <image class="new-qdyl"
src="https://zysc.fjptzykj.com:3000/shangcheng/56024e3b60810cc781cbed30ebfe4568a8b721dae5e15aab848f760574558843.png"> src="https://zysc.fjptzykj.com:3000/shangcheng/56024e3b60810cc781cbed30ebfe4568a8b721dae5e15aab848f760574558843.png">
@ -11,31 +11,65 @@
我的积分 我的积分
</view> </view>
<view class="bottom"> <view class="bottom">
26871 {{userInfo.point}}
</view> </view>
</view> </view>
</view> </view>
<view class="new-main"> <view class="new-main">
<view class="sign-list"> <view class="sign-list">
<view class="new-top"> <view class="new-top">
<view class="left">已连续签到<span class="number">2</span></view> <view class="left">已连续签到<span class="number">{{ state.signInfo.totalDay }}</span></view>
<view class="right"> <view class="right" v-if="!state.signInfo.todaySignIn" @tap="onSign">
签到 签到
</view> </view>
<view class="right on" v-else>
已签到
</view>
</view> </view>
<view class="new-bottom"> <view class="new-bottom">
<view class="new-list" v-for=" o in 6">
<view class="t"> <view class="new-l" v-for="(item, index) in state.signConfigList" :key="index">
第1天 <view class="new-list" :class="state.signInfo.continuousDay >= item.day ? 'on' : ''"
v-if="index<6">
<view class="t">
{{item.day}}
</view>
<view class="c">
<!-- {{index === state.signConfigList.length}}
{{state.signInfo.continuousDay >= item.day}} -->
<image class="img"
src="https://zysc.fjptzykj.com:3000/shangcheng/d1dd98b6a37ea9ea90c49898024d3669a54ee2a48f028b671609937b6b1250af.png">
</image>
<image class="img2"
src="https://zysc.fjptzykj.com:3000/shangcheng/b41e27f0f1c392777e86e37715abbede504c64ef0354b0bedffed6a6d428763c.png">
</image>
</view>
<view class="b">
{{item.point}}积分
</view>
</view> </view>
<view class="c">
<image class="img" src="https://zysc.fjptzykj.com:3000/shangcheng/d1dd98b6a37ea9ea90c49898024d3669a54ee2a48f028b671609937b6b1250af.png"></image> <view class="new-list new-7" :class="state.signInfo.continuousDay >= item.day ? 'on' : ''"
</view> v-if="index == 6">
<view class="b"> <view class="t">
10积分 {{item.day}}
</view>
<view class="c">
<image class="img"
src="https://zysc.fjptzykj.com:3000/shangcheng/d1dd98b6a37ea9ea90c49898024d3669a54ee2a48f028b671609937b6b1250af.png">
</image>
<image class="img2"
src="https://zysc.fjptzykj.com:3000/shangcheng/b41e27f0f1c392777e86e37715abbede504c64ef0354b0bedffed6a6d428763c.png">
</image>
</view>
<view class="b">
{{item.point}}积分
</view>
</view> </view>
</view> </view>
</view> </view>
<view style="clear: both;"></view>
</view> </view>
<!-- 签到说明 --> <!-- 签到说明 -->
@ -43,15 +77,14 @@
<view class="t">签到说明</view> <view class="t">签到说明</view>
<view class="tt">1已累计签到{{ state.signInfo.totalDay }}</view> <view class="tt">1已累计签到{{ state.signInfo.totalDay }}</view>
<view class="tt"> <view class="tt">
2据说连续签到第 {{ state.maxDay }} 天可获得超额积分一定要坚持签到哦~~~ 2据说连续签到第 {{ state.maxDay }} 天可获得超额积分一定要坚持签到哦
</view> </view>
</view> </view>
</view> </view>
<s-empty v-if="state.loading" icon="/static/data-empty.png" text="签到活动还未开始" /> <!-- <s-empty v-if="state.loading" icon="/static/data-empty.png" text="签到活动还未开始" />
<view v-if="state.loading" /> <view v-if="state.loading" />
<view class="sign-wrap" v-else-if="!state.loading"> <view class="sign-wrap" v-else-if="!state.loading">
<!-- 签到日历 -->
<view class="content-box calendar"> <view class="content-box calendar">
<view class="sign-everyday ss-flex ss-col-center ss-row-between ss-p-x-30"> <view class="sign-everyday ss-flex ss-col-center ss-row-between ss-p-x-30">
<text class="sign-everyday-title">签到日历</text> <text class="sign-everyday-title">签到日历</text>
@ -73,6 +106,7 @@
(state.signInfo.continuousDay >= item.day ? 'rewardTxt' : '') (state.signInfo.continuousDay >= item.day ? 'rewardTxt' : '')
"> ">
{{ item.day }} {{ item.day }}
{{state.signInfo.continuousDay >= item.day}}
</view> </view>
<view class="venus" :class=" <view class="venus" :class="
(index + 1 === state.signConfigList.length ? 'reward' : '') + (index + 1 === state.signConfigList.length ? 'reward' : '') +
@ -86,7 +120,6 @@
</view> </view>
</view> </view>
<!-- 签到按钮 -->
<view class="myDateTable"> <view class="myDateTable">
<view class="ss-flex ss-col-center ss-row-center sign-box ss-m-y-40"> <view class="ss-flex ss-col-center ss-row-center sign-box ss-m-y-40">
<button class="ss-reset-button sign-btn" v-if="!state.signInfo.todaySignIn" @tap="onSign"> <button class="ss-reset-button sign-btn" v-if="!state.signInfo.todaySignIn" @tap="onSign">
@ -97,7 +130,6 @@
</view> </view>
</view> </view>
<!-- 签到说明 TODO @科举这里改成已累计签到 -->
<view class="bg-white ss-m-t-16 ss-p-t-30 ss-p-b-60 ss-p-x-40"> <view class="bg-white ss-m-t-16 ss-p-t-30 ss-p-b-60 ss-p-x-40">
<view class="activity-title ss-m-b-30">签到说明</view> <view class="activity-title ss-m-b-30">签到说明</view>
<view class="activity-des">1已累计签到{{ state.signInfo.totalDay }}</view> <view class="activity-des">1已累计签到{{ state.signInfo.totalDay }}</view>
@ -105,7 +137,7 @@
2据说连续签到第 {{ state.maxDay }} 天可获得超额积分一定要坚持签到哦~~~ 2据说连续签到第 {{ state.maxDay }} 天可获得超额积分一定要坚持签到哦~~~
</view> </view>
</view> </view>
</view> </view> -->
<!-- 签到结果弹窗 --> <!-- 签到结果弹窗 -->
<su-popup :show="state.showModel" type="center" round="10" :isMaskClick="false"> <su-popup :show="state.showModel" type="center" round="10" :isMaskClick="false">
@ -116,7 +148,7 @@
<text v-if="state.signResult.point">{{ state.signResult.point }} 积分 </text> <text v-if="state.signResult.point">{{ state.signResult.point }} 积分 </text>
<text v-if="state.signResult.experience"> {{ state.signResult.experience }} 经验</text> <text v-if="state.signResult.experience"> {{ state.signResult.experience }} 经验</text>
</view> </view>
<view class="model-title ss-flex ss-col-center ss-m-t-22 ss-m-b-30"> <view class="model-title ss-flex ss-col-center ss-m-t-22 ss-m-b-30" style="color:#fcff00;">
已连续打卡 {{ state.signResult.day }} 已连续打卡 {{ state.signResult.day }}
</view> </view>
</view> </view>
@ -132,13 +164,16 @@
</template> </template>
<script setup> <script setup>
import {
computed,
ref,
reactive
} from 'vue';
import sheep from '@/sheep'; import sheep from '@/sheep';
import { import {
onReady onReady
} from '@dcloudio/uni-app'; } from '@dcloudio/uni-app';
import { const userInfo = computed(() => sheep.$store('user').userInfo);
reactive
} from 'vue';
import SignInApi from '@/sheep/api/member/signin'; import SignInApi from '@/sheep/api/member/signin';
const headerBg = sheep.$url.css('/static/img/shop/app/sign.png'); const headerBg = sheep.$url.css('/static/img/shop/app/sign.png');
@ -198,6 +233,7 @@
return; return;
} }
state.signConfigList = data; state.signConfigList = data;
if (data.length > 0) { if (data.length > 0) {
state.maxDay = data[data.length - 1].day; state.maxDay = data[data.length - 1].day;
} }
@ -396,7 +432,7 @@
font-size: 34rpx; font-size: 34rpx;
font-weight: bold; font-weight: bold;
// color: var(--ui-BG-Main); // color: var(--ui-BG-Main);
color: #ff6000; color: white;
} }
.subtitle { .subtitle {
@ -493,9 +529,9 @@
height: 56rpx; height: 56rpx;
} }
.on { // .on {
background-color: #999 !important; // background-color: #999 !important;
} // }
.new-bg { .new-bg {
position: relative; position: relative;
@ -508,7 +544,7 @@
color: white; color: white;
font-size: 20px; font-size: 20px;
position: absolute; position: absolute;
top: 26px; top: 50px;
left: 50%; left: 50%;
transform: translateX(-50%); transform: translateX(-50%);
} }
@ -529,80 +565,188 @@
} }
} }
} }
.new-main{
top:-57px; .new-main {
position:relative; top: -57px;
position: relative;
.sign-list { .sign-list {
width: 80%; width: 86%;
margin: 0 auto; margin: 0 auto;
padding: 20px; padding: 20px;
background: white; background: white;
border-radius: 18px; border-radius: 18px;
.new-top { .new-top {
display:flex; display: flex;
justify-content: space-between; justify-content: space-between;
margin-bottom:10px; margin-bottom: 10px;
.left { .left {
color:rgba(35,24,21,1); color: rgba(35, 24, 21, 1);
font-size:25px; font-size: 19px;
font-weight:700; font-weight: 700;
.number{
color:rgba(255,110,16); .number {
color: rgba(255, 110, 16);
margin: 0 5px; margin: 0 5px;
} }
} }
.right { .right {
padding:5px 10px; padding: 5px 10px;
color:white; color: white;
font-size:20px; font-size: 14px;
background:rgba(255,139,43); background: rgba(255, 139, 43);
width: 62px; width: 62px;
border-radius: 20px; border-radius: 20px;
text-align: center; text-align: center;
&.on {
background: #ffe6de;
color: black;
font-size: 14px;
}
} }
} }
.new-bottom { .new-bottom {
display:flex; width: 100%;
flex-wrap:wrap;
.new-list {
padding:5px 5px;
background: rgba(255,247,239);
width:33%;
border-radius:12px;
.t {
width:100%;
color:black;
text-align:center;
}
.c { .new-l {
width:100%; padding: 5px;
margin:5px 0; float: left;
.img{ width: 21.9%;
width:50px;
height:50px; .new-list {
display:block; padding: 5px 5px;
margin:0 auto; background: rgba(255, 247, 239);
border-radius: 12px;
&.on {
background: rgba(255, 121, 48);
.t,
.b {
color: white;
}
.c {
.img {
display: none;
}
.img2 {
display: block;
}
}
}
.t {
width: 100%;
color: black;
text-align: center;
font-weight: 700;
}
.c {
width: 100%;
margin: 5px 0;
.img {
width: 25px;
height: 25px;
display: block;
margin: 0 auto;
display: block;
}
.img2 {
width: 25px;
height: 25px;
display: block;
margin: 0 auto;
display: none;
}
}
.b {
width: 100%;
color: rgba(176, 144, 122);
text-align: center;
} }
} }
.b { .new-7 {
width:100%; position: relative;
color:rgba(176,144,122); width: 134px;
text-align:center; padding: 5px 10px;
padding-bottom: 0;
height: 80px;
display: flex;
flex-wrap: wrap;
.c {
.img {
width: 58px;
height: 58px;
/* display: block; */
margin: 0 auto;
top: 50%;
left: 70%;
transform: translate(-50%, -50%);
position: absolute;
}
.img2 {
width: 58px;
height: 58px;
/* display: block; */
margin: 0 auto;
top: 50%;
left: 70%;
transform: translate(-50%, -50%);
position: absolute;
}
}
.t,
.b {
text-align: left;
}
.t {
height: 41%;
}
.b {}
} }
} }
} }
} }
.new-qdsm { .new-qdsm {
.t {} width: 86%;
margin: 0 auto;
margin-top: 20px;
padding: 20px;
background: white;
border-radius: 18px;
.tt {} .t {
font-size: 20px;
color: black;
font-weight: 700;
margin-bottom: 10px;
}
.tt {
color: rgba(125, 125, 125);
margin-bottom: 3px;
line-height: 26px;
}
} }
} }
</style> </style>

View File

@ -1,125 +1,191 @@
<!-- 分销账户展示基本统计信息 --> <!-- 分销账户展示基本统计信息 -->
<template> <template>
<view class="account-card"> <view class="new-main">
<view class="account-card-box"> <view class="account-card">
<view class="ss-flex ss-row-between card-box-header"> <view class="account-card-box">
<view class="ss-flex"> <view class="ss-flex ss-row-between card-box-header">
<view class="header-title ss-m-r-16">账户信息</view> <view class="ss-flex">
<button <!-- <view class="header-title ss-m-r-16">账户信息</view> -->
class="ss-reset-button look-btn ss-flex" <button class="ss-reset-button look-btn ss-flex" @tap="state.showMoney = !state.showMoney">
@tap="state.showMoney = !state.showMoney" <uni-icons :type="state.showMoney ? 'eye-filled' : 'eye-slash-filled'" color="#A57A55"
> size="20" />
<uni-icons </button>
:type="state.showMoney ? 'eye-filled' : 'eye-slash-filled'" </view>
color="#A57A55" <view class="ss-flex" @tap="sheep.$router.go('/pages/commission/wallet')">
size="20" <view class="header-title ss-m-r-4">提现记录</view>
/> <text class="cicon-play-arrow" />
</button> </view>
</view> </view>
<view class="ss-flex" @tap="sheep.$router.go('/pages/commission/wallet')"> <!-- 提现金额 -->
<view class="header-title ss-m-r-4">查看明细</view> <view class="ss-flex new-cont">
<text class="cicon-play-arrow" /> <view class="ss-flex-1 ss-flex-col ">
</view> <view class="item-title">可提现()</view>
</view> <view class="item-detail">
{{ state.showMoney ? fen2yuan(state.brokerageInfo.brokeragePrice) : '***' }}
</view>
</view>
<view class="ss-flex-1 ss-flex-col ss-col-center new-btn"
@tap="sheep.$router.go('/pages/commission/withdraw')"
>
立即提现
</view>
</view>
<!-- 收益 -->
<view class="card-content ss-flex">
<view class="ss-flex-1 ss-flex-col ss-col-center">
<view class="item-title">当前收益()</view>
<view class="item-detail">
{{ state.showMoney ? fen2yuan(state.summary.brokeragePrice || 0) : '***' }}
</view>
</view>
<view class="ss-flex-1 ss-flex-col ss-col-center">
<view class="item-title">昨天收益()</view>
<view class="item-detail">
{{ state.showMoney ? fen2yuan(state.summary.yesterdayPrice || 0) : '***' }}
</view>
</view>
<view class="ss-flex-1 ss-flex-col ss-col-center">
<view class="item-title">累计已提()</view>
<view class="item-detail">
{{ state.showMoney ? fen2yuan(state.summary.withdrawPrice || 0) : '***' }}
</view>
</view>
</view>
</view>
<!-- 收益 --> </view>
<view class="card-content ss-flex">
<view class="ss-flex-1 ss-flex-col ss-col-center">
<view class="item-title">当前佣金()</view> </view>
<view class="item-detail">
{{ state.showMoney ? fen2yuan(state.summary.brokeragePrice || 0) : '***' }}
</view>
</view>
<view class="ss-flex-1 ss-flex-col ss-col-center">
<view class="item-title">昨天的佣金()</view>
<view class="item-detail">
{{ state.showMoney ? fen2yuan(state.summary.yesterdayPrice || 0) : '***' }}
</view>
</view>
<view class="ss-flex-1 ss-flex-col ss-col-center">
<view class="item-title">累计已提()</view>
<view class="item-detail">
{{ state.showMoney ? fen2yuan(state.summary.withdrawPrice || 0) : '***' }}
</view>
</view>
</view>
</view>
</view>
</template> </template>
<script setup> <script setup>
import sheep from '@/sheep'; import sheep from '@/sheep';
import { computed, reactive, onMounted } from 'vue'; import {
import BrokerageApi from '@/sheep/api/trade/brokerage'; computed,
import { fen2yuan } from '@/sheep/hooks/useGoods'; reactive,
onMounted,
onBeforeMount
} from 'vue';
import BrokerageApi from '@/sheep/api/trade/brokerage';
import {
fen2yuan
} from '@/sheep/hooks/useGoods';
const userInfo = computed(() => sheep.$store('user').userInfo); const userInfo = computed(() => sheep.$store('user').userInfo);
const state = reactive({ const state = reactive({
showMoney: false, showMoney: false,
summary: {}, summary: {},
}); brokerageInfo: {}, //
arr:{}
});
onMounted(async () => { //
let { code, data } = await BrokerageApi.getBrokerageUserSummary(); async function getBrokerageUser() {
if (code === 0) { const { data, code } = await BrokerageApi.getBrokerageUser();
state.summary = data || {}; if (code === 0) {
} state.brokerageInfo = data;
}); }
}
onMounted(async () => {
let {
code,
data
} = await BrokerageApi.getBrokerageUserSummary();
if (code === 0) {
state.summary = data || {};
}
});
onBeforeMount(() => {
getBrokerageUser();
});
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.account-card { .new-main{
width: 694rpx; width: 100%;
margin: 0 auto; }
padding: 2rpx; .account-card {
background: linear-gradient(180deg, #ffffff 0.88%, #fff9ec 100%); width: 694rpx;
border-radius: 12rpx; margin: 0 auto;
z-index: 3; padding: 2rpx;
position: relative; // background: linear-gradient(180deg, #ffffff 0.88%, #fff9ec 100%);
border-radius: 12rpx 12rpx 0 0;
z-index: 3;
position: relative;
background: url('https://zysc.fjptzykj.com:3000/shangcheng/02ee19a89858e3b1cf0de82867fb06f3ae7f57511130d0167205a97b99b796c7.png') no-repeat;
background-size: cover;
.account-card-box {
background: #ffefd6;
.card-box-header {
padding: 0 30rpx;
height: 72rpx;
box-shadow: 0px 2px 6px #f2debe;
.header-title { .account-card-box {
font-size: 24rpx;
font-weight: 500;
color: #a17545;
line-height: 30rpx;
}
.cicon-play-arrow { // background: #ffefd6;
color: #a17545; .new-cont {
font-size: 24rpx; padding: 0 45rpx;
line-height: 30rpx;
}
}
.card-content { .new-btn {
height: 190rpx; background: rgba(254, 104, 73);
background: #fdfae9; border-radius: 22px;
padding: 8px 0;
font-size: 16px;
color: white;
font-weight:700;
}
.item-title { .item-title {
font-size: 24rpx; color: rgba(139, 105, 87, 1);
font-weight: 500; }
color: #cba67e;
line-height: 30rpx;
margin-bottom: 24rpx;
}
.item-detail { .item-detail {
font-size: 36rpx; color: rgba(81, 41, 24, 1);
font-family: OPPOSANS; font-size: 31px;
font-weight: bold; }
color: #692e04; }
line-height: 30rpx;
} .card-box-header {
} padding: 0 45rpx;
} height: 72rpx;
} // box-shadow: 0px 2px 6px #f2debe;
.header-title {
font-size: 24rpx;
font-weight: 500;
color: #a17545;
line-height: 30rpx;
}
.cicon-play-arrow {
color: #a17545;
font-size: 24rpx;
line-height: 30rpx;
}
}
.card-content {
height: 190rpx;
// background: #fdfae9;
.item-title {
font-size: 24rpx;
font-weight: 500;
color: rgba(139, 105, 87, 1);
line-height: 30rpx;
margin-bottom: 24rpx;
}
.item-detail {
font-size: 36rpx;
font-family: OPPOSANS;
font-weight: bold;
color: #692e04;
line-height: 30rpx;
}
}
}
}
</style> </style>

View File

@ -1,112 +1,226 @@
<!-- 分销商信息 --> <!-- 分销商信息 -->
<template> <template>
<!-- 用户资料 --> <!-- 用户资料 -->
<view class="user-card ss-flex ss-col-bottom"> <view class="user-card ss-flex ss-col-bottom">
<view class="card-top ss-flex ss-row-between"> <view class="card-top ss-flex ss-row-between">
<view class="ss-flex"> <view class="ss-flex">
<view class="head-img-box"> <view class="head-img-box">
<image class="head-img" :src="sheep.$url.cdn(userInfo.avatar)" mode="aspectFill"></image> <image class="head-img" :src="sheep.$url.cdn(userInfo.avatar)" mode="aspectFill"></image>
</view> </view>
<view class="ss-flex-col"> <view class="ss-flex-col">
<view class="user-name">{{ userInfo.nickname }}</view> <view class="user-name" style="color:white;">{{ userInfo.nickname }}</view>
</view> </view>
</view> </view>
</view> </view>
</view> <!-- 账户信息 -->
<account-info style="margin: 0 auto;" />
</view>
<view class="new-ljsy">
<view class="l dd">
<view class="l-img">
<image src="https://zysc.fjptzykj.com:3000/shangcheng/a2aba0242cd2b7ec54518e2ec11651fba3154b5dff9bcd6323cbfa22d771a970.png" class="img"></image>
</view>
<view class="l-text">
<view class="l-text-t">
{{
fen2yuan(state.summary.withdrawPrice || 0)
}}
</view>
<view class="l-text-b">
累计收益
</view>
</view>
</view>
<view class="l r" @click="sheep.$router.go('/pages/commission/team')">
<view class="l-img">
<image src="https://zysc.fjptzykj.com:3000/shangcheng/e940fb45cc53df01980b7069432d5101e104014fbb3cd24862d08c1ffba9df68.png" class="img"></image>
</view>
<view class="l-text">
<view class="l-text-t">
{{
state.arr.firstBrokerageUserCount + state.arr.secondBrokerageUserCount ||
0
}}
</view>
<view class="l-text-b">
我的团队
</view>
</view>
</view>
</view>
</template> </template>
<script setup> <script setup>
import sheep from '@/sheep'; import accountInfo from './account-info.vue';
import { computed, reactive } from 'vue'; import sheep from '@/sheep';
import BrokerageApi from '@/sheep/api/trade/brokerage';
import {
computed,
reactive,
onBeforeMount
} from 'vue';
import {
fen2yuan
} from '@/sheep/hooks/useGoods';
const userInfo = computed(() => sheep.$store('user').userInfo);
const headerBg = sheep.$url.css('/static/img/shop/commission/background.png');
const userInfo = computed(() => sheep.$store('user').userInfo);
const headerBg = sheep.$url.css('/static/img/shop/commission/background.png');
const state = reactive({ const state = reactive({
showMoney: false, showMoney: false,
}); summary:{},
arr:{}
});
async function getAgentInfo() {
const { code, data } = await BrokerageApi.getBrokerageUserSummary();
if (code !== 0) {
return;
}
state.summary = data;
}
onBeforeMount(async() => {
getAgentInfo();
//
let { data } = await BrokerageApi.getBrokerageUserSummary();
state.arr = data;
});
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
// .new-ljsy {
.user-card { width:100%;
width: 690rpx; background:white;
height: 192rpx; padding: 20px 0;
margin: -88rpx 20rpx 0 20rpx; display: flex;
padding-top: 88rpx; justify-content: center;
background: url('https://zysc.fjptzykj.com:3000/shangcheng/10c7d7a9afb36266f658e5f398922b835530cb350ef98cf90d4ef6f60ccc1bc1.png') no-repeat; .l {
background-size: 100% 100%; background: rgba(254,244,237,1);
// background:url('https://zysc.fjptzykj.com/admin-api/infra/file/25/get/8e878e15d22f68e0187a953aeba31b80423b7e3fafa8e4aa9f237477ac0fd519.png') rgba(254,244,237,1);
width:43%;
height:85px;
border-radius: 12px;
background-size: cover;
// position:relative;
display:flex;
align-items:center;
justify-content: center;
&.dd{
margin-right: 5%;
}
.l-text{
// position:absolute;
// top:50%;
// transform: translateY(-50%);
// left:70px;
.l-text-t{
font-size:20px;
font-weight: 700;
}
.l-text-b{
font-size: 13px;
}
}
.l-img{
width:40px;
height:40px;
margin-right:10px;
.img{
width:100%;
height:100%;
}
}
}
.head-img-box { .r {
margin-right: 20rpx; // background:url('https://zysc.fjptzykj.com/admin-api/infra/file/25/get/b18f31e528ad0ab1026441faba07cb9e64723ffa511d103324fcd65fcaaf1557.png') rgba(254,244,237,1);
width: 100rpx; // background-size: cover;
height: 100rpx; .l-text{
border-radius: 50%; // left:80px;
position: relative; }
background: #fce0ad; }
}
//
.user-card {
width: 100%;
height: 580rpx;
// margin: -88rpx 20rpx 0 20rpx;
// background: url('https://zysc.fjptzykj.com:3000/shangcheng/10c7d7a9afb36266f658e5f398922b835530cb350ef98cf90d4ef6f60ccc1bc1.png') no-repeat;
background: url('https://zysc.fjptzykj.com:3000/shangcheng/4bcaa2803c9cc953353d22db804b952b333e97d2a0d57266a00baf0c07379efa.png') no-repeat;
background-size: 100% 100%;
display: flex;
flex-wrap: wrap;
.head-img { .head-img-box {
width: 92rpx; margin-right: 20rpx;
height: 92rpx; width: 62rpx;
border-radius: 50%; height: 62rpx;
position: absolute; border-radius: 50%;
top: 50%; position: relative;
left: 50%; background: #fce0ad;
transform: translate(-50%, -50%);
}
}
.card-top { .head-img {
box-sizing: border-box; width: 62rpx;
padding-bottom: 34rpx; height: 62rpx;
border-radius: 50%;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
}
.user-name { .card-top {
font-size: 32rpx; box-sizing: border-box;
font-weight: bold; margin-top: 46px;
color: #692e04; margin-left: 16px;
line-height: 30rpx;
margin-bottom: 20rpx;
}
.log-btn { .user-name {
width: 84rpx; font-size: 32rpx;
height: 42rpx; font-weight: bold;
border: 2rpx solid rgba(#ffffff, 0.33); color: #692e04;
border-radius: 21rpx; line-height: 30rpx;
font-size: 22rpx; }
font-weight: 400;
color: #ffffff;
margin-bottom: 20rpx;
}
.look-btn { .log-btn {
color: #fff; width: 84rpx;
width: 40rpx; height: 42rpx;
height: 40rpx; border: 2rpx solid rgba(#ffffff, 0.33);
} border-radius: 21rpx;
} font-size: 22rpx;
font-weight: 400;
color: #ffffff;
margin-bottom: 20rpx;
}
.user-info-box { .look-btn {
.tag-box { color: #fff;
background: #ff6000; width: 40rpx;
border-radius: 18rpx; height: 40rpx;
line-height: 36rpx; }
}
.tag-img { .user-info-box {
width: 36rpx; .tag-box {
height: 36rpx; background: #ff6000;
border-radius: 50%; border-radius: 18rpx;
margin-left: -2rpx; line-height: 36rpx;
}
.tag-title { .tag-img {
font-size: 24rpx; width: 36rpx;
padding: 0 10rpx; height: 36rpx;
font-weight: 500; border-radius: 50%;
line-height: 36rpx; margin-left: -2rpx;
color: #fff; }
}
} .tag-title {
} font-size: 24rpx;
} padding: 0 10rpx;
font-weight: 500;
line-height: 36rpx;
color: #fff;
}
}
}
}
</style> </style>

View File

@ -1,147 +1,226 @@
<!-- 分销商菜单栏 --> <!-- 分销商菜单栏 -->
<template> <template>
<view class="menu-box ss-flex-col"> <view class="ss-flex-col new-menu">
<view class="header-box"> <view class="new-menu-list">
<image class="header-bg" src="https://zysc.fjptzykj.com:3000/shangcheng/eb9244a1f0662a699869d47287a477bd16147030ff25c9573395036192b86d91.png" /> <view class="new-menu-item" v-for="(item, index) in state.menuListnew" :key="index"
<view class="ss-flex header-title"> @tap="sheep.$router.go(item.path)">
<view class="title">功能专区</view> <view class="l">
<text class="cicon-forward"></text> <image class="menu-icon " :src="sheep.$url.static(item.img)" mode="aspectFill"></image>
</view> <view>{{ item.title }}</view>
</view> </view>
<view class="menu-list ss-flex ss-flex-wrap"> <view class="r">
<view <image class="menu-icon-you" src="@/static/images/dayu.png" mode="aspectFill"></image>
v-for="(item, index) in state.menuList" </view>
:key="index" </view>
class="item-box ss-flex-col ss-col-center" </view>
@tap="sheep.$router.go(item.path)" </view>
> <!-- <view class="menu-box ss-flex-col">
<image <view class="header-box">
class="menu-icon ss-m-b-10" <image class="header-bg"
:src="sheep.$url.static(item.img)" src="https://zysc.fjptzykj.com:3000/shangcheng/eb9244a1f0662a699869d47287a477bd16147030ff25c9573395036192b86d91.png" />
mode="aspectFill" <view class="ss-flex header-title">
></image> <view class="title">功能专区</view>
<view>{{ item.title }}</view> <text class="cicon-forward"></text>
</view> </view>
</view> </view>
</view> <view class="menu-list ss-flex ss-flex-wrap">
<view v-for="(item, index) in state.menuList" :key="index" class="item-box ss-flex-col ss-col-center"
@tap="sheep.$router.go(item.path)">
<image class="menu-icon ss-m-b-10" :src="sheep.$url.static(item.img)" mode="aspectFill"></image>
<view>{{ item.title }}</view>
</view>
</view>
</view> -->
</template> </template>
<script setup> <script setup>
import sheep from '@/sheep'; import sheep from '@/sheep';
import { reactive } from 'vue'; import {
reactive
} from 'vue';
const state = reactive({ const state = reactive({
menuList: [ menuListnew: [{
{ img: 'https://zysc.fjptzykj.com:3000/shangcheng/82255ab9cb8fa91b261a1976c81a7c761c34a8aa3d3fc12864b3b83158d22267.png',
img: 'https://zysc.fjptzykj.com:3000/shangcheng/ec41e4f5b45c087232aab8d088019a1e9d781b9bde0f54ddbb18e90230b83255.png', title: '推广名片',
title: '我的团队', path: 'action:showShareModal',
path: '/pages/commission/team', },
}, {
{ img: 'https://zysc.fjptzykj.com:3000/shangcheng/3aca872c5c25923b883b98364ca7525bcb7d176cf89769bab429fed090c75adb.png',
img: 'https://zysc.fjptzykj.com:3000/shangcheng/228c9cd847514f99ca1181b4d413c24e482ab46459a557e3b934facb32ab546d.png', title: '佣金明细',
title: '佣金明细', path: '/pages/commission/wallet',
path: '/pages/commission/wallet', },
}, {
{ img: 'https://zysc.fjptzykj.com:3000/shangcheng/512aaaf15aeedc1fd5ad6dc14161d83a4c4ecee33ae2428986c8ecbf0c420fa7.png',
img: 'https://zysc.fjptzykj.com:3000/shangcheng/bb763f93be24f6d5c8c2948e512b95597d748f576277cc2d91f452fb3741e5a3.png', title: '分销订单',
title: '分销订单', path: '/pages/commission/order',
path: '/pages/commission/order', },
}, {
{ img: 'https://zysc.fjptzykj.com:3000/shangcheng/6b61f1357f2f5a4a211c0bb4bac3d85c6e85958e0bfd04d0045d6c83e98085b7.png',
img: 'https://zysc.fjptzykj.com:3000/shangcheng/326f6fe148cd6c8328297731bd63674a3a86340f937dfd1a376e435e34b5073e.png', title: '推广商品',
title: '推广商品', path: '/pages/commission/goods',
path: '/pages/commission/goods', },
}, {
// { img: 'https://zysc.fjptzykj.com:3000/shangcheng/e488e0f84bd4da1edfe75ccfbcc16acf8c60073409f03406bb350573b43769a8.png',
// img: 'https://zysc.fjptzykj.com:3000/shangcheng/fe729044c3c0874d93435151bb204dede3d1dfbc0e2d03d09e2f76534e7cb8ba.png', title: '推广排行',
// title: '', path: '/pages/commission/promoter',
// path: '/pages/commission/apply', },
// isAgentFrom: true, {
// }, img: 'https://zysc.fjptzykj.com:3000/shangcheng/28d6bf4595172ed0a1cdc693483eef018f7f1242be35106bb12ce3ca21940753.png',
// todo @ title: '佣金排行',
{ path: '/pages/commission/commission-ranking',
img: 'https://zysc.fjptzykj.com:3000/shangcheng/f238f60d6e45080cdbbd294c344d3e2fc3a30c34ccb9345e931b0c5aa9e90645.png', },
title: '邀请海报', ],
path: 'action:showShareModal', menuList: [{
}, img: 'https://zysc.fjptzykj.com:3000/shangcheng/ec41e4f5b45c087232aab8d088019a1e9d781b9bde0f54ddbb18e90230b83255.png',
// TODO @ icon title: '我的团队',
{ path: '/pages/commission/team',
img: 'https://zysc.fjptzykj.com:3000/shangcheng/d6bc7dbec1333e554a4781cbfae023e590a555dfca12784615023ae43bd2bf46.png', },
title: '推广排行', {
path: '/pages/commission/promoter', img: 'https://zysc.fjptzykj.com:3000/shangcheng/228c9cd847514f99ca1181b4d413c24e482ab46459a557e3b934facb32ab546d.png',
}, title: '佣金明细',
{ path: '/pages/commission/wallet',
img: 'https://zysc.fjptzykj.com:3000/shangcheng/4332d64835bb4aedc05636950f7cd7dcbab085f0f72f42eee4d87799947a7108.png', },
title: '佣金排行', {
path: '/pages/commission/commission-ranking', img: 'https://zysc.fjptzykj.com:3000/shangcheng/bb763f93be24f6d5c8c2948e512b95597d748f576277cc2d91f452fb3741e5a3.png',
}, title: '分销订单',
], path: '/pages/commission/order',
}); },
{
img: 'https://zysc.fjptzykj.com:3000/shangcheng/326f6fe148cd6c8328297731bd63674a3a86340f937dfd1a376e435e34b5073e.png',
title: '推广商品',
path: '/pages/commission/goods',
},
// {
// img: 'https://zysc.fjptzykj.com:3000/shangcheng/fe729044c3c0874d93435151bb204dede3d1dfbc0e2d03d09e2f76534e7cb8ba.png',
// title: '',
// path: '/pages/commission/apply',
// isAgentFrom: true,
// },
// todo @
{
img: 'https://zysc.fjptzykj.com:3000/shangcheng/f238f60d6e45080cdbbd294c344d3e2fc3a30c34ccb9345e931b0c5aa9e90645.png',
title: '邀请海报',
path: 'action:showShareModal',
},
// TODO @ icon
{
img: 'https://zysc.fjptzykj.com:3000/shangcheng/d6bc7dbec1333e554a4781cbfae023e590a555dfca12784615023ae43bd2bf46.png',
title: '推广排行',
path: '/pages/commission/promoter',
},
{
img: 'https://zysc.fjptzykj.com:3000/shangcheng/4332d64835bb4aedc05636950f7cd7dcbab085f0f72f42eee4d87799947a7108.png',
title: '佣金排行',
path: '/pages/commission/commission-ranking',
},
],
});
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.menu-box { .new-menu {
margin: 0 auto; width: 100%;
width: 690rpx; background: white;
margin-bottom: 20rpx;
margin-top: 20rpx;
border-radius: 12rpx;
z-index: 3;
position: relative;
}
.header-box { .new-menu-list {
width: 690rpx; display: flex;
height: 76rpx; flex-wrap: wrap;
position: relative; align-items: center;
padding: 0 20px;
.header-bg { .new-menu-item {
width: 690rpx; display: flex;
height: 76rpx; flex-wrap: wrap;
} width: 100%;
align-items: center;
justify-content: space-between;
margin-bottom:19px;
.l {
display: flex;
flex-wrap: wrap;
align-items: center;
width: 50%;
.menu-icon{
margin-right: 10px;
}
}
.header-title { .r {
position: absolute; width: 4%;
left: 20rpx; display: flex;
top: 24rpx; align-items: center;
} }
}
}
}
.title { .menu-box {
font-size: 28rpx; margin: 0 auto;
font-weight: 500; width: 690rpx;
color: #ffffff; margin-bottom: 20rpx;
line-height: 30rpx; margin-top: 20rpx;
} border-radius: 12rpx;
z-index: 3;
position: relative;
}
.cicon-forward { .header-box {
font-size: 30rpx; width: 690rpx;
font-weight: 400; height: 76rpx;
color: #ffffff; position: relative;
line-height: 30rpx;
}
}
.menu-list { .header-bg {
padding: 50rpx 0 10rpx 0; width: 690rpx;
background: #fdfae9; height: 76rpx;
border-radius: 0 0 12rpx 12rpx; }
}
.item-box { .header-title {
width: 25%; position: absolute;
margin-bottom: 40rpx; left: 20rpx;
} top: 24rpx;
}
.menu-icon { .title {
width: 68rpx; font-size: 28rpx;
height: 68rpx; font-weight: 500;
background: #ffffff; color: #ffffff;
border-radius: 50%; line-height: 30rpx;
} }
.menu-title { .cicon-forward {
font-size: 26rpx; font-size: 30rpx;
font-weight: 500; font-weight: 400;
color: #ffffff; color: #ffffff;
} line-height: 30rpx;
}
}
.menu-list {
padding: 50rpx 0 10rpx 0;
background: #fdfae9;
border-radius: 0 0 12rpx 12rpx;
}
.item-box {
width: 25%;
margin-bottom: 40rpx;
}
.menu-icon {
width: 45rpx;
height: 45rpx;
background: #ffffff;
border-radius: 50%;
}
.menu-icon-you{
width: 48rpx;
height: 48rpx;
}
.menu-title {
font-size: 26rpx;
font-weight: 500;
color: #ffffff;
}
</style> </style>

View File

@ -1,20 +1,21 @@
<!-- 分销中心 --> <!-- 分销中心 -->
<template> <template>
<s-layout <s-layout
navbar="inner" navbar="custom"
navbarMode="inner"
class="index-wrap" class="index-wrap"
title="分销中心" title=""
:bgStyle="bgStyle" :bgStyle="bgStyle"
:onShareAppMessage="shareInfo" :onShareAppMessage="shareInfo"
> >
<!-- 分销商信息 --> <!-- 分销商信息 -->
<commission-info /> <commission-info />
<!-- 账户信息 --> <!-- 账户信息 -->
<account-info /> <!-- <account-info /> -->
<!-- 菜单栏 --> <!-- 菜单栏 -->
<commission-menu /> <commission-menu />
<!-- 分销记录 --> <!-- 分销记录 -->
<commission-log /> <!-- <commission-log /> -->
<!-- 权限弹窗 --> <!-- 权限弹窗 -->
<commission-auth /> <commission-auth />
@ -24,7 +25,7 @@
<script setup> <script setup>
import { computed } from 'vue'; import { computed } from 'vue';
import commissionInfo from './components/commission-info.vue'; import commissionInfo from './components/commission-info.vue';
import accountInfo from './components/account-info.vue'; // import accountInfo from './components/account-info.vue';
import commissionLog from './components/commission-log.vue'; import commissionLog from './components/commission-log.vue';
import commissionMenu from './components/commission-menu.vue'; import commissionMenu from './components/commission-menu.vue';
import commissionAuth from './components/commission-auth.vue'; import commissionAuth from './components/commission-auth.vue';

View File

@ -201,13 +201,15 @@
<style lang="scss" scoped> <style lang="scss" scoped>
.card-btn { .card-btn {
// width: 144rpx; // width: 144rpx;
padding: 0 16rpx; padding: 0 12rpx;
height: 50rpx; height: 50rpx;
border-radius: 40rpx; border-radius: 40rpx;
background: linear-gradient(90deg, var(--ui-BG-Main), var(--ui-BG-Main-gradient)); background: linear-gradient(90deg, var(--ui-BG-Main), var(--ui-BG-Main-gradient));
color: #ffffff; color: #ffffff;
font-size: 24rpx; font-size: 24rpx;
font-weight: 400; font-weight: 400;
flex: 1;
margin: 0 10px;
} }
.border-btn { .border-btn {

View File

@ -110,7 +110,7 @@
<view>原价购买</view> <view>原价购买</view>
</button> </button>
<button class="ss-reset-button btn-tox ss-flex-col" @tap="onCreateGroupon" :class=" <button class="ss-reset-button btn-tox ss-flex-col" @tap="onCreateGroupon" :class="
state.activity.status === 0 && state.goodsInfo.stock !== 0 state.activity.status === 0 && state.goodsInfo.stock !== 0 && state.activity.remainingPurchases != 0
? 'check-btn-box' ? 'check-btn-box'
: 'disabled-btn-box' : 'disabled-btn-box'
" :disabled="state.goodsInfo.stock === 0 || state.activity.status !== 0 || state.activity.remainingPurchases == 0"> " :disabled="state.goodsInfo.stock === 0 || state.activity.status !== 0 || state.activity.remainingPurchases == 0">

View File

@ -604,20 +604,25 @@
// position: relative; // position: relative;
// height: 41px; // height: 41px;
padding: 14px 13px; padding-bottom: 4px;
padding-bottom: 4px;
.title-text {
padding: 14px 13px;
}
} }
.new-main { .new-main {
position: relative; position: relative;
top: -29px; top: -29px;
.new-sub{
.new-sub {
border-radius: 20px; border-radius: 20px;
position: relative; position: relative;
top: -29px; top: -29px;
background: #f6f6f6; background: #f6f6f6;
} }
} }
.title-text { .title-text {
font-size: 16px; font-size: 16px;
font-weight: bold; font-weight: bold;

View File

@ -334,20 +334,40 @@
// & // &
async function getOrderInfo() { async function getOrderInfo() {
// //
const { data, code } = await OrderApi.settlementOrder({ let parm = {};
items: state.orderPayload.items, if(addressState.value.deliveryType == 4){
couponId: state.orderPayload.couponId, parm = {
deliveryType: addressState.value.deliveryType, items: state.orderPayload.items,
addressId: addressState.value.addressInfo.id, // couponId: state.orderPayload.couponId,
pickUpStoreId: addressState.value.pickUpInfo.id, // deliveryType: addressState.value.deliveryType,
receiverName: addressState.value.receiverName, // addressId: addressState.value.addressInfo.id, //
receiverMobile: addressState.value.receiverMobile, // pickUpStoreId: addressState.value.pickUpInfo.id, //
pointStatus: state.pointStatus, receiverName: addressState.value.receiverName, //
combinationActivityId: state.orderPayload.combinationActivityId, receiverMobile: addressState.value.receiverMobile, //
combinationHeadId: state.orderPayload.combinationHeadId, pointStatus: state.pointStatus,
seckillActivityId: state.orderPayload.seckillActivityId, combinationActivityId: state.orderPayload.combinationActivityId,
pointActivityId: state.orderPayload.pointActivityId, combinationHeadId: state.orderPayload.combinationHeadId,
}); seckillActivityId: state.orderPayload.seckillActivityId,
pointActivityId: state.orderPayload.pointActivityId,
}
}else{
parm = {
items: state.orderPayload.items,
couponId: state.orderPayload.couponId,
deliveryType: addressState.value.deliveryType,
addressId: addressState.value.addressInfo.id, //
pickUpStoreId: addressState.value.pickUpInfo.id, //
receiverName: addressState.value.receiverName, //
receiverMobile: addressState.value.receiverMobile, //
pointStatus: state.pointStatus,
combinationActivityId: state.orderPayload.combinationActivityId,
combinationHeadId: state.orderPayload.combinationHeadId,
seckillActivityId: state.orderPayload.seckillActivityId,
}
}
const { data, code } = await OrderApi.settlementOrder(parm);
if (code !== 0) { if (code !== 0) {
return; return;
} }

View File

@ -1,107 +1,111 @@
<template> <template>
<s-layout title="预约记录" :bgStyle="{ color: '#fff' }"> <s-layout title="预约记录" :bgStyle="{ color: '#fff' }">
<view class="container"> <view class="container">
<!-- <view class="health_title"> <view class="cards">
<image class="health_title_img" ></image> <view class="card" v-for="(item, index) in reservationList" :key="index">
<view class="health-title-title">预约记录</view> <view class="card-content">
</view> --> <text class="type">预约信息</text>
<view class="cards"> <text class="time">订单日期{{ sheep.$helper.timeFormat(item.reAddTime, 'yyyy-mm-dd hh:MM:ss') }}</text>
<view class="card" v-for="(item, index) in reservationList" :key="index"> </view>
<view class="card-content">
<text class="type" >预约类型{{ item.typeName }}</text>
<!-- <text class="type" v-if="item.type===1">预约类型教培预约</text> -->
<text class="time">预约时间{{ item.reAddTime }}</text>
</view>
<view style="height: 1px; background-color: #e8e8e8;margin:7px 0px 7px 0px"></view> <view style="height: 1px; background-color: #e8e8e8;margin:7px 0px 7px 0px"></view>
<!-- <view class="card-contentinfo"> <view>
<text class="time">预约时间{{ item.reAddTime }}</text> <text class="address">医生{{ item.technicianName }}</text><br><br>
</view> --> <text class="address">医馆{{ item.brandName }}</text><br><br>
<view> <text class="address">医馆电话{{ item.brandphone }}</text><br><br>
<text class="address">医生{{ item.technicianName }}</text><br><br> <div class="address-container">
<text class="address">医馆{{ item.brandName }}</text><br><br> <text class="address">医馆地址{{ item.brandaddress }}</text><br><br>
<text class="address">医馆电话{{ item.brandphone }}</text><br><br> </div>
<div class="address-container"> <text class="address">备注{{ item.remark }}</text><br><br>
<text class="address">医馆地址{{ item.brandaddress }}</text><br><br> </view>
</div> <view>
<text class="address">备注{{ item.remark }}</text><br><br> <text class="status"
</view> style="float: right; border-radius: 10px; background-color: orangered; padding: 5px 10px; color: white;"
<view> v-if=" item.reStatus===0">待审核</text>
<text class="status" style="float: right; border-radius: 10px; background-color: orangered; padding: 5px 10px; color: white;" v-if=" item.reStatus===0">待审核</text> <text class="status"
<text class="status" style="float: right; border-radius: 10px; background-color: orangered; padding: 5px 10px; color: white;" v-if=" item.reStatus===1">预约成功</text> style="float: right; border-radius: 10px; background-color: orangered; padding: 5px 10px; color: white;"
<text class="status" style="float: right; border-radius: 10px; background-color: orangered; padding: 5px 10px; color: white;" v-if=" item.reStatus===2">已完结</text><br><br> v-if=" item.reStatus===1">预约成功</text>
</view> <text class="status"
</view> style="float: right; border-radius: 10px; background-color: orangered; padding: 5px 10px; color: white;"
</view> v-if=" item.reStatus===2">已完结</text><br><br>
</view> </view>
</s-layout> </view>
</view>
</view>
</s-layout>
</template> </template>
<script> <script>
import {
ref,
computed,
onMounted
} from 'vue';
import request from '@/sheep/request'; import request from '@/sheep/request';
import { computed } from 'vue';
import sheep from '@/sheep';
import { import {
baseUrl, baseUrl,
apiPath apiPath
} from '@/sheep/config'; } from '@/sheep/config';
import sheep from '@/sheep';
export default { export default {
data() { setup() {
return { // 使 ref
memberId:null, const memberId = ref(null);
reservationList: [], const reservationList = ref([]);
page: 1, const page = ref(1);
limit: 10, const limit = ref(10);
totalPages: 1, const totalPages = ref(1);
};
}, // 使 computed
created() { const userInfo = computed(() => sheep.$store('user').userInfo);
this.memberId=computed(() => sheep.$store('user').userInfo).value.id memberId.value = userInfo.value.id;
this.getList();
}, // 使 onMounted
methods: { onMounted(() => {
getList() { getList();
});
//
function getList() {
request({ request({
url: `${baseUrl}${apiPath}/h5/reservation/list`, url: `${baseUrl}${apiPath}/h5/reservation/list`,
method: 'GET', method: 'GET',
params:{ params: {
userId:this.memberId, userId: memberId.value,
}, },
custom: { custom: {
showLoading: false, showLoading: false,
}, },
}).then((res) => { }).then((res) => {
this.reservationList = res.data.list reservationList.value = res.data.list;
}); });
// uni.request({ }
// url: `${baseUrl}${apiPath}/h5/reservation/list`, //
// data: { //
// userId:this.memberId, return {
// }, memberId,
// success: (res) => { reservationList,
// console.log(res.data); page,
// this.reservationList = res.data.rows limit,
// }, totalPages,
// fail: (error) => { getList,
// console.log(error) };
// } },
// })
},
}
}; };
</script> </script>
<style scoped> <style scoped lang="scss">
.address-container { .address-container {
display: flex; display: flex;
align-items: center; align-items: center;
} }
.container { .container {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
/* align-items: center; */ /* align-items: center; */
background-color: #f5f5f5; background-color: #f5f5f5;
padding: 10px; padding: 15px;
} }
.header { .header {
@ -138,6 +142,22 @@
.card-content { .card-content {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
.type {
position: relative;
padding-left: 20px;
&::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 10px;
height: 100%;
background: url('https://zysc.fjptzykj.com:3000/shangcheng/7b5c7b96c46b782e8928ed9e53d19563823408b481b03ec75954d8266ec55f6b.png') no-repeat;
background-size: 60%;
}
}
} }
.card-contentinfo { .card-contentinfo {
@ -159,21 +179,24 @@
.hospital, .hospital,
.technician, .technician,
.type{ .type {
margin-left: 20px; /* margin-left: 20px; */
font-size: 15px; font-size: 15px;
color: #161616; color: #161616;
font-weight: bold; font-weight: bold;
} }
.status { .status {
font-size: 15px; font-size: 15px;
color: #666; color: #666;
} }
.address{
margin: 20px 0px 0px 20px ; .address {
margin: 20px 0px 0px 20px;
font-size: 15px; font-size: 15px;
color: #666; color: #666;
} }
.health-list { .health-list {
background-color: #FFFFFF; background-color: #FFFFFF;
height: 100%; height: 100%;

View File

@ -1,6 +1,5 @@
<template> <template>
<view> <view>
<!-- 基础组件搜索框 --> <!-- 基础组件搜索框 -->
<s-search-block v-if="type === 'SearchBar'" :data="data" :styles="styles" :navbar="false" /> <s-search-block v-if="type === 'SearchBar'" :data="data" :styles="styles" :navbar="false" />
<!-- 基础组件公告栏 --> <!-- 基础组件公告栏 -->
@ -136,7 +135,7 @@
.new-huiy { .new-huiy {
width: 100%; width: 100%;
height: 89px; height: 93px;
z-index: 9999999999999; z-index: 9999999999999;
.new-button { .new-button {
@ -145,7 +144,7 @@
text-align: center; text-align: center;
position: absolute; position: absolute;
border-radius: 20px; border-radius: 20px;
right: 29px; right: 14px;
top: 37px; top: 37px;
font-size: 14px; font-size: 14px;
color: rgba(148, 109, 45, 1); color: rgba(148, 109, 45, 1);
@ -158,7 +157,7 @@
z-index: 22; z-index: 22;
left: 50%; left: 50%;
transform: translateX(-50%); transform: translateX(-50%);
width: 94%; width: 100%;
} }
} }

View File

@ -1,198 +1,224 @@
<template> <template>
<view class="ss-m-20" :style="{ opacity: disabled ? '0.5' : '1' }"> <view class="ss-m-20" :style="{ opacity: disabled ? '0.5' : '1' }">
<view class="content"> <view class="content">
<view <view class="tag ss-flex ss-row-center" :class="isDisable ? 'disabled-bg-color' : 'info-bg-color'">
class="tag ss-flex ss-row-center" {{ data.discountType === 1 ? '满减券' : '折扣券' }}
:class="isDisable ? 'disabled-bg-color' : 'info-bg-color'" </view>
> <view class="title ss-flex">
{{ data.discountType === 1 ? '满减券' : '折扣券' }}
</view>
<view class="title ss-m-x-30 ss-p-t-18">
<view class="ss-flex ss-row-between">
<view
class="value-text ss-flex-1 ss-m-r-10"
:class="isDisable ? 'disabled-color' : 'info-color'"
>
{{ data.name }}
</view>
<view>
<view
class="ss-flex ss-col-bottom"
:class="isDisable ? 'disabled-color' : 'price-text'"
>
<view class="value-reduce ss-m-b-10" v-if="data.discountType === 1"></view>
<view class="value-price">
{{
data.discountType === 1
? fen2yuan(data.discountPrice)
: data.discountPercent / 10.0
}}
</view>
<view class="value-discount ss-m-b-10 ss-m-l-4" v-if="data.discountType === 2"
></view
>
</view>
</view>
</view>
<view class="ss-flex ss-row-between ss-m-t-16">
<view
class="sellby-text"
:class="isDisable ? 'disabled-color' : 'subtitle-color'"
v-if="data.validityType === 2"
>
有效期领取后第{{ data.fixedStartTerm }}天开始至第{{ data.fixedEndTerm }}天内有效
</view>
<view class="sellby-text" :class="isDisable ? 'disabled-color' : 'subtitle-color'" v-else>
有效期: {{ sheep.$helper.timeFormat(data.validStartTime, 'yyyy-mm-dd') }}
{{ sheep.$helper.timeFormat(data.validEndTime, 'yyyy-mm-dd') }}
</view>
<view class="value-enough" :class="isDisable ? 'disabled-color' : 'subtitle-color'">
{{ fen2yuan(data.usePrice) }} 可用
</view>
</view>
</view>
</view>
<!-- TODO 芋艿可优化增加优惠劵的描述 --> <view class="ss-flex new-title new-left">
<view class="desc ss-flex ss-row-between"> <view style="width:100%;">
<view> <view class="ss-flex ss-col-bottom new-left-center" :class="isDisable ? 'disabled-color' : 'price-text'">
<view class="desc-title">{{ data.description }}</view> <view class="value-reduce " v-if="data.discountType === 1"></view>
<view> <view class="value-price">
<slot name="reason" /> {{
</view> data.discountType === 1
</view> ? fen2yuan(data.discountPrice)
<view> : data.discountPercent / 10.0
<slot /> }}
</view> </view>
</view> <view class="value-discount ss-m-b-10 ss-m-l-4" v-if="data.discountType === 2"></view>
</view> </view>
</view>
<view class="value-enough new-left-center" :class="isDisable ? 'disabled-color' : 'subtitle-color'">
{{ fen2yuan(data.usePrice) }} 可用
</view>
</view>
<view class="ss-flex ss-row-between ss-m-t-16 new-title new-con-ww">
<view class="value-text ss-flex-1 ss-m-r-10 new-ww" :class="isDisable ? 'disabled-color' : 'info-color'">
{{ data.name }}
</view>
<view class="sellby-text new-ww" :class="isDisable ? 'disabled-color' : 'subtitle-color'"
v-if="data.validityType === 2">
<!-- 有效期领取后第{{ data.fixedStartTerm }}天开始至第{{ data.fixedEndTerm }}天内有效 -->
有效期领取{{ data.fixedEndTerm }}天内有效
</view>
<view class="sellby-text" :class="isDisable ? 'disabled-color' : 'subtitle-color'" v-else>
有效期: {{ sheep.$helper.timeFormat(data.validStartTime, 'yyyy-mm-dd') }}
{{ sheep.$helper.timeFormat(data.validEndTime, 'yyyy-mm-dd') }}
</view>
</view>
<slot />
</view>
</view>
<!-- TODO 芋艿可优化增加优惠劵的描述 -->
<!-- <view class="desc ss-flex ss-row-between">
<view>
<view class="desc-title">{{ data.description }}</view>
<view>
<slot name="reason" />
</view>
</view>
<view>
<slot />
</view>
</view> -->
</view>
</template> </template>
<script setup> <script setup>
import { computed, reactive } from 'vue'; import {
import { fen2yuan } from '../../hooks/useGoods'; computed,
import sheep from '../../index'; reactive
} from 'vue';
import {
fen2yuan
} from '../../hooks/useGoods';
import sheep from '../../index';
const state = reactive({}); const state = reactive({});
const isDisable = computed(() => { const isDisable = computed(() => {
if (props.type === 'coupon') { if (props.type === 'coupon') {
return false; return false;
} }
return props.data.status !== 1; return props.data.status !== 1;
}); });
// //
const props = defineProps({ const props = defineProps({
data: { data: {
type: Object, type: Object,
default: {}, default: {},
}, },
disabled: { disabled: {
type: Boolean, type: Boolean,
default: false, default: false,
}, },
type: { type: {
type: String, type: String,
default: 'coupon', // coupon user default: 'coupon', // coupon user
}, },
}); });
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.info-bg-color { .new-title{
background: linear-gradient(90deg, var(--ui-BG-Main), var(--ui-BG-Main-gradient)); flex-wrap: wrap;
} }
.content{
position:relative;
.tag{
position:absolute;
top:0;
left:0;
}
}
.new-ww{
width:100%;
}
.new-con-ww{
width:42%;
padding-left: 13px;
}
.new-left{
padding: 30px 0px;
background: rgba(255, 241, 241);
width: 32%;
.new-left-center{
width:100%;
justify-content: center;
text-align: center;
color: #ff0000;
}
}
.info-bg-color {
background: linear-gradient(90deg, var(--ui-BG-Main), var(--ui-BG-Main-gradient));
}
.disabled-bg-color { .disabled-bg-color {
background: #999; background: #999;
} }
.info-color { .info-color {
color: #333; color: #333;
} }
.subtitle-color { .subtitle-color {
color: #666; color: #666;
} }
.disabled-color { .disabled-color {
color: #999; color: #999;
} }
.content { .content {
width: 100%; width: 100%;
background: #fff; background: #fff;
border-radius: 20rpx 20rpx 0 0; border-radius: 20rpx;
-webkit-mask: radial-gradient(circle at 12rpx 100%, #0000 12rpx, red 0) -12rpx; // -webkit-mask: radial-gradient(circle at 12rpx 100%, #0000 12rpx, red 0) -12rpx;
box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.04); box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.04);
.tag { .tag {
width: 100rpx; width: 100rpx;
color: #fff; color: #fff;
height: 40rpx; height: 40rpx;
font-size: 24rpx; font-size: 24rpx;
border-radius: 20rpx 0 20rpx 0; border-radius: 20rpx 0 20rpx 0;
} }
.title { .title {
padding-bottom: 22rpx; // padding-bottom: 22rpx;
border-bottom: 2rpx dashed #d3d3d3; // border-bottom: 2rpx dashed #d3d3d3;
.value-text { .value-text {
font-size: 32rpx; font-size: 32rpx;
font-weight: 600; font-weight: 600;
} }
.sellby-text { .sellby-text {
font-size: 24rpx; font-size: 24rpx;
font-weight: 400; font-weight: 400;
} }
.value-price { .value-price {
font-size: 64rpx; font-size: 40rpx;
font-weight: 500; font-weight: 700;
line-height: normal; line-height: normal;
font-family: OPPOSANS; font-family: OPPOSANS;
} }
.value-reduce { .value-reduce {
line-height: normal; line-height: normal;
font-size: 32rpx; font-size: 32rpx;
} }
.value-discount { .value-discount {
line-height: normal; line-height: normal;
font-size: 28rpx; font-size: 28rpx;
} }
.value-enough { .value-enough {
font-size: 24rpx; font-size: 24rpx;
font-weight: 400; font-weight: 400;
font-family: OPPOSANS; font-family: OPPOSANS;
} }
} }
} }
.desc { .desc {
width: 100%; width: 100%;
background: #fff; background: #fff;
-webkit-mask: radial-gradient(circle at 12rpx 0%, #0000 12rpx, red 0) -12rpx; // -webkit-mask: radial-gradient(circle at 12rpx 0%, #0000 12rpx, red 0) -12rpx;
box-shadow: rgba(#000, 0.1); box-shadow: rgba(#000, 0.1);
box-sizing: border-box; box-sizing: border-box;
padding: 24rpx 30rpx; padding: 24rpx 30rpx;
box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.04); box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.04);
border-radius: 0 0 20rpx 20rpx; border-radius: 0 0 20rpx 20rpx;
.desc-title { .desc-title {
font-size: 24rpx; font-size: 24rpx;
color: #999; color: #999;
font-weight: 400; font-weight: 400;
} }
} }
.price-text { .price-text {
color: #ff0000; color: #ff0000;
} }
</style> </style>

View File

@ -79,9 +79,9 @@
</view> </view>
<template v-else> <template v-else>
<view class="fff" v-if="btn == 'ms'"></view> <view class="fff" v-if="btn == 'ms'"></view>
<text class="price-unit ss-font-24">{{ priceUnit }}</text> <text class="price-unit new-unit">{{ priceUnit }}</text>
<text v-if="data.promotionPrice > 0">{{ fen2yuan(data.promotionPrice) }}</text> <text class="new-unit-number" v-if="data.promotionPrice > 0">{{ fen2yuan(data.promotionPrice) }}</text>
<text v-else> <text class="new-unit-number" v-else>
{{ isArray(data.price) ? fen2yuan(data.price[0]) : fen2yuan(data.price) }} {{ isArray(data.price) ? fen2yuan(data.price[0]) : fen2yuan(data.price) }}
</text> </text>
</template> </template>
@ -682,7 +682,7 @@
} }
.sm-goods-content { .sm-goods-content {
padding: 20rpx 16rpx; padding: 20rpx 0;
box-sizing: border-box; box-sizing: border-box;
} }
@ -892,18 +892,25 @@
color: white; color: white;
border-radius: 0px 0px 5px 5px; border-radius: 0px 0px 5px 5px;
} }
.fff{
padding: 3px; .fff {
font-size: 13px; padding: 1px 3px;
font-size: 8px;
background: #e93422; background: #e93422;
text-align: center;
color: white; color: white;
border-radius: 5px; border-radius: 2px;
width: 20px; margin-right: 2px;
margin-right:5px;
} }
.new-ii{
display:flex; .new-ii {
display: flex;
align-items: baseline; align-items: baseline;
} }
.new-unit{
font-size: 10px;
}
.new-unit-number{
font-size: 13px;
font-weight: 700;
}
</style> </style>

View File

@ -20,7 +20,7 @@
</view> </view>
</template> </template>
<template v-slot:footer> <template v-slot:footer>
<view style="color: rgb(187, 187, 187);font-size:15px;" class="notice-text ss-flex ss-row-center ss-col-center"> <view style="color: rgb(187, 187, 187);font-size:13px;" class="notice-text ss-flex ss-row-center ss-col-center">
查看更多 查看更多
</view> </view>
</template> </template>

View File

@ -1,7 +1,7 @@
<!-- 装修基础组件宫格导航 --> <!-- 装修基础组件宫格导航 -->
<template> <template>
<uni-grid :showBorder="Boolean(data.border)" :column="data.column"> <uni-grid :showBorder="Boolean(data.border)" :column="data.column">
<uni-grid-item v-for="(item, index) in data.list" :key="index" @tap="sheep.$router.go(item.url)"> <uni-grid-item v-for="(item, index) in data.list" :key="index" @tap="sheep.$router.go(item.url)" :class="data.list.length > 5 ? 'sss' : ''">
<view class="grid-item-box ss-flex ss-flex-col ss-row-center ss-col-center"> <view class="grid-item-box ss-flex ss-flex-col ss-row-center ss-col-center">
<view class="img-box"> <view class="img-box">
<view class="tag-box" v-if="item.badge.show" <view class="tag-box" v-if="item.badge.show"
@ -12,7 +12,7 @@
</view> </view>
<view class="title-box ss-flex ss-flex-col ss-row-center ss-col-center"> <view class="title-box ss-flex ss-flex-col ss-row-center ss-col-center">
<view class="grid-text" :style="[{ color: item.titleColor }]"> <view class="grid-text" :style="[{ color: item.titleColor }]" style="font-size: 12px;">
{{ item.title }} {{ item.title }}
</view> </view>
<view class="grid-tip" :style="[{ color: item.subtitleColor }]"> <view class="grid-tip" :style="[{ color: item.subtitleColor }]">
@ -36,6 +36,9 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
:deep(.sss:not(:nth-child(n+6))){
margin-bottom: 15px;
}
.menu-image { .menu-image {
width: 45px; width: 45px;
height: 45px; height: 45px;

View File

@ -15,7 +15,7 @@
</view> </view>
</template> </template>
<template v-slot:footer> <template v-slot:footer>
<view class="notice-text ss-flex ss-row-center ss-col-center" <view class="notice-text ss-flex ss-row-center ss-col-center new-color"
:style="[{ color: item.subtitleColor }]"> :style="[{ color: item.subtitleColor }]">
{{ item.subtitle }} {{ item.subtitle }}
</view> </view>
@ -42,6 +42,9 @@
:deep(.container--right){ :deep(.container--right){
padding-left: 5px !important; padding-left: 5px !important;
} }
.new-color{
font-size: 13px;
}
.ss-col-center{ .ss-col-center{
.list-icon { .list-icon {
position: relative; position: relative;

View File

@ -1,39 +1,45 @@
<template> <template>
<view class="ss-flex ss-col-center notice-wrap"> <view class="ss-flex ss-col-center notice-wrap">
<image class="icon-img" :src="sheep.$url.cdn(data.iconUrl)" mode="heightFix"></image> <image class="icon-img" :src="sheep.$url.cdn(data.iconUrl)" mode="heightFix"></image>
<!-- todo@owen 暂时只支持一个公告 --> <!-- todo@owen 暂时只支持一个公告 -->
<su-notice-bar <su-notice-bar style="flex: 1" :showIcon="false" scrollable single :text="data.contents[0].text" :speed="50"
style="flex: 1" :color="data.textColor" @tap="sheep.$router.go(data.contents[0].url)" />
:showIcon="false" </view>
scrollable
single
:text="data.contents[0].text"
:speed="50"
:color="data.textColor"
@tap="sheep.$router.go(data.contents[0].url)"
/>
</view>
</template> </template>
<script setup> <script setup>
/** /**
* 装修组件 - 通知栏 * 装修组件 - 通知栏
* *
*/ */
import sheep from '@/sheep'; import sheep from '@/sheep';
const props = defineProps({ const props = defineProps({
data: { data: {
type: Object, type: Object,
default() {}, default () {},
}, },
}); });
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.notice-wrap { .notice-wrap {
.icon-img { .icon-img {
width: 80px !important; width: 75px !important;
height: 20px; height: 19px;
} position: relative;
} padding-right: 9px;
&:after {
position: absolute;
content: '';
right: 0;
height: 80%;
width: 1px;
background: #7a767640;
top: 52%;
;
transform: translateY(-50%);
}
}
}
</style> </style>

View File

@ -93,7 +93,7 @@
const numData = computed(() => sheep.$store('user').numData); const numData = computed(() => sheep.$store('user').numData);
console.log(numData,'numData') console.log(numData, 'numData')
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@ -104,18 +104,21 @@
font-size: 16px; font-size: 16px;
font-weight: 600; font-weight: 600;
// border-bottom: 1px solid #dcdcdc; // border-bottom: 1px solid #dcdcdc;
display:flex; display: flex;
justify-content: space-between; justify-content: space-between;
.ff{
.ff {
display: flex; display: flex;
align-items: center; align-items: center;
.ckgd{
.ckgd {
color: #8a8787; color: #8a8787;
font-size: 15px; font-size: 13px;
.img{
width:20px; .img {
height:20px; width: 22px;
margin-top: 3px; height: 22px;
margin-top: 5px;
} }
} }
} }
@ -132,7 +135,7 @@
font-size: 24rpx; font-size: 24rpx;
line-height: 24rpx; line-height: 24rpx;
color: #333333; color: #333333;
margin-top:14rpx; margin-top: 14rpx;
} }
.item-icon { .item-icon {

View File

@ -24,7 +24,7 @@
</view> </view>
</template> </template>
<template v-slot:footer> <template v-slot:footer>
<view style="color: rgb(187, 187, 187);font-size:15px;" <view style="color: rgb(187, 187, 187);font-size:13px;"
class="notice-text ss-flex ss-row-center ss-col-center"> class="notice-text ss-flex ss-row-center ss-col-center">
查看更多 查看更多
</view> </view>

View File

@ -1,7 +1,10 @@
<!-- 自定义导航栏 --> <!-- 自定义导航栏 -->
<template> <template>
<view class="uni-navbar" :class="{ 'uni-dark': dark }"> <view class="uni-navbar" :class="{ 'uni-dark': dark }">
<view :class="{ <view :style="{
background: backgroundColor,
}"
:class="{
'uni-navbar--fixed': fixed, 'uni-navbar--fixed': fixed,
'uni-navbar--shadow': shadow, 'uni-navbar--shadow': shadow,
'uni-navbar--border': border, 'uni-navbar--border': border,

View File

@ -1,7 +1,11 @@
<template> <template>
<view <!-- <view
:style="'width:' + width + ';' + (square ? 'height:' + width : '')" :style="'width:' + width + ';' + (square ? 'height:' + width : '')"
class="uni-grid-item grid-item" class="uni-grid-item grid-item"
> -->
<view
:style="'width:' + width + ';'"
class="uni-grid-item grid-item"
> >
<view <view
:class="{ :class="{

View File

@ -286,7 +286,7 @@ $uni-font-size-sm: 12px;
$uni-font-size-base: 14px; $uni-font-size-base: 14px;
$uni-font-size-lg: 16px; $uni-font-size-lg: 16px;
$uni-spacing-col-lg: 12px; $uni-spacing-col-lg: 12px;
$uni-spacing-row-lg: 15px; $uni-spacing-row-lg: 3px;
$uni-img-size-sm: 20px; $uni-img-size-sm: 20px;
$uni-img-size-base: 26px; $uni-img-size-base: 26px;
$uni-img-size-lg: 40px; $uni-img-size-lg: 40px;
@ -417,7 +417,11 @@ $list-item-pd: $uni-spacing-col-lg $uni-spacing-row-lg;
display: flex; display: flex;
/* #endif */ /* #endif */
align-items: center; align-items: center;
padding: 0 10px; padding: 0 6px;
padding-left: 0px;
.uniui-arrowright{
font-size:12px !important;
}
} }
.flex--direction { .flex--direction {
flex-direction: column; flex-direction: column;