Browse Source

修改bug

master
岳鹏龙 7 months ago
parent
commit
5abe88f698
  1. 18
      src/pages.json
  2. 5
      src/pages/index/ChatDialog.vue
  3. 4
      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. 78
      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. 37
      src/pages/index/subform.vue
  19. 23
      src/pages/index/tabsComm.vue
  20. 27
      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

18
src/pages.json

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

5
src/pages/index/ChatDialog.vue

@ -8,7 +8,10 @@
src="@/static/img/aiimg.png"
mode="widthFix"
></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> -->
<image
style="width: 40rpx; height: 40rpx;"

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

@ -1,4 +1,5 @@
<template>
<view class="" v-if="detaildata.a_type === 1">
<image style="width: 100%; height: 352rpx" :src="baseurl + detaildata.index_pic" mode=""></image>
<view class="container" :style="{height: detaildata.form?'calc(100vh - 552rpx)': 'calc(100vh - 352rpx)'}">
<text class="headtxt">{{ detaildata.title }}</text>
@ -17,6 +18,7 @@
<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 class="baombut" v-if="detaildata.form">
@ -24,6 +26,8 @@
立即报名
</view>
</view>
</view>
<web-view v-else :src="detaildata.link_path"></web-view>
</template>
<script setup>

3
src/pages/index/bnbdetail.vue

