From 42d3c2c828cecf803a3127a06817a055d8fd2bfd Mon Sep 17 00:00:00 2001 From: mactj Date: Tue, 12 Jan 2021 18:00:15 +0800 Subject: [PATCH 01/62] =?UTF-8?q?=E6=8B=A6=E6=88=AA=E5=99=A8=E6=98=BE?= =?UTF-8?q?=E7=A4=BAip,=E5=AE=8C=E5=96=84=E5=B0=8F=E7=A8=8B=E5=BA=8F?= =?UTF-8?q?=E6=B3=A8=E5=86=8C,=E7=94=A8=E6=88=B7=E6=89=8B=E6=9C=BA?= =?UTF-8?q?=E5=8F=B7=E4=B8=8D=E5=86=8D=E5=94=AF=E4=B8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/代码约定.md | 126 ++++++++++++ doc/积分设计.md | 0 .../ruoyi/winery/component/MiniComponent.java | 78 +++++-- .../controller/NewsContentController.java | 9 +- .../controller/goods/GoodsMainController.java | 8 +- .../controller/goods/GoodsSpecController.java | 8 +- ...ontroller.java => MiniUserController.java} | 38 ++-- .../controller/mini/TestController.java | 192 +++++++++--------- .../winery/WineryFoodSafetyController.java | 6 + .../winery/WineryMauserController.java | 84 ++++---- .../winery/WineryOrdersController.java | 12 +- .../WineryWineSpecDetailController.java | 6 + .../com/ruoyi/winery/define/MiniDefine.java | 2 + .../winery/domain/winery/WineryMauser.java | 20 +- .../controller/system/SysUserController.java | 59 +++--- .../core/controller/BaseController.java | 15 -- .../com/ruoyi/common/filter/XssFilter.java | 7 + .../com/ruoyi/common/utils/SecurityUtils.java | 63 +++--- .../framework/config/SecurityConfig.java | 3 +- .../interceptor/RepeatSubmitInterceptor.java | 38 ++++ .../src/views/winery/winery_mauser/index.vue | 14 +- 21 files changed, 514 insertions(+), 274 deletions(-) create mode 100644 doc/代码约定.md create mode 100644 doc/积分设计.md rename hope-winery/src/main/java/com/ruoyi/winery/controller/mini/{MiniController.java => MiniUserController.java} (85%) diff --git a/doc/代码约定.md b/doc/代码约定.md new file mode 100644 index 000000000..f09f9237a --- /dev/null +++ b/doc/代码约定.md @@ -0,0 +1,126 @@ +# 代码约定 + +#### 1.类文件名以大写驼峰开始,内部主类(class)保持与文件名一致,方便查询。 + +#### 2.每个类请标注注释 (特别是拼音缩写起名的类把拼音字母所对应的汉字请标注上) + +``` +【例】 +//用于xxx的一个类 +class MyClass { +} +``` + +#### 3.如果是页面尽量用 xxPage命名,功能拥有复数页面的时候,其首页尽量用xxIndexPage命名。 + +``` +【例】 +HomePage //首页 +NewsIndexPage //新闻首页 +NewsInfoPage //新闻咨询页 +``` + +#### 4.变量命名 + +①布尔值请用can/is标记开头命名 +②int double 如不是width height count等能容易联想到的名字,尽量命名成xxxNum等容易联想的形式. +③String型同理 如果不是name title lable等容易联想到的名字,尽量命名成xxxStr/xxxText等容易联想的名字。 +④类成员变量请用private(小写驼峰命名) + +``` +【例】 +int count; +var myPage; +``` + +如是固定参数用,不会改变的变量请在初始化前使用final const开头以区分 + + +``` +【例】 +const Color clRed = Colors(0xFFFF0000); +final List pageValueList = ["第一","第二","第三"] +``` + +#### 5.if文等逻辑表达式 判断条件如有两个表达式的时候 请将两个表达式分别用小括号引上 + +``` +【例】 +错误例: if ( a+1==b && b+2==c) {} ❌ +正确例: if ((a+1==b) && (b+2==c)) {} ✅ + +``` + +如更复杂三个及以上表达式的时候请整理各结果方便事后查阅 + +``` +【反例】 +if ((a=b) && (b=c) || (c=a)) {} +``` + +``` +【推荐例】 +bool isAEqualB = (a==b); +bool isBEqualC = (b==c); +bool isAEqualC = (a==c); +bool isResult = isAEqualB && isBEqualC && isAEqualC; +if (isResult) {} +``` + +#### 6.代码if/for嵌套花括号的层级不要太深(尽量控制在两层之内): + +``` +【反例】 + if (isA) { + if (isB) { + if (isC) { + 处理1 + } + } + } else { + 处理2 + } +``` + +``` +【正例】 + if (!isA) { + 处理2 + return + } + if (!isB) { + return + } + if (isC) { + 处理1 + } +``` + +#### 7.为防止bug,禁止浮点变量用“==”或“!=”与任何数字比较。 +【禁止用int和double不同变量做等于==”或“!=”判断】 +(会因为精度不同导致结果误差,如比较请同时转成int或者double,具体请百度) + +#### 8.表示状态的迁移变化的变量 尽量使用enum + +``` +【不推荐例】 +int currentPage = 1; +changePage(int pageNum) +``` + +``` +【推荐例】 +enum PageType { + PAGE1, + PAGE2 +} +PageType currentPage = PageType.PAGE1; +changePage(PageType pageType) +``` + +#### 9.每个函数Widget函数的原则不建议超过40行.超过了请整理各要素和封装逻辑,以便维护。(防止行对齐都到屏幕外面去了) + +#### 10.异步类方法/函数(async/Future等)起名时候加定冠词do/run等方便识别. + +#### 11.代码每个函数尽量控制到30行以内,超过30行请尝试封装重构 + diff --git a/doc/积分设计.md b/doc/积分设计.md new file mode 100644 index 000000000..e69de29bb diff --git a/hope-winery/src/main/java/com/ruoyi/winery/component/MiniComponent.java b/hope-winery/src/main/java/com/ruoyi/winery/component/MiniComponent.java index 6745854f2..685d727c1 100644 --- a/hope-winery/src/main/java/com/ruoyi/winery/component/MiniComponent.java +++ b/hope-winery/src/main/java/com/ruoyi/winery/component/MiniComponent.java @@ -6,6 +6,7 @@ import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.github.binarywang.wxpay.service.WxPayService; import com.github.binarywang.wxpay.util.SignUtils; import com.ruoyi.common.constant.Constants; @@ -24,6 +25,7 @@ import com.ruoyi.framework.manager.factory.AsyncFactory; import com.ruoyi.framework.web.service.TokenService; import com.ruoyi.system.service.ISysUserService; import com.ruoyi.winery.config.wx.WxMiniProperties; +import com.ruoyi.winery.controller.winery.WineryMauserController; import com.ruoyi.winery.domain.winery.WineryMauser; import com.ruoyi.winery.service.IWineryMauserService; @@ -81,57 +83,85 @@ public class MiniComponent { @Autowired private ISysUserService userService; + @Autowired + private IWineryMauserService iWineryMauserService; - public WxMaJscode2SessionResult login(String code) throws WxErrorException { + + public WxMaJscode2SessionResult login(String code, Long deptId) throws WxErrorException { WxMaJscode2SessionResult sessionInfo = wxMaService.getUserService().getSessionInfo(code); - WineryMauser user = wineryMauserService.getById(sessionInfo.getOpenid()); + WineryMauser user = wineryMauserService.getOne( + new LambdaQueryWrapper() + .eq(WineryMauser::getDeptId, deptId) + .eq(WineryMauser::getOpenId, sessionInfo.getOpenid()) + ); String key = sessionInfo.getOpenid(); redisCache.setCacheObject(key, sessionInfo.getSessionKey(), 7200, TimeUnit.SECONDS); if (user == null) { user = new WineryMauser(); user.setOpenId(sessionInfo.getOpenid()); + user.setDeptId(deptId); log.info("新增user:{}", user); } if (StrUtil.isNotBlank(sessionInfo.getUnionid())) { user.setUnionId(sessionInfo.getUnionid()); } + + user.setStatus(0); wineryMauserService.saveOrUpdate(user); return sessionInfo; } - public AjaxResult registration(String openid, String mobile) { - + public AjaxResult registration(String openid, String mobile, String nickName, Long deptId) { SysUser user = new SysUser(); - - user.setUserName(openid); + String userName = MINI_USER_SYMBOL + openid + "-" + deptId; + user.setUserName(userName); user.setPhonenumber(mobile); - - user.setNickName(mobile); - user.setDeptId(MINI_DEPTID); + user.setNickName(nickName); + user.setDeptId(deptId); user.setPassword(MINI_DEFUALT_PASSWORD); user.setRoleIds(new Long[]{MINI_DEFUALT_ROLEID}); user.setPostIds(new Long[]{MINI_DEFUALT_POSTID}); - if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user.getUserName()))) { return AjaxResult.error("新增用户" + user.getUserName() + "失败,登录账号已存在"); - } else if (StringUtils.isNotEmpty(user.getPhonenumber()) - && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user))) { - return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,手机号码已存在"); - } else if (StringUtils.isNotEmpty(user.getEmail()) + } + +// +// else if (StringUtils.isNotEmpty(user.getPhonenumber()) +// && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user))) { +// return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,手机号码已存在"); +// } + + else if (StringUtils.isNotEmpty(user.getEmail()) && UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user))) { return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,邮箱账号已存在"); } user.setCreateBy(MINI_MANAGE_USER); user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); - return userService.insertUser(user) > 0 ? AjaxResult.success(user) : AjaxResult.error(); + // 创建查找小程序用户 + WineryMauser wineryMauser = iWineryMauserService.getOne( + new LambdaQueryWrapper() + .eq(WineryMauser::getOpenId, openid) + .eq(WineryMauser::getDeptId, user.getDeptId())); + + if (wineryMauser == null) { + wineryMauser = new WineryMauser(user); + } + + if (userService.insertUser(user) > 0 && iWineryMauserService.saveOrUpdate(wineryMauser)) { + AjaxResult ajax = AjaxResult.success(); + ajax.put(Constants.TOKEN, loginByMini(userName)); + return ajax; + } else { + return AjaxResult.error(); + } } /** @@ -140,23 +170,23 @@ public class MiniComponent { * @param openId * @return */ - public String loginByMini(String openId) { + public String loginByMini(String userName) { // 用户验证 Authentication authentication = null; try { // 该方法会去调用UserDetailsServiceImpl.loadUserByUsername authentication = authenticationManager - .authenticate(new UsernamePasswordAuthenticationToken(openId, MINI_DEFUALT_PASSWORD)); + .authenticate(new UsernamePasswordAuthenticationToken(userName, MINI_DEFUALT_PASSWORD)); } catch (Exception e) { if (e instanceof BadCredentialsException) { - AsyncManager.me().execute(AsyncFactory.recordLogininfor(openId, Constants.LOGIN_FAIL, MessageUtils.message("user.password.not.match"))); + AsyncManager.me().execute(AsyncFactory.recordLogininfor(userName, Constants.LOGIN_FAIL, MessageUtils.message("user.password.not.match"))); throw new UserPasswordNotMatchException(); } else { - AsyncManager.me().execute(AsyncFactory.recordLogininfor(openId, Constants.LOGIN_FAIL, e.getMessage())); + AsyncManager.me().execute(AsyncFactory.recordLogininfor(userName, Constants.LOGIN_FAIL, e.getMessage())); throw new CustomException(e.getMessage()); } } - AsyncManager.me().execute(AsyncFactory.recordLogininfor(openId, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success"))); + AsyncManager.me().execute(AsyncFactory.recordLogininfor(userName, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success"))); LoginUser loginUser = (LoginUser) authentication.getPrincipal(); // 生成token return tokenService.createToken(loginUser); @@ -172,7 +202,12 @@ public class MiniComponent { public String getMobile(JSONObject json) { String openid = json.getStr("openid"); - WineryMauser user = wineryMauserService.getById(openid); + String deptId = json.getStr("deptId"); + // 创建查找小程序用户 + WineryMauser user = iWineryMauserService.getOne( + new LambdaQueryWrapper() + .eq(WineryMauser::getOpenId, openid) + .eq(WineryMauser::getDeptId, deptId)); JSONObject detail = json.getJSONObject("detail"); String encryptedData = detail.getStr("encryptedData"); @@ -210,7 +245,6 @@ public class MiniComponent { Map params = json.toBean(HashMap.class); - json.set("sign", SignUtils.createSign(params, "HMAC-SHA256", wxMiniProperties.getMchKey(), (String[]) null)); diff --git a/hope-winery/src/main/java/com/ruoyi/winery/controller/NewsContentController.java b/hope-winery/src/main/java/com/ruoyi/winery/controller/NewsContentController.java index 123a71fa5..cb2f14604 100644 --- a/hope-winery/src/main/java/com/ruoyi/winery/controller/NewsContentController.java +++ b/hope-winery/src/main/java/com/ruoyi/winery/controller/NewsContentController.java @@ -28,6 +28,9 @@ import com.ruoyi.winery.service.INewsContentService; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.core.page.TableDataInfo; +import static com.ruoyi.common.utils.SecurityUtils.getDeptId; +import static com.ruoyi.common.utils.SecurityUtils.getUsername; + /** * 新闻资讯Controller * @@ -50,7 +53,7 @@ public class NewsContentController extends BaseController { startPage(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(newsContent); - lqw.eq(NewsContent::getDeptId, getDeptId(token)); + lqw.eq(NewsContent::getDeptId, getDeptId()); if (StringUtils.isNotBlank(newsContent.getNewsTitle())) { lqw.eq(NewsContent::getNewsTitle, newsContent.getNewsTitle()); @@ -100,7 +103,8 @@ public class NewsContentController extends BaseController { @Log(title = "新闻资讯", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(UsernamePasswordAuthenticationToken token, @RequestBody NewsContent newsContent) { - newsContent.setDeptId(getDeptId(token)); + newsContent.setDeptId(getDeptId()); + newsContent.setCreateBy(getUsername()); return toAjax(iNewsContentService.save(newsContent) ? 1 : 0); } @@ -111,6 +115,7 @@ public class NewsContentController extends BaseController { @Log(title = "新闻资讯", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody NewsContent newsContent) { + newsContent.setUpdateBy(getUsername()); return toAjax(iNewsContentService.updateById(newsContent) ? 1 : 0); } diff --git a/hope-winery/src/main/java/com/ruoyi/winery/controller/goods/GoodsMainController.java b/hope-winery/src/main/java/com/ruoyi/winery/controller/goods/GoodsMainController.java index 129d9e19d..7f0d9f25f 100644 --- a/hope-winery/src/main/java/com/ruoyi/winery/controller/goods/GoodsMainController.java +++ b/hope-winery/src/main/java/com/ruoyi/winery/controller/goods/GoodsMainController.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import java.util.List; import java.util.Arrays; +import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; import lombok.RequiredArgsConstructor; import org.springframework.security.access.prepost.PreAuthorize; @@ -28,6 +29,8 @@ import com.ruoyi.winery.service.IGoodsMainService; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.core.page.TableDataInfo; +import static com.ruoyi.common.utils.SecurityUtils.*; + /** * 商品信息Controller * @@ -50,7 +53,7 @@ public class GoodsMainController extends BaseController { startPage(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(goodsMain); - lqw.eq(GoodsMain::getDeptId, getDeptId(token)); + lqw.eq(!isAdmin(), GoodsMain::getDeptId, getDeptId()); if (StringUtils.isNotBlank(goodsMain.getGoodsName())) { lqw.like(GoodsMain::getGoodsName, goodsMain.getGoodsName()); @@ -106,7 +109,7 @@ public class GoodsMainController extends BaseController { @Log(title = "商品信息", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(UsernamePasswordAuthenticationToken token, @RequestBody GoodsMain goodsMain) { - goodsMain.setDeptId(getDeptId(token)); + goodsMain.setDeptId(getDeptId()); return toAjax(iWineryGoodsService.save(goodsMain) ? 1 : 0); } @@ -117,6 +120,7 @@ public class GoodsMainController extends BaseController { @Log(title = "商品信息", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody GoodsMain goodsMain) { + goodsMain.setUpdateBy(getUsername()); return toAjax(iWineryGoodsService.updateById(goodsMain) ? 1 : 0); } diff --git a/hope-winery/src/main/java/com/ruoyi/winery/controller/goods/GoodsSpecController.java b/hope-winery/src/main/java/com/ruoyi/winery/controller/goods/GoodsSpecController.java index 71354d9be..61015d95d 100644 --- a/hope-winery/src/main/java/com/ruoyi/winery/controller/goods/GoodsSpecController.java +++ b/hope-winery/src/main/java/com/ruoyi/winery/controller/goods/GoodsSpecController.java @@ -7,6 +7,7 @@ import java.util.List; import java.util.Arrays; import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.winery.domain.goods.GoodsMain; import com.ruoyi.winery.domain.goods.GoodsSpec; import lombok.RequiredArgsConstructor; import org.springframework.security.access.prepost.PreAuthorize; @@ -28,6 +29,8 @@ import com.ruoyi.winery.service.IGoodsSpecService; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.core.page.TableDataInfo; +import static com.ruoyi.common.utils.SecurityUtils.*; + /** * 商品规格Controller * @@ -51,7 +54,7 @@ public class GoodsSpecController extends BaseController { LambdaQueryWrapper lqw = Wrappers.lambdaQuery(goodsSpec); - lqw.eq(GoodsSpec::getDeptId, getDeptId(token)); + lqw.eq(!isAdmin(), GoodsSpec::getDeptId, getDeptId()); if (StringUtils.isNotBlank(goodsSpec.getSpecName())) { lqw.like(GoodsSpec::getSpecName, goodsSpec.getSpecName()); @@ -101,7 +104,7 @@ public class GoodsSpecController extends BaseController { @Log(title = "商品规格", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(UsernamePasswordAuthenticationToken token, @RequestBody GoodsSpec goodsSpec) { - goodsSpec.setDeptId(getDeptId(token)); + goodsSpec.setDeptId(getDeptId()); return toAjax(iWineryGoodsSpecService.save(goodsSpec) ? 1 : 0); } @@ -112,6 +115,7 @@ public class GoodsSpecController extends BaseController { @Log(title = "商品规格", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody GoodsSpec goodsSpec) { + goodsSpec.setUpdateBy(getUsername()); return toAjax(iWineryGoodsSpecService.updateById(goodsSpec) ? 1 : 0); } diff --git a/hope-winery/src/main/java/com/ruoyi/winery/controller/mini/MiniController.java b/hope-winery/src/main/java/com/ruoyi/winery/controller/mini/MiniUserController.java similarity index 85% rename from hope-winery/src/main/java/com/ruoyi/winery/controller/mini/MiniController.java rename to hope-winery/src/main/java/com/ruoyi/winery/controller/mini/MiniUserController.java index 43c3702df..03151ec49 100644 --- a/hope-winery/src/main/java/com/ruoyi/winery/controller/mini/MiniController.java +++ b/hope-winery/src/main/java/com/ruoyi/winery/controller/mini/MiniUserController.java @@ -5,6 +5,7 @@ import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.annotation.RepeatSubmit; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.enums.BusinessType; @@ -23,14 +24,16 @@ import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.stream.Collectors; +import static com.ruoyi.winery.define.MiniDefine.MINI_USER_SYMBOL; + /** * @author tottimctj * @since 2020-11-10 */ @RestController -@RequestMapping("/winery/mini") +@RequestMapping("/winery/mini/user") @Slf4j -public class MiniController { +public class MiniUserController { @Autowired @@ -66,35 +69,31 @@ public class MiniController { } /** - * 通过微信api授权获取手机号并注册 + * 小程序进行注册用户 * * @param json * @return */ - @Log(title = "发送小程序手机号码并注册", businessType = BusinessType.OTHER) - @PostMapping("/registrationByMiniMobile") + @Log(title = "小程序进行注册用户", businessType = BusinessType.OTHER) + @PostMapping("/registrationByMini") + @RepeatSubmit AjaxResult postMobileRegistration(@RequestBody JSONObject json) { - String mobile = miniComponent.getMobile(json); - if (StrUtil.isBlank(mobile)) { - return AjaxResult.error("获取失败!"); - } - JSONObject rsp = new JSONObject(); - rsp.set("mobile", mobile); String openid = json.getStr("openid"); - return miniComponent.registration(openid, mobile); + String mobile = json.getStr("mobile"); + Long deptId = json.getLong("deptId"); + String nickName = json.getJSONObject("userInfo").getStr("nickName"); + return miniComponent.registration(openid, mobile, nickName, deptId); } - @Log(title = "微信小程序登录", businessType = BusinessType.OTHER) + @Log(title = "微信小程序登录换取openid", businessType = BusinessType.OTHER) @GetMapping("/getSession") - public AjaxResult getSession(@RequestParam("code") String code) throws WxErrorException { - - WxMaJscode2SessionResult sessionInfo = miniComponent.login(code); - + public AjaxResult getSession(@RequestParam("code") String code, @RequestParam("deptId") Long deptId) throws WxErrorException { + WxMaJscode2SessionResult sessionInfo = miniComponent.login(code, deptId); JSONObject json = new JSONObject(); json.set("openid", sessionInfo.getOpenid()); - log.info("微信小程序获取openid信息成功"); + log.info("微信小程序获取openid信息成功:{}", sessionInfo.getOpenid()); return AjaxResult.success(json); } @@ -104,8 +103,9 @@ public class MiniController { @PostMapping("/loginByMini") public AjaxResult loginByMini(@RequestBody JSONObject json) { AjaxResult ajax = AjaxResult.success(); + String userAccount = MINI_USER_SYMBOL + json.getStr("openid") + "-" + json.getLong("deptId"); // 生成令牌 - String token = miniComponent.loginByMini(json.getStr("openid")); + String token = miniComponent.loginByMini(userAccount); ajax.put(Constants.TOKEN, token); return ajax; } diff --git a/hope-winery/src/main/java/com/ruoyi/winery/controller/mini/TestController.java b/hope-winery/src/main/java/com/ruoyi/winery/controller/mini/TestController.java index 30194ebb0..06b09d933 100644 --- a/hope-winery/src/main/java/com/ruoyi/winery/controller/mini/TestController.java +++ b/hope-winery/src/main/java/com/ruoyi/winery/controller/mini/TestController.java @@ -1,97 +1,97 @@ -package com.ruoyi.winery.controller.mini; - -import com.itextpdf.io.font.FontProgram; -import com.itextpdf.io.font.FontProgramFactory; -import com.itextpdf.io.font.PdfEncodings; -import com.itextpdf.io.image.ImageDataFactory; -import com.itextpdf.kernel.font.PdfFont; -import com.itextpdf.kernel.font.PdfFontFactory; -import com.itextpdf.kernel.geom.PageSize; -import com.itextpdf.kernel.geom.Rectangle; -import com.itextpdf.kernel.pdf.PdfDocument; -import com.itextpdf.kernel.pdf.PdfWriter; -import com.itextpdf.kernel.pdf.xobject.PdfImageXObject; -import com.itextpdf.layout.Document; -import com.itextpdf.layout.element.Paragraph; -import com.itextpdf.layout.element.Text; -import com.itextpdf.layout.property.BackgroundImage; -import com.itextpdf.layout.property.TextAlignment; -import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import java.io.File; -import java.io.FileOutputStream; - -/** - * @author tottimctj - * @since 2020-11-10 - */ -@RestController -@RequestMapping("/winery/test") -@Slf4j -public class TestController { - - public static final String REGULAR = - "classpath:/fonts/PingFang_Heavy.ttf"; - - - public static void main(String[] args) throws Exception { - - FontProgram fontProgram = - FontProgramFactory.createFont(REGULAR); - - - String path = "/Users/tottimctj/Downloads/temp.pdf"; - - PdfFont font = PdfFontFactory.createFont("STSongStd-Light", "UniGB-UCS2-H", false); - PdfFont font2 = PdfFontFactory.createFont( - fontProgram, PdfEncodings.IDENTITY_H, true); - - PdfWriter writer = new PdfWriter(new FileOutputStream(new File(path))); - PdfDocument pdf = new PdfDocument(writer); - Document document = new Document(pdf, new PageSize(500f,505f)); - document.setMargins(0, 0, 0, 0); - Paragraph p = new Paragraph(); - p.setMarginTop(0); - p.setHeight(500); - p.setWidth(500); - p.setFontSize(25); -// Text text1 = new Text("字体1希望软件!").setFont(font); +//package com.ruoyi.winery.controller.mini; // -// text1.setTextAlignment(TextAlignment.CENTER); -// text1.setRelativePosition(200, 200, 200, 200); -// p.add(text1); - - Text text2 = new Text("字体2希望软件!").setFont(font2); - text2.setTextAlignment(TextAlignment.CENTER); - text2.setRelativePosition(0, 200, 0, 0); - p.add(text2); - -// p.setBorder(new SolidBorder(DeviceGray.BLACK,0.5f));//边框 -// p.setBackgroundColor(ColorConstants.GREEN);//绿色你懂的 - - -// Image image = new Image(ImageDataFactory.create("https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=28918940,1444141489&fm=26&gp=0.jpg")); -// image.setHeight(300); -// image.setWidth(200); -// BackgroundSize backgroundSize = new BackgroundSize(); - - - PdfImageXObject imageXObject = new PdfImageXObject(ImageDataFactory.create("https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=28918940,1444141489&fm=26&gp=0.jpg")); - - BackgroundImage backgroundImage = new BackgroundImage(imageXObject); - p.setBackgroundImage(backgroundImage); - - - document.add(p); - - - document.close(); - writer.close(); - pdf.close(); - - - } - -} +//import com.itextpdf.io.font.FontProgram; +//import com.itextpdf.io.font.FontProgramFactory; +//import com.itextpdf.io.font.PdfEncodings; +//import com.itextpdf.io.image.ImageDataFactory; +//import com.itextpdf.kernel.font.PdfFont; +//import com.itextpdf.kernel.font.PdfFontFactory; +//import com.itextpdf.kernel.geom.PageSize; +//import com.itextpdf.kernel.geom.Rectangle; +//import com.itextpdf.kernel.pdf.PdfDocument; +//import com.itextpdf.kernel.pdf.PdfWriter; +//import com.itextpdf.kernel.pdf.xobject.PdfImageXObject; +//import com.itextpdf.layout.Document; +//import com.itextpdf.layout.element.Paragraph; +//import com.itextpdf.layout.element.Text; +//import com.itextpdf.layout.property.BackgroundImage; +//import com.itextpdf.layout.property.TextAlignment; +//import lombok.extern.slf4j.Slf4j; +//import org.springframework.web.bind.annotation.RequestMapping; +//import org.springframework.web.bind.annotation.RestController; +// +//import java.io.File; +//import java.io.FileOutputStream; +// +///** +// * @author tottimctj +// * @since 2020-11-10 +// */ +//@RestController +//@RequestMapping("/winery/test") +//@Slf4j +//public class TestController { +// +// public static final String REGULAR = +// "classpath:/fonts/PingFang_Heavy.ttf"; +// +// +// public static void main(String[] args) throws Exception { +// +// FontProgram fontProgram = +// FontProgramFactory.createFont(REGULAR); +// +// +// String path = "/Users/tottimctj/Downloads/temp.pdf"; +// +// PdfFont font = PdfFontFactory.createFont("STSongStd-Light", "UniGB-UCS2-H", false); +// PdfFont font2 = PdfFontFactory.createFont( +// fontProgram, PdfEncodings.IDENTITY_H, true); +// +// PdfWriter writer = new PdfWriter(new FileOutputStream(new File(path))); +// PdfDocument pdf = new PdfDocument(writer); +// Document document = new Document(pdf, new PageSize(500f,505f)); +// document.setMargins(0, 0, 0, 0); +// Paragraph p = new Paragraph(); +// p.setMarginTop(0); +// p.setHeight(500); +// p.setWidth(500); +// p.setFontSize(25); +//// Text text1 = new Text("字体1希望软件!").setFont(font); +//// +//// text1.setTextAlignment(TextAlignment.CENTER); +//// text1.setRelativePosition(200, 200, 200, 200); +//// p.add(text1); +// +// Text text2 = new Text("字体2希望软件!").setFont(font2); +// text2.setTextAlignment(TextAlignment.CENTER); +// text2.setRelativePosition(0, 200, 0, 0); +// p.add(text2); +// +//// p.setBorder(new SolidBorder(DeviceGray.BLACK,0.5f));//边框 +//// p.setBackgroundColor(ColorConstants.GREEN);//绿色你懂的 +// +// +//// Image image = new Image(ImageDataFactory.create("https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=28918940,1444141489&fm=26&gp=0.jpg")); +//// image.setHeight(300); +//// image.setWidth(200); +//// BackgroundSize backgroundSize = new BackgroundSize(); +// +// +// PdfImageXObject imageXObject = new PdfImageXObject(ImageDataFactory.create("https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=28918940,1444141489&fm=26&gp=0.jpg")); +// +// BackgroundImage backgroundImage = new BackgroundImage(imageXObject); +// p.setBackgroundImage(backgroundImage); +// +// +// document.add(p); +// +// +// document.close(); +// writer.close(); +// pdf.close(); +// +// +// } +// +//} diff --git a/hope-winery/src/main/java/com/ruoyi/winery/controller/winery/WineryFoodSafetyController.java b/hope-winery/src/main/java/com/ruoyi/winery/controller/winery/WineryFoodSafetyController.java index 72290ac19..35684b158 100644 --- a/hope-winery/src/main/java/com/ruoyi/winery/controller/winery/WineryFoodSafetyController.java +++ b/hope-winery/src/main/java/com/ruoyi/winery/controller/winery/WineryFoodSafetyController.java @@ -27,6 +27,9 @@ import com.ruoyi.winery.service.IWineryFoodSafetyService; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.core.page.TableDataInfo; +import static com.ruoyi.common.utils.SecurityUtils.getDeptId; +import static com.ruoyi.common.utils.SecurityUtils.getUsername; + /** * 食品安全详情Controller * @@ -118,6 +121,8 @@ public class WineryFoodSafetyController extends BaseController { @Log(title = "食品安全详情" , businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody WineryFoodSafety wineryFoodSafety) { + wineryFoodSafety.setCreateBy(getUsername()); + wineryFoodSafety.setDeptId(getDeptId()); return toAjax(iWineryFoodSafetyService.save(wineryFoodSafety) ? 1 : 0); } @@ -128,6 +133,7 @@ public class WineryFoodSafetyController extends BaseController { @Log(title = "食品安全详情" , businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody WineryFoodSafety wineryFoodSafety) { + wineryFoodSafety.setUpdateBy(getUsername()); return toAjax(iWineryFoodSafetyService.updateById(wineryFoodSafety) ? 1 : 0); } diff --git a/hope-winery/src/main/java/com/ruoyi/winery/controller/winery/WineryMauserController.java b/hope-winery/src/main/java/com/ruoyi/winery/controller/winery/WineryMauserController.java index 60c4a58ab..0a7a5ab1c 100644 --- a/hope-winery/src/main/java/com/ruoyi/winery/controller/winery/WineryMauserController.java +++ b/hope-winery/src/main/java/com/ruoyi/winery/controller/winery/WineryMauserController.java @@ -27,15 +27,18 @@ import com.ruoyi.winery.service.IWineryMauserService; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.core.page.TableDataInfo; +import static com.ruoyi.common.utils.SecurityUtils.getDeptId; +import static com.ruoyi.common.utils.SecurityUtils.isAdmin; + /** * 小程序用户Controller - * + * * @author ruoyi * @date 2020-12-17 */ @RequiredArgsConstructor(onConstructor_ = @Autowired) @RestController -@RequestMapping("/winery/winery_mauser" ) +@RequestMapping("/winery/winery_mauser") public class WineryMauserController extends BaseController { private final IWineryMauserService iWineryMauserService; @@ -45,28 +48,31 @@ public class WineryMauserController extends BaseController { */ @PreAuthorize("@ss.hasPermi('winery:winery_mauser:list')") @GetMapping("/list") - public TableDataInfo list(WineryMauser wineryMauser) - { + public TableDataInfo list(WineryMauser wineryMauser) { startPage(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(wineryMauser); - if (StringUtils.isNotBlank(wineryMauser.getStatus())){ - lqw.eq(WineryMauser::getStatus ,wineryMauser.getStatus()); + + lqw.eq(!isAdmin(),WineryMauser::getDeptId, getDeptId()); + + if (wineryMauser.getStatus() != null) { + lqw.eq(WineryMauser::getStatus, wineryMauser.getStatus()); } - if (StringUtils.isNotBlank(wineryMauser.getMobile())){ - lqw.eq(WineryMauser::getMobile ,wineryMauser.getMobile()); + if (StringUtils.isNotBlank(wineryMauser.getMobile())) { + lqw.eq(WineryMauser::getMobile, wineryMauser.getMobile()); } - if (StringUtils.isNotBlank(wineryMauser.getNickName())){ - lqw.like(WineryMauser::getNickName ,wineryMauser.getNickName()); + if (StringUtils.isNotBlank(wineryMauser.getNickName())) { + lqw.like(WineryMauser::getNickName, wineryMauser.getNickName()); } - if (StringUtils.isNotBlank(wineryMauser.getUnionId())){ - lqw.eq(WineryMauser::getUnionId ,wineryMauser.getUnionId()); + if (StringUtils.isNotBlank(wineryMauser.getUnionId())) { + lqw.eq(WineryMauser::getUnionId, wineryMauser.getUnionId()); } - if (wineryMauser.getCreateTime() != null){ - lqw.eq(WineryMauser::getCreateTime ,wineryMauser.getCreateTime()); - } - if (StringUtils.isNotBlank(wineryMauser.getDeptId())){ - lqw.eq(WineryMauser::getDeptId ,wineryMauser.getDeptId()); + if (wineryMauser.getCreateTime() != null) { + lqw.eq(WineryMauser::getCreateTime, wineryMauser.getCreateTime()); } + + + lqw.eq(!isAdmin(), WineryMauser::getDeptId, getDeptId()); + List list = iWineryMauserService.list(lqw); return getDataTable(list); } @@ -74,40 +80,40 @@ public class WineryMauserController extends BaseController { /** * 导出小程序用户列表 */ - @PreAuthorize("@ss.hasPermi('winery:winery_mauser:export')" ) - @Log(title = "小程序用户" , businessType = BusinessType.EXPORT) - @GetMapping("/export" ) + @PreAuthorize("@ss.hasPermi('winery:winery_mauser:export')") + @Log(title = "小程序用户", businessType = BusinessType.EXPORT) + @GetMapping("/export") public AjaxResult export(WineryMauser wineryMauser) { LambdaQueryWrapper lqw = new LambdaQueryWrapper(wineryMauser); List list = iWineryMauserService.list(lqw); - ExcelUtil util = new ExcelUtil(WineryMauser. class); - return util.exportExcel(list, "winery_mauser" ); + ExcelUtil util = new ExcelUtil(WineryMauser.class); + return util.exportExcel(list, "winery_mauser"); } /** * 获取小程序用户详细信息 */ - @PreAuthorize("@ss.hasPermi('winery:winery_mauser:query')" ) - @GetMapping(value = "/{openId}" ) - public AjaxResult getInfo(@PathVariable("openId" ) String openId) { + @PreAuthorize("@ss.hasPermi('winery:winery_mauser:query')") + @GetMapping(value = "/{openId}") + public AjaxResult getInfo(@PathVariable("openId") String openId) { return AjaxResult.success(iWineryMauserService.getById(openId)); } - /** - * 新增小程序用户 - */ - @PreAuthorize("@ss.hasPermi('winery:winery_mauser:add')" ) - @Log(title = "小程序用户" , businessType = BusinessType.INSERT) - @PostMapping - public AjaxResult add(@RequestBody WineryMauser wineryMauser) { - return toAjax(iWineryMauserService.save(wineryMauser) ? 1 : 0); - } +// /** +// * 新增小程序用户 +// */ +// @PreAuthorize("@ss.hasPermi('winery:winery_mauser:add')") +// @Log(title = "小程序用户", businessType = BusinessType.INSERT) +// @PostMapping +// public AjaxResult add(@RequestBody WineryMauser wineryMauser) { +// return toAjax(iWineryMauserService.save(wineryMauser) ? 1 : 0); +// } /** * 修改小程序用户 */ - @PreAuthorize("@ss.hasPermi('winery:winery_mauser:edit')" ) - @Log(title = "小程序用户" , businessType = BusinessType.UPDATE) + @PreAuthorize("@ss.hasPermi('winery:winery_mauser:edit')") + @Log(title = "小程序用户", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody WineryMauser wineryMauser) { return toAjax(iWineryMauserService.updateById(wineryMauser) ? 1 : 0); @@ -116,9 +122,9 @@ public class WineryMauserController extends BaseController { /** * 删除小程序用户 */ - @PreAuthorize("@ss.hasPermi('winery:winery_mauser:remove')" ) - @Log(title = "小程序用户" , businessType = BusinessType.DELETE) - @DeleteMapping("/{openIds}" ) + @PreAuthorize("@ss.hasPermi('winery:winery_mauser:remove')") + @Log(title = "小程序用户", businessType = BusinessType.DELETE) + @DeleteMapping("/{openIds}") public AjaxResult remove(@PathVariable String[] openIds) { return toAjax(iWineryMauserService.removeByIds(Arrays.asList(openIds)) ? 1 : 0); } diff --git a/hope-winery/src/main/java/com/ruoyi/winery/controller/winery/WineryOrdersController.java b/hope-winery/src/main/java/com/ruoyi/winery/controller/winery/WineryOrdersController.java index b81c2c7d4..359d1643c 100644 --- a/hope-winery/src/main/java/com/ruoyi/winery/controller/winery/WineryOrdersController.java +++ b/hope-winery/src/main/java/com/ruoyi/winery/controller/winery/WineryOrdersController.java @@ -7,6 +7,7 @@ import java.util.List; import java.util.Arrays; import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.winery.domain.goods.GoodsSpec; import lombok.RequiredArgsConstructor; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; @@ -27,6 +28,8 @@ import com.ruoyi.winery.service.IWineryOrdersService; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.core.page.TableDataInfo; +import static com.ruoyi.common.utils.SecurityUtils.*; + /** * 客户订单Controller * @@ -49,9 +52,9 @@ public class WineryOrdersController extends BaseController { { startPage(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(wineryOrders); - if (wineryOrders.getDeptId() != null){ - lqw.eq(WineryOrders::getDeptId ,wineryOrders.getDeptId()); - } + + lqw.eq(!isAdmin(), WineryOrders::getDeptId, getDeptId()); + if (wineryOrders.getGoodsId() != null){ lqw.eq(WineryOrders::getGoodsId ,wineryOrders.getGoodsId()); } @@ -109,6 +112,8 @@ public class WineryOrdersController extends BaseController { @Log(title = "客户订单" , businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody WineryOrders wineryOrders) { + wineryOrders.setCreateBy(getUsername()); + wineryOrders.setDeptId(getDeptId()); return toAjax(iWineryOrdersService.save(wineryOrders) ? 1 : 0); } @@ -119,6 +124,7 @@ public class WineryOrdersController extends BaseController { @Log(title = "客户订单" , businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody WineryOrders wineryOrders) { + wineryOrders.setUpdateBy(getUsername()); return toAjax(iWineryOrdersService.updateById(wineryOrders) ? 1 : 0); } diff --git a/hope-winery/src/main/java/com/ruoyi/winery/controller/winery/WineryWineSpecDetailController.java b/hope-winery/src/main/java/com/ruoyi/winery/controller/winery/WineryWineSpecDetailController.java index b59df8d8b..5cd1b95f2 100644 --- a/hope-winery/src/main/java/com/ruoyi/winery/controller/winery/WineryWineSpecDetailController.java +++ b/hope-winery/src/main/java/com/ruoyi/winery/controller/winery/WineryWineSpecDetailController.java @@ -27,6 +27,9 @@ import com.ruoyi.winery.service.IWineryWineSpecDetailService; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.core.page.TableDataInfo; +import static com.ruoyi.common.utils.SecurityUtils.getDeptId; +import static com.ruoyi.common.utils.SecurityUtils.getUsername; + /** * 葡萄酒规格详情Controller * @@ -121,6 +124,8 @@ public class WineryWineSpecDetailController extends BaseController { @Log(title = "葡萄酒规格详情" , businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody WineryWineSpecDetail wineryWineSpecDetail) { + wineryWineSpecDetail.setCreateBy(getUsername()); + wineryWineSpecDetail.setDeptId(getDeptId()); return toAjax(iWineryWineSpecDetailService.save(wineryWineSpecDetail) ? 1 : 0); } @@ -131,6 +136,7 @@ public class WineryWineSpecDetailController extends BaseController { @Log(title = "葡萄酒规格详情" , businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody WineryWineSpecDetail wineryWineSpecDetail) { + wineryWineSpecDetail.setUpdateBy(getUsername()); return toAjax(iWineryWineSpecDetailService.updateById(wineryWineSpecDetail) ? 1 : 0); } diff --git a/hope-winery/src/main/java/com/ruoyi/winery/define/MiniDefine.java b/hope-winery/src/main/java/com/ruoyi/winery/define/MiniDefine.java index 460397efb..e7df150f0 100644 --- a/hope-winery/src/main/java/com/ruoyi/winery/define/MiniDefine.java +++ b/hope-winery/src/main/java/com/ruoyi/winery/define/MiniDefine.java @@ -8,6 +8,8 @@ public class MiniDefine { public static final String MINI_MANAGE_USER = "admin"; + public static final String MINI_USER_SYMBOL = "mini-"; + public static final Long MINI_DEPTID = 100L; public static final String MINI_DEFUALT_PASSWORD = "Xiao4rHospSoft"; diff --git a/hope-winery/src/main/java/com/ruoyi/winery/domain/winery/WineryMauser.java b/hope-winery/src/main/java/com/ruoyi/winery/domain/winery/WineryMauser.java index deef9752e..970baf947 100644 --- a/hope-winery/src/main/java/com/ruoyi/winery/domain/winery/WineryMauser.java +++ b/hope-winery/src/main/java/com/ruoyi/winery/domain/winery/WineryMauser.java @@ -1,6 +1,7 @@ package com.ruoyi.winery.domain.winery; import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.core.domain.entity.SysUser; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; @@ -32,14 +33,17 @@ public class WineryMauser implements Serializable { private static final long serialVersionUID=1L; + /** 小程序userid */ + @TableId(value = "id",type = IdType.ASSIGN_UUID) + private String id; + /** 小程序userid */ @Excel(name = "小程序userid") - @TableId(value = "open_id") private String openId; /** 状态 */ @Excel(name = "状态") - private String status; + private Integer status; /** 手机号 */ @Excel(name = "手机号") @@ -63,5 +67,15 @@ private static final long serialVersionUID=1L; /** 租户id */ @Excel(name = "租户id") - private String deptId; + private Long deptId; + + + public WineryMauser(SysUser user) { + this.openId = user.getUserName(); + this.deptId = user.getDeptId(); + this.nickName = user.getNickName(); + this.mobile = user.getPhonenumber(); + this.status = 0; + + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java index 02346f12d..594c5bbe7 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java @@ -2,6 +2,7 @@ package com.ruoyi.web.controller.system; import java.util.List; import java.util.stream.Collectors; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; @@ -34,13 +35,12 @@ import com.ruoyi.system.service.ISysUserService; /** * 用户信息 - * + * * @author ruoyi */ @RestController @RequestMapping("/system/user") -public class SysUserController extends BaseController -{ +public class SysUserController extends BaseController { @Autowired private ISysUserService userService; @@ -58,8 +58,7 @@ public class SysUserController extends BaseController */ @PreAuthorize("@ss.hasPermi('system:user:list')") @GetMapping("/list") - public TableDataInfo list(SysUser user) - { + public TableDataInfo list(SysUser user) { startPage(); List list = userService.selectUserList(user); return getDataTable(list); @@ -68,8 +67,7 @@ public class SysUserController extends BaseController @Log(title = "用户管理", businessType = BusinessType.EXPORT) @PreAuthorize("@ss.hasPermi('system:user:export')") @GetMapping("/export") - public AjaxResult export(SysUser user) - { + public AjaxResult export(SysUser user) { List list = userService.selectUserList(user); ExcelUtil util = new ExcelUtil(SysUser.class); return util.exportExcel(list, "用户数据"); @@ -78,8 +76,7 @@ public class SysUserController extends BaseController @Log(title = "用户管理", businessType = BusinessType.IMPORT) @PreAuthorize("@ss.hasPermi('system:user:import')") @PostMapping("/importData") - public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception - { + public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception { ExcelUtil util = new ExcelUtil(SysUser.class); List userList = util.importExcel(file.getInputStream()); LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest()); @@ -89,8 +86,7 @@ public class SysUserController extends BaseController } @GetMapping("/importTemplate") - public AjaxResult importTemplate() - { + public AjaxResult importTemplate() { ExcelUtil util = new ExcelUtil(SysUser.class); return util.importTemplateExcel("用户数据"); } @@ -99,15 +95,13 @@ public class SysUserController extends BaseController * 根据用户编号获取详细信息 */ @PreAuthorize("@ss.hasPermi('system:user:query')") - @GetMapping(value = { "/", "/{userId}" }) - public AjaxResult getInfo(@PathVariable(value = "userId", required = false) Long userId) - { + @GetMapping(value = {"/", "/{userId}"}) + public AjaxResult getInfo(@PathVariable(value = "userId", required = false) Long userId) { AjaxResult ajax = AjaxResult.success(); List roles = roleService.selectRoleAll(); ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList())); ajax.put("posts", postService.selectPostAll()); - if (StringUtils.isNotNull(userId)) - { + if (StringUtils.isNotNull(userId)) { ajax.put(AjaxResult.DATA_TAG, userService.selectUserById(userId)); ajax.put("postIds", postService.selectPostListByUserId(userId)); ajax.put("roleIds", roleService.selectRoleListByUserId(userId)); @@ -121,20 +115,17 @@ public class SysUserController extends BaseController @PreAuthorize("@ss.hasPermi('system:user:add')") @Log(title = "用户管理", businessType = BusinessType.INSERT) @PostMapping - public AjaxResult add(@Validated @RequestBody SysUser user) - { - if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user.getUserName()))) - { + public AjaxResult add(@Validated @RequestBody SysUser user) { + if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user.getUserName()))) { return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,登录账号已存在"); } - else if (StringUtils.isNotEmpty(user.getPhonenumber()) + /* else if (StringUtils.isNotEmpty(user.getPhonenumber()) && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user))) { return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,手机号码已存在"); - } + }*/ else if (StringUtils.isNotEmpty(user.getEmail()) - && UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user))) - { + && UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user))) { return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,邮箱账号已存在"); } user.setCreateBy(SecurityUtils.getUsername()); @@ -148,17 +139,16 @@ public class SysUserController extends BaseController @PreAuthorize("@ss.hasPermi('system:user:edit')") @Log(title = "用户管理", businessType = BusinessType.UPDATE) @PutMapping - public AjaxResult edit(@Validated @RequestBody SysUser user) - { + public AjaxResult edit(@Validated @RequestBody SysUser user) { userService.checkUserAllowed(user); - if (StringUtils.isNotEmpty(user.getPhonenumber()) +/* if (StringUtils.isNotEmpty(user.getPhonenumber()) && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user))) { return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,手机号码已存在"); } - else if (StringUtils.isNotEmpty(user.getEmail()) - && UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user))) - { + else*/ + if (StringUtils.isNotEmpty(user.getEmail()) + && UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user))) { return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在"); } user.setUpdateBy(SecurityUtils.getUsername()); @@ -171,8 +161,7 @@ public class SysUserController extends BaseController @PreAuthorize("@ss.hasPermi('system:user:remove')") @Log(title = "用户管理", businessType = BusinessType.DELETE) @DeleteMapping("/{userIds}") - public AjaxResult remove(@PathVariable Long[] userIds) - { + public AjaxResult remove(@PathVariable Long[] userIds) { return toAjax(userService.deleteUserByIds(userIds)); } @@ -182,8 +171,7 @@ public class SysUserController extends BaseController @PreAuthorize("@ss.hasPermi('system:user:resetPwd')") @Log(title = "用户管理", businessType = BusinessType.UPDATE) @PutMapping("/resetPwd") - public AjaxResult resetPwd(@RequestBody SysUser user) - { + public AjaxResult resetPwd(@RequestBody SysUser user) { userService.checkUserAllowed(user); user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); user.setUpdateBy(SecurityUtils.getUsername()); @@ -196,8 +184,7 @@ public class SysUserController extends BaseController @PreAuthorize("@ss.hasPermi('system:user:edit')") @Log(title = "用户管理", businessType = BusinessType.UPDATE) @PutMapping("/changeStatus") - public AjaxResult changeStatus(@RequestBody SysUser user) - { + public AjaxResult changeStatus(@RequestBody SysUser user) { userService.checkUserAllowed(user); user.setUpdateBy(SecurityUtils.getUsername()); return toAjax(userService.updateUserStatus(user)); diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java index fa8a08eab..ba8aa5455 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java @@ -96,19 +96,4 @@ public class BaseController return StringUtils.format("redirect:{}", url); } - - /** - * 获取部门Id - * @param token - * @return - */ - public Long getDeptId(UsernamePasswordAuthenticationToken token) { - JSONObject json = (JSONObject) JSONUtil.parse(token.getPrincipal()); - - Long deptId = json.getJSONObject("user") - .getJSONObject("dept") - .getLong("deptId"); - - return deptId; - } } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/filter/XssFilter.java b/ruoyi-common/src/main/java/com/ruoyi/common/filter/XssFilter.java index b3df122ec..a649738b1 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/filter/XssFilter.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/filter/XssFilter.java @@ -13,13 +13,17 @@ import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; + +import cn.hutool.core.util.StrUtil; import com.ruoyi.common.utils.StringUtils; +import lombok.extern.slf4j.Slf4j; /** * 防止XSS攻击的过滤器 * * @author ruoyi */ +@Slf4j public class XssFilter implements Filter { /** @@ -57,6 +61,7 @@ public class XssFilter implements Filter { HttpServletRequest req = (HttpServletRequest) request; HttpServletResponse resp = (HttpServletResponse) response; + if (handleExcludeURL(req, resp)) { chain.doFilter(request, response); @@ -94,4 +99,6 @@ public class XssFilter implements Filter { } + + } \ No newline at end of file diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java index aec57768c..3136d5ed8 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java @@ -9,22 +9,17 @@ import com.ruoyi.common.exception.CustomException; /** * 安全服务工具类 - * + * * @author ruoyi */ -public class SecurityUtils -{ +public class SecurityUtils { /** * 获取用户账户 **/ - public static String getUsername() - { - try - { + public static String getUsername() { + try { return getLoginUser().getUsername(); - } - catch (Exception e) - { + } catch (Exception e) { throw new CustomException("获取用户账户异常", HttpStatus.UNAUTHORIZED); } } @@ -32,14 +27,10 @@ public class SecurityUtils /** * 获取用户 **/ - public static LoginUser getLoginUser() - { - try - { + public static LoginUser getLoginUser() { + try { return (LoginUser) getAuthentication().getPrincipal(); - } - catch (Exception e) - { + } catch (Exception e) { throw new CustomException("获取用户信息异常", HttpStatus.UNAUTHORIZED); } } @@ -47,8 +38,7 @@ public class SecurityUtils /** * 获取Authentication */ - public static Authentication getAuthentication() - { + public static Authentication getAuthentication() { return SecurityContextHolder.getContext().getAuthentication(); } @@ -58,8 +48,7 @@ public class SecurityUtils * @param password 密码 * @return 加密字符串 */ - public static String encryptPassword(String password) - { + public static String encryptPassword(String password) { BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder(); return passwordEncoder.encode(password); } @@ -67,24 +56,44 @@ public class SecurityUtils /** * 判断密码是否相同 * - * @param rawPassword 真实密码 + * @param rawPassword 真实密码 * @param encodedPassword 加密后字符 * @return 结果 */ - public static boolean matchesPassword(String rawPassword, String encodedPassword) - { + public static boolean matchesPassword(String rawPassword, String encodedPassword) { BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder(); return passwordEncoder.matches(rawPassword, encodedPassword); } /** * 是否为管理员 - * + * * @param userId 用户ID * @return 结果 */ - public static boolean isAdmin(Long userId) - { + public static boolean isAdmin(Long userId) { return userId != null && 1L == userId; } + + + /** + * 是否为管理员 + * + * @return 结果 + */ + public static boolean isAdmin() { + return getLoginUser().getUser() != null && 1L == getLoginUser().getUser().getUserId(); + } + + + /** + * 获取用户账户 + **/ + public static Long getDeptId() { + try { + return getLoginUser().getUser().getDeptId(); + } catch (Exception e) { + throw new CustomException("获取用户部门信息异常", HttpStatus.UNAUTHORIZED); + } + } } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java index c563d8081..6df85264a 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java @@ -114,7 +114,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter .antMatchers("/webjars/**").anonymous() .antMatchers("/*/api-docs").anonymous() .antMatchers("/druid/**").anonymous() - .antMatchers("/winery/mini/**").anonymous() + .antMatchers("/winery/mini/user/**").permitAll() // 除上面外的所有请求全部需要鉴权认证 .anyRequest().authenticated() .and() @@ -125,6 +125,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter // 添加CORS filter httpSecurity.addFilterBefore(corsFilter, JwtAuthenticationTokenFilter.class); httpSecurity.addFilterBefore(corsFilter, LogoutFilter.class); + } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/RepeatSubmitInterceptor.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/RepeatSubmitInterceptor.java index d310382f8..4a9ec494e 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/RepeatSubmitInterceptor.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/RepeatSubmitInterceptor.java @@ -3,6 +3,9 @@ package com.ruoyi.framework.interceptor; import java.lang.reflect.Method; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; + +import cn.hutool.core.util.StrUtil; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import org.springframework.web.method.HandlerMethod; import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; @@ -17,11 +20,15 @@ import com.ruoyi.common.utils.ServletUtils; * @author ruoyi */ @Component +@Slf4j public abstract class RepeatSubmitInterceptor extends HandlerInterceptorAdapter { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { + + log.info("访问:{},来自:{}", request.getRequestURI(), getRequestIp(request)); + if (handler instanceof HandlerMethod) { HandlerMethod handlerMethod = (HandlerMethod) handler; @@ -52,4 +59,35 @@ public abstract class RepeatSubmitInterceptor extends HandlerInterceptorAdapter * @throws Exception */ public abstract boolean isRepeatSubmit(HttpServletRequest request); + + + /** + * 获取请求的源ip + * + * @param request http请求 + * @return 请求的源ip + */ + private String getRequestIp(HttpServletRequest request) { + if (request == null) { + return StrUtil.EMPTY; + } + String ip = request.getHeader("x-forwarded-for"); + String unknown = "unknown"; + if (ip == null || ip.length() == 0 || unknown.equalsIgnoreCase(ip)) { + ip = request.getHeader("Proxy-Client-IP"); + } + if (ip == null || ip.length() == 0 || unknown.equalsIgnoreCase(ip)) { + ip = request.getHeader("WL-Proxy-Client-IP"); + } + if (ip == null || ip.length() == 0 || unknown.equalsIgnoreCase(ip)) { + ip = request.getHeader("HTTP_CLIENT_IP"); + } + if (ip == null || ip.length() == 0 || unknown.equalsIgnoreCase(ip)) { + ip = request.getHeader("HTTP_X_FORWARDED_FOR"); + } + if (ip == null || ip.length() == 0 || unknown.equalsIgnoreCase(ip)) { + ip = request.getRemoteAddr(); + } + return ip; + } } diff --git a/ruoyi-ui/src/views/winery/winery_mauser/index.vue b/ruoyi-ui/src/views/winery/winery_mauser/index.vue index 4dd0c7ce4..2b710b4bd 100644 --- a/ruoyi-ui/src/views/winery/winery_mauser/index.vue +++ b/ruoyi-ui/src/views/winery/winery_mauser/index.vue @@ -63,13 +63,13 @@ - 新增 + + + + + + + Date: Tue, 12 Jan 2021 18:04:14 +0800 Subject: [PATCH 02/62] =?UTF-8?q?=E6=B7=B7=E5=85=A5=E5=B0=8F=E7=A8=8B?= =?UTF-8?q?=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mini-app/.editorconfig | 9 + mini-app/.eslintignore | 1 + mini-app/.eslintrc.js | 32 + mini-app/.prettierrc | 3 + mini-app/.wepyignore | 4 + mini-app/package.json | 42 + mini-app/project.config.json | 112 + mini-app/src/apis/userApis.js | 65 + mini-app/src/apis/xiao4rApis.js | 38 + mini-app/src/app.wpy | 143 + mini-app/src/common/eventHub.js | 5 + mini-app/src/components/counter.wpy | 77 + mini-app/src/components/group.wpy | 41 + mini-app/src/components/groupitem.wpy | 28 + mini-app/src/components/list.wpy | 48 + mini-app/src/components/mall/mall-bbs.wpy | 108 + mini-app/src/components/mall/mall-car.wpy | 121 + mini-app/src/components/mall/mall-home.wpy | 49 + mini-app/src/components/mall/mall-my.wpy | 45 + .../src/components/mall/mall-shopping.wpy | 66 + mini-app/src/components/nav-bar.wpy | 43 + mini-app/src/components/panel.wpy | 40 + .../components/user/dialog-registration.wpy | 190 + mini-app/src/components/user/login.wpy | 49 + mini-app/src/components/wepy-list.wpy | 58 + mini-app/src/config.js | 5 + mini-app/src/js/request.js | 71 + mini-app/src/js/utils/uuid.js | 14 + mini-app/src/js/utils/validateUtils.js | 23 + mini-app/src/mixins/test.js | 19 + mini-app/src/pages/form1.wpy | 267 + mini-app/src/pages/form2.wpy | 139 + mini-app/src/pages/form3.wpy | 374 ++ mini-app/src/pages/form4.wpy | 158 + mini-app/src/pages/form5.wpy | 242 + mini-app/src/pages/form6.wpy | 204 + mini-app/src/pages/index.wpy | 180 + mini-app/src/pages/mall/goods-detail.wpy | 155 + mini-app/src/pages/mall/index.wpy | 139 + mini-app/src/static/img/index/head.png | Bin 0 -> 809208 bytes mini-app/src/store/index.js | 59 + mini-app/src/store/wineryForm.js | 37 + mini-app/src/vant/action-sheet/index.d.ts | 1 + mini-app/src/vant/action-sheet/index.js | 62 + mini-app/src/vant/action-sheet/index.json | 8 + mini-app/src/vant/action-sheet/index.wxml | 69 + mini-app/src/vant/action-sheet/index.wxss | 1 + mini-app/src/vant/area/index.d.ts | 1 + mini-app/src/vant/area/index.js | 232 + mini-app/src/vant/area/index.json | 6 + mini-app/src/vant/area/index.wxml | 20 + mini-app/src/vant/area/index.wxs | 8 + mini-app/src/vant/area/index.wxss | 1 + mini-app/src/vant/button/index.d.ts | 1 + mini-app/src/vant/button/index.js | 58 + mini-app/src/vant/button/index.json | 7 + mini-app/src/vant/button/index.wxml | 53 + mini-app/src/vant/button/index.wxs | 39 + mini-app/src/vant/button/index.wxss | 1 + mini-app/src/vant/calendar/calendar.wxml | 57 + .../calendar/components/header/index.d.ts | 1 + .../vant/calendar/components/header/index.js | 16 + .../calendar/components/header/index.json | 3 + .../calendar/components/header/index.wxml | 16 + .../calendar/components/header/index.wxss | 1 + .../vant/calendar/components/month/index.d.ts | 1 + .../vant/calendar/components/month/index.js | 157 + .../vant/calendar/components/month/index.json | 3 + .../vant/calendar/components/month/index.wxml | 39 + .../vant/calendar/components/month/index.wxs | 67 + .../vant/calendar/components/month/index.wxss | 1 + mini-app/src/vant/calendar/index.d.ts | 1 + mini-app/src/vant/calendar/index.js | 297 + mini-app/src/vant/calendar/index.json | 10 + mini-app/src/vant/calendar/index.wxml | 31 + mini-app/src/vant/calendar/index.wxs | 37 + mini-app/src/vant/calendar/index.wxss | 1 + mini-app/src/vant/calendar/utils.d.ts | 17 + mini-app/src/vant/calendar/utils.js | 78 + mini-app/src/vant/calendar/utils.wxs | 25 + mini-app/src/vant/card/index.d.ts | 1 + mini-app/src/vant/card/index.js | 49 + mini-app/src/vant/card/index.json | 6 + mini-app/src/vant/card/index.wxml | 56 + mini-app/src/vant/card/index.wxss | 1 + mini-app/src/vant/cell-group/index.d.ts | 1 + mini-app/src/vant/cell-group/index.js | 10 + mini-app/src/vant/cell-group/index.json | 3 + mini-app/src/vant/cell-group/index.wxml | 9 + mini-app/src/vant/cell-group/index.wxss | 1 + mini-app/src/vant/cell/index.d.ts | 1 + mini-app/src/vant/cell/index.js | 38 + mini-app/src/vant/cell/index.json | 6 + mini-app/src/vant/cell/index.wxml | 45 + mini-app/src/vant/cell/index.wxss | 1 + mini-app/src/vant/checkbox-group/index.d.ts | 1 + mini-app/src/vant/checkbox-group/index.js | 35 + mini-app/src/vant/checkbox-group/index.json | 3 + mini-app/src/vant/checkbox-group/index.wxml | 1 + mini-app/src/vant/checkbox-group/index.wxss | 1 + mini-app/src/vant/checkbox/index.d.ts | 1 + mini-app/src/vant/checkbox/index.js | 74 + mini-app/src/vant/checkbox/index.json | 6 + mini-app/src/vant/checkbox/index.wxml | 20 + mini-app/src/vant/checkbox/index.wxs | 20 + mini-app/src/vant/checkbox/index.wxss | 1 + mini-app/src/vant/circle/canvas.d.ts | 6 + mini-app/src/vant/circle/canvas.js | 43 + mini-app/src/vant/circle/index.d.ts | 1 + mini-app/src/vant/circle/index.js | 185 + mini-app/src/vant/circle/index.json | 3 + mini-app/src/vant/circle/index.wxml | 9 + mini-app/src/vant/circle/index.wxss | 1 + mini-app/src/vant/col/index.d.ts | 1 + mini-app/src/vant/col/index.js | 26 + mini-app/src/vant/col/index.json | 3 + mini-app/src/vant/col/index.wxml | 8 + mini-app/src/vant/col/index.wxss | 1 + mini-app/src/vant/collapse-item/animate.d.ts | 6 + mini-app/src/vant/collapse-item/animate.js | 70 + mini-app/src/vant/collapse-item/index.d.ts | 1 + mini-app/src/vant/collapse-item/index.js | 62 + mini-app/src/vant/collapse-item/index.json | 6 + mini-app/src/vant/collapse-item/index.wxml | 44 + mini-app/src/vant/collapse-item/index.wxss | 1 + mini-app/src/vant/collapse/index.d.ts | 1 + mini-app/src/vant/collapse/index.js | 47 + mini-app/src/vant/collapse/index.json | 3 + mini-app/src/vant/collapse/index.wxml | 3 + mini-app/src/vant/collapse/index.wxss | 1 + mini-app/src/vant/common/color.d.ts | 7 + mini-app/src/vant/common/color.js | 7 + mini-app/src/vant/common/component.d.ts | 3 + mini-app/src/vant/common/component.js | 106 + mini-app/src/vant/common/index.wxss | 1 + mini-app/src/vant/common/style/clearfix.wxss | 1 + mini-app/src/vant/common/style/ellipsis.wxss | 1 + mini-app/src/vant/common/style/hairline.wxss | 1 + .../vant/common/style/mixins/clearfix.wxss | 0 .../vant/common/style/mixins/ellipsis.wxss | 0 .../vant/common/style/mixins/hairline.wxss | 0 mini-app/src/vant/common/style/theme.wxss | 0 mini-app/src/vant/common/style/var.wxss | 0 mini-app/src/vant/common/utils.d.ts | 24 + mini-app/src/vant/common/utils.js | 85 + mini-app/src/vant/common/validator.d.ts | 11 + mini-app/src/vant/common/validator.js | 30 + mini-app/src/vant/common/version.d.ts | 5 + mini-app/src/vant/common/version.js | 42 + mini-app/src/vant/count-down/index.d.ts | 1 + mini-app/src/vant/count-down/index.js | 99 + mini-app/src/vant/count-down/index.json | 3 + mini-app/src/vant/count-down/index.wxml | 4 + mini-app/src/vant/count-down/index.wxss | 1 + mini-app/src/vant/count-down/utils.d.ts | 10 + mini-app/src/vant/count-down/utils.js | 53 + mini-app/src/vant/datetime-picker/index.d.ts | 1 + mini-app/src/vant/datetime-picker/index.js | 324 ++ mini-app/src/vant/datetime-picker/index.json | 6 + mini-app/src/vant/datetime-picker/index.wxml | 16 + mini-app/src/vant/datetime-picker/index.wxss | 1 + mini-app/src/vant/definitions/index.d.ts | 31 + mini-app/src/vant/definitions/index.js | 1 + mini-app/src/vant/definitions/weapp.d.ts | 77 + mini-app/src/vant/definitions/weapp.js | 1 + mini-app/src/vant/dialog/dialog.d.ts | 80 + mini-app/src/vant/dialog/dialog.js | 84 + mini-app/src/vant/dialog/index.d.ts | 1 + mini-app/src/vant/dialog/index.js | 121 + mini-app/src/vant/dialog/index.json | 9 + mini-app/src/vant/dialog/index.wxml | 113 + mini-app/src/vant/dialog/index.wxss | 1 + mini-app/src/vant/divider/index.d.ts | 1 + mini-app/src/vant/divider/index.js | 33 + mini-app/src/vant/divider/index.json | 4 + mini-app/src/vant/divider/index.wxml | 8 + mini-app/src/vant/divider/index.wxss | 1 + mini-app/src/vant/dropdown-item/index.d.ts | 1 + mini-app/src/vant/dropdown-item/index.js | 109 + mini-app/src/vant/dropdown-item/index.json | 8 + mini-app/src/vant/dropdown-item/index.wxml | 48 + mini-app/src/vant/dropdown-item/index.wxss | 1 + mini-app/src/vant/dropdown-item/shared.d.ts | 5 + mini-app/src/vant/dropdown-item/shared.js | 1 + mini-app/src/vant/dropdown-menu/index.d.ts | 1 + mini-app/src/vant/dropdown-menu/index.js | 119 + mini-app/src/vant/dropdown-menu/index.json | 3 + mini-app/src/vant/dropdown-menu/index.wxml | 23 + mini-app/src/vant/dropdown-menu/index.wxs | 16 + mini-app/src/vant/dropdown-menu/index.wxss | 1 + mini-app/src/vant/empty/index.d.ts | 1 + mini-app/src/vant/empty/index.js | 20 + mini-app/src/vant/empty/index.json | 4 + mini-app/src/vant/empty/index.wxml | 21 + mini-app/src/vant/empty/index.wxss | 1 + mini-app/src/vant/field/index.d.ts | 1 + mini-app/src/vant/field/index.js | 122 + mini-app/src/vant/field/index.json | 7 + mini-app/src/vant/field/index.wxml | 107 + mini-app/src/vant/field/index.wxs | 21 + mini-app/src/vant/field/index.wxss | 1 + mini-app/src/vant/field/props.d.ts | 62 + mini-app/src/vant/field/props.js | 63 + .../src/vant/goods-action-button/index.d.ts | 1 + .../src/vant/goods-action-button/index.js | 41 + .../src/vant/goods-action-button/index.json | 6 + .../src/vant/goods-action-button/index.wxml | 30 + .../src/vant/goods-action-button/index.wxss | 1 + .../src/vant/goods-action-icon/index.d.ts | 1 + mini-app/src/vant/goods-action-icon/index.js | 22 + .../src/vant/goods-action-icon/index.json | 7 + .../src/vant/goods-action-icon/index.wxml | 35 + .../src/vant/goods-action-icon/index.wxss | 1 + mini-app/src/vant/goods-action/index.d.ts | 1 + mini-app/src/vant/goods-action/index.js | 32 + mini-app/src/vant/goods-action/index.json | 3 + mini-app/src/vant/goods-action/index.wxml | 5 + mini-app/src/vant/goods-action/index.wxss | 1 + mini-app/src/vant/grid-item/index.d.ts | 1 + mini-app/src/vant/grid-item/index.js | 59 + mini-app/src/vant/grid-item/index.json | 6 + mini-app/src/vant/grid-item/index.wxml | 27 + mini-app/src/vant/grid-item/index.wxs | 32 + mini-app/src/vant/grid-item/index.wxss | 1 + mini-app/src/vant/grid/index.d.ts | 1 + mini-app/src/vant/grid/index.js | 53 + mini-app/src/vant/grid/index.json | 3 + mini-app/src/vant/grid/index.wxml | 8 + mini-app/src/vant/grid/index.wxs | 13 + mini-app/src/vant/grid/index.wxss | 1 + mini-app/src/vant/icon/index.d.ts | 1 + mini-app/src/vant/icon/index.js | 20 + mini-app/src/vant/icon/index.json | 6 + mini-app/src/vant/icon/index.wxml | 20 + mini-app/src/vant/icon/index.wxs | 39 + mini-app/src/vant/icon/index.wxss | 1 + mini-app/src/vant/image/index.d.ts | 1 + mini-app/src/vant/image/index.js | 61 + mini-app/src/vant/image/index.json | 7 + mini-app/src/vant/image/index.wxml | 34 + mini-app/src/vant/image/index.wxs | 32 + mini-app/src/vant/image/index.wxss | 1 + mini-app/src/vant/index-anchor/index.d.ts | 1 + mini-app/src/vant/index-anchor/index.js | 28 + mini-app/src/vant/index-anchor/index.json | 3 + mini-app/src/vant/index-anchor/index.wxml | 14 + mini-app/src/vant/index-anchor/index.wxss | 1 + mini-app/src/vant/index-bar/index.d.ts | 1 + mini-app/src/vant/index-bar/index.js | 252 + mini-app/src/vant/index-bar/index.json | 3 + mini-app/src/vant/index-bar/index.wxml | 22 + mini-app/src/vant/index-bar/index.wxss | 1 + mini-app/src/vant/info/index.d.ts | 1 + mini-app/src/vant/info/index.js | 8 + mini-app/src/vant/info/index.json | 3 + mini-app/src/vant/info/index.wxml | 7 + mini-app/src/vant/info/index.wxss | 1 + mini-app/src/vant/loading/index.d.ts | 1 + mini-app/src/vant/loading/index.js | 16 + mini-app/src/vant/loading/index.json | 3 + mini-app/src/vant/loading/index.wxml | 18 + mini-app/src/vant/loading/index.wxss | 1 + mini-app/src/vant/mixins/basic.d.ts | 1 + mini-app/src/vant/mixins/basic.js | 11 + mini-app/src/vant/mixins/button.d.ts | 1 + mini-app/src/vant/mixins/button.js | 15 + mini-app/src/vant/mixins/link.d.ts | 1 + mini-app/src/vant/mixins/link.js | 24 + mini-app/src/vant/mixins/open-type.d.ts | 1 + mini-app/src/vant/mixins/open-type.js | 26 + mini-app/src/vant/mixins/page-scroll.d.ts | 8 + mini-app/src/vant/mixins/page-scroll.js | 34 + mini-app/src/vant/mixins/touch.d.ts | 1 + mini-app/src/vant/mixins/touch.js | 37 + mini-app/src/vant/mixins/transition.d.ts | 1 + mini-app/src/vant/mixins/transition.js | 107 + mini-app/src/vant/nav-bar/index.d.ts | 1 + mini-app/src/vant/nav-bar/index.js | 65 + mini-app/src/vant/nav-bar/index.json | 6 + mini-app/src/vant/nav-bar/index.wxml | 42 + mini-app/src/vant/nav-bar/index.wxs | 13 + mini-app/src/vant/nav-bar/index.wxss | 1 + mini-app/src/vant/notice-bar/index.d.ts | 1 + mini-app/src/vant/notice-bar/index.js | 127 + mini-app/src/vant/notice-bar/index.json | 6 + mini-app/src/vant/notice-bar/index.wxml | 37 + mini-app/src/vant/notice-bar/index.wxss | 1 + mini-app/src/vant/notify/index.d.ts | 1 + mini-app/src/vant/notify/index.js | 62 + mini-app/src/vant/notify/index.json | 6 + mini-app/src/vant/notify/index.wxml | 20 + mini-app/src/vant/notify/index.wxss | 1 + mini-app/src/vant/notify/notify.d.ts | 20 + mini-app/src/vant/notify/notify.js | 52 + mini-app/src/vant/overlay/index.d.ts | 1 + mini-app/src/vant/overlay/index.js | 22 + mini-app/src/vant/overlay/index.json | 6 + mini-app/src/vant/overlay/index.wxml | 10 + mini-app/src/vant/overlay/index.wxss | 1 + mini-app/src/vant/panel/index.d.ts | 1 + mini-app/src/vant/panel/index.js | 10 + mini-app/src/vant/panel/index.json | 6 + mini-app/src/vant/panel/index.wxml | 19 + mini-app/src/vant/panel/index.wxss | 1 + mini-app/src/vant/picker-column/index.d.ts | 1 + mini-app/src/vant/picker-column/index.js | 124 + mini-app/src/vant/picker-column/index.json | 3 + mini-app/src/vant/picker-column/index.wxml | 22 + mini-app/src/vant/picker-column/index.wxs | 8 + mini-app/src/vant/picker-column/index.wxss | 1 + mini-app/src/vant/picker/index.d.ts | 1 + mini-app/src/vant/picker/index.js | 145 + mini-app/src/vant/picker/index.json | 7 + mini-app/src/vant/picker/index.wxml | 41 + mini-app/src/vant/picker/index.wxss | 1 + mini-app/src/vant/picker/shared.d.ts | 21 + mini-app/src/vant/picker/shared.js | 21 + mini-app/src/vant/picker/toolbar.wxml | 28 + mini-app/src/vant/popup/index.d.ts | 1 + mini-app/src/vant/popup/index.js | 84 + mini-app/src/vant/popup/index.json | 7 + mini-app/src/vant/popup/index.wxml | 25 + mini-app/src/vant/popup/index.wxs | 18 + mini-app/src/vant/popup/index.wxss | 1 + mini-app/src/vant/progress/index.d.ts | 1 + mini-app/src/vant/progress/index.js | 51 + mini-app/src/vant/progress/index.json | 3 + mini-app/src/vant/progress/index.wxml | 20 + mini-app/src/vant/progress/index.wxs | 36 + mini-app/src/vant/progress/index.wxss | 1 + mini-app/src/vant/radio-group/index.d.ts | 1 + mini-app/src/vant/radio-group/index.js | 34 + mini-app/src/vant/radio-group/index.json | 3 + mini-app/src/vant/radio-group/index.wxml | 1 + mini-app/src/vant/radio-group/index.wxss | 1 + mini-app/src/vant/radio/index.d.ts | 1 + mini-app/src/vant/radio/index.js | 48 + mini-app/src/vant/radio/index.json | 6 + mini-app/src/vant/radio/index.wxml | 29 + mini-app/src/vant/radio/index.wxss | 1 + mini-app/src/vant/rate/index.d.ts | 1 + mini-app/src/vant/rate/index.js | 88 + mini-app/src/vant/rate/index.json | 6 + mini-app/src/vant/rate/index.wxml | 34 + mini-app/src/vant/rate/index.wxss | 1 + mini-app/src/vant/row/index.d.ts | 1 + mini-app/src/vant/row/index.js | 40 + mini-app/src/vant/row/index.json | 3 + mini-app/src/vant/row/index.wxml | 3 + mini-app/src/vant/row/index.wxss | 1 + mini-app/src/vant/search/index.d.ts | 1 + mini-app/src/vant/search/index.js | 78 + mini-app/src/vant/search/index.json | 6 + mini-app/src/vant/search/index.wxml | 50 + mini-app/src/vant/search/index.wxss | 1 + mini-app/src/vant/share-sheet/index.d.ts | 1 + mini-app/src/vant/share-sheet/index.js | 55 + mini-app/src/vant/share-sheet/index.json | 7 + mini-app/src/vant/share-sheet/index.wxml | 46 + mini-app/src/vant/share-sheet/index.wxs | 12 + mini-app/src/vant/share-sheet/index.wxss | 1 + mini-app/src/vant/share-sheet/options.d.ts | 1 + mini-app/src/vant/share-sheet/options.js | 14 + mini-app/src/vant/share-sheet/options.json | 3 + mini-app/src/vant/share-sheet/options.wxml | 20 + mini-app/src/vant/share-sheet/options.wxs | 14 + mini-app/src/vant/share-sheet/options.wxss | 1 + mini-app/src/vant/sidebar-item/index.d.ts | 1 + mini-app/src/vant/sidebar-item/index.js | 32 + mini-app/src/vant/sidebar-item/index.json | 6 + mini-app/src/vant/sidebar-item/index.wxml | 18 + mini-app/src/vant/sidebar-item/index.wxss | 1 + mini-app/src/vant/sidebar/index.d.ts | 1 + mini-app/src/vant/sidebar/index.js | 41 + mini-app/src/vant/sidebar/index.json | 3 + mini-app/src/vant/sidebar/index.wxml | 3 + mini-app/src/vant/sidebar/index.wxss | 1 + mini-app/src/vant/skeleton/index.d.ts | 1 + mini-app/src/vant/skeleton/index.js | 46 + mini-app/src/vant/skeleton/index.json | 4 + mini-app/src/vant/skeleton/index.wxml | 29 + mini-app/src/vant/skeleton/index.wxss | 1 + mini-app/src/vant/slider/index.d.ts | 1 + mini-app/src/vant/slider/index.js | 107 + mini-app/src/vant/slider/index.json | 3 + mini-app/src/vant/slider/index.wxml | 30 + mini-app/src/vant/slider/index.wxs | 14 + mini-app/src/vant/slider/index.wxss | 1 + mini-app/src/vant/stepper/index.d.ts | 1 + mini-app/src/vant/stepper/index.js | 191 + mini-app/src/vant/stepper/index.json | 3 + mini-app/src/vant/stepper/index.wxml | 37 + mini-app/src/vant/stepper/index.wxss | 1 + mini-app/src/vant/steps/index.d.ts | 1 + mini-app/src/vant/steps/index.js | 33 + mini-app/src/vant/steps/index.json | 6 + mini-app/src/vant/steps/index.wxml | 54 + mini-app/src/vant/steps/index.wxss | 1 + mini-app/src/vant/sticky/index.d.ts | 1 + mini-app/src/vant/sticky/index.js | 111 + mini-app/src/vant/sticky/index.json | 3 + mini-app/src/vant/sticky/index.wxml | 8 + mini-app/src/vant/sticky/index.wxs | 24 + mini-app/src/vant/sticky/index.wxss | 1 + mini-app/src/vant/submit-bar/index.d.ts | 1 + mini-app/src/vant/submit-bar/index.js | 57 + mini-app/src/vant/submit-bar/index.json | 7 + mini-app/src/vant/submit-bar/index.wxml | 44 + mini-app/src/vant/submit-bar/index.wxss | 1 + mini-app/src/vant/swipe-cell/index.d.ts | 1 + mini-app/src/vant/swipe-cell/index.js | 130 + mini-app/src/vant/swipe-cell/index.json | 3 + mini-app/src/vant/swipe-cell/index.wxml | 20 + mini-app/src/vant/swipe-cell/index.wxss | 1 + mini-app/src/vant/switch/index.d.ts | 1 + mini-app/src/vant/switch/index.js | 51 + mini-app/src/vant/switch/index.json | 6 + mini-app/src/vant/switch/index.wxml | 11 + mini-app/src/vant/switch/index.wxss | 1 + mini-app/src/vant/tab/index.d.ts | 1 + mini-app/src/vant/tab/index.js | 59 + mini-app/src/vant/tab/index.json | 3 + mini-app/src/vant/tab/index.wxml | 8 + mini-app/src/vant/tab/index.wxss | 1 + mini-app/src/vant/tabbar-item/index.d.ts | 1 + mini-app/src/vant/tabbar-item/index.js | 57 + mini-app/src/vant/tabbar-item/index.json | 7 + mini-app/src/vant/tabbar-item/index.wxml | 28 + mini-app/src/vant/tabbar-item/index.wxss | 1 + mini-app/src/vant/tabbar/index.d.ts | 1 + mini-app/src/vant/tabbar/index.js | 73 + mini-app/src/vant/tabbar/index.json | 3 + mini-app/src/vant/tabbar/index.wxml | 10 + mini-app/src/vant/tabbar/index.wxss | 1 + mini-app/src/vant/tabs/index.d.ts | 1 + mini-app/src/vant/tabs/index.js | 283 + mini-app/src/vant/tabs/index.json | 7 + mini-app/src/vant/tabs/index.wxml | 63 + mini-app/src/vant/tabs/index.wxs | 82 + mini-app/src/vant/tabs/index.wxss | 1 + mini-app/src/vant/tag/index.d.ts | 1 + mini-app/src/vant/tag/index.js | 21 + mini-app/src/vant/tag/index.json | 6 + mini-app/src/vant/tag/index.wxml | 14 + mini-app/src/vant/tag/index.wxss | 1 + mini-app/src/vant/toast/index.d.ts | 1 + mini-app/src/vant/toast/index.js | 29 + mini-app/src/vant/toast/index.json | 9 + mini-app/src/vant/toast/index.wxml | 33 + mini-app/src/vant/toast/index.wxss | 1 + mini-app/src/vant/toast/toast.d.ts | 68 + mini-app/src/vant/toast/toast.js | 70 + mini-app/src/vant/transition/index.d.ts | 1 + mini-app/src/vant/transition/index.js | 13 + mini-app/src/vant/transition/index.json | 3 + mini-app/src/vant/transition/index.wxml | 8 + mini-app/src/vant/transition/index.wxss | 1 + mini-app/src/vant/tree-select/index.d.ts | 1 + mini-app/src/vant/tree-select/index.js | 68 + mini-app/src/vant/tree-select/index.json | 8 + mini-app/src/vant/tree-select/index.wxml | 41 + mini-app/src/vant/tree-select/index.wxs | 12 + mini-app/src/vant/tree-select/index.wxss | 1 + mini-app/src/vant/uploader/index.d.ts | 1 + mini-app/src/vant/uploader/index.js | 194 + mini-app/src/vant/uploader/index.json | 7 + mini-app/src/vant/uploader/index.wxml | 80 + mini-app/src/vant/uploader/index.wxss | 1 + mini-app/src/vant/uploader/shared.d.ts | 28 + mini-app/src/vant/uploader/shared.js | 30 + mini-app/src/vant/uploader/utils.d.ts | 31 + mini-app/src/vant/uploader/utils.js | 122 + mini-app/src/vant/wxs/add-unit.wxs | 12 + mini-app/src/vant/wxs/array.wxs | 5 + mini-app/src/vant/wxs/bem.wxs | 39 + mini-app/src/vant/wxs/memoize.wxs | 55 + mini-app/src/vant/wxs/object.wxs | 13 + mini-app/src/vant/wxs/style.wxs | 32 + mini-app/src/vant/wxs/utils.wxs | 10 + mini-app/src/xiao4rBase.js | 25 + mini-app/static/.gitignore | 0 mini-app/static/img/index/head.png | Bin 0 -> 809208 bytes mini-app/weapp/apis/userApis.js | 98 + mini-app/weapp/apis/xiao4rApis.js | 66 + mini-app/weapp/app.js | 49 + mini-app/weapp/app.json | 53 + mini-app/weapp/app.wxss | 32 + mini-app/weapp/common/eventHub.js | 14 + mini-app/weapp/components/mall/mall-bbs.js | 232 + mini-app/weapp/components/mall/mall-bbs.json | 5 + mini-app/weapp/components/mall/mall-bbs.wxml | 39 + mini-app/weapp/components/mall/mall-bbs.wxss | 6 + mini-app/weapp/components/mall/mall-car.js | 267 + mini-app/weapp/components/mall/mall-car.json | 7 + mini-app/weapp/components/mall/mall-car.wxml | 21 + mini-app/weapp/components/mall/mall-car.wxss | 18 + mini-app/weapp/components/mall/mall-home.js | 18 + mini-app/weapp/components/mall/mall-home.json | 5 + mini-app/weapp/components/mall/mall-home.wxml | 6 + mini-app/weapp/components/mall/mall-home.wxss | 6 + mini-app/weapp/components/mall/mall-my.js | 20 + mini-app/weapp/components/mall/mall-my.json | 5 + mini-app/weapp/components/mall/mall-my.wxml | 2 + mini-app/weapp/components/mall/mall-my.wxss | 6 + .../weapp/components/mall/mall-shopping.js | 74 + .../weapp/components/mall/mall-shopping.json | 5 + .../weapp/components/mall/mall-shopping.wxml | 14 + .../weapp/components/mall/mall-shopping.wxss | 6 + mini-app/weapp/components/nav-bar.js | 78 + mini-app/weapp/components/nav-bar.json | 4 + mini-app/weapp/components/nav-bar.wxml | 5 + mini-app/weapp/components/nav-bar.wxss | 1 + .../components/user/dialog-registration.js | 197 + .../components/user/dialog-registration.json | 5 + .../components/user/dialog-registration.wxml | 36 + .../components/user/dialog-registration.wxss | 6 + mini-app/weapp/config.js | 12 + mini-app/weapp/js/request.js | 110 + mini-app/weapp/js/utils/uuid.js | 23 + mini-app/weapp/js/utils/validateUtils.js | 44 + mini-app/weapp/pages/form1.js | 240 + mini-app/weapp/pages/form1.json | 5 + mini-app/weapp/pages/form1.wxml | 77 + mini-app/weapp/pages/form1.wxss | 20 + mini-app/weapp/pages/form2.js | 72 + mini-app/weapp/pages/form2.json | 5 + mini-app/weapp/pages/form2.wxml | 40 + mini-app/weapp/pages/form2.wxss | 43 + mini-app/weapp/pages/form3.js | 1032 ++++ mini-app/weapp/pages/form3.json | 5 + mini-app/weapp/pages/form3.wxml | 120 + mini-app/weapp/pages/form3.wxss | 52 + mini-app/weapp/pages/form4.js | 312 ++ mini-app/weapp/pages/form4.json | 5 + mini-app/weapp/pages/form4.wxml | 50 + mini-app/weapp/pages/form4.wxss | 17 + mini-app/weapp/pages/form5.js | 549 ++ mini-app/weapp/pages/form5.json | 5 + mini-app/weapp/pages/form5.wxml | 89 + mini-app/weapp/pages/form5.wxss | 30 + mini-app/weapp/pages/form6.js | 426 ++ mini-app/weapp/pages/form6.json | 5 + mini-app/weapp/pages/form6.wxml | 58 + mini-app/weapp/pages/form6.wxss | 30 + mini-app/weapp/pages/index.js | 203 + mini-app/weapp/pages/index.json | 5 + mini-app/weapp/pages/index.wxml | 32 + mini-app/weapp/pages/index.wxss | 6 + mini-app/weapp/pages/mall/goods-detail.js | 324 ++ mini-app/weapp/pages/mall/goods-detail.json | 9 + mini-app/weapp/pages/mall/goods-detail.wxml | 73 + mini-app/weapp/pages/mall/goods-detail.wxss | 6 + mini-app/weapp/pages/mall/index.js | 133 + mini-app/weapp/pages/mall/index.json | 12 + mini-app/weapp/pages/mall/index.wxml | 33 + mini-app/weapp/pages/mall/index.wxss | 6 + mini-app/weapp/sitemap.json | 7 + mini-app/weapp/static/.gitignore | 0 mini-app/weapp/static/img/index/head.png | Bin 0 -> 809208 bytes mini-app/weapp/store/index.js | 75 + mini-app/weapp/store/wineryForm.js | 67 + mini-app/weapp/vant/button/index.js | 66 + mini-app/weapp/vant/button/index.json | 7 + mini-app/weapp/vant/button/index.wxml | 21 + mini-app/weapp/vant/button/index.wxs | 39 + mini-app/weapp/vant/button/index.wxss | 1 + mini-app/weapp/vant/card/index.js | 46 + mini-app/weapp/vant/card/index.json | 6 + mini-app/weapp/vant/card/index.wxml | 48 + mini-app/weapp/vant/card/index.wxss | 1 + mini-app/weapp/vant/cell-group/index.js | 13 + mini-app/weapp/vant/cell-group/index.json | 4 + mini-app/weapp/vant/cell-group/index.wxml | 9 + mini-app/weapp/vant/cell-group/index.wxss | 1 + mini-app/weapp/vant/cell/index.js | 36 + mini-app/weapp/vant/cell/index.json | 6 + mini-app/weapp/vant/cell/index.wxml | 29 + mini-app/weapp/vant/cell/index.wxss | 1 + mini-app/weapp/vant/checkbox-group/index.js | 44 + mini-app/weapp/vant/checkbox-group/index.json | 4 + mini-app/weapp/vant/checkbox-group/index.wxml | 1 + mini-app/weapp/vant/checkbox-group/index.wxss | 1 + mini-app/weapp/vant/checkbox/index.js | 90 + mini-app/weapp/vant/checkbox/index.json | 6 + mini-app/weapp/vant/checkbox/index.wxml | 16 + mini-app/weapp/vant/checkbox/index.wxs | 20 + mini-app/weapp/vant/checkbox/index.wxss | 1 + mini-app/weapp/vant/col/index.js | 30 + mini-app/weapp/vant/col/index.json | 4 + mini-app/weapp/vant/col/index.wxml | 8 + mini-app/weapp/vant/col/index.wxss | 1 + mini-app/weapp/vant/common/color.js | 20 + mini-app/weapp/vant/common/component.js | 131 + mini-app/weapp/vant/common/index.wxss | 1 + mini-app/weapp/vant/common/utils.js | 114 + mini-app/weapp/vant/common/validator.js | 57 + mini-app/weapp/vant/common/version.js | 65 + mini-app/weapp/vant/datetime-picker/index.js | 398 ++ .../weapp/vant/datetime-picker/index.json | 6 + .../weapp/vant/datetime-picker/index.wxml | 16 + .../weapp/vant/datetime-picker/index.wxss | 1 + mini-app/weapp/vant/dialog/index.js | 142 + mini-app/weapp/vant/dialog/index.json | 9 + mini-app/weapp/vant/dialog/index.wxml | 34 + mini-app/weapp/vant/dialog/index.wxss | 1 + mini-app/weapp/vant/divider/index.js | 36 + mini-app/weapp/vant/divider/index.json | 4 + mini-app/weapp/vant/divider/index.wxml | 8 + mini-app/weapp/vant/divider/index.wxss | 1 + mini-app/weapp/vant/field/index.js | 145 + mini-app/weapp/vant/field/index.json | 7 + mini-app/weapp/vant/field/index.wxml | 34 + mini-app/weapp/vant/field/index.wxs | 21 + mini-app/weapp/vant/field/index.wxss | 1 + mini-app/weapp/vant/field/props.js | 74 + .../weapp/vant/goods-action-button/index.js | 49 + .../weapp/vant/goods-action-button/index.json | 6 + .../weapp/vant/goods-action-button/index.wxml | 8 + .../weapp/vant/goods-action-button/index.wxss | 1 + .../weapp/vant/goods-action-icon/index.js | 28 + .../weapp/vant/goods-action-icon/index.json | 7 + .../weapp/vant/goods-action-icon/index.wxml | 35 + .../weapp/vant/goods-action-icon/index.wxss | 1 + mini-app/weapp/vant/goods-action/index.js | 37 + mini-app/weapp/vant/goods-action/index.json | 4 + mini-app/weapp/vant/goods-action/index.wxml | 8 + mini-app/weapp/vant/goods-action/index.wxss | 1 + mini-app/weapp/vant/grid-item/index.js | 64 + mini-app/weapp/vant/grid-item/index.json | 6 + mini-app/weapp/vant/grid-item/index.wxml | 24 + mini-app/weapp/vant/grid-item/index.wxs | 32 + mini-app/weapp/vant/grid-item/index.wxss | 1 + mini-app/weapp/vant/grid/index.js | 56 + mini-app/weapp/vant/grid/index.json | 4 + mini-app/weapp/vant/grid/index.wxml | 8 + mini-app/weapp/vant/grid/index.wxs | 13 + mini-app/weapp/vant/grid/index.wxss | 1 + mini-app/weapp/vant/icon/index.js | 23 + mini-app/weapp/vant/icon/index.json | 6 + mini-app/weapp/vant/icon/index.wxml | 9 + mini-app/weapp/vant/icon/index.wxs | 39 + mini-app/weapp/vant/icon/index.wxss | 1 + mini-app/weapp/vant/image/index.js | 66 + mini-app/weapp/vant/image/index.json | 7 + mini-app/weapp/vant/image/index.wxml | 19 + mini-app/weapp/vant/image/index.wxs | 32 + mini-app/weapp/vant/image/index.wxss | 1 + mini-app/weapp/vant/info/index.js | 11 + mini-app/weapp/vant/info/index.json | 4 + mini-app/weapp/vant/info/index.wxml | 6 + mini-app/weapp/vant/info/index.wxss | 1 + mini-app/weapp/vant/loading/index.js | 21 + mini-app/weapp/vant/loading/index.json | 4 + mini-app/weapp/vant/loading/index.wxml | 13 + mini-app/weapp/vant/loading/index.wxss | 1 + mini-app/weapp/vant/mixins/basic.js | 20 + mini-app/weapp/vant/mixins/button.js | 22 + mini-app/weapp/vant/mixins/link.js | 34 + mini-app/weapp/vant/mixins/open-type.js | 33 + mini-app/weapp/vant/mixins/transition.js | 151 + mini-app/weapp/vant/nav-bar/index.js | 76 + mini-app/weapp/vant/nav-bar/index.json | 6 + mini-app/weapp/vant/nav-bar/index.wxml | 28 + mini-app/weapp/vant/nav-bar/index.wxs | 13 + mini-app/weapp/vant/nav-bar/index.wxss | 1 + mini-app/weapp/vant/overlay/index.js | 25 + mini-app/weapp/vant/overlay/index.json | 6 + mini-app/weapp/vant/overlay/index.wxml | 10 + mini-app/weapp/vant/overlay/index.wxss | 1 + mini-app/weapp/vant/panel/index.js | 13 + mini-app/weapp/vant/panel/index.json | 6 + mini-app/weapp/vant/panel/index.wxml | 19 + mini-app/weapp/vant/panel/index.wxss | 1 + mini-app/weapp/vant/picker-column/index.js | 139 + mini-app/weapp/vant/picker-column/index.json | 4 + mini-app/weapp/vant/picker-column/index.wxml | 10 + mini-app/weapp/vant/picker-column/index.wxs | 8 + mini-app/weapp/vant/picker-column/index.wxss | 1 + mini-app/weapp/vant/picker/index.js | 174 + mini-app/weapp/vant/picker/index.json | 7 + mini-app/weapp/vant/picker/index.wxml | 49 + mini-app/weapp/vant/picker/index.wxss | 1 + mini-app/weapp/vant/picker/shared.js | 28 + mini-app/weapp/vant/popup/index.js | 86 + mini-app/weapp/vant/popup/index.json | 7 + mini-app/weapp/vant/popup/index.wxml | 12 + mini-app/weapp/vant/popup/index.wxs | 18 + mini-app/weapp/vant/popup/index.wxss | 1 + mini-app/weapp/vant/radio-group/index.js | 43 + mini-app/weapp/vant/radio-group/index.json | 4 + mini-app/weapp/vant/radio-group/index.wxml | 1 + mini-app/weapp/vant/radio-group/index.wxss | 1 + mini-app/weapp/vant/radio/index.js | 55 + mini-app/weapp/vant/radio/index.json | 6 + mini-app/weapp/vant/radio/index.wxml | 17 + mini-app/weapp/vant/radio/index.wxss | 1 + mini-app/weapp/vant/row/index.js | 45 + mini-app/weapp/vant/row/index.json | 4 + mini-app/weapp/vant/row/index.wxml | 3 + mini-app/weapp/vant/row/index.wxss | 1 + mini-app/weapp/vant/stepper/index.js | 216 + mini-app/weapp/vant/stepper/index.json | 4 + mini-app/weapp/vant/stepper/index.wxml | 10 + mini-app/weapp/vant/stepper/index.wxss | 1 + mini-app/weapp/vant/steps/index.js | 37 + mini-app/weapp/vant/steps/index.json | 6 + mini-app/weapp/vant/steps/index.wxml | 39 + mini-app/weapp/vant/steps/index.wxss | 1 + mini-app/weapp/vant/submit-bar/index.js | 62 + mini-app/weapp/vant/submit-bar/index.json | 7 + mini-app/weapp/vant/submit-bar/index.wxml | 33 + mini-app/weapp/vant/submit-bar/index.wxss | 1 + mini-app/weapp/vant/tabbar-item/index.js | 69 + mini-app/weapp/vant/tabbar-item/index.json | 7 + mini-app/weapp/vant/tabbar-item/index.wxml | 18 + mini-app/weapp/vant/tabbar-item/index.wxss | 1 + mini-app/weapp/vant/tabbar/index.js | 86 + mini-app/weapp/vant/tabbar/index.json | 4 + mini-app/weapp/vant/tabbar/index.wxml | 10 + mini-app/weapp/vant/tabbar/index.wxss | 1 + mini-app/weapp/vant/tag/index.js | 24 + mini-app/weapp/vant/tag/index.json | 6 + mini-app/weapp/vant/tag/index.wxml | 9 + mini-app/weapp/vant/tag/index.wxss | 1 + mini-app/weapp/vant/transition/index.js | 10 + mini-app/weapp/vant/transition/index.json | 4 + mini-app/weapp/vant/transition/index.wxml | 8 + mini-app/weapp/vant/transition/index.wxss | 1 + mini-app/weapp/vant/wxs/add-unit.wxs | 12 + mini-app/weapp/vant/wxs/array.wxs | 5 + mini-app/weapp/vant/wxs/bem.wxs | 39 + mini-app/weapp/vant/wxs/memoize.wxs | 55 + mini-app/weapp/vant/wxs/object.wxs | 13 + mini-app/weapp/vant/wxs/style.wxs | 32 + mini-app/weapp/vant/wxs/utils.wxs | 10 + mini-app/weapp/vendor.js | 4880 +++++++++++++++++ mini-app/weapp/xiao4rBase.js | 57 + mini-app/wepy.config.js | 39 + 738 files changed, 29490 insertions(+) create mode 100644 mini-app/.editorconfig create mode 100644 mini-app/.eslintignore create mode 100644 mini-app/.eslintrc.js create mode 100644 mini-app/.prettierrc create mode 100644 mini-app/.wepyignore create mode 100644 mini-app/package.json create mode 100644 mini-app/project.config.json create mode 100644 mini-app/src/apis/userApis.js create mode 100644 mini-app/src/apis/xiao4rApis.js create mode 100644 mini-app/src/app.wpy create mode 100644 mini-app/src/common/eventHub.js create mode 100644 mini-app/src/components/counter.wpy create mode 100644 mini-app/src/components/group.wpy create mode 100644 mini-app/src/components/groupitem.wpy create mode 100644 mini-app/src/components/list.wpy create mode 100644 mini-app/src/components/mall/mall-bbs.wpy create mode 100644 mini-app/src/components/mall/mall-car.wpy create mode 100644 mini-app/src/components/mall/mall-home.wpy create mode 100644 mini-app/src/components/mall/mall-my.wpy create mode 100644 mini-app/src/components/mall/mall-shopping.wpy create mode 100644 mini-app/src/components/nav-bar.wpy create mode 100644 mini-app/src/components/panel.wpy create mode 100644 mini-app/src/components/user/dialog-registration.wpy create mode 100644 mini-app/src/components/user/login.wpy create mode 100644 mini-app/src/components/wepy-list.wpy create mode 100644 mini-app/src/config.js create mode 100644 mini-app/src/js/request.js create mode 100644 mini-app/src/js/utils/uuid.js create mode 100644 mini-app/src/js/utils/validateUtils.js create mode 100644 mini-app/src/mixins/test.js create mode 100644 mini-app/src/pages/form1.wpy create mode 100644 mini-app/src/pages/form2.wpy create mode 100644 mini-app/src/pages/form3.wpy create mode 100644 mini-app/src/pages/form4.wpy create mode 100644 mini-app/src/pages/form5.wpy create mode 100644 mini-app/src/pages/form6.wpy create mode 100644 mini-app/src/pages/index.wpy create mode 100644 mini-app/src/pages/mall/goods-detail.wpy create mode 100644 mini-app/src/pages/mall/index.wpy create mode 100644 mini-app/src/static/img/index/head.png create mode 100644 mini-app/src/store/index.js create mode 100644 mini-app/src/store/wineryForm.js create mode 100644 mini-app/src/vant/action-sheet/index.d.ts create mode 100644 mini-app/src/vant/action-sheet/index.js create mode 100644 mini-app/src/vant/action-sheet/index.json create mode 100644 mini-app/src/vant/action-sheet/index.wxml create mode 100644 mini-app/src/vant/action-sheet/index.wxss create mode 100644 mini-app/src/vant/area/index.d.ts create mode 100644 mini-app/src/vant/area/index.js create mode 100644 mini-app/src/vant/area/index.json create mode 100644 mini-app/src/vant/area/index.wxml create mode 100644 mini-app/src/vant/area/index.wxs create mode 100644 mini-app/src/vant/area/index.wxss create mode 100644 mini-app/src/vant/button/index.d.ts create mode 100644 mini-app/src/vant/button/index.js create mode 100644 mini-app/src/vant/button/index.json create mode 100644 mini-app/src/vant/button/index.wxml create mode 100644 mini-app/src/vant/button/index.wxs create mode 100644 mini-app/src/vant/button/index.wxss create mode 100644 mini-app/src/vant/calendar/calendar.wxml create mode 100644 mini-app/src/vant/calendar/components/header/index.d.ts create mode 100644 mini-app/src/vant/calendar/components/header/index.js create mode 100644 mini-app/src/vant/calendar/components/header/index.json create mode 100644 mini-app/src/vant/calendar/components/header/index.wxml create mode 100644 mini-app/src/vant/calendar/components/header/index.wxss create mode 100644 mini-app/src/vant/calendar/components/month/index.d.ts create mode 100644 mini-app/src/vant/calendar/components/month/index.js create mode 100644 mini-app/src/vant/calendar/components/month/index.json create mode 100644 mini-app/src/vant/calendar/components/month/index.wxml create mode 100644 mini-app/src/vant/calendar/components/month/index.wxs create mode 100644 mini-app/src/vant/calendar/components/month/index.wxss create mode 100644 mini-app/src/vant/calendar/index.d.ts create mode 100644 mini-app/src/vant/calendar/index.js create mode 100644 mini-app/src/vant/calendar/index.json create mode 100644 mini-app/src/vant/calendar/index.wxml create mode 100644 mini-app/src/vant/calendar/index.wxs create mode 100644 mini-app/src/vant/calendar/index.wxss create mode 100644 mini-app/src/vant/calendar/utils.d.ts create mode 100644 mini-app/src/vant/calendar/utils.js create mode 100644 mini-app/src/vant/calendar/utils.wxs create mode 100644 mini-app/src/vant/card/index.d.ts create mode 100644 mini-app/src/vant/card/index.js create mode 100644 mini-app/src/vant/card/index.json create mode 100644 mini-app/src/vant/card/index.wxml create mode 100644 mini-app/src/vant/card/index.wxss create mode 100644 mini-app/src/vant/cell-group/index.d.ts create mode 100644 mini-app/src/vant/cell-group/index.js create mode 100644 mini-app/src/vant/cell-group/index.json create mode 100644 mini-app/src/vant/cell-group/index.wxml create mode 100644 mini-app/src/vant/cell-group/index.wxss create mode 100644 mini-app/src/vant/cell/index.d.ts create mode 100644 mini-app/src/vant/cell/index.js create mode 100644 mini-app/src/vant/cell/index.json create mode 100644 mini-app/src/vant/cell/index.wxml create mode 100644 mini-app/src/vant/cell/index.wxss create mode 100644 mini-app/src/vant/checkbox-group/index.d.ts create mode 100644 mini-app/src/vant/checkbox-group/index.js create mode 100644 mini-app/src/vant/checkbox-group/index.json create mode 100644 mini-app/src/vant/checkbox-group/index.wxml create mode 100644 mini-app/src/vant/checkbox-group/index.wxss create mode 100644 mini-app/src/vant/checkbox/index.d.ts create mode 100644 mini-app/src/vant/checkbox/index.js create mode 100644 mini-app/src/vant/checkbox/index.json create mode 100644 mini-app/src/vant/checkbox/index.wxml create mode 100644 mini-app/src/vant/checkbox/index.wxs create mode 100644 mini-app/src/vant/checkbox/index.wxss create mode 100644 mini-app/src/vant/circle/canvas.d.ts create mode 100644 mini-app/src/vant/circle/canvas.js create mode 100644 mini-app/src/vant/circle/index.d.ts create mode 100644 mini-app/src/vant/circle/index.js create mode 100644 mini-app/src/vant/circle/index.json create mode 100644 mini-app/src/vant/circle/index.wxml create mode 100644 mini-app/src/vant/circle/index.wxss create mode 100644 mini-app/src/vant/col/index.d.ts create mode 100644 mini-app/src/vant/col/index.js create mode 100644 mini-app/src/vant/col/index.json create mode 100644 mini-app/src/vant/col/index.wxml create mode 100644 mini-app/src/vant/col/index.wxss create mode 100644 mini-app/src/vant/collapse-item/animate.d.ts create mode 100644 mini-app/src/vant/collapse-item/animate.js create mode 100644 mini-app/src/vant/collapse-item/index.d.ts create mode 100644 mini-app/src/vant/collapse-item/index.js create mode 100644 mini-app/src/vant/collapse-item/index.json create mode 100644 mini-app/src/vant/collapse-item/index.wxml create mode 100644 mini-app/src/vant/collapse-item/index.wxss create mode 100644 mini-app/src/vant/collapse/index.d.ts create mode 100644 mini-app/src/vant/collapse/index.js create mode 100644 mini-app/src/vant/collapse/index.json create mode 100644 mini-app/src/vant/collapse/index.wxml create mode 100644 mini-app/src/vant/collapse/index.wxss create mode 100644 mini-app/src/vant/common/color.d.ts create mode 100644 mini-app/src/vant/common/color.js create mode 100644 mini-app/src/vant/common/component.d.ts create mode 100644 mini-app/src/vant/common/component.js create mode 100644 mini-app/src/vant/common/index.wxss create mode 100644 mini-app/src/vant/common/style/clearfix.wxss create mode 100644 mini-app/src/vant/common/style/ellipsis.wxss create mode 100644 mini-app/src/vant/common/style/hairline.wxss create mode 100644 mini-app/src/vant/common/style/mixins/clearfix.wxss create mode 100644 mini-app/src/vant/common/style/mixins/ellipsis.wxss create mode 100644 mini-app/src/vant/common/style/mixins/hairline.wxss create mode 100644 mini-app/src/vant/common/style/theme.wxss create mode 100644 mini-app/src/vant/common/style/var.wxss create mode 100644 mini-app/src/vant/common/utils.d.ts create mode 100644 mini-app/src/vant/common/utils.js create mode 100644 mini-app/src/vant/common/validator.d.ts create mode 100644 mini-app/src/vant/common/validator.js create mode 100644 mini-app/src/vant/common/version.d.ts create mode 100644 mini-app/src/vant/common/version.js create mode 100644 mini-app/src/vant/count-down/index.d.ts create mode 100644 mini-app/src/vant/count-down/index.js create mode 100644 mini-app/src/vant/count-down/index.json create mode 100644 mini-app/src/vant/count-down/index.wxml create mode 100644 mini-app/src/vant/count-down/index.wxss create mode 100644 mini-app/src/vant/count-down/utils.d.ts create mode 100644 mini-app/src/vant/count-down/utils.js create mode 100644 mini-app/src/vant/datetime-picker/index.d.ts create mode 100644 mini-app/src/vant/datetime-picker/index.js create mode 100644 mini-app/src/vant/datetime-picker/index.json create mode 100644 mini-app/src/vant/datetime-picker/index.wxml create mode 100644 mini-app/src/vant/datetime-picker/index.wxss create mode 100644 mini-app/src/vant/definitions/index.d.ts create mode 100644 mini-app/src/vant/definitions/index.js create mode 100644 mini-app/src/vant/definitions/weapp.d.ts create mode 100644 mini-app/src/vant/definitions/weapp.js create mode 100644 mini-app/src/vant/dialog/dialog.d.ts create mode 100644 mini-app/src/vant/dialog/dialog.js create mode 100644 mini-app/src/vant/dialog/index.d.ts create mode 100644 mini-app/src/vant/dialog/index.js create mode 100644 mini-app/src/vant/dialog/index.json create mode 100644 mini-app/src/vant/dialog/index.wxml create mode 100644 mini-app/src/vant/dialog/index.wxss create mode 100644 mini-app/src/vant/divider/index.d.ts create mode 100644 mini-app/src/vant/divider/index.js create mode 100644 mini-app/src/vant/divider/index.json create mode 100644 mini-app/src/vant/divider/index.wxml create mode 100644 mini-app/src/vant/divider/index.wxss create mode 100644 mini-app/src/vant/dropdown-item/index.d.ts create mode 100644 mini-app/src/vant/dropdown-item/index.js create mode 100644 mini-app/src/vant/dropdown-item/index.json create mode 100644 mini-app/src/vant/dropdown-item/index.wxml create mode 100644 mini-app/src/vant/dropdown-item/index.wxss create mode 100644 mini-app/src/vant/dropdown-item/shared.d.ts create mode 100644 mini-app/src/vant/dropdown-item/shared.js create mode 100644 mini-app/src/vant/dropdown-menu/index.d.ts create mode 100644 mini-app/src/vant/dropdown-menu/index.js create mode 100644 mini-app/src/vant/dropdown-menu/index.json create mode 100644 mini-app/src/vant/dropdown-menu/index.wxml create mode 100644 mini-app/src/vant/dropdown-menu/index.wxs create mode 100644 mini-app/src/vant/dropdown-menu/index.wxss create mode 100644 mini-app/src/vant/empty/index.d.ts create mode 100644 mini-app/src/vant/empty/index.js create mode 100644 mini-app/src/vant/empty/index.json create mode 100644 mini-app/src/vant/empty/index.wxml create mode 100644 mini-app/src/vant/empty/index.wxss create mode 100644 mini-app/src/vant/field/index.d.ts create mode 100644 mini-app/src/vant/field/index.js create mode 100644 mini-app/src/vant/field/index.json create mode 100644 mini-app/src/vant/field/index.wxml create mode 100644 mini-app/src/vant/field/index.wxs create mode 100644 mini-app/src/vant/field/index.wxss create mode 100644 mini-app/src/vant/field/props.d.ts create mode 100644 mini-app/src/vant/field/props.js create mode 100644 mini-app/src/vant/goods-action-button/index.d.ts create mode 100644 mini-app/src/vant/goods-action-button/index.js create mode 100644 mini-app/src/vant/goods-action-button/index.json create mode 100644 mini-app/src/vant/goods-action-button/index.wxml create mode 100644 mini-app/src/vant/goods-action-button/index.wxss create mode 100644 mini-app/src/vant/goods-action-icon/index.d.ts create mode 100644 mini-app/src/vant/goods-action-icon/index.js create mode 100644 mini-app/src/vant/goods-action-icon/index.json create mode 100644 mini-app/src/vant/goods-action-icon/index.wxml create mode 100644 mini-app/src/vant/goods-action-icon/index.wxss create mode 100644 mini-app/src/vant/goods-action/index.d.ts create mode 100644 mini-app/src/vant/goods-action/index.js create mode 100644 mini-app/src/vant/goods-action/index.json create mode 100644 mini-app/src/vant/goods-action/index.wxml create mode 100644 mini-app/src/vant/goods-action/index.wxss create mode 100644 mini-app/src/vant/grid-item/index.d.ts create mode 100644 mini-app/src/vant/grid-item/index.js create mode 100644 mini-app/src/vant/grid-item/index.json create mode 100644 mini-app/src/vant/grid-item/index.wxml create mode 100644 mini-app/src/vant/grid-item/index.wxs create mode 100644 mini-app/src/vant/grid-item/index.wxss create mode 100644 mini-app/src/vant/grid/index.d.ts create mode 100644 mini-app/src/vant/grid/index.js create mode 100644 mini-app/src/vant/grid/index.json create mode 100644 mini-app/src/vant/grid/index.wxml create mode 100644 mini-app/src/vant/grid/index.wxs create mode 100644 mini-app/src/vant/grid/index.wxss create mode 100644 mini-app/src/vant/icon/index.d.ts create mode 100644 mini-app/src/vant/icon/index.js create mode 100644 mini-app/src/vant/icon/index.json create mode 100644 mini-app/src/vant/icon/index.wxml create mode 100644 mini-app/src/vant/icon/index.wxs create mode 100644 mini-app/src/vant/icon/index.wxss create mode 100644 mini-app/src/vant/image/index.d.ts create mode 100644 mini-app/src/vant/image/index.js create mode 100644 mini-app/src/vant/image/index.json create mode 100644 mini-app/src/vant/image/index.wxml create mode 100644 mini-app/src/vant/image/index.wxs create mode 100644 mini-app/src/vant/image/index.wxss create mode 100644 mini-app/src/vant/index-anchor/index.d.ts create mode 100644 mini-app/src/vant/index-anchor/index.js create mode 100644 mini-app/src/vant/index-anchor/index.json create mode 100644 mini-app/src/vant/index-anchor/index.wxml create mode 100644 mini-app/src/vant/index-anchor/index.wxss create mode 100644 mini-app/src/vant/index-bar/index.d.ts create mode 100644 mini-app/src/vant/index-bar/index.js create mode 100644 mini-app/src/vant/index-bar/index.json create mode 100644 mini-app/src/vant/index-bar/index.wxml create mode 100644 mini-app/src/vant/index-bar/index.wxss create mode 100644 mini-app/src/vant/info/index.d.ts create mode 100644 mini-app/src/vant/info/index.js create mode 100644 mini-app/src/vant/info/index.json create mode 100644 mini-app/src/vant/info/index.wxml create mode 100644 mini-app/src/vant/info/index.wxss create mode 100644 mini-app/src/vant/loading/index.d.ts create mode 100644 mini-app/src/vant/loading/index.js create mode 100644 mini-app/src/vant/loading/index.json create mode 100644 mini-app/src/vant/loading/index.wxml create mode 100644 mini-app/src/vant/loading/index.wxss create mode 100644 mini-app/src/vant/mixins/basic.d.ts create mode 100644 mini-app/src/vant/mixins/basic.js create mode 100644 mini-app/src/vant/mixins/button.d.ts create mode 100644 mini-app/src/vant/mixins/button.js create mode 100644 mini-app/src/vant/mixins/link.d.ts create mode 100644 mini-app/src/vant/mixins/link.js create mode 100644 mini-app/src/vant/mixins/open-type.d.ts create mode 100644 mini-app/src/vant/mixins/open-type.js create mode 100644 mini-app/src/vant/mixins/page-scroll.d.ts create mode 100644 mini-app/src/vant/mixins/page-scroll.js create mode 100644 mini-app/src/vant/mixins/touch.d.ts create mode 100644 mini-app/src/vant/mixins/touch.js create mode 100644 mini-app/src/vant/mixins/transition.d.ts create mode 100644 mini-app/src/vant/mixins/transition.js create mode 100644 mini-app/src/vant/nav-bar/index.d.ts create mode 100644 mini-app/src/vant/nav-bar/index.js create mode 100644 mini-app/src/vant/nav-bar/index.json create mode 100644 mini-app/src/vant/nav-bar/index.wxml create mode 100644 mini-app/src/vant/nav-bar/index.wxs create mode 100644 mini-app/src/vant/nav-bar/index.wxss create mode 100644 mini-app/src/vant/notice-bar/index.d.ts create mode 100644 mini-app/src/vant/notice-bar/index.js create mode 100644 mini-app/src/vant/notice-bar/index.json create mode 100644 mini-app/src/vant/notice-bar/index.wxml create mode 100644 mini-app/src/vant/notice-bar/index.wxss create mode 100644 mini-app/src/vant/notify/index.d.ts create mode 100644 mini-app/src/vant/notify/index.js create mode 100644 mini-app/src/vant/notify/index.json create mode 100644 mini-app/src/vant/notify/index.wxml create mode 100644 mini-app/src/vant/notify/index.wxss create mode 100644 mini-app/src/vant/notify/notify.d.ts create mode 100644 mini-app/src/vant/notify/notify.js create mode 100644 mini-app/src/vant/overlay/index.d.ts create mode 100644 mini-app/src/vant/overlay/index.js create mode 100644 mini-app/src/vant/overlay/index.json create mode 100644 mini-app/src/vant/overlay/index.wxml create mode 100644 mini-app/src/vant/overlay/index.wxss create mode 100644 mini-app/src/vant/panel/index.d.ts create mode 100644 mini-app/src/vant/panel/index.js create mode 100644 mini-app/src/vant/panel/index.json create mode 100644 mini-app/src/vant/panel/index.wxml create mode 100644 mini-app/src/vant/panel/index.wxss create mode 100644 mini-app/src/vant/picker-column/index.d.ts create mode 100644 mini-app/src/vant/picker-column/index.js create mode 100644 mini-app/src/vant/picker-column/index.json create mode 100644 mini-app/src/vant/picker-column/index.wxml create mode 100644 mini-app/src/vant/picker-column/index.wxs create mode 100644 mini-app/src/vant/picker-column/index.wxss create mode 100644 mini-app/src/vant/picker/index.d.ts create mode 100644 mini-app/src/vant/picker/index.js create mode 100644 mini-app/src/vant/picker/index.json create mode 100644 mini-app/src/vant/picker/index.wxml create mode 100644 mini-app/src/vant/picker/index.wxss create mode 100644 mini-app/src/vant/picker/shared.d.ts create mode 100644 mini-app/src/vant/picker/shared.js create mode 100644 mini-app/src/vant/picker/toolbar.wxml create mode 100644 mini-app/src/vant/popup/index.d.ts create mode 100644 mini-app/src/vant/popup/index.js create mode 100644 mini-app/src/vant/popup/index.json create mode 100644 mini-app/src/vant/popup/index.wxml create mode 100644 mini-app/src/vant/popup/index.wxs create mode 100644 mini-app/src/vant/popup/index.wxss create mode 100644 mini-app/src/vant/progress/index.d.ts create mode 100644 mini-app/src/vant/progress/index.js create mode 100644 mini-app/src/vant/progress/index.json create mode 100644 mini-app/src/vant/progress/index.wxml create mode 100644 mini-app/src/vant/progress/index.wxs create mode 100644 mini-app/src/vant/progress/index.wxss create mode 100644 mini-app/src/vant/radio-group/index.d.ts create mode 100644 mini-app/src/vant/radio-group/index.js create mode 100644 mini-app/src/vant/radio-group/index.json create mode 100644 mini-app/src/vant/radio-group/index.wxml create mode 100644 mini-app/src/vant/radio-group/index.wxss create mode 100644 mini-app/src/vant/radio/index.d.ts create mode 100644 mini-app/src/vant/radio/index.js create mode 100644 mini-app/src/vant/radio/index.json create mode 100644 mini-app/src/vant/radio/index.wxml create mode 100644 mini-app/src/vant/radio/index.wxss create mode 100644 mini-app/src/vant/rate/index.d.ts create mode 100644 mini-app/src/vant/rate/index.js create mode 100644 mini-app/src/vant/rate/index.json create mode 100644 mini-app/src/vant/rate/index.wxml create mode 100644 mini-app/src/vant/rate/index.wxss create mode 100644 mini-app/src/vant/row/index.d.ts create mode 100644 mini-app/src/vant/row/index.js create mode 100644 mini-app/src/vant/row/index.json create mode 100644 mini-app/src/vant/row/index.wxml create mode 100644 mini-app/src/vant/row/index.wxss create mode 100644 mini-app/src/vant/search/index.d.ts create mode 100644 mini-app/src/vant/search/index.js create mode 100644 mini-app/src/vant/search/index.json create mode 100644 mini-app/src/vant/search/index.wxml create mode 100644 mini-app/src/vant/search/index.wxss create mode 100644 mini-app/src/vant/share-sheet/index.d.ts create mode 100644 mini-app/src/vant/share-sheet/index.js create mode 100644 mini-app/src/vant/share-sheet/index.json create mode 100644 mini-app/src/vant/share-sheet/index.wxml create mode 100644 mini-app/src/vant/share-sheet/index.wxs create mode 100644 mini-app/src/vant/share-sheet/index.wxss create mode 100644 mini-app/src/vant/share-sheet/options.d.ts create mode 100644 mini-app/src/vant/share-sheet/options.js create mode 100644 mini-app/src/vant/share-sheet/options.json create mode 100644 mini-app/src/vant/share-sheet/options.wxml create mode 100644 mini-app/src/vant/share-sheet/options.wxs create mode 100644 mini-app/src/vant/share-sheet/options.wxss create mode 100644 mini-app/src/vant/sidebar-item/index.d.ts create mode 100644 mini-app/src/vant/sidebar-item/index.js create mode 100644 mini-app/src/vant/sidebar-item/index.json create mode 100644 mini-app/src/vant/sidebar-item/index.wxml create mode 100644 mini-app/src/vant/sidebar-item/index.wxss create mode 100644 mini-app/src/vant/sidebar/index.d.ts create mode 100644 mini-app/src/vant/sidebar/index.js create mode 100644 mini-app/src/vant/sidebar/index.json create mode 100644 mini-app/src/vant/sidebar/index.wxml create mode 100644 mini-app/src/vant/sidebar/index.wxss create mode 100644 mini-app/src/vant/skeleton/index.d.ts create mode 100644 mini-app/src/vant/skeleton/index.js create mode 100644 mini-app/src/vant/skeleton/index.json create mode 100644 mini-app/src/vant/skeleton/index.wxml create mode 100644 mini-app/src/vant/skeleton/index.wxss create mode 100644 mini-app/src/vant/slider/index.d.ts create mode 100644 mini-app/src/vant/slider/index.js create mode 100644 mini-app/src/vant/slider/index.json create mode 100644 mini-app/src/vant/slider/index.wxml create mode 100644 mini-app/src/vant/slider/index.wxs create mode 100644 mini-app/src/vant/slider/index.wxss create mode 100644 mini-app/src/vant/stepper/index.d.ts create mode 100644 mini-app/src/vant/stepper/index.js create mode 100644 mini-app/src/vant/stepper/index.json create mode 100644 mini-app/src/vant/stepper/index.wxml create mode 100644 mini-app/src/vant/stepper/index.wxss create mode 100644 mini-app/src/vant/steps/index.d.ts create mode 100644 mini-app/src/vant/steps/index.js create mode 100644 mini-app/src/vant/steps/index.json create mode 100644 mini-app/src/vant/steps/index.wxml create mode 100644 mini-app/src/vant/steps/index.wxss create mode 100644 mini-app/src/vant/sticky/index.d.ts create mode 100644 mini-app/src/vant/sticky/index.js create mode 100644 mini-app/src/vant/sticky/index.json create mode 100644 mini-app/src/vant/sticky/index.wxml create mode 100644 mini-app/src/vant/sticky/index.wxs create mode 100644 mini-app/src/vant/sticky/index.wxss create mode 100644 mini-app/src/vant/submit-bar/index.d.ts create mode 100644 mini-app/src/vant/submit-bar/index.js create mode 100644 mini-app/src/vant/submit-bar/index.json create mode 100644 mini-app/src/vant/submit-bar/index.wxml create mode 100644 mini-app/src/vant/submit-bar/index.wxss create mode 100644 mini-app/src/vant/swipe-cell/index.d.ts create mode 100644 mini-app/src/vant/swipe-cell/index.js create mode 100644 mini-app/src/vant/swipe-cell/index.json create mode 100644 mini-app/src/vant/swipe-cell/index.wxml create mode 100644 mini-app/src/vant/swipe-cell/index.wxss create mode 100644 mini-app/src/vant/switch/index.d.ts create mode 100644 mini-app/src/vant/switch/index.js create mode 100644 mini-app/src/vant/switch/index.json create mode 100644 mini-app/src/vant/switch/index.wxml create mode 100644 mini-app/src/vant/switch/index.wxss create mode 100644 mini-app/src/vant/tab/index.d.ts create mode 100644 mini-app/src/vant/tab/index.js create mode 100644 mini-app/src/vant/tab/index.json create mode 100644 mini-app/src/vant/tab/index.wxml create mode 100644 mini-app/src/vant/tab/index.wxss create mode 100644 mini-app/src/vant/tabbar-item/index.d.ts create mode 100644 mini-app/src/vant/tabbar-item/index.js create mode 100644 mini-app/src/vant/tabbar-item/index.json create mode 100644 mini-app/src/vant/tabbar-item/index.wxml create mode 100644 mini-app/src/vant/tabbar-item/index.wxss create mode 100644 mini-app/src/vant/tabbar/index.d.ts create mode 100644 mini-app/src/vant/tabbar/index.js create mode 100644 mini-app/src/vant/tabbar/index.json create mode 100644 mini-app/src/vant/tabbar/index.wxml create mode 100644 mini-app/src/vant/tabbar/index.wxss create mode 100644 mini-app/src/vant/tabs/index.d.ts create mode 100644 mini-app/src/vant/tabs/index.js create mode 100644 mini-app/src/vant/tabs/index.json create mode 100644 mini-app/src/vant/tabs/index.wxml create mode 100644 mini-app/src/vant/tabs/index.wxs create mode 100644 mini-app/src/vant/tabs/index.wxss create mode 100644 mini-app/src/vant/tag/index.d.ts create mode 100644 mini-app/src/vant/tag/index.js create mode 100644 mini-app/src/vant/tag/index.json create mode 100644 mini-app/src/vant/tag/index.wxml create mode 100644 mini-app/src/vant/tag/index.wxss create mode 100644 mini-app/src/vant/toast/index.d.ts create mode 100644 mini-app/src/vant/toast/index.js create mode 100644 mini-app/src/vant/toast/index.json create mode 100644 mini-app/src/vant/toast/index.wxml create mode 100644 mini-app/src/vant/toast/index.wxss create mode 100644 mini-app/src/vant/toast/toast.d.ts create mode 100644 mini-app/src/vant/toast/toast.js create mode 100644 mini-app/src/vant/transition/index.d.ts create mode 100644 mini-app/src/vant/transition/index.js create mode 100644 mini-app/src/vant/transition/index.json create mode 100644 mini-app/src/vant/transition/index.wxml create mode 100644 mini-app/src/vant/transition/index.wxss create mode 100644 mini-app/src/vant/tree-select/index.d.ts create mode 100644 mini-app/src/vant/tree-select/index.js create mode 100644 mini-app/src/vant/tree-select/index.json create mode 100644 mini-app/src/vant/tree-select/index.wxml create mode 100644 mini-app/src/vant/tree-select/index.wxs create mode 100644 mini-app/src/vant/tree-select/index.wxss create mode 100644 mini-app/src/vant/uploader/index.d.ts create mode 100644 mini-app/src/vant/uploader/index.js create mode 100644 mini-app/src/vant/uploader/index.json create mode 100644 mini-app/src/vant/uploader/index.wxml create mode 100644 mini-app/src/vant/uploader/index.wxss create mode 100644 mini-app/src/vant/uploader/shared.d.ts create mode 100644 mini-app/src/vant/uploader/shared.js create mode 100644 mini-app/src/vant/uploader/utils.d.ts create mode 100644 mini-app/src/vant/uploader/utils.js create mode 100644 mini-app/src/vant/wxs/add-unit.wxs create mode 100644 mini-app/src/vant/wxs/array.wxs create mode 100644 mini-app/src/vant/wxs/bem.wxs create mode 100644 mini-app/src/vant/wxs/memoize.wxs create mode 100644 mini-app/src/vant/wxs/object.wxs create mode 100644 mini-app/src/vant/wxs/style.wxs create mode 100644 mini-app/src/vant/wxs/utils.wxs create mode 100644 mini-app/src/xiao4rBase.js create mode 100644 mini-app/static/.gitignore create mode 100644 mini-app/static/img/index/head.png create mode 100644 mini-app/weapp/apis/userApis.js create mode 100644 mini-app/weapp/apis/xiao4rApis.js create mode 100644 mini-app/weapp/app.js create mode 100644 mini-app/weapp/app.json create mode 100644 mini-app/weapp/app.wxss create mode 100644 mini-app/weapp/common/eventHub.js create mode 100644 mini-app/weapp/components/mall/mall-bbs.js create mode 100644 mini-app/weapp/components/mall/mall-bbs.json create mode 100644 mini-app/weapp/components/mall/mall-bbs.wxml create mode 100644 mini-app/weapp/components/mall/mall-bbs.wxss create mode 100644 mini-app/weapp/components/mall/mall-car.js create mode 100644 mini-app/weapp/components/mall/mall-car.json create mode 100644 mini-app/weapp/components/mall/mall-car.wxml create mode 100644 mini-app/weapp/components/mall/mall-car.wxss create mode 100644 mini-app/weapp/components/mall/mall-home.js create mode 100644 mini-app/weapp/components/mall/mall-home.json create mode 100644 mini-app/weapp/components/mall/mall-home.wxml create mode 100644 mini-app/weapp/components/mall/mall-home.wxss create mode 100644 mini-app/weapp/components/mall/mall-my.js create mode 100644 mini-app/weapp/components/mall/mall-my.json create mode 100644 mini-app/weapp/components/mall/mall-my.wxml create mode 100644 mini-app/weapp/components/mall/mall-my.wxss create mode 100644 mini-app/weapp/components/mall/mall-shopping.js create mode 100644 mini-app/weapp/components/mall/mall-shopping.json create mode 100644 mini-app/weapp/components/mall/mall-shopping.wxml create mode 100644 mini-app/weapp/components/mall/mall-shopping.wxss create mode 100644 mini-app/weapp/components/nav-bar.js create mode 100644 mini-app/weapp/components/nav-bar.json create mode 100644 mini-app/weapp/components/nav-bar.wxml create mode 100644 mini-app/weapp/components/nav-bar.wxss create mode 100644 mini-app/weapp/components/user/dialog-registration.js create mode 100644 mini-app/weapp/components/user/dialog-registration.json create mode 100644 mini-app/weapp/components/user/dialog-registration.wxml create mode 100644 mini-app/weapp/components/user/dialog-registration.wxss create mode 100644 mini-app/weapp/config.js create mode 100644 mini-app/weapp/js/request.js create mode 100644 mini-app/weapp/js/utils/uuid.js create mode 100644 mini-app/weapp/js/utils/validateUtils.js create mode 100644 mini-app/weapp/pages/form1.js create mode 100644 mini-app/weapp/pages/form1.json create mode 100644 mini-app/weapp/pages/form1.wxml create mode 100644 mini-app/weapp/pages/form1.wxss create mode 100644 mini-app/weapp/pages/form2.js create mode 100644 mini-app/weapp/pages/form2.json create mode 100644 mini-app/weapp/pages/form2.wxml create mode 100644 mini-app/weapp/pages/form2.wxss create mode 100644 mini-app/weapp/pages/form3.js create mode 100644 mini-app/weapp/pages/form3.json create mode 100644 mini-app/weapp/pages/form3.wxml create mode 100644 mini-app/weapp/pages/form3.wxss create mode 100644 mini-app/weapp/pages/form4.js create mode 100644 mini-app/weapp/pages/form4.json create mode 100644 mini-app/weapp/pages/form4.wxml create mode 100644 mini-app/weapp/pages/form4.wxss create mode 100644 mini-app/weapp/pages/form5.js create mode 100644 mini-app/weapp/pages/form5.json create mode 100644 mini-app/weapp/pages/form5.wxml create mode 100644 mini-app/weapp/pages/form5.wxss create mode 100644 mini-app/weapp/pages/form6.js create mode 100644 mini-app/weapp/pages/form6.json create mode 100644 mini-app/weapp/pages/form6.wxml create mode 100644 mini-app/weapp/pages/form6.wxss create mode 100644 mini-app/weapp/pages/index.js create mode 100644 mini-app/weapp/pages/index.json create mode 100644 mini-app/weapp/pages/index.wxml create mode 100644 mini-app/weapp/pages/index.wxss create mode 100644 mini-app/weapp/pages/mall/goods-detail.js create mode 100644 mini-app/weapp/pages/mall/goods-detail.json create mode 100644 mini-app/weapp/pages/mall/goods-detail.wxml create mode 100644 mini-app/weapp/pages/mall/goods-detail.wxss create mode 100644 mini-app/weapp/pages/mall/index.js create mode 100644 mini-app/weapp/pages/mall/index.json create mode 100644 mini-app/weapp/pages/mall/index.wxml create mode 100644 mini-app/weapp/pages/mall/index.wxss create mode 100644 mini-app/weapp/sitemap.json create mode 100644 mini-app/weapp/static/.gitignore create mode 100644 mini-app/weapp/static/img/index/head.png create mode 100644 mini-app/weapp/store/index.js create mode 100644 mini-app/weapp/store/wineryForm.js create mode 100644 mini-app/weapp/vant/button/index.js create mode 100644 mini-app/weapp/vant/button/index.json create mode 100644 mini-app/weapp/vant/button/index.wxml create mode 100644 mini-app/weapp/vant/button/index.wxs create mode 100644 mini-app/weapp/vant/button/index.wxss create mode 100644 mini-app/weapp/vant/card/index.js create mode 100644 mini-app/weapp/vant/card/index.json create mode 100644 mini-app/weapp/vant/card/index.wxml create mode 100644 mini-app/weapp/vant/card/index.wxss create mode 100644 mini-app/weapp/vant/cell-group/index.js create mode 100644 mini-app/weapp/vant/cell-group/index.json create mode 100644 mini-app/weapp/vant/cell-group/index.wxml create mode 100644 mini-app/weapp/vant/cell-group/index.wxss create mode 100644 mini-app/weapp/vant/cell/index.js create mode 100644 mini-app/weapp/vant/cell/index.json create mode 100644 mini-app/weapp/vant/cell/index.wxml create mode 100644 mini-app/weapp/vant/cell/index.wxss create mode 100644 mini-app/weapp/vant/checkbox-group/index.js create mode 100644 mini-app/weapp/vant/checkbox-group/index.json create mode 100644 mini-app/weapp/vant/checkbox-group/index.wxml create mode 100644 mini-app/weapp/vant/checkbox-group/index.wxss create mode 100644 mini-app/weapp/vant/checkbox/index.js create mode 100644 mini-app/weapp/vant/checkbox/index.json create mode 100644 mini-app/weapp/vant/checkbox/index.wxml create mode 100644 mini-app/weapp/vant/checkbox/index.wxs create mode 100644 mini-app/weapp/vant/checkbox/index.wxss create mode 100644 mini-app/weapp/vant/col/index.js create mode 100644 mini-app/weapp/vant/col/index.json create mode 100644 mini-app/weapp/vant/col/index.wxml create mode 100644 mini-app/weapp/vant/col/index.wxss create mode 100644 mini-app/weapp/vant/common/color.js create mode 100644 mini-app/weapp/vant/common/component.js create mode 100644 mini-app/weapp/vant/common/index.wxss create mode 100644 mini-app/weapp/vant/common/utils.js create mode 100644 mini-app/weapp/vant/common/validator.js create mode 100644 mini-app/weapp/vant/common/version.js create mode 100644 mini-app/weapp/vant/datetime-picker/index.js create mode 100644 mini-app/weapp/vant/datetime-picker/index.json create mode 100644 mini-app/weapp/vant/datetime-picker/index.wxml create mode 100644 mini-app/weapp/vant/datetime-picker/index.wxss create mode 100644 mini-app/weapp/vant/dialog/index.js create mode 100644 mini-app/weapp/vant/dialog/index.json create mode 100644 mini-app/weapp/vant/dialog/index.wxml create mode 100644 mini-app/weapp/vant/dialog/index.wxss create mode 100644 mini-app/weapp/vant/divider/index.js create mode 100644 mini-app/weapp/vant/divider/index.json create mode 100644 mini-app/weapp/vant/divider/index.wxml create mode 100644 mini-app/weapp/vant/divider/index.wxss create mode 100644 mini-app/weapp/vant/field/index.js create mode 100644 mini-app/weapp/vant/field/index.json create mode 100644 mini-app/weapp/vant/field/index.wxml create mode 100644 mini-app/weapp/vant/field/index.wxs create mode 100644 mini-app/weapp/vant/field/index.wxss create mode 100644 mini-app/weapp/vant/field/props.js create mode 100644 mini-app/weapp/vant/goods-action-button/index.js create mode 100644 mini-app/weapp/vant/goods-action-button/index.json create mode 100644 mini-app/weapp/vant/goods-action-button/index.wxml create mode 100644 mini-app/weapp/vant/goods-action-button/index.wxss create mode 100644 mini-app/weapp/vant/goods-action-icon/index.js create mode 100644 mini-app/weapp/vant/goods-action-icon/index.json create mode 100644 mini-app/weapp/vant/goods-action-icon/index.wxml create mode 100644 mini-app/weapp/vant/goods-action-icon/index.wxss create mode 100644 mini-app/weapp/vant/goods-action/index.js create mode 100644 mini-app/weapp/vant/goods-action/index.json create mode 100644 mini-app/weapp/vant/goods-action/index.wxml create mode 100644 mini-app/weapp/vant/goods-action/index.wxss create mode 100644 mini-app/weapp/vant/grid-item/index.js create mode 100644 mini-app/weapp/vant/grid-item/index.json create mode 100644 mini-app/weapp/vant/grid-item/index.wxml create mode 100644 mini-app/weapp/vant/grid-item/index.wxs create mode 100644 mini-app/weapp/vant/grid-item/index.wxss create mode 100644 mini-app/weapp/vant/grid/index.js create mode 100644 mini-app/weapp/vant/grid/index.json create mode 100644 mini-app/weapp/vant/grid/index.wxml create mode 100644 mini-app/weapp/vant/grid/index.wxs create mode 100644 mini-app/weapp/vant/grid/index.wxss create mode 100644 mini-app/weapp/vant/icon/index.js create mode 100644 mini-app/weapp/vant/icon/index.json create mode 100644 mini-app/weapp/vant/icon/index.wxml create mode 100644 mini-app/weapp/vant/icon/index.wxs create mode 100644 mini-app/weapp/vant/icon/index.wxss create mode 100644 mini-app/weapp/vant/image/index.js create mode 100644 mini-app/weapp/vant/image/index.json create mode 100644 mini-app/weapp/vant/image/index.wxml create mode 100644 mini-app/weapp/vant/image/index.wxs create mode 100644 mini-app/weapp/vant/image/index.wxss create mode 100644 mini-app/weapp/vant/info/index.js create mode 100644 mini-app/weapp/vant/info/index.json create mode 100644 mini-app/weapp/vant/info/index.wxml create mode 100644 mini-app/weapp/vant/info/index.wxss create mode 100644 mini-app/weapp/vant/loading/index.js create mode 100644 mini-app/weapp/vant/loading/index.json create mode 100644 mini-app/weapp/vant/loading/index.wxml create mode 100644 mini-app/weapp/vant/loading/index.wxss create mode 100644 mini-app/weapp/vant/mixins/basic.js create mode 100644 mini-app/weapp/vant/mixins/button.js create mode 100644 mini-app/weapp/vant/mixins/link.js create mode 100644 mini-app/weapp/vant/mixins/open-type.js create mode 100644 mini-app/weapp/vant/mixins/transition.js create mode 100644 mini-app/weapp/vant/nav-bar/index.js create mode 100644 mini-app/weapp/vant/nav-bar/index.json create mode 100644 mini-app/weapp/vant/nav-bar/index.wxml create mode 100644 mini-app/weapp/vant/nav-bar/index.wxs create mode 100644 mini-app/weapp/vant/nav-bar/index.wxss create mode 100644 mini-app/weapp/vant/overlay/index.js create mode 100644 mini-app/weapp/vant/overlay/index.json create mode 100644 mini-app/weapp/vant/overlay/index.wxml create mode 100644 mini-app/weapp/vant/overlay/index.wxss create mode 100644 mini-app/weapp/vant/panel/index.js create mode 100644 mini-app/weapp/vant/panel/index.json create mode 100644 mini-app/weapp/vant/panel/index.wxml create mode 100644 mini-app/weapp/vant/panel/index.wxss create mode 100644 mini-app/weapp/vant/picker-column/index.js create mode 100644 mini-app/weapp/vant/picker-column/index.json create mode 100644 mini-app/weapp/vant/picker-column/index.wxml create mode 100644 mini-app/weapp/vant/picker-column/index.wxs create mode 100644 mini-app/weapp/vant/picker-column/index.wxss create mode 100644 mini-app/weapp/vant/picker/index.js create mode 100644 mini-app/weapp/vant/picker/index.json create mode 100644 mini-app/weapp/vant/picker/index.wxml create mode 100644 mini-app/weapp/vant/picker/index.wxss create mode 100644 mini-app/weapp/vant/picker/shared.js create mode 100644 mini-app/weapp/vant/popup/index.js create mode 100644 mini-app/weapp/vant/popup/index.json create mode 100644 mini-app/weapp/vant/popup/index.wxml create mode 100644 mini-app/weapp/vant/popup/index.wxs create mode 100644 mini-app/weapp/vant/popup/index.wxss create mode 100644 mini-app/weapp/vant/radio-group/index.js create mode 100644 mini-app/weapp/vant/radio-group/index.json create mode 100644 mini-app/weapp/vant/radio-group/index.wxml create mode 100644 mini-app/weapp/vant/radio-group/index.wxss create mode 100644 mini-app/weapp/vant/radio/index.js create mode 100644 mini-app/weapp/vant/radio/index.json create mode 100644 mini-app/weapp/vant/radio/index.wxml create mode 100644 mini-app/weapp/vant/radio/index.wxss create mode 100644 mini-app/weapp/vant/row/index.js create mode 100644 mini-app/weapp/vant/row/index.json create mode 100644 mini-app/weapp/vant/row/index.wxml create mode 100644 mini-app/weapp/vant/row/index.wxss create mode 100644 mini-app/weapp/vant/stepper/index.js create mode 100644 mini-app/weapp/vant/stepper/index.json create mode 100644 mini-app/weapp/vant/stepper/index.wxml create mode 100644 mini-app/weapp/vant/stepper/index.wxss create mode 100644 mini-app/weapp/vant/steps/index.js create mode 100644 mini-app/weapp/vant/steps/index.json create mode 100644 mini-app/weapp/vant/steps/index.wxml create mode 100644 mini-app/weapp/vant/steps/index.wxss create mode 100644 mini-app/weapp/vant/submit-bar/index.js create mode 100644 mini-app/weapp/vant/submit-bar/index.json create mode 100644 mini-app/weapp/vant/submit-bar/index.wxml create mode 100644 mini-app/weapp/vant/submit-bar/index.wxss create mode 100644 mini-app/weapp/vant/tabbar-item/index.js create mode 100644 mini-app/weapp/vant/tabbar-item/index.json create mode 100644 mini-app/weapp/vant/tabbar-item/index.wxml create mode 100644 mini-app/weapp/vant/tabbar-item/index.wxss create mode 100644 mini-app/weapp/vant/tabbar/index.js create mode 100644 mini-app/weapp/vant/tabbar/index.json create mode 100644 mini-app/weapp/vant/tabbar/index.wxml create mode 100644 mini-app/weapp/vant/tabbar/index.wxss create mode 100644 mini-app/weapp/vant/tag/index.js create mode 100644 mini-app/weapp/vant/tag/index.json create mode 100644 mini-app/weapp/vant/tag/index.wxml create mode 100644 mini-app/weapp/vant/tag/index.wxss create mode 100644 mini-app/weapp/vant/transition/index.js create mode 100644 mini-app/weapp/vant/transition/index.json create mode 100644 mini-app/weapp/vant/transition/index.wxml create mode 100644 mini-app/weapp/vant/transition/index.wxss create mode 100644 mini-app/weapp/vant/wxs/add-unit.wxs create mode 100644 mini-app/weapp/vant/wxs/array.wxs create mode 100644 mini-app/weapp/vant/wxs/bem.wxs create mode 100644 mini-app/weapp/vant/wxs/memoize.wxs create mode 100644 mini-app/weapp/vant/wxs/object.wxs create mode 100644 mini-app/weapp/vant/wxs/style.wxs create mode 100644 mini-app/weapp/vant/wxs/utils.wxs create mode 100644 mini-app/weapp/vendor.js create mode 100644 mini-app/weapp/xiao4rBase.js create mode 100644 mini-app/wepy.config.js diff --git a/mini-app/.editorconfig b/mini-app/.editorconfig new file mode 100644 index 000000000..9d08a1a82 --- /dev/null +++ b/mini-app/.editorconfig @@ -0,0 +1,9 @@ +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true diff --git a/mini-app/.eslintignore b/mini-app/.eslintignore new file mode 100644 index 000000000..a261f2917 --- /dev/null +++ b/mini-app/.eslintignore @@ -0,0 +1 @@ +dist/* diff --git a/mini-app/.eslintrc.js b/mini-app/.eslintrc.js new file mode 100644 index 000000000..030a22e87 --- /dev/null +++ b/mini-app/.eslintrc.js @@ -0,0 +1,32 @@ +module.exports = { + root: true, + globals: { wx: true }, + parser: 'babel-eslint', + parserOptions: { + sourceType: 'module' + }, + env: { + browser: true, + node: true, + es6: true + }, + // https://github.com/feross/standard/blob/master/RULES.md#javascript-standard-style + extends: 'standard', + // required to lint *.wpy files + plugins: [ + 'html' + ], + settings: { + 'html/html-extensions': ['.html', '.wpy'] + }, + // add your custom rules here + 'rules': { + // allow paren-less arrow functions + 'arrow-parens': 0, + // allow async-await + 'generator-star-spacing': 0, + // allow debugger during development + 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0, + 'space-before-function-paren': 0 + } +}; diff --git a/mini-app/.prettierrc b/mini-app/.prettierrc new file mode 100644 index 000000000..544138be4 --- /dev/null +++ b/mini-app/.prettierrc @@ -0,0 +1,3 @@ +{ + "singleQuote": true +} diff --git a/mini-app/.wepyignore b/mini-app/.wepyignore new file mode 100644 index 000000000..e4f5602c8 --- /dev/null +++ b/mini-app/.wepyignore @@ -0,0 +1,4 @@ +node_modules +dist +.DS_Store +*.wpy___jb_tmp___ diff --git a/mini-app/package.json b/mini-app/package.json new file mode 100644 index 000000000..def55ee03 --- /dev/null +++ b/mini-app/package.json @@ -0,0 +1,42 @@ +{ + "name": "hope_wine", + "version": "0.0.2", + "description": "A WePY project", + "main": "weapp/app.js", + "scripts": { + "dev": "./node_modules/.bin/wepy build --watch", + "build": "cross-env NODE_ENV=production ./node_modules/.bin/wepy build --no-cache", + "clean": "rm -rf weapp", + "test": "echo \"Error: no test specified\" && exit 1" + }, + "wepy": { + "module-a": false, + "./src/components/list": "./src/components/wepy-list.wpy" + }, + "author": "Machengtianjiang ", + "license": "MIT", + "dependencies": { + "@wepy/core": "^2.0.0-alpha.16", + "@wepy/x": "^2.0.2", + "miniprogram-slide-view": "0.0.3" + }, + "devDependencies": { + "@babel/core": "^7.1.0", + "@babel/plugin-proposal-class-properties": "^7.12.1", + "@babel/preset-env": "^7.1.0", + "@wepy/babel-plugin-import-regenerator": "0.0.2", + "@wepy/cli": "^2.0.0-alpha.28", + "@wepy/compiler-babel": "^2.0.1", + "@wepy/compiler-less": "^2.0.1", + "babel-eslint": "^7.2.1", + "cross-env": "^5.1.3", + "eslint": "^3.18.0", + "eslint-config-standard": "^7.1.0", + "eslint-friendly-formatter": "^2.0.7", + "eslint-plugin-html": "^2.0.1", + "eslint-plugin-promise": "^3.5.0", + "eslint-plugin-standard": "^2.0.1", + "less": "^3.8.1", + "wepy-eslint": "^1.5.3" + } +} diff --git a/mini-app/project.config.json b/mini-app/project.config.json new file mode 100644 index 000000000..353f5131e --- /dev/null +++ b/mini-app/project.config.json @@ -0,0 +1,112 @@ +{ + "description": "A WePY project", + "setting": { + "urlCheck": false, + "es6": false, + "enhance": true, + "postcss": false, + "preloadBackgroundData": false, + "minified": false, + "newFeature": true, + "coverView": true, + "nodeModules": true, + "autoAudits": false, + "showShadowRootInWxmlPanel": true, + "scopeDataCheck": false, + "checkInvalidKey": true, + "checkSiteMap": true, + "uploadWithSourceMap": true, + "babelSetting": { + "ignore": [], + "disablePlugins": [], + "outputPath": "" + } + }, + "compileType": "miniprogram", + "appid": "wx76ec015fc31a1946", + "projectname": "hope_wine", + "miniprogramRoot": "weapp/", + "simulatorType": "wechat", + "simulatorPluginLibVersion": {}, + "condition": { + "search": { + "current": -1, + "list": [] + }, + "conversation": { + "current": -1, + "list": [] + }, + "plugin": { + "current": -1, + "list": [] + }, + "game": { + "list": [] + }, + "gamePlugin": { + "current": -1, + "list": [] + }, + "miniprogram": { + "current": -1, + "list": [ + { + "id": -1, + "name": "pages/form1", + "pathName": "pages/form1", + "query": "", + "scene": null + }, + { + "id": -1, + "name": "pages/form2", + "pathName": "pages/form2", + "query": "", + "scene": null + }, + { + "id": -1, + "name": "pages/form3", + "pathName": "pages/form3", + "query": "", + "scene": null + }, + { + "id": -1, + "name": "pages/form4", + "pathName": "pages/form4", + "query": "", + "scene": null + }, + { + "id": -1, + "name": "pages/form5", + "pathName": "pages/form5", + "query": "", + "scene": null + }, + { + "id": -1, + "name": "pages/form6", + "pathName": "pages/form6", + "query": "", + "scene": null + }, + { + "id": -1, + "name": "商城首页", + "pathName": "pages/mall/index", + "query": "", + "scene": null + }, + { + "id": -1, + "name": "商品详情", + "pathName": "pages/mall/goods-detail", + "scene": null + } + ] + } + } +} \ No newline at end of file diff --git a/mini-app/src/apis/userApis.js b/mini-app/src/apis/userApis.js new file mode 100644 index 000000000..f14e11d0b --- /dev/null +++ b/mini-app/src/apis/userApis.js @@ -0,0 +1,65 @@ + +import request from '../js/request' +import { baseUrl, formHeader, jsonHeader } from './xiao4rApis' +import { MINI_DEPTID } from '../config' + +/** + * 用户相关接口 + */ +class UserApis { + /** + * 注册 + * @param data + * @returns {Promise实例对象} + */ + registrationByMini(data) { + data.deptId = MINI_DEPTID + return request.post({ + url: baseUrl + 'mini/user/registrationByMini', + data: data + }) + } + + /** + * 登录 + * @param data + * @returns {Promise实例对象} + */ + loginByMini(data) { + data.deptId = MINI_DEPTID + return request.post({ + url: baseUrl + 'mini/user/loginByMini', + data: data + }) + } + + getSession(code) { + return request.get({ + url: baseUrl + 'mini/user/getSession', + header: formHeader, + data: { + 'code': code, + 'deptId': MINI_DEPTID + } + }) + } + + sendMobile(data) { + data.deptId = MINI_DEPTID + return request.post({ + url: baseUrl + 'mini/user/sendMobile', + header: jsonHeader, + data: data + }) + } + + getAuthTest(data) { + return request.get({ + url: baseUrl + 'mini/user/test', + header: formHeader, + data: data + }) + } +} + +export default new UserApis() diff --git a/mini-app/src/apis/xiao4rApis.js b/mini-app/src/apis/xiao4rApis.js new file mode 100644 index 000000000..8ab359fc6 --- /dev/null +++ b/mini-app/src/apis/xiao4rApis.js @@ -0,0 +1,38 @@ + +import request from '../js/request' + +export const baseUrl = 'http://127.0.0.1:18989/winery/' +// export const baseUrl = 'http://36.1.50.18:18989/winery/' +// export const baseUrl = 'http://62.234.123.172:18989/api/' +// export const baseUrl = 'https://www.xiao4r.com/wine/winery/' + +export const jsonHeader = { + 'Content-Type': 'application/json' +} + +export const formHeader = { + 'Content-Type': 'application/x-www-form-urlencoded' +} + +/** + * 接口 + */ +class Xiao4rApis { + postForm(data) { + return request.post({ + url: baseUrl + 'mini/postForm', + header: jsonHeader, + data: data + }) + } + + getForm(data) { + return request.get({ + url: baseUrl + 'mini/getForm', + header: formHeader, + data: data + }) + } +} + +export default new Xiao4rApis() diff --git a/mini-app/src/app.wpy b/mini-app/src/app.wpy new file mode 100644 index 000000000..d9f6ecdde --- /dev/null +++ b/mini-app/src/app.wpy @@ -0,0 +1,143 @@ + + + + +{ +pages: [ +'pages/index', +'pages/form1', +'pages/form2', +'pages/form3', +'pages/form4', +'pages/form5', +'pages/form6', +'pages/mall/index', +'pages/mall/goods-detail' +], +navigateToMiniProgramAppIdList: [ +'wx88736d7d39e2eda6' +], +window: { +backgroundTextStyle: 'light', +navigationBarBackgroundColor: '#fff', +navigationBarTitleText: 'WeChat', +navigationBarTextStyle: 'white', +navigationStyle: 'custom', +}, +usingComponents: { +'nav-bar': './components/nav-bar', +'van-button': './vant/button/index', +'van-divider': './vant/divider/index', +'van-field': './vant/field/index', +'van-radio': './vant/radio/index', +'van-radio-group': './vant/radio-group/index', +'van-checkbox': './vant/checkbox/index', +'van-checkbox-group': './vant/checkbox-group/index', +'van-cell': './vant/cell/index', +'van-cell-group': './vant/cell-group/index', +'van-datetime-picker': './vant/datetime-picker/index', +'van-nav-bar': './vant/nav-bar/index', +'van-icon': './vant/icon/index', +'van-steps': './vant/steps/index', +'van-row': './vant/row/index', +'van-col': './vant/col/index', +'van-col': './vant/col/index', +'van-tabbar': './vant/tabbar/index', +'van-tabbar-item': './vant/tabbar-item/index', +'van-card': './vant/card/index', +'van-popup': './vant/popup/index', +'van-stepper': './vant/stepper/index', +'van-submit-bar': './vant/submit-bar/index', +'van-panel': './vant/panel/index', +"van-grid": "./vant/grid/index", +"van-grid-item": "./vant/grid-item/index", +"van-dialog": "./vant/dialog/index", +"van-image": "./vant/image/index" +} +} + diff --git a/mini-app/src/common/eventHub.js b/mini-app/src/common/eventHub.js new file mode 100644 index 000000000..491ddaea1 --- /dev/null +++ b/mini-app/src/common/eventHub.js @@ -0,0 +1,5 @@ +import wepy from '@wepy/core'; + +let eventHub = new wepy(); + +export default eventHub; diff --git a/mini-app/src/components/counter.wpy b/mini-app/src/components/counter.wpy new file mode 100644 index 000000000..c6bc2ac33 --- /dev/null +++ b/mini-app/src/components/counter.wpy @@ -0,0 +1,77 @@ + + + + diff --git a/mini-app/src/components/group.wpy b/mini-app/src/components/group.wpy new file mode 100644 index 000000000..94dcb8b1b --- /dev/null +++ b/mini-app/src/components/group.wpy @@ -0,0 +1,41 @@ + + + + +{ + usingComponents: { + 'groupitem': './groupitem' + } +} + diff --git a/mini-app/src/components/groupitem.wpy b/mini-app/src/components/groupitem.wpy new file mode 100644 index 000000000..a7db14128 --- /dev/null +++ b/mini-app/src/components/groupitem.wpy @@ -0,0 +1,28 @@ + + + diff --git a/mini-app/src/components/list.wpy b/mini-app/src/components/list.wpy new file mode 100644 index 000000000..d9c5b7b4f --- /dev/null +++ b/mini-app/src/components/list.wpy @@ -0,0 +1,48 @@ + + + diff --git a/mini-app/src/components/mall/mall-bbs.wpy b/mini-app/src/components/mall/mall-bbs.wpy new file mode 100644 index 000000000..53f777469 --- /dev/null +++ b/mini-app/src/components/mall/mall-bbs.wpy @@ -0,0 +1,108 @@ + + + + + +{ +navigationBarTitleText: '' +} + diff --git a/mini-app/src/components/mall/mall-car.wpy b/mini-app/src/components/mall/mall-car.wpy new file mode 100644 index 000000000..40e945ed5 --- /dev/null +++ b/mini-app/src/components/mall/mall-car.wpy @@ -0,0 +1,121 @@ + + + + +{ +navigationBarTitleText: '', +usingComponents: { +}, +styleIsolation: 'shared', +addGlobalClass: true, + +} + + diff --git a/mini-app/src/components/mall/mall-home.wpy b/mini-app/src/components/mall/mall-home.wpy new file mode 100644 index 000000000..aa5d3917a --- /dev/null +++ b/mini-app/src/components/mall/mall-home.wpy @@ -0,0 +1,49 @@ + + + + + +{ +navigationBarTitleText: '' +} + diff --git a/mini-app/src/components/mall/mall-my.wpy b/mini-app/src/components/mall/mall-my.wpy new file mode 100644 index 000000000..1ef56afe3 --- /dev/null +++ b/mini-app/src/components/mall/mall-my.wpy @@ -0,0 +1,45 @@ + + + + + +{ +navigationBarTitleText: '' +} + diff --git a/mini-app/src/components/mall/mall-shopping.wpy b/mini-app/src/components/mall/mall-shopping.wpy new file mode 100644 index 000000000..691cea7db --- /dev/null +++ b/mini-app/src/components/mall/mall-shopping.wpy @@ -0,0 +1,66 @@ + + + + +{ +navigationBarTitleText: '' +} + + diff --git a/mini-app/src/components/nav-bar.wpy b/mini-app/src/components/nav-bar.wpy new file mode 100644 index 000000000..4f60238d3 --- /dev/null +++ b/mini-app/src/components/nav-bar.wpy @@ -0,0 +1,43 @@ + + + diff --git a/mini-app/src/components/panel.wpy b/mini-app/src/components/panel.wpy new file mode 100644 index 000000000..1dc914a65 --- /dev/null +++ b/mini-app/src/components/panel.wpy @@ -0,0 +1,40 @@ + + diff --git a/mini-app/src/components/user/dialog-registration.wpy b/mini-app/src/components/user/dialog-registration.wpy new file mode 100644 index 000000000..d04f1a420 --- /dev/null +++ b/mini-app/src/components/user/dialog-registration.wpy @@ -0,0 +1,190 @@ + + + + + +{ +navigationBarTitleText: '' +} + diff --git a/mini-app/src/components/user/login.wpy b/mini-app/src/components/user/login.wpy new file mode 100644 index 000000000..89d8fe890 --- /dev/null +++ b/mini-app/src/components/user/login.wpy @@ -0,0 +1,49 @@ + + + + + +{ +navigationBarTitleText: '' +} + diff --git a/mini-app/src/components/wepy-list.wpy b/mini-app/src/components/wepy-list.wpy new file mode 100644 index 000000000..8c870c171 --- /dev/null +++ b/mini-app/src/components/wepy-list.wpy @@ -0,0 +1,58 @@ + + + diff --git a/mini-app/src/config.js b/mini-app/src/config.js new file mode 100644 index 000000000..6a7f27741 --- /dev/null +++ b/mini-app/src/config.js @@ -0,0 +1,5 @@ +/** + * 常量 + */ + +export const MINI_DEPTID = 100 diff --git a/mini-app/src/js/request.js b/mini-app/src/js/request.js new file mode 100644 index 000000000..2b4c617b8 --- /dev/null +++ b/mini-app/src/js/request.js @@ -0,0 +1,71 @@ +import xiao4rBase from '../xiao4rBase' +import { uuid } from './utils/uuid' +import store from '@/store' + +class Xiao4rRequest { + // 网络请求任务对象 Map + requestTaskMap = new Map() + + /** + * requestPromise用于将wx.request改写成Promise方式 + * @param:{string} myUrl 接口地址 + * @return: Promise实例对象 + */ + requestPromise(req) { + let id = uuid() + let self = this + + if (store.state.user.token) { + if (req.header) { + req.header['Authorization'] = store.state.user.token + } else { + req.header = { + Authorization: store.state.user.token + } + } + } + + let promise = new Promise((resolve, reject) => { + const task = wx.request({ + url: req.url, + method: req.method, + header: req.header, + data: req.data, + success: rsp => resolve(rsp.data), + fail: error => { + xiao4rBase.showToast('网络连接异常.') + reject(error) + }, + complete: () => { + this.requestTaskMap.delete(id) + } + }) + self.requestTaskMap.set(id, task) + }) + // 返回一个Promise实例对象 + promise.taskId = id + return promise + } + + post(req) { + req.method = 'POST' + return this.requestPromise(req) + } + + get(req) { + req.method = 'GET' + return this.requestPromise(req) + } + + put(req) { + req.method = 'PUT' + return this.requestPromise(req) + } + + del(req) { + req.method = 'DEL' + return this.requestPromise(req) + } +} + +export default new Xiao4rRequest() diff --git a/mini-app/src/js/utils/uuid.js b/mini-app/src/js/utils/uuid.js new file mode 100644 index 000000000..92701019d --- /dev/null +++ b/mini-app/src/js/utils/uuid.js @@ -0,0 +1,14 @@ + +export function uuid() { + var s = [] + var hexDigits = '0123456789abcdef' + for (var i = 0; i < 36; i++) { + s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1) + } + s[14] = '4' // bits 12-15 of the time_hi_and_version field to 0010 + s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1) // bits 6-7 of the clock_seq_hi_and_reserved to 01 + s[8] = s[13] = s[18] = s[23] = '-' + + var uuid = s.join('') + return uuid +} diff --git a/mini-app/src/js/utils/validateUtils.js b/mini-app/src/js/utils/validateUtils.js new file mode 100644 index 000000000..1a0212cea --- /dev/null +++ b/mini-app/src/js/utils/validateUtils.js @@ -0,0 +1,23 @@ +class ValidateUtils { + isEmail(value) { + + const reg = /^([a-zA-Z]|[0-9])(\w|\-)+@[a-zA-Z0-9]+\.([a-zA-Z]{2,4})$/ + + return reg.test(value) + + } + + /** + * 校验数字或者小数 + * @param text + * @returns {boolean} + */ + isIntOrDecimal(text) { + + let pattern = /^[0-9]+([.]{1}[0-9]+){0,1}$/; + return pattern.test(text) + } + +} + +export default new ValidateUtils() diff --git a/mini-app/src/mixins/test.js b/mini-app/src/mixins/test.js new file mode 100644 index 000000000..d3fe7cba4 --- /dev/null +++ b/mini-app/src/mixins/test.js @@ -0,0 +1,19 @@ + + +export default { + data: { + mixin: 'MixinText' + }, + methods: { + mixintap () { + this.mixin = 'MixinText' + (Math.random() + '').substring(3, 7); + console.log('mixin method tap'); + }, + tap () { + console.log('tap in mixin'); + } + }, + created () { + console.log('created in mixin'); + } +} diff --git a/mini-app/src/pages/form1.wpy b/mini-app/src/pages/form1.wpy new file mode 100644 index 000000000..0d043ce9e --- /dev/null +++ b/mini-app/src/pages/form1.wpy @@ -0,0 +1,267 @@ + + + + + +{ +navigationBarTitleText: '' +} + diff --git a/mini-app/src/pages/form2.wpy b/mini-app/src/pages/form2.wpy new file mode 100644 index 000000000..ddb032a37 --- /dev/null +++ b/mini-app/src/pages/form2.wpy @@ -0,0 +1,139 @@ + + + + + +{ +navigationBarTitleText: '' +} + diff --git a/mini-app/src/pages/form3.wpy b/mini-app/src/pages/form3.wpy new file mode 100644 index 000000000..cda16dbb1 --- /dev/null +++ b/mini-app/src/pages/form3.wpy @@ -0,0 +1,374 @@ + + + + + +{ +navigationBarTitleText: '' +} + diff --git a/mini-app/src/pages/form4.wpy b/mini-app/src/pages/form4.wpy new file mode 100644 index 000000000..8bcb40ea9 --- /dev/null +++ b/mini-app/src/pages/form4.wpy @@ -0,0 +1,158 @@ + + + + + +{ +navigationBarTitleText: '' +} + diff --git a/mini-app/src/pages/form5.wpy b/mini-app/src/pages/form5.wpy new file mode 100644 index 000000000..18fbb1381 --- /dev/null +++ b/mini-app/src/pages/form5.wpy @@ -0,0 +1,242 @@ + + @@ -78,8 +75,7 @@ wepy.component({ active: 0, records: [], currentFilter: '全部', - filterButtons: ['全部'], - isInit: false + filterButtons: ['全部'] }, @@ -106,11 +102,11 @@ wepy.component({ }, async init() { + + this.isInit = false const req = await mailApis.getGoodsList() - if (req.code === 200) { - this.records = req.rows - } + this.records = req.rows this.isInit = true } @@ -125,6 +121,7 @@ wepy.component({ break } } + this.init() } }) diff --git a/mini-app/src/components/nav-bar.wpy b/mini-app/src/components/nav-bar.wpy index 4f60238d3..0bbe64592 100644 --- a/mini-app/src/components/nav-bar.wpy +++ b/mini-app/src/components/nav-bar.wpy @@ -1,43 +1,44 @@ diff --git a/mini-app/src/pages/winery/winery-detail.wpy b/mini-app/src/pages/winery/winery-detail.wpy index 5d4ce753c..0b5b31f57 100644 --- a/mini-app/src/pages/winery/winery-detail.wpy +++ b/mini-app/src/pages/winery/winery-detail.wpy @@ -69,9 +69,18 @@ module.exports.parseImage = parseImage;