Merge branch 'sit-Carl' into sit-Leung

This commit is contained in:
Vion 2022-01-20 20:39:52 +08:00
commit 66c30b2dd3
25 changed files with 1958 additions and 1458 deletions

View File

@ -615,3 +615,16 @@ export const getOrderList = (user, status) => {
return fetch('/api/getOrderList', data) 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' )
}

View File

@ -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%;
}
}

View File

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

@ -81,6 +81,7 @@ export default {
}, },
pickValue(pickId,pickName){ pickValue(pickId,pickName){
let areaObj={id:pickId,name:pickName}; let areaObj={id:pickId,name:pickName};
console.log(pickId,pickName);
this.returnValueArr[this.curDisplayingColIndex]=areaObj; this.returnValueArr[this.curDisplayingColIndex]=areaObj;
this.validatePickedValues(); this.validatePickedValues();
@ -105,6 +106,9 @@ export default {
onChange(picker,values) { //values = [{id:this.columns[0].id, name:this.columns[0].name},{id:this.columns[1].id, name:this.columns[1].name},{id:this.columns[3].id, name:this.columns[3].name}]; onChange(picker,values) { //values = [{id:this.columns[0].id, name:this.columns[0].name},{id:this.columns[1].id, name:this.columns[1].name},{id:this.columns[3].id, name:this.columns[3].name}];
//Support single choice only , index = 0 province, index = 1 city, index = 2 area //Support single choice only , index = 0 province, index = 1 city, index = 2 area
let curSelection={'province':'','city':'','area':''}; let curSelection={'province':'','city':'','area':''};
// console.log(picker,values);
this.$emit('getmenu',values)
this.$emit("closeDialog");
if(!values) if(!values)
return; return;
let _self=this; let _self=this;

View File

@ -1,89 +1,83 @@
<template> <template>
<div> <div>
<div class="rc-header"> <div class="rc-header">
<div class="rc-main">
<Myheader></Myheader> <Myheader></Myheader>
<tabs></tabs>
<div class="rc-commodity">
<div class="rc-commondi">
<img src="../../assets/image/rc-select.png" alt="" />
<span>商品</span>
</div> </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> <ul>
<li>单价</li> <li>单价</li>
<li>数量</li> <li>数量</li>
<li>操作</li> <li>操作</li>
</ul> </ul>
</div> </div>
<div class="header_ph">
<div class="rc-select"> <el-row>
<label> <el-col :span="12">
<input type="checkbox" v-model="checkAll"> <div class="list-left">
全选 <label class="check-label">
<input type="checkbox" v-model="checkAll" />
</label> </label>
<span class="name">全选</span>
<div class="select-right">
<img src="../../assets/image/userupdate.png" alt="" />
<span @click="useredit">编辑</span>
</div> </div>
</div> </el-col>
<div> <el-col :span="12" class="tr">
<div v-for="(item, index) in goldmedal" <span @click="editList()"
:key="index" ><i class="el-icon-edit"></i>{{ editState }}</span
class="rc-userdemand" ></el-col
> >
<div class="rc-userdeman"> </el-row>
<label> </div>
<input type="checkbox" v-model="item.checked"> <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> </label>
<div class="product">
<!-- <img :src="item.image" /> --> <div class="product-img">
<!-- <img :src="checkone?require('../../assets/image/rc-unselect.png'):require('../../assets/image/rc-select.png')" @click="userclick(checkone,index)"/> --> <img :src="item.productImg" alt="" />
<img :src="item.productImg" alt="" class="re-message" />
</div> </div>
<div class="rc-userdem"> <div class="right">
<div class="rc-userdema"> <p class="product-title" v-text="item.productName"></p>
<span>{{ item.productName }}</span> <p class="specifications">规格{{ item.specifications }}</p>
<em>规格:{{ item.specifications }}</em>
</div> </div>
<div class="rc-userd"> </div>
<i>{{ item.productPrice }}</i> </div>
<ul>
<li class="product-price">{{ item.productPrice }}</li>
<li>
<div class="rc-jia"> <div class="rc-jia">
<img src="../../assets/image/userjian.png" alt="" @click="sub(item.buyCount,index)"/> <img
<strong> {{item.buyCount}} </strong> src="../../assets/image/userjian.png"
<img src="../../assets/image/userjia.png" alt="" @click="plus(item.buyCount,index)" /> 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> </div>
<em @click="userdele(item,index)">删除</em> </li>
</div> <li class="del"><em @click="userdele(item)">删除</em></li>
</div> </ul>
<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>
</div> </div>
</div> </div>
<div class="rc-footera"> <div class="rc-footera">
<div class="rc-foote"> <div class="rc-foote">
<div class="rc-shop"> <div class="rc-shop">
<label> <label>
<input type="checkbox" v-model="checkAll"> <input type="checkbox" v-model="checkAll" />
全选 全选
</label> </label>
</div> </div>
@ -97,9 +91,8 @@
<em>共选择{{ sumlength }}件商品</em> <em>共选择{{ sumlength }}件商品</em>
</div> </div>
<strong @click="usejiesuan(item,index)" >{{mustpay}}</strong> <strong @click="usejiesuan()">{{ mustpay }}</strong>
</div> </div>
</div> </div>
</div> </div>
<!-- <div class="rc-shop"> <!-- <div class="rc-shop">
@ -114,19 +107,15 @@
</div> </div>
</div> </div>
</div> </div>
</div>
</template> </template>
<script> <script>
import { List } from 'vant';
import Myheader from "~/components/header.vue"; import Myheader from "~/components/header.vue";
import tabs from "@/components/tabs.vue"; import tabs from "@/components/tabs.vue";
import instance from "@/config/request";
import { isexistCart, generateOrderWX, deleteCart } from "../../ajax/getData"; import { isexistCart, generateOrderWX, deleteCart } from "../../ajax/getData";
import accMul from "../../config/setDec.js"
export default { export default {
middleware: 'metaTitle', middleware: "metaTitle",
meta: {title: '购物车'}, meta: { title: "购物车" },
data() { data() {
return { return {
ordersum: 1, ordersum: 1,
@ -137,72 +126,67 @@ export default {
ys1: true, ys1: true,
ys2: true, ys2: true,
userdelete: "结算", userdelete: "结算",
orderprice:'¥199.00', orderprice: "¥199.00",
mustpay:'立即结算', mustpay: "立即结算",
totalMoney:'', editState: "编辑",
dellist: [],
totalMoney: "",
allChecked: false, allChecked: false,
userid: null, userid: null,
goldmedal: [ cartData: [
// { // {
// ordernumber: "1111111111111111111", // buyCount: 3,
// orderstype: 1, // id: 1,
// image:require('../../assets/image/rc-select.png'), // memberId: "1",
// sales_num:1, // productCode: "432434",
// usereat: "湿", // productImg: require("../../assets/image/rc-select.png"),
// ordernum: 0, // productName: "",
// num: "5kg", // productPrice: 399.0,
// specification: "1", // specifications: "5KG",
// buttontitle: "", // checked: false,
// checked:true,
// userprice: "167",
// catimage: require("../../assets/image/rc-win.png"),
// }, // },
// { // {
// ordernumber: "1111111111111111111", // buyCount: 1,
// sales_num:1, // id: 2,
// usereat: "4", // memberId: "2",
// image:require('../../assets/image/rc-select.png'), // 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, // checked: true,
// ordernum: 0,
// buttontitle: "",
// catimage: require("../../assets/image/usereat.png"),
// orderstype: 2,
// userprice: "167",
// }, // },
], ],
}; };
}, },
mounted() { mounted() {
console.log('---');
this.goldmedal.forEach(item=>{
item.checked=true;
})
},
mounted(){
this.carmessage(); this.carmessage();
}, },
components: { components: {
Myheader, Myheader,
tabs tabs,
}, },
methods: { methods: {
// //
async carmessage() { async carmessage() {
console.log(this.goldmedal);
let user = JSON.parse(localStorage.getItem("userInfo")); let user = JSON.parse(localStorage.getItem("userInfo"));
console.log(user);
this.userid = user.data.id; this.userid = user.data.id;
let data = await isexistCart(user.data.id); let data = await isexistCart(user.data.id);
this.goldmedal=data; this.cartData = data;
// this.goldmedal = data;
}, },
async userjie(list) { async userjie(list) {
let user = JSON.parse(localStorage.getItem("userInfo")); let user = JSON.parse(localStorage.getItem("userInfo"));
@ -211,39 +195,43 @@ export default {
let data = await generateOrderWX(list); let data = await generateOrderWX(list);
if (data) { if (data) {
this.$message({ this.$message({
type: 'warning', type: "warning",
message: data.msg message: data.msg,
}); });
console.log(data); console.log(data);
this.$router.push({ this.$router.push({
path: "/personal/settlement", path: "/personal/settlement",
query: { query: {
wxdata:data.data wxdata: data.data,
}, },
}); });
} }
console.log(data); console.log(data);
}, },
// //
async deletsmessage(productCode) { async deletsmessage(productCode) {
let user = JSON.parse(localStorage.getItem("userInfo")); let user = JSON.parse(localStorage.getItem("userInfo"));
console.log(user);
this.userid = user.data.id; this.userid = user.data.id;
let data = await deleteCart(user.data.id,productCode); let data = await deleteCart(this.userid, productCode);
if (data) { if (data) {
this.$message({ this.$message({
type: 'warning', type: "warning",
message: data.msg message: data.msg,
}); });
this.carmessage(); this.carmessage();
} }
}, },
editList() {
if (this.editState == "完成") {
this.mustpay = "立即结算";
this.editState = " 编辑";
} else {
this.mustpay = "删除";
this.editState = "完成";
}
},
// checkBox(){ // checkBox(){
// console.log(event.target.checked) // console.log(event.target.checked)
@ -253,107 +241,115 @@ export default {
// }); // });
// }, // },
// userdele(index){ userdele(item) {
let delform = [];
// this.goldmedal.splice(index,1); 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) { plus(num, index) {
console.log(index); this.cartData[index].buyCount =
this.goldmedal[index].buyCount = parseInt(this.goldmedal[index].buyCount) + 1; parseInt(this.cartData[index].buyCount) + 1;
}, },
// //
sub(num, index) { sub(num, index) {
if (parseInt(num) <= 1) { 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) { useredit(e) {
this.ys1 = !this.ys1 this.ys1 = !this.ys1;
if (this.ys1 == false) { if (this.ys1 == false) {
this.$nextTick(() => { this.$nextTick(() => {
this.userdelete='删除'; this.userdelete = "删除";
console.log(this.userdelete); console.log(this.userdelete);
});
})
} else if (this.ys1 == true) { } else if (this.ys1 == true) {
this.$nextTick(() => { this.$nextTick(() => {
this.userdelete='结算'; this.userdelete = "结算";
console.log(this.userdelete); console.log(this.userdelete);
});
})
} }
if (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 list = [];
let menulist=[]; list = this.cartData.filter((item) => item.checked);
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){
if (list.length == 0) { if (list.length == 0) {
this.$message({ this.$message({
type: 'warning', type: "warning",
message: '你还未选择商品' message: "你还未选择商品",
}); });
return; return;
} else { } else {
this.deletsmessage(procode); if (this.editState == "完成") {
} let delList = [];
list.forEach((item) => {
}else{ delList.push(item.productCode);
if(list.length==0){
this.$message({
type: 'warning',
message: '你还未选择商品'
}); });
return; this.userdele(delList);
} else { } else {
this.userjie(menulist) this.$router.push({
path: "/personal/settlement",
query: {
list: JSON.stringify(list),
},
// params: { test:'222'},
});
} }
} }
// list=[ // list=[
// { // {
// "productName":"", // "productName":"",
@ -378,10 +374,6 @@ plus(num,index){
// .then((res) => { // .then((res) => {
// console.log(res); // console.log(res);
// }); // });
}, },
// async userdelete(item) { // async userdelete(item) {
@ -394,242 +386,43 @@ plus(num,index){
checkAll: { checkAll: {
// , // ,
set(v) { set(v) {
this.goldmedal.forEach(item => { this.cartData.forEach((item) => {
item.checked = v item.checked = v;
}); });
}, },
// , // ,
get() { 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() { sumPrice() {
return this.goldmedal return this.cartData
.filter(item => item.checked) .filter((item) => item.checked)
.reduce((pre, cur) => { .reduce((pre, cur) => {
console.log(pre); console.log(pre);
return pre + cur.buyCount * cur.productPrice; return pre + cur.buyCount * cur.productPrice;
}, 0); }, 0);
}, },
sumlength() { sumlength() {
return this.goldmedal.filter(item => item.checked == true).length; return this.cartData.filter((item) => item.checked == true).length;
} },
}, },
}; };
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
// .rc-footer {
@media screen and(min-width: 320px) and(max-width:768px) { display: none;
.rc-header{
} }
.rc-footera { .rc-footera {
display: none; background: #f6f6f6;
}
.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;
border: 1px solid #d7d7d7; border: 1px solid #d7d7d7;
font-size: 12px;
border-radius: 3px;
}
.rc-jia{
display: flex;
}
}
}
}
}
}
}
// /* 768px1920 *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 { .rc-foote {
width: 92%;
margin: 0 auto; margin: 0 auto;
box-shadow: 0px -3px 6px rgba(0, 0, 0, 0.1); box-shadow: 0px -3px 6px rgba(0, 0, 0, 0.1);
height: 102px; height: 102px;
@ -639,6 +432,7 @@ plus(num,index){
.rc-shop { .rc-shop {
display: flex; display: flex;
align-items: center; align-items: center;
margin-left: 24px;
img { img {
width: 24px; width: 24px;
height: 24px; height: 24px;
@ -680,7 +474,7 @@ display: block;
} }
span { span {
font-size: 20px; font-size: 20px;
color: #E1001A; color: #e1001a;
} }
em { em {
font-style: normal; font-style: normal;
@ -705,42 +499,92 @@ height: 48px;
} }
} }
} }
.rc-header {
width: 100%;
.rc-main { .rc-main {
width: 92%; width: 92%;
margin: 0 auto; margin: 0 auto;
.rc-commodity { padding-top: 60px;
max-width: 1400px;
.cart-list {
width: 100%; width: 100%;
border: 1px solid #d7d7d7; border: 1px solid #d7d7d7;
border-radius: 3px 3px 0px 0px; font-size: 16px;
background: #f6f6f6;
font-size: 18px;
color: #666666; color: #666666;
p {
margin: 0;
}
.header {
background: #f6f6f6;
border-radius: 3px 3px 0px 0px;
border-bottom: 1px solid #d7d7d7;
height: 64px; height: 64px;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
.rc-commondi { }
display: flex; .header_ph {
align-items: center; display: none;
img { }
.check-label {
display: block; display: block;
margin-left: 24px; margin-left: 24px;
} }
span { .name {
display: block; display: block;
margin-left: 56px; margin-left: 56px;
} }
.list-left {
display: flex;
align-items: center;
} }
ul { ul {
display: flex; display: flex;
width: 80%; width: 70%;
justify-content: space-around; justify-content: space-around;
align-items: center; 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 { img {
width: 24px; width: 100%;
height: 24px; 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 { .rc-select {
@ -828,7 +672,6 @@ height: 48px;
flex-direction: column; flex-direction: column;
justify-content: center; justify-content: center;
width: 10%; width: 10%;
} }
.rc-userd { .rc-userd {
display: flex; display: flex;
@ -860,10 +703,10 @@ height: 48px;
font-style: normal; font-style: normal;
font-size: 20px; font-size: 20px;
cursor: pointer; cursor: pointer;
border-bottom: 1px solid #E2001A; border-bottom: 1px solid #e2001a;
display: block; display: block;
margin-left: 40px; margin-left: 40px;
color: #E1001A; color: #e1001a;
} }
strong { strong {
font-style: normal; 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> </style>

View File

@ -342,6 +342,7 @@ obligation(item,index){
}else{ }else{
if(item.title=='收货地址'){ if(item.title=='收货地址'){
this.$router.push({ this.$router.push({
path: `/useraddress/openaddress/` path: `/useraddress/openaddress/`
}) })

View File

@ -0,0 +1,414 @@
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;
}
.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;
}
}
}
}

View File

@ -1,59 +1,62 @@
<template> <template>
<div> <div class="settlement">
<Myheader></Myheader> <Myheader></Myheader>
<tabs></tabs>
<div class="online"></div>
<div class="rc-main" v-for="(item,index) in goldmedal" :key="index" > <div class="rc-main">
<div class="rc-border"></div> <tabs></tabs>
<div class="address-list">
<div <div
class="mypersonal" class="mypersonal"
v-for="(dataaddress, index) in useraddress" v-for="(item, index) in useraddress"
:key="index" :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"> <div class="my-delivery">
<span>{{ dataaddress.state }}</span> <span>{{ item.recipient }}</span>
<i>{{ dataaddress.tel }}</i> <i>{{ item.recipientPhone }}</i>
</div> </div>
<div class="per-delivery"> <div class="per-delivery">
<span>{{ dataaddress.address }}</span> <span>{{ item.address }}</span>
</div> </div>
</div> </div>
<div class="online" style="height:3px;width:100%;background:#DDDDDD;"></div> <div class="mypersonal">
<div> <div
<div class="rc-center"> 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-usermain">
<div class="rc-image"> <div class="rc-image">
<img :src="item.catimage" alt="" /> <img :src="item.productImg" alt="" />
</div> </div>
<div class="rc-right"> <div class="rc-right">
<div class="rc-usercenter"> <div class="rc-usercenter">
<em>{{ item.usereat }}</em> <h3>{{ item.productName }}</h3>
<div class="rc-userright"> <p>规格:{{ item.specifications }}</p>
<span>规格:{{ item.num }}</span>
</div>
</div> </div>
<div class="rc-userbottom"> <div class="rc-userbottom">
<span>数量:{{ item.specification }}</span> <p>{{ item.productPrice }}</p>
<i>{{ item.userprice }}</i> <p>X{{ item.buyCount }}</p>
<div class="rc-bottom"> <p class="price">{{ item.productPrice }}</p>
<span>联系客服申请售后</span>
</div> </div>
</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>
<div class="rc-contline"></div>
</div> <div class="rc-main">
<div class="rc-merchandise"> <div class="rc-merchandise">
<ul> <ul>
<li> <li>
@ -66,103 +69,77 @@
</li> </li>
<li> <li>
<span>商品总价:</span> <span>商品总价:</span>
<i>{{ shopprice.promotion }}</i> <i class="red">{{ sumPrice }}</i>
</li> </li>
<li> <li>
<span>配送费用:</span> <span>配送费用:</span>
<i>{{ shopprice.payment }}</i> <i class="red">{{ shopprice.payment }}</i>
</li> </li>
</ul> </ul>
</div> </div>
</div>
<div class="rc-contline"></div>
<div class="rc-main">
<div class="rc-foot"> <div class="rc-foot">
<div class="rc-foo"> <div class="rc-foo">
<div style="padding-top:55px"> <div>
<i>合计金额:</i> <i>合计金额:</i>
<em>167.00</em> <em>{{ sumPrice }}</em>
</div> </div>
<div style="padding-bottom:40px"> <div style="font-weight: bold">
<span>再次购买</span> <span @click="jiesuan()">提交订单</span>
</div> </div>
</div> </div>
</div>
</div> </div>
</div> </div>
<el-dialog :visible.sync="dialogAdd" class="diallog_width" width="'100%">
<div class="rc-button"> <div class="tc dl_cont" v-if="dialogAdd">
<div class="rc-left"> <!-- <myAddress
<span>总计</span> @isClose="dialogCtrl"
<em>167.00</em> :editAddressData="editAddressData"
</div> ></myAddress> -->
<strong ref="rccolor" @click="jiesuan">结算</strong>
</div> </div>
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
import Myheader from "~/components/header.vue"; 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 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 { export default {
middleware: 'metaTitle', middleware: "metaTitle",
meta: {title: '订单结算'}, meta: { title: "订单结算" },
data() { data() {
return { return {
goldmedal: [], goldmedal: [],
addressstype: null, addressstype: null,
orderstatus: '', orderstatus: "",
userisdelivery:'待收货', userisdelivery: "待收货",
userdelivery: "派送中", userdelivery: "派送中",
isshow: true, isshow: true,
leftico: require("../../assets/image/rc-left.png"), leftico: require("../../assets/image/rc-left.png"),
orderNumber:'', orderNumber: "",
dialogAdd: false,
// delivery: [ editAddressData: {},
// { curAddress: {},
// state: "", saveType: "",
// time: "2021-11-21",
// address: "广15124617917",
// },
// ],
useraddress: [ useraddress: [
{ // {
state: "李某某", // state: "",
tel: "15124117917", // tel: "15124117917",
address: "广东省 广州市 天河区 天河客运站118号", // address: "广 广 118",
}, // isdefault: true,
{ // },
state: "李某某", // {
tel: "15124117917", // state: "",
address: "广东省 广州市 天河区 天河客运站118号", // tel: "15124117917",
}, // address: "广 广 118",
{ // isdefault: false,
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"),
},
], ],
shopprice: { shopprice: {
price: "标准快递", price: "标准快递",
@ -170,26 +147,149 @@ export default {
promotion: "¥167.00", promotion: "¥167.00",
payment: "¥0.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: { methods: {
jiesuan(){ async getAddressList() {
// let userdata=this.$route.query.wxdata 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({ this.$router.push({
path: "/personal/userpay", path: "/personal/userpay",
query: { query: {
wxdata:userdata userPayData:JSON.stringify(userPayData),
}, },
}); });
}
}, },
async canceldanhao(orderNumber) { async canceldanhao(orderNumber) {
let data = await userin(orderNumber); let data = await userin(orderNumber);
@ -199,20 +299,25 @@ jiesuan(){
}, },
}, },
mounted() { mounted() {
this.addressstype = this.$route.query.stype; this.goldmedal = JSON.parse(this.$route.query.list);
this.orderNumber=this.$route.query.orderNumber; console.log(this.$route);
this.canceldanhao(this.orderNumber) this.getAddressList();
console.log(this.$refs.rccolor) // this.addressstype = this.$route.query.stype;
this.$refs.rccolor.style.background='gray'; // this.orderNumber = this.$route.query.orderNumber;
// this.canceldanhao(this.orderNumber);
// console.log(this.$refs.rccolor);
// this.$refs.rccolor.style.background = "gray";
}, },
components: { components: {
Myheader, Myheader,
tabs tabs,
// myAddress,
}, },
}; };
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
@import "./settlement.less";
@import url("../../assets/css/global.less"); @import url("../../assets/css/global.less");
@import url("../../assets/css/settlement.less"); // @import url("../../assets/css/settlement.less");
</style> </style>

View File

@ -1,578 +1,303 @@
<template> <template>
<div> <div class="page_modules">
<Myheader></Myheader> <Myheader></Myheader>
<div class="rc-main"> <div class="cont_modules">
<div class="online" style="height:3px;width:93%;margin:0 auto;background:#DDDDDD;margin-top:0.23rem"></div> <tabs></tabs>
<div class="rc-hearder"> <el-row class="order_info">
<div class="rc-userpay"> <el-col :span="6" class="ph_hidden">
<div class="paysucess"> <ul class="li_inline">
<span>订单提交成功等待付款</span> <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">&nbsp;</el-col>
<el-col :span="6" class="ready_right">
<div class="inline_right">
<p>付款金额:</p>
<p class="price">{{ userPayData.userprice }}</p>
</div> </div>
<div class="rc-all"> <div class="inline_right">
<div class="rc-payprice"> <p>收货信息:</p>
<span>付款金额:</span> <p>{{ userPayData.userinformation }}</p>
<i>{{ userprice }}</i>
</div> </div>
<div class="rc-receiving"> </el-col>
<span>收货信息:</span> </el-row>
<i>{{ userinformation }}</i>
</div> </div>
<div class="rc_contline"></div>
<div class="cont_modules">
<div class="pay_title color_red">请选择支付方式</div>
</div> </div>
<div class="online" style="height:3px;width:100%;background:#DDDDDD;"></div> <div class="rc_contline"></div>
<div class="rc-usermaina"> <div class="cont_modules">
<div class="rc-title" id="qrcode" ref="qrcode" > <div class="pay_list">
</div> <ul>
</div> <li
class="pay_item"
</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"
v-for="(item, index) in userpaystype" v-for="(item, index) in userpaystype"
:key="index" :key="index"
@click="selectGoods(item, index)" @click="selectGoods(item, index)"
:class="activeIndex == index ? 'active' : 'unactive'" :class="activeIndex == index ? 'active' : ''"
> >
<div class="rc-payype">
<img :src="item.payimage" alt="" /> <img :src="item.payimage" alt="" />
<span>{{ item.price }}</span> <span>{{ item.paytype }}支付</span>
</div> </li>
<div class="user-righticon"> </ul>
<img src="../../assets/image/rc-left.png" alt="" />
</div>
</div>
</div> </div>
</div> </div>
<div class="paycord">
<div class="paycord" @click="usershow()" id="qrcode" ref="qrcode"> <div id="qrcode" ref="qrcode" class="qrcode"></div>
<!-- <img src="../../assets/image/rc-discount.png" alt="" /> <span>{{ paytype }}扫一扫立即支付</span>
<span>微信扫一扫立即支付</span> -->
</div>
</div> </div>
<el-dialog :visible.sync="dialogSuccess" @close="closeDialogSuccess">
<div class="tc dl_cont">
<el-dialog <div class="dl_img">
:visible.sync="dialogInfo1" <img src="../../assets/image/usersucess.png" alt="" />
hegight="700px"
@close='closeDialog'
>
<div class="rc-header">
<div class="rc-titled" >
<img src="../../assets/image/usersucess.png" alt="">
</div> </div>
<div class="rc-logmain"> <h3 class="title">支付成功</h3>
<h3>支付成功</h3> <p>您的商品我们正在抓紧打包请耐心等候</p>
<span>{{usermessage}}</span> <div class="line_dashed"></div>
</div>
<div class="userer"> <div class="userer">
<img
<img src="../../assets/image/rc-discount.png" alt=""> width="210"
<span>微信扫一扫识别二维码</span> height="210"
<i>加入社群0元试用商品随单发放</i> src="../../assets/image/rc-discount.png"
alt=""
/>
<p>微信扫一扫识别二维码</p>
<p class="tips">加入社群0元试用商品随单发放</p>
</div> </div>
</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> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
import Myheader from "~/components/header.vue"; import Myheader from "~/components/header.vue";
import QRCode from 'qrcodejs2' import tabs from "@/components/tabs.vue";
import { generateOrderWX } from "../../ajax/getData"; // import QRCode from "qrcodejs2";
import { generateOrderAlipay, updateOrderWX } from "../../ajax/getData";
export default { export default {
data() { data() {
return { return {
userdata:null,
activeIndex: 0, activeIndex: 0,
usermessage:'您的商品我们正在抓紧打包,请耐心等候!', isSucess: false,
userprice: "¥167.00", paytype: "微信",
userinformation: "李某某 151****7917",
userpaystype: [ userpaystype: [
{ {
price: "支付宝支付", paytype: "微信",
payimage: require("../../assets/image/rc-cat.png"), payimage: require("../../assets/pay/wx.png"),
catimage: require("../../assets/image/rc-left.png"),
}, },
{ {
price: "微信支付", paytype: "支付宝",
payimage: require("../../assets/image/rc-cat.png"), payimage: require("../../assets/pay/zfb.png"),
catimage: require("../../assets/image/rc-left.png"),
}, },
], ],
dialogInfo1:false, dialogSuccess: true,
dialogFail: false,
userPayData: {},
}; };
}, },
computed: {},
mounted() { mounted() {
this.userdata=this.$route.query.wxdata; this.userPayData = JSON.parse(this.$route.query.userPayData);
this.userpay(this.userdata); // this.qrcode(this.userPayData.wxPay);
console.log(this.userdata);
this.$nextTick(() => {
this.userpay();
})
}, },
methods: { methods: {
closeDialogSuccess() {
closeDialog(){
this.qrcode = null; this.qrcode = null;
console.log('关闭的') // this.$router.push({
// path: "/index",
// });
}, },
closeDialogFail() {
async userpay(userdata) { this.qrcode = null;
// this.$router.push({
console.log("-----"); // path: "/personal/useraddress",
let data = await generateOrderWX(); // });
console.log();
this.qrcode(userdata);
}, },
qrcode(e) { qrcode(e) {
console.log(e); let qrcode = new QRCode("qrcode", {
let qrcode = new QRCode('qrcode',{ width: 260, //
width: 150, // height: 260, //
height: 150, // text: e, //
text: e// });
})
}, },
selectGoods(item,index){ async selectGoods(item, index) {
let _that=this this.activeIndex = index;
_that.dialogInfo1=true; this.paytype = item.paytype;
_that.activeIndex=index; if (index == 1) {
if(item.price=='微信支付'){ //
// this.userpay(); let res = await generateOrderAlipay(this.userPayData.orderId);
if (res.success) {
this.qrcode(res.data);
}
} }
}, },
usershow(){ //
console.log('这是支付') async updateOrderWX() {
this.dialogInfo1=true; let res = await updateOrderWX();
if (res.success) {
this.dialogSuccess = true;
clearInterval(this.time);
} else {
this.dialogFail = true;
clearInterval(this.time);
} }
}, },
},
components: { components: {
Myheader, Myheader,
tabs,
}, },
}; };
</script> </script>
<style lang="less" scoped > <style lang="less" scoped >
@media screen and (max-width: 768px) { .sucess_img {
.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{
width: 96px; width: 96px;
height: 96px; height: 96px;
margin-left: 40px; margin-right: 10px;
} }
.order_info {
padding: 10px 0;
} }
.rc-titled{ .info {
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 {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
span {
font-size: 14px;
color: #333333;
} }
i { .ready {
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{
font-size: 20px; font-size: 20px;
display: block; color: #e2001a;
width: 61%;
color: #E2001A;
} }
.ready_right {
line-height: 200%;
padding-top: 8px;
} }
.rc-all{ .price {
display: flex; font-size: 20px;
flex-direction: column; color: #e2001a;
justify-content: center;
} }
.rc-payprice { .pay_title {
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 {
font-size: 26px; font-size: 26px;
padding: 26px 0;
color: #E2001A; border-bottom: 1px solid #d7d7d7;
}
}
.payAlipay {
margin-left: 20px;
.user-righticon{
display: none;
img{
width: 8px;
height: 16px;
}
} }
.pay_list {
padding: 20px 0;
.pay_item {
float: left;
margin-right: 20px;
display: flex; display: flex;
justify-content: space-between;
height: 56px;
.rc-payype {
display: flex;
align-items: center;
font-size: 16px;
color: #E2001A;
justify-content: center; justify-content: center;
width: 100%; border: 1px solid #333333;
padding: 5px 20px;
cursor: pointer;
&.active {
border: 1px solid #e2001a;
color: #e2001a;
}
img { img {
width: 32px; margin-right: 5px;
height: 32px; width: 24px;
border-radius: 50%; height: 24px;
}
span {
margin-left: 16px;
} }
} }
&::after {
content: "";
display: block;
clear: both;
} }
} }
.paycord { .paycord {
width: 100%; padding: 10px;
display: flex; text-align: center;
justify-content: center; .qrcode {
align-items: center; margin: 0 auto 10px;
flex-direction: column;
img{
width: 260px; width: 260px;
height: 260px; height: 260px;
display: block;
} }
span{ }
font-size: 20px; .dl_width {
display: block; width: 440px;
color: #333333; }
.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> </style>

View File

@ -26,6 +26,8 @@
</textarea> </textarea>
</div> </div>
<addressInput @getmenu="onGetMenu" @closeDialog = "handleClose1" :dialogInfo1="dialogInfo1"></addressInput>
</div> </div>
<div class="rc-button"> <div class="rc-button">
<span @click="openclose()">取消</span> <span @click="openclose()">取消</span>
@ -39,6 +41,8 @@
</div> --> </div> -->
<MyFooter></MyFooter> <MyFooter></MyFooter>
</div> </div>
</template> </template>
@ -48,6 +52,7 @@
import Myheader from '~/components/header.vue' import Myheader from '~/components/header.vue'
import addressInput from '~/components/addressInput.vue' import addressInput from '~/components/addressInput.vue'
import MyFooter from '~/components/rc-footer.vue' import MyFooter from '~/components/rc-footer.vue'
import addressInput from '~/components/addressInput.vue'
export default { export default {
data() { data() {
return { return {
@ -55,6 +60,7 @@ export default {
checked: true, checked: true,
userid: null, userid: null,
usermessage:null, usermessage:null,
dialogInfo1:false,
list: [ list: [
{ {
id: 1, id: 1,
@ -79,6 +85,12 @@ export default {
}; };
}, },
methods: { methods: {
onGetMenu(values){
console.log(values,+'111111');
},
handleClose1(){
this.dialogInfo1 = false
},
onEdit(item, index) { onEdit(item, index) {
// let userid = item.id; // let userid = item.id;
console.log(item); console.log(item);

View File

@ -19,7 +19,7 @@
</div> </div>
<div class="rc-footer"> <div class="rc-footer">
<div class="rc-foot"> <div class="rc-foot">
<img src="../../assets/image/userselect.png" alt=""> <img :src="item.isDefault?require('../../assets/image/userred.png'):require('../../assets/image/userselect.png')" @click="changeadddress(item,index)"/>
<span>设置为默认收货地址</span> <span>设置为默认收货地址</span>
</div> </div>
@ -42,11 +42,9 @@
</template> </template>
<script> <script>
import { areaList } from "@vant/area-data";
import { selectaddress } from "../../ajax/getData"; import Myheader from '~/components/header.vue'
import { editdelete } from "../../ajax/getData"; import MyFooter from '~/components/rc-footer.vue'
import Myheader from "~/components/header.vue";
import { Toast } from "vant";
export default { export default {
data() { data() {
return { return {
@ -61,24 +59,29 @@ export default {
tel: "13000000000", tel: "13000000000",
address: "浙江省杭州市西湖区文三路 138 号", address: "浙江省杭州市西湖区文三路 138 号",
isDefault: true, isDefault: true,
}, },
{ {
id: 2, id: 2,
name: "李四", name: "李四",
tel: "1310000000", tel: "1310000000",
isDefault: false,
address: "浙江省杭州市拱墅区莫干山路 50 号", address: "浙江省杭州市拱墅区莫干山路 50 号",
}, },
{ {
id: 3, id: 3,
name: "李四", name: "李四",
tel: "1310000000", tel: "1310000000",
isDefault: false,
address: "浙江省杭州市拱墅区莫干山路 50 号", address: "浙江省杭州市拱墅区莫干山路 50 号",
}, },
], ],
areaList,
}; };
}, },
methods: { methods: {
changeadddress(item,index){
console.log(item)
},
onEdit(item, index) { onEdit(item, index) {
// let userid = item.id; // let userid = item.id;
console.log(item); console.log(item);

View File

@ -72,8 +72,8 @@ public class SmartAuthenticationInterceptor extends HandlerInterceptorAdapter {
} }
Boolean noNeedLogin = request.getServletPath().contains("royalcanin"); Boolean noNeedLogin = request.getServletPath().contains("royalcanin");
Boolean noNeedLoginToo = request.getContextPath().contains("royalcanin"); Boolean noNeedLoginToo = request.getContextPath().contains("royalcanin");
System.out.println("request.getContextPath() : " + request.getRequestURI()); // System.out.println("request.getContextPath() : " + request.getRequestURI());
System.out.println("request.getRequestURI() : " + request.getRequestURI()); // System.out.println("request.getRequestURI() : " + request.getRequestURI());
if (noNeedLogin||noNeedLoginToo) { if (noNeedLogin||noNeedLoginToo) {
return true; return true;
} }

View File

@ -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.model.ProductQueryEntity;
import net.lab1024.smartadmin.module.system.royalcanin.good.service.CartService; 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.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 net.lab1024.smartadmin.util.SmartJWTUtil;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
@ -25,7 +28,9 @@ import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map;
@Api(tags = {SwaggerTagConst.Admin.MANAGER_MALL_API}) @Api(tags = {SwaggerTagConst.Admin.MANAGER_MALL_API})
@OperateLog @OperateLog
@ -40,6 +45,9 @@ public class GoodController {
@Autowired @Autowired
private CartService cartService; private CartService cartService;
@Autowired
private ProductSearchTagService productSearchTagService;
@Autowired @Autowired
private GoodService goodService; private GoodService goodService;
@ -58,6 +66,60 @@ public class GoodController {
@ApiOperation(value = "查询标品信息", notes = "查询标品信息") @ApiOperation(value = "查询标品信息", notes = "查询标品信息")
@PostMapping("royalcanin/product/query") @PostMapping("royalcanin/product/query")
public String transferBrand(ProductQueryEntity productQueryEntity) throws Exception { 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(); long startTime = System.currentTimeMillis();
String result = goodService.brandQuery(productQueryEntity); String result = goodService.brandQuery(productQueryEntity);
long acceptTime = System.currentTimeMillis() ; long acceptTime = System.currentTimeMillis() ;

View File

@ -10,18 +10,37 @@ import lombok.NoArgsConstructor;
public class ProductQueryEntity { public class ProductQueryEntity {
private String channelId; private String channelId;
private String secret; private String secret;
private String page; private String page;
private String rows; private String rows;
private String productCode; private String productCode;
private String name; private String name;
private String brandCode; private String brandCode;
private String brandName; private String brandName;
private String petType; private String petType;
private String categoryName; private String categoryName;
private String tagUsedAge; private String tagUsedAge;
private String tagFunction; private String tagFunction;
private String tagBreed; private String tagBreed;
private String tagStatus;
private String tags;
private String isSales; private String isSales;
private String count;
} }

View File

@ -40,6 +40,11 @@ public class GoodService {
public String brandQuery(ProductQueryEntity productQueryEntity) throws Exception { public String brandQuery(ProductQueryEntity productQueryEntity) throws Exception {
Map<String, String> paramMap = MapRemoveNullUtil.setConditionMap(productQueryEntity); 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); MapRemoveNullUtil.removeNullEntry(paramMap);
paramMap.put("secret","H5@2021"); paramMap.put("secret","H5@2021");
paramMap.put("channelId","15"); paramMap.put("channelId","15");

View File

@ -62,6 +62,6 @@ public class MemberAddressUpdateEntity {
/** /**
* 是否默认地址 * 是否默认地址
*/ */
private boolean isDefault; private String isDefault;
} }

View File

@ -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);
}

View File

@ -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;
}

View File

@ -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);
}
}

View File

@ -21,4 +21,5 @@
where order_no = #{out_trade_no} where order_no = #{out_trade_no}
</update> </update>
</mapper> </mapper>

View File

@ -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>

View File

@ -1707,4 +1707,68 @@ CREATE TABLE IF NOT EXISTS `t_royalcanin_notify_operate_log` (
PRIMARY KEY (`id`) PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; ) 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, '16518816555131355', '年龄', '1', '幼年', '1018', '1018001', 0, '2022-01-19 16:41:55'),
(1036, '16518816555131355', '年龄', '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');
-- --