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 @@
>
- {{ text && text.length > 0 ? text[0].valueName : '' }}
+ {{ text && text.length > 0 ? text.map((e) => e.valueName).join(',') : '' }}
{{ $smartEnumPlugin.getDescByValue('GOODS_STATUS_ENUM', text) }}