This commit is contained in:
shijing 2021-12-17 15:11:55 +08:00
parent 65280b7411
commit 88d2e747d9
2 changed files with 173 additions and 182 deletions

View File

@ -2,7 +2,6 @@
<div
class="slider"
ref="slider"
:style="{ width: '100%', display: inline-block}"
>
<div
class="process"
@ -113,6 +112,8 @@ export default {
border-radius: 3px;
cursor: text;
user-select: none;
width: 100%;
display: inline-block
}
.slider .process {
position: absolute;

View File

@ -1,4 +1,5 @@
<template>
<div>
<div class="chart" ref="chart">
<div class="left" :style="{ width: rightLineX + 'px' }">
<leftMenu
@ -157,10 +158,12 @@
</div>
<div class="lineBG" @scroll="handlerBGScroll" ref="lineBG">
<template v-for="(item, index) in computedList">
<!--<div :key="item.id" class="tetst">{{item.id}}</div>-->
<!--<div :key="item.id" class="tetst">{{item.isShow}}</div>-->
<div
v-show="item.isShow"
:ref="'line' + item.id"
:key="item.id + index"
class="line"
:style="{
left: item.left + 'px',
@ -270,6 +273,7 @@
</transition>
</div>
</div>
</div>
</template>
<script>
@ -284,8 +288,8 @@
},
data() {
return {
//当前项是否是子集
disable: true,
//当前项是否是子集
isChildren: false,
dialogVal: false,
//title
@ -375,13 +379,13 @@
let that = this;
getPlanGantt({}).then(res=>{
if(res.code===200){
debugger;
// debugger;
let arr =[];
let list = res.data.results;
list.forEach(item => {
if (!item.children || item.children.length < 1) {
let startTime = new Date(item.startTime).getTime();
let endTime = new Date(item.endDate).getTime();
let startTime = new Date(item.start_date).getTime();
let endTime = new Date(item.end_date).getTime();
let obj=new Object();
obj.name=item.number;
obj.id=item.id;
@ -391,19 +395,19 @@
obj.planTime = [startTime,endTime];
obj.per=item.count;
obj.per1=item.count_real;
obj.type=3;
obj.type=1;
obj.isShow= true;
arr.push(obj);
} else if (item.children && item.children.length >= 1) {
let startTime = new Date(item.start_date).getTime();
let endTime = new Date(item.start_date).getTime();
let endTime = new Date(item.end_date).getTime();
debugger;
let temp =[];
let parentId = item.id;
let children = item.children;
children.forEach(child => {
let start = new Date(item.start_date).getTime();
let end = new Date(item.end_date).getTime();
let start = new Date(child.start_date).getTime();
let end = new Date(child.end_date).getTime();
let objChild = new Object();
objChild.name = child.number;
objChild.id = child.id;
@ -434,7 +438,7 @@
arr.push(obj);
}
that.list = arr;
that.handlerCheckList(arr);
that.handlerCheckList(that.list);
});
console.log(that.list);
}else{
@ -444,7 +448,7 @@
},
computed: {
computedList() {
debugger;
// debugger;
console.log(this.list);
let arr = [];
this.list.forEach(item => {
@ -489,7 +493,7 @@
//过滤导入的数据
handlerCheckList(list) {
list.forEach((item, index) => {
item.planTime = [];
item.planTime = [item.startTime, item.endTime];
item.left = this.computedTimeWidth(item.startTime);
item.widthMe = item.widthChild = this.computedTimeWidth(item.startTime, item.endTime) ;
item.isShow = true;
@ -499,14 +503,11 @@
item.isexpand = true;
if (item.children.length > 0) {
item.children.forEach((k, i) => {
k.planTime = [];
k.top = item.top + i * 40 + 35;
k.planTime = [k.startTime, k.endTime];
k.top = item.top + i * 40 + 40;
k.isShow = true;
k.left = this.computedTimeWidth(k.startTime);
k.widthMe = k.widthChild = this.computedTimeWidth(
k.startTime,
k.endTime
);
k.widthMe = k.widthChild = this.computedTimeWidth(k.startTime,k.endTime,k);
});
}
}
@ -518,14 +519,11 @@
item.isexpand = true;
if (item.children.length > 0) {
item.children.forEach((z, o) => {
z.planTime = [];
z.planTime = [z.startTime, z.endTime];
z.top = item.top + o * 40+40;
z.isShow = true;
z.left = this.computedTimeWidth(z.startTime);
z.widthMe = z.widthChild = this.computedTimeWidth(
z.startTime,
z.endTime
);
z.widthMe = z.widthChild = this.computedTimeWidth(z.startTime, z.endTime,z);
});
}
}
@ -570,21 +568,15 @@
},
// 根据时间计算距离
computedTimeWidth(startTime, endTime) {
let start = new Date(startTime).getTime();
let end = new Date(endTime).getTime();
let left =
(Math.floor(
start - new Date(`${this.currentYear - 1}/01/01`).getTime()
) /
(1000 * 60 * 60 * 24)) *
this.currentDaySize.value;
let width =
(Math.floor(end - start) / (1000 * 60 * 60 * 24)) *
this.currentDaySize.value +
this.currentDaySize.value;
if (!endTime) {
let left =
(Math.floor( startTime - new Date(`${this.currentYear - 1}/01/01`).getTime() ) /
(1000 * 60 * 60 * 24)) *this.currentDaySize.value;
return left;
} else {
let width = (Math.floor(endTime - startTime) / (1000 * 60 * 60 * 24)) * this.currentDaySize.value + this.currentDaySize.value;
debugger;
console.log(width);
return width;
}
},
@ -697,9 +689,8 @@
behavior: "smooth"
});
},
//更改daySize
//更改daySize-----按天/按周/按月
handleSetDaySize(item) {
// console.log(item);
this.currentDaySize = item;
this.days.forEach((item, index) => {
item.width = (index + 1) * this.currentDaySize.value;
@ -797,8 +788,7 @@
* @param {Boolean|String} time
*/
computedWithTime(width, time) {
let startTime =
(width / this.currentDaySize.value) * (1000 * 60 * 60 * 24) +
let startTime = (width / this.currentDaySize.value) * (1000 * 60 * 60 * 24) +
new Date(`${this.currentYear - 1}/01/01`).getTime();
let s = new Date(startTime);
if (time && time == true) {