1148 lines
35 KiB
Python
1148 lines
35 KiB
Python
<template>
|
|
<div class="app-container">
|
|
<el-card>
|
|
<div slot="header" class="clearfix">
|
|
<span>基本信息</span>
|
|
|
|
<el-button
|
|
style="float: right; padding: 3px 0"
|
|
@click="getWordText()"
|
|
type="text"
|
|
>查看作业指导书</el-button
|
|
>
|
|
</div>
|
|
<el-form
|
|
ref="form"
|
|
inline="true"
|
|
:model="operationData"
|
|
label-width="80px"
|
|
>
|
|
<el-form-item label="子工序">
|
|
<el-input
|
|
v-model="operationData.step_.name"
|
|
disabled="disabled"
|
|
></el-input>
|
|
</el-form-item>
|
|
|
|
<el-form-item label="创建人">
|
|
<el-input
|
|
v-model="operationData.create_by_.username"
|
|
disabled="disabled"
|
|
></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="创建时间">
|
|
<el-input
|
|
v-model="operationData.create_time"
|
|
disabled="disabled"
|
|
></el-input>
|
|
</el-form-item>
|
|
<el-form-item>
|
|
<el-button
|
|
type="primary"
|
|
style="float: right"
|
|
@click="handlesubmit()"
|
|
v-if="operationData.is_submited == false"
|
|
>提交本次操作</el-button
|
|
>
|
|
</el-form-item>
|
|
<!--
|
|
<el-form-item label="边角料">
|
|
<el-radio-group v-model="operationData.use_scrap">
|
|
<el-radio border
|
|
:label="item.value"
|
|
:key="item.value"
|
|
v-for="item in scrap"
|
|
>{{ item.lable }}</el-radio
|
|
>
|
|
</el-radio-group>
|
|
</el-form-item>
|
|
<el-form-item label="备注" v-if="operationData.use_scrap">
|
|
<el-input type="textarea" v-model="operationData.remark"></el-input>
|
|
</el-form-item>
|
|
!-->
|
|
<el-form-item v-if="operationData.use_scrap">
|
|
<el-button type="primary" @click="scrapSubmit()">创建</el-button>
|
|
<el-button>取消</el-button>
|
|
</el-form-item>
|
|
</el-form>
|
|
<el-drawer
|
|
title="作业指导书查看!"
|
|
:visible.sync="drawer"
|
|
direction="rtl"
|
|
size="70%"
|
|
>
|
|
<el-tabs @tab-click="handleClick">
|
|
<el-tab-pane
|
|
:key="item.file_.id"
|
|
v-for="item in techdocList"
|
|
:label="item.file_.name"
|
|
:name="item.file_.path"
|
|
:closable="item.close"
|
|
></el-tab-pane>
|
|
</el-tabs>
|
|
<div class="word-wrap" id="file"></div>
|
|
</el-drawer>
|
|
</el-card>
|
|
<el-row gutter="2">
|
|
<el-col span="8">
|
|
<el-card class="box-card">
|
|
<div slot="header" class="clearfix">
|
|
<span>半成品</span>
|
|
</div>
|
|
|
|
<template>
|
|
<el-table
|
|
:data="operationwpData"
|
|
border
|
|
fit
|
|
stripe
|
|
highlight-current-row
|
|
height="230"
|
|
style="width: 100%"
|
|
>
|
|
|
|
<el-table-column
|
|
prop="subproduction_plan_.number"
|
|
label="子计划编号"
|
|
>
|
|
</el-table-column>
|
|
<el-table-column prop="number" label="玻璃编号">
|
|
</el-table-column>
|
|
<el-table-column prop="material_.name" label="玻璃状态">
|
|
</el-table-column>
|
|
<el-table-column prop="place" label="摆放位置">
|
|
</el-table-column>
|
|
<el-table-column align="center" label="操作" width="100px">
|
|
<template slot-scope="scope">
|
|
<el-link type="primary" @click="handleupdatewproduct(scope)"
|
|
>编辑</el-link
|
|
>
|
|
<el-link
|
|
v-if="checkPermission(['warehouse_update'])"
|
|
type="danger"
|
|
@click="handleDeletewproduct(scope)"
|
|
>删除</el-link
|
|
>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table>
|
|
<el-dialog
|
|
:visible.sync="dialogwproductplace"
|
|
:close-on-click-modal="false"
|
|
width="60%"
|
|
title="半成品摆放位置"
|
|
>
|
|
<el-form
|
|
ref="Form"
|
|
:model="wproductplace"
|
|
label-width="100px"
|
|
label-position="right"
|
|
>
|
|
<el-form-item label="位置" prop="place">
|
|
<el-input v-model="wproductplace.place" placeholder="位置" />
|
|
</el-form-item>
|
|
</el-form>
|
|
<div style="text-align: right">
|
|
<el-button type="danger" @click="dialogwproductplace = false"
|
|
>取消</el-button
|
|
>
|
|
<el-button type="primary" @click="submitwproductplace"
|
|
>确认</el-button
|
|
>
|
|
</div>
|
|
</el-dialog>
|
|
</template>
|
|
</el-card>
|
|
</el-col>
|
|
<el-col span="8">
|
|
<el-card class="box-card">
|
|
<div slot="header" class="clearfix">
|
|
<span>设备</span>
|
|
</div>
|
|
<template>
|
|
<el-table
|
|
:data="equData"
|
|
border
|
|
fit
|
|
stripe
|
|
highlight-current-row
|
|
height="230"
|
|
style="width: 100%"
|
|
>
|
|
<el-table-column prop="equip_.number" label="设备编号">
|
|
</el-table-column>
|
|
<el-table-column prop="equip_.name" label="设备名称">
|
|
</el-table-column>
|
|
<el-table-column label="设备状态">
|
|
<template slot-scope="scope">
|
|
<div v-if="scope.row.equip_.type === 2">
|
|
<el-tag v-if="scope.row.equip_.state === 40" type="danger">
|
|
禁用
|
|
</el-tag>
|
|
<el-tag v-else type="success"> 合格 </el-tag>
|
|
</div>
|
|
<div v-else>
|
|
<el-tag v-if="scope.row.equip_.state === 10" type="success">
|
|
{{ state_[scope.row.equip_.state] }}
|
|
</el-tag>
|
|
<el-tag v-else-if="scope.row.equip_.state === 20">
|
|
{{ state_[scope.row.equip_.state] }}
|
|
</el-tag>
|
|
<el-tag
|
|
v-else-if="scope.row.equip_.state === 30"
|
|
type="warning"
|
|
>
|
|
{{ state_[scope.row.equip_.state] }}
|
|
</el-tag>
|
|
<el-tag v-else type="danger">
|
|
{{ state_[scope.row.equip_.state] }}
|
|
</el-tag>
|
|
</div>
|
|
</template>
|
|
</el-table-column>
|
|
|
|
<el-table-column align="center" label="操作" width="100px">
|
|
<template slot-scope="scope">
|
|
<el-link
|
|
v-if="checkPermission(['warehouse_update'])"
|
|
type="danger"
|
|
@click="handleDeletequip(scope)"
|
|
>删除</el-link
|
|
>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table>
|
|
</template>
|
|
</el-card>
|
|
</el-col>
|
|
<el-col span="8">
|
|
<el-card class="box-card">
|
|
<div slot="header" class="clearfix">
|
|
<span>生产记录表</span>
|
|
</div>
|
|
<template>
|
|
<el-table
|
|
:data="recordData"
|
|
border
|
|
fit
|
|
stripe
|
|
highlight-current-row
|
|
height="230"
|
|
style="width: 100%"
|
|
>
|
|
<el-table-column prop="form_.name" label="名称">
|
|
</el-table-column>
|
|
<el-table-column label="是否填写">
|
|
<template slot-scope="scope">
|
|
<el-tag v-if="scope.row.is_filled == false">未填写</el-tag>
|
|
<el-tag v-else>已填写</el-tag>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column align="center" label="操作" width="100px">
|
|
<template slot-scope="scope">
|
|
<el-link
|
|
v-if="checkPermission(['warehouse_update'])"
|
|
type="primary"
|
|
@click="handlerecord(scope)"
|
|
>填写表单</el-link
|
|
>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table>
|
|
<el-dialog
|
|
:model="tableForm"
|
|
:visible.sync="dialogVisibleForm"
|
|
:close-on-click-modal="false"
|
|
:title="fieldList.name"
|
|
>
|
|
<el-form label-width="80px" label-position="right">
|
|
<el-row
|
|
v-for="(item, $index) in fieldList.record_data"
|
|
:key="$index"
|
|
>
|
|
<el-form-item
|
|
v-if="item.field_type === 'string'"
|
|
:label="item.field_name"
|
|
>
|
|
<el-input v-model="item.field_value" placeholder="请输入" />
|
|
</el-form-item>
|
|
<el-form-item
|
|
v-else-if="item.field_type === 'int'"
|
|
:label="item.field_name"
|
|
>
|
|
<el-input
|
|
type="number"
|
|
placeholder="请输入"
|
|
v-model="item.field_value"
|
|
/>
|
|
</el-form-item>
|
|
<el-form-item
|
|
v-else-if="item.field_type === 'float'"
|
|
:label="item.field_name"
|
|
>
|
|
<el-input
|
|
type="number"
|
|
placeholder="请输入"
|
|
v-model="item.field_value"
|
|
/>
|
|
</el-form-item>
|
|
<el-form-item
|
|
v-else-if="item.field_type === 'date'"
|
|
:label="item.field_name"
|
|
>
|
|
<el-date-picker
|
|
v-model="item.field_value"
|
|
type="date"
|
|
placeholder="选择日期"
|
|
value-format="yyyy-MM-dd"
|
|
style="width: 100%"
|
|
>
|
|
</el-date-picker>
|
|
</el-form-item>
|
|
<el-form-item
|
|
v-else-if="item.field_type === 'datetime'"
|
|
:label="item.field_name"
|
|
>
|
|
<el-date-picker
|
|
v-model="item.field_value"
|
|
type="datetime"
|
|
placeholder="选择日期"
|
|
value-format="yyyy-MM-dd HH:mm:ss"
|
|
style="width: 100%"
|
|
>
|
|
</el-date-picker>
|
|
</el-form-item>
|
|
<el-form-item
|
|
v-else-if="item.field_type === 'select'"
|
|
:label="item.field_name"
|
|
>
|
|
<el-select
|
|
style="width: 100%"
|
|
v-model="item.field_value"
|
|
placeholder="请选择"
|
|
>
|
|
<el-option
|
|
v-for="item1 in item.field_choice"
|
|
:key="item1"
|
|
:label="item1"
|
|
:value="item1"
|
|
>
|
|
</el-option>
|
|
</el-select>
|
|
</el-form-item>
|
|
<el-form-item
|
|
v-else-if="item.field_type === 'selects'"
|
|
:label="item.field_name"
|
|
>
|
|
<el-select
|
|
style="width: 100%"
|
|
v-model="item.field_value"
|
|
multiple
|
|
placeholder="请选择"
|
|
>
|
|
<el-option
|
|
v-for="item1 in item.field_choice"
|
|
:key="item1"
|
|
:label="item1"
|
|
:value="item1"
|
|
>
|
|
</el-option>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-row>
|
|
</el-form>
|
|
<span slot="footer">
|
|
<el-button type="danger" @click="dialogVisibleForm = false"
|
|
>取消</el-button
|
|
>
|
|
<el-button type="primary" @click="recordconfirm()"
|
|
>提交</el-button
|
|
>
|
|
</span>
|
|
</el-dialog>
|
|
</template>
|
|
</el-card>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row gutter="2">
|
|
<el-col span="8">
|
|
<el-card class="box-card">
|
|
<div slot="header" class="clearfix">
|
|
<span>消耗物料</span>
|
|
<el-button
|
|
style="float: right; padding: 3px 0"
|
|
type="text"
|
|
@click="cjllclick()"
|
|
>从车间领料</el-button
|
|
>
|
|
</div>
|
|
<template>
|
|
<el-table
|
|
:data="inputData"
|
|
border
|
|
fit
|
|
stripe
|
|
highlight-current-row
|
|
height="230"
|
|
style="width: 100%"
|
|
>
|
|
<el-table-column
|
|
prop="subproduction_plan_.number"
|
|
label="子计划编号"
|
|
>
|
|
</el-table-column>
|
|
<el-table-column prop="batch" label="物料批次"> </el-table-column>
|
|
<el-table-column prop="material_.name" label="物料名称">
|
|
</el-table-column>
|
|
<el-table-column prop="material_.unit" label="物料单位">
|
|
</el-table-column>
|
|
<el-table-column prop="count" label="消耗数量"> </el-table-column>
|
|
<el-table-column align="center" label="操作" width="100px">
|
|
<template slot-scope="scope">
|
|
<el-link
|
|
v-if="checkPermission(['warehouse_update'])"
|
|
type="danger"
|
|
@click="handleDeleteinput(scope)"
|
|
>删除</el-link
|
|
>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table>
|
|
<el-dialog
|
|
title="车间物料"
|
|
:close-on-click-modal="false"
|
|
:visible.sync="dialogTablepick"
|
|
>
|
|
<el-table
|
|
:data="wmaterialData"
|
|
border
|
|
fit
|
|
stripe
|
|
style="width: 100%"
|
|
max-height="400"
|
|
ref="multipleTable"
|
|
>
|
|
<el-table-column type="selection" width="55"> </el-table-column>
|
|
<el-table-column type="index" width="50" />
|
|
<el-table-column label="子计划编号">
|
|
<template slot-scope="scope">{{
|
|
scope.row.subproduction_plan_.number
|
|
}}</template>
|
|
</el-table-column>
|
|
<el-table-column label="物料名称">
|
|
<template slot-scope="scope">{{
|
|
scope.row.material_.name
|
|
}}</template>
|
|
</el-table-column>
|
|
<el-table-column label="物料单位">
|
|
<template slot-scope="scope">{{
|
|
scope.row.material_.unit
|
|
}}</template>
|
|
</el-table-column>
|
|
<el-table-column label="物料批次">
|
|
<template slot-scope="scope">{{ scope.row.batch }}</template>
|
|
</el-table-column>
|
|
<el-table-column label="车间物料数量">
|
|
<template slot-scope="scope">{{ scope.row.count }}</template>
|
|
</el-table-column>
|
|
<el-table-column label="实际使用数量" width="140px">
|
|
<template slot-scope="scope">
|
|
<el-form :model="scope.row" widht="100px">
|
|
<el-form-item size="mini">
|
|
<el-input-number
|
|
v-model="scope.row.pick_count"
|
|
:min="0"
|
|
:controls="false"
|
|
:value="0"
|
|
></el-input-number>
|
|
</el-form-item>
|
|
</el-form>
|
|
</template>
|
|
</el-table-column>
|
|
<!-- <el-table-column align="center" label="操作" width="100px">
|
|
<template slot-scope="scope">
|
|
<el-link
|
|
v-if="checkPermission(['warehouse_update'])"
|
|
@click="handlepick(scope)"
|
|
>提交</el-link
|
|
>
|
|
</template>
|
|
</el-table-column>!-->
|
|
</el-table>
|
|
<div style="text-align: right">
|
|
<el-button type="danger" @click="dialogTablepick = false"
|
|
>取消</el-button
|
|
>
|
|
<el-button type="primary" @click="handlepicks()"
|
|
>提交</el-button
|
|
>
|
|
</div>
|
|
</el-dialog>
|
|
</template>
|
|
</el-card>
|
|
</el-col>
|
|
<el-col span="8">
|
|
<el-card class="box-card">
|
|
<div slot="header" class="clearfix">
|
|
<span>产出物料</span>
|
|
<el-button
|
|
style="float: right; padding: 3px 0"
|
|
type="text"
|
|
@click="dialogTableoutput = true"
|
|
>选择产出</el-button
|
|
>
|
|
</div>
|
|
<el-table
|
|
:data="outputData"
|
|
border
|
|
fit
|
|
stripe
|
|
highlight-current-row
|
|
height="230"
|
|
style="width: 100%"
|
|
>
|
|
<el-table-column
|
|
prop="subproduction_plan_.number"
|
|
label="子计划编号"
|
|
>
|
|
</el-table-column>
|
|
|
|
<el-table-column prop="material_.name" label="物料名称">
|
|
</el-table-column>
|
|
<el-table-column prop="material_.unit" label="物料单位">
|
|
</el-table-column>
|
|
<el-table-column prop="count" label="产出数量"> </el-table-column>
|
|
</el-table>
|
|
<el-dialog
|
|
title="产出物料"
|
|
:close-on-click-modal="false"
|
|
:visible.sync="dialogTableoutput"
|
|
>
|
|
<el-table
|
|
:data="tprogressData"
|
|
border
|
|
fit
|
|
stripe
|
|
style="width: 100%"
|
|
max-height="400"
|
|
ref="multipleTables"
|
|
>
|
|
<el-table-column type="selection" width="55"> </el-table-column>
|
|
<el-table-column type="index" width="50" />
|
|
|
|
<el-table-column label="子计划编号">
|
|
<template slot-scope="scope">{{
|
|
scope.row.subproduction_plan_.number
|
|
}}</template>
|
|
</el-table-column>
|
|
<el-table-column label="物料名称">
|
|
<template slot-scope="scope">{{
|
|
scope.row.material_.name
|
|
}}</template>
|
|
</el-table-column>
|
|
<el-table-column label="物料单位">
|
|
<template slot-scope="scope">{{
|
|
scope.row.material_.unit
|
|
}}</template>
|
|
</el-table-column>
|
|
<el-table-column label="计划/产出/合格">
|
|
<template slot-scope="scope"
|
|
>{{ scope.row.count }}/{{ scope.row.count_real }}/{{
|
|
scope.row.count_ok
|
|
}}</template
|
|
>
|
|
</el-table-column>
|
|
|
|
<el-table-column label="本操作产出数量" width="140px">
|
|
<template slot-scope="scope">
|
|
<el-form :model="scope.row" widht="100px">
|
|
<el-form-item size="mini">
|
|
<el-input-number
|
|
v-model="scope.row.output_count"
|
|
:min="0"
|
|
:controls="false"
|
|
:value="0"
|
|
></el-input-number>
|
|
</el-form-item>
|
|
</el-form>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column label="是否使用边角料" width="140px">
|
|
<template slot-scope="scope">
|
|
<el-form :model="scope.row" widht="100px">
|
|
<el-form-item size="mini">
|
|
<el-switch v-model="scope.row.use_scrap"></el-switch>
|
|
</el-form-item>
|
|
</el-form>
|
|
</template>
|
|
</el-table-column>
|
|
<!-- <el-table-column align="center" label="操作" width="100px">
|
|
<template slot-scope="scope">
|
|
<el-link
|
|
v-if="checkPermission(['warehouse_update'])"
|
|
@click="handleoutput(scope)"
|
|
>提交</el-link
|
|
>
|
|
</template>
|
|
</el-table-column>!-->
|
|
</el-table>
|
|
<div style="text-align: right">
|
|
<el-button type="danger" @click="dialogTableoutput = false"
|
|
>取消</el-button
|
|
>
|
|
<el-button type="primary" @click="handleoutputs()"
|
|
>提交</el-button
|
|
>
|
|
</div>
|
|
</el-dialog>
|
|
</el-card>
|
|
</el-col>
|
|
<el-col span="8">
|
|
<el-card class="box-card">
|
|
<div slot="header" class="clearfix">
|
|
<span>工具工装</span>
|
|
</div>
|
|
|
|
<el-table
|
|
:data="tool"
|
|
border
|
|
fit
|
|
stripe
|
|
highlight-current-row
|
|
height="230"
|
|
style="width: 100%"
|
|
>
|
|
<el-table-column prop="material_.name" label="物料名称">
|
|
</el-table-column>
|
|
<el-table-column prop="material_.unit" label="物料单位">
|
|
</el-table-column>
|
|
</el-table>
|
|
</el-card>
|
|
</el-col>
|
|
</el-row>
|
|
</div>
|
|
</template>
|
|
<style scoped>
|
|
.word-wrap {
|
|
padding: 25px;
|
|
}
|
|
.box-card {
|
|
height: 300px;
|
|
}
|
|
</style>
|
|
<script>
|
|
import {
|
|
getoperation,
|
|
createoperation,
|
|
getoperationwproductList,
|
|
getequList,
|
|
getrecordList,
|
|
getinputList,
|
|
getwmaterialList,
|
|
createInput,
|
|
getoutputList,
|
|
createOutput,
|
|
createRecord,
|
|
submitOperation,
|
|
deleteOperationequip,
|
|
deleteOperationwproduct,
|
|
gettoolList,
|
|
createTool,
|
|
createInputs,
|
|
recordInit,
|
|
createOutputs,
|
|
deleteOperationeinput,
|
|
wproductPlace,
|
|
} from "@/api/wpm";
|
|
import mammoth from "mammoth";
|
|
import { getrffieldList, gettechdocList } from "@/api/mtm";
|
|
import checkPermission from "@/utils/permission";
|
|
import { getprogressList } from "@/api/pm";
|
|
import Pagination from "@/components/Pagination"; // secondary package based on el-pagination
|
|
|
|
export default {
|
|
components: { Pagination },
|
|
inject: ["reload"],
|
|
data() {
|
|
return {
|
|
techdocList: "",
|
|
operationList: {
|
|
count: 0,
|
|
},
|
|
drawer: false,
|
|
listQuery: {
|
|
page: 1,
|
|
page_size: 20,
|
|
},
|
|
state_: {
|
|
10: "完好",
|
|
20: "限用",
|
|
30: "在修",
|
|
40: "禁用",
|
|
},
|
|
scrap: [
|
|
{ lable: "使用", value: true },
|
|
{ lable: "不使用", value: false },
|
|
],
|
|
listQueryfield: {
|
|
page: 1,
|
|
page_size: 20,
|
|
},
|
|
wproductplace: {},
|
|
operationData: "",
|
|
scrapData: {},
|
|
dialogVisibleForm: false,
|
|
tableForm: {
|
|
name: "",
|
|
},
|
|
dialogwproductplace: false,
|
|
listQueryrecordform: {
|
|
page: 1,
|
|
page_size: 20,
|
|
},
|
|
recordformList: {
|
|
count: 0,
|
|
},
|
|
fieldList: {
|
|
count: 0,
|
|
name: "",
|
|
},
|
|
listQueryfield: {
|
|
page: 1,
|
|
page_size: 20,
|
|
},
|
|
highoptions: [
|
|
{ value: 1, label: "<" },
|
|
{ value: 2, label: "<=" },
|
|
],
|
|
lowoptions: [
|
|
{ value: 1, label: ">" },
|
|
{ value: 2, label: ">=" },
|
|
],
|
|
highoptionss_: {
|
|
1: "<",
|
|
2: "<=",
|
|
},
|
|
lowoptionss_: {
|
|
1: ">",
|
|
2: ">=",
|
|
},
|
|
options_: {
|
|
string: "文本",
|
|
int: "整数",
|
|
float: "小数",
|
|
date: "日期",
|
|
datetime: "日期时间",
|
|
select: "单选",
|
|
selects: "多选",
|
|
},
|
|
fieldtypeoptions: [
|
|
{
|
|
value: "string",
|
|
label: "文本",
|
|
},
|
|
{
|
|
value: "int",
|
|
label: "整数",
|
|
},
|
|
{
|
|
value: "float",
|
|
label: "小数",
|
|
},
|
|
{
|
|
value: "date",
|
|
label: "日期",
|
|
},
|
|
{
|
|
value: "time",
|
|
label: "时间",
|
|
},
|
|
{
|
|
value: "datetime",
|
|
label: "日期时间",
|
|
},
|
|
{
|
|
value: "select",
|
|
label: "单选",
|
|
},
|
|
{
|
|
value: "selects",
|
|
label: "多选",
|
|
},
|
|
],
|
|
formID: "",
|
|
dialogTablepick: false,
|
|
dialogTableoutput: false,
|
|
picks: {},
|
|
output: {},
|
|
record_data: [],
|
|
record: {},
|
|
inputData: [],
|
|
operationwpData: [],
|
|
equData: [],
|
|
recordData: [],
|
|
wmaterialData: [],
|
|
outputData: [],
|
|
tprogressData: [],
|
|
tool: "",
|
|
wordText: "",
|
|
pdf: "",
|
|
};
|
|
},
|
|
computed: {},
|
|
watch: {},
|
|
created() {
|
|
this.id = this.$route.params.id; //操作ID
|
|
this.readbook();
|
|
this.getList(); //边角料
|
|
this.getpwpList(); //半成品
|
|
this.getequList(); //设备
|
|
this.getrecordLists(); //自定义表
|
|
this.getinputLists(); //物料消耗
|
|
this.getoutputLists(); //产出物料
|
|
this.getwmaterialList();
|
|
this.getprogressList(); //产出物料调出
|
|
this.gettoolList(); //工序工装
|
|
},
|
|
methods: {
|
|
checkPermission,
|
|
|
|
//作业指导书
|
|
//选项卡切换
|
|
handleClick(tab) {
|
|
console.log(tab.name);
|
|
var str = tab.label.substr(tab.label.length - 1, 1);
|
|
if (str == "x") {
|
|
const xhr = new XMLHttpRequest();
|
|
|
|
xhr.open("get", tab.name, true);
|
|
|
|
xhr.responseType = "arraybuffer";
|
|
|
|
xhr.onload = () => {
|
|
if (xhr.status == 200) {
|
|
mammoth
|
|
.convertToHtml({ arrayBuffer: new Uint8Array(xhr.response) })
|
|
.then((resultObject) => {
|
|
this.$nextTick(() => {
|
|
this.wordText = resultObject.value;
|
|
});
|
|
});
|
|
}
|
|
};
|
|
xhr.send();
|
|
var filediv = document.getElementById("file");
|
|
filediv.innerHTML =
|
|
' <div id="wordView" v-html=' + this.wordText + " />";
|
|
} else if (str == "f") {
|
|
this.pdf = tab.name;
|
|
var filediv = document.getElementById("file");
|
|
filediv.innerHTML =
|
|
" <iframe width=1000 height=900 frameborder=0 scrolling=auto src=" +
|
|
tab.name +
|
|
"></iframe>";
|
|
}
|
|
},
|
|
getWordText() {
|
|
this.drawer = true;
|
|
},
|
|
readbook() {
|
|
gettechdocList({ operation: this.id, page: 0, enabled: true }).then(
|
|
(response) => {
|
|
if (response.data) {
|
|
this.techdocList = response.data;
|
|
console.log(this.techdocList);
|
|
}
|
|
}
|
|
);
|
|
},
|
|
|
|
//是否使用边角料
|
|
getList() {
|
|
getoperation(this.id).then((response) => {
|
|
if (response.data) {
|
|
this.operationData = response.data;
|
|
}
|
|
});
|
|
},
|
|
//如果使用边角料提交
|
|
scrapSubmit() {
|
|
// this.scrapData.use_scrap = this.operationData.use_scrap;
|
|
// this.scrapData.remark = this.operationData.remark;
|
|
createoperation(this.id, this.scrapData).then((res) => {
|
|
if (res.code >= 200) {
|
|
this.$message.success("成功!");
|
|
this.getList(); //
|
|
}
|
|
});
|
|
},
|
|
//操作使用的半成品
|
|
getpwpList() {
|
|
getoperationwproductList({ operation: this.id, page: 0 }).then(
|
|
(response) => {
|
|
if (response.data) {
|
|
this.operationwpData = response.data;
|
|
}
|
|
}
|
|
);
|
|
},
|
|
//半成品摆放的位置
|
|
handleupdatewproduct(scope) {
|
|
this.dialogwproductplace = true;
|
|
this.wproductplaceID=scope.row.id;
|
|
},
|
|
submitwproductplace() {
|
|
|
|
wproductPlace(this.wproductplaceID, this.wproductplace).then((res) => {
|
|
if (res.code >= 200) {
|
|
this.getpwpList();
|
|
this.dialogwproductplace = false;
|
|
this.$message.success("成功");
|
|
}
|
|
});
|
|
},
|
|
//操作半成品删除
|
|
handleDeletewproduct(scope) {
|
|
this.$confirm("确认删除该半成品?", "警告", {
|
|
confirmButtonText: "确认",
|
|
cancelButtonText: "取消",
|
|
type: "error",
|
|
})
|
|
.then(async () => {
|
|
await deleteOperationwproduct(scope.row.id);
|
|
this.getpwpList();
|
|
this.$message.success("成功");
|
|
})
|
|
.catch((err) => {
|
|
console.error(err);
|
|
});
|
|
},
|
|
//操作设备
|
|
getequList() {
|
|
getequList({ operation: this.id, page: 0 }).then((response) => {
|
|
if (response.data) {
|
|
this.equData = response.data;
|
|
}
|
|
});
|
|
},
|
|
//操作删除设备
|
|
handleDeletequip(scope) {
|
|
alert(scope.row.equip_.id);
|
|
|
|
this.$confirm("确认删除该设备?", "警告", {
|
|
confirmButtonText: "确认",
|
|
cancelButtonText: "取消",
|
|
type: "error",
|
|
})
|
|
.then(async () => {
|
|
await deleteOperationequip(scope.row.id);
|
|
this.getequList();
|
|
this.$message.success("成功");
|
|
})
|
|
.catch((err) => {
|
|
console.error(err);
|
|
});
|
|
},
|
|
//操作自定义表
|
|
getrecordLists() {
|
|
getrecordList({ operation: this.id, page: 0, enabled: true }).then(
|
|
(response) => {
|
|
if (response.data) {
|
|
this.recordData = response.data;
|
|
}
|
|
}
|
|
);
|
|
},
|
|
//调出表单内容
|
|
handlerecord(scope) {
|
|
this.tableForm = Object.assign({}, scope.row); // copy obj
|
|
this.formID = scope.row.id;
|
|
recordInit(this.formID).then((response) => {
|
|
if (response.data) {
|
|
debugger;
|
|
this.fieldList = response.data;
|
|
this.fieldList.name = response.data.form_.name;
|
|
}
|
|
});
|
|
this.dialogVisibleForm = true;
|
|
},
|
|
|
|
//工序工装列表
|
|
gettoolList() {
|
|
gettoolList({ operation: this.id, page: 0 }).then((response) => {
|
|
if (response.data) {
|
|
this.tool = response.data;
|
|
}
|
|
});
|
|
},
|
|
|
|
//提交表单内容
|
|
recordconfirm() {
|
|
let _this = this;
|
|
_this.record_data = []; //检查项目
|
|
this.fieldList.record_data.forEach((item) => {
|
|
if (item.field_type === "int") {
|
|
item.field_value = parseInt(item.field_value);
|
|
} else if (item.field_type === "float") {
|
|
item.field_value = parseFloat(item.field_value);
|
|
}
|
|
_this.record_data.push({
|
|
id: item.id,
|
|
field_value: item.field_value,
|
|
});
|
|
});
|
|
this.record.record_data = _this.record_data;
|
|
createRecord(this.formID, this.record).then((res) => {
|
|
if (res.code >= 200) {
|
|
this.getrecordLists();
|
|
this.$message.success("提交成功!");
|
|
|
|
this.dialogVisibleForm = false;
|
|
}
|
|
});
|
|
},
|
|
|
|
//操作消耗物料列表
|
|
getinputLists() {
|
|
getinputList({ operation: this.id, page: 0 }).then((response) => {
|
|
if (response.data) {
|
|
this.inputData = response.data;
|
|
}
|
|
});
|
|
},
|
|
cjllclick() {
|
|
this.dialogTablepick = true;
|
|
},
|
|
|
|
//从车间领料
|
|
getwmaterialList() {
|
|
getwmaterialList({ operation: this.id, page: 0 }).then((response) => {
|
|
if (response.data) {
|
|
this.wmaterialData = response.data;
|
|
}
|
|
});
|
|
},
|
|
//车间物料消耗提交
|
|
handlepick(scope) {
|
|
this.picks.operation = this.id;
|
|
this.picks.wmaterial = scope.row.id;
|
|
this.picks.count = scope.row.pick_count;
|
|
let _this = this;
|
|
createInput(this.picks).then((res) => {
|
|
if (res.code >= 200) {
|
|
this.$message.success("创建成功!");
|
|
_this.getinputLists();
|
|
this.dialogTablepick = false;
|
|
}
|
|
});
|
|
},
|
|
//消耗物料删除
|
|
handleDeleteinput(scope) {
|
|
this.$confirm("确认删除该消耗物料操作?", "警告", {
|
|
confirmButtonText: "确认",
|
|
cancelButtonText: "取消",
|
|
type: "error",
|
|
})
|
|
.then(async () => {
|
|
await deleteOperationeinput(scope.row.id);
|
|
this.getinputLists();
|
|
this.$message.success("成功");
|
|
})
|
|
.catch((err) => {
|
|
console.error(err);
|
|
});
|
|
},
|
|
//车间领料批量提交
|
|
handlepicks() {
|
|
let _this = this;
|
|
|
|
(this.pickDatas = []),
|
|
this.$refs.multipleTable.selection.forEach((item) => {
|
|
if (item.pick_count > 0) {
|
|
this.pickDatas.push({
|
|
operation: this.id,
|
|
wmaterial: item.id,
|
|
count: item.pick_count,
|
|
});
|
|
}
|
|
});
|
|
|
|
createInputs(this.pickDatas).then((res) => {
|
|
if (res.code >= 200) {
|
|
this.dialogTablepick = false;
|
|
this.$message.success("提交成功!");
|
|
_this.getinputLists();
|
|
}
|
|
});
|
|
},
|
|
|
|
//操作产出物料列表
|
|
getoutputLists() {
|
|
getoutputList({ operation: this.id, page: 0 }).then((response) => {
|
|
if (response.data) {
|
|
this.outputData = response.data;
|
|
}
|
|
});
|
|
},
|
|
//产出物料选择
|
|
getprogressList() {
|
|
getprogressList({ operation: this.id, page: 0, type: 2 }).then(
|
|
(response) => {
|
|
if (response.data) {
|
|
this.tprogressData = response.data;
|
|
}
|
|
}
|
|
);
|
|
},
|
|
//车间产出物料提交
|
|
handleoutput(scope) {
|
|
this.output.operation = this.id;
|
|
this.output.subproduction_progress = scope.row.id;
|
|
this.output.count = scope.row.output_count;
|
|
this.output.use_scrap = scope.row.use_scrap;
|
|
createOutput(this.output).then((res) => {
|
|
if (res.code >= 200) {
|
|
this.getoutputLists();
|
|
this.$message.success("创建成功!");
|
|
|
|
this.dialogTableoutput = false;
|
|
}
|
|
});
|
|
},
|
|
//车间产出物料批量提交
|
|
handleoutputs() {
|
|
(this.outputDatas = []),
|
|
this.$refs.multipleTables.selection.forEach((item) => {
|
|
if (item.output_count > 0) {
|
|
this.outputDatas.push({
|
|
operation: this.id,
|
|
subproduction_progress: item.id,
|
|
count: item.output_count,
|
|
use_scrap: item.use_scrap,
|
|
});
|
|
}
|
|
});
|
|
|
|
createOutputs(this.outputDatas).then((res) => {
|
|
if (res.code >= 200) {
|
|
this.dialogTableoutput = false;
|
|
|
|
this.$message.success("提交成功!");
|
|
this.getoutputLists();
|
|
}
|
|
});
|
|
},
|
|
|
|
//提交本次操作
|
|
handlesubmit() {
|
|
submitOperation(this.id).then((res) => {
|
|
if (res.code >= 200) {
|
|
this.$router.push({ name: "operation" });
|
|
this.$message.success("操作提交成功!");
|
|
}
|
|
});
|
|
},
|
|
},
|
|
};
|
|
</script>
|