Explorar o código

资讯列表 详情 新增

付宇航 hai 1 ano
pai
achega
c9aec1f72a

+ 62 - 0
api/information/information.js

@@ -7,4 +7,66 @@ export function governmentListData(query) {
     method: 'get',
 	params:query
   })
+}
+
+
+//资讯前三条置顶uniapp
+//{
+// 			  pageSize: 10,
+// 			  pageNum: 1,
+// 			  type:10,
+// 			  }
+export function listWx(query) {
+  return request({
+    url: '/jnb/information/listWx',
+    method: 'get',
+    params: query
+  })
+}
+//查询资讯列表uniapp
+//{
+// 			  pageSize: ,
+// 			  pageNum: ,
+// 			  type:,
+// 			  }
+export function listWxs(query) {
+  return request({
+    url: '/jnb/information/listWxs',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询资讯详细
+export function getServer(e) {
+  return request({
+    url: '/jnb/information/uniApp/' + e.id + '/' + e.type,
+    method: 'get'
+  })
+}
+
+// 新增资讯
+export function addServer(data) {
+  return request({
+    url: '/jnb/information/uniApp',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改资讯
+export function updateServer(data) {
+  return request({
+    url: '/jnb/information',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除资讯
+export function delServer(ids,type) {
+  return request({
+    url: '/jnb/information/' + ids + '/' + type,
+    method: 'delete'
+  })
 }

+ 19 - 0
pages.json

@@ -48,6 +48,7 @@
 			"path": "pages/fuwu/fuwu",
 			"style": {
 				"usingComponents": {},
+				"onReachBottomDistance": 5,
 				"navigationBarBackgroundColor": "#07c160",
 				"navigationBarTextStyle": "white",
 				"navigationBarTitleText": "资讯"
@@ -84,6 +85,24 @@
 			}
 		},
 		{
+			"path": "pages/informationAdd/informationAdd",
+			"style": {
+				"usingComponents": {},
+				"navigationBarBackgroundColor": "#07c160",
+				"navigationBarTextStyle": "white",
+				"navigationBarTitleText": "资讯新增"
+			}
+		},
+		{
+			"path": "pages/informationDetail/informationDetail",
+			"style": {
+				"usingComponents": {},
+				"navigationBarBackgroundColor": "#07c160",
+				"navigationBarTextStyle": "white",
+				"navigationBarTitleText": "资讯详情"
+			}
+		},
+		{
 			"path": "pages/shangcheng/shangcheng",
 			"style": {
 				"usingComponents": {},

+ 203 - 0
pages/fuwu/fuwu.css

@@ -1 +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;
+}

+ 103 - 8
pages/fuwu/fuwu.vue

@@ -1,16 +1,113 @@
 <template>
     <!-- pages/me.wxml -->
+	<view class="container">
+	    <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 {};
-    }
+        return {
+			qbwd:[],
+			listParams:{
+			  pageNum: 1,
+			  pageSize: 7,
+			  titleName: '',
+			  type: 12,
+			  flag:''
+			},
+			total:0,
+		};
+    },
+	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:{
+		getList(){
+			listWxs(this.listParams).then(res => {
+				this.qbwd = [...this.qbwd,...res.rows]
+				this.total = res.total
+			})
+		},
+		goDetails(e) {
+			let id = e.id || ''
+			let type = 12
+		    uni.navigateTo({
+		        url: `../informationDetail/informationDetail?id=${id}&type=${type}`
+		    });
+		},
+		// 新增资讯
+		addInfomation(){
+			uni.navigateTo({
+			    url: `../informationAdd/informationAdd`
+			});
+		}
+	},
     /**
      * 生命周期函数--监听页面加载
-     */,
+     */
     onLoad(options) {},
     /**
      * 生命周期函数--监听页面初次渲染完成
@@ -33,16 +130,14 @@ export default {
      */
     onPullDownRefresh() {},
     /**
-     * 页面上拉触底事件的处理函数
-     */
-    onReachBottom() {},
-    /**
      * 用户点击右上角分享
      */
     onShareAppMessage() {},
-    methods: {}
 };
 </script>
 <style>
 @import './fuwu.css';
+.container{
+	height: 100%;
+}
 </style>

+ 4 - 0
pages/informationAdd/informationAdd.css

@@ -0,0 +1,4 @@
+.container{
+	width: 100%;
+	height: 100%;
+}

+ 59 - 0
pages/informationAdd/informationAdd.vue

@@ -0,0 +1,59 @@
+/*
+ *@description: 新增资讯
+ *@author: yh Fu
+ *@date: 2024-03-04 14:45:49
+ *@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>
+</template>
+
+<script>
+	export default {
+		data(){
+			return {
+				form: {
+					titleName: '',
+					intro: '',
+					sex: ''
+				},
+				checkboxList: [
+					{
+						name: '苹果',
+						checked: false,
+						disabled: false
+					},
+					{
+						name: '雪梨',
+						checked: false,
+						disabled: false
+					},
+					{
+						name: '柠檬',
+						checked: false,
+						disabled: false
+					}
+				],
+				radioList: [
+					{
+						name: '鲜甜',
+						disabled: false
+					},
+					{
+						name: '麻辣',
+						disabled: false
+					}
+				],
+				radio: '',
+				switchVal: false
+			}
+		}
+	}
+</script>
+
+<style>
+</style>

+ 160 - 0
pages/informationDetail/informationDetail.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;
+}

+ 247 - 0
pages/informationDetail/informationDetail.vue

@@ -0,0 +1,247 @@
+<template>
+    <view>
+        <!-- pages/me.wxml -->
+        <view class="container">
+            <h1 class="title">{{ detailInfo.titleName }}</h1>
+            <view class="wenzhangLy">
+                <!-- 头像昵称 -->
+                <view class="txTime">
+                    <image :src="loadImgSrc('/moren.png')"></image>
+                    <view class="time">
+                        <p>国家乡村振兴局</p>
+                        <span>{{ detailInfo.createTime }}</span>
+                    </view>
+                </view>
+                <!-- 积分 -->
+<!--                <span class="jf">100</span> -->
+            </view>
+            <view class="wenzhangCont">
+                <span v-html="detailInfo.textDetails">
+                </span>
+			
+                <!-- <image :src="loadImgSrc('/img2.png')"></image> -->
+            </view>
+        </view>
+	</view>
+</template>
+
+<script>
+import { getServer } from '@/api/information/information.js'
+// pages/me.js
+export default {
+    data() {
+        return {
+			anwserVal:'',
+			anwserList:[
+				{
+					deptName:'国家乡村振兴局',
+					updateTime:'2023-2-27 16:04',
+					desc:'用好政策效果评估成果,进一步优化巩固拓展脱贫攻坚成果同乡村振兴有效衔接政策供给,为推动工作提质增效提供有力支撑保障。',					
+				}
+			],
+			isCollection:false,
+			isAdopt:false,
+			adoptTopSize:'115',
+			adoptIndex:null,
+			detailInfo:{},
+        };
+    },
+	methods: {
+		// 评论回答
+		answerFunc(){
+			this.anwserList.push({
+				deptName:'国家烟草局',
+				updateTime:new Date().getFullYear() + "-" + new Date().getMonth() + "-" + new Date().getDay() + " " + (new Date().getHours() < 10 ? "0" + new Date().getHours() : new Date().getHours()) + ':' + (new Date().getMinutes() < 10 ? "0" + new Date().getMinutes() : new Date().getMinutes()),
+				desc:this.anwserVal,		
+			})
+			this.anwserVal = null
+		},
+		adoptFunc(idx){
+			this.adoptIndex = idx
+			this.isAdopt = true
+		},
+		// 标记喜欢
+		collectionFunc(){
+			this.isCollection = !this.isCollection
+		},
+		// 加工图片路径
+		srcExcutedFunc(html){
+			let newReg = /(?<=(src="))[^"]*?(?=")/ig;
+			let newHtml = html
+			var allSrc = html.match(newReg);
+			try{
+				if(allSrc.length != 0){
+					allSrc.forEach(e => {
+						newHtml = newHtml.replace(e,this.loadImgSrc(e))
+					})
+				} 
+			}catch(e){
+				//TODO handle the exception
+			}
+			
+			return newHtml
+		}
+	}
+    /**
+     * 生命周期函数--监听页面加载
+     */,
+    onLoad(options) {
+		console.log('options',options)
+		getServer(options).then(res => {
+			let result = res.data
+			result.textDetails = this.srcExcutedFunc(result.textDetails)
+			this.detailInfo = result
+		})
+	},
+    /**
+     * 生命周期函数--监听页面初次渲染完成
+     */
+    onReady(e) {  
+	}, 
+    /**
+     * 生命周期函数--监听页面显示
+     */
+    onShow() {},
+    /**
+     * 生命周期函数--监听页面隐藏
+     */
+    onHide() {},
+    /**
+     * 生命周期函数--监听页面卸载
+     */
+    onUnload() {},
+    /**
+     * 页面相关事件处理函数--监听用户下拉动作
+     */
+    onPullDownRefresh() {},
+    /**
+     * 页面上拉触底事件的处理函数
+     */
+    onReachBottom() {},
+    /**
+     * 用户点击右上角分享
+     */
+    onShareAppMessage() {},
+};
+</script>
+<style lang="scss">
+@import './informationDetail.css';
+.collect{
+	.icon-shoucang:before{
+		color: red;
+	}
+}
+.not-collect{
+	
+}
+.effectBix{
+	width: 56px;
+	height: 56px;
+	border-radius: 50px;
+	font-family: 'Bebas Neue', cursive;
+	background: linear-gradient(45deg, transparent 5%, #FF013C 5%);
+	border: 0;
+	color: #fff;
+	text-align: center;
+	line-height: 56px;
+	outline: transparent;
+	position: absolute;
+	transform: rotate(-30deg);
+	right:3%;
+	top: -5%;
+}
+
+.effectBox, .effectBox::after {
+  width: 56px;
+  height: 56px;
+  border-radius: 50px;
+  font-size: 16px;
+  font-family: 'Bebas Neue', cursive;
+  background: linear-gradient(45deg, transparent 5%, #FF013C 5%);
+  border: 0;
+  color: #fff;
+  opacity: 1;
+  letter-spacing: 3px;
+  text-align: center;
+  line-height: 56px;
+  outline: transparent;
+  position: relative;
+  left: 78%;
+  top: 113%;
+  transform: rotate(-30deg);
+  z-index: 1;
+}
+
+.effectBox::after {
+  --slice-0: inset(50% 50% 50% 50%);
+  --slice-1: inset(80% -6px 0 0);
+  --slice-2: inset(50% -6px 30% 0);
+  --slice-3: inset(10% -6px 85% 0);
+  --slice-4: inset(40% -6px 43% 0);
+  --slice-5: inset(80% -6px 5% 0);
+  
+  content: 'AVAILABLE NOW';
+  display: block;
+  position: absolute;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  background: linear-gradient(45deg, transparent 3%, #00E6F6 3%, #00E6F6 5%, #FF013C 5%);
+  text-shadow: -3px -3px 0px #F8F005, 3px 3px 0px #00E6F6;
+  clip-path: var(--slice-0);
+}
+
+.effectBox:hover::after {
+  animation: 1s glitch;
+  animation-timing-function: steps(2, end);
+}
+
+@keyframes glitch {
+  0% {
+    clip-path: var(--slice-1);
+    transform: translate(-20px, -10px);
+  }
+  10% {
+    clip-path: var(--slice-3);
+    transform: translate(10px, 10px);
+  }
+  20% {
+    clip-path: var(--slice-1);
+    transform: translate(-10px, 10px);
+  }
+  30% {
+    clip-path: var(--slice-3);
+    transform: translate(0px, 5px);
+  }
+  40% {
+    clip-path: var(--slice-2);
+    transform: translate(-5px, 0px);
+  }
+  50% {
+    clip-path: var(--slice-3);
+    transform: translate(5px, 0px);
+  }
+  60% {
+    clip-path: var(--slice-4);
+    transform: translate(5px, 10px);
+  }
+  70% {
+    clip-path: var(--slice-2);
+    transform: translate(-10px, 10px);
+  }
+  80% {
+    clip-path: var(--slice-5);
+    transform: translate(20px, -10px);
+  }
+  90% {
+    clip-path: var(--slice-1);
+    transform: translate(-10px, 0px);
+  }
+  100% {
+    clip-path: var(--slice-1);
+    transform: translate(0);
+  }
+}
+
+</style>

+ 1 - 1
pages/sannong/sannong.vue

@@ -197,7 +197,7 @@ export default {
 
         goDetails() {
             uni.navigateTo({
-                url: '../wenbaxiangqing/wenbaxiangqing'
+                url: '../informationDetail/informationDetail'
             });
         }
     }

BIN=BIN
static/images/upload/add.png