From 9e6cf1738f329a77fecd9d39527985a2f90285be Mon Sep 17 00:00:00 2001 From: czm <2192718639@qq.com> Date: Wed, 23 Nov 2022 18:02:02 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=88=20perf(=E9=A1=B5=E9=9D=A2=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E5=AE=8C=E6=88=90):?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/LabAndImg/index.module.scss | 23 +- src/components/LabAndImg/index.tsx | 15 +- src/components/product/index.module.scss | 156 +++++++------- src/components/product/index.tsx | 77 +++---- src/pages/details/index.module.scss | 47 ++++- src/pages/details/index.tsx | 33 ++- src/styles/iconfont.scss | 233 ++++++++++++++++----- src/styles/iconfont2.ttf | Bin 0 -> 5072 bytes 8 files changed, 389 insertions(+), 195 deletions(-) create mode 100644 src/styles/iconfont2.ttf diff --git a/src/components/LabAndImg/index.module.scss b/src/components/LabAndImg/index.module.scss index e6f5a09..101a75c 100644 --- a/src/components/LabAndImg/index.module.scss +++ b/src/components/LabAndImg/index.module.scss @@ -1,16 +1,35 @@ .labAndImg_main { width: 100%; height: 100%; + overflow: hidden; + position: relative; + // border: 1px #eee solid; + display: flex; + justify-content: center; .boxColor { width: 100%; height: 100%; border-radius: 20px; - border: 1px solid #818181; + // border: 1px solid #818181; box-sizing: border-box; } .labAndImg_image { width: 100%; height: 100%; - border-radius: 20px !important; + border-radius: 20px; + } + .labAndImg_name { + position: absolute; + margin: auto; + bottom: 0; + left: 0; + right: 0; + width: 80%; + text-align: center; + font-size: 24px; + border-radius: 50px; + padding: 7px; + background-color: #fff; + @include common_ellipsis; } } diff --git a/src/components/LabAndImg/index.tsx b/src/components/LabAndImg/index.tsx index 1d05866..7aee959 100644 --- a/src/components/LabAndImg/index.tsx +++ b/src/components/LabAndImg/index.tsx @@ -15,8 +15,10 @@ type Param = { } showStatus?: true | false onClick?: (val: Param['value']) => void + round?: boolean + name?: string } -export default memo(({ value, onClick, showStatus = false }: Param) => { +export default memo(({ value, onClick, showStatus = false, round = false, name = '' }: Param) => { const [imgs, setImgs] = useState([]) //lab是否都是0 @@ -50,10 +52,13 @@ export default memo(({ value, onClick, showStatus = false }: Param) => { return ( <> - onShowLabAndImg()}> - {value.texture_url && } - {!value.texture_url && rgbStyle && } - {!value.texture_url && !rgbStyle && } + onShowLabAndImg()}> + {value.texture_url && } + {!value.texture_url && rgbStyle && } + {!value.texture_url && !rgbStyle && ( + + )} + {name && {name}} diff --git a/src/components/product/index.module.scss b/src/components/product/index.module.scss index 91a62bd..e6face5 100644 --- a/src/components/product/index.module.scss +++ b/src/components/product/index.module.scss @@ -1,83 +1,83 @@ - -.products_list{ - padding: 0 20px 20px 20px; - box-sizing: border-box; - height: 100%; +.products_list { + padding: 0 20px 20px 20px; + box-sizing: border-box; + height: 100%; } -.products_item{ - width: 100%; - background-color: #fff; - border-radius: 20px; - padding: 20px; - box-sizing: border-box; - display: flex; - justify-content: space-between; - &:nth-child(n+2){ - margin-top: 16px; +.products_item { + width: 100%; + background-color: #fff; + border-radius: 20px; + padding: 20px; + box-sizing: border-box; + display: flex; + justify-content: space-between; + &:nth-child(n + 2) { + margin-top: 16px; + } + .item_img { + width: 198px; + height: 198px; + position: relative; + image { + width: 100%; + height: 100%; + border-radius: 10px; } - .item_img{ - width: 198px; - height: 198px; - position: relative; - image{ - width: 100%; - height: 100%; - border-radius: 10px; - } - .num{ - padding: 5px 10px 5px 20px; - font-size: $font_size_min; - position: absolute; - right:0; - bottom: 0; - background: rgba($color: #000, $alpha: 0.3); - border-radius: 36px 0px 20px 0px; - color: #fff; - text-align: center; - } + .num { + padding: 5px 10px 5px 20px; + font-size: $font_size_min; + position: absolute; + right: 0; + bottom: 0; + background: rgba($color: #000, $alpha: 0.3); + border-radius: 36px 0px 20px 0px; + color: #fff; + text-align: center; } - .item_con{ - padding-left: 20px; - font-size: $font_size; - flex:1; - .title{ - font-size: $font_size; - color: #707070; - @include common_ellipsis(2); - text{ - color: $color_font_one; - font-weight: bold; - } - } - .tag_list{ - display: flex; - margin-top: 16px; - flex-wrap: wrap; - .tag, .tag_g{ - max-width: 260rpx; - padding: 3px 10px; - background-color: #CDE5FF; - font-size: $font_size_min; - border-radius: 5px; - color: $color_main; - margin-right: 10px; - margin-bottom: 10px; - } - .tag_g{ - background-color: #FFE6CE; - color: #EE7500; - } - } - .introduce{ - font-size: $font_size_medium; - color: $color_font_two; - - } - .des{ - font-size:$font_size_medium; - color: #707070; - margin-top: 16px; - @include common_ellipsis($params:2); - } + } + .item_con { + padding-left: 20px; + font-size: $font_size; + flex: 1; + .title { + font-size: $font_size; + color: #707070; + @include common_ellipsis(2); + text { + color: $color_font_one; + font-weight: bold; + } } + .tag_list { + display: flex; + margin-top: 16px; + flex-wrap: wrap; + .tag, + .tag_g { + max-width: 260rpx; + padding: 3px 10px; + background-color: #cde5ff; + font-size: $font_size_min; + border-radius: 5px; + color: $color_main; + margin-right: 10px; + margin-bottom: 10px; + } + .tag_g { + background-color: #ffe6ce; + color: #ee7500; + } + } + .introduce { + font-size: $font_size_medium; + color: $color_font_two; + @include common_ellipsis; + } + .des { + font-size: $font_size_medium; + color: #707070; + margin-top: 16px; + @include common_ellipsis($params: 2); + } + } } diff --git a/src/components/product/index.tsx b/src/components/product/index.tsx index c08b492..a788f5b 100644 --- a/src/components/product/index.tsx +++ b/src/components/product/index.tsx @@ -1,39 +1,46 @@ -import { Image, View } from "@tarojs/components" -import Taro from "@tarojs/taro" -import { goLink } from "@/common/common" -import styles from './index.module.scss' -import { formatHashTag, formatImgUrl } from "@/common/fotmat" -import LabAndImg from "../LabAndImg" -import { useCallback, useMemo } from "react" +import { Image, View } from '@tarojs/components' +import Taro from '@tarojs/taro' +import { goLink } from '@/common/common' +import styles from './index.module.scss' +import { formatHashTag, formatImgUrl } from '@/common/fotmat' +import LabAndImg from '../LabAndImg' +import { useCallback, useMemo } from 'react' type Params = { - desStatus?: true|false, - productList?: any[] + desStatus?: true | false + productList?: any[] } -export default ({desStatus = true, productList = []}:Params) => { - - const labAndImgObj = useCallback((item) => { - return {lab:item.lab,rgb:item.rgb,texture_url:item.texture_url} - }, [productList]) - return ( - - {productList?.map(item => { - return goLink(`/pages/details/index?id=${item.id}`)}> - - - {item.product_color_count}色 - - - {formatHashTag(item.code, '')} {item.name} - - {item.width} - {item.weight_density} - - {item.component} - {desStatus&&{item.describe}} - - - })} - - ) +export default ({ desStatus = true, productList = [] }: Params) => { + const labAndImgObj = useCallback( + (item) => { + return { lab: item.lab, rgb: item.rgb, texture_url: item.texture_url } + }, + [productList], + ) + return ( + + {productList?.map((item) => { + return ( + goLink(`/pages/details/index?id=${item.id}`)}> + + + {item.product_color_count}色 + + + + {formatHashTag(item.code, '')} + {item.name} + + + {item.width} + {item.weight_density} + + {item.craft + ';' + item.component} + {desStatus && {item.describe}} + + + ) + })} + + ) } diff --git a/src/pages/details/index.module.scss b/src/pages/details/index.module.scss index f10e48b..e6a2f8c 100644 --- a/src/pages/details/index.module.scss +++ b/src/pages/details/index.module.scss @@ -1,7 +1,7 @@ .main { min-height: 100%; background-color: $color_bg_one; - padding-bottom: 100px; + padding: 20px 20px 100px 20px; .product_header { padding: 0 20px; display: flex; @@ -52,8 +52,9 @@ } .des_data { background-color: #fff; - padding: 20px; + padding: 24px; margin-top: 16px; + border-radius: 16px; .title { font-size: $font_size; font-weight: 700; @@ -62,14 +63,20 @@ } .con { display: grid; - grid-template-columns: 260px auto; + grid-template-columns: auto auto; 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: 16px; + margin-bottom: 24px; text { flex: 1; + color: #333333; @include common_ellipsis(1); } } @@ -86,15 +93,20 @@ .list { margin-top: 30px; display: grid; - grid-template-columns: 210px 210px 210px; + grid-template-columns: 25% 25% 25% 25%; justify-content: space-between; .item { - width: 210px; + width: 100%; margin-bottom: 28px; + display: flex; + flex-direction: column; + align-items: center; + padding: 0 10px; + box-sizing: border-box; .item_color { - width: 210px; - height: 210px; - border-radius: 20px; + width: 136px; + height: 136px; + border-radius: 50%; image { width: 100%; height: 100%; @@ -104,11 +116,15 @@ .item_name { text-align: center; margin-top: 10px; + font-size: 24px; + color: #666666; + @include common_ellipsis; } .bulk_price { - color: #8a8a8a; + color: #999999; font-size: 24px; + margin-top: 8px; text-align: center; } } @@ -141,7 +157,7 @@ font-size: $font_size_min; } .miconfont { - font-size: 36px; + font-size: 50px; } .product_num { position: absolute; @@ -158,6 +174,15 @@ right: 20px; } } + .customer_service { + text-align: center; + .miconfont { + font-size: 50px; + } + .text { + font-size: $font_size_min; + } + } .buy_btn { display: flex; justify-content: center; diff --git a/src/pages/details/index.tsx b/src/pages/details/index.tsx index 54c21af..2b00307 100644 --- a/src/pages/details/index.tsx +++ b/src/pages/details/index.tsx @@ -6,7 +6,7 @@ import OrderCount from './components/orderCount' import ShopCart from '@/components/shopCart' import styles from './index.module.scss' import { useCallback, useEffect, useMemo, useState } from 'react' -import { formatHashTag, formatImgUrl, formatPriceDiv } from '@/common/fotmat' +import { formatHashTag, formatImgUrl, formatPriceDiv, formatRemoveHashTag } from '@/common/fotmat' import { GetProductDetailApi } from '@/api/material' import useLogin from '@/use/useLogin' import { AnalysisShortCodeApi, GetShortCodeApi } from '@/api/share' @@ -193,11 +193,14 @@ export default (props: Params) => { - 详情参数 + 商品参数 编号:{productInfo.code} + + 工艺:{productInfo.craft} + 幅宽:{productInfo.width} @@ -210,15 +213,20 @@ export default (props: Params) => { - 色号 ({productInfo?.product_color_list?.length}) + 色号信息 ({productInfo?.product_color_list?.length}) {productInfo?.product_color_list?.map((item) => { return ( - + - {formatHashTag(item.code, item.name)} + {item.name} {formatPriceDiv(item.bulk_price)}/Kg ) @@ -229,11 +237,18 @@ export default (props: Params) => { - setShowCart(true)}> - - 购物车 - {commonData.shopCount > 0 && {commonData.shopCount > 99 ? '99+' : commonData.shopCount}} + + + + 客服 + + setShowCart(true)}> + + 购物车 + {commonData.shopCount > 0 && {commonData.shopCount > 99 ? '99+' : commonData.shopCount}} + + {(!userInfo.adminUserInfo?.is_authorize_phone && ( diff --git a/src/styles/iconfont.scss b/src/styles/iconfont.scss index 534a873..4d28a88 100644 --- a/src/styles/iconfont.scss +++ b/src/styles/iconfont.scss @@ -1,10 +1,14 @@ @font-face { - font-family: "iconfont"; /* Project id 2987621 */ + font-family: 'iconfont'; /* Project id 2987621 */ src: url('iconfont.ttf?t=1658997423433') format('truetype'); } +@font-face { + font-family: 'iconfont2'; /* Project id 2987621 */ + src: url('iconfont2.ttf?t=1658997423433') format('truetype'); +} .iconfont { - font-family: "iconfont" !important; + font-family: 'iconfont', 'iconfont2' !important; font-size: 16px; font-style: normal; -webkit-font-smoothing: antialiased; @@ -12,214 +16,333 @@ } .icon-wodekefu:before { - content: "\e67a"; + content: '\e67a'; } .icon-yaoqingma:before { - content: "\e679"; + content: '\e679'; } .icon-gengduo:before { - content: "\e677"; + content: '\e677'; } .icon-shanchu-2:before { - content: "\e678"; + content: '\e678'; } .icon-shangchuanzhaopian:before { - content: "\e676"; + content: '\e676'; } .icon-zuzhiziliao:before { - content: "\e66e"; + content: '\e66e'; } .icon-rili:before { - content: "\e66f"; + content: '\e66f'; } .icon-yishoucang:before { - content: "\e670"; + content: '\e670'; } .icon-tongguorenzheng:before { - content: "\e671"; + content: '\e671'; } .icon-gerenziliao:before { - content: "\e672"; + content: '\e672'; } .icon-shuaxin:before { - content: "\e673"; + content: '\e673'; } .icon-piliangguanli:before { - content: "\e674"; + content: '\e674'; } .icon-xinzeng:before { - content: "\e675"; + content: '\e675'; } .icon-yucunkuan:before { - content: "\e66c"; + content: '\e66c'; } .icon-xianxiahuikuan:before { - content: "\e669"; + content: '\e669'; } .icon-xtianzhangqi:before { - content: "\e66a"; + content: '\e66a'; } .icon-saomazhifu:before { - content: "\e66b"; + content: '\e66b'; } .icon-fahuo:before { - content: "\e66d"; + content: '\e66d'; } .icon-zhuyi:before { - content: "\e668"; + content: '\e668'; } .icon-zhushi:before { - content: "\e667"; + content: '\e667'; } .icon-zidingyimadan:before { - content: "\e665"; + content: '\e665'; } .icon-a-yuanmadanmadanguanli:before { - content: "\e666"; + content: '\e666'; } .icon-daohang:before { - content: "\e664"; + content: '\e664'; } .icon-shanchu:before { - content: "\e663"; + content: '\e663'; } .icon-yifahuo:before { - content: "\e65b"; + content: '\e65b'; } .icon-daipeibu:before { - content: "\e662"; + content: '\e662'; } .icon-yaoqingtuandui:before { - content: "\e65a"; + content: '\e65a'; } .icon-a-tuikuanshouhou:before { - content: "\e65c"; + content: '\e65c'; } .icon-daifukuan:before { - content: "\e65d"; + content: '\e65d'; } .icon-shezhi:before { - content: "\e65e"; + content: '\e65e'; } .icon-yanseduibi:before { - content: "\e65f"; + content: '\e65f'; } .icon-daifahuo:before { - content: "\e660"; + content: '\e660'; } .icon-baoguo:before { - content: "\e661"; + content: '\e661'; } .icon-tick-pressed:before { - content: "\e652"; + content: '\e652'; } .icon-wode-pressed:before { - content: "\e655"; + content: '\e655'; } .icon-fenlei-pressed:before { - content: "\e656"; + content: '\e656'; } .icon-sousuo:before { - content: "\e647"; + content: '\e647'; } .icon-fenxiang:before { - content: "\e648"; + content: '\e648'; } .icon-shaixuan:before { - content: "\e649"; + content: '\e649'; } .icon-gouwuche:before { - content: "\e64a"; + content: '\e64a'; } .icon-qingkong:before { - content: "\e64c"; + content: '\e64c'; } .icon-jia:before { - content: "\e64d"; + content: '\e64d'; } .icon-jian:before { - content: "\e64e"; + content: '\e64e'; } .icon-shoucang-pressed:before { - content: "\e64f"; + content: '\e64f'; } .icon-shoucang:before { - content: "\e650"; + content: '\e650'; } .icon-phone:before { - content: "\e651"; + content: '\e651'; } .icon-tick:before { - content: "\e653"; + content: '\e653'; } .icon-a-moreback:before { - content: "\e654"; + content: '\e654'; } .icon-fenlei:before { - content: "\e657"; + content: '\e657'; } .icon-bianji:before { - content: "\e658"; + content: '\e658'; } .icon-wode:before { - content: "\e659"; + content: '\e659'; } .icon-sort-up-full:before { - content: "\ea4c"; + content: '\ea4c'; } .icon-sort-down-full:before { - content: "\ea4d"; + content: '\ea4d'; } +.icon-shezhi:before { + content: '\e630'; +} + +.icon-tishi:before { + content: '\e631'; +} + +.icon-erweima:before { + content: '\e632'; +} + +.icon-dianjishoucang:before { + content: '\e633'; +} + +.icon-gouwuche:before { + content: '\e634'; +} + +.icon-shoucangchenggong:before { + content: '\e635'; +} + +.icon-fenxiangshangpin:before { + content: '\e636'; +} + +.icon-kefu:before { + content: '\e637'; +} + +.icon-xinzenganniu:before { + content: '\e62e'; +} + +.icon-jianshaoanniu:before { + content: '\e62f'; +} + +.icon-daifahuo:before { + content: '\e629'; +} + +.icon-daishouhuo:before { + content: '\e62a'; +} + +.icon-tuikuan-shouhou:before { + content: '\e62b'; +} + +.icon-daipeibu:before { + content: '\e62c'; +} + +.icon-daifukuan:before { + content: '\e62d'; +} + +.icon-shezhi:before { + content: '\e630'; +} + +.icon-tishi:before { + content: '\e631'; +} + +.icon-erweima:before { + content: '\e632'; +} + +.icon-dianjishoucang:before { + content: '\e633'; +} + +.icon-gouwuche:before { + content: '\e634'; +} + +.icon-shoucangchenggong:before { + content: '\e635'; +} + +.icon-fenxiangshangpin:before { + content: '\e636'; +} + +.icon-kefu:before { + content: '\e637'; +} + +.icon-xinzenganniu:before { + content: '\e62e'; +} + +.icon-jianshaoanniu:before { + content: '\e62f'; +} + +.icon-daifahuo:before { + content: '\e629'; +} + +.icon-daishouhuo:before { + content: '\e62a'; +} + +.icon-tuikuan-shouhou:before { + content: '\e62b'; +} + +.icon-daipeibu:before { + content: '\e62c'; +} + +.icon-daifukuan:before { + content: '\e62d'; +} diff --git a/src/styles/iconfont2.ttf b/src/styles/iconfont2.ttf new file mode 100644 index 0000000000000000000000000000000000000000..97910cc202cebbd593a0685d9c73be18134656c0 GIT binary patch literal 5072 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 ZP)g?)YjmN+bc&hW-jazamzao<{{o3UU}^vW literal 0 HcmV?d00001