<template>
|
<section>
|
<!--工具条-->
|
<SearchBar
|
:buttonList="buttonList"
|
@callFunction="callFunction"
|
></SearchBar>
|
|
<!--列表-->
|
<el-table
|
:data="WMProductList"
|
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="50"></el-table-column>
|
<el-table-column type="index" width="40"></el-table-column>
|
<el-table-column type="expand" width="30">
|
<template slot-scope="props">
|
<el-form label-position="left" inline class="demo-table-expand">
|
<el-form-item label="商品名称">
|
<span>{{ props.row.Name }}</span>
|
</el-form-item>
|
<el-form-item label="商品分类">
|
<span>{{ props.row.ClassName }}</span>
|
</el-form-item>
|
<el-form-item label="商品单位">
|
<span>{{ props.row.UnitName }}</span>
|
</el-form-item>
|
<el-form-item label="商品规格">
|
<span>{{ props.row.SpecName }}</span>
|
</el-form-item>
|
<el-form-item label="商品编号">
|
<span>{{ props.row.Code }}</span>
|
</el-form-item>
|
<el-form-item label="商品条码">
|
<span>{{ props.row.BarCode }}</span>
|
</el-form-item>
|
<el-form-item label="零售价">
|
<span>{{ props.row.Price }}</span>
|
</el-form-item>
|
<el-form-item label="采购价">
|
<span>{{ props.row.PurchasePrice }}</span>
|
</el-form-item>
|
<el-form-item label="异常浮动天数">
|
<span>{{ props.row.OddDays }}</span>
|
</el-form-item>
|
<el-form-item label="异常浮动倍数">
|
<span>{{ props.row.OddFloatNum }}</span>
|
</el-form-item>
|
<el-form-item label="库存预警下限">
|
<span>{{ props.row.StoreBaseline }}</span>
|
</el-form-item>
|
<el-form-item label="库存预警上限">
|
<span>{{ props.row.StoreLimit }}</span>
|
</el-form-item>
|
<el-form-item label="所属仓库">
|
<span>{{ props.row.WareHouseName }}</span>
|
</el-form-item>
|
<el-form-item label="排序">
|
<span>{{ props.row.Sort }}</span>
|
</el-form-item>
|
<el-form-item label="状态">
|
<span>{{ props.row.IsUse == 1 ? "启用" : "禁用" }}</span>
|
</el-form-item>
|
<el-form-item label="是否需要审核">
|
<span>{{
|
props.row.IsChecked == 1
|
? "采购申请时需审核"
|
: "采购申请时无需审核"
|
}}</span>
|
</el-form-item>
|
</el-form>
|
</template>
|
</el-table-column>
|
<el-table-column prop="Name" label="商品名称" sortable></el-table-column>
|
<el-table-column
|
prop="Code"
|
label="商品编号"
|
width="170"
|
sortable
|
></el-table-column>
|
<el-table-column
|
prop="ClassName"
|
label="商品分类"
|
width="120"
|
sortable
|
></el-table-column>
|
<el-table-column
|
prop="SpecName"
|
label="商品规格"
|
width="200"
|
sortable
|
></el-table-column>
|
<el-table-column
|
prop="UnitName"
|
label="商品单位"
|
width="120"
|
sortable
|
></el-table-column>
|
<el-table-column
|
prop="Quantity"
|
label="库存"
|
width="80"
|
sortable
|
></el-table-column>
|
<el-table-column
|
prop="WareHouseName"
|
label="所属仓库"
|
width="120"
|
sortable
|
></el-table-column>
|
<el-table-column
|
prop="Sort"
|
label="排序"
|
width="80"
|
sortable
|
></el-table-column>
|
<el-table-column
|
prop="IsUse"
|
label="状态"
|
:formatter="formatIsUse"
|
width="80"
|
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="IsChecked"
|
label="是否需审核"
|
:formatter="formatIsChecked"
|
width="140"
|
sortable
|
>
|
<template slot-scope="scope">
|
<el-tag
|
:type="scope.row.IsChecked == 1 ? 'warning' : 'info'"
|
disable-transitions
|
>{{
|
scope.row.IsChecked == 1
|
? "采购申请时需审核"
|
: "采购申请时无需审核"
|
}}</el-tag
|
>
|
</template>
|
</el-table-column>
|
<el-table-column
|
prop="AdminName"
|
label="创建人"
|
width="90"
|
sortable
|
></el-table-column>
|
<el-table-column
|
prop="CreateTime"
|
label="创建时间"
|
:formatter="formatDateTime"
|
width="160"
|
sortable
|
></el-table-column>
|
<!-- <el-table-column label="操作">
|
<template scope="scope">
|
<el-button size="small" @click="handleEdit(scope.$index, scope.row)"
|
>编辑</el-button
|
>
|
<el-button
|
size="small"
|
@click="handleSetProduct(scope.$index, scope.row)"
|
>设置商品</el-button
|
>
|
<el-button
|
type="danger"
|
size="small"
|
v-if="scope.row.IsUse == 1"
|
@click="handleDel(scope.$index, scope.row)"
|
>删除</el-button
|
>
|
</template>
|
</el-table-column> -->
|
</el-table>
|
|
<!--工具条-->
|
<el-col :span="24" class="toolbar">
|
<!-- <el-button
|
type="danger"
|
@click="batchRemove"
|
:disabled="this.sels.length === 0"
|
>批量删除</el-button
|
> -->
|
<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="120px"
|
:rules="editFormRules"
|
ref="editForm"
|
>
|
<el-form-item label="商品名称" prop="Name">
|
<el-input
|
v-model="editForm.Name"
|
placeholder="请输入商品名称"
|
></el-input>
|
</el-form-item>
|
<!-- <el-form-item label="商品分类" prop="ClassId">
|
<el-select
|
style="width: 100%"
|
v-model="editForm.ClassId"
|
filterable
|
placeholder="请选择商品分类"
|
>
|
<el-option
|
v-for="item in classModules"
|
:key="item.Id"
|
:value="item.Id"
|
:label="item.ClassName"
|
>
|
<span style="float: left">{{ item.ClassName }}</span>
|
<span style="float: right; color: #8492a6; font-size: 13px"
|
>{{ item.LevelId }}级</span
|
>
|
</el-option>
|
</el-select>
|
</el-form-item> -->
|
<el-form-item prop="ParentIdArr" label="商品分类" width sortable>
|
<el-cascader
|
placeholder="请选择商品分类,支持搜索功能"
|
style="width: 100%"
|
v-model="editForm.ParentIdArr"
|
:options="classOptions"
|
filterable
|
clearable
|
change-on-select
|
>
|
</el-cascader>
|
</el-form-item>
|
<el-form-item label="商品单位" prop="Unit">
|
<el-select
|
style="width: 100%"
|
v-model="editForm.Unit"
|
filterable
|
placeholder="请选择商品单位"
|
>
|
<el-option
|
v-for="item in unitModules"
|
:key="item.Id"
|
:value="item.Id"
|
:label="item.Unit"
|
>
|
<span style="float: left">{{ item.Unit }}</span>
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="商品规格" prop="SpecIds">
|
<el-select
|
style="width: 100%"
|
v-model="editForm.SpecIds"
|
filterable
|
placeholder="请选择商品规格"
|
>
|
<el-option
|
v-for="item in specModules"
|
:key="item.Id"
|
:value="item.Id"
|
:label="item.Name"
|
>
|
<span style="float: left">{{ item.Name }}</span>
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<!-- <el-form-item label="商品编号" prop="Code">
|
<el-input
|
v-model="editForm.Code"
|
placeholder="请输入商品编号"
|
></el-input>
|
</el-form-item> -->
|
<el-form-item label="商品条码" prop="BarCode">
|
<el-input
|
v-model="editForm.BarCode"
|
placeholder="请输入商品条码"
|
></el-input>
|
</el-form-item>
|
<el-form-item label="零售价" prop="Price">
|
<el-input-number
|
v-model="editForm.Price"
|
:precision="4"
|
:min="0"
|
placeholder="请输入零售价"
|
></el-input-number>
|
</el-form-item>
|
<el-form-item label="异常浮动天数" prop="OddDays">
|
<el-input
|
v-model.number="editForm.OddDays"
|
placeholder="请输入异常浮动天数"
|
></el-input>
|
</el-form-item>
|
<el-form-item label="异常浮动倍数" prop="OddFloatNum">
|
<el-input
|
v-model.number="editForm.OddFloatNum"
|
placeholder="请输入异常浮动倍数"
|
></el-input>
|
</el-form-item>
|
<el-form-item label="库存预警下限" prop="StoreBaseline">
|
<el-input
|
v-model.number="editForm.StoreBaseline"
|
placeholder="请输入库存预警下限"
|
></el-input>
|
</el-form-item>
|
<el-form-item label="库存预警上限" prop="StoreLimit">
|
<el-input
|
v-model.number="editForm.StoreLimit"
|
placeholder="请输入库存预警上限"
|
></el-input>
|
</el-form-item>
|
<el-form-item label="排序" prop="Sort">
|
<el-input v-model="editForm.Sort" placeholder="请输入排序"></el-input>
|
</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="是否需要审核" prop="IsChecked">
|
<el-radio-group v-model="editForm.IsChecked">
|
<el-radio class="radio" :label="true">采购申请时需要审核</el-radio>
|
<el-radio class="radio" :label="false"
|
>采购申请时不需要审核</el-radio
|
>
|
</el-radio-group>
|
</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="120px"
|
:rules="addFormRules"
|
ref="addForm"
|
>
|
<el-form-item label="商品名称" prop="Name">
|
<el-input
|
v-model="addForm.Name"
|
placeholder="请输入商品名称"
|
></el-input>
|
</el-form-item>
|
<!-- <el-form-item label="商品分类" prop="ClassId">
|
<el-select
|
style="width: 100%"
|
v-model="addForm.ClassId"
|
filterable
|
placeholder="请选择商品分类"
|
>
|
<el-option
|
v-for="item in classModules"
|
:key="item.Id"
|
:value="item.Id"
|
:label="item.ClassName"
|
>
|
<span style="float: left">{{ item.ClassName }}</span>
|
<span style="float: right; color: #8492a6; font-size: 13px"
|
>{{ item.LevelId }}级</span
|
>
|
</el-option>
|
</el-select>
|
</el-form-item> -->
|
<el-form-item prop="ParentIdArr" label="商品分类" width sortable>
|
<el-cascader
|
placeholder="请选择商品分类,支持搜索功能"
|
style="width: 100%"
|
v-model="addForm.ParentIdArr"
|
:options="classOptions"
|
filterable
|
clearable
|
change-on-select
|
>
|
</el-cascader>
|
</el-form-item>
|
<el-form-item label="商品单位" prop="Unit">
|
<el-select
|
style="width: 100%"
|
v-model="addForm.Unit"
|
filterable
|
placeholder="请选择商品单位"
|
>
|
<el-option
|
v-for="item in unitModules"
|
:key="item.Id"
|
:value="item.Id"
|
:label="item.Unit"
|
>
|
<span style="float: left">{{ item.Unit }}</span>
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="商品规格" prop="SpecIds">
|
<el-select
|
style="width: 100%"
|
v-model="addForm.SpecIds"
|
filterable
|
placeholder="请选择商品规格"
|
>
|
<el-option
|
v-for="item in specModules"
|
:key="item.Id"
|
:value="item.Id"
|
:label="item.Name"
|
>
|
<span style="float: left">{{ item.Name }}</span>
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<!-- <el-form-item label="商品编号" prop="Code">
|
<el-input
|
v-model="addForm.Code"
|
placeholder="请输入商品编号"
|
></el-input>
|
</el-form-item> -->
|
<el-form-item label="商品条码" prop="BarCode">
|
<el-input
|
v-model="addForm.BarCode"
|
placeholder="请输入商品条码"
|
></el-input>
|
</el-form-item>
|
<el-form-item label="零售价" prop="Price">
|
<el-input-number
|
v-model="addForm.Price"
|
:precision="4"
|
:min="0"
|
placeholder="请输入零售价"
|
></el-input-number>
|
</el-form-item>
|
<el-form-item label="采购价" prop="PurchasePrice">
|
<el-input-number
|
v-model="addForm.PurchasePrice"
|
:precision="4"
|
:min="0"
|
placeholder="请输入采购价"
|
></el-input-number>
|
</el-form-item>
|
<el-form-item label="异常浮动天数" prop="OddDays">
|
<el-input
|
v-model.number="addForm.OddDays"
|
placeholder="请输入异常浮动天数"
|
></el-input>
|
</el-form-item>
|
<el-form-item label="异常浮动倍数" prop="OddFloatNum">
|
<el-input
|
v-model.number="addForm.OddFloatNum"
|
placeholder="请输入异常浮动倍数"
|
></el-input>
|
</el-form-item>
|
<el-form-item label="库存预警下限" prop="StoreBaseline">
|
<el-input
|
v-model.number="addForm.StoreBaseline"
|
placeholder="请输入库存预警下限"
|
></el-input>
|
</el-form-item>
|
<el-form-item label="库存预警上限" prop="StoreLimit">
|
<el-input
|
v-model.number="addForm.StoreLimit"
|
placeholder="请输入库存预警上限"
|
></el-input>
|
</el-form-item>
|
<el-form-item label="排序" prop="Sort">
|
<el-input
|
v-model.number="addForm.Sort"
|
placeholder="请输入排序"
|
></el-input>
|
</el-form-item>
|
<el-form-item label="状态" prop="IsUse">
|
<el-radio-group v-model="addForm.IsUse">
|
<el-radio class="radio" :label="1">启用</el-radio>
|
<el-radio class="radio" :label="0">禁用</el-radio>
|
</el-radio-group>
|
</el-form-item>
|
<el-form-item label="是否需要审核" prop="IsChecked">
|
<el-radio-group v-model="addForm.IsChecked">
|
<el-radio class="radio" :label="1">采购申请时需要审核</el-radio>
|
<el-radio class="radio" :label="0">采购申请时不需要审核</el-radio>
|
</el-radio-group>
|
</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>
|
|
<!--设置商品界面-->
|
<el-dialog
|
title="设置商品"
|
:visible.sync="setProductFormVisible"
|
v-model="setProductFormVisible"
|
:close-on-click-modal="false"
|
>
|
<el-form
|
:model="setProductForm"
|
label-width="120px"
|
:rules="setProductFormRules"
|
ref="setProductForm"
|
>
|
<el-form-item label="商品名称" prop="Name">
|
<el-input v-model="setProductForm.Name" :disabled="true"></el-input>
|
</el-form-item>
|
<el-form-item label="商品规格" prop="SpecIds">
|
<el-select
|
style="width: 100%"
|
v-model="setProductForm.SpecIds"
|
:disabled="true"
|
>
|
<el-option
|
v-for="item in specModules"
|
:key="item.Id"
|
:value="item.Id"
|
:label="item.Name"
|
>
|
<span style="float: left">{{ item.Name }}</span>
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="所属仓库" prop="WareHouseId">
|
<el-select
|
style="width: 100%"
|
v-model="setProductForm.WareHouseName"
|
filterable
|
placeholder="请选择所属仓库"
|
clearable
|
@change="handleChangeQuantity($event, setProductForm.Id)"
|
>
|
<el-option
|
v-for="item in wareHouseModules"
|
:key="item.Id"
|
:value="item.Id"
|
:label="item.Name"
|
>
|
<span style="float: left">{{ item.Name }}</span>
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="采购价" prop="PurchasePrice">
|
<el-input-number
|
v-model="setProductForm.PurchasePrice"
|
:precision="4"
|
:min="0"
|
placeholder="请输入采购价"
|
></el-input-number>
|
</el-form-item>
|
<el-form-item label="商品库存" prop="Quantity">
|
<el-input
|
v-model.number="setProductForm.Quantity"
|
placeholder="请输入商品库存"
|
></el-input>
|
</el-form-item>
|
<el-form-item label="创建人" prop="AdminName">
|
<el-input
|
v-model.number="setProductForm.AdminName"
|
:disabled="true"
|
></el-input>
|
</el-form-item>
|
</el-form>
|
<div slot="footer" class="dialog-footer">
|
<el-button @click.native="setProductFormVisible = false"
|
>取消</el-button
|
>
|
<el-button
|
type="primary"
|
@click.native="setProductSubmit"
|
:loading="setProductLoading"
|
>提交</el-button
|
>
|
</div>
|
</el-dialog>
|
|
<!--导入界面-->
|
<!-- <el-dialog
|
title="导入"
|
:visible.sync="importFormVisible"
|
v-model="importFormVisible"
|
:close-on-click-modal="false"
|
>
|
<el-upload
|
class="upload-demo"
|
ref="upload"
|
action="/api/WMProductList/ImportProductList"
|
:on-preview="handlePreview"
|
:on-remove="handleRemove"
|
:on-change="handleChange"
|
:file-list="fileList"
|
:auto-upload="false"
|
>
|
<el-button slot="trigger" size="small" type="primary"
|
>选取商品表格</el-button
|
>
|
<el-button
|
style="margin-left: 10px"
|
size="small"
|
type="success"
|
@click="submitUpload"
|
>批量导入表格</el-button
|
>
|
</el-upload>
|
</el-dialog> -->
|
|
<el-dialog
|
title="导入"
|
:visible.sync="importFormVisible"
|
v-model="importFormVisible"
|
:close-on-click-modal="false"
|
>
|
<form id="upFileBox" style="display: inline-block">
|
<input
|
class="upload-demo"
|
id="inputId"
|
type="file"
|
ref="files"
|
style="width: 268px"
|
/>
|
</form>
|
|
<el-button
|
class="el-icon-upload"
|
type="primary"
|
@click="submitForm($event)"
|
v-loading.fullscreen.lock="uploading"
|
element-loading-text="拼命导入中....."
|
element-loading-spinner="el-icon-loading"
|
element-loading-background="rgba(0, 0, 0, 0.8)"
|
>导入表格</el-button
|
>
|
</el-dialog>
|
</section>
|
</template>
|
|
<style>
|
.demo-table-expand {
|
font-size: 0;
|
}
|
.demo-table-expand label {
|
width: 150px;
|
color: #99a9bf;
|
}
|
.demo-table-expand .el-form-item {
|
margin-right: 0;
|
margin-bottom: 0;
|
width: 30%;
|
}
|
</style>
|
|
<script>
|
import util from "../../../../util/date";
|
import {
|
//获取后台数据接口
|
getWMProductListListPage, //商品列表API
|
editWMProductList, //商品编辑API
|
addWMProductList, //商品新增API
|
removeWMProductList, //商品删除API
|
batchRemoveWMProductList, //商品批量删除API
|
getWMProductClassGet, //商品分类下拉列表API
|
getWMProductUnitGet, //商品单位下拉列表API
|
getWMProductSpecGet, //商品规格下拉列表API
|
setProductWMProductList, //设置商品API
|
ExportWMProductList, //商品导出API
|
getWMWareHouseGet, //仓库下拉
|
getWMProductListGet, //商品数据API
|
getWMProductClassTreeLink,
|
uploadProductList, //上传文件
|
} from "../../../api/api";
|
import { getButtonList } from "../../../promissionRouter";
|
import SearchBar from "./SearchBar";
|
export default {
|
components: { SearchBar },
|
data() {
|
return {
|
filters: {
|
name: "",
|
options: "", //分类下拉
|
startdate: "", //开始时间
|
enddate: "", //结束时间
|
warehouseoptions: "", //仓库下拉
|
},
|
WMProductList: [],
|
classModules: [], //商品分类列表
|
unitModules: [], //商品单位列表
|
specModules: [], //商品规格列表
|
wareHouseModules: [], //仓库下拉
|
total: 0,
|
buttonList: [],
|
currentRow: null,
|
page: 1,
|
listLoading: false,
|
sels: [], //列表选中列
|
//编辑
|
editFormVisible: false, //编辑界面是否显示
|
editLoading: false,
|
editFormRules: {
|
Name: [{ required: true, message: "请输入商品名称", trigger: "blur" }],
|
ParentIdArr: [
|
{ required: true, message: "请选择商品分类", trigger: "blur" },
|
],
|
Unit: [{ required: true, message: "请选择商品单位", trigger: "blur" }],
|
SpecIds: [
|
{ required: true, message: "请选择商品规格", trigger: "blur" },
|
],
|
Code: [{ required: true, message: "请输入商品编号", trigger: "blur" }],
|
Price: [{ required: true, message: "请输入零售价", trigger: "blur" }],
|
PurchasePrice: [
|
{ required: true, message: "请输入采购价", trigger: "blur" },
|
],
|
OddDays: [
|
{ required: true, message: "请输入异常浮动天数", trigger: "blur" },
|
],
|
OddFloatNum: [
|
{ required: true, message: "请输入异常浮动倍数", trigger: "blur" },
|
],
|
StoreBaseline: [
|
{ required: true, message: "请输入库存预警下限", trigger: "blur" },
|
],
|
StoreLimit: [
|
{ required: true, message: "请输入库存预警上限", trigger: "blur" },
|
],
|
IsUse: [{ required: true, message: "请选择状态", trigger: "blur" }],
|
IsChecked: [
|
{ required: true, message: "请选择是否需要审核", trigger: "blur" },
|
],
|
},
|
//编辑界面数据
|
editForm: {
|
ParentIdArr: [],
|
},
|
//设置商品
|
setProductLoading: false,
|
setProductFormVisible: false, //设置商品界面是否显示
|
setProductFormRules: {
|
PurchasePrice: [
|
{ required: true, message: "请输入采购价", trigger: "blur" },
|
],
|
Quantity: [
|
{ required: true, message: "请输入商品库存", trigger: "blur" },
|
],
|
WareHouseId: [
|
{ required: true, message: "请选择所属仓库", trigger: "blur" },
|
],
|
},
|
setProductForm: {
|
//设置商品界面数据
|
Id: 0,
|
PurchasePrice: 0,
|
Quantity: 0,
|
},
|
//新增
|
addDialogFormVisible: false,
|
addFormVisible: false, //新增界面是否显示
|
addLoading: false,
|
addFormRules: {
|
Name: [{ required: true, message: "请输入商品名称", trigger: "blur" }],
|
ParentIdArr: [
|
{ required: true, message: "请选择商品分类", trigger: "blur" },
|
],
|
Unit: [{ required: true, message: "请选择商品单位", trigger: "blur" }],
|
SpecIds: [
|
{ required: true, message: "请选择商品规格", trigger: "blur" },
|
],
|
Code: [{ required: true, message: "请输入商品编号", trigger: "blur" }],
|
Price: [{ required: true, message: "请输入零售价", trigger: "blur" }],
|
PurchasePrice: [
|
{ required: true, message: "请输入采购价", trigger: "blur" },
|
],
|
OddDays: [
|
{ required: true, message: "请输入异常浮动天数", trigger: "blur" },
|
],
|
OddFloatNum: [
|
{ required: true, message: "请输入异常浮动倍数", trigger: "blur" },
|
],
|
StoreBaseline: [
|
{ required: true, message: "请输入库存预警下限", trigger: "blur" },
|
],
|
StoreLimit: [
|
{ required: true, message: "请输入库存预警上限", trigger: "blur" },
|
],
|
IsUse: [{ required: true, message: "请选择状态", trigger: "blur" }],
|
IsChecked: [
|
{ required: true, message: "请选择是否需要审核", trigger: "blur" },
|
],
|
},
|
//新增界面数据
|
addForm: {},
|
//导入
|
importFormVisible: false, //导入界面是否显示
|
uploading: false, //导入加载显示
|
fileList: [],
|
classOptions: [],
|
};
|
},
|
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.nameSearch,
|
options: item.optionsSearch, //分类下拉
|
startdate: item.startdateSearch, //开始时间
|
enddate: item.enddateSearch, //结束时间
|
warehouseoptions: item.warehouseoptionsSearch, //仓库下拉
|
};
|
this[item.Func].apply(this, item);
|
},
|
//状态显示转换
|
formatIsUse: function (row, column) {
|
return row.IsUse == 1 ? "启用" : row.IsUse == 0 ? "禁用" : "未知";
|
},
|
|
//是否需要审核显示转换
|
formatIsChecked: function (row, column) {
|
return row.IsChecked == 1
|
? "采购申请时需要审核"
|
: row.IsChecked == 0
|
? "采购申请时不需要审核"
|
: "未知";
|
},
|
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.getWMProductList();
|
},
|
//获取商品列表
|
getWMProductList() {
|
let para = {
|
page: this.page,
|
key: this.filters.name,
|
options: this.filters.options,
|
startdate: this.filters.startdate,
|
enddate: this.filters.enddate,
|
wareHouseId: Number(this.filters.warehouseoptions),
|
};
|
this.listLoading = true;
|
//NProgress.start();
|
getWMProductListListPage(para).then((res) => {
|
this.total = res.data.response.dataCount;
|
this.WMProductList = 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 };
|
// removeWMProductList(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.getWMProductList();
|
// });
|
// })
|
// .catch(() => {});
|
// },
|
//显示编辑界面
|
// handleEdit: function (index, row) {
|
// if (!row) {
|
// row = this.currentRow;
|
// }
|
// if (!row) {
|
// this.$message({
|
// message: "请选择要编辑的一行数据!",
|
// type: "error",
|
// });
|
|
// return;
|
// }
|
// this.editFormVisible = true;
|
|
// let para = { parentId: row.ClassId };
|
// getWMProductClassTreeLink(para).then((res) => {
|
// this.editForm = Object.assign({}, row);
|
// this.editForm.ParentIdArr = res.data.response.ParentIdArr;
|
// this.classOptions = res.data.response.children;
|
// });
|
// },
|
//显示设置商品界面
|
handleSetProduct: function (index, row) {
|
if (!row) {
|
row = this.currentRow;
|
}
|
if (!row) {
|
this.$message({
|
message: "请选择要设置的一行数据!",
|
type: "error",
|
});
|
|
return;
|
}
|
//默认仓库
|
if (row.WareHouseId <= 0 || row.WareHouseId == null) {
|
row.WareHouseId = this.wareHouseModules[0].Id;
|
}
|
this.setProductFormVisible = true;
|
this.setProductForm = Object.assign({}, row);
|
},
|
//显示新增界面
|
handleAdd() {
|
this.classOptions = [];
|
this.addFormVisible = true;
|
this.addForm = {
|
Code: "",
|
BarCode: "",
|
Price: 0,
|
PurchasePrice: 0,
|
OddDays: 0,
|
OddFloatNum: 0,
|
StoreBaseline: 0,
|
StoreLimit: 0,
|
Sort: 0,
|
IsUse: 1,
|
IsChecked: 1,
|
ParentIdArr: [],
|
};
|
let para = { parentId: 0 };
|
getWMProductClassTreeLink(para).then((res) => {
|
this.classOptions = res.data.response.children;
|
});
|
},
|
//编辑
|
// editSubmit: function () {
|
// this.$refs.editForm.validate((valid) => {
|
// if (valid) {
|
// this.$confirm("确认提交吗?", "提示", {}).then(() => {
|
// this.editLoading = true;
|
// //NProgress.start();
|
// let para = Object.assign({}, this.editForm);
|
// para.ClassId = para.ParentIdArr.pop();
|
|
// editWMProductList(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.getWMProductList();
|
// } else {
|
// this.$message({
|
// message: res.data.msg,
|
// type: "error",
|
// });
|
// this.editLoading = false;
|
// }
|
// });
|
// });
|
// }
|
// });
|
// },
|
//新增
|
addSubmit: function () {
|
this.$refs.addForm.validate((valid) => {
|
if (valid) {
|
this.$confirm("确认提交吗?", "提示", {}).then(() => {
|
this.addLoading = true;
|
//NProgress.start();
|
let para = Object.assign({}, this.addForm);
|
para.ClassId = para.ParentIdArr.pop();
|
|
addWMProductList(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.getWMProductList();
|
} else {
|
this.$message({
|
message: res.data.msg,
|
type: "error",
|
});
|
this.addLoading = false;
|
}
|
});
|
});
|
}
|
});
|
},
|
//设置商品
|
setProductSubmit: function () {
|
this.$refs.setProductForm.validate((valid) => {
|
if (valid) {
|
this.$confirm("确认提交吗?", "提示", {}).then(() => {
|
this.setProductLoading = true;
|
//NProgress.start();
|
let para = Object.assign({}, this.setProductForm);
|
setProductWMProductList(para).then((res) => {
|
if (util.isEmt.format(res)) {
|
this.setProductLoading = false;
|
return;
|
}
|
if (res.data.success) {
|
this.setProductLoading = false;
|
//NProgress.done();
|
this.$message({
|
message: res.data.msg,
|
type: "success",
|
});
|
this.$refs["setProductForm"].resetFields();
|
this.setProductFormVisible = false;
|
this.getWMProductList();
|
} else {
|
this.$message({
|
message: res.data.msg,
|
type: "error",
|
});
|
this.setProductLoading = false;
|
}
|
});
|
});
|
}
|
});
|
},
|
//批量删除
|
// batchRemove: function () {
|
// let rows = this.sels;
|
// if (!rows || !rows.length) {
|
// this.$message({
|
// message: "请选择要批量删除的一行数据!",
|
// type: "error",
|
// });
|
// return;
|
// }
|
// var ids = this.sels.map((item) => item.Id).toString();
|
// this.$confirm("确认批量删除选中记录吗?", "提示", {
|
// type: "warning",
|
// })
|
// .then(() => {
|
// this.listLoading = true;
|
// //NProgress.start();
|
|
// let para = { ids: ids };
|
// batchRemoveWMProductList(para).then((res) => {
|
// this.listLoading = false;
|
// //NProgress.done();
|
// if (res.data.success) {
|
// this.$message({
|
// message: "删除成功",
|
// type: "success",
|
// });
|
// } else {
|
// this.$message({
|
// message: res.data.msg,
|
// type: "error",
|
// });
|
// }
|
|
// this.getWMProductList();
|
// });
|
// })
|
// .catch(() => {});
|
// },
|
selsChange: function (sels) {
|
this.sels = sels;
|
},
|
//导出
|
handleExport() {
|
ExportWMProductList()
|
.then((res) => {
|
const blob = new Blob([res.data], {
|
type: "application/x-xls",
|
});
|
const url = window.URL.createObjectURL(blob);
|
const aLink = document.createElement("a");
|
aLink.style.display = "none";
|
aLink.href = url;
|
aLink.setAttribute(
|
"download",
|
"商品" + new Date().getTime() + ".xlsx"
|
);
|
document.body.appendChild(aLink);
|
aLink.click();
|
document.body.removeChild(aLink); // 下载完成移除元素
|
window.URL.revokeObjectURL(url); // 释放掉blob对象
|
})
|
.catch((err) => {
|
console.log(err);
|
});
|
},
|
//显示导入界面
|
// handleImport() {
|
// this.importFormVisible = true;
|
// },
|
//导入表格
|
// submitUpload() {
|
// if (this.fileList.length == 0) {
|
// this.$message({
|
// message: "请先选取要上传的商品表格!",
|
// type: "error",
|
// });
|
// return;
|
// }
|
// this.$refs.upload.submit();
|
// },
|
// //移除表格
|
// handleRemove(file, fileList) {
|
// console.log(file, fileList);
|
// },
|
// //预览表格
|
// handlePreview(file) {
|
// console.log(file);
|
// },
|
// handleChange(file, fileList) {
|
// this.fileList = fileList;
|
// },
|
|
//显示导入界面
|
handleImport() {
|
//上传成功清除文件
|
document.getElementById("upFileBox") &&
|
document.getElementById("upFileBox").reset();
|
this.importFormVisible = true;
|
},
|
submitForm() {
|
let fileVal = this.$refs.files.value;
|
if (fileVal == "" || fileVal == null || !fileVal) {
|
this.$message.error("请选择您要上传的文件");
|
return false;
|
}
|
this.uploading = true;
|
let file = this.$refs.files.files[0];
|
let dataFile = new FormData();
|
dataFile.append("file_upload", file);
|
uploadProductList(dataFile)
|
.then((res) => {
|
this.uploading = false;
|
const data = res.data;
|
if (data.success) {
|
fileVal = ""; // 清空表单
|
this.$message.success("上传成功");
|
this.importFormVisible = false;
|
this.uploading = false;
|
|
return false;
|
} else {
|
this.$message.error(data.msg);
|
this.importFormVisible = false;
|
this.uploading = false;
|
return false;
|
}
|
})
|
.catch((err) => {
|
this.$message.error("服务异常,请重试");
|
this.importFormVisible = false;
|
this.uploading = false;
|
return false;
|
});
|
},
|
//选择仓库联动库存
|
handleChangeQuantity(value, id) {
|
let para = { id: id, wareHouseId: value };
|
getWMProductListGet(para).then((res) => {
|
this.setProductForm.Quantity = res.data.response.quantity;
|
});
|
},
|
},
|
mounted() {
|
this.getWMProductList();
|
|
//商品分类下拉列表
|
getWMProductClassGet().then((res) => {
|
this.classModules = res.data.response.classList;
|
});
|
|
//商品单位下拉列表
|
getWMProductUnitGet().then((res) => {
|
this.unitModules = res.data.response.unitList;
|
});
|
|
//商品规格下拉列表
|
getWMProductSpecGet().then((res) => {
|
this.specModules = res.data.response.specList;
|
});
|
|
//仓库下拉列表
|
getWMWareHouseGet().then((res) => {
|
this.wareHouseModules = res.data.response.wareHouseList;
|
});
|
|
let routers = window.localStorage.router
|
? JSON.parse(window.localStorage.router)
|
: [];
|
this.buttonList = getButtonList(this.$route.path, routers);
|
},
|
};
|
</script>
|