From a82bf8baa51cddb67faa10fbe92eb15e52ac78aa Mon Sep 17 00:00:00 2001 From: yiqiu Date: Sun, 22 Mar 2026 20:36:15 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0hgcart=E8=B4=AD?= =?UTF-8?q?=E7=89=A9=E8=BD=A6=E6=A8=A1=E6=9D=BF+Drone=E9=83=A8=E7=BD=B2?= =?UTF-8?q?=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 解压default_npant.tar.gz到clientarea/cart/hgcart/ - .drone.yml增加hgcart同步到cart/template/pc/ --- .drone.yml | 3 + clientarea/cart/hgcart/.gitkeep | 0 clientarea/cart/hgcart/api/goodsList.js | 112 ++ clientarea/cart/hgcart/api/product.js | 35 + clientarea/cart/hgcart/api/shopping.js | 48 + clientarea/cart/hgcart/css/goods.css | 52 + clientarea/cart/hgcart/css/goods.less | 68 + clientarea/cart/hgcart/css/goodsList.css | 968 ++++++++++++++ clientarea/cart/hgcart/css/goodsList.less | 1207 ++++++++++++++++++ clientarea/cart/hgcart/css/goods_iframe.css | 34 + clientarea/cart/hgcart/css/goods_iframe.less | 42 + clientarea/cart/hgcart/css/settlement.css | 295 +++++ clientarea/cart/hgcart/css/settlement.less | 364 ++++++ clientarea/cart/hgcart/css/shoppingCar.css | 281 ++++ clientarea/cart/hgcart/css/shoppingCar.less | 339 +++++ clientarea/cart/hgcart/goods.php | 57 + clientarea/cart/hgcart/goodsList.php | 457 +++++++ clientarea/cart/hgcart/goods_iframe.php | 34 + clientarea/cart/hgcart/img/firewall-icon.png | Bin 0 -> 124191 bytes clientarea/cart/hgcart/img/firewall-icon.svg | 24 + clientarea/cart/hgcart/img/sold_out.svg | 1 + clientarea/cart/hgcart/index_iframe.php | 37 + clientarea/cart/hgcart/js/goods.js | 179 +++ clientarea/cart/hgcart/js/goodsList.js | 949 ++++++++++++++ clientarea/cart/hgcart/js/settlement.js | 367 ++++++ clientarea/cart/hgcart/js/shoppingCar.js | 510 ++++++++ clientarea/cart/hgcart/settlement.php | 182 +++ clientarea/cart/hgcart/shoppingCar.php | 187 +++ clientarea/cart/hgcart/theme.jpg | Bin 0 -> 56762 bytes 29 files changed, 6832 insertions(+) create mode 100644 clientarea/cart/hgcart/.gitkeep create mode 100644 clientarea/cart/hgcart/api/goodsList.js create mode 100644 clientarea/cart/hgcart/api/product.js create mode 100644 clientarea/cart/hgcart/api/shopping.js create mode 100644 clientarea/cart/hgcart/css/goods.css create mode 100644 clientarea/cart/hgcart/css/goods.less create mode 100644 clientarea/cart/hgcart/css/goodsList.css create mode 100644 clientarea/cart/hgcart/css/goodsList.less create mode 100644 clientarea/cart/hgcart/css/goods_iframe.css create mode 100644 clientarea/cart/hgcart/css/goods_iframe.less create mode 100644 clientarea/cart/hgcart/css/settlement.css create mode 100644 clientarea/cart/hgcart/css/settlement.less create mode 100644 clientarea/cart/hgcart/css/shoppingCar.css create mode 100644 clientarea/cart/hgcart/css/shoppingCar.less create mode 100644 clientarea/cart/hgcart/goods.php create mode 100644 clientarea/cart/hgcart/goodsList.php create mode 100644 clientarea/cart/hgcart/goods_iframe.php create mode 100644 clientarea/cart/hgcart/img/firewall-icon.png create mode 100644 clientarea/cart/hgcart/img/firewall-icon.svg create mode 100644 clientarea/cart/hgcart/img/sold_out.svg create mode 100644 clientarea/cart/hgcart/index_iframe.php create mode 100644 clientarea/cart/hgcart/js/goods.js create mode 100644 clientarea/cart/hgcart/js/goodsList.js create mode 100644 clientarea/cart/hgcart/js/settlement.js create mode 100644 clientarea/cart/hgcart/js/shoppingCar.js create mode 100644 clientarea/cart/hgcart/settlement.php create mode 100644 clientarea/cart/hgcart/shoppingCar.php create mode 100644 clientarea/cart/hgcart/theme.jpg diff --git a/.drone.yml b/.drone.yml index c4a3777..4cf35bf 100644 --- a/.drone.yml +++ b/.drone.yml @@ -26,6 +26,9 @@ steps: # 将用户中心仪表盘主题 hgcloud_home 同步到运行目录 - cp -rf /www/wwwroot/hgdemo.hgidc.cn/public/web/BlackFruit-web/clientarea/home/hgcloud_home /www/wwwroot/hgdemo.hgidc.cn/public/home/template/pc/ + # 将购物车主题 hgcart 同步到运行目录 + - cp -rf /www/wwwroot/hgdemo.hgidc.cn/public/web/BlackFruit-web/clientarea/cart/hgcart /www/wwwroot/hgdemo.hgidc.cn/public/cart/template/pc/ + - name: Restart Nginx commands: - nginx -s reload diff --git a/clientarea/cart/hgcart/.gitkeep b/clientarea/cart/hgcart/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/clientarea/cart/hgcart/api/goodsList.js b/clientarea/cart/hgcart/api/goodsList.js new file mode 100644 index 0000000..bcfe556 --- /dev/null +++ b/clientarea/cart/hgcart/api/goodsList.js @@ -0,0 +1,112 @@ +// 获取商品一级分组 +function productGroupFirst() { + return Axios.get(`/product/group/first`); +} + +//获取商品二级分组 +function productGroupSecond(id) { + return Axios.get(`/product/group/second?id=${id}`, id); +} + +// 商品列表 +function productGoods(params) { + return Axios.get(`/product`, { params }); +} + +// 获取可用域名后缀 +function domainSuffix(id) { + return Axios.get(`/idcsmart_domain/domain_suffix?host_id=${id}`); +} + +// 域名查询 +function domainSearch(params) { + return Axios.get(`/idcsmart_domain/check_domain`, { params }); +} + +// 获取域名价格 +function domainPrice(params) { + return Axios.get(`/idcsmart_domain/get_price`, { params }); +} + +// 获取whois信息 +function domainWhois(params) { + return Axios.get(`/idcsmart_domain/whois`, { params }); +} + +// 加入购物车 +function addToCart(params) { + return Axios.post(`/cart`, params, { timeout: 1000 * 60 * 20 }); +} + +// 结算购物车 +function cartCheckout(params) { + return Axios.post(`/cart/settle`, params); +} + +// 获取商品活动促销信息 +function eventPromotion(params) { + return Axios.get(`/event_promotion/product/${params.id}/event_promotion`, { + params + }); +} + +// 编辑购物车商品 +function updateCart(params) { + return Axios.put(`/cart/${params.position}`, params); +} + +// 删除购物车商品 +function deleteCart(params) { + return Axios.delete(`/cart/${params.position}`, params); +} + +// 批量删除购物车商品 +function deleteCartBatch(params) { + return Axios.delete(`/cart/batch`, { params }); +} + +// 信息模板列表 +function templateList(params) { + return Axios.get(`/idcsmart_domain/info_template`, { params }); +} + +// 信息模板详情 +function templateDetails(id) { + return Axios.get(`/idcsmart_domain/info_template/${id}`); +} + +// 新建信息模板 +function templateAdd(params) { + return Axios.post(`/idcsmart_domain/info_template`, params); +} + +// 删除信息模板 +function templateDelete(id) { + return Axios.delete(`/idcsmart_domain/info_template/${id}`); +} + +// 信息模板实名认证 +function templateAuth(params) { + return Axios.post( + `/idcsmart_domain/info_template/${params.id}/certifications`, + params + ); +} + +// 支持的信息模板 +function templateSupport(params) { + return Axios.get(`/idcsmart_domain/info_template/support`, { params }); +} + +// 批量查询域名 +function domainBatch(params) { + return Axios.get(`/idcsmart_domain/bulk_check`, { + params, + timeout: 1000 * 60 * 20 + }); +} + +// 获取域名设置 +function domainSetting() { + return Axios.get(`/idcsmart_domain/config`); +} diff --git a/clientarea/cart/hgcart/api/product.js b/clientarea/cart/hgcart/api/product.js new file mode 100644 index 0000000..255729c --- /dev/null +++ b/clientarea/cart/hgcart/api/product.js @@ -0,0 +1,35 @@ +// 获取商品列表页 +function getProduct(id) { + return Axios.get(`/menu/${id}/host`); +} +// 获取详情 +function getProductDetail(id) { + return Axios.get(`/host/${id}/view`); +} +// 获取订购页 +function getOrederConfig(params) { + return Axios.get(`/product/${params.id}/config_option`, { params }); +} +// 产品详情 +function hostDetail(params) { + return Axios.get(`/host/${params.id}`, { params }); +} +// 产品合同是否逾期 +function timeoutStatus(id) { + return Axios.get(`/e_contract/host/${id}/timeout`); +} + +// 商品详情 +function apiProductDetail(params) { + return Axios.get(`/product/${params.id}`, { params }); +} + +//获取商品二级分组 +function productGroupSecond(id) { + return Axios.get(`/product/group/second?id=${id}`, id); +} + +// 商品列表 +function productGoods(params) { + return Axios.get(`/product`, { params }); +} diff --git a/clientarea/cart/hgcart/api/shopping.js b/clientarea/cart/hgcart/api/shopping.js new file mode 100644 index 0000000..5100fdd --- /dev/null +++ b/clientarea/cart/hgcart/api/shopping.js @@ -0,0 +1,48 @@ +// 获取购物车 +function cartList() { + return Axios.get(`/cart`); +} + +//修改购物车商品数量 +function editGoodsNum(index, num) { + return Axios.put(`/cart/${index}/qty`, { qty: num }); +} + +//批量删除购物车商品 +function deleteGoods(arr) { + const params = { positions: arr }; + return Axios.delete(`/cart/batch`, { data: params }); +} + +// 修改配置计算价格 +function configOption(id, params) { + return Axios.post(`/product/${id}/config_option`, params); +} + +// 结算购物车 +function cart_settle(params) { + return Axios.post(`/cart/settle`, params); +} + +// 获取商品折扣金额 +function clientLevelAmount(params) { + return Axios.get(`/client_level/product/${params.id}/amount`, { params }); +} + +// 结算商品 +function product_settle(params) { + return Axios.post(`/product/settle`, params); +} +//支付接口 +function payLisy() { + return Axios.get(`/gateway`); +} +// 修改购物车 +function updateCart(params) { + return Axios.put(`/cart/${params.position}`, params); +} + +// 商品列表 +function productDetail(id) { + return Axios.get(`/product/${id}`); +} diff --git a/clientarea/cart/hgcart/css/goods.css b/clientarea/cart/hgcart/css/goods.css new file mode 100644 index 0000000..ecd9f89 --- /dev/null +++ b/clientarea/cart/hgcart/css/goods.css @@ -0,0 +1,52 @@ +.template { + height: 100%; +} +.main-card { + height: 100%; +} +.config-box { + height: 100%; + display: flex; + flex-direction: column; +} +.content { + flex: 1; +} +.goods-item-name { + cursor: pointer; + padding: 6px 12px; + border: 1px solid var(--color-primary); + color: var(--color-primary); + border-radius: 3px; + margin-bottom: 30px; + display: inline-block; +} +.goods-change-box { + max-width: 100%; +} +.goods-change-box .goods-item-box { + max-height: 500px; + overflow-y: auto; + padding: 0.2rem; +} +.goods-change-box .goods-item-box .goods-group-item { + margin-bottom: 0.3rem; +} +.goods-change-box .goods-item-box .goods-group-item .goods-group-name { + font-weight: 700; + font-size: 0.18rem; + margin-bottom: 0.15rem; +} +.goods-change-box .goods-item-box .goods-group-item .goods-group-info { + display: grid; + grid-template-columns: repeat(4, 1fr); + grid-column-gap: 15px; + row-gap: 0.1rem; +} +.goods-change-box .goods-item-box .goods-group-item .goods-group-info .option-name { + cursor: pointer; + font-size: 0.14rem; +} +.goods-change-box .goods-item-box .goods-group-item .goods-group-info .option-name:hover { + color: var(--color-primary); +} diff --git a/clientarea/cart/hgcart/css/goods.less b/clientarea/cart/hgcart/css/goods.less new file mode 100644 index 0000000..05648d1 --- /dev/null +++ b/clientarea/cart/hgcart/css/goods.less @@ -0,0 +1,68 @@ +.template { + height: 100%; +} + +.main-card { + height: 100%; +} + +.config-box { + height: 100%; + display: flex; + flex-direction: column; +} + +.content { + flex: 1 +} + + + + +.goods-item-name { + cursor: pointer; + padding: 6px 12px; + border: 1px solid var(--color-primary); + color: var(--color-primary); + border-radius: 3px; + margin-bottom: 30px; + display: inline-block; +} + + +.goods-change-box { + max-width: 100%; + + .goods-item-box { + max-height: 500px; + overflow-y: auto; + padding: .2rem; + + .goods-group-item { + margin-bottom: .3rem; + + .goods-group-name { + font-weight: 700; + font-size: .18rem; + margin-bottom: .15rem; + } + + .goods-group-info { + // 一行4个 grid 布局 + display: grid; + grid-template-columns: repeat(4, 1fr); + grid-column-gap: 15px; + row-gap: .1rem; + + .option-name { + cursor: pointer; + font-size: .14rem; + + &:hover { + color: var(--color-primary); + } + } + } + } + } +} diff --git a/clientarea/cart/hgcart/css/goodsList.css b/clientarea/cart/hgcart/css/goodsList.css new file mode 100644 index 0000000..1ae2b51 --- /dev/null +++ b/clientarea/cart/hgcart/css/goodsList.css @@ -0,0 +1,968 @@ +.main-title { + font-size: 0.28rem; + color: #171725; +} +.cart-des { + padding: 0.1rem; + border-radius: 0.03rem; + border: 1px solid #e6e7eb; + box-sizing: border-box; + overflow-y: auto; + margin-bottom: 0.24rem; +} +.cart-des * { + all: revert; +} +.main-content-box { + box-sizing: border-box; + padding-bottom: 0.1rem; + width: 100%; + border-radius: 0.03rem; +} +.search-box { + display: flex; + justify-content: center; + align-items: center; +} +.search-box .el-select { + width: 3.2rem; + font-size: 0.15rem; +} +.search-box .el-select .el-input__inner { + height: 0.46rem !important; + line-height: 0.46rem; +} +.search-box .el-select .el-input__suffix .el-input__icon { + line-height: 1; +} +.second-select { + margin: 0 0.1rem; +} +.second-select .el-input__inner { + height: 0.46rem; + line-height: 0.46rem; +} +.search-input { + width: 3.2rem; +} +.search-input .el-input__inner { + height: 0.46rem !important; + line-height: 0.46rem; +} +.search-btn { + margin-left: 0.1rem; + width: 0.8rem; + height: 0.46rem; + background: var(--color-primary); + border-radius: 0.03rem; + border: none; + font-size: 0.16rem; + color: rgba(255, 255, 255, 0.9); +} +.second-desc { + height: 0.4rem; + font-size: 0.14rem; + color: var(--color-danger); + background: rgba(220, 45, 45, 0.1); + margin-top: 0.24rem; + border-radius: 0.04rem; +} +.shopping-box { + box-sizing: border-box; + margin-top: 0.24rem; + min-height: 3rem; +} +.goods-list-div { + width: 100%; + display: grid; + grid-template-columns: repeat(4, 1fr); + row-gap: 0.2rem; + column-gap: 0.2rem; +} +.shopping-item { + position: relative; + box-sizing: border-box; + min-height: 2.75rem; + border: 1px solid #EDEDED; + border-radius: 0.08rem; + overflow: hidden; + display: flex; + flex-direction: column; + justify-content: space-between; + padding-bottom: 0.16rem; +} +.shopping-item .client-box { + position: absolute; + top: 0; + right: 0; + background-color: var(--color-primary); + padding: 0 0.08rem; + color: #fff; + font-size: 14px; + border-radius: 0px 0px 0px 8px; +} +.shopping-item .goods-name { + margin-top: 0.18rem; + display: flex; + justify-content: space-between; + align-items: center; + column-gap: 0.3rem; + padding: 0 0.16rem; +} +.shopping-item .goods-name .goods-name-text { + font-size: 16px; + font-weight: 700; + flex: 1; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.shopping-item .goods-name .qty-box { + font-size: 12px; + color: #CFD2E1; + flex-shrink: 0; + position: relative; +} +.shopping-item .goods-name .qty-box img { + position: absolute; + top: -0.2rem; + right: 0; + width: 0.55rem; + height: 0.48rem; +} +.shopping-item .goods-name.sold-out .goods-name-text { + color: #CFD2E1; +} +.shopping-item .goods-name.sold-out .qty-box { + width: 0.55rem; +} +.shopping-item .goods-content { + display: flex; + flex-direction: column; + justify-content: space-between; +} +.shopping-item .goods-active { + margin-top: 0.12rem; + padding: 0 0.16rem; + display: flex; + flex-wrap: wrap; + column-gap: 0.08rem; + row-gap: 0.08rem; +} +.shopping-item .goods-active .active-name { + font-size: 12px; + color: var(--color-primary); + background: rgba(57, 124, 252, 0.1); + padding: 0.03rem 0.08rem; + border-radius: 2px; +} +.shopping-item .goods-tag { + box-sizing: border-box; + height: 0.36rem; + display: flex; + flex-wrap: wrap; + align-items: center; + row-gap: 0.08rem; + column-gap: 0.16rem; + background: rgba(57, 124, 252, 0.15); + padding: 0 0.16rem; +} +.shopping-item .goods-tag .tag-item { + position: relative; + font-size: 12px; + flex-shrink: 0; + color: var(--color-primary); + padding-left: 0.08rem; +} +.shopping-item .goods-tag .tag-item::after { + content: ''; + position: absolute; + top: 50%; + left: 0; + width: 0.04rem; + height: 0.04rem; + transform: translateY(-50%); + border-radius: 50%; + background: rgba(57, 124, 252, 0.45); +} +.shopping-item .goods-description { + box-sizing: border-box; + padding: 0.24rem 0.21rem 0.22rem 0.16rem; + max-height: 400px; + min-height: 150px; + flex: 1; + overflow: auto; + font-size: 14px; + white-space: normal; + background: #F4F4F4; +} +.shopping-item .goods-description * { + all: revert; +} +.shopping-item .goods-description ul { + padding-left: 0.16rem; + margin: 0; +} +.shopping-item .goods-description img { + max-width: 100%; +} +.shopping-item .goods-description::-webkit-scrollbar { + /*滚动条整体样式*/ + width: 0px; +} +.shopping-item .goods-description:hover::-webkit-scrollbar { + width: 4px; +} +.shopping-item .price-box { + margin-top: 0.18rem; + padding: 0 0.16rem; + display: flex; + justify-content: space-between; + align-items: center; + column-gap: 0.1rem; +} +.shopping-item .price-box .price-box-left { + text-align: right; + display: flex; + align-items: flex-end; + column-gap: 0.04rem; +} +.shopping-item .price-box .original-price { + font-size: 12px; + color: #CFD2E1; + text-decoration: line-through; +} +.shopping-item .price-box .item-price { + font-size: 24px; + color: var(--color-price-text); +} +.shopping-item .price-box .item-price .item-price-prefix { + font-size: 12px; +} +.shopping-item .price-box .item-price .item-price-cycle { + font-size: 14px; + color: #485169; +} +.shopping-item .price-box .buy-btn { + height: 0.3rem; +} +.tips { + color: #8692b0; + font-size: 0.13rem; + text-align: center; +} +.domain-box .register-type { + display: flex; + align-items: center; +} +.domain-box .register-type .el-divider { + background-color: #D8D8D8; + margin: 0 0.24rem; +} +.domain-box .register-type .reg-ridio { + font-size: 0.14rem; + color: #646464; + cursor: pointer; +} +.domain-box .register-type .isActice { + color: var(--color-primary); +} +.domain-box .domain-search { + margin-top: 0.32rem; + position: relative; + display: flex; + align-items: center; +} +.domain-box .domain-search .el-input { + height: 0.56rem; +} +.domain-box .domain-search .el-input .el-input__inner { + height: 0.56rem; + line-height: 0.56rem; +} +.domain-box .domain-search .el-input-group__append { + padding: 0; + background: #ffffff; + border-right: 0; + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.domain-box .domain-search .input-btn { + width: 1.7rem; +} +.domain-box .domain-search .suffix-box { + width: 1.7rem; + display: flex; + justify-content: center; + align-items: center; + color: #2B2B2B; + font-size: 0.16rem; + cursor: pointer; +} +.domain-box .domain-search .suffix-box .el-icon-arrow-down { + font-size: 0.14rem; + color: #8692b0; + margin-left: 0.1rem; +} +.domain-box .domain-search .search-button { + height: 0.56rem; + padding-left: 0.7rem; + padding-right: 0.7rem; + border: none; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + background: var(--color-primary); + color: #ffffff; + font-size: 0.16rem; +} +.domain-box .domain-search .suffix-list { + z-index: 2; + position: absolute; + top: 0.56rem; + left: 0; + display: flex; + flex-wrap: wrap; + width: calc(100% - 2.7rem); + padding: 0.3rem 0.23rem 0.3rem 0.46rem; + background: #feffff; + box-shadow: 0rem 0.05rem 0.1rem 0.01rem rgba(0, 0, 0, 0.1); + border-radius: 0.03rem 0.03rem 0.03rem 0.03rem; +} +.domain-box .domain-search .suffix-list .suffix-item { + margin-right: 0.16rem; + margin-bottom: 0.16rem; + width: 1.1rem; + height: 0.4rem; + border: 0.01rem solid #e6eaed; + display: flex; + justify-content: center; + align-items: center; + font-size: 0.16rem; + color: #2B2B2B; + cursor: pointer; +} +.domain-box .domain-search .suffix-list .suffix-item:hover { + background: rgba(0, 88, 255, 0.08); +} +.domain-box .domain-search .suffix-list .suffix-active { + background: rgba(0, 88, 255, 0.08); + border: 0.01rem solid var(--color-primary); + color: var(--color-primary); +} +.domain-box .batch-search-box { + margin-top: 0.32rem; +} +.domain-box .batch-search-box .batch-tips { + box-sizing: border-box; + color: #8692b0; + font-size: 0.14rem; + padding: 0.16rem; + border-radius: 0.04rem; + border: 0.01rem solid #EAEAEA; +} +.domain-box .batch-search-box .batch-tips .input-batch .el-textarea__inner { + height: 1.3rem; + border: none; + padding: 0; +} +.domain-box .batch-search-box .batch-btn { + margin-top: 0.16rem; + display: flex; + align-items: center; + justify-content: space-between; +} +.domain-box .batch-search-box .batch-btn .upload-btn { + display: flex; + align-items: center; + column-gap: 0.08rem; + font-size: 0.12rem; + color: var(--color-primary); + cursor: pointer; +} +.domain-box .batch-search-box .batch-btn .el-button { + height: 0.36rem; +} +.domain-box .domain-content { + margin-top: 0.24rem; + display: flex; + column-gap: 0.4rem; +} +.domain-box .domain-content .domain-left { + flex: 1; +} +.domain-box .domain-content .domain-left .domain-one { + height: 100%; +} +.domain-box .domain-content .domain-left .domain-one .domain-one-list { + height: 100%; + display: flex; + flex-direction: column; +} +.domain-box .domain-content .domain-left .domain-one .search-title { + display: flex; + align-items: center; + justify-content: space-between; + font-size: 0.16rem; + color: #2B2B2B; +} +.domain-box .domain-content .domain-left .domain-one .search-title .search-fillter { + display: flex; + align-items: center; + column-gap: 0.08rem; + cursor: pointer; +} +.domain-box .domain-content .domain-left .domain-one .search-title .search-fillter.is_select { + color: var(--color-primary); +} +.domain-box .domain-content .domain-left .domain-one .fillter-list { + margin-top: 0.24rem; + border-radius: 8px; + box-sizing: border-box; + border: 1px solid #EAEAEA; + padding: 0.24rem; + display: flex; + flex-wrap: wrap; + gap: 0.24rem; +} +.domain-box .domain-content .domain-left .domain-one .fillter-list .fillter-item { + width: 1rem; + height: 0.4rem; + border: 0.01rem solid #e6eaed; + display: flex; + justify-content: center; + align-items: center; + font-size: 0.14rem; + color: #2B2B2B; + cursor: pointer; + border-radius: 0.04rem; +} +.domain-box .domain-content .domain-left .domain-one .fillter-list .fillter-item:hover { + background: rgba(0, 88, 255, 0.08); +} +.domain-box .domain-content .domain-left .domain-one .fillter-list .fillter-item.is_select { + background: rgba(0, 88, 255, 0.08); + border-color: var(--color-primary); + color: var(--color-primary); +} +.domain-box .domain-content .domain-left .domain-one .start-search { + margin-top: 0.24rem; + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + height: 93%; + border-radius: 8px; + border: 0.01rem solid #EAEAEA; +} +.domain-box .domain-content .domain-left .domain-one .start-search img { + width: 0.58rem; + height: 0.57rem; +} +.domain-box .domain-content .domain-left .domain-one .start-search p { + text-align: center; + margin-top: 0.19rem; + font-size: 0.18rem; + color: #2B2B2B; +} +.domain-box .domain-content .domain-left .domain-one .domain-list { + margin-top: 0.24rem; + background: #ffffff; + border: 1px solid #EAEAEA; + border-radius: 8px; + flex: 1; + overflow-y: auto; +} +.domain-box .domain-content .domain-left .domain-one .domain-list .domain-item { + height: 0.6rem; + display: flex; + justify-content: space-between; + align-items: center; + border-bottom: 0.01rem solid #ededed; + padding: 0 0.33rem 0 0.3rem; + transition: background-color 0.25s ease; +} +.domain-box .domain-content .domain-left .domain-one .domain-list .domain-item:hover { + background-color: #f5f7fa; +} +.domain-box .domain-content .domain-left .domain-one .domain-list .domain-item .item-left .domain-name { + font-size: 0.16rem; + color: #2B2B2B; +} +.domain-box .domain-content .domain-left .domain-one .domain-list .domain-item .item-left .domain-status { + margin-left: 0.42rem; + font-size: 0.13rem; + color: rgba(0, 0, 0, 0.6); +} +.domain-box .domain-content .domain-left .domain-one .domain-list .domain-item .item-right { + display: flex; + align-items: center; +} +.domain-box .domain-content .domain-left .domain-one .domain-list .domain-item .item-right .premium-type { + padding: 0.06rem 0.12rem; + margin-right: 0.25rem; + font-size: 0.14rem; + color: #8692b0; + border-radius: 0.16rem 0.16rem 0.16rem 0.16rem; + background: #f3f3f5; +} +.domain-box .domain-content .domain-left .domain-one .domain-list .domain-item .item-right .whois-box { + font-size: 0.14rem; + color: #2B2B2B; +} +.domain-box .domain-content .domain-left .domain-one .domain-list .domain-item .item-right .whois-box:hover { + color: var(--color-primary); + cursor: pointer; +} +.domain-box .domain-content .domain-left .domain-one .domain-list .domain-item .item-right .pirce-box { + cursor: pointer; +} +.domain-box .domain-content .domain-left .domain-one .domain-list .domain-item .item-right .pirce-box .original-price { + color: #8692b0; + font-size: 0.12rem; + text-decoration: line-through; + margin-right: 0.17rem; +} +.domain-box .domain-content .domain-left .domain-one .domain-list .domain-item .item-right .pirce-box .now-price { + font-size: 0.12rem; + color: var(--color-price-text); +} +.domain-box .domain-content .domain-left .domain-one .domain-list .domain-item .item-right .add-btn { + margin-left: 0.4rem; + height: 0.36rem; +} +.domain-box .domain-content .domain-left .batch-box { + height: 100%; +} +.domain-box .domain-content .domain-left .batch-box .batch-main { + height: 100%; + display: flex; + flex-direction: column; +} +.domain-box .domain-content .domain-left .batch-box .batch-main .batch-search { + margin-top: 0.24rem; + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + height: 100%; + background: #ffffff; + border: 0.01rem solid #EAEAEA; + border-radius: 0.08rem; +} +.domain-box .domain-content .domain-left .batch-box .batch-main .batch-search img { + width: 0.58rem; + height: 0.57rem; +} +.domain-box .domain-content .domain-left .batch-box .batch-main .batch-search p { + text-align: center; + margin-top: 0.19rem; + font-size: 0.18rem; + color: #2B2B2B; +} +.domain-box .domain-content .domain-left .batch-box .batch-main .search-title { + font-size: 0.16rem; + color: #2B2B2B; +} +.domain-box .domain-content .domain-left .batch-box .batch-main .avail-list { + margin-top: 0.24rem; + background: #ffffff; + border: 0.01rem solid #EAEAEA; + border-radius: 0.08rem 0.08rem 0 0; + border-bottom: none; + max-height: 5rem; + overflow-y: auto; +} +.domain-box .domain-content .domain-left .batch-box .batch-main .el-collapse { + border: none; +} +.domain-box .domain-content .domain-left .batch-box .batch-main .batch-item { + height: 0.64rem; + box-sizing: border-box; + display: flex; + justify-content: space-between; + align-items: center; + border-bottom: 0.01rem solid #EAEAEA; + padding: 0 0.24rem; + transition: background-color 0.25s ease; +} +.domain-box .domain-content .domain-left .batch-box .batch-main .batch-item:hover { + background-color: #f5f7fa; +} +.domain-box .domain-content .domain-left .batch-box .batch-main .batch-item:nth-last-of-type(1) { + border-bottom: none; +} +.domain-box .domain-content .domain-left .batch-box .batch-main .batch-item .item-left .domain-name { + font-size: 0.14rem; + color: #2B2B2B; +} +.domain-box .domain-content .domain-left .batch-box .batch-main .batch-item .item-left .domain-status { + margin-left: 0.42rem; + font-size: 0.14rem; + color: rgba(0, 0, 0, 0.6); +} +.domain-box .domain-content .domain-left .batch-box .batch-main .batch-item .item-right { + display: flex; + align-items: center; +} +.domain-box .domain-content .domain-left .batch-box .batch-main .batch-item .item-right .premium-type { + padding: 0.06rem 0.12rem; + margin-right: 0.25rem; + font-size: 0.14rem; + color: #8692b0; + border-radius: 0.16rem 0.16rem 0.16rem 0.16rem; + background: #f3f3f5; +} +.domain-box .domain-content .domain-left .batch-box .batch-main .batch-item .item-right .whois-box { + font-size: 0.14rem; + color: #2B2B2B; +} +.domain-box .domain-content .domain-left .batch-box .batch-main .batch-item .item-right .whois-box:hover { + color: var(--color-primary); + cursor: pointer; +} +.domain-box .domain-content .domain-left .batch-box .batch-main .batch-item .item-right .pirce-box { + cursor: pointer; +} +.domain-box .domain-content .domain-left .batch-box .batch-main .batch-item .item-right .pirce-box .oir-price { + color: #8692b0; + font-size: 0.14rem; + text-decoration: line-through; + margin-right: 0.17rem; +} +.domain-box .domain-content .domain-left .batch-box .batch-main .batch-item .item-right .pirce-box .now-price { + font-size: 0.12rem; + color: var(--color-price-text); +} +.domain-box .domain-content .domain-left .batch-box .batch-main .batch-item .item-right .pirce-box .el-icon-arrow-down { + font-size: 0.12rem; + color: #8692b0; +} +.domain-box .domain-content .domain-left .batch-box .batch-main .batch-item .item-right .add-btn { + margin-left: 0.4rem; + border-radius: 0.04rem; +} +.domain-box .domain-content .domain-left .batch-box .batch-main .all-check { + display: flex; + justify-content: space-between; + align-items: center; + box-sizing: border-box; + padding: 0 0.24rem; + height: 0.64rem; + background: #F9F9F9; + color: #2B2B2B; + font-size: 0.14rem; + border: 0.01rem solid #EAEAEA; + border-top: none; + border-radius: 0 0 0.08rem 0.08rem; +} +.domain-box .domain-content .domain-left .batch-box .batch-main .all-check .el-button { + color: #ffffff; + font-size: 0.14rem; + background: var(--color-primary); +} +.domain-box .domain-content .domain-left .batch-box .unavail-title { + width: 100%; + font-size: 0.16rem; + color: #2B2B2B; + display: flex; + align-items: center; + justify-content: space-between; +} +.domain-box .domain-content .domain-left .batch-box .unavail-title .open-text { + cursor: pointer; + font-size: 0.14rem; + color: var(--color-primary); +} +.domain-box .domain-content .domain-left .batch-box .unavail-list { + margin-top: 0.24rem; + display: flex; + flex-wrap: wrap; + border-radius: 0.08rem; + border: 0.01rem solid #e6e7eb; +} +.domain-box .domain-content .domain-left .batch-box .unavail-list .unavail-item { + width: 50%; + height: 0.64rem; + box-sizing: border-box; + padding: 0.17rem 0.24rem; + border-bottom: 0.01rem solid #ededed; +} +.domain-box .domain-content .domain-left .batch-box .unavail-list .unavail-item:nth-child(odd) { + position: relative; +} +.domain-box .domain-content .domain-left .batch-box .unavail-list .unavail-item:nth-child(odd)::after { + content: ""; + position: absolute; + top: 50%; + right: 0; + transform: translateY(-50%); + width: 0.01rem; + height: 0.32rem; + background: #ededed; +} +.domain-box .domain-content .domain-left .batch-box .unavail-list .unavail-item .unavail-name { + font-size: 0.14rem; + color: #2B2B2B; +} +.domain-box .domain-content .domain-left .batch-box .unavail-list .unavail-item .unavail-reason { + margin-left: 0.4rem; + color: rgba(0, 0, 0, 0.6); + font-size: 0.14rem; +} +.domain-box .domain-content .domain-right { + box-sizing: border-box; + width: 5.33rem; + height: 7rem; + flex-shrink: 0; +} +.domain-box .domain-content .domain-right .car-top { + display: flex; + justify-content: space-between; + color: #2B2B2B; + font-size: 0.16rem; +} +.domain-box .domain-content .domain-right .car-top .clear-car { + cursor: pointer; + color: #A2A2A2; +} +.domain-box .domain-content .domain-right .car-top .clear-car .icon { + fill: #A2A2A2; + margin-right: 0.08rem; +} +.domain-box .domain-content .domain-right .car-top .clear-car:hover { + color: var(--color-danger); +} +.domain-box .domain-content .domain-right .car-top .clear-car:hover .icon { + fill: var(--color-danger); +} +.domain-box .domain-content .domain-right .car-box { + box-sizing: border-box; + margin-top: 0.24rem; + height: 5.3rem; + border-radius: 8px; + border: 0.01rem solid #EAEAEA; + background: #ffffff; + overflow-y: auto; +} +.domain-box .domain-content .domain-right .car-no { + height: 100%; + display: flex; + justify-content: center; + align-items: center; + font-size: 0.14rem; + color: #8692b0; +} +.domain-box .domain-content .domain-right .car-list .car-item { + padding: 0.16rem 0.32rem; + border-bottom: 0.01rem solid #F6F7FB; +} +.domain-box .domain-content .domain-right .car-list .car-item:hover { + background: #F7F8F9; +} +.domain-box .domain-content .domain-right .car-list .car-item:hover .car-del { + display: block; +} +.domain-box .domain-content .domain-right .car-list .car-item:nth-last-of-type(1) { + border-bottom: none; +} +.domain-box .domain-content .domain-right .car-list .car-item .caritem-top, +.domain-box .domain-content .domain-right .car-list .car-item .car-bottom { + display: flex; + justify-content: space-between; + align-items: center; +} +.domain-box .domain-content .domain-right .car-list .car-item .car-bottom { + color: #2B2B2B; + margin-top: 0.16rem; +} +.domain-box .domain-content .domain-right .car-list .car-item .car-name { + display: flex; + align-items: center; + column-gap: 0.16rem; +} +.domain-box .domain-content .domain-right .car-list .car-item .car-name .shop-name { + font-size: 0.14rem; + color: #2B2B2B; +} +.domain-box .domain-content .domain-right .car-list .car-item .car-del { + display: none; + cursor: pointer; + color: #9E9E9E; + font-size: 0.14rem; +} +.domain-box .domain-content .domain-right .car-list .car-item .car-del .icon { + fill: #9E9E9E; + margin-right: 0.04rem; +} +.domain-box .domain-content .domain-right .car-list .car-item .car-del:hover { + color: var(--color-danger); +} +.domain-box .domain-content .domain-right .car-list .car-item .car-del:hover .icon { + fill: var(--color-danger); + margin-right: 0.04rem; +} +.domain-box .domain-content .domain-right .car-list .car-item .car-year .el-select { + width: 0.96rem; + height: 0.36rem; + border-radius: 0.04rem; +} +.domain-box .domain-content .domain-right .car-list .car-item .car-price { + font-size: 0.14rem; + color: var(--color-price-text); +} +.car-money { + padding: 0 0.2rem; + display: flex; + justify-content: space-between; + align-items: center; + margin-top: 0.26rem; + font-size: 0.16rem; + font-weight: 400; + color: rgba(0, 0, 0, 0.9); +} +.car-money .mon-right { + font-size: 0.14rem; +} +.car-money .mon-right p { + margin: 0; +} +.car-money .mon-right .original-price { + text-decoration: line-through; + color: #999; +} +.car-money .mon-right .original-price .hide { + visibility: hidden; +} +.car-money .money-text { + color: var(--color-price-text); +} +.car-settle { + margin-top: 0.2rem; +} +.car-settle .settle-btn { + width: 100%; + background: var(--color-primary); + font-size: 0.16rem; + color: rgba(255, 255, 255, 0.9); + border: none; + border-radius: 0; +} +.price-list { + display: flex; + font-size: 0.14rem; +} +.price-list .price-item > div { + width: 0.85rem; + height: 0.45rem; + display: flex; + justify-content: center; + align-items: center; +} +.price-list .price-item .price-year { + background: #f8fafc; +} +.price-list .price-item .price-new { + border-bottom: 1px solid #e6e7eb; +} +.blue-a-text { + color: var(--color-primary); + cursor: pointer; +} +.up-dialog .el-dialog__header { + display: none; +} +.up-dialog .el-dialog__body { + padding: 0.6rem 0.8rem; +} +.up-dialog .dia-title { + font-size: 0.24rem; + color: #171725; +} +.up-dialog .dia-concent { + margin-top: 0.3rem; +} +.up-dialog .dia-concent .up-tips { + font-size: 0.16rem; + color: #1e2736; +} +.up-dialog .dia-concent .file-box { + margin-top: 0.1rem; + display: flex; + align-items: center; +} +.up-dialog .dia-concent .file-box .file-name { + flex: 1; + border: 0.01rem solid #e6e7eb; + height: 0.46rem; + line-height: 0.46rem; + padding: 0 0.16rem; + background: rgba(102, 107, 128, 0.08); + font-size: 0.15rem; +} +.up-dialog .dia-concent .file-box .file-name:focus { + outline: none; + border: 0.01rem solid #e6e7eb; +} +.up-dialog .dia-concent .file-box .file-btn { + display: flex; + align-items: center; + justify-content: center; + padding: 0.12rem 0.28rem; + height: 0.46rem; + box-sizing: border-box; + color: #4e5259; + font-size: 0.16rem; + border: 0.01rem solid #e6e7eb; + margin-left: 0.1rem; + cursor: pointer; +} +.up-dialog .dia-foter { + display: flex; + justify-content: flex-end; + align-items: center; + margin-top: 0.4rem; +} +.up-dialog .dia-foter .confim-btn, +.up-dialog .dia-foter .cancel-btn { + min-width: 1.12rem; + border: none; + border-radius: 0.03rem 0.03rem 0.03rem 0.03rem; + font-size: 0.16rem; +} +.up-dialog .dia-foter .confim-btn { + background: var(--color-primary); + color: rgba(255, 255, 255, 0.9); +} +.up-dialog .dia-foter .cancel-btn { + margin-left: 0.12rem; + background: #e7e7e7; + color: #1e2736; +} +.el-popover { + max-width: none; +} +@media screen and (max-width: 915px) { + .goods-list-div { + grid-template-columns: repeat(2, 1fr); + } +} +@media screen and (max-width: 750px) { + .goods-list-div { + grid-template-columns: repeat(1, 1fr); + } + .search-box .el-select .el-input__inner { + height: 40px !important; + line-height: 40px; + } + .second-select .el-input__inner { + height: 40px !important; + line-height: 40px; + } + .search-input .el-input__inner { + height: 40px !important; + line-height: 40px; + } + .search-btn { + height: 40px; + } +} diff --git a/clientarea/cart/hgcart/css/goodsList.less b/clientarea/cart/hgcart/css/goodsList.less new file mode 100644 index 0000000..22e6f2e --- /dev/null +++ b/clientarea/cart/hgcart/css/goodsList.less @@ -0,0 +1,1207 @@ +.main-title { + font-size: 0.28rem; + color: #171725; +} + +.cart-des { + padding: .1rem; + border-radius: .03rem; + border: 1px solid #e6e7eb; + box-sizing: border-box; + overflow-y: auto; + margin-bottom: 0.24rem; + + * { + all: revert; + } + +} + + +.main-content-box { + box-sizing: border-box; + padding-bottom: 0.1rem; + width: 100%; + border-radius: 0.03rem; +} + +.search-box { + display: flex; + justify-content: center; + align-items: center; +} + +.search-box .el-select { + width: 3.2rem; + font-size: 0.15rem; +} + +.search-box .el-select .el-input__inner { + height: 0.46rem !important; + + line-height: 0.46rem; +} + +.search-box .el-select .el-input__suffix .el-input__icon { + line-height: 1; +} + +.second-select { + margin: 0 0.1rem; +} + +.second-select .el-input__inner { + height: 0.46rem; + line-height: 0.46rem; +} + +.search-input { + width: 3.2rem; +} + +.search-input .el-input__inner { + height: 0.46rem !important; + line-height: 0.46rem; +} + +.search-btn { + margin-left: 0.1rem; + width: 0.8rem; + height: 0.46rem; + background: var(--color-primary); + border-radius: 0.03rem; + border: none; + font-size: 0.16rem; + color: rgba(255, 255, 255, 0.9); +} + +.second-desc { + height: 0.4rem; + font-size: 0.14rem; + color: var(--color-danger); + background: rgba(220, 45, 45, 0.1); + margin-top: 0.24rem; + border-radius: 0.04rem; +} + +.shopping-box { + box-sizing: border-box; + margin-top: 0.24rem; + min-height: 3rem; +} + +.goods-list-div { + width: 100%; + display: grid; + grid-template-columns: repeat(4, 1fr); + row-gap: 0.2rem; + column-gap: 0.2rem; +} + + + +.shopping-item { + position: relative; + box-sizing: border-box; + min-height: 2.75rem; + border: 1px solid #EDEDED; + border-radius: 0.08rem; + overflow: hidden; + display: flex; + flex-direction: column; + justify-content: space-between; + padding-bottom: 0.16rem; + + .client-box { + position: absolute; + top: 0; + right: 0; + background-color: var(--color-primary); + padding: 0 0.08rem; + color: #fff; + font-size: 14px; + border-radius: 0px 0px 0px 8px; + } + + .goods-name { + margin-top: 0.18rem; + display: flex; + justify-content: space-between; + align-items: center; + column-gap: 0.3rem; + padding: 0 0.16rem; + + .goods-name-text { + // color: #485169; + font-size: 16px; + font-weight: 700; + flex: 1; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + + .qty-box { + font-size: 12px; + color: #CFD2E1; + flex-shrink: 0; + position: relative; + + + + img { + position: absolute; + top: -0.2rem; + right: 0; + width: 0.55rem; + height: 0.48rem; + } + + } + + &.sold-out { + .goods-name-text { + color: #CFD2E1; + } + + .qty-box { + width: 0.55rem; + } + } + } + + .goods-content { + display: flex; + flex-direction: column; + justify-content: space-between; + } + + .goods-active { + margin-top: 0.12rem; + padding: 0 0.16rem; + display: flex; + flex-wrap: wrap; + column-gap: 0.08rem; + row-gap: 0.08rem; + + .active-name { + font-size: 12px; + color: var(--color-primary); + background: rgba(57, 124, 252, 0.1); + padding: 0.03rem 0.08rem; + border-radius: 2px; + } + } + + .goods-tag { + box-sizing: border-box; + height: 0.36rem; + display: flex; + flex-wrap: wrap; + align-items: center; + row-gap: 0.08rem; + column-gap: 0.16rem; + background: rgba(57, 124, 252, 0.15); + padding: 0 .16rem; + + .tag-item { + position: relative; + font-size: 12px; + flex-shrink: 0; + color: var(--color-primary); + padding-left: 0.08rem; + + &::after { + content: ''; + position: absolute; + top: 50%; + left: 0; + width: 0.04rem; + height: 0.04rem; + transform: translateY(-50%); + border-radius: 50%; + background: rgba(57, 124, 252, 0.45); + } + } + } + + .goods-description { + box-sizing: border-box; + padding: 0.24rem 0.21rem 0.22rem 0.16rem; + max-height: 400px; + min-height: 150px; + flex: 1; + overflow: auto; + font-size: 14px; + white-space: normal; + background: #F4F4F4; + + + * { + all: revert; + } + + ul { + padding-left: 0.16rem; + margin: 0; + } + + img { + max-width: 100%; + } + + &::-webkit-scrollbar { + /*滚动条整体样式*/ + width: 0px; + } + + &:hover { + &::-webkit-scrollbar { + width: 4px; + } + } + } + + + .price-box { + margin-top: 0.18rem; + padding: 0 0.16rem; + display: flex; + justify-content: space-between; + align-items: center; + column-gap: 0.1rem; + + .price-box-left { + text-align: right; + display: flex; + align-items: flex-end; + column-gap: 0.04rem; + } + + + .original-price { + font-size: 12px; + color: #CFD2E1; + text-decoration: line-through; + } + + .item-price { + font-size: 24px; + color: var(--color-price-text); + + .item-price-prefix { + font-size: 12px; + } + + .item-price-cycle { + font-size: 14px; + color: #485169; + } + } + + .buy-btn { + height: 0.3rem; + } + + } +} + + +.tips { + color: #8692b0; + font-size: 0.13rem; + text-align: center; +} + +.domain-box { + .register-type { + display: flex; + align-items: center; + + .el-divider { + background-color: #D8D8D8; + margin: 0 0.24rem; + } + + .reg-ridio { + font-size: 0.14rem; + color: #646464; + cursor: pointer; + } + + .isActice { + color: var(--color-primary); + } + } + + .domain-search { + margin-top: 0.32rem; + position: relative; + display: flex; + align-items: center; + + .el-input { + height: 0.56rem; + + .el-input__inner { + height: 0.56rem; + line-height: 0.56rem; + } + } + + .el-input-group__append { + padding: 0; + background: #ffffff; + border-right: 0; + border-top-right-radius: 0; + border-bottom-right-radius: 0; + } + + .input-btn { + width: 1.7rem; + } + + .suffix-box { + width: 1.7rem; + display: flex; + justify-content: center; + align-items: center; + color: #2B2B2B; + font-size: 0.16rem; + cursor: pointer; + + .el-icon-arrow-down { + font-size: 0.14rem; + color: rgba(134, 146, 176, 1); + margin-left: 0.1rem; + } + } + + .search-button { + height: 0.56rem; + padding-left: 0.7rem; + padding-right: 0.7rem; + border: none; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + background: var(--color-primary); + color: #ffffff; + font-size: 0.16rem; + } + + .suffix-list { + // 定位在输入框下方 + z-index: 2; + position: absolute; + top: 0.56rem; + left: 0; + display: flex; + flex-wrap: wrap; + width: calc(100% - 2.7rem); + padding: 0.3rem 0.23rem 0.3rem 0.46rem; + background: #feffff; + box-shadow: 0rem 0.05rem 0.1rem 0.01rem rgba(0, 0, 0, 0.1); + border-radius: 0.03rem 0.03rem 0.03rem 0.03rem; + + .suffix-item { + margin-right: 0.16rem; + margin-bottom: 0.16rem; + width: 1.1rem; + height: 0.4rem; + border: 0.01rem solid #e6eaed; + display: flex; + justify-content: center; + align-items: center; + font-size: 0.16rem; + color: #2B2B2B; + cursor: pointer; + + &:hover { + background: rgba(0, 88, 255, 0.08); + } + } + + .suffix-active { + background: rgba(0, 88, 255, 0.08); + border: 0.01rem solid var(--color-primary); + color: var(--color-primary); + } + } + } + + .batch-search-box { + margin-top: 0.32rem; + + .batch-tips { + box-sizing: border-box; + color: #8692b0; + font-size: 0.14rem; + padding: 0.16rem; + border-radius: 0.04rem; + border: 0.01rem solid #EAEAEA; + + .input-batch { + .el-textarea__inner { + height: 1.3rem; + border: none; + padding: 0; + } + } + + + } + + .batch-btn { + margin-top: 0.16rem; + display: flex; + align-items: center; + justify-content: space-between; + + .upload-btn { + display: flex; + align-items: center; + column-gap: 0.08rem; + font-size: 0.12rem; + color: var(--color-primary); + cursor: pointer; + + } + + + .el-button { + height: 0.36rem; + } + } + + } + + + + .domain-content { + margin-top: 0.24rem; + display: flex; + column-gap: 0.4rem; + + .domain-left { + flex: 1; + + .domain-one { + height: 100%; + + .domain-one-list { + height: 100%; + display: flex; + flex-direction: column; + + } + + .search-title { + display: flex; + align-items: center; + justify-content: space-between; + font-size: 0.16rem; + color: #2B2B2B; + + .search-fillter { + display: flex; + align-items: center; + column-gap: 0.08rem; + cursor: pointer; + + &.is_select { + color: var(--color-primary); + } + } + } + + .fillter-list { + margin-top: 0.24rem; + border-radius: 8px; + box-sizing: border-box; + border: 1px solid #EAEAEA; + padding: 0.24rem; + display: flex; + flex-wrap: wrap; + gap: 0.24rem; + + .fillter-item { + width: 1rem; + height: 0.4rem; + border: 0.01rem solid #e6eaed; + display: flex; + justify-content: center; + align-items: center; + font-size: 0.14rem; + color: #2B2B2B; + cursor: pointer; + border-radius: .04rem; + + &:hover { + background: rgba(0, 88, 255, 0.08); + } + + &.is_select { + background: rgba(0, 88, 255, 0.08); + border-color: var(--color-primary); + color: var(--color-primary); + } + } + } + + .start-search { + margin-top: 0.24rem; + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + height: 93%; + border-radius: 8px; + border: 0.01rem solid #EAEAEA; + + img { + width: 0.58rem; + height: 0.57rem; + } + + p { + text-align: center; + margin-top: 0.19rem; + font-size: 0.18rem; + color: #2B2B2B; + } + } + + .domain-list { + margin-top: 0.24rem; + background: #ffffff; + border: 1px solid #EAEAEA; + border-radius: 8px; + flex: 1; + overflow-y: auto; + + .domain-item { + height: 0.6rem; + display: flex; + justify-content: space-between; + align-items: center; + border-bottom: 0.01rem solid #ededed; + padding: 0 0.33rem 0 0.3rem; + transition: background-color 0.25s ease; + + // hover时的样式 + &:hover { + background-color: #f5f7fa; + } + + .item-left { + .domain-name { + font-size: 0.16rem; + color: #2B2B2B; + } + + .domain-status { + margin-left: 0.42rem; + font-size: 0.13rem; + color: rgba(0, 0, 0, 0.6); + } + } + + .item-right { + display: flex; + align-items: center; + + .premium-type { + padding: 0.06rem 0.12rem; + margin-right: 0.25rem; + font-size: 0.14rem; + color: #8692b0; + border-radius: 0.16rem 0.16rem 0.16rem 0.16rem; + background: #f3f3f5; + } + + .whois-box { + font-size: 0.14rem; + color: #2B2B2B; + + &:hover { + color: var(--color-primary); + cursor: pointer; + } + } + + .pirce-box { + cursor: pointer; + + .original-price { + color: #8692b0; + font-size: 0.12rem; + text-decoration: line-through; + margin-right: 0.17rem; + } + + .now-price { + font-size: 0.12rem; + color: var(--color-price-text); + } + + + } + + .add-btn { + margin-left: 0.4rem; + height: 0.36rem; + } + } + } + } + } + + .batch-box { + height: 100%; + + + .batch-main { + height: 100%; + display: flex; + flex-direction: column; + + .batch-search { + margin-top: 0.24rem; + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + height: 100%; + background: #ffffff; + border: 0.01rem solid #EAEAEA; + border-radius: 0.08rem; + + img { + width: 0.58rem; + height: 0.57rem; + } + + p { + text-align: center; + margin-top: 0.19rem; + font-size: 0.18rem; + color: #2B2B2B; + } + } + + .search-title { + font-size: 0.16rem; + color: #2B2B2B; + } + + .avail-list { + margin-top: 0.24rem; + background: #ffffff; + border: 0.01rem solid #EAEAEA; + border-radius: 0.08rem 0.08rem 0 0; + border-bottom: none; + max-height: 5rem; + overflow-y: auto; + + } + + .el-collapse { + border: none; + } + + .batch-item { + height: 0.64rem; + box-sizing: border-box; + display: flex; + justify-content: space-between; + align-items: center; + border-bottom: 0.01rem solid #EAEAEA; + padding: 0 0.24rem; + transition: background-color 0.25s ease; + + // hover时的样式 + &:hover { + background-color: #f5f7fa; + } + + &:nth-last-of-type(1) { + border-bottom: none; + } + + .item-left { + .domain-name { + font-size: 0.14rem; + color: #2B2B2B; + } + + .domain-status { + margin-left: 0.42rem; + font-size: 0.14rem; + color: rgba(0, 0, 0, 0.6); + } + } + + .item-right { + display: flex; + align-items: center; + + .premium-type { + padding: 0.06rem 0.12rem; + margin-right: 0.25rem; + font-size: 0.14rem; + color: #8692b0; + border-radius: 0.16rem 0.16rem 0.16rem 0.16rem; + background: #f3f3f5; + } + + .whois-box { + font-size: 0.14rem; + color: #2B2B2B; + + &:hover { + color: var(--color-primary); + cursor: pointer; + } + } + + .pirce-box { + cursor: pointer; + + .oir-price { + color: #8692b0; + font-size: 0.14rem; + text-decoration: line-through; + margin-right: 0.17rem; + } + + .now-price { + font-size: 0.12rem; + color: var(--color-price-text); + } + + .el-icon-arrow-down { + font-size: 0.12rem; + color: rgba(134, 146, 176, 1); + } + } + + .add-btn { + margin-left: 0.4rem; + border-radius: 0.04rem; + } + } + } + + .all-check { + display: flex; + justify-content: space-between; + align-items: center; + box-sizing: border-box; + padding: 0 0.24rem; + height: 0.64rem; + background: #F9F9F9; + color: #2B2B2B; + font-size: 0.14rem; + border: 0.01rem solid #EAEAEA; + border-top: none; + border-radius: 0 0 0.08rem 0.08rem; + + .el-button { + color: #ffffff; + font-size: 0.14rem; + background: var(--color-primary); + } + } + } + + .unavail-title { + width: 100%; + font-size: 0.16rem; + color: #2B2B2B; + display: flex; + align-items: center; + justify-content: space-between; + + .open-text { + cursor: pointer; + font-size: 0.14rem; + color: var(--color-primary); + } + } + + .unavail-list { + margin-top: 0.24rem; + display: flex; + flex-wrap: wrap; + border-radius: 0.08rem; + border: 0.01rem solid #e6e7eb; + + .unavail-item { + // 两个一行 + width: 50%; + height: 0.64rem; + box-sizing: border-box; + padding: 0.17rem 0.24rem; + border-bottom: 0.01rem solid #ededed; + + // 奇数的后面有一条竖线 + &:nth-child(odd) { + position: relative; + + &::after { + content: ""; + position: absolute; + top: 50%; + right: 0; + transform: translateY(-50%); + width: 0.01rem; + height: 0.32rem; + background: #ededed; + } + } + + .unavail-name { + font-size: 0.14rem; + color: #2B2B2B; + } + + .unavail-reason { + margin-left: 0.4rem; + color: rgba(0, 0, 0, 0.6); + font-size: 0.14rem; + } + } + } + } + } + + .domain-right { + box-sizing: border-box; + width: 5.33rem; + height: 7rem; + flex-shrink: 0; + + .car-top { + display: flex; + justify-content: space-between; + color: #2B2B2B; + font-size: 0.16rem; + + + .clear-car { + cursor: pointer; + color: #A2A2A2; + + .icon { + fill: #A2A2A2; + margin-right: 0.08rem; + } + + &:hover { + .icon { + fill: var(--color-danger); + } + + color: var(--color-danger); + } + } + } + + .car-box { + box-sizing: border-box; + margin-top: 0.24rem; + height: 5.3rem; + border-radius: 8px; + border: 0.01rem solid #EAEAEA; + background: #ffffff; + overflow-y: auto; + } + + .car-no { + height: 100%; + display: flex; + justify-content: center; + align-items: center; + font-size: 0.14rem; + color: rgba(134, 146, 176, 1); + } + + .car-list { + .car-item { + padding: 0.16rem 0.32rem; + border-bottom: 0.01rem solid #F6F7FB; + + &:hover { + background: #F7F8F9; + + .car-del { + display: block; + } + } + + &:nth-last-of-type(1) { + border-bottom: none; + } + + .caritem-top, + .car-bottom { + display: flex; + justify-content: space-between; + align-items: center; + } + + .car-bottom { + color: #2B2B2B; + margin-top: 0.16rem; + } + + .car-name { + display: flex; + align-items: center; + column-gap: 0.16rem; + + .shop-name { + font-size: 0.14rem; + color: #2B2B2B; + } + } + + .car-del { + display: none; + cursor: pointer; + color: #9E9E9E; + font-size: 0.14rem; + + .icon { + fill: #9E9E9E; + margin-right: 0.04rem; + } + + &:hover { + + .icon { + fill: var(--color-danger); + margin-right: 0.04rem; + } + + color: var(--color-danger); + } + } + + .car-year { + .el-select { + width: 0.96rem; + height: 0.36rem; + border-radius: 0.04rem; + } + } + + .car-price { + font-size: 0.14rem; + color: var(--color-price-text); + } + } + } + } + } +} + +.car-money { + padding: 0 0.2rem; + display: flex; + justify-content: space-between; + align-items: center; + margin-top: 0.26rem; + font-size: 0.16rem; + font-weight: 400; + color: rgba(0, 0, 0, 0.9); + + .mon-right { + font-size: 0.14rem; + + p { + margin: 0; + } + + .original-price { + text-decoration: line-through; + color: #999; + + .hide { + visibility: hidden; + } + } + } + + .money-text { + color: var(--color-price-text); + } +} + +.car-settle { + margin-top: 0.2rem; + + .settle-btn { + width: 100%; + background: var(--color-primary); + font-size: 0.16rem; + color: rgba(255, 255, 255, 0.9); + border: none; + border-radius: 0; + } +} + +.price-list { + display: flex; + font-size: 0.14rem; + + .price-item { + >div { + width: 0.85rem; + height: 0.45rem; + display: flex; + justify-content: center; + align-items: center; + } + + .price-year { + background: rgb(248, 250, 252); + } + + .price-new { + border-bottom: 1px solid #e6e7eb; + } + } +} + +.blue-a-text { + color: var(--color-primary); + cursor: pointer; +} + +.up-dialog { + .el-dialog__header { + display: none; + } + + .el-dialog__body { + padding: 0.6rem 0.8rem; + } + + .dia-title { + font-size: 0.24rem; + color: #171725; + } + + .dia-concent { + margin-top: 0.3rem; + + .up-tips { + font-size: 0.16rem; + color: #1e2736; + } + + .file-box { + margin-top: 0.1rem; + display: flex; + align-items: center; + + .file-name { + flex: 1; + border: 0.01rem solid #e6e7eb; + height: 0.46rem; + line-height: 0.46rem; + padding: 0 0.16rem; + background: rgba(102, 107, 128, 0.08); + font-size: 0.15rem; + + // 选中时的样式 + &:focus { + outline: none; + border: 0.01rem solid #e6e7eb; + } + } + + .file-btn { + display: flex; + align-items: center; + justify-content: center; + padding: 0.12rem 0.28rem; + height: 0.46rem; + box-sizing: border-box; + color: #4e5259; + font-size: 0.16rem; + border: 0.01rem solid #e6e7eb; + margin-left: 0.1rem; + cursor: pointer; + } + } + } + + .dia-foter { + display: flex; + justify-content: flex-end; + align-items: center; + margin-top: 0.4rem; + + .confim-btn, + .cancel-btn { + min-width: 1.12rem; + border: none; + border-radius: 0.03rem 0.03rem 0.03rem 0.03rem; + font-size: 0.16rem; + } + + .confim-btn { + background: var(--color-primary); + color: rgba(255, 255, 255, 0.9); + } + + .cancel-btn { + margin-left: 0.12rem; + background: #e7e7e7; + color: #1e2736; + } + } +} + +.el-popover { + max-width: none; +} + + + + +@media screen and (max-width: 915px) { + .goods-list-div { + grid-template-columns: repeat(2, 1fr); + } + + +} + +@media screen and (max-width: 750px) { + + .goods-list-div { + grid-template-columns: repeat(1, 1fr); + } + + .search-box .el-select .el-input__inner { + height: 40px !important; + line-height: 40px; + } + + .second-select .el-input__inner { + height: 40px !important; + line-height: 40px; + } + + .search-input .el-input__inner { + height: 40px !important; + line-height: 40px; + } + + .search-btn { + height: 40px; + } +} diff --git a/clientarea/cart/hgcart/css/goods_iframe.css b/clientarea/cart/hgcart/css/goods_iframe.css new file mode 100644 index 0000000..201ba12 --- /dev/null +++ b/clientarea/cart/hgcart/css/goods_iframe.css @@ -0,0 +1,34 @@ +.template { + height: 100%; +} +.config-box { + height: 100%; +} +.content { + height: 100%; + background: #fff; +} +.ifram-hiden { + display: none !important; +} +.l-empty { + width: 0 !important; +} +html { + font-size: 100px !important; +} +.template > .tit { + display: none; +} +.template .main-card { + max-width: inherit; +} +.common-config .common-box .order-right { + right: -0.2rem; +} +.config-box .f-order { + width: 100%; +} +.config-box .f-order .main-card { + height: 100%; +} diff --git a/clientarea/cart/hgcart/css/goods_iframe.less b/clientarea/cart/hgcart/css/goods_iframe.less new file mode 100644 index 0000000..c44d2ed --- /dev/null +++ b/clientarea/cart/hgcart/css/goods_iframe.less @@ -0,0 +1,42 @@ +.template { + height: 100%; +} + + +.config-box { + height: 100%; +} + +.content { + height: 100%; + background: #fff; +} + +.ifram-hiden { + display: none !important; +} + +.l-empty { + width: 0 !important; +} + +html { + font-size: 100px !important; +} +.template>.tit{ + display: none; +} + +.template .main-card{ + max-width: inherit; +} + +.common-config .common-box .order-right{ + right: -.2rem; +} +.config-box .f-order{ + width: 100%; + .main-card{ + height: 100%; + } +} diff --git a/clientarea/cart/hgcart/css/settlement.css b/clientarea/cart/hgcart/css/settlement.css new file mode 100644 index 0000000..1941226 --- /dev/null +++ b/clientarea/cart/hgcart/css/settlement.css @@ -0,0 +1,295 @@ +.main-title { + color: #171725; + font-size: 0.28rem; + margin-bottom: 0.4rem; +} +.table-name { + display: flex; + align-items: center; +} +.goods-name { + color: #171725; + font-weight: bold; + font-size: 0.16rem; +} +.goods-info { + margin-bottom: 0.1rem; + display: flex; + justify-content: space-between; + align-items: center; + flex-wrap: wrap; + font-size: 0.14rem; +} +.goodsInfo-price { + color: #1E2736; +} +.goodsInfo-name { + color: #757575; +} +.radio-box { + /* width: 80%; */ +} +.table-content { + font-size: 0.14rem; +} +.goods-table { + margin-top: 0.16rem; + width: 100%; + text-align: left; + border: 1px solid #E6E7EB; + border-radius: 0.03rem; + border-collapse: collapse; +} +.info-box { + width: 90%; +} +.goods-table thead { + line-height: 0.46rem; + background: #EEF4FF; + height: 0.46rem; + color: #757575; +} +.goods-table tbody tr td { + padding-top: 0.29rem; + padding-bottom: 0.3rem; +} +.description-box { + width: 5.5rem; +} +.price-box, +.num-box { + width: 2.4rem; +} +.total-box { + width: 1rem; +} +.delete-btn { + cursor: pointer; + font-size: 0.18rem; + color: #F0142F; +} +.item-price { + color: #171725; +} +.item-total { + font-weight: bold; + color: #171725; +} +.shopping-goods { + margin-bottom: 0.4rem; +} +.goods-box { + padding-bottom: 2.6rem; +} +.el-footer { + width: calc(100vw - 160px); + padding-left: 2.1rem; + padding-right: 1.2rem; + box-sizing: border-box; + display: flex; + align-items: center; + font-size: 0.18rem; + box-shadow: 0rem 0rem 0.2rem rgba(0, 0, 0, 0.15); + position: fixed; + bottom: 0; + background-color: #fff; + z-index: 9; +} +.footer-box { + width: 100%; + height: 100%; + margin: 0 auto; + max-width: 1500px; + display: flex; + align-items: center; + justify-content: flex-end; +} +.goodsInfo-type { + overflow: hidden; + text-overflow: ellipsis; + /* white-space: nowrap; */ + color: #1E2736; +} +.footer-left { + color: #333333; + font-size: 0.18rem; + display: flex; + justify-content: start; +} +.radio-box .el-radio .el-radio__input .el-radio__inner { + width: 0.24rem; + height: 0.24rem; + background-color: #fff; +} +.radio-box .el-radio .el-radio__input .el-radio__inner::after { + width: 0.12rem; + height: 0.12rem; + background: var(--color-primary); +} +.radio-box .el-radio { + margin-bottom: 0.2rem; +} +.footer-left .radio-box .el-radio .el-radio__label { + font-size: 0.16rem; + color: #1E2736; +} +.footer-right { + font-size: 0.14rem; + color: #1E2736; + display: flex; +} +.total-price { + font-weight: bold; + font-size: 0.28rem; + color: var(--color-price-text); +} +.text-red { + color: var(--color-warning); +} +.btn-box { + position: relative; + margin-left: 0.4rem; +} +.pay-text { + white-space: nowrap; + margin-right: 0.31rem; + color: #333333; + font-size: 0.18rem; + font-weight: 300; +} +.buy-btn { + width: 2.04rem; + height: 0.46rem; + background: var(--color-primary); + border-radius: 0.04rem; + font-size: 0.16rem; + font-weight: 500; + color: #FFFFFF; +} +.delect-btn { + margin: 0 0.4rem; +} +.all-check .el-checkbox__label { + color: #333333; + font-size: 0.18rem; +} +.qty-num { + color: #4E5259; + height: 0.13rem; + margin-top: 0.1rem; +} +.qty-tips { + margin-top: 0.2rem; + font-size: 0.13rem; + color: var(--color-primary); +} +.check-box { + margin-top: 0.1rem; +} +.bule-text { + cursor: pointer; + color: var(--color-primary); +} +.totalprice-box { + white-space: nowrap; +} +.red-text { + color: var(--color-danger); +} +.original-price { + text-decoration: line-through; + color: #999999; +} +.discount-codeNumber { + margin-top: 0.08rem; + font-size: 0.14rem; + font-weight: bold; + color: var(--color-discount-num); +} +.cash-box { + margin-top: 0.08rem; +} +.remove-discountCode { + margin-left: 0.09rem; +} +.cash-codeNumber { + margin-top: 0.08rem; + cursor: pointer; + height: 0.32rem; + line-height: 0.32rem; + background: rgba(240, 20, 46, 0.12); + padding: 0 0.14rem; + color: var(--color-cash-num); + font-weight: bold; + font-size: 0.14rem; +} +@media screen and (max-width: 750px) { + .footer-box { + display: block; + } + .table-content { + overflow-x: auto; + } + .description-box { + min-width: 5.5rem; + } + .price-box { + min-width: 2.4rem; + } + .num-box { + min-width: 2.4rem; + } + .total-box { + min-width: 2.4rem; + } + .el-footer { + padding: 0.3rem; + width: 100%; + height: auto !important; + } + .el-input .el-input__inner { + font-size: inherit !important; + } + .bule-text { + cursor: pointer; + color: var(--color-primary); + } + .check-box { + margin-top: 0.1rem; + } + .footer-left { + display: none; + flex-direction: column; + color: #333333; + font-size: 0.18rem; + } + .btn-box { + display: flex; + margin-left: 0; + flex-direction: column-reverse; + align-items: self-end; + } + .delect-btn { + margin: 0; + } + .footer-right { + font-size: 0.14rem; + color: #1E2736; + display: block; + text-align: right; + } + .delect-goods { + color: var(--color-danger); + } + .buy-btn { + margin-left: 0; + margin-top: 0.2rem; + width: 2.04rem; + height: 0.46rem; + background: var(--color-primary); + border-radius: 0.04rem; + font-size: 0.16rem; + font-weight: 500; + color: #FFFFFF; + } +} diff --git a/clientarea/cart/hgcart/css/settlement.less b/clientarea/cart/hgcart/css/settlement.less new file mode 100644 index 0000000..e4243cd --- /dev/null +++ b/clientarea/cart/hgcart/css/settlement.less @@ -0,0 +1,364 @@ +.main-title { + color: #171725; + font-size: 0.28rem; + margin-bottom: 0.4rem; +} + + + +.table-name { + display: flex; + align-items: center; +} + +.goods-name { + color: #171725; + font-weight: bold; + font-size: 0.16rem; +} + +.goods-info { + margin-bottom: 0.1rem; + display: flex; + justify-content: space-between; + align-items: center; + flex-wrap: wrap; + font-size: 0.14rem; +} + +.goodsInfo-price { + color: #1E2736; +} + +.goodsInfo-name { + color: #757575; +} + +.radio-box { + /* width: 80%; */ +} + +.table-content { + font-size: 0.14rem; +} + +.goods-table { + margin-top: 0.16rem; + width: 100%; + text-align: left; + border: 1px solid #E6E7EB; + border-radius: 0.03rem; + border-collapse: collapse; +} + +.info-box { + width: 90%; +} + +.goods-table thead { + line-height: 0.46rem; + background: #EEF4FF; + height: 0.46rem; + color: #757575; +} + +.goods-table tbody tr td { + padding-top: 0.29rem; + padding-bottom: 0.3rem; +} + +.description-box { + width: 5.5rem; +} + +.price-box, +.num-box { + width: 2.4rem; +} + +.total-box { + width: 1rem; +} + +.delete-btn { + cursor: pointer; + font-size: 0.18rem; + color: #F0142F; +} + +.item-price { + color: #171725; +} + +.item-total { + font-weight: bold; + color: #171725; +} + +.shopping-goods { + margin-bottom: 0.4rem; +} + +.goods-box { + padding-bottom: 2.6rem; +} + + +.el-footer { + width: calc(100vw - 160px); + padding-left: 2.1rem; + padding-right: 1.2rem; + box-sizing: border-box; + display: flex; + align-items: center; + font-size: 0.18rem; + box-shadow: 0rem 0rem 0.2rem rgba(0, 0, 0, 0.15); + position: fixed; + bottom: 0; + background-color: #fff; + z-index: 9; +} + +.footer-box { + width: 100%; + height: 100%; + margin: 0 auto; + max-width: 1500px; + display: flex; + align-items: center; + justify-content: flex-end; +} + +.goodsInfo-type { + overflow: hidden; + text-overflow: ellipsis; + /* white-space: nowrap; */ + color: #1E2736; +} + +.footer-left { + color: #333333; + font-size: 0.18rem; + display: flex; + justify-content: start; +} + +.radio-box .el-radio .el-radio__input .el-radio__inner { + width: 0.24rem; + height: 0.24rem; + background-color: #fff; +} + +.radio-box .el-radio .el-radio__input .el-radio__inner::after { + width: 0.12rem; + height: 0.12rem; + background: var(--color-primary); +} + +.radio-box .el-radio { + margin-bottom: 0.2rem; +} + +.footer-left .radio-box .el-radio .el-radio__label { + font-size: 0.16rem; + color: #1E2736; +} + +.footer-right { + font-size: 0.14rem; + color: #1E2736; + display: flex; +} + +.total-price { + font-weight: bold; + font-size: 0.28rem; + color: var(--color-price-text); +} + +.text-red { + color: var(--color-warning); +} + +.btn-box { + position: relative; + margin-left: 0.4rem; +} + + + +.pay-text { + white-space: nowrap; + margin-right: 0.31rem; + color: #333333; + font-size: 0.18rem; + font-weight: 300; +} + +.buy-btn { + width: 2.04rem; + height: 0.46rem; + background: var(--color-primary); + border-radius: 0.04rem; + font-size: 0.16rem; + font-weight: 500; + color: #FFFFFF; +} + +.delect-btn { + margin: 0 0.4rem; +} + +.all-check .el-checkbox__label { + color: #333333; + font-size: 0.18rem; +} + +.qty-num { + color: #4E5259; + height: 0.13rem; + margin-top: 0.1rem; +} + +.qty-tips { + margin-top: 0.2rem; + font-size: 0.13rem; + color: var(--color-primary); +} + +.check-box { + margin-top: 0.1rem; +} + +.bule-text { + cursor: pointer; + color: var(--color-primary); +} + +.totalprice-box { + white-space: nowrap; +} + +.red-text { + color: var(--color-danger); +} + +.original-price { + text-decoration: line-through; + color: #999999; +} + +.discount-codeNumber { + margin-top: 0.08rem; + font-size: 0.14rem; + font-weight: bold; + color: var(--color-discount-num); +} + +.cash-box { + margin-top: 0.08rem; +} + +.remove-discountCode { + margin-left: 0.09rem; +} + +.cash-codeNumber { + margin-top: 0.08rem; + cursor: pointer; + height: 0.32rem; + line-height: 0.32rem; + background: rgba(240, 20, 46, 0.12); + padding: 0 0.14rem; + color: var(--color-cash-num); + font-weight: bold; + font-size: 0.14rem; +} + +@media screen and (max-width: 750px) { + .footer-box { + display: block; + } + + .table-content { + overflow-x: auto; + } + + .description-box { + min-width: 5.5rem; + } + + .price-box { + min-width: 2.4rem; + } + + .num-box { + min-width: 2.4rem; + } + + .total-box { + min-width: 2.4rem; + } + + .el-footer { + padding: 0.3rem; + width: 100%; + height: auto !important; + } + + .el-input .el-input__inner { + font-size: inherit !important; + } + + .bule-text { + cursor: pointer; + color: var(--color-primary); + } + + .check-box { + margin-top: 0.1rem; + } + + .footer-left { + display: none; + flex-direction: column; + color: #333333; + font-size: 0.18rem; + } + + .btn-box { + display: flex; + margin-left: 0; + flex-direction: column-reverse; + align-items: self-end; + } + + .delect-btn { + margin: 0; + } + + .footer-right { + font-size: 0.14rem; + color: #1E2736; + display: block; + text-align: right; + } + + .delect-goods { + color: var(--color-danger); + } + + .buy-btn { + margin-left: 0; + margin-top: 0.2rem; + width: 2.04rem; + height: 0.46rem; + background: var(--color-primary); + border-radius: 0.04rem; + font-size: 0.16rem; + font-weight: 500; + color: #FFFFFF; + } + + +} diff --git a/clientarea/cart/hgcart/css/shoppingCar.css b/clientarea/cart/hgcart/css/shoppingCar.css new file mode 100644 index 0000000..01d6787 --- /dev/null +++ b/clientarea/cart/hgcart/css/shoppingCar.css @@ -0,0 +1,281 @@ +.main-title { + color: #171725; + font-size: 0.28rem; + margin-bottom: 0.4rem; +} +.search-box { + margin-top: -0.62rem; + margin-bottom: 0.1rem; + text-align: right; +} +.search-box .el-input { + width: 3.2rem; +} +.search-box .el-input .el-input__inner { + height: 46px; + line-height: 46px; +} +.table-name { + display: flex; + align-items: center; +} +.goods-name { + color: #171725; + font-weight: bold; + font-size: 0.16rem; +} +.el-link.el-link--primary { + margin-left: 0.08rem; + color: var(--color-primary); + font-size: 0.14rem; +} +.table-content { + font-size: 0.14rem; +} +.goods-table { + margin-top: 0.16rem; + width: 100%; + text-align: left; + border: 1px solid #e6e7eb; + border-radius: 0.03rem; + border-collapse: collapse; +} +.goods-table thead { + line-height: 0.46rem; + background: #eef4ff; + height: 0.46rem; + color: #757575; +} +.goods-table tbody tr td { + padding-top: 0.29rem; + padding-bottom: 0.3rem; +} +.description-box { + width: 5.5rem; +} +.price-box { + width: 4rem; +} +.total-box { + min-width: 1.5rem; +} +.num-box { + width: 2.4rem; +} +.action-box { + width: 1rem; +} +.delete-btn { + cursor: pointer; + font-size: 0.18rem; + color: var(--color-danger); +} +.item-price { + color: #171725; +} +.item-total { + font-size: 0.14rem; + font-weight: bold; + color: #171725; +} +.original-price { + text-decoration: line-through; + color: #999999; +} +.discount-codeNumber { + font-size: 0.12rem; + font-weight: bold; + color: var(--color-discount-num); +} +.remove-discountCode { + cursor: pointer; + margin-left: 0.09rem; +} +.shopping-goods { + margin-bottom: 0.4rem; +} +.goods-box { + padding-bottom: 1.6rem; +} +.el-footer { + width: calc(100vw - 160px); + padding-left: 2.1rem; + padding-right: 1.2rem; + box-sizing: border-box; + font-size: 0.18rem; + box-shadow: 0rem 0rem 0.2rem rgba(0, 0, 0, 0.15); + height: 1.6rem !important; + position: fixed; + bottom: 0; + background-color: #fff; + z-index: 9; +} +.footer-box { + height: 100%; + margin: 0 auto; + max-width: 1500px; + display: flex; + align-items: center; + justify-content: space-between; +} +.no-goods-td { + display: flex; + align-items: center; + width: 4.8rem; +} +.no-goods-tips { + color: #8692b0; + font-size: 0.13rem; + font-weight: 500; + white-space: nowrap; +} +.buy-again-btn { + margin-left: 0.1rem; + background: #e1f0ff; + height: 0.32rem; + min-width: 0.6rem; + border-radius: 0.03rem; + font-size: 0.14rem; + font-weight: 400; + color: var(--color-primary); +} +.footer-left { + color: #333333; + font-size: 0.18rem; +} +.footer-right { + font-size: 0.14rem; + color: #1e2736; + display: flex; + align-items: center; +} +.total-price { + font-weight: bold; + font-size: 0.28rem; + color: var(--color-price-text); +} +.text-red { + color: var(--color-warning); +} +.goods-info { + margin-bottom: 0.1rem; + display: flex; + justify-content: space-between; + font-size: 0.14rem; +} +.goodsInfo-price { + color: #1e2736; +} +.goodsInfo-type { + overflow: hidden; + text-overflow: ellipsis; + /* white-space: nowrap; */ + width: 80%; + color: #1e2736; +} +.goodsInfo-name { + color: #757575; +} +.buy-btn { + margin-left: 0.4rem; + width: 2.04rem; + height: 0.46rem; + background: var(--color-primary); + border-radius: 0.04rem; + font-size: 0.16rem; + font-weight: 500; + color: #ffffff; +} +.delect-btn { + margin: 0 0.4rem; +} +.mar-left-24 { + margin-left: 24px; +} +.info-box { + width: 90%; +} +.all-check .el-checkbox__label { + color: #333333; + font-size: 0.18rem; +} +.qty-num { + color: #4e5259; + height: 0.13rem; + margin-top: 0.1rem; +} +.qty-tips { + margin-top: 0.2rem; + font-size: 0.13rem; + color: #3699ff; +} +.red-text { + color: var(--color-danger); +} +.discount-box { + margin-top: 0.08rem; + font-size: 0.14rem; + font-weight: 400; + display: flex; + flex-wrap: wrap; + align-items: center; + column-gap: 0.05rem; + row-gap: 0.05rem; +} +@media screen and (max-width: 750px) { + .table-content { + overflow-x: auto; + } + .search-box .el-input { + width: 4.2rem; + } + .description-box { + min-width: 5.5rem; + } + .price-box { + min-width: 4rem; + } + .num-box { + min-width: 2.5rem; + } + .action-box { + min-width: 1.5rem; + } + .el-footer { + padding: 0 0.3rem; + width: 100%; + } + .el-input .el-input__inner { + font-size: inherit !important; + } + .footer-left { + display: flex; + flex-direction: column; + color: #333333; + font-size: 0.18rem; + } + .delect-btn { + margin: 0; + } + .footer-right { + font-size: 0.14rem; + color: #1e2736; + display: flex; + flex-direction: column; + align-items: center; + } + .delect-goods { + color: var(--color-danger); + } + .buy-btn { + margin-left: 0; + margin-top: 0.2rem; + width: 2.04rem; + height: 0.46rem; + background: var(--color-primary); + border-radius: 0.04rem; + font-size: 0.16rem; + font-weight: 500; + color: #ffffff; + } +} diff --git a/clientarea/cart/hgcart/css/shoppingCar.less b/clientarea/cart/hgcart/css/shoppingCar.less new file mode 100644 index 0000000..8d11956 --- /dev/null +++ b/clientarea/cart/hgcart/css/shoppingCar.less @@ -0,0 +1,339 @@ +.main-title { + color: #171725; + font-size: 0.28rem; + margin-bottom: 0.4rem; +} + +.search-box { + margin-top: -0.62rem; + margin-bottom: 0.1rem; + text-align: right; +} + +.search-box .el-input { + width: 3.2rem; +} + +.search-box .el-input .el-input__inner { + height: 46px; + line-height: 46px; +} + +.table-name { + display: flex; + align-items: center; +} + +.goods-name { + color: #171725; + font-weight: bold; + font-size: 0.16rem; +} + +.el-link.el-link--primary { + margin-left: 0.08rem; + color: var(--color-primary); + font-size: 0.14rem; +} + +.table-content { + font-size: 0.14rem; +} + +.goods-table { + margin-top: 0.16rem; + width: 100%; + text-align: left; + border: 1px solid #e6e7eb; + border-radius: 0.03rem; + border-collapse: collapse; +} + +.goods-table thead { + line-height: 0.46rem; + background: #eef4ff; + height: 0.46rem; + color: #757575; +} + +.goods-table tbody tr td { + padding-top: 0.29rem; + padding-bottom: 0.3rem; +} + +.description-box { + width: 5.5rem; +} + +.price-box { + width: 4rem; +} + +.total-box { + min-width: 1.5rem; +} + +.num-box { + width: 2.4rem; +} + +.action-box { + width: 1rem; +} + +.delete-btn { + cursor: pointer; + font-size: 0.18rem; + color: var(--color-danger); +} + +.item-price { + color: #171725; +} + +.item-total { + font-size: 0.14rem; + font-weight: bold; + color: #171725; +} + +.original-price { + text-decoration: line-through; + color: #999999; +} + +.discount-codeNumber { + font-size: 0.12rem; + font-weight: bold; + color: var(--color-discount-num); +} + +.remove-discountCode { + cursor: pointer; + margin-left: 0.09rem; +} + +.shopping-goods { + margin-bottom: 0.4rem; +} + +.goods-box { + padding-bottom: 1.6rem; +} + +.el-footer { + width: calc(100vw - 160px); + padding-left: 2.1rem; + padding-right: 1.2rem; + box-sizing: border-box; + font-size: 0.18rem; + box-shadow: 0rem 0rem 0.2rem rgba(0, 0, 0, 0.15); + height: 1.6rem !important; + position: fixed; + bottom: 0; + background-color: #fff; + z-index: 9; +} + +.footer-box { + height: 100%; + margin: 0 auto; + max-width: 1500px; + display: flex; + align-items: center; + justify-content: space-between; +} + +.no-goods-td { + display: flex; + align-items: center; + width: 4.8rem; +} + +.no-goods-tips { + color: #8692b0; + font-size: 0.13rem; + font-weight: 500; + white-space: nowrap; +} + +.buy-again-btn { + margin-left: 0.1rem; + background: #e1f0ff; + height: 0.32rem; + min-width: 0.6rem; + border-radius: 0.03rem; + font-size: 0.14rem; + font-weight: 400; + color: var(--color-primary); +} + +.footer-left { + color: #333333; + font-size: 0.18rem; +} + +.footer-right { + font-size: 0.14rem; + color: #1e2736; + display: flex; + align-items: center; +} + +.total-price { + font-weight: bold; + font-size: 0.28rem; + color: var(--color-price-text); +} + +.text-red { + color: var(--color-warning); +} + +.goods-info { + margin-bottom: 0.1rem; + display: flex; + justify-content: space-between; + font-size: 0.14rem; +} + +.goodsInfo-price { + color: #1e2736; +} + +.goodsInfo-type { + overflow: hidden; + text-overflow: ellipsis; + /* white-space: nowrap; */ + width: 80%; + color: #1e2736; +} + +.goodsInfo-name { + color: #757575; +} + +.buy-btn { + margin-left: 0.4rem; + width: 2.04rem; + height: 0.46rem; + background: var(--color-primary); + border-radius: 0.04rem; + font-size: 0.16rem; + font-weight: 500; + color: #ffffff; +} + +.delect-btn { + margin: 0 0.4rem; +} + +.mar-left-24 { + margin-left: 24px; +} + +.info-box { + width: 90%; +} + +.all-check .el-checkbox__label { + color: #333333; + font-size: 0.18rem; +} + +.qty-num { + color: #4e5259; + height: 0.13rem; + margin-top: 0.1rem; +} + +.qty-tips { + margin-top: 0.2rem; + font-size: 0.13rem; + color: #3699ff; +} + +.red-text { + color: var(--color-danger); +} + +.discount-box { + margin-top: 0.08rem; + font-size: 0.14rem; + font-weight: 400; + display: flex; + flex-wrap: wrap; + align-items: center; + column-gap: 0.05rem; + row-gap: 0.05rem; +} + +@media screen and (max-width: 750px) { + .table-content { + overflow-x: auto; + } + + .search-box .el-input { + width: 4.2rem; + } + + .description-box { + min-width: 5.5rem; + } + + .price-box { + min-width: 4rem; + } + + .num-box { + min-width: 2.5rem; + } + + .action-box { + min-width: 1.5rem; + } + + .el-footer { + padding: 0 0.3rem; + width: 100%; + } + + .el-input .el-input__inner { + font-size: inherit !important; + } + + .footer-left { + display: flex; + flex-direction: column; + color: #333333; + font-size: 0.18rem; + } + + .delect-btn { + margin: 0; + } + + .footer-right { + font-size: 0.14rem; + color: #1e2736; + display: flex; + flex-direction: column; + align-items: center; + } + + .delect-goods { + color: var(--color-danger); + } + + .buy-btn { + margin-left: 0; + margin-top: 0.2rem; + width: 2.04rem; + height: 0.46rem; + background: var(--color-primary); + border-radius: 0.04rem; + font-size: 0.16rem; + font-weight: 500; + color: #ffffff; + } +} diff --git a/clientarea/cart/hgcart/goods.php b/clientarea/cart/hgcart/goods.php new file mode 100644 index 0000000..0411cec --- /dev/null +++ b/clientarea/cart/hgcart/goods.php @@ -0,0 +1,57 @@ + + + + + + +
+
+
+
+
+
+
+
+ + + + + + + + +
+ +
+ {{secProductGroupList[0]?.goodsList[0]?.product_group_name_first}} + +
+
+ + +
+
{{item.name}}
+
+
+ {{option.name}} +
+
+
+
+
+
+
+
+
+
+
+ + + + + + + + diff --git a/clientarea/cart/hgcart/goodsList.php b/clientarea/cart/hgcart/goodsList.php new file mode 100644 index 0000000..4eb438f --- /dev/null +++ b/clientarea/cart/hgcart/goodsList.php @@ -0,0 +1,457 @@ + + + + + + +
+
+
+
+
+
+
+
+ + + + + + +
+
+
+
{{lang.new_goods}}
+
+ +
+ + {{select_second_obj.description}} + +
+
+ + +
+

