mirror of
https://github.com/kuaifan/dootask.git
synced 2026-03-17 19:23:26 +00:00
no message
This commit is contained in:
parent
82d6f0b533
commit
75bc7f2a77
2
resources/assets/js/app.js
vendored
2
resources/assets/js/app.js
vendored
@ -50,6 +50,7 @@ import {
|
|||||||
Dropdown,
|
Dropdown,
|
||||||
DropdownMenu,
|
DropdownMenu,
|
||||||
DropdownItem,
|
DropdownItem,
|
||||||
|
Progress,
|
||||||
} from 'element-ui';
|
} from 'element-ui';
|
||||||
|
|
||||||
Vue.component('EAvatar', Avatar);
|
Vue.component('EAvatar', Avatar);
|
||||||
@ -58,6 +59,7 @@ Vue.component('EPopover', Popover);
|
|||||||
Vue.component('EDropdown', Dropdown);
|
Vue.component('EDropdown', Dropdown);
|
||||||
Vue.component('EDropdownMenu', DropdownMenu);
|
Vue.component('EDropdownMenu', DropdownMenu);
|
||||||
Vue.component('EDropdownItem', DropdownItem);
|
Vue.component('EDropdownItem', DropdownItem);
|
||||||
|
Vue.component('EProgress', Progress);
|
||||||
|
|
||||||
const originalPush = VueRouter.prototype.push
|
const originalPush = VueRouter.prototype.push
|
||||||
VueRouter.prototype.push = function push(location) {
|
VueRouter.prototype.push = function push(location) {
|
||||||
|
|||||||
15
resources/assets/js/functions/web.js
vendored
15
resources/assets/js/functions/web.js
vendored
@ -441,10 +441,17 @@
|
|||||||
} else if (typeof config === "string") {
|
} else if (typeof config === "string") {
|
||||||
config = {content: config};
|
config = {content: config};
|
||||||
}
|
}
|
||||||
config.title = $A.L(config.title || (typeof config.render === 'undefined' ? '温馨提示' : ''));
|
config.title = config.title || (typeof config.render === 'undefined' ? '温馨提示' : '');
|
||||||
config.content = $A.L(config.content || '');
|
config.content = config.content || '';
|
||||||
config.okText = $A.L(config.okText || '确定');
|
config.okText = config.okText || '确定';
|
||||||
config.cancelText = $A.L(config.cancelText || '取消');
|
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;
|
return config;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@ -22,24 +22,24 @@
|
|||||||
v-for="(item, key) in projectLists"
|
v-for="(item, key) in projectLists"
|
||||||
:key="key"
|
:key="key"
|
||||||
@click="toggleRoute('project', {projectId: item.id})">
|
@click="toggleRoute('project', {projectId: item.id})">
|
||||||
|
<div class="project-item">
|
||||||
|
<div class="item-left">
|
||||||
<div class="project-h1">
|
<div class="project-h1">
|
||||||
{{item.name}}
|
<span>{{item.name}}</span>
|
||||||
|
<em v-if="item.task_my_num > 0">{{item.task_my_num}}</em>
|
||||||
</div>
|
</div>
|
||||||
<div class="project-h2">
|
<div class="project-h2">
|
||||||
{{item.desc}}
|
{{item.desc}}
|
||||||
</div>
|
</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>
|
||||||
<div class="project-footer">
|
<div v-if="item.task_num > 0" class="item-right" @click.stop="modalPercent(item)">
|
||||||
<div class="footer-percent" @click.stop="modalPercent(item)">
|
<EProgress
|
||||||
<i class="taskfont"></i>
|
type="circle"
|
||||||
{{item.task_complete}}<span><em>/</em>{{item.task_num}}</span>
|
color="#8bcf70"
|
||||||
</div>
|
:percentage="item.task_percent"
|
||||||
<div class="footer-user">
|
:status="item.task_percent >= 100 ? 'success' : ''"
|
||||||
<UserAvatar v-for="(uid, ukey) in item.user_simple" :key="ukey" :userid="uid" :size="26" :borderWitdh="2"/>
|
:width="60"
|
||||||
<div v-if="item.user_count > 3" class="footer-user-more">{{item.user_count > 99 ? '99+' : `${item.user_count}+`}}</div>
|
:stroke-width="5"/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
@ -123,9 +123,16 @@ export default {
|
|||||||
},
|
},
|
||||||
|
|
||||||
modalPercent(item) {
|
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({
|
$A.modalInfo({
|
||||||
title: `${item.name} 项目进度`,
|
language: false,
|
||||||
content: `总进度:${item.task_complete}/${item.task_num}<br/>我的任务:${item.task_my_complete}/${item.task_my_num}`
|
title: this.$L(`${item.name} 项目进度`),
|
||||||
|
content,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -860,7 +860,8 @@ export default {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
$A.modalInfo({
|
$A.modalInfo({
|
||||||
title: '项目描述',
|
language: false,
|
||||||
|
title: this.$L('项目描述'),
|
||||||
content: this.projectData.desc
|
content: this.projectData.desc
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|||||||
1
resources/assets/sass/element.scss
vendored
1
resources/assets/sass/element.scss
vendored
@ -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-menu";
|
||||||
@import "~element-ui/packages/theme-chalk/src/dropdown-item";
|
@import "~element-ui/packages/theme-chalk/src/dropdown-item";
|
||||||
@import "~element-ui/packages/theme-chalk/src/notification";
|
@import "~element-ui/packages/theme-chalk/src/notification";
|
||||||
|
@import "~element-ui/packages/theme-chalk/src/progress";
|
||||||
|
|
||||||
|
|
||||||
.el-dropdown-menu__item {
|
.el-dropdown-menu__item {
|
||||||
|
|||||||
@ -79,7 +79,16 @@
|
|||||||
margin: 1px;
|
margin: 1px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.project-item {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
.item-left {
|
||||||
|
flex: 1;
|
||||||
|
width: 0;
|
||||||
.project-h1 {
|
.project-h1 {
|
||||||
|
display: flex;
|
||||||
|
align-items: flex-start;
|
||||||
|
> span {
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
line-height: 22px;
|
line-height: 22px;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
@ -90,6 +99,26 @@
|
|||||||
-webkit-line-clamp: 2;
|
-webkit-line-clamp: 2;
|
||||||
-webkit-box-orient: vertical;
|
-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 {
|
.project-h2 {
|
||||||
margin-top: 8px;
|
margin-top: 8px;
|
||||||
line-height: 22px;
|
line-height: 22px;
|
||||||
@ -99,63 +128,24 @@
|
|||||||
display: -webkit-box;
|
display: -webkit-box;
|
||||||
-webkit-line-clamp: 2;
|
-webkit-line-clamp: 2;
|
||||||
-webkit-box-orient: vertical;
|
-webkit-box-orient: vertical;
|
||||||
}
|
color: #999999;
|
||||||
.project-percent {
|
|
||||||
margin-top: 12px;
|
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
.item-right {
|
||||||
}
|
|
||||||
.project-footer {
|
|
||||||
margin-top: 12px;
|
|
||||||
margin-bottom: -2px;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
.footer-percent {
|
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
margin-right: 12px;
|
|
||||||
min-width: 28px;
|
|
||||||
text-align: left;
|
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
.taskfont {
|
margin-left: 28px;
|
||||||
font-size: 14px;
|
.is-success {
|
||||||
padding-right: 4px;
|
opacity: 0.5;
|
||||||
}
|
.el-icon-check {
|
||||||
> span {
|
font-size: 28px;
|
||||||
opacity: 0.7;
|
font-weight: 900;
|
||||||
> em {
|
|
||||||
padding: 0 1px;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.footer-user {
|
|
||||||
flex: 1;
|
|
||||||
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;
|
color: $primary-color;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user