Browse Source

修改bug

master
岳鹏龙 7 months ago
parent
commit
5abe88f698
  1. 18
      src/pages.json
  2. 9
      src/pages/index/ChatDialog.vue
  3. 46
      src/pages/index/active/activeDetail.vue
  4. 3
      src/pages/index/bnbdetail.vue
  5. 36
      src/pages/index/index.vue
  6. 10
      src/pages/index/shoppage/annualReport.vue
  7. 211
      src/pages/index/shoppage/contractLibrary.vue
  8. 80
      src/pages/index/shoppage/financialAssistance.vue
  9. 4
      src/pages/index/shoppage/interactiveZone.vue
  10. 159
      src/pages/index/shoppage/legalServices.vue
  11. 86
      src/pages/index/shoppage/mediaHelp.vue
  12. 2
      src/pages/index/shoppage/qyDetail.vue
  13. 2
      src/pages/index/shoppage/qyHelp.vue
  14. 3
      src/pages/index/shoppage/qyhelpDetail.vue
  15. 12
      src/pages/index/shoppage/shopHelp.vue
  16. 5
      src/pages/index/shoppage/shophelpDetail.vue
  17. 68
      src/pages/index/specialSubject.vue
  18. 39
      src/pages/index/subform.vue
  19. 25
      src/pages/index/tabsComm.vue
  20. 53
      src/pages/index/ztdetail.vue
  21. 16
      src/pages/mine/index.vue
  22. BIN
      src/static/img/bnb.png
  23. BIN
      src/static/img/flfw.png
  24. BIN
      src/static/img/htwk.png
  25. BIN
      src/static/img/nianb.png
  26. 4
      src/uni_modules/uv-parse/components/uv-parse/node/node.vue

18
src/pages.json

