yf_zhb 2 лет назад
Родитель
Сommit
3726b9b4ff
27 измененных файлов с 22551 добавлено и 19144 удалено
  1. 1 1
      MingGaoApp/.hbuilderx/launch.json
  2. 3 2
      MingGaoApp/App.vue
  3. 33 12
      MingGaoApp/components/task-card/task-card.vue
  4. 4 3
      MingGaoApp/components/task-details.vue
  5. 0 0
      MingGaoApp/components/uni-icons-bak/icons.js
  6. 0 0
      MingGaoApp/components/uni-icons-bak/uni-icons.vue
  7. 2 2
      MingGaoApp/components/uni-nav-bar/uni-nav-bar.vue
  8. 9 0
      MingGaoApp/pages.json
  9. 12 3
      MingGaoApp/pages/index/clockDetail.vue
  10. 152 0
      MingGaoApp/pages/my/components/warnCard.vue
  11. 23 8
      MingGaoApp/pages/my/index.vue
  12. 123 0
      MingGaoApp/pages/my/warnList.vue
  13. 1 1
      MingGaoApp/pages/response/details.vue
  14. 579 622
      MingGaoApp/pages/response/index.vue
  15. 32 13
      MingGaoApp/pages/response/video.nvue
  16. 36 0
      MingGaoApp/service/warn.js
  17. 22 0
      MingGaoApp/uni_modules/uni-icons/changelog.md
  18. 1169 0
      MingGaoApp/uni_modules/uni-icons/components/uni-icons/icons.js
  19. 96 0
      MingGaoApp/uni_modules/uni-icons/components/uni-icons/uni-icons.vue
  20. 663 0
      MingGaoApp/uni_modules/uni-icons/components/uni-icons/uniicons.css
  21. BIN
      MingGaoApp/uni_modules/uni-icons/components/uni-icons/uniicons.ttf
  22. 86 0
      MingGaoApp/uni_modules/uni-icons/package.json
  23. 8 0
      MingGaoApp/uni_modules/uni-icons/readme.md
  24. 2 2
      MingGaoApp/unpackage/dist/dev/app-plus/app-config-service.js
  25. 17913 17507
      MingGaoApp/unpackage/dist/dev/app-plus/app-service.js
  26. 1581 967
      MingGaoApp/unpackage/dist/dev/app-plus/app-view.js
  27. 1 1
      MingGaoApp/unpackage/dist/dev/app-plus/pages/response/video.js

+ 1 - 1
MingGaoApp/.hbuilderx/launch.json

@@ -16,7 +16,7 @@
             "type" : "uniCloud"
         },
         {
-            "playground" : "custom",
+            "playground" : "standard",
             "type" : "uni-app:app-android"
         }
     ]

+ 3 - 2
MingGaoApp/App.vue

@@ -175,13 +175,13 @@
 						uni.switchTab({
 							url: '/pages/response/index',
 							success(res) {
-								console.warn(res, '-------------- into room ')
+								console.warn(res, '--------------response index into room ')
 							},
 							fail(err) {
 								console.error(err)
 							},
 							complete() {
-								console.warn('-------------- into room complete')
+								console.warn('--------------response index into room complete')
 							}
 						})
 
@@ -219,6 +219,7 @@
 							}
 						})
 					} else if (val.action == 'reject_video_rsp') {
+						console.warn('reject_video_rsp','挂断 拒接')
 						// 被拒绝后挂断视频通话
 						this.$store.commit('updateIsRefusedCall', true)
 					} else if (val.action == 'occupy_rsp') {

+ 33 - 12
MingGaoApp/components/task-card/task-card.vue

@@ -27,7 +27,7 @@
 			</view>
 			<view class="actions__list" :class="{'border-none':dataSource.task_status === '已完成'}"
 				v-if="dataSource.task_status !== '待处理'">
-				<view class="actions__item ">
+				<view class="actions__item middle">
 					<view class="actions__icon">
 						<image src="@/static/image/task/icon/progress.png" mode="aspectFit" class="img"></image>
 					</view>
@@ -38,10 +38,13 @@
 						<image src="@/static/image/task/icon/tool.png" mode="aspectFit" class="img"></image>
 					</view>
 					<view class="actions__text">
-						{{dataSource.walk_length | meter}}
+						<u-tooltip :zIndex="8" :showCopy="false" :overlay="false" size="12" :color="'#1B76FF'"
+							:text="meter(dataSource.walk_length) "
+							:buttons="[meter(dataSource.walk_length) ]"></u-tooltip>
+						<!-- {{dataSource.walk_length | meter}} -->
 					</view>
 				</view>
-				<view class="actions__item right">
+				<view class="actions__item middle">
 					<view class="actions__icon">
 						<image src="@/static/image/task/icon/area.png" mode="aspectFit" class="img"></image>
 					</view>
@@ -149,6 +152,9 @@
 			numberFixed(val) {
 				return Number(val) ? Number(val).toFixed(2) : val
 			},
+			meter: function(val) {
+				return val / 1000 > 1 ? (val / 1000).toFixed(2) + 'km' : Number(val).toFixed(2) + 'm'
+			},
 			handleClick() {
 				this.$emit('click', this.dataSource.task_id);
 			},
@@ -182,7 +188,7 @@
 			flex: 1 1 auto;
 			font-size: 14px;
 			color: #333;
-			line-height: 20px;
+			line-height: 40rpx;
 			margin-right: 100rpx;
 			padding-bottom: 10rpx;
 			@include hairline-bottom(rgba(151, 151, 151, 0.09));
@@ -191,7 +197,7 @@
 		&__name {
 			flex: 0 0 auto;
 			font-size: 12px;
-			line-height: 20px;
+			line-height: 40rpx;
 			color: #1B76FF;
 		}
 
@@ -207,7 +213,7 @@
 
 			&__title {
 				font-size: 12px;
-				line-height: 18px;
+				line-height: 36rpx;
 				color: #1B76FF;
 				margin-right: 20rpx;
 			}
@@ -216,7 +222,7 @@
 				padding: 0 12rpx;
 				color: #1B76FF;
 				font-size: 12px;
-				line-height: 14px;
+				line-height: 28rpx;
 				border-radius: 8rpx;
 				border: 1px solid #1B76FF;
 
@@ -231,7 +237,7 @@
 				padding: 10rpx 0;
 				color: #656565;
 				font-size: 12px;
-				line-height: 18px;
+				line-height: 36rpx;
 				margin-bottom: 10rpx;
 				@include line(2);
 			}
@@ -262,6 +268,7 @@
 				}
 
 				&__item {
+					box-sizing: border-box;
 					width: 0;
 					flex: 1 1 auto;
 					height: 50rpx;
@@ -272,13 +279,26 @@
 
 					&.middle {
 						justify-content: center;
-						padding: 0 40rpx;
+						padding: 0 30rpx;
 						
 						.actions__text {
 							width: 0;
 							// background-color: #F33E43;
 							flex: 1 1 auto;
 							text-align: right;
+							
+							::v-deep {
+								.u-tooltip__wrapper {
+									width: 100%;
+								}
+								
+								.u-tooltip__wrapper__text {
+									width: 100%;
+									// font-size: 12px;
+									// text-align: right;
+									@include line;
+								}
+							}
 						}
 					}
 
@@ -299,7 +319,7 @@
 								
 
 								.u-tooltip__wrapper__text {
-									// width: 100%;
+									width: 100%;
 									// font-size: 12px;
 									// text-align: right;
 									// @include line;
@@ -329,6 +349,7 @@
 					font-size: 14px;
 					line-height: 36rpx;
 					color: #1B76FF;
+					
 					// @include line;
 				}
 
@@ -366,14 +387,14 @@
 						min-width: 88rpx;
 						text-align: center;
 						font-size: 12px;
-						line-height: 18px;
+						line-height: 36rpx;
 						color: #555555;
 					}
 				}
 
 				&__tips {
 					font-size: 12px;
-					line-height: 14px;
+					line-height: 28rpx;
 					color: #1B76FF;
 					margin-bottom: 8rpx;
 				}

+ 4 - 3
MingGaoApp/components/task-details.vue

@@ -294,9 +294,11 @@
 						task_id: id,
 					}
 				})
-				console.log(res, 'get task info 0221')
+				
+				this.taskinfo = res;
+
 				const newImgList = reduce(res.clock_in_list, (pre, current) => concat(pre, current.img_list || []), [])
-				console.log(newImgList, 'new img list')
+
 				if (!this.taskinfo.img_list || this.taskinfo.img_list.length == 0) {
 					this.taskinfo.img_list = []
 				} else {
@@ -317,7 +319,6 @@
 				})
 				this.$store.state.worndatabase = JSON.parse(JSON.stringify(this.taskinfo.trap_record_list))
 				this.loading = false
-				console.log(res)
 			},
 			taskfillingcom() {
 				console.log(this.taskinfo.trap_record_list)

MingGaoApp/components/uni-icons/icons.js → MingGaoApp/components/uni-icons-bak/icons.js


MingGaoApp/components/uni-icons/uni-icons.vue → MingGaoApp/components/uni-icons-bak/uni-icons.vue


+ 2 - 2
MingGaoApp/components/uni-nav-bar/uni-nav-bar.vue

@@ -46,13 +46,13 @@
 
 <script>
 	import uniStatusBar from "../uni-status-bar/uni-status-bar.vue";
-	import uniIcons from "../uni-icons/uni-icons.vue";
+	// import uniIcons from "../uni-icons/uni-icons.vue";
 
 	export default {
 		name: "UniNavBar",
 		components: {
 			uniStatusBar,
-			uniIcons
+			// uniIcons
 		},
 		props: {
 			title: {

+ 9 - 0
MingGaoApp/pages.json

@@ -313,6 +313,15 @@
 				"navigationBarBackgroundColor": "#ffffff"
 			}
 		
+		},
+		{
+			"path": "pages/my/warnList",
+			"style": {
+				"navigationBarTitleText": "预警记录",
+				"enablePullDownRefresh": true,
+				"navigationBarBackgroundColor": "#ffffff"
+			}
+		
 		}
 	],
 	"globalStyle": {

+ 12 - 3
MingGaoApp/pages/index/clockDetail.vue

@@ -40,8 +40,8 @@
 		<view class="clock-details__footer">
 			<u-button type="primary" text="签到" @click="handleClockInSubmit"></u-button>
 		</view>
-		<ksp-image-cutter @ok="onok" @cancel="oncancle" :url="kpsurlL" :fixed="false" :blob="false" :maxWidth="500"
-			:maxHeight="500"></ksp-image-cutter>
+		<!-- <ksp-image-cutter @ok="onok" @cancel="oncancle" :url="kpsurlL" :fixed="false" :blob="false" :maxWidth="500"
+			:maxHeight="500"></ksp-image-cutter> -->
 		<u-loading-page loading-text="加载中..." :loading="loading" font-size="16"></u-loading-page>
 	</view>
 </template>
@@ -187,7 +187,9 @@
 					success: (res) => {
 						console.log(res)
 						// this.urllist.push(res.tempFilePaths[0])
-						this.kpsurlL = res.tempFilePaths[0]
+						// this.kpsurlL = res.tempFilePaths[0]
+						
+						this.onok({path:res.tempFilePaths[0]})
 					}
 				});
 			},
@@ -203,6 +205,7 @@
 				this.kpsurlL = ""
 			},
 			onok(ev) {
+				this.loading = true;
 				Debounce(() => {
 					uni.uploadFile({
 						url: this.baseUrl +
@@ -214,6 +217,12 @@
 							this.urllist.push(JSON.parse(uploadFileRes.data).data.src)
 							console.log(this.urllist, ' upload file')
 							this.kpsurlL = ""
+							
+							this.loading = false;
+						},
+						complete() {
+							console.log('上传完成 1355566')
+							this.loading = false;
 						}
 					});
 				}, 1000)()

+ 152 - 0
MingGaoApp/pages/my/components/warnCard.vue

@@ -0,0 +1,152 @@
+<template>
+	<view class="warn-card" @click="handleClick">
+		<view class="warn-card__title" :class="{active:!dataSource.is_read}">
+			{{dataSource.alert_title}}
+		</view>
+		<view class="warn-card__content">
+			<view class="warn-card__item">
+				<view class="warn-card__label">预警类型:</view>
+				<view class="warn-card__value">{{dataSource.alert_type}}</view>
+			</view>
+			<view class="warn-card__item">
+				<view class="warn-card__label">设备ID:</view>
+				<view class="warn-card__value">{{dataSource.device_id || '-'}}</view>
+			</view>
+			<view class="warn-card__item" @click="handleMapCheck">
+				<view class="warn-card__label">设备位置:</view>
+				<view class="warn-card__value map">查看位置</view>
+			</view>
+			<view class="warn-card__item blocked">
+				<view class="warn-card__label">预警内容:</view>
+				<view class="warn-card__value">{{dataSource.message || '-'}}</view>
+			</view>
+		</view>
+		<view class="warn-card__footer">
+			<view><text class="text">{{dataSource.create_time}}</text>
+				<uni-icons :type="dataSource.is_read?'mail-open-filled':'email'" size="18"></uni-icons>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		props: {
+			dataSource: {
+				type: Object,
+				default: () => ({})
+			}
+		},
+		data() {
+			return {}
+		},
+		methods:{
+			handleClick(){
+				if(this.dataSource.is_read){
+					return 
+				}
+				
+				this.$emit('click',this.dataSource.record_id);
+			},
+			handleMapCheck(){
+				if(!this.dataSource.lat && !this.dataSource.lng){
+					uni.$u.toast('当前位置不存在');
+					return 
+				}
+				
+				console.log('map click')
+				uni.openLocation({
+					latitude:this.dataSource.lat,
+					longitude:this.dataSource.lng,
+					success() {
+						console.log('sucess open location');
+					},
+					fail(res){
+						console.warn(res);
+					}
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.warn-card {
+		background-color: #fff;
+		border-radius: 16rpx;
+		padding: 16rpx;
+		margin-bottom: 24rpx;
+
+		&__title {
+			position: relative;
+			padding: 0 40rpx;
+			font-size: 16px;
+			color: #333;
+			line-height: 40rpx;
+			height: 40rpx;
+			@include line;
+			margin-bottom: 20rpx;
+
+			&::before {
+				position: absolute;
+				content: '';
+				width: 20rpx;
+				height: 20rpx;
+				border-radius: 50%;
+				left: 0;
+				top: 50%;
+				transform: translateY(-50%);
+				background-color: #999;
+			}
+
+			&.active {
+				color: #1B76FF;
+
+				&::before {
+					background-color: #1B76FF;
+				}
+			}
+		}
+
+		&__content {
+			display: flex;
+			justify-content: space-between;
+			align-items: center;
+			flex-wrap: wrap;
+		}
+
+		&__item {
+			width: 30%;
+			display: flex;
+			align-items: center;
+			margin-bottom: 20rpx;
+			color: #333;
+			font-size: 12px;
+			line-height: 28rpx;
+
+			&.blocked {
+				width: 100%;
+			}
+		}
+		
+		&__value {
+			&.map {
+				color: #1B76FF;
+				text-decoration: underline;
+			}
+		}
+
+		&__footer {
+			display: flex;
+			justify-content: flex-end;
+			align-items: center;
+			font-size: 14px;
+			line-height: 32rpx;
+			color: #333;
+
+			.text {
+				margin-right: 20rpx;
+			}
+		}
+	}
+</style>

+ 23 - 8
MingGaoApp/pages/my/index.vue

@@ -14,10 +14,10 @@
 					{{item}}
 				</view>
 				<view class="item_info">
-					<view class="" v-if="index==3">
+					<view class="" v-if="index==5">
 						{{ids}}
 					</view>
-					<view class="item_info_dian" v-if="index==3&&newversion">
+					<view class="item_info_dian" v-if="index==5&&newversion || index==4 && unreadNum>0">
 
 					</view>
 					<u-icon name="arrow-right" color="#606060"></u-icon>
@@ -28,7 +28,10 @@
 </template>
 
 <script>
-	import {mapMutations} from 'vuex';
+	import * as warnService from '@/service/warn.js';
+	import {
+		mapMutations
+	} from 'vuex';
 	export default {
 		data() {
 			return {
@@ -38,9 +41,10 @@
 					},
 					username: ""
 				},
-				tablist: ["个人中心", "监测日志", "监督记录", "版本信息", "我的轨迹"],
+				tablist: ["个人中心", "监测日志", "监督记录", "我的轨迹", '我的消息', "版本信息", ],
 				newversion: false,
-				ids: plus.runtime.version
+				ids: plus.runtime.version,
+				unreadNum: 0
 			}
 		},
 		watch: {
@@ -70,6 +74,7 @@
 				this.userinfo = res
 				this.updateUserInfo(res);
 				this.getversions()
+				this.getMessageUnreadNum()
 			},
 			async getversions() {
 				const res = await this.$myRequest({
@@ -89,6 +94,12 @@
 					}
 				}
 			},
+			getMessageUnreadNum() {
+				warnService.fetchWarnRecordUnreadNum({}).then(res => {
+					console.log(res, 'warn unread num')
+					this.unreadNum = res.unread_num
+				})
+			},
 			myskip(index) {
 				if (index == 0) {
 					uni.navigateTo({
@@ -105,11 +116,15 @@
 					});
 				} else if (index == 3) {
 					uni.navigateTo({
-						url: './version',
+						url: '/pages/my/map',
 					});
-				}else if (index == 4) {
+				} else if (index == 4) {
 					uni.navigateTo({
-						url: '/pages/my/map',
+						url: '/pages/my/warnList',
+					});
+				} else if (index == 5) {
+					uni.navigateTo({
+						url: './version',
 					});
 				}
 			}

+ 123 - 0
MingGaoApp/pages/my/warnList.vue

@@ -0,0 +1,123 @@
+<template>
+	<view class="warn">
+		<warn-card v-for="item in warnMessageList" :key="item.record_id" :dataSource="item" @click="handleCardClick">
+		</warn-card>
+		<u-loading-page loading-text="加载中..." bgColor="transparent" :loading="loading" font-size="16"></u-loading-page>
+		<u-empty text="暂无数据" v-if="warnMessageList.length <1">
+		</u-empty>
+	</view>
+</template>
+
+<script>
+	import WarnCard from './components/warnCard.vue';
+	import * as warnService from '@/service/warn.js';
+	import {
+		map,
+		forEach,
+		assign
+	} from 'lodash-es';
+
+	export default {
+		components: {
+			WarnCard
+		},
+		data() {
+			return {
+				page: 1,
+				total: 0,
+				pageSize: 30,
+				start_time: '',
+				end_time: '',
+				alert_type: '',
+				warnMessageIDList: [],
+				warnMessageDataSource: {},
+				loading: false,
+			}
+		},
+		computed: {
+			warnMessageList() {
+				return map(this.warnMessageIDList, id => this.warnMessageDataSource[id] || {})
+			}
+		},
+		onReachBottom() {
+			console.log('-------------- onReachBottom 121331')
+			const hasMore = this.total > 0 && this.total > this.page * this.pageSize
+			console.warn('each bottom -------- has more', hasMore, this.total, this.page, this.pageSize)
+			if (hasMore) {
+				this.page++;
+				this.getWarnMessageList();
+			}
+		},
+		onPullDownRefresh() {
+			console.log('refresh')
+			this.resetList();
+			setTimeout(() => {
+				uni.stopPullDownRefresh();
+			}, 1000)
+		},
+		onShow() {
+			this.resetList();
+		},
+		methods: {
+			resetList() {
+				this.page = 1;
+				this.total = 0;
+				this.warnMessageIDList = [];
+				this.getWarnMessageList();
+			},
+			getWarnMessageList() {
+				this.loading = true;
+				warnService.fetchWarnRecordList({
+					page: this.page,
+					page_item: this.pageSize,
+					start_time: this.start_time, //
+					end_time: this.end_time, //
+					alert_type: this.alert_type //
+				}).then(res => {
+					this.total = res.total_item
+					const idList = map(res.page_list, 'record_id');
+					console.log(res.page_list,'fetch warn record list')
+					forEach(res.page_list, item => {
+						this.$set(this.warnMessageDataSource, item.record_id, item)
+					})
+
+					this.warnMessageIDList =
+						this.page === 1 ? idList : concat(this.warnMessageIDList, idList);
+
+				}).finally(() => {
+					this.loading = false;
+				})
+			},
+			handleCardClick(id) {
+				if (!id) {
+					return
+				}
+
+				this.loading = true;
+				warnService.updateWarnRecordReadStatus({
+					record_id: id
+				}).then(res => {
+					uni.$u.toast('更新成功');
+
+					assign(this.warnMessageDataSource[id], {
+						is_read: 1
+					})
+
+				}).finally(() => {
+					this.loading = false;
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.warn {
+		padding: 20rpx;
+	}
+</style>
+<style>
+	page {
+		background-color: #F7F8FB;
+	}
+</style>

+ 1 - 1
MingGaoApp/pages/response/details.vue

@@ -1,6 +1,6 @@
 <template>
 	<view class="details-page">
-		<uni-nav-bar :title="tltName" :statusBar="true" :fixed="true" leftIcon="left-nav"
+		<uni-nav-bar :title="tltName" :statusBar="true" :fixed="true" leftIcon="back"
 			@clickRight="handleIMWithVideo" @clickLeft="handleBack">
 			<image slot="right" style="width: 46rpx; height: 30rpx" src="@/static/response/video.svg" mode="aspectFit">
 			</image>

Разница между файлами не показана из-за своего большого размера
+ 579 - 622
MingGaoApp/pages/response/index.vue


+ 32 - 13
MingGaoApp/pages/response/video.nvue

@@ -81,7 +81,7 @@
 	import ZegoRemoteView from '@/zego-express-video-uniapp/zego-view/ZegoRemoteView';
 
 	import {
-		assign
+		assign, forEach
 	} from 'lodash-es';
 	export default {
 		data() {
@@ -139,7 +139,7 @@
 		},
 
 		methods: {
-			...mapMutations(['updateIsRefusedCall','updateTalkingStatus']),
+			...mapMutations(['updateIsRefusedCall', 'updateTalkingStatus']),
 			// 即构 - 视频通话 初始化
 			async setup() {
 				var that = this
@@ -242,7 +242,7 @@
 
 				// 房间用户变化通知
 				this.engine.on("roomUserUpdate", (roomID, updateType, userList) => {
-					console.log(updateType)
+					console.log(updateType,ZegoUpdateType.Delete,'roomUserUpdate')
 					console.log(userList)
 					console.log("有其他用户进出房间");
 					if (updateType == ZegoUpdateType.Add) {
@@ -439,7 +439,7 @@
 				console.warn('进入了啊offVideo', this.engine)
 				this.updateIsRefusedCall(false);
 				this.updateTalkingStatus(false);
-				
+
 				if (!this.engine) {
 					console.warn('挂断退出 ------- 12131312')
 					this.isPendingExit = true;
@@ -480,9 +480,7 @@
 							},
 						});
 					}
-					uni.navigateBack({
-						delta: 1
-					})
+					this.handleBack()
 				}, 1500)
 				// uni.redirectTo({
 				// 	url: "/pages/response/index"
@@ -496,23 +494,44 @@
 				this.engine = undefined;
 				ZegoExpressEngine.destroyEngine();
 			},
+
+			handleBack() {
+				const pages = getCurrentPages();
+				if(pages.length<3){
+					uni.switchTab({
+						url: '/pages/response/index',
+						success(res) {
+							console.warn(res, '返回上一页成功,当前页面:视频通话页面 ')
+						},
+						fail(err) {
+							console.error(err)
+						},
+						complete() {
+							console.warn('返回上一页执行完成,当前页面:视频通话页面 ')
+						}
+					})
+				}else{
+					uni.navigateBack({
+						delta: 1
+					})
+				}
+			}
 		},
 
 		async onLoad(optinos) {
-			if(this.isVideoCallRefused){
+			
+			if (this.isVideoCallRefused) {
 				that.$refs.uToast.show({
 					type: 'default',
 					message: '对方正忙',
 				})
-				
+
 				setTimeout(() => {
-					uni.navigateBack({
-						delta: 1
-					})
+					this.handleBack();
 				}, 1500)
 				return
 			}
-			
+
 			var that = this
 			that.videoObj = JSON.parse(optinos.videoObj)
 			// // console.log(that.videoObj)

+ 36 - 0
MingGaoApp/service/warn.js

@@ -0,0 +1,36 @@
+import {
+	myRequest
+} from '@/util/api.js';
+
+// 获取消息列表
+export function fetchWarnRecordList(data) {
+	return myRequest({
+		url: '/api/api_gateway?method=alert_manage.alert.alert_record_list',
+		data
+	})
+}
+
+// 获取消息未读数
+export function fetchWarnRecordUnreadNum(data) {
+	return myRequest({
+		url: '/api/api_gateway?method=alert_manage.alert.alert_unread_num',
+		data
+	})
+}
+
+// 更新消息已读状态
+export function updateWarnRecordReadStatus(data) {
+	return myRequest({
+		url: '/api/api_gateway?method=alert_manage.alert.alert_read',
+		data
+	})
+}
+
+
+// 一键已读
+export function batchUpdateMessageReadStatus(data) {
+	return myRequest({
+		url: '/api/api_gateway?method=alert_manage.alert.alert_one_click_read',
+		data
+	})
+}

+ 22 - 0
MingGaoApp/uni_modules/uni-icons/changelog.md

@@ -0,0 +1,22 @@
+## 1.3.5(2022-01-24)
+- 优化 size 属性可以传入不带单位的字符串数值
+## 1.3.4(2022-01-24)
+- 优化 size 支持其他单位
+## 1.3.3(2022-01-17)
+- 修复 nvue 有些图标不显示的bug,兼容老版本图标
+## 1.3.2(2021-12-01)
+- 优化 示例可复制图标名称
+## 1.3.1(2021-11-23)
+- 优化 兼容旧组件 type 值
+## 1.3.0(2021-11-19)
+- 新增 更多图标
+- 优化 自定义图标使用方式
+- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-icons](https://uniapp.dcloud.io/component/uniui/uni-icons)
+## 1.1.7(2021-11-08)
+## 1.2.0(2021-07-30)
+- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
+## 1.1.5(2021-05-12)
+- 新增 组件示例地址
+## 1.1.4(2021-02-05)
+- 调整为uni_modules目录规范

Разница между файлами не показана из-за своего большого размера
+ 1169 - 0
MingGaoApp/uni_modules/uni-icons/components/uni-icons/icons.js


+ 96 - 0
MingGaoApp/uni_modules/uni-icons/components/uni-icons/uni-icons.vue

@@ -0,0 +1,96 @@
+<template>
+	<!-- #ifdef APP-NVUE -->
+	<text :style="{ color: color, 'font-size': iconSize }" class="uni-icons" @click="_onClick">{{unicode}}</text>
+	<!-- #endif -->
+	<!-- #ifndef APP-NVUE -->
+	<text :style="{ color: color, 'font-size': iconSize }" class="uni-icons" :class="['uniui-'+type,customPrefix,customPrefix?type:'']" @click="_onClick"></text>
+	<!-- #endif -->
+</template>
+
+<script>
+	import icons from './icons.js';
+	const getVal = (val) => {
+		const reg = /^[0-9]*$/g
+		return (typeof val === 'number' || reg.test(val) )? val + 'px' : val;
+	} 
+	// #ifdef APP-NVUE
+	var domModule = weex.requireModule('dom');
+	import iconUrl from './uniicons.ttf'
+	domModule.addRule('fontFace', {
+		'fontFamily': "uniicons",
+		'src': "url('"+iconUrl+"')"
+	});
+	// #endif
+
+	/**
+	 * Icons 图标
+	 * @description 用于展示 icons 图标
+	 * @tutorial https://ext.dcloud.net.cn/plugin?id=28
+	 * @property {Number} size 图标大小
+	 * @property {String} type 图标图案,参考示例
+	 * @property {String} color 图标颜色
+	 * @property {String} customPrefix 自定义图标
+	 * @event {Function} click 点击 Icon 触发事件
+	 */
+	export default {
+		name: 'UniIcons',
+		emits:['click'],
+		props: {
+			type: {
+				type: String,
+				default: ''
+			},
+			color: {
+				type: String,
+				default: '#333333'
+			},
+			size: {
+				type: [Number, String],
+				default: 14
+			},
+			customPrefix:{
+				type: String,
+				default: ''
+			}
+		},
+		data() {
+			return {
+				icons: icons.glyphs
+			}
+		},
+		computed:{
+			unicode(){
+				let code = this.icons.find(v=>v.font_class === this.type)
+				if(code){
+					return unescape(`%u${code.unicode}`)
+				}
+				return ''
+			},
+			iconSize(){
+				return getVal(this.size)
+			}
+		},
+		methods: {
+			_onClick() {
+				this.$emit('click')
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	/* #ifndef APP-NVUE */
+	@import './uniicons.css';
+	@font-face {
+		font-family: uniicons;
+		src: url('./uniicons.ttf') format('truetype');
+	}
+
+	/* #endif */
+	.uni-icons {
+		font-family: uniicons;
+		text-decoration: none;
+		text-align: center;
+	}
+
+</style>

+ 663 - 0
MingGaoApp/uni_modules/uni-icons/components/uni-icons/uniicons.css

@@ -0,0 +1,663 @@
+.uniui-color:before {
+  content: "\e6cf";
+}
+
+.uniui-wallet:before {
+  content: "\e6b1";
+}
+
+.uniui-settings-filled:before {
+  content: "\e6ce";
+}
+
+.uniui-auth-filled:before {
+  content: "\e6cc";
+}
+
+.uniui-shop-filled:before {
+  content: "\e6cd";
+}
+
+.uniui-staff-filled:before {
+  content: "\e6cb";
+}
+
+.uniui-vip-filled:before {
+  content: "\e6c6";
+}
+
+.uniui-plus-filled:before {
+  content: "\e6c7";
+}
+
+.uniui-folder-add-filled:before {
+  content: "\e6c8";
+}
+
+.uniui-color-filled:before {
+  content: "\e6c9";
+}
+
+.uniui-tune-filled:before {
+  content: "\e6ca";
+}
+
+.uniui-calendar-filled:before {
+  content: "\e6c0";
+}
+
+.uniui-notification-filled:before {
+  content: "\e6c1";
+}
+
+.uniui-wallet-filled:before {
+  content: "\e6c2";
+}
+
+.uniui-medal-filled:before {
+  content: "\e6c3";
+}
+
+.uniui-gift-filled:before {
+  content: "\e6c4";
+}
+
+.uniui-fire-filled:before {
+  content: "\e6c5";
+}
+
+.uniui-refreshempty:before {
+  content: "\e6bf";
+}
+
+.uniui-location-filled:before {
+  content: "\e6af";
+}
+
+.uniui-person-filled:before {
+  content: "\e69d";
+}
+
+.uniui-personadd-filled:before {
+  content: "\e698";
+}
+
+.uniui-back:before {
+  content: "\e6b9";
+}
+
+.uniui-forward:before {
+  content: "\e6ba";
+}
+
+.uniui-arrow-right:before {
+  content: "\e6bb";
+}
+
+.uniui-arrowthinright:before {
+  content: "\e6bb";
+}
+
+.uniui-arrow-left:before {
+  content: "\e6bc";
+}
+
+.uniui-arrowthinleft:before {
+  content: "\e6bc";
+}
+
+.uniui-arrow-up:before {
+  content: "\e6bd";
+}
+
+.uniui-arrowthinup:before {
+  content: "\e6bd";
+}
+
+.uniui-arrow-down:before {
+  content: "\e6be";
+}
+
+.uniui-arrowthindown:before {
+  content: "\e6be";
+}
+
+.uniui-bottom:before {
+  content: "\e6b8";
+}
+
+.uniui-arrowdown:before {
+  content: "\e6b8";
+}
+
+.uniui-right:before {
+  content: "\e6b5";
+}
+
+.uniui-arrowright:before {
+  content: "\e6b5";
+}
+
+.uniui-top:before {
+  content: "\e6b6";
+}
+
+.uniui-arrowup:before {
+  content: "\e6b6";
+}
+
+.uniui-left:before {
+  content: "\e6b7";
+}
+
+.uniui-arrowleft:before {
+  content: "\e6b7";
+}
+
+.uniui-eye:before {
+  content: "\e651";
+}
+
+.uniui-eye-filled:before {
+  content: "\e66a";
+}
+
+.uniui-eye-slash:before {
+  content: "\e6b3";
+}
+
+.uniui-eye-slash-filled:before {
+  content: "\e6b4";
+}
+
+.uniui-info-filled:before {
+  content: "\e649";
+}
+
+.uniui-reload:before {
+  content: "\e6b2";
+}
+
+.uniui-micoff-filled:before {
+  content: "\e6b0";
+}
+
+.uniui-map-pin-ellipse:before {
+  content: "\e6ac";
+}
+
+.uniui-map-pin:before {
+  content: "\e6ad";
+}
+
+.uniui-location:before {
+  content: "\e6ae";
+}
+
+.uniui-starhalf:before {
+  content: "\e683";
+}
+
+.uniui-star:before {
+  content: "\e688";
+}
+
+.uniui-star-filled:before {
+  content: "\e68f";
+}
+
+.uniui-calendar:before {
+  content: "\e6a0";
+}
+
+.uniui-fire:before {
+  content: "\e6a1";
+}
+
+.uniui-medal:before {
+  content: "\e6a2";
+}
+
+.uniui-font:before {
+  content: "\e6a3";
+}
+
+.uniui-gift:before {
+  content: "\e6a4";
+}
+
+.uniui-link:before {
+  content: "\e6a5";
+}
+
+.uniui-notification:before {
+  content: "\e6a6";
+}
+
+.uniui-staff:before {
+  content: "\e6a7";
+}
+
+.uniui-vip:before {
+  content: "\e6a8";
+}
+
+.uniui-folder-add:before {
+  content: "\e6a9";
+}
+
+.uniui-tune:before {
+  content: "\e6aa";
+}
+
+.uniui-auth:before {
+  content: "\e6ab";
+}
+
+.uniui-person:before {
+  content: "\e699";
+}
+
+.uniui-email-filled:before {
+  content: "\e69a";
+}
+
+.uniui-phone-filled:before {
+  content: "\e69b";
+}
+
+.uniui-phone:before {
+  content: "\e69c";
+}
+
+.uniui-email:before {
+  content: "\e69e";
+}
+
+.uniui-personadd:before {
+  content: "\e69f";
+}
+
+.uniui-chatboxes-filled:before {
+  content: "\e692";
+}
+
+.uniui-contact:before {
+  content: "\e693";
+}
+
+.uniui-chatbubble-filled:before {
+  content: "\e694";
+}
+
+.uniui-contact-filled:before {
+  content: "\e695";
+}
+
+.uniui-chatboxes:before {
+  content: "\e696";
+}
+
+.uniui-chatbubble:before {
+  content: "\e697";
+}
+
+.uniui-upload-filled:before {
+  content: "\e68e";
+}
+
+.uniui-upload:before {
+  content: "\e690";
+}
+
+.uniui-weixin:before {
+  content: "\e691";
+}
+
+.uniui-compose:before {
+  content: "\e67f";
+}
+
+.uniui-qq:before {
+  content: "\e680";
+}
+
+.uniui-download-filled:before {
+  content: "\e681";
+}
+
+.uniui-pyq:before {
+  content: "\e682";
+}
+
+.uniui-sound:before {
+  content: "\e684";
+}
+
+.uniui-trash-filled:before {
+  content: "\e685";
+}
+
+.uniui-sound-filled:before {
+  content: "\e686";
+}
+
+.uniui-trash:before {
+  content: "\e687";
+}
+
+.uniui-videocam-filled:before {
+  content: "\e689";
+}
+
+.uniui-spinner-cycle:before {
+  content: "\e68a";
+}
+
+.uniui-weibo:before {
+  content: "\e68b";
+}
+
+.uniui-videocam:before {
+  content: "\e68c";
+}
+
+.uniui-download:before {
+  content: "\e68d";
+}
+
+.uniui-help:before {
+  content: "\e679";
+}
+
+.uniui-navigate-filled:before {
+  content: "\e67a";
+}
+
+.uniui-plusempty:before {
+  content: "\e67b";
+}
+
+.uniui-smallcircle:before {
+  content: "\e67c";
+}
+
+.uniui-minus-filled:before {
+  content: "\e67d";
+}
+
+.uniui-micoff:before {
+  content: "\e67e";
+}
+
+.uniui-closeempty:before {
+  content: "\e66c";
+}
+
+.uniui-clear:before {
+  content: "\e66d";
+}
+
+.uniui-navigate:before {
+  content: "\e66e";
+}
+
+.uniui-minus:before {
+  content: "\e66f";
+}
+
+.uniui-image:before {
+  content: "\e670";
+}
+
+.uniui-mic:before {
+  content: "\e671";
+}
+
+.uniui-paperplane:before {
+  content: "\e672";
+}
+
+.uniui-close:before {
+  content: "\e673";
+}
+
+.uniui-help-filled:before {
+  content: "\e674";
+}
+
+.uniui-paperplane-filled:before {
+  content: "\e675";
+}
+
+.uniui-plus:before {
+  content: "\e676";
+}
+
+.uniui-mic-filled:before {
+  content: "\e677";
+}
+
+.uniui-image-filled:before {
+  content: "\e678";
+}
+
+.uniui-locked-filled:before {
+  content: "\e668";
+}
+
+.uniui-info:before {
+  content: "\e669";
+}
+
+.uniui-locked:before {
+  content: "\e66b";
+}
+
+.uniui-camera-filled:before {
+  content: "\e658";
+}
+
+.uniui-chat-filled:before {
+  content: "\e659";
+}
+
+.uniui-camera:before {
+  content: "\e65a";
+}
+
+.uniui-circle:before {
+  content: "\e65b";
+}
+
+.uniui-checkmarkempty:before {
+  content: "\e65c";
+}
+
+.uniui-chat:before {
+  content: "\e65d";
+}
+
+.uniui-circle-filled:before {
+  content: "\e65e";
+}
+
+.uniui-flag:before {
+  content: "\e65f";
+}
+
+.uniui-flag-filled:before {
+  content: "\e660";
+}
+
+.uniui-gear-filled:before {
+  content: "\e661";
+}
+
+.uniui-home:before {
+  content: "\e662";
+}
+
+.uniui-home-filled:before {
+  content: "\e663";
+}
+
+.uniui-gear:before {
+  content: "\e664";
+}
+
+.uniui-smallcircle-filled:before {
+  content: "\e665";
+}
+
+.uniui-map-filled:before {
+  content: "\e666";
+}
+
+.uniui-map:before {
+  content: "\e667";
+}
+
+.uniui-refresh-filled:before {
+  content: "\e656";
+}
+
+.uniui-refresh:before {
+  content: "\e657";
+}
+
+.uniui-cloud-upload:before {
+  content: "\e645";
+}
+
+.uniui-cloud-download-filled:before {
+  content: "\e646";
+}
+
+.uniui-cloud-download:before {
+  content: "\e647";
+}
+
+.uniui-cloud-upload-filled:before {
+  content: "\e648";
+}
+
+.uniui-redo:before {
+  content: "\e64a";
+}
+
+.uniui-images-filled:before {
+  content: "\e64b";
+}
+
+.uniui-undo-filled:before {
+  content: "\e64c";
+}
+
+.uniui-more:before {
+  content: "\e64d";
+}
+
+.uniui-more-filled:before {
+  content: "\e64e";
+}
+
+.uniui-undo:before {
+  content: "\e64f";
+}
+
+.uniui-images:before {
+  content: "\e650";
+}
+
+.uniui-paperclip:before {
+  content: "\e652";
+}
+
+.uniui-settings:before {
+  content: "\e653";
+}
+
+.uniui-search:before {
+  content: "\e654";
+}
+
+.uniui-redo-filled:before {
+  content: "\e655";
+}
+
+.uniui-list:before {
+  content: "\e644";
+}
+
+.uniui-mail-open-filled:before {
+  content: "\e63a";
+}
+
+.uniui-hand-down-filled:before {
+  content: "\e63c";
+}
+
+.uniui-hand-down:before {
+  content: "\e63d";
+}
+
+.uniui-hand-up-filled:before {
+  content: "\e63e";
+}
+
+.uniui-hand-up:before {
+  content: "\e63f";
+}
+
+.uniui-heart-filled:before {
+  content: "\e641";
+}
+
+.uniui-mail-open:before {
+  content: "\e643";
+}
+
+.uniui-heart:before {
+  content: "\e639";
+}
+
+.uniui-loop:before {
+  content: "\e633";
+}
+
+.uniui-pulldown:before {
+  content: "\e632";
+}
+
+.uniui-scan:before {
+  content: "\e62a";
+}
+
+.uniui-bars:before {
+  content: "\e627";
+}
+
+.uniui-cart-filled:before {
+  content: "\e629";
+}
+
+.uniui-checkbox:before {
+  content: "\e62b";
+}
+
+.uniui-checkbox-filled:before {
+  content: "\e62c";
+}
+
+.uniui-shop:before {
+  content: "\e62f";
+}
+
+.uniui-headphones:before {
+  content: "\e630";
+}
+
+.uniui-cart:before {
+  content: "\e631";
+}

BIN
MingGaoApp/uni_modules/uni-icons/components/uni-icons/uniicons.ttf


+ 86 - 0
MingGaoApp/uni_modules/uni-icons/package.json

@@ -0,0 +1,86 @@
+{
+  "id": "uni-icons",
+  "displayName": "uni-icons 图标",
+  "version": "1.3.5",
+  "description": "图标组件,用于展示移动端常见的图标,可自定义颜色、大小。",
+  "keywords": [
+    "uni-ui",
+    "uniui",
+    "icon",
+    "图标"
+],
+  "repository": "https://github.com/dcloudio/uni-ui",
+  "engines": {
+    "HBuilderX": "^3.2.14"
+  },
+  "directories": {
+    "example": "../../temps/example_temps"
+  },
+  "dcloudext": {
+    "category": [
+      "前端组件",
+      "通用组件"
+    ],
+    "sale": {
+      "regular": {
+        "price": "0.00"
+      },
+      "sourcecode": {
+        "price": "0.00"
+      }
+    },
+    "contact": {
+      "qq": ""
+    },
+    "declaration": {
+      "ads": "无",
+      "data": "无",
+      "permissions": "无"
+    },
+    "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
+  },
+  "uni_modules": {
+    "dependencies": ["uni-scss"],
+    "encrypt": [],
+    "platforms": {
+      "cloud": {
+        "tcb": "y",
+        "aliyun": "y"
+      },
+      "client": {
+        "App": {
+          "app-vue": "y",
+          "app-nvue": "y"
+        },
+        "H5-mobile": {
+          "Safari": "y",
+          "Android Browser": "y",
+          "微信浏览器(Android)": "y",
+          "QQ浏览器(Android)": "y"
+        },
+        "H5-pc": {
+          "Chrome": "y",
+          "IE": "y",
+          "Edge": "y",
+          "Firefox": "y",
+          "Safari": "y"
+        },
+        "小程序": {
+          "微信": "y",
+          "阿里": "y",
+          "百度": "y",
+          "字节跳动": "y",
+          "QQ": "y"
+        },
+        "快应用": {
+          "华为": "u",
+          "联盟": "u"
+        },
+        "Vue": {
+            "vue2": "y",
+            "vue3": "y"
+        }
+      }
+    }
+  }
+}

+ 8 - 0
MingGaoApp/uni_modules/uni-icons/readme.md

@@ -0,0 +1,8 @@
+## Icons 图标
+> **组件名:uni-icons**
+> 代码块: `uIcons`
+
+用于展示 icons 图标 。
+
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-icons)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 

Разница между файлами не показана из-за своего большого размера
+ 2 - 2
MingGaoApp/unpackage/dist/dev/app-plus/app-config-service.js


Разница между файлами не показана из-за своего большого размера
+ 17913 - 17507
MingGaoApp/unpackage/dist/dev/app-plus/app-service.js


Разница между файлами не показана из-за своего большого размера
+ 1581 - 967
MingGaoApp/unpackage/dist/dev/app-plus/app-view.js


Разница между файлами не показана из-за своего большого размера
+ 1 - 1
MingGaoApp/unpackage/dist/dev/app-plus/pages/response/video.js