From 3062b6cdec246445a8102b61c8a28de6dc707de1 Mon Sep 17 00:00:00 2001
From: Lou <luzhiping@qqyjz.com>
Date: Mon, 13 Nov 2023 17:34:57 +0800
Subject: [PATCH] 校园安全页面编写与数据交互

---
 pages.json                                        |   29 +
 subPackage/workbench/views/labelReportDetail.vue  |   97 ++++-
 subPackage/label/index.vue                        |    8 
 subPackage/label/hotel.vue                        |   54 ++
 subPackage/label/form.vue                         |   52 ++
 subPackage/label/formList.vue                     |    2 
 api/reporting/reporting.js                        |   37 ++
 manifest.json                                     |    4 
 subPackage/workbench/views/schoolReportDetail.vue |    8 
 subPackage/label/bail.vue                         |   51 ++
 subPackage/label/schoolList.vue                   |   96 +++++
 common/setting.js                                 |    4 
 subPackage/label/school.vue                       |  592 ++++++++++++++++++++++++++++++++
 13 files changed, 995 insertions(+), 39 deletions(-)

diff --git a/api/reporting/reporting.js b/api/reporting/reporting.js
index 9ae978b..d574aa9 100644
--- a/api/reporting/reporting.js
+++ b/api/reporting/reporting.js
@@ -141,3 +141,40 @@
 	})
 }
 
+//添加校园安全报事
+export const setSchoolReporting = (data) => {
+	return http.request({
+		url: '/blade-taskCampusReportingEvent/taskCampusReportingEvent/save',
+		method: 'POST',
+		data: data
+	})
+}
+
+//获取校园安全报事列表
+export const getSchoolReportingList = (params) => {
+	return http.request({
+		url: '/blade-taskCampusReportingEvent/taskCampusReportingEvent/page',
+		method: 'get',
+		params: {
+			...params
+		}
+	})
+}
+//获取校园安全报事详情
+export const getSchoolReportingDetail = (params) => {
+	return http.request({
+		url: '/blade-taskCampusReportingEvent/taskCampusReportingEvent/detail',
+		method: 'get',
+		params: {
+			...params
+		}
+	})
+}
+//修改校园安全报事
+export const saveSchoolReporting = (data) => {
+	return http.request({
+		url: '/blade-taskCampusReportingEvent/taskCampusReportingEvent/update',
+		method: 'POST',
+		data: data
+	})
+}
\ No newline at end of file
diff --git a/common/setting.js b/common/setting.js
index a94d269..1f08edf 100644
--- a/common/setting.js
+++ b/common/setting.js
@@ -12,8 +12,8 @@
 	// devUrl: 'https://sk.hubeishuiyi.cn',
 	// devUrl: 'http://192.168.1.156:9528',
 	// devUrl:'http://192.168.1.50:9528',
-	// devUrl: 'http://192.168.0.102:9528',
-	devUrl: 'https://srgdjczzxtpt.com:2080/api',
+	devUrl: 'http://192.168.0.102:9528',
+	// devUrl: 'https://srgdjczzxtpt.com:2080/api',
 	minioBaseUrl: "http://60.220.177.113:9000/jczz/",
 	// 数据中台接口url
 	// dataCenterUrl: 'http://10.10.2.192/services',
diff --git a/manifest.json b/manifest.json
index 3b3b89c..399d6eb 100644
--- a/manifest.json
+++ b/manifest.json
@@ -1,5 +1,5 @@
 {
-    "name" : "基层自治",
+    "name" : "饶城格格通",
     "appid" : "__UNI__EE88272",
     "description" : "",
     "versionName" : "1.0.10",
@@ -142,7 +142,7 @@
     "quickapp" : {},
     /* 小程序特有相关 */
     "mp-weixin" : {
-        "appid" : "wxdc5675f4df850da6",
+        "appid" : "wx41aa8a5d2e565a05",
         "setting" : {
             "urlCheck" : false,
             "minified" : true,
diff --git a/pages.json b/pages.json
index f98dc02..93e4208 100644
--- a/pages.json
+++ b/pages.json
@@ -171,6 +171,24 @@
 						"navigationBarBackgroundColor": "#fff",
 						"navigationBarTextStyle": "black"
 					}
+				},
+				{
+					"path": "school",
+					"style": {
+						"navigationBarTitleText": "校园安全",
+						"enablePullDownRefresh": false,
+						"navigationBarBackgroundColor": "#fff",
+						"navigationBarTextStyle": "black"
+					}
+				},
+				{
+					"path": "schoolList",
+					"style": {
+						"navigationBarTitleText": "报事列表",
+						"enablePullDownRefresh": false,
+						"navigationBarBackgroundColor": "#fff",
+						"navigationBarTextStyle": "black"
+					}
 				}
 			]
 		},
@@ -281,6 +299,15 @@
 				},
 				{
 					"path": "views/labelReportDetail",
+					"style": {
+						"navigationBarTitleText": "审核",
+						"enablePullDownRefresh": false,
+						"navigationBarBackgroundColor": "#fff",
+						"navigationBarTextStyle": "black"
+					}
+				},
+				{
+					"path": "views/schoolReportDetail",
 					"style": {
 						"navigationBarTitleText": "审核",
 						"enablePullDownRefresh": false,
@@ -439,7 +466,7 @@
 	],
 	"globalStyle": {
 		"navigationBarTextStyle": "black",
-		"navigationBarTitleText": "",
+		"navigationBarTitleText": "饶城格格通",
 		"navigationBarBackgroundColor": "#fff",
 		"backgroundColor": "#4586FE"
 	},
diff --git a/subPackage/label/bail.vue b/subPackage/label/bail.vue
index 0d2f31f..79893cc 100644
--- a/subPackage/label/bail.vue
+++ b/subPackage/label/bail.vue
@@ -22,8 +22,24 @@
 					<u-icon slot="right" name="arrow-right"></u-icon>
 				</u-form-item>
 				<u-form-item label="申请位置" prop="location" borderBottom ref="location" required>
-					<u-input v-model="info.location"  border="none" placeholder="请输入" placeholderClass="f-28 c-99"
-						inputAlign="right"></u-input>
+					<!-- <u-input v-model="info.location"  disabled disabledColor="#ffffff" border="none" placeholder="请选择地址" placeholderClass="f-28 c-99"
+						inputAlign="right">
+					<template slot="suffix">
+						<button class="location-btn c-main f-24"   @click="getLocation()">获取地址</button>
+					</template>	
+					</u-input> -->
+					<view class="address-row flex">
+						<view class="address-content f-28" v-if="info.location">
+							{{info.location}}
+						</view>
+						<view class="address-content f-28 c-99" v-if="!info.location">
+							请选择位置
+						</view>
+						<view class="location-btn c-main f-24"  @click="getLocation()">
+							获取地址
+						</view>
+					</view>
+						
 				</u-form-item>
 			</view>
 
@@ -106,6 +122,8 @@
 			let userInfo = uni.getStorageSync("userInfo");
 			this.$set(this.info, "houseCode", siteInfo.id);
 			this.$set(this.info, "districtName", siteInfo.name);
+			this.$set(this.info,"checkUserName",userInfo.real_name);
+			this.$set(this.info,"checkTelephone",userInfo.phone);
 			this.$set(this.info, "checkUserId", userInfo.user_id);
 		},
 
@@ -115,6 +133,15 @@
 		},
 
 		methods: {
+			
+			getLocation(){
+				uni.chooseLocation({
+					success:(res)=>{
+						this.$set(this.info,"location",res.address);
+					}
+				})
+			},
+			
 
 			formatter(type, value) {
 				if (type === 'year') {
@@ -236,4 +263,24 @@
 		color: #fff;
 		margin-top: 50rpx;
 	}
+	.address-row{
+		flex:1;
+		justify-content: flex-end;
+		align-items:center;
+	}
+	.address-content{
+		width:calc(100% - 116rpx - 20rpx);
+		margin-right:20rpx;
+		text-align: right;
+	}
+	.location-btn{
+		width:116rpx;
+		height:46rpx;
+		line-height: 46rpx;
+		border-radius: 4rpx;
+		border:1px solid currentColor;
+		padding:0;
+		background-color: #fff;
+		text-align: center;
+	}
 </style>
\ No newline at end of file
diff --git a/subPackage/label/form.vue b/subPackage/label/form.vue
index 3189aed..7033e07 100644
--- a/subPackage/label/form.vue
+++ b/subPackage/label/form.vue
@@ -16,9 +16,20 @@
 					<u-input v-model="info.goodsNums" type="number" border="none" placeholder="请输入"
 						placeholderClass="f-28 c-99" inputAlign="right"></u-input>
 				</u-form-item>
-				<u-form-item label="交易位置" prop="location" borderBottom ref="location" required>
-					<u-input v-model="info.location" border="none" placeholder="请输入" placeholderClass="f-28 c-99"
-						inputAlign="right"></u-input>
+				<u-form-item label="交易位置" prop="localtion" borderBottom ref="localtion" required>
+					<!-- <u-input v-model="info.location" border="none" placeholder="请输入" placeholderClass="f-28 c-99"
+						inputAlign="right"></u-input> -->
+						<view class="address-row flex">
+							<view class="address-content f-28" v-if="info.localtion">
+								{{info.localtion}}
+							</view>
+							<view class="address-content f-28 c-99" v-if="!info.localtion">
+								请选择位置
+							</view>
+							<view class="location-btn c-main f-24"  @click="getLocation()">
+								获取地址
+							</view>
+						</view>
 				</u-form-item>
 				<u-form-item label="交易过程" prop="transactionProcess" borderBottom>
 					<u-input v-model="info.transactionProcess" border="none" placeholder="请输入"
@@ -56,7 +67,7 @@
 		</u-form>
 
 		<button class="submit-btn" @click="sumitInfo">提交</button>
-		<button class="list-btn" @click="navigatorPage">我上报的事件</button>
+		<button class="list-btn mb-20" @click="navigatorPage">我上报的事件</button>
 	</view>
 </template>
 
@@ -74,7 +85,7 @@
 					transactionObjectTel: "",
 					transactionMoney: "",
 					goodsNums: "",
-					location: "",
+					localtion: "",
 					transactionProcess: "",
 					houseCode: "",
 					districtName: "",
@@ -94,7 +105,7 @@
 						message: '请输入交易金额',
 						trigger: ['blur', 'change']
 					},
-					'location': {
+					'localtion': {
 						type: 'string',
 						required: true,
 						message: '请输入交易位置',
@@ -134,6 +145,15 @@
 					return "二手车交易"
 				}
 			},
+			
+			getLocation(){
+				uni.chooseLocation({
+					success:(res)=>{
+						this.$set(this.info,"localtion",res.address);
+					}
+				})
+			},
+			
 
 			confirmDate(e) {
 				console.log(e);
@@ -269,4 +289,24 @@
 		color: #fff;
 		margin-top: 50rpx;
 	}
+	.address-row{
+		flex:1;
+		justify-content: flex-end;
+		align-items:center;
+	}
+	.address-content{
+		width:calc(100% - 116rpx - 20rpx);
+		margin-right:20rpx;
+		text-align: right;
+	}
+	.location-btn{
+		width:116rpx;
+		height:46rpx;
+		line-height: 46rpx;
+		border-radius: 4rpx;
+		border:1px solid currentColor;
+		padding:0;
+		background-color: #fff;
+		text-align: center;
+	}
 </style>
\ No newline at end of file
diff --git a/subPackage/label/formList.vue b/subPackage/label/formList.vue
index d2c7e05..03603b2 100644
--- a/subPackage/label/formList.vue
+++ b/subPackage/label/formList.vue
@@ -63,7 +63,7 @@
 			},
 			navTo(id) {
 				uni.navigateTo({
-					url: `/subPackage/workbench/views/bailReportDetail?id=${id}`
+					url: `/subPackage/workbench/views/labelReportDetail?id=${id}`
 				})
 			}
 		}
diff --git a/subPackage/label/hotel.vue b/subPackage/label/hotel.vue
index 1b36cf2..7177283 100644
--- a/subPackage/label/hotel.vue
+++ b/subPackage/label/hotel.vue
@@ -5,7 +5,7 @@
 			:labelStyle="{fontSize:'28rpx'}">
 			<view class="content">
 				<u-form-item label="社区名称" prop="districtName" borderBottom required>
-					<view>
+					<view class="content-name f-28">
 						{{info.districtName}}
 					</view>
 					<!-- <u-input v-model="info.districtName" disabled disabledColor="#fff" border="none" placeholder="请输入"
@@ -28,9 +28,20 @@
 					<u-input v-model="info.checkTelephone" border="none" placeholder="请输入" placeholderClass="f-28 c-99"
 						inputAlign="right"></u-input>
 				</u-form-item>
-				<u-form-item label="自查位置" prop="phone" borderBottom ref="location" required>
-					<u-input v-model="info.location" border="none" placeholder="请输入" placeholderClass="f-28 c-99"
-						inputAlign="right"></u-input>
+				<u-form-item label="自查位置" prop="location" borderBottom ref="location" required>
+					<!-- <u-input v-model="info.location" border="none" placeholder="请输入" placeholderClass="f-28 c-99"
+						inputAlign="right"></u-input> -->
+						<view class="address-row flex">
+							<view class="address-content f-28" v-if="info.location">
+								{{info.location}}
+							</view>
+							<view class="address-content f-28 c-99" v-if="!info.location">
+								请选择位置
+							</view>
+							<view class="location-btn c-main f-24"  @click="getLocation()">
+								获取地址
+							</view>
+						</view>
 				</u-form-item>
 				<u-form-item label="灭火器数量" prop="fireNums" borderBottom>
 					<u-input type="number" v-model="info.fireNums" border="none" placeholder="请输入"
@@ -318,6 +329,8 @@
 			let userInfo = uni.getStorageSync("userInfo");
 			this.$set(this.info, "houseCode", siteInfo.id);
 			this.$set(this.info, "districtName", siteInfo.neiName);
+			this.$set(this.info,"checkUserName",userInfo.real_name);
+			this.$set(this.info,"checkTelephone",userInfo.phone);
 			this.$set(this.info, "checkUserId", userInfo.user_id);
 		},
 
@@ -327,6 +340,15 @@
 		},
 
 		methods: {
+			
+			getLocation(){
+				uni.chooseLocation({
+					success:(res)=>{
+						this.$set(this.info,"location",res.address);
+					}
+				})
+			},
+			
 			formatter(type, value) {
 				if (type === 'year') {
 					return `${value}年`
@@ -435,6 +457,10 @@
 		padding: 0 30rpx;
 		background-color: #fff;
 	}
+	.content-name{
+		flex:1;
+		text-align: right;
+	}
 
 	/deep/.u-radio-group--row {
 		justify-content: flex-end;
@@ -497,4 +523,24 @@
 	.mt-30{
 		margin-top:30rpx;
 	}
+	.address-row{
+		flex:1;
+		justify-content: flex-end;
+		align-items:center;
+	}
+	.address-content{
+		width:calc(100% - 116rpx - 20rpx);
+		margin-right:20rpx;
+		text-align: right;
+	}
+	.location-btn{
+		width:116rpx;
+		height:46rpx;
+		line-height: 46rpx;
+		border-radius: 4rpx;
+		border:1px solid currentColor;
+		padding:0;
+		background-color: #fff;
+		text-align: center;
+	}
 </style>
\ No newline at end of file
diff --git a/subPackage/label/index.vue b/subPackage/label/index.vue
index 7110dfd..a3fd3e5 100644
--- a/subPackage/label/index.vue
+++ b/subPackage/label/index.vue
@@ -90,7 +90,13 @@
 						bgImg:"/static/icon/nav-bg-14.png",
 						path:"form",
 						background:"#13C6C7"
-					}
+					},
+					// {
+					// 	title:"校园安全",
+					// 	bgImg:"/static/icon/nav-bg-11.png",
+					// 	path:"school",
+					// 	background:"#4D98E2"
+					// }
 				],
 				siteInfo:{},
 				count:{}
