Compare commits

..

9 Commits

  1. 6
      App.vue
  2. 22
      api/article.js
  3. 8
      api/user.js
  4. 90
      components/CustomNavigator.vue
  5. 0
      components/newsSwiper.vue
  6. 4
      components/quick-skeleton/quick-skeleton.vue
  7. 1
      config/index.js
  8. 27
      package-lock.json
  9. 13
      pages.json
  10. 2
      pages/Loading/index.vue
  11. 60
      pages/demandHall/business/index.vue
  12. 4
      pages/demandHall/enterprisePage/index.vue
  13. 123
      pages/demandHall/enterpriseServer/index.vue
  14. 10
      pages/demandHall/index.vue
  15. 8
      pages/demandHall/needsDetail/index.vue
  16. 5
      pages/demandHall/resourcesContact/index.vue
  17. 10
      pages/demandHall/resourcesDetail/index.vue
  18. 124
      pages/demandHall/supplyHall/index.vue
  19. 44
      pages/home/activityCenter/index.vue
  20. 38
      pages/home/index.vue
  21. 182
      pages/information/index.vue
  22. 64
      pages/life/articleList/index.vue
  23. 3
      pages/life/index.vue
  24. 162
      pages/login/agreementPage.vue
  25. 12
      pages/release/companyAuth/index.css
  26. 32
      pages/release/companyAuth/index.vue
  27. 385
      pages/release/index.vue
  28. 385
      pages/release/index2.vue
  29. 49
      pages/release/personAuth/index.vue
  30. 42
      pages/user/incomeDetail/index.vue
  31. 27
      pages/user/index.vue
  32. 9
      pages/user/mine/index.vue
  33. 48
      pages/user/withdraw/index.vue
  34. BIN
      static/images/home/减去 3@2x.png
  35. BIN
      static/images/home/组 326@2x.png
  36. BIN
      static/images/home/资源 21@2x.png
  37. BIN
      static/tabbarComponent/icon/icon_home.png
  38. BIN
      static/tabbarComponent/icon/icon_home_HL.png
  39. BIN
      static/tabbarComponent/icon/icon_mine.png
  40. BIN
      static/tabbarComponent/icon/icon_mine_HL.png
  41. BIN
      static/tabbarComponent/icon/icon_release2.png
  42. BIN
      static/tabbarComponent/icon/tab5-a.png
  43. BIN
      static/tabbarComponent/icon/tab5.png

6
App.vue

