liuQiang 1 рік тому
батько
коміт
e87911fee5

+ 3 - 3
api/fpdDetection/index.js

@@ -13,7 +13,7 @@ export function createFpdDetection(data) {
 export function updateFpdDetection(data) {
   return request({
     url: '/admin-api/backend/fpd-detection/update',
-    method: 'put',
+    method: 'post',
     data: data
   })
 }
@@ -21,8 +21,8 @@ export function updateFpdDetection(data) {
 // 删除消防设备维护和检测台账
 export function deleteFpdDetection(id) {
   return request({
-    url: '/admin-api/backend/fpd-detection/delete?id=' + id,
-    method: 'delete'
+    url: `/admin-api/backend/fpd-detection/delete?id=${id}`,
+    method: 'post'
   })
 }
 

+ 36 - 4
pages.json

@@ -224,12 +224,12 @@
 				"style": {
 					"navigationBarTitleText": "隐患管理"
 				}
-			},{
+			}, {
 				"path": "fire/metting_regsiter/metting_sigin",
 				"style": {
 					"navigationBarTitleText": "会议报名"
 				},
-				"query": ["metId","metName"]
+				"query": ["metId", "metName"]
 			},
 			{
 				"path": "fire/inspection_active/index",
@@ -345,14 +345,14 @@
 					"navigationBarTitleText": "编辑微型消防站",
 					"enablePullDownRefresh": false
 				}
-			},{
+			}, {
 				"path": "fire/fire_station/people_fireStation/people_fireStation",
 				"style": {
 					"navigationBarTitleText": "编辑人员",
 					"enablePullDownRefresh": false
 				},
 				"query": ["addId"]
-			},{
+			}, {
 				"path": "fire/fire_station/fireStation_details/fireStation_details",
 				"style": {
 					// 微型消防站详情
@@ -911,8 +911,40 @@
 					"navigationBarTitleText": "新增消防设施维护和检测",
 					"enablePullDownRefresh": false
 				}
+			},
+			{
+				"path": "fire/fpd_detection/detection_details/detection_details",
+				"style": {
+					"navigationBarTitleText": "消防设施维护和检测详情",
+					"enablePullDownRefresh": false
+				}
+			},
+			{
+				"path": "fire/fpd_detection/edit_detection/edit_detection",
+				"style": {
+					"navigationBarTitleText": "修改消防设施维护和检测",
+					"enablePullDownRefresh": false
+				}
 			}
+
             ]
+
+		
+	}, {
+		"root": "pagesB",
+		"pages": [{
+			"path": "fire/fireSpecial/index",
+			"style": {
+				"navigationBarTitleText": "特种作业人员"
+			}
+		}, {
+			"path": "fire/fireWork/index",
+			"style": {
+				"navigationBarTitleText": "动火审批",
+				"enablePullDownRefresh": false
+			}
+		}]
+
 	}],
 	"tabBar": {
 		"color": "#000000",

+ 4 - 0
pages/work/index.vue

@@ -158,6 +158,10 @@ export default {
 				return this.renyuan
 			}else if(val=='fire_inspetItem'){
 				return this.archive;
+			}else if(val=='fireWork'){
+				return this.archive;
+			}else if(val=='fireSpecial'){
+				return this.archive;
 			}
 		},
 		// 顶部个人信息跳转

+ 217 - 42
pagesA/fire/check_active/check_implement/check_implement.vue

@@ -3,7 +3,7 @@
 		<view>
 
 			<!-- 数据类型为消防设备 --比如一个灭火器 -->
-			<u-list @scrolltolower="scrolltolower" v-if="!getqrcode">
+			<u-list height="87vh" @scrolltolower="scrolltolower" v-if="!getqrcode">
 				<u-list-item @click="goDetail" v-for="(item, index) in tableData" :key="index">
 					<view>
 						<view class="titles">{{item.inspName}}:{{item.inspContent}}</view>
@@ -66,7 +66,34 @@
 					</view>
 					<view class="slot-contents" v-if="item.showDescription&&item.inspType!='fpd'"
 						@click="descript(index)">
-						<textarea v-model="item.description" placeholder="请输入隐患描述内容"></textarea>
+						<textarea v-model="item.description" placeholder="请选择或隐患描述内容"
+							@click="clickChoiceDanger(index)"></textarea>
+						<!-- ----隐患 -->
+						<u-popup :show="item.showDanger" :round="10" @close="item.showDanger=false">
+							<view style="width: 90vw;overflow-y: auto;margin-bottom: 80rpx;padding:10px">
+								<text class="text-xl">选择隐患类型:</text>
+								<view class="" class="person-forward">
+									<u-checkbox-group v-for="(items, indexs) in item.choiceDanger" :key="indexs"
+										placement="column" v-model="items.checkedListDanger"
+										@change="checkboxChange2(items.name,$event)" activeColor="#4CB2B6"
+										iconSize="red">
+										<u-checkbox :customStyle="{marginBottom: '60rpx'}" :label="items.name"
+											:name="items.name">
+										</u-checkbox>
+									</u-checkbox-group>
+								</view>
+								<view class="flex flex-direction-row "
+									style="position: fixed;bottom: 10px;left: 50%;transform: translate(-50%);height: 100rpx;width: 80%">
+									<u-button shape="circle" type="primary" color="#4CB2B6" text="确定"
+										@click="checkboxConfirm2(index)" customStyle="margin-right:20px;padding:0 30px">
+									</u-button>
+									<u-button type="primary" plain color="#4CB2B6" text="取消" shape="circle"
+										@click="checkboxCancel2(index)" customStyle="padding:0 30px">
+									</u-button>
+								</view>
+							</view>
+						</u-popup>
+						<!-- ----隐患 -->
 					</view>
 					<!-- <u-modal :show="show2" title="隐患描述" @confirm="descript(index)" @cancel="show2 = false">
 						<view class="slot-content">
@@ -118,8 +145,10 @@
 					</view>
 				</u-list-item>
 			</u-list>
+
 		</view>
-		<view style="width: 60%;position: fixed;bottom:60rpx;z-index: 9999;left: 50%;transform: translate(-50%);"
+		<view
+			style="width: 60%;position: fixed;bottom:10rpx;z-index: 9999;left: 50%;transform: translate(-50%);height: 6vh;"
 			v-if="!getqrcode">
 			<div class="btnList" v-if="tableData.length!=0">
 				<u-button shape="circle" type="primary" color="#4CB2B6" text="暂存" customStyle="margin-right:20%"
@@ -130,9 +159,9 @@
 				</u-button>
 			</div>
 		</view>
-		<view style="text-align: center;" v-if="tableData.length==0&&!getqrcode">
+		<!-- <view style="text-align: center;" v-if="tableData.length==0&&!getqrcode">
 			<view class="text-gray" style="padding-top: 20px;font-size: 40rpx;"> 暂无任务 </view>
-		</view>
+		</view> -->
 		<!-- //"show巡查未完成判断--可能需要打开 -->
 		<u-modal :show="show" :title="title" :content='content' @confirm="show = false"></u-modal>
 		<u-modal :show="show3" :title="title" content='未完成有问题检查项拍照' @confirm="show3= false"></u-modal>
@@ -158,6 +187,35 @@
 							</uni-grid-item>
 						</uni-grid>
 					</view>
+					<!-- ----扫码选择隐患 -->
+					<view class="slot-contents" v-if="show5">
+						<textarea v-model="description2" placeholder="请输入描述内容" @click="popupChoiceDangerFpd"></textarea>
+						<u-popup :show="showPopupDanger" :round="10" @close="showPopupDanger=false">
+							<view style="width: 90vw;overflow-y: auto;margin-bottom: 80rpx;padding:10px">
+								<text class="text-xl">选择隐患类型:</text>
+								<view class="" class="person-forward">
+									<u-checkbox-group v-for="(items, indexs) in choiceDanger" :key="indexs"
+										placement="column" v-model="items.checkedListDanger"
+										@change="checkboxChange3(items.name,$event)" activeColor="#4CB2B6"
+										iconSize="red">
+										<u-checkbox :customStyle="{marginBottom: '60rpx'}" :label="items.name"
+											:name="items.name">
+										</u-checkbox>
+									</u-checkbox-group>
+								</view>
+								<view class="flex flex-direction-row "
+									style="position: fixed;bottom: 10px;left: 50%;transform: translate(-50%);height: 100rpx;width: 80%">
+									<u-button shape="circle" type="primary" color="#4CB2B6" text="确定"
+										@click="checkboxConfirm3()" customStyle="margin-right:20px;padding:0 30px">
+									</u-button>
+									<u-button type="primary" plain color="#4CB2B6" text="取消" shape="circle"
+										@click="checkboxCancel3()" customStyle="padding:0 30px">
+									</u-button>
+								</view>
+							</view>
+						</u-popup>
+					</view>
+					<!-- ----扫码选择隐患 -->
 					<view class="show-title">
 						<view class="">巡检拍照:<text style="color:#822e2e;"></text></view>
 						<view class="">
@@ -188,11 +246,11 @@
 				暂无数据
 			</view>
 		</u-popup>
-		<u-modal :show="show5" title="隐患描述" @confirm="descriptFpd" @cancel="show5 = false">
+		<!-- 	<u-modal :show="show5" title="隐患描述" @confirm="descriptFpd" @cancel="show5 = false">
 			<view class="slot-content shebeidesrip">
 				<textarea v-model="description2" placeholder="请输入描述内容" />
 			</view>
-		</u-modal>
+		</u-modal> -->
 		<!-- 多选closeable closeOnClickOverlay--点击遮罩层不可关闭所属部门的弹出内容选中 ,选择部门-->
 	</view>
 </template>
@@ -217,6 +275,12 @@
 	import loadImage from 'blueimp-load-image';
 	const baseUrl = config.baseUrl
 	const baseUrlImg = config.baseUrlImg
+	//隐患弹框--
+	import {
+		DICT_TYPE,
+		getDictDatas
+	} from '@/utils/dict';
+	//隐患弹框--
 	export default {
 		components: {
 			// #ifdef H5
@@ -225,6 +289,16 @@
 		},
 		data() {
 			return {
+				// ----隐患
+				choiceDanger: getDictDatas(DICT_TYPE.DANGER_TYPE),
+				checkedDanger: [],
+				checkedListDanger: [], //选择的隐患数据
+				DangerIndex: "", //隐患描述的位置下标
+				// ----隐患
+				// ----扫码选择隐患
+				showPopupDanger: false,
+				checkedPopupDanger: [], //
+				// ----扫码选择隐患
 				insType: 1, //1代表检查类型为消防设施,显示扫一扫按钮,其他则显示拍照
 				// danger: danger, //有隐患图片
 				moren: `${baseUrlImg}/checkActive/moren.png`, //默认图片
@@ -284,7 +358,8 @@
 				selectedIndex: '',
 				qrcodeShow: false,
 				qrcodeResault: '等待扫码...',
-				onDecodeIndex: ''
+				onDecodeIndex: '',
+
 			}
 		},
 		watch: {
@@ -297,6 +372,11 @@
 		},
 		// 在 vue页面,向起始页通过事件传递数据
 		onLoad: function(option) {
+			this.choiceDanger.map(i => {
+				i.name = i.label;
+				i.id = i.value;
+			});
+			console.log(this.choiceDanger, 'this.choiceDanger');
 			this.type = option.type ? option.type : ''
 			that = this;
 			const eventChannel = this.getOpenerEventChannel();
@@ -313,6 +393,8 @@
 
 				if (that.newtableDatas && that.newtableDatas[0][option.broadId]) { //获取本地缓存的数据
 					that.tableData = that.newtableDatas[0][option.broadId]
+					that.tableData.map(i=>i.choiceDanger=that.choiceDanger)
+					console.log(that.tableData,'that.tableData');
 					that.insTypeData = uni.getStorageSync('insTypeData')
 
 				} else {
@@ -321,25 +403,82 @@
 				}
 			})
 		},
-		onShow() {
-			// console.log(uni.getStorageSync('tableData'), 'uni.getStorageSync');
-			// this.tableData=uni.getStorageSync('tableData')
-			// if(uni.getStorageSync('tableData')){
-			// 
-			// 	console.log(this.tableData,'1111111111');
-			// }
-
-		},
-		// watch: {
-		// 	maShow: {
-		// 		handler(newLength, oldLength) {
-		// 			uni.setStorageSync('tableData', this.tableData)
-		// 		},
-		// 		deep: true,
-		// 		immediate: true
-		// 	}
-		// },
+		onShow() {},
 		methods: {
+			// ----隐患
+			checkboxConfirm2(index) {
+				this.tableData[index].description = this.checkedListDanger.toString()
+				this.tableData[index].showDanger = false
+				this.$forceUpdate()
+			},
+			checkboxCancel2(index) {
+				this.tableData[index].showDanger = false
+				this.checkedListDanger = []
+				this.$forceUpdate()
+			},
+			clickChoiceDanger(index) { //描述框点击事件
+				this.checkedListDanger = this.tableData[index].description.split(',')
+				if (this.checkedListDanger.includes('其他')) {
+					this.tableData[index].showDanger = false
+				} else {
+					this.tableData[index].showDanger = true
+					this.DangerIndex = index
+					this.$forceUpdate()
+				}
+				this.tableData[index].choiceDanger.map((i, indexs) => { //选中的回显
+					i.checkedListDanger = []
+					this.checkedListDanger.map(v => {
+						if (i.name == v) {
+							this.tableData[index].choiceDanger[indexs].checkedListDanger.push(v)
+						}
+					})
+				})
+			},
+			checkboxChange2(i, n) { //勾选的事件
+				if (i && n.length != 0) {
+					this.checkedListDanger.push(i)
+				} else if (i && n.length == 0) {
+					this.checkedListDanger = this.checkedListDanger.filter(item => item != i)
+				}
+			},
+			// ----隐患
+			// ----扫码选择隐患
+			popupChoiceDangerFpd() {
+				this.checkedPopupDanger = this.description2.split(',')
+				if (this.checkedPopupDanger.includes('其他')) {
+					this.showPopupDanger = false
+				} else {
+					this.showPopupDanger = true
+					this.$forceUpdate()
+				}
+				this.choiceDanger.map((i, indexs) => { //选中的回显
+					i.checkedListDanger = []
+					this.checkedPopupDanger.map(v => {
+						if (i.name == v) {
+							this.choiceDanger[indexs].checkedListDanger.push(v)
+						}
+					})
+				})
+
+			},
+			checkboxConfirm3(index) {
+				this.description2 = this.checkedPopupDanger.toString()
+				this.showPopupDanger = false
+				this.$forceUpdate()
+			},
+			checkboxCancel3(index) {
+				this.showPopupDanger = false
+				this.checkedPopupDanger = []
+				this.$forceUpdate()
+			},
+			checkboxChange3(i, n) { //勾选的事件
+				if (i && n.length != 0) {
+					this.checkedPopupDanger.push(i)
+				} else if (i && n.length == 0) {
+					this.checkedPopupDanger = this.checkedPopupDanger.filter(item => item != i)
+				}
+			},
+			// ----扫码选择隐患
 			//扫码
 			erWeiMa(checkTableDataIds, index) {
 				// #ifdef H5
@@ -376,7 +515,7 @@
 								if (reponse.code == 0) {
 									that.maShow = true
 									that.insTypeData = reponse.data.records
-									that.insTypeData.map(i => i.attUrl = [])
+									that.insTypeData.map(i => {})
 								}
 							})
 							setTimeout(() => {
@@ -584,7 +723,6 @@
 			},
 			// 获取数据
 			getData(pageNo, value = '') {
-				console.log('999999999')
 				this.loading = true
 				this.formData.pageNo = pageNo
 				CheckActiveImplement(JSON.stringify(this.formData)).then(response => {
@@ -604,6 +742,9 @@
 							i.hisFpdCreateReqVOList = []
 							i.hisResultCreateReqVOList = []
 							i.qrcodeShow = false
+							// ----隐患
+							i.choiceDanger = this.choiceDanger //隐患描述下拉的数据
+							// ----隐患
 						})
 					}
 					console.log(this.tableData, 'this.tableData');
@@ -690,10 +831,12 @@
 				}
 				if (items.isNormal == 0 && items.subValue == 1) {
 					item.showDescription = true; // 显示描述框
+					// ----隐患
+					this.tableData[this.descriptIndex].choiceDanger.map(i => i.checkedListDanger = [])
+					// ----隐患
 				} else {
 					item.showDescription = false; // 显示描述框
 				}
-				console.log(this.tableData, 'this.tableData不是消防');
 
 			},
 			// 消防设备扫码
@@ -747,6 +890,15 @@
 						items.subValue = items.subValue == 0 ? 1 : 0
 					}
 				}
+				// ----扫码选择隐患
+				if (items.isNormal == 0 && items.subValue == 1) {
+					this.show5 = true; // 显示描述框
+					console.log();
+					// this.insTypeData.choiceDanger.map(i => i.checkedListDanger = [])
+				} else {
+					this.show5 = false; // 显示描述框
+				}
+				// ----扫码选择隐患
 
 			},
 			checkPopupConfirm(fpdId) { //弹出得到的那一条数据insTypeData的id    弹出保存
@@ -797,7 +949,9 @@
 				} else {
 					that.$modal.msg('请勾选检查结果')
 				}
-
+				// ----扫码选择隐患
+				this.description2 = ''
+				this.show5=false
 				// this.tableData.map((i) => { //这一段不用放开,以前是用于消防设备扫多个码统计数据展示的
 				// 	if (i.id = fpdId) {
 				// 		let isNormalZero=new Array(i.inspectResultList.length)  //新建数组用来放isNormal为1和不为1处理后的分别的数组
@@ -855,7 +1009,7 @@
 											const compressedFile = blob;
 											// 将压缩后的文件 `compressedFile` 转换为临时URL
 											const fileUrl = URL.createObjectURL(
-											compressedFile);
+												compressedFile);
 
 											uni.uploadFile({
 												url: baseUrl +
@@ -882,7 +1036,7 @@
 																	.push(
 																		imgUrl
 																		.data
-																		)
+																	)
 															}
 														})
 													} else { //消防设备外(扫一扫下方)展示的图片
@@ -895,7 +1049,7 @@
 																	.push(
 																		imgUrl
 																		.data
-																		)
+																	)
 															}
 														})
 													}
@@ -1039,15 +1193,15 @@
 		display: flex
 	}
 
-	/deep/.u-icon--right[data-v-172979f2],
-	/deep/.u-icon--right.data-v-172979f2,
-	/deep/.u-icon--right {
-		background-color: #f8f8f8;
-		border-radius: 5rpx;
-		position: absolute;
-		top: -14rpx;
-		right: 20rpx;
-	}
+	// /deep/.u-icon--right[data-v-172979f2],
+	// /deep/.u-icon--right.data-v-172979f2,
+	// /deep/.u-icon--right {
+	// 	background-color: #f8f8f8;
+	// 	border-radius: 5rpx;
+	// 	position: absolute;
+	// 	top: -14rpx;
+	// 	right: 20rpx;
+	// }
 
 	.uni-grid-wraps {
 		margin-left: 60rpx;
@@ -1103,4 +1257,25 @@
 			/* 设置扫码容器高度 */
 		}
 	}
+
+	//隐患弹框
+	/deep/.u-popup__content {
+		overflow-y: auto;
+
+	}
+
+	.text-xl {
+		font-size: 18px;
+		font-weight: 600;
+	}
+
+	.person-forward {
+		padding-top: 40rpx;
+		display: flex;
+		flex-direction: column;
+		flex-wrap: wrap;
+		overflow-y: auto;
+		margin-bottom: 100rpx;
+
+	}
 </style>

