fix: BUG修改

This commit is contained in:
kun 2023-09-13 14:44:44 +08:00
parent b8758f6dc0
commit 895a7fe82f
10 changed files with 226 additions and 192 deletions

View File

@ -2,9 +2,9 @@
NODE_ENV = 'development'
# 本地环境接口地址(/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_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='

View File

@ -1,119 +1,121 @@
<template>
<div class="gantt-box">
<div class="header">
<div class="left-content">
<div class="item" v-for="(item, index) in headerList" :key="index">
<div class="color-block" :style="{ background: item.color }"></div>
<div class="label">{{ item.label }}</div>
<div class="main-box">
<div class="gantt-box">
<div class="header">
<div class="left-content">
<div class="item" v-for="(item, index) in headerList" :key="index">
<div class="color-block" :style="{ background: item.color }"></div>
<div class="label">{{ item.label }}</div>
</div>
</div>
<div class="right-content">备注更新进度填报内容后该甘特图将自动更新</div>
</div>
<div class="right-content">备注更新进度填报内容后该甘特图将自动更新</div>
</div>
<div class="gantt-chart" v-if="projects.length > 0">
<div class="table" @scroll="handleScroll">
<div class="thead">
<div class="row">
<div class="td fixed_1">分部分项工程名称</div>
<div class="td fixed_2">开始日期</div>
<div class="td fixed_3" style="border-right: 1px solid #cbd1df">完成日期</div>
<div class="td" v-for="date in dateList" :key="date">
<div class="date">
<div class="month">
{{ date }}
</div>
<div class="days">
<div class="day" v-for="day in getDays(date)" :key="day.num">
{{ day.num }}
<div class="gantt-chart" v-if="projects.length > 0">
<div class="table" @scroll="handleScroll">
<div class="thead">
<div class="row">
<div class="td fixed_1">分部分项工程名称</div>
<div class="td fixed_2">开始日期</div>
<div class="td fixed_3" style="border-right: 1px solid #cbd1df">完成日期</div>
<div class="td" v-for="date in dateList" :key="date">
<div class="date">
<div class="month">
{{ date }}
</div>
<div class="days">
<div class="day" v-for="day in getDays(date)" :key="day.num">
{{ day.num }}
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="tbody">
<div class="row-groups" :class="{ open: openedIndex === i }" v-for="(p, i) in projects" :key="p.name">
<div class="row">
<div class="td fixed_1" @click="handleOpen(i)" style="color: #333333; padding-left: 25px">
<el-icon
size="16"
v-if="openedIndex === i && p.children.length > 0"
:style="{ visibility: openedIndex === i && p.children.length > 0 ? 'visible' : 'hidden' }"
><caret-bottom
/></el-icon>
<el-icon
size="16"
v-else
:style="{ visibility: openedIndex != i && p.children.length > 0 ? 'visible' : 'hidden' }"
><caret-right
/></el-icon>
<el-tooltip effect="dark" :content="p.name" placement="top-start">
<span>{{ p.name }}</span>
</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 class="tbody">
<div class="row-groups" :class="{ open: openedIndex === i }" v-for="(p, i) in projects" :key="p.name">
<div class="row">
<div class="td fixed_1" @click="handleOpen(i)" style="color: #333333; padding-left: 25px">
<el-icon
size="16"
v-if="openedIndex === i && p.children.length > 0"
:style="{ visibility: openedIndex === i && p.children.length > 0 ? 'visible' : 'hidden' }"
><caret-bottom
/></el-icon>
<el-icon
size="16"
v-else
:style="{ visibility: openedIndex != i && p.children.length > 0 ? 'visible' : 'hidden' }"
><caret-right
/></el-icon>
<el-tooltip effect="dark" :content="p.name" placement="top-start">
<span>{{ p.name }}</span>
</el-tooltip>
</div>
</div>
<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 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, child.name + '@|@' + day.date)"
:ref="(el: any) => setItemRef(el, p.name + '@|@' + day.date)"
></div>
</div>
</div>
<div
class="progress"
:style="gantt"
v-for="(gantt, index) in child.gantts"
v-for="(gantt, index) in p.gantts"
:key="index"
@mouseenter="e => handleHover(e, child)"
@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="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 class="tooltips" :style="tooltipsStyle">
<div class="status">已逾期{{ tooltipContent.day }}</div>
<div class="charger">负责人{{ tooltipContent.name }}</div>
<div class="tooltips" :style="tooltipsStyle">
<div class="status">已逾期{{ tooltipContent.day }}</div>
<div class="charger">负责人{{ tooltipContent.name }}</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 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>
</template>
@ -490,6 +492,9 @@ const dateList = computed(() => {
</script>
<style scoped lang="scss">
.main-box {
overflow-x: scroll;
}
.gantt-box {
box-sizing: border-box;
min-width: 1120px;

View File

@ -550,7 +550,9 @@ onMounted(() => {
.table-box {
height: 100%;
position: relative;
overflow-x: scroll;
.search-select {
min-width: 1470px;
box-shadow: none;
:deep() {
.el-card {
@ -564,11 +566,12 @@ onMounted(() => {
:deep(.el-card__body) {
display: flex;
align-items: center;
flex-wrap: wrap;
// flex-wrap: wrap;
}
}
}
.statistics-table {
min-width: 1430px;
height: calc(100% - 100px);
box-shadow: none;
margin-top: 20px;

View File

@ -342,6 +342,7 @@ onMounted(async () => {
</script>
<style scoped lang="scss">
.table-box {
overflow-x: scroll;
.echart-all {
display: flex;
justify-content: space-between;

View File

@ -604,6 +604,9 @@ watch(
</script>
<style scoped lang="scss">
.main-box {
overflow-x: scroll;
}
.leftMenu {
width: 300px;
border-radius: 8px;

View File

@ -3,6 +3,7 @@
display: flex;
width: 100%;
height: 100%;
overflow-x: scroll;
.leftMenu {
width: 300px;
border-radius: 8px;
@ -48,6 +49,7 @@
position: relative;
margin-left: 20px;
.search-select {
min-width: 1470px;
box-shadow: none;
:deep() {
.el-card {
@ -62,7 +64,7 @@
:deep(.el-card__body) {
display: flex;
align-items: center;
flex-wrap: wrap;
// flex-wrap: wrap;
}
span {
color: var(--el-menu-text-color);
@ -70,6 +72,7 @@
}
}
.statistics-table {
min-width: 1430px;
height: calc(100% - 100px);
background-color: var(--el-menu-bg-color);
box-shadow: none;

View File

@ -13,13 +13,22 @@
padding: 10px;
height: calc(100% - 150px);
}
:deep(.el-card) {
margin: 2px 10px 10px;
border: none;
border-radius: 8px;
height: 56px;
// padding-bottom: 6px;
}
:deep(.el-card__body) {
padding: 12px 0 0 36px;
.tab-card {
:deep() {
.el-card {
margin: 2px 10px 10px;
border: none;
border-radius: 8px;
height: 56px;
}
.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;
// }

View File

@ -9,10 +9,12 @@
</template>
</TreeFilter>
<div class="table-box">
<el-card shadow="never">
<el-button :class="showPage == false ? 'blueText' : ''" @click="showPage = false" link>基本信息</el-button>
<el-button :class="showPage == true ? 'blueText' : ''" @click="showPage = true" link>用户管理</el-button>
</el-card>
<div class="tab-card">
<el-card shadow="never">
<el-button :class="showPage == false ? 'blueText' : ''" @click="showPage = false" link>基本信息</el-button>
<el-button :class="showPage == true ? 'blueText' : ''" @click="showPage = true" link>用户管理</el-button>
</el-card>
</div>
<div class="base-box" v-show="!showPage">
<el-form style="padding: 10% 30%" :model="baseFrom" ref="ruleFormRef" label-width="150px">
<el-form-item label="上级部门:" prop="parentId">

View File

@ -1,121 +1,123 @@
<template>
<div class="gantt-box">
<div class="header">
<div class="left-content">
<div class="item" v-for="(item, index) in headerList" :key="index">
<div class="color-block" :style="{ background: item.color }"></div>
<div class="label">{{ item.label }}</div>
<div class="main-box">
<div class="gantt-box">
<div class="header">
<div class="left-content">
<div class="item" v-for="(item, index) in headerList" :key="index">
<div class="color-block" :style="{ background: item.color }"></div>
<div class="label">{{ item.label }}</div>
</div>
</div>
<div class="right-content">备注更新进度填报内容后该甘特图将自动更新</div>
</div>
<div class="right-content">备注更新进度填报内容后该甘特图将自动更新</div>
</div>
<div class="gantt-chart" v-if="projects.length > 0">
<div class="table" @scroll="handleScroll">
<div class="thead">
<div class="row">
<div class="td fixed_1">分部分项工程名称</div>
<div class="td fixed_2">开始日期</div>
<div class="td fixed_3" style="border-right: 1px solid #cbd1df">完成日期</div>
<div class="td" v-for="date in dateList" :key="date">
<div class="date">
<div class="month">
{{ date }}
</div>
<div class="days">
<div class="day" v-for="day in getDays(date)" :key="day.num">
{{ day.num }}
<div class="gantt-chart" v-if="projects.length > 0">
<div class="table" @scroll="handleScroll">
<div class="thead">
<div class="row">
<div class="td fixed_1">分部分项工程名称</div>
<div class="td fixed_2">开始日期</div>
<div class="td fixed_3" style="border-right: 1px solid #cbd1df">完成日期</div>
<div class="td" v-for="date in dateList" :key="date">
<div class="date">
<div class="month">
{{ date }}
</div>
<div class="days">
<div class="day" v-for="day in getDays(date)" :key="day.num">
{{ day.num }}
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="tbody">
<div class="row-groups" :class="{ open: openedIndex === i }" v-for="(p, i) in projects" :key="p.name">
<div class="row">
<div class="td fixed_1" @click="handleOpen(i)" style="color: #333333; padding-left: 25px">
<el-icon
size="16"
v-if="openedIndex === i && p.children.length > 0"
:style="{ visibility: openedIndex === i && p.children.length > 0 ? 'visible' : 'hidden' }"
><caret-bottom
/></el-icon>
<el-icon
size="16"
v-else
:style="{ visibility: openedIndex != i && p.children.length > 0 ? 'visible' : 'hidden' }"
><caret-right
/></el-icon>
<el-tooltip effect="dark" :content="p.name" placement="top-start">
<span>{{ p.name }}</span>
</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 class="tbody">
<div class="row-groups" :class="{ open: openedIndex === i }" v-for="(p, i) in projects" :key="p.name">
<div class="row">
<div class="td fixed_1" @click="handleOpen(i)" style="color: #333333; padding-left: 25px">
<el-icon
size="16"
v-if="openedIndex === i && p.children.length > 0"
:style="{ visibility: openedIndex === i && p.children.length > 0 ? 'visible' : 'hidden' }"
><caret-bottom
/></el-icon>
<el-icon
size="16"
v-else
:style="{ visibility: openedIndex != i && p.children.length > 0 ? 'visible' : 'hidden' }"
><caret-right
/></el-icon>
<el-tooltip effect="dark" :content="p.name" placement="top-start">
<span>{{ p.name }}</span>
</el-tooltip>
</div>
</div>
<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 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, child.name + '@|@' + day.date)"
:ref="(el: any) => setItemRef(el, p.name + '@|@' + day.date)"
></div>
</div>
</div>
<div
class="progress"
:style="gantt"
v-for="(gantt, index) in child.gantts"
v-for="(gantt, index) in p.gantts"
:key="index"
@mouseenter="e => handleHover(e, child)"
@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="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 class="tooltips" :style="tooltipsStyle">
<div class="status">已逾期{{ tooltipContent.day }}</div>
<div class="charger">负责人{{ tooltipContent.name }}</div>
<div class="tooltips" :style="tooltipsStyle">
<div class="status">已逾期{{ tooltipContent.day }}</div>
<div class="charger">负责人{{ tooltipContent.name }}</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 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>
</template>
@ -523,6 +525,9 @@ const dateList = computed(() => {
</script>
<style scoped lang="scss">
.main-box {
overflow-x: scroll;
}
.gantt-box {
box-sizing: border-box;
min-width: 1120px;

View File

@ -587,7 +587,9 @@ onMounted(() => {
.table-box {
height: 100%;
position: relative;
overflow-x: scroll;
.search-select {
min-width: 1470px;
box-shadow: none;
:deep() {
.el-card {
@ -601,11 +603,12 @@ onMounted(() => {
:deep(.el-card__body) {
display: flex;
align-items: center;
flex-wrap: wrap;
// flex-wrap: wrap;
}
}
}
.statistics-table {
min-width: 1430px;
height: calc(100% - 100px);
box-shadow: none;
margin-top: 20px;