@ -55,7 +55,7 @@ export default {
methods: {
sceneInfo(s) {
console.log(s)
console.log(s,'sssssssssssss')
var scene = [];
switch (s) {
case 1001:
@ -248,7 +248,7 @@ export default {
setMenuHeight() {
uni.getSystemInfo({
success: res => {
console.log(res,'resaaaaa')
// console.log(res,'resaaaaa')
this.globalData.navTopHeight = res.statusBarHeight;
this.globalData.CustomBar = res.statusBarHeight + 45;
this.globalData.systemInfo = res;
@ -259,7 +259,7 @@ export default {
}
});
let menuButtonObj = uni.getMenuButtonBoundingClientRect();
console.log(menuButtonObj,'menuButtonObj')
// console.log(menuButtonObj,'menuButtonObj')
this.globalData.menuTop = menuButtonObj.top;
this.globalData.menuHeight = menuButtonObj.height;
this.globalData.topHeight = menuButtonObj.top + menuButtonObj.height;

22
api/article.js

@ -0,0 +1,22 @@
import request from '@/utils/request'
// 资讯主页
export function articleIndex(data){
return request.get('/article/index', data, {
login: false,
})
}
// 资讯分类
export function articleCategory(data){
return request.get('/article/listArticleCategory', data, {
login: false,
})
}
// 资讯分类查询
export function getArticleList(data){
return request.get('/article/list', data, {
login: false,
})
}

8
api/user.js

@ -495,3 +495,11 @@ export function integral(q) {
export function signIntegral(q) {
return request.post('/sign/integral')
}
/*
* 提现
* */
export function cash(data) {
return request.post('/user/cash', data)
}

90
components/CustomNavigator.vue

@ -0,0 +1,90 @@
<template>
<view class="pageTitle-box" :class="isFixed ? 'showPageTitle' : ''"
:style="{'padding-top':navTopHeight + 'px',height:navHeight*2+ 'px'}">
<view class="top-logo acea-row row-center"
:style="'top:' + menuTop + 'px;height:' + menuHeight + 'px;line-height: ' + menuHeight + 'px;'">
{{title}}
</view>
</view>
</template>
<script>
const app = getApp();
export default {
props: {
isFixed: {
type: Boolean,
default: false
},
title: {
type: String ,
default: ''
}
},
data() {
return {
menuHeight: app.globalData.menuHeight,
navHeight: app.globalData.navHeight,
menuTop: app.globalData.menuTop,
navTopHeight: app.globalData.navTopHeight,
};
},
methods:{
}
}
</script>
<style lang="less">
.pageTitle-box {
width: 100%;
position: fixed;
top: 0;
z-index: 99;
color: #fff;
transition: all .5s;
}
.showPageTitle {
background: #fff;
color: #000000 !important;
opacity: 1;
font-weight: normal;
.top-logo {
color: #000;
}
}
.page-top-box {
width: 100%;
position: fixed;
top: 0;
left: 0;
z-index: 99;
background: #fff;
padding: 0 30rpx 20rpx;
box-shadow: 0px -6px 20px rgba(0, 0, 0, 0.11);
.top-box {
.top-box-l {
font-size: 32rpx;
color: #000;
font-weight: 500;
image {
width: 26rpx;
height: 30rpx;
display: block;
margin-right: 10rpx;
}
}
}
}
.top-logo {
position: absolute;
width: 100%;
color: #fff;
font-weight: 600;
font-size: 32rpx;
transition: all .5s cubic-bezier(.25, .5, .5, .9);
}
</style>

0
pages/demandHall/business/newsSwiper.vue → components/newsSwiper.vue

4
components/quick-skeleton/quick-skeleton.vue

@ -58,7 +58,11 @@
const that = this;
//
uni.createSelectorQuery().selectAll(`.${this.selector}`).boundingClientRect().exec(function(res){
// console.log(res)
if(res[0][0]) {
that.systemInfo.height = res[0][0].height + res[0][0].top;
}
});
//

1
config/index.js

@ -8,3 +8,4 @@ export const VUE_APP_API_URL = 'https://cloud.api.cyjyyjy.com/api'
// export const VUE_APP_API_URL = 'https://h5api.xinxintuan.co/api';
// export const VUE_APP_API_URL = 'https://h5api.xinxintuan.co/api';
export const VUE_APP_RESOURCES_URL = 'https://h5.yixiang.co/static'

27
package-lock.json generated

@ -1,31 +1,6 @@
{
"name": "zhaoshangMiniApp-uniapp",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"dependencies": {
"async-validator": "^4.0.7",
"dayjs": "^1.10.7",
"uview-ui": "^1.8.4"
}
},
"node_modules/async-validator": {
"version": "4.0.7",
"resolved": "https://registry.npmmirror.com/async-validator/download/async-validator-4.0.7.tgz?cache=0&sync_timestamp=1634529502627&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fasync-validator%2Fdownload%2Fasync-validator-4.0.7.tgz",
"integrity": "sha1-A0oP0hA6ay6/AQ2nUYO+wpkkev4="
},
"node_modules/dayjs": {
"version": "1.10.7",
"resolved": "https://registry.nlark.com/dayjs/download/dayjs-1.10.7.tgz?cache=0&sync_timestamp=1631266519235&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdayjs%2Fdownload%2Fdayjs-1.10.7.tgz",
"integrity": "sha512-P6twpd70BcPK34K26uJ1KT3wlhpuOAPoMwJzpsIWUxHZ7wpmbdZL/hQqBDfz7hGurYSa5PhzdhDHtt319hL3ig=="
},
"node_modules/uview-ui": {
"version": "1.8.4",
"resolved": "https://registry.npm.taobao.org/uview-ui/download/uview-ui-1.8.4.tgz",
"integrity": "sha1-4yu/I3lCHTGQIuMk4ct7U4fTvUQ="
}
},
"lockfileVersion": 1,
"dependencies": {
"async-validator": {
"version": "4.0.7",

13
pages.json

@ -36,6 +36,12 @@
"path": "pages/login/index",
"style": {}
},
{
"path": "pages/login/agreementPage",
"style": {
"navigationBarTitleText": "用户协议"
}
},
{
"path": "pages/authorization/index",
"style": {}
@ -508,7 +514,8 @@
{
"path": "pages/information/index",
"style": {
"navigationBarTitleText": "资讯广场"
"navigationBarTitleText": "资讯广场",
"enablePullDownRefresh": true
}
}
],
@ -545,8 +552,8 @@
{
"pagePath": "pages/information/index",
"text": "资讯",
"iconPath": "/static/tabbarComponent/icon/tab3.png",
"selectedIconPath": "/static/tabbarComponent/icon/tab3-a.png"
"iconPath": "/static/tabbarComponent/icon/tab5.png",
"selectedIconPath": "/static/tabbarComponent/icon/tab5-a.png"
},
{
"pagePath": "pages/user/index",

2
pages/Loading/index.vue

@ -4,7 +4,7 @@
<image src="https://download.cyjyyjy.com/miniappLogo.png" mode="aspectFill"></image>
<text>海量资源与福利尽在云生态~</text>
<!-- <image src="@/static/live-logo.gif" rel="preload" mode="widthFix" style="width: 100%" /> -->
<image src="../../static/images/loading.gif" class="loading" mode=""></image>
<!-- <image src="../../static/images/loading.gif" class="loading" mode=""></image> -->
</view>
</view>
</template>

60
pages/demandHall/business/index.vue

@ -46,7 +46,7 @@
</view>
</view>
<scroll-view class="scroll-view_H acea-row" scroll-x="true">
<view class="company-list" v-for="(item,index) in enterpriseList" :key="index">
<view class="company-list" v-for="(item,index) in enterpriseList" :key="index" @click="toCompanyDetail(item.id)">
<view class="title line1">{{item.enterpriseName}}</view>
<view class="category-box acea-row">
<view class="tag" :class="index%2 == 0 ? 'tag-item-b' : 'tag-item-y' ">{{item.cname}}</view>
@ -70,24 +70,24 @@
<image src="../../../static/images/fabu-close.png" class="toadd" @tap="toAuthentication"></image>
</view>
<view class="service-top acea-row row-between">
<view class="service-nub-left acea-row row-column-between">
<view class="service-nub-left acea-row row-column-between" @click="toResourcesDetail(supplyList[0].id)">
<view class="tips line1">{{supplyList[0].title}}</view>
<view class="tips-item line1">{{supplyList[0].detailedDescription}}</view>
<image :src="supplyList[0].resourceImgs[0]" mode="aspectFill"></image>
</view>
<view class="acea-row row-between service-nub-right">
<view class="acea-row row-between service-nub-right" @click="toResourcesDetail(supplyList[1].id)">
<view class="acea-row row-center-wrapper module-nub">
<view class="tips line1">{{supplyList[1].title}}</view>
<view class="tips-item line1">{{supplyList[1].detailedDescription}}</view>
</view>
<view class="acea-row row-center-wrapper module-nub">
<view class="acea-row row-center-wrapper module-nub" @click="toResourcesDetail(supplyList[2].id)">
<view class="tips">{{supplyList[2].title || '广告位招租'}}</view>
<view class="tips-item">{{supplyList[2].detailedDescription}}</view>
</view>
</view>
</view>
<view class="service-bottom acea-row row-between">
<view v-for="(item,index) in cagetoryList" :key="index">
<view v-for="(item,index) in cagetoryList" :key="index" @click="toEnterpriseServer(item.id)">
<view class="module-box bg-red acea-row row-center-wrapper" v-if="index <= 2 ">
<view class="tips">{{item.cagetoryName}}</view>
<!-- <view class="tips-item">房屋装修</view> -->
@ -98,7 +98,7 @@
</view>
<!-- 优质项目 -->
<view class="project-box">
<!-- <view class="project-box">
<image src="../../../static/images/business-title3.png" class="title-img"></image>
<view class="project-list acea-row" v-for="(item,index) in 3" :key="index">
<image src="../../../static/images/business-img1.png" mode="" class="project-img"></image>
@ -115,22 +115,15 @@
</view>
</view>
</view>
</view>
</view> -->
</view>
</template>
<script>
import {
getArticle
} from "@/api/home";
import {
briefing,
supply,
listResourcesCagetory,
listEnterprise
} from "@/api/business"
import NewsSwiper from "./newsSwiper.vue"
import { getArticle } from "@/api/home";
import { briefing, supply, listResourcesCagetory, listEnterprise } from "@/api/business"
import NewsSwiper from "@/components/newsSwiper.vue"
export default {
components: {
NewsSwiper
@ -160,9 +153,12 @@
this.isRecommend = articleList.filter(item => item.isRecommend == 1)
})
},
toArticleDetail(id) {
uni.navigateTo({
url: "/pages/life/articleDetail/index?id=" + id
toArticleDetail(id){
this.$yrouter.push({
path: '/pages/life/articleDetail/index',
query: {
id: id
}
})
},
//
@ -171,6 +167,18 @@
this.supplyList = res.data
})
},
toResourcesDetail(id){
return
if(id){
this.$yrouter.push({
path: '/pages/demandHall/resourcesDetail/index',
query: {
id: id
}
})
}
},
//
getCagetoryList() {
listResourcesCagetory().then((res) => {
@ -186,7 +194,7 @@
},
toCompanyDetail(id) {
uni.navigateTo({
url: "/pages/life/articleDetail/index?id=" + id
url:"/pages/demandHall/enterprisePage/index?id=" + id
})
},
//
@ -197,15 +205,15 @@
}
},
//
toSupplyHall(e) {
toSupplyHall(id){
uni.navigateTo({
url: "/pages/demandHall/supplyHall/index"
})
},
//
toEnterpriseServer(e) {
toEnterpriseServer(id){
uni.navigateTo({
url: "/pages/demandHall/enterpriseServer/index"
url:"/pages/demandHall/enterpriseServer/index?typeId="+ id
})
},
//
@ -222,7 +230,7 @@
//
toAuthentication(e) {
uni.navigateTo({
url: "/pages/release/index2"
url:"/pages/release/index"
})
}
},
@ -417,7 +425,7 @@
width: 100%;
height: 330rpx;
white-space: nowrap;
margin-left: 30rpx;
padding-left: 30rpx;
.company-list {
width: 408rpx;

4
pages/demandHall/enterprisePage/index.vue

@ -223,7 +223,7 @@
}
}
.contact-box{
width: 500rpx;
width: 670rpx;
height: 106rpx;
font-size: 24rpx;
font-weight: 500;
@ -235,7 +235,7 @@
margin-right: 10rpx;
}
.line1{
width: 470rpx;
width: 620rpx;
line-height: 30rpx;
}
}

123
pages/demandHall/enterpriseServer/index.vue

@ -21,20 +21,19 @@
</view>
<view class="supplyHall-box">
<view class="resource-box" v-if="active == 1">
<!-- 企业 -->
<view class="enterprise-list" v-for="(item,index) in 2" :key="index">
<view :class="'business-lable' + (item.enterpriseType == 2 ? ' bg2' : '')">
<view class="enterprise-list" v-for="(item,index) in resourceList" :key="index" @tap="toResourceDetail"
:data-id="item.id">
<view :class="'business-lable ' + (item.enterpriseType == 1 ? 'bg2' : '')">
{{item.enterpriseType == 1 ? '企业' : '个人'}}
</view>
<view class="enterprise-con acea-row">
<image src="../../../static/images/home/menu6.png" class="enterprise-img"></image>
<image :src="item.resourceImgs[0]" class="enterprise-img"></image>
<view class="content-right acea-row row-column-between">
<view class="line2">APP开发平台搭建外卖小程序返现H5定制一站式解决</view>
<view class="line2">{{item.title}}</view>
<view class="category-box acea-row">
<view class="tag-item-b tag">商务合作</view>
<view class="tag-item-y tag">场地租赁</view>
<view class="tag-item-b tag">{{item.cname}}</view>
</view>
<view class="enterprise-price">20,000</view>
<view class="enterprise-price">{{item.totalMoney}}</view>
</view>
</view>
<view class="enterprise-info acea-row row-middle">
@ -45,8 +44,9 @@
</view>
</view>
<view class="company-box" v-if="active == 2">
<view class="business-list" v-for="(item,index) in companyList" :key="index" @tap="toCompanyDetail" :data-id="item.id">
<view :class="'business-lable' + (item.enterpriseType == 2 ? ' bg2' : '')">
<view class="business-list" v-for="(item,index) in companyList" :key="index" @tap="toCompanyDetail"
:data-id="item.id">
<view :class="'business-lable ' + (item.enterpriseType == 1 ? 'bg2' : '')">
{{item.enterpriseType == 1 ? '企业' : '个人'}}
</view>
<view class="business-con acea-row">
@ -55,19 +55,14 @@
<view class="title-h line1">{{item.enterpriseName}}</view>
<view class="category-box acea-row">
<view class="tag-item-b tag">{{item.cname}}</view>
<!-- <view class="tag-item-y tag"></view> -->
</view>
<view class="title-s line2">{{item.enterpriseTitle}}</view>
</view>
</view>
<vie class="business-img acea-row row-around">
<image v-for="(item, index2) in item.imgPaths" :key="index2" mode="aspectFill" :src="item"
v-if="index2 < 2"></image>
<image v-for="(item, index2) in item.imgPaths" :key="index2" mode="aspectFill" :src="item"
v-if="index2 < 2"></image>
<view class="business-img acea-row row-around" v-if="item.imgPaths.length > 0">
<image v-for="(item, index2) in item.imgPaths" :key="index2" mode="aspectFill" :src="item"
v-if="index2 < 2"></image>
</vie>
</view>
</view>
</view>
</view>
@ -117,12 +112,17 @@
choseCagetory: '',
choseBusiness: '',
cName: "",
cagetoryList: [],
resourceList: [],
companyList: [],
loading: true,
pageSize: 10,
pageNumber: 0,
}
},
onLoad: function(options) {
this.getCagetoryList();
this.getPageData();
},
methods: {
tabClick(e) {
@ -131,6 +131,8 @@
});
if (e.currentTarget.dataset.i == 2) {
this.getCompanyList();
} else {
this.getPageData();
}
},
getCompanyList() {
@ -198,6 +200,43 @@
choseCagetory: '',
});
},
//
getPageData() {
if (this.loading) {
app.http('post', `Resources/listResources?page=${this.pageNumber}&size=${this.pageSize}`, {
resourceType: 1,
resourceCagetoryId: this.resourceCagetoryId,
enterpriseType: this.enterpriseType
}).then(res => {
if (res.data.success) {
uni.stopPullDownRefresh();
if (res.data.data.content.length < this.pageSize) {
this.setData({
loading: false
});
}
if (this.pageNumber > 0) {
this.setData({
resourceList: this.resourceList.concat(res.data.data.content)
});
} else {
this.setData({
resourceList: res.data.data.content
});
}
}
});
} else {
uni.stopPullDownRefresh();
}
},
toResourceDetail(e) {
let id = e.currentTarget.dataset.id;
uni.navigateTo({
url: '/pages/demandHall/resourcesDetail/index?id=' + id
});
},
//
toCompanyDetail(e) {
let id = e.currentTarget.dataset.id;
@ -210,11 +249,16 @@
</script>
<style lang="less">
image {
border-radius: 8rpx;
}
.supplyHall-page {
width: 100%;
min-height: 100vh;
background: #F5F5F5;
font-size: 28rpx;
padding-bottom: 100rpx;
}
/* 导航栏 */
@ -239,6 +283,7 @@
height: 35rpx;
margin: 0 29rpx 0 52rpx;
}
.search-box input {
width: 400rpx;
}
@ -337,10 +382,12 @@
margin: 8rpx 20rpx 0rpx 20rpx;
padding-bottom: 16rpx;
}
.category-box{
.category-box {
width: 100%;
height: 36rpx;
overflow: hidden;
.tag {
width: auto;
height: 36rpx;
@ -367,16 +414,39 @@
border: 1px solid #FC9367;
}
}
.tag {
width: auto;
padding: 0 10rpx;
height: 36rpx;
border-radius: 4rpx;
font-size: 20rpx;
margin-right: 8rpx;
text-align: center;
}
.tag-item-b {
border: 1rpx solid #3A9EFA;
color: #3A9EFA;
}
.tag-item-y {
border: 1px solid #FFAA00;
color: #FFAA00;
}
.tag-item-p {
color: #FC9367;
border: 1px solid #FC9367;
}
.enterprise-name{
.enterprise-name {
max-width: 382rpx;
height: 40rpx;
color: #1D1D1D;
margin: 0 10rpx 0 16rpx;
}
.todetails {
width: 148rpx;
height: 44rpx;
@ -438,7 +508,8 @@
margin: 0 auto;
margin-top: 32rpx;
border-radius: 12rpx;
padding-bottom: 30rpx;
position: relative;
padding-bottom: 12rpx;
}
.business-lable {
@ -452,18 +523,22 @@
}
.bg2 {
background: linear-gradient(141deg, #FFA782 0%, #FF6D31 100%);
background: linear-gradient(141deg, #FF6D31 0%, #FFA782 100%);
}
.business-con {
width: 100%;
margin: 8rpx 20rpx 16rpx 20rpx;
.logo-img {
width: 154rpx;
height: 154rpx;
margin-right: 20rpx;
}
.con-right{
.con-right {
width: 450rpx;
.title-h {
width: 100%;
height: 44rpx;
@ -471,6 +546,7 @@
color: #1D1D1D;
margin-bottom: 8rpx;
}
.title-s {
width: 456rpx;
height: 65rpx;
@ -483,6 +559,7 @@
}
}
.business-img {
width: 630rpx;
height: 176rpx;

10
pages/demandHall/index.vue

@ -84,14 +84,6 @@
</view>
<!-- 需求 -->
<view class="company-list-box" v-if="active == 2">
<!-- <view class="screen-box acea-row row-between-wrapper">
<view class="screen-result">IT软件 · 企业网站</view>
<view class="screen-result"> </view>
<view class="screen acea-row row-middle" @tap="showDialog">
<text>筛选</text>
<image src="/static/images/home/screen.png"></image>
</view>
</view> -->
<view class="company-list">
<view v-for="(item, index) in list" :key="index" class="company-item" :data-id="item.id"
@tap="toNeedsDetail">
@ -177,7 +169,7 @@
list: [],
showScreenDialog: false,
companyList: [],
pageSize: 5,
pageSize: 10,
pageNumber: 0,
loading: true,
//

8
pages/demandHall/needsDetail/index.vue

@ -34,7 +34,6 @@
<view class="company-name">{{detail.enterprise.enterpriseName}}</view>
<view class="tags-box">
<view class="tag-item">{{detail.cname}}</view>
<!-- <view class="tag-item bgG">IT软件</view> -->
</view>
<!-- <view class="slogan">让全世界全世界牛起全世界牛起全世界牛起牛起来</view> -->
</view>
@ -297,6 +296,10 @@ export default {
margin-right: 20rpx;
border-radius: 8rpx;
}
.info{
width: 477rpx;
height: auto;
}
.name{
font-size: 32rpx;
line-height: 44rpx;
@ -311,7 +314,7 @@ export default {
margin: 6rpx 0 10rpx;
}
.tag-item{
width: 112rpx;
width: auto;
height: 36rpx;
display: inline-block;
line-height: 36rpx;
@ -321,6 +324,7 @@ export default {
color: #fff;
border-radius: 4rpx;
margin-right: 8rpx;
padding: 0 10rpx;
}
.bgG{
background: linear-gradient(134deg, #AEC8F6 0%, #76A6FA 100%);

5
pages/demandHall/resourcesContact/index.vue

@ -8,7 +8,7 @@
<view class="tags-box">
<view class="tag-item">{{resourcesDetail.cname}}</view>
</view>
<view class="slogan">{{resourcesDetail.enterprise.enterpriseName}}</view>
<view class="slogan line1">{{resourcesDetail.enterprise.enterpriseName}}</view>
</view>
</view>
<view class="tips acea-row row-middle">
@ -176,7 +176,8 @@ export default {
margin: 6rpx 0 10rpx;
}
.tag-item{
width: 112rpx;
width: auto;
padding: 0 10rpx;
height: 36rpx;
display: inline-block;
line-height: 36rpx;

10
pages/demandHall/resourcesDetail/index.vue

@ -6,7 +6,9 @@
</view>
<view class="detail-box">
<view class="r-name">{{detail.title}}</view>
<view class="acea-row">
<view class="tag">{{detail.cname}}</view>
</view>
<view class="title-box acea-row row-middle">
<view class="col-line"></view>
<text>基本信息</text>
@ -50,7 +52,7 @@
</view>
<view>
<sSwiper :imgs="detail.resourceImgs"></sSwiper>
<vSwiper :imgs="detail.resourceImgs"></vSwiper>
<!-- <vSwiper :imgs="detail.resourceImgs"></vSwiper> -->
</view>
<view class="btn-box">
<view class="contact-btn" @tap="toResourcesContact">立即沟通</view>
@ -196,7 +198,7 @@ export default {
color: #fff;
background: linear-gradient(314deg, #FF5100 0%, #FF8800 100%);
border-radius: 8rpx;
margin: 16rpx 0;
margin: 16rpx 9rpx 16rpx 0;
}
.col-line{
width: 8rpx;
@ -215,6 +217,7 @@ export default {
width: 144rpx;
}
.colG{
width: 710rpx;
font-size: 28rpx;
line-height: 40rpx;
color: #707070;
@ -251,7 +254,7 @@ export default {
margin: 6rpx 0 10rpx;
}
.tag-item{
width: 112rpx;
width: auto;
height: 36rpx;
display: inline-block;
line-height: 36rpx;
@ -261,6 +264,7 @@ export default {
color: #fff;
border-radius: 4rpx;
margin-right: 8rpx;
padding: 0 10rpx;
}
.bgG{
background: linear-gradient(134deg, #AEC8F6 0%, #76A6FA 100%);

124
pages/demandHall/supplyHall/index.vue

@ -8,8 +8,8 @@
<view class="search acea-row row-center-wrapper">搜一下</view>
</view>
<view class="resource-tabs acea-row">
<view :class="'tab ' + (active == 1 ? 'tab-a' : '')" data-i="1" @tap="tabClick">需求广场</view>
<view :class="'tab ' + (active == 2 ? 'tab-a' : '')" data-i="2" @tap="tabClick">供应广场</view>
<view :class="'tab ' + (active == 2 ? 'tab-a' : '')" data-i="2" @tap="tabClick">需求广场</view>
<view :class="'tab ' + (active == 1 ? 'tab-a' : '')" data-i="1" @tap="tabClick">供应广场</view>
<view class="screen-box acea-row row-between-wrapper">
<view class="screen acea-row row-middle" @tap="showDialog">
<text>筛选</text>
@ -20,29 +20,7 @@
</view>
<view class="supplyHall-box">
<!-- 需求广场 -->
<view class="resource-box" v-if="active == 1">
<!-- 个人 -->
<!-- <view class="personal-list" v-for="(item,index) in 2" :key="index">
<view :class="'tips-item ' + (item.enterpriseType == 2 ? 'bg2' : '' )">
{{item.enterpriseType == 1 ? '企业' : '个人'}}
</view>
<view class="acea-row row-column-between info-box">
<view class="user-info acea-row row-middle">
<image src="../../../static/images/business-img1.png" mode="" class="head-img"></image>
<view class="user-name">大老虎</view>
<view class="user-address">武汉</view>
<view class="user-price">20,000</view>
</view>
<view class="supply-con">李先生需要景区方面资源洽谈相关合作</view>
<view class="category-box acea-row">
<view class="tag-item-b tag">商务合作</view>
<view class="tag-item-y tag">场地租赁</view>
</view>
<view class="time-end">2021.8.30截止报名</view>
</view>
<view class="todetails">查看详情</view>
</view> -->
<!-- 企业 -->
<view class="resource-box" v-if="active == 2">
<view class="enterprise-list" v-for="(item, index) in list" :key="index" @tap="toNeedsDetail"
:data-id="item.id">
<view :class="'tips-item' + (item.enterpriseType == 2 ? ' bg2' : '')">
@ -59,66 +37,41 @@
</view>
<view class="time-end-t line1">{{item.resourceEndTime}}截止报名</view>
</view>
<view class="enterprise-info acea-row row-middle">
<image :src="item.resourceImgs" mode="" class="head-logo"></image>
<image :src="item.enterpriseDto.enterpriseLogo" mode="aspectFill" class="head-logo"></image>
<view class="enterprise-name line1">{{item.enterpriseName}}</view>
<view class="todetails">查看详情</view>
</view>
</view>
</view>
<LoadStatus :loadStatus="loadStatus"></LoadStatus>
</view>
<view class="company-box" v-if="active == 2">
<view class="personal-list">
<view :class="'tips-item' + (item.enterpriseType == 2 ? ' bg2' : '' )">
{{item.enterpriseType == 1 ? '企业' : '个人'}}
</view>
<view class="acea-row row-column-between info-box">
<view class="user-info acea-row row-middle">
<image src="../../../static/images/business-img1.png" mode="" class="head-img"></image>
<view class="user-name line1">大老虎</view>
<view class="user-address">武汉</view>
<view class="user-price">20,000</view>
</view>
<view class="supply-con line2">李先生需要景区方面资源洽谈相关合作</view>
<view class="category-box acea-row">
<view class="tag-item-b tag">商务合作</view>
<view class="tag-item-y tag">场地租赁</view>
</view>
<view class="acea-row row-middle">
<view class="time-end">2021.8.30截止报名</view>
<view class="todetails">查看详情</view>
</view>
</view>
</view>
<view class="enterprise-list">
<!-- 供应广场 -->
<view class="company-box" v-if="active == 1">
<view class="enterprise-list" v-for="(item, index) in list" :key="index" @tap="toResourceDetail"
:data-id="item.id">
<view :class="'tips-item' + (item.enterpriseType == 2 ? ' bg2' : '' )">
{{item.enterpriseType == 1 ? '企业' : '个人'}}
</view>
<view class="enterprise-con acea-row">
<image src="../../../static/images/home/menu6.png" class="enterprise-img"></image>
<image :src="item.resourceImgs[0]" class="enterprise-img"></image>
<view class="content-right acea-row row-column-between">
<view class="line2">APP开发平台搭建外卖小程序返现H5定制一站式解决</view>
<view class="line2">{{item.title}}</view>
<view class="category-box acea-row">
<view class="tag-item-b tag">商务合作</view>
<view class="tag-item-y tag">场地租赁</view>
<view class="tag-item-b tag">{{item.cname}}</view>
<!-- <view class="tag-item-y tag">场地租赁</view> -->
</view>
<view class="e-price">20,000</view>
<view class="e-price">{{item.totalMoney}}</view>
</view>
</view>
<view class="enterprise-info acea-row row-middle mt20">
<image src="../../../static/images/cart.png" mode="" class="head-logo"></image>
<image :src="item.enterpriseDto.enterpriseLogo" mode="" class="head-logo"></image>
<view class="enterprise-name line1">湖北知音动漫有限公司</view>
<view class="todetails">查看详情</view>
</view>
</view>
<LoadStatus :loadStatus="loadStatus"></LoadStatus>
</view>
</view>
<view class="mask-box" v-if="showScreenDialog">
<view :class="'screen-dialog-box ' + (showScreenDialog ? 'move' : '')">
<view class="screen-list">
@ -126,17 +79,17 @@
<view class="screen-title">所有服务</view>
<view class="acea-row">
<view v-for="(item, index) in cagetoryList" :key="index"
:class="'item ' + (cagetoryActive == index ? 'item-active' : '')" @tap="cagetoryClick"
:data-i="index" :data-item="item">{{item.cagetoryName}}</view>
:class="'item ' + (cagetoryActive == index ? 'item-active' : '')"
@tap="cagetoryClick" :data-i="index" :data-item="item">{{item.cagetoryName}}</view>
</view>
</view>
<view class="screen-item">
<view class="screen-title">商家身份<text class="fz20">(所有商家均实名认证)</text></view>
<view class="acea-row">
<view :class="'item ' + (enterpriseType == 2 ? 'item-active' : '')" @tap="businessChange"
data-name="个人认证" data-type="2">个人认证</view>
<view :class="'item ' + (enterpriseType == 1 ? 'item-active' : '')" @tap="businessChange"
data-name="企业认证" data-type="1">企业认证</view>
<view :class="'item ' + (enterpriseType == 2 ? 'item-active' : '')"
@tap="businessChange" data-name="个人认证" data-type="2">个人认证</view>
<view :class="'item ' + (enterpriseType == 1 ? 'item-active' : '')"
@tap="businessChange" data-name="企业认证" data-type="1">企业认证</view>
</view>
</view>
<view class="submit-box acea-row">
@ -147,16 +100,19 @@
</view>
</view>
</view>
</view>
</template>
<script>
const app = getApp();
import LoadStatus from "@/components/LoadStatus.vue"
export default {
components:{ LoadStatus },
components: {
LoadStatus
},
data() {
return {
active: '1',
active: 2,
showScreenDialog: false,
cagetoryActive: "",
///
@ -262,7 +218,13 @@
url: '/pages/demandHall/needsDetail/index?id=' + id
});
},
// 广
toResourceDetail(e) {
let id = e.currentTarget.dataset.id;
uni.navigateTo({
url: '/pages/demandHall/resourcesDetail/index?id=' + id
});
},
getPageData() {
if (this.loading) {
this.loadStatus = '正在加载中...'
@ -276,7 +238,7 @@
if (res.data.data.content.length < this.pageSize) {
this.loading = false;
this.loadStatus = '没有更多了...'
} else{
} else {
this.loadStatus = '上拉加载更多...'
}
this.list = this.list.concat(res.data.data.content)
@ -300,6 +262,10 @@
</script>
<style lang="less">
image {
border-radius: 8rpx;
}
.supplyHall-page {
width: 100%;
min-height: 100vh;
@ -481,10 +447,12 @@
font-weight: 600;
margin: 10rpx 0;
}
.category-box{
.category-box {
width: 100%;
height: 36rpx;
overflow: hidden;
.tag {
width: auto;
height: 36rpx;
@ -560,7 +528,8 @@
font-size: 28rpx;
color: #FF5100;
}
.enterprise-name{
.enterprise-name {
max-width: 382rpx;
height: 40rpx;
color: #1D1D1D;
@ -571,11 +540,13 @@
width: 72rpx;
height: 72rpx;
}
.wd37{
.wd37 {
width: 370rpx;
height: 36rpx;
overflow: hidden;
}
.time-end-t {
width: 250rpx;
height: 34rpx;
@ -583,7 +554,10 @@
color: #707070;
text-align: right;
}
.enterprise-info {
width: 100%;
height: auto;
}
.enterprise-con {
width: 100%;
height: 192rpx;

44
pages/home/activityCenter/index.vue

@ -1,13 +1,10 @@
<template>
<!-- sdsd 345 -->
<view class="activityCenter-page">
<image src="https://download.cyjyyjy.com/center-img.png" class="top-bg"></image>
<view class="pageTitle-box" :class="isFixed ? 'showPageTitle' : ''"
:style="{'padding-top':navTopHeight + 'px',height:navHeight*2+ 'px'}">
<view class="page-title acea-row row-center row-middle"
:style="'top:' + menuTop + 'px;height:' + menuHeight + 'px;line-height: ' + menuHeight + 'px;'"><image src="../../../static/images/arror-right.png" mode="" class="page-back" @tap="toBackHome"></image>活动中心
</view>
</view>
<view class="page-title"
:style="'top:' + menuTop + 'px;height:' + menuHeight + 'px;line-height: ' + menuHeight + 'px;'">
<image src="../../../static/images/back.png" @click="backClick"></image>
活动中心</view>
<view class="activity-box">
<view class="activity-list acea-row" v-for="(item,index) in activity" :key="index" @tap="toActiveDetail"
:data-id="item.id">
@ -24,8 +21,12 @@
</view>
<view class="acea-row row-between-wrapper act-price">
<text class="act-p">{{item.price}}</text>
<text class="act-i">进行中</text>
<view class="enter-btn">立即报名</view>
<!-- <text class="act-i">进行中</text>
<view class="enter-btn">立即报名</view> -->
<view class="act-i" v-if="item.status == 0">筹备中</view>
<view class="act-i" v-if="item.status == 1">报名中</view>
<view class="act-i" v-if="item.status == 2">待举办</view>
<view class="act-i" v-if="item.status == 3">已结束</view>
</view>
</view>
</view>
@ -59,10 +60,19 @@
mounted: function() {
this.getIndexData()
},
onPullDownRefresh(){
this.getIndexData()
},
methods: {
backClick(){
uni.navigateBack({
delta: 1
})
},
getIndexData() {
getIndexData().then(res => {
this.activity = res.data.recommendActivity.content
uni.stopPullDownRefresh()
})
},
toActiveDetail(e) {
@ -125,14 +135,14 @@
font-weight: 600;
font-size: 32rpx;
text-align: center;
transition: all .5s cubic-bezier(.25, .5, .5, .9);
}
.page-back {
width: 18rpx;
height: 30rpx;
image{
width: 36rpx;
height: 36rpx;
position: absolute;
left: 40rpx;
transform: rotateY(180deg);
left: 36rpx;
top: 50%;
margin-top: -18rpx;
}
}
.activity-box {
@ -159,7 +169,7 @@
.act-con {
width: 450rpx;
height: 236rpx;
// height: 236rpx;
padding: 5rpx 0;
.title {

38
pages/home/index.vue

@ -1,14 +1,14 @@
<template>
<view class="productSort">
<!-- 顶部主页 -->
<skeleton v-if="showSkeleton" ref="skeleton" loading="chiaroscuro" selector="skeleton" bgcolor="#FFF">
</skeleton>
<view class="pageTitle-box" :class="isFixed ? 'showPageTitle' : ''"
<skeleton v-if="showSkeleton" ref="skeleton" loading="chiaroscuro" selector="skeleton" bgcolor="#FFF"></skeleton>
<!-- <view class="pageTitle-box" :class="isFixed ? 'showPageTitle' : ''"
:style="{'padding-top':navTopHeight + 'px',height:navHeight*2+ 'px'}">
<view class="top-logo acea-row row-center"
:style="'top:' + menuTop + 'px;height:' + menuHeight + 'px;line-height: ' + menuHeight + 'px;'">禪易生态云
</view>
:style="'top:' + menuTop + 'px;height:' + menuHeight + 'px;line-height: ' + menuHeight + 'px;'">禅易云生态
</view>
</view> -->
<CustomNav :title="title" :isFixed="isFixed"></CustomNav>
<view class="main-box skeleton-rect">
<view class="back-bg">
<image src="https://download.cyjyyjy.com/life-bg.png" mode=""></image>
@ -121,9 +121,7 @@
</view>
<!-- 为您推荐 -->
<view class="warter-box">
<image src="../../static/images/rec-headline.png" mode="" class="headline-img" skeleton-rect></image>
<image src="../../static/images/rec-title.png" mode="" class="headline-img" skeleton-rect></image>
<u-waterfall v-model="productDtos" ref="uWaterfall">
<template v-slot:left="{leftList}">
@ -172,6 +170,7 @@
</template>
</u-waterfall>
<!-- <u-loadmore bg-color="rgb(240, 240, 240)" :status="loadStatus" @loadmore="addRandomData"></u-loadmore> -->
<view class="see-more" @click="toLifeIndex">查看更多>></view>
</view>
<!-- <tabbar :current="currentTabIndex" @click="tabBarClick"></tabbar> -->
</view>
@ -186,21 +185,22 @@
import {
mapGetters
} from 'vuex'
import tabbar from "../../tabbarComponent/tabbar";
import CustomNav from '@/components/CustomNavigator.vue'
import vSwiper from '@/components/vSwiper.vue'
import skeleton from '@/components/quick-skeleton/quick-skeleton'
const app = getApp();
export default {
components: {
tabbar,
vSwiper,
skeleton
skeleton,
CustomNav
},
name: "GoodsClass",
computed: mapGetters(['userInfo']),
props: {},
data: function() {
return {
title: '禅易云生态',
category: [],
navActive: 0,
search: "",
@ -246,9 +246,7 @@
},
onReady: function() {
const that = this;
that.$refs.skeleton.attachedAction();
that.$refs.skeleton.readyAction();
},
onLoad() {
@ -296,6 +294,11 @@
uni.hideNavigationBarLoading();
})
},
toLifeIndex(){
uni.switchTab({
url: '/pages/life/index'
})
},
tolearnMore() {
this.$yrouter.push("/pages/life/learnMore/index")
},
@ -391,6 +394,11 @@
};
</script>
<style lang="less" scoped>
.see-more{
font-size: 28rpx;
color: #333333;
text-align: center;
}
.productSort {
background: #EEEEEE !important;
position: relative;
@ -737,7 +745,7 @@
padding: 30rpx 30rpx 15rpx 30rpx;
.rec-name {
width: 130rpx;
width: 260rpx;
font-size: 28rpx;
color: #1D1D1D;
margin-left: 16rpx;

182
pages/information/index.vue

@ -1,62 +1,41 @@
<template>
<view class="information-box">
<view class="search-box acea-row row-middle">
<skeleton v-if="showSkeleton" ref="skeleton" loading="chiaroscuro" selector="skeleton" bgcolor="#FFF"></skeleton>
<view class="search-box acea-row row-middle skeleton-rect">
<image src="../../static/images/search-icon.png" mode=""></image>
<input type="text" value="" placeholder="请输入相关关键词" />
<view class="search acea-row row-center-wrapper">搜一下</view>
</view>
<swiper class="vote-box">
<swiper-item v-for="(item,index) in articleList" :key="index">
<swiper class="vote-box skeleton-rect">
<swiper-item v-for="(item,index) in hotList" :key="index" @click="toDetail(item.id)">
<image :src="item.imageInput" mode="aspectFill" class="vote-img"></image>
<view class="news">
<view class="news-title-h line2">{{item.title}}</view>
<view class="news-title-s line1">{{item.title}}</view>
<view class="news-title-h line1">{{item.title}}</view>
<view class="news-title-s line1">{{item.createTime}}</view>
</view>
</swiper-item>
</swiper>
<scroll-view class="scroll-view_N" scroll-x="true">
<view class="rotaion-box" @click="toTodayEvent">
<view class="acea-row rotaion row-center">
<image src="../../static/images/details1.png" mode="aspectFill"></image>
<view class="rotaion-h">今日大事</view>
<view class="rotaion-s">每日热点资讯</view>
</view>
</view>
<view class="rotaion-box" @click="toBusinessInfo">
<scroll-view class="scroll-view_N skeleton-rect" scroll-x="true">
<view class="rotaion-box" @click="toCategoryList(item.id)" v-for="(item,index) in categoryList" :key="index">
<view class="acea-row rotaion row-center">
<image src="../../static/images/details2.png" mode="aspectFill"></image>
<view class="rotaion-h">商业资讯</view>
<view class="rotaion-s">商业资讯抢先知</view>
</view>
</view>
<view class="rotaion-box" @click="toGovernmentPolicy">
<view class="acea-row rotaion row-center">
<image src="../../static/images/details3.png" mode="aspectFill"></image>
<view class="rotaion-h">政府政策</view>
<view class="rotaion-s">了解政府政策</view>
</view>
</view>
<view class="rotaion-box" @click="toLifeInfo">
<view class="acea-row rotaion row-center">
<image src="../../static/images/details4.png" mode="aspectFill"></image>
<view class="rotaion-h">生活资讯</view>
<view class="rotaion-s">有趣好玩</view>
<image :src="item.img" mode="aspectFill"></image>
<view class="rotaion-h">{{item.name}}</view>
<view class="rotaion-s">{{item.description}}</view>
</view>
</view>
</scroll-view>
<!-- 最新资讯 -->
<view class="newInfo-box">
<view class="newInfo-box skeleton-rect" v-if="newList.length > 0">
<image src="../../static/images/newInfo.png" mode="" class="newInfo-title-img"></image>
<view class="newInfo">
<view class="modular acea-row row-between" v-for="(item,index) in articleList" :key="index"
<view class="modular acea-row row-between" v-for="(item,index) in newList" :key="index"
@click="toDetail(item.id)">
<view class="acea-row title">
<view class="modular-h line2">{{item.title}}</view>
<view class="title-l acea-row row-between">
<view>{{item.author}}</view>
<view>{{item.createTime.split(' ')[0]}}</view>
<view class="acea-row row-middle">203
<view class="acea-row row-middle">{{item.visit}}
<image src="../../static/images/eye.png" mode="aspectFill"></image>
</view>
</view>
@ -66,10 +45,10 @@
</view>
</view>
<!-- 热点精选 -->
<view class="hotspot-box">
<view class="hotspot-box skeleton-rect">
<image src="../../static/images/user/hotspot.png" mode="" class="title-h-img"></image>
<scroll-view class="scroll-view_H acea-row" scroll-x="true">
<view class="slide-box" v-for="(item,index) in articleList" :key="index">
<view class="slide-box" v-for="(item,index) in hotList" :key="index" @click="toDetail(item.id)">
<image :src="item.imageInput" mode="aspectFill"></image>
<view class="hotspot-con">
<view class="hotspot-icon">热点</view>
@ -79,16 +58,17 @@
</scroll-view>
</view>
<!-- 值得关注 -->
<view class="follow-box">
<view class="follow-box skeleton-rect">
<image src="../../static/images/follow-title.png" mode="" class="title-h-img"></image>
<view class="follow-con" v-for="(item,index) in articleList" :key="index">
<view class="follow-con" v-for="(item,index) in concernList" :key="index" @click="toDetail(item.id)">
<view class="follow-top acea-row row-between">
<view class="acea-row follow-title">
<view class="follow-h line2">{{item.title}}</view>
<view class="follow-title-l acea-row row-between">
<view>{{item.author}}</view>
<view>{{item.createTime.split(' ')[0]}}</view>
<view class="acea-row row-middle">203
<view>{{item.createTime}}</view>
<view class="acea-row row-middle">
<text>{{item.visit}}</text>
<image src="../../static/images/eye.png" mode="aspectFill"></image>
</view>
</view>
@ -101,39 +81,81 @@
<view class="title-s line1">{{item.author}}</view>
<view class="title-con line1">{{item.title}}</view>
</view>
<view class="follow-btn">关注+</view>
<!-- <view class="follow-btn">关注+</view> -->
</view>
</view>
<!-- <LoadStatus :loadStatus="loadstatus"></LoadStatus> -->
</view>
</view>
</template>
<script>
import {
getArticle
} from "@/api/home";
import { getArticle } from "@/api/home";
import { articleIndex } from "@/api/article"
import LoadStatus from "@/components/LoadStatus"
import skeleton from '@/components/quick-skeleton/quick-skeleton'
export default {
components:{
LoadStatus,
skeleton
},
data() {
return {
categoryList: [],
newList: [],
hotList: [],
concernList: [],
articleList: [],
page: 0,
size: 10,
loadstatus: '上拉加载更多...',
showSkeleton: true
}
},
mounted() {
this.getArticleList()
// this.getArticleList()
this.getArticleIndex()
},
onReachBottom() {
this.page = this.page + 1
this.getArticleList()
// this.getArticleList()
},
computed:{
},
onPullDownRefresh() {
this.getArticleIndex()
},
onReady: function() {
const that = this;
that.$refs.skeleton.attachedAction();
that.$refs.skeleton.readyAction();
},
methods: {
getArticleIndex(){
uni.showLoading({
title: '正在加载中...',
})
articleIndex().then((res)=>{
this.categoryList = res.data.categoryList
this.concernList = res.data.concernList
this.hotList = res.data.hotList
this.newList = res.data.newList
uni.hideLoading()
uni.stopPullDownRefresh()
this.showSkeleton = false
})
},
getArticleList() {
this.loadstatus = '正在加载中...'
getArticle({
page: this.page,
size: this.size,
isHot: 0
}).then((res) => {
if(res.data.content.length < this.size){
this.loadstatus = '没有更多了...'
}
this.articleList = this.articleList.concat(res.data.content)
})
},
@ -145,31 +167,11 @@
}
})
},
//
toTodayEvent() {
uni.navigateTo({
url: '/pages/life/articleList/index?active=1'
});
},
//
toBusinessInfo() {
uni.navigateTo({
url: '/pages/life/articleList/index?active=2'
});
},
//
toGovernmentPolicy() {
toCategoryList(id){
uni.navigateTo({
url: '/pages/life/articleList/index?active=3'
url: '/pages/life/articleList/index?active=' + id
});
},
//
toLifeInfo() {
uni.navigateTo({
url: '/pages/life/articleList/index?active=4'
});
},
}
}
</script>
@ -187,7 +189,7 @@
height: 68rpx;
border: 2rpx solid #FF5100;
border-radius: 8rpx;
margin: 52rpx auto;
margin: 24rpx auto 52rpx;
font-size: 28rpx;
position: relative;
}
@ -212,7 +214,6 @@
.vote-box {
width: 670rpx;
height: 358rpx;
/* background: #FFFFFF; */
box-shadow: 0px 6rpx 12rpx rgba(0, 0, 0, 0.16);
border-radius: 16rpx;
margin: 0 auto;
@ -227,26 +228,24 @@
}
.news {
width: 100%;
height: 358rpx;
border-radius: 16rpx 16rpx 0 0;
color: #FFF;
width: 590rpx;
height: 94rpx;
background: rgba(0, 0, 0, 0.2);
border-radius: 14rpx;
position: absolute;
padding: 0 40rpx;
bottom: 6rpx;
left: 50%;
margin-left: -295rpx;
color: #fff;
padding: 14rpx;
}
.news-title-h {
width: 590rpx;
font-size: 28rpx;
position: absolute;
bottom: 65rpx;
}
.news-title-s {
width: 590rpx;
font-size: 20rpx;
position: absolute;
bottom: 25rpx;
}
/* .vote {
@ -317,6 +316,7 @@
.newInfo {
width: 100%;
height: 528rpx;
overflow-y: scroll;
border-top: 2rpx solid #EFEFEF;
}
@ -393,11 +393,14 @@
}
.hotspot-con {
width: 588rpx;
height: 130rpx;
bottom: 30rpx;
left: 24rpx;
width: 670rpx;
height: 94rpx;
background: rgba(0, 0, 0, 0.2);
border-radius: 0px 0px 8rpx 8rpx;
padding: 8rpx 32rpx;
color: #fff;
position: absolute;
bottom: 0;
}
.hotspot-icon {
@ -405,6 +408,8 @@
height: 32rpx;
background: #FE3737;
border-radius: 12rpx 2rpx 12rpx 0;
position: absolute;
top:-46rpx;
font-size: 22rpx;
color: #fff;
text-align: center;
@ -422,7 +427,6 @@
/* 值得关注 */
.follow-box {
width: 100%;
height: 940rpx;
position: relative;
overflow: hidden;
}
@ -464,7 +468,7 @@
}
.follow-title-l {
width: 290rpx;
width: 100%;
height: 28rpx;
font-size: 20rpx;
color: #707070;
@ -490,7 +494,7 @@
}
.follow-title-b {
width: 230rpx;
width: 300rpx;
height: 52rpx;
.title-s {
height: 25rpx;

64
pages/life/articleList/index.vue

@ -10,18 +10,15 @@
<view class="search-btn">搜一下</view>
</view>
<view class="resource-tabs acea-row row-between-wrapper">
<view :class="'tab ' + (active == 1 ? 'tab-a' : '')" data-i="1" @tap="tabClick">今日大事</view>
<view :class="'tab ' + (active == 2 ? 'tab-a' : '')" data-i="2" @tap="tabClick">商业资讯</view>
<view :class="'tab ' + (active == 3 ? 'tab-a' : '')" data-i="3" @tap="tabClick">政府政策</view>
<view :class="'tab ' + (active == 4 ? 'tab-a' : '')" data-i="4" @tap="tabClick">生活资讯</view>
<view :class="'tab ' + (active == item.id ? 'tab-a' : '')" @tap="tabClick(item.id)" v-for="item in categortList" :key="item.id">{{item.name}}</view>
</view>
</view>
<view class="content-box">
<view class="list-box" v-if="active == 1">
<view class="list-box">
<view class="list-item acea-row row-between row-middle" v-for="(item,index) in articleList" :key="index"
@click="toDetail(item.id)">
<view class="item-l">
<view class="title-box acea-row">
<view class="title-box acea-row row-middle">
<image src="../../../static/images/hot.png" v-if="item.isHot"></image>
<view class="title line2">{{item.title}}</view>
</view>
@ -29,7 +26,7 @@
<view class="auth">{{item.author}}</view>
<view class="auth time">{{item.createTime.split(' ')[0]}}</view>
<view class="see acea-row row-middle">
<text>200</text>
<text>{{item.visit}}</text>
<image src="../../../static/images/eye.png"></image>
</view>
</view>
@ -39,21 +36,13 @@
</view>
</view>
</view>
<view class="list-box" v-if="active == 2">
<view>2</view>
</view>
<view class="list-box" v-if="active == 3">
<view>3</view>
</view>
<view class="list-box" v-if="active == 4">
<view>4</view>
</view>
</view>
<LoadStatus :loadStatus="loadStatus"></LoadStatus>
</view>
</template>
<script>
import { articleCategory, getArticleList } from "@/api/article";
import { getArticle } from "@/api/home";
import LoadStatus from '@/components/LoadStatus.vue'
export default{
@ -62,39 +51,52 @@
},
data(){
return{
categortList: [],
articleList: [],
page: 0,
size: 10,
isLoading: true,
active: null,
loadStatus: '没有更多了...'
}
},
onLoad(option) {
this.active=option.active;
},
mounted() {
this.getArticleCategort().then(()=>{
this.active= this.$yroute.query.active;
this.getArticleList()
})
},
onReachBottom() {
this.page = this.page + 1
this.getArticleList()
},
methods: {
getArticleCategort(){
return new Promise((reslove)=>{
articleCategory().then((res)=>{
this.categortList = res.data
this.active = this.categortList[0].id
reslove()
})
})
},
getArticleList() {
if (!this.isLoading) return
if(!this.isLoading) return
uni.showLoading({
title: '加载中...'
})
this.loadStatus = '加载中...'
getArticle({
getArticleList({
page: this.page,
size: this.size,
isHot: 0
cid: this.active
}).then((res) => {
if (res.data.content.length < this.size) {
this.loadStatus = '没有更多了...'
if(res.data.content.length < this.size){
this.isLoading = false
} else {
this.loadStatus = '没有更多了...'
} else{
this.isLoading = true
this.loadStatus = '上拉加载更多...'
}
@ -110,10 +112,11 @@
}
})
},
tabClick(e) {
this.setData({
active: e.currentTarget.dataset.i,
})
tabClick(id) {
this.active = id
this.isLoading = true
this.articleList = []
this.getArticleList()
},
}
}
@ -230,16 +233,15 @@
.title-box {
font-size: 32rpx;
color: #4A4A4A;
margin-bottom: 25rpx;
image {
width: 19rpx;
width: 20rpx;
height: 22rpx;
margin-right: 20rpx;
margin-right: 10rpx;
}
.title {
margin-top: -10rpx;
margin-bottom: 25rpx;
}
}

3
pages/life/index.vue

@ -145,7 +145,7 @@ export default {
// },
mounted: function () {
this.getProducts();
this.getActivity();
// this.getActivity();
},
onReachBottom() {
if (this.isLoad) {
@ -230,6 +230,7 @@ export default {
this.active = i;
},
getProducts() {
// console.log(getProducts,'//////getProducts')
this.loadStatus = "loading";
getProducts({ page: this.page, limit: this.limit }).then((res) => {
// console.log(res)

162
pages/login/agreementPage.vue

@ -0,0 +1,162 @@
<template>
<view class="argeement-page">
用户协议<br/>
本隐私政策介绍本公司的隐私数据相关政策和惯例这将涵盖我们如何收集使用处理存储和/或披露那些通过本公司的移动App收集的关于您的个人信息请你仔细阅读我们的隐私政策<br/>
本公司如何收集您的个人信息<br/>
个人信息是可用于唯一地识别或联系某人的数据<br/>
当您使用本公司的系统注册用户过程中我们将会收集您的个人信息电子邮件地址电话号码为了保护个人隐私您不应提供除本公司特别要求之外的任何其它信息<br/>
本公司如何使用您的个人信息<br/>
1通过您的个人信息向您发送本公司移动App的服务信息<br/>
2通过您的个人信息实现密码找回功能<br/>
3除本公司发生重组合并或出售可将我们收集的一切个人信息转让给相关第三方外本公司不会向任何无关第三方提供出售出租分享或交易您的个人信息除非事先得到您的许可或该第三方和本公司单独或共同为您提供服务且在该服务结束后其将被禁止访问包括其以前能够访问的所有这些信息<br/>
个人信息安全<br/>
保证您的个人数据的安全对我们来说至关重要当您在本公司的移动App中注册输入个人数据时我们会利用安全套接字层技术 (SSL) 对这些信息进行加密<br/>
在数据传输和数据保管两个阶段里我们会通过广为接受的行业标准如防火墙加密和数据隐私法律要求来保护您向我们提交的信息<br/>
然而没有任何一种互联网传输或电子存储方法是100%安全的因此尽管我们通过商业上可接受的方式来保护您的个人信息但仍无法保证信息的绝对安全<br/>
本公司会将个人信息保存多久<br/>
一般来说本公司仅保留您的个人信息至履行收集目的所需的期限同时将遵守适用法律规定的数据保留期限<br/>
法律免责声明<br/>
在法律要求的情况下以及本公司认为必须披露与您有关的信息来保护本公司的法定权益和/或遵守司法程序法院指令或适用于本公司的系统的法律程序时我们有权透露您的个人信息<br/>
如果本公司确定为了执行本公司的条款和条件或保护我们的经营披露是合理必须的则我们可披露与您有关的信息<br/>
本隐私政策的更改<br/>
如果决定更改隐私政策我们会在本政策中本公司网站中以及我们认为适当的位置发布这些更改以便您了解我们如何收集使用您的个人信息哪些人可以访问这些信息以及在什么情况下我们会透露这些信息<br/>
本公司保留随时修改本政策的权利因此请经常查看如对本政策作出重大更改本公司会通过网站通知的形式告知<br/>
用户协议<br/>
特别提示<br/>
云生态在此特别提醒您用户在注册成为用户之前请认真阅读本用户协议以下简称协议确保您充分理解本协议中各条款请您审慎阅读并选择接受或不接受本协议除非您接受本协议所有条款否则您无权注册登录或使用本协议所涉服务您的注册登录使用等行为将视为对本协议的接受并同意接受本协议各项条款的约束<br/>
本协议约定云生态与用户之间关于云生态软件服务以下简称服务的权利义务用户是指注册登录使用本服务的个人本协议可由云生态随时更新更新后的协议条款一旦公布即代替原来的协议条款恕不再另行通知用户可在本网站查阅最新版协议条款在云生态修改协议条款后如果用户不接受修改后的条款请立即停止使用云生态提供的服务用户继续使用云生态提供的服务将被视为接受修改后的协议<br/>
用户个人信息保护<br/>
1用户在注册帐号或使用本服务的过程中可能需要填写或提交一些必要的个人信息如法律法规规章规范性文件以下称法律法规规定的需要填写的身份信息如用户提交的信息不完整或不符合法律法规的规定则用户可能无法使用本服务或在使用本服务的过程中受到限制<br/>
2用户个人信息包括<br/>
1用户自行提供的用户个人信息如注册时填写的手机号码电子邮件等个人信息使用服务时提供的共享信息等<br/>
2其他方分享的用户个人信息<br/>
3云生态为提供服务而合法收集的用户必要个人信息如使用服务时系统自动采集的设备或软件信息浏览历史信息通讯时间信息等技术信息用户开启定位功能并使用服务时的地理位置信息等
其中个人隐私信息是指涉及用户个人身份或个人隐私的信息比如用户真实姓名身份证号手机号码手机设备识别码IP地址用户聊天记录非个人隐私信息是指用户对本服务的操作状态以及使用习惯等明确且客观反映在云生态服务器端的基本记录信息个人隐私信息范围外的其它普通信息以及用户同意公开的上述隐私信息云生态保证在取得用户书面同意的情况下收集使用或公开用户的个人隐私信息用户同意云生态无需获得用户的另行确认与授权即可收集使用或公开用户的非个人隐私信息<br/>
3尊重用户个人信息的私有性是云生态的一贯制度云生态将采取技术措施和其他必要措施确保用户个人信息安全防止在本服务中收集的用户个人信息泄露毁损或丢失在发生前述情形或者云生态发现存在发生前述情形的可能时云生态将及时采取补救措施并告知用户用户如发现存在前述情形亦需立即与云生态联系<br/>
4云生态未经用户同意不向任何第三方公开 透露用户个人隐私信息但以下特定情形除外<br/>
(1) 云生态根据法律法规规定或有权机关的指示提供用户的个人隐私信息<br/>
(2) 由于用户将其用户密码告知他人或与他人共享注册帐户与密码由此导致的任何个人信息的泄漏或其他非因云生态原因导致的个人隐私信息的泄露<br/>
(3) 用户自行向第三方公开其个人隐私信息<br/>
(4) 用户与云生态及合作单位之间就用户个人隐私信息的使用公开达成约定云生态因此向合作单位公开用户个人隐私信息<br/>
(5) 任何由于黑客攻击电脑病毒侵入及其他不可抗力事件导致用户个人隐私信息的泄露<br/>
(6) 用户个人信息已经经过处理无法识别特定个人且不能复原<br/>
5用户同意云生态可在以下事项中使用用户的个人隐私信息<br/>
(1) 云生态向用户及时发送重要通知如软件更新本协议条款的变更<br/>
(2) 云生态内部进行审计数据分析和研究等以改进云生态的产品服务和与用户之间的沟通<br/>
(3) 依本协议约定云生态管理审查用户信息及进行处理措施<br/>
(4) 适用法律法规规定的其他事项<br/>
除上述事项外如未取得用户事先同意云生态不会将用户个人隐私信息使用于任何其他用途<br/>
内容规范<br/>
1本条所述内容是指用户使用本服务过程中所制作上载复制发布传播的任何内容包括但不限于帐号头像名称用户说明等注册信息及认证资料或文字语音图片视频图文等发送回复或自动回复消息和相关链接页面以及其他使用帐号或本服务所产生的内容<br/>
2用户不得利用云生态帐号或本服务制作上载复制发布传播如下法律法规和政策禁止的内容<br/>
(1) 反对宪法所确定的基本原则的<br/>
(2) 危害国家安全泄露国家秘密颠覆国家政权破坏国家统一的<br/>
(3) 损害国家荣誉和利益的<br/>
(4) 煽动民族仇恨民族歧视破坏民族团结的<br/>
(5) 破坏国家宗教政策宣扬邪教和封建迷信的<br/>
(6) 散布谣言扰乱社会秩序破坏社会稳定的<br/>
(7) 散布淫秽色情赌博暴力凶杀恐怖或者教唆犯罪的<br/>
(8) 侮辱或者诽谤他人侵害他人合法权益的<br/>
(9) 不遵守法律法规底线社会主义制度底线国家利益底线公民合法权益底线社会公共秩序底线道德风尚底线和信息真实性底线的七条底线要求的<br/>
(10) 含有法律行政法规禁止的其他内容的信息<br/>
3用户不得利用云生态帐号或本服务制作上载复制发布传播如下干扰云生态正常运营以及侵犯其他用户或第三方合法权益的内容<br/>
(1) 含有任何性或性暗示的<br/>
(2) 含有辱骂恐吓威胁内容的<br/>
(3) 含有骚扰垃圾广告恶意信息诱骗信息的<br/>
(4) 涉及他人隐私个人信息或资料的<br/>
(5) 侵害他人名誉权肖像权知识产权商业秘密等合法权利的<br/>
(6) 含有其他干扰本服务正常运营和侵犯其他用户或第三方合法权益内容的信息<br/>
使用规则<br/>
1用户在本服务中或通过本服务所传送发布的任何内容并不反映或代表也不得被视为反映或代表云生态的观点立场或政策云生态对此不承担任何责任<br/>
2用户不得利用云生态帐号或本服务进行如下行为<br/>
(1) 提交发布虚假信息或盗用他人头像或资料冒充利用他人名义的<br/>
(2) 强制诱导其他用户关注点击链接页面或分享信息的<br/>
(3) 虚构事实隐瞒真相以误导欺骗他人的<br/>
(4) 利用技术手段批量建立虚假帐号的<br/>
(5) 利用云生态帐号或本服务从事任何违法犯罪活动的<br/>
(6) 制作发布与以上行为相关的方法工具或对此类方法工具进行运营或传播无论这些行为是否为商业目的<br/>
(7) 其他违反法律法规规定侵犯其他用户合法权益干扰云生态正常运营或云生态未明示授权的行为<br/>
3用户须对利用云生态帐号或本服务传送信息的真实性合法性无害性准确性有效性等全权负责与用户所传播的信息相关的任何法律责任由用户自行承担与云生态无关如因此给云生态或第三方造成损害的用户应当依法予以赔偿<br/>
4云生态提供的服务中可能包括广告用户同意在使用过程中显示云生态和第三方供应商合作伙伴提供的广告除法律法规明确规定外用户应自行对依该广告信息进行的交易负责对用户因依该广告信息进行的交易或前述广告商提供的内容而遭受的损失或损害云生态不承担任何责任<br/>
5除非云生态书面许可用户不得从事下列任一行为<br/>
(1) 删除软件及其副本上关于著作权的信息<br/>
(2) 对软件进行反向工程反向汇编反向编译或者以其他方式尝试发现软件的源代码<br/>
(3) 对云生态拥有知识产权的内容进行使用出租出借复制修改链接转载汇编发表出版建立镜像站点等<br/>
(4) 对软件或者软件运行过程中释放到任何终端内存中的数据软件运行过程中客户端与服务器端的交互数据以及软件运行所必需的系统数据进行复制修改增加删除挂接运行或创作任何衍生作品形式包括但不限于使用插件外挂或非经云生态授权的第三方工具/服务接入软件和相关系统<br/>
(5) 通过修改或伪造软件运行中的指令数据增加删减变动软件的功能或运行效果或者将用于上述用途的软件方法进行运营或向公众传播无论这些行为是否为商业目的<br/>
(6) 通过非云生态开发授权的第三方软件插件外挂系统登录或使用云生态软件及服务或制作发布传播非云生态开发授权的第三方软件插件外挂系统<br/>
账户管理<br/>
1 云生态帐号的所有权归云生态所有用户完成申请注册手续后获得云生态帐号的使用权该使用权仅属于初始申请注册人禁止赠与借用租用转让或售卖云生态因经营需要有权回收用户的云生态帐号<br/>
2用户可以通过<br/>
1查看与编辑个人资料页<br/>
2设置页面里的账号与安全页面来查询更改删除注销云生态帐户上的个人资料注册信息及传送内容等但需注意删除有关信息的同时也会删除用户储存在系统中的文字和图片用户需承担该风险<br/>
3用户有责任妥善保管注册帐号信息及帐号密码的安全因用户保管不善可能导致遭受盗号或密码失窃责任由用户自行承担用户需要对注册帐号以及密码下的行为承担法律责任用户同意在任何情况下不使用其他用户的帐号或密码在用户怀疑他人使用其帐号或密码时用户同意立即通知云生态<br/>
4用户应遵守本协议的各项条款正确适当地使用本服务如因用户违反本协议中的任何条款云生态在通知用户后有权依据协议中断或终止对违约用户云生态帐号提供服务同时云生态保留在任何时候收回云生态帐号用户名的权利<br/>
5如用户注册云生态帐号后一年不登录通知用户后云生态可以收回该帐号以免造成资源浪费由此造成的不利后果由用户自行承担<br/>
6用户可以通过设置页面里的账号与安全页面来进行账号注销服务用户确认注销账号是不可恢复的操作用户应自行备份与云生态账号相关的信息和数据用户确认操作之前与云生态账号相关的所有服务均已进行妥善处理用户确认并同意注销账号后并不代表本云生态账号注销前的账号行为和相关责任得到豁免或减轻如在注销期间用户的账号被他人投诉被国家机关调查或者正处于诉讼仲裁程序中云生态有限自行终止用户的账号注销并无需另行得到用户的同意<br/>
数据储存<br/>
1云生态不对用户在本服务中相关数据的删除或储存失败负责<br/>
2云生态可以根据实际情况自行决定用户在本服务中数据的最长储存期限并在服务器上为其分配数据最大存储空间等用户可根据自己的需要自行备份本服务中的相关数据<br/>
3如用户停止使用本服务或本服务终止云生态可以从服务器上永久地删除用户的数据本服务停止终止后云生态没有义务向用户返还任何数据<br/>
风险承担<br/>
1用户理解并同意云生态仅为用户提供信息分享传送及获取的平台用户必须为自己注册帐号下的一切行为负责包括用户所传送的任何内容以及由此产生的任何后果用户应对云生态及本服务中的内容自行加以判断并承担因使用内容而引起的所有风险包括因对内容的正确性完整性或实用性的依赖而产生的风险云生态无法且不会对因用户行为而导致的任何损失或损害承担责任
2用户理解并同意因业务发展需要云生态保留单方面对本服务的全部或部分服务内容变更暂停终止或撤销的权利用户需承担此风险<br/>
知识产权声明<br/>
1除本服务中涉及广告的知识产权由相应广告商享有外云生态在本服务中提供的内容包括但不限于网页文字图片音频视频图表等的知识产权均归云生态所有但用户在使用本服务前对自己发布的内容已合法取得知识产权的除外<br/>
2除另有特别声明外云生态提供本服务时所依托软件的著作权专利权及其他知识产权均归云生态所有<br/>
3云生态在本服务中所涉及的图形文字或其组成以及其他云生态标志及产品服务名称以下统称云生态标识其著作权或商标权归云生态所有未经云生态事先书面同意用户不得将云生态标识以任何方式展示或使用或作其他处理也不得向他人表明用户有权展示使用或其他有权处理云生态标识的行为<br/>
4上述及其他任何云生态或相关广告商依法拥有的知识产权均受到法律保护未经云生态或相关广告商书面许可用户不得以任何形式进行使用或创造相关衍生作品<br/>
5用户在使用云生态服务时发表上传的文字图片视频音频软件以及表演等信息此部分信息的知识产权归用户责任由用户承担但用户的发表上传行为视为对云生态的授权用户理解并同意授予云生态及其关联公司全球范围内完全免费不可撤销独家永久可转授权和可再许可的权利包括但不限于复制权发行权出租权展览权表演权放映权广播权信息网络传播权摄制权改编权翻译权汇编权以及著作权法规定的由著作权人享有的其他著作财产权利及邻接权利云生态可自行选择是否使用以及使用方式包括但不限于将前述信息在云生态旗下的服务平台上使用与传播将上述信息再次编辑后使用以及由云生态授权给合作方使用编辑与传播等<br/>
十一法律责任<br/>
1如果云生态发现或收到他人举报或投诉用户违反本协议约定的云生态有权不经通知随时对相关内容包括但不限于用户资料聊天记录进行审查删除并视情节轻重对违规帐号处以包括但不限于警告帐号封禁 设备封禁 功能封禁 的处罚且通知用户处理结果<br/>
2因违反用户协议被封禁的用户在封禁期限届满后自助解封其中被实施功能封禁的用户会在封禁期届满后自动恢复被封禁功能被封禁用户可向云生态网站相关页面提交申诉云生态将对申诉进行审查并自行合理判断决定是否变更处罚措施<br/>
3用户理解并同意云生态有权依合理判断对违反有关法律法规或本协议规定的行为进行处罚对违法违规的任何用户采取适当的法律行动并依据法律法规保存有关信息向有关部门报告等用户应承担由此而产生的一切法律责任<br/>
4用户理解并同意因用户违反本协议约定导致或产生的任何第三方主张的任何索赔要求或损失包括合理的律师费用户应当赔偿云生态与合作公司关联公司并使之免受损害<br/>
十二不可抗力及其他免责事由<br/>
1用户理解并确认在使用本服务的过程中可能会遇到不可抗力等风险因素使本服务发生中断不可抗力是指不能预见不能克服并不能避免且对一方或双方造成重大影响的客观事件包括但不限于自然灾害如洪水地震瘟疫流行和风暴等以及社会事件如战争动乱政府行为等出现上述情况时云生态将努力在第一时间与相关单位配合及时进行修复但是由此给用户或第三方造成的损失云生态及合作单位在法律允许的范围内免责<br/>
2本服务同大多数互联网服务一样受包括但不限于用户原因网络服务质量社会环境等因素的差异影响可能受到各种安全问题的侵扰如他人利用用户的资料造成现实生活中的骚扰用户下载安装的其它软件或访问的其他网站中含有特洛伊木马等病毒威胁到用户的计算机信息和数据的安全继而影响本服务的正常使用等等用户应加强信息安全及使用者资料的保护意识要注意加强密码保护以免遭致损失和骚扰<br/>
3用户理解并确认本服务存在因不可抗力计算机病毒或黑客攻击系统不稳定用户所在位置用户关机以及其他任何技术互联网络通信线路原因等造成的服务中断或不能满足用户要求的风险因此导致的用户或第三方任何损失云生态不承担任何责任<br/>
4用户理解并确认在使用本服务过程中存在来自任何他人的包括误导性的欺骗性的威胁性的诽谤性的令人反感的或非法的信息或侵犯他人权利的匿名或冒名的信息以及伴随该等信息的行为因此导致的用户或第三方的任何损失云生态不承担任何责任<br/>
5用户理解并确认云生态需要定期或不定期地对云生态平台或相关的设备进行检修或者维护如因此类情况而造成服务在合理时间内的中断云生态无需为此承担任何责任但云生态应事先进行通告<br/>
6云生态重视对未成年人的保护云生态将依赖用户提供的个人信息判断用户是否为未成年人任何18岁以下的未成年人均不得注册帐号或使用本服务<br/>
7因云生态提供的服务系基于地理位置提供的移动社交服务用户确认其地理位置信息为非个人隐私信息用户成功注册云生态帐号视为确认授权云生态提取公开及使用用户的地理位置信息<br/>用户地理位置信息将作为用户公开资料之一由云生态向其他用户公开以便云生态向用户提供基于地理位置的移动社交服务如用户需要终止向其他用户公开其地理位置信息可随时自行设置为隐身状态<br/>
8为了改善云生态的技术和服务向用户提供更好的服务体验云生态或可会自行收集使用或向第三方提供用户的非个人隐私信息<br/>
9云生态保证在合法正当与必要的原则下收集使用或者公开用户个人信息且不会收集与提供的服务无关的用户个人信息<br/>
10云生态十分注重保护用户的个人隐私并制定了云生态隐私权政策用户亦可以通过设置页面里的帮助来进行具体查看用户确认并同意使用云生态提供的服务将被视为接受云生态隐私权政策<br/>
2如发生下列任何一种情形云生态有权变更中断或终止向用户提供的免费服务或收费服务而无需对用户或任何第三方承担任何责任<br/>
(1) 根据法律规定用户应提交真实信息而用户提供的个人资料不真实或与注册时信息不一致又未能提供合理证明<br/>
(2) 用户违反相关法律法规或本协议的约定<br/>
(3) 按照法律规定或有权机关的要求<br/>
(4) 出于安全的原因或其他必要的情形<br/>
十四活动服务说明与免责条款<br/>
1云生态活动功能板块是以地理位置为基础发布用户周边文化活动信息的活动信息共享平台下称本平台<br/><br/>
2本平台发布之全部文化活动信息,包括但不限于活动地理位置信息均直接或者间接来自于文化活动主办方<br/>
3本平台发布文化活动信息意在宣传文化活动丰富用户文化生活本平台用户于本平台活动功能板块发布的留言评论等信息均系用户自行发布本平台不对上述信息的真实性准确性或及时性完整性负责<br/>
十五其他<br/>
1云生态郑重提醒用户注意本协议中免除云生态责任和限制用户权利的条款请用户仔细阅读自主考虑风险<br/>
2本协议的效力解释及纠纷的解决适用于中华人民共和国法律若用户和云生态之间发生任何纠纷或争议首先应友好协商解决协商不成的用户同意将纠纷或争议提交云生态住所地有管辖权的人民法院管辖<br/>
3本协议的任何条款无论因何种原因无效或不具可执行性其余条款仍有效对双方具有约束力<br/>
4由于互联网高速发展您与云生态签署的本协议列明的条款可能并不能完整罗列并覆盖您云生态所有权利与义务现有的约定也不能保证完全符合未来发展的需求因此云生态隐私权政策云生态平台行为规范等均为本协议的补充协议与本协议不可分割且具有同等法律效力如您使用云生态平台服务视为您同意上述补充协议
</view>
</template>
<script>
export default{
data(){
return {
}
}
}
</script>
<style scoped>
.argeement-page{
padding: 0 20rpx 90rpx;
font-size: 28rpx;
color: rgb(51, 51, 51);
}
</style>

12
pages/release/companyAuth/index.css

@ -106,3 +106,15 @@
height: 24rpx;
margin-left: 10rpx;
}
.argeement-box{
font-size: 24rpx;
color: #666;
text-align: center;
display: flex;
align-items: center;
justify-content: center;
}
.argeement-box view{
width: 60%;
}

32
pages/release/companyAuth/index.vue

@ -145,6 +145,16 @@
</view> -->
</view>
<view class="submit-btn" @tap="submit">保存并提交</view>
<view class="argeement-box">
<checkbox-group @change="argeementClick">
<checkbox value="1" style="transform:scale(0.7);position: relative; top: 3rpx;" :checked="isCheck" />
</checkbox-group>
<view class="acea-row">
我已阅读并同意
<navigator url="/pages/login/agreementPage" open-type="navigate" style="color: rgb(255, 50, 50);">用户协议及隐私政策</navigator>
</view>
</view>
</view>
</template>
@ -333,10 +343,25 @@
// urls: [url],
// })
},
argeementClick(e){
console.log(e)
let state = e.detail.value
if(state.length > 0) {
this.isCheck = true
} else{
this.isCheck = false
}
},
submit() {
let form = this.form;
console.log(form);
if(!this.isCheck){
uni.showToast({
title: '请阅读并勾选用户隐私协议',
icon: 'none'
});
return;
}
if (form.isLegalPerson == 0 && form.authorizationPath == '') {
uni.showToast({
@ -455,7 +480,10 @@
</script>
<style>
/* pages/release/companyAuth/index.wxss */
@import "./index.css";
.auth-page{
padding-bottom: 90rpx;
}
.is-legal-box {
width: 100%;
padding: 30rpx 40rpx;

385
pages/release/index.vue

@ -1,18 +1,42 @@
<template>
<!--pages/release/index.wxml-->
<view class="release-page">
<!--pages/release/index.wxml-->
<view class="release-page">
<view class="guid-box acea-row">
<view class="guid-title">发布指南</view>
<image src="../../static/images/handbook.png" class="handbook-img"></image>
<view class="title-s">详细阅读有助于让你快速了解云生态发布规则更准确地发布内容</view>
<image src="../../static/images/arror-right.png" class="arror-r"></image>
</view>
<view class="auth-btn-box acea-row row-column row-middle">
<view class="auth-btn" @tap="toCompanyAuth" v-if="authStatus == 0 || authStatus == 3">企业认证<image
src="/static/images/back.png"></image>
<view class="auth-btn acea-row row-middle" @tap="toPersonlAuth">
<view><image src="/static/images/user/person.png" class="auth-headimg person-img"></image></view>
<view>
<view class="auth-title">个人认证</view>
<view class="auth-title-h">个人认证后可发布资源项目及需求</view>
</view>
<image src="/static/images/home/arrow-r.png" class="tojump"></image>
</view>
<view class="auth-btn acea-row row-middle" @tap="toCompanyAuth">
<view><image src="/static/images/user/business.png" class="auth-headimg business-img"></image></view>
<view>
<view class="auth-title">企业认证</view>
<view class="auth-title-h">企业认证后可发布资源项目及需求展示企业相关服务</view>
</view>
<image src="/static/images/home/arrow-r.png" class="tojump"></image>
</view>
<view class="auth-btn bgG" @tap="toPersonlAuth" v-if="authStatus == 0 || authStatus == 3">个人认证<image
src="/static/images/back.png"></image>
<view class="auth-btn acea-row row-middle" @tap="toInvestorAuth">
<view><image src="/static/images/user/investor.png" class="auth-headimg investor-img"></image></view>
<view>
<view class="auth-title">投资方认证</view>
<view class="auth-title-h">投资方认证后可查看项目方发布项目详情</view>
</view>
<image src="/static/images/home/arrow-r.png" class="tojump"></image>
</view>
</view>
<view :class="'posi ' + (authStatus == 1 || authStatus == 2 ? 'top30' : '')">
<view class="tips-box">
<view class="tips acea-row-nowrap row-middle" v-if="authStatus == 0 || authStatus == 3">
<!-- <view class="icon">!</view> -->
<!-- <view class="tips-box">
<view class="tips acea-row-nowrap row-middle">
<view class="icon">!</view>
<view>完成企业认证后可以发布资源及需求个人认证后只可发布需求</view>
</view>
<view class="tips acea-row row-middle" v-if="authStatus == 0">
@ -32,30 +56,40 @@
<view>{{authType == 1 ? '企业信息未审核通过, 请重新提交审核信息!' : '个人信息未审核通过, 请重新提交审核信息!'}}</view>
<view>未通过理由{{reason}}</view>
</view>
</view> -->
<view class="btn-box ">
<view :class="'btn ' + (authStatus == 2 && authType == 1 ? '' : 'default' )" @tap="toResources" class="acea-row row-middle btn-res">
<image src="/static/images/auth-icon1.png"></image>
<view>
<view class="tip">发布资源</view>
<view class="tip-s">我要发布我的资源展示在供应广场</view>
</view>
</view>
<view class="btn-box acea-row row-between">
<view :class="'btn ' + (authStatus == 2 && authType == 1 ? 'auth' : '' )" @tap="toResources">
<view class="tip">我能提供...</view>
<image :class="authStatus == 2 && authType == 1 ? '' : 'default'" src="/static/images/yrz1.png">
</image>
<view :class="'btn ' + (authStatus == 2 ? '' : 'default' )" @tap="toNeeds" class="acea-row row-middle btn-need">
<image src="/static/images/auth-icon2.png"></image>
<view>
<view class="tip">发布需求</view>
<view class="tip-s">我要发布我的资源展示在供应广场</view>
</view>
<view :class="'btn ' + (authStatus == 2 ? 'auth' : '' )" @tap="toNeeds">
<view class="tip">我有需求...</view>
<image :class="authStatus == 2 ? '' : 'default'" src="/static/images/yrz2.png"></image>
</view>
<view :class="'btn ' + (authStatus == 2 ? '' : 'default' )" @tap="" class="acea-row row-middle btn-demo">
<image src="/static/images/auth-icon3.png"></image>
<view>
<view class="tip">发布项目</view>
<view class="tip-s">发布优质项目精准推荐投资方</view>
</view>
<view class="close" @tap="back">
<image src="/static/images/fabu-close.png"></image>
</view>
</view>
<view class="close" @tap="back"><image src="/static/images/close-icon.png"></image></view>
</view>
</view>
</template>
<script>
// pages/release/index.js
const app = getApp();
// pages/release/index.js
const app = getApp();
export default {
export default {
data() {
return {
userInfo: {},
@ -72,39 +106,15 @@
/**
* 生命周期函数--监听页面加载
*/
onLoad: function(options) {},
onLoad: function (options) {},
/**
* 生命周期函数--监听页面显示
*/
onShow: function() {
onShow: function () {
this.isAuthentication();
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function() {},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function() {},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function() {},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function() {},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function() {},
methods: {
back() {
let pages = getCurrentPages();
@ -123,7 +133,7 @@
url: '/pages/user/index'
});
},
//
toPersonlAuth() {
if (this.authStatus == 0) {
uni.navigateTo({
@ -139,9 +149,14 @@
title: '认证申请审核中,请等待!',
icon: 'none'
});
} else if(this.authStatus == 2){
uni.showToast({
title: '已完成认证',
icon: 'none'
});
}
},
//
toCompanyAuth() {
if (this.authStatus == 0) {
uni.navigateTo({
@ -157,8 +172,53 @@
title: '认证申请审核中,请等待!',
icon: 'none'
});
} else if(this.authStatus == 2){
uni.showToast({
title: '已完成认证',
icon: 'none'
});
}
},
//
toInvestorAuth() {
if (this.authStatus == 0) {
uni.navigateTo({
url: '/pages/release/investorAuth/index'
});
} else if (this.authStatus == 3) {
let authInfo = encodeURIComponent(JSON.stringify(this.authInfo));
uni.navigateTo({
url: '/pages/release/investorAuth/index?authInfo=' + authInfo
});
} else if (this.authStatus == 1) {
uni.showToast({
title: '认证申请审核中,请等待!',
icon: 'none'
});
} else if(this.authStatus == 2){
uni.showToast({
title: '已完成认证',
icon: 'none'
});
}
},
// toPersonlAuth() {
// if (this.authStatus == 0) {
// uni.navigateTo({
// url: '/pages/release/personAuth/index'
// });
// } else if (this.authStatus == 3) {
// let authInfo = encodeURIComponent(JSON.stringify(this.authInfo));
// uni.navigateTo({
// url: '/pages/release/personAuth/index?authInfo=' + authInfo
// });
// } else if (this.authStatus == 1) {
// uni.showToast({
// title: '',
// icon: 'none'
// });
// }
// },
isAuthentication() {
app.http('get', 'user/isAuthentication').then(res => {
@ -198,8 +258,7 @@
}
});
} else if (this.authStatus == 0 && (this.authType == 1 || this.authType == 0) && this.completeState ==
false) {
} else if (this.authStatus == 0 && (this.authType == 1 || this.authType == 0) && this.completeState == false) {
uni.showModal({
title: '提示!',
content: '您还未完成企业认证,点击确定去认证吧~',
@ -214,6 +273,7 @@
});
}
},
toNeeds() {
@ -221,8 +281,7 @@
uni.navigateTo({
url: '/pages/user/editNeeds/index?type=2'
});
} else if (this.authStatus == 2 && (this.authType == 2 || this.authType == 0) && this.completeState ==
false) {
} else if (this.authStatus == 2 && (this.authType == 2 || this.authType == 0) && this.completeState == false) {
uni.showModal({
title: '提示!',
content: '您还未完善个人信息,点击确定去完善吧~',
@ -234,8 +293,7 @@
}
});
} else if (this.authStatus == 0 && (this.authType == 2 || this.authType == 0) && this.completeState ==
false) {
} else if (this.authStatus == 0 && (this.authType == 2 || this.authType == 0) && this.completeState == false) {
uni.showModal({
title: '提示!',
content: '您还未完成认证,点击上方按钮去认证吧!'
@ -244,60 +302,103 @@
}
}
};
};
</script>
<style>
/* pages/release/index.wxss */
/* pages/release/index.wxss */
.guid-box{
width: 662rpx;
height: 140rpx;
margin: 196rpx 46rpx 60rpx 40rpx;
position: relative;
}
.guid-title{
width: 192rpx;
height: 56rpx;
font-size: 42rpx;
color: #1D1D1D;
}
.handbook-img{
width: 200rpx;
height: 56rpx;
}
.title-s{
width: 650rpx;
height: 74rpx;
font-size: 24rpx;
color: #1D1D1D;
margin-top: 10rpx;
}
.arror-r{
width: 21rpx;
height: 39rpx;
position: absolute;
right: 0;
top: 16rpx;
}
.auth-btn-box {
.auth-btn-box{
width: 100%;
margin-top: 300rpx;
}
.auth-btn {
width: 310rpx;
height: 101rpx;
background: linear-gradient(137deg, #FFCDB8 0%, #FF9060 100%);
margin-top: 60rpx;
}
.auth-btn{
width: 666rpx;
height: 134rpx;
box-shadow: 0px 0px 12rpx rgba(164, 164, 164, 0.16);
border-radius: 12rpx;
display: flex;
align-items: center;
justify-content: center;
color: #fff;
margin-bottom: 50rpx;
}
.auth-btn image {
width: 32rpx;
height: 32rpx;
transform: rotate(180deg);
}
.bgG {
background: linear-gradient(137deg, #BFD7F9 0%, #A8C8F6 100%);
}
.posi {
margin-bottom: 22rpx;
background: #FFFFFF;
position: relative;
}
.auth-headimg{
margin: 0 44rpx 0 44rpx;
}
.person-img{
width: 73rpx;
height: 68rpx;
}
.business-img{
width: 65rpx;
height: 73rpx;
}
.investor-img{
width: 65rpx;
height: 73rpx;
}
.auth-title{
width: 454rpx;
height: 40rpx;
}
.auth-title-h{
width: 445rpx;
font-size: 24rpx;
color: #686868;
}
.tojump{
width: 21rpx;
height: 39rpx;
position: absolute;
right: 32rpx;
}
.posi{
width: 100%;
bottom: 100rpx;
}
.top30 {
margin-top: 50rpx;
}
.top30{
bottom: 30%;
}
.tips-box {
}
.tips-box{
/* margin-top: 15%; */
}
.tips {
}
.tips{
color: #FF0000;
font-size: 26rpx;
padding-left: 54rpx;
margin-bottom: 10rpx;
}
.icon {
}
.icon{
width: 26rpx;
height: 26rpx;
border: 1rpx solid #FF0000;
@ -306,53 +407,55 @@
border-radius: 50%;
font-size: 20rpx;
margin-right: 10rpx;
}
.btn-box {
width: 100%;
padding: 0 36rpx;
margin-top: 28rpx;
}
.btn {
width: 320rpx;
height: 378rpx;
}
.btn-box{
width: 598rpx;
margin: 0 auto;
}
.btn{
width: 598rpx;
height: 150rpx;
background: #F8F8F8;
border-radius: 148px;
position: relative;
}
.btn-box image {
width: 320rpx;
height: 378rpx;
position: absolute;
left: 0;
top: 0;
}
.btn-box .default {
filter: grayscale(1);
}
.btn .tip {
color: #9C9C9C;
margin-bottom: 42rpx;
}
.btn-res{
background: #FF783A;
}
.btn-need{
background: #6AA5FF;
}
.btn-demo{
background: #ACAAFF;
}
.btn-box image{
width: 98rpx;
height: 98rpx;
margin: 0 32rpx 0 42rpx;
}
.btn-box .default{
filter: grayscale(100%);
}
.bgGary{
/* -webkit-filter:grayscale(100%); */
}
.btn .tip{
color: #FFFFFF;
font-weight: 500;
font-size: 32rpx;
position: relative;
left: 0;
top: 70rpx;
text-align: center;
z-index: 3;
}
.btn .auth {
color: #1D1D1D;
}
.close {
margin-bottom: 12rpx;
}
.tip-s{
font-size: 24rpx;
color: #FFFFFF;
}
.close {
text-align: center;
}
.close image {
width: 88rpx;
height: 88rpx;
}
margin: 114rpx 0 180rpx 0;
}
.close image{
width: 40rpx;
height: 40rpx;
}
</style>

385
pages/release/index2.vue

@ -1,42 +1,18 @@
<template>
<!--pages/release/index.wxml-->
<view class="release-page">
<view class="guid-box acea-row">
<view class="guid-title">发布指南</view>
<image src="../../static/images/handbook.png" class="handbook-img"></image>
<view class="title-s">详细阅读有助于让你快速了解云生态发布规则更准确地发布内容</view>
<image src="../../static/images/arror-right.png" class="arror-r"></image>
</view>
<!--pages/release/index.wxml-->
<view class="release-page">
<view class="auth-btn-box acea-row row-column row-middle">
<view class="auth-btn acea-row row-middle" @tap="toPersonlAuth">
<view><image src="/static/images/user/person.png" class="auth-headimg person-img"></image></view>
<view>
<view class="auth-title">个人认证</view>
<view class="auth-title-h">个人认证后可发布资源项目及需求</view>
</view>
<image src="/static/images/home/arrow-r.png" class="tojump"></image>
</view>
<view class="auth-btn acea-row row-middle" @tap="toCompanyAuth">
<view><image src="/static/images/user/business.png" class="auth-headimg business-img"></image></view>
<view>
<view class="auth-title">企业认证</view>
<view class="auth-title-h">企业认证后可发布资源项目及需求展示企业相关服务</view>
</view>
<image src="/static/images/home/arrow-r.png" class="tojump"></image>
<view class="auth-btn" @tap="toCompanyAuth" v-if="authStatus == 0 || authStatus == 3">企业认证<image
src="/static/images/back.png"></image>
</view>
<view class="auth-btn acea-row row-middle" @tap="toInvestorAuth">
<view><image src="/static/images/user/investor.png" class="auth-headimg investor-img"></image></view>
<view>
<view class="auth-title">投资方认证</view>
<view class="auth-title-h">投资方认证后可查看项目方发布项目详情</view>
</view>
<image src="/static/images/home/arrow-r.png" class="tojump"></image>
<view class="auth-btn bgG" @tap="toPersonlAuth" v-if="authStatus == 0 || authStatus == 3">个人认证<image
src="/static/images/back.png"></image>
</view>
</view>
<view :class="'posi ' + (authStatus == 1 || authStatus == 2 ? 'top30' : '')">
<!-- <view class="tips-box">
<view class="tips acea-row-nowrap row-middle">
<view class="icon">!</view>
<view class="tips-box">
<view class="tips acea-row-nowrap row-middle" v-if="authStatus == 0 || authStatus == 3">
<!-- <view class="icon">!</view> -->
<view>完成企业认证后可以发布资源及需求个人认证后只可发布需求</view>
</view>
<view class="tips acea-row row-middle" v-if="authStatus == 0">
@ -56,40 +32,30 @@
<view>{{authType == 1 ? '企业信息未审核通过, 请重新提交审核信息!' : '个人信息未审核通过, 请重新提交审核信息!'}}</view>
<view>未通过理由{{reason}}</view>
</view>
</view> -->
<view class="btn-box ">
<view :class="'btn ' + (authStatus == 2 && authType == 1 ? '' : 'default' )" @tap="toResources" class="acea-row row-middle btn-res">
<image src="/static/images/auth-icon1.png"></image>
<view>
<view class="tip">发布资源</view>
<view class="tip-s">我要发布我的资源展示在供应广场</view>
</view>
</view>
<view :class="'btn ' + (authStatus == 2 ? '' : 'default' )" @tap="toNeeds" class="acea-row row-middle btn-need">
<image src="/static/images/auth-icon2.png"></image>
<view>
<view class="tip">发布需求</view>
<view class="tip-s">我要发布我的资源展示在供应广场</view>
<view class="btn-box acea-row row-between">
<view :class="'btn ' + (authStatus == 2 && authType == 1 ? 'auth' : '' )" @tap="toResources">
<view class="tip">我能提供...</view>
<image :class="authStatus == 2 && authType == 1 ? '' : 'default'" src="/static/images/yrz1.png">
</image>
</view>
<view :class="'btn ' + (authStatus == 2 ? 'auth' : '' )" @tap="toNeeds">
<view class="tip">我有需求...</view>
<image :class="authStatus == 2 ? '' : 'default'" src="/static/images/yrz2.png"></image>
</view>
<view :class="'btn ' + (authStatus == 2 ? '' : 'default' )" @tap="" class="acea-row row-middle btn-demo">
<image src="/static/images/auth-icon3.png"></image>
<view>
<view class="tip">发布项目</view>
<view class="tip-s">发布优质项目精准推荐投资方</view>
</view>
<view class="close" @tap="back">
<image src="/static/images/fabu-close.png"></image>
</view>
</view>
<view class="close" @tap="back"><image src="/static/images/close-icon.png"></image></view>
</view>
</view>
</template>
<script>
// pages/release/index.js
const app = getApp();
// pages/release/index.js
const app = getApp();
export default {
export default {
data() {
return {
userInfo: {},
@ -106,15 +72,39 @@ export default {
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {},
onLoad: function(options) {},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
onShow: function() {
this.isAuthentication();
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function() {},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function() {},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function() {},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function() {},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function() {},
methods: {
back() {
let pages = getCurrentPages();
@ -133,7 +123,7 @@ export default {
url: '/pages/user/index'
});
},
//
toPersonlAuth() {
if (this.authStatus == 0) {
uni.navigateTo({
@ -149,14 +139,9 @@ export default {
title: '认证申请审核中,请等待!',
icon: 'none'
});
} else if(this.authStatus == 2){
uni.showToast({
title: '已完成认证',
icon: 'none'
});
}
},
//
toCompanyAuth() {
if (this.authStatus == 0) {
uni.navigateTo({
@ -172,53 +157,8 @@ export default {
title: '认证申请审核中,请等待!',
icon: 'none'
});
} else if(this.authStatus == 2){
uni.showToast({
title: '已完成认证',
icon: 'none'
});
}
},
//
toInvestorAuth() {
if (this.authStatus == 0) {
uni.navigateTo({
url: '/pages/release/investorAuth/index'
});
} else if (this.authStatus == 3) {
let authInfo = encodeURIComponent(JSON.stringify(this.authInfo));
uni.navigateTo({
url: '/pages/release/investorAuth/index?authInfo=' + authInfo
});
} else if (this.authStatus == 1) {
uni.showToast({
title: '认证申请审核中,请等待!',
icon: 'none'
});
} else if(this.authStatus == 2){
uni.showToast({
title: '已完成认证',
icon: 'none'
});
}
},
// toPersonlAuth() {
// if (this.authStatus == 0) {
// uni.navigateTo({
// url: '/pages/release/personAuth/index'
// });
// } else if (this.authStatus == 3) {
// let authInfo = encodeURIComponent(JSON.stringify(this.authInfo));
// uni.navigateTo({
// url: '/pages/release/personAuth/index?authInfo=' + authInfo
// });
// } else if (this.authStatus == 1) {
// uni.showToast({
// title: '',
// icon: 'none'
// });
// }
// },
isAuthentication() {
app.http('get', 'user/isAuthentication').then(res => {
@ -258,7 +198,8 @@ export default {
}
});
} else if (this.authStatus == 0 && (this.authType == 1 || this.authType == 0) && this.completeState == false) {
} else if (this.authStatus == 0 && (this.authType == 1 || this.authType == 0) && this.completeState ==
false) {
uni.showModal({
title: '提示!',
content: '您还未完成企业认证,点击确定去认证吧~',
@ -273,7 +214,6 @@ export default {
});
}
},
toNeeds() {
@ -281,7 +221,8 @@ export default {
uni.navigateTo({
url: '/pages/user/editNeeds/index?type=2'
});
} else if (this.authStatus == 2 && (this.authType == 2 || this.authType == 0) && this.completeState == false) {
} else if (this.authStatus == 2 && (this.authType == 2 || this.authType == 0) && this.completeState ==
false) {
uni.showModal({
title: '提示!',
content: '您还未完善个人信息,点击确定去完善吧~',
@ -293,7 +234,8 @@ export default {
}
});
} else if (this.authStatus == 0 && (this.authType == 2 || this.authType == 0) && this.completeState == false) {
} else if (this.authStatus == 0 && (this.authType == 2 || this.authType == 0) && this.completeState ==
false) {
uni.showModal({
title: '提示!',
content: '您还未完成认证,点击上方按钮去认证吧!'
@ -302,103 +244,60 @@ export default {
}
}
};
};
</script>
<style>
/* pages/release/index.wxss */
.guid-box{
width: 662rpx;
height: 140rpx;
margin: 196rpx 46rpx 60rpx 40rpx;
position: relative;
}
.guid-title{
width: 192rpx;
height: 56rpx;
font-size: 42rpx;
color: #1D1D1D;
}
.handbook-img{
width: 200rpx;
height: 56rpx;
}
.title-s{
width: 650rpx;
height: 74rpx;
font-size: 24rpx;
color: #1D1D1D;
margin-top: 10rpx;
}
.arror-r{
width: 21rpx;
height: 39rpx;
position: absolute;
right: 0;
top: 16rpx;
}
/* pages/release/index.wxss */
.auth-btn-box{
.auth-btn-box {
width: 100%;
margin-top: 60rpx;
}
.auth-btn{
width: 666rpx;
height: 134rpx;
box-shadow: 0px 0px 12rpx rgba(164, 164, 164, 0.16);
margin-top: 300rpx;
}
.auth-btn {
width: 310rpx;
height: 101rpx;
background: linear-gradient(137deg, #FFCDB8 0%, #FF9060 100%);
border-radius: 12rpx;
margin-bottom: 22rpx;
background: #FFFFFF;
position: relative;
}
.auth-headimg{
margin: 0 44rpx 0 44rpx;
}
.person-img{
width: 73rpx;
height: 68rpx;
}
.business-img{
width: 65rpx;
height: 73rpx;
}
.investor-img{
width: 65rpx;
height: 73rpx;
}
.auth-title{
width: 454rpx;
height: 40rpx;
}
.auth-title-h{
width: 445rpx;
font-size: 24rpx;
color: #686868;
}
.tojump{
width: 21rpx;
height: 39rpx;
position: absolute;
right: 32rpx;
}
display: flex;
align-items: center;
justify-content: center;
color: #fff;
margin-bottom: 50rpx;
}
.auth-btn image {
width: 32rpx;
height: 32rpx;
transform: rotate(180deg);
}
.posi{
.bgG {
background: linear-gradient(137deg, #BFD7F9 0%, #A8C8F6 100%);
}
.posi {
position: absolute;
width: 100%;
bottom: 100rpx;
margin-top: 50rpx;
}
.top30{
}
.top30 {
bottom: 30%;
}
.tips-box{
}
.tips-box {
/* margin-top: 15%; */
}
.tips{
}
.tips {
color: #FF0000;
font-size: 26rpx;
padding-left: 54rpx;
margin-bottom: 10rpx;
}
.icon{
}
.icon {
width: 26rpx;
height: 26rpx;
border: 1rpx solid #FF0000;
@ -407,55 +306,53 @@ export default {
border-radius: 50%;
font-size: 20rpx;
margin-right: 10rpx;
}
.btn-box{
width: 598rpx;
margin: 0 auto;
}
.btn{
width: 598rpx;
height: 150rpx;
background: #F8F8F8;
border-radius: 148px;
}
.btn-box {
width: 100%;
padding: 0 36rpx;
margin-top: 28rpx;
}
.btn {
width: 320rpx;
height: 378rpx;
position: relative;
margin-bottom: 42rpx;
}
.btn-res{
background: #FF783A;
}
.btn-need{
background: #6AA5FF;
}
.btn-demo{
background: #ACAAFF;
}
.btn-box image{
width: 98rpx;
height: 98rpx;
margin: 0 32rpx 0 42rpx;
}
.btn-box .default{
filter: grayscale(100%);
}
.bgGary{
/* -webkit-filter:grayscale(100%); */
}
.btn .tip{
color: #FFFFFF;
}
.btn-box image {
width: 320rpx;
height: 378rpx;
position: absolute;
left: 0;
top: 0;
}
.btn-box .default {
filter: grayscale(1);
}
.btn .tip {
color: #9C9C9C;
font-weight: 500;
font-size: 32rpx;
margin-bottom: 12rpx;
}
.tip-s{
font-size: 24rpx;
color: #FFFFFF;
}
.close {
position: relative;
left: 0;
top: 70rpx;
text-align: center;
z-index: 3;
}
.btn .auth {
color: #1D1D1D;
}
.close {
text-align: center;
margin: 114rpx 0 180rpx 0;
}
.close image{
width: 40rpx;
height: 40rpx;
}
}
.close image {
width: 88rpx;
height: 88rpx;
}
</style>

49
pages/release/personAuth/index.vue

@ -42,6 +42,16 @@
</view> -->
</view>
<view class="submit-btn" @tap="submit">保存并提交</view>
<view class="argeement-box">
<checkbox-group @change="argeementClick">
<checkbox value="1" style="transform:scale(0.7);position: relative; top: 3rpx;" :checked="isCheck" />
</checkbox-group>
<view class="acea-row">
我已阅读并同意
<navigator url="/pages/login/agreementPage" open-type="navigate" style="color: rgb(255, 50, 50);">用户协议及隐私政策</navigator>
</view>
</view>
</view>
</template>
@ -61,7 +71,8 @@ export default {
idcardPicBehind: '',
idcardPicHold: ''
},
isEdit: false
isEdit: false,
isCheck: false
};
},
@ -86,24 +97,24 @@ export default {
}
},
methods: {
argeementClick(e){
console.log(e)
let state = e.detail.value
if(state.length > 0) {
this.isCheck = true
} else{
this.isCheck = false
}
},
inpChange(e) {
let type = e.currentTarget.dataset.type;
let value = e.detail.value;
if (type == 'name') {
this.setData({//['form.legalPersonName']: value
});
//try fix
this.form.legalPersonName = value;
} else if (type == 'phone') {
this.setData({//.form.legalPhone: value
});
//try fix
this.form.legalPhone = value;
} else if (type == 'idcard') {
this.setData({//.form.legalPersonIdcard: value
});
//try fix
this.form.legalPersonIdcard = value;
}
},
@ -112,19 +123,10 @@ export default {
let type = e.currentTarget.dataset.type;
util.chooseImages(img => {
if (type == 'f') {
this.setData({//['form.idcardPicFront']: img
});
//try fix
this.form.idcardPicFront = img;
} else if (type == 'b') {
this.setData({//.form.idcardPicBehind: img
});
//try fix
this.form.idcardPicBehind = img;
} else {
this.setData({//.form.idcardPicHold: img
});
//try fix
this.form.idcardPicHold = img;
}
});
@ -132,6 +134,13 @@ export default {
submit() {
let form = this.form;
if(!this.isCheck){
uni.showToast({
title: '请阅读并勾选用户隐私协议',
icon: 'none'
});
return;
}
if (form.legalPersonName == '') {
uni.showToast({
@ -204,4 +213,6 @@ export default {
<style>
/* pages/release/personAuth/index.wxss */
@import "../companyAuth/index.css";
</style>

42
pages/user/incomeDetail/index.vue

@ -14,7 +14,7 @@
<view class="income-l income-r acea-row row-column row-middle row-left">
<view class="t">累计收益</view>
<view class="num">{{pageData.brokeragePrice}}</view>
<!-- <view class="btn">提现</view> -->
<view class="btn" @click="toWithDraw">提现</view>
</view>
</view>
</view>
@ -64,42 +64,12 @@ export default {
this.getDetail();
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {}
/**
* 用户点击右上角分享
*/
// onShareAppMessage: function () {
// }
,
methods: {
toWithDraw(){
uni.navigateTo({
url: '/pages/user/withdraw/index'
})
},
getDetail() {
app.http('get', 'user/profitDetail').then(res => {
if (res.data.success) {

27
pages/user/index.vue

@ -2,7 +2,9 @@
<view class="home-page">
<view class="page-top-box">
<image src="https://download.cyjyyjy.com/top-bg.png" class="top-bg"></image>
<view class="page-title" :style="'top:' + menuTop + 'px;height:' + menuHeight + 'px;line-height: ' + menuHeight + 'px;'">禅易云生态</view>
<!-- <view class="page-title" :style="'top:' + menuTop + 'px;height:' + menuHeight + 'px;line-height: ' + menuHeight + 'px;'">禅易云生态</view> -->
<CustomNav :title="'禅易云生态'" :isFixed="isFixed"></CustomNav>
<view class="top-box-content" :style="'top: ' + (CustomBar + 10) + 'rpx;'">
<view class="top-set-box acea-row row-between row-middle">
<view class="set-box-l" v-if="authType == 1 || authType == 2" @tap="toAuthInfo">{{authType == 1 ? '企业' : '个人'}}中心</view>
@ -51,7 +53,8 @@
</view>
</view>
</view>
<view style="padding: 58rpx 40rpx 0; border-radius: 12rpx; overflow: hidden;" v-if="(userInfo.mpOpenId == 0 || !userInfo.mpOpenId) && scene == 1011">
<view style="padding: 58rpx 40rpx 0; border-radius: 12rpx; overflow: hidden;"
v-if="(userInfo.mpOpenId == 0 || !userInfo.mpOpenId) && (scene == 1047 || scene == 1001 || scene == 1011)">
<official-account></official-account>
</view>
<view class="menu-list-box">
@ -108,7 +111,7 @@
</view>
<view class="torelease-img" @tap="toRelease(0)">
<image src="/static/images/user/fbzy.png"></image>
<view class="to-btn">发布需求</view>
<view class="to-btn">发布供应</view>
</view>
</view>
<view class="add-service" @click="$yrouter.push({path: '/pages/user/addServiceCode/index'})">
@ -221,6 +224,7 @@
<script>
// pages/life/index.js
const app = getApp();
import CustomNav from '@/components/CustomNavigator.vue'
import tabbar from "../../tabbarComponent/tabbar";
export default {
@ -237,19 +241,26 @@ export default {
authType: 0,
completeState: "",
currentTabIndex: 4,
scene: app.globalData.scene
scene: app.globalData.scene,
isFixed: false,
};
},
components: {
tabbar
tabbar,
CustomNav
},
props: {},
onPageScroll(e) {
if (e.scrollTop > 60) {
this.isFixed = true;
} else {
this.isFixed = false;
};
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
this.getInfo();
},
/**
@ -480,7 +491,7 @@ export default {
font-size: 24rpx;
}
.userInfo-box{
margin-top: 34rpx;
margin-top: 60rpx;
}
.userInfo-box .header-img{
width: 120rpx;

9
pages/user/mine/index.vue

@ -260,10 +260,13 @@
},
tixian() {
uni.showToast({
title: '提现功能暂未开放!',
icon: 'none'
uni.navigateTo({
url: '/pages/user/withdraw/index'
});
// uni.showToast({
// title: '',
// icon: 'none'
// });
}
}

48
pages/user/withdraw/index.vue

@ -2,28 +2,64 @@
<view class="withdraw-box">
<view class="top-box">
<view class="title">可用金额</view>
<view class="money">888.88</view>
<view class="money">{{userInfo.spread.brokeragePrice || 0}}</view>
</view>
<view class="draw-box">
<view class="title">提现金额()</view>
<view class="inp-box acea-row row-between-wrapper">
<input placeholder="0" type="number" placeholder-style="color:#1d1d1d">
<view class="btn">全部提现</view>
<input placeholder="0" type="number" v-model="money" placeholder-style="color:#1d1d1d">
<view class="btn" @click="inpAll">全部提现</view>
</view>
</view>
<view class="add-btn">确认提现</view>
<view class="add-btn" @click="submit">确认提现</view>
</view>
</template>
<script>
const app = getApp()
import { cash } from '@/api/user'
export default{
data(){
return {
userInfo: {},
money: null
}
},
mounted(){
this.getInfo()
},
methods:{
getInfo() {
app.http('get', 'userinfo').then(res => {
if (res.data.success) {
this.setData({
userInfo: res.data.data
});
uni.setStorageSync('userInfo',res.data.data)
}
});
},
inpAll(){
this.money = this.userInfo.spread.brokeragePrice
},
submit(){
if(this.data.money == ''){
return uni.showToast({
title:'请输入提现金额!',
icon: 'none'
})
}
cash({
money: parseInt(this.data.money)
}).then((res)=>{
uni.showToast({
title: '申请提现成功',
})
setTimeout(()=>{
this.getInfo()
},1500)
})
},
}
}
</script>

BIN
static/images/home/减去 3@2x.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 386 B

BIN
static/images/home/组 326@2x.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

BIN
static/images/home/资源 21@2x.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 692 B

BIN
static/tabbarComponent/icon/icon_home.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 566 B

BIN
static/tabbarComponent/icon/icon_home_HL.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 814 B

BIN
static/tabbarComponent/icon/icon_mine.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 695 B

BIN
static/tabbarComponent/icon/icon_mine_HL.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

BIN
static/tabbarComponent/icon/icon_release2.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 729 B

BIN
static/tabbarComponent/icon/tab5-a.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 141 B

BIN
static/tabbarComponent/icon/tab5.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 338 B

Loading…
Cancel
Save