notice.vue 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. <template>
  2. <view class="notice" :style="'padding-top:196rpx;'">
  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" :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"></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'}],
  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:0,
  54. ytzt:'',
  55. ydztlist:[],//阅读状态
  56. isRead:'',
  57. }
  58. },
  59. onPageScroll(e) {
  60. var scrollTop = Number(e.scrollTop);
  61. // var listTop=Number(this.listTop)-Number(this.nvaHeight)
  62. if(scrollTop>2){
  63. this.scroflag=true
  64. }else{
  65. this.scroflag=false
  66. }
  67. },
  68. // 上拉触底加载更多触发事件
  69. onReachBottom() {
  70. if (this.reachflag) {
  71. this.pageNum++
  72. this.getDataFn()
  73. }
  74. },
  75. onLoad() {
  76. this.init();
  77. this.getDataFn()
  78. },
  79. methods:{
  80. checkPermi, checkRole,
  81. init(){
  82. // 阅读状态
  83. getDictionaryFn('is_read').then(res=>{
  84. if(res.code==200){
  85. this.ydztlist = res.data.map(v => {
  86. return {
  87. label: v.dictLabel,
  88. value: v.dictValue
  89. }
  90. })
  91. }
  92. })
  93. },
  94. bindDateChangea(e){
  95. var val=e.detail.value;
  96. this.tzsj=val;
  97. this.getrefreshData()
  98. },
  99. bindDateChangeb(e){
  100. var val=e.detail.value;
  101. this.ydzt=this.ydztlist[val].label;
  102. this.isRead=this.ydztlist[val].value;
  103. this.getrefreshData()
  104. },
  105. getResetFn(){
  106. this.ydzt='';
  107. this.tzsj='';
  108. this.ydidx=0;
  109. this.getrefreshData()
  110. },
  111. getCheck(val){
  112. this.tabidx=val;
  113. this.getrefreshData()
  114. },
  115. getrefreshData(){
  116. this.pageNum=1;
  117. this.list=[];
  118. this.reachflag=true;
  119. this.getDataFn()
  120. },
  121. getDetail(e){
  122. this.$tab.navigateTo("/pages/index/noticedetail?type="+this.tabidx+'&id='+e)
  123. },
  124. getDataFn(){
  125. var params={
  126. pageSize:this.pageSize,
  127. pageNum: this.pageNum,
  128. }
  129. // if(this.tzsj){
  130. // params.createTime=this.tzsj
  131. // }
  132. if(this.ydzt){
  133. params.isRead=this.isRead
  134. }
  135. var tabidx=this.tabidx;
  136. if(tabidx=='xttz'){
  137. getNoticeList(params).then(res=>{
  138. if(res.code==200){
  139. if (res.rows.length < this.pageSize) {
  140. this.reachflag = false
  141. this.wtdt = '到底了~';
  142. } else {
  143. var num = parseInt(res.rows.length) + parseInt(this.pageSize) * parseInt(this.pageNum - 1)
  144. if (num < res.total) {
  145. this.reachflag = true
  146. this.wtdt = ''
  147. } else {
  148. this.reachflag = false
  149. this.wtdt = '到底了~';
  150. }
  151. }
  152. if (this.pageNum == 1) {
  153. this.list = res.rows;
  154. } else {
  155. this.list = this.list.concat(res.rows)
  156. }
  157. }else{
  158. this.$toast(res.msg)
  159. }
  160. })
  161. }else {
  162. getRemindList(params).then(res=>{
  163. if(res.code==200){
  164. if (res.rows.length < this.pageSize) {
  165. this.reachflag = false
  166. this.wtdt = '到底了~';
  167. } else {
  168. var num = parseInt(res.rows.length) + parseInt(this.pageSize) * parseInt(this.pageNum - 1)
  169. if (num < res.total) {
  170. this.reachflag = true
  171. this.wtdt = ''
  172. } else {
  173. this.reachflag = false
  174. this.wtdt = '到底了~';
  175. }
  176. }
  177. if (this.pageNum == 1) {
  178. this.list = res.rows;
  179. } else {
  180. this.list = this.list.concat(res.rows)
  181. }
  182. }else{
  183. this.$toast(res.msg)
  184. }
  185. })
  186. }
  187. },
  188. }
  189. }
  190. </script>
  191. <style lang="scss" scoped>
  192. .notice /deep/ uni-picker{flex: 1;}
  193. .checkbox{padding-top: 4rpx;
  194. &.scbg{background-color: #FFFFFF;}
  195. .chekt{display: flex;align-items: center;margin:0 20rpx;height:88rpx;
  196. 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;}
  197. image{width: 16rpx;height: 12rpx;flex: 0 0 auto;margin-left: 4rpx;}
  198. }
  199. }
  200. .reset{width:56rpx; height: 88rpx;display: flex;align-items: center;justify-content: center;flex: 1;
  201. image{width: 26rpx;height: 30rpx;}
  202. }
  203. </style>