+ 1 - 1
pagesA/fire/check_active/index.vue

@@ -245,7 +245,7 @@
 				<text class="text-xl">检查人员</text>
 				<view class="" class="person-forward">
 					<u-checkbox-group v-model="item.checkboxValue1" v-for="(item, index) in personInfo" :key="index"
-						placement="column" @change="checkboxChange2(item.user_id,$event)">
+						placement="column" @change="checkboxChange2(item.user_id,$event)" activeColor="#4CB2B6">
 						<u-checkbox :customStyle="{marginBottom: '8px'}" :label="item.nickname" :name="item.user_id">
 						</u-checkbox>
 					</u-checkbox-group>

+ 154 - 17
pagesA/fire/check_inspection/check_inspection.vue

@@ -45,7 +45,7 @@
 		<view class="cont" v-if="!getqrcode">
 			主动检查记录
 		</view>
-		<div v-if="!getqrcode">
+		<view v-if="!getqrcode" class="main-content">
 			<uni-card v-for="(item, index) in tableData" :key="index">
 				<view class="titles"><text class="name-align-task">检查项:</text>{{item.inspName}}
 					<u-icon v-if="item.isdenger==1" name="warning-fill" color="#ff5647" size="28"
@@ -57,7 +57,7 @@
 					<text @click="addClickDetail(item.id)" class="detail">查看详情</text>
 				</view>
 			</uni-card>
-		</div>
+		</view>
 		<!-- 扫码弹出层 -->
 		<u-popup :show="maShow" :round="10" @close="maShow=false">
 			<view v-if="insTypeData!=''">
@@ -81,13 +81,40 @@
 							</uni-grid>
 
 						</view>
-						<view class="slot-contents" v-if="show2" @click="descript(index)">
+						<!-- 	<view class="slot-contents" v-if="show2">
 							<textarea v-model="dangerDescribe" placeholder="请输入隐患描述内容"></textarea>
-						</view>
-						<!-- <view class="slot-contents" @click="descript(index)">
-							<textarea v-model="remark" placeholder="请输入描述内容"></textarea>
 						</view> -->
 					</view>
+					<!-- ----扫码选择隐患 -->
+					<view class="slot-contents" v-if="show2">
+						<textarea v-model="dangerDescribe" placeholder="请输入隐患描述内容"
+							@click="popupChoiceDangerFpd('show2')"></textarea>
+						<u-popup :show="showPopupDanger" :round="10" @close="showPopupDanger=false">
+							<view style="width: 90vw;overflow-y: auto;margin-bottom: 80rpx;padding:10px">
+								<text class="text-xl">选择隐患类型:</text>
+								<view class="" class="person-forward">
+									<u-checkbox-group v-for="(items, indexs) in choiceDanger" :key="indexs"
+										placement="column" v-model="items.checkedListDanger"
+										@change="checkboxChange3(items.name,$event)" activeColor="#4CB2B6"
+										iconSize="red">
+										<u-checkbox :customStyle="{marginBottom: '60rpx'}" :label="items.name"
+											:name="items.name">
+										</u-checkbox>
+									</u-checkbox-group>
+								</view>
+								<view class="flex flex-direction-row "
+									style="position: fixed;bottom: 10px;left: 50%;transform: translate(-50%);height: 100rpx;width: 80%">
+									<u-button shape="circle" type="primary" color="#4CB2B6" text="确定"
+										@click="checkboxConfirm3()" customStyle="margin-right:20px;padding:0 30px">
+									</u-button>
+									<u-button type="primary" plain color="#4CB2B6" text="取消" shape="circle"
+										@click="checkboxCancel3()" customStyle="padding:0 30px">
+									</u-button>
+								</view>
+							</view>
+						</u-popup>
+					</view>
+					<!-- ----扫码选择隐患 -->
 					<view class="show-title">
 						<view class="">巡检拍照:<text style="color:#822e2e;"></text></view>
 						<view class="">
@@ -148,13 +175,43 @@
 							</uni-grid>
 
 						</view>
-						<view class="slot-contents" v-if="showManual" @click="descript(index)">
+						<!-- 		<view class="slot-contents" v-if="showManual">
 							<textarea v-model="dangerDescribe" placeholder="请输入隐患描述内容"></textarea>
-						</view>
+						</view> -->
 						<!-- <view class="slot-contents" @click="descript(index)">
 							<textarea class="slot-contents" v-model="remark" placeholder="请输入描述内容"></textarea>
 						</view> -->
 					</view>
+					<!-- ----扫码选择隐患 -->
+					<view class="slot-contents" v-if="showManual">
+						<textarea v-model="dangerDescribe" placeholder="请输入隐患描述内容"
+							@click="popupChoiceDangerFpd('Manual')"></textarea>
+						<u-popup :show="showPopupDanger" :round="10" @close="showPopupDanger=false">
+							<view style="width: 90vw;overflow-y: auto;margin-bottom: 80rpx;padding:10px">
+								<text class="text-xl">选择隐患类型:</text>
+								<view class="" class="person-forward">
+									<u-checkbox-group v-for="(items, indexs) in choiceDanger" :key="indexs"
+										placement="column" v-model="items.checkedListDanger"
+										@change="checkboxChange3(items.name,$event)" activeColor="#4CB2B6"
+										iconSize="red">
+										<u-checkbox :customStyle="{marginBottom: '60rpx'}" :label="items.name"
+											:name="items.name">
+										</u-checkbox>
+									</u-checkbox-group>
+								</view>
+								<view class="flex flex-direction-row "
+									style="position: fixed;bottom: 10px;left: 50%;transform: translate(-50%);height: 100rpx;width: 80%">
+									<u-button shape="circle" type="primary" color="#4CB2B6" text="确定"
+										@click="checkboxConfirm3()" customStyle="margin-right:20px;padding:0 30px">
+									</u-button>
+									<u-button type="primary" plain color="#4CB2B6" text="取消" shape="circle"
+										@click="checkboxCancel3()" customStyle="padding:0 30px">
+									</u-button>
+								</view>
+							</view>
+						</u-popup>
+					</view>
+					<!-- ----扫码选择隐患 -->
 					<view class="show-title">
 						<view class="">巡检拍照:<text style="color:#822e2e;"></text></view>
 						<view class="">
@@ -252,6 +309,12 @@
 	import {
 		shijianc
 	} from '@/utils/common.js'
