| | |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="产品名称" prop="productName"> |
| | | <el-form-item label="产品编码" prop="productCode"> |
| | | <el-input |
| | | v-model="queryParams.productName" |
| | | placeholder="请输入产品名称" |
| | | v-model="queryParams.productCode" |
| | | placeholder="请输入产品编码" |
| | | clearable |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="工单状态" prop="orderStatus"> |
| | | <el-select v-model="queryParams.orderStatus" placeholder="请选择工单状态" clearable> |
| | | <el-form-item label-width="80" label="PACK码" prop="productNum"> |
| | | <el-input |
| | | v-model="queryParams.productNum" |
| | | placeholder="请输入PACK码" |
| | | clearable |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="小车码" prop="trolleyYard"> |
| | | <el-input |
| | | v-model="queryParams.trolleyYard" |
| | | placeholder="请输入小车码" |
| | | clearable |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label-width="1" label="上线报工状态" prop="onlineCompletionMark"> |
| | | <el-select v-model="queryParams.onlineCompletionMark" placeholder="请选择上线报工状态" clearable> |
| | | <el-option |
| | | v-for="dict in dict.type.order_state" |
| | | v-for="dict in dict.type.work_reporting_status" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label-width="1" label="下线报工状态" prop="sfResult"> |
| | | <el-select v-model="queryParams.sfResult" placeholder="请选择下线报工状态" clearable> |
| | | <el-option |
| | | v-for="dict in dict.type.work_reporting_status" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | |
| | | <div style="display: none"> |
| | | <div id="printMe" style="width: 500px;"> |
| | | <div ref="canvasWrapper" id="canvasWrapper" style="display: flex;justify-content: center;"></div> |
| | | <p style="font-size: 10px;word-break: break-all;display: flex;justify-content: center;">{{packCode}}</p> |
| | | </div> |
| | | <el-button @click="print">打印</el-button> |
| | | <el-button @click="test1">生成二维码</el-button> |
| | | </div> |
| | | <el-form-item style="float: right"> |
| | | <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> |
| | | <el-button type="warning" icon="el-icon-copy-document" size="mini" @click="advancedQuery">高级查询</el-button> |
| | |
| | | <el-form-item style="margin-left: 14px" label="产品编号" prop="productCode"> |
| | | <el-input |
| | | v-model="queryParams.productCode" |
| | | placeholder="请输入产品编号" |
| | | placeholder="请输入产品序列号" |
| | | clearable |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="车间编号" prop="workshopCode"> |
| | | <el-form-item label="工厂编号" prop="siteCode"> |
| | | <el-input |
| | | v-model="queryParams.workshopCode" |
| | | placeholder="请输入车间编号" |
| | | v-model="queryParams.siteCode" |
| | | placeholder="请输入工厂编号" |
| | | clearable |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="产线编号" prop="lineCode"> |
| | | <el-form-item label="工站编号" prop="stationCode"> |
| | | <el-input |
| | | v-model="queryParams.lineCode" |
| | | placeholder="请输入产线编号" |
| | | clearable |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item style="margin-left: 7px" label-width="80" label="产品BOM" prop="bomCode"> |
| | | <el-input |
| | | v-model="queryParams.bomCode" |
| | | placeholder="请输入产品BOM" |
| | | clearable |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="工艺流程" prop="routeCode"> |
| | | <el-input |
| | | v-model="queryParams.routeCode" |
| | | placeholder="请输入工艺流程" |
| | | clearable |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="工艺配方" prop="recipeCode"> |
| | | <el-input |
| | | v-model="queryParams.recipeCode" |
| | | placeholder="请输入工艺配方" |
| | | v-model="queryParams.stationCode" |
| | | placeholder="请输入工站编号" |
| | | clearable |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | |
| | | |
| | | <el-card style="margin-top: 10px" class="box-card"> |
| | | <el-row :gutter="10" class="mb8"> |
| | | <!-- <el-col :span="1.5">--> |
| | | <!-- <el-button--> |
| | | <!-- type="primary"--> |
| | | <!-- plain--> |
| | | <!-- icon="el-icon-plus"--> |
| | | <!-- size="mini"--> |
| | | <!-- @click="handleAdd"--> |
| | | <!-- v-hasPermi="['om:productionOrde:add']"--> |
| | | <!-- >新增</el-button>--> |
| | | <!-- </el-col>--> |
| | | <!-- <el-col :span="1.5">--> |
| | | <!-- <el-button--> |
| | | <!-- type="success"--> |
| | | <!-- plain--> |
| | | <!-- icon="el-icon-edit"--> |
| | | <!-- size="mini"--> |
| | | <!-- :disabled="single"--> |
| | | <!-- @click="handleUpdate"--> |
| | | <!-- v-hasPermi="['om:productionOrde:edit']"--> |
| | | <!-- >修改</el-button>--> |
| | | <!-- </el-col>--> |
| | | <!-- <el-col :span="1.5">--> |
| | | <!--<!– <el-button–>--> |
| | | <!--<!– type="danger"–>--> |
| | | <!--<!– plain–>--> |
| | | <!--<!– icon="el-icon-delete"–>--> |
| | | <!--<!– size="mini"–>--> |
| | | <!--<!– :disabled="multiple"–>--> |
| | | <!--<!– @click="handleDelete"–>--> |
| | | <!--<!– v-hasPermi="['om:productionOrde:remove']"–>--> |
| | | <!--<!– >删除</el-button>–>--> |
| | | <!-- <el-button--> |
| | | <!-- type="info"--> |
| | | <!-- icon="el-icon-upload2"--> |
| | | <!-- size="mini"--> |
| | | <!-- @click="handleImport"--> |
| | | <!-- >导入</el-button>--> |
| | | <!-- </el-col>--> |
| | | <!-- <el-col :span="1.5">--> |
| | | <!-- <el-button--> |
| | | <!-- type="warning"--> |
| | | <!-- plain--> |
| | | <!-- icon="el-icon-download"--> |
| | | <!-- size="mini"--> |
| | | <!-- @click="handleExport"--> |
| | | <!-- v-hasPermi="['om:productionOrde:export']"--> |
| | | <!-- >导出</el-button>--> |
| | | <!-- </el-col>--> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="primary" |
| | | type="warning" |
| | | plain |
| | | icon="el-icon-plus" |
| | | icon="el-icon-download" |
| | | size="mini" |
| | | @click="handleAdd" |
| | | v-hasPermi="['om:productionOrde:add']" |
| | | >新增</el-button> |
| | | @click="getWorkOrders" |
| | | >接收</el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="success" |
| | | type="warning" |
| | | plain |
| | | icon="el-icon-edit" |
| | | icon="el-icon-download" |
| | | size="mini" |
| | | :disabled="single" |
| | | @click="handleUpdate" |
| | | v-hasPermi="['om:productionOrde:edit']" |
| | | >修改</el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="danger" |
| | | plain |
| | | icon="el-icon-delete" |
| | | size="mini" |
| | | :disabled="multiple" |
| | | @click="handleDelete" |
| | | v-hasPermi="['om:productionOrde:remove']" |
| | | >删除</el-button> |
| | | @click="patchwork" |
| | | >补打</el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | |
| | | plain |
| | | icon="el-icon-download" |
| | | size="mini" |
| | | @click="handleExport" |
| | | v-hasPermi="['om:productionOrde:export']" |
| | | >导出</el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="warning" |
| | | plain |
| | | icon="el-icon-upload2" |
| | | :disabled="move" |
| | | size="mini" |
| | | @click="moveUp(val => val, 'up')" |
| | | >上移</el-button> |
| | | :disabled="onlineSingle" |
| | | @click="onlineWorkReporting" |
| | | >上线报工</el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | |
| | | plain |
| | | icon="el-icon-download" |
| | | size="mini" |
| | | :disabled="move" |
| | | @click="moveUp(val => val, 'down')" |
| | | >下移</el-button> |
| | | :disabled="offlineSingle" |
| | | @click="offlineWorkReporting" |
| | | >下线报工</el-button> |
| | | </el-col> |
| | | <!-- <el-col :span="1.5">--> |
| | | <!-- <el-button--> |
| | | <!-- type="warning"--> |
| | | <!-- plain--> |
| | | <!-- icon="el-icon-download"--> |
| | | <!-- size="mini"--> |
| | | <!-- :disabled="single"--> |
| | | <!-- @click="jieBang"--> |
| | | <!-- >解绑</el-button>--> |
| | | <!-- </el-col>--> |
| | | <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> |
| | | </el-row> |
| | | |
| | | <el-table border v-loading="loading" :data="productionOrdeList" @selection-change="handleSelectionChange"> |
| | | <el-table-column type="selection" width="55" align="center" /> |
| | | <el-table-column label="生产工单号" width="160" align="center"> |
| | | <!-- <el-table-column label="生产工单号" width="160" align="center">--> |
| | | <!-- <template slot-scope="scope">--> |
| | | <!-- <router-link :to="{path: '/main/workReport-data/index/', query: {workOrderNo: scope.row.workOrderNo} }" class="link-type">--> |
| | | <!-- <span>{{ scope.row.workOrderNo }}</span>--> |
| | | <!-- </router-link>--> |
| | | <!-- </template>--> |
| | | <!-- </el-table-column>--> |
| | | <el-table-column label="生产工单号" width="160" align="center" prop="workOrderNo"> |
| | | </el-table-column> |
| | | <!-- <el-table-column label="订单编号" width="140" align="center" prop="salesOrderCode">--> |
| | | <!-- </el-table-column>--> |
| | | <el-table-column :show-overflow-tooltip='true' label="pack码" width="220" align="center" prop="productNum"> |
| | | </el-table-column> |
| | | <el-table-column :show-overflow-tooltip='true' label="小车码" width="160" align="center" prop="trolleyYard"> |
| | | </el-table-column> |
| | | <el-table-column label="产品型号" width="110" align="center" prop="productCode"> |
| | | </el-table-column> |
| | | <el-table-column label="产品名称" width="120" align="center" prop="productName"> |
| | | </el-table-column> |
| | | <el-table-column label="上线是否报工" align="center" width="120"> |
| | | <template slot-scope="scope"> |
| | | <router-link :to="{path: '/main/workReport-data/index/', query: {workOrderNo: scope.row.workOrderNo} }" class="link-type"> |
| | | <span>{{ scope.row.workOrderNo }}</span> |
| | | </router-link> |
| | | <dict-tag :options="dict.type.work_reporting_status" :value="scope.row.onlineCompletionMark"/> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="订单编号" width="140" align="center" prop="salesOrderCode"> |
| | | </el-table-column> |
| | | <el-table-column label="产品编号" width="140" align="center" prop="productCode"> |
| | | </el-table-column> |
| | | <el-table-column label="产品名称" width="160" align="center" prop="productName"> |
| | | </el-table-column> |
| | | <el-table-column label="工单状态" align="center" prop="orderStatus"> |
| | | <template slot-scope="scope"> |
| | | <dict-tag :options="dict.type.order_state" :value="scope.row.orderStatus"/> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="车间编号" align="center" prop="workshopCode"> |
| | | </el-table-column> |
| | | <el-table-column label="产线编号" align="center" prop="lineCode"> |
| | | </el-table-column> |
| | | <el-table-column label="工艺流程" width="140" align="center" prop="routeCode"> |
| | | </el-table-column> |
| | | <el-table-column label="产品BOM" width="140" align="center" prop="bomCode"> |
| | | </el-table-column> |
| | | <el-table-column label="工艺配方" width="140" align="center" prop="recipeCode"> |
| | | </el-table-column> |
| | | <el-table-column label="计划数量" align="center" prop="planQty"> |
| | | </el-table-column> |
| | | <el-table-column label="实际数量" align="center" prop="actualQty"> |
| | | </el-table-column> |
| | | <el-table-column label="实际上线数量" width="100" align="center" prop="actualOnlineQty"> |
| | | </el-table-column> |
| | | <el-table-column label="需求日期" align="center" prop="demandDate" width="180"> |
| | | </el-table-column> |
| | | <el-table-column label="计划开始时间" width="160" align="center" prop="planStartTime"> |
| | | </el-table-column> |
| | | <el-table-column label="计划结束时间" width="160" align="center" prop="planEndTime"> |
| | | </el-table-column> |
| | | <el-table-column label="实际开始时间" width="160" align="center" prop="actualStartTime"> |
| | | </el-table-column> |
| | | <el-table-column label="实际结束时间" width="160" align="center" prop="actualEndTime"> |
| | | </el-table-column> |
| | | <el-table-column width="160" label="创建时间" align="center" prop="createTime"> |
| | | </el-table-column> |
| | | <el-table-column width="160" label="更新时间" align="center" prop="updateTime"> |
| | | </el-table-column> |
| | | <el-table-column label="创建人" width="80" align="center" prop="createUser"> |
| | | </el-table-column> |
| | | <el-table-column label="修改人" width="80" align="center" prop="updateUser"> |
| | | </el-table-column> |
| | | <el-table-column label="备注" width="100" align="center" prop="remarks"> |
| | | </el-table-column> |
| | | <el-table-column label="流水号" align="center" prop="streamNumber"> |
| | | </el-table-column> |
| | | <el-table-column label="客户" width="80" align="center" prop="custom"> |
| | | </el-table-column> |
| | | <el-table-column fixed="right" width="350" label="操作" align="center" class-name="small-padding fixed-width"> |
| | | <el-table-column label="下线是否报工" width="120" align="center"> |
| | | <template slot-scope="scope"> |
| | | <!-- 工单状态(1创建、2已发布、3生产中、4已冻结、5已完工、6已关闭) --> |
| | | <el-button type="success" :disabled="scope.row.orderStatus !== '1'" style="width: 72px" plain @click="handleCommand('3',scope.row.id)" size="mini">开始</el-button> |
| | | <el-button style="width: 72px" :disabled="scope.row.orderStatus !== '2' && scope.row.orderStatus !== '3'" v-if="scope.row.orderStatus !== '2'&& scope.row.orderStatus !== '4'" plain @click="handleCommand('4',scope.row.id)" type="warning" size="mini">冻结</el-button> |
| | | <el-button style="width: 72px" :disabled="scope.row.orderStatus !== '4'" v-if="scope.row.orderStatus === '4'" plain @click="handleCommand('3',scope.row.id)" type="warning" size="mini">解冻</el-button> |
| | | <el-button style="width: 72px" :disabled="scope.row.orderStatus !== '1'" plain @click="handleCommand('6',scope.row.id)" v-if="scope.row.orderStatus === '1'||scope.row.orderStatus === '3'||scope.row.orderStatus === '4'||scope.row.orderStatus === '5'" type="danger" size="mini">关闭</el-button> |
| | | <el-button style="width: 72px" :disabled="scope.row.orderStatus !== '6'" plain @click="handleCommand('1',scope.row.id)" v-if="scope.row.orderStatus === '6' " type="success" size="mini">启用</el-button> |
| | | <!-- <el-button--> |
| | | <!-- :disabled="scope.row.orderStatus !== '1'"--> |
| | | <!-- size="mini"--> |
| | | <!-- type="success"--> |
| | | <!-- style="width: 72px"--> |
| | | <!-- icon="el-icon-edit"--> |
| | | <!-- @click="handleUpdate(scope.row)"--> |
| | | <!-- v-hasPermi="['om:productionOrde:edit']"--> |
| | | <!-- >修改</el-button>--> |
| | | <!-- <el-button--> |
| | | <!-- :disabled="scope.row.orderStatus !== '1'"--> |
| | | <!-- size="mini"--> |
| | | <!-- type="warning"--> |
| | | <!-- style="width: 72px"--> |
| | | <!-- icon="el-icon-delete"--> |
| | | <!-- @click="handleDelete(scope.row)"--> |
| | | <!-- v-hasPermi="['om:productionOrde:remove']"--> |
| | | <!-- >删除</el-button>--> |
| | | <el-button style="width: 72px" :disabled="scope.row.orderStatus === '4'||scope.row.orderStatus === '6'" v-if="scope.row.orderStatus !== '5'" @click="handleCommand('5',scope.row.id)" type="success" size="mini">完成</el-button> |
| | | <el-button style="width: 72px" :disabled="scope.row.orderStatus === '5'" v-if="scope.row.orderStatus === '5'" type="success" size="mini">已完工</el-button> <el-button style="width: 72px" :disabled="scope.row.orderStatus !== '6'" plain @click="handleCommand('1',scope.row.id)" v-if="scope.row.orderStatus === '6' " type="success" size="mini">启用</el-button> |
| | | <dict-tag :options="dict.type.work_reporting_status" :value="scope.row.sfResult"/> |
| | | </template> |
| | | </el-table-column> |
| | | <!-- <el-table-column width="240" fixed="right" label="操作" align="center" class-name="small-padding fixed-width">--> |
| | | <!-- <template slot-scope="scope">--> |
| | | <!-- <el-button--> |
| | | <!-- size="mini"--> |
| | | <!-- type="success"--> |
| | | <!-- plain--> |
| | | <!-- style="width: 72px"--> |
| | | <!-- @click="onlineWorkReporting(scope.row)"--> |
| | | <!-- :disabled="isEditDisabled(scope.row.onlineCompletionMark)"--> |
| | | <!-- >上线报工</el-button>--> |
| | | <!-- <el-button--> |
| | | <!-- size="mini"--> |
| | | <!-- plain--> |
| | | <!-- style="width: 72px"--> |
| | | <!-- type="danger"--> |
| | | <!-- @click="offlineWorkReporting(scope.row)"--> |
| | | <!-- :disabled="isEditDisabled(scope.row.sfResult)"--> |
| | | <!-- >下线报工</el-button>--> |
| | | <!-- </template>--> |
| | | <!-- </el-table-column>--> |
| | | </el-table> |
| | | </el-card> |
| | | |
| | |
| | | /> |
| | | |
| | | <!-- 添加或修改生产工单对话框 --> |
| | | <el-dialog v-dialogpop-up :title="title" :visible.sync="open" width="1000px" append-to-body> |
| | | <el-dialog v-dialogpop-up :title="title" :visible.sync="open" width="500px" append-to-body> |
| | | <span slot="title"> |
| | | <i class="el-icon-s-order"></i> |
| | | {{titleName}} |
| | | </span> |
| | | <el-form ref="form" inline :model="form" :rules="rules" label-width="80px"> |
| | | <el-form-item label="工单号" prop="workOrderNo"> |
| | | <el-input v-model="form.workOrderNo" placeholder="请输入生产工单号" /> |
| | | <el-form ref="form" inline :model="form" :rules="rules" label-width="100px"> |
| | | <el-form-item label="生产工单号" prop="workOrderNo"> |
| | | <el-input style="width: 265px" v-model="form.workOrderNo" placeholder="请输入生产工单号" /> |
| | | </el-form-item> |
| | | <el-form-item label="订单编号" prop="salesOrderCode"> |
| | | <el-input v-model="form.salesOrderCode" placeholder="请输入订单编号" /> |
| | | <el-input style="width: 265px" v-model="form.salesOrderCode" placeholder="请输入订单编号" /> |
| | | </el-form-item> |
| | | <el-form-item label="产品编号" prop="productCode"> |
| | | <el-form-item label="产品序列号" prop="productNum"> |
| | | <el-input v-model="form.productCode" placeholder="请选择产品" > |
| | | <el-button slot="append" @click="handleSelectProduct" icon="el-icon-search"></el-button> |
| | | </el-input> |
| | | <ItemSelect ref="itemSelect" @onSelected="onItemSelected" > </ItemSelect> |
| | | </el-form-item> |
| | | <el-form-item label="产品名称" prop="productName"> |
| | | <el-input v-model="form.productName" disabled placeholder="请输入产品名称" /> |
| | | <el-input style="width: 265px" v-model="form.productName" disabled placeholder="请输入产品名称" /> |
| | | </el-form-item> |
| | | <el-form-item label="车间编号" prop="workshopCode"> |
| | | <el-select style="width: 93%" @change="handleSelectChange(form.workshopCode)" v-model="form.workshopCode" placeholder="请选择车间编号"> |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.workshopCode" |
| | | :label="item.workshopName" |
| | | :value="item.workshopCode"> |
| | | </el-option> |
| | | </el-select> |
| | | <el-form-item label="产品型号" prop="productModel"> |
| | | <el-input v-model="form.productModel" placeholder="请输入产品型号" /> |
| | | </el-form-item> |
| | | <el-form-item style="margin-left: -15px" label="产线编号" prop="lineCode"> |
| | | <el-select style="width: 93%" v-model="form.lineCode" placeholder="请选择产线编号"> |
| | | <el-option |
| | | v-for="item in lineOptions" |
| | | :key="item.lineCode" |
| | | :label="item.lineName" |
| | | :value="item.lineCode"> |
| | | </el-option> |
| | | </el-select> |
| | | <el-form-item label="工厂编号" prop="siteCode"> |
| | | <el-input style="width: 265px" v-model="form.siteCode" placeholder="请输入工厂编号" /> |
| | | </el-form-item> |
| | | <el-form-item label="工艺流程" prop="routeCode"> |
| | | <el-input v-model="form.routeCode" disabled placeholder="请输入工艺流程" /> |
| | | <el-form-item label="工站编号" prop="stationCode"> |
| | | <el-input style="width: 265px"v-model="form.stationCode" placeholder="请输入工站编号" /> |
| | | </el-form-item> |
| | | <el-form-item label="产品BOM" prop="bomCode"> |
| | | <el-input v-model="form.bomCode" disabled placeholder="请输入产品BOM" /> |
| | | <el-form-item label="备注" prop="remarks"> |
| | | <el-input style="width: 265px" v-model="form.remarks" placeholder="请输入备注" /> |
| | | </el-form-item> |
| | | <el-form-item label="工艺配方" prop="recipeCode"> |
| | | <el-input v-model="form.recipeCode" placeholder="请输入工艺配方" /> |
| | | </el-form-item> |
| | | <el-form-item label="计划数量" prop="planQty"> |
| | | <el-input v-model="form.planQty" placeholder="请输入计划数量" /> |
| | | </el-form-item> |
| | | <el-form-item label="需求日期" prop="demandDate"> |
| | | <el-date-picker style="width: 88%" clearable |
| | | v-model="form.demandDate" |
| | | type="date" |
| | | value-format="yyyy-MM-dd" |
| | | placeholder="请选择需求日期"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item style="margin-left: -30px" label="备注" prop="remarks"> |
| | | <el-input v-model="form.remarks" placeholder="请输入备注" /> |
| | | </el-form-item> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item style="margin-left: 10px" label-width="120" label="计划开始时间" prop="planStartTime"> |
| | | <el-date-picker clearable |
| | | v-model="form.planStartTime" |
| | | type="date" |
| | | value-format="yyyy-MM-dd" |
| | | placeholder="请选择计划开始时间"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item style="margin-left: 76px" label-width="120" label="计划结束时间" prop="planEndTime"> |
| | | <el-date-picker clearable |
| | | v-model="form.planEndTime" |
| | | type="date" |
| | | value-format="yyyy-MM-dd" |
| | | placeholder="请选择计划结束时间"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | | |
| | | </el-row> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="submitForm">确 定</el-button> |
| | |
| | | </div> |
| | | </el-dialog> |
| | | |
| | | <!-- 用户导入对话框 --> |
| | | <el-dialog :title="upload.title" :visible.sync="upload.open" width="400px"> |
| | | <el-upload |
| | | ref="upload" |
| | | :limit="1" |
| | | accept=".xlsx, .xls" |
| | | :headers="upload.headers" |
| | | :action="upload.url + '?updateSupport=' + upload.updateSupport" |
| | | :disabled="upload.isUploading" |
| | | :on-progress="handleFileUploadProgress" |
| | | :on-success="handleFileSuccess" |
| | | :auto-upload="false" |
| | | drag |
| | | > |
| | | <i class="el-icon-upload"></i> |
| | | <div class="el-upload__text"> |
| | | 将文件拖到此处,或 |
| | | <em>点击上传</em> |
| | | </div> |
| | | <div class="el-upload__tip" slot="tip"> |
| | | <el-checkbox v-model="upload.updateSupport" />是否更新已经存在的用户数据 |
| | | <el-link type="info" style="font-size:12px" @click="importTemplate">下载模板</el-link> |
| | | </div> |
| | | <div class="el-upload__tip" style="color:red" slot="tip">提示:仅允许导入“xls”或“xlsx”格式文件!</div> |
| | | </el-upload> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="submitFileForm">确 定</el-button> |
| | | <el-button @click="upload.open = false">取 消</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { getToken } from "@/utils/auth"; |
| | | import { listLineInfo } from "@/api/main/bs/lineInfo/lineInfo"; |
| | | import { listWorkshop } from "@/api/main/bs/workshop/workshop"; |
| | | import { listProductBom } from "@/api/main/bs/ProductBom/ProductBom"; |
| | | import {getProductBom, listProductBom} from "@/api/main/bs/ProductBom/ProductBom"; |
| | | import { listTechnologyRoute} from "@/api/main/bs/technologyRoute/technologyRoute"; |
| | | import ItemSelect from "@/components/itemSelect/single.vue"; |
| | | import { upDownMove, listProductionOrde, getProductionOrde, delProductionOrde, addProductionOrde, updateProductionOrde } from "@/api/main/om/productionOrde/productionOrde"; |
| | | import { |
| | | importTemplate, |
| | | upDownMove, |
| | | listProductionOrde, |
| | | getProductionOrde, |
| | | delProductionOrde, |
| | | addProductionOrde, |
| | | updateProductionOrde, |
| | | receivingWorkOrders, jieBang, workReportingByStation |
| | | } from "@/api/main/om/productionOrde/productionOrde"; |
| | | import QRCode from "qrcodejs2"; |
| | | |
| | | export default { |
| | | name: "ProductionOrde", |
| | | dicts: ['order_state'], |
| | | dicts: ['order_state','work_reporting_status'], |
| | | components: { |
| | | ItemSelect , |
| | | }, |
| | | data() { |
| | | return { |
| | | // packCode: '0RSPB001139E3AE4X0000011', |
| | | packCode: 'test111', |
| | | titleName: '', |
| | | options: [], |
| | | lineOptions: [], |
| | |
| | | ids: [], |
| | | // 非单个禁用 |
| | | single: true, |
| | | onlineSingle: true, |
| | | offlineSingle: true, |
| | | // 非多个禁用 |
| | | multiple: true, |
| | | move: true, |
| | |
| | | frontEndId: 0, |
| | | idNums: null, |
| | | flag: null, |
| | | siteCode: null, |
| | | productNum: null, |
| | | stationCode: null, |
| | | resultText: null, |
| | | resultCode: null, |
| | | sfResult: null, |
| | | productModel: null |
| | | |
| | | }, |
| | | // 表单参数 |
| | |
| | | id: [ |
| | | { required: true, message: "ID不能为空", trigger: "blur" } |
| | | ], |
| | | } |
| | | }, |
| | | // 用户导入参数 |
| | | upload: { |
| | | // 是否显示弹出层(用户导入) |
| | | open: false, |
| | | // 弹出层标题(用户导入) |
| | | title: "", |
| | | // 是否禁用上传 |
| | | isUploading: false, |
| | | // 是否更新已经存在的用户数据 |
| | | updateSupport: 0, |
| | | // 设置上传的请求头部 |
| | | headers: { Authorization: "Bearer " + getToken() }, |
| | | // 上传的地址 |
| | | url: process.env.VUE_APP_BASE_API + "/om/productionOrde/importData" |
| | | }, |
| | | }; |
| | | }, |
| | | created() { |
| | | this.getList(); |
| | | this.initWorkshop(); |
| | | }, |
| | | mounted() { |
| | | this.test1() |
| | | }, |
| | | methods: { |
| | | moveUp(row, val){ |
| | | console.log(val) |
| | | const ids = row.id || this.ids |
| | | let str = JSON.stringify(ids); |
| | | let num = BigInt(str.replace(/[\[\]]/g, '')); |
| | | this.queryParams.frontEndId = num |
| | | this.queryParams.idNums = ids |
| | | this.queryParams.flag = val |
| | | upDownMove(this.queryParams).then(response => { |
| | | this.$modal.msgSuccess("移动成功"); |
| | | this.getList(); |
| | | onlineWorkReporting(row){ |
| | | const id = row.id || this.ids |
| | | const stationCode = "POP230" |
| | | workReportingByStation(id,stationCode).then(response => { |
| | | this.getList() |
| | | }); |
| | | }, |
| | | offlineWorkReporting(row){ |
| | | const id = row.id || this.ids |
| | | const stationCode = "POP430" |
| | | workReportingByStation(id,stationCode).then(response => { |
| | | this.getList() |
| | | }); |
| | | }, |
| | | jieBang(row){ |
| | | const id = row.id || this.ids |
| | | jieBang(id).then(response => { |
| | | this.getList() |
| | | this.$modal.msgSuccess("解绑成功"); |
| | | }); |
| | | }, |
| | | patchwork(row){ |
| | | const id = row.id || this.ids |
| | | getProductionOrde(id).then(response => { |
| | | console.log(response.data) |
| | | this.packCode = response.data.productNum |
| | | console.log(this.packCode) |
| | | this.test1() |
| | | setTimeout(() => { |
| | | this.print() |
| | | },50) |
| | | }); |
| | | }, |
| | | async getWorkOrders(){ |
| | | await receivingWorkOrders().then(response => { |
| | | this.getList() |
| | | this.packCode = response.msg; |
| | | this.test1() |
| | | }); |
| | | setTimeout(() => { |
| | | this.print() |
| | | },50) |
| | | }, |
| | | print() { |
| | | // 本页面直接打印(有bug单岁先不要删) |
| | | // let oldStr = window.document.body.innerHTML; |
| | | // let newStr = document.getElementById('printMe').innerHTML; |
| | | // document.body.innerHTML = newStr; |
| | | // window.print(); |
| | | // document.body.innerHTML = oldStr; |
| | | // return false; |
| | | |
| | | // 新开页面打印 |
| | | // document.getElementById('canvasWrapper').innerHTML = ''; |
| | | let newStr = document.getElementById('printMe').innerHTML; |
| | | let newWin = window.open('', '_blank'); |
| | | newWin.document.body.innerHTML = newStr; |
| | | newWin.print(); |
| | | return false; |
| | | }, |
| | | test1(){ |
| | | document.getElementById('canvasWrapper').innerHTML = '' |
| | | this.$nextTick(() => { |
| | | let qrCode = new QRCode('canvasWrapper',{ |
| | | width: 80, |
| | | height: 80, |
| | | padding: 0, |
| | | margin: 0, |
| | | text: this.packCode, |
| | | colorDark: '#000', |
| | | colorLight: '#fff' |
| | | }) |
| | | }) |
| | | // console.log(this.packCode) |
| | | // this.print() |
| | | }, |
| | | /** 导入按钮操作 */ |
| | | handleImport() { |
| | | this.upload.title = "订单信息导入"; |
| | | this.upload.open = true; |
| | | }, |
| | | /** 下载模板操作 */ |
| | | importTemplate() { |
| | | this.download('om/productionOrde/importTemplate', { |
| | | }, `productionOrde_template_${new Date().getTime()}.xlsx`) |
| | | }, |
| | | // 文件上传中处理 |
| | | handleFileUploadProgress(event, file, fileList) { |
| | | this.upload.isUploading = true; |
| | | }, |
| | | // 文件上传成功处理 |
| | | handleFileSuccess(response, file, fileList) { |
| | | this.upload.open = false; |
| | | this.upload.isUploading = false; |
| | | this.$refs.upload.clearFiles(); |
| | | this.$alert(response.msg, "导入结果", { dangerouslyUseHTMLString: true }); |
| | | this.getList(); |
| | | }, |
| | | // 提交上传文件 |
| | | submitFileForm() { |
| | | this.$refs.upload.submit(); |
| | | }, |
| | | initWorkshop(){ |
| | | listWorkshop(this.queryParams).then(response => { |
| | |
| | | marketAreaCode: null, |
| | | softwareVersionCode: null, |
| | | productCompanyCode: null, |
| | | spareField1: null, |
| | | trolleyYard: null, |
| | | spareField2: null, |
| | | spareField3: null, |
| | | spareField4: null |
| | | spareField4: null, |
| | | siteCode: null, |
| | | productNum: null, |
| | | stationCode: null, |
| | | resultText: null, |
| | | resultCode: null, |
| | | sfResult: null |
| | | }; |
| | | this.resetForm("form"); |
| | | }, |
| | |
| | | this.handleQuery(); |
| | | }, |
| | | // 多选框选中数据 |
| | | // handleSelectionChange(selection) { |
| | | // this.ids = selection.map(item => item.id) |
| | | // this.move = selection.length!==1 |
| | | // if(!selection.length){ |
| | | // this.single = true |
| | | // this.multiple = true |
| | | // }else { |
| | | // if(selection[0].orderStatus === '1' && selection.length === 1){ |
| | | // this.single = false |
| | | // this.multiple = false |
| | | // } |
| | | // } |
| | | // |
| | | // }, |
| | | // 多选框选中数据 |
| | | handleSelectionChange(selection) { |
| | | this.ids = selection.map(item => item.id) |
| | | this.move = selection.length!==1 |
| | | if(!selection.length){ |
| | | this.single = true |
| | | this.multiple = true |
| | | }else { |
| | | if(selection[0].orderStatus === '1' && selection.length === 1){ |
| | | this.single = false |
| | | this.multiple = false |
| | | this.single = selection.length!==1 |
| | | this.multiple = !selection.length |
| | | this.onlineSingle = selection.length!==1 |
| | | this.offlineSingle = selection.length!==1 |
| | | |
| | | if(selection.length === 0){ |
| | | this.onlineSingle = true |
| | | this.offlineSingle = true |
| | | } |
| | | if(selection.length === 1){ |
| | | if(selection[0].onlineCompletionMark === '2'){ |
| | | this.onlineSingle = false |
| | | }else { |
| | | this.onlineSingle = true |
| | | } |
| | | if(selection[0].sfResult === '2'){ |
| | | this.offlineSingle = false |
| | | }else { |
| | | this.offlineSingle = true |
| | | } |
| | | } |
| | | |
| | | }, |
| | | /** 新增按钮操作 */ |
| | | handleAdd() { |