diff --git a/subPackage/label/school.vue b/subPackage/label/school.vue
new file mode 100644
index 0000000..3dea748
--- /dev/null
+++ b/subPackage/label/school.vue
@@ -0,0 +1,592 @@
+<template>
+	<view class="">
+		<u-form labelPosition="left" :model="info" :rules="rules" ref="form" labelWidth="100"
+			:labelStyle="{fontSize:'28rpx'}">
+			<view class="content">
+				<u-form-item label="社区名称" prop="districtName" borderBottom required>
+					<view class="content-name f-28">
+						{{info.districtName}}
+					</view>
+				</u-form-item>
+				<u-form-item label="校园名称" prop="campusName" borderBottom required>
+					<u-input v-model="info.campusName" border="none" placeholder="请输入" placeholderClass="f-28 c-99"
+						inputAlign="right"></u-input>
+				</u-form-item>
+				<u-form-item label="自查时间" prop="checkTime" borderBottom required @click="showSelectDate = true">
+					<u-input v-model="info.checkTime" disabled disabledColor="#ffffff" border="none" placeholder="请输入"
+						placeholderClass="f-28 c-99" inputAlign="right"></u-input>
+					<u-icon slot="right" name="arrow-right"></u-icon>
+				</u-form-item>
+				<u-form-item label="自查人姓名" prop="checkUserName" borderBottom required>
+					<u-input v-model="info.checkUserName" border="none" placeholder="请输入" placeholderClass="f-28 c-99"
+						inputAlign="right"></u-input>
+				</u-form-item>
+				<u-form-item label="自查人手机" prop="checkTelephone" borderBottom required>
+					<u-input v-model="info.checkTelephone" border="none" placeholder="请输入" placeholderClass="f-28 c-99"
+						inputAlign="right"></u-input>
+				</u-form-item>
+				<u-form-item label="自查位置" prop="location" borderBottom ref="location" required>
+					<view class="address-row flex">
+						<view class="address-content f-28" v-if="info.location">
+							{{info.location}}
+						</view>
+						<view class="address-content f-28 c-99" v-if="!info.location">
+							请选择位置
+						</view>
+						<view class="location-btn c-main f-24" @click="getLocation()">
+							获取地址
+						</view>
+					</view>
+				</u-form-item>
+			</view>
+
+			<view class="content">
+				<u-form-item label="四个一工程" prop="fourOne" labelWidth="300" :borderBottom="false" required
+					labelPosition="top">
+					<view class="mt-30">
+						<u-radio-group v-model="info.fourOne" placement="column">
+							<u-radio :customStyle="{marginBottom: '10px'}" v-for="(item, index) in fourOneList"
+								:key="index" :label="item.name" :name="item.name" labelSize="14" iconSize="20">
+							</u-radio>
+						</u-radio-group>
+					</view>
+				</u-form-item>
+			</view>
+
+			<view class="upload bgc-ff">
+				<view class="f-28 mb-20">四个一工程照片</view>
+				<view class="mt-20">
+					<u-upload :fileList="foImageUrls" :previewFullImage="uploadConfig.previewFullImage"
+						:accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
+						:maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture"
+						@afterRead="afterReadImgs($event,'foImageUrls')" @delete="deletePic">
+						<view class="upload-item upload-icon flex_base">
+							<u-icon name="/static/icon/upload.png" width="60rpx" height="60rpx"></u-icon>
+						</view>
+					</u-upload>
+				</view>
+			</view>
+
+			<view class="content">
+				<u-form-item label="消防设施种类" prop="fireFacsType" borderBottom required>
+					<u-input v-model="info.fireFacsType" border="none" placeholder="请输入" placeholderClass="f-28 c-99"
+						inputAlign="right"></u-input>
+				</u-form-item>
+				<u-form-item label="消防器材数量" prop="fireFacsNums" :borderBottom="false" required>
+					<u-input type="number" v-model="info.fireFacsNums" border="none" placeholder="请输入"
+						placeholderClass="f-28 c-99" inputAlign="right"></u-input>
+				</u-form-item>
+			</view>
+
+			<view class="upload bgc-ff">
+				<view class="f-28 mb-20">消防器材照片(需拍到灭火器有效期)</view>
+				<view class="mt-20">
+					<u-upload :fileList="fireFacsImageUrls" :previewFullImage="uploadConfig.previewFullImage"
+						:accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
+						:maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture"
+						@afterRead="afterReadImgs($event,'fireFacsImageUrls')" @delete="deletePic">
+						<view class="upload-item upload-icon flex_base">
+							<u-icon name="/static/icon/upload.png" width="60rpx" height="60rpx"></u-icon>
+						</view>
+					</u-upload>
+				</view>
+			</view>
+
+			<view class="content">
+				<u-form-item label="安全通道状态" prop="scStatus" :borderBottom="false" ref="scFlag" required
+					@click="isShowScStatus = true">
+					<u-input v-model="info.scStatus" disabled disabledColor="#fff" border="none" placeholder="请选择"
+						placeholderClass="f-28 c-99" inputAlign="right"></u-input>
+					<u-icon slot="right" name="arrow-right"></u-icon>
+				</u-form-item>
+			</view>
+
+			<view class="upload bgc-ff mb-20">
+				<view class="f-28 mb-20">安全通道图片(需拍到门和指示箭头)</view>
+				<view class="mt-20">
+					<u-upload :fileList="scImageUrls" :previewFullImage="uploadConfig.previewFullImage"
+						:accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
+						:maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture"
+						@afterRead="afterReadImgs($event,'scImageUrls')" @delete="deletePic">
+						<view class="upload-item upload-icon flex_base">
+							<u-icon name="/static/icon/upload.png" width="60rpx" height="60rpx"></u-icon>
+						</view>
+					</u-upload>
+				</view>
+			</view>
+			<view class="upload bgc-ff">
+				<view class="f-28 mb-20">校园周边安全巡查照片</view>
+				<view class="mt-20">
+					<u-upload :fileList="patrolImageUrls" :previewFullImage="uploadConfig.previewFullImage"
+						:accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
+						:maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture"
+						@afterRead="afterReadImgs($event,'patrolImageUrls')" @delete="deletePic">
+						<view class="upload-item upload-icon flex_base">
+							<u-icon name="/static/icon/upload.png" width="60rpx" height="60rpx"></u-icon>
+						</view>
+					</u-upload>
+				</view>
+			</view>
+
+			<view class="content">
+				<u-form-item label="大门是否装备防撞装置" prop="antiCollision" :borderBottom="false" ref="scFlag" required
+					@click="isShowScStatus = true">
+					<u-radio-group v-model="info.antiCollision">
+						<u-radio :customStyle="{marginBottom: '8px'}" v-for="(item, index) in statusList" :key="index"
+							:label="item" :name="item">
+						</u-radio>
+					</u-radio-group>
+				</u-form-item>
+			</view>
+
+			<view class="upload bgc-ff mb-20">
+				<view class="f-28 mb-20">校园防撞装置照片</view>
+				<view class="mt-20">
+					<u-upload :fileList="antiCollisionImageUrls" :previewFullImage="uploadConfig.previewFullImage"
+						:accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
+						:maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture"
+						@afterRead="afterReadImgs($event,'antiCollisionImageUrls')" @delete="deletePic">
+						<view class="upload-item upload-icon flex_base">
+							<u-icon name="/static/icon/upload.png" width="60rpx" height="60rpx"></u-icon>
+						</view>
+					</u-upload>
+				</view>
+			</view>
+
+			<view class="content">
+				<u-form-item label="专职保安人数" prop="fullSoNums" borderBottom required>
+					<u-input type="number" v-model="info.fullSoNums" border="none" placeholder="请输入"
+						placeholderClass="f-28 c-99" inputAlign="right"></u-input>
+				</u-form-item>
+				<u-form-item label="兼职保安人数" prop="partSoNums" borderBottom required >
+					<u-input type="number" v-model="info.partSoNums" border="none" placeholder="请输入"
+						placeholderClass="f-28 c-99" inputAlign="right"></u-input>
+				</u-form-item>
+				<u-form-item label="学校监控总数" prop="monitorNums" borderBottom required>
+					<u-input type="number" v-model="info.monitorNums" border="none" placeholder="请输入"
+						placeholderClass="f-28 c-99" inputAlign="right"></u-input>
+				</u-form-item>
+				<u-form-item label="监控是否全覆盖" prop="monitorOver" borderBottom required>
+					<u-radio-group v-model="info.monitorOver">
+						<u-radio :customStyle="{marginBottom: '8px'}" v-for="(item, index) in statusList" :key="index"
+							:label="item" :name="item">
+						</u-radio>
+					</u-radio-group>
+				</u-form-item>
+				<u-form-item label="高空抛物监控" prop="highAltitudeMonitor" :borderBottom="false" ref="scFlag" required
+					@click="isShowScStatus = true">
+					<u-input v-model="info.highAltitudeMonitor" border="none" placeholder="请输入"
+						placeholderClass="f-28 c-99" inputAlign="right"></u-input>
+				</u-form-item>
+			</view>
+			<view class="upload bgc-ff mb-20">
+				<view class="f-28 mb-20">高空抛物监控(一是监控照片,一是此监控拍摄到的图像)</view>
+				<view class="mt-20">
+					<u-upload :fileList="uanImageUrls" :previewFullImage="uploadConfig.previewFullImage"
+						:accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
+						:maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture"
+						@afterRead="afterReadImgs($event,'uanImageUrls')" @delete="deletePic">
+						<view class="upload-item upload-icon flex_base">
+							<u-icon name="/static/icon/upload.png" width="60rpx" height="60rpx"></u-icon>
+						</view>
+					</u-upload>
+				</view>
+			</view>
+
+		</u-form>
+		<button class="submit-btn" @click="sumitInfo">提交</button>
+		<button class="list-btn" @click="navigatorPage">我上报的事件</button>
+		<u-datetime-picker ref="datetimePicker" :show="showSelectDate" v-model="checkTime" mode="datetime"
+			:formatter="formatter" @confirm="confirmDate" @cancel="showSelectDate = false"></u-datetime-picker>
+		<u-picker :show="isShowScStatus" :columns="scStatus" :defaultIndex="scStatusIndex"
+			@cancel="isShowScStatus = false" @confirm="confirmScStatus"></u-picker>
+	</view>
+</template>
+
+<script>
+	import uploadMixin from "@/mixin/uploadMixin";
+	import {
+		saveSchoolReporting
+	} from "@/api/reporting/reporting";
+
+	export default {
+		mixins: [uploadMixin],
+		data() {
+			return {
+				info: {
+					districtName: "",
+					campusName: "",
+					checkUserName: "",
+					checkTelephone: "",
+					checkTime: '',
+					location: '',
+					fourOne: '',
+					fireFacsType: '',
+					fireFacsNums: '',
+					scStatus: '',
+					antiCollision: '',
+					fullSoNums: '',
+					partSoNums: '',
+					monitorNums: '',
+					monitorOver: '',
+					highAltitudeMonitor: '',
+					houseCode: "",
+					checkUserId: "",
+				},
+				rules: {
+					'districtName': {
+						type: 'string',
+						required: true,
+						message: '请输入社区名称',
+						trigger: ['blur', 'change']
+					},
+					'campusName': {
+						type: 'string',
+						required: true,
+						message: '请输入学校名称',
+						trigger: ['blur', 'change']
+					},
+					'checkTime': {
+						type: 'string',
+						required: true,
+						message: '请选择自查时间',
+						trigger: ['blur', 'change']
+					},
+					'checkName': {
+						type: 'string',
+						required: true,
+						message: '请输入自查人姓名',
+						trigger: ['blur', 'change']
+					},
+					'checkTelephone': {
+						type: 'number',
+						required: true,
+						message: '请输入自查人手机',
+						trigger: ['blur', 'change']
+					},
+					'location': {
+						type: 'string',
+						required: true,
+						message: '请输入自查位置',
+						trigger: ['blur', 'change']
+					},
+					'fourOne': {
+						type: 'string',
+						required: false,
+						message: '请选择四个一工程',
+						trigger: ['blur', 'change']
+					},
+					'fireFacsType': {
+						type: 'string',
+						required: false,
+						message: '请选择消防器材种类',
+						trigger: ['blur', 'change']
+					},
+					'fireFacsNums': {
+						type: 'string',
+						required: true,
+						message: '请选择消防器材数量',
+						trigger: ['blur', 'change']
+					},
+					'scStatus': {
+						type: 'string',
+						required: true,
+						message: '请选择安全通道状态',
+						trigger: ['blur', 'change']
+					},
+					'antiCollision': {
+						type: 'string',
+						required: true,
+						message: '请选择是否配备防撞装置',
+						trigger: ['blur', 'change']
+					},
+					'fullSoNums': {
+						type: 'string',
+						required: true,
+						message: '请输入全职保安数量',
+						trigger: ['blur', 'change']
+					},
+					'partSoNums': {
+						type: 'string',
+						required: true,
+						message: '请输入兼职保安数量',
+						trigger: ['blur', 'change']
+					},
+					'monitorNums': {
+						type: 'string',
+						required: true,
+						message: '请输入监控总数',
+						trigger: ['blur', 'change']
+					},
+					'monitorOver': {
+						type: 'string',
+						required: true,
+						message: '请选择监控是否全覆盖',
+						trigger: ['blur', 'change']
+					},
+					'highAltitudeMonitor': {
+						type: 'string',
+						required: true,
+						message: '请输入高空抛物监控',
+						trigger: ['blur', 'change']
+					},
+				},
+				showSelectDate: false,
+				foImageUrls: [], //四个一工程照片
+				fireFacsImageUrls: [], //灭火器图片
+				scImageUrls: [], // 安全通道图片
+				patrolImageUrls: [], //周边巡查照片
+				antiCollisionImageUrls: [], //防撞装置照片
+				haImageUrls: [], //高空抛物监控照片
+				statusList: ["有", "无"],
+				scStatus: [
+					["开启", "关闭"]
+				], //安全通道状态
+				scStatusIndex: [0],
+				isShowScStatus: false,
+				checkTime: Number(new Date()),
+				fourOneList: [{
+						name: "已配备一个安检门",
+						value: 1
+					},
+					{
+						name: "已配备一键报警器",
+						value: 2
+					},
+					{
+						name: "已配备一组存储柜",
+						value: 3
+					},
+					{
+						name: "已配备一间会客室",
+						value: 4
+					},
+					{
+						name: "以上皆未配备",
+						value: 5
+					}
+				]
+			}
+		},
+		onLoad(option) {
+			let siteInfo = uni.getStorageSync("siteInfo");
+			let userInfo = uni.getStorageSync("userInfo");
+			this.$set(this.info, "houseCode", siteInfo.id);
+			this.$set(this.info, "districtName", siteInfo.neiName);
+			this.$set(this.info, "checkUserName", userInfo.real_name);
+			this.$set(this.info, "checkTelephone", userInfo.phone);
+			this.$set(this.info, "checkUserId", userInfo.user_id);
+		},
+
+		onReady() {
+			// 微信小程序需要用此写法
+			this.$refs.datetimePicker.setFormatter(this.formatter)
+		},
+
+		methods: {
+			
+			getLocation(){
+				uni.chooseLocation({
+					success:(res)=>{
+						this.$set(this.info,"location",res.address);
+					}
+				})
+			},
+			
+			formatter(type, value) {
+				if (type === 'year') {
+					return `${value}年`
+				}
+				if (type === 'month') {
+					return `${value}月`
+				}
+				if (type === 'day') {
+					return `${value}日`
+				}
+				return value
+			},
+
+			confirmDate(e) {
+				this.showSelectDate = false;
+				this.info.checkTime = uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM:ss')
+			},
+
+			confirmScStatus(e) {
+				this.scStatusIndex = e.indexs;
+				this.info.scStatus = e.value[0];
+				this.isShowScStatus = false;
+			},
+
+			async afterReadImgs(event, key) {
+				this.showLoading()
+				let lists = [].concat(event.file)
+				let fileListLen = this[key].length
+				lists.map((item) => {
+					this[key].push({
+						...item,
+						status: 'uploading',
+						message: '上传中'
+					})
+				})
+				for (let i = 0; i < lists.length; i++) {
+					const result = await this.uploadFilePromise(lists[i].url)
+					this[key].splice(fileListLen, 1, Object.assign({}, {
+						url: result.data.link,
+						name: result.data.name
+					}))
+					fileListLen++
+				}
+				this.loadingClose()
+			},
+
+			checkImages() {
+				if (this.foImageUrls.length) {
+					this.$set(this.info, "foImageUrls", this.setImages(this.foImageUrls))
+				}
+				if (this.fireFacsImageUrls.length) {
+					this.$set(this.info, "fireFacsImageUrls", this.setImages(this.fireFacsImageUrls))
+				}
+				if (this.patrolImageUrls.length) {
+					this.$set(this.info, "patrolImageUrls", this.setImages(this.patrolImageUrls))
+				}
+				if (this.antiCollisionImageUrls.length) {
+					this.$set(this.info, "antiCollisionImageUrls", this.setImages(this.antiCollisionImageUrls))
+				}
+				if (this.haImageUrls.length) {
+					this.$set(this.info, "haImageUrls", this.setImages(this.haImageUrls))
+				}
+			},
+
+			setImages(key) {
+				let urls = [];
+				for (let i of key) {
+					urls.push(i.url);
+				}
+				return urls.join(",")
+			},
+
+			sumitInfo() {
+				this.$refs.form.validate().then(valid => {
+					this.checkImages()
+					saveSchoolReporting(this.info).then(res => {
+						uni.showToast({
+							icon: 'success',
+							title: '提交成功',
+							success() {
+								setTimeout(() => {
+									uni.navigateBack()
+								}, 1000)
+							}
+						})
+					})
+				})
+			},
+			navigatorPage() {
+				this.$u.func.globalNavigator('schoolList', "navTo")
+			}
+		}
+	}
+</script>
+
+<style lang="less">
+	page {
+		background-color: #F5F5F5;
+	}
+
+	.content {
+		margin: 20rpx 30rpx;
+		padding: 0 30rpx;
+		background-color: #fff;
+	}
+
+	.content-name {
+		flex: 1;
+		text-align: right;
+	}
+
+	/deep/.u-radio-group--row {
+		justify-content: flex-end;
+	}
+
+	.site-box {
+		padding: 30rpx;
+		margin: 20rpx 30rpx;
+		border-radius: 4rpx;
+
+		.c-aa {
+			color: #aaa;
+		}
+
+		.address {
+			width: 60%;
+			margin-left: 25rpx;
+		}
+	}
+
+	.upload-item {
+		width: 140rpx;
+		height: 140rpx;
+		border: 1px solid #EEEEEE;
+	}
+
+	.upload {
+		margin: 0 30rpx;
+		padding: 30rpx;
+
+
+	}
+
+	.submit-btn {
+		width: 690rpx;
+		height: 78rpx;
+		line-height: 78rpx;
+		background: linear-gradient(163deg, #01BDFC 0%, #017BFC 100%);
+		border-radius: 8rpx 8rpx 8rpx 8rpx;
+		font-size: 32rpx;
+		color: #fff;
+		margin-top: 50rpx;
+	}
+
+	.list-btn {
+		width: 690rpx;
+		height: 78rpx;
+		line-height: 78rpx;
+		background: linear-gradient(163deg, #c7d7dc 0%, #c3cdd8 100%);
+		border-radius: 8rpx 8rpx 8rpx 8rpx;
+		font-size: 32rpx;
+		color: #fff;
+		margin-top: 50rpx;
+		margin-bottom: 20rpx;
+	}
+
+	.mb-20 {
+		margin-bottom: 20rpx;
+	}
+
+	.mt-30 {
+		margin-top: 30rpx;
+	}
+
+	.address-row {
+		flex: 1;
+		justify-content: flex-end;
+		align-items: center;
+	}
+
+	.address-content {
+		width: calc(100% - 116rpx - 20rpx);
+		margin-right: 20rpx;
+		text-align: right;
+	}
+
+	.location-btn {
+		width: 116rpx;
+		height: 46rpx;
+		line-height: 46rpx;
+		border-radius: 4rpx;
+		border: 1px solid currentColor;
+		padding: 0;
+		background-color: #fff;
+		text-align: center;
+	}
+</style>
\ No newline at end of file
diff --git a/subPackage/label/schoolList.vue b/subPackage/label/schoolList.vue
new file mode 100644
index 0000000..ca5ef4c
--- /dev/null
+++ b/subPackage/label/schoolList.vue
@@ -0,0 +1,96 @@
+<template>
+	<view class="">
+		<view class="list">
+			<view class="list-item bgc-ff mb-20" v-for="(i,k) in list" :key="k" @click="navTo(i.taskId)">
+				<view class="item-title flex a-i-c j-c-s-b mb-20">
+					<text class="f-32 fw">{{i.campusName}}</text>
+					<u-tag v-if="i.confirmFlag == 1" text="待审批" type="warning" plain plainFill></u-tag>
+					<u-tag v-if="i.confirmFlag == 2" text="审核通过" type="success" plain plainFill></u-tag>
+					<u-tag v-if="i.confirmFlag == 3" text="审核拒绝" type="error" plain plainFill></u-tag>
+				</view>
+				<view class="item-row flex a-i-c j-c-s-b">
+					<text class="f-28">时间</text>
+					<text class="f-28 c-66">{{i.applyTime}}</text>
+				</view>
+			</view>
+		</view>
+		<u-loadmore :status="loadingStatus" loadmoreText="开始加载" loadingText="数据加载中" nomoreText="没有更多了" line />
+	</view>
+</template>
+
+<script>
+	import {
+	 getSchoolReportingList
+	} from "@/api/reporting/reporting.js"
+	export default {
+		data() {
+			return {
+				list: [],
+				currentPage: 1,
+				loadingStatus: 'nomore',
+			}
+		},
+
+		onLoad() {
+			this.getList()
+		},
+		onReachBottom() {
+			this.currentPage++
+			this.getList()
+		},
+
+		methods: {
+			getList() {
+				getSchoolReportingList({
+					checkUserId: uni.getStorageSync("userInfo").user_id,
+					page: this.currentPage,
+					size: 10
+				}).then(res => {
+					if (res.code != 200) {
+						uni.showToast({
+							title: '数据请求失败',
+							icon: 'error'
+						})
+						return
+					}
+					let records = res.data.records;
+					this.list = [...this.list, ...records]
+					this.loadingStatus = 'nomore'
+				})
+			},
+			navTo(id) {
+				uni.navigateTo({
+					url: `/subPackage/workbench/views/hotelReportDetail?id=${id}`
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	page {
+		background-color: #F5F5F5;
+	}
+
+	.list {
+		margin: 20rpx 30rpx 0;
+	}
+
+	.list-item {
+		padding: 0 30rpx 20rpx;
+		border-radius: 8rpx;
+
+		.item-title {
+			padding: 30rpx 0;
+			border-bottom: 1px solid #F5F5F5;
+		}
+
+		.item-row {
+			padding: 10rpx 0;
+
+			.address {
+				width: 65%;
+			}
+		}
+	}
+</style>
\ No newline at end of file
diff --git a/subPackage/workbench/views/labelReportDetail.vue b/subPackage/workbench/views/labelReportDetail.vue
index 40144b4..b96de0c 100644
--- a/subPackage/workbench/views/labelReportDetail.vue
+++ b/subPackage/workbench/views/labelReportDetail.vue
@@ -49,8 +49,8 @@
 	import boxTitle from "@/subPackage/workbench/components/boxTitle/index.vue"
 	import lineItem from '../components/lineItem.vue'
 	import {
-		getLabelReportingDetail,
-		setLabelReporting
+		getSchoolReportingDetail,
+		setShoolReporting
 	} from '@/api/reporting/reporting'
 	export default {
 		components: {
@@ -60,30 +60,80 @@
 		data() {
 			return {
 				basicData: [{
-						label: '对象电话',
-						name: "transactionObjectTel",
+						label: '社区名称',
+						name: "districtName",
 						value: '未完善'
 					},
 					{
-						label: '交易金额',
-						name: 'transactionMoney',
+						label: '校园名称',
+						name: 'campusName',
 						value: '未完善'
 					},
 					{
-						label: '物品数量',
-						name: 'goodsNums',
+						label: '自查时间',
+						name: 'checkTime',
 						value: '未完善'
 					},
 					{
-						label: '交易位置',
-						name: 'location',
+						label: '自查人姓名',
+						name: 'checkUserName',
 						value: '未完善'
 					},
 					{
-						label: '交易过程',
-						name: 'transactionProcess',
+						label: '自查位置',
+						name: 'localtion',
 						value: '未完善'
-					}
+					},
+					{
+						label: '四个一工程',
+						name: 'fourOne',
+						value: '未完善'
+					},
+					{
+						label: '消防设施种类',
+						name: 'fireFacsType',
+						value: '未完善'
+					},
+					{
+						label: '消防器材数量',
+						name: 'fireFacsNums',
+						value: '未完善'
+					},
+					{
+						label: '安全通道状态',
+						name: 'scStatus',
+						value: '未完善'
+					},
+					{
+						label: '大门是否装备防撞装置',
+						name: 'antiCollision',
+						value: '未完善'
+					},
+					{
+						label: '专职保安人员',
+						name: 'fullSoNums',
+						value: '未完善'
+					},
+					{
+						label: '兼职保安人员',
+						name: 'partSoNums',
+						value: '未完善'
+					},
+					{
+						label: '学校监控总数',
+						name: 'monitorNums',
+						value: '未完善'
+					},
+					{
+						label: '监控是否全覆盖',
+						name: 'monitorOver',
+						value: '未完善'
+					},
+					{
+						label: '高空抛物监控',
+						name: 'highAltitudeMonitor',
+						value: '未完善'
+					},
 				],
 				form: {
 					confirmFlag: '待审核',
@@ -108,8 +158,12 @@
 				currentId: '',
 				currentData: {},
 				id: "",
-				imageUrls: [],
-				goodsImageUrls: [],
+				foImageUrls: [], //四个一工程照片
+				fireFacsImageUrls: [], //灭火器图片
+				scImageUrls: [], // 安全通道图片
+				patrolImageUrls: [], //周边巡查照片
+				antiCollisionImageUrls: [], //防撞装置照片
+				haImageUrls: [], //高空抛物监控照片
 				selectStatus: "",
 				remark: ""
 			}
@@ -121,16 +175,19 @@
 
 		methods: {
 			getDetailInfo(id) {
-				getLabelReportingDetail({
+				getSchoolReportingDetail({
 					taskId: id
 				}).then(res => {
 					console.log(res);
 					let data = res.data;
 					this.basicData.forEach(item => {
-						item.value = data[item.name]
+						item.value = data[item.name] || "未完善"
 					})
-					this.imageUrls = this.setImages(data.imageUrls);
-					this.goodsImageUrls = this.setImages(data.goodsImageUrls);
+					this.foImageUrls = this.setImages(data.foImageUrls);
+					this.fireFacsImageUrls = this.setImages(data.fireFacsImageUrls);
+					this.patrolImageUrls = this.setImages(data.patrolImageUrls);
+					this.antiCollisionImageUrls = this.setImages(data.antiCollisionImageUrls);
+					this.haImageUrls = this.setImages(data.haImageUrls);
 				})
 			},
 			setImages(str) {
@@ -159,7 +216,7 @@
 					})
 					return;
 				}
-				setLabelReporting(data).then(res => {
+				setSchoolReporting(data).then(res => {
 					if (res.code !== 200) {
 						uni.showToast({
 							title: '更新失败',
diff --git a/subPackage/workbench/views/schoolReportDetail.vue b/subPackage/workbench/views/schoolReportDetail.vue
new file mode 100644
index 0000000..02409e3
--- /dev/null
+++ b/subPackage/workbench/views/schoolReportDetail.vue
@@ -0,0 +1,8 @@
+<template>
+</template>
+
+<script>
+</script>
+
+<style>
+</style>
\ No newline at end of file

--
Gitblit v1.9.3