+	//隐患弹框--
+	import {
+		DICT_TYPE,
+		getDictDatas
+	} from '@/utils/dict';
+	//隐患弹框--
 	let that = '';
 	export default {
 		components: {
@@ -261,6 +324,11 @@
 		},
 		data() {
 			return {
+				// ----扫码选择隐患
+				showPopupDanger: false,
+				choiceDanger: getDictDatas(DICT_TYPE.DANGER_TYPE),
+				checkedPopupDanger: [], //
+				// ----扫码选择隐患
 				manualValue: '', //手动输入的设施编号
 				manualPopup: false,
 				scan: `${baseUrlImg}/checkActive/scan.png`,
@@ -331,6 +399,10 @@
 			}
 		},
 		onShow() {
+			this.choiceDanger.map(i => {
+				i.name = i.label;
+				i.id = i.value;
+			});
 			this.tableData = []
 			this.actions = []
 			that = this;
@@ -354,6 +426,43 @@
 			this.getInspect()
 		},
 		methods: {
+			// ----扫码选择隐患
+			popupChoiceDangerFpd(type) {
+				this.checkedPopupDanger = this.dangerDescribe.split(',')
+				if (this.checkedPopupDanger.includes('其他')) {
+					this.showPopupDanger = false
+				} else {
+					this.showPopupDanger = true
+					this.$forceUpdate()
+				}
+				this.choiceDanger.map((i, indexs) => { //选中的回显
+					i.checkedListDanger = []
+					this.checkedPopupDanger.map(v => {
+						if (i.name == v) {
+							this.choiceDanger[indexs].checkedListDanger.push(v)
+						}
+					})
+				})
+
+			},
+			checkboxConfirm3(index) {
+				this.dangerDescribe = this.checkedPopupDanger.toString()
+				this.showPopupDanger = false
+				this.$forceUpdate()
+			},
+			checkboxCancel3(index) {
+				this.showPopupDanger = false
+				this.checkedPopupDanger = []
+				this.$forceUpdate()
+			},
+			checkboxChange3(i, n) { //勾选的事件
+				if (i && n.length != 0) {
+					this.checkedPopupDanger.push(i)
+				} else if (i && n.length == 0) {
+					this.checkedPopupDanger = this.checkedPopupDanger.filter(item => item != i)
+				}
+			},
+			// ----扫码选择隐患
 			qrScanOpen() {},
 			async getInspect() {
 				const res = await getInspectInfo(1, 999)
@@ -619,7 +728,7 @@
 																	.push(
 																		imgUrl
 																		.data
-																		)
+																	)
 															}
 														})
 													}
@@ -789,6 +898,9 @@
 						if (!this.saveImplement[0].dangerDescribe && this.saveImplement[0].isdenger == 1) return that
 							.$modal.msgError('请填写隐患描述');
 						this.baocun(this.saveImplement[0])
+						// ----扫码选择隐患
+						this.description2 = ''
+						this.show2 = false
 					} else {
 						that.$modal.alert('请勾选检查结果')
 					}
@@ -1020,16 +1132,20 @@
 		display: flex
 	}
 
-	/deep/.u-icon--right[data-v-172979f2],
-	/deep/.u-icon--right.data-v-172979f2,
-	.u-icon--right {
-		// background-color: #f8f8f8;
-		border-radius: 5rpx;
-		position: absolute;
-		top: -14rpx;
-		right: 14rpx;
+	.main-content {
+
+		/deep/.u-icon--right[data-v-172979f2],
+		/deep/.u-icon--right.data-v-172979f2,
+		.u-icon--right {
+			// background-color: #f8f8f8;
+			border-radius: 5rpx;
+			position: absolute;
+			top: -14rpx;
+			right: 14rpx;
+		}
 	}
 
+
 	/deep/.danwei.u-icon--right[data-v-172979f2],
 	/deep/.danwei.u-icon--right.data-v-172979f2,
 	.danwei.u-icon--right {
@@ -1141,4 +1257,25 @@
 			border: 1px solid #726f74 !important;
 		}
 	}
+
+	//隐患弹框
+	/deep/.u-popup__content {
+		overflow-y: auto;
+
+	}
+
+	.text-xl {
+		font-size: 18px;
+		font-weight: 600;
+	}
+
+	.person-forward {
+		padding-top: 40rpx;
+		display: flex;
+		flex-direction: column;
+		flex-wrap: wrap;
+		overflow-y: auto;
+		margin-bottom: 100rpx;
+
+	}
 </style>

+ 69 - 37
pagesA/fire/fire_station/people_fireStation/people_fireStation.vue

