对接首页的消息和待办

This commit is contained in:
qq787203167
2022-05-24 16:20:36 +08:00
parent d5e011e566
commit 57661ec11a
4 changed files with 152 additions and 15 deletions
+27
View File
@@ -0,0 +1,27 @@
<template>
<div class="JNoData">
<a-icon class="icon" type="inbox"/>
<br/>
{{$t('noData')}}
</div>
</template>
<script>
export default {
name: 'JNoData'
}
</script>
<style scoped>
.JNoData {;
position: absolute;
left: 50%;
text-align: center;
top: 50%;
transform: translate(-50%, -50%);
}
.icon {
font-size: 34px;
}
</style>
+2
View File
@@ -27,6 +27,7 @@ import JSwitch from './JSwitch.vue'
import JTime from './JTime.vue'
import JTreeTable from './JTreeTable.vue'
import JLoading from './JLoading.vue'
import JNoData from './JNoData.vue'
//jerobiz
import JSelectDepart from '../jerobiz/JSelectDepart.vue'
import JSelectMultiUser from '../jerobiz/JSelectMultiUser.vue'
@@ -70,5 +71,6 @@ export default {
Vue.component('JSelectMultiUser', JSelectMultiUser)
Vue.component('JSelectRole', JSelectRole)
Vue.component('JSelectUserByDep', JSelectUserByDep)
Vue.component('JNoData', JNoData)
}
}
@@ -2,37 +2,90 @@
<div class="myList-box">
<div class="header-text">
<div class="header-text-left">{{this.$t('myList')}}</div>
<div class="header-text-right">
<div class="header-text-right" @click="moreClick">
{{$t('more')}}
<img src="../../../assets/gengduo.png" alt="">
</div>
</div>
<div class="myList-box-content">
<div class="myList-box-content-box" v-for="item in 4">
<div class="myList-box-content" v-if="dataSource.length > 0">
<div class="myList-box-content-box" v-for="(item,index) in dataSource" :key="index" @click="prcClick(item)">
<div class="top">
<span class="top-text">GB 7258 - 2017</span>
<span class="top-admin">握手流程</span>
<span class="top-text" :title="item.prcNum">{{item.prcNum}}</span>
<span class="top-admin" :title="prcTypeName[item.prcType]">{{prcTypeName[item.prcType]}}</span>
</div>
<div class="button">
2022-04-04 12:00:00
{{moment(item.createTime).format('YYYY-MM-DD HH:mm:ss')}}
</div>
<div class="with">
{{$t('Pending')}}
</div>
</div>
</div>
<div v-else style="height: 300px;position: relative">
<JNoData/>
</div>
<JLoading :loading="loading">{{$t('dataLoading')}}</JLoading>
</div>
</template>
<script>
import { getAction, postAction, deleteAction, downloadFile } from '@/api/manage'
import { mapGetters } from 'vuex'
import moment from 'moment'
export default {
name: 'myList'
name: 'myList',
data() {
return {
pageSize: 4,
pageNo: 1,
dataSource: [],
loading:false,
prcTypeName: {
1: this.$t('taskConfirmationProcess')
}
}
},
mounted() {
this.queryProcess()
},
methods: {
...mapGetters(['userInfo']),
queryProcess() {
this.loading = true
let parmes = {}
parmes.current = this.pageNo
parmes.size = this.pageSize
parmes.userId = this.userInfo().userId
postAction('task/todoTaskList', parmes).then((res) => {
this.dataSource = res.list || []
this.loading = false
})
},
moreClick() {
this.$router.push({
path: '/ProcessCenter'
})
},
prcClick(row) {
let index = row.taskIds.lastIndexOf(',')
row.taskIds = row.taskIds.slice(0, index)
if (row.prcType == '1') {
let newUrl = this.$router.resolve({
path: '/handshakeProcess',
query: row
})
window.open(newUrl.href, '_blank')
}
}
}
}
</script>
<style scoped lang="less">
.myList-box {
width: 100%;
position: relative;
.header-text {
width: 100%;
@@ -50,6 +103,7 @@
font-weight: 400;
color: #9B9DA9;
margin-top: 6px;
cursor: pointer;
}
}
@@ -66,7 +120,7 @@
box-sizing: border-box;
margin-bottom: 14px;
position: relative;
cursor: pointer;
.top {
.top-text {
font-size: 16px;
@@ -2,20 +2,20 @@
<div class="myNews-box">
<div class="header-text">
<div class="header-text-left">{{this.$t('myNews')}}</div>
<div class="header-text-right">
<div class="header-text-right" @click="moreClick">
{{$t('more')}}
<img src="../../../assets/gengduo.png" alt="">
</div>
</div>
<div class="myNews-box-content">
<div class="myNews-box-content-box" v-for="item in 4">
<div class="myNews-box-content" v-if="dataSource.length > 0">
<div class="myNews-box-content-box" v-for="(item,index) in dataSource" :key="index" @click="magClick(item)">
<img src="../../../assets/wdxx.png" alt="">
<div class="content-box">
<div class="top">
XX向您推送了标准 GB 7258 - 2017
<div class="top" :title="item.msgContent">
{{item.msgContent}}
</div>
<div class="botton">
2022-04-04 12:00:00
{{item.sendTime}}
</div>
</div>
<div class="right">
@@ -23,18 +23,70 @@
</div>
</div>
</div>
<div v-else style="height: 300px;position: relative">
<JNoData/>
</div>
<JLoading :loading="loading">{{$t('dataLoading')}}</JLoading>
</div>
</template>
<script>
import { getAction, putAction, deleteAction } from '@/api/manage'
export default {
name: 'myNews'
name: 'myNews',
data() {
return {
url: {
list: '/sys/sysAnnouncementSend/getMyAnnouncementSend',
readAllMsg: 'sys/sysAnnouncementSend/read'
},
loading: false,
pageNo: 1,
pageSize: 4,
dataSource: []
}
},
mounted() {
this.getList()
},
methods: {
getList() {
let query = {
pageNo: this.pageNo,
pageSize: this.pageSize
}
this.loading = true
getAction(this.url.list, query).then((res) => {
if (res.success) {
this.dataSource = res.result.records || []
this.loading = false
} else {
this.loading = false
}
})
},
magClick(row) {
getAction(this.url.readAllMsg, { ids: row.id }).then((res) => {
})
this.$router.push({
path: '/system/MessageDetails',
query: row
})
},
moreClick() {
this.$router.push({
path: '/isps/userAnnouncement'
})
}
}
}
</script>
<style scoped lang="less">
.myNews-box {
width: 100%;
position: relative;
.header-text {
width: 100%;
@@ -52,6 +104,7 @@
font-weight: 400;
color: #9B9DA9;
margin-top: 6px;
cursor: pointer;
}
}
@@ -65,6 +118,7 @@
border-radius: 4px;
height: 68px;
margin-bottom: 14px;
cursor: pointer;
img {
width: 36px;