feat(ems): 添加备件库记录盘点功能

- 新增盘点记录相关API和UI
- 实现备件库记录的动态列展示
- 添加盘点记录的添加和删除功能
- 优化表单布局和数据处理逻辑
boardTest
zch 3 weeks ago
parent 63ba32711e
commit 4878e9a10d

@ -9,6 +9,15 @@ export function listSparePartsInventory(query) {
})
}
// 查询备件库记录主列表(包含动态列)
export function listSparePartsInventoryWithDynamicColumns(query) {
return request({
url: '/ems/info/sparePartsInventory/listWithDynamicColumns',
method: 'get',
params: query
})
}
// 查询备件库记录主详细
export function getSparePartsInventory(objid) {
return request({
@ -17,6 +26,14 @@ export function getSparePartsInventory(objid) {
})
}
// 查询备件库记录主详细(包含动态列)
export function getSparePartsInventoryWithDynamicColumns(objid) {
return request({
url: '/ems/info/sparePartsInventory/withDynamicColumns/' + objid,
method: 'get'
})
}
// 新增备件库记录主
export function addSparePartsInventory(data) {
return request({
@ -26,6 +43,15 @@ export function addSparePartsInventory(data) {
})
}
// 新增备件库记录主(包含动态列)
export function addSparePartsInventoryWithDynamicColumns(data) {
return request({
url: '/ems/info/sparePartsInventory/withDynamicColumns',
method: 'post',
data: data
})
}
// 修改备件库记录主
export function updateSparePartsInventory(data) {
return request({
@ -35,6 +61,15 @@ export function updateSparePartsInventory(data) {
})
}
// 修改备件库记录主(包含动态列)
export function updateSparePartsInventoryWithDynamicColumns(data) {
return request({
url: '/ems/info/sparePartsInventory/withDynamicColumns',
method: 'put',
data: data
})
}
// 删除备件库记录主
export function delSparePartsInventory(objid) {
return request({
@ -42,3 +77,11 @@ export function delSparePartsInventory(objid) {
method: 'delete'
})
}
// 获取所有动态列名
export function getDynamicColumns() {
return request({
url: '/ems/info/sparePartsInventory/dynamicColumns',
method: 'get'
})
}

@ -318,6 +318,9 @@
form: {},
//
rules: {
date: [
{ required: true, message: "日期不能为空", trigger: "blur" }
],
},
columns: [
{ key: 0, label: `主键自增ID`, visible: false },

@ -279,6 +279,13 @@
form: {},
//
rules: {
faultDate: [
{ required: true, message: "故障日期不能为空", trigger: "blur" }
],
faultLocation: [
{ required: true, message: "故障位置不能为空", trigger: "blur" }
],
},
columns: [
{ key: 0, label: `主键自增ID`, visible: false },

@ -485,6 +485,12 @@
form: {},
//
rules: {
installationCabinetName: [
{ required: true, message: "安装柜体名称不能为空", trigger: "blur" }
],
locationDescription: [
{ required: true, message: "位置描述不能为空", trigger: "blur" }
],
},
columns: [
{ key: 0, label: `主键自增ID`, visible: false },

@ -507,6 +507,9 @@
form: {},
//
rules: {
referenceLocation: [
{ required: true, message: "参照位置不能为空", trigger: "blur" }
]
},
columns: [
{ key: 0, label: `主键自增ID`, visible: false },

@ -139,6 +139,19 @@
<el-table-column label="入库数量" align="center" prop="warehouseQuantity" v-if="columns[7].visible"/>
<el-table-column label="剩余数量" align="center" prop="remainingQuantity" v-if="columns[8].visible"/>
<el-table-column label="备注" align="center" prop="remarks" v-if="columns[9].visible"/>
<!-- 动态盘点列 -->
<el-table-column
v-for="(checkColumn, index) in dynamicColumns"
:key="'check_' + index"
:label="checkColumn"
align="center"
width="120">
<template slot-scope="scope">
<span>{{ getCheckValue(scope.row, checkColumn) }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="100">
<template slot-scope="scope">
<el-button
@ -168,41 +181,112 @@
/>
<!-- 添加或修改备件库记录主对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-row>
<el-col :span="12">
<el-form-item label="入库时间" prop="warehouseDate">
<el-date-picker
v-model="form.warehouseDate"
type="datetime"
type="date"
placeholder="请选择入库时间"
value-format="yyyy/MM/dd"
format="yyyy/MM/dd"
value-format="yyyy-MM-dd"
format="yyyy-MM-dd"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="采购方式" prop="purchaseMethod">
<el-input v-model="form.purchaseMethod" placeholder="请输入采购方式" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="库存位置" prop="storageLocation">
<el-input v-model="form.storageLocation" placeholder="请输入库存位置" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="物品名称" prop="itemName">
<el-input v-model="form.itemName" placeholder="请输入物品名称" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="原厂编号" prop="originalPartNumber">
<el-input v-model="form.originalPartNumber" placeholder="请输入原厂编号" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="型号" prop="model">
<el-input v-model="form.model" placeholder="请输入型号" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="入库数量" prop="warehouseQuantity">
<el-input v-model="form.warehouseQuantity" placeholder="请输入入库数量" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="剩余数量" prop="remainingQuantity">
<el-input v-model="form.remainingQuantity" placeholder="请输入剩余数量" />
</el-form-item>
</el-col>
</el-row>
<el-form-item label="备注" prop="remarks">
<el-input v-model="form.remarks" type="textarea" placeholder="请输入内容" />
</el-form-item>
<!-- 盘点记录部分 -->
<el-divider content-position="left">盘点记录</el-divider>
<div style="margin-bottom: 10px;">
<el-button
type="primary"
size="small"
icon="el-icon-plus"
@click="addCheckRecord"
>添加盘点记录</el-button>
</div>
<el-table
:data="form.checkData"
border
style="width: 100%; margin-bottom: 20px;"
max-height="300"
>
<el-table-column label="盘点名称" width="200">
<template slot-scope="scope">
<el-input
v-model="scope.row.checkName"
placeholder="如: 2023.3盘点"
size="small"
/>
</template>
</el-table-column>
<el-table-column label="盘点数量" width="150">
<template slot-scope="scope">
<el-input-number
v-model="scope.row.checkQuantity"
:min="0"
size="small"
style="width: 100%"
/>
</template>
</el-table-column>
<el-table-column label="操作" width="80">
<template slot-scope="scope">
<el-button
type="danger"
size="mini"
icon="el-icon-delete"
@click="removeCheckRecord(scope.$index)"
></el-button>
</template>
</el-table-column>
</el-table>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
@ -227,11 +311,7 @@
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处<em>点击上传</em></div>
<div class="el-upload__tip text-center" slot="tip">
<!-- <div class="el-upload__tip" slot="tip">-->
<!-- <el-checkbox v-model="upload.updateSupport" /> 是否更新已经存在的数据-->
<!-- </div>-->
<span>仅允许导入xlsxlsx格式文件</span>
<!-- <el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;" @click="importTemplate"></el-link>-->
</div>
</el-upload>
<div slot="footer" class="dialog-footer">
@ -243,7 +323,14 @@
</template>
<script>
import { listSparePartsInventory, getSparePartsInventory, delSparePartsInventory, addSparePartsInventory, updateSparePartsInventory } from "@/api/ems/info/sparePartsInventory";
import {
listSparePartsInventoryWithDynamicColumns,
getSparePartsInventoryWithDynamicColumns,
delSparePartsInventory,
addSparePartsInventoryWithDynamicColumns,
updateSparePartsInventoryWithDynamicColumns,
getDynamicColumns
} from "@/api/ems/info/sparePartsInventory";
export default {
name: "SparePartsInventory",
@ -263,6 +350,8 @@
total: 0,
//
sparePartsInventoryList: [],
//
dynamicColumns: [],
//
title: "",
//
@ -285,6 +374,9 @@
form: {},
//
rules: {
warehouseDate: [
{ required: true, message: "入库时间不能为空", trigger: "blur" }
],
},
columns: [
{ key: 0, label: `主键`, visible: false },
@ -310,6 +402,7 @@
},
created() {
this.getList();
this.getDynamicColumnsList();
this.upload.url = process.env.VUE_APP_BASE_API + "/ems/info/sparePartsInventory/importData";
this.upload.headers = { Authorization: "Bearer " + this.$store.getters.token };
},
@ -317,12 +410,44 @@
/** 查询备件库记录主列表 */
getList() {
this.loading = true;
listSparePartsInventory(this.queryParams).then(response => {
listSparePartsInventoryWithDynamicColumns(this.queryParams).then(response => {
this.sparePartsInventoryList = response.rows;
this.total = response.total;
this.loading = false;
});
},
/** 获取动态列列表 */
getDynamicColumnsList() {
getDynamicColumns().then(response => {
this.dynamicColumns = response.data || [];
});
},
/** 获取盘点值 */
getCheckValue(row, checkName) {
if (row.checkData && row.checkData[checkName] !== undefined && row.checkData[checkName] !== null) {
return row.checkData[checkName];
}
return '';
},
/** 添加盘点记录 */
addCheckRecord() {
if (!this.form.checkData) {
this.form.checkData = [];
}
this.form.checkData.push({
checkName: '',
checkQuantity: 0
});
},
/** 删除盘点记录 */
removeCheckRecord(index) {
this.form.checkData.splice(index, 1);
},
//
cancel() {
this.open = false;
@ -340,7 +465,8 @@
model: null,
warehouseQuantity: null,
remainingQuantity: null,
remarks: null
remarks: null,
checkData: []
};
this.resetForm("form");
},
@ -370,8 +496,18 @@
handleUpdate(row) {
this.reset();
const objid = row.objid || this.ids
getSparePartsInventory(objid).then(response => {
getSparePartsInventoryWithDynamicColumns(objid).then(response => {
this.form = response.data;
//
if (this.form.checkData && typeof this.form.checkData === 'object') {
//
this.form.checkData = Object.keys(this.form.checkData).map(key => ({
checkName: key,
checkQuantity: this.form.checkData[key]
}));
} else {
this.form.checkData = [];
}
this.open = true;
this.title = "修改备件库记录主";
});
@ -380,17 +516,32 @@
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
//
const submitData = { ...this.form };
if (submitData.checkData && Array.isArray(submitData.checkData)) {
const checkDataObj = {};
submitData.checkData.forEach(item => {
if (item.checkName && item.checkName.trim() !== '') {
// LongJavaScriptNumber
checkDataObj[item.checkName] = item.checkQuantity || 0;
}
});
submitData.checkData = checkDataObj;
}
if (this.form.objid != null) {
updateSparePartsInventory(this.form).then(response => {
updateSparePartsInventoryWithDynamicColumns(submitData).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
this.getDynamicColumnsList();
});
} else {
addSparePartsInventory(this.form).then(response => {
addSparePartsInventoryWithDynamicColumns(submitData).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
this.getDynamicColumnsList();
});
}
}
@ -433,6 +584,7 @@
this.$refs.upload.clearFiles();
this.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.msg + "</div>", "导入结果", { dangerouslyUseHTMLString: true });
this.getList();
this.getDynamicColumnsList();
},
//
submitFileForm() {

@ -1,42 +1,58 @@
<template>
<div class="app-container">
<!-- <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
<el-form-item label="类型" prop="type">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
<!-- <el-form-item label="日期" prop="date">-->
<!-- <el-input-->
<!-- v-model="queryParams.date"-->
<!-- placeholder="请输入日期"-->
<!-- clearable-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<el-form-item label="备件名称" prop="sparePartsName">
<el-input
v-model="queryParams.type"
placeholder="请输入类型"
v-model="queryParams.sparePartsName"
placeholder="请输入备件名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="参照位置" prop="referenceLocation">
<el-form-item label="备件型号" prop="sparePartModel">
<el-input
v-model="queryParams.referenceLocation"
placeholder="请输入参照位置"
v-model="queryParams.sparePartModel"
placeholder="请输入备件型号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="位置描述" prop="locationDescription">
<!-- <el-form-item label="废存数量" prop="wasteQuantity">
<el-input
v-model="queryParams.locationDescription"
placeholder="请输入位置描述"
v-model="queryParams.wasteQuantity"
placeholder="请输入废存数量"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item> -->
<el-form-item label="存放位置" prop="storageLocation">
<el-input
v-model="queryParams.storageLocation"
placeholder="请输入存放位置"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="取电" prop="powerSource">
<el-form-item label="登记人" prop="registrar">
<el-input
v-model="queryParams.powerSource"
placeholder="请输入取电"
v-model="queryParams.registrar"
placeholder="请输入登记人"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="电池类型" prop="batteryType">
<el-form-item label="库管确认" prop="warehouseConfirmation">
<el-input
v-model="queryParams.batteryType"
placeholder="请输入电池类型"
v-model="queryParams.warehouseConfirmation"
placeholder="请输入库管确认"
clearable
@keyup.enter.native="handleQuery"
/>
@ -49,115 +65,11 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="图片位置" prop="imageLocation">
<el-input
v-model="queryParams.imageLocation"
placeholder="请输入图片位置"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="第1次" prop="firstInstance">
<el-input
v-model="queryParams.firstInstance"
placeholder="请输入第1次"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="第2次" prop="secondInstance">
<el-input
v-model="queryParams.secondInstance"
placeholder="请输入第2次"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="第3次" prop="thirdInstance">
<el-input
v-model="queryParams.thirdInstance"
placeholder="请输入第3次"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="第4次" prop="fourthInstance">
<el-input
v-model="queryParams.fourthInstance"
placeholder="请输入第4次"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="第5次" prop="fifthInstance">
<el-input
v-model="queryParams.fifthInstance"
placeholder="请输入第5次"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="第6次" prop="sixthInstance">
<el-input
v-model="queryParams.sixthInstance"
placeholder="请输入第6次"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="第7次" prop="seventhInstance">
<el-input
v-model="queryParams.seventhInstance"
placeholder="请输入第7次"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="第8次" prop="eighthInstance">
<el-input
v-model="queryParams.eighthInstance"
placeholder="请输入第8次"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="第9次" prop="ninthInstance">
<el-input
v-model="queryParams.ninthInstance"
placeholder="请输入第9次"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="第10次" prop="tenthInstance">
<el-input
v-model="queryParams.tenthInstance"
placeholder="请输入第10次"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="第11次" prop="eleventhInstance">
<el-input
v-model="queryParams.eleventhInstance"
placeholder="请输入第11次"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="第12次" prop="twelfthInstance">
<el-input
v-model="queryParams.twelfthInstance"
placeholder="请输入第12次"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form> -->
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
@ -192,16 +104,6 @@
v-hasPermi="['ems/info:sparePartsRegistration:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['ems/info:sparePartsRegistration:export']"
>导出</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="info"
@ -212,35 +114,37 @@
v-hasPermi="['ems/info:sparePartsRegistration:add']"
>导入</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['ems/info:sparePartsRegistration:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="sparePartsRegistrationList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="主键自增ID" align="center" prop="objid" v-if="columns[0].visible"/>
<el-table-column label="类型" align="center" prop="type" v-if="columns[1].visible"/>
<el-table-column label="参照位置" align="center" prop="referenceLocation" v-if="columns[2].visible"/>
<el-table-column label="位置描述" align="center" prop="locationDescription" v-if="columns[3].visible"/>
<el-table-column label="取电" align="center" prop="powerSource" v-if="columns[4].visible"/>
<el-table-column label="电池类型" align="center" prop="batteryType" v-if="columns[5].visible"/>
<el-table-column label="备注" align="center" prop="remarks" v-if="columns[6].visible"/>
<el-table-column label="图片位置" align="center" prop="imageLocation" v-if="columns[7].visible">
<template slot-scope="scope">
<image-preview :src="scope.row.imageLocation":width="50" :height="50"></image-preview>
</template>
<el-table-column label="日期" align="center" prop="date" v-if="columns[1].visible">
</el-table-column>
<el-table-column label="备件名称" align="center" prop="sparePartsName" v-if="columns[2].visible">
</el-table-column>
<el-table-column label="备件型号" align="center" prop="sparePartModel" v-if="columns[8].visible"/>
<el-table-column label="废存数量" align="center" prop="wasteQuantity" v-if="columns[3].visible">
</el-table-column>
<el-table-column label="存放位置" align="center" prop="storageLocation" v-if="columns[4].visible">
</el-table-column>
<el-table-column label="登记人" align="center" prop="registrar" v-if="columns[5].visible">
</el-table-column>
<el-table-column label="库管确认" align="center" prop="warehouseConfirmation" v-if="columns[6].visible">
</el-table-column>
<el-table-column label="备注" align="center" prop="remarks" v-if="columns[7].visible">
</el-table-column>
<el-table-column label="第1次" align="center" prop="firstInstance" v-if="columns[8].visible"/>
<el-table-column label="第2次" align="center" prop="secondInstance" v-if="columns[9].visible"/>
<el-table-column label="第3次" align="center" prop="thirdInstance" v-if="columns[10].visible"/>
<el-table-column label="第4次" align="center" prop="fourthInstance" v-if="columns[11].visible"/>
<el-table-column label="第5次" align="center" prop="fifthInstance" v-if="columns[12].visible"/>
<el-table-column label="第6次" align="center" prop="sixthInstance" v-if="columns[13].visible"/>
<el-table-column label="第7次" align="center" prop="seventhInstance" v-if="columns[14].visible"/>
<el-table-column label="第8次" align="center" prop="eighthInstance" v-if="columns[15].visible"/>
<el-table-column label="第9次" align="center" prop="ninthInstance" v-if="columns[16].visible"/>
<el-table-column label="第10次" align="center" prop="tenthInstance" v-if="columns[17].visible"/>
<el-table-column label="第11次" align="center" prop="eleventhInstance" v-if="columns[18].visible"/>
<el-table-column label="第12次" align="center" prop="twelfthInstance" v-if="columns[19].visible"/>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="100">
<template slot-scope="scope">
<el-button
@ -272,135 +176,36 @@
<!-- 添加或修改动力能源部行输科废旧备件登记对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-form-item label="类型" prop="type">
<el-input v-model="form.type" placeholder="请输入类型" />
<el-form-item label="日期" prop="date">
<el-date-picker
v-model="form.date"
type="date"
placeholder="请选择日期"
value-format="yyyy/MM/dd"
format="yyyy/MM/dd"
/>
</el-form-item>
<el-form-item label="参照位置" prop="referenceLocation">
<el-input v-model="form.referenceLocation" placeholder="请输入参照位置" />
<el-form-item label="备件名称" prop="sparePartsName">
<el-input v-model="form.sparePartsName" placeholder="请输入备件名称" />
</el-form-item>
<el-form-item label="位置描述" prop="locationDescription">
<el-input v-model="form.locationDescription" placeholder="请输入位置描述" />
<el-form-item label="备件型号" prop="sparePartModel">
<el-input v-model="form.sparePartModel" placeholder="请输入备件型号" />
</el-form-item>
<el-form-item label="取电" prop="powerSource">
<el-input v-model="form.powerSource" placeholder="请输入取电" />
<el-form-item label="废存数量" prop="wasteQuantity">
<el-input-number v-model="form.wasteQuantity" placeholder="请输入废存数量" />
</el-form-item>
<el-form-item label="电池类型" prop="batteryType">
<el-input v-model="form.batteryType" placeholder="请输入电池类型" />
<el-form-item label="存放位置" prop="storageLocation">
<el-input v-model="form.storageLocation" placeholder="请输入存放位置" />
</el-form-item>
<el-form-item label="登记人" prop="registrar">
<el-input v-model="form.registrar" placeholder="请输入登记人" />
</el-form-item>
<el-form-item label="库管确认" prop="warehouseConfirmation">
<el-input v-model="form.warehouseConfirmation" placeholder="请输入库管确认" />
</el-form-item>
<el-form-item label="备注" prop="remarks">
<el-input v-model="form.remarks" placeholder="请输入备注" />
</el-form-item>
<el-form-item label="图片位置" prop="imageLocation">
<image-upload v-model="form.imageLocation" />
</el-form-item>
<el-form-item label="第1次" prop="firstInstance">
<el-date-picker
v-model="form.firstInstance"
type="date"
placeholder="请选择第1次日期"
value-format="yyyy/MM/dd"
format="yyyy/MM/dd"
/>
</el-form-item>
<el-form-item label="第2次" prop="secondInstance">
<el-date-picker
v-model="form.secondInstance"
type="date"
placeholder="请选择第2次日期"
value-format="yyyy/MM/dd"
format="yyyy/MM/dd"
/>
</el-form-item>
<el-form-item label="第3次" prop="thirdInstance">
<el-date-picker
v-model="form.thirdInstance"
type="date"
placeholder="请选择第3次日期"
value-format="yyyy/MM/dd"
format="yyyy/MM/dd"
/>
</el-form-item>
<el-form-item label="第4次" prop="fourthInstance">
<el-date-picker
v-model="form.fourthInstance"
type="date"
placeholder="请选择第4次日期"
value-format="yyyy/MM/dd"
format="yyyy/MM/dd"
/>
</el-form-item>
<el-form-item label="第5次" prop="fifthInstance">
<el-date-picker
v-model="form.fifthInstance"
type="date"
placeholder="请选择第5次日期"
value-format="yyyy/MM/dd"
format="yyyy/MM/dd"
/>
</el-form-item>
<el-form-item label="第6次" prop="sixthInstance">
<el-date-picker
v-model="form.sixthInstance"
type="date"
placeholder="请选择第6次日期"
value-format="yyyy/MM/dd"
format="yyyy/MM/dd"
/>
</el-form-item>
<el-form-item label="第7次" prop="seventhInstance">
<el-date-picker
v-model="form.seventhInstance"
type="date"
placeholder="请选择第7次日期"
value-format="yyyy/MM/dd"
format="yyyy/MM/dd"
/>
</el-form-item>
<el-form-item label="第8次" prop="eighthInstance">
<el-date-picker
v-model="form.eighthInstance"
type="date"
placeholder="请选择第8次日期"
value-format="yyyy/MM/dd"
format="yyyy/MM/dd"
/>
</el-form-item>
<el-form-item label="第9次" prop="ninthInstance">
<el-date-picker
v-model="form.ninthInstance"
type="date"
placeholder="请选择第9次日期"
value-format="yyyy/MM/dd"
format="yyyy/MM/dd"
/>
</el-form-item>
<el-form-item label="第10次" prop="tenthInstance">
<el-date-picker
v-model="form.tenthInstance"
type="date"
placeholder="请选择第10次日期"
value-format="yyyy/MM/dd"
format="yyyy/MM/dd"
/>
</el-form-item>
<el-form-item label="第11次" prop="eleventhInstance">
<el-date-picker
v-model="form.eleventhInstance"
type="date"
placeholder="请选择第11次日期"
value-format="yyyy/MM/dd"
format="yyyy/MM/dd"
/>
</el-form-item>
<el-form-item label="第12次" prop="twelfthInstance">
<el-date-picker
v-model="form.twelfthInstance"
type="date"
placeholder="请选择第12次日期"
value-format="yyyy/MM/dd"
format="yyyy/MM/dd"
/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
@ -408,28 +213,17 @@
</div>
</el-dialog>
<!-- 导入对话框 -->
<!-- 数据导入对话框 -->
<el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
<el-upload
ref="upload"
:limit="1"
accept=".xlsx, .xls"
:headers="upload.headers"
:action="upload.url + '?updateSupport=' + upload.updateSupport"
:disabled="upload.isUploading"
:on-progress="handleFileUploadProgress"
:on-success="handleFileSuccess"
:auto-upload="false"
drag
>
<el-upload ref="upload" :limit="1" accept=".xlsx, .xls" :headers="upload.headers" :action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading" :on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag>
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处<em>点击上传</em></div>
<div class="el-upload__tip text-center" slot="tip">
<!-- <div class="el-upload__tip" slot="tip">-->
<!-- <el-checkbox v-model="upload.updateSupport" /> 是否更新已经存在的数据-->
<!-- </div>-->
<div class="el-upload__tip" slot="tip">
<el-checkbox v-model="upload.updateSupport" />是否更新已经存在的数据
</div>
<span>仅允许导入xlsxlsx格式文件</span>
<!-- <el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;" @click="importTemplate"></el-link>-->
<el-link type="primary" :underline="false" style="font-size: 12px; vertical-align: baseline" @click="importTemplate"></el-link>
</div>
</el-upload>
<div slot="footer" class="dialog-footer">
@ -442,6 +236,7 @@
<script>
import { listSparePartsRegistration, getSparePartsRegistration, delSparePartsRegistration, addSparePartsRegistration, updateSparePartsRegistration } from "@/api/ems/info/sparePartsRegistration";
import { getToken } from "@/utils/auth";
export default {
name: "SparePartsRegistration",
@ -469,67 +264,53 @@
queryParams: {
pageNum: 1,
pageSize: 10,
type: null,
referenceLocation: null,
locationDescription: null,
powerSource: null,
batteryType: null,
remarks: null,
imageLocation: null,
firstInstance: null,
secondInstance: null,
thirdInstance: null,
fourthInstance: null,
fifthInstance: null,
sixthInstance: null,
seventhInstance: null,
eighthInstance: null,
ninthInstance: null,
tenthInstance: null,
eleventhInstance: null,
twelfthInstance: null
date: null,
sparePartsName: null,
wasteQuantity: null,
storageLocation: null,
registrar: null,
warehouseConfirmation: null,
remarks: null
},
//
form: {},
//
rules: {
date: [
{ required: true, message: "日期不能为空", trigger: "blur" }
],
},
columns: [
{ key: 0, label: `主键自增ID`, visible: false },
{ key: 1, label: `类型`, visible: true },
{ key: 2, label: `参照位置`, visible: true },
{ key: 3, label: `位置描述`, visible: true },
{ key: 4, label: `取电`, visible: true },
{ key: 5, label: `电池类型`, visible: true },
{ key: 6, label: `备注`, visible: true },
{ key: 7, label: `图片位置`, visible: true },
{ key: 8, label: `第1次`, visible: true },
{ key: 9, label: `第2次`, visible: true },
{ key: 10, label: `第3次`, visible: true },
{ key: 11, label: `第4次`, visible: true },
{ key: 12, label: `第5次`, visible: true },
{ key: 13, label: `第6次`, visible: true },
{ key: 14, label: `第7次`, visible: true },
{ key: 15, label: `第8次`, visible: true },
{ key: 16, label: `第9次`, visible: true },
{ key: 17, label: `第10次`, visible: true },
{ key: 18, label: `第11次`, visible: true },
{ key: 19, label: `第12次`, visible: true },
{ key: 1, label: `日期`, visible: true },
{ key: 2, label: `备件名称`, visible: true },
{ key: 3, label: `废存数量`, visible: true },
{ key: 4, label: `存放位置`, visible: true },
{ key: 5, label: `登记人`, visible: true },
{ key: 6, label: `库管确认`, visible: true },
{ key: 7, label: `备注`, visible: true },
{ key: 8, label: `备件型号`, visible: true },
],
//
upload: {
title: "导入动力能源部行输科废旧备件登记",
//
open: false,
url: "",
updateSupport: false,
//
title: "",
//
isUploading: false,
headers: {}
//
updateSupport: 0,
//
headers: { Authorization: "Bearer " + getToken() },
//
url: process.env.VUE_APP_BASE_API + "/ems/info/sparePartsRegistration/importData"
}
};
},
created() {
this.getList();
this.upload.url = process.env.VUE_APP_BASE_API + "/ems/info/sparePartsRegistration/importData";
this.upload.headers = { Authorization: "Bearer " + this.$store.getters.token };
},
methods: {
/** 查询动力能源部行输科废旧备件登记列表 */
@ -550,25 +331,13 @@
reset() {
this.form = {
objid: null,
type: null,
referenceLocation: null,
locationDescription: null,
powerSource: null,
batteryType: null,
remarks: null,
imageLocation: null,
firstInstance: null,
secondInstance: null,
thirdInstance: null,
fourthInstance: null,
fifthInstance: null,
sixthInstance: null,
seventhInstance: null,
eighthInstance: null,
ninthInstance: null,
tenthInstance: null,
eleventhInstance: null,
twelfthInstance: null
date: null,
sparePartsName: null,
wasteQuantity: null,
storageLocation: null,
registrar: null,
warehouseConfirmation: null,
remarks: null
};
this.resetForm("form");
},
@ -642,13 +411,13 @@
},
/** 导入按钮操作 */
handleImport() {
this.upload.title = "导入动力能源部行输科废旧备件登记";
this.upload.title = "废旧备件登记导入";
this.upload.open = true;
},
/** 下载模板操作 */
importTemplate() {
this.download('ems/info/sparePartsRegistration/importTemplate', {
}, `备件登记数据模板_${new Date().getTime()}.xlsx`)
}, `sparePartsRegistration_template_${new Date().getTime()}.xlsx`);
},
//
handleFileUploadProgress(event, file, fileList) {

@ -309,6 +309,9 @@
form: {},
//
rules: {
date: [
{ required: true, message: "日期不能为空", trigger: "blur" }
],
},
columns: [
{ key: 0, label: `主键自增ID`, visible: false },

@ -352,6 +352,9 @@
form: {},
//
rules: {
date: [
{ required: true, message: "日期不能为空", trigger: "blur" }
],
},
columns: [
{ key: 0, label: `主键自增ID`, visible: false },

@ -484,6 +484,12 @@
form: {},
//
rules: {
upsInstallationCabinetName: [
{ required: true, message: "UPS安装柜体名称不能为空", trigger: "blur" }
],
referenceLocation: [
{ required: true, message: "参照位置不能为空", trigger: "blur" }
]
},
columns: [
{ key: 0, label: `主键自增ID`, visible: false },

Loading…
Cancel
Save