From af5dd1be4481c1882f80650fd79fb6b2ac095f5d Mon Sep 17 00:00:00 2001 From: huliyong <2783385703@qq.com> Date: Tue, 22 Jul 2025 21:15:04 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E7=99=BB=E5=BD=95=E6=B5=81?= =?UTF-8?q?=E7=A8=8B=E7=AD=89=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/AppletApiProductServiceImpl.java | 23 +- .../controller/AppletBannerController.java | 2 +- .../demo/appletBanner/entity/AppletBanner.java | 10 +- .../appletBanner/mapper/AppletBannerMapper.java | 2 +- .../appletBanner/service/IAppletBannerService.java | 2 +- .../service/impl/AppletBannerServiceImpl.java | 2 +- .../demo/appletBanner/uniapp/AppletBannerForm.vue | 4 +- .../demo/appletBanner/uniapp3/AppletBannerData.ts | 4 +- .../demo/appletBanner/uniapp3/AppletBannerForm.vue | 10 +- .../demo/appletBanner/vue3/AppletBanner.data.ts | 10 +- ...l => V20250722_1__menu_insert_AppletBanner.sql} | 14 +- .../controller/AppletConfigController.java | 8 +- .../demo/appletConfig/entity/AppletConfig.java | 5 +- .../appletConfig/mapper/AppletConfigMapper.java | 2 +- .../appletConfig/service/IAppletConfigService.java | 2 +- .../service/impl/AppletConfigServiceImpl.java | 2 +- .../demo/appletConfig/uniapp3/AppletConfigData.ts | 2 +- .../demo/appletConfig/uniapp3/AppletConfigForm.vue | 19 +- .../demo/appletConfig/vue3/AppletConfig.data.ts | 30 +- .../vue3/V20250722_1__menu_insert_AppletConfig.sql | 26 ++ .../demo/appletProduct/entity/AppletProduct.java | 6 + .../controller/AppletProductSpecController.java | 182 ++++++++++ .../entity/AppletProductSpec.java | 76 +++++ .../mapper/AppletProductSpecMapper.java | 17 + .../mapper/xml/AppletProductSpecMapper.xml | 5 + .../service/IAppletProductSpecService.java | 14 + .../service/impl/AppletProductSpecServiceImpl.java | 19 ++ .../uniapp/AppletProductSpecForm.vue | 107 ++++++ .../uniapp/AppletProductSpecList.vue | 44 +++ .../uniapp3/AppletProductSpecData.ts | 29 ++ .../uniapp3/AppletProductSpecForm.vue | 263 +++++++++++++++ .../uniapp3/AppletProductSpecList.vue | 148 ++++++++ .../vue3/AppletProductSpec.api.ts | 64 ++++ .../vue3/AppletProductSpec.data.ts | 89 +++++ .../vue3/AppletProductSpecList.vue | 206 ++++++++++++ .../V20250722_1__menu_insert_AppletProductSpec.sql | 26 ++ .../vue3/components/AppletProductSpecForm.vue | 70 ++++ .../vue3/components/AppletProductSpecModal.vue | 99 ++++++ .../AppletShippingAddressController.java | 182 ++++++++++ .../entity/AppletShippingAddress.java | 84 +++++ .../mapper/AppletShippingAddressMapper.java | 17 + .../mapper/xml/AppletShippingAddressMapper.xml | 5 + .../service/IAppletShippingAddressService.java | 14 + .../impl/AppletShippingAddressServiceImpl.java | 19 ++ .../uniapp/AppletShippingAddressForm.vue | 119 +++++++ .../uniapp/AppletShippingAddressList.vue | 44 +++ .../uniapp3/AppletShippingAddressData.ts | 39 +++ .../uniapp3/AppletShippingAddressForm.vue | 288 ++++++++++++++++ .../uniapp3/AppletShippingAddressList.vue | 148 ++++++++ .../vue3/AppletShippingAddress.api.ts | 64 ++++ .../vue3/AppletShippingAddress.data.ts | 111 ++++++ .../vue3/AppletShippingAddressList.vue | 206 ++++++++++++ ...250722_1__menu_insert_AppletShippingAddress.sql | 26 ++ .../vue3/components/AppletShippingAddressForm.vue | 70 ++++ .../vue3/components/AppletShippingAddressModal.vue | 99 ++++++ .../AppletSubscribeDetectionController.java | 182 ++++++++++ .../entity/AppletSubscribeDetection.java | 117 +++++++ .../mapper/AppletSubscribeDetectionMapper.java | 17 + .../mapper/xml/AppletSubscribeDetectionMapper.xml | 5 + .../service/IAppletSubscribeDetectionService.java | 14 + .../impl/AppletSubscribeDetectionServiceImpl.java | 19 ++ .../uniapp/AppletSubscribeDetectionForm.vue | 156 +++++++++ .../uniapp/AppletSubscribeDetectionList.vue | 44 +++ .../uniapp3/AppletSubscribeDetectionData.ts | 74 ++++ .../uniapp3/AppletSubscribeDetectionForm.vue | 374 +++++++++++++++++++++ .../uniapp3/AppletSubscribeDetectionList.vue | 148 ++++++++ .../vue3/AppletSubscribeDetection.api.ts | 64 ++++ .../vue3/AppletSubscribeDetection.data.ts | 195 +++++++++++ .../vue3/AppletSubscribeDetectionList.vue | 206 ++++++++++++ ...722_1__menu_insert_AppletSubscribeDetection.sql | 26 ++ .../components/AppletSubscribeDetectionForm.vue | 70 ++++ .../components/AppletSubscribeDetectionModal.vue | 99 ++++++ .../src/main/resources/application-dev.yml | 10 +- .../src/views/applet/config/AppletConfig.api.ts | 64 ++++ .../src/views/applet/config/AppletConfig.data.ts | 135 ++++++++ .../src/views/applet/config/AppletConfigList.vue | 268 +++++++++++++++ .../applet/config/components/AppletConfigForm.vue | 70 ++++ .../applet/config/components/AppletConfigModal.vue | 117 +++++++ 78 files changed, 5589 insertions(+), 63 deletions(-) rename jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletBanner/vue3/{V20250721_1__menu_insert_AppletBanner.sql => V20250722_1__menu_insert_AppletBanner.sql} (80%) create mode 100644 jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletConfig/vue3/V20250722_1__menu_insert_AppletConfig.sql create mode 100644 jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/controller/AppletProductSpecController.java create mode 100644 jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/entity/AppletProductSpec.java create mode 100644 jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/mapper/AppletProductSpecMapper.java create mode 100644 jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/mapper/xml/AppletProductSpecMapper.xml create mode 100644 jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/service/IAppletProductSpecService.java create mode 100644 jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/service/impl/AppletProductSpecServiceImpl.java create mode 100644 jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/uniapp/AppletProductSpecForm.vue create mode 100644 jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/uniapp/AppletProductSpecList.vue create mode 100644 jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/uniapp3/AppletProductSpecData.ts create mode 100644 jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/uniapp3/AppletProductSpecForm.vue create mode 100644 jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/uniapp3/AppletProductSpecList.vue create mode 100644 jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/vue3/AppletProductSpec.api.ts create mode 100644 jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/vue3/AppletProductSpec.data.ts create mode 100644 jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/vue3/AppletProductSpecList.vue create mode 100644 jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/vue3/V20250722_1__menu_insert_AppletProductSpec.sql create mode 100644 jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/vue3/components/AppletProductSpecForm.vue create mode 100644 jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/vue3/components/AppletProductSpecModal.vue create mode 100644 jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/controller/AppletShippingAddressController.java create mode 100644 jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/entity/AppletShippingAddress.java create mode 100644 jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/mapper/AppletShippingAddressMapper.java create mode 100644 jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/mapper/xml/AppletShippingAddressMapper.xml create mode 100644 jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/service/IAppletShippingAddressService.java create mode 100644 jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/service/impl/AppletShippingAddressServiceImpl.java create mode 100644 jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/uniapp/AppletShippingAddressForm.vue create mode 100644 jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/uniapp/AppletShippingAddressList.vue create mode 100644 jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/uniapp3/AppletShippingAddressData.ts create mode 100644 jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/uniapp3/AppletShippingAddressForm.vue create mode 100644 jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/uniapp3/AppletShippingAddressList.vue create mode 100644 jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/vue3/AppletShippingAddress.api.ts create mode 100644 jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/vue3/AppletShippingAddress.data.ts create mode 100644 jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/vue3/AppletShippingAddressList.vue create mode 100644 jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/vue3/V20250722_1__menu_insert_AppletShippingAddress.sql create mode 100644 jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/vue3/components/AppletShippingAddressForm.vue create mode 100644 jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/vue3/components/AppletShippingAddressModal.vue create mode 100644 jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/controller/AppletSubscribeDetectionController.java create mode 100644 jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/entity/AppletSubscribeDetection.java create mode 100644 jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/mapper/AppletSubscribeDetectionMapper.java create mode 100644 jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/mapper/xml/AppletSubscribeDetectionMapper.xml create mode 100644 jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/service/IAppletSubscribeDetectionService.java create mode 100644 jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/service/impl/AppletSubscribeDetectionServiceImpl.java create mode 100644 jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/uniapp/AppletSubscribeDetectionForm.vue create mode 100644 jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/uniapp/AppletSubscribeDetectionList.vue create mode 100644 jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/uniapp3/AppletSubscribeDetectionData.ts create mode 100644 jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/uniapp3/AppletSubscribeDetectionForm.vue create mode 100644 jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/uniapp3/AppletSubscribeDetectionList.vue create mode 100644 jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/vue3/AppletSubscribeDetection.api.ts create mode 100644 jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/vue3/AppletSubscribeDetection.data.ts create mode 100644 jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/vue3/AppletSubscribeDetectionList.vue create mode 100644 jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/vue3/V20250722_1__menu_insert_AppletSubscribeDetection.sql create mode 100644 jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/vue3/components/AppletSubscribeDetectionForm.vue create mode 100644 jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/vue3/components/AppletSubscribeDetectionModal.vue create mode 100644 jeecgboot-vue3/src/views/applet/config/AppletConfig.api.ts create mode 100644 jeecgboot-vue3/src/views/applet/config/AppletConfig.data.ts create mode 100644 jeecgboot-vue3/src/views/applet/config/AppletConfigList.vue create mode 100644 jeecgboot-vue3/src/views/applet/config/components/AppletConfigForm.vue create mode 100644 jeecgboot-vue3/src/views/applet/config/components/AppletConfigModal.vue diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/applet/service/impl/AppletApiProductServiceImpl.java b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/applet/service/impl/AppletApiProductServiceImpl.java index db53ee2..89b095b 100644 --- a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/applet/service/impl/AppletApiProductServiceImpl.java +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/applet/service/impl/AppletApiProductServiceImpl.java @@ -9,6 +9,8 @@ import org.jeecg.modules.demo.appletProduct.entity.AppletProduct; import org.jeecg.modules.demo.appletProduct.service.IAppletProductService; import org.jeecg.modules.demo.appletProductCategory.entity.AppletProductCategory; import org.jeecg.modules.demo.appletProductCategory.service.IAppletProductCategoryService; +import org.jeecg.modules.demo.appletProductSpec.entity.AppletProductSpec; +import org.jeecg.modules.demo.appletProductSpec.service.IAppletProductSpecService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -29,15 +31,16 @@ public class AppletApiProductServiceImpl implements AppletApiProductService { @Autowired private IAppletProductCategoryService appletProductCategoryService; + @Autowired + private IAppletProductSpecService appletProductSpecService; + @Override public IPage getProductPage(Page page, String type, String classId, String keyword) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(AppletProduct::getType, type); - if (StringUtils.isNotBlank(classId)) { - queryWrapper.eq(AppletProduct::getClassId, classId); - } - + queryWrapper.eq(StringUtils.isNotBlank(classId), AppletProduct::getClassId, classId); + if (StringUtils.isNotBlank(keyword)) { queryWrapper.and(wrapper -> wrapper .like(AppletProduct::getName, keyword) @@ -54,7 +57,15 @@ public class AppletApiProductServiceImpl implements AppletApiProductService { @Override public AppletProduct getProductById(String id) { - return appletProductService.getById(id); + + AppletProduct byId = appletProductService.getById(id); + + byId.setSpecs(appletProductSpecService + .lambdaQuery() + .eq(AppletProductSpec::getProductId, id) + .list()); + + return byId; } @Override @@ -65,4 +76,4 @@ public class AppletApiProductServiceImpl implements AppletApiProductService { return appletProductCategoryService.list(queryWrapper); } -} \ No newline at end of file +} \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletBanner/controller/AppletBannerController.java b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletBanner/controller/AppletBannerController.java index 7c7b601..3db8b7c 100644 --- a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletBanner/controller/AppletBannerController.java +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletBanner/controller/AppletBannerController.java @@ -41,7 +41,7 @@ import org.apache.shiro.authz.annotation.RequiresPermissions; /** * @Description: banner表 * @Author: jeecg-boot - * @Date: 2025-07-21 + * @Date: 2025-07-22 * @Version: V1.0 */ @Tag(name="banner表") diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletBanner/entity/AppletBanner.java b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletBanner/entity/AppletBanner.java index 760b0bd..9f1f16d 100644 --- a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletBanner/entity/AppletBanner.java +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletBanner/entity/AppletBanner.java @@ -22,7 +22,7 @@ import lombok.experimental.Accessors; /** * @Description: banner表 * @Author: jeecg-boot - * @Date: 2025-07-21 + * @Date: 2025-07-22 * @Version: V1.0 */ @Data @@ -57,10 +57,10 @@ public class AppletBanner implements Serializable { @Excel(name = "图片", width = 15) @Schema(description = "图片") private java.lang.String imageUrl; - /**跳转链接*/ - @Excel(name = "跳转链接", width = 15) - @Schema(description = "跳转链接") - private java.lang.String linkUrl; + /**颜色*/ + @Excel(name = "颜色", width = 15) + @Schema(description = "颜色") + private java.lang.String color; /**排序*/ @Excel(name = "排序", width = 15) @Schema(description = "排序") diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletBanner/mapper/AppletBannerMapper.java b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletBanner/mapper/AppletBannerMapper.java index c32fc41..6e90529 100644 --- a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletBanner/mapper/AppletBannerMapper.java +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletBanner/mapper/AppletBannerMapper.java @@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** * @Description: banner表 * @Author: jeecg-boot - * @Date: 2025-07-21 + * @Date: 2025-07-22 * @Version: V1.0 */ public interface AppletBannerMapper extends BaseMapper { diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletBanner/service/IAppletBannerService.java b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletBanner/service/IAppletBannerService.java index da09e61..ef4fb93 100644 --- a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletBanner/service/IAppletBannerService.java +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletBanner/service/IAppletBannerService.java @@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.extension.service.IService; /** * @Description: banner表 * @Author: jeecg-boot - * @Date: 2025-07-21 + * @Date: 2025-07-22 * @Version: V1.0 */ public interface IAppletBannerService extends IService { diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletBanner/service/impl/AppletBannerServiceImpl.java b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletBanner/service/impl/AppletBannerServiceImpl.java index 4eb552d..d7b3b9c 100644 --- a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletBanner/service/impl/AppletBannerServiceImpl.java +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletBanner/service/impl/AppletBannerServiceImpl.java @@ -10,7 +10,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; /** * @Description: banner表 * @Author: jeecg-boot - * @Date: 2025-07-21 + * @Date: 2025-07-22 * @Version: V1.0 */ @Service diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletBanner/uniapp/AppletBannerForm.vue b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletBanner/uniapp/AppletBannerForm.vue index edc46c7..2352655 100644 --- a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletBanner/uniapp/AppletBannerForm.vue +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletBanner/uniapp/AppletBannerForm.vue @@ -16,8 +16,8 @@ - 跳转链接: - + 颜色: + diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletBanner/uniapp3/AppletBannerData.ts b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletBanner/uniapp3/AppletBannerData.ts index b2becf8..5332f22 100644 --- a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletBanner/uniapp3/AppletBannerData.ts +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletBanner/uniapp3/AppletBannerData.ts @@ -8,9 +8,9 @@ export const columns = [ customRender:render.renderImage, }, { - title: '跳转链接', + title: '颜色', align:"center", - dataIndex: 'linkUrl' + dataIndex: 'color' }, { title: '排序', diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletBanner/uniapp3/AppletBannerForm.vue b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletBanner/uniapp3/AppletBannerForm.vue index 2f3b1cf..1ed1390 100644 --- a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletBanner/uniapp3/AppletBannerForm.vue +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletBanner/uniapp3/AppletBannerForm.vue @@ -28,11 +28,11 @@ navigationBarTitleText: 'banner表', queryWrapper = QueryGenerator.initQueryWrapper(appletConfig, req.getParameterMap()); + // 自定义查询规则 + Map customeRuleMap = new HashMap<>(); + // 自定义多选的查询规则为:LIKE_WITH_OR + customeRuleMap.put("type", QueryRuleEnum.LIKE_WITH_OR); + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(appletConfig, req.getParameterMap(),customeRuleMap); Page page = new Page(pageNo, pageSize); IPage pageList = appletConfigService.page(page, queryWrapper); return Result.OK(pageList); diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletConfig/entity/AppletConfig.java b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletConfig/entity/AppletConfig.java index 52b0b5c..cdb2106 100644 --- a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletConfig/entity/AppletConfig.java +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletConfig/entity/AppletConfig.java @@ -22,7 +22,7 @@ import lombok.experimental.Accessors; /** * @Description: 小程序配置 * @Author: jeecg-boot - * @Date: 2025-07-21 + * @Date: 2025-07-22 * @Version: V1.0 */ @Data @@ -69,7 +69,8 @@ public class AppletConfig implements Serializable { @Schema(description = "内容") private java.lang.String content; /**类型*/ - @Excel(name = "类型", width = 15) + @Excel(name = "类型", width = 15, dicCode = "applett_config_type") + @Dict(dicCode = "applett_config_type") @Schema(description = "类型") private java.lang.String type; } diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletConfig/mapper/AppletConfigMapper.java b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletConfig/mapper/AppletConfigMapper.java index 7846bfc..0b58099 100644 --- a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletConfig/mapper/AppletConfigMapper.java +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletConfig/mapper/AppletConfigMapper.java @@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** * @Description: 小程序配置 * @Author: jeecg-boot - * @Date: 2025-07-21 + * @Date: 2025-07-22 * @Version: V1.0 */ public interface AppletConfigMapper extends BaseMapper { diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletConfig/service/IAppletConfigService.java b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletConfig/service/IAppletConfigService.java index 3e731ef..7174130 100644 --- a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletConfig/service/IAppletConfigService.java +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletConfig/service/IAppletConfigService.java @@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.extension.service.IService; /** * @Description: 小程序配置 * @Author: jeecg-boot - * @Date: 2025-07-21 + * @Date: 2025-07-22 * @Version: V1.0 */ public interface IAppletConfigService extends IService { diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletConfig/service/impl/AppletConfigServiceImpl.java b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletConfig/service/impl/AppletConfigServiceImpl.java index 936b632..b0359d2 100644 --- a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletConfig/service/impl/AppletConfigServiceImpl.java +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletConfig/service/impl/AppletConfigServiceImpl.java @@ -10,7 +10,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; /** * @Description: 小程序配置 * @Author: jeecg-boot - * @Date: 2025-07-21 + * @Date: 2025-07-22 * @Version: V1.0 */ @Service diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletConfig/uniapp3/AppletConfigData.ts b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletConfig/uniapp3/AppletConfigData.ts index 5be3292..d617d14 100644 --- a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletConfig/uniapp3/AppletConfigData.ts +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletConfig/uniapp3/AppletConfigData.ts @@ -19,6 +19,6 @@ export const columns = [ { title: '类型', align:"center", - dataIndex: 'type' + dataIndex: 'type_dictText' }, ]; \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletConfig/uniapp3/AppletConfigForm.vue b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletConfig/uniapp3/AppletConfigForm.vue index 5b5480d..242522e 100644 --- a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletConfig/uniapp3/AppletConfigForm.vue +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletConfig/uniapp3/AppletConfigForm.vue @@ -53,17 +53,14 @@ navigationBarTitleText: '小程序配置', /> - + diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletConfig/vue3/AppletConfig.data.ts b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletConfig/vue3/AppletConfig.data.ts index 0b6edee..4da7022 100644 --- a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletConfig/vue3/AppletConfig.data.ts +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletConfig/vue3/AppletConfig.data.ts @@ -23,11 +23,32 @@ export const columns: BasicColumn[] = [ { title: '类型', align:"center", - dataIndex: 'type' + dataIndex: 'type_dictText' }, ]; //查询数据 export const searchFormSchema: FormSchema[] = [ + { + label: "编码", + field: 'code', + component: 'Input', + //colProps: {span: 6}, + }, + { + label: "描述", + field: 'info', + component: 'Input', + //colProps: {span: 6}, + }, + { + label: "类型", + field: 'type', + component: 'JSelectMultiple', + componentProps:{ + dictCode:"applett_config_type" + }, + //colProps: {span: 6}, + }, ]; //表单数据 export const formSchema: FormSchema[] = [ @@ -49,7 +70,10 @@ export const formSchema: FormSchema[] = [ { label: '类型', field: 'type', - component: 'Input', + component: 'JDictSelectTag', + componentProps:{ + dictCode:"applett_config_type" + }, }, // TODO 主键隐藏字段,目前写死为ID { @@ -65,7 +89,7 @@ export const superQuerySchema = { code: {title: '编码',order: 0,view: 'text', type: 'string',}, info: {title: '描述',order: 1,view: 'text', type: 'string',}, content: {title: '内容',order: 2,view: 'text', type: 'string',}, - type: {title: '类型',order: 3,view: 'text', type: 'string',}, + type: {title: '类型',order: 3,view: 'list', type: 'string',dictCode: 'applett_config_type',}, }; /** diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletConfig/vue3/V20250722_1__menu_insert_AppletConfig.sql b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletConfig/vue3/V20250722_1__menu_insert_AppletConfig.sql new file mode 100644 index 0000000..cb19653 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletConfig/vue3/V20250722_1__menu_insert_AppletConfig.sql @@ -0,0 +1,26 @@ +-- 注意:该页面对应的前台目录为views/appletConfig文件夹下 +-- 如果你想更改到其他目录,请修改sql中component字段对应的值 + + +INSERT INTO sys_permission(id, parent_id, name, url, component, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_route, is_leaf, keep_alive, hidden, hide_tab, description, status, del_flag, rule_flag, create_by, create_time, update_by, update_time, internal_or_external) +VALUES ('2025072204037970240', NULL, '小程序配置', '/appletConfig/appletConfigList', 'appletConfig/AppletConfigList', NULL, NULL, 0, NULL, '1', 0.00, 0, NULL, 1, 0, 0, 0, 0, NULL, '1', 0, 0, 'admin', '2025-07-22 16:03:24', NULL, NULL, 0); + +-- 权限控制sql +-- 新增 +INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) +VALUES ('2025072204037970241', '2025072204037970240', '添加小程序配置', NULL, NULL, 0, NULL, NULL, 2, 'appletConfig:applet_config:add', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-07-22 16:03:24', NULL, NULL, 0, 0, '1', 0); +-- 编辑 +INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) +VALUES ('2025072204037970242', '2025072204037970240', '编辑小程序配置', NULL, NULL, 0, NULL, NULL, 2, 'appletConfig:applet_config:edit', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-07-22 16:03:24', NULL, NULL, 0, 0, '1', 0); +-- 删除 +INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) +VALUES ('2025072204037970243', '2025072204037970240', '删除小程序配置', NULL, NULL, 0, NULL, NULL, 2, 'appletConfig:applet_config:delete', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-07-22 16:03:24', NULL, NULL, 0, 0, '1', 0); +-- 批量删除 +INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) +VALUES ('2025072204037970244', '2025072204037970240', '批量删除小程序配置', NULL, NULL, 0, NULL, NULL, 2, 'appletConfig:applet_config:deleteBatch', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-07-22 16:03:24', NULL, NULL, 0, 0, '1', 0); +-- 导出excel +INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) +VALUES ('2025072204037970245', '2025072204037970240', '导出excel_小程序配置', NULL, NULL, 0, NULL, NULL, 2, 'appletConfig:applet_config:exportXls', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-07-22 16:03:24', NULL, NULL, 0, 0, '1', 0); +-- 导入excel +INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) +VALUES ('2025072204037970246', '2025072204037970240', '导入excel_小程序配置', NULL, NULL, 0, NULL, NULL, 2, 'appletConfig:applet_config:importExcel', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-07-22 16:03:24', NULL, NULL, 0, 0, '1', 0); \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProduct/entity/AppletProduct.java b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProduct/entity/AppletProduct.java index b91df52..f5b78d3 100644 --- a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProduct/entity/AppletProduct.java +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProduct/entity/AppletProduct.java @@ -4,6 +4,8 @@ import java.io.Serializable; import java.io.UnsupportedEncodingException; import java.util.Date; import java.math.BigDecimal; +import java.util.List; + import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -12,6 +14,7 @@ import org.jeecg.common.constant.ProvinceCityArea; import org.jeecg.common.util.SpringContextUtils; import lombok.Data; import com.fasterxml.jackson.annotation.JsonFormat; +import org.jeecg.modules.demo.appletProductSpec.entity.AppletProductSpec; import org.springframework.format.annotation.DateTimeFormat; import org.jeecgframework.poi.excel.annotation.Excel; import org.jeecg.common.aspect.annotation.Dict; @@ -95,4 +98,7 @@ public class AppletProduct implements Serializable { @Excel(name = "产品内容", width = 15) @Schema(description = "产品内容") private java.lang.String content; + + + private List specs; } diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/controller/AppletProductSpecController.java b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/controller/AppletProductSpecController.java new file mode 100644 index 0000000..8777ff3 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/controller/AppletProductSpecController.java @@ -0,0 +1,182 @@ +package org.jeecg.modules.demo.appletProductSpec.controller; + +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.system.query.QueryGenerator; +import org.jeecg.common.system.query.QueryRuleEnum; +import org.jeecg.common.util.oConvertUtils; +import org.jeecg.modules.demo.appletProductSpec.entity.AppletProductSpec; +import org.jeecg.modules.demo.appletProductSpec.service.IAppletProductSpecService; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.extern.slf4j.Slf4j; + +import org.jeecgframework.poi.excel.ExcelImportUtil; +import org.jeecgframework.poi.excel.def.NormalExcelConstants; +import org.jeecgframework.poi.excel.entity.ExportParams; +import org.jeecgframework.poi.excel.entity.ImportParams; +import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; +import org.jeecg.common.system.base.controller.JeecgController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.servlet.ModelAndView; +import com.alibaba.fastjson.JSON; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import org.jeecg.common.aspect.annotation.AutoLog; +import org.apache.shiro.authz.annotation.RequiresPermissions; + /** + * @Description: 产品规格表 + * @Author: jeecg-boot + * @Date: 2025-07-22 + * @Version: V1.0 + */ +@Tag(name="产品规格表") +@RestController +@RequestMapping("/appletProductSpec/appletProductSpec") +@Slf4j +public class AppletProductSpecController extends JeecgController { + @Autowired + private IAppletProductSpecService appletProductSpecService; + + /** + * 分页列表查询 + * + * @param appletProductSpec + * @param pageNo + * @param pageSize + * @param req + * @return + */ + //@AutoLog(value = "产品规格表-分页列表查询") + @Operation(summary="产品规格表-分页列表查询") + @GetMapping(value = "/list") + public Result> queryPageList(AppletProductSpec appletProductSpec, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + + + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(appletProductSpec, req.getParameterMap()); + Page page = new Page(pageNo, pageSize); + IPage pageList = appletProductSpecService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 添加 + * + * @param appletProductSpec + * @return + */ + @AutoLog(value = "产品规格表-添加") + @Operation(summary="产品规格表-添加") + @RequiresPermissions("appletProductSpec:applet_product_spec:add") + @PostMapping(value = "/add") + public Result add(@RequestBody AppletProductSpec appletProductSpec) { + appletProductSpecService.save(appletProductSpec); + + return Result.OK("添加成功!"); + } + + /** + * 编辑 + * + * @param appletProductSpec + * @return + */ + @AutoLog(value = "产品规格表-编辑") + @Operation(summary="产品规格表-编辑") + @RequiresPermissions("appletProductSpec:applet_product_spec:edit") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) + public Result edit(@RequestBody AppletProductSpec appletProductSpec) { + appletProductSpecService.updateById(appletProductSpec); + return Result.OK("编辑成功!"); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @AutoLog(value = "产品规格表-通过id删除") + @Operation(summary="产品规格表-通过id删除") + @RequiresPermissions("appletProductSpec:applet_product_spec:delete") + @DeleteMapping(value = "/delete") + public Result delete(@RequestParam(name="id",required=true) String id) { + appletProductSpecService.removeById(id); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @AutoLog(value = "产品规格表-批量删除") + @Operation(summary="产品规格表-批量删除") + @RequiresPermissions("appletProductSpec:applet_product_spec:deleteBatch") + @DeleteMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { + this.appletProductSpecService.removeByIds(Arrays.asList(ids.split(","))); + return Result.OK("批量删除成功!"); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + //@AutoLog(value = "产品规格表-通过id查询") + @Operation(summary="产品规格表-通过id查询") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name="id",required=true) String id) { + AppletProductSpec appletProductSpec = appletProductSpecService.getById(id); + if(appletProductSpec==null) { + return Result.error("未找到对应数据"); + } + return Result.OK(appletProductSpec); + } + + /** + * 导出excel + * + * @param request + * @param appletProductSpec + */ + @RequiresPermissions("appletProductSpec:applet_product_spec:exportXls") + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, AppletProductSpec appletProductSpec) { + return super.exportXls(request, appletProductSpec, AppletProductSpec.class, "产品规格表"); + } + + /** + * 通过excel导入数据 + * + * @param request + * @param response + * @return + */ + @RequiresPermissions("appletProductSpec:applet_product_spec:importExcel") + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, AppletProductSpec.class); + } + +} diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/entity/AppletProductSpec.java b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/entity/AppletProductSpec.java new file mode 100644 index 0000000..88704f2 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/entity/AppletProductSpec.java @@ -0,0 +1,76 @@ +package org.jeecg.modules.demo.appletProductSpec.entity; + +import java.io.Serializable; +import java.io.UnsupportedEncodingException; +import java.util.Date; +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.TableLogic; +import org.jeecg.common.constant.ProvinceCityArea; +import org.jeecg.common.util.SpringContextUtils; +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.jeecg.common.aspect.annotation.Dict; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + * @Description: 产品规格表 + * @Author: jeecg-boot + * @Date: 2025-07-22 + * @Version: V1.0 + */ +@Data +@TableName("applet_product_spec") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@Schema(description="产品规格表") +public class AppletProductSpec implements Serializable { + private static final long serialVersionUID = 1L; + + /**主键*/ + @TableId(type = IdType.ASSIGN_ID) + @Schema(description = "主键") + private java.lang.String id; + /**创建人*/ + @Schema(description = "创建人") + private java.lang.String createBy; + /**创建日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @Schema(description = "创建日期") + private java.util.Date createTime; + /**更新人*/ + @Schema(description = "更新人") + private java.lang.String updateBy; + /**更新日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @Schema(description = "更新日期") + private java.util.Date updateTime; + /**规格名称*/ + @Excel(name = "规格名称", width = 15) + @Schema(description = "规格名称") + private java.lang.String specName; + /**规格值*/ + @Excel(name = "规格值", width = 15) + @Schema(description = "规格值") + private java.lang.String specValue; + /**排序*/ + @Excel(name = "排序", width = 15) + @Schema(description = "排序") + private java.lang.Integer sortOrder; + /**产品*/ + @Excel(name = "产品", width = 15) + @Schema(description = "产品") + private java.lang.String productId; + /**价格*/ + @Excel(name = "价格", width = 15) + @Schema(description = "价格") + private java.math.BigDecimal price; +} diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/mapper/AppletProductSpecMapper.java b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/mapper/AppletProductSpecMapper.java new file mode 100644 index 0000000..f34698f --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/mapper/AppletProductSpecMapper.java @@ -0,0 +1,17 @@ +package org.jeecg.modules.demo.appletProductSpec.mapper; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; +import org.jeecg.modules.demo.appletProductSpec.entity.AppletProductSpec; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 产品规格表 + * @Author: jeecg-boot + * @Date: 2025-07-22 + * @Version: V1.0 + */ +public interface AppletProductSpecMapper extends BaseMapper { + +} diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/mapper/xml/AppletProductSpecMapper.xml b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/mapper/xml/AppletProductSpecMapper.xml new file mode 100644 index 0000000..019a0ac --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/mapper/xml/AppletProductSpecMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/service/IAppletProductSpecService.java b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/service/IAppletProductSpecService.java new file mode 100644 index 0000000..8e3f21a --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/service/IAppletProductSpecService.java @@ -0,0 +1,14 @@ +package org.jeecg.modules.demo.appletProductSpec.service; + +import org.jeecg.modules.demo.appletProductSpec.entity.AppletProductSpec; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * @Description: 产品规格表 + * @Author: jeecg-boot + * @Date: 2025-07-22 + * @Version: V1.0 + */ +public interface IAppletProductSpecService extends IService { + +} diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/service/impl/AppletProductSpecServiceImpl.java b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/service/impl/AppletProductSpecServiceImpl.java new file mode 100644 index 0000000..c5f7298 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/service/impl/AppletProductSpecServiceImpl.java @@ -0,0 +1,19 @@ +package org.jeecg.modules.demo.appletProductSpec.service.impl; + +import org.jeecg.modules.demo.appletProductSpec.entity.AppletProductSpec; +import org.jeecg.modules.demo.appletProductSpec.mapper.AppletProductSpecMapper; +import org.jeecg.modules.demo.appletProductSpec.service.IAppletProductSpecService; +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +/** + * @Description: 产品规格表 + * @Author: jeecg-boot + * @Date: 2025-07-22 + * @Version: V1.0 + */ +@Service +public class AppletProductSpecServiceImpl extends ServiceImpl implements IAppletProductSpecService { + +} diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/uniapp/AppletProductSpecForm.vue b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/uniapp/AppletProductSpecForm.vue new file mode 100644 index 0000000..21c6e39 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/uniapp/AppletProductSpecForm.vue @@ -0,0 +1,107 @@ + + + diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/uniapp/AppletProductSpecList.vue b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/uniapp/AppletProductSpecList.vue new file mode 100644 index 0000000..69f6984 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/uniapp/AppletProductSpecList.vue @@ -0,0 +1,44 @@ + + + + diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/uniapp3/AppletProductSpecData.ts b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/uniapp3/AppletProductSpecData.ts new file mode 100644 index 0000000..6d733ce --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/uniapp3/AppletProductSpecData.ts @@ -0,0 +1,29 @@ +import { render } from '@/common/renderUtils'; +//列表数据 +export const columns = [ + { + title: '规格名称', + align:"center", + dataIndex: 'specName' + }, + { + title: '规格值', + align:"center", + dataIndex: 'specValue' + }, + { + title: '排序', + align:"center", + dataIndex: 'sortOrder' + }, + { + title: '产品', + align:"center", + dataIndex: 'productId' + }, + { + title: '价格', + align:"center", + dataIndex: 'price' + }, +]; \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/uniapp3/AppletProductSpecForm.vue b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/uniapp3/AppletProductSpecForm.vue new file mode 100644 index 0000000..e433752 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/uniapp3/AppletProductSpecForm.vue @@ -0,0 +1,263 @@ + +{ +layout: 'default', +style: { +navigationStyle: 'custom', +navigationBarTitleText: '产品规格表', +}, +} + + + + + + diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/uniapp3/AppletProductSpecList.vue b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/uniapp3/AppletProductSpecList.vue new file mode 100644 index 0000000..3654775 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/uniapp3/AppletProductSpecList.vue @@ -0,0 +1,148 @@ + +{ +layout: 'default', +style: { +navigationBarTitleText: '产品规格表', +navigationStyle: 'custom', +}, +} + + + + + + diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/vue3/AppletProductSpec.api.ts b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/vue3/AppletProductSpec.api.ts new file mode 100644 index 0000000..18322a2 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/vue3/AppletProductSpec.api.ts @@ -0,0 +1,64 @@ +import {defHttp} from '/@/utils/http/axios'; +import { useMessage } from "/@/hooks/web/useMessage"; + +const { createConfirm } = useMessage(); + +enum Api { + list = '/appletProductSpec/appletProductSpec/list', + save='/appletProductSpec/appletProductSpec/add', + edit='/appletProductSpec/appletProductSpec/edit', + deleteOne = '/appletProductSpec/appletProductSpec/delete', + deleteBatch = '/appletProductSpec/appletProductSpec/deleteBatch', + importExcel = '/appletProductSpec/appletProductSpec/importExcel', + exportXls = '/appletProductSpec/appletProductSpec/exportXls', +} +/** + * 导出api + * @param params + */ +export const getExportUrl = Api.exportXls; +/** + * 导入api + */ +export const getImportUrl = Api.importExcel; +/** + * 列表接口 + * @param params + */ +export const list = (params) => + defHttp.get({url: Api.list, params}); + +/** + * 删除单个 + */ +export const deleteOne = (params,handleSuccess) => { + return defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => { + handleSuccess(); + }); +} +/** + * 批量删除 + * @param params + */ +export const batchDelete = (params, handleSuccess) => { + createConfirm({ + iconType: 'warning', + title: '确认删除', + content: '是否删除选中数据', + okText: '确认', + cancelText: '取消', + onOk: () => { + return defHttp.delete({url: Api.deleteBatch, data: params}, {joinParamsToUrl: true}).then(() => { + handleSuccess(); + }); + } + }); +} +/** + * 保存或者更新 + * @param params + */ +export const saveOrUpdate = (params, isUpdate) => { + let url = isUpdate ? Api.edit : Api.save; + return defHttp.post({url: url, params}); +} diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/vue3/AppletProductSpec.data.ts b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/vue3/AppletProductSpec.data.ts new file mode 100644 index 0000000..8c16644 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/vue3/AppletProductSpec.data.ts @@ -0,0 +1,89 @@ +import {BasicColumn} from '/@/components/Table'; +import {FormSchema} from '/@/components/Table'; +import { rules} from '/@/utils/helper/validator'; +import { render } from '/@/utils/common/renderUtils'; +import { getWeekMonthQuarterYear } from '/@/utils'; +//列表数据 +export const columns: BasicColumn[] = [ + { + title: '规格名称', + align:"center", + dataIndex: 'specName' + }, + { + title: '规格值', + align:"center", + dataIndex: 'specValue' + }, + { + title: '排序', + align:"center", + dataIndex: 'sortOrder' + }, + { + title: '产品', + align:"center", + dataIndex: 'productId' + }, + { + title: '价格', + align:"center", + dataIndex: 'price' + }, +]; +//查询数据 +export const searchFormSchema: FormSchema[] = [ +]; +//表单数据 +export const formSchema: FormSchema[] = [ + { + label: '规格名称', + field: 'specName', + component: 'Input', + }, + { + label: '规格值', + field: 'specValue', + component: 'Input', + }, + { + label: '排序', + field: 'sortOrder', + component: 'InputNumber', + }, + { + label: '产品', + field: 'productId', + component: 'Input', + }, + { + label: '价格', + field: 'price', + component: 'InputNumber', + }, + // TODO 主键隐藏字段,目前写死为ID + { + label: '', + field: 'id', + component: 'Input', + show: false + }, +]; + +// 高级查询数据 +export const superQuerySchema = { + specName: {title: '规格名称',order: 0,view: 'text', type: 'string',}, + specValue: {title: '规格值',order: 1,view: 'text', type: 'string',}, + sortOrder: {title: '排序',order: 2,view: 'number', type: 'number',}, + productId: {title: '产品',order: 3,view: 'text', type: 'string',}, + price: {title: '价格',order: 4,view: 'number', type: 'number',}, +}; + +/** +* 流程表单调用这个方法获取formSchema +* @param param +*/ +export function getBpmFormSchema(_formData): FormSchema[]{ + // 默认和原始表单保持一致 如果流程中配置了权限数据,这里需要单独处理formSchema + return formSchema; +} \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/vue3/AppletProductSpecList.vue b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/vue3/AppletProductSpecList.vue new file mode 100644 index 0000000..6c861a5 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/vue3/AppletProductSpecList.vue @@ -0,0 +1,206 @@ + + + + + \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/vue3/V20250722_1__menu_insert_AppletProductSpec.sql b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/vue3/V20250722_1__menu_insert_AppletProductSpec.sql new file mode 100644 index 0000000..d2ad212 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/vue3/V20250722_1__menu_insert_AppletProductSpec.sql @@ -0,0 +1,26 @@ +-- 注意:该页面对应的前台目录为views/appletProductSpec文件夹下 +-- 如果你想更改到其他目录,请修改sql中component字段对应的值 + + +INSERT INTO sys_permission(id, parent_id, name, url, component, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_route, is_leaf, keep_alive, hidden, hide_tab, description, status, del_flag, rule_flag, create_by, create_time, update_by, update_time, internal_or_external) +VALUES ('202507220255460380', NULL, '产品规格表', '/appletProductSpec/appletProductSpecList', 'appletProductSpec/AppletProductSpecList', NULL, NULL, 0, NULL, '1', 0.00, 0, NULL, 1, 0, 0, 0, 0, NULL, '1', 0, 0, 'admin', '2025-07-22 14:55:38', NULL, NULL, 0); + +-- 权限控制sql +-- 新增 +INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) +VALUES ('202507220255460381', '202507220255460380', '添加产品规格表', NULL, NULL, 0, NULL, NULL, 2, 'appletProductSpec:applet_product_spec:add', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-07-22 14:55:38', NULL, NULL, 0, 0, '1', 0); +-- 编辑 +INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) +VALUES ('202507220255460382', '202507220255460380', '编辑产品规格表', NULL, NULL, 0, NULL, NULL, 2, 'appletProductSpec:applet_product_spec:edit', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-07-22 14:55:38', NULL, NULL, 0, 0, '1', 0); +-- 删除 +INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) +VALUES ('202507220255460383', '202507220255460380', '删除产品规格表', NULL, NULL, 0, NULL, NULL, 2, 'appletProductSpec:applet_product_spec:delete', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-07-22 14:55:38', NULL, NULL, 0, 0, '1', 0); +-- 批量删除 +INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) +VALUES ('202507220255460384', '202507220255460380', '批量删除产品规格表', NULL, NULL, 0, NULL, NULL, 2, 'appletProductSpec:applet_product_spec:deleteBatch', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-07-22 14:55:38', NULL, NULL, 0, 0, '1', 0); +-- 导出excel +INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) +VALUES ('202507220255460385', '202507220255460380', '导出excel_产品规格表', NULL, NULL, 0, NULL, NULL, 2, 'appletProductSpec:applet_product_spec:exportXls', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-07-22 14:55:38', NULL, NULL, 0, 0, '1', 0); +-- 导入excel +INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) +VALUES ('202507220255460386', '202507220255460380', '导入excel_产品规格表', NULL, NULL, 0, NULL, NULL, 2, 'appletProductSpec:applet_product_spec:importExcel', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-07-22 14:55:38', NULL, NULL, 0, 0, '1', 0); \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/vue3/components/AppletProductSpecForm.vue b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/vue3/components/AppletProductSpecForm.vue new file mode 100644 index 0000000..9c4e16d --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/vue3/components/AppletProductSpecForm.vue @@ -0,0 +1,70 @@ + + + \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/vue3/components/AppletProductSpecModal.vue b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/vue3/components/AppletProductSpecModal.vue new file mode 100644 index 0000000..d6d9fa2 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletProductSpec/vue3/components/AppletProductSpecModal.vue @@ -0,0 +1,99 @@ + + + + + \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/controller/AppletShippingAddressController.java b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/controller/AppletShippingAddressController.java new file mode 100644 index 0000000..957b24f --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/controller/AppletShippingAddressController.java @@ -0,0 +1,182 @@ +package org.jeecg.modules.demo.appletShippingAddress.controller; + +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.system.query.QueryGenerator; +import org.jeecg.common.system.query.QueryRuleEnum; +import org.jeecg.common.util.oConvertUtils; +import org.jeecg.modules.demo.appletShippingAddress.entity.AppletShippingAddress; +import org.jeecg.modules.demo.appletShippingAddress.service.IAppletShippingAddressService; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.extern.slf4j.Slf4j; + +import org.jeecgframework.poi.excel.ExcelImportUtil; +import org.jeecgframework.poi.excel.def.NormalExcelConstants; +import org.jeecgframework.poi.excel.entity.ExportParams; +import org.jeecgframework.poi.excel.entity.ImportParams; +import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; +import org.jeecg.common.system.base.controller.JeecgController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.servlet.ModelAndView; +import com.alibaba.fastjson.JSON; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import org.jeecg.common.aspect.annotation.AutoLog; +import org.apache.shiro.authz.annotation.RequiresPermissions; + /** + * @Description: 小程序收货地址 + * @Author: jeecg-boot + * @Date: 2025-07-22 + * @Version: V1.0 + */ +@Tag(name="小程序收货地址") +@RestController +@RequestMapping("/appletShippingAddress/appletShippingAddress") +@Slf4j +public class AppletShippingAddressController extends JeecgController { + @Autowired + private IAppletShippingAddressService appletShippingAddressService; + + /** + * 分页列表查询 + * + * @param appletShippingAddress + * @param pageNo + * @param pageSize + * @param req + * @return + */ + //@AutoLog(value = "小程序收货地址-分页列表查询") + @Operation(summary="小程序收货地址-分页列表查询") + @GetMapping(value = "/list") + public Result> queryPageList(AppletShippingAddress appletShippingAddress, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + + + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(appletShippingAddress, req.getParameterMap()); + Page page = new Page(pageNo, pageSize); + IPage pageList = appletShippingAddressService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 添加 + * + * @param appletShippingAddress + * @return + */ + @AutoLog(value = "小程序收货地址-添加") + @Operation(summary="小程序收货地址-添加") + @RequiresPermissions("appletShippingAddress:applet_shipping_address:add") + @PostMapping(value = "/add") + public Result add(@RequestBody AppletShippingAddress appletShippingAddress) { + appletShippingAddressService.save(appletShippingAddress); + + return Result.OK("添加成功!"); + } + + /** + * 编辑 + * + * @param appletShippingAddress + * @return + */ + @AutoLog(value = "小程序收货地址-编辑") + @Operation(summary="小程序收货地址-编辑") + @RequiresPermissions("appletShippingAddress:applet_shipping_address:edit") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) + public Result edit(@RequestBody AppletShippingAddress appletShippingAddress) { + appletShippingAddressService.updateById(appletShippingAddress); + return Result.OK("编辑成功!"); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @AutoLog(value = "小程序收货地址-通过id删除") + @Operation(summary="小程序收货地址-通过id删除") + @RequiresPermissions("appletShippingAddress:applet_shipping_address:delete") + @DeleteMapping(value = "/delete") + public Result delete(@RequestParam(name="id",required=true) String id) { + appletShippingAddressService.removeById(id); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @AutoLog(value = "小程序收货地址-批量删除") + @Operation(summary="小程序收货地址-批量删除") + @RequiresPermissions("appletShippingAddress:applet_shipping_address:deleteBatch") + @DeleteMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { + this.appletShippingAddressService.removeByIds(Arrays.asList(ids.split(","))); + return Result.OK("批量删除成功!"); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + //@AutoLog(value = "小程序收货地址-通过id查询") + @Operation(summary="小程序收货地址-通过id查询") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name="id",required=true) String id) { + AppletShippingAddress appletShippingAddress = appletShippingAddressService.getById(id); + if(appletShippingAddress==null) { + return Result.error("未找到对应数据"); + } + return Result.OK(appletShippingAddress); + } + + /** + * 导出excel + * + * @param request + * @param appletShippingAddress + */ + @RequiresPermissions("appletShippingAddress:applet_shipping_address:exportXls") + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, AppletShippingAddress appletShippingAddress) { + return super.exportXls(request, appletShippingAddress, AppletShippingAddress.class, "小程序收货地址"); + } + + /** + * 通过excel导入数据 + * + * @param request + * @param response + * @return + */ + @RequiresPermissions("appletShippingAddress:applet_shipping_address:importExcel") + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, AppletShippingAddress.class); + } + +} diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/entity/AppletShippingAddress.java b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/entity/AppletShippingAddress.java new file mode 100644 index 0000000..52d1de4 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/entity/AppletShippingAddress.java @@ -0,0 +1,84 @@ +package org.jeecg.modules.demo.appletShippingAddress.entity; + +import java.io.Serializable; +import java.io.UnsupportedEncodingException; +import java.util.Date; +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.TableLogic; +import org.jeecg.common.constant.ProvinceCityArea; +import org.jeecg.common.util.SpringContextUtils; +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.jeecg.common.aspect.annotation.Dict; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + * @Description: 小程序收货地址 + * @Author: jeecg-boot + * @Date: 2025-07-22 + * @Version: V1.0 + */ +@Data +@TableName("applet_shipping_address") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@Schema(description="小程序收货地址") +public class AppletShippingAddress implements Serializable { + private static final long serialVersionUID = 1L; + + /**主键*/ + @TableId(type = IdType.ASSIGN_ID) + @Schema(description = "主键") + private java.lang.String id; + /**创建人*/ + @Schema(description = "创建人") + private java.lang.String createBy; + /**创建日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @Schema(description = "创建日期") + private java.util.Date createTime; + /**更新人*/ + @Schema(description = "更新人") + private java.lang.String updateBy; + /**更新日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @Schema(description = "更新日期") + private java.util.Date updateTime; + /**收货人姓名*/ + @Excel(name = "收货人姓名", width = 15) + @Schema(description = "收货人姓名") + private java.lang.String name; + /**收货人电话*/ + @Excel(name = "收货人电话", width = 15) + @Schema(description = "收货人电话") + private java.lang.String phone; + /**省份*/ + @Excel(name = "省份", width = 15) + @Schema(description = "省份") + private java.lang.String province; + /**城市*/ + @Excel(name = "城市", width = 15) + @Schema(description = "城市") + private java.lang.String city; + /**区县*/ + @Excel(name = "区县", width = 15) + @Schema(description = "区县") + private java.lang.String district; + /**详细地址*/ + @Excel(name = "详细地址", width = 15) + @Schema(description = "详细地址") + private java.lang.String detail; + /**是否默认*/ + @Excel(name = "是否默认", width = 15) + @Schema(description = "是否默认") + private java.lang.Integer defaultFlag; +} diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/mapper/AppletShippingAddressMapper.java b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/mapper/AppletShippingAddressMapper.java new file mode 100644 index 0000000..823fcd0 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/mapper/AppletShippingAddressMapper.java @@ -0,0 +1,17 @@ +package org.jeecg.modules.demo.appletShippingAddress.mapper; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; +import org.jeecg.modules.demo.appletShippingAddress.entity.AppletShippingAddress; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 小程序收货地址 + * @Author: jeecg-boot + * @Date: 2025-07-22 + * @Version: V1.0 + */ +public interface AppletShippingAddressMapper extends BaseMapper { + +} diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/mapper/xml/AppletShippingAddressMapper.xml b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/mapper/xml/AppletShippingAddressMapper.xml new file mode 100644 index 0000000..5630e39 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/mapper/xml/AppletShippingAddressMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/service/IAppletShippingAddressService.java b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/service/IAppletShippingAddressService.java new file mode 100644 index 0000000..6a1f965 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/service/IAppletShippingAddressService.java @@ -0,0 +1,14 @@ +package org.jeecg.modules.demo.appletShippingAddress.service; + +import org.jeecg.modules.demo.appletShippingAddress.entity.AppletShippingAddress; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * @Description: 小程序收货地址 + * @Author: jeecg-boot + * @Date: 2025-07-22 + * @Version: V1.0 + */ +public interface IAppletShippingAddressService extends IService { + +} diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/service/impl/AppletShippingAddressServiceImpl.java b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/service/impl/AppletShippingAddressServiceImpl.java new file mode 100644 index 0000000..c9b6ef9 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/service/impl/AppletShippingAddressServiceImpl.java @@ -0,0 +1,19 @@ +package org.jeecg.modules.demo.appletShippingAddress.service.impl; + +import org.jeecg.modules.demo.appletShippingAddress.entity.AppletShippingAddress; +import org.jeecg.modules.demo.appletShippingAddress.mapper.AppletShippingAddressMapper; +import org.jeecg.modules.demo.appletShippingAddress.service.IAppletShippingAddressService; +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +/** + * @Description: 小程序收货地址 + * @Author: jeecg-boot + * @Date: 2025-07-22 + * @Version: V1.0 + */ +@Service +public class AppletShippingAddressServiceImpl extends ServiceImpl implements IAppletShippingAddressService { + +} diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/uniapp/AppletShippingAddressForm.vue b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/uniapp/AppletShippingAddressForm.vue new file mode 100644 index 0000000..f469090 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/uniapp/AppletShippingAddressForm.vue @@ -0,0 +1,119 @@ + + + diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/uniapp/AppletShippingAddressList.vue b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/uniapp/AppletShippingAddressList.vue new file mode 100644 index 0000000..b807bc2 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/uniapp/AppletShippingAddressList.vue @@ -0,0 +1,44 @@ + + + + diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/uniapp3/AppletShippingAddressData.ts b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/uniapp3/AppletShippingAddressData.ts new file mode 100644 index 0000000..614aa0f --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/uniapp3/AppletShippingAddressData.ts @@ -0,0 +1,39 @@ +import { render } from '@/common/renderUtils'; +//列表数据 +export const columns = [ + { + title: '收货人姓名', + align:"center", + dataIndex: 'name' + }, + { + title: '收货人电话', + align:"center", + dataIndex: 'phone' + }, + { + title: '省份', + align:"center", + dataIndex: 'province' + }, + { + title: '城市', + align:"center", + dataIndex: 'city' + }, + { + title: '区县', + align:"center", + dataIndex: 'district' + }, + { + title: '详细地址', + align:"center", + dataIndex: 'detail' + }, + { + title: '是否默认', + align:"center", + dataIndex: 'defaultFlag' + }, +]; \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/uniapp3/AppletShippingAddressForm.vue b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/uniapp3/AppletShippingAddressForm.vue new file mode 100644 index 0000000..ff0e03f --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/uniapp3/AppletShippingAddressForm.vue @@ -0,0 +1,288 @@ + +{ +layout: 'default', +style: { +navigationStyle: 'custom', +navigationBarTitleText: '小程序收货地址', +}, +} + + + + + + diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/uniapp3/AppletShippingAddressList.vue b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/uniapp3/AppletShippingAddressList.vue new file mode 100644 index 0000000..af66939 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/uniapp3/AppletShippingAddressList.vue @@ -0,0 +1,148 @@ + +{ +layout: 'default', +style: { +navigationBarTitleText: '小程序收货地址', +navigationStyle: 'custom', +}, +} + + + + + + diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/vue3/AppletShippingAddress.api.ts b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/vue3/AppletShippingAddress.api.ts new file mode 100644 index 0000000..8d2e7eb --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/vue3/AppletShippingAddress.api.ts @@ -0,0 +1,64 @@ +import {defHttp} from '/@/utils/http/axios'; +import { useMessage } from "/@/hooks/web/useMessage"; + +const { createConfirm } = useMessage(); + +enum Api { + list = '/appletShippingAddress/appletShippingAddress/list', + save='/appletShippingAddress/appletShippingAddress/add', + edit='/appletShippingAddress/appletShippingAddress/edit', + deleteOne = '/appletShippingAddress/appletShippingAddress/delete', + deleteBatch = '/appletShippingAddress/appletShippingAddress/deleteBatch', + importExcel = '/appletShippingAddress/appletShippingAddress/importExcel', + exportXls = '/appletShippingAddress/appletShippingAddress/exportXls', +} +/** + * 导出api + * @param params + */ +export const getExportUrl = Api.exportXls; +/** + * 导入api + */ +export const getImportUrl = Api.importExcel; +/** + * 列表接口 + * @param params + */ +export const list = (params) => + defHttp.get({url: Api.list, params}); + +/** + * 删除单个 + */ +export const deleteOne = (params,handleSuccess) => { + return defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => { + handleSuccess(); + }); +} +/** + * 批量删除 + * @param params + */ +export const batchDelete = (params, handleSuccess) => { + createConfirm({ + iconType: 'warning', + title: '确认删除', + content: '是否删除选中数据', + okText: '确认', + cancelText: '取消', + onOk: () => { + return defHttp.delete({url: Api.deleteBatch, data: params}, {joinParamsToUrl: true}).then(() => { + handleSuccess(); + }); + } + }); +} +/** + * 保存或者更新 + * @param params + */ +export const saveOrUpdate = (params, isUpdate) => { + let url = isUpdate ? Api.edit : Api.save; + return defHttp.post({url: url, params}); +} diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/vue3/AppletShippingAddress.data.ts b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/vue3/AppletShippingAddress.data.ts new file mode 100644 index 0000000..eb1329e --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/vue3/AppletShippingAddress.data.ts @@ -0,0 +1,111 @@ +import {BasicColumn} from '/@/components/Table'; +import {FormSchema} from '/@/components/Table'; +import { rules} from '/@/utils/helper/validator'; +import { render } from '/@/utils/common/renderUtils'; +import { getWeekMonthQuarterYear } from '/@/utils'; +//列表数据 +export const columns: BasicColumn[] = [ + { + title: '收货人姓名', + align:"center", + dataIndex: 'name' + }, + { + title: '收货人电话', + align:"center", + dataIndex: 'phone' + }, + { + title: '省份', + align:"center", + dataIndex: 'province' + }, + { + title: '城市', + align:"center", + dataIndex: 'city' + }, + { + title: '区县', + align:"center", + dataIndex: 'district' + }, + { + title: '详细地址', + align:"center", + dataIndex: 'detail' + }, + { + title: '是否默认', + align:"center", + dataIndex: 'defaultFlag' + }, +]; +//查询数据 +export const searchFormSchema: FormSchema[] = [ +]; +//表单数据 +export const formSchema: FormSchema[] = [ + { + label: '收货人姓名', + field: 'name', + component: 'Input', + }, + { + label: '收货人电话', + field: 'phone', + component: 'Input', + }, + { + label: '省份', + field: 'province', + component: 'Input', + }, + { + label: '城市', + field: 'city', + component: 'Input', + }, + { + label: '区县', + field: 'district', + component: 'Input', + }, + { + label: '详细地址', + field: 'detail', + component: 'Input', + }, + { + label: '是否默认', + field: 'defaultFlag', + component: 'InputNumber', + }, + // TODO 主键隐藏字段,目前写死为ID + { + label: '', + field: 'id', + component: 'Input', + show: false + }, +]; + +// 高级查询数据 +export const superQuerySchema = { + name: {title: '收货人姓名',order: 0,view: 'text', type: 'string',}, + phone: {title: '收货人电话',order: 1,view: 'text', type: 'string',}, + province: {title: '省份',order: 2,view: 'text', type: 'string',}, + city: {title: '城市',order: 3,view: 'text', type: 'string',}, + district: {title: '区县',order: 4,view: 'text', type: 'string',}, + detail: {title: '详细地址',order: 5,view: 'text', type: 'string',}, + defaultFlag: {title: '是否默认',order: 6,view: 'number', type: 'number',}, +}; + +/** +* 流程表单调用这个方法获取formSchema +* @param param +*/ +export function getBpmFormSchema(_formData): FormSchema[]{ + // 默认和原始表单保持一致 如果流程中配置了权限数据,这里需要单独处理formSchema + return formSchema; +} \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/vue3/AppletShippingAddressList.vue b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/vue3/AppletShippingAddressList.vue new file mode 100644 index 0000000..98e53d4 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/vue3/AppletShippingAddressList.vue @@ -0,0 +1,206 @@ + + + + + \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/vue3/V20250722_1__menu_insert_AppletShippingAddress.sql b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/vue3/V20250722_1__menu_insert_AppletShippingAddress.sql new file mode 100644 index 0000000..c1199df --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/vue3/V20250722_1__menu_insert_AppletShippingAddress.sql @@ -0,0 +1,26 @@ +-- 注意:该页面对应的前台目录为views/appletShippingAddress文件夹下 +-- 如果你想更改到其他目录,请修改sql中component字段对应的值 + + +INSERT INTO sys_permission(id, parent_id, name, url, component, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_route, is_leaf, keep_alive, hidden, hide_tab, description, status, del_flag, rule_flag, create_by, create_time, update_by, update_time, internal_or_external) +VALUES ('2025072202483670510', NULL, '小程序收货地址', '/appletShippingAddress/appletShippingAddressList', 'appletShippingAddress/AppletShippingAddressList', NULL, NULL, 0, NULL, '1', 0.00, 0, NULL, 1, 0, 0, 0, 0, NULL, '1', 0, 0, 'admin', '2025-07-22 14:48:51', NULL, NULL, 0); + +-- 权限控制sql +-- 新增 +INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) +VALUES ('2025072202483690511', '2025072202483670510', '添加小程序收货地址', NULL, NULL, 0, NULL, NULL, 2, 'appletShippingAddress:applet_shipping_address:add', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-07-22 14:48:51', NULL, NULL, 0, 0, '1', 0); +-- 编辑 +INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) +VALUES ('2025072202483690512', '2025072202483670510', '编辑小程序收货地址', NULL, NULL, 0, NULL, NULL, 2, 'appletShippingAddress:applet_shipping_address:edit', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-07-22 14:48:51', NULL, NULL, 0, 0, '1', 0); +-- 删除 +INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) +VALUES ('2025072202483690513', '2025072202483670510', '删除小程序收货地址', NULL, NULL, 0, NULL, NULL, 2, 'appletShippingAddress:applet_shipping_address:delete', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-07-22 14:48:51', NULL, NULL, 0, 0, '1', 0); +-- 批量删除 +INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) +VALUES ('2025072202483690514', '2025072202483670510', '批量删除小程序收货地址', NULL, NULL, 0, NULL, NULL, 2, 'appletShippingAddress:applet_shipping_address:deleteBatch', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-07-22 14:48:51', NULL, NULL, 0, 0, '1', 0); +-- 导出excel +INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) +VALUES ('2025072202483690515', '2025072202483670510', '导出excel_小程序收货地址', NULL, NULL, 0, NULL, NULL, 2, 'appletShippingAddress:applet_shipping_address:exportXls', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-07-22 14:48:51', NULL, NULL, 0, 0, '1', 0); +-- 导入excel +INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) +VALUES ('2025072202483690516', '2025072202483670510', '导入excel_小程序收货地址', NULL, NULL, 0, NULL, NULL, 2, 'appletShippingAddress:applet_shipping_address:importExcel', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-07-22 14:48:51', NULL, NULL, 0, 0, '1', 0); \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/vue3/components/AppletShippingAddressForm.vue b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/vue3/components/AppletShippingAddressForm.vue new file mode 100644 index 0000000..e3f84a0 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/vue3/components/AppletShippingAddressForm.vue @@ -0,0 +1,70 @@ + + + \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/vue3/components/AppletShippingAddressModal.vue b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/vue3/components/AppletShippingAddressModal.vue new file mode 100644 index 0000000..f9103fe --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletShippingAddress/vue3/components/AppletShippingAddressModal.vue @@ -0,0 +1,99 @@ + + + + + \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/controller/AppletSubscribeDetectionController.java b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/controller/AppletSubscribeDetectionController.java new file mode 100644 index 0000000..77417c3 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/controller/AppletSubscribeDetectionController.java @@ -0,0 +1,182 @@ +package org.jeecg.modules.demo.appletSubscribeDetection.controller; + +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.system.query.QueryGenerator; +import org.jeecg.common.system.query.QueryRuleEnum; +import org.jeecg.common.util.oConvertUtils; +import org.jeecg.modules.demo.appletSubscribeDetection.entity.AppletSubscribeDetection; +import org.jeecg.modules.demo.appletSubscribeDetection.service.IAppletSubscribeDetectionService; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.extern.slf4j.Slf4j; + +import org.jeecgframework.poi.excel.ExcelImportUtil; +import org.jeecgframework.poi.excel.def.NormalExcelConstants; +import org.jeecgframework.poi.excel.entity.ExportParams; +import org.jeecgframework.poi.excel.entity.ImportParams; +import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; +import org.jeecg.common.system.base.controller.JeecgController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.servlet.ModelAndView; +import com.alibaba.fastjson.JSON; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import org.jeecg.common.aspect.annotation.AutoLog; +import org.apache.shiro.authz.annotation.RequiresPermissions; + /** + * @Description: 预约检测 + * @Author: jeecg-boot + * @Date: 2025-07-22 + * @Version: V1.0 + */ +@Tag(name="预约检测") +@RestController +@RequestMapping("/appletSubscribeDetection/appletSubscribeDetection") +@Slf4j +public class AppletSubscribeDetectionController extends JeecgController { + @Autowired + private IAppletSubscribeDetectionService appletSubscribeDetectionService; + + /** + * 分页列表查询 + * + * @param appletSubscribeDetection + * @param pageNo + * @param pageSize + * @param req + * @return + */ + //@AutoLog(value = "预约检测-分页列表查询") + @Operation(summary="预约检测-分页列表查询") + @GetMapping(value = "/list") + public Result> queryPageList(AppletSubscribeDetection appletSubscribeDetection, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + + + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(appletSubscribeDetection, req.getParameterMap()); + Page page = new Page(pageNo, pageSize); + IPage pageList = appletSubscribeDetectionService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 添加 + * + * @param appletSubscribeDetection + * @return + */ + @AutoLog(value = "预约检测-添加") + @Operation(summary="预约检测-添加") + @RequiresPermissions("appletSubscribeDetection:applet_subscribe_detection:add") + @PostMapping(value = "/add") + public Result add(@RequestBody AppletSubscribeDetection appletSubscribeDetection) { + appletSubscribeDetectionService.save(appletSubscribeDetection); + + return Result.OK("添加成功!"); + } + + /** + * 编辑 + * + * @param appletSubscribeDetection + * @return + */ + @AutoLog(value = "预约检测-编辑") + @Operation(summary="预约检测-编辑") + @RequiresPermissions("appletSubscribeDetection:applet_subscribe_detection:edit") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) + public Result edit(@RequestBody AppletSubscribeDetection appletSubscribeDetection) { + appletSubscribeDetectionService.updateById(appletSubscribeDetection); + return Result.OK("编辑成功!"); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @AutoLog(value = "预约检测-通过id删除") + @Operation(summary="预约检测-通过id删除") + @RequiresPermissions("appletSubscribeDetection:applet_subscribe_detection:delete") + @DeleteMapping(value = "/delete") + public Result delete(@RequestParam(name="id",required=true) String id) { + appletSubscribeDetectionService.removeById(id); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @AutoLog(value = "预约检测-批量删除") + @Operation(summary="预约检测-批量删除") + @RequiresPermissions("appletSubscribeDetection:applet_subscribe_detection:deleteBatch") + @DeleteMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { + this.appletSubscribeDetectionService.removeByIds(Arrays.asList(ids.split(","))); + return Result.OK("批量删除成功!"); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + //@AutoLog(value = "预约检测-通过id查询") + @Operation(summary="预约检测-通过id查询") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name="id",required=true) String id) { + AppletSubscribeDetection appletSubscribeDetection = appletSubscribeDetectionService.getById(id); + if(appletSubscribeDetection==null) { + return Result.error("未找到对应数据"); + } + return Result.OK(appletSubscribeDetection); + } + + /** + * 导出excel + * + * @param request + * @param appletSubscribeDetection + */ + @RequiresPermissions("appletSubscribeDetection:applet_subscribe_detection:exportXls") + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, AppletSubscribeDetection appletSubscribeDetection) { + return super.exportXls(request, appletSubscribeDetection, AppletSubscribeDetection.class, "预约检测"); + } + + /** + * 通过excel导入数据 + * + * @param request + * @param response + * @return + */ + @RequiresPermissions("appletSubscribeDetection:applet_subscribe_detection:importExcel") + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, AppletSubscribeDetection.class); + } + +} diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/entity/AppletSubscribeDetection.java b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/entity/AppletSubscribeDetection.java new file mode 100644 index 0000000..59e5bf8 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/entity/AppletSubscribeDetection.java @@ -0,0 +1,117 @@ +package org.jeecg.modules.demo.appletSubscribeDetection.entity; + +import java.io.Serializable; +import java.io.UnsupportedEncodingException; +import java.util.Date; +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.TableLogic; +import org.jeecg.common.constant.ProvinceCityArea; +import org.jeecg.common.util.SpringContextUtils; +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.jeecg.common.aspect.annotation.Dict; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + * @Description: 预约检测 + * @Author: jeecg-boot + * @Date: 2025-07-22 + * @Version: V1.0 + */ +@Data +@TableName("applet_subscribe_detection") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@Schema(description="预约检测") +public class AppletSubscribeDetection implements Serializable { + private static final long serialVersionUID = 1L; + + /**主键*/ + @TableId(type = IdType.ASSIGN_ID) + @Schema(description = "主键") + private java.lang.String id; + /**创建人*/ + @Schema(description = "创建人") + private java.lang.String createBy; + /**创建日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @Schema(description = "创建日期") + private java.util.Date createTime; + /**更新人*/ + @Schema(description = "更新人") + private java.lang.String updateBy; + /**更新日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @Schema(description = "更新日期") + private java.util.Date updateTime; + /**所属部门*/ + @Schema(description = "所属部门") + private java.lang.String sysOrgCode; + /**标题*/ + @Excel(name = "标题", width = 15) + @Schema(description = "标题") + private java.lang.String title; + /**客户姓名*/ + @Excel(name = "客户姓名", width = 15) + @Schema(description = "客户姓名") + private java.lang.String name; + /**预约时间*/ + @Excel(name = "预约时间", width = 15) + @Schema(description = "预约时间") + private java.lang.String subscribeTime; + /**客户电话*/ + @Excel(name = "客户电话", width = 15) + @Schema(description = "客户电话") + private java.lang.String phone; + /**价格*/ + @Excel(name = "价格", width = 15) + @Schema(description = "价格") + private java.lang.String price; + /**类型(自采、上门、到店)*/ + @Excel(name = "类型(自采、上门、到店)", width = 15) + @Schema(description = "类型(自采、上门、到店)") + private java.lang.String type; + /**寄送地址id*/ + @Excel(name = "寄送地址id", width = 15) + @Schema(description = "寄送地址id") + private java.lang.String sendAddressId; + /**寄送地址(省)*/ + @Excel(name = "寄送地址(省)", width = 15) + @Schema(description = "寄送地址(省)") + private java.lang.String sendAddressProvince; + /**详细地址*/ + @Excel(name = "详细地址", width = 15) + @Schema(description = "详细地址") + private java.lang.String sendAddressDetail; + /**寄送地址(市)*/ + @Excel(name = "寄送地址(市)", width = 15) + @Schema(description = "寄送地址(市)") + private java.lang.String sendAddressCity; + /**寄送地址(区)*/ + @Excel(name = "寄送地址(区)", width = 15) + @Schema(description = "寄送地址(区)") + private java.lang.String sendAddressDistrict; + /**预约日期*/ + @Excel(name = "预约日期", width = 15, format = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + @Schema(description = "预约日期") + private java.util.Date subscribeDate; + /**医院*/ + @Excel(name = "医院", width = 15) + @Schema(description = "医院") + private java.lang.String hospital; + /**医院id*/ + @Excel(name = "医院id", width = 15) + @Schema(description = "医院id") + private java.lang.String hospitalId; +} diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/mapper/AppletSubscribeDetectionMapper.java b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/mapper/AppletSubscribeDetectionMapper.java new file mode 100644 index 0000000..0cff9ca --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/mapper/AppletSubscribeDetectionMapper.java @@ -0,0 +1,17 @@ +package org.jeecg.modules.demo.appletSubscribeDetection.mapper; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; +import org.jeecg.modules.demo.appletSubscribeDetection.entity.AppletSubscribeDetection; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 预约检测 + * @Author: jeecg-boot + * @Date: 2025-07-22 + * @Version: V1.0 + */ +public interface AppletSubscribeDetectionMapper extends BaseMapper { + +} diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/mapper/xml/AppletSubscribeDetectionMapper.xml b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/mapper/xml/AppletSubscribeDetectionMapper.xml new file mode 100644 index 0000000..ede9a2f --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/mapper/xml/AppletSubscribeDetectionMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/service/IAppletSubscribeDetectionService.java b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/service/IAppletSubscribeDetectionService.java new file mode 100644 index 0000000..fef6b8c --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/service/IAppletSubscribeDetectionService.java @@ -0,0 +1,14 @@ +package org.jeecg.modules.demo.appletSubscribeDetection.service; + +import org.jeecg.modules.demo.appletSubscribeDetection.entity.AppletSubscribeDetection; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * @Description: 预约检测 + * @Author: jeecg-boot + * @Date: 2025-07-22 + * @Version: V1.0 + */ +public interface IAppletSubscribeDetectionService extends IService { + +} diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/service/impl/AppletSubscribeDetectionServiceImpl.java b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/service/impl/AppletSubscribeDetectionServiceImpl.java new file mode 100644 index 0000000..cba3b5f --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/service/impl/AppletSubscribeDetectionServiceImpl.java @@ -0,0 +1,19 @@ +package org.jeecg.modules.demo.appletSubscribeDetection.service.impl; + +import org.jeecg.modules.demo.appletSubscribeDetection.entity.AppletSubscribeDetection; +import org.jeecg.modules.demo.appletSubscribeDetection.mapper.AppletSubscribeDetectionMapper; +import org.jeecg.modules.demo.appletSubscribeDetection.service.IAppletSubscribeDetectionService; +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +/** + * @Description: 预约检测 + * @Author: jeecg-boot + * @Date: 2025-07-22 + * @Version: V1.0 + */ +@Service +public class AppletSubscribeDetectionServiceImpl extends ServiceImpl implements IAppletSubscribeDetectionService { + +} diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/uniapp/AppletSubscribeDetectionForm.vue b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/uniapp/AppletSubscribeDetectionForm.vue new file mode 100644 index 0000000..f4c316d --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/uniapp/AppletSubscribeDetectionForm.vue @@ -0,0 +1,156 @@ + + + diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/uniapp/AppletSubscribeDetectionList.vue b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/uniapp/AppletSubscribeDetectionList.vue new file mode 100644 index 0000000..02da945 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/uniapp/AppletSubscribeDetectionList.vue @@ -0,0 +1,44 @@ + + + + diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/uniapp3/AppletSubscribeDetectionData.ts b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/uniapp3/AppletSubscribeDetectionData.ts new file mode 100644 index 0000000..b9ac9fe --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/uniapp3/AppletSubscribeDetectionData.ts @@ -0,0 +1,74 @@ +import { render } from '@/common/renderUtils'; +//列表数据 +export const columns = [ + { + title: '标题', + align:"center", + dataIndex: 'title' + }, + { + title: '客户姓名', + align:"center", + dataIndex: 'name' + }, + { + title: '预约时间', + align:"center", + dataIndex: 'subscribeTime' + }, + { + title: '客户电话', + align:"center", + dataIndex: 'phone' + }, + { + title: '价格', + align:"center", + dataIndex: 'price' + }, + { + title: '类型(自采、上门、到店)', + align:"center", + dataIndex: 'type' + }, + { + title: '寄送地址id', + align:"center", + dataIndex: 'sendAddressId' + }, + { + title: '寄送地址(省)', + align:"center", + dataIndex: 'sendAddressProvince' + }, + { + title: '详细地址', + align:"center", + dataIndex: 'sendAddressDetail' + }, + { + title: '寄送地址(市)', + align:"center", + dataIndex: 'sendAddressCity' + }, + { + title: '寄送地址(区)', + align:"center", + dataIndex: 'sendAddressDistrict' + }, + { + title: '预约日期', + align:"center", + dataIndex: 'subscribeDate', + }, + { + title: '医院', + align:"center", + dataIndex: 'hospital' + }, + { + title: '医院id', + align:"center", + dataIndex: 'hospitalId' + }, +]; \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/uniapp3/AppletSubscribeDetectionForm.vue b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/uniapp3/AppletSubscribeDetectionForm.vue new file mode 100644 index 0000000..6f0344a --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/uniapp3/AppletSubscribeDetectionForm.vue @@ -0,0 +1,374 @@ + +{ +layout: 'default', +style: { +navigationStyle: 'custom', +navigationBarTitleText: '预约检测', +}, +} + + + + + + diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/uniapp3/AppletSubscribeDetectionList.vue b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/uniapp3/AppletSubscribeDetectionList.vue new file mode 100644 index 0000000..607e83b --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/uniapp3/AppletSubscribeDetectionList.vue @@ -0,0 +1,148 @@ + +{ +layout: 'default', +style: { +navigationBarTitleText: '预约检测', +navigationStyle: 'custom', +}, +} + + + + + + diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/vue3/AppletSubscribeDetection.api.ts b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/vue3/AppletSubscribeDetection.api.ts new file mode 100644 index 0000000..ebcfa77 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/vue3/AppletSubscribeDetection.api.ts @@ -0,0 +1,64 @@ +import {defHttp} from '/@/utils/http/axios'; +import { useMessage } from "/@/hooks/web/useMessage"; + +const { createConfirm } = useMessage(); + +enum Api { + list = '/appletSubscribeDetection/appletSubscribeDetection/list', + save='/appletSubscribeDetection/appletSubscribeDetection/add', + edit='/appletSubscribeDetection/appletSubscribeDetection/edit', + deleteOne = '/appletSubscribeDetection/appletSubscribeDetection/delete', + deleteBatch = '/appletSubscribeDetection/appletSubscribeDetection/deleteBatch', + importExcel = '/appletSubscribeDetection/appletSubscribeDetection/importExcel', + exportXls = '/appletSubscribeDetection/appletSubscribeDetection/exportXls', +} +/** + * 导出api + * @param params + */ +export const getExportUrl = Api.exportXls; +/** + * 导入api + */ +export const getImportUrl = Api.importExcel; +/** + * 列表接口 + * @param params + */ +export const list = (params) => + defHttp.get({url: Api.list, params}); + +/** + * 删除单个 + */ +export const deleteOne = (params,handleSuccess) => { + return defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => { + handleSuccess(); + }); +} +/** + * 批量删除 + * @param params + */ +export const batchDelete = (params, handleSuccess) => { + createConfirm({ + iconType: 'warning', + title: '确认删除', + content: '是否删除选中数据', + okText: '确认', + cancelText: '取消', + onOk: () => { + return defHttp.delete({url: Api.deleteBatch, data: params}, {joinParamsToUrl: true}).then(() => { + handleSuccess(); + }); + } + }); +} +/** + * 保存或者更新 + * @param params + */ +export const saveOrUpdate = (params, isUpdate) => { + let url = isUpdate ? Api.edit : Api.save; + return defHttp.post({url: url, params}); +} diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/vue3/AppletSubscribeDetection.data.ts b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/vue3/AppletSubscribeDetection.data.ts new file mode 100644 index 0000000..00916d1 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/vue3/AppletSubscribeDetection.data.ts @@ -0,0 +1,195 @@ +import {BasicColumn} from '/@/components/Table'; +import {FormSchema} from '/@/components/Table'; +import { rules} from '/@/utils/helper/validator'; +import { render } from '/@/utils/common/renderUtils'; +import { getWeekMonthQuarterYear } from '/@/utils'; +//列表数据 +export const columns: BasicColumn[] = [ + { + title: '标题', + align:"center", + dataIndex: 'title' + }, + { + title: '客户姓名', + align:"center", + dataIndex: 'name' + }, + { + title: '预约时间', + align:"center", + dataIndex: 'subscribeTime' + }, + { + title: '客户电话', + align:"center", + dataIndex: 'phone' + }, + { + title: '价格', + align:"center", + dataIndex: 'price' + }, + { + title: '类型(自采、上门、到店)', + align:"center", + dataIndex: 'type' + }, + { + title: '寄送地址id', + align:"center", + dataIndex: 'sendAddressId' + }, + { + title: '寄送地址(省)', + align:"center", + dataIndex: 'sendAddressProvince' + }, + { + title: '详细地址', + align:"center", + dataIndex: 'sendAddressDetail' + }, + { + title: '寄送地址(市)', + align:"center", + dataIndex: 'sendAddressCity' + }, + { + title: '寄送地址(区)', + align:"center", + dataIndex: 'sendAddressDistrict' + }, + { + title: '预约日期', + align:"center", + dataIndex: 'subscribeDate', + customRender:({text}) =>{ + text = !text ? "" : (text.length > 10 ? text.substr(0,10) : text); + return text; + }, + }, + { + title: '医院', + align:"center", + dataIndex: 'hospital' + }, + { + title: '医院id', + align:"center", + dataIndex: 'hospitalId' + }, +]; +//查询数据 +export const searchFormSchema: FormSchema[] = [ +]; +//表单数据 +export const formSchema: FormSchema[] = [ + { + label: '标题', + field: 'title', + component: 'Input', + }, + { + label: '客户姓名', + field: 'name', + component: 'Input', + }, + { + label: '预约时间', + field: 'subscribeTime', + component: 'Input', + }, + { + label: '客户电话', + field: 'phone', + component: 'Input', + }, + { + label: '价格', + field: 'price', + component: 'Input', + }, + { + label: '类型(自采、上门、到店)', + field: 'type', + component: 'Input', + }, + { + label: '寄送地址id', + field: 'sendAddressId', + component: 'Input', + }, + { + label: '寄送地址(省)', + field: 'sendAddressProvince', + component: 'Input', + }, + { + label: '详细地址', + field: 'sendAddressDetail', + component: 'Input', + }, + { + label: '寄送地址(市)', + field: 'sendAddressCity', + component: 'Input', + }, + { + label: '寄送地址(区)', + field: 'sendAddressDistrict', + component: 'Input', + }, + { + label: '预约日期', + field: 'subscribeDate', + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD' + }, + }, + { + label: '医院', + field: 'hospital', + component: 'Input', + }, + { + label: '医院id', + field: 'hospitalId', + component: 'Input', + }, + // TODO 主键隐藏字段,目前写死为ID + { + label: '', + field: 'id', + component: 'Input', + show: false + }, +]; + +// 高级查询数据 +export const superQuerySchema = { + title: {title: '标题',order: 0,view: 'text', type: 'string',}, + name: {title: '客户姓名',order: 1,view: 'text', type: 'string',}, + subscribeTime: {title: '预约时间',order: 2,view: 'text', type: 'string',}, + phone: {title: '客户电话',order: 3,view: 'text', type: 'string',}, + price: {title: '价格',order: 4,view: 'text', type: 'string',}, + type: {title: '类型(自采、上门、到店)',order: 5,view: 'text', type: 'string',}, + sendAddressId: {title: '寄送地址id',order: 6,view: 'text', type: 'string',}, + sendAddressProvince: {title: '寄送地址(省)',order: 7,view: 'text', type: 'string',}, + sendAddressDetail: {title: '详细地址',order: 8,view: 'text', type: 'string',}, + sendAddressCity: {title: '寄送地址(市)',order: 9,view: 'text', type: 'string',}, + sendAddressDistrict: {title: '寄送地址(区)',order: 10,view: 'text', type: 'string',}, + subscribeDate: {title: '预约日期',order: 11,view: 'date', type: 'string',}, + hospital: {title: '医院',order: 12,view: 'text', type: 'string',}, + hospitalId: {title: '医院id',order: 13,view: 'text', type: 'string',}, +}; + +/** +* 流程表单调用这个方法获取formSchema +* @param param +*/ +export function getBpmFormSchema(_formData): FormSchema[]{ + // 默认和原始表单保持一致 如果流程中配置了权限数据,这里需要单独处理formSchema + return formSchema; +} \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/vue3/AppletSubscribeDetectionList.vue b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/vue3/AppletSubscribeDetectionList.vue new file mode 100644 index 0000000..bd3620b --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/vue3/AppletSubscribeDetectionList.vue @@ -0,0 +1,206 @@ + + + + + \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/vue3/V20250722_1__menu_insert_AppletSubscribeDetection.sql b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/vue3/V20250722_1__menu_insert_AppletSubscribeDetection.sql new file mode 100644 index 0000000..ab9e284 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/vue3/V20250722_1__menu_insert_AppletSubscribeDetection.sql @@ -0,0 +1,26 @@ +-- 注意:该页面对应的前台目录为views/appletSubscribeDetection文件夹下 +-- 如果你想更改到其他目录,请修改sql中component字段对应的值 + + +INSERT INTO sys_permission(id, parent_id, name, url, component, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_route, is_leaf, keep_alive, hidden, hide_tab, description, status, del_flag, rule_flag, create_by, create_time, update_by, update_time, internal_or_external) +VALUES ('2025072202502600010', NULL, '预约检测', '/appletSubscribeDetection/appletSubscribeDetectionList', 'appletSubscribeDetection/AppletSubscribeDetectionList', NULL, NULL, 0, NULL, '1', 0.00, 0, NULL, 1, 0, 0, 0, 0, NULL, '1', 0, 0, 'admin', '2025-07-22 14:50:01', NULL, NULL, 0); + +-- 权限控制sql +-- 新增 +INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) +VALUES ('2025072202502600011', '2025072202502600010', '添加预约检测', NULL, NULL, 0, NULL, NULL, 2, 'appletSubscribeDetection:applet_subscribe_detection:add', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-07-22 14:50:01', NULL, NULL, 0, 0, '1', 0); +-- 编辑 +INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) +VALUES ('2025072202502600012', '2025072202502600010', '编辑预约检测', NULL, NULL, 0, NULL, NULL, 2, 'appletSubscribeDetection:applet_subscribe_detection:edit', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-07-22 14:50:01', NULL, NULL, 0, 0, '1', 0); +-- 删除 +INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) +VALUES ('2025072202502600013', '2025072202502600010', '删除预约检测', NULL, NULL, 0, NULL, NULL, 2, 'appletSubscribeDetection:applet_subscribe_detection:delete', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-07-22 14:50:01', NULL, NULL, 0, 0, '1', 0); +-- 批量删除 +INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) +VALUES ('2025072202502600014', '2025072202502600010', '批量删除预约检测', NULL, NULL, 0, NULL, NULL, 2, 'appletSubscribeDetection:applet_subscribe_detection:deleteBatch', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-07-22 14:50:01', NULL, NULL, 0, 0, '1', 0); +-- 导出excel +INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) +VALUES ('2025072202502600015', '2025072202502600010', '导出excel_预约检测', NULL, NULL, 0, NULL, NULL, 2, 'appletSubscribeDetection:applet_subscribe_detection:exportXls', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-07-22 14:50:01', NULL, NULL, 0, 0, '1', 0); +-- 导入excel +INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) +VALUES ('2025072202502600016', '2025072202502600010', '导入excel_预约检测', NULL, NULL, 0, NULL, NULL, 2, 'appletSubscribeDetection:applet_subscribe_detection:importExcel', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-07-22 14:50:01', NULL, NULL, 0, 0, '1', 0); \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/vue3/components/AppletSubscribeDetectionForm.vue b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/vue3/components/AppletSubscribeDetectionForm.vue new file mode 100644 index 0000000..650c9e5 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/vue3/components/AppletSubscribeDetectionForm.vue @@ -0,0 +1,70 @@ + + + \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/vue3/components/AppletSubscribeDetectionModal.vue b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/vue3/components/AppletSubscribeDetectionModal.vue new file mode 100644 index 0000000..665349b --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecgboot-boot-applet/src/main/java/org/jeecg/modules/demo/appletSubscribeDetection/vue3/components/AppletSubscribeDetectionModal.vue @@ -0,0 +1,99 @@ + + + + + \ No newline at end of file diff --git a/jeecg-boot/jeecg-module-system/jeecg-system-start/src/main/resources/application-dev.yml b/jeecg-boot/jeecg-module-system/jeecg-system-start/src/main/resources/application-dev.yml index d388edd..9fcc971 100644 --- a/jeecg-boot/jeecg-module-system/jeecg-system-start/src/main/resources/application-dev.yml +++ b/jeecg-boot/jeecg-module-system/jeecg-system-start/src/main/resources/application-dev.yml @@ -212,7 +212,7 @@ jeecg: #签名拦截接口 signUrls: /sys/dict/getDictItems/*,/sys/dict/loadDict/*,/sys/dict/loadDictOrderByValue/*,/sys/dict/loadDictItem/*,/sys/dict/loadTreeData,/sys/api/queryTableDictItemsByCode,/sys/api/queryFilterTableDictInfo,/sys/api/queryTableDictByKeys,/sys/api/translateDictFromTable,/sys/api/translateDictFromTableByKeys,/sys/sendChangePwdSms,/sys/user/sendChangePhoneSms,/sys/sms,/desform/api/sendVerifyCode # 本地:local、Minio:minio、阿里云:alioss - uploadType: local + uploadType: alioss # 前端访问地址 domainUrl: pc: http://localhost:3100 @@ -226,10 +226,10 @@ jeecg: excludeUrls: /test/jeecgDemo/demo3,/test/jeecgDemo/redisDemo/**,/bigscreen/category/**,/bigscreen/visual/**,/bigscreen/map/**,/jmreport/bigscreen2/** #阿里云oss存储和大鱼短信秘钥配置 oss: - accessKey: ?? - secretKey: ?? - endpoint: oss-cn-beijing.aliyuncs.com - bucketName: jeecgdev + accessKey: LTAI5tQSs47izVy8DLVdwUU9 + secretKey: qHI7C3PaXYZySr84HTToviC71AYlFq + endpoint: oss-cn-shenzhen.aliyuncs.com + bucketName: hanhaiimage # 短信模板 sms-template: # 签名 diff --git a/jeecgboot-vue3/src/views/applet/config/AppletConfig.api.ts b/jeecgboot-vue3/src/views/applet/config/AppletConfig.api.ts new file mode 100644 index 0000000..5049465 --- /dev/null +++ b/jeecgboot-vue3/src/views/applet/config/AppletConfig.api.ts @@ -0,0 +1,64 @@ +import {defHttp} from '/@/utils/http/axios'; +import { useMessage } from "/@/hooks/web/useMessage"; + +const { createConfirm } = useMessage(); + +enum Api { + list = '/appletConfig/appletConfig/list', + save='/appletConfig/appletConfig/add', + edit='/appletConfig/appletConfig/edit', + deleteOne = '/appletConfig/appletConfig/delete', + deleteBatch = '/appletConfig/appletConfig/deleteBatch', + importExcel = '/appletConfig/appletConfig/importExcel', + exportXls = '/appletConfig/appletConfig/exportXls', +} +/** + * 导出api + * @param params + */ +export const getExportUrl = Api.exportXls; +/** + * 导入api + */ +export const getImportUrl = Api.importExcel; +/** + * 列表接口 + * @param params + */ +export const list = (params) => + defHttp.get({url: Api.list, params}); + +/** + * 删除单个 + */ +export const deleteOne = (params,handleSuccess) => { + return defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => { + handleSuccess(); + }); +} +/** + * 批量删除 + * @param params + */ +export const batchDelete = (params, handleSuccess) => { + createConfirm({ + iconType: 'warning', + title: '确认删除', + content: '是否删除选中数据', + okText: '确认', + cancelText: '取消', + onOk: () => { + return defHttp.delete({url: Api.deleteBatch, data: params}, {joinParamsToUrl: true}).then(() => { + handleSuccess(); + }); + } + }); +} +/** + * 保存或者更新 + * @param params + */ +export const saveOrUpdate = (params, isUpdate) => { + let url = isUpdate ? Api.edit : Api.save; + return defHttp.post({url: url, params}); +} diff --git a/jeecgboot-vue3/src/views/applet/config/AppletConfig.data.ts b/jeecgboot-vue3/src/views/applet/config/AppletConfig.data.ts new file mode 100644 index 0000000..7acf0be --- /dev/null +++ b/jeecgboot-vue3/src/views/applet/config/AppletConfig.data.ts @@ -0,0 +1,135 @@ +import { BasicColumn } from '/@/components/Table'; +import { FormSchema } from '/@/components/Table'; +import { rules } from '/@/utils/helper/validator'; +import { render } from '/@/utils/common/renderUtils'; +import { getWeekMonthQuarterYear } from '/@/utils'; +//列表数据 +export const columns: BasicColumn[] = [ + { + title: '编码', + align: "center", + dataIndex: 'code' + }, + { + title: '描述', + align: "center", + dataIndex: 'info' + }, + { + title: '内容', + align: "center", + dataIndex: 'content' + }, + { + title: '类型', + align: "center", + dataIndex: 'type_dictText' + }, +]; +//查询数据 +export const searchFormSchema: FormSchema[] = [ + { + label: "编码", + field: 'code', + component: 'Input', + //colProps: {span: 6}, + }, + { + label: "描述", + field: 'info', + component: 'Input', + //colProps: {span: 6}, + }, + { + label: "类型", + field: 'type', + component: 'JSelectMultiple', + componentProps: { + dictCode: "applett_config_type" + }, + //colProps: {span: 6}, + }, +]; +//表单数据 +export const formSchema: FormSchema[] = [ + { + label: '编码', + field: 'code', + component: 'Input', + }, + { + label: '描述', + field: 'info', + component: 'Input', + }, + { + label: '类型', + field: 'type', + component: 'JDictSelectTag', + componentProps: { + dictCode: "applett_config_type" + }, + }, + { + label: '内容', + field: 'content', + component: 'Input', + componentProps: { + placeholder: '请输入内容', + }, + show: ({ values }) => { + return values.type === '0' || values.type === 0; + }, + }, + { + label: '富文本内容', + field: 'content', + component: 'JEditor', + componentProps: { + placeholder: '请输入富文本内容', + height: 400, + menubar: true, + toolbar: 'undo redo | formatselect | bold italic backcolor | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | removeformat | help', + }, + show: ({ values }) => { + return values.type === '1' || values.type === 1; + }, + }, + { + label: '图片', + field: 'content', + component: 'JImageUpload', + componentProps: { + fileMax: 1, + accept: ['image/*'], + helpText: '支持jpg、png、gif等图片格式', + }, + show: ({ values }) => { + return values.type === '2' || values.type === 2; + }, + }, + // TODO 主键隐藏字段,目前写死为ID + { + label: '', + field: 'id', + component: 'Input', + show: false + }, +]; + +// 高级查询数据 +export const superQuerySchema = { + code: { title: '编码', order: 0, view: 'text', type: 'string', }, + info: { title: '描述', order: 1, view: 'text', type: 'string', }, + content: { title: '内容', order: 2, view: 'text', type: 'string', }, + type: { title: '类型', order: 3, view: 'list', type: 'string', dictCode: 'applett_config_type', }, +}; + +/** +* 流程表单调用这个方法获取formSchema +* @param param +*/ +export function getBpmFormSchema(_formData): FormSchema[] { + // 默认和原始表单保持一致 如果流程中配置了权限数据,这里需要单独处理formSchema + return formSchema; +} \ No newline at end of file diff --git a/jeecgboot-vue3/src/views/applet/config/AppletConfigList.vue b/jeecgboot-vue3/src/views/applet/config/AppletConfigList.vue new file mode 100644 index 0000000..ec42f34 --- /dev/null +++ b/jeecgboot-vue3/src/views/applet/config/AppletConfigList.vue @@ -0,0 +1,268 @@ + + + + + \ No newline at end of file diff --git a/jeecgboot-vue3/src/views/applet/config/components/AppletConfigForm.vue b/jeecgboot-vue3/src/views/applet/config/components/AppletConfigForm.vue new file mode 100644 index 0000000..05bd308 --- /dev/null +++ b/jeecgboot-vue3/src/views/applet/config/components/AppletConfigForm.vue @@ -0,0 +1,70 @@ + + + \ No newline at end of file diff --git a/jeecgboot-vue3/src/views/applet/config/components/AppletConfigModal.vue b/jeecgboot-vue3/src/views/applet/config/components/AppletConfigModal.vue new file mode 100644 index 0000000..8975d3d --- /dev/null +++ b/jeecgboot-vue3/src/views/applet/config/components/AppletConfigModal.vue @@ -0,0 +1,117 @@ + + + + + \ No newline at end of file