123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 |
- <template>
- <view>
- <cu-custom bgColor="bg-blue" backUrl="/pages/index/index?id=apps" :isBack="false">
- <block slot="content"> 消息</block>
- </cu-custom>
- <u-search :show-action="false" v-model="searchForm.title" @change="inputWord" margin="20rpx 50rpx"></u-search>
- <view>
- <u-swipe-action>
- <view
- v-for="(notify, index) in dataList"
- :key="index">
- <u-swipe-action-item @click="del(notify.id)" :key="notify.id" :threshold="60" duration="500"
- :options="[ {
- text: '删除',
- style: {
- backgroundColor: '#f56c6c'
- }
- }]">
- <u-cell-group>
- <u-cell @click="toDetail(notify)">
- <u-avatar slot="icon" icon="bell-fill" fontSize="22" randomBgColor></u-avatar>
- <view slot="title" class="content">
- <view class="text-bold text-grey">
- <view class="ellipsis-description">
- 标题:{{notify.title}}
- </view>
- </view>
-
- <view class="text-gray text-sm">
- <view class="ellipsis-description">
- 发布者:{{notify.createBy.name}}, {{notify.createTime}}
- </view>
- </view>
- <view class="text-sm">
- <view class="ellipsis-description">
- 内容:{{notify.content}}
- </view>
- </view>
- </view>
- <view slot="right-icon">
- <u-tag :text="$dictUtils.getDictLabel('oa_notify_read', notify.readFlag ,'')" v-if="notify.readFlag === '1'" plain shape="circle"></u-tag>
- <u-tag :text="$dictUtils.getDictLabel('oa_notify_read', notify.readFlag ,'')" v-else plain type="error" shape="circle"></u-tag>
- </view>
- </u-cell>
- </u-cell-group>
- </u-swipe-action-item>
- </view>
- </u-swipe-action>
- </view>
- <u-loadmore :status="status" @loadmore="loadmore" :line="true" />
- <u-gap height="100" bgColor="#fff"></u-gap>
- <u-back-top :scrollTop="0" mode="square"></u-back-top>
- </view>
- </template>
- <script>
- import notifyService from "@/api/notify/notifyService";
- export default {
- data() {
- return {
- status: 'loadmore',
- searchForm: {
- title: ''
- },
- dataList: [],
- tablePage: {
- pages: 0,
- currentPage: 0,
- pageSize: 10,
- orders: [{ column: "a.create_time", asc: false }],
- },
- loading: false,
- }
- },
- created() {
- this.loadmore()
- },
- methods: {
-
- toDetail (notify) {
- if(notify.status === '1'){
- uni.navigateTo({
- url: '/pages/apps/notification/notificationDetail?id='+notify.id
- })
- }else{
- this.toEdit(notify)
- }
-
- },
- toEdit (notify) {
- uni.navigateTo({
- url: '/pages/apps/notification/oaNotifyForm?id='+notify.id
- })
- },
- toAdd (){
- uni.navigateTo({
- url: '/pages/apps/notification/oaNotifyForm'
- })
- },
-
- inputWord(e){
- this.searchTimer && clearTimeout(this.searchTimer)
- this.searchTimer = setTimeout(()=>{
- this.doSearch()
- },300)
- },
-
- doSearch(){
- this.dataList = [];
- this.tablePage.currentPage = 0;
- this.tablePage.pageSize = 10;
- this.tablePage.pages = 0;
- this.loadmore()
- },
- onReachBottom() {
- this.loadmore()
- },
- loadmore() {
- if(this.tablePage.currentPage!==0 && this.tablePage.pages <= this.tablePage.currentPage ) {
- this.status = 'nomore';
- return;
- }
- this.tablePage.currentPage = ++ this.tablePage.currentPage;
-
- this.status = 'loading';
- notifyService.list({
- isSelf: true,
- current: this.tablePage.currentPage,
- size: this.tablePage.pageSize,
- orders: this.tablePage.orders,
- ...this.searchForm
- }).then((data)=>{
-
- this.dataList=this.dataList.concat(data.records);
- this.tablePage.pages = data.pages;
- if(this.tablePage.pages <= this.tablePage.currentPage){
- this.status = 'nomore'
- } else {
- this.status = 'loadmore'
- }
- })
-
- },
- del (id) {
- notifyService.delete(id).then((data)=>{
- this.doSearch()
- uni.showToast({
- title: data,
- icon:"success"
- })
- })
- },
- }
- }
- </script>
|