|
|
@@ -1,893 +0,0 @@
|
|
|
-<template>
|
|
|
- <div>
|
|
|
- <div class="title_box rx-bc mt6">
|
|
|
-
|
|
|
- <div class="name">报工信息({{ list.length || 0 }})个 </div>
|
|
|
-
|
|
|
- <div class="rx-bc"><el-button type="text" size="mini" @click="batchDelete()">批量删除</el-button> </div>
|
|
|
- </div>
|
|
|
- <el-table ref="oneJobQualityBom" class="table_content" :max-height="600" :data="list" tooltip-effect="dark"
|
|
|
- style="width: 100%" stripe border @selection-change="tableDataSelectChange">
|
|
|
- <el-table-column
|
|
|
- type="selection"
|
|
|
- align="center"
|
|
|
- width="55">
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="序号" type="index" width="55">
|
|
|
- <template slot-scope="{ row, $index }">
|
|
|
- {{ $index + 1 }}
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- <el-table-column label="编码" prop="code" minWidth="110">
|
|
|
- <template slot-scope="{ row, $index }">
|
|
|
- {{ row.code }}
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
-
|
|
|
- <el-table-column label="名称" prop="name" minWidth="140">
|
|
|
- <template slot-scope="{ row, $index }">
|
|
|
- {{ row.name }}
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="物品分类" type="rootCategoryLevelId" minWidth="90">
|
|
|
- <template slot-scope="{ row, $index }">
|
|
|
- {{
|
|
|
- row.rootCategoryLevelId == 2
|
|
|
- ? '在制品'
|
|
|
- : row.rootCategoryLevelId == 23
|
|
|
- ? '半成品'
|
|
|
- : row.rootCategoryLevelId == 9
|
|
|
- ? '产品'
|
|
|
- : item.rootCategoryLevelId == 28
|
|
|
- ? '废品'
|
|
|
- : ''
|
|
|
- }}
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- <el-table-column v-if="singleReport == 1" label="刻码" prop="engrave">
|
|
|
- <template slot-scope="{ row, $index }">
|
|
|
- <span v-if="isDetails">{{ row.extInfo.engrave }}</span>
|
|
|
- <el-input v-else size="mini" class="content_num" v-model="row.extInfo.engrave" placeholder="刻码" />
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="序列号" prop="productSequence">
|
|
|
- <template slot-scope="{ row, $index }">
|
|
|
- {{ row.extInfo?.productSequence }}
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="发货条码" prop="sendCode">
|
|
|
- <template slot-scope="{ row, $index }">
|
|
|
- <el-input size="mini" class="content_num" v-model="row.extInfo.sendCode" placeholder="发货条码"
|
|
|
- :disabled="isDetails" />
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column v-if="singleReport == 1" label="物料代号" prop="materielCode">
|
|
|
- <template slot-scope="{ row, $index }">
|
|
|
- <span v-if="isDetails">{{ row.extInfo.materielCode }}</span>
|
|
|
- <el-input v-else size="mini" class="content_num" v-model="row.extInfo.materielCode" placeholder="物料代号" />
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="客户代号" prop="clientCode" v-if="item.singleReport == 1">
|
|
|
- <template slot-scope="{ row, $index }">
|
|
|
- <span v-if="isDetails"> {{ row.extInfo.clientCode }}</span>
|
|
|
- <el-input
|
|
|
- v-else
|
|
|
- size="mini"
|
|
|
- class="content_num"
|
|
|
- v-model="row.extInfo.clientCode"
|
|
|
- placeholder="请输入客户代号"
|
|
|
- />
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
-
|
|
|
-
|
|
|
- <el-table-column v-if="singleReport == 1 && deviceList.length > 0" width="140" label="设备" prop="deviceId">
|
|
|
- <template slot-scope="{ row, $index }">
|
|
|
- <el-select
|
|
|
- class="content_num"
|
|
|
- v-model="row.deviceId"
|
|
|
- filterable
|
|
|
- placeholder="请选择"
|
|
|
- @change="(e) => selectVal(e, row, $index)"
|
|
|
- size="mini"
|
|
|
- :disabled="isDetails"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in deviceList"
|
|
|
- :label="item.name + '-' + item.codeNumber"
|
|
|
- :value="item.id || item.instanceId"
|
|
|
- :key="item.id || item.instanceId"
|
|
|
- >
|
|
|
- </el-option>
|
|
|
- </el-select>
|
|
|
- <!-- {{ row.deviceName || row.extInfo.deviceName }} -->
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
-
|
|
|
- <el-table-column v-if="singleReport == 1 && deviceList.length > 0" label="炉次号" width="90" prop="heatNumber">
|
|
|
- <template slot-scope="{ row, $index }">
|
|
|
- <el-input size="mini" class="content_num" v-model="row.extInfo.heatNumber" placeholder="请输入炉次号" :disabled="isDetails"/>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
-
|
|
|
- <el-table-column v-if="singleReport == 1" label="数量" width="90" prop="feedQuantity">
|
|
|
- <template slot-scope="{ row, $index }">
|
|
|
- <el-input size="mini" class="content_num" v-model="row.feedQuantity" :disabled="isDetails" placeholder="数量" />
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
-
|
|
|
- <el-table-column v-if="singleReport == 1" label="位置" width="110" prop="position">
|
|
|
- <template slot-scope="{ row, $index }">
|
|
|
- <span v-if="isDetails">{{ row.extInfo.position }}</span>
|
|
|
- <el-input v-else size="mini" class="content_num" v-model="row.extInfo.position" placeholder="位置" />
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
-
|
|
|
- <el-table-column v-if="singleReport == 1" label="上道工序重量" width="180" prop="weight">
|
|
|
- <template slot-scope="{ row, $index }">
|
|
|
- <div style="display: flex;align-items: center">
|
|
|
- <div class="tag_box">{{ row.extInfo.newWeight ? '上' : '原' }}</div>
|
|
|
- <span v-if="Object.prototype.hasOwnProperty.call(row.extInfo, 'newWeight')">{{
|
|
|
- row.extInfo.newWeight
|
|
|
- }}</span>
|
|
|
-
|
|
|
- <el-input v-if="!Object.prototype.hasOwnProperty.call(row.extInfo, 'newWeight')" size="mini"
|
|
|
- class="content_num2" style="width: 100px;" v-model="row.extInfo.weight" :disabled="isDetails"
|
|
|
- prop="digit" />
|
|
|
- <div style="width: 55px;">{{ row.weightUnit }}</div>
|
|
|
- </div>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
-
|
|
|
- <el-table-column v-if="singleReport == 1" label="报工重量" width="150" prop="reportWeight">
|
|
|
- <template slot-scope="{ row, $index }">
|
|
|
- <div style="display: flex;align-items: center">
|
|
|
- <span v-if="isDetails">{{ row.extInfo.reportWeight }}</span>
|
|
|
- <el-input v-else size="mini" class="content_num" type="number" v-model="row.extInfo.reportWeight"
|
|
|
- placeholder="报工重量" prop="digit" @input="handleInput" />
|
|
|
- <div style="width: 55px;">{{ row.weightUnit }}</div>
|
|
|
- </div>
|
|
|
-
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
-
|
|
|
- <el-table-column v-if="singleReport == 1" label="是否合格" width="110" prop="isQualified">
|
|
|
- <template slot-scope="{ row, $index }">
|
|
|
- <el-select size="mini" class="content_num" v-model="row.extInfo.isQualified" @change="handlerSelect"
|
|
|
- filterable placeholder="请选择" :disabled="isDetails">
|
|
|
- <el-option v-for="item in isQualifiedList" :label="item.name" :value="item.code" :key="item.code">
|
|
|
- </el-option>
|
|
|
- </el-select>
|
|
|
-
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
-
|
|
|
-
|
|
|
- <el-table-column v-if="singleReport == 1" label="不合格品处置类型" width="160" prop="notType">
|
|
|
- <template slot-scope="{ row, $index }">
|
|
|
- <el-select v-if="row.extInfo.isQualified && row.extInfo.isQualified == 2" size="mini" class="content_num"
|
|
|
- v-model="row.extInfo.notType" filterable placeholder="请选择" :disabled="isDetails">
|
|
|
- <el-option v-for="item in notTypeList" :label="item.name" :value="item.code" :key="item.code">
|
|
|
- </el-option>
|
|
|
- </el-select>
|
|
|
-
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
-
|
|
|
-
|
|
|
- <!-- <el-table-column
|
|
|
- label="质检结果"
|
|
|
- width="80"
|
|
|
- prop=""
|
|
|
- v-if="item.currentTaskDiagram.isFirstTask == 1"
|
|
|
- >
|
|
|
- <template slot-scope="{ row, $index }">
|
|
|
- <div @click="openNumerate(row, $index)" v-if="![1,2,3,4].includes(Number(row.extInfo.notType))">
|
|
|
- <div class="numerate">点击计算</div>
|
|
|
- </div>
|
|
|
- </template>
|
|
|
- </el-table-column> -->
|
|
|
- <!-- label="/" -->
|
|
|
- <el-table-column width="130" prop="taskName">
|
|
|
- <template slot="header" slot-scope="scope">
|
|
|
- <div>
|
|
|
- 不良原因<span style="color: #f00;padding: 0 2px;">/</span>处置
|
|
|
- </div>
|
|
|
- </template>
|
|
|
- <template slot-scope="{ row, $index }">
|
|
|
- <div v-if="row.extInfo.isQualified != 1 && row.extInfo.notType && row.extInfo.notType != 5">
|
|
|
- <span v-if="isDetails">{{ row.extInfo.notReason }}</span>
|
|
|
- <el-input v-else size="mini" class="content_num" v-model="row.extInfo.notReason" placeholder="原因" />
|
|
|
- </div>
|
|
|
- <div v-if="![1, 2, 3, 4].includes(Number(row.extInfo.notType))">
|
|
|
- <span v-if="isDetails">{{ row.extInfo.taskName }}</span>
|
|
|
- <el-select v-else size="mini" class="content_num" v-model="row.extInfo.taskId" filterable placeholder="请选择"
|
|
|
- @change="(e) => selectName(e, $index)">
|
|
|
- <el-option v-for="item in stepsList" :label="item.taskTypeName" :value="item.taskId" :key="item.taskId">
|
|
|
- </el-option>
|
|
|
- </el-select>
|
|
|
- </div>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
-
|
|
|
- <el-table-column label="次数" prop="index" width="80">
|
|
|
- <template slot-scope="{ row, $index }">
|
|
|
- <div class="tag_box" v-if="
|
|
|
- Object.prototype.hasOwnProperty.call(row, 'extInfo') &&
|
|
|
- Object.prototype.hasOwnProperty.call(
|
|
|
- row.extInfo,
|
|
|
- 'productionTimes'
|
|
|
- ) &&
|
|
|
- Object.prototype.hasOwnProperty.call(
|
|
|
- row.extInfo.productionTimes,
|
|
|
- item.currentTaskDiagram.taskId
|
|
|
- )
|
|
|
- ">
|
|
|
- {{ row.extInfo.productionTimes[item.currentTaskDiagram.taskId] }}
|
|
|
- </div>
|
|
|
-
|
|
|
- <div class="tag_box" v-if="row.isCache">缓</div>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
-
|
|
|
- <el-table-column label="型号" prop="modelType">
|
|
|
- <template slot-scope="{ row, $index }">
|
|
|
- {{ row.modelType }}
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
-
|
|
|
- <el-table-column label="规格" prop="specification">
|
|
|
- <template slot-scope="{ row, $index }">
|
|
|
- {{ row.specification }}
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
-
|
|
|
- <el-table-column label="牌号" prop="brandNum">
|
|
|
- <template slot-scope="{ row, $index }">
|
|
|
- {{ row.brandNum }}
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="数量" prop="feedQuantity">
|
|
|
- <template slot-scope="{ row, $index }">
|
|
|
- {{ row.feedQuantity }}
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
-
|
|
|
- <!-- <el-table-column label="包装库存" prop="brandNum">
|
|
|
- <template slot-scope="{ row, $index }">
|
|
|
- {{ row.packingCountBase }}/ {{ row.minUnit }}
|
|
|
- </template>
|
|
|
- </el-table-column> -->
|
|
|
-
|
|
|
-
|
|
|
- <el-table-column label="操作" fixed="right" width="60px" v-if="!isDetails">
|
|
|
- <template slot-scope="{ $index, row }">
|
|
|
- <el-link type="danger" @click="getDelete($index)">删除</el-link>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- </el-table>
|
|
|
-
|
|
|
- <el-dialog title="工序计算列表" :visible.sync="show" :before-close="cancel" :close-on-click-modal="false"
|
|
|
- :close-on-press-escape="false" append-to-body width="800px">
|
|
|
- <div class="material">
|
|
|
- <div class="btn_end">
|
|
|
- <el-button type="primary" size="mini" @click="handAddParam">添加</el-button>
|
|
|
- </div>
|
|
|
- <div class="content_table2">
|
|
|
- <div class="head row rx-sc">
|
|
|
- <div class="item ww30">工序名称</div>
|
|
|
- <div class="item ww20">坯体密度</div>
|
|
|
- <div class="item ww20">密度系数</div>
|
|
|
- <div class="item ww20">重量</div>
|
|
|
- <div class="item ww20">操作</div>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div class="table">
|
|
|
- <div class="tr row rx-sc" v-for="(it, idx) in paramList" :key="idx">
|
|
|
- <div class="item ww30">
|
|
|
- <el-select size="mini" class="content_num" filterable v-model="it.taskId" placeholder="请选择">
|
|
|
- <el-option v-for="item in stepsList" :label="item.taskTypeName" :value="item.taskId"
|
|
|
- :key="item.taskId">
|
|
|
- </el-option>
|
|
|
- </el-select>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div class="item ww20">
|
|
|
- <el-input class="content_num" size="mini" v-model="it.billet" type="digit"
|
|
|
- @input="changeInp(it, idx)"></el-input>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div class="item ww20">
|
|
|
- <el-input class="content_num" size="mini" v-model="it.density" type="digit"
|
|
|
- @input="changeInp(it, idx)"></el-input>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div class="item ww20" v-if="idx == 0 || idx != paramList.length - 1">
|
|
|
- < {{ it.CVIWeight }} </div>
|
|
|
-
|
|
|
- <div class="item ww20" v-if="paramList.length > 1 && idx == paramList.length - 1">
|
|
|
- ≥ {{ it.CVIWeight }}
|
|
|
- </div>
|
|
|
-
|
|
|
- <div class="item ww20 rx-cc" @click="getDelete2(idx)">
|
|
|
- <el-link type="danger">删除</el-link>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div class="formula_box">计算公式: 物料重量/坯体密度*密度系数 </div>
|
|
|
-
|
|
|
- <div class="reportWeight rx-sc">
|
|
|
- 物料重量: {{ weight }} ; 报工重量: {{ reportWeight }}
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- <template slot="footer">
|
|
|
- <el-button size="mini" type="primary" @click="paramSave">保存并计算</el-button>
|
|
|
- <el-button size="mini" type="primary" @click="save">计算</el-button>
|
|
|
- <el-button size="mini" @click="cancel">取消</el-button>
|
|
|
- </template>
|
|
|
- </el-dialog>
|
|
|
- </div>
|
|
|
-</template>
|
|
|
-
|
|
|
-<script>
|
|
|
-import {
|
|
|
- getTaskInstanceList,
|
|
|
- getComputeParam,
|
|
|
- saveParam
|
|
|
-} from '@/api/produce/job';
|
|
|
-export default {
|
|
|
- name: 'semiProductJobBom',
|
|
|
- props: {
|
|
|
- list: {
|
|
|
- type: Array,
|
|
|
- default: () => []
|
|
|
- },
|
|
|
- equipmentList: {
|
|
|
- type: Array,
|
|
|
- default: () => []
|
|
|
- },
|
|
|
-
|
|
|
- item: {
|
|
|
- type: Object,
|
|
|
- default: () => { }
|
|
|
- },
|
|
|
- isDetails: {
|
|
|
- type: Boolean,
|
|
|
- default: false
|
|
|
- },
|
|
|
- singleReport: {
|
|
|
- default: null
|
|
|
- }
|
|
|
- },
|
|
|
-
|
|
|
- watch: {
|
|
|
- equipmentList: {
|
|
|
- immediate: true,
|
|
|
- deep: true,
|
|
|
- handler(newVal) {
|
|
|
- this.deviceList = newVal;
|
|
|
- console.log(newVal,'1111121547646549896498')
|
|
|
- this.changeHeatNumber();
|
|
|
- }
|
|
|
- },
|
|
|
- list: {
|
|
|
- immediate: true,
|
|
|
- deep: true,
|
|
|
- handler(newVal) {
|
|
|
- console.log('aaaaaa',newVal)
|
|
|
- if (newVal.length) {
|
|
|
- console.log(newVal);
|
|
|
- this.newList = newVal;
|
|
|
- // if(this.taskObj.type != 4){
|
|
|
- this.sumweight(newVal);
|
|
|
- this.sunTj();
|
|
|
- // }
|
|
|
-
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- },
|
|
|
- computed: {
|
|
|
- taskObj() {
|
|
|
- return this.$store.state.user.taskObj;
|
|
|
- },
|
|
|
- clientEnvironmentId() {
|
|
|
- return this.$store.state.user.info.clientEnvironmentId;
|
|
|
- }
|
|
|
- },
|
|
|
- created() {
|
|
|
- this.getTaskFn();
|
|
|
- },
|
|
|
-
|
|
|
- // item
|
|
|
- data() {
|
|
|
- return {
|
|
|
- deviceList: [],
|
|
|
- newList: [],
|
|
|
- stepsList: [],
|
|
|
- cacheKeyUrl:'mes_produce_jobBooking_semiProductJobBom',
|
|
|
- weight: 0,
|
|
|
- reportWeight: 0,
|
|
|
-
|
|
|
- paramList: [],
|
|
|
-
|
|
|
- resultObj: {},
|
|
|
- resultIdx: 0,
|
|
|
-
|
|
|
- show: false,
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- isQualifiedList: [{
|
|
|
- code: 1,
|
|
|
- name: '合格'
|
|
|
- },
|
|
|
- {
|
|
|
- code: 2,
|
|
|
- name: '不合格'
|
|
|
- }
|
|
|
- ],
|
|
|
-
|
|
|
- notTypeList: [{
|
|
|
- code: 1,
|
|
|
- name: '返工'
|
|
|
- },
|
|
|
- {
|
|
|
- code: 2,
|
|
|
- name: '返修'
|
|
|
- },
|
|
|
- {
|
|
|
- code: 3,
|
|
|
- name: '报废'
|
|
|
- },
|
|
|
- {
|
|
|
- code: 4,
|
|
|
- name: '降级使用'
|
|
|
- },
|
|
|
- {
|
|
|
- code: 5,
|
|
|
- name: '让步接收'
|
|
|
- }
|
|
|
- ],
|
|
|
- selectArr:[],
|
|
|
- };
|
|
|
- },
|
|
|
-
|
|
|
- methods: {
|
|
|
- sunTj() {
|
|
|
- this.item.workReportInfo.formedNum = this.newList.filter(v => v.extInfo.isQualified == 1).length;
|
|
|
- this.item.workReportInfo.notFormedNum = this.newList.filter(v => v.extInfo.isQualified !== 1).length;
|
|
|
- },
|
|
|
- sumweight(arr) {
|
|
|
- console.log(arr, 6666667777);
|
|
|
- let formedWeight = 0;
|
|
|
- let noFormedWeight = 0;
|
|
|
- arr.map((s,i) => {
|
|
|
- if (s.extInfo.reportWeight) {
|
|
|
- if (s.extInfo.isQualified == 1) {
|
|
|
- formedWeight += s.extInfo.reportWeight * 1;
|
|
|
- } else {
|
|
|
- noFormedWeight += s.extInfo.reportWeight * 1;
|
|
|
- }
|
|
|
- } else {
|
|
|
- s.extInfo.reportWeight = null;
|
|
|
- }
|
|
|
- this.$set(this.list[i].extInfo,'reportWeight',s.extInfo.reportWeight)
|
|
|
- })
|
|
|
-
|
|
|
- this.item.workReportInfo.formedWeight = parseFloat((formedWeight).toFixed(2));
|
|
|
- this.item.workReportInfo.notFormedWeight = parseFloat((noFormedWeight).toFixed(2));
|
|
|
- },
|
|
|
-
|
|
|
-
|
|
|
- handlerSelect() {
|
|
|
- this.sunTj();
|
|
|
- this.sumweight(this.list);
|
|
|
- },
|
|
|
-
|
|
|
- handleInput() {
|
|
|
- console.log(12354987498498)
|
|
|
- let arr = JSON.parse(JSON.stringify(this.list));
|
|
|
- this.sumweight(arr);
|
|
|
- this.sunTj();
|
|
|
- // console.log('arr11111112222',arr)
|
|
|
- // console.log('this.list33333',this.list)
|
|
|
- },
|
|
|
-
|
|
|
- // changeHeatNumber() {
|
|
|
- // if (this.deviceList.length > 0) {
|
|
|
- // const device = this.deviceList[0];
|
|
|
- // this.$emit('update:heatNumber', device.heatNumber);
|
|
|
- // }
|
|
|
- // },
|
|
|
-
|
|
|
- getTaskFn() {
|
|
|
- getTaskInstanceList(this.item.workOrderId).then((res) => {
|
|
|
- // this.stepsList = res;
|
|
|
- this.stepsList=res.filter(item=>{return item.taskId != -2})
|
|
|
- });
|
|
|
- },
|
|
|
- selectVal(e, item, idx) {
|
|
|
- let obj = this.deviceList.find((f) => f.id == e);
|
|
|
-
|
|
|
- this.$set(
|
|
|
- this.list[idx],
|
|
|
- 'deviceName',
|
|
|
- obj.name + '-' + obj.codeNumber
|
|
|
- );
|
|
|
- this.$set(
|
|
|
- this.list[idx]['extInfo'],
|
|
|
- 'heatNumber',
|
|
|
- obj.extInfo.heatNumber
|
|
|
- );
|
|
|
- },
|
|
|
-
|
|
|
- changeHeatNumber() {
|
|
|
- this.deviceList.forEach((f) => {
|
|
|
- this.list.forEach((o,index) => {
|
|
|
- if (
|
|
|
- o.deviceId &&
|
|
|
- f.instanceId == o.deviceId &&
|
|
|
- this.deviceList.length > 1
|
|
|
- ) {
|
|
|
- // o.extInfo.heatNumber = f.extInfo.heatNumber;
|
|
|
- this.$set(this.list[index].extInfo,'heatNumber',f.extInfo.heatNumber)
|
|
|
- this.$forceUpdate();
|
|
|
- } else if (this.deviceList.length == 1) {
|
|
|
- o['deviceId'] = this.deviceList[0].id || f.instanceId;
|
|
|
- console.log('111111',this.deviceList[0].id)
|
|
|
- // o.extInfo.heatNumber = this.deviceList[0].extInfo.heatNumber;
|
|
|
- // this.$set(this.list[index],'heatNumber',this.deviceList[0].extInfo.heatNumber)
|
|
|
- this.$set(this.list[index].extInfo,'heatNumber',this.deviceList[0].extInfo.heatNumber)
|
|
|
- this.$forceUpdate();
|
|
|
- }
|
|
|
- });
|
|
|
- });
|
|
|
- },
|
|
|
-
|
|
|
- selectName(value, idx) {
|
|
|
- const taskObj = this.stepsList.find((item) => item.taskId === value);
|
|
|
- this.$set(this.list[idx].extInfo, 'taskName', taskObj.taskTypeName);
|
|
|
- this.$forceUpdate();
|
|
|
- },
|
|
|
-
|
|
|
- openNumerate(row, idx) {
|
|
|
- if (!row.extInfo.reportWeight) {
|
|
|
- this.$message({ message: '请先输入报工重量', type: 'warning' });
|
|
|
- return false;
|
|
|
- }
|
|
|
- this.weight = row.extInfo.weight;
|
|
|
- this.reportWeight = row.extInfo.reportWeight;
|
|
|
- this.resultIdx = idx;
|
|
|
-
|
|
|
- this.show = true;
|
|
|
- },
|
|
|
-
|
|
|
- getCompute() {
|
|
|
- getComputeParam(
|
|
|
- this.item.workOrderId,
|
|
|
- this.item.currentTaskDiagram.taskId
|
|
|
- ).then((res) => {
|
|
|
- this.paramList = [];
|
|
|
- this.paramList = (res && res.paramList) || [];
|
|
|
- this.paramObj = res || {};
|
|
|
- });
|
|
|
- },
|
|
|
-
|
|
|
- handAddParam() {
|
|
|
- this.paramList.push({
|
|
|
- taskId: null,
|
|
|
- taskName: null
|
|
|
- });
|
|
|
- },
|
|
|
- getDelete(idx) {
|
|
|
- this.list.splice(idx, 1);
|
|
|
- },
|
|
|
-
|
|
|
- getDelete2(idx) {
|
|
|
- this.paramList.splice(idx, 1);
|
|
|
- },
|
|
|
-
|
|
|
- changeInp(item, index) {
|
|
|
- if (Number(item.billet) && Number(item.density)) {
|
|
|
- this.paramList[index].CVIWeight = (
|
|
|
- (Number(this.weight) / item.billet) *
|
|
|
- item.density
|
|
|
- ).toFixed(2);
|
|
|
- }
|
|
|
- },
|
|
|
-
|
|
|
- cancel() {
|
|
|
- this.show = false;
|
|
|
- this.reportWeight = 0;
|
|
|
- this.weight = 0;
|
|
|
- },
|
|
|
-
|
|
|
- paramSave() {
|
|
|
- if (this.paramList.length > 0) {
|
|
|
- let bol;
|
|
|
- let _i;
|
|
|
- bol = this.paramList.every((e, i) => {
|
|
|
- _i = i + 1;
|
|
|
- return e.taskId && e.billet && e.density;
|
|
|
- });
|
|
|
-
|
|
|
- if (!bol) {
|
|
|
- this.$message({ message: `第${_i}行数据不全`, type: 'warning' });
|
|
|
-
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
- if (this.paramList.length < 1) {
|
|
|
- this.$message({
|
|
|
- message: '请输入二个以上计算数据',
|
|
|
- type: 'warning'
|
|
|
- });
|
|
|
-
|
|
|
- return false;
|
|
|
- }
|
|
|
- }
|
|
|
- let param = {};
|
|
|
-
|
|
|
- if (!Object.prototype.hasOwnProperty.call(this.paramObj, 'id')) {
|
|
|
- param = {
|
|
|
- paramList: this.paramList,
|
|
|
- workOrderId: this.item.workOrderId,
|
|
|
- taskId: this.item.currentTaskDiagram.taskId
|
|
|
- };
|
|
|
- } else {
|
|
|
- this.paramObj.paramList = this.paramList;
|
|
|
- param = this.paramObj;
|
|
|
- }
|
|
|
-
|
|
|
- saveParam(param).then((res) => {
|
|
|
- this.$message({ message: '保存成功', type: 'success' });
|
|
|
- this.getCompute();
|
|
|
-
|
|
|
- this.save();
|
|
|
- });
|
|
|
- },
|
|
|
-
|
|
|
- save() {
|
|
|
- if (this.item.currentTaskDiagram.isFirstTask == 1) {
|
|
|
- this.resultObj = {};
|
|
|
-
|
|
|
- if (Number(this.reportWeight) < Number(this.paramList[0].CVIWeight)) {
|
|
|
- this.resultObj = this.paramList[0];
|
|
|
- this.setDataSave();
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
- if (
|
|
|
- Number(this.reportWeight) >=
|
|
|
- this.paramList[this.paramList.length - 1].CVIWeight
|
|
|
- ) {
|
|
|
- this.resultObj = this.paramList[this.paramList.length - 1];
|
|
|
- this.setDataSave();
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
- for (let i = 1; i < this.paramList.length; i++) {
|
|
|
- console.log(
|
|
|
- 11,
|
|
|
- Number(this.paramList[i - 1].CVIWeight),
|
|
|
- Number(this.reportWeight)
|
|
|
- );
|
|
|
- if (
|
|
|
- Number(this.paramList[i - 1].CVIWeight) <
|
|
|
- Number(this.reportWeight) &&
|
|
|
- Number(this.reportWeight) < Number(this.paramList[i].CVIWeight)
|
|
|
- ) {
|
|
|
- this.resultObj = this.paramList[i];
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- this.setDataSave();
|
|
|
- }
|
|
|
- },
|
|
|
-
|
|
|
- setDataSave() {
|
|
|
- this.$set(
|
|
|
- this.list[this.resultIdx].extInfo,
|
|
|
- 'taskId',
|
|
|
- this.resultObj.taskId
|
|
|
- );
|
|
|
- this.$set(
|
|
|
- this.list[this.resultIdx].extInfo,
|
|
|
- 'density',
|
|
|
- this.resultObj.density
|
|
|
- );
|
|
|
- this.$set(
|
|
|
- this.list[this.resultIdx].extInfo,
|
|
|
- 'billet',
|
|
|
- this.resultObj.billet
|
|
|
- );
|
|
|
- this.$set(
|
|
|
- this.list[this.resultIdx].extInfo,
|
|
|
- 'taskName',
|
|
|
- this.resultObj.taskName
|
|
|
- );
|
|
|
-
|
|
|
- this.cancel();
|
|
|
- },
|
|
|
- // 多选
|
|
|
- tableDataSelectChange(val) {
|
|
|
- let arr=[];
|
|
|
- this.selectArr=[]
|
|
|
- if(val.length>0){
|
|
|
- val.map(item=>{
|
|
|
- arr.push(item.id || item.instanceId)
|
|
|
- })
|
|
|
- this.selectArr=arr
|
|
|
- }
|
|
|
- console.log(arr);
|
|
|
-
|
|
|
- },
|
|
|
- //批量删除
|
|
|
- batchDelete(){
|
|
|
- if (!this.selectArr.length) {
|
|
|
- this.$message.warning('请至少选择一条数据');
|
|
|
- return;
|
|
|
- }
|
|
|
- this.$confirm('确定要删除选中的报工信息吗?', '提示', {
|
|
|
- type: 'warning'
|
|
|
- })
|
|
|
- .then(() => {
|
|
|
- this.selectArr.forEach((sitem, sindex) => {
|
|
|
- this.list.forEach((item, index) => {
|
|
|
- let id=item.id || item.instanceId
|
|
|
- if (id==sitem) {
|
|
|
- this.list.splice(index, 1);
|
|
|
- }
|
|
|
- })
|
|
|
- });
|
|
|
- })
|
|
|
- .catch(() => {});
|
|
|
-
|
|
|
- }
|
|
|
- },
|
|
|
-
|
|
|
- created() {
|
|
|
- this.getTaskFn();
|
|
|
- this.getCompute();
|
|
|
- }
|
|
|
-};
|
|
|
-</script>
|
|
|
-
|
|
|
-<style lang="scss" scoped>
|
|
|
-.tag_box {
|
|
|
- display: inline-block;
|
|
|
- padding: 1px 6px;
|
|
|
- margin-right: 6px;
|
|
|
- background: #e6a23c;
|
|
|
- font-size: 11px;
|
|
|
- color: #fff;
|
|
|
- border-radius: 2px;
|
|
|
-}
|
|
|
-
|
|
|
-.content_num2 {
|
|
|
- --input-background-color: #f0f8f2;
|
|
|
-}
|
|
|
-
|
|
|
-.numerate {
|
|
|
- font-size: 22rpx;
|
|
|
- color: #157a2c;
|
|
|
- cursor: pointer;
|
|
|
-}
|
|
|
-
|
|
|
-.material {
|
|
|
- width: 100%;
|
|
|
-}
|
|
|
-
|
|
|
-.btn_end {
|
|
|
- text-align: right;
|
|
|
- margin-bottom: 10px;
|
|
|
-}
|
|
|
-
|
|
|
-.content_table2 {
|
|
|
- width: 100%;
|
|
|
-
|
|
|
- .row {
|
|
|
- width: 100%;
|
|
|
-
|
|
|
- .item {
|
|
|
- color: #404446;
|
|
|
- font-size: 14px;
|
|
|
- padding-left: 6px;
|
|
|
- }
|
|
|
-
|
|
|
- .color157 {
|
|
|
- color: #157a2c;
|
|
|
- }
|
|
|
-
|
|
|
- .ww20 {
|
|
|
- width: 20%;
|
|
|
- }
|
|
|
-
|
|
|
- .ww30 {
|
|
|
- width: 30%;
|
|
|
- }
|
|
|
-
|
|
|
- .ww25 {
|
|
|
- width: 25%;
|
|
|
- }
|
|
|
-
|
|
|
- .ww35 {
|
|
|
- width: 35%;
|
|
|
- }
|
|
|
-
|
|
|
- .ww10 {
|
|
|
- width: 10%;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .head {
|
|
|
- height: 32px;
|
|
|
- background: #f7f9fa;
|
|
|
- border-top: 1px solid #e3e5e5;
|
|
|
- border-left: 1px solid #e3e5e5;
|
|
|
-
|
|
|
- .item {
|
|
|
- height: 32px;
|
|
|
- line-height: 32px;
|
|
|
- border-right: 1px solid #e3e5e5;
|
|
|
- box-sizing: border-box;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .tr {
|
|
|
- border-top: 1px solid #e3e5e5;
|
|
|
- border-left: 1px solid #e3e5e5;
|
|
|
-
|
|
|
- .item {
|
|
|
- font-size: 12px;
|
|
|
- min-height: 32px;
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- border-right: 1px solid #e3e5e5;
|
|
|
- box-sizing: border-box;
|
|
|
- white-space: normal;
|
|
|
- word-break: break-all;
|
|
|
- }
|
|
|
-
|
|
|
- &:last-child {
|
|
|
- border-bottom: 1px solid #e3e5e5;
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-.formula_box {
|
|
|
- font-size: 12px;
|
|
|
- font-style: normal;
|
|
|
- font-weight: 400;
|
|
|
- margin-top: 15px;
|
|
|
- color: #157a2c;
|
|
|
-}
|
|
|
-
|
|
|
-.reportWeight {
|
|
|
- font-size: 12px;
|
|
|
- font-style: normal;
|
|
|
- font-weight: 400;
|
|
|
- margin-top: 15px;
|
|
|
- color: #157a2c;
|
|
|
-}
|
|
|
-
|
|
|
-.content_num {
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- padding: 2px;
|
|
|
- --input-background-color: #f0f8f2;
|
|
|
-
|
|
|
-}
|
|
|
-</style>
|