| | |
| | | @keyup.enter.native="val=>enterNative(val,'produceCode')" |
| | | /> |
| | | <!-- @keyup.native="e=>judgeIsScanning(e,'produceCode')"--> |
| | | |
| | | <div style="width: 90px;margin-left: 20px">生产设备:</div> |
| | | <el-select |
| | | v-model="form.SelectType" |
| | | style="width: 200px;" |
| | | placeholder="请选择" |
| | | @change="selectTypeChange" |
| | | > |
| | | <el-option |
| | | v-for="item in ZZeqpArr" |
| | | :key="item.code" |
| | | :label="item.name" |
| | | :value="item.code" |
| | | /> |
| | | </el-select> |
| | | </div> |
| | | <div v-if="false" style="display: flex;padding-right: 10px"> |
| | | <el-button v-waves @click="ZZstart"> |
| | |
| | | <div v-if="row.status==='CLOSED'">完工</div> |
| | | <div v-if="row.status==='NOSCHED'">待排程</div> |
| | | <div v-if="row.status==='SCHED'">已排程</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="saleOrderCode" |
| | | label="销售单号" |
| | | width="160" |
| | | show-tooltip-when-overflow |
| | | sortable="custom" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | {{ row.saleOrderCode?row.saleOrderCode:'/' }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="saleOrderCode" |
| | | label="销售单号" |
| | | width="160" |
| | | show-tooltip-when-overflow |
| | | sortable="custom" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | {{ row.saleOrderCode?row.saleOrderCode:'/' }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="wo_code" |
| | | label="工单号" |
| | | width="160" |
| | |
| | | fixed |
| | | /> |
| | | <el-table-column |
| | | prop="saleOrderCode" |
| | | label="销售单号" |
| | | width="160" |
| | | show-tooltip-when-overflow |
| | | sortable="custom" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | {{ row.saleOrderCode?row.saleOrderCode:'/' }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | show-tooltip-when-overflow |
| | | prop="wo_code" |
| | | label="工单号" |
| | |
| | | :visible.sync="dialogVisible" |
| | | width="850px" |
| | | class="dialogVisible" |
| | | :top="dialogTitle==='自制报工'?'5vh':'15vh'" |
| | | :top="dialogTitle==='自制报工'?'10vh':'15vh'" |
| | | :close-on-click-modal="false" |
| | | @close="handleClose" |
| | | @closed="handleClose" |
| | |
| | | :model="dialogForm" |
| | | label-width="110px" |
| | | > |
| | | <el-form-item label="销售单号:" style="margin: 0 10px 0 0"> |
| | | <div style="width: 200px">{{ dialogForm.saleOrderCode?dialogForm.saleOrderCode:'/' }}</div> |
| | | </el-form-item> |
| | | <el-form-item label="工单编号:" style="margin: 0 10px 0 0"> |
| | | <div style="width: 200px">{{ dialogForm.wo_code }}</div> |
| | | </el-form-item> |
| | |
| | | <div style="width: 200px">{{ dialogForm.startqty }}</div> |
| | | <!-- <div style="width: 200px">{{ dialogForm.noreportqty }}</div>--> |
| | | </el-form-item> |
| | | <el-form-item v-if="dialogTitle==='自制开始'" prop="eqpcode" label="生产设备:"> |
| | | <el-select |
| | | v-model="dialogForm.eqpcode" |
| | | style="width: 200px;" |
| | | placeholder="请选择" |
| | | > |
| | | <el-option |
| | | v-for="item in ZZeqpArr" |
| | | :key="item.code" |
| | | :label="item.name" |
| | | :value="item.code" |
| | | /> |
| | | </el-select> |
| | | <el-form-item v-if="dialogTitle==='自制开始'" label="生产设备:"> |
| | | <div style="width: 200px">{{ form.SelectType? ZZeqpArr.find(i=>i.code===form.SelectType).name:'' }}</div> |
| | | <!-- <el-select--> |
| | | <!-- v-model="dialogForm.eqpcode"--> |
| | | <!-- style="width: 200px;"--> |
| | | <!-- placeholder="请选择"--> |
| | | <!-- >--> |
| | | <!-- <el-option--> |
| | | <!-- v-for="item in ZZeqpArr"--> |
| | | <!-- :key="item.code"--> |
| | | <!-- :label="item.name"--> |
| | | <!-- :value="item.code"--> |
| | | <!-- />--> |
| | | <!-- </el-select>--> |
| | | </el-form-item> |
| | | <!-- 自制报工 --> |
| | | <el-form-item v-if="dialogTitle==='自制报工'" label="下道工序:" style="margin: 0 10px 0 0"> |
| | |
| | | <el-input v-model="dialogForm.startqty" oninput="value=value.replace(/[^0-9.]/g,'')" style="width: 200px;" /> |
| | | <!-- <el-input v-model="dialogForm.noreportqty" oninput="value=value.replace(/[^0-9.]/g,'')" style="width: 200px;" />--> |
| | | </el-form-item> |
| | | |
| | | <el-form-item v-if="dialogTitle==='自制报工'" label="不良数量:"> |
| | | <el-input v-model="dialogForm.noputqty" oninput="value=value.replace(/[^0-9.]/g,'')" style="width: 200px;" /> |
| | | <!-- <el-input--> |
| | | <!-- v-model="dialogForm.noputqty"--> |
| | | <!-- readonly--> |
| | | <!-- oninput="value=value.replace(/[^0-9.]/g,'')"--> |
| | | <!-- style="width: 200px;"--> |
| | | <!-- />--> |
| | | <div style="width:200px"> |
| | | {{ dialogForm.noputqty }} |
| | | </div> |
| | | |
| | | </el-form-item> |
| | | <el-form-item v-if="dialogTitle==='自制报工'" label="不良原因:"> |
| | | <el-select |
| | | v-model="dialogForm.badcode" |
| | | style="width: 200px;" |
| | | placeholder="请选择" |
| | | :disabled="parseFloat(dialogForm.noputqty)===0||dialogForm.noputqty.trim()===''" |
| | | multiple |
| | | collapse-tags |
| | | |
| | | <el-form-item v-if="dialogTitle==='自制报工'" label="备注:"> |
| | | <el-input v-model="dialogForm.remarks" type="textarea" style="width: 200px;" /> |
| | | </el-form-item> |
| | | |
| | | <!-- <el-form-item v-if="dialogTitle==='自制报工'" label="不良原因:">--> |
| | | <!-- <el-select--> |
| | | <!-- v-model="dialogForm.badcode"--> |
| | | <!-- style="width: 200px;"--> |
| | | <!-- placeholder="请选择"--> |
| | | <!-- :disabled="parseFloat(dialogForm.noputqty)===0||dialogForm.noputqty.trim()===''"--> |
| | | <!-- multiple--> |
| | | <!-- collapse-tags--> |
| | | <!-- >--> |
| | | <!-- <el-option--> |
| | | <!-- v-for="item in badArr"--> |
| | | <!-- :key="item.code"--> |
| | | <!-- :label="item.name"--> |
| | | <!-- :value="item.code"--> |
| | | <!-- />--> |
| | | <!-- </el-select>--> |
| | | <!-- </el-form-item>--> |
| | | |
| | | <el-form-item v-if="dialogTitle==='自制报工'" label="不良数量:"> |
| | | <el-input |
| | | v-model="badInput" |
| | | placeholder="请输入数量" |
| | | class="input-with-select" |
| | | style="width: 300px;" |
| | | oninput="value=value.replace(/[^0-9]/g,'')" |
| | | > |
| | | <el-option |
| | | v-for="item in badArr" |
| | | :key="item.code" |
| | | :label="item.name" |
| | | :value="item.code" |
| | | <el-select |
| | | slot="prepend" |
| | | v-model="badSelected" |
| | | multiple |
| | | placeholder="请选择" |
| | | clearable |
| | | style="width: 150px" |
| | | collapse-tags |
| | | > |
| | | <el-option |
| | | v-for="item in badArr" |
| | | :key="item.code" |
| | | :label="item.name" |
| | | :value="item.code" |
| | | /> |
| | | </el-select> |
| | | <el-button |
| | | slot="append" |
| | | icon="el-icon-plus" |
| | | @click="plusClick" |
| | | /> |
| | | </el-select> |
| | | </el-input> |
| | | </el-form-item> |
| | | |
| | | <div |
| | | v-for="(item,index) in BADNAME" |
| | | v-if="dialogTitle==='自制报工'" |
| | | :key="item+index" |
| | | style="margin-left: 25px;display: flex; line-height: 24px;" |
| | | > |
| | | <div |
| | | style=" |
| | | width: 22px;height: 22px;background: #42b983; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-content: center; |
| | | color: #fff; |
| | | line-height: 22px; |
| | | border-radius: 50%; |
| | | " |
| | | >{{ index+1 }}</div> |
| | | <div style="margin: 0 20px">{{ item.name }}</div> |
| | | <div>{{ item.badqty }}</div> |
| | | <div style="margin-left: 20px"> |
| | | <i |
| | | class="el-icon-delete" |
| | | style="color:#42b983;cursor: pointer" |
| | | @click="deleteClick(item,index)" |
| | | /> |
| | | </div> |
| | | |
| | | </div> |
| | | |
| | | <!-- <el-form-item v-if="dialogTitle==='自制报工'" label="报工人员:">--> |
| | | <!-- <el-input v-model="dialogForm.remarks" type="textarea" style="width: 200px;" />--> |
| | | <!-- </el-form-item>--> |
| | |
| | | <!-- />--> |
| | | <!-- </el-select>--> |
| | | <!-- </el-form-item>--> |
| | | <el-form-item v-if="dialogTitle==='自制报工'" label="备注:"> |
| | | <el-input v-model="dialogForm.remarks" type="textarea" style="width: 200px;" /> |
| | | </el-form-item> |
| | | |
| | | <div v-if="dialogTitle==='自制报工'&&dialogForm.reckway==='group'"> |
| | | <div style="display: flex;align-items:center;height: 40px;margin-bottom: 10px"> |
| | | <i class="el-icon-s-operation" :style="{color:$store.state.settings.theme}" /> |
| | |
| | | </el-table-column> |
| | | </el-table> |
| | | <!--分页--> |
| | | <pagination |
| | | :total="UserTotal" |
| | | :page.sync="Userform.page" |
| | | :limit.sync="Userform.rows" |
| | | align="right" |
| | | layout="total,prev, pager, next,sizes" |
| | | popper-class="select_bottom" |
| | | @pagination="getMesOrderStepSearch" |
| | | /> |
| | | <!-- <pagination--> |
| | | <!-- :total="UserTotal"--> |
| | | <!-- :page.sync="Userform.page"--> |
| | | <!-- :limit.sync="Userform.rows"--> |
| | | <!-- align="right"--> |
| | | <!-- layout="total,prev, pager, next,sizes"--> |
| | | <!-- popper-class="select_bottom"--> |
| | | <!-- @pagination="getMesOrderStepSearch"--> |
| | | <!-- />--> |
| | | </div> |
| | | <!-- 外协发料--> |
| | | <el-form-item |
| | |
| | | <el-input |
| | | v-model="dialogForm.sqty" |
| | | style="width: 200px" |
| | | :disabled="dialogForm.wxcode===''" |
| | | oninput="value=value.replace(/[^0-9.]/g,'')" |
| | | /> |
| | | </el-form-item> |
| | | |
| | | <el-form-item |
| | | v-if="dialogTitle==='外协收料'" |
| | | label="不良数量:" |
| | | prop="noputqty" |
| | | > |
| | | <div style="width: 200px;"> |
| | | {{ dialogForm.noputqty }} |
| | | </div> |
| | | |
| | | <!-- <el-input--> |
| | | <!-- v-model="dialogForm.noputqty"--> |
| | | <!-- style="width: 200px"--> |
| | | <!-- oninput="value=value.replace(/[^0-9.]/g,'')"--> |
| | | <!-- />--> |
| | | </el-form-item> |
| | | |
| | | <el-form-item v-if="dialogTitle==='外协收料'" label="备注:"> |
| | | <el-input v-model="dialogForm.remarks" type="textarea" style="width: 200px;" /> |
| | | </el-form-item> |
| | | |
| | | <el-form-item v-if="dialogTitle==='外协收料'" label="不良数量:"> |
| | | <el-input |
| | | v-model="dialogForm.noputqty" |
| | | style="width: 200px" |
| | | oninput="value=value.replace(/[^0-9.]/g,'')" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item |
| | | v-if="dialogTitle==='外协收料'" |
| | | label="不良原因:" |
| | | > |
| | | <!-- prop="badcode"--> |
| | | <el-select |
| | | v-model="dialogForm.badcode" |
| | | style="width: 200px;" |
| | | multiple |
| | | collapse-tags |
| | | :disabled="parseFloat(dialogForm.noputqty)===0||dialogForm.noputqty.trim()===''" |
| | | placeholder="请选择" |
| | | v-model="badInput" |
| | | placeholder="请输入数量" |
| | | class="input-with-select" |
| | | style="width: 300px;" |
| | | oninput="value=value.replace(/[^0-9]/g,'')" |
| | | > |
| | | <el-option |
| | | v-for="item in badArr" |
| | | :key="item.code" |
| | | :label="item.name" |
| | | :value="item.code" |
| | | <el-select |
| | | slot="prepend" |
| | | v-model="badSelected" |
| | | multiple |
| | | placeholder="请选择" |
| | | clearable |
| | | style="width: 150px" |
| | | collapse-tags |
| | | > |
| | | <el-option |
| | | v-for="item in badArr" |
| | | :key="item.code" |
| | | :label="item.name" |
| | | :value="item.code" |
| | | /> |
| | | </el-select> |
| | | <el-button |
| | | slot="append" |
| | | icon="el-icon-plus" |
| | | @click="plusClick" |
| | | /> |
| | | </el-select> |
| | | </el-input> |
| | | </el-form-item> |
| | | |
| | | <!-- <el-form-item--> |
| | | <!-- v-if="dialogTitle==='外协收料'"--> |
| | | <!-- label="不良原因:"--> |
| | | <!-- >--> |
| | | <!-- <el-select--> |
| | | <!-- v-model="dialogForm.badcode"--> |
| | | <!-- style="width: 200px;"--> |
| | | <!-- multiple--> |
| | | <!-- collapse-tags--> |
| | | <!-- :disabled="parseFloat(dialogForm.noputqty)===0||dialogForm.noputqty.trim()===''"--> |
| | | <!-- placeholder="请选择"--> |
| | | <!-- >--> |
| | | <!-- <el-option--> |
| | | <!-- v-for="item in badArr"--> |
| | | <!-- :key="item.code"--> |
| | | <!-- :label="item.name"--> |
| | | <!-- :value="item.code"--> |
| | | <!-- />--> |
| | | <!-- </el-select>--> |
| | | <!-- </el-form-item>--> |
| | | |
| | | <!-- <el-form-item v-if="dialogTitle==='外协收料'" label="收料人:">--> |
| | | <!-- <el-select--> |
| | | <!-- v-model="dialogForm.operation"--> |
| | |
| | | <!-- />--> |
| | | <!-- </el-select>--> |
| | | <!-- </el-form-item>--> |
| | | <el-form-item v-if="dialogTitle==='外协收料'" label="备注:"> |
| | | <el-input v-model="dialogForm.remarks" type="textarea" style="width: 200px;" /> |
| | | </el-form-item> |
| | | |
| | | </el-form> |
| | | <div v-if="dialogTitle==='外协收料'" style="display: flex;flex-direction: column"> |
| | | <!--明天接着写外协收料,供应商对应的已收未收详情--> |
| | | |
| | | <div |
| | | v-if="dialogTitle==='外协收料'&&BADNAME.length>0" |
| | | style="height: 30px;margin-left:30px;" |
| | | > |
| | | 不良数量明细: |
| | | </div> |
| | | <div |
| | | v-for="(item,index) in BADNAME" |
| | | v-if="dialogTitle==='外协收料'" |
| | | :key="item+index" |
| | | style="margin-left: 30px;display: flex; line-height: 24px;" |
| | | > |
| | | <div |
| | | style=" |
| | | width: 22px;height: 22px;background: #42b983; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-content: center; |
| | | color: #fff; |
| | | line-height: 22px; |
| | | border-radius: 50%; |
| | | " |
| | | >{{ index+1 }}</div> |
| | | <div style="margin: 0 20px">{{ item.name }}</div> |
| | | <div>{{ item.badqty }}</div> |
| | | <div style="margin-left: 20px"> |
| | | <i |
| | | class="el-icon-delete" |
| | | style="color:#42b983;cursor: pointer" |
| | | @click="deleteClick(item,index)" |
| | | /> |
| | | </div> |
| | | |
| | | </div> |
| | | |
| | | <div v-if="dialogTitle==='外协收料'" style="margin-top: 20px;;display: flex;flex-direction: column"> |
| | | |
| | | <div style="height: 30px;margin-left:30px;"> |
| | | 可收料供应商: |
| | | </div> |
| | |
| | | :disabled="$store.state.app.buttonIsDisabled" |
| | | type="primary" |
| | | @click="dialogVisibleConfirm" |
| | | >提交/打印</el-button> |
| | | >提 交</el-button> |
| | | <!-- /打印--> |
| | | <el-button |
| | | v-if="dialogTitle==='自制报工'&&dialogForm.nextstepname!==''" |
| | | v-waves |
| | |
| | | :disabled="$store.state.app.buttonIsDisabled" |
| | | type="primary" |
| | | @click="dialogVisibleConfirm" |
| | | >提交</el-button> |
| | | >提 交</el-button> |
| | | <el-button |
| | | v-if="dialogTitle==='外协发料'" |
| | | v-waves |
| | |
| | | :disabled="$store.state.app.buttonIsDisabled" |
| | | type="primary" |
| | | @click="dialogVisibleConfirm" |
| | | >发料</el-button> |
| | | >发 料</el-button> |
| | | <el-button |
| | | v-if="dialogTitle==='外协收料'&&dialogForm.nextstepname===''" |
| | | v-waves |
| | |
| | | :disabled="$store.state.app.buttonIsDisabled" |
| | | type="primary" |
| | | @click="dialogVisibleConfirm" |
| | | >收料/打印</el-button> |
| | | >收 料</el-button> |
| | | <!-- /打印--> |
| | | <el-button |
| | | v-if="dialogTitle==='外协收料'&&dialogForm.nextstepname!==''" |
| | | v-waves |
| | |
| | | :disabled="$store.state.app.buttonIsDisabled" |
| | | type="primary" |
| | | @click="dialogVisibleConfirm" |
| | | >收料</el-button> |
| | | >收 料</el-button> |
| | | </div> |
| | | </span> |
| | | </el-dialog> |
| | |
| | | :model="badDialogForm" |
| | | label-width="110px" |
| | | > |
| | | <el-form-item label="销售单号:"> |
| | | <div style="width: 200px">{{ badDialogForm.saleOrderCode? badDialogForm.saleOrderCode:'/' }}</div> |
| | | </el-form-item> |
| | | <el-form-item label="工单编号:"> |
| | | <div style="width: 200px">{{ badDialogForm.wo_code }}</div> |
| | | </el-form-item> |
| | |
| | | v-waves |
| | | type="primary" |
| | | :loading="$store.state.app.buttonIsDisabled" |
| | | :disabled="$store.state.app.buttonIsDisabled" |
| | | @click="badDialogVisibleConfirm " |
| | | >保 存/打 印</el-button> |
| | | :disabled="$store.state.app.buttonIsDisabled||badTableDataDialog.length===0||badTableDataDialog.find(i=>i.isVisible===1)" |
| | | @click="badDialogVisibleConfirm" |
| | | >保 存</el-button> |
| | | <!-- /打 印--> |
| | | </div> |
| | | </span> |
| | | </el-dialog> |
| | |
| | | WXradioSelected: '', // 工序选中 |
| | | form: { |
| | | orderstepqrcode: '', // 扫描的二维码信息 |
| | | SelectType: '', // 设备编码 |
| | | prop: 'lm_date', // 排序字段 |
| | | order: 'desc', // 排序字段 |
| | | page: 1, // 第几页 |
| | |
| | | dialogVisible: false, |
| | | dialogTitle: '', // 自制开始、自制报工、外协发料、外协收料 |
| | | dialogForm: { |
| | | saleOrderCode: '', |
| | | wo_code: '', // 工单编号 |
| | | partcode: '', // 产品编码 |
| | | partname: '', // 产品名称 |
| | |
| | | |
| | | startqtySum: '', // 不能超过的数值 |
| | | |
| | | reckway: 'group', // 计件方式 |
| | | reckway: 'person', // 计件方式 |
| | | |
| | | operation: getCookie('navTabId'), // 报工人(收料人) |
| | | remarks: '', // 备注 |
| | |
| | | inbarcode: ''// 末道工序时 打印的入库码 |
| | | |
| | | }, |
| | | |
| | | badSelected: [], // 已选的不良原因数组 |
| | | badInput: '', |
| | | BAD: [], |
| | | BADNAME: [], |
| | | |
| | | ZZuserArr: [], // 自制用户所有 |
| | | ZZtreams: [], // 自制生产班组数组 |
| | | ZZeqpArr: [], // 自制设备名称 |
| | |
| | | // 收料:code="200" count=3 |
| | | // 走列表形式 code="200" count=4 |
| | | if (belong === 'produceCode') { |
| | | const orderstepqrcode = this.form.orderstepqrcode |
| | | const data = { |
| | | OperType: 'ZZ', |
| | | orderstepqrcode: orderstepqrcode, |
| | | SelectType: '' |
| | | } |
| | | const res = await MesOrderStepStart(data) |
| | | if (res.code === '200' && res.count === 0) { |
| | | await this.ZZstart(res.data) |
| | | } |
| | | if (res.code === '200' && res.count === 1) { |
| | | await this.ZZreport(res.data) |
| | | } |
| | | await this.getMesOrderStepStartSelectEqp() |
| | | |
| | | // const orderstepqrcode = this.form.orderstepqrcode |
| | | // const data = { |
| | | // OperType: 'ZZ', |
| | | // orderstepqrcode: orderstepqrcode, |
| | | // SelectType: this.form.SelectType, |
| | | // stu_torgcode: getCookie('stu_torgcode') |
| | | // } |
| | | // const res = await MesOrderStepStart(data) |
| | | // if (res.code === '200' && res.count === 0) { |
| | | // await this.ZZstart(res.data) |
| | | // } |
| | | |
| | | // if (res.code === '200' && res.count === 1) { |
| | | // await this.ZZreport(res.data) |
| | | // } |
| | | } |
| | | if (belong === 'WXproduceCode') { |
| | | const orderstepqrcode = this.WXform.orderstepqrcode |
| | | const data = { |
| | | OperType: 'WX', |
| | | orderstepqrcode: orderstepqrcode, |
| | | stu_torgcode: getCookie('stu_torgcode'), |
| | | SelectType: this.WXSelected// OUT、IN |
| | | } |
| | | const res = await MesOrderStepStart(data) |
| | |
| | | this.dialogVisible = true |
| | | |
| | | this.$nextTick(() => { |
| | | this.dialogForm.saleOrderCode = obj.saleOrderCode |
| | | this.dialogForm.wo_code = obj.wo_code |
| | | this.dialogForm.partcode = obj.partnumber |
| | | this.dialogForm.partname = obj.partname |
| | |
| | | this.dialogForm.startqty = obj.noreportqty |
| | | }) |
| | | |
| | | await this.getMesOrderStepStartSelectEqp() |
| | | // await this.getMesOrderStepStartSelectEqp() |
| | | }, |
| | | // 自制报工 |
| | | async ZZreport(obj) { |
| | |
| | | // } |
| | | this.dialogTitle = '自制报工' |
| | | this.dialogVisible = true |
| | | this.dialogForm.saleOrderCode = obj.saleOrderCode |
| | | this.dialogForm.wo_code = obj.wo_code |
| | | this.dialogForm.partcode = obj.partnumber |
| | | this.dialogForm.partname = obj.partname |
| | | this.dialogForm.partspec = obj.partspec |
| | | this.dialogForm.stepseq = obj.seq |
| | | this.dialogForm.stepcode = obj.stepcode |
| | | this.dialogForm.stepname = obj.stepname |
| | | this.dialogForm.stepdesc = obj.stepdesc |
| | | this.dialogForm.planqty = obj.planqty |
| | | this.dialogForm.reportqty = obj.reportqty |
| | | this.dialogForm.noputqty = obj.noputqty |
| | | this.dialogForm.noreportqty = obj.noreportqty |
| | | // this.dialogForm.startqty = obj.startqty |
| | | this.dialogForm.startqty = obj.noreportqty |
| | | |
| | | this.dialogForm.nextstepname = obj.nextstepname |
| | | this.dialogForm.nextstepcode = obj.nextstepcode |
| | | |
| | | this.dialogForm.startqtySum = obj.noreportqty |
| | | |
| | | this.dialogForm.eqpname = obj.eqpname |
| | | this.dialogForm.eqpcode = obj.eqpcode |
| | | console.log(obj.wkshopcode, 7) |
| | | this.dialogForm.wkshopcode = obj.wkshopcode |
| | | this.dialogForm.wkshopname = obj.wkshopname |
| | | |
| | | this.$nextTick(() => { |
| | | this.dialogForm.wo_code = obj.wo_code |
| | | this.dialogForm.partcode = obj.partnumber |
| | | this.dialogForm.partname = obj.partname |
| | | this.dialogForm.partspec = obj.partspec |
| | | this.dialogForm.stepseq = obj.seq |
| | | this.dialogForm.stepcode = obj.stepcode |
| | | this.dialogForm.stepname = obj.stepname |
| | | this.dialogForm.stepdesc = obj.stepdesc |
| | | this.dialogForm.planqty = obj.planqty |
| | | this.dialogForm.reportqty = obj.reportqty |
| | | this.dialogForm.noputqty = obj.noputqty |
| | | this.dialogForm.noreportqty = obj.noreportqty |
| | | // this.dialogForm.startqty = obj.startqty |
| | | this.dialogForm.startqty = obj.noreportqty |
| | | |
| | | this.dialogForm.nextstepname = obj.nextstepname |
| | | this.dialogForm.nextstepcode = obj.nextstepcode |
| | | |
| | | this.dialogForm.startqtySum = obj.noreportqty |
| | | |
| | | this.dialogForm.eqpname = obj.eqpname |
| | | this.dialogForm.eqpcode = obj.eqpcode |
| | | |
| | | this.dialogForm.wkshopcode = obj.wkshopcode |
| | | this.dialogForm.wkshopname = obj.wkshopname |
| | | |
| | | this.$refs.userTableDataRef.doLayout() |
| | | }) |
| | | |
| | | await this.getMesOrderStepStartSelectEqp() |
| | | // await this.getMesOrderStepStartSelectEqp() |
| | | await this.getMesOrderStepReportSelectUserGroup() |
| | | await this.getMesOrderStepSelectCause('ZZ') |
| | | await this.getMesOrderSelectUserZZ() |
| | |
| | | this.dialogVisible = true |
| | | |
| | | this.$nextTick(() => { |
| | | this.dialogForm.saleOrderCode = obj.saleOrderCode |
| | | this.dialogForm.wo_code = obj.wo_code |
| | | this.dialogForm.partcode = obj.partnumber |
| | | this.dialogForm.partname = obj.partname |
| | |
| | | } |
| | | }) |
| | | |
| | | console.log(this.WXouterprovide2, 2) |
| | | // console.log(this.WXouterprovide2, 2) |
| | | |
| | | this.dialogTitle = '外协收料' |
| | | this.dialogVisible = true |
| | | |
| | | this.$nextTick(() => { |
| | | this.dialogForm.saleOrderCode = obj.saleOrderCode |
| | | this.dialogForm.wo_code = obj.wo_code |
| | | this.dialogForm.partcode = obj.partnumber |
| | | this.dialogForm.partname = obj.partname |
| | |
| | | }, |
| | | // 获取自制报工生产班组下拉列表 |
| | | async getMesOrderStepReportSelectUserGroup() { |
| | | // this.dialogForm.wkshopcode |
| | | |
| | | const { data: res } = await MesOrderStepReportSelectUserGroup({ wkshopcode: this.dialogForm.wkshopcode }) |
| | | this.ZZtreams = res |
| | | }, |
| | |
| | | const { data: res } = await MesOrderStepSelectCause({ orderstepqrcode: orderstepqrcode }) |
| | | this.badArr = res |
| | | }, |
| | | |
| | | // 开工选择设备改变时 |
| | | selectTypeChange(val) { |
| | | this.form.SelectType = val |
| | | const orderstepqrcode = this.form.orderstepqrcode |
| | | const data = { |
| | | OperType: 'ZZ', |
| | | orderstepqrcode: orderstepqrcode, |
| | | SelectType: this.form.SelectType, |
| | | stu_torgcode: getCookie('stu_torgcode') |
| | | } |
| | | MesOrderStepStart(data).then(res => { |
| | | if (res.code === '200' && res.count === 0) { |
| | | this.ZZstart(res.data) |
| | | } |
| | | |
| | | if (res.code === '200' && res.count === 1) { |
| | | this.ZZreport(res.data) |
| | | } |
| | | }).catch(e => { |
| | | this.form.orderstepqrcode = '' |
| | | this.form.SelectType = '' |
| | | }) |
| | | }, |
| | | |
| | | // 报工查询用户表 |
| | | async getUserTableData() { |
| | | const { data: res } = await MesOrderGroupSelectUser({ usergroupcode: this.dialogForm.usergroupcode }) |
| | |
| | | calculatedValue() { |
| | | const total = 100 |
| | | let value = 0 |
| | | |
| | | this.userTableData.forEach(item => { |
| | | item.ratio = parseFloat((100 / this.userTableData.length).toFixed(2)) |
| | | value += item.ratio |
| | | }) |
| | | console.log(value, 1) |
| | | |
| | | this.UserTotal = this.userTableData.length |
| | | if (value !== total) { |
| | | // let temp = this.userTableData |
| | |
| | | }) |
| | | }, |
| | | |
| | | plusClick() { |
| | | // console.log(this.badSelected, this.badInput) |
| | | if (this.badSelected.length < 1) { |
| | | return this.$message.info('请选择不良原因!') |
| | | } |
| | | if (this.badInput.toString().trim().length < 1) { |
| | | return this.$message.info('请输入不良数量!') |
| | | } |
| | | this.BAD.push({ |
| | | defect_code: this.badSelected.sort().join(','), |
| | | badqty: this.badInput |
| | | }) |
| | | |
| | | const NAME = [] |
| | | this.badSelected.forEach(item => { |
| | | const name = this.badArr.find(it => it.code === item).name |
| | | NAME.push(name) |
| | | }) |
| | | |
| | | this.BADNAME.push({ |
| | | name: NAME.join(','), badqty: this.badInput |
| | | }) |
| | | |
| | | // console.log(typeof this.dialogForm.noputqty) |
| | | |
| | | this.dialogForm.noputqty += parseFloat(this.badInput) |
| | | |
| | | this.badSelected = [] |
| | | this.badInput = '' |
| | | }, |
| | | |
| | | deleteClick(val, index) { |
| | | console.log(val, 2) |
| | | this.dialogForm.noputqty -= parseFloat(val.badqty) |
| | | this.BADNAME.splice(index, 1) |
| | | this.BAD.splice(index, 1) |
| | | }, |
| | | // 用户添加 |
| | | userAdd() { |
| | | if (this.userTableData.find(i => i.isVisible === 1)) { |
| | |
| | | } |
| | | let number = Math.random() * Math.random()// 作为删除时的标识符 |
| | | number = number === 0 ? (10 + Math.random()) : number |
| | | console.log(this.userTableData, 6) |
| | | this.userTableData.unshift({ usercode: '', username: '', isVisible: 1, number: number, ratio: 0 }) |
| | | this.calculatedValue() |
| | | }, |
| | |
| | | }, |
| | | // 对话框关闭事件 |
| | | handleClose() { |
| | | this.BAD = [] |
| | | this.BADNAME = [] |
| | | this.badSelected = [] |
| | | this.badInput = '' |
| | | |
| | | this.judgeIsScanningArr = [] |
| | | this.form.orderstepqrcode = '' |
| | | this.WXform.orderstepqrcode = '' |
| | | this.badForm.orderstepqrcode = '' |
| | | |
| | | this.dialogForm.wo_code = '', // 工单编号 |
| | | this.dialogForm.partcode = '', // 产品编码 |
| | | this.dialogForm.partname = '', // 产品名称 |
| | | this.dialogForm.partspec = '', // 产品规格 |
| | | this.dialogForm.stepseq = '', // 工序序号 |
| | | this.dialogForm.stepcode = '', // 工序编码 |
| | | this.dialogForm.stepname = '', // 当前工序名 |
| | | this.dialogForm.nextstepname = '', // 下一道工序名 |
| | | this.dialogForm.stepdesc = '', // 工序描述 |
| | | this.dialogForm.planqty = '', // 任务数量 |
| | | this.dialogForm.reportqty = '', // 已报数量 |
| | | this.dialogForm.noreportqty = '', // 未报数量 |
| | | this.dialogForm.startqty = '', // 开(报)工数量 |
| | | this.dialogForm.wo_code = '' // 工单编号 |
| | | this.dialogForm.partcode = '' // 产品编码 |
| | | this.dialogForm.partname = '' // 产品名称 |
| | | this.dialogForm.partspec = '' // 产品规格 |
| | | this.dialogForm.stepseq = ''// 工序序号 |
| | | this.dialogForm.stepcode = '' // 工序编码 |
| | | this.dialogForm.stepname = '' // 当前工序名 |
| | | this.dialogForm.nextstepname = ''// 下一道工序名 |
| | | this.dialogForm.stepdesc = '' // 工序描述 |
| | | this.dialogForm.planqty = '' // 任务数量 |
| | | this.dialogForm.reportqty = '' // 已报数量 |
| | | this.dialogForm.noreportqty = '' // 未报数量 |
| | | this.dialogForm.startqty = '' // 开(报)工数量 |
| | | |
| | | this.dialogForm.wxcode = '', // 外协供应商编码 |
| | | this.dialogForm.outuser = '', // 发料人员 |
| | | this.dialogForm.taskqty = '', // 任务数量 |
| | | this.dialogForm.fqty = '', // 发料数量 |
| | | this.dialogForm.wxcode = '' // 外协供应商编码 |
| | | this.dialogForm.outuser = '' // 发料人员 |
| | | this.dialogForm.taskqty = '' // 任务数量 |
| | | this.dialogForm.fqty = '' // 发料数量 |
| | | |
| | | this.dialogForm.inuser = getCookie('navTabId'), // 收料人员 默认登录人员 |
| | | this.dialogForm.sqty = '', // 收料数量 |
| | | this.dialogForm.ngqty = '', // 不良数量 |
| | | this.dialogForm.badcode = '', // 不良原因编码 |
| | | this.dialogForm.inuser = getCookie('navTabId') // 收料人员 默认登录人员 |
| | | this.dialogForm.sqty = '' // 收料数量 |
| | | this.dialogForm.ngqty = '' // 不良数量 |
| | | this.dialogForm.badcode = '' // 不良原因编码 |
| | | |
| | | this.dialogForm.noputqty = '', // 不良数量 |
| | | this.dialogForm.noputqty = '' // 不良数量 |
| | | |
| | | this.dialogForm.eqpcode = '', // 生产设备编码 |
| | | this.dialogForm.eqpcode = '' // 生产设备编码 |
| | | |
| | | this.dialogForm.usergroupcode = '', // 班组编码 |
| | | this.dialogForm.reportuser = '', // 报工人员 |
| | | this.dialogForm.usergroupcode = '' // 班组编码 |
| | | this.dialogForm.reportuser = '' // 报工人员 |
| | | |
| | | this.dialogForm.startqtySum = '' // 不能超过的数值 |
| | | |
| | |
| | | |
| | | // this.dialogForm.inbarcode = '' // 入库码 |
| | | |
| | | this.dialogForm.reckway = 'group' |
| | | this.dialogForm.reckway = 'person' |
| | | |
| | | this.dialogForm.remarks = '' // 备注 |
| | | this.dialogForm.operation = getCookie('navTabId') // 报工人(收料人) |
| | | this.userTableData = [] // 人员列表 |
| | | |
| | | this.form.SelectType = '' |
| | | this.ZZeqpArr = [] |
| | | |
| | | this.$refs.dialogForm.clearValidate() |
| | | }, |
| | |
| | | return this.$message.info('收料数量加不良数量不能大于该供应商可收数量!') |
| | | } |
| | | |
| | | if (parseFloat(this.dialogForm.noputqty) > 0) { |
| | | if (this.dialogForm.badcode.length < 1) { |
| | | return this.$message.info('请选择不良原因!') |
| | | } |
| | | } |
| | | // if (parseFloat(this.dialogForm.noputqty) > 0) { |
| | | // if (this.dialogForm.badcode.length < 1) { |
| | | // return this.$message.info('请选择不良原因!') |
| | | // } |
| | | // } |
| | | |
| | | this.dialogForm.inbarcode = '' |
| | | // 当为末道的时候 |
| | | if (this.dialogForm.nextstepcode === '') { |
| | | const D = { |
| | | rightcode: '1078', |
| | | partcode: this.dialogForm.partcode, |
| | | qty: this.dialogForm.sqty, |
| | | onelabqty: this.dialogForm.sqty |
| | | } |
| | | const r = await LabelBarCode(D) |
| | | this.dialogForm.inbarcode = r.data[0].labcode |
| | | |
| | | this.qrForm.partspec = this.dialogForm.partspec |
| | | } |
| | | // if (this.dialogForm.nextstepcode === '') { |
| | | // const D = { |
| | | // rightcode: '1078', |
| | | // partcode: this.dialogForm.partcode, |
| | | // qty: this.dialogForm.sqty, |
| | | // onelabqty: this.dialogForm.sqty |
| | | // } |
| | | // const r = await LabelBarCode(D) |
| | | // this.dialogForm.inbarcode = r.data[0].labcode |
| | | // |
| | | // this.qrForm.partspec = this.dialogForm.partspec |
| | | // } |
| | | |
| | | const data = { |
| | | mesordercode: this.dialogForm.wo_code, // 工单编号 |
| | |
| | | sqty: this.dialogForm.sqty, // 收料数量 |
| | | remarks: this.dialogForm.remarks, // 备注 |
| | | inbarcode: this.dialogForm.inbarcode, // 生产入库条码 |
| | | ngqty: this.dialogForm.noputqty === '' ? 0 : this.dialogForm.noputqty, // 不良数量 |
| | | badcode: this.dialogForm.badcode.length < 1 ? '' : this.dialogForm.badcode.join(';')// 不良原因 |
| | | defectlist: this.BAD |
| | | // ngqty: this.dialogForm.noputqty === '' ? 0 : this.dialogForm.noputqty, // 不良数量 |
| | | // badcode: this.dialogForm.badcode.length < 1 ? '' : this.dialogForm.badcode.join(';')// 不良原因 |
| | | } |
| | | // console.log(JSON.stringify(data), 2) |
| | | this.$store.state.app.buttonIsDisabled = true |
| | | SavaMesOrderStepIn(data).then(res => { |
| | | if (res.code === '200') { |
| | | this.dialogVisible = false |
| | | this.$message.success('收料成功!') |
| | | // if (this.dialogForm.nextstepcode === '') { |
| | | // this.WXprint2(this.OperationArr.find(item => item.usercode === this.dialogForm.inuser).username) |
| | | this.WXprint2(this.OperationArr.find(item => item.usercode === getCookie('navTabId')).username) |
| | | this.dialogVisible2 = true |
| | | // this.WXprint2(this.OperationArr.find(item => item.usercode === getCookie('navTabId')).username) |
| | | // this.dialogVisible2 = true |
| | | // } |
| | | this.tabClick() |
| | | this.$store.state.app.buttonIsDisabled = false |
| | |
| | | partcode: this.dialogForm.partcode, // 产品编码 |
| | | stepseq: this.dialogForm.stepseq, // 工序序号 暂时缺 |
| | | stepcode: this.dialogForm.stepcode, // 工序编码 |
| | | eqpcode: this.dialogForm.eqpcode, // 生产设备 |
| | | eqpcode: this.form.SelectType, // 生产设备 |
| | | taskqty: this.dialogForm.planqty, // 任务数量 |
| | | startqty: this.dialogForm.startqty// 开始数量 |
| | | } |
| | |
| | | this.userTableData.forEach(item => { |
| | | sum += parseFloat(item.ratio) |
| | | }) |
| | | console.log(sum, 4) |
| | | if (Math.round(sum * 100) / 100 !== 100) { |
| | | return this.$message.info('分配比例总和必须为100!') |
| | | } |
| | | } |
| | | |
| | | if (parseFloat(this.dialogForm.noputqty) > 0) { |
| | | if (this.dialogForm.badcode.length < 1) { |
| | | return this.$message.info('请选择不良原因!') |
| | | } |
| | | } |
| | | // if (parseFloat(this.dialogForm.noputqty) > 0) { |
| | | // if (this.dialogForm.badcode.length < 1) { |
| | | // return this.$message.info('请选择不良原因!') |
| | | // } |
| | | // } |
| | | |
| | | // console.log(this.userTableData, 1) |
| | | // const reportuser = this.userTableData.map(item => item.usercode).join(';')// 主要改的是这里的格式 |
| | |
| | | |
| | | inbarcode: this.dialogForm.inbarcode, // 生产入库条码 |
| | | |
| | | ngqty: this.dialogForm.noputqty === '' ? 0 : this.dialogForm.noputqty, // 不良数量 |
| | | badcode: this.dialogForm.badcode.length < 1 ? '' : this.dialogForm.badcode.join(';')// 不良原因 |
| | | defectlist: this.BAD |
| | | // ngqty: this.dialogForm.noputqty === '' ? 0 : this.dialogForm.noputqty, // 不良数量 |
| | | // badcode: this.dialogForm.badcode.length < 1 ? '' : this.dialogForm.badcode.join(';')// 不良原因 |
| | | } |
| | | |
| | | // console.log(JSON.stringify(data), 'data') |
| | | console.log(data, 'data') |
| | | this.$store.state.app.buttonIsDisabled = true |
| | | console.log(JSON.parse(JSON.stringify(data)), 'data') |
| | | console.log(JSON.stringify(data), 'data') |
| | | |
| | | // this.$store.state.app.buttonIsDisabled = true |
| | | |
| | | SavaMesOrderStepReport(data).then(res => { |
| | | if (res.code === '200') { |
| | |
| | | this.$message.success('报工成功!') |
| | | // this.dialogForm.nextstepcode==='' //当为空的时候 代表是末道工序 |
| | | // if (this.dialogForm.nextstepcode !== '') { |
| | | this.ZZprint2(this.OperationArr.find(item => item.usercode === getCookie('navTabId')).username) |
| | | this.dialogVisible2 = true |
| | | // this.ZZprint2(this.OperationArr.find(item => item.usercode === getCookie('navTabId')).username) |
| | | // this.dialogVisible2 = true |
| | | // } |
| | | this.tabClick() |
| | | this.$store.state.app.buttonIsDisabled = false |
| | |
| | | if (res.code === '200' || res.code === '301') { |
| | | this.getBadList() |
| | | this.badDialogVisible = false |
| | | this.badPrint(this.OperationArr.find(item => item.usercode === getCookie('navTabId')).username) |
| | | this.dialogVisible2 = true |
| | | // this.badPrint(this.OperationArr.find(item => item.usercode === getCookie('navTabId')).username) |
| | | // this.dialogVisible2 = true |
| | | this.$message.success('保存成功!') |
| | | |
| | | this.$store.state.app.buttonIsDisabled = false |
| | |
| | | const { data: res } = await MesOrderNgSubStepSearch(data) |
| | | |
| | | this.$nextTick(() => { |
| | | this.badDialogForm.saleOrderCode = res.data1.saleOrderCode |
| | | this.badDialogForm.wo_code = res.data1.wo_code |
| | | this.badDialogForm.partcode = res.data1.partnumber |
| | | this.badDialogForm.partname = res.data1.partname |