var Wellcomponent = { template:`
已处理 已删除 搜索 导入 导出 任务转出 复制链接 更多 导出已完成工序 导出转出记录 导入生产计划(csv文件)
已处理 已删除 搜索
导入 任务转出 复制链接 更多 导出未完成计划 导出已完成工序 导出质检未完成工序 导出质检已完成工序 导出转出记录 导入生产计划(csv文件) 汇总分解
取 消 确 定
新增检验
取 消 确 定
计划部门:{{plan_page_data.department}}    计划/项目号:{{plan_page_data.task_id}}    日期:{{plan_page_data.task_date}}    时间:{{plan_page_data.task_time}} 取 消 确 定 取 消 确 定
新增工序
取 消 确 定
新增工序
取 消 确 定
取 消 确 定 取 消 确 定 取 消 确 定 取 消 确 定 取 消 确 定 取 消 确 定 计划当前处理部门:{{cur_did_name}}
点击上传(csv文件) 确认导入 下载导入模板文件
取 消 确 定
`, data(){ // 获取当前屏幕的分辨率 let screenW = window.screen.width; let screenH = window.innerHeight; console.log("screen width:",screenW); console.log("screen height:",screenH); return { tHeight:screenH-240, tableData: Array(0), tableData1: Array(0), currentPage: 1, pagesize:50, pagecnt:1, recordTotal:0, drawer:false, direction: 'rtl', checked:false, value1:'', value2:'', id_v:'', sapid_v:'', pid_v:'', pname_v:'', puser_v:'', group_name_v:'', plan_state_v:'', conveyer_v:'', rdm_v:'', product_user_v:'', adddialogVisible_5:false, updatedialogVisible_5:false, updatedialogVisible_5_ex:false, adddialogVisible_3:false, updatedialogVisible_3:false, updatedialogVisible_3_ex:false, updatedialogVisible_1:false, updatedialogVisible_1_ex:false, updatedialogVisible_2:false, oper_type:0, form: { id:0, change:false, priority:'', department_name:'', task_id:'', product_id:'', product_name:'', total_num:1, demand_date:'', rdm_id:'', conveyer:'', Material_p:'', Material_inventory:'', promise_date:'', promised_date:'', buyer:'', plan_state:'', group_name:'', dispath_num:1, notes:'', feishu_link:'', code_state:'', }, rules: { task_id: [ { required: true, message: '计划/项目号不可为空', trigger: 'blur' } ], product_id: [ { required: true, message: '产品编号不可为空', trigger: 'blur' } ], product_name: [ { required: true, message: '产品名称不可为空', trigger: 'blur' } ], total_num: [ { required: true, message: '数量不可为空', trigger: 'blur' } ], Material_inventory: [ { required: true, message: '库存不可为空', trigger: 'blur' } ], buyer: [ { required: true, message: '采购者不可为空', trigger: 'blur' } ], group_name: [ { required: true, message: '生产组不可为空', trigger: 'blur' } ], plan_state: [ { required: true, message: '生产状态不可为空', trigger: 'blur' } ], dispath_num: [ { required: true, message: '派发数量不可为空', trigger: 'blur' } ], demand_date:[ { required: true, message: '需求日期不可为空', trigger: 'blur' } ], rdm_id:[ { required: true, message: 'RDM任务号不可为空', trigger: 'blur' } ], conveyer:[ { required: true, message: '交付人不可为空', trigger: 'blur' } ], produce_plan:[ { required: true, message: '工序不可为空', trigger: 'blur' } ], produce_plan_use_t:[ { required: true, message: '工时不可为空', trigger: 'blur' } ], produce_user:[ { required: true, message: '生产人员不可为空', trigger: 'blur' } ], code_state:[ { required: true, message: '编程状态不可为空', trigger: 'blur' } ], }, options: [], importdialogVisible:false, fileTemp: null, fileListUpload: [], importTableData: [], transdialogVisible:false, multipleSelection: [], transform: { department_name:'', }, addplanVisible_1:false, planTableData:[], plan_op_type:0, plan_page_data:{ department:'', task_id:'', task_date:'', task_time:'', }, maxid:-1, planform: { id:0, produce_plan:'', produce_plan_use_t:'', produce_user:'', dispath_num:1, plan_dispath_date:'', p_plan_finished_t:'', p_actual_finished_t:'', p_finished_overdue_day:'', pre_time:'', code_time:'', pre_time_checked:false, code_time_checked:false, }, dis_detaile_show:false, add_deliveryVisible_2:false, delivery_form:{ id:0, delivery_user:'', num_ok:0, }, deliveryTableData:[], delivery_op_type:0, delivery_maxid:-1, delivery_detaile_show:false, if_show_task_finished:false, if_show_processed:true, if_show_task_add:true, if_show_export:false, if_show_d1:false, if_show_d3:false, if_show_d5:false, usetime_t_data:[], buyer_options:[], b_color:'', if_del_show:false, if_del:false, p_id_options:[], p_process_options:[], cur_p_process:'', loading: false, trans_disabled:false, units_options:[], percent_len:0, if_show_process:false, interval:'', cur_did_name:'', search_promise_date:'', if_show_process1:false, percent_len1:0, interval1:'', fileListUpload1:[], more_query_v:'', product_users:[], update_notes_visible_1:false, role_id:0, } }, mounted() { var _this = this; var op_user = localStorage.getItem("online_user"); var level = localStorage.getItem("level") this.$data.role_id = level; var did = localStorage.getItem("did"); if (level==1 ){ this.$data.if_del_show =true; } if(did==1){ this.$data.if_show_d1=true; this.$data.if_show_export=true; this.$data.if_show_task_finished=true; } else if (did==3){ this.$data.if_show_d3=true; } else if(did>=4){ this.$data.if_show_d5=true; } axios.post('/pkpi/getbUsers',{ opuser:localStorage.getItem("online_user"), opuser_uuid:localStorage.getItem("uuid"), buser: '', index: 1, count: 1000, }) .then(function (response) { console.log(response.data); objs = response.data.data; for(var i=0;i{ if(_this.$data.percent_len>=99){ clearInterval(_this.$data.interval1); return; } if (_this.$data.percent_len1<98){ _this.$data.percent_len1+=2 } },20) //send to server axios.post('/pkpi/mul_update_kpi_1', { opuser:localStorage.getItem("online_user"), opuser_uuid:localStorage.getItem("uuid"), data:objs, }) .then(function (response) { let r = response.data.r; let s = "" let errType = "" if (r == 0) { let len = objs.length; errType = "success" s = "导入"+len+"条生产计划成功!"; _this.$data.percent_len1=100; _this.$data.if_show_process1=false; } else if(r==1){ errType = "error" s = "工序派产数量总和不可大于派产总数量!"; clearInterval(_this.$data.interval1); } else if (r ==3) { errType = "error" s = "派产总数量不可大于计划数量!"; clearInterval(_this.$data.interval1); } else if (r==2){ errType = "error" s = response.data.err_text; clearInterval(_this.$data.interval1); } else { errType = "error" s = "导入生产计划失败!"; clearInterval(_this.$data.interval1); } _this.$data.if_show_process1=false; _this.$message({ message: s, type: errType, duration: 3000 }); //更新页面 _this.getkpi(); }) .catch(function (error) { console.log(error); }); } }) } else { this.$data.fileListUpload1=[]; this.$message({ type: 'warning', message: '附件格式错误,请删除后重新上传!' }) } } else { this.$message({ type: 'warning', message: '请上传附件!' }) } }, code_time_checked_change(val){ if(val){ this.$data.planform.code_time=1; } }, pre_time_checked_change(val){ if(val){ this.$data.planform.pre_time=1; } }, to_redmine(row){ let id = parseInt(row.rdm_id); if (id<10000){ return; } url = encodeURI("http://123.54.1.214:10010/redmine/issues/"+row.rdm_id); window.open(url, ""); }, handleCommand(command) { if (command === 'export_undo_plan') { this.exportkpi(); } else if (command === 'export_plan_over') { //document.getElementById("bt_export").blur(); var _this = this; var objs; axios.post('/pkpi/exportKpi_ex', { opuser:localStorage.getItem("online_user"), opuser_uuid:localStorage.getItem("uuid"), id:this.$data.id_v, task_id:this.$data.sapid_v, pid:this.$data.pid_v, pname:this.$data.pname_v, group_name:this.$data.group_name_v, month:this.$data.value1, if_checked:this.$data.checked, plan_state:this.$data.plan_state_v, if_del:this.$data.if_del, plan_finished:true, }) .then(function (response) { var date = new Date(); //年 getFullYear():四位数字返回年份 var year = date.getFullYear()%2000; //getFullYear()代替getYear() console.log(year.toString()); //月 getMonth():0 ~ 11 var month = date.getMonth() + 1; if(month<10){ month='0'+month } //日 getDate():(1 ~ 31) var day = date.getDate(); if(day<10){ day='0'+day; } //时 getHours():(0 ~ 23) var hour = date.getHours(); if (hour<10){ hour='0'+hour; } //分 getMinutes(): (0 ~ 59) var minute = date.getMinutes(); if (minute<10){ minute='0'+minute; } //秒 getSeconds():(0 ~ 59) var second = date.getSeconds(); if (second<10){ second='0'+second; } var filename=year.toString()+month.toString()+day.toString() +" " + hour.toString()+minute.toString()+second.toString(); filename = "生产计划 "+filename+".csv" console.log(response.data); var fileid = response.data.fileId; var downUrl = 'file/'+fileid; downloadUrl(filename,downUrl); }) .catch(function (error) { console.log(error); }); } else if (command==='export_transfer_history'){ var _this = this; var objs; axios.post('/pkpi/export_transfer_history', { opuser:localStorage.getItem("online_user"), opuser_uuid:localStorage.getItem("uuid"), month:this.$data.value1, }) .then(function (response) { var date = new Date(); //年 getFullYear():四位数字返回年份 var year = date.getFullYear()%2000; //getFullYear()代替getYear() console.log(year.toString()); //月 getMonth():0 ~ 11 var month = date.getMonth() + 1; if(month<10){ month='0'+month } //日 getDate():(1 ~ 31) var day = date.getDate(); if(day<10){ day='0'+day; } //时 getHours():(0 ~ 23) var hour = date.getHours(); if (hour<10){ hour='0'+hour; } //分 getMinutes(): (0 ~ 59) var minute = date.getMinutes(); if (minute<10){ minute='0'+minute; } //秒 getSeconds():(0 ~ 59) var second = date.getSeconds(); if (second<10){ second='0'+second; } var filename=year.toString()+month.toString()+day.toString() +" " + hour.toString()+minute.toString()+second.toString(); filename = "生产计划转出记录 "+filename+".csv" console.log(response.data); var fileid = response.data.fileId; var downUrl = 'file/'+fileid; downloadUrl(filename,downUrl); }) .catch(function (error) { console.log(error); }); } else if(command == "export_plan_collect"){ var _this = this; var objs; axios.post('/pkpi/export_plan_collect', { opuser:localStorage.getItem("online_user"), opuser_uuid:localStorage.getItem("uuid"), }) .then(function (response) { var date = new Date(); //年 getFullYear():四位数字返回年份 var year = date.getFullYear()%2000; //getFullYear()代替getYear() console.log(year.toString()); //月 getMonth():0 ~ 11 var month = date.getMonth() + 1; if(month<10){ month='0'+month } //日 getDate():(1 ~ 31) var day = date.getDate(); if(day<10){ day='0'+day; } //时 getHours():(0 ~ 23) var hour = date.getHours(); if (hour<10){ hour='0'+hour; } //分 getMinutes(): (0 ~ 59) var minute = date.getMinutes(); if (minute<10){ minute='0'+minute; } //秒 getSeconds():(0 ~ 59) var second = date.getSeconds(); if (second<10){ second='0'+second; } var filename=year.toString()+month.toString()+day.toString() +" " + hour.toString()+minute.toString()+second.toString(); filename = "汇总分解 "+filename+".csv" console.log(response.data); var fileid = response.data.fileId; var downUrl = 'file/'+fileid; downloadUrl(filename,downUrl); }) .catch(function (error) { console.log(error); }); } else if(command == "export_plan_inspection_not_completed"){ var _this = this; var objs; axios.post('/pkpi/export_not_completed_Kpi', { opuser:localStorage.getItem("online_user"), opuser_uuid:localStorage.getItem("uuid"), id:this.$data.id_v, task_id:this.$data.sapid_v, pid:this.$data.pid_v, pname:this.$data.pname_v, group_name:this.$data.group_name_v, month:this.$data.value1, if_checked:this.$data.checked, plan_state:this.$data.plan_state_v, if_del:this.$data.if_del, plan_finished:true, }) .then(function (response) { var date = new Date(); //年 getFullYear():四位数字返回年份 var year = date.getFullYear()%2000; //getFullYear()代替getYear() console.log(year.toString()); //月 getMonth():0 ~ 11 var month = date.getMonth() + 1; if(month<10){ month='0'+month } //日 getDate():(1 ~ 31) var day = date.getDate(); if(day<10){ day='0'+day; } //时 getHours():(0 ~ 23) var hour = date.getHours(); if (hour<10){ hour='0'+hour; } //分 getMinutes(): (0 ~ 59) var minute = date.getMinutes(); if (minute<10){ minute='0'+minute; } //秒 getSeconds():(0 ~ 59) var second = date.getSeconds(); if (second<10){ second='0'+second; } var filename=year.toString()+month.toString()+day.toString() +" " + hour.toString()+minute.toString()+second.toString(); filename = "质检未完成工序 "+filename+".csv" console.log(response.data); var fileid = response.data.fileId; var downUrl = 'file/'+fileid; downloadUrl(filename,downUrl); }) .catch(function (error) { console.log(error); }); }else if(command == "export_plan_inspection_completed"){ var _this = this; var objs; axios.post('/pkpi/export_completed_Kpi', { opuser:localStorage.getItem("online_user"), opuser_uuid:localStorage.getItem("uuid"), id:this.$data.id_v, task_id:this.$data.sapid_v, pid:this.$data.pid_v, pname:this.$data.pname_v, group_name:this.$data.group_name_v, month:this.$data.value1, if_checked:this.$data.checked, plan_state:this.$data.plan_state_v, if_del:this.$data.if_del, plan_finished:true, }) .then(function (response) { var date = new Date(); //年 getFullYear():四位数字返回年份 var year = date.getFullYear()%2000; //getFullYear()代替getYear() console.log(year.toString()); //月 getMonth():0 ~ 11 var month = date.getMonth() + 1; if(month<10){ month='0'+month } //日 getDate():(1 ~ 31) var day = date.getDate(); if(day<10){ day='0'+day; } //时 getHours():(0 ~ 23) var hour = date.getHours(); if (hour<10){ hour='0'+hour; } //分 getMinutes(): (0 ~ 59) var minute = date.getMinutes(); if (minute<10){ minute='0'+minute; } //秒 getSeconds():(0 ~ 59) var second = date.getSeconds(); if (second<10){ second='0'+second; } var filename=year.toString()+month.toString()+day.toString() +" " + hour.toString()+minute.toString()+second.toString(); filename = "质检已完成工序 "+filename+".csv" console.log(response.data); var fileid = response.data.fileId; var downUrl = 'file/'+fileid; downloadUrl(filename,downUrl); }) .catch(function (error) { console.log(error); }); } }, selectChanged(value) { console.log(value) this.getkpi(); }, input_change(value) { console.log(value); this.getkpi(); }, show_kpi_del_his(row){ var _this =this; axios.post('/pkpi/get_del_kpi_his', { opuser:localStorage.getItem("online_user"), opuser_uuid:localStorage.getItem("uuid"), id: row.id, }) .then(function (response) { console.log(response.data); const h = _this.$createElement; obj=response.data.data _this.$notify({ title: '删除详情', message: h('p', { style: 'color: teal'}, obj) }); }) .catch(function (error) { console.log(error); }); }, copy_link(){ document.getElementById("bt_copy").blur(); var _this = this; var objs; axios.post('/pkpi/getkpi', { opuser:localStorage.getItem("online_user"), opuser_uuid:localStorage.getItem("uuid"), index: 1, count: 100000, id:_this.$data.id_v, sap_id:_this.$data.sapid_v, pid:_this.$data.pid_v, pname:_this.$data.pname_v, puser:_this.$data.puser_v, bt:_this.$data.value1, et:_this.$data.value2, if_checked:_this.$data.checked, group_name:_this.$data.group_name_v, plan_state:_this.$data.plan_state_v, if_del:_this.$data.if_del, promise_date:this.$data.search_promise_date, }) .then(function (response) { console.log(response.data); objs = response.data.data; rcnt = response.data.total; let text=''; let save = function (e){ for(var i=0;i { var _this=this; axios.post('/pkpi/get_p_id_options',{ opuser:localStorage.getItem("online_user"), opuser_uuid:localStorage.getItem("uuid"), p_like_id:query, }) .then(function (response) { _this.$data.p_id_options=[]; console.log(response.data); objs = response.data.data; for(var i=0;i -1) { this.$data.deliveryTableData.splice(index, 1); } }, show_updatedeliveryplan_dialog(row){ this.$data.delivery_form.id=row.id; this.$data.delivery_form.delivery_user=row.delivery_user; this.$data.delivery_form.num_ok=row.num_ok; this.$data.delivery_op_type=2; this.$data.add_deliveryVisible_2=true; }, showAdd_deliveryplan_2(){ this.$data.delivery_form.id=0; this.$data.delivery_form.delivery_user=''; this.$data.delivery_form.num_ok=''; this.$data.delivery_op_type=1; for (var i = 0; i < this.$data.deliveryTableData.length; i++) { if(this.$data.deliveryTableData[i].id >this.$data.delivery_maxid){ this.$data.delivery_maxid = this.$data.deliveryTableData[i].id } } if(this.$data.delivery_maxid !=-1){ this.$data.delivery_maxid+=1; }else{ this.$data.delivery_maxid = 0; } this.$data.add_deliveryVisible_2=true; }, show_dis_detail(row){ this.$data.planTableData = row.produce_plan_data; this.$data.plan_page_data.department=row.department_name; this.$data.plan_page_data.task_id=row.task_id; this.$data.plan_page_data.task_date = row.CreateTime; this.$data.plan_page_data.task_time=row.time; this.$data.dis_detaile_show = true; }, delKpiplan(row){ var index =-1; for(var i=0;i -1) { this.$data.planTableData.splice(index, 1); } }, show_updateplan_dialog(row){ var _this=this; axios.post('/pkpi/getpUsers',{ opuser:localStorage.getItem("online_user"), opuser_uuid:localStorage.getItem("uuid"), puser: '', group_name_v:_this.$data.form.group_name, index: 1, count: 1000, }) .then(function (response) { _this.$data.options=[]; console.log(response.data); objs = response.data.data; for(var i=0;i { this.$refs['planform_1'].clearValidate() }); this.$data.addplanVisible_1=true; }, addkpiplan_1(){ var t_pre_time = ''; var t_code_time = ''; if(this.$data.planform.pre_time_checked){ t_pre_time=this.$data.planform.pre_time; } if(this.$data.planform.code_time_checked){ t_code_time=this.$data.planform.code_time; } this.$refs['planform_1'].validate((valid) => { if (valid) { if (this.$data.plan_op_type==1) { var obj ={ id:this.$data.maxid, produce_plan:this.$data.planform.produce_plan, produce_plan_use_t:this.$data.planform.produce_plan_use_t, produce_user:this.$data.planform.produce_user, dispath_num:this.$data.planform.dispath_num, plan_dispath_date:this.$data.planform.plan_dispath_date, p_plan_finished_t:this.$data.planform.p_plan_finished_t, p_actual_finished_t:this.$data.planform.p_actual_finished_t, p_finished_overdue_day:this.$data.planform.p_finished_overdue_day, pre_time:t_pre_time, code_time:t_code_time, pre_time_checked:this.$data.planform.pre_time_checked, code_time_checked:this.$data.planform.code_time_checked, } this.$data.planTableData.push(obj); this.$data.maxid+=1; console.log("id:",this.$data.maxid); } else if (this.$data.plan_op_type==2){ for(var i=0;ithis.$data.maxid){ this.$data.maxid = this.$data.planTableData[i].id } } if(this.$data.maxid !=-1){ this.$data.maxid+=1; }else{ this.$data.maxid = 0; } this.$nextTick(() => { this.$refs['planform_1'].clearValidate() }); this.$data.addplanVisible_1=true; }, handleSelectionChange(val) { console.log("已选择"); console.log(val); this.multipleSelection = val; }, task_transfer(){ document.getElementById("bt_ok_transfer").blur(); var selectdata = this.multipleSelection; if(selectdata.length==0){ this.$message({ message: "请选择转出任务", type: "warning", duration: 1500 }); return } console.log("select cnt:",selectdata.length); var req = []; for (var i = 0; i < selectdata.length; i++) { req.push(selectdata[i].id); } var _this = this; axios.post('/pkpi/task_transfer', { opuser:localStorage.getItem("online_user"), opuser_uuid:localStorage.getItem("uuid"), id:req, department_name:this.$data.transform.department_name }) .then(function (response) { let r = response.data.r; let s = "" let errType = "" if (r == 0) { errType = "success" s = "生产计划转出成功!"; } else{ errType = "error" s = "生产计划转出失败!"; } _this.$message({ message: s, type: errType, duration: 1500 }); //更新页面 _this.getkpi(); this.$data.form.department_name = ''; this.$data.transdialogVisible = false; }).catch(function (error) { console.log(error); }); }, show_taskTransfer_disalog(){ if (this.$data.checked){ this.$message({ message: "已处理任务不允许操作", type: "warning", duration: 1500 }); return } document.getElementById("bt_task_transfer").blur(); var selectdata = this.multipleSelection; if(selectdata.length==0){ this.$message({ message: "请选择转出任务", type: "warning", duration: 1500 }); return } this.$data.units_options=[]; var obj ={ value:"供应链", label:"供应链", } this.$data.units_options.push(obj); obj ={ value:"生产", label:"生产", } this.$data.units_options.push(obj); obj ={ value:"研发", label:"研发", } this.$data.units_options.push(obj); obj ={ value:"技术", label:"技术", } this.$data.units_options.push(obj); obj ={ value:"交付", label:"交付", } this.$data.units_options.push(obj); obj ={ value:"保温瓶", label:"保温瓶", } this.$data.units_options.push(obj); obj ={ value:"生产订单", label:"生产订单", } this.$data.units_options.push(obj); this.$data.transdialogVisible=true; }, importData(){ document.getElementById("bt_import").blur(); if(this.$data.importTableData.length==0){ this.$message({ message: "请选择导入文件", type: "warning", duration: 1500 }); return; } this.$data.percent_len=0; this.$data.if_show_process=true; this.$data.interval= setInterval(()=>{ if(this.$data.percent_len>=99){ clearInterval(this.$data.interval); return; } this.$data.percent_len+=1 },20) var _this = this; axios.post('/pkpi/importKpi', { opuser:localStorage.getItem("online_user"), opuser_uuid:localStorage.getItem("uuid"), data:this.$data.importTableData, }) .then(function (response) { let r = response.data.r; let s = "" let errType = "" if (r == 0) { let len = _this.$data.importTableData.length; _this.$data.percent_len=100; _this.$data.if_show_process=false; errType = "success" s = "导入"+len+"生产计划成功!"; } else if(r==1){ errType = "error" s = response.data.err_text; clearInterval(_this.$data.interval); } else{ errType = "error" s = "导入生产计划失败!"; clearInterval(_this.$data.interval); } _this.$message({ message: s, type: errType, duration: 1500 }); _this.$data.importdialogVisible=false; //更新页面 _this.getkpi(); }) .catch(function (error) { console.log(error); }); }, importDialog_close(done){ console.log("关闭导入对话框"); done(); }, handleChange(file, fileList) { document.getElementById("bt_upload").blur(); this.fileTemp = file.raw console.log("filetype:",this.fileTemp); if (this.fileTemp) { console.log("begin ...") console.log(this.fileTemp.type); if ((this.fileTemp.type == 'text/csv') || (this.fileTemp.type == '.csv') || (this.fileTemp.type == 'application/vnd.ms-excel')) { let _this = this//如果需要点击事件结束之后对DOM进行操作使用)_this.xx=xx进行操作 Papa.parse(_this.fileTemp, { encoding:'gb2312', complete (results) { console.log(results)//这个是csv文件的数据 let data = [] //遍历csv文件中的数据,存放到data中 方法不唯一,可自己更改 for (let i = 0; i < results.data.length; ++i) { if(i==0){ continue; } let obj = {} obj.task_id = results.data[i][0] if(obj.task_id==""|| obj.task_id==undefined){ continue; } obj.product_id = results.data[i][1] obj.total_num = results.data[i][2] obj.demand_date = results.data[i][3] obj.rdm_id = results.data[i][4] obj.conveyer = results.data[i][5] obj.plan_state=results.data[i][6] data.push(obj) } //data.splice(0, 1)//将数组第一位的表格名称去除 let num = 0 console.log('data', data) _this.$data.importTableData=data; } }) } else { this.$data.fileListUpload=[]; this.$message({ type: 'warning', message: '附件格式错误,请删除后重新上传!' }) } } else { this.$message({ type: 'warning', message: '请上传附件!' }) } }, handleRemove(file, fileList) { console.log(file, fileList); }, importCsv(){ this.$data.fileListUpload=[]; this.$data.importTableData=[]; this.$data.importdialogVisible=true; this.$data.if_show_process=false; }, exportkpi(){ var _this = this; var objs; axios.post('/pkpi/exportKpi', { opuser:localStorage.getItem("online_user"), opuser_uuid:localStorage.getItem("uuid"), id:this.$data.id_v, task_id:this.$data.sapid_v, pid:this.$data.pid_v, pname:this.$data.pname_v, group_name:this.$data.group_name_v, month:this.$data.value1, if_checked:this.$data.checked, plan_state:this.$data.plan_state_v, if_del:this.$data.if_del, promise_date:this.$data.search_promise_date, conveyer:this.$data.conveyer_v, rdm_id:this.$data.rdm_v, product_user:this.$data.product_user_v, }) .then(function (response) { var date = new Date(); //年 getFullYear():四位数字返回年份 var year = date.getFullYear()%2000; //getFullYear()代替getYear() console.log(year.toString()); //月 getMonth():0 ~ 11 var month = date.getMonth() + 1; if(month<10){ month='0'+month } //日 getDate():(1 ~ 31) var day = date.getDate(); if(day<10){ day='0'+day; } //时 getHours():(0 ~ 23) var hour = date.getHours(); if (hour<10){ hour='0'+hour; } //分 getMinutes(): (0 ~ 59) var minute = date.getMinutes(); if (minute<10){ minute='0'+minute; } //秒 getSeconds():(0 ~ 59) var second = date.getSeconds(); if (second<10){ second='0'+second; } var filename=year.toString()+month.toString()+day.toString() +" " + hour.toString()+minute.toString()+second.toString(); filename = "生产计划 "+filename+".csv" console.log(response.data); var fileid = response.data.fileId; var downUrl = 'file/'+fileid; downloadUrl(filename,downUrl); }) .catch(function (error) { console.log(error); }); }, tableRowClassName({row, rowIndex}) { var n = rowIndex%2; if (n == 1) { return 'success-row'; } this.$data.b_color="color: #FF0000;" return ''; }, show_update_dialog(row){ var promise_date; if(row.promise_date !=undefined &&row.promise_date.length>0){ promise_date="20"+row.promise_date }else{ promise_date='' } var promised_date; if (row.promised_date !=undefined &&row.promised_date.length>0){ promised_date="20"+row.promised_date; }else{ promised_date='' } var demand_d; if (row.demand_date != undefined && row.demand_date.length>0){ demand_d="20"+row.demand_date; }else{ demand_d=''; } this.$data.form = { id:row.id, priority:row.priority, department_name:row.department_name, task_id:row.task_id, product_id:row.product_id, product_name:row.product_name, total_num:row.total_num, demand_date:demand_d, rdm_id:row.rdm_id, conveyer:row.conveyer, Material_p:row.Material_p, Material_inventory:row.Material_inventory, promise_date:promise_date, promised_date:promised_date, buyer:row.buyer, group_name:row.group_name, dispath_num:row.dispath_num, plan_state:row.plan_state, notes:row.notes, feishu_link:row.feishu_link, code_state:row.code_state, }; var op_user = localStorage.getItem("online_user"); var level = localStorage.getItem("level"); var did = localStorage.getItem("did"); if(did>=4){ if(row.if_show_del){ this.$nextTick(() => { this.$refs['authform_5'].clearValidate() }); this.$data.updatedialogVisible_5 = true; }else{ this.$nextTick(() => { this.$refs['authform_5_ex'].clearValidate() }); this.$data.updatedialogVisible_5_ex = true; } }else if(did==3){ if(row.if_show_del){ this.$nextTick(() => { this.$refs['authform_3_ex'].clearValidate() }); this.$data.updatedialogVisible_3_ex = true; }else{ this.$nextTick(() => { this.$refs['authform_3'].clearValidate() }); this.$data.updatedialogVisible_3 = true; } }else if (did==1){ this.$data.planTableData=[]; if(row.produce_plan_data != null){ for(var i=0;i { this.$refs['authform_1_ex'].clearValidate() }); this.$data.updatedialogVisible_1_ex = true; }else{ this.$nextTick(() => { this.$refs['authform_1'].clearValidate() }); this.$data.updatedialogVisible_1 = true; } } else if (did==2){ this.$data.deliveryTableData=[]; if(row.DeliveryDetailInfo != null){ for(var i=0;i { if (valid) { var _this = this; console.log(_this.$data.form); axios.post('/pkpi/updatekpi_2', { opuser:localStorage.getItem("online_user"), opuser_uuid:localStorage.getItem("uuid"), data:{ id:_this.$data.form.id, plan_state:_this.$data.form.plan_state, notes:_this.$data.form.notes, DeliveryDetailInfo:_this.$data.deliveryTableData, } }) .then(function (response) { let r = response.data.r; let s = "" let errType = "" if (r == 0) { errType = "success" s = "修改生产计划成功!"; } else{ errType = "error" s = "修改生产计划失败!"; } _this.$message({ message: s, type: errType, duration: 1500 }); //更新页面 _this.getkpi(); }) .catch(function (error) { console.log(error); }); } }); }, updatekpi_1(){ this.$refs['authform_1'].validate((valid) => { if (valid) { var _this = this; let p_data = []; for(var i=0; i<_this.$data.planTableData.length;++i){ var obj ={ id:_this.$data.planTableData[i].id, produce_plan:_this.$data.planTableData[i].produce_plan, produce_plan_use_t:_this.$data.planTableData[i].produce_plan_use_t, produce_user:_this.$data.planTableData[i].produce_user, dispath_num:_this.$data.planTableData[i].dispath_num.toString(), plan_dispath_date:_this.$data.planTableData[i].plan_dispath_date, p_plan_finished_t:_this.$data.planTableData[i].p_plan_finished_t, p_actual_finished_t:_this.$data.planTableData[i].p_actual_finished_t, p_finished_overdue_day:_this.$data.planTableData[i].p_finished_overdue_day, pre_time:_this.$data.planTableData[i].pre_time.toString(), code_time:_this.$data.planTableData[i].code_time.toString(), pre_time_checked:_this.$data.planTableData[i].pre_time_checked, code_time_checked:_this.$data.planTableData[i].code_time_checked, } p_data.push(obj); } console.log(_this.$data.form); axios.post('/pkpi/updatekpi_1', { opuser:localStorage.getItem("online_user"), opuser_uuid:localStorage.getItem("uuid"), data:{ id:_this.$data.form.id, product_id:_this.$data.form.product_id, total_num:_this.$data.form.total_num.toString(), group_name:_this.$data.form.group_name, plan_state:_this.$data.form.plan_state, dispath_num:_this.$data.form.dispath_num.toString(), produce_plan_data:p_data, feishu_link:_this.$data.form.feishu_link, code_state:_this.$data.form.code_state, notes:_this.$data.form.notes, } }) .then(function (response) { let r = response.data.r; let s = "" let errType = "" if (r == 0) { errType = "success" s = "修改生产计划成功!"; } else if(r==1){ errType = "error" s = "工序派产数量总和不可大于派产总数量!"; } else if (r ==3) { errType = "error" s = "派产总数量不可大于计划数量!"; } else if (r==2){ errType = "error" s = response.data.err_text; } else{ errType = "error" s = "修改生产计划失败!"; } _this.$message({ message: s, type: errType, duration: 1500 }); //更新页面 if(r==0){ _this.getkpi(_this.$data.currentPage); _this.$data.updatedialogVisible_1 = false; } }) .catch(function (error) { console.log(error); }); } }); }, updatekpi_1_ex(){ this.$refs['authform_1_ex'].validate((valid) => { if (valid) { var _this = this; let p_data = []; for(var i=0; i<_this.$data.planTableData.length;++i){ var obj ={ id:_this.$data.planTableData[i].id, produce_plan:_this.$data.planTableData[i].produce_plan, produce_plan_use_t:_this.$data.planTableData[i].produce_plan_use_t, produce_user:_this.$data.planTableData[i].produce_user, dispath_num:_this.$data.planTableData[i].dispath_num.toString(), plan_dispath_date:_this.$data.planTableData[i].plan_dispath_date, p_plan_finished_t:_this.$data.planTableData[i].p_plan_finished_t, p_actual_finished_t:_this.$data.planTableData[i].p_actual_finished_t, p_finished_overdue_day:_this.$data.planTableData[i].p_finished_overdue_day, pre_time:_this.$data.planTableData[i].pre_time.toString(), code_time:_this.$data.planTableData[i].code_time.toString(), pre_time_checked:_this.$data.planTableData[i].pre_time_checked, code_time_checked:_this.$data.planTableData[i].code_time_checked, } p_data.push(obj); } console.log(_this.$data.form); axios.post('/pkpi/updatekpi_1_ex', { opuser:localStorage.getItem("online_user"), opuser_uuid:localStorage.getItem("uuid"), data:{ id:_this.$data.form.id, task_id:_this.$data.form.task_id, product_id:_this.$data.form.product_id, total_num:_this.$data.form.total_num.toString(), demand_date:_this.$data.form.demand_date, rdm_id:_this.$data.form.rdm_id, conveyer:_this.$data.form.conveyer, group_name:_this.$data.form.group_name, plan_state:_this.$data.form.plan_state, dispath_num:_this.$data.form.dispath_num.toString(), feishu_link:_this.$data.form.feishu_link, code_state:_this.$data.form.code_state, produce_plan_data:p_data, notes:_this.$data.form.notes, } }) .then(function (response) { let r = response.data.r; let s = "" let errType = "" if (r == 0) { errType = "success" s = "修改生产计划成功!"; } else if(r==1){ errType = "error" s = "工序派产数量总和不可大于派产总数量!"; } else if (r ==3) { errType = "error" s = "派产总数量不可大于计划数量!"; } else if(r==2){ errType = "error" s = response.data.err_text; } else{ errType = "error" s = "修改生产计划失败!"; } _this.$message({ message: s, type: errType, duration: 1500 }); //更新页面 if(r==0){ _this.getkpi(_this.$data.currentPage); _this.$data.updatedialogVisible_1_ex = false; } }) .catch(function (error) { console.log(error); }); } }); }, updatekpi_5(){ this.$refs['authform_5'].validate((valid) => { if (valid) { var _this = this; console.log(_this.$data.form); axios.post('/pkpi/updatekpi_5', { opuser:localStorage.getItem("online_user"), opuser_uuid:localStorage.getItem("uuid"), data:{ id:_this.$data.form.id, priority:_this.$data.form.priority, department_name:_this.$data.form.department, task_id:_this.$data.form.task_id, product_id:_this.$data.form.product_id, product_name:_this.$data.form.product_name, total_num:_this.$data.form.total_num.toString(), plan_state:_this.$data.form.plan_state, demand_date:_this.$data.form.demand_date, rdm_id:_this.$data.form.rdm_id, conveyer:_this.$data.form.conveyer, } }) .then(function (response) { let r = response.data.r; let s = "" let errType = "" if (r == 0) { errType = "success" s = "修改生产计划成功!"; } else if (r==2){ errType = "error" s = response.data.err_text; } else{ errType = "error" s = "修改生产计划失败!"; } _this.$message({ message: s, type: errType, duration: 1500 }); //更新页面 _this.getkpi(_this.$data.currentPage); _this.$data.updatedialogVisible_5 = false; }) .catch(function (error) { console.log(error); }); } }); }, updatekpi_5_ex(){ this.$refs['authform_5_ex'].validate((valid) => { if (valid) { var _this = this; console.log(_this.$data.form); axios.post('/pkpi/updatekpi_5_ex', { opuser:localStorage.getItem("online_user"), opuser_uuid:localStorage.getItem("uuid"), data:{ id:_this.$data.form.id, task_id:_this.$data.form.task_id, product_id:_this.$data.form.product_id, product_name:_this.$data.form.product_name, total_num:_this.$data.form.total_num.toString(), } }) .then(function (response) { let r = response.data.r; let s = "" let errType = "" if (r == 0) { errType = "success" s = "修改生产计划成功!"; } else if(r==2){ errType = "error" s = response.data.err_text; } else{ errType = "error" s = "修改生产计划失败!"; } _this.$message({ message: s, type: errType, duration: 1500 }); //更新页面 _this.getkpi(_this.$data.currentPage); _this.$data.updatedialogVisible_5_ex = false; }) .catch(function (error) { console.log(error); }); } }); }, updatekpi_3_ex(){ this.$refs['authform_3_ex'].validate((valid) => { if (valid) { if ((this.$data.form.Material_inventory =="不足" || this.$data.form.Material_inventory =="无") && this.$data.form.promise_date==""){ this.$message({ message: "承诺到料日期不可为空!", type : "warning", duration: 1500 }); return; } var _this = this; console.log(_this.$data.form); axios.post('/pkpi/updatekpi_3_ex', { opuser:localStorage.getItem("online_user"), opuser_uuid:localStorage.getItem("uuid"), data:{ id:_this.$data.form.id, department_name:_this.$data.form.department, task_id:_this.$data.form.task_id, product_id:_this.$data.form.product_id, product_name:_this.$data.form.product_name, total_num:_this.$data.form.total_num.toString(), plan_state:_this.$data.form.plan_state, Material_inventory:_this.$data.form.Material_inventory, promise_date:_this.$data.form.promise_date, promised_date:_this.$data.form.promised_date, buyer:_this.$data.form.buyer, demand_date:_this.$data.form.demand_date, rdm_id:_this.$data.form.rdm_id, conveyer:_this.$data.form.conveyer, Material_p:_this.$data.form.Material_p, } }) .then(function (response) { let r = response.data.r; let s = "" let errType = "" if (r == 0) { errType = "success" s = "修改生产计划成功!"; } else if (r==2){ errType = "error" s = response.data.err_text; } else{ errType = "error" s = "修改生产计划失败!"; } _this.$message({ message: s, type: errType, duration: 1500 }); //更新页面 _this.getkpi(_this.$data.currentPage); _this.$data.updatedialogVisible_3_ex = false; }) .catch(function (error) { console.log(error); }); this.$data.updatedialogVisible_3_ex = false; } }); }, updatekpi_3(){ this.$refs['authform_3'].validate((valid) => { if (valid) { if ((this.$data.form.Material_inventory =="不足" || this.$data.form.Material_inventory =="无") && this.$data.form.promise_date==""){ this.$message({ message: "承诺到料日期不可为空!", type : "warning", duration: 1500 }); return; } var _this = this; console.log(_this.$data.form); axios.post('/pkpi/updatekpi_3', { opuser:localStorage.getItem("online_user"), opuser_uuid:localStorage.getItem("uuid"), data:{ id:_this.$data.form.id, product_id:_this.$data.form.product_id, plan_state:_this.$data.form.plan_state, Material_inventory:_this.$data.form.Material_inventory, promise_date:_this.$data.form.promise_date, promised_date:_this.$data.form.promised_date, buyer:_this.$data.form.buyer, Material_p:_this.$data.form.Material_p, } }) .then(function (response) { let r = response.data.r; let s = "" let errType = "" if (r == 0) { errType = "success" s = "修改生产计划成功!"; } else if(r==2){ errType = "error" s = response.data.err_text; } else{ errType = "error" s = "修改生产计划失败!"; } _this.$message({ message: s, type: errType, duration: 1500 }); //更新页面 _this.getkpi(_this.$data.currentPage); _this.$data.updatedialogVisible_3 = false; }) .catch(function (error) { console.log(error); }); } }); }, delKpi(row){ this.$confirm('此操作将永久删除, 是否继续?', '提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning' }).then(() => { var _this = this; axios.post('/pkpi/delKpi', { opuser:localStorage.getItem("online_user"), opuser_uuid:localStorage.getItem("uuid"), id:row.id }) .then(function (response) { let r = response.data.r; let s = "" let errType = "" if (r == 0) { errType = "success" s = "删除生产计划成功!"; } else{ errType = "error" s = "删除生产计划失败!"; } _this.$message({ message: s, type: errType, duration: 1500 }); //更新页面 _this.getkpi(); }) .catch(function (error) { console.log(error); }); }).catch(() => { }); }, addkpi_5(){ this.$refs['authform_5_add'].validate((valid) => { if (valid) { if (this.$data.form.Material_inventory =="不足" && this.$data.form.promise_date==""){ this.$message({ message: "承诺到料日期不可为空!", type : "warning", duration: 1500 }); return; } var _this = this; console.log(_this.$data.form); axios.post('/pkpi/addkpi', { opuser:localStorage.getItem("online_user"), opuser_uuid:localStorage.getItem("uuid"), oper_type: _this.$data.oper_type, data:{ priority:_this.$data.form.priority, department_name:_this.$data.form.department, task_id:_this.$data.form.task_id, product_id:_this.$data.form.product_id, product_name:_this.$data.form.product_name, total_num:_this.$data.form.total_num, plan_state:_this.$data.form.plan_state, Material_inventory:_this.$data.form.Material_inventory, promise_date:_this.$data.form.promise_date, promised_date:_this.$data.form.promised_date, buyer:_this.$data.form.buyer, demand_date:_this.$data.form.demand_date, rdm_id:_this.$data.form.rdm_id, conveyer:_this.$data.form.conveyer, } }) .then(function (response) { let r = response.data.r; let s = "" let errType = "" if (r == 0) { errType = "success" s = "新增生产计划成功!"; } else if (r ==2) { errType = "error" s = response.data.err_text; } else { errType = "error" s = "新增生产计划失败!"; } _this.$message({ message: s, type: errType, duration: 1500 }); //更新页面 _this.getkpi(); _this.$data.adddialogVisible_5 = false; }) .catch(function (error) { console.log(error); }); } }); }, addkpi_3(){ this.$refs['authform_3_add'].validate((valid) => { if (valid) { if (this.$data.form.Material_inventory =="不足" && this.$data.form.promise_date==""){ this.$message({ message: "承诺到料日期不可为空!", type : "warning", duration: 1500 }); return; } var _this = this; console.log(_this.$data.form); axios.post('/pkpi/addkpi', { opuser:localStorage.getItem("online_user"), opuser_uuid:localStorage.getItem("uuid"), oper_type: _this.$data.oper_type, data:{ priority:_this.$data.form.priority, department_name:_this.$data.form.department, task_id:_this.$data.form.task_id, product_id:_this.$data.form.product_id, product_name:_this.$data.form.product_name, total_num:_this.$data.form.total_num, plan_state:_this.$data.form.plan_state, Material_inventory:_this.$data.form.Material_inventory, promise_date:_this.$data.form.promise_date, promised_date:_this.$data.form.promised_date, buyer:_this.$data.form.buyer, demand_date:_this.$data.form.demand_date, rdm_id:_this.$data.form.rdm_id, conveyer:_this.$data.form.conveyer, Material_p:_this.$data.form.Material_p, } }) .then(function (response) { let r = response.data.r; let s = "" let errType = "" if (r == 0) { errType = "success" s = "新增生产计划成功!"; } else if (r ==2) { errType = "error" s = response.data.err_text; } else { errType = "error" s = "新增生产计划失败!"; } _this.$message({ message: s, type: errType, duration: 1500 }); //更新页面 _this.getkpi(); _this.$data.adddialogVisible_3 = false; }) .catch(function (error) { console.log(error); }); } }); }, showUpdatehistory(row){ var _this = this; axios.post('/pkpi/getkpihis', { opuser:localStorage.getItem("online_user"), opuser_uuid:localStorage.getItem("uuid"), id:row.id, }) .then(function (response) { console.log(response.data); objs = response.data.data; _this.$data.tableData1 = objs; }) .catch(function (error) { console.log(error); }); axios.post('/pkpi/get_cur_did_from_task', { opuser:localStorage.getItem("online_user"), opuser_uuid:localStorage.getItem("uuid"), id:row.id, }) .then(function (response) { console.log(response.data); _this.$data.cur_did_name = response.data.d_name; _this.$data.drawer = true; }) .catch(function (error) { console.log(error); }); this.$data.usetime_t_data=[]; let obj = { department_name : "生产部", usetime_h : row.d1_ut, task_in_time : row.d1_bt, task_out_time : row.d1_et, }; this.$data.usetime_t_data.push(obj); obj = { department_name : "供应链", usetime_h : row.d3_ut, task_in_time : row.d3_bt, task_out_time : row.d3_et, }; this.$data.usetime_t_data.push(obj); obj = { department_name : "交付", usetime_h : row.d4_ut, task_in_time : row.d4_bt, task_out_time : row.d4_et, }; this.$data.usetime_t_data.push(obj); obj = { department_name : "研发", usetime_h : row.d5_ut, task_in_time : row.d5_bt, task_out_time : row.d5_et, }; this.$data.usetime_t_data.push(obj); obj = { department_name : "保温瓶", usetime_h : row.d6_ut, task_in_time : row.d6_bt, task_out_time : row.d6_et, }; this.$data.usetime_t_data.push(obj); obj = { department_name : "技术", usetime_h : row.d7_ut, task_in_time : row.d7_bt, task_out_time : row.d7_et, }; this.$data.usetime_t_data.push(obj); }, handleClose(done) { done(); }, getkpi(cur_page){ console.log("cur_page:",cur_page); document.getElementById("bt_serach").blur(); var _this = this; if (cur_page==undefined){ _this.$data.currentPage=1; } else { _this.$data.currentPage=cur_page; } var objs; axios.post('/pkpi/getkpi', { opuser:localStorage.getItem("online_user"), opuser_uuid:localStorage.getItem("uuid"), index: this.$data.currentPage, count: this.$data.pagesize, id:this.$data.id_v, sap_id:this.$data.sapid_v, pid:this.$data.pid_v, pname:this.$data.pname_v, bt:this.$data.value1, et:this.$data.value2, if_checked:this.$data.checked, group_name:this.$data.group_name_v, plan_state:this.$data.plan_state_v, if_del:this.$data.if_del, promise_date:this.$data.search_promise_date, conveyer:this.$data.conveyer_v, rdm_id:this.$data.rdm_v, product_user:this.$data.product_user_v, }) .then(function (response) { console.log(response.data); objs = response.data.data; rcnt = response.data.total; _this.$data.tableData = objs; _this.$data.recordTotal = rcnt; //_this.$data.pagecnt = response.data.pagecnt; }) .catch(function (error) { console.log(error); }); }, handleSizeChange(val) { //console.log(`每页 ${val} 条`); this.$data.pagesize = val; var _this = this; var objs; axios.post('/pkpi/getkpi', { opuser:localStorage.getItem("online_user"), opuser_uuid:localStorage.getItem("uuid"), index: this.$data.currentPage, count: this.$data.pagesize, id:this.$data.id_v, sap_id:this.$data.sapid_v, pid:this.$data.pid_v, pname:this.$data.pname_v, puser:this.$data.puser_v, bt:this.$data.value1, et:this.$data.value2, if_checked:this.$data.checked, group_name:this.$data.group_name_v, plan_state:this.$data.plan_state_v, if_del:this.$data.if_del, promise_date:this.$data.search_promise_date, conveyer:this.$data.conveyer_v, rdm_id:this.$data.rdm_v, }) .then(function (response) { console.log(response.data); objs = response.data.data; rcnt = response.data.total; _this.$data.tableData = objs; _this.$data.recordTotal = rcnt; }) .catch(function (error) { console.log(error); }); }, handleCurrentChange(val) { //console.log(`当前页: ${val}`); this.$data.currentPage = val; var _this = this; var objs; axios.post('/pkpi/getkpi', { opuser:localStorage.getItem("online_user"), opuser_uuid:localStorage.getItem("uuid"), index: this.$data.currentPage, count: this.$data.pagesize, id:this.$data.id_v, sap_id:this.$data.sapid_v, pid:this.$data.pid_v, pname:this.$data.pname_v, puser:this.$data.puser_v, bt:this.$data.value1, et:this.$data.value2, if_checked:this.$data.checked, group_name:this.$data.group_name_v, plan_state:this.$data.plan_state_v, if_del:this.$data.if_del, promise_date:this.$data.search_promise_date, conveyer:this.$data.conveyer_v, rdm_id:this.$data.rdm_v, }) .then(function (response) { console.log(response.data); objs = response.data.data; rcnt = response.data.total; _this.$data.tableData = objs; _this.$data.recordTotal = rcnt; }) .catch(function (error) { console.log(error); }); }, } }