| | |
| | | </el-form> |
| | | <el-form :model="queryParams" ref="queryParams" size="small" :inline="true" v-show="advancedShowSearch" label-width="68px"> |
| | | <el-form-item label="机型" prop="typeZ"> |
| | | <el-input v-model="queryParams.typeZ" placeholder="请输入机型" clearable @keyup.enter.native="handleQuery"/> |
| | | <el-select v-model="queryParams.typeZ" placeholder="请选择机型" clearable> |
| | | <el-option |
| | | v-for="dict in typeSelectList" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value"/> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label-width="130" label="发动机号" prop="engineNo"> |
| | | <el-input v-model="queryParams.engineNo" placeholder="请输入发动机号" clearable @keyup.enter.native="handleQuery"/> |
| | |
| | | |
| | | <el-card style="margin-top: 10px" class="box-card"> |
| | | <el-row :gutter="10" class="mb8"> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | | icon="el-icon-plus" |
| | | size="mini" |
| | | @click="handleAdd" |
| | | v-hasPermi="['om:productionOrde:add']" |
| | | >新增</el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="success" |
| | |
| | | plain |
| | | icon="el-icon-edit" |
| | | size="mini" |
| | | :disabled="single" |
| | | :disabled="create" |
| | | @click="CreatehandleUpdate" |
| | | >生成</el-button> |
| | | </el-col> |
| | |
| | | </span> |
| | | <el-form ref="form" inline :model="form" :rules="rules" label-width="80px"> |
| | | <el-form-item label="工单号" prop="workOrderNo"> |
| | | <el-input v-model="form.workOrderNo" placeholder="请输入生产订单" /> |
| | | <el-input v-model="form.workOrderNo" disabled placeholder="请输入生产订单" /> |
| | | </el-form-item> |
| | | <el-form-item label="订单编号" prop="salesOrderCode"> |
| | | <el-input v-model="form.salesOrderCode" placeholder="请输入订单编号" /> |
| | | <el-form-item label="订单编号" prop="productionNotice"> |
| | | <el-input v-model="form.productionNotice" disabled placeholder="请输入订单编号" /> |
| | | </el-form-item> |
| | | <el-form-item label="产品编号" prop="productCode"> |
| | | <el-input v-model="form.productCode" placeholder="请选择产品" > |
| | | <el-button slot="append" @click="handleSelectProduct" icon="el-icon-search"></el-button> |
| | | </el-input> |
| | | <ItemSelect ref="itemSelect" @onSelected="onItemSelected" > </ItemSelect> |
| | | <el-input v-model="form.productCode" disabled placeholder="请输入产品编号" /> |
| | | </el-form-item> |
| | | <el-form-item label="产品名称" prop="productName"> |
| | | <el-input v-model="form.productName" disabled placeholder="请输入产品名称" /> |
| | |
| | | <el-form-item label="种类" prop="productName"> |
| | | <el-input v-model="form.typeZ" disabled placeholder="请输入种类" /> |
| | | </el-form-item> |
| | | <el-form-item label="实际数量" prop="actualQty"> |
| | | <el-input v-model="form.actualQty" placeholder="请输入实际数量" /> |
| | | </el-form-item> |
| | | <el-form-item label="车间编号" prop="workshopCode"> |
| | | <el-select style="width: 93%" @change="handleSelectChange(form.workshopCode)" v-model="form.workshopCode" placeholder="请选择车间编号"> |
| | | <el-form-item label="工单状态" prop="orderStatus"> |
| | | <el-select style="width: 93%" v-model="form.orderStatus" placeholder="请选择工单状态"> |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.workshopCode" |
| | | :label="item.workshopName" |
| | | :value="item.workshopCode"> |
| | | v-for="item in statuOptions" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item style="margin-left: -15px" label="产线编号" prop="lineCode"> |
| | | <el-select style="width: 93%" v-model="form.lineCode" placeholder="请选择产线编号"> |
| | | <el-option |
| | | v-for="item in lineOptions" |
| | | :key="item.lineCode" |
| | | :label="item.lineName" |
| | | :value="item.lineCode"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="工艺流程" prop="routeCode"> |
| | | <el-input v-model="form.routeCode" disabled placeholder="请输入工艺流程" /> |
| | | </el-form-item> |
| | | <el-form-item label="产品BOM" prop="bomCode"> |
| | | <el-input v-model="form.bomCode" disabled placeholder="请输入产品BOM" /> |
| | | </el-form-item> |
| | | <el-form-item label="工艺配方" prop="recipeCode"> |
| | | <el-input v-model="form.recipeCode" placeholder="请输入工艺配方" /> |
| | | </el-form-item> |
| | | <el-form-item label="计划数量" prop="planQty"> |
| | | <el-input v-model="form.planQty" placeholder="请输入计划数量" /> |
| | | </el-form-item> |
| | | <el-form-item label="需求日期" prop="demandDate"> |
| | | <el-date-picker style="width: 88%" clearable |
| | | v-model="form.demandDate" |
| | | type="date" |
| | | value-format="yyyy-MM-dd" |
| | | placeholder="请选择需求日期"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item style="margin-left: -30px" label="备注" prop="remarks"> |
| | | <el-input v-model="form.remarks" placeholder="请输入备注" /> |
| | | </el-form-item> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item style="margin-left: 10px" label-width="120" label="计划开始时间" prop="planStartTime"> |
| | | <el-date-picker clearable |
| | | v-model="form.planStartTime" |
| | | type="date" |
| | | value-format="yyyy-MM-dd" |
| | | placeholder="请选择计划开始时间"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item style="margin-left: 76px" label-width="120" label="计划结束时间" prop="planEndTime"> |
| | | <el-date-picker clearable |
| | | v-model="form.planEndTime" |
| | | type="date" |
| | | value-format="yyyy-MM-dd" |
| | | placeholder="请选择计划结束时间"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | | |
| | | </el-row> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="submitForm">确 定</el-button> |
| | |
| | | </div> |
| | | </el-dialog> |
| | | |
| | | <el-dialog v-dialogpop-up :title="title" :visible.sync="Createopen" width="400px" append-to-body> |
| | | <el-dialog v-dialogpop-up :title="title" :visible.sync="Createopen" width="500px" append-to-body> |
| | | <span slot="title"> |
| | | <i class="el-icon-s-order"></i> |
| | | {{titleName}} |
| | |
| | | v-model="form.dateTime" |
| | | type="date" |
| | | value-format="yyyy-MM-dd" |
| | | placeholder="请选择日期" @input="handleCodeChange"> |
| | | placeholder="请选择日期" @input="handleCodeChangeData"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item class="hidden-form-item" label="日期规则" prop="dateTimeRule"> |
| | | <el-input v-model="form.dateTimeRule"/> |
| | | </el-form-item> |
| | | <el-form-item label="起始编号" prop="startCode"> |
| | | <el-input type="number" :maxlength="3" :pattern="'[0-9]{3}'" v-model="form.startCode" placeholder="请输入起始编号" @input="handleCodeChange"/> |
| | | <el-input type="number" :maxlength="3" :pattern="'[0-9]{3}'" v-model="form.startCode" placeholder="请输入起始编号" @input="handleCodeChangeStart"/> |
| | | </el-form-item> |
| | | <el-form-item label="起止编号" prop="startEndCode"> |
| | | <el-input type="textarea" disabled v-model="form.startEndCode"/> |
| | |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | | <Detail v-if="showDetailFlag" :singleSelect="singleSelect"></Detail> |
| | | <Detail v-if="showDetailFlag" :singleSelect="singleSelect" @reserveChild = "reserveChild"></Detail> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | }, |
| | | data() { |
| | | return { |
| | | statuOptions:[ |
| | | { |
| | | label:"待下达", |
| | | value:"1" |
| | | }, |
| | | { |
| | | label:"已下达", |
| | | value:"2" |
| | | } |
| | | ], |
| | | typeSelectList: [ |
| | | { |
| | | label:"380", |
| | | value:"380" |
| | | }, |
| | | { |
| | | label:"280", |
| | | value:"280" |
| | | } |
| | | ], |
| | | typeZDateRules: '', |
| | | showDetailFlag: false, |
| | | singleSelect:{}, |
| | | titleName: '', |
| | |
| | | ids: [], |
| | | // 非单个禁用 |
| | | single: true, |
| | | create: false, |
| | | // 非多个禁用 |
| | | multiple: true, |
| | | move: true, |
| | |
| | | year: [ |
| | | { required: true, message: "不能为空", trigger: "blur" } |
| | | ], |
| | | dateTime: [ |
| | | { required: true, message: "不能为空", trigger: "blur" } |
| | | ], |
| | | startCode: [ |
| | | { required: true, message: "不能为空", trigger: "blur" } |
| | | ], |
| | | }, |
| | | change: { |
| | | day: '', |
| | |
| | | this.initWorkshop(); |
| | | }, |
| | | methods: { |
| | | //日期或开始编号输入时 |
| | | handleCodeChange(data){ |
| | | reserveChild(){ |
| | | this.showDetailFlag = false |
| | | }, |
| | | handleCodeChangeData(){ |
| | | console.log('1111111111111111') |
| | | let dateTime = this.form.dateTime; |
| | | let planQty = this.form.planQty; |
| | | let startCode = this.form.startCode |
| | | if(dateTime !== null && dateTime !== undefined |
| | | && startCode !== null && startCode !== undefined) { |
| | | let dateTimeRule = ""; |
| | | if(dateTime !== null && dateTime !== undefined){ |
| | | let dateTimes = dateTime.split("-"); |
| | | let year = dateTimes[0]; |
| | | let month = dateTimes[1]; |
| | | let day = dateTimes[2]; |
| | | let dictYear = this.dict.type.year; |
| | | let dictMonth = this.dict.type.month; |
| | | let startCode = this.form.startCode |
| | | let dateTimeRule = ""; |
| | | |
| | | //年 |
| | | for (let i = 0; i < dictYear.length; i++) { |
| | | if (year === dictYear[i].label) { |
| | |
| | | dateTimeRule = dateTimeRule + this.markNo; |
| | | this.form.dateTimeRule = dateTimeRule;//此处赋值不加机型 |
| | | dateTimeRule = this.form.typeZ +" "+dateTimeRule;//此处加机型,顺序不能颠倒 |
| | | |
| | | //赋值起始编码 |
| | | this.form.startEndCode = dateTimeRule + String(parseInt(startCode)).padStart(3, '0') +"\n"+ dateTimeRule + String(parseInt(startCode) + parseInt(planQty)-1).padStart(3, '0') ; |
| | | } |
| | | if (this.form.typeZ !== null && this.form.typeZ !== '' && dateTimeRule !== null && dateTimeRule !== '' ){ |
| | | this.typeZDateRules = dateTimeRule |
| | | console.log('222222222222') |
| | | let queryParams = { |
| | | model: this.form.typeZ, |
| | | modelDate: this.form.dateTimeRule, |
| | | } |
| | | listModelNumber(queryParams).then(response => { |
| | | if(response.rows.length === 0){ |
| | | this.form.startCode = 1 |
| | | }else { |
| | | let max = response.rows[0].maxnumValue |
| | | this.form.startCode = parseInt(max) + 1 |
| | | } |
| | | this.form.startEndCode = this.typeZDateRules + String(parseInt(this.form.startCode)).padStart(3, '0') +"\n"+ this.typeZDateRules + String(parseInt(this.form.startCode) + parseInt(planQty)-1).padStart(3, '0') ; |
| | | }); |
| | | } |
| | | |
| | | }, |
| | | handleCodeChangeStart(){ |
| | | let planQty = this.form.planQty; |
| | | console.log('planQty',planQty) |
| | | //赋值起始编码 |
| | | this.form.startEndCode = this.typeZDateRules + String(parseInt(this.form.startCode)).padStart(3, '0') +"\n"+ this.typeZDateRules + String(parseInt(this.form.startCode) + parseInt(planQty)-1).padStart(3, '0') ; |
| | | }, |
| | | |
| | | getProductionNotice(){ |
| | |
| | | console.log('this.single1111',this.single) |
| | | console.log('selecion',selection) |
| | | this.ids = selection.map(item => item.id) |
| | | const statusList = selection.map(item => item.orderStatus) |
| | | console.log('statusList',statusList) |
| | | console.log('statusList.filter( x => x !== "1").length',statusList.filter( x => x !== "1").length) |
| | | if (statusList.filter( x => x !== "1").length >0){ |
| | | this.create = true |
| | | } else { |
| | | this.create = false |
| | | } |
| | | if (selection.length >1){ |
| | | this.single = false |
| | | this.multiple = true |
| | |
| | | this.titleName = "添加生产订单"; |
| | | }, |
| | | /** 同步按钮操作 */ |
| | | CreatehandleUpdate(Row) { |
| | | this.initWorkshop(); |
| | | this.reset(); |
| | | const id = Row.id || this.ids |
| | | getProductionOrdes(id).then(response => { |
| | | console.log(response.data) |
| | | console.log(response.data.productCode) |
| | | this.materialQueryParams.materialCode = response.data.productCode; |
| | | listMaterial(this.materialQueryParams).then(response => { |
| | | this.markNo = response.rows[0].mark |
| | | this.form.typeL = response.rows[0].typeL; |
| | | CreatehandleUpdate() { |
| | | console.log('this.ids',this.ids) |
| | | if (this.ids.length === 0){ |
| | | this.$message.error('请勾选数据'); |
| | | }else { |
| | | this.initWorkshop(); |
| | | this.reset(); |
| | | const id = this.ids |
| | | getProductionOrdes(id).then(response => { |
| | | console.log(response.data) |
| | | console.log(response.data.productCode) |
| | | this.materialQueryParams.materialCode = response.data.productCode; |
| | | listMaterial(this.materialQueryParams).then(response => { |
| | | console.log("res2121",response) |
| | | if (response.rows.length === 0){ |
| | | this.$message.error('未查找到物料编码对应编号!'); |
| | | this.cancel() |
| | | } else { |
| | | this.markNo = response.rows[0].mark |
| | | this.form.typeL = response.rows[0].typeL; |
| | | } |
| | | |
| | | }); |
| | | this.form = response.data; |
| | | this.form.idNums=id; |
| | | this.Createopen = true; |
| | | this.titleName = "生成箱体条码"; |
| | | // return Array.from({ length: parseInt(this.actualQty) }, (_, index) => index + 1); |
| | | }); |
| | | this.form = response.data; |
| | | this.form.idNums=id; |
| | | this.Createopen = true; |
| | | this.titleName = "生成箱体条码"; |
| | | // return Array.from({ length: parseInt(this.actualQty) }, (_, index) => index + 1); |
| | | }); |
| | | } |
| | | |
| | | }, |
| | | /** 修改按钮操作 */ |
| | | handleUpdate(row) { |
| | |
| | | |
| | | /** 生成箱体条码提交按钮 */ |
| | | submitFormForBoxCode() { |
| | | if (this.form.startCode === null || this.form.startCode === ''){ |
| | | this.$message.error('起始编号不能为空!'); |
| | | return; |
| | | } |
| | | let startCode = parseInt(this.form.startCode); |
| | | let queryParams = { |
| | | model: this.form.typeZ, |
| | | modelDate: this.form.dateTimeRule, |
| | | } |
| | | |
| | | if(startCode>999){ |
| | | this.$message.error('起始编号超出最大范围,请输入1-999的数字!'); |
| | | return; |
| | | }else if(startCode<1){ |
| | | this.$message.error('起始编号超出最小范围,请输入1-999的数字!'); |
| | | this.$message.error('请输入1-999的数字!'); |
| | | return; |
| | | } |
| | | listModelNumber(queryParams).then(response => { |
| | |
| | | }, `productionOrde_${new Date().getTime()}.xlsx`) |
| | | }, |
| | | goToPage() { |
| | | this.showDetailFlag=true |
| | | console.log('this.showDetailFlag',this.showDetailFlag) |
| | | //更新实际生产日期 |
| | | //updateOrderInfo(this.singleSelect) |
| | | if (this.ids.length === 0){ |
| | | this.$message.error('请勾选数据'); |
| | | }else { |
| | | this.showDetailFlag=true |
| | | console.log('this.showDetailFlag',this.showDetailFlag) |
| | | //更新实际生产日期 |
| | | //updateOrderInfo(this.singleSelect) |
| | | } |
| | | |
| | | }, |
| | | } |
| | | }; |