更改bug,以及部分界面优化

This commit is contained in:
jia 2023-08-29 15:31:39 +08:00
parent 0842b4c4fb
commit 4f4d01f61c
19 changed files with 1131 additions and 1661 deletions

View File

@ -1,33 +1,16 @@
<template> <template>
<view :style="viewColor"> <view :style="viewColor">
<view class="address-window" :class="address.address==true?'on':''"> <view class="address-window" :class="address.address==true?'on':''">
<view class='title'>收货地址 <view class='title'>选择地址<text class='iconfont icon-guanbi' @tap='close'></text></view>
<!-- <text class='iconfont icon-guanbi' @tap='close'></text> -->
<view class="top_img">
<image src="@/static/images/close.png" mode="aspectFill" @tap='close'></image>
</view>
</view>
<scroll-view scroll-y="true" class='list'> <scroll-view scroll-y="true" class='list'>
<view class='acea-row row-between-wrapper conent' :class='active==index?"t-color":""' <view class='item acea-row row-between-wrapper' :class='active==index?"t-color":""' v-for="(item,index) in addressList"
v-for="(item,index) in addressList" @tap='tapAddress(index,item.address_id)' :key='index'> @tap='tapAddress(index,item.address_id)' :key='index'>
<text class='iconfont icon-ditu' :class='active==index?"t-color":""'></text>
<view class='address'> <view class='address'>
<view class='name' >{{item.real_name}}<text <view class='name' :class='active==index?"t-color":""'>{{item.real_name}}<text class='phone'>{{item.phone}}</text></view>
class='phone'>{{item.phone}}</text></view> <view class='line1'>{{item.province}}{{item.city}}{{item.district}}{{item.street || ''}}{{item.brigade}}{{item.detail}}</view>
<view class='line1'>
{{item.province}}{{item.city}}{{item.district}}{{item.street || ''}}{{item.brigade}}{{item.detail}}
</view>
</view>
<!-- <text class='iconfont icon-complete' :class='active==index?"t-color":""'></text> -->
<view class="address_img" v-if="active==index">
<image src="@/static/images/isshow.png" mode="aspectFill"></image>
</view>
<view class="address_img" v-if="active!=index">
<image src="@/static/images/show.png" mode="aspectFill"></image>
</view> </view>
<text class='iconfont icon-complete' :class='active==index?"t-color":""'></text>
</view> </view>
</scroll-view> </scroll-view>
<!-- 无地址 --> <!-- 无地址 -->
@ -35,7 +18,7 @@
<image src='../../static/images/noAddress.png'></image> <image src='../../static/images/noAddress.png'></image>
<view>暂无地址</view> <view>暂无地址</view>
</view> </view>
<view class='addressBnt' @tap='goAddressPages'>地址</view> <view class='addressBnt' @tap='goAddressPages'>添加新地址</view>
</view> </view>
<view class='mask' catchtouchmove="true" :hidden='address.address==false' @tap='close'></view> <view class='mask' catchtouchmove="true" :hidden='address.address==false' @tap='close'></view>
</view> </view>
@ -51,12 +34,8 @@
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
// | Author: CRMEB Team <admin@crmeb.com> // | Author: CRMEB Team <admin@crmeb.com>
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
import { import { getAddressList } from '@/api/user.js';
getAddressList import { mapGetters } from "vuex";
} from '@/api/user.js';
import {
mapGetters
} from "vuex";
export default { export default {
props: { props: {
pagesUrl: { pagesUrl: {
@ -133,11 +112,9 @@
transform: translate3d(0, 100%, 0); transform: translate3d(0, 100%, 0);
transition: all .3s cubic-bezier(.25, .5, .5, .9); transition: all .3s cubic-bezier(.25, .5, .5, .9);
} }
.address-window.on { .address-window.on {
transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0);
} }
.address-window .title { .address-window .title {
font-size: 32rpx; font-size: 32rpx;
font-weight: bold; font-weight: bold;
@ -145,32 +122,16 @@
height: 123rpx; height: 123rpx;
line-height: 123rpx; line-height: 123rpx;
position: relative; position: relative;
.top_img {
position: absolute;
right: 33rpx;
top: 20rpx;
width: 58rpx;
height: 58rpx;
image {
width: 58rpx;
height: 58rpx;
}
}
} }
.address-window .title .iconfont { .address-window .title .iconfont {
position: absolute; position: absolute;
right: 30rpx; right: 30rpx;
color: #8a8a8a; color: #8a8a8a;
font-size: 35rpx; font-size: 35rpx;
} }
.address-window .list{
.address-window .list {
max-height: 650rpx; max-height: 650rpx;
} }
.address-window .list .item { .address-window .list .item {
margin-left: 30rpx; margin-left: 30rpx;
padding-right: 30rpx; padding-right: 30rpx;
@ -179,55 +140,29 @@
font-size: 25rpx; font-size: 25rpx;
color: #333; color: #333;
} }
.conent{ .address-window .list .item .iconfont {
width: 694rpx; font-size: 37rpx;
height: 210rpx; color: #2c2c2c;
background: #FFFFFF;
margin: 0rpx auto;
margin-top: 32rpx;
padding: 28rpx 28rpx;
box-shadow: 0px 4rpx 14rpx 2rpx rgba(222,233,254,1);
margin-bottom: 30rpx;
} }
.address-window .list .item .iconfont.icon-complete {
font-size: 30rpx;
color: #fff;
.address_img{
width: 52rpx;
height: 52rpx;
image{
width: 100%;
height: 100%;
}
} }
.address-window .list .item .address {
width: 560rpx;
.conent .name { }
.address-window .list .item .address .name {
font-size: 28rpx;
font-weight: bold;
color: #282828;
margin-bottom: 4rpx;
}
.address-window .list .item .address .name .phone {
margin-left: 18rpx;
}
.address-window .addressBnt {
font-size: 30rpx; font-size: 30rpx;
font-weight: bold; font-weight: bold;
color: #333333;
margin-bottom: 10rpx;
}
.conent .name .phone {
margin-left: 18rpx;
font-size: 26rpx;
font-family: PingFang SC-Regular, PingFang SC;
font-weight: 400;
color: #333333;
}
.line1{
font-size: 23rpx;
font-family: PingFang SC-Regular, PingFang SC;
font-weight: 400;
color: #737373;
}
.address-window .addressBnt {
font-size: 33rpx;
font-weight: 500;
color: #fff; color: #fff;
width: 690rpx; width: 690rpx;
height: 86rpx; height: 86rpx;
@ -235,24 +170,19 @@
text-align: center; text-align: center;
line-height: 86rpx; line-height: 86rpx;
margin: 85rpx auto; margin: 85rpx auto;
background: linear-gradient(270deg, #6DD5FA 0%, #3274F9 100%); background-color: var(--view-theme);
} }
.address-window .pictrue { .address-window .pictrue {
text-align: center; text-align: center;
} }
.address-window .pictrue image,.address-window .pictrue uni-image {
.address-window .pictrue image,
.address-window .pictrue uni-image {
width: 414rpx; width: 414rpx;
height: 305rpx; height: 305rpx;
} }
.address-window .pictrue view{
.address-window .pictrue view {
color: #999; color: #999;
} }
.t-color { .t-color {
color: var(--view-theme) !important; color: var(--view-theme)!important;
} }
</style> </style>

View File

@ -1,556 +1,338 @@
<template> <template>
<uni-popup type="bottom" ref="areaChoose"> <view :style="viewColor">
<view class="mian getHeight" id="main"> <view class="address-window" :class="display==true?'on':''">
<view class="top getHeight" id="top"> <view class='title'>请选择所在地区<text class='iconfont icon-guanbi' @tap='close'></text></view>
<text>请选择所在地区</text> <view class="address-count">
<!-- <text class="iconfont close" @click.stop="close">&#xe7fa;</text> --> <view class="address-selected">
<view class="top_img"> <view v-for="(item,index) in selectedArr" :key="index" class="selected-list" :class="{active:index === selectedIndex}" @click="change(item.parent_id, index)">
<image src="@/static/images/close.png" mode="aspectFill" @click.stop="close"></image> {{item.name}}
</view> <text class="iconfont icon-xiangyou"></text>
</view> </view>
<scroll-view scroll-x="true" @scroll="scroll" :show-scrollbar="false" class="nav getHeight" id="nav" <view class="selected-list" :class="{active:-1 === selectedIndex}" v-if="showMore" @click="change(-1, -1)">
:scroll-into-view="scrollIntoView"> <text class="iconfont icon-xiangyou"></text>
<view @click="areaSelect(index)" :class="areaIndex == index ? 'nav-item nav-item-a' : 'nav-item'" 请选择
v-for="(item, index) in list" :key="index" :id="'area' + index"> </view>
<text>{{ item }}</text>
</view>
<view class="bottomBorder" :style="'left:' + navBottomLeft + 'px'"></view>
</scroll-view>
<swiper class="swiper getHeight" :disable-touch="true" :current="current"
:style="'height:' + swiperH + 'px'">
<swiper-item v-for="(type, idx) in [1,2,3,4,5]" :key="idx" :id="'sw'+type">
<scroll-view scroll-y="true" scroll-with-animation scroll-anchoring :scroll-into-view='id2'
@scroll="scroll" :show-scrollbar="false" class="swiper-list">
<view class="area-item" v-for="(item, index) in getList" :key="index" :id="'area' + index">
<text :class="id == item.pinyin+type ? 'area-item-id area-item-id-sticky': 'area-item-id'"
:id='item.pinyin+type'>{{ item.pinyin }}</text>
<view class="swiper-list2">
<view class="" v-if='typeof(item.data)=="object"'>
<text
:class="proCode.code == item.data[0].code ? 'area-item-name area-item-name-a' : 'area-item-name'"
@click="itemSelect(item, idx)">
{{ item.data.name }}
</text>
</view>
<view class="">
<text
:class="proCode.code == item2.code || cityCode.code == item2.code || disCode.code == item2.code || townCode.code == item2.code || streeCode.code == item2.code? 'area-item-name area-item-name-a' : 'area-item-name'"
@click="itemSelect(item2, idx)" v-for="(item2, index2) in item.data"
:key="index2">
<!-- <text class="iconfont"
v-if="proCode == item2.code || cityCode == item2.code || disCode == item2.code">&#xe674;</text> -->
{{ item2.name }}
</text>
</view>
</view>
</view>
</scroll-view>
</swiper-item>
</swiper>
<view class="slider-right">
<view class="slider-list">
<text class="slider-item"
v-for="(item, index) in (areaIndex == 0 ? provinceList : areaIndex == 1 ? cityList : areaIndex == 2 ? disList : townList)"
:key="index" @click="sliderSelect(item.pinyin +(areaIndex+1))">{{ item.pinyin }}</text>
</view> </view>
<scroll-view scroll-y="true" :scroll-top="scrollTop" class="address-list" @scroll="scroll">
<view v-for="(item,index) in addressList" :key="index" class="list" :class="{active:item.id === activeId}" @click="selected(item)">
<text class="item-name">{{item.name}}</text>
<text v-if="item.id === activeId" class="iconfont icon-duihao2"></text>
</view>
</scroll-view>
</view> </view>
</view> </view>
</uni-popup> <view class='mask' catchtouchmove="true" :hidden='display==false' @tap='close'></view>
</view>
</template> </template>
<script> <script>
import { // +----------------------------------------------------------------------
getAddressList // | CRMEB [ CRMEB ]
} from '@/api/user.js'; // +----------------------------------------------------------------------
import { // | Copyright (c) 2016~2021 https://www.crmeb.com All rights reserved.
village // +----------------------------------------------------------------------
} from '@/api/api.js'; // | Licensed CRMEBCRMEB
// +----------------------------------------------------------------------
// | Author: CRMEB Team <admin@crmeb.com>
// +----------------------------------------------------------------------
import {getAddressList} from '@/api/user.js';
import { getCityV2,village } from '@/api/api.js';
import { mapGetters } from "vuex";
const CACHE_ADDRESS = {};
export default { export default {
name: 'area-choose',
props: { props: {
display: {
type: Boolean,
default: true
},
address: Array, address: Array,
}, },
data() { data() {
return { return {
list: ['请选择', '', '', '', ''], active: 0,
areaIndex: 0, //
navBottomLeft: 0, addressList: [],
scrollIntoView: 'area0', selectedArr: [],
code: '440100', selectedIndex: -1,
provinceList: [], // is_loading: false,
proCode: -1, old: { scrollTop: 0 },
cityList: [], scrollTop: 0
cityCode: -1,
disList: [],
disCode: -1,
townList: [],
townCode: -1,
streeCode: -1,
streeList: [],
areaCode: -1,
areaList: [],
swiperH: 300, //
current: 0, //
id: '', //ABC...
id2: '',
scrollTopList: [{
id: 'A',
top: 0
}],
scrollTopListAll: {}
}; };
}, },
onLoad() { computed:{
...mapGetters(['viewColor']),
activeId(){
return this.selectedIndex == -1 ? 0 : this.selectedArr[this.selectedIndex].id
},
showMore(){
return this.selectedArr.length ? this.selectedArr[this.selectedArr.length - 1].snum > 0 : true
}
},
watch:{
address(n){
this.selectedArr = n ? [...n] : []
},
display(n){
if(!n) {
this.addressList = [];
this.selectedArr = this.address ? [...this.address] : [];
this.selectedIndex = -1;
this.is_loading = false;
}else{
this.loadAddress(0)
}
}
}, },
mounted() { mounted() {
this.loadAddress(0)
this.getData();
},
computed: {
getList() {
return this.areaIndex == 0 ? this.provinceList : this.areaIndex == 1 ? this.cityList : this.areaIndex ==
2 ? this.disList : this.areaIndex ==
3 ? this.townList : this.areaIndex ==
4 ? this.streeList : this.areaList
},
}, },
methods: { methods: {
close() { change(pid){
this.$refs.areaChoose.close() if(this.selectedIndex == index) return;
}, if(pid === -1){
show() { pid = this.selectedArr.length ? this.selectedArr[this.selectedArr.length -1].id : 0;
this.$refs.areaChoose.open();
if(this.address.length>0){
this.list = this.address
} }
console.log(index)
this.selectedIndex = index;
this.loadAddress(pid);
},
loadAddress(pid,type){
if(CACHE_ADDRESS[pid]){
this.addressList = CACHE_ADDRESS[pid];
return ;
}
this.is_loading = true;
// getCityV2(pid).then(res=>{
// this.is_loading = false;
// CACHE_ADDRESS[pid] = res.data;
// this.addressList = res.data;
// })
if (!this.provinceList) { if(type=='province'){
this.getData();
} else {
this.getScrollT(0, this.provinceList.length)
this.current = 0;
this.$nextTick(()=>{ village({province_code:pid}).then(res=>{
setTimeout(() => { this.is_loading = false;
this.areaSelect(0); CACHE_ADDRESS[pid] = res.data;
}, 300) this.addressList = res.data;
}) })
}else if(type=='city'){
village({city_code:pid}).then(res=>{
this.is_loading = false;
CACHE_ADDRESS[pid] = res.data;
this.addressList = res.data;
}
this.$nextTick(()=>{
setTimeout(() => {
this.getSwiperH();
}, 300)
})
},
onchange(e) {
const value = e.detail.value;
},
scroll(e) {
this.scrollTopList.some((item, index) => {
if (e.detail.scrollTop > item.top) {
this.id = item.id
}
})
},
areaSelect(index) {
//
this.areaIndex = index;
this.current = index;
//
this.scrollIntoView = 'area' + index;
let widthAll = 0;
for (let i = 0; i < index + 1; i++) {
var query = uni.createSelectorQuery().in(this);
var idView = '#area' + i;
query.select(idView).boundingClientRect();
query.exec(res => {
if(res[0]!=null){
if (i < index) {
widthAll += res[0].width;
}
if (i == index ) {
this.navBottomLeft = widthAll + (res[0].width - uni.upx2px(60)) / 2;
}
}
});
}
this.scrollTopList = this.scrollTopListAll[index]
},
sliderSelect(id) {
this.id2 = id
},
getSwiperH() {
var query = uni.createSelectorQuery().in(this);
query
.selectAll('.getHeight')
.boundingClientRect()
.exec(res => {
if (res[0].length > 0) {
this.swiperH = res[0][0].height - res[0][1].height - res[0][2].height - uni.upx2px(20);
} else {
setTimeout(() => {
this.getSwiperH();
}, 200);
}
});
},
getScrollT(type, length) {
var query = uni.createSelectorQuery().in(this);
query
.selectAll('#sw' + (type + 1) + ' .area-item-id')
.boundingClientRect()
.exec(res => {
if (res[0].length == length) {
this.scrollTopList = []
let firstTop = res[0][0].top
res[0].forEach((item, index) => {
let obj = {
id: item.id,
top: item.top - firstTop
}
this.scrollTopList.push(obj)
})
this.scrollTopListAll[type] = this.scrollTopList
} else {
setTimeout(() => {
this.getScrollT(type, length)
}, 200)
}
});
},
itemSelect(item, type) {
switch (type) {
case 0:
this.proCode = item;
break;
case 1:
this.cityCode = item;
break;
case 2:
this.disCode = item;
break;
case 3:
this.townCode = item;
break;
case 4:
this.streeCode = item;
break;
case 5:
this.areaCode = item;
break;
default:
break;
}
this.list.forEach((item2, index2) => {
if (index2 == type) {
this.$set(this.list, type, item.name)
if (index2 < 4) {
this.$set(this.list, type + 1, '请选择');
this.getData(item.code, type + 1);
} else {
setTimeout(() => {
this.areaSelect(type);
}, 200);
}
}
if (index2 > type + 1) {
this.$set(this.list, index2, '');
}
});
if (type == 4) {
this.$refs.areaChoose.close()
// this.$emit('areaComplete', {
// address: this.list.join(''),
// proCode: this.proCode,
// cityCode: this.cityCode,
// disCode: this.disCode,
// streeCode: this.townCode,
// areaCode: this.streeCode
// })
this.$emit('areaComplete', [this.proCode, this.cityCode, this.disCode, this.townCode, this.streeCode]
)
}
},
getData(code = '', type = 0) {
console.log(type)
let obj;
if (type == 0) {
obj = {
pinyin: 1
}
} else if (type == 1) {
obj = {
province_code: code,
pinyin: 1
}
} else if (type == 2) {
obj = {
city_code: code,
pinyin: 1
}
} else if (type == 3) {
obj = {
area_code: code,
pinyin: 1
}
} else {
obj = {
street_code: code,
pinyin: 1
}
}
village(obj).then(res => {
if (res.data.length == 0) {
this.$refs.areaChoose.close()
}
res.data.sort((a,b)=>{
return a.pinyin.localeCompare(b.pinyin)
}) })
switch (type) { }else if(type=='area'){
village({area_code:pid}).then(res=>{
if(res.data.length>0){
this.is_loading = false;
CACHE_ADDRESS[pid] = res.data;
this.addressList = res.data;
}else{
this.$emit('submit', [...this.selectedArr]);
this.$emit('changeClose');
}
})
}else if(type=='street'){
village({street_code:pid}).then(res=>{
if(res.data.length>0){
this.is_loading = false;
CACHE_ADDRESS[pid] = res.data;
this.addressList = res.data;
}else{
this.$emit('submit', [...this.selectedArr]);
this.$emit('changeClose');
}
})
}else{
case 0: village().then(res=>{
this.provinceList = res.data; this.is_loading = false;
break; CACHE_ADDRESS[pid] = res.data;
case 1: this.addressList = res.data;
this.cityList = res.data; })
break; }
case 2:
this.disList = res.data;
break;
case 3:
this.townList = res.data;
break;
case 4:
this.streeList = res.data;
break;
case 5:
this.areaList = res.data;
break;
default:
break;
}
if (res.data.length > 0) {
this.getScrollT(type, res.data.length)
}
this.current = type;
this.areaSelect(type);
})
this.goTop()
}, },
selected(item){
if(this.is_loading) return;
if(this.selectedIndex > -1){
this.selectedArr.splice(this.selectedIndex + 1,999)
this.selectedArr[this.selectedIndex] = item;
this.selectedIndex = -1;
}
// else if(!item.parent_id){
// this.selectedArr = [item];
// }else{
// this.selectedArr.push(item);
// }
else if(!item.id){
this.selectedArr = [item];
}else{
if(this.selectedArr.length>4){
let arry=[]
arry.push(item)
this.selectedArr=arry
}else{
this.selectedArr.push(item);
}
}
if(item.type=="province"){
this.loadAddress(item.code,"province");
}else if(item.type=="city"){
this.loadAddress(item.code,"city");
}else if(item.type=="area"){
this.loadAddress(item.code,"area");
}else if(item.type=="street"){
this.loadAddress(item.code,"street");
} else {
this.$emit('submit', [...this.selectedArr]);
this.$emit('changeClose');
}
// if(item.snum){
// this.loadAddress(item.id);
// } else {
// this.$emit('submit', [...this.selectedArr]);
// this.$emit('changeClose');
// }
this.goTop()
},
close: function() {
this.$emit('changeClose');
},
scroll : function(e) {
this.old.scrollTop = e.detail.scrollTop
},
goTop: function(e) {
this.scrollTop = this.old.scrollTop
this.$nextTick(() => {
this.scrollTop = 0
});
}
} }
}; }
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.mian { .address-window {
height: 85vh; background-color: #fff;
position: fixed;
bottom: 0;
left: 0;
width: 100%; width: 100%;
background-color: #ffffff; z-index: 101;
border-radius: 20rpx 20rpx 0 0; border-radius: 30rpx 30rpx 0 0;
transform: translate3d(0, 100%, 0);
transition: all .3s cubic-bezier(.25, .5, .5, .9);
}
.address-window.on {
transform: translate3d(0, 0, 0);
}
.address-window .title {
font-size: 32rpx;
font-weight: bold;
text-align: center;
height: 123rpx;
line-height: 123rpx;
position: relative; position: relative;
}
.top { .address-window .title .iconfont {
display: flex; position: absolute;
align-items: center; right: 30rpx;
justify-content: space-between; color: #8a8a8a;
padding-left: 30rpx; font-size: 35rpx;
font-size: 32rpx; }
font-weight: bold; .address-count{
padding: 40rpx 30rpx 30rpx; .address-selected{
padding: 0 30rpx;
.top_img { margin-top: 10rpx;
width: 58rpx;
height: 58rpx;
image {
width: 100%;
height: 100%;
}
}
}
.nav {
white-space: nowrap;
width: 100%;
position: relative; position: relative;
padding: 0rpx 20rpx; padding-bottom: 20rpx;
border-bottom: 2rpx solid #f7f7f7;
.bottomBorder { }
.selected-list{
font-size: 26rpx;
color: #282828;
line-height: 50rpx;
padding-bottom: 10rpx;
padding-left: 60rpx;
position: relative;
&.active{
color: #e28d54;
}
&:before,&:after{
content: '';
display: block;
position: absolute; position: absolute;
width: 60rpx;
height: 6rpx;
// background-image: linear-gradient(to right, red, white);
bottom: 0rpx;
left: 0rpx;
transition: left 0.5s ease;
} }
&:before{
.nav-item { width: 4rpx;
padding: 10rpx 20rpx;
display: inline-block;
text-align: center;
font-size: 30rpx;
font-family: PingFang SC-Medium, PingFang SC;
font-weight: 500;
color: #3274F9 !important;
}
.nav-item-a {
// color: rgb(201, 22, 35);
}
}
.swiper {
height: 1000rpx;
margin-top: 20rpx;
.swiper-list {
height: 100%; height: 100%;
display: flex; background-color: var(--view-theme);
flex-direction: column; top: 0;
position: relative; left: 10rpx;
}
.area-item { &:after{
font-size: 28rpx; width: 12rpx;
height: 12rpx;
.area-item-id { background: var(--view-theme);
padding: 20rpx 44rpx; border-radius: 100%;
// border-bottom: 1rpx solid #f0ecf2; left: 6rpx;
font-weight: bold; top: 50%;
display: block; margin-top: -8rpx;
} }
&:first-child,&:last-child{
.area-item-id-sticky { &:before{
position: sticky; height: 50%;
top: 0;
background-color: #FFFFFF;
transition: all 0.1s;
}
.swiper-list2 {
display: flex;
flex-direction: column;
.area-item-name {
padding: 20rpx 40rpx 0;
font-weight: 400;
.iconfont {
color: rgb(201, 22, 35);
margin-right: 10rpx;
}
}
.area-item-name-a {
color: rgb(201, 22, 35);
}
}
} }
}
&:first-child{
&:before{
top: auto;
bottom: 0;
}
}
.iconfont{
font-size: 20rpx;
float: right;
color: #dddddd;
} }
} }
scroll-view{
.slider-right { height: 550rpx;
}
position: absolute; .address-list{
right: 0rpx; padding: 0 30rpx;
top: 80rpx; margin-top: 20rpx;
bottom: 0; box-sizing: border-box;
display: flex; .list{
flex-direction: column; .iconfont{
align-items: center; float: right;
justify-content: center; color: #ddd;
padding: 20rpx; font-size: 22rpx;
.slider-list {
display: flex;
flex-direction: column;
align-items: center;
background-color: #F4F7FE;
border-radius: 20rpx;
font-size: 23rpx;
font-weight: 400;
}
.slider-item {
padding: 10rpx 10rpx;
font-size: 18rpx;
color: #24292E;
&:first-child {
padding-top: 20rpx;
} }
.item-name{
&:last-child { display: inline-block;
padding-bottom: 20rpx; line-height: 50rpx;
margin-bottom: 20rpx;
font-size: 26rpx;
}
&.active{
color: #e28d54;
.iconfont{
color: #e28d54;
}
} }
} }
} }

View File

@ -1,394 +1,259 @@
<template> <template>
<uni-popup type="bottom" ref="areaChoose"> <view :style="viewColor">
<view class="mian getHeight" id="main"> <view class="address-window" :class="display==true?'on':''">
<view class="top getHeight" id="top"> <view class='title'>请选择所在村队<text class='iconfont icon-guanbi' @tap='close'></text></view>
<text>请选择所在地区</text> <view class="address-count">
<!-- <text class="iconfont close" @click.stop="close">&#xe7fa;</text> --> <view class="address-selected">
<view class="top_img"> <view v-for="(item,index) in selectedArr" :key="index" class="selected-list" :class="{active:index === selectedIndex}" @click="change(item.parent_id, index)">
<image src="@/static/images/close.png" mode="aspectFill" @click.stop="close"></image> {{item.name}}
<text class="iconfont icon-xiangyou"></text>
</view>
<view class="selected-list" :class="{active:-1 === selectedIndex}" v-if="showMore" @click="change(-1, -1)">
<text class="iconfont icon-xiangyou"></text>
请选择
</view>
</view> </view>
<scroll-view scroll-y="true" :scroll-top="scrollTop" class="address-list" @scroll="scroll">
<view v-for="(item,index) in addressList" :key="index" class="list" :class="{active:item.id === activeId}" @click="selected(item)">
<text class="item-name">{{item.name}}</text>
<text v-if="item.id === activeId" class="iconfont icon-duihao2"></text>
</view>
</scroll-view>
</view> </view>
<scroll-view scroll-x="true" @scroll="scroll" :show-scrollbar="false" class="nav getHeight" id="nav"
:scroll-into-view="scrollIntoView">
<view @click="areaSelect(index)" :class="areaIndex == index ? 'nav-item nav-item-a' : 'nav-item'"
v-for="(item, index) in list" :key="index" :id="'area' + index">
<text>{{ item }}</text>
</view>
<view class="bottomBorder" :style="'left:' + navBottomLeft + 'px'"></view>
</scroll-view>
<swiper class="swiper getHeight" :disable-touch="true" :current="current"
:style="'height:' + swiperH + 'px'">
<swiper-item v-for="(type, idx) in [1,2,3,4,5]" :key="idx" :id="'sw'+type">
<scroll-view scroll-y="true" scroll-with-animation scroll-anchoring :scroll-into-view='id2'
@scroll="scroll" :show-scrollbar="false" class="swiper-list">
<view class="area-item" v-for="(item, index) in getList" :key="index" :id="'area' + index">
<view class="" style="line-height: 80rpx;margin-left: 40rpx;"
@click="itemSelect(item, index)">
{{ item.name }}
</view>
</view>
</scroll-view>
</swiper-item>
</swiper>
</view> </view>
</uni-popup> <view class='mask' catchtouchmove="true" :hidden='display==false' @tap='close'></view>
</view>
</template> </template>
<script> <script>
import { // +----------------------------------------------------------------------
brigade // | CRMEB [ CRMEB ]
} from '@/api/api.js'; // +----------------------------------------------------------------------
// | Copyright (c) 2016~2021 https://www.crmeb.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed CRMEBCRMEB
// +----------------------------------------------------------------------
// | Author: CRMEB Team <admin@crmeb.com>
// +----------------------------------------------------------------------
import {getAddressList} from '@/api/user.js';
import {brigade } from '@/api/api.js';
import { mapGetters } from "vuex";
const CACHE_ADDRESS = {};
export default { export default {
name: 'area-choose',
props: { props: {
display: {
type: Boolean,
default: true
},
address: Array, address: Array,
}, },
data() { data() {
return { return {
list: ['请选择', ], active: 0,
areaIndex: 0, //
navBottomLeft: 0, addressList: [],
scrollIntoView: 'area0', selectedArr: [],
code: '440100', selectedIndex: -1,
provinceList: [], // is_loading: false,
proCode: -1, old: { scrollTop: 0 },
cityList: [], scrollTop: 0
cityCode: -1,
disList: [],
disCode: -1,
townList: [],
townCode: -1,
streeCode: -1,
streeList: [],
areaCode: -1,
areaList: [],
swiperH: 300, //
current: 0, //
id: '', //ABC...
id2: '',
scrollTopList: [{
id: 'A',
top: 0
}],
scrollTopListAll: {}
}; };
}, },
onLoad() { computed:{
...mapGetters(['viewColor']),
activeId(){
return this.selectedIndex == -1 ? 0 : this.selectedArr[this.selectedIndex].id
},
showMore(){
return this.selectedArr.length ? this.selectedArr[this.selectedArr.length - 1].snum > 0 : true
}
},
watch:{
address(n){
this.selectedArr = n ? [...n] : []
},
display(n){
if(!n) {
this.addressList = [];
this.selectedArr = this.address ? [...this.address] : [];
this.selectedIndex = -1;
this.is_loading = false;
}else{
this.loadAddress()
}
}
}, },
mounted() { mounted() {
this.loadAddress()
this.getData();
},
computed: {
getList() {
return this.areaIndex == 0 ? this.provinceList : this.areaIndex == 1 ? this.cityList : this.areaIndex ==
2 ? this.disList : this.areaIndex ==
3 ? this.townList : this.areaIndex ==
4 ? this.streeList : this.areaList
},
}, },
methods: { methods: {
close() { change(pid,index){
this.$refs.areaChoose.close() if(this.selectedIndex == index) return;
}, if(pid === -1){
show() { pid = this.selectedArr.length ? this.selectedArr[this.selectedArr.length -1].id : 0;
this.$refs.areaChoose.open();
// console.log(this.address[0].name)
if (this.address.length > 0) {
this.list = [this.address[0].name]
} }
console.log(index)
this.selectedIndex = index;
if (!this.provinceList) { this.loadAddress();
this.getData(); },
loadAddress(pid){
if(CACHE_ADDRESS[pid]){
this.addressList = CACHE_ADDRESS[pid];
return ;
}
this.is_loading = true;
brigade(pid).then(res=>{
console.log(res.data)
this.is_loading = false;
CACHE_ADDRESS[pid] = res.data;
this.addressList = res.data;
})
this.goTop()
},
selected(item){
if(this.is_loading) return;
if(this.selectedIndex > -1){
this.selectedArr.splice(this.selectedIndex + 1,999)
this.selectedArr[this.selectedIndex] = item;
this.selectedIndex = -1;
}else if(!item.parent_id){
this.selectedArr = [item];
}else{
this.selectedArr.push(item);
}
if(item.snum){
this.loadAddress(item.id);
} else { } else {
this.getScrollT(0, this.provinceList.length) this.$emit('submit', [...this.selectedArr]);
this.current = 0; this.$emit('changeClose');
this.$nextTick(() => {
setTimeout(() => {
this.areaSelect(0);
}, 300)
})
} }
this.goTop()
this.$nextTick(() => {
setTimeout(() => {
this.getSwiperH();
}, 300)
})
}, },
onchange(e) { close: function() {
const value = e.detail.value; this.$emit('changeClose');
}, },
scroll(e) { scroll : function(e) {
this.scrollTopList.some((item, index) => { this.old.scrollTop = e.detail.scrollTop
if (e.detail.scrollTop > item.top) {
this.id = item.id
}
})
}, },
areaSelect(index) { goTop: function(e) {
// this.scrollTop = this.old.scrollTop
this.areaIndex = index; this.$nextTick(() => {
this.current = index; this.scrollTop = 0
// });
this.scrollIntoView = 'area' + index; }
let widthAll = 0;
for (let i = 0; i < index + 1; i++) {
var query = uni.createSelectorQuery().in(this);
var idView = '#area' + i;
query.select(idView).boundingClientRect();
query.exec(res => {
if(res[0]!=null){
if (i < index) {
widthAll += res[0].width;
}
if (i == index ) {
this.navBottomLeft = widthAll + (res[0].width - uni.upx2px(60)) / 2;
}
}
});
}
this.scrollTopList = this.scrollTopListAll[index]
},
sliderSelect(id) {
this.id2 = id
},
getSwiperH() {
var query = uni.createSelectorQuery().in(this);
query
.selectAll('.getHeight')
.boundingClientRect()
.exec(res => {
if (res[0].length > 0) {
this.swiperH = res[0][0].height - res[0][1].height - res[0][2].height - uni.upx2px(20);
} else {
setTimeout(() => {
this.getSwiperH();
}, 200);
}
});
},
getScrollT(type, length) {
var query = uni.createSelectorQuery().in(this);
query
.selectAll('#sw' + (type + 1) + ' .area-item-id')
.boundingClientRect()
.exec(res => {
if (res[0].length == length) {
this.scrollTopList = []
let firstTop = res[0][0].top
res[0].forEach((item, index) => {
let obj = {
id: item.id,
top: item.top - firstTop
}
this.scrollTopList.push(obj)
})
this.scrollTopListAll[type] = this.scrollTopList
} else {
setTimeout(() => {
this.getScrollT(type, length)
}, 200)
}
});
},
itemSelect(item, type) {
this.$set(this.list, type, item.name)
this.$refs.areaChoose.close()
this.$emit('villageComplete', [item])
},
getData(code = '', type = 0) {
brigade().then(res => {
// console.log(res.data)
this.provinceList = res.data
if (res.data.length > 0) {
this.getScrollT(type, res.data.length)
}
this.current = type;
this.areaSelect(type);
})
},
} }
}; }
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.mian { .address-window {
height: 85vh; background-color: #fff;
position: fixed;
bottom: 0;
left: 0;
width: 100%; width: 100%;
background-color: #ffffff; z-index: 101;
border-radius: 20rpx 20rpx 0 0; border-radius: 30rpx 30rpx 0 0;
transform: translate3d(0, 100%, 0);
transition: all .3s cubic-bezier(.25, .5, .5, .9);
}
.address-window.on {
transform: translate3d(0, 0, 0);
}
.address-window .title {
font-size: 32rpx;
font-weight: bold;
text-align: center;
height: 123rpx;
line-height: 123rpx;
position: relative; position: relative;
}
.top { .address-window .title .iconfont {
display: flex; position: absolute;
align-items: center; right: 30rpx;
justify-content: space-between; color: #8a8a8a;
padding-left: 30rpx; font-size: 35rpx;
font-size: 32rpx; }
font-weight: bold; .address-count{
padding: 40rpx 30rpx 30rpx; .address-selected{
padding: 0 30rpx;
.top_img { margin-top: 10rpx;
width: 58rpx;
height: 58rpx;
image {
width: 100%;
height: 100%;
}
}
}
.nav {
white-space: nowrap;
width: 100%;
position: relative; position: relative;
padding: 0rpx 20rpx; padding-bottom: 20rpx;
border-bottom: 2rpx solid #f7f7f7;
.bottomBorder { }
.selected-list{
font-size: 26rpx;
color: #282828;
line-height: 50rpx;
padding-bottom: 10rpx;
padding-left: 60rpx;
position: relative;
&.active{
color: #e28d54;
}
&:before,&:after{
content: '';
display: block;
position: absolute; position: absolute;
width: 60rpx;
height: 6rpx;
// background-image: linear-gradient(to right, red, white);
bottom: 0rpx;
left: 0rpx;
transition: left 0.5s ease;
} }
&:before{
.nav-item { width: 4rpx;
padding: 10rpx 20rpx;
display: inline-block;
text-align: center;
font-size: 28rpx;
}
.nav-item-a {
// color: rgb(201, 22, 35);
font-size: 30rpx;
font-family: PingFang SC-Medium, PingFang SC;
font-weight: 500;
color: #3274F9;
}
}
.swiper {
height: 1000rpx;
margin-top: 20rpx;
.swiper-list {
height: 100%; height: 100%;
display: flex; background-color: var(--view-theme);
flex-direction: column; top: 0;
position: relative; left: 10rpx;
}
.area-item { &:after{
font-size: 28rpx; width: 12rpx;
height: 12rpx;
.area-item-id { background: var(--view-theme);
padding: 20rpx 44rpx; border-radius: 100%;
border-bottom: 1rpx solid #f0ecf2; left: 6rpx;
font-weight: bold; top: 50%;
display: block; margin-top: -8rpx;
} }
&:first-child,&:last-child{
.area-item-id-sticky { &:before{
position: sticky; height: 50%;
top: 0;
background-color: #FFFFFF;
transition: all 0.1s;
}
.swiper-list2 {
display: flex;
flex-direction: column;
.area-item-name {
padding: 20rpx 40rpx 0;
font-weight: 400;
.iconfont {
color: rgb(201, 22, 35);
margin-right: 10rpx;
}
}
.area-item-name-a {
color: rgb(201, 22, 35);
}
}
} }
}
&:first-child{
&:before{
top: auto;
bottom: 0;
}
}
.iconfont{
font-size: 20rpx;
float: right;
color: #dddddd;
} }
} }
scroll-view{
.slider-right { height: 550rpx;
}
position: absolute; .address-list{
right: 0rpx; padding: 0 30rpx;
top: 80rpx; margin-top: 20rpx;
bottom: 0; box-sizing: border-box;
display: flex; .list{
flex-direction: column; .iconfont{
align-items: center; float: right;
justify-content: center; color: #ddd;
padding: 20rpx; font-size: 22rpx;
.slider-list {
display: flex;
flex-direction: column;
align-items: center;
background-color: #F4F7FE;
border-radius: 20rpx;
font-size: 23rpx;
font-weight: 400;
}
.slider-item {
padding: 10rpx 10rpx;
font-size: 18rpx;
color: #24292E;
&:first-child {
padding-top: 20rpx;
} }
.item-name{
&:last-child { display: inline-block;
padding-bottom: 20rpx; line-height: 50rpx;
margin-bottom: 20rpx;
font-size: 26rpx;
}
&.active{
color: #e28d54;
.iconfont{
color: #e28d54;
}
} }
} }
} }

View File

@ -1,351 +1,352 @@
<template> <template>
<view> <view>
<view class='newsDetail' style="padding-bottom: 50px;"> <view class='newsDetail' style="padding-bottom: 50px;">
<view class='title'>{{articleInfo.title}}</view> <view class='title'>{{articleInfo.title}}</view>
<view class='list acea-row row-middle'> <view class='list acea-row row-middle'>
<view class='label'>{{articleInfo.author}}</view> <view class='label'>{{articleInfo.author}}</view>
<view class='item'></text>{{articleInfo.create_time}}</view> <view class='item'></text>{{articleInfo.create_time}}</view>
<!-- <view class='item'><text class='iconfont icon-liulan'></text>{{articleInfo.visit}}</view> --> <!-- <view class='item'><text class='iconfont icon-liulan'></text>{{articleInfo.visit}}</view> -->
</view> </view>
<view class='conters'> <view class='conters'>
<!-- <rich-text :nodes="content" class="conter"></rich-text> --> <!-- <rich-text :nodes="content" class="conter"></rich-text> -->
<jyf-parser :html="content.replace(/<br\/>/ig, '')" ref="article" :tag-style="tagStyle"></jyf-parser> <jyf-parser :html="content.replace(/<br\/>/ig, '')" ref="article" :tag-style="tagStyle"></jyf-parser>
</view> </view>
<view class="picTxt acea-row row-between-wrapper" v-if="store_info.id"> <view class="picTxt acea-row row-between-wrapper" v-if="store_info.id">
<view class="pictrue"> <view class="pictrue">
<image :src="store_info.image" ></image> <image :src="store_info.image"></image>
</view> </view>
<view class="text"> <view class="text">
<view class="name line1">{{store_info.store_name}}</view> <view class="name line1">{{store_info.store_name}}</view>
<view class="money font-color"> <view class="money font-color">
<text class="num">{{store_info.price}}</text> <text class="num">{{store_info.price}}</text>
</view> </view>
<view class="y_money">{{store_info.ot_price}}</view> <view class="y_money">{{store_info.ot_price}}</view>
</view> </view>
<navigator :url="'/pages/goods_details/index?id='+store_info.id" hover-class="none" class="label"><text <navigator :url="'/pages/goods_details/index?id='+store_info.id" hover-class="none" class="label"><text
class="span">查看商品</text></navigator> class="span">查看商品</text></navigator>
</view> </view>
<!-- #ifdef H5 --> <!-- #ifdef H5 -->
<button class="bnt bg-color" hover-class='none' @click="listenerActionSheet" <button class="bnt bg-color" hover-class='none' @click="listenerActionSheet">和好友一起分享</button>
>和好友一起分享</button> <!-- #endif -->
<!-- #endif --> <!-- #ifdef MP -->
<!-- #ifdef MP --> <button class="bnt bg-color" open-type="share" hover-class='none'>和好友一起分享</button>
<button class="bnt bg-color" open-type="share" hover-class='none'>和好友一起分享</button> <!-- #endif -->
<!-- #endif --> <!-- #ifdef APP-PLUS -->
<!-- #ifdef APP-PLUS --> <button class="bnt bg-color" open-type="share" hover-class='none' @click="uniShare">分享</button>
<button class="bnt bg-color" open-type="share" hover-class='none' @click="uniShare" >分享</button> <!-- #endif -->
<!-- #endif --> </view>
</view> <shareInfo @setShareInfoStatus="setShareInfoStatus" :shareInfoStatus="shareInfoStatus"></shareInfo>
<shareInfo @setShareInfoStatus="setShareInfoStatus" :shareInfoStatus="shareInfoStatus"></shareInfo> <!-- <home></home> -->
<!-- <home></home> --> </view>
</view>
</template> </template>
<script> <script>
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
// | CRMEB [ CRMEB ] // | CRMEB [ CRMEB ]
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
// | Copyright (c) 2016~2021 https://www.crmeb.com All rights reserved. // | Copyright (c) 2016~2021 https://www.crmeb.com All rights reserved.
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
// | Licensed CRMEBCRMEB // | Licensed CRMEBCRMEB
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
// | Author: CRMEB Team <admin@crmeb.com> // | Author: CRMEB Team <admin@crmeb.com>
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
import parser from "@/components/jyf-parser/jyf-parser"; import parser from "@/components/jyf-parser/jyf-parser";
import { import {
getArticleDetails getArticleDetails
} from '@/api/api.js'; } from '@/api/api.js';
import shareInfo from '@/components/shareInfo'; import shareInfo from '@/components/shareInfo';
import home from '@/components/home'; import home from '@/components/home';
import UniShare from 'uni_modules/uni-share/js_sdk/uni-share.js'; import UniShare from 'uni_modules/uni-share/js_sdk/uni-share.js';
const uniShare = new UniShare(); const uniShare = new UniShare();
export default { export default {
components: { components: {
shareInfo, shareInfo,
home, home,
"jyf-parser": parser, "jyf-parser": parser,
}, },
onBackPress({from}) { onBackPress({
if(from=='backbutton'){ from
this.$nextTick(function(){ }) {
uniShare.hide() if (from == 'backbutton') {
}) this.$nextTick(function() {
return uniShare.isShow; uniShare.hide()
} })
}, return uniShare.isShow;
data() { }
return { },
id: 0, data() {
articleInfo: [], return {
store_info: {}, id: 0,
content: '', articleInfo: [],
shareInfoStatus: false, store_info: {},
tagStyle: { content: '',
img: 'width:100%;display:block;' shareInfoStatus: false,
}, tagStyle: {
}; img: 'width:100%;display:block;'
}, },
/** };
* 生命周期函数--监听页面加载 },
*/ /**
onLoad: function(options) { * 生命周期函数--监听页面加载
if (options.hasOwnProperty('id')) { */
this.id = options.id; onLoad: function(options) {
} else { if (options.hasOwnProperty('id')) {
// #ifndef H5 this.id = options.id;
uni.navigateBack({ } else {
delta: 1 // #ifndef H5
}); uni.navigateBack({
// #endif delta: 1
// #ifdef H5 });
history.back(); // #endif
// #endif // #ifdef H5
} history.back();
}, // #endif
onShow: function() { }
this.getArticleOne(); },
}, onShow: function() {
methods: { this.getArticleOne();
// },
uniShare() { methods: {
uniShare.show({ //
content: { // typeherftitlesummaryimageUrl uniShare() {
type: 0, uniShare.show({
href: 'https://uniapp.dcloud.io/', content: { // typeherftitlesummaryimageUrl
title: '标题', type: 0,
summary: '描述', href: 'https://uniapp.dcloud.io/',
imageUrl: 'https://img-cdn-aliyun.dcloud.net.cn/stream/icon/__UNI__HelloUniApp.png' title: '标题',
}, summary: '描述',
menus: [{ imageUrl: 'https://img-cdn-aliyun.dcloud.net.cn/stream/icon/__UNI__HelloUniApp.png'
"img": "/static/app-plus/sharemenu/wechatfriend.png", },
"text": "微信好友", menus: [{
"share": { //type=5 "img": "/static/images/weixin.png",
"provider": "weixin", "text": "微信好友",
"scene": "WXSceneSession" "share": { //type=5
} "provider": "weixin",
}, "scene": "WXSceneSession"
{ }
"img": "/static/app-plus/sharemenu/wechatmoments.png", },
"text": "微信朋友圈", {
"share": { "img": "/static/images/weixin.png",
"provider": "weixin", "text": "微信朋友圈",
"scene": "WXSceneTimeline" "share": {
} "provider": "weixin",
}, "scene": "WXSceneTimeline"
{ }
"img": "/static/app-plus/sharemenu/mp_weixin.png", },
"text": "微信小程序", {
"share": { "img": "/static/images/weixin.png",
provider: "weixin", "text": "微信小程序",
scene: "WXSceneSession", "share": {
type: 5, provider: "weixin",
miniProgram: { scene: "WXSceneSession",
id: '123', type: 5,
path: '/pages/list/detail', miniProgram: {
webUrl: '/#/pages/list/detail', id: '123',
type: 0 path: '/pages/list/detail',
}, webUrl: '/#/pages/list/detail',
} type: 0
}, },
{ }
"img": "/static/app-plus/sharemenu/weibo.png", },
"text": "微博", // {
"share": { // "img": "/static/app-plus/sharemenu/weibo.png",
"provider": "sinaweibo" // "text": "",
} // "share": {
}, // "provider": "sinaweibo"
{ // }
"img": "/static/app-plus/sharemenu/qq.png", // },
"text": "QQ", // {
"share": { // "img": "/static/app-plus/sharemenu/qq.png",
"provider": "qq" // "text": "QQ",
} // "share": {
}, // "provider": "qq"
{ // }
"img": "/static/app-plus/sharemenu/copyurl.png", // },
"text": "复制", // {
"share": "copyurl" // "img": "/static/app-plus/sharemenu/copyurl.png",
}, // "text": "",
{ // "share": "copyurl"
"img": "/static/app-plus/sharemenu/more.png", // },
"text": "更多", // {
"share": "shareSystem" // "img": "/static/app-plus/sharemenu/more.png",
} // "text": "",
], // "share": "shareSystem"
cancelText: "取消分享", // }
}, e => { //callback ],
console.log(uniShare.isShow); cancelText: "取消分享",
console.log(e); }, e => { //callback
}) console.log(uniShare.isShow);
}, console.log(e);
getArticleOne: function() { })
let that = this; },
getArticleDetails(that.id).then(res => { getArticleOne: function() {
uni.setNavigationBarTitle({ let that = this;
title: res.data.title.substring(0, 7) + "..." getArticleDetails(that.id).then(res => {
}); uni.setNavigationBarTitle({
that.$set(that, 'articleInfo', res.data); title: res.data.title.substring(0, 7) + "..."
that.$set(that, 'store_info', res.data.store_info ? res.data.store_info : {}); });
that.content = res.data.content.content; that.$set(that, 'articleInfo', res.data);
// #ifdef H5 that.$set(that, 'store_info', res.data.store_info ? res.data.store_info : {});
if (this.$wechat.isWeixin()) { that.content = res.data.content.content;
this.setShareInfo(); // #ifdef H5
} if (this.$wechat.isWeixin()) {
// #endif this.setShareInfo();
}); }
}, // #endif
listenerActionSheet() { });
this.shareInfoStatus = true },
}, listenerActionSheet() {
setShareInfoStatus() { this.shareInfoStatus = true
this.shareInfoStatus = false },
}, setShareInfoStatus() {
setShareInfo: function() { this.shareInfoStatus = false
let href = location.href; },
let configAppMessage = { setShareInfo: function() {
desc: this.articleInfo.synopsis, let href = location.href;
title: this.articleInfo.title, let configAppMessage = {
link: href, desc: this.articleInfo.synopsis,
imgUrl: this.articleInfo.image_input title: this.articleInfo.title,
}; link: href,
this.$wechat.wechatEvevt(["updateAppMessageShareData", "updateTimelineShareData"], configAppMessage); imgUrl: this.articleInfo.image_input
} };
} this.$wechat.wechatEvevt(["updateAppMessageShareData", "updateTimelineShareData"], configAppMessage);
} }
}
}
</script> </script>
<style lang="scss"> <style lang="scss">
page { page {
background-color: #fff !important; background-color: #fff !important;
} }
.newsDetail .title { .newsDetail .title {
padding: 0 30rpx; padding: 0 30rpx;
font-size: 34rpx; font-size: 34rpx;
color: #282828; color: #282828;
font-weight: bold; font-weight: bold;
margin: 45rpx 0 23rpx 0; margin: 45rpx 0 23rpx 0;
line-height: 1.5; line-height: 1.5;
} }
.newsDetail .list { .newsDetail .list {
margin: 0 30rpx; margin: 0 30rpx;
padding-bottom: 25rpx; padding-bottom: 25rpx;
} }
.newsDetail .list .label { .newsDetail .list .label {
font-size: 30rpx; font-size: 30rpx;
color: #B1B2B3; color: #B1B2B3;
} }
.newsDetail .list .item { .newsDetail .list .item {
margin-left: 27rpx; margin-left: 27rpx;
font-size: 30rpx; font-size: 30rpx;
color: #B1B2B3; color: #B1B2B3;
} }
.newsDetail .list .item .iconfont { .newsDetail .list .item .iconfont {
font-size: 28rpx; font-size: 28rpx;
margin-right: 10rpx; margin-right: 10rpx;
} }
.newsDetail .list .item .iconfont.icon-shenhezhong { .newsDetail .list .item .iconfont.icon-shenhezhong {
font-size: 26rpx; font-size: 26rpx;
} }
.newsDetail .conters { .newsDetail .conters {
padding: 0 30rpx; padding: 0 30rpx;
font-size: 32rpx; font-size: 32rpx;
line-height: 1.7; line-height: 1.7;
/deep/ img { /deep/ img {
max-width: 100%; max-width: 100%;
} }
} }
.newsDetail .picTxt { .newsDetail .picTxt {
width: 690rpx; width: 690rpx;
height: 200rpx; height: 200rpx;
border-radius: 20rpx; border-radius: 20rpx;
border: 1px solid #e1e1e1; border: 1px solid #e1e1e1;
position: relative; position: relative;
margin: 30rpx auto 0 auto; margin: 30rpx auto 0 auto;
} }
.newsDetail .picTxt .pictrue { .newsDetail .picTxt .pictrue {
width: 200rpx; width: 200rpx;
height: 200rpx; height: 200rpx;
} }
.newsDetail .picTxt .pictrue image { .newsDetail .picTxt .pictrue image {
width: 100%; width: 100%;
height: 100%; height: 100%;
border-radius: 20rpx 0 0 20rpx; border-radius: 20rpx 0 0 20rpx;
display: block; display: block;
} }
.newsDetail .picTxt .text { .newsDetail .picTxt .text {
width: 460rpx; width: 460rpx;
} }
.newsDetail .picTxt .text .name { .newsDetail .picTxt .text .name {
font-size: 30rpx; font-size: 30rpx;
color: #282828; color: #282828;
} }
.newsDetail .picTxt .text .money { .newsDetail .picTxt .text .money {
font-size: 24rpx; font-size: 24rpx;
margin-top: 40rpx; margin-top: 40rpx;
font-weight: bold; font-weight: bold;
} }
.newsDetail .picTxt .text .money .num { .newsDetail .picTxt .text .money .num {
font-size: 36rpx; font-size: 36rpx;
} }
.newsDetail .picTxt .text .y_money { .newsDetail .picTxt .text .y_money {
font-size: 26rpx; font-size: 26rpx;
color: #999; color: #999;
text-decoration: line-through; text-decoration: line-through;
} }
.newsDetail .picTxt .label { .newsDetail .picTxt .label {
position: absolute; position: absolute;
background-color: #303131; background-color: #303131;
width: 160rpx; width: 160rpx;
height: 50rpx; height: 50rpx;
right: -7rpx; right: -7rpx;
border-radius: 25rpx 0 6rpx 25rpx; border-radius: 25rpx 0 6rpx 25rpx;
text-align: center; text-align: center;
line-height: 50rpx; line-height: 50rpx;
bottom: 24rpx; bottom: 24rpx;
} }
.newsDetail .picTxt .label .span { .newsDetail .picTxt .label .span {
background-image: linear-gradient(to right, #fff71e 0%, #f9b513 100%); background-image: linear-gradient(to right, #fff71e 0%, #f9b513 100%);
-webkit-background-clip: text; -webkit-background-clip: text;
-webkit-text-fill-color: transparent; -webkit-text-fill-color: transparent;
} }
.newsDetail .picTxt .label:after { .newsDetail .picTxt .label:after {
content: " "; content: " ";
position: absolute; position: absolute;
width: 0; width: 0;
height: 0; height: 0;
border-bottom: 8rpx solid #303131; border-bottom: 8rpx solid #303131;
border-right: 8rpx solid transparent; border-right: 8rpx solid transparent;
top: -7rpx; top: -7rpx;
right: 0; right: 0;
} }
.newsDetail .bnt { .newsDetail .bnt {
color: #fff; color: #fff;
font-size: 30rpx; font-size: 30rpx;
width: 690rpx; width: 690rpx;
height: 90rpx; height: 90rpx;
border-radius: 45rpx; border-radius: 45rpx;
margin: 48rpx auto; margin: 48rpx auto;
text-align: center; text-align: center;
line-height: 90rpx; line-height: 90rpx;
} }
</style> </style>

View File

@ -1,161 +1,143 @@
<template> <template>
<view class="cloud_entrepot" :style="{'min-height': winHeight + 'px'}"> <view class="cloud_entrepot" :style="{'min-height': winHeight + 'px'}">
<view class="head-wrapper"> <view class="head-wrapper"></view>
<u--image style="position: absolute;" :showLoading="true" src="../../../static/images/tabbar/YCBG.png" <view class="town-title">{{town}}里海云仓</view>
width="100vw" height="560rpx"></u--image> <view class="body-wrapper">
<block v-for="(item,index) in cloudList" :key="index">
<u--image :showLoading="true" src="../../../static/images/tabbar/YCGG.png" width="100vw" <navigator class="item"
height="550rpx"></u--image> :url="`/pages/nongKe/goods_list/index?cate_id=${item.category_id}&street=${street_code}&name=${item.category_name}`"
:style="{'background-image': `url(${item.background})`}">
</view> <text class="item-title">{{item.category_name}}云仓服务</text>
<view class="town-title">{{town}}里海云仓</view> <text>{{item.description}}</text>
<view class="body-wrapper"> <view class="chakan-btn">查看</view>
<block v-for="(item,index) in cloudList" :key="index"> </navigator>
<navigator class="item" </block>
:url="`/pages/nongKe/goods_list/index?cate_id=${item.category_id}&street=${street_code}&name=${item.category_name}`" </view>
:style="{'background-image': `url(${item.background})`}"> </view>
<text class="item-title">{{item.category_name}}云仓服务</text>
<text style="color: #3274F9;">{{item.description}}</text>
<view class="chakan-btn">查看</view>
</navigator>
</block>
</view>
</view>
</template> </template>
<script> <script>
import { import { getCityCloundShop } from '@/api/api.js'
getCityCloundShop import { Toast } from '@/libs/uniApi';
} from '@/api/api.js' export default {
import { data() {
Toast let src = 'https://lihai001.oss-cn-chengdu.aliyuncs.com/public/kk/luzhou/static4/13';
} from '@/libs/uniApi'; return {
export default { winHeight: 0,
data() { cloudList: [],
let src = 'https://lihai001.oss-cn-chengdu.aliyuncs.com/public/kk/luzhou/static4/13'; street_code: '',
return { town: ''
winHeight: 0, }
cloudList: [], },
street_code: '', onLoad(e) {
town: '' uni.getSystemInfo({
} success: (res) => {
}, this.winHeight = res.windowHeight
onLoad(e) { },
uni.getSystemInfo({ });
success: (res) => { this.street_code = e.street
this.winHeight = res.windowHeight this.town = e.town
}, this.getCloundShop()
}); },
this.street_code = e.street onShow() {},
this.town = e.town onPullDownRefresh() {
this.getCloundShop() this.getCloundShop()
}, uni.stopPullDownRefresh()
onShow() {}, },
onPullDownRefresh() { methods: {
this.getCloundShop() async getCloundShop() {
uni.stopPullDownRefresh() const { data } = await getCityCloundShop({ street_code: this.street_code })
}, this.cloudList = data
methods: { data.length < 1 ? Toast("暂无云仓") : '';
async getCloundShop() { }
const { }
data }
} = await getCityCloundShop({
street_code: this.street_code
})
this.cloudList = data
data.length < 1 ? Toast("暂无云仓") : '';
}
}
}
</script> </script>
<style lang="scss"> <style lang="scss">
.cloud_entrepot { .cloud_entrepot {
// background: url("../../../static/images/tabbar/YCBG.png") no-repeat; background: url("https://lihai001.oss-cn-chengdu.aliyuncs.com/public/kk/luzhou/static4/13/ycbg.png") no-repeat;
// background-size: cover; background-size: cover;
// padding-bottom: 92.98rpx; padding-bottom: 92.98rpx;
background-color: #E3ECFE; }
}
.head-wrapper { .head-wrapper {
height: 550rpx; height: 485.96rpx;
// width: 100vw; width: 100%;
// background: url("../../../static/images/tabbar/YCBG.png") no-repeat; background: url("https://lihai001.oss-cn-chengdu.aliyuncs.com/public/kk/luzhou/static4/13/top.png") no-repeat;
background-size: cover; background-size: cover;
margin-bottom: 49.12rpx; margin-bottom: 49.12rpx;
} }
.town-title { .town-title {
margin: 0 auto; margin: 0 auto;
width: 100%; width: 100%;
text-align: center; text-align: center;
font-size: 50.88rpx; font-size: 50.88rpx;
color: #3274F9; color: #fff;
font-weight: bold; margin-bottom: 28.07rpx;
font-style: italic;
margin-bottom: 28.07rpx;
&::after { &::after {
content: ''; content: '';
display: inline-block; display: inline-block;
width: 66.67rpx; width: 66.67rpx;
height: 31.58rpx; height: 31.58rpx;
background: url("https://lihai001.oss-cn-chengdu.aliyuncs.com/public/kk/luzhou/static4/13/you.png") no-repeat; background: url("https://lihai001.oss-cn-chengdu.aliyuncs.com/public/kk/luzhou/static4/13/you.png") no-repeat;
background-size: cover; background-size: cover;
margin-left: 24.56rpx; margin-left: 24.56rpx;
} }
&::before { &::before {
content: ''; content: '';
display: inline-block; display: inline-block;
width: 66.67rpx; width: 66.67rpx;
height: 31.58rpx; height: 31.58rpx;
background: url("https://lihai001.oss-cn-chengdu.aliyuncs.com/public/kk/luzhou/static4/13/zuo.png") no-repeat; background: url("https://lihai001.oss-cn-chengdu.aliyuncs.com/public/kk/luzhou/static4/13/zuo.png") no-repeat;
background-size: cover; background-size: cover;
margin-right: 24.56rpx; margin-right: 24.56rpx;
} }
} }
.body-wrapper { .body-wrapper {
width: 694.74rpx; width: 694.74rpx;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
flex-wrap: wrap; flex-wrap: wrap;
margin: 0 auto; margin: 0 auto;
.item { .item {
width: 336.84rpx; width: 336.84rpx;
height: 100%; height: 100%;
padding: 24.56rpx 28.07rpx; padding: 24.56rpx 28.07rpx;
margin-bottom: 21.05rpx; margin-bottom: 21.05rpx;
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
box-sizing: border-box; box-sizing: border-box;
text { text {
display: block; display: block;
font-size: 24.56rpx; font-size: 24.56rpx;
color: #999; color: #999;
margin-bottom: 14.04rpx; margin-bottom: 14.04rpx;
} }
.item-title { .item-title {
font-size: 31.58rpx; font-size: 31.58rpx;
color: #333; color: #333;
} }
.chakan-btn { .chakan-btn {
width: 114.04rpx; width: 114.04rpx;
height: 49.12rpx; height: 49.12rpx;
font-size: 28.07rpx; font-size: 28.07rpx;
text-align: center; text-align: center;
line-height: 49.12rpx; line-height: 49.12rpx;
color: #3274F9; color: #fff;
margin-top: auto; margin-top: auto;
// background: linear-gradient(90deg, #FE5300 0%, #F84221 100%); background: linear-gradient(90deg, #FE5300 0%, #F84221 100%);
border: 1px solid #3274F9; border-radius: 50px;
border-radius: 50px; }
} }
} }
}
</style> </style>

View File

@ -1,5 +1,6 @@
<template> <template>
<view> <view>
<view class='productList' :style="viewColor"> <view class='productList' :style="viewColor">
<view class='search acea-row row-between-wrapper' :class="'styleType'+store_street_theme"> <view class='search acea-row row-between-wrapper' :class="'styleType'+store_street_theme">
<!--#ifdef H5--> <!--#ifdef H5-->
@ -617,7 +618,7 @@
<style lang="scss" scoped> <style lang="scss" scoped>
.productList .search { .productList .search {
width: 100%; width: 100%;
height: 86rpx; height: 146rpx;
padding: 0 20rpx; padding: 0 20rpx;
box-sizing: border-box; box-sizing: border-box;
position: fixed; position: fixed;
@ -627,6 +628,7 @@
display: flex; display: flex;
flex-wrap: nowrap; flex-wrap: nowrap;
background-color: #fff; background-color: #fff;
padding-top: 80rpx;
&.styleType1 { &.styleType1 {
background-color: var(--view-theme); background-color: var(--view-theme);
@ -728,7 +730,7 @@
z-index: 9; z-index: 9;
position: fixed; position: fixed;
left: 0; left: 0;
top: 0; top: 30px;
width: 100%; width: 100%;
margin-top: 86rpx; margin-top: 86rpx;
background-color: #fff; background-color: #fff;
@ -850,7 +852,7 @@
} }
.store-wrapper { .store-wrapper {
margin-top: 165rpx; margin-top: 235rpx;
border-top: 1px solid #F6F6F6; border-top: 1px solid #F6F6F6;
.store-item { .store-item {

View File

@ -307,7 +307,7 @@
</navigator> </navigator>
<view class="" v-if="orderInfo.activity_type==98"> <view class="" v-if="orderInfo.activity_type==98">
<view class='bnt b-color' @tap='confirmOrdera(orderInfo)' v-if="orderInfo.pay_type==8">111确认收货 <view class='bnt b-color' @tap='confirmOrdera(orderInfo)' v-if="orderInfo.pay_type==8">确认收货
</view> </view>
<view class='bnt b-color' @tap='confirmOrderb(orderInfo)' v-else>确认收货 <view class='bnt b-color' @tap='confirmOrderb(orderInfo)' v-else>确认收货
</view> </view>

View File

@ -1,9 +1,9 @@
<template> <template>
<!-- #ifdef MP --> <!-- #ifdef MP -->
<view :style="viewColor" > <view :style="viewColor" style="padding-top: 180rpx;">
<!-- #endif --> <!-- #endif -->
<!-- #ifdef APP || H5 --> <!-- #ifdef APP || H5 -->
<view :style="viewColor" > <view :style="viewColor" style="padding-top: 80rpx;">
<!-- #endif --> <!-- #endif -->
<form @submit="formSubmit" report-submit='true'> <form @submit="formSubmit" report-submit='true'>
<view class="release_content"> <view class="release_content">
@ -252,7 +252,7 @@
// #endif // #endif
}, },
onLoad(options) { onLoad(options) {
console.log(options)
// uni.hideTabBar() // uni.hideTabBar()
this.id = options.id; this.id = options.id;
this.order_id = options.order_id; this.order_id = options.order_id;

View File

@ -2,9 +2,11 @@
<view :style="viewColor"> <view :style="viewColor">
<view class='productList'> <view class='productList'>
<view class='search acea-row row-between-wrapper'> <view class='search acea-row row-between-wrapper'>
<!-- #ifdef H5 -->
<view class="back" @click='set_where(1)'> <view class="back" @click='set_where(1)'>
<view class="iconfont icon-xiangzuo"></view> <view class="iconfont icon-xiangzuo"></view>
</view> </view>
<!-- #endif -->
<view class='input acea-row row-between-wrapper'><text class='iconfont icon-sousuo'></text> <view class='input acea-row row-between-wrapper'><text class='iconfont icon-sousuo'></text>
<input placeholder='搜索商品名称' placeholder-class='placeholder' confirm-type='search' name="search" :value='where.keyword' <input placeholder='搜索商品名称' placeholder-class='placeholder' confirm-type='search' name="search" :value='where.keyword'
@confirm="searchSubmit"></input> @confirm="searchSubmit"></input>

View File

@ -1,4 +1,5 @@
<template> <template>
<view class="Circle_friends"> <view class="Circle_friends">
<view class="circle_friends_wrapper"> <view class="circle_friends_wrapper">
<zbpSwiper :isSelectPlace="true" @selectPlce="selectPlce" :location_Arr="locationArr"></zbpSwiper> <zbpSwiper :isSelectPlace="true" @selectPlce="selectPlce" :location_Arr="locationArr"></zbpSwiper>
@ -99,11 +100,11 @@
list: [], list: [],
tabsActive: 0 tabsActive: 0
}, },
town: '', town: '', street_id: '',
emptyShow: false, emptyShow: false,
articleList: [], articleList: [],
recoList: [], recoList: [],
street_id: '',
bgData: [{ pic: '' }, { pic: '' }], bgData: [{ pic: '' }, { pic: '' }],
store_id: '', store_id: '',
locationArr: ({}), locationArr: ({}),

View File

@ -173,7 +173,6 @@
<uni-popup ref="associated" type="bottom"> <uni-popup ref="associated" type="bottom">
<associated @close="close" @getProduct="getProduct" :checkedObj="productList"></associated> <associated @close="close" @getProduct="getProduct" :checkedObj="productList"></associated>
</uni-popup> </uni-popup>
<authorize @onLoadFun="onLoadFun" :isAuto="isAuto" :isShowAuth="isShowAuth" @authColse="authColse"> <authorize @onLoadFun="onLoadFun" :isAuto="isAuto" :isShowAuth="isShowAuth" @authColse="authColse">
</authorize> </authorize>
@ -365,8 +364,8 @@
} }
this.getProduct(res.data.resale) this.getProduct(res.data.resale)
if(res.data.video_link){ if (res.data.video_link) {
this.tabActive=2 this.tabActive = 2
} }
} }
}) })
@ -655,6 +654,9 @@
if (!value.content) return that.$util.Tips({ if (!value.content) return that.$util.Tips({
title: '请添加商品描述' title: '请添加商品描述'
}); });
if (!value.product_info[0].deliver_method) return that.$util.Tips({
title: '请选择配送方式'
});
if (that.tabActive == 2 && !value.video_link) { if (that.tabActive == 2 && !value.video_link) {
return that.$util.Tips({ return that.$util.Tips({
title: '请添加话题视频' title: '请添加话题视频'
@ -681,10 +683,10 @@
is_type: 3, is_type: 3,
product_info: [] product_info: []
} }
uni.navigateTo({
uni.redirectTo({
url: '/pages/releaseManagement/index?key=' + 2 url: '/pages/releaseManagement/index?key=' + 2
}) })
} else { } else {
that.$util.Tips({ that.$util.Tips({
title: res.messge, title: res.messge,
@ -712,7 +714,7 @@
is_type: 3, is_type: 3,
product_info: [] product_info: []
} }
uni.navigateTo({ uni.redirectTo({
url: '/pages/releaseManagement/index?key=' + 2 url: '/pages/releaseManagement/index?key=' + 2
}) })

View File

@ -262,13 +262,13 @@
<view class='bnt b-color' @tap='confirmOrder(item,index)'>取件码</view> <view class='bnt b-color' @tap='confirmOrder(item,index)'>取件码</view>
</block> </block>
<block v-if="item.status == 2"> <block v-if="item.status == 2">
<!--
<navigator v-if="community_status == 1 && !item.community_id" <navigator v-if="community_status == 1 && !item.community_id"
:url="'/pages/plantGrass/plant_release/index?order_id='+item.order_id+'&type='+1" :url="'/pages/plantGrass/plant_release/index?order_id='+item.order_id+'&type='+1"
class='bnt colorBnt' hover-class="none"> class='bnt colorBnt' hover-class="none">
<text class="iconfont icon-fabu"></text> <text class="iconfont icon-fabu"></text>
发布种草 发布种草
</navigator> </navigator> -->
<view class='bnt b-color' @click='goOrderDetails_Evaluation(item.order_id)'>去评价 <view class='bnt b-color' @click='goOrderDetails_Evaluation(item.order_id)'>去评价
</view> </view>
</block> </block>

View File

@ -21,7 +21,7 @@
<view class='nav acea-row row-around'> <view class='nav acea-row row-around'>
<view class='item' :class='orderStatus==-1 ? "on": ""' @click="statusClick(-1)"> <view class='item' :class='orderStatus==-1 ? "on": ""' @click="statusClick(-1)">
<view>全部</view> <view>全部</view>
<view class='num'>{{orderData.orderCount || 0}}</view> <view class='num'>{{orderData.orderCount+len || 0}}</view>
</view> </view>
<view class='item' :class='orderStatus==1? "on": ""' @click="statusClick(1)"> <view class='item' :class='orderStatus==1? "on": ""' @click="statusClick(1)">
<view>待付款</view> <view>待付款</view>
@ -170,6 +170,7 @@
<!-- <text v-else>待发货</text> --> <!-- <text v-else>待发货</text> -->
</view> </view>
<view v-if="item.order_status == 2 && item.pay_type !=3" class='t-color'>待发货</view> <view v-if="item.order_status == 2 && item.pay_type !=3" class='t-color'>待发货</view>
<view v-if="item.order_status == 1 && item.pay_type==3" class='t-color'>待付款</view> <view v-if="item.order_status == 1 && item.pay_type==3" class='t-color'>待付款</view>
<view v-if="item.order_status == 3" class='t-color'>待收货</view> <view v-if="item.order_status == 3" class='t-color'>待收货</view>
@ -270,12 +271,19 @@
</view> </view>
<view class='bnt b-color' v-else @tap='confirmOrdera(item,index)'>确认收货</view> <view class='bnt b-color' v-else @tap='confirmOrdera(item,index)'>确认收货</view>
</block> </block>
<block v-if="item.status == 2">
<block v-if="item.status == 2 ">
<!-- <navigator v-if="community_status == 1 && !item.community_id" :url="'/pages/plantGrass/plant_release/index?order_id='+item.order_id" class='bnt colorBnt' hover-class="none"> <!-- <navigator v-if="community_status == 1 && !item.community_id" :url="'/pages/plantGrass/plant_release/index?order_id='+item.order_id" class='bnt colorBnt' hover-class="none">
<text class="iconfont icon-fabu"></text> <text class="iconfont icon-fabu"></text>
发布种草 发布种草
</navigator> --> </navigator> -->
<view class='bnt b-color' @click='goOrderDetails_Evaluation(item.order_id)'>去评价 <view class='bnt b-color' v-if="item.order_status==8" @click.stop='goPay(item.pay_price,item.group_order_id)'>
去结算
</view>
<view v-else class='bnt b-color' @click='goOrderDetails_Evaluation(item.order_id)'>
去评价
</view> </view>
</block> </block>
<block v-if="item.status == 3"> <block v-if="item.status == 3">
@ -422,7 +430,7 @@
invoice: false, invoice: false,
add: false, add: false,
}, },
len:0 len: 0
}; };
}, },
computed: { computed: {

View File

@ -260,12 +260,12 @@
<view class='bnt b-color' @tap='confirmOrder(item,index)'>确认收货</view> <view class='bnt b-color' @tap='confirmOrder(item,index)'>确认收货</view>
</block> </block>
<block v-if="item.status == 2"> <block v-if="item.status == 2">
<navigator v-if="community_status == 1 && !item.community_id" <!-- <navigator v-if="community_status == 1 && !item.community_id"
:url="'/pages/plantGrass/plant_release/index?order_id='+item.order_id+'&type='+1" :url="'/pages/plantGrass/plant_release/index?order_id='+item.order_id+'&type='+1"
class='bnt colorBnt' hover-class="none"> class='bnt colorBnt' hover-class="none">
<text class="iconfont icon-fabu"></text> <text class="iconfont icon-fabu"></text>
发布种草 发布种草
</navigator> </navigator> -->
<view class='bnt b-color' @click='goOrderDetails_Evaluation(item.order_id)'>去评价 <view class='bnt b-color' @click='goOrderDetails_Evaluation(item.order_id)'>去评价
</view> </view>
</block> </block>
@ -273,12 +273,12 @@
<view class='bnt b-color' @click='goOrderDetails(item.order_id)' <view class='bnt b-color' @click='goOrderDetails(item.order_id)'
v-if="item.activity_type == 2 || item.activity_type == 3 || item.activity_type == 10"> v-if="item.activity_type == 2 || item.activity_type == 3 || item.activity_type == 10">
查看详情</view> 查看详情</view>
<navigator v-if="community_status == 1 && !item.community_id" <!-- <navigator v-if="community_status == 1 && !item.community_id"
:url="'/pages/plantGrass/plant_release/index?order_id='+item.order_id+'&type='+1" :url="'/pages/plantGrass/plant_release/index?order_id='+item.order_id+'&type='+1"
class='bnt colorBnt' hover-class="none"> class='bnt colorBnt' hover-class="none">
<text class="iconfont icon-fabu"></text> <text class="iconfont icon-fabu"></text>
发布种草 发布种草
</navigator> </navigator> -->
<view class='bnt b-color' @click='goOrderDetails(item.order_id)' v-else>再次购买</view> <view class='bnt b-color' @click='goOrderDetails(item.order_id)' v-else>再次购买</view>
</block> </block>
</view> </view>

View File

@ -198,18 +198,18 @@
<view class='bnt b-color' @tap='confirmOrder(item,index)'>确认收货</view> <view class='bnt b-color' @tap='confirmOrder(item,index)'>确认收货</view>
</block> </block>
<block v-if="item.status == 2"> <block v-if="item.status == 2">
<navigator v-if="community_status == 1 && !item.community_id" :url="'/pages/plantGrass/plant_release/index?order_id='+item.order_id+'&type='+1" class='bnt colorBnt' hover-class="none"> <!-- <navigator v-if="community_status == 1 && !item.community_id" :url="'/pages/plantGrass/plant_release/index?order_id='+item.order_id+'&type='+1" class='bnt colorBnt' hover-class="none">
<text class="iconfont icon-fabu"></text> <text class="iconfont icon-fabu"></text>
发布种草 发布种草
</navigator> </navigator> -->
<view class='bnt b-color' @click='goOrderDetails_Evaluation(item.order_id)'>去评价</view> <view class='bnt b-color' @click='goOrderDetails_Evaluation(item.order_id)'>去评价</view>
</block> </block>
<block v-if="item.status == 3"> <block v-if="item.status == 3">
<view class='bnt b-color' @click='goOrderDetails(item.order_id)' v-if="item.activity_type == 2 || item.activity_type == 3 || item.activity_type == 10">查看详情</view> <view class='bnt b-color' @click='goOrderDetails(item.order_id)' v-if="item.activity_type == 2 || item.activity_type == 3 || item.activity_type == 10">查看详情</view>
<navigator v-if="community_status == 1 && !item.community_id" :url="'/pages/plantGrass/plant_release/index?order_id='+item.order_id+'&type='+1" class='bnt colorBnt' hover-class="none"> <!-- <navigator v-if="community_status == 1 && !item.community_id" :url="'/pages/plantGrass/plant_release/index?order_id='+item.order_id+'&type='+1" class='bnt colorBnt' hover-class="none">
<text class="iconfont icon-fabu"></text> <text class="iconfont icon-fabu"></text>
发布种草 发布种草
</navigator> </navigator> -->
<view class='bnt b-color' @click='goOrderDetails(item.order_id)' v-else>再次购买</view> <view class='bnt b-color' @click='goOrderDetails(item.order_id)' v-else>再次购买</view>
</block> </block>
</view> </view>

View File

@ -5,8 +5,8 @@
<view class='list'> <view class='list'>
<view class='item acea-row row-between-wrapper'> <view class='item acea-row row-between-wrapper'>
<view class='name'>姓名</view> <view class='name'>姓名</view>
<input type='text' class="list_nput" placeholder='请输入姓名' name='real_name' <input type='text' placeholder='请输入姓名' name='real_name' :value="userAddress.real_name"
:value="userAddress.real_name" placeholder-class='placeholder'></input> placeholder-class='placeholder'></input>
</view> </view>
<view class='item acea-row row-between-wrapper'> <view class='item acea-row row-between-wrapper'>
<view class='name'>联系电话</view> <view class='name'>联系电话</view>
@ -19,7 +19,7 @@
<view class="region_count" @click="changeRegion"> <view class="region_count" @click="changeRegion">
<text v-if="!addressInfo.length" style="color:#cdcdcd;">请选择地区</text> <text v-if="!addressInfo.length" style="color:#cdcdcd;">请选择地区</text>
<text v-else>{{addressText}}</text> <text v-else>{{addressText}}</text>
<text class="iconfont icon-xiangyou"></text>
</view> </view>
</view> </view>
@ -30,21 +30,20 @@
<view class="region_count" @click="changevillage"> <view class="region_count" @click="changevillage">
<text v-if="!villageInfo.length" style="color:#cdcdcd;">请选择村队</text> <text v-if="!villageInfo.length" style="color:#cdcdcd;">请选择村队</text>
<text v-else>{{villageText}}</text> <text v-else>{{villageText}}</text>
<text class="iconfont icon-xiangyou"></text>
</view> </view>
</view> </view>
</view> </view>
<view class='item acea-row row-between-wrapper'> <view class='item acea-row row-between-wrapper'>
<view class='name'>详细地址</view> <view class='name'>详细地址</view>
<!-- <input type='text' class="location-input" placeholder='请填写具体地址' name='detail' <input type='text' class="location-input" placeholder='请填写具体地址' name='detail'
placeholder-class='placeholder' v-model="userAddress.detail"></input> --> placeholder-class='placeholder' v-model="userAddress.detail"></input>
<textarea class="location-input" placeholder='请填写具体地址' name='detail' <!--<view class="location" @click="selfLocation">
placeholder-class='placeholder' v-model="userAddress.detail" /> <text class="iconfont icon-chakanditu"></text>
<br>
<view class="location" @click="selfLocation"> 定位
<image src="@/static/images/loction.png" mode=""></image> </view> -->
</view>
</view> </view>
</view> </view>
@ -54,7 +53,7 @@
</checkbox-group> </checkbox-group>
</view> </view>
<button class='keepBnt' form-type="submit">保存</button> <button class='keepBnt' form-type="submit">立即保存</button>
<!-- #ifdef MP --> <!-- #ifdef MP -->
<view class="wechatAddress" v-if="!address_id" @click="getWxAddress">导入微信地址</view> <view class="wechatAddress" v-if="!address_id" @click="getWxAddress">导入微信地址</view>
<!-- #endif --> <!-- #endif -->
@ -64,11 +63,11 @@
<!-- #endif --> <!-- #endif -->
</view> </view>
</form> </form>
<areaWindow ref="areaWindow" :display="display" :address="addressInfo" @submit="OnChangeAddress"
@changeClose="changeClose"></areaWindow>
<villageTeam ref="villageTeam" :display="display_one" :address="villageInfo" :villageaddress="list"
@submit="OnChangevAddress" @changeClose="changevClose"></villageTeam>
<areaWindow ref='areaChoose' @areaComplete='areaComplete' :address='region'></areaWindow>
<!-- <villageTeam ref="villageTeam" :display="display_one" :address="villageInfo" :villageaddress="list"
@submit="OnChangevAddress" @changeClose="changevClose"></villageTeam> -->
<villageTeam ref='villageTeam' @villageComplete='OnChangevAddress' :address="villageInfo"></villageTeam>
<authorize @onLoadFun="onLoadFun" :isAuto="isAuto" :isShowAuth="isShowAuth" @authColse="authColse"></authorize> <authorize @onLoadFun="onLoadFun" :isAuto="isAuto" :isShowAuth="isShowAuth" @authColse="authColse"></authorize>
</view> </view>
</template> </template>
@ -115,7 +114,7 @@
userAddress: { userAddress: {
is_default: false is_default: false
}, // }, //
region: [], region: ['省', '市', '区'],
valueRegion: [0, 0, 0], valueRegion: [0, 0, 0],
isAuto: false, // isAuto: false, //
isShowAuth: false, // isShowAuth: false, //
@ -158,16 +157,13 @@
} }
}, },
methods: { methods: {
areaComplete(address) {
this.addressInfo = address
},
OnChangeAddress(address) { OnChangeAddress(address) {
this.addressInfo = address; this.addressInfo = address;
this.list = address this.list = address
}, },
OnChangevAddress(address) { OnChangevAddress(address) {
this.villageInfo = address; this.villageInfo = address;
console.log(this.villageInfo)
}, },
// //
getCityList: function() { getCityList: function() {
@ -177,12 +173,10 @@
}) })
}, },
changeRegion() { changeRegion() {
// this.display = true; this.display = true;
this.$refs.areaChoose.show()
}, },
changevillage() { changevillage() {
// this.display_one = true; this.display_one = true;
this.$refs.villageTeam.show()
}, },
// //
changeClose: function() { changeClose: function() {
@ -210,11 +204,9 @@
if (!this.address_id) return false; if (!this.address_id) return false;
let that = this; let that = this;
getAddressDetail(this.address_id).then(res => { getAddressDetail(this.address_id).then(res => {
this.region = [res.data.province, res.data.city, res.data.district, res.data.street, res let region = [res.data.province, res.data.city, res.data.district, res.data.street, res.data.village];
.data.village
];
that.$set(that, 'userAddress', res.data); that.$set(that, 'userAddress', res.data);
// that.$set(that, 'region', region); that.$set(that, 'region', region);
that.city_id = res.data.city_id that.city_id = res.data.city_id
that.addressInfo = res.data.areas that.addressInfo = res.data.areas
that.villageInfo = [res.data.brigade] that.villageInfo = [res.data.brigade]
@ -364,7 +356,7 @@
value.address_id = that.address_id; value.address_id = that.address_id;
value.is_default = that.userAddress.is_default ? 1 : 0; value.is_default = that.userAddress.is_default ? 1 : 0;
value.area = that.addressInfo; value.area = that.addressInfo;
value.brigade = that.villageInfo[0] value.brigade=that.villageInfo[0]
uni.showLoading({ uni.showLoading({
title: '保存中', title: '保存中',
@ -434,24 +426,20 @@
.addAddress .list .item { .addAddress .list .item {
padding: 30rpx; padding: 30rpx;
border-top: 1px solid #eee;
position: relative; position: relative;
} }
.addAddress .list .item .location { .addAddress .list .item .location {
position: absolute; position: absolute;
right: 30rpx;
top: 15rpx;
text-align: center;
font-size: 20rpx;
right: 40rpx; .iconfont {
top: 50rpx; color: var(--view-theme);
width: 58rpx;
height: 58rpx;
image {
width: 100%;
height: 100%;
} }
} }
.addAddress .list .item .name { .addAddress .list .item .name {
@ -465,46 +453,24 @@
margin-left: 20rpx; margin-left: 20rpx;
} }
.addAddress .list .item input,
{
box-sizing: border-box;
padding-left: 28rpx;
width: 491rpx;
height: 84rpx;
background: #F4F7FE;
border-radius: 21rpx 21rpx 21rpx 21rpx;
opacity: 1;
font-size: 30rpx;
font-family: PingFang SC-Medium, PingFang SC;
font-weight: 500;
color: #333333;
}
.addAddress .list .item input, .addAddress .list .item input,
.region .region_count { .region .region_count {
padding-left: 28rpx; width: 475rpx;
width: 491rpx;
padding: 28rpx 21rpx;
background: #F4F7FE;
border-radius: 21rpx 21rpx 21rpx 21rpx;
opacity: 1;
font-size: 30rpx; font-size: 30rpx;
font-family: PingFang SC-Medium, PingFang SC; box-sizing: border-box;
font-weight: 500;
color: #333333;
} }
.region .region_count {
height: 42rpx;
line-height: 42rpx;
.icon-xiangyou {
float: right;
}
}
.addAddress .list .location-input { .addAddress .list .location-input {
width: 491rpx; padding-right: 70rpx;
height: 147rpx !important;
padding: 28rpx 21rpx;
white-space: normal !important;
background: #F4F7FE;
border-radius: 21rpx 21rpx 21rpx 21rpx;
} }
.addAddress .list .item .placeholder { .addAddress .list .item .placeholder {
@ -544,7 +510,7 @@
margin: 50rpx auto; margin: 50rpx auto;
font-size: 32rpx; font-size: 32rpx;
color: #fff; color: #fff;
background: linear-gradient(270deg, #6DD5FA 0%, #3274F9 100%); background-color: var(--view-theme);
} }
.addAddress .wechatAddress { .addAddress .wechatAddress {

View File

@ -7,31 +7,23 @@
<radio-group class="radio-group" @change="radioChange" v-if="addressList.length"> <radio-group class="radio-group" @change="radioChange" v-if="addressList.length">
<view class='item' v-for="(item,index) in addressList" :key="index"> <view class='item' v-for="(item,index) in addressList" :key="index">
<view class='address' @click='goOrder(item.address_id)'> <view class='address' @click='goOrder(item.address_id)'>
<view class='consignee'>{{item.real_name}}<text class='phone'>{{item.phone}}</text></view> <view class='consignee'>收货人{{item.real_name}}<text class='phone'>{{item.phone}}</text></view>
<view> <view>收货地址{{item.province || ''}}{{item.city || ''}}{{item.district || ''}}{{item.street || ''}}{{item.detail || ''}}</view>
{{item.province || ''}}{{item.city || ''}}{{item.district || ''}}{{item.street || ''}}{{item.brigade|| ''}}{{item.detail || ''}}
</view>
</view> </view>
<view class='operation acea-row row-between-wrapper'> <view class='operation acea-row row-between-wrapper'>
<!-- #ifndef MP --> <!-- #ifndef MP -->
<radio class="radio" :value="index.toString()" :checked="item.is_default ? true : false"> <radio class="radio" :value="index.toString()" :checked="item.is_default ? true : false">
<text class="is_default" v-if="item.is_default">已设置为默认</text> <text>设为默认</text>
<text v-else>设置为默认</text>
</radio> </radio>
<!-- #endif --> <!-- #endif -->
<!-- #ifdef MP --> <!-- #ifdef MP -->
<radio class="radio" :value="index" :checked="item.is_default ? true : false"> <radio class="radio" :value="index" :checked="item.is_default ? true : false">
<text>为默认</text> <text>为默认</text>
</radio> </radio>
<!-- #endif --> <!-- #endif -->
<view class='acea-row row-middle'> <view class='acea-row row-middle'>
<view @click='editAddress(item.address_id)'>编辑 <view @click='editAddress(item.address_id)'><text class='iconfont icon-bianji'></text>编辑</view>
</view> <view @click='delAddress(index)'><text class='iconfont icon-shanchu'></text>删除</view>
<view class="row-middle-solid">
</view>
<view @click='delAddress(index)'>删除</view>
</view> </view>
</view> </view>
</view> </view>
@ -46,7 +38,7 @@
<view>暂无地址</view> <view>暂无地址</view>
</view> </view>
<view class='footer acea-row row-between-wrapper'> <view class='footer acea-row row-between-wrapper'>
<view class='addressBnt b-color on' @click='addAddress'>添加新地址</view> <view class='addressBnt b-color on' @click='addAddress'><text class='iconfont icon-tianjiadizhi'></text>添加新地址</view>
</view> </view>
</view> </view>
<authorize @onLoadFun="onLoadFun" :isAuto="isAuto" :isShowAuth="isShowAuth" @authColse="authColse"></authorize> <authorize @onLoadFun="onLoadFun" :isAuto="isAuto" :isShowAuth="isShowAuth" @authColse="authColse"></authorize>
@ -67,9 +59,7 @@
const jweixin = require('@/plugin/jweixin-module/index.js') const jweixin = require('@/plugin/jweixin-module/index.js')
// #endif // #endif
import { import {getWechatConfig} from '@/api/public.js'
getWechatConfig
} from '@/api/public.js'
import { import {
getAddressList, getAddressList,
setAddressDefault, setAddressDefault,
@ -77,13 +67,9 @@
editAddress, editAddress,
postAddress postAddress
} from '@/api/user.js'; } from '@/api/user.js';
import { import { mapGetters } from "vuex";
mapGetters
} from "vuex";
import authorize from '@/components/Authorize'; import authorize from '@/components/Authorize';
import { import { HTTP_REQUEST_URL } from '@/config/app';
HTTP_REQUEST_URL
} from '@/config/app';
export default { export default {
components: { components: {
authorize authorize
@ -101,7 +87,7 @@
limit: 20, limit: 20,
isAuto: false, // isAuto: false, //
isShowAuth: false, // isShowAuth: false, //
wxConfig: {}, wxConfig:{},
domain: HTTP_REQUEST_URL, domain: HTTP_REQUEST_URL,
}; };
}, },
@ -119,8 +105,8 @@
// #endif // #endif
this.getAddressList(true); this.getAddressList(true);
} else { } else {
this.isAuto = true; this.isAuto = true;
this.isShowAuth = true this.isShowAuth = true
} }
}, },
onReady() { onReady() {
@ -161,10 +147,10 @@
// post_code: res.postalCode, // post_code: res.postalCode,
phone: res.telNumber, phone: res.telNumber,
detail: res.detailInfo, detail: res.detailInfo,
province: res.provinceName, province:res.provinceName,
district: res.countyName, district:res.countyName,
city: res.cityName, city:res.cityName,
city_id: '' city_id:''
}).then(res => { }).then(res => {
that.$util.Tips({ that.$util.Tips({
title: "添加成功", title: "添加成功",
@ -179,10 +165,9 @@
}); });
}, },
fail: function(res) { fail: function(res) {
if (res.errMsg == 'chooseAddress:cancel') return that.$util if (res.errMsg == 'chooseAddress:cancel') return that.$util.Tips({
.Tips({ title: '取消选择'
title: '取消选择' });
});
}, },
}) })
}, },
@ -222,7 +207,7 @@
detail: res.detailInfo, detail: res.detailInfo,
post_code: res.postalCode, post_code: res.postalCode,
is_default: 1, is_default: 1,
city_id: "" city_id:""
}) })
.then(() => { .then(() => {
that.$util.Tips({ that.$util.Tips({
@ -309,8 +294,7 @@
this.pinkId = ''; this.pinkId = '';
this.couponId = ''; this.couponId = '';
uni.navigateTo({ uni.navigateTo({
url: '/pages/users/user_address/index?id=' + id + '&cartId=' + cartId + '&pinkId=' + url: '/pages/users/user_address/index?id=' + id + '&cartId=' + cartId + '&pinkId=' + pinkId + '&couponId=' +couponId
pinkId + '&couponId=' + couponId
}) })
}, },
/** /**
@ -363,8 +347,7 @@
this.pinkId = ''; this.pinkId = '';
this.couponId = ''; this.couponId = '';
uni.redirectTo({ uni.redirectTo({
url: '/pages/users/order_confirm/index?is_address=1&cartId=' + cartId + '&addressId=' + url: '/pages/users/order_confirm/index?is_address=1&cartId=' + cartId + '&addressId=' + id + '&pinkId=' +
id + '&pinkId=' +
pinkId + '&couponId=' + couponId pinkId + '&couponId=' + couponId
}) })
} }
@ -379,108 +362,62 @@
<style> <style>
/deep/radio .wx-radio-input.wx-radio-input-checked, /deep/radio .wx-radio-input.wx-radio-input-checked,
/deep/uni-radio .uni-radio-input.uni-radio-input-checked { /deep/uni-radio .uni-radio-input.uni-radio-input-checked {
/* border: 1px solid var(--view-theme) !important; */ border: 1px solid var(--view-theme)!important;
/* background-color: var(--view-theme) !important; */ background-color: var(--view-theme)!important;
} }
.address-management.fff { .address-management.fff {
background-color: #fff; background-color: #fff;
height: 100vh; height: 100vh;
} }
.address-management .line { .address-management .line {
width: 100%; width: 100%;
height: 3rpx; height: 3rpx;
} }
.address-management .line image { .address-management .line image {
width: 100%; width: 100%;
height: 100%; height: 100%;
display: block; display: block;
} }
.address-management .item { .address-management .item {
width: 694rpx; background-color: #fff;
padding: 0 30rpx;
background: #FFFFFF;
box-shadow: 0px 4px 14px 2px rgba(222, 233, 254, 1);
padding: 0 28rpx;
border-radius: 21rpx 21rpx 21rpx 21rpx;
margin: 0 auto;
margin-bottom: 12rpx; margin-bottom: 12rpx;
margin-top: 30rpx;
} }
.address-management .item .address { .address-management .item .address {
padding: 30rpx 0; padding: 30rpx 0;
border-bottom: 1px solid #eee; border-bottom: 1px solid #eee;
font-size: 23rpx; font-size: 28rpx;
font-family: PingFang SC-Regular, PingFang SC; color: #282828;
font-weight: 400;
color: #737373;
} }
.is_default {
color: #3274F9;
}
.address-management .item .address .consignee { .address-management .item .address .consignee {
font-size: 30rpx; font-size: 28rpx;
font-family: PingFang SC-Regular, PingFang SC; font-weight: bold;
font-weight: 500;
color: #333333;
margin-bottom: 8rpx; margin-bottom: 8rpx;
} }
.address-management .item .address .consignee .phone { .address-management .item .address .consignee .phone {
font-size: 26rpx; margin-left: 25rpx;
font-family: PingFang SC-Regular, PingFang SC;
font-weight: 400;
color: #333333;
margin-left: 35rpx;
} }
.address-management .item .operation { .address-management .item .operation {
height: 60rpx; height: 83rpx;
font-size: 23rpx; font-size: 28rpx;
font-family: PingFang SC-Regular, PingFang SC; color: #282828;
font-weight: 400;
color: #737373;
} }
.b-color { .b-color {
background-color: var(--view-theme); background-color: var(--view-theme);
} }
.address-management .item .operation .radio text { .address-management .item .operation .radio text {
margin-left: 13rpx; margin-left: 13rpx;
} }
.address-management .item .operation .iconfont { .address-management .item .operation .iconfont {
color: #2c2c2c; color: #2c2c2c;
font-size: 35rpx; font-size: 35rpx;
vertical-align: -2rpx; vertical-align: -2rpx;
margin-right: 10rpx; margin-right: 10rpx;
} }
.address-management .item .operation .iconfont.icon-shanchu { .address-management .item .operation .iconfont.icon-shanchu {
margin-left: 40rpx; margin-left: 40rpx;
font-size: 38rpx; font-size: 38rpx;
} }
.row-middle-solid {
width: 1px;
height: 24rpx;
background: #3274F9;
margin-left: 16rpx;
margin-right: 16rpx;
margin-top: 3rpx;
}
.address-management .footer { .address-management .footer {
position: fixed; position: fixed;
width: 100%; width: 100%;
@ -492,7 +429,6 @@
padding: 0 30rpx; padding: 0 30rpx;
box-sizing: border-box; box-sizing: border-box;
} }
.address-management .footer .addressBnt { .address-management .footer .addressBnt {
width: 330rpx; width: 330rpx;
height: 76rpx; height: 76rpx;
@ -501,35 +437,28 @@
line-height: 76rpx; line-height: 76rpx;
font-size: 30rpx; font-size: 30rpx;
color: #fff; color: #fff;
background: linear-gradient(270deg, #6DD5FA 0%, #3274F9 100%);
} }
.address-management .footer .addressBnt.on { .address-management .footer .addressBnt.on {
width: 690rpx; width: 690rpx;
margin: 0 auto; margin: 0 auto;
} }
.address-management .footer .addressBnt .iconfont { .address-management .footer .addressBnt .iconfont {
font-size: 35rpx; font-size: 35rpx;
margin-right: 8rpx; margin-right: 8rpx;
vertical-align: -1rpx; vertical-align: -1rpx;
} }
.address-management .footer .addressBnt.wxbnt { .address-management .footer .addressBnt.wxbnt {
background-color: #fe960f; background-color: #fe960f;
} }
.noCommodity{
.noCommodity {
text-align: center; text-align: center;
border-top: none; border-top: none;
margin-top: 15vh; margin-top: 15vh;
} }
.noCommodity .pictrue{
.noCommodity .pictrue {
height: 305rpx; height: 305rpx;
} }
.noCommodity view{
.noCommodity view {
color: #999; color: #999;
} }
</style> </style>

BIN
static/images/adds.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
static/images/weixin.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB