288 lines
		
	
	
		
			7.3 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
		
		
			
		
	
	
			288 lines
		
	
	
		
			7.3 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
| 
								 | 
							
								<template>
							 | 
						||
| 
								 | 
							
									<!-- 查询框 检查记录 列表 -->
							 | 
						||
| 
								 | 
							
									<view class="risk-record-page">
							 | 
						||
| 
								 | 
							
										<view class="main-page">
							 | 
						||
| 
								 | 
							
											<scroll-view scroll-x="true" scroll-y="true">
							 | 
						||
| 
								 | 
							
												<uni-table border stripe>
							 | 
						||
| 
								 | 
							
													<uni-tr>
							 | 
						||
| 
								 | 
							
														<uni-th width="40px" align="center" style="padding: 0;">序号</uni-th>
							 | 
						||
| 
								 | 
							
														<uni-th width="150px" align="center">内容</uni-th>
							 | 
						||
| 
								 | 
							
														<uni-th width="50px" align="center">操作</uni-th>
							 | 
						||
| 
								 | 
							
													</uni-tr>
							 | 
						||
| 
								 | 
							
													<uni-tr v-for="(item,index) in lists">
							 | 
						||
| 
								 | 
							
														<uni-td width="40px" align="center" style="padding: 0;">{{ index+1 }}</uni-td>
							 | 
						||
| 
								 | 
							
														<uni-td width="150px" class="td-modal">
							 | 
						||
| 
								 | 
							
															<view>
							 | 
						||
| 
								 | 
							
																<text style="font-weight: bold;">生产单元</text> : {{ getMineTypeName(item.MineType)}}
							 | 
						||
| 
								 | 
							
															</view>
							 | 
						||
| 
								 | 
							
															<view>
							 | 
						||
| 
								 | 
							
																<text style="font-weight: bold;">检查层级</text> : {{ getCheckTypeName( item.CHECK_TYPE) }}
							 | 
						||
| 
								 | 
							
															</view>
							 | 
						||
| 
								 | 
							
															<view>
							 | 
						||
| 
								 | 
							
																<text style="font-weight: bold;">检查类型</text> : {{ item.Nav_CheckType.NAME}}
							 | 
						||
| 
								 | 
							
															</view>
							 | 
						||
| 
								 | 
							
															<view>
							 | 
						||
| 
								 | 
							
																<text style="font-weight: bold;">检查周期</text> : {{ getCheckCycle(item.CHECK_CYCLE)}}
							 | 
						||
| 
								 | 
							
															</view>
							 | 
						||
| 
								 | 
							
														</uni-td>
							 | 
						||
| 
								 | 
							
														<uni-td width="50px" align="center">
							 | 
						||
| 
								 | 
							
															<u-button type="primary" size="small" @click="showDetail(item)">选择</u-button>
							 | 
						||
| 
								 | 
							
														</uni-td>
							 | 
						||
| 
								 | 
							
													</uni-tr>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
												</uni-table>
							 | 
						||
| 
								 | 
							
											</scroll-view>
							 | 
						||
| 
								 | 
							
										</view>
							 | 
						||
| 
								 | 
							
										<u-modal :show="showTableOne" title="检查清单" class="modal-three" showCancelButton :showConfirmButton="false" @cancel="cancelButton('one')">
							 | 
						||
| 
								 | 
							
											<view class="risk-record-page">
							 | 
						||
| 
								 | 
							
												<view class="main-page">
							 | 
						||
| 
								 | 
							
													<scroll-view scroll-x="true" scroll-y="true">
							 | 
						||
| 
								 | 
							
														<uni-table border stripe>
							 | 
						||
| 
								 | 
							
															<uni-tr>
							 | 
						||
| 
								 | 
							
																<uni-th width="40px" align="center" style="padding: 0;">序号</uni-th>
							 | 
						||
| 
								 | 
							
																<uni-th align="center">内容</uni-th>
							 | 
						||
| 
								 | 
							
																<uni-th width="40px" align="center">操作</uni-th>
							 | 
						||
| 
								 | 
							
															</uni-tr>
							 | 
						||
| 
								 | 
							
															<uni-tr v-for="(item,index) in twolists">
							 | 
						||
| 
								 | 
							
																<uni-td width="40px" align="center" style="padding: 0;">{{ index+1 }}</uni-td>
							 | 
						||
| 
								 | 
							
																<uni-td class="td-modal">
							 | 
						||
| 
								 | 
							
																	<view><text style="font-weight: bold;">检查部门</text> : {{ item.Nav_Department.NAME}}</view>
							 | 
						||
| 
								 | 
							
																	<view><text style="font-weight: bold;">检查岗位</text> : {{ item.POST_NAME}}</view>
							 | 
						||
| 
								 | 
							
																</uni-td>
							 | 
						||
| 
								 | 
							
																<uni-td width="40px" align="center">
							 | 
						||
| 
								 | 
							
																	<u-button type="primary" size="small" @click="handleShowTable(index)">选择</u-button>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
																</uni-td>
							 | 
						||
| 
								 | 
							
															</uni-tr>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
														</uni-table>
							 | 
						||
| 
								 | 
							
													</scroll-view>
							 | 
						||
| 
								 | 
							
												</view>
							 | 
						||
| 
								 | 
							
											</view>
							 | 
						||
| 
								 | 
							
										</u-modal>
							 | 
						||
| 
								 | 
							
										<u-modal :show="showTable" title="检查清单" class="modal-three" showCancelButton @confirm="confirmButton('two')" @cancel="cancelButton('two')">
							 | 
						||
| 
								 | 
							
											<table-own :tableData="threeList" @transmit="getMessage"></table-own>
							 | 
						||
| 
								 | 
							
										</u-modal>
							 | 
						||
| 
								 | 
							
										<view style="padding: 10px 16px;" class="bottom-button" v-if="showModal==2||showModal==1">
							 | 
						||
| 
								 | 
							
											<u-button type="primary" @click="stepAdd" color="#3d4b70">上一步</u-button>
							 | 
						||
| 
								 | 
							
										</view>
							 | 
						||
| 
								 | 
							
									</view>
							 | 
						||
| 
								 | 
							
								</template>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<script>
							 | 
						||
| 
								 | 
							
									import {
							 | 
						||
| 
								 | 
							
										initFilter,
							 | 
						||
| 
								 | 
							
										extendRule,
							 | 
						||
| 
								 | 
							
										extendInclude,
							 | 
						||
| 
								 | 
							
										extendIgnoreDataRule
							 | 
						||
| 
								 | 
							
									} from '../../../../utils/common'
							 | 
						||
| 
								 | 
							
									import {
							 | 
						||
| 
								 | 
							
										MineTypeIndex,
							 | 
						||
| 
								 | 
							
										MineTypeName,
							 | 
						||
| 
								 | 
							
										CheckTypeName,
							 | 
						||
| 
								 | 
							
										CheckCycle
							 | 
						||
| 
								 | 
							
									} from '../../../../utils/enums.js'
							 | 
						||
| 
								 | 
							
									import {
							 | 
						||
| 
								 | 
							
										GetSafeCheckListInfo,
							 | 
						||
| 
								 | 
							
										SKEnterpriseLibrary,
							 | 
						||
| 
								 | 
							
										GetCheckDetailList
							 | 
						||
| 
								 | 
							
									} from '../../../../services/apply/subPages/SK/SKServices.js'
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									import UniSearchBar from '../../../../uni_modules/uni-search-bar/components/uni-search-bar/uni-search-bar.vue'
							 | 
						||
| 
								 | 
							
									export default {
							 | 
						||
| 
								 | 
							
										components: {
							 | 
						||
| 
								 | 
							
											UniSearchBar
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
										data() {
							 | 
						||
| 
								 | 
							
											return {
							 | 
						||
| 
								 | 
							
												pageIndex: 0,
							 | 
						||
| 
								 | 
							
												total: 0,
							 | 
						||
| 
								 | 
							
												lists: [],
							 | 
						||
| 
								 | 
							
												twolists: [],
							 | 
						||
| 
								 | 
							
												threeList: [],
							 | 
						||
| 
								 | 
							
												nowIndex: 0,
							 | 
						||
| 
								 | 
							
												params: {},
							 | 
						||
| 
								 | 
							
												showModal: 0,
							 | 
						||
| 
								 | 
							
												keyword: '',
							 | 
						||
| 
								 | 
							
												searchStartTime: '',
							 | 
						||
| 
								 | 
							
												filterStatus: null,
							 | 
						||
| 
								 | 
							
												currentPage: 1, // 当前页码
							 | 
						||
| 
								 | 
							
												pageSize: 10, // 每页显示数量
							 | 
						||
| 
								 | 
							
												showTable: false,
							 | 
						||
| 
								 | 
							
												showTableOne: false,
							 | 
						||
| 
								 | 
							
												threeIndex:[]
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
										onLoad() {
							 | 
						||
| 
								 | 
							
											this.loadData()
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
										created() {
							 | 
						||
| 
								 | 
							
											this.loadData()
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										methods: {
							 | 
						||
| 
								 | 
							
											loadData() {
							 | 
						||
| 
								 | 
							
												const orgId = uni.getStorageSync('orgId')
							 | 
						||
| 
								 | 
							
												let json = initFilter(orgId);
							 | 
						||
| 
								 | 
							
												extendIgnoreDataRule(json)
							 | 
						||
| 
								 | 
							
												SKEnterpriseLibrary(json).then(res => {
							 | 
						||
| 
								 | 
							
													// this.total = res.TotalCount
							 | 
						||
| 
								 | 
							
													this.lists = (res || []).map(i => {
							 | 
						||
| 
								 | 
							
														return {
							 | 
						||
| 
								 | 
							
															...i,
							 | 
						||
| 
								 | 
							
															title: MineTypeName[i.MineType],
							 | 
						||
| 
								 | 
							
															Nav_CheckType: i.Nav_CheckType ? i.Nav_CheckType : {
							 | 
						||
| 
								 | 
							
																NAME: ''
							 | 
						||
| 
								 | 
							
															},
							 | 
						||
| 
								 | 
							
														}
							 | 
						||
| 
								 | 
							
													})
							 | 
						||
| 
								 | 
							
												})
							 | 
						||
| 
								 | 
							
											},
							 | 
						||
| 
								 | 
							
											getMessage(e) {
							 | 
						||
| 
								 | 
							
												this.threeIndex = e
							 | 
						||
| 
								 | 
							
											},
							 | 
						||
| 
								 | 
							
											stepAdd() {
							 | 
						||
| 
								 | 
							
												this.showModal--
							 | 
						||
| 
								 | 
							
											},
							 | 
						||
| 
								 | 
							
											handleShowTable(index) {
							 | 
						||
| 
								 | 
							
												// this.showModal++
							 | 
						||
| 
								 | 
							
												this.showTable = true
							 | 
						||
| 
								 | 
							
												this.nowIndex = index
							 | 
						||
| 
								 | 
							
												// this.twolists[this.nowIndex].showTable = !this.twolists[this.nowIndex].showTable
							 | 
						||
| 
								 | 
							
												this.threeList = this.twolists[index].Nav_ContentDatas
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
											},
							 | 
						||
| 
								 | 
							
											getMineTypeName(mineType) {
							 | 
						||
| 
								 | 
							
												return MineTypeName[mineType];
							 | 
						||
| 
								 | 
							
											},
							 | 
						||
| 
								 | 
							
											getCheckTypeName(CHECK_TYPE) {
							 | 
						||
| 
								 | 
							
												return CheckTypeName[CHECK_TYPE]
							 | 
						||
| 
								 | 
							
											},
							 | 
						||
| 
								 | 
							
											getCheckCycle(Check_Cycle) {
							 | 
						||
| 
								 | 
							
												return CheckCycle[Check_Cycle]
							 | 
						||
| 
								 | 
							
											},
							 | 
						||
| 
								 | 
							
											showDetail(item) {
							 | 
						||
| 
								 | 
							
												const orgId = uni.getStorageSync('orgId')
							 | 
						||
| 
								 | 
							
												this.showTableOne = true
							 | 
						||
| 
								 | 
							
												this.currentPage = 1; // 重置页码
							 | 
						||
| 
								 | 
							
												let json = initFilter(orgId, item.MineType, '', '', '', item.CHECK_TYPE_ID, item.CHECK_CYCLE, item.CHECK_TYPE);
							 | 
						||
| 
								 | 
							
												extendIgnoreDataRule(json)
							 | 
						||
| 
								 | 
							
												GetCheckDetailList(json).then(res => {
							 | 
						||
| 
								 | 
							
													this.twolists = res
							 | 
						||
| 
								 | 
							
													this.threeList = this.twolists[this.nowIndex].Nav_ContentDatas
							 | 
						||
| 
								 | 
							
												})
							 | 
						||
| 
								 | 
							
											},
							 | 
						||
| 
								 | 
							
											confirmButton(name) {
							 | 
						||
| 
								 | 
							
												if (name == 'one') {
							 | 
						||
| 
								 | 
							
													this.showTableOne = false
							 | 
						||
| 
								 | 
							
												} else {
							 | 
						||
| 
								 | 
							
													let arr=[]
							 | 
						||
| 
								 | 
							
													for(let i of this.threeIndex){
							 | 
						||
| 
								 | 
							
														arr.push(this.twolists[this.nowIndex].Nav_ContentDatas[i])
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													this.$emit('transmitData', arr)
							 | 
						||
| 
								 | 
							
													this.showTable = false;
							 | 
						||
| 
								 | 
							
													this.showTableOne = false
							 | 
						||
| 
								 | 
							
												}
							 | 
						||
| 
								 | 
							
											},
							 | 
						||
| 
								 | 
							
											cancelButton(name) {
							 | 
						||
| 
								 | 
							
												if (name == 'one') {
							 | 
						||
| 
								 | 
							
													this.showTableOne = false
							 | 
						||
| 
								 | 
							
												} else {
							 | 
						||
| 
								 | 
							
													this.showTable = false;
							 | 
						||
| 
								 | 
							
												}
							 | 
						||
| 
								 | 
							
											},
							 | 
						||
| 
								 | 
							
											// 获取当前页的数据
							 | 
						||
| 
								 | 
							
											getCurrentPageData(data) {
							 | 
						||
| 
								 | 
							
												const start = (this.currentPage - 1) * this.pageSize;
							 | 
						||
| 
								 | 
							
												const end = start + this.pageSize;
							 | 
						||
| 
								 | 
							
												return data.slice(start, end);
							 | 
						||
| 
								 | 
							
											},
							 | 
						||
| 
								 | 
							
											// 获取当前页的起始序号
							 | 
						||
| 
								 | 
							
											getPageStartIndex(data) {
							 | 
						||
| 
								 | 
							
												return (this.currentPage - 1) * this.pageSize;
							 | 
						||
| 
								 | 
							
											},
							 | 
						||
| 
								 | 
							
											// 获取总页数
							 | 
						||
| 
								 | 
							
											getTotalPages(data) {
							 | 
						||
| 
								 | 
							
												return Math.ceil(data.length / this.pageSize);
							 | 
						||
| 
								 | 
							
											},
							 | 
						||
| 
								 | 
							
											// 上一页
							 | 
						||
| 
								 | 
							
											prevPage(data) {
							 | 
						||
| 
								 | 
							
												if (this.currentPage > 1) {
							 | 
						||
| 
								 | 
							
													this.currentPage--;
							 | 
						||
| 
								 | 
							
												}
							 | 
						||
| 
								 | 
							
											},
							 | 
						||
| 
								 | 
							
											// 下一页
							 | 
						||
| 
								 | 
							
											nextPage(data) {
							 | 
						||
| 
								 | 
							
												if (this.currentPage < this.getTotalPages(data)) {
							 | 
						||
| 
								 | 
							
													this.currentPage++;
							 | 
						||
| 
								 | 
							
												}
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								</script>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<style>
							 | 
						||
| 
								 | 
							
									@import url("../../../../style/css/listTemplate.css");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									.pagination {
							 | 
						||
| 
								 | 
							
										display: flex;
							 | 
						||
| 
								 | 
							
										justify-content: flex-end;
							 | 
						||
| 
								 | 
							
										align-items: center;
							 | 
						||
| 
								 | 
							
										margin-top: 10px;
							 | 
						||
| 
								 | 
							
										font-size: 14px;
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									.bottom-button {
							 | 
						||
| 
								 | 
							
										position: fixed;
							 | 
						||
| 
								 | 
							
										bottom: 0;
							 | 
						||
| 
								 | 
							
										left: 0;
							 | 
						||
| 
								 | 
							
										width: 100%;
							 | 
						||
| 
								 | 
							
										padding: 10px 16px;
							 | 
						||
| 
								 | 
							
										box-sizing: border-box;
							 | 
						||
| 
								 | 
							
										background: #fff;
							 | 
						||
| 
								 | 
							
										z-index: 999;
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									.modal-container {
							 | 
						||
| 
								 | 
							
										padding-bottom: 80px;
							 | 
						||
| 
								 | 
							
										overflow-y: scroll;
							 | 
						||
| 
								 | 
							
										overflow-x: scroll;
							 | 
						||
| 
								 | 
							
										max-height: 400px;
							 | 
						||
| 
								 | 
							
										width: 100%;
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									.risk-record-page {
							 | 
						||
| 
								 | 
							
										width: 100%;
							 | 
						||
| 
								 | 
							
										max-height: 400px;
							 | 
						||
| 
								 | 
							
										overflow-y: scroll;
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									.main-page {
							 | 
						||
| 
								 | 
							
										padding: 0px 5px;
							 | 
						||
| 
								 | 
							
										max-height: 400px;
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									.modal-one>>>.uni-table {
							 | 
						||
| 
								 | 
							
										min-width: 0px !important;
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									.modal-one>>>.uni-table-td {
							 | 
						||
| 
								 | 
							
										padding: 8px 5px;
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									.td-modal {
							 | 
						||
| 
								 | 
							
										white-space: normal;
							 | 
						||
| 
								 | 
							
										/* 允许文本换行 */
							 | 
						||
| 
								 | 
							
										word-wrap: break-word;
							 | 
						||
| 
								 | 
							
										/* 当单词太长时进行换行 */
							 | 
						||
| 
								 | 
							
										word-break: break-all
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									.modal-three>>>.u-modal__content {
							 | 
						||
| 
								 | 
							
										/* overflow: scroll; */
							 | 
						||
| 
								 | 
							
										padding: 12px 10px 25px 10px;
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								</style>
							 |