From e3fd50dff9b482346fe12c95d0cdd30a1f39947c Mon Sep 17 00:00:00 2001
From: pyt <626651354@qq.com>
Date: 星期五, 23 五月 2025 14:45:22 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/H5/threeSide

---
 H5/pages/dispatchWorkOrder/dispatchWorkOrder.vue                        |   13 
 management/src/pages/setting/user/index.jsx                             |   11 
 H5/pages/Appeal/Appeal.vue                                              |  924 +++++++++++++++++++++++++++++----------------------------
 H5/uni_modules/mumu-recorder/components/mumu-recorder/mumu-recorder.vue |    2 
 4 files changed, 490 insertions(+), 460 deletions(-)

diff --git a/H5/pages/Appeal/Appeal.vue b/H5/pages/Appeal/Appeal.vue
index eab086d..e1d4f2e 100644
--- a/H5/pages/Appeal/Appeal.vue
+++ b/H5/pages/Appeal/Appeal.vue
@@ -69,7 +69,7 @@
 				<view v-for="item, index in videoContent" :key="index">
 					<view class="pl-19 pr-19 pb-17 pt-17 flex j-between a-center br-8 pink">
 						<view class="flex1">
-							<text class="fs-27 font-bold">语音文件{{ index + 1 }}</text>
+							<text class="fs-27 font-bold">语音文件{{ (index + 1) | numToWords }}</text>
 						</view>
 						<view class="flex j-between a-center">
 							<image src="/static/Appeal/delete.png" class="w-27 h-27 mr-38" mode=""
@@ -147,495 +147,513 @@
 </template>
 
 <script>
-	import dayjs from '@/uni_modules/uview-ui/libs/util/dayjs.js';
-	import {
-		save,
-		getproblem
-	} from './service.js'
-	import config from '@/config/index.js'
-	import voiceInputPopup from '@/components/voiceInputPopup.vue'
-	import {
-		mapActions,
-		mapState
-	} from "vuex";
+import dayjs from '@/uni_modules/uview-ui/libs/util/dayjs.js';
+import {
+	save,
+	getproblem
+} from './service.js'
+import config from '@/config/index.js'
+import voiceInputPopup from '@/components/voiceInputPopup.vue'
+import {
+	mapActions,
+	mapState
+} from "vuex";
 
-	export default {
-		components: {
-			voiceInputPopup
+export default {
+	components: {
+		voiceInputPopup
+	},
+	data() {
+		return {
+			showList: false,
+			showDate: false,
+			value1: Number(new Date()),
+			columns: [
+				['医疗', '教育', '就业', '住房', '养老']
+			],
+			time: '',
+			problemType: '',
+			name: '',
+			contactNumber: '',
+			detailedAddress: '',
+			descriptionTitle: '',
+			descriptionContent: '',
+			videoContent: [],
+			latitude: '',
+			longitude: '',
+			location: '',
+			images: [],
+			videos: [],
+			voiceFile: '', //语音文件多个逗号拼接
+			userInfo: uni.getStorageSync('userInfo'), //个人信息
+			voiceInputShow: false,
+		};
+	},
+	computed: {
+		...mapState(["playFlag"]),
+	},
+	filters: {
+		formatTime(val) {
+			if (!val) return ''
+			return dayjs(val).format('YYYY-MM-DD HH:mm:ss')
 		},
-		data() {
-			return {
-				showList: false,
-				showDate: false,
-				value1: Number(new Date()),
-				columns: [
-					['医疗', '教育', '就业', '住房', '养老']
-				],
-				time: '',
-				problemType: '',
-				name: '',
-				contactNumber: '',
-				detailedAddress: '',
-				descriptionTitle: '',
-				descriptionContent: '',
-				videoContent: [],
-				latitude: '',
-				longitude: '',
-				location: '',
-				images: [],
-				videos: [],
-				voiceFile: '', //语音文件多个逗号拼接
-				userInfo: uni.getStorageSync('userInfo'), //个人信息
-				voiceInputShow: false,
-			};
+		numToWords(val) {
+			const words = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九', '十']
+			// 处理 0-10
+			if (val >= 0 && val <= 10) return words[val];
+			// 处理 11-99
+			if (val > 10 && val < 100) {
+				const ten = Math.floor(val / 10);
+				const unit = val % 10;
+				return `${ten > 1 ? words[ten] : ''}十${unit > 0 ? words[unit] : ''}`;
+			}
+			return val; // 超过99返回原数字
+		}
+	},
+	onReady() {
+		uni.setNavigationBarTitle({
+			title: '诉求录入'
+		})
+	},
+	onLoad() {
+		this.getproblem()
+		this.time = dayjs().format('YYYY-MM-DD')
+	},
+
+	methods: {
+		...mapActions(["playRecording", "pausePlaying"]),
+		onPlayRecording(index) {
+			// 先处理本地播放状态
+			this.videoContent.forEach((item, i) => {
+				item.playing = i === index;
+			});
+			// 调用store的播放方法,传url
+			this.playRecording(this.videoContent[index].url);
 		},
-		computed: {
-			...mapState(["playFlag"]),
+		onPausePlaying(index) {
+			this.videoContent[index].playing = false;
+			this.pausePlaying(this.videoContent[index].url);
 		},
-		onReady() {
-			uni.setNavigationBarTitle({
-				title: '诉求录入'
+		deleteVoice(ind) {
+			this.videoContent = this.videoContent.filter((item, index) => index != ind)
+		},
+		voiceInput() {
+			this.voiceInputShow = true;
+		},
+		closeVoiceInput() {
+			this.voiceInputShow = false;
+		},
+		submitVoiceInput(e) {
+			console.log('eeeeeeeeeeeeeeeeeee', e)
+			this.videoContent.push({
+				url: e.url,
+				data: e.data,
+				playing: false
+			});
+			this.voiceInputShow = false;
+		},
+		previewImage(index) {
+			uni.previewImage({
+				urls: this.images,
+				current: this.images[index],
+				longPressActions: {
+					itemList: ['发送给朋友', '保存图片', '收藏'],
+					success: function (data) {
+
+					},
+					fail: function (err) {
+
+					}
+				}
+			});
+		},
+		deletimg(e) {
+			this.images = this.images.filter(item => item != e)
+
+		},
+		deletvideo(e) {
+			this.videos = this.videos.filter(item => item != e)
+		},
+		gotoPage(e) {
+			uni.navigateTo({
+				url: `/pages/work-detail/maxVideo?url=${e}`
 			})
 		},
-		onLoad() {
-			this.getproblem()
-			this.time = dayjs().format('YYYY-MM-DD')
+		getproblem() {
+			getproblem().then((resp => {
+
+				this.columns = [resp.data.map(item => {
+					return item.name
+				})]
+			}))
 		},
-
-		methods: {
-			...mapActions(["playRecording", "pausePlaying"]),
-			onPlayRecording(index) {
-				// 先处理本地播放状态
-				this.videoContent.forEach((item, i) => {
-					item.playing = i === index;
+		async submit(type) {
+			if (this.videoContent.length > 0) {
+				uni.showLoading({
+					title: '正在上传语音文件...'
 				});
-				// 调用store的播放方法,传url
-				this.playRecording(this.videoContent[index].url);
-			},
-			onPausePlaying(index) {
-				this.videoContent[index].playing = false;
-				this.pausePlaying(this.videoContent[index].url);
-			},
-			deleteVoice(ind) {
-				this.videoContent = this.videoContent.filter((item, index) => index != ind)
-			},
-			voiceInput() {
-				this.voiceInputShow = true;
-			},
-			closeVoiceInput() {
-				this.voiceInputShow = false;
-			},
-			submitVoiceInput(e) {
-				console.log('eeeeeeeeeeeeeeeeeee', e)
-				this.videoContent.push({
-					url: e.url,
-					data: e.data,
-					playing: false
-				});
-				this.voiceInputShow = false;
-			},
-			previewImage(index) {
-				uni.previewImage({
-					urls: this.images,
-					current: this.images[index],
-					longPressActions: {
-						itemList: ['发送给朋友', '保存图片', '收藏'],
-						success: function(data) {
 
-						},
-						fail: function(err) {
-
-						}
-					}
-				});
-			},
-			deletimg(e) {
-				this.images = this.images.filter(item => item != e)
-
-			},
-			deletvideo(e) {
-				this.videos = this.videos.filter(item => item != e)
-			},
-			gotoPage(e) {
-				uni.navigateTo({
-					url: `/pages/work-detail/maxVideo?url=${e}`
-				})
-			},
-			getproblem() {
-				getproblem().then((resp => {
-
-					this.columns = [resp.data.map(item => {
-						return item.name
-					})]
-				}))
-			},
-			async submit(type) {
-				if (this.videoContent.length > 0) {
-					uni.showLoading({
-						title: '正在上传语音文件...'
-					});
-
-					const uploadPromises = this.videoContent.map(item => {
-						return new Promise((resolve, reject) => {
-							console.log('item.data', item.data)
-							// uni.chooseAudio({
-							// 	success:  (res)=> {
-							// 		console.log(res.tempFilePaths[0]);
-							// 		uni.uploadFile({
-							// 			url: config.imageUrl,
-							// 			filePath: res.tempFilePaths[0],  // 使用 Blob 数据
-							// 			name: 'file',
-							// 			header: {
-							// 				// 'Content-Type': 'multipart/form-data',
-							// 				'Authorization': uni.getStorageSync('token')
-							// 			},
-							// 			success: (uploadFileRes) => {
-							// 				const response = JSON.parse(uploadFileRes.data);
-							// 				if (response.code === 200) {
-							// 					resolve(response.data);
-							// 				} else {
-							// 					reject(new Error('上传失败'));
-							// 				}
-							// 			},
-							// 			fail: (error) => {
-							// 				reject(error);
-							// 			}
-							// 		});
-							// 	}
-							// });
-							uni.uploadFile({
-								url: config.imageUrl,
-								file: item.data, // 使用 Blob 数据
-								name: 'file',
-								header: {
-									// 'Content-Type': 'multipart/form-data',
-									'Authorization': uni.getStorageSync('token')
-								},
-								success: (uploadFileRes) => {
-									const response = JSON.parse(uploadFileRes.data);
-									if (response.code === 200) {
-										resolve(response.data);
-									} else {
-										reject(new Error('上传失败'));
-									}
-								},
-								fail: (error) => {
-									reject(error);
+				const uploadPromises = this.videoContent.map(item => {
+					return new Promise((resolve, reject) => {
+						console.log('item.data', item.data)
+						// uni.chooseAudio({
+						// 	success:  (res)=> {
+						// 		console.log(res.tempFilePaths[0]);
+						// 		uni.uploadFile({
+						// 			url: config.imageUrl,
+						// 			filePath: res.tempFilePaths[0],  // 使用 Blob 数据
+						// 			name: 'file',
+						// 			header: {
+						// 				// 'Content-Type': 'multipart/form-data',
+						// 				'Authorization': uni.getStorageSync('token')
+						// 			},
+						// 			success: (uploadFileRes) => {
+						// 				const response = JSON.parse(uploadFileRes.data);
+						// 				if (response.code === 200) {
+						// 					resolve(response.data);
+						// 				} else {
+						// 					reject(new Error('上传失败'));
+						// 				}
+						// 			},
+						// 			fail: (error) => {
+						// 				reject(error);
+						// 			}
+						// 		});
+						// 	}
+						// });
+						uni.uploadFile({
+							url: config.imageUrl,
+							file: item.data, // 使用 Blob 数据
+							name: 'file',
+							header: {
+								// 'Content-Type': 'multipart/form-data',
+								'Authorization': uni.getStorageSync('token')
+							},
+							success: (uploadFileRes) => {
+								const response = JSON.parse(uploadFileRes.data);
+								if (response.code === 200) {
+									resolve(response.data);
+								} else {
+									reject(new Error('上传失败'));
 								}
-							});
+							},
+							fail: (error) => {
+								reject(error);
+							}
 						});
 					});
+				});
 
-					try {
-						const uploadedUrls = await Promise.all(uploadPromises);
-						this.voiceFile = uploadedUrls.join(',');
-						console.log('this.voiceFile', this.voiceFile)
-						uni.hideLoading();
-					} catch (error) {
-						uni.hideLoading();
-						uni.showToast({
-							title: '语音文件上传失败',
-							icon: 'error'
-						});
-						return;
-					}
+				try {
+					const uploadedUrls = await Promise.all(uploadPromises);
+					this.voiceFile = uploadedUrls.join(',');
+					console.log('this.voiceFile', this.voiceFile)
+					uni.hideLoading();
+				} catch (error) {
+					uni.hideLoading();
+					uni.showToast({
+						title: '语音文件上传失败',
+						icon: 'error'
+					});
+					return;
 				}
-				const preciseRegex = /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/;
-				if (!this.time) {
-					uni.showToast({
-						title: '请选择时间',
-						icon: 'none'
-					})
-					return
-
-				} else if (!this.problemType) {
-					uni.showToast({
-						title: '请选择问题类型',
-						icon: 'none'
-					})
-					return
-				} else if (!this.name) {
-					uni.showToast({
-						title: '请输入群众姓名',
-						icon: 'none'
-					})
-					return
-				} else if (!this.contactNumber) {
-					uni.showToast({
-						title: '请输入联系电话',
-						icon: 'none'
-					})
-					return
-				} else if (!preciseRegex.test(this.contactNumber)) {
-					uni.showToast({
-						title: '请输入正确的手机号',
-						icon: 'none'
-					})
-					return
-				} else if (!this.location) {
-					uni.showToast({
-						title: '请选择地点',
-						icon: 'none'
-					})
-					return
-				} else if (!this.detailedAddress) {
-					uni.showToast({
-						title: '请输入详细地址',
-						icon: 'none'
-					})
-					return
-				} else if (!this.descriptionContent) {
-					uni.showToast({
-						title: '请输入问题描述',
-						icon: 'none'
-					})
-					return
-				}
-
-				const data = {
-					time: this.time,
-					problemType: this.problemType,
-					name: this.name,
-					contactNumber: this.contactNumber,
-					location: this.location,
-					latitude: this.latitude,
-					longitude: this.longitude,
-					detailedAddress: this.detailedAddress,
-					descriptionContent: this.descriptionContent,
-					images: this.images.join(','),
-					videos: this.videos.join(','),
-					voiceFile: this.voiceFile,
-				}
-				// 问题上报
-				if (type == 1) {
-					uni.navigateTo({
-						url: `/pages/problemReporting/problemReporting?data=${JSON.stringify(data)}`
-					})
-					return
-				}
-				// 办理结果录入
-				if (type == 2) {
-					uni.navigateTo({
-						url: `/pages/result-entry/index?data=${JSON.stringify(data)}`
-					})
-					return
-				}
-				// 添加
-				if (type == 3) {
-					save(data).then(resp => {
-						if (resp.code == 200) {
-							uni.showToast({
-								title: '保存成功',
-								icon: 'none'
-							})
-							setTimeout(() => {
-								uni.navigateBack()
-							}, 1500)
-						}
-					})
-				}
-			},
-			confirmone(e) {
-
-				this.time = dayjs(e.value).format('YYYY-MM-DD')
-				this.showDate = false
-			},
-			confirmtwo(e) {
-
-				this.problemType = e.value[0]
-				this.showList = false
-			},
-			cancel() {
-				this.showDate = false
-				this.showList = false
-			},
-			close(e) {
-				this.showDate = false
-				this.showList = false
-			},
-			goTopagelocation() {
-
-				uni.navigateTo({
-					url: '/pages/location/location'
+			}
+			const preciseRegex = /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/;
+			if (!this.time) {
+				uni.showToast({
+					title: '请选择时间',
+					icon: 'none'
 				})
-			},
-			uploadImg() {
-				uni.chooseImage({
-					count: 1, //默认9
-					sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
-					sourceType: ['album'], //从相册选择
-					success: (res) => {
+				return
 
-						uni.showLoading()
-						console.log('res.tempFilePaths[0]', res.tempFilePaths[0])
-						uni.uploadFile({
-							url: config.imageUrl,
-							filePath: res.tempFilePaths[0],
-							name: 'file',
-							header: {
-								'Authorization': uni.getStorageSync('token')
-							},
-							success: (uploadFileRes) => {
+			} else if (!this.problemType) {
+				uni.showToast({
+					title: '请选择问题类型',
+					icon: 'none'
+				})
+				return
+			} else if (!this.name) {
+				uni.showToast({
+					title: '请输入群众姓名',
+					icon: 'none'
+				})
+				return
+			} else if (!this.contactNumber) {
+				uni.showToast({
+					title: '请输入联系电话',
+					icon: 'none'
+				})
+				return
+			} else if (!preciseRegex.test(this.contactNumber)) {
+				uni.showToast({
+					title: '请输入正确的手机号',
+					icon: 'none'
+				})
+				return
+			} else if (!this.location) {
+				uni.showToast({
+					title: '请选择地点',
+					icon: 'none'
+				})
+				return
+			} else if (!this.detailedAddress) {
+				uni.showToast({
+					title: '请输入详细地址',
+					icon: 'none'
+				})
+				return
+			} else if (!this.descriptionContent) {
+				uni.showToast({
+					title: '请输入问题描述',
+					icon: 'none'
+				})
+				return
+			}
 
-								this.images = [...this.images, JSON.parse(uploadFileRes.data).data]
-								uni.hideLoading()
-							},
-							fail: () => {
-								uni.hideLoading()
-								uni.showToast({
-									title: '上传失败',
-									icon: 'error'
-								})
-							}
+			const data = {
+				time: this.time,
+				problemType: this.problemType,
+				name: this.name,
+				contactNumber: this.contactNumber,
+				location: this.location,
+				latitude: this.latitude,
+				longitude: this.longitude,
+				detailedAddress: this.detailedAddress,
+				descriptionContent: this.descriptionContent,
+				images: this.images.join(','),
+				videos: this.videos.join(','),
+				voiceFile: this.voiceFile,
+			}
+			// 问题上报
+			if (type == 1) {
+				uni.navigateTo({
+					url: `/pages/problemReporting/problemReporting?data=${JSON.stringify(data)}`
+				})
+				return
+			}
+			// 办理结果录入
+			if (type == 2) {
+				uni.navigateTo({
+					url: `/pages/result-entry/index?data=${JSON.stringify(data)}`
+				})
+				return
+			}
+			// 添加
+			if (type == 3) {
+				save(data).then(resp => {
+					if (resp.code == 200) {
+						uni.showToast({
+							title: '保存成功',
+							icon: 'none'
 						})
+						setTimeout(() => {
+							uni.navigateBack()
+						}, 1500)
 					}
-				});
-			},
-			uploadVideo() {
-				uni.chooseVideo({
-					count: 1, //默认9
-					sourceType: ['camera', 'album'],
-					success: (res) => {
-						const videoExtensions = /\.(mp4|avi|rmvb)$/i;
-						if (!videoExtensions.test(res.name)) {
+				})
+			}
+		},
+		confirmone(e) {
+
+			this.time = dayjs(e.value).format('YYYY-MM-DD')
+			this.showDate = false
+		},
+		confirmtwo(e) {
+
+			this.problemType = e.value[0]
+			this.showList = false
+		},
+		cancel() {
+			this.showDate = false
+			this.showList = false
+		},
+		close(e) {
+			this.showDate = false
+			this.showList = false
+		},
+		goTopagelocation() {
+
+			uni.navigateTo({
+				url: '/pages/location/location'
+			})
+		},
+		uploadImg() {
+			uni.chooseImage({
+				count: 1, //默认9
+				sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
+				sourceType: ['album'], //从相册选择
+				success: (res) => {
+
+					uni.showLoading()
+					console.log('res.tempFilePaths[0]', res.tempFilePaths[0])
+					uni.uploadFile({
+						url: config.imageUrl,
+						filePath: res.tempFilePaths[0],
+						name: 'file',
+						header: {
+							'Authorization': uni.getStorageSync('token')
+						},
+						success: (uploadFileRes) => {
+
+							this.images = [...this.images, JSON.parse(uploadFileRes.data).data]
+							uni.hideLoading()
+						},
+						fail: () => {
+							uni.hideLoading()
 							uni.showToast({
-								title: '请上传mp4, avi, rmvb格式的视频',
-								icon: 'none',
-								duration: 3000
+								title: '上传失败',
+								icon: 'error'
 							})
-							return
 						}
-						uni.showLoading()
-						uni.uploadFile({
-							url: config.imageUrl,
-							filePath: res.tempFilePath,
-							name: 'file',
-							header: {
-								'Authorization': uni.getStorageSync('token')
-							},
-							success: (uploadFileRes) => {
-
-								this.videos = [...this.videos, JSON.parse(uploadFileRes.data).data]
-								uni.hideLoading()
-							},
-							fail: () => {
-								uni.hideLoading()
-								uni.showToast({
-									title: '上传失败',
-									icon: 'error'
-								})
-							}
+					})
+				}
+			});
+		},
+		uploadVideo() {
+			uni.chooseVideo({
+				count: 1, //默认9
+				sourceType: ['camera', 'album'],
+				success: (res) => {
+					const videoExtensions = /\.(mp4|avi|rmvb)$/i;
+					if (!videoExtensions.test(res.name)) {
+						uni.showToast({
+							title: '请上传mp4, avi, rmvb格式的视频',
+							icon: 'none',
+							duration: 3000
 						})
+						return
 					}
-				});
-			},
-		}
+					uni.showLoading()
+					uni.uploadFile({
+						url: config.imageUrl,
+						filePath: res.tempFilePath,
+						name: 'file',
+						header: {
+							'Authorization': uni.getStorageSync('token')
+						},
+						success: (uploadFileRes) => {
+
+							this.videos = [...this.videos, JSON.parse(uploadFileRes.data).data]
+							uni.hideLoading()
+						},
+						fail: () => {
+							uni.hideLoading()
+							uni.showToast({
+								title: '上传失败',
+								icon: 'error'
+							})
+						}
+					})
+				}
+			});
+		},
 	}
+}
 </script>
 
 <style lang="scss" scoped>
-	.min-108 {
-		min-height: 108rpx;
+.min-108 {
+	min-height: 108rpx;
+}
+
+.red {
+	color: rgba(255, 73, 72, 1);
+}
+
+.pink {
+	background: #FFF1F4;
+	border-radius: 8rpx;
+	margin-top: 19rpx;
+}
+
+.card {
+	border-bottom: 2rpx solid rgba(0, 10, 26, 0.07);
+}
+
+.bg {
+	background: #F8F8F8;
+}
+
+.content {
+	padding: 38rpx 31rpx 162rpx 31rpx;
+
+	.main {
+		padding: 0 27rpx 48rpx 27rpx;
+		background: #FFFFFF;
+		box-shadow: 0rpx 0rpx 27rpx 0rpx rgba(0, 0, 0, 0.1);
+		border-radius: 19rpx;
 	}
+}
 
-	.red {
-		color: rgba(255, 73, 72, 1);
+textarea {
+	padding: 27rpx 31rpx 27rpx 31rpx;
+	font-weight: 500;
+}
+
+.img {
+	position: relative;
+
+	.img-icon {
+		height: 140rpx;
+		line-height: 140rpx;
+		position: absolute;
+		top: 0rpx;
+		left: 35rpx;
 	}
+}
 
-	.pink {
-		background: #FFF1F4;
-		border-radius: 8rpx;
-		margin-top: 19rpx;
-	}
+/deep/.u-popup__content {
+	border-radius: 16rpx 16rpx 0rpx 0rpx;
+}
 
-	.card {
-		border-bottom: 2rpx solid rgba(0, 10, 26, 0.07);
-	}
+/deep/ .u-toolbar {
+	border-bottom: 2rpx solid RGBA(243, 243, 243, 1);
+}
 
-	.bg {
-		background: #F8F8F8;
-	}
+/deep/ .u-toolbar__wrapper__cancel {
+	font-weight: 400;
+	font-size: 30rpx;
+	color: #FF4948 !important;
+}
 
-	.content {
-		padding: 38rpx 31rpx 162rpx 31rpx;
+/deep/ .u-toolbar__wrapper__confirm {
+	font-weight: 400;
+	font-size: 30rpx;
+	color: #FF4948 !important;
+}
 
-		.main {
-			padding: 0 27rpx 48rpx 27rpx;
-			background: #FFFFFF;
-			box-shadow: 0rpx 0rpx 27rpx 0rpx rgba(0, 0, 0, 0.1);
-			border-radius: 19rpx;
-		}
-	}
+.footer {
+	position: fixed;
+	bottom: 0;
+	left: 0;
+	box-shadow: 0rpx -4rpx 27rpx 0rpx rgba(0, 0, 0, 0.08);
+	width: calc(100% - 20rpx);
+	background-color: #fff;
+	display: flex;
+	gap: 27rpx;
+	padding: 33rpx 10rpx;
+	justify-content: space-between;
 
-	textarea {
-		padding: 27rpx 31rpx 27rpx 31rpx;
-		font-weight: 500;
-	}
-
-	.img {
-		position: relative;
-
-		.img-icon {
-			height: 140rpx;
-			line-height: 140rpx;
-			position: absolute;
-			top: 0rpx;
-			left: 35rpx;
-		}
-	}
-
-	/deep/.u-popup__content {
-		border-radius: 16rpx 16rpx 0rpx 0rpx;
-	}
-
-	/deep/ .u-toolbar {
-		border-bottom: 2rpx solid RGBA(243, 243, 243, 1);
-	}
-
-	/deep/ .u-toolbar__wrapper__cancel {
-		font-weight: 400;
-		font-size: 30rpx;
-		color: #FF4948 !important;
-	}
-
-	/deep/ .u-toolbar__wrapper__confirm {
-		font-weight: 400;
-		font-size: 30rpx;
-		color: #FF4948 !important;
-	}
-
-	.footer {
-		position: fixed;
-		bottom: 0;
-		left: 0;
-		box-shadow: 0rpx -4rpx 27rpx 0rpx rgba(0, 0, 0, 0.08);
-		width: calc(100% - 20rpx);
-		background-color: #fff;
+	.cancel {
+		width: 331rpx;
+		height: 77rpx;
+		border: 2rpx solid rgba(252, 141, 85, 1);
+		border-radius: 38rpx;
 		display: flex;
-		gap: 27rpx;
-		padding: 33rpx 10rpx;
-		justify-content: space-between;
-
-		.cancel {
-			width: 331rpx;
-			height: 77rpx;
-			border: 2rpx solid rgba(252, 141, 85, 1);
-			border-radius: 38rpx;
-			display: flex;
-			align-items: center;
-			justify-content: center;
-			color: #FF4948;
-		}
-
-		.ok {
-			width: 331rpx;
-			height: 77rpx;
-			background: linear-gradient(270deg, #FC8D55 0%, #FF4948 100%);
-			border-radius: 48rpx;
-			display: flex;
-			align-items: center;
-			justify-content: center;
-			color: #FFFFFF;
-		}
+		align-items: center;
+		justify-content: center;
+		color: #FF4948;
 	}
+
+	.ok {
+		width: 331rpx;
+		height: 77rpx;
+		background: linear-gradient(270deg, #FC8D55 0%, #FF4948 100%);
+		border-radius: 48rpx;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		color: #FFFFFF;
+	}
+}
 </style>
\ No newline at end of file
diff --git a/H5/pages/dispatchWorkOrder/dispatchWorkOrder.vue b/H5/pages/dispatchWorkOrder/dispatchWorkOrder.vue
index bd3777c..10119f0 100644
--- a/H5/pages/dispatchWorkOrder/dispatchWorkOrder.vue
+++ b/H5/pages/dispatchWorkOrder/dispatchWorkOrder.vue
@@ -25,7 +25,12 @@
 						</view>
 					</view>
 					<view class="person-item flex1">{{detail.name}}</view>
-					<view class="phone-item flex1">{{detail.contactNumber}}</view>
+					<view class="flex a-center">
+						<view class="phone-item flex1">{{detail.contactNumber}}</view>
+						<image @click.stop="callPhone(detail.contactNumber)" src="../../static/tell.png"
+							class="w-58 h-58 shrink0 " />
+					</view>
+
 				</view>
 			</view>
 		</view>
@@ -93,6 +98,12 @@
 			}
 		},
 		methods: {
+
+			callPhone(phoneNumber) {
+				uni.makePhoneCall({
+					phoneNumber
+				});
+			},
 			close() {
 				this.showPop = false
 			},
diff --git a/H5/uni_modules/mumu-recorder/components/mumu-recorder/mumu-recorder.vue b/H5/uni_modules/mumu-recorder/components/mumu-recorder/mumu-recorder.vue
index b890c7d..1e5dda5 100644
--- a/H5/uni_modules/mumu-recorder/components/mumu-recorder/mumu-recorder.vue
+++ b/H5/uni_modules/mumu-recorder/components/mumu-recorder/mumu-recorder.vue
@@ -70,7 +70,7 @@
 				this.chunks.push(e.data)
 			},
 			saveRecordingData() {
-				const blob = new Blob(this.chunks, { 'type': 'audio/mpeg' }),
+				const blob = new Blob(this.chunks, { 'type': 'audio/mp3' }),
 					localUrl = URL.createObjectURL(blob)
 
 				const endTime = new Date().getTime()
diff --git a/management/src/pages/setting/user/index.jsx b/management/src/pages/setting/user/index.jsx
index 7bb4751..6c8aeee 100644
--- a/management/src/pages/setting/user/index.jsx
+++ b/management/src/pages/setting/user/index.jsx
@@ -29,7 +29,7 @@
   const [modalVisible1, handleModalVisibles1] = useState(false);
   const [roleList, setRoleList] = useState([]);
   const [unitId, setUnitId] = useState('');
-  const [tier,setTier] = useState(0);
+  const [tier, setTier] = useState(0);
   const [openKeys, setOpenKeys] = useState([]);
   const access = useAccess();
   const [items, setItems] = useState([]);
@@ -100,7 +100,7 @@
               if (e && e.domEvent) {
                 e.domEvent.stopPropagation();
               }
-              console.log('item',item);    
+              console.log('item', item);
               setUnitId(item.id);
               setTier(item.tier);
               const values = form.getFieldsValue();
@@ -117,7 +117,7 @@
             if (e && e.domEvent) {
               e.domEvent.stopPropagation();
             }
-            console.log('item////////////',item);    
+            console.log('item////////////', item);
             setTier(item.tier);
             setUnitId(item.id);
             const values = form.getFieldsValue();
@@ -243,7 +243,6 @@
         2: '区县',
         3: '街道',
         4: '社区',
-        5: '党员',
       },
     },
     {
@@ -347,6 +346,7 @@
           initialValues={{ type: 1 }}
           onReset={() => {
             setUnitId('');
+            setTier('');
             setOpenKeys([]);
             actionRef.current.reload();
           }}
@@ -398,6 +398,7 @@
             rowKey="id"
             onReset={() => {
               setUnitId('');
+              setTier('');
               setOpenKeys([]);
               actionRef.current.reset();
             }}
@@ -421,7 +422,7 @@
               // if (params.departmentId) {
               //   obj.departmentId = params.departmentId[params.departmentId.length - 1];
               // }
-              if (tier&&!params.accountLevel) {
+              if (tier && !params.accountLevel) {
                 obj.accountLevel = tier;
               }
               if (form.getFieldValue('type')) {

--
Gitblit v1.7.1