@ -63,8 +63,8 @@
{ {
"path": "pages/index/ztdetail", "path": "pages/index/ztdetail",
"style": { "style": {
"navigationBarTitleText": "专题详情页", "navigationBarTitleText": "详情页"
"navigationStyle": "custom" // "navigationStyle": "custom"
} }
}, },
{ {
@ -236,6 +236,20 @@
{ {
"navigationBarTitleText" : "办年报详情" "navigationBarTitleText" : "办年报详情"
} }
},
{
"path" : "pages/index/shoppage/contractLibrary",
"style" :
{
"navigationBarTitleText" : "合同文库"
}
},
{
"path" : "pages/index/shoppage/legalServices",
"style" :
{
"navigationBarTitleText" : "法律服务"
}
} }
], ],
"permission": { "permission": {

9
src/pages/index/ChatDialog.vue

@ -8,14 +8,17 @@
src="@/static/img/aiimg.png" src="@/static/img/aiimg.png"
mode="widthFix" mode="widthFix"
></image> ></image>
<view style="display: flex; align-items: center"> <view style="display: flex; align-items: center;width: 100%;justify-content: flex-end;">
<view style="width: 70%;text-align: center;color: #ababab;">
人工智能生成
</view>
<!-- <view style="font-size: 80rpx; color: #007fff" @click="close">×</view> --> <!-- <view style="font-size: 80rpx; color: #007fff" @click="close">×</view> -->
<image <image
style="width: 40rpx; height: 40rpx;" style="width: 40rpx; height: 40rpx;"
@click="close" @click="close"
src="@/static/img/close.png" src="@/static/img/close.png"
mode="" mode=""
></image> ></image>
<image <image
style="width: 40rpx; height: 40rpx; margin-left: 40rpx;" style="width: 40rpx; height: 40rpx; margin-left: 40rpx;"
@click="dxclick" @click="dxclick"

46
src/pages/index/active/activeDetail.vue

@ -1,29 +1,33 @@
<template> <template>
<image style="width: 100%; height: 352rpx" :src="baseurl + detaildata.index_pic" mode=""></image> <view class="" v-if="detaildata.a_type === 1">
<view class="container" :style="{height: detaildata.form?'calc(100vh - 552rpx)': 'calc(100vh - 352rpx)'}"> <image style="width: 100%; height: 352rpx" :src="baseurl + detaildata.index_pic" mode=""></image>
<text class="headtxt">{{ detaildata.title }}</text> <view class="container" :style="{height: detaildata.form?'calc(100vh - 552rpx)': 'calc(100vh - 352rpx)'}">
<text class="address">活动地点{{ detaildata.address }}</text> <text class="headtxt">{{ detaildata.title }}</text>
<view class="adressnum"> <text class="address">活动地点{{ detaildata.address }}</text>
<text class="time">活动时间{{ detaildata.activity_time }}</text> <view class="adressnum">
<view class="ydl"> <text class="time">活动时间{{ detaildata.activity_time }}</text>
<text class="time">阅读量</text> <view class="ydl">
<text class="value"> <text class="time">阅读量</text>
{{ detaildata.count }} <text class="value">
</text> {{ detaildata.count }}
</text>
</view>
</view> </view>
<view class="titlepart">
<view class="icon"></view>
<text class="title">活动详情</text>
</view>
<uvparse :content="detaildata.content"></uvparse>
<!-- <u-parse :content="detaildata.content"></u-parse> -->
<text class="certetime">{{ detaildata.create_time }}</text>
</view> </view>
<view class="titlepart"> <view class="baombut" v-if="detaildata.form">
<view class="icon"></view> <view class="buttt" @click="gotij(detaildata.id, detaildata.form)">
<text class="title">活动详情</text> 立即报名
</view> </view>
<uvparse :content="detaildata.content"></uvparse>
<text class="certetime">{{ detaildata.create_time }}</text>
</view>
<view class="baombut" v-if="detaildata.form">
<view class="buttt" @click="gotij(detaildata.id, detaildata.form)">
立即报名
</view> </view>
</view> </view>
<web-view v-else :src="detaildata.link_path"></web-view>
</template> </template>
<script setup> <script setup>

3
src/pages/index/bnbdetail.vue

@ -1,7 +1,7 @@
<template> <template>
<!-- <u-navbar :title="titleData.special_id_name ? '“' + titleData.special_id_name + '”' + '专题' : ''" placeholder="true" <!-- <u-navbar :title="titleData.special_id_name ? '“' + titleData.special_id_name + '”' + '专题' : ''" placeholder="true"
bg-color="#F1F3F9" :auto-back="true"></u-navbar> --> bg-color="#F1F3F9" :auto-back="true"></u-navbar> -->
<view class="container"> <view class="container" v-if="titleData.a_type === 1">
<view class="titlepart"> <view class="titlepart">
<image style="width: 8rpx; height: 1em" src="@/static/img/Fill1.png" mode=""></image> <image style="width: 8rpx; height: 1em" src="@/static/img/Fill1.png" mode=""></image>
<image style="width: 8rpx; height: 1em; margin-left: 6rpx" src="@/static/img/Fill2.png" mode=""></image> <image style="width: 8rpx; height: 1em; margin-left: 6rpx" src="@/static/img/Fill2.png" mode=""></image>
@ -11,6 +11,7 @@
<uvparse :content="titleData.content"></uvparse> <uvparse :content="titleData.content"></uvparse>
<view class="fbtime">{{ titleData.create_time }}</view> <view class="fbtime">{{ titleData.create_time }}</view>
</view> </view>
<web-view v-else :src="titleData.link_path"></web-view>
</template> </template>
<script setup> <script setup>

36
src/pages/index/index.vue

@ -29,6 +29,14 @@
<image style="width: 96rpx;height: 96rpx;" src="@/static/img/bnb.png" mode=""></image> <image style="width: 96rpx;height: 96rpx;" src="@/static/img/bnb.png" mode=""></image>
<text class="butext">办年报</text> <text class="butext">办年报</text>
</view> </view>
<view class="but" @click="goflfw">
<image style="width: 96rpx;height: 96rpx;" src="@/static/img/flfw.png" mode=""></image>
<text class="butext">法律服务</text>
</view>
<view class="but" @click="gohtwk">
<image style="width: 96rpx;height: 96rpx;" src="@/static/img/htwk.png" mode=""></image>
<text class="butext">合同文库</text>
</view>
</view> </view>
<!-- <image class="zuanti" :src="url + '/' + ztdata.home_img" mode="scaleToFill" @click="goZT(ztdata.id)"> --> <!-- <image class="zuanti" :src="url + '/' + ztdata.home_img" mode="scaleToFill" @click="goZT(ztdata.id)"> -->
<!-- </image> --> <!-- </image> -->
@ -74,11 +82,11 @@
<text class="xdb">快捷帮扶</text> <text class="xdb">快捷帮扶</text>
<view class="bangCart"> <view class="bangCart">
<view class="bangone1" @click="gokdb"> <view class="bangone1" @click="gokdb">
<text class="btext">开店帮</text> <text class="btext">查政策</text>
<image style="height: 64rpx; width: 80rpx" src="@/static/img/kdb.png" mode=""></image> <image style="height: 64rpx; width: 80rpx" src="@/static/img/kdb.png" mode=""></image>
</view> </view>
<view class="bangone2" @click="goqyb"> <view class="bangone2" @click="goqyb">
<text class="btext">企业帮</text> <text class="btext">提诉求</text>
<image style="height: 64rpx; width: 80rpx" src="@/static/img/qyb.png" mode=""></image> <image style="height: 64rpx; width: 80rpx" src="@/static/img/qyb.png" mode=""></image>
</view> </view>
<view class="bangone3" @click="gojrb"> <view class="bangone3" @click="gojrb">
@ -102,7 +110,7 @@
</view> </view>
<view class="hylist"> <view class="hylist">
<tabsComm :tabs-data="filterTabs" @tabChange="handleTabSelect" /> <tabsComm :tabs-data="filterTabs" :showNum="2" @tabChange="handleTabSelect" />
<scroll-view scroll-y="auto" class="hyonne"> <scroll-view scroll-y="auto" class="hyonne">
<view class="hyCard" v-for="(item, index) in hyList.slice(0, 6)" :key="index" <view class="hyCard" v-for="(item, index) in hyList.slice(0, 6)" :key="index"
@click="gohydetail(item.id)"> @click="gohydetail(item.id)">
@ -281,8 +289,11 @@
} }
const goqyb = () => { const goqyb = () => {
// uni.navigateTo({
// url: '/pages/index/shoppage/qyHelp'
// })
uni.navigateTo({ uni.navigateTo({
url: '/pages/index/shoppage/qyHelp' url: '/pages/index/shoppage/interactiveZone?tabid=' + 3
}) })
} }
@ -323,6 +334,18 @@
}) })
} }
const gohtwk = () => {
uni.navigateTo({
url: '/pages/index/shoppage/contractLibrary'
})
}
const goflfw = () => {
uni.navigateTo({
url: '/pages/index/shoppage/legalServices'
})
}
const getbqlist = async () => { const getbqlist = async () => {
filterTabs.value = [] filterTabs.value = []
await memberTagList().then((res) => { await memberTagList().then((res) => {
@ -661,9 +684,11 @@
border-radius: 24rpx; border-radius: 24rpx;
background-color: #ffffff; background-color: #ffffff;
display: flex; display: flex;
justify-content: center;
align-items: center; align-items: center;
gap: 64rpx; gap: 64rpx;
padding: 0 64rpx;
overflow-x: auto;
max-width: 100%;
.but { .but {
display: grid; display: grid;
@ -678,6 +703,7 @@
/* 文本/正文 */ /* 文本/正文 */
color: #1a1a1a; color: #1a1a1a;
margin-top: 8rpx; margin-top: 8rpx;
white-space: nowrap;
} }
} }
} }

10
src/pages/index/shoppage/annualReport.vue

@ -6,8 +6,9 @@
:show-action="false" height="40" margin="40rpx 24rpx 24rpx 24rpx" bg-color="#FFFFFF"></u-search> :show-action="false" height="40" margin="40rpx 24rpx 24rpx 24rpx" bg-color="#FFFFFF"></u-search>
<view class="main"> <view class="main">
<scroll-view scroll-y="auto" class="hyonne" @scrolltolower="onloadmore"> <scroll-view scroll-y="auto" class="hyonne" @scrolltolower="onloadmore">
<view class="ztone" v-for="(item, index) in ztList" :key="index" @click="godetail(item.id)"> <view class="ztone" v-for="(item, index) in ztList" :key="index" @click="godetail(item)">
<image style="width: 120rpx; height: 120rpx;" src="@/static/img/nianb.png" mode="scaleToFill"></image> <image style="width: 120rpx; height: 120rpx;" src="@/static/img/nianb.png" mode="scaleToFill">
</image>
<view class="rightpart"> <view class="rightpart">
<view class="splace"> <view class="splace">
{{ item.title }} {{ item.title }}
@ -56,9 +57,9 @@
const ztList = ref([]) const ztList = ref([])
const godetail = (id) => { const godetail = (item) => {
uni.navigateTo({ uni.navigateTo({
url: '/pages/index/bnbdetail?id=' + id url: '/pages/index/bnbdetail?id=' + item.id
}) })
} }
@ -126,6 +127,7 @@
flex: 3; flex: 3;
display: grid; display: grid;
align-content: space-between; align-content: space-between;
.splace { .splace {
font-family: Source Han Sans; font-family: Source Han Sans;
font-size: 28rpx; font-size: 28rpx;

211
src/pages/index/shoppage/contractLibrary.vue

@ -0,0 +1,211 @@
<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="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>
</view>
</view>
</template>
<script setup>
import {
ref
} from 'vue'
import {
enterpriseList
} from '@/api/shop'
const baseurl = ref(import.meta.env.VITE_APP_BASE_URL + '/')
//
const keyword = ref('')
const page = ref(1)
const pagesize = ref(11)
const search = async (val) => {
page.value = 1
pagesize.value = 11
await getfinanceList(keyword.value, page.value, pagesize.value)
}
const clickIcon = async () => {
page.value = 1
pagesize.value = 11
await getfinanceList(keyword.value, page.value, pagesize.value)
}
const clear = async () => {
page.value = 1
pagesize.value = 11
await getfinanceList(keyword.value, page.value, pagesize.value)
}
const rightData = ref([])
const godetail = (item) => {
uni.navigateTo({
url: '/pages/index/bnbdetail?id=' + item.id
})
}
const getfinanceList = async (name, page, limit) => {
let params = {
category_id: 2,
title: name,
page: page,
limit: limit
}
await enterpriseList(params).then((res) => {
rightData.value = res.data.data
})
}
const onloadmore = async () => {
page.value++
let params = {
category_id: 2,
title: keyword.value,
page: page.value,
limit: pagesize.value
}
await enterpriseList(params).then((res) => {
rightData.value = [...rightData.value, ...res.data.data]
})
}
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' });
}
});
}
onShow(async () => {
await getfinanceList('', 1, 11)
})
</script>
<style scoped lang="scss">
.container {
background: linear-gradient(0deg, #f1f3f9 72%, rgba(129, 179, 222, 0.5) 88%);
height: 100vh;
width: 100%;
overflow-y: hidden;
.hyonne {
max-height: calc(100vh - 154rpx);
overflow-y: auto;
}
.main {
margin-top: 10rpx;
width: 100%;
height: 100%;
padding: 0 24rpx;
box-sizing: border-box;
overflow-y: hidden;
.wkbox {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 20rpx;
width: 100%;
background-color: #FFFFFF;
padding: 15px 12px;
box-sizing: border-box;
.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;
}
}
}
}
}
.hdzq {
width: 212rpx;
height: 86rpx;
position: fixed;
right: 0;
top: 70%;
margin-right: -14rpx;
}
</style>

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

