291 lines
9.1 KiB
Vue
291 lines
9.1 KiB
Vue
<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>
|