jy-safe-app/pages/apply/subPages/SK/checkListPage.vue

288 lines
7.3 KiB
Vue
Raw Normal View History

2025-10-14 15:17:30 +08:00
<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>