Преглед на файлове

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	pages.json
刘浩男 преди 1 година
родител
ревизия
9799ca2a42
променени са 38 файла, в които са добавени 2348 реда и са изтрити 468 реда
  1. 10 0
      api/asking/asking.js
  2. 7 0
      api/cooperative/cooperative.js
  3. 44 0
      api/highFrequencyService/highFrequencyService.js
  4. 10 11
      api/information/information.js
  5. 15 0
      api/liveBroadcast/liveBroadcast.js
  6. 10 0
      api/me/nameAuthentication.js
  7. 10 0
      api/me/officialAuthentication.js
  8. 19 6
      components/upload/index.vue
  9. 1 2
      config.js
  10. 67 3
      pages.json
  11. 103 0
      pages/asking/asking.css
  12. 78 0
      pages/asking/asking.vue
  13. 11 1
      pages/fuwu/fuwu.vue
  14. 3 2
      pages/gridQuery/gridQuery.vue
  15. 105 20
      pages/handleAffairs/handleAffairs.vue
  16. 8 3
      pages/index/index.vue
  17. 217 29
      pages/informationAdd/informationAdd.vue
  18. 1 0
      pages/informationDetail/informationDetail.css
  19. 3 2
      pages/informationDetail/informationDetail.vue
  20. 50 17
      pages/liveBroadcast/liveBroadcast.css
  21. 74 50
      pages/liveBroadcast/liveBroadcast.vue
  22. 229 239
      pages/liveBroadcastDetails/liveBroadcastDetails.vue
  23. 0 0
      pages/matters/matters.css
  24. 11 0
      pages/matters/matters.vue
  25. 15 0
      pages/me/me.vue
  26. 0 0
      pages/me/nameAuthentication.css
  27. 82 0
      pages/me/nameAuthentication.vue
  28. 0 0
      pages/me/officialAuthentication.css
  29. 81 0
      pages/me/officialAuthentication.vue
  30. 18 32
      pages/specialService/loveAtVillage/details.vue
  31. 19 32
      pages/specialService/loveAtVillage/loveAtVillage.vue
  32. 194 0
      pages/toGovernmentList/index.css
  33. 64 18
      pages/toGovernmentList/toGovernmentList.vue
  34. 160 0
      pages/toGovernmentList/toGovernmentListDetail.css
  35. 269 0
      pages/toGovernmentList/toGovernmentListDetail.vue
  36. 204 0
      pages/toLegal/toLegal.css
  37. 153 0
      pages/toLegal/toLegal.vue
  38. 3 1
      static/scss/colorui.css

+ 10 - 0
api/asking/asking.js

@@ -0,0 +1,10 @@
+import request from '@/utils/request'
+
+// 获取类型列表
+export function getTypeList(query) {
+  return request({
+    url: '/JnbQuestionType/type/typeList',
+    method: 'get',
+    params: query
+  })
+}

+ 7 - 0
api/cooperative/cooperative.js

@@ -2,6 +2,13 @@ import upload from '@/utils/upload'
 import request from '@/utils/request'
 
 // 查询合作社列表
