jy-safe-app/pages/apply/subPages/BS/delayApplyIndex.vue
2025-10-14 15:17:30 +08:00

227 lines
5.8 KiB
Vue
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<!-- 查询框 检查记录 列表 -->
<view class="risk-record-page">
<u-sticky>
<view class="filter-bar">
<view class="filter filter-date-range" @click="handleShowPicker({title: '时间区间', name: 'dateRange'})">
<text>{{dateFilterTxt}}</text>
<u-icon size="14" style="margin-left: 4px;" name="arrow-down"></u-icon>
</view>
<uni-search-bar class="search-bar" radius="100" v-model="keyword" @confirm="handleSearch"
@cancel="handleCancelSearch" @clear="handleCancelSearch" placeholder="搜索" cancel-button="none">
<uni-icons slot="searchIcon" color="#999999" size="16" type="search" class="search-slot" />
</uni-search-bar>
<view class="filter filter-status" @click="handleShowPicker({title: '状态', name: 'status'})">
<text>{{statusFilterTxt}}</text>
<u-icon size="14" style="margin-left: 4px;" name="arrow-down"></u-icon>
</view>
</view>
</u-sticky>
<view class="main">
<view class="content-list">
<common-card :dataSource="item" v-for="item in lists" @click="showDetail(item.ID)">
<view class="content">
<view class="field">
<text class="label">申请人:</text>
<text class="value">{{item.Nav_User.NAME}}</text>
</view>
<view class="field">
<text class="label">申请部门:</text>
<text class="value">{{item.Nav_DepartmentApply.NAME}}</text>
</view>
<view class="field">
<text class="label">申请时间:</text>
<text class="value">{{item.CREATE_TIME}}</text>
</view>
</view>
</common-card>
</view>
</view>
<u-picker :show="comPickerInfo.showPicker" :columns="comPickerInfo.columns" @confirm="onConfirmPicker"
@cancel="closePicker"></u-picker>
</view>
</template>
<script>
import {
initFilter,
extendRule,
extendInclude
} from '../../../../utils/common'
import {
OrderPaged
} from '../../../../services/apply/subPages/BS/delayApply'
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: [],
keyword: '',
searchStartTime: '',
filterStatus: null,
dateFilterTxt: '时间区间',
statusFilterTxt: '问题等级',
comPickerInfo: {
showPicker: false,
columns: [],
title: '',
name: ''
}
}
},
onLoad() {
this.loadData()
},
methods: {
handleSearch() {
this.pageIndex = 0
this.loadData(false)
},
loadData(paginate) {
this.pageIndex++
const orgId = uni.getStorageSync('orgId')
let json = initFilter(orgId, "", "CREATE_TIME", 1, this.pageIndex);
if (this.keyword) {
extendRule(json, 'NAME', 9, this.keyword);
}
extendInclude(json, 'Nav_User')
extendInclude(json, 'Nav_DepartmentApply')
if (this.searchStartTime && this.searchStartTime.length > 0) {
extendRule(json, 'CREATE_TIME', 6, this.searchStartTime)
}
if (this.filterStatus !== null) {
extendRule(json, 'QUESTION_LEVEL', 1, this.filterStatus)
}
OrderPaged(json).then(res => {
this.total = res.TotalCount
const newRes = (res.Data || []).map(i => {
return {
...i,
title: i.NAME,
}
})
if (paginate) {
this.lists = this.lists.concat(newRes)
} else {
this.lists = newRes
}
})
},
showDetail(id) {
uni.navigateTo({
url: 'delayApplyView?ID=' + id
})
},
handleShowPicker(p) {
let column = []
if (p.name === 'dateRange') {
column = ['全部', '当天', '最近三天', '最近一周', '最近一月']
}
if (p.name === 'status') {
column = ['全部', '重大', 'A', 'B', 'C', 'D']
}
this.comPickerInfo = {
showPicker: true,
title: p.title,
name: p.name,
columns: [column]
}
},
onConfirmPicker(e) {
if (this.comPickerInfo.name === 'dateRange') {
let currentDate = new Date();
if (e.indexs[0] === 2) {
currentDate.setDate(currentDate.getDate() - 3);
} else if (e.indexs[0] === 3) {
currentDate.setDate(currentDate.getDate() - 7);
} else if (e.indexs[0] === 4) {
currentDate.setMonth(currentDate.getMonth() - 1);
}
if (e.indexs[0] === 0) {
this.searchStartTime = ''
this.dateFilterTxt = '时间区间'
} else {
this.dateFilterTxt = e.value[0]
this.searchStartTime = uni.$u.timeFormat(currentDate, 'yyyy-mm-dd 00:00:00');
}
}
if (this.comPickerInfo.name === 'status') {
// 草稿 = 0, 确认中5 签到中 = 6, 审批中 = 10, 归档 = 20, 审批驳回 = 30,
if (e.indexs[0] === 1) {
this.filterStatus = 10
} else if (e.indexs[0] === 2) {
this.filterStatus = 20
} else if (e.indexs[0] === 3) {
this.filterStatus = 30
} else if (e.indexs[0] === 4) {
this.filterStatus = 40
} else if (e.indexs[0] === 5) {
this.filterStatus = 50
}
if (e.indexs[0] === 0) {
// 全部
this.filterStatus = null
this.statusFilterTxt = '问题等级'
} else {
this.statusFilterTxt = e.value[0]
}
}
this.closePicker()
},
closePicker() {
this.comPickerInfo = {
showPicker: false,
columns: [],
title: '',
name: ''
}
},
},
computed: {
},
onReachBottom() {
if (this.total > 10 * this.pageIndex)
this.loadData(true)
},
watch: {
keyword(n, o) {
this.pageIndex = 0
this.keyword = n
this.loadData()
},
searchStartTime(n, o) {
this.pageIndex = 0
this.searchStartTime = n
this.loadData()
},
filterStatus(n, o) {
this.pageIndex = 0
this.filterStatus = n
this.loadData()
}
}
}
</script>
<style>
@import url("../../../../style/css/listTemplate.css");
</style>