浏览代码

拉取并解决冲突

liuQiang 1 年之前
父节点
当前提交
bcb6b05eeb

+ 58 - 0
api/fireSpecial/index.js

@@ -43,4 +43,62 @@ export function fireSpecialDelete(data) {
 				'content-type': 'application/x-www-form-urlencoded'
 			},
 	})
+}
+
+//动火审批
+//  获取本单位下的人员信息 
+export function fireWorkPage(data) {
+	return request({
+		url: '/admin-api/backend/fire-work/page',
+		method: 'get',
+		params: data
+	})
+}
+//  获取本单位下的人员信息 
+export function fireWorkIdGet(data) {
+	return request({
+		url: '/admin-api/backend/fire-work/get',
+		method: 'get',
+		params: data
+	})
+}
+//  修改
+export function fireWorkUpdate(data) {
+	return request({
+		url: '/admin-api/backend/fire-work/update',
+		method: 'post',
+		data: data
+	})
+}
+//  新增
+export function fireWorkCreate(data) {
+	return request({
+			url: '/admin-api/backend/fire-work/create',
+			method: 'post',
+			data: data
+		}
+
+	)
+}
+//  删除
+export function fireWorkDelete(data) {
+	return request({
+		url: '/admin-api/backend/fire-work/delete',
+		method: 'post',
+		data: data,
+		header: {
+				'content-type': 'application/x-www-form-urlencoded'
+			},
+	})
+}
+//  审核
+export function fireWorkShenHe(data) {
+	return request({
+		url: '/admin-api/backend/fire-work/setstatus',
+		method: 'post',
+		data: data,
+		header: {
+				'content-type': 'application/x-www-form-urlencoded'
+			},
+	})
 }

+ 8 - 3
pages.json

@@ -927,9 +927,9 @@
 				}
 			}
 
-            ]
+		]
+
 
-		
 	}, {
 		"root": "pagesB",
 		"pages": [{
@@ -949,9 +949,14 @@
 				"navigationBarTitleText": "",
 				"enablePullDownRefresh": false
 			}
+		}, {
+			"path": "fire/fireWork/addWork/index",
+			"style": {
+				"navigationBarTitleText": "",
+				"enablePullDownRefresh": false
+			}
 
 		}]
-
 	}],
 	"tabBar": {
 		"color": "#000000",

+ 6 - 6
pages/mine/info/edit.vue

@@ -10,7 +10,7 @@
 			<view class="u-demo-block">
 				<view class="u-demo-block__content">
 					<!-- 注意,如果需要兼容微信小程序,最好通过setRules方法设置rules规则 -->
-					<u--form label-position="top" :model="user" ref="form1" label-width='100'>
+					<u--form label-position="top" :model="user" ref="customForm" label-width='100'>
 						<view class="flex flex-direction-row">
 							<view class="flex justify-center align-center" style="width: 12%;">
 								<image :src="`${urls}/info/id.svg`" class="editimg"></image>
@@ -201,7 +201,7 @@
 		},
 		onReady() {
 			// 如果需要兼容微信小程序,并且校验规则中含有方法等,只能通过setRules方法设置规则
-			this.$refs.form1.setRules(this.rules)
+			this.$refs.customForm.setRules(this.rules)
 		},
 		onLoad() {
 			this.getUser()
@@ -229,20 +229,20 @@
 			sexSelect(e) {
 				this.user.userInfo.sexname = e.name
 				this.user.userInfo.sex = e.id
-				this.$refs.form1.validateField('userInfo.sex')
+				this.$refs.customForm.validateField('userInfo.sex')
 			},
 			birthdayClose() {
 				this.showBirthday = false
-				this.$refs.form1.validateField('userInfo.birthday')
+				this.$refs.customForm.validateField('userInfo.birthday')
 			},
 			birthdayConfirm(e) {
 				this.showBirthday = false
 				this.user.userInfo.birthday = uni.$u.timeFormat(e.value, 'yyyy-mm-dd')
-				this.$refs.form1.validateField('userInfo.birthday')
+				this.$refs.customForm.validateField('userInfo.birthday')
 			},
 			submit() {
 				// 如果有错误,会在catch中返回报错信息数组,校验通过则在then中返回true
-				this.$refs.form1.validate().then(res => {
+				this.$refs.customForm.validate().then(res => {
 					// uni.$u.toast('校验通过')
 					updateUserProfile(this.user.userInfo).then(response => {
 						// this.user = response.data

+ 12 - 8
pagesA/fire/fire_station/edit_fireStation/edit_fireStation.vue

@@ -36,21 +36,24 @@
 					<u-form-item label="详细地址">
 						<u-input v-model="formData.addr" placeholder="请输入详细地址" />
 					</u-form-item>
-					<u-form-item label="控制室值班人数" prop="dutyer">
-						<u-input v-model="formData.dutyer" placeholder="请输入控制室值班人数	" />
+					<u-form-item style="width: 700rpx;" label="控制室值班人数" prop="dutyer">
+						<u-input  v-model="formData.dutyer" placeholder="请输入控制室值班人数	" />
+						<button @click="goWorkNum" class="manyBtn">添加值班人</button>
 					</u-form-item>
-					<button @click="goWorkNum" class="manyBtn">添加值班人</button>
+					<!-- <button @click="goWorkNum" class="manyBtn">添加值班人</button> -->
 					<u-form-item label="报警电话">
 						<u-input v-model="formData.alarmTel" placeholder="请输入报警电话	" />
 					</u-form-item>
-					<u-form-item label="负责人">
+					<u-form-item style="width: 700rpx;" label="负责人">
 						<u-input v-model="formData.charger" placeholder="请输入负责人" />
+						<button @click="goBigNum" class="manyBtn">添加负责人</button>
 					</u-form-item>
-					<button @click="goBigNum" class="manyBtn">添加负责人</button>
-					<u-form-item label="人员信息" prop="members">
+					
+					<u-form-item style="width: 700rpx;" label="人员信息" prop="members">
 						<u-input v-model="formData.members" placeholder="请输入队员人数" />
+						<button @click="goPeopleMes" class="manyBtn">添加人员信息</button>
 					</u-form-item>
-					<button @click="goPeopleMes" class="manyBtn">添加人员信息</button>
+					
 					<u-form-item label="水罐车数量" prop="waterTanker">
 						<u-input v-model="formData.waterTanker" placeholder="请输入水罐车" />
 					</u-form-item>
@@ -500,7 +503,7 @@
 		overflow-y: auto;
 	}
 	.manyBtn{
-		width: 200rpx;
+		width: 100rpx;
 		height: 40rpx;
 		font-size: 20rpx;
 		line-height: 40rpx;
@@ -508,5 +511,6 @@
 		border-radius: 20rpx;
 		background-color: #4DB1B6;
 		color: white;
+		margin-left: 10rpx;
 	}
 </style>

+ 52 - 32
pagesA/fire/fire_station/people_fireStation/people_fireStation.vue

@@ -1,33 +1,24 @@
 <template>
-	<view>
+	<view style="position: relative;">
 		<div class="useBox">
-			<button @click="addNewPeople" class="antherBtn">{{tomole}}</button>
-			<u-button type="primary" @click="addSure" class="antherBtn">提交</u-button>
+			<!-- <button @click="addNewPeople" class="antherBtn">{{tomole}}</button> -->
+			<!-- <u-button type="primary" @click="addSure" class="antherBtn">提交</u-button> -->
 		</div>
-		<div class="tableBox">
-			<table class="custom-table">
-				<thead>
-					<tr>
-						<th>名字</th>
-						<th>电话</th>
-						<th>身份证号</th>
-						<th>职务</th>
-						<th>操作</th>
-					</tr>
-				</thead>
-				<tbody>
-					<tr v-for="item in tableList" :key="item.id">
-						<td>{{ item.empName }}</td>
-						<td style="width: 150rpx;">{{ item.mobile }}</td>
-						<td style="width: 210rpx;">{{item.idcardno}}</td>
-						<td>{{getDuty(item.duty)}}</td>
-						<td class="aTd">
-							<button @click="delUser(item)" class="editBtn">删除</button>
-							<button @click="editUser(item)" class="editBtn">编辑</button>
-						</td>
-					</tr>
-				</tbody>
-			</table>
+		<div class="cardBox">
+			<uni-card v-for="item in tableList" style="border: 2rpx solid #4DB1B6;">
+				<div style="display: flex;justify-content: space-between;align-items: center;">
+					<div>
+						<text>姓名:{{item.empName}}</text><br>
+						<text>电话:{{ item.mobile }}</text><br>
+						<text>身份证号:{{item.idcardno}}</text><br>
+						<text>职务:{{getDuty(item.duty)}}</text>
+					</div>
+					<div style="display: flex;justify-content: space-around;align-items: center;">
+						<button @click="delUser(item)" class="editBtn">删除</button>
+						<button @click="editUser(item)" class="editBtn">编辑</button>
+					</div>
+				</div>
+			</uni-card>
 		</div>
 		<!-- 新增的人员表单项 -->
 		<div v-for="(person, index) in membersList" :key="index" style="border-bottom: 1px solid black;">
@@ -56,6 +47,10 @@
 					<p style="width: 150rpx;">职务</p>
 					<uni-data-select v-model="person.power" :localdata="range" @change="change"></uni-data-select>
 				</u-form-item>
+				<u-form-item>
+					<u-button type="primary" @click="addSure" class="antherBtn">提交</u-button>
+					<u-button type="primary" @click="cleanList" class="antherBtn">取消</u-button>
+				</u-form-item>
 			</u--form>
 		</div>
 		<div>
@@ -88,6 +83,7 @@
 				</view>
 			</u-popup>
 		</div>
+		<button @click="addNewPeople" class="circleBtn">+</button>
 	</view>
 </template>
 
@@ -109,7 +105,7 @@
 				resultId: '',
 				value: 0,
 				range: [{
-						value: '0',
+						value: '2',
 						text: "负责人"
 					},
 					{
@@ -117,12 +113,12 @@
 						text: "值班人员"
 					},
 					{
-						value: '2',
+						value: '0',
 						text: "普通人员"
 					},
 				],
 				range1: [{
-						value: '0',
+						value: '2',
 						text: "负责人"
 					},
 					{
@@ -130,7 +126,7 @@
 						text: "值班人员"
 					},
 					{
-						value: '2',
+						value: '0',
 						text: "普通人员"
 					},
 				],
@@ -269,7 +265,7 @@
 						this.tableList = res.data.list
 					})
 				} else {
-					num = '3'
+					num = '0'
 					getfirepage({
 						pageNo: 1,
 						pageSize: 10,
@@ -373,6 +369,9 @@
 				} else {
 					this.phoneRules = true
 				}
+			},
+			cleanList() {
+				this.membersList = []
 			}
 		},
 		onLoad(options) {
@@ -472,6 +471,7 @@
 		border-radius: 10rpx;
 		font-size: 20rpx;
 		margin-bottom: 10rpx;
+		margin-right: 10rpx0;
 	}
 
 	.modalBox {
@@ -496,4 +496,24 @@
 		color: red;
 		font-size: 20rpx;
 	}
+
+	.circleBtn {
+		width: 100rpx;
+		height: 100rpx;
+		border-radius: 50%;
+		font-size: 90rpx;
+		text-align: center;
+		line-height: 100rpx;
+		color: white;
+		background-color: #4EB0B5;
+		position: absolute;
+		top: 1300rpx;
+		left: 590rpx;
+	}
+
+	.cardBox {
+		width: 650rpx;
+		margin: 30rpx auto;
+		border-radius: 30rpx;
+	}
 </style>

+ 13 - 13
pagesA/fire/fpd_detection/add_detection/add_detection.vue

@@ -48,24 +48,24 @@
 			<u-action-sheet :show="showreOption" :actions="resultOptions" title="请选择检测维保结果"
 				@close="showreOption = false" @select="setResult"></u-action-sheet>
 			<!-- 检测项目选项框 -->
-<!-- 			<u-action-sheet :show="showInspOption" :actions="detinspectOptions" title="请选择检测项目"
+			<!-- 			<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-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 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">
@@ -229,7 +229,7 @@
 					.validate()
 					.then(res => {
 						this.formData['status'] = 0;
-						console.log('this.formData',this.formData);
+						console.log('this.formData', this.formData);
 						if (this.formData.File.length > 0) {
 							this.formData.att = this.formData.File[0].url.toString();
 						} else {
@@ -319,19 +319,19 @@
 			},
 			//检测项目多选框选中
 			checkboxChange2(arr) { //勾选的事件
-				console.log('arr',arr);
+				console.log('arr', arr);
 				this.checkArr = [...arr]
-				
+
 			},
-			checkboxConfirm2(){
+			checkboxConfirm2() {
 				this.showInspOption = false
 				this.formData.detinspect = this.checkArr.join(',')
 				// console.log('detinspect',this.formData.detinspect);
 			},
-			checkboxCancel2(){
+			checkboxCancel2() {
 				this.showInspOption = false
 				const nowArr = this.formData.detinspect.split(',')
-				
+
 				this.checkArr = [...nowArr]
 			},
 			// 隐藏键盘

+ 166 - 66
pagesA/fire/metting_regsiter/metting_sigin.vue

@@ -1,54 +1,54 @@
 <template>
 	<view>
-		<view class="">
+		<view class="bigBox">
+			<div class="cardBox">
+				<uni-card v-for="item in tableList" class="mesCard">
+					<div style="display: flex;justify-content: space-between;align-items: center;">
+						<div>
+							<text>姓名:{{item.ppName}}</text><br>
+							<text>电话:{{ item.ppTel }}</text>
+						</div>
+						<div style="display: flex;justify-content: space-around;align-items: center;">
+							<button @click="delUser(item)" class="editBtn">删除</button>
+							<button @click="editUser(item)" class="editBtn">编辑</button>
+						</div>
+					</div>
+				</uni-card>
+			</div>
 			<div class="useBox">
-				<button class="useBtn" @click="addNewPeople">新增参会人员</button>
-				<button class="useBtn" @click="sureAdd">确认新增测试</button>
+				<!-- <button class="useBtn" @click="addNewPeople">新增参会人员</button> -->
+				<!-- <button class="useBtn" @click="sureAdd">确认新增</button> -->
 				<button class="useBtn" @click="excelOut">导出excel</button>
 			</div>
-			<div class="tableBox">
-				<table class="custom-table">
-					<thead>
-						<tr>
-							<th>名字</th>
-							<th>电话</th>
-							<th>操作</th>
-						</tr>
-					</thead>
-					<tbody>
-						<tr v-for="item in tableList" :key="item.id">
-							<td>{{ item.ppName }}</td>
-							<td>{{ item.ppTel }}</td>
-							<td class="aTd">
-								<button @click="delUser(item)" class="editBtn">删除</button>
-								<button @click="editUser(item)" class="editBtn">编辑</button>
-							</td>
-						</tr>
-					</tbody>
-				</table>
-			</div>
-			<div v-for="(person, index) in meetList" :key="index" style="border-bottom: 1px solid black;">
-				<u--form>
+			<div v-for="(person, index) in meetList" :key="index" class="addNewBox">
+				<u--form style="margin-left: 55rpx;">
 					<u-form-item class="typeStyle" :prop="'name' + (index + 1)">
 						<p style="width: 150rpx;margin-left: 20rpx;">姓名{{(index + 1)}}</p>
-						<u-input v-model="person.name" :placeholder="'请输入姓名'" />
+						<u-input v-model="person.name" @blur="nameBlur" :placeholder="'请输入姓名'" />
+						<span class="erroring" v-if="nameRules">请输入名称</span>
 					</u-form-item>
 					<u-form-item class="typeStyle" :prop="'age' + (index + 1)">
 						<p style="width: 150rpx;margin-left: 20rpx;">状态</p>
-						<u-input v-model="person.status" :placeholder="'请输入身份证号'" />
+						<u-input v-model="person.status" :placeholder="'请输入状态'" />
+						<!-- <span class="erroring" v-if="userRules">身份证号有误</span> -->
 					</u-form-item>
 					<!-- 其他人员信息字段 -->
 					<u-form-item class="typeStyle" :prop="'age' + (index + 1)">
 						<p style="width: 150rpx;margin-left: 20rpx;">电话号</p>
-						<u-input v-model="person.phone" :placeholder="'请输入电话号'" />
+						<u-input v-model="person.phone" @blur="phoneBlur" :placeholder="'请输入电话号'" />
+						<span class="erroring" v-if="phoneRules">电话号有误</span>
 					</u-form-item>
 					<!-- 	<u-form-item class="typeStyle" :prop="'age' + (index + 1)">
 						<p style="width: 150rpx;margin-left: 20rpx;">人员类型</p>
 						<u-input v-model="person.worker" :placeholder="'请输入人员类型'" />
 					</u-form-item> -->
-					<u-form-item class="antherStyle">
+					<u-form-item class="typeStyle">
 						<p style="width: 150rpx;margin-left: 20rpx;">职务</p>
-						<uni-data-select v-model="person.power" :localdata="range" @change="change"></uni-data-select>
+						<!-- <uni-data-select v-model="person.power" :localdata="range" @change="change"></uni-data-select> -->
+						<u-input v-model="person.power" :placeholder="'请输入职务'" />
+					</u-form-item>
+					<u-form-item class="antherStyle">
+						<button class="useBtn" @click="sureAdd">确认新增</button>
 					</u-form-item>
 				</u--form>
 			</div>
@@ -56,16 +56,20 @@
 				<u-popup :show="showModal" mode="center" @close="closeModal">
 					<view class="modalBox">
 						<u--form labelPosition="left" :model="modalList" ref="uForm">
-							<u-form-item style="width: 500rpx;" label="姓名" prop="modalList.name" borderBottom ref="item1">
+							<u-form-item style="width: 500rpx;" label="姓名" prop="modalList.name" borderBottom
+								ref="item1">
 								<u--input class="modalInput" v-model="modalList.mname" border="none"></u--input>
 							</u-form-item>
-							<u-form-item style="width: 500rpx;" label="电话号" prop="modalList.mphone" borderBottom ref="item2">
+							<u-form-item style="width: 500rpx;" label="电话号" prop="modalList.mphone" borderBottom
+								ref="item2">
 								<u--input class="modalInput" v-model="modalList.mphone" border="none"></u--input>
 							</u-form-item>
-							<u-form-item style="width: 500rpx;" label="职务" prop="modalList.mpower" borderBottom ref="item3">
+							<u-form-item style="width: 500rpx;" label="职务" prop="modalList.mpower" borderBottom
+								ref="item3">
 								<u--input class="modalInput" v-model="modalList.mpower" border="none"></u--input>
 							</u-form-item>
-							<u-form-item style="width: 500rpx;" label="状态" prop="modalList.mstatus" borderBottom ref="item4">
+							<u-form-item style="width: 500rpx;" label="状态" prop="modalList.mstatus" borderBottom
+								ref="item4">
 								<u--input class="modalInput" v-model="modalList.mstatus" border="none"></u--input>
 							</u-form-item>
 						</u--form>
@@ -76,6 +80,7 @@
 					</view>
 				</u-popup>
 			</div>
+			<button class="circleBtn" @click="addNewPeople">+</button>
 		</view>
 	</view>
 </template>
@@ -120,7 +125,10 @@
 					mphone: "",
 					mpower: '',
 					mstatus: '',
-				}
+				},
+				nameRules: false,
+				userRules: false,
+				phoneRules: false,
 			}
 		},
 		methods: {
@@ -130,7 +138,11 @@
 				})
 			},
 			getAllPeople() {
-				getListPage({meetingId:this.meetId,pageNo:1,pageSize:10}).then(res => {
+				getListPage({
+					meetingId: this.meetId,
+					pageNo: 1,
+					pageSize: 10
+				}).then(res => {
 					this.tableList = res.data.list
 					console.log(res, 'all');
 				})
@@ -159,34 +171,50 @@
 			},
 			sureAdd() {
 				console.log(this.meetList[0], '123');
-				creatPeople({
-					meetingId: parseInt(this.meetId),
-					orgId: this.doorId,
-					ppDuty: this.meetList[0].power,
-					ppName: this.meetList[0].name,
-					ppTel: this.meetList[0].phone,
-					status: parseInt(this.meetList[0].status)
-				}).then(res => {
-					if (res.data) {
-						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.meetList = []
-						// uni.navigateBack({
-						// 	delta: 1 // 返回的页面数,1 表示返回上一级
-						// })
-						this.getAllPeople()
-					}
-				})
+				if (!this.userRules && !this.phoneRules && !this.nameRules) {
+					creatPeople({
+						meetingId: parseInt(this.meetId),
+						orgId: this.doorId,
+						ppDuty: this.meetList[0].power,
+						ppName: this.meetList[0].name,
+						ppTel: this.meetList[0].phone,
+						status: parseInt(this.meetList[0].status)
+					}).then(res => {
+						if (res.data) {
+							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.meetList = []
+							// uni.navigateBack({
+							// 	delta: 1 // 返回的页面数,1 表示返回上一级
+							// })
+							this.getAllPeople()
+						}
+					})
+				} 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);
+						}
+					});
+				}
+
 			},
 			delUser(row) {
 				console.log(row, '123');
@@ -270,7 +298,32 @@
 						});
 					}
 				})
