notice.vue 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226
  1. <template>
  2. <view class="notice" :style="tabidx=='dbtz'?'padding-top:188rpx;':'padding-top:100rpx;'">
  3. <view class="pfixed" style="background: transparent;">
  4. <tab-list :tablist="tablist" :height="height" :tabidx="tabidx" @getCheck="getCheck"></tab-list>
  5. <!-- 筛选条件 -->
  6. <view class="flexc checkbox" v-if="tabidx=='dbtz'" :class="scroflag?'scbg':''">
  7. <!-- <picker mode="date" @change='bindDateChangea'>
  8. <view class="chekt">
  9. <view>{{tzsj|| "通知时间"}}</view>
  10. <image :src="upimg"></image>
  11. </view>
  12. </picker> -->
  13. <picker range-key='label' :value="ydidx" :range="ydztlist" @change='bindDateChangeb'>
  14. <view class="chekt">
  15. <view>{{ydzt || "完成状态"}}</view>
  16. <image :src="upimg"></image>
  17. </view>
  18. </picker>
  19. <view class="reset" @click="getResetFn">
  20. <image :src="resetimg" ></image>
  21. <!-- <image :src="wresetimg" v-else></image> -->
  22. </view>
  23. </view>
  24. </view>
  25. <view class="mt12">
  26. <wait-list :type='tabidx' :datalist="list" :wtdt="wtdt" @getDetail="getDetail" @getHandle="getHandle"></wait-list>
  27. </view>
  28. </view>
  29. </template>
  30. <script>
  31. import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
  32. import {getNoticeList,getRemindList} from "@/api/common.js"
  33. import {getDictionaryFn} from "@/api/mine/register.js"
  34. import waitList from "@/components/wait/list.vue"
  35. import tabList from '@/components/toptab/tab.vue'
  36. export default{
  37. components:{tabList,waitList},
  38. data(){
  39. return{
  40. tablist:[{tit:'系统通知',val:'xttz'},{tit:'待办通知',val:'dbtz',limt:'system:remind:list'}],
  41. resetimg:require('@/work/static/images/reset.png'),
  42. wresetimg:require('@/work/static/images/wreset.png'),
  43. upimg:require('@/work/static/images/sup.png'),
  44. tabidx:'xttz',
  45. height:100,
  46. scroflag:false,
  47. list:[],
  48. pageSize: 10,
  49. pageNum: 1,
  50. reachflag: true,
  51. wtdt:'',
  52. tzsj:'',//通知时间
  53. ydidx:1,
  54. ydzt:'否',
  55. ydztlist:[],//阅读状态
  56. isRead:'N',
  57. userId:this.$store.state.user.userId,
  58. }
  59. },
  60. onPageScroll(e) {
  61. var scrollTop = Number(e.scrollTop);
  62. // var listTop=Number(this.listTop)-Number(this.nvaHeight)
  63. if(scrollTop>2){
  64. this.scroflag=true
  65. }else{
  66. this.scroflag=false
  67. }
  68. },
  69. // 上拉触底加载更多触发事件
  70. onReachBottom() {
  71. if (this.reachflag) {
  72. this.pageNum++
  73. this.getDataFn()
  74. }
  75. },
  76. onLoad(e) {
  77. if(e.type){
  78. this.tabidx=e.type
  79. }
  80. this.init();
  81. this.getDataFn()
  82. },
  83. methods:{
  84. checkPermi, checkRole,
  85. init(){
  86. // is_read阅读状态sys_yes_no
  87. getDictionaryFn('sys_yes_no').then(res=>{
  88. if(res.code==200){
  89. this.ydztlist = res.data.map(v => {
  90. return {
  91. label: v.dictLabel,
  92. value: v.dictValue
  93. }
  94. })
  95. }
  96. })
  97. },
  98. bindDateChangea(e){
  99. var val=e.detail.value;
  100. this.tzsj=val;
  101. this.getrefreshData()
  102. },
  103. bindDateChangeb(e){
  104. var val=e.detail.value;
  105. this.ydzt=this.ydztlist[val].label;
  106. this.isRead=this.ydztlist[val].value;
  107. this.getrefreshData()
  108. },
  109. getResetFn(){
  110. this.ydzt='';
  111. this.tzsj='';
  112. this.ydidx=0;
  113. this.getrefreshData()
  114. },
  115. getCheck(val){
  116. this.tabidx=val;
  117. this.getrefreshData()
  118. },
  119. getrefreshData(){
  120. this.pageNum=1;
  121. this.list=[];
  122. this.reachflag=true;
  123. this.getDataFn()
  124. },
  125. getDetail(e){
  126. this.$tab.navigateTo("/pages/index/noticedetail?type="+this.tabidx+'&id='+e)
  127. },
  128. getHandle(ite){
  129. var id=ite.loanApplicationId;
  130. var remindType=ite.remindType;
  131. if(remindType==12){
  132. this.$tab.navigateTo("/work/pages/business/details?id="+id+'&from=vote')
  133. }else if(remindType==13){
  134. this.$tab.navigateTo("/work/pages/business/details?id="+id+'&from=bhxx')
  135. }else{
  136. this.$tab.navigateTo("/work/pages/business/details?id="+id)
  137. }
  138. // this.$tab.navigateTo("/pages/index/noticedetail?type=dbtz&id="+e)
  139. },
  140. getDataFn(){
  141. var params={
  142. pageSize:this.pageSize,
  143. pageNum: this.pageNum,
  144. }
  145. // if(this.tzsj){
  146. // params.createTime=this.tzsj
  147. // }
  148. var tabidx=this.tabidx;
  149. if(tabidx=='xttz'){
  150. getNoticeList(params).then(res=>{
  151. if(res.code==200){
  152. if (res.rows.length < this.pageSize) {
  153. this.reachflag = false
  154. this.wtdt = '到底了~';
  155. } else {
  156. var num = parseInt(res.rows.length) + parseInt(this.pageSize) * parseInt(this.pageNum - 1)
  157. if (num < res.total) {
  158. this.reachflag = true
  159. this.wtdt = ''
  160. } else {
  161. this.reachflag = false
  162. this.wtdt = '到底了~';
  163. }
  164. }
  165. if (this.pageNum == 1) {
  166. this.list = res.rows;
  167. } else {
  168. this.list = this.list.concat(res.rows)
  169. }
  170. }else{
  171. this.$toast(res.msg)
  172. }
  173. })
  174. }else {
  175. if(this.ydzt){
  176. params.isRead=this.isRead
  177. }
  178. params.userId=this.userId;
  179. getRemindList(params).then(res=>{
  180. if(res.code==200){
  181. if (res.rows.length < this.pageSize) {
  182. this.reachflag = false
  183. this.wtdt = '到底了~';
  184. } else {
  185. var num = parseInt(res.rows.length) + parseInt(this.pageSize) * parseInt(this.pageNum - 1)
  186. if (num < res.total) {
  187. this.reachflag = true
  188. this.wtdt = ''
  189. } else {
  190. this.reachflag = false
  191. this.wtdt = '到底了~';
  192. }
  193. }
  194. if (this.pageNum == 1) {
  195. this.list = res.rows;
  196. } else {
  197. this.list = this.list.concat(res.rows)
  198. }
  199. }else{
  200. this.$toast(res.msg)
  201. }
  202. })
  203. }
  204. },
  205. }
  206. }
  207. </script>
  208. <style lang="scss" scoped>
  209. .notice /deep/ uni-picker{flex: 0 0 auto;min-width: 300rpx;}
  210. .checkbox{
  211. &.scbg{background-color: #FFFFFF;}
  212. .chekt{display: flex;align-items: center;margin:0 20rpx;height:88rpx;
  213. view{text-align: center;font-weight: bold;font-size: 26rpx;color: #374B61;flex:1;word-break: break-all;text-overflow: ellipsis;overflow: hidden;display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical;white-space: normal;}
  214. image{width: 16rpx;height: 12rpx;flex: 0 0 auto;margin-left: 4rpx;}
  215. }
  216. }
  217. .reset{width:56rpx; height: 88rpx;display: flex;align-items: center;justify-content: center;flex: 0 0 auto;margin-left: 40rpx;
  218. image{width: 26rpx;height: 30rpx;}
  219. }
  220. </style>