qa-regulatory-gwj-app/pages/branch-self-report/index/inspection-records.vue

291 lines
9.1 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<template>
<view class="content">
<view class="search card">
<u--input
prefixIcon="search"
placeholder="请输入关键字"
border="surround"
v-model="KEYWORDS"
clearable
shape="circle"
></u--input>
<view class="bth-mini ml-10">
<u-button type="success" text="确定" @click="resetList"></u-button>
</view>
</view>
<u-popup :show="popupShow" @close="popupShow = false" mode="right" :customStyle="{width:'85vw'}">
<view class="card">
<view class="pl-10 pr-10">
<u--form labelPosition="left">
<u-form-item label="清单名称" borderBottom>
<u--input
inputAlign="right"
placeholder="请输入清单名称"
border="none"
v-model="KEYWORDS"
clearable
></u--input>
</u-form-item>
<u-form-item label="检查部门" borderBottom>
<u--text :text="DEPTNAME || '请选择'" @click="showTree"></u--text>
<tki-tree ref="tkitree" :range="deptRange" rangeKey="name" selectParent @confirm="confirmTree"/>
</u-form-item>
<u-form-item label="检查人" borderBottom>
<u--text :text="USER_NAME || '请选择'" @click="userShow = true"></u--text>
<u-picker :show="userShow" :columns="userList" keyName="USERNAME"
@cancel="userShow = false"
@confirm="pickerConfirm($event,'user')"></u-picker>
</u-form-item>
<u-form-item label="清单类型" borderBottom>
<u--text :text="TYPE_NAME || '请选择'" @click="typeShow = true"></u--text>
<u-picker :show="typeShow" :columns="typeList" keyName="NAME"
@cancel="typeShow = false"
@confirm="pickerConfirm($event,'type')"></u-picker>
</u-form-item>
<u-form-item label="排查周期" borderBottom>
<u--text :text="PERIOD_NAME || '请选择'" @click="periodShow = true"></u--text>
<u-picker :show="periodShow" :columns="periodList" keyName="NAME"
@cancel="periodShow = false"
@confirm="pickerConfirm($event,'period')"></u-picker>
</u-form-item>
<u-form-item label="开始时间" borderBottom>
<u--text :text="startDate || '请选择'"
@click="startDateShow = true"></u--text>
<u-datetime-picker :show="startDateShow"
mode="date"
:value="Number(new Date())"
@cancel="startDateShow = false"
@confirm="startDateConfirm"></u-datetime-picker>
</u-form-item>
<u-form-item label="结束时间" borderBottom>
<u--text :text="endDate || '请选择'"
@click="endDateShow = true"></u--text>
<u-datetime-picker :show="endDateShow"
mode="date"
:value="Number(new Date())"
@cancel="endDateShow = false"
@confirm="endDateConfirm"></u-datetime-picker>
</u-form-item>
</u--form>
</view>
<view class="mt-10 flex-between">
<view class="flex1">
<u-button type="info" text="重置" @click="reset"></u-button>
</view>
<view class="ml-10 flex1">
<u-button type="primary" text="查询" @click="resetList"></u-button>
</view>
</view>
</view>
</u-popup>
<u-list @scrolltolower="scrolltolower" v-if="list.length > 0">
<u-list-item v-for="(item, index) in list" :key="index">
<view>
<view class="flex-between main-title">
<text>清单名称{{ item.NAME }}</text>
</view>
<view class="flex-between mt-10 subtitle">
<text>清单类型{{ item.TYPENAME }}</text>
<text>排查周期{{ item.PERIODNAME }}</text>
</view>
<view class="flex-between mt-10 subtitle">
<text>部门{{ item.DEPARTMENT_NAME }}</text>
</view>
<view class="flex-between mt-10 subtitle">
<text>岗位{{ item.POST_NAME }}</text>
<text>人员{{ item.USER_NAME }}</text>
</view>
<view class="flex-between mt-10 subtitle">
<text>检查次数{{ item.count }}</text>
<text>超期未检查次数{{ item.OVERTIMENUM }}</text>
</view>
<view class="flex-end mt-10 see_btn">
<u-button type="primary" text="查看" size="mini"
@click="fnNavigatorDetail(item.LISTMANAGER_ID)"></u-button>
</view>
</view>
</u-list-item>
</u-list>
<empty v-else></empty>
<fab-button type="search" @click="popupShow = true"/>
</view>
</template>
<script>
import {
getInspectionReportListManageList,
getDept,
getDeptUser,
getCorpDept,
getCheckCycle,
getListType,
getInspectedDepartment
} from "../../../api";
import FabButton from "@/components/fab_button/index.vue";
export default {
components: {FabButton},
data() {
return {
CORPINFO_ID: '',
KEYWORDS: '',
pageSize: 10,
currentPage: 1,
totalPage: 0,
list: [],
popupShow: false,
DEPT: '',
DEPTNAME: '',
deptRange: [],
userList: [],
userShow: false,
USER_NAME: '',
USER_ID: '',
typeList: [],
typeShow: false,
TYPE_NAME: '',
TYPE_ID: '',
periodList: [],
periodShow: false,
PERIOD_NAME: '',
PERIOD_ID: '',
startDateShow: false,
startDate: '',
endDateShow: false,
endDate: '',
}
},
onLoad(event) {
this.CORPINFO_ID = event.CORPINFO_ID;
this.resetList()
this.getDept()
this.fnGetCheckCycle()
this.fnGetListType()
},
methods: {
async getDept() {
let resData = await getInspectedDepartment({'CORPINFO_ID': this.CORPINFO_ID});
this.deptRange = JSON.parse(resData.zTreeNodes)
},
async fnGetDeptUser(detpId) {
let resData = await getDeptUser({'DEPARTMENT_ID': detpId});
this.$set(this.userList, 0, resData.userList)
},
async fnGetCheckCycle() {
let resData = await getCheckCycle();
this.$set(this.periodList, 0, resData.list)
},
async fnGetListType() {
let resData = await getListType();
this.$set(this.typeList, 0, resData.list)
},
async getData() {
this.popupShow = false
let resData = await getInspectionReportListManageList({
CORPINFO_ID: this.CORPINFO_ID,
KEYWORDS: this.KEYWORDS,
DEPARTMENT_ID: this.DEPT,
USER_ID: this.USER_ID,
TYPE: this.TYPE_ID,
PERIOD: this.PERIOD_ID,
STARTTIME: this.startDate,
ENDTIME: this.endDate,
showCount: this.pageSize,
currentPage: this.currentPage,
});
this.list = [...this.list, ...resData.varList];
this.totalPage = resData.page.totalPage;
},
resetList() {
this.pageSize = 10
this.currentPage = 1
this.list = []
this.getData()
},
fnNavigatorDetail(LISTMANAGER_ID) {
uni.$u.route({
url: '/pages/branch-self-report/index/inspection-records-detail-list',
params: {
LISTMANAGER_ID,
CORPINFO_ID: this.CORPINFO_ID,
}
})
},
scrolltolower() {
this.currentPage++;
if (this.totalPage >= this.currentPage) this.getData();
},
showTree() {
this.$refs.tkitree._show()
},
confirmTree(e) {
this.DEPT = e[0].id
this.DEPTNAME = e[0].name
this.fnGetDeptUser(e[0].id)
},
pickerConfirm(e, type) {
if (type === 'user') {
this.USER_ID = e.value[0].USER_ID
this.USER_NAME = e.value[0].USERNAME
this.userShow = false;
}
if (type === 'type') {
this.TYPE_ID = e.value[0].BIANMA
this.TYPE_NAME = e.value[0].NAME
this.typeShow = false;
}
if (type === 'period') {
this.PERIOD_ID = e.value[0].BIANMA
this.PERIOD_NAME = e.value[0].NAME
this.periodShow = false;
}
},
startDateConfirm(e) {
this.startDate = uni.$u.timeFormat(e.value, 'yyyy-mm-dd')
this.startDateShow = false
},
endDateConfirm(e) {
this.endDate = uni.$u.timeFormat(e.value, 'yyyy-mm-dd')
this.endDateShow = false
},
reset() {
this.popupShow = false
this.KEYWORDS = ''
this.DEPT = ''
this.DEPTNAME = ''
this.USER_ID = ''
this.USER_NAME = ''
this.TYPE_ID = ''
this.TYPE_NAME = ''
this.PERIOD_ID = ''
this.PERIOD_NAME = ''
this.startDate = ''
this.endDate = ''
this.resetList()
}
}
}
</script>
<style scoped lang="scss">
.search {
display: flex;
.ml-10 {
margin-left: 10rpx;
}
.bth-mini {
width: 100rpx;
}
}
.see_btn {
width: 100rpx;
float: right;
}
</style>