-			}
+			},
+			// 对表单内name的正则判断
+			nameBlur() {
+				console.log(this.meetList);
+				if (this.meetList[0].name === '') {
+					this.nameRules = true
+				} else {
+					this.nameRules = false
+				}
+			},
+			userBlur() {
+				const regex = /^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[1-2]\d|3[0-1])\d{3}[\dxX]$/;
+				if (regex.test(this.meetList[0].status)) {
+					this.userRules = false
+				} else {
+					this.userRules = true
+				}
+			},
+			phoneBlur() {
+				const regex = /^1[3-9]\d{9}$/;
+				if (regex.test(this.meetList[0].phone)) {
+					this.phoneRules = false
+				} else {
+					this.phoneRules = true
+				}
+			},
 		},
 		onShow() {
 			this.getUser()
@@ -284,6 +337,10 @@
 </script>
 
 <style>
+	.biBox {
+		position: relative;
+	}
+
 	.custom-table {
 		border-collapse: collapse;
 		/* 合并边框 */
@@ -348,6 +405,7 @@
 		line-height: 60rpx;
 		border-radius: 10rpx;
 		font-size: 20rpx;
+		margin-right: 5rpx;
 		margin-bottom: 10rpx;
 	}
 
@@ -355,4 +413,46 @@
 		width: 200rpx;
 		border: 1px solid #4DB1B6;
 	}
+
+	.circleBtn {
+		width: 100rpx;
+		height: 100rpx;
+		border-radius: 50%;
+		font-size: 90rpx;
+		text-align: center;
+		line-height: 100rpx;
+		color: white;
+		background-color: #4EB0B5;
+		position: absolute;
+		top: 1300rpx;
+		left: 590rpx;
+	}
+
+	.cardBox {
+		width: 600rpx;
+		margin: 30rpx auto;
+		border-radius: 30rpx;
+	}
+
+	.typeStyle {
+		width: 600rpx;
+	}
+
+	.addNewBox {
+		/* width: 800rpx; */
+		/* height: auto; */
+		border: none;
+		/* margin: 10rpx auto; */
+	}
+
+	.erroring {
+		font-size: 20rpx;
+		color: red;
+	}
+
+	.mesCard {
+		/* box-shadow: 1 1 1 1 #4DB1B6; */
+		/* background-color: red; */
+		border: 2rpx solid #4DB1B6;
+	}
 </style>

+ 64 - 7
pagesB/fire/fireSpecial/addSpecial/index.vue

@@ -34,6 +34,27 @@
 							</u-form-item>
 						</view>
 					</picker>
+					<u-form-item label="附件">
+						<!-- 选择文件上传,limit="1则最多选择一张图片,del-icon隐藏删除按钮 -->
+						<uni-file-picker v-model="formData.attId" del-icon limit="1" auto-upload file-mediatype="all"
+							@select="selectFile" @delete="deleteFile" :disabled="isview">
+							<button type="primary" class="selectBtn" :disabled="isview">选择文件</button>
+							<!-- 加载中 -->
+							<isLodingModel v-if="loading"></isLodingModel>
+						</uni-file-picker>
+					</u-form-item>
+					<u-form-item label="已上传附件:" v-if="formData.att" labelWidth="150">
+						<u-icon name="close" color="#4CB2B6" size="24" @click="closeImage()" v-if="!isview">
+						</u-icon>
+						<!-- #ifdef MP-WEIXIN -->
+						<text style="color:#00a3f4;cursor: pointer;margin-left: 20px !important;"
+							@click.native="viewSee(formData.att)">点击预览文件</text>
+						<!-- #endif -->
+						<!-- #ifdef H5 -->
+						<a style="color:#00a3f4;cursor: pointer;margin-left: 20px !important;"
+							@click="viewSee(formData.att)">点击预览文件</a>
+						<!-- #endif -->
+					</u-form-item>
 				</view>
 			</u--form>
 		</view>
@@ -63,7 +84,9 @@
 		fireSpecialIdGet
 	} from '@/api/fireSpecial';
 	import {
-		NumericRule
+		NumericRule,
+		downSee,
+		uploadFile
 	} from '@/utils/common.js';
 	import config from '@/config'
 	import {
@@ -84,8 +107,11 @@
 					idcardno: '',
 					empGender: '',
 					empBirthday: '',
-					issueDate: ''
+					issueDate: '',
+					att:'',
+					attId:[]
 				},
+				loading:'',
 				rules: {
 					empName: [{
 						type: 'string',
@@ -151,6 +177,32 @@
             console.log(this.isedit,'ffffffff',this.isview);
 		},
 		methods: {
+			//查看已上传附件
+			viewSee(val) {
+				downSee(val)
+			},
+			// 移出图片函数
+			async deleteFile(e) {
+				this.formData.attId = [];
+				// console.log('移除了:');
+			},
+			selectFile(e) {
+			  let promises = [];
+			  for (let i = 0; i < e.tempFilePaths.length; i++) {
+			    const promise = uploadFile(e.tempFilePaths, i,this);
+			    promises.push(promise);
+			  }
+			  Promise.all(promises).then(result => {
+			    // 处理上传文件成功的结果
+			  }).catch(error => {
+			    // 处理上传文件失败的错误
+			  });
+			},
+			closeImage() {
+				this.formData.attId = []
+				this.formData.att=''
+				this.$forceUpdate()
+			},
 			sexSelect(e) {
 				this.formData.empGender = e.name
 			},
@@ -169,10 +221,6 @@
 					console.log(response, 'response')
 				})
 			},
-			//拍照
-			closeImage(val, index) {
-				this.formData.streetRepPicsDOList.splice(index, 1)
-			},
 			bindDateChange(e) {
 				this.formData.empBirthday = e.detail.value
 			},
@@ -180,8 +228,9 @@
 				this.formData.issueDate = e.detail.value
 			},
 			submit(ref) {
+				
 				this.$refs[ref].validate().then(res => {
-					console.log(this.isview, 'this.formDatathis.isview');
+					this.formData.att = this.formData.attId?this.formData.attId.join(''):this.formData.att
 					if (this.isedit) {
 						fireSpecialUpdate(JSON.stringify(this.formData)).then(res => {
 							this.$modal.msg('修改成功')
@@ -248,4 +297,12 @@
 			background-color: #fff;
 		}
 	}
+	
+	.selectBtn {
+		width: 200rpx;
+		margin-left: 0;
+		font-size: 30rpx;
+		background-color: #4cb2b6;
+	}
+	
 </style>

+ 4 - 3
pagesB/fire/fireSpecial/index.vue

@@ -202,17 +202,18 @@
 			// 获取数据
 			getData() {
 				this.loading = true;
-				// 获取建筑信息详细信息
+				let arrOrg=[]
+				arrOrg.push(this.formData.orgId)
 				fireSpecialPage({
 					pageNo: this.pageNo,
 					pageSize: this.pageSize,
-					orgIds: this.formData.orgId,	
+					orgIds: arrOrg,	
 					empName:this.keyword
 				}).then(response => {
 					console.log(response,'sdsdsd');
 					this.isLoaded = true
 					this.tableData = response.data?[...this.tableData, ...response.data.list]:[]
-					this.total=response.total
+					this.total = response.data?response.data.total:0
 					this.loading = false
 				});
 			},

+ 363 - 0
pagesB/fire/fireWork/addWork/index.vue

@@ -0,0 +1,363 @@
+<template>
+	<view class="uni-container">
+		<view class="example container" :style="'height: ' + (screenHeight - wheight - 85) + 'px'">
+			<u--form ref="customForm" :model="formData" labelPosition="left" labelWidth="100%" labelAlign="left">
+				<view class="juli-bottom">
+					<u-form-item label="所属单位" prop="orgName" @click="showOrg = true; hideKeyboard()" :required="true">
+						<u-input v-model="formData.orgName" placeholder="请输入" :disabled="isview" />
+					</u-form-item>
+					<u-form-item label="动火事由" prop="workReason" :required="true">
+						<u-input v-model="formData.workReason" placeholder="请输入" :disabled="isview" />
+					</u-form-item>
+					<u-form-item label="动火作业执行人" prop="executor" :required="true"
+						@click="showExecutor = true; hideKeyboard()">
+						<u-input v-model="formData.executor" placeholder="请选择" :disabled="isview" />
+					</u-form-item>
+					<u-form-item label="动火台账状态" prop="workStatus" :required="true" 
+						 v-if="isview">
+							 <u-input  v-model="formData.workStatus" placeholder="请选择" :disabled="isview" />
+						 <!-- @click="showSex = true; hideKeyboard()" -->
+						
+					</u-form-item>
+					<picker mode="date" :value="dateTime" @change="bindDateChange" :disabled="isview">
+						<view class="datatime-street">
+							<u-form-item label="动火开始时间" prop="workBegin" :required="true">
+								<u-input v-model="formData.workBegin" placeholder="动火结束时间" class="add-date"
+									:disabled="isview" />
+							</u-form-item>
+						</view>
+					</picker>
+					<picker mode="date" @change="bindDateChange2" :disabled="isview">
+						<view class="datatime-street">
+							<u-form-item label="动火结束时间" prop="workEnd" :required="true">
+								<u-input v-model="formData.workEnd" placeholder="动火结束时间" class="add-date"
+									:disabled="isview" />
+							</u-form-item>
+						</view>
+					</picker>
+					<u-form-item label="附件">
+						<!-- 选择文件上传,limit="1则最多选择一张图片,del-icon隐藏删除按钮 -->
+						<uni-file-picker v-model="formData.attId" del-icon limit="1" auto-upload file-mediatype="all"
+							@select="selectFile" @delete="deleteFile" :disabled="isview">
+							<button type="primary" class="selectBtn" :disabled="isview">选择文件</button>
+							<!-- 加载中 -->
+							<isLodingModel v-if="loading"></isLodingModel>
+						</uni-file-picker>
+					</u-form-item>
+					<u-form-item label="已上传附件:" v-if="formData.att" labelWidth="150">
+						<u-icon name="close" color="#4CB2B6" size="24" @click="closeImage()" v-if="!isview">
+						</u-icon>
+						<!-- #ifdef MP-WEIXIN -->
+						<text style="color:#00a3f4;cursor: pointer;margin-left: 20px !important;"
+							@click.native="viewSee(formData.att)">点击预览文件</text>
+						<!-- #endif -->
+						<!-- #ifdef H5 -->
+						<a style="color:#00a3f4;cursor: pointer;margin-left: 20px !important;"
+							@click="viewSee(formData.att)">点击预览文件</a>
+						<!-- #endif -->
+					</u-form-item>
+				</view>
+			</u--form>
+		</view>
+		<view class="heigthButton">
+			<u-button v-if="isedit" @click="submit('customForm')" type="primary" shape="circle" size="large"
+				color="#4CB2B6" text="确认修改" style="width:200px">
+			</u-button>
+			<u-button v-else-if="!formData.id" @click="submit('customForm')" type="primary" shape="circle" size="large"
+				color="#4CB2B6" text="确认新增" style="width:200px">
+			</u-button>
+			<u-button v-else-if="isview" @click="submit('customForm')" type="primary" shape="circle" size="large"
+				color="#4CB2B6" text="返回" style="width:200px">
+			</u-button>
+		</view>
+		<u-action-sheet :show="showSex" :actions="actionsSex" title="请选择动火台账状态" @close="showSex = false"
+			@select="sexSelect">
+		</u-action-sheet>
+		<u-action-sheet :show="showExecutor" :actions="actionsExecutor" class="popups" title="请选择动火作业执行人" @close="showExecutor = false"
+			@select="clickExecutor">
+		</u-action-sheet>
+		<u-action-sheet :show="showOrg" :actions="orgaction" title="请选择单位" class="org-choice popups" @close="showOrg = false"
+			@select="orgSelect"></u-action-sheet>
+	</view>
+</template>
+
+<script>
+	import {
+		fireWorkUpdate,
+		fireWorkCreate,
+		fireWorkIdGet,
+		fireSpecialPage, //动火执行人
+	} from '@/api/fireSpecial';
+	import {
+		NumericRule,
+		downSee,
+		uploadFile
+	} from '@/utils/common.js';
+	import config from '@/config'
+	import {
+		DICT_TYPE,
+		getDictDatas
+	} from "@/utils/dict";
+	const baseUrlImg = config.baseUrlImg
+	export default {
+		data() {
+			return {
+				screenHeight: this.$screenHeight,
+				wheight: '',
+				showExecutor: false, //动火台账执行人
+				actionsExecutor:[],
+				formData: {
+					orgName: '',
+					orgId: '',
+					workReason: '',
+					executor: '',
+					workStatus: '0',
+					workBegin: '',
+					workEnd: '',
+					att: '',
+					attId: []
+				},
+				loading: '',
+				rules: {
+					workReason: [{
+						type: 'string',
+						required: true,
+						message: '动火事由不能为空',
+						trigger: ['blur', 'change']
+					}],
+					executor: [{
+						type: 'string',
+						required: true,
+						message: '动火作业执行人不能为空',
+						trigger: ['blur', 'change']
+					}],
+					workStatus: [{
+						type: 'string',
+						required: true,
+						message: '动火台账状态不能为空',
+						trigger: ['blur', 'change']
+					}],
+					workBegin: [{
+						type: 'string',
+						required: true,
+						message: '动火开始时间不能为空',
+						trigger: ['blur', 'change']
+					}],
+					workEnd: [{
+						type: 'string',
+						required: true,
+						message: '动火结束时间不能为空',
+						trigger: ['blur', 'change']
+					}],
+					// empName: NumericRule(),
+				},
+				isedit: '',
+				isview: '',
+				dateTime: '',
+				showSex: false,
+				actionsSex: getDictDatas(DICT_TYPE.FIRE_WORK_STATUS), //性别
+				workStatus:getDictDatas(DICT_TYPE.FIRE_WORK_STATUS),//台账状态
+				orgaction: [], //单位
+				showOrg: false
+			}
+		},
+		onReady() {
+			this.$refs.customForm.setRules(this.rules);
+		},
+		mounted() {
+			uni.createSelectorQuery().in(this).select('.heigthButton').boundingClientRect(data => {
+				this.wheight = data.height
+			}).exec()
+		},
+		onLoad(option) {
+			this.formData.orgName = option.orgName ? option.orgName : ''
+			this.formData.orgId = option.orgId ? option.orgId : ''
+			this.orgaction = option.orgaction ? JSON.parse(option.orgaction) : []
+			this.actionsSex.map(i => i.name = i.label)
+			uni.setNavigationBarTitle({
+				title: option.title
+			})
+			if (option.editData) {
+				this.isedit = true
+				this.isview = false
+				this.parentId = option.editData
+				this.getData()
+				// this.formData = JSON.parse(option.editData)
+			} else if (option.viewData) {
+				this.isview = true
+				this.parentId = option.viewData
+				this.getData()
+				// this.formData = JSON.parse(option.viewData)
+			} else {
+				this.isedit = false
+				this.isview = false
+			}
+			// 获取动火作业执行人数据
+			let arrOrg = []
+			arrOrg.push(this.formData.orgId)
+			fireSpecialPage({
+				pageNo: 1,
+				pageSize: 100,
+				orgIds: arrOrg,
+			}).then(response => {
+				console.log(response, 'sdsdsd');
+				this.actionsExecutor = response.data ? response.data.list : []
+				this.actionsExecutor.map(i => {
+					i.name = i.empName
+				})
+
+			});
+			console.log(this.isedit, 'ffffffff', this.isview);
+		},
+		methods: {
+			clickExecutor(e) { //动火台账执行人
+				this.formData.executor = e.name
+			},
+			//查看已上传附件
+			viewSee(val) {
+				downSee(val)
+			},
+			// 移出图片函数
+			async deleteFile(e) {
+				this.formData.attId = [];
+				// console.log('移除了:');
+			},
+			selectFile(e) {
+				let promises = [];
+				for (let i = 0; i < e.tempFilePaths.length; i++) {
+					const promise = uploadFile(e.tempFilePaths, i, this);
+					promises.push(promise);
+				}
+				Promise.all(promises).then(result => {
+					// 处理上传文件成功的结果
+				}).catch(error => {
+					// 处理上传文件失败的错误
+				});
+			},
+			closeImage() {
+				this.formData.attId = []
+				this.formData.att = ''
+				this.$forceUpdate()
+			},
+			sexSelect(e) {
+				this.formData.workStatus = e.name
+			},
+			orgSelect(e) {
+				this.formData.orgName = e.name
+				this.formData.orgId = e.value
+			},
+			hideKeyboard() {
+				uni.hideKeyboard()
+			},
+			getData() {
+				fireWorkIdGet({
+					id: this.parentId
+				}).then(response => {
+					this.formData = response.data
+					this.workStatus.map(i=>{
+						if(this.formData.workStatus==i.value)
+						this.formData.workStatus=i.label
+					})
+					console.log(response, 'response')
+				})
+			},
+			bindDateChange(e) {
+				this.formData.workBegin = e.detail.value
+			},
+			bindDateChange2(e) {
+				console.log(e.detail, '3');
+				this.formData.workEnd = e.detail.value
+			},
+			submit(ref) {
+				const end = new Date(this.formData.workEnd).getTime()
+				const start = new Date(this.formData.workBegin).getTime()
+				if (start > end) {
+					console.log(start,end,'000000000000');
+					return this.$modal.msg('结束时间不能小于开始时间')
+				} 
+				this.$refs[ref].validate().then(res => {
+					this.formData.att = this.formData.attId? this.formData.attId.join('') :this.formData.att
+					if (this.isedit) {
+						fireWorkUpdate(JSON.stringify(this.formData)).then(res => {
+							this.$modal.msg('修改成功')
+							this.isedit = false
+							setTimeout(() => {
+								uni.navigateBack()
+							}, 400)
+						})
+					} else if (this.isview) {
+						this.isview = false
+						uni.navigateBack()
+					} else {
+						fireWorkCreate(JSON.stringify(this.formData)).then(response => {
+							this.$modal.msg('新增成功')
+							setTimeout(() => {
+								uni.navigateBack()
+							}, 400)
+						})
+					}
+
+				}).catch(err => {
+					console.log(err);
+				})
+			}
+		}
+	}
+</script>
+
+
+<style lang="scss" scoped>
+	body {
+		background-color: #f5f7f9;
+	}
+
+	page {
+		background-color: #f5f7f9 !important;
+	}
+
+	.uni-container {
+		// height: 100vh;
+		background-color: #f5f7f9 !important;
+	}
+
+	/deep/.uni-card {
+		position: relative;
+		box-shadow: 0px 0px 3px 0px rgba(86, 165, 168, 0.15);
+		border-radius: 30rpx;
+	}
+
+	.example {
+		overflow-y: auto;
+	}
+
+	.juli-bottom {
+		/deep/ .u-form-item__body__left__content__label {
+			color: #000 !important;
+		}
+	}
+
+	.org-choice {
+		/deep/.u-action-sheet {
+			overflow-y: auto;
+			height: 1000rpx;
+			background-color: #fff;
+		}
+	}
+
+	.selectBtn {
+		width: 200rpx;
+		margin-left: 0;
+		font-size: 30rpx;
+		background-color: #4cb2b6;
+	}
+	.popups{
+		/deep/.u-action-sheet {
+			overflow-y: auto;
+			height: 1000rpx;
+			background-color: #fff;
+		}
+	}
+	.example {
+		overflow-y: auto;
+	}
+</style>s

+ 434 - 8
pagesB/fire/fireWork/index.vue

@@ -1,22 +1,448 @@
 <template>
-	<view>
-		
+	<view class="uni-container uni-container-bg">
+		<view class="example container" :style="'height: ' + (screenHeight - 100) + 'px'">
+			<!-- 搜索框 -->
+			<uni-row class="demo-uni-row padding-tb-sm" :gutter="20" width="100%">
+				<uni-col :span="24">
+					<view class="u-page__tag-item">
+						<u-search placeholder="请输入人员姓名" bgColor="#edf6f9" borderColor="#4cb2b6" v-model="keyword"
+							:show-action="true" @custom="search"></u-search>
+					</view>
+				</uni-col>
+			</uni-row>
+			<!-- 下拉框 -->
+			<view class="u-page__tag-item"
+				style="margin-bottom: 26upx;width: 700upx;border-bottom: 2px solid #55cbbf;background-color: #f5f7fa;">
+				<u-form>
+					<u-form-item prop="orgName" @click="
+						showOrg = true;
+						hideKeyboard();
+					" label="单位选择:" labelWidth="100px">
+						<u--input border="none" disabled v-model="formData.orgName" placeholder="请选择所属单位"></u--input>
+						<u-icon slot="right" name="arrow-down"></u-icon>
+					</u-form-item>
+				</u-form>
+			</view>
+			<!-- 卡片栏 -->
+			<view v-if="tableData.length>0 && isLoaded" style="margin-bottom: 120rpx">
+				<view v-for="(item, index) in tableData" :key="index"
+					v-if="formData.orgName === item.orgName || formData.orgId === item.orgId">
+					<uni-card>
+						<!-- 简要内容 -->
+						<view style="display: flex;margin-bottom: 15rpx; color: #728f90;">
+							<text class="name-align-drill">动火执行人:</text>
+							<text class="conts">{{ item.executor }}</text>
+						</view>
+						<view style="display: flex;margin-bottom: 15rpx; color: #728f90;">
+							<text class="name-align-drill">动火事由:</text>
+							<text class="conts">{{ item.workReason }}</text>
+						</view>
+						<view style="margin-top: 80rpx;">
+							<!-- 删除按钮 -->
+							<view class="an-niu" @click.native="showModal(item.id)" v-if="item.workStatus=='未审核'||item.workStatus=='0'">
+								<text class="detailDel">删除</text>
+							</view>
+							<view @click.native="onClick(item.id)" link  class="an-niu" ><text class="detail">查看详情</text>
+							</view>
+							<view @click.native="editClick(item.id)" link  class="an-niu" ><text class="solve"
+									v-if="item.workStatus=='未审核'||item.workStatus=='0'">编辑</text>
+							</view>
+							<view @click.native="processClick(item.id)" link  class="an-niu" v-if="item.workStatus=='未审核'&&juese=='fire_leader'||item.workStatus=='0'&&juese=='fire_leader'"><text class="solve"
+								>审核</text>
+							</view>
+						</view>
+					</uni-card>
+				</view>
+			</view>
+			<!-- tableData为空时显示  -->
+			<view v-else-if="tableData.length==0 && isLoaded" style="text-align: center;">
+				<view class="text-gray" style="padding-top: 20px;">
+					<img :src="tan90" alt="暂无数据" />
+				</view>
+			</view>
+			<view>
+				<image :src="Group" @click="addClick" class="tiantupian"></image>
+			</view>
+			<u-action-sheet :show="showOrg" :actions="actions" title="请选择单位" @close="showOrg = false"
+				@select="sexSelect"></u-action-sheet>
+			<u-modal :show="show" @confirm="confirm" @cancel="cancel" @close="close" asyncClose closeOnClickOverlay
+				showCancelButton confirmColor="red" :title="title" :content="content" ref="uModal"></u-modal>
+			<u-modal title="审核是否通过" :show="showShenHe" showCancelButton closeOnClickOverlay confirmText="审核通过"
+				cancelText="审核不通过" @confirm="confirmShenHe" :closeOnClickOverlay="true" @cancel="cancelShenHe" @close="close">
+			</u-modal>
+			<!-- 加载中 -->
+			<isLodingModel></isLodingModel>
+		</view>
 	</view>
 </template>
-
 <script>
+	var that = '';
+	import {
+		getOrgId //获取orgId
+	} from '@/api/architecture';
+	import {
+		fireWorkPage,
+		fireWorkUpdate,
+		fireWorkDelete,
+		fireWorkShenHe
+	} from '@/api/fireSpecial';
+	import config from '@/config'
+	const baseUrlImg = config.baseUrlImg
 	export default {
 		data() {
 			return {
-				
+				showShenHe:false,
+				screenHeight: this.$screenHeight,
+				wheight: '',
+				keyword: '',
+				isLoaded: false,
+				Group: `${baseUrlImg}/checkActive/Group.png`,
+				showOrg: false,
+				actions: [],
+				// 数据
+				tableData: {},
+				title: '是否删除该数据项?',
+				content: '确认删除?',
+				id: '',
+				tan90: `${baseUrlImg}/tan90.png`,
+				// 每页数据量
+				pageSize: 5,
+				// 当前页
+				pageNo: 1,
+				// 数据总量
+				total: 0,
+				// tableData数据加载中
+				loading: false,
+				// 初始化时搜索框的值
+				keyword: '',
+				// 存放orgid,orgname
+				formData: {},
+				show: false,
+				showtimeStart: false,
+				showtimeEnd: false,
+				juese: {},
+				ShenHeids:''
+			};
+		},
+		// 在 vue页面,向起始页通过事件传递数据
+		onLoad: function(option) {
+
+			// this.init();
+		},
+		watch: {
+			loading: {
+				handler(newLength, oldLength) {
+					this.$modal.isLoadingModel(this.loading)
+				},
+				immediate: true
 			}
 		},
+		onShow() {
+			this.actions = []
+			that = this;
+			this.juese=uni.getStorageSync('getUserInfo_key').userRoles.appRoles[0].role_lable
+			getOrgId({
+				pageNo: this.pageNo,
+				pageSize: this.pageSize,
+				userId: this.$store.state.user.id
+			}).then(response => {
+				console.log(response, 'response');
+				// 取到用户对应的单位名称与id
+				response.data.map(v => {
+					this.actions.push({
+						id: v.dwid,
+						name: v.orgName
+					});
+				});
+				console.log(response.data, '21321312');
+				this.formData.orgName = response.data[0].orgName ? response.data[0].orgName : '';
+				this.formData.orgId = response.data[0].dwid;
+				this.tableData = []
+				this.getData();
+			});
+
+		},
+		onReady() {},
+		mixins: [uni.$u.mixin],
 		methods: {
-			
+			processClick(ShenHeids) { //审核
+               this.showShenHe=true
+			   this.ShenHeids=ShenHeids
+			},
+			//审核通过
+			confirmShenHe() {
+				this.showShenHe = false
+				fireWorkShenHe({ids:this.ShenHeids
+				}).then(response => {
+						this.tableData = []
+						this.getData()
+				})
+			},
+			//审核不通过	
+			cancelShenHe() {
+				this.showShenHe = false
+			},
+			search(val) {
+				console.log(val, 'valvals', this.formData);
+				this.tableData = []
+				this.getData()
+			},
+			async init() {
+				var t = this;
+				t.$.getlocation()
+					.then(res => {
+						console.log(res, 'res');
+					})
+					.catch(err => {
+						console.log(err, 'err');
+					});
+			},
+			// 模态框内容
+			showModal(val) {
+				this.show = true;
+				this.id = val;
+				console.log(val, 'val.id');
+			},
+			confirm() {
+				this.show = false;
+				fireWorkDelete({
+					id: this.id
+				}).then(response => {
+					this.loading = true;
+					this.isLoaded = false
+					this.tableData = []
+					this.getData();
+					console.log(this.tableData, '获取建筑信息详细信息获取建筑信息详细信息获取建筑信息详细信息获取建筑信息详细信息');
+				});
+			},
+			close() {
+				this.show = false;
+				console.log('close');
+			},
+			cancel() {
+				this.show = false;
+				console.log('cancel');
+			},
+			//查看详情
+			addClickDetail(val) {
+				uni.navigateTo({
+					url: `/pagesA/fire/architecture/add_architecture/add_architecture?item=${JSON.stringify(val)}`
+				});
+			},
+			// 获取数据
+			getData() {
+				this.loading = true;
+				// 获取建筑信息详细信息
+				let arrOrg = []
+				arrOrg.push(this.formData.orgId)
+				fireWorkPage({
+					pageNo: this.pageNo,
+					pageSize: this.pageSize,
+					orgIds: arrOrg,
+					executor: this.keyword
+				}).then(response => {
+					console.log(response, 'sdsdsd');
+					this.isLoaded = true
+					this.tableData = response.data ? [...this.tableData, ...response.data.list] : []
+					this.total = response.data ? response.data.total : 0
+					this.loading = false
+				});
+			},
+
+
+			// 传递数据
+			onClick(val) {
+				this.isLoaded = false
+				uni.navigateTo({
+					url: `/pagesB/fire/fireWork/addWork/index?title=查看动火审批&&viewData=${val}`
+				})
+			},
+			editClick(val) {
+				this.isLoaded = false
+				uni.navigateTo({
+					url: `/pagesB/fire/fireWork/addWork/index?title=编辑动火审批&&editData=${val}&&orgaction=${JSON.stringify(this.actions)}`
+				})
+			},
+			addClick() {
+				this.isLoaded = false
+				uni.navigateTo({
+					url: `/pagesB/fire/fireWork/addWork/index?title=新增动火审批&&orgName=${this.formData.orgName}&&orgId=${this.formData.orgId}&&orgaction=${JSON.stringify(this.actions)}`
+				});
+			},
+
+			sexSelect(e) {
+				this.formData.orgId = e.id;
+				this.formData.orgName = e.name;
+				this.getData()
+			},
+			// 触底的事件
+			onReachBottom() {
+				// 判断是否还有下一页数据
+				if (this.pageNo * this.pageSize >= this.total)
+					return uni.showToast({
+						title: `数据加载完毕`
+					});
+				// 判断是否正在请求其它数据,如果是,则不发起额外的请求
+				if (this.loading) return;
+				this.pageNo += 1;
+				this.getData(this.pageNo);
+			},
+
+			// 隐藏键盘
+			hideKeyboard() {
+				uni.hideKeyboard();
+			},
 		}
-	}
+	};
 </script>
 
-<style>
+<style lang="scss" scoped>
+	body {
+		background-color: #f5f7f9;
+	}
+
+	page {
+		background-color: #f5f7f9;
+	}
+
+	/deep/ .u-tabs__wrapper[data-v-0de61367],
+	.u-tabs__wrapper.data-v-0de61367 {
+		width: 99%;
+	}
+
+	.uni-container {
+		height: 100vh;
+		padding-right: 20upx;
+	}
+
+	.addInsp {
+		width: 40px;
+		position: fixed;
+		right: 4px;
+		z-index: 99999;
+	}
+
+	::v-deep .u-icon__icon {
+		margin-right: 0px !important;
+	}
+
+	.an-niu {
+		float: right;
+		font-size: 10px;
+		text-align: center;
+		display: flex;
+		margin-top: -64upx;
+		padding-bottom: 30rpx;
+		// margin-top: 50rpx;
+		color: #fff;
+
+		.detail {
+			width: 60px;
+			height: 60rpx;
+			padding: 0 20rpx;
+			border-radius: 30px;
+			background-color: #f7c41e;
+			margin-right: 20rpx;
+			text-align: center;
+			line-height: 60rpx;
+			font-size: 27upx;
+		}
+
+		.detailDel {
+			width: 60px;
+			height: 60rpx;
+			// padding: 0 20rpx;
+			border-radius: 30px;
+			background-color: #ff2e31;
+			color: white;
+			margin-right: 20rpx;
+			text-align: center;
+			line-height: 60rpx;
+			font-size: 30upx;
+		}
 
-</style>
+		.solve {
+			width: 62px;
+			height: 60rpx;
+			margin-right: 20rpx;
+			border-radius: 30px;
+			background-color: #4cb2b6;
+			line-height: 60rpx;
+		}
+
+		/deep/ .padding-tb-sm {
+			padding-top: 0px;
+			padding-bottom: 10px;
+		}
+
+		.deletes {
+			width: 62px;
+			height: 60rpx;
+			border-radius: 60rpx;
+			background-color: red;
+			color: #fff;
+			line-height: 60rpx;
+		}
+	}
+
+	/deep/.segmented-control__item--button {
+		background-color: rgb(76, 178, 182) !important;
+	}
+
+	/deep/.segmented-control__item--button--active {
+		background-color: #ffffff !important;
+	}
+
+	/deep/.uni-card {
+		box-shadow: 0px 0px 3px 0px rgba(86, 165, 168, 0.63) !important;
+		border-radius: 30rpx;
+	}
+
+	.tiantupian {
+		width: 110rpx;
+		height: 110rpx;
+		position: fixed;
+		right: 15px;
+		bottom: 30rpx;
+	}
+
+	//列表样式
+	.titles {
+		font-weight: 600;
+		margin-bottom: 10rpx;
+		color: black;
+		font-size: 32rpx;
+	}
+
+	/deep/ .u-form-item__body__left__content__label {
+		font-size: 28upx !important;
+	}
+
+	.conts {
+		max-width: 470upx;
+		display: -webkit-box;
+		/*弹性伸缩盒子模型显示*/
+		-webkit-box-orient: vertical;
+		/*排列方式*/
+		-webkit-line-clamp: 1;
+		/*显示文本行数*/
+		overflow: hidden;
+		/*溢出隐藏*/
+		color: #274647;
+		text-overflow: ellipsis;
+	}
+
+	.max-width {
+		max-width: 180upx;
+	}
+
+	/deep/.u-action-sheet {
+		overflow-y: auto;
+		height: 1000rpx;
+		background-color: #fff;
+	}
+
+	.example {
+		overflow-y: auto;
+	}
+</style>

+ 36 - 0
utils/common.js

@@ -286,4 +286,40 @@ export function downSee(appendix) {
 			});
 		}
 	}) // #endif
+}
+
+export function uploadFile(tempFilePaths, i, that) {
+	return new Promise((resolve, reject) => {
+		const loading = uni.showLoading({
+			title: '文件上传中...',
+			mask: true
+		});
+		uni.uploadFile({
+			url: baseUrl + '/admin-api/infra/file/upload', // 后端用于处理图片并返回图片地址及文件的接口
+			filePath: tempFilePaths[i],
+			name: 'file',
+			header: {
+				Authorization: 'Bearer ' + getAccessToken() // 请求token
+			},
+			success: res => {
+				let data = JSON.parse(res.data);
+				// that.formData.attId.push(data.data)
+				that.formData.attId[0]=data.data
+				uni.showToast({
+					title: '文件上传成功!'
+				});
+				that.loading = false
+			},
+			fail: err => {
+				uni.showToast({
+					icon: 'error',
+					title: '文件上传失败!'
+				});
+				that.loading = false
+			},
+			complete: () => {
+				uni.hideLoading(loading);
+			}
+		});
+	});
 }

+ 8 - 8
utils/dict.js

@@ -86,13 +86,13 @@ export const DICT_TYPE = {
 
 	// ==========移动端 - PAGE 模块 ==========
 	FPD_TYPE: 'fpd_type', //设备类型
-	TRAIN_DRILL: 'train_drill',  //培训演练类别
-	BACKEND_ORG_TYPE2:'backend_org_type', //单位类型
-   // ==========移动端 - 人员信息模块 ==========
-     XUE_LI:'xueli',
-	 // ==========隐患管理模块 ==========
-	 DANGER_TYPE:'dangerType'
-
+	TRAIN_DRILL: 'train_drill', //培训演练类别
+	BACKEND_ORG_TYPE2: 'backend_org_type', //单位类型
+	// ==========移动端 - 人员信息模块 ==========
+	XUE_LI: 'xueli',
+	// ==========隐患管理模块 ==========
+	DANGER_TYPE: 'dangerType',
+	FIRE_WORK_STATUS: "fire_work_status", //动火台账状态
 
 	// ========== 数据字典映射 =================
 
@@ -154,4 +154,4 @@ export function getDictData(dictType, value) {
 export function getDictDataLabel(dictType, value) {
 	const dict = getDictData(dictType, value);
 	return dict ? dict.label : "";
-}
+}