Browse Source

企业帮

master
岳鹏龙 8 months ago
parent
commit
51266896e7
  1. 34
      src/api/shop.ts
  2. 16
      src/components/zh-scroll/zh-scroll.vue
  3. 14
      src/pages.json
  4. 4
      src/pages/index/ChatDialog.vue
  5. 5
      src/pages/index/index.vue
  6. 405
      src/pages/index/shoppage/financialAssistance.vue
  7. 11
      src/pages/index/shoppage/interactiveZone.vue
  8. 470
      src/pages/index/shoppage/mediaHelp.vue
  9. 168
      src/pages/index/shoppage/qyDetail.vue
  10. 451
      src/pages/index/shoppage/qyHelp.vue
  11. 147
      src/pages/index/shoppage/qyhelpDetail.vue
  12. 133
      src/pages/index/shoppage/shopHelp.vue
  13. BIN
      src/static/img/hdzq.png

34
src/api/shop.ts

@ -155,3 +155,37 @@ export function ReportDetail(id: any) {
})
}
//企业帮分类列表
export function enterpriseCategory() {
return request.http({
url: '/api/huiqitong/enterprise/category',
method: 'GET'
})
}
//企业帮内容列表
export function enterpriseList(data:any) {
return request.http({
url: '/api/huiqitong/enterprise/list',
method: 'GET',
data
})
}
//企业帮内容详情
export function enterpriseInfo(data:any) {
return request.http({
url: '/api/huiqitong/enterprise/info',
method: 'GET',
data
})
}
//合同文库下载数增加
export function contractDownload(id:any) {
return request.http({
url: '/api/huiqitong/enterprise/contract/download/'+id,
method: 'GET',
})
}

16
src/components/zh-scroll/zh-scroll.vue

