206 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
		
		
			
		
	
	
			206 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
| 
								 | 
							
								<template>
							 | 
						|||
| 
								 | 
							
									<view class="page-wrap">
							 | 
						|||
| 
								 | 
							
										<u-subsection class="sub-section" :list="sections" :current="currentSection" @change="handleChangeSection"></u-subsection>
							 | 
						|||
| 
								 | 
							
										<view class="list-wrap">
							 | 
						|||
| 
								 | 
							
											<view v-for="(item, key) in snapshotList" :key="key">
							 | 
						|||
| 
								 | 
							
												<view class="album">
							 | 
						|||
| 
								 | 
							
													<view class="album-avatar">
							 | 
						|||
| 
								 | 
							
														<template>
							 | 
						|||
| 
								 | 
							
															<u-avatar
							 | 
						|||
| 
								 | 
							
																:text="item.CREATER_NAME ? item.CREATER_NAME.slice(0, 1) : ''"
							 | 
						|||
| 
								 | 
							
																fontSize="18"
							 | 
						|||
| 
								 | 
							
																randomBgColor
							 | 
						|||
| 
								 | 
							
															></u-avatar>
							 | 
						|||
| 
								 | 
							
														</template>
							 | 
						|||
| 
								 | 
							
													</view>
							 | 
						|||
| 
								 | 
							
													<view class="album-content">
							 | 
						|||
| 
								 | 
							
														<u--text
							 | 
						|||
| 
								 | 
							
															:text="`上报人:${item.CREATER_NAME || ''}`"
							 | 
						|||
| 
								 | 
							
															type="primary"
							 | 
						|||
| 
								 | 
							
															bold
							 | 
						|||
| 
								 | 
							
															size="17"
							 | 
						|||
| 
								 | 
							
														></u--text>
							 | 
						|||
| 
								 | 
							
														<u--text
							 | 
						|||
| 
								 | 
							
															margin="0 0 8px 0"
							 | 
						|||
| 
								 | 
							
															:text="item.DESCRIPTION || ''"
							 | 
						|||
| 
								 | 
							
														></u--text>
							 | 
						|||
| 
								 | 
							
														<view class="field">
							 | 
						|||
| 
								 | 
							
															<text class="label">上报时间:</text>
							 | 
						|||
| 
								 | 
							
															<text class="value">{{item.CREATE_TIME}}</text>
							 | 
						|||
| 
								 | 
							
														</view>
							 | 
						|||
| 
								 | 
							
														<u-album :urls="item.urls"></u-album>
							 | 
						|||
| 
								 | 
							
														<view class="ok-bar-wrap" v-if="item.STATUS === 10">
							 | 
						|||
| 
								 | 
							
															<u-button type="primary" @click="handleOk(item)" size="small" :plain="true" :hairline="true" text="确认" style="width: 100px; margin: 0;"></u-button>
							 | 
						|||
| 
								 | 
							
														</view>
							 | 
						|||
| 
								 | 
							
													</view>
							 | 
						|||
| 
								 | 
							
												</view>
							 | 
						|||
| 
								 | 
							
												<u-gap height="20" bgColor="#fff"></u-gap>
							 | 
						|||
| 
								 | 
							
											</view>
							 | 
						|||
| 
								 | 
							
										</view>
							 | 
						|||
| 
								 | 
							
									</view>
							 | 
						|||
| 
								 | 
							
								</template>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								<script>
							 | 
						|||
| 
								 | 
							
									import {
							 | 
						|||
| 
								 | 
							
										initFilter,
							 | 
						|||
| 
								 | 
							
										extendRule,
							 | 
						|||
| 
								 | 
							
										extendInclude
							 | 
						|||
| 
								 | 
							
									} from '../../../../utils/common'
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									import { handleOkSnapshot, getSnapshotList } from '../../../../services/apply/FMServices/FMServices'
							 | 
						|||
| 
								 | 
							
									import config from '../../../../config/common'
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									export default {
							 | 
						|||
| 
								 | 
							
										data() {
							 | 
						|||
| 
								 | 
							
											return {
							 | 
						|||
| 
								 | 
							
												currentStatus: 0,
							 | 
						|||
| 
								 | 
							
												currentSection: 0,
							 | 
						|||
| 
								 | 
							
												sourceUrl: config.uni_app_web_source_url,
							 | 
						|||
| 
								 | 
							
												sections: [{ name: '全部', id: 0 }, { name: '确认中', id: 10 }, { name: '已归档', id: 30 }],
							 | 
						|||
| 
								 | 
							
												snapshotList: [],
							 | 
						|||
| 
								 | 
							
												lists: [],
							 | 
						|||
| 
								 | 
							
											}
							 | 
						|||
| 
								 | 
							
										},
							 | 
						|||
| 
								 | 
							
										onShow() {
							 | 
						|||
| 
								 | 
							
											this.loadData()
							 | 
						|||
| 
								 | 
							
										},
							 | 
						|||
| 
								 | 
							
										methods: {
							 | 
						|||
| 
								 | 
							
											loadData() {
							 | 
						|||
| 
								 | 
							
												const orgId = uni.getStorageSync('orgId')
							 | 
						|||
| 
								 | 
							
												const json = initFilter(orgId, '', 'CREATE_TIME', '1')
							 | 
						|||
| 
								 | 
							
												if (this.currentStatus !== 0) {
							 | 
						|||
| 
								 | 
							
													extendRule(json, 'STATUS', 1, this.currentStatus)
							 | 
						|||
| 
								 | 
							
												}
							 | 
						|||
| 
								 | 
							
												extendInclude(json, "Nav_User")
							 | 
						|||
| 
								 | 
							
												extendInclude(json, "Nav_Files.Nav_ImgFile")
							 | 
						|||
| 
								 | 
							
												getSnapshotList(json).then(res => {
							 | 
						|||
| 
								 | 
							
													if (res) {
							 | 
						|||
| 
								 | 
							
														this.snapshotList = res.map(item => {
							 | 
						|||
| 
								 | 
							
															return {
							 | 
						|||
| 
								 | 
							
																...item,
							 | 
						|||
| 
								 | 
							
																urls: item.Nav_Files.map(e => {
							 | 
						|||
| 
								 | 
							
																	return {
							 | 
						|||
| 
								 | 
							
																		src: e.Nav_ImgFile?.FILE_PATH ? this.sourceUrl + e.Nav_ImgFile?.FILE_PATH : ''
							 | 
						|||
| 
								 | 
							
																	}
							 | 
						|||
| 
								 | 
							
																}).filter(o => o.src)
							 | 
						|||
| 
								 | 
							
															}
							 | 
						|||
| 
								 | 
							
														})
							 | 
						|||
| 
								 | 
							
													}
							 | 
						|||
| 
								 | 
							
												})
							 | 
						|||
| 
								 | 
							
											},
							 | 
						|||
| 
								 | 
							
											handleOk(item) {
							 | 
						|||
| 
								 | 
							
												handleOkSnapshot(item).then(res => {
							 | 
						|||
| 
								 | 
							
													if (res) {
							 | 
						|||
| 
								 | 
							
														this.loadData()
							 | 
						|||
| 
								 | 
							
													}
							 | 
						|||
| 
								 | 
							
												})
							 | 
						|||
| 
								 | 
							
											},
							 | 
						|||
| 
								 | 
							
											handleChangeSection(e) {
							 | 
						|||
| 
								 | 
							
												const s = {
							 | 
						|||
| 
								 | 
							
													0: 0,
							 | 
						|||
| 
								 | 
							
													1: 10,
							 | 
						|||
| 
								 | 
							
													2: 30
							 | 
						|||
| 
								 | 
							
												}
							 | 
						|||
| 
								 | 
							
												this.currentSection = e;
							 | 
						|||
| 
								 | 
							
												this.currentStatus = s[e];
							 | 
						|||
| 
								 | 
							
												this.loadData()
							 | 
						|||
| 
								 | 
							
											},
							 | 
						|||
| 
								 | 
							
										},
							 | 
						|||
| 
								 | 
							
										onReachBottom() {
							 | 
						|||
| 
								 | 
							
											// 页码 +1
							 | 
						|||
| 
								 | 
							
											if (this.total > 10 * this.pageIndex)
							 | 
						|||
| 
								 | 
							
												this.pageIndex++
							 | 
						|||
| 
								 | 
							
										},
							 | 
						|||
| 
								 | 
							
										watch: {
							 | 
						|||
| 
								 | 
							
											pageIndex(n, o) {
							 | 
						|||
| 
								 | 
							
												this.loadData()
							 | 
						|||
| 
								 | 
							
											},
							 | 
						|||
| 
								 | 
							
											keyword(n, o) {
							 | 
						|||
| 
								 | 
							
												this.pageIndex = 1
							 | 
						|||
| 
								 | 
							
												this.keyword = n
							 | 
						|||
| 
								 | 
							
												this.loadData()
							 | 
						|||
| 
								 | 
							
											},
							 | 
						|||
| 
								 | 
							
											searchStartTime(n, o) {
							 | 
						|||
| 
								 | 
							
												this.pageIndex = 1
							 | 
						|||
| 
								 | 
							
												this.searchStartTime = n
							 | 
						|||
| 
								 | 
							
												this.loadData()
							 | 
						|||
| 
								 | 
							
											},
							 | 
						|||
| 
								 | 
							
											filterStatus(n, o) {
							 | 
						|||
| 
								 | 
							
												this.pageIndex = 1
							 | 
						|||
| 
								 | 
							
												this.filterStatus = n
							 | 
						|||
| 
								 | 
							
												this.loadData()
							 | 
						|||
| 
								 | 
							
											}
							 | 
						|||
| 
								 | 
							
										},
							 | 
						|||
| 
								 | 
							
										computed: {}
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
								</script>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								<style scoped>
							 | 
						|||
| 
								 | 
							
									@import url("../../../../style/css/editTemplate.css");
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									.sub-section {
							 | 
						|||
| 
								 | 
							
										margin-bottom: 16px;
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									.album {
							 | 
						|||
| 
								 | 
							
										display: flex;
							 | 
						|||
| 
								 | 
							
										align-items: flex-start;
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									.album-avatar {
							 | 
						|||
| 
								 | 
							
										 /*background-color: $u-bg-color;*/
							 | 
						|||
| 
								 | 
							
										 padding: 5px;
							 | 
						|||
| 
								 | 
							
										 border-radius: 3px;
							 | 
						|||
| 
								 | 
							
									 }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									.album-content {
							 | 
						|||
| 
								 | 
							
										margin-left: 10px;
							 | 
						|||
| 
								 | 
							
										flex: 1;
							 | 
						|||
| 
								 | 
							
										padding-bottom: 10px;
							 | 
						|||
| 
								 | 
							
										border-bottom: 1px solid #e5e5e5;
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									.ok-bar-wrap {
							 | 
						|||
| 
								 | 
							
										padding-top: 10px;
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									.btn-groups button {
							 | 
						|||
| 
								 | 
							
										width: 48%;
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									.content .field {
							 | 
						|||
| 
								 | 
							
										font-size: 14px;
							 | 
						|||
| 
								 | 
							
										line-height: 18px;
							 | 
						|||
| 
								 | 
							
										margin-bottom: 4px;
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									.content .field .label {
							 | 
						|||
| 
								 | 
							
										color: #666;
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									.content .field .value {
							 | 
						|||
| 
								 | 
							
										color: #333333;
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									.card-title {
							 | 
						|||
| 
								 | 
							
										margin-bottom: 6px;
							 | 
						|||
| 
								 | 
							
										display: flex;
							 | 
						|||
| 
								 | 
							
										font-weight: bold;
							 | 
						|||
| 
								 | 
							
										flex-direction: row;
							 | 
						|||
| 
								 | 
							
										align-items: center;
							 | 
						|||
| 
								 | 
							
										justify-content: space-between;
							 | 
						|||
| 
								 | 
							
										width: 100%;
							 | 
						|||
| 
								 | 
							
										font-size: 16px;
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									.card-title .left {
							 | 
						|||
| 
								 | 
							
										display: flex;
							 | 
						|||
| 
								 | 
							
										align-items: center;
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									.card-title .title-icon {
							 | 
						|||
| 
								 | 
							
										margin-right: 4px;
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
								</style>
							 |