+export function getCooperative(query) {
+  return request({
+    url: '/system/cooperative/list',
+    method: 'get',
+    params: query
+  })
+}
 export function getCooperative() {
   return request({
     url: '/system/user/listAll',

+ 44 - 0
api/highFrequencyService/highFrequencyService.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询高频服务列表
+export function listServer(query) {
+  return request({
+    url: '/high/server/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询高频服务详细
+export function getServer(id,type) {
+  return request({
+    url: '/high/server/' + id + '/' + type,
+    method: 'get'
+  })
+}
+
+// 新增高频服务
+export function addServer(data) {
+  return request({
+    url: '/high/server',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改高频服务
+export function updateServer(data) {
+  return request({
+    url: '/high/server',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除高频服务
+export function delServer(id,type) {
+  return request({
+    url: '/high/server/' + id + '/' + type,
+    method: 'delete'
+  })
+}

+ 10 - 11
api/information/information.js

@@ -9,13 +9,17 @@ export function governmentListData(query) {
   })
 }
 
+// 政策推荐更多
+export function governmentListMore(query) {
+    return request({
+        url: '/jnb/information/listWxs',
+        method: 'get',
+        params:query
+    })
+}
+
 
 //资讯前三条置顶uniapp
-//{
-// 			  pageSize: 10,
-// 			  pageNum: 1,
-// 			  type:10,
-// 			  }
 export function listWx(query) {
   return request({
     url: '/jnb/information/listWx',
@@ -24,11 +28,6 @@ export function listWx(query) {
   })
 }
 //查询资讯列表uniapp
-//{
-// 			  pageSize: ,
-// 			  pageNum: ,
-// 			  type:,
-// 			  }
 export function listWxs(query) {
   return request({
     url: '/jnb/information/listWxs',
@@ -69,4 +68,4 @@ export function delServer(ids,type) {
     url: '/jnb/information/' + ids + '/' + type,
     method: 'delete'
   })
-}
+}

+ 15 - 0
api/liveBroadcast/liveBroadcast.js

@@ -0,0 +1,15 @@
+import request from '@/utils/request'
+
+export function list(query) {
+  return request({
+    url: '/high/server/liveBroadcastList',
+    method: 'get',
+	params:query
+  })
+}
+export function getDetails(id) {
+  return request({
+    url: '/high/server/liveBroadcastDetails/' + id,
+    method: 'get',
+  })
+}

+ 10 - 0
api/me/nameAuthentication.js

@@ -0,0 +1,10 @@
+import request from '@/utils/request'
+
+// 提交实名认证
+export function appletAdd(query) {
+  return request({
+    url: '/nameAuthentication/appletAdd',
+    method: 'post',
+    data: query
+  })
+}

+ 10 - 0
api/me/officialAuthentication.js

@@ -0,0 +1,10 @@
+import request from '@/utils/request'
+
+// 提交官方认证
+export function appletAdd(query) {
+  return request({
+    url: '/officialAuthentication/appletAdd',
+    method: 'post',
+    data: query
+  })
+}

+ 19 - 6
components/upload/index.vue

@@ -1,13 +1,12 @@
 <template>
   <view class="align-items" style="margin-top: 20px;margin-bottom: 20px;">
-    <view class="container" style="color: #b2b2b2;">*请上传照片</view>
+    <!-- <view class="container" style="color: #b2b2b2;">*请上传照片</view> -->
     <view class="" style="display: flex; flex-wrap: wrap;margin-top: 10px; margin-left: 10px;">
-      <image src="../../static/images/upload/updateimg.png" mode=""
-             style="width: 200rpx; height: 150rpx; margin: 0 12rpx; " @click="choose()"></image>
+      
       <view v-for="(item,index) in imgArr" :key="index" style="position: relative;">
         <view
             v-if="item.substring(item.length - 3) == 'png' || item.substring(item.length - 3) == 'jpg'|| item.substring(item.length-4)=='jpeg' ">
-          <image :src="loadImgSrcLocalhost(item)" mode="" style="width: 100rpx; height: 100rpx; margin: 0 12rpx;"
+          <image :src="loadImgSrcLocalhost(item)" mode="" style="width: 200rpx; height: 150rpx; margin: 0 12rpx;"
                  @click="showPhoto(index)">
           </image>
         </view>
@@ -20,6 +19,8 @@
           </image>
         </view>
       </view>
+	  <image src="../../static/images/upload/updateimg.png" mode=""
+	         class="uploadPic" @click="choose()"></image>
     </view>
   </view>
 </template>
@@ -111,7 +112,8 @@ export default {
                   _this.$modal.msg(data.msg)
                 } else {
                   if (_this.progress === 100) {
-                    _this.imgArr.push(data.fileName)
+                    _this.imgArr.unshift(data.fileName)
+					console.log(_this.imgArr)
                     _this.$modal.msg('上传成功!')
                     _this.photo = false;
                     _this.$emit('updateImg', _this.imgArr);
@@ -236,5 +238,16 @@ export default {
 
 </script>
 
-<style>
+<style lang="scss">
+	.uploadPic{
+		position: relative;
+		height: 150rpx; 
+		margin: 0 12rpx; 
+		width: 200rpx; 
+	}
+	.uploadPic::after{
+		position: absolute;
+		content:'请上传图片';
+		bottom: 0;
+	}
 </style>

+ 1 - 2
config.js

@@ -3,11 +3,10 @@ module.exports = {
 
 	// baseUrl: 'https://www.xcx.cczdsz.cn/prod-api',
 	// baseUrl: 'http://192.168.4.6:8080',
-	baseUrl: 'http://192.168.4.28:8080',
+	baseUrl: 'http://localhost:8080',
 	// baseUrl: 'http://192.168.4.11:8080',
 	// baseUrl: 'http://192.168.4.14:8089',
 	baseIconUrl: 'http://119.3.201.155:9000',
-	// baseIconUrl: 'http://192.168.4.14:8080',
 	// 应用信息
 	appInfo: {
 		// 应用名称

+ 67 - 3
pages.json

@@ -26,6 +26,15 @@
 			}
 		},
 		{
+			"path": "pages/specialService/loveAtVillage/details",
+			"style": {
+				"usingComponents": {},
+				"navigationBarBackgroundColor": "#07c160",
+				"navigationBarTextStyle": "white",
+				"navigationBarTitleText": "乡村婚恋详情"
+			}
+		},
+		{
 			"path": "pages/cooperative/details",
 			"style": {
 				"usingComponents": {},
@@ -73,6 +82,15 @@
 			}
 		},
 		{
+			"path": "pages/matters/matters",
+			"style": {
+				"usingComponents": {},
+				"navigationBarBackgroundColor": "#07c160",
+				"navigationBarTextStyle": "white",
+				"navigationBarTitleText": "我的事项"
+			}
+		},
+		{
 			"path": "pages/sannong/sannong",
 			"style": {
 				"usingComponents": {
@@ -161,12 +179,25 @@
 
 			}
 		},
+		// {
+		// 	"path": "pages/quotations/quotations",
+		// 	"style": {
+		// 		"usingComponents": {},
+		// 		"navigationBarBackgroundColor": "#07c160",
+		// 		"navigationBarTextStyle": "white",
+		// 		"navigationBarTitleText": "行情"
+
+
+		// 	}
+		// },
 		{
-			"path": "pages/quotations/quotations",
+			"path": "pages/toGovernmentList/toGovernmentList",
 			"style": {
 				"usingComponents": {},
 				"navigationBarBackgroundColor": "#07c160",
 				"navigationBarTextStyle": "white",
+				"navigationBarTitleText": "惠民通"
+
 				"navigationBarTitleText": "行情"
 			}
 		},
@@ -180,6 +211,9 @@
 			}
 		},
 		{
+			"path": "pages/toLegal/toLegal",
+		},
+		{
 			"path": "pages/quotations/quotationsSecond",
 			"style": {
 				"usingComponents": {},
@@ -194,7 +228,7 @@
 				"usingComponents": {},
 				"navigationBarBackgroundColor": "#07c160",
 				"navigationBarTextStyle": "white",
-				"navigationBarTitleText": "惠民通"
+				"navigationBarTitleText": "法律下乡"
 
 			}
 		},
@@ -218,8 +252,38 @@
 			}
 		},
 		{
+			"path": "pages/asking/asking",
+			"style": {
+				"usingComponents": {},
+				"navigationBarBackgroundColor": "#07c160",
+				"navigationBarTextStyle": "white",
+				"navigationBarTitleText": "问吧"
+
+			}
+		},
+		{
+			"path": "pages/me/nameAuthentication",
+			"style": {
+				"usingComponents": {},
+				"navigationBarBackgroundColor": "#07c160",
+				"navigationBarTextStyle": "white",
+				"navigationBarTitleText": "实名认证"
+
+			}
+		},
+		{
+			"path": "pages/me/officialAuthentication",
+			"style": {
+				"usingComponents": {},
+				"navigationBarBackgroundColor": "#07c160",
+				"navigationBarTextStyle": "white",
+				"navigationBarTitleText": "官方认证"
+
+			}
+		},
+		{
 			"path" : "pages/liveBroadcast/liveBroadcast",
-			"style" : 
+			"style" :
 			{
 				"usingComponents": {},
 				"navigationBarBackgroundColor": "#07c160",

+ 103 - 0
pages/asking/asking.css

@@ -0,0 +1,103 @@
+/* pages/wenda/wenda.wxss */
+.wendaFL {
+    width: 100%;
+    display: flex;
+    justify-content: space-between;
+    margin: 30rpx 0 0 0;
+}
+.wendaFL li {
+    width: 48%;
+    height: 168rpx;
+    position: relative;
+}
+.lbBj {
+    position: absolute;
+    left: 0;
+    top: 0;
+    z-index: 0;
+    width: 100%;
+    height: 100%;
+}
+.wendaFL li h2 {
+    font-size: 36rpx;
+    position: absolute;
+    left: 30rpx;
+    top: 40rpx;
+    z-index: 1;
+    font-weight: bold;
+}
+.wendaFL li span {
+    font-size: 30rpx;
+    position: absolute;
+    left: 30rpx;
+    top: 88rpx;
+    z-index: 1;
+}
+.wendaFL li.sanNong {
+    color: #0d9970;
+}
+.wendaFL li.jiuYe {
+    color: #1e8fb4;
+}
+.wendaFL li.faLv {
+    color: #1e5dab;
+}
+.wendaFL li.jiuZhen {
+    color: #4a700d;
+}
+/* 列表 */
+.rnwdList {
+    width: 100%;
+    display: flex;
+    justify-content: space-between;
+    margin: 20rpx 0;
+}
+.list {
+    width: 79%;
+}
+.lb {
+    background: #0d9970;
+    color: #fff;
+    font-size: 24rpx;
+    width: 12%;
+    text-align: center;
+    padding: 2rpx 0;
+    line-height: 40rpx;
+    height: 40rpx;
+    border-radius: 10rpx;
+}
+.listTitle {
+    font-size: 32rpx;
+    color: #333;
+    line-height: 40rpx;
+}
+.jlSj {
+    height: 40rpx;
+    display: flex;
+    justify-content: space-between;
+    font-size: 24rpx;
+    margin: 20rpx 0 0 0;
+}
+.jf {
+    color: #07c160;
+}
+.icon-jifen {
+    font-size: 28rpx;
+    color: #07c160;
+    margin: 0 0 0 6rpx;
+}
+.ck {
+    color: #c4c4c4;
+}
+.icon-pinglun,
+.icon-chakan,
+.icon-shoucang {
+    font-size: 28rpx;
+    margin: 0 6rpx 0 20rpx;
+    color: #c4c4c4;
+}
+.icon-xiangyoujiantou {
+    font-size: 30rpx;
+    color: #c4c4c4;
+    line-height: 60rpx;
+}

+ 78 - 0
pages/asking/asking.vue

@@ -0,0 +1,78 @@
+<template>
+    <!-- pages/fuwu/fuwu.wxml -->
+    <view class="container">
+        <!-- 问答类别 -->
+
+        <view class="wendaFL" @tap="" v-for="(obj, index) in typeList" :key="index">
+            <ul class="wendaFL">
+                <li class="sanNong">
+                    <image :src="'http://127.0.0.1:8080'+obj.path" class="lbBj"></image>
+                    <h2>{{obj.type}}</h2>
+                    <span>1566</span>
+                </li>
+            </ul>
+        </view>
+    </view>
+</template>
+
+<script>
+import upload from '../../components/upload/index.vue'
+import {getTypeList} from '@/api/asking/asking.js'
+export default {
+	components: {
+		upload
+	},
+    data() {
+        return {
+			imageList:[
+				'/profile/upload/2024/03/02/D5hjxYkldNxIef093ae65b2128b1293b86a7b537ed98_20240302170757A001.png',
+				'/profile/upload/2024/03/02/D5hjxYkldNxIef093ae65b2128b1293b86a7b537ed98_20240302170757A001.png'
+			],
+            typeList: [
+                {
+                    type: null,
+					path: null
+                }
+            ],
+			// 查询参数
+		  queryParams: {
+			pageNum: 1,
+			pageSize: 6,
+		  },
+        };
+    }
+    /**
+     * 生命周期函数--监听页面加载
+     */,
+    onLoad(options) {
+        this.getTypeList();
+    },
+    methods: {
+         //获取类型列表
+        getTypeList(){
+            getTypeList(this.queryParams).then(res =>{
+                this.typeList = res.rows
+            })
+        },
+
+        goSanNong() {
+            uni.navigateTo({
+                url: '/pages/sannong/sannong'
+            });
+        },
+
+        goDetails() {
+            uni.navigateTo({
+                url: '/pages/wenbaxiangqing/wenbaxiangqing'
+            });
+        },
+
+		updateImg(imgList){
+			this.imageList = imgList;
+		}
+    }
+};
+</script>
+<style>
+@import './asking.css';
+</style>

+ 11 - 1
pages/fuwu/fuwu.vue

@@ -1,6 +1,10 @@
 <template>
     <!-- pages/me.wxml -->
 	<view class="container">
+		<uni-search-bar @confirm="search" :focus="true" v-model="searchValue" @blur="search"  @input="search"
+		style="width: 100%;"
+			@cancel="cancel">
+		</uni-search-bar>
 	    <view class="rnwdList">
 	        <view class="list" @tap="goDetails(item)" v-for="(item, index1) in qbwd" :key="index1">
 	            <span class="listTitle">{{ item.titleName }}</span>
@@ -43,7 +47,7 @@
 			</view>
 	    </view>
 		<!-- 新增资讯按钮 -->
-		<button class="addInfomarionBtn" @click="addInfomation()"></button>
+		<!-- <button class="addInfomarionBtn" @click="addInfomation()"></button> -->
 	</view>
 </template>
 
@@ -62,6 +66,7 @@ export default {
 			  flag:''
 			},
 			total:0,
+			searchValue:''
 		};
     },
 	created(){
@@ -85,6 +90,11 @@ export default {
 		}
 	},
 	methods:{
+		search(){
+			this.listParams.titleName = this.searchValue
+			this.qbwd = []
+			this.getList()
+		},
 		getList(){
 			listWxs(this.listParams).then(res => {
 				this.qbwd = [...this.qbwd,...res.rows]

+ 3 - 2
pages/gridQuery/gridQuery.vue

@@ -23,13 +23,14 @@
 		onLoad(option){
 			const _that = this
 			const id = uni.getStorageSync('id');
+			console.log(id)
 			 getGridType(id).then(res =>{
 				 _that.jobDescription = res.data.jobDescription
 			 })
 		},
-		
+
 		methods: {
-		
+
 		}
 	}
 </script>

+ 105 - 20
pages/handleAffairs/handleAffairs.vue

@@ -1,15 +1,51 @@
 <template>
+
 	<view>
-			<view class="gpfwNav">
-				<ul >
-					<li v-for="(item,index) in gridtTypeLits" :key="index" >
-						<image :src="'http://127.0.0.1:8080'+item.fileUrl" @click="querygrid(item)">{{item.name}}</image>
-					</li>
-					</ul>
-
-			</view>
-	</view>
+		<!-- 搜索栏 -->
+		<view class="input-view">
+			<input confirm-type="search" class="nav-bar-input" type="text" placeholder="输入搜索关键词" @confirm="confirm" />
+			<uni-icons class="input-uni-icon" type="search" size="18" color="#999" />
+		</view>
+		<!-- 网格配置列表滑动 -->
+		<view>
+			<uni-swiper-dot :info="info" :current="current" field="content" :mode="mode">
+				<swiper class="swiper-box">
+					<swiper-item v-for="(item ,index) in gridtType" :key="index">
+
+						<!-- <ul class="mainNav" >
+							<li v-for="(dataitem,dataindex) in item.dataList" :key="dataitem.id">
+								<image class="uni-header-image" :src="'http://127.0.0.1:8080'+dataitem.fileUrl"
+									@click="querygrid(dataitem)"></image>
+								<text>{{dataitem.name}}</text>
+							</li>
+						</ul> -->
+						<uni-grid :column="5" :highlight="true" :showBorder="false">
+							<uni-grid-item v-for="(dataitem,dataindex) in item" :key="dataitem.id">
+								<view>
+									<image class="uni-header-image" :src="'http://127.0.0.1:8080'+dataitem.fileUrl"
+										@click="querygrid(dataitem)"></image>
+									<uni-title type="h5" :title="dataitem.name" align="center"></uni-title>
+								</view>
+
+							</uni-grid-item>
+						</uni-grid>
+					</swiper-item>
+				</swiper>
+			</uni-swiper-dot>
+		</view>
+
+		<view>
+			<uni-row class="demo-uni-row" :width="nvueWidth">
+				<uni-col :span="12">
+					<button align="center" @click="topic">主题导航</button>
+				</uni-col>
 
+				<uni-col :span="12">
+					<button align="center" @click="dept">部门导航</button>
+				</uni-col>
+			</uni-row>
+		</view>
+	</view>
 </template>
 
 <script>
@@ -20,27 +56,48 @@
 	export default {
 		data() {
 			return {
-				gridtTypeLits: [],
+				gridtType: [], //是一个list<map>数据 [{0,[1,2,3]}]
 			};
 		},
 		created() {
 			this.getList();
 		},
 		methods: {
-			querygrid(item){
+			//主题导航跳转
+			topic(){
+
+				uni.navigateTo({
+					url: '/pages/topic/topic',
+				});
+			},
+			//部门导航跳转
+			dept(){
+
+			},
+			querygrid(item) {
 				console.log(item)
-					uni.setStorageSync('id', item.id)
-				    uni.navigateTo({
-				        url: '/pages/gridQuery/gridQuery',
+				uni.setStorageSync('id', item.id)
+				uni.navigateTo({
+					url: '/pages/gridQuery/gridQuery',
 
-				    });
+				});
 			},
 			getList() {
 				const _that = this
-				let query = {yesOrNoShow: "0"};
-				listGridType(query).then(res =>{
-				 _that.gridtTypeLits = res.rows
-				 console.log(res)
+				let query = {
+					yesOrNoShow: "0"
+				};
+				listGridType(query).then(res => {
+					let gridtTypeLits = res.rows
+
+					let dataList = []
+					for (var i = 0; i < gridtTypeLits.length; i++) {
+						dataList.push(gridtTypeLits[i])
+						if (((i + 1) % 5 == 0) || i == gridtTypeLits.length - 1) {
+							_that.gridtType.push(dataList)
+							dataList = []
+						}
+					}
 				});
 
 			},
@@ -48,6 +105,34 @@
 	}
 </script>
 <style scoped>
+	.uni-header-image {
 
-</style>
+		width: 30px;
+		height: 30px;
+		display: block;
+		margin: 0 auto;
+	}
 
+	/* 主导航 */
+	.mainNav {
+		width: 100%;
+		background: #fff;
+
+	}
+
+	.input-view {
+		/* #ifndef APP-PLUS-NVUE */
+		display: flex;
+		/* #endif */
+		flex-direction: row;
+		// width: 500rpx;
+		flex: 1;
+		background-color: #f8f8f8;
+		height: $nav-height;
+		border-radius: 15px;
+		padding: 0 15px;
+		flex-wrap: nowrap;
+		margin: 7px 0;
+		line-height: $nav-height;
+	}
+</style>

+ 8 - 3
pages/index/index.vue

@@ -31,7 +31,7 @@
                 <image :src="loadImgSrc('/cnfl-fr.png')"></image>
             </view>
             <view class="cnfl">
-                <view class="fv">
+                <view class="fv" @click="toLegal()">
                     <text>法律乡下</text>
                     <image :src="loadImgSrc('/fv.jpg')"></image>
                 </view>
@@ -332,6 +332,11 @@ export default {
 		this.governmentListData()
 	},
     methods: {
+		toLegal(){
+			uni.navigateTo({
+			    url: '/pages/toLegal/toLegal'
+			});
+		},
 		toGovernmentList(){
 			uni.navigateTo({
 			    url: '/pages/toGovernmentList/toGovernmentList'
@@ -342,6 +347,7 @@ export default {
 			  pageSize: 10,
 			  pageNum: 1,
 			  type:10,
+			  isGovernment:1
 			  }
 			governmentListData(params).then(res =>{
 				if (res.code==200) {
@@ -351,7 +357,7 @@ export default {
 		},
         goWenBa() {
             uni.navigateTo({
-                url: '/pages/wenba/wenba'
+                url: '/pages/asking/asking'
             });
         },
       goHangQing() {
@@ -377,7 +383,6 @@ export default {
             });
         },
         goSpecialService() {
-		    console.log(66666)
             uni.navigateTo({
                 url: '/pages/specialService/loveAtVillage/loveAtVillage'
             });

+ 217 - 29
pages/informationAdd/informationAdd.vue

@@ -5,55 +5,243 @@
  *@version: V1.0.5
 */
 <template>
-	<view class="container">
-		<u-form :model="form" ref="uForm">
-			<u-form-item label="标题"><u-input v-model="form.titleName" /></u-form-item>
-		</u-form>
+	<view>
+		<uni-forms :rules="rules" :value="formData" ref="form" validate-trigger="bind" err-show-type="undertext" class="uniForm">
+			<uni-group title="基本信息" top="0">
+				<uni-forms-item name="name" required label="标题">
+					<uni-easyinput type="text" :inputBorder="true" v-model="formData.titleName" placeholder="请输入标题"></uni-easyinput>
+				</uni-forms-item>
+				<!-- 使用原生input,需要绑定binddata -->
+				<uni-forms-item name="textDetails" required label="正文">
+					<uni-easyinput type="textarea" v-model="formData.textDetails" :maxlength="50" @blur="binddata('textDetails', $event.detail.value)" placeholder="请输入正文"></uni-easyinput>
+				</uni-forms-item>
+				<uni-forms-item name="checked" label="是否政策推荐" label-width="30%">
+					<switch :checked="formData.isGovernment" @change="change('isGovernment', $event.detail.value)" style="margin-top: 3%;"/>
+				</uni-forms-item>
+				<uni-forms-item name="checked" label="是否置顶" label-width="30%">
+					<switch :checked="formData. isTop" @change="change(' isTop', $event.detail.value)" style="margin-top: 2%;"/>
+				</uni-forms-item>
+				<uni-forms-item name="urlList" required label="图片">
+					<upload :imgArr="imageList" :fileSize="1" :limit="3" @updateImg="updateImg"></upload>
+				</uni-forms-item>
+			</uni-group>
+			<view>
+				<!-- <button  @click="submitForm('form')">校验表单</button>
+				<button size="mini" @click="validateField('form')">只校验用户名和邮箱项</button>
+				<button size="mini" @click="clearValidate('form', 'name')">移除用户名的校验结果</button>
+				<button size="mini" @click="clearValidate('form')">移除全部表单校验结果</button>
+				<button  @click="resetForm">重置表单</button> -->
+				<button  @click="submitForm('form')">新增</button>
+			</view>
+		</uni-forms>
 	</view>
 </template>
-
+ 
 <script>
+	import upload from '@/components/upload/index.vue'
 	export default {
-		data(){
+		components: {
+			upload
+		},
+		data() {
 			return {
-				form: {
+				formData: {
 					titleName: '',
-					intro: '',
-					sex: ''
+					textDetails: '',
+					email: '',
+					sex: '0',
+					hobby: [0, 2],
+					remarks: '热爱学习,热爱生活',
+					isGovernment: false,
+					isTop: false,
+					country: 2,
+					weight: 120,
+					birth: ''
 				},
-				checkboxList: [
-					{
-						name: '苹果',
-						checked: false,
-						disabled: false
+				imageList:[],
+				sex: [{
+						text: '男',
+						value: '0'
 					},
 					{
-						name: '雪梨',
-						checked: false,
-						disabled: false
+						text: '女',
+						value: '1'
 					},
 					{
-						name: '柠檬',
-						checked: false,
-						disabled: false
+						text: '未知',
+						value: '2'
 					}
 				],
-				radioList: [
+				hobby: [{
+						text: '足球',
+						value: 0
+					},
 					{
-						name: '鲜甜',
-						disabled: false
+						text: '篮球',
+						value: 1
 					},
 					{
-						name: '麻辣',
-						disabled: false
+						text: '游泳',
+						value: 2
 					}
 				],
-				radio: '',
-				switchVal: false
+				range: ['中国', '美国', '澳大利亚'],
+				show: false,
+				rules: {
+					titleName: {
+						rules: [{
+								required: true,
+								errorMessage: '请输入标题'
+							},
+							{
+								minLength: 1,
+								errorMessage: '标题不得为空'
+							}
+						]
+					},
+					textDetails: {
+						rules: [{
+								required: true,
+								errorMessage: '请输入正文'
+							},
+							{
+								minLength: 10,
+								errorMessage: '正文不得少于 {minLength} 字'
+							}
+						]
+					},
+					weight: {
+						rules: [{
+								format: 'number',
+								errorMessage: '体重必须是数字'
+							},
+							{
+								minimum: 100,
+								maximum: 200,
+								errorMessage: '体重应该大于 {minimum} 斤,小于 {maximum} 斤'
+							}
+						]
+					},
+					birth: {
+						rules: [
+							{
+								required: true,
+								errorMessage: '请选择时间'
+							},
+							{
+								format: 'timestamp',
+								errorMessage: '必须是时间戳'
+							}
+						]
+					},
+					email: {
+						rules: [{
+							format: 'email',
+							errorMessage: '请输入正确的邮箱地址'
+						}]
+					},
+					isGovernment: {
+						rules: [{
+							format: 'bool'
+						}]
+					},
+					isTop: {
+						rules: [{
+							format: 'bool'
+						}]
+					},
+					sex: {
+						rules: [{
+							format: 'string'
+						}]
+					},
+					hobby: {
+						rules: [{
+								format: 'array'
+							},
+							{
+								validateFunction: function(rule, value, data, callback) {
+									if (value.length < 2) {
+										callback('请至少勾选两个兴趣爱好')
+									}
+									return true
+								}
+							}
+						]
+					}
+				}
+			}
+		},
+		methods: {
+			change(name, value) {
+				this.formData.checked = value
+				this.$refs.form.setValue(name, value)
+			},
+ 
+			submitForm(form) {
+				this.$refs[form]
+					.submit()
+					.then(res => {
+						console.log('表单的值:', res)
+						uni.showToast({
+							title: '验证成功'
+						})
+					})
+					.catch(errors => {
+						console.error('验证失败:', errors)
+					})
+			},
+ 
+			//重置表单 。原生的组件input组件不能重置表单
+			resetForm() {
+				this.$refs.form.resetFields()
+			},
+			validateField(form) {
+				this.$refs[form]
+					.validateField(['name', 'email'])
+					.then(res => {
+						uni.showToast({
+							title: '验证成功'
+						})
+						console.log('表单的值:', res)
+					})
+					.catch(errors => {
+						console.error('验证失败:', errors)
+					})
+			},
+			updateImg(imgList){
+				this.imageList = imgList;
+			},
+			clearValidate(form, name) {
+				if (!name) name = []
+				this.$refs[form].clearValidate(name)
 			}
 		}
 	}
 </script>
-
-<style>
+<style lang="scss">
+	.uniForm{
+		.uni-forms-item{
+			margin: auto;
+			.uni-forms-item__content{
+				margin: auto;
+			}
+		}
+	}
+	.radioView{
+		margin: auto;
+		.uni-forms-item__content{
+			margin: auto;
+		}
+	}
+	.uni-input-border {
+		padding: 0 10px;
+		height: 35px;
+		width: 100%;
+		font-size: 14px;
+		color: #666;
+		border: 1px #e5e5e5 solid;
+		border-radius: 5px;
+		box-sizing: border-box;
+	}
 </style>

+ 1 - 0
pages/informationDetail/informationDetail.css

@@ -58,6 +58,7 @@
     line-height: 0;
 }
 .wenzhangCont {
+	width: 100vw;
     font-size: 34rpx;
     margin: 30rpx 0;
 }

+ 3 - 2
pages/informationDetail/informationDetail.vue

@@ -15,7 +15,7 @@
                 <!-- 积分 -->
 <!--                <span class="jf">100</span> -->
             </view>
-            <view class="wenzhangCont">
+            <view class="wenzhangCont article">
                 <span v-html="detailInfo.textDetails">
                 </span>
 			
@@ -89,7 +89,7 @@ export default {
 		console.log('options',options)
 		getServer(options).then(res => {
 			let result = res.data
-			result.textDetails = this.srcExcutedFunc(result.textDetails)
+			// result.textDetails = this.srcExcutedFunc(result.textDetails)
 			this.detailInfo = result
 		})
 	},
@@ -126,6 +126,7 @@ export default {
 </script>
 <style lang="scss">
 @import './informationDetail.css';
+
 .collect{
 	.icon-shoucang:before{
 		color: red;

+ 50 - 17
pages/liveBroadcast/liveBroadcast.css

@@ -48,12 +48,12 @@
 /* 列表 */
 .rnwdList {
     width: 100%;
-    display: flex;
-    justify-content: space-between;
-    margin: 20rpx 0;
+    height: 100%;
 }
 .list {
-    width: 79%;
+    border-bottom: solid 2rpx #f6f6f6;
+    padding: 10rpx 0;
+    width: 100%;
 }
 .lb {
     background: #0d9970;
@@ -71,24 +71,11 @@
     color: #333;
     line-height: 40rpx;
 }
-.jlSj {
-    height: 40rpx;
-    display: flex;
-    justify-content: space-between;
-    font-size: 24rpx;
-    margin: 20rpx 0 0 0;
-}
-.jf {
-    color: #07c160;
-}
 .icon-jifen {
     font-size: 28rpx;
     color: #07c160;
     margin: 0 0 0 6rpx;
 }
-.ck {
-    color: #c4c4c4;
-}
 .icon-pinglun,
 .icon-chakan,
 .icon-shoucang {
@@ -101,3 +88,49 @@
     color: #c4c4c4;
     line-height: 60rpx;
 }
+.onePic {
+    width: 100%;
+    height: 360rpx;
+    border-radius: 20rpx;
+    overflow: hidden;
+    margin: 20rpx 0;
+}
+.onePic image {
+    width: 100%;
+    height: 100%;
+}
+.twoPic {
+    width: 100%;
+    height: 220rpx;
+    margin: 20rpx 0;
+    display: flex;
+    justify-content: space-between;
+}
+.twoPic image {
+    width: 49%;
+    height: auto;
+    border-radius: 20rpx;
+}
+.threePic {
+    width: 100%;
+    height: 160rpx;
+    margin: 20rpx 0;
+    display: flex;
+    justify-content: space-between;
+}
+.threePic image {
+    width: 32%;
+    height: auto;
+    border-radius: 20rpx;
+}
+.jlSj {
+    height: 40rpx;
+    display: flex;
+    justify-content: space-between;
+    font-size: 24rpx;
+    margin: 20rpx 0 0 0;
+}
+.ck {
+    color: #c4c4c4;
+	margin-left:240px;
+}

+ 74 - 50
pages/liveBroadcast/liveBroadcast.vue

@@ -1,81 +1,105 @@
 <template>
 	<!-- 直播带货列表 -->
-	<view>
-		<view class="rnwdList" @tap="goDetails" v-for="(item, index) in dataSource" :key="index">
-			<span class="lb">{{ item.type }}</span>
+	<view class="container">
+		<view class="rnwdList">
+			<view class="list" @tap="goDetails(item.id)" v-for="(item, index1) in dataSource" :key="index1">
+				<span class="listTitle">{{ item.titleName }}</span>
+
+				<view class="onePic" v-if="item.pictureList != null && item.pictureList.length == 1">
+					<image :src="loadImgSrcLocalhost(item2)" v-for="(item2, index2) in item.pictureList" :key="index2">
+					</image>
+				</view>
+				<view class="twoPic" v-if="item.pictureList != null && item.pictureList.length == 2">
+					<image :src="loadImgSrcLocalhost(item2)" v-for="(item2, index2) in item.pictureList" :key="index2">
+					</image>
+				</view>
+				<view class="threePic" v-if="item.pictureList != null && item.pictureList.length == 3">
+					<image :src="loadImgSrcLocalhost(item2)" v-for="(item2, index2) in item.pictureList" :key="index2">
+					</image>
+				</view>
+				<view class="threePic" v-if="item.pictureList != null && item.pictureList.length > 3">
+					<image :src="loadImgSrcLocalhost(item2)" v-for="(item2, index2) in item.pictureList"
+						v-if="index2 < 3" :key="index2"></image>
+				</view>
 
-			<view class="list">
-				<span class="listTitle">{{ item.title }}</span>
 				<view class="jlSj">
-					<span class="jf">
-						{{ item.jf }}
-						<em class="iconfont icon-jifen"></em>
-					</span>
 					<view class="ck">
 						<span>
-							<em class="iconfont icon-pinglun"></em>
-							{{ item.pl }}
-						</span>
-						<span>
 							<em class="iconfont icon-chakan"></em>
-							{{ item.ck }}
+							{{ item.likeNum }}
 						</span>
 						<span>
 							<em class="iconfont icon-shoucang"></em>
-							{{ item.dz }}
+							{{ item.watchNum }}
 						</span>
 					</view>
 				</view>
 			</view>
-
-			<em class="iconfont icon-xiangyoujiantou"></em>
 		</view>
 	</view>
 </template>
 
 <script>
+	import {
+		list
+	} from '@/api/liveBroadcast/liveBroadcast.js';
 	export default {
 		data() {
 			return {
-				dataSource: [{
-						ck: '10',
-						dz: '120',
-						id: 1,
-						jf: '100',
-						pl: '10',
-						title: '探索乡村能源供给新模式',
-						type: '三农'
-					},
-					{
-						ck: '20',
-						dz: '220',
-						id: 2,
-						jf: '200',
-						pl: '20',
-						title: '探索乡村能源供给新模式 美丽新画卷',
-						type: '三农'
-					},
-					{
-						ck: '30',
-						dz: '30',
-						id: 3,
-						jf: '300',
-						pl: '30',
-						title: '探索乡村能源供给新模式 绘就乡村振兴美丽新画卷',
-						type: '三农'
-					}
-				]
+				dataSource: [],
+				// 数据总量
+				total: 0,
+				queryParams: {
+					// 当前页
+					pageNum: 1,
+					// 每页数据量
+					pageSize: 10,
+				},
+				loading: false,
 			}
 		},
 		/**
 		 * 生命周期函数--监听页面加载
 		 */
-		onLoad(options) {},
+		onLoad(options) {
+			this.getList(1)
+		},
+		onReachBottom(){
+			let pageNum = this.queryParams.pageNum
+			let pageSize = this.queryParams.pageSize
+			let total = this.total
+			if(pageNum * pageSize >= total){
+				uni.showToast({
+					title:'暂无更多数据'
+				})
+				return
+			} else {
+				this.queryParams.pageNum += 1;
+				this.getList()
+			}
+		},
 		methods: {
-			goDetails() {
-			    uni.navigateTo({
-			        url: '/pages/liveBroadcastDetails/liveBroadcastDetails'
-			    });
+			goDetails(id) {
+				uni.navigateTo({
+					url: '/pages/liveBroadcastDetails/liveBroadcastDetails?id=' + id,
+				});
+			},
+			// 分页触发
+			change(e) {
+				this.getList(e.current);
+			},
+			// 获取数据
+			getList(pageNum) {
+				let params = {
+					pageSize: this.queryParams.pageSize,
+					pageNum: pageNum,
+				}
+				list(params).then(res => {
+					if (res.code == 200) {
+						this.dataSource = [...this.dataSource,...res.rows]
+						this.total = res.total
+					}
+				})
 			},
 		}
 	}

Файловите разлики са ограничени, защото са твърде много
+ 229 - 239
pages/liveBroadcastDetails/liveBroadcastDetails.vue


+ 0 - 0
pages/matters/matters.css


+ 11 - 0
pages/matters/matters.vue

@@ -0,0 +1,11 @@
+<template>
+	<view class="">
+		我的事项
+	</view>
+</template>
+
+<script>
+</script>
+
+<style>
+</style>

+ 15 - 0
pages/me/me.vue

@@ -38,6 +38,21 @@ export default {
 					id: 'wenba/wenba',
 					name: '我的问答',
 					open: false,
+				},
+				{
+					id: 'me/nameAuthentication',
+					name: '实名认证',
+					open: false,
+				},
+				{
+					id: 'me/officialAuthentication',
+					name: '官方认证',
+					open: false,
+				},
+				{
+					id: 'matters/matters',
+					name: '我的事项',
+					open: false,
 				}
 			]
 		};

+ 0 - 0
pages/me/nameAuthentication.css


+ 82 - 0
pages/me/nameAuthentication.vue

@@ -0,0 +1,82 @@
+<template>
+	<uni-section title="自定义校验规则" type="line">
+			<view class="example">
+				<!-- 自定义表单校验 -->
+				<uni-forms ref="customForm" :rules="customRules" :modelValue="form">
+					<uni-forms-item label="姓名" required name="name">
+						<uni-easyinput v-model="form.name" placeholder="请输入姓名" />
+					</uni-forms-item>
+					<uni-forms-item label="电话" required name="phone">
+						<uni-easyinput v-model="form.phone" placeholder="请输入电话" />
+					</uni-forms-item>
+					<uni-forms-item label="身份证号" required name="idCard">
+						<uni-easyinput v-model="form.idCard" placeholder="请输入身份证号" />
+					</uni-forms-item>
+					<uni-forms-item label="身份证正反面" required name="path">
+						<upload :imgArr="imageList" name="path" v-model="form.path" :fileSize="1" :limit="2" @updateImg="updateImg"></upload>
+					</uni-forms-item>
+				</uni-forms>
+				<button type="primary" @click="submitForm('customForm')">提交</button>
+			</view>
+		</uni-section>
+</template>
+
+<script>
+import upload from '../../components/upload/index.vue'
+import {appletAdd} from '@/api/me/nameAuthentication.js'
+export default {
+	components: {
+		upload
+	},
+	onReady() {
+		// 设置自定义表单校验规则,必须在节点渲染完毕后执行
+		this.$refs.customForm.setRules(this.customRules)
+	},
+	data() {
+		return{
+			form:{
+				
+			},
+			// 表单校验
+			customRules: {
+				name: {
+					rules: [{
+						required: true,
+						errorMessage: '姓名不能为空'
+					}]
+				},
+			},
+			imageList:[]
+		}
+	},
+	methods: {
+	    // 取消按钮
+	    cancel() {
+	      this.open = false;
+	      this.reset();
+	    },
+	    /** 提交按钮 */
+	    submitForm(e) {
+			console.log("11111")
+			this.$refs[e].validate().then(res => {
+				console.log('success', res);
+				uni.showToast({
+				  title: `校验通过`
+				})
+			  }).catch(err => {
+				console.log('err', err);
+			})
+			let path = this.imageList.join(',');
+			console.log(path)
+			this.form.path = path
+			appletAdd(this.form).then(res =>{})
+	    },
+		updateImg(imgList){
+			this.imageList = imgList;
+		}
+	}
+};
+</script>
+
+<style>
+</style>

+ 0 - 0
pages/me/officialAuthentication.css


+ 81 - 0
pages/me/officialAuthentication.vue

@@ -0,0 +1,81 @@
+<template>
+	<uni-section title="自定义校验规则" type="line">
+			<view class="example">
+				<!-- 自定义表单校验 -->
+				<uni-forms ref="customForm" :rules="customRules" :modelValue="form">
+					<uni-forms-item label="企业名称" required name="enterpriseName">
+						<uni-easyinput v-model="form.enterpriseName" placeholder="请输入企业名称" />
+					</uni-forms-item>
+					<uni-forms-item label="法人姓名" required name="legalName">
+						<uni-easyinput v-model="form.legalName" placeholder="请输入法人姓名" />
+					</uni-forms-item>
+					<uni-forms-item label="联系电话" required name="phone">
+						<uni-easyinput v-model="form.phone" placeholder="请输入联系电话" />
+					</uni-forms-item>
+					<uni-forms-item label="证照信息" required name="path">
+						<upload :imgArr="imageList" name="path" v-model="form.path" :fileSize="1" :limit="3" @updateImg="updateImg"></upload>
+					</uni-forms-item>
+				</uni-forms>
+				<button type="primary" @click="submitForm('customForm')">提交</button>
+			</view>
+		</uni-section>
+</template>
+
+<script>
+import upload from '../../components/upload/index.vue'
+import {appletAdd} from '@/api/me/officialAuthentication.js'
+export default {
+	components: {
+		upload
+	},
+	onReady() {
+		// 设置自定义表单校验规则,必须在节点渲染完毕后执行
+		this.$refs.customForm.setRules(this.customRules)
+	},
+	data() {
+		return{
+			form:{
+				
+			},
+			// 表单校验
+			customRules: {
+				name: {
+					rules: [{
+						required: true,
+						errorMessage: '姓名不能为空'
+					}]
+				},
+			},
+			imageList:[]
+		}
+	},
+	methods: {
+	    // 取消按钮
+	    cancel() {
+	      this.open = false;
+	      this.reset();
+	    },
+	    /** 提交按钮 */
+	    submitForm(e) {
+			console.log("11111")
+			this.$refs[e].validate().then(res => {
+				console.log('success', res);
+				uni.showToast({
+				  title: `校验通过`
+				})
+			  }).catch(err => {
+				console.log('err', err);
+			})
+			let path = this.imageList.join(',');
+			this.form.path = path
+			appletAdd(this.form).then(res =>{})
+	    },
+		updateImg(imgList){
+			this.imageList = imgList;
+		}
+	}
+};
+</script>
+
+<style>
+</style>

+ 18 - 32
pages/specialService/loveAtVillage/details.vue

@@ -1,16 +1,13 @@
 <template>
     <view class="container">
-        <!-- 供销社详情 -->
+        <!-- 详情 -->
         <view class="cooperativeImgBox">
             <image :src="loadImgSrc('/snbj.png')" class="cooperativeImg"></image>
         </view>
-        <view class="itemBox" v-for="(item, index) in list" :key="index">
+        <view class="itemBox">
             <view class="item">
                 <span>
-                    {{ item.title }}:
-                </span>
-                <span>
-                    {{ item.content }}
+                    {{ details.textDetails }}
                 </span>
             </view>
         </view>
@@ -18,33 +15,13 @@
 </template>
 
 <script>
+import { listServer, getServer, delServer, addServer, updateServer } from '@/api/highFrequencyService/highFrequencyService';
 export default {
     data() {
         return {
-            list: [
-                {
-                    title: "名称",
-                    content: "第十三号供销社",
-                },
-                {
-                    title: "地址",
-                    content: "十三号街区地下研究所",
-                },
-                {
-                    title: "负责人",
-                    content: "高耀",
-                },
-                {
-                    title: "负责人电话",
-                    content: "13178945612",
-                }
-            ],
-            cooperative: {
-                name:"供销社1",
-                address:"供销社地址1",
-                chargePeople:"负责人1",
-                chargePhone:"13103215236",
-                imgUrl:"/profile/upload/2024/03/01/nacos_20240301145836A002.png"
+            details: {
+                titleName: "-",
+                textDetails: "-",
             }
         }
     }
@@ -52,10 +29,19 @@ export default {
      * 生命周期函数--监听页面加载
      */,
     onLoad(options) {
-        console.log(666)
+        this.getServer(options.id, options.type);
     },
     methods: {
-
+        /** 详情 */
+        getServer(id, type) {
+            getServer(id, type).then(response => {
+                let details = response.data;
+                this.details = details;
+                wx.setNavigationBarTitle({
+                    title: details.titleName
+                })
+            });
+        },
     }
 };
 </script>

+ 19 - 32
pages/specialService/loveAtVillage/loveAtVillage.vue

@@ -1,18 +1,13 @@
 <template>
     <view class="container">
         <!-- 供销社列表 -->
-        <view class="rnwdList" @tap="goDetails" v-for="(item, index) in list" :key="index">
-            <view class="cooperativeImgBox">
-                <image :src="loadImgSrc('/snbj.png')" class="cooperativeImg" @tap="goDetails"></image>
+        <view class="rnwdList" v-for="(item, index) in list" :key="index">
+            <view @tap="goDetails(item.id, item.type)" class="cooperativeImgBox">
+                <image :src="loadImgSrc('/snbj.png')" class="cooperativeImg"></image>
             </view>
-            <view class="cooperativeBox">
+            <view @tap="goDetails(item.id, item.type)" class="cooperativeBox">
                 <view class="list">
-                    <span class="listTitle">{{ item.name }}</span>
-                    <view class="jlSj">
-                        <span class="jf">
-                            {{ item.address }}
-                        </span>
-                    </view>
+                    <span class="listTitle">{{ item.titleName }}</span>
                 </view>
             </view>
             <em class="iconfont icon-xiangyoujiantou"></em>
@@ -21,30 +16,14 @@
 </template>
 
 <script>
+import { listServer, getServer, delServer, addServer, updateServer } from '@/api/highFrequencyService/highFrequencyService';
 export default {
     data() {
         return {
             list: [
                 {
-                    name:"供销社1",
-                    address:"供销社地址1",
-                    chargePeople:"负责人1",
-                    chargePhone:"13103215236",
-                    imgUrl:"/profile/upload/2024/03/01/nacos_20240301145836A002.png"
-                },
-                {
-                    name:"供销社2",
-                    address:"供销社地址2",
-                    chargePeople:"负责人2",
-                    chargePhone:"09876543210",
-                    imgUrl:"/profile/upload/2024/03/01/nacos_20240301145836A002.png"
-                },
-                {
-                    name:"供销社3",
-                    address:"供销社地址3",
-                    chargePeople:"负责人3",
-                    chargePhone:"12345678910",
-                    imgUrl:"/profile/upload/2024/03/01/nacos_20240301145836A002.png"
+                    titleName:"-",
+                    imgUrlList:"-"
                 }
             ],
         };
@@ -53,12 +32,20 @@ export default {
      * 生命周期函数--监听页面加载
      */,
     onLoad(options) {
-
+        this.getList(7);
     },
     methods: {
-        goDetails() {
+        /** 查询列表 */
+        getList(type) {
+            this.loading = true;
+            listServer({type: type}).then(response => {
+                this.list = response.rows;
+            });
+        },
+        /** 查询详情 */
+        goDetails(id, type) {
             uni.navigateTo({
-                url: '/pages/cooperative/details'
+                url: '/pages/specialService/loveAtVillage/details?id='+id+'&type='+type
             });
         }
     }

+ 194 - 0
pages/toGovernmentList/index.css

@@ -0,0 +1,194 @@
+/*
+/* 热门问答 */
+.rnwdList {
+    width: 100%;
+}
+
+.list {
+    border-bottom: solid 2rpx #f6f6f6;
+    padding: 10rpx 0;
+    width: 100%;
+}
+
+.listTitle {
+    font-size: 32rpx;
+    color: #333;
+    line-height: 40rpx;
+}
+
+.jlSj {
+    height: 40rpx;
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    font-size: 24rpx;
+    margin: 20rpx 0 0 0;
+}
+
+.jf {
+    color: #07c160;
+}
+
+.icon-jifen {
+    font-size: 26rpx;
+    color: #07c160;
+    margin: 0 0 0 6rpx;
+}
+
+.ck {
+    color: #c4c4c4;
+}
+
+.icon-pinglun,
+.icon-chakan,
+.icon-shoucang {
+    font-size: 28rpx;
+    margin: 0 6rpx 0 20rpx;
+    color: #c4c4c4;
+}
+
+.onePic {
+    width: 100%;
+    height: 360rpx;
+    border-radius: 20rpx;
+    overflow: hidden;
+    margin: 20rpx 0;
+}
+
+.onePic image {
+    width: 100%;
+    height: 100%;
+}
+.imageContainer {
+  display: flex;
+}
+
+.imageContainer.one-image {
+  justify-content: center;
+  align-items: center;
+}
+
+.imageContainer.two-images {
+  justify-content: space-between;
+}
+
+.imageContainer.three-images {
+  justify-content: space-between;
+}
+
+.imageContainer image {
+  /* 根据需要设置图片样式 */
+}
+.twoPic {
+    width: 100%;
+    height: 220rpx;
+    margin: 20rpx 0;
+    display: flex;
+    justify-content: space-between;
+}
+
+.twoPic image {
+    width: 49%;
+    height: auto;
+    border-radius: 20rpx;
+}
+
+.threePic {
+    width: 100%;
+    height: 160rpx;
+    margin: 20rpx 0;
+    display: flex;
+    justify-content: space-between;
+}
+
+.threePic image {
+    width: 32%;
+    height: auto;
+    border-radius: 20rpx;
+}
+
+/* 热门知识 */
+.rmzsList li {
+    width: 100%;
+    border-bottom: solid 2rpx #f6f6f6;
+    padding: 20rpx 0;
+    display: flex;
+    justify-content: space-between;
+}
+
+.rmzsList li image {
+    width: 40%;
+    height: 200rpx;
+}
+
+.listCont {
+    width: 58%;
+}
+
+.listCont p {
+    font-size: 32rpx;
+    color: #333;
+    overflow: hidden;
+    line-height: 40rpx;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    display: -webkit-box;
+    -webkit-line-clamp: 2;
+    -webkit-box-orient: vertical;
+}
+
+.listCont text {
+    font-size: 24rpx;
+    color: #9c9c9c;
+}
+
+.biaoqian {
+    display: flex;
+    margin: 6rpx 0;
+}
+
+.biaoqian span {
+    padding: 2rpx 20rpx;
+    font-size: 20rpx;
+    background: #e0e0e0;
+    color: #9c9c9c;
+    margin: 0 20rpx 0 0;
+    border-radius: 30rpx;
+}
+
+.jiage {
+    display: flex;
+}
+
+.yhjg {
+    font-size: 30rpx;
+    color: #07c160;
+}
+
+.yhjg em {
+    font-size: 24rpx;
+    color: #07c160;
+}
+
+.yjjg {
+    font-size: 24rpx;
+    color: #9c9c9c;
+    margin: 6rpx 0 0 20rpx;
+    text-decoration: line-through;
+}
+
+/* 公告start */
+
+.swiper_container {
+    height: 55rpx;
+    width: 70%;
+    line-height: 60rpx;
+}
+
+.swiper_item {
+    color: #000;
+    font-size: 28rpx;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+}

+ 64 - 18
pages/toGovernmentList/toGovernmentList.vue

@@ -1,26 +1,72 @@
 <template>
-	<view>
-	  <text>秦厚玉</text>
-	</view>
+        <!-- 分割线 -->
+        <view class="container">
+            <view class="rnwdList">
+                <view class="list" v-for="(item, index) in indexList1" :key="index" @click="toGovernmentList1">
+                    <span class="listTitle">{{ item.titleName }}</span>
+                    <view class="onePic" v-if="item.urls!=null&&item.urls.length > 0" v-for="(url, i) in item.urls">
+                        <image :src="'http://localhost:88/dev-api'+url" :key="i"></image>
+                    </view>
+                    <view class="jlSj">
+                        <span class="jf">
+                            {{ item.createTime }}
+                        </span>
+                        <view class="ck">
+                            <span>
+                                <em class="iconfont icon-chakan"></em>
+                                {{ item.watchNum }}
+                            </span>
+                            <span>
+                                <em class="iconfont icon-shoucang"></em>
+                                {{ item.likeNum }}
+                            </span>
+                        </view>
+                    </view>
+                </view>
+            </view>
+        </view>
 
 </template>
 
 <script>
-	
-	export default {
-		data() {
-			return {
-				
-			};
-		},
-		mount() {
-			
-		},
-		methods: {
-			
+	import {governmentListMore} from '@/api/information/information.js'
+export default {
+    data() {
+        return {
+            indexList1: []
+        };
+    }
+    /**
+     * 生命周期函数--监听页面加载
+     */,
+    onLoad(options) {
+		this.governmentListMores()
+    },
+	mounted() {
+
+	},
+    methods: {
+      toGovernmentList1(){
+        uni.navigateTo({
+          url: '/pages/toGovernmentList/toGovernmentListDetail'
+        });
+      },
+		governmentListMores(){
+			let params = {
+			  pageSize: 10,
+			  pageNum: 1,
+			  type:10,
+			  isGovernment:1
+			  }
+			governmentListMore(params).then(res =>{
+				if (res.code==200) {
+					this.indexList1=res.rows
+				}
+			})
 		}
-	}
+    }
+};
 </script>
 <style scoped>
-	
-</style>
+	@import url("./index.css");
+</style>

+ 160 - 0
pages/toGovernmentList/toGovernmentListDetail.css

@@ -0,0 +1,160 @@
+/* pages/wenbaxiangqing.wxss */
+.title {
+    font-size: 44rpx;
+    text-align: center;
+    line-height: 70rpx;
+    color: #333;
+    margin: 30rpx 0;
+}
+.wenzhangLy {
+    width: 100%;
+    display: flex;
+    justify-content: space-between;
+    border-bottom: solid 2rpx #e8e8e8;
+    padding: 0 0 14rpx 0;
+}
+.txTime {
+    display: flex;
+    flex-direction: row;
+}
+.txTime image {
+    width: 80rpx;
+    height: 80rpx;
+}
+.time {
+    display: flex;
+    flex-direction: column;
+    padding: 10rpx 0 0 8px;
+}
+.time p {
+    font-size: 28rpx;
+    color: #9c9c9c;
+}
+.time span {
+    font-size: 24rpx;
+    color: #c4c4c4;
+}
+
+.jf {
+    color: #07c160;
+    line-height: 80rpx;
+    font-size: 24rpx;
+}
+.icon-jifen {
+    font-size: 28rpx;
+    color: #07c160;
+    margin: 0 0 0 6rpx;
+}
+.ck {
+    color: #c4c4c4;
+    font-size: 28rpx;
+}
+.icon-pinglun,
+.icon-chakan,
+.ck .icon-shoucang {
+    font-size: 28rpx;
+    margin: 0 6rpx 0 20rpx;
+    color: #c4c4c4;
+    line-height: 0;
+}
+.wenzhangCont {
+    font-size: 34rpx;
+    margin: 30rpx 0;
+}
+.wenzhangCont image {
+    width: 100%;
+    height: 320rpx;
+    margin: 20rpx auto;
+}
+.pinglunTj {
+    width: 100%;
+    display: flex;
+    justify-content: space-between;
+    margin: 30rpx 0;
+}
+.pinglunTitle {
+    font-size: 34rpx;
+    color: #2e2e2e;
+    font-weight: 600;
+}
+.pinglunTitle em {
+    font-size: 34rpx;
+    color: #9b9b9b;
+    font-weight: normal;
+    margin: 0 0 0 10rpx;
+}
+.pinglunList {
+    width: 100%;
+    padding: 0 0 120rpx 0;
+}
+.pinglunList li {
+    margin: 20rpx 0;
+    border-bottom: solid 2rpx #e8e8e8;
+    padding: 0 0 20rpx 0;
+    display: flex;
+    flex-direction: column;
+}
+.plListcont {
+    font-size: 30rpx;
+    color: #696868;
+    margin: 20rpx 0;
+}
+.pinglunList li button {
+    width: 80%;
+    border-radius: 10rpx;
+    background: #07c160;
+    color: #fff;
+    font-size: 28rpx;
+    font-weight: normal;
+    margin: 16rpx auto;
+}
+.fabiaoPl {
+    width: 100%;
+    display: flex;
+    justify-content: space-between;
+    position: fixed;
+    left: 0;
+    bottom: 0;
+    height: 112rpx;
+    background: #e8e8e8;
+    box-shadow: 0rpx 0rpx 16rpx #999;
+}
+.shuRu {
+    width: 72%;
+    display: flex;
+    flex-direction: row;
+    height: 76rpx;
+    background: #e0e0e0;
+    border-radius: 60rpx;
+    margin: 20rpx 0 0 20rpx;
+}
+.shuRu input {
+    line-height: 38px;
+    height: 76rpx;
+    font-size: 30rpx;
+    width: 83%;
+}
+.icon-bianji {
+    font-size: 38rpx;
+    line-height: 76rpx;
+    margin: 0 10rpx 0 20rpx;
+    color: #828181;
+}
+.icon-shoucang {
+    font-size: 50rpx;
+    line-height: 112rpx;
+    color: #828181;
+}
+.fasong {
+    width: 58rpx;
+    height: 58rpx;
+    border-radius: 50rpx;
+    background: #07c160;
+    margin: 26rpx 20rpx 0 10rpx;
+    text-align: center;
+    line-height: 58rpx;
+}
+.icon-fasong {
+    font-size: 40rpx;
+    color: #fff;
+}

Файловите разлики са ограничени, защото са твърде много
+ 269 - 0
pages/toGovernmentList/toGovernmentListDetail.vue


+ 204 - 0
pages/toLegal/toLegal.css

@@ -0,0 +1,204 @@
+/* pages/fuwu.wxss */
+/* pages/sannong.wxss */
+.snTab {
+    width: 100%;
+}
+
+.fontColorBox,
+.fontColorBox1 {
+    color: #07c160;
+}
+
+.navBox {
+    /* 顶部tab盒子样式 */
+    width: 100%;
+    height: 108rpx;
+    background: white;
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    justify-content: center;
+}
+/* 最后一个tab标题的样式 */
+
+.titleBox {
+    /* 未选中文字的样式 */
+    color: rgb(168, 170, 175);
+    font-size: 30rpx;
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    width: 32%;
+}
+.lineBox,
+.notLineBox {
+    /* 选中及未选中底线共同样式 */
+    width: 32rpx;
+    height: 8rpx;
+}
+
+.lineBox {
+    /* 选中底线样式 */
+    background: #07c160;
+    margin-top: 16rpx;
+    border-radius: 4rpx;
+}
+
+.notLineBox {
+    /* 未选中底线样式 */
+    background: transparent;
+}
+
+.swiperTtemBox {
+    /* 底部内容样式 */
+    height: 100vh;
+    overflow: scroll;
+    margin: 12rpx 0rpx;
+    background: white;
+    font-size: 28rpx;
+}
+
+/* 热门问答 */
+.rnwdList {
+    width: 100%;
+    height: 100%;
+}
+.list {
+    border-bottom: solid 2rpx #f6f6f6;
+    padding: 10rpx 0;
+    width: 100%;
+}
+.listTitle {
+    font-size: 32rpx;
+    color: #333;
+    line-height: 40rpx;
+}
+.jlSj {
+    height: 40rpx;
+    display: flex;
+    justify-content: space-between;
+    font-size: 24rpx;
+    margin: 20rpx 0 0 0;
+}
+.jf {
+    color: #07c160;
+}
+.icon-jifen {
+    font-size: 28rpx;
+    color: #07c160;
+    margin: 0 0 0 6rpx;
+}
+.ck {
+    color: #c4c4c4;
+}
+.icon-pinglun,
+.icon-chakan,
+.icon-shoucang {
+    font-size: 28rpx;
+    margin: 0 6rpx 0 20rpx;
+    color: #c4c4c4;
+}
+.onePic {
+    width: 100%;
+    height: 360rpx;
+    border-radius: 20rpx;
+    overflow: hidden;
+    margin: 20rpx 0;
+}
+.onePic image {
+    width: 100%;
+    height: 100%;
+}
+.twoPic {
+    width: 100%;
+    height: 220rpx;
+    margin: 20rpx 0;
+    display: flex;
+    justify-content: space-between;
+}
+.twoPic image {
+    width: 49%;
+    height: auto;
+    border-radius: 20rpx;
+}
+.threePic {
+    width: 100%;
+    height: 160rpx;
+    margin: 20rpx 0;
+    display: flex;
+    justify-content: space-between;
+}
+.threePic image {
+    width: 32%;
+    height: auto;
+    border-radius: 20rpx;
+}
+
+.pane-con {
+    margin: 20rpx 0;
+}
+.tabs-pane {
+    padding: 10rpx 20rpx;
+    margin-right: 20rpx;
+    border: 1px solid lightgrey;
+}
+.tabs-pane:nth-last-child(1) {
+    margin-right: 0;
+}
+.tabs-pane.active {
+    background: #5495df;
+    border-color: #5495df;
+    color: #fff;
+}
+
+.tab-class {
+    position: absolute;
+    top: 0;
+    left: 0;
+    width: 100vw;
+    bottom: 0;
+}
+
+.guidebook .img_box {
+    margin-bottom: 12rpx;
+    padding-left: 4rpx;
+}
+.guidebook .img_box .many_img {
+    display: flex;
+    justify-self: start;
+    flex-wrap: wrap;
+}
+.guidebook .img_item.four {
+    width: 198rpx;
+    height: 198rpx;
+    margin-right: 16rpx;
+    margin-bottom: 16rpx;
+    border-radius: 16rpx;
+    overflow: hidden;
+}
+.guidebook .img_item.four:nth-child(2n) {
+    margin-right: 30rpx;
+}
+.guidebook .img_item.many {
+    width: 198rpx;
+    height: 198rpx;
+    margin-right: 16rpx;
+    margin-bottom: 16rpx;
+    border-radius: 16rpx;
+    overflow: hidden;
+}
+.guidebook .img_item.many:nth-child(3n) {
+    margin-right: 0;
+}
+.addInfomarionBtn{
+	position: fixed;
+	bottom: 3%;
+	right: 3%;
+	width: 40px;
+	height: 40px;
+	background: url('@/static/images/upload/add.png') 0 0 no-repeat;
+	background-size: 100% 100%;
+}
+.addInfomarionBtn::after{
+	border: none;
+}

+ 153 - 0
pages/toLegal/toLegal.vue

@@ -0,0 +1,153 @@
+<template>
+    <!-- pages/me.wxml -->
+	<view class="container">
+		<uni-search-bar @confirm="search" :focus="true" v-model="searchValue" @blur="search"  @input="search"
+		style="width: 100%;"
+			@cancel="cancel">
+		</uni-search-bar>
+	    <view class="rnwdList">
+	        <view class="list" @tap="goDetails(item)" v-for="(item, index1) in qbwd" :key="index1">
+	            <span class="listTitle">{{ item.titleName }}</span>
+	
+	            <view class="onePic" v-if="item.urls.length == 1">
+	                <image :src="loadImgSrc(item.urls[index2])" v-for="(v, index2) in item.urls" :key="index2">
+					</image>
+	            </view>
+	            <view class="twoPic" v-if="item.urls.length == 2">
+	                <image :src="loadImgSrc(item.urls[index2])" v-for="(v, index2) in item.urls" :key="index2">
+					</image>
+	            </view>
+	
+	            <view class="threePic" v-if="item.urls.length == 3">
+	                <image :src="loadImgSrc(item.urls[index2])" v-for="(v, index2) in item.urls" :key="index2">
+					</image>
+	            </view>
+	
+	           <!-- <view class="jlSj">
+	                <span class="jf">
+	                    {{ item.jf }}
+	                    <em class="iconfont icon-jifen"></em>
+	                </span>
+	                <view class="ck">
+	                    <span>
+	                        <em class="iconfont icon-pinglun"></em>
+	                        {{ item.pl }}
+	                    </span>
+	                    <span>
+	                        <em class="iconfont icon-chakan"></em>
+	                        {{ item.ck }}
+	                    </span>
+	                    <span>
+	                        <em class="iconfont icon-shoucang"></em>
+	                        {{ item.dz }}
+	                    </span>
+	                </view>
+	            </view> -->
+	
+			</view>
+	    </view>
+		<!-- 新增资讯按钮 -->
+		<!-- <button class="addInfomarionBtn" @click="addInfomation()"></button> -->
+	</view>
+</template>
+
+<script>
+import { listWxs ,listWx} from '@/api/information/information.js'
+// pages/me.js
+export default {
+    data() {
+        return {
+			qbwd:[],
+			listParams:{
+			  pageNum: 1,
+			  pageSize: 7,
+			  titleName: '',
+			  type: 11,
+			  flag:''
+			},
+			total:0,
+			searchValue:''
+		};
+    },
+	created(){
+		this.getList()
+		// 查置顶
+		listWx({}).then(e => {
+		})
+	},
+	onReachBottom(){
+		let pageNum = this.listParams.pageNum
+		let pageSize = this.listParams.pageSize
+		let total = this.total
+		if(pageNum * pageSize >= total){
+			uni.showToast({
+				title:'暂无更多数据'
+			})
+			return
+		} else {
+			this.listParams.pageNum += 1;
+			this.getList()
+		}
+	},
+	methods:{
+		search(){
+			this.listParams.titleName = this.searchValue
+			this.qbwd = []
+			this.getList()
+		},
+		getList(){
+			listWxs(this.listParams).then(res => {
+				this.qbwd = [...this.qbwd,...res.rows]
+				this.total = res.total
+			})
+		},
+		goDetails(e) {
+			let id = e.id || ''
+			let type = 11
+		    uni.navigateTo({
+		        url: `../informationDetail/informationDetail?id=${id}&type=${type}`
+		    });
+		},
+		// 新增资讯
+		addInfomation(){
+			uni.navigateTo({
+			    url: `../informationAdd/informationAdd`
+			});
+		}
+	},
+    /**
+     * 生命周期函数--监听页面加载
+     */
+    onLoad(options) {},
+    /**
+     * 生命周期函数--监听页面初次渲染完成
+     */
+    onReady() {},
+    /**
+     * 生命周期函数--监听页面显示
+     */
+    onShow() {},
+    /**
+     * 生命周期函数--监听页面隐藏
+     */
+    onHide() {},
+    /**
+     * 生命周期函数--监听页面卸载
+     */
+    onUnload() {},
+    /**
+     * 页面相关事件处理函数--监听用户下拉动作
+     */
+    onPullDownRefresh() {},
+    /**
+     * 用户点击右上角分享
+     */
+    onShareAppMessage() {},
+};
+</script>
+<style>
+@import './toLegal.css';
+.container{
+	height: 100%;
+}
+</style>

+ 3 - 1
static/scss/colorui.css

@@ -102,7 +102,9 @@ checkbox .uni-checkbox-input {
 	width: 24px;
 	height: 24px;
 }
-
+.article [src]{
+    max-width: 100%;
+}
 checkbox.round .wx-checkbox-input,
 checkbox.round .uni-checkbox-input {
 	border-radius: 100upx;