| | |
| | | <div class="bodyTopButtonGroup" style="justify-content: space-between"> |
| | | <div style="display: flex"> |
| | | <el-button v-waves type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">新增</el-button> |
| | | <el-button v-waves type="primary" icon="el-icon-connection" @click="send('send')">派发</el-button> |
| | | <el-button v-waves type="primary" icon="el-icon-connection" @click="batchSend()">批量派发</el-button> |
| | | </div> |
| | | |
| | | <el-button v-waves icon="el-icon-switch-button" @click="orderClose">关闭工单</el-button> |
| | | <!-- <el-button v-waves icon="el-icon-switch-button" @click="orderClose">关闭工单</el-button>--> |
| | | </div> |
| | | |
| | | <div class="bodyTopFormGroup"> |
| | |
| | | <el-form-item label="源单单号" style="display: flex;"> |
| | | <el-input v-model="form.sourceorder" style="width: 200px" placeholder="请输入" /> |
| | | </el-form-item> |
| | | <el-form-item label="单据类型" style=" display: flex;"> |
| | | <el-form-item label="销售订单" style="display: flex;"> |
| | | <el-input v-model="form.saleordercode" style="width: 200px" placeholder="请输入" /> |
| | | </el-form-item> |
| | | <el-form-item v-show="isExpandForm" label="单据类型" style=" display: flex;"> |
| | | <el-select |
| | | v-model="form.ordertype" |
| | | :popper-append-to-body="false" |
| | |
| | | :cell-style="this.$cellStyle" |
| | | @sort-change="sortChange" |
| | | @row-click="rowClick" |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <!-- <el-table-column--> |
| | | <!-- type="selection"--> |
| | | <!-- width="50"--> |
| | | <!-- />--> |
| | | <el-table-column |
| | | type="selection" |
| | | width="50" |
| | | fixed |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-radio |
| | | v-model="radioSelected" |
| | | :label="row.wo_code" |
| | | style="color: transparent;padding-left: 10px;" |
| | | /> |
| | | <!-- @change.native="getCurrentRow(row.wo_code)"--> |
| | | </template> |
| | | </el-table-column> |
| | | :selectable="selected" |
| | | /> |
| | | <!-- <el-table-column--> |
| | | <!-- width="50"--> |
| | | <!-- fixed--> |
| | | <!-- >--> |
| | | <!-- <template slot-scope="{row}">--> |
| | | <!-- <el-radio--> |
| | | <!-- v-model="radioSelected"--> |
| | | <!-- :label="row.wo_code"--> |
| | | <!-- style="color: transparent;padding-left: 10px;"--> |
| | | <!-- />--> |
| | | <!-- </template>--> |
| | | <!-- </el-table-column>--> |
| | | <el-table-column |
| | | prop="RowNum" |
| | | width="50" |
| | |
| | | <div v-if="row.status==='ALLO'">已派发</div> |
| | | <div v-if="row.status==='START'">开工</div> |
| | | <div v-if="row.status==='CLOSED'">完工</div> |
| | | <div v-if="row.status==='NOSCHED'">待排程</div> |
| | | <div v-if="row.status==='SCHED'">已排程</div> |
| | | <!-- <div v-if="row.status==='NOSCHED'">待排程</div>--> |
| | | <!-- <div v-if="row.status==='SCHED'">已排程</div>--> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="saleOrderCode" |
| | | label="销售订单" |
| | | sortable="custom" |
| | | show-tooltip-when-overflow |
| | | min-width="160" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div v-if="row.saleOrderCode">{{ row.saleOrderCode }}</div> |
| | | <div v-else>/</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="wotype" |
| | | label="单据类型" |
| | | sortable="custom" |
| | |
| | | <div v-else>/</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="printcount" |
| | | label="打印次数" |
| | | show-tooltip-when-overflow |
| | | sortable="custom" |
| | | min-width="120" |
| | | /> |
| | | <el-table-column |
| | | prop="partcode" |
| | | label="产品编码" |
| | |
| | | /> |
| | | <el-table-column |
| | | label="操作" |
| | | width="120" |
| | | width="140" |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div class="operationClass"> |
| | | <el-tooltip class="item" effect="dark" content="派发" placement="top"> |
| | | <i |
| | | :style="{color:$store.state.settings.theme}" |
| | | class="el-icon-connection" |
| | | style="cursor: pointer;margin-right: 15px" |
| | | @click="send('send',row)" |
| | | /> |
| | | </el-tooltip> |
| | | <el-tooltip class="item" effect="dark" content="工单关闭" placement="top"> |
| | | <i |
| | | :style="{color:$store.state.settings.theme}" |
| | | class="el-icon-switch-button" |
| | | style="cursor: pointer;margin-right: 15px" |
| | | @click="orderClose(row.wo_code)" |
| | | /> |
| | | </el-tooltip> |
| | | <el-tooltip class="item" effect="dark" content="打印工单" placement="top"> |
| | | <!-- <i--> |
| | | <!-- class="el-icon-tickets"--> |
| | |
| | | :style="{color:$store.state.settings.theme}" |
| | | class="el-icon-printer" |
| | | style="cursor: pointer;margin-right: 15px" |
| | | @click="handlePrint(row.wo_code)" |
| | | @click="handlePrint(row.wo_code,row.saleOrderCode)" |
| | | /> |
| | | </el-tooltip> |
| | | <el-tooltip v-del-tab-index class="item" effect="dark" content="删除" placement="top"> |
| | |
| | | show-tooltip-when-overflow |
| | | prop="ng_qty" |
| | | /> |
| | | <el-table-column |
| | | label="操作" |
| | | width="120" |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div class="operationClass"> |
| | | <el-tooltip class="item" effect="dark" content="打印工序" placement="top"> |
| | | <i |
| | | v-if="tableDataDetail.length!==row.seq" |
| | | class="el-icon-printer" |
| | | :style="{color:$store.state.settings.theme}" |
| | | style="cursor: pointer;margin-right: 15px" |
| | | @click="supplementSmallClick(row)" |
| | | /> |
| | | </el-tooltip> |
| | | <el-tooltip class="item" effect="dark" content="补打生产入库条码" placement="top"> |
| | | <i |
| | | v-if="tableDataDetail.length===row.seq" |
| | | class=" el-icon-camera" |
| | | :style="{color:$store.state.settings.theme}" |
| | | style="cursor: pointer;margin-right: 15px" |
| | | @click="getProductInHouseLabCode(row.wo_code)" |
| | | /> |
| | | </el-tooltip> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <!-- <el-table-column--> |
| | | <!-- label="操作"--> |
| | | <!-- width="120"--> |
| | | <!-- fixed="right"--> |
| | | <!-- >--> |
| | | <!-- <template slot-scope="{row}">--> |
| | | <!-- <div class="operationClass">--> |
| | | <!-- <el-tooltip class="item" effect="dark" content="打印工序" placement="top">--> |
| | | <!-- <i--> |
| | | <!-- v-if="tableDataDetail.length!==row.seq"--> |
| | | <!-- class="el-icon-printer"--> |
| | | <!-- :style="{color:$store.state.settings.theme}"--> |
| | | <!-- style="cursor: pointer;margin-right: 15px"--> |
| | | <!-- @click="supplementSmallClick(row)"--> |
| | | <!-- />--> |
| | | <!-- </el-tooltip>--> |
| | | <!-- <el-tooltip class="item" effect="dark" content="补打生产入库条码" placement="top">--> |
| | | <!-- <i--> |
| | | <!-- v-if="tableDataDetail.length===row.seq"--> |
| | | <!-- class=" el-icon-camera"--> |
| | | <!-- :style="{color:$store.state.settings.theme}"--> |
| | | <!-- style="cursor: pointer;margin-right: 15px"--> |
| | | <!-- @click="getProductInHouseLabCode(row.wo_code)"--> |
| | | <!-- />--> |
| | | <!-- </el-tooltip>--> |
| | | <!-- </div>--> |
| | | <!-- </template>--> |
| | | <!-- </el-table-column>--> |
| | | </el-table> |
| | | </div> |
| | | </div> |
| | | |
| | | <!--新增派发对话框--> |
| | | <el-dialog |
| | | v-el-drag-dialog |
| | |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <!-- <el-button--> |
| | | <!-- v-waves--> |
| | | <!-- type="primary"--> |
| | | <!-- style="padding: 0 10px;margin-left: -8px;margin-top:3px"--> |
| | | <!-- class="el-icon-search"--> |
| | | <!-- @click="searchClick"--> |
| | | <!-- />--> |
| | | <!-- :disabled="dialogForm.routecode===''"--> |
| | | |
| | | <!-- </div>--> |
| | | <!-- </div>--> |
| | | <el-form-item label="是否排程" prop="isAps"> |
| | | <el-radio-group v-model="dialogForm.isAps" style="width:200px" @change="changeIsAps"> |
| | | <el-radio key="Y" label="Y" value="Y">是</el-radio> |
| | | <el-radio key="N" label="N" value="N">否</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="物料清单" :prop="dialogForm.isAps==='Y'?'bomId':''"> |
| | | <el-select |
| | | v-model="dialogForm.bomId" |
| | | filterable |
| | | :disabled="dialogForm.isAps==='N'" |
| | | :popper-append-to-body="false" |
| | | style="width: 200px;" |
| | | placeholder="请选择" |
| | | > |
| | | <el-option |
| | | v-for="item in bomIdArr" |
| | | :key="item.id" |
| | | :label="item.version" |
| | | :value="item.id" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="计划开始时间" prop="planstartdate"> |
| | | <el-date-picker |
| | | v-model="dialogForm.planstartdate" |
| | | type="date" |
| | | :clearable="false" |
| | | value-format="yyyy-MM-dd" |
| | | :picker-options="pickerOptions" |
| | | style="width: 200px" |
| | | placeholder="选择日期" |
| | | <el-form-item label="工价管控" required> |
| | | <el-switch |
| | | v-model="dialogForm.is_steprice" |
| | | active-color="#13ce66" |
| | | inactive-color="#eee" |
| | | @change="routecodeChange" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="计划完成时间" prop="planenddate"> |
| | | <el-date-picker |
| | | v-model="dialogForm.planenddate" |
| | | type="date" |
| | | :clearable="false" |
| | | value-format="yyyy-MM-dd" |
| | | style="width: 200px" |
| | | placeholder="选择日期" |
| | | :picker-options="pickerOptions" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="工单等级" prop="orderlev"> |
| | | <el-select |
| | | v-model="dialogForm.orderlev" |
| | | filterable |
| | | :popper-append-to-body="false" |
| | | style="width: 200px" |
| | | placeholder="请选择" |
| | | > |
| | | <el-option |
| | | v-for="item in orderlevArr" |
| | | :key="item.code" |
| | | :label="item.name" |
| | | :value="item.code" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="是否排程" prop="isAps">--> |
| | | <!-- <el-radio-group v-model="dialogForm.isAps" style="width:200px" @change="changeIsAps">--> |
| | | <!-- <el-radio key="Y" label="Y" value="Y">是</el-radio>--> |
| | | <!-- <el-radio key="N" label="N" value="N">否</el-radio>--> |
| | | <!-- </el-radio-group>--> |
| | | <!-- </el-form-item>--> |
| | | <!-- <el-form-item label="物料清单" :prop="dialogForm.isAps==='Y'?'bomId':''">--> |
| | | <!-- <el-select--> |
| | | <!-- v-model="dialogForm.bomId"--> |
| | | <!-- filterable--> |
| | | <!-- :disabled="dialogForm.isAps==='N'"--> |
| | | <!-- :popper-append-to-body="false"--> |
| | | <!-- style="width: 200px;"--> |
| | | <!-- placeholder="请选择"--> |
| | | <!-- >--> |
| | | <!-- <el-option--> |
| | | <!-- v-for="item in bomIdArr"--> |
| | | <!-- :key="item.id"--> |
| | | <!-- :label="item.version"--> |
| | | <!-- :value="item.id"--> |
| | | <!-- />--> |
| | | <!-- </el-select>--> |
| | | <!-- </el-form-item>--> |
| | | <!-- <el-form-item label="计划开始时间" prop="planstartdate">--> |
| | | <!-- <el-date-picker--> |
| | | <!-- v-model="dialogForm.planstartdate"--> |
| | | <!-- type="date"--> |
| | | <!-- :clearable="false"--> |
| | | <!-- value-format="yyyy-MM-dd"--> |
| | | <!-- :picker-options="pickerOptions"--> |
| | | <!-- style="width: 200px"--> |
| | | <!-- placeholder="选择日期"--> |
| | | <!-- />--> |
| | | <!-- </el-form-item>--> |
| | | <!-- <el-form-item label="计划完成时间" prop="planenddate">--> |
| | | <!-- <el-date-picker--> |
| | | <!-- v-model="dialogForm.planenddate"--> |
| | | <!-- type="date"--> |
| | | <!-- :clearable="false"--> |
| | | <!-- value-format="yyyy-MM-dd"--> |
| | | <!-- style="width: 200px"--> |
| | | <!-- placeholder="选择日期"--> |
| | | <!-- :picker-options="pickerOptions"--> |
| | | <!-- />--> |
| | | <!-- </el-form-item>--> |
| | | <!-- <el-form-item label="工单等级" prop="orderlev">--> |
| | | <!-- <el-select--> |
| | | <!-- v-model="dialogForm.orderlev"--> |
| | | <!-- filterable--> |
| | | <!-- :popper-append-to-body="false"--> |
| | | <!-- style="width: 200px"--> |
| | | <!-- placeholder="请选择"--> |
| | | <!-- >--> |
| | | <!-- <el-option--> |
| | | <!-- v-for="item in orderlevArr"--> |
| | | <!-- :key="item.code"--> |
| | | <!-- :label="item.name"--> |
| | | <!-- :value="item.code"--> |
| | | <!-- />--> |
| | | <!-- </el-select>--> |
| | | <!-- </el-form-item>--> |
| | | |
| | | </el-form> |
| | | <div style="display: flex;justify-content: flex-end;margin-top: -50px;"> |
| | | {{ routeStepArr }} |
| | | </div> |
| | | |
| | | <!-- 工艺路线放大镜对话框--> |
| | | <el-dialog |
| | |
| | | style="display: flex;justify-content: space-between" |
| | | > |
| | | <div class="elForm"> |
| | | <el-form-item label="工单编号:" class="formContent"> |
| | | {{ formApprove.mesordercode }} |
| | | <el-form-item label="销售单号:" class="formContent"> |
| | | {{ formApprove.saleOrderCode }} |
| | | </el-form-item> |
| | | <el-form-item label="源单单号:" class="formContent"> |
| | | {{ formApprove.m_po }} |
| | | </el-form-item> |
| | | <el-form-item label="工单编号:" class="formContent"> |
| | | {{ formApprove.mesordercode }} |
| | | </el-form-item> |
| | | <el-form-item label="产品编码:" class="formContent"> |
| | | {{ formApprove.partcode }} |
| | |
| | | <el-button v-waves @click="dialogVisibleBackPreview">返 回</el-button> |
| | | <!-- <el-button v-waves v-if="operation==='add'" type="primary" @click="dialogVisibleConfirm">确 定</el-button>--> |
| | | <!-- <el-button v-waves type="primary" @click="dialogVisibleConfirm">确 定/打 印</el-button>--> |
| | | <el-button v-waves v-print="printObj" type="primary">打 印</el-button> |
| | | <el-button v-waves v-print="printObj" type="primary" @click="printObjGetApi">打 印</el-button> |
| | | </div> |
| | | </span> |
| | | </el-dialog> |
| | |
| | | </span> |
| | | </el-dialog> |
| | | |
| | | <!-- 批量派发对话框--> |
| | | <el-dialog |
| | | v-el-drag-dialog |
| | | title="批量派发" |
| | | :visible.sync="dialogVisible3" |
| | | width="900px" |
| | | top="10vh" |
| | | :close-on-click-modal="false" |
| | | @closed="handleClose3" |
| | | @close="handleClose3" |
| | | > |
| | | |
| | | <div style="height: 600px;padding-right: 20px;overflow: auto"> |
| | | <el-alert |
| | | v-if="multipleSelection.length-formData3.length>0" |
| | | :title="'当前选中'+multipleSelection.length+'个工单,有'+(multipleSelection.length-formData3.length)+'个工单未指定工艺路线,已过滤!'" |
| | | type="error" |
| | | /> |
| | | <div v-for="(i,index) in formData3" :key="index"> |
| | | <el-divider content-position="left">第{{ index+1 }}个工单</el-divider> |
| | | |
| | | <el-form |
| | | ref="dialogForm" |
| | | inline |
| | | :model="i" |
| | | label-width="110px" |
| | | > |
| | | <el-form-item |
| | | label="工单状态" |
| | | prop="mesorderstus" |
| | | > |
| | | <el-select |
| | | v-model="i.mesorderstus" |
| | | disabled |
| | | filterable |
| | | :popper-append-to-body="false" |
| | | style="width: 200px" |
| | | placeholder="请选择" |
| | | > |
| | | <el-option |
| | | v-for="item in erporderstusArr" |
| | | :key="item.code" |
| | | :label="item.name" |
| | | :value="item.code" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="工单编号" prop="mesordercode"> |
| | | <el-input v-model="i.mesordercode" disabled style="width: 200px" /> |
| | | </el-form-item> |
| | | <el-form-item label="工单类型" prop="mesorderstus"> |
| | | <el-select |
| | | v-model="i.ordertype" |
| | | :popper-append-to-body="false" |
| | | style="width: 200px" |
| | | :disabled="operation!=='add'" |
| | | placeholder="请选择" |
| | | @change="mesordertypeChange" |
| | | > |
| | | <el-option |
| | | v-for="item in ordertypeArr" |
| | | :key="item.code" |
| | | :label="item.name" |
| | | :value="item.code" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="源单单号"> |
| | | <el-input |
| | | v-model="i.sourceorder" |
| | | :disabled="i.ordertype==='PO'" |
| | | style="width: 200px" |
| | | > |
| | | <!-- <el-button--> |
| | | <!-- slot="append"--> |
| | | <!-- icon="el-icon-search"--> |
| | | <!-- :disabled="operation!=='add'||dialogForm.ordertype==='PO'"--> |
| | | <!-- @click="mesordertsourcesearchclick"--> |
| | | <!-- />--> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="工单数量" prop="mesqty"> |
| | | <el-input |
| | | v-model="i.mesqty" |
| | | oninput="value=value.replace(/[^0-9.]/g,'')" |
| | | :disabled="operation!=='add'" |
| | | style="width: 200px" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item |
| | | v-if="operation==='add'" |
| | | label="产品名称/编码" |
| | | prop="partcode" |
| | | > |
| | | <el-select |
| | | v-model="i.partcode" |
| | | filterable |
| | | :disabled="operation!=='add'" |
| | | :popper-append-to-body="false" |
| | | style="width: 200px" |
| | | placeholder="请选择" |
| | | @change="partcodeChangeDialog" |
| | | > |
| | | <el-option |
| | | v-for="item in partArr" |
| | | :key="item.partcode" |
| | | :label="item.partname+'/'+item.partcode" |
| | | :value="item.partcode" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item v-if="operation!=='add'" label="产品名称" prop="partname"> |
| | | <el-input v-model="i.partname" disabled style="width: 200px" /> |
| | | </el-form-item> |
| | | <el-form-item label="产品编码"> |
| | | <el-input v-model="i.partcode" disabled style="width: 200px" /> |
| | | </el-form-item> |
| | | <el-form-item label="产品规格" prop="partspec"> |
| | | <el-input v-model="i.partspec" disabled style="width: 200px" /> |
| | | </el-form-item> |
| | | <!-- <div style="display: flex">--> |
| | | <el-form-item label="生产车间" prop="wkshopcode"> |
| | | <el-input v-model="i.wkshopname" disabled style="width: 200px" /> |
| | | |
| | | <!-- <el-select--> |
| | | <!-- v-model="i.wkshopcode"--> |
| | | <!-- filterable--> |
| | | <!-- :popper-append-to-body="false"--> |
| | | <!-- style="width: 200px;"--> |
| | | <!-- placeholder="请选择"--> |
| | | <!-- disabled--> |
| | | <!-- >--> |
| | | <!-- <el-option--> |
| | | <!-- v-for="item in wkshopArr"--> |
| | | <!-- :key="item.org_code"--> |
| | | <!-- :label="item.org_name"--> |
| | | <!-- :value="item.org_code"--> |
| | | <!-- />--> |
| | | <!-- </el-select>--> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="工艺路线" prop="routecode"> |
| | | <el-select |
| | | v-model="i.routecode" |
| | | filterable |
| | | :popper-append-to-body="false" |
| | | style="width: 200px" |
| | | placeholder="请选择" |
| | | :disabled="i.wkshopcode===''" |
| | | > |
| | | <el-option |
| | | v-for="item in i.children" |
| | | :key="item.routecode" |
| | | :label="item.routename" |
| | | :value="item.routecode" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="工价管控" required> |
| | | <el-switch |
| | | v-model="i.is_steprice" |
| | | active-color="#13ce66" |
| | | inactive-color="#eee" |
| | | @change="routecodeChange2(i)" |
| | | /> |
| | | </el-form-item> |
| | | |
| | | </el-form> |
| | | |
| | | <div style="display: flex;justify-content: flex-end;margin-top: -50px;margin-right: 50px"> |
| | | {{ i.children.find(it=>it.routecode===i.routecode).stepname }} |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <span slot="footer" class="dialog-footer"> |
| | | <div class="footerButton"> |
| | | <el-button v-waves @click="dialogVisible3=false">取 消</el-button> |
| | | <el-button |
| | | v-waves |
| | | |
| | | type="primary" |
| | | :disabled="submitButtonIsDisabled" |
| | | @click="dialogVisibleConfirm3" |
| | | >确 定</el-button> |
| | | </div> |
| | | </span> |
| | | </el-dialog> |
| | | |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | import { |
| | | AddUpdateMesOrder, |
| | | ClosedMesOrder, |
| | | DeleteMesOrder, MesBadOrderSearch, JobCreationSonAddVison, |
| | | MesOrderSearch, PartSelectRoute, RouteSelectWkshop, SearchWorkStep, SelectRouteOrWkshop, |
| | | SelectRouteStep, AddMesOrderCodeSearch, ProductInHouseLabCode |
| | | DeleteMesOrder, |
| | | MesBadOrderSearch, |
| | | JobCreationSonAddVison, |
| | | MesOrderSearch, |
| | | PartSelectRoute, |
| | | RouteSelectWkshop, |
| | | SearchWorkStep, |
| | | SelectRouteOrWkshop, |
| | | SelectRouteStep, |
| | | AddMesOrderCodeSearch, |
| | | ProductInHouseLabCode, |
| | | UpdateMesOrderPrintCount, |
| | | BatchSearchRouteStep, |
| | | BatchWorkSave |
| | | } from '@/api/produceManager' |
| | | import { InventoryFileAssociationRoute, PartSelect, SaveInventoryFile } from '@/api/makeModel' |
| | | import { handleDatetime, handleDatetime2, validateCode } from '@/utils/global' |
| | |
| | | partcode: '', // 产品编码 |
| | | ordertype: '', // ordertype |
| | | sourceorder: '', // 源单单号 |
| | | saleordercode: '', // 销售订单 |
| | | partname: '', // 产品名称 |
| | | partspec: '', // 产品规格 |
| | | creatuser: '', // 创建人员 |
| | |
| | | // { code: 'CREATED', name: '已关闭' } |
| | | { code: 'ALLO', name: '已派发' }, |
| | | { code: 'START', name: '开工' }, |
| | | { code: 'CLOSED', name: '完工' }, |
| | | { code: 'NOSCHED', name: '待排程' }, |
| | | { code: 'SCHED', name: '已排程' } |
| | | { code: 'CLOSED', name: '完工' } |
| | | // { code: 'NOSCHED', name: '待排程' }, |
| | | // { code: 'SCHED', name: '已排程' } |
| | | ], |
| | | total: 10, |
| | | radioSelected: '', |
| | |
| | | mesqty: '', // 工单数量 |
| | | |
| | | routecode: '', // 工艺路线编码 |
| | | |
| | | is_steprice: false, // 是否工价管理 |
| | | |
| | | wkshopcode: '', // 生产车间编码 |
| | | planstartdate: '', // 计划开始时间 |
| | | planenddate: '', // 计划完成时间 |
| | |
| | | }, |
| | | beforeOpenCallback(vue) { |
| | | vue.printLoading = true |
| | | console.log('打开之前') |
| | | console.log() |
| | | console.log('打开之前8888') |
| | | }, |
| | | openCallback(vue) { |
| | | vue.printLoading = false |
| | | console.log('执行了打印') |
| | | console.log('执行了打印9999') |
| | | }, |
| | | clickMounted(vue) { |
| | | console.log('点击了打印按钮1223451') |
| | | // vue.printContent.popTitle = vue.tableHead // 动态设置页眉 |
| | | } |
| | | }, |
| | | |
| | |
| | | // vue.dialogVisible = false |
| | | }, |
| | | beforeOpenCallback(vue) { |
| | | // window.print() |
| | | vue.printLoading = true |
| | | console.log('打开之前') |
| | | console.log() |
| | | console.log('打开之前000') |
| | | }, |
| | | openCallback(vue) { |
| | | vue.printLoading = false |
| | | console.log('执行了打印') |
| | | console.log('执行了打印eee') |
| | | }, |
| | | clickMounted(vue) { |
| | | console.log('点击了打印按钮1111') |
| | | // vue.printContent.popTitle = vue.tableHead // 动态设置页眉 |
| | | } |
| | | }, |
| | | qrForm: { |
| | |
| | | lastPrintArr: [], // 末道打印的数组(所有) |
| | | lastPrintArrSelected: [], // 末道打印的数组(选中) |
| | | |
| | | switchButton: false |
| | | switchButton: false, |
| | | |
| | | routeStepArr: '', |
| | | |
| | | dialogVisible3: false, |
| | | multipleSelection: [], |
| | | formData3: [] |
| | | |
| | | } |
| | | }, |
| | | created() { |
| | |
| | | partspec: this.form.partspec, // 产品规格 |
| | | creatuser: this.form.creatuser, // 创建人员 |
| | | sourceorder: this.form.sourceorder, // 源单单号 |
| | | saleordercode: this.form.saleordercode, // 销售订单 |
| | | ordertype: this.form.ordertype, // 单据类型 |
| | | createdate: this.form.createdate.toString().length > 0 ? handleDatetime(this.form.createdate) : '', // 创建时间 |
| | | prop: this.form.prop, // 排序字段 |
| | |
| | | this.form.paydate = '' |
| | | this.form.creatuser = '' |
| | | this.form.sourceorder = '' |
| | | this.form.saleordercode = '' |
| | | this.form.creatuser = '' |
| | | this.form.ordertype = '' |
| | | this.getMesOrderSearch() |
| | |
| | | }, |
| | | // 工艺路线值改变 |
| | | async routecodeChange() { |
| | | const data = { |
| | | partcode: this.dialogForm.partcode, |
| | | routecode: this.dialogForm.routecode, |
| | | wkshopcode: this.dialogForm.wkshopcode |
| | | if (this.dialogForm.routecode) { |
| | | const data = { |
| | | partcode: this.dialogForm.partcode, |
| | | routecode: this.dialogForm.routecode, |
| | | wkshopcode: this.dialogForm.wkshopcode, |
| | | is_steprice: this.dialogForm.is_steprice ? 'Y' : 'N' |
| | | } |
| | | await SelectRouteOrWkshop(data).then((res) => { |
| | | console.log(res, 1) |
| | | |
| | | SelectRouteStep({ routecode: this.dialogForm.routecode }).then(res2 => { |
| | | console.log(res2) |
| | | this.routeStepArr = res2.data.map(i => i.stepname).join(',') |
| | | }) |
| | | |
| | | this.submitButtonIsDisabled = false |
| | | }).catch(err => { |
| | | // console.log(err, 2) |
| | | this.submitButtonIsDisabled = true |
| | | }) |
| | | } |
| | | await SelectRouteOrWkshop(data).then((res) => { |
| | | // console.log(res, 1) |
| | | this.submitButtonIsDisabled = false |
| | | }).catch(err => { |
| | | // console.log(err, 2) |
| | | this.submitButtonIsDisabled = true |
| | | }) |
| | | }, |
| | | // 生产车间值改变时 |
| | | async wkshopcodeChange(wkshopcode, partcode) { |
| | | async wkshopcodeChange(wkshopcode, partcode) { |
| | | const data = { |
| | | partcode, |
| | | wkshopcode |
| | |
| | | this.dialogVisibleTask = false |
| | | }, |
| | | // 派发 |
| | | send(operation) { |
| | | if (this.radioSelected.length < 1) { |
| | | return this.$message.info('请先选择工单!') |
| | | } |
| | | |
| | | const row = this.tableData.find(item => item.wo_code === this.radioSelected) |
| | | send(operation, row) { |
| | | // if (this.radioSelected.length < 1) { |
| | | // return this.$message.info('请先选择工单!') |
| | | // } |
| | | // |
| | | // const row = this.tableData.find(item => item.wo_code === this.radioSelected) |
| | | |
| | | if (row.status !== 'NEW') { |
| | | return this.$message.info('此工单为非新工单状态,不可派发!') |
| | |
| | | }) |
| | | }, |
| | | // 工单关闭事件 |
| | | orderClose() { |
| | | if (this.radioSelected.length < 1) { |
| | | return this.$message.info('请先选择工单!') |
| | | } |
| | | orderClose(wo_code) { |
| | | // if (this.radioSelected.length < 1) { |
| | | // return this.$message.info('请先选择工单!') |
| | | // } |
| | | console.log('工单关闭事件') |
| | | this.tableData.forEach(item => { |
| | | if (item.wo_code === this.radioSelected) { |
| | | if (item.status === 'START') { |
| | | return this.$message.info('当前工单未完工,无法关闭!') |
| | | } else if (item.status === 'CLOSED') { |
| | | if (item.wo_code === wo_code) { |
| | | // if (item.status === 'START') { |
| | | // return this.$message.info('当前工单未完工,无法关闭!') |
| | | // } else |
| | | if (item.status === 'CLOSED') { |
| | | return this.$message.info('工单已关闭,无需再关闭!') |
| | | } else { |
| | | this.$confirm('是否确认关闭工单?', '提示', { |
| | |
| | | }, |
| | | // 对话框关闭事件 |
| | | handleClose() { |
| | | this.routeStepArr = '' |
| | | this.dialogForm.partname = '' // 产品名称 |
| | | this.dialogForm.partspec = '' // 产品规格 |
| | | this.dialogForm.wkshopname = '' // 生产车间名称 |
| | |
| | | |
| | | this.dialogForm.routecode = '' // 工艺路线编码 |
| | | this.dialogForm.wkshopcode = '' // 生产车间编码 |
| | | this.dialogForm.is_steprice = false// 是否工价管理 |
| | | this.dialogForm.planstartdate = '' // 计划开始时间 |
| | | this.dialogForm.planenddate = '' // 计划完成时间 |
| | | this.dialogForm.orderlev = '' // 工单等级 |
| | |
| | | this.dialogVisibleSearch = false |
| | | }, |
| | | // 处理打印 |
| | | handlePrint(wo_code) { |
| | | handlePrint(wo_code, saleOrderCode) { |
| | | // const number = Math.random() * Math.random() |
| | | // this.number = number === 0 ? (10 + Math.random()) : number |
| | | // console.log(number) |
| | | |
| | | console.log(this.formApprove.saleOrderCode, 321) |
| | | this.formApprove.saleOrderCode = this.formApprove.saleOrderCode !== '' ? this.formApprove.saleOrderCode : saleOrderCode |
| | | const data2 = { |
| | | username: getCookie('admin'), |
| | | mesordercode: wo_code || this.dialogForm.mesordercode |
| | |
| | | |
| | | dialogVisibleConfirmClose() { |
| | | // this.dialogForm.mesordercode = '' |
| | | this.formApprove.saleOrderCode = '' |
| | | this.formApprove.mesordercode = '' |
| | | this.formApprove.m_po = '' |
| | | this.formApprove.partcode = '' |
| | |
| | | |
| | | this.tableDataPrint = [] |
| | | }, |
| | | |
| | | async printObjGetApi() { |
| | | const res = await UpdateMesOrderPrintCount({ wo_code: this.formApprove.mesordercode }) |
| | | if (res.code === '200') { |
| | | this.getMesOrderSearch() |
| | | } |
| | | }, |
| | | |
| | | // 补打按钮 |
| | | supplementClick() { |
| | | this.dialogVisibleTask = false |
| | |
| | | }, |
| | | // 行点击事件 |
| | | async rowClick(row, event, column) { |
| | | this.formApprove.saleOrderCode = row.saleOrderCode |
| | | this.radioSelected = row.wo_code ? row.wo_code : this.radioSelected |
| | | const { data: res } = await SearchWorkStep({ wo_code: this.radioSelected, storg_code: this.$store.state.settings.orgType === 'W' ? (this.switchButton ? '' : getCookie('stu_torgcode')) : '' }) |
| | | const { data: res } = await SearchWorkStep({ |
| | | wo_code: this.radioSelected, |
| | | storg_code: this.$store.state.settings.orgType === 'W' ? (this.switchButton ? '' : getCookie('stu_torgcode')) : '' |
| | | }) |
| | | this.tableDataDetail = res |
| | | }, |
| | | // 打印工单 |
| | |
| | | |
| | | this.$forceUpdate() |
| | | }, 500) |
| | | }, |
| | | |
| | | handleSelectionChange(val) { |
| | | this.multipleSelection = val |
| | | |
| | | console.log(this.multipleSelection) |
| | | }, |
| | | // 批量派发 |
| | | async batchSend() { |
| | | if (this.multipleSelection.length === 0) { |
| | | return this.$message.info('请先勾选相对应的工单!') |
| | | } |
| | | const data = [] |
| | | this.multipleSelection.forEach(i => { |
| | | data.push({ |
| | | 'wkshopcode': i.wkshp_code, |
| | | 'code': i.partcode, |
| | | 'name': i.wo_code, |
| | | 'flag': '' |
| | | }) |
| | | }) |
| | | |
| | | const { data: res } = await BatchSearchRouteStep(data) |
| | | this.formData3 = [] |
| | | this.multipleSelection.forEach((item, index) => { |
| | | item.stepname = res[index].children.length > 0 ? res[index].children[0].stepname : '' |
| | | if (item.stepname) { |
| | | this.formData3.push({ |
| | | 'mesorderstus': item.status, |
| | | 'sourceorder': item.m_po, |
| | | 'ordertype': item.wotype, |
| | | 'mesordercode': item.wo_code, |
| | | 'partcode': item.partcode, |
| | | 'mesqty': item.plan_qty, |
| | | 'routecode': res[index].children.length > 0 ? res[index].children[0].routecode : '', |
| | | 'wkshopcode': item.wkshp_code, |
| | | 'wkshopname': item.wkshp_name, |
| | | 'partname': item.partname, |
| | | 'partspec': item.partspec, |
| | | 'planstartdate': item.plan_startdate, |
| | | 'planenddate': item.plan_enddate, |
| | | 'orderlev': item.piroque, |
| | | children: res[index].children, |
| | | is_steprice: false, |
| | | |
| | | 'is_aps': '', |
| | | 'bom_id': '' |
| | | }) |
| | | } |
| | | }) |
| | | |
| | | if (this.formData3.length === 0) { |
| | | return this.$message.info('未有符合可派发工单!') |
| | | } |
| | | |
| | | this.dialogVisible3 = true |
| | | }, |
| | | // 批量派发确定事件 |
| | | async dialogVisibleConfirm3() { |
| | | const data = [] |
| | | this.formData3.forEach(i => { |
| | | data.push({ |
| | | 'mesorderstus': i.mesorderstus, |
| | | 'sourceorder': i.sourceorder, |
| | | 'ordertype': i.ordertype, |
| | | 'mesordercode': i.mesordercode, |
| | | 'partcode': i.partcode, |
| | | 'mesqty': i.mesqty, |
| | | 'routecode': i.routecode, |
| | | 'wkshopcode': i.wkshopcode, |
| | | 'planstartdate': i.planstartdate, |
| | | 'planenddate': i.planenddate, |
| | | 'orderlev': i.orderlev, |
| | | 'is_aps': 'N', |
| | | 'bom_id': '' |
| | | }) |
| | | }) |
| | | |
| | | const res = await BatchWorkSave(data) |
| | | if (res.code === '200') { |
| | | this.dialogVisible3 = false |
| | | this.$message.success('批量派发成功!') |
| | | await this.getMesOrderSearch() |
| | | } else { |
| | | this.$message.error('批量派发失败!') |
| | | } |
| | | }, |
| | | // 批量派发关闭事件 |
| | | handleClose3() { |
| | | this.formData3 = [] |
| | | this.submitButtonIsDisabled = false |
| | | }, |
| | | selected(row, index) { |
| | | return row.status === 'NEW' |
| | | }, |
| | | |
| | | async routecodeChange2(val) { |
| | | if (val.routecode) { |
| | | const data = { |
| | | partcode: val.partcode, |
| | | routecode: val.routecode, |
| | | wkshopcode: val.wkshopcode, |
| | | is_steprice: val.is_steprice ? 'Y' : 'N' |
| | | } |
| | | await SelectRouteOrWkshop(data).then((res) => { |
| | | this.submitButtonIsDisabled = false |
| | | }).catch(err => { |
| | | // console.log(err, 2) |
| | | this.submitButtonIsDisabled = true |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | } |