From 242945e6e4708a2ae6ac896ba62241fffe456dac Mon Sep 17 00:00:00 2001
From: zhouwenxuan <1175765986@qq.com>
Date: 星期二, 01 八月 2023 15:23:02 +0800
Subject: [PATCH] 响应反馈

---
 pages/tabBar/notice/measures.vue           |   85 ++++++++++---
 pages/tabBar/current/current.vue           |   55 ++++----
 pages/tabBar/notice/detail.vue             |   55 +++++++-
 pages/tabBar/notice/notice.vue             |    3 
 pages/tabBar/responsivity/showMeasures.vue |  101 +++-------------
 pages/tabBar/weather/weather.vue           |    2 
 api/notice.js                              |   40 ++++++
 pages/index/index.vue                      |    1 
 pages/tabBar/examine/examine.vue           |    2 
 pages/tabBar/response/response.vue         |    2 
 10 files changed, 203 insertions(+), 143 deletions(-)

diff --git a/api/notice.js b/api/notice.js
index 1731239..3bcdf38 100644
--- a/api/notice.js
+++ b/api/notice.js
@@ -22,3 +22,43 @@
 		data
 	})
 }
+
+export function measureList(data) {
+  return service({
+		url: '/response/measure/page',
+		method: 'POST',
+		data
+	})
+}
+
+export function submitMeasures(data) {
+  return service({
+		url: '/app/warninfo/responseMeasure/submit',
+		method: 'POST',
+		data
+	})
+}
+
+export function getPublished(data) {
+  return service({
+		url: '/app/warninfo/published/Page',
+		method: 'POST',
+		data
+	})
+}
+
+export function getMeasureDetail(data) {
+  return service({
+		url: '/app/warninfo/responseMeasure/get',
+		method: 'POST',
+		data
+	})
+}
+
+export function getResponseDetail(data) {
+  return service({
+		url: '/app/warninfo/responses/page',
+		method: 'POST',
+		data
+	})
+}
\ No newline at end of file
diff --git a/pages/index/index.vue b/pages/index/index.vue
index 302c190..f5ae232 100644
--- a/pages/index/index.vue
+++ b/pages/index/index.vue
@@ -64,6 +64,7 @@
 						uni.setStorageSync("tk", res.data.tk);
 						uni.setStorageSync("uid",res.data.uid);
 						uni.setStorageSync('user', res.data);
+						uni.setStorageSync('unittype',res.data.unittype);
 						uni.setStorageSync('roleName', res.data.role.roleName);
 						if(res.data.role.roleName == '工作人员'){
 							this.$store.commit('setRoleId', 'user_other');
diff --git a/pages/tabBar/current/current.vue b/pages/tabBar/current/current.vue
index e0f559d..9ad74a3 100644
--- a/pages/tabBar/current/current.vue
+++ b/pages/tabBar/current/current.vue
@@ -74,7 +74,7 @@
 
 <script>
 	import tabBar from '../tabBarIndex.vue'
-	import {getExamine} from '../../../api/examine.js'
+	import { getPublished } from '../../../api/notice.js'
 	import tebBar from '../tabBarIndex.vue'
 	export default {
 		components:{
@@ -84,11 +84,10 @@
 			return {
 				data: {
 					pageIndex: 1,
-					pageSize: 10,
+					pageSize: 10000000,
 					searchParams: {
 						emergType: null,//1-紧急;2-常规
 						warningLevel: null,//1-红色预警;2-橙色预警;3-黄色预警;4-蓝色预警
-						reviewStatus: null//1:未审核,2:已审核,3:审核已驳回	
 					}
 				},
 				page: 'pages/tabBar/current/current',
@@ -115,9 +114,12 @@
 				],
 				selectedSaleAnalysis: 'all',
 				InfoList: [],
+				unitType: '',
 			}
 		},
 		onLoad() {
+			this.unitType = uni.getStorageSync('unittype');
+			console.log("11",this.unitType)
 			//获取手机状态栏高度
 			this.statusBarHeight = uni.getSystemInfoSync()['statusBarHeight'];
 			uni.hideTabBar();
@@ -135,30 +137,17 @@
 			getInfoList() {
 				this.data.searchParams.emergType = this.checked ? 1 : null;
 				this.data.searchParams.warningLevel = this.selectedSaleAnalysis == 'all' ? null : this.selectedSaleAnalysis =='red' ? 1 : this.selectedSaleAnalysis =='orange' ? 2: this.selectedSaleAnalysis =='yellow'? 3 : 4;
-				// getExamine(this.data).then(res => {
-				// 	if(res.code == 100) {
-						this.InfoList = [
-							{
-								attachment: null,
-								disasterType: 1,
-								gmtReviewSubmit: "2023-07-21 14:36:16",
-								id: 111,
-								infoSubmitter: "1-1",
-								infoSubmitterReal: "省级工作人员",
-								publishingUnit: "自治区自然灾害综合检测预警中心",
-								reviewStatus: 1,
-								title: "【20230721】预警信息标题",
-								warningLevel: 1,
-							}
-						];
-						if(this.InfoList.length > 0) {
+				getPublished(this.data).then(res => {
+					if(res.code == 100) {
+						this.InfoList = res.data
+						if(this.InfoList && this.InfoList.length > 0) {
 							this.InfoList.forEach((item, index) => {
 								this.InfoList[index].colorContent = item.warningLevel == 1 ? '红色预警': item.warningLevel == 2 ? '橙色预警': item.warningLevel == 3 ? '黄色预警':'蓝色预警'; 
 								this.InfoList[index].warningLevel = item.warningLevel;
 							});
 						}
-				// 	}
-				// })
+					}
+				})
 			},
 			handleButtonClick(button) {
 				this.selectedSaleAnalysis = button.label;
@@ -171,12 +160,22 @@
 				})
 			},
 			toResponsivity(item) {
-				//县
-				uni.navigateTo({
-				  url: `/pages/tabBar/responsivity/countyResponsivity?data=` + encodeURIComponent(JSON.stringify(item))
-				})
-				//市
-				//村
+				console.log("item",item)
+				
+				// if(this.unitType == 2 || this.unitType == 1 ){
+				// 	uni.navigateTo({
+				// 	  url: `/pages/tabBar/responsivity/countyResponsivity?data=` + encodeURIComponent(JSON.stringify(item))
+				// 	})
+				// }else if(this.unitType == 3){
+				// 	uni.navigateTo({
+				// 	  url: `/pages/tabBar/responsivity/cityResponsivity?data=` + encodeURIComponent(JSON.stringify(item))
+				// 	})
+				// }else if(this.unitType == 4){
+				// 	uni.navigateTo({
+				// 	  url: `/pages/tabBar/responsivity/villageResponsivity?data=` + encodeURIComponent(JSON.stringify(item))
+				// 	})
+				// }
+
 			},
 			//下拉刷新
 			onPullDownRefresh() {
diff --git a/pages/tabBar/examine/examine.vue b/pages/tabBar/examine/examine.vue
index c23c6e1..90c1acd 100644
--- a/pages/tabBar/examine/examine.vue
+++ b/pages/tabBar/examine/examine.vue
@@ -86,7 +86,7 @@
 			return {
 				data: {
 					pageIndex: 1,
-					pageSize: 10,
+					pageSize: 999999999,
 					searchParams: {
 						emergType: null,//1-紧急;2-常规
 						warningLevel: null,//1-红色预警;2-橙色预警;3-黄色预警;4-蓝色预警
diff --git a/pages/tabBar/notice/detail.vue b/pages/tabBar/notice/detail.vue
index 5be604a..28aee18 100644
--- a/pages/tabBar/notice/detail.vue
+++ b/pages/tabBar/notice/detail.vue
@@ -25,11 +25,19 @@
 					border-color="white">
 				</u-tag>
 			</view>
-			<text class="textTop"><b>发布单位:</b>{{detailData.publishingUnit}}</text>
+			<text class="textTop" v-if="detailData.forwardPath" style="display: flex;"><b>发布单位:</b>
+				<text v-for="(item,index) in detailData.forwardPath">
+					<text v-if="index !=detailData.forwardPath.length-1">
+						{{item}}>
+					</text>
+					<text v-else>{{item}}</text>
+				</text>
+			</text>
+			<text class="textTop" v-else><b>发布单位:</b>{{detailData.publishingUnit}}</text>
 			<text class="textTop"><b>短信内容:</b><i style="background-color: rgb(240, 248, 255);">{{detailData.content}}发布单位:{{detailData.publishingUnit}}</i></text>
 			<view style="display: flex;">
 				<text class="textTop" style="width: 76px;" ><b>附件内容:</b></text>
-				<!-- <view class="attache" v-if="isAllImg == 'no'">
+				<view class="attache" v-if="isAllImg == 'no'">
 					<view v-for="(item, index) in detailData.attachments" :key="index" >
 							<view  style="display: flex;margin-top: 10px;" v-if="item.suffix == 'jpg'|| item.suffix =='jpeg' || item.suffix =='png'"> 
 								<image  @click="previewSqs(item,index)" :src="item.attachment" style="width: 100rpx; height: 100rpx;margin-left: 5rpx;border: 3px solid #ccc;margin-right: 3px;"></image>
@@ -49,7 +57,7 @@
 								<u-icon name="attach" color="#2979ff" size="20"></u-icon> {{item.attachementName}}
 							</view>
 					</view>
-				</view> -->
+				</view>
 				
 <!-- 				<view style="width: 100%; height: 100px;">
 					<iframe :src="" width="100%" height="100%"> </iframe>
@@ -102,8 +110,8 @@
 			</view>
 		<!-- 	//村级显示 -->
 		</view>
-		<view class="measures">
-			<u-button class="resBtn" type="primary" @click="goMeasures">响应措施反馈</u-button>
+		<view class="measures" v-if="unitType == 4">
+			<u-button class="resBtn" type="primary" @click="goMeasures" v-if="role == '工作人员'">响应措施反馈</u-button>
 		</view>
 	</view>
 </template>
@@ -112,6 +120,7 @@
 	import VUE_APP_BASE_URL from '../../../common/constant.js'
 	import { submit } from '../../../api/examine.js'
 	import { publishInfo } from '../../../api/information.js'
+	import { getMeasureDetail } from '../../../api/notice.js'
 	export default {
 		data() {
 			return {
@@ -133,15 +142,29 @@
 				submitData: {
 					id: null,
 					reviewStatus: null
-				}
+				},
+				role: '',
+				unitType: ''
 			}
 		},
 		 onLoad:function(options){
+			this.role = uni.getStorageSync('roleName');
 			 //获取手机状态栏高度
 			this.statusBarHeight = uni.getSystemInfoSync()['statusBarHeight'];
 		    let test = options.data && JSON.parse(decodeURIComponent(options.data));
 			this.detailData = test;
-			
+			// if(this.detailData.forwardPath){
+			// 	this.detailData.publishingUnit = this.detailData.forwardPath.map((item,index) => {
+			// 		if(index ==  this.detailData.forwardPath.length){
+			// 			return item 
+			// 		}else {
+			// 			return item + '>'
+			// 		}
+					
+			// 	})
+			// }
+			this.unitType = uni.getStorageSync('unittype');
+			console.log("this.unitType",this.unitType);
 			if(this.detailData.role == 'leader' || this.detailData.role == 'infoPeople' ) {
 				this.detailData.attachments = this.detailData.attachment;
 				if (this.detailData.attachments){
@@ -176,9 +199,23 @@
 				});
 			},
 			goMeasures() {
-				uni.navigateTo({
-				  url: `/pages/tabBar/notice/measures?data=` + encodeURIComponent("2")
+				getMeasureDetail({id: this.detailData.id}).then(res => {
+					if(res.code == 100){
+						if(res.data.id){
+							console.log('111111')
+							uni.navigateTo({
+							  url: `/pages/tabBar/responsivity/showMeasures?data=` + encodeURIComponent(JSON.stringify(res.data))
+							})
+						}else {
+							uni.navigateTo({
+							  url: `/pages/tabBar/notice/measures?data=` + encodeURIComponent(JSON.stringify(this.detailData))
+							})
+						}
+					}
 				})
+				
+				
+
 			},
 			//审核通过
 			approved() {
diff --git a/pages/tabBar/notice/measures.vue b/pages/tabBar/notice/measures.vue
index b83563c..0a6832b 100644
--- a/pages/tabBar/notice/measures.vue
+++ b/pages/tabBar/notice/measures.vue
@@ -22,8 +22,8 @@
 				                :customStyle="{marginBottom: '8px'}"
 				                v-for="(item, index) in list"
 				                :key="index"
-				                :label="item.name"
-				                :name="item.name"
+				                :label="item.measure"
+				                :name="item.id"
 				            >
 				            </u-checkbox>
 				        </u-checkbox-group>
@@ -43,18 +43,19 @@
 						:maxCount="10"
 						style="margin-top: -10px;"
 					></u-upload>
-					<view class="pic" v-for="item in nameList" :key="index">
+					<view class="pic" v-for="(item,index) in nameList" :key="index">
 						{{item.name}}
 					</view>
 			</view>
 		</view>
 		<view class="measures">
-		<u-button class="measureBtn" type="success">提交</u-button>
+		<u-button  class="measureBtn" type="primary" @click="submit">提交</u-button>
 		</view>
 	</view>
 </template>
 
 <script>
+	import { measureList, submitMeasures, getMeasureDetail } from '@/api/notice.js'
 	export default {
 		components:{
 			
@@ -64,34 +65,46 @@
 				statusBarHeight: [],
 				fileList1: [],
 				nameList: [],
-				checkboxValue1: '',
+				checkboxValue1: [],
 				measures: "",
 				type: 'textarea',
 				border: true,
 				height: 100,
 				autoHeight: true,
-				list: [
-					{
-						name: '苹果',
-						disabled: false
-					},
-					{
-						name: '香蕉',
-						disabled: false
-					},
-					{
-						name: '橙子',
-						disabled: false
-					}
-				]
+				detailData : {},
+				measureIds : [],
+				baseUrl: '',
+				list: [],
+				showBtn: false
 			}
 		},
-		onLoad() {
+		onLoad(options) {
+			let test = options.data && JSON.parse(decodeURIComponent(options.data));
+			console.log("test",test)
+			this.detailData = test;
 			//获取手机状态栏高度
 			this.statusBarHeight = uni.getSystemInfoSync()['statusBarHeight'];
 			uni.hideTabBar();
+			this.getMeasureList();
+			console.log("huan",process.env.NODE_ENV)
+			if (process.env.NODE_ENV == 'development') {
+				this.baseUrl = 'http://192.168.0.41:8086'
+			}else {
+				this.baseUrl = 'http://121.239.169.30:13001'
+			}
 		},
 		methods: {
+			getMeasureList() {
+				const param = {
+					pageIndex: 1,
+					pageSize: 10000000,
+				}
+				measureList(param).then(res => {
+					if(res.code == 100){
+						this.list = res.data;
+					}
+				}).catch(err=>{})
+			},
 			goBack() {
 				uni.navigateBack({
 				    url:'./detail/detail'
@@ -99,7 +112,28 @@
 			},
 			
 			checkboxChange(n) {
-				console.log('change', n);
+				 let finalArr = this.list.filter(item => !(n.indexOf(item.id) < 0));
+				this.measureIds = finalArr.map((item) => {
+				  return {id: item.id, baseMeasureContent: item.measure};
+				});
+				console.log('change', this.measureIds);
+			},
+			submit() {
+				const param = {
+					id: this.detailData.id,
+					baseMeasures: this.measureIds,
+					responseMeasure: this.measures
+				}
+				submitMeasures(param).then(res => {
+					if(res.code == 100){
+						uni.showToast({
+							icon: "none",
+							title: '提交成功'
+						});
+						this.goBack();
+					}
+				})
+				
 			},
 			// 删除图片
 			deletePic(event) {
@@ -136,11 +170,16 @@
 			uploadFilePromise(url) {
 				return new Promise((resolve, reject) => {
 					let a = uni.uploadFile({
-						url: 'http://www.example.com', // 仅为示例,非真实的接口地址
+						url: this.baseUrl + '/attachment/uploadMeasureImage/key',
 						filePath: url,
 						name: 'file',
+						header: {
+							'tk':uni.getStorageSync('tk'),
+							'uid': uni.getStorageSync('uid')
+						},
 						formData: {
-							user: 'test'
+							id: this.detailData.id,
+							module: 'naturalDisasterPath'
 						},
 						success: (res) => {
 							setTimeout(() => {
diff --git a/pages/tabBar/notice/notice.vue b/pages/tabBar/notice/notice.vue
index 0114ab8..9f64fa3 100644
--- a/pages/tabBar/notice/notice.vue
+++ b/pages/tabBar/notice/notice.vue
@@ -182,6 +182,7 @@
 							});
 						}
 					}
+				}).catch(err=>{
 				})
 			},
 			handleButtonClick(button) {
@@ -237,7 +238,7 @@
 			},
 			clickSwitch(e) {
 				this.getNoticeList();
-			}
+			},
 		}
 	}
 </script>
diff --git a/pages/tabBar/response/response.vue b/pages/tabBar/response/response.vue
index 8cd873c..1f14e52 100644
--- a/pages/tabBar/response/response.vue
+++ b/pages/tabBar/response/response.vue
@@ -44,7 +44,7 @@
 			return {
 				data: {
 					pageIndex: 1,
-					pageSize: 1000
+					pageSize: 10000000
 				},
 				// 状态栏高度
 				statusBarHeight: 0,
diff --git a/pages/tabBar/responsivity/showMeasures.vue b/pages/tabBar/responsivity/showMeasures.vue
index 27dae5b..6364cf7 100644
--- a/pages/tabBar/responsivity/showMeasures.vue
+++ b/pages/tabBar/responsivity/showMeasures.vue
@@ -13,21 +13,21 @@
 		<view class="measureCard">
 			<view class="head">
 				<u-form :model="form" ref="uForm" label-width="100px">
-					<u-form-item label="信息标题 :" ></u-form-item>
-					<u-form-item label="发布单位 :"></u-form-item>
-					<u-form-item label="发布时间 :"></u-form-item>
-					<u-form-item label="反馈时间 :"></u-form-item>
+					<u-form-item label="信息标题 :" >{{form.title}}</u-form-item>
+					<u-form-item label="发布单位 :">{{form.publishingUnit}}</u-form-item>
+					<u-form-item label="发布时间 :">{{form.publishingTime}}</u-form-item>
+					<u-form-item label="反馈时间 :">{{form.measureSubmitTime}}</u-form-item>
 				</u-form>
 			</view>
 			<view class="first">
 				<text style="font-size: 16px;margin-bottom: 20px;font-weight: 600;">基础措施</text>
 				<view v-for="(item, index) in measureList" :key="index" style="margin-left: 18px;margin-bottom:10px; font-size:16px;">
-					<text style="margin-top: 15px;">{{item.name}}</text>
+					<text style="margin-top: 15px;">{{item}}</text>
 				</view>
 			</view>
 			<view class="second">
 				<text style="font-size: 16px;margin-bottom: 20px;font-weight: 600;">补充措施</text>
-				<u--textarea style="margin-top: -5px;" v-model="measures" disabled="true" placeholder="请输入内容" ></u--textarea>
+				<u--textarea style="margin-top: -5px;" v-model="measures" disabled placeholder="请输入内容" ></u--textarea>
 			</view>
 			<view class="third">
 				<view v-for="(item, index) in images" :key="index">
@@ -39,6 +39,7 @@
 </template>
 
 <script>
+	import VUE_APP_BASE_URL from '../../../common/constant.js'
 	export default {
 		components:{
 			
@@ -49,32 +50,27 @@
 				fileList1: [],
 				nameList: [],
 				checkboxValue1: '',
-				measures: "111",
+				measures: "",
 				type: 'textarea',
 				border: true,
 				height: 100,
 				autoHeight: true,
-				measureList: [
-					{
-						name: '苹果',
-					},
-					{
-						name: '香蕉',
-					},
-					{
-						name: '橙子',
-					}
-				],
-				images: [
-					{
-						url: 'https://img2.baidu.com/it/u=638285213,1746517464&fm=253&fmt=auto&app=120&f=JPEG?w=1422&h=800'
-					},
-					
-				]
+				form: {
+				},
+				measureList: [],
+				images: []
 			}
 		},
-		onLoad() {
-			//获取手机状态栏高度
+		onLoad(options) {
+			let test = options.data && JSON.parse(decodeURIComponent(options.data));
+			console.log("tes111t",test)
+			this.form = test;
+			this.measures = this.form.responseMeasure;
+			this.measureList = this.form.baseMeasures;
+			this.images = this.form.attachments.map((item) => {
+			  return {url: VUE_APP_BASE_URL + item.attachment};
+			});
+			console.log("img",this.images)
 			this.statusBarHeight = uni.getSystemInfoSync()['statusBarHeight'];
 			uni.hideTabBar();
 		},
@@ -83,59 +79,6 @@
 				uni.navigateBack({
 				    url:'/pages/tabBar/responsivity/villageResponsivity'
 				});
-			},
-			
-			checkboxChange(n) {
-				console.log('change', n);
-			},
-			// 删除图片
-			deletePic(event) {
-				this[`fileList${event.name}`].splice(event.index, 1)
-				this.nameList.splice(event.index,1)
-				console.log("name",this.nameList)
-			},
-			// 新增图片
-			async afterRead(event) {
-				// 当设置 multiple 为 true 时, file 为数组格式,否则为对象格式
-				let lists = [].concat(event.file)
-				let fileListLen = this[`fileList${event.name}`].length
-				console.log("list",lists)
-				lists.map((item) => {
-					this.nameList.push({name: item.name});
-					this[`fileList${event.name}`].push({
-						...item,
-						status: 'uploading',
-						message: '上传中'
-					})
-				})
-				console.log("nameList",this.nameList)
-				for (let i = 0; i < lists.length; i++) {
-					const result = await this.uploadFilePromise(lists[i].url)
-					let item = this[`fileList${event.name}`][fileListLen]
-					this[`fileList${event.name}`].splice(fileListLen, 1, Object.assign(item, {
-						status: 'success',
-						message: '',
-						url: result
-					}))
-					fileListLen++
-				}
-			},
-			uploadFilePromise(url) {
-				return new Promise((resolve, reject) => {
-					let a = uni.uploadFile({
-						url: 'http://www.example.com', // 仅为示例,非真实的接口地址
-						filePath: url,
-						name: 'file',
-						formData: {
-							user: 'test'
-						},
-						success: (res) => {
-							setTimeout(() => {
-								resolve(res.data.data)
-							}, 1000)
-						}
-					});
-				})
 			},
 			//预览图片
 			previewSqs(item,index) {
diff --git a/pages/tabBar/weather/weather.vue b/pages/tabBar/weather/weather.vue
index 0ad52a8..2cac95d 100644
--- a/pages/tabBar/weather/weather.vue
+++ b/pages/tabBar/weather/weather.vue
@@ -12,7 +12,7 @@
 				</view>
 			</view>
 		</view>
-		<view style="height: 85%;">
+		<view style="height: 83%;">
 		     <!-- <web-view :src="webViewUrl"></web-view> -->
 			 <iframe :src="webViewUrl" width="100%" height="100%"> </iframe>
 		</view>

--
Gitblit v1.9.2