@@ -155,45 +155,77 @@
 		},
 		methods: {
 			addNewPeople() {
-				const newPerson = {
-					name: '',
-					userNum: '',
-					phone: '',
-					worker: "",
-					power: "",
-					// 其他字段
-				};
-				this.membersList.push(newPerson);
+				const MAX_LENGTH = 1; // 假设你想限制数组最大长度为6
+				if (this.membersList.length < MAX_LENGTH) {
+					const newPerson = {
+						name: '',
+						userNum: '',
+						phone: '',
+						worker: '',
+						power: '',
+						// 其他字段
+					};
+					this.membersList.push(newPerson);
+				} else {
+					// 达到最大数量,给出提示或执行其他操作
+					uni.showToast({
+						title: '只支持一位添加',
+						icon: 'none', // 图标类型,可选值:'success', 'loading', 'none'
+						duration: 2000, // 持续时间,单位为毫秒,默认值为 1500
+						mask: false, // 是否显示透明蒙层,防止触摸穿透,默认值为 false
+						success() {
+							console.log('toast消息提示显示成功');
+						},
+						fail(err) {
+							console.error('toast消息提示显示失败', err);
+						}
+					});
+				}
 			},
-			addSure() {
-				creatFirePeople({
-					duty: this.membersList[0].power,
-					empName: this.membersList[0].name,
-					empType: this.membersList[0].worker,
-					idcardno: this.membersList[0].userNum,
-					microstationid: this.fireStationId - 0,
-					mobile: this.membersList[0].phone,
-				}).then(res => {
-					if (res.data) {
-						this.getAllFire()
-						uni.showToast({
-							title: '添加成功',
-							icon: 'success', // 图标类型,可选值:'success', 'loading', 'none'
-							duration: 2000, // 持续时间,单位为毫秒,默认值为 1500
-							mask: false, // 是否显示透明蒙层,防止触摸穿透,默认值为 false
-							success() {
-								console.log('toast消息提示显示成功');
-							},
-							fail(err) {
-								console.error('toast消息提示显示失败', err);
-							}
-						});
-						this.membersList = []
-					}
-					console.log(res, 'r11111');
-				})
-				// console.log(this.membersList, 'memberList');
 
+			addSure() {
+				if (!this.userRules && !this.phoneRules && !this.nameRules) {
+					creatFirePeople({
+						duty: this.membersList[0].power,
+						empName: this.membersList[0].name,
+						empType: this.membersList[0].worker,
+						idcardno: this.membersList[0].userNum,
+						microstationid: this.fireStationId - 0,
+						mobile: this.membersList[0].phone,
+					}).then(res => {
+						if (res.data) {
+							this.getAllFire()
+							uni.showToast({
+								title: '添加成功',
+								icon: 'success', // 图标类型,可选值:'success', 'loading', 'none'
+								duration: 2000, // 持续时间,单位为毫秒,默认值为 1500
+								mask: false, // 是否显示透明蒙层,防止触摸穿透,默认值为 false
+								success() {
+									console.log('toast消息提示显示成功');
+								},
+								fail(err) {
+									console.error('toast消息提示显示失败', err);
+								}
+							});
+							this.membersList = []
+						}
+						console.log(res, 'r11111');
+					})
+					// console.log(this.membersList, 'memberList');
+				} else {
+					uni.showToast({
+						title: '请检查表单项',
+						icon: 'none', // 图标类型,可选值:'success', 'loading', 'none'
+						duration: 2000, // 持续时间,单位为毫秒,默认值为 1500
+						mask: false, // 是否显示透明蒙层,防止触摸穿透,默认值为 false
+						success() {
+							console.log('toast消息提示显示成功');
+						},
+						fail(err) {
+							console.error('toast消息提示显示失败', err);
+						}
+					});
+				}
 			},
 			change(e) {
 				console.log("e:", e);

+ 47 - 6
pagesA/fire/fpd_detection/add_detection/add_detection.vue

@@ -5,7 +5,8 @@
 			<u-form ref="customForm" :rules='customRules' :model="formData" labelPosition="left" labelWidth="150"
 				labelAlign="left">
 				<view class=" flex  flex-direction width100">
-					<u-form-item label="检测项目" prop="detinspect" :required="true" @click="showInspOption = true;hideKeyboard();">
+					<u-form-item label="检测项目" prop="detinspect" :required="true"
+						@click="showInspOption = true;hideKeyboard();">
 						<u--input v-model="formData.detinspect" disabled disabledColor="#ffffff"
 							placeholder="请输入检测维保结果"></u--input>
 						<!-- <u-input v-model="formData.detinspect" placeholder="请输入检测项目" /> -->
@@ -49,8 +50,32 @@
 			<u-action-sheet :show="showreOption" :actions="resultOptions" title="请选择检测维保结果"
 				@close="showreOption = false" @select="setResult"></u-action-sheet>
 			<!-- 检测项目选项框 -->
-			<u-action-sheet :show="showInspOption" :actions="detinspectOptions" title="请选择检测项目"
-				@close="showInspOption = false" @select="setInsp"></u-action-sheet>
+<!-- 			<u-action-sheet :show="showInspOption" :actions="detinspectOptions" title="请选择检测项目"
+				@close="showInspOption = false" @select="setInsp"></u-action-sheet> -->
+			<!-- ----隐患 -->
+			<u-popup :show="showInspOption" :round="10" @close="showInspOption=false">
+				<view style="width: 70vw;overflow-y: auto;margin-bottom: 80rpx;padding:10px">
+					<text class="text-xl">选择隐患类型:</text>
+					<view class="" class="person-forward">
+						<u-checkbox-group   placement="column"
+							v-model="checkArr" @change="checkboxChange2" activeColor="#4CB2B6"
+							iconSize="red">
+							<u-checkbox  v-for="(items, indexs) in detinspectOptions" :key="indexs" :customStyle="{marginBottom: '60rpx'}" :label="items.name" :name="items.name">
+							</u-checkbox>
+						</u-checkbox-group>
+					</view>
+					<view class="flex flex-direction-row "
+						style="position: fixed;bottom: 10px;left: 50%;transform: translate(-50%);height: 100rpx;width: 80%">
+						<u-button shape="circle" type="primary" color="#4CB2B6" text="确定"
+							@click="checkboxConfirm2()" customStyle="margin-right:20px;padding:0 30px">
+						</u-button>
+						<u-button type="primary" plain color="#4CB2B6" text="取消" shape="circle"
+							@click="checkboxCancel2()" customStyle="padding:0 30px">
+						</u-button>
+					</view>
+				</view>
+			</u-popup>
+			<!-- ----隐患 -->
 		</view>
 		<uni-row class="heigthButton">
 			<u-button @click="submit('customForm')" type="primary" shape="circle" size="large" color="#4CB2B6"
@@ -95,6 +120,7 @@
 				//检测项目
 				showInspOption: false,
 				detinspectOptions: getDictDatas(DICT_TYPE.DICT_INSPECT_TYPE), //检测项目选项
+				checkArr: [],
 				// 每页数据量
 				pageSize: 5,
 				// 当前页
@@ -173,7 +199,7 @@
 			const trueArr = []
 			this.resultOptions.forEach(item => {
 				trueArr.push({
-					id: item.value,
+					id: item.label,
 					name: item.label
 				})
 			})
@@ -294,8 +320,23 @@
 				this.formData.attId = [];
 				console.log('移除了:', this.formData.attId);
 			},
-
-
+			//检测项目多选框选中
+			checkboxChange2(arr) { //勾选的事件
+				console.log('arr',arr);
+				this.checkArr = [...arr]
+				
+			},
+			checkboxConfirm2(){
+				this.showInspOption = false
+				this.formData.detinspect = this.checkArr.join(',')
+				// console.log('detinspect',this.formData.detinspect);
+			},
+			checkboxCancel2(){
+				this.showInspOption = false
+				const nowArr = this.formData.detinspect.split(',')
+				
+				this.checkArr = [...nowArr]
+			},
 			// 隐藏键盘
 			hideKeyboard() {
 

+ 141 - 0
pagesA/fire/fpd_detection/detection_details/detection_details.vue

@@ -0,0 +1,141 @@
+<template>
+	<view class=" uni-container" v-if="formData.id">
+		<view class="example container" :style="'height: ' + (screenHeight - wheight - 75) + 'px'">
+			<!-- 自定义表单校验 1-->
+			<u--form ref="customForm" :model="formData" labelPosition="top" labelWidth="150" labelAlign="left">
+				<u-form-item label="检测项目" prop="detinspect" :required="true">
+					<u-input v-model="formData.detinspect" disabled placeholder="请输入检测项目" />
+				</u-form-item>
+				<u-form-item label="预计检测时间" prop="detdate">
+					<uni-datetime-picker v-model="formData.detdate" type="datetime"
+						closeOnClickOverlay disabled></uni-datetime-picker>
+				</u-form-item>
+				<u-form-item label="检测维保结果" prop="detresult" >
+					<u-input v-model="formData.detresult" disabled placeholder="请输入检测维保结果" />
+				</u-form-item>
+				<u-form-item label="所属单位"  prop="orgId" :required="true">
+						<u-input v-model="formData.orgId" disabled placeholder="" />
+				</u-form-item>
+				<u-form-item label="附件">
+					<view class="buju">
+						<text v-if="formData.attId == '' || formData.attId == null">无</text>
+						<!-- #ifdef MP-WEIXIN -->
+						<text v-else style="color:#00a3f4;cursor: pointer;"
+							@click.native="down(formData.attId)">点击预览文件</text>
+						<!-- #endif -->
+						<!-- #ifdef H5 -->
+						<a v-else style="color:#00a3f4;cursor: pointer;" @click="down(formData.attId)">点击预览文件</a>
+						<!-- #endif -->
+					</view>
+				</u-form-item>
+			</u--form>
+		</view>
+		<uni-row class="heigthButton">
+			<u-button @click="gotoEditDetection(formData)" shape="circle" size="large" color="#4cb2b6" style="width: 60%;"
+				text="修改信息"></u-button>
+		</uni-row>
+	</view>
+</template>
+<script>
+	var that = null;
+	import {
+		downSee
+	} from '@/utils/common'
+	export default {
+		data() {
+			return {
+				formData: {
+					orgName: ''
+				},
+				formData: {
+					orgName: ''
+				},
+				screenHeight: this.$screenHeight,
+				wheight: '',
+			};
+		},
+		mounted() {
+			uni.createSelectorQuery().in(this).select('.heigthButton').boundingClientRect(data => {
+				this.wheight = data.height
+			}).exec()
+		},
+		onLoad: function(option) {
+			that = this
+			var data = option.id;
+
+
+			// 接收来自上个页面传递的参数
+			const eventChannel = this.getOpenerEventChannel();
+			eventChannel.on('acceptDataFromOpenerPage', function(val) {
+				that.formData = val;
+				console.log('val+++++++++++++++++++', that.formData);
+			});
+			this.formData.orgName = option.orgName
+			console.log("option: ", that.formData);
+		},
+
+		methods: {
+			// 下载附件
+			down(attId) {
+				console.log(attId, 'sdf');
+				downSee(attId)
+			},
+			// 传递当前页面数据到 ‘修改信息’
+			gotoEditDetection(val) {
+				uni.navigateTo({
+					url: '/pagesA/fire/fpd_detection/edit_detection/edit_detection',
+					events: {
+						// 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据
+						acceptDataFromOpenedPage: function(val) {
+							this.formData = val;
+						}
+					},
+					success: function(res) {
+						// 通过eventChannel向被打开页面传送数据
+						res.eventChannel.emit('acceptDataFromOpenerPage', val);
+					}
+				});
+			}
+		}
+	};
+</script>
+<style lang="scss" scoped>
+	page {
+		background-color: #F5F7F9;
+	}
+
+	.container {
+		position: relative;
+		// height: 220vh;
+		background-color: rgb(245, 247, 249);
+		overflow: auto;
+
+		.buju {
+			margin: 40rpx;
+		}
+	}
+
+	.cont {}
+
+	.weiwan {
+		color: #d51a52;
+		background: rgba(213, 26, 82, 0.2);
+		padding: 5rpx 20rpx;
+		border-radius: 2px;
+		border: 1px solid #d51a52;
+	}
+
+	.yiwan {
+		color: #4cb2b6;
+		background: rgba(76, 178, 182, 0.2);
+		padding: 5rpx 20rpx;
+		border-radius: 2px;
+		border: 1px solid #4cb2b6;
+	}
+
+	.miaoshu {
+		margin-right: 20rpx;
+		color: #274647;
+		font-weight: 600;
+	}
+</style>

+ 9 - 0
pagesA/fire/fpd_detection/edit_detection/edit_detection.vue

@@ -0,0 +1,9 @@
+<template>
+	<view class="">11q1</view>
+</template>
+
+<script>
+</script>
+
+<style>
+</style>

+ 57 - 9
pagesA/fire/fpd_detection/fpd_detection.vue

@@ -25,8 +25,7 @@
 		</view>
 		<!-- 卡片栏 -->
 		<view v-if="tableData.length>0 && isLoaded">
-			<view v-for="(item, index) in tableData" :key="index"
-				v-if="formData.orgName == item.orgName || formData.orgId == item.orgId">
+			<view v-for="(item, index) in tableData" :key="index">
 				<uni-card>
 					<!-- 标题 -->
 					<view class="titles">{{ item.detinspect }}</view>
@@ -40,7 +39,7 @@
 						<text class="conts">{{ item.orgId }}</text>
 					</view>
 					<view style="display: flex;margin-bottom: 15rpx; color: #728f90;">
-						<text class="name-align-drill">	检测维保结果:</text>
+						<text class="name-align-drill"> 检测维保结果:</text>
 						<text class="conts max-width">{{ item.detresult }}</text>
 					</view>
 					<!-- 删除按钮 -->
@@ -130,6 +129,59 @@
 					url: '/pagesA/fire/fpd_detection/add_detection/add_detection'
 				});
 			},
