information.vue 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250
  1. <!-- 消息 -->
  2. <template>
  3. <view id="information">
  4. <scroll-view scroll-y @scrolltolower="scrollGet" class="info-max-box">
  5. <view class="for-info-box" v-for="(item,index) in infoList" :key="index" @click="goInfoPage(item)">
  6. <img v-if='item.isApply==1' src="@/images/icon_xx_tz.png">
  7. <img v-if='item.isApply==2' src="@/images/icon_xx_tz.png">
  8. <img v-if='item.isApply!=1 && item.isApply!=2' src="@/images/icon_01.png">
  9. <view class="right-box">
  10. <view class="top-box">
  11. <view>{{item.isApply==1?'准入驳回':(item.isApply==2?item.remark:
  12. (item.isApply==3||item.isApply==-1?item.sendName:(item.isApply==4||item.isApply==5?item.remark:'')))}}</view>
  13. <view>{{item.isApply==1?item.subName:(item.isApply==2?'':
  14. (item.isApply==3||item.isApply==-1?item.deptName:(item.isApply==4||item.isApply==5?'':'')))}}</view>
  15. <view>{{item.newMessageDate}}</view>
  16. </view>
  17. <view class="bottom">{{item.newMessage}}</view>
  18. </view>
  19. </view>
  20. <view class="get-null-box" v-if="getData.nullDataType">暂无更多数据</view>
  21. </scroll-view>
  22. <tab-bar ref='infoAll'></tab-bar>
  23. </view>
  24. </template>
  25. <script>
  26. import { groupList,queryByMessage } from '@/api/index.js'
  27. import { tabBar } from '@/component/tabBar.vue'
  28. export default {
  29. components: {
  30. tabBar
  31. },
  32. data() {
  33. return {
  34. infoList:[],
  35. //列表请求参数
  36. getData:{
  37. page:1,
  38. pageSize:20,
  39. getType:true,
  40. nullDataType:true,
  41. }
  42. }
  43. },
  44. onLoad() {
  45. },
  46. onShow(){
  47. this.clearData();
  48. this.getList();
  49. this.$refs.infoAll.getTotalList();
  50. },
  51. methods: {
  52. //清除
  53. clearData(){
  54. this.infoList = [];
  55. this.getData.page = 1;
  56. this.getData.getType = true;
  57. this.getData.nullDataType = true;
  58. },
  59. //去消息详情页面
  60. goInfoPage(item){
  61. if(item.isApply==1){
  62. uni.navigateTo({
  63. url:'/pages/information/notPassInfo?item='+encodeURIComponent(JSON.stringify(item))
  64. })
  65. }else if(item.isApply==2){
  66. uni.navigateTo({
  67. url: '/pages_manage/workbench/receiveCasuallyPat/casuallyPatInfo?item='+encodeURIComponent(JSON.stringify(item))
  68. });
  69. }else if(item.isApply==3 || item.isApply == -1){
  70. uni.navigateTo({
  71. url:'/pages/information/informationInfo?item='+encodeURIComponent(JSON.stringify(item))
  72. })
  73. }else if(item.isApply==4){
  74. //记录详情-未执行 dynamicId 4
  75. let obj = {
  76. messageUserId:item.messageUserId,
  77. recordId:item.dynamicId
  78. }
  79. uni.navigateTo({
  80. url:'/pages_manage/gradingControl/gradingControlDetail?item='+encodeURIComponent(JSON.stringify(obj))
  81. })
  82. }else if(item.isApply==5){
  83. //完成控制-页面 messageContext 5
  84. let obj = JSON.parse(item.messageContext);
  85. this.queryByMessage(obj,item.messageUserId)
  86. // obj.messageUserId = item.messageUserId
  87. // uni.navigateTo({
  88. // url:'/pages/gradingControl/gradingControlAdd?obj='+encodeURIComponent(JSON.stringify(obj))
  89. // })
  90. }
  91. },
  92. async queryByMessage(obj,messageUserId){
  93. const {data} = await queryByMessage(obj);
  94. if(data.code == 200){
  95. uni.navigateTo({
  96. url:'/pages_manage/gradingControl/gradingControlAdd?item='+encodeURIComponent(JSON.stringify(data.data))+'&item2='+encodeURIComponent(JSON.stringify(data.data.detailList[0]))+'&messageUserId='+messageUserId
  97. })
  98. }
  99. },
  100. //滚动事件
  101. scrollGet(){
  102. if(this.getData.getType){
  103. this.getData.page += 1;
  104. this.getList();
  105. }
  106. },
  107. //获取列表数据
  108. async getList(){
  109. let self = this;
  110. let obj = {
  111. pageNum:this.getData.page,
  112. pageSize:this.getData.pageSize,
  113. };
  114. const {data} = await groupList(obj);
  115. if(data.code==200){
  116. let newDataList = data.rows;
  117. for(let i=0;i<newDataList.length;i++){
  118. if(!newDataList[i].newMessageDate || newDataList[i].newMessageDate == null){
  119. newDataList[i].newMessageDate = '';
  120. }else{
  121. let timeOne = (new Date(newDataList[i].newMessageDate)).getTime();
  122. newDataList[i].newMessageDate = self.formatDate(timeOne);
  123. newDataList[i].newMessage = unescape(newDataList[i].newMessage);
  124. let reg1 = RegExp(/<img/);
  125. let reg2 = RegExp(/<iframe/);
  126. if(newDataList[i].newMessage.match(reg1)){
  127. newDataList[i].newMessage = "[图片]"
  128. }if(newDataList[i].newMessage.match(reg2)){
  129. newDataList[i].newMessage = "[视频]"
  130. }else{
  131. newDataList[i].newMessage=newDataList[i].newMessage.replace(/<\/?.+?>/g,"");
  132. }
  133. }
  134. }
  135. if(self.page==1){
  136. if(data.rows.length > 0 && data.rows.length == self.getData.pageSize){
  137. self.infoList = data.rows;
  138. }else if(data.rows.length > 0 && data.rows.length != self.getData.pageSize){
  139. self.infoList = data.rows;
  140. self.getData.getType = false;
  141. self.getData.nullDataType = true;
  142. }else{
  143. self.getData.getType = false;
  144. self.getData.nullDataType = true;
  145. }
  146. }else{
  147. if(data.rows.length > 0 && data.rows.length == self.getData.pageSize){
  148. self.infoList = self.infoList.concat(data.rows)
  149. }else if(data.rows.length > 0 && data.rows.length != self.getData.pageSize){
  150. self.infoList = self.infoList.concat(data.rows);
  151. self.getData.getType = false;
  152. self.getData.nullDataType = true;
  153. }else{
  154. self.getData.getType = false;
  155. self.getData.nullDataType = true;
  156. }
  157. }
  158. }
  159. },
  160. formatDate(date) {
  161. let newDate = new Date(date);
  162. let YY = newDate.getFullYear() + '-';
  163. let MM = (newDate.getMonth() + 1 < 10 ? '0' + (newDate.getMonth() + 1) : newDate.getMonth() + 1) + '-';
  164. let DD = (newDate.getDate() < 10 ? '0' + (newDate.getDate()) : newDate.getDate());
  165. return YY + MM + DD;
  166. },
  167. }
  168. }
  169. </script>
  170. <style lang="stylus" scoped>
  171. #information{
  172. height:100%;
  173. display flex
  174. background #fff
  175. .info-max-box{
  176. flex:1;
  177. overflow: scroll
  178. padding-bottom:100rpx;
  179. background #fff
  180. margin:0 20rpx;
  181. .for-info-box:nth-child(1){
  182. border:none;
  183. }
  184. .for-info-box{
  185. height:150rpx;
  186. border-top:1rpx solid #F5F5F5;
  187. display flex
  188. img{
  189. border-radius:50%;
  190. margin:25rpx 28rpx 25rpx 20rpx;
  191. width:100rpx;
  192. height:100rpx;
  193. }
  194. .right-box{
  195. flex:1;
  196. .top-box{
  197. display flex
  198. line-height:67rpx;
  199. margin-top:7rpx;
  200. view:nth-child(1){
  201. font-size:30rpx;
  202. color:#333333;
  203. margin-right:28rpx;
  204. }
  205. view:nth-child(2){
  206. font-size:24rpx;
  207. color:#CCCCCC;
  208. flex:1;
  209. white-space:nowrap;
  210. overflow:hidden;
  211. text-overflow:ellipsis;
  212. }
  213. view:nth-child(3){
  214. font-size:20rpx;
  215. color:#CCCCCC;
  216. text-align right;
  217. }
  218. }
  219. .bottom{
  220. width:530rpx;
  221. line-height:62rpx;
  222. font-size:25rpx;
  223. color: #666666;
  224. display block
  225. overflow:hidden;
  226. text-overflow:ellipsis;
  227. white-space:nowrap;
  228. }
  229. }
  230. }
  231. .get-null-box{
  232. height:100rpx;
  233. line-height:100rpx;
  234. color:#999;
  235. text-align center
  236. }
  237. }
  238. }
  239. </style>