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' 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='

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;
// }

View File

@ -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">

View File

@ -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;

View File

@ -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;