+			// 模态框内容
+			showModal(val) {
+				this.show = true;
+				this.id = val.id;
+				console.log('val', this.id);
+			},
+			close() {
+				this.show = false;
+				console.log('close');
+			},
+			cancel() {
+				this.show = false;
+				console.log('cancel');
+			},
+			//确定删除
+			confirm() {
+				this.show = false;
+				deleteFpdDetection(this.id).then(response => {
+					this.loading = true;
+					this.isLoaded = false
+					this.tableData = []
+					this.getData();
+					console.log(this.tableData, '删除后重新获取');
+				});
+			},
+			//获取表格数据
+			getData() {
+				this.loading = true;
+				getFpdDetectionPage(this.queryParams).then(response => {
+					this.tableData = response.data.list;
+					this.isLoaded = true
+					this.loading = false;
+					console.log('tableData', this.tableData);
+				});
+			},
+			// 传递数据
+			onClick(val, orgName) {
+				console.log(val, orgName, 'val');
+				this.isLoaded = false
+				uni.navigateTo({
+					url: '/pagesA/fire/fpd_detection/detection_details/detection_details?id=' + val.id,
+					events: {
+						// 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据
+						acceptDataFromOpenedPage: function(val) {
+							console.log(val, '打开页面传送到当前页面的数据');
+						}
+					},
+					success: function(res) {
+						// 通过eventChannel向被打开页面传送数据
+						res.eventChannel.emit('acceptDataFromOpenerPage', val);
+					}
+				});
+			},
 		},
 		watch: {
 			loading: {
@@ -141,13 +193,9 @@
 		},
 		onShow() {
 			// 执行查询
-			this.loading = true;
-			getFpdDetectionPage(this.queryParams).then(response => {
-				this.tableData = response.data.list;
-					this.isLoaded = true
-					this.loading = false;
-			});
+			this.getData()
 		}
+
 	}
 </script>
 

