修改前暂存

This commit is contained in:
mgw
2023-09-22 09:31:56 +08:00
parent e9e25c582e
commit 9dc653694a
9 changed files with 146 additions and 11 deletions

View File

@@ -684,10 +684,18 @@ export default AbstractRenderer.extend(WidgetAdapterMixin, {
const stopDate = this.state.stopDate;
let day = this.state.startDate;
const dates = [];
while (day <= stopDate) {
dates.push(day);
day = day.clone().add(1, token);
if (this.state.scale == "day") {
while (day <= stopDate) {
dates.push(day);
day = day.clone().add(8, token);
}
} else {
while (day <= stopDate) {
dates.push(day);
day = day.clone().add(1, token);
}
}
console.log(dates)
return dates;
},
/**
@@ -806,6 +814,7 @@ export default AbstractRenderer.extend(WidgetAdapterMixin, {
* @override
*/
async _renderView() {
console.log('this.state', this.state)
const oldRowWidgets = Object.keys(this.rowWidgets).map((rowId) => {
return this.rowWidgets[rowId];
});

View File

@@ -261,12 +261,18 @@ var GanttRow = Widget.extend({
_adaptPills: function () {
var self = this;
var dateStartField = this.state.dateStartField;
console.log("dateStartField",dateStartField)
var dateStopField = this.state.dateStopField;
console.log("dateStopField",dateStopField)
var ganttStartDate = this.state.startDate;
console.log("ganttStartDate",ganttStartDate)
var ganttStopDate = this.state.stopDate;
console.log("ganttStopDate",ganttStopDate)
this.pills.forEach(function (pill) {
var pillStartDate = self._convertToUserTime(pill[dateStartField]);
console.log("pillStartDate",pillStartDate)
var pillStopDate = self._convertToUserTime(pill[dateStopField]);
console.log("pillStopDate",pillStopDate)
if (pillStartDate < ganttStartDate) {
pill.startDate = ganttStartDate;
pill.disableStartResize = true;
@@ -459,13 +465,44 @@ var GanttRow = Widget.extend({
let margin;
switch (self.state.scale) {
case 'day':
left = pill.startDate.diff(pill.startDate.clone().startOf('hour'), 'minutes');
pill.leftMargin = (left / 60) * 100;
// left = pill.startDate.diff(pill.startDate.clone().startOf('hour'), 'minutes');
// console.log('left', left)
// pill.leftMargin = (left / 60) * 100;
// console.log('pill.leftMargin', pill.leftMargin)
// diff = pill.stopDate.diff(pill.startDate, 'minutes');
// console.log('diff', diff)
// var gapSize = pill.stopDate.diff(pill.startDate, 'hours') - 1; // Eventually compensate border(s) width
// console.log('gapSize', gapSize)
// widthPill = (diff / 60) * 100;
// console.log('widthPill', widthPill)
// margin = pill.aggregatedPills ? 0 : 4;
// console.log('margin', margin)
// pill.width = gapSize > 0 ? `calc(${widthPill}% + ${gapSize}px - ${margin}px)` : `calc(${widthPill}% - ${margin}px)`;
// console.log('pill.width', pill.width)
// break;
left = pill.startDate.diff(pill.startDate.clone().startOf('hour'), 'minutes');
console.log('left', left)
left = (left / (8 * 60)) * 100; // 修改这里以8小时为单位
console.log('adjusted left', left)
pill.leftMargin = left;
diff = pill.stopDate.diff(pill.startDate, 'minutes');
var gapSize = pill.stopDate.diff(pill.startDate, 'hours') - 1; // Eventually compensate border(s) width
widthPill = (diff / 60) * 100;
console.log('diff', diff)
diff = (diff / (8 * 60)) * 100; // 修改这里以8小时为单位
console.log('adjusted diff', diff)
var gapSize = pill.stopDate.diff(pill.startDate, 'hours') / 8 - 1; // 修改这里以8小时为单位
console.log('gapSize', gapSize)
widthPill = diff;
console.log('widthPill', widthPill)
margin = pill.aggregatedPills ? 0 : 4;
console.log('margin', margin)
pill.width = gapSize > 0 ? `calc(${widthPill}% + ${gapSize}px - ${margin}px)` : `calc(${widthPill}% - ${margin}px)`;
console.log('pill.width', pill.width)
break;
case 'week':
case 'month':

View File

@@ -76,8 +76,17 @@
<div t-attf-class="col position-relative o_gantt_header_cell text-center p-2 #{isToday? 'o_gantt_today' : ''} ">
<t t-if="widget.state.scale in formats" t-esc="slot.format(formats[widget.state.scale])"/>
<small t-else="">
<b t-esc="slot.format('k')"/>
<span class="d-block d-xl-inline-block" t-esc="slot.format('a')"/>
<t t-if="slot.format('k') == 24">
<div>夜班</div>
</t>
<t t-if="slot.format('k') == 8">
<div>早班</div>
</t>
<t t-if="slot.format('k') == 16">
<div>晚班</div>
</t>
<!-- <b t-esc="slot.format('k')"/> -->
<!-- <span class="d-block d-xl-inline-block" t-esc="slot.format('a')"/> -->
</small>
</div>
</t>