| | |
| | | </template> |
| | | |
| | | <script> |
| | | import { gantt } from '@/components/dhtmlxGantt' |
| | | import { gantt } from '@/components/dhtmlxGantt' // 目前dhtmlxgantt版本8.0.x |
| | | import '@/components/dhtmlxGantt/codebase/dhtmlxgantt.css' |
| | | import { handleDateReduceOneDay, handleDatetime, handleDatetime2 } from '@/utils/global' |
| | | import { nanoid } from 'nanoid' |
| | |
| | | { code: 'time', name: '时间优先' } |
| | | ], |
| | | pickerOptions: { |
| | | disabledDate(time) { |
| | | return time.getTime() <= Date.now() - 24 * 60 * 60 * 1000 |
| | | } |
| | | // disabledDate(time) { |
| | | // return time.getTime() <= Date.now() - 24 * 60 * 60 * 1000 |
| | | // } |
| | | } |
| | | } |
| | | }, |
| | |
| | | item.children.forEach((it, ind) => { |
| | | // 这里应该要生成一个以设备维度为基础的数组 不重不漏 |
| | | if (!newArr.map(i => i.partCode).includes(it.AdvaDevicNumber)) { |
| | | console.log(' it.AdvaDevicNumber,', it.AdvaDevicNumber) |
| | | newArr.push({ |
| | | id: it.AdvaDevicNumber, |
| | | type: 'project', |
| | | text: '我是父级', |
| | | partName: it.AdvaDevicName, |
| | | partCode: it.AdvaDevicNumber, |
| | | start_date: handleDatetime2(item.YearDate + ' ' + it.OneStartDate.split('~')[0]), // 这个是无效的,只是为了预排prepareArrange方法里面不报错 |
| | | end_date: handleDatetime2(item.YearDate + ' ' + it.OneStartDate.split('~')[1]), // 这个是无效的,只是为了预排prepareArrange方法里面不报错 |
| | | // duration: this.calculateTimeRangeInMinutes(it.OneStartDate), |
| | | checked: false, |
| | | progress: 0.6, |
| | | parent: 0, |
| | | saleOrder: 'SO-2026-01001', |
| | | open: true |
| | | }) |
| | | console.log(it.AdvaDevicNumber + ind.toString(), 999) |
| | | newArr.push({ |
| | | id: it.AdvaDevicNumber + ind.toString(), |
| | | // id: it.AdvaDevicNumber, |
| | | type: 'project', |
| | | text: '任务名称预留', |
| | | partName: it.AdvaDevicName, |
| | |
| | | render: 'split', // 用于在一个工作时间段内显示不下,需要进行分割显示 |
| | | checked: false, |
| | | progress: 0, |
| | | parent: 0, |
| | | parent: it.AdvaDevicNumber, |
| | | // parent: it.AdvaDevicNumber, |
| | | saleOrder: 'SO-2026-01001' |
| | | }) |
| | | } |
| | |
| | | for (let i = 0; i < 5; i++) { // 这次循环是为了显示产能 |
| | | if (it[this.fivePeriodsTimeName[i]]) { |
| | | const duration = this.calculateTimeRangeInMinutes(it[this.fivePeriodsTimeName[i]]) // 工期 单位 分钟 |
| | | console.log(it.AdvaDevicNumber + ind.toString(), 123) |
| | | newArr.push({ |
| | | // id: index.toString() + ind.toString() + i.toString(), |
| | | id: nanoid(), |
| | |
| | | duration, |
| | | checked: false, |
| | | progress: 0, |
| | | parent: it.AdvaDevicNumber, |
| | | parent: it.AdvaDevicNumber + ind.toString(), |
| | | // parent: it.AdvaDevicNumber, |
| | | saleOrder: 'SO-2026-01001', |
| | | // 要在每一个时间段内算出能生产多少个 工期(分钟)乘以60 除以生产节拍 * 稼动率 |
| | | producedCount: (duration * 60 / it.AdvaDevicRhythm) * (it.AdvaDevicCropMob / 100), |
| | |
| | | duration: this.calculateTimeRangeInMinutes(item.time_start.split(' ')[1] + '~' + item.time_end.split(' ')[1]), |
| | | checked: false, |
| | | progress: 0, |
| | | parent: item.eqp_code, |
| | | parent: item.eqp_code + '0', |
| | | saleOrder: 'SO-2026-01001', |
| | | producedCount: item.alloc_qty |
| | | }) |