1、属性分组功能CRUD基本实现
2、遇到的问题 -> elementUI级联选择框回显格式 [1,2,3] 3、JsonConfig类配置过滤器微调
This commit is contained in:
parent
b5eb19d4ee
commit
b3feae4fa2
|
|
@ -51,8 +51,6 @@ export default {
|
|||
},
|
||||
paths(v){
|
||||
this.$emit("update:catelogPath",v);
|
||||
//还可以使用pubsub-js进行传值
|
||||
// this.PubSub.publish("catPath",v);
|
||||
}
|
||||
},
|
||||
//方法集合
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
<template>
|
||||
<el-dialog
|
||||
width="600px"
|
||||
:title="!dataForm.id ? '新增' : '修改'"
|
||||
:close-on-click-modal="false"
|
||||
:visible.sync="visible"
|
||||
|
|
@ -10,20 +11,39 @@
|
|||
:rules="dataRule"
|
||||
ref="dataForm"
|
||||
@keyup.enter.native="dataFormSubmit()"
|
||||
label-width="120px"
|
||||
label-width="90px"
|
||||
>
|
||||
<el-form-item label="组名" prop="attrGroupName">
|
||||
<el-input v-model="dataForm.attrGroupName" placeholder="组名"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="排序" prop="sort">
|
||||
<el-input v-model="dataForm.sort" placeholder="排序"></el-input>
|
||||
<el-input-number v-model.number="dataForm.sort" :min="1" :max="9999" label="排序"></el-input-number>
|
||||
</el-form-item>
|
||||
<el-form-item label="描述" prop="descript">
|
||||
<el-input v-model="dataForm.descript" placeholder="描述"></el-input>
|
||||
<el-input type="textarea" :rows="2" v-model="dataForm.descript" placeholder="描述"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="组图标" prop="icon">
|
||||
<el-input v-model="dataForm.icon" placeholder="组图标"></el-input>
|
||||
<el-popover
|
||||
placement="bottom-start"
|
||||
width="460"
|
||||
trigger="click"
|
||||
@show="$refs['iconSelect'].reset()"
|
||||
>
|
||||
<IconSelect ref="iconSelect" @selected="selected"/>
|
||||
<el-input slot="reference" :value="dataForm.icon" placeholder="点击选择图标" readonly>
|
||||
<svg-icon
|
||||
v-if="dataForm.icon"
|
||||
slot="prefix"
|
||||
:icon-class="dataForm.icon"
|
||||
class="el-input__icon"
|
||||
style="height: 32px;width: 16px;"
|
||||
/>
|
||||
<i v-else slot="prefix" class="el-icon-search el-input__icon"/>
|
||||
</el-input>
|
||||
</el-popover>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="所属分类" prop="catelogId">
|
||||
<category-cascader :catelogPath.sync="catelogPath"></category-cascader>
|
||||
</el-form-item>
|
||||
|
|
@ -37,32 +57,27 @@
|
|||
|
||||
<script>
|
||||
import CategoryCascader from '../../../components/mall/category-cascader'
|
||||
import {getMenus} from "@/api/mall/product/category";
|
||||
|
||||
import {addAttrGroup, getAttrGroup} from "@/api/mall/product/attr-group";
|
||||
import IconSelect from "@/components/IconSelect";
|
||||
|
||||
export default {
|
||||
name: "attrgroup-add-or-update",
|
||||
|
||||
components: {CategoryCascader},
|
||||
components: {CategoryCascader,IconSelect},
|
||||
|
||||
data() {
|
||||
return {
|
||||
props: {
|
||||
value: "catId",
|
||||
label: "name",
|
||||
children: "children"
|
||||
},
|
||||
visible: false,
|
||||
categorys: [],
|
||||
catelogPath: [],
|
||||
|
||||
dataForm: {
|
||||
attrGroupId: 0,
|
||||
attrGroupName: "",
|
||||
sort: "",
|
||||
descript: "",
|
||||
icon: "",
|
||||
catelogId: 0
|
||||
catelogId: 0,
|
||||
},
|
||||
dataRule: {
|
||||
attrGroupName: [
|
||||
|
|
@ -85,6 +100,10 @@ export default {
|
|||
this.catelogPath = [];
|
||||
},
|
||||
|
||||
// 选择图标
|
||||
selected(name) {
|
||||
this.dataForm.icon = name;
|
||||
},
|
||||
|
||||
init(id) {
|
||||
this.dataForm.attrGroupId = id;
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@
|
|||
<el-input v-model="dataForm.firstLetter" placeholder="检索首字母" style="width: 200px"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="排序" prop="sort">
|
||||
<el-input-number v-model.number="dataForm.sort" :min="1" :max="9999" label="描述文字"></el-input-number>
|
||||
<el-input-number v-model.number="dataForm.sort" :min="1" :max="9999" label="排序"></el-input-number>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@
|
|||
@show="$refs['iconSelect'].reset()"
|
||||
>
|
||||
<IconSelect ref="iconSelect" @selected="selected"/>
|
||||
<el-input slot="reference" v-model="category.icon" placeholder="点击选择图标" readonly>
|
||||
<el-input slot="reference" :value="category.icon" placeholder="点击选择图标" readonly>
|
||||
<svg-icon
|
||||
v-if="category.icon"
|
||||
slot="prefix"
|
||||
|
|
@ -111,7 +111,7 @@ export default {
|
|||
showStatus: 1,
|
||||
sort: 0,
|
||||
productUnit: "",
|
||||
icon: "",
|
||||
icon: null,
|
||||
catId: null
|
||||
},
|
||||
dialogVisible: false,
|
||||
|
|
|
|||
|
|
@ -62,9 +62,6 @@ public class JsonConfig {
|
|||
|
||||
//忽略某些空值
|
||||
PropertyFilter filter = (source, key, value) -> {
|
||||
if (value == null) {
|
||||
return false;
|
||||
}
|
||||
if(value instanceof List && ((List) value).size() == 0){
|
||||
return false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,8 +9,9 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
||||
/**
|
||||
|
|
@ -48,7 +49,9 @@ public class AttrGroupController {
|
|||
AttrGroupEntity attrGroup = attrGroupService.getById(attrGroupId);
|
||||
|
||||
Long[] path=categoryService.finCatelogPath(attrGroup.getCatelogId());
|
||||
attrGroup.setCatelogPath(path);
|
||||
List<String> collect = Arrays.stream(path).map(String::valueOf).collect(Collectors.toList());
|
||||
|
||||
attrGroup.setCatelogPath(collect);
|
||||
|
||||
return R.ok().put("attrGroup", attrGroup);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,10 +6,11 @@ import com.baomidou.mybatisplus.annotation.TableName;
|
|||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 属性分组
|
||||
*
|
||||
*
|
||||
* @author xiejs
|
||||
* @email 1294405880@qq.com
|
||||
* @date 2022-03-15 10:16:53
|
||||
|
|
@ -49,6 +50,6 @@ public class AttrGroupEntity implements Serializable {
|
|||
* 分类id完整路径
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
private Long[] catelogPath;
|
||||
private List<String> catelogPath;
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue