fix: BUG修改
This commit is contained in:
parent
b8758f6dc0
commit
895a7fe82f
@ -2,9 +2,9 @@
|
|||||||
NODE_ENV = 'development'
|
NODE_ENV = 'development'
|
||||||
|
|
||||||
# 本地环境接口地址(/api/index.ts文件中使用)
|
# 本地环境接口地址(/api/index.ts文件中使用)
|
||||||
# VITE_API_URL = 'http://192.168.34.155:6688'
|
VITE_API_URL = 'http://192.168.34.155:6688'
|
||||||
VITE_WPAPI_URL = "http://182.90.224.147:8081"
|
VITE_WPAPI_URL = "http://182.90.224.147:8081"
|
||||||
VITE_API_URL = "http://182.90.224.147:6688"
|
# VITE_API_URL = "http://182.90.224.147:6688"
|
||||||
|
|
||||||
# 上传
|
# 上传
|
||||||
# VITE_ULD_API_URL = 'http://192.168.34.155:8012/onlinePreview?url='
|
# VITE_ULD_API_URL = 'http://192.168.34.155:8012/onlinePreview?url='
|
||||||
|
|||||||
@ -1,119 +1,121 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="gantt-box">
|
<div class="main-box">
|
||||||
<div class="header">
|
<div class="gantt-box">
|
||||||
<div class="left-content">
|
<div class="header">
|
||||||
<div class="item" v-for="(item, index) in headerList" :key="index">
|
<div class="left-content">
|
||||||
<div class="color-block" :style="{ background: item.color }"></div>
|
<div class="item" v-for="(item, index) in headerList" :key="index">
|
||||||
<div class="label">{{ item.label }}</div>
|
<div class="color-block" :style="{ background: item.color }"></div>
|
||||||
|
<div class="label">{{ item.label }}</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="right-content">备注:更新(进度填报)内容后该甘特图将自动更新</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="right-content">备注:更新(进度填报)内容后该甘特图将自动更新</div>
|
<div class="gantt-chart" v-if="projects.length > 0">
|
||||||
</div>
|
<div class="table" @scroll="handleScroll">
|
||||||
<div class="gantt-chart" v-if="projects.length > 0">
|
<div class="thead">
|
||||||
<div class="table" @scroll="handleScroll">
|
<div class="row">
|
||||||
<div class="thead">
|
<div class="td fixed_1">分部分项工程名称</div>
|
||||||
<div class="row">
|
<div class="td fixed_2">开始日期</div>
|
||||||
<div class="td fixed_1">分部分项工程名称</div>
|
<div class="td fixed_3" style="border-right: 1px solid #cbd1df">完成日期</div>
|
||||||
<div class="td fixed_2">开始日期</div>
|
<div class="td" v-for="date in dateList" :key="date">
|
||||||
<div class="td fixed_3" style="border-right: 1px solid #cbd1df">完成日期</div>
|
<div class="date">
|
||||||
<div class="td" v-for="date in dateList" :key="date">
|
<div class="month">
|
||||||
<div class="date">
|
{{ date }}
|
||||||
<div class="month">
|
</div>
|
||||||
{{ date }}
|
<div class="days">
|
||||||
</div>
|
<div class="day" v-for="day in getDays(date)" :key="day.num">
|
||||||
<div class="days">
|
{{ day.num }}
|
||||||
<div class="day" v-for="day in getDays(date)" :key="day.num">
|
</div>
|
||||||
{{ day.num }}
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<div class="tbody">
|
||||||
<div class="tbody">
|
<div class="row-groups" :class="{ open: openedIndex === i }" v-for="(p, i) in projects" :key="p.name">
|
||||||
<div class="row-groups" :class="{ open: openedIndex === i }" v-for="(p, i) in projects" :key="p.name">
|
<div class="row">
|
||||||
<div class="row">
|
<div class="td fixed_1" @click="handleOpen(i)" style="color: #333333; padding-left: 25px">
|
||||||
<div class="td fixed_1" @click="handleOpen(i)" style="color: #333333; padding-left: 25px">
|
<el-icon
|
||||||
<el-icon
|
size="16"
|
||||||
size="16"
|
v-if="openedIndex === i && p.children.length > 0"
|
||||||
v-if="openedIndex === i && p.children.length > 0"
|
:style="{ visibility: openedIndex === i && p.children.length > 0 ? 'visible' : 'hidden' }"
|
||||||
:style="{ visibility: openedIndex === i && p.children.length > 0 ? 'visible' : 'hidden' }"
|
><caret-bottom
|
||||||
><caret-bottom
|
/></el-icon>
|
||||||
/></el-icon>
|
<el-icon
|
||||||
<el-icon
|
size="16"
|
||||||
size="16"
|
v-else
|
||||||
v-else
|
:style="{ visibility: openedIndex != i && p.children.length > 0 ? 'visible' : 'hidden' }"
|
||||||
:style="{ visibility: openedIndex != i && p.children.length > 0 ? 'visible' : 'hidden' }"
|
><caret-right
|
||||||
><caret-right
|
/></el-icon>
|
||||||
/></el-icon>
|
<el-tooltip effect="dark" :content="p.name" placement="top-start">
|
||||||
<el-tooltip effect="dark" :content="p.name" placement="top-start">
|
<span>{{ p.name }}</span>
|
||||||
<span>{{ p.name }}</span>
|
</el-tooltip>
|
||||||
</el-tooltip>
|
|
||||||
</div>
|
|
||||||
<div class="td fixed_2">{{ p.planStartTime }}</div>
|
|
||||||
<div class="td fixed_3">{{ p.planEndTime }}</div>
|
|
||||||
<div class="td" v-for="date in dateList" :key="date + 'grid-date'">
|
|
||||||
<div class="grids">
|
|
||||||
<div
|
|
||||||
class="grid"
|
|
||||||
v-for="day in getDays(date)"
|
|
||||||
:key="'grid' + day.num"
|
|
||||||
:ref="(el: any) => setItemRef(el, p.name + '@|@' + day.date)"
|
|
||||||
></div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<div class="td fixed_2">{{ p.planStartTime }}</div>
|
||||||
<div
|
<div class="td fixed_3">{{ p.planEndTime }}</div>
|
||||||
class="progress"
|
|
||||||
:style="gantt"
|
|
||||||
v-for="(gantt, index) in p.gantts"
|
|
||||||
:key="index"
|
|
||||||
@mouseenter="e => handleHover(e, p)"
|
|
||||||
@mouseleave="handleLeave"
|
|
||||||
></div>
|
|
||||||
</div>
|
|
||||||
<div class="children" v-show="openedIndex === i">
|
|
||||||
<div class="row" v-for="child in p.children" :key="'child-' + child.name">
|
|
||||||
<div class="td fixed_1">{{ child.name }}</div>
|
|
||||||
<div class="td fixed_2">{{ child.planStartTime }}</div>
|
|
||||||
<div class="td fixed_3">{{ child.planEndTime }}</div>
|
|
||||||
<div class="td" v-for="date in dateList" :key="date + 'grid-date'">
|
<div class="td" v-for="date in dateList" :key="date + 'grid-date'">
|
||||||
<div class="grids">
|
<div class="grids">
|
||||||
<div
|
<div
|
||||||
class="grid"
|
class="grid"
|
||||||
v-for="day in getDays(date)"
|
v-for="day in getDays(date)"
|
||||||
:key="'grid' + day.num"
|
:key="'grid' + day.num"
|
||||||
:ref="(el: any) => setItemRef(el, child.name + '@|@' + day.date)"
|
:ref="(el: any) => setItemRef(el, p.name + '@|@' + day.date)"
|
||||||
></div>
|
></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
class="progress"
|
class="progress"
|
||||||
:style="gantt"
|
:style="gantt"
|
||||||
v-for="(gantt, index) in child.gantts"
|
v-for="(gantt, index) in p.gantts"
|
||||||
:key="index"
|
:key="index"
|
||||||
@mouseenter="e => handleHover(e, child)"
|
@mouseenter="e => handleHover(e, p)"
|
||||||
@mouseleave="handleLeave"
|
@mouseleave="handleLeave"
|
||||||
></div>
|
></div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="children" v-show="openedIndex === i">
|
||||||
|
<div class="row" v-for="child in p.children" :key="'child-' + child.name">
|
||||||
|
<div class="td fixed_1">{{ child.name }}</div>
|
||||||
|
<div class="td fixed_2">{{ child.planStartTime }}</div>
|
||||||
|
<div class="td fixed_3">{{ child.planEndTime }}</div>
|
||||||
|
<div class="td" v-for="date in dateList" :key="date + 'grid-date'">
|
||||||
|
<div class="grids">
|
||||||
|
<div
|
||||||
|
class="grid"
|
||||||
|
v-for="day in getDays(date)"
|
||||||
|
:key="'grid' + day.num"
|
||||||
|
:ref="(el: any) => setItemRef(el, child.name + '@|@' + day.date)"
|
||||||
|
></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="progress"
|
||||||
|
:style="gantt"
|
||||||
|
v-for="(gantt, index) in child.gantts"
|
||||||
|
:key="index"
|
||||||
|
@mouseenter="e => handleHover(e, child)"
|
||||||
|
@mouseleave="handleLeave"
|
||||||
|
></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<div class="tooltips" :style="tooltipsStyle">
|
||||||
<div class="tooltips" :style="tooltipsStyle">
|
<div class="status">已逾期{{ tooltipContent.day }}天</div>
|
||||||
<div class="status">已逾期{{ tooltipContent.day }}天</div>
|
<div class="charger">负责人:{{ tooltipContent.name }}</div>
|
||||||
<div class="charger">负责人:{{ tooltipContent.name }}</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="no-data" v-else>
|
||||||
|
<img src="@/assets/images/notData.png" alt="notData" />
|
||||||
|
<div>暂无数据</div>
|
||||||
|
</div>
|
||||||
|
<engineeringEngDrawer v-model="engVisable" ref="engDrawer" :engList="engList">
|
||||||
|
<template #default="{ data }">
|
||||||
|
<span style="margin-left: 10px" @click="onUpdate(data)">{{ data.engineeringName }}</span>
|
||||||
|
</template>
|
||||||
|
</engineeringEngDrawer>
|
||||||
|
<allEngineering @click="engVisable = true" />
|
||||||
</div>
|
</div>
|
||||||
<div class="no-data" v-else>
|
|
||||||
<img src="@/assets/images/notData.png" alt="notData" />
|
|
||||||
<div>暂无数据</div>
|
|
||||||
</div>
|
|
||||||
<engineeringEngDrawer v-model="engVisable" ref="engDrawer" :engList="engList">
|
|
||||||
<template #default="{ data }">
|
|
||||||
<span style="margin-left: 10px" @click="onUpdate(data)">{{ data.engineeringName }}</span>
|
|
||||||
</template>
|
|
||||||
</engineeringEngDrawer>
|
|
||||||
<allEngineering @click="engVisable = true" />
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -490,6 +492,9 @@ const dateList = computed(() => {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
|
.main-box {
|
||||||
|
overflow-x: scroll;
|
||||||
|
}
|
||||||
.gantt-box {
|
.gantt-box {
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
min-width: 1120px;
|
min-width: 1120px;
|
||||||
|
|||||||
@ -550,7 +550,9 @@ onMounted(() => {
|
|||||||
.table-box {
|
.table-box {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
overflow-x: scroll;
|
||||||
.search-select {
|
.search-select {
|
||||||
|
min-width: 1470px;
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
:deep() {
|
:deep() {
|
||||||
.el-card {
|
.el-card {
|
||||||
@ -564,11 +566,12 @@ onMounted(() => {
|
|||||||
:deep(.el-card__body) {
|
:deep(.el-card__body) {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
flex-wrap: wrap;
|
// flex-wrap: wrap;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.statistics-table {
|
.statistics-table {
|
||||||
|
min-width: 1430px;
|
||||||
height: calc(100% - 100px);
|
height: calc(100% - 100px);
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
margin-top: 20px;
|
margin-top: 20px;
|
||||||
|
|||||||
@ -342,6 +342,7 @@ onMounted(async () => {
|
|||||||
</script>
|
</script>
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
.table-box {
|
.table-box {
|
||||||
|
overflow-x: scroll;
|
||||||
.echart-all {
|
.echart-all {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
|
|||||||
@ -604,6 +604,9 @@ watch(
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
|
.main-box {
|
||||||
|
overflow-x: scroll;
|
||||||
|
}
|
||||||
.leftMenu {
|
.leftMenu {
|
||||||
width: 300px;
|
width: 300px;
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
|
|||||||
@ -3,6 +3,7 @@
|
|||||||
display: flex;
|
display: flex;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
overflow-x: scroll;
|
||||||
.leftMenu {
|
.leftMenu {
|
||||||
width: 300px;
|
width: 300px;
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
@ -48,6 +49,7 @@
|
|||||||
position: relative;
|
position: relative;
|
||||||
margin-left: 20px;
|
margin-left: 20px;
|
||||||
.search-select {
|
.search-select {
|
||||||
|
min-width: 1470px;
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
:deep() {
|
:deep() {
|
||||||
.el-card {
|
.el-card {
|
||||||
@ -62,7 +64,7 @@
|
|||||||
:deep(.el-card__body) {
|
:deep(.el-card__body) {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
flex-wrap: wrap;
|
// flex-wrap: wrap;
|
||||||
}
|
}
|
||||||
span {
|
span {
|
||||||
color: var(--el-menu-text-color);
|
color: var(--el-menu-text-color);
|
||||||
@ -70,6 +72,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
.statistics-table {
|
.statistics-table {
|
||||||
|
min-width: 1430px;
|
||||||
height: calc(100% - 100px);
|
height: calc(100% - 100px);
|
||||||
background-color: var(--el-menu-bg-color);
|
background-color: var(--el-menu-bg-color);
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
|
|||||||
@ -13,13 +13,22 @@
|
|||||||
padding: 10px;
|
padding: 10px;
|
||||||
height: calc(100% - 150px);
|
height: calc(100% - 150px);
|
||||||
}
|
}
|
||||||
:deep(.el-card) {
|
.tab-card {
|
||||||
margin: 2px 10px 10px;
|
:deep() {
|
||||||
border: none;
|
.el-card {
|
||||||
border-radius: 8px;
|
margin: 2px 10px 10px;
|
||||||
height: 56px;
|
border: none;
|
||||||
// padding-bottom: 6px;
|
border-radius: 8px;
|
||||||
}
|
height: 56px;
|
||||||
:deep(.el-card__body) {
|
}
|
||||||
padding: 12px 0 0 36px;
|
.el-button {
|
||||||
|
font-size: 14px;
|
||||||
|
font-family: Source Han Sans CN-Regular, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
// :deep(.el-card__body) {
|
||||||
|
// padding: 12px 0 0 36px;
|
||||||
|
// }
|
||||||
|
|||||||
@ -9,10 +9,12 @@
|
|||||||
</template>
|
</template>
|
||||||
</TreeFilter>
|
</TreeFilter>
|
||||||
<div class="table-box">
|
<div class="table-box">
|
||||||
<el-card shadow="never">
|
<div class="tab-card">
|
||||||
<el-button :class="showPage == false ? 'blueText' : ''" @click="showPage = false" link>基本信息</el-button>
|
<el-card shadow="never">
|
||||||
<el-button :class="showPage == true ? 'blueText' : ''" @click="showPage = true" link>用户管理</el-button>
|
<el-button :class="showPage == false ? 'blueText' : ''" @click="showPage = false" link>基本信息</el-button>
|
||||||
</el-card>
|
<el-button :class="showPage == true ? 'blueText' : ''" @click="showPage = true" link>用户管理</el-button>
|
||||||
|
</el-card>
|
||||||
|
</div>
|
||||||
<div class="base-box" v-show="!showPage">
|
<div class="base-box" v-show="!showPage">
|
||||||
<el-form style="padding: 10% 30%" :model="baseFrom" ref="ruleFormRef" label-width="150px">
|
<el-form style="padding: 10% 30%" :model="baseFrom" ref="ruleFormRef" label-width="150px">
|
||||||
<el-form-item label="上级部门:" prop="parentId">
|
<el-form-item label="上级部门:" prop="parentId">
|
||||||
|
|||||||
@ -1,121 +1,123 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="gantt-box">
|
<div class="main-box">
|
||||||
<div class="header">
|
<div class="gantt-box">
|
||||||
<div class="left-content">
|
<div class="header">
|
||||||
<div class="item" v-for="(item, index) in headerList" :key="index">
|
<div class="left-content">
|
||||||
<div class="color-block" :style="{ background: item.color }"></div>
|
<div class="item" v-for="(item, index) in headerList" :key="index">
|
||||||
<div class="label">{{ item.label }}</div>
|
<div class="color-block" :style="{ background: item.color }"></div>
|
||||||
|
<div class="label">{{ item.label }}</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="right-content">备注:更新(进度填报)内容后该甘特图将自动更新</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="right-content">备注:更新(进度填报)内容后该甘特图将自动更新</div>
|
<div class="gantt-chart" v-if="projects.length > 0">
|
||||||
</div>
|
<div class="table" @scroll="handleScroll">
|
||||||
<div class="gantt-chart" v-if="projects.length > 0">
|
<div class="thead">
|
||||||
<div class="table" @scroll="handleScroll">
|
<div class="row">
|
||||||
<div class="thead">
|
<div class="td fixed_1">分部分项工程名称</div>
|
||||||
<div class="row">
|
<div class="td fixed_2">开始日期</div>
|
||||||
<div class="td fixed_1">分部分项工程名称</div>
|
<div class="td fixed_3" style="border-right: 1px solid #cbd1df">完成日期</div>
|
||||||
<div class="td fixed_2">开始日期</div>
|
<div class="td" v-for="date in dateList" :key="date">
|
||||||
<div class="td fixed_3" style="border-right: 1px solid #cbd1df">完成日期</div>
|
<div class="date">
|
||||||
<div class="td" v-for="date in dateList" :key="date">
|
<div class="month">
|
||||||
<div class="date">
|
{{ date }}
|
||||||
<div class="month">
|
</div>
|
||||||
{{ date }}
|
<div class="days">
|
||||||
</div>
|
<div class="day" v-for="day in getDays(date)" :key="day.num">
|
||||||
<div class="days">
|
{{ day.num }}
|
||||||
<div class="day" v-for="day in getDays(date)" :key="day.num">
|
</div>
|
||||||
{{ day.num }}
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<div class="tbody">
|
||||||
<div class="tbody">
|
<div class="row-groups" :class="{ open: openedIndex === i }" v-for="(p, i) in projects" :key="p.name">
|
||||||
<div class="row-groups" :class="{ open: openedIndex === i }" v-for="(p, i) in projects" :key="p.name">
|
<div class="row">
|
||||||
<div class="row">
|
<div class="td fixed_1" @click="handleOpen(i)" style="color: #333333; padding-left: 25px">
|
||||||
<div class="td fixed_1" @click="handleOpen(i)" style="color: #333333; padding-left: 25px">
|
<el-icon
|
||||||
<el-icon
|
size="16"
|
||||||
size="16"
|
v-if="openedIndex === i && p.children.length > 0"
|
||||||
v-if="openedIndex === i && p.children.length > 0"
|
:style="{ visibility: openedIndex === i && p.children.length > 0 ? 'visible' : 'hidden' }"
|
||||||
:style="{ visibility: openedIndex === i && p.children.length > 0 ? 'visible' : 'hidden' }"
|
><caret-bottom
|
||||||
><caret-bottom
|
/></el-icon>
|
||||||
/></el-icon>
|
<el-icon
|
||||||
<el-icon
|
size="16"
|
||||||
size="16"
|
v-else
|
||||||
v-else
|
:style="{ visibility: openedIndex != i && p.children.length > 0 ? 'visible' : 'hidden' }"
|
||||||
:style="{ visibility: openedIndex != i && p.children.length > 0 ? 'visible' : 'hidden' }"
|
><caret-right
|
||||||
><caret-right
|
/></el-icon>
|
||||||
/></el-icon>
|
<el-tooltip effect="dark" :content="p.name" placement="top-start">
|
||||||
<el-tooltip effect="dark" :content="p.name" placement="top-start">
|
<span>{{ p.name }}</span>
|
||||||
<span>{{ p.name }}</span>
|
</el-tooltip>
|
||||||
</el-tooltip>
|
|
||||||
</div>
|
|
||||||
<div class="td fixed_2">{{ p.planStartTime }}</div>
|
|
||||||
<div class="td fixed_3">{{ p.planEndTime }}</div>
|
|
||||||
<div class="td" v-for="date in dateList" :key="date + 'grid-date'">
|
|
||||||
<div class="grids">
|
|
||||||
<div
|
|
||||||
class="grid"
|
|
||||||
v-for="day in getDays(date)"
|
|
||||||
:key="'grid' + day.num"
|
|
||||||
:ref="(el: any) => setItemRef(el, p.name + '@|@' + day.date)"
|
|
||||||
></div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<div class="td fixed_2">{{ p.planStartTime }}</div>
|
||||||
<div
|
<div class="td fixed_3">{{ p.planEndTime }}</div>
|
||||||
class="progress"
|
|
||||||
:style="gantt"
|
|
||||||
v-for="(gantt, index) in p.gantts"
|
|
||||||
:key="index"
|
|
||||||
@mouseenter="e => handleHover(e, p)"
|
|
||||||
@mouseleave="handleLeave"
|
|
||||||
></div>
|
|
||||||
</div>
|
|
||||||
<div class="children" v-show="openedIndex === i">
|
|
||||||
<div class="row" v-for="child in p.children" :key="'child-' + child.name">
|
|
||||||
<div class="td fixed_1">{{ child.name }}</div>
|
|
||||||
<div class="td fixed_2">{{ child.planStartTime }}</div>
|
|
||||||
<div class="td fixed_3">{{ child.planEndTime }}</div>
|
|
||||||
<div class="td" v-for="date in dateList" :key="date + 'grid-date'">
|
<div class="td" v-for="date in dateList" :key="date + 'grid-date'">
|
||||||
<div class="grids">
|
<div class="grids">
|
||||||
<div
|
<div
|
||||||
class="grid"
|
class="grid"
|
||||||
v-for="day in getDays(date)"
|
v-for="day in getDays(date)"
|
||||||
:key="'grid' + day.num"
|
:key="'grid' + day.num"
|
||||||
:ref="(el: any) => setItemRef(el, child.name + '@|@' + day.date)"
|
:ref="(el: any) => setItemRef(el, p.name + '@|@' + day.date)"
|
||||||
></div>
|
></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
class="progress"
|
class="progress"
|
||||||
:style="gantt"
|
:style="gantt"
|
||||||
v-for="(gantt, index) in child.gantts"
|
v-for="(gantt, index) in p.gantts"
|
||||||
:key="index"
|
:key="index"
|
||||||
@mouseenter="e => handleHover(e, child)"
|
@mouseenter="e => handleHover(e, p)"
|
||||||
@mouseleave="handleLeave"
|
@mouseleave="handleLeave"
|
||||||
></div>
|
></div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="children" v-show="openedIndex === i">
|
||||||
|
<div class="row" v-for="child in p.children" :key="'child-' + child.name">
|
||||||
|
<div class="td fixed_1">{{ child.name }}</div>
|
||||||
|
<div class="td fixed_2">{{ child.planStartTime }}</div>
|
||||||
|
<div class="td fixed_3">{{ child.planEndTime }}</div>
|
||||||
|
<div class="td" v-for="date in dateList" :key="date + 'grid-date'">
|
||||||
|
<div class="grids">
|
||||||
|
<div
|
||||||
|
class="grid"
|
||||||
|
v-for="day in getDays(date)"
|
||||||
|
:key="'grid' + day.num"
|
||||||
|
:ref="(el: any) => setItemRef(el, child.name + '@|@' + day.date)"
|
||||||
|
></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="progress"
|
||||||
|
:style="gantt"
|
||||||
|
v-for="(gantt, index) in child.gantts"
|
||||||
|
:key="index"
|
||||||
|
@mouseenter="e => handleHover(e, child)"
|
||||||
|
@mouseleave="handleLeave"
|
||||||
|
></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<div class="tooltips" :style="tooltipsStyle">
|
||||||
<div class="tooltips" :style="tooltipsStyle">
|
<div class="status">已逾期{{ tooltipContent.day }}天</div>
|
||||||
<div class="status">已逾期{{ tooltipContent.day }}天</div>
|
<div class="charger">负责人:{{ tooltipContent.name }}</div>
|
||||||
<div class="charger">负责人:{{ tooltipContent.name }}</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="no-data" v-else>
|
||||||
|
<img src="@/assets/images/notData.png" alt="notData" />
|
||||||
|
<div>暂无数据</div>
|
||||||
|
</div>
|
||||||
|
<engineeringEngDrawer v-model="engVisable" :active="activeValue" ref="engDrawer" :engList="engList" @select="tabsSelect">
|
||||||
|
<template #default="{ data }">
|
||||||
|
<span style="margin-left: 10px" @click="onUpdate(data)">{{
|
||||||
|
activeValue == "eng" ? data.engineeringName : data.projectName
|
||||||
|
}}</span>
|
||||||
|
</template>
|
||||||
|
</engineeringEngDrawer>
|
||||||
|
<allEngineering @click="engVisable = true" />
|
||||||
</div>
|
</div>
|
||||||
<div class="no-data" v-else>
|
|
||||||
<img src="@/assets/images/notData.png" alt="notData" />
|
|
||||||
<div>暂无数据</div>
|
|
||||||
</div>
|
|
||||||
<engineeringEngDrawer v-model="engVisable" :active="activeValue" ref="engDrawer" :engList="engList" @select="tabsSelect">
|
|
||||||
<template #default="{ data }">
|
|
||||||
<span style="margin-left: 10px" @click="onUpdate(data)">{{
|
|
||||||
activeValue == "eng" ? data.engineeringName : data.projectName
|
|
||||||
}}</span>
|
|
||||||
</template>
|
|
||||||
</engineeringEngDrawer>
|
|
||||||
<allEngineering @click="engVisable = true" />
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -523,6 +525,9 @@ const dateList = computed(() => {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
|
.main-box {
|
||||||
|
overflow-x: scroll;
|
||||||
|
}
|
||||||
.gantt-box {
|
.gantt-box {
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
min-width: 1120px;
|
min-width: 1120px;
|
||||||
|
|||||||
@ -587,7 +587,9 @@ onMounted(() => {
|
|||||||
.table-box {
|
.table-box {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
overflow-x: scroll;
|
||||||
.search-select {
|
.search-select {
|
||||||
|
min-width: 1470px;
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
:deep() {
|
:deep() {
|
||||||
.el-card {
|
.el-card {
|
||||||
@ -601,11 +603,12 @@ onMounted(() => {
|
|||||||
:deep(.el-card__body) {
|
:deep(.el-card__body) {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
flex-wrap: wrap;
|
// flex-wrap: wrap;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.statistics-table {
|
.statistics-table {
|
||||||
|
min-width: 1430px;
|
||||||
height: calc(100% - 100px);
|
height: calc(100% - 100px);
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
margin-top: 20px;
|
margin-top: 20px;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user