rev:设备台账功能修改

This commit is contained in:
zhangzhiqiang
2023-09-21 15:17:36 +08:00
26 changed files with 756 additions and 148 deletions

View File

@@ -51,6 +51,14 @@
<label slot="label">制造国别:</label>
<el-input v-model.trim="form.country_manufactur" clearable style="width: 210px" />
</el-form-item>
<el-form-item label="PCL型号" prop="plc_model">
<label slot="label">PCL型号:</label>
<el-input v-model.trim="form.plc_model" clearable style="width: 210px" />
</el-form-item>
<el-form-item label="功率" prop="manufacturer">
<label slot="label">功率:</label>
<el-input v-model.trim="form.power" clearable style="width: 210px" />
</el-form-item>
<el-form-item label="出厂编号" prop="leavefactory_number">
<label slot="label">出厂编号:</label>
<el-input v-model.trim="form.leavefactory_number" clearable style="width: 210px" />
@@ -133,8 +141,8 @@
/>
</el-select>
</el-form-item>
<el-form-item label="内部自编号" prop="extend_code">
<label slot="label">内部自编号:</label>
<el-form-item label="erp设备标识" prop="extend_code">
<label slot="label">erp设备标识:</label>
<el-input v-model.trim="form.extend_code" clearable style="width: 210px" />
</el-form-item>
<el-form-item label="资产编码" prop="assets_code">
@@ -175,16 +183,16 @@
/>
</el-select>
</el-form-item>
<el-form-item label="理论节拍" prop="theory_beat">
<label slot="label">理论节拍:</label>
<el-input-number
v-model="form.theory_beat"
:controls="false"
:precision="3"
:min="0"
style="width: 210px"
/>
</el-form-item>
<!-- <el-form-item label="理论节拍" prop="theory_beat">-->
<!-- <label slot="label">理论节拍:</label>-->
<!-- <el-input-number-->
<!-- v-model="form.theory_beat"-->
<!-- :controls="false"-->
<!-- :precision="3"-->
<!-- :min="0"-->
<!-- style="width: 210px"-->
<!-- />-->
<!-- </el-form-item>-->
<el-form-item label="卡片编号" prop="card_code">
<label slot="label">卡片编号:</label>
<el-input v-model.trim="form.card_code" clearable style="width: 210px" />
@@ -197,26 +205,26 @@
<label slot="label">使用人:</label>
<el-input v-model.trim="form.user_name" clearable style="width: 210px" />
</el-form-item>
<el-form-item label="本币原值" prop="oraginal_value">
<label slot="label">本币原值:</label>
<el-input-number
v-model="form.oraginal_value"
:controls="false"
:precision="3"
:min="0"
style="width: 210px"
/>
</el-form-item>
<el-form-item label="净额" prop="net_amount">
<label slot="label">净额:</label>
<el-input-number
v-model="form.net_amount"
:controls="false"
:precision="3"
:min="0"
style="width: 210px"
/>
</el-form-item>
<!-- <el-form-item label="本币原值" prop="oraginal_value">-->
<!-- <label slot="label">本币原值:</label>-->
<!-- <el-input-number-->
<!-- v-model="form.oraginal_value"-->
<!-- :controls="false"-->
<!-- :precision="3"-->
<!-- :min="0"-->
<!-- style="width: 210px"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="净额" prop="net_amount">-->
<!-- <label slot="label">净额:</label>-->
<!-- <el-input-number-->
<!-- v-model="form.net_amount"-->
<!-- :controls="false"-->
<!-- :precision="3"-->
<!-- :min="0"-->
<!-- style="width: 210px"-->
<!-- />-->
<!-- </el-form-item>-->
<el-form-item label="备注" prop="remark">
<label slot="label">备&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;注:</label>
<el-input v-model.trim="form.remark" style="width: 480px;" rows="3" type="textarea" :disabled="crud.status.view > 0" />

View File

