Browse Source

办年报

master
岳鹏龙 8 months ago
parent
commit
02bf8616fe
  1. 2
      src/api/learningCenter.ts
  2. 18
      src/api/shop.ts
  3. 21
      src/pages.json
  4. 114
      src/pages/index/bnbdetail.vue
  5. 17
      src/pages/index/index.vue
  6. 156
      src/pages/index/shoppage/annualReport.vue
  7. 77
      src/pages/index/shoppage/qyHelp.vue
  8. 7
      src/pages/learningCenter/index.vue
  9. BIN
      src/static/img/nianb.png

2
src/api/learningCenter.ts

@ -11,7 +11,7 @@ export function myStudy() {
//学习中心列表
export function studyCenter(recommend: string, title: string, type: string, page: string, limit: string) {
return request.http({
url: '/api/huiqitong/study_center?recommend=' + recommend + '&title=' + title + '&s_type=' + type + '&page=' + page + '&limit=' + limit,
url: '/api/huiqitong/study_center?recommend=' + recommend + '&title=' + title + '&category_id=' + type + '&page=' + page + '&limit=' + limit,
method: 'GET'
})
}

18
src/api/shop.ts

@ -137,3 +137,21 @@ export function postsInfo(id: any) {
method: 'GET'
})
}
//办年报列表
export function annualReport(data: any) {
return request.http({
url: '/api/huiqitong/annual_report',
method: 'GET',
data
})
}
//办年报详情
export function ReportDetail(id: any) {
return request.http({
url: '/api/huiqitong/annual_report/' + id,
method: 'GET'
})
}

21
src/pages.json