@ -11,12 +11,12 @@
@tap="handleMenuTap(item.id)"
>
<view class="changeicon" v-if="item.id == curCateId"></view>
<text class="menutitle">{{ item.name }}</text>
<text class="menutitle">{{ item.name||item.title }}</text>
</view>
</view>
</scroll-view>
<scroll-view class="goods" scroll-with-animation scroll-y :scroll-top="cateScrollTop" @scroll="handleGoodsScroll">
<view class="wrapper">
<view class="wrapper" v-if="mote === 'one'">
<view class="list">
<!-- category begin -->
<view class="category" v-for="(item, index) in goods" :key="index" :id="`cate-${item.id}`">
@ -45,6 +45,9 @@
<!-- category end -->
</view>
</view>
<view class="" v-if="mote === 'two'">
<slot></slot>
</view>
</scroll-view>
</view>
</template>
@ -53,9 +56,12 @@
import { ref, nextTick, getCurrentInstance, watch } from 'vue'
import { ICateItem } from './interface'
const baseurl = ref(import.meta.env.VITE_APP_BASE_URL + '/')
const emit = defineEmits(['tabId'])
const props = defineProps<{
scrollList: ICateItem[]
searchVal: string
searchVal: string,
mote: string
}>()
const instance = getCurrentInstance()
const menuScrollIntoView = ref('')
@ -87,7 +93,7 @@ function handleMenuTap(id: number) {
if (!sizeCalcState.value) {
calcSize()
}
emit('tabId',id)
curCateId.value = id
nextTick(() => {
@ -144,7 +150,7 @@ function calcSize() {
},
(data: any) => {
item.top = h
h += data.height
h += data?.height
item.bottom = h
}
).exec()

14
src/pages.json

@ -144,6 +144,20 @@
"navigationStyle": "custom"
}
},
{
"path": "pages/index/shoppage/qyDetail",
"style": {
"navigationBarTitleText": "企业帮",
"navigationStyle": "custom"
}
},
{
"path": "pages/index/shoppage/qyhelpDetail",
"style": {
"navigationBarTitleText": "企业帮",
"navigationStyle": "custom"
}
},
//
{
"path": "pages/learningCenter/detail",

4
src/pages/index/ChatDialog.vue

@ -9,9 +9,9 @@
mode="widthFix"
></image>
<view style="display: flex; align-items: center">
<view style="font-size: 50rpx; color: #007fff" @click="close">×</view>
<view style="font-size: 70rpx; color: #007fff" @click="close">×</view>
<image
style="width: 40rpx; height: 40rpx; margin-left: 40rpx"
style="width: 40rpx; height: 40rpx; margin-left: 40rpx;margin-top: 8rpx;"
@click="dxclick"
:src="isdx ? '/static/img/sx.png' : '/static/img/fd.png'"
mode=""

5
src/pages/index/index.vue

@ -775,7 +775,10 @@ onLoad(async () => {
left: -137rpx;
background-image: url(@/static/img/aiback.png);
background-size: 100% 100%;
padding: 20rpx 10rpx;
padding: 20rpx;
display: flex;
align-items: center;
justify-content: center;
.tit {
white-space: nowrap;
color: #2563eb;

405
src/pages/index/shoppage/financialAssistance.vue

@ -1,203 +1,218 @@
<template>
<u-navbar title="金融帮" placeholder="true" bg-color="#F1F3F9" :auto-back="true"></u-navbar>
<view class="container">
<u-search
@search="search"
@clickIcon="clickIcon"
@clear="clear"
shape="square"
placeholder="请输入搜索内容"
placeholder-color="#A9D4FF"
v-model="keyword"
search-icon="/static/img/search.png"
search-icon-size="14"
:show-action="false"
height="40"
margin="40rpx 24rpx 24rpx 24rpx"
bg-color="#FFFFFF"
></u-search>
<view class="main">
<scroll-view scroll-y="auto" class="hyonne" @scrolltolower="onloadmore">
<view class="ztone" v-for="(item, index) in ztList" :key="index" @click="godetail(item.id)">
<image style="width: 150rpx; height: 150rpx; border-radius: 28rpx; flex: 1" :src="baseurl + item.index_pic" mode=""></image>
<view class="rightpart">
<view class="splace">
{{ item.bank }}
</view>
<view class="titlepart">
<text class="title">{{ item.name }}</text>
<image style="width: 32rpx; height: 44rpx" src="@/static/img/Icon.png" mode="aspectFill"></image>
</view>
<view class="ms">
{{ item.branch }}
</view>
</view>
</view>
</scroll-view>
</view>
</view>
<liuDragButton :width-px="'145rpx'">
<image class="hdzq" src="@/static/img/hdzq.png" mode="" @click="gohdzq"></image>
</liuDragButton>
<u-navbar title="金融帮" placeholder="true" bg-color="#F1F3F9" :auto-back="true"></u-navbar>
<view class="container">
<u-search @search="search" @clickIcon="clickIcon" @clear="clear" shape="square" placeholder="请输入搜索内容"
placeholder-color="#A9D4FF" v-model="keyword" search-icon="/static/img/search.png" search-icon-size="14"
:show-action="false" height="40" margin="40rpx 24rpx 24rpx 24rpx" bg-color="#FFFFFF"></u-search>
<view class="main">
<scroll-view scroll-y="auto" class="hyonne" @scrolltolower="onloadmore">
<view class="ztone" v-for="(item, index) in ztList" :key="index" @click="godetail(item.id)">
<image style="width: 150rpx; height: 150rpx; border-radius: 28rpx; flex: 1"
:src="baseurl + item.index_pic" mode=""></image>
<view class="rightpart">
<view class="splace">
{{ item.bank }}
</view>
<view class="titlepart">
<text class="title">{{ item.name }}</text>
<image style="width: 32rpx; height: 44rpx" src="@/static/img/Icon.png" mode="aspectFill">
</image>
</view>
<view class="ms">
{{ item.branch }}
</view>
</view>
</view>
</scroll-view>
</view>
</view>
<liuDragButton :width-px="'145rpx'">
<view class="boxhd" @click="gohdzq">
<view class="txtt">
互动专区
</view>
<image class="hdzq" src="@/static/img/hdzq.png" mode="aspectFill"></image>
</view>
</liuDragButton>
</template>
<script setup>
import { ref } from 'vue'
import { financeList } from '@/api/shop'
import liuDragButton from '@/uni_modules/liu-drag-button/components/liu-drag-button/liu-drag-button.vue'
const baseurl = ref(import.meta.env.VITE_APP_BASE_URL + '/')
//
const keyword = ref('')
const page = ref(1)
const pagesize = ref(6)
const search = async (val) => {
page.value = 1
pagesize.value = 6
await getfinanceList(keyword.value, page.value, pagesize.value)
}
const clickIcon = async () => {
page.value = 1
pagesize.value = 6
await getfinanceList(keyword.value, page.value, pagesize.value)
}
const clear = async () => {
page.value = 1
pagesize.value = 6
await getfinanceList(keyword.value, page.value, pagesize.value)
}
const ztList = ref([])
const godetail = (id) => {
uni.navigateTo({
url: '/pages/index/shoppage/jrbDetail?id=' + id
})
}
const gohdzq = () => {
uni.navigateTo({
url: '/pages/index/shoppage/interactiveZone'
})
}
const getfinanceList = async (name, page, limit) => {
let params = {
keyword: name,
page: page,
limit: limit
}
await financeList(params).then((res) => {
ztList.value = res.data.data
})
}
const onloadmore = async () => {
page.value++
let params = {
keyword: keyword.value,
page: page.value,
limit: pagesize.value
}
await financeList(params).then((res) => {
ztList.value = [...ztList.value, ...res.data.data]
})
}
onShow(async () => {
await getfinanceList('', 1, 6)
})
import {
ref
} from 'vue'
import {
financeList
} from '@/api/shop'
import liuDragButton from '@/uni_modules/liu-drag-button/components/liu-drag-button/liu-drag-button.vue'
const baseurl = ref(import.meta.env.VITE_APP_BASE_URL + '/')
//
const keyword = ref('')
const page = ref(1)
const pagesize = ref(6)
const search = async (val) => {
page.value = 1
pagesize.value = 6
await getfinanceList(keyword.value, page.value, pagesize.value)
}
const clickIcon = async () => {
page.value = 1
pagesize.value = 6
await getfinanceList(keyword.value, page.value, pagesize.value)
}
const clear = async () => {
page.value = 1
pagesize.value = 6
await getfinanceList(keyword.value, page.value, pagesize.value)
}
const ztList = ref([])
const godetail = (id) => {
uni.navigateTo({
url: '/pages/index/shoppage/jrbDetail?id=' + id
})
}
const gohdzq = () => {
uni.navigateTo({
url: '/pages/index/shoppage/interactiveZone?tabid='+1
})
}
const getfinanceList = async (name, page, limit) => {
let params = {
keyword: name,
page: page,
limit: limit
}
await financeList(params).then((res) => {
ztList.value = res.data.data
})
}
const onloadmore = async () => {
page.value++
let params = {
keyword: keyword.value,
page: page.value,
limit: pagesize.value
}
await financeList(params).then((res) => {
ztList.value = [...ztList.value, ...res.data.data]
})
}
onShow(async () => {
await getfinanceList('', 1, 6)
})
</script>
<style scoped lang="scss">
.container {
background: linear-gradient(0deg, #f1f3f9 72%, rgba(129, 179, 222, 0.5) 88%);
height: calc(100vh - 178rpx);
width: 100%;
overflow-y: hidden;
.hyonne {
max-height: calc(100vh - 350rpx);
overflow-y: auto;
}
.main {
margin-top: 10rpx;
width: 100%;
height: 100%;
padding: 0 24rpx;
box-sizing: border-box;
overflow-y: hidden;
.ztone {
display: flex;
align-items: center;
width: 100%;
height: 210rpx;
margin-top: 30rpx;
padding: 30rpx;
border-radius: 20rpx;
background: #ffffff;
box-sizing: border-box;
border: 2rpx solid rgba(0, 127, 255, 0.12);
.rightpart {
width: 100%;
margin-left: 40rpx;
flex: 3;
display: grid;
.titlepart {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
.title {
font-family: Poppins;
font-size: 24rpx;
font-weight: 600;
line-height: 34rpx;
letter-spacing: normal;
/* 外部/Colors/Dark/Base 1 */
color: #161719;
margin-top: 13rpx;
}
}
.splace {
font-family: Poppins;
font-size: 24rpx;
font-weight: normal;
line-height: 34rpx;
letter-spacing: normal;
/* 外部/Colors/Dark/Base 1 */
color: #161719;
}
.ms {
margin-top: 13rpx;
font-family: Poppins;
font-size: 20rpx;
font-weight: normal;
line-height: 28rpx;
letter-spacing: normal;
/* 外部/Colors/Light/Base 3 */
color: #91919f;
}
}
}
}
}
.hdzq {
width: 212rpx;
height: 86rpx;
position: fixed;
right: 0;
top: 70%;
margin-right: -14rpx;
}
.container {
background: linear-gradient(0deg, #f1f3f9 72%, rgba(129, 179, 222, 0.5) 88%);
height: calc(100vh - 178rpx);
width: 100%;
overflow-y: hidden;
.hyonne {
max-height: calc(100vh - 350rpx);
overflow-y: auto;
}
.main {
margin-top: 10rpx;
width: 100%;
height: 100%;
padding: 0 24rpx;
box-sizing: border-box;
overflow-y: hidden;
.ztone {
display: flex;
align-items: center;
width: 100%;
height: 210rpx;
margin-top: 30rpx;
padding: 30rpx;
border-radius: 20rpx;
background: #ffffff;
box-sizing: border-box;
border: 2rpx solid rgba(0, 127, 255, 0.12);
.rightpart {
width: 100%;
margin-left: 40rpx;
flex: 3;
display: grid;
.titlepart {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
.title {
font-family: Poppins;
font-size: 24rpx;
font-weight: 600;
line-height: 34rpx;
letter-spacing: normal;
/* 外部/Colors/Dark/Base 1 */
color: #161719;
margin-top: 13rpx;
}
}
.splace {
font-family: Poppins;
font-size: 24rpx;
font-weight: normal;
line-height: 34rpx;
letter-spacing: normal;
/* 外部/Colors/Dark/Base 1 */
color: #161719;
}
.ms {
margin-top: 13rpx;
font-family: Poppins;
font-size: 20rpx;
font-weight: normal;
line-height: 28rpx;
letter-spacing: normal;
/* 外部/Colors/Light/Base 3 */
color: #91919f;
}
}
}
}
}
.boxhd {
.txtt {
margin-top: 42rpx;
position: absolute;
z-index: 1;
white-space: nowrap;
margin-left: -52rpx;
font-family: Source Han Sans;
font-size: 28rpx;
font-weight: 350;
color: #FFFFFF;
}
.hdzq {
width: 212rpx;
height: 86rpx;
position: fixed;
right: 0;
top: 70%;
margin-right: -14rpx;
}
}
</style>

11
src/pages/index/shoppage/interactiveZone.vue

@ -1,7 +1,7 @@
<template>
<u-navbar :title="'互动专区'" placeholder="true" bg-color="#F1F3F9" :auto-back="true" />
<view class="container">
<u-tabs :list="list1" @click="click"></u-tabs>
<u-tabs :list="list1" @click="click" :current="current"></u-tabs>
<scroll-view class="cardbox" scroll-y="true" @scrolltolower="scrolltolower">
<view class="dhone" v-for="(item, index) in datalist" :key="index">
<view class="head">
@ -65,10 +65,12 @@ const userStore = useUserStore()
const url = ref(import.meta.env.VITE_APP_BASE_URL)
const current = ref(0)
//
const list1 = reactive([
{
name: '店帮',
name: '店帮',
id: 1
},
{
@ -168,6 +170,7 @@ const pldzClick = (postid, like, id) => {
}
onLoad(async (e) => {
current.value = e.tabid
page.value = 1
datalist.value = []
await getpostsList()
@ -178,12 +181,12 @@ onLoad(async (e) => {
<style scoped lang="scss">
.container {
background-color: #f1f3f9;
height: calc(100vh - 96px);
height: calc(100vh - 192rpx);
overflow: hidden;
width: 100%;
.cardbox {
max-height: calc(100vh - 150px);
max-height: calc(100vh - 300rpx);
.dhone {
margin-top: 30rpx;

470
src/pages/index/shoppage/mediaHelp.vue

@ -1,256 +1,272 @@
<template>
<view class="container">
<u-navbar title="媒体帮" placeholder="true" bg-color="#F1F3F9" :auto-back="true"></u-navbar>
<u-search
@search="search"
@clickIcon="clickIcon"
@clear="clear"
shape="square"
placeholder="请输入搜索内容"
placeholder-color="#a4c7ff"
v-model="keyword"
search-icon="/static/img/search.png"
search-icon-size="14"
:show-action="false"
height="40"
margin="40rpx 24rpx 24rpx 24rpx"
></u-search>
<scroll-view scroll-y="auto" class="mtlist" @scrolltolower="onloadmore">
<view class="mtone" v-for="(item, index) in mtList" :key="index" @click="gomtbdetail(item.id)">
<view class="headpart">
<u-avatar :src="baseurl + item.head_pic" size="44"></u-avatar>
<view class="right">
<text class="name">{{ item.name }}</text>
<view class="tab" v-if="item.tag_name !== ''">
{{ item.tag_name }}
</view>
</view>
</view>
<image style="width: 100%; height: 400rpx; margin-top: 30rpx" :src="baseurl + item.publicize_pic" mode=""></image>
<view class="bottompart">
<view class="part">
<image style="width: 22rpx; height: 24rpx" src="@/static/img/dh.png" mode=""></image>
<text class="text">{{ item.tel }}</text>
</view>
<view class="part">
<image style="width: 22rpx; height: 24rpx" src="@/static/img/yx.png" mode=""></image>
<view class="text">{{ item.email }}</view>
</view>
</view>
</view>
</scroll-view>
<view class="fbxxbutton">
<view class="button" @click="gofbxx">发布信息</view>
</view>
</view>
<liuDragButton :width-px="'145rpx'">
<image class="hdzq" src="@/static/img/hdzq.png" mode="" @click="gohdzq"></image>
</liuDragButton>
<view class="container">
<u-navbar title="媒体帮" placeholder="true" bg-color="#F1F3F9" :auto-back="true"></u-navbar>
<u-search @search="search" @clickIcon="clickIcon" @clear="clear" shape="square" placeholder="请输入搜索内容"
placeholder-color="#a4c7ff" v-model="keyword" search-icon="/static/img/search.png" search-icon-size="14"
:show-action="false" height="40" margin="40rpx 24rpx 24rpx 24rpx"></u-search>
<scroll-view scroll-y="auto" class="mtlist" @scrolltolower="onloadmore">
<view class="mtone" v-for="(item, index) in mtList" :key="index" @click="gomtbdetail(item.id)">
<view class="headpart">
<u-avatar :src="baseurl + item.head_pic" size="44"></u-avatar>
<view class="right">
<text class="name">{{ item.name }}</text>
<view class="tab" v-if="item.tag_name !== ''">
{{ item.tag_name }}
</view>
</view>
</view>
<image style="width: 100%; height: 400rpx; margin-top: 30rpx" :src="baseurl + item.publicize_pic"
mode=""></image>
<view class="bottompart">
<view class="part">
<image style="width: 22rpx; height: 24rpx" src="@/static/img/dh.png" mode=""></image>
<text class="text">{{ item.tel }}</text>
</view>
<view class="part">
<image style="width: 22rpx; height: 24rpx" src="@/static/img/yx.png" mode=""></image>
<view class="text">{{ item.email }}</view>
</view>
</view>
</view>
</scroll-view>
<view class="fbxxbutton">
<view class="button" @click="gofbxx">发布信息</view>
</view>
</view>
<liuDragButton :width-px="'145rpx'">
<view class="boxhd" @click="gohdzq">
<view class="txtt">
互动专区
</view>
<image class="hdzq" src="@/static/img/hdzq.png" mode="aspectFill"></image>
</view>
</liuDragButton>
</template>
<script setup>
import { ref } from 'vue'
import { mediumList } from '@/api/shop'
import liuDragButton from '@/uni_modules/liu-drag-button/components/liu-drag-button/liu-drag-button.vue'
import {
ref
} from 'vue'
import {
mediumList
} from '@/api/shop'
import liuDragButton from '@/uni_modules/liu-drag-button/components/liu-drag-button/liu-drag-button.vue'
const baseurl = ref(import.meta.env.VITE_APP_BASE_URL + '/')
const baseurl = ref(import.meta.env.VITE_APP_BASE_URL + '/')
//
const keyword = ref('')
const page = ref(1)
const pagesize = ref(2)
//
const keyword = ref('')
const page = ref(1)
const pagesize = ref(2)
const search = async (val) => {
page.value = 1
pagesize.value = 2
await getmediumList(keyword.value, page.value, pagesize.value)
}
const search = async (val) => {
page.value = 1
pagesize.value = 2
await getmediumList(keyword.value, page.value, pagesize.value)
}
const clickIcon = async () => {
page.value = 1
pagesize.value = 2
await getmediumList(keyword.value, page.value, pagesize.value)
}
const clickIcon = async () => {
page.value = 1
pagesize.value = 2
await getmediumList(keyword.value, page.value, pagesize.value)
}
const clear = async () => {
page.value = 1
pagesize.value = 2
await getmediumList(keyword.value, page.value, pagesize.value)
}
const clear = async () => {
page.value = 1
pagesize.value = 2
await getmediumList(keyword.value, page.value, pagesize.value)
}
const gohdzq = () => {
uni.navigateTo({
url: '/pages/index/shoppage/interactiveZone'
})
}
const gohdzq = () => {
uni.navigateTo({
url: '/pages/index/shoppage/interactiveZone?tabid='+2
})
}
const mtList = ref([])
const mtList = ref([])
const gomtbdetail = (id) => {
uni.navigateTo({
url: '/pages/index/shoppage/mediaDetail?id=' + id + '&type=' + 'mt'
})
}
const gomtbdetail = (id) => {
uni.navigateTo({
url: '/pages/index/shoppage/mediaDetail?id=' + id + '&type=' + 'mt'
})
}
const gofbxx = () => {
uni.navigateTo({
url: '/pages/index/shoppage/mtbmakeMessage'
})
}
const gofbxx = () => {
uni.navigateTo({
url: '/pages/index/shoppage/mtbmakeMessage'
})
}
const getmediumList = async (name, page, limit) => {
let params = {
name: name,
page: page,
limit: limit
}
await mediumList(params).then((res) => {
mtList.value = res.data.data
})
}
const getmediumList = async (name, page, limit) => {
let params = {
name: name,
page: page,
limit: limit
}
await mediumList(params).then((res) => {
mtList.value = res.data.data
})
}
const onloadmore = async () => {
page.value++
let params = {
name: keyword.value,
page: page.value,
limit: pagesize.value
}
await mediumList(params).then((res) => {
mtList.value = [...mtList.value, ...res.data.data]
})
}
const onloadmore = async () => {
page.value++
let params = {
name: keyword.value,
page: page.value,
limit: pagesize.value
}
await mediumList(params).then((res) => {
mtList.value = [...mtList.value, ...res.data.data]
})
}
onShow(async () => {
await getmediumList('', 1, 2)
})
onShow(async () => {
await getmediumList('', 1, 2)
})
</script>
<style scoped lang="scss">
.container {
background: linear-gradient(0deg, #f1f3f9 72%, rgba(62, 146, 249, 0.2) 88%);
width: 100%;
overflow: hidden;
.mtlist {
margin-top: 8rpx;
padding: 0 24rpx;
box-sizing: border-box;
overflow-y: auto;
height: 100vh;
max-height: calc(100vh - 336rpx);
padding-bottom: 168rpx;
.container {
background: linear-gradient(0deg, #f1f3f9 72%, rgba(62, 146, 249, 0.2) 88%);
width: 100%;
overflow: hidden;
.mtone {
margin-top: 30rpx;
width: 100%;
height: 666rpx;
border-radius: 24rpx;
background: #ffffff;
display: grid;
padding: 40rpx 24rpx;
box-sizing: border-box;
.mtlist {
margin-top: 8rpx;
padding: 0 24rpx;
box-sizing: border-box;
overflow-y: auto;
height: 100vh;
max-height: calc(100vh - 336rpx);
padding-bottom: 168rpx;
.headpart {
display: flex;
align-items: center;
.mtone {
margin-top: 30rpx;
width: 100%;
height: 666rpx;
border-radius: 24rpx;
background: #ffffff;
display: grid;
padding: 40rpx 24rpx;
box-sizing: border-box;
.right {
margin-left: 16rpx;
display: grid;
justify-items: baseline;
.name {
font-family: Source Han Sans;
font-size: 32rpx;
font-weight: 350;
line-height: 43.2rpx;
display: flex;
align-items: center;
text-transform: capitalize;
letter-spacing: normal;
color: #0c092a;
}
.tab {
margin-top: 8rpx;
padding: 6rpx 20rpx;
border-radius: 0rpx 4rpx 20rpx 0rpx;
background: linear-gradient(70deg, #312984 -45%, #867bf5 99%);
font-family: YouSheBiaoTiHei;
font-size: 24rpx;
font-weight: normal;
display: flex;
align-items: center;
justify-content: center;
color: #ffffff;
text-shadow: 0rpx 4rpx 4rpx rgba(0, 0, 0, 0.2);
}
}
}
.headpart {
display: flex;
align-items: center;
.bottompart {
margin-top: 26rpx;
display: flex;
justify-content: space-between;
.right {
margin-left: 16rpx;
display: grid;
justify-items: baseline;
.part {
display: flex;
align-items: center;
.name {
font-family: Source Han Sans;
font-size: 32rpx;
font-weight: 350;
line-height: 43.2rpx;
display: flex;
align-items: center;
text-transform: capitalize;
letter-spacing: normal;
color: #0c092a;
}
.text {
margin-left: 8rpx;
font-family: Source Han Sans;
font-size: 28rpx;
font-weight: 300;
line-height: 33.6rpx;
display: flex;
align-items: center;
letter-spacing: normal;
color: #606266;
}
}
}
}
}
}
.tab {
margin-top: 8rpx;
padding: 6rpx 20rpx;
border-radius: 0rpx 4rpx 20rpx 0rpx;
background: linear-gradient(70deg, #312984 -45%, #867bf5 99%);
font-family: YouSheBiaoTiHei;
font-size: 24rpx;
font-weight: normal;
display: flex;
align-items: center;
justify-content: center;
color: #ffffff;
text-shadow: 0rpx 4rpx 4rpx rgba(0, 0, 0, 0.2);
}
}
}
.hdzq {
width: 212rpx;
height: 86rpx;
position: fixed;
right: 0;
top: 70%;
margin-right: -14rpx;
}
.bottompart {
margin-top: 26rpx;
display: flex;
justify-content: space-between;
.fbxxbutton {
width: 100%;
height: 168rpx;
position: fixed;
bottom: 0;
background: #ffffff;
/* 标签栏投影 */
box-shadow: 0rpx 0rpx 20rpx 0rpx rgba(0, 0, 0, 0.3);
display: flex;
align-items: center;
justify-content: center;
.part {
display: flex;
align-items: center;
.button {
width: 574rpx;
height: 96rpx;
border-radius: 248rpx;
background: linear-gradient(90deg, #007fff 0%, #99ccff 100%);
font-family: Source Han Sans;
font-size: 36rpx;
font-weight: 500;
line-height: 32rpx;
text-align: justify;
/* 浏览器可能不支持 */
display: flex;
align-items: center;
letter-spacing: normal;
color: #ffffff;
display: flex;
align-items: center;
justify-content: center;
}
}
.text {
margin-left: 8rpx;
font-family: Source Han Sans;
font-size: 28rpx;
font-weight: 300;
line-height: 33.6rpx;
display: flex;
align-items: center;
letter-spacing: normal;
color: #606266;
}
}
}
}
}
}
.boxhd {
.txtt {
margin-top: 42rpx;
position: absolute;
z-index: 1;
white-space: nowrap;
margin-left: -52rpx;
font-family: Source Han Sans;
font-size: 28rpx;
font-weight: 350;
color: #FFFFFF;
}
.hdzq {
width: 212rpx;
height: 86rpx;
position: fixed;
right: 0;
top: 70%;
margin-right: -14rpx;
}
}
.fbxxbutton {
width: 100%;
height: 168rpx;
position: fixed;
bottom: 0;
background: #ffffff;
/* 标签栏投影 */
box-shadow: 0rpx 0rpx 20rpx 0rpx rgba(0, 0, 0, 0.3);
display: flex;
align-items: center;
justify-content: center;
.button {
width: 574rpx;
height: 96rpx;
border-radius: 248rpx;
background: linear-gradient(90deg, #007fff 0%, #99ccff 100%);
font-family: Source Han Sans;
font-size: 36rpx;
font-weight: 500;
line-height: 32rpx;
text-align: justify;
/* 浏览器可能不支持 */
display: flex;
align-items: center;
letter-spacing: normal;
color: #ffffff;
display: flex;
align-items: center;
justify-content: center;
}
}
</style>

168
src/pages/index/shoppage/qyDetail.vue

@ -0,0 +1,168 @@
<template>
<u-navbar :title="'企业帮'" placeholder="true" bg-color="#F1F3F9" :auto-back="true" />
<view class="container">
<view class="main">
<view class="head">
<image class="toux" :src="baseurl + userData.head_pic" mode=""></image>
<view style="margin-left: 40rpx;display: grid;justify-items: flex-start;">
<text class="name">{{ userData.name }}</text>
<text class="type">{{ userData.enterprise }}</text>
</view>
</view>
<view class="content">
<view class="titlepart">
<view class="icon"></view>
<text class="title">个人介绍</text>
</view>
<u-parse v-if="userData.introduction" :content="userData.introduction"></u-parse>
<view class="titlepart">
<view class="icon"></view>
<text class="title">联系电话</text>
</view>
<view class="people">
<text class="text">{{ userData.mobile }}</text>
</view>
<view class="titlepart">
<view class="icon"></view>
<text class="title">微信二维码</text>
</view>
<image style="width: 338rpx; height: 338rpx; margin-top: 28rpx; margin-left: 24%"
:src="baseurl + userData.code_pic" mode=""></image>
</view>
</view>
</view>
</template>
<script setup>
import {
onLoad
} from '@dcloudio/uni-app'
import {
ref
} from 'vue'
import {
enterpriseInfo
} from '@/api/shop'
const baseurl = ref(import.meta.env.VITE_APP_BASE_URL + '/')
const userData = ref({})
onLoad(async (param) => {
await enterpriseInfo({id:param.id,category_id:param.current}).then((res) => {
if (res.code === 1) {
userData.value = res.data
}
})
})
</script>
<style scoped lang="scss">
.container {
background-color: #ffffff;
height: calc(100vh - 182rpx);
width: 100%;
.main {
width: 100%;
.head {
padding: 40rpx;
box-sizing: border-box;
width: 100%;
display: flex;
.toux {
width: 180rpx;
height: 180rpx;
box-sizing: border-box;
border-radius: 50%;
box-shadow: 0rpx 8rpx 40rpx 0rpx rgba(101, 101, 101, 0.15);
}
.name {
margin-top: 32rpx;
font-family: Inter;
font-size: 32rpx;
font-weight: 350;
color: #000000;
}
.type {
margin-top: 40rpx;
margin-top: 4rpx;
font-family: Inter;
font-size: 32rpx;
font-weight: 350;
color: #858494;
}
}
.content {
padding: 0 40rpx;
box-sizing: border-box;
padding-bottom: 100rpx;
}
}
.titlepart {
margin-top: 40rpx;
display: flex;
align-items: center;
.icon {
width: 12rpx;
height: 32rpx;
border-radius: 0rpx 32rpx 32rpx 0rpx;
/* 蓝色渐变 */
background: linear-gradient(0deg, #007fff 0%, #99ccff 100%);
}
.title {
margin-left: 18rpx;
font-family: Source Han Sans;
font-size: 30rpx;
font-weight: 350;
line-height: 32rpx;
text-align: justify;
/* 浏览器可能不支持 */
display: flex;
align-items: center;
letter-spacing: normal;
color: #0072ff;
}
}
.message {
margin-top: 36rpx;
font-family: Source Han Sans;
font-size: 32rpx;
font-weight: 300;
line-height: 60rpx;
text-align: justify;
/* 浏览器可能不支持 */
display: flex;
align-items: center;
letter-spacing: normal;
color: #3d3d3d;
}
.people {
margin-top: 28rpx;
display: flex;
.text {
font-family: Source Han Sans;
font-size: 32rpx;
font-weight: 300;
line-height: 60rpx;
text-align: justify;
/* 浏览器可能不支持 */
display: flex;
align-items: center;
letter-spacing: normal;
color: #3d3d3d;
}
}
}
</style>

451
src/pages/index/shoppage/qyHelp.vue

@ -1,77 +1,404 @@
<template>
<u-navbar title="企业帮" placeholder="true" bg-color="#F1F3F9" :auto-back="true"></u-navbar>
<view class="container">
<u-search
@search="search"
@clickIcon="clickIcon"
shape="square"
placeholder="请输入搜索内容"
placeholder-color="#a4c7ff"
v-model="keyword"
search-icon="/static/img/search.png"
search-icon-size="14"
:show-action="false"
height="40"
margin="40rpx 24rpx 24rpx 24rpx"
></u-search>
<zh-scroll ref="zhscrollRel" :scroll-list="goods" :search-val="keyword"></zh-scroll>
</view>
<liuDragButton :width-px="'145rpx'">
<image class="hdzq" src="@/static/img/hdzq.png" mode="aspectFill" @click="gohdzq"></image>
</liuDragButton>
<u-navbar title="企业帮" placeholder="true" bg-color="#F1F3F9" :auto-back="true"></u-navbar>
<view class="container">
<u-search @search="search" @clickIcon="clickIcon" shape="square" placeholder="请输入搜索内容"
placeholder-color="#a4c7ff" v-model="keyword" search-icon="/static/img/search.png" search-icon-size="14"
:show-action="false" height="40" margin="40rpx 24rpx 24rpx 24rpx"></u-search>
<zh-scroll ref="zhscrollRel" :scroll-list="goods" :mote="'two'" :search-val="keyword" @tabId="lefttabId">
<scroll-view scroll-y class="reightpp" @scrolltolower="onloadmore" v-if="current === 1">
<view class="ztone" v-for="(item, index) in rightData" :key="index" @click="godetail(item.id)">
<image style="width: 80rpx; height: 80rpx; flex: 1;border-radius: 16rpx;"
:src="baseurl+item.head_pic" mode="widthFix"></image>
<view class="rightpart">
<view class="splace">
{{ item.name }}
</view>
<text class="title">{{ item.enterprise }}</text>
</view>
<image style="width: 32rpx; height: 44rpx" src="@/static/img/Icon.png" mode="aspectFill"></image>
</view>
</scroll-view>
<scroll-view scroll-y class="reightpp" v-else-if="current === 2">
<view class="wkbox">
<view class="wkone" v-for="(item, index) in rightData" :key="index">
<view class="tittt">
{{item.title}}
</view>
<view class="xzs">
下载人数
<view class="num">
{{item.download_num}}
</view>
</view>
<view class="ljxz" @click="downwk(item.id,baseurl+item.filepath)">
立即下载
</view>
</view>
</view>
</scroll-view>
<scroll-view scroll-y class="reightpp" v-else>
<view class="list">
<!-- category begin -->
<view class="category">
<view class="items">
<!-- 商品 begin -->
<view class="good" v-for="(good, key) in rightData" :key="key" @click="goqydetail(good.id)">
<slot name="custom">
<!-- <image :src="good.images" class="image"></image> -->
<!-- <view class="title"> -->
<!-- <image :src="baseurl+good.icon_path" class="icon"></image> -->
<text class="name">{{ good.title }}</text>
<!-- </view> -->
<image class="lefticon" src="@/static/img/icon2.png" mode=""></image>
<!-- <view class="right"> -->
<!-- <text class="tips">{{ good.content }}</text> -->
<!-- </view> -->
</slot>
</view>
<!-- 商品 end -->
</view>
</view>
<!-- category end -->
</view>
</scroll-view>
</zh-scroll>
</view>
<liuDragButton :width-px="'145rpx'">
<view class="boxhd" @click="gohdzq">
<view class="txtt">
互动专区
</view>
<image class="hdzq" src="@/static/img/hdzq.png" mode="aspectFill"></image>
</view>
</liuDragButton>
</template>
<script setup>
import { ref } from 'vue'
import {
ref
} from 'vue'
import zhScroll from '@/components/zh-scroll/zh-scroll.vue'
import { storeList } from '@/api/shop'
import liuDragButton from '@/uni_modules/liu-drag-button/components/liu-drag-button/liu-drag-button.vue'
import zhScroll from '@/components/zh-scroll/zh-scroll.vue'
import {
enterpriseCategory,
enterpriseList,
contractDownload
} from '@/api/shop'
import liuDragButton from '@/uni_modules/liu-drag-button/components/liu-drag-button/liu-drag-button.vue'
const baseurl = ref(import.meta.env.VITE_APP_BASE_URL + '/')
const zhscrollRel = ref(null)
const zhscrollRel = ref(null)
//
const keyword = ref('')
const current = ref(1)
const page = ref(1)
const limit = ref(8)
const goods = ref([])
//
const keyword = ref('')
const search = (val) => {
zhscrollRel.value.searchleMenuTap(keyword.value)
}
const goods = ref([])
const rightData = ref([])
const clickIcon = () => {
zhscrollRel.value.searchleMenuTap(keyword.value)
}
const search = (val) => {
page.value = 1
limit.value = 8
getRightdata()
}
const gohdzq = () => {
uni.navigateTo({
url: '/pages/index/shoppage/interactiveZone'
})
}
const clickIcon = () => {
page.value = 1
limit.value = 8
getRightdata()
}
onShow(async () => {
await storeList({}).then((res) => {
goods.value = res.data
})
})
const onloadmore = async () => {
page.value++
let params = {
category_id: current.value,
title: keyword.value,
page: page.value,
limit: limit.value
}
await enterpriseList(params).then((res) => {
rightData.value = [...rightData.value, ...res.data.data]
})
}
const gohdzq = () => {
uni.navigateTo({
url: '/pages/index/shoppage/interactiveZone?tabid=' + 3
})
}
const lefttabId = (id) => {
page.value = 1
limit.value = 8
current.value = id
getRightdata()
}
const getRightdata = async () => {
let param = {
category_id: current.value,
title: keyword.value,
page: page.value,
limit: limit.value
}
await enterpriseList(param).then((res) => {
rightData.value = res.data.data
})
}
const godetail = (id) => {
uni.navigateTo({
url: '/pages/index/shoppage/qyDetail?id=' + id + '&current=' + current.value
})
}
const goqydetail = (id) => {
uni.navigateTo({
url: '/pages/index/shoppage/qyhelpDetail?id=' + id + '&current=' + current.value
})
}
const openDocument = (filePath) => {
const allowedTypes = ['pdf', 'doc', 'xls', 'ppt', 'docx', 'xlsx', 'pptx'];
const fileExt = filePath.split('.').pop().toLowerCase();
if (!allowedTypes.includes(fileExt)) {
return uni.showToast({ title: '不支持的文件格式', icon: 'none' });
}
uni.openDocument({
filePath,
showMenu: true, //
success: () => {
// progressVisible.value = false;
}
});
};
const downwk = (id,url) => {
uni.showLoading({ title: '下载中...' });
uni.downloadFile({
url,
success: (res) => {
if (res.statusCode === 200) {
//
uni.saveFile({
tempFilePath: res.tempFilePath,
success: (saveRes) => {
uni.hideLoading();
uni.showToast({ title: '下载成功', icon: 'success' });
openDocument(saveRes.savedFilePath);
contractDownload(id)
}
});
}
},
fail: (err) => {
uni.hideLoading();
uni.showToast({ title: '下载失败', icon: 'none' });
}
});
}
onLoad(async () => {
await enterpriseCategory({}).then((res) => {
goods.value = res.data
})
await getRightdata()
})
</script>
<style scoped lang="scss">
.container {
background-color: #ffffff;
height: calc(100vh - 254rpx);
width: 100%;
.cate-tab {
height: calc(100vh - 254rpx);
}
}
.hdzq {
width: 212rpx;
height: 86rpx;
position: fixed;
right: 0;
top: 70%;
margin-right: -14rpx;
}
.container {
background-color: #ffffff;
height: calc(100vh - 254rpx);
width: 100%;
.cate-tab {
height: calc(100vh - 254rpx);
}
}
.boxhd {
.txtt {
margin-top: 42rpx;
position: absolute;
z-index: 1;
white-space: nowrap;
margin-left: -52rpx;
font-family: Source Han Sans;
font-size: 28rpx;
font-weight: 350;
color: #FFFFFF;
}
.hdzq {
width: 212rpx;
height: 86rpx;
position: fixed;
right: 0;
top: 70%;
margin-right: -14rpx;
}
}
.reightpp {
width: 100%;
padding: 30rpx;
box-sizing: border-box;
gap: 20rpx;
.ztone {
display: flex;
align-items: center;
width: 100%;
padding: 20rpx;
border-radius: 8rpx;
background: #ffffff;
box-sizing: border-box;
border: 2rpx solid #F1F3F9;
.rightpart {
width: 100%;
margin-left: 20rpx;
flex: 3;
display: grid;
align-content: space-between;
.splace {
font-family: Source Han Sans;
font-size: 20rpx;
font-weight: 600;
color: #0C092A;
}
.title {
margin-top: 20rpx;
font-family: Source Han Sans;
font-size: 20rpx;
color: #666666;
}
}
}
.wkbox {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 20rpx;
width: 100%;
.wkone {
background: #F1F3F9;
border-radius: 20rpx;
padding: 32rpx 24rpx 20rpx 24rpx;
box-sizing: border-box;
.tittt {
font-family: Source Han Sans;
font-size: 28rpx;
color: #444444;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 1;
overflow: hidden;
}
.xzs {
margin-top: 70rpx;
font-size: 19.4rpx;
color: #B0B0B5;
display: flex;
align-items: center;
.num {
margin-left: 6rpx;
font-size: 19.4rpx;
color: #2563EB
}
}
.ljxz {
margin-top: 24rpx;
padding: 8rpx 40rpx;
box-sizing: border-box;
border-radius: 40rpx;
display: flex;
align-items: center;
justify-content: center;
background: linear-gradient(90deg, #007FFF 0%, #99CCFF 100%);
font-size: 20rpx;
color: #FFFFFF;
}
}
}
.list {
width: 100%;
font-size: 28rpx;
padding-bottom: 130rpx;
.category {
width: 100%;
.title {
padding: 10rpx 0;
display: flex;
align-items: center;
color: #0c092a;
.icon {
width: 38rpx;
height: 38rpx;
}
.fristtitle {
margin-left: 20rpx;
font-family: Source Han Sans;
font-size: 28rpx;
font-weight: 530;
line-height: 48rpx;
display: flex;
align-items: center;
letter-spacing: normal;
color: #0c092a;
}
}
}
.items {
display: flex;
flex-direction: column;
padding-bottom: -30rpx;
:deep(.good) {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 30rpx;
padding-left: 40rpx;
.name {
max-width: 100%;
margin-left: 10rpx;
font-family: Source Han Sans;
font-size: 28rpx;
font-weight: 300;
color: #606266;
overflow: hidden; /* 隐藏溢出内容 */
white-space: nowrap; /* 禁止换行 */
text-overflow: ellipsis; /* 显示省略号 */
}
.icon {
width: 38rpx;
height: 38rpx;
}
.lefticon {
width: 16rpx;
height: 28rpx;
margin-right: 6rpx;
}
}
}
}
}
</style>

147
src/pages/index/shoppage/qyhelpDetail.vue

@ -0,0 +1,147 @@
<template>
<u-navbar :title="'开店帮'" placeholder="true" bg-color="#F1F3F9" :auto-back="true" />
<view class="container">
<text class="title">{{ xdbData.title }}</text>
<text class="fbr">发布人{{ xdbData.publisher }}</text>
<view class="readtime">
<text class="time">{{ xdbData.create_time }}</text>
<view class="readnum">
阅读量
<text class="num">{{ xdbData.count }}</text>
</view>
</view>
<view class="nrxq">
<view class="icon"></view>
<text class="nrtitle">内容详情</text>
</view>
<u-parse :content="xdbData.content"></u-parse>
</view>
</template>
<script setup>
import { onLoad } from '@dcloudio/uni-app'
import { ref } from 'vue'
import { enterpriseInfo } from '@/api/shop'
const xdbData = ref({})
onLoad(async (param) => {
await enterpriseInfo({id:param.id,category_id:param.current}).then((res) => {
if (res.code === 1) {
xdbData.value = res.data
}
})
})
</script>
<style scoped lang="scss">
.container {
background-color: #ffffff;
height: calc(100vh - 182rpx);
width: 100%;
padding: 60rpx 40rpx 0 40rpx;
box-sizing: border-box;
.title {
font-family: Source Han Sans;
font-size: 36rpx;
font-weight: normal;
line-height: 48rpx;
display: flex;
align-items: center;
letter-spacing: normal;
color: #0c092a;
}
.fbr {
margin-top: 28rpx;
font-family: Source Han Sans;
font-size: 28rpx;
font-weight: 350;
line-height: 48rpx;
display: flex;
align-items: center;
letter-spacing: normal;
color: #858494;
}
.readtime {
margin-top: 28rpx;
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
.time {
font-family: Source Han Sans;
font-size: 28rpx;
font-weight: 350;
line-height: 48rpx;
display: flex;
align-items: center;
letter-spacing: normal;
color: #858494;
}
.readnum {
display: flex;
font-family: Source Han Sans;
font-size: 28rpx;
font-weight: 350;
line-height: 48rpx;
text-align: right;
display: flex;
align-items: center;
letter-spacing: normal;
/* 阅读量: */
color: #858494;
.num {
font-family: Source Han Sans;
font-size: 28rpx;
font-weight: 350;
line-height: 48rpx;
text-align: right;
display: flex;
align-items: center;
letter-spacing: normal;
/* 2 */
color: #007fff;
}
}
}
.nrxq {
display: flex;
align-items: center;
margin-top: 60rpx;
margin-bottom: 40rpx;
.icon {
width: 12rpx;
height: 32rpx;
border-radius: 0rpx 32rpx 32rpx 0rpx;
/* 蓝色渐变 */
background: linear-gradient(0deg, #007fff 0%, #99ccff 100%);
}
.nrtitle {
margin-left: 20rpx;
font-family: Source Han Sans;
font-size: 30rpx;
font-weight: 350;
line-height: 32rpx;
text-align: justify;
/* 浏览器可能不支持 */
display: flex;
align-items: center;
letter-spacing: normal;
color: #0072ff;
}
}
.message {
margin-top: 40rpx;
}
}
</style>

133
src/pages/index/shoppage/shopHelp.vue

@ -1,77 +1,90 @@
<template>
<u-navbar title="开店帮" placeholder="true" bg-color="#F1F3F9" :auto-back="true"></u-navbar>
<view class="container">
<u-search
@search="search"
@clickIcon="clickIcon"
shape="square"
placeholder="请输入搜索内容"
placeholder-color="#a4c7ff"
v-model="keyword"
search-icon="/static/img/search.png"
search-icon-size="14"
:show-action="false"
height="40"
margin="40rpx 24rpx 24rpx 24rpx"
></u-search>
<zh-scroll ref="zhscrollRel" :scroll-list="goods" :search-val="keyword"></zh-scroll>
</view>
<liuDragButton :width-px="'145rpx'">
<image class="hdzq" src="@/static/img/hdzq.png" mode="aspectFill" @click="gohdzq"></image>
</liuDragButton>
<u-navbar title="开店帮" placeholder="true" bg-color="#F1F3F9" :auto-back="true"></u-navbar>
<view class="container">
<u-search @search="search" @clickIcon="clickIcon" shape="square" placeholder="请输入搜索内容"
placeholder-color="#a4c7ff" v-model="keyword" search-icon="/static/img/search.png" search-icon-size="14"
:show-action="false" height="40" margin="40rpx 24rpx 24rpx 24rpx"></u-search>
<zh-scroll ref="zhscrollRel" :scroll-list="goods" :mote="'one'" :search-val="keyword"></zh-scroll>
</view>
<liuDragButton :width-px="'145rpx'">
<view class="boxhd" @click="gohdzq">
<view class="txtt">
互动专区
</view>
<image class="hdzq" src="@/static/img/hdzq.png" mode="aspectFill"></image>
</view>
</liuDragButton>
</template>
<script setup>
import { ref } from 'vue'
import {
ref
} from 'vue'
import zhScroll from '@/components/zh-scroll/zh-scroll.vue'
import { storeList } from '@/api/shop'
import liuDragButton from '@/uni_modules/liu-drag-button/components/liu-drag-button/liu-drag-button.vue'
import zhScroll from '@/components/zh-scroll/zh-scroll.vue'
import {
storeList
} from '@/api/shop'
import liuDragButton from '@/uni_modules/liu-drag-button/components/liu-drag-button/liu-drag-button.vue'
const zhscrollRel = ref(null)
const zhscrollRel = ref(null)
//
const keyword = ref('')
//
const keyword = ref('')
const goods = ref([])
const goods = ref([])
const search = (val) => {
zhscrollRel.value.searchleMenuTap(keyword.value)
}
const search = (val) => {
zhscrollRel.value.searchleMenuTap(keyword.value)
}
const clickIcon = () => {
zhscrollRel.value.searchleMenuTap(keyword.value)
}
const clickIcon = () => {
zhscrollRel.value.searchleMenuTap(keyword.value)
}
const gohdzq = () => {
uni.navigateTo({
url: '/pages/index/shoppage/interactiveZone'
})
}
const gohdzq = () => {
uni.navigateTo({
url: '/pages/index/shoppage/interactiveZone?tabid='+0
})
}
onShow(async () => {
await storeList({}).then((res) => {
goods.value = res.data
})
})
onShow(async () => {
await storeList({}).then((res) => {
goods.value = res.data
})
})
</script>
<style scoped lang="scss">
.container {
background-color: #ffffff;
height: calc(100vh - 254rpx);
width: 100%;
.container {
background-color: #ffffff;
height: calc(100vh - 254rpx);
width: 100%;
.cate-tab {
height: calc(100vh - 254rpx);
}
}
.cate-tab {
height: calc(100vh - 254rpx);
}
}
.hdzq {
width: 212rpx;
height: 86rpx;
position: fixed;
right: 0;
top: 70%;
margin-right: -14rpx;
}
.boxhd {
.txtt {
margin-top: 42rpx;
position: absolute;
z-index: 1;
white-space: nowrap;
margin-left: -52rpx;
font-family: Source Han Sans;
font-size: 28rpx;
font-weight: 350;
color: #FFFFFF;
}
.hdzq {
width: 212rpx;
height: 86rpx;
position: fixed;
right: 0;
top: 70%;
margin-right: -14rpx;
}
}
</style>

BIN
src/static/img/hdzq.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Loading…
Cancel
Save