191 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			Vue
		
	
	
			
		
		
	
	
			191 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			Vue
		
	
	
| <!-- 隐患整改组件 -->
 | ||
| <template>
 | ||
| 	<view class="container">
 | ||
| 		<!-- 吸顶搜索框 start -->
 | ||
| 		<key-word-search-input :inputSearchValue="searchForm.HIDDENDESCR" @search="handleSearch" />
 | ||
| 		<!-- 吸顶搜索框 end -->
 | ||
| 
 | ||
| 		<!-- 列表渲染 start -->
 | ||
| 		<list :list="list" @scrollToLower="scrollToLower">
 | ||
| 			<template #default="{ item }">
 | ||
| 				<view class="flex-between main-title">
 | ||
| 					<view class="u-line-1">{{ item.HIDDENDESCR || "暂无" }}</view>
 | ||
| 					<view :class="hiddenLevelColor[item.HIDDENLEVEL]">
 | ||
| 						{{ item.HIDDENLEVELNAME }}
 | ||
| 					</view>
 | ||
| 				</view>
 | ||
| 				<view class="flex-between subtitle mt-5">
 | ||
| 					<view>来源:{{ hiddenSource[item.SOURCE] }}</view>
 | ||
| 				</view>
 | ||
| 				<view class="flex-between subtitle mt-5">
 | ||
| 					<view>隐患发现人:{{ item.findUserNames || "暂无" }}</view>
 | ||
| 					<view>
 | ||
| 						隐患发现时间:{{
 | ||
| 							item.DISCOVERYTIME
 | ||
| 								? formatTime(item.DISCOVERYTIME)
 | ||
| 								: "暂无"
 | ||
| 						}}
 | ||
| 					</view>
 | ||
| 				</view>
 | ||
| 				<view class="flex-between subtitle mt-5">
 | ||
| 					<view>隐患确认人:{{ item.confirmUserName || "暂无" }}</view>
 | ||
| 					<view>
 | ||
| 						隐患确认时间:{{
 | ||
| 							item.CONFIRM_TIME
 | ||
| 								? formatTime(item.CONFIRM_TIME)
 | ||
| 								: "暂无"
 | ||
| 						}}
 | ||
| 					</view>
 | ||
| 				</view>
 | ||
| 				<view class="flex-between subtitle mt-5">
 | ||
| 					<view>隐患确认状态:待整改</view>
 | ||
| 					<view class="flex-between">
 | ||
| 						<view>
 | ||
| 							<u-button type="primary" size="mini" shape="circle" @click="handleClickRectify(item)">
 | ||
| 								整改
 | ||
| 							</u-button>
 | ||
| 						</view>
 | ||
| 						<view v-if="item.exaCount === 0" class="ml-10">
 | ||
| 							<u-button type="primary" size="mini" shape="circle" @click="handleClickExtensionApplication(item)">
 | ||
| 								延期申请
 | ||
| 							</u-button>
 | ||
| 						</view>
 | ||
| 					</view>
 | ||
| 				</view>
 | ||
| 			</template>
 | ||
| 		</list>
 | ||
| 		<!-- 列表渲染 end -->
 | ||
| 	</view>
 | ||
| </template>
 | ||
| 
 | ||
| <script>
 | ||
| import keyWordSearchInput from "@/components/keyWordSearchInput/index.vue";
 | ||
| import List from "@/components/list/list.vue";
 | ||
| import * as HiddenRectificationApi from "../../api/index";
 | ||
| import dayjs from "dayjs";
 | ||
| import { HIDDEN_LEVEL_COlOR, HIDDEN_SOURCE } from "@/utils/constant";
 | ||
| import { hidden_rectification_list } from "@/Mock/responseData.js";
 | ||
| 
 | ||
| export default {
 | ||
| 	components: { keyWordSearchInput, List },
 | ||
| 
 | ||
| 	onShow() {
 | ||
| 		this.resetPagination()
 | ||
| 	},
 | ||
| 
 | ||
| 	data() {
 | ||
| 		return {
 | ||
| 			store: this.$store, // 全局store
 | ||
| 			searchForm: {
 | ||
| 				HIDDENDESCR: "",
 | ||
| 			},
 | ||
| 			isRequestEnd: false, // 请求是否已结束
 | ||
| 			pagination: {
 | ||
| 				showCount: 10,
 | ||
| 				currentPage: 1,
 | ||
| 				stateConfirm: "0",
 | ||
| 				total: 0,
 | ||
| 			},
 | ||
| 			list: [],
 | ||
| 		}
 | ||
| 	},
 | ||
| 
 | ||
| 	created() { },
 | ||
| 
 | ||
| 	mounted() { },
 | ||
| 
 | ||
| 	// 页面展示后立刻触发
 | ||
| 	onShow() {
 | ||
| 		this.getList();
 | ||
| 	},
 | ||
| 
 | ||
| 	computed: {
 | ||
| 		hiddenLevelColor() {
 | ||
| 			return HIDDEN_LEVEL_COlOR;
 | ||
| 		},
 | ||
| 		hiddenSource() {
 | ||
| 			return HIDDEN_SOURCE;
 | ||
| 		},
 | ||
| 	},
 | ||
| 
 | ||
| 	methods: {
 | ||
| 		/** 处理搜索事件 */
 | ||
| 		async handleSearch(val) {
 | ||
| 			this.pagination = {
 | ||
| 				...this.pagination,
 | ||
| 				currentPage: 1,
 | ||
| 				showCount: 10,
 | ||
| 				total: 0,
 | ||
| 			};
 | ||
| 			await this.getList(val);
 | ||
| 		},
 | ||
| 		async resetPagination(params) {
 | ||
| 			this.list = [];
 | ||
| 			this.pagination = {
 | ||
| 				showCount: 10,
 | ||
| 				currentPage: 1,
 | ||
| 				stateConfirm: "0",
 | ||
| 				total: 0,
 | ||
| 			};
 | ||
| 			await this.getList(params);
 | ||
| 		},
 | ||
| 		getList() {
 | ||
| 			if (this.isRequestEnd) return null;
 | ||
| 			uni.showLoading({
 | ||
| 				title: "加载中",
 | ||
| 			});
 | ||
| 			let { USER_ID, CORPINFO_ID, DEPARTMENT_ID } = this.store.state.userInfo;
 | ||
| 			// HiddenRectificationApi.getHiddenList({
 | ||
| 			// 	USER_ID: USER_ID,
 | ||
| 			// 	CORPINFO_ID,
 | ||
| 			// 	currentPage: this.pagination.currentPage,
 | ||
| 			// 	showCount: this.pagination.showCount,
 | ||
| 			// 	DISPOSESTATE: 2,
 | ||
| 			// 	stateConfirm: this.pagination.stateConfirm,
 | ||
| 			// 	USERDEPT: DEPARTMENT_ID,
 | ||
| 			// 	SELFUSERID: USER_ID,
 | ||
| 			// 	corpinfoId: CORPINFO_ID,
 | ||
| 			// 	loginUserId: USER_ID,
 | ||
| 			// }).then((response) => {
 | ||
| 			// 	console.log('response :>> ', response);
 | ||
| 			// })
 | ||
| 
 | ||
| 			// 虚拟 mock 数据渲染
 | ||
| 			setTimeout(() => {
 | ||
| 				this.list = hidden_rectification_list;
 | ||
| 				this.pagination.total = 0;
 | ||
| 				uni.hideLoading();
 | ||
| 			}, 400);
 | ||
| 		},
 | ||
| 		/** 格式化日期时间 */
 | ||
| 		formatTime(val) {
 | ||
| 			return dayjs(val).format("YYYY-MM-DD");
 | ||
| 		},
 | ||
| 		/** 向下滚动加载数据 */
 | ||
| 		async scrollToLower() {
 | ||
| 			this.pagination.currentPage = this.pagination.currentPage++;
 | ||
| 			if (this.total >= this.pagination.currentPage) await this.getList();
 | ||
| 		},
 | ||
| 		/** 整改按钮事件 */
 | ||
| 		handleClickRectify(ext) {
 | ||
| 			uni.$u.route(
 | ||
| 				'/hiddenManageSubPackages/pages/hidden_rectification/rectification',
 | ||
| 				{
 | ||
| 					HIDDEN_ID: ext.HIDDEN_ID
 | ||
| 				}
 | ||
| 			)
 | ||
| 		},
 | ||
| 		/** 处理延期申请按钮事件 */
 | ||
| 		handleClickExtensionApplication(ext) {
 | ||
| 			uni.$u.route(
 | ||
| 				'/hiddenManageSubPackages/pages/hidden_rectification/delay',
 | ||
| 				{
 | ||
| 					HIDDEN_ID: ext.HIDDEN_ID
 | ||
| 				}
 | ||
| 			)
 | ||
| 		}
 | ||
| 	}
 | ||
| }
 | ||
| </script>
 | ||
| 
 | ||
| <style lang="scss" scoped></style> |