+ 49 - 9
pagesA/fire/unit_info/edit_unit_info/edit_unit_info.vue

@@ -10,14 +10,14 @@
 					<u-form-item label="负责人" prop="orgCharge" :required="true">
 						<u-input v-model="formData.orgCharge" placeholder="必填。请输入负责人" />
 					</u-form-item>
-					<u-form-item label="消防安全管理人">
-						<u-input v-model="formData.aqglr" placeholder="请输入楼宇名称" />
+					<u-form-item label="消防安全管理人" prop="aqglr"  :required="true">
+						<u-input v-model="formData.aqglr" placeholder="请输入消防安全管理人" />
 					</u-form-item>
-					<u-form-item label="消防安全管理人电话		">
-						<u-input v-model="formData.aqglrdh" placeholder="请输入档案负责人" />
+					<u-form-item label="消防安全管理人电话		" prop="aqglrdh" :required="true">
+						<u-input v-model="formData.aqglrdh" placeholder="请输入消防安全管理人电话" />
 					</u-form-item>
-					<u-form-item label="消防安全管理人身份证		">
-						<u-input v-model="formData.aqglrsfz" placeholder="请输入地理位置" />
+					<u-form-item label="消防安全管理人身份证		" prop="aqglrsfz" :required="true">
+						<u-input v-model="formData.aqglrsfz" placeholder="请输入消防安全管理人身份证" />
 					</u-form-item>
 					<u-form-item label="消防安全负责人	">
 						<u-input v-model="formData.aqzrr" placeholder="请输入消防安全负责人" />
@@ -232,13 +232,41 @@
 						message: '负责人不能为空',
 						trigger: ['blur', 'change']
 					},
+					aqglr: {
+						type: 'string',
+						required: true,
+						message: '消防安全管理人不能为空',
+						trigger: ['blur', 'change']
+					},
 					aqglrdh: {
-						pattern: /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/,
+						// pattern: /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/,
+						// 自定义验证函数
+						validator: (rule, value, callback) => {
+							// 上面有说,返回true表示校验通过,返回false表示不通过
+							// uni.$u.test.mobile()就是返回true或者false的
+							//是否符合正则 且不为空
+							const reg = /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/
+							if(reg.test(value) && value){
+								return true
+							}
+							return false
+						},
 						message: '请输入正确的电话号码',
 						trigger: ['blur', 'change']
 					},
 					aqzrrdh: {
-						pattern: /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/,
+						// pattern: /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/,
+						// 自定义验证函数
+						validator: (rule, value, callback) => {
+							// 上面有说,返回true表示校验通过,返回false表示不通过
+							// uni.$u.test.mobile()就是返回true或者false的
+							//是否符合正则 且不为空
+							const reg = /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/
+							if(reg.test(value) && value){
+								return true
+							}
+							return false
+						},
 						type: 'string',
 						message: '请输入正确的电话号码',
 						trigger: ['blur', 'change']
@@ -249,13 +277,25 @@
 						trigger: ['blur', 'change']
 					},
 					aqglrsfz: {
-						pattern: /(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}$)/,
+						// pattern: /(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}$)/,
+						// 自定义验证函数
+						validator: (rule, value, callback) => {
+							// 上面有说,返回true表示校验通过,返回false表示不通过
+							// uni.$u.test.mobile()就是返回true或者false的
+							//是否符合正则 且不为空
+							const reg = /(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}$)/
+							if(reg.test(value) && value){
+								return true
+							}
+							return false
+						},
 						message: "请输入合法身份证号",
 						trigger: ['blur', 'change']
 					},
 
 					aqzrrsfz: {
 						pattern: /(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}$)/,
+
 						message: "请输入合法身份证号",
 						trigger: ['blur', 'change']
 					},

+ 4 - 4
pagesA/fire/unit_info/unit_info_details/unit_info_details.vue

@@ -10,19 +10,19 @@
 				<u-form-item label="负责人" prop="orgCharge" :required="true">
 					<u-input v-model="formData.orgCharge" placeholder="必填。负责人" :disabled="true" />
 				</u-form-item>
-				<u-form-item label="消防安全管理人">
+				<u-form-item label="消防安全管理人" >
 					<u-input v-model="formData.aqglr" placeholder="楼宇名称" :disabled="true" />
 				</u-form-item>
-				<u-form-item label="消防安全管理人电话">
+				<u-form-item label="消防安全管理人电话" >
 					<u-input v-model="formData.aqglrdh" placeholder="档案负责人" :disabled="true" />
 				</u-form-item>
-				<u-form-item label="消防安全管理人身份证">
+				<u-form-item label="消防安全管理人身份证" >
 					<u-input v-model="formData.aqglrsfz" placeholder="地理位置" :disabled="true" />
 				</u-form-item>
 				<u-form-item label="消防安全负责人">
 					<u-input v-model="formData.aqzrr" placeholder="消防安全负责人" :disabled="true" />
 				</u-form-item>
-				<u-form-item label="消防安全负责人电话">
+				<u-form-item label="消防安全负责人电话" >
 					<u-input v-model="formData.aqzrrdh" placeholder="消防安全负责人电话" :disabled="true" />
 				</u-form-item>
 				<u-form-item label="消防安全负责人身份证">

+ 22 - 0
pagesB/fire/fireSpecial/index.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 22 - 0
pagesB/fire/fireWork/index.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

+ 3 - 1
utils/dict.js

@@ -89,7 +89,9 @@ export const DICT_TYPE = {
 	TRAIN_DRILL: 'train_drill',  //培训演练类别
 	BACKEND_ORG_TYPE2:'backend_org_type', //单位类型
    // ==========移动端 - 人员信息模块 ==========
-     XUE_LI:'xueli'
+     XUE_LI:'xueli',
+	 // ==========隐患管理模块 ==========
+	 DANGER_TYPE:'dangerType'
 
 
 	// ========== 数据字典映射 =================