<template> <view :style="'padding-top:'+nvaHeight+'px;'"> <view class="navbox"> <uni-nav-bar color="#ffffff" rightWidth="150rpx" title="政协提案" @clickLeft="getBack" @clickRight="getChFn" :background-color="backgroundColor" :border="false" statusBar='true' fixed="true"> <block slot="left"> <view class="topl"> <image :src="backimg" ></image> </view> </block> <block slot="right"> <view class="topr"> <image :src="ccicoimg"></image> <view>提案查重</view> </view> </block> </uni-nav-bar> <view class="plr12 mt18"> <view class="search flex0 mb10"> <image :src="searchimg"></image> <input placeholder="输入关键字进行查询" v-model="title" @confirm="getConfirm"/> </view> </view> <view class="tablists flexc mb20"> <block v-for="(ite,idx) in tabList" > <view v-if="checkPermi([ite.limit])" @click="getTabFn(ite)" :class="{act:tabidx==ite.val}" :key="idx">{{ite.tit}}</view> </block> </view> <view style="height: 56rpx;"></view> <view class="lbtab flexc"> <image :src="lbicoimg" class="limg"></image> <view class="lbtabs flexc"> <view class="lbtabp" @click="getTalbFn"> <view style="padding: 0 18rpx;" :class="tnlbname?'':'f16 co80'">{{tnlbname || "提案类别"}}</view> <image :src="upimg" class="upimg"></image> </view> <view class="lbtabp"> <picker range-key='label' :value="talbidx" :range="talxList" @change='bindDateChangea'> <view :class="talx?'':'f16 co80'">{{talx || "提案类型"}}</view> </picker> <image :src="upimg" class="upimg"></image> </view> <view class="lbtabp"> <picker mode="date" fields="year" range-key='label' :value="talbidx" @change='bindDateChangeb'> <view :class="year?'':'f16 co80'">{{year || "选择年份"}}</view> </picker> <image :src="upimg" class="upimg"></image> </view> <!-- <view class="lbtabp"> <picker range-key='label' :value="talbidx" :range="taztList" @change='bindDateChangea'> <view :class="datainfo.dqjz?'':'f16 co80'">{{datainfo.talb || "单位答复"}}</view> </picker> <image :src="upimg" class="upimg"></image> </view> --> </view> </view> </view> <!-- 列表 --> <view class="mbox"> <case-list :datalist="list" :listtype="listtype" :wtdt="wtdt" :tajdlist='tajdlist' :type='tabidx' @getDetail="getDetail" @getTuiFn="getTuiFn"></case-list> </view> <view v-if="checkPermi(['proposalInfo:info:add'])&&tabidx=='wdta'"> <view style="height: 100rpx;"></view> <view class="fwbtns" @click="getAddCase">提交提案</view> </view> <!-- 弹窗 --> <pop-up :type='ptype' :blfsList="matterList" :blcdlist="blcdlist" :mycdlist="mycdlist" :dataTree="deptTree" @getClose="getClose" @getupSubmit="getupSubmit"></pop-up> </view> </template> <script> import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数 import {getCaseListFn,getInfoisRecordFn,getInfoAssignFn,getInfoReplyFn,getInfoShFn,getInfoIdeaFn,getInfozxIdeaFn, getInfourgeFn,getInfokeyPointFn,getInfooutstandingFn,getUserverifyFn,getInfojointlyListFn } from "@/api/mine/case.js" import popUp from "@/work/components/popup/popup.vue" import caseList from "@/work/components/case/list.vue" import {getDictionaryFn} from "@/api/mine/register.js" import {getDeptTree} from"@/api/mine/mine.js" export default{ components:{caseList,popUp}, data(){ return{ searchimg: require("@/work/static/images/search.png"), ccicoimg:require("@/work/static/images/ccico.png"), lbicoimg:require("@/work/static/images/lbico.png"), backimg:require("@/work/static/images/back.png"), upimg:require("@/work/static/images/up.png"), backgroundColor:"#1D64E2", tabidx:'tasc', tabtype:'1',//进度查询 // {tit:'征集通知',val:0}, 提案催办 目前看所有 tabList:[{tit:'提案审查',jd:1,val:'tasc',limit:'proposalInfo:info:isRecord'},{tit:'提案交办',jd:3,val:'tajb',}, {tit:'提案办理',jd:4,val:'tabl',},{tit:'办结审核',jd:6,val:'jbsh',}, {tit:'提案催办',val:'tacb',}, {tit:'我的提案',val:'wdta',},{tit:'联名提案',val:'lmta',},{tit:'推荐优秀',val:'tjyx'}, {tit:'推荐重点',val:'tjzd'},{tit:'公开提案',val:'gkta'}, ], litablist:[{tit:'提案类别',val:0},{tit:'提案类型',val:1},{tit:'单位类型',val:2},{tit:'选择年份',val:3},], // {tit:'开始日期',val:1},{tit:'结束日期',val:2}, // "proposalProgress":"提案进度(0:提交提案,1:提案审查,2:提案立案,3:提案交办,4:办理提案,5:提案反馈,6:办结审核,7:已办结) ", nvaHeight:44, talbList:[{},], taztList:[{label:'是',value:'0'},{label:'否',value:'1'}], talxList:[{label:'大会提案',value:'0'},{label:'平时提案',value:'1'}], dwlxList:[{label:'答复单位',value:'1'},{label:'主办单位',value:'2'},{label:'协办单位',value:'3'}], talbidx:'', datainfo:{ talb:'', }, ptype:'',//弹窗类型 list:[], pageSize: 10, pageNum: 1, reachflag: true, wtdt:'', tajdlist:[], listtype:'case', tnlbname:'',//提案类别 talbid:'',//提案类别id talx:'',//提案类型 talxid:'', year:'',//提案时间 title:'', deptTree:[], matterList:[], blcdlist:[], mycdlist:[], id:'', userId:this.$store.state.user.userId, } }, onUnload(){ uni.$off('refreshlist') uni.$off('refreshtalb') }, onLoad(e) { this.getDataFn() this.init() uni.$on('refreshlist', (e) => { this.getDataFn() }) uni.$on('refreshtalb', (e) => { this.tnlbname=e.categoryName; this.talbid=e.categoryId; this.pageNum=1; this.list=[]; this.reachflag=true; this.getDataFn() }) }, mounted() { this.getHeightFn() }, methods:{ checkPermi, checkRole, // 提案状态 init(){ getDictionaryFn('proposal_progress').then(res=>{ if(res.code==200&&res.data.length){ this.tajdlist = res.data.map(v => { return { label: v.dictLabel, value: v.dictValue } }) } }) // 协办单位 getDeptTree().then(res=>{ if(res.code==200){ this.deptTree=res.data } }) // 办理方式 getDictionaryFn('negotiation_mode').then(res=>{ if(res.code==200&&res.data.length){ this.matterList = res.data.map(v => { return { label: v.dictLabel, value: v.dictValue } }) } }) // 办理程度degree getDictionaryFn('degree').then(res=>{ if(res.code==200&&res.data.length){ this.blcdlist = res.data.map(v => { return { text: v.dictLabel, value: v.dictValue } }) } }) // 满意程度 getDictionaryFn('member_satisfaction').then(res=>{ if(res.code==200&&res.data.length){ this.mycdlist = res.data.map(v => { return { text: v.dictLabel, value: v.dictValue } }) } }) }, getConfirm(){ this.pageNum=1; this.list=[]; this.reachflag=true; this.getDataFn() }, getTuiFn(data){ var sh=data.sh; this.id=data.id; var type=data.type; var that=this; if(type=='scfk'){ if(sh==1){ this.ptype=data.type; }else{ var params={ proposalId:data.id, isRecord:0, } getInfoisRecordFn(params).then(res=>{ if(res.code==200){ this.$toast("立案成功"); setTimeout(function(){ that.ptype=''; that.pageNum=1; that.list=[]; that.reachflag=true; that.getDataFn() },1200) } }) } }else if(type=='lmta'){ if(sh==2){ this.ptype=data.type; }else{ var params={ proposalId:data.id, isAgree:1, } getUserverifyFn(params).then(res=>{ if(res.code==200){ this.$toast("确认联名提案成功"); setTimeout(function(){ that.ptype=''; that.pageNum=1; that.list=[]; that.reachflag=true; that.getDataFn() },1200) } }) } }else{ this.ptype=type } }, getupSubmit(e){ var that=this; var type=this.ptype; if(type=='scfk'){ var params=JSON.parse(JSON.stringify(e)) params.proposalId=this.id getInfoisRecordFn(params).then(res=>{ if(res.code==200){ this.$toast("立案成功"); setTimeout(function(){ that.ptype=''; that.pageNum=1; that.list=[]; that.reachflag=true; that.getDataFn() },1200) } }) }else if(type=='tajb'){ var params=JSON.parse(JSON.stringify(e)) params.proposalId=this.id getInfoAssignFn(params).then(res=>{ if(res.code==200){ this.$toast("提案办结成功"); setTimeout(function(){ that.ptype=''; that.pageNum=1; that.list=[]; that.reachflag=true; that.getDataFn() },1200) } }) }else if(type=='dffk'||type=='dwdf'){ var params=JSON.parse(JSON.stringify(e)) params.proposalId=this.id getInfoReplyFn(params).then(res=>{ if(res.code==200){ this.$toast("答复反馈成功"); setTimeout(function(){ that.ptype=''; that.pageNum=1; that.list=[]; that.reachflag=true; that.getDataFn() },1200) } }) }else if(type=='jbsh'){ var params=JSON.parse(JSON.stringify(e)) params.proposalId=this.id getInfoShFn(params).then(res=>{ if(res.code==200){ this.$toast("交办审核成功"); setTimeout(function(){ that.ptype=''; that.pageNum=1; that.list=[]; that.reachflag=true; that.getDataFn() },1200) } }) }else if(type=='wymyfk'){ var params=JSON.parse(JSON.stringify(e)) params.proposalId=this.id getInfoIdeaFn(params).then(res=>{ if(res.code==200){ this.$toast("提案办结成功"); setTimeout(function(){ that.ptype=''; that.pageNum=1; that.list=[]; that.reachflag=true; that.getDataFn() },1200) } }) }else if(type=='zxmyfk'){ var params=JSON.parse(JSON.stringify(e)) params.proposalId=this.id getInfozxIdeaFn(params).then(res=>{ if(res.code==200){ this.$toast("提案办结成功"); setTimeout(function(){ that.ptype=''; that.pageNum=1; that.list=[]; that.reachflag=true; that.getDataFn() },1200) } }) }else if(type=='tacb'){ var params=JSON.parse(JSON.stringify(e)) params.scoreId=this.id getInfourgeFn(params).then(res=>{ if(res.code==200){ this.$toast("提案办结成功"); setTimeout(function(){ that.ptype=''; that.pageNum=1; that.list=[]; that.reachflag=true; that.getDataFn() },1200) } }) }else if(type=='tjyx'){ var params=JSON.parse(JSON.stringify(e)) params.proposalId=this.id getInfooutstandingFn(params).then(res=>{ if(res.code==200){ this.$toast("推荐优秀成功"); setTimeout(function(){ that.ptype=''; that.pageNum=1; that.list=[]; that.reachflag=true; that.getDataFn() },1200) } }) }else if(type=='tjzd'){ var params=JSON.parse(JSON.stringify(e)) params.proposalId=this.id getInfokeyPointFn(params).then(res=>{ if(res.code==200){ this.$toast("推荐重点成功"); setTimeout(function(){ that.ptype=''; that.pageNum=1; that.list=[]; that.reachflag=true; that.getDataFn() },1200) } }) }else if(type=='lmta'){ var params=JSON.parse(JSON.stringify(e)) var str='同意' if(params.isAgree==2){ str="反对" } params.proposalId=this.id getUserverifyFn(params).then(res=>{ if(res.code==200){ this.$toast(str+"成功"); setTimeout(function(){ that.ptype=''; that.pageNum=1; that.list=[]; that.reachflag=true; that.getDataFn() },1200) } }) } }, getAddCase(){ if(uni.getStorageSync('tjtaList')){ // var newObj=JSON.parse(JSON.stringify(uni.getStorageSync('tjtaList'))) this.ptype='zcta' }else{ this.$tab.navigateTo('/work/pages/case/add') } }, getHeightFn(){ var s=uni.getSystemInfoSync().statusBarHeight; let query = uni.createSelectorQuery().in(this); //需要给黄色区域设置一个id标识,在这里是demo query.select('.navbox').boundingClientRect(data => { this.nvaHeight =s? data.height:Number(data.height)-20//赋值,待会要用 }).exec(); }, getClose(){ this.ptype="" }, getTabFn(ite){ this.tabidx=ite.val; this.pageNum=1; this.list=[], this.reachflag=true; this.tabtype=ite.jd||""; this.getDataFn() }, getBack(){ uni.navigateBack({ delta:1 }) }, getrefreshData(){ this.pageNum=1; this.list=[]; this.reachflag=true; this.getDataFn() }, bindDateChangea(e){ var val=e.detail.value; this.talx=this.talxList[val].label; this.talxid=this.talxList[val].value; this.getrefreshData() }, bindDateChangeb(e){ var val=e.detail.value; this.year=val; this.getrefreshData() }, getTalbFn(){ var obj={ id:this.talbid, name:this.tnlbname, } this.$tab.navigateTo('/work/pages/case/talbclass?data='+encodeURIComponent(JSON.stringify(obj))) }, getChFn(){ this.$tab.navigateTo('/work/pages/case/tacheck') }, getDetail(data){ this.$tab.navigateTo('/work/pages/case/details?id='+data) }, getDataFn(){ var tab=this.tabidx; var params={ pageSize:this.pageSize, pageNum: this.pageNum, } if(this.tabtype){ params.proposalProgress=this.tabtype } if(this.talx){ params.proposalType=this.talxid } if(this.tnlbname){ params.categoryId=this.talbid } if(this.title){ params.title=this.title } if(this.year){ params.year=this.year } if(tab=='tjyx'){ params.isOutstanding="0" }else if(tab=='tjzd'){ params.isKeyPoint="0" }else if(tab=='gkta'){ params.isPublicity="是" }else if(tab=='wdta'){ params.userId=this.userId } if(this.tabidx=='lmta'){ getInfojointlyListFn(params).then(res=>{ if(res.code==200){ if (res.rows.length < this.pageSize) { this.reachflag = false this.wtdt = '到底了~'; } else { var num = parseInt(res.rows.length) + parseInt(this.pageSize) * parseInt(this.pageNum - 1) if (num < res.total) { this.reachflag = true this.wtdt = '上拉加载更多' } else { this.reachflag = false this.wtdt = '到底了~'; } } if (this.pageNum == 1) { this.list = res.rows; } else { this.list = this.list.concat(res.rows) } }else{ this.$toast(res.msg) } }) }else{ getCaseListFn(params).then(res=>{ if(res.code==200){ if (res.rows.length < this.pageSize) { this.reachflag = false this.wtdt = '到底了~'; } else { var num = parseInt(res.rows.length) + parseInt(this.pageSize) * parseInt(this.pageNum - 1) if (num < res.total) { this.reachflag = true this.wtdt = '上拉加载更多' } else { this.reachflag = false this.wtdt = '到底了~'; } } if (this.pageNum == 1) { this.list = res.rows; } else { this.list = this.list.concat(res.rows) } }else{ this.$toast(res.msg) } }) } }, } } </script> <style scoped lang="scss"> .navbox{position: fixed;left: 0;right: 0;top: 0;z-index: 4;background-color: $com-cd3; .topl{width: 60rpx;height: 60rpx;display: flex;align-items: center;justify-content: center; image{width: 40rpx;height: 30rpx;} } .topr{display: flex;align-items: center; image{width: 26rpx;height: 26rpx;margin-right: 12rpx;} view{font-weight: 500;font-size: 26rpx;color: #FFFFFF;} } .tablists{ overflow: auto;flex-wrap: nowrap; view{font-weight: bold;font-size: 26rpx;color: #FFFFFF;position: relative;flex: 1 0 auto;padding: 22rpx 24rpx;margin-right: 6rpx;box-sizing: border-box;text-align: center; &:last-child{margin-right: 0;} &.act{font-size: 30rpx; &::after{content: '';width: 62rpx;height: 10rpx;background: #FFFFFF;border-radius: 4rpx;left: 50%;margin-left: -31rpx;bottom: 0rpx;position: absolute;} } } } .lbtab{height: 114rpx;background: #FFFFFF;border-radius: 30rpx;padding-left: 24rpx;position: absolute;left:24rpx;right: 24rpx;bottom: -58rpx; .limg{width: 40rpx;height: 34rpx;margin-right: 10rpx;flex:0 0 auto;} .lbtabs{overflow: auto;flex-wrap: nowrap;flex: 1; .lbtabp{display: flex;align-items: center;flex: 1;margin-right: 24rpx;} .upimg{width: 18rpx;height: 10rpx;} } } } .mbox{padding:58rpx 24rpx 28rpx;} .lbtabs /deep/ picker{padding: 0 18rpx;} </style>