@@ -0,0 +1,121 @@
<template>
<el-dialog
title="导入Excel文件"
append-to-body
:visible.sync="dialogVisible"
destroy-on-close
width="400px"
:show-close="true"
@close="close"
@open="open"
>
<el-upload
ref="upload"
class="upload-demo"
action=""
drag
:on-exceed="is_one"
:limit="1"
:auto-upload="false"
:multiple="false"
:show-file-list="true"
:on-change="uploadByJsqd"
:file-list="fileList"
accept=".xlsx,.xls"
>
<i class="el-icon-upload" />
<div class="el-upload__text">
将文件拖到此处
<em>点击上传</em>
</div>
<div slot="tip" class="el-upload__tip">只能上传Excel文件且不超过10MB</div>
</el-upload>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false"> </el-button>
<el-button type="primary" @click="submit"> </el-button>
</span>
</el-dialog>
</template>
<script>
import crudEquipmentfile from '@/views/wms/device_manage/deviceFile/equipmentfile/equipmentfile'
import CRUD, { crud } from '@crud/crud'
export default {
name: 'UploadDialog',
mixins: [crud()],
components: {},
props: {
dialogShow: {
type: Boolean,
default: false
},
openParam: {
type: String
}
},
data() {
return {
dialogVisible: false,
fileList: [],
file1: ''
}
},
watch: {
dialogShow: {
handler(newValue, oldValue) {
this.dialogVisible = newValue
}
},
openParam: {
handler(newValue, oldValue) {
this.opendtlParam = newValue
}
}
},
methods: {
open() {
},
close() {
this.$emit('update:dialogShow', false)
},
is_one() {
this.crud.notify('只能上传一个excel文件', CRUD.NOTIFICATION_TYPE.WARNING)
},
// 文件校验方法
beforeAvatarUpload(file) {
// 不能导入大小超过2Mb的文件
if (file.size > 10 * 1024 * 1024) {
return false
}
return true
},
// 文件发生改变就会触发的事件
uploadByJsqd(file) {
this.file1 = file
},
submit() {
if (this.beforeAvatarUpload(this.file1)) {
this.fileList.name = this.file1.name
this.fileList.url = ''
var formdata = new FormData()
formdata.append('file', this.file1.raw)
crudEquipmentfile.excelImport(formdata).then((res) => {
this.crud.notify('导入成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
this.$emit('tableChanged3', '')
this.$emit('update:dialogShow', false)
}).catch(err => {
// const list = err.response.data.message
// download2('/api/produceWorkorder/download', list).then(result => {
// downloadFile(result, '错误信息汇总', 'xlsx')
// crud.downloadLoading = false
// })
})
} else {
this.crud.notify('文件过大请上传小于10MB的文件〜', CRUD.NOTIFICATION_TYPE.WARNING)
}
}
}
}
</script>

View File

@@ -51,6 +51,14 @@
<label slot="label">制造国别:</label>
<el-input v-model.trim="form.country_manufactur" disabled style="width: 210px" />
</el-form-item>
<el-form-item label="PCL型号" prop="plc_model">
<label slot="label">PCL型号:</label>
<el-input v-model.trim="form.plc_model" clearable style="width: 210px" />
</el-form-item>
<el-form-item label="功率" prop="manufacturer">
<label slot="label">功率:</label>
<el-input v-model.trim="form.power" clearable style="width: 210px" />
</el-form-item>
<el-form-item label="出厂编号" prop="leavefactory_number">
<label slot="label">出厂编号:</label>
<el-input v-model.trim="form.leavefactory_number" disabled style="width: 210px" />
@@ -123,8 +131,8 @@
/>
</el-select>
</el-form-item>
<el-form-item label="内部自编号" prop="extend_code">
<label slot="label">内部自编号:</label>
<el-form-item label="erp设备标识" prop="extend_code">
<label slot="label">erp设备标识:</label>
<el-input v-model.trim="form.extend_code" disabled style="width: 210px" />
</el-form-item>
<el-form-item label="资产编码" prop="assets_code">
@@ -159,17 +167,17 @@
/>
</el-select>
</el-form-item>
<el-form-item label="理论节拍" prop="theory_beat">
<label slot="label">理论节拍:</label>
<el-input-number
v-model="form.theory_beat"
:controls="false"
:precision="3"
disabled
:min="0"
style="width: 210px"
/>
</el-form-item>
<!-- <el-form-item label="理论节拍" prop="theory_beat">-->
<!-- <label slot="label">理论节拍:</label>-->
<!-- <el-input-number-->
<!-- v-model="form.theory_beat"-->
<!-- :controls="false"-->
<!-- :precision="3"-->
<!-- disabled-->
<!-- :min="0"-->
<!-- style="width: 210px"-->
<!-- />-->
<!-- </el-form-item>-->
<el-form-item label="卡片编号" prop="card_code">
<label slot="label">卡片编号:</label>
<el-input v-model.trim="form.card_code" disabled style="width: 210px" />
@@ -182,28 +190,28 @@
<label slot="label">使用人:</label>
<el-input v-model.trim="form.user_name" disabled style="width: 210px" />
</el-form-item>
<el-form-item label="本币原值" prop="oraginal_value">
<label slot="label">本币原值:</label>
<el-input-number
v-model="form.oraginal_value"
:controls="false"
:precision="3"
disabled
:min="0"
style="width: 210px"
/>
</el-form-item>
<el-form-item label="净额" prop="net_amount">
<label slot="label">净额:</label>
<el-input-number
v-model="form.net_amount"
:controls="false"
disabled
:precision="3"
:min="0"
style="width: 210px"
/>
</el-form-item>
<!-- <el-form-item label="本币原值" prop="oraginal_value">-->
<!-- <label slot="label">本币原值:</label>-->
<!-- <el-input-number-->
<!-- v-model="form.oraginal_value"-->
<!-- :controls="false"-->
<!-- :precision="3"-->
<!-- disabled-->
<!-- :min="0"-->
<!-- style="width: 210px"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="净额" prop="net_amount">-->
<!-- <label slot="label">净额:</label>-->
<!-- <el-input-number-->
<!-- v-model="form.net_amount"-->
<!-- :controls="false"-->
<!-- disabled-->
<!-- :precision="3"-->
<!-- :min="0"-->
<!-- style="width: 210px"-->
<!-- />-->
<!-- </el-form-item>-->
<el-form-item label="备注" prop="remark">
<label slot="label">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</label>
<el-input v-model.trim="form.remark" style="width: 480px;" rows="3" type="textarea" disabled />

View File

@@ -94,4 +94,13 @@ export function queryBomList(params) {
params
})
}
export default { add, edit, del, submit, queryivt1, queryivt2, queryivt3, queryivt4, queryivt5, queryivt6, queryivt7, queryBomList }
export function excelImport(data) {
return request({
url: 'api/equipmentfile/excelImport',
method: 'post',
data
})
}
export default { excelImport, add, edit, del, submit, queryivt1, queryivt2, queryivt3, queryivt4, queryivt5, queryivt6, queryivt7, queryBomList }

View File

@@ -195,6 +195,16 @@
>
导出excel
</el-button>
<el-button
slot="right"
class="filter-item"
type="warning"
icon="el-icon-upload2"
size="mini"
@click="uploadShow = true"
>
导入
</el-button>
</crudOperation>
<!--表格渲染-->
<el-table
@@ -229,7 +239,7 @@
</template>
</el-table-column>
<el-table-column prop="device_name" min-width="150" label="设备名称" />
<el-table-column prop="extend_code" min-width="100" label="内部自编号" />
<el-table-column prop="extend_code" min-width="100" label="erp设备标识" />
<el-table-column prop="device_model" min-width="130" label="设备型号" />
<el-table-column prop="device_spec" min-width="130" label="设备规格" />
<el-table-column prop="device_level" min-width="90" label="设备等级" :formatter="device_levelFormat" />
@@ -241,6 +251,8 @@
<el-table-column prop="supplier_name" min-width="180" label="供应商" show-overflow-tooltip />
<el-table-column prop="manufacturer" min-width="180" label="制造商" show-overflow-tooltip />
<el-table-column prop="country_manufactur" min-width="90" label="制造国别" show-overflow-tooltip />
<el-table-column prop="plc_model" min-width="90" label="plc型号" show-overflow-tooltip />
<el-table-column prop="power" min-width="90" label="功率" show-overflow-tooltip />
<el-table-column prop="leavefactory_date" min-width="80" label="出厂日期" show-overflow-tooltip />
<el-table-column prop="leavefactory_number" min-width="130" label="出厂编号" show-overflow-tooltip />
<el-table-column prop="drawing_number" min-width="130" label="图号" show-overflow-tooltip />
@@ -259,6 +271,7 @@
<AddDialog @AddChanged="querytable" />
<ViewDialog :dialog-show.sync="viewShow" :rowmst="mstrow" @AddChanged="querytable" />
<ChangeDialog :dialog-show.sync="changeShow" :rowmst="mstrow" @AddChanged="querytable" />
<UploadDialog :dialog-show.sync="uploadShow" @tableChanged3="tableChanged3"/>
</div>
</template>
@@ -280,10 +293,12 @@ import crudClassstandard from '@/api/wms/basedata/master/classstandard'
import crudMaterialbase from '@/api/wms/basedata/master/materialbase'
import { download } from '@/api/data'
import { downloadFile } from '@/utils'
import UploadDialog from '@/views/wms/device_manage/deviceFile/equipmentfile/UploadDialog'
export default {
name: 'Equipmentfile',
components: { Treeselect, ChangeDialog, ViewDialog, AddDialog, crudOperation, rrOperation, udOperation, pagination },
components: { UploadDialog, Treeselect, ChangeDialog, ViewDialog, AddDialog, crudOperation, rrOperation, udOperation, pagination },
cruds() {
return CRUD({ title: '设备档案', idField: 'devicerecord_id', url: 'api/equipmentfile', crudMethod: { ...equipmentfile },
optShow: {
@@ -309,6 +324,7 @@ export default {
class_idStr: null,
mstrow: {},
XLList: [],
uploadShow: false,
depts: [],
classes: [],
workProcedureList: [],
@@ -341,6 +357,9 @@ export default {
canUd(row) {
return row.status !== '00'
},
tableChanged3() {
this.crud.toQuery()
},
seriesFormat2(row) {
for (const item of this.workProcedureList) {
if (item.workprocedure_id === row.workprocedure_id) {

View File

@@ -180,7 +180,8 @@
{{ fun(scope.row.total_qty) }}
</template>
</el-table-column>
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="备注" align="center" prop="remark" show-overflow-tooltip min-width="120" />
<el-table-column label="来源单据号" align="center" prop="source_id" show-overflow-tooltip min-width="120" />
<el-table-column label="制单人" align="center" prop="create_name" />
<el-table-column label="制单时间" align="center" prop="create_time" width="150" />
<el-table-column label="修改人" align="center" prop="update_name" />
@@ -244,7 +245,7 @@ export default {
mstrow: {},
divShow: false,
currentRow: null,
storlist: [],
storlist: []
}
},
computed: {

View File

@@ -77,6 +77,9 @@
/>
</el-select>
</el-form-item>
<el-form-item v-show="crud.status.edit !== 0 || crud.status.view !== 0 " label="维修人" prop="update_optname">
<el-input v-show="crud.status.edit !== 0 || crud.status.view !== 0 " v-model.trim="form.update_optname" style="width: 200px;" :disabled="crud.status.view > 0" />
</el-form-item>
<el-form-item v-show="crud.status.edit === 1" label="预计修复时间(小时)" prop="estimaterepair_times">
<el-input-number v-show="crud.status.edit === 1" v-model="form.estimaterepair_times" :disabled="crud.status.view > 0" :precision="1" :min="0" :max="999" style="width: 200px" :controls="false" />
</el-form-item>

View File

@@ -152,4 +152,12 @@ export function getDeviceInfo(data) {
})
}
export default { findByCode, add, edit, del, getDtl, submit, startRepair, endRepair, submitRepair, confirmRepair, submitResuft, getResult, outRepair, checkRepair, uditRepair, getNormBom, getFileBom, submitReceive, getDeviceInfo }
export function getIosMst(data) {
return request({
url: 'api/devicerepairquery/getIosMst',
method: 'post',
data
})
}
export default { findByCode, add, edit, del, getDtl, submit, startRepair, endRepair, submitRepair, confirmRepair, submitResuft, getResult, outRepair, checkRepair, uditRepair, getNormBom, getFileBom, submitReceive, getDeviceInfo, getIosMst }

View File

@@ -93,7 +93,7 @@
<!--表格渲染-->
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="mini" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
<el-table-column type="selection" min-width="35" />
<el-table-column prop="repair_code" label="维修单号" min-width="140px" >
<el-table-column prop="repair_code" label="维修单号" min-width="140px">
<template slot-scope="scope">
<el-link type="warning" @click="crud.toView(scope.row)">{{ scope.row.repair_code }}</el-link>
</template>
@@ -134,7 +134,7 @@
<!--分页组件-->
<pagination />
</div>
<AddDialog/>
<AddDialog />
</div>
</template>
@@ -155,7 +155,7 @@ import AddDialog from '@/views/wms/device_manage/repair/devicerepair/AddDialog'
export default {
name: 'Devicerepair',
dicts: ['EM_DEVICE_WX_INVTYPE', 'EM_DEVICE_WX_INVSTATUS', 'EM_FAULT_LEVEL'],
components: {AddDialog, pagination, crudOperation, rrOperation, udOperation, DateRangePicker, Treeselect },
components: { AddDialog, pagination, crudOperation, rrOperation, udOperation, DateRangePicker, Treeselect },
mixins: [presenter(), header(), crud()],
cruds() {
return CRUD({
@@ -244,6 +244,9 @@ export default {
if (data.invstatus !== '01') {
return this.crud.notify('只能对生成状态的单据提交', CRUD.NOTIFICATION_TYPE.INFO)
}
if (data.update_optname === '') {
return this.crud.notify('维修人不允许为空', CRUD.NOTIFICATION_TYPE.INFO)
}
crudDevicerepairmst.submit(data).then(res => {
this.crud.notify('提交成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
this.crud.toQuery()
@@ -320,7 +323,6 @@ export default {
color: "#CCCFD6";
}
.vue-treeselect--has-value .vue-treeselect__input {

View File

@@ -7,6 +7,7 @@
:before-close="handleClose"
destroy-on-close
@close="close"
@open="open"
>
<el-row>
<el-col :span="18" style="border: 1px solid white">
@@ -14,7 +15,7 @@
</el-col>
<el-col :span="6">
<span>
<el-button icon="el-icon-check" size="mini" type="primary" @click="submitMain">预保存</el-button>
<!-- <el-button icon="el-icon-check" size="mini" type="primary" @click="submitMain">预保存</el-button>-->
<el-button icon="el-icon-check" size="mini" type="primary" @click="endRepair">保存并结束</el-button>
<el-button icon="el-icon-close" size="mini" type="info" @click="close">关闭</el-button>
</span>
@@ -23,19 +24,19 @@
<el-form ref="form" style="border: 1px solid #cfe0df;margin-top: 10px;padding-top: 10px;" :inline="true" :model="form" size="mini" label-width="120px" label-suffix=":">
<el-row>
<el-col :span="8">
<el-col :span="6">
<el-form-item label="单据号" prop="repair_code">
<el-input v-model.trim="form.repair_code" style="width: 200px;" disabled placeholder="系统自动生成" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="6">
<el-form-item label="计划维修日期" prop="plan_start_date">
<el-date-picker v-model="form.plan_start_date" type="date" placeholder="选择日期" style="width: 200px" value-format="yyyy-MM-dd" disabled />
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="6">
<el-form-item label="维修类型" prop="maintenancecycle">
<el-select
v-model="form.maintenancecycle"
@@ -55,21 +56,26 @@
</el-row>
<el-row>
<el-col :span="8">
<el-col :span="6">
<el-form-item label="设备名称" prop="device_name">
<el-input v-model.trim="form.device_name" :disabled="true" style="width: 200px;" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="6">
<el-form-item label="维修人" prop="update_optname">
<el-input v-model.trim="form.update_optname" style="width: 200px;" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="6">
<el-form-item label="班组配合人" prop="product_person_name">
<el-input v-model.trim="form.product_person_name" style="width: 200px;" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="备件出库">
<el-switch v-model="form.switch" active-color="#13ce66" inactive-color="#ff4949" />
</el-form-item>
</el-col>
</el-row>
<el-row>
@@ -122,6 +128,23 @@
<span class="role-span">项目明细</span>
</div>
<div class="crud-opts2" style="margin-bottom: 5px;">
<span class="crud-opts-right2">
<!--左侧插槽-->
<slot name="left" />
<el-button
slot="right"
class="filter-item"
type="success"
icon="el-icon-position"
size="mini"
@click="putItem"
>
添加项目
</el-button>
</span>
</div>
<el-card class="box-card" shadow="never" :body-style="{padding:'0'}">
<!--表格渲染-->
<el-table
@@ -154,18 +177,159 @@
</el-select>
</template>
</el-table-column>
<el-table-column v-permission="[]" label="操作" width="120px" align="center" fixed="right">
<template slot-scope="scope">
<el-button type="danger" class="filter-item" size="mini" icon="el-icon-delete" :disabled="scope.row.isfinish === '1'" @click.native.prevent="delRow(scope.$index, form.tableData)" />
</template>
</el-table-column>
</el-table>
</el-card>
<div v-if="form.switch" class="crud-opts2">
<span class="role-span">新增备件出库</span> &nbsp;&nbsp;&nbsp;
</div>
<div v-if="form.switch" class="crud-opts2">
<el-form
ref="form"
:inline="true"
:model="form2"
:rules="rules"
size="mini"
label-width="85px"
label-suffix=":"
>
<el-form-item label="业务类型" prop="bill_type">
<el-select
v-model="form2.bill_type"
clearable
size="mini"
placeholder="业务类型"
class="filter-item"
>
<el-option
v-for="item in dict.EM_BI_OUT_TYPE"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="仓库" prop="stor_id">
<label slot="label">仓库</label>
<el-select
v-model="form2.stor_id"
clearable
class="filter-item"
style="width: 210px"
>
<el-option
v-for="item in storlist"
:key="item.stor_id"
:label="item.stor_name"
:value="item.stor_id"
/>
</el-select>
</el-form-item>
<el-form-item label="车间" prop="workshop_id">
<label slot="label">车间</label>
<el-select
v-model="form2.workshop_id"
clearable
size="mini"
placeholder="全部"
class="filter-item"
>
<el-option
v-for="item in dict.product_area"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-form>
</div>
<div v-if="form.switch" class="crud-opts2" style="margin-bottom: 5px;">
<span class="crud-opts-right2">
<!--左侧插槽-->
<slot name="left" />
<el-button
slot="right"
class="filter-item"
type="success"
icon="el-icon-position"
size="mini"
@click="insertEvent"
>
添加库存
</el-button>
</span>
</div>
<el-card v-if="form.switch" class="box-card" shadow="never" :body-style="{padding:'0'}">
<!--表格渲染-->
<el-table
ref="table2"
:data="form2.tableDataDtl"
style="width: 100%;"
max-height="500"
border
:highlight-current-row="true"
:header-cell-style="{background:'#f5f7fa',color:'#606266'}"
>
<el-table-column type="index" label="序号" width="55" align="center" />
<el-table-column show-overflow-tooltip prop="material_code" label="备件编码" />
<el-table-column show-overflow-tooltip prop="material_name" label="备件名称" />
<el-table-column show-overflow-tooltip prop="plan_qty" label="出库数量">
<template slot-scope="scope">
<el-input-number
v-model="form2.tableDataDtl[scope.$index].plan_qty"
size="small"
:controls="false"
controls-position="right"
precision="3"
:min="0"
/>
</template>
</el-table-column>
<el-table-column show-overflow-tooltip prop="qty_unit_name" label="单位" />
<el-table-column show-overflow-tooltip prop="remark" label="明细备注">
<template slot-scope="scope">
<el-input
v-model="form2.tableDataDtl[scope.$index].remark"
size="small"
:controls="false"
controls-position="right"
/>
</template>
</el-table-column>
<el-table-column v-permission="[]" label="操作" width="120px" align="center" fixed="right">
<template slot-scope="scope">
<el-button type="danger" class="filter-item" size="mini" icon="el-icon-delete" @click.native.prevent="delRow(scope.$index, form2.tableDataDtl)" />
</template>
</el-table-column>
</el-table>
</el-card>
<ItemDialog :dialog-show.sync="itemDialog" :is-single="false" :open-param="openParam" @tableChanged1="tableChanged1" />
<StructIvt :dialog-show.sync="ivtShow" @setMaterValue="tableChanged" />
</el-dialog>
</template>
<script>
import CRUD, { crud } from '@crud/crud'
import crudDevicerepairmst from '@/views/wms/device_manage/repair/devicerepair/devicerepairmst'
import ItemDialog from '@/views/wms/device_manage/repair/devicerepairplan/ItemDialog'
import crudStorattr from '@/views/wms/storage_manage/basedata/basedata'
import StructIvt from '@/views/wms/device_manage/ios/embiout/StructIvt'
export default {
name: 'ExecuteDialog',
dicts: ['EM_DEVICE_WX_INVTYPE', 'IS_OR_NOT'],
dicts: ['EM_DEVICE_WX_INVTYPE', 'IS_OR_NOT', 'EM_BI_OUT_TYPE', 'product_area'],
components: { ItemDialog, StructIvt },
mixins: [crud()],
props: {
dialogShow: {
@@ -179,8 +343,19 @@ export default {
data() {
return {
form: {
switch: false,
tableData: []
},
form2: {
bill_type: '',
stor_id: '',
workshop_id: '',
total_qty: '0',
tableDataDtl: []
},
storlist: [],
itemDialog: false,
ivtShow: false,
dialogVisible: false
}
},
@@ -202,6 +377,11 @@ export default {
.catch(_ => {
})
},
open() {
crudStorattr.getStor({ 'stor_type': '6' }).then(res => {
this.storlist = res.content
})
},
close() {
this.$emit('update:dialogShow', false)
},
@@ -214,12 +394,95 @@ export default {
})
},
endRepair() {
const data = this.form
// 校验备件出库
if (this.form.switch) {
if (this.form2.bill_type === '') {
this.crud.notify('请选择业务类型!', CRUD.NOTIFICATION_TYPE.INFO)
return false
}
if (this.form2.stor_id === '') {
this.crud.notify('请选择仓库!', CRUD.NOTIFICATION_TYPE.INFO)
return false
}
if (this.form2.workshop_id === '') {
this.crud.notify('请选择车间!', CRUD.NOTIFICATION_TYPE.INFO)
return false
}
if (this.form2.tableDataDtl.length === 0) {
this.crud.notify('请添加备件!', CRUD.NOTIFICATION_TYPE.INFO)
return false
}
for (let i = 0; i < this.form2.tableDataDtl.length; i++) {
const row = this.form2.tableDataDtl[i]
if (!row.plan_qty) {
this.crud.notify('数量不能为空', CRUD.NOTIFICATION_TYPE.INFO)
return false
}
}
}
const data = {
'form': this.form,
'form2': this.form2
}
crudDevicerepairmst.endRepair(data).then(res => {
this.crud.notify('操作成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
this.crud.toQuery()
this.dialogVisible = false
})
},
putItem() {
this.openParam = this.form
this.itemDialog = true
},
tableChanged1(row) {
const arr = row
const data = this.form.tableData
arr.forEach((item) => {
if (this.form.tableData.length !== 0) {
this.fla = false
for (let i = 0; i < data.length; i++) {
if (data[i].repair_item_id === item.repair_item_id) {
this.fla = true
}
}
if (this.fla === false) {
this.form.tableData.push(item)
}
} else {
this.form.tableData.push(item)
}
})
},
insertEvent(row) {
this.ivtShow = true
},
delRow(index, rows) {
rows.splice(index, 1)
},
tableChanged(rows) {
// 对新增的行进行校验不能存在相同物料批次
rows.forEach((item) => {
let same_mater = true
this.form2.tableDataDtl.forEach((row) => {
if (row.material_code === item.material_code) {
same_mater = false
}
})
if (same_mater) {
item.quality_scode = '01'
item.ivt_level = '01'
item.is_active = '1'
item.plan_qty = item.canuse_qty
this.form2.total_qty = parseFloat(this.form2.total_qty) + parseFloat(item.plan_qty)
this.form2.tableDataDtl.splice(-1, 0, item)
}
})
this.form2.detail_count = this.form2.tableDataDtl.length
}
}
}
@@ -250,4 +513,8 @@ export default {
background-color: #fff;
}
.crud-opts2 .crud-opts-right2 {
margin-left: auto;
}
</style>

View File

@@ -9,13 +9,13 @@
@close="close"
>
<el-form ref="form" :inline="true" :model="form4" :rules="rules" size="mini" label-width="150px" label-suffix=":">
<el-row>
<!-- <el-row>
<el-col :span="24">
<el-form-item label="维修人" prop="update_optname">
<el-input v-model.trim="form4.update_optname" style="width: 200px;" />
</el-form-item>
</el-col>
</el-row>
</el-row>-->
<el-row>
<el-col :span="24">
<el-form-item label="预计修复时间(小时)" prop="estimaterepair_times">

View File

@@ -1,12 +1,13 @@
<template>
<el-dialog
title="维修领用"
title="维修详情"
append-to-body
:visible.sync="dialogVisible"
fullscreen
:before-close="handleClose"
destroy-on-close
@close="close"
@open="open"
>
<el-row :gutter="20">
<el-col :span="20" style="border: 1px solid white">
@@ -97,22 +98,7 @@
</el-card>
<div class="crud-opts2">
<span class="role-span">设备bom</span>
<span class="crud-opts-right2">
<!--左侧插槽-->
<slot name="left" />
<el-button
slot="left"
class="filter-item"
type="primary"
icon="el-icon-check"
size="mini"
disabled
@click="addChange"
>
添加更换件
</el-button>
</span>
<span class="role-span">备件出库明细</span>
</div>
<el-card class="box-card" shadow="never" :body-style="{padding:'0'}">
@@ -127,18 +113,11 @@
:header-cell-style="{background:'#f5f7fa',color:'#606266'}"
>
<el-table-column type="index" label="序号" width="55" align="center" />
<el-table-column show-overflow-tooltip prop="repair_item_code" label="维修项目编号" align="center" />
<el-table-column show-overflow-tooltip prop="device_code" label="设备编码" align="center" />
<el-table-column show-overflow-tooltip prop="material_code" label="物料编码" align="center" />
<el-table-column show-overflow-tooltip prop="material_name" label="物料名称" align="center" />
<el-table-column show-overflow-tooltip prop="sparepart_only_id" label="备件唯一标识" align="center" />
<el-table-column show-overflow-tooltip prop="change_only_id" label="更换备件唯一标识" align="center" />
<el-table-column v-permission="[]" label="操作" width="120px" align="center" fixed="right">
<template slot-scope="scope">
<el-button type="danger" disabled class="filter-item" size="mini" icon="el-icon-delete" @click.native.prevent="delRow(scope.$index, tableData)" />
</template>
</el-table-column>
<el-table-column show-overflow-tooltip prop="material_code" label="备件编码" />
<el-table-column show-overflow-tooltip prop="material_name" label="备件名称" />
<el-table-column show-overflow-tooltip prop="plan_qty" label="出库数量" />
<el-table-column show-overflow-tooltip prop="qty_unit_name" label="单位" />
<el-table-column show-overflow-tooltip prop="remark" label="明细备注" />
</el-table>
</el-card>
@@ -152,6 +131,7 @@
import crudDevicerepairmst from '@/views/wms/device_manage/repair/devicerepair/devicerepairmst'
import CRUD, { crud } from '@crud/crud'
import AddChangeDialog from '@/views/wms/device_manage/repair/devicerepairpa/AddChangeDialog'
import crudProductOut from '@/views/wms/device_manage/ios/embiout/embiout'
export default {
name: 'ReceiveDialog',
@@ -188,6 +168,13 @@ export default {
}
},
methods: {
open() {
crudDevicerepairmst.getIosMst(this.form3).then(res => {
crudProductOut.getIODtl({ 'iostorinv_id': res.iostorinv_id }).then(res => {
this.tableData = res
})
})
},
handleClose(done) {
this.$confirm('确认关闭?')
.then(_ => {
@@ -239,7 +226,6 @@ export default {
this.form3.device_id = row.device_id
},
tableChanged(rows) {
const arr = rows
arr.forEach((item) => {
this.tableData.push(item)