commit
a193a2be8c
6 changed files with 940 additions and 88 deletions
@ -0,0 +1,38 @@ |
|||||||
|
<template> |
||||||
|
<div class="bigbox"> |
||||||
|
<!-- <div class="menu"></div> --> |
||||||
|
<div class="content"><Content></Content></div> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script> |
||||||
|
import Content from './task_content/TaskContent.vue' |
||||||
|
export default { |
||||||
|
props: ['iscollapse'], |
||||||
|
components: { |
||||||
|
Content |
||||||
|
} |
||||||
|
} |
||||||
|
</script> |
||||||
|
|
||||||
|
<style lang="less" scoped> |
||||||
|
.bigbox { |
||||||
|
margin: 1rem 4rem 0 2rem; |
||||||
|
display: flex; |
||||||
|
.menu { |
||||||
|
width: 15%; |
||||||
|
height: 80vh; |
||||||
|
// background-color: aqua; |
||||||
|
} |
||||||
|
.content { |
||||||
|
width: 100%; |
||||||
|
height: 80vh; |
||||||
|
//background-color: antiquewhite; |
||||||
|
} |
||||||
|
.activecontent { |
||||||
|
width: 85%; |
||||||
|
height: 80vh; |
||||||
|
// background-color: antiquewhite; |
||||||
|
} |
||||||
|
} |
||||||
|
</style> |
@ -0,0 +1,228 @@ |
|||||||
|
<template> |
||||||
|
<div class="bigcontent"> |
||||||
|
<div class="c_header"> |
||||||
|
<div class="header_left"> |
||||||
|
<span> |
||||||
|
<i class="el-icon-s-order"></i> |
||||||
|
部门任务 |
||||||
|
</span> |
||||||
|
<span> |
||||||
|
<i class="el-icon-s-management"></i> |
||||||
|
需求,任务 |
||||||
|
</span> |
||||||
|
<span class="left_smallbox"></span> |
||||||
|
</div> |
||||||
|
<div class="header_right"> |
||||||
|
<span class="right_box"></span> |
||||||
|
<span class="right_box"></span> |
||||||
|
<span class="right_box"></span> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="c_content"> |
||||||
|
<div class="content_box" v-for="item in TotalData" :key="item.id"> |
||||||
|
<div class="status_title"> |
||||||
|
<HeaderCard |
||||||
|
:title="item.status" |
||||||
|
:color="item.color" |
||||||
|
:total="item.total" |
||||||
|
></HeaderCard> |
||||||
|
</div> |
||||||
|
<div class="status_content" @scroll="loadMore(item.id)" ref="box"> |
||||||
|
<ContenCard |
||||||
|
:color="item.color" |
||||||
|
:projectData="item.data" |
||||||
|
ref="childCard" |
||||||
|
></ContenCard> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script> |
||||||
|
import ContenCard from './content_card/ContentCard.vue' |
||||||
|
import HeaderCard from './content_card/HeaderCard.vue' |
||||||
|
// import { getTaskAdmin } from '@/api/manage.js' |
||||||
|
import { getAction, getFileAccessHttpUrl } from '@/api/manage.js' |
||||||
|
export default { |
||||||
|
components: { |
||||||
|
ContenCard, |
||||||
|
HeaderCard |
||||||
|
}, |
||||||
|
data() { |
||||||
|
return { |
||||||
|
TotalData: [ |
||||||
|
{ |
||||||
|
id: 0, |
||||||
|
status: '未发布', |
||||||
|
statusNum: 0, |
||||||
|
color: 'black', |
||||||
|
data: [], |
||||||
|
total: '', |
||||||
|
currentPage: 1 |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 1, |
||||||
|
status: '开发中', |
||||||
|
statusNum: 1, |
||||||
|
color: 'blue', |
||||||
|
data: [], |
||||||
|
total: '', |
||||||
|
currentPage: 1 |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 2, |
||||||
|
status: '已提交', |
||||||
|
statusNum: 3, |
||||||
|
color: 'orange', |
||||||
|
data: [], |
||||||
|
total: '', |
||||||
|
currentPage: 1 |
||||||
|
}, |
||||||
|
{ |
||||||
|
id: 3, |
||||||
|
status: '已审核', |
||||||
|
color: 'green', |
||||||
|
statusNum: 4, |
||||||
|
data: [], |
||||||
|
total: '', |
||||||
|
currentPage: 1 |
||||||
|
} |
||||||
|
], |
||||||
|
url: { |
||||||
|
list: '/task/task/list', |
||||||
|
queryById: 'task/task/queryById' |
||||||
|
}, |
||||||
|
loading: true, // 加载中 |
||||||
|
lastPage: false // 是否最后一页 |
||||||
|
} |
||||||
|
}, |
||||||
|
methods: { |
||||||
|
// 分类获取全部数据 |
||||||
|
async getAllData(index) { |
||||||
|
const res = await getAction(this.url.list, { |
||||||
|
workStatus: this.TotalData[index].statusNum |
||||||
|
}) |
||||||
|
if (res.success) { |
||||||
|
this.TotalData[index].data = res.result.records |
||||||
|
this.TotalData[index].total = res.result.total |
||||||
|
this.TotalData[index].data.forEach((element) => { |
||||||
|
element.headpic = getFileAccessHttpUrl(element.headpic) |
||||||
|
element.taskPic = getFileAccessHttpUrl(element.taskPic) |
||||||
|
}) |
||||||
|
} else { |
||||||
|
this.$message.warning(res.message) |
||||||
|
} |
||||||
|
console.log(this.TotalData[1].data) |
||||||
|
}, |
||||||
|
|
||||||
|
// 分页获取 |
||||||
|
async getDataByPage(index, current) { |
||||||
|
this.loading = true |
||||||
|
if (!this.lastPage) { |
||||||
|
const res = await getAction(this.url.list, { |
||||||
|
workStatus: this.TotalData[index].statusNum, |
||||||
|
pageNo: current |
||||||
|
}) |
||||||
|
this.TotalData[index].data = [ |
||||||
|
...this.TotalData[index].data, |
||||||
|
...res.result.records |
||||||
|
] |
||||||
|
if (res.result.records.length < 10) { |
||||||
|
this.lastPage = true |
||||||
|
} |
||||||
|
} |
||||||
|
}, |
||||||
|
// 滑动到底部加载更多 |
||||||
|
loadMore(index) { |
||||||
|
let scrollDom = this.$refs.box |
||||||
|
if ( |
||||||
|
scrollDom[index].clientHeight + scrollDom[index].scrollTop + 1 >= |
||||||
|
scrollDom[index].scrollHeight |
||||||
|
) { |
||||||
|
scrollDom[index].scrollTop -= 10 |
||||||
|
this.TotalData[index].currentPage = |
||||||
|
this.TotalData[index].currentPage + 1 |
||||||
|
this.getDataByPage(index, this.TotalData[index].currentPage) |
||||||
|
} |
||||||
|
}, |
||||||
|
|
||||||
|
// 点击头像获取任务负责人信息 |
||||||
|
async getHeadInformation() { |
||||||
|
// const res=await |
||||||
|
} |
||||||
|
}, |
||||||
|
created() { |
||||||
|
this.getAllData(0) |
||||||
|
this.getAllData(1) |
||||||
|
this.getAllData(2) |
||||||
|
this.getAllData(3) |
||||||
|
} |
||||||
|
} |
||||||
|
</script> |
||||||
|
|
||||||
|
<style lang="less" scoped> |
||||||
|
.bigcontent { |
||||||
|
width: 100%; |
||||||
|
height: 100%; |
||||||
|
.c_header { |
||||||
|
display: flex; |
||||||
|
justify-content: space-between; |
||||||
|
width: 100%; |
||||||
|
height: 6%; |
||||||
|
// background-color: aqua; |
||||||
|
.header_left { |
||||||
|
display: flex; |
||||||
|
justify-content: space-between; |
||||||
|
height: 100%; |
||||||
|
width: 20%; |
||||||
|
line-height: 2.2rem; |
||||||
|
font-size: 16px; |
||||||
|
color: #666666; |
||||||
|
.left_smallbox { |
||||||
|
width: 1rem; |
||||||
|
height: 0.5rem; |
||||||
|
line-height: 2.2rem; |
||||||
|
// background-color: #d9d9d9; |
||||||
|
} |
||||||
|
} |
||||||
|
.header_right { |
||||||
|
width: 30%; |
||||||
|
height: 100%; |
||||||
|
display: flex; |
||||||
|
justify-content: space-between; |
||||||
|
.right_box { |
||||||
|
display: inline-block; |
||||||
|
width: 30%; |
||||||
|
height: 100%; |
||||||
|
background: #d9d9d9; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.c_content { |
||||||
|
display: flex; |
||||||
|
justify-content: space-between; |
||||||
|
width: 100%; |
||||||
|
height: 100%; |
||||||
|
//background-color: aquamarine; |
||||||
|
.content_box { |
||||||
|
width: 24%; |
||||||
|
height: 100%; |
||||||
|
//background-color: rgb(230, 186, 129); |
||||||
|
.status_title { |
||||||
|
height: 8%; |
||||||
|
margin-bottom: 2%; |
||||||
|
} |
||||||
|
.status_content { |
||||||
|
height: 90%; |
||||||
|
overflow-y: scroll; |
||||||
|
// background-color: rgb(224, 163, 163); |
||||||
|
} |
||||||
|
} |
||||||
|
// 滚动条消失 |
||||||
|
.status_content::-webkit-scrollbar { |
||||||
|
display: none; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
</style> |
@ -0,0 +1,501 @@ |
|||||||
|
<template> |
||||||
|
<div class="cardcard"> |
||||||
|
<template v-for="item in projectData"> |
||||||
|
<div class="card_content" :key="item.id"> |
||||||
|
<el-card |
||||||
|
class="little_card" |
||||||
|
:class=" |
||||||
|
color == 'black' |
||||||
|
? { card_black: true } |
||||||
|
: color == 'blue' |
||||||
|
? { card_blue: true } |
||||||
|
: color == 'orange' |
||||||
|
? { card_orange: true } |
||||||
|
: { card_green: true } |
||||||
|
" |
||||||
|
> |
||||||
|
<div style="padding: 0rem 0rem 0 1.5rem"> |
||||||
|
<div class="admin_title"> |
||||||
|
<template> |
||||||
|
<el-checkbox class="check"></el-checkbox> |
||||||
|
</template> |
||||||
|
<!-- 任务总述 --> |
||||||
|
<el-tooltip |
||||||
|
v-if="item.taskName.length > 13" |
||||||
|
:content="item.taskName" |
||||||
|
placement="top" |
||||||
|
> |
||||||
|
<span> |
||||||
|
{{ |
||||||
|
item.taskName.length > 13 |
||||||
|
? item.taskName.slice(0, 11) + '...' |
||||||
|
: item.taskName |
||||||
|
}} |
||||||
|
</span> |
||||||
|
</el-tooltip> |
||||||
|
<span v-else> |
||||||
|
{{ |
||||||
|
item.taskName.length > 18 |
||||||
|
? item.taskName.slice(0, 17) + '...' |
||||||
|
: item.taskName |
||||||
|
}} |
||||||
|
</span> |
||||||
|
|
||||||
|
<!-- 头像 --> |
||||||
|
<span class="pic" @click="LookPeople(item.managerUsers)"> |
||||||
|
<el-tooltip |
||||||
|
:content="item.managerUsers_dictText" |
||||||
|
placement="top" |
||||||
|
> |
||||||
|
<img |
||||||
|
:src="item.headpic" |
||||||
|
alt="" |
||||||
|
style=" |
||||||
|
width: 100%; |
||||||
|
height: 100%; |
||||||
|
cursor: pointer; |
||||||
|
border-radius: 50%; |
||||||
|
" |
||||||
|
/> |
||||||
|
</el-tooltip> |
||||||
|
</span> |
||||||
|
</div> |
||||||
|
|
||||||
|
<!-- 项目内容/判断类型(文字?文件?照片) --> |
||||||
|
<div class="substance"> |
||||||
|
<div v-if="item.contentType == 'text'"> |
||||||
|
{{ item.taskDescribe }} |
||||||
|
</div> |
||||||
|
<!-- 类型是图片 --> |
||||||
|
<div v-else-if="item.contentType == 'image'" class="sub_image"> |
||||||
|
<img |
||||||
|
:src="item.taskPic" |
||||||
|
alt="" |
||||||
|
style=" |
||||||
|
width: 100%; |
||||||
|
height: 100%; |
||||||
|
border-radius: 10px 10px 10px 10px; |
||||||
|
" |
||||||
|
/> |
||||||
|
</div> |
||||||
|
<!-- 类型是文档 --> |
||||||
|
<div v-else-if="item.contentType == 'file'" class="sub_document"> |
||||||
|
<div class="document"> |
||||||
|
<iframe |
||||||
|
:src="item.taskFile" |
||||||
|
frameborder="0" |
||||||
|
style=" |
||||||
|
width: 100%; |
||||||
|
height: 100%; |
||||||
|
border-radius: 10px 10px 10px 10px; |
||||||
|
" |
||||||
|
></iframe> |
||||||
|
</div> |
||||||
|
<div class="s_operate"> |
||||||
|
<div>点击查看</div> |
||||||
|
<div>上传文档</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div></div> |
||||||
|
</div> |
||||||
|
<div class="time"> |
||||||
|
<i class="el-icon-date" style="font-size: 18px"></i> |
||||||
|
<!-- <span>项目工期:</span> --> |
||||||
|
<div class="timearea"> |
||||||
|
<!-- <span class="starttime"> |
||||||
|
{{ (item.startTime || '').slice(0, 10) }} |
||||||
|
</span> |
||||||
|
<span>至</span> --> |
||||||
|
<span>截止到</span> |
||||||
|
<span class="endtime"> |
||||||
|
{{ (item.expectedEndTime || '').slice(0, 10) }} |
||||||
|
</span> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<!-- 进度 --> |
||||||
|
<div class="schedule"> |
||||||
|
<span>项目进度:</span> |
||||||
|
<span class="s_tiao"> |
||||||
|
<!-- :percentage="Number(item.schedule)" --> |
||||||
|
<el-progress :percentage="30" :show-text="false"></el-progress> |
||||||
|
</span> |
||||||
|
</div> |
||||||
|
<div class="operate"> |
||||||
|
<div class="o_left"> |
||||||
|
<el-button |
||||||
|
type="primary" |
||||||
|
round |
||||||
|
class="but" |
||||||
|
size="small" |
||||||
|
></el-button> |
||||||
|
<el-button |
||||||
|
type="success" |
||||||
|
round |
||||||
|
class="but" |
||||||
|
size="small" |
||||||
|
></el-button> |
||||||
|
</div> |
||||||
|
<span class="edit">编辑</span> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</el-card> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
<!-- 弹出框 --> |
||||||
|
<el-drawer |
||||||
|
:visible.sync="drawer" |
||||||
|
direction="rtl" |
||||||
|
:before-close="handleClose" |
||||||
|
trigger="click" |
||||||
|
> |
||||||
|
<template slot="title"> |
||||||
|
<i class="el-icon-more" style="cursor: pointer"></i> |
||||||
|
<el-dropdown trigger="click" style="position: absolute; left: 3rem"> |
||||||
|
<span class="el-dropdown-link"> |
||||||
|
<i class="el-icon-arrow-down el-icon--right"></i> |
||||||
|
</span> |
||||||
|
<el-dropdown-menu slot="dropdown"> |
||||||
|
<el-dropdown-item>黄金糕</el-dropdown-item> |
||||||
|
<el-dropdown-item>狮子头</el-dropdown-item> |
||||||
|
</el-dropdown-menu> |
||||||
|
</el-dropdown> |
||||||
|
</template> |
||||||
|
|
||||||
|
<div class="drawer"> |
||||||
|
<div class="drawer_header"> |
||||||
|
<div class="d_content"> |
||||||
|
<div class="d_pic"></div> |
||||||
|
<div class="d_name">夏艳玲</div> |
||||||
|
<div class="d_position">xxx码农</div> |
||||||
|
<div class="d_cont"> |
||||||
|
<a href="" style="margin-right: 0.5rem">xx项目</a> |
||||||
|
<a href="" style="margin-right: 0.5rem">大禹项目管理</a> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="drawer_body"> |
||||||
|
<div class="body_title">任务动态</div> |
||||||
|
<div class="body_content"> |
||||||
|
<div class="block"> |
||||||
|
<el-timeline> |
||||||
|
<el-timeline-item timestamp="2018/4/12" placement="top"> |
||||||
|
<div class="timeline"> |
||||||
|
<span class="year">09</span><span class="month">12月</span> |
||||||
|
</div> |
||||||
|
<div class="type">设计稿</div> |
||||||
|
<div ref="a" class="work_sum"> |
||||||
|
上传大禹项目管理系统竞赛项目设计稿一份1111 |
||||||
|
</div> |
||||||
|
<el-card style="width: 85%; height: 5rem; margin-left: 1rem"> |
||||||
|
<iframe |
||||||
|
src="" |
||||||
|
frameborder="0" |
||||||
|
style="width: 100%; height: 100%" |
||||||
|
></iframe> |
||||||
|
</el-card> |
||||||
|
</el-timeline-item> |
||||||
|
<el-timeline-item timestamp="2018/4/12" placement="top"> |
||||||
|
<div class="timeline"> |
||||||
|
<span class="year">09</span><span class="month">12月</span> |
||||||
|
</div> |
||||||
|
<div class="type">设计稿</div> |
||||||
|
<div ref="aa" class="work_sum">上传大禹项目设计稿一份</div> |
||||||
|
<el-card style="width: 85%; height: 5rem; margin-left: 1rem"> |
||||||
|
<iframe |
||||||
|
src="" |
||||||
|
frameborder="0" |
||||||
|
style="width: 100%; height: 100%" |
||||||
|
></iframe> |
||||||
|
</el-card> |
||||||
|
</el-timeline-item> |
||||||
|
</el-timeline> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</el-drawer> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script> |
||||||
|
export default { |
||||||
|
props: ['color', 'projectData'], |
||||||
|
data() { |
||||||
|
return { |
||||||
|
drawer: false |
||||||
|
} |
||||||
|
}, |
||||||
|
methods: { |
||||||
|
LookPeople(userid) { |
||||||
|
console.log(userid) |
||||||
|
this.drawer = true |
||||||
|
this.Check() |
||||||
|
}, |
||||||
|
// 让任务内容的特定字段变成链接可跳转 |
||||||
|
Check() { |
||||||
|
const s = '大禹项目' |
||||||
|
const ss = '竞赛项目' |
||||||
|
const reg = new RegExp('(' + s + ')|(' + ss + ')', 'g') |
||||||
|
this.$nextTick(() => { |
||||||
|
this.$refs.a.innerHTML = this.$refs.a.innerHTML.replace( |
||||||
|
reg, |
||||||
|
'<a href="$1">$1</a><a href="$2">$2</a>' |
||||||
|
) |
||||||
|
}) |
||||||
|
}, |
||||||
|
handleClose(done) { |
||||||
|
this.$confirm('确认关闭?') |
||||||
|
.then((_) => { |
||||||
|
done() |
||||||
|
}) |
||||||
|
.catch((_) => {}) |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
</script> |
||||||
|
|
||||||
|
<style lang="less" scoped> |
||||||
|
.cardcard { |
||||||
|
width: 100%; |
||||||
|
height: 100%; |
||||||
|
// overflow: scroll; |
||||||
|
.card_content { |
||||||
|
width: 99%; |
||||||
|
.little_card { |
||||||
|
width: 100%; |
||||||
|
display: flex; |
||||||
|
flex-direction: column; |
||||||
|
margin-top: 1rem; |
||||||
|
// 项目标题 |
||||||
|
.admin_title { |
||||||
|
display: flex; |
||||||
|
justify-content: space-between; |
||||||
|
position: relative; |
||||||
|
width: 100%; |
||||||
|
font-size: 16px; |
||||||
|
font-weight: 700; |
||||||
|
color: #000000; |
||||||
|
.check { |
||||||
|
position: absolute; |
||||||
|
left: -1.5rem; |
||||||
|
} |
||||||
|
.pic { |
||||||
|
position: relative; |
||||||
|
display: inline-block; |
||||||
|
width: 1rem; |
||||||
|
height: 1rem; |
||||||
|
border-radius: 50%; |
||||||
|
// background-color: rgb(10, 228, 155); |
||||||
|
} |
||||||
|
} |
||||||
|
// 项目内容 |
||||||
|
.substance { |
||||||
|
margin-top: 1rem; |
||||||
|
font-size: 14px; |
||||||
|
color: #999999; |
||||||
|
.sub_image { |
||||||
|
width: 100%; |
||||||
|
height: 20vh; |
||||||
|
background-color: rgb(207, 207, 207); |
||||||
|
border-radius: 10px 10px 10px 10px; |
||||||
|
} |
||||||
|
.sub_document { |
||||||
|
display: flex; |
||||||
|
width: 100%; |
||||||
|
height: 20vh; |
||||||
|
.document { |
||||||
|
width: 55%; |
||||||
|
height: 100%; |
||||||
|
background-color: #52c93f; |
||||||
|
border-radius: 10px 10px 10px 10px; |
||||||
|
} |
||||||
|
.s_operate { |
||||||
|
position: relative; |
||||||
|
top: 2.7rem; |
||||||
|
left: 1.5rem; |
||||||
|
display: flex; |
||||||
|
flex-direction: column; |
||||||
|
justify-content: space-between; |
||||||
|
width: 25%; |
||||||
|
height: 40%; |
||||||
|
color: #3e75e6; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
// 项目时间 |
||||||
|
.time { |
||||||
|
display: flex; |
||||||
|
margin-top: 1rem; |
||||||
|
font-size: 13px; |
||||||
|
color: #999999; |
||||||
|
.timearea { |
||||||
|
width: 80%; |
||||||
|
margin-left: 1rem; |
||||||
|
//background-color: #3e75e6; |
||||||
|
.starttime { |
||||||
|
width: 45%; |
||||||
|
padding: 0.1rem; |
||||||
|
display: inline-block; |
||||||
|
background: #f0f0f0; |
||||||
|
} |
||||||
|
.endtime { |
||||||
|
width: 45%; |
||||||
|
padding: 0.1rem; |
||||||
|
display: inline-block; |
||||||
|
//background: #f0f0f0; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
// 项目进度 |
||||||
|
.schedule { |
||||||
|
display: flex; |
||||||
|
font-size: 13px; |
||||||
|
color: #999999; |
||||||
|
margin-top: 1rem; |
||||||
|
.s_tiao { |
||||||
|
top: 0.4rem; |
||||||
|
position: relative; |
||||||
|
width: 70%; |
||||||
|
margin-left: 0.3rem; |
||||||
|
} |
||||||
|
} |
||||||
|
//操作 |
||||||
|
.operate { |
||||||
|
display: flex; |
||||||
|
justify-content: space-between; |
||||||
|
width: 100%; |
||||||
|
margin-top: 1rem; |
||||||
|
.o_left { |
||||||
|
display: flex; |
||||||
|
width: 60%; |
||||||
|
// background-color: antiquewhite; |
||||||
|
.but { |
||||||
|
width: 50%; |
||||||
|
} |
||||||
|
} |
||||||
|
.edit { |
||||||
|
font-size: 13px; |
||||||
|
font-weight: 600; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
// 弹窗头部 |
||||||
|
.drawer_header { |
||||||
|
display: flex; |
||||||
|
flex-direction: column; |
||||||
|
justify-content: space-between; |
||||||
|
align-items: center; |
||||||
|
height: 20vh; |
||||||
|
// background-color: #52c93f; |
||||||
|
.d_content { |
||||||
|
display: flex; |
||||||
|
flex-direction: column; |
||||||
|
justify-content: space-between; |
||||||
|
align-items: center; |
||||||
|
width: 60%; |
||||||
|
height: 100%; |
||||||
|
.d_pic { |
||||||
|
width: 5rem; |
||||||
|
height: 5rem; |
||||||
|
border-radius: 50%; |
||||||
|
background-color: #2147fb; |
||||||
|
} |
||||||
|
.d_name { |
||||||
|
font-weight: bold; |
||||||
|
} |
||||||
|
.d_position { |
||||||
|
font-size: 14px; |
||||||
|
color: #8c8a8a; |
||||||
|
} |
||||||
|
.d_cont { |
||||||
|
font-size: 12px; |
||||||
|
color: #8c8a8a; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
// 弹窗内容主题 |
||||||
|
.drawer_body { |
||||||
|
position: relative; |
||||||
|
margin-top: 4vh; |
||||||
|
width: 100%; |
||||||
|
height: 65vh; |
||||||
|
// background-color: #ffa326; |
||||||
|
border-top: 1px dotted #d4d4d4; |
||||||
|
.body_title { |
||||||
|
position: absolute; |
||||||
|
width: 40%; |
||||||
|
left: 30%; |
||||||
|
top: -2%; |
||||||
|
background-color: #ffffff; |
||||||
|
text-align: center; |
||||||
|
} |
||||||
|
.body_content { |
||||||
|
position: absolute; |
||||||
|
top: 1.5rem; |
||||||
|
width: 100%; |
||||||
|
height: 95%; |
||||||
|
// background-color: #52c93f; |
||||||
|
.block { |
||||||
|
margin-left: 2rem; |
||||||
|
.timeline { |
||||||
|
position: absolute; |
||||||
|
left: -1.3rem; |
||||||
|
top: -0.3rem; |
||||||
|
width: 3.5rem; |
||||||
|
height: 1.5rem; |
||||||
|
background-color: #ffffff; |
||||||
|
.year { |
||||||
|
font-size: 18px; |
||||||
|
font-weight: bold; |
||||||
|
} |
||||||
|
.month { |
||||||
|
margin-left: 0.2rem; |
||||||
|
font-size: 12px; |
||||||
|
} |
||||||
|
} |
||||||
|
.type { |
||||||
|
width: 2.5rem; |
||||||
|
background: #c0f1e3; |
||||||
|
margin-bottom: 0.5rem; |
||||||
|
margin-left: 1.2rem; |
||||||
|
font-size: 12px; |
||||||
|
color: white; |
||||||
|
} |
||||||
|
.work_sum { |
||||||
|
margin-left: 1rem; |
||||||
|
margin-bottom: 1rem; |
||||||
|
} |
||||||
|
|
||||||
|
/deep/.el-timeline-item__timestamp.is-top { |
||||||
|
// padding-top: 10px; |
||||||
|
margin-left: 1rem; |
||||||
|
} |
||||||
|
/deep/.el-card__body { |
||||||
|
padding: 10px; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
// .cardcard::-webkit-scrollbar { |
||||||
|
// display: none; |
||||||
|
// } |
||||||
|
.card_black { |
||||||
|
border-left: 4px solid black; |
||||||
|
} |
||||||
|
.card_blue { |
||||||
|
border-left: 4px solid #2147fb; |
||||||
|
} |
||||||
|
.card_orange { |
||||||
|
border-left: 4px solid #ffa326; |
||||||
|
} |
||||||
|
.card_green { |
||||||
|
border-left: 4px solid #52c93f; |
||||||
|
} |
||||||
|
/deep/.el-drawer { |
||||||
|
width: 24% !important; |
||||||
|
} |
||||||
|
</style> |
@ -0,0 +1,71 @@ |
|||||||
|
<template> |
||||||
|
<div> |
||||||
|
<div |
||||||
|
class="card_header" |
||||||
|
:class=" |
||||||
|
color == 'black' |
||||||
|
? { black: true } |
||||||
|
: color == 'blue' |
||||||
|
? { blue: true } |
||||||
|
: color == 'orange' |
||||||
|
? { orange: true } |
||||||
|
: { green: true } |
||||||
|
" |
||||||
|
> |
||||||
|
<span |
||||||
|
>{{ title }}<span class="number">{{ total }}</span></span |
||||||
|
> |
||||||
|
<span class="icon"> |
||||||
|
<i class="el-icon-plus"></i> |
||||||
|
<i class="el-icon-more" style="margin-left: 0.5rem"></i> |
||||||
|
</span> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script> |
||||||
|
export default { |
||||||
|
props: ['title', 'color', 'total'] |
||||||
|
} |
||||||
|
</script> |
||||||
|
|
||||||
|
<style lang="less" scoped> |
||||||
|
.card_header { |
||||||
|
display: flex; |
||||||
|
justify-content: space-between; |
||||||
|
width: 100%; |
||||||
|
line-height: 3rem; |
||||||
|
font-size: 17px; |
||||||
|
color: #333333; |
||||||
|
font-weight: 400; |
||||||
|
|
||||||
|
.number { |
||||||
|
position: relative; |
||||||
|
display: inline-block; |
||||||
|
min-width: 1.5rem; |
||||||
|
min-height: 1.5rem; |
||||||
|
margin-left: 1rem; |
||||||
|
border-radius: 50%; |
||||||
|
border: 2px solid #999999; |
||||||
|
text-align: center; |
||||||
|
line-height: 1.3rem; |
||||||
|
color: #999999; |
||||||
|
} |
||||||
|
.icon { |
||||||
|
font-weight: bold; |
||||||
|
cursor: pointer; |
||||||
|
} |
||||||
|
} |
||||||
|
.black { |
||||||
|
border-bottom: 3px solid black; |
||||||
|
} |
||||||
|
.blue { |
||||||
|
border-bottom: 3px solid #2147fb; |
||||||
|
} |
||||||
|
.orange { |
||||||
|
border-bottom: 3px solid #ffa326; |
||||||
|
} |
||||||
|
.green { |
||||||
|
border-bottom: 3px solid #52c93f; |
||||||
|
} |
||||||
|
</style> |
Loading…
Reference in new issue