diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/domain/form/GoodsQueryForm.java b/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/domain/form/GoodsQueryForm.java index 128939f8..6f61e100 100644 --- a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/domain/form/GoodsQueryForm.java +++ b/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/domain/form/GoodsQueryForm.java @@ -1,9 +1,11 @@ package net.lab1024.sa.admin.module.business.goods.domain.form; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import net.lab1024.sa.admin.module.business.goods.constant.GoodsStatusEnum; import net.lab1024.sa.base.common.domain.PageParam; +import net.lab1024.sa.base.common.json.deserializer.DictValueVoDeserializer; import net.lab1024.sa.base.common.swagger.SchemaEnum; import net.lab1024.sa.base.common.validator.enumeration.CheckEnum; import org.hibernate.validator.constraints.Length; @@ -32,6 +34,7 @@ public class GoodsQueryForm extends PageParam { private Integer goodsStatus; @Schema(description = "产地") + @JsonDeserialize(using = DictValueVoDeserializer.class) private String place; @Schema(description = "上架状态") diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/service/GoodsService.java b/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/service/GoodsService.java index 8b7b2d34..497a168e 100644 --- a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/service/GoodsService.java +++ b/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/service/GoodsService.java @@ -199,7 +199,7 @@ public class GoodsService { GoodsExcelVO.builder() .goodsStatus(SmartEnumUtil.getEnumDescByValue(e.getGoodsStatus(), GoodsStatusEnum.class)) .categoryName(categoryQueryService.queryCategoryName(e.getCategoryId())) - .place(dictCacheService.selectValueNameByValueCode(e.getPlace())) + .place(Arrays.stream(e.getPlace().split(",")).map(code -> dictCacheService.selectValueNameByValueCode(code)).collect(Collectors.joining(","))) .price(e.getPrice()) .goodsName(e.getGoodsName()) .remark(e.getRemark()) diff --git a/smart-admin-api/sa-admin/src/main/resources/mapper/business/goods/GoodsMapper.xml b/smart-admin-api/sa-admin/src/main/resources/mapper/business/goods/GoodsMapper.xml index 7fcadccb..05316d83 100644 --- a/smart-admin-api/sa-admin/src/main/resources/mapper/business/goods/GoodsMapper.xml +++ b/smart-admin-api/sa-admin/src/main/resources/mapper/business/goods/GoodsMapper.xml @@ -18,7 +18,7 @@ INSTR(goods_name,#{query.searchWord}) - AND place = #{query.place} + AND INSTR(place,#{query.place}) AND goods_status = #{query.goodsStatus} diff --git a/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/common/json/deserializer/DictValueVoDeserializer.java b/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/common/json/deserializer/DictValueVoDeserializer.java index 86eba416..7631db6a 100644 --- a/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/common/json/deserializer/DictValueVoDeserializer.java +++ b/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/common/json/deserializer/DictValueVoDeserializer.java @@ -28,19 +28,19 @@ public class DictValueVoDeserializer extends JsonDeserializer { @Override public String deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException { - List list = new ArrayList<>(); + List list = new ArrayList<>(); ObjectCodec objectCodec = jsonParser.getCodec(); JsonNode listOrObjectNode = objectCodec.readTree(jsonParser); String deserialize = ""; try { if (listOrObjectNode.isArray()) { for (JsonNode node : listOrObjectNode) { - list.add(objectCodec.treeToValue(node, DictValueVO.class)); + list.add(node.asText()); } } else { - list.add(objectCodec.treeToValue(listOrObjectNode, DictValueVO.class)); + list.add(listOrObjectNode.asText()); } - deserialize = list.stream().map(DictValueVO::getValueCode).collect(Collectors.joining(",")); + deserialize = String.join(",", list); } catch (Exception e) { log.error(e.getMessage(), e); deserialize = listOrObjectNode.asText(); diff --git a/smart-admin-web/javascript-ant-design-vue3/src/components/support/dict-select/index.vue b/smart-admin-web/javascript-ant-design-vue3/src/components/support/dict-select/index.vue index 004aadcb..72963a80 100644 --- a/smart-admin-web/javascript-ant-design-vue3/src/components/support/dict-select/index.vue +++ b/smart-admin-web/javascript-ant-design-vue3/src/components/support/dict-select/index.vue @@ -64,24 +64,6 @@ dictValueList.value = res.data; } - const values = computed(() => { - if (!props.value) { - return []; - } - if (!Array.isArray(props.value)) { - console.error('valueList is not array!!!'); - return []; - } - let res = []; - if (props.value && props.value.length > 0) { - props.value.forEach((element) => { - res.push(element.valueCode); - }); - return res; - } - return res; - }); - onMounted(queryDict); // -------------------------- 选中 相关、事件 -------------------------- @@ -96,21 +78,16 @@ const emit = defineEmits(['update:value', 'change']); function onChange(value) { - let selected = []; if (!value) { - emit('update:value', selected); - emit('change', selected); - return selected; + emit('update:value', []); + emit('change', []); } - if (Array.isArray(props.value)) { - let valueList = dictValueList.value.filter((e) => value.includes(e.valueCode)); - valueList = valueList.map((e) => e.valueCode); - emit('update:value', valueList); - emit('change', valueList); + if (Array.isArray(value)) { + emit('update:value', value); + emit('change', value); } else { - let findValue = dictValueList.value.find((e) => e.valueCode === value); - emit('update:value', findValue.valueCode); - emit('change', findValue.valueCode); + emit('update:value', [value]); + emit('change', [value]); } } diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/business/erp/goods/components/goods-form-modal.vue b/smart-admin-web/javascript-ant-design-vue3/src/views/business/erp/goods/components/goods-form-modal.vue index f885e42a..c0a72c51 100644 --- a/smart-admin-web/javascript-ant-design-vue3/src/views/business/erp/goods/components/goods-form-modal.vue +++ b/smart-admin-web/javascript-ant-design-vue3/src/views/business/erp/goods/components/goods-form-modal.vue @@ -20,7 +20,7 @@ - + @@ -80,7 +80,7 @@ //商品状态 goodsStatus: GOODS_STATUS_ENUM.APPOINTMENT.value, //产地 - place: undefined, + place: [], //商品价格 price: undefined, //上架状态 @@ -107,9 +107,8 @@ Object.assign(form, rowData); } if (form.place && form.place.length > 0) { - form.place = form.place[0].valueCode; + form.place = form.place.map((e) => e.valueCode); } - console.log(form); visible.value = true; nextTick(() => { formRef.value.clearValidate(); @@ -127,14 +126,10 @@ .then(async () => { SmartLoading.show(); try { - let params = _.cloneDeep(form); - if (params.place && Array.isArray(params.place) && params.place.length > 0) { - params.place = params.place[0].valueCode; - } if (form.goodsId) { - await goodsApi.updateGoods(params); + await goodsApi.updateGoods(form); } else { - await goodsApi.addGoods(params); + await goodsApi.addGoods(form); } message.success(`${form.goodsId ? '修改' : '添加'}成功`); onClose(); diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/business/erp/goods/goods-list.vue b/smart-admin-web/javascript-ant-design-vue3/src/views/business/erp/goods/goods-list.vue index 1110f72d..7fcafd7e 100644 --- a/smart-admin-web/javascript-ant-design-vue3/src/views/business/erp/goods/goods-list.vue +++ b/smart-admin-web/javascript-ant-design-vue3/src/views/business/erp/goods/goods-list.vue @@ -109,7 +109,7 @@ >