Commit 9105f67b authored by jingnan's avatar jingnan 👀

新首页修改

parent 2c66f6e9
......@@ -21,7 +21,7 @@
v-show="!['系统管理','应用中心','安全中心','运维中心'].includes(activeModel.name)"
ref="homeLink"
class="home tags-view-item"
:to="{ path: '/dee-task-center/workflow/task-center/home'}"
:to="{ path: '/dee-task-center/home?title=任务中心&showMenu=false'}"
tag="span"
>
<i class="el-icon-s-home" />
......
......@@ -14,7 +14,7 @@
</div>
</div>
<div class="detail-content">
<div class="detail-content" :class="basicData.canDeal?'':'disabledDeal'">
<div v-show="currTab && currTab.configName==='taskDetailBasicInfo'" class="background" style="margin-bottom: 8px">
<div class="flex-s">
<div v-if="basicData && basicData.basicInfo" class="task-name">{{ basicData.basicInfo.aliasName || basicData.basicInfo.name }}</div>
......@@ -131,7 +131,7 @@
typeName:currTab.webServerName,
layKey: currTab.configName
}"
:basic-data="{...basicData.businessObject,canDeal:basicData.canDeal}"
:basic-data="basicData.businessObject"
:basic-info="basicData.basicInfo"
/>
<component :is="currTab.comName" v-else-if="currTab && currTab.comName" :ref="currTab.name" v-bind="currTab.configParams ? JSON.parse(currTab.configParams) : {}" :process-instance-id="processInstanceId" :basic-data="basicData" />
......@@ -951,5 +951,11 @@ export default {
}
}
.disabledDeal{
.dee-tools,.table-row-btns,.el-button{
display: none;
}
}
}
</style>
......@@ -23,11 +23,16 @@ export default {
default: () => {
return []
}
},
activeTabName: {
type: String,
default: ''
}
},
data() {
const _that = this
return {
tabName: this.tabList[0].title
tabName: _that.activeTabName || this.tabList[0].title
}
},
methods: {
......
<template>
<div class="my-task">
<div class="home-my-task">
<div class="task-header">
<dee-form
<!-- <dee-form
ref="AddForm"
:form="searchForm"
:form-data="searchFormData"
form-btn-position="center"
:inline="true"
style="width: calc(100% - 80px);"
/>
/> -->
<div class="refresh">
<i class="el-icon-refresh" style="margin-right:10px" title="刷新" @click="refresh" />
<span @click="jumpList">更多<i class="el-icon-arrow-right" title="更多" /></span>
</div>
</div>
<el-scrollbar class="task-content">
<div v-for="(item, index) in taskList" :key="index" :class="['task-item', {'active-item': clickTask && clickTask.id === item.id,'unClaimed-type':item.unClaimedFlag}]" @click="goInfo(item)">
<!-- <div v-for="(item, index) in taskList" :key="index" :class="['task-item', {'active-item': clickTask && clickTask.id === item.id,'unClaimed-type':item.unClaimedFlag}]" @click="goInfo(item)">
<div class="task-item-label">
<div class="ti-label">
<div class="flex-start">
<span class="task-status" :style="{color: textColor[item.status] || '#2A75CE'}">【{{ item.status }}</span>
<!-- <img src="/images/doc.png" alt> -->
<!-- <img :src="showIcon(item.businessObject)" alt> -->
<!-- {{ $utils.getFlowName(item.workItemName) }} -->
<span class="task-name">{{ item.name }}</span>
</div>
<div class="task-item-time">
......@@ -31,7 +28,6 @@
</div>
<div class="task-item-info">
<div class="task-left">
<!-- <span :title="item.theme" class="theme">{{ item.theme }}</span> -->
<span class="title">
<span v-for="(attr, i) in item.showTitle" :key="`attr_${i}`">
{{ attr.title }}
......@@ -45,6 +41,19 @@
代理人:{{ item.proxyUserName }}
</div>
</div>
</div> -->
<div v-for="(item, index) in resLists" :key="index" :class="['task-item', {'active-item': clickTask && clickTask.taskType === item.taskType }]" @click="goInfo(item)">
<div class="task-item-label">
<div class="ti-label">
<div class="flex-start">
<span v-if="item.taskType" class="task-status" :style="{color: '#2A75CE'}">【{{ item.taskType }}</span>
<!-- <span class="task-name">{{ item.taskType }}</span> -->
</div>
<div class="task-item-num">
{{ item.taskCount }}
</div>
</div>
</div>
</div>
<div v-if="!initShowFont" class="more-bar">
<span v-if="taskList.length < pagination.total" class="more" @click="getMoreTaskData">加载更多</span>
......@@ -56,10 +65,11 @@
<script>
import { showIcon } from '@/utils/util'
import { getTemps } from '@/api/workflow/userSettings.js'
import { getUnfinishedTask, getFinishedTaskHome } from '@/api/workflow/taskCenter.js'
// import { getFinishedTaskHome } from '@/api/workflow/taskCenter.js'
import { getAllApplication } from '@/api/workflow/config'
import { getTaskCount } from '@/api/workspace.js'
import _get from 'lodash.get'
import { post } from '@/utils/http'
import { post, get } from '@/utils/http'
export default {
name: 'MyTask',
......@@ -133,7 +143,30 @@ export default {
}
],
clickTask: null,
type: '我的待办'
type: '我的待办',
quickAccessList: [
{
taskType: '检验任务',
type: 'CheckOut',
appId: 'myCheckTaskReceive'
},
{
taskType: '装配任务',
type: 'FitOut',
appId: 'myTaskReceive'
},
{
taskType: '适航任务',
type: 'DMIR',
appId: 'myAirTaskReceive'
}
]
}
},
computed: {
resLists() {
const validAccessList = this.quickAccessList.filter(item => item.taskCount)
return [...this.taskList, ...validAccessList]
}
},
watch: {
......@@ -151,13 +184,13 @@ export default {
created() {
},
mounted: function() {
this.getAllAppLists()
if (Object.keys(this.dict).length === 0) {
this.getDict(true)
}
// else {
// this.getTasks(1, this.type)
// this.getAllAppLists()
// if (Object.keys(this.dict).length === 0) {
// this.getDict(true)
// }
this.quickAccessList.forEach((item, index) => {
this.getCustomModules(index)
})
},
methods: {
// 获取所有app后取MOM对应的数据用于查询流程
......@@ -238,22 +271,35 @@ export default {
params.receiveTime2 = this.searchForm.receiveTimeRange[1] + ' 23:59:59'
}
const str = this.searchForm && this.searchForm.templateKey ? `processDefKey=${this.searchForm.templateKey}&` : ''
// const str = this.searchForm && this.searchForm.templateKey ? `processDefKey=${this.searchForm.templateKey}&` : ''
this.type = type
if (type === '我的待办') {
getUnfinishedTask(str + this.$utils.filterParams(params)).then(res => {
// getUnfinishedTask(str + this.$utils.filterParams(params)).then(res => {
// if (params.page === 1) {
// this.taskList = []
// }
// this.addData(res)
// })
get('/indexTask/task/todoStatistics').then(res => {
if (params.page === 1) {
this.taskList = []
}
this.addData(res)
this.addData(res.items, res.items.length)
})
}
if (type === '已办任务') {
getFinishedTaskHome(str + this.$utils.filterParams(params)).then(res => {
// getFinishedTaskHome(str + this.$utils.filterParams(params)).then(res => {
// if (params.page === 1) {
// this.taskList = []
// }
// this.addData(res.items.content, res.items.totalElements)
// })
get('/indexTask/task/finishStatistics').then(res => {
console.log('res: ', res)
if (params.page === 1) {
this.taskList = []
}
this.addData(res)
this.addData(res.items, res.items.length)
})
}
if (type === '我的请求') {
......@@ -261,37 +307,38 @@ export default {
if (params.page === 1) {
this.taskList = []
}
this.addData(res)
this.addData(res.items.content, res.items.totalElements)
})
}
},
addData(res) {
res.items.content.forEach((item) => {
let showTitle = []
if (item.bizExtInfo && item.bizExtInfo.bizAttrValues &&
item.bizExtInfo && item.bizExtInfo.bizConfig) {
const bizConfig = JSON.parse(item.bizExtInfo.bizConfig)
showTitle = this.showTitleParams(item.bizExtInfo.bizAttrValues, bizConfig[0].pending, (item.bizExtInfo && item.bizExtInfo.taskTitle) || '')
} else {
showTitle = [{ title: (item.bizExtInfo && item.bizExtInfo.taskTitle) || (item.bizExtInfo && item.bizExtInfo.processTitle) || '' }]
}
addData(data, totalElements) {
data.forEach((item) => {
// let showTitle = []
// if (item.bizExtInfo && item.bizExtInfo.bizAttrValues &&
// item.bizExtInfo && item.bizExtInfo.bizConfig) {
// const bizConfig = JSON.parse(item.bizExtInfo.bizConfig)
// showTitle = this.showTitleParams(item.bizExtInfo.bizAttrValues, bizConfig[0].pending, (item.bizExtInfo && item.bizExtInfo.taskTitle) || '')
// } else {
// showTitle = [{ title: (item.bizExtInfo && item.bizExtInfo.taskTitle) || (item.bizExtInfo && item.bizExtInfo.processTitle) || '' }]
// }
this.taskList.push({
id: item.id,
processInstanceId: item.processInstanceId,
name: item.aliasName || item.name,
showTitle,
theme: '',
// theme: theme,
title: item.bizExtInfo && item.bizExtInfo.taskTitle ? item.bizExtInfo.taskTitle : item.name,
time: item.startTime,
status: this.getStateDisplayName(item),
proxyUserName: item.proxyUserName || '',
expireTimeInMillis: item.expireTimeInMillis,
unClaimedFlag: item.unClaimedFlag
...item
// id: item.id,
// processInstanceId: item.processInstanceId,
// name: item.aliasName || item.name || item.taskType,
// showTitle,
// theme: '',
// // theme: theme,
// title: item.bizExtInfo && item.bizExtInfo.taskTitle ? item.bizExtInfo.taskTitle : item.name,
// time: item.startTime,
// status: this.getStateDisplayName(item),
// proxyUserName: item.proxyUserName || '',
// expireTimeInMillis: item.expireTimeInMillis,
// unClaimedFlag: item.unClaimedFlag
})
})
// this.goInfo(this.taskList.length ? this.taskList[0] : null)
this.pagination.total = res.items.totalElements
this.pagination.total = totalElements
},
showIcon(row) {
return showIcon(row)
......@@ -302,13 +349,51 @@ export default {
query: { title: '任务查询' }
})
},
getCustomModules(index) {
const params = {
type: this.quickAccessList[index].type
}
getTaskCount(params).then(res => {
this.$set(this.quickAccessList[index], 'taskCount', res.items.count)
})
},
goInfo(item) {
this.clickTask = item
// this.$emit('getTaskDetail', item ? { id: item.id, processInstanceId: item.processInstanceId, title: item.title } : null)
if (item.type === 'FitOut' || item.type === 'CheckOut' || item.type === 'DMIR') {
this.goModule(item)
} else {
this.$router.push({
path: '/dee-task-center/workflow/task-center/home',
query: {
DAO: '单个签审',
processDefKey: item.procDefKey,
taskDefinitionKey: item.taskKey,
type: this.type
}
// path: `/task-detail-${item.id}`,
// query: { id: item.id, insId: item.processInstanceId, title: item.title, showMenu: false }
})
}
},
async goModule(module) {
this.$router.push({
path: `/task-detail-${item.id}`,
query: { id: item.id, insId: item.processInstanceId, title: item.title, showMenu: false }
path: '/dee-mes/taskReception',
query: {
title: module.taskType,
showMenu: false,
showTag: 'false'
}
})
this.$store.dispatch('menu/activeModel', {
appId: module.appId,
pageInfo: {
title: module.taskType,
path: '/dee-mes/taskReception'
}
})
this.$store.dispatch('app/closeSideBar', false)
},
getMoreTaskData() {
if (this.clickNum !== this.pageCount) {
......@@ -325,7 +410,7 @@ export default {
</script>
<style lang="scss" >
.my-task {
.home-my-task {
height: 100%;
background-color: #ffffff;
padding: 10px;
......@@ -333,8 +418,9 @@ export default {
// border: 1px solid #D9D9D9;
position: relative;
.task-header{
display: flex;
justify-content: flex-start;
// display: flex;
height:20px ;
// justify-content: flex-start;
.dee-form2{
.el-form-item{
margin-bottom:10px;
......@@ -344,7 +430,7 @@ export default {
.refresh{
position: absolute;
right: 9px;
top: 20px;
top: 10px;
z-index: 10;
span{
font-size:12px;
......@@ -408,6 +494,13 @@ export default {
text-align: right;
margin-top: 6px;
}
.task-item-num {
text-align: right;
margin-top: 6px;
font-weight: 900;
font-size: 14px;
color:rgb(42, 117, 206);
}
.title {
// max-width: calc(-60px + 100%);
text-overflow: ellipsis;
......
......@@ -5,46 +5,29 @@
* @FilePath: applications/dee-task-center/src/views/home/compontents/apply-app.vue
*/
<template>
<div class="personal-assistant">
<div class="apply-app">
<el-card class="box-card">
<el-tabs v-model="activeName" class="tabCon" @tab-click="handleClick">
<el-tab-pane label="快速访问" name="first">
<div class="text div-card">
<div v-for="(item, i) in quickAccessList" :key="i" class="card" @click="goModule(item)">
<el-badge :value="item.total" :max="99" class="item">
<div class="icon">
<img :src="item.icon" alt="Icon">
</div>
</el-badge>
<div class="title">
{{ item.name }}
</div>
</div>
<div slot="header" class="clearfix">
<span>个人助手</span>
</div>
<div class="text item div-card">
<div v-for="(item, i) in cardList" :key="i" class="card" @click="handClick(item.title)">
<div class="icon">
<img :src="item.icon" alt="Icon">
</div>
</el-tab-pane>
<el-tab-pane label="个人助手" name="second">
<div class="text div-card">
<div v-for="(item, i) in cardList" :key="i" class="card" @click="handleClick(item.title)">
<div class="icon">
<img :src="item.icon" alt="Icon">
</div>
<div class="title">
{{ item.title }}
</div>
</div>
<div class="title">
{{ item.title }}
</div>
</el-tab-pane>
</el-tabs>
</div>
</div>
</el-card>
</div>
</template>
<script>
import { getTaskCount } from '@/api/workspace.js'
export default {
components: {},
data() {
return {
activeName: 'first',
cardList: [
{
icon: '/icons/home/biaozhunguifan.png',
......@@ -54,22 +37,7 @@ export default {
icon: '/icons/home/helpBook.png',
title: '帮助手册'
}
],
quickAccessList: [
{
icon: '/icons/home/jyrw.png',
name: '检验任务'
},
{
icon: '/icons/home/zprw.png',
name: '装配任务'
},
{
icon: '/icons/home/shrw.png',
name: '适航任务'
}
],
module: {}
]
}
},
computed: {},
......@@ -77,66 +45,19 @@ export default {
created() {
// 初始化数据
},
mounted() {
this.getCustomModules('检验任务', 0)
this.getCustomModules('装配任务', 1)
this.getCustomModules('适航任务', 2)
},
methods: {
handleClick(e) {
console.log('e: ', e)
},
getCustomModules(data, index) {
const params = {}
if (data === '装配任务') {
params.type = 'FitOut'
this.quickAccessList[index].appId = 'myTaskReceive'
} else if (data === '检验任务') {
params.type = 'CheckOut'
this.quickAccessList[index].appId = 'myCheckTaskReceive'
} else {
params.type = 'DMIR'
this.quickAccessList[index].appId = 'myAirTaskReceive'
}
getTaskCount(params).then(res => {
this.$set(this.quickAccessList[index], 'total', res.items.count)
})
},
async goModule(module) {
this.$router.push({
path: '/dee-mes/taskReception',
query: {
title: module.name,
showMenu: false,
showTag: 'false'
}
})
this.$store.dispatch('menu/activeModel', {
appId: module.appId,
pageInfo: {
title: module.name,
path: '/dee-mes/taskReception'
}
})
this.$store.dispatch('app/closeSideBar', false)
}
}
}
</script>
<style lang='scss'>
.personal-assistant {
.apply-app {
height: 100%;
.box-card {
height: 100%;
.el-card__body {
height: 100%;
.tabCon{
height: 100%;
}
.el-tabs__content{
height: calc(100% - 60px);
}
.el-card__body {
height: calc(100% - 90px);
}
}
......@@ -147,6 +68,7 @@ export default {
grid-template-columns: repeat(auto-fill, calc((100% - 60px) / 4)); // 自动填充一行的卡片个数
justify-content: space-between; // 卡片两端对齐,与flex的该属于一致
grid-gap: 20px;
// padding-bottom: 10px;
.card {
display: flex;
......@@ -162,11 +84,11 @@ export default {
transition: box-shadow 0.3s ease;
border: 1px solid #C7C7C7;
padding: 5px;
.icon{
img{
width: 50px;
}
}
// .icon{
// img{
// width: 30px;
// }
// }
.title {
text-align: center;
width: calc(100% - 10px);
......
<template>
<div class="TaskCenter">
<commonTabHeader :tab-list="tabList" :active-name="activeName" @changActiveName="changActiveName" />
<commonTabHeader :tab-list="tabList" :active-tab-name="activeName" @changActiveName="changActiveName" />
<div class="task-center-content">
<singleSignOff v-if="activeName === '单个签审'" />
<bulkSigning v-if="activeName === '批量签审'" />
......@@ -22,6 +22,7 @@ export default {
// InitiatedProcess
},
data() {
const _that = this
return {
tabList: [
{
......@@ -33,7 +34,7 @@ export default {
icon: '/images/common/batchEdit.png'
}
],
activeName: '单个签审'
activeName: _that.$route.query && _that.$route.query.DAO || '单个签审'
}
},
methods: {
......
......@@ -54,12 +54,16 @@ export default {
this.clickTask = item
// this.$emit('goModuleTaskDetail', item)
this.$router.push({
path: '/dee-task-center/taskList?title=批量签审',
// path: '/dee-task-center/taskList?title=批量签审',
path: '/dee-task-center/workflow/task-center/home',
query: {
router: item.router,
taskCount: item.taskCount,
taskKey: item.taskKey,
taskType: item.taskType
DAO: '批量签审',
processDefKey: item.procDefKey,
taskDefinitionKey: item.taskKey
// router: item.router,
// taskCount: item.taskCount,
// taskKey: item.taskKey,
// taskType: item.taskType
}
})
}
......
......@@ -56,12 +56,13 @@
<script>
import { showIcon } from '@/utils/util'
import { getTemps } from '@/api/workflow/userSettings.js'
import { getUnfinishedTask } from '@/api/workflow/taskCenter.js'
import { getUnfinishedTask, getFinishedTaskHome } from '@/api/workflow/taskCenter.js'
import { getAllApplication } from '@/api/workflow/config'
import _get from 'lodash.get'
export default {
name: 'MyTask',
data() {
const _that = this
return {
statusColor: {
'审批中': '#C3A146',
......@@ -149,7 +150,8 @@ export default {
}
],
clickTask: null,
processDefKey: []
processDefKey: [],
dataType: _that.$route.query ? _that.$route.query.type : ''
}
},
created() {
......@@ -237,8 +239,9 @@ export default {
params.receiveTime2 = this.searchForm.receiveTimeRange[1] + ' 23:59:59'
}
const str = this.processDefKey && this.processDefKey.length ? this.processDefKey.map(x => `processDefKey=${x}`).join('&') + '&' : ''
getUnfinishedTask(str + this.$utils.filterParams(params)).then(res => {
const str = this.processDefKey && this.processDefKey.length ? this.processDefKey.map(x => `processDefKey=${x}`).join('&') + '&' : this.$route.query ? `processDefKey=${this.$route.query.processDefKey || ''}&taskDefinitionKey=${this.$route.query.taskDefinitionKey || ''}&` : ''
const requestUrl = this.dataType === '已办任务' ? getFinishedTaskHome : getUnfinishedTask
requestUrl(str + this.$utils.filterParams(params)).then(res => {
if (params.page === 1) {
this.taskList = []
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment