<template>
|
<section>
|
<!--工具条-->
|
<toolbar :buttonList="buttonList" @callFunction="callFunction"></toolbar>
|
|
<!--列表-->
|
<el-table
|
:data="WMProductLocation"
|
highlight-current-row
|
@current-change="selectCurrentRow"
|
v-loading="listLoading"
|
@selection-change="selsChange"
|
@select="selsChangeOne"
|
style="width: 100%"
|
ref="multipleTable"
|
>
|
<el-table-column type="selection" width="80"></el-table-column>
|
<el-table-column type="index" width="100"></el-table-column>
|
<el-table-column
|
prop="LocationName"
|
label="库位名称"
|
width="250"
|
sortable
|
></el-table-column>
|
<el-table-column
|
prop="LocationStockNum"
|
label="存储容量"
|
width="150"
|
sortable
|
></el-table-column>
|
<el-table-column
|
prop="LocationNumFree"
|
label="剩余容量"
|
width="150"
|
sortable
|
></el-table-column>
|
<el-table-column
|
prop="Purpose"
|
label="用途"
|
width="120"
|
:formatter="formatPurpose"
|
sortable
|
></el-table-column>
|
<el-table-column prop="Remark" label="备注" sortable></el-table-column>
|
<el-table-column
|
prop="IsUse"
|
label="状态"
|
width="120"
|
:formatter="formatIsUse"
|
sortable
|
>
|
<template slot-scope="scope">
|
<el-tag
|
:type="scope.row.IsUse == 1 ? 'success' : 'danger'"
|
disable-transitions
|
>{{ scope.row.IsUse == 1 ? "启用" : "禁用" }}</el-tag
|
>
|
</template>
|
</el-table-column>
|
<el-table-column
|
prop="AdminName"
|
label="创建人"
|
width="150"
|
sortable
|
></el-table-column>
|
<el-table-column
|
prop="CreateTime"
|
label="创建时间"
|
width="180"
|
:formatter="formatDateTime"
|
sortable
|
></el-table-column>
|
<!-- <el-table-column label="操作">
|
<template scope="scope">
|
<el-button size="small" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
|
</template>
|
</el-table-column> -->
|
</el-table>
|
|
<!--工具条-->
|
<el-col :span="24" class="toolbar">
|
<el-pagination
|
layout="prev, pager, next"
|
@current-change="handleCurrentChange"
|
:page-size="20"
|
:total="total"
|
style="float: right"
|
></el-pagination>
|
</el-col>
|
|
<!--编辑界面-->
|
<el-dialog
|
title="编辑"
|
:visible.sync="editFormVisible"
|
v-model="editFormVisible"
|
:close-on-click-modal="false"
|
>
|
<el-form
|
:model="editForm"
|
label-width="80px"
|
:rules="editFormRules"
|
ref="editForm"
|
>
|
<el-form-item label="库位名称" prop="LocationName">
|
<el-input
|
v-model="editForm.LocationName"
|
placeholder="请输入库位名称"
|
></el-input>
|
</el-form-item>
|
<el-form-item label="存储容量" prop="LocationStockNum">
|
<el-input
|
v-model="editForm.LocationStockNum"
|
placeholder="请输入存储容量"
|
></el-input>
|
</el-form-item>
|
<el-form-item label="用途" prop="Purpose">
|
<el-select v-model="editForm.Purpose" placeholder="请选择用途">
|
<el-option
|
v-for="item in purposeList"
|
:key="item.value"
|
:label="item.Name"
|
:value="item.value"
|
></el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="状态" prop="IsUse">
|
<el-radio-group v-model="editForm.IsUse">
|
<el-radio class="radio" :label="true">启用</el-radio>
|
<el-radio class="radio" :label="false">禁用</el-radio>
|
</el-radio-group>
|
</el-form-item>
|
<el-form-item label="备注">
|
<el-input
|
type="textarea"
|
v-model="editForm.Remark"
|
placeholder="请输入备注"
|
></el-input>
|
</el-form-item>
|
</el-form>
|
<div slot="footer" class="dialog-footer">
|
<el-button @click.native="editFormVisible = false">取消</el-button>
|
<el-button
|
type="primary"
|
@click.native="editSubmit"
|
:loading="editLoading"
|
>提交</el-button
|
>
|
</div>
|
</el-dialog>
|
|
<!--新增界面-->
|
<el-dialog
|
title="新增"
|
:visible.sync="addFormVisible"
|
v-model="addFormVisible"
|
:close-on-click-modal="false"
|
>
|
<el-form
|
:model="addForm"
|
label-width="80px"
|
:rules="addFormRules"
|
ref="addForm"
|
>
|
<el-form-item label="库位名称" prop="LocationName">
|
<el-input
|
v-model="addForm.LocationName"
|
placeholder="请输入库位名称"
|
></el-input>
|
</el-form-item>
|
<el-form-item label="存储容量" prop="LocationStockNum">
|
<el-input
|
v-model="addForm.LocationStockNum"
|
placeholder="请输入存储容量"
|
></el-input>
|
</el-form-item>
|
<el-form-item label="用途" prop="Purpose">
|
<el-select v-model="addForm.Purpose" placeholder="请选择用途">
|
<el-option
|
v-for="item in purposeList"
|
:key="item.value"
|
:label="item.Name"
|
:value="item.value"
|
></el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="状态" prop="IsUse">
|
<el-radio-group v-model="addForm.IsUse">
|
<el-radio class="radio" :label="true">启用</el-radio>
|
<el-radio class="radio" :label="false">禁用</el-radio>
|
</el-radio-group>
|
</el-form-item>
|
<el-form-item label="备注">
|
<el-input
|
type="textarea"
|
v-model="addForm.Remark"
|
placeholder="请输入备注"
|
></el-input>
|
</el-form-item>
|
</el-form>
|
<div slot="footer" class="dialog-footer">
|
<el-button @click.native="addFormVisible = false">取消</el-button>
|
<el-button
|
type="primary"
|
@click.native="addSubmit"
|
:loading="addLoading"
|
>提交</el-button
|
>
|
</div>
|
</el-dialog>
|
</section>
|
</template>
|
<script>
|
import util from "../../../../util/date";
|
import {
|
//获取后台数据接口
|
getWMProductLocationListPage, //商品库位列表API
|
editWMProductLocation, //商品库位编辑API
|
addWMProductLocation, //商品库位新增API
|
// removeWMProductLocation, //商品库位删除API
|
} from "../../../api/api";
|
import { getButtonList } from "../../../promissionRouter";
|
import Toolbar from "../../../components/Toolbar";
|
export default {
|
components: { Toolbar },
|
data() {
|
return {
|
filters: {
|
name: "",
|
},
|
WMProductLocation: [],
|
purposeList: [
|
{ Name: "存放", value: 1 },
|
{ Name: "其它", value: 2 },
|
],
|
total: 0,
|
buttonList: [],
|
currentRow: null,
|
page: 1,
|
listLoading: false,
|
sels: [], //列表选中列
|
addDialogFormVisible: false,
|
//编辑
|
editFormVisible: false, //编辑界面是否显示
|
editLoading: false,
|
editFormRules: {
|
LocationName: [
|
{ required: true, message: "请输入库位名称", trigger: "blur" },
|
],
|
LocationStockNum: [
|
{ required: true, message: "请输入存储容量", trigger: "blur" },
|
],
|
Purpose: [{ required: true, message: "请选择用途", trigger: "blur" }],
|
IsUse: [{ required: true, message: "请选择状态", trigger: "blur" }],
|
},
|
editForm: {},
|
//新增
|
addFormVisible: false, //新增界面是否显示
|
addLoading: false,
|
addFormRules: {
|
LocationName: [
|
{ required: true, message: "请输入库位名称", trigger: "blur" },
|
],
|
LocationStockNum: [
|
{ required: true, message: "请输入存储容量", trigger: "blur" },
|
],
|
Purpose: [{ required: true, message: "请选择用途", trigger: "blur" }],
|
IsUse: [{ required: true, message: "请选择状态", trigger: "blur" }],
|
},
|
//新增界面数据
|
addForm: {},
|
};
|
},
|
methods: {
|
//选中行时勾选框
|
selsChangeOne(selection, row) {
|
this.currentRow = row;
|
this.$refs.multipleTable.toggleRowSelection(row); //选中当前选择
|
this.selectCurrentRow(row);
|
},
|
selectCurrentRow(val) {
|
this.currentRow = val;
|
this.$refs.multipleTable.toggleRowSelection(val); //选中当前选择
|
},
|
callFunction(item) {
|
this.filters = {
|
name: item.search,
|
};
|
this[item.Func].apply(this, item);
|
},
|
//状态显示转换
|
formatIsUse: function (row, column) {
|
return row.IsUse == 1 ? "启用" : row.IsUse == 0 ? "禁用" : "未知";
|
},
|
//用途显示转换
|
formatPurpose: function (row, column) {
|
return row.Purpose == 1 ? "存放" : row.Purpose == 2 ? "其它" : "未知";
|
},
|
formatDateTime: function (row, column) {
|
return !row.CreateTime || row.CreateTime == ""
|
? ""
|
: util.formatDate.format(new Date(row.CreateTime), "yyyy-MM-dd hh:mm");
|
},
|
handleCurrentChange(val) {
|
this.page = val;
|
this.getWMProductLocation();
|
},
|
//获取库位列表
|
getWMProductLocation() {
|
let para = {
|
page: this.page,
|
key: this.filters.name,
|
};
|
this.listLoading = true;
|
|
//NProgress.start();
|
getWMProductLocationListPage(para).then((res) => {
|
this.total = res.data.response.dataCount;
|
this.WMProductLocation = res.data.response.data;
|
this.listLoading = false;
|
//NProgress.done();
|
});
|
},
|
//删除
|
// handleDel: function (index, row) {
|
// if (!row) {
|
// row = this.currentRow;
|
// }
|
// if (!row) {
|
// this.$message({
|
// message: "请选择要删除的一行数据!",
|
// type: "error",
|
// });
|
|
// return;
|
// }
|
// this.$confirm("确认删除该记录吗?", "提示", {
|
// type: "warning",
|
// })
|
// .then(() => {
|
// this.listLoading = true;
|
// //NProgress.start();
|
// let para = { id: row.Id };
|
// removeWMProductLocation(para).then((res) => {
|
// if (util.isEmt.format(res)) {
|
// this.listLoading = false;
|
// return;
|
// }
|
// this.listLoading = false;
|
// //NProgress.done();
|
// if (res.data.success) {
|
// this.$message({
|
// message: "删除成功",
|
// type: "success",
|
// });
|
// } else {
|
// this.$message({
|
// message: res.data.msg,
|
// type: "error",
|
// });
|
// }
|
|
// this.getWMProductLocation();
|
// });
|
// })
|
// .catch(() => {});
|
// },
|
//显示编辑界面
|
handleEdit: function (index, row) {
|
if (!row) {
|
row = this.currentRow;
|
}
|
if (!row) {
|
this.$message({
|
message: "请选择要编辑的一行数据!",
|
type: "error",
|
});
|
|
return;
|
}
|
this.editFormVisible = true;
|
this.editForm = Object.assign({}, row);
|
},
|
//显示新增界面
|
handleAdd() {
|
this.addFormVisible = true;
|
this.addForm = {
|
LocationName: "",
|
Remark: "",
|
IsUse: true,
|
};
|
},
|
//编辑
|
editSubmit: function () {
|
this.$refs.editForm.validate((valid) => {
|
if (valid) {
|
this.$confirm("确认提交吗?", "提示", {}).then(() => {
|
this.editLoading = true;
|
//NProgress.start();
|
let para = Object.assign({}, this.editForm);
|
editWMProductLocation(para).then((res) => {
|
if (util.isEmt.format(res)) {
|
this.editLoading = false;
|
return;
|
}
|
if (res.data.success) {
|
this.editLoading = false;
|
//NProgress.done();
|
this.$message({
|
message: res.data.msg,
|
type: "success",
|
});
|
this.$refs["editForm"].resetFields();
|
this.editFormVisible = false;
|
this.getWMProductLocation();
|
} else {
|
this.$message({
|
message: res.data.msg,
|
type: "error",
|
});
|
}
|
});
|
});
|
}
|
});
|
},
|
//新增
|
addSubmit: function () {
|
this.$refs.addForm.validate((valid) => {
|
if (valid) {
|
this.$confirm("确认提交吗?", "提示", {}).then(() => {
|
this.addLoading = true;
|
//NProgress.start();
|
let para = Object.assign({}, this.addForm);
|
addWMProductLocation(para).then((res) => {
|
if (util.isEmt.format(res)) {
|
this.addLoading = false;
|
return;
|
}
|
if (res.data.success) {
|
this.addLoading = false;
|
//NProgress.done();
|
this.$message({
|
message: res.data.msg,
|
type: "success",
|
});
|
this.$refs["addForm"].resetFields();
|
this.addFormVisible = false;
|
this.getWMProductLocation();
|
} else {
|
this.$message({
|
message: res.data.msg,
|
type: "error",
|
});
|
}
|
});
|
});
|
}
|
});
|
},
|
selsChange: function (sels) {
|
this.sels = sels;
|
},
|
},
|
mounted() {
|
this.getWMProductLocation();
|
|
let routers = window.localStorage.router
|
? JSON.parse(window.localStorage.router)
|
: [];
|
this.buttonList = getButtonList(this.$route.path, routers);
|
},
|
};
|
</script>
|