大更新

This commit is contained in:
cc_zbp 2023-05-15 11:04:57 +08:00
parent 42efea0daa
commit c3c9afbe0f
16 changed files with 4209 additions and 2403 deletions

View File

@ -133,19 +133,21 @@
collect: [], collect: [],
bought: [], bought: [],
browse: [], browse: [],
checkedArr: this.checkedObj, checkedArr: [],
}; };
}, },
watch: { watch: {
checkedObj: { checkedObj: {
handler(n) { handler(n) {
this.checkedArr = n this.checkedArr = n
console.log('watch', this.checkedArr);
}, },
deep: true deep: true
} }
}, },
mounted() { mounted() {
this.checkedArr = this.checkedObj this.checkedArr = this.checkedObj
console.log('mounted', this.checkedArr);
this.getBounht(); this.getBounht();
this.getCollect(); this.getCollect();
this.getBrowse(); this.getBrowse();
@ -286,17 +288,20 @@
/*点击选中与否*/ /*点击选中与否*/
goodsCheck(item, index) { goodsCheck(item, index) {
this.$set(item, 'check', !item.check); this.$set(item, 'check', !item.check);
console.log("Arr", this.checkedArr);
if (item.check) { if (item.check) {
this.checkedArr.push(item) this.checkedArr.push(item)
console.log(this.checkedArr) console.log("增加", this.checkedArr)
} else { } else {
console.log("删除前", this.checkedArr);
this.checkedArr.splice(this.checkedArr.findIndex(itemn => ((itemn.spu_id == item.spu_id) || (item.spu_id == ( this.checkedArr.splice(this.checkedArr.findIndex(itemn => ((itemn.spu_id == item.spu_id) || (item.spu_id == (
itemn.spu && itemn.spu.spu_id)))), 1) itemn.spu && itemn.spu.spu_id)))), 1)
console.log("删除后", this.checkedArr);
} }
}, },
/*确定提交*/ /*确定提交*/
submit() { submit() {
console.log('提交', this.checkedArr);
this.$emit('getProduct', this.checkedArr); this.$emit('getProduct', this.checkedArr);
}, },
} }

219
components/zbpSwiper.vue Normal file
View File

@ -0,0 +1,219 @@
<template>
<view class="zbp-head-wrapper">
<view class="color-lump"></view>
<view class="bg-img">
<img :src="bgColor" alt="">
</view>
<view class="site-box flex_a_c_j_sb">
<view class="place_wrapper flex_a_c">
<view class="iconfont icon-weizhi"></view>
<view class="town_name">{{street}}</view>
</view>
<navigator url="/pages/chat/customer_list/index?type=0" hover-class="none">
<view class="iconfont icon-xiaoxi" style="color:#fff;"></view>
</navigator>
</view>
<!-- 搜索栏 -->
<navigator url="/pages/columnGoods/goods_search/index" hover-class="none" class="search_content flex_a_c_j_sb">
<view class="flex_a_c">
<view class="iconfont icon-sousuo"></view>
<input type="text" v-model="keyword" placeholder="搜索产品或店铺">
</view>
<button class="search_btn">搜索</button>
</navigator>
<!-- 轮播图 -->
<view class="supply_chains-head">
<swiper class="swiper l_center" @change="swiperChange" :indicator-dots="swiper.indicatorDots"
:autoplay="swiper.autoplay" :interval="swiper.interval" :duration="swiper.duration"
indicator-active-color="#fff">
<block v-for="(item,i) in swiper['url']" :key="i">
<swiper-item class="swi_item">
<u--image radius="15" :showLoading="true" :src="item.img" width="694.74rpx" height="242.11rpx"
mode="aspectFill">
</u--image>
</swiper-item>
</block>
</swiper>
</view>
</view>
</template>
<script>
import { getIndexData, getDiy } from '@/api/api.js'
import { mapGetters } from 'vuex'
export default {
data() {
return {
keyword: '',
street: '',
bgColor: '',
swiper: {
url: [{
img: ''
}],
indicatorDots: true, //
vertical: false, //
autoplay: true, //
interval: 2000, //
duration: 400 //
},
}
},
computed: mapGetters(['location']),
watch: {},
created() {
const loca = JSON.parse(this.location)
this.street = loca.address_component.street
this.getBanner()
},
methods: {
swiperChange(e) {
let { current, source } = e.detail;
if (source === 'autoplay' || source === 'touch') {
this.bgColor = this.swiper.url[e.detail.current]['img']
}
},
async getBanner() {
this.swiper.url = [{
img: 'https://lihai001.oss-cn-chengdu.aliyuncs.com/def/db8c4202304281456295061.png'
},
{
img: 'https://lihai001.oss-cn-chengdu.aliyuncs.com/def/dbefb202304281456319848.png'
},
{
img: 'https://lihai001.oss-cn-chengdu.aliyuncs.com/def/2219c202304281456309025.png'
},
{
img: 'https://lihai001.oss-cn-chengdu.aliyuncs.com/def/b4f86202304281456307136.png'
},
{
img: 'https://lihai001.oss-cn-chengdu.aliyuncs.com/def/3b6ae202304281456327858.png'
}
]
// const { data } = await getDiy({ id: 0 })
// if (data.value['1683638943100000']) {
// this.swiper.url = data.value['1683638943100000'].swiperConfig.list
// } else {
// this.swiper.url = data.value['1683875164005000'].swiperConfig.list
// }
this.bgColor = this.swiper.url[0].img
},
}
}
</script>
<style lang="scss">
.zbp-head-wrapper {
position: relative;
padding-top: 78.95rpx;
overflow: hidden;
.color-lump {
z-index: 1;
position: absolute;
bottom: -86px;
left: 50%;
transform: translate(-50%, 0);
width: 102%;
height: 133px;
border-radius: 30px 30px 0 0;
background-color: #fff;
}
.bg-img {
position: absolute;
width: 100%;
height: 100%;
top: 0;
/* #ifdef MP || APP-PLUS */
z-index: -1;
/* #endif */
/* #ifdef H5 */
z-index: 0;
/* #endif */
z-index: 0;
filter: blur(0);
overflow: hidden;
img {
width: 100%;
height: 100%;
filter: blur(30rpx);
transform: scale(1.5);
}
}
.site-box {
margin: 0 auto;
width: 694.74rpx;
height: 66.67rpx;
margin-bottom: 26.32rpx;
position: relative;
//
.place_wrapper {
color: #fff;
margin-right: 24.56rpx;
font-size: 31.58rpx;
.town_name {
margin-left: 10.53rpx;
}
}
.iconfont {
font-size: 35.09rpx;
}
}
.my-main {
transition: background-color .5s ease;
}
.search_content {
margin: 0 auto;
width: 694.74rpx;
height: 61.4rpx;
padding: 2px 2px 2px 21.05rpx;
border-radius: 100px;
background: #fff;
margin-bottom: 17.54rpx;
position: relative;
box-sizing: border-box;
.icon-sousuo {
font-size: 26.32rpx;
font-weight: bold;
color: #c8c7c6;
margin-right: 17.54rpx;
}
.search_btn {
color: #fff;
width: 105.26rpx;
height: 52.63rpx;
line-height: 52.63rpx;
background: #f84221;
border-radius: 100px;
font-size: 28.07rpx;
}
}
.supply_chains-head {
margin-bottom: 17.54rpx;
position: relative;
z-index: 2;
.swiper {
width: 694.74rpx;
height: 242.11rpx;
margin: 0 auto;
.swi_item {
width: 100%;
height: 242.11rpx;
}
}
}
}
</style>

View File

