153 lines
4.4 KiB
Vue
153 lines
4.4 KiB
Vue
<template>
|
||
<view>
|
||
<!-- 吸顶搜索框 start -->
|
||
<key-word-search-input :inputSearchValue="searchForm.HIDDENDESCR" @search="resetList" is-has-filter
|
||
@showPicker="showPicker" />
|
||
<!-- 吸顶搜索框 end -->
|
||
|
||
<!-- 筛选器 start -->
|
||
<u-picker :show="show" :columns="columns" keyName="name" @cancel="show = false" @confirm="confirmPicker" />
|
||
<!-- 筛选器 end -->
|
||
|
||
<!-- 列表渲染 start -->
|
||
<list :list="list" @scrollToLower="scrollToLower">
|
||
<template #default="{ item }">
|
||
<view class="flex-between main-title">
|
||
<text style="font-size: 30upx; color: #000;">{{ item.INSPECTION_SUBJECT }}现场安全检查记录</text>
|
||
</view>
|
||
<view class="flex-between main-title">
|
||
<text>
|
||
检查状态:{{ translate(item.INSPECTION_STATUS) }}
|
||
</text>
|
||
<text>检查类型:{{ item.INSPECTION_TYPE_NAME }}</text>
|
||
</view>
|
||
<view class="flex-between main-title">
|
||
<text>检查人:{{ item.INSPECTION_USER_NAME }}</text>
|
||
<text>检查发起人:{{ item.INSPECTION_ORIGINATOR_NAME }}</text>
|
||
</view>
|
||
<view class="flex-between main-title">
|
||
<text>被检查人:{{ item.INSPECTED_SITEUSER_NAME }}</text>
|
||
</view>
|
||
<view class="flex-between main-title">
|
||
<text>检查时间:{{ item.INSPECTION_TIME_START }} 至 {{ item.INSPECTION_TIME_END }}</text>
|
||
</view>
|
||
<view class="flex-end">
|
||
<!-- v-if="item.INSPECTION_STATUS === '2'" -->
|
||
<view>
|
||
<u-button v-if="item.INSPECTION_STATUS === '2'" type="primary" text="确认" size="mini" shape="circle" @click="goToDetail(item.INSPECTION_ID)" />
|
||
</view>
|
||
</view>
|
||
</template>
|
||
</list>
|
||
</view>
|
||
</template>
|
||
|
||
<script>
|
||
import { getInspectedList } from "../../api";
|
||
import keyWordSearchInput from "@/components/keyWordSearchInput/index.vue";
|
||
import List from "@/components/list/list.vue";
|
||
// import { inspectedList } from "../../../Mock/safetyEnvirData";
|
||
|
||
export default {
|
||
components: { keyWordSearchInput, List },
|
||
|
||
data() {
|
||
return {
|
||
show: false,
|
||
columns: [
|
||
{ id: "", name: "请选择" },
|
||
{ id: "0", name: "待检查人核实" },
|
||
{ id: "1", name: "检查人核实中" },
|
||
{ id: "2", name: "待被检查人确认" },
|
||
{ id: "3", name: "待指派" },
|
||
{ id: "4", name: "指派中" },
|
||
{ id: "5", name: "指派完成" },
|
||
{ id: "6", name: "待验收" },
|
||
{ id: "7", name: "已验收" },
|
||
{ id: "8", name: "已归档" },
|
||
{ id: "-1", name: "检查人核实打回" },
|
||
{ id: "-2", name: "被检查人申辩" },
|
||
],
|
||
searchForm: {
|
||
HIDDENDESCR: "",
|
||
},
|
||
pageSize: 10,
|
||
currentPage: 1,
|
||
totalPage: 0,
|
||
list: [],
|
||
}
|
||
},
|
||
|
||
onShow() {
|
||
this.resetList();
|
||
},
|
||
|
||
methods: {
|
||
async getData() {
|
||
// uni.showLoading({
|
||
// title: "加载中",
|
||
// });
|
||
// TODO: 目前因后端资源接口未完成,故注释接口数据接入逻辑
|
||
let resData = await getInspectedList({
|
||
showCount: this.pageSize,
|
||
currentPage: this.currentPage,
|
||
});
|
||
this.list = [...this.list, ...resData.varList];
|
||
this.totalPage = resData.page.totalPage;
|
||
|
||
// 虚拟 mock 数据渲染
|
||
// setTimeout(() => {
|
||
// this.list = inspectedList;
|
||
// this.totalPage = inspectedList.length;
|
||
// uni.hideLoading();
|
||
// }, 400);
|
||
},
|
||
resetList() {
|
||
this.pageSize = 10;
|
||
this.currentPage = 1;
|
||
this.list = [];
|
||
this.getData();
|
||
},
|
||
showPicker() {
|
||
this.show = true;
|
||
},
|
||
confirmPicker(e) {
|
||
this.INSPECTION_STATUS = e.value[0].id;
|
||
this.show = false;
|
||
this.resetList();
|
||
},
|
||
/**
|
||
* 申辩处理按钮事件
|
||
*/
|
||
goToDetail(INSPECTION_ID) {
|
||
uni.$u.route({
|
||
url: "/safetyEnvirSubPackages/pages/inspected/detail",
|
||
params: {
|
||
INSPECTION_ID,
|
||
},
|
||
});
|
||
},
|
||
translate(id) {
|
||
console.info(id)
|
||
console.info(this.columns)
|
||
for (var i = 0; i < this.columns.length; i++) {
|
||
if (this.columns[i].id == id) return this.columns[i].name
|
||
}
|
||
},
|
||
/**
|
||
* 滚动加载数据
|
||
*/
|
||
scrollToLower() {
|
||
this.currentPage++;
|
||
if (this.totalPage >= this.currentPage) this.getData();
|
||
},
|
||
}
|
||
}
|
||
</script>
|
||
|
||
<style scoped lang="scss">
|
||
.main-title {
|
||
font-size: 26upx;
|
||
color: #888;
|
||
}
|
||
</style> |