From e3c019754f508ee7744493f108d58d1a4bacc163 Mon Sep 17 00:00:00 2001
From: xuxueyang <xuxy@fengyuntec.com>
Date: 星期五, 02 八月 2024 14:54:50 +0800
Subject: [PATCH] fix bug 接口对接和样式调整
---
/dev/null | 56 ----
pages.json | 9
sub_pages/partner/partner-info/partner-code.vue | 16 +
sub_pages/partner/partner-info/partner-code-v2.vue | 688 ++++++++++++++++++++++++++++++++++++++++++++++++++++
pages/user/supplier-user.vue | 9
5 files changed, 719 insertions(+), 59 deletions(-)
diff --git a/detail.vue b/detail.vue
deleted file mode 100644
index 2198b28..0000000
--- a/detail.vue
+++ /dev/null
@@ -1,56 +0,0 @@
-<template>
- <view class="shop-detail">
- <view v-if="dto.id">
- <!-- 图片+2个icon -->
- <view>
-
- </view>
-
- </view>
- </view>
-</template>
-
-<script>
- export default {
- data() {
- return {
- dto: {
-
- },
- id: ''
- };
- },
- async onLoad(options) {
- this.id = options.id || ''
- await this.init()
-
- },
- async onPullDownRefresh() {
- await this.init()
- uni.stopPullDownRefresh()
- },
- methods: {
- async init() {
- this.$message.showLoading()
- const {
- data
- } = await this.$http.request('get', '/api/customer/flower/list/view' + this.id, {
-
- })
-
- this.$message.hideLoading()
- this.dto = {
- ...data
- }
-
- },
- }
- }
-</script>
-
-<style lang="scss" scoped>
- .shop-detail{
-
- }
-
-</style>
\ No newline at end of file
diff --git a/pages.json b/pages.json
index dcbeb32..e292dca 100644
--- a/pages.json
+++ b/pages.json
@@ -239,9 +239,16 @@
{
"path": "partner-info/partner-code",
"style": {
- "navigationBarTitleText": "二维码",
+ "navigationBarTitleText": "合伙人推广二维码",
"enablePullDownRefresh": false
}
+ },
+ {
+ "path": "partner-info/partner-code-v2",
+ "style": {
+ "navigationBarTitleText": "合伙人推广二维码",
+ "enablePullDownRefresh": false
+ }
},
{
diff --git a/pages/user/supplier-user.vue b/pages/user/supplier-user.vue
index 7d2002c..1f9cdfa 100644
--- a/pages/user/supplier-user.vue
+++ b/pages/user/supplier-user.vue
@@ -179,7 +179,14 @@
<view class="right-icon">
<uni-icons type="right"></uni-icons>
</view>
- </view>
+ </view>
+ <!-- <view class="user-util m-t-12 flex" v-if="selftype==='partner'"
+ @click="goto('/sub_pages/partner/partner-info/partner-code-v2',true)">
+ <view class="title">测试二维码</view>
+ <view class="right-icon">
+ <uni-icons type="right"></uni-icons>
+ </view>
+ </view> -->
<!-- #endif -->
<!-- #ifdef PUB_CUSTOMER -->
<view class="user-util m-t-12 flex"
diff --git a/sub_pages/partner/partner-info/partner-code-v2.vue b/sub_pages/partner/partner-info/partner-code-v2.vue
new file mode 100644
index 0000000..9746ae6
--- /dev/null
+++ b/sub_pages/partner/partner-info/partner-code-v2.vue
@@ -0,0 +1,688 @@
+<template>
+ <view class="product-detail-page">
+ <scroll-view enable-back-to-top scroll-y="true" class="product-detail-page__scroll">
+ <view class="product-detail-page__scroll__swiper" v-if="info.ImageUrlList&&info.ImageUrlList.length>0">
+ <swiper @change="onSwiperChange" :current="currentIndex" class="product-detail-page__scroll__swiper__target">
+ <swiper-item class="product-detail-page__scroll__swiper__target__item" v-for="(item,index) in info.ImageUrlList"
+ :key="index">
+ <image mode="aspectFit" :src="item" class="product-detail-page__scroll__swiper__target__item__img" lazy-load></image>
+ </swiper-item>
+ </swiper>
+ <view class="product-detail-page__scroll__swiper__page">{{currentIndex+1}}/{{info.ImageUrlList.length}}</view>
+ <button v-if="info.Id" @click="shareDetail" class="evan-share">
+ <image src="/static/images/common/share_icon.png" class="evan-share__icon"></image>
+ <view class="evan-share__text">分享</view>
+ </button>
+ </view>
+ <image v-else mode="aspectFill" class="product-detail-page__scroll__default-image" src="/static/images/common/default_image_horizontal.png"></image>
+ <view class="product-detail-page__scroll__info">
+ <view class="product-detail-page__scroll__info__title">{{info.Name||''}}</view>
+ <view class="product-detail-page__scroll__info__desc">{{info.Introduction||''}}</view>
+ <!-- <view class="product-detail-page__scroll__info__bulter">管家提成比例:</view> -->
+ <view class="product-detail-page__scroll__info__tags">
+ <view class="product-detail-page__scroll__info__tags__item" v-for="(item,index) in tags" :key="index">
+ <image class="product-detail-page__scroll__info__tags__item__icon" :src="item.icon"></image>
+ <view class="product-detail-page__scroll__info__tags__item__text">{{item.text}}</view>
+ </view>
+ <view v-if="!isGroup" class="product-detail-page__scroll__info__tags__count">已售{{info.SaleCount||0}}</view>
+ </view>
+ </view>
+ <view class="product-detail-page__scroll__team" v-if="isGroup">
+ <view class="product-detail-page__scroll__team__title">批购进度及商品价格区间</view>
+ <view class="product-detail-page__scroll__team__main">
+ <view v-if="!info.GroupRules||info.GroupRules.length===0" class="product-detail-page__scroll__team__main__progress"></view>
+ <view v-else class="product-detail-page__scroll__team__main__progress">
+ <view class="product-detail-page__scroll__team__main__progress__active" :style="{width:getPercent()+'rpx'}"></view>
+ </view>
+ <!-- <template v-if="info.GroupRules&&info.GroupRules.length>0">
+ <view v-for="(item,index) in info.GroupRules" :key="index" class="product-detail-page__scroll__team__main__price"
+ :style="{top:'80rpx',left:`${630 * 0.8 / lastInfo.GroupCountStart * item.GroupCountStart}rpx`}">
+ <view class="product-detail-page__scroll__team__main__price__line"></view>
+ <view class="product-detail-page__scroll__team__main__price__target">{{item.GroupCountStart}}件</view>
+ <view class="product-detail-page__scroll__team__main__price__target">{{item.Amount}}元</view>
+ </view>
+ </template> -->
+ <view v-if="!$utils.isTrueEmpty(info.GroupCount)" class="product-detail-page__scroll__team__main__price" :style="{bottom:'80rpx',left:getLeftValue()+'rpx'}">
+ <view class="product-detail-page__scroll__team__main__price__current">已批{{info.GroupCount}}件</view>
+ <view class="product-detail-page__scroll__team__main__price__line current"></view>
+ </view>
+ </view>
+ </view>
+ <view class="product-detail-page__scroll__team-intro" v-if="isGroup">
+ <view class="product-detail-page__scroll__team-intro__target">批购说明:参与购买的人数越多,商品价格越实惠</view>
+ <view class="product-detail-page__scroll__team-intro__target">根据批购最终参与购买的人数,来确定你需要支付的最终价格</view>
+ </view>
+ <view class="product-detail-page__scroll__desc">
+ <view class="product-detail-page__scroll__desc__title">商品详情</view>
+ <u-parse :content="info.ProductDesc" />
+ </view>
+ </scroll-view>
+ <view class="evan-buy-bottom">
+ <view class="evan-buy-bottom__item evan-buy-bottom__item--left">
+ <view class="evan-buy-bottom__item__price">
+ <view v-if="isGroup||info.PayType===1" class="evan-buy-bottom__item__price__unit">¥</view>
+ <!-- <view class="evan-buy-bottom__item__price__current">{{showPrice}}</view> -->
+ <view v-if="!isGroup&&info.PayType===1&&info.MarketPrice" class="evan-buy-bottom__item__price__old">¥{{info.MarketPrice}}</view>
+ </view>
+ <view v-if="info.GiveAwayHuidouCount" class="evan-buy-bottom__item__tip">赠送{{info.GiveAwayHuidouCount}}汇豆</view>
+ </view>
+ <view @tap="buy" class="evan-buy-bottom__item evan-buy-bottom__item--right">立即购买</view>
+ </view>
+ <hjg-spec @confirm="onSpecConfirm" :changeCount="!isNewUserProduct" :specs="info.SpecInfos" ref="spec"></hjg-spec>
+ <view @tap="hideBarcode" class="evan-poster__mask" :class="{hide:!showBarcode}" :style="{paddingTop:posterPadding}">
+ <canvas class="evan-poster__mask__canvas" :style="{width:canvasWidth+'px',height:canvasHeight+'px'}" canvas-id="barcode"></canvas>
+ <view @tap.stop.prevent="stopPop" class="evan-poster__mask__bottom">
+ <button open-type="share" class="evan-poster__mask__bottom__item">
+ <view class="evan-poster__mask__bottom__item__text">分享好友</view>
+ </button>
+ <button @tap="saveToAlbum" class="evan-poster__mask__bottom__item">
+ <view class="evan-poster__mask__bottom__item__text">保存海报</view>
+ </button>
+ </view>
+ </view>
+ </view>
+</template>
+
+<script>
+
+ import {
+ mapGetters,
+ mapState
+ } from 'vuex'
+ let ENV = 'prod'
+ export default {
+ components: {
+
+ },
+ computed: {
+
+
+ },
+ data() {
+ return {
+ memberId: '',
+ headUrl: '',
+ nickName: '',
+ id: null,
+ info: {},
+ currentIndex: 0,
+ tags: [{
+ icon: '/static/images/home/qqzx.png',
+ text: '全球精品'
+ },
+ {
+ icon: '/static/images/home/jyps.png',
+ text: '正品保证'
+ },
+ {
+ icon: '/static/images/home/shwy.png',
+ text: '商品包邮'
+ }
+ ],
+ isGroup: false,
+ groupId: null,
+ canvasWidth: 242,
+ canvasHeight: 430,
+ showBarcode: false,
+ ratio: 430 / 1920,
+ posterPadding: 0,
+ filePath: '',
+ isNewUserProduct: false,
+ canBuy: false
+ }
+ },
+ methods: {
+ async getDetail() {
+ // const {
+ // code,
+ // data
+ // } = await productService.getDetail(this.id)
+ // if (code === 0) {
+ // this.info = data
+ // this.isNewUserProduct = data.IsNewUserTopic === 1
+ // }
+ },
+ async getGroupDetail() {
+ const {
+ code,
+ data
+ } = await assembleService.getAssembleDetail(this.id, this.groupId)
+ if (code === 0) {
+ this.info = data
+ }
+ },
+ onSwiperChange(e) {
+ this.currentIndex = e.detail.current
+ },
+ async buy() {
+
+ },
+ onSpecConfirm(e) {
+ let specList = []
+ if (Array.isArray(e.specs)) {
+ specList = e.specs.map((item) => {
+ return {
+ SpecName: item.SpecName,
+ SpecValue: item.SpecValue
+ }
+ })
+ }
+ let orderInfo = {
+ ProductId: this.info.Id,
+ ProductSpecList: specList,
+ ProductCount: e.count,
+ ProductSaleType: this.isGroup ? 2 : 1,
+ ProductPayType: this.isGroup ? 1 : this.info.PayType
+ }
+ if (this.isGroup) {
+ orderInfo.GroupId = this.groupId
+ orderInfo.BookAmount = this.info.BookAmount
+ } else {
+ if (orderInfo.ProductPayType === 1) {
+ orderInfo.SaleAmount = this.info.SalePrice
+ } else {
+ orderInfo.SaleAmount = this.info.HuidouCount
+ }
+ }
+ uni.navigateTo({
+ url: `./order?orderInfo=${JSON.stringify(orderInfo)}`
+ })
+ },
+ getPercent() {
+ if (!this.info.GroupRules || this.info.GroupRules.length === 0) {
+ return 0
+ }
+ if (this.info.GroupCount > this.info.GroupRules[this.info.GroupRules.length - 1].GroupCountStart) {
+ return 0.85 * 630
+ } else {
+ return this.info.GroupCount / this.info.GroupRules[this.info.GroupRules.length - 1].GroupCountStart *
+ 0.8 * 630
+ }
+ },
+ getLeftValue() {
+ if (!this.info.GroupRules || this.info.GroupRules.length === 0) {
+ if (this.info.GroupCount === 0) {
+ return 0
+ } else {
+ return 630 * 0.8
+ }
+ } else {
+ if (this.info.GroupCount > this.info.GroupRules[this.info.GroupRules.length - 1].GroupCountStart) {
+ return 630 * 0.85
+ } else {
+ return 630 * 0.8 / Math.max(this.info.GroupRules[this.info.GroupRules.length - 1].GroupCountStart /
+ this.info.GroupCount, 1)
+ }
+ }
+ },
+ formatCanvasSize(size) {
+ return Math.floor(this.ratio * size)
+ },
+ async shareDetail() {
+ if (this.memberId) {
+ // #ifdef MP-WEIXIN
+ let params = `id=${this.info.Id}`
+ if (this.isGroup) {
+ params += `&groupId=${this.groupId}`
+ }
+ if (this.memberId) {
+ params += `&inviteId=${this.memberId}`
+ }
+ const {
+ code: sceneCode,
+ data: sceneData
+ } = await commonService.saveScene(encodeURIComponent(params))
+ if (sceneCode === 0) {
+ const {
+ code,
+ data
+ } = await commonService.getUnlimitedBarcode('pages/home/product/detail', `posterId=${sceneData}`)
+ if (code === 0) {
+ const fsm = wx.getFileSystemManager()
+ this.filePath = `${wx.env.USER_DATA_PATH}/barcode_tmp_${(new Date).getTime()}.png`
+ fsm.writeFile({
+ filePath: this.filePath,
+ data: data,
+ encoding: 'binary',
+ success: async () => {
+ const context = uni.createCanvasContext('barcode')
+ const headSize = this.formatCanvasSize(105)
+ const productSize = this.formatCanvasSize(540)
+ const canvasWidth = this.canvasWidth
+ const canvasHeight = this.canvasHeight
+ const headPath = await this.getImageInfo(this.headUrl)
+ const productPath = await this.getImageInfo(this.info.ImageUrlList[0])
+ // 背景
+ context.drawImage('/pages/home/static/images/sharebg.jpg', 0, 0, canvasWidth,
+ canvasHeight)
+ // 头像
+ context.drawImage(headPath, this.formatCanvasSize(80), this.formatCanvasSize(70), headSize, headSize)
+ // 昵称
+ context.font = `bold ${this.formatCanvasSize(40)}px system-ui`
+ context.setFillStyle('#000')
+ this.fillTextByLength(context, this.nickName, 20, this.formatCanvasSize(198),
+ this.formatCanvasSize(110))
+ // 产品图
+ context.drawImage(productPath, this.formatCanvasSize(260), this.formatCanvasSize(440), productSize,
+ productSize)
+ // 价格
+ const priceWidth = this.formatCanvasSize(150)
+ const priceTop = this.formatCanvasSize(1240)
+ const priceLeft = this.formatCanvasSize(141)
+ // 当前价格
+ if (this.showPrice) {
+ const price = (this.isGroup || this.info.PayType === 1) ? `¥${this.showPrice}` : this.showPrice
+ context.font = `bold ${this.formatCanvasSize(84)}px system-ui`
+ context.setFillStyle('#d92c21')
+ context.fillText(price, priceLeft, priceTop, priceWidth)
+ }
+ // 市场价格
+ if (!this.isGroup && this.info.PayType === 1 && this.info.MarketPrice) {
+ context.font = `normal ${this.formatCanvasSize(54)}px system-ui`
+ context.setFillStyle('#61605e')
+ context.fillText(`¥${this.info.MarketPrice}`, priceLeft + priceWidth + 5, priceTop, priceWidth)
+ context.moveTo(priceLeft + priceWidth + 5, priceTop - this.formatCanvasSize(20))
+ context.lineTo(priceLeft + priceWidth + 5 + context.measureText(`¥${this.info.MarketPrice}`).width + 2,
+ priceTop - this.formatCanvasSize(20))
+ context.setStrokeStyle('#61605e')
+ context.stroke()
+ }
+ // 赠送汇豆
+ if (this.info.GiveAwayHuidouCount) {
+ context.font = `normal ${this.formatCanvasSize(36)}px system-ui`
+ context.setFillStyle('#61605e')
+ context.fillText(`赠送${this.info.GiveAwayHuidouCount}汇豆`, priceLeft, priceTop + this.formatCanvasSize(36) +
+ 5,
+ priceWidth * 2)
+ }
+ // 商品名称
+ let nameLeft = priceLeft + 2 * priceWidth + 10
+ let nameTop = this.formatCanvasSize(1230)
+ context.font = `bold ${this.formatCanvasSize(50)}px system-ui`
+ context.setFillStyle('#000')
+ let nameWidth = 0
+ // 换行次数
+ let breakLineCount = 0
+ for (let i = 0; i < this.info.Name.length; i++) {
+ const str = this.info.Name[i]
+ nameWidth += context.measureText(str).width
+ if (nameWidth > 80 && breakLineCount > 0) {
+ context.fillText('...', nameLeft, nameTop)
+ break
+ }
+ if (nameWidth > 90) {
+ nameTop += this.formatCanvasSize(74)
+ nameLeft = priceLeft + 2 * priceWidth + 10
+ nameWidth = context.measureText(str).width
+ breakLineCount++
+ }
+ context.fillText(str, nameLeft, nameTop)
+ nameLeft += context.measureText(str).width + 2
+ }
+ // 二维码
+ const barcodeSize = this.formatCanvasSize(250)
+ const barcodeLeft = this.formatCanvasSize(740)
+ const barcodeTop = this.formatCanvasSize(1500)
+ context.drawImage(this.filePath, barcodeLeft, barcodeTop,
+ barcodeSize,
+ barcodeSize)
+ this.showBarcode = true
+ this.$nextTick(() => {
+ context.draw(false, () => {})
+ })
+ },
+ fail: (err) => {
+ this.$message.showToast('写入文件失败')
+ }
+ })
+ }
+ }
+ // #endif
+ } else {
+ this.$message.confirm('登录后才能分享,是否立即登录?').then(() => {
+ uni.navigateTo({
+ url: '/pages/account/login'
+ })
+ }).catch(() => {})
+ }
+ },
+ fillTextSingleLine(context, text, maxLength, startLeft, startTop) {
+ let nameWidth = 0
+ for (let i = 0; i < text.length; i++) {
+ const str = text[i]
+ nameWidth += context.measureText(str).width
+ if (nameWidth > maxLength - 10) {
+ context.fillText('...', startLeft, startTop)
+ break
+ } else {
+ context.fillText(str, startLeft, startTop)
+ startLeft += context.measureText(str).width + 2
+ }
+ }
+ },
+ fillTextByLength(context, text, len, startLeft, startTop) {
+ if (text.length > len - 3) {
+ text = text.substr(0, len - 3) + '...'
+ }
+ context.fillText(text, startLeft, startTop)
+ },
+ getImageInfo(url) {
+ if (ENV === 'prod') {
+ url = url.replace(/http:\/\//g, 'https://')
+ }
+ return new Promise((resolve, reject) => {
+ uni.getImageInfo({
+ src: url,
+ success: (res) => {
+ resolve(res.path)
+ },
+ fail: (e) => {
+ reject(e)
+ }
+ })
+ })
+ },
+ saveToAlbum() {
+ uni.canvasToTempFilePath({
+ x: 0,
+ y: 0,
+ width: this.canvasWidth,
+ height: this.canvasHeight,
+ canvasId: 'barcode',
+ success: (res) => {
+ uni.saveImageToPhotosAlbum({
+ filePath: res.tempFilePath,
+ success: () => {
+ this.$message.showToast('已为您保存至相册')
+ }
+ })
+ }
+ })
+ },
+ hideBarcode() {
+ this.showBarcode = false
+ if (this.filePath) {
+ const fsm = wx.getFileSystemManager()
+ fsm.unlink({
+ filePath: this.filePath,
+ success: () => {
+ this.filePath = ''
+ }
+ })
+ }
+ },
+ stopPop() {
+ // do nothing
+ },
+ async getScene(id) {
+ const {
+ code,
+ data
+ } = await commonService.getScene(id)
+ if (code === 0) {
+ const productId = this.$utils.getBarcodeQueryString(data, 'id')
+ const inviteId = this.$utils.getBarcodeQueryString(data, 'inviteId')
+ const groupId = this.$utils.getBarcodeQueryString(data, 'groupId')
+ if (productId) {
+ this.id = productId
+ if (inviteId) {
+ this.$store.commit('account/SET_INVITEID', inviteId)
+ }
+ if (groupId) {
+ this.isGroup = true
+ this.groupId = groupId
+ this.getGroupDetail()
+ } else {
+ this.getDetail()
+ }
+ }
+ }
+ },
+ setPosterPadding() {
+ const windowHeight = uni.getSystemInfoSync().windowHeight
+ this.posterPadding = (windowHeight - 126 - this.canvasHeight) / 2 + 'px'
+ }
+ },
+ async onLoad(options) {
+ this.setPosterPadding()
+ this.id = options.id || ''
+ },
+ onUnload() {
+ },
+ onShareAppMessage() {
+ let params = `id=${this.info.Id}`
+ if (this.isGroup) {
+ params += `&groupId=${this.groupId}`
+ }
+ if (this.memberId) {
+ params += `&inviteId=${this.memberId}`
+ }
+ let path = `/pages/home/product/detail?${params}`
+ return {
+ title: this.info.Name,
+ path: path
+ }
+ }
+ }
+</script>
+
+<style lang="scss">
+ .product-detail-page {
+ height: 100%;
+ display: flex;
+ flex-direction: column;
+
+ &__scroll {
+ flex: 1;
+ overflow: auto;
+
+ &__swiper {
+ position: relative;
+ width: 100%;
+ height: 446rpx;
+ background-color: #fff;
+
+ &__target {
+ height: 100%;
+
+ &__item {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+
+ &__img {
+ width: 400rpx;
+ height: 400rpx;
+ }
+ }
+ }
+
+ &__page {
+ position: absolute;
+ bottom: 14rpx;
+ right: 40rpx;
+ height: 40rpx;
+ border-radius: 20rpx;
+ background-color: rgba(0, 0, 0, 0.6);
+ padding: 0 14rpx;
+ font-size: 28rpx;
+ color: #fff;
+ }
+ }
+
+ &__default-image {
+ width: 100%;
+ height: 446rpx;
+ }
+
+ &__info {
+ background-color: #fff;
+ padding: 18rpx 30rpx 28rpx 30rpx;
+
+ &__title {
+ font-size: 32rpx;
+ color: #000;
+ font-weight: 500;
+ line-height: 44rpx;
+ margin-bottom: 14rpx;
+ }
+
+ &__desc {
+ font-size: 28rpx;
+ color: #666;
+ line-height: 40rpx;
+ margin-bottom: 10rpx;
+ }
+
+ &__bulter {
+ font-size: 28rpx;
+ color: #000;
+ line-height: 40rpx;
+ }
+
+ &__tags {
+ display: flex;
+ align-items: center;
+ margin-top: 10rpx;
+
+ &__item {
+ display: flex;
+ align-items: center;
+ margin-right: 44rpx;
+
+ &__icon {
+ width: 28rpx;
+ height: 28rpx;
+ margin-right: 4rpx;
+ }
+
+ &__text {
+ font-size: 24rpx;
+ color: #000;
+ }
+ }
+
+ &__count {
+ flex: 1;
+ text-align: right;
+ font-size: 24rpx;
+ color: #666;
+ }
+ }
+ }
+
+ &__desc {
+ padding: 30rpx;
+ background-color: #fff;
+ margin-top: 24rpx;
+
+ &__title {
+ font-size: 36rpx;
+ color: #000;
+ font-weight: 500;
+ line-height: 50rpx;
+ margin-bottom: 26rpx;
+ }
+ }
+
+ &__team {
+ background-color: #fff;
+ padding-bottom: 48rpx;
+
+ &__title {
+ font-size: 28rpx;
+ color: #000;
+ padding: 0 30rpx;
+ font-weight: bold;
+ }
+
+ &__main {
+ width: 750rpx;
+ padding: 60rpx 0;
+ position: relative;
+ display: flex;
+ justify-content: center;
+
+ &__progress {
+ width: 630rpx;
+ height: 20rpx;
+ background-color: #d8d8d8;
+ border-radius: 16rpx;
+
+ &__active {
+ height: 100%;
+ background-color: #d51d1d;
+ border-radius: 16rpx;
+ }
+ }
+
+ &__price {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ position: absolute;
+ min-width: 120rpx;
+
+ &__line {
+ width: 2rpx;
+ height: 24rpx;
+ background-color: #979797;
+
+ &.current {
+ background-color: #d51d1d;
+ }
+ }
+
+ &__target {
+ font-size: 24rpx;
+ color: #000;
+ font-weight: bold;
+ }
+
+ &__current {
+ font-size: 20rpx;
+ color: #d51d1d;
+ }
+ }
+ }
+ }
+
+ &__team-intro {
+ padding: 8rpx 30rpx;
+ background-color: #EDE0CC;
+ margin-top: 24rpx;
+
+ &__target {
+ font-size: 24rpx;
+ color: #9C753B;
+ font-weight: bold;
+
+ &:not(:first-child) {
+ margin-top: 8rpx;
+ }
+ }
+ }
+
+ &__team-info {
+ padding: 16rpx 30rpx 0 16rpx;
+
+ &__line {
+ display: flex;
+ align-items: flex-start;
+ margin-bottom: 8rpx;
+
+ &__label {
+ font-size: 28rpx;
+ color: #000;
+ }
+
+ &__value {
+ font-size: 28rpx;
+ color: #000;
+ flex: 1;
+ }
+ }
+ }
+ }
+ }
+</style>
diff --git a/sub_pages/partner/partner-info/partner-code.vue b/sub_pages/partner/partner-info/partner-code.vue
index 223308c..4041000 100644
--- a/sub_pages/partner/partner-info/partner-code.vue
+++ b/sub_pages/partner/partner-info/partner-code.vue
@@ -3,7 +3,7 @@
<!-- -->
<view class="contact-container">
<view class="container" @click="saveCode">
- <!-- <image src="../../../static/uni.png" mode="aspectFit" class="code"></image> -->
+
<canvas type="2d" id="myQrcode" class="code"></canvas>
<view class="info">
<view class="desc">
@@ -26,6 +26,20 @@
canvas: undefined,
}
},
+ // onShareAppMessage() {
+ // let params = `id=${this.info.Id}`
+ // if (this.isGroup) {
+ // params += `&groupId=${this.groupId}`
+ // }
+ // if (this.memberId) {
+ // params += `&inviteId=${this.memberId}`
+ // }
+ // let path = `/pages/home/product/detail?${params}`
+ // return {
+ // title: this.info.Name,
+ // path: path
+ // }
+ // }
onLoad(options) {
if (!this.currentInfo.partnerDTO) {
this.$message.showToast('请先完善合伙人信息')
--
Gitblit v1.9.3