integrated_traffic_uniapp/pages/application/electricity/electricity-apply/electricity-apply-list.vue

699 lines
19 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>
<cu-custom bgColor="bg-gradual-blueness" :isBack="true" :isRingt="true">
<block slot="backText">返回</block>
<block slot="content">临时用电作业申请</block>
<block slot="right">
<view @click="$noMultipleClicks(goToAdd)"></view>
</block>
</cu-custom>
<view class="select-fixed top-fixed">
<view class="cu-bar search bg-white">
<picker @change="statusChange" :value="sindex" :range="statusList" range-key="name">
<view class="saixuan">
<text>筛选</text>
<text class="cuIcon-triangledownfill"></text>
</view>
</picker>
<view class="search-form radius" style="margin-left: 0;">
<text class="cuIcon-search"></text>
<input @input="InputBlur" placeholder="请输入关键字"
confirm-type="search"></input>
</view>
<view class="action">
<button class="cu-btn bg-green shadow-blur radius" @click="getQuery"></button>
</view>
</view>
<view class="line"></view>
</view>
<scroll-view class="dy-scroll" @scrolltolower="scrolltolower" scroll-y :style="'top:'+sTop+'px;height:calc(100vh - '+totalHeight+'px)'">
<view v-if="list.length>0" >
<view class="dy-list">
<view v-for="(item,index) of list" :key="index" :data-id="item.ELECTRICITY_ID" class="dy-list-item p20">
<view class="dy-title-flex align-center" @click="$noMultipleClicks(goToDetail,item.ELECTRICITY_ID)">
<text>编号:{{item.CHECK_NO}}</text>
</view>
<view class="dy-subtitle-flex" @click="$noMultipleClicks(goToDetail,item.ELECTRICITY_ID)">
<text>申请人:{{item.APPLY_USER_NAME}}</text>
<text>分析人:{{item.ANALYZE_USER_NAME}}</text>
</view>
<view class="dy-subtitle-flex" @click="$noMultipleClicks(goToDetail,item.ELECTRICITY_ID)">
<text>作业负责人:{{item.CONFIRM_USER_NAME}}</text>
<text>用电单位负责人:{{item.AUDIT_USER_NAME}}</text>
</view>
<view class="dy-subtitle-flex" @click="$noMultipleClicks(goToDetail,item.ELECTRICITY_ID)">
<text>配送电单位负责人:{{item.APPROVE_USER_NAME}}</text>
</view>
<view class="dy-subtitle-flex" @click="$noMultipleClicks(goToDetail,item.ELECTRICITY_ID)">
<text>监护人:{{item.GUARDIAN_USER_NAME}}</text>
<text>安全交底人:{{item.CONFESS_USER_NAME}}</text>
</view>
<view class="dy-subtitle-flex" @click="$noMultipleClicks(goToDetail,item.ELECTRICITY_ID)">
<text>接受交底人:{{item.ACCEPT_CONFESS_USER_NAME}}</text>
<text>验收部门负责人:{{item.ACCEPT_USER_NAME}}</text>
</view>
<view class="dy-subtitle-flex" style="height: 34upx;" @click="$noMultipleClicks(goToDetail,item.ELECTRICITY_ID)">
<text>
审核状态:
<template v-if="item.APPLY_STATUS==0">临时用电作业待提交</template>
<template v-else-if="item.APPLY_STATUS==1">作业负责人待审核</template>
<template v-else-if="item.APPLY_STATUS==2">用电单位待审核</template>
<template v-else-if="item.APPLY_STATUS==3">配送电单位待审核</template>
<template v-else-if="item.APPLY_STATUS==4">待验收</template>
<template v-else-if="item.APPLY_STATUS==5">验收归档</template>
<template v-else-if="item.APPLY_STATUS==-2">作业负责人审核打回</template>
<template v-else-if="item.APPLY_STATUS==-3">用电单位审核打回</template>
<template v-else-if="item.APPLY_STATUS==-4">配送电单位审核打回</template>
<template v-else-if="item.APPLY_STATUS==-5">验收打回</template>
<template v-else-if="item.APPLY_STATUS==-99">已作废(未进行气体检测分析)</template>
</text>
<text v-if="item.APPLY_STATUS<1"><button class="cu-btn bg-red margin-tb-sm sm" @click="$noMultipleClicks(handleDelete,item.ELECTRICITY_ID)">删除</button></text>
</view>
<view class="dy-subtitle-flex">
<text><button class="cu-btn bg-green" style="padding: 0 5px; height:24px;"
@click="showDrawer('showRight',item)">查看流程图</button></text>
</view>
</view>
</view>
</view>
<view v-else-if="dataFlag=='noData'" class="dy-null">
<view class="dy-null-img">
<image :src="background[dataFlag].url" mode=""></image>
</view>
<view class="dy-null-title">
{{background[dataFlag].msg}}
</view>
</view>
<view class="cu-tabbar-height"></view>
</scroll-view>
<!-- 右侧抽屉 -->
<uni-drawer ref="showRight" mode="right" :mask-click="true" @change="change($event,'showRight')">
<view>
<view class="step-top ">
查看流程图
</view>
<view class="step-item-container">
<view class="step-item">
<view class="step-item-wrap" v-for="(item,key) of lclist" :key="key"
:class="getShowStatus(item)">
<view class="step-item-wrap-doter">
<view class="step-item-wrap-dot"></view>
</view>
<view class="step-item-wrap-right">
<view class="step-item-wrap-right-title">{{item.name}}</view>
<view class="step-item-wrap-right-title" v-if="item.msg !== '已作废'">{{item.USER_NAME}}{{item.STATE}}</view>
<view class="step-item-wrap-right-title" v-if="item.msg !== '已作废'">{{item.TIME}}</view>
<view class="step-item-wrap-right-info">
{{item.msg}}
</view>
<view class="step-item-wrap-right-info" v-if="APPLY_STATUS < 0">
{{item.REPULSE}}
</view>
</view>
</view>
</view>
</view>
<view v-if="GUARDIAN_USER_SIGNER_TIME">
<view style="padding: 0 60upx;color: #5db174">
监&nbsp;&nbsp;&nbsp;护&nbsp;&nbsp;&nbsp;&nbsp;人:{{GUARDIAN_USER_NAME}}已签字
</view>
</view>
<view v-if="!GUARDIAN_USER_SIGNER_TIME">
<view style="padding: 0 60upx;color: red">
监&nbsp;&nbsp;&nbsp;护&nbsp;&nbsp;&nbsp;&nbsp;人:{{GUARDIAN_USER_NAME}}未签字
</view>
</view>
<view v-if="CONFESS_USER_SIGNER_TIME">
<view style="padding: 0 60upx;color: #5db174">
安全交底人:{{CONFESS_USER_NAME}}已签字
</view>
</view>
<view v-if="!CONFESS_USER_SIGNER_TIME">
<view style="padding: 0 60upx;color: red">
安全交底人:{{CONFESS_USER_NAME}}未签字
</view>
</view>
<view v-if="ACCEPT_CONFESS_USER_SIGNER_TIME">
<view style="padding: 0 60upx;color: #5db174">
接受交底人:{{ACCEPT_CONFESS_USER_NAME}}已签字
</view>
</view>
<view v-if="!ACCEPT_CONFESS_USER_SIGNER_TIME">
<view style="padding: 0 60upx;color: red">
{{ACCEPT_CONFESS_USER_NAME}}
</view>
</view>
</view>
</uni-drawer>
</view>
</template>
<script>
import {
basePath,corpinfoId,loginSession,formatDate,loginUser
} from '@/common/tool.js';
import tkiTree from "@/components/select-tree/select-tree.vue"
export default {
components: {
tkiTree
},
data() {
return {
showRight: false,
dataFlag:'noData',
sTop:0,
totalHeight:0,
list:[],//返回数据
page:1,//分页参数--页数
rows:10,//分页参数--每页数据条数
totalCount:0,//分页参数--初始化页数
isEnd:false,//防止多次刷新
totalPage:0,//分页参数--分页数量
NameLikes : '',
noClick:true,
APPLY_STATUS: '',
statusList:[
{id:'',name:'请选择'},
{id:'0',name:'待提交'},
{id:'1',name:'待确认'},
{id:'2',name:'待审核'},
{id:'3',name:'待审批'},
{id:'4',name:'待验收'},
{id:'5',name:'验收归档'},
{id:'-2',name:'确认打回'},
{id:'-3',name:'审核打回'},
{id:'-4',name:'审批打回'},
{id:'-5',name:'验收打回'},
{id:'-99',name:'已作废(未进行气体检测分析)'}
],
sindex:-1,
STATUS:'',
lclist: [{
id: '0',
name: '临时用电作业待提交'
},
{
id: '1',
name: '作业负责人待审核'
},
{
id: '2',
name: '用电单位待审核'
},
{
id: '3',
name: '配送电单位待审核'
},
{
id: '4',
name: '待验收'
},
{
id: '5',
name: '验收归档'
},
],
GUARDIAN_USER_SIGNER_TIME:'',
GUARDIAN_USER_NAME:'',
CONFESS_USER_SIGNER_TIME: '',
CONFESS_USER_NAME: '',
ACCEPT_CONFESS_USER_SIGNER_TIME: '',
ACCEPT_CONFESS_USER_NAME: ''
}
},
onReady() {
let that=this;
let CustomBar = this.CustomBar;
uni.getSystemInfo({ //调用uni-app接口获取屏幕高度
success(res) { //成功回调函数
let titleH=uni.createSelectorQuery().select(".top-fixed"); //想要获取高度的元素名class/id
titleH.boundingClientRect(data=>{
that._data.sTop=data.height //计算高度:元素高度=窗口高度-元素距离顶部的距离data.top
that.totalHeight = data.height+CustomBar
}).exec()
}
})
},
onLoad() {//页面第一次加载时触发,从跳转页面返回时不能触发,可以传递参
},
onShow() {
//页面显示或从后台跳回小程序时显示此页面时触发,从跳转页面返回时触发,不能传递参数
var _this = this;
_this.background = require('@/common/background.json');
_this.showCount = -1;
_this.currentPage = 1;
_this.list = [];
_this.isEnd = false;
_this.getData();
// _this.getDept();
loginSession();
},
filters: {
formatDate(time) {
let date = new Date(time)
return formatDate(date, 'yyyy-MM-dd')
}
},
methods: {
//跳转事件
goToDetail(e) {
uni.navigateTo({
url: '/pages/application/electricity/electricity-apply/electricity-apply-detail?ELECTRICITY_ID='+e
});
},
goToAdd(){
uni.navigateTo({
url: '/pages/application/electricity/electricity-apply/electricity-apply-detail'
});
},
getQuery(){ //搜索按钮事件
var _this = this;
_this.showCount = -1;
_this.currentPage = 1;
_this.list = [];
_this.isEnd = false;
_this.getData();
},
InputBlur(e){
this.NameLikes = e.detail.value
},
// 显示树形选择器
showDeptTree() {
// this.isUps=true
this.$refs.tkiTree._show();
},
// 打开窗口
showDrawer(e, STATUS) {
this.lclist = [{
id: '0',
name: '临时用电作业提交',
USER_NAME: STATUS.APPLY_USER_NAME,
TIME: STATUS.CREATTIME,
REPULSE: STATUS.OPERATTIME
},
{
id: '1',
name: '作业负责人意见',
USER_NAME: STATUS.CONFIRM_USER_NAME,
TIME: STATUS.CONFIRM_USER_SIGNER_TIME
},
{
id: '2',
name: '用电单位意见',
USER_NAME: STATUS.AUDIT_USER_NAME,
TIME: STATUS.AUDIT_USER_SIGNER_TIME
},
{
id: '3',
name: '配送电单位意见',
USER_NAME: STATUS.APPROVE_USER_NAME,
TIME: STATUS.APPROVE_USER_SIGNER_TIME
},
{
id: '4',
name: '完成验收',
USER_NAME: STATUS.ACCEPT_USER_NAME,
TIME: STATUS.ACCEPT_USER_SIGNER_TIME
},
{
id: '5',
name: '验收归档',
USER_NAME: STATUS.ACCEPT_USER_NAME,
TIME: STATUS.ACCEPT_USER_SIGNER_TIME
},
]
this.$refs[e].open()
this.showStatus = STATUS.APPLY_STATUS
this.APPLY_STATUS = STATUS.APPLY_STATUS
this.GUARDIAN_USER_SIGNER_TIME = STATUS.GUARDIAN_USER_SIGNER_TIME
this.GUARDIAN_USER_NAME = STATUS.GUARDIAN_USER_NAME
this.CONFESS_USER_SIGNER_TIME = STATUS.CONFESS_USER_SIGNER_TIME
this.CONFESS_USER_NAME = STATUS.CONFESS_USER_NAME
this.ACCEPT_CONFESS_USER_SIGNER_TIME = STATUS.ACCEPT_CONFESS_USER_SIGNER_TIME
this.ACCEPT_CONFESS_USER_NAME = STATUS.ACCEPT_CONFESS_USER_NAME
},
getShowStatus(step) {
if (this.showStatus == -2 && step.id == 0) {
step.msg = '作业负责人审核打回'
step.STATE = '待提交'
step.REPULSE = step.REPULSE
}
if (this.showStatus == -3 && step.id == 0) {
step.msg = '用电单位审核打回'
step.STATE = '待提交'
step.REPULSE = step.REPULSE
}
if (this.showStatus == -4 && step.id == 0) {
step.msg = '配送电单位审核打回'
step.STATE = '待提交'
step.REPULSE = step.REPULSE
}
if (this.showStatus == -5 && step.id == 0) {
step.msg = '验收打回'
step.STATE = '待提交'
step.REPULSE = step.REPULSE
}
if (this.showStatus == -99 && step.id == 0) {
step.msg = '已作废(未进行气体检测分析)'
}
if (step.id == 0){
step.STATE = '待提交'
}
if (this.showStatus == 5) {
if(step.name == '临时用电作业提交'){
step.STATE = '已提交'
}
if(step.name == '用电单位意见' || step.name == '配送电单位意见' || step.name == '作业负责人意见'){
step.STATE = '已审核'
}
if(step.name == '完成验收'){
step.STATE = '已验收'
}
if(step.name == '验收归档'){
step.STATE = '已归档'
}
return 'success'
}
if (this.showStatus == step.id) {
if(step.name == '作业负责人意见'){
step.STATE = '待审核'
}
if(step.name == '用电单位意见'){
step.STATE = '待审核'
}
if(step.name == '配送电单位意见'){
step.STATE = '待审核'
}
if(step.name == '完成验收'){
step.STATE = '待验收'
}
return 'active'
} else if (this.showStatus > step.id) {
if(step.name == '临时用电作业提交'){
step.STATE = '已提交'
}
if(step.name == '作业负责人意见'){
step.STATE = '已审核'
}
if(step.name == '用电单位意见'){
step.STATE = '已审核'
}
if(step.name == '配送电单位意见'){
step.STATE = '已审核'
}
if(step.name == '完成验收'){
step.STATE = '已验收'
}
return 'success'
} else if (this.showStatus < step.id) {
if (this.showStatus < 0 && step.id == 0) return 'erroractive'
return ''
}
},
// 关闭窗口
closeDrawer(e) {
this.$refs[e].close()
},
// 抽屉状态发生变化触发
change(e, type) {
console.log((type === 'showLeft' ? '左窗口' : '右窗口') + (e ? '打开' : '关闭'));
this[type] = e
},
// 滑动到底方法
scrolltolower(){
var _this = this;
_this.showCount = -1;
_this.currentPage = _this.currentPage + 1;
_this.isEnd = false;
if(_this.totalPage >= _this.currentPage){
_this.getData();//开始分页查询
}
},
statusChange(e){
this.sindex = e.detail.value;
this.STATUS=this.statusList[this.sindex].id;
this.getQuery();
},
getData(){
var _this = this;
if (_this.isEnd) {
return
}else{
this.isEnd =true;
}
uni.showLoading({
title:"加载中..."
});//加载中动画
uni.request({
url: basePath +'/app/electricity/list?showCount='+_this.showCount+'&currentPage='+_this.currentPage ,
method: 'POST',
dataType: 'json',
header: {
'Content-type':'application/x-www-form-urlencoded'
},
data: {
CREATOR:loginUser.USER_ID,
APPLY_STATUS:_this.STATUS,
tm:new Date().getTime(),
KEYWORDS : _this.NameLikes, //关键字模糊查询
CORPINFO_ID:loginUser.CORPINFO_ID,
USER_ID:loginUser.USER_ID,
},
success: (res) => {
uni.hideLoading();//结束加载中动画
if (res.data != null) {
_this.totalPage = res.data.page.totalPage;
if(_this.list.length == 0){
_this.list = res.data.varList;
}else{
if(res.data.varList != null){
_this.list2 = res.data.varList;
_this.list = _this.list.concat(_this.list2);
}
}
}
}
})
},
handleDelete(id){
var _this = this;
uni.showModal({
title: '',
content: '确定要删除这条申请?',
cancelColor:"#000000",
cancelText: '取消',
confirmText: '确定',
success: res => {
if (res.confirm) {
uni.showLoading({
title: '处理中'
})
uni.request({
url: basePath+'/app/electricity/delete',
method: 'POST',
dataType: 'json',
header: {
'Content-type':'application/x-www-form-urlencoded'
},
data: {
ELECTRICITY_ID: id,
CORPINFO_ID:loginUser.CORPINFO_ID,
USER_ID:loginUser.USER_ID,
},
success: (res) => {
uni.hideLoading();
uni.showToast({
icon: 'none',
title: '删除成功',
duration: 1500
});
_this.getQuery()
},
fail: (err) => {
uni.hideLoading();
uni.showModal({
content: err.errMsg,
showCancel: false
});
}
})
}
}
})
},
}
}
</script>
<style>
.dy-card {
background-color: #fff;
border-radius: 10upx;
margin: 30upx
}
.dy-card-title {
display: flex;
justify-content: space-between;
border-bottom: 1px solid #eee;
min-height: 80upx;
line-height: 80upx;
padding: 0 30upx;
}
.dy-card-content {
padding: 0upx 30upx 30upx;
}
.dy-card-content-item {
margin-top: 20upx;
}
.dy-card-content-item .title {
display: flex;
align-items: center;
}
.dy-card-content-item .title .l {
width: 10upx;
height: 30upx;
border-radius: 20upx;
background-color: #666;
margin-right: 10upx;
}
.dy-card-content-item .content {
background-color: #F1F1F1;
padding: 10upx 14upx;
margin-top: 14upx;
line-height: 1.6;
}
.dy-card-content-item .name text {
background-color: #F1F1F1;
padding: 10upx 14upx;
margin-top: 14upx;
line-height: 1.6;
display: inline-block;
}
.dy-card-foot {
border-top: 1px solid #eee;
padding: 30upx;
}
.p20 {
padding: 40upx;
}
.step-top {
width: 100%;
border-bottom: 1px solid #eee;
background: #f9f9f9;
padding: 20upx;
}
.step-item-container {
width: 100%;
padding: 20upx;
}
.step-item {
width: 100%;
display: flex;
flex-direction: column;
padding: 20upx 40upx;
}
.step-item-wrap {
width: 100%;
border-left: 1px solid #ccc;
min-height: 100upx;
position: relative;
display: flex;
flex-direction: row;
}
.step-item-wrap.active .step-item-wrap-doter .step-item-wrap-dot {
background: #4cc9fb;
}
.step-item-wrap.success .step-item-wrap-doter .step-item-wrap-dot {
background: #5db174;
}
.step-item-wrap.erroractive .step-item-wrap-doter .step-item-wrap-dot {
background: red;
}
.step-item-wrap.active {
border-left: 1px solid #5db174;
}
.step-item-wrap.activeing {
border-left: 1px solid #ccc;
}
.step-item-wrap:last-child {
border: none;
}
.step-item-wrap-doter {
width: 30upx;
height: 30upx;
border-radius: 100%;
background: #fff;
position: absolute;
top: 0upx;
left: -12upx;
text-align: center;
padding-top: 5upx;
}
.step-item-wrap-dot {
width: 20upx;
height: 20upx;
background: #c0c4cc;
border-radius: 100%;
}
.step-item-wrap-right {
margin-left: 40upx;
margin-top: -5upx;
padding-bottom: 60upx;
}
.step-item-wrap-right-info {
color: #999;
margin-top: 10upx;
}
.step-item-wrap.active .step-item-wrap-right,.step-item-wrap.active .step-item-wrap-right-info {
color: #4cc9fb;
}
.step-item-wrap.success .step-item-wrap-right,.step-item-wrap.success .step-item-wrap-right-info {
color: #5db174;
}
.step-item-wrap.erroractive .step-item-wrap-right,.step-item-wrap.erroractive .step-item-wrap-right-info {
color: red;
}
</style>