{{lang.goods_loading}}

+ +
+
+
+
+ +
{{lang.template_text131}}
+
+

{{lang.template_text132}}

+
+ + + +
{{lang.template_text134}}
+
+
+
+ {{lang.template_text135}} + {{lang.template_text136}} +
+
+
+
+
+
+ + + + + diff --git a/clientarea/cart/hgcart/goods_iframe.php b/clientarea/cart/hgcart/goods_iframe.php new file mode 100644 index 0000000..8724230 --- /dev/null +++ b/clientarea/cart/hgcart/goods_iframe.php @@ -0,0 +1,34 @@ + + + + + + +
+
+
+
+
+
+
+
+ + + + + + +
+
+
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/clientarea/cart/hgcart/img/firewall-icon.png b/clientarea/cart/hgcart/img/firewall-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..d790a77769e7e64a30a9dd8a4d2e6f665a9db7fd GIT binary patch literal 124191 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�-8b8s@!TULZEpt{KXUF{WY!!!xzxMa z{$p%()HYf8J-<15$&*cVyqn!GIlWumNC`sxE)X!c7~viEt89=E6hb+t?7w=HkIEV} zzhu8A@J}8(4lMsG%p)^@@NNG&oR66!JefqQ>TU=*ZRvMUouuNdl7SxsQHlkE%izWp z?xN%cwFF?z$3=and=F63QQCD#gvbl#2X!CbW-xeO+U4!;?9`gfLmmwXzIHP{{?D?m zs4!ytnhOI)%Yf|f!`TuTcgMc1FXXMwAdesAX+)6qh%VaY^D^vN?_Ix+1o$7yDh z%N5w)@ohQTj7w}}(M%Uy3oQOkAnz_2jo^_(pt*NTj+E)7UH3*xw1?DOjGMo7J`%Gm zfqa3oRteI6o0qWgY(VTkbZ0$;GU1%?IIt`-w{%8Z0 zpAAk@mb&mt1+kd=w#kv~!no+%@1h-JCxSBm{#$Ux!@)3V)A020x{6SoJ98x(aj;u> z=@(jQcq48?*e!er`mcF&}}UJhNv z-x>|i@~}AY^M7E~yladjFa3puy>FN1##O|~S@?=6k$E4TfH6$<@TMe%1D>T(cWTtU zh3=J|#)MW(M-x)9-#R+x%Zb`|wrR~D;ENYr9P<4^Vo`s=+{6Mv^mN;!9iow+d*3c) zZM>5`bZu%*C=#AbR*sS9QZ8-)T(hzwnuauV;unUB8>xqM)K8oxlKJ||b@?W|hyoQ_Z1@zK=^(1HV?(5!v0 zfjTX3b0{em@=zRsQsAjNuIxB*wn|gVB30OllKjJY4`7F3_>b7Zkoq?hFwuhcK#dlZ zxRDCB-U))?r)sk2vi}@^-K@Z+0nkTR{EkS<^AO90!Oiyui!pCM+mo&y#tvK{U-Y|o zMl_>08v07~Y(%>@GF#`}>uyJG+glO9&eJ!+@Dl;b1U{7 zfV ``EG*XiJ_<`%xz>Sg+C9O7C}pUn@>oBWX^&B_tT|&@@)8g6bc^|mHmQzd~&J$8yZPf2O&8QkoC2} z^KbQF3(MT`8o@@j`ci&sA}m}F4h~B(5m7FTMAP{*v;1fmafay<8zr`oZ*>?$rO)5m_Q&** zcd@==HM@hq9XB+q*7070=q8M6Cj)BxG&|oHK+ct-uw)JJjJd};zJ)8nb~ye6rm}3g;WVibcIWAjaetrM%6J3*>VS?cj>cei~gL9O+D* z8Mo*r0RgPKHbF89TQ`*#t6yN{2FtQYY&QR zS1rm4x|4UGs2o$cx!&R|OmZ~Y73-PY2tEIAmqA$s!FjCCVfCXa_Ir~#dPysxd#697 znm3GJ)Fwk7KVHC1SA~1cR?Pqnpzr9~Z$DPU}6S|5oXN)xyV9(hq^)tG;w$^sA=?ePR>iQO2EXYkb z0Iz3tIzQSlpy{~f>7BHm>VN42M7=Ogq-om>VJ8Z|+bSbjD15_b>mSw)tgo|)oG|2w z7%CcZ=kF1=;!A-r2jSy?uhMt)Cl&gFUf+BX1rs|wn`@pqdEWHPlg>d$ z-#CH9ibACIbpJ#3?=Q{kos8UaR)qn?>U2H9+nXOs6T=nl(8q>YlZVDudh>TGW~3j{ zVo@y+PuByNb@Jm(0uqOK)4qXpbSlv^mgFg|g{j9tm|*bJ z7jljrodsmIX>!l{X_wU4kN1bNkI0Y>>THbnj9`dzL}^U{^C z?ei@93$4sXOAkS)wMN`k%LwBUy^TU`w%Kov>!>A&!OP^xn@R{#Cjk%4Du!?h8*Lb> zuK++#f|7!jHTCsz*mx7G1wD)GKfp!Ubn&7xpcb + + + + + + diff --git a/clientarea/cart/hgcart/img/sold_out.svg b/clientarea/cart/hgcart/img/sold_out.svg new file mode 100644 index 0000000..ca009ed --- /dev/null +++ b/clientarea/cart/hgcart/img/sold_out.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/clientarea/cart/hgcart/index_iframe.php b/clientarea/cart/hgcart/index_iframe.php new file mode 100644 index 0000000..97ab20c --- /dev/null +++ b/clientarea/cart/hgcart/index_iframe.php @@ -0,0 +1,37 @@ + + + + + + + + +

+ + + + + + + + + +
+
+
+
+
+
+
+
+ + + + + + + + + + + diff --git a/clientarea/cart/hgcart/js/goods.js b/clientarea/cart/hgcart/js/goods.js new file mode 100644 index 0000000..131392a --- /dev/null +++ b/clientarea/cart/hgcart/js/goods.js @@ -0,0 +1,179 @@ +var orignalSetItem = localStorage.setItem; +localStorage.setItem = function (key, newValue) { + var setItemEvent = new Event("setItemEvent"); + setItemEvent.newValue = newValue; + window.dispatchEvent(setItemEvent); + orignalSetItem.apply(this, arguments); +}; +(function (window, undefined) { + var old_onload = window.onload; + window.onload = function () { + const template = document.getElementsByClassName("goods")[0]; + Vue.prototype.lang = window.lang; + window.addEventListener("setItemEvent", function (e) { + if (e.newValue && String(e.newValue).indexOf("cartNum") !== -1) { + vm._data.shoppingCarNum = e.newValue.split("-")[1] * 1; + } + }); + const vm = new Vue({ + components: { + asideMenu, + topMenu, + pagination, + }, + created() { + const params = getUrlParams(); + if (params.token) { + localStorage.setItem("jwt", params.token); + } + this.id = params.id; + // 只获取 commonData 配置,不触发 getGoodDetail + this.commonData = JSON.parse( + localStorage.getItem("common_set_before") + ); + }, + mounted() { + if (window.self !== window.top) { + this.isIfram = true; + } + // 先加载 content,完成后再加载 popover 数据,避免并发请求过多 + this.getList().then(() => { + if (this.commonData.cart_change_product == 1) { + this.getGoodDetail(this.id); + } + }); + }, + updated() { + // // 关闭loading + document.getElementById("mainLoading").style.display = "none"; + document.getElementsByClassName("goods")[0].style.display = "block"; + }, + computed: { + calcProductGroup() { + // fillterKey 过滤关键字 secProductGroupList + const fillterKey = this.fillterKey.trim().toLowerCase(); + const originList = JSON.parse( + JSON.stringify(this.secProductGroupList) + ); + const arr = originList + .filter((item) => { + return ( + item.goodsList.filter((i) => { + return i.name.toLowerCase().indexOf(fillterKey) !== -1; + }).length > 0 + ); + }) + .map((item) => { + item.goodsList = item.goodsList.filter((i) => { + return i.name.toLowerCase().indexOf(fillterKey) !== -1; + }); + return item; + }); + return arr; + }, + }, + data() { + return { + id: "", + isIfram: false, + shoppingCarNum: 0, + fillterKey: "", + params: { + page: 1, + limit: 20, + pageSizes: [20, 50, 100], + total: 200, + orderby: "id", + sort: "desc", + keywords: "", + }, + commonData: {}, + content: "", + productInfo: {}, + secProductGroupList: [], + }; + }, + filters: { + formateTime(time) { + if (time && time !== 0) { + return formateDate(time * 1000); + } else { + return "--"; + } + }, + }, + methods: { + async getList() { + try { + const params = { id: this.id, flag: this.isIfram }; + const res = await getOrederConfig(params); + this.$nextTick(() => { + // 解决Jquery加载JS会在文件末尾添加时间戳的问题 + $.ajaxSetup({ + cache: true, + }); + $(".config-box .content").html(res.data.data.content); + }); + this.content = res.data.data.content; + } catch (error) {} + }, + handleCommand(id) { + // 打开新页面 替换id + location.href = `goods.htm?id=${id}`; + }, + getGoodDetail(id) { + apiProductDetail({ id }).then((res) => { + this.productInfo = res.data.data.product; + this.getProductGroup_second( + this.productInfo.product_group_id_first + ); + }); + }, + // 获取二级分类 + getProductGroup_second(id) { + productGroupSecond(id).then((res) => { + this.secProductGroupList = res.data.data.list.map((item) => { + item.goodsList = []; + return item; + }); + this.getProductGoodList(); + }); + }, + // 获取商品列表 + getProductGoodList() { + this.secProductGroupList.forEach((item) => { + const params = { + page: 1, + limit: 999999, + id: item.id, + }; + productGoods(params).then((res) => { + item.goodsList = res.data.data.list; + }); + }); + }, + // 每页展示数改变 + sizeChange(e) { + this.params.limit = e; + this.params.page = 1; + // 获取列表 + }, + // 当前页改变 + currentChange(e) { + this.params.page = e; + }, + + // 获取通用配置 + getCommonData() { + this.commonData = JSON.parse( + localStorage.getItem("common_set_before") + ); + if (this.commonData.cart_change_product == 1) { + this.getGoodDetail(this.id); + } + }, + }, + }).$mount(template); + typeof old_onload == "function" && old_onload(); + }; +})(window); diff --git a/clientarea/cart/hgcart/js/goodsList.js b/clientarea/cart/hgcart/js/goodsList.js new file mode 100644 index 0000000..d1323b4 --- /dev/null +++ b/clientarea/cart/hgcart/js/goodsList.js @@ -0,0 +1,949 @@ +(function (window, undefined) { + var old_onload = window.onload; + window.onload = function () { + const template = document.getElementsByClassName("template")[0]; + Vue.prototype.lang = window.lang; + new Vue({ + components: { + asideMenu, + topMenu, + scrollText, + }, + created() { + window.addEventListener("scroll", this.scrollBottom); + // 监听 页面点击事件 用于关闭 isShowSuffixBox + document.addEventListener("click", (e) => { + const classNameArr = [ + "suffix-list", + "suffix-box", + "suffix-item", + "suffix-item suffix-active", + "el-icon-arrow-down select-btn", + ]; + if (!classNameArr.includes(e.target.className)) { + this.isShowSuffixBox = false; + } + }); + + this.getCommonData(); + this.getCarList(); + + sessionStorage.removeItem("product_information"); + this.fpg_id = this.getQuery("fpg_id") * 1; + this.spg_id = this.getQuery("spg_id") * 1; + this.host_id = this.getQuery("host_id") * 1; + this.domainInput = this.getQuery("domain"); + }, + mounted() { + const addons_js_arr = JSON.parse( + document.querySelector("#addons_js").getAttribute("addons_js") + ); // 插件列表 + const arr = addons_js_arr.map((item) => { + return item.name; + }); + if (arr.includes("EventPromotion")) { + // 开启活动满减 + this.isShowFull = true; + } + this.initData(); + }, + updated() { + // 关闭loading + document.getElementById("mainLoading").style.display = "none"; + document.getElementsByClassName("template")[0].style.display = "block"; + }, + destroyed() { + window.removeEventListener("scroll", this.scrollBottom); + }, + data() { + return { + isShowView: false, + searchValue: "", // 搜索内容 + searchLoading: false, + select_first_obj: { + id: "", // 一级分组ID + type: "", // 一级分组类型 + }, // 选中的一级分类对象 + select_second_obj: { + id: "", // 二级分组ID + type: "", // 二级分组类型 + description: "", // 二级分组描述 + }, // 选中的一级分类对象 + first_group_list: [], // 一级分类数组 + second_group_list: [], // 二级分类数组 + commonData: {}, + scrollDisabled: false, + secondLoading: false, // 二级分类加载 + goodSLoading: false, + goodsParmas: { + keywords: "", // 关键字,搜索范围:商品ID,商品名,描述 + id: "", // 二级分组ID + page: 1, // 页数 + limit: 12, // 每页条数 + }, + goodsList: [], // 商品列表数组 + regType: "1", + domainInput: "", + selectSuffix: "", + isAllCheck: false, + isShowFull: false, + suffixList: [], + domainList: [], + isSearching: false, + isShowSuffixBox: false, + carList: [], + checkList: [], + product_id: "", + isCarLoading: false, + isIndeterminate: false, + isBatchIndeterminate: false, + isBatchAllCheck: false, + batchLoading: false, + addAllLoading: false, + textarea2: "", + batchCheckGroup: [], + availList: [], + unavailList: [], + faillList: [], + activeNames: [], + domainConfig: {}, + isShowUpload: false, + fileName: "", + fileContent: "", + originalPrice: 0.0, + /* 传参搜索 */ + fpg_id: "", + spg_id: "", + host_id: "", + isShowFilrer: false, + selectFilterSuffix: [], + }; + }, + filters: { + formateTime(time) { + if (time && time !== 0) { + return formateDate(time * 1000); + } else { + return "--"; + } + }, + }, + computed: { + // 是否选中的分类为域名 + isDomain() { + return this.select_second_obj.type === "domain"; + }, + // 计算购物车选中的商品的总价 + totalMoneyCalc() { + let total = 0; + this.carList.forEach((item) => { + if (this.checkList.includes(item.positions)) { + total += this.priceCalc(item) * 1000; + } + }); + const firstDiscount = this.carList.filter( + (item) => this.checkList[0] === item.positions + ); + let domainDiscount = 0; + if (firstDiscount.length > 0) { + domainDiscount = firstDiscount[0]?.priceArr[0]?.discount; + } + this.originalPrice = (total / 1000).toFixed(2); + let temp = (total - domainDiscount * 1000) / 1000; + if (isNaN(temp)) { + temp = 0.0; + } + return temp; + }, + showDomainList() { + return ( + this.domainList.filter((item) => { + return ( + item.avail === 0 || + (item.avail === 1 && item.priceArr.length > 0) + ); + }) || [] + ); + }, + // 是否登录 + isLogin() { + return window.localStorage.jwt ? true : false; + }, + calcDomainList() { + if (this.selectFilterSuffix.length === 0) { + return this.showDomainList; + } else { + return this.showDomainList.filter((item) => { + return this.selectFilterSuffix.includes( + this.getDomainSuffix(item.name).suffix + ); + }); + } + }, + fillterDomainSuffix() { + // 根据域名后缀分类 + return [ + ...new Set( + this.showDomainList.map((item) => { + return this.getDomainSuffix(item.name).suffix; + }) + ), + ]; + }, + showOriginal() { + const firstDiscount = this.carList.filter( + (item) => this.checkList[0] === item.positions + ); + const domainDiscount = firstDiscount[0]?.priceArr[0]?.discount; + if (this.checkList.length > 0 && domainDiscount > 0) { + return true; + } else { + return false; + } + }, + }, + methods: { + openFilter() { + this.isShowFilrer = !this.isShowFilrer; + this.selectFilterSuffix = []; + }, + handelFilterSuffix(item) { + const index = this.selectFilterSuffix.indexOf(item); + if (index !== -1) { + this.selectFilterSuffix.splice(index, 1); + } else { + this.selectFilterSuffix.push(item); + } + }, + calcEvent(eventList) {}, + getQuery(name) { + const reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); + const r = window.location.search.substr(1).match(reg); + if (r != null) return decodeURI(r[2]); + return null; + }, + goLogin() { + sessionStorage.redirectUrl = "/cart/goodsList.htm"; + location.href = "/login.htm"; + }, + // 选择文件 + selectFile() { + document.getElementById("upFile").click(); + // 监听文件上传 + document.getElementById("upFile").addEventListener("change", (e) => { + // 获取文件 + const file = e.target.files[0]; + // 判断文件类型 + if (file.type !== "text/plain") { + this.$message.warning(lang.template_text137); + return; + } + // 读取文件名 + this.fileName = file.name; + // 读取文件 + const reader = new FileReader(); + // 判断txt文件编码格式 + reader.readAsText(file, "utf-8"); + reader.onload = (e) => { + const txtString = e.target.result; + // utf-8 的 中文编码 正则表达式 + const patrn = /[\u4E00-\u9FA5]/gi; + // 检测当前文本是否含有中文(如果没有,则当乱码处理) + // 两个格式的英文编码一样,所以纯英文文件也当成乱码再处理一次 + if (!patrn.exec(txtString)) { + let reader_gb2312 = new FileReader(); + // 再拿一次纯文本,这一次拿到的文本一定不会乱码 + reader_gb2312.readAsText(file, "gb2312"); + reader_gb2312.onload = (e2) => { + this.fileContent = e2.target.result; + }; + } else { + this.fileContent = txtString; + } + }; + }); + }, + confirmUpload() { + // 解析输入框中的换行 把换行替换成\n 传字符串 + let params = this.fileContent + .replace(/[\r\n]/g, ",") + .split(",") + .filter((item) => { + return item !== ""; + }); + const maxLimt = this.domainConfig.number_limit || 500; + if (params.length > maxLimt) { + // 截取前500个 + params = params.slice(0, maxLimt); + } + this.textarea2 = params.join("\n"); + this.cancelUpload(); + }, + cancelUpload() { + document.getElementById("upFile").value = ""; + document + .getElementById("upFile") + .removeEventListener("change", () => {}); + this.fileName = ""; + this.fileContent = ""; + this.isShowUpload = false; + }, + // 获取域名设置 + getDomainSet() { + domainSetting().then((res) => { + this.domainConfig = res.data.data; + this.selectSuffix = res.data.data.default_search_domain || ""; + const suffixArr = this.suffixList.reduce((all, cur) => { + all.push(cur.suffix); + return all; + }, []); + if ( + suffixArr.length > 0 && + !suffixArr.includes(this.selectSuffix) + ) { + this.selectSuffix = this.suffixList[0].suffix; + } + // 官网跳转查询 + if (location.href.indexOf("suffix") !== -1) { + this.selectSuffix = this.getQuery("suffix"); + this.handelDomainSearch(); + } + }); + }, + // 是否已经加入购物车 + isAddCart(item) { + const isHave = this.carList.find((cartItem) => { + return cartItem.config_options.domain === item.name; + }); + return Boolean(isHave); + }, + // 价格计算 + priceCalc(item) { + if (item.priceArr.length === 0) { + return 0; + } + const price = + item.priceArr.find((priceItem) => { + return priceItem.buyyear === item.selectYear; + }) || []; + return price.buyprice; + }, + goBuyDomain() { + if (this.checkList.length === 0) { + this.$message.warning(lang.template_text138); + return; + } + if (!this.isLogin) { + this.$message.warning(lang.template_text139); + sessionStorage.redirectUrl = "/cart/goodsList.htm"; + this.goLogin(); + return; + } + sessionStorage.setItem( + "buyDomainPosition", + JSON.stringify(this.checkList) + ); + if (this.host_id) { + location.href = `/plugin/${getPluginId( + "IdcsmartDomain" + )}/buyDomain.htm?host_id=${this.host_id}`; + } else { + location.href = `/plugin/${getPluginId( + "IdcsmartDomain" + )}/buyDomain.htm`; + } + }, + // 批量查询域名 + batchSearchDomain() { + if (!this.textarea2) { + this.$message.warning(lang.template_text140); + return; + } + // 解析输入框中的换行 把换行替换成\n 传字符串 + const params = this.textarea2 + .replace(/[\r\n]/g, ",") + .split(",") + .filter((item) => { + return item !== ""; + }) + .join(","); + const maxLimt = this.domainConfig.number_limit || 500; + if (params.split(",").length - 1 >= maxLimt) { + this.$message.warning( + `${lang.template_text141}${maxLimt}${lang.template_text142}` + ); + return; + } + this.batchLoading = true; + domainBatch({domains: params}) + .then((res) => { + this.availList = res.data.data.avail.map((item) => { + item.priceArr = []; + item.showPrice = 0; + item.priceLoading = true; + return item; + }); + // 查询可注册的域名价格 + this.availList.forEach((item) => { + domainPrice({name: item.name, host_id: this.host_id}) + .then((res) => { + item.priceArr = res.data.data || []; + item.showPrice = res.data.data[0]?.buyprice || 0; + }) + .finally(() => { + item.priceLoading = false; + }); + }); + this.unavailList = res.data.data.unavail; + this.faillList = res.data.data.fail; + }) + .catch((err) => {}) + .finally(() => { + this.batchLoading = false; + }); + }, + handleBatchChange(val) { + let checkedCount = val.length; + this.isBatchAllCheck = checkedCount === this.availList.length; + this.isBatchIndeterminate = + checkedCount > 0 && checkedCount < this.availList.length; + }, + handleBatchCheckAllChange(val) { + this.batchCheckGroup = val + ? this.availList.map((item) => { + return item.name; + }) + : []; + this.isBatchIndeterminate = false; + }, + // 购物车列表 + getCarList() { + this.isCarLoading = true; + cartList().then((res) => { + const arr = res.data.data.list + .map((item, index) => { + return { + ...item, + positions: index, + selectYear: item.config_options.year, + priceArr: [], + showPrice: 0, + priceLoading: true, + }; + }) + .filter((item) => { + return item.customfield.is_domain === 1; + }); + // 拉取价格 + this.carList = arr; + this.isCarLoading = false; + this.carList.forEach((item) => { + domainPrice({ + name: item.config_options.domain, + host_id: this.host_id, + }) + .then((res) => { + item.priceArr = res.data.data || []; + item.showPrice = res.data.data[0]?.buyprice || 0; + }) + .catch((err) => {}) + .finally(() => { + item.priceLoading = false; + }); + }); + }); + }, + handleCheckAllChange(val) { + this.checkList = val + ? this.carList.map((item) => { + return item.positions; + }) + : []; + this.isIndeterminate = false; + }, + handleCheckedCitiesChange(value) { + let checkedCount = value.length; + this.isAllCheck = checkedCount === this.carList.length; + this.isIndeterminate = + checkedCount > 0 && checkedCount < this.carList.length; + }, + // 加入购物车 + addCart(item) { + if (this.isAddCart(item)) { + return; + } + this.isCarLoading = true; + const params = { + product_id: this.product_id, + config_options: { + domain: item.name, + year: 1, + }, + qty: 1, + customfield: { + is_domain: 1, // 是否域名商品 + }, + }; + addToCart(params) + .then((res) => { + if (res.data.status === 200) { + this.getCarList(); + } + }) + .catch((err) => { + this.$message.error(err.data.msg); + }) + .finally(() => { + this.isCarLoading = false; + }); + }, + // 批量加入购物车 + addAllCart() { + // 判断是否有选中的域名 + if (this.batchCheckGroup.length === 0) { + this.$message.warning(lang.template_text138); + return; + } + if (this.addAllLoading) { + return; + } + this.addAllLoading = true; + // 筛选出选中的域名 + const arr = this.availList.filter((item) => { + return this.batchCheckGroup.includes(item.name); + }); + // 循环调用加入购物车接口 + const productsArr = []; + arr.forEach((item) => { + const params = { + product_id: this.product_id, + config_options: { + domain: item.name, + year: 1, + }, + qty: 1, + customfield: { + is_domain: 1, // 是否域名商品 + }, + }; + productsArr.push(params); + }); + addToCart({products: productsArr}) + .then((res) => { + if (res.data.status === 200) { + this.getCarList(); + } + }) + .catch((err) => { + this.$message.error(err.data.msg); + }) + .finally(() => { + this.addAllLoading = false; + }); + }, + + // 修改购物车 + changeCart(val, item) { + const params = { + position: item.positions, + product_id: item.product_id, + qty: 1, + config_options: { + domain: item.config_options.domain, + year: val, + }, + customfield: { + is_domain: 1, // 是否域名商品 + }, + }; + updateCart(params) + .then((res) => { + if (res.data.status === 200) { + // this.getCarList() + } + }) + .catch((err) => { + this.$message.error(err.data.msg); + }); + }, + + // 删除购物车 + async deleteCart(item) { + this.isCarLoading = true; + const params = { + position: item.positions, + }; + const res = await deleteCart(params); + if (res.data.status === 200) { + this.isCarLoading = false; + this.getCarList(); + } + }, + // 批量删除购物车 + async deleteClearCart() { + if (this.carList.length === 0) { + return; + } + this.isCarLoading = true; + const params = { + positions: this.carList.map((item) => { + return item.positions; + }), + }; + const res = await deleteCartBatch(params); + if (res.data.status === 200) { + this.isCarLoading = false; + this.getCarList(); + } + }, + // 获取后缀 + async getSuffix() { + // DA购买域名需要传入产品ID筛选对于的后缀 + try { + const res = await domainSuffix(this.host_id); + this.suffixList = res.data.data || []; + this.getDomainSet(); + } catch (error) { + this.getDomainSet(); + } + }, + // 选择后缀 + handelSelectSuffix(item) { + this.selectSuffix = item; + }, + // 域名截断 return domain suffix baidu.com => baidu .com + getDomainSuffix(str) { + const domainStr = str.trim(); + const domainRegex = /^[^.]+(\.[^.]+)+$/; + const domainData = { + domain: domainStr, + suffix: "", + }; + if (domainRegex.test(domainStr)) { + const parts = domainStr.split("."); + domainData.domain = parts[0]; + domainData.suffix = + parts.length >= 2 ? "." + parts.slice(1).join(".") : ""; + } + return domainData; + }, + handelDomainSearch() { + // 去除前后空格 + this.domainInput = this.domainInput.trim(); + if (!this.domainInput) { + this.$message.warning(lang.template_text140); + return; + } + const suffix = this.getDomainSuffix(this.domainInput).suffix; + if ( + suffix && + this.suffixList.find((item) => item.suffix === suffix) + ) { + this.selectSuffix = suffix; + } + this.isShowSuffixBox = false; + this.isSearching = true; + this.domainList = []; + this.domainInput = this.getDomainSuffix(this.domainInput).domain; + domainSearch({ + domain: this.domainInput, + suffix: this.selectSuffix, + host_id: this.host_id, + }) + .then((res) => { + if (res.data.status === 200) { + const list = res.data.data; + this.domainList = list.map((item) => { + item.priceArr = []; + item.showPrice = 0; + item.priceLoading = true; + + return item; + }); + this.isSearching = false; + this.domainList.forEach((item) => { + if (item.avail === 1) { + domainPrice({name: item.name, host_id: this.host_id}) + .then((res) => { + item.priceArr = res.data.data || []; + item.showPrice = res.data.data[0]?.buyprice || 0; + }) + .finally(() => { + item.priceLoading = false; + }); + } + }); + // 判断当前选中的域名后缀是否支持中文 + const isChinese = + this.suffixList.find((item) => { + return item.suffix === this.selectSuffix; + }).allow_zh === 0; + // 判断输入的是否是中文 + const chineseReg = /[\u4e00-\u9fa5]/g; + if (isChinese && chineseReg.test(this.domainInput)) { + this.domainList.unshift({ + // 添加一条不支持中文的提示 + name: this.domainInput + this.selectSuffix, + avail: -2, + description: lang.template_text143, + }); + } + } + }) + .catch((err) => { + this.isSearching = false; + }); + }, + // 获取域名价格 + getDomainPrice() {}, + goWhois(item) { + window.open( + `/plugin/${getPluginId("IdcsmartDomain")}/whois.htm?domain=${ + item.name + }` + ); + }, + getRule(arr) { + let isHave = this.showFun(arr, "CartController::index"); + if (isHave) { + this.isShowView = true; + } + if (!this.isShowView) { + // 没有权限 + location.href = "/noPermissions.htm"; + } + }, + showFun(arr, str) { + if (typeof arr == "string") { + return true; + } else { + let isShow = ""; + isShow = arr.find((item) => { + let isHave = item.includes(str); + if (isHave) { + return isHave; + } + }); + return isShow; + } + }, + // 获取一级分类 + getProductGroup_first() { + productGroupFirst().then((res) => { + this.first_group_list = res.data.data.list; + }); + }, + // 搜索 + searchGoods() { + this.searchLoading = true; + this.goodsParmas.keywords = this.searchValue; + this.goodsParmas.id = ""; + this.goodsParmas.page = 1; + this.goodsList = []; + this.getProductGoodList(); + }, + // 获取二级分类 + getProductGroup_second(id) { + productGroupSecond(id).then((res) => { + this.secondLoading = false; + this.second_group_list = res.data.data.list; + if (res.data.data.list[0]) { + this.select_second_obj.id = res.data.data.list[0].id; + this.select_second_obj.type = res.data.data.list[0].type; + this.select_second_obj.description = + res.data.data.list[0]?.description; + this.goodsParmas.id = this.select_second_obj.id; + if (this.select_second_obj.type === "domain") { + this.getSuffix(); + } + this.getProductGoodList(); + } + }); + }, + // 获取商品列表 + getProductGoodList() { + this.goodSLoading = true; + productGoods(this.goodsParmas).then((res) => { + if ( + this.select_second_obj.type === "domain" && + res.data.data.list[0] + ) { + this.product_id = res.data.data.list[0].id; + } + this.searchLoading = false; + const list = res.data.data.list.map((item) => { + item.activeList = []; + return item; + }); + if (this.isShowFull) { + list.forEach((item) => { + eventPromotion({id: item.id}).then((res) => { + item.activeList = res.data.list; + }); + }); + } + this.goodsList = this.goodsList.concat(list); + this.goodSLoading = false; + this.scrollDisabled = + res.data.data.list.length < this.goodsParmas.limit; + this.$nextTick(() => { + // 判断当前列表是否达到滚动加载的条件 + this.needScroll(); + }); + }); + }, + needScroll() { + const scrollTop = + document.documentElement.scrollTop || document.body.scrollTop; + const clientHeight = document.documentElement.clientHeight; + const scrollHeight = document.documentElement.scrollHeight; + if ( + scrollTop + clientHeight >= scrollHeight && + !this.scrollDisabled + ) { + this.goodsParmas.page++; + this.getProductGoodList(); + } + }, + // 初始化 + async initData() { + // 获取一级分类 + await productGroupFirst().then((res) => { + this.first_group_list = res.data.data.list; + }); + if (this.first_group_list[0]) { + this.select_first_obj.id = + this.fpg_id || this.first_group_list[0].id; + this.secondLoading = true; + // 获取二级分类 + await productGroupSecond(this.select_first_obj.id).then((ress) => { + this.second_group_list = ress.data.data.list; + }); + if (this.second_group_list[0]) { + this.select_second_obj.id = + this.spg_id || this.second_group_list[0].id; + const selectItem = this.second_group_list.find( + (item) => item.id === this.select_second_obj.id + ); + this.select_second_obj.type = selectItem?.type; + this.select_second_obj.description = selectItem?.description; + this.goodsParmas.page = 1; + this.goodsParmas.id = this.spg_id || this.second_group_list[0].id; + this.secondLoading = false; + if (this.select_second_obj.type === "domain") { + this.getSuffix(); + } + this.getProductGoodList(); + } else { + this.goodSLoading = false; + this.goodsList = []; + } + } else { + this.goodSLoading = false; + this.goodsList = []; + } + }, + // 点击一级分类 + selectFirstType(val) { + this.select_first_obj.id = val; + this.secondLoading = true; + this.goodsParmas.page = 1; + this.second_group_list = []; + this.select_second_obj = { + id: "", + type: "", + description: "", + }; + this.getProductGroup_second(val); + this.goodsList = []; + }, + // 点击二级分类 + selectSecondType(val) { + this.select_second_obj.id = val; + const clickItem = this.second_group_list.find((item) => { + return item.id === val; + }); + this.select_second_obj.type = clickItem?.type; + this.select_second_obj.description = clickItem?.description; + this.goodsList = []; + this.goodsParmas.page = 1; + this.goodsParmas.id = val; + if (this.select_second_obj.type === "domain") { + this.getSuffix(); + } + this.getProductGoodList(); + }, + // 获取通用配置 + getCommonData() { + getCommon().then((res) => { + this.commonData = res.data.data; + localStorage.setItem( + "common_set_before", + JSON.stringify(res.data.data) + ); + document.title = + this.commonData.website_name + "-" + lang.common_cloud_text301; + }); + }, + // 点击购买 + goOrder(item) { + if ( + Boolean( + (JSON.parse(localStorage.getItem("common_set_before")) || {}) + .custom_fields?.before_settle === 1 + ) + ) { + window.open("/account.htm"); + return; + } + // 新窗口打开 + window.open(`goods.htm?id=${item.id}`); + }, + // 滚动计算 + scrollBottom() { + if (this.select_second_obj.type === "domain") { + return; + } + const scrollTop = + document.documentElement.scrollTop || document.body.scrollTop; + const clientHeight = document.documentElement.clientHeight; + const scrollHeight = document.documentElement.scrollHeight; + if (scrollTop + clientHeight >= scrollHeight) { + if (this.scrollDisabled) { + } else { + this.goodsParmas.page++; + this.getProductGoodList(); + } + } + }, + }, + watch: { + "select_first_obj.id": function (val) { + // 更改url 中fpg_id 和 spg_id 参数 + const url = window.location.href; + // 拿到当前url中的参数 + const params = new URLSearchParams(url.split("?")[1]); + // 改变参数 + params.set("fpg_id", val); + // 重新组装url + const newUrl = `${url.split("?")[0]}?${params.toString()}`; + // 替换当前url + window.history.replaceState({}, "", newUrl); + }, + "select_second_obj.id": function (val) { + // 更改url 中fpg_id 和 spg_id 参数 + const url = window.location.href; + // 拿到当前url中的参数 + const params = new URLSearchParams(url.split("?")[1]); + // 改变参数 + params.set("spg_id", val); + // 重新组装url + const newUrl = `${url.split("?")[0]}?${params.toString()}`; + // 替换当前url + window.history.replaceState({}, "", newUrl); + }, + }, + }).$mount(template); + typeof old_onload == "function" && old_onload(); + }; +})(window); diff --git a/clientarea/cart/hgcart/js/settlement.js b/clientarea/cart/hgcart/js/settlement.js new file mode 100644 index 0000000..e33e001 --- /dev/null +++ b/clientarea/cart/hgcart/js/settlement.js @@ -0,0 +1,367 @@ +(function (window, undefined) { + var old_onload = window.onload; + window.onload = function () { + const template = document.getElementsByClassName("template")[0]; + Vue.prototype.lang = window.lang; + const host = location.host; + const fir = location.pathname.split("/")[1]; + const str = `${host}/${fir}/`; + new Vue({ + components: { + asideMenu, + topMenu, + payDialog, + eventCode, + }, + created() { + localStorage.frontMenusActiveId = ""; + const temp = this.getQuery(location.search); + if (temp.cart) { + // 购物车过来 + this.selectGoodsList = JSON.parse(sessionStorage.shoppingCartList); + this.isFormShoppingCart = true; + } else { + const obj = sessionStorage.product_information + ? JSON.parse(sessionStorage.product_information) + : sessionStorage.settleItem + ? JSON.parse(sessionStorage.settleItem) + : {}; + sessionStorage.settleItem = sessionStorage.product_information; + sessionStorage.removeItem("product_information"); + this.isFormShoppingCart = false; + this.productObj = { + product_id: temp.id ? temp.id : obj.id ? obj.id : "", + config_options: obj.config_options, + qty: Number(obj.qty), + customfield: obj.customfield, + self_defined_field: obj.self_defined_field, + }; + productDetail(this.productObj.product_id).then((res) => { + this.productObj.name = res.data.data.product.name; + }); + } + this.getCommonData(); + // this.getPayLisy(); + }, + mounted() { + this.addons_js_arr = JSON.parse( + document.querySelector("#addons_js").getAttribute("addons_js") + ); // 插件列表 + const arr = this.addons_js_arr.map((item) => { + return item.name; + }); + if (arr.includes("PromoCode")) { + // 开启了优惠码插件 + this.isShowPromo = true; + } + if (arr.includes("IdcsmartClientLevel")) { + // 开启了等级优惠 + this.isShowLevel = true; + } + if (arr.includes("EventPromotion")) { + // 开启活动满减 + this.isShowFull = true; + } + this.getCartList(); + }, + updated() { + // 关闭loading + document.getElementById("mainLoading").style.display = "none"; + document.getElementsByClassName("template")[0].style.display = "block"; + }, + data() { + return { + initArr: [], + commonData: {}, // 公告接口数据 + addons_js_arr: [], + showPayBtn: false, + + totalPriceLoading: false, + + goodIdList: [], + isUseDiscountCode: false, + productObj: { + customfield: {}, + }, // 单独结算的商品对象 + shoppingList: [], // 所有购物车列表 + listLoading: false, + selectGoodsList: [], + isFormShoppingCart: true, // 是否从购物车页面结算 + showGoodsList: [], // 展示的列表 + payTypeList: [], // 支付渠道数组 + payType: "", // 选择的支付渠道 + checked: false, // 勾选隐私协议 + isShowPromo: false, // 是否开启优惠码 + isShowLevel: false, // 是否开启等级优惠 + isShowFull: false, + subBtnLoading: false, // 提交按钮loading + }; + }, + + filters: { + formateTime(time) { + if (time && time !== 0) { + return formateDate(time * 1000); + } else { + return "--"; + } + }, + filterMoney(money) { + if (isNaN(money) || money * 1 < 0) { + return "0.00"; + } else { + return formatNuberFiexd(money); + } + }, + }, + computed: { + finallyPrice() { + return this.totalPrice; + }, + totalLevelDiscount() { + return formatNuberFiexd( + this.showGoodsList.reduce((pre, cur) => { + return pre + cur.level_discount * 1; + }, 0) + ); + }, + totalPrice() { + return formatNuberFiexd( + this.showGoodsList.reduce((pre, cur) => { + return pre + cur.calcItemPrice * 1; + }, 0) + ); + }, + orginPrice() { + return formatNuberFiexd( + this.showGoodsList.reduce((pre, cur) => { + return pre + cur.price * 1; + }, 0) + ); + }, + totalCodelDiscount() { + return formatNuberFiexd( + this.showGoodsList.reduce((pre, cur) => { + return pre + cur.code_discount * 1; + }, 0) + ); + }, + totalFullDiscount() { + return formatNuberFiexd( + this.showGoodsList.reduce((pre, cur) => { + return pre + cur.eventDiscount * 1; + }, 0) + ); + }, + }, + methods: { + getRule(arr) { + let isHave = this.showFun(arr, "PayController::pay"); + if (isHave) { + this.showPayBtn = true; + } + }, + showFun(arr, str) { + if (typeof arr == "string") { + return true; + } else { + let isShow = ""; + isShow = arr.find((item) => { + let isHave = item.includes(str); + if (isHave) { + return isHave; + } + }); + return isShow; + } + }, + // 获取购物车列表 + async getCartList() { + this.listLoading = true; + this.initArr = []; + if (this.isFormShoppingCart) { + // 从购物车结算 + await cartList().then((res) => { + this.shoppingList = res.data.data.list; + this.selectGoodsList.forEach((item) => { + const obj = this.shoppingList[item]; + this.initArr.push(obj); + }); + }); + } else { + // 从商品详情结算 + this.initArr.push(this.productObj); + } + + this.initArr.forEach((item) => { + item.isLoading = true; + item.priceLoading = false; + item.price = 0; // 商品单价 + item.code_discount = 0; // 商品优惠码抵扣金额 + item.isUseDiscountCode = false; + item.level_discount = 0; // 商品等级优惠折扣金额 + item.eventDiscount = 0; + item.calcItemPrice = 0; + this.goodIdList.push(item.product_id); + this.getConfigOption(item); + }); + this.showGoodsList = [...this.initArr]; + this.listLoading = false; + }, + // 获取商品配置项价格 + getConfigOption(item) { + const params = { + config_options: { + ...item.config_options, + promo_code: item.customfield.promo_code, + event_promotion: item.customfield.event_promotion, + }, + qty: item.qty, + }; + item.priceLoading = true; + configOption(item.product_id, params) + .then(async (res) => { + item.info = res.data.data; + const son_previews = []; + if (res.data.data.other && res.data.data.other.son_previews) { + res.data.data.other.son_previews.forEach((i) => { + i.forEach((items) => { + son_previews.push(items); + }); + }); + } + if (res.data.data.sub_host && res.data.data.sub_host.length > 0) { + res.data.data.sub_host.forEach((i) => { + i.preview.forEach((items) => { + son_previews.push(items); + }); + }); + } + item.preview = res.data.data.preview.concat(son_previews); + item.price = res.data.data.price * 1; + item.calcItemPrice = res.data.data.price_total * 1; + item.level_discount = + res.data.data.price_client_level_discount * 1 || 0; + item.code_discount = + res.data.data.price_promo_code_discount * 1 || 0; + item.eventDiscount = + res.data.data.price_event_promotion_discount * 1 || 0; + }) + .catch((err) => { + item.preview = []; + }) + .finally(() => { + item.priceLoading = false; + item.isLoading = false; + this.showGoodsList = [...this.initArr]; + this.$forceUpdate(); + }); + }, + + goPay() { + if (!this.checked) { + this.$message.warning(lang.shoppingCar_tip_text6); + return; + } + if ( + Boolean( + (JSON.parse(localStorage.getItem("common_set_before")) || {}) + .custom_fields?.before_settle === 1 + ) + ) { + window.open("/account.htm"); + return; + } + this.subBtnLoading = true; + const settleApi = this.isFormShoppingCart + ? cart_settle + : product_settle; + const params = this.isFormShoppingCart + ? { + positions: this.selectGoodsList, + } + : { + product_id: this.productObj.product_id, + config_options: this.productObj.config_options, + customfield: this.productObj.customfield, + self_defined_field: this.productObj.self_defined_field, + qty: this.productObj.qty, + }; + settleApi(params) + .then((res) => { + this.$refs.payDialog.showPayDialog( + res.data.data.order_id, + res.data.data.amount, + this.payType + ); + }) + .catch((err) => { + if (err.data?.data?.certification === 0) { + this.$message.error({ + duration: 0, + showClose: true, + dangerouslyUseHTMLString: true, + message: `${err.data.msg} + ${lang.wx_tip7} + `, + type: "error", + }); + } else { + this.$message.error(err.data.msg); + } + }) + .finally(() => { + this.subBtnLoading = false; + }); + }, + + // 支付成功回调 + paySuccess(e) { + location.href = "/finance.htm"; + }, + // 取消支付回调 + payCancel(e) { + location.href = "/finance.htm"; + }, + getPayLisy() { + payLisy().then((res) => { + this.payTypeList = res.data.data.list; + this.payType = res.data.data.list[0].name; + }); + }, + // 解析url + getQuery(url) { + const str = url.substr(url.indexOf("?") + 1); + const arr = str.split("&"); + const res = {}; + for (let i = 0; i < arr.length; i++) { + const item = arr[i].split("="); + res[item[0]] = item[1]; + } + return res; + }, + goTermsServiceUrl() { + window.open(this.commonData.terms_service_url); + }, + goTermsPrivacUrl() { + window.open(this.commonData.terms_privacy_url); + }, + goHelpUrl(url) { + window.open(this.commonData[url]); + }, + + // 获取通用配置 + getCommonData() { + this.commonData = JSON.parse( + localStorage.getItem("common_set_before") + ); + document.title = + this.commonData.website_name + "-" + lang.shoppingCar_tip_text7; + }, + }, + }).$mount(template); + typeof old_onload == "function" && old_onload(); + }; +})(window); diff --git a/clientarea/cart/hgcart/js/shoppingCar.js b/clientarea/cart/hgcart/js/shoppingCar.js new file mode 100644 index 0000000..f546b7d --- /dev/null +++ b/clientarea/cart/hgcart/js/shoppingCar.js @@ -0,0 +1,510 @@ +(function (window, undefined) { + var old_onload = window.onload; + window.onload = function () { + const template = document.getElementsByClassName("template")[0]; + Vue.prototype.lang = window.lang; + new Vue({ + components: { + asideMenu, + topMenu, + discountCode, + eventCode, + }, + created() { + localStorage.frontMenusActiveId = ""; + this.getCommonData(); + }, + mounted() { + this.addons_js_arr = JSON.parse( + document.querySelector("#addons_js").getAttribute("addons_js") + ); // 插件列表 + const arr = this.addons_js_arr.map((item) => { + return item.name; + }); + if (arr.includes("PromoCode")) { + // 开启了优惠码插件 + this.isShowPromo = true; + } + if (arr.includes("IdcsmartClientLevel")) { + // 开启了等级优惠 + this.isShowLevel = true; + } + if (arr.includes("EventPromotion")) { + // 开启活动满减 + this.isShowFull = true; + } + this.getCartList(); + }, + updated() { + // 关闭loading + document.getElementById("mainLoading").style.display = "none"; + document.getElementsByClassName("template")[0].style.display = "block"; + }, + destroyed() { }, + data() { + return { + timer1: null, + listLoding: false, + commonData: {}, + searchVal: "", + checkedCities: [], + checkAll: false, // 是否全选 + visible: false, + showList: [], + addons_js_arr: [], // 插件列表 + shoppingList: [], + isShowPromo: false, // 是否开启优惠码 + isShowLevel: false, // 是否开启等级优惠 + isShowFull: false, // 是否开启满减优惠 + settleLoading: false, + }; + }, + + filters: { + formateTime(time) { + if (time && time !== 0) { + return formateDate(time * 1000); + } else { + return "--"; + } + }, + filterMoney(money) { + if (isNaN(money) || money * 1 < 0) { + return "0.00"; + } else { + return formatNuberFiexd(money); + } + }, + }, + computed: { + totalPrice() { + return this.showList + .filter((item) => { + return this.checkedCities.includes(item.position); + }) + .reduce((pre, cur) => { + return pre + cur.calcItemPrice * 1; + }, 0); + }, + nowList() { + if (this.searchVal !== "") { + return this.showList.filter((item) => + item.name.includes(this.searchVal) + ); + } else { + return this.showList; + } + }, + }, + methods: { + // 获取购物车列表 + getCartList() { + this.listLoding = true; + cartList() + .then((res) => { + this.shoppingList = res.data.data.list.map((item, index) => { + item.price = 0; // 商品单价 + item.calcItemPrice = 0; + item.code_discount = 0; // 商品优惠码抵扣金额 + item.level_discount = 0; // 商品等级优惠折扣金额 + item.eventDiscount = 0; // 商品活动优惠金额 + item.isUseDiscountCode = false; // 商品是否使用优惠码 + item.position = index; // 商品所在购物车位置 + item.isShowTips = false; // 是否提示商品库存不足 + item.priceLoading = true; // 商品价格loading + if (item.stock_control === 1 && item.qty > item.stock_qty) { + item.isShowTips = true; + item.qty = item.stock_qty; + } + item.isLoading = true; // 商品loading + return item; + }); + const arr = this.shoppingList.filter((arritem) => { + return arritem.customfield?.is_domain !== 1; + }); + this.listLoding = false; + this.showList = [...arr]; + this.showList.forEach((item) => { + this.getConfigOption(item); + }); + }) + .catch((err) => { + console.log(err); + this.listLoding = false; + }); + }, + // 获取商品配置项价格 + getConfigOption(item) { + const params = { + config_options: { + ...item.config_options, + promo_code: item.customfield.promo_code, + event_promotion: item.customfield.event_promotion, + }, + qty: item.qty, + }; + item.priceLoading = true; + configOption(item.product_id, params) + .then(async (res) => { + item.info = res.data.data; + const son_previews = []; + if (res.data.data.other && res.data.data.other.son_previews) { + res.data.data.other.son_previews.forEach((i) => { + i.forEach((items) => { + son_previews.push(items); + }); + }); + } + if (res.data.data.sub_host && res.data.data.sub_host.length > 0) { + res.data.data.sub_host.forEach((i) => { + i.preview.forEach((items) => { + son_previews.push(items); + }); + }); + } + item.preview = res.data.data.preview.concat(son_previews); + item.price = res.data.data.price * 1; + item.base_price = res.data.data.base_price * 1; + item.calcItemPrice = res.data.data.price_total * 1; + item.level_discount = + res.data.data.price_client_level_discount * 1 || 0; + item.code_discount = + res.data.data.price_promo_code_discount * 1 || 0; + item.eventDiscount = + res.data.data.price_event_promotion_discount * 1 || 0; + }) + .catch((err) => { + item.preview = []; + }) + .finally(() => { + item.priceLoading = false; + item.isLoading = false; + this.showList = [...this.showList]; + this.$forceUpdate(); + }); + }, + // 更改活动 + changeEventCode(priceObj, item) { + if (item.customfield.event_promotion == priceObj.id) { + return; + } + item.customfield.event_promotion = priceObj.id; + const params = { + position: item.position, + product_id: item.product_id, + config_options: item.config_options, // 配置信息 + qty: item.qty, // 商品数量 + customfield: item.customfield, + self_defined_field: item.self_defined_field, + }; + updateCart(params).then((res) => { + this.getConfigOption(item); + }); + }, + // 使用优惠码 + getDiscount(data) { + this.showList.forEach((item) => { + if (item.position === data[2]) { + item.customfield.promo_code = data[1]; + item.isUseDiscountCode = true; + const params = { + position: data[2], + product_id: item.product_id, + config_options: item.config_options, // 配置信息 + qty: item.qty, // 商品数量 + customfield: item.customfield, + self_defined_field: item.self_defined_field, + }; + updateCart(params).then((res) => { + this.getConfigOption(item); + }); + } + }); + }, + // 删除优惠码 + removeDiscountCode(item) { + item.customfield.promo_code = ""; + item.isUseDiscountCode = false; + let i; + this.showList.forEach((items, index) => { + if (items.position === item.position) { + i = index; + } + }); + const params = { + position: i, + product_id: item.product_id, + config_options: item.config_options, // 配置信息 + qty: item.qty, // 商品数量 + customfield: item.customfield, + self_defined_field: item.self_defined_field, + }; + updateCart(params).then((res) => { + this.getConfigOption(item); + }); + }, + // 搜索 + searchValChange(value) { + this.checkedCities = []; + this.checkAll = false; + }, + // 点击全选按钮 + handleCheckAllChange(val) { + const arr = this.showList.filter((item) => { + return item.info; + }); + const arrr = arr.map((item) => { + return item.position; + }); + this.checkedCities = val ? arrr : []; + }, + // 编辑商品数量 + handelEditGoodsNum(index, num) { + return editGoodsNum(index, num); + }, + // 编辑商品 + goGoods(item) { + if (item.info) { + const obj = { + config_options: item.config_options, // 配置信息 + position: item.position, // 修改接口要用的位置信息 + qty: item.qty, // 商品数量 + customfield: item.customfield, + self_defined_field: item.self_defined_field, + }; + sessionStorage.setItem("product_information", JSON.stringify(obj)); + } + location.href = `goods.htm?id=${item.product_id}&change=true&name=${item.name}`; + }, + // 监听购物车选择数量变化 + handleCheckedCitiesChange(value) { + this.checkAll = value.length === this.showList.length; + }, + // 删除商品函数 + deleteGoodsList(arr) { + deleteGoods(arr) + .then((res) => { + if (res.data.status === 200) { + this.$message.success(res.data.msg); + this.getCartList(); + this.$refs.topMenu.getCartList(); + } + }) + .catch((err) => { + err.data.msg && this.$message.error(err.data.msg); + }) + .finally(() => { }); + }, + // 点击删除按钮 + handelDeleteGoods(item) { + // 调用删除接口 + const p = item.position; + let shoppingList_index = 0; + let checkedCities_index = 0; + let show_index = 0; + // 删除列表中对应的商品 + this.shoppingList.forEach((listItem, index) => { + if (listItem.position === p) { + shoppingList_index = index; + } + }); + this.checkedCities.forEach((listItem, index) => { + if (listItem === p) { + checkedCities_index = index; + } + }); + this.showList.forEach((listItem, index) => { + if (listItem === p) { + show_index = index; + } + }); + this.showList.splice(show_index, 1); + this.checkedCities.splice(checkedCities_index, 1); + this.deleteGoodsList([item.position]); + }, + // 删除选中的商品 + deleteCheckGoods() { + if (this.checkedCities.length === 0) { + this.$message.warning(lang.referral_status9); + return; + } else { + this.deleteGoodsList(this.checkedCities); + this.checkedCities = []; + } + }, + // 商品数量增加减少 + handleChange(n, o, item) { + if (item.stock_control === 1 && n >= item.stock_qty) { + this.$message.error(lang.referral_status10); + return; + } + // 节个流 + if (this.timer1) { + clearTimeout(this.timer1); + this.timer1 = null; + } + item.priceLoading = true; + + this.timer1 = setTimeout(() => { + this.handelEditGoodsNum(item.position, n) + .then(async () => { + this.getConfigOption(item); + }) + .catch((err) => { + err.data.msg && this.$message.error(err.data.msg); + }) + .finally(() => { + item.priceLoading = false; + clearTimeout(this.timer1); + this.timer1 = null; + }); + this.syncBindTool(item); + }, 500); + }, + // 同步绑定工具函数 + syncBindTool(item) { + if ( + item.customfield.product_related_limit && + item.customfield.product_related_limit?.related.length > 0 + ) { + const arr = item.customfield.product_related_limit.related || []; + // 循环判断是否有关联商品 + // 过滤出关联商品 + const relatedList = this.showList.filter((items) => { + return ( + arr.includes(items.product_id * 1) || + arr.includes(String(items.product_id)) + ); + }); + // 过滤出和当前商品ID一样的列表 + const someList = this.showList.filter((items) => { + return items.product_id == item.product_id; + }); + // 对比关联商品和当前商品的数量 + const relatedNum = relatedList.reduce((pre, cur) => { + return pre + cur.qty; + }, 0); + const someNum = someList.reduce((pre, cur) => { + return pre + cur.qty; + }, 0); + if (relatedNum != someNum && relatedNum !== 0) { + if (someNum > relatedNum) { + // 如果关联商品数量小于当前商品数量 给筛选出来的关联商品加1 + this.handelEditGoodsNum( + relatedList[0].position, + relatedList[0].qty + (someNum - relatedNum) + ).then(async () => { + this.showList.forEach((items) => { + if (items.position == relatedList[0].position) { + items.qty = relatedList[0].qty + (someNum - relatedNum); + this.getConfigOption(items); + this.$forceUpdate(); + } + }); + }); + } else { + // 如果关联商品数量大于当前商品数量 给当前商品加1 + this.handelEditGoodsNum( + relatedList[0].position, + relatedList[0].qty > relatedNum - someNum + ? relatedList[0].qty - (relatedNum - someNum) + : 1 + ).then(async () => { + this.showList.forEach((items) => { + if (items.position == relatedList[0].position) { + items.qty = + relatedList[0].qty > relatedNum - someNum + ? relatedList[0].qty - (relatedNum - someNum) + : 1; + this.getConfigOption(items); + this.$forceUpdate(); + } + }); + }); + } + } + } + }, + checkBindFun(selctedArr) { + let flag = true; + selctedArr.forEach((item) => { + if ( + item.customfield.product_related_limit && + item.customfield.product_related_limit?.related.length > 0 + ) { + const arr = item.customfield.product_related_limit.related || []; + // 循环判断是否有关联商品 + // 过滤出关联商品 + const relatedList = selctedArr.filter((items) => { + return ( + arr.includes(items.product_id * 1) || + arr.includes(String(items.product_id)) + ); + }); + // 过滤出和当前商品ID一样的列表 + const someList = selctedArr.filter((items) => { + return items.product_id == item.product_id; + }); + // 对比关联商品和当前商品的数量 + const relatedNum = relatedList.reduce((pre, cur) => { + return pre + cur.qty; + }, 0); + const someNum = someList.reduce((pre, cur) => { + return pre + cur.qty; + }, 0); + if (relatedNum != someNum) { + flag = false; + } + } + }); + return flag; + }, + // 结算 + goSettle() { + // 判断是否需要先设置账户,如果需要则跳转到设置账户页面 + if ( + Boolean( + (JSON.parse(localStorage.getItem("common_set_before")) || {}) + .custom_fields?.before_settle === 1 + ) + ) { + window.open("/account.htm"); + return; + } + if (this.checkedCities.length === 0) { + this.$message.warning(lang.referral_status11); + return; + } + const arr = []; // 装的是被选中的商品在购物位置的索引 + this.showList.forEach((item) => { + this.checkedCities.forEach((items) => { + if (items == item.position) { + arr.push(item); + } + }); + }); + if (!this.checkBindFun(arr)) { + this.$message.warning(lang.cart_tip_text14); + return; + } + this.settleLoading = true; + sessionStorage.shoppingCartList = JSON.stringify(this.checkedCities); + setTimeout(() => { + location.href = `/cart/settlement.htm?cart=1`; + this.settleLoading = false; + }, 500); + }, + + // 获取通用配置 + getCommonData() { + this.commonData = JSON.parse( + localStorage.getItem("common_set_before") + ); + document.title = + this.commonData.website_name + "-" + lang.shoppingCar_title; + }, + }, + }).$mount(template); + typeof old_onload == "function" && old_onload(); + }; +})(window); diff --git a/clientarea/cart/hgcart/settlement.php b/clientarea/cart/hgcart/settlement.php new file mode 100644 index 0000000..03842ae --- /dev/null +++ b/clientarea/cart/hgcart/settlement.php @@ -0,0 +1,182 @@ + + + + + +
+
+
+
+
+
+
+
+ + + + + + +
+
+ {{lang.settlement_title}} +

+ {{lang.dont_save_password_tip}} +

+
+
+
+
+
+ {{item.name}} +
+
+ + + + + + + + + + + + + + + +
{{lang.settlement_goodsInfo}}{{lang.settlement_goodsPrice}}{{lang.settlement_goodsNums}}{{lang.settlement_goodsTotalPrice}}
+
+
+ + {{item.name}} + + + {{commonData.currency_prefix}}{{item.info.base_price}} +
+
+ + {{infoItem.name}} + :{{infoItem.value}} + + {{commonData.currency_prefix}}{{infoItem.price}} +
+
+
+
+ + + + {{item.qty}} + + {{commonData.currency_prefix}} {{item.calcItemPrice | filterMoney}} + +
+

+ {{lang.shoppingCar_tip_text2}}:{{commonData.currency_prefix}} {{ + item.level_discount | filterMoney }} +

+

+ {{lang.shoppingCar_tip_text4}}:{{commonData.currency_prefix}} {{ item.code_discount | + filterMoney }} +

+

{{lang.goods_text4}}:{{commonData.currency_prefix}} {{ + item.eventDiscount | filterMoney }}

+
+ +
+ + +

+ {{commonData.currency_prefix}} {{item.price | filterMoney}} +

+
+ {{ item.customfield.promo_code }} +
+
+
+
+
+
+
+
+ + + + + +
+
+
+ + + + + diff --git a/clientarea/cart/hgcart/shoppingCar.php b/clientarea/cart/hgcart/shoppingCar.php new file mode 100644 index 0000000..8f64dc8 --- /dev/null +++ b/clientarea/cart/hgcart/shoppingCar.php @@ -0,0 +1,187 @@ + + + + + + +
+
+
+
+
+
+
+
+ + + + + + +
+
{{lang.shoppingCar_title}}
+ +
+
+ +
+
+ + {{item.name}} + + {{item.name}} + {{lang.shoppingCar_editGoods}} +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
{{lang.shoppingCar_goodsInfo}}{{lang.shoppingCar_goodsPrice}}{{lang.shoppingCar_goodsNums}}{{lang.shoppingCar_goodsTotalPrice}}{{lang.shoppingCar_goodsAction}}
+
+
+ + {{item.name}} + + + {{commonData.currency_prefix}}{{item.info.base_price}} +
+
+ + {{infoItem.name}} + :{{infoItem.value}} + + {{commonData.currency_prefix}}{{infoItem.price}} +
+
+
+ + + + +

{{lang.shoppingCar_goods_tock_qty}}:{{ item.stock_qty }}

+

{{lang.shoppingCar_tock_qty_tip}}

+
+ {{commonData.currency_prefix}} {{item.calcItemPrice | filterMoney}} + +
+

+ {{lang.shoppingCar_tip_text2}}:{{commonData.currency_prefix}} {{ + item.level_discount | filterMoney }} +

+

+ {{lang.shoppingCar_tip_text4}}:{{commonData.currency_prefix}} {{ item.code_discount + | filterMoney }} +

+

{{lang.goods_text4}}:{{commonData.currency_prefix}} {{ + item.eventDiscount | filterMoney }}

+
+ +
+

+ {{commonData.currency_prefix}} {{item.price | filterMoney}} +

+
+ + +
+ {{ item.customfield.promo_code }} + +
+ + +
+ +
+ +
+ {{lang.shoppingCar_no_goods_tip}} + {{lang.shoppingCar_buy_again}} + + +
+
+
+
+
+
+ +
+
+
+
+ + + +
+
+
+ + + + + diff --git a/clientarea/cart/hgcart/theme.jpg b/clientarea/cart/hgcart/theme.jpg new file mode 100644 index 0000000000000000000000000000000000000000..37ef1ae738a16951e24e1f5d746855172c97d146 GIT binary patch literal 56762 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