@ -137,6 +137,13 @@
"navigationStyle": "custom"
}
},
{
"path": "pages/index/shoppage/qyHelp",
"style": {
"navigationBarTitleText": "企业帮",
"navigationStyle": "custom"
}
},
//
{
"path": "pages/learningCenter/detail",
@ -201,6 +208,20 @@
{
"navigationBarTitleText" : "互动专区"
}
},
{
"path" : "pages/index/shoppage/annualReport",
"style" :
{
"navigationBarTitleText" : "办年报"
}
},
{
"path" : "pages/index/bnbdetail",
"style" :
{
"navigationBarTitleText" : "办年报详情"
}
}
],
"permission": {

114
src/pages/index/bnbdetail.vue

@ -0,0 +1,114 @@
<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="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>
<!-- <image style="width: 100%;height: 436rpx;margin-top: 48rpx;" src="@/static/img/Bitmap.png" mode=""></image> -->
<rich-text :nodes="titleData.content"></rich-text>
<view class="fbtime">{{ titleData.create_time }}</view>
</view>
</template>
<script setup>
import {
onLoad
} from '@dcloudio/uni-app'
import {
ref
} from 'vue'
import {
ReportDetail
} from '@/api/shop'
const titleData = ref([])
const gotij = (id, item) => {
uni.navigateTo({
url: '/pages/index/subform?form=' + JSON.stringify(item) + '&id=' + id
})
}
onLoad(async (param) => {
const res = await ReportDetail(param.id)
if (res.code === 1) {
titleData.value = res.data
}
titleData.value.content = titleData.value.content.replace(/<img/g,
'<img style="width: 100%; max-width: 100%; height: auto;"')
})
</script>
<style scoped lang="scss">
.container {
background-color: #ffffff;
height: calc(100vh - 350rpx);
width: 100%;
padding: 48rpx;
box-sizing: border-box;
overflow-y: auto;
.titlepart {
display: flex;
align-items: baseline;
margin-bottom: 40rpx;
.title {
font-family: Source Han Sans;
font-weight: 550;
font-size: 36rpx;
color: #0c092a;
margin-left: 20rpx;
}
}
.text {
margin-top: 32rpx;
font-family: Source Han Sans;
font-size: 32rpx;
font-weight: 300;
line-height: 60rpx;
letter-spacing: normal;
color: #3d3d3d;
}
.fbtime {
font-family: Roboto;
font-size: 28rpx;
font-weight: normal;
line-height: 142rpx;
letter-spacing: normal;
/* 外部/SCMP Grey/nobel */
/* 样式描述:06 Small Grey txt */
color: #a1a1a1;
}
}
.baombut {
width: 100%;
padding: 36rpx 0;
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0rpx 0rpx 20rpx 0rpx rgba(0, 0, 0, 0.3);
background: #FFFFFF;
position: fixed;
bottom: 0;
.buttt {
width: 574rpx;
height: 96rpx;
border-radius: 248rpx;
background: linear-gradient(90deg, #007FFF 0%, #99CCFF 100%);
font-family: Source Han Sans;
font-size: 36rpx;
color: #FFFFFF;
display: flex;
align-items: center;
justify-content: center;
}
}
</style>

17
src/pages/index/index.vue

@ -55,7 +55,7 @@
<text class="btext">开店帮</text>
<image style="height: 64rpx; width: 80rpx" src="@/static/img/kdb.png" mode=""></image>
</view>
<view class="bangone2" @click="kfz">
<view class="bangone2" @click="goqyb">
<text class="btext">企业帮</text>
<image style="height: 64rpx; width: 80rpx" src="@/static/img/qyb.png" mode=""></image>
</view>
@ -238,6 +238,12 @@ const gojrb = () => {
})
}
const goqyb = () => {
uni.navigateTo({
url: '/pages/index/shoppage/qyHelp'
})
}
const gomtb = () => {
uni.navigateTo({
url: '/pages/index/shoppage/mediaHelp'
@ -318,9 +324,12 @@ onShow(async () => {
})
const kfz = () => {
uni.showToast({
title: '开发中。。。',
icon: 'none'
// uni.showToast({
// title: '',
// icon: 'none'
// })
uni.navigateTo({
url: '/pages/index/shoppage/annualReport'
})
}

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

@ -0,0 +1,156 @@
<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" src="@/static/img/nianb.png" mode="widthFix"></image>
<view class="rightpart">
<view class="splace">
{{ item.title }}
</view>
<text class="title">{{ item.create_time }}</text>
</view>
</view>
</scroll-view>
</view>
</view>
</template>
<script setup>
import {
ref
} from 'vue'
import {
ReportDetail,
annualReport
} 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 godetail = (id) => {
uni.navigateTo({
url: '/pages/index/bnbdetail?id=' + id
})
}
const getfinanceList = async (name, page, limit) => {
let params = {
title: name,
page: page,
limit: limit
}
await annualReport(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]
})
}
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 - 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%;
margin-top: 20rpx;
padding: 20rpx;
border-radius: 8rpx;
background: #ffffff;
box-sizing: border-box;
.rightpart {
width: 100%;
margin-left: 40rpx;
flex: 3;
display: grid;
align-content: space-between;
.splace {
font-family: Source Han Sans;
font-size: 28rpx;
font-weight: 500;
color: #0C092A;
}
.title {
margin-top: 20rpx;
font-family: Source Han Sans;
font-size: 20rpx;
font-weight: 300;
color: #666666;
}
}
}
}
}
.hdzq {
width: 212rpx;
height: 86rpx;
position: fixed;
right: 0;
top: 70%;
margin-right: -14rpx;
}
</style>

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

@ -0,0 +1,77 @@
<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>
</template>
<script setup>
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'
const zhscrollRel = ref(null)
//
const keyword = ref('')
const goods = ref([])
const search = (val) => {
zhscrollRel.value.searchleMenuTap(keyword.value)
}
const clickIcon = () => {
zhscrollRel.value.searchleMenuTap(keyword.value)
}
const gohdzq = () => {
uni.navigateTo({
url: '/pages/index/shoppage/interactiveZone'
})
}
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%;
.cate-tab {
height: calc(100vh - 254rpx);
}
}
.hdzq {
width: 212rpx;
height: 86rpx;
position: fixed;
right: 0;
top: 70%;
margin-right: -14rpx;
}
</style>

7
src/pages/learningCenter/index.vue

@ -194,7 +194,12 @@ onShow(async () => {
} else {
getcenterList(1, keyword.value, tabIndex.value, 1, 10)
}
tabList.value = [
{
id: '',
title: '推荐'
}
]
studyCenterCategory().then((rre) => {
tabList.value = [...tabList.value, ...rre.data]
})

BIN
src/static/img/nianb.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 790 B

Loading…
Cancel
Save