@ -1,7 +1,7 @@
<template>
<!-- <u-navbar :title="titleData.special_id_name ? '“' + titleData.special_id_name + '”' + '专题' : ''" placeholder="true"
bg-color="#F1F3F9" :auto-back="true"></u-navbar> -->
<view class="container">
<view class="container" v-if="titleData.a_type === 1">
<view class="titlepart">
<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>
@ -11,6 +11,7 @@
<uvparse :content="titleData.content"></uvparse>
<view class="fbtime">{{ titleData.create_time }}</view>
</view>
<web-view v-else :src="titleData.link_path"></web-view>
</template>
<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>
<text class="butext">办年报</text>
</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>
<!-- <image class="zuanti" :src="url + '/' + ztdata.home_img" mode="scaleToFill" @click="goZT(ztdata.id)"> -->
<!-- </image> -->
@ -74,11 +82,11 @@
<text class="xdb">快捷帮扶</text>
<view class="bangCart">
<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>
</view>
<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>
</view>
<view class="bangone3" @click="gojrb">
@ -102,7 +110,7 @@
</view>
<view class="hylist">
<tabsComm :tabs-data="filterTabs" @tabChange="handleTabSelect" />
<tabsComm :tabs-data="filterTabs" :showNum="2" @tabChange="handleTabSelect" />
<scroll-view scroll-y="auto" class="hyonne">
<view class="hyCard" v-for="(item, index) in hyList.slice(0, 6)" :key="index"
@click="gohydetail(item.id)">
@ -281,8 +289,11 @@
}
const goqyb = () => {
// uni.navigateTo({
// url: '/pages/index/shoppage/qyHelp'
// })
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 () => {
filterTabs.value = []
await memberTagList().then((res) => {
@ -661,9 +684,11 @@
border-radius: 24rpx;
background-color: #ffffff;
display: flex;
justify-content: center;
align-items: center;
gap: 64rpx;
padding: 0 64rpx;
overflow-x: auto;
max-width: 100%;
.but {
display: grid;
@ -678,6 +703,7 @@
/* 文本/正文 */
color: #1a1a1a;
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>
<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: 120rpx; height: 120rpx;" src="@/static/img/nianb.png" mode="scaleToFill"></image>
<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>
<view class="rightpart">
<view class="splace">
{{ item.title }}
@ -56,9 +57,9 @@
const ztList = ref([])
const godetail = (id) => {
const godetail = (item) => {
uni.navigateTo({
url: '/pages/index/bnbdetail?id=' + id
url: '/pages/index/bnbdetail?id=' + item.id
})
}
@ -126,6 +127,7 @@
flex: 3;
display: grid;
align-content: space-between;
.splace {
font-family: Source Han Sans;
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>

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

@ -3,7 +3,8 @@
<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>
:show-action="false" height="40" margin="" bg-color="#FFFFFF"></u-search>
<tabsComm :tabs-data="filterTabs" :showAll="false" :showNum="3" @tabChange="handleTabSelect" />
<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)">
@ -43,12 +44,14 @@
import {
financeList
} 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'
const baseurl = ref(import.meta.env.VITE_APP_BASE_URL + '/')
//
const keyword = ref('')
const currentTab = ref('')
const page = ref(1)
const pagesize = ref(6)
@ -86,6 +89,7 @@
const getfinanceList = async (name, page, limit) => {
let params = {
alliance_city: currentTab.value,
keyword: name,
page: page,
limit: limit
@ -98,6 +102,7 @@
const onloadmore = async () => {
page.value++
let params = {
alliance_city: currentTab.value,
keyword: keyword.value,
page: page.value,
limit: pagesize.value
@ -107,6 +112,70 @@
})
}
// ""
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 () => {
await getfinanceList('', 1, 6)
})
@ -118,17 +187,18 @@
height: calc(100vh - 178rpx);
width: 100%;
overflow-y: hidden;
padding: 40rpx 24rpx 24rpx 24rpx;
.hyonne {
max-height: calc(100vh - 350rpx);
max-height: calc(100vh - 400rpx);
overflow-y: auto;
margin-top: -10px;
}
.main {
margin-top: 10rpx;
width: 100%;
height: 100%;
padding: 0 24rpx;
height: calc(100% - 46px);
box-sizing: border-box;
overflow-y: hidden;

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

@ -70,7 +70,7 @@ const current = ref(0)
//
const list1 = reactive([
{
name: '开店帮',
name: '查政策',
id: 1
},
{
@ -82,7 +82,7 @@ const list1 = reactive([
id: 3
},
{
name: '企业帮',
name: '提诉求',
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-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>
: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">
<view class="mtone" v-for="(item, index) in mtList" :key="index" @click="gomtbdetail(item.id)">
<view class="headpart">
@ -29,9 +30,9 @@
</view>
</view>
</scroll-view>
<view class="fbxxbutton">
<!-- <view class="fbxxbutton">
<view class="button" @click="gofbxx">发布信息</view>
</view>
</view> -->
</view>
<liuDragButton :width-px="'145rpx'">
<view class="boxhd" @click="gohdzq">
@ -50,6 +51,7 @@
import {
mediumList
} 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 useUserStore from '@/store/user'
const userStore = useUserStore()
@ -58,6 +60,7 @@
//
const keyword = ref('')
const currentTab = ref('')
const page = ref(1)
const pagesize = ref(2)
@ -110,6 +113,7 @@
const getmediumList = async (name, page, limit) => {
let params = {
alliance_city: currentTab.value,
name: name,
page: page,
limit: limit
@ -122,6 +126,7 @@
const onloadmore = async () => {
page.value++
let params = {
alliance_city: currentTab.value,
name: keyword.value,
page: page.value,
limit: pagesize.value
@ -131,6 +136,71 @@
})
}
// ""
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 () => {
await getmediumList('', 1, 2)
})
@ -141,15 +211,17 @@
background: linear-gradient(0deg, #f1f3f9 72%, rgba(62, 146, 249, 0.2) 88%);
width: 100%;
overflow: hidden;
padding: 40rpx 24rpx 24rpx 24rpx;
.mtlist {
margin-top: 8rpx;
padding: 0 24rpx;
margin-top: -10rpx;
box-sizing: border-box;
overflow-y: auto;
height: 100vh;
max-height: calc(100vh - 336rpx);
padding-bottom: 168rpx;
// max-height: calc(100vh - 336rpx);
max-height: 100vh;
// padding-bottom: 168rpx;
padding-bottom: 35rpx;
.mtone {
margin-top: 30rpx;

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

@ -1,5 +1,5 @@
<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="main">
<view class="head">

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

@ -1,5 +1,5 @@
<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">
<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"

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

@ -1,6 +1,6 @@
<template>
<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="fbr">发布人{{ xdbData.publisher }}</text>
<view class="readtime">
@ -16,6 +16,7 @@
</view>
<uvparse :content="xdbData.content"></uvparse>
</view>
<web-view v-else :src="xdbData.link_path"></web-view>
</template>
<script setup>

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

@ -1,5 +1,5 @@
<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">
<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"
@ -60,27 +60,27 @@
const current = ref(1)
const page = ref(1)
const limit = ref(8)
const limit = ref(20)
const goods = ref([])
const rightData = ref([])
const search = (val) => {
page.value = 1
limit.value = 8
limit.value = 20
getRightdata()
}
const clickIcon = () => {
page.value = 1
limit.value = 8
limit.value = 20
getRightdata()
}
const lefttabId = (id) => {
keyword.value = ''
page.value = 1
limit.value = 8
limit.value = 20
current.value = id
getRightdata()
}
@ -125,6 +125,7 @@
onLoad(async () => {
await storeList({}).then((res) => {
goods.value = res.data
current.value = res.data[0].id
})
await getRightdata()
})
@ -168,6 +169,7 @@
padding: 30rpx;
box-sizing: border-box;
gap: 20rpx;
max-height: 77vh;
.list {
width: 100%;

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

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

68
src/pages/index/specialSubject.vue

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

37
src/pages/index/subform.vue

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

23
src/pages/index/tabsComm.vue

@ -1,7 +1,7 @@
<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
@ -16,7 +16,7 @@
:class="{ active: activeTab === tab.id }"
@click="handleTabSelect(tab.id)"
>
{{ tab.title.slice(0, 2) }}
{{ tab.title }}
</view>
<!-- </scroll-view> -->
@ -51,6 +51,14 @@ const props = defineProps({
tabsData: {
type: Array,
default: () => []
},
showAll: {
type: Boolean,
default: true
},
showNum: {
type: Number,
default: 2
}
})
@ -66,15 +74,15 @@ const show = ref(false)
//
const visibleTabs = computed(() => {
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 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) => {
@ -123,6 +131,7 @@ onUnmounted(() => {
position: relative;
display: flex;
align-items: center;
justify-content: space-between;
padding: 16rpx 0;
:last-child {
margin-right: 0 !important;
@ -138,11 +147,9 @@ onUnmounted(() => {
display: inline-flex;
align-items: center;
white-space: nowrap;
width: 25%;
box-sizing: border-box;
height: 60rpx;
padding: 0 34rpx;
margin-right: 38rpx;
border-radius: 124rpx;
background: #f1f3f9;
font-family: Source Han Sans;

27
src/pages/index/ztdetail.vue

@ -1,12 +1,21 @@
<template>
<u-navbar :title="titleData.special_id_name ? '“' + titleData.special_id_name + '”' + '专题' : ''" placeholder="true"
bg-color="#F1F3F9" :auto-back="true"></u-navbar>
<view class="container" :style="{height: titleData.form?'calc(100vh - 350rpx)': 'calc(100vh - 150rpx)'}">
<!-- <u-navbar :title="titleData.special_id_name" placeholder="true" 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?'93vh': '100vh'}">
<view class="titlepart">
<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>
<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> -->
@ -17,6 +26,8 @@
立即报名
</view>
</view>
</view>
<web-view v-else :src="titleData.link_path"></web-view>
</template>
<script setup>
@ -24,7 +35,10 @@
onLoad
} from '@dcloudio/uni-app'
import {
ref
ref,
} from 'vue'
import {
specialListInfo,
@ -32,7 +46,7 @@
} from '@/api/index'
import uvparse from '@/uni_modules/uv-parse/components/uv-parse/uv-parse.vue'
const titleData = ref([])
const titleData = ref({})
const gotij = (id, item) => {
uni.navigateTo({
@ -49,7 +63,6 @@ import uvparse from '@/uni_modules/uv-parse/components/uv-parse/uv-parse.vue'
} else {
const res = await bannerInfo(param.id)
if (res.code === 1) {
console.log(res)
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">
.container {
background-color: #ffffff;
height: calc(100vh - 350rpx);
height: 100vh;
width: 100%;
padding: 48rpx;
box-sizing: border-box;

16
src/pages/mine/index.vue

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

Loading…
Cancel
Save