@ -3,14 +3,15 @@
<view class="container"> <view class="container">
<u-search @search="search" @clickIcon="clickIcon" @clear="clear" shape="square" placeholder="请输入搜索内容" <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" 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> :show-action="false" height="40" margin="" bg-color="#FFFFFF"></u-search>
<tabsComm :tabs-data="filterTabs" :showAll="false" :showNum="3" @tabChange="handleTabSelect" />
<view class="main"> <view class="main">
<scroll-view scroll-y="auto" class="hyonne" @scrolltolower="onloadmore"> <scroll-view scroll-y="auto" class="hyonne" @scrolltolower="onloadmore">
<view class="ztone" v-for="(item, index) in ztList" :key="index" @click="godetail(item.id)"> <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" <image style="width: 150rpx; height: 150rpx; border-radius: 28rpx; flex: 1"
:src="baseurl + item.index_pic" mode=""></image> :src="baseurl + item.index_pic" mode=""></image>
<view class="rightpart"> <view class="rightpart">
<view class="splace"> <view class="splace">
{{ item.bank }} {{ item.bank }}
</view> </view>
<view class="titlepart"> <view class="titlepart">
@ -43,12 +44,14 @@
import { import {
financeList financeList
} from '@/api/shop' } from '@/api/shop'
import tabsComm from '@/pages/index/tabsComm.vue'
import liuDragButton from '@/uni_modules/liu-drag-button/components/liu-drag-button/liu-drag-button.vue' 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 keyword = ref('')
const currentTab = ref('')
const page = ref(1) const page = ref(1)
const pagesize = ref(6) const pagesize = ref(6)
@ -86,6 +89,7 @@
const getfinanceList = async (name, page, limit) => { const getfinanceList = async (name, page, limit) => {
let params = { let params = {
alliance_city: currentTab.value,
keyword: name, keyword: name,
page: page, page: page,
limit: limit limit: limit
@ -98,6 +102,7 @@
const onloadmore = async () => { const onloadmore = async () => {
page.value++ page.value++
let params = { let params = {
alliance_city: currentTab.value,
keyword: keyword.value, keyword: keyword.value,
page: page.value, page: page.value,
limit: pagesize.value limit: pagesize.value
@ -106,6 +111,70 @@
ztList.value = [...ztList.value, ...res.data.data] ztList.value = [...ztList.value, ...res.data.data]
}) })
} }
// ""
const filterTabs = ref([
{
id: '呼和浩特',
title: '呼和浩特'
},
{
id: '包头',
title: '包头'
},
{
id: '呼伦贝尔',
title: '呼伦贝尔'
},
{
id: '兴安盟',
title: '兴安盟'
},
{
id: '通辽',
title: '通辽'
},
{
id: '赤峰',
title: '赤峰'
},
{
id: '锡林郭勒盟',
title: '锡林郭勒盟'
},
{
id: '乌兰察布',
title: '乌兰察布'
},
{
id: '鄂尔多斯',
title: '鄂尔多斯'
},
{
id: '巴彦淖尔',
title: '巴彦淖尔'
},
{
id: '乌海',
title: '乌海'
},
{
id: '阿拉善盟',
title: '阿拉善盟'
},
])
//
const handleTabSelect = async (tab) => {
currentTab.value = tab
if (tab === 'all') {
// await getMemberCenter('')
} else {
await getfinanceList('', 1, 6)
}
//
console.log('选择tab:', tab)
}
onShow(async () => { onShow(async () => {
await getfinanceList('', 1, 6) await getfinanceList('', 1, 6)
@ -118,17 +187,18 @@
height: calc(100vh - 178rpx); height: calc(100vh - 178rpx);
width: 100%; width: 100%;
overflow-y: hidden; overflow-y: hidden;
padding: 40rpx 24rpx 24rpx 24rpx;
.hyonne { .hyonne {
max-height: calc(100vh - 350rpx); max-height: calc(100vh - 400rpx);
overflow-y: auto; overflow-y: auto;
margin-top: -10px;
} }
.main { .main {
margin-top: 10rpx; margin-top: 10rpx;
width: 100%; width: 100%;
height: 100%; height: calc(100% - 46px);
padding: 0 24rpx;
box-sizing: border-box; box-sizing: border-box;
overflow-y: hidden; overflow-y: hidden;

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

@ -70,7 +70,7 @@ const current = ref(0)
// //
const list1 = reactive([ const list1 = reactive([
{ {
name: '开店帮', name: '查政策',
id: 1 id: 1
}, },
{ {
@ -82,7 +82,7 @@ const list1 = reactive([
id: 3 id: 3
}, },
{ {
name: '企业帮', name: '提诉求',
id: 4 id: 4
}, },
{ {

159
src/pages/index/shoppage/legalServices.vue

@ -0,0 +1,159 @@
<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: 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>
</view>
</view>
</template>
<script setup>
import {
ref
} from 'vue'
import {
enterpriseList
} from '@/api/shop'
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 getfinanceList = async (name, page, limit) => {
let params = {
category_id: 1,
title: name,
page: page,
limit: limit
}
await enterpriseList(params).then((res) => {
ztList.value = res.data.data
})
}
const onloadmore = async () => {
page.value++
let params = {
title: keyword.value,
page: page.value,
limit: pagesize.value
}
await financeList(params).then((res) => {
ztList.value = [...ztList.value, ...res.data.data]
})
}
const godetail = (id) => {
uni.navigateTo({
url: '/pages/index/shoppage/qyDetail?id=' + id + '&current=' + 1
})
}
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: 100vh;
width: 100%;
overflow-y: hidden;
.hyonne {
max-height: calc(100vh - 154rpx);
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%;
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;
}
}
}
}
}
.hdzq {
width: 212rpx;
height: 86rpx;
position: fixed;
right: 0;
top: 70%;
margin-right: -14rpx;
}
</style>

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

@ -3,7 +3,8 @@
<u-navbar title="媒体帮" placeholder="true" bg-color="#F1F3F9" :auto-back="true"></u-navbar> <u-navbar title="媒体帮" placeholder="true" bg-color="#F1F3F9" :auto-back="true"></u-navbar>
<u-search @search="search" @clickIcon="clickIcon" @clear="clear" shape="square" placeholder="请输入搜索内容" <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" 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> :show-action="false" height="40" margin="" bg-color="#FFFFFF"></u-search>
<tabsComm style="margin-top: 20px;" :tabs-data="filterTabs" :showAll="true" :showNum="2" @tabChange="handleTabSelect" />
<scroll-view scroll-y="auto" class="mtlist" @scrolltolower="onloadmore"> <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="mtone" v-for="(item, index) in mtList" :key="index" @click="gomtbdetail(item.id)">
<view class="headpart"> <view class="headpart">
@ -29,9 +30,9 @@
</view> </view>
</view> </view>
</scroll-view> </scroll-view>
<view class="fbxxbutton"> <!-- <view class="fbxxbutton">
<view class="button" @click="gofbxx">发布信息</view> <view class="button" @click="gofbxx">发布信息</view>
</view> </view> -->
</view> </view>
<liuDragButton :width-px="'145rpx'"> <liuDragButton :width-px="'145rpx'">
<view class="boxhd" @click="gohdzq"> <view class="boxhd" @click="gohdzq">
@ -50,6 +51,7 @@
import { import {
mediumList mediumList
} from '@/api/shop' } from '@/api/shop'
import tabsComm from '@/pages/index/tabsComm.vue'
import liuDragButton from '@/uni_modules/liu-drag-button/components/liu-drag-button/liu-drag-button.vue' import liuDragButton from '@/uni_modules/liu-drag-button/components/liu-drag-button/liu-drag-button.vue'
import useUserStore from '@/store/user' import useUserStore from '@/store/user'
const userStore = useUserStore() const userStore = useUserStore()
@ -58,6 +60,7 @@
// //
const keyword = ref('') const keyword = ref('')
const currentTab = ref('')
const page = ref(1) const page = ref(1)
const pagesize = ref(2) const pagesize = ref(2)
@ -110,6 +113,7 @@
const getmediumList = async (name, page, limit) => { const getmediumList = async (name, page, limit) => {
let params = { let params = {
alliance_city: currentTab.value,
name: name, name: name,
page: page, page: page,
limit: limit limit: limit
@ -122,6 +126,7 @@
const onloadmore = async () => { const onloadmore = async () => {
page.value++ page.value++
let params = { let params = {
alliance_city: currentTab.value,
name: keyword.value, name: keyword.value,
page: page.value, page: page.value,
limit: pagesize.value limit: pagesize.value
@ -129,6 +134,71 @@
await mediumList(params).then((res) => { await mediumList(params).then((res) => {
mtList.value = [...mtList.value, ...res.data.data] mtList.value = [...mtList.value, ...res.data.data]
}) })
}
// ""
const filterTabs = ref([
{
id: '呼和浩特',
title: '呼和浩特'
},
{
id: '包头',
title: '包头'
},
{
id: '呼伦贝尔',
title: '呼伦贝尔'
},
{
id: '兴安盟',
title: '兴安盟'
},
{
id: '通辽',
title: '通辽'
},
{
id: '赤峰',
title: '赤峰'
},
{
id: '锡林郭勒盟',
title: '锡林郭勒盟'
},
{
id: '乌兰察布',
title: '乌兰察布'
},
{
id: '鄂尔多斯',
title: '鄂尔多斯'
},
{
id: '巴彦淖尔',
title: '巴彦淖尔'
},
{
id: '乌海',
title: '乌海'
},
{
id: '阿拉善盟',
title: '阿拉善盟'
},
])
//
const handleTabSelect = async (tab) => {
if (tab === 'all') {
currentTab.value = ''
await getmediumList('', 1, 6)
} else {
currentTab.value = tab
await getmediumList('', 1, 6)
}
//
console.log('选择tab:', tab)
} }
onShow(async () => { onShow(async () => {
@ -141,15 +211,17 @@
background: linear-gradient(0deg, #f1f3f9 72%, rgba(62, 146, 249, 0.2) 88%); background: linear-gradient(0deg, #f1f3f9 72%, rgba(62, 146, 249, 0.2) 88%);
width: 100%; width: 100%;
overflow: hidden; overflow: hidden;
padding: 40rpx 24rpx 24rpx 24rpx;
.mtlist { .mtlist {
margin-top: 8rpx; margin-top: -10rpx;
padding: 0 24rpx;
box-sizing: border-box; box-sizing: border-box;
overflow-y: auto; overflow-y: auto;
height: 100vh; height: 100vh;
max-height: calc(100vh - 336rpx); // max-height: calc(100vh - 336rpx);
padding-bottom: 168rpx; max-height: 100vh;
// padding-bottom: 168rpx;
padding-bottom: 35rpx;
.mtone { .mtone {
margin-top: 30rpx; margin-top: 30rpx;

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

@ -1,5 +1,5 @@
<template> <template>
<u-navbar :title="'企业帮'" placeholder="true" bg-color="#F1F3F9" :auto-back="true" /> <u-navbar :title="'法律服务'" placeholder="true" bg-color="#F1F3F9" :auto-back="true" />
<view class="container"> <view class="container">
<view class="main"> <view class="main">
<view class="head"> <view class="head">

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

@ -1,5 +1,5 @@
<template> <template>
<u-navbar title="企业帮" placeholder="true" bg-color="#F1F3F9" :auto-back="true"></u-navbar> <u-navbar title="提诉求" placeholder="true" bg-color="#F1F3F9" :auto-back="true"></u-navbar>
<view class="container"> <view class="container">
<u-search @search="search" @clickIcon="clickIcon" shape="square" placeholder="请输入搜索内容" <u-search @search="search" @clickIcon="clickIcon" shape="square" placeholder="请输入搜索内容"
placeholder-color="#A9D4FF" v-model="keyword" search-icon="/static/img/search.png" search-icon-size="14" placeholder-color="#A9D4FF" v-model="keyword" search-icon="/static/img/search.png" search-icon-size="14"

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

@ -1,6 +1,6 @@
<template> <template>
<u-navbar :title="'企业帮'" placeholder="true" bg-color="#F1F3F9" :auto-back="true" /> <u-navbar :title="'企业帮'" placeholder="true" bg-color="#F1F3F9" :auto-back="true" />
<view class="container"> <view class="container" v-if="xdbData.a_type === 1">
<text class="title">{{ xdbData.title }}</text> <text class="title">{{ xdbData.title }}</text>
<text class="fbr">发布人{{ xdbData.publisher }}</text> <text class="fbr">发布人{{ xdbData.publisher }}</text>
<view class="readtime"> <view class="readtime">
@ -16,6 +16,7 @@
</view> </view>
<uvparse :content="xdbData.content"></uvparse> <uvparse :content="xdbData.content"></uvparse>
</view> </view>
<web-view v-else :src="xdbData.link_path"></web-view>
</template> </template>
<script setup> <script setup>

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

@ -1,5 +1,5 @@
<template> <template>
<u-navbar title="开店帮" placeholder="true" bg-color="#F1F3F9" :auto-back="true"></u-navbar> <u-navbar title="查政策" placeholder="true" bg-color="#F1F3F9" :auto-back="true"></u-navbar>
<view class="container"> <view class="container">
<u-search @search="search" @clickIcon="clickIcon" shape="square" placeholder="请输入搜索内容" <u-search @search="search" @clickIcon="clickIcon" shape="square" placeholder="请输入搜索内容"
placeholder-color="#A9D4FF" v-model="keyword" search-icon="/static/img/search.png" search-icon-size="14" placeholder-color="#A9D4FF" v-model="keyword" search-icon="/static/img/search.png" search-icon-size="14"
@ -60,27 +60,27 @@
const current = ref(1) const current = ref(1)
const page = ref(1) const page = ref(1)
const limit = ref(8) const limit = ref(20)
const goods = ref([]) const goods = ref([])
const rightData = ref([]) const rightData = ref([])
const search = (val) => { const search = (val) => {
page.value = 1 page.value = 1
limit.value = 8 limit.value = 20
getRightdata() getRightdata()
} }
const clickIcon = () => { const clickIcon = () => {
page.value = 1 page.value = 1
limit.value = 8 limit.value = 20
getRightdata() getRightdata()
} }
const lefttabId = (id) => { const lefttabId = (id) => {
keyword.value = '' keyword.value = ''
page.value = 1 page.value = 1
limit.value = 8 limit.value = 20
current.value = id current.value = id
getRightdata() getRightdata()
} }
@ -125,6 +125,7 @@
onLoad(async () => { onLoad(async () => {
await storeList({}).then((res) => { await storeList({}).then((res) => {
goods.value = res.data goods.value = res.data
current.value = res.data[0].id
}) })
await getRightdata() await getRightdata()
}) })
@ -168,6 +169,7 @@
padding: 30rpx; padding: 30rpx;
box-sizing: border-box; box-sizing: border-box;
gap: 20rpx; gap: 20rpx;
max-height: 77vh;
.list { .list {
width: 100%; width: 100%;

5
src/pages/index/shoppage/shophelpDetail.vue

@ -1,6 +1,6 @@
<template> <template>
<u-navbar :title="'开店帮'" placeholder="true" bg-color="#F1F3F9" :auto-back="true" /> <u-navbar :title="'查政策'" placeholder="true" bg-color="#F1F3F9" :auto-back="true" />
<view class="container"> <view class="container" v-if="xdbData.a_type === 1">
<text class="title">{{ xdbData.title }}</text> <text class="title">{{ xdbData.title }}</text>
<text class="fbr">发布人{{ xdbData.publisher }}</text> <text class="fbr">发布人{{ xdbData.publisher }}</text>
<view class="readtime"> <view class="readtime">
@ -16,6 +16,7 @@
</view> </view>
<uvparse :content="xdbData.content"></uvparse> <uvparse :content="xdbData.content"></uvparse>
</view> </view>
<web-view v-else :src="xdbData.link_path"></web-view>
</template> </template>
<script setup> <script setup>

68
src/pages/index/specialSubject.vue

@ -13,7 +13,7 @@
</view> --> </view> -->
<image class="headpart" :src="url + '/' + titleData.top_img" mode=""></image> <image class="headpart" :src="url + '/' + titleData.top_img" mode=""></image>
<scroll-view scroll-y class="main" @scrolltolower="scrolltolower" v-if="ztList.length !== 0"> <scroll-view scroll-y class="main" @scrolltolower="scrolltolower" v-if="ztList.length !== 0">
<u-box height="400rpx" gap="24rpx"> <u-box height="auto" gap="24rpx">
<template #left> <template #left>
<view class="leftmk" @click="godetail(ztList[0]?.id)"> <view class="leftmk" @click="godetail(ztList[0]?.id)">
<view class="top"> <view class="top">
@ -98,7 +98,7 @@ const godetail = (id) => {
const ztid = ref('') const ztid = ref('')
const page = ref(1) const page = ref(1)
const limit = ref(7) const limit = ref(10)
const getspecialList = async() =>{ const getspecialList = async() =>{
let params = { let params = {
@ -124,7 +124,7 @@ onLoad(async (param) => {
} }
ztList.value = [] ztList.value = []
page.value = 1 page.value = 1
limit.value = 7 limit.value = 10
getspecialList() getspecialList()
}) })
@ -136,7 +136,7 @@ const leftClick = () => {
<style scoped lang="scss"> <style scoped lang="scss">
.container { .container {
background-color: #f1f3f9; background-color: #f1f3f9;
height: calc(100vh - 182rpx); height: calc(100vh - 200rpx);
width: 100%; width: 100%;
.headpart { .headpart {
@ -197,7 +197,7 @@ const leftClick = () => {
border-radius: 40rpx 40rpx 0rpx 0rpx; border-radius: 40rpx 40rpx 0rpx 0rpx;
background: #ffffff; background: #ffffff;
width: 100%; width: 100%;
max-height: 69vh; max-height: calc(100vh - 480rpx);
padding: 40rpx 24rpx 0 24rpx; padding: 40rpx 24rpx 0 24rpx;
box-sizing: border-box; box-sizing: border-box;
position: absolute; position: absolute;
@ -228,13 +228,13 @@ const leftClick = () => {
font-weight: 500; font-weight: 500;
line-height: 48rpx; line-height: 48rpx;
color: #fefefe; color: #fefefe;
overflow: hidden; // overflow: hidden;
/* 隐藏溢出内容 */ // /* */
white-space: nowrap; // white-space: nowrap;
/* 强制不换行 */ // /* */
text-overflow: ellipsis; // text-overflow: ellipsis;
/* 添加省略号 */ // /* */
max-width: 260rpx; // max-width: 260rpx;
} }
.fh { .fh {
@ -294,7 +294,7 @@ const leftClick = () => {
.rightTopmk { .rightTopmk {
width: 100%; width: 100%;
height: 100%; height: 100%;
overflow-y: hidden; overflow-y: auto;
border-radius: 16rpx; border-radius: 16rpx;
background-image: url(@/static/img/lj2.png); background-image: url(@/static/img/lj2.png);
background-size: 100% 100%; background-size: 100% 100%;
@ -318,13 +318,13 @@ const leftClick = () => {
font-weight: 500; font-weight: 500;
line-height: 48rpx; line-height: 48rpx;
color: #fefefe; color: #fefefe;
overflow: hidden; // overflow: hidden;
/* 隐藏溢出内容 */ // /* */
white-space: nowrap; // white-space: nowrap;
/* 强制不换行 */ // /* */
text-overflow: ellipsis; // text-overflow: ellipsis;
/* 添加省略号 */ // /* */
max-width: 260rpx; // max-width: 260rpx;
} }
.fh { .fh {
@ -386,7 +386,7 @@ const leftClick = () => {
.rightBottommk { .rightBottommk {
width: 100%; width: 100%;
height: 100%; height: 100%;
overflow-y: hidden; overflow-y: auto;
border-radius: 16rpx; border-radius: 16rpx;
background-image: url(@/static/img/lj3.png); background-image: url(@/static/img/lj3.png);
background-size: 100% 100%; background-size: 100% 100%;
@ -410,13 +410,13 @@ const leftClick = () => {
font-weight: 500; font-weight: 500;
line-height: 48rpx; line-height: 48rpx;
color: #fefefe; color: #fefefe;
overflow: hidden; // overflow: hidden;
/* 隐藏溢出内容 */ // /* */
white-space: nowrap; // white-space: nowrap;
/* 强制不换行 */ // /* */
text-overflow: ellipsis; // text-overflow: ellipsis;
/* 添加省略号 */ // /* */
max-width: 260rpx; // max-width: 260rpx;
} }
.fh { .fh {
@ -502,12 +502,12 @@ const leftClick = () => {
line-height: 48rpx; line-height: 48rpx;
letter-spacing: normal; letter-spacing: normal;
color: #0c092a; color: #0c092a;
overflow: hidden; // overflow: hidden;
/* 隐藏溢出内容 */ // /* */
white-space: nowrap; // white-space: nowrap;
/* 强制不换行 */ // /* */
text-overflow: ellipsis; // text-overflow: ellipsis;
/* 添加省略号 */ // /* */
max-width: 430rpx; max-width: 430rpx;
} }

39
src/pages/index/subform.vue

@ -1,13 +1,14 @@
<template> <template>
<u-navbar :title="titleData.title" placeholder="true" bg-color="#F1F3F9" :auto-back="true"></u-navbar> <u-navbar :title="titleData.title" placeholder="true" bg-color="#F1F3F9" :auto-back="true"></u-navbar>
<view class="container"> <view class="container" >
<u-loading-page :loading="showload" loading-text="正在提交中..."></u-loading-page>
<u-form labelPosition="top"> <u-form labelPosition="top">
<u-form-item :label="item.title" :prop="item.type" v-for="(item,index) in titleData.question" :key="index"> <u-form-item :label="item.title" v-for="(item,index) in titleData.question" :key="index">
<u-input v-model="item.answer" v-if="item.type === 'input'" /> <u-input v-model="item.answer" v-if="item.type === 'input'" />
<u-textarea v-model="item.answer" v-if="item.type === 'textarea'" placeholder="请输入内容" <u-textarea v-model="item.answer" v-if="item.type === 'textarea'" placeholder="请输入内容"
autoHeight></u-textarea> autoHeight></u-textarea>
<u-input v-model="item.answer" readonly="true" @tap="showpicker = true" v-if="item.type === 'radio'" /> <u-input v-model="item.answer" :key="'input'+index" readonly="true" @tap="showpickclick(index,item.choose)" v-if="item.type === 'radio'" />
<u-picker v-if="item.type === 'radio'" :show="showpicker" v-model="item.answer" :columns="[arrtoarr(item.choose)]" @cancel="showpicker = false" @confirm="showpicker = false"></u-picker> <u-picker :ref="`picker${index}`" v-if="item.type === 'radio'" :show="showpicker" :columns="[pickerVal]" @cancel="showpicker = false" @confirm="handleConfirm($event)"></u-picker>
<!-- <u-radio-group v-model="item.answer" v-if="item.type === 'radio'" placement="column" <!-- <u-radio-group v-model="item.answer" v-if="item.type === 'radio'" placement="column"
@change="groupChange"> @change="groupChange">
<u-radio :customStyle="{marginBottom: '16rpx'}" v-for="(item, index) in item.choose" :key="index" <u-radio :customStyle="{marginBottom: '16rpx'}" v-for="(item, index) in item.choose" :key="index"
@ -16,8 +17,8 @@
</u-radio-group> --> </u-radio-group> -->
<u-checkbox-group v-model="item.answer" v-if="item.type === 'checkbox'" placement="column" <u-checkbox-group v-model="item.answer" v-if="item.type === 'checkbox'" placement="column"
> >
<u-checkbox :customStyle="{marginBottom: '16rpx'}" v-for="(item, index) in item.choose" :key="index" <u-checkbox :customStyle="{marginBottom: '16rpx'}" v-for="(itemm, indexx) in item.choose" :key="indexx"
:label="item.name" :name="item.name"> :label="itemm.name" :name="itemm.name">
</u-checkbox> </u-checkbox>
</u-checkbox-group> </u-checkbox-group>
</u-form-item> </u-form-item>
@ -46,7 +47,9 @@
const ztid = ref('') const ztid = ref('')
const showpicker = ref(false) const showpicker = ref(false)
const showload = ref(false)
const type = ref('') const type = ref('')
const pickerVal = ref([])
function processCheckboxAnswers(arr) { function processCheckboxAnswers(arr) {
@ -72,14 +75,29 @@
return result; return result;
}); });
} }
const tmindex = ref(0)
const arrtoarr = (arr) => { const showpickclick = (index,arr) => {
tmindex.value = index
let newar = arr.map(item => item.name) let newar = arr.map(item => item.name)
return newar pickerVal.value = newar
showpicker.value = true
} }
// const arrtoarr = (arr) => {
// console.log(arr);
// let newar = arr.map(item => item.name)
// return newar
// }
const handleConfirm = (e)=> {
titleData.value.question[tmindex.value].answer = e.value;
showpicker.value = false
}
// //
function submit() { function submit() {
console.log(titleData.value.question);
showload.value = true
let istrue = true let istrue = true
titleData.value.question.forEach((ele) => { titleData.value.question.forEach((ele) => {
if (ele.answer === '' || !ele.answer) { if (ele.answer === '' || !ele.answer) {
@ -92,7 +110,6 @@
} }
}) })
if(istrue) { if(istrue) {
if(type.value === 'zt') { if(type.value === 'zt') {
let param = { let param = {
special_list_id: ztid.value, special_list_id: ztid.value,
@ -101,6 +118,7 @@
} }
specialSign(param).then((res)=> { specialSign(param).then((res)=> {
if(res.code === 1) { if(res.code === 1) {
showload.value = false
uni.showToast({ uni.showToast({
title: '提交成功!', title: '提交成功!',
duration: 2000 duration: 2000
@ -122,6 +140,7 @@
} }
activitySign(param).then((res)=> { activitySign(param).then((res)=> {
if(res.code === 1) { if(res.code === 1) {
showload.value = false
uni.showToast({ uni.showToast({
title: '提交成功!', title: '提交成功!',
duration: 2000 duration: 2000

25
src/pages/index/tabsComm.vue

@ -1,7 +1,7 @@
<template> <template>
<view class="tabs-wrapper"> <view class="tabs-wrapper" :style="{justifyContent: tabsData.length >2? 'space-between' : 'start', gap: tabsData.length >2? '10px' : 'none' }">
<!-- 固定显示的'全部'标签 --> <!-- 固定显示的'全部'标签 -->
<view class="tab-item" :class="{ active: activeTab === 'all' }" @click="handleTabSelect('all')">全部</view> <view class="tab-item" v-if="showAll" :class="{ active: activeTab === 'all' }" @click="handleTabSelect('all')">全部</view>
<!-- 主显示区域 --> <!-- 主显示区域 -->
<!-- <scroll-view <!-- <scroll-view
@ -16,7 +16,7 @@
:class="{ active: activeTab === tab.id }" :class="{ active: activeTab === tab.id }"
@click="handleTabSelect(tab.id)" @click="handleTabSelect(tab.id)"
> >
{{ tab.title.slice(0, 2) }} {{ tab.title }}
</view> </view>
<!-- </scroll-view> --> <!-- </scroll-view> -->
@ -51,7 +51,15 @@ const props = defineProps({
tabsData: { tabsData: {
type: Array, type: Array,
default: () => [] default: () => []
} },
showAll: {
type: Boolean,
default: true
},
showNum: {
type: Number,
default: 2
}
}) })
const emit = defineEmits(['tabChange']) const emit = defineEmits(['tabChange'])
@ -66,15 +74,15 @@ const show = ref(false)
// //
const visibleTabs = computed(() => { const visibleTabs = computed(() => {
const filtered = props.tabsData.filter((t) => t.id !== 'all') const filtered = props.tabsData.filter((t) => t.id !== 'all')
return filtered.length <= 3 ? filtered : filtered.slice(0, 2) return filtered.slice(0, props.showNum)
}) })
const hiddenTabs = computed(() => { const hiddenTabs = computed(() => {
const filtered = props.tabsData.filter((t) => t.id !== 'all') const filtered = props.tabsData.filter((t) => t.id !== 'all')
return [filtered.length > 3 ? filtered.slice(2) : []] return [filtered.slice(props.showNum)]
}) })
const showMoreButton = computed(() => props.tabsData.length > 3) const showMoreButton = computed(() => hiddenTabs.value.length > 0)
// //
const handleTabSelect = (tabId) => { const handleTabSelect = (tabId) => {
@ -123,6 +131,7 @@ onUnmounted(() => {
position: relative; position: relative;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between;
padding: 16rpx 0; padding: 16rpx 0;
:last-child { :last-child {
margin-right: 0 !important; margin-right: 0 !important;
@ -138,11 +147,9 @@ onUnmounted(() => {
display: inline-flex; display: inline-flex;
align-items: center; align-items: center;
white-space: nowrap; white-space: nowrap;
width: 25%;
box-sizing: border-box; box-sizing: border-box;
height: 60rpx; height: 60rpx;
padding: 0 34rpx; padding: 0 34rpx;
margin-right: 38rpx;
border-radius: 124rpx; border-radius: 124rpx;
background: #f1f3f9; background: #f1f3f9;
font-family: Source Han Sans; font-family: Source Han Sans;

53
src/pages/index/ztdetail.vue

@ -1,22 +1,33 @@
<template> <template>
<u-navbar :title="titleData.special_id_name ? '“' + titleData.special_id_name + '”' + '专题' : ''" placeholder="true" <!-- <u-navbar :title="titleData.special_id_name" placeholder="true" bg-color="#F1F3F9" :auto-back="true"></u-navbar> -->
bg-color="#F1F3F9" :auto-back="true"></u-navbar> <view class="" v-if="titleData.to_type === 1||titleData.a_type === 1">
<view class="container" :style="{height: titleData.form?'calc(100vh - 350rpx)': 'calc(100vh - 150rpx)'}"> <view class="container"
<view class="titlepart"> :style="{height: titleData.form?'93vh': '100vh'}">
<image style="width: 8rpx; height: 1em" src="@/static/img/Fill1.png" mode=""></image> <view class="titlepart">
<image style="width: 8rpx; height: 1em; margin-left: 6rpx" src="@/static/img/Fill2.png" mode=""></image> <image style="width: 8rpx; height: 1em" src="@/static/img/Fill1.png" mode=""></image>
<text class="title">{{ titleData.title }}</text> <image style="width: 8rpx; height: 1em; margin-left: 6rpx" src="@/static/img/Fill2.png" mode=""></image>
<text class="title">{{ titleData.title }}</text>
</view>
<view style="margin-bottom: 20px;display: flex;align-items: center;">
<view style="color: #b1b1b1;">
来源
</view>
<view style="">
{{ titleData.source }}
</view>
</view>
<!-- <image style="width: 100%;height: 436rpx;margin-top: 48rpx;" src="@/static/img/Bitmap.png" mode=""></image> -->
<uvparse :content="titleData.content"></uvparse>
<!-- <rich-text class="richt" :nodes="titleData.content"></rich-text> -->
<view class="fbtime">{{ titleData.create_time }}</view>
</view> </view>
<!-- <image style="width: 100%;height: 436rpx;margin-top: 48rpx;" src="@/static/img/Bitmap.png" mode=""></image> --> <view class="baombut" v-if="titleData.form">
<uvparse :content="titleData.content"></uvparse> <view class="buttt" @click="gotij(titleData.id, titleData.form)">
<!-- <rich-text class="richt" :nodes="titleData.content"></rich-text> --> 立即报名
<view class="fbtime">{{ titleData.create_time }}</view> </view>
</view>
<view class="baombut" v-if="titleData.form">
<view class="buttt" @click="gotij(titleData.id, titleData.form)">
立即报名
</view> </view>
</view> </view>
<web-view v-else :src="titleData.link_path"></web-view>
</template> </template>
<script setup> <script setup>
@ -24,15 +35,18 @@
onLoad onLoad
} from '@dcloudio/uni-app' } from '@dcloudio/uni-app'
import { import {
ref
ref,
} from 'vue' } from 'vue'
import { import {
specialListInfo, specialListInfo,
bannerInfo bannerInfo
} from '@/api/index' } from '@/api/index'
import uvparse from '@/uni_modules/uv-parse/components/uv-parse/uv-parse.vue' import uvparse from '@/uni_modules/uv-parse/components/uv-parse/uv-parse.vue'
const titleData = ref([]) const titleData = ref({})
const gotij = (id, item) => { const gotij = (id, item) => {
uni.navigateTo({ uni.navigateTo({
@ -49,7 +63,6 @@ import uvparse from '@/uni_modules/uv-parse/components/uv-parse/uv-parse.vue'
} else { } else {
const res = await bannerInfo(param.id) const res = await bannerInfo(param.id)
if (res.code === 1) { if (res.code === 1) {
console.log(res)
titleData.value = res.data titleData.value = res.data
} }
} }
@ -61,7 +74,7 @@ import uvparse from '@/uni_modules/uv-parse/components/uv-parse/uv-parse.vue'
<style scoped lang="scss"> <style scoped lang="scss">
.container { .container {
background-color: #ffffff; background-color: #ffffff;
height: calc(100vh - 350rpx); height: 100vh;
width: 100%; width: 100%;
padding: 48rpx; padding: 48rpx;
box-sizing: border-box; box-sizing: border-box;

16
src/pages/mine/index.vue

@ -4,12 +4,12 @@
<view class="main"> <view class="main">
<view class="head"> <view class="head">
<view class="left"> <view class="left">
<u-avatar v-if="userStore.userInfo.moblie" :src="url + '/' + userStore.userInfo.head_pic" :size="72"></u-avatar> <u-avatar v-if="logintype" :src="url + '/' + userStore.userInfo.head_pic" :size="72"></u-avatar>
<img v-else style="width: 72px; height: 72px; border-radius: 50%" src="@/static/img/qdl.png" alt="" /> <img v-else style="width: 72px; height: 72px; border-radius: 50%" src="@/static/img/qdl.png" alt="" />
<text class="name">{{ userStore.userInfo.name }}</text> <text class="name">{{ userStore.userInfo.name }}</text>
</view> </view>
<image <image
v-if="userStore.userInfo.moblie" v-if="logintype"
style="width: 48rpx; height: 48rpx" style="width: 48rpx; height: 48rpx"
src="@/static/img/setting.png" src="@/static/img/setting.png"
mode="" mode=""
@ -31,17 +31,17 @@
</view> </view>
<image style="width: 14.14rpx; height: 14.14rpx" src="@/static/img/Group13.png" mode=""></image> <image style="width: 14.14rpx; height: 14.14rpx" src="@/static/img/Group13.png" mode=""></image>
</view> </view>
<view class="editone" @click="goeditinfo('我的课程')"> <!-- <view class="editone" @click="goeditinfo('我的课程')">
<view class="left"> <view class="left">
<image style="width: 74rpx; height: 74rpx" src="@/static/img/wdkc.png" mode=""></image> <image style="width: 74rpx; height: 74rpx" src="@/static/img/wdkc.png" mode=""></image>
<text class="txt">我的课程</text> <text class="txt">我的课程</text>
</view> </view>
<image style="width: 14.14rpx; height: 14.14rpx" src="@/static/img/Group13.png" mode=""></image> <image style="width: 14.14rpx; height: 14.14rpx" src="@/static/img/Group13.png" mode=""></image>
</view> </view> -->
</view> </view>
<view class="buts"> <view class="buts">
<view class="but" @click="outLogin"> <view class="but" @click="outLogin">
{{ userStore.userInfo.moblie ? '退出登录' : '登录' }} {{ logintype ? '退出登录' : '登录' }}
</view> </view>
</view> </view>
</view> </view>
@ -55,6 +55,7 @@ import useUserStore from '@/store/user'
const userStore = useUserStore() const userStore = useUserStore()
const url = ref(import.meta.env.VITE_APP_BASE_URL) const url = ref(import.meta.env.VITE_APP_BASE_URL)
const logintype = ref(false)
const goeditinfo = (val) => { const goeditinfo = (val) => {
if (val === '关联企业') { if (val === '关联企业') {
@ -78,8 +79,13 @@ const goeditinfo = (val) => {
const outLogin = () => { const outLogin = () => {
userStore.logOut() userStore.logOut()
logintype.value = !logintype.value
} }
onShow(() => { onShow(() => {
logintype.value = uni.getStorageSync('access_token')
if(!logintype.value) {
userStore.userInfo = {}
}
// if (uni.getStorageSync('access_token') === '') { // if (uni.getStorageSync('access_token') === '') {
// uni.navigateTo({ // uni.navigateTo({
// url: '/pages/login/login' // url: '/pages/login/login'

BIN
src/static/img/bnb.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
src/static/img/flfw.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
src/static/img/htwk.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
src/static/img/nianb.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 979 B

4
src/uni_modules/uv-parse/components/uv-parse/node/node.vue

@ -28,7 +28,7 @@
<text v-else-if="n.name==='br'">\n</text> <text v-else-if="n.name==='br'">\n</text>
<!-- 链接 --> <!-- 链接 -->
<view v-else-if="n.name==='a'" :id="n.attrs.id" :class="(n.attrs.href?'_a ':'')+n.attrs.class" hover-class="_hover" :style="'display:inline;'+n.attrs.style" :data-i="i" @tap.stop="linkTap"> <view v-else-if="n.name==='a'" :id="n.attrs.id" :class="(n.attrs.href?'_a ':'')+n.attrs.class" hover-class="_hover" :style="'display:inline;'+n.attrs.style" :data-i="i" @tap.stop="linkTap">
<node name="span" :childs="n.children" :opts="opts" style="display:inherit" /> <node name="span" :childs="n.children" :opts="opts" style="display:inherit"/>
</view> </view>
<!-- 视频 --> <!-- 视频 -->
<!-- #ifdef APP-PLUS --> <!-- #ifdef APP-PLUS -->
@ -64,7 +64,7 @@
<!-- 富文本 --> <!-- 富文本 -->
<!-- #ifdef H5 || ((MP-WEIXIN || MP-QQ || APP-PLUS || MP-360) && VUE2) --> <!-- #ifdef H5 || ((MP-WEIXIN || MP-QQ || APP-PLUS || MP-360) && VUE2) -->
<rich-text v-else-if="!n.c&&!handler.isInline(n.name, n.attrs.style)" :id="n.attrs.id" :style="n.f" :user-select="opts[4]" :nodes="[n]" /> <rich-text v-else-if="!n.c&&!handler.isInline(n.name, n.attrs.style)" :id="n.attrs.id" :style="n.f" :user-select="opts[4]" :nodes="[n]"/>
<!-- #endif --> <!-- #endif -->
<!-- #ifndef H5 || ((MP-WEIXIN || MP-QQ || APP-PLUS || MP-360) && VUE2) --> <!-- #ifndef H5 || ((MP-WEIXIN || MP-QQ || APP-PLUS || MP-360) && VUE2) -->
<rich-text v-else-if="!n.c" :id="n.attrs.id" :style="'display:inline;'+n.f" :preview="false" :selectable="opts[4]" :user-select="opts[4]" :nodes="[n]" /> <rich-text v-else-if="!n.c" :id="n.attrs.id" :style="'display:inline;'+n.f" :preview="false" :selectable="opts[4]" :user-select="opts[4]" :nodes="[n]" />

Loading…
Cancel
Save