@ -1180,6 +1180,7 @@
//#endif //#endif
"style": { "style": {
"navigationBarTitleText": "社区短视频", "navigationBarTitleText": "社区短视频",
"navigationStyle": "custom",
"app-plus": { "app-plus": {
"titleNView": false, "titleNView": false,
"bounce": "none" "bounce": "none"
@ -1295,7 +1296,7 @@
"pagePath": "pages/plant_release/index", "pagePath": "pages/plant_release/index",
"iconPath": "static/tabbar_icon/d.png", "iconPath": "static/tabbar_icon/d.png",
"selectedIconPath": "static/tabbar_icon/d-a.png", "selectedIconPath": "static/tabbar_icon/d-a.png",
"text": "逛逛" "text": "发布"
}, },
{ {
"pagePath": "pages/supply_chains/supply_chains", "pagePath": "pages/supply_chains/supply_chains",

View File

@ -1,16 +1,9 @@
<template> <template>
<view class="gather"> <view class="gather">
<view class="supply_chains-head"> <zbpSwiper></zbpSwiper>
<swiper class="swiper l_center" :indicator-dots="swiper.indicatorDots" :autoplay="swiper.autoplay" <u-empty :show="jurisdiction" marginTop="260" mode="permission" :text="emptyText"
:interval="swiper.interval" :duration="swiper.duration" indicator-active-color="#fff"> icon="http://cdn.uviewui.com/uview/empty/permission.png"></u-empty>
<block v-for="(item,i) in swiper['url']" :key="i"> <block v-if="isLogin">
<swiper-item class="swi_item">
<u--image :showLoading="true" :src="item.img" width="750rpx" height="500rpx" mode="aspectFill">
</u--image>
</swiper-item>
</block>
</swiper>
</view>
<view class="special_work com" v-if="userInfoData.mer_info.type_id === 12"> <view class="special_work com" v-if="userInfoData.mer_info.type_id === 12">
<!-- <view class="special_work com" v-if="true"> --> <!-- <view class="special_work com" v-if="true"> -->
<view class="title">市级供应链</view> <view class="title">市级供应链</view>
@ -163,8 +156,8 @@
</view> </view>
</view> </view>
<view class="" v-if="userInfoData.mer_info">暂无您的工作台</view>
</view> </view>
</block>
<!-- <m-tabbar native> <!-- <m-tabbar native>
<template v-slot:tabbar_index_2> <template v-slot:tabbar_index_2>
<view class="custom_style"> <view class="custom_style">
@ -178,6 +171,8 @@
<script> <script>
var statusBarHeight = uni.getSystemInfoSync().statusBarHeight + 'px'; var statusBarHeight = uni.getSystemInfoSync().statusBarHeight + 'px';
import mTabbar from '@/components/m-tabbar/m-tabbar.vue' import mTabbar from '@/components/m-tabbar/m-tabbar.vue'
import zbpSwiper from '@/components/zbpSwiper'
import { mapState, mapGetters } from 'vuex' import { mapState, mapGetters } from 'vuex'
import { getWorkArticleCount, getSlideAPI } from '@/api/article.js' import { getWorkArticleCount, getSlideAPI } from '@/api/article.js'
import { getStoreList, getUserInfo } from '@/api/user.js' import { getStoreList, getUserInfo } from '@/api/user.js'
@ -186,10 +181,13 @@
import { getDiy } from '@/api/api.js' import { getDiy } from '@/api/api.js'
export default { export default {
components: { components: {
mTabbar mTabbar,
zbpSwiper
}, },
data() { data() {
return { return {
emptyText: '暂无可用应用',
jurisdiction: false, //
product_id: '', product_id: '',
editGoodsCode: '', editGoodsCode: '',
editGoodsName: '', editGoodsName: '',
@ -230,7 +228,7 @@
}; };
}, },
computed: { computed: {
...mapGetters(['userInfo', 'location']) ...mapGetters(['userInfo', 'location', 'isLogin'])
}, },
created() {}, created() {},
onLoad() { onLoad() {
@ -238,11 +236,15 @@
this.getBanner() this.getBanner()
}, },
onShow() { onShow() {
// if (this.isLogin) {
this.emptyText = '暂无可用应用'
} else {
this.emptyText = '请登录'
this.jurisdiction = true
}
this.getUserInfo() this.getUserInfo()
this.group_id = this.userInfo.group_id this.group_id = this.userInfo.group_id
// this.get_count() // this.get_count()
}, },
// //
onPullDownRefresh() { onPullDownRefresh() {
@ -284,7 +286,6 @@
}) })
}, },
navigator(url, t) { navigator(url, t) {
console.log('t', t);
if (this.userInfoData.is_wsxx === 0 && t != '商户设置') return Toast("请完善商户信息") if (this.userInfoData.is_wsxx === 0 && t != '商户设置') return Toast("请完善商户信息")
uni.navigateTo({ uni.navigateTo({
url: url url: url
@ -295,6 +296,9 @@
getUserInfo().then(res => { getUserInfo().then(res => {
that.userInfoData = res.data; that.userInfoData = res.data;
this.mer_id = res.data.service.mer_id this.mer_id = res.data.service.mer_id
if (!res.data.mer_info) {
that.$set(this, 'jurisdiction', true);
}
}); });
}, },
CompanyCertification() { CompanyCertification() {
@ -367,10 +371,7 @@
<style lang="scss" scoped> <style lang="scss" scoped>
.gather { .gather {
padding-bottom: 164.91rpx; padding-bottom: 164.91rpx;
} background: linear-gradient(180deg, #FFFFFF 0%, #F6F6F6 100%);
page {
background-color: #fff;
} }
.top_box { .top_box {
@ -378,23 +379,6 @@
background: linear-gradient(#36A2FF, #fff); background: linear-gradient(#36A2FF, #fff);
} }
//
.supply_chains-head {
margin-bottom: 31.58rpx;
.swiper {
width: 100%;
height: 500rpx;
// margin: 0 auto;
.swi_item {
width: 100%;
height: 500rpx;
// border-radius: 8px;
}
}
}
.work_header { .work_header {
width: 693.93rpx; width: 693.93rpx;
height: 230rpx; height: 230rpx;

View File

@ -1,31 +1,8 @@
<template> <template>
<view class="Circle_friends"> <view class="Circle_friends">
<view class="circle_friends_wrapper"> <view class="circle_friends_wrapper">
<view class="supply_chains-head">
<swiper class="swiper l_center" :indicator-dots="swiper.indicatorDots" :autoplay="swiper.autoplay"
:interval="swiper.interval" :duration="swiper.duration" indicator-active-color="#fff">
<block v-for="(item,i) in swiper['url']" :key="i">
<swiper-item class="swi_item">
<u--image :showLoading="true" :src="item.img" width="750rpx" height="500rpx" mode="aspectFill">
</u--image>
</swiper-item>
</block>
</swiper>
</view>
<view class="search_wrapper flex_a_c"> <zbpSwiper></zbpSwiper>
<view class="place_wrapper flex_a_c" @click.stop="showPicker=true">
<view class="iconfont icon-weizhi"></view>
<view class="town_name">{{street}}</view>
</view>
<navigator url="/pages/plantGrass/plant_search/index" hover-class="none" class="search_content flex_a_c_j_sb">
<view class="flex_a_c">
<view class="iconfont icon-sousuo"></view>
<input type="text" v-model="keyword" placeholder="搜索想看的文章">
</view>
<button class="search_btn">搜索</button>
</navigator>
</view>
<view class="tabs_wrapper"> <view class="tabs_wrapper">
<u-tabs :list="tabsData.list" @click="tabsChange" :activeStyle="tabsData.activeStyle" <u-tabs :list="tabsData.list" @click="tabsChange" :activeStyle="tabsData.activeStyle"
@ -60,9 +37,8 @@
<u-picker :defaultIndex="[0,0]" :show="showPicker" ref="uPicker" :columns="columnData" @confirm="confirm" <u-picker :defaultIndex="[0,0]" :show="showPicker" ref="uPicker" :columns="columnData" @confirm="confirm"
@cancel="showPicker = false" @change="changeHandler" keyName="name"></u-picker> @cancel="showPicker = false" @change="changeHandler" keyName="name"></u-picker>
<view class="bg_color"></view>
<view class="bg_color"></view> <!-- <view class="bg_color"></view> -->
<!-- <m-tabbar native> <!-- <m-tabbar native>
<template v-slot:tabbar_index_2> <template v-slot:tabbar_index_2>
@ -76,6 +52,7 @@
<script> <script>
import mTabbar from '@/components/m-tabbar/m-tabbar.vue' import mTabbar from '@/components/m-tabbar/m-tabbar.vue'
import zbpSwiper from '@/components/zbpSwiper'
import { getSlideAPI } from '@/api/lihai.js' import { getSlideAPI } from '@/api/lihai.js'
import { graphicLstApi, getTopicList, graphicStartApi } from '@/api/community.js' import { graphicLstApi, getTopicList, graphicStartApi } from '@/api/community.js'
import { getIndexData, getDiy } from '@/api/api.js' import { getIndexData, getDiy } from '@/api/api.js'
@ -84,10 +61,12 @@
import { Toast } from '@/libs/uniApi' import { Toast } from '@/libs/uniApi'
export default { export default {
components: { components: {
mTabbar mTabbar,
zbpSwiper
}, },
data() { data() {
return { return {
bgColor: '',
showPicker: false, showPicker: false,
columnData: [], columnData: [],
show: false, show: false,
@ -105,14 +84,14 @@
list: [], list: [],
tabsActive: 0, tabsActive: 0,
activeStyle: { activeStyle: {
color: '#F84221', color: '#fff',
fontWeight: 'bold', fontWeight: 'bold',
borderRadius: '100px', borderRadius: '100px',
backgroundColor: '#fff', backgroundColor: '#F84221',
padding: '15.79rpx 21.05rpx' padding: '15.79rpx 21.05rpx'
}, },
inactiveStyle: { inactiveStyle: {
color: '#fff', color: '#000',
padding: '15.79rpx 21.05rpx', padding: '15.79rpx 21.05rpx',
} }
}, },
@ -138,6 +117,13 @@
}, },
onShow() {}, onShow() {},
methods: { methods: {
//
swiperChange(e) {
let { current, source } = e.detail;
if (source === 'autoplay' || source === 'touch') {
this.bgColor = this.swiper.url[e.detail.current]['img']
}
},
confirm(e) { confirm(e) {
this.where.street_id = e.value[1].code this.where.street_id = e.value[1].code
this.showPicker = false this.showPicker = false
@ -162,9 +148,15 @@
}); });
}, },
gogogo(item) { gogogo(item) {
if (this.tabsData.tabsActive == 1) {
uni.navigateTo({
url: '/pages/short_video/nvueSwiper/index?id=' + item.community_id
})
} else {
uni.navigateTo({ uni.navigateTo({
url: '/pages/plantGrass/plant_detail/index?id=' + item.community_id url: '/pages/plantGrass/plant_detail/index?id=' + item.community_id
}) })
}
}, },
giveStart(item) { giveStart(item) {
let status = item.relevance_id ? 0 : 1 let status = item.relevance_id ? 0 : 1
@ -190,13 +182,18 @@
this.tabsData.list = [{ this.tabsData.list = [{
cate_name: "推荐", cate_name: "推荐",
category_id: 0 category_id: 0
}, ...data] }, { cate_name: "视频", category_id: -1, children: [] }, ...data]
}, },
tabsChange(item) { tabsChange(item) {
this.where.category_id = item.category_id this.where.category_id = item.category_id
this.getGoods() this.getGoods()
this.street_id = item.id this.street_id = item.id
this.tabsData.tabsActive = item.index this.tabsData.tabsActive = item.index
if (item.index == 1) {
uni.navigateTo({
url: '/pages/short_video/nvueSwiper/index?id=' + '136'
})
}
}, },
async getBanner() { async getBanner() {
const { data } = await getDiy({ id: 0 }) const { data } = await getDiy({ id: 0 })
@ -205,6 +202,7 @@
} else { } else {
this.swiper.url = data.value['1683875164005000'].swiperConfig.list this.swiper.url = data.value['1683875164005000'].swiperConfig.list
} }
this.bgColor = this.swiper.url[0].img
}, },
selfLocation() { selfLocation() {
uni.getLocation({ uni.getLocation({
@ -243,12 +241,128 @@
<style lang="scss"> <style lang="scss">
page { page {
background-color: #F5F5F5; // background: linear-gradient(180deg, #FFFFFF 0%, #F6F6F6 100%);
}
//
.head-wrapper {
position: relative;
padding-top: 78.95rpx;
overflow: hidden;
.color-lump {
z-index: 1;
position: absolute;
bottom: -86px;
left: 50%;
transform: translate(-50%, 0);
width: 102%;
height: 133px;
border-radius: 30px 30px 0 0;
background-color: #fff;
}
.bg-img {
position: absolute;
width: 100%;
height: 100%;
top: 0;
/* #ifdef MP || APP-PLUS */
z-index: -1;
/* #endif */
/* #ifdef H5 */
z-index: 0;
/* #endif */
z-index: 0;
filter: blur(0);
overflow: hidden;
img {
width: 100%;
height: 100%;
filter: blur(30rpx);
transform: scale(1.5);
}
}
.site-box {
margin: 0 auto;
width: 694.74rpx;
height: 66.67rpx;
margin-bottom: 26.32rpx;
position: relative;
//
.place_wrapper {
color: #fff;
margin-right: 24.56rpx;
font-size: 31.58rpx;
.town_name {
margin-left: 10.53rpx;
}
}
.iconfont {
font-size: 35.09rpx;
}
}
.my-main {
transition: background-color .5s ease;
}
.search_content {
margin: 0 auto;
width: 694.74rpx;
height: 61.4rpx;
padding: 2px 2px 2px 21.05rpx;
border-radius: 100px;
background: #fff;
margin-bottom: 17.54rpx;
position: relative;
box-sizing: border-box;
.icon-sousuo {
font-size: 26.32rpx;
font-weight: bold;
color: #c8c7c6;
margin-right: 17.54rpx;
}
.search_btn {
color: #fff;
width: 105.26rpx;
height: 52.63rpx;
line-height: 52.63rpx;
background: #f84221;
border-radius: 100px;
font-size: 28.07rpx;
}
}
.supply_chains-head {
margin-bottom: 31.58rpx;
position: relative;
z-index: 2;
.swiper {
width: 694.74rpx;
height: 242.11rpx;
margin: 0 auto;
.swi_item {
width: 100%;
height: 242.11rpx;
}
}
}
} }
.Circle_friends { .Circle_friends {
position: relative; position: relative;
padding: 0 0 87.72rpx 0; padding: 0 0 87.72rpx 0;
background: linear-gradient(180deg, #FFFFFF 0%, #F6F6F6 100%);
} }
.circle_friends_wrapper { .circle_friends_wrapper {
@ -256,20 +370,7 @@
z-index: 2; z-index: 2;
} }
.supply_chains-head {
margin-bottom: 31.58rpx;
.swiper {
width: 100%;
height: 500rpx;
margin: 0 auto;
.swi_item {
width: 100%;
height: 500rpx;
}
}
}
.bg_color { .bg_color {
position: absolute; position: absolute;
@ -287,45 +388,11 @@
margin: 0 auto; margin: 0 auto;
} }
//
.place_wrapper {
color: #fff;
margin-right: 24.56rpx;
font-size: 31.58rpx;
.town_name {
margin-left: 10.53rpx;
}
}
.search_content {
flex: 1;
margin: 0 auto;
width: 694.74rpx;
height: 66.67rpx;
padding: 2px 2px 2px 21.05rpx;
border-radius: 100px;
background-color: #fff;
.icon-sousuo {
font-weight: bold;
color: #f84221;
margin-right: 17.54rpx;
}
.search_btn {
color: #fff;
width: 135.09rpx;
height: 59.65rpx;
line-height: 59.65rpx;
background: #f84221;
border-radius: 100px;
}
}
.tabs_wrapper { .tabs_wrapper {
width: 694.74rpx; width: 694.74rpx;
margin: 38.6rpx auto; margin: 0 auto;
margin-top: 0;
margin-bottom: 21.05rpx;
::v-deep .u-tabs__wrapper__nav__item { ::v-deep .u-tabs__wrapper__nav__item {
padding: 0 !important; padding: 0 !important;
@ -421,7 +488,6 @@
} }
} }
} }
} }
} }
</style> </style>

View File

@ -0,0 +1,119 @@
<template>
<view class='recommend'>
<view class="common-hd">
<view class="title">为你推荐</view>
</view>
<view class='recommendList' :class="indexP?'on':''">
<WaterfallsFlow :wfList='hostProduct' @itemTap="goDetail" :type="0" />
</view>
</view>
</template>
<script>
// +----------------------------------------------------------------------
// | CRMEB [ CRMEB ]
// +----------------------------------------------------------------------
// | Copyright (c) 2016~2021 https://www.crmeb.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed CRMEBCRMEB
// +----------------------------------------------------------------------
// | Author: CRMEB Team <admin@crmeb.com>
// +----------------------------------------------------------------------
import {mapGetters} from "vuex";
import { goShopDetail } from '@/libs/order.js'
import {initiateAssistApi} from '@/api/activity.js';
import {toLogin} from '@/libs/login.js';
import WaterfallsFlow from '@/components/WaterfallsFlow/WaterfallsFlow.vue'
export default {
components:{WaterfallsFlow},
computed: mapGetters(['uid']),
props: {
hostProduct: {
type: Array,
default: function() {
return [];
}
},
indexP:{
type: Boolean,
default: false
},
isLogin:{
type: Boolean,
default: false
}
},
data() {
return {
};
},
mounted() {
},
onPullDownRefresh(){
//
setTimeout(()=>{
const newList = this.hostProduct.reverse();
this.hostProduct = newList;
uni.stopPullDownRefresh();
},500)
},
methods: {
goDetail(item){
goShopDetail(item, this.uid).then(res => {
if (this.isLogin) {
initiateAssistApi(item.activity_id).then(res => {
let id = res.data.product_assist_set_id;
uni.hideLoading();
uni.navigateTo({
url: '/pages/activity/assist_detail/index?id=' + id
});
}).catch((err) => {
uni.showToast({
title: err,
icon: 'none'
})
});
} else {
// #ifdef H5 || APP-PLUS
toLogin();
// #endif
// #ifdef MP
this.$emit('isShowAuth', true);
this.$emit('isAuto', true);
// #endif
}
})
}
}
}
</script>
<style scoped lang="scss">
.common-hd {
display: flex;
align-items: center;
justify-content: center;
height: 118rpx;
.title {
padding: 0 80rpx;
font-size: 34rpx;
color: $theme-color;
font-weight: bold;
background-image: url("~@/static/images/index-title.png");
background-repeat: no-repeat;
background-size: 100% auto;
background-position: left center;
}
}
.recommend .recommendList {
padding: 0 20rpx;
min-height: 100rpx;
}
.recommend .recommendList.on{
padding: 0;
}
/deep/.looming-gray{
border-radius: 16rpx 16rpx 0 0;
}
</style>

View File

@ -0,0 +1,548 @@
<template>
<view class="supplier" :style="{height: winHeight + 'px' }">
<!-- <view class="head-wrapper" :style="'top:'+statusBarHeight">
<view class="head-menu">
<view class='iconfont icon-xiangzuo' @click="returns"></view>
<view class="iconfont icon-shouye4" @click="goHome"></view>
</view>
</view> -->
<view class="header_warpper">
<!-- <u-swiper :list="swiperList" keyName="img" :autoplay="true" height="491.23rpx"></u-swiper> -->
<!-- <view class="head_search flex_a_c">
<view class="search_content flex_a_c_j_sb">
<view class="flex_a_c">
<view class="iconfont icon-sousuo"></view>
<input type="text" v-model="sotreParam.keyword" placeholder="请搜索">
</view>
<button class="search_btn" @click="searchStoreMerchant">搜索</button>
</view>
</view> -->
</view>
<view class="con-box">
<view class="left_classify">
<scroll-view scroll-y="true" style="height: 100%; overflow: hidden;" scroll-with-animation='true'>
<block v-for="(item,index) in merList" :key="item.merchant_category_id">
<view class="clify_item" :class="activeTwo === index ? 'pictch' : ''" @click="classifyClick(item, index)">
{{ item.category_name }}
</view>
</block>
</scroll-view>
</view>
<view class="right_storee">
<scroll-view scroll-y="true" style="height: 100%; overflow: hidden;" scroll-with-animation='true'
@scrolltolower="scrolltolower" class="my-scroll-view">
<image class="banner" :src="src" mode="aspectFill"></image>
<view style="background-color: #fff;width: 100%;">
<view class="tabs_box flex_a_c_j_sb">
<view v-for="(item,index) in tabsList" :key="index" class="flex_a_c" :class="active==index?'active':''">
<view @click="tabsChange(index)">{{item}}</view>
<!-- <view class="iconfont icon-shaixuan" v-if="index==3"></view> -->
</view>
</view>
</view>
<block v-for="(item,index) in storeMerchant" :key="index">
<storeCard :store_item="item" :category="item.category_name" :isDetail="isDetail"></storeCard>
</block>
<u-loadmore :status="status" :loading-text="loadingText" :loadmore-text="loadmoreText"
:nomore-text="nomoreText" />
</scroll-view>
</view>
</view>
<!-- <u-action-sheet :show="show" @close="close" @select="select" :actions="actions" :closeOnClickOverlay="true">
</u-action-sheet>
<rightSlider v-if="rightBox" :status="rightBox" :merList="merList" :storeTypeArr="storeTypeArr" @confirm="confirm"
@close="rightSliderClose"></rightSlider> -->
</view>
</template>
<script>
var statusBarHeight = uni.getSystemInfoSync().statusBarHeight + 'px';
import storeCard from './component/shop_card.vue'
import rightSlider from './component/rightSlider';
import { getDiy } from '@/api/api.js'
import { storeMerchantList, merClassifly, getStoreTypeApi } from '@/api/store.js'
import { storeClassifyDel } from '@/api/product.js'
export default {
components: {
rightSlider,
storeCard
},
data() {
return {
statusBarHeight: statusBarHeight, //
swiperList: [],
activeTwo: 0,
winHeight: 0,
num: '',
status: 'loadmore',
loadingText: '努力加载中',
loadmoreText: '轻轻上拉',
nomoreText: '我也是有底线的~~',
show: false,
actions: [{
name: '选项1',
},
{
name: '选项2',
},
{
name: '选项3',
}, {
name: '选项4',
},
{
name: '选项5',
},
],
src: 'https://cdn.uviewui.com/uview/album/1.jpg',
search: '',
tabsList: ['综合排序', '销量优先', '好评'],
active: 0,
storeMerchant: [],
storeList: {
page: 1,
limit: 10
},
StoreType: [],
rightBox: false,
merList: [], //
storeTypeArr: [], //
sotreParam: {
keyword: '',
page: 1,
limit: 10,
order: 'order', //
category_id: '', //
type_id: '', //
street_id: '' //
},
isDetail: 2
}
},
onLoad(e) {
this.sotreParam.street_id = e.street_id
if (e.type_id) {
this.sotreParam.type_id = e.type_id
}
if (e.isDetail) this.isDetail = e.isDetail
this.getStoreMerchant()
this.getStore()
this.getClassfication()
this.getStoreType()
this.getBanner()
uni.getSystemInfo({
success: (res) => {
this.winHeight = res.windowHeight
this.$set(this, 'winHeight', res.windowHeight)
},
});
},
onShow() {},
methods: {
// 退
returns: function() {
uni.navigateBack()
},
//
goHome() {
uni.switchTab({
url: '/pages/home/index'
});
},
async getBanner() {
const { data } = await getDiy({ id: 0 })
if (data.value['1683638943100000']) {
this.swiperList = data.value['1683638943100000'].swiperConfig.list
} else {
this.swiperList = data.value['1683875164005000'].swiperConfig.list
}
},
classifyClick(item, index) {
this.activeTwo = index
this.storeMerchant = []
this.sotreParam.page = 1
this.sotreParam.category_id = item.merchant_category_id
this.getStoreMerchant();
},
//
getClassfication: function() {
let temp = []
merClassifly()
.then(res => {
temp = res.data.map(item => {
return {
...item,
check: false
}
})
if (this.sotreParam.category_id.length > 0) {
this.sotreParam.category_id.forEach((ids, index) => {
temp.forEach(el => {
if (ids == el.merchant_category_id) {
el.check = true
}
})
})
}
temp.unshift({
category_name: '全部',
merchant_category_id: ''
})
this.merList = temp
})
.catch(res => {
this.$util.Tips({
title: res
});
});
},
//
getStoreType: function() {
let temp = []
getStoreTypeApi()
.then(res => {
temp = res.data.map(item => {
return {
...item,
check: false
}
})
if (this.sotreParam.type_id.length > 0) {
this.sotreParam.type_id.forEach((ids, index) => {
temp.forEach(el => {
if (ids == el.mer_type_id) {
el.check = true
}
})
})
}
this.storeTypeArr = temp
})
.catch(res => {
this.$util.Tips({
title: res
});
});
},
//
confirm(data) {
let arr1 = [],
arr2 = []
if (data.storeTypeArr.length == 0) {
this.sotreParam.type_id = ''
} else {
data.storeTypeArr.forEach(item => {
arr1.push(item.mer_type_id)
})
this.sotreParam.type_id = arr1.toString();
}
if (data.merList.length == 0) {
this.sotreParam.category_id = ''
} else {
data.merList.forEach(item => {
arr2.push(item.merchant_category_id)
})
this.sotreParam.category_id = arr2.toString();
}
this.rightBox = data.status
this.loadend = false;
this.$set(this.sotreParam, 'page', 1)
this.storeList = [];
this.getStoreMerchant();
},
//
rightSliderClose() {
this.rightBox = false
},
//
async getStoreMerchant() {
const res = await storeMerchantList(this.sotreParam)
this.storeMerchant.push(...res.data.list)
console.log(this.storeMerchant);
if (res.data.list.length < 10) this.status = 'nomore'
},
async searchStoreMerchant() {
this.storeMerchant = []
const res = await storeMerchantList(this.sotreParam)
this.storeMerchant = res.data.list
},
navigator(id) {
uni.navigateTo({
url: `/pages/nongKe/supply_chain/merchant?id=${id}`
})
},
//
async getStore() {
const res = await merClassifly()
for (let i = 0; i < res.data.length; i++) {
this.actions[i].name = res.data[i].category_name
this.actions[i].index = res.data[i].merchant_category_id
}
},
tabsChange(i) {
this.active = i
// this.sotreParam.category_id = ''
// this.sotreParam.type_id = ''
this.sotreParam.page = 1
this.storeMerchant = []
if (this.active == 0) {
this.sotreParam.order = ''
this.getStoreMerchant()
}
if (this.active == 1) {
this.sotreParam.order = 'sales'
this.getStoreMerchant()
}
if (this.active == 2) {
this.sotreParam.order = 'rate'
this.getStoreMerchant()
}
//
if (this.active == 3) {
this.status = 'nomore'
this.rightBox = true
// this.sotreParam.order = ''
// this.getStoreMerchant()
}
},
close() {
this.show = false
},
select(e) {
console.log('select', e);
},
scrolltolower() {
if (this.status != 'nomore') {
this.sotreParam.page++
this.getStoreMerchant()
}
}
},
onReachBottom() {
//nomore
if (this.status != 'nomore') {
this.sotreParam.page++
this.getStoreMerchant()
}
},
onPullDownRefresh() {
this.storeMerchant = []
this.getStoreMerchant()
uni.stopPullDownRefresh()
}
}
</script>
<style lang="scss">
.supplier {
display: flex;
flex-direction: column;
width: 100%;
}
.header_warpper {
width: 100%;
}
.head_search {
width: 100%;
background-color: #fff;
height: 108.77rpx;
.search_content {
margin: 0 auto;
width: 694.74rpx;
height: 66.67rpx;
padding: 2px 2px 2px 21.05rpx;
border: 1px solid $uni-theme-color;
border-radius: 100px;
.icon-sousuo {
font-weight: bold;
color: $uni-theme-color;
margin-right: 17.54rpx;
}
.search_btn {
color: #fff;
width: 135.09rpx;
height: 59.65rpx;
line-height: 59.65rpx;
background: $uni-theme-bg-color;
border-radius: 100px;
}
}
}
.con-box {
flex: 1;
display: flex;
overflow: hidden;
margin-top: 28.07rpx;
}
.left_classify {
width: 192.98rpx;
height: 100%;
overflow-y: auto;
overflow-x: hidden;
overflow: hidden;
.clify_item {
width: 192.98rpx;
height: 112.28rpx;
text-align: center;
line-height: 112.28rpx;
}
.pictch {
background: #fff;
font-weight: 700;
position: relative;
&::before {
position: absolute;
left: 0;
top: 0;
content: '';
display: inline-block;
width: 3px;
height: 100%;
background-color: #F84221;
}
}
}
.right_storee {
flex: 1;
width: 557.89rpx;
height: 100%;
overflow-y: auto;
overflow-x: hidden;
overflow: hidden;
padding: 0 12.28rpx;
background-color: #fff;
}
.banner {
width: 100%;
height: 131.58rpx;
border-radius: 5px;
}
.tabs_box {
width: 100%;
margin: 0 auto;
height: 80.7rpx;
border-top: 1px solid #E7E6E4;
background-color: #fff;
padding: 0 21.05rpx;
}
.active {
font-weight: 700;
color: #F84221;
}
.item_cont {
width: 100%;
// height: 147.37rpx;
padding: 17.54rpx 28.07rpx;
background-color: #fff;
margin-top: 28.07rpx;
border-radius: 8px;
.item-left {
.img {
width: 98.25rpx;
height: 98.25rpx;
border-radius: 100px;
}
}
.item-right {
margin-left: 21.05rpx;
.store_name {
margin-bottom: 8.77rpx;
.sales_volume {
font-size: 28.07rpx;
color: #666;
margin-left: 52.63rpx;
}
.name {
flex: 1;
width: 245.61rpx;
font-size: 31.58rpx;
// font-weight: bold;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
}
.msg {
.category_name {
color: $uni-theme-color;
}
.scope {
flex: 1;
width: 350.88rpx;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
&::before {
content: '|';
margin: 0 10.53rpx;
}
}
}
}
}
.head-wrapper {
z-index: 999;
display: flex;
align-items: center;
position: fixed;
left: 30rpx;
top: 0;
/* #ifdef MP */
height: 43px;
/* #endif */
/* #ifdef H5 */
height: 114rpx;
/* #endif */
}
.head-menu {
display: flex;
align-items: center;
height: 54rpx;
width: 140rpx;
background: rgba(0, 0, 0, .25);
border-radius: 27rpx;
.iconfont {
flex: 1;
text-align: center;
color: #fff;
box-sizing: border-box;
&.icon-xiangzuo {
border-right: 1px solid #fff;
}
}
}
</style>

File diff suppressed because it is too large Load Diff

View File

@ -180,7 +180,7 @@
uploadUrl: `${HTTP_REQUEST_URL}/api/upload/video`, uploadUrl: `${HTTP_REQUEST_URL}/api/upload/video`,
tabList: [ tabList: [
{ name: '图文', value: 1, icon: 'icon-tuwen' }, { name: '图文', value: 1, icon: 'icon-tuwen' },
// { name: '', value: 2, icon: 'icon-shipin' }, { name: '视频', value: 2, icon: 'icon-shipin' },
], ],
tabActive: 1, tabActive: 1,
isPlay: false, isPlay: false,
@ -512,9 +512,10 @@
title: res.messge, title: res.messge,
icon: 'success' icon: 'success'
}); });
setTimeout(function() { setTimeout(function() {
if (that.tabActive == 2) { if (that.tabActive == 2) {
uni.navigateTo({ uni.redirectTo({
//#ifdef APP //#ifdef APP
url: '/pages/short_video/appSwiper/index?id=' + res.data.community_id + '&user=1&uid=' + url: '/pages/short_video/appSwiper/index?id=' + res.data.community_id + '&user=1&uid=' +
that.uid that.uid
@ -530,6 +531,20 @@
.tabActive .tabActive
}) })
} }
/**
* 将对象所有值为空
* */
/**
* 将对象所有值为空
* */
that.formData = {
image: [],
content: "",
topic_id: "",
spu_id: [],
video_link: "",
}
that.topicName = {}
}, 1000); }, 1000);
}).catch(err => { }).catch(err => {
return that.$util.Tips({ return that.$util.Tips({
@ -544,7 +559,7 @@
setStorage('addPlant', ''); setStorage('addPlant', '');
setTimeout(function() { setTimeout(function() {
if (that.tabActive == 2) { if (that.tabActive == 2) {
uni.navigateTo({ uni.redirectTo({
//#ifdef APP //#ifdef APP
url: '/pages/short_video/appSwiper/index?id=' + res.data.community_id + '&user=1&uid=' + url: '/pages/short_video/appSwiper/index?id=' + res.data.community_id + '&user=1&uid=' +
that.uid that.uid
@ -560,6 +575,17 @@
.tabActive .tabActive
}) })
} }
/**
* 将对象所有值为空
* */
that.formData = {
image: [],
content: "",
topic_id: "",
spu_id: [],
video_link: "",
}
that.topicName = {}
}, 1000); }, 1000);
}).catch(err => { }).catch(err => {
console.log('aaa', value) console.log('aaa', value)
@ -867,7 +893,7 @@
} }
.release_btn { .release_btn {
margin-top: 160rpx; margin-top: 100rpx;
} }
.video-count { .video-count {

View File

@ -14,19 +14,21 @@
<!-- 头部导航 --> <!-- 头部导航 -->
<!-- 头部导航 --> <!-- 头部导航 -->
<view v-if="!isUser" class="header"> <view v-if="!isUser" class="header">
<!-- #ifdef H5 -->
<view class="tool-bar"> <view class="tool-bar">
<view class='iconfont icon-xiangzuo' @tap='goBack'></view> <view class='iconfont icon-xiangzuo' @tap='goBack'></view>
</view> </view>
<!-- #endif -->
<view class="items" @click.stop="navTap(2)"> <view class="items" @click.stop="navTap(2)">
<text class="tName" :class="currentNav==2?'on':''">关注</text> <text class="tName" :class="currentNav==2?'on':''">关注</text>
</view> </view>
<view class="items" @click.stop="navTap(1)"> <view class="items" @click.stop="navTap(1)">
<text class="tName" :class="currentNav==1?'on':''">推荐</text> <text class="tName" :class="currentNav==1?'on':''">推荐</text>
</view> </view>
<view class="items" @click.stop="navTap(3)">
<text class="tName" :class="currentNav==3?'on':''">列表</text>
</view> </view>
<swiper :style="'width: '+ windowWidth +'px; height: '+ windowHeight +'px;'" :vertical="true" @animationfinish="animationfinish" @change="change" :current="k" :indicator-dots="false"> </view>
<swiper v-show="currentNav !== 3" :style="'width: '+ windowWidth +'px; height: '+ windowHeight +'px;'"
:vertical="true" @animationfinish="animationfinish" @change="change" :current="k" :indicator-dots="false">
<swiper-item v-for="(list,index) in dataList"> <swiper-item v-for="(list,index) in dataList">
<view v-if="max > index"> <view v-if="max > index">
<view> <view>
@ -38,29 +40,16 @@
5.show-loading这里默认去掉播放转圈的标志 5.show-loading这里默认去掉播放转圈的标志
v-if="Math.abs(k-index)<=1" v-if="Math.abs(k-index)<=1"
--> -->
<video <video :id="list.community_id+''+index" :loop="true" :muted="list.isplay"
:id="list.community_id+''+index" :autoplay="index == k && isRoutine" :controls="false" :http-cache="true" :page-gesture="false"
:loop="true" :show-fullscreen-btn="false" :show-loading="false" :show-center-play-btn="false"
:muted="list.isplay" :enable-progress-gesture="false" :src="list.video_link" @ended="ended" @play="play(index)"
:autoplay="index == k && isRoutine" @click="tapVideoHover(list.state,$event)" @waiting="waiting(index)"
:controls="false" :style="'width: '+ windowWidth +'px; height: '+ windowHeight +'px;z-index: -1;'"></video>
:http-cache="true"
:page-gesture="false"
:show-fullscreen-btn="false"
:show-loading="false"
:show-center-play-btn="false"
:enable-progress-gesture="false"
:src="list.video_link"
@ended="ended"
@play="play(index)"
@click="tapVideoHover(list.state,$event)"
@waiting="waiting(index)"
:style="'width: '+ windowWidth +'px; height: '+ windowHeight +'px;z-index: -1;'"
></video>
</view> </view>
<!-- 播放状态pause 的时候就会暂停 --> <!-- 播放状态pause 的时候就会暂停 -->
<view class="videoHover" @click="tapVideoHover(list.state,$event)" :style="'width: '+ windowWidth +'px; height: '+ windowHeight +'px;'"> <view class="videoHover" @click="tapVideoHover(list.state,$event)"
:style="'width: '+ windowWidth +'px; height: '+ windowHeight +'px;'">
<image v-if="list.state=='pause'" class="playState" src="../static/img/index/play.png"></image> <image v-if="list.state=='pause'" class="playState" src="../static/img/index/play.png"></image>
</view> </view>
<!--审核状态--> <!--审核状态-->
@ -74,7 +63,8 @@
<text class="title">正在审核,内容仅自己可见</text> <text class="title">正在审核,内容仅自己可见</text>
</view> </view>
<view class="status_info"> <view class="status_info">
<text class="refusal">{{(list.status == -1 || list.status == -2) ? list.refusal : '发布的内容审核通过后,将在首页展示!'}}</text> <text
class="refusal">{{(list.status == -1 || list.status == -2) ? list.refusal : '发布的内容审核通过后,将在首页展示!'}}</text>
</view> </view>
</view> </view>
<view> <view>
@ -96,7 +86,8 @@
</view> </view>
</view> </view>
<view v-if="list.relevance.length == 1 && k===index" class="product"> <view v-if="list.relevance.length == 1 && k===index" class="product">
<scroll-view scroll-x="true" style="white-space: nowrap; display: flex;" scroll-with-animation show-scrollbar="true"> <scroll-view scroll-x="true" style="white-space: nowrap; display: flex;" scroll-with-animation
show-scrollbar="true">
<view class="product-item" v-for="(goods,idx) in list.relevance" :key="idx" v-if="goods.spu"> <view class="product-item" v-for="(goods,idx) in list.relevance" :key="idx" v-if="goods.spu">
<view v-if="goods.spu" class="item-count acea-row" @click="goDetail(goods.spu)"> <view v-if="goods.spu" class="item-count acea-row" @click="goDetail(goods.spu)">
<view class="picture"> <view class="picture">
@ -114,15 +105,8 @@
</scroll-view> </scroll-view>
</view> </view>
<view v-else-if="list.relevance.length > 1 && k===index" class="product"> <view v-else-if="list.relevance.length > 1 && k===index" class="product">
<swiper <swiper :autoplay="true" :circular="circular" :interval="interval" :duration="duration" :loop="true"
:autoplay="true" next-margin="20rpx" previous-margin="20rpx">
:circular="circular"
:interval="interval"
:duration="duration"
:loop="true"
next-margin="20rpx"
previous-margin="20rpx"
>
<block v-for="(goods,idx) in list.relevance" :key="idx" v-if="goods.spu"> <block v-for="(goods,idx) in list.relevance" :key="idx" v-if="goods.spu">
<swiper-item class="swiper-item"> <swiper-item class="swiper-item">
<view class="swiper-count"> <view class="swiper-count">
@ -143,7 +127,8 @@
</block> </block>
</swiper> </swiper>
</view> </view>
<navigator v-if="list.topic" hover-class="none" class="product_cate" :url="'/pages/plantGrass/plant_search_list/index?id='+list.topic.topic_id"> <navigator v-if="list.topic" hover-class="none" class="product_cate"
:url="'/pages/plantGrass/plant_search_list/index?id='+list.topic.topic_id">
<view> <view>
<text class="icon">#</text><text class="text">{{list.topic.topic_name}}</text> <text class="icon">#</text><text class="text">{{list.topic.topic_name}}</text>
</view> </view>
@ -151,9 +136,12 @@
</view> </view>
<view class="userInfo"> <view class="userInfo">
<!-- 1.头像 --> <!-- 1.头像 -->
<navigator v-if="list.author && userInfo.uid != list.author.uid" hover-class="none" :url="'/pages/plantGrass/plant_user/index?id='+list.uid" class="pictrue"> <navigator v-if="list.author && userInfo.uid != list.author.uid" hover-class="none"
<image class="userAvatar" :src="list.author&&list.author.avatar || '/static/images/f.png'" mode="aspectFill"></image> :url="'/pages/plantGrass/plant_user/index?id='+list.uid" class="pictrue">
<view v-if="!list.is_fans || !userInfo.uid" class="guanzhu" @click.stop="followAuthor(list)"><text class="iconfont icon-shangpinshuliang-jia"></text></view> <image class="userAvatar" :src="list.author&&list.author.avatar || '/static/images/f.png'"
mode="aspectFill"></image>
<view v-if="!list.is_fans || !userInfo.uid" class="guanzhu" @click.stop="followAuthor(list)"><text
class="iconfont icon-shangpinshuliang-jia"></text></view>
<view v-else class="yiguanzhu"><text class="iconfont"></text></view> <view v-else class="yiguanzhu"><text class="iconfont"></text></view>
</navigator> </navigator>
<!-- 2.点赞 --> <!-- 2.点赞 -->
@ -162,7 +150,8 @@
<text class="info-text">{{list.count_start > 0 ? list.count_start : '点赞'}}</text> <text class="info-text">{{list.count_start > 0 ? list.count_start : '点赞'}}</text>
</view> </view>
<!-- 3.评论 --> <!-- 3.评论 -->
<view v-if="community_reply_status == 1 && list.status == 1" class="comment" @click="toComment(list,index)" style="margin-top: 18px;"> <view v-if="community_reply_status == 1 && list.status == 1" class="comment"
@click="toComment(list,index)" style="margin-top: 18px;">
<text class="iconfont icon-pinglun2"></text> <text class="iconfont icon-pinglun2"></text>
<text class="info-text">{{list.count_reply>0 ? list.count_reply : '评论'}}</text> <text class="info-text">{{list.count_reply>0 ? list.count_reply : '评论'}}</text>
</view> </view>
@ -181,7 +170,8 @@
</view> </view>
<view class="manage" v-show="showManage"> <view class="manage" v-show="showManage">
<navigator hover-class="none" :url="'/pages/plantGrass/plant_release/index?id='+list.community_id+'&type=2'" class="items"> <navigator hover-class="none"
:url="'/pages/plantGrass/plant_release/index?id='+list.community_id+'&type=2'" class="items">
<image class="image" src="../static/img/index/video-edit.png"></image> <image class="image" src="../static/img/index/video-edit.png"></image>
<text>编辑</text> <text>编辑</text>
</navigator> </navigator>
@ -193,7 +183,8 @@
</view> </view>
</view> </view>
<!-- 提到的商品 --> <!-- 提到的商品 -->
<view v-if="list.relevance.length>0 && k === index" @click="openMore(list)" class="mention" style="opacity: 0.9; margin-top: 18px;"> <view v-if="list.relevance.length>0 && k === index" @click="openMore(list)" class="mention"
style="opacity: 0.9; margin-top: 18px;">
<image src="../static/img/index/collection.png"></image> <image src="../static/img/index/collection.png"></image>
<text class="count">{{list.relevance.length}}</text> <text class="count">{{list.relevance.length}}</text>
</view> </view>
@ -202,28 +193,45 @@
</view> </view>
</swiper-item> </swiper-item>
</swiper> </swiper>
<view class="noVideo acea-row row-center-wrapper" v-if="!dataList.length && !loadVideo"> <view class="video-list" v-if="currentNav === 3"
:style="'width: '+ windowWidth +'px; height: '+ windowHeight +'px;'">
<block v-for="(item,index) in cateGoods" :key="item.uid">
<view class="goods_item" @click="gogogo(item)">
<image class="goods_img" :src="item.image[0]" mode="aspectFill"></image>
<view class="botm">
<view class="title">{{item.title}}</view>
<view class="goods_info flex_a_c">
<view class="l_info flex_a_c">
<image :src="(item.author && item.author.avatar) || '/static/images/f.png'" mode="aspectFill"
class="g_img"></image>
<view class="g_name">{{item.author && item.author.nickname}}</view>
</view>
<view class="nice_box flex_a_c" @click.stop="giveStart(item)">
<text class="iconfont" :class="item.relevance_id ? 'icon-shoucang1' : 'icon-dianzan'"></text>
<text class="collect">{{item.count_start}}</text>
</view>
</view>
</view>
</view>
</block>
</view>
<view class="noVideo acea-row row-center-wrapper" v-if="!dataList.length && !loadVideo && currentNav !== 3">
<view> <view>
<image :src="imgHost+'/static/no-video.png'" class="pictrue"></image> <image :src="imgHost+'/static/no-video.png'" class="pictrue"></image>
<text class="tips">暂无短视频内容哦~</text> <text class="tips">暂无短视频内容哦~</text>
</view> </view>
</view> </view>
<comment <comment ref="comments" :bottom="0" :isShow="showComment" :userInfo="userInfo" @successFul="pinlunFun"
ref="comments" @close="closeScrollview"></comment>
:bottom="0"
:isShow="showComment"
:userInfo="userInfo"
@successFul="pinlunFun"
@close="closeScrollview"
></comment>
<!-- 他提到的宝贝弹窗 --> <!-- 他提到的宝贝弹窗 -->
<mentioned ref="mentioned" @close="closePopup" :list="moreList" :uid="authorUid"></mentioned> <mentioned ref="mentioned" @close="closePopup" :list="moreList" :uid="authorUid"></mentioned>
<image v-if="H5ShareBox" class="shareImg" :src="imgHost + '/static/images/share-info.png'" @click="H5ShareBox = false"></image> <image v-if="H5ShareBox" class="shareImg" :src="imgHost + '/static/images/share-info.png'"
@click="H5ShareBox = false"></image>
<!-- 分享按钮 --> <!-- 分享按钮 -->
<view class="generate-posters acea-row row-middle" :class="posters ? 'on' : ''"> <view class="generate-posters acea-row row-middle" :class="posters ? 'on' : ''">
<!-- #ifndef MP --> <!-- #ifndef MP -->
<button class="item" :class="weixinStatus ? 'item3' : ''" hover-class='none' v-if="weixinStatus === true" @click="H5ShareBox = true"> <button class="item" :class="weixinStatus ? 'item3' : ''" hover-class='none' v-if="weixinStatus === true"
@click="H5ShareBox = true">
<view class="iconfont icon-weixin3"></view> <view class="iconfont icon-weixin3"></view>
<view class="">发送给朋友</view> <view class="">发送给朋友</view>
</button> </button>
@ -262,7 +270,16 @@
import comment from '@/components/comment.vue'; import comment from '@/components/comment.vue';
import mentioned from '@/components/mentioned.vue'; import mentioned from '@/components/mentioned.vue';
import { HTTP_REQUEST_URL } from '@/config/app'; import { HTTP_REQUEST_URL } from '@/config/app';
import { videoList, myVideoList, graphicStartApi, followAuthorApi, getVideoCode, deletePlantApi, focusArticleLst } from '@/api/community.js'; import {
videoList,
myVideoList,
graphicStartApi,
followAuthorApi,
getVideoCode,
deletePlantApi,
focusArticleLst,
graphicLstApi
} from '@/api/community.js';
import { getUserInfo, imgToBase } from '@/api/user.js'; import { getUserInfo, imgToBase } from '@/api/user.js';
import authorize from '@/components/Authorize'; import authorize from '@/components/Authorize';
import ClipboardJS from "@/plugin/clipboard/clipboard.js"; import ClipboardJS from "@/plugin/clipboard/clipboard.js";
@ -337,6 +354,13 @@
// #ifndef MP // #ifndef MP
isRoutine: false, isRoutine: false,
// #endif // #endif
// 视频列表相关 变量
cateGoods: [],
where: {
category_id: -1,
page: 1,
limit: 10
},
} }
}, },
watch: { watch: {
@ -354,7 +378,8 @@
this.dataList[old_k].state = 'pause' this.dataList[old_k].state = 'pause'
console.log('预留第' + (old_k + 1) + '个视频:' + this.dataList[old_k].community_id + '' + old_k) console.log('预留第' + (old_k + 1) + '个视频:' + this.dataList[old_k].community_id + '' + old_k)
// 2.0版本已经去掉了下面这一句,视频不用暂停,只需要把声音禁止就行 // 2.0版本已经去掉了下面这一句,视频不用暂停,只需要把声音禁止就行
uni.createVideoContext(this.dataList[old_k].community_id + '' + old_k, this).pause() //如果视频暂停那么旧视频停止这里的this.dataList[old_k].id + '' + old_k后面加 old_k 是为了每一个视频的 id 值不同,这样就可以大程度的避免串音问题 uni.createVideoContext(this.dataList[old_k].community_id + '' + old_k, this)
.pause() //如果视频暂停那么旧视频停止这里的this.dataList[old_k].id + '' + old_k后面加 old_k 是为了每一个视频的 id 值不同,这样就可以大程度的避免串音问题
console.log('已经暂停 --> 第' + (old_k + 1) + '个视频~') //提示 console.log('已经暂停 --> 第' + (old_k + 1) + '个视频~') //提示
// #ifdef MP // #ifdef MP
this.dataList[new_k].state = 'play' this.dataList[new_k].state = 'play'
@ -410,11 +435,9 @@
} }
}, },
// #endif // #endif
//#ifdef H5
goBack: function() { goBack: function() {
uni.navigateBack(); uni.navigateBack();
}, },
//#endif
navTap(n) { navTap(n) {
this.currentNav = n; this.currentNav = n;
this.timeout = ""; this.timeout = "";
@ -422,7 +445,19 @@
this.page = 1; this.page = 1;
this.loadVideo = true; this.loadVideo = true;
this.dataList = []; this.dataList = [];
n == 1 ? this.get() : this.getFocusList() n == 1 ? this.get() : this.getFocusList();
n == 3 ? this.getGoods() : '';
},
/**
* 视频列表相关方法
* 获取视频列表
*/
gogogo() {
this.navTap(1)
},
async getGoods() {
const { data } = await graphicLstApi(this.where)
this.cateGoods = data.list
}, },
/** /**
* 获取个人用户信息 * 获取个人用户信息
@ -852,22 +887,29 @@
}); });
// #ifdef MP || APP-PLUS // #ifdef MP || APP-PLUS
if (that.dataList[that.k].author.avatar) { if (that.dataList[that.k].author.avatar) {
arr2 = [that.posterbackgd,await that.fileStoreImage(that.dataList[that.k].image[0]), await that.fileStoreImage( arr2 = [that.posterbackgd, await that.fileStoreImage(that.dataList[that.k].image[0]), await that
that.codeImg), await that.fileStoreImage(that.dataList[that.k].author.avatar)]; .fileStoreImage(
that.codeImg), await that.fileStoreImage(that.dataList[that.k].author.avatar)
];
} else { } else {
arr2 = [that.posterbackgd,await that.fileStoreImage(that.dataList[that.k].image[0]), await that.fileStoreImage( arr2 = [that.posterbackgd, await that.fileStoreImage(that.dataList[that.k].image[0]), await that
that.codeImg), that.avatar]; .fileStoreImage(
that.codeImg), that.avatar
];
} }
// #endif // #endif
// #ifdef H5 // #ifdef H5
if (that.dataList[that.k].author.avatar) { if (that.dataList[that.k].author.avatar) {
arr2 = [that.posterbackgd,await that.imgToBase(that.dataList[that.k].image[0]), await that.imgToBase(that.codeImg), await that.imgToBase(that.dataList[that.k].author.avatar)]; arr2 = [that.posterbackgd, await that.imgToBase(that.dataList[that.k].image[0]), await that.imgToBase(that
.codeImg), await that.imgToBase(that.dataList[that.k].author.avatar)];
} else { } else {
arr2 = [that.posterbackgd,await that.imgToBase(that.dataList[that.k].image[0]), await that.imgToBase(that.codeImg), that.avatar]; arr2 = [that.posterbackgd, await that.imgToBase(that.dataList[that.k].image[0]), await that.imgToBase(that
.codeImg), that.avatar];
} }
// #endif // #endif
//生成推广海报 //生成推广海报
that.$util.videoPosterCanvas(arr2, that.dataList[that.k].content, that.dataList[that.k].author.nickname, function(tempFilePath) { that.$util.videoPosterCanvas(arr2, that.dataList[that.k].content, that.dataList[that.k].author.nickname,
function(tempFilePath) {
that.$set(that, 'posterImage', tempFilePath); that.$set(that, 'posterImage', tempFilePath);
that.$set(that, 'posterImageStatus', true); that.$set(that, 'posterImageStatus', true);
that.$set(that, 'actionSheetHidden', !that.actionSheetHidden); that.$set(that, 'actionSheetHidden', !that.actionSheetHidden);
@ -1017,6 +1059,104 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.video-list {
margin: 0 auto;
width: 694.74rpx;
display: flex;
flex-wrap: wrap;
flex-direction: initial;
justify-content: space-between;
padding: 122.81rpx 28.07rpx 0 28.07rpx;
/* #ifdef MP */
padding-top: 200rpx;
/* #endif */
.goods_item {
width: 342.11rpx;
height: 491.23rpx;
border-radius: 8px;
overflow: hidden;
background-color: #fff;
display: flex;
flex-direction: column;
margin-bottom: 10.53rpx;
.goods_img {
width: 100%;
height: 294.74rpx;
}
.botm {
flex: 1;
padding: 0 14.04rpx;
padding-bottom: 21.05rpx;
display: flex;
flex-direction: column;
justify-content: space-between;
.title {
margin: 12px 0;
width: 100%;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
.goods_info {
flex-direction: initial;
justify-content: space-between;
.l_info {
flex-direction: initial;
align-items: center;
}
.g_img {
width: 60rpx;
height: 60rpx;
border-radius: 50%;
}
.g_name {
margin-left: 8.77rpx;
width: 100.63rpx;
text-overflow: ellipsis;
/* 溢出显示省略号 */
overflow: hidden;
/* 溢出隐藏 */
white-space: nowrap;
/* 强制不换行 */
}
.nice_box {
display: flex;
flex-direction: initial;
align-items: center;
.isshow {
color: #FE3530 !important;
}
.iconfont {
font-size: 30rpx;
}
.icon-shoucang1 {
color: #F84221;
}
.collect {
font-size: 24rpx;
margin-left: 5rpx;
}
}
}
}
}
}
.header { .header {
position: fixed; position: fixed;
z-index: 9; z-index: 9;
@ -1026,6 +1166,10 @@
justify-content: center; justify-content: center;
align-items: center; align-items: center;
top: 20rpx; top: 20rpx;
/* #ifdef MP */
top: 75rpx;
/* #endif */
.tool-bar { .tool-bar {
position: absolute; position: absolute;
left: 0; left: 0;
@ -1034,6 +1178,7 @@
height: 86rpx; height: 86rpx;
display: flex; display: flex;
justify-content: center; justify-content: center;
.icon-xiangzuo { .icon-xiangzuo {
margin-right: 40rpx; margin-right: 40rpx;
margin-left: 20rpx; margin-left: 20rpx;
@ -1041,11 +1186,14 @@
color: #fff; color: #fff;
} }
} }
.items { .items {
margin: 0 30rpx; margin: 0 30rpx;
.tName { .tName {
color: #ffffff; color: #ffffff;
font-size: 32rpx; font-size: 32rpx;
&.on { &.on {
font-size: 38rpx; font-size: 38rpx;
} }
@ -1053,6 +1201,7 @@
} }
} }
.shareImg { .shareImg {
z-index: 1000; z-index: 1000;
position: fixed; position: fixed;
@ -1061,10 +1210,16 @@
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
.shortVideo,.container {background: linear-gradient(180deg, rgba(0,0,0,.8) 0%, #000000 100%);}
.shortVideo,
.container {
background: linear-gradient(180deg, rgba(0, 0, 0, .8) 0%, #000000 100%);
}
.item { .item {
position: relative; position: relative;
} }
.video-status { .video-status {
width: 690rpx; width: 690rpx;
position: absolute; position: absolute;
@ -1073,26 +1228,31 @@
border-radius: 10rpx; border-radius: 10rpx;
top: 60rpx; top: 60rpx;
padding: 30rpx; padding: 30rpx;
.status-title { .status-title {
flex-direction: row; flex-direction: row;
align-items: center; align-items: center;
.title { .title {
margin-left: 20rpx; margin-left: 20rpx;
color: #ffffff; color: #ffffff;
font-size: 28rpx; font-size: 28rpx;
} }
} }
.refusal { .refusal {
color: #ffffff; color: #ffffff;
font-size: 22rpx; font-size: 22rpx;
margin: 15rpx 0 0 48rpx; margin: 15rpx 0 0 48rpx;
} }
.image { .image {
width: 28rpx; width: 28rpx;
height: 28rpx; height: 28rpx;
} }
} }
.videoHover { .videoHover {
position: absolute; position: absolute;
top: 0; top: 0;
@ -1101,27 +1261,32 @@
justify-content: center; justify-content: center;
align-items: center; align-items: center;
} }
.playState { .playState {
width: 160rpx; width: 160rpx;
height: 160rpx; height: 160rpx;
opacity: 0.2; opacity: 0.2;
} }
.userInfo { .userInfo {
position: absolute; position: absolute;
bottom: 60rpx; bottom: 60rpx;
right: 20rpx; right: 20rpx;
flex-direction: column; flex-direction: column;
text-align: center; text-align: center;
.pictrue { .pictrue {
flex-direction: column; flex-direction: column;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
position: relative; position: relative;
// margin-bottom: 18rpx; // margin-bottom: 18rpx;
image { image {
width: 92rpx; width: 92rpx;
height: 92rpx; height: 92rpx;
} }
.guanzhu { .guanzhu {
width: 42rpx; width: 42rpx;
height: 42rpx; height: 42rpx;
@ -1134,25 +1299,30 @@
position: relative; position: relative;
top: -20rpx; top: -20rpx;
left: 26rpx; left: 26rpx;
.iconfont { .iconfont {
font-size: 20rpx; font-size: 20rpx;
} }
} }
.yiguanzhu { .yiguanzhu {
width: 42rpx; width: 42rpx;
height: 42rpx; height: 42rpx;
} }
} }
.mention { .mention {
width: 92rpx; width: 92rpx;
height: 92rpx; height: 92rpx;
position: relative; position: relative;
image { image {
width: 58rpx; width: 58rpx;
height: 58rpx; height: 58rpx;
position: absolute; position: absolute;
right: 16rpx; right: 16rpx;
} }
.count { .count {
width: 30rpx; width: 30rpx;
height: 30rpx; height: 30rpx;
@ -1169,27 +1339,34 @@
font-size: 20rpx; font-size: 20rpx;
} }
} }
.iconfont { .iconfont {
color: #ffffff; color: #ffffff;
&.likeNumActive { &.likeNumActive {
color: #E93323; color: #E93323;
} }
} }
} }
.icon-shipindianzan-yidian { .icon-shipindianzan-yidian {
font-size: 64rpx; font-size: 64rpx;
} }
.icon-pinglun2 { .icon-pinglun2 {
font-size: 59rpx; font-size: 59rpx;
} }
.icon-fenxiang3 { .icon-fenxiang3 {
font-size: 58rpx; font-size: 58rpx;
} }
.info-text { .info-text {
margin-top: 10rpx; margin-top: 10rpx;
color: #ffffff; color: #ffffff;
} }
.userAvatar { .userAvatar {
border-radius: 500%; border-radius: 500%;
border-style: solid; border-style: solid;
@ -1199,6 +1376,7 @@
height: 80rpx; height: 80rpx;
display: block; display: block;
} }
.video-dian { .video-dian {
position: relative; position: relative;
width: 66rpx; width: 66rpx;
@ -1207,17 +1385,20 @@
justify-content: center; justify-content: center;
flex-direction: row; flex-direction: row;
left: 12rpx; left: 12rpx;
.dian { .dian {
width: 13rpx; width: 13rpx;
height: 13rpx; height: 13rpx;
background-color: #fff; background-color: #fff;
border-radius: 100%; border-radius: 100%;
margin-right: 10rpx; margin-right: 10rpx;
&:last-child { &:last-child {
margin-right: 0; margin-right: 0;
} }
} }
} }
.manage { .manage {
width: 210rpx; width: 210rpx;
background: #ffffff; background: #ffffff;
@ -1228,6 +1409,7 @@
right: 110rpx; right: 110rpx;
z-index: 90; z-index: 90;
border-radius: 16rpx; border-radius: 16rpx;
&::before { &::before {
content: ""; content: "";
display: inline-block; display: inline-block;
@ -1240,6 +1422,7 @@
right: -14rpx; right: -14rpx;
box-shadow: -1rpx -1rpx 1rpx rgba(0, 0, 0, 0.05); box-shadow: -1rpx -1rpx 1rpx rgba(0, 0, 0, 0.05);
} }
.items { .items {
border-bottom: 1px solid #EEEEEE; border-bottom: 1px solid #EEEEEE;
color: #282828; color: #282828;
@ -1248,9 +1431,11 @@
display: flex; display: flex;
align-items: center; align-items: center;
flex-direction: row; flex-direction: row;
&:last-child { &:last-child {
border-bottom: none; border-bottom: none;
} }
.image { .image {
width: 32rpx; width: 32rpx;
height: 32rpx; height: 32rpx;
@ -1258,9 +1443,11 @@
} }
} }
} }
.likeNumActive { .likeNumActive {
color: #E93323; color: #E93323;
} }
.content { .content {
width: 590rpx; width: 590rpx;
position: absolute; position: absolute;
@ -1273,25 +1460,30 @@
color: #ffffff; color: #ffffff;
left: 50%; left: 50%;
margin-left: -345rpx; margin-left: -345rpx;
.time { .time {
font-size: 24rpx; font-size: 24rpx;
color: rgba(255, 255, 255, 0.5); color: rgba(255, 255, 255, 0.5);
margin-left: 12rpx; margin-left: 12rpx;
} }
.cart { .cart {
height: 48rpx; height: 48rpx;
flex-direction: row; flex-direction: row;
.cartName { .cartName {
font-size: 24rpx; font-size: 24rpx;
color: #fff; color: #fff;
} }
} }
} }
.canvas { .canvas {
z-index: 300; z-index: 300;
width: 750px; width: 750px;
height: 1036px; height: 1036px;
} }
.poster-pop { .poster-pop {
width: 600rpx; width: 600rpx;
/*#ifdef H5*/ /*#ifdef H5*/
@ -1336,6 +1528,7 @@
font-size: 25rpx; font-size: 25rpx;
margin-top: 40rpx; margin-top: 40rpx;
} }
.mask { .mask {
position: fixed; position: fixed;
top: 0; top: 0;
@ -1345,28 +1538,34 @@
background-color: rgba(0, 0, 0, 0.6); background-color: rgba(0, 0, 0, 0.6);
z-index: 9; z-index: 9;
} }
.words { .words {
margin-top: 12rpx; margin-top: 12rpx;
.close { .close {
display: flex; display: flex;
flex-direction: row; flex-direction: row;
align-items: center; align-items: center;
justify-content: flex-end; justify-content: flex-end;
margin-right: 20rpx; margin-right: 20rpx;
.imgClose { .imgClose {
width: 18rpx; width: 18rpx;
height: 10rpx; height: 10rpx;
margin-left: 10rpx; margin-left: 10rpx;
} }
} }
.wordsCon { .wordsCon {
position: relative; position: relative;
.more { .more {
position: absolute; position: absolute;
bottom: 0; bottom: 0;
right: 40rpx; right: 40rpx;
font-size: 26rpx; font-size: 26rpx;
} }
.img { .img {
width: 18rpx; width: 18rpx;
height: 10rpx; height: 10rpx;
@ -1376,19 +1575,23 @@
right: 15rpx; right: 15rpx;
} }
} }
.info { .info {
color: #fff; color: #fff;
font-size: 28rpx; font-size: 28rpx;
} }
.more { .more {
font-size: 26rpx; font-size: 26rpx;
color: #ffffff; color: #ffffff;
font-weight: 400; font-weight: 400;
} }
} }
.product { .product {
display: block; display: block;
margin-top: 27rpx; margin-top: 27rpx;
.product-item { .product-item {
display: inline-block; display: inline-block;
width: 444rpx; width: 444rpx;
@ -1398,10 +1601,13 @@
padding: 16rpx 15rpx; padding: 16rpx 15rpx;
margin-right: 30rpx; margin-right: 30rpx;
} }
/deep/uni-swiper,/deep/swiper{
/deep/uni-swiper,
/deep/swiper {
display: block; display: block;
// width: 500rpx!important; // width: 500rpx!important;
height: 136rpx !important; height: 136rpx !important;
.swiper-count { .swiper-count {
display: block; display: block;
width: 444rpx !important; width: 444rpx !important;
@ -1410,46 +1616,56 @@
border-radius: 12rpx; border-radius: 12rpx;
padding: 16rpx 15rpx; padding: 16rpx 15rpx;
} }
.swiper-item { .swiper-item {
display: block; display: block;
width: 480rpx !important; width: 480rpx !important;
} }
} }
.item-count { .item-count {
width: 414rpx; width: 414rpx;
flex-direction: row; flex-direction: row;
justify-content: space-between; justify-content: space-between;
border-radius: 12rpx; border-radius: 12rpx;
.picture { .picture {
width: 104rpx; width: 104rpx;
height: 104rpx; height: 104rpx;
border-radius: 10rpx; border-radius: 10rpx;
image { image {
width: 104rpx; width: 104rpx;
height: 104rpx; height: 104rpx;
border-radius: 10rpx; border-radius: 10rpx;
} }
} }
.product-text { .product-text {
width: 266rpx; width: 266rpx;
justify-content: space-between; justify-content: space-between;
.name { .name {
display: inline-block; display: inline-block;
width: 266rpx; width: 266rpx;
} }
.product-price { .product-price {
display: flex; display: flex;
flex-direction: row; flex-direction: row;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
.price { .price {
display: flex; display: flex;
flex-direction: row; flex-direction: row;
align-items: end; align-items: end;
text { text {
font-size: 34rpx; font-size: 34rpx;
} }
} }
.buy-btn { .buy-btn {
width: 89rpx; width: 89rpx;
height: 36rpx; height: 36rpx;
@ -1465,9 +1681,11 @@
} }
} }
} }
.product_cate { .product_cate {
margin: 20rpx 0; margin: 20rpx 0;
flex-direction: row; flex-direction: row;
>view { >view {
display: inline-block; display: inline-block;
flex-direction: row; flex-direction: row;
@ -1477,9 +1695,11 @@
line-height: 40rpx; line-height: 40rpx;
border-radius: 29rpx; border-radius: 29rpx;
border: 1px solid #ffffff; border: 1px solid #ffffff;
.text { .text {
font-size: 24rpx; font-size: 24rpx;
} }
.icon { .icon {
display: inline-block; display: inline-block;
font-size: 26rpx; font-size: 26rpx;
@ -1490,6 +1710,7 @@
} }
} }
} }
.generate-posters { .generate-posters {
width: 100%; width: 100%;
height: 170rpx; height: 170rpx;
@ -1505,9 +1726,11 @@
align-items: center; align-items: center;
flex-direction: row; flex-direction: row;
} }
.generate-posters.on { .generate-posters.on {
transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0);
} }
.generate-posters .item { .generate-posters .item {
/* #ifdef H5 */ /* #ifdef H5 */
flex: 100%; flex: 100%;
@ -1517,17 +1740,21 @@
/* #endif */ /* #endif */
text-align: center; text-align: center;
font-size: 30rpx; font-size: 30rpx;
&.item3 { &.item3 {
flex: 33.33%; flex: 33.33%;
} }
} }
.generate-posters .item .iconfont { .generate-posters .item .iconfont {
font-size: 80rpx; font-size: 80rpx;
color: #5eae72; color: #5eae72;
} }
.generate-posters .item .iconfont.icon-haibao { .generate-posters .item .iconfont.icon-haibao {
color: #5391f1; color: #5391f1;
} }
.mask { .mask {
position: fixed; position: fixed;
top: 0; top: 0;
@ -1537,6 +1764,7 @@
background-color: rgba(0, 0, 0, 0.6); background-color: rgba(0, 0, 0, 0.6);
z-index: 9; z-index: 9;
} }
.noVideo { .noVideo {
position: fixed; position: fixed;
top: 400rpx; top: 400rpx;
@ -1544,10 +1772,12 @@
width: 750rpx; width: 750rpx;
flex-direction: row; flex-direction: row;
justify-content: center; justify-content: center;
.pictrue { .pictrue {
width: 414rpx; width: 414rpx;
height: 256rpx; height: 256rpx;
} }
.tips { .tips {
text-align: center; text-align: center;
margin-top: 14rpx; margin-top: 14rpx;

View File

@ -1,20 +1,97 @@
<template> <template>
<view class="entryProcess"> <view class="entryProcess">
<view class="cont-wrapper">
<view class="record flex"> <view class="record flex">
<view class="circle"></view> <view class="circle"></view>
<view class="cont-box"> <view class="cont-box">
<view class="title">入驻申请</view> <view class="title">入驻申请</view>
<view class="text-box"> <view class="text-box">
<view class="have-filled" v-if="false"></view> <view class="have-filled" v-if="true">
<view class="get-through" v-if="true"> <text>1.填写入驻申请基本材料 2023-05-08完成</text>
<text>1填写入驻申请资本资料</text> <text>2.完成审核2023-05-08完成</text>
</view>
<view class="get-through" v-else>
<text class="through-title">1填写入驻申请资本资料</text>
<text>请按照营业执照和店招真实信息填写入驻基 <text>请按照营业执照和店招真实信息填写入驻基
本材料进行审核</text> 本材料进行审核</text>
<button>开始填写</button> <view class="through-btn">开始填写</view>
</view> </view>
</view> </view>
</view> </view>
</view> </view>
<view class="record flex">
<view class="circle"></view>
<view class="cont-box">
<view class="title">签署入驻里海云电子版本合同</view>
<view class="text-box">
<view class="have-filled" v-if="true">
<text>1.完成签署里海云电子版本合同 2023-05-08完成</text>
</view>
<view class="get-through" v-else>
<text class="through-title">1填写入驻申请资本资料</text>
<text>请按照营业执照和店招真实信息填写入驻基
本材料进行审核</text>
<view class="through-btn">签署合同</view>
</view>
</view>
</view>
</view>
<view class="record flex">
<view class="circle"></view>
<view class="cont-box">
<view class="title">签署里海云履约保证金协议</view>
<view class="text-box">
<view class="have-filled" v-if="false">
<text>1.完成签署履约保证金协议2023-05-08 13:15完成</text>
</view>
<view class="get-through" v-else>
<text class="through-title">1签署里海云履约保证金协议</text>
<text>请详细阅读里海云履约保证金协议并充分理解内容后进行电子签名</text>
<view class="flex_a_c" style="margin-top: auto;">
<view class="through-btn">签署协议</view>
<view class="tiaoguo">跳过</view>
</view>
</view>
</view>
</view>
</view>
<view class="record flex">
<view class="circle"></view>
<view class="cont-box">
<view class="title">缴纳履约保证金</view>
<view class="text-box">
<view class="have-filled" v-if="!true">
<text>1.完成履约保证金缴纳 2023-05-08 13:15完成</text>
</view>
<view class="get-through" v-else>
<text class="through-title">1缴纳履约保证金</text>
<text>线上缴纳履约保证金完成保证金审核后签约完成</text>
<view class="flex_a_c" style="margin-top: auto;">
<view class="through-btn">缴纳履约保证金</view>
<view class="tiaoguo">跳过</view>
</view>
</view>
</view>
</view>
</view>
<view class="record flex" :class="!true ? '' : 'on-record'">
<view class="circle"></view>
<view class="cont-box">
<view class="title">完善店铺开业信息</view>
<view class="text-box" v-if="!true">
<view class="have-filled" v-if="true">
<text>1.完成签署里海云电子版本合同 2023-05-08完成</text>
</view>
<view class="get-through" v-else>
<text class="through-title">1填写并上传店铺信息</text>
<text>填写并上传店铺信息设置店招头像街景图片开业时间等基础信息完成开业</text>
<view class="through-btn">完善信息</view>
</view>
</view>
</view>
</view>
</view>
<view class="sub-btn" v-if="true">进入店铺</view>
</view> </view>
</template> </template>
@ -35,9 +112,27 @@
</script> </script>
<style lang="scss"> <style lang="scss">
.sub-btn {
width: 535.09rpx;
height: 71.93rpx;
font-size: 31.58rpx;
color: $uni-theme-color;
text-align: center;
line-height: 71.93rpx;
background: #F2F2F2;
border-radius: 5px 5px 5px 5px;
margin: 87.72rpx auto;
}
.entryProcess { .entryProcess {
height: 100%; height: 100%;
background: linear-gradient(180deg, #F98649 0%, #F34E45 100%); padding: 16px;
background: url("https://lihai001.oss-cn-chengdu.aliyuncs.com/public/kk/luzhou/static4/entryBg.png") no-repeat;
background-size: cover;
}
.cont-wrapper {
height: 100%;
:last-child { :last-child {
.circle { .circle {
@ -66,11 +161,12 @@
content: ""; content: "";
display: block; display: block;
position: absolute; position: absolute;
top: 45.61rpx;
clear: both; clear: both;
width: 1px; width: 1px;
height: 100%; height: calc(100% - 18px);
background-color: #EDF7F3; background-color: #EDF7F3;
margin: 31.58rpx; // margin: 31.58rpx;
} }
} }
@ -85,7 +181,7 @@
.text-box { .text-box {
width: 631.58rpx; width: 631.58rpx;
height: 366.67rpx; // height: 366.67rpx;
color: #fff; color: #fff;
border-radius: 10px; border-radius: 10px;
padding: 29.82rpx 24.56rpx; padding: 29.82rpx 24.56rpx;
@ -95,9 +191,68 @@
} }
} }
.text-box.get-through { .on-record {
width: 100%; opacity: 0.5;
}
.text-box .have-filled {
height: 100%; height: 100%;
font-size: 14px;
text {
display: block;
margin-bottom: 12.28rpx;
&:last-child {
margin-bottom: 0;
}
}
}
.text-box .get-through {
display: flex;
flex-direction: column;
color: #000;
width: 100%;
height: 307.02rpx;
padding: 24.56rpx;
border-radius: 5px;
background-color: #fff; background-color: #fff;
text {
display: block;
font-size: 28.07rpx;
color: #616365;
}
.through-title {
font-size: 31.58rpx;
font-weight: 500;
margin-bottom: 8.77rpx;
}
.through-btn {
width: 100%;
height: 70.18rpx;
font-size: 31.58rpx;
color: #fff;
text-align: center;
line-height: 70.18rpx;
background: linear-gradient(86deg, #F98649 0%, #F98349 4%, #F34E45 100%);
border-radius: 5px;
margin-top: auto;
}
.tiaoguo {
width: 175.44rpx;
height: 70.18rpx;
font-size: 31.58rpx;
color: #fff;
text-align: center;
line-height: 70.18rpx;
border-radius: 5px;
background-color: $uni-theme-color;
margin-left: 17.54rpx;
}
} }
</style> </style>

View File

@ -1,48 +1,53 @@
<template> <template>
<view class="Circle_friends"> <view class="Circle_friends">
<view class="circle_friends_wrapper"> <view class="circle_friends_wrapper">
<view class="supply_chains-head"> <zbpSwiper></zbpSwiper>
<swiper class="swiper l_center" :indicator-dots="swiper.indicatorDots" :autoplay="swiper.autoplay"
:interval="swiper.interval" :duration="swiper.duration" indicator-active-color="#fff">
<block v-for="(item,i) in swiper['url']" :key="i">
<swiper-item class="swi_item">
<u--image :showLoading="true" :src="item.img" width="750rpx" height="500rpx" mode="aspectFill">
</u--image>
</swiper-item>
</block>
</swiper>
</view>
<view class="shop_wrapper"> <view class="shop_wrapper">
<navigator class="l_yun" hover-class="none" <navigator class="l_yun" hover-class="none"
:url="`/pages/nongKe/supply_chain/supplier?type_id=10&street_id=${sotreParam.street_id}`"> :url="`/pages/nongKe/supply_chain/supplier?type_id=10&street_id=${sotreParam.street_id}`">
<view class="yun_title flex_a_c"> <!-- <view class="yun_title flex_a_c">
<view class="">泸州市{{district}}{{town}}</view> <view class="">泸州市{{district}}{{town}}</view>
<view class="iconlihai lihai-gengduo" @click.stop="showPicker=true"></view> <view class="iconlihai lihai-gengduo" @click.stop="showPicker=true"></view>
</view> </view>
<view class="text_cont"> <view class="text_cont">
<text class="name_town">{{town}}</text>供销综合云市场 <text class="name_town">{{town}}</text>供销综合云市场
</view> -->
<view class="text-name">
<text>通滩镇</text>
<view class="name_town">-供销综合云市场-</view>
</view> </view>
</navigator> </navigator>
<navigator class="r_lihai" hover-class="none" <navigator class="r_lihai" hover-class="none" :url="`/pages/store/home/index?id=322`">
:url="`/pages/nongKe/supply_chain/supplier?type_id=11&street_id=${sotreParam.street_id}`">
<view class="title">里海云仓</view> <view class="title">里海云仓</view>
<text>平台线上仓库</text>
</navigator> </navigator>
</view> </view>
<view class="tabs_wrapper flex_a_c_j_sb">
<!-- 滚动 --> <view class="title flex_a_c">热点资讯</view>
<scroll-view scroll-y="true" class="article_box"> <navigator class="flex_a_c" hover-class="none" url="/pages/news_list/index">
<!-- @click="navigat" --> 更多
<view> <view class="iconfont icon-gengduo3"></view>
<block v-for="item in ArticleHotList" :key="item.article_id"> </navigator>
<view class="article_item">
<view class="title">{{item.title}}</view>
<view class="synopsis">{{item.synopsis}}</view>
</view> </view>
<view class="article_box">
<!-- <view class="title-box flex_a_c_j_sb">
<text>热点资讯</text>
<navigator class="flex_a_c" hover-class="none" url="/pages/news_list/index">
更多
<view class="iconfont icon-gengduo3"></view>
</navigator>
</view> -->
<block v-for="(item,index) in articleList" :key="index">
<navigator :url='"/pages/news_details/index?id="+item.article_id' hover-class='none' class='article-item'>
<view class='text'>
<view class='name'>{{item.title}}</view>
<view class="time">{{item.create_time}}</view>
</view>
<view class='pictrue'>
<image :src='item.image_input'></image>
</view>
</navigator>
</block> </block>
</view> </view>
</scroll-view>
<view class="tabs_wrapper"> <view class="tabs_wrapper">
<view class="title flex_a_c">最新动态</view> <view class="title flex_a_c">最新动态</view>
@ -75,7 +80,8 @@
</view> </view>
<u-picker :defaultIndex="[0,0]" :show="showPicker" ref="uPicker" :columns="columnData" @confirm="confirm" <u-picker :defaultIndex="[0,0]" :show="showPicker" ref="uPicker" :columns="columnData" @confirm="confirm"
@cancel="showPicker = false" @change="changeHandler" keyName="name"></u-picker> @cancel="showPicker = false" @change="changeHandler" keyName="name"></u-picker>
<view class="bg_color"></view>
<!-- <view class="bg_color"></view> -->
<!-- <m-tabbar native> <!-- <m-tabbar native>
<template v-slot:tabbar_index_2> <template v-slot:tabbar_index_2>
@ -88,6 +94,7 @@
</template> </template>
<script> <script>
import zbpSwiper from '@/components/zbpSwiper'
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
import mTabbar from '@/components/m-tabbar/m-tabbar.vue' import mTabbar from '@/components/m-tabbar/m-tabbar.vue'
import WaterfallsFlow from '@/components/plantWaterfallsFlow/WaterfallsFlow.vue' import WaterfallsFlow from '@/components/plantWaterfallsFlow/WaterfallsFlow.vue'
@ -98,7 +105,8 @@
export default { export default {
components: { components: {
WaterfallsFlow, WaterfallsFlow,
mTabbar mTabbar,
zbpSwiper
}, },
data() { data() {
return { return {
@ -145,7 +153,7 @@
district: '', district: '',
town: '', town: '',
emptyShow: false, emptyShow: false,
ArticleHotList: [] articleList: []
} }
}, },
onLoad() { onLoad() {
@ -157,8 +165,6 @@
uni.$on('resetLocation', function() { uni.$on('resetLocation', function() {
console.log('resetLocation'); console.log('resetLocation');
}) })
this.district = this.location.address_component.district
this.town = this.location.address_component.street
}, },
onShow() {}, onShow() {},
computed: mapGetters(['location']), computed: mapGetters(['location']),
@ -171,7 +177,7 @@
async articleHotList() { async articleHotList() {
const res = await getArticleList(19) const res = await getArticleList(19)
// console.log('res', res); // console.log('res', res);
this.ArticleHotList = res.data.list this.articleList = res.data.list
}, },
gogogo(item) { gogogo(item) {
uni.navigateTo({ uni.navigateTo({
@ -269,6 +275,7 @@
.Circle_friends { .Circle_friends {
position: relative; position: relative;
padding: 0 0 87.72rpx 0; padding: 0 0 87.72rpx 0;
background: linear-gradient(180deg, #FFFFFF 0%, #F6F6F6 100%);
} }
.circle_friends_wrapper { .circle_friends_wrapper {
@ -344,16 +351,33 @@
margin: 0 auto; margin: 0 auto;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
margin-top: 38.6rpx; margin-top: 0;
.l_yun { .l_yun {
width: 456.14rpx; width: 456.14rpx;
border-radius: 8px; border-radius: 8px;
background: url("https://lihai001.oss-cn-chengdu.aliyuncs.com/public/kk/luzhou/static4/10/yun.png") no-repeat; background-image: url("@/static/images/zonghe.png");
background-repeat: no-repeat;
background-size: cover; background-size: cover;
overflow: hidden; overflow: hidden;
position: relative; position: relative;
display: flex;
flex-direction: column;
align-items: center;
.text-name {
margin-top: 14.04rpx;
text-align: center;
color: #fff;
font-weight: bold;
font-size: 29.82rpx;
text {
font-size: 40.35rpx;
}
}
.yun_title { .yun_title {
color: #B24322; color: #B24322;
background-color: #ffad99; background-color: #ffad99;
@ -388,124 +412,17 @@
width: 217.54rpx; width: 217.54rpx;
height: 100%; height: 100%;
font-size: 35.09rpx; font-size: 35.09rpx;
color: #7F1616;
padding-top: 28.07rpx; padding-top: 28.07rpx;
text-align: center; text-align: center;
background: url("https://lihai001.oss-cn-chengdu.aliyuncs.com/public/kk/luzhou/static4/10/lihai.png") no-repeat; background: url("@/static/images/lihaiyun.png") no-repeat;
background-size: cover; background-size: cover;
box-sizing: border-box; box-sizing: border-box;
border-radius: 8px;
color: #fff;
font-weight: bold;
.title { .title {
font-weight: bold; margin-top: 105.26rpx;
}
text {
font-size: 24.56rpx;
margin-top: 14.04rpx;
}
}
}
.bazaar_wrapper {
width: 694.74rpx;
margin: 0 auto;
.cloud,
.lihai {
position: relative;
width: 100%;
height: 189.47rpx;
background-size: cover;
margin-top: 24.56rpx;
.cont_box {
height: 100%;
padding: 21.05rpx;
.l_msg {
align-items: center;
color: #7F1616;
h3 {
margin-bottom: 24.56rpx;
}
}
.r_btn {
align-self: flex-end;
color: #fff;
text-align: center;
line-height: 66.67rpx;
width: 171.93rpx;
height: 66.67rpx;
background: linear-gradient(90deg, #FE5300 0%, #F84221 100%);
border-radius: 20px;
}
}
image {
width: 126.32rpx;
height: 126.32rpx;
border-radius: 8px;
margin-right: 31.58rpx;
}
}
.cloud {
background: url('@/static/images/shichang.png') no-repeat;
.top_label {
position: absolute;
right: 4px;
top: 4px;
z-index: -1;
display: flex;
// align-items: center;
.label_item {
color: #B24322;
padding: 3.51rpx 14.04rpx 21.05rpx 52.63rpx;
background: linear-gradient(90deg, #FFAD99 1%, #FFAB98 99%);
box-shadow: 0px 0px 6px 1px rgba(152, 19, 16, 0.45);
border-radius: 8px;
}
.town_label {
width: 250.88rpx;
overflow: hidden;
margin-left: -10px;
color: #3053DB;
background: linear-gradient(90deg, #A9B8FE 1%, #A8B8FE 99%);
}
}
.cont_box {
.l_msg {
align-items: flex-end;
}
}
}
.lihai {
background: url('@/static/images/lihai.png') no-repeat;
.top_label {
position: absolute;
right: 4px;
top: 4px;
z-index: -1;
display: flex;
align-items: center;
.label_item {
color: #B24322;
padding: 3.51rpx 14.04rpx 21.05rpx 52.63rpx;
background: linear-gradient(90deg, #FFAD99 1%, #FFAB98 99%);
box-shadow: 0px 0px 6px 1px rgba(152, 19, 16, 0.45);
border-radius: 8px;
}
} }
} }
} }
@ -517,47 +434,62 @@
} }
.article_box { .article_box {
height: 431.58rpx; height: 100%;
width: 694.74rpx; width: 694.74rpx;
margin: 38.6rpx auto; margin: 0 auto;
background-color: #fff; background-color: #fff;
border-radius: 8px; border-radius: 8px;
padding: 0 24.56rpx 24.56rpx 24.56rpx; padding: 0 24.56rpx;
box-sizing: border-box; box-sizing: border-box;
.article_item { .title-box {
height: 131.58rpx; height: 87.72rpx;
text {
font-size: 28.07rpx;
}
}
.article-item {
display: flex;
// height: 175.44rpx;
justify-content: space-between;
border-bottom: 1px solid #f0f0f0;
padding: 21.05rpx 0;
.text {
flex: 1;
height: 122.81rpx;
margin-right: 17.54rpx;
font-size: 24rpx;
color: #999;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
justify-content: center; justify-content: space-between;
border-bottom: 1px solid #CCCCCC;
.title { .name {
font-size: 28.07rpx; font-size: 26.32rpx;
font-weight: bold; color: #282828;
}
}
.pictrue {
width: 175.44rpx;
height: 122.81rpx;
image {
width: 100%; width: 100%;
white-space: nowrap; height: 100%;
overflow: hidden; border-radius: 8px;
text-overflow: ellipsis; }
margin-bottom: 10.53rpx;
}
.synopsis {
font-size: 21.05rpx;
color: #666;
width: 100%;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
} }
} }
} }
.tabs_wrapper { .tabs_wrapper {
width: 694.74rpx; width: 694.74rpx;
margin: 38.6rpx auto; margin: 38.6rpx auto;
margin-bottom: 21.05rpx;
::v-deep .u-tabs__wrapper__nav__item { ::v-deep .u-tabs__wrapper__nav__item {
padding: 0 !important; padding: 0 !important;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

BIN
static/images/lihaiyun.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

BIN
static/images/zonghe.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB