<!-- 特殊处置审核组件 --> <template> <view> <!-- 吸顶搜索框 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> 隐患状态: <text v-if="item.exaSTATE === '1'">审核不通过</text> <text v-else-if="item.exaSTATE === '2'">审核通过</text> <text v-else>待特殊处置审核</text> </view> <view class="flex-between"> <view v-if="item.exaSTATE === -1"> <u-button type="primary" size="mini" shape="circle" @click="handleClickDisposalReview(item)" > 处置审核 </u-button> </view> <view class="ml-10"> <u-button type="primary" size="mini" shape="circle" @click="handleClickView(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 specialDisposalReviewApi from "../../api/index"; import dayjs from "dayjs"; import { HIDDEN_LEVEL_COlOR, HIDDEN_SOURCE } from "@/utils/constant"; import { special_disposal_review_lsit } from "@/Mock/responseData.js"; export default { components: { keyWordSearchInput, List }, 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); }, /** 获取列表数据 */ getList() { if (this.isRequestEnd) return null; uni.showLoading({ title: "加载中", }); let { USER_ID, CORPINFO_ID, DEPARTMENT_ID } = this.store.state.userInfo; // specialDisposalReviewApi.getHiddenSpecialDisposalReviewList({ // 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, // }); // 虚拟 mock 数据渲染 setTimeout(() => { this.list = special_disposal_review_lsit; this.pagination.total = special_disposal_review_lsit.length; 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(); }, /** 处置审核按钮事件 */ handleClickDisposalReview(ext) { uni.$u.route( "/hiddenManageSubPackages/pages/special_disposal_review/disposal_review", { HIDDEN_ID: ext.HIDDEN_ID, HIDDENEXAMINE_ID: ext.HIDDENEXAMINE_ID, } ); }, /** 查看按钮事件 */ handleClickView(ext) { uni.$u.route( "/hiddenManageSubPackages/pages/special_disposal_review/view", { HIDDEN_ID: ext.HIDDEN_ID, HIDDENEXAMINE_ID: ext.HIDDENEXAMINE_ID, } ); }, }, }; </script> <style lang="scss" scoped> .u-line-1 { width: 500rpx; } </style>