<template>
|
<!-- 面包屑导航区 模板页面-->
|
<div class="indexs">
|
<!-- <el-breadcrumb separator-class="el-icon-arrow-right">
|
<el-breadcrumb-item :to="{ path: '/home' }">首页</el-breadcrumb-item>
|
<el-breadcrumb-item>系统设置</el-breadcrumb-item>
|
<el-breadcrumb-item>人员管理</el-breadcrumb-item>
|
</el-breadcrumb> -->
|
<!-- 卡片视图区 -->
|
<el-card>
|
<!-- 搜索与添加 clearable "toggleSelection([tableData[1], tableData[2]])" -->
|
<el-row>
|
<el-button type="success" plain @click="exportExcel" >导出Excel</el-button>
|
<el-button type="warning" plain @click="deleteStock" >删除</el-button>
|
<el-button type="info" plain @click="updataStock" >修改库存</el-button>
|
<el-select v-model="positionTypeValue" placeholder="选择货位类型" class="positionTypevalue">
|
<el-option
|
v-for="item in positionType"
|
:key="item.value"
|
:label="item.label"
|
:value="item.value">
|
</el-option>
|
</el-select>
|
<el-input v-model="positionName" placeholder="物料名称/物料编号/采购单号---货位名称/托盘号/跟踪号" class="positionname"></el-input>
|
<el-date-picker
|
v-model="datatime"
|
size="large"
|
type="datetimerange"
|
value-format="yyyy-MM-dd HH:mm:ss"
|
range-separator="至"
|
start-placeholder="开始日期"
|
end-placeholder="结束日期"
|
>
|
</el-date-picker>
|
<el-button type="success" plain @click="find" >查询</el-button>
|
<el-button type="info" plain @click="reset" >重置</el-button>
|
</el-row>
|
<!-- 显示人员列表 -->
|
<el-table ref= "table" :data="TakeStocklist" bottom= "10%" border stripe show-summary >
|
<el-table-column
|
:reserve-selection="true"
|
type="selection"
|
width="55">
|
</el-table-column>
|
<el-table-column
|
label="序号"
|
type="index"
|
width="50">
|
</el-table-column>
|
<el-table-column label="库存id" prop="ProductPosition_Id" width="80"></el-table-column>
|
<el-table-column label="采购单号" prop="PoCode" width="100"></el-table-column>
|
<el-table-column label="采购项号" prop="ItemNumber" width="80"></el-table-column>
|
<el-table-column label="销售单号" prop="SaleCode" width="100" ></el-table-column>
|
<el-table-column label="销售项号" prop="ExtendField08" width="80"></el-table-column>
|
<el-table-column label="跟踪号" prop="ExtendField04" width="80"></el-table-column>
|
<el-table-column label="货位名称" prop="PositionName" width="110"></el-table-column>
|
<el-table-column label="托盘号" prop="PlateCode" width="110"></el-table-column>
|
<el-table-column label="物料编号" prop="ProductCode" ></el-table-column>
|
<el-table-column label="物料名称" prop="ProductName" ></el-table-column>
|
<el-table-column label="库存量" prop="ProductStorage" width="100"></el-table-column>
|
<el-table-column label="库存单位" prop="SmallUnit" width="80"></el-table-column>
|
<el-table-column label="阻力臂" prop="IsBoosterArm" width="80"></el-table-column>
|
<el-table-column label="入库时间" prop="InStorageDate" width="110"></el-table-column>
|
<el-table-column label="限用日期" prop="LimitDate" width="110"></el-table-column>
|
</el-table>
|
<el-pagination
|
:current-page="queryInfo.pagenum"
|
:page-sizes="[5,10, 15, 20]"
|
:page-size="queryInfo.pagesize"
|
:total="total"
|
layout="total, sizes, prev, pager, next, jumper"
|
@size-change="handleSizeChange"
|
@current-change="handleCurrentChange"
|
>
|
</el-pagination>
|
</el-card>
|
<el-dialog :visible.sync="dialogFormVisible" title="库存修改" width="30%">
|
<el-form :label-width="formLabelWidth">
|
<el-form-item label="跟踪号">
|
<el-col :span="18">
|
<el-input v-model="taskForm.tracknumber"></el-input>
|
</el-col>
|
</el-form-item>
|
<el-form-item label="销售单号">
|
<el-col :span="18">
|
<el-input v-model="taskForm.saleCode"></el-input>
|
</el-col>
|
</el-form-item>
|
<el-form-item label="销售项号">
|
<el-col :span="18">
|
<el-input v-model="taskForm.saleItem"></el-input>
|
</el-col>
|
</el-form-item>
|
<el-form-item label="物料编号">
|
<el-col :span="20">
|
<el-select v-model="taskForm.productCode" :remote-method="remoteMethod" filterable clearable remote reserve-keyword placeholder="请选择零件号" width="300px">
|
<el-option v-for="item in productList" :key="item.product_Id" :label="item.productCode" :value="item.product_Id">
|
</el-option>
|
</el-select>
|
</el-col>
|
<!-- <el-input v-model="name"></el-input> product_Id-->
|
</el-form-item>
|
<el-form-item label="库存量">
|
<el-col :span="18">
|
<el-input v-model="taskForm.productStorage"></el-input>
|
</el-col>
|
</el-form-item>
|
</el-form>
|
<div slot="footer" class="dialog-footer">
|
<el-button @click="dialogFormVisible = false">取 消</el-button>
|
<el-button type="primary" @click="updateProductPosition">确 定</el-button>
|
</div>
|
|
</el-dialog>
|
</div>
|
</template>
|
<script>
|
import { parseTime } from "@/utils";
|
export default {
|
data() {
|
return {
|
positionName: "",
|
queryInfo: {
|
// 当前页
|
pagenum: 1,
|
// 每页显示多少条信息s
|
pagesize: 5
|
},
|
TakeStocklist: [],
|
TakeStocklistAll: [],
|
total: 0,
|
datatime: "",
|
positionType: [{ value: "1", label: "常规货位" }, { value: "6", label: "空托盘" }, { value: "4", label: "暂存区" }],
|
positionTypeValue: "1",
|
dialogFormVisible: false,
|
productList: [],
|
updateDate: null,
|
taskForm: {
|
stockId: null,
|
tracknumber: null,
|
saleCode: null,
|
productCode: null,
|
productStorage: null,
|
saleItem: null
|
}
|
};
|
},
|
created() {},
|
mounted() {
|
this.find();
|
},
|
methods: {
|
// 监听 pagesize 改变
|
handleSizeChange(newSizd) {
|
this.queryInfo.pagesize = newSizd;
|
this.queryInfo.pagenum = 1;
|
this.find();
|
},
|
// 监听 页码值改变
|
handleCurrentChange(newpage) {
|
this.queryInfo.pagenum = newpage;
|
|
this.find();
|
},
|
userStatusChange(userinfo) {
|
console.log(userinfo);
|
},
|
exportExcel() {
|
// import("@/vendor/Export2Excel")
|
this.downloadLoading = true;
|
import("@/vendor/Export2Excel").then(excel => {
|
const tHeader = ["ID", "销售单号", "销售项号", "物料编号", "物料名称", "单位", "库存数量", "SAP数量"];
|
const filterVal = ["ID", "ProcureCode", "ProcureItem", "MateralCode", "MateralName", "Unit", "StockQuantity", "SapQuantity"];
|
const data = this.formatJson(filterVal, this.TakeStocklistAll);
|
excel.export_json_to_excel({
|
header: tHeader,
|
data,
|
filename: "库存盘点表"
|
});
|
this.downloadLoading = false;
|
});
|
},
|
formatJson(filterVal, jsonData) {
|
return jsonData.map(v =>
|
filterVal.map(j => {
|
if (j === "timestamp") {
|
return parseTime(v[j]);
|
} else {
|
return v[j];
|
}
|
})
|
);
|
},
|
find() {
|
const url = "/api/task/productStockInfo";
|
const params = {
|
positionName: this.positionName,
|
queryInfo: this.queryInfo,
|
positionTypeValue: this.positionTypeValue,
|
datatime: this.datatime
|
};
|
var callback = res => {
|
debugger;
|
if (res.result === true) {
|
res.data.forEach(item => {
|
if (item.IsBoosterArm === 0) item.IsBoosterArm = "否";
|
if (item.IsBoosterArm === 1) item.IsBoosterArm = "是";
|
});
|
|
this.TakeStocklist = res.data;
|
this.TakeStocklistAll = res.data2;
|
this.total = res.countPrint;
|
} else {
|
return this.$message.error("获取失败");
|
}
|
};
|
this.common.ajax(url, params, callback, true);
|
},
|
reset() {
|
this.positionName = "";
|
this.positionTypeValue = "1";
|
this.datatime = "";
|
},
|
deleteStock() {
|
debugger;
|
var ss = this.$refs.table.selection;
|
if (!ss.length) {
|
this.$message.error("请选中一行!");
|
return;
|
}
|
if (ss.length !== 1) {
|
this.$message.error("只能选中一行!");
|
return;
|
}
|
var deleteid = ss[0].ProductPosition_Id;
|
this.$confirm("确定要进行删除操作吗?", "删除", {
|
confirmButtonText: "确定",
|
cancelButtonText: "取消",
|
type: "warning"
|
})
|
.then(() => {
|
const url = "/api/task/deleteProductStock";
|
const params = {
|
id: deleteid
|
};
|
debugger;
|
const ref = this.dataList;
|
var callback = res => {
|
this.common.showMsg(res);
|
|
if (res.result) {
|
this.$refs.table.clearSelection();
|
this.find();
|
return this.$message.success("删除成功");
|
} else {
|
this.$refs.table.clearSelection();
|
|
return this.$message.error("托盘只有一条数据不可以删除");
|
}
|
};
|
this.common.ajax(url, params, callback, ref);
|
})
|
.catch(() => {
|
this.$message({
|
type: "info",
|
message: "已取消"
|
});
|
});
|
},
|
updataStock() {
|
var ss = this.$refs.table.selection;
|
this.updateDate = ss;
|
if (!ss.length) {
|
this.$message.error("请选中一行!");
|
return;
|
}
|
if (ss.length !== 1) {
|
this.$message.error("只能选中一行!");
|
return;
|
}
|
this.dialogFormVisible = true;
|
var rows = JSON.parse(JSON.stringify(ss));
|
rows.forEach(item => {
|
this.taskForm.productCode = item.ProductCode;
|
this.taskForm.stockId = item.ProductPosition_Id;
|
this.taskForm.tracknumber = item.ExtendField04; //跟踪号
|
this.taskForm.saleCode = item.SaleCode; //销售单号
|
this.taskForm.saleItem = item.ExtendField08; //销售项号
|
this.taskForm.productStorage = item.ProductStorage; //库存数量
|
});
|
this.$refs.table.clearSelection();
|
},
|
// 获取所有商品信息
|
remoteMethod(query) {
|
const url = "api/basicInfo/base/productInfo/getList";
|
const params = { name: query };
|
debugger;
|
var callback = res => {
|
if (res.result) {
|
debugger;
|
// this.ALLproductList = res.data;
|
this.productList = res.data;
|
}
|
};
|
this.common.ajax(url, params, callback, true);
|
},
|
// 获取所有商品信息
|
updateProductPosition() {
|
debugger;
|
|
const url = "/api/task/updateProductStock";
|
const params = {
|
taskForm: this.taskForm
|
};
|
const ref = this.dataList;
|
var callback = res => {
|
this.common.showMsg(res);
|
this.$refs.table.clearSelection();
|
this.find();
|
this.taskForm.productCode = null;
|
this.taskForm.stockId = null;
|
this.taskForm.tracknumber = null;
|
this.taskForm.saleCode = null;
|
this.taskForm.saleItem = null;
|
this.taskForm.productStorage = null;
|
this.dialogFormVisible = false;
|
if (res.result) {
|
return this.$message.success("修改成功");
|
} else {
|
return this.$message.error("修改失败");
|
}
|
};
|
this.common.ajax(url, params, callback, ref);
|
}
|
}
|
};
|
</script>
|
<style lang="postcss" scoped>
|
.el-table .el-pagination {
|
margin-top: 10px;
|
line-height: 30px;
|
margin-bottom: 0%;
|
}
|
.el-row {
|
text-align: left;
|
}
|
.positionname {
|
width: 420px;
|
}
|
.positionTypevalue {
|
width: 150px;
|
}
|
.el-card {
|
padding: 0%;
|
margin-bottom: 0%;
|
}
|
thead .el-table-column--selection .cell {
|
display: none;
|
}
|
</style>
|