|
|
|
|
<template>
|
|
|
|
|
<basic-container>
|
|
|
|
|
<avue-crud ref="materalCrud" :option="option" :table-loading="loading" :data="data" v-model="form" v-model:page="page"
|
|
|
|
|
@row-del="rowDel" @search-change="searchChange" @search-reset="searchReset"
|
|
|
|
|
@row-save="rowSave" @row-update="rowUpdate"
|
|
|
|
|
@selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange"
|
|
|
|
|
@refresh-change="refreshChange" @on-load="onLoad">
|
|
|
|
|
<!-- <template #goodsCode="{ row }">{{ row.coGoods.goodsCode }}</template>
|
|
|
|
|
<template #goodsName="{ row }">{{ row.coGoods.goodsName }}</template>
|
|
|
|
|
<template #bsBasicClass="{ row }">{{ row.bsBasicClass.name }}</template>
|
|
|
|
|
<template #turnover="{ row }">{{ row.turnover.userName }}</template>
|
|
|
|
|
<template #mtltmrk="{ row }">{{ row.coGoods.mtltmrk }}</template>
|
|
|
|
|
<template #specifications="{ row }">{{ row.coGoods.specifications }}</template> -->
|
|
|
|
|
<template #menu-left>
|
|
|
|
|
<el-button type="danger" @click="handleDelete">删除</el-button>
|
|
|
|
|
<el-button type="primary" @click="handlePaint">缺漆信息</el-button>
|
|
|
|
|
</template>
|
|
|
|
|
<template #menu-right>
|
|
|
|
|
<el-button type="danger" @click="handleSearch(1)" plain>需报料</el-button>
|
|
|
|
|
<el-button type="warning" @click="handleSearch(2)" plain>需跟踪</el-button>
|
|
|
|
|
<el-button type="primary" @click="handleSearch(3)" plain>待领料</el-button>
|
|
|
|
|
<el-button type="success" @click="handleSearch(4)" plain>正常</el-button>
|
|
|
|
|
<el-button type="info" @click="handleSearch(5)" plain>长期未使用</el-button>
|
|
|
|
|
</template>
|
|
|
|
|
</avue-crud>
|
|
|
|
|
<paint-loss-dialog v-if="isOpen" :openShow="isOpen" title="缺漆信息" :data="laInData"></paint-loss-dialog>
|
|
|
|
|
</basic-container>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
import {getMaterialStatusList,addMaterialStatus,editMaterialStatus,delMaterialStatus} from "@/api/storeManagement/materialPreserve"
|
|
|
|
|
import paintLossDialog from './components/paintLossDialog.vue'
|
|
|
|
|
export default {
|
|
|
|
|
components: {
|
|
|
|
|
paintLossDialog
|
|
|
|
|
},
|
|
|
|
|
data() {
|
|
|
|
|
return {
|
|
|
|
|
selectionList: [],
|
|
|
|
|
loading: false,
|
|
|
|
|
data: [],
|
|
|
|
|
form: {},
|
|
|
|
|
page: {
|
|
|
|
|
pageSize: 10,
|
|
|
|
|
currentPage: 1,
|
|
|
|
|
total: 0,
|
|
|
|
|
},
|
|
|
|
|
isOpen:false,
|
|
|
|
|
query:{},
|
|
|
|
|
laInData:[],
|
|
|
|
|
option: {
|
|
|
|
|
tip: false,
|
|
|
|
|
align: 'center',
|
|
|
|
|
size: 'medium',
|
|
|
|
|
height: 'auto',
|
|
|
|
|
|
|
|
|
|
labelWidth: 150,
|
|
|
|
|
simplePage: true,
|
|
|
|
|
searchShow: true,
|
|
|
|
|
searchMenuSpan: 6,
|
|
|
|
|
searchIcon: true,
|
|
|
|
|
searchIndex: 3,
|
|
|
|
|
tree: false,
|
|
|
|
|
border: true,
|
|
|
|
|
selection: true,
|
|
|
|
|
viewBtn: false,
|
|
|
|
|
editBtn: true,
|
|
|
|
|
addBtn: true,
|
|
|
|
|
delBtn: false,
|
|
|
|
|
editBtnText: '修改',
|
|
|
|
|
addBtnIcon: ' ',
|
|
|
|
|
viewBtnIcon: ' ',
|
|
|
|
|
delBtnIcon: ' ',
|
|
|
|
|
editBtnIcon: ' ',
|
|
|
|
|
viewBtnText: '详情',
|
|
|
|
|
menuWidth: 70,
|
|
|
|
|
dialogWidth: 1200,
|
|
|
|
|
dialogClickModal: false,
|
|
|
|
|
searchEnter: true,
|
|
|
|
|
excelBtn: false,
|
|
|
|
|
filterBtn: true,
|
|
|
|
|
searchShowBtn: false,
|
|
|
|
|
excelBtn: true,
|
|
|
|
|
index: false,
|
|
|
|
|
showOverflowTooltip: true,
|
|
|
|
|
searchLabelPosition: 'left',
|
|
|
|
|
searchLabelPosition: 'left',
|
|
|
|
|
searchGutter: 24,
|
|
|
|
|
searchSpan: 6,
|
|
|
|
|
menuAlign: 'left',
|
|
|
|
|
gridBtn: false,
|
|
|
|
|
searchMenuPosition: 'right',
|
|
|
|
|
column: [
|
|
|
|
|
{
|
|
|
|
|
label: '物料编码',
|
|
|
|
|
prop: 'goodsId',
|
|
|
|
|
type: 'select',
|
|
|
|
|
addDisplay: true,
|
|
|
|
|
editDisplay: true,
|
|
|
|
|
span: 8,
|
|
|
|
|
width: 200,
|
|
|
|
|
search: true,
|
|
|
|
|
//
|
|
|
|
|
rules: [
|
|
|
|
|
{
|
|
|
|
|
required: true,
|
|
|
|
|
message: '请输入物料编码',
|
|
|
|
|
trigger: 'click',
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
props: {
|
|
|
|
|
label: 'goodsCode',
|
|
|
|
|
value: 'goodsId'
|
|
|
|
|
},
|
|
|
|
|
dicUrl:"/api/blade-wms/stGoods/list",
|
|
|
|
|
remote: true,
|
|
|
|
|
props:{
|
|
|
|
|
label: 'goodsCode',
|
|
|
|
|
value: 'id',
|
|
|
|
|
res: 'data.records',
|
|
|
|
|
},
|
|
|
|
|
onChange:(value =>{
|
|
|
|
|
let tmp = value.dic.find(item => item.id == value.value)
|
|
|
|
|
this.form.goodsName = tmp.goodsName
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label: '物料名称',
|
|
|
|
|
prop: 'goodsName',
|
|
|
|
|
addDisabled: true,
|
|
|
|
|
addDisplay: true,
|
|
|
|
|
editDisplay: true,
|
|
|
|
|
span: 8,
|
|
|
|
|
width: 200,
|
|
|
|
|
search: true,
|
|
|
|
|
rules: [
|
|
|
|
|
{
|
|
|
|
|
required: true,
|
|
|
|
|
message: '请输入物料名称',
|
|
|
|
|
trigger: 'click',
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
// {
|
|
|
|
|
// label: '物料标记',
|
|
|
|
|
// prop: 'bsBasicClass',
|
|
|
|
|
// type: 'select',
|
|
|
|
|
// addDisplay: true,
|
|
|
|
|
// editDisplay: true,
|
|
|
|
|
// span: 8,
|
|
|
|
|
// width: 200,
|
|
|
|
|
// search: true,
|
|
|
|
|
// rules: [
|
|
|
|
|
// {
|
|
|
|
|
// required: true,
|
|
|
|
|
// message: '请输入物料标记',
|
|
|
|
|
// trigger: 'click',
|
|
|
|
|
// },
|
|
|
|
|
// ],
|
|
|
|
|
// props: {
|
|
|
|
|
// label: 'name',
|
|
|
|
|
// value: 'code'
|
|
|
|
|
// },
|
|
|
|
|
// dicData: [
|
|
|
|
|
// {
|
|
|
|
|
// "bcId": 49,
|
|
|
|
|
// "code": "11",
|
|
|
|
|
// "deleted": false,
|
|
|
|
|
// "keyValue": 49,
|
|
|
|
|
// "memo": "11",
|
|
|
|
|
// "name": "bj01",
|
|
|
|
|
// "type": 1,
|
|
|
|
|
// "updateTime": null
|
|
|
|
|
// },
|
|
|
|
|
// {
|
|
|
|
|
// "bcId": 69,
|
|
|
|
|
// "code": "bj02",
|
|
|
|
|
// "deleted": false,
|
|
|
|
|
// "keyValue": 69,
|
|
|
|
|
// "memo": "22",
|
|
|
|
|
// "name": "bj02",
|
|
|
|
|
// "type": 1,
|
|
|
|
|
// "updateTime": null
|
|
|
|
|
// }
|
|
|
|
|
// ]
|
|
|
|
|
// },
|
|
|
|
|
{
|
|
|
|
|
label: '型号/牌号',
|
|
|
|
|
prop: 'materialModel',
|
|
|
|
|
addDisplay: false,
|
|
|
|
|
editDisplay: false,
|
|
|
|
|
span: 8,
|
|
|
|
|
width: 200,
|
|
|
|
|
search: false,
|
|
|
|
|
rules: [
|
|
|
|
|
{
|
|
|
|
|
required: true,
|
|
|
|
|
message: '请输入型号/牌号',
|
|
|
|
|
trigger: 'click',
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label: '物料规格',
|
|
|
|
|
prop: 'specifications',
|
|
|
|
|
addDisplay: false,
|
|
|
|
|
editDisplay: false,
|
|
|
|
|
span: 8,
|
|
|
|
|
width: 200,
|
|
|
|
|
search: false,
|
|
|
|
|
rules: [
|
|
|
|
|
{
|
|
|
|
|
required: true,
|
|
|
|
|
message: '请输入物料规格',
|
|
|
|
|
trigger: 'click',
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label: '季度月使用量均值',
|
|
|
|
|
prop: 'useAverage',
|
|
|
|
|
addDisplay: true,
|
|
|
|
|
editDisplay: true,
|
|
|
|
|
span: 8,
|
|
|
|
|
width: 200,
|
|
|
|
|
search: false,
|
|
|
|
|
// rules: [
|
|
|
|
|
// {
|
|
|
|
|
// required: true,
|
|
|
|
|
// message: '请输入季度月使用量均值',
|
|
|
|
|
// trigger: 'click',
|
|
|
|
|
// },
|
|
|
|
|
// ],
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label: '一级库存',
|
|
|
|
|
prop: 'firstStore',
|
|
|
|
|
addDisplay: false,
|
|
|
|
|
editDisplay: false,
|
|
|
|
|
span: 8,
|
|
|
|
|
width: 200,
|
|
|
|
|
search: false,
|
|
|
|
|
rules: [
|
|
|
|
|
{
|
|
|
|
|
required: true,
|
|
|
|
|
message: '请输入一级库存',
|
|
|
|
|
trigger: 'click',
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label: '二级库存',
|
|
|
|
|
prop: 'lastStore',
|
|
|
|
|
addDisplay: false,
|
|
|
|
|
editDisplay: false,
|
|
|
|
|
span: 8,
|
|
|
|
|
width: 200,
|
|
|
|
|
search: false,
|
|
|
|
|
rules: [
|
|
|
|
|
{
|
|
|
|
|
required: true,
|
|
|
|
|
message: '请输入二级库存',
|
|
|
|
|
trigger: 'click',
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label: '计划数量',
|
|
|
|
|
prop: 'planQty',
|
|
|
|
|
addDisplay: false,
|
|
|
|
|
editDisplay: false,
|
|
|
|
|
span: 8,
|
|
|
|
|
width: 120,
|
|
|
|
|
search: false,
|
|
|
|
|
rules: [
|
|
|
|
|
{
|
|
|
|
|
required: true,
|
|
|
|
|
message: '请输入计划数量',
|
|
|
|
|
trigger: 'click',
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label: '是否油漆',
|
|
|
|
|
prop: 'paint',
|
|
|
|
|
type: 'select',
|
|
|
|
|
addDisplay: true,
|
|
|
|
|
editDisplay: true,
|
|
|
|
|
span: 8,
|
|
|
|
|
width: 120,
|
|
|
|
|
search: false,
|
|
|
|
|
rules: [
|
|
|
|
|
{
|
|
|
|
|
required: true,
|
|
|
|
|
message: '请输入是否油漆',
|
|
|
|
|
trigger: 'click',
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
dicData: [
|
|
|
|
|
{ label: '是', value: 1 },
|
|
|
|
|
{ label: '否', value: 0 },
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label: '周转工',
|
|
|
|
|
prop: 'turnover',
|
|
|
|
|
type: 'select',
|
|
|
|
|
addDisplay: true,
|
|
|
|
|
editDisplay: true,
|
|
|
|
|
span: 8,
|
|
|
|
|
width: 200,
|
|
|
|
|
search: true,
|
|
|
|
|
searchLabelWidth: 60,
|
|
|
|
|
// rules: [
|
|
|
|
|
// {
|
|
|
|
|
// required: true,
|
|
|
|
|
// message: '请输入周转工',
|
|
|
|
|
// trigger: 'click',
|
|
|
|
|
// },
|
|
|
|
|
// ],
|
|
|
|
|
props: {
|
|
|
|
|
label: 'userName',
|
|
|
|
|
value: 'userId'
|
|
|
|
|
},
|
|
|
|
|
dicData: [
|
|
|
|
|
{
|
|
|
|
|
"jobName": "生产调度员",
|
|
|
|
|
"deptName": "外协业务交付管理室",
|
|
|
|
|
"deptId": 65,
|
|
|
|
|
"userName": "00188",
|
|
|
|
|
"userId": 441,
|
|
|
|
|
"userCode": "00188"
|
|
|
|
|
}, {
|
|
|
|
|
"jobName": "表面处理工",
|
|
|
|
|
"deptName": "复合镍班",
|
|
|
|
|
"deptId": 69,
|
|
|
|
|
"userName": "00460",
|
|
|
|
|
"userId": 224,
|
|
|
|
|
"userCode": "00460"
|
|
|
|
|
}, {
|
|
|
|
|
"jobName": "保管员",
|
|
|
|
|
"deptName": "零件管理班",
|
|
|
|
|
"deptId": 46,
|
|
|
|
|
"userName": "00660",
|
|
|
|
|
"userId": 322,
|
|
|
|
|
"userCode": "00660"
|
|
|
|
|
},
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label: '配送标记',
|
|
|
|
|
prop: 'delivery',
|
|
|
|
|
type: "select",
|
|
|
|
|
addDisplay: true,
|
|
|
|
|
editDisplay: true,
|
|
|
|
|
span: 8,
|
|
|
|
|
width: 120,
|
|
|
|
|
search: true,
|
|
|
|
|
rules: [
|
|
|
|
|
{
|
|
|
|
|
required: true,
|
|
|
|
|
message: '请输入配送标记',
|
|
|
|
|
trigger: 'click',
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
dicData: [
|
|
|
|
|
{ label: '是', value: 1 },
|
|
|
|
|
{ label: '否', value: 0 },
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label: '是否特殊',
|
|
|
|
|
prop: 'special',
|
|
|
|
|
type: 'select',
|
|
|
|
|
addDisplay: true,
|
|
|
|
|
editDisplay: true,
|
|
|
|
|
span: 8,
|
|
|
|
|
width: 120,
|
|
|
|
|
search: true,
|
|
|
|
|
rules: [
|
|
|
|
|
{
|
|
|
|
|
required: true,
|
|
|
|
|
message: '请输入是否特殊',
|
|
|
|
|
trigger: 'click',
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
dicData: [
|
|
|
|
|
{ label: '是', value: 1 },
|
|
|
|
|
{ label: '否', value: 0 },
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label: '状态',
|
|
|
|
|
prop: 'goodsStatus',
|
|
|
|
|
type: 'select',
|
|
|
|
|
addDisplay: false,
|
|
|
|
|
editDisplay: false,
|
|
|
|
|
span: 8,
|
|
|
|
|
width: 200,
|
|
|
|
|
search: true,
|
|
|
|
|
rules: [
|
|
|
|
|
{
|
|
|
|
|
required: true,
|
|
|
|
|
message: '请输入状态',
|
|
|
|
|
trigger: 'click',
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
dicData: [
|
|
|
|
|
{
|
|
|
|
|
value: 1,
|
|
|
|
|
label: '需报料'
|
|
|
|
|
}, {
|
|
|
|
|
value: 2,
|
|
|
|
|
label: '需跟踪'
|
|
|
|
|
}, {
|
|
|
|
|
value: 3,
|
|
|
|
|
label: '待领料'
|
|
|
|
|
}, {
|
|
|
|
|
value: 4,
|
|
|
|
|
label: '正常'
|
|
|
|
|
}, {
|
|
|
|
|
value: 5,
|
|
|
|
|
label: '长期未使用'
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
mounted() {
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
methods: {
|
|
|
|
|
searchChange(params, done){
|
|
|
|
|
this.query = params
|
|
|
|
|
this.page.currentPage = 1;
|
|
|
|
|
this.onLoad()
|
|
|
|
|
done()
|
|
|
|
|
},
|
|
|
|
|
searchReset(){
|
|
|
|
|
this.query = {}
|
|
|
|
|
this.onLoad()
|
|
|
|
|
},
|
|
|
|
|
currentChange(currentPage){
|
|
|
|
|
this.page.currentPage = currentPage
|
|
|
|
|
},
|
|
|
|
|
sizeChange(pageSize){
|
|
|
|
|
this.page.pageSize = pageSize
|
|
|
|
|
},
|
|
|
|
|
refreshChange() {
|
|
|
|
|
this.onLoad();
|
|
|
|
|
},
|
|
|
|
|
selectionChange(val) {
|
|
|
|
|
this.selectionList = val
|
|
|
|
|
},
|
|
|
|
|
handleSearch(val){
|
|
|
|
|
this.query.goodsStatus = val
|
|
|
|
|
this.onLoad()
|
|
|
|
|
},
|
|
|
|
|
handlePaint(){
|
|
|
|
|
this.laInData = []
|
|
|
|
|
console.log('ref------------------',this.$refs.materalCrud)
|
|
|
|
|
const tableData = this.data
|
|
|
|
|
console.log('tableData------------------',tableData)
|
|
|
|
|
tableData.forEach(item => {
|
|
|
|
|
if (item.goodsStatus === 1 && item.paint) {
|
|
|
|
|
this.laInData.push(item);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
console.log('laInData------------------',this.laInData)
|
|
|
|
|
if (this.laInData.length > 0) {
|
|
|
|
|
this.isOpen = true;
|
|
|
|
|
} else {
|
|
|
|
|
this.$message.info('暂无缺漆信息数据');
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
handleDelete() {
|
|
|
|
|
if (this.selectionList.length == 0) {
|
|
|
|
|
this.$message.error('请至少选择一条数据')
|
|
|
|
|
} else {
|
|
|
|
|
this.$confirm('确定删除选中数据?', {
|
|
|
|
|
confirmButtonText: '确定',
|
|
|
|
|
cancelButtonText: '取消',
|
|
|
|
|
type: 'warning',
|
|
|
|
|
}).then(() => {
|
|
|
|
|
delMaterialStatus({
|
|
|
|
|
ids:this.selectionList.map(item => item.id).join(',')
|
|
|
|
|
}).then(res =>{
|
|
|
|
|
if(res.data.code == 200){
|
|
|
|
|
this.$message.success('删除成功')
|
|
|
|
|
this.onLoad()
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
rowSave(row, done, loading){
|
|
|
|
|
let params = {
|
|
|
|
|
goodsId:row.goodsId,
|
|
|
|
|
useAverage:row.useAverage,
|
|
|
|
|
delivery:row.delivery,
|
|
|
|
|
paint:row.paint,
|
|
|
|
|
special:row.special,
|
|
|
|
|
turnover:row.turnover,
|
|
|
|
|
delivery:row.delivery
|
|
|
|
|
}
|
|
|
|
|
addMaterialStatus(params).then(res =>{
|
|
|
|
|
if(res.data.code == 200){
|
|
|
|
|
this.$message.success('新增成功')
|
|
|
|
|
this.onLoad()
|
|
|
|
|
done()
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
rowUpdate(row, index, done, loading){
|
|
|
|
|
editMaterialStatus(row).then(res =>{
|
|
|
|
|
if(res.data.code == 200){
|
|
|
|
|
this.$message.success('修改成功')
|
|
|
|
|
this.onLoad()
|
|
|
|
|
done()
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
onLoad() {
|
|
|
|
|
getMaterialStatusList({
|
|
|
|
|
current:this.page.currentPage,
|
|
|
|
|
size:this.page.pageSize,
|
|
|
|
|
...this.query
|
|
|
|
|
}).then(res =>{
|
|
|
|
|
res.data.data.records.map(item =>{
|
|
|
|
|
item.paint = item.paint != '' ? item.paint ? 1 : 0 : ''
|
|
|
|
|
item.delivery = item.delivery != '' ? item.delivery ? 1 : 0 : ''
|
|
|
|
|
})
|
|
|
|
|
this.data = res.data.data.records
|
|
|
|
|
console.log('data-------------',this.data)
|
|
|
|
|
this.page.total = res.data.data.total;
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<style></style>
|