🎈 perf(下单返现): BD标识下隐藏活动栏
This commit is contained in:
parent
89fc49b297
commit
eea90ce2ac
@ -54,6 +54,7 @@ export const HOME_ITEM1 = getCDNSource('/mall/home_item1.png')
|
||||
export const HOME_ITEM2 = getCDNSource('/mall/home_item2.png')
|
||||
export const HOME_ITEM3 = getCDNSource('/mall/home_item3.png')
|
||||
export const HOME_ITEM4 = getCDNSource('/mall/home_item4.png')
|
||||
export const BUSINESS_MANAGER = getCDNSource('/color_card/businessManager.png')
|
||||
|
||||
// 场景值
|
||||
export const SCENE = {
|
||||
|
||||
3
src/components/InputX/index.module.scss
Normal file
3
src/components/InputX/index.module.scss
Normal file
@ -0,0 +1,3 @@
|
||||
.input_bar {
|
||||
width: 100%;
|
||||
}
|
||||
@ -1,6 +1,8 @@
|
||||
import { CustomWrapper, Input, View } from '@tarojs/components'
|
||||
import classNames from 'classnames'
|
||||
import type { FC } from 'react'
|
||||
import React from 'react'
|
||||
import styes from './index.module.scss'
|
||||
// 解决 input 组件输入过快会出现闪烁的问题
|
||||
// https://github.com/NervJS/taro/issues/9664
|
||||
interface PropsType {
|
||||
@ -13,7 +15,7 @@ interface PropsType {
|
||||
const InputX: FC<PropsType> = (props) => {
|
||||
const { customClassName, customStyle, customInputStyle, customInputClassName, ...inputProps } = props
|
||||
return (
|
||||
<View className={customClassName} style={customStyle}>
|
||||
<View className={classNames(styes.input_bar, customClassName)} style={customStyle}>
|
||||
<CustomWrapper>
|
||||
<Input className={customInputClassName} style={customInputStyle} {...inputProps} ></Input>
|
||||
</CustomWrapper>
|
||||
|
||||
@ -2,6 +2,7 @@ import { CustomWrapper, Input, View } from '@tarojs/components'
|
||||
import { memo, useEffect, useMemo, useRef, useState } from 'react'
|
||||
import Big from 'big.js'
|
||||
import IconFont from '../iconfont/iconfont'
|
||||
import InputX from '../InputX'
|
||||
import styles from './index.module.scss'
|
||||
|
||||
interface params {
|
||||
|
||||
@ -126,7 +126,7 @@ const MoveBtn = ({ orderObj = {}, children = null, onShopClick, showList = [], m
|
||||
x="630rpx"
|
||||
y={`${screenHeight.customer}rpx`}
|
||||
>
|
||||
<Image mode="aspectFit" src={formatImgUrl('/color_card/businessManager.png')} />
|
||||
<Image mode="aspectFit" src={formatImgUrl('/mall/float_button_customer_service.png')} />
|
||||
</MovableView>}
|
||||
{showCode && <CodeSelect orderObj={orderObj} y={screenHeight.code as number} />}
|
||||
<Customer messageTitle={messageTitle} messagePath={messageTitle} show={customer_service_show} showCard={showCart} onClose={customerClose} />
|
||||
|
||||
@ -13,7 +13,8 @@
|
||||
display: flex;
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
input {
|
||||
.input_bar {
|
||||
overflow: hidden;
|
||||
font-size: 27px;
|
||||
background: #f6f7f9;
|
||||
width: 100%;
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
import { Input, View } from '@tarojs/components'
|
||||
import classnames from 'classnames'
|
||||
import { forwardRef, memo, useEffect, useImperativeHandle, useRef, useState } from 'react'
|
||||
import InputX from '../InputX'
|
||||
import styles from './index.module.scss'
|
||||
import CloseBtn from '@/components/closeBtn'
|
||||
import { debounce } from '@/common/util'
|
||||
@ -80,18 +81,18 @@ const Search = (
|
||||
)}
|
||||
></View>
|
||||
)}
|
||||
<Input
|
||||
style={{ borderRadius }}
|
||||
<InputX
|
||||
customInputStyle={{ borderRadius }}
|
||||
alwaysEmbed
|
||||
cursorSpacing={150}
|
||||
placeholderStyle="color:#ABABAB; font-size:26rpx"
|
||||
onConfirm={onSearch}
|
||||
className={classnames(placeIcon == 'out' && styles.input_out)}
|
||||
customInputClassName={classnames(styles.input_bar, placeIcon == 'out' && styles.input_out)}
|
||||
disabled={disabled}
|
||||
value={inputCon}
|
||||
placeholder={placeholder}
|
||||
onInput={e => onInputEven(e)}
|
||||
></Input>
|
||||
/>
|
||||
{!!inputCon && (
|
||||
<View className={styles.search_closeBtn}>
|
||||
<CloseBtn onClose={() => clearInput()} styleObj={{ width: '20rpx', height: '20rpx', border: '0' }} />
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
width: 100%;
|
||||
position: relative;
|
||||
.swiper_item {
|
||||
height: 100%;
|
||||
height: 450px;
|
||||
width: 100%;
|
||||
}
|
||||
.image_item {
|
||||
|
||||
@ -1,172 +1,189 @@
|
||||
page {
|
||||
height: 100vh;
|
||||
display: flex;
|
||||
flex-flow: column nowrap;
|
||||
overflow: hidden;
|
||||
}
|
||||
.main {
|
||||
min-height: 100%;
|
||||
background-color: $color_bg_one;
|
||||
padding: 20px 20px 100px 20px;
|
||||
.product_header {
|
||||
padding: 20px 20px 0 20px;
|
||||
display: flex;
|
||||
height: 100%;
|
||||
flex-flow: column nowrap;
|
||||
overflow: hidden;
|
||||
.content {
|
||||
flex: 1 1 auto;
|
||||
overflow: scroll;
|
||||
display: flex;
|
||||
height: 163.57px;
|
||||
background-color: #fff;
|
||||
box-sizing: border-box;
|
||||
border-radius: 20px;
|
||||
.title {
|
||||
flex: 1;
|
||||
.name {
|
||||
font-size: 32px;
|
||||
font-weight: 700;
|
||||
color: $color_font_one;
|
||||
@include common_ellipsis(1);
|
||||
}
|
||||
.des {
|
||||
font-size: $font_size_medium;
|
||||
color: $color_font_three;
|
||||
@include common_ellipsis(1);
|
||||
margin-top: 20px;
|
||||
}
|
||||
}
|
||||
.share,
|
||||
.collect {
|
||||
width: 76px;
|
||||
flex-flow: column nowrap;
|
||||
.product_header {
|
||||
margin: 20px;
|
||||
margin-bottom: 0;
|
||||
padding: 20px 20px 0 20px;
|
||||
display: flex;
|
||||
flex-flow: column nowrap;
|
||||
align-items: center;
|
||||
font-size: $font_size_min;
|
||||
text-align: center;
|
||||
color: $color_font_three;
|
||||
position: relative;
|
||||
margin-left: 10px;
|
||||
.text {
|
||||
margin-top: 5px;
|
||||
font-size: $font_size_medium;
|
||||
}
|
||||
}
|
||||
.shareBtn {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
opacity: 0;
|
||||
}
|
||||
.miconfont {
|
||||
font-size: 45px;
|
||||
color: #333333;
|
||||
}
|
||||
.collected {
|
||||
color: #ffc300;
|
||||
}
|
||||
}
|
||||
.des_data {
|
||||
background-color: #fff;
|
||||
padding: 24px;
|
||||
margin-top: 16px;
|
||||
border-radius: 16px;
|
||||
.flexBox {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 20px;
|
||||
height: 163.57px;
|
||||
background-color: #fff;
|
||||
box-sizing: border-box;
|
||||
border-radius: 20px;
|
||||
.title {
|
||||
font-size: $font_size;
|
||||
font-weight: 500;
|
||||
color: $color_font_one;
|
||||
}
|
||||
.flexRight {
|
||||
font-size: 26px;
|
||||
font-weight: 500;
|
||||
color: #337fff;
|
||||
}
|
||||
}
|
||||
|
||||
.con {
|
||||
display: grid;
|
||||
grid-template-columns: 50% 50%;
|
||||
grid-template-rows: auto auto auto;
|
||||
grid-template-areas: 'a b' 'c d' 'e f';
|
||||
font-size: $font_size_medium;
|
||||
color: $color_font_three;
|
||||
background-color: rgba(247, 247, 247, 0.6);
|
||||
border-radius: 8px;
|
||||
padding: 24px;
|
||||
padding-bottom: 0;
|
||||
color: rgba(0, 0, 0, 0.4);
|
||||
.des_text {
|
||||
display: flex;
|
||||
margin-bottom: 24px;
|
||||
font-size: 26px;
|
||||
&:nth-child(5) {
|
||||
grid-area: e;
|
||||
}
|
||||
text {
|
||||
flex: 1;
|
||||
color: #333333;
|
||||
flex: 1;
|
||||
.name {
|
||||
font-size: 32px;
|
||||
font-weight: 700;
|
||||
color: $color_font_one;
|
||||
@include common_ellipsis(1);
|
||||
}
|
||||
.des {
|
||||
font-size: $font_size_medium;
|
||||
color: $color_font_three;
|
||||
@include common_ellipsis(1);
|
||||
margin-top: 20px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.product_color {
|
||||
background-color: #fff;
|
||||
margin-top: 16px;
|
||||
padding: 30px 20px 0;
|
||||
color: $color_font_one;
|
||||
font-size: $font_size_medium;
|
||||
border-radius: 20px;
|
||||
.title {
|
||||
color: rgba(0, 0, 0, 0.8);
|
||||
font-weight: 500;
|
||||
font-size: 28px;
|
||||
}
|
||||
.list {
|
||||
margin-top: 30px;
|
||||
display: grid;
|
||||
grid-template-columns: 25% 25% 25% 25%;
|
||||
justify-content: space-between;
|
||||
.item {
|
||||
width: 100%;
|
||||
margin-bottom: 28px;
|
||||
.share,
|
||||
.collect {
|
||||
width: 76px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex-flow: column nowrap;
|
||||
align-items: center;
|
||||
padding: 0 10px;
|
||||
box-sizing: border-box;
|
||||
.item_color {
|
||||
width: 136px;
|
||||
height: 136px;
|
||||
border-radius: 50%;
|
||||
font-size: $font_size_min;
|
||||
text-align: center;
|
||||
color: $color_font_three;
|
||||
position: relative;
|
||||
margin-left: 10px;
|
||||
.text {
|
||||
margin-top: 5px;
|
||||
font-size: $font_size_medium;
|
||||
}
|
||||
.item_name {
|
||||
text-align: center;
|
||||
margin-top: 10px;
|
||||
font-size: 24px;
|
||||
color: #666666;
|
||||
}
|
||||
.shareBtn {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
opacity: 0;
|
||||
}
|
||||
.miconfont {
|
||||
font-size: 45px;
|
||||
color: #333333;
|
||||
}
|
||||
.collected {
|
||||
color: #ffc300;
|
||||
}
|
||||
}
|
||||
.des_data {
|
||||
margin: 20px;
|
||||
margin-bottom: 0;
|
||||
background-color: #fff;
|
||||
padding: 24px;
|
||||
border-radius: 16px;
|
||||
.flexBox {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 20px;
|
||||
.title {
|
||||
font-size: $font_size;
|
||||
font-weight: 500;
|
||||
color: $color_font_one;
|
||||
}
|
||||
.flexRight {
|
||||
font-size: 26px;
|
||||
font-weight: 500;
|
||||
color: #337fff;
|
||||
}
|
||||
}
|
||||
|
||||
@include common_ellipsis;
|
||||
}
|
||||
.bulk_price {
|
||||
color: #999999;
|
||||
font-size: 24px;
|
||||
margin-top: 8px;
|
||||
text-align: center;
|
||||
.con {
|
||||
display: grid;
|
||||
grid-template-columns: 50% 50%;
|
||||
grid-template-rows: auto auto auto;
|
||||
grid-template-areas: 'a b' 'c d' 'e f';
|
||||
font-size: $font_size_medium;
|
||||
color: $color_font_three;
|
||||
background-color: rgba(247, 247, 247, 0.6);
|
||||
border-radius: 8px;
|
||||
padding: 24px;
|
||||
padding-bottom: 0;
|
||||
color: rgba(0, 0, 0, 0.4);
|
||||
.des_text {
|
||||
display: flex;
|
||||
margin-bottom: 24px;
|
||||
font-size: 26px;
|
||||
&:nth-child(5) {
|
||||
grid-area: e;
|
||||
}
|
||||
text {
|
||||
flex: 1;
|
||||
color: #333333;
|
||||
@include common_ellipsis(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.product_detail {
|
||||
// padding: 20px;
|
||||
background-color: #fff;
|
||||
margin-top: 16px;
|
||||
|
||||
.product_color {
|
||||
margin: 20px;
|
||||
background-color: #fff;
|
||||
padding: 30px 20px 0;
|
||||
color: $color_font_one;
|
||||
font-size: $font_size_medium;
|
||||
border-radius: 20px;
|
||||
.title {
|
||||
color: rgba(0, 0, 0, 0.8);
|
||||
font-weight: 500;
|
||||
font-size: 28px;
|
||||
}
|
||||
.list {
|
||||
margin-top: 30px;
|
||||
display: grid;
|
||||
grid-template-columns: 25% 25% 25% 25%;
|
||||
justify-content: space-between;
|
||||
.item {
|
||||
width: 100%;
|
||||
margin-bottom: 28px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 0 10px;
|
||||
box-sizing: border-box;
|
||||
.item_color {
|
||||
width: 136px;
|
||||
height: 136px;
|
||||
border-radius: 50%;
|
||||
}
|
||||
.item_name {
|
||||
text-align: center;
|
||||
margin-top: 10px;
|
||||
font-size: 24px;
|
||||
color: #666666;
|
||||
|
||||
@include common_ellipsis;
|
||||
}
|
||||
.bulk_price {
|
||||
color: #999999;
|
||||
font-size: 24px;
|
||||
margin-top: 8px;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.product_detail {
|
||||
// padding: 20px;
|
||||
background-color: #fff;
|
||||
margin: 20px;
|
||||
}
|
||||
}
|
||||
.product_buy {
|
||||
position: relative;
|
||||
z-index: 9999;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
height: 95px;
|
||||
padding: 20px;
|
||||
box-shadow: 6px 0px 12px 0px rgba(0, 0, 0, 0.16);
|
||||
width: 100vw;
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
background-color: #fff;
|
||||
padding-bottom: constant(safe-area-inset-bottom);
|
||||
padding-bottom: env(safe-area-inset-bottom);
|
||||
|
||||
@ -277,86 +277,92 @@ const Details = (props: Params) => {
|
||||
return (
|
||||
<MoveBtn showList={['order']}>
|
||||
<View className={styles.main}>
|
||||
<DesSwiper list={productInfo.texture_url ? productInfo.texture_url.toString().split(',') : []} />
|
||||
<View className={styles.product_header}>
|
||||
<View className={styles.title}>
|
||||
{productInfo.code && <View className={styles.name}>{productName}</View>}
|
||||
<View className={styles.des}>{productInfo.describe}</View>
|
||||
<View className={styles.content}>
|
||||
<DesSwiper list={productInfo.texture_url ? productInfo.texture_url.toString().split(',') : []} />
|
||||
<View className={styles.product_header}>
|
||||
<View className={styles.title}>
|
||||
{productInfo.code && <View className={styles.name}>{productName}</View>}
|
||||
<View className={styles.des}>{productInfo.describe}</View>
|
||||
</View>
|
||||
<View className={styles.collect} onClick={openCollection}>
|
||||
{
|
||||
collectStatus ? <IconFont name="icon-shoucangchenggong" size={45} color="#ffc300"></IconFont> : <IconFont name="icon-dianjishoucang" size={45}></IconFont>
|
||||
}
|
||||
<View className={styles.text}>收藏</View>
|
||||
</View>
|
||||
<View className={styles.share}>
|
||||
<IconFont name="icon-fenxiangshangpin" size={45}></IconFont>
|
||||
<View className={styles.text}>分享</View>
|
||||
<Button open-type="share" className={styles.shareBtn}></Button>
|
||||
</View>
|
||||
</View>
|
||||
<View className={styles.collect} onClick={openCollection}>
|
||||
{
|
||||
collectStatus ? <IconFont name="icon-shoucangchenggong" size={45} color="#ffc300"></IconFont> : <IconFont name="icon-dianjishoucang" size={45}></IconFont>
|
||||
}
|
||||
<View className={styles.text}>收藏</View>
|
||||
</View>
|
||||
<View className={styles.share}>
|
||||
<IconFont name="icon-fenxiangshangpin" size={45}></IconFont>
|
||||
<View className={styles.text}>分享</View>
|
||||
<Button open-type="share" className={styles.shareBtn}></Button>
|
||||
</View>
|
||||
</View>
|
||||
<View className={styles.des_data}>
|
||||
<View className={styles.flexBox}>
|
||||
<View className={styles.title}>商品参数</View>
|
||||
{
|
||||
productInfo.is_instruct && <View className={styles.flexRight} onClick={() => setshowPopup(true)}>{'特色百科 >'}</View>
|
||||
}
|
||||
</View>
|
||||
<View className={styles.con}>
|
||||
{/* <View className={styles.des_text}>
|
||||
<View className={styles.des_data}>
|
||||
<View className={styles.flexBox}>
|
||||
<View className={styles.title}>商品参数</View>
|
||||
{
|
||||
productInfo.is_instruct && <View className={styles.flexRight} onClick={() => setshowPopup(true)}>{'特色百科 >'}</View>
|
||||
}
|
||||
</View>
|
||||
<View className={styles.con}>
|
||||
{/* <View className={styles.des_text}>
|
||||
编号:<Text>{productInfo.code}</Text>
|
||||
</View> */}
|
||||
<View className={styles.des_text}>
|
||||
<View className={styles.des_text}>
|
||||
幅宽:<Text>{productInfo.width}</Text>
|
||||
</View>
|
||||
<View className={styles.des_text}>
|
||||
</View>
|
||||
<View className={styles.des_text}>
|
||||
工艺:<Text>{productInfo.craft}</Text>
|
||||
</View>
|
||||
<View className={styles.des_text}>
|
||||
</View>
|
||||
<View className={styles.des_text}>
|
||||
空差:<Text>{productInfo.weight_error_discount / 1000}KG</Text>
|
||||
</View>
|
||||
<View className={styles.des_text}>
|
||||
</View>
|
||||
<View className={styles.des_text}>
|
||||
克重:<Text>{productInfo.weight_density}</Text>
|
||||
</View>
|
||||
<View className={styles.des_text}>
|
||||
</View>
|
||||
<View className={styles.des_text}>
|
||||
成分:<Text>{productInfo.component}</Text>
|
||||
</View>
|
||||
<View className={styles.des_text}>
|
||||
</View>
|
||||
<View className={styles.des_text}>
|
||||
纸筒:<Text>{productInfo.tube / 1000}KG</Text>
|
||||
</View>
|
||||
<View className={styles.des_text}>
|
||||
</View>
|
||||
<View className={styles.des_text}>
|
||||
出米数:<Text>{productInfo.length_to_weight_rate / 100}</Text>
|
||||
</View>
|
||||
<View className={styles.des_text}>
|
||||
</View>
|
||||
<View className={styles.des_text}>
|
||||
开单减空差:<Text>{productInfo.weight_error / 1000}KG</Text>
|
||||
</View>
|
||||
</View>
|
||||
</View>
|
||||
</View>
|
||||
{!!productInfo?.product_screw_id && <Recommend onClick={openProduct} data={recommendData} />}
|
||||
<View className={styles.product_color}>
|
||||
<View className={styles.title}>色号信息 ({productInfo?.product_color_list?.length})</View>
|
||||
<View className={styles.list}>
|
||||
{productInfo?.product_color_list?.map((item) => {
|
||||
return (
|
||||
<View key={item.id} className={styles.item} onClick={() => handleClickProductColor(item)}>
|
||||
<View className={styles.item_color}>
|
||||
<LabAndImg
|
||||
value={{ lab: item.lab, rgb: item.rgb, texture_url: item.texture_url, title: item.code }}
|
||||
round
|
||||
name={formatRemoveHashTag(item.code)}
|
||||
/>
|
||||
|
||||
{!!productInfo?.product_screw_id
|
||||
&& <View style={{ margin: '20rpx' }}>
|
||||
<Recommend onClick={openProduct} data={recommendData} />
|
||||
</View>}
|
||||
<View className={styles.product_color}>
|
||||
<View className={styles.title}>色号信息 ({productInfo?.product_color_list?.length})</View>
|
||||
<View className={styles.list}>
|
||||
{productInfo?.product_color_list?.map((item) => {
|
||||
return (
|
||||
<View key={item.id} className={styles.item} onClick={() => handleClickProductColor(item)}>
|
||||
<View className={styles.item_color}>
|
||||
<LabAndImg
|
||||
value={{ lab: item.lab, rgb: item.rgb, texture_url: item.texture_url, title: item.code }}
|
||||
round
|
||||
name={formatRemoveHashTag(item.code)}
|
||||
/>
|
||||
</View>
|
||||
<View className={styles.item_name}>{item.name}</View>
|
||||
<View className={styles.bulk_price}>{formatPriceDiv(item.bulk_price)}/Kg{
|
||||
(item!.last_bulk_price && item!.bulk_price !== item!.last_bulk_price) ? (item.bulk_price > item.last_bulk_price) ? <Text style={{ color: 'red', marginLeft: '10rpx' }}>↑</Text> : <Text style={{ color: 'green', marginLeft: '10rpx' }}>↓</Text> : null
|
||||
}</View>
|
||||
</View>
|
||||
<View className={styles.item_name}>{item.name}</View>
|
||||
<View className={styles.bulk_price}>{formatPriceDiv(item.bulk_price)}/Kg{
|
||||
(item!.last_bulk_price && item!.bulk_price !== item!.last_bulk_price) ? (item.bulk_price > item.last_bulk_price) ? <Text style={{ color: 'red', marginLeft: '10rpx' }}>↑</Text> : <Text style={{ color: 'green', marginLeft: '10rpx' }}>↓</Text> : null
|
||||
}</View>
|
||||
</View>
|
||||
)
|
||||
})}
|
||||
)
|
||||
})}
|
||||
</View>
|
||||
</View>
|
||||
<View className={styles.product_detail}>
|
||||
<RichText nodes={html}></RichText>
|
||||
</View>
|
||||
</View>
|
||||
<View className={styles.product_detail}>
|
||||
<RichText nodes={html}></RichText>
|
||||
</View>
|
||||
<View className={styles.product_buy}>
|
||||
<View className={styles.icon_btn}>
|
||||
@ -443,7 +449,6 @@ const Details = (props: Params) => {
|
||||
</View>
|
||||
</Dialog>
|
||||
<PopupSelectColor onSelected={onCutSampleList} show={showColorSelect} product_id={productInfo.id} onClose={() => setShowColorSelect(false)} />
|
||||
<View className="common_safe_area_y"></View>
|
||||
</View>
|
||||
</MoveBtn>
|
||||
)
|
||||
|
||||
@ -4,6 +4,7 @@ page {
|
||||
flex-flow: column nowrap;
|
||||
}
|
||||
.order_main {
|
||||
height: 100%;
|
||||
background-color: $color_bg_one;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
@ -24,7 +25,6 @@ page {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
.flexBox {
|
||||
display: flex;
|
||||
@ -37,7 +37,6 @@ page {
|
||||
height: 24px;
|
||||
color: #fff;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
background-color: #ffac00;
|
||||
font-size: 20px;
|
||||
@ -112,6 +111,8 @@ page {
|
||||
}
|
||||
}
|
||||
.submit_order {
|
||||
position: relative;
|
||||
z-index: 9999;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
width: 100%;
|
||||
|
||||
@ -223,7 +223,9 @@ const Comfirm = () => {
|
||||
</View>
|
||||
</View>
|
||||
<Popup show={showDesc} showTitle={false} onClose={() => setShowDesc(false)}>
|
||||
<Remark defaultValue={submitOrderData?.remark} onSave={e => getRemark(e)} />
|
||||
{
|
||||
showDesc && <Remark defaultValue={submitOrderData?.remark} onSave={e => getRemark(e)} />
|
||||
}
|
||||
</Popup>
|
||||
</View>
|
||||
</MoveBtn>
|
||||
|
||||
@ -1,13 +1,24 @@
|
||||
page {
|
||||
height: 100vh;
|
||||
display: flex;
|
||||
flex-flow: column nowrap;
|
||||
}
|
||||
.movable_area {
|
||||
width: 100%;
|
||||
}
|
||||
.order_main {
|
||||
min-height: 100%;
|
||||
background-color: $color_bg_one;
|
||||
padding: 20px;
|
||||
padding-bottom: 190px;
|
||||
box-sizing: border-box;
|
||||
|
||||
display: flex;
|
||||
height: 100%;
|
||||
flex-flow: column nowrap;
|
||||
overflow: hidden;
|
||||
.order_content {
|
||||
flex: 1 1 auto;
|
||||
display: flex;
|
||||
flex-flow: column nowrap;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
.order_title {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
@ -68,14 +79,15 @@
|
||||
}
|
||||
}
|
||||
.submit_order_con {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
position: relative;
|
||||
z-index: 9999;
|
||||
width: 100%;
|
||||
background-color: #fff;
|
||||
box-shadow: 6px 0px 12px 0px rgba(0, 0, 0, 0.16);
|
||||
padding: 20px 20px;
|
||||
box-sizing: border-box;
|
||||
padding-bottom: constant(safe-area-inset-bottom);
|
||||
padding-bottom: env(safe-area-inset-bottom);
|
||||
.order_btn {
|
||||
width: 152px;
|
||||
height: 72px;
|
||||
|
||||
@ -303,60 +303,71 @@ const Order = () => {
|
||||
return (
|
||||
<MoveBtn orderObj={orderDetail} showList={['order']} messageTitle={orderDetail?.order_no} messagePath={`/pages/order/index?id=${orderDetail?.id}`} showCart>
|
||||
<View className={styles.order_main}>
|
||||
{(orderDetail?.status != SaleorderstatusWaitingPrePayment.value && <OrderState picUrl={orderDetail?.picUrl} orderInfo={orderDetail} />) || (
|
||||
<AdvanceOrderState orderInfo={orderDetail} onRefresh={refresh} />
|
||||
)}
|
||||
<View>
|
||||
<AddressInfoDetail
|
||||
orderInfo={defaultAddress}
|
||||
onLogistics={getLogistics}
|
||||
onSelect={getAddress}
|
||||
onChangeShipmentMode={getShipmentMode}
|
||||
ref={addressRef}
|
||||
/>
|
||||
</View>
|
||||
<KindList order={formatPreViewOrderMemo} />
|
||||
<View className={styles.order_info}>
|
||||
<View className={styles.order_info_title}>订单信息</View>
|
||||
<SearchInput showBorder={false} title="单号" height="50rpx">
|
||||
<View className={styles.order_num}>
|
||||
<Text>{orderDetail?.order_no}</Text>
|
||||
<View className={styles.order_num_btn} onClick={() => clipboardData()}>
|
||||
<View className={styles.order_content}>
|
||||
<View style={{ margin: '20rpx', marginBottom: '0' }}>
|
||||
{(orderDetail?.status != SaleorderstatusWaitingPrePayment.value && <OrderState picUrl={orderDetail?.picUrl} orderInfo={orderDetail} />) || (
|
||||
<AdvanceOrderState orderInfo={orderDetail} onRefresh={refresh} />
|
||||
)}
|
||||
</View>
|
||||
<View style={{ margin: '0 20rpx' }}>
|
||||
<AddressInfoDetail
|
||||
orderInfo={defaultAddress}
|
||||
onLogistics={getLogistics}
|
||||
onSelect={getAddress}
|
||||
onChangeShipmentMode={getShipmentMode}
|
||||
ref={addressRef}
|
||||
/>
|
||||
</View>
|
||||
<View style={{ margin: '0 20rpx' }}>
|
||||
<KindList order={formatPreViewOrderMemo} />
|
||||
</View>
|
||||
<View style={{ margin: '0 20rpx' }}>
|
||||
|
||||
<View className={styles.order_info}>
|
||||
<View className={styles.order_info_title}>订单信息</View>
|
||||
<SearchInput showBorder={false} title="单号" height="50rpx">
|
||||
<View className={styles.order_num}>
|
||||
<Text>{orderDetail?.order_no}</Text>
|
||||
<View className={styles.order_num_btn} onClick={() => clipboardData()}>
|
||||
复制
|
||||
</View>
|
||||
</View>
|
||||
</View>
|
||||
</SearchInput>
|
||||
<SearchInput showBorder={false} title="下单时间" height="50rpx">
|
||||
<Text>{formatDateTime(orderDetail?.create_time)}</Text>
|
||||
</SearchInput>
|
||||
{orderDetail?.payment_time && (
|
||||
<SearchInput showBorder={false} title="付款时间" height="50rpx">
|
||||
<Text>{formatDateTime(orderDetail?.payment_time)}</Text>
|
||||
</SearchInput>
|
||||
)}
|
||||
</View>
|
||||
</SearchInput>
|
||||
<SearchInput showBorder={false} title="下单时间" height="50rpx">
|
||||
<Text>{formatDateTime(orderDetail?.create_time)}</Text>
|
||||
</SearchInput>
|
||||
{orderDetail?.payment_time && (
|
||||
<SearchInput showBorder={false} title="付款时间" height="50rpx">
|
||||
<Text>{formatDateTime(orderDetail?.payment_time)}</Text>
|
||||
</SearchInput>
|
||||
)}
|
||||
</View>
|
||||
<View className={styles.order_desc} onClick={descOpen}>
|
||||
<View className={styles.order_desc_con}>订单备注</View>
|
||||
{(orderRemark && <View className={styles.order_desc_text}>{orderDetail?.remark}</View>) || (
|
||||
<View className={styles.order_desc_text_hint}>填写备注</View>
|
||||
)}
|
||||
<View className={classnames(styles.miconfont, 'iconfont icon-a-moreback')}></View>
|
||||
</View>
|
||||
<View style={{ margin: '0 20rpx' }}>
|
||||
<View className={styles.order_desc} onClick={descOpen}>
|
||||
<View className={styles.order_desc_con}>订单备注</View>
|
||||
{(orderRemark && <View className={styles.order_desc_text}>{orderDetail?.remark}</View>) || (
|
||||
<View className={styles.order_desc_text_hint}>填写备注</View>
|
||||
)}
|
||||
<View className={classnames(styles.miconfont, 'iconfont icon-a-moreback')}></View>
|
||||
</View>
|
||||
</View>
|
||||
</View>
|
||||
{orderDetail?.status != SaleOrderStatusCancel.value && (
|
||||
<View className={styles.submit_order_con}>
|
||||
<OrderBtns orderInfo={orderInfo} onClick={orderStateClick} />
|
||||
<View className="common_safe_area_y"></View>
|
||||
</View>
|
||||
)}
|
||||
<Popup show={showDesc} showTitle={false} onClose={() => setShowDesc(false)}>
|
||||
<Remark onSave={e => getRemark(e)} defaultValue={orderDetail?.remark} />
|
||||
{
|
||||
showDesc && <Remark onSave={e => getRemark(e)} defaultValue={orderDetail?.remark} />
|
||||
}
|
||||
</Popup>
|
||||
<Payment onSubmitSuccess={onPaySuccess} show={payMentShow} onClose={closePayShow} orderInfo={orderDetail} />
|
||||
<ScanPayCheck show={showScanPayCheck} onClose={() => setShowScanPayCheck(false)} orderInfo={orderDetail} />
|
||||
<ApplyRefund show={refundShow} onSuccess={applyRefundSuccess} onClose={applyRefundClose} orderId={orderDetail?.id} />
|
||||
<ShopCart intoStatus="again" show={showCart} onClose={() => setShowCart(false)} />
|
||||
<ReturnRecord show={returnRecordShow} onClose={closeReturnRecord} id={orderDetail?.id} />
|
||||
<View className="common_safe_area_y"></View>
|
||||
</View>
|
||||
</MoveBtn>
|
||||
)
|
||||
|
||||
@ -225,13 +225,13 @@ const SpeedComfirm = () => {
|
||||
</View>
|
||||
</View>
|
||||
}
|
||||
<View style={{ margin: '20rpx' }}>
|
||||
<View style={{ margin: '0 20rpx' }}>
|
||||
<AddressInfoDetail orderInfo={defaultAddress} onSelect={getAddress} onChangeShipmentMode={selectShipmentMode} status={1} />
|
||||
</View>
|
||||
<View style={{ margin: '20rpx', marginTop: '0' }}>
|
||||
<View style={{ margin: '0 20rpx' }}>
|
||||
<KindList order={formatPreViewOrderMemo} comfirm />
|
||||
</View>
|
||||
<View style={{ margin: '20rpx' }}>
|
||||
<View style={{ margin: '0 20rpx' }}>
|
||||
<View className={styles.order_desc} onClick={() => setShowDesc(true)}>
|
||||
<View className={styles.order_desc_con}>订单备注</View>
|
||||
{(submitOrderData?.remark && <View className={styles.order_desc_text}>{submitOrderData?.remark}</View>) || <View className={styles.order_desc_text_hint}>填写备注</View>}
|
||||
@ -253,7 +253,9 @@ const SpeedComfirm = () => {
|
||||
</View>
|
||||
</View>
|
||||
<Popup show={showDesc} showTitle={false} onClose={() => setShowDesc(false)}>
|
||||
<Remark defaultValue={submitOrderData?.remark} onSave={e => getRemark(e)} />
|
||||
{
|
||||
showDesc && <Remark defaultValue={submitOrderData?.remark} onSave={e => getRemark(e)} />
|
||||
}
|
||||
</Popup>
|
||||
</View>
|
||||
</MoveBtn>
|
||||
|
||||
@ -181,18 +181,20 @@ export default () => {
|
||||
|
||||
</View>
|
||||
</View>
|
||||
<View className={classnames(styles.nav_list, styles.earnings_list)}>
|
||||
<View className={styles.nav_list__title}>
|
||||
<Text className={styles.title_text}>下单返现活动</Text>
|
||||
</View>
|
||||
<View className={styles.earnings_con}>
|
||||
<View className={styles.earnings_price}>
|
||||
<Text className={styles.earnings_title}>活动返现收益(元)</Text>
|
||||
<View className={styles.earnings_total}><Text>¥</Text> <Text className={styles.all_earnings}>{formatPriceDiv(state.data.total_income, 100, true)}</Text> <View className={styles.today_earnings}>昨日收益 {formatPriceDiv(state.data.today_income, 100, true)}</View></View>
|
||||
{
|
||||
!userInfo?.adminUserInfo?.is_bd && <View className={classnames(styles.nav_list, styles.earnings_list)}>
|
||||
<View className={styles.nav_list__title}>
|
||||
<Text className={styles.title_text}>下单返现活动</Text>
|
||||
</View>
|
||||
<View className={styles.earnings_con}>
|
||||
<View className={styles.earnings_price}>
|
||||
<Text className={styles.earnings_title}>活动返现收益(元)</Text>
|
||||
<View className={styles.earnings_total}><Text>¥</Text> <Text className={styles.all_earnings}>{formatPriceDiv(state.data.total_income, 100, true)}</Text> <View className={styles.today_earnings}>昨日收益 {formatPriceDiv(state.data.today_income, 100, true)}</View></View>
|
||||
</View>
|
||||
<View className={styles.more} onClick={() => goLink('/pages/activityIncome/index')}><Text>查看收益</Text><IconFont name="icon-rukou" size={30} /></View>
|
||||
</View>
|
||||
<View className={styles.more} onClick={() => goLink('/pages/activityIncome/index')}><Text>查看收益</Text><IconFont name="icon-rukou" size={30} /></View>
|
||||
</View>
|
||||
</View>
|
||||
}
|
||||
<View className={styles.nav_list}>
|
||||
<View className={styles.nav_list__title}>
|
||||
<Text className={styles.title_text}>我的服务</Text>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user