商品管理
This commit is contained in:
parent
e95562aa37
commit
f12e6e1569
|
|
@ -1,20 +1,20 @@
|
||||||
import request from '@/utils/request'
|
import request from '@/utils/request'
|
||||||
|
|
||||||
// 商品类别
|
// 商品类别
|
||||||
export function systemMaterialTreeApi(data) {
|
export function shopMaterialTreeApi(data) {
|
||||||
return request({
|
return request({
|
||||||
url: '/smart-canteen/menu_material_category/getTree',
|
url: '/smart-canteen/supermarket_material_type/list',
|
||||||
method: 'post',
|
method: 'get',
|
||||||
headers: {
|
headers: {
|
||||||
"merchant-id":"378915229716713472",
|
"merchant-id":"378915229716713472",
|
||||||
},
|
},
|
||||||
data: data
|
params: data
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
// 新增商品类别
|
// 新增商品类别
|
||||||
export function addMaterialTypeApi(data) {
|
export function addMaterialTypeApi(data) {
|
||||||
return request({
|
return request({
|
||||||
url: '/smart-canteen/menu_material_category/add',
|
url: '/smart-canteen/supermarket_material_type',
|
||||||
method: 'post',
|
method: 'post',
|
||||||
headers: {
|
headers: {
|
||||||
"merchant-id":"378915229716713472",
|
"merchant-id":"378915229716713472",
|
||||||
|
|
@ -25,7 +25,7 @@ export function addMaterialTypeApi(data) {
|
||||||
//修改商品类别
|
//修改商品类别
|
||||||
export function updateMaterialTypeApi(data) {
|
export function updateMaterialTypeApi(data) {
|
||||||
return request({
|
return request({
|
||||||
url: '/smart-canteen/menu_material_category/edit',
|
url: '/smart-canteen/supermarket_material_type/edit',
|
||||||
method: 'post',
|
method: 'post',
|
||||||
headers: {
|
headers: {
|
||||||
"merchant-id":"378915229716713472",
|
"merchant-id":"378915229716713472",
|
||||||
|
|
@ -36,12 +36,11 @@ export function updateMaterialTypeApi(data) {
|
||||||
//删除商品类别
|
//删除商品类别
|
||||||
export function removeMaterialTypeApi(data) {
|
export function removeMaterialTypeApi(data) {
|
||||||
return request({
|
return request({
|
||||||
url: '/smart-canteen/menu_material_category/del',
|
url: '/smart-canteen/supermarket_material_type/del/'+data.materialTypeId,
|
||||||
method: 'post',
|
method: 'post',
|
||||||
headers: {
|
headers: {
|
||||||
"merchant-id":"378915229716713472",
|
"merchant-id":"378915229716713472",
|
||||||
},
|
}
|
||||||
data: data
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -49,7 +48,7 @@ export function removeMaterialTypeApi(data) {
|
||||||
// 查询商品列表
|
// 查询商品列表
|
||||||
export function getMaterialListApi(data) {
|
export function getMaterialListApi(data) {
|
||||||
return request({
|
return request({
|
||||||
url: '/smart-canteen/supermarket_product/list',
|
url: '/smart-canteen/supermarket_material/list',
|
||||||
method: 'get',
|
method: 'get',
|
||||||
headers: {
|
headers: {
|
||||||
"merchant-id":"378915229716713472",
|
"merchant-id":"378915229716713472",
|
||||||
|
|
@ -61,7 +60,7 @@ export function getMaterialListApi(data) {
|
||||||
// 新增商品
|
// 新增商品
|
||||||
export function addMaterialApi(data) {
|
export function addMaterialApi(data) {
|
||||||
return request({
|
return request({
|
||||||
url: '/smart-canteen/supermarket_product',
|
url: '/smart-canteen/supermarket_material',
|
||||||
method: 'post',
|
method: 'post',
|
||||||
headers: {
|
headers: {
|
||||||
"merchant-id":"378915229716713472",
|
"merchant-id":"378915229716713472",
|
||||||
|
|
@ -73,7 +72,7 @@ export function addMaterialApi(data) {
|
||||||
// 编辑商品
|
// 编辑商品
|
||||||
export function updateMaterialApi(data) {
|
export function updateMaterialApi(data) {
|
||||||
return request({
|
return request({
|
||||||
url: '/smart-canteen/supermarket_product/edit',
|
url: '/smart-canteen/supermarket_material/edit',
|
||||||
method: 'post',
|
method: 'post',
|
||||||
headers: {
|
headers: {
|
||||||
"merchant-id":"378915229716713472",
|
"merchant-id":"378915229716713472",
|
||||||
|
|
@ -85,7 +84,7 @@ export function updateMaterialApi(data) {
|
||||||
// 删除商品
|
// 删除商品
|
||||||
export function removeMaterialApi(data) {
|
export function removeMaterialApi(data) {
|
||||||
return request({
|
return request({
|
||||||
url: '/smart-canteen/supermarket_product/del/'+data.productId,
|
url: '/smart-canteen/supermarket_material/del/'+data.materialId,
|
||||||
method: 'post',
|
method: 'post',
|
||||||
headers: {
|
headers: {
|
||||||
"merchant-id":"378915229716713472",
|
"merchant-id":"378915229716713472",
|
||||||
|
|
@ -104,22 +103,12 @@ export function batchRemoveMaterialApi(data) {
|
||||||
data: data
|
data: data
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
// 批量修改商品
|
|
||||||
export function batchUpdateMaterialApi(data) {
|
|
||||||
return request({
|
|
||||||
url: '/smart-canteen/api/v1/menumaterial/material/batch/update/category',
|
|
||||||
method: 'post',
|
|
||||||
headers: {
|
|
||||||
"merchant-id":"378915229716713472",
|
|
||||||
},
|
|
||||||
data: data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// 根据区域ID-获取商品单位下拉选
|
// 根据区域ID-获取商品单位下拉选
|
||||||
//{current: 1, size: -1, ifListUse: 1, areaId: '421488254718578688'}
|
//{current: 1, size: -1, ifListUse: 1, areaId: '421488254718578688'}
|
||||||
export function getDrpUnitListApi(data) {
|
export function getDrpUnitListApi(data) {
|
||||||
return request({
|
return request({
|
||||||
url: '/smart-canteen/supermarket_unit/list',
|
url: '/smart-canteen/supply_product_unit/list',
|
||||||
method: 'get',
|
method: 'get',
|
||||||
headers: {
|
headers: {
|
||||||
"merchant-id":"378915229716713472",
|
"merchant-id":"378915229716713472",
|
||||||
|
|
|
||||||
|
|
@ -13,9 +13,19 @@
|
||||||
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
|
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="商品名称" prop="productName">
|
<el-form-item label="商品编号" prop="materialCode">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="form.productName"
|
v-model="form.materialCode"
|
||||||
|
placeholder="请输入商品编号"
|
||||||
|
maxlength="40"
|
||||||
|
show-word-limit
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="商品名称" prop="materialName">
|
||||||
|
<el-input
|
||||||
|
v-model="form.materialName"
|
||||||
placeholder="请输入商品名称"
|
placeholder="请输入商品名称"
|
||||||
maxlength="40"
|
maxlength="40"
|
||||||
show-word-limit
|
show-word-limit
|
||||||
|
|
@ -23,39 +33,17 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="条码" prop="barCode">
|
<el-form-item label="商品类别" prop="materialTypeId">
|
||||||
<el-input
|
<el-cascader v-model="form.materialTypeId"
|
||||||
v-model="form.barCode"
|
:options="treeTypeOptions" :filterable="true" style="width: 100%;" :show-all-levels="false"
|
||||||
placeholder="请输入条码"
|
:props="{
|
||||||
maxlength="20"
|
emitPath: false,// 若设置 false,则只返回该节点的值,只返回最后选择的id
|
||||||
show-word-limit
|
checkStrictly: false,//来设置父子节点取消选中关联,从而达到选择任意一级选项的目的
|
||||||
/>
|
value:'materialTypeId',label:'materialTypeName'
|
||||||
|
}" clearable >
|
||||||
|
</el-cascader>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
|
||||||
|
|
||||||
<el-row>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="零售价" prop="salePrice">
|
|
||||||
<el-input
|
|
||||||
v-model="form.salePrice"
|
|
||||||
placeholder="请输入零售价"
|
|
||||||
maxlength="20"
|
|
||||||
@input="handleNumericInput('salePrice', $event)"
|
|
||||||
@blur="formatNumericValue('salePrice')"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="计重类型" prop="salesMode" >
|
|
||||||
<el-select v-model="form.salesMode" placeholder="请选择计量类型" style="width: 100%" @change="getDrpUnitList">
|
|
||||||
<el-option label="按份" value="1" />
|
|
||||||
<el-option label="称重" value="2" />
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
<el-row>
|
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="所属区域" prop="areaId">
|
<el-form-item label="所属区域" prop="areaId">
|
||||||
<el-cascader v-model="form.areaId"
|
<el-cascader v-model="form.areaId"
|
||||||
|
|
@ -69,7 +57,15 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="商品单位" prop="unitId">
|
<el-form-item label="计重类型" prop="salesMode" >
|
||||||
|
<el-select v-model="form.salesMode" placeholder="请选择计量类型" style="width: 100%" @change="getDrpUnitList">
|
||||||
|
<el-option label="按份" value="1" />
|
||||||
|
<el-option label="称重" value="2" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="计量单位" prop="unitId">
|
||||||
<el-select v-model="form.unitId" placeholder="请选择商品单位" style="width: 100%">
|
<el-select v-model="form.unitId" placeholder="请选择商品单位" style="width: 100%">
|
||||||
<el-option v-for="item in this.unitOptions"
|
<el-option v-for="item in this.unitOptions"
|
||||||
:key="item.unitId"
|
:key="item.unitId"
|
||||||
|
|
@ -79,38 +75,41 @@
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
|
||||||
|
|
||||||
<el-row>
|
|
||||||
|
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="商品类别" prop="materialId">
|
<el-form-item label="商品进价" prop="unitPrice">
|
||||||
<el-cascader v-model="form.materialId"
|
|
||||||
:options="treeTypeOptions" :filterable="true" style="width: 100%;" :show-all-levels="false"
|
|
||||||
:props="{
|
|
||||||
emitPath: false,// 若设置 false,则只返回该节点的值,只返回最后选择的id
|
|
||||||
checkStrictly: false,//来设置父子节点取消选中关联,从而达到选择任意一级选项的目的
|
|
||||||
value:'id',label:'categoryName'
|
|
||||||
}" clearable >
|
|
||||||
</el-cascader>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="商品进价" prop="prefPrice">
|
|
||||||
<el-input
|
<el-input
|
||||||
v-model="form.prefPrice"
|
v-model="form.unitPrice"
|
||||||
placeholder="请输入商品进价"
|
placeholder="请输入商品进价"
|
||||||
@input="handleNumericInput('prefPrice', $event)"
|
@input="handleNumericInput('unitPrice', $event)"
|
||||||
@blur="formatNumericValue('prefPrice')"
|
@blur="formatNumericValue('unitPrice')"
|
||||||
>
|
>
|
||||||
<template slot="append">元</template>
|
<template slot="append">元</template>
|
||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
|
||||||
|
|
||||||
<el-row>
|
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
|
<el-form-item label="零售价" prop="salePrice">
|
||||||
|
<el-input
|
||||||
|
v-model="form.salePrice"
|
||||||
|
placeholder="请输入零售价"
|
||||||
|
maxlength="20"
|
||||||
|
@input="handleNumericInput('salePrice', $event)"
|
||||||
|
@blur="formatNumericValue('salePrice')"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="条码" prop="barCode">
|
||||||
|
<el-input
|
||||||
|
v-model="form.barCode"
|
||||||
|
placeholder="请输入条码"
|
||||||
|
maxlength="20"
|
||||||
|
show-word-limit
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<!-- <el-col :span="12">
|
||||||
<el-form-item label="保质期" prop="qualityNum">
|
<el-form-item label="保质期" prop="qualityNum">
|
||||||
<el-select v-model="form.qualityType" style="width: 80px; margin-left: 10px">
|
<el-select v-model="form.qualityType" style="width: 80px; margin-left: 10px">
|
||||||
<el-option label="按年" value="1" />
|
<el-option label="按年" value="1" />
|
||||||
|
|
@ -128,9 +127,7 @@
|
||||||
<el-select v-model="form.supplyCertificate" placeholder="请选择供应资格证书" style="width: 100%">
|
<el-select v-model="form.supplyCertificate" placeholder="请选择供应资格证书" style="width: 100%">
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col> -->
|
||||||
</el-row>
|
|
||||||
<el-row>
|
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="商品简介" prop="productRemark">
|
<el-form-item label="商品简介" prop="productRemark">
|
||||||
<el-input
|
<el-input
|
||||||
|
|
@ -173,7 +170,7 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { systemAreaTreeApi } from "@/api/base/area";
|
import { systemAreaTreeApi } from "@/api/base/area";
|
||||||
import { systemMaterialTreeApi,getDrpUnitListApi } from "@/api/superStore/shopMaterial";
|
import { shopMaterialTreeApi,getDrpUnitListApi } from "@/api/superStore/shopMaterial";
|
||||||
import { imgUpLoadTwo } from '@/api/system/upload'
|
import { imgUpLoadTwo } from '@/api/system/upload'
|
||||||
export default {
|
export default {
|
||||||
name: "MaterialDialog",
|
name: "MaterialDialog",
|
||||||
|
|
@ -194,14 +191,14 @@ export default {
|
||||||
treeTypeOptions:[],//类型树
|
treeTypeOptions:[],//类型树
|
||||||
unitOptions:[],//单位下拉
|
unitOptions:[],//单位下拉
|
||||||
form: {
|
form: {
|
||||||
productName: '',//商品名称
|
materialName: '',//商品名称
|
||||||
areaId: null,//所属区域
|
areaId: null,//所属区域
|
||||||
materialId: null,//商品类别
|
materialTypeId: null,//商品类别
|
||||||
materialType: 2,
|
materialType: 2,
|
||||||
salesMode: '1',//计量类型
|
salesMode: '1',//计量类型
|
||||||
salePrice: '',//零售价(元)
|
salePrice: '',//零售价(元)
|
||||||
unitId: '',//商品单位
|
unitId: '',//商品单位
|
||||||
prefPrice: '',//商品进价(元)
|
unitPrice: '',//商品进价(元)
|
||||||
barCode: '',//条码
|
barCode: '',//条码
|
||||||
nutritionId:null,//营养信息
|
nutritionId:null,//营养信息
|
||||||
qualityType:"1",//保质期类型
|
qualityType:"1",//保质期类型
|
||||||
|
|
@ -215,10 +212,11 @@ export default {
|
||||||
|
|
||||||
},
|
},
|
||||||
rules: {
|
rules: {
|
||||||
productName: [{ required: true, message: '请输入商品名称', trigger: 'blur' }],
|
materialCode: [{ required: true, message: '请输入商品编号', trigger: 'blur' }],
|
||||||
|
materialName: [{ required: true, message: '请输入商品名称', trigger: 'blur' }],
|
||||||
areaId: [{ required: true, message: '请选择所属区域', trigger: 'change' }],
|
areaId: [{ required: true, message: '请选择所属区域', trigger: 'change' }],
|
||||||
salePrice: [{ required: true, message: '请输入零售价', trigger: 'change' }],
|
salePrice: [{ required: true, message: '请输入零售价', trigger: 'change' }],
|
||||||
materialId: [{ required: true, message: '请选择商品类别', trigger: 'change' }],
|
materialTypeId: [{ required: true, message: '请选择商品类别', trigger: 'change' }],
|
||||||
salesMode: [{ required: true, message: '请选择计量类型', trigger: 'change' }],
|
salesMode: [{ required: true, message: '请选择计量类型', trigger: 'change' }],
|
||||||
unitId: [{ required: true, message: '请选择商品单位', trigger: 'change' }],
|
unitId: [{ required: true, message: '请选择商品单位', trigger: 'change' }],
|
||||||
},
|
},
|
||||||
|
|
@ -258,29 +256,51 @@ export default {
|
||||||
//基础设置-选择区域
|
//基础设置-选择区域
|
||||||
handleAreaChange(val){
|
handleAreaChange(val){
|
||||||
console.log(this.form)
|
console.log(this.form)
|
||||||
this.form.materialId=null
|
|
||||||
this.getTypeTreeData()
|
this.getTypeTreeData()
|
||||||
this.getDrpUnitList()
|
this.getDrpUnitList()
|
||||||
},
|
},
|
||||||
//类型树
|
//类型树
|
||||||
getTypeTreeData() {
|
getTypeTreeData() {
|
||||||
let param = {
|
shopMaterialTreeApi().then((response) => {
|
||||||
categoryType:2,
|
this.treeTypeOptions = this.handleTree(response.rows,'materialTypeId');
|
||||||
// ifAdd: 1,
|
|
||||||
// areaId:this.form.areaId
|
|
||||||
}
|
|
||||||
systemMaterialTreeApi(param).then((response) => {
|
|
||||||
this.treeTypeOptions = response.data;
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
handleTree(data, idKey, parentIdKey = 'parentId', childrenKey = 'children') {
|
||||||
|
// 用于存储节点数据的Map,以idKey为键
|
||||||
|
const nodeMap = new Map();
|
||||||
|
// 用于存储根节点的数组
|
||||||
|
const rootNodes = [];
|
||||||
|
|
||||||
|
// 遍历数据,构建nodeMap并找到根节点
|
||||||
|
data.forEach(node => {
|
||||||
|
// 将节点添加到nodeMap中,并初始化children为空数组
|
||||||
|
if(node.parentId==0){
|
||||||
|
nodeMap.set(node[idKey], { ...node, [childrenKey]: [] });
|
||||||
|
}else{
|
||||||
|
nodeMap.set(node[idKey], { ...node });
|
||||||
|
}
|
||||||
|
// 如果parentId为null或父节点不存在于nodeMap中,则该节点为根节点
|
||||||
|
if (node[parentIdKey] === null || !nodeMap.has(node[parentIdKey])) {
|
||||||
|
// 将根节点添加到rootNodes数组中
|
||||||
|
rootNodes.push(nodeMap.get(node[idKey]));
|
||||||
|
} else {
|
||||||
|
// 否则,将当前节点添加到其父节点的children列表中
|
||||||
|
// 获取父节点
|
||||||
|
const parentNode = nodeMap.get(node[parentIdKey]);
|
||||||
|
// 将当前节点添加到父节点的children列表中
|
||||||
|
parentNode[childrenKey].push(nodeMap.get(node[idKey]));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// 返回根节点数组,它现在包含了完整的树形结构
|
||||||
|
return rootNodes;
|
||||||
|
},
|
||||||
//单位类型拉下选
|
//单位类型拉下选
|
||||||
getDrpUnitList() {
|
getDrpUnitList() {
|
||||||
let param = {
|
let param = {
|
||||||
weighType:this.form.salesMode,
|
"weighType":this.form.salesMode,
|
||||||
// areaId: this.form.areaId||""
|
"pageNum": 1,
|
||||||
// ifListUse: 1,
|
"pageSize": 100
|
||||||
// current: 1,
|
|
||||||
// size: -1
|
|
||||||
}
|
}
|
||||||
this.form.unitId=null
|
this.form.unitId=null
|
||||||
getDrpUnitListApi(param).then((response) => {
|
getDrpUnitListApi(param).then((response) => {
|
||||||
|
|
@ -302,16 +322,16 @@ export default {
|
||||||
this.getTypeTreeData()
|
this.getTypeTreeData()
|
||||||
this.getDrpUnitList()
|
this.getDrpUnitList()
|
||||||
this.$set(this.form,"areaName",row.areaName)
|
this.$set(this.form,"areaName",row.areaName)
|
||||||
this.$set(this.form,"materialId",row.materialId)
|
this.$set(this.form,"materialTypeId",row.materialTypeId)
|
||||||
this.$set(this.form,"categoryName",row.categoryName)
|
this.$set(this.form,"categoryName",row.categoryName)
|
||||||
this.$set(this.form,"materialCode",row.materialCode)
|
this.$set(this.form,"materialCode",row.materialCode)
|
||||||
this.$set(this.form,"materialId",row.materialId)
|
this.$set(this.form,"materialId",row.materialId)
|
||||||
this.$set(this.form,"productName",row.productName)
|
this.$set(this.form,"materialName",row.materialName)
|
||||||
this.$set(this.form,"materialType",row.materialType)
|
this.$set(this.form,"materialType",row.materialType)
|
||||||
this.$set(this.form,"salesMode",row.salesMode+'')
|
this.$set(this.form,"salesMode",row.salesMode+'')
|
||||||
this.$set(this.form,"unitId",row.unitId)
|
this.$set(this.form,"unitId",row.unitId)
|
||||||
this.$set(this.form,"salePrice",Number((row.salePrice/100).toFixed(2)))
|
this.$set(this.form,"salePrice",Number((row.salePrice/100).toFixed(2)))
|
||||||
this.$set(this.form,"prefPrice",Number((row.prefPrice/100).toFixed(2)))
|
this.$set(this.form,"unitPrice",Number((row.unitPrice/100).toFixed(2)))
|
||||||
this.$set(this.form,"barCode",row.barCode)
|
this.$set(this.form,"barCode",row.barCode)
|
||||||
if(row.qualityType){
|
if(row.qualityType){
|
||||||
this.$set(this.form,"qualityType",row.qualityType+"")
|
this.$set(this.form,"qualityType",row.qualityType+"")
|
||||||
|
|
@ -337,10 +357,10 @@ export default {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
this.loading=true
|
this.loading=true
|
||||||
this.form.salePrice = Number(this.form.salePrice)*100;
|
this.form.salePrice = Number(this.form.salePrice)*100;
|
||||||
this.form.prefPrice = Number(this.form.prefPrice)*100;
|
this.form.unitPrice = Number(this.form.unitPrice)*100;
|
||||||
setTimeout(()=>{
|
setTimeout(()=>{
|
||||||
this.$set(this.form,"salePrice",Number((this.form.salePrice/100).toFixed(2)))
|
this.$set(this.form,"salePrice",Number((this.form.salePrice/100).toFixed(2)))
|
||||||
this.$set(this.form,"prefPrice",Number((this.form.prefPrice/100).toFixed(2)))
|
this.$set(this.form,"unitPrice",Number((this.form.unitPrice/100).toFixed(2)))
|
||||||
this.loading=false
|
this.loading=false
|
||||||
},2000)
|
},2000)
|
||||||
this.$emit('submit', this.form);
|
this.$emit('submit', this.form);
|
||||||
|
|
@ -359,14 +379,13 @@ export default {
|
||||||
|
|
||||||
reset() {
|
reset() {
|
||||||
this.form = {
|
this.form = {
|
||||||
productName: '',//商品名称
|
materialName: '',//商品名称
|
||||||
areaId: null,//所属区域
|
areaId: null,//所属区域
|
||||||
materialId: null,//商品类别
|
materialTypeId: null,//商品类别
|
||||||
materialType: 2,
|
|
||||||
salesMode: '1',//计量类型
|
salesMode: '1',//计量类型
|
||||||
unitId: '',//商品单位
|
unitId: '',//商品单位
|
||||||
salePrice: '',//商品售价(元)
|
salePrice: '',//商品售价(元)
|
||||||
prefPrice: '',//商品进价(元)
|
unitPrice: '',//商品进价(元)
|
||||||
barCode: '',//条码
|
barCode: '',//条码
|
||||||
str:[],//营养信息类型
|
str:[],//营养信息类型
|
||||||
nutritionId:null,//营养信息
|
nutritionId:null,//营养信息
|
||||||
|
|
|
||||||
|
|
@ -27,9 +27,10 @@
|
||||||
:expand-on-click-node="false"
|
:expand-on-click-node="false"
|
||||||
:filter-node-method="filterNode"
|
:filter-node-method="filterNode"
|
||||||
ref="typeTree"
|
ref="typeTree"
|
||||||
node-key="id"
|
node-key="materialTypeId"
|
||||||
highlight-current
|
highlight-current
|
||||||
@node-click="handleNodeClick"
|
@node-click="handleNodeClick"
|
||||||
|
@check-change="handleCheckChange"
|
||||||
>
|
>
|
||||||
<span class="custom-tree-node" slot-scope="{ node, data }" @mousemove="onMousemove(data)" @mouseleave="onMouseleave()">
|
<span class="custom-tree-node" slot-scope="{ node, data }" @mousemove="onMousemove(data)" @mouseleave="onMouseleave()">
|
||||||
<span v-if="isMousemoveId === data.id && node.label.length > 10">{{
|
<span v-if="isMousemoveId === data.id && node.label.length > 10">{{
|
||||||
|
|
@ -41,7 +42,7 @@
|
||||||
<el-button
|
<el-button
|
||||||
type="text"
|
type="text"
|
||||||
size="mini"
|
size="mini"
|
||||||
icon="el-icon-plus" v-if="data.level<2"
|
icon="el-icon-plus" v-if="data.level<1"
|
||||||
@click.stop="() => appendTreeNode(data)"
|
@click.stop="() => appendTreeNode(data)"
|
||||||
>
|
>
|
||||||
</el-button>
|
</el-button>
|
||||||
|
|
@ -59,7 +60,7 @@
|
||||||
size="mini"
|
size="mini"
|
||||||
icon="el-icon-delete"
|
icon="el-icon-delete"
|
||||||
style="color: #f56c6c"
|
style="color: #f56c6c"
|
||||||
v-if="data.parentId != '-1'"
|
v-if="data.parentId != '0'"
|
||||||
@click.stop="() => removeTreeNode(data)"
|
@click.stop="() => removeTreeNode(data)"
|
||||||
>
|
>
|
||||||
</el-button>
|
</el-button>
|
||||||
|
|
@ -88,9 +89,18 @@
|
||||||
}" clearable>
|
}" clearable>
|
||||||
</el-cascader>
|
</el-cascader>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="商品名称" prop="productName">
|
<el-form-item label="商品编码" prop="materialCode">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="queryParams.productName"
|
v-model="queryParams.materialCode"
|
||||||
|
placeholder="请输入商品编码"
|
||||||
|
clearable maxlength="30"
|
||||||
|
style="width: 240px"
|
||||||
|
@keyup.enter.native="handleQuery"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="商品名称" prop="materialName">
|
||||||
|
<el-input
|
||||||
|
v-model="queryParams.materialName"
|
||||||
placeholder="请输入商品名称"
|
placeholder="请输入商品名称"
|
||||||
clearable maxlength="30"
|
clearable maxlength="30"
|
||||||
style="width: 240px"
|
style="width: 240px"
|
||||||
|
|
@ -106,15 +116,7 @@
|
||||||
@keyup.enter.native="handleQuery"
|
@keyup.enter.native="handleQuery"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="商品编码" prop="productCode">
|
|
||||||
<el-input
|
|
||||||
v-model="queryParams.productCode"
|
|
||||||
placeholder="请输入商品编码"
|
|
||||||
clearable maxlength="30"
|
|
||||||
style="width: 240px"
|
|
||||||
@keyup.enter.native="handleQuery"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
|
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button
|
<el-button
|
||||||
|
|
@ -148,15 +150,6 @@
|
||||||
@click="handleBatchDel"
|
@click="handleBatchDel"
|
||||||
>批量删除</el-button>
|
>批量删除</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<!-- <el-col :span="1.5">
|
|
||||||
<el-button
|
|
||||||
type="primary"
|
|
||||||
size="mini" plain
|
|
||||||
:disabled="multiple"
|
|
||||||
@click="handleBatchEdit"
|
|
||||||
>批量修改类别
|
|
||||||
</el-button>
|
|
||||||
</el-col> -->
|
|
||||||
<!-- <el-col :span="1.5">
|
<!-- <el-col :span="1.5">
|
||||||
<el-upload
|
<el-upload
|
||||||
ref="upload"
|
ref="upload"
|
||||||
|
|
@ -196,14 +189,15 @@
|
||||||
<span>{{(queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1}}</span>
|
<span>{{(queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1}}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="商品编码" align="center" key="productCode" prop="productCode" :show-overflow-tooltip="true" />
|
<el-table-column label="商品编码" align="center" key="materialCode" prop="materialCode" :show-overflow-tooltip="true" />
|
||||||
<el-table-column label="商品名称" align="center" key="productName" prop="productName" :show-overflow-tooltip="true" />
|
<el-table-column label="商品名称" align="center" key="materialName" prop="materialName" :show-overflow-tooltip="true" />
|
||||||
<el-table-column label="所属区域" align="center" key="areaName" prop="areaName" :show-overflow-tooltip="true" />
|
<el-table-column label="所属区域" align="center" key="areaName" prop="areaName" :show-overflow-tooltip="true" />
|
||||||
<el-table-column label="商品类别" align="center" key="categoryName" prop="categoryName" :show-overflow-tooltip="true" />
|
<el-table-column label="商品类别" align="center" key="materialTypeName" prop="materialTypeName" :show-overflow-tooltip="true" />
|
||||||
<el-table-column label="单位" align="center" key="unitName" prop="unitName" :show-overflow-tooltip="true" width="100"/>
|
<el-table-column label="单位" align="center" key="unitName" prop="unitName" :show-overflow-tooltip="true" width="100"/>
|
||||||
<el-table-column label="商品进价(元)" align="center" key="prefPrice" prop="prefPrice" :show-overflow-tooltip="true">
|
<el-table-column label="条码" align="center" key="barCode" prop="barCode" :show-overflow-tooltip="true" />
|
||||||
|
<el-table-column label="商品进价(元)" align="center" key="unitPrice" prop="unitPrice" :show-overflow-tooltip="true">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{ (scope.row.prefPrice/100).toFixed(2)||"" }}</span>
|
<span>{{ (scope.row.unitPrice/100).toFixed(2)||"" }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="零售价(元)" align="center" key="salePrice" prop="salePrice" :show-overflow-tooltip="true">
|
<el-table-column label="零售价(元)" align="center" key="salePrice" prop="salePrice" :show-overflow-tooltip="true">
|
||||||
|
|
@ -211,9 +205,6 @@
|
||||||
<span>{{ (scope.row.salePrice/100).toFixed(2)||"" }}</span>
|
<span>{{ (scope.row.salePrice/100).toFixed(2)||"" }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="条码" align="center" key="barCode" prop="barCode" :show-overflow-tooltip="true" />
|
|
||||||
<!-- <el-table-column label="最近进价(元)" align="center" key="recentPrice" prop="recentPrice" :show-overflow-tooltip="true" width="150"/> -->
|
|
||||||
<!-- <el-table-column label="最近入库时间" align="center" key="lastStockTime" prop="lastStockTime" :show-overflow-tooltip="true" width="150"/> -->
|
|
||||||
<el-table-column label="操作" align="center" width="100" fixed="right">
|
<el-table-column label="操作" align="center" width="100" fixed="right">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button
|
<el-button
|
||||||
|
|
@ -248,11 +239,11 @@
|
||||||
<el-dialog
|
<el-dialog
|
||||||
:title="title+'-商品类别'"
|
:title="title+'-商品类别'"
|
||||||
:visible.sync="open"
|
:visible.sync="open"
|
||||||
width="500px"
|
width="600px"
|
||||||
append-to-body
|
append-to-body
|
||||||
:close-on-click-modal="false"
|
:close-on-click-modal="false"
|
||||||
>
|
>
|
||||||
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
|
<el-form ref="form" :model="form" :rules="rules" label-width="140px">
|
||||||
<el-form-item label="所属区域" prop="areaId">
|
<el-form-item label="所属区域" prop="areaId">
|
||||||
<el-cascader v-model="form.areaId" :disabled="isEditType"
|
<el-cascader v-model="form.areaId" :disabled="isEditType"
|
||||||
:options="treeAreaOptions" :filterable="true" style="width: 100%;" :show-all-levels="false"
|
:options="treeAreaOptions" :filterable="true" style="width: 100%;" :show-all-levels="false"
|
||||||
|
|
@ -266,41 +257,15 @@
|
||||||
|
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="商品类别" prop="categoryName">
|
<el-form-item label="商品类别" prop="materialTypeName">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="form.categoryName"
|
v-model="form.materialTypeName"
|
||||||
placeholder="请输入商品类别"
|
placeholder="请输入商品类别"
|
||||||
maxlength="30"
|
maxlength="30"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-row v-if="isEditType">
|
|
||||||
<el-col :span="24">
|
|
||||||
<el-form-item label="原商品类别父节点" prop="superAreaName">
|
|
||||||
<el-input
|
|
||||||
v-model="form.superAreaName"
|
|
||||||
disabled
|
|
||||||
placeholder="原商品类别父节点"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
<el-row v-if="isEditType">
|
|
||||||
<el-col :span="24">
|
|
||||||
<el-form-item label="新商品类别父节点" prop="newParentId">
|
|
||||||
<el-cascader v-model="form.newParentId"
|
|
||||||
:options="treeOptions" :filterable="true" style="width: 100%;" :show-all-levels="false"
|
|
||||||
:props="{
|
|
||||||
emitPath: false,// 若设置 false,则只返回该节点的值,只返回最后选择的id
|
|
||||||
checkStrictly: true,//来设置父子节点取消选中关联,从而达到选择任意一级选项的目的
|
|
||||||
value:'id',label:'categoryName'
|
|
||||||
}" clearable >
|
|
||||||
</el-cascader>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
</el-form>
|
</el-form>
|
||||||
<div slot="footer" class="dialog-footer">
|
<div slot="footer" class="dialog-footer">
|
||||||
<el-button type="primary" @click="handleSubmit">确 定</el-button>
|
<el-button type="primary" @click="handleSubmit">确 定</el-button>
|
||||||
|
|
@ -308,37 +273,6 @@
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
|
||||||
<!-- 批量修改商品类别对话框 -->
|
|
||||||
<el-dialog title="批量修改商品类别" :visible.sync="openEdit"
|
|
||||||
width="500px" append-to-body :close-on-click-modal="false">
|
|
||||||
<el-form ref="editForm" :model="editForm" :rules="editRules" label-width="120px">
|
|
||||||
<el-row>
|
|
||||||
<el-col :span="24">
|
|
||||||
<el-form-item label="商品名称" prop="categoryNames">
|
|
||||||
<el-input v-model="editForm.categoryNames" placeholder="请输入商品名称" :readonly="true" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
<el-row>
|
|
||||||
<el-col :span="24">
|
|
||||||
<el-form-item label="新类别" prop="categroyId">
|
|
||||||
<el-cascader v-model="editForm.categroyId"
|
|
||||||
:options="treeOptions" :filterable="true" style="width: 100%;" :show-all-levels="false"
|
|
||||||
:props="{
|
|
||||||
emitPath: false,// 若设置 false,则只返回该节点的值,只返回最后选择的id
|
|
||||||
checkStrictly: true,//来设置父子节点取消选中关联,从而达到选择任意一级选项的目的
|
|
||||||
value:'id',label:'categoryName'
|
|
||||||
}" clearable >
|
|
||||||
</el-cascader>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
</el-form>
|
|
||||||
<div slot="footer" class="dialog-footer">
|
|
||||||
<el-button type="primary" @click="handleSubmitEdit">确 定</el-button>
|
|
||||||
<el-button @click="openEdit=false">取 消</el-button>
|
|
||||||
</div>
|
|
||||||
</el-dialog>
|
|
||||||
|
|
||||||
<!-- 添加或修改用户配置对话框 -->
|
<!-- 添加或修改用户配置对话框 -->
|
||||||
<material-dialog :visible.sync="dialogVisible" :title="title" :treeOptions="treeOptions" :treeAreaOptions="treeAreaOptions" @submit="handleDialogSubmit" ref="materialDialog" />
|
<material-dialog :visible.sync="dialogVisible" :title="title" :treeOptions="treeOptions" :treeAreaOptions="treeAreaOptions" @submit="handleDialogSubmit" ref="materialDialog" />
|
||||||
|
|
@ -349,8 +283,8 @@
|
||||||
import Treeselect from "@riophae/vue-treeselect";
|
import Treeselect from "@riophae/vue-treeselect";
|
||||||
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
|
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
|
||||||
import { systemAreaTreeApi } from "@/api/base/area";
|
import { systemAreaTreeApi } from "@/api/base/area";
|
||||||
import { systemMaterialTreeApi,addMaterialTypeApi,updateMaterialTypeApi,removeMaterialTypeApi} from "@/api/superStore/shopMaterial";
|
import { shopMaterialTreeApi,addMaterialTypeApi,updateMaterialTypeApi,removeMaterialTypeApi} from "@/api/superStore/shopMaterial";
|
||||||
import { getMaterialListApi,addMaterialApi, updateMaterialApi, removeMaterialApi,batchRemoveMaterialApi,batchUpdateMaterialApi} from "@/api/superStore/shopMaterial";
|
import { getMaterialListApi,addMaterialApi, updateMaterialApi, removeMaterialApi,batchRemoveMaterialApi} from "@/api/superStore/shopMaterial";
|
||||||
import MaterialDialog from './components/MaterialDialog.vue';
|
import MaterialDialog from './components/MaterialDialog.vue';
|
||||||
import { getToken } from '@/utils/auth';
|
import { getToken } from '@/utils/auth';
|
||||||
import { downloadFileByUrl } from '@/utils/download'
|
import { downloadFileByUrl } from '@/utils/download'
|
||||||
|
|
@ -378,7 +312,7 @@ export default {
|
||||||
isMousemoveId: null,
|
isMousemoveId: null,
|
||||||
defaultProps: {
|
defaultProps: {
|
||||||
children: "children",
|
children: "children",
|
||||||
label: "categoryName",
|
label: "materialTypeName",
|
||||||
},
|
},
|
||||||
keyWord:"",//左侧树-关键字查询
|
keyWord:"",//左侧树-关键字查询
|
||||||
isEditType:false,//是否编辑
|
isEditType:false,//是否编辑
|
||||||
|
|
@ -387,11 +321,10 @@ export default {
|
||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
areaId:null,
|
areaId:null,
|
||||||
productName:"",
|
materialName:"",
|
||||||
barCode:"",
|
barCode:"",
|
||||||
productCode:"",
|
materialCode:"",
|
||||||
materialType:2, //类型(1商品2商品)
|
materialTypeIds:[]
|
||||||
categoryIdList:[]
|
|
||||||
},
|
},
|
||||||
// 总条数
|
// 总条数
|
||||||
total: 0,
|
total: 0,
|
||||||
|
|
@ -404,14 +337,13 @@ export default {
|
||||||
title: "",
|
title: "",
|
||||||
// 表单参数
|
// 表单参数
|
||||||
form: {
|
form: {
|
||||||
categoryName: "",
|
materialTypeName: "",
|
||||||
parentId: "",
|
parentId: "",
|
||||||
categoryType: "",
|
areaId:null
|
||||||
superAreaName: "",
|
|
||||||
},
|
},
|
||||||
// 表单校验
|
// 表单校验
|
||||||
rules: {
|
rules: {
|
||||||
categoryName: [
|
materialTypeName: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "类别名称不能为空",
|
message: "类别名称不能为空",
|
||||||
|
|
@ -422,20 +354,6 @@ export default {
|
||||||
parentId: undefined,
|
parentId: undefined,
|
||||||
treeAreaOptions:[],//区域树
|
treeAreaOptions:[],//区域树
|
||||||
batchIds:[],
|
batchIds:[],
|
||||||
openEdit:false,
|
|
||||||
editForm:{
|
|
||||||
categoryNames:"",
|
|
||||||
categroyId:null
|
|
||||||
},
|
|
||||||
editRules: {
|
|
||||||
categroyId: [
|
|
||||||
{
|
|
||||||
required: true,
|
|
||||||
message: "新类别不能为空",
|
|
||||||
trigger: "change",
|
|
||||||
},
|
|
||||||
]
|
|
||||||
},
|
|
||||||
//导入参数
|
//导入参数
|
||||||
upload: {
|
upload: {
|
||||||
// 是否禁用上传
|
// 是否禁用上传
|
||||||
|
|
@ -461,15 +379,14 @@ export default {
|
||||||
// 筛选节点 - 左侧树
|
// 筛选节点 - 左侧树
|
||||||
filterNode(value, data) {
|
filterNode(value, data) {
|
||||||
if (!value) return true;
|
if (!value) return true;
|
||||||
return data.categoryName.indexOf(value) !== -1;
|
return data.materialTypeName.indexOf(value) !== -1;
|
||||||
},
|
},
|
||||||
/** 查询新增页面-上级类型下拉树结构 */
|
/** 查询新增页面-上级类型下拉树结构 */
|
||||||
getTreeData() {
|
getTreeData() {
|
||||||
systemMaterialTreeApi({categoryType:2}).then((response) => {
|
shopMaterialTreeApi().then((response) => {
|
||||||
this.treeOptions = response.data;
|
this.treeOptions = this.handleTree(response.rows,'materialTypeId');
|
||||||
this.addLevel(this.treeOptions)
|
this.addLevel(this.treeOptions)
|
||||||
console.log("this.treeOptions",this.treeOptions)
|
console.log("this.treeOptions",this.treeOptions)
|
||||||
this.queryParams.materialType=this.treeOptions[0].categoryType;
|
|
||||||
if(this.treeOptions && this.treeOptions.length > 0){
|
if(this.treeOptions && this.treeOptions.length > 0){
|
||||||
this.getList();
|
this.getList();
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -477,6 +394,32 @@ export default {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
handleTree(data, idKey, parentIdKey = 'parentId', childrenKey = 'children') {
|
||||||
|
// 用于存储节点数据的Map,以idKey为键
|
||||||
|
const nodeMap = new Map();
|
||||||
|
// 用于存储根节点的数组
|
||||||
|
const rootNodes = [];
|
||||||
|
|
||||||
|
// 遍历数据,构建nodeMap并找到根节点
|
||||||
|
data.forEach(node => {
|
||||||
|
// 将节点添加到nodeMap中,并初始化children为空数组
|
||||||
|
nodeMap.set(node[idKey], { ...node, [childrenKey]: [] });
|
||||||
|
// 如果parentId为null或父节点不存在于nodeMap中,则该节点为根节点
|
||||||
|
if (node[parentIdKey] === null || !nodeMap.has(node[parentIdKey])) {
|
||||||
|
// 将根节点添加到rootNodes数组中
|
||||||
|
rootNodes.push(nodeMap.get(node[idKey]));
|
||||||
|
} else {
|
||||||
|
// 否则,将当前节点添加到其父节点的children列表中
|
||||||
|
// 获取父节点
|
||||||
|
const parentNode = nodeMap.get(node[parentIdKey]);
|
||||||
|
// 将当前节点添加到父节点的children列表中
|
||||||
|
parentNode[childrenKey].push(nodeMap.get(node[idKey]));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// 返回根节点数组,它现在包含了完整的树形结构
|
||||||
|
return rootNodes;
|
||||||
|
},
|
||||||
addLevel(nodes, level = 0) {
|
addLevel(nodes, level = 0) {
|
||||||
nodes.forEach(node => {
|
nodes.forEach(node => {
|
||||||
node.level = level; // 设置当前节点的层级
|
node.level = level; // 设置当前节点的层级
|
||||||
|
|
@ -490,14 +433,16 @@ export default {
|
||||||
console.log(data)
|
console.log(data)
|
||||||
// this.handleQuery();
|
// this.handleQuery();
|
||||||
},
|
},
|
||||||
|
handleCheckChange(data, checked, indeterminate) {
|
||||||
|
this.handleQuery();
|
||||||
|
},
|
||||||
/* 树节点增加 */
|
/* 树节点增加 */
|
||||||
appendTreeNode(data) {
|
appendTreeNode(data) {
|
||||||
console.log(data)
|
console.log(data)
|
||||||
this.isEditType=false;
|
this.isEditType=false;
|
||||||
this.form={}
|
this.form={}
|
||||||
this.resetForm("form");
|
this.resetForm("form");
|
||||||
this.$set(this.form,"parentId",data.id)
|
this.$set(this.form,"parentId",data.materialTypeId)
|
||||||
this.$set(this.form,"categoryType",data.categoryType)
|
|
||||||
this.open = true;
|
this.open = true;
|
||||||
this.title = "新增";
|
this.title = "新增";
|
||||||
},
|
},
|
||||||
|
|
@ -507,12 +452,9 @@ export default {
|
||||||
this.form={}
|
this.form={}
|
||||||
this.resetForm("form");
|
this.resetForm("form");
|
||||||
this.form = {
|
this.form = {
|
||||||
...data,
|
...data
|
||||||
categoryId:data.id,
|
|
||||||
superAreaName: data.parentId === "-1" ? "" : this.getParentCategoryName(data.parentId)
|
|
||||||
};
|
};
|
||||||
console.log(this.form)
|
console.log(this.form)
|
||||||
console.log(this.treeOptions)
|
|
||||||
this.open = true;
|
this.open = true;
|
||||||
this.title = "修改";
|
this.title = "修改";
|
||||||
},
|
},
|
||||||
|
|
@ -520,8 +462,8 @@ export default {
|
||||||
getParentCategoryName(parentId) {
|
getParentCategoryName(parentId) {
|
||||||
const findNode = (nodes) => {
|
const findNode = (nodes) => {
|
||||||
for (let node of nodes) {
|
for (let node of nodes) {
|
||||||
if (node.id === parentId) {
|
if (node.materialTypeId === parentId) {
|
||||||
return node.categoryName;
|
return node.materialTypeName;
|
||||||
}
|
}
|
||||||
if (node.children) {
|
if (node.children) {
|
||||||
const result = findNode(node.children);
|
const result = findNode(node.children);
|
||||||
|
|
@ -538,7 +480,7 @@ export default {
|
||||||
this.$modal
|
this.$modal
|
||||||
.confirm("是否确认删除数据项?")
|
.confirm("是否确认删除数据项?")
|
||||||
.then(function () {
|
.then(function () {
|
||||||
return removeMaterialTypeApi({"categoryId":data.id});
|
return removeMaterialTypeApi({"materialTypeId":data.materialTypeId});
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this.$modal.msgSuccess("删除成功");
|
this.$modal.msgSuccess("删除成功");
|
||||||
|
|
@ -557,7 +499,7 @@ export default {
|
||||||
handleSubmit() {
|
handleSubmit() {
|
||||||
this.$refs.form.validate(valid => {
|
this.$refs.form.validate(valid => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
if (this.form.id != undefined) {
|
if (this.form.materialTypeId != undefined) {
|
||||||
updateMaterialTypeApi(this.form).then(response => {
|
updateMaterialTypeApi(this.form).then(response => {
|
||||||
this.$modal.msgSuccess("修改成功");
|
this.$modal.msgSuccess("修改成功");
|
||||||
this.open = false;
|
this.open = false;
|
||||||
|
|
@ -595,11 +537,10 @@ export default {
|
||||||
"pageSize": this.queryParams.pageSize,
|
"pageSize": this.queryParams.pageSize,
|
||||||
"pageNum": this.queryParams.pageNum,
|
"pageNum": this.queryParams.pageNum,
|
||||||
"areaId": this.queryParams.areaId,
|
"areaId": this.queryParams.areaId,
|
||||||
"productName": this.queryParams.productName,
|
"materialName": this.queryParams.materialName,
|
||||||
"barCode": this.queryParams.barCode,
|
"barCode": this.queryParams.barCode,
|
||||||
"productCode": this.queryParams.productCode,
|
"materialCode": this.queryParams.materialCode,
|
||||||
"materialType": this.queryParams.materialType,//类型(1商品2商品)
|
"materialTypeIds": this.$refs.typeTree.getCheckedKeys(),
|
||||||
"categoryIdList": this.$refs.typeTree.getCheckedKeys(),
|
|
||||||
}
|
}
|
||||||
getMaterialListApi(params).then((response) => {
|
getMaterialListApi(params).then((response) => {
|
||||||
this.tableList = response.rows;
|
this.tableList = response.rows;
|
||||||
|
|
@ -652,7 +593,7 @@ export default {
|
||||||
this.$modal
|
this.$modal
|
||||||
.confirm("是否确认删除数据项?")
|
.confirm("是否确认删除数据项?")
|
||||||
.then(function () {
|
.then(function () {
|
||||||
return removeMaterialApi({"productId":row.productId});
|
return removeMaterialApi({"materialId":row.materialId});
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this.$modal.msgSuccess("删除成功");
|
this.$modal.msgSuccess("删除成功");
|
||||||
|
|
@ -662,42 +603,19 @@ export default {
|
||||||
},
|
},
|
||||||
handleSelectionChange(selection){
|
handleSelectionChange(selection){
|
||||||
this.batchIds = []
|
this.batchIds = []
|
||||||
this.batchIds = selection.map((item) => item.productId)
|
this.batchIds = selection.map((item) => item.materialId)
|
||||||
// this.editForm.categoryNames = "";
|
|
||||||
// this.editForm.categoryNames = selection.map((item) => item.materialName);
|
|
||||||
this.single = selection.length !== 1
|
this.single = selection.length !== 1
|
||||||
this.multiple = !selection.length
|
this.multiple = !selection.length
|
||||||
},
|
},
|
||||||
// 批量删除
|
// 批量删除
|
||||||
handleBatchDel(){
|
handleBatchDel(){
|
||||||
console.log(this.batchIds)
|
console.log(this.batchIds)
|
||||||
batchRemoveMaterialApi({"productId":this.batchIds.join(",")}).then(response => {
|
batchRemoveMaterialApi({"materialIds":this.batchIds.join(",")}).then(response => {
|
||||||
this.$modal.msgSuccess("删除成功");
|
this.$modal.msgSuccess("删除成功");
|
||||||
this.$refs.multipleTable.clearSelection()
|
this.$refs.multipleTable.clearSelection()
|
||||||
this.getList();
|
this.getList();
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
//批量修改
|
|
||||||
handleBatchEdit(){
|
|
||||||
this.editForm.categroyId=null
|
|
||||||
this.openEdit=true;
|
|
||||||
},
|
|
||||||
handleSubmitEdit(){
|
|
||||||
this.$refs["editForm"].validate(valid => {
|
|
||||||
if (valid) {
|
|
||||||
let param = {
|
|
||||||
materialIdList:this.batchIds,
|
|
||||||
categroyId:this.editForm.categroyId
|
|
||||||
}
|
|
||||||
// batchUpdateMaterialApi(param).then(response => {
|
|
||||||
// this.$modal.msgSuccess("修改成功");
|
|
||||||
// this.openEdit=false
|
|
||||||
// this.$refs.multipleTable.clearSelection()
|
|
||||||
// this.getList();
|
|
||||||
// });
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
//批量导入
|
//批量导入
|
||||||
// /api/v1/menumaterial/batch/import/material
|
// /api/v1/menumaterial/batch/import/material
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@
|
||||||
@keyup.enter.native="handleQuery"
|
@keyup.enter.native="handleQuery"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
<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-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||||
|
|
@ -122,7 +123,7 @@
|
||||||
queryParams: {
|
queryParams: {
|
||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
unitName: undefined,
|
unitName: undefined
|
||||||
},
|
},
|
||||||
// 表单参数
|
// 表单参数
|
||||||
form: {
|
form: {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue