11 changed files with 2231 additions and 0 deletions
-
38src/api/partspare/inventorystock.js
-
26src/api/partspare/partspare.js
-
4src/api/partspare/repairtransdetail.js
-
17src/api/partspare/resourcespare.js
-
4src/api/partspare/wareHouseEntity.js
-
465src/views/modules/partspare/inventorystock.vue
-
251src/views/modules/partspare/partspare-add-or-update.vue
-
606src/views/modules/partspare/partspare.vue
-
390src/views/modules/partspare/repairtransdetail.vue
-
149src/views/modules/partspare/resourcespare-add-or-update.vue
-
281src/views/modules/partspare/resourcespare.vue
@ -0,0 +1,38 @@ |
|||||
|
import { createAPI } from "@/utils/httpRequest.js"; |
||||
|
import getLodop from '@/utils/LodopFuncs.js' |
||||
|
// 获取列表
|
||||
|
export const getInventoryStockList = data => createAPI(`api/pms/inventorystock/getInventoryStockList`,'post',data) |
||||
|
|
||||
|
// 打印
|
||||
|
export function partSpareTemp(dataList) { |
||||
|
const LODOP = getLodop() |
||||
|
if (LODOP) { |
||||
|
console.log(dataList) |
||||
|
for (const row of dataList) { |
||||
|
LODOP.NewPage(); |
||||
|
LODOP.SET_PRINT_PAGESIZE(0, 800, 600, ""); |
||||
|
LODOP.SET_PRINT_STYLE("FontSize", 8); |
||||
|
LODOP.SET_PRINT_STYLE("LineHeight", -2); |
||||
|
// //内容,参数(上边距,左边距,内容显示宽度,内容显示高度)
|
||||
|
LODOP.ADD_PRINT_BARCODE(3, 3, 105, 101, "QRCode", row.partNo); |
||||
|
//LODOP.ADD_PRINT_TEXT(140,8,140,130,"" +row.toolInstanceID );
|
||||
|
LODOP.ADD_PRINT_TEXT(10, 100, 100, 20, "备品备件编码:"); |
||||
|
LODOP.ADD_PRINT_TEXT(10, 189, 140, 21, row.partNo); |
||||
|
LODOP.ADD_PRINT_TEXT(29, 100, 100, 21, "备品备件名称:"); |
||||
|
LODOP.ADD_PRINT_TEXT(29, 189, 140, 21, row.partDescription); |
||||
|
LODOP.ADD_PRINT_TEXT(50, 99, 100, 20, "计量单位:"); |
||||
|
LODOP.ADD_PRINT_TEXT(50, 189, 141, 21, row.umid); |
||||
|
LODOP.ADD_PRINT_TEXT(95, 6, 68, 20, "规格型号:"); |
||||
|
LODOP.ADD_PRINT_TEXT(95, 73, 241, 21, row.spec); |
||||
|
LODOP.ADD_PRINT_TEXT(69, 98, 92, 20, "库位编码:"); |
||||
|
LODOP.ADD_PRINT_TEXT(70, 188, 141, 21, row.locationId); |
||||
|
} |
||||
|
// LODOP.PRINT_DESIGN();
|
||||
|
LODOP.PREVIEW(); |
||||
|
// LODOP.PRINT();
|
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
@ -0,0 +1,26 @@ |
|||||
|
import {createAPI} from "@/utils/httpRequest.js"; |
||||
|
|
||||
|
|
||||
|
|
||||
|
// 备品备件信息
|
||||
|
|
||||
|
// 获取列表
|
||||
|
export const getPartSpareList = data => createAPI(`api/pms/partspare/getPartSpareList`, 'post', data) |
||||
|
|
||||
|
// 明细
|
||||
|
export const getPartSpareInfo = data => createAPI(`api/pms/partspare/getPartSpareInfo`, 'post', data) |
||||
|
|
||||
|
// 保存信息
|
||||
|
export const savePartSpare = data => createAPI(`api/pms/partspare/savePartSpare`, 'post', data) |
||||
|
|
||||
|
// 修改信息
|
||||
|
export const updatePartSpare = data => createAPI(`api/pms/partspare/updatePartSpare`, 'post', data) |
||||
|
|
||||
|
// 删除信息
|
||||
|
export const deletePartSpare = data => createAPI(`api/pms/partspare/deletePartSpare`, 'post', data) |
||||
|
|
||||
|
// 修改在途信息
|
||||
|
export const updatePartSpareInTransit = data => createAPI(`api/pms/partspare/updatePartSpareInTransit`, 'post', data) |
||||
|
|
||||
|
|
||||
|
|
||||
@ -0,0 +1,4 @@ |
|||||
|
import { createAPI } from "@/utils/httpRequest.js"; |
||||
|
|
||||
|
// 获取列表
|
||||
|
export const getRepairTransDetailList = data => createAPI(`api/pms/repairtransdetail/getRepairTransDetailList`,'post',data) |
||||
@ -0,0 +1,17 @@ |
|||||
|
import { createAPI } from "@/utils/httpRequest.js"; |
||||
|
|
||||
|
// 获取列表
|
||||
|
export const getResourceSpareList = data => createAPI(`api/pms/resourcespare/getResourceSpareList`,'post',data) |
||||
|
|
||||
|
|
||||
|
// 详情
|
||||
|
export const getResourceSpareInfo = data => createAPI(`api/pms/resourcespare/getResourceSpareInfo`,'post',data) |
||||
|
|
||||
|
// 保存信息
|
||||
|
export const saveResourceSpare = data => createAPI(`api/pms/resourcespare/saveResourceSpare`,'post',data) |
||||
|
|
||||
|
// 编辑信息
|
||||
|
export const updateResourceSpare = data => createAPI(`api/pms/resourcespare/updateResourceSpare`,'post',data) |
||||
|
|
||||
|
// 删除信息
|
||||
|
export const deleteResourceSpare = data => createAPI(`api/pms/resourcespare/deleteResourceSpare`,'post',data) |
||||
@ -0,0 +1,4 @@ |
|||||
|
import { createAPI } from "@/utils/httpRequest.js"; |
||||
|
|
||||
|
// 获取列表
|
||||
|
export const getWareHouseList = data => createAPI(`api/pms/wareHouse/getWareHouseList`,'post',data) |
||||
@ -0,0 +1,465 @@ |
|||||
|
<template> |
||||
|
<div class="mod-config"> |
||||
|
<el-row> |
||||
|
<el-col :span="24"> |
||||
|
<el-form :inline="true" label-position="top" > |
||||
|
<el-form-item label="备品备件编码"> |
||||
|
<el-input v-model="queryForm.partNo" clearable></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="备品备件名称"> |
||||
|
<el-input v-model="queryForm.partDescription" clearable></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="规格型号"> |
||||
|
<el-input v-model="queryForm.spec" clearable></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="序列号"> |
||||
|
<el-input v-model="queryForm.batchNo" clearable></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="仓库"> |
||||
|
<el-select v-model="queryForm.warehouseId"> |
||||
|
<el-option value="" label="全部"></el-option> |
||||
|
<el-option v-for="(item,index) in wareHouseList " |
||||
|
:key="item.warehouseId" :value="item.warehouseId" :label="item.warehouseName"></el-option> |
||||
|
</el-select> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="汇总方式"> |
||||
|
<el-select v-model="queryForm.groupType"> |
||||
|
<el-option value="0" label="料号+序号"></el-option> |
||||
|
<el-option value="1" label="料号"></el-option> |
||||
|
</el-select> |
||||
|
</el-form-item> |
||||
|
<el-form-item label=" "> |
||||
|
<el-button type="primary" @click="getDataList()">查询</el-button> |
||||
|
<el-button type="primary" :disabled="this.dataListSelections.length==0" @click="printList()">打印</el-button> |
||||
|
</el-form-item> |
||||
|
</el-form> |
||||
|
<el-form :inline="true" label-position="top" > |
||||
|
<el-form-item label="录入日期"> |
||||
|
<el-date-picker |
||||
|
style="width: 145px" |
||||
|
v-model="queryForm.startFirstInDate" |
||||
|
type="date" |
||||
|
format="yyyy-MM-dd" |
||||
|
value-format="yyyy-MM-dd" |
||||
|
placeholder="选择日期"> |
||||
|
</el-date-picker> |
||||
|
- |
||||
|
<el-date-picker |
||||
|
style="width: 145px" |
||||
|
v-model="queryForm.endFirstInDate" |
||||
|
type="date" |
||||
|
format="yyyy-MM-dd" |
||||
|
value-format="yyyy-MM-dd 23:59:59" |
||||
|
placeholder="选择日期"> |
||||
|
</el-date-picker> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="在库数量范围"> |
||||
|
<el-input style="width: 145px" v-model="queryForm.startQtyOnHand" clearable></el-input> |
||||
|
- |
||||
|
<el-input style="width: 145px" v-model="queryForm.endQtyOnHand" clearable></el-input> |
||||
|
|
||||
|
</el-form-item> |
||||
|
<el-form-item label="库位编码"> |
||||
|
<el-input v-model="queryForm.warehouseId" clearable></el-input> |
||||
|
</el-form-item> |
||||
|
</el-form> |
||||
|
</el-col> |
||||
|
</el-row> |
||||
|
<el-table |
||||
|
:data="dataList" |
||||
|
border |
||||
|
:height="height" |
||||
|
v-loading="dataListLoading" |
||||
|
@selection-change="handleSelectionChange" |
||||
|
style="width: 100%;"> |
||||
|
<el-table-column |
||||
|
v-if="queryForm.groupType==0" |
||||
|
type="selection" |
||||
|
header-align="center" |
||||
|
align="center" |
||||
|
width="50"> |
||||
|
</el-table-column> |
||||
|
<el-table-column |
||||
|
v-for="(item,index) in columnList" :key="index" |
||||
|
:sortable="item.columnSortable" |
||||
|
:prop="item.columnProp" |
||||
|
:header-align="item.headerAlign" |
||||
|
:show-overflow-tooltip="item.showOverflowTooltip" |
||||
|
:align="item.align" |
||||
|
:fixed="item.fixed==''?false:item.fixed" |
||||
|
:min-width="item.columnWidth" |
||||
|
:label="item.columnLabel"> |
||||
|
<template slot-scope="scope"> |
||||
|
<span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span> |
||||
|
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" |
||||
|
style="width: 100px; height: 80px"/></span> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
</el-table> |
||||
|
<el-pagination |
||||
|
@size-change="sizeChangeHandle" |
||||
|
@current-change="currentChangeHandle" |
||||
|
:current-page="pageIndex" |
||||
|
:page-sizes="[20, 100, 500, 1000]" |
||||
|
:page-size="pageSize" |
||||
|
:total="totalPage" |
||||
|
layout="total, sizes, prev, pager, next, jumper"> |
||||
|
</el-pagination> |
||||
|
|
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import { |
||||
|
getInventoryStockList,partSpareTemp |
||||
|
} from '@/api/partspare/inventorystock.js' |
||||
|
import { |
||||
|
getWareHouseList, |
||||
|
} from '@/api/partspare/wareHouseEntity.js' |
||||
|
export default { |
||||
|
data() { |
||||
|
return { |
||||
|
queryForm: { |
||||
|
site: this.$store.state.user.site, |
||||
|
limit: 1, |
||||
|
page: '', |
||||
|
partNo: '', |
||||
|
partDescription: '', |
||||
|
spec: '', |
||||
|
batchNo: '', |
||||
|
warehouseId: '', |
||||
|
locationId: '', |
||||
|
startFirstInDate: '', |
||||
|
endFirstInDate: '', |
||||
|
startQtyOnHand: '', |
||||
|
endQtyOnHand: '', |
||||
|
groupType: '0', |
||||
|
active: 'Y', |
||||
|
}, |
||||
|
dataList: [], |
||||
|
wareHouseList: [], |
||||
|
pageIndex: 1, |
||||
|
pageSize: 20, |
||||
|
totalPage: 0, |
||||
|
height: 200, |
||||
|
dataListLoading: false, |
||||
|
dataListSelections: [], |
||||
|
addOrUpdateVisible: false, |
||||
|
// 展示列集 |
||||
|
columnList: [], |
||||
|
// 料号汇总 |
||||
|
arrayPart: [ |
||||
|
{ |
||||
|
columnProp: 'partNo', |
||||
|
headerAlign: "center", |
||||
|
align: "left", |
||||
|
columnLabel: '备品备件编码', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: true, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
}, |
||||
|
{ |
||||
|
columnProp: 'partDescription', |
||||
|
headerAlign: "center", |
||||
|
align: "left", |
||||
|
columnLabel: '备品备件名称', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
}, |
||||
|
{ |
||||
|
columnProp: 'warehouseId', |
||||
|
headerAlign: "center", |
||||
|
align: "left", |
||||
|
columnLabel: '仓库编码', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
}, { |
||||
|
columnProp: 'locationId', |
||||
|
headerAlign: "center", |
||||
|
align: "left", |
||||
|
columnLabel: '库位编码', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
}, { |
||||
|
columnProp: 'inQty', |
||||
|
headerAlign: "center", |
||||
|
align: "right", |
||||
|
columnLabel: '入库数量', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
}, { |
||||
|
columnProp: 'outQty', |
||||
|
headerAlign: "center", |
||||
|
align: "right", |
||||
|
columnLabel: '出库数量', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
}, { |
||||
|
columnProp: 'qtyOnHand', |
||||
|
headerAlign: "center", |
||||
|
align: "right", |
||||
|
columnLabel: '在库数量', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
}, { |
||||
|
columnProp: 'spec', |
||||
|
headerAlign: "center", |
||||
|
align: "right", |
||||
|
columnLabel: '规格型号', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
}], |
||||
|
// 料号_序号 |
||||
|
arrayColumns: [ |
||||
|
{ |
||||
|
columnProp: 'partNo', |
||||
|
headerAlign: "center", |
||||
|
align: "left", |
||||
|
columnLabel: '备品备件编码1', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: true, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
}, |
||||
|
{ |
||||
|
columnProp: 'partDescription', |
||||
|
headerAlign: "center", |
||||
|
align: "left", |
||||
|
columnLabel: '备品备件名称', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
}, |
||||
|
{ |
||||
|
columnProp: 'batchNo', |
||||
|
headerAlign: "center", |
||||
|
align: "left", |
||||
|
columnLabel: '序列号', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
}, { |
||||
|
columnProp: 'warehouseId', |
||||
|
headerAlign: "center", |
||||
|
align: "left", |
||||
|
columnLabel: '仓库编码', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
}, { |
||||
|
columnProp: 'locationId', |
||||
|
headerAlign: "center", |
||||
|
align: "left", |
||||
|
columnLabel: '库位编码', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
}, { |
||||
|
columnProp: 'inQty', |
||||
|
headerAlign: "center", |
||||
|
align: "right", |
||||
|
columnLabel: '入库数量', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
}, { |
||||
|
columnProp: 'outQty', |
||||
|
headerAlign: "center", |
||||
|
align: "right", |
||||
|
columnLabel: '出库数量', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
}, { |
||||
|
columnProp: 'qtyOnHand', |
||||
|
headerAlign: "center", |
||||
|
align: "right", |
||||
|
columnLabel: '在库数量', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
}, { |
||||
|
columnProp: 'spec', |
||||
|
headerAlign: "center", |
||||
|
align: "left", |
||||
|
columnLabel: '规格型号', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
}, { |
||||
|
columnProp: 'partnerId', |
||||
|
headerAlign: "center", |
||||
|
align: "left", |
||||
|
columnLabel: '操作员', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
}, { |
||||
|
columnProp: 'firstInDate', |
||||
|
headerAlign: "center", |
||||
|
align: "left", |
||||
|
columnLabel: '录入日期', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
}] |
||||
|
} |
||||
|
}, |
||||
|
watch: { |
||||
|
'queryForm.groupType': { |
||||
|
handler(newVal, oldVal) { |
||||
|
if (this.queryForm.groupType==0){ |
||||
|
this.columnList = this.arrayColumns |
||||
|
}else { |
||||
|
this.columnList = this.arrayPart |
||||
|
} |
||||
|
}, |
||||
|
deep: true, |
||||
|
immediate: true |
||||
|
} |
||||
|
}, |
||||
|
activated() { |
||||
|
this.getDataList() |
||||
|
this.getWareHouseList() |
||||
|
}, |
||||
|
mounted() { |
||||
|
this.$nextTick(() => { |
||||
|
this.height = window.innerHeight - 210 |
||||
|
this.columnList = this.arrayColumns |
||||
|
}) |
||||
|
}, |
||||
|
methods: { |
||||
|
// 获取仓库列表 |
||||
|
getWareHouseList(){ |
||||
|
let wareHouse = { |
||||
|
site: this.$store.state.user.site, |
||||
|
active: 'Y', |
||||
|
warehousetype: "备品备件仓", |
||||
|
} |
||||
|
getWareHouseList(wareHouse).then(({data}) =>{ |
||||
|
if (data.code == 0 && data.data){ |
||||
|
this.wareHouseList = data.data |
||||
|
} |
||||
|
}) |
||||
|
}, |
||||
|
handleSelectionChange(val) { |
||||
|
this.dataListSelections = val; |
||||
|
}, |
||||
|
// 批量打印 |
||||
|
printList(){ |
||||
|
partSpareTemp(this.dataListSelections) |
||||
|
}, |
||||
|
|
||||
|
// 获取数据列表 |
||||
|
getDataList() { |
||||
|
this.dataListLoading = true |
||||
|
this.queryForm.page = this.pageIndex |
||||
|
this.queryForm.limit = this.pageSize |
||||
|
getInventoryStockList(this.queryForm).then(({data}) => { |
||||
|
if (data && data.code === 0) { |
||||
|
this.dataList = data.page.list |
||||
|
this.totalPage = data.page.totalCount |
||||
|
} else { |
||||
|
this.dataList = [] |
||||
|
this.totalPage = 0 |
||||
|
} |
||||
|
this.dataListLoading = false |
||||
|
}) |
||||
|
}, |
||||
|
// 每页数 |
||||
|
sizeChangeHandle(val) { |
||||
|
this.pageSize = val |
||||
|
this.pageIndex = 1 |
||||
|
this.getDataList() |
||||
|
}, |
||||
|
// 当前页 |
||||
|
currentChangeHandle(val) { |
||||
|
this.pageIndex = val |
||||
|
this.getDataList() |
||||
|
}, |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
@ -0,0 +1,251 @@ |
|||||
|
<template> |
||||
|
<div class="mod-partspare"> |
||||
|
<el-dialog |
||||
|
@close="closeDialog" |
||||
|
v-drag |
||||
|
:title=" !this.addOrUpdate ? '新增' : '修改'" |
||||
|
:close-on-click-modal="false" |
||||
|
width="500px" |
||||
|
:visible.sync="visible"> |
||||
|
<el-form :inline="true" label-position="top" :model="dataForm" ref="dataForm" |
||||
|
@keyup.enter.native="dataFormSubmit()" |
||||
|
label-width="120px"> |
||||
|
<el-form-item required label="备品备件编码" > |
||||
|
<el-input :disabled="addOrUpdate" v-model="dataForm.partNo"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item required label="备品备件名称"> |
||||
|
<el-input v-model="dataForm.partDescription"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item required label="规格型号"> |
||||
|
<el-input v-model="dataForm.spec"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item required label="产品组编码"> |
||||
|
<el-input v-model="dataForm.groupId"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item required label="计价单位"> |
||||
|
<el-input v-model="dataForm.averagePrice"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item required label="单价单位"> |
||||
|
<el-input v-model="dataForm.umid"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item required label="预计使用寿命"> |
||||
|
<el-input-number :min="0" style="width: 146px" v-model="dataForm.estUseQty" :step="2" |
||||
|
step-strictly></el-input-number> |
||||
|
</el-form-item> |
||||
|
<el-form-item required label="最高库存数量"> |
||||
|
<el-input-number :min="0" style="width: 146px" v-model="dataForm.maxStock" :step="2" |
||||
|
step-strictly></el-input-number> |
||||
|
</el-form-item> |
||||
|
<el-form-item required label="最低库存数量"> |
||||
|
<el-input-number :min="0" style="width: 146px" v-model="dataForm.minStock" :step="2" |
||||
|
step-strictly></el-input-number> |
||||
|
</el-form-item> |
||||
|
<el-form-item required label="状态"> |
||||
|
<el-select v-model="dataForm.active"> |
||||
|
<el-option value="Y" label="启用"></el-option> |
||||
|
<el-option value="N" label="禁用"></el-option> |
||||
|
</el-select> |
||||
|
</el-form-item> |
||||
|
<el-form-item required > |
||||
|
<span slot="label" style="" @click="getBaseList(110)"><a herf="#">供应商编码</a></span> |
||||
|
<el-input v-model="dataForm.supplierId"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item required> |
||||
|
<span slot="label" style="" @click="getBaseList(111)"><a herf="#">仓库编码</a></span> |
||||
|
<el-input v-model="dataForm.warehouseId"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item required> |
||||
|
<el-link v-if="dataForm.warehouseId" slot="label" @click="getBaseList(112)">库位编码</el-link> |
||||
|
<span v-if="!dataForm.warehouseId" slot="label">库位编码</span> |
||||
|
<el-input v-model="dataForm.locationId"></el-input> |
||||
|
</el-form-item> |
||||
|
</el-form> |
||||
|
<span slot="footer" class="dialog-footer"> |
||||
|
<el-button type="primary" @click="dataFormSubmit()">确定</el-button> |
||||
|
<el-button type="primary" @click="visible = false">取消</el-button> |
||||
|
</span> |
||||
|
</el-dialog> |
||||
|
<Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import Chooselist from '@/views/modules/common/Chooselist_eam' |
||||
|
|
||||
|
import {getPartSpareInfo, savePartSpare, updatePartSpare} from '@/api/partspare/partspare.js' |
||||
|
|
||||
|
export default { |
||||
|
data() { |
||||
|
return { |
||||
|
visible: false, |
||||
|
dataForm: { |
||||
|
active: "Y", |
||||
|
averagePrice: '', |
||||
|
createdBy: '', |
||||
|
estUseQty: 0, |
||||
|
id: '', |
||||
|
locationId: '', |
||||
|
maxStock: 0, |
||||
|
minStock: 0, |
||||
|
partDescription: "", |
||||
|
partNo: '', |
||||
|
sCodeControlFlag: '', |
||||
|
site: this.$store.state.user.site, |
||||
|
spec: '', |
||||
|
supplierId: '', |
||||
|
umid: '', |
||||
|
warehouseId: '', |
||||
|
groupId:'', |
||||
|
}, |
||||
|
addOrUpdate: false, |
||||
|
tagNo: 0, |
||||
|
} |
||||
|
}, |
||||
|
components: { |
||||
|
Chooselist |
||||
|
}, |
||||
|
methods: { |
||||
|
// 获取基础数据列表S |
||||
|
getBaseList(val, type) { |
||||
|
this.tagNo = val |
||||
|
this.$nextTick(() => { |
||||
|
let strVal = '' |
||||
|
let conSql = '' |
||||
|
if (val === 110) { |
||||
|
strVal = this.dataForm.supplierId |
||||
|
} |
||||
|
if (val === 111) { |
||||
|
strVal = this.dataForm.warehouseId |
||||
|
} |
||||
|
if (val === 112) { |
||||
|
strVal = this.dataForm.locationId |
||||
|
let whereValue = this.dataForm.warehouseId ? "'" + this.dataForm.warehouseId + "'" : "'*'" |
||||
|
conSql = ' and warehouse_id = ' + whereValue |
||||
|
} |
||||
|
this.$refs.baseList.init(val, strVal, conSql) |
||||
|
}) |
||||
|
}, |
||||
|
/* 列表方法的回调 */ |
||||
|
getBaseData(val) { |
||||
|
if (this.tagNo === 110) { |
||||
|
this.dataForm.supplierId = val.supplier_id |
||||
|
} |
||||
|
if (this.tagNo === 111) { |
||||
|
this.dataForm.warehouseId = val.warehouse_id |
||||
|
} |
||||
|
if (this.tagNo === 112) { |
||||
|
this.dataForm.locationId = val.location_id |
||||
|
} |
||||
|
}, |
||||
|
init(row) { |
||||
|
this.addOrUpdate = row ? true : false |
||||
|
this.visible = true |
||||
|
this.$nextTick(() => { |
||||
|
if (this.addOrUpdate) { |
||||
|
this.dataForm.site = row.site |
||||
|
this.dataForm.partNo = row.partNo |
||||
|
getPartSpareInfo(this.dataForm).then(({data}) => { |
||||
|
if (data && data.code === 0) { |
||||
|
this.dataForm.active = data.partSpare.active |
||||
|
this.dataForm.averagePrice = data.partSpare.averagePrice |
||||
|
this.dataForm.createdBy = data.partSpare.createdBy |
||||
|
this.dataForm.umid = data.partSpare.umid |
||||
|
this.dataForm.minStock = data.partSpare.minStock |
||||
|
this.dataForm.maxStock = data.partSpare.maxStock |
||||
|
this.dataForm.supplierId = data.partSpare.supplierId |
||||
|
this.dataForm.createDate = data.partSpare.createDate |
||||
|
this.dataForm.lastUpdateBy = data.partSpare.lastUpdateBy |
||||
|
this.dataForm.estUseQty = data.partSpare.estUseQty |
||||
|
this.dataForm.sCodeControlFlag = data.partSpare.sCodeControlFlag |
||||
|
this.dataForm.locationId = data.partSpare.locationId |
||||
|
this.dataForm.warehouseId = data.partSpare.warehouseId |
||||
|
this.dataForm.partDescription = data.partSpare.partDescription |
||||
|
this.dataForm.partNo = data.partSpare.partNo |
||||
|
this.dataForm.site = data.partSpare.site |
||||
|
this.dataForm.spec = data.partSpare.spec |
||||
|
this.dataForm.groupId = data.partSpare.groupId |
||||
|
|
||||
|
} |
||||
|
}) |
||||
|
} |
||||
|
}) |
||||
|
}, |
||||
|
// 表单提交 |
||||
|
dataFormSubmit() { |
||||
|
if (!this.dataForm.partNo) { |
||||
|
this.$message.warning("备品备件编码不能为空!") |
||||
|
return; |
||||
|
} |
||||
|
if (!this.dataForm.partDescription) { |
||||
|
this.$message.warning("备品备件名称不能为空!") |
||||
|
return; |
||||
|
} |
||||
|
if (!this.dataForm.partNo) { |
||||
|
this.$message.warning("规格型号不能为空!") |
||||
|
return; |
||||
|
} |
||||
|
if (!this.dataForm.groupId) { |
||||
|
this.$message.warning("产品组编码不能为空") |
||||
|
return; |
||||
|
} |
||||
|
if (!this.dataForm.averagePrice) { |
||||
|
this.$message.warning("计价单位不能为空") |
||||
|
return; |
||||
|
} |
||||
|
if (!this.dataForm.umid) { |
||||
|
this.$message.warning("单价单位不能为空") |
||||
|
return; |
||||
|
} |
||||
|
if (!this.dataForm.estUseQty) { |
||||
|
this.$message.warning("预计使用寿命必须大于0") |
||||
|
return; |
||||
|
} |
||||
|
if (!this.dataForm.maxStock) { |
||||
|
this.$message.warning("最高库存数量必须大于0") |
||||
|
return; |
||||
|
} |
||||
|
if (this.dataForm.minStock != '') { |
||||
|
this.$message.warning("最低库存数量不能为空") |
||||
|
return; |
||||
|
} |
||||
|
if (!this.dataForm.supplierId) { |
||||
|
this.$message.warning("供应商编码不能为空") |
||||
|
return; |
||||
|
} |
||||
|
if (!this.dataForm.warehouseId) { |
||||
|
this.$message.warning("仓库编码不能为空") |
||||
|
return; |
||||
|
} |
||||
|
if (!this.dataForm.locationId) { |
||||
|
this.$message.warning("库位编码不能为空") |
||||
|
return; |
||||
|
} |
||||
|
if (this.addOrUpdate) { |
||||
|
updatePartSpare(this.dataForm).then(({data}) => { |
||||
|
if (data && data.code == 0) { |
||||
|
this.$message.success(data.msg) |
||||
|
this.visible = false |
||||
|
} else { |
||||
|
this.$message.warning(data.msg) |
||||
|
} |
||||
|
}) |
||||
|
} else { |
||||
|
savePartSpare(this.dataForm).then(({data}) => { |
||||
|
if (data && data.code == 0) { |
||||
|
this.$message.success(data.msg) |
||||
|
this.visible = false |
||||
|
} else { |
||||
|
this.$message.warning(data.msg) |
||||
|
} |
||||
|
}) |
||||
|
} |
||||
|
}, |
||||
|
closeDialog() { |
||||
|
this.$nextTick(() => { |
||||
|
this.$emit('refreshDataList') |
||||
|
Object.assign(this.$data, this.$options.data.call(this)); |
||||
|
}) |
||||
|
}, |
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
@ -0,0 +1,606 @@ |
|||||
|
<template> |
||||
|
<div class="mod-config"> |
||||
|
<el-row> |
||||
|
<el-col :span="24"> |
||||
|
<el-form :inline="true" label-position="top" :model="queryForm" @keyup.enter.native="getDataList()"> |
||||
|
<el-form-item label="备品备件编码"> |
||||
|
<el-input v-model="queryForm.partNo" clearable></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="备品备件名称"> |
||||
|
<el-input v-model="queryForm.partDescription" clearable></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="规格型号"> |
||||
|
<el-input v-model="queryForm.spec" clearable></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="状态"> |
||||
|
<el-select v-model="queryForm.active"> |
||||
|
<el-option value="" label="全部"></el-option> |
||||
|
<el-option value="Y" label="启用"></el-option> |
||||
|
<el-option value="N" label="禁用"></el-option> |
||||
|
</el-select> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="仓库"> |
||||
|
<el-select v-model="queryForm.warehouseId"> |
||||
|
<el-option value="" label="全部"></el-option> |
||||
|
<el-option v-for="(item,index) in wareHouseList " |
||||
|
:key="item.warehouseId" :value="item.warehouseId" :label="item.warehouseName"></el-option> |
||||
|
</el-select> |
||||
|
</el-form-item> |
||||
|
|
||||
|
<el-form-item label=" "> |
||||
|
<el-button type="primary" @click="getDataList()">查询</el-button> |
||||
|
<el-button type="primary" @click="addOrUpdateHandle()">新增</el-button> |
||||
|
</el-form-item> |
||||
|
</el-form> |
||||
|
</el-col> |
||||
|
</el-row> |
||||
|
<el-row> |
||||
|
<el-col :span="24"> |
||||
|
<el-table |
||||
|
:data="dataList" |
||||
|
border |
||||
|
:height="height" |
||||
|
v-loading="dataListLoading" |
||||
|
style="width: 100%;"> |
||||
|
<el-table-column |
||||
|
v-for="(item,index) in columnList" :key="index" |
||||
|
:sortable="item.columnSortable" |
||||
|
:prop="item.columnProp" |
||||
|
:header-align="item.headerAlign" |
||||
|
:show-overflow-tooltip="item.showOverflowTooltip" |
||||
|
:align="item.align" |
||||
|
:fixed="item.fixed==''?false:item.fixed" |
||||
|
:min-width="item.columnWidth" |
||||
|
:label="item.columnLabel"> |
||||
|
<template slot-scope="scope"> |
||||
|
<span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span> |
||||
|
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" |
||||
|
style="width: 100px; height: 80px"/></span> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column |
||||
|
fixed="right" |
||||
|
header-align="center" |
||||
|
align="center" |
||||
|
width="150" |
||||
|
label="操作"> |
||||
|
<template slot-scope="scope"> |
||||
|
<el-link type="text" size="small" @click="getInTransit(scope.row)">在途信息</el-link> |
||||
|
<el-link type="text" size="small" @click="addOrUpdateHandle(scope.row)">| 修改</el-link> |
||||
|
<el-link type="text" size="small" @click="deleteHandle(scope.row)">| 删除</el-link> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
</el-table> |
||||
|
<el-pagination |
||||
|
style="margin-top: -2px;" |
||||
|
@size-change="sizeChangeHandle" |
||||
|
@current-change="currentChangeHandle" |
||||
|
:current-page="pageIndex" |
||||
|
:page-sizes="[20, 100, 500, 1000]" |
||||
|
:page-size="pageSize" |
||||
|
:total="totalPage" |
||||
|
layout="total, sizes, prev, pager, next, jumper"> |
||||
|
</el-pagination> |
||||
|
</el-col> |
||||
|
</el-row> |
||||
|
<!-- 弹窗,在途信息 --> |
||||
|
<el-dialog |
||||
|
@close="closeDialog" |
||||
|
v-drag |
||||
|
title="在途信息" |
||||
|
:close-on-click-modal="false" |
||||
|
width="300px" |
||||
|
:visible.sync="inTransitVisible"> |
||||
|
<el-form label-position="top" |
||||
|
label-width="120px"> |
||||
|
<el-form-item label="备品备件编码" prop="partNo"> |
||||
|
<el-input :disabled="true" v-model="inTransit.partNo"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="在途信息"> |
||||
|
<el-input type="textarea" v-model="inTransit.inTransitInfo"></el-input> |
||||
|
</el-form-item> |
||||
|
|
||||
|
</el-form> |
||||
|
<span slot="footer" class="dialog-footer"> |
||||
|
<el-button style="margin-top: 30px" type="primary" @click="inTransitFormSubmit()">确定</el-button> |
||||
|
<el-button type="primary" @click="inTransitVisible = false">取消</el-button> |
||||
|
</span> |
||||
|
</el-dialog> |
||||
|
<!-- 弹窗, 新增 / 修改 --> |
||||
|
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import AddOrUpdate from './partspare-add-or-update' |
||||
|
import { |
||||
|
getPartSpareList, deletePartSpare, getPartSpareInfo, updatePartSpareInTransit |
||||
|
} from '@/api/partspare/partspare.js' |
||||
|
import { |
||||
|
getWareHouseList, |
||||
|
} from '@/api/partspare/wareHouseEntity.js' |
||||
|
|
||||
|
export default { |
||||
|
data() { |
||||
|
return { |
||||
|
queryForm: { |
||||
|
site: this.$store.state.user.site, |
||||
|
partNo: '', |
||||
|
partDescription: '', |
||||
|
spec: '', |
||||
|
active: '', |
||||
|
warehouseId: '', |
||||
|
limit: 1, |
||||
|
page: '', |
||||
|
}, |
||||
|
dataList: [], |
||||
|
wareHouseList: [], |
||||
|
pageIndex: 1, |
||||
|
pageSize: 20, |
||||
|
totalPage: 0, |
||||
|
height: 200, |
||||
|
dataListLoading: false, |
||||
|
dataListSelections: [], |
||||
|
inTransitVisible: false, |
||||
|
inTransit: { |
||||
|
site: this.$store.state.user.site, |
||||
|
partNo: '', |
||||
|
inTransitInfo: '', |
||||
|
userName: this.$store.state.user.name |
||||
|
}, |
||||
|
addOrUpdateVisible: false, |
||||
|
// 展示列集 |
||||
|
columnList: [ |
||||
|
{ |
||||
|
userId: this.$store.state.user.name, |
||||
|
functionId: this.$route.meta.menuId, |
||||
|
serialNumber: 'toolDetail1101ToolId', |
||||
|
tableId: "toolOIRecord", |
||||
|
tableName: "common", |
||||
|
columnProp: 'site', |
||||
|
headerAlign: "center", |
||||
|
align: "left", |
||||
|
columnLabel: '工厂编号', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: 'left', |
||||
|
columnWidth: 140, |
||||
|
}, |
||||
|
{ |
||||
|
userId: this.$store.state.user.name, |
||||
|
functionId: this.$route.meta.menuId, |
||||
|
serialNumber: 'toolDetail1101ToolId', |
||||
|
tableId: "toolOIRecord", |
||||
|
tableName: "common", |
||||
|
columnProp: 'partNo', |
||||
|
headerAlign: "center", |
||||
|
align: "left", |
||||
|
columnLabel: '备品备件编码', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
}, |
||||
|
{ |
||||
|
userId: this.$store.state.user.name, |
||||
|
functionId: this.$route.meta.menuId, |
||||
|
serialNumber: 'toolDetail1101ToolId', |
||||
|
tableId: "toolOIRecord", |
||||
|
tableName: "common", |
||||
|
columnProp: 'partDescription', |
||||
|
headerAlign: "center", |
||||
|
align: "left", |
||||
|
columnLabel: '备品备件名称', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
}, |
||||
|
{ |
||||
|
userId: this.$store.state.user.name, |
||||
|
functionId: this.$route.meta.menuId, |
||||
|
serialNumber: 'toolDetail1101ToolId', |
||||
|
tableId: "toolOIRecord", |
||||
|
tableName: "common", |
||||
|
columnProp: 'spec', |
||||
|
headerAlign: "center", |
||||
|
align: "left", |
||||
|
columnLabel: '规格型号', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
}, |
||||
|
|
||||
|
|
||||
|
{ |
||||
|
userId: this.$store.state.user.name, |
||||
|
functionId: this.$route.meta.menuId, |
||||
|
serialNumber: 'toolDetail1101ToolId', |
||||
|
tableId: "toolOIRecord", |
||||
|
tableName: "common", |
||||
|
columnProp: 'umid', |
||||
|
headerAlign: "center", |
||||
|
align: "left", |
||||
|
columnLabel: '单价单位', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
}, |
||||
|
|
||||
|
{ |
||||
|
userId: this.$store.state.user.name, |
||||
|
functionId: this.$route.meta.menuId, |
||||
|
serialNumber: 'toolDetail1101ToolId', |
||||
|
tableId: "toolOIRecord", |
||||
|
tableName: "common", |
||||
|
columnProp: 'remark', |
||||
|
headerAlign: "center", |
||||
|
align: "left", |
||||
|
columnLabel: '备注', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
}, |
||||
|
{ |
||||
|
userId: this.$store.state.user.name, |
||||
|
functionId: this.$route.meta.menuId, |
||||
|
serialNumber: 'toolDetail1101ToolId', |
||||
|
tableId: "toolOIRecord", |
||||
|
tableName: "common", |
||||
|
columnProp: 'stock', |
||||
|
headerAlign: "center", |
||||
|
align: "left", |
||||
|
columnLabel: '库存数量', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
}, |
||||
|
{ |
||||
|
userId: this.$store.state.user.name, |
||||
|
functionId: this.$route.meta.menuId, |
||||
|
serialNumber: 'toolDetail1101ToolId', |
||||
|
tableId: "toolOIRecord", |
||||
|
tableName: "common", |
||||
|
columnProp: 'stockInArrive', |
||||
|
headerAlign: "center", |
||||
|
align: "left", |
||||
|
columnLabel: '待检仓库库存数量', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
}, |
||||
|
{ |
||||
|
userId: this.$store.state.user.name, |
||||
|
functionId: this.$route.meta.menuId, |
||||
|
serialNumber: 'toolDetail1101ToolId', |
||||
|
tableId: "toolOIRecord", |
||||
|
tableName: "common", |
||||
|
columnProp: 'stockInQuality', |
||||
|
headerAlign: "center", |
||||
|
align: "left", |
||||
|
columnLabel: '隔离仓库库存数量', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
}, |
||||
|
{ |
||||
|
userId: this.$store.state.user.name, |
||||
|
functionId: this.$route.meta.menuId, |
||||
|
serialNumber: 'toolDetail1101ToolId', |
||||
|
tableId: "toolOIRecord", |
||||
|
tableName: "common", |
||||
|
columnProp: 'stockInConsignment', |
||||
|
headerAlign: "center", |
||||
|
align: "left", |
||||
|
columnLabel: '异地仓库库存数量', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
}, |
||||
|
{ |
||||
|
userId: this.$store.state.user.name, |
||||
|
functionId: this.$route.meta.menuId, |
||||
|
serialNumber: 'toolDetail1101ToolId', |
||||
|
tableId: "toolOIRecord", |
||||
|
tableName: "common", |
||||
|
columnProp: 'stockInPicking', |
||||
|
headerAlign: "center", |
||||
|
align: "left", |
||||
|
columnLabel: '正常库存数量', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
}, |
||||
|
{ |
||||
|
userId: this.$store.state.user.name, |
||||
|
functionId: this.$route.meta.menuId, |
||||
|
serialNumber: 'toolDetail1101ToolId', |
||||
|
tableId: "toolOIRecord", |
||||
|
tableName: "common", |
||||
|
columnProp: 'stockinActive', |
||||
|
headerAlign: "center", |
||||
|
align: "left", |
||||
|
columnLabel: '无效库存数量', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
}, |
||||
|
{ |
||||
|
userId: this.$store.state.user.name, |
||||
|
functionId: this.$route.meta.menuId, |
||||
|
serialNumber: 'toolDetail1101ToolId', |
||||
|
tableId: "toolOIRecord", |
||||
|
tableName: "common", |
||||
|
columnProp: 'qtyonPo', |
||||
|
headerAlign: "center", |
||||
|
align: "left", |
||||
|
columnLabel: '在途订单数量', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
}, |
||||
|
{ |
||||
|
userId: this.$store.state.user.name, |
||||
|
functionId: this.$route.meta.menuId, |
||||
|
serialNumber: 'toolDetail1101ToolId', |
||||
|
tableId: "toolOIRecord", |
||||
|
tableName: "common", |
||||
|
columnProp: 'minStock', |
||||
|
headerAlign: "center", |
||||
|
align: "left", |
||||
|
columnLabel: '最低库存数量', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
}, |
||||
|
{ |
||||
|
userId: this.$store.state.user.name, |
||||
|
functionId: this.$route.meta.menuId, |
||||
|
serialNumber: 'toolDetail1101ToolId', |
||||
|
tableId: "toolOIRecord", |
||||
|
tableName: "common", |
||||
|
columnProp: 'averagePrice', |
||||
|
headerAlign: "center", |
||||
|
align: "right", |
||||
|
columnLabel: '单价', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
}, |
||||
|
{ |
||||
|
userId: this.$store.state.user.name, |
||||
|
functionId: this.$route.meta.menuId, |
||||
|
serialNumber: 'toolDetail1101ToolId', |
||||
|
tableId: "toolOIRecord", |
||||
|
tableName: "common", |
||||
|
columnProp: 'estUseQty', |
||||
|
headerAlign: "center", |
||||
|
align: "right", |
||||
|
columnLabel: '预计使用寿命', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
}, |
||||
|
{ |
||||
|
userId: this.$store.state.user.name, |
||||
|
functionId: this.$route.meta.menuId, |
||||
|
serialNumber: 'toolDetail1101ToolId', |
||||
|
tableId: "toolOIRecord", |
||||
|
tableName: "common", |
||||
|
columnProp: 'sCodeControlFlag', |
||||
|
headerAlign: "center", |
||||
|
align: "left", |
||||
|
columnLabel: '是否启用序列号管理', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
}, |
||||
|
|
||||
|
{ |
||||
|
userId: this.$store.state.user.name, |
||||
|
functionId: this.$route.meta.menuId, |
||||
|
serialNumber: 'toolDetail1101ToolId', |
||||
|
tableId: "toolOIRecord", |
||||
|
tableName: "common", |
||||
|
columnProp: 'safetyStock', |
||||
|
headerAlign: "center", |
||||
|
align: "left", |
||||
|
columnLabel: '安全库存数量', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
}, { |
||||
|
userId: this.$store.state.user.name, |
||||
|
functionId: this.$route.meta.menuId, |
||||
|
serialNumber: 'toolDetail1101ToolId', |
||||
|
tableId: "toolOIRecord", |
||||
|
tableName: "common", |
||||
|
columnProp: 'active', |
||||
|
headerAlign: "center", |
||||
|
align: "left", |
||||
|
columnLabel: '状态', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
}, |
||||
|
], |
||||
|
} |
||||
|
}, |
||||
|
components: { |
||||
|
AddOrUpdate |
||||
|
}, |
||||
|
mounted() { |
||||
|
this.$nextTick(() => { |
||||
|
this.height = window.innerHeight - 170 |
||||
|
}) |
||||
|
}, |
||||
|
activated() { |
||||
|
this.getDataList() |
||||
|
this.getWareHouseList() |
||||
|
}, |
||||
|
methods: { |
||||
|
// 获取仓库列表 |
||||
|
getWareHouseList() { |
||||
|
let wareHouse = { |
||||
|
site: this.$store.state.user.site, |
||||
|
active: 'Y', |
||||
|
warehousetype: "备品备件仓", |
||||
|
} |
||||
|
getWareHouseList(wareHouse).then(({data}) => { |
||||
|
if (data.code == 0 && data.data) { |
||||
|
this.wareHouseList = data.data |
||||
|
} |
||||
|
}) |
||||
|
}, |
||||
|
// 获取数据列表 |
||||
|
getDataList() { |
||||
|
this.dataListLoading = true |
||||
|
this.queryForm.page = this.pageIndex |
||||
|
this.queryForm.limit = this.pageSize |
||||
|
getPartSpareList(this.queryForm).then(({data}) => { |
||||
|
if (data && data.code === 0) { |
||||
|
this.dataList = data.page.list |
||||
|
this.totalPage = data.page.totalCount |
||||
|
} else { |
||||
|
this.dataList = [] |
||||
|
this.totalPage = 0 |
||||
|
} |
||||
|
this.dataListLoading = false |
||||
|
}) |
||||
|
}, |
||||
|
// 每页数 |
||||
|
sizeChangeHandle(val) { |
||||
|
this.pageSize = val |
||||
|
this.pageIndex = 1 |
||||
|
this.getDataList() |
||||
|
}, |
||||
|
// 当前页 |
||||
|
currentChangeHandle(val) { |
||||
|
this.pageIndex = val |
||||
|
this.getDataList() |
||||
|
}, |
||||
|
// 新增 / 修改 |
||||
|
addOrUpdateHandle(row) { |
||||
|
this.addOrUpdateVisible = true |
||||
|
this.$nextTick(() => { |
||||
|
this.$refs.addOrUpdate.init(row) |
||||
|
}) |
||||
|
}, |
||||
|
// 删除 |
||||
|
deleteHandle(row) { |
||||
|
this.$confirm(`确定执行删除操作?`, '提示', { |
||||
|
confirmButtonText: '确定', |
||||
|
cancelButtonText: '取消', |
||||
|
type: 'warning' |
||||
|
}).then(() => { |
||||
|
deletePartSpare(row).then(({data}) => { |
||||
|
if (data && data.code === 0) { |
||||
|
this.$message.success(data.msg) |
||||
|
this.getDataList() |
||||
|
} else { |
||||
|
this.$message.error(data.msg) |
||||
|
} |
||||
|
}) |
||||
|
}) |
||||
|
}, |
||||
|
// 获取在途信息 |
||||
|
getInTransit(row) { |
||||
|
this.inTransitVisible = true |
||||
|
getPartSpareInfo(row).then(({data}) => { |
||||
|
if (data && data.code == 0) { |
||||
|
this.inTransit.partNo = data.partSpare.partNo |
||||
|
this.inTransit.inTransitInfo = data.partSpare.inTransitInfo |
||||
|
} |
||||
|
}) |
||||
|
}, |
||||
|
// 提交在途信息 |
||||
|
inTransitFormSubmit() { |
||||
|
updatePartSpareInTransit(this.inTransit).then(({data}) =>{ |
||||
|
if (data && data.code == 0 ){ |
||||
|
this.$message.success(data.msg) |
||||
|
this.inTransitVisible = false |
||||
|
}else { |
||||
|
this.$message.warning(data.msg) |
||||
|
} |
||||
|
}) |
||||
|
|
||||
|
}, |
||||
|
closeDialog() { |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
@ -0,0 +1,390 @@ |
|||||
|
<template> |
||||
|
<div class="mod-config"> |
||||
|
<el-row> |
||||
|
<el-col :span="24"> |
||||
|
<el-form :inline="true" label-position="top" > |
||||
|
<el-form-item label="备品备件编码"> |
||||
|
<el-input v-model="queryForm.partNo" clearable></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="序列号"> |
||||
|
<el-input v-model="queryForm.batchNo" clearable></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="出库/入库"> |
||||
|
<el-select v-model="queryForm.direction"> |
||||
|
<el-option value="" label="全部"></el-option> |
||||
|
<el-option value="-" label="出库"></el-option> |
||||
|
<el-option value="+" label="入库"></el-option> |
||||
|
</el-select> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="库位编码"> |
||||
|
<el-input v-model="queryForm.locationId" clearable></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="仓库"> |
||||
|
<el-select v-model="queryForm.warehouseId"> |
||||
|
<el-option value="" label="全部"></el-option> |
||||
|
<el-option v-for="(item,index) in wareHouseList " |
||||
|
:key="item.warehouseId" :value="item.warehouseId" :label="item.warehouseName"></el-option> |
||||
|
</el-select> |
||||
|
</el-form-item> |
||||
|
|
||||
|
<el-form-item label=" "> |
||||
|
<el-button type="primary" @click="getDataList()">查询</el-button> |
||||
|
</el-form-item> |
||||
|
</el-form> |
||||
|
<el-form :inline="true" label-position="top" > |
||||
|
<el-form-item label="操作日期"> |
||||
|
<el-date-picker |
||||
|
style="width: 145px" |
||||
|
v-model="queryForm.startTransDate" |
||||
|
type="date" |
||||
|
format="yyyy-MM-dd" |
||||
|
value-format="yyyy-MM-dd" |
||||
|
placeholder="选择日期"> |
||||
|
</el-date-picker> |
||||
|
- |
||||
|
<el-date-picker |
||||
|
style="width: 145px" |
||||
|
v-model="queryForm.endTransDate" |
||||
|
type="date" |
||||
|
format="yyyy-MM-dd" |
||||
|
value-format="yyyy-MM-dd 23:59:59" |
||||
|
placeholder="选择日期"> |
||||
|
</el-date-picker> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="设备编码"> |
||||
|
<el-input v-model="queryForm.orderRef1" clearable></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="操作员"> |
||||
|
<el-input v-model="queryForm.userName" clearable></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="供应商名称"> |
||||
|
<el-input v-model="queryForm.supplierName" clearable></el-input> |
||||
|
</el-form-item> |
||||
|
|
||||
|
</el-form> |
||||
|
</el-col> |
||||
|
</el-row> |
||||
|
<el-table |
||||
|
:data="dataList" |
||||
|
border |
||||
|
:height="height" |
||||
|
v-loading="dataListLoading" |
||||
|
style="width: 100%;"> |
||||
|
<el-table-column |
||||
|
v-for="(item,index) in columnList" :key="index" |
||||
|
:sortable="item.columnSortable" |
||||
|
:prop="item.columnProp" |
||||
|
:header-align="item.headerAlign" |
||||
|
:show-overflow-tooltip="item.showOverflowTooltip" |
||||
|
:align="item.align" |
||||
|
:fixed="item.fixed==''?false:item.fixed" |
||||
|
:min-width="item.columnWidth" |
||||
|
:label="item.columnLabel"> |
||||
|
<template slot-scope="scope"> |
||||
|
<span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span> |
||||
|
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" |
||||
|
style="width: 100px; height: 80px"/></span> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
</el-table> |
||||
|
<el-pagination |
||||
|
@size-change="sizeChangeHandle" |
||||
|
@current-change="currentChangeHandle" |
||||
|
:current-page="pageIndex" |
||||
|
:page-sizes="[20, 100, 500, 1000]" |
||||
|
:page-size="pageSize" |
||||
|
:total="totalPage" |
||||
|
layout="total, sizes, prev, pager, next, jumper"> |
||||
|
</el-pagination> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import { |
||||
|
getRepairTransDetailList, |
||||
|
} from '@/api/partspare/repairtransdetail.js' |
||||
|
import { |
||||
|
getWareHouseList, |
||||
|
} from '@/api/partspare/wareHouseEntity.js' |
||||
|
|
||||
|
|
||||
|
export default { |
||||
|
data() { |
||||
|
return { |
||||
|
queryForm: { |
||||
|
site: this.$store.state.user.site, |
||||
|
limit: 1, |
||||
|
page: '', |
||||
|
direction: '', |
||||
|
partNo: '', |
||||
|
batchNo: '', |
||||
|
warehouseId: '', |
||||
|
locationId: '', |
||||
|
orderRef1: '', |
||||
|
supplierName: '', |
||||
|
startTransDate: this.dayjs().format('YYYY-MM-DD'), |
||||
|
endTransDate: this.dayjs().format('YYYY-MM-DD 23:59:59'), |
||||
|
userName: '', |
||||
|
}, |
||||
|
dataList: [], |
||||
|
wareHouseList: [], |
||||
|
pageIndex: 1, |
||||
|
pageSize: 10, |
||||
|
totalPage: 0, |
||||
|
height: 200, |
||||
|
dataListLoading: false, |
||||
|
dataListSelections: [], |
||||
|
addOrUpdateVisible: false, |
||||
|
// 展示列集 |
||||
|
columnList:[ |
||||
|
{ |
||||
|
columnProp: 'partNo', |
||||
|
headerAlign: "center", |
||||
|
align: "left", |
||||
|
columnLabel: '备品备件编码', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: true, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
}, |
||||
|
{ |
||||
|
columnProp: 'partDescription', |
||||
|
headerAlign: "center", |
||||
|
align: "left", |
||||
|
columnLabel: '备品备件名称', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
}, |
||||
|
{ |
||||
|
columnProp: 'spec', |
||||
|
headerAlign: "center", |
||||
|
align: "left", |
||||
|
columnLabel: '规格型号', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
}, { |
||||
|
columnProp: 'batchNo', |
||||
|
headerAlign: "center", |
||||
|
align: "left", |
||||
|
columnLabel: '序列号', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
}, { |
||||
|
columnProp: 'transType', |
||||
|
headerAlign: "center", |
||||
|
align: "left", |
||||
|
columnLabel: '记录类型', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
}, { |
||||
|
columnProp: 'warehouseId', |
||||
|
headerAlign: "center", |
||||
|
align: "left", |
||||
|
columnLabel: '仓库编码', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
}, { |
||||
|
columnProp: 'locationId', |
||||
|
headerAlign: "center", |
||||
|
align: "left", |
||||
|
columnLabel: '库位编码', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
}, { |
||||
|
columnProp: 'orderRef1', |
||||
|
headerAlign: "center", |
||||
|
align: "left", |
||||
|
columnLabel: '机台编码', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
} ,{ |
||||
|
columnProp: 'supplierName', |
||||
|
headerAlign: "center", |
||||
|
align: "left", |
||||
|
columnLabel: '供应商名称', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
},{ |
||||
|
columnProp: 'transQty', |
||||
|
headerAlign: "center", |
||||
|
align: "right", |
||||
|
columnLabel: '数量', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
},{ |
||||
|
columnProp: 'remark', |
||||
|
headerAlign: "center", |
||||
|
align: "left", |
||||
|
columnLabel: '备注', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
},{ |
||||
|
columnProp: 'userName', |
||||
|
headerAlign: "center", |
||||
|
align: "left", |
||||
|
columnLabel: '操作员', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
},{ |
||||
|
columnProp: 'transDate', |
||||
|
headerAlign: "center", |
||||
|
align: "left", |
||||
|
columnLabel: '操作日期', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
}], |
||||
|
} |
||||
|
}, |
||||
|
activated() { |
||||
|
this.getDataList() |
||||
|
this.getWareHouseList() |
||||
|
}, |
||||
|
mounted() { |
||||
|
this.$nextTick(() => { |
||||
|
this.height = window.innerHeight - 210 |
||||
|
}) |
||||
|
}, |
||||
|
methods: { |
||||
|
// 获取仓库列表 |
||||
|
getWareHouseList(){ |
||||
|
let wareHouse = { |
||||
|
site: this.$store.state.user.site, |
||||
|
active: 'Y', |
||||
|
warehousetype: "备品备件仓", |
||||
|
} |
||||
|
getWareHouseList(wareHouse).then(({data}) =>{ |
||||
|
if (data.code == 0 && data.data){ |
||||
|
this.wareHouseList = data.data |
||||
|
} |
||||
|
}) |
||||
|
}, |
||||
|
// 获取数据列表 |
||||
|
getDataList() { |
||||
|
// this.dataListLoading = true |
||||
|
this.queryForm.page = this.pageIndex |
||||
|
this.queryForm.limit = this.pageSize |
||||
|
getRepairTransDetailList(this.queryForm).then(({data}) => { |
||||
|
if (data && data.code === 0) { |
||||
|
this.dataList = data.page.list |
||||
|
this.totalPage = data.page.totalCount |
||||
|
} else { |
||||
|
this.dataList = [] |
||||
|
this.totalPage = 0 |
||||
|
} |
||||
|
this.dataListLoading = false |
||||
|
}) |
||||
|
}, |
||||
|
// 每页数 |
||||
|
sizeChangeHandle(val) { |
||||
|
this.pageSize = val |
||||
|
this.pageIndex = 1 |
||||
|
this.getDataList() |
||||
|
}, |
||||
|
// 当前页 |
||||
|
currentChangeHandle(val) { |
||||
|
this.pageIndex = val |
||||
|
this.getDataList() |
||||
|
}, |
||||
|
// 新增 / 修改 |
||||
|
addOrUpdateHandle(id) { |
||||
|
this.addOrUpdateVisible = true |
||||
|
this.$nextTick(() => { |
||||
|
this.$refs.addOrUpdate.init(id) |
||||
|
}) |
||||
|
}, |
||||
|
// 删除 |
||||
|
deleteHandle(id) { |
||||
|
var ids = id ? [id] : this.dataListSelections.map(item => { |
||||
|
return item.transno |
||||
|
}) |
||||
|
this.$confirm(`确定对[id=${ids.join(',')}]进行[${id ? '删除' : '批量删除'}]操作?`, '提示', { |
||||
|
confirmButtonText: '确定', |
||||
|
cancelButtonText: '取消', |
||||
|
type: 'warning' |
||||
|
}).then(() => { |
||||
|
this.$http({ |
||||
|
url: this.$http.adornUrl('/pms/repairtransdetail/delete'), |
||||
|
method: 'post', |
||||
|
data: this.$http.adornData(ids, false) |
||||
|
}).then(({data}) => { |
||||
|
if (data && data.code === 0) { |
||||
|
this.$message({ |
||||
|
message: '操作成功', |
||||
|
type: 'success', |
||||
|
duration: 1500, |
||||
|
onClose: () => { |
||||
|
this.getDataList() |
||||
|
} |
||||
|
}) |
||||
|
} else { |
||||
|
this.$message.error(data.msg) |
||||
|
} |
||||
|
}) |
||||
|
}) |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
@ -0,0 +1,149 @@ |
|||||
|
<template> |
||||
|
<div> |
||||
|
<el-dialog |
||||
|
width="340px" |
||||
|
@close="closeDialog" |
||||
|
:title="!this.addOrUpdate ? '新增' : '修改'" |
||||
|
:close-on-click-modal="false" |
||||
|
:visible.sync="visible"> |
||||
|
<el-form :model="dataForm" label-position="top" :inline="true" ref="dataForm" |
||||
|
@keyup.enter.native="dataFormSubmit()" |
||||
|
label-width="120px"> |
||||
|
<el-form-item required> |
||||
|
<el-link @click="getBaseList(113)" slot="label">设备编码</el-link> |
||||
|
<el-input v-model="dataForm.resourceId"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="设备名称"> |
||||
|
<el-input disabled v-model="dataForm.resourceName"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item required> |
||||
|
<el-link @click="getBaseList(114)" slot="label">备品备件编码</el-link> |
||||
|
<el-input v-model="dataForm.partNo"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="备品备件名称"> |
||||
|
<el-input disabled v-model="dataForm.partDesc"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item required label="可用数量"> |
||||
|
<el-input-number style="width: 146px" :min="0" v-model="dataForm.qtyUsable"></el-input-number> |
||||
|
</el-form-item> |
||||
|
</el-form> |
||||
|
<span slot="footer" class="dialog-footer"> |
||||
|
<el-button type="primary" @click="dataFormSubmit()">确定</el-button> |
||||
|
<el-button type="primary" @click="visible = false">取消</el-button> |
||||
|
</span> |
||||
|
|
||||
|
</el-dialog> |
||||
|
<Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import Chooselist from '@/views/modules/common/Chooselist_eam' |
||||
|
import {getResourceSpareInfo, saveResourceSpare, updateResourceSpare} from '@/api/partspare/resourcespare.js' |
||||
|
|
||||
|
export default { |
||||
|
data() { |
||||
|
return { |
||||
|
visible: false, |
||||
|
dataForm: { |
||||
|
id: 0, |
||||
|
resourceId: '', |
||||
|
resourceIdOld: '', |
||||
|
resourceName: '', |
||||
|
partNo: '', |
||||
|
partNoOld: '', |
||||
|
partDesc: '', |
||||
|
qtyUsable: '', |
||||
|
delflag: '', |
||||
|
createdBy: '', |
||||
|
site: this.$store.state.user.site |
||||
|
}, |
||||
|
addOrUpdate: false, |
||||
|
} |
||||
|
}, |
||||
|
components: { |
||||
|
Chooselist |
||||
|
}, |
||||
|
methods: { |
||||
|
// 获取基础数据列表S |
||||
|
getBaseList(val, type) { |
||||
|
this.tagNo = val |
||||
|
this.$nextTick(() => { |
||||
|
let strVal = '' |
||||
|
let conSql = '' |
||||
|
if (val === 113) { |
||||
|
strVal = this.dataForm.resourceId |
||||
|
} |
||||
|
if (val === 114) { |
||||
|
strVal = this.dataForm.partNo |
||||
|
} |
||||
|
this.$refs.baseList.init(val, strVal, conSql) |
||||
|
}) |
||||
|
}, |
||||
|
/* 列表方法的回调 */ |
||||
|
getBaseData(val) { |
||||
|
if (this.tagNo === 113) { |
||||
|
this.dataForm.resourceId = val.ObjectID |
||||
|
this.dataForm.resourceName = val.ObjectDesc |
||||
|
} |
||||
|
if (this.tagNo === 114) { |
||||
|
this.dataForm.partNo = val.part_no |
||||
|
this.dataForm.partDesc = val.part_description |
||||
|
} |
||||
|
}, |
||||
|
init(row) { |
||||
|
this.addOrUpdate = row ? true : false |
||||
|
this.visible = true |
||||
|
this.$nextTick(() => { |
||||
|
if (this.addOrUpdate) { |
||||
|
this.dataForm.site = row.site |
||||
|
this.dataForm.resourceId = row.resourceId |
||||
|
this.dataForm.partNo = row.partNo |
||||
|
getResourceSpareInfo(this.dataForm).then(({data}) => { |
||||
|
if (data && data.code === 0) { |
||||
|
this.dataForm.resourceId = data.resourceSpare.resourceId |
||||
|
this.dataForm.resourceName = data.resourceSpare.resourceDesc |
||||
|
this.dataForm.partNo = data.resourceSpare.partNo |
||||
|
this.dataForm.partDesc = data.resourceSpare.partDescription |
||||
|
this.dataForm.site = data.resourceSpare.site |
||||
|
this.dataForm.qtyUsable = data.resourceSpare.qtyUsable |
||||
|
this.dataForm.resourceIdOld = data.resourceSpare.resourceId |
||||
|
this.dataForm.partNoOld = data.resourceSpare.partNo |
||||
|
} |
||||
|
}) |
||||
|
} |
||||
|
}) |
||||
|
}, |
||||
|
// 表单提交 |
||||
|
dataFormSubmit() { |
||||
|
if (this.addOrUpdate) { |
||||
|
updateResourceSpare(this.dataForm).then(({data}) => { |
||||
|
if (data && data.code === 0) { |
||||
|
this.$message.success(data.msg) |
||||
|
this.visible = false |
||||
|
this.$emit('refreshDataList') |
||||
|
} else { |
||||
|
this.$message.error(data.msg) |
||||
|
} |
||||
|
}) |
||||
|
} else { |
||||
|
saveResourceSpare(this.dataForm).then(({data}) => { |
||||
|
if (data && data.code === 0) { |
||||
|
this.$message.success(data.msg) |
||||
|
this.visible = false |
||||
|
this.$emit('refreshDataList') |
||||
|
} else { |
||||
|
this.$message.error(data.msg) |
||||
|
} |
||||
|
}) |
||||
|
} |
||||
|
}, |
||||
|
closeDialog() { |
||||
|
this.$nextTick(() => { |
||||
|
this.$emit('refreshDataList') |
||||
|
Object.assign(this.$data, this.$options.data.call(this)); |
||||
|
}) |
||||
|
}, |
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
@ -0,0 +1,281 @@ |
|||||
|
<template> |
||||
|
<div class="mod-config"> |
||||
|
<el-row> |
||||
|
<el-col :span="24"> |
||||
|
<el-form :inline="true" label-position="top" :model="queryForm" @keyup.enter.native="getDataList()"> |
||||
|
<el-form-item label="设备编码"> |
||||
|
<el-input v-model="queryForm.resourceId" clearable></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="设备名称"> |
||||
|
<el-input v-model="queryForm.resourceDesc" clearable></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="备品备件编码"> |
||||
|
<el-input v-model="queryForm.partNo" clearable></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="备品备件名称"> |
||||
|
<el-input v-model="queryForm.partDescription" clearable></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label=" "> |
||||
|
<el-button type="primary" @click="getDataList()">查询</el-button> |
||||
|
<el-button type="primary" @click="addOrUpdateHandle()">新增</el-button> |
||||
|
</el-form-item> |
||||
|
</el-form> |
||||
|
</el-col> |
||||
|
</el-row> |
||||
|
<el-table |
||||
|
:data="dataList" |
||||
|
border |
||||
|
:height="height" |
||||
|
v-loading="dataListLoading" |
||||
|
style="width: 100%;"> |
||||
|
<el-table-column |
||||
|
v-for="(item,index) in columnList" :key="index" |
||||
|
:sortable="item.columnSortable" |
||||
|
:prop="item.columnProp" |
||||
|
:header-align="item.headerAlign" |
||||
|
:show-overflow-tooltip="item.showOverflowTooltip" |
||||
|
:align="item.align" |
||||
|
:fixed="item.fixed==''?false:item.fixed" |
||||
|
:min-width="item.columnWidth" |
||||
|
:label="item.columnLabel"> |
||||
|
<template slot-scope="scope"> |
||||
|
<span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span> |
||||
|
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" |
||||
|
style="width: 100px; height: 80px"/></span> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column |
||||
|
fixed="right" |
||||
|
header-align="center" |
||||
|
align="center" |
||||
|
width="120" |
||||
|
label="操作"> |
||||
|
<template slot-scope="scope"> |
||||
|
<el-link type="text" size="small" @click="addOrUpdateHandle(scope.row)">修改</el-link> |
||||
|
<el-link type="text" size="small" @click="deleteHandle(scope.row)">| 删除</el-link> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
</el-table> |
||||
|
<el-pagination |
||||
|
style="margin-top: -2px;" |
||||
|
@size-change="sizeChangeHandle" |
||||
|
@current-change="currentChangeHandle" |
||||
|
:current-page="pageIndex" |
||||
|
:page-sizes="[20, 100, 500, 1000]" |
||||
|
:page-size="pageSize" |
||||
|
:total="totalPage" |
||||
|
layout="total, sizes, prev, pager, next, jumper"> |
||||
|
</el-pagination> |
||||
|
|
||||
|
|
||||
|
<!-- 弹窗, 新增 / 修改 --> |
||||
|
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import AddOrUpdate from './resourcespare-add-or-update' |
||||
|
import { |
||||
|
getResourceSpareList,deleteResourceSpare |
||||
|
} from '@/api/partspare/resourcespare.js' |
||||
|
|
||||
|
export default { |
||||
|
data() { |
||||
|
return { |
||||
|
queryForm: { |
||||
|
site :this.$store.state.user.site, |
||||
|
partNo :'', |
||||
|
partDescription : '', |
||||
|
resourceId : '', |
||||
|
resourceDesc : '', |
||||
|
limit: 1, |
||||
|
page: '', |
||||
|
}, |
||||
|
dataList: [], |
||||
|
pageIndex: 1, |
||||
|
pageSize: 20, |
||||
|
totalPage: 0, |
||||
|
height: 200, |
||||
|
dataListLoading: false, |
||||
|
dataListSelections: [], |
||||
|
addOrUpdateVisible: false, |
||||
|
// 展示列集 |
||||
|
columnList: [ |
||||
|
|
||||
|
{ |
||||
|
userId: this.$store.state.user.name, |
||||
|
functionId: this.$route.meta.menuId, |
||||
|
serialNumber: '*', |
||||
|
tableId: "*", |
||||
|
tableName: "*", |
||||
|
columnProp: 'resourceId', |
||||
|
headerAlign: "center", |
||||
|
align: "left", |
||||
|
columnLabel: '设备编码', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
}, { |
||||
|
userId: this.$store.state.user.name, |
||||
|
functionId: this.$route.meta.menuId, |
||||
|
serialNumber: '*', |
||||
|
tableId: "*", |
||||
|
tableName: "*", |
||||
|
columnProp: 'resourceDesc', |
||||
|
headerAlign: "center", |
||||
|
align: "left", |
||||
|
columnLabel: '设备名称', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
}, |
||||
|
{ |
||||
|
userId: this.$store.state.user.name, |
||||
|
functionId: this.$route.meta.menuId, |
||||
|
serialNumber: '*', |
||||
|
tableId: "*", |
||||
|
tableName: "*", |
||||
|
columnProp: 'partNo', |
||||
|
headerAlign: "center", |
||||
|
align: "left", |
||||
|
columnLabel: '备品备件编码', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
}, |
||||
|
{ |
||||
|
userId: this.$store.state.user.name, |
||||
|
functionId: this.$route.meta.menuId, |
||||
|
serialNumber: '*', |
||||
|
tableId: "*", |
||||
|
tableName: "*", |
||||
|
columnProp: 'partDescription', |
||||
|
headerAlign: "center", |
||||
|
align: "left", |
||||
|
columnLabel: '备品备件名称', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
}, |
||||
|
{ |
||||
|
userId: this.$store.state.user.name, |
||||
|
functionId: this.$route.meta.menuId, |
||||
|
serialNumber: '*', |
||||
|
tableId: "*", |
||||
|
tableName: "*", |
||||
|
columnProp: 'site', |
||||
|
headerAlign: "center", |
||||
|
align: "left", |
||||
|
columnLabel: '工厂编码', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
}, |
||||
|
{ |
||||
|
userId: this.$store.state.user.name, |
||||
|
functionId: this.$route.meta.menuId, |
||||
|
serialNumber: '*', |
||||
|
tableId: "*", |
||||
|
tableName: "*", |
||||
|
columnProp: 'qtyUsable', |
||||
|
headerAlign: "center", |
||||
|
align: "left", |
||||
|
columnLabel: '可用数量', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140, |
||||
|
}, |
||||
|
|
||||
|
], |
||||
|
} |
||||
|
}, |
||||
|
components: { |
||||
|
AddOrUpdate |
||||
|
}, |
||||
|
activated() { |
||||
|
this.getDataList() |
||||
|
}, |
||||
|
mounted() { |
||||
|
this.$nextTick(() => { |
||||
|
this.height = window.innerHeight - 190 |
||||
|
}) |
||||
|
}, |
||||
|
methods: { |
||||
|
// 获取数据列表 |
||||
|
getDataList() { |
||||
|
this.dataListLoading = true |
||||
|
this.queryForm.page = this.pageIndex |
||||
|
this.queryForm.limit = this.pageSize |
||||
|
getResourceSpareList(this.queryForm).then(({data}) => { |
||||
|
if (data && data.code === 0) { |
||||
|
this.dataList = data.page.list |
||||
|
this.totalPage = data.page.totalCount |
||||
|
} else { |
||||
|
this.dataList = [] |
||||
|
this.totalPage = 0 |
||||
|
} |
||||
|
this.dataListLoading = false |
||||
|
}) |
||||
|
}, |
||||
|
// 每页数 |
||||
|
sizeChangeHandle(val) { |
||||
|
this.pageSize = val |
||||
|
this.pageIndex = 1 |
||||
|
this.getDataList() |
||||
|
}, |
||||
|
// 当前页 |
||||
|
currentChangeHandle(val) { |
||||
|
this.pageIndex = val |
||||
|
this.getDataList() |
||||
|
}, |
||||
|
// 新增 / 修改 |
||||
|
addOrUpdateHandle(row) { |
||||
|
this.addOrUpdateVisible = true |
||||
|
this.$nextTick(() => { |
||||
|
this.$refs.addOrUpdate.init(row) |
||||
|
}) |
||||
|
}, |
||||
|
// 删除 |
||||
|
deleteHandle(row) { |
||||
|
this.$confirm(`确定进行删除操作?`, '提示', { |
||||
|
confirmButtonText: '确定', |
||||
|
cancelButtonText: '取消', |
||||
|
type: 'warning' |
||||
|
}).then(() => { |
||||
|
deleteResourceSpare(row).then(({data}) => { |
||||
|
if (data && data.code === 0) { |
||||
|
this.$message.success(data.msg) |
||||
|
this.getDataList() |
||||
|
} else { |
||||
|
this.$message.error(data.msg) |
||||
|
} |
||||
|
}) |
||||
|
}) |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue