doway-coms 2.2.13 → 2.2.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -7,48 +7,31 @@
|
|
|
7
7
|
<div>
|
|
8
8
|
<a-space>
|
|
9
9
|
<a-radio-group
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
:size="'small'"
|
|
11
|
+
v-model="timeViewValue"
|
|
12
|
+
button-style="solid"
|
|
13
|
+
@change="timeViewChange"
|
|
14
14
|
>
|
|
15
|
-
<a-radio-button value="day">
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
<a-radio-button value="
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
<a-radio-button value="2">
|
|
22
|
-
2小时
|
|
23
|
-
</a-radio-button>
|
|
24
|
-
<a-radio-button value="4">
|
|
25
|
-
4小时
|
|
26
|
-
</a-radio-button>
|
|
27
|
-
<a-radio-button value="8">
|
|
28
|
-
8小时
|
|
29
|
-
</a-radio-button>
|
|
30
|
-
<a-radio-button value="12">
|
|
31
|
-
12小时
|
|
32
|
-
</a-radio-button>
|
|
15
|
+
<a-radio-button value="day">天</a-radio-button>
|
|
16
|
+
<a-radio-button value="1">1小时</a-radio-button>
|
|
17
|
+
<a-radio-button value="2">2小时</a-radio-button>
|
|
18
|
+
<a-radio-button value="4">4小时</a-radio-button>
|
|
19
|
+
<a-radio-button value="8">8小时</a-radio-button>
|
|
20
|
+
<a-radio-button value="12">12小时</a-radio-button>
|
|
33
21
|
</a-radio-group>
|
|
34
22
|
</a-space>
|
|
35
23
|
</div>
|
|
36
24
|
</div>
|
|
37
25
|
<vxe-grid
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
26
|
+
border
|
|
27
|
+
show-header-overflow
|
|
28
|
+
ref="headDay"
|
|
29
|
+
class="head-grid"
|
|
30
|
+
:size="'small'"
|
|
31
|
+
header-cell-class-name="header-cell-day"
|
|
44
32
|
>
|
|
45
33
|
<template #customSearchHeader>
|
|
46
|
-
<vxe-input
|
|
47
|
-
v-model="searchValue"
|
|
48
|
-
placeholder="搜索"
|
|
49
|
-
type="search"
|
|
50
|
-
@input="onSearch"
|
|
51
|
-
></vxe-input>
|
|
34
|
+
<vxe-input v-model="searchValue" placeholder="搜索" type="search" @input="onSearch"></vxe-input>
|
|
52
35
|
</template>
|
|
53
36
|
<template #dateWeekHeader="{ column }">
|
|
54
37
|
<div>
|
|
@@ -58,14 +41,13 @@
|
|
|
58
41
|
</template>
|
|
59
42
|
</vxe-grid>
|
|
60
43
|
<vxe-grid
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
>
|
|
68
|
-
</vxe-grid>
|
|
44
|
+
border
|
|
45
|
+
show-header-overflow
|
|
46
|
+
ref="headHour"
|
|
47
|
+
class="head-grid"
|
|
48
|
+
:size="'small'"
|
|
49
|
+
v-show="hourCols.length > 0"
|
|
50
|
+
></vxe-grid>
|
|
69
51
|
|
|
70
52
|
<!-- <div class="gantt-line-area" ref="lineArea">
|
|
71
53
|
<div
|
|
@@ -74,11 +56,11 @@
|
|
|
74
56
|
:key="loopLine"
|
|
75
57
|
:style="{ left: loopLine + 'px', height: lineHeight + 'px' }"
|
|
76
58
|
></div>
|
|
77
|
-
</div
|
|
59
|
+
</div>-->
|
|
78
60
|
<div
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
61
|
+
class="gantt-bar-tooltip"
|
|
62
|
+
v-if="ganttBarTooltip.show === true"
|
|
63
|
+
:style="{
|
|
82
64
|
left: ganttBarTooltip.left + 'px',
|
|
83
65
|
top: ganttBarTooltip.top + 'px'
|
|
84
66
|
}"
|
|
@@ -86,47 +68,48 @@
|
|
|
86
68
|
<slot name="itemTip" :item="ganttBarTooltip.item"></slot>
|
|
87
69
|
</div>
|
|
88
70
|
<vxe-grid
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
71
|
+
border
|
|
72
|
+
resizable
|
|
73
|
+
auto-resize
|
|
74
|
+
ref="bodyGrid"
|
|
75
|
+
show-overflow
|
|
76
|
+
class="mytable-scrollbar"
|
|
77
|
+
:show-header="false"
|
|
78
|
+
:size="'small'"
|
|
79
|
+
:height="computedHeight"
|
|
80
|
+
:row-config="{
|
|
99
81
|
isCurrent: isCurrent,
|
|
100
|
-
isHover: true
|
|
82
|
+
isHover: true,
|
|
101
83
|
}"
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
84
|
+
:treeConfig="treeConfig"
|
|
85
|
+
:cell-class-name="cellClassName"
|
|
86
|
+
:row-class-name="rowClassName"
|
|
87
|
+
@cell-click="cellClick"
|
|
88
|
+
@scroll="bodyScroll"
|
|
89
|
+
:loading="loading"
|
|
90
|
+
@filter-change="filterChangeEvent"
|
|
91
|
+
@toggle-tree-expand="toggleTreeExpand"
|
|
92
|
+
:checkbox-config="checkboxConfig"
|
|
110
93
|
>
|
|
111
94
|
<template #content="{ row, rowIndex }">
|
|
112
95
|
<div>
|
|
113
96
|
<div class="gantt-line-area" v-if="rowIndex === 0" ref="lineArea">
|
|
114
97
|
<div
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
98
|
+
class="gantt-line"
|
|
99
|
+
v-for="loopLine in lines"
|
|
100
|
+
:key="loopLine"
|
|
101
|
+
:style="{ left: loopLine + 'px', height: lineHeight + 'px' }"
|
|
119
102
|
></div>
|
|
120
103
|
</div>
|
|
121
104
|
<div
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
105
|
+
v-for="loopItem in row.items"
|
|
106
|
+
:key="loopItem.id"
|
|
107
|
+
:name="'gantt-bar'+loopItem.taskId"
|
|
108
|
+
:id="'gantt-bar'+loopItem.id"
|
|
109
|
+
class="gantt-bar"
|
|
110
|
+
@mouseenter="ganttBarMouseEnter($event, loopItem, rowIndex)"
|
|
111
|
+
@mouseleave="ganttBarMouseLeave($event, loopItem)"
|
|
112
|
+
:style="{
|
|
130
113
|
marginLeft: loopItem.left + 'px',
|
|
131
114
|
width: loopItem.width + 'px'
|
|
132
115
|
}"
|
|
@@ -144,22 +127,22 @@
|
|
|
144
127
|
|
|
145
128
|
<script>
|
|
146
129
|
import { Space, Radio } from "ant-design-vue";
|
|
147
|
-
import XEUtils from
|
|
148
|
-
import moment from
|
|
149
|
-
import draggable from
|
|
150
|
-
import resizeDetector from
|
|
130
|
+
import XEUtils from "xe-utils";
|
|
131
|
+
import moment from "moment";
|
|
132
|
+
import draggable from "vuedraggable";
|
|
133
|
+
import resizeDetector from "element-resize-detector";
|
|
151
134
|
export default {
|
|
152
135
|
name: "BaseGantt",
|
|
153
136
|
components: {
|
|
154
137
|
draggable,
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
138
|
+
"a-space": Space,
|
|
139
|
+
"a-radio-button": Radio.Button,
|
|
140
|
+
"a-radio-group": Radio.Group
|
|
158
141
|
},
|
|
159
142
|
data() {
|
|
160
143
|
return {
|
|
161
|
-
searchValue:
|
|
162
|
-
timeViewValue:
|
|
144
|
+
searchValue: "",
|
|
145
|
+
timeViewValue: "day",
|
|
163
146
|
loading: false,
|
|
164
147
|
rowColData: {},
|
|
165
148
|
minDate: null,
|
|
@@ -181,11 +164,11 @@ export default {
|
|
|
181
164
|
left: 0,
|
|
182
165
|
top: 0,
|
|
183
166
|
item: {},
|
|
184
|
-
color:
|
|
167
|
+
color: ""
|
|
185
168
|
},
|
|
186
169
|
rows: [],
|
|
187
|
-
weekDay: [
|
|
188
|
-
}
|
|
170
|
+
weekDay: ["周一", "周二", "周三", "周四", "周五", "周六", "周日"]
|
|
171
|
+
};
|
|
189
172
|
},
|
|
190
173
|
props: {
|
|
191
174
|
showSeachHeader: {
|
|
@@ -198,15 +181,15 @@ export default {
|
|
|
198
181
|
},
|
|
199
182
|
timeValue: {
|
|
200
183
|
type: String,
|
|
201
|
-
default:
|
|
184
|
+
default: "day"
|
|
202
185
|
},
|
|
203
186
|
height: {
|
|
204
|
-
default:
|
|
187
|
+
default: "auto"
|
|
205
188
|
},
|
|
206
189
|
leftCols: {
|
|
207
190
|
type: Array,
|
|
208
191
|
default: function() {
|
|
209
|
-
return [{ field:
|
|
192
|
+
return [{ field: "eqp", width: 100, fixed: "left" }];
|
|
210
193
|
}
|
|
211
194
|
},
|
|
212
195
|
cellClassName: {
|
|
@@ -217,34 +200,41 @@ export default {
|
|
|
217
200
|
type: Function,
|
|
218
201
|
default: function() {}
|
|
219
202
|
},
|
|
220
|
-
treeConfig:{
|
|
203
|
+
treeConfig: {
|
|
221
204
|
type: Object,
|
|
222
205
|
default: function() {
|
|
223
|
-
return null
|
|
206
|
+
return null;
|
|
224
207
|
}
|
|
225
|
-
}
|
|
208
|
+
},
|
|
209
|
+
checkboxConfig: {
|
|
210
|
+
type: Object,
|
|
211
|
+
default: function() {
|
|
212
|
+
return null;
|
|
213
|
+
}
|
|
214
|
+
},
|
|
226
215
|
},
|
|
227
216
|
computed: {
|
|
228
217
|
computedHeight: function() {
|
|
229
|
-
return this.height - this.headerHeight
|
|
218
|
+
return this.height - this.headerHeight;
|
|
230
219
|
}
|
|
231
220
|
},
|
|
232
221
|
mounted() {
|
|
233
|
-
|
|
234
222
|
let erd = resizeDetector({
|
|
235
|
-
strategy:
|
|
223
|
+
strategy: "scroll"
|
|
236
224
|
});
|
|
237
|
-
let gridBodyDiv = this.$refs.bodyGrid.$el.getElementsByClassName(
|
|
238
|
-
|
|
225
|
+
let gridBodyDiv = this.$refs.bodyGrid.$el.getElementsByClassName(
|
|
226
|
+
"vxe-table--body"
|
|
227
|
+
)[0];
|
|
228
|
+
let vm = this;
|
|
239
229
|
erd.listenTo(gridBodyDiv, () => {
|
|
240
|
-
|
|
230
|
+
vm.lineHeight = gridBodyDiv.clientHeight;
|
|
241
231
|
});
|
|
242
|
-
this.timeViewValue = this.timeValue
|
|
232
|
+
this.timeViewValue = this.timeValue;
|
|
243
233
|
},
|
|
244
234
|
created() {},
|
|
245
235
|
methods: {
|
|
246
|
-
toggleTreeExpand(scope){
|
|
247
|
-
|
|
236
|
+
toggleTreeExpand(scope) {
|
|
237
|
+
// console.debug(this.$refs.bodyGrid.$el.getElementsByClassName('vxe-table--body')[0].clientHeight)
|
|
248
238
|
},
|
|
249
239
|
filterChangeEvent({ column }) {},
|
|
250
240
|
// headerDayCellStyle({ column, columnIndex }){
|
|
@@ -257,28 +247,28 @@ export default {
|
|
|
257
247
|
* 视图改变后初始化表头
|
|
258
248
|
*/
|
|
259
249
|
setLoading(b) {
|
|
260
|
-
this.loading = b
|
|
250
|
+
this.loading = b;
|
|
261
251
|
},
|
|
262
252
|
timeViewChange() {
|
|
263
|
-
this.initHeaders(this.dateRange)
|
|
264
|
-
this.initContent()
|
|
253
|
+
this.initHeaders(this.dateRange);
|
|
254
|
+
this.initContent();
|
|
265
255
|
},
|
|
266
256
|
initHeaders(dateRange) {
|
|
267
|
-
this.dateRange = dateRange
|
|
268
|
-
let contentWidth = 0
|
|
269
|
-
let minDate = moment(this.dateRange[0])
|
|
270
|
-
let maxDate = moment(this.dateRange[1])
|
|
271
|
-
let splitCount = 1
|
|
272
|
-
let diffDays = maxDate.diff(minDate,
|
|
273
|
-
this.monthCols = []
|
|
274
|
-
this.dayCols = []
|
|
275
|
-
this.hourCols = []
|
|
276
|
-
this.lines = []
|
|
277
|
-
let bodyCols = []
|
|
278
|
-
this.fixedColWidth = 0
|
|
257
|
+
this.dateRange = dateRange;
|
|
258
|
+
let contentWidth = 0;
|
|
259
|
+
let minDate = moment(this.dateRange[0]);
|
|
260
|
+
let maxDate = moment(this.dateRange[1]);
|
|
261
|
+
let splitCount = 1;
|
|
262
|
+
let diffDays = maxDate.diff(minDate, "day");
|
|
263
|
+
this.monthCols = [];
|
|
264
|
+
this.dayCols = [];
|
|
265
|
+
this.hourCols = [];
|
|
266
|
+
this.lines = [];
|
|
267
|
+
let bodyCols = [];
|
|
268
|
+
this.fixedColWidth = 0;
|
|
279
269
|
for (let i = 0; i < this.leftCols.length; i++) {
|
|
280
|
-
if (this.leftCols[i].fixed ==
|
|
281
|
-
this.fixedColWidth = this.fixedColWidth + this.leftCols[i].width
|
|
270
|
+
if (this.leftCols[i].fixed == "left") {
|
|
271
|
+
this.fixedColWidth = this.fixedColWidth + this.leftCols[i].width;
|
|
282
272
|
}
|
|
283
273
|
let obj = {
|
|
284
274
|
field: this.leftCols[i].field,
|
|
@@ -287,15 +277,15 @@ export default {
|
|
|
287
277
|
width: this.leftCols[i].width
|
|
288
278
|
// filters:[{data:null}],
|
|
289
279
|
// filterRender:{name: 'input'}
|
|
290
|
-
}
|
|
291
|
-
if(this.leftCols[i].treeNode===true){
|
|
292
|
-
obj[
|
|
280
|
+
};
|
|
281
|
+
if (this.leftCols[i].treeNode === true) {
|
|
282
|
+
obj["treeNode"] = true;
|
|
293
283
|
}
|
|
294
284
|
|
|
295
285
|
if (this.leftCols[i].slots) {
|
|
296
|
-
obj.slots = this.leftCols[i].slots
|
|
286
|
+
obj.slots = this.leftCols[i].slots;
|
|
297
287
|
}
|
|
298
|
-
this.monthCols.push()
|
|
288
|
+
this.monthCols.push();
|
|
299
289
|
|
|
300
290
|
// tmp.filters=undefined
|
|
301
291
|
// tmp.filterRender=undefined
|
|
@@ -306,155 +296,155 @@ export default {
|
|
|
306
296
|
// this.dayCols.push(tmp)
|
|
307
297
|
// obj.filters=[{data:null}]
|
|
308
298
|
// obj.filterRender={name:'input'}
|
|
309
|
-
bodyCols.push(obj)
|
|
310
|
-
if (this.timeViewValue !==
|
|
311
|
-
this.splitHour = parseInt(this.timeViewValue)
|
|
312
|
-
this.hourCols.push(obj)
|
|
313
|
-
this.colWidth = 60
|
|
314
|
-
splitCount = 24 / this.splitHour
|
|
299
|
+
bodyCols.push(obj);
|
|
300
|
+
if (this.timeViewValue !== "day") {
|
|
301
|
+
this.splitHour = parseInt(this.timeViewValue);
|
|
302
|
+
this.hourCols.push(obj);
|
|
303
|
+
this.colWidth = 60;
|
|
304
|
+
splitCount = 24 / this.splitHour;
|
|
315
305
|
} else {
|
|
316
|
-
this.splitHour = 24
|
|
317
|
-
this.colWidth = 130
|
|
318
|
-
splitCount = 1
|
|
306
|
+
this.splitHour = 24;
|
|
307
|
+
this.colWidth = 130;
|
|
308
|
+
splitCount = 1;
|
|
319
309
|
}
|
|
320
310
|
}
|
|
321
311
|
|
|
322
312
|
let tmp = {
|
|
323
|
-
type:
|
|
324
|
-
fixed:
|
|
325
|
-
title:
|
|
313
|
+
type: "seq",
|
|
314
|
+
fixed: "left",
|
|
315
|
+
title: "",
|
|
326
316
|
|
|
327
317
|
width: this.fixedColWidth
|
|
328
|
-
}
|
|
318
|
+
};
|
|
329
319
|
if (this.showSeachHeader) {
|
|
330
320
|
tmp.slots = {
|
|
331
|
-
header:
|
|
332
|
-
}
|
|
321
|
+
header: "customSearchHeader"
|
|
322
|
+
};
|
|
333
323
|
}
|
|
334
|
-
this.dayCols.push(tmp)
|
|
324
|
+
this.dayCols.push(tmp);
|
|
335
325
|
|
|
336
|
-
let tempYearMonthCol = null
|
|
326
|
+
let tempYearMonthCol = null;
|
|
337
327
|
for (let i = 0; i <= diffDays; i++) {
|
|
338
328
|
if (tempYearMonthCol === null) {
|
|
339
329
|
tempYearMonthCol = {
|
|
340
|
-
title: minDate.format(
|
|
341
|
-
field: minDate.format(
|
|
330
|
+
title: minDate.format("YYYY-MM"),
|
|
331
|
+
field: minDate.format("YYYY-MM"),
|
|
342
332
|
width: this.colWidth * splitCount
|
|
343
|
-
}
|
|
344
|
-
this.monthCols.push(tempYearMonthCol)
|
|
333
|
+
};
|
|
334
|
+
this.monthCols.push(tempYearMonthCol);
|
|
345
335
|
} else {
|
|
346
336
|
tempYearMonthCol.width =
|
|
347
|
-
|
|
337
|
+
tempYearMonthCol.width + this.colWidth * splitCount;
|
|
348
338
|
}
|
|
349
339
|
|
|
350
340
|
//添加天数
|
|
351
341
|
let tempDayCol = {
|
|
352
|
-
title: minDate.format(
|
|
353
|
-
field: minDate.format(
|
|
342
|
+
title: minDate.format("YYYY年MM月DD日"),
|
|
343
|
+
field: minDate.format("YYYY-MM-DD"),
|
|
354
344
|
width: this.colWidth * splitCount,
|
|
355
|
-
align:
|
|
345
|
+
align: "center",
|
|
356
346
|
slots: {
|
|
357
|
-
header:
|
|
347
|
+
header: "dateWeekHeader"
|
|
358
348
|
},
|
|
359
349
|
params: {
|
|
360
|
-
date: minDate.format(
|
|
361
|
-
week: this.weekDay[minDate.format(
|
|
350
|
+
date: minDate.format("YYYY年MM月DD日"),
|
|
351
|
+
week: this.weekDay[minDate.format("E") - 1]
|
|
362
352
|
}
|
|
363
|
-
}
|
|
364
|
-
this.dayCols.push(tempDayCol)
|
|
353
|
+
};
|
|
354
|
+
this.dayCols.push(tempDayCol);
|
|
365
355
|
//添加小时
|
|
366
|
-
if (this.timeViewValue !==
|
|
356
|
+
if (this.timeViewValue !== "day") {
|
|
367
357
|
for (let j = 0; j < splitCount; j++) {
|
|
368
|
-
let tempHour = j * this.splitHour
|
|
369
|
-
tempHour =
|
|
370
|
-
tempHour = tempHour.substr(tempHour.length - 2, 2)
|
|
371
|
-
contentWidth = contentWidth + this.colWidth
|
|
358
|
+
let tempHour = j * this.splitHour;
|
|
359
|
+
tempHour = "000" + tempHour;
|
|
360
|
+
tempHour = tempHour.substr(tempHour.length - 2, 2);
|
|
361
|
+
contentWidth = contentWidth + this.colWidth;
|
|
372
362
|
this.hourCols.push({
|
|
373
|
-
field: minDate.format(
|
|
363
|
+
field: minDate.format("YYYY-MM-DD") + " " + tempHour + ":00:00",
|
|
374
364
|
title: tempHour,
|
|
375
365
|
width: this.colWidth
|
|
376
|
-
})
|
|
366
|
+
});
|
|
377
367
|
}
|
|
378
368
|
} else {
|
|
379
|
-
contentWidth = contentWidth + tempDayCol.width
|
|
369
|
+
contentWidth = contentWidth + tempDayCol.width;
|
|
380
370
|
}
|
|
381
|
-
minDate.add(1,
|
|
382
|
-
if (minDate.format(
|
|
383
|
-
tempYearMonthCol = null
|
|
371
|
+
minDate.add(1, "day");
|
|
372
|
+
if (minDate.format("YYYY-MM") !== tempYearMonthCol.field) {
|
|
373
|
+
tempYearMonthCol = null;
|
|
384
374
|
}
|
|
385
375
|
}
|
|
386
|
-
let colLength = this.dayCols.length
|
|
376
|
+
let colLength = this.dayCols.length;
|
|
387
377
|
// this.$refs.headMonth.reloadColumn(this.monthCols)
|
|
388
|
-
this.$refs.headDay.reloadColumn(this.dayCols)
|
|
389
|
-
if (this.timeViewValue !==
|
|
390
|
-
this.headerHeight = 160
|
|
391
|
-
colLength = this.hourCols.length
|
|
392
|
-
this.$refs.headHour.reloadColumn(this.hourCols)
|
|
378
|
+
this.$refs.headDay.reloadColumn(this.dayCols);
|
|
379
|
+
if (this.timeViewValue !== "day") {
|
|
380
|
+
this.headerHeight = 160;
|
|
381
|
+
colLength = this.hourCols.length;
|
|
382
|
+
this.$refs.headHour.reloadColumn(this.hourCols);
|
|
393
383
|
} else {
|
|
394
|
-
this.headerHeight = 120
|
|
384
|
+
this.headerHeight = 120;
|
|
395
385
|
}
|
|
396
386
|
for (let i = 0; i < colLength; i++) {
|
|
397
|
-
this.lines.push(i * this.colWidth)
|
|
387
|
+
this.lines.push(i * this.colWidth);
|
|
398
388
|
}
|
|
399
389
|
bodyCols.push({
|
|
400
|
-
field:
|
|
401
|
-
title:
|
|
390
|
+
field: "content",
|
|
391
|
+
title: "内容",
|
|
402
392
|
width: contentWidth,
|
|
403
|
-
className:
|
|
393
|
+
className: "custom-cell",
|
|
404
394
|
slots: {
|
|
405
|
-
default:
|
|
395
|
+
default: "content"
|
|
406
396
|
}
|
|
407
|
-
})
|
|
408
|
-
this.$refs.bodyGrid.reloadColumn(bodyCols)
|
|
397
|
+
});
|
|
398
|
+
this.$refs.bodyGrid.reloadColumn(bodyCols);
|
|
409
399
|
// this.$refs.lineArea.style.marginLeft =
|
|
410
400
|
// ((this.fixedColWidth-this.colWidth)) + 'px'
|
|
411
401
|
},
|
|
412
402
|
loadData(rows) {
|
|
413
|
-
this.rows = rows
|
|
414
|
-
this.initContent()
|
|
403
|
+
this.rows = rows;
|
|
404
|
+
this.initContent();
|
|
415
405
|
},
|
|
416
406
|
initContent() {
|
|
417
|
-
let splitMinutes = XEUtils.multiply(this.splitHour, 60)
|
|
418
|
-
let minDateTime = this.dateRange[0]
|
|
407
|
+
let splitMinutes = XEUtils.multiply(this.splitHour, 60);
|
|
408
|
+
let minDateTime = this.dateRange[0];
|
|
419
409
|
for (let i = 0; i < this.rows.length; i++) {
|
|
420
|
-
this.rows[i][
|
|
410
|
+
this.rows[i]["content"] = "";
|
|
421
411
|
for (let j = 0; j < this.rows[i].items.length; j++) {
|
|
422
412
|
let diffMiniutes = moment(this.rows[i].items[j].start).diff(
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
)
|
|
413
|
+
moment(minDateTime),
|
|
414
|
+
"minutes"
|
|
415
|
+
);
|
|
426
416
|
let tempLeft = XEUtils.divide(
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
)
|
|
417
|
+
XEUtils.multiply(this.colWidth, diffMiniutes),
|
|
418
|
+
splitMinutes
|
|
419
|
+
);
|
|
430
420
|
//计算左边距
|
|
431
|
-
this.rows[i].items[j][
|
|
421
|
+
this.rows[i].items[j]["left"] = tempLeft;
|
|
432
422
|
//计算宽度
|
|
433
423
|
let ordMinutes = moment(this.rows[i].items[j].end).diff(
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
)
|
|
424
|
+
moment(this.rows[i].items[j].start),
|
|
425
|
+
"minutes"
|
|
426
|
+
);
|
|
437
427
|
let tempWidth = XEUtils.divide(
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
)
|
|
441
|
-
this.rows[i].items[j][
|
|
428
|
+
XEUtils.multiply(this.colWidth, ordMinutes),
|
|
429
|
+
splitMinutes
|
|
430
|
+
);
|
|
431
|
+
this.rows[i].items[j]["width"] = tempWidth;
|
|
442
432
|
}
|
|
443
433
|
}
|
|
444
|
-
this.lineHeight = this.rows.length * 40
|
|
445
|
-
this.$refs.bodyGrid.reloadData(this.rows)
|
|
434
|
+
this.lineHeight = this.rows.length * 40;
|
|
435
|
+
this.$refs.bodyGrid.reloadData(this.rows);
|
|
446
436
|
},
|
|
447
437
|
ganttBarMouseEnter(evt, ordInfo, rowIndex) {
|
|
448
|
-
this.ganttBarTooltip.left = evt.clientX //ordInfo.left + this.eqpWidth
|
|
438
|
+
this.ganttBarTooltip.left = evt.clientX; //ordInfo.left + this.eqpWidth
|
|
449
439
|
this.ganttBarTooltip.top =
|
|
450
|
-
|
|
451
|
-
this.ganttBarTooltip.item = ordInfo
|
|
452
|
-
this.ganttBarTooltip.show = true
|
|
453
|
-
this.$emit(
|
|
440
|
+
evt.clientY + evt.target.offsetHeight - evt.offsetY; // (rowIndex + 1) * this.rowHeight
|
|
441
|
+
this.ganttBarTooltip.item = ordInfo;
|
|
442
|
+
this.ganttBarTooltip.show = true;
|
|
443
|
+
this.$emit("mouseEnter", ordInfo);
|
|
454
444
|
},
|
|
455
445
|
ganttBarMouseLeave(evt, ordInfo) {
|
|
456
|
-
this.ganttBarTooltip.show = false
|
|
457
|
-
this.$emit(
|
|
446
|
+
this.ganttBarTooltip.show = false;
|
|
447
|
+
this.$emit("mouseLeave", ordInfo);
|
|
458
448
|
},
|
|
459
449
|
bodyScroll(scrollInfo) {
|
|
460
450
|
if (scrollInfo.isX === true) {
|
|
@@ -462,27 +452,27 @@ export default {
|
|
|
462
452
|
// (scrollInfo.scrollLeft-(this.fixedColWidth-this.colWidth)) * -1 + 'px'
|
|
463
453
|
|
|
464
454
|
// this.$refs.headMonth.scrollTo(scrollInfo.scrollLeft)
|
|
465
|
-
this.$refs.headDay.scrollTo(scrollInfo.scrollLeft)
|
|
466
|
-
this.$refs.headHour.scrollTo(scrollInfo.scrollLeft)
|
|
455
|
+
this.$refs.headDay.scrollTo(scrollInfo.scrollLeft);
|
|
456
|
+
this.$refs.headHour.scrollTo(scrollInfo.scrollLeft);
|
|
467
457
|
}
|
|
468
458
|
},
|
|
469
459
|
setCurrentRow(row) {
|
|
470
|
-
this.$refs.bodyGrid.setCurrentRow(row)
|
|
460
|
+
this.$refs.bodyGrid.setCurrentRow(row);
|
|
471
461
|
},
|
|
472
462
|
getTableData() {
|
|
473
|
-
return this.$refs.bodyGrid.getTableData().fullData
|
|
463
|
+
return this.$refs.bodyGrid.getTableData().fullData;
|
|
474
464
|
},
|
|
475
465
|
cellClick(scope) {
|
|
476
|
-
this.$emit(
|
|
466
|
+
this.$emit("cellClick", scope);
|
|
477
467
|
},
|
|
478
468
|
onSearch() {
|
|
479
|
-
this.$emit(
|
|
469
|
+
this.$emit("search", this.searchValue);
|
|
480
470
|
},
|
|
481
471
|
scrollRow(row) {
|
|
482
|
-
this.$refs.bodyGrid.scrollToRow(row)
|
|
472
|
+
this.$refs.bodyGrid.scrollToRow(row);
|
|
483
473
|
}
|
|
484
474
|
}
|
|
485
|
-
}
|
|
475
|
+
};
|
|
486
476
|
</script>
|
|
487
477
|
|
|
488
478
|
<style lang="scss">
|
|
@@ -494,10 +484,10 @@ export default {
|
|
|
494
484
|
padding-right: 0px !important;
|
|
495
485
|
}
|
|
496
486
|
.head-grid
|
|
497
|
-
.vxe-table
|
|
498
|
-
.vxe-table--render-wrapper
|
|
499
|
-
.vxe-table--main-wrapper
|
|
500
|
-
.vxe-table--body-wrapper {
|
|
487
|
+
.vxe-table
|
|
488
|
+
.vxe-table--render-wrapper
|
|
489
|
+
.vxe-table--main-wrapper
|
|
490
|
+
.vxe-table--body-wrapper {
|
|
501
491
|
height: 0px !important;
|
|
502
492
|
}
|
|
503
493
|
.head-grid .vxe-table .vxe-table--empty-content {
|