jhbigscreen/src/pages/progress/nodeItem.vue

85 lines
2.1 KiB
Vue
Raw Normal View History

2023-08-20 00:25:52 +08:00
<template>
2023-08-23 00:03:22 +08:00
<div class="build-node-item" style="position: relative;">
2023-08-20 00:25:52 +08:00
<span class="lbl-title" v-show="showLabel" @click="doHeaderClick">
2023-08-23 00:03:22 +08:00
<i class="el-icon-caret" :class="item.expend ? 'el-icon-caret-bottom' : 'el-icon-caret-right'"></i>
2023-08-20 00:25:52 +08:00
{{ item.nodeText }}</span>
<div class="date-info">
2023-08-23 00:03:22 +08:00
<el-col :span="6">
<span class="sp-label">计划开始时间:</span>
<span class="sp-date">{{ formatDate(item.planStartDate) }}</span>
</el-col>
<el-col :span="6">
<span class="sp-label">计划完成时间:</span>
<span class="sp-date">{{ formatDate(item.planEndDate) }}</span>
</el-col>
<el-col :span="6">
<span class="sp-label">实际开始时间:</span>
<span class="sp-date">{{ formatDate(item.startDate) }}</span>
</el-col>
<el-col :span="6">
<span class="sp-label">实际完成时间:</span>
<span class="sp-date">{{ formatDate(item.endDate) }}</span>
</el-col>
2023-08-20 00:25:52 +08:00
</div>
2023-08-23 00:03:22 +08:00
<span :class="'finish-' + item.finishState" class="sp-state">{{ item.finish }}</span>
2023-08-20 00:25:52 +08:00
</div>
</template>
<script>
export default {
name: 'JhbigscreenNodeItem',
props: {
showLabel: {
type: Boolean,
default: true
},
item: {
type: Object,
default: () => { }
}
},
data() {
return {
2023-08-23 00:03:22 +08:00
2023-08-20 00:25:52 +08:00
};
},
mounted() {
2023-08-23 00:03:22 +08:00
2023-08-20 00:25:52 +08:00
},
methods: {
2023-08-23 00:03:22 +08:00
formatDate(dt) {
if (dt) {
2023-08-20 00:25:52 +08:00
return this.$dt(dt).format("YYYY-MM-DD");
}
return "暂无";
},
2023-08-23 00:03:22 +08:00
doHeaderClick() {
2023-08-20 00:25:52 +08:00
this.$emit("header-click");
}
},
};
</script>
<style lang="less" scoped>
2023-08-23 00:03:22 +08:00
.build-node-item {
2023-08-20 00:25:52 +08:00
.lbl-title {
cursor: pointer;
2023-08-23 00:03:22 +08:00
display: block;
2023-08-20 00:25:52 +08:00
}
2023-08-23 00:03:22 +08:00
.sp-label {
2023-08-20 00:25:52 +08:00
color: #d6f10a;
}
2023-08-23 00:03:22 +08:00
.sp-state {
position: absolute;
right: 0px;
top: 0px;
width: 170px;
line-height: 32px;
text-align: right;
}
2023-08-20 00:25:52 +08:00
}
</style>