mirror of
https://gitee.com/lab1024/smart-admin.git
synced 2025-10-02 02:06:38 +08:00
Merge branch 'sit-Carl' of gitee.com:carl_Ming_1/smart-admin into sit-jiamin-v2
This commit is contained in:
commit
77a37e89f0
@ -608,3 +608,16 @@ export const getOrderList = (user, status) => {
|
||||
return fetch('/api/getOrderList', data)
|
||||
}
|
||||
|
||||
|
||||
|
||||
//购物车操作
|
||||
export const memberAddress = (type,data) => {
|
||||
return fetch('memberAddress?type='+type, data, 'POST' )
|
||||
}
|
||||
|
||||
|
||||
//支付宝支付二维码
|
||||
export const generateOrderAlipay = (data) => {
|
||||
return fetch('generateOrderAlipay', data, 'POST' )
|
||||
}
|
||||
|
@ -626,3 +626,72 @@ img, picture {
|
||||
}
|
||||
}
|
||||
}
|
||||
.rc_contline {
|
||||
border-bottom: 3px solid #f6f6f6;
|
||||
height: 0px;
|
||||
margin: 0;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.page_modules {
|
||||
padding-top: 60px;
|
||||
}
|
||||
|
||||
.cont_modules {
|
||||
margin: 0 auto;
|
||||
max-width: 1400px;
|
||||
}
|
||||
|
||||
.inline_right {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.inline_mid {
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.inline_left {
|
||||
display: flex;
|
||||
justify-content: space-evenly;
|
||||
width: 100%;
|
||||
|
||||
}
|
||||
|
||||
.li_inline {
|
||||
li {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.color_red {
|
||||
color: #E2001A;
|
||||
}
|
||||
|
||||
.tc {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.tr {
|
||||
text-align: right;
|
||||
}
|
||||
.el-dialog{
|
||||
width: 90%;
|
||||
max-width: 440px;
|
||||
}
|
||||
#tns2-iw{ height: 90px;}
|
||||
.rc-carousel:not(.rc-carousel--loaded){visibility:visible!important}
|
||||
@media screen and (max-width: 768px) {
|
||||
.el-message-box{
|
||||
width: 300px;
|
||||
}
|
||||
.el-dialog{
|
||||
width: 90%;
|
||||
}
|
||||
}
|
||||
|
@ -69,46 +69,6 @@ color: #FFFFFF;
|
||||
|
||||
|
||||
|
||||
.rc-address {
|
||||
margin-top: 8px;
|
||||
text-overflow: -o-ellipsis-lastline;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
display: -webkit-box;
|
||||
-webkit-line-clamp: 2;
|
||||
line-clamp: 2;
|
||||
-webkit-box-orient: vertical;
|
||||
font-size: 14px;
|
||||
color: #333333;
|
||||
}
|
||||
.rc-footer {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-top: 20px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.rc-right {
|
||||
span {
|
||||
border-bottom: 1px solid #666666;
|
||||
}
|
||||
span:first-child {
|
||||
margin-right: 16px;
|
||||
}
|
||||
}
|
||||
img{
|
||||
width: 43px;
|
||||
}
|
||||
.rc-foot{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
color: #333333;
|
||||
font-size: 14px;
|
||||
span{
|
||||
margin-left: 8px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -274,24 +234,5 @@ img{
|
||||
font-size: 20px;
|
||||
color: #333333;
|
||||
|
||||
}
|
||||
.rc-footer {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding-bottom: 20px;
|
||||
margin-top: 8px;
|
||||
.rc-right {
|
||||
span {
|
||||
border-bottom: 1px solid #666666;
|
||||
}
|
||||
span:first-child {
|
||||
margin-right: 16px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
@ -144,10 +144,6 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
/deep/.el-dialog {
|
||||
width: 80%;
|
||||
position: relative;
|
||||
}
|
||||
.rc-discount {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
@ -169,8 +165,7 @@
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
color: #e1001a;
|
||||
padding-right: 21px;
|
||||
width: 30%;
|
||||
width: 34%;
|
||||
float: left;
|
||||
height: 100%;
|
||||
i {
|
||||
@ -190,7 +185,7 @@
|
||||
.rc-right {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
margin-left: 36px;
|
||||
padding-left: 20px;
|
||||
justify-content: center;
|
||||
height: 100%;
|
||||
i {
|
||||
@ -204,7 +199,7 @@
|
||||
}
|
||||
span {
|
||||
display: block;
|
||||
margin-top: 8px;
|
||||
margin-top: 2px;
|
||||
}
|
||||
em {
|
||||
font-style: normal;
|
||||
@ -405,11 +400,6 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
/deep/.el-dialog {
|
||||
width: 440px;
|
||||
height: 432px;
|
||||
position: relative;
|
||||
}
|
||||
.rc-discount {
|
||||
position: relative;
|
||||
img {
|
||||
@ -430,8 +420,7 @@
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
color: #e1001a;
|
||||
padding-right: 21px;
|
||||
width: 30%;
|
||||
width: 34%;
|
||||
float: left;
|
||||
height: 100%;
|
||||
i {
|
||||
@ -451,7 +440,7 @@
|
||||
.rc-right {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
margin-left: 36px;
|
||||
padding-left: 20px;
|
||||
justify-content: center;
|
||||
height: 100%;
|
||||
i {
|
||||
@ -465,7 +454,7 @@
|
||||
}
|
||||
span {
|
||||
display: block;
|
||||
margin-top: 8px;
|
||||
margin-top: 2px;
|
||||
}
|
||||
em {
|
||||
font-style: normal;
|
||||
@ -587,3 +576,16 @@
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.rc-carousel__gallery-thumbnail{
|
||||
display: inline;
|
||||
.rc-img--square{
|
||||
border: 1px solid #ddd;
|
||||
border-radius: 3px;
|
||||
}
|
||||
&.rc-carousel__gallery-thumbnail--active{
|
||||
.rc-img--square{
|
||||
border: 1px solid #E2001A;
|
||||
}
|
||||
}
|
||||
}
|
BIN
rc-busness/assets/pay/fail.png
Normal file
BIN
rc-busness/assets/pay/fail.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 12 KiB |
BIN
rc-busness/assets/pay/wx.png
Normal file
BIN
rc-busness/assets/pay/wx.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.1 KiB |
BIN
rc-busness/assets/pay/zfb.png
Normal file
BIN
rc-busness/assets/pay/zfb.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.6 KiB |
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="ts-area-picker-container">
|
||||
<input class="ts-area-picker-value-displayer" @focus="initAddress" v-model="displayValue" placeholder="请选择所在地区"></input>
|
||||
<input class="ts-area-picker-value-displayer" placeholder="请选择收货地址" @focus="popAddress" v-model="displayValue"></input>
|
||||
<input type="hidden" :value="returnValue">
|
||||
|
||||
<div class="ts-area-picker-desktop" v-if="show">
|
||||
@ -56,27 +56,14 @@ export default {
|
||||
},
|
||||
methods:{
|
||||
initAddress(){
|
||||
this.show=true;
|
||||
//Initilizing
|
||||
|
||||
//mobile
|
||||
let self=this;
|
||||
// defaultValues : array[{id:"_ID_IN_columns_of_province",name:"_NAME_IN_columns"},{id:"_ID_IN_columns_of_city",name:"_NAME_IN_columns"},{id:"_ID_IN_columns_of_area",name:"_NAME_IN_columns"}]
|
||||
let defaultValues = [{id:this.columns[0].values[0].id, name:this.columns[0].values[0].name},{id:this.columns[1].values[0].id, name:this.columns[1].values[0].name},{id:this.columns[2].values[0].id, name:this.columns[2].values[0].name}];
|
||||
if(this.defaultValues)
|
||||
defaultValues=this.defaultValues;
|
||||
this.$children.forEach(function(vueComponent){
|
||||
if(vueComponent._name=="<VanPicker>")
|
||||
if(this.defaultValues && this.defaultValues.length>0)
|
||||
{
|
||||
self.onChange(vueComponent,defaultValues); //Important
|
||||
defaultValues = this.defaultValues;
|
||||
this.onConfirm(defaultValues);
|
||||
}
|
||||
});
|
||||
//mobile end
|
||||
|
||||
//PC
|
||||
this.curDisplayingColIndex=0;
|
||||
this.switchTab(this.curDisplayingColIndex);
|
||||
//PC end
|
||||
//Initilizing end
|
||||
},
|
||||
pickValue(pickId,pickName){
|
||||
@ -160,7 +147,7 @@ export default {
|
||||
return false;
|
||||
for(var i in haystack){
|
||||
if(haystack[i].id==needle.id){
|
||||
return true;
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
@ -245,6 +232,33 @@ export default {
|
||||
},
|
||||
popAddress() {
|
||||
this.show=true;
|
||||
let _self=this;
|
||||
|
||||
//mobile
|
||||
//const picker = this.selectComponent('.ts-area-picker-mobile-component');
|
||||
this.defaultValues.forEach(function(ele,index){
|
||||
let tmpPointer=parseInt(_self.inArray(ele,_self.columns[index].values));
|
||||
if(tmpPointer)
|
||||
{
|
||||
_self.columns[index].defaultIndex = tmpPointer;
|
||||
}
|
||||
});
|
||||
|
||||
// setTimeout(function(){
|
||||
// //debugger;
|
||||
// _self.$children.forEach(function(vueComponent){
|
||||
// if(vueComponent._name=="<VanPicker>")
|
||||
// {
|
||||
// _self.onChange(vueComponent,_self.returnValueArr); //Important
|
||||
// }
|
||||
// });
|
||||
// },500);
|
||||
//mobile end
|
||||
|
||||
//PC
|
||||
this.curDisplayingColIndex=0;
|
||||
this.switchTab(this.curDisplayingColIndex);
|
||||
//PC end
|
||||
},
|
||||
pcHideAddress() {
|
||||
this.onConfirm(this.returnValueArr);
|
||||
@ -303,7 +317,7 @@ export default {
|
||||
}
|
||||
},
|
||||
mounted(){
|
||||
console.log(this.defaultValues);
|
||||
this.initAddress();
|
||||
},
|
||||
components:{
|
||||
|
||||
@ -312,13 +326,13 @@ export default {
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
.ts-area-picker-container{display:inline-block;}
|
||||
.ts-area-picker-container{display:inline-block;position:relative;}
|
||||
.ts-area-picker-value-displayer{
|
||||
|
||||
}
|
||||
.ts-area-picker-tmp-value{
|
||||
border-bottom:1px solid #D7D7D7;
|
||||
padding:0 2.5rem;
|
||||
padding:0;
|
||||
box-sizing: border-box;
|
||||
position:relative;
|
||||
ul{
|
||||
@ -332,6 +346,7 @@ export default {
|
||||
padding: 1.25rem 0;
|
||||
margin-right:.75rem;
|
||||
cursor: pointer;
|
||||
text-align: center;
|
||||
&.active{
|
||||
color:#E2001A;
|
||||
border-bottom:4px solid #E2001A;
|
||||
@ -467,11 +482,15 @@ export default {
|
||||
width:40rem;
|
||||
}
|
||||
.ts-area-picker-desktop{
|
||||
position:absolute;
|
||||
top:0;
|
||||
left:0;
|
||||
display:block;
|
||||
width:100%;
|
||||
height:19.25rem;
|
||||
border:1px solid #808285;
|
||||
overflow:hidden;
|
||||
background:#fff;
|
||||
}
|
||||
}
|
||||
@keyframes flash-error
|
||||
|
File diff suppressed because one or more lines are too long
@ -20,14 +20,20 @@ export default async(url = '', data = {}, type = 'GET', method = 'fetch') => {
|
||||
}
|
||||
|
||||
if (window.fetch && method === 'fetch') {
|
||||
let token='';
|
||||
let tokenStr = localStorage.getItem("userInfo");
|
||||
if(tokenStr){
|
||||
tokenStr = JSON.parse(tokenStr);
|
||||
if(tokenStr && tokenStr.xaccessToken)
|
||||
token=tokenStr.xaccessToken;
|
||||
}
|
||||
let requestConfig = {
|
||||
|
||||
method: type,
|
||||
headers: {
|
||||
// 'Accept': 'text/plain',
|
||||
'Content-Type': 'application/json'
|
||||
'Content-Type': 'application/json',
|
||||
'x-access-token': token
|
||||
},
|
||||
|
||||
mode: 'cors',
|
||||
// channelId:'H5@2021',
|
||||
cache: 'force-cache'
|
||||
|
127
rc-busness/pages/address/address.vue
Normal file
127
rc-busness/pages/address/address.vue
Normal file
@ -0,0 +1,127 @@
|
||||
<template>
|
||||
<div>
|
||||
<van-address-edit
|
||||
:area-list="areaList"
|
||||
:address-info="{
|
||||
name: editAddressData.name,
|
||||
tel: editAddressData.tel,
|
||||
addressDetail: editAddressData.detailAddress,
|
||||
areaCode: areaCode,
|
||||
}"
|
||||
show-delete
|
||||
show-set-default
|
||||
show-search-result
|
||||
:search-result="searchResult"
|
||||
@save="onSave"
|
||||
@delete="onDelete"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { Toast } from "vant";
|
||||
import { areaList } from "@vant/area-data";
|
||||
var _ = require("lodash");
|
||||
import { memberAddress } from "../../ajax/getData";
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
areaList,
|
||||
searchResult: [],
|
||||
areaCode: "",
|
||||
};
|
||||
},
|
||||
props: ["editAddressData"],
|
||||
computed: {},
|
||||
methods: {
|
||||
async onSave(content) {
|
||||
// Toast('save');
|
||||
let provinceId = Number(content.areaCode.substring(0, 2)); //省份id
|
||||
let cityId = Number(content.areaCode.substring(2, 4)); //城市id
|
||||
let districtId = Number(content.areaCode.substring(4, 7)); //区域编码
|
||||
//id 详细地址 /收货人姓名 电话号码 省份id/城市id/区域编码
|
||||
let memberId = JSON.parse(localStorage.getItem("userInfo")).data.id;
|
||||
let postData = {
|
||||
memberId,
|
||||
provinceId: 25,
|
||||
cityId: 36,
|
||||
districtId: 418,
|
||||
// provinceId,
|
||||
// cityId,
|
||||
// districtId,
|
||||
detailAddress: content.addressDetail,
|
||||
recipient: content.name,
|
||||
recipientPhone: content.tel,
|
||||
default: content.default,
|
||||
};
|
||||
let saveType = this.editAddressData.saveType ? "update" : "add";
|
||||
let data = await memberAddress(saveType, postData);
|
||||
if (data) {
|
||||
this.$message({
|
||||
type: "warning",
|
||||
message: data.msg,
|
||||
});
|
||||
if (data.code == "0") {
|
||||
this.$emit("isClose", false);
|
||||
}
|
||||
}
|
||||
},
|
||||
async onDelete() {
|
||||
// Toast("delete");
|
||||
let postData = {
|
||||
ids: this.editAddressData.id,
|
||||
memberId: this.editAddressData.memberId,
|
||||
};
|
||||
let data = await memberAddress("delete", postData);
|
||||
if (data) {
|
||||
this.$message({
|
||||
type: "warning",
|
||||
message: data.msg,
|
||||
});
|
||||
if (data.code == "0") {
|
||||
this.$emit("isClose", false);
|
||||
}
|
||||
}
|
||||
},
|
||||
async areaCodeInit() {
|
||||
var city = this.editAddressData.city;
|
||||
var district = this.editAddressData.district;
|
||||
this.areaCode = "1310001";
|
||||
// _.forEach(this.areaList.city_list, (o, c) => {
|
||||
// if (o == city) {
|
||||
// // let cityId = String(_.take(c, 2));
|
||||
// let cityId = c.substring(0, 4);
|
||||
// _.forEach(this.areaList.county_list, (i, a) => {
|
||||
// if (i == district) {
|
||||
// // let districtId = String(_.take(a, 2));
|
||||
// let districtId = a.substring(0, 4);
|
||||
// if (cityId == districtId) {
|
||||
// this.areaCode = a;
|
||||
// }
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
// });
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
this.areaCodeInit();
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.van-area {
|
||||
width: 400px;
|
||||
margin: 0 auto;
|
||||
border: 1px solid #808285;
|
||||
}
|
||||
.van-popup {
|
||||
background-color: transparent;
|
||||
}
|
||||
.van-overlay {
|
||||
background-color: transparent;
|
||||
}
|
||||
.v-modal {
|
||||
background: transparent;
|
||||
}
|
||||
</style>
|
@ -1,89 +1,83 @@
|
||||
<template>
|
||||
<div>
|
||||
|
||||
<div class="rc-header">
|
||||
<div class="rc-main">
|
||||
<Myheader></Myheader>
|
||||
<tabs></tabs>
|
||||
<div class="rc-commodity">
|
||||
<div class="rc-commondi">
|
||||
<img src="../../assets/image/rc-select.png" alt="" />
|
||||
<span>商品</span>
|
||||
</div>
|
||||
|
||||
<div class="rc-main">
|
||||
<tabs></tabs>
|
||||
<div class="cart-list">
|
||||
<div class="header">
|
||||
<div class="list-left">
|
||||
<label class="check-label">
|
||||
<input type="checkbox" v-model="checkAll" />
|
||||
</label>
|
||||
<span class="name">商品</span>
|
||||
</div>
|
||||
<ul>
|
||||
<li>单价</li>
|
||||
<li>数量</li>
|
||||
<li>操作</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="rc-select">
|
||||
<label>
|
||||
<input type="checkbox" v-model="checkAll">
|
||||
全选
|
||||
<div class="header_ph">
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<div class="list-left">
|
||||
<label class="check-label">
|
||||
<input type="checkbox" v-model="checkAll" />
|
||||
</label>
|
||||
|
||||
<div class="select-right">
|
||||
<img src="../../assets/image/userupdate.png" alt="" />
|
||||
<span @click="useredit">编辑</span>
|
||||
<span class="name">全选</span>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div v-for="(item, index) in goldmedal"
|
||||
:key="index"
|
||||
class="rc-userdemand"
|
||||
|
||||
</el-col>
|
||||
<el-col :span="12" class="tr">
|
||||
<span @click="editList()"
|
||||
><i class="el-icon-edit"></i>{{ editState }}</span
|
||||
></el-col
|
||||
>
|
||||
<div class="rc-userdeman">
|
||||
<label>
|
||||
<input type="checkbox" v-model="item.checked">
|
||||
</el-row>
|
||||
</div>
|
||||
<div class="list" v-for="(item, index) in cartData" :key="index">
|
||||
<div class="list-left">
|
||||
<label class="check-label">
|
||||
<input type="checkbox" v-model="item.checked" />
|
||||
</label>
|
||||
|
||||
<!-- <img :src="item.image" /> -->
|
||||
<!-- <img :src="checkone?require('../../assets/image/rc-unselect.png'):require('../../assets/image/rc-select.png')" @click="userclick(checkone,index)"/> -->
|
||||
<img :src="item.productImg" alt="" class="re-message" />
|
||||
<div class="product">
|
||||
<div class="product-img">
|
||||
<img :src="item.productImg" alt="" />
|
||||
</div>
|
||||
<div class="rc-userdem">
|
||||
<div class="rc-userdema">
|
||||
<span>{{ item.productName }}</span>
|
||||
<em>规格:{{ item.specifications }}</em>
|
||||
<div class="right">
|
||||
<p class="product-title" v-text="item.productName"></p>
|
||||
<p class="specifications">规格:{{ item.specifications }}</p>
|
||||
</div>
|
||||
<div class="rc-userd">
|
||||
<i>¥{{ item.productPrice }}</i>
|
||||
</div>
|
||||
</div>
|
||||
<ul>
|
||||
<li class="product-price">¥{{ item.productPrice }}</li>
|
||||
<li>
|
||||
<div class="rc-jia">
|
||||
<img src="../../assets/image/userjian.png" alt="" @click="sub(item.buyCount,index)"/>
|
||||
<strong> {{item.buyCount}} </strong>
|
||||
<img src="../../assets/image/userjia.png" alt="" @click="plus(item.buyCount,index)" />
|
||||
|
||||
<img
|
||||
src="../../assets/image/userjian.png"
|
||||
alt=""
|
||||
@click="sub(item.buyCount, index)"
|
||||
/>
|
||||
<input type="text" v-model="item.buyCount" />
|
||||
<img
|
||||
src="../../assets/image/userjia.png"
|
||||
alt=""
|
||||
@click="plus(item.buyCount, index)"
|
||||
/>
|
||||
</div>
|
||||
<em @click="userdele(item,index)">删除</em>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="rc-footer">
|
||||
<div class="rc-foote">
|
||||
<div class="rc-shop">
|
||||
<i>总计:</i>
|
||||
<span>¥{{ sumPrice }}</span>
|
||||
</div>
|
||||
<div class="rc-delete" @click="usejiesuan(item,index)">
|
||||
<span>
|
||||
{{ userdelete }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</li>
|
||||
<li class="del"><em @click="userdele(item)">删除</em></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="rc-footera">
|
||||
<div class="rc-foote">
|
||||
|
||||
<div class="rc-shop">
|
||||
<label>
|
||||
<input type="checkbox" v-model="checkAll">
|
||||
<input type="checkbox" v-model="checkAll" />
|
||||
全选
|
||||
</label>
|
||||
</div>
|
||||
@ -97,9 +91,8 @@
|
||||
<em>共选择{{ sumlength }}件商品</em>
|
||||
</div>
|
||||
|
||||
<strong @click="usejiesuan(item,index)" >{{mustpay}}</strong>
|
||||
<strong @click="usejiesuan()">{{ mustpay }}</strong>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="rc-shop">
|
||||
@ -114,19 +107,15 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { List } from 'vant';
|
||||
import Myheader from "~/components/header.vue";
|
||||
import tabs from "@/components/tabs.vue";
|
||||
import instance from "@/config/request";
|
||||
import { isexistCart, generateOrderWX, deleteCart } from "../../ajax/getData";
|
||||
import accMul from "../../config/setDec.js"
|
||||
export default {
|
||||
middleware: 'metaTitle',
|
||||
meta: {title: '购物车'},
|
||||
middleware: "metaTitle",
|
||||
meta: { title: "购物车" },
|
||||
data() {
|
||||
return {
|
||||
ordersum: 1,
|
||||
@ -137,72 +126,67 @@ export default {
|
||||
ys1: true,
|
||||
ys2: true,
|
||||
userdelete: "结算",
|
||||
orderprice:'¥199.00',
|
||||
mustpay:'立即结算',
|
||||
totalMoney:'',
|
||||
orderprice: "¥199.00",
|
||||
mustpay: "立即结算",
|
||||
editState: "编辑",
|
||||
dellist: [],
|
||||
totalMoney: "",
|
||||
allChecked: false,
|
||||
userid: null,
|
||||
goldmedal: [
|
||||
|
||||
cartData: [
|
||||
// {
|
||||
// ordernumber: "1111111111111111111",
|
||||
// orderstype: 1,
|
||||
// image:require('../../assets/image/rc-select.png'),
|
||||
// sales_num:1,
|
||||
// usereat: "英国短毛猫成猫全价湿粮",
|
||||
// ordernum: 0,
|
||||
// num: "5kg",
|
||||
// specification: "1",
|
||||
// buttontitle: "立即支付",
|
||||
// checked:true,
|
||||
// userprice: "167",
|
||||
|
||||
// catimage: require("../../assets/image/rc-win.png"),
|
||||
// buyCount: 3,
|
||||
// id: 1,
|
||||
// memberId: "1",
|
||||
// productCode: "432434",
|
||||
// productImg: require("../../assets/image/rc-select.png"),
|
||||
// productName: "测试商品",
|
||||
// productPrice: 399.0,
|
||||
// specifications: "5KG",
|
||||
// checked: false,
|
||||
// },
|
||||
|
||||
// {
|
||||
// ordernumber: "1111111111111111111",
|
||||
// sales_num:1,
|
||||
// usereat: "每年4次免积分产品试吃",
|
||||
// image:require('../../assets/image/rc-select.png'),
|
||||
|
||||
// buyCount: 1,
|
||||
// id: 2,
|
||||
// memberId: "2",
|
||||
// productCode: "432434",
|
||||
// productImg: require("../../assets/image/rc-select.png"),
|
||||
// productName: "测试商品222",
|
||||
// productPrice: "199.00",
|
||||
// specifications: "5KG",
|
||||
// checked: true,
|
||||
// },
|
||||
// {
|
||||
// buyCount: 4,
|
||||
// id: 3,
|
||||
// memberId: "3",
|
||||
// productCode: "432434",
|
||||
// productImg: require("../../assets/image/rc-select.png"),
|
||||
// productName: "测试商品3333",
|
||||
// productPrice: 69.01,
|
||||
// specifications: "5KG",
|
||||
// checked: true,
|
||||
|
||||
// ordernum: 0,
|
||||
// buttontitle: "再次购买",
|
||||
// catimage: require("../../assets/image/usereat.png"),
|
||||
// orderstype: 2,
|
||||
// userprice: "167",
|
||||
// },
|
||||
],
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
console.log('---');
|
||||
this.goldmedal.forEach(item=>{
|
||||
item.checked=true;
|
||||
})
|
||||
|
||||
},
|
||||
mounted(){
|
||||
this.carmessage();
|
||||
|
||||
},
|
||||
|
||||
components: {
|
||||
Myheader,
|
||||
tabs
|
||||
tabs,
|
||||
},
|
||||
methods: {
|
||||
//请求猫
|
||||
|
||||
async carmessage() {
|
||||
console.log(this.goldmedal);
|
||||
let user = JSON.parse(localStorage.getItem("userInfo"));
|
||||
console.log(user);
|
||||
this.userid = user.data.id;
|
||||
let data = await isexistCart(user.data.id);
|
||||
this.goldmedal=data;
|
||||
this.cartData = data;
|
||||
// this.goldmedal = data;
|
||||
},
|
||||
async userjie(list) {
|
||||
let user = JSON.parse(localStorage.getItem("userInfo"));
|
||||
@ -211,39 +195,43 @@ export default {
|
||||
let data = await generateOrderWX(list);
|
||||
if (data) {
|
||||
this.$message({
|
||||
type: 'warning',
|
||||
message: data.msg
|
||||
type: "warning",
|
||||
message: data.msg,
|
||||
});
|
||||
console.log(data);
|
||||
this.$router.push({
|
||||
path: "/personal/settlement",
|
||||
query: {
|
||||
wxdata:data.data
|
||||
wxdata: data.data,
|
||||
},
|
||||
|
||||
});
|
||||
}
|
||||
console.log(data);
|
||||
|
||||
},
|
||||
|
||||
//删除购物车
|
||||
async deletsmessage(productCode) {
|
||||
let user = JSON.parse(localStorage.getItem("userInfo"));
|
||||
console.log(user);
|
||||
this.userid = user.data.id;
|
||||
let data = await deleteCart(user.data.id,productCode);
|
||||
|
||||
let data = await deleteCart(this.userid, productCode);
|
||||
if (data) {
|
||||
this.$message({
|
||||
type: 'warning',
|
||||
message: data.msg
|
||||
type: "warning",
|
||||
message: data.msg,
|
||||
});
|
||||
this.carmessage();
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
editList() {
|
||||
if (this.editState == "完成") {
|
||||
this.mustpay = "立即结算";
|
||||
this.editState = " 编辑";
|
||||
} else {
|
||||
this.mustpay = "删除";
|
||||
this.editState = "完成";
|
||||
}
|
||||
},
|
||||
// checkBox(){
|
||||
|
||||
// console.log(event.target.checked)
|
||||
@ -253,107 +241,115 @@ export default {
|
||||
// });
|
||||
// },
|
||||
|
||||
// userdele(index){
|
||||
|
||||
// this.goldmedal.splice(index,1);
|
||||
// },
|
||||
userdele(item) {
|
||||
let delform = [];
|
||||
if (item.length > 0) {
|
||||
delform = item;
|
||||
} else {
|
||||
delform = [item.productCode];
|
||||
}
|
||||
this.$confirm("确定删除", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "success",
|
||||
callback: (action) => {
|
||||
if (action === "confirm") {
|
||||
this.deletsmessage(delform);
|
||||
}
|
||||
},
|
||||
});
|
||||
// this.$message({
|
||||
// type: "warning",
|
||||
// message: data.msg,
|
||||
// });
|
||||
},
|
||||
plus(num, index) {
|
||||
console.log(index);
|
||||
this.goldmedal[index].buyCount = parseInt(this.goldmedal[index].buyCount) + 1;
|
||||
this.cartData[index].buyCount =
|
||||
parseInt(this.cartData[index].buyCount) + 1;
|
||||
},
|
||||
// 数量减方法
|
||||
sub(num, index) {
|
||||
if (parseInt(num) <= 1) {
|
||||
this.goldmedal[index].buyCount = 1;
|
||||
this.cartData[index].buyCount = 1;
|
||||
} else {
|
||||
this.cartData[index].buyCount =
|
||||
parseInt(this.cartData[index].buyCount) - 1;
|
||||
}
|
||||
else{
|
||||
this.goldmedal[index].buyCount = parseInt(this.goldmedal[index].buyCount) - 1;
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
// 求总价
|
||||
|
||||
useredit(e) {
|
||||
this.ys1 = !this.ys1
|
||||
this.ys1 = !this.ys1;
|
||||
if (this.ys1 == false) {
|
||||
this.$nextTick(() => {
|
||||
this.userdelete='删除';
|
||||
this.userdelete = "删除";
|
||||
console.log(this.userdelete);
|
||||
|
||||
|
||||
})
|
||||
});
|
||||
} else if (this.ys1 == true) {
|
||||
this.$nextTick(() => {
|
||||
this.userdelete='结算';
|
||||
this.userdelete = "结算";
|
||||
|
||||
console.log(this.userdelete);
|
||||
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
if (this.userdelete == "删除") {
|
||||
|
||||
}
|
||||
|
||||
},
|
||||
usejiesuan(item,index){
|
||||
usejiesuan() {
|
||||
// let procode = [];
|
||||
// let list = [];
|
||||
// let menulist = [];
|
||||
// this.cartData.filter((item) => {
|
||||
// if (item.checked) {
|
||||
// list.push(item);
|
||||
// console.log(item);
|
||||
// procode.push(item.productCode);
|
||||
// } else {
|
||||
// list.splice(index, 1);
|
||||
// }
|
||||
// });
|
||||
// let list = [];
|
||||
// list = this.cartData.filter((item) => item.checked);
|
||||
|
||||
let procode=[];
|
||||
// list.forEach((item) => {
|
||||
// menulist.push({
|
||||
// productName: item.productName,
|
||||
// buyCount: item.buyCount,
|
||||
// productId: item.productCode,
|
||||
// payAmount: item.productPrice,
|
||||
// memberId: item.memberId,
|
||||
// phoneNumber: item.mobile,
|
||||
// });
|
||||
// });
|
||||
let list = [];
|
||||
let menulist=[];
|
||||
this.goldmedal.filter(item=>{
|
||||
if(item.checked){
|
||||
list.push(item);
|
||||
console.log(item);
|
||||
procode.push(item.productCode)
|
||||
}else{
|
||||
list.splice(index,1);
|
||||
}
|
||||
})
|
||||
list=this.goldmedal.filter(item =>
|
||||
item.checked
|
||||
);
|
||||
|
||||
list.forEach(item => {
|
||||
menulist.push({
|
||||
productName:item.productName,
|
||||
buyCount:item.buyCount,
|
||||
productId: item.productCode,
|
||||
payAmount: item.productPrice,
|
||||
memberId:item.memberId,
|
||||
phoneNumber:item.mobile
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
if(this.ys1==false){
|
||||
list = this.cartData.filter((item) => item.checked);
|
||||
if (list.length == 0) {
|
||||
|
||||
this.$message({
|
||||
type: 'warning',
|
||||
message: '你还未选择商品'
|
||||
type: "warning",
|
||||
message: "你还未选择商品",
|
||||
});
|
||||
return;
|
||||
} else {
|
||||
this.deletsmessage(procode);
|
||||
}
|
||||
|
||||
}else{
|
||||
if(list.length==0){
|
||||
|
||||
this.$message({
|
||||
type: 'warning',
|
||||
message: '你还未选择商品'
|
||||
if (this.editState == "完成") {
|
||||
let delList = [];
|
||||
list.forEach((item) => {
|
||||
delList.push(item.productCode);
|
||||
});
|
||||
return;
|
||||
this.userdele(delList);
|
||||
|
||||
} else {
|
||||
this.userjie(menulist)
|
||||
this.$router.push({
|
||||
path: "/personal/settlement",
|
||||
query: {
|
||||
list: JSON.stringify(list),
|
||||
},
|
||||
// params: { test:'222'},
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// list=[
|
||||
// {
|
||||
// "productName":"幼猫全价粮",
|
||||
@ -378,10 +374,6 @@ plus(num,index){
|
||||
// .then((res) => {
|
||||
// console.log(res);
|
||||
// });
|
||||
|
||||
|
||||
|
||||
|
||||
},
|
||||
|
||||
// async userdelete(item) {
|
||||
@ -394,242 +386,43 @@ plus(num,index){
|
||||
checkAll: {
|
||||
// 设置值,当点击全选按钮的时候触发
|
||||
set(v) {
|
||||
this.goldmedal.forEach(item => {
|
||||
item.checked = v
|
||||
this.cartData.forEach((item) => {
|
||||
item.checked = v;
|
||||
});
|
||||
},
|
||||
// 取值,当列表中的选择改变之后触发
|
||||
get() {
|
||||
return this.goldmedal.length === this.goldmedal.filter(item => item.checked == true).length;
|
||||
return (
|
||||
this.cartData.length ===
|
||||
this.cartData.filter((item) => item.checked == true).length
|
||||
);
|
||||
},
|
||||
},
|
||||
// 总价计算
|
||||
sumPrice() {
|
||||
return this.goldmedal
|
||||
.filter(item => item.checked)
|
||||
return this.cartData
|
||||
.filter((item) => item.checked)
|
||||
.reduce((pre, cur) => {
|
||||
console.log(pre);
|
||||
return pre + cur.buyCount * cur.productPrice;
|
||||
|
||||
}, 0);
|
||||
},
|
||||
|
||||
sumlength() {
|
||||
return this.goldmedal.filter(item => item.checked == true).length;
|
||||
}
|
||||
|
||||
|
||||
|
||||
return this.cartData.filter((item) => item.checked == true).length;
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
// 手机端
|
||||
@media screen and(min-width: 320px) and(max-width:768px) {
|
||||
.rc-header{
|
||||
|
||||
.rc-footer {
|
||||
display: none;
|
||||
}
|
||||
.rc-footera {
|
||||
display: none;
|
||||
}
|
||||
.rc-footer {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
|
||||
.rc-foote {
|
||||
width: 100%;
|
||||
margin: 0 auto;
|
||||
height: 80px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
background-color: white;
|
||||
}
|
||||
.rc-shop {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
i {
|
||||
font-style: normal;
|
||||
font-size: 14px;
|
||||
color: #333333;
|
||||
}
|
||||
span {
|
||||
font-size: 18px;
|
||||
color: #E1001A;
|
||||
display: block;
|
||||
margin-left: 3px;
|
||||
}
|
||||
}
|
||||
.rc-delete {
|
||||
span {
|
||||
width: 100px;
|
||||
height: 48px;
|
||||
background: #e2001a;
|
||||
border-radius: 30px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
font-size: 14px;
|
||||
margin-right: 40px;
|
||||
|
||||
color: #ffffff;
|
||||
}
|
||||
}
|
||||
}
|
||||
.rc-header {
|
||||
width: 100%;
|
||||
.rc-main {
|
||||
width: 92%;
|
||||
margin: 0 auto;
|
||||
.rc-commodity{
|
||||
display: none;
|
||||
}
|
||||
.rc-select {
|
||||
border-bottom: 1px solid #d8d8d8;
|
||||
height: 56px;
|
||||
width: 100%;
|
||||
align-items: center;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
.select-left {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
img {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
display: block;
|
||||
}
|
||||
span {
|
||||
font-size: 14px;
|
||||
color: #333333;
|
||||
display: block;
|
||||
margin-left: 8px;
|
||||
}
|
||||
}
|
||||
.select-right {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
img {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
display: block;
|
||||
margin-right: 8px;
|
||||
}
|
||||
span {
|
||||
font-size: 14px;
|
||||
color: #333333;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.rc-userdemand {
|
||||
width: 100%;
|
||||
height: 180px;
|
||||
border-bottom: 1px solid #d8d8d8;
|
||||
display: flex;
|
||||
.rc-userdeman {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
img {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
display: block;
|
||||
}
|
||||
.re-message {
|
||||
width: 96px;
|
||||
height: 96px;
|
||||
display: block;
|
||||
border: 1px solid #d8d8d8;
|
||||
margin-left: 8px;
|
||||
}
|
||||
}
|
||||
.rc-userdem {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
width: 100%;
|
||||
margin-left: 8px;
|
||||
justify-content: center;
|
||||
span {
|
||||
font-size: 16px;
|
||||
color: #e1001a;
|
||||
display: block;
|
||||
font-weight: bold;
|
||||
}
|
||||
em {
|
||||
font-style: normal;
|
||||
font-size: 14px;
|
||||
display: block;
|
||||
margin-top: 8px;
|
||||
|
||||
color: #666666;
|
||||
}
|
||||
.rc-userd {
|
||||
em{
|
||||
display: none;
|
||||
}
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
margin-top: 8px;
|
||||
i {
|
||||
font-size: 18px;
|
||||
font-style: normal;
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
width: 74%;
|
||||
color: #e1001a;
|
||||
}
|
||||
img {
|
||||
width: 23px;
|
||||
height: 23px;
|
||||
display: block;
|
||||
margin-right: 4px;
|
||||
}
|
||||
img:last-child {
|
||||
width: 23px;
|
||||
height: 23px;
|
||||
display: block;
|
||||
margin-left: 4px;
|
||||
}
|
||||
strong {
|
||||
font-style: normal;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
list-style: none;
|
||||
align-items: center;
|
||||
width: 24px;
|
||||
|
||||
color: #666666;
|
||||
height: 24px;
|
||||
background: #f6f6f6;
|
||||
border: 1px solid #d7d7d7;
|
||||
font-size: 12px;
|
||||
border-radius: 3px;
|
||||
}
|
||||
.rc-jia{
|
||||
display: flex;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// /* 最小768px最大1920 *pc端/
|
||||
@media screen and (min-width: 768px) and (max-width: 1920px) {
|
||||
.rc-footer{
|
||||
display: none;
|
||||
}
|
||||
.rc-footera {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
|
||||
.rc-foote {
|
||||
width: 92%;
|
||||
margin: 0 auto;
|
||||
box-shadow: 0px -3px 6px rgba(0, 0, 0, 0.1);
|
||||
height: 102px;
|
||||
@ -639,6 +432,7 @@ plus(num,index){
|
||||
.rc-shop {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-left: 24px;
|
||||
img {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
@ -680,7 +474,7 @@ display: block;
|
||||
}
|
||||
span {
|
||||
font-size: 20px;
|
||||
color: #E1001A;
|
||||
color: #e1001a;
|
||||
}
|
||||
em {
|
||||
font-style: normal;
|
||||
@ -705,42 +499,92 @@ height: 48px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.rc-header {
|
||||
width: 100%;
|
||||
.rc-main {
|
||||
width: 92%;
|
||||
margin: 0 auto;
|
||||
.rc-commodity {
|
||||
padding-top: 60px;
|
||||
max-width: 1400px;
|
||||
.cart-list {
|
||||
width: 100%;
|
||||
border: 1px solid #d7d7d7;
|
||||
border-radius: 3px 3px 0px 0px;
|
||||
background: #f6f6f6;
|
||||
font-size: 18px;
|
||||
font-size: 16px;
|
||||
color: #666666;
|
||||
p {
|
||||
margin: 0;
|
||||
}
|
||||
.header {
|
||||
background: #f6f6f6;
|
||||
border-radius: 3px 3px 0px 0px;
|
||||
border-bottom: 1px solid #d7d7d7;
|
||||
height: 64px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
.rc-commondi {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
img {
|
||||
}
|
||||
.header_ph {
|
||||
display: none;
|
||||
}
|
||||
.check-label {
|
||||
display: block;
|
||||
margin-left: 24px;
|
||||
}
|
||||
span {
|
||||
.name {
|
||||
display: block;
|
||||
margin-left: 56px;
|
||||
}
|
||||
.list-left {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
ul {
|
||||
display: flex;
|
||||
width: 80%;
|
||||
width: 70%;
|
||||
justify-content: space-around;
|
||||
align-items: center;
|
||||
}
|
||||
.list {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
border-bottom: 1px solid #d7d7d7;
|
||||
padding: 15px 0;
|
||||
.product-price {
|
||||
color: #e1001a;
|
||||
font-weight: bold;
|
||||
font-size: 20px;
|
||||
}
|
||||
.product {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-left: 56px;
|
||||
.product-title {
|
||||
color: #e1001a;
|
||||
font-weight: bold;
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
.product-img {
|
||||
margin-right: 10px;
|
||||
width: 96px;
|
||||
height: 96px;
|
||||
img {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
.rc-jia {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
img,
|
||||
input {
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
text-align: center;
|
||||
margin: 0 5px;
|
||||
}
|
||||
input {
|
||||
border: 1px solid #d7d7d7;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.rc-select {
|
||||
@ -828,7 +672,6 @@ height: 48px;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
width: 10%;
|
||||
|
||||
}
|
||||
.rc-userd {
|
||||
display: flex;
|
||||
@ -860,10 +703,10 @@ height: 48px;
|
||||
font-style: normal;
|
||||
font-size: 20px;
|
||||
cursor: pointer;
|
||||
border-bottom: 1px solid #E2001A;
|
||||
border-bottom: 1px solid #e2001a;
|
||||
display: block;
|
||||
margin-left: 40px;
|
||||
color: #E1001A;
|
||||
color: #e1001a;
|
||||
}
|
||||
strong {
|
||||
font-style: normal;
|
||||
@ -883,6 +726,69 @@ color: #E1001A;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//手机端
|
||||
@media screen and (max-width: 768px) {
|
||||
.rc-main {
|
||||
padding: 0;
|
||||
width: 100%;
|
||||
.cart-list {
|
||||
border: none;
|
||||
margin-bottom: 130px;
|
||||
.header {
|
||||
display: none;
|
||||
}
|
||||
.header_ph {
|
||||
display: block;
|
||||
border-bottom: 2px solid #d8d8d8;
|
||||
padding: 20px 10px 20px 0;
|
||||
border-top: 5px solid #f6f6f6;
|
||||
}
|
||||
.check-label {
|
||||
margin-left: 10px;
|
||||
}
|
||||
.name {
|
||||
margin-left: 16px;
|
||||
}
|
||||
.list {
|
||||
display: block;
|
||||
.product {
|
||||
margin-left: 16px;
|
||||
}
|
||||
ul {
|
||||
margin-top: -32px;
|
||||
margin-left: 128px;
|
||||
width: 60%;
|
||||
.del {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.rc-footera {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
z-index: 10;
|
||||
.rc-shop {
|
||||
display: none;
|
||||
}
|
||||
.rc-delete {
|
||||
margin-right: 0;
|
||||
width: 100%;
|
||||
.rc-num {
|
||||
width: 100%;
|
||||
justify-content: space-between;
|
||||
padding: 10px;
|
||||
}
|
||||
strong {
|
||||
margin-right: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
.el-message-box {
|
||||
width: 300px;
|
||||
}
|
||||
}
|
||||
</style>
|
415
rc-busness/pages/personal/settlement.less
Normal file
415
rc-busness/pages/personal/settlement.less
Normal file
@ -0,0 +1,415 @@
|
||||
ul li ol li em strong i {
|
||||
list-style: none;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
.rc-header {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.settlement {
|
||||
padding-top: 100px;
|
||||
}
|
||||
|
||||
|
||||
.rc-main {
|
||||
width: 92%;
|
||||
margin: 0 auto;
|
||||
max-width: 1400px;
|
||||
|
||||
.rc-userbottomm {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.rc-border {
|
||||
width: 100%;
|
||||
border-bottom: 1px solid #d7d7d7;
|
||||
margin-top: 32px;
|
||||
}
|
||||
|
||||
.rc-receiving {
|
||||
width: 100%;
|
||||
height: 80px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
em {
|
||||
font-style: normal;
|
||||
color: #e1001a;
|
||||
font-size: 26px;
|
||||
}
|
||||
|
||||
span {
|
||||
color: #666666;
|
||||
font-size: 16px;
|
||||
display: block;
|
||||
margin-top: 25px;
|
||||
}
|
||||
}
|
||||
|
||||
.delivery {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height: 140px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
|
||||
.viewdetails {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
|
||||
span {
|
||||
color: #444444;
|
||||
font-size: 18px;
|
||||
display: block;
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
img {
|
||||
width: 8px;
|
||||
height: 16px;
|
||||
}
|
||||
}
|
||||
|
||||
.to-delivery {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
font-style: normal;
|
||||
|
||||
span {
|
||||
display: block;
|
||||
// margin-left: 16px;
|
||||
font-size: 18px;
|
||||
color: #333333;
|
||||
}
|
||||
|
||||
i {
|
||||
font-style: normal;
|
||||
margin-left: 8px;
|
||||
display: block;
|
||||
font-size: 18px;
|
||||
color: #999999;
|
||||
}
|
||||
}
|
||||
|
||||
.bo-delivery {
|
||||
span {
|
||||
font-size: 16px;
|
||||
color: #666666;
|
||||
display: block;
|
||||
margin-top: 16px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.address-list {
|
||||
display: flex;
|
||||
|
||||
.mypersonal {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
border: 1px solid #808285;
|
||||
height: 118px;
|
||||
width: 320px;
|
||||
padding: 15px;
|
||||
color: #333333;
|
||||
margin: 20px 40px 20px 0;
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
|
||||
&.active {
|
||||
border: 1px solid #E2001A;
|
||||
}
|
||||
|
||||
.edit {
|
||||
position: absolute;
|
||||
top: 5px;
|
||||
right: 8px;
|
||||
display: none;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
.edit {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
.my-delivery {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
font-style: normal;
|
||||
|
||||
span {
|
||||
display: block;
|
||||
margin-left: 3px;
|
||||
|
||||
}
|
||||
|
||||
i {
|
||||
font-style: normal;
|
||||
margin-left: 3px;
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
.per-delivery {
|
||||
span {
|
||||
color: #666666;
|
||||
display: block;
|
||||
margin-top: 5px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.rc-usermain {
|
||||
display: flex;
|
||||
padding: 20px 0;
|
||||
|
||||
.rc-image {
|
||||
border: 1px solid #d8d8d8;
|
||||
margin-right: 20px;
|
||||
|
||||
img {
|
||||
width: 96px;
|
||||
height: 96px;
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
.rc-right {
|
||||
.rc-usercenter {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
flex-direction: column;
|
||||
|
||||
h3,
|
||||
.price {
|
||||
font-style: normal;
|
||||
display: block;
|
||||
font-size: 18px;
|
||||
font-weight: bold;
|
||||
margin-top: 17px;
|
||||
color: #e1001a;
|
||||
}
|
||||
}
|
||||
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.rc-userright {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
color: #666666;
|
||||
font-size: 16px;
|
||||
|
||||
span {
|
||||
display: block;
|
||||
margin-top: 16px;
|
||||
font-size: 16px;
|
||||
}
|
||||
}
|
||||
|
||||
.rc-userbottom {
|
||||
display: flex;
|
||||
width: 60%;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
|
||||
.price {
|
||||
font-style: normal;
|
||||
color: #e1001a;
|
||||
font-size: 20px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
.rc-merchandise {
|
||||
|
||||
padding: 15px 0;
|
||||
|
||||
&::after {
|
||||
display: block;
|
||||
content: '';
|
||||
clear: both;
|
||||
}
|
||||
|
||||
ul {
|
||||
width: 25%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
line-height: 40px;
|
||||
float: right;
|
||||
|
||||
i {
|
||||
font-style: normal;
|
||||
color: #666666;
|
||||
}
|
||||
|
||||
li {
|
||||
list-style: none;
|
||||
font-style: normal;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
|
||||
span {
|
||||
color: #333333;
|
||||
}
|
||||
}
|
||||
|
||||
li .red {
|
||||
color: #e1001a;
|
||||
font-size: 20px;
|
||||
font-style: normal;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.rc-payment {
|
||||
width: 100%;
|
||||
margin-top: 80px;
|
||||
|
||||
.u-trackingnumber {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
i {
|
||||
font-size: 18px;
|
||||
font-style: normal;
|
||||
margin-right: 16px;
|
||||
}
|
||||
|
||||
img {
|
||||
width: 8px;
|
||||
height: 16px;
|
||||
}
|
||||
}
|
||||
|
||||
ul {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
line-height: 40px;
|
||||
font-size: 18px;
|
||||
|
||||
i {
|
||||
font-style: normal;
|
||||
color: #666666;
|
||||
display: block;
|
||||
}
|
||||
|
||||
li {
|
||||
list-style: none;
|
||||
font-style: normal;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
|
||||
span {
|
||||
color: #333333;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.rc-foot {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
.rc-foo {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
flex-direction: column;
|
||||
align-items: self-end;
|
||||
|
||||
i {
|
||||
font-style: normal;
|
||||
color: #333333;
|
||||
font-size: 20px;
|
||||
margin-right: 20px;
|
||||
}
|
||||
|
||||
em {
|
||||
font-style: normal;
|
||||
color: #e1001a;
|
||||
font-size: 26px;
|
||||
}
|
||||
|
||||
span {
|
||||
display: block;
|
||||
width: 164px;
|
||||
margin-top: 36px;
|
||||
background: #e2001a;
|
||||
line-height: 48px;
|
||||
text-align: center;
|
||||
color: white;
|
||||
font-size: 16px;
|
||||
|
||||
height: 48px;
|
||||
|
||||
border-radius: 30px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.diallog_width{
|
||||
width: 100%;
|
||||
max-width: 440px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
.el-dialog{
|
||||
width: 100%;
|
||||
}
|
||||
//手机端
|
||||
@media screen and (max-width: 768px) {
|
||||
|
||||
.diallog_width{
|
||||
width: 100%;
|
||||
|
||||
}
|
||||
.rc-main {
|
||||
.address-list {
|
||||
display: contents;
|
||||
|
||||
.mypersonal {
|
||||
width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
}
|
||||
.rc-usermain {
|
||||
.rc-right { display: table}
|
||||
}
|
||||
.rc-merchandise{
|
||||
padding: 15px 0 120px;
|
||||
ul{
|
||||
float: none;
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
.rc-foot{
|
||||
.rc-foo{
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
flex-direction: row;
|
||||
align-items: self-end;
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
background: #fff;
|
||||
width: 100%;
|
||||
padding: 10px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -1,59 +1,62 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="settlement">
|
||||
<Myheader></Myheader>
|
||||
<tabs></tabs>
|
||||
<div class="online"></div>
|
||||
|
||||
<div class="rc-main" v-for="(item,index) in goldmedal" :key="index" >
|
||||
<div class="rc-border"></div>
|
||||
<div class="rc-main">
|
||||
<tabs></tabs>
|
||||
|
||||
<div class="address-list">
|
||||
<div
|
||||
class="mypersonal"
|
||||
v-for="(dataaddress, index) in useraddress"
|
||||
v-for="(item, index) in useraddress"
|
||||
:key="index"
|
||||
:class="item.isDefault ? 'active' : ''"
|
||||
@click="selectAddress(item)"
|
||||
>
|
||||
<div class="edit" @click="editAddress(item)">
|
||||
<i class="el-icon-edit"></i>编辑
|
||||
</div>
|
||||
<div class="my-delivery">
|
||||
<span>{{ dataaddress.state }}</span>
|
||||
<i>{{ dataaddress.tel }}</i>
|
||||
<span>{{ item.recipient }}</span>
|
||||
<i>{{ item.recipientPhone }}</i>
|
||||
</div>
|
||||
<div class="per-delivery">
|
||||
<span>{{ dataaddress.address }}</span>
|
||||
<span>{{ item.address }}</span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="online" style="height:3px;width:100%;background:#DDDDDD;"></div>
|
||||
<div>
|
||||
<div class="rc-center">
|
||||
<div class="mypersonal">
|
||||
<div
|
||||
class="my-delivery"
|
||||
@click="addAddress"
|
||||
style="justify-content: center"
|
||||
>
|
||||
<i class="el-icon-plus"></i>
|
||||
<span>添加收货地址</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="rc-contline"></div>
|
||||
<div class="rc-main" v-for="(item, index) in goldmedal" :key="index">
|
||||
<div class="rc-usermain">
|
||||
<div class="rc-image">
|
||||
<img :src="item.catimage" alt="" />
|
||||
<img :src="item.productImg" alt="" />
|
||||
</div>
|
||||
<div class="rc-right">
|
||||
<div class="rc-usercenter">
|
||||
<em>{{ item.usereat }}</em>
|
||||
<div class="rc-userright">
|
||||
<span>规格:{{ item.num }}</span>
|
||||
</div>
|
||||
<h3>{{ item.productName }}</h3>
|
||||
<p>规格:{{ item.specifications }}</p>
|
||||
</div>
|
||||
<div class="rc-userbottom">
|
||||
<span>数量:{{ item.specification }}件</span>
|
||||
<i>¥{{ item.userprice }}</i>
|
||||
<div class="rc-bottom">
|
||||
<span>联系客服申请售后</span>
|
||||
<p>¥{{ item.productPrice }}</p>
|
||||
<p>X{{ item.buyCount }}</p>
|
||||
<p class="price">¥{{ item.productPrice }}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="rc-bottomm">
|
||||
<span>联系客服申请售后</span>
|
||||
</div>
|
||||
<!-- <div class="rc-userbottomm">
|
||||
<i>¥{{ item.userprice }}</i>
|
||||
<span>{{ item.orderstype }}</span>
|
||||
<i>¥{{ item.userprice }}</i>
|
||||
</div> -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="rc-contline"></div>
|
||||
<div class="rc-main">
|
||||
<div class="rc-merchandise">
|
||||
<ul>
|
||||
<li>
|
||||
@ -66,103 +69,78 @@
|
||||
</li>
|
||||
<li>
|
||||
<span>商品总价:</span>
|
||||
<i>{{ shopprice.promotion }}</i>
|
||||
<i class="red">{{ sumPrice }}</i>
|
||||
</li>
|
||||
<li>
|
||||
<span>配送费用:</span>
|
||||
<i>{{ shopprice.payment }}</i>
|
||||
<i class="red">{{ shopprice.payment }}</i>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="rc-contline"></div>
|
||||
<div class="rc-main">
|
||||
<div class="rc-foot">
|
||||
<div class="rc-foo">
|
||||
<div style="padding-top:55px">
|
||||
<div>
|
||||
<i>合计金额:</i>
|
||||
<em>¥167.00</em>
|
||||
<em>{{ sumPrice }}</em>
|
||||
</div>
|
||||
<div style="padding-bottom:40px">
|
||||
<span>再次购买</span>
|
||||
<div style="font-weight: bold">
|
||||
<span @click="jiesuan()">提交订单</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="rc-button">
|
||||
<div class="rc-left">
|
||||
<span>总计:</span>
|
||||
<em>¥167.00</em>
|
||||
</div>
|
||||
<strong ref="rccolor" @click="jiesuan">结算</strong>
|
||||
|
||||
<el-dialog :visible.sync="dialogAdd" class="diallog_width" width="'100%">
|
||||
<div class="tc dl_cont" v-if="dialogAdd">
|
||||
<myAddress
|
||||
@isClose="dialogCtrl"
|
||||
:editAddressData="editAddressData"
|
||||
></myAddress>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Myheader from "~/components/header.vue";
|
||||
import {userin} from "../../ajax/getData";
|
||||
import { userin, memberAddress, generateOrderWX } from "../../ajax/getData";
|
||||
import tabs from "@/components/tabs.vue";
|
||||
import myAddress from "../address/address.vue";
|
||||
|
||||
import itemMixin from "../../../smart-admin-web/src/components/main/components/side-menu/item-mixin";
|
||||
export default {
|
||||
middleware: 'metaTitle',
|
||||
meta: {title: '订单结算'},
|
||||
middleware: "metaTitle",
|
||||
meta: { title: "订单结算" },
|
||||
data() {
|
||||
return {
|
||||
goldmedal: [],
|
||||
addressstype: null,
|
||||
orderstatus: '',
|
||||
userisdelivery:'待收货',
|
||||
orderstatus: "",
|
||||
userisdelivery: "待收货",
|
||||
userdelivery: "派送中",
|
||||
isshow: true,
|
||||
leftico: require("../../assets/image/rc-left.png"),
|
||||
orderNumber:'',
|
||||
|
||||
// delivery: [
|
||||
// {
|
||||
// state: "派送中",
|
||||
// time: "2021-11-21",
|
||||
// address: "广州天河—刘某某【15124617917】正在派送中",
|
||||
// },
|
||||
// ],
|
||||
|
||||
orderNumber: "",
|
||||
dialogAdd: false,
|
||||
editAddressData: {},
|
||||
curAddress: {},
|
||||
saveType: "",
|
||||
useraddress: [
|
||||
{
|
||||
state: "李某某",
|
||||
tel: "15124117917",
|
||||
address: "广东省 广州市 天河区 天河客运站118号",
|
||||
},
|
||||
{
|
||||
state: "李某某",
|
||||
tel: "15124117917",
|
||||
address: "广东省 广州市 天河区 天河客运站118号",
|
||||
},
|
||||
{
|
||||
state: "李某某",
|
||||
tel: "15124117917",
|
||||
address: "广东省 广州市 天河区 天河客运站118号",
|
||||
},
|
||||
{
|
||||
state: "李某某",
|
||||
tel: "15124117917",
|
||||
address: "广东省 广州市 天河区 天河客运站118号",
|
||||
},
|
||||
],
|
||||
|
||||
goldmedal: [
|
||||
{
|
||||
ordernumber: "1111111111111111111",
|
||||
orderstype: 1,
|
||||
index:0,
|
||||
usereat: "英国短毛猫成猫全价湿粮",
|
||||
num: "5kg",
|
||||
specification: "1",
|
||||
userprice: "167.00",
|
||||
catimage: require("../../assets/image/rc-win.png"),
|
||||
},
|
||||
// {
|
||||
// state: "李某某",
|
||||
// tel: "15124117917",
|
||||
// address: "广东省 广州市 天河区 天河客运站118号",
|
||||
// isdefault: true,
|
||||
// },
|
||||
// {
|
||||
// state: "李某某",
|
||||
// tel: "15124117917",
|
||||
// address: "广东省 广州市 天河区 天河客运站118号",
|
||||
// isdefault: false,
|
||||
// },
|
||||
],
|
||||
shopprice: {
|
||||
price: "标准快递",
|
||||
@ -170,26 +148,149 @@ export default {
|
||||
promotion: "¥167.00",
|
||||
payment: "¥0.00 ",
|
||||
},
|
||||
information: {
|
||||
reference: "1111111111111111",
|
||||
ordertime: "2012-12-01 11:20:00",
|
||||
paymentmethod: "微信支付",
|
||||
distribution: "快递",
|
||||
trackingnumber: "11111111111111",
|
||||
catimage: require("../../assets/image/rc-left.png"),
|
||||
},
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
// 总价计算
|
||||
sumPrice() {
|
||||
return this.goldmedal.reduce((pre, cur) => {
|
||||
console.log(pre);
|
||||
return pre + cur.buyCount * cur.productPrice;
|
||||
}, 0);
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
jiesuan(){
|
||||
// let userdata=this.$route.query.wxdata
|
||||
async getAddressList() {
|
||||
let memberId = JSON.parse(localStorage.getItem("userInfo")).data.id;
|
||||
let { data } = await memberAddress("getAll", { memberId: memberId });
|
||||
data.forEach((item) => {
|
||||
item.address =
|
||||
item.provinceName +
|
||||
item.cityName +
|
||||
item.districtName +
|
||||
item.detailAddress;
|
||||
});
|
||||
this.useraddress = data;
|
||||
},
|
||||
editAddress(item) {
|
||||
this.editAddressData = {
|
||||
memberId: item.memberId,
|
||||
name: item.recipient,
|
||||
tel: item.recipientPhone,
|
||||
detailAddress: item.detailAddress,
|
||||
id: item.id,
|
||||
city: item.cityName,
|
||||
districtId: item.districtName,
|
||||
saveType: "edit",
|
||||
};
|
||||
this.dialogAdd = true;
|
||||
},
|
||||
addAddress() {
|
||||
this.editAddressData = {};
|
||||
this.dialogAdd = true;
|
||||
},
|
||||
selectAddress(cur) {
|
||||
this.useraddress.forEach((item) => {
|
||||
if (item.id == cur.id) {
|
||||
item.isDefault = true;
|
||||
} else {
|
||||
item.isDefault = false;
|
||||
}
|
||||
});
|
||||
},
|
||||
dialogCtrl(parm) {
|
||||
this.dialogAdd = parm;
|
||||
this.getAddressList();
|
||||
},
|
||||
async jiesuan() {
|
||||
let orderAddress = this.useraddress.filter((item) => item.isDefault);
|
||||
let postData = [];
|
||||
this.goldmedal.forEach((item) => {
|
||||
let oneProduct = {
|
||||
productName: item.productName,
|
||||
buyCount: item.buyCount,
|
||||
productId: item.productCode,
|
||||
payAmount: item.productPrice,
|
||||
memberId: item.memberId,
|
||||
phoneNumber: item.mobile,
|
||||
// couponId: "NGQ2022P12",
|
||||
// couponTypeId: "4",
|
||||
// couponName: "内购券",
|
||||
// couponAmount: "0.3175",
|
||||
// couponCode: "0007792402",
|
||||
orderAddress: {
|
||||
addressPhoneNumber: orderAddress[0].recipientPhone,
|
||||
addressUserName: orderAddress[0].recipient,
|
||||
addressProvinceName: orderAddress[0].provinceName,
|
||||
addressCityName: orderAddress[0].cityName,
|
||||
addressCountyName: orderAddress[0].districtName,
|
||||
addressDetailInfo: orderAddress[0].detailAddress,
|
||||
},
|
||||
};
|
||||
postData.push(oneProduct);
|
||||
});
|
||||
// let postData = [
|
||||
// {
|
||||
// productName: this.goldmedal.productName,
|
||||
// buyCount: "2",
|
||||
// productId: "20030200",
|
||||
// payAmount: "147.00",
|
||||
// memberId: "844350",
|
||||
// phoneNumber: "18112621098",
|
||||
// couponId: "NGQ2022P12",
|
||||
// couponTypeId: "4",
|
||||
// couponName: "内购券",
|
||||
// couponAmount: "0.3175",
|
||||
// couponCode: "0007792402",
|
||||
// orderAddress: {
|
||||
// addressPhoneNumber:orderAddress[0].recipientPhone,
|
||||
// addressUserName:orderAddress[0].recipient,
|
||||
// addressProvinceName: orderAddress[0].provinceName,
|
||||
// addressCityName:orderAddress[0].cityName,
|
||||
// addressCountyName: orderAddress[0].districtName,
|
||||
// addressDetailInfo: orderAddress[0].detailAddress,
|
||||
// },
|
||||
// },
|
||||
// // {
|
||||
// // productName: "幼猫全价粮",
|
||||
// // buyCount: "2",
|
||||
// // productId: "20030200",
|
||||
// // payAmount: "147.00",
|
||||
// // memberId: "844350",
|
||||
// // phoneNumber: "18112621098",
|
||||
// // couponId: "NGQ2022P12",
|
||||
// // couponTypeId: "4",
|
||||
// // couponName: "内购券",
|
||||
// // couponAmount: "0.3175",
|
||||
// // couponCode: "0007792402",
|
||||
// // orderAddress: {
|
||||
// // addressPhoneNumber: "13602898745",
|
||||
// // addressUserName: "张三",
|
||||
// // addressProvinceName: "江苏省",
|
||||
// // addressCityName: "无锡市",
|
||||
// // addressCountyName: "江阴市",
|
||||
// // addressDetailInfo: "东苑一村",
|
||||
// // },
|
||||
// // },
|
||||
// ];
|
||||
let res = await generateOrderWX(postData);
|
||||
if (res.success) {
|
||||
let userPayData = {
|
||||
orderId: res.data,
|
||||
userprice: postData[0].payAmount,
|
||||
userinformation:
|
||||
postData[0].orderAddress.addressUserName +
|
||||
" " +
|
||||
postData[0].orderAddress.addressPhoneNumber,
|
||||
wxPay: "weixin://wxpay/bizpayurl?pr=4RJbokxzz",
|
||||
};
|
||||
this.$router.push({
|
||||
path: "/personal/userpay",
|
||||
query: {
|
||||
wxdata:userdata
|
||||
userPayData:JSON.stringify(userPayData),
|
||||
},
|
||||
|
||||
});
|
||||
}
|
||||
},
|
||||
async canceldanhao(orderNumber) {
|
||||
let data = await userin(orderNumber);
|
||||
@ -199,20 +300,25 @@ jiesuan(){
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
this.addressstype = this.$route.query.stype;
|
||||
this.orderNumber=this.$route.query.orderNumber;
|
||||
this.canceldanhao(this.orderNumber)
|
||||
console.log(this.$refs.rccolor)
|
||||
this.$refs.rccolor.style.background='gray';
|
||||
this.goldmedal = JSON.parse(this.$route.query.list);
|
||||
console.log(this.$route);
|
||||
this.getAddressList();
|
||||
// this.addressstype = this.$route.query.stype;
|
||||
// this.orderNumber = this.$route.query.orderNumber;
|
||||
// this.canceldanhao(this.orderNumber);
|
||||
// console.log(this.$refs.rccolor);
|
||||
// this.$refs.rccolor.style.background = "gray";
|
||||
},
|
||||
components: {
|
||||
Myheader,
|
||||
tabs
|
||||
tabs,
|
||||
myAddress,
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
@import "./settlement.less";
|
||||
@import url("../../assets/css/global.less");
|
||||
@import url("../../assets/css/settlement.less");
|
||||
// @import url("../../assets/css/settlement.less");
|
||||
</style>
|
@ -1,578 +1,303 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="page_modules">
|
||||
<Myheader></Myheader>
|
||||
<div class="rc-main">
|
||||
<div class="online" style="height:3px;width:93%;margin:0 auto;background:#DDDDDD;margin-top:0.23rem"></div>
|
||||
<div class="rc-hearder">
|
||||
<div class="rc-userpay">
|
||||
<div class="paysucess">
|
||||
<span>订单提交成功等待付款</span>
|
||||
|
||||
<div class="cont_modules">
|
||||
<tabs></tabs>
|
||||
<el-row class="order_info">
|
||||
<el-col :span="6" class="ph_hidden">
|
||||
<ul class="li_inline">
|
||||
<li class="sucess_img">
|
||||
<img src="../../assets/image/usersucess.png" alt="" />
|
||||
</li>
|
||||
<li class="ready">
|
||||
<p>订单提交成功</p>
|
||||
<p>等待付款</p>
|
||||
</li>
|
||||
</ul>
|
||||
</el-col>
|
||||
<el-col :span="12" class="ph_hidden"> </el-col>
|
||||
<el-col :span="6" class="ready_right">
|
||||
<div class="inline_right">
|
||||
<p>付款金额:</p>
|
||||
<p class="price">{{ userPayData.userprice }}</p>
|
||||
</div>
|
||||
<div class="rc-all">
|
||||
<div class="rc-payprice">
|
||||
<span>付款金额:</span>
|
||||
<i>{{ userprice }}</i>
|
||||
<div class="inline_right">
|
||||
<p>收货信息:</p>
|
||||
<p>{{ userPayData.userinformation }}</p>
|
||||
</div>
|
||||
<div class="rc-receiving">
|
||||
<span>收货信息:</span>
|
||||
<i>{{ userinformation }}</i>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
<div class="rc_contline"></div>
|
||||
<div class="cont_modules">
|
||||
<div class="pay_title color_red">请选择支付方式</div>
|
||||
</div>
|
||||
<div class="online" style="height:3px;width:100%;background:#DDDDDD;"></div>
|
||||
<div class="rc-usermaina">
|
||||
<div class="rc-title" id="qrcode" ref="qrcode" >
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="rc-paystype">
|
||||
<span>请选择支付方式</span>
|
||||
</div>
|
||||
|
||||
<div class="online" style="height:3px;width:100%;background:#DDDDDD;"></div>
|
||||
<div class="paystype">
|
||||
<div
|
||||
class="payAlipay"
|
||||
<div class="rc_contline"></div>
|
||||
<div class="cont_modules">
|
||||
<div class="pay_list">
|
||||
<ul>
|
||||
<li
|
||||
class="pay_item"
|
||||
v-for="(item, index) in userpaystype"
|
||||
:key="index"
|
||||
@click="selectGoods(item, index)"
|
||||
:class="activeIndex == index ? 'active' : 'unactive'"
|
||||
:class="activeIndex == index ? 'active' : ''"
|
||||
>
|
||||
<div class="rc-payype">
|
||||
<img :src="item.payimage" alt="" />
|
||||
<span>{{ item.price }}</span>
|
||||
</div>
|
||||
<div class="user-righticon">
|
||||
<img src="../../assets/image/rc-left.png" alt="" />
|
||||
</div>
|
||||
</div>
|
||||
<span>{{ item.paytype }}支付</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="paycord" @click="usershow()" id="qrcode" ref="qrcode">
|
||||
<!-- <img src="../../assets/image/rc-discount.png" alt="" />
|
||||
<span>微信扫一扫立即支付</span> -->
|
||||
</div>
|
||||
<div class="paycord">
|
||||
<div id="qrcode" ref="qrcode" class="qrcode"></div>
|
||||
<span>{{ paytype }}扫一扫立即支付</span>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<el-dialog
|
||||
:visible.sync="dialogInfo1"
|
||||
hegight="700px"
|
||||
@close='closeDialog'
|
||||
>
|
||||
|
||||
<div class="rc-header">
|
||||
<div class="rc-titled" >
|
||||
<img src="../../assets/image/usersucess.png" alt="">
|
||||
<el-dialog :visible.sync="dialogSuccess" @close="closeDialogSuccess">
|
||||
<div class="tc dl_cont">
|
||||
<div class="dl_img">
|
||||
<img src="../../assets/image/usersucess.png" alt="" />
|
||||
</div>
|
||||
<div class="rc-logmain">
|
||||
<h3>支付成功</h3>
|
||||
<span>{{usermessage}}</span>
|
||||
|
||||
</div>
|
||||
|
||||
<h3 class="title">支付成功</h3>
|
||||
<p>您的商品我们正在抓紧打包,请耐心等候!</p>
|
||||
<div class="line_dashed"></div>
|
||||
<div class="userer">
|
||||
|
||||
<img src="../../assets/image/rc-discount.png" alt="">
|
||||
<span>微信扫一扫,识别二维码</span>
|
||||
<i>加入社群0元试用商品随单发放</i>
|
||||
<img
|
||||
width="210"
|
||||
height="210"
|
||||
src="../../assets/image/rc-discount.png"
|
||||
alt=""
|
||||
/>
|
||||
<p>微信扫一扫,识别二维码</p>
|
||||
<p class="tips">加入社群0元试用商品随单发放</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</el-dialog>
|
||||
<el-dialog :visible.sync="dialogFail" @close="closeDialogFail">
|
||||
<div class="tc dl_cont">
|
||||
<div class="dl_img">
|
||||
<img src="../../assets/pay/fail.png" alt="" />
|
||||
</div>
|
||||
<h3 class="title">支付失败</h3>
|
||||
<p>请返回商品结算页面重新支付</p>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Myheader from "~/components/header.vue";
|
||||
import QRCode from 'qrcodejs2'
|
||||
import { generateOrderWX } from "../../ajax/getData";
|
||||
import tabs from "@/components/tabs.vue";
|
||||
// import QRCode from "qrcodejs2";
|
||||
|
||||
import { generateOrderAlipay, updateOrderWX } from "../../ajax/getData";
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
userdata:null,
|
||||
activeIndex: 0,
|
||||
usermessage:'您的商品我们正在抓紧打包,请耐心等候!',
|
||||
userprice: "¥167.00",
|
||||
userinformation: "李某某 151****7917",
|
||||
isSucess: false,
|
||||
paytype: "微信",
|
||||
userpaystype: [
|
||||
{
|
||||
price: "支付宝支付",
|
||||
payimage: require("../../assets/image/rc-cat.png"),
|
||||
catimage: require("../../assets/image/rc-left.png"),
|
||||
paytype: "微信",
|
||||
payimage: require("../../assets/pay/wx.png"),
|
||||
},
|
||||
{
|
||||
price: "微信支付",
|
||||
payimage: require("../../assets/image/rc-cat.png"),
|
||||
catimage: require("../../assets/image/rc-left.png"),
|
||||
paytype: "支付宝",
|
||||
payimage: require("../../assets/pay/zfb.png"),
|
||||
},
|
||||
],
|
||||
dialogInfo1:false,
|
||||
dialogSuccess: true,
|
||||
dialogFail: false,
|
||||
userPayData: {},
|
||||
};
|
||||
},
|
||||
computed: {},
|
||||
mounted() {
|
||||
this.userdata=this.$route.query.wxdata;
|
||||
this.userpay(this.userdata);
|
||||
console.log(this.userdata);
|
||||
this.$nextTick(() => {
|
||||
|
||||
this.userpay();
|
||||
})
|
||||
this.userPayData = JSON.parse(this.$route.query.userPayData);
|
||||
// this.qrcode(this.userPayData.wxPay);
|
||||
},
|
||||
methods: {
|
||||
|
||||
closeDialog(){
|
||||
closeDialogSuccess() {
|
||||
this.qrcode = null;
|
||||
console.log('关闭的')
|
||||
// this.$router.push({
|
||||
// path: "/index",
|
||||
// });
|
||||
},
|
||||
|
||||
async userpay(userdata) {
|
||||
|
||||
console.log("-----");
|
||||
let data = await generateOrderWX();
|
||||
console.log();
|
||||
this.qrcode(userdata);
|
||||
closeDialogFail() {
|
||||
this.qrcode = null;
|
||||
// this.$router.push({
|
||||
// path: "/personal/useraddress",
|
||||
// });
|
||||
},
|
||||
qrcode(e) {
|
||||
console.log(e);
|
||||
let qrcode = new QRCode('qrcode',{
|
||||
width: 150, // 设置宽度,单位像素
|
||||
height: 150, // 设置高度,单位像素
|
||||
text: e// 设置二维码内容或跳转地址
|
||||
})
|
||||
|
||||
let qrcode = new QRCode("qrcode", {
|
||||
width: 260, // 设置宽度,单位像素
|
||||
height: 260, // 设置高度,单位像素
|
||||
text: e, // 设置二维码内容或跳转地址
|
||||
});
|
||||
},
|
||||
selectGoods(item,index){
|
||||
let _that=this
|
||||
_that.dialogInfo1=true;
|
||||
_that.activeIndex=index;
|
||||
if(item.price=='微信支付'){
|
||||
// this.userpay();
|
||||
|
||||
async selectGoods(item, index) {
|
||||
this.activeIndex = index;
|
||||
this.paytype = item.paytype;
|
||||
if (index == 1) {
|
||||
//支付宝
|
||||
let res = await generateOrderAlipay(this.userPayData.orderId);
|
||||
if (res.success) {
|
||||
this.qrcode(res.data);
|
||||
}
|
||||
}
|
||||
},
|
||||
usershow(){
|
||||
console.log('这是支付')
|
||||
this.dialogInfo1=true;
|
||||
//支付监听
|
||||
async updateOrderWX() {
|
||||
let res = await updateOrderWX();
|
||||
if (res.success) {
|
||||
this.dialogSuccess = true;
|
||||
clearInterval(this.time);
|
||||
} else {
|
||||
this.dialogFail = true;
|
||||
clearInterval(this.time);
|
||||
}
|
||||
},
|
||||
},
|
||||
components: {
|
||||
Myheader,
|
||||
tabs,
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped >
|
||||
@media screen and (max-width: 768px) {
|
||||
|
||||
.rc-usermaina{
|
||||
width: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
display: none;
|
||||
}
|
||||
.rc-userpay{
|
||||
display: none;
|
||||
}
|
||||
/deep/.el-dialog {
|
||||
width:80%;
|
||||
height: 500px;
|
||||
}
|
||||
.rc-header{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
h3{
|
||||
color:#333333;
|
||||
font-size: 26px;
|
||||
}
|
||||
.rc-title{
|
||||
display: flex;
|
||||
margin-top: 30px;
|
||||
display: none;
|
||||
img{
|
||||
.sucess_img {
|
||||
width: 96px;
|
||||
height: 96px;
|
||||
margin-left: 40px;
|
||||
|
||||
margin-right: 10px;
|
||||
}
|
||||
.order_info {
|
||||
padding: 10px 0;
|
||||
}
|
||||
.rc-titled{
|
||||
img{
|
||||
width: 96px;
|
||||
height: 96px;
|
||||
|
||||
}
|
||||
}
|
||||
.userer{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
img{
|
||||
width: 96px;
|
||||
height: 96px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
flex-direction: column;
|
||||
|
||||
}
|
||||
|
||||
span{
|
||||
font-size: 16px;
|
||||
|
||||
color: #333333;
|
||||
}
|
||||
i{
|
||||
font-size: 18px;
|
||||
font-style: normal;
|
||||
display: block;
|
||||
margin-top: 32px;
|
||||
color: #E1001A;
|
||||
}
|
||||
}
|
||||
}
|
||||
.rc-main {
|
||||
width: 100%;
|
||||
margin-top: 24%;
|
||||
.paysucess{
|
||||
display: none;
|
||||
}
|
||||
.paycord{
|
||||
display: none;
|
||||
}
|
||||
.rc-hearder {
|
||||
width: 93%;
|
||||
margin: 0 auto;
|
||||
i em {
|
||||
font-style: normal;
|
||||
}
|
||||
.rc-userpay {
|
||||
width: 100%;
|
||||
// height: 96px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
.rc-all{
|
||||
height: 96px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
// display: none;
|
||||
}
|
||||
.rc-payprice {
|
||||
.info {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
span {
|
||||
font-size: 14px;
|
||||
|
||||
color: #333333;
|
||||
}
|
||||
i {
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
|
||||
color: #e1001a;
|
||||
}
|
||||
}
|
||||
.rc-receiving {
|
||||
margin-top: 8px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
span {
|
||||
font-size: 14px;
|
||||
|
||||
color: #333333;
|
||||
}
|
||||
i {
|
||||
font-style: normal;
|
||||
color: #666666;
|
||||
font-size: 14px;
|
||||
}
|
||||
}
|
||||
|
||||
strong {
|
||||
font-size: 16px;
|
||||
display: block;
|
||||
margin-top: 53px;
|
||||
color: #e1001a;
|
||||
}
|
||||
}
|
||||
|
||||
.rc-paystype {
|
||||
height:64px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
span {
|
||||
font-size: 16px;
|
||||
|
||||
color: #e1001a;
|
||||
}
|
||||
}
|
||||
|
||||
.payAlipay {
|
||||
.user-righticon{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
img{
|
||||
width: 8px;
|
||||
height: 16px;
|
||||
}
|
||||
}
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
height: 80px;
|
||||
border-bottom: 1px solid #d8d8d8;
|
||||
.rc-payype {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
img {
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
span {
|
||||
color: #333333;
|
||||
font-size: 14px;
|
||||
margin-left: 16px;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@media screen and (min-width: 768px) and (max-width: 1920px) {
|
||||
.rc-usermaina{
|
||||
width: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
display: block;
|
||||
}
|
||||
|
||||
/deep/.el-dialog {
|
||||
width: 440px;
|
||||
height: 677px;
|
||||
}
|
||||
.rc-header{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
h3{
|
||||
color:#333333;
|
||||
font-size: 26px;
|
||||
}
|
||||
.rc-titled{
|
||||
img{
|
||||
width: 96px;
|
||||
height: 96px;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
.rc-title{
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
margin-left: -75px;
|
||||
display: block;
|
||||
top: 59%;
|
||||
img{
|
||||
width: 96px;
|
||||
height: 96px;
|
||||
|
||||
}
|
||||
}
|
||||
.userer{
|
||||
img{
|
||||
width: 210px;
|
||||
height: 210px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
flex-direction: column;
|
||||
|
||||
}
|
||||
|
||||
span{
|
||||
font-size: 16px;
|
||||
|
||||
color: #333333;
|
||||
}
|
||||
i{
|
||||
font-size: 18px;
|
||||
font-style: normal;
|
||||
display: block;
|
||||
margin-top: 32px;
|
||||
color: #E1001A;
|
||||
}
|
||||
}
|
||||
}
|
||||
.rc-main {
|
||||
.active {
|
||||
border: 1px solid #E2001A;
|
||||
cursor: pointer;
|
||||
width: 200px;
|
||||
height: 56px;
|
||||
|
||||
}
|
||||
.unactive {
|
||||
border:1px solid #3D3D3D;
|
||||
cursor: pointer;
|
||||
width: 200px;
|
||||
height: 56px;
|
||||
}
|
||||
width: 100%;
|
||||
.rc-hearder {
|
||||
width: 93%;
|
||||
margin: 0 auto;
|
||||
i em {
|
||||
font-style: normal;
|
||||
}
|
||||
.rc-userpay {
|
||||
width: 100%;
|
||||
height: 96px;
|
||||
// display: flex;
|
||||
// justify-content: space-between;
|
||||
.paysucess{
|
||||
|
||||
display: flex;
|
||||
align-items: center;
|
||||
span{
|
||||
.ready {
|
||||
font-size: 20px;
|
||||
display: block;
|
||||
width: 61%;
|
||||
color: #E2001A;
|
||||
color: #e2001a;
|
||||
}
|
||||
.ready_right {
|
||||
line-height: 200%;
|
||||
padding-top: 8px;
|
||||
}
|
||||
.rc-all{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
.price {
|
||||
font-size: 20px;
|
||||
color: #e2001a;
|
||||
}
|
||||
.rc-payprice {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
span {
|
||||
font-size: 16px;
|
||||
|
||||
color: #333333;
|
||||
}
|
||||
i {
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
|
||||
color: #e1001a;
|
||||
}
|
||||
}
|
||||
.rc-receiving {
|
||||
margin-top: 8px;
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
span {
|
||||
font-size: 16px;
|
||||
|
||||
color: #333333;
|
||||
}
|
||||
i {
|
||||
font-style: normal;
|
||||
color: #666666;
|
||||
font-size: 16px;
|
||||
}
|
||||
}
|
||||
|
||||
strong {
|
||||
font-size: 16px;
|
||||
display: block;
|
||||
margin-top: 53px;
|
||||
color: #e1001a;
|
||||
}
|
||||
}
|
||||
.paystype{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
|
||||
}
|
||||
.rc-paystype {
|
||||
height: 100px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
span {
|
||||
.pay_title {
|
||||
font-size: 26px;
|
||||
|
||||
color: #E2001A;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.payAlipay {
|
||||
|
||||
margin-left: 20px;
|
||||
.user-righticon{
|
||||
display: none;
|
||||
|
||||
img{
|
||||
width: 8px;
|
||||
height: 16px;
|
||||
}
|
||||
padding: 26px 0;
|
||||
border-bottom: 1px solid #d7d7d7;
|
||||
}
|
||||
.pay_list {
|
||||
padding: 20px 0;
|
||||
.pay_item {
|
||||
float: left;
|
||||
margin-right: 20px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
height: 56px;
|
||||
|
||||
.rc-payype {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
font-size: 16px;
|
||||
color: #E2001A;
|
||||
justify-content: center;
|
||||
width: 100%;
|
||||
border: 1px solid #333333;
|
||||
padding: 5px 20px;
|
||||
cursor: pointer;
|
||||
&.active {
|
||||
border: 1px solid #e2001a;
|
||||
color: #e2001a;
|
||||
}
|
||||
img {
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
span {
|
||||
|
||||
margin-left: 16px;
|
||||
margin-right: 5px;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
&::after {
|
||||
content: "";
|
||||
display: block;
|
||||
clear: both;
|
||||
}
|
||||
}
|
||||
|
||||
.paycord {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
flex-direction: column;
|
||||
img{
|
||||
padding: 10px;
|
||||
text-align: center;
|
||||
.qrcode {
|
||||
margin: 0 auto 10px;
|
||||
width: 260px;
|
||||
height: 260px;
|
||||
display: block;
|
||||
}
|
||||
span{
|
||||
font-size: 20px;
|
||||
display: block;
|
||||
color: #333333;
|
||||
|
||||
|
||||
}
|
||||
.dl_width {
|
||||
width: 440px;
|
||||
}
|
||||
.dl_cont {
|
||||
color: #333;
|
||||
margin-top: -10px;
|
||||
.title {
|
||||
font-size: 26px;
|
||||
font-weight: bold;
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
.line_dashed {
|
||||
border-bottom: 2px dashed #999999;
|
||||
margin: 10px 0;
|
||||
}
|
||||
.dl_img {
|
||||
img {
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
padding: 0px 0 20px;
|
||||
}
|
||||
.userer {
|
||||
img {
|
||||
margin: 0 auto;
|
||||
}
|
||||
}
|
||||
.tips {
|
||||
color: #e2001a;
|
||||
margin-top: 30px;
|
||||
font-size: 18px;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width: 768px) {
|
||||
.ph_hidden {
|
||||
display: none;
|
||||
}
|
||||
.ready_right {
|
||||
width: 100%;
|
||||
padding: 10px;
|
||||
}
|
||||
.pay_title {
|
||||
padding: 10px;
|
||||
}
|
||||
.pay_list {
|
||||
padding: 0;
|
||||
.pay_item {
|
||||
float: none;
|
||||
border: none;
|
||||
border-bottom: 1px solid #d7d7d7;
|
||||
height: 50px;
|
||||
margin-right: 0;
|
||||
align-items: center;
|
||||
justify-content: left;
|
||||
justify-content: left;
|
||||
&.active {
|
||||
border: none;
|
||||
border-bottom: 1px solid #d7d7d7;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.paycord {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
</style>
|
@ -1,49 +1,92 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="user" v-for="(item,index) in newlist" :key="index">
|
||||
<div class="user">
|
||||
<Myheader></Myheader>
|
||||
<unlogin></unlogin>
|
||||
<tabs></tabs>
|
||||
<div class="online" id="fixed-catbar-seperator"></div>
|
||||
<div class="rc-top"></div>
|
||||
<div class="rc-usermain ts-product-detail rc-max-width--xl rc-layout-container rc-two-column rc-border-bottom rc-border-colour--brand4">
|
||||
<div
|
||||
class="
|
||||
rc-usermain
|
||||
ts-product-detail
|
||||
rc-max-width--xl
|
||||
rc-layout-container rc-two-column rc-border-bottom
|
||||
rc-border-colour--brand4
|
||||
"
|
||||
>
|
||||
<div class="rc-column">
|
||||
<div data-js-carousel="" data-image-gallery="true">
|
||||
<div class="rc-carousel rc-carousel__gallery-image" data-zoom-container="328b2e5f-6904-4cac-9709-51ed18d2500f" data-zoom-factor="2">
|
||||
<div
|
||||
class="rc-carousel rc-carousel__gallery-image"
|
||||
data-zoom-container="328b2e5f-6904-4cac-9709-51ed18d2500f"
|
||||
data-zoom-factor="2"
|
||||
>
|
||||
<!-- Big images-->
|
||||
<div v-for="(item, index) in productAttachmentList" :key="index">
|
||||
<div>
|
||||
<div>
|
||||
<img src="https://cdn.royalcanin-weshare-online.io/m2kia2QBG95Xk-RBC8jn/v1/medium-maxi-giant-pos-2012-packshots-ma-ad-shn-packshot?w=420&fm=jpg&auto=compress" alt="Product alt text" />
|
||||
<img :src="item.attachmentPath" />
|
||||
<!-- <img
|
||||
src="https://cdn.royalcanin-weshare-online.io/m2kia2QBG95Xk-RBC8jn/v1/medium-maxi-giant-pos-2012-packshots-ma-ad-shn-packshot?w=420&fm=jpg&auto=compress"
|
||||
alt="Product alt text"
|
||||
/> -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<!-- <div>
|
||||
<div>
|
||||
<img src="https://cdn.royalcanin-weshare-online.io/m2kia2QBG95Xk-RBC8jn/v1/medium-maxi-giant-pos-2012-packshots-ma-ad-shn-packshot?w=420&fm=jpg&auto=compress" alt="Product alt text" />
|
||||
</div>
|
||||
</div>
|
||||
</div> -->
|
||||
<!-- Big images end-->
|
||||
</div>
|
||||
<div class="rc-carousel__gallery-thumbnails-wrapper">
|
||||
<div class="rc-carousel rc-carousel__gallery-thumbnails">
|
||||
<!-- Thunb images-->
|
||||
<div class="rc-carousel__gallery-thumbnail">
|
||||
<figure class="rc-img--square" style="background-image: url('https://cdn.royalcanin-weshare-online.io/m2kia2QBG95Xk-RBC8jn/v1/medium-maxi-giant-pos-2012-packshots-ma-ad-shn-packshot?w=64&fm=jpg&auto=compress')">
|
||||
<figcaption class="rc-screen-reader-text">Product caption text</figcaption>
|
||||
<div class="rc-carousel__gallery-thumbnail tns-item tns-slide-active"
|
||||
v-for="(item, index) in productAttachmentList"
|
||||
:key="index"
|
||||
>
|
||||
<div class="rc-img--square">
|
||||
<img :src="item.attachmentPath" />
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="rc-carousel__gallery-thumbnail">
|
||||
<figure
|
||||
class="rc-img--square"
|
||||
style="
|
||||
background-image: url('https://cdn.royalcanin-weshare-online.io/m2kia2QBG95Xk-RBC8jn/v1/medium-maxi-giant-pos-2012-packshots-ma-ad-shn-packshot?w=64&fm=jpg&auto=compress');
|
||||
"
|
||||
>
|
||||
<figcaption class="rc-screen-reader-text">
|
||||
Product caption text
|
||||
</figcaption>
|
||||
</figure>
|
||||
</div>
|
||||
<div class="rc-carousel__gallery-thumbnail">
|
||||
<figure class="rc-img--square" style="background-image: url('https://cdn.royalcanin-weshare-online.io/UCEUa2QBaxEApS7L_-Xz/v2/fbn-2013-graphiccodes-packshots-siam-ad-int-fbn-packshot?w=64&fm=jpg&auto=compress')">
|
||||
<figcaption class="rc-screen-reader-text">Product caption text</figcaption>
|
||||
<figure
|
||||
class="rc-img--square"
|
||||
style="
|
||||
background-image: url('https://cdn.royalcanin-weshare-online.io/UCEUa2QBaxEApS7L_-Xz/v2/fbn-2013-graphiccodes-packshots-siam-ad-int-fbn-packshot?w=64&fm=jpg&auto=compress');
|
||||
"
|
||||
>
|
||||
<figcaption class="rc-screen-reader-text">
|
||||
Product caption text
|
||||
</figcaption>
|
||||
</figure>
|
||||
</div>
|
||||
</div> -->
|
||||
<!-- Thunb images end-->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="ts-product-header rc-column" id="328b2e5f-6904-4cac-9709-51ed18d2500f">
|
||||
<div
|
||||
class="ts-product-header rc-column"
|
||||
id="328b2e5f-6904-4cac-9709-51ed18d2500f"
|
||||
v-for="(item, index) in newlist"
|
||||
:key="index"
|
||||
>
|
||||
<div class="usermain">
|
||||
<div class="online bold rc-md-down"></div>
|
||||
<div class="rc-main">
|
||||
@ -57,7 +100,9 @@
|
||||
<div class="rc-productdetail">
|
||||
<i class="ts-row-title">商品价格:</i>
|
||||
<span class="ts-realprice">¥{{ item.rsp }}</span>
|
||||
<span class="ts-remove ts-ecprice">¥{{ item.ecPrice }} </span>
|
||||
<span class="ts-remove ts-ecprice"
|
||||
>¥{{ item.ecPrice }}
|
||||
</span>
|
||||
</div>
|
||||
<div class="rc-productdetai">
|
||||
<div>
|
||||
@ -83,7 +128,7 @@
|
||||
{{ item.title }}
|
||||
</em> -->
|
||||
|
||||
<em class='active'>
|
||||
<em class="active">
|
||||
{{ item.specifications }}
|
||||
</em>
|
||||
</div>
|
||||
@ -91,9 +136,17 @@
|
||||
<div class="rc-main">
|
||||
<div class="rc-produnnum">
|
||||
<div><i class="ts-row-title">商品数量:</i></div>
|
||||
<img src="../../assets/image/userjian.png" alt="" @click="sub()" />
|
||||
<img
|
||||
src="../../assets/image/userjian.png"
|
||||
alt=""
|
||||
@click="sub()"
|
||||
/>
|
||||
<strong>{{ sales_num }}</strong>
|
||||
<img src="../../assets/image/userjia.png" alt="" @click="plus()" />
|
||||
<img
|
||||
src="../../assets/image/userjia.png"
|
||||
alt=""
|
||||
@click="plus()"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="rc-main rc-md-up">
|
||||
@ -105,23 +158,28 @@
|
||||
<ul>
|
||||
<li>
|
||||
<span
|
||||
><i class="ts-row-title">服务说明:</i><i>当天14点前完成付款即日安排发货;当天14点后完成付款次日安排发货(周日及国家法定节假日顺延至下一个工作日发货,活动期间发货或有延迟敬请理解)</i></span
|
||||
><i class="ts-row-title">服务说明:</i
|
||||
><i
|
||||
>当天14点前完成付款即日安排发货;当天14点后完成付款次日安排发货(周日及国家法定节假日顺延至下一个工作日发货,活动期间发货或有延迟敬请理解)</i
|
||||
></span
|
||||
>
|
||||
</li>
|
||||
<li>
|
||||
<span
|
||||
><i class="ts-row-title">商品运费:</i><i>全场包邮(港澳除外)</i></span
|
||||
><i class="ts-row-title">商品运费:</i
|
||||
><i>全场包邮(港澳除外)</i></span
|
||||
>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<span
|
||||
><i class="ts-row-title">商品编号:</i><i>{{ item.brandCode }}</i></span
|
||||
><i class="ts-row-title">商品编号:</i
|
||||
><i>{{ item.brandCode }}</i></span
|
||||
>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="rc-button" v-if="!userbuy">
|
||||
<div class="rc-button" v-if="userbuy">
|
||||
<span @click="usertanchu(item, 0)">加入购物车</span>
|
||||
<span @click="usertanchu(item, 1)">立即购买</span>
|
||||
</div>
|
||||
@ -129,32 +187,30 @@
|
||||
<div class="online bold rc-md-down"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="rc-footimage rc-main">
|
||||
<img :src=item.showImgFile alt="">
|
||||
|
||||
<!-- <img :src="item.showImgFile" alt="" /> -->
|
||||
</div>
|
||||
<div class="rc-fixright">
|
||||
<ul>
|
||||
<li v-for="(userfixed,index) in fixedlist" :key="index" @click="lianxi(userfixed,index)">
|
||||
<img :src="userfixed.catimage" alt="">
|
||||
<li
|
||||
v-for="(userfixed, index) in fixedlist"
|
||||
:key="index"
|
||||
@click="lianxi(userfixed, index)"
|
||||
>
|
||||
<img :src="userfixed.catimage" alt="" />
|
||||
<span> {{ userfixed.title }}</span>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="tuntop" @click="toTop" v-show="gotop">
|
||||
<img src="../../assets/image/turntop.png" alt="">
|
||||
<img src="../../assets/image/turntop.png" alt="" />
|
||||
<span>回到顶部</span>
|
||||
</div>
|
||||
</div>
|
||||
<Myfooter v-on:litentop='showmesg'></Myfooter>
|
||||
<Myfooter v-on:litentop="showmesg"></Myfooter>
|
||||
</div>
|
||||
<el-dialog
|
||||
:visible.sync="dialogInfo1"
|
||||
hegight="700px"
|
||||
@close='userclose'
|
||||
>
|
||||
<el-dialog :visible.sync="dialogInfo1" @close="userclose">
|
||||
<div class="rs-dis">
|
||||
<div
|
||||
class="rc-discount"
|
||||
@ -172,7 +228,7 @@
|
||||
<i>
|
||||
{{ item.couponDesc }}
|
||||
</i>
|
||||
<div class="rc-main" id="rc-main">
|
||||
<div>
|
||||
<span>有效期</span>
|
||||
<em>{{ item.validTo }}</em>
|
||||
</div>
|
||||
@ -180,36 +236,25 @@
|
||||
<span @click="usergetconf(item)">立即领取</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</el-dialog>
|
||||
<el-dialog
|
||||
:visible.sync="dialogInfo2"
|
||||
@close='userclose'
|
||||
>
|
||||
<el-dialog :visible.sync="dialogInfo2" @close="userclose">
|
||||
<div class="rc-headera">
|
||||
<div class="rc-title">
|
||||
<img src="../../assets/error.png" alt="">
|
||||
<img src="../../assets/error.png" alt="" />
|
||||
</div>
|
||||
<div class="rc-logmain">
|
||||
<h3>温馨提示</h3>
|
||||
<span>请先点击下方进行登录/注册</span>
|
||||
|
||||
</div>
|
||||
<nuxt-link :to="`/userlogin/login/`">
|
||||
<div class="userer">
|
||||
<span>立即登录</span>
|
||||
|
||||
</div>
|
||||
</nuxt-link>
|
||||
</div>
|
||||
|
||||
|
||||
</el-dialog>
|
||||
<div class="rc-button rc-md-down">
|
||||
<span @click="usertanchu(item, 0)">加入购物车</span>
|
||||
@ -224,7 +269,13 @@ import tabs from "@/components/tabs.vue";
|
||||
import unlogin from "~/components/unlogin.vue";
|
||||
import { mapMutations } from "vuex";
|
||||
import Myfooter from "~/components/rc-footer.vue";
|
||||
import { goodsmessage,getConfig,postCourseId,getdraw,alldiscount } from "../../ajax/getData";
|
||||
import {
|
||||
goodsmessage,
|
||||
getConfig,
|
||||
postCourseId,
|
||||
getdraw,
|
||||
alldiscount,
|
||||
} from "../../ajax/getData";
|
||||
const settings = require("@/config");
|
||||
export default {
|
||||
// middleware: 'metaTitle',
|
||||
@ -242,14 +293,15 @@ export default {
|
||||
drawlist: [], //用户可以领取的优惠券
|
||||
alldraw: [],
|
||||
userlistmenu: [],
|
||||
msg:['11111111'],
|
||||
parent_msg:['111'],
|
||||
msg: ["11111111"],
|
||||
parent_msg: ["111"],
|
||||
usermessage: [],
|
||||
dialogInfo2: false,
|
||||
productCode:'',//商品code
|
||||
productCode: "", //商品code
|
||||
productlist: [],
|
||||
userbuy: true,
|
||||
sales_num: 1,
|
||||
productAttachmentList: [],
|
||||
usernewlist: [
|
||||
{
|
||||
price: "30",
|
||||
@ -272,23 +324,17 @@ export default {
|
||||
{
|
||||
title: "购物车",
|
||||
catimage: require("../../assets/buy.png"),
|
||||
|
||||
|
||||
},
|
||||
{
|
||||
title: "在线客服",
|
||||
catimage: require("../../assets/service.png"),
|
||||
|
||||
},
|
||||
{
|
||||
title: "营养专家",
|
||||
catimage: require("../../assets/consult.png"),
|
||||
|
||||
},
|
||||
|
||||
],
|
||||
|
||||
|
||||
newlist: [
|
||||
{
|
||||
price: "167.00",
|
||||
@ -309,104 +355,106 @@ export default {
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
},
|
||||
|
||||
|
||||
components: {
|
||||
Myheader,
|
||||
tabs,
|
||||
unlogin,
|
||||
Myfooter
|
||||
|
||||
Myfooter,
|
||||
},
|
||||
mounted() {
|
||||
window.addEventListener("scroll", this.handleScroll, true);
|
||||
if(this.usermessage!=='' ||this.usermessage.data!==undefined){
|
||||
if (this.usermessage !== "" || this.usermessage.data !== undefined) {
|
||||
this.usermessage = JSON.parse(localStorage.getItem("userInfo"));
|
||||
let stype = this.$route.query.stype;
|
||||
this.productCode = this.$route.query.productCode;
|
||||
console.log(this.productCode)
|
||||
// console.log(this.productCode);
|
||||
this.userquery(this.productCode);
|
||||
console.log(this.userlistmenu)
|
||||
this.$nextTick(()=>{
|
||||
|
||||
})
|
||||
// console.log(this.userlistmenu);
|
||||
this.$nextTick(() => {});
|
||||
if (stype == 1) {
|
||||
this.userbuy = true;
|
||||
} else if (stype == 2) {
|
||||
console.log('这是要消失的')
|
||||
// console.log("这是要消失的");
|
||||
this.$nextTick(() => {
|
||||
this.userbuy = false;
|
||||
|
||||
})
|
||||
|
||||
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
},
|
||||
methods: {
|
||||
...mapMutations(["changemessage"]),
|
||||
handleScroll(e)
|
||||
{
|
||||
let fixedCatbarSeperator = document.querySelector("#fixed-catbar-seperator");
|
||||
let scrolltop = document.documentElement.scrollTop || document.body.scrollTop;
|
||||
if(fixedCatbarSeperator!=='null' ){
|
||||
if((scrolltop-fixedCatbarSeperator.offsetTop))
|
||||
{
|
||||
this.gotop = true
|
||||
}
|
||||
else
|
||||
{
|
||||
handleScroll(e) {
|
||||
let fixedCatbarSeperator = document.querySelector(
|
||||
"#fixed-catbar-seperator"
|
||||
);
|
||||
let scrolltop =
|
||||
document.documentElement.scrollTop || document.body.scrollTop;
|
||||
if (fixedCatbarSeperator !== "null") {
|
||||
if (scrolltop - fixedCatbarSeperator.offsetTop) {
|
||||
this.gotop = true;
|
||||
} else {
|
||||
this.gotop = false;
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
lianxi(item, index) {
|
||||
console.log(item, index);
|
||||
if(item.title=='在线客服'){
|
||||
if (item.title == "在线客服") {
|
||||
var option = {
|
||||
customer: {id: '', name: '', email: '', mobile: '', memberId: '999999'}
|
||||
}
|
||||
customer: {
|
||||
id: "",
|
||||
name: "",
|
||||
email: "",
|
||||
mobile: "",
|
||||
memberId: "999999",
|
||||
},
|
||||
};
|
||||
dis_livchat(option);
|
||||
}
|
||||
if(item.title=='购物车'){
|
||||
console.log('---12314');
|
||||
if (item.title == "购物车") {
|
||||
this.$router.push({
|
||||
path: "../../myorder/userrecord",
|
||||
|
||||
});
|
||||
}
|
||||
if(item.title=='营养专家'){
|
||||
if (item.title == "营养专家") {
|
||||
var option = {
|
||||
customer: {id: '', name: '', email: '', mobile: '', memberId: '999999'}
|
||||
}
|
||||
customer: {
|
||||
id: "",
|
||||
name: "",
|
||||
email: "",
|
||||
mobile: "",
|
||||
memberId: "999999",
|
||||
},
|
||||
};
|
||||
dis_livchat(option);
|
||||
}
|
||||
|
||||
},
|
||||
toTop() {
|
||||
let top = document.documentElement.scrollTop || document.body.scrollTop;
|
||||
// 实现滚动效果
|
||||
const timeTop = setInterval(() => {
|
||||
document.body.scrollTop = document.documentElement.scrollTop = top -= 400;
|
||||
document.body.scrollTop =
|
||||
document.documentElement.scrollTop =
|
||||
top -=
|
||||
400;
|
||||
if (top <= 0) {
|
||||
clearInterval(timeTop);
|
||||
}
|
||||
}, 10);
|
||||
},
|
||||
showmesg() {
|
||||
console.log('-----');
|
||||
this.toTop();
|
||||
},
|
||||
toTop() {
|
||||
let top = document.documentElement.scrollTop || document.body.scrollTop;
|
||||
// 实现滚动效果
|
||||
const timeTop = setInterval(() => {
|
||||
document.body.scrollTop = document.documentElement.scrollTop = top -= 400;
|
||||
document.body.scrollTop =
|
||||
document.documentElement.scrollTop =
|
||||
top -=
|
||||
400;
|
||||
if (top <= 0) {
|
||||
clearInterval(timeTop);
|
||||
}
|
||||
@ -416,7 +464,7 @@ this.usermessage= JSON.parse(localStorage.getItem("userInfo"));
|
||||
//领取优惠券
|
||||
usergetconf(item) {
|
||||
console.log(item);
|
||||
if(this.usermessage.data!==''||this.usermessage.data!==undefined){
|
||||
if (this.usermessage.data !== "" || this.usermessage.data !== undefined) {
|
||||
this.getconf(this.usermessage.data.id, item.couponId);
|
||||
}
|
||||
},
|
||||
@ -425,45 +473,35 @@ if(this.usermessage.data!==''||this.usermessage.data!==undefined){
|
||||
async getconf(memberId, couponId) {
|
||||
let data = await getConfig(memberId, couponId);
|
||||
if (data) {
|
||||
|
||||
this.$message({
|
||||
type: 'warning',
|
||||
message: data.msg
|
||||
type: "warning",
|
||||
message: data.msg,
|
||||
});
|
||||
|
||||
console.log(data);
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
|
||||
|
||||
// changeName(newName){
|
||||
// this.name = newName;
|
||||
// },
|
||||
|
||||
|
||||
userclose() {
|
||||
console.log('这是关闭的');
|
||||
this.userlist = [];
|
||||
},
|
||||
async userquery() {
|
||||
console.log("-----");
|
||||
|
||||
let data = await goodsmessage(this.productCode);
|
||||
if (data) {
|
||||
this.newlist = data.data;
|
||||
|
||||
}
|
||||
this.productAttachmentList = this.newlist[0].productAttachmentList;
|
||||
|
||||
this.userlistmenu = this.newlist[0].productAttachmentList;
|
||||
let changemess = JSON.stringify(this.userlistmenu);
|
||||
console.log(changemess);
|
||||
this.changemessage({ data: changemess });
|
||||
this.parent_msg = this.userlistmenu;
|
||||
console.log( this.userlistmenu)
|
||||
|
||||
|
||||
console.log(this.userlistmenu);
|
||||
},
|
||||
|
||||
//获取用户领取的优惠券
|
||||
@ -472,7 +510,6 @@ if(this.usermessage.data!==''||this.usermessage.data!==undefined){
|
||||
if (data) {
|
||||
this.drawlist = data.data;
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
//获取所有的优惠券
|
||||
@ -486,121 +523,100 @@ if(this.usermessage.data!==''||this.usermessage.data!==undefined){
|
||||
let alllist = [];
|
||||
this.userlist = this.alldraw.data;
|
||||
this.userlist.forEach((element, index) => {
|
||||
if(typeof element.productCodes=='string'){
|
||||
if (typeof element.productCodes == "string") {
|
||||
userlist.push(element);
|
||||
// let s=element.productCodes.split(',');
|
||||
// console.log(s.indexOf(this.productCode) != -1 )
|
||||
// console.log('这是字符串')
|
||||
|
||||
}
|
||||
|
||||
})
|
||||
});
|
||||
let menualist = [];
|
||||
userlist.filter(item=>{
|
||||
userlist.filter((item) => {
|
||||
console.log(item);
|
||||
item.productCodes=item.productCodes.split(',')
|
||||
item.productCodes.forEach(element=>{
|
||||
item.productCodes = item.productCodes.split(",");
|
||||
item.productCodes.forEach((element) => {
|
||||
if (element == this.productCode && item.activityId !== 10) {
|
||||
console.log(element)
|
||||
console.log(this.productCode)
|
||||
console.log(element);
|
||||
console.log(this.productCode);
|
||||
menualist.push(item);
|
||||
|
||||
console.log('----');
|
||||
console.log("----");
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
})
|
||||
});
|
||||
});
|
||||
this.usernewlist = menualist;
|
||||
console.log(this.usernewlist);
|
||||
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
plus(num, index) {
|
||||
|
||||
this.sales_num = parseInt(this.sales_num) + 1;
|
||||
console.log( this.sales_num);
|
||||
},
|
||||
// 数量减方法
|
||||
sub(num, index) {
|
||||
if (this.sales_num <= 1) {
|
||||
this.sales_num = 1;
|
||||
}
|
||||
else{
|
||||
} else {
|
||||
this.sales_num = parseInt(this.sales_num) - 1;
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
async courseId(item) {
|
||||
console.log(item);
|
||||
console.log(this.usermessage);
|
||||
// let userid=JSON.parse(location.getItem('userInfo'));
|
||||
// let mobile=JSON.parse(location.getItem('userInfo'));
|
||||
// console.log(userid,mobile);
|
||||
let data = await postCourseId( this.productCode,this.sales_num,this.usermessage.data.id,this.usermessage.data.mobile,item.picFile,item.productName,item.basePrice,item.specifications);
|
||||
let data = await postCourseId(
|
||||
this.productCode,
|
||||
this.sales_num,
|
||||
this.usermessage.data.id,
|
||||
this.usermessage.data.mobile,
|
||||
item.picFile,
|
||||
item.productName,
|
||||
item.basePrice,
|
||||
item.specifications
|
||||
);
|
||||
if (data) {
|
||||
this.productlist = data;
|
||||
}
|
||||
console.log(data);
|
||||
},
|
||||
usertanchu(item, orderm) {
|
||||
|
||||
let user = localStorage.getItem("userInfo");
|
||||
if(user==undefined||user==null||user==''){
|
||||
if (user == undefined || user == null || user == "") {
|
||||
this.dialogInfo2 = true;
|
||||
return
|
||||
return;
|
||||
} else {
|
||||
|
||||
this.courseId(item);
|
||||
if (orderm == 0) {
|
||||
this.$message({
|
||||
type: 'warning',
|
||||
message: '加入购物车成功'
|
||||
type: "warning",
|
||||
message: "加入购物车成功",
|
||||
});
|
||||
}
|
||||
if (orderm == 1) {
|
||||
this.$router.push({
|
||||
path: "/myorder/userrecord",
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
},
|
||||
userget() {
|
||||
|
||||
|
||||
let user = localStorage.getItem("userInfo");
|
||||
if(user==undefined||user==null||user==''){
|
||||
if (user == undefined || user == null || user == "") {
|
||||
this.dialogInfo2 = true;
|
||||
return
|
||||
return;
|
||||
} else {
|
||||
this.userdraw(this.usermessage.data.mobile);
|
||||
this.alldrawlist(this.usermessage.data.id);
|
||||
this.dialogInfo1 = true;
|
||||
}
|
||||
|
||||
},
|
||||
selectsearch(item, index) {
|
||||
|
||||
this.activeIndexa = index;
|
||||
},
|
||||
},
|
||||
|
||||
onceproduct(){
|
||||
|
||||
},
|
||||
|
||||
onceproduct() {},
|
||||
};
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
|
@ -516,12 +516,12 @@ export default {
|
||||
this.$refs.userstandard[0].style.margin = 0 + "px";
|
||||
});
|
||||
this.userst();
|
||||
this.activeIndex = stype;
|
||||
if (stype !== "" && stype !== undefined) {
|
||||
this.onmessage(stype);
|
||||
} else {
|
||||
this.usetmessage();
|
||||
}
|
||||
// this.activeIndex = stype;
|
||||
// if (stype !== "" && stype !== undefined) {
|
||||
// this.onmessage(stype);
|
||||
// } else {
|
||||
// this.usetmessage();
|
||||
// }
|
||||
},
|
||||
methods: {
|
||||
async usersearch(stype, usertype) {
|
||||
|
@ -1,12 +1,8 @@
|
||||
<template>
|
||||
<div>
|
||||
<Myheader></Myheader>
|
||||
<div class="rc-top"></div>
|
||||
<div class="online bold"></div>
|
||||
<div class="usercontshow rc-max-width--xl">
|
||||
<div class="usercontend" v-for="(item, index) in list" :key="index">
|
||||
<div class="usercontshow usermain" >
|
||||
<div class="rc-cat" >
|
||||
<div class="usermain">
|
||||
<div class="rc-main" v-for="(item, index) in list" :key="index">
|
||||
<div class="rc-center">
|
||||
<div class=" rc-title">
|
||||
<em>
|
||||
@ -36,7 +32,6 @@
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="online bold rc-md-down"></div>
|
||||
<!-- <div class="usercontend useradd">
|
||||
@ -65,6 +60,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
import Myheader from '~/components/header.vue'
|
||||
import MyFooter from '~/components/rc-footer.vue'
|
||||
import { selectaddress,editupdate,editdelete} from "../../ajax/getData";
|
||||
@ -170,7 +166,6 @@ export default {
|
||||
},
|
||||
components: {
|
||||
Myheader,
|
||||
MyFooter
|
||||
},
|
||||
|
||||
mounted() {
|
||||
|
@ -72,8 +72,8 @@ public class SmartAuthenticationInterceptor extends HandlerInterceptorAdapter {
|
||||
}
|
||||
Boolean noNeedLogin = request.getServletPath().contains("royalcanin");
|
||||
Boolean noNeedLoginToo = request.getContextPath().contains("royalcanin");
|
||||
System.out.println("request.getContextPath() : " + request.getRequestURI());
|
||||
System.out.println("request.getRequestURI() : " + request.getRequestURI());
|
||||
// System.out.println("request.getContextPath() : " + request.getRequestURI());
|
||||
// System.out.println("request.getRequestURI() : " + request.getRequestURI());
|
||||
if (noNeedLogin||noNeedLoginToo) {
|
||||
return true;
|
||||
}
|
||||
|
@ -17,6 +17,9 @@ import net.lab1024.smartadmin.module.system.royalcanin.good.model.ProductMasterQ
|
||||
import net.lab1024.smartadmin.module.system.royalcanin.good.model.ProductQueryEntity;
|
||||
import net.lab1024.smartadmin.module.system.royalcanin.good.service.CartService;
|
||||
import net.lab1024.smartadmin.module.system.royalcanin.good.service.GoodService;
|
||||
import net.lab1024.smartadmin.module.system.royalcanin.productSearchTag.model.ProductSearchTagEntity;
|
||||
import net.lab1024.smartadmin.module.system.royalcanin.productSearchTag.service.ProductSearchTagService;
|
||||
import net.lab1024.smartadmin.util.MapRemoveNullUtil;
|
||||
import net.lab1024.smartadmin.util.SmartJWTUtil;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
@ -25,7 +28,9 @@ import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Api(tags = {SwaggerTagConst.Admin.MANAGER_MALL_API})
|
||||
@OperateLog
|
||||
@ -40,6 +45,9 @@ public class GoodController {
|
||||
@Autowired
|
||||
private CartService cartService;
|
||||
|
||||
@Autowired
|
||||
private ProductSearchTagService productSearchTagService;
|
||||
|
||||
|
||||
@Autowired
|
||||
private GoodService goodService;
|
||||
@ -58,6 +66,60 @@ public class GoodController {
|
||||
@ApiOperation(value = "查询标品信息", notes = "查询标品信息")
|
||||
@PostMapping("royalcanin/product/query")
|
||||
public String transferBrand(ProductQueryEntity productQueryEntity) throws Exception {
|
||||
Map<String, String> paramMap = MapRemoveNullUtil.setConditionMap(productQueryEntity);
|
||||
List<String> brandNameList = new ArrayList<>();
|
||||
List<String> tagNameList = new ArrayList<>();
|
||||
int count = 0;
|
||||
for (String categoryKey : paramMap.keySet()) {
|
||||
if(categoryKey == "categoryName" || categoryKey == "tagFunction" || categoryKey == "tagUsedAge" || categoryKey == "tagBreed" || categoryKey == "tagStatus") {
|
||||
switch (categoryKey) {
|
||||
case "categoryName":
|
||||
brandNameList.add("专区");
|
||||
break;
|
||||
case "tagFunction":
|
||||
brandNameList.add("功能");
|
||||
break;
|
||||
case "tagUsedAge":
|
||||
brandNameList.add("年龄");
|
||||
break;
|
||||
case "tagBreed":
|
||||
brandNameList.add("品种");
|
||||
break;
|
||||
}
|
||||
count++;
|
||||
for (String tagName : paramMap.get(categoryKey).split(",")) {
|
||||
if (categoryKey != "tagStatus") {
|
||||
tagNameList.add(tagName);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(count > 0) {
|
||||
List<ProductSearchTagEntity> productSearchTagList = productSearchTagService.findAllByCondition(brandNameList, productQueryEntity.getPetType(), tagNameList, productQueryEntity.getTagStatus());
|
||||
List<String> tagCodeList = new ArrayList<>();
|
||||
for (ProductSearchTagEntity productSearchTagEntity : productSearchTagList) {
|
||||
tagCodeList.add(productSearchTagEntity.getTagCode());
|
||||
}
|
||||
String tagCode = String.join(",", tagCodeList);
|
||||
productQueryEntity.setTags(tagCode);
|
||||
}
|
||||
if(brandNameList.size() == 0 && productQueryEntity.getTagStatus() != null && productQueryEntity.getTagStatus() != "") {
|
||||
productQueryEntity.setCount("1");
|
||||
}else{
|
||||
if (productQueryEntity.getTagStatus() != null && productQueryEntity.getTagStatus() != "" && brandNameList.size() != 0) {
|
||||
if(productQueryEntity.getCategoryName() != "" &&productQueryEntity.getCategoryName() != null) {
|
||||
productQueryEntity.setCount(StringUtil.toString(count -1));
|
||||
}else{
|
||||
productQueryEntity.setCount(StringUtil.toString(count));
|
||||
}
|
||||
}else{
|
||||
productQueryEntity.setCount(StringUtil.toString(count));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
long startTime = System.currentTimeMillis();
|
||||
String result = goodService.brandQuery(productQueryEntity);
|
||||
long acceptTime = System.currentTimeMillis() ;
|
||||
|
@ -10,18 +10,37 @@ import lombok.NoArgsConstructor;
|
||||
public class ProductQueryEntity {
|
||||
|
||||
private String channelId;
|
||||
|
||||
private String secret;
|
||||
|
||||
private String page;
|
||||
|
||||
private String rows;
|
||||
|
||||
private String productCode;
|
||||
|
||||
private String name;
|
||||
|
||||
private String brandCode;
|
||||
|
||||
private String brandName;
|
||||
|
||||
private String petType;
|
||||
|
||||
private String categoryName;
|
||||
|
||||
private String tagUsedAge;
|
||||
|
||||
private String tagFunction;
|
||||
|
||||
private String tagBreed;
|
||||
|
||||
private String tagStatus;
|
||||
|
||||
private String tags;
|
||||
|
||||
private String isSales;
|
||||
|
||||
private String count;
|
||||
|
||||
}
|
||||
|
@ -40,6 +40,11 @@ public class GoodService {
|
||||
|
||||
public String brandQuery(ProductQueryEntity productQueryEntity) throws Exception {
|
||||
Map<String, String> paramMap = MapRemoveNullUtil.setConditionMap(productQueryEntity);
|
||||
paramMap.remove("categoryName");
|
||||
paramMap.remove("tagUsedAge");
|
||||
paramMap.remove("tagFunction");
|
||||
paramMap.remove("tagBreed");
|
||||
paramMap.remove("tagStatus");
|
||||
MapRemoveNullUtil.removeNullEntry(paramMap);
|
||||
paramMap.put("secret","H5@2021");
|
||||
paramMap.put("channelId","15");
|
||||
|
@ -62,6 +62,6 @@ public class MemberAddressUpdateEntity {
|
||||
/**
|
||||
* 是否默认地址
|
||||
*/
|
||||
private boolean isDefault;
|
||||
private String isDefault;
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,16 @@
|
||||
package net.lab1024.smartadmin.module.system.royalcanin.productSearchTag.Dao;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import net.lab1024.smartadmin.module.system.royalcanin.productSearchTag.model.ProductSearchTagEntity;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Mapper
|
||||
@Component
|
||||
public interface ProductSearchTagDao extends BaseMapper<ProductSearchTagEntity> {
|
||||
|
||||
List<ProductSearchTagEntity> findAllByCondition(@Param("brandNameList") List<String> brandNameList,@Param("petType")String petType,@Param("tagNameList") List<String> tagNameList,@Param("tagStatus")String tagStatus);
|
||||
}
|
@ -0,0 +1,27 @@
|
||||
package net.lab1024.smartadmin.module.system.royalcanin.productSearchTag.model;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
@TableName("t_royalcanin_productSearchTag")
|
||||
public class ProductSearchTagEntity {
|
||||
|
||||
private String id ;
|
||||
|
||||
private String brandCode;
|
||||
|
||||
private String brandName;
|
||||
|
||||
private String petType;
|
||||
|
||||
private String tagName;
|
||||
|
||||
private String tagType;
|
||||
|
||||
private String tagCode;
|
||||
|
||||
private String isDelete;
|
||||
|
||||
}
|
@ -0,0 +1,20 @@
|
||||
package net.lab1024.smartadmin.module.system.royalcanin.productSearchTag.service;
|
||||
|
||||
import net.lab1024.smartadmin.module.system.royalcanin.productSearchTag.Dao.ProductSearchTagDao;
|
||||
import net.lab1024.smartadmin.module.system.royalcanin.productSearchTag.model.ProductSearchTagEntity;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
public class ProductSearchTagService {
|
||||
|
||||
@Autowired
|
||||
private ProductSearchTagDao productSearchTagDao;
|
||||
|
||||
|
||||
public List<ProductSearchTagEntity> findAllByCondition( List<String> brandNameList,String petType,List<String> tagNameList,String tagStatus){
|
||||
return productSearchTagDao.findAllByCondition(brandNameList,petType,tagNameList,tagStatus);
|
||||
}
|
||||
}
|
@ -21,4 +21,5 @@
|
||||
where order_no = #{out_trade_no}
|
||||
|
||||
</update>
|
||||
|
||||
</mapper>
|
@ -0,0 +1,34 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="net.lab1024.smartadmin.module.system.royalcanin.productSearchTag.Dao.ProductSearchTagDao">
|
||||
<resultMap id="ProductSearchTagEntity"
|
||||
type="net.lab1024.smartadmin.module.system.royalcanin.productSearchTag.model.ProductSearchTagEntity"></resultMap>
|
||||
|
||||
|
||||
<select id="findAllByCondition" resultMap="ProductSearchTagEntity">
|
||||
select tag_code,brand_name,tag_name from t_royalcanin_productsearchtag WHERE
|
||||
is_delete = 0
|
||||
<if test="brandNameList != null and brandNameList.size > 0">
|
||||
AND brand_name in
|
||||
<foreach collection="brandNameList" open="(" close=")" separator="," item="brandName">
|
||||
#{brandName}
|
||||
</foreach>
|
||||
</if>
|
||||
|
||||
<if test="tagNameList != null and tagNameList.size > 0">
|
||||
AND tag_name in
|
||||
<foreach collection="tagNameList" open="(" close=")" separator="," item="tagName">
|
||||
#{tagName}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="tagStatus != null and tagStatus == 1">
|
||||
or brand_name in ( '专区' ) and tag_name not like '%湿粮%'
|
||||
</if>
|
||||
<if test="tagStatus != null and tagStatus == 2">
|
||||
or brand_name in ( '专区' ) and tag_name like '%湿粮%'
|
||||
</if>
|
||||
<if test="petType != null and petType != ''">
|
||||
AND pet_type = #{petType}
|
||||
</if>
|
||||
</select>
|
||||
</mapper>
|
@ -1707,4 +1707,68 @@ CREATE TABLE IF NOT EXISTS `t_royalcanin_notify_operate_log` (
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
|
||||
|
||||
CREATE TABLE `t_royalcanin_productsearchtag` (
|
||||
`id` int(50) NOT NULL,
|
||||
`brand_code` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`brand_name` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`pet_type` varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`tag_name` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`tag_type` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`tag_code` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`is_delete` INT(20) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
|
||||
|
||||
|
||||
INSERT INTO `t_royalcanin_productsearchtag` (`id`, `brand_code`, `brand_name`, `pet_type`, `tag_name`, `tag_type`, `tag_code`, `is_delete`, `create_time`) VALUES
|
||||
(1019, '16518816', '品种', '1', '贵宾', '1017', '1017001', 0, '2022-01-19 16:41:55'),
|
||||
(1020, '16518816', '品种', '1', '法斗', '1017', '1017002', 0, '2022-01-19 16:41:55'),
|
||||
(1021, '16518816', '品种', '1', '德牧', '1017', '1017003', 0, '2022-01-19 16:41:55'),
|
||||
(1022, '16518816', '品种', '1', '拉布拉多', '1017', '1017004', 0, '2022-01-19 16:41:55'),
|
||||
(1023, '16518816', '品种', '1', '金毛', '1017', '1017005', 0, '2022-01-19 16:41:55'),
|
||||
(1024, '16518816', '品种', '1', '比熊', '1017', '1017006', 0, '2022-01-19 16:41:55'),
|
||||
(1025, '16518816', '品种', '1', '雪纳瑞', '1017', '1017007', 0, '2022-01-19 16:41:55'),
|
||||
(1026, '16518816', '品种', '1', '约克夏', '1017', '1017008', 0, '2022-01-19 16:41:55'),
|
||||
(1027, '16518816', '品种', '1', '吉娃娃', '1017', '1017009', 0, '2022-01-19 16:41:55'),
|
||||
(1028, '16518816', '品种', '1', '柴犬', '1017', '1017010', 0, '2022-01-19 16:41:55'),
|
||||
(1029, '16518816', '品种', '0', '巴哥', '1017', '1017011', 0, '2022-01-19 16:41:55'),
|
||||
(1030, '16518816', '品种', '0', '英短', '1017', '1017012', 0, '2022-01-19 16:41:55'),
|
||||
(1031, '16518816', '品种', '0', '美短', '1017', '1017013', 0, '2022-01-19 16:41:55'),
|
||||
(1032, '16518816', '品种', '0', '布偶', '1017', '1017014', 0, '2022-01-19 16:41:55'),
|
||||
(1033, '16518816', '品种', '0', '暹罗', '1017', '1017015', 0, '2022-01-19 16:41:55'),
|
||||
(1034, '16518816', '品种', '0', '缅因', '1017', '1017016', 0, '2022-01-19 16:41:55'),
|
||||
(1035, '16518816,555131355', '年龄', '1', '幼年', '1018', '1018001', 0, '2022-01-19 16:41:55'),
|
||||
(1036, '16518816,555131355', '年龄', '1', '成年', '1018', '1018002', 0, '2022-01-19 16:41:55'),
|
||||
(1037, '16518816', '年龄', '1', '老年', '1018', '1018003', 0, '2022-01-19 16:41:55'),
|
||||
(1038, '16518816', '年龄', '0', '4-12月龄', '1018', '1018004', 0, '2022-01-19 16:41:55'),
|
||||
(1039, '16518816', '年龄', '0', '1-7岁', '1018', '1018005', 0, '2022-01-19 16:41:55'),
|
||||
(1040, '16518816', '年龄', '0', '>7岁', '1018', '1018006', 0, '2022-01-19 16:41:55'),
|
||||
(1041, '16518816', '功能', '1', '被毛呵护', '1019', '1019001', 0, '2022-01-19 16:41:55'),
|
||||
(1042, '16518816', '功能', '1', '绝育呵护', '1019', '1019002', 0, '2022-01-19 16:41:55'),
|
||||
(1043, '16518816', '功能', '1', '皮肤呵护', '1019', '1019003', 0, '2022-01-19 16:41:55'),
|
||||
(1044, '16518816', '功能', '1', '体重呵护', '1019', '1019004', 0, '2022-01-19 16:41:55'),
|
||||
(1045, '16518816', '功能', '1', '消化呵护', '1019', '1019005', 0, '2022-01-19 16:41:55'),
|
||||
(1046, '16518816', '功能', '0', '绝育呵护', '1019', '1019006', 0, '2022-01-19 16:41:55'),
|
||||
(1047, '16518816', '功能', '0', '口腔护理', '1019', '1019007', 0, '2022-01-19 16:41:55'),
|
||||
(1048, '16518816', '功能', '0', '美毛呵护', '1019', '1019008', 0, '2022-01-19 16:41:55'),
|
||||
(1049, '16518816', '功能', '0', '去毛球', '1019', '1019009', 0, '2022-01-19 16:41:55'),
|
||||
(1050, '16518816', '功能', '0', '体重呵护', '1019', '1019010', 0, '2022-01-19 16:41:55'),
|
||||
(1059, '16518816', '年龄', '0', '<4月龄', '1018', '1018007', 0, '2022-01-19 16:41:55'),
|
||||
(1060, '16518816', '年龄', '1', '离乳期', '1018', '1018008', 0, '2022-01-19 16:41:55'),
|
||||
(1062, '16518816', '专区', '1', '体型犬粮', '1021', '1021001', 0, '2022-01-19 16:41:55'),
|
||||
(1063, '16518816', '专区', '1', '功能犬粮', '1021', '1021002', 0, '2022-01-19 16:41:55'),
|
||||
(1064, '16518816', '专区', '1', '品种犬粮', '1021', '1021003', 0, '2022-01-19 16:41:55'),
|
||||
(1065, '16518816', '专区', '1', '犬湿粮', '1021', '1021004', 0, '2022-01-19 16:41:55'),
|
||||
(1066, '16518816', '专区', '0', '功能猫粮', '1021', '1021005', 0, '2022-01-19 16:41:55'),
|
||||
(1067, '16518816', '专区', '0', '品种猫粮', '1021', '1021006', 0, '2022-01-19 16:41:55'),
|
||||
(1068, '16518816', '专区', '0', '营养猫粮', '1021', '1021007', 0, '2022-01-19 16:41:55'),
|
||||
(1069, '16518816', '功能', '0', '消化优选', '1019', '1019011', 0, '2022-01-19 16:41:55'),
|
||||
(1070, '16518816', '品种', '0', '波斯', '1017', '1017017', 0, '2022-01-19 16:41:55'),
|
||||
(1071, '16518816', '品种', '0', '孟加拉豹猫', '1017', '1017018', 0, '2022-01-19 16:41:55'),
|
||||
(1073, '16518816', '品种', '0', '斯芬克斯', '1017', '1017020', 0, '2022-01-19 16:41:55'),
|
||||
(1083, '16518816', '专区', '0', '猫湿粮', '1021', '1021111', 0, '2022-01-19 16:41:55'),
|
||||
(1084, '16518816', '品种', '1', '博美', '1017', '1017021', 0, '2022-01-19 16:41:55'),
|
||||
(1086, '16518816', '专区', '1', '优卡产品', '1021', '1021050', 0, '2022-01-19 16:41:55');
|
||||
--
|
Loading…
Reference in New Issue
Block a user