| | |
| | | <el-tab-pane label="生产列表"> |
| | | <div style="margin-left: 10px;margin-top:10px;display: flex;justify-content: space-between"> |
| | | <div style="display: flex;align-items: center"> |
| | | <div style="width: 70px">工序码:</div> |
| | | <div style="width: 70px">扫码:</div> |
| | | <el-input |
| | | v-model="produceCode" |
| | | oninput="value=value.replace(/[^0-9.]/g,'')" |
| | | v-model="form.orderstepqrcode" |
| | | oninput="value=value.replace(/[^0-9a-zA-Z;_]/g,'')" |
| | | name="produceCode" |
| | | style="width: 500px" |
| | | style="width: 300px" |
| | | @keyup.enter.native="val=>enterNative(val,'produceCode')" |
| | | /> |
| | | </div> |
| | | <div style="display: flex;padding-right: 10px"> |
| | | <div v-if="false" style="display: flex;padding-right: 10px"> |
| | | <el-button @click="ZZstart"> |
| | | <svg-icon icon-class="start_time" style="margin-right: 2px" /> |
| | | 开始 |
| | |
| | | <div class="elTableDiv"> |
| | | <el-table |
| | | :data="tableData" |
| | | :height="tableHeight" |
| | | :height="tableHeight+'px'" |
| | | border |
| | | stripe |
| | | :style="{width: 100+'%',height:tableHeight+'px',}" |
| | |
| | | :cell-style="this.$cellStyle" |
| | | @sort-change="sortChange" |
| | | > |
| | | <!-- <el-table-column--> |
| | | <!-- type="selection"--> |
| | | <!-- width="50"--> |
| | | <!-- />--> |
| | | <el-table-column |
| | | width="50" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <!-- <el-radio--> |
| | | <!-- v-model="radioSelected"--> |
| | | <!-- :label="row.wo"--> |
| | | <!-- style="color: #fff;padding-left: 10px; margin-right: -25px;"--> |
| | | <!-- @change.native="getCurrentRow(row.wo)"--> |
| | | <!-- />--> |
| | | </template> |
| | | </el-table-column> |
| | | <!-- <el-table-column--> |
| | | <!-- width="50"--> |
| | | <!-- fixed--> |
| | | <!-- >--> |
| | | <!-- <template slot-scope="{row}">--> |
| | | <!-- <el-radio--> |
| | | <!-- v-model="radioSelected"--> |
| | | <!-- :label="row.wo"--> |
| | | <!-- style="color: #fff;padding-left: 10px; margin-right: -25px;"--> |
| | | <!-- @change.native="getCurrentRow(row.wo)"--> |
| | | <!-- />--> |
| | | <!-- </template>--> |
| | | <!-- </el-table-column>--> |
| | | <el-table-column |
| | | prop="RowNum" |
| | | width="50" |
| | | label="序号" |
| | | /> |
| | | <el-table-column |
| | | prop="org_code" |
| | | prop="status" |
| | | label="状态" |
| | | sortable="custom" |
| | | /> |
| | | width="110" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div v-if="row.status==='NEW'">新订单</div> |
| | | <div v-if="row.status==='ALLO'">已派发</div> |
| | | <div v-if="row.status==='START'">开工</div> |
| | | <div v-if="row.status==='CLOSED'">完工</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="org_name" |
| | | prop="wo_code" |
| | | label="工单号" |
| | | sortable="custom" |
| | | /> |
| | | <el-table-column |
| | | prop="description" |
| | | prop="partcode" |
| | | label="产品编码" |
| | | sortable="custom" |
| | | /> |
| | | <el-table-column |
| | | prop="parentorg_name" |
| | | prop="partname" |
| | | label="产品名称" |
| | | sortable="custom" |
| | | /> |
| | | <el-table-column |
| | | prop="parentorg_name" |
| | | prop="stepname" |
| | | label="工序" |
| | | sortable="custom" |
| | | /> |
| | | <el-table-column |
| | | prop="parentorg_name" |
| | | prop="descr" |
| | | label="工序描述" |
| | | width="150" |
| | | sortable="custom" |
| | | /> |
| | | <el-table-column |
| | | prop="parentorg_name" |
| | | prop="plan_qty" |
| | | label="任务数量" |
| | | sortable="custom" |
| | | /> |
| | | <el-table-column |
| | | prop="parentorg_name" |
| | | label="已报工数量" |
| | | prop="good_qty" |
| | | label="已报工数量(良品)" |
| | | sortable="custom" |
| | | width="160" |
| | | /> |
| | | <el-table-column |
| | | prop="lm_user" |
| | | prop="ng_qty" |
| | | label="不良数量" |
| | | width="150" |
| | | |
| | | sortable="custom" |
| | | /> |
| | | <el-table-column |
| | | prop="lm_date" |
| | | prop="plan_startdate" |
| | | label="计划开工日期" |
| | | width="185" |
| | | sortable="custom" |
| | | /> |
| | | <el-table-column |
| | | label="操作" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div class="operationClass"> |
| | | <el-button type="text" @click="edit('edit',row)">编辑</el-button> |
| | | <el-button type="text" @click="del(row)">删除</el-button> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <!-- <el-table-column--> |
| | | <!-- label="操作"--> |
| | | <!-- width="150"--> |
| | | <!-- fixed="right"--> |
| | | <!-- >--> |
| | | <!-- <template slot-scope="{row}">--> |
| | | <!-- <div class="operationClass">--> |
| | | <!-- <el-button type="text" @click="edit('edit',row)">编辑</el-button>--> |
| | | <!-- <el-button type="text" @click="del(row)">删除</el-button>--> |
| | | <!-- </div>--> |
| | | <!-- </template>--> |
| | | <!-- </el-table-column>--> |
| | | </el-table> |
| | | </div> |
| | | <!--分页--> |
| | |
| | | <el-tab-pane label="外协列表"> |
| | | <div style="margin-left: 10px;margin-top:10px;display: flex;justify-content: space-between"> |
| | | <div style="display: flex;align-items: center"> |
| | | <div style="width: 70px">工序码:</div> |
| | | <div style="width: 90px;">外协类型:</div> |
| | | <el-select |
| | | v-model="WXSelected" |
| | | filterable |
| | | style="width: 200px" |
| | | placeholder="请选择" |
| | | > |
| | | <el-option |
| | | v-for="item in WXSelectArr" |
| | | :key="item.code" |
| | | :label="item.name" |
| | | :value="item.code" |
| | | /> |
| | | </el-select> |
| | | <div style="width: 70px;margin-left: 20px">扫码:</div> |
| | | <el-input |
| | | v-model="WXproduceCode" |
| | | oninput="value=value.replace(/[^0-9.]/g,'')" |
| | | v-model="WXform.orderstepqrcode" |
| | | oninput="value=value.replace(/[^0-9a-zA-Z;_]/g,'')" |
| | | name="WXproduceCode" |
| | | style="width: 500px" |
| | | style="width: 300px" |
| | | @keyup.enter.native="val=>enterNative(val,'WXproduceCode')" |
| | | /> |
| | | </div> |
| | | <div style="display: flex;padding-right: 10px"> |
| | | <div v-if="false" style="display: flex;padding-right: 10px"> |
| | | <el-button @click="WXsend"> |
| | | <svg-icon icon-class="start_time" style="margin-right: 2px" /> |
| | | 发料 |
| | |
| | | <div class="elTableDiv"> |
| | | <el-table |
| | | :data="WXtableData" |
| | | :height="tableHeight" |
| | | :height="tableHeight+'px'" |
| | | border |
| | | stripe |
| | | :style="{width: 100+'%',height:tableHeight+'px',}" |
| | | highlight-current-row |
| | | :header-cell-style="this.$headerCellStyle" |
| | | :cell-style="this.$cellStyle" |
| | | @sort-change="sortChange" |
| | | @sort-change="WXsortChange" |
| | | > |
| | | <!-- <el-table-column--> |
| | | <!-- type="selection"--> |
| | | <!-- width="50"--> |
| | | <!-- />--> |
| | | <el-table-column |
| | | width="50" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <!-- <el-radio--> |
| | | <!-- v-model="radioSelected"--> |
| | | <!-- :label="row.wo"--> |
| | | <!-- style="color: #fff;padding-left: 10px; margin-right: -25px;"--> |
| | | <!-- @change.native="getCurrentRow(row.wo)"--> |
| | | <!-- />--> |
| | | </template> |
| | | </el-table-column> |
| | | <!-- <el-table-column--> |
| | | <!-- width="50"--> |
| | | <!-- fixed--> |
| | | <!-- >--> |
| | | <!-- <template slot-scope="{row}">--> |
| | | <!-- <el-radio--> |
| | | <!-- v-model="radioSelected"--> |
| | | <!-- :label="row.wo_code"--> |
| | | <!-- style="color: #fff;padding-left: 10px; margin-right: -25px;"--> |
| | | <!-- @change.native="getWXCurrentRow(row.wo_code)"--> |
| | | <!-- />--> |
| | | <!-- </template>--> |
| | | <!-- </el-table-column>--> |
| | | <el-table-column |
| | | prop="RowNum" |
| | | width="50" |
| | | label="序号" |
| | | /> |
| | | <el-table-column |
| | | prop="org_code" |
| | | prop="status" |
| | | label="状态" |
| | | sortable="custom" |
| | | /> |
| | | width="110" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div v-if="row.status==='NEW'">新订单</div> |
| | | <div v-if="row.status==='ALLO'">已派发</div> |
| | | <div v-if="row.status==='START'">已发料</div> |
| | | <div v-if="row.status==='CLOSED'">已收料</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="org_name" |
| | | prop="wo_code" |
| | | label="工单号" |
| | | sortable="custom" |
| | | /> |
| | | <el-table-column |
| | | prop="description" |
| | | prop="partcode" |
| | | label="产品编码" |
| | | sortable="custom" |
| | | /> |
| | | <el-table-column |
| | | prop="parentorg_name" |
| | | prop="partname" |
| | | label="产品名称" |
| | | sortable="custom" |
| | | /> |
| | | <el-table-column |
| | | prop="parentorg_name" |
| | | prop="stepname" |
| | | label="工序" |
| | | sortable="custom" |
| | | /> |
| | | <el-table-column |
| | | prop="parentorg_name" |
| | | prop="descr" |
| | | label="工序描述" |
| | | width="150" |
| | | sortable="custom" |
| | | /> |
| | | <el-table-column |
| | | prop="parentorg_name" |
| | | prop="plan_qty" |
| | | label="任务数量" |
| | | sortable="custom" |
| | | /> |
| | | <el-table-column |
| | | prop="parentorg_name" |
| | | label="已报工数量" |
| | | prop="good_qty" |
| | | label="已收料数量(良品)" |
| | | sortable="custom" |
| | | width="160" |
| | | /> |
| | | <el-table-column |
| | | prop="lm_user" |
| | | prop="ng_qty" |
| | | label="不良数量" |
| | | width="150" |
| | | |
| | | sortable="custom" |
| | | /> |
| | | <el-table-column |
| | | prop="lm_date" |
| | | prop="plan_startdate" |
| | | label="计划开工日期" |
| | | width="185" |
| | | sortable="custom" |
| | | /> |
| | | <el-table-column |
| | | label="操作" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div class="operationClass"> |
| | | <el-button type="text" @click="edit('edit',row)">编辑</el-button> |
| | | <el-button type="text" @click="del(row)">删除</el-button> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <!-- <el-table-column--> |
| | | <!-- label="操作"--> |
| | | <!-- width="150"--> |
| | | <!-- fixed="right"--> |
| | | <!-- >--> |
| | | <!-- <template slot-scope="{row}">--> |
| | | <!-- <div class="operationClass">--> |
| | | <!-- <el-button type="text" @click="edit('edit',row)">编辑</el-button>--> |
| | | <!-- <el-button type="text" @click="del(row)">删除</el-button>--> |
| | | <!-- </div>--> |
| | | <!-- </template>--> |
| | | <!-- </el-table-column>--> |
| | | </el-table> |
| | | </div> |
| | | <!--分页--> |
| | |
| | | <el-dialog |
| | | :title="dialogTitle" |
| | | :visible.sync="dialogVisible" |
| | | width="70%" |
| | | width="800" |
| | | class="dialogVisible" |
| | | :top="dialogTitle==='自制报工'?'5vh':'15vh'" |
| | | :close-on-click-modal="false" |
| | | @close="handleClose" |
| | | @closed="handleClose" |
| | | > |
| | | <el-form ref="dialogForm" inline :model="dialogForm" label-width="110px"> |
| | | <el-form |
| | | ref="dialogForm" |
| | | inline |
| | | :rules="dialogFormRules" |
| | | :model="dialogForm" |
| | | label-width="110px" |
| | | > |
| | | <el-form-item label="工单编号:"> |
| | | <!-- <el-input v-model="dialogForm.name"></el-input>--> |
| | | <div style="width: 200px">PO2022050500001</div> |
| | | <div style="width: 200px">{{ dialogForm.wo_code }}</div> |
| | | </el-form-item> |
| | | <el-form-item label="产品编码:"> |
| | | <div style="width: 200px">427100</div> |
| | | <div style="width: 200px">{{ dialogForm.partcode }}</div> |
| | | </el-form-item> |
| | | <el-form-item label="产品名称:"> |
| | | <div style="width: 200px">机箱板底</div> |
| | | <div style="width: 200px">{{ dialogForm.partname }}</div> |
| | | </el-form-item> |
| | | <el-form-item label="产品规格:"> |
| | | <div style="width: 200px">机箱底板&1</div> |
| | | <div style="width: 200px">{{ dialogForm.partspec }}</div> |
| | | </el-form-item> |
| | | <el-form-item label="当前工序:"> |
| | | <div style="width: 200px">激光切割</div> |
| | | <div style="width: 200px">{{ dialogForm.stepname }}</div> |
| | | </el-form-item> |
| | | <el-form-item label="工序描述:"> |
| | | <el-tooltip class="item" effect="dark" content="原材料切按材料切按材料切按时打卡数据的卡" placement="top-start"> |
| | | <div style="width: 200px;white-space: nowrap;text-overflow: ellipsis;overflow: hidden;"> |
| | | 原材料切按材料切按材料切按时打卡数据的卡 |
| | | </div> |
| | | </el-tooltip> |
| | | <!-- <el-tooltip class="item" effect="dark" content="原材料切按材料切按材料切按时打卡数据的卡" placement="top-start">--> |
| | | <div style="width: 200px;white-space: nowrap;text-overflow: ellipsis;overflow: hidden;"> |
| | | {{ dialogForm.stepdesc }} |
| | | </div> |
| | | <!-- </el-tooltip>--> |
| | | </el-form-item> |
| | | <el-form-item label="任务数量:"> |
| | | <div style="width: 200px">1000</div> |
| | | <div style="width: 200px">{{ dialogForm.planqty }}</div> |
| | | </el-form-item> |
| | | <el-form-item label="未报/已报:"> |
| | | <div style="width: 200px">900/100</div> |
| | | |
| | | <el-form-item v-if="dialogTitle==='自制开始'" label="未开/已开:"> |
| | | <div style="width: 200px">{{ dialogForm.noreportqty }}/{{ dialogForm.reportqty }}</div> |
| | | </el-form-item> |
| | | <el-form-item v-if="dialogTitle==='自制报工'" label="未报/已报:"> |
| | | <div style="width: 200px">{{ dialogForm.noreportqty }}/{{ dialogForm.reportqty }}</div> |
| | | </el-form-item> |
| | | <el-form-item v-if="dialogTitle==='外协发料'" label="未发/已发:"> |
| | | <div style="width: 200px">{{ dialogForm.noreportqty }}/{{ dialogForm.reportqty }}</div> |
| | | </el-form-item> |
| | | <el-form-item v-if="dialogTitle==='外协收料'" label="未收/已收:"> |
| | | <div style="width: 200px">{{ dialogForm.noreportqty }}/{{ dialogForm.reportqty }}</div> |
| | | </el-form-item> |
| | | <!--自制开始--> |
| | | <el-form-item v-if="dialogTitle==='自制开始'" label="开工数量:"> |
| | | <div style="width: 200px">1000</div> |
| | | <div style="width: 200px">{{ dialogForm.startqty }}</div> |
| | | </el-form-item> |
| | | <el-form-item v-if="dialogTitle==='自制开始'" label="生产设备:"> |
| | | <el-form-item v-if="dialogTitle==='自制开始'" prop="eqpcode" label="生产设备:"> |
| | | <el-select |
| | | v-model="dialogForm.OrgType" |
| | | v-model="dialogForm.eqpcode" |
| | | style="width: 200px;" |
| | | placeholder="请选择" |
| | | > |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | 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="外协供方:"> |
| | | <el-select |
| | | v-model="dialogForm.OrgType" |
| | | style="width: 200px;" |
| | | placeholder="请选择" |
| | | > |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item v-if="dialogTitle==='外协发料'" label="发料人员:"> |
| | | <el-select |
| | | v-model="dialogForm.OrgType" |
| | | style="width: 200px;" |
| | | placeholder="请选择" |
| | | multiple |
| | | > |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item v-if="dialogTitle==='外协发料'" label="发料数量:"> |
| | | <el-input v-model="dialogForm.OrgName" oninput="value=value.replace(/[^0-9.]/g,'')" style="width: 200px;" /> |
| | | </el-form-item> |
| | | <!-- 自制报工 --> |
| | | <el-form-item v-if="dialogTitle==='自制报工'" label="下道工序:"> |
| | | <div style="width: 200px">B工序</div> |
| | | <div style="width: 200px">{{ dialogForm.nextstepname }}</div> |
| | | </el-form-item> |
| | | <el-form-item v-if="dialogTitle==='自制报工'" label="设备名称:"> |
| | | <el-form-item v-if="dialogTitle==='自制报工'" prop="usergroupcode" label="生产班组:"> |
| | | <el-select |
| | | v-model="dialogForm.OrgType" |
| | | v-model="dialogForm.usergroupcode" |
| | | style="width: 200px;" |
| | | placeholder="请选择" |
| | | @change="usergroupChange" |
| | | > |
| | | <el-option |
| | | v-for="item in ZZtreams" |
| | | :key="item.group_code" |
| | | :label="item.group_name" |
| | | :value="item.group_code" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item v-if="dialogTitle==='自制报工'" label="设备名称:" prop="eqpcode"> |
| | | <el-select |
| | | v-model="dialogForm.eqpcode" |
| | | style="width: 200px;" |
| | | placeholder="请选择" |
| | | > |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | 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="生产班组:"> |
| | | <el-select |
| | | v-model="dialogForm.OrgType" |
| | | style="width: 200px;" |
| | | placeholder="请选择" |
| | | > |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item v-if="dialogTitle==='自制报工'" label="报工数量:"> |
| | | <el-input v-model="dialogForm.OrgName" oninput="value=value.replace(/[^0-9.]/g,'')" style="width: 200px;" /> |
| | | <el-form-item v-if="dialogTitle==='自制报工'" label="报工数量:" prop="startqty"> |
| | | <el-input v-model="dialogForm.startqty" 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.OrgName" oninput="value=value.replace(/[^0-9.]/g,'')" style="width: 200px;" /> |
| | | <el-input v-model="dialogForm.noputqty" oninput="value=value.replace(/[^0-9.]/g,'')" style="width: 200px;" /> |
| | | </el-form-item> |
| | | <el-form-item v-if="dialogTitle==='自制报工'" label="不良原因:"> |
| | | <el-select |
| | | v-model="dialogForm.OrgType" |
| | | v-model="dialogForm.badcode" |
| | | style="width: 200px;" |
| | | placeholder="请选择" |
| | | :disabled="parseFloat(dialogForm.noputqty)===0||dialogForm.noputqty.trim()===''" |
| | | multiple |
| | | > |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | v-for="item in badArr" |
| | | :key="item.code" |
| | | :label="item.name" |
| | | :value="item.code" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <div v-if="dialogTitle==='自制报工'"> |
| | | <i class="el-icon-s-operation" style="color:#42b983;" /> 人员列表 |
| | | <el-button type="primary" style="margin: 10px 0">增行</el-button> |
| | | <el-button type="primary" style="margin: 10px 0" @click="userAdd">增行</el-button> |
| | | <el-table |
| | | :data="userTableData" |
| | | border |
| | |
| | | style="width: 100%" |
| | | > |
| | | <el-table-column |
| | | prop="RowNum" |
| | | width="100" |
| | | label="序号" |
| | | type="index" |
| | | /> |
| | | <el-table-column |
| | | prop="RowNum" |
| | | prop="username" |
| | | label="人员名称" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div v-if="row.isVisible===0">{{ row }}</div> |
| | | <div v-if="row.isVisible===0">{{ row.username }}</div> |
| | | <el-select |
| | | v-if="row.isVisible===1" |
| | | v-model="dialogForm.OrgType" |
| | | v-model="row.username" |
| | | style="width: 200px;" |
| | | placeholder="请选择" |
| | | @change="val=>usernameChange(val,row)" |
| | | > |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | v-for="item in ZZuserArr" |
| | | :key="item.usercode" |
| | | :label="item.username" |
| | | :value="item.usercode" |
| | | /> |
| | | </el-select> |
| | | </template> |
| | |
| | | <template slot-scope="{row}"> |
| | | <div class="operationClass"> |
| | | <el-button v-if="row.isVisible===0" type="text" @click="userDel(row)">删除</el-button> |
| | | <el-button v-if="row.isVisible===1" type="text" @click="userSave(row)">保存</el-button> |
| | | <el-button v-if="row.isVisible===1&&!userIsSave" type="text" @click="userSave(row)">保存</el-button> |
| | | <el-button v-if="row.isVisible===1" type="text" @click="userCancel(row)">取消</el-button> |
| | | </div> |
| | | </template> |
| | |
| | | @pagination="getMesOrderStepSearch" |
| | | /> |
| | | </div> |
| | | <el-form-item v-if="dialogTitle==='外协收料'" label="下道工序:"> |
| | | <div style="width: 200px">B工序</div> |
| | | </el-form-item> |
| | | <el-form-item v-if="dialogTitle==='外协收料'" label="外协供方:"> |
| | | <!-- 外协发料--> |
| | | <el-form-item |
| | | v-if="dialogTitle==='外协发料'" |
| | | label="外协供方:" |
| | | prop="wxcode" |
| | | > |
| | | <el-select |
| | | v-model="dialogForm.OrgType" |
| | | v-model="dialogForm.wxcode" |
| | | style="width: 200px;" |
| | | placeholder="请选择" |
| | | filterable |
| | | > |
| | | <el-option |
| | | v-for="item in WXouterprovide" |
| | | :key="item.code" |
| | | :label="item.name" |
| | | :value="item.code" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item |
| | | v-if="dialogTitle==='外协发料'" |
| | | label="发料人员:" |
| | | prop="outuser" |
| | | > |
| | | <el-select |
| | | v-model="dialogForm.outuser" |
| | | style="width: 200px;" |
| | | placeholder="请选择" |
| | | filterable |
| | | > |
| | | <el-option |
| | | v-for="item in WXoutuser" |
| | | :key="item.usercode" |
| | | :label="item.username" |
| | | :value="item.usercode" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item |
| | | v-if="dialogTitle==='外协发料'" |
| | | label="发料数量:" |
| | | prop="fqty" |
| | | > |
| | | <el-input v-model="dialogForm.fqty" oninput="value=value.replace(/[^0-9.]/g,'')" style="width: 200px;" /> |
| | | </el-form-item> |
| | | <!-- 外协收料--> |
| | | <el-form-item |
| | | v-if="dialogTitle==='外协收料'" |
| | | label="下道工序:" |
| | | > |
| | | <div style="width: 200px">{{ dialogForm.nextstepname }}</div> |
| | | </el-form-item> |
| | | <el-form-item |
| | | v-if="dialogTitle==='外协收料'" |
| | | label="外协供方:" |
| | | prop="wxcode" |
| | | > |
| | | <el-select |
| | | v-model="dialogForm.wxcode" |
| | | style="width: 200px;" |
| | | placeholder="请选择" |
| | | > |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | v-for="item in WXouterprovide" |
| | | :key="item.code" |
| | | :label="item.name" |
| | | :value="item.code" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item v-if="dialogTitle==='外协收料'" label="收料人员:"> |
| | | <el-form-item |
| | | v-if="dialogTitle==='外协收料'" |
| | | label="收料人员:" |
| | | prop="inuser" |
| | | > |
| | | <el-select |
| | | v-model="dialogForm.OrgType" |
| | | v-model="dialogForm.inuser" |
| | | style="width: 200px;" |
| | | placeholder="请选择" |
| | | multiple |
| | | > |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | v-for="item in WXoutuser" |
| | | :key="item.usercode" |
| | | :label="item.username" |
| | | :value="item.usercode" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item v-if="dialogTitle==='外协收料'" label="收料数量:"> |
| | | <el-form-item |
| | | v-if="dialogTitle==='外协收料'" |
| | | label="收料数量:" |
| | | prop="sqty" |
| | | > |
| | | <el-input |
| | | v-model="dialogForm.OrgName" |
| | | v-model="dialogForm.sqty" |
| | | style="width: 200px" |
| | | oninput="value=value.replace(/[^0-9.]/g,'')" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item v-if="dialogTitle==='外协收料'" label="不良原因:"> |
| | | <el-form-item |
| | | v-if="dialogTitle==='外协收料'" |
| | | label="不良数量:" |
| | | prop="noputqty" |
| | | > |
| | | <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.OrgType" |
| | | v-model="dialogForm.badcode" |
| | | style="width: 200px;" |
| | | multiple |
| | | :disabled="parseFloat(dialogForm.noputqty)===0||dialogForm.noputqty.trim()===''" |
| | | placeholder="请选择" |
| | | > |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | v-for="item in badArr" |
| | | :key="item.code" |
| | | :label="item.name" |
| | | :value="item.code" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | |
| | | <span slot="footer" class="dialog-footer"> |
| | | <div class="footerButton"> |
| | | <el-button @click="dialogVisibleCancel">取 消</el-button> |
| | | <el-button type="primary" @click="dialogVisible = false">确 定</el-button> |
| | | <el-button v-if="dialogTitle==='自制开始'" type="primary" @click="dialogVisibleConfirm">开 工</el-button> |
| | | <el-button v-if="dialogTitle==='自制报工'" type="primary" @click="dialogVisibleConfirm">提交/打印</el-button> |
| | | <el-button v-if="dialogTitle==='外协发料'" type="primary" @click="dialogVisibleConfirm">发料</el-button> |
| | | <el-button v-if="dialogTitle==='外协收料'" type="primary" @click="dialogVisibleConfirm">收料/打印</el-button> |
| | | </div> |
| | | </span> |
| | | </el-dialog> |
| | |
| | | import { AddUpdateOrganization, DeleteOrganization, OrganizationSearch, PrentOrganization } from '@/api/jcsz' |
| | | import { getCookie } from '@/utils/auth' |
| | | import $ from 'jquery' |
| | | import { MesOrderStepSearch } from '@/api/scgl' |
| | | import { |
| | | MesOrderGroupSelectUser, |
| | | MesOrderSelectUser, |
| | | MesOrderStepReportSelectUserGroup, |
| | | MesOrderStepSearch, |
| | | MesOrderStepStart, |
| | | MesOrderStepStartSelectEqp, |
| | | MesOrderWxStepSearch, |
| | | MesOrderStepSelectWX, |
| | | SavaMesOrderStepOut, |
| | | MesOrderStepSelectCause, |
| | | SavaMesOrderStepIn, |
| | | SavaMesOrderStepStart, |
| | | SavaMesOrderStepReport |
| | | } from '@/api/scgl' |
| | | import { urlAddRandomNo, webapp_ws_ajax_run } from '@/utils/grwebapp' |
| | | import { MesOrderPrintSearch1 } from '@/api/utils' |
| | | |
| | | const SER_HZ = /^[\u4e00-\u9fa5]+$/ |
| | | export default { |
| | | name: 'Zzjg', |
| | | name: 'SCKBG', |
| | | components: { |
| | | Pagination |
| | | }, |
| | |
| | | return { |
| | | mainHeight: 0, |
| | | tableHeight: 0, |
| | | produceCode: '', // 工序码 |
| | | WXproduceCode: '', // 外协工序码 |
| | | // produceCode: '', // 工序码 |
| | | // WXproduceCode: '', // 外协工序码 |
| | | radioSelected: '', // 工序选中 |
| | | WXradioSelected: '', // 工序选中 |
| | | form: { |
| | | orderstepqrcode: '', // 扫描的二维码信息 |
| | | prop: 'lm_date', // 排序字段 |
| | | order: 'desc', // 排序字段 |
| | | prop: 'wo_code', // 排序字段 |
| | | order: 'asc', // 排序字段 |
| | | page: 1, // 第几页 |
| | | rows: 20 // 每页多少条 |
| | | }, |
| | | total: 10, |
| | | tableData: [], |
| | | WXform: { // 外协表单 |
| | | // PO202206280001_4;Step01 |
| | | orderstepqrcode: '', // 扫描的二维码信息 |
| | | prop: 'lm_date', // 排序字段 |
| | | order: 'desc', // 排序字段 |
| | | prop: 'wo_code', // 排序字段 |
| | | order: 'asc', // 排序字段 |
| | | page: 1, // 第几页 |
| | | rows: 20 // 每页多少条 |
| | | }, |
| | | WXtotal: 10, // 外协表单总数 |
| | | WXtableData: [], // 外协表 |
| | | |
| | | WXSelectArr: [// 外协类型下拉列表 |
| | | { code: 'OUT', name: '发料' }, |
| | | { code: 'IN', name: '收料' } |
| | | ], |
| | | WXSelected: 'OUT', // 外协下拉列表选中值 |
| | | dialogVisible: false, |
| | | dialogTitle: '', |
| | | dialogTitle: '', // 自制开始、自制报工、外协发料、外协收料 |
| | | dialogForm: { |
| | | OrgType: '', |
| | | OrgCode: '', |
| | | OrgName: '', |
| | | SupUnit: ''// 上级单位 |
| | | wo_code: '', // 工单编号 |
| | | partcode: '', // 产品编码 |
| | | partname: '', // 产品名称 |
| | | partspec: '', // 产品规格 |
| | | stepseq: '', // 工序序号 |
| | | stepcode: '', // 工序编码 |
| | | stepname: '', // 当前工序名 |
| | | nextstepname: '', // 下一道工序名 |
| | | stepdesc: '', // 工序描述 |
| | | planqty: '', // 任务数量 |
| | | reportqty: '', // 已报数量 |
| | | noreportqty: '', // 未报数量 |
| | | startqty: '', // 开(报)工数量 |
| | | |
| | | wxcode: '', // 外协供应商编码 |
| | | outuser: '', // 发料人员 |
| | | taskqty: '', // 任务数量 |
| | | fqty: '', // 发料数量 |
| | | |
| | | inuser: '', // 收料人员 |
| | | sqty: '', // 收料数量 |
| | | ngqty: '', // 不良数量 |
| | | badcode: '', // 不良原因编码 |
| | | |
| | | noputqty: '', // 不良数量 |
| | | |
| | | eqpcode: '', // 生产设备编码 |
| | | |
| | | usergroupcode: '', // 班组编码 |
| | | reportuser: '', // 报工人员 |
| | | |
| | | startqtySum: '' // 不能超过的数值 |
| | | |
| | | }, |
| | | userTableData: [ |
| | | |
| | | ], // 人员列表 |
| | | ZZuserArr: [], // 自制用户所有 |
| | | ZZtreams: [], // 自制生产班组数组 |
| | | ZZeqpArr: [], // 自制设备名称 |
| | | badArr: [], // 不良原因数组 |
| | | WXouterprovide: [], // 外协供方数组 |
| | | WXoutuser: [], // 发料人员数组 |
| | | userTableData: [], // 人员列表 |
| | | UserTotal: 0, |
| | | Userform: { |
| | | |
| | | } |
| | | Userform: {}, |
| | | userIsSave: false, // 此人员是否可保持 |
| | | // operation: '', |
| | | // dialogFormRules: { |
| | | // OrgType: [ |
| | | // { required: true, message: '请输入选择类型', trigger: ['blur', 'change'] } |
| | | // ], |
| | | // OrgCode: [ |
| | | // { required: true, validator: validateName, trigger: ['blur', 'change'] } |
| | | // ], |
| | | // OrgName: [ |
| | | // { required: true, message: '请输入名称', trigger: ['blur', 'change'] } |
| | | // ], |
| | | // SupUnit: [ |
| | | // { required: true, validator: validateTypeCode, trigger: ['blur', 'change'] } |
| | | // ] |
| | | // } |
| | | dialogFormRules: { |
| | | outuser: [ |
| | | { required: true, message: '请选择发料人员', trigger: ['blur', 'change'] } |
| | | ], |
| | | fqty: [ |
| | | { required: true, message: '请输入发料数量', trigger: ['blur', 'change'] } |
| | | ], |
| | | wxcode: [ |
| | | { required: true, message: '请选择外协供方', trigger: ['blur', 'change'] } |
| | | ], |
| | | inuser: [ |
| | | { required: true, message: '请选择收料人员', trigger: ['blur', 'change'] } |
| | | ], |
| | | sqty: [ |
| | | { required: true, message: '请输入收料数量', trigger: ['blur', 'change'] } |
| | | ], |
| | | // noputqty: [ |
| | | // { required: true, message: '请输入不良数量', trigger: ['blur', 'change'] } |
| | | // ], |
| | | // badcode: [ |
| | | // { required: true, message: '请选择不良原因', trigger: ['blur', 'change'] } |
| | | // ] |
| | | eqpcode: [ |
| | | { required: true, message: '请选择生产设备', trigger: ['blur', 'change'] } |
| | | ], |
| | | usergroupcode: [ |
| | | { required: true, message: '请选择生产班组', trigger: ['blur', 'change'] } |
| | | ], |
| | | startqty: [ |
| | | { required: true, message: '请输入报工数量', trigger: ['blur', 'change'] } |
| | | ] |
| | | } |
| | | |
| | | } |
| | | }, |
| | | created() { |
| | | this.getMesOrderStepSearch() |
| | | this.tabClick() |
| | | }, |
| | | mounted() { |
| | | window.addEventListener('resize', this.getHeight) |
| | |
| | | }, |
| | | methods: { |
| | | async getMesOrderStepSearch() { |
| | | // const res = await MesOrderStepSearch(this.form) |
| | | // this.tableData = res.data |
| | | // this.total = res.count |
| | | const res = await MesOrderStepSearch(this.form) |
| | | if (res.code === '200') { |
| | | this.tableData = res.data |
| | | this.total = res.count |
| | | } |
| | | }, |
| | | async getMesOrderWxStepSearch() { |
| | | const res = await MesOrderWxStepSearch(this.WXform) |
| | | if (res.code === '200') { |
| | | this.WXtableData = res.data |
| | | } |
| | | }, |
| | | // 排序改变时 |
| | | sortChange({ column, prop, order }) { |
| | |
| | | this.form.prop = prop |
| | | this.getMesOrderStepSearch() |
| | | }, |
| | | getCurrentRow() { |
| | | // WX排序改变时 |
| | | WXsortChange({ column, prop, order }) { |
| | | if (order === 'descending') { |
| | | order = 'desc' |
| | | } else if (order === 'ascending') { |
| | | order = 'asc' |
| | | } else { |
| | | order = 'desc' |
| | | } |
| | | this.WXform.order = order |
| | | this.WXform.prop = prop |
| | | this.getMesOrderWxStepSearch() |
| | | }, |
| | | // 自制页签原点点击 |
| | | getCurrentRow(val) { |
| | | |
| | | }, |
| | | // 外协页签原点点击 |
| | | getWXCurrentRow(val) { |
| | | console.log(val) |
| | | this.WXradioSelected = val |
| | | }, |
| | | // tab按钮切换鼠标自动聚焦 |
| | | tabClick(val, d) { |
| | | console.log(val, d, 1) |
| | | if (this.$refs.elTabs.currentName === '0') { |
| | | this.$nextTick(() => { |
| | | this.getMesOrderStepSearch() |
| | | $("input[name='produceCode']")[0].focus() |
| | | // this.WXform.orderstepqrcode = '' |
| | | }) |
| | | } |
| | | if (this.$refs.elTabs.currentName === '1') { |
| | | this.$nextTick(() => { |
| | | this.getMesOrderWxStepSearch() |
| | | $("input[name='WXproduceCode']")[0].focus() |
| | | // this.form.orderstepqrcode = '' |
| | | }) |
| | | } |
| | | }, |
| | | // 扫码键盘回车事件 |
| | | async enterNative(val, belong) { |
| | | console.log(val, belong) |
| | | // 开工:code="200" count=0 |
| | | // 报工:code="200" count=1 |
| | | // 发料:code="200" count=2 |
| | | // 收料:code="200" count=3 |
| | | // 走列表形式 code="200" count=4 |
| | | if (belong === 'produceCode') { |
| | | const data = { |
| | | OperType: 'ZZ', |
| | | orderstepqrcode: this.form.orderstepqrcode, |
| | | SelectType: '' |
| | | } |
| | | console.log(this.form.orderstepqrcode, 21) |
| | | 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 data = { |
| | | OperType: 'WX', |
| | | orderstepqrcode: this.WXform.orderstepqrcode, |
| | | SelectType: this.WXSelected// OUT、IN |
| | | } |
| | | const res = await MesOrderStepStart(data) |
| | | if (res.code === '200' && res.count === 2) { |
| | | await this.WXsend(res.data) |
| | | } |
| | | if (res.code === '200' && res.count === 3) { |
| | | await this.WXback(res.data) |
| | | } |
| | | } |
| | | }, |
| | | // 查询 |
| | |
| | | this.getMesOrderStepSearch() |
| | | }, |
| | | // 自制开始 |
| | | ZZstart() { |
| | | async ZZstart(obj) { |
| | | // if (!this.ZZisExecutable) { |
| | | // return this.$message.info('请先扫码工序二维码!') |
| | | // } |
| | | this.dialogTitle = '自制开始' |
| | | this.dialogVisible = true |
| | | |
| | | 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.noreportqty = obj.noreportqty |
| | | this.dialogForm.startqty = obj.startqty |
| | | }) |
| | | |
| | | await this.getMesOrderStepStartSelectEqp() |
| | | }, |
| | | // 自制报工 |
| | | ZZreport() { |
| | | async ZZreport(obj) { |
| | | // if (!this.ZZisExecutable) { |
| | | // return this.$message.info('请先扫码工序二维码!') |
| | | // } |
| | | this.dialogTitle = '自制报工' |
| | | this.dialogVisible = true |
| | | |
| | | 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 |
| | | |
| | | if (obj.nextstepname === null || obj.nextstepcode === '') { |
| | | this.dialogForm.nextstepname = obj.stepname |
| | | } else { |
| | | this.dialogForm.nextstepname = obj.nextstepname |
| | | } |
| | | |
| | | this.dialogForm.startqtySum = obj.startqty |
| | | }) |
| | | |
| | | await this.getMesOrderStepStartSelectEqp() |
| | | await this.getMesOrderStepReportSelectUserGroup() |
| | | await this.getMesOrderStepSelectCause('ZZ') |
| | | await this.getMesOrderSelectUserZZ() |
| | | }, |
| | | // 外协发料 |
| | | WXsend() { |
| | | async WXsend(obj) { |
| | | // if (this.WXradioSelected.length < 1 && obj.length < 1) { |
| | | // return this.$message.info('请先选择工序!') |
| | | // } |
| | | // console.log(this.WXform.orderstepqrcode === '', 6) |
| | | // if (this.WXform.orderstepqrcode === '') { |
| | | // return this.$message.info('请先输入工序!') |
| | | // } |
| | | this.dialogTitle = '外协发料' |
| | | this.dialogVisible = true |
| | | |
| | | 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.stepname = obj.stepname |
| | | this.dialogForm.stepdesc = obj.stepdesc |
| | | this.dialogForm.planqty = obj.planqty |
| | | this.dialogForm.reportqty = obj.reportqty |
| | | this.dialogForm.noreportqty = obj.noreportqty |
| | | this.dialogForm.fqty = obj.startqty |
| | | this.dialogForm.stepcode = obj.stepcode |
| | | this.dialogForm.stepseq = obj.seq |
| | | }) |
| | | |
| | | await this.getMesOrderStepSelectWX() |
| | | await this.getMesOrderSelectUser() |
| | | }, |
| | | // 外协收料 |
| | | WXback() { |
| | | async WXback(obj) { |
| | | // if (this.WXform.orderstepqrcode === '') { |
| | | // return this.$message.info('请先输入工序!') |
| | | // } |
| | | this.dialogTitle = '外协收料' |
| | | this.dialogVisible = true |
| | | |
| | | 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.stepname = obj.stepname |
| | | this.dialogForm.stepdesc = obj.stepdesc |
| | | this.dialogForm.planqty = obj.planqty |
| | | this.dialogForm.reportqty = obj.reportqty |
| | | this.dialogForm.noreportqty = obj.noreportqty |
| | | this.dialogForm.stepcode = obj.stepcode |
| | | if (obj.nextstepname === null || obj.nextstepcode === '') { |
| | | this.dialogForm.nextstepname = obj.stepname |
| | | } else { |
| | | this.dialogForm.nextstepname = obj.nextstepname |
| | | } |
| | | this.dialogForm.noputqty = obj.noputqty |
| | | this.dialogForm.stepseq = obj.seq |
| | | this.dialogForm.sqty = obj.startqty |
| | | |
| | | this.dialogForm.startqtySum = obj.startqty |
| | | }) |
| | | await this.getMesOrderStepSelectWX() |
| | | await this.getMesOrderSelectUser() |
| | | await this.getMesOrderStepSelectCause('WX') |
| | | }, |
| | | // 生产班组下拉改变 |
| | | usergroupChange(val) { |
| | | this.dialogForm.usergroupcode = val |
| | | this.getUserTableData() |
| | | }, |
| | | // 获取自制报工生产班组下拉列表 |
| | | async getMesOrderStepReportSelectUserGroup() { |
| | | const { data: res } = await MesOrderStepReportSelectUserGroup() |
| | | this.ZZtreams = res |
| | | }, |
| | | // 获取自制报工表格user所有 |
| | | async getMesOrderSelectUserZZ() { |
| | | const { data: res } = await MesOrderSelectUser({ usercode: this.dialogForm.usergroupcode }) |
| | | this.ZZuserArr = res |
| | | }, |
| | | // 获取自制生产设备下拉 |
| | | async getMesOrderStepStartSelectEqp() { |
| | | const { data: res } = await MesOrderStepStartSelectEqp({ orderstepqrcode: this.form.orderstepqrcode }) |
| | | this.ZZeqpArr = res |
| | | }, |
| | | // 获取WX供方接口 |
| | | async getMesOrderStepSelectWX() { |
| | | const { data: res } = await MesOrderStepSelectWX({ orderstepqrcode: this.WXform.orderstepqrcode }) |
| | | this.WXouterprovide = res |
| | | }, |
| | | // 获取收发料人员下拉接口 |
| | | async getMesOrderSelectUser() { |
| | | const { data: res } = await MesOrderSelectUser({ usercode: this.dialogForm.outuser }) |
| | | this.WXoutuser = res |
| | | }, |
| | | // 获取收料不良原因下拉 |
| | | async getMesOrderStepSelectCause(val) { |
| | | let orderstepqrcode = '' |
| | | if (val === 'WX') { |
| | | orderstepqrcode = this.WXform.orderstepqrcode |
| | | } |
| | | if (val === 'ZZ') { |
| | | orderstepqrcode = this.form.orderstepqrcode |
| | | } |
| | | const { data: res } = await MesOrderStepSelectCause({ orderstepqrcode: orderstepqrcode }) |
| | | this.badArr = res |
| | | }, |
| | | // 报工查询用户表 |
| | | async getUserTableData() { |
| | | const { data: res } = await MesOrderGroupSelectUser({ usergroupcode: this.dialogForm.usergroupcode }) |
| | | this.userTableData = res |
| | | this.userTableData.forEach(item => { |
| | | let number = Math.random() * Math.random()// 作为删除时的标识符 |
| | | number = number === 0 ? (10 + Math.random()) : number |
| | | item.isVisible = 0 |
| | | item.number = number |
| | | }) |
| | | }, |
| | | // 用户添加 |
| | | userAdd() { |
| | | 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 }) |
| | | }, |
| | | // 用户列表删除 |
| | | userDel() { |
| | | |
| | | userDel(row) { |
| | | this.userTableData.forEach((item, index) => { |
| | | if (item.number === row.number) { |
| | | this.userTableData.splice(index, 1) |
| | | } |
| | | }) |
| | | }, |
| | | // 用户列表保存 |
| | | userSave() { |
| | | |
| | | userSave(row) { |
| | | this.userTableData.forEach(item => { |
| | | if (item.number === row.number) { |
| | | item.isVisible = 0 |
| | | } |
| | | }) |
| | | }, |
| | | // 用户列表取消 |
| | | userCancel() { |
| | | |
| | | userCancel(row) { |
| | | this.userTableData.forEach((item, index) => { |
| | | if (item.number === row.number) { |
| | | this.userTableData.splice(index, 1) |
| | | } |
| | | }) |
| | | }, |
| | | // 重置 |
| | | reset() { |
| | | this.dialogTitle = '' |
| | | this.form.OrgCode = '' |
| | | this.form.OrgName = '' |
| | | this.form.OrgType = '' |
| | | this.form.UserName = '' |
| | | this.getMesOrderStepSearch() |
| | | // 用户列表人员名称值选中 |
| | | usernameChange(val, row) { |
| | | this.userTableData.forEach(item => { |
| | | if (item.usercode === val) { |
| | | this.userIsSave = true |
| | | return this.$message.info('此人员已在列中!') |
| | | } |
| | | if (item.number === row.number) { |
| | | this.userIsSave = false |
| | | item.usercode = val |
| | | item.username = this.ZZuserArr.find(item => item.usercode === val).username |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | // 对话框关闭事件 |
| | | handleClose() { |
| | | this.dialogForm.OrgType = '' |
| | | this.dialogForm.OrgCode = '' |
| | | this.dialogForm.OrgName = '' |
| | | this.dialogForm.SupUnit = '' |
| | | 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.inuser = '', // 收料人员 |
| | | this.dialogForm.sqty = '', // 收料数量 |
| | | this.dialogForm.ngqty = '', // 不良数量 |
| | | this.dialogForm.badcode = '', // 不良原因编码 |
| | | |
| | | this.dialogForm.noputqty = '', // 不良数量 |
| | | |
| | | this.dialogForm.eqpcode = '', // 生产设备编码 |
| | | |
| | | this.dialogForm.usergroupcode = '', // 班组编码 |
| | | this.dialogForm.reportuser = '', // 报工人员 |
| | | |
| | | this.dialogForm.startqtySum = '' // 不能超过的数值 |
| | | |
| | | this.$refs.dialogForm.clearValidate() |
| | | }, |
| | | // 对话框取消 |
| | | dialogVisibleCancel() { |
| | | this.dialogVisible = false |
| | | // if (this.dialogTitle === '自制开始'||this.dialogTitle === '自制报工') { |
| | | // this.tabClick('0') |
| | | // } |
| | | // if (this.dialogTitle === '外协发料'||this.dialogTitle === '外协收料') { |
| | | // this.tabClick('1') |
| | | // } |
| | | this.tabClick() |
| | | }, |
| | | // 对话框确认 |
| | | dialogVisibleConfirm() { |
| | | this.$refs.dialogForm.validate(valid => { |
| | | if (valid) { |
| | | const data = { |
| | | OrganCode: this.dialogForm.OrgCode, |
| | | OrganName: this.dialogForm.OrgName, |
| | | Operator: getCookie('admin') |
| | | if (this.dialogTitle === '外协发料') { |
| | | if (parseFloat(this.dialogForm.fqty) > parseFloat(this.dialogForm.noreportqty)) { |
| | | return this.$message.info('发料数量不能大于未发数量!') |
| | | } |
| | | const data = { |
| | | mesordercode: this.dialogForm.wo_code, // 工单编号 |
| | | partcode: this.dialogForm.partcode, // 产品编码 |
| | | stepseq: this.dialogForm.stepseq, // 工序序号 暂时缺 |
| | | stepcode: this.dialogForm.stepcode, // 工序编码 |
| | | wxcode: this.dialogForm.wxcode, // 外协供应商编码 |
| | | outuser: this.dialogForm.outuser, // 发料人员 |
| | | taskqty: this.dialogForm.planqty, // 任务数量 |
| | | fqty: this.dialogForm.fqty // 发料数量 |
| | | } |
| | | SavaMesOrderStepOut(data).then(res => { |
| | | if (res.code === '200') { |
| | | this.$message.success('发料成功!') |
| | | this.dialogVisible = false |
| | | this.tabClick() |
| | | } else { |
| | | this.$message.error('发料失败!') |
| | | } |
| | | }) |
| | | } |
| | | this.tabClick() |
| | | // AddUpdateOrganization(data).then(res => { |
| | | // if (res.code === '200') { |
| | | // // this.$message.success(this.operation === 'add' ? '添加成功!' : '修改成功!') |
| | | // this.dialogVisible = false |
| | | // this.getMesOrderStepSearch() |
| | | // } else { |
| | | // // this.$message.error(this.operation === 'add' ? '添加失败!' : '修改失败!') |
| | | // } |
| | | // }) |
| | | |
| | | if (this.dialogTitle === '外协收料') { |
| | | if (parseFloat(this.dialogForm.startqtySum) < parseFloat(this.dialogForm.sqty) + parseFloat(this.dialogForm.noputqty)) { |
| | | return this.$message.info('收料数量加不良数量不能大于了未收数量!') |
| | | } |
| | | |
| | | if (parseFloat(this.dialogForm.noputqty) > 0) { |
| | | if (this.dialogForm.badcode.length < 1) { |
| | | return this.$message.info('请选择不良原因!') |
| | | } |
| | | } |
| | | |
| | | const data = { |
| | | mesordercode: this.dialogForm.wo_code, // 工单编号 |
| | | partcode: this.dialogForm.partcode, // 产品编码 |
| | | stepseq: this.dialogForm.stepseq, // 工序序号 |
| | | stepcode: this.dialogForm.stepcode, // 工序编码 |
| | | wxcode: this.dialogForm.wxcode, // 外协供应商编码 |
| | | inuser: this.dialogForm.inuser, // 发料人员 |
| | | taskqty: this.dialogForm.planqty, // 任务数量 |
| | | sqty: this.dialogForm.sqty, // 收料数量 |
| | | ngqty: this.dialogForm.noputqty, // 不良数量 |
| | | badcode: this.dialogForm.badcode.length < 1 ? '' : this.dialogForm.badcode.join(';')// 不良原因 |
| | | } |
| | | SavaMesOrderStepIn(data).then(res => { |
| | | if (res.code === '200') { |
| | | // this.WXprint() |
| | | this.$message.success('收料成功!') |
| | | this.dialogVisible = false |
| | | this.tabClick() |
| | | } else { |
| | | this.$message.error('收料失败!') |
| | | } |
| | | }) |
| | | } |
| | | |
| | | if (this.dialogTitle === '自制开始') { |
| | | const data = { |
| | | mesordercode: this.dialogForm.wo_code, // 工单编号 |
| | | partcode: this.dialogForm.partcode, // 产品编码 |
| | | stepseq: this.dialogForm.stepseq, // 工序序号 暂时缺 |
| | | stepcode: this.dialogForm.stepcode, // 工序编码 |
| | | eqpcode: this.dialogForm.eqpcode, // 生产设备 |
| | | taskqty: this.dialogForm.planqty, // 任务数量 |
| | | startqty: this.dialogForm.startqty// 开始数量 |
| | | } |
| | | SavaMesOrderStepStart(data).then(res => { |
| | | if (res.code === '200') { |
| | | // this.WXprint() |
| | | this.$message.success('开工成功!') |
| | | this.dialogVisible = false |
| | | this.tabClick() |
| | | } else { |
| | | this.$message.error('开工失败!') |
| | | } |
| | | }) |
| | | } |
| | | |
| | | if (this.dialogTitle === '自制报工') { |
| | | if (parseFloat(this.dialogForm.startqtySum) < parseFloat(this.dialogForm.startqty) + parseFloat(this.dialogForm.noputqty)) { |
| | | return this.$message.info('报工数量加不良数量不能大于了未报数量!') |
| | | } |
| | | if (this.userTableData.length < 1) { |
| | | return this.$message.info('人员列表不能为空!') |
| | | } |
| | | |
| | | if (parseFloat(this.dialogForm.noputqty) > 0) { |
| | | if (this.dialogForm.badcode.length < 1) { |
| | | return this.$message.info('请选择不良原因!') |
| | | } |
| | | } |
| | | |
| | | const reportuser = this.userTableData.map(item => item.usercode).join(';') |
| | | const data = { |
| | | mesordercode: this.dialogForm.wo_code, // 工单编号 |
| | | partcode: this.dialogForm.partcode, // 产品编码 |
| | | stepseq: this.dialogForm.stepseq, // 工序序号 |
| | | stepcode: this.dialogForm.stepcode, // 工序编码 |
| | | eqpcode: this.dialogForm.eqpcode, // 设备编码 |
| | | usergroupcode: this.dialogForm.usergroupcode, // 班组编码 |
| | | reportuser: reportuser, // 报工人员 |
| | | taskqty: this.dialogForm.planqty, // 任务数量 |
| | | // startqty: this.dialogForm.startqty, // 开工数量 |
| | | startqty: this.dialogForm.reportqty, // 开工数量 |
| | | // reportqty: this.dialogForm.reportqty, // 报工数量 |
| | | reportqty: this.dialogForm.startqty, // 报工数量 |
| | | ngqty: this.dialogForm.noputqty, // 不良数量 |
| | | badcode: this.dialogForm.badcode.length < 1 ? '' : this.dialogForm.badcode.join(';')// 不良原因 |
| | | } |
| | | SavaMesOrderStepReport(data).then(res => { |
| | | if (res.code === '200') { |
| | | // this.ZZprint() |
| | | this.$message.success('报工成功!') |
| | | this.dialogVisible = false |
| | | this.tabClick() |
| | | } else { |
| | | this.$message.error('报工失败!') |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | async ZZprint() { |
| | | const obj = { |
| | | recordset: [ |
| | | { |
| | | wo_code: this.dialogForm.wo_code, // 工单编号 |
| | | partcode: this.dialogForm.partcode, // 产品编码 |
| | | partname: this.dialogForm.partname, // 产品名称 |
| | | next_stepname: this.dialogForm.nextstepname, // 下道工序 |
| | | qty: this.dialogForm.startqty, // 数量 |
| | | qrcode: this.form.orderstepqrcode// 二维码 |
| | | } |
| | | ] |
| | | } |
| | | const args = { |
| | | type: 'print', // preview print |
| | | showOptionDlg: false, // 如果不显示打印对话框而直接打印,将此行注释去掉即可 |
| | | report: urlAddRandomNo('./static/grf/报工产出标签.grf'), |
| | | data: obj |
| | | } |
| | | webapp_ws_ajax_run(args) |
| | | }, |
| | | // 外协收料打印 |
| | | WXprint() { |
| | | // 参数具体说明请参考帮助文档中的“WEB报表(B/S报表)->WEB报表客户端->启动参数说明”部分 |
| | | const obj = { |
| | | recordset: [ |
| | | { |
| | | wo_code: this.dialogForm.wo_code, // 工单编号 |
| | | partcode: this.dialogForm.partcode, // 产品编码 |
| | | partname: this.dialogForm.partname, // 产品名称 |
| | | next_stepname: this.dialogForm.nextstepname, // 下道工序 |
| | | qty: this.dialogForm.sqty, // 数量 |
| | | qrcode: this.WXform.orderstepqrcode// 二维码 |
| | | } |
| | | ] |
| | | } |
| | | const args = { |
| | | type: 'print', // preview print |
| | | showOptionDlg: false, // 如果不显示打印对话框而直接打印,将此行注释去掉即可 |
| | | report: urlAddRandomNo('./static/grf/外协收料标签.grf'), |
| | | data: obj |
| | | } |
| | | webapp_ws_ajax_run(args) |
| | | }, |
| | | // 获取页面高度 |
| | | getHeight() { |
| | |
| | | color: #606266; |
| | | } |
| | | |
| | | //::v-deep .el-dialog__body { |
| | | // padding: 20px 100px !important; |
| | | //} |
| | | ::v-deep .el-dialog__body { |
| | | padding: 20px 100px !important; |
| | | } |
| | | |
| | | ::v-deep .el-radio__input.is-checked .el-radio__inner { |
| | | background-color: $main_color; |
| | |
| | | border-color: $main_color; |
| | | } |
| | | |
| | | //.dialogVisible{ |
| | | ::v-deep .el-select .el-input .el-select__caret { |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | } |
| | | |
| | | //} |
| | | .elTableDiv { |
| | | ::v-deep .el-radio__label { |
| | | display: none; |
| | | } |
| | | } |
| | | </style> |