no message

This commit is contained in:
kuaifan 2022-05-29 09:05:50 +08:00
parent 82d6f0b533
commit 75bc7f2a77
6 changed files with 101 additions and 93 deletions

View File

@ -50,6 +50,7 @@ import {
Dropdown,
DropdownMenu,
DropdownItem,
Progress,
} from 'element-ui';
Vue.component('EAvatar', Avatar);
@ -58,6 +59,7 @@ Vue.component('EPopover', Popover);
Vue.component('EDropdown', Dropdown);
Vue.component('EDropdownMenu', DropdownMenu);
Vue.component('EDropdownItem', DropdownItem);
Vue.component('EProgress', Progress);
const originalPush = VueRouter.prototype.push
VueRouter.prototype.push = function push(location) {

View File

@ -441,10 +441,17 @@
} else if (typeof config === "string") {
config = {content: config};
}
config.title = $A.L(config.title || (typeof config.render === 'undefined' ? '温馨提示' : ''));
config.content = $A.L(config.content || '');
config.okText = $A.L(config.okText || '确定');
config.cancelText = $A.L(config.cancelText || '取消');
config.title = config.title || (typeof config.render === 'undefined' ? '温馨提示' : '');
config.content = config.content || '';
config.okText = config.okText || '确定';
config.cancelText = config.cancelText || '取消';
if (config.language !== false) {
delete config.language;
config.title = $A.L(config.title);
config.content = $A.L(config.content);
config.okText = $A.L(config.okText);
config.cancelText = $A.L(config.cancelText);
}
return config;
},

View File

@ -22,24 +22,24 @@
v-for="(item, key) in projectLists"
:key="key"
@click="toggleRoute('project', {projectId: item.id})">
<div class="project-h1">
{{item.name}}
</div>
<div class="project-h2">
{{item.desc}}
</div>
<div class="project-percent">
<Progress :percent="item.task_my_percent" :stroke-width="5" hide-info />
<div class="percent-info" @click.stop="modalPercent(item)">{{item.task_my_complete}}<span><em>/</em>{{item.task_my_num}}</span></div>
</div>
<div class="project-footer">
<div class="footer-percent" @click.stop="modalPercent(item)">
<i class="taskfont">&#xe6e4;</i>
{{item.task_complete}}<span><em>/</em>{{item.task_num}}</span>
<div class="project-item">
<div class="item-left">
<div class="project-h1">
<span>{{item.name}}</span>
<em v-if="item.task_my_num > 0">{{item.task_my_num}}</em>
</div>
<div class="project-h2">
{{item.desc}}
</div>
</div>
<div class="footer-user">
<UserAvatar v-for="(uid, ukey) in item.user_simple" :key="ukey" :userid="uid" :size="26" :borderWitdh="2"/>
<div v-if="item.user_count > 3" class="footer-user-more">{{item.user_count > 99 ? '99+' : `${item.user_count}+`}}</div>
<div v-if="item.task_num > 0" class="item-right" @click.stop="modalPercent(item)">
<EProgress
type="circle"
color="#8bcf70"
:percentage="item.task_percent"
:status="item.task_percent >= 100 ? 'success' : ''"
:width="60"
:stroke-width="5"/>
</div>
</div>
</li>
@ -123,9 +123,16 @@ export default {
},
modalPercent(item) {
let content = `<p><strong>${this.$L('总进度')}</strong></p>`
content += `<p>${this.$L('总数量')}: ${item.task_num}</p>`
content += `<p>${this.$L('已完成')}: ${item.task_complete}</p>`
content += `<p style="margin-top:12px"><strong>${this.$L('我的任务')}</strong></p>`
content += `<p>${this.$L('总数量')}: ${item.task_my_num}</p>`
content += `<p>${this.$L('已完成')}: ${item.task_my_complete}</p>`
$A.modalInfo({
title: `${item.name} 项目进度`,
content: `总进度:${item.task_complete}/${item.task_num}<br/>我的任务:${item.task_my_complete}/${item.task_my_num}`
language: false,
title: this.$L(`${item.name} 项目进度`),
content,
});
}
}

View File

@ -860,7 +860,8 @@ export default {
return;
}
$A.modalInfo({
title: '项目描述',
language: false,
title: this.$L('项目描述'),
content: this.projectData.desc
})
},

View File

@ -14,6 +14,7 @@ $--dropdown-menuItem-hover-color: #606266;
@import "~element-ui/packages/theme-chalk/src/dropdown-menu";
@import "~element-ui/packages/theme-chalk/src/dropdown-item";
@import "~element-ui/packages/theme-chalk/src/notification";
@import "~element-ui/packages/theme-chalk/src/progress";
.el-dropdown-menu__item {

View File

@ -79,80 +79,70 @@
margin: 1px;
}
}
.project-h1 {
font-size: 16px;
line-height: 22px;
font-weight: 600;
word-break: break-all;
text-overflow: ellipsis;
overflow: hidden;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
.project-h2 {
margin-top: 8px;
line-height: 22px;
word-break: break-all;
text-overflow: ellipsis;
overflow: hidden;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
.project-percent {
margin-top: 12px;
.project-item {
display: flex;
align-items: center;
.percent-info {
margin-left: 12px;
min-width: 28px;
text-align: right;
> span {
opacity: 0.7;
> em {
padding: 0 1px;
font-style: normal;
}
}
}
}
.project-footer {
margin-top: 12px;
margin-bottom: -2px;
display: flex;
align-items: center;
.footer-percent {
flex-shrink: 0;
margin-right: 12px;
min-width: 28px;
text-align: left;
display: flex;
align-items: center;
.taskfont {
font-size: 14px;
padding-right: 4px;
}
> span {
opacity: 0.7;
> em {
padding: 0 1px;
font-style: normal;
}
}
}
.footer-user {
.item-left {
flex: 1;
width: 0;
.project-h1 {
display: flex;
align-items: flex-start;
> span {
font-size: 16px;
line-height: 22px;
font-weight: 600;
word-break: break-all;
text-overflow: ellipsis;
overflow: hidden;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
> em {
margin-top: 1px;
margin-left: 6px;
flex-shrink: 0;
font-style: normal;
display: inline-block;
background-color: rgba(253, 156, 155, 0.15);
color: #FF7559;
padding: 0 5px;
min-width: 10px;
height: 20px;
line-height: 20px;
text-align: center;
border-radius: 10px;
box-sizing: content-box;
font-weight: 500;
font-size: 14px;
white-space: nowrap;
}
}
.project-h2 {
margin-top: 8px;
line-height: 22px;
word-break: break-all;
text-overflow: ellipsis;
overflow: hidden;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
color: #999999;
}
}
.item-right {
flex-shrink: 0;
display: flex;
align-items: center;
justify-content: flex-end;
.common-avatar {
margin-left: -4px;
}
.footer-user-more {
padding-left: 6px;
font-weight: 500;
color: $primary-color;
margin-left: 28px;
.is-success {
opacity: 0.5;
.el-icon-check {
font-size: 28px;
font-weight: 900;
color: $primary-color;
}
}
}
}