java-mall-app/seller/product/sale.vue

1361 lines
29 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="page">
<view class="top">
<view class="m-user-info">
<view class="m-user-index" @click="obtainUserInfo">
<view class="m-user-left">
<image
style="float: left"
lazy-load
:src="UserInfo.user_avatar"
mode="scaleToFill"
/>
<view class="m-info" style="float: left">
<label>{{ UserInfo.user_account }}</label
><label style="margin-left: 20rpx">{{
UserInfo.user_licenseplate
}}</label>
<view class="m-mobile">{{ UserInfo.user_mobile }}</view>
</view>
</view>
</view>
</view>
<view class="m-top-seach">
<view class="m-seach-input">
<view class="m-seach-image" @click="goSearch">
<image src="/static/images/seach.png"></image>
</view>
<input
type="text"
:value="search_name"
:placeholder="__('输入商品名进行搜索')"
@input="inputSearch"
/>
</view>
<view class="m-seach-text" @click="goSearch">{{ __("搜索") }}</view>
</view>
<view class="m-navbar">
<scroll-view class="scroll-view_S" scroll-x>
<block>
<view
:class="parent_id == 0 ? 'm-navbar-mu' : 'm-navbar-item'"
data-id="0"
@click="all"
>
{{ __("全部") }}
</view>
</block>
<block v-for="(val, index) in product_category" :key="index">
<view
:class="
parent_id == val.category_id ? 'm-navbar-mu' : 'm-navbar-item'
"
:data-id="val.category_id"
@click="setparentcategoryid"
>
{{ val.category_name }}
</view>
</block>
</scroll-view>
</view>
<view class="m-navbar" style="margin-top: 4rpx">
<scroll-view class="scroll-view_S" scroll-x>
<block v-for="(category, key) in detail" :key="key">
<view
:class="
category_id == category.category_id
? 'm-navbar-mu'
: 'm-navbar-item'
"
:data-id="category.category_id"
@click="setcategoryid"
>
{{ category.category_name }}
</view>
</block>
</scroll-view>
</view>
</view>
<scroll-view
v-if="productlist.length > 0"
:scroll-top="scrollTop"
scroll-y="true"
class="m-orderlist"
@scrolltolower="scrollbottom"
>
<view class="sstouch-order-list">
<view class="product-list" v-for="(items, i) in productlist" :key="i">
<view class="product-list-item">
<view class="product-item-image">
<img :src="items.product_image" />
</view>
<view class="product-item-details">
<view class="product-item-name">
{{ items.item_name }}
</view>
<view class="product-item-info">
<view>{{ __("¥") }}{{ items.item_unit_price }}</view>
<view>{{ __("库存") }}{{ items.item_quantity }}</view>
</view>
<view
class="example-body"
style="float: right; position: relative; bottom: -20rpx"
>
<uni-number-box
:min="0"
:max="items.item_quantity"
:value="numberValue"
:price="items.item_unit_price"
@change="
changes(
$event,
items.item_id,
items.item_unit_price,
items.product_image,
items.product_item_name
)
"
/>
</view>
</view>
</view>
</view>
<view class="m-footer-btn">
<view class="m-footer-btn-list">
<label>{{ __("合计:") }}</label>
<label> {{ price }}</label>
</view>
<view class="m-footer-btn-main m-footer-desable" @click="ckselectsp">
{{ __("生成订单") }}
</view>
</view>
<view class="m-loading-box" style="padding-top: 100rpx">
<block v-if="ispage">
<view class="u-loadmore">
<label class="u-loading"></label>
<text class="u-loadmore-tips">{{ __("正在加载") }}</text>
</view>
<view>
<text></text>
</view>
</block>
<block v-else>
<view class="u-loadmore u-loadmore-line">
<text class="u-loadmore-tips">{{ __("没有更多数据啦!") }}</text>
</view>
</block>
</view>
</view>
</scroll-view>
<view redirect="true" class="m-nullpage" v-else>
<view class="m-nullpage-middle">
<label class="iconfont icon-sousuo-sousuo"></label>
<view class="m-null-tip">
<text>暂无数据</text>
</view>
</view>
</view>
<!--客户列表 -->
<uni-drawer :visible="rightDrawerVehicle" mode="right">
<view class="m-top-seach" style="margin-top: 0; position: fixed">
<view
right-icon="scan"
style="width: 100%; float: left; padding: 10rpx 30rpx"
>
<view class="input-view" style="width: 100%">
<input
style="font-size: 26rpx; background: #ffffff"
class="input"
type="text"
:value="search_user_name"
:placeholder="__('输入客户名查询')"
@input="inputSearchUser"
/>
<!-- <image style="width:30rpx;height:30rpx;float:left;margin:14rpx auto;z-index:9" src="/static/images/false.png" mode="aspectFill" @click="gocancelUser" /> -->
</view>
</view>
<!-- <view class="m-cell-hd" style="width:60rpx;height:60rpx;float:left;line-height:90rpx" @click="licenseplateImage"><label class="iconfont icon-xiangji"></label></view>
<image class="m-cell-hd" style="width:60rpx;height:60rpx;float:left;margin-top:20rpx" src="/static/images/tabBar4.png" mode="aspectFill" @click="goadduser" /> -->
</view>
<scroll-view
scroll-y="true"
style="height: 100%; position: absolute; top: 132rpx"
>
<view
class="m-cells"
style="padding: 20rpx 20rpx"
v-for="(user, ii) in user_Info"
:key="ii"
>
<view
class="m-cell m-cell-access m-info-sp"
:data-id="user.user_id"
:data-index="ii"
@click="Presuser"
>
<view class="m-cell-bd">
<view class="m-order-title">
<view style="float: left">
<image
class="nav-image"
lazy-load
style="width: 60rpx; height: 60rpx"
:src="
user.user_avatar
? user.user_avatar
: 'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/demodata/assets/data/avatar.png'
"
mode="scaleToFill"
/>
</view>
<view style="float: left; margin-left: 20rpx">
<view class="m-ber-n">{{ user.user_account }}</view>
<view class="m-ber-n">{{ user.user_nickname }}</view>
<view class="m-ber-n">{{ user.user_mobile }}</view>
<!-- <view class="m-ber-n">{{user.user_licenseplate}}</view> -->
</view>
</view>
</view>
</view>
</view>
</scroll-view>
</uni-drawer>
</view>
</template>
<script>
import { mapState, mapMutations } from "vuex";
import uniNumberBox from "@/components/uni-number-box/uni-number-box.vue";
import uniDrawer from "@/components/uni-drawer/uni-drawer.vue";
import uniList from "@/components/uni-list/uni-list.vue";
import uniListItem from "@/components/uni-list-item/uni-list-item.vue";
import uniBadge from "@/components/uni-badge.vue";
export default {
data() {
return {
UserInfo: {
user_account: this.__("选择客户"),
user_avatar:
"https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/demodata/assets/data/avatar.png",
user_licenseplate: "",
user_mobile: "",
},
scrollTop: 0,
search_name: "",
page: 1,
rows: 10,
productlist: [],
ispage: true,
flag: true,
type: 0,
item_quantity: 0,
itemInfo: [],
numberValue: 0,
rightDrawerVehicle: false,
num: 0,
price: 0,
search_user_name: "",
user_Info: [],
user_id: 0,
index: 0,
isdata: true,
selectsp: 0,
current: 999999,
Address_id: 0,
product_category: [],
category_id: 0,
parent_id: 0,
leaf_items: [],
curIndex: 0,
detail: [],
product_items: [],
cartItem: [],
order_amount: 0,
};
},
computed: mapState([
"Config",
"StateCode",
"notice",
"plantformInfo",
"shopInfo",
"userInfo",
"hasLogin",
]),
components: {
uniNumberBox,
uniDrawer,
uniList,
uniListItem,
uniBadge,
},
computed: mapState([
"Config",
"StateCode",
"notice",
"plantformInfo",
"shopInfo",
"userInfo",
"hasLogin",
]),
onLoad: function (options) {
var that = this;
uni.setNavigationBarTitle({
title: this.__("销售开单"),
});
this.setData({
tapindex: options.sl ? options.sl : 1,
page: 1,
rows: 10,
productlist: [],
type: options.type ? options.type : 0,
urlArgs: options,
product_state_id: options.type ? options.type : 1001,
});
this.notice.addNotification("RefreshOrder", that.RefreshOrder, that);
that.$.request({
url: that.Config.URL.product.category,
loading: false,
ajaxCache: {
timeout: that.Config.CACHE_EXPIRE,
},
success(data) {
that.setData({
product_category: data.items,
parent_id: data.items[that.curIndex].category_id,
});
that.loadCategory(true);
},
});
},
onUnload: function () {
//移除通知
var that = this;
this.notice.removeNotification("RefreshOrder", that);
},
methods: {
...mapMutations([
"login",
"logout",
"getPlantformInfo",
"forceUserInfo",
"getUserInfo",
]),
ckselectsp: function (e) {
var that = this;
if (that.$.isNull(this.user_id)) {
that.$.confirm(that.__("请选择客户"), function (a) {
if (a.confirm) {
that.obtainUserInfo();
}
});
return;
}
if (that.$.isNull(this.num)) {
that.$.confirm(that.__("请选择商品"), function (a) {});
return;
}
uni.setStorageSync("items", that.cartItem);
var options = {
u_id: this.user_id,
};
this.$.navigateTo({
url: this.$.createUrl("/seller/user/cart", options),
});
},
closesp: function (e) {
var that = this;
that.setData({
selectct: 0,
/*flag: false*/
});
setTimeout(function () {
that.setData({
selectsp: 0,
});
}, 1e2);
},
inputSearch: function (e) {
this.setData({
search_name: e.detail.value,
});
},
inputSearchUser: function (e) {
this.setData({
search_user_name: e.detail.value,
});
this.getUser();
},
gocancelUser: function () {
this.setData({
search_user_name: "",
});
},
setcategoryid: function (e) {
this.setData({
category_id: e.currentTarget.dataset.id,
page: 1,
productlist: [],
});
this.getProductlist();
},
getUser: function () {
var that = this;
var params = {
user_nickname: that.search_user_name,
};
that.$.request({
url: that.Config.URL.seller.User_Info,
data: params,
success: function (data, status, msg, code) {
if (status == 200) {
that.setData({
user_Info: data.items,
});
} else {
that.$.alert(msg);
}
},
});
},
goadduser: function () {
var that = this;
that.$.navigateTo({
url: "/seller/user/add",
});
},
gocancel: function (e) {
this.setData({
search_name: "",
});
},
cancelAddre: function () {
this.setData({
rightDrawerAddre: false,
});
},
setparentcategoryid: function (e) {
var that = this;
that.setData({
parent_id: e.currentTarget.dataset.id,
});
that.loadCategory();
},
all: function () {
this.loadCategory(true);
},
loadCategory(t) {
var that = this;
that.$.request({
url: that.Config.URL.product.category,
data: {
category_id: that.parent_id,
recursive: 1,
},
ajaxCache: {
timeout: that.Config.CACHE_EXPIRE,
},
success(data) {
var category = [];
for (var i = 0; i < data.items.length; i++) {
category = category.concat(data.items[i].sub);
}
that.setData({
detail: category,
category_id: t ? 0 : category[0].category_id,
parent_id: t ? 0 : that.parent_id,
page: 1,
rows: 10,
productlist: [],
ispage: true,
flag: true,
type: 0,
});
that.getProductlist();
},
});
},
goSearch: function (e) {
this.setData({
page: 1,
rows: 10,
productlist: [],
ispage: true,
flag: true,
type: 0,
}),
this.getProductlist();
},
getProductlist: function () {
var that = this;
var params = {
page: that.page,
product_state_id: 1001,
product_name: that.search_name,
sidx: "item_id",
sord: that.sord,
category_id: that.category_id,
};
that.$.request({
url: this.Config.URL.seller.lists_item,
data: params,
success: function (data, status, msg, code) {
if (200 == status && data.items.length > 0) {
if (data.page >= data.total) {
that.setData({
flag: false,
ispage: false,
productlist: that.productlist.concat(data.items),
});
} else {
that.setData({
flag: true,
ispage: true,
productlist: that.productlist.concat(data.items),
});
}
that.setData({
isdata: true,
});
} else {
that.setData({
flag: false,
ispage: false,
isdata: false,
});
}
},
});
},
Presuser: function (e) {
var that = this;
var i = e.currentTarget.dataset.index;
that.setData({
UserInfo: that.user_Info[i],
user_id: e.currentTarget.dataset.id,
rightDrawerVehicle: false,
user_Info: [],
search_user_name: "",
Address_id: 0,
});
},
AddOrder: function () {
var that = this;
if (that.$.isNull(this.user_id)) {
that.$.confirm(that.__("请选择客户"), function (a) {
if (a.confirm) {
that.obtainUserInfo();
}
});
return;
}
if (that.$.isNull(this.num)) {
that.$.confirm(that.__("请选择商品"), function (a) {});
return;
}
this.saleOrder();
},
SelectAddress: function () {
var that = this;
var urlArgs = {};
var url = "";
url = "/seller/user/address";
urlArgs.issub = "true";
urlArgs.ud_id = 3;
urlArgs.u_id = that.user_id;
that.$.navigateTo({
url: that.$.createUrl(url, urlArgs),
});
},
//上传车牌照图片
licenseplateImage: function () {
var that = this;
that.$.chooseImage({
count: 1,
sizeType: ["compressed"],
success: function (n) {
that.$.showLoading();
var r = n.tempFilePaths;
that.$.uploadFile({
url: that.Config.URL.upload,
method: "POST",
filePath: r[0],
name: "upfile",
formData: {
license_plate: "test",
},
success: function (n) {
that.$.hideLoading();
var up_res = that.$.parseJSON(n.data);
that.setData({
search_user_name: up_res.data.license_plate_number,
});
that.getUser();
},
fail: function (e) {
that.$.hideLoading();
},
complete: function (e) {
that.$.hideLoading();
},
});
},
fail: function (e) {
that.$.hideLoading();
},
complete: function (e) {
that.$.hideLoading();
},
});
},
saleOrder: function () {
var that = this;
var params = {
buyer_user_id: this.user_id,
ud_id: this.Address_id,
items: [],
};
var items = [];
for (var i in that.itemInfo) {
if (that.itemInfo[i].cart_quantity > 0) {
items.push(that.itemInfo[i]);
}
}
params.items = JSON.stringify(items);
that.$.request({
url: that.Config.URL.seller.Order_Base,
method: "POST",
data: params,
success: function (data, status, msg, code) {
if (status == 200) {
that.$.alert(that.__("添加订单成功!"), function () {
let url = that.$.sprintf(
"/seller/order/detail?on=%s",
data.order_id[0]
);
that.$.gopage(url);
/*
setTimeout(function() {
that.$.navigateBack(1);
}, 2e3);
*/
});
} else {
that.$.confirm(msg, function (a) {});
}
},
});
},
scrollbottom: function () {
if (this.flag) {
var that = this;
that.setData({
flag: false,
});
clearTimeout(t);
var t = setTimeout(function () {
that.setData({
state_type: that.type,
flag: false,
page: parseInt(that.page) + 1,
rows: 10,
});
that.getProductlist();
}, 100);
}
},
changes: function (e, id, t, i, v) {
var that = this;
that.itemInfo[id] = {
item_id: id,
cart_quantity: e,
item_unit_price: t,
product_image: i,
product_item_name: v,
};
var num = 0;
that.cartItem = [];
for (var i in that.itemInfo) {
num = num + that.itemInfo[i].cart_quantity;
if (that.itemInfo[i].cart_quantity > 0) {
that.cartItem.push(that.itemInfo[i]);
}
}
that.checkout();
that.setData({
num: num,
});
},
checkout: function () {
var that = this;
if (that.$.isNull(that.user_id)) {
that.$.confirm(that.__("请选择客户"), function (a) {
if (a.confirm) {
that.obtainUserInfo();
}
});
return;
}
var pat = [];
var params = {};
for (var i in that.cartItem) {
if (that.cartItem[i].cart_quantity > 0) {
var t =
that.cartItem[i].item_id + "|" + that.cartItem[i].cart_quantity;
pat.push(t);
}
}
if (pat) {
params = {
cart_id: pat.join(","),
if_chain: 0,
buyer_user_id: that.user_id,
};
}
// console.log(params)
that.$.request({
url: this.Config.URL.seller.checkout,
data: params,
success: function (data, status, msg, code) {
if (200 == status) {
that.setData({
price: data.orderSelMoneyAmount,
});
}
},
});
},
obtainUserInfo: function () {
this.setData({
rightDrawerVehicle: true,
});
},
RefreshOrder: function (e) {
this.setData({
Address_id: e.ud_id,
});
},
//扫码
getscanCode: function () {
var that = this;
uni.scanCode({
scanType: ["qrCode", "barCode"],
success: function (res) {
//console.log('条码类型:' + res.scanType);
//console.log('条码内容:' + res.result);
that.setData({
chain_code: res.result,
});
},
});
},
},
};
</script>
<style lang="scss">
@import "../../styles/base.scss";
@import "../../styles/sstouch_member.scss";
@import "../../styles/sstouch_common.scss";
@import "../../styles/_variables";
.top {
width: 100%;
// height: 320rpx;
vertical-align: top;
position: fixed;
background-color: #ececec;
background: #f5f5f5;
overflow: hidden;
z-index: 9;
}
.m-top-seach {
width: 100%;
height: 100rpx;
background: #f5f5f5;
overflow: hidden;
z-index: 99;
line-height: 82rpx;
position: relative;
// top:32rpx;
}
.input-view {
width: 100%;
display: flex;
background-color: #ffffff;
height: 30px;
flex-wrap: nowrap;
margin: 7px 0;
line-height: 30px;
// border:2rpx solid #ebebe7;
border-radius: 15rpx;
}
.input-view .input {
height: 30px;
background-color: #ffffff;
border-radius: 15px;
line-height: 30px;
width: 80%;
border: 0; // 去除未选中状态边框
outline: none; // 去除选中状态边框
background-color: rgba(0, 0, 0, 0); // 透明背景
padding: 0 20rpx;
}
.m-user-info {
text-align: center;
z-index: 3;
color: #666;
}
.m-user-info image {
width: 100rpx;
height: 100rpx;
border-radius: 50%;
border: 1px solid #fff;
vertical-align: middle;
box-shadow: 0px 2rpx 15rpx rgba(0, 0, 0, 0.35);
// position: absolute;
// left:260rpx;
// top:30rpx;
}
.m-user-info .m-name {
position: absolute;
top: 40rpx;
text-align: center;
width: 200rpx;
}
.m-orderlist {
position: absolute;
// top: calc(var(--status-bar-height) + 208rpx);
padding-top: 460rpx;
box-sizing: border-box;
width: 100%;
height: 100%;
}
.m-navbar-item:after {
border: none;
}
.m-navbar-item.m-navbar-item-on {
background-color: #fff;
color: $default-skin-bg;
}
.m-navbar-item.m-navbar-item-on::before {
content: " ";
position: absolute;
left: 0;
bottom: 0;
right: 0;
height: 6rpx;
border-bottom: 6rpx solid $default-skin-bg;
color: #cccccc;
-webkit-transform-origin: 0 100%;
transform-origin: 0 100%;
-webkit-transform: scaleY(0.5);
transform: scaleY(0.5);
z-index: 3;
}
.img {
width: 140rpx;
height: 140rpx;
}
.u-loadmore {
width: 100%;
}
.m-nullpage {
padding-top: 400rpx;
}
.uni-numbox__minus,
.uni-numbox__plus {
width: 30rpx;
}
.uni-numbox {
height: 60rpx;
}
/*底部按钮 start*/
.m-footer-btn {
height: 98rpx;
width: 100%;
position: fixed;
bottom: 0;
left: 0;
background: rgba(229, 229, 229, 1);
text-align: center;
z-index: 3;
}
.m-footer-btn-list {
width: 50%;
height: 100%;
position: relative;
float: left;
// display: flex;
text-align: center;
line-height: 98rpx;
}
.m-footer-btn-list label {
font-size: 36rpx;
font-family: PingFang SC;
font-weight: 500;
color: rgba(51, 51, 51, 1);
}
.m-footer-btn-list::before {
content: " ";
position: absolute;
left: 0;
top: -2rpx;
right: 0;
height: 2rpx;
border-bottom: 2rpx solid #d5d5d5;
color: #cccccc;
-webkit-transform-origin: 0 100%;
transform-origin: 0 100%;
-webkit-transform: scaleY(0.5);
transform: scaleY(0.5);
z-index: 3;
}
.m-footer-btn-item {
position: relative;
float: left;
width: 33.3333333333333%;
font-size: 24rpx;
color: #888;
line-height: 40rpx;
padding: 15rpx 0;
// border-right: 1rpx solid #d5d5d5;
box-sizing: border-box;
}
.m-footer-btn-item::last-child {
border: none;
}
.m-footer-btn-icon {
width: 40rpx;
height: 28rpx;
// margin: 0 auto;
position: relative;
line-height: 28rpx;
top: 28rpx;
}
.m-footer-btn-item image {
width: 40rpx;
height: 40rpx;
}
.m-footer-btn-item contact-button {
position: absolute;
width: 100%;
height: 100%;
left: 0;
top: 0;
opacity: 0;
}
.m-footer-btn-main {
width: 50%;
height: 76rpx;
float: left;
background: rgba(230, 0, 18, 1);
border-radius: 38rpx;
line-height: 100rpx;
font-size: 32rpx;
line-height: 76rpx;
margin: 12rpx auto;
font-size: 36rpx;
font-family: PingFang SC;
font-weight: 500;
color: rgba(255, 255, 255, 1);
}
.nav-image {
width: 60rpx;
height: 60rpx;
// float:right;
margin-top: 12rpx;
border-radius: 50%;
}
.m-cell::before {
border-top: 0px solid #ebebe7;
}
.m-ad-item:after {
content: " ";
position: absolute;
border-bottom: 1px solid #ebebe7;
left: 0;
right: 0;
bottom: 0;
height: 1px;
transform-origin: 0 100%;
transform: scaleY(0.5);
color: #ebebe7;
}
.m-ad-item {
background-color: #fff;
padding: 24rpx 20rpx 24rpx 30rpx;
position: relative;
/*border-bottom: 1px solid #d5d5d5;*/
}
.tbl::after {
border-left: 0rpx solid #ebebe7;
}
.m-ad-l {
width: 70%;
display: inline-block;
}
.m-ad-i-top {
font-size: 16px;
line-height: 20px;
}
.m-ad-i-top text {
margin-right: 20rpx;
}
.m-ad-i-bot {
font-size: 14px;
color: #888;
line-height: 20px;
margin-top: 10rpx;
}
.m-ad-icon {
font-size: 12px;
padding: 4rpx 8rpx;
background-color: $default-skin-bg;
color: #fff;
border-radius: 8rpx;
margin-right: 8rpx;
text-align: center;
}
.m-ad-edit {
position: absolute;
right: 20rpx;
top: 50%;
width: 80rpx;
height: 100rpx;
margin-top: -50rpx;
padding-left: 40rpx;
}
.m-ad-edit label {
width: 40rpx;
height: 50rpx;
line-height: 50rpx;
font-size: 35rpx;
display: block;
vertical-align: middle;
text-align: center;
color: #888888;
}
/*全部商品 start*/
.m-navbar-item {
// width:228rpx;
padding: 20rpx 30rpx;
font-size: 24rpx;
display: inline-block;
}
.m-navbar {
height: 76rpx;
position: relative;
// margin-top:240rpx;
z-index: 99;
}
.scroll-view_S {
white-space: nowrap;
}
.m-navbar-mu {
padding: 20rpx 30rpx;
font-size: 24rpx;
display: inline-block;
color: #db384c;
}
.m-navbar:after {
border-bottom: 0px solid #cccccc;
}
.zc {
width: 50rpx;
height: 80rpx;
line-height: 70rpx;
font-size: 40rpx;
float: right;
opacity: 0.6;
padding: 20rpx;
}
.img {
width: 122rpx;
height: 122rpx;
}
.m-info {
height: 50%;
padding-left: 20rpx;
}
.m-user-index {
width: 100%;
height: 200rpx;
float: right;
text-align: center;
line-height: 30rpx;
}
.m-user-left {
position: relative;
top: 40rpx;
left: 78rpx;
}
/*选择规格遮罩 start*/
.m-panel-sp {
position: fixed;
width: 100%;
height: 100%;
top: 0;
left: 0;
z-index: 4;
background-color: rgba(0, 0, 0, 0.2);
}
.m-panel-sp-content {
background-color: #fff;
position: absolute;
width: 100%;
bottom: 0;
box-shadow: 0px -10rpx 15rpx rgba(0, 0, 0, 0.35);
}
.m-product-item {
padding: 20rpx 0 20rpx 0;
}
.m-product-info {
width: 440rpx;
}
.u-cart-num {
position: absolute;
bottom: 20rpx;
right: 20rpx;
z-index: 2;
}
.m-seach-input {
width: 80%;
height: 68rpx;
background: rgba(255, 255, 255, 1);
border-radius: 10rpx;
margin: 0 21rpx;
float: left;
}
.m-seach-image {
width: 50rpx;
height: 100%;
line-height: 76rpx;
float: left;
}
.m-seach-input image {
width: 26rpx;
height: 26rpx;
// float:left;
padding-left: 17rpx;
}
.m-seach-input input {
height: 100%;
padding-left: 20rpx;
font-size: 24rpx;
font-family: PingFang SC;
font-weight: 500;
color: rgba(17, 17, 17, 1);
border: 0;
}
.m-seach-text {
width: 10%;
height: 68rpx;
float: left;
font-size: 36rpx;
font-family: PingFang SC;
font-weight: bold;
color: rgba(17, 17, 17, 1);
}
.m-mobile {
font-size: 30rpx;
font-family: PingFang SC;
font-weight: 500;
color: rgba(17, 17, 17, 1);
}
.m-info label {
font-size: 30rpx;
font-family: PingFang SC;
font-weight: 500;
color: rgba(102, 102, 102, 1);
}
.product-list {
height: 180rpx;
background: rgba(255, 255, 255, 1);
padding: 36rpx 20rpx;
margin-top: 17rpx;
}
.product-list-item {
// padding:20rpx;
}
.product-item-image {
width: 180rpx;
height: 180rpx;
float: left;
}
.product-item-image img {
width: 100%;
height: 100%;
}
.product-item-details {
width: 65%;
height: 140rpx;
padding: 20rpx;
float: left;
}
.product-item-name {
width: 100%;
height: 90rpx;
font-size: 24rpx;
float: left;
font-family: PingFang SC;
font-weight: bold;
color: rgba(17, 17, 17, 1);
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow: hidden;
}
.product-item-info {
width: 40%;
height: 80rpx;
float: left;
}
.product-item-info view {
font-size: 24rpx;
font-family: PingFang SC;
font-weight: bold;
color: rgba(102, 102, 102, 1);
}
</style>