| | |
| | | <el-radio |
| | | v-model="radioSelectedId" |
| | | :label="row.id" |
| | | style="color: transparent;padding-left: 10px;" |
| | | @change.native="getCurrentRowTop(row.id)" |
| | | /> |
| | | </template> |
| | |
| | | |
| | | <!-- 自动排程部分的代码--> |
| | | <div class="autoScheduling"> |
| | | <el-tabs> |
| | | <el-row> |
| | | <el-col :span="7" :offset="1"> |
| | | <span class="t_size" style="margin-left:7px">排程日期</span> |
| | | <el-date-picker |
| | | v-model="value1" |
| | | type="daterange" |
| | | range-separator="~" |
| | | format="yyyy-MM-dd" |
| | | value-format="yyyy-MM-dd" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | size="small" |
| | | :picker-options="pickerOptions1" |
| | | @change="change_time" |
| | | /> |
| | | </el-col> |
| | | |
| | | <el-col :span="3"> |
| | | <span class="t_size">排程方式</span> |
| | | <el-select v-model="types" size="small" style="width:120px" @change="changeTypes"> |
| | | <el-option value="N" label="设备优先" /> |
| | | <el-option value="Y" label="时间优先" /> |
| | | </el-select> |
| | | </el-col> |
| | | <div class="bodyTopFormGroup"> |
| | | <el-form |
| | | ref="form" |
| | | :model="formBottom" |
| | | inline |
| | | style="display: flex;justify-content: space-between" |
| | | > |
| | | <div class="elForm"> |
| | | <el-form-item label-width="70px" label="排程日期" style=" display: flex;"> |
| | | <el-date-picker |
| | | v-model="formBottom.value1" |
| | | type="daterange" |
| | | range-separator="~" |
| | | format="yyyy-MM-dd" |
| | | value-format="yyyy-MM-dd" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | size="small" |
| | | :picker-options="pickerOptions1" |
| | | @change="change_time" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="排程方式" style=" display: flex;"> |
| | | <el-select v-model="formBottom.types" style="width:120px" @change="changeTypes"> |
| | | <el-option value="N" label="设备优先" /> |
| | | <el-option value="Y" label="时间优先" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="时间刻度(分钟)" style=" display: flex;"> |
| | | <el-select v-model.number="formBottom.scale" style="width: 120px;"> |
| | | <el-option v-for="item in scaleList" :key="item" :value="item" :label="item" /> |
| | | </el-select> |
| | | |
| | | <el-col :span="3" :offset="1"> |
| | | <div style="height:32px;"> |
| | | <span class="t_size">时间刻度</span> |
| | | <select id="scale" v-model.number="scale"> |
| | | <option v-for="i in scaleList" :key="i">{{ i }}</option> |
| | | </select> |
| | | <span class="t_size">分钟</span> |
| | | </div> |
| | | </el-col> |
| | | |
| | | <el-col :span="3"> |
| | | <div style="height:32px;"> |
| | | <span class="t_size">换型时间</span> |
| | | </el-form-item> |
| | | <el-form-item label="换型时间(分钟)" style=" display: flex;"> |
| | | <el-input |
| | | id="scale" |
| | | v-model="times" |
| | | v-model="formBottom.times" |
| | | type="number" |
| | | size="mini" |
| | | style="display:inline-block;width:80px;" |
| | | @change="no_zero" |
| | | /> |
| | | <span class="t_size">分钟</span> |
| | | </div> |
| | | </el-col> |
| | | |
| | | <el-col :span="3"> |
| | | <div style="height:32px;line-height: 28px;"> |
| | | <span class="t_size">预排进度</span> |
| | | </el-form-item> |
| | | <el-form-item label="预排进度" style=" display: flex;"> |
| | | <span> |
| | | <span style="text-decoration:underline;">{{ real_num }}</span> / |
| | | <span style="text-decoration:underline">{{ meter }}</span> |
| | | <span style="text-decoration:underline;">{{ formBottom.real_num }}</span> / |
| | | <span style="text-decoration:underline">{{ formBottom.meter }}</span> |
| | | </span> |
| | | </div> |
| | | </el-col> |
| | | |
| | | <el-col :span="3" style="display: flex"> |
| | | </el-form-item> |
| | | </div> |
| | | <div class="bodySearchReset" :style="{marginLeft:$store.state.app.sidebar.opened?'5%':'10%'}"> |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-document-remove" |
| | |
| | | @click="click_yes" |
| | | >提交 |
| | | </el-button> |
| | | |
| | | </el-col> |
| | | </el-row> |
| | | <el-row /> |
| | | </el-tabs> |
| | | </div> |
| | | </el-form> |
| | | <div |
| | | class="bodyTopFormExpand" |
| | | style="height: 5px" |
| | | /> |
| | | </div> |
| | | |
| | | <div class="container" style="margin: 10px;"> |
| | | <v-gantt-chart |
| | |
| | | :cell-height="cellHeight" |
| | | :time-lines="timeLines" |
| | | :title-height="titleHeight" |
| | | :scale="scale" |
| | | :scale="formBottom.scale" |
| | | :title-width="titleWidth" |
| | | show-current-time |
| | | :hide-header="hideHeader" |
| | |
| | | return time.getTime() <= Date.now() - 24 * 60 * 60 * 1000 |
| | | } |
| | | }, |
| | | real_num: 0, |
| | | |
| | | keep_data: [], |
| | | all_status: true, |
| | | look_data: [], |
| | |
| | | click_one: 0, |
| | | datasC: [], |
| | | radio: '', |
| | | // value1: ['2022-11-04', '2022-11-09'], |
| | | value1: '', |
| | | types: 'N', |
| | | |
| | | formBottom: { |
| | | value1: ['2022-11-07', '2022-11-12'], // 排程日期 |
| | | types: 'N', // 排程方式 |
| | | scale: 60, // 时间刻度 |
| | | times: 0, // 换型时间 |
| | | real_num: 0, // 预排进度 |
| | | meter: 0// 节拍 |
| | | }, |
| | | |
| | | no: false, |
| | | total: 0, |
| | | mn_data: [], |
| | |
| | | cellHeight: 30, |
| | | titleHeight: 40, |
| | | titleWidth: 250, |
| | | scale: 60, |
| | | |
| | | datasNum: 100, |
| | | datasA: [], |
| | | // datasB: mockDatas(100), |
| | | dataKey: 'id', |
| | | times: 0, |
| | | |
| | | timeList: timeList, |
| | | scaleList: scaleList, |
| | | scrollToTime: dayjs() |
| | |
| | | scrollToY: 0, |
| | | positionB: {}, |
| | | positionA: {}, |
| | | meter: 0, // 节拍 |
| | | |
| | | title_list: [], |
| | | imp_id: '', |
| | | submit_flag: false, |
| | |
| | | }, |
| | | 'rows': [ |
| | | { |
| | | 'YearDate': '2022-11-03', |
| | | 'children': [ |
| | | { |
| | | 'AdvaDevicNumber': 'LKFDL_SC-PC029', |
| | | 'AdvaDevicName': '金鼎数控车床029', |
| | | 'AdvaDevicCropMob': '78', |
| | | 'AdvaDevicRhythm': '10', |
| | | 'OneStartDate': '08:00~11:30', |
| | | 'TwoStartDate': '12:30~17:00', |
| | | 'ThreeStartDate': '', |
| | | 'FourStartDate': '', |
| | | 'FiveStartDate': '' |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | 'YearDate': '2022-11-04', |
| | | 'children': [ |
| | | { |
| | | 'AdvaDevicNumber': 'LKFDL_SC-PC029', |
| | | 'AdvaDevicName': '金鼎数控车床029', |
| | | 'AdvaDevicCropMob': '78', |
| | | 'AdvaDevicRhythm': '10', |
| | | 'OneStartDate': '08:00~11:30', |
| | | 'TwoStartDate': '12:30~17:00', |
| | | 'ThreeStartDate': '', |
| | | 'FourStartDate': '', |
| | | 'FiveStartDate': '' |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | 'YearDate': '2022-11-05', |
| | | 'children': [ |
| | | { |
| | | 'AdvaDevicNumber': 'LKFDL_SC-PC029', |
| | | 'AdvaDevicName': '金鼎数控车床029', |
| | | 'AdvaDevicCropMob': '78', |
| | | 'AdvaDevicRhythm': '10', |
| | | 'OneStartDate': '08:00~11:30', |
| | | 'TwoStartDate': '12:30~17:00', |
| | | 'ThreeStartDate': '', |
| | | 'FourStartDate': '', |
| | | 'FiveStartDate': '' |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | 'YearDate': '2022-11-06', |
| | | 'children': [ |
| | | { |
| | | 'AdvaDevicNumber': 'LKFDL_SC-PC029', |
| | | 'AdvaDevicName': '金鼎数控车床029', |
| | | 'AdvaDevicCropMob': '78', |
| | | 'AdvaDevicRhythm': '10', |
| | | 'OneStartDate': '08:00~11:30', |
| | | 'TwoStartDate': '12:30~17:00', |
| | | 'ThreeStartDate': '', |
| | | 'FourStartDate': '', |
| | | 'FiveStartDate': '' |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | 'YearDate': '2022-11-07', |
| | | 'children': [ |
| | | { |
| | |
| | | }, |
| | | { |
| | | 'YearDate': '2022-11-08', |
| | | 'children': [ |
| | | { |
| | | 'AdvaDevicNumber': 'LKFDL_SC-PC029', |
| | | 'AdvaDevicName': '金鼎数控车床029', |
| | | 'AdvaDevicCropMob': '78', |
| | | 'AdvaDevicRhythm': '10', |
| | | 'OneStartDate': '08:00~11:30', |
| | | 'TwoStartDate': '12:30~17:00', |
| | | 'ThreeStartDate': '', |
| | | 'FourStartDate': '', |
| | | 'FiveStartDate': '' |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | 'YearDate': '2022-11-09', |
| | | 'children': [ |
| | | { |
| | | 'AdvaDevicNumber': 'LKFDL_SC-PC029', |
| | | 'AdvaDevicName': '金鼎数控车床029', |
| | | 'AdvaDevicCropMob': '78', |
| | | 'AdvaDevicRhythm': '10', |
| | | 'OneStartDate': '08:00~11:30', |
| | | 'TwoStartDate': '12:30~17:00', |
| | | 'ThreeStartDate': '', |
| | | 'FourStartDate': '', |
| | | 'FiveStartDate': '' |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | 'YearDate': '2022-11-10', |
| | | 'children': [ |
| | | { |
| | | 'AdvaDevicNumber': 'LKFDL_SC-PC029', |
| | | 'AdvaDevicName': '金鼎数控车床029', |
| | | 'AdvaDevicCropMob': '78', |
| | | 'AdvaDevicRhythm': '10', |
| | | 'OneStartDate': '08:00~11:30', |
| | | 'TwoStartDate': '12:30~17:00', |
| | | 'ThreeStartDate': '', |
| | | 'FourStartDate': '', |
| | | 'FiveStartDate': '' |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | 'YearDate': '2022-11-11', |
| | | 'children': [ |
| | | { |
| | | 'AdvaDevicNumber': 'LKFDL_SC-PC029', |
| | | 'AdvaDevicName': '金鼎数控车床029', |
| | | 'AdvaDevicCropMob': '78', |
| | | 'AdvaDevicRhythm': '10', |
| | | 'OneStartDate': '08:00~11:30', |
| | | 'TwoStartDate': '12:30~17:00', |
| | | 'ThreeStartDate': '', |
| | | 'FourStartDate': '', |
| | | 'FiveStartDate': '' |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | 'YearDate': '2022-11-12', |
| | | 'children': [ |
| | | { |
| | | 'AdvaDevicNumber': 'LKFDL_SC-PC029', |
| | |
| | | window.addEventListener('resize', this.getHeight) |
| | | this.getHeight() |
| | | |
| | | // this.change_time() |
| | | // this.click_schedule() |
| | | this.change_time() |
| | | this.click_schedule() |
| | | }, |
| | | methods: { |
| | | async getAdvancedSchedulingSearch() { |
| | |
| | | }) |
| | | }, |
| | | no_zero() { |
| | | if (this.times < 0) { |
| | | this.times = 0 |
| | | if (this.formBottom.times < 0) { |
| | | this.formBottom.times = 0 |
| | | } |
| | | }, |
| | | sortChange(column, prop, order) { |
| | |
| | | this.OnclickAdvancedSchedulingDevice() |
| | | }, |
| | | change_time() { |
| | | this.time_data[0] = this.value1[0] + ' 00:00' |
| | | this.time_data[1] = this.value1[1] + ' 23:59' |
| | | this.forms.StartTime = this.value1[0] |
| | | this.forms.EndTime = this.value1[1] |
| | | this.time_data[0] = this.formBottom.value1[0] + ' 00:00' |
| | | this.time_data[1] = this.formBottom.value1[1] + ' 23:59' |
| | | this.forms.StartTime = this.formBottom.value1[0] |
| | | this.forms.EndTime = this.formBottom.value1[1] |
| | | this.OnclickAdvancedSchedulingDevice() |
| | | }, |
| | | click_box(val) { |
| | |
| | | } |
| | | this.bm_data[i].gtArray = arr |
| | | } |
| | | this.real_num = 0 |
| | | this.formBottom.real_num = 0 |
| | | }, |
| | | look(data) { |
| | | this.showDialog = true |
| | |
| | | const list = [] |
| | | this.time_all = res |
| | | const cont = res.Cont |
| | | this.real_num = 0 |
| | | this.formBottom.real_num = 0 |
| | | for (const i in this.time_all.rows[0].children) { |
| | | const obj = { |
| | | id: '', |
| | |
| | | // 换型时间 |
| | | MinutesTest(time) { |
| | | var sdate1 = new Date(time) |
| | | sdate1.setMinutes(sdate1.getMinutes() + this.times * 1) |
| | | sdate1.setMinutes(sdate1.getMinutes() + this.formBottom.times * 1) |
| | | var now = |
| | | sdate1.getFullYear() + |
| | | '-' + |
| | |
| | | }, |
| | | getCurrentRow(row) { |
| | | // this.show =true |
| | | this.meter = row.AdvaScheQty * 1 - row.AdvaScheYPQty * 1 // 可以做个数 |
| | | this.value1 = [] |
| | | this.formBottom.meter = row.AdvaScheQty * 1 - row.AdvaScheYPQty * 1 // 可以做个数 |
| | | this.formBottom.value1 = [] |
| | | this.cl_name = row.AdvaSchePartName |
| | | this.cl_code = row.AdvaSchePartNumber |
| | | this.AdvaScheUom = row.AdvaScheUom |
| | | this.work_order = row.AdvaScheWorkCode |
| | | this.value1.push(this.getNowFormatDate()) |
| | | this.value1.push(row.AdvaScheEndDate) |
| | | if (this.value1 != '') { |
| | | this.time_data[0] = this.value1[0] + ' 00:00' |
| | | this.time_data[1] = this.value1[1] + ' 23:59' |
| | | this.formBottom.value1.push(this.getNowFormatDate()) |
| | | this.formBottom.value1.push(row.AdvaScheEndDate) |
| | | if (this.formBottom.value1 != '') { |
| | | this.time_data[0] = this.formBottom.value1[0] + ' 00:00' |
| | | this.time_data[1] = this.formBottom.value1[1] + ' 23:59' |
| | | } |
| | | this.forms.WorkCode = row.AdvaScheWorkCode |
| | | this.forms.WorkShop = row.AdvaScheWorkShopid |
| | |
| | | type: 'success' |
| | | }) |
| | | } |
| | | this.meter = 0 |
| | | this.real_num = 0 |
| | | this.formBottom.meter = 0 |
| | | this.formBottom.real_num = 0 |
| | | this.OnclickAdvancedSchedulingDevice() |
| | | this.AdvancedSchedulingSearch() |
| | | }) |
| | |
| | | // 时间/设备优先排程 |
| | | click_schedule() { |
| | | const timestamp = new Date().toLocaleDateString() |
| | | if (new Date(this.value1[0]) < new Date(timestamp)) { |
| | | if (new Date(this.formBottom.value1[0]) < new Date(timestamp)) { |
| | | this.$message({ |
| | | showClose: true, |
| | | type: 'error', |
| | |
| | | |
| | | this.nitialize() |
| | | // 设备优先 |
| | | if (this.bm_data != '' && this.types == 'N') { |
| | | if (this.bm_data != '' && this.formBottom.types == 'N') { |
| | | this.fun_time() |
| | | this.change_num(this.bm_data) |
| | | } else if (this.facility_data != '' && this.types == 'Y') { |
| | | } else if (this.facility_data != '' && this.formBottom.types == 'Y') { |
| | | this.time_nitalize() |
| | | this.fun_facility() |
| | | this.dataTransition() |
| | |
| | | |
| | | // 给排程最后一个修改数量 |
| | | change_num(arr) { |
| | | this.real_num = 0 // 真实已排数量 |
| | | this.formBottom.real_num = 0 // 真实已排数量 |
| | | let num = 0 // 取整已排数量 |
| | | const arr_num = [] // 已排数据 |
| | | let mend_num = 0 |
| | |
| | | } |
| | | |
| | | for (const n in arr_num) { |
| | | this.real_num += arr_num[n].real_number |
| | | this.formBottom.real_num += arr_num[n].real_number |
| | | num += arr_num[n].number * 1 |
| | | } |
| | | |
| | | this.real_num = Math.ceil(this.real_num) |
| | | const y10 = this.meter - this.real_num |
| | | this.formBottom.real_num = Math.ceil(this.formBottom.real_num) |
| | | const y10 = this.formBottom.meter - this.formBottom.real_num |
| | | if (y10 <= 10) { |
| | | this.real_num = this.meter |
| | | mend_num = this.meter - num |
| | | this.formBottom.real_num = this.formBottom.meter |
| | | mend_num = this.formBottom.meter - num |
| | | } else { |
| | | } |
| | | if (this.real_num * 1 == this.meter * 1) { |
| | | // mend_num = this.meter - num |
| | | if (this.formBottom.real_num * 1 == this.formBottom.meter * 1) { |
| | | // mend_num = this.formBottom.meter - num |
| | | } else { |
| | | this.submit_flag = true |
| | | } |
| | |
| | | } |
| | | }, |
| | | fun_time() { |
| | | let all_num = this.meter |
| | | let all_num = this.formBottom.meter |
| | | const all_time = [] |
| | | let flag1 = 0 |
| | | const mod = this.bm_data[0].mod |
| | |
| | | } |
| | | this.facility_data[i].gtArray = newArr |
| | | } |
| | | let all_num = this.meter |
| | | let all_num = this.formBottom.meter |
| | | const all_time = [] |
| | | const flag1 = 0 |
| | | // let nowTime = this.facility_data[0].AdvaDevicRhythm*all_num //数量OK |
| | |
| | | top: 40px; |
| | | left: 0; |
| | | } |
| | | |
| | | /*自动排程部分*/ |
| | | .autoScheduling { |
| | | display: flex; |
| | | flex-direction: column; |
| | | /*padding: 0 10px;*/ |
| | | /* height: calc(100vh - 100px); */ |
| | | background-color:#f8f8fa ; |
| | | /*background-color: #f8f8fa;*/ |
| | | background-color: #fff; |
| | | margin-top: 20px; |
| | | /*height: 390px;*/ |
| | | } |
| | |
| | | width: 100px; |
| | | } |
| | | |
| | | .top-bar { |
| | | /* height: 30px; */ |
| | | margin-bottom: 20px; |
| | | } |
| | | |
| | | .container { |
| | | display: flex; |
| | | flex-direction: column; |
| | | flex: 1; |
| | | } |
| | | |
| | | .main-footer { |
| | | /* height: 30px; */ |
| | | } |
| | | |
| | | .ib { |
| | | display: inline-block; |
| | | } |
| | | |
| | | .w250 { |
| | | width: 250px; |
| | | } |
| | | |
| | | .el-slider { |
| | | width: 100px; |
| | | } |
| | | |
| | | .tc { |
| | |
| | | align-items: center; |
| | | } |
| | | |
| | | .colorBar { |
| | | width: 10px; |
| | | height: 100%; |
| | | } |
| | | |
| | | .carId { |
| | | flex: 1; |
| | | } |
| | |
| | | .tc { |
| | | color: #909399; |
| | | font-size: 14px; |
| | | } |
| | | |
| | | .type { |
| | | padding: 0 5px 0 0; |
| | | font-size: 1.2rem; |
| | | } |
| | | |
| | | .t_size { |
| | | font-size: 14px; |
| | | } |
| | | |
| | | .icon_true { |
| | | height: 8px; |
| | | display: inline-block; |
| | | width: 8px; |
| | | background: #00a79d; |
| | | margin-right: 7px; |
| | | border-radius: 15px; |
| | | } |
| | | |
| | | .icon_ty { |
| | | height: 8px; |
| | | display: inline-block; |
| | | width: 8px; |
| | | background: red; |
| | | margin-right: 7px; |
| | | border-radius: 15px; |
| | | } |
| | | |
| | | .icon_gz { |
| | | height: 8px; |
| | | display: inline-block; |
| | | width: 8px; |
| | | background: yellow; |
| | | margin-right: 7px; |
| | | border-radius: 15px; |
| | | } |
| | | |
| | | /* .el-col-offset-1 { |
| | | margin-left: 0.5% !important; |
| | | } */ |
| | | .marginLeft { |
| | | margin-left: 15px; |
| | | } |
| | | |
| | | .button_style { |
| | | background: #00a79d; |
| | | color: #ffff; |
| | | border-color: #00a79d; |
| | | } |
| | | |
| | | .rg { |
| | | float: right; |
| | | } |
| | | |
| | | .color { |
| | | color: #909399; |
| | | } |
| | | </style> |
| | | |
| | |
| | | ::v-deep .el-table__fixed { |
| | | height: 100% !important; |
| | | } |
| | | |
| | | } |
| | | |
| | | ::v-deep .gantt-header-title{ |
| | | background-color: #fff; |
| | | //border-left: 1px solid #eee !important; |
| | | //border-bottom: 1px solid #eee !important; |
| | | } |
| | | |
| | | </style> |
| | | <style> |
| | | |
| | |
| | | } |
| | | |
| | | </style> |
| | | |
| | | <!--<style>--> |
| | | <!--input[type=range]:focus {--> |
| | | <!-- display: none;--> |
| | | <!--}--> |
| | | |
| | | <!--input[type=range] {--> |
| | | <!-- -webkit-appearance: none;--> |
| | | <!-- width: 500px;--> |
| | | <!-- border-radius: 10px;--> |
| | | <!-- /*这个属性设置使填充进度条时的图形为圆角*/--> |
| | | <!--}--> |
| | | |
| | | <!--input[type=range]::-webkit-slider-runnable-track {--> |
| | | <!-- height: 20px;--> |
| | | <!-- border-radius: 10px;--> |
| | | <!-- /*将轨道设为圆角的*/--> |
| | | <!-- /* box-shadow: 0 1px 1px #def3f8, inset 0 .125em .125em #0d1112; */--> |
| | | <!-- border: solid 1px red;--> |
| | | <!--}--> |
| | | |
| | | <!--input[type=range]::-webkit-slider-thumb {--> |
| | | <!-- -webkit-appearance: none;--> |
| | | <!-- height: 30px;--> |
| | | <!-- width: 120px;--> |
| | | <!-- margin-top: -5px;--> |
| | | <!-- /*使滑块超出轨道部分的偏移量相等*/--> |
| | | <!-- background: #ffffff;--> |
| | | <!-- /* border-radius: 50%; */--> |
| | | <!-- /*外观设置为圆形*/--> |
| | | <!-- border: solid 0.125em rgba(205, 224, 230, 0.5);--> |
| | | <!-- /*设置边框*/--> |
| | | <!-- /* box-shadow: 0 .125em .125em #3b4547; */--> |
| | | <!-- /*添加底部阴影*/--> |
| | | <!--}--> |
| | | <!--</style>--> |