Merge remote-tracking branch 'origin/master'
| | |
| | | List<ZTAreaInfoResponse> getAreaList(ZTAreaListRequest param); |
| | | List<ZTAreaTreeResponse> getAreaTreeList(ZTAreaListRequest param); |
| | | boolean bindCustomerFavorites(ZTBindCusFavoriteDoRequest param); |
| | | ZSZXCatalogResponse getZSZXCatalogs(); |
| | | ZTBasePageResponse<ZTCusFavoritesInfoResponse> pageCusFavoriteList(ZTContentListRequest param); |
| | | |
| | | List<ZTCusCarouselImageResponse> carouselImageList(ZTContentListRequest param); |
| | | ZTCusCarouselImageResponse carouselImageDetail(ZTDataDetailRequest param); |
| | | ZTBasePageResponse<ZTCollectLikeInfoResponse> collectLikePage(ZTCollectLikeRequest param); |
| | | } |
| | |
| | | * è·åç¨æ·ç»étoken |
| | | * @return |
| | | */ |
| | | @Override |
| | | public ZSZXCatalogResponse getZSZXCatalogs(){ |
| | | ZSZXCatalogResponse response = new ZSZXCatalogResponse(); |
| | | ZTCatalogListRequest param = new ZTCatalogListRequest(); |
| | | param.setCatalogCode(ZTConstants.CatalogCode.ZHISHUO_ZHUANGXIU); |
| | | List<ZTCatalogInfoResponse> cataList = getCatalogList(param); |
| | | if(cataList!=null ){ |
| | | for(ZTCatalogInfoResponse data : cataList){ |
| | | if(StringUtils.equals(data.getCode(), ZTConstants.CatalogCode.JIADE_ID)){ |
| | | response.setJdId(data); |
| | | }else if(StringUtils.equals(data.getCode(), ZTConstants.CatalogCode.CHUFANGSHEJI)){ |
| | | response.setCfsj(data); |
| | | }else if(StringUtils.equals(data.getCode(), ZTConstants.CatalogCode.QW_SHEJI)){ |
| | | response.setQwsj(data); |
| | | }else if(StringUtils.equals(data.getCode(), ZTConstants.CatalogCode.SHOUNASHEJI)){ |
| | | response.setSnsj(data); |
| | | } |
| | | } |
| | | } |
| | | return response; |
| | | } |
| | | |
| | | /** |
| | | * ç¨æ·ä¿¡æ¯åæ¥ |
| | | * @param param |
| | |
| | | log.error("ãä¸å°æ¥å£ï¼"+name+"ã================失败====ï¼\n"+ res); |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * è·åæç忬¢/æ¶èå表 |
| | | * @param param |
| | | * @return |
| | | */ |
| | | @Override |
| | | public ZTBasePageResponse<ZTCollectLikeInfoResponse> collectLikePage(ZTCollectLikeRequest param){ |
| | | ZTBaseResponse<ZTBasePageResponse<ZTCollectLikeInfoResponse>> result = sendHttpRequest( |
| | | ZTConstants.IntegerUrl.FAVORITES_PAGE_URL, |
| | | ZTConstants.IntegerName.FAVORITES_NAME, |
| | | param.getToken(), |
| | | param.getUserType(), |
| | | JSONObject.toJSONString(param ), |
| | | new TypeReference<ZTBaseResponse<ZTBasePageResponse<ZTCollectLikeInfoResponse>>>(){}); |
| | | if(result!=null){ |
| | | return result.getData(); |
| | | } |
| | | return null; |
| | | } |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.biz.zbom.model.zhongtai; |
| | | |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * Created by IntelliJ IDEA. |
| | | * |
| | | * @Author : Rk |
| | | * @create 2024/7/19 11:33 |
| | | */ |
| | | @Data |
| | | public class APISpaceCaseVo { |
| | | |
| | | private String caseInfo; |
| | | /** |
| | | * 空é´ä¸»å¾ |
| | | */ |
| | | private String coverImage; |
| | | private String id; |
| | | /** |
| | | * 空é´å¾ç |
| | | */ |
| | | private String[] imgList; |
| | | private String intro; |
| | | private String publishDate; |
| | | private String publishDt; |
| | | /** |
| | | * ç©ºé´æè¿° |
| | | */ |
| | | private String spaceDesc; |
| | | /** |
| | | * 空é´åç§° |
| | | */ |
| | | private String spaceName; |
| | | private String title; |
| | | |
| | | |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.biz.zbom.model.zhongtai; |
| | | |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.util.List; |
| | | |
| | | |
| | | @Data |
| | | public class ZTCollectLikeRequest extends ZTBaseRequst { |
| | | |
| | | @ApiModelProperty(value = "ä¸å¡ç±»å æä¸¾å¼: whole_case real_case product_intro") |
| | | private String businessType; |
| | | |
| | | @ApiModelProperty(value = "å½å页") |
| | | private String pageNum; |
| | | |
| | | @ApiModelProperty(value = "æ¯é¡µæ¡æ°") |
| | | private String pageSize; |
| | | |
| | | @ApiModelProperty(value = "ä¸å¡ç±»å« collect like") |
| | | private String businessCategory; |
| | | |
| | | @ApiModelProperty(value = "ç¨æ·ä¸»é®",hidden = true) |
| | | private String userId; |
| | | } |
| | |
| | | String WHOLECASE_INFO_URL ="/content/api/wholeCaseDetail"; |
| | | String REALCASE_PAGE_LIST_URL ="/content/api/realCasePageList"; |
| | | String REALCASE_INFO_URL ="/content/api/realCaseDetail"; |
| | | String FAVORITES_PAGE_URL ="/behavior/api/favoritesPageList"; |
| | | |
| | | |
| | | } |
| | | public interface IntegerName{ |
| | | String USER_UPDATE_NAME ="ç¨æ·ä¿¡æ¯åæ¥"; |
| | |
| | | String REALCASE_PAGE_LIST_NAME ="è·å宿¯æ¡ä¾å表"; |
| | | String REALCASE_INFO_NAME ="è·å宿¯æ¡ä¾è¯¦æ
"; |
| | | |
| | | String FAVORITES_NAME ="è·åæç忬¢/æ¶èå表"; |
| | | } |
| | | } |
| | |
| | | @ApiModelProperty(value = "æåºæ¹å¼ NORMAL - é»è®¤ï¼HOT - æçï¼LATEST - ææ°ï¼") |
| | | private String sortType; |
| | | |
| | | @ApiModelProperty(value = "å¤ä¸ªæ ç¾å¯ä¸ç¼ç çå表ï¼å¤ä¸ªæ ç¾å¯ä¸ç¼ç çå表",hidden = true) |
| | | private List<String> tagCode; |
| | | @ApiModelProperty(value = "å¤ä¸ªæ ç¾å¯ä¸ç¼ç çå表ï¼å¤ä¸ªæ ç¾å¯ä¸ç¼ç çå表") |
| | | private List<String> tagCodes; |
| | | |
| | | |
| | | @ApiModelProperty(value = "ç¨æ·ä¸»é®",hidden = true) |
| | |
| | | package com.doumee.biz.zbom.model.zhongtai.response; |
| | | |
| | | import com.doumee.biz.zbom.model.zhongtai.APISpaceCaseVo; |
| | | import lombok.Data; |
| | | |
| | | import java.io.Serializable; |
| | |
| | | */ |
| | | @Data |
| | | public class ZTCaseInfoResponse implements Serializable { |
| | | private String apiSpaceCaseVos; |
| | | private APISpaceCaseVo[] apiSpaceCaseVos; |
| | | private String caseInfo; |
| | | /** |
| | | * æ¶èé |
| | |
| | | * æµè§é |
| | | */ |
| | | private String viewCount; |
| | | |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.biz.zbom.model.zhongtai.response; |
| | | |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.io.Serializable; |
| | | |
| | | |
| | | /** |
| | | * æç忬¢/æ¶è |
| | | */ |
| | | @Data |
| | | public class ZTCollectLikeInfoResponse implements Serializable { |
| | | /** |
| | | * æ¶èæ° |
| | | */ |
| | | @ApiModelProperty(value = "id") |
| | | private String id; |
| | | /** |
| | | * æ é¢ |
| | | */ |
| | | @ApiModelProperty(value = "æ é¢") |
| | | private String displayName; |
| | | /** |
| | | * 缩ç¥å¾ |
| | | */ |
| | | @ApiModelProperty(value = "缩ç¥å¾") |
| | | private String thumbnailUrl; |
| | | |
| | | @ApiModelProperty(value = "æµè§é") |
| | | private Integer viewCount; |
| | | |
| | | @ApiModelProperty(value = "æ¶èé") |
| | | private Integer collectCount; |
| | | |
| | | |
| | | |
| | | } |
| | |
| | | package com.doumee.biz.zbom.model.zhongtai.response; |
| | | |
| | | import com.doumee.biz.zbom.model.zhongtai.APISpaceCaseVo; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.io.Serializable; |
| | |
| | | */ |
| | | @Data |
| | | public class ZTRealcaseInfoResponse implements Serializable { |
| | | |
| | | private String caseInfo; |
| | | private String collectCount; |
| | | /** |
| | | * ä¸»å¾ |
| | | */ |
| | | @ApiModelProperty(value = "主å¾") |
| | | private String coverImage; |
| | | private String id; |
| | | private String[] imgList; |
| | | /** |
| | | * æ¯å¦æ¶è true:æ¶è false:æªæ¶è |
| | | */ |
| | | @ApiModelProperty(value = "æ¯å¦æ¶è true:æ¶è false:æªæ¶è") |
| | | private boolean isCollection; |
| | | /** |
| | | * å叿¥æ |
| | | */ |
| | | @ApiModelProperty(value = "å叿¥æ") |
| | | private String publishDt; |
| | | /** |
| | | * æ é¢ |
| | | */ |
| | | private String title; |
| | | private String viewCount; |
| | | |
| | | private String contentCategory; |
| | | private String intro; |
| | | private String linkAddress; |
| | | /** |
| | | * æå¼å
容 |
| | | */ |
| | | @ApiModelProperty(value = "æå¼å
容") |
| | | private String openContent; |
| | | /** |
| | | * |
| | | */ |
| | | @ApiModelProperty(value = "å
容æå¼æ¹å¼(å
é¨é¡µé¢pageãè§é¢videoã坿æ¬textãå¤é¨é¾æ¥link)") |
| | | private String openType; |
| | | /** |
| | | * å¾æè¯¦æ
|
| | | */ |
| | | private APISpaceCaseVo[] apiSpaceCaseVos; |
| | | /** |
| | | * 720å
¨æ¯å°å |
| | | */ |
| | | private String layoutUlr; |
| | | private String panorama; |
| | | |
| | | /** |
| | | * 详æ
å¾ç |
| | | */ |
| | | private String[] contentImgList; |
| | | /** |
| | | * æ ç¾ |
| | | */ |
| | | private String[] contentLabelList; |
| | | /** |
| | | * 详æ
ææ¬ |
| | | */ |
| | | private String contentText; |
| | | private String recommandTitle; |
| | | |
| | | } |
| | |
| | | public Boolean checkLogin(HttpServletRequest request, HttpServletResponse response){ |
| | | String token = request.getHeader(JwtTokenUtil.HEADER_KEY); |
| | | try { |
| | | //夿Tokenæ¯å¦è¶
æ¶ |
| | | boolean expiration = JwtTokenUtil.isTokenExpired(token); |
| | | if (expiration) { |
| | | throw new BusinessException(ResponseStatus.TOKEN_EXCEED_TIME.getCode(),"é¿æ¶é´æªæä½,è¯·éæ°ç»å½"); |
| | | } |
| | | //è·åè´¦å·ID |
| | | Long memberId = JwtTokenUtil.getJwtPayLoad(token).getUserId(); |
| | | Integer userType = JwtTokenUtil.getJwtPayLoad(token).getUserType(); |
| | | if(!Constants.equalsInteger(userType,Constants.ZERO)){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"æ è®¿é®æé"); |
| | | String tokenRedis = (String) redisTemplate.opsForValue().get(ZTConstants.CUSTOMER+"_"+memberId); |
| | | if(StringUtils.isNotBlank(tokenRedis)){ |
| | | if(!tokenRedis.equals(token)){ |
| | | throw new BusinessException(ResponseStatus.TOKEN_EXCEED_TIME.getCode(),"é¿æ¶é´æªæä½,è¯·éæ°ç»å½"); |
| | | } |
| | | }else{ |
| | | throw new BusinessException(ResponseStatus.TOKEN_EXCEED_TIME.getCode(),"é¿æ¶é´æªæä½,è¯·éæ°ç»å½"); |
| | | } |
| | | Member member = dao.queryForObject(" select * from `member` where id = ? limit 1 ", new BeanPropertyRowMapper<>(Member.class),memberId ); |
| | | if(Objects.isNull(member)){ |
| | |
| | | public Boolean checkPersonnelLogin(HttpServletRequest request, HttpServletResponse response){ |
| | | String token = request.getHeader(JwtTokenUtil.HEADER_KEY); |
| | | try { |
| | | if(isDebug){ |
| | | return true; |
| | | } |
| | | //夿Tokenæ¯å¦è¶
æ¶ |
| | | boolean expiration = JwtTokenUtil.isTokenExpired(token); |
| | | if (expiration) { |
| | | throw new BusinessException(ResponseStatus.TOKEN_EXCEED_TIME.getCode(),"é¿æ¶é´æªæä½,è¯·éæ°ç»å½"); |
| | | } |
| | | //è·åè´¦å·ID |
| | | Long userId = JwtTokenUtil.getJwtPayLoad(token).getUserId(); |
| | | Integer userType = JwtTokenUtil.getJwtPayLoad(token).getUserType(); |
| | | if(!Constants.equalsInteger(userType,Constants.ONE)){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"æ è®¿é®æé"); |
| | | String tokenRedis = (String) redisTemplate.opsForValue().get(ZTConstants.BUSINESS+"_"+userId); |
| | | if(StringUtils.isNotBlank(tokenRedis)){ |
| | | if(!tokenRedis.equals(token)){ |
| | | throw new BusinessException(ResponseStatus.TOKEN_EXCEED_TIME.getCode(),"é¿æ¶é´æªæä½,è¯·éæ°ç»å½"); |
| | | } |
| | | }else{ |
| | | throw new BusinessException(ResponseStatus.TOKEN_EXCEED_TIME.getCode(),"é¿æ¶é´æªæä½,è¯·éæ°ç»å½"); |
| | | } |
| | | Users users = dao.queryForObject(" select * from `users` where id = ? limit 1 ", new BeanPropertyRowMapper<>(Users.class),userId); |
| | | if(Objects.isNull(users)){ |
| | |
| | | if(Constants.equalsInteger(users.getIsdeleted(),Constants.ONE)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"ç¨æ·å·²å é¤,请è系管çå"); |
| | | } |
| | | if(!StringUtils.equals(users.getStatus(),Constants.ZERO+"")){ |
| | | if(!StringUtils.equals(users.getStatus(),Constants.ONE+"")){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"ç¨æ·å·²ç¦ç¨,请è系管çå"); |
| | | } |
| | | request.setAttribute(JwtTokenUtil.UserId_Name, userId); |
| | |
| | | @ApiModelProperty(value = "æè¿åå¸å¤æ³¨") |
| | | @ExcelColumn(name="æè¿åå¸å¤æ³¨") |
| | | private String publishInfo; |
| | | |
| | | |
| | | @ApiModelProperty(value = "æä½äºº") |
| | | @ExcelColumn(name="æä½äºº") |
| | | @TableField(exist = false) |
| | |
| | | @ExcelColumn(name="微信openid") |
| | | private String openid; |
| | | |
| | | @ApiModelProperty(value = "è´¦æ·ç¶æ 0åç¨ï¼1å¯ç¨", example = "1") |
| | | @ApiModelProperty(value = "è´¦æ·ç¶æ 0åç¨ï¼1å¯ç¨ï¼-1å é¤", example = "1") |
| | | @ExcelColumn(name="è´¦æ·ç¶æ 0åç¨ï¼1å¯ç¨") |
| | | private String status; |
| | | |
| | |
| | | |
| | | import com.doumee.biz.zbom.model.zhongtai.*; |
| | | import com.doumee.biz.zbom.model.zhongtai.response.*; |
| | | import com.doumee.dao.web.response.ZSZXCatalogResponse; |
| | | |
| | | import java.util.List; |
| | | |
| | |
| | | * @date 2024/07/04 14:40 |
| | | */ |
| | | public interface GetZhongTaiDataService { |
| | | |
| | | |
| | | ZSZXCatalogResponse getZSZXCatalogs(Long userId); |
| | | |
| | | /** |
| | | * åç±»æ°æ® |
| | |
| | | */ |
| | | ZTRealcaseInfoResponse getRealcaseInfo(String id,String userType,Long userId); |
| | | |
| | | /** |
| | | * ä¸å° - æçæ¶è/忬¢å表 |
| | | * @param ztContentListRequest |
| | | * @return |
| | | */ |
| | | ZTBasePageResponse<ZTCollectLikeInfoResponse> collectLikePage(ZTCollectLikeRequest ztCollectLikeRequest); |
| | | } |
| | |
| | | * @param userId |
| | | */ |
| | | void saveShareRecord(Long id,Long userId); |
| | | |
| | | } |
| | |
| | | package com.doumee.service.business; |
| | | |
| | | import com.doumee.biz.zbom.model.zhongtai.ZTBaseRequst; |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.dao.business.model.Member; |
| | |
| | | void editUserInfo(EditUsersRequest editUsersRequest); |
| | | |
| | | String getContentShareImg(Users loginUserInfo, ContentShareImgDto param); |
| | | |
| | | ZTBaseRequst logOff(Long userId); |
| | | } |
| | |
| | | .eq(CustomerLog::getIsdeleted, Constants.ZERO) |
| | | .eq(Objects.nonNull(pageWrap.getModel().getType()),CustomerLog::getType, pageWrap.getModel().getType()) |
| | | .eq(Objects.nonNull(pageWrap.getModel().getMemberId()),Customer::getMemberId, pageWrap.getModel().getMemberId()); |
| | | |
| | | if (pageWrap.getModel().getMemberId() != null) { |
| | | queryWrapper.eq(Customer::getMemberId, pageWrap.getModel().getMemberId()); |
| | | } |
| | | if (pageWrap.getModel().getId() != null) { |
| | | queryWrapper.eq(CustomerLog::getId, pageWrap.getModel().getId()); |
| | | } |
| | |
| | | import com.doumee.dao.business.MemberMapper; |
| | | import com.doumee.dao.business.UsersMapper; |
| | | import com.doumee.dao.business.model.Member; |
| | | import com.doumee.dao.web.response.ZSZXCatalogResponse; |
| | | import com.doumee.dao.web.response.ZTBaseInfoResponse; |
| | | import com.doumee.service.business.GetZhongTaiDataService; |
| | | import com.github.xiaoymin.knife4j.core.util.CollectionUtils; |
| | |
| | | @Autowired |
| | | private RedisTemplate<String, Object> redisTemplate; |
| | | |
| | | |
| | | @Override |
| | | public ZSZXCatalogResponse getZSZXCatalogs(Long userId){ |
| | | ZSZXCatalogResponse response = new ZSZXCatalogResponse(); |
| | | ZTCatalogListRequest param = new ZTCatalogListRequest(); |
| | | param.setUserId(userId.toString()); |
| | | param.setUserType(ZTConstants.CUSTOMER); |
| | | param.setCatalogCode(ZTConstants.CatalogCode.ZHISHUO_ZHUANGXIU); |
| | | List<ZTCatalogInfoResponse> cataList = getCatalogList(param); |
| | | if(cataList!=null ){ |
| | | for(ZTCatalogInfoResponse data : cataList){ |
| | | if(StringUtils.equals(data.getCode(), ZTConstants.CatalogCode.JIADE_ID)){ |
| | | response.setJdId(data); |
| | | }else if(StringUtils.equals(data.getCode(), ZTConstants.CatalogCode.CHUFANGSHEJI)){ |
| | | response.setCfsj(data); |
| | | }else if(StringUtils.equals(data.getCode(), ZTConstants.CatalogCode.QW_SHEJI)){ |
| | | response.setQwsj(data); |
| | | }else if(StringUtils.equals(data.getCode(), ZTConstants.CatalogCode.SHOUNASHEJI)){ |
| | | response.setSnsj(data); |
| | | } |
| | | } |
| | | } |
| | | return response; |
| | | } |
| | | |
| | | @Override |
| | | public List<ZTCatalogInfoResponse> getCatalogList(ZTCatalogListRequest ztCatalogListRequest){ |
| | |
| | | || StringUtils.isBlank(ztCatalogListRequest.getCatalogCode())){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | ZTBaseInfoResponse ztBaseInfoResponse = MemberServiceImpl.getZTToken(zbomZhongTaiService,memberMapper,usersMapper,systemDictDataBiz,Long.valueOf(ztCatalogListRequest.getUserId()),ztCatalogListRequest.getUserType()); |
| | | System.out.println(JSONObject.toJSONString(ztBaseInfoResponse)); |
| | | ztCatalogListRequest.setOpenId(ztBaseInfoResponse.getOpenId()); |
| | | ztCatalogListRequest.setToken(ztBaseInfoResponse.getToken()); |
| | | return zbomZhongTaiService.getCatalogList(ztCatalogListRequest); |
| | | } |
| | | |
| | |
| | | || StringUtils.isBlank(ztCatalogListRequest.getCatalogCode())){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | ZTBaseInfoResponse ztBaseInfoResponse = MemberServiceImpl.getZTToken(zbomZhongTaiService,memberMapper,usersMapper,systemDictDataBiz,Long.valueOf(ztCatalogListRequest.getUserId()),ztCatalogListRequest.getUserType()); |
| | | ztCatalogListRequest.setOpenId(ztBaseInfoResponse.getOpenId()); |
| | | ztCatalogListRequest.setToken(ztBaseInfoResponse.getToken()); |
| | | return zbomZhongTaiService.getTagList(ztCatalogListRequest); |
| | | } |
| | | |
| | |
| | | String data = (String) redisTemplate.opsForValue().get(Constants.RedisKeys.ZBOM_AREA_REDIS_KEY); |
| | | List<ZTAreaTreeResponse> ztAreaTreeResponses = new ArrayList<>(); |
| | | if(StringUtils.isBlank(data)){ |
| | | ZTBaseInfoResponse ztBaseInfoResponse = MemberServiceImpl.getZTToken(zbomZhongTaiService,memberMapper,usersMapper,systemDictDataBiz,Long.valueOf(ztAreaListRequest.getUserId()),ztAreaListRequest.getUserType()); |
| | | ztAreaListRequest.setOpenId(ztBaseInfoResponse.getOpenId()); |
| | | ztAreaListRequest.setToken(ztBaseInfoResponse.getToken()); |
| | | ztAreaTreeResponses = zbomZhongTaiService.getAreaTreeList(ztAreaListRequest); |
| | | redisTemplate.opsForValue().set(Constants.RedisKeys.ZBOM_AREA_REDIS_KEY,JSONArray.toJSONString(ztAreaTreeResponses)); |
| | | if(CollectionUtils.isNotEmpty(ztAreaTreeResponses)){ |
| | | redisTemplate.opsForValue().set(Constants.RedisKeys.ZBOM_AREA_REDIS_KEY,JSONArray.toJSONString(ztAreaTreeResponses)); |
| | | } |
| | | }else{ |
| | | ztAreaTreeResponses = JSONArray.parseArray(data,ZTAreaTreeResponse.class); |
| | | } |
| | |
| | | return response; |
| | | } |
| | | |
| | | |
| | | |
| | | @Override |
| | | public ZTBasePageResponse<ZTCollectLikeInfoResponse> collectLikePage(ZTCollectLikeRequest ztCollectLikeRequest){ |
| | | if(Objects.isNull(ztCollectLikeRequest) |
| | | || Objects.isNull(ztCollectLikeRequest.getPageNum()) |
| | | || Objects.isNull(ztCollectLikeRequest.getPageSize()) |
| | | || StringUtils.isBlank(ztCollectLikeRequest.getBusinessType()) |
| | | || StringUtils.isBlank(ztCollectLikeRequest.getBusinessCategory()) |
| | | ){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | //æ¥è¯¢ ä¸å° |
| | | ZTBaseInfoResponse ztBaseInfoResponse = MemberServiceImpl.getZTToken(zbomZhongTaiService,memberMapper,usersMapper,systemDictDataBiz, |
| | | Long.valueOf(ztCollectLikeRequest.getUserId()),ztCollectLikeRequest.getUserType()); |
| | | ztCollectLikeRequest.setToken(ztBaseInfoResponse.getToken()); |
| | | ZTBasePageResponse<ZTCollectLikeInfoResponse> response = zbomZhongTaiService.collectLikePage(ztCollectLikeRequest); |
| | | return response; |
| | | } |
| | | } |
| | |
| | | this.saveCustomerUser(users,member.getId()); |
| | | }else{ |
| | | ZTUserGetTokenResponse ztUserGetTokenResponse = this.syncZhongTaiUser(member); |
| | | if(Objects.isNull(ztUserGetTokenResponse)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"ä¸å°æå¡è°èµ·å¤±è´¥!"); |
| | | }else{ |
| | | if(!Objects.isNull(ztUserGetTokenResponse)){ |
| | | member.setToken(ztUserGetTokenResponse.getToken()); |
| | | memberMapper.updateById(member); |
| | | } |
| | | this.saveCustomerUser(users,member.getId()); |
| | | member = this.getMemberInfo(member.getId()); |
| | | |
| | | } |
| | | //å建token |
| | | JwtPayLoad payLoad = new JwtPayLoad(member.getId(),Constants.ZERO); |
| | | String token = JwtTokenUtil.generateToken(payLoad); |
| | | redisTemplate.opsForValue().set(ZTConstants.CUSTOMER+"_"+member.getId(),token); |
| | | AccountResponse accountResponse = new AccountResponse(); |
| | | accountResponse.setToken(token); |
| | | accountResponse.setSessionKey(session.getSessionKey()); |
| | |
| | | ztUserInfoUpdateRequest.setHouseLayout(Constants.getHouseLayout(member.getHousetype())); |
| | | ZTBaseResponse userUpdateInfo = zbomZhongTaiService.userUpdateInfo(ztUserInfoUpdateRequest); |
| | | if(Objects.isNull(userUpdateInfo)||userUpdateInfo.getCode()!=200){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"ä¸å°ä¿¡æ¯æ´æ°å¤±è´¥ï¼è¯·è系管çå"); |
| | | return null; |
| | | } |
| | | ZTUserGetTokenResponse ztUserGetTokenResponse = (ZTUserGetTokenResponse) userUpdateInfo.getData(); |
| | | return ztUserGetTokenResponse; |
| | |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY); |
| | | } |
| | | if(StringUtils.isBlank(member.getPhone())){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"ç¨æ·å·²æ³¨é"); |
| | | redisTemplate.delete(ZTConstants.CUSTOMER+"_"+ member.getId()); |
| | | return null; |
| | | } |
| | | //æ ¡éªç¨æ·tokenä¿¡æ¯ |
| | | MemberServiceImpl.getZTToken(zbomZhongTaiService,memberMapper,usersMapper,systemDictDataBiz,member.getId(),ZTConstants.CUSTOMER); |
| | |
| | | .set(Member::getEditDate,new Date()) |
| | | .eq(Member::getId,member.getId()) |
| | | ); |
| | | redisTemplate.delete(ZTConstants.CUSTOMER+"_"+ member.getId()); |
| | | return ztBaseRequst; |
| | | } |
| | | |
| | |
| | | package com.doumee.service.business.impl; |
| | | |
| | | import com.dingtalk.api.request.OapiMaterialNewsListRequest; |
| | | import com.doumee.biz.system.SystemDictDataBiz; |
| | | import com.doumee.core.constants.ResponseStatus; |
| | | import com.doumee.core.exception.BusinessException; |
| | |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | |
| | | import cn.hutool.core.date.DateUnit; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.doumee.biz.system.SystemDictDataBiz; |
| | | import com.doumee.biz.zbom.ZbomZhongTaiService; |
| | | import com.doumee.biz.zbom.model.IamUserRoleModel; |
| | | import com.doumee.biz.zbom.model.IamUserTypeModel; |
| | | import com.doumee.biz.zbom.model.zhongtai.ZTBaseRequst; |
| | | import com.doumee.biz.zbom.model.zhongtai.ZTConstants; |
| | | import com.doumee.config.Jwt.JwtPayLoad; |
| | | import com.doumee.config.Jwt.JwtTokenUtil; |
| | | import com.doumee.core.annotation.excel.ExcelImporter; |
| | |
| | | import com.doumee.core.utils.tyyun.TyyZosUtil; |
| | | import com.doumee.dao.admin.request.ShopImport; |
| | | import com.doumee.dao.admin.request.UserImport; |
| | | import com.doumee.dao.business.MemberMapper; |
| | | import com.doumee.dao.business.ShopMapper; |
| | | import com.doumee.core.wx.WxMiniConfig; |
| | | import com.doumee.dao.business.SmsEmailMapper; |
| | |
| | | private SmsEmailMapper smsEmailMapper; |
| | | @Autowired |
| | | private SystemDictDataBiz systemDictDataBiz; |
| | | @Autowired |
| | | private MemberMapper memberMapper; |
| | | |
| | | @Autowired |
| | | private ZbomZhongTaiService zbomZhongTaiService; |
| | | |
| | | @Override |
| | | public Long create(Users users) { |
| | |
| | | } |
| | | Users users = usersMapper.selectOne(new QueryWrapper<Users>().lambda().eq(Users::getPhone,phone).last("limit 1")); |
| | | if(Objects.isNull(users)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"æªæ¥è¯¢å°è´¦æ·ä¿¡æ¯"); |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对ä¸èµ·ï¼è´¦å·ä¿¡æ¯ä¸åå¨ï¼"); |
| | | } |
| | | if(!Constants.equalsInteger(users.getIsdeleted(), Constants.ZERO)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"å½åè´¦æ·å·²å é¤"); |
| | | } |
| | | if(!StringUtils.equals(users.getStatus(),Constants.ZERO+"")){ |
| | | if(StringUtils.equals(users.getStatus(),Constants.ZERO+"")){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"å½åè´¦æ·å·²åç¨ï¼è¯·è系管çå"); |
| | | } |
| | | //éªè¯çä¿¡ |
| | |
| | | //å建token |
| | | JwtPayLoad payLoad = new JwtPayLoad(users.getId(),Constants.ONE); |
| | | String token = JwtTokenUtil.generateToken(payLoad); |
| | | redisTemplate.opsForValue().set(ZTConstants.BUSINESS+"_"+users.getId(),token); |
| | | AccountResponse accountResponse = new AccountResponse(); |
| | | accountResponse.setToken(token); |
| | | accountResponse.setUsers(users); |
| | |
| | | if(!StringUtils.equals(users.getStatus(),Constants.ZERO+"")){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"å½åè´¦æ·å·²åç¨ï¼è¯·è系管çå"); |
| | | } |
| | | users.setOpenid(openId); |
| | | usersMapper.updateById(users); |
| | | //å建token |
| | | JwtPayLoad payLoad = new JwtPayLoad(users.getId(),Constants.ONE); |
| | | String token = JwtTokenUtil.generateToken(payLoad); |
| | | redisTemplate.opsForValue().set(ZTConstants.BUSINESS+"_"+users.getId(),token); |
| | | accountResponse.setToken(token); |
| | | getUsersDetail(users); |
| | | accountResponse.setUsers(users); |
| | | return accountResponse; |
| | | } catch (WxErrorException e) { |
| | |
| | | if(Objects.isNull(users)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY); |
| | | } |
| | | if(Constants.equalsInteger(users.getIsdeleted(),Constants.ZERO)){ |
| | | if(!Constants.equalsInteger(users.getIsdeleted(),Constants.ZERO)){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"ç¨æ·å·²ç¦ç¨"); |
| | | } |
| | | getUsersDetail(users); |
| | |
| | | |
| | | |
| | | |
| | | |
| | | @Override |
| | | public ZTBaseRequst logOff(Long userId){ |
| | | Users users = usersMapper.selectById(userId); |
| | | if(Objects.isNull(users)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY); |
| | | } |
| | | if(StringUtils.isBlank(users.getOpenid())){ |
| | | redisTemplate.delete(ZTConstants.BUSINESS+"_"+ users.getId()); |
| | | return null; |
| | | } |
| | | //æ ¡éªç¨æ·tokenä¿¡æ¯ |
| | | MemberServiceImpl.getZTToken(zbomZhongTaiService,memberMapper,usersMapper,systemDictDataBiz,users.getId(), ZTConstants.BUSINESS); |
| | | //è°èµ·ä¸å°æ³¨éæ¥å£ |
| | | ZTBaseRequst ztBaseRequst = new ZTBaseRequst(); |
| | | ztBaseRequst.setUserType(ZTConstants.BUSINESS); |
| | | ztBaseRequst.setOpenId(users.getOpenid()); |
| | | ztBaseRequst.setToken(users.getToken()); |
| | | usersMapper.update(new UpdateWrapper<Users>().lambda() |
| | | .set(Users::getOpenid,null) |
| | | .set(Users::getEditDate,new Date()) |
| | | .eq(Users::getId,users.getId()) |
| | | ); |
| | | redisTemplate.delete(ZTConstants.BUSINESS+"_"+ users.getId()); |
| | | return ztBaseRequst; |
| | | } |
| | | |
| | | } |
| | | |
| | |
| | | return obj != null ? (Long) obj : null; |
| | | } |
| | | protected Long getUserId() { |
| | | if(isDebug){ |
| | | return 2L; |
| | | } |
| | | // if(isDebug){ |
| | | // return 2L; |
| | | // } |
| | | Object obj = this.getRequest().getAttribute(JwtTokenUtil.UserId_Name); |
| | | return obj != null ? (Long) obj : null; |
| | | } |
| | |
| | | @Autowired |
| | | public SmsEmailService smsEmailService; |
| | | |
| | | @ApiOperation(value = "C端å°ç¨åº-è·åé¦é¡µå¿è¯´è£
ä¿®å个模åç±»ç®æ°æ®", notes = "è·åé¦é¡µå¿è¯´è£
ä¿®å个模åç±»ç®æ°æ®") |
| | | @PostMapping("/getZSZXCatalogs") |
| | | public ApiResponse<ZSZXCatalogResponse> getZSZXCatalogs() { |
| | | return ApiResponse.success(zbomZhongTaiService.getZSZXCatalogs()); |
| | | } |
| | | |
| | | } |
| | |
| | | import com.doumee.biz.zbom.ZbomCRMService; |
| | | import com.doumee.biz.zbom.ZbomZhongTaiService; |
| | | import com.doumee.biz.zbom.model.zhongtai.ZTAreaListRequest; |
| | | import com.doumee.biz.zbom.model.zhongtai.ZTConstants; |
| | | import com.doumee.biz.zbom.model.zhongtai.response.ZTAreaInfoResponse; |
| | | import com.doumee.biz.zbom.model.zhongtai.response.ZTAreaTreeResponse; |
| | | import com.doumee.config.annotation.LoginRequired; |
| | |
| | | } |
| | | |
| | | |
| | | @LoginRequired |
| | | @ApiOperation(value = "è·ååºåå
¨éæ 形信æ¯", notes = "客æ·ç«¯å°ç¨åº") |
| | | @PostMapping("/getAreaTree") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "ç¨æ·tokenå¼", required = true) |
| | | }) |
| | | public ApiResponse<List<ZTAreaTreeResponse>> getAreaTree(@RequestBody ZTAreaListRequest ztAreaListRequest) { |
| | | if(StringUtils.isBlank(ztAreaListRequest.getPid())){ |
| | | ztAreaListRequest.setPid("1"); |
| | |
| | | if(StringUtils.isBlank(ztAreaListRequest.getLevel())){ |
| | | ztAreaListRequest.setLevel("5"); |
| | | } |
| | | ztAreaListRequest.setUserId(getMemberId()+""); |
| | | ztAreaListRequest.setUserType(ZTConstants.CUSTOMER); |
| | | List<ZTAreaTreeResponse> ztAreaInfoResponses = getZhongTaiDataService.getZhongTaiAreaTree(ztAreaListRequest); |
| | | return ApiResponse.success(ztAreaInfoResponses); |
| | | } |
| | |
| | | |
| | | import com.doumee.biz.system.SystemDictDataBiz; |
| | | import com.doumee.biz.zbom.ZbomCRMService; |
| | | import com.doumee.biz.zbom.model.zhongtai.ZTCatalogListRequest; |
| | | import com.doumee.biz.zbom.model.zhongtai.ZTConstants; |
| | | import com.doumee.biz.zbom.model.zhongtai.ZTContentListRequest; |
| | | import com.doumee.biz.zbom.model.zhongtai.ZTDataDetailRequest; |
| | | import com.doumee.biz.zbom.model.zhongtai.*; |
| | | import com.doumee.biz.zbom.model.zhongtai.response.*; |
| | | import com.doumee.config.annotation.LoginRequired; |
| | | import com.doumee.core.annotation.trace.Trace; |
| | |
| | | import java.beans.Customizer; |
| | | import java.io.InputStream; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | |
| | | /** |
| | | * Created by IntelliJ IDEA. |
| | |
| | | @ApiOperation(value = "ç¨æ·æ³¨é", notes = "客æ·ç«¯å°ç¨åº") |
| | | @GetMapping("/logOff") |
| | | public ApiResponse logOff() { |
| | | getZhongTaiDataService.userLogout(memberService.logOff(getMemberId())); |
| | | ZTBaseRequst ztBaseRequst = memberService.logOff(getUserId()); |
| | | if(Objects.nonNull(ztBaseRequst)){ |
| | | getZhongTaiDataService.userLogout(ztBaseRequst); |
| | | } |
| | | return ApiResponse.success("æä½æå"); |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | |
| | | @LoginRequired |
| | | @ApiOperation(value = "æµè¯å°ç¨åºToken", notes = "客æ·ç«¯å°ç¨åº") |
| | | @GetMapping("/testToken") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "ç¨æ·tokenå¼", required = true) |
| | | }) |
| | | public ApiResponse testToken () { |
| | | systemDictDataBiz.updWxMiniToken(); |
| | | return ApiResponse.success("æ´æ°æå"); |
| | | } |
| | | |
| | | |
| | | |
| | | @LoginRequired |
| | | @ApiOperation(value = "è·åå享å°ç¨åºäºç»´ç ï¼å¾çæµï¼imgæ ç¾srcæå®ï¼", notes = "客æ·ç«¯å°ç¨åº") |
| | |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "ç¨æ·tokenå¼", required = true) |
| | | }) |
| | | public ApiResponse<PageData<CustomerLog>> customerLogPage(@RequestBody PageWrap<CustomerLog> pageWrap) { |
| | | pageWrap.getModel().setCostomerId(getMemberId().toString()); |
| | | pageWrap.getModel().setMemberId(getMemberId()); |
| | | pageWrap.getModel().setIsHiddenPhone(Constants.ZERO); |
| | | return ApiResponse.success(customerLogService.findPage(pageWrap)); |
| | | } |
| | |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "ç¨æ·tokenå¼", required = true) |
| | | }) |
| | | public ApiResponse<List<ZTCatalogInfoResponse>> getCatalogList (@RequestBody ZTCatalogListRequest ztCatalogListRequest ) { |
| | | ztCatalogListRequest.setUserId(getMemberId()+""); |
| | | ztCatalogListRequest.setUserType(ZTConstants.CUSTOMER); |
| | | List<ZTCatalogInfoResponse> ztCatalogInfoResponseList = getZhongTaiDataService.getCatalogList(ztCatalogListRequest); |
| | | return ApiResponse.success("æ¥è¯¢æå",ztCatalogInfoResponseList); |
| | | } |
| | |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "ç¨æ·tokenå¼", required = true) |
| | | }) |
| | | public ApiResponse<List<ZTTagInfoResponse>> getCataLogTagList(@RequestBody ZTCatalogListRequest ztCatalogListRequest ) { |
| | | ztCatalogListRequest.setUserId(getMemberId()+""); |
| | | ztCatalogListRequest.setUserType(ZTConstants.CUSTOMER); |
| | | List<ZTTagInfoResponse> ztTagInfoResponseList = getZhongTaiDataService.getCataLogTagList(ztCatalogListRequest); |
| | | return ApiResponse.success("æ¥è¯¢æå",ztTagInfoResponseList); |
| | | } |
| | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | @LoginRequired |
| | | @ApiOperation(value = "æçæ¶è/忬¢å表 - ä¸å°", notes = "客æ·ç«¯å°ç¨åº") |
| | | @PostMapping("/collectLikePage") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "ç¨æ·tokenå¼", required = true) |
| | | }) |
| | | public ApiResponse<ZTBasePageResponse<ZTCollectLikeInfoResponse>> collectLikePage(@RequestBody ZTCollectLikeRequest ztCollectLikeRequest) { |
| | | ztCollectLikeRequest.setUserId(getMemberId()+""); |
| | | ztCollectLikeRequest.setUserType(ZTConstants.CUSTOMER); |
| | | ZTBasePageResponse<ZTCollectLikeInfoResponse> ztBasePageResponse= getZhongTaiDataService.collectLikePage(ztCollectLikeRequest); |
| | | return ApiResponse.success("æ¥è¯¢æå",ztBasePageResponse); |
| | | } |
| | | |
| | | } |
| | |
| | | |
| | | import com.doumee.biz.zbom.ZbomCRMService; |
| | | import com.doumee.biz.zbom.ZbomZhongTaiService; |
| | | import com.doumee.config.annotation.LoginRequired; |
| | | import com.doumee.core.annotation.trace.Trace; |
| | | import com.doumee.core.model.ApiResponse; |
| | | import com.doumee.core.model.PageData; |
| | |
| | | import com.doumee.dao.business.model.News; |
| | | import com.doumee.dao.web.response.DailyUpdatesResponse; |
| | | import com.doumee.dao.web.response.ZSZXCatalogResponse; |
| | | import com.doumee.service.business.GetZhongTaiDataService; |
| | | import com.doumee.service.business.NewsService; |
| | | import com.doumee.service.business.SmsEmailService; |
| | | import io.swagger.annotations.Api; |
| | |
| | | @Autowired |
| | | public NewsService newsService; |
| | | |
| | | @Autowired |
| | | public GetZhongTaiDataService getZhongTaiDataService; |
| | | |
| | | |
| | | @LoginRequired |
| | | @ApiOperation(value = "ãC端å°ç¨åºãè·åé¦é¡µå¿è¯´è£
ä¿®å个模åç±»ç®æ°æ®", notes = "è·åé¦é¡µå¿è¯´è£
ä¿®å个模åç±»ç®æ°æ®ï¼èæ¯å¾ææ¶åæ»ï¼åèUI") |
| | | @PostMapping("/getZSZXCatalogs") |
| | | public ApiResponse<ZSZXCatalogResponse> getZSZXCatalogs() { |
| | | return ApiResponse.success(zbomZhongTaiService.getZSZXCatalogs()); |
| | | return ApiResponse.success(getZhongTaiDataService.getZSZXCatalogs(getMemberId())); |
| | | } |
| | | |
| | | |
| | |
| | | import com.doumee.biz.zbom.model.crm.CrmCustomerListRequest; |
| | | import com.doumee.biz.zbom.model.crm.response.CRMBaseResponse; |
| | | import com.doumee.biz.zbom.model.crm.response.CRMCustomerListResponse; |
| | | import com.doumee.biz.zbom.model.zhongtai.ZTBaseRequst; |
| | | import com.doumee.biz.zbom.model.zhongtai.ZTCatalogListRequest; |
| | | import com.doumee.biz.zbom.model.zhongtai.ZTConstants; |
| | | import com.doumee.biz.zbom.model.zhongtai.ZTContentListRequest; |
| | |
| | | import com.doumee.core.utils.Constants; |
| | | import com.doumee.dao.business.model.Shop; |
| | | import com.doumee.dao.business.model.SmsEmail; |
| | | import com.doumee.dao.business.model.Users; |
| | | import com.doumee.dao.web.reqeust.EditMemberRequest; |
| | | import com.doumee.dao.web.reqeust.EditShopDTO; |
| | | import com.doumee.dao.web.reqeust.EditUsersRequest; |
| | |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | |
| | | /** |
| | | * Created by IntelliJ IDEA. |
| | |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "ç¨æ·tokenå¼", required = true) |
| | | }) |
| | | public ApiResponse getUserDetail() { |
| | | usersService.usersDetailById(getUserId()); |
| | | return ApiResponse.success("æä½æå"); |
| | | public ApiResponse<Users> getUserDetail() { |
| | | return ApiResponse.success("æä½æå",usersService.usersDetailById(getUserId())); |
| | | } |
| | | |
| | | @UserLoginRequired |
| | |
| | | usersService.editUserInfo(editUsersRequest); |
| | | return ApiResponse.success("æ´æ°æå"); |
| | | } |
| | | |
| | | @UserLoginRequired |
| | | @ApiOperation(value = "é¨åºå页", notes = "å工端å°ç¨åº") |
| | | @PostMapping("/shopPage") |
| | |
| | | |
| | | @UserLoginRequired |
| | | @ApiOperation(value = "ä¿®æ¹é¨åºä¿¡æ¯", notes = "å工端å°ç¨åº") |
| | | @GetMapping("/updShop") |
| | | @PostMapping("/updShop") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "ç¨æ·tokenå¼", required = true) |
| | | }) |
| | |
| | | return ApiResponse.success("æä½æå"); |
| | | } |
| | | |
| | | @UserLoginRequired |
| | | @ApiOperation(value = "è·å个人åç", notes = "å工端å°ç¨åº") |
| | | @PostMapping("/getUserCard") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "ç¨æ·tokenå¼", required = true) |
| | | }) |
| | | public ApiResponse<String> getUserCard() { |
| | | return ApiResponse.success(usersService.getUserCard(this.getLoginUserInfo())); |
| | | } |
| | | |
| | | |
| | | @ApiOperation(value = "è·åå
容å享海æ¥", notes = "è·åå
容å享海æ¥ï¼å å°ç¨åºç ") |
| | | @PostMapping("/getContentShareImg") |
| | |
| | | List<ZTTagInfoResponse> ztTagInfoResponseList = getZhongTaiDataService.getCataLogTagList(ztCatalogListRequest); |
| | | return ApiResponse.success("æ¥è¯¢æå",ztTagInfoResponseList); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | @UserLoginRequired |
| | | @ApiOperation(value = "ç¨æ·æ³¨é", notes = "å工端å°ç¨åº") |
| | | @PostMapping("/logOff") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "ç¨æ·tokenå¼", required = true) |
| | | }) |
| | | public ApiResponse logOff() { |
| | | ZTBaseRequst ztBaseRequst = usersService.logOff(getUserId()); |
| | | if(Objects.nonNull(ztBaseRequst)){ |
| | | getZhongTaiDataService.userLogout(ztBaseRequst); |
| | | } |
| | | return ApiResponse.success("æä½æå"); |
| | | } |
| | | } |
| | |
| | | data |
| | | }) |
| | | } |
| | | // åç±»æ¡ä¾ 详æ
|
| | | export const getWholecaseInfo = (data) => { |
| | | return request({ |
| | | url: '/web/customer/getWholecaseInfo', |
| | | data |
| | | }) |
| | | } |
| | | // åç±»å®æ¯ å页å表 ä¸å° |
| | | export const getZhongTaiRealcasePage = (data) => { |
| | | return request({ |
| | | url: '/web/customer/getZhongTaiRealcasePage', |
| | | method: 'POST', |
| | | data |
| | | }) |
| | | } |
| | | // åç±»å®æ¯ 详æ
|
| | | export const getRealcaseInfo = (data) => { |
| | | return request({ |
| | | url: '/web/customer/getRealcaseInfo', |
| | | data |
| | | }) |
| | | } |
| | | // æçå®¶ å页å表 ä¸å° |
| | | export const getZhongTaiVideoPage = (data) => { |
| | | return request({ |
| | |
| | | data |
| | | }) |
| | | } |
| | | // æç æ¶è/忬¢å表 |
| | | export const collectLikePage = (data) => { |
| | | return request({ |
| | | url: '/web/customer/collectLikePage', |
| | | method: 'POST', |
| | | data |
| | | }) |
| | | } |
| | | // å
容 忬¢ |
| | | export const likeContent = (data) => { |
| | | return request({ |
| | |
| | | import { wxLoginCustomer } from './api/index' |
| | | import { |
| | | wxLoginCustomer |
| | | } from './api/index' |
| | | App({ |
| | | globalData: { |
| | | primary: '#B08771', |
| | |
| | | if (WindowInfo.safeArea.top > 20) { |
| | | this.globalData.bottomLift = WindowInfo.screenHeight - WindowInfo.safeArea.bottom; |
| | | } |
| | | // |
| | | // ææç»å½ |
| | | const member = wx.getStorageSync('member') |
| | | wx.login({ |
| | | timeout: 5000, |
| | | success(res) { |
| | |
| | | console.log(err) |
| | | } |
| | | }) |
| | | |
| | | |
| | | } |
| | | }) |
| | |
| | | "pages/userinfo/collect", |
| | | "pages/userinfo/favorite", |
| | | "pages/sets/index", |
| | | "pages/sets/protocol" |
| | | "pages/sets/protocol", |
| | | "pages/richText/index" |
| | | ], |
| | | "window": { |
| | | "navigationBarTitleText": "å¿é¦å®¶é", |
| | |
| | | |
| | | view,text{ |
| | | view,text,scroll-view,image{ |
| | | box-sizing: border-box; |
| | | } |
| | | page{ |
| | |
| | | button:after { |
| | | content: none; |
| | | } |
| | | |
| | | ::-webkit-scrollbar { |
| | | display: none; |
| | | } |
| | | button::after { |
| | | border: none; |
| | | } |
| | |
| | | width: 36rpx; |
| | | } |
| | | } |
| | | .text{ |
| | | flex: 1; |
| | | overflow : hidden; |
| | | text-overflow: ellipsis; |
| | | display: -webkit-box; |
| | | -webkit-line-clamp: 2; |
| | | -webkit-box-orient: vertical; |
| | | } |
| | | } |
| | | .addr{ |
| | | display: flex; |
| | |
| | | <view class="icon"> |
| | | <image src="../../static/icon/mendian_item.png" mode="widthFix"></image> |
| | | </view> |
| | | <text>{{ item.name }}</text> |
| | | <text class="text">{{ item.name }}</text> |
| | | </view> |
| | | <view class="addr"> |
| | | <view class="left"> |
| | |
| | | .wrap2 .list .item .name .icon image { |
| | | width: 36rpx; |
| | | } |
| | | .wrap2 .list .item .name .text { |
| | | flex: 1; |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | display: -webkit-box; |
| | | -webkit-line-clamp: 2; |
| | | -webkit-box-orient: vertical; |
| | | } |
| | | .wrap2 .list .item .addr { |
| | | display: flex; |
| | | justify-content: space-between; |
| | |
| | | * ç»ä»¶ç屿§å表 |
| | | */ |
| | | properties: { |
| | | |
| | | menuButtonInfo: Object |
| | | }, |
| | | data: { |
| | | activeIndex: -1, |
| | |
| | | |
| | | cateList: [], |
| | | dataList: [], |
| | | total: 0, |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | search: '', |
| | | query: '', |
| | | sortType: 'NORMAL', |
| | | catalogCode: 'whole_case' |
| | | }, |
| | |
| | | getCatelist(){ |
| | | const { catalogCode } = this.data |
| | | getCataLogTagList({ |
| | | catalogCode: 'real_case' |
| | | catalogCode |
| | | }).then(res => { |
| | | if(res.data && res.data.length > 0){ |
| | | this.setData({ |
| | |
| | | }) |
| | | }, |
| | | getList() { |
| | | const { sortType, search, tagCodes, pageNum, pageSize } = this.data |
| | | const { sortType, query, tagCodes, pageNum, pageSize,catalogCode } = this.data |
| | | getZhongTaiWholecasePage({ |
| | | catalogCode: 'whole_case',tagCodes,pageNum,pageSize, sortType,search |
| | | catalogCode,pageNum,pageSize,tagCodes, sortType,query |
| | | }).then(res => { |
| | | this.setData({ dataList: res.data.records }) |
| | | if(res.data){ |
| | | this.setData({ |
| | | total: res.data.total, |
| | | dataList: [...this.data.dataList, ...res.data.records], |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | scrolltolower() { |
| | | console.log('触åºäºä»¶'); |
| | | const { total, dataList, pageNum } = this.data |
| | | if(total > dataList.length){ |
| | | this.setData({ pageNum: pageNum + 1 }) |
| | | this.getList() |
| | | }else{ |
| | | wx.showToast({ |
| | | title: 'ææ æ´å¤æ°æ®', |
| | | icon: 'none' |
| | | }) |
| | | } |
| | | }, |
| | | statusChange(e) { |
| | | const sortType = e.currentTarget.dataset.status |
| | | this.setData({sortType}) |
| | | this.setData({ pageNum: 1,dataList: [],total: 0}) |
| | | this.getList() |
| | | }, |
| | | handleAction(e){ |
| | |
| | | }) |
| | | }, |
| | | handleDetail(e) { |
| | | const id = e.currentTarget.dataset.id |
| | | wx.navigateTo({ |
| | | url: '/pages/detailDis/case', |
| | | url: '/pages/detailDis/case?id=' + id, |
| | | }) |
| | | }, |
| | | tagClick(e) { |
| | |
| | | const index = tagCodes.indexOf(code) |
| | | |
| | | if(index === -1){ |
| | | // åparamécodeéå¤ |
| | | if(activeParam && activeParam.length > 0){ |
| | | activeParam.forEach(item => { |
| | | const indexTemp = tagCodes.indexOf(item.labelValueCode) |
| | | if(indexTemp > -1){ |
| | | tagCodes.splice(indexTemp, 1) |
| | | } |
| | | }) |
| | | } |
| | | tagCodes.push(code) |
| | | cateList[activeIndex].paramIndex = paramIndex |
| | | cateList[activeIndex].paramName = activeParam[paramIndex].labelValueName |
| | |
| | | cateList[activeIndex].paramIndex = -1 |
| | | cateList[activeIndex].paramName = '' |
| | | } |
| | | this.setData({ pageNum: 1,dataList: [],total: 0}) |
| | | this.setData({ tagCodes, cateList }) |
| | | console.log('tagCodes', tagCodes); |
| | | }, |
| | |
| | | }, |
| | | subParam() { |
| | | this.setData({ activeParam: [] }) |
| | | this.setData({ pageNum: 1,dataList: [],total: 0}) |
| | | this.getList() |
| | | }, |
| | | changeShowParams(e){ |
| | |
| | | .search_wrap { |
| | | .search_wrap{ |
| | | width: 670rpx; |
| | | height: 72rpx; |
| | | margin: 24rpx auto; |
| | |
| | | display: flex; |
| | | align-items: center; |
| | | background-color: #F7F7F7; |
| | | |
| | | image { |
| | | image{ |
| | | width: 28rpx; |
| | | margin-right: 16rpx; |
| | | } |
| | | } |
| | | |
| | | .app { |
| | | height: 100%; |
| | | width: 100%; |
| | | .home_content{ |
| | | height: 100%; |
| | | } |
| | | } |
| | | |
| | | .main_content { |
| | | height: calc(100% - 120rpx); |
| | | .home_top{ |
| | | position: fixed; |
| | | z-index: 9999; |
| | | width: 100%; |
| | | background-color: #fff; |
| | | } |
| | | .main_content{ |
| | | height: 100%; |
| | | padding-top: 120rpx; |
| | | .query_wrap_scroll{ |
| | | width: 670rpx; |
| | | width: 750rpx; |
| | | padding: 0 40rpx; |
| | | } |
| | | .query_wrap { |
| | |
| | | .status { |
| | | display: flex; |
| | | padding: 0rpx 40rpx; |
| | | margin: 20rpx 0; |
| | | align-items: center; |
| | | |
| | | height: 100rpx; |
| | | .active { |
| | | color: var(--themeColor); |
| | | } |
| | | |
| | | .separate { |
| | | margin: 0 12rpx; |
| | | width: 1rpx; |
| | |
| | | } |
| | | } |
| | | .goods_list{ |
| | | box-sizing: border-box; |
| | | padding: 12rpx 40rpx; |
| | | height: calc( 100% - 188rpx); |
| | | .item{ |
| | | width: 100%; |
| | | margin-bottom: 32rpx; |
| | |
| | | <view class="app"> |
| | | <view class="search_wrap"> |
| | | <image src="../../static/icon/ic_search@2x.png" mode="widthFix"></image> |
| | | <input bindblur="bindblur" model:value="{{ search }}" type="text" placeholder="æç´¢æ¡ä¾åç§°" /> |
| | | <view class="home_top" style="top:{{ menuButtonInfo.top + menuButtonInfo.height + 6 }}px"> |
| | | <view class="search_wrap"> |
| | | <image src="../../static/icon/ic_search@2x.png" mode="widthFix"></image> |
| | | <input bindblur="bindblur" model:value="{{ query }}" type="text" placeholder="æç´¢æ¡ä¾åç§°" /> |
| | | </view> |
| | | </view> |
| | | <!-- --> |
| | | <view class="main_content"> |
| | | <scroll-view class="query_wrap_scroll" scroll-x> |
| | | <view class="query_wrap"> |
| | | <view data-index="{{ index }}" wx:for="{{ cateList }}" class="item" bindtap="changeShowParams"> |
| | | <view class="name">{{ item.paramName || item.labelName }}</view> |
| | | <van-icon name="{{ activeIndex === index ? 'arrow-up' : 'arrow-down' }}" /> |
| | | </view> |
| | | </view> |
| | | </scroll-view> |
| | | <!-- param --> |
| | | <view wx:if="{{ activeParam && activeParam.length > 0 }}" class="query_param"> |
| | | <view class="list"> |
| | | <view data-index="{{index}}" data-code="{{ item.labelValueCode }}" bindtap="tagClick" wx:for="{{ activeParam }}" class="item {{ cateList[activeIndex].paramIndex === index ? 'active' : '' }}">{{ item.labelValueName }}</view> |
| | | </view> |
| | | <view class="btns"> |
| | | <view class="btn" bindtap="cancelParam">åæ¶</view> |
| | | <view bindtap="subParam" class="btn sub">确认</view> |
| | | </view> |
| | | </view> |
| | | <view class="status"> |
| | | <view class="item {{ sortType == 'NORMAL' ? 'active' : '' }}" data-status="NORMAL" bindtap="statusChange">é»è®¤</view> |
| | | <view class="separate"></view> |
| | | <view class="item {{ sortType == 'HOT' ? 'active' : '' }}" data-status="HOT" bindtap="statusChange">æç</view> |
| | | <view class="separate"></view> |
| | | <view class="item {{ sortType == 'LATEST' ? 'active' : '' }}" data-status="LATEST" bindtap="statusChange">ææ°</view> |
| | | </view> |
| | | <!-- goods_list --> |
| | | <view class="goods_list"> |
| | | <view wx:for="{{ dataList }}" class="item" bindtap="handleDetail"> |
| | | <view class="img_wrap"> |
| | | <image src="{{ item.coverImage }}" class="img"></image> |
| | | <image wx:if="{{ false }}" class="new" src="../../static/icon/chanpin_ic_new@2x.png" mode="widthFix"></image> |
| | | </view> |
| | | <view class="content"> |
| | | <view class="name">{{ item.title }}</view> |
| | | <view class="info"> |
| | | <image wx:if="{{ !item.isCollection }}" data-code="like" bindtap="handleAction" class="icon" src="../../static/icon/detail_nav_collect.png" mode="widthFix"></image> |
| | | <image wx:else data-code="like_cancel" bindtap="handleAction" class="icon" src="../../static/icon/detail_nav_collected.png" mode="widthFix"></image> |
| | | <text class="num {{true ? 'primary' : ''}}">{{ item.collectCount }}</text> |
| | | <image class="icon" src="../../static/icon/zixun_ic_liulan.png" mode="widthFix"></image> |
| | | <text>{{ item.viewCount }}</text> |
| | | <view class="home_content" style="padding-top:{{ menuButtonInfo.top + menuButtonInfo.height + 6 }}px;"> |
| | | <view class="main_content"> |
| | | <scroll-view class="query_wrap_scroll" scroll-x> |
| | | <view class="query_wrap"> |
| | | <view data-index="{{ index }}" wx:for="{{ cateList }}" class="item" bindtap="changeShowParams"> |
| | | <view class="name">{{ item.paramName || item.labelName }}</view> |
| | | <van-icon name="{{ activeIndex === index ? 'arrow-up' : 'arrow-down' }}" /> |
| | | </view> |
| | | </view> |
| | | </scroll-view> |
| | | <!-- param --> |
| | | <view wx:if="{{ activeParam && activeParam.length > 0 }}" class="query_param"> |
| | | <view class="list"> |
| | | <view data-index="{{index}}" data-code="{{ item.labelValueCode }}" bindtap="tagClick" wx:for="{{ activeParam }}" class="item {{ cateList[activeIndex].paramIndex === index ? 'active' : '' }}">{{ item.labelValueName }}</view> |
| | | </view> |
| | | <view class="btns"> |
| | | <view class="btn" bindtap="cancelParam">åæ¶</view> |
| | | <view bindtap="subParam" class="btn sub">确认</view> |
| | | </view> |
| | | </view> |
| | | <view class="status"> |
| | | <view class="item {{ sortType == 'NORMAL' ? 'active' : '' }}" data-status="NORMAL" bindtap="statusChange">é»è®¤</view> |
| | | <view class="separate"></view> |
| | | <view class="item {{ sortType == 'HOT' ? 'active' : '' }}" data-status="HOT" bindtap="statusChange">æç</view> |
| | | <view class="separate"></view> |
| | | <view class="item {{ sortType == 'LATEST' ? 'active' : '' }}" data-status="LATEST" bindtap="statusChange">ææ°</view> |
| | | </view> |
| | | <!-- goods_list --> |
| | | <scroll-view bindscrolltolower="scrolltolower" scroll-y enable-passive enable-flex class="goods_list"> |
| | | <view wx:for="{{ dataList }}" data-id="{{ item.id }}" class="item" bindtap="handleDetail"> |
| | | <view class="img_wrap"> |
| | | <image src="{{ item.coverImage }}" class="img"></image> |
| | | <image wx:if="{{ false }}" class="new" src="../../static/icon/chanpin_ic_new@2x.png" mode="widthFix"></image> |
| | | </view> |
| | | <view class="content"> |
| | | <view class="name">{{ item.title }}</view> |
| | | <view class="info"> |
| | | <image wx:if="{{ !item.collection }}" data-code="like" bindtap="handleAction" class="icon" src="../../static/icon/detail_nav_collect.png" mode="widthFix"></image> |
| | | <image wx:else data-code="like_cancel" bindtap="handleAction" class="icon" src="../../static/icon/detail_nav_collected.png" mode="widthFix"></image> |
| | | <text class="num {{item.collection ? 'primary' : ''}}">{{ item.collectCount }}</text> |
| | | <image class="icon" src="../../static/icon/zixun_ic_liulan.png" mode="widthFix"></image> |
| | | <text>{{ item.viewCount }}</text> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </scroll-view> |
| | | </view> |
| | | </view> |
| | | |
| | | |
| | | </view> |
| | |
| | | height: 100%; |
| | | width: 100%; |
| | | } |
| | | .app .home_content { |
| | | height: 100%; |
| | | } |
| | | .home_top { |
| | | position: fixed; |
| | | z-index: 9999; |
| | | width: 100%; |
| | | background-color: #fff; |
| | | } |
| | | .main_content { |
| | | height: calc(100% - 120rpx); |
| | | height: 100%; |
| | | padding-top: 120rpx; |
| | | } |
| | | .main_content .query_wrap_scroll { |
| | | width: 670rpx; |
| | | width: 750rpx; |
| | | padding: 0 40rpx; |
| | | } |
| | | .main_content .query_wrap { |
| | |
| | | .main_content .status { |
| | | display: flex; |
| | | padding: 0rpx 40rpx; |
| | | margin: 20rpx 0; |
| | | align-items: center; |
| | | height: 100rpx; |
| | | } |
| | | .main_content .status .active { |
| | | color: var(--themeColor); |
| | |
| | | background-color: #333333; |
| | | } |
| | | .main_content .goods_list { |
| | | box-sizing: border-box; |
| | | padding: 12rpx 40rpx; |
| | | height: calc(100% - 188rpx); |
| | | } |
| | | .main_content .goods_list .item { |
| | | width: 100%; |
| | |
| | | import { getCatalogList, getZhongTaiProductPage } from '../../api/index' |
| | | import { getCatalogList,getCataLogTagList, getZhongTaiProductPage } from '../../api/index' |
| | | Component({ |
| | | /** |
| | | * ç»ä»¶ç屿§å表 |
| | | */ |
| | | properties: { |
| | | |
| | | menuButtonInfo: Object |
| | | }, |
| | | |
| | | /** |
| | | * ç»ä»¶çåå§æ°æ® |
| | | */ |
| | | data: { |
| | | showOne: false, |
| | | showTwo: false, |
| | | activeIndex: -1, |
| | | activeParam: [], |
| | | tagCodes: [], |
| | | |
| | | cateList: [], |
| | | secondCateList: [], |
| | | datalist: [], |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | search: '', |
| | | total: 0, |
| | | query: '', |
| | | sortType: 'NORMAL', |
| | | catalogCode: "" |
| | | }, |
| | | attached() { |
| | | this.getCatelist() |
| | | var app = getApp() |
| | | console.log('globalData', app.globalData); |
| | | if(app.globalData.catalogCode){ |
| | | this.setData({ catalogCode: app.globalData.catalogCode }) |
| | | setTimeout(() => { |
| | | console.log('catalogCode', this.data.catalogCode); |
| | | getApp().globalData.catalogCode = '' |
| | | }, 2000) |
| | | } |
| | | }, |
| | | methods: { |
| | | getCatelist(){ |
| | |
| | | }).then(res => { |
| | | if(res.data && res.data.length > 0){ |
| | | this.setData({ |
| | | catalogCode: res.data[0].code, |
| | | catalogCode: this.data.catalogCode || res.data[0].code, |
| | | cateList: res.data |
| | | }) |
| | | this.getTag() |
| | | setTimeout(() => { |
| | | this.getList() |
| | | }, 300) |
| | | } |
| | | }) |
| | | }, |
| | | getTag() { |
| | | const catalogCode = this.data.catalogCode |
| | | getCataLogTagList({ |
| | | catalogCode |
| | | }).then(res => { |
| | | this.setData({ |
| | | secondCateList: res.data || [], |
| | | }) |
| | | }) |
| | | }, |
| | | bindblur() { |
| | | this.getList() |
| | | }, |
| | | getList() { |
| | | const { catalogCode, pageNum, pageSize, sortType, search } = this.data |
| | | const { catalogCode,tagCodes, pageNum, pageSize, sortType, query } = this.data |
| | | getZhongTaiProductPage({ |
| | | catalogCode,pageNum,pageSize,sortType,search |
| | | catalogCode,pageNum,pageSize,sortType,query,tagCodes |
| | | }).then(res => { |
| | | this.setData({ |
| | | datalist: [...this.data.datalist, ...res.data.records], |
| | |
| | | }) |
| | | }) |
| | | }, |
| | | scrolltolower() { |
| | | console.log('触åºäºä»¶'); |
| | | const { total, datalist, pageNum } = this.data |
| | | if(total > datalist.length){ |
| | | this.setData({ pageNum: pageNum + 1 }) |
| | | this.getList() |
| | | }else{ |
| | | wx.showToast({ |
| | | title: 'ææ æ´å¤æ°æ®', |
| | | icon: 'none' |
| | | }) |
| | | } |
| | | }, |
| | | cateClick(e) { |
| | | const catalogCode = e.currentTarget.dataset.code |
| | | this.setData({ catalogCode }) |
| | | this.setData({ pageNum: 1,datalist: [],total: 0}) |
| | | this.getTag() |
| | | this.getList() |
| | | }, |
| | | statusChange(e) { |
| | | const sortType = e.currentTarget.dataset.status |
| | | this.setData({sortType}) |
| | | this.setData({ pageNum: 1,datalist: [],total: 0}) |
| | | this.getList() |
| | | }, |
| | | handleDetail(e) { |
| | |
| | | url: '/pages/detailDis/product?id=' + id, |
| | | }) |
| | | }, |
| | | changeOne(){ |
| | | const showOne = !this.data.showOne |
| | | this.setData({showOne}) |
| | | this.setData({showTwo: false}) |
| | | tagClick(e) { |
| | | const code = e.currentTarget.dataset.code |
| | | const paramIndex = e.currentTarget.dataset.index |
| | | const { secondCateList, tagCodes, activeParam, activeIndex } = this.data |
| | | const index = tagCodes.indexOf(code) |
| | | console.log('code', code); |
| | | console.log('tagCodes', tagCodes); |
| | | if(index === -1){ |
| | | // åparamécodeéå¤ |
| | | if(activeParam && activeParam.length > 0){ |
| | | activeParam.forEach(item => { |
| | | const indexTemp = tagCodes.indexOf(item.labelValueCode) |
| | | if(indexTemp > -1){ |
| | | tagCodes.splice(indexTemp, 1) |
| | | } |
| | | }) |
| | | } |
| | | tagCodes.push(code) |
| | | secondCateList[activeIndex].paramIndex = paramIndex |
| | | secondCateList[activeIndex].paramName = activeParam[paramIndex].labelValueName |
| | | }else{ |
| | | tagCodes.splice(index, 1) |
| | | secondCateList[activeIndex].paramIndex = -1 |
| | | secondCateList[activeIndex].paramName = '' |
| | | } |
| | | this.setData({ pageNum: 1,datalist: [],total: 0}) |
| | | this.setData({ tagCodes, secondCateList }) |
| | | }, |
| | | changeTwo(){ |
| | | const showTwo = !this.data.showTwo |
| | | this.setData({showTwo}) |
| | | this.setData({showOne: false}) |
| | | changeShowParams(e){ |
| | | const { secondCateList } = this.data |
| | | const activeIndex = e.currentTarget.dataset.index |
| | | console.log('activeIndex', activeIndex); |
| | | console.log('secondCateList', secondCateList); |
| | | if(activeIndex === this.data.activeIndex){ |
| | | this.setData({ activeIndex: -1, activeParam: [] }) |
| | | }else{ |
| | | this.setData({ |
| | | activeIndex, |
| | | activeParam: secondCateList[activeIndex].valueVos |
| | | }) |
| | | } |
| | | console.log('activeParam', this.data.activeParam); |
| | | // this.setData({showTwo: false}) |
| | | }, |
| | | cancelParam() { |
| | | const { secondCateList } = this.data |
| | | secondCateList.forEach(item => { |
| | | item.paramIndex = -1 |
| | | item.paramName = '' |
| | | }) |
| | | this.setData({ tagCodes: [],activeParam: [],cateList,activeIndex: -1 }) |
| | | }, |
| | | subParam() { |
| | | this.setData({ activeParam: [] }) |
| | | this.setData({ pageNum: 1,datalist: [],total: 0}) |
| | | this.getList() |
| | | }, |
| | | } |
| | | }) |
| | |
| | | .search_wrap{ |
| | | |
| | | |
| | | .search_wrap { |
| | | width: 670rpx; |
| | | height: 72rpx; |
| | | margin: 24rpx auto; |
| | |
| | | display: flex; |
| | | align-items: center; |
| | | background-color: #F7F7F7; |
| | | image{ |
| | | |
| | | image { |
| | | width: 28rpx; |
| | | margin-right: 16rpx; |
| | | } |
| | | } |
| | | |
| | | .app{ |
| | | .app { |
| | | height: 100%; |
| | | width: 100%; |
| | | .home_content{ |
| | | height: 100%; |
| | | } |
| | | } |
| | | .main_content{ |
| | | |
| | | .home_top { |
| | | position: fixed; |
| | | z-index: 9999; |
| | | width: 100%; |
| | | background-color: #fff; |
| | | } |
| | | |
| | | .main_content { |
| | | display: flex; |
| | | height: calc( 100% - 120rpx ); |
| | | .main_left{ |
| | | padding-top: 120rpx; |
| | | height: 100%; |
| | | .main_left { |
| | | width: 160rpx; |
| | | height: 100%; |
| | | overflow-y: auto; |
| | | border-radius: 0rpx 16rpx 16rpx 0rpx; |
| | | .item{ |
| | | |
| | | .item { |
| | | width: 160rpx; |
| | | height: 100rpx; |
| | | background: #F7F7F7; |
| | |
| | | justify-content: center; |
| | | align-items: center; |
| | | } |
| | | .active{ |
| | | |
| | | .active { |
| | | background-color: #fff; |
| | | font-weight: 500; |
| | | font-size: 30rpx; |
| | | color: #111111; |
| | | } |
| | | } |
| | | .main_right{ |
| | | |
| | | .main_right { |
| | | flex: 1; |
| | | position: relative; |
| | | .query_wrap{ |
| | | height: 100%; |
| | | .query_wrap { |
| | | display: flex; |
| | | .item{ |
| | | .item { |
| | | height: 100rpx; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | color: #666666; |
| | | color: #666666; |
| | | flex: 1; |
| | | .name{ |
| | | |
| | | .name { |
| | | margin-right: 12rpx; |
| | | } |
| | | } |
| | | } |
| | | .query_form{ |
| | | |
| | | .query_form { |
| | | position: absolute; |
| | | z-index: 99; |
| | | background-color: #fff; |
| | | .list{ |
| | | |
| | | .list { |
| | | width: 100%; |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | padding: 30rpx 40rpx; |
| | | .item{ |
| | | |
| | | .item { |
| | | width: 154rpx; |
| | | height: 72rpx; |
| | | text-align: center; |
| | |
| | | text-overflow: ellipsis; |
| | | margin-right: 24rpx; |
| | | margin-bottom: 24rpx; |
| | | &:nth-of-type(3n){ |
| | | |
| | | &:nth-of-type(3n) { |
| | | margin-right: 0; |
| | | } |
| | | } |
| | | .active{ |
| | | |
| | | .active { |
| | | color: var(--themeColor); |
| | | background: rgba(176,135,113,0.08); |
| | | background: rgba(176, 135, 113, 0.08); |
| | | } |
| | | } |
| | | .btns{ |
| | | |
| | | .btns { |
| | | display: flex; |
| | | .btn{ |
| | | |
| | | .btn { |
| | | width: 296rpx; |
| | | height: 88rpx; |
| | | background: #E5E5E5; |
| | |
| | | justify-content: center; |
| | | align-items: center; |
| | | } |
| | | .sub{ |
| | | |
| | | .sub { |
| | | background: var(--themeColor); |
| | | color: #fff; |
| | | } |
| | | } |
| | | } |
| | | .status{ |
| | | |
| | | .status { |
| | | display: flex; |
| | | padding: 0rpx 40rpx; |
| | | margin: 20rpx 0; |
| | | align-items: center; |
| | | .active{ |
| | | height: 92rpx; |
| | | .active { |
| | | color: var(--themeColor); |
| | | } |
| | | .separate{ |
| | | |
| | | .separate { |
| | | margin: 0 12rpx; |
| | | width: 1rpx; |
| | | height: 28rpx; |
| | | background-color: #333333; |
| | | } |
| | | } |
| | | .goods_list{ |
| | | |
| | | .goods_list { |
| | | height: calc( 100% - 182rpx); |
| | | width: 590rpx; |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | box-sizing: border-box; |
| | | justify-content: space-between; |
| | | padding: 12rpx 40rpx; |
| | | .item{ |
| | | width: 50%; |
| | | .item { |
| | | width: 242rpx; |
| | | flex-shrink: 0; |
| | | margin-bottom: 32rpx; |
| | | .img_wrap{ |
| | | .img_wrap { |
| | | width: 242rpx; |
| | | border-radius: 8rpx; |
| | | overflow: hidden; |
| | | position: relative; |
| | | .img{ |
| | | |
| | | .img { |
| | | width: 100%; |
| | | } |
| | | .new{ |
| | | |
| | | .new { |
| | | width: 72rpx; |
| | | position: absolute; |
| | | left: 0; |
| | |
| | | z-index: 10; |
| | | } |
| | | } |
| | | .name{ |
| | | |
| | | .name { |
| | | margin: 12rpx 0 8rpx; |
| | | display: -webkit-box;//å°çå转æ¢ä¸ºå¼¹æ§çå |
| | | -webkit-box-orient: vertical;//ææ¬æ¾ç¤ºæ¹å¼ï¼é»è®¤æ°´å¹³ |
| | | -webkit-line-clamp: 1;//设置æ¾ç¤ºå¤å°è¡ |
| | | display: -webkit-box; //å°çå转æ¢ä¸ºå¼¹æ§çå |
| | | -webkit-box-orient: vertical; //ææ¬æ¾ç¤ºæ¹å¼ï¼é»è®¤æ°´å¹³ |
| | | -webkit-line-clamp: 1; //设置æ¾ç¤ºå¤å°è¡ |
| | | overflow: hidden; |
| | | } |
| | | .info{ |
| | | |
| | | .info { |
| | | display: flex; |
| | | align-items: center; |
| | | color: #666666; |
| | | .icon{ |
| | | |
| | | .icon { |
| | | width: 28rpx; |
| | | margin-right: 8rpx; |
| | | } |
| | | .num{ |
| | | |
| | | .num { |
| | | margin-right: 16rpx; |
| | | } |
| | | .primary{ |
| | | |
| | | .primary { |
| | | color: var(--themeColor); |
| | | } |
| | | } |
| | |
| | | <view class="app"> |
| | | <view class="search_wrap"> |
| | | <image src="../../static/icon/ic_search@2x.png" mode="widthFix"></image> |
| | | <input bindblur="bindblur" model:value="{{ search }}" type="text" placeholder="æç´¢äº§ååç§°" /> |
| | | </view> |
| | | <view class="main_content"> |
| | | <view class="main_left"> |
| | | <view data-code="{{item.code}}" bindtap="cateClick" wx:for="{{cateList}}" class="item {{ catalogCode == item.code ? 'active' : '' }}">{{ item.name }}</view> |
| | | <view class="home_top" style="top:{{ menuButtonInfo.top + menuButtonInfo.height + 6 }}px"> |
| | | <view class="search_wrap"> |
| | | <image src="../../static/icon/ic_search@2x.png" mode="widthFix"></image> |
| | | <input bindblur="bindblur" model:value="{{ query }}" type="text" placeholder="æç´¢äº§ååç§°" /> |
| | | </view> |
| | | <view class="main_right"> |
| | | <view class="query_wrap"> |
| | | <view class="item" bindtap="changeOne"> |
| | | <view class="name">è£
ä¿®é£æ ¼</view> |
| | | <van-icon name="{{ showOne ? 'arrow-up' : 'arrow-down' }}" /> |
| | | </view> |
| | | <view class="item" bindtap="changeTwo"> |
| | | <view class="name">空é´åç§°</view> |
| | | <van-icon name="{{ showTwo ? 'arrow-up' : 'arrow-down' }}" /> |
| | | </view> |
| | | </view> |
| | | <view wx:if="{{ showOne }}" class="query_form"> |
| | | <view class="list"> |
| | | <view class="item active">ä¸èçµè§</view> |
| | | <view class="item">ä¸èåçæ¶æç代çµè§</view> |
| | | <view class="item">ä¸èçµè§</view> |
| | | <view class="item">ä¸èçµè§</view> |
| | | <view class="item">ä¸èçµè§</view> |
| | | </view> |
| | | <view class="btns"> |
| | | <view class="btn" bindtap="changeOne">åæ¶</view> |
| | | <view class="btn sub">确认</view> |
| | | </view> |
| | | </view> |
| | | <view wx:if="{{ showTwo }}" class="query_form"> |
| | | <view class="list"> |
| | | <view class="item active">å®å®¶</view> |
| | | <view class="item">å®å®¶</view> |
| | | <view class="item">å®å®¶</view> |
| | | <view class="item">å®å®¶</view> |
| | | <view class="item">å®å®¶</view> |
| | | </view> |
| | | <view class="btns"> |
| | | <view class="btn" bindtap="changeTwo">åæ¶</view> |
| | | <view class="btn sub">确认</view> |
| | | </view> |
| | | </view> |
| | | <view class="status"> |
| | | <view class="item {{ sortType == 'NORMAL' ? 'active' : '' }}" data-status="NORMAL" bindtap="statusChange">é»è®¤</view> |
| | | <view class="separate"></view> |
| | | <view class="item {{ sortType == 'HOT' ? 'active' : '' }}" data-status="HOT" bindtap="statusChange">æç</view> |
| | | <view class="separate"></view> |
| | | <view class="item {{ sortType == 'LATEST' ? 'active' : '' }}" data-status="LATEST" bindtap="statusChange">ææ°</view> |
| | | </view> |
| | | <view class="goods_list"> |
| | | <view wx:for="{{ datalist }}" data-id="{{item.id}}" class="item" bindtap="handleDetail"> |
| | | <view class="img_wrap"> |
| | | <image src="{{ item.coverImage }}" class="img" mode="widthFix"></image> |
| | | <image wx:if="{{ true }}" class="new" src="../../static/icon/chanpin_ic_new@2x.png" mode="widthFix"></image> |
| | | </view> |
| | | <view class="name">{{ item.title }}</view> |
| | | <view class="info"> |
| | | <image wx:if="{{ false }}" class="icon" src="../../static/icon/detail_nav_collect.png" mode="widthFix"></image> |
| | | <image wx:else="" class="icon" src="../../static/icon/detail_nav_collected.png" mode="widthFix"></image> |
| | | <text class="num {{true ? 'primary' : ''}}">{{ item.favoriteCount }}</text> |
| | | <image class="icon" src="../../static/icon/zixun_ic_liulan.png" mode="widthFix"></image> |
| | | <text>{{ item.readCount }}</text> |
| | | </view> |
| | | <view class="home_content" style="padding-top:{{ menuButtonInfo.top + menuButtonInfo.height + 6 }}px;"> |
| | | <view class="main_content"> |
| | | <scroll-view class="main_left" enable-flex scroll-y> |
| | | <!-- <view class="main_left"> --> |
| | | <view data-code="{{item.code}}" bindtap="cateClick" wx:for="{{cateList}}" class="item {{ catalogCode == item.code ? 'active' : '' }}">{{ item.name }}</view> |
| | | <!-- </view> --> |
| | | </scroll-view> |
| | | <view class="main_right"> |
| | | <view class="query_wrap"> |
| | | <view data-index="{{index}}" wx:for="{{ secondCateList }}" class="item" bindtap="changeShowParams"> |
| | | <view class="name">{{ item.paramName || item.labelName }}</view> |
| | | <van-icon name="{{ index == activeIndex ? 'arrow-up' : 'arrow-down' }}" /> |
| | | </view> |
| | | </view> |
| | | <view wx:if="{{ activeParam.length > 0 }}" class="query_form"> |
| | | <view class="list"> |
| | | <view data-index="{{index}}" data-code="{{ item.labelValueCode }}" bindtap="tagClick" wx:for="{{ activeParam }}" class="item {{ secondCateList[activeIndex].paramIndex === index ? 'active' : '' }}">{{ item.labelValueName }}</view> |
| | | </view> |
| | | <view class="btns"> |
| | | <view class="btn" bindtap="cancelParam">åæ¶</view> |
| | | <view class="btn sub" bindtap="subParam">确认</view> |
| | | </view> |
| | | </view> |
| | | <view class="status"> |
| | | <view class="item {{ sortType == 'NORMAL' ? 'active' : '' }}" data-status="NORMAL" bindtap="statusChange">é»è®¤</view> |
| | | <view class="separate"></view> |
| | | <view class="item {{ sortType == 'HOT' ? 'active' : '' }}" data-status="HOT" bindtap="statusChange">æç</view> |
| | | <view class="separate"></view> |
| | | <view class="item {{ sortType == 'LATEST' ? 'active' : '' }}" data-status="LATEST" bindtap="statusChange">ææ°</view> |
| | | </view> |
| | | <scroll-view bindscrolltolower="scrolltolower" scroll-y enable-passive enable-flex class="goods_list"> |
| | | <view wx:for="{{ datalist }}" data-id="{{item.id}}" class="item" bindtap="handleDetail"> |
| | | <view class="img_wrap"> |
| | | <image src="{{ item.coverImage }}" class="img" mode="widthFix"></image> |
| | | <image wx:if="{{ false }}" class="new" src="../../static/icon/chanpin_ic_new@2x.png" mode="widthFix"></image> |
| | | </view> |
| | | <view class="name">{{ item.title }}</view> |
| | | <view class="info"> |
| | | <image wx:if="{{ !item.isCollection }}" class="icon" src="../../static/icon/detail_nav_collect.png" mode="widthFix"></image> |
| | | <image wx:else class="icon" src="../../static/icon/detail_nav_collected.png" mode="widthFix"></image> |
| | | <text class="num {{item.isCollection ? 'primary' : ''}}">{{ item.collectCount || 0 }}</text> |
| | | <image class="icon" src="../../static/icon/zixun_ic_liulan.png" mode="widthFix"></image> |
| | | <text>{{ item.viewCount || 0 }}</text> |
| | | </view> |
| | | </view> |
| | | </scroll-view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | |
| | | |
| | | |
| | | </view> |
| | |
| | | height: 100%; |
| | | width: 100%; |
| | | } |
| | | .app .home_content { |
| | | height: 100%; |
| | | } |
| | | .home_top { |
| | | position: fixed; |
| | | z-index: 9999; |
| | | width: 100%; |
| | | background-color: #fff; |
| | | } |
| | | .main_content { |
| | | display: flex; |
| | | height: calc(100% - 120rpx); |
| | | padding-top: 120rpx; |
| | | height: 100%; |
| | | } |
| | | .main_content .main_left { |
| | | width: 160rpx; |
| | | height: 100%; |
| | | overflow-y: auto; |
| | | border-radius: 0rpx 16rpx 16rpx 0rpx; |
| | | } |
| | | .main_content .main_left .item { |
| | |
| | | .main_content .main_right { |
| | | flex: 1; |
| | | position: relative; |
| | | height: 100%; |
| | | } |
| | | .main_content .main_right .query_wrap { |
| | | display: flex; |
| | |
| | | .main_content .main_right .status { |
| | | display: flex; |
| | | padding: 0rpx 40rpx; |
| | | margin: 20rpx 0; |
| | | align-items: center; |
| | | height: 92rpx; |
| | | } |
| | | .main_content .main_right .status .active { |
| | | color: var(--themeColor); |
| | |
| | | background-color: #333333; |
| | | } |
| | | .main_content .main_right .goods_list { |
| | | height: calc(100% - 182rpx); |
| | | width: 590rpx; |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | box-sizing: border-box; |
| | | justify-content: space-between; |
| | | padding: 12rpx 40rpx; |
| | | } |
| | | .main_content .main_right .goods_list .item { |
| | | width: 50%; |
| | | width: 242rpx; |
| | | flex-shrink: 0; |
| | | margin-bottom: 32rpx; |
| | | } |
| | |
| | | // components/disCase/index.js |
| | | import { getCataLogTagList, getZhongTaiRealcasePage, actionDo } from '../../api/index' |
| | | Component({ |
| | | /** |
| | | * ç»ä»¶ç屿§å表 |
| | | */ |
| | | properties: { |
| | | |
| | | menuButtonInfo: Object |
| | | }, |
| | | data: { |
| | | showParams: false, |
| | | activeStatus: '0' |
| | | activeIndex: -1, |
| | | activeParam: [], |
| | | selParam: '', |
| | | tagCodes: [], |
| | | |
| | | |
| | | cateList: [], |
| | | dataList: [], |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | query: '', |
| | | sortType: 'NORMAL', |
| | | catalogCode: 'real_case' |
| | | }, |
| | | attached() { |
| | | this.getCatelist() |
| | | }, |
| | | methods: { |
| | | handleDetail(e) { |
| | | wx.navigateTo({ |
| | | url: '/pages/detailDis/realpic', |
| | | getCatelist(){ |
| | | const { catalogCode } = this.data |
| | | getCataLogTagList({ |
| | | catalogCode |
| | | }).then(res => { |
| | | if(res.data && res.data.length > 0){ |
| | | this.setData({ |
| | | cateList: res.data |
| | | }) |
| | | setTimeout(() => { |
| | | this.getList() |
| | | }, 300) |
| | | } |
| | | }) |
| | | }, |
| | | changeShowParams(){ |
| | | const showParams = !this.data.showParams |
| | | this.setData({showParams}) |
| | | getList() { |
| | | const { sortType, query, tagCodes, pageNum, pageSize,catalogCode } = this.data |
| | | getZhongTaiRealcasePage({ |
| | | catalogCode,tagCodes,pageNum,pageSize, sortType,query |
| | | }).then(res => { |
| | | this.setData({ |
| | | dataList: [...this.data.dataList, ...res.data.records], |
| | | total: res.data.total, |
| | | }) |
| | | }) |
| | | }, |
| | | scrolltolower() { |
| | | console.log('触åºäºä»¶'); |
| | | const { total, dataList, pageNum } = this.data |
| | | if(total > dataList.length){ |
| | | this.setData({ pageNum: pageNum + 1 }) |
| | | this.getList() |
| | | }else{ |
| | | wx.showToast({ |
| | | title: 'ææ æ´å¤æ°æ®', |
| | | icon: 'none' |
| | | }) |
| | | } |
| | | }, |
| | | videoClick(e) { |
| | | const { videourl } = e.currentTarget.dataset |
| | | wx.previewMedia({ |
| | | sources: [{ url: videourl, type: 'video' }] |
| | | }) |
| | | }, |
| | | priviewFull(e){ |
| | | const item = e.currentTarget.dataset.item |
| | | console.log('item', item); |
| | | wx.navigateTo({ |
| | | url: '/pages/webView/index?link=' + item.openContent, |
| | | success: function(res) { |
| | | // éè¿eventChannelå被æå¼é¡µé¢ä¼ éæ°æ® |
| | | res.eventChannel.emit('acceptDataFromOpenerPage', { link: item.openContent, title: item.title }) |
| | | } |
| | | }) |
| | | }, |
| | | statusChange(e) { |
| | | const sortType = e.currentTarget.dataset.status |
| | | this.setData({sortType}) |
| | | this.setData({ pageNum: 1,dataList: [],total: 0}) |
| | | this.getList() |
| | | }, |
| | | handleAction(e){ |
| | | const actionType = e.currentTarget.dataset.code |
| | | const id = e.currentTarget.dataset.id |
| | | actionDo({ |
| | | actionType, |
| | | id |
| | | }).then(res => { |
| | | this.getList() |
| | | }) |
| | | }, |
| | | handleDetail(e) { |
| | | const item = e.currentTarget.dataset.item |
| | | console.log('item', item); |
| | | if(item.openType == 'video'){ |
| | | wx.previewMedia({ |
| | | sources: [{ url: item.openContent, type: 'video' }] |
| | | }) |
| | | } |
| | | if(item.openType == 'link'){ |
| | | wx.navigateTo({ |
| | | url: '/pages/webView/index?link=' + item.openContent, |
| | | }) |
| | | } |
| | | if(item.openType == 'page'){ |
| | | wx.navigateTo({ |
| | | url: '/pages/detailDis/realpic?id=' + item.id, |
| | | }) |
| | | } |
| | | }, |
| | | tagClick(e) { |
| | | const code = e.currentTarget.dataset.code |
| | | const paramIndex = e.currentTarget.dataset.index |
| | | const { cateList, tagCodes, activeParam, activeIndex } = this.data |
| | | const index = tagCodes.indexOf(code) |
| | | |
| | | if(index === -1){ |
| | | if(activeParam && activeParam.length > 0){ |
| | | activeParam.forEach(item => { |
| | | const indexTemp = tagCodes.indexOf(item.labelValueCode) |
| | | if(indexTemp > -1){ |
| | | tagCodes.splice(indexTemp, 1) |
| | | } |
| | | }) |
| | | } |
| | | tagCodes.push(code) |
| | | cateList[activeIndex].paramIndex = paramIndex |
| | | cateList[activeIndex].paramName = activeParam[paramIndex].labelValueName |
| | | }else{ |
| | | tagCodes.splice(index, 1) |
| | | cateList[activeIndex].paramIndex = -1 |
| | | cateList[activeIndex].paramName = '' |
| | | } |
| | | this.setData({ pageNum: 1,dataList: [],total: 0}) |
| | | this.setData({ tagCodes, cateList }) |
| | | console.log('tagCodes', tagCodes); |
| | | }, |
| | | cancelParam() { |
| | | const { cateList } = this.data |
| | | cateList.forEach(item => { |
| | | item.paramIndex = -1 |
| | | item.paramName = '' |
| | | }) |
| | | this.setData({ tagCodes: [],activeParam: [],cateList,activeIndex: -1 }) |
| | | }, |
| | | bindblur() { |
| | | this.getList() |
| | | }, |
| | | subParam() { |
| | | this.setData({ activeParam: [] }) |
| | | this.setData({ pageNum: 1,dataList: [],total: 0}) |
| | | this.getList() |
| | | }, |
| | | changeShowParams(e){ |
| | | const { cateList } = this.data |
| | | const activeIndex = e.currentTarget.dataset.index |
| | | if(activeIndex === this.data.activeIndex){ |
| | | this.setData({ activeIndex: -1, activeParam: [], selParam: '' }) |
| | | }else{ |
| | | this.setData({ |
| | | activeIndex, |
| | | activeParam: cateList[activeIndex].valueVos |
| | | }) |
| | | } |
| | | |
| | | // this.setData({showTwo: false}) |
| | | }, |
| | | changeTwo(){ |
| | |
| | | this.setData({showTwo}) |
| | | this.setData({showOne: false}) |
| | | }, |
| | | statusChange(e) { |
| | | const activeStatus = e.currentTarget.dataset.status |
| | | this.setData({activeStatus}) |
| | | } |
| | | } |
| | | }) |
| | |
| | | .app { |
| | | height: 100%; |
| | | width: 100%; |
| | | .home_content{ |
| | | height: 100%; |
| | | } |
| | | } |
| | | .home_top{ |
| | | position: fixed; |
| | | z-index: 9999; |
| | | width: 100%; |
| | | background-color: #fff; |
| | | } |
| | | .main_content{ |
| | | height: 100%; |
| | | padding-top: 120rpx; |
| | | |
| | | .main_content { |
| | | height: calc(100% - 120rpx); |
| | | .query_wrap_scroll { |
| | | width: 750rpx; |
| | | padding: 0 40rpx; |
| | | } |
| | | |
| | | .query_wrap { |
| | | display: flex; |
| | | padding: 0 16rpx; |
| | | |
| | | .item { |
| | | margin-right: 36rpx; |
| | | height: 88rpx; |
| | | display: flex; |
| | | flex-shrink: 0; |
| | | align-items: center; |
| | | justify-content: center; |
| | | color: #666666; |
| | | flex: 1; |
| | | |
| | | .name { |
| | | margin-right: 6rpx; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .query_param { |
| | | position: absolute; |
| | | z-index: 99; |
| | | background-color: #fff; |
| | | width: 100%; |
| | | |
| | | .list { |
| | | width: 100%; |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | padding: 30rpx 40rpx; |
| | | |
| | | .item { |
| | | width: 202rpx; |
| | | height: 72rpx; |
| | |
| | | margin-right: 0; |
| | | } |
| | | } |
| | | |
| | | .active { |
| | | color: var(--themeColor); |
| | | background: rgba(176, 135, 113, 0.08); |
| | | } |
| | | } |
| | | |
| | | .btns { |
| | | display: flex; |
| | | |
| | | .btn { |
| | | flex: 1; |
| | | height: 88rpx; |
| | |
| | | .status { |
| | | display: flex; |
| | | padding: 0rpx 40rpx; |
| | | margin: 20rpx 0; |
| | | height: 100rpx; |
| | | align-items: center; |
| | | |
| | | .active { |
| | | color: var(--themeColor); |
| | | } |
| | |
| | | background-color: #333333; |
| | | } |
| | | } |
| | | .goods_list{ |
| | | |
| | | .goods_list { |
| | | padding: 12rpx 40rpx; |
| | | height: calc( 100% - 188rpx); |
| | | box-sizing: border-box; |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | justify-content: space-between; |
| | | .item{ |
| | | justify-content: space-around; |
| | | .item { |
| | | width: 324rpx; |
| | | margin-bottom: 60rpx; |
| | | .img_wrap{ |
| | | margin-bottom: 32rpx; |
| | | |
| | | .img_wrap { |
| | | width: 100%; |
| | | height: 182rpx; |
| | | border-radius: 8rpx; |
| | | overflow: hidden; |
| | | position: relative; |
| | | .img{ |
| | | |
| | | .play { |
| | | width: 60rpx; |
| | | position: absolute; |
| | | top: 50%; |
| | | left: 50%; |
| | | transform: translate(-50%, -50%); |
| | | z-index: 1; |
| | | } |
| | | |
| | | .full { |
| | | position: absolute; |
| | | top: 32rpx; |
| | | right: 32rpx; |
| | | font-size: 20rpx; |
| | | color: rgba(255, 255, 255, 0.8); |
| | | width: 112rpx; |
| | | height: 42rpx; |
| | | background: rgba(0, 0, 0, 0.54); |
| | | border-radius: 30rpx; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | |
| | | .icon { |
| | | width: 24rpx; |
| | | margin-right: 4rpx; |
| | | } |
| | | } |
| | | |
| | | .img { |
| | | width: 100%; |
| | | height: 100%; |
| | | } |
| | | .tag{ |
| | | padding: 0 10rpx; |
| | | height: 46rpx; |
| | | line-height: 46rpx; |
| | | text-align: center; |
| | | background: rgba(0,0,0,0.4); |
| | | border-radius: 8rpx; |
| | | |
| | | .new { |
| | | width: 72rpx; |
| | | position: absolute; |
| | | left: 12rpx; |
| | | top: 16rpx; |
| | | color: #fff; |
| | | font-size: 24rpx; |
| | | left: 0; |
| | | top: 0; |
| | | z-index: 10; |
| | | } |
| | | } |
| | | .name{ |
| | | |
| | | .content { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | padding: 0 10rpx; |
| | | } |
| | | |
| | | .name { |
| | | margin: 12rpx 0 8rpx; |
| | | white-space: nowrap; |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | flex: 1; |
| | | } |
| | | .info{ |
| | | |
| | | .info { |
| | | display: flex; |
| | | align-items: center; |
| | | color: #666666; |
| | | margin-left: 12rpx; |
| | | .icon{ |
| | | |
| | | .icon { |
| | | width: 28rpx; |
| | | margin-right: 8rpx; |
| | | } |
| | | .num{ |
| | | |
| | | .num { |
| | | margin-right: 28rpx; |
| | | } |
| | | .primary{ |
| | | |
| | | .primary { |
| | | color: var(--themeColor); |
| | | } |
| | | } |
| | |
| | | <view class="app"> |
| | | <view class="search_wrap"> |
| | | <image src="../../static/icon/ic_search@2x.png" mode="widthFix"></image> |
| | | <input type="text" placeholder="æç´¢äº§ååç§°" /> |
| | | <view class="home_top" style="top:{{ menuButtonInfo.top + menuButtonInfo.height + 6 }}px"> |
| | | <view class="search_wrap"> |
| | | <image src="../../static/icon/ic_search@2x.png" mode="widthFix"></image> |
| | | <input bindblur="bindblur" model:value="{{ query }}" type="text" placeholder="æç´¢å®æ¯åç§°" /> |
| | | </view> |
| | | </view> |
| | | |
| | | <!-- --> |
| | | <view class="main_content"> |
| | | <view class="query_wrap"> |
| | | <view class="item" bindtap="changeShowParams"> |
| | | <view class="name">飿 ¼</view> |
| | | <van-icon name="{{ showParams ? 'arrow-up' : 'arrow-down' }}" /> |
| | | </view> |
| | | <view class="item" bindtap="changeShowParams"> |
| | | <view class="name">空é´</view> |
| | | <van-icon name="{{ showParams ? 'arrow-up' : 'arrow-down' }}" /> |
| | | </view> |
| | | <view class="item" bindtap="changeShowParams"> |
| | | <view class="name">é´å</view> |
| | | <van-icon name="{{ showParams ? 'arrow-up' : 'arrow-down' }}" /> |
| | | </view> |
| | | <view class="item" bindtap="changeShowParams"> |
| | | <view class="name">é´ç§°</view> |
| | | <van-icon name="{{ showParams ? 'arrow-up' : 'arrow-down' }}" /> |
| | | </view> |
| | | <view class="item" bindtap="changeShowParams"> |
| | | <view class="name">空称</view> |
| | | <van-icon name="{{ showParams ? 'arrow-up' : 'arrow-down' }}" /> |
| | | </view> |
| | | </view> |
| | | <view wx:if="{{ showParams }}" class="query_param"> |
| | | <view class="list"> |
| | | <view class="item active">ä¸èçµè§</view> |
| | | <view class="item">ä¸èåçæ¶æç代çµè§</view> |
| | | <view class="item">ä¸èçµè§</view> |
| | | <view class="item">ä¸èçµè§</view> |
| | | <view class="item">ä¸èçµè§</view> |
| | | </view> |
| | | <view class="btns"> |
| | | <view class="btn" bindtap="changeShowParams">åæ¶</view> |
| | | <view class="btn sub">确认</view> |
| | | </view> |
| | | </view> |
| | | <view class="status"> |
| | | <view class="item {{ activeStatus == '0' ? 'active' : '' }}" data-status="0" bindtap="statusChange">é»è®¤</view> |
| | | <view class="separate"></view> |
| | | <view class="item {{ activeStatus == '1' ? 'active' : '' }}" data-status="1" bindtap="statusChange">æç</view> |
| | | <view class="separate"></view> |
| | | <view class="item {{ activeStatus == '2' ? 'active' : '' }}" data-status="2" bindtap="statusChange">ææ°</view> |
| | | </view> |
| | | <!-- goods_list --> |
| | | <view class="goods_list"> |
| | | <view class="item" bindtap="handleDetail"> |
| | | <view class="img_wrap"> |
| | | <image src="../../static/icon/test.png" class="img"></image> |
| | | <view class="tag">宿</view> |
| | | </view> |
| | | <view class="content"> |
| | | <view class="name">é¢ç´æ²é¢ç´æ²é¢ç´æ²é¢ç´æ²é¢ç´æ²é¢ç´æ²é¢ç´æ²é¢ç´æ²</view> |
| | | <view class="info"> |
| | | <image wx:if="{{ false }}" class="icon" src="../../static/icon/detail_nav_collect.png" mode="widthFix"></image> |
| | | <image wx:else="" class="icon" src="../../static/icon/detail_nav_collected.png" mode="widthFix"></image> |
| | | <text class="num {{true ? 'primary' : ''}}">34</text> |
| | | <image class="icon" src="../../static/icon/zixun_ic_liulan.png" mode="widthFix"></image> |
| | | <text>1000</text> |
| | | <view class="home_content" style="padding-top:{{ menuButtonInfo.top + menuButtonInfo.height + 6 }}px;"> |
| | | <view class="main_content"> |
| | | <scroll-view class="query_wrap_scroll" scroll-x> |
| | | <view class="query_wrap"> |
| | | <view data-index="{{ index }}" wx:for="{{ cateList }}" class="item" bindtap="changeShowParams"> |
| | | <view class="name">{{ item.paramName || item.labelName }}</view> |
| | | <van-icon name="{{ activeIndex === index ? 'arrow-up' : 'arrow-down' }}" /> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view class="item"> |
| | | <view class="img_wrap"> |
| | | <image src="../../static/icon/test.png" class="img"></image> |
| | | <image wx:if="{{ false }}" class="new" src="../../static/icon/chanpin_ic_new@2x.png" mode="widthFix"></image> |
| | | </scroll-view> |
| | | <!-- param --> |
| | | <view wx:if="{{ activeParam && activeParam.length > 0 }}" class="query_param"> |
| | | <view class="list"> |
| | | <view data-index="{{index}}" data-code="{{ item.labelValueCode }}" bindtap="tagClick" wx:for="{{ activeParam }}" class="item {{ cateList[activeIndex].paramIndex === index ? 'active' : '' }}">{{ item.labelValueName }}</view> |
| | | </view> |
| | | <view class="content"> |
| | | <view class="name">é¢ç´æ²é¢ç´æ²é¢ç´æ²é¢ç´æ²é¢ç´æ²é¢ç´æ²é¢ç´æ²é¢ç´æ²</view> |
| | | <view class="btns"> |
| | | <view class="btn" bindtap="cancelParam">åæ¶</view> |
| | | <view bindtap="subParam" class="btn sub">确认</view> |
| | | </view> |
| | | </view> |
| | | <view class="status"> |
| | | <view class="item {{ sortType == 'NORMAL' ? 'active' : '' }}" data-status="NORMAL" bindtap="statusChange">é»è®¤</view> |
| | | <view class="separate"></view> |
| | | <view class="item {{ sortType == 'HOT' ? 'active' : '' }}" data-status="HOT" bindtap="statusChange">æç</view> |
| | | <view class="separate"></view> |
| | | <view class="item {{ sortType == 'LATEST' ? 'active' : '' }}" data-status="LATEST" bindtap="statusChange">ææ°</view> |
| | | </view> |
| | | <!-- goods_list --> |
| | | <scroll-view bindscrolltolower="scrolltolower" scroll-y enable-passive enable-flex class="goods_list"> |
| | | <view wx:for="{{ dataList }}" data-item="{{item}}" class="item" bindtap="handleDetail"> |
| | | <view class="img_wrap"> |
| | | <image src="{{ item.coverImage }}" class="img"></image> |
| | | <view wx:if="{{ item.openType == 'link' }}" data-item="{{item}}" bindtap="priviewFull" class="full"> |
| | | <image class="icon" src="../../static/icon/ic_720.png" mode="widthFix"></image> |
| | | <text>å
¨æ¯</text> |
| | | </view> |
| | | <image wx:if="{{ item.openType == 'video' }}" bindtap="videoClick" data-videourl="{{ item.openContent }}" class="play" src="../../static/icon/ic_play.png" mode="widthFix"></image> |
| | | <image wx:if="{{ false }}" class="new" src="../../static/icon/chanpin_ic_new@2x.png" mode="widthFix"></image> |
| | | </view> |
| | | <view class="content"> |
| | | <view class="name">{{ item.title }}</view> |
| | | </view> |
| | | <view class="info"> |
| | | <image wx:if="{{ false }}" class="icon" src="../../static/icon/detail_nav_collect.png" mode="widthFix"></image> |
| | | <image wx:else="" class="icon" src="../../static/icon/detail_nav_collected.png" mode="widthFix"></image> |
| | | <text class="num {{true ? 'primary' : ''}}">34</text> |
| | | <image wx:if="{{ !item.collection }}" data-code="like" bindtap="handleAction" class="icon" src="../../static/icon/detail_nav_collect.png" mode="widthFix"></image> |
| | | <image wx:else data-code="like_cancel" bindtap="handleAction" class="icon" src="../../static/icon/detail_nav_collected.png" mode="widthFix"></image> |
| | | <text class="num {{item.collection ? 'primary' : ''}}">{{ item.collectCount }}</text> |
| | | <image class="icon" src="../../static/icon/zixun_ic_liulan.png" mode="widthFix"></image> |
| | | <text>1000</text> |
| | | <text>{{ item.viewCount }}</text> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view class="item"> |
| | | <view class="img_wrap"> |
| | | <image src="../../static/icon/test.png" class="img"></image> |
| | | <image wx:if="{{ false }}" class="new" src="../../static/icon/chanpin_ic_new@2x.png" mode="widthFix"></image> |
| | | </view> |
| | | <view class="content"> |
| | | <view class="name">é¢ç´æ²é¢ç´æ²é¢ç´æ²é¢ç´æ²é¢ç´æ²é¢ç´æ²é¢ç´æ²é¢ç´æ²</view> |
| | | <view class="info"> |
| | | <image wx:if="{{ false }}" class="icon" src="../../static/icon/detail_nav_collect.png" mode="widthFix"></image> |
| | | <image wx:else="" class="icon" src="../../static/icon/detail_nav_collected.png" mode="widthFix"></image> |
| | | <text class="num {{true ? 'primary' : ''}}">34</text> |
| | | <image class="icon" src="../../static/icon/zixun_ic_liulan.png" mode="widthFix"></image> |
| | | <text>1000</text> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view class="item"> |
| | | <view class="img_wrap"> |
| | | <image src="../../static/icon/test.png" class="img"></image> |
| | | <image wx:if="{{ false }}" class="new" src="../../static/icon/chanpin_ic_new@2x.png" mode="widthFix"></image> |
| | | </view> |
| | | <view class="content"> |
| | | <view class="name">é¢ç´æ²é¢ç´æ²é¢ç´æ²é¢ç´æ²é¢ç´æ²é¢ç´æ²é¢ç´æ²é¢ç´æ²</view> |
| | | <view class="info"> |
| | | <image wx:if="{{ false }}" class="icon" src="../../static/icon/detail_nav_collect.png" mode="widthFix"></image> |
| | | <image wx:else="" class="icon" src="../../static/icon/detail_nav_collected.png" mode="widthFix"></image> |
| | | <text class="num {{true ? 'primary' : ''}}">34</text> |
| | | <image class="icon" src="../../static/icon/zixun_ic_liulan.png" mode="widthFix"></image> |
| | | <text>1000</text> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </scroll-view> |
| | | </view> |
| | | </view> |
| | | |
| | | |
| | | </view> |
| | |
| | | height: 100%; |
| | | width: 100%; |
| | | } |
| | | .app .home_content { |
| | | height: 100%; |
| | | } |
| | | .home_top { |
| | | position: fixed; |
| | | z-index: 9999; |
| | | width: 100%; |
| | | background-color: #fff; |
| | | } |
| | | .main_content { |
| | | height: calc(100% - 120rpx); |
| | | height: 100%; |
| | | padding-top: 120rpx; |
| | | } |
| | | .main_content .query_wrap_scroll { |
| | | width: 750rpx; |
| | | padding: 0 40rpx; |
| | | } |
| | | .main_content .query_wrap { |
| | | display: flex; |
| | | padding: 0 16rpx; |
| | | } |
| | | .main_content .query_wrap .item { |
| | | margin-right: 36rpx; |
| | | height: 88rpx; |
| | | display: flex; |
| | | flex-shrink: 0; |
| | | align-items: center; |
| | | justify-content: center; |
| | | color: #666666; |
| | | flex: 1; |
| | | } |
| | | .main_content .query_wrap .item .name { |
| | | margin-right: 6rpx; |
| | |
| | | .main_content .status { |
| | | display: flex; |
| | | padding: 0rpx 40rpx; |
| | | margin: 20rpx 0; |
| | | height: 100rpx; |
| | | align-items: center; |
| | | } |
| | | .main_content .status .active { |
| | |
| | | } |
| | | .main_content .goods_list { |
| | | padding: 12rpx 40rpx; |
| | | height: calc(100% - 188rpx); |
| | | box-sizing: border-box; |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | justify-content: space-between; |
| | | justify-content: space-around; |
| | | } |
| | | .main_content .goods_list .item { |
| | | width: 324rpx; |
| | | margin-bottom: 60rpx; |
| | | margin-bottom: 32rpx; |
| | | } |
| | | .main_content .goods_list .item .img_wrap { |
| | | width: 100%; |
| | |
| | | overflow: hidden; |
| | | position: relative; |
| | | } |
| | | .main_content .goods_list .item .img_wrap .play { |
| | | width: 60rpx; |
| | | position: absolute; |
| | | top: 50%; |
| | | left: 50%; |
| | | transform: translate(-50%, -50%); |
| | | z-index: 1; |
| | | } |
| | | .main_content .goods_list .item .img_wrap .full { |
| | | position: absolute; |
| | | top: 32rpx; |
| | | right: 32rpx; |
| | | font-size: 20rpx; |
| | | color: rgba(255, 255, 255, 0.8); |
| | | width: 112rpx; |
| | | height: 42rpx; |
| | | background: rgba(0, 0, 0, 0.54); |
| | | border-radius: 30rpx; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | } |
| | | .main_content .goods_list .item .img_wrap .full .icon { |
| | | width: 24rpx; |
| | | margin-right: 4rpx; |
| | | } |
| | | .main_content .goods_list .item .img_wrap .img { |
| | | width: 100%; |
| | | height: 100%; |
| | | } |
| | | .main_content .goods_list .item .img_wrap .tag { |
| | | padding: 0 10rpx; |
| | | height: 46rpx; |
| | | line-height: 46rpx; |
| | | text-align: center; |
| | | background: rgba(0, 0, 0, 0.4); |
| | | border-radius: 8rpx; |
| | | .main_content .goods_list .item .img_wrap .new { |
| | | width: 72rpx; |
| | | position: absolute; |
| | | left: 12rpx; |
| | | top: 16rpx; |
| | | color: #fff; |
| | | font-size: 24rpx; |
| | | left: 0; |
| | | top: 0; |
| | | z-index: 10; |
| | | } |
| | | .main_content .goods_list .item .content { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | padding: 0 10rpx; |
| | | } |
| | | .main_content .goods_list .item .name { |
| | | margin: 12rpx 0 8rpx; |
| | | white-space: nowrap; |
| | |
| | | import { getZhongTaiProductNewsPage, getCatalogList } from '../../api/index' |
| | | import { getZhongTaiProductNewsPage, getCatalogList,actionDo } from '../../api/index' |
| | | Page({ |
| | | |
| | | /** |
| | |
| | | */ |
| | | data: { |
| | | category: [], |
| | | secondCategory: ['级åç±»','级åç±»','级åç±»','级åç±»','级åç±»','级åç±»'], |
| | | activeCate: '', |
| | | seActiveCate: '', |
| | | secondCategory: [], |
| | | |
| | | catalogCode: '', |
| | | tagCode: '', |
| | | query: '', |
| | | dataList: [], |
| | | total: 0, |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | |
| | | // height: 0, |
| | | // top: 0, |
| | | }, |
| | | onLoad(options) { |
| | | this.getCate() |
| | | this.getList() |
| | | }, |
| | | onReachBottom() { |
| | | console.log('触åºäºä»¶'); |
| | | const { total, dataList, pageNum } = this.data |
| | | if(total > dataList.length){ |
| | | this.setData({ pageNum: pageNum + 1 }) |
| | | this.getList() |
| | | }else{ |
| | | wx.showToast({ |
| | | title: 'ææ æ´å¤æ°æ®', |
| | | icon: 'none' |
| | | }) |
| | | } |
| | | }, |
| | | getCate() { |
| | | getCatalogList({catalogCode: 'product_info'}).then(res => { |
| | | this.setData({ category: res.data }) |
| | | if(res.data && res.data.length > 0){ |
| | | this.setData({catalogCode: res.data[0].code}) |
| | | this.gettag() |
| | | this.getList() |
| | | } |
| | | }) |
| | | }, |
| | | gettag() { |
| | | const { catalogCode } = this.data |
| | | getCatalogList({ |
| | | catalogCode |
| | | }).then(res => { |
| | | if(res.data && res.data.length > 0){ |
| | | this.setData({ secondCategory: res.data }) |
| | | } |
| | | }) |
| | | }, |
| | | itemClick(e) { |
| | | const { id } = e.currentTarget.dataset |
| | | wx.navigateTo({ |
| | | url: '/pages/consult/detail?id='+id, |
| | | }) |
| | | const item = e.currentTarget.dataset.item |
| | | actionDo({actionType: 'view',id: item.id}) |
| | | if(item.contentType == 'link'){ |
| | | wx.navigateTo({ |
| | | url: '/pages/webView/index?link=' + item.content, |
| | | success: function(res) { |
| | | // éè¿eventChannelå被æå¼é¡µé¢ä¼ éæ°æ® |
| | | res.eventChannel.emit('acceptDataFromOpenerPage', { link: item.openContent, title: item.title }) |
| | | } |
| | | }) |
| | | }else{ |
| | | wx.navigateTo({ |
| | | url: '/pages/consult/detail?id='+item.id, |
| | | }) |
| | | } |
| | | }, |
| | | getList() { |
| | | const { pageNum, pageSize, activeCate } = this.data |
| | | const { pageNum, pageSize, catalogCode, tagCode, query } = this.data |
| | | getZhongTaiProductNewsPage({ |
| | | pageNum, pageSize, catalogCode: activeCate |
| | | pageNum, pageSize, query, catalogCode: tagCode || catalogCode |
| | | }).then(res => { |
| | | if(res.data){ |
| | | this.setData({ dataList: res.data.records,total: res.data.records.total }) |
| | | this.setData({ |
| | | dataList: [ ...this.data.dataList, ...res.data.records ], |
| | | total: res.data.total |
| | | }) |
| | | } |
| | | |
| | | }) |
| | | }, |
| | | cateClick(e) { |
| | | const { code } = e.currentTarget.dataset |
| | | this.setData({ activeCate: code }) |
| | | this.setData({ catalogCode: code,secondCategory: [], tagCode: '' }) |
| | | this.gettag() |
| | | this.getList() |
| | | this.setData({ dataList: [], pageNum: 1 }) |
| | | }, |
| | | seCateClick(e) { |
| | | const { index } = e.currentTarget.dataset |
| | | console.log(index); |
| | | const { code } = e.currentTarget.dataset |
| | | if(this.data.tagCode == code){ |
| | | this.setData({ tagCode: '' }) |
| | | }else{ |
| | | this.setData({ tagCode: code }) |
| | | } |
| | | this.setData({ dataList: [], pageNum: 1 }) |
| | | this.getList() |
| | | }, |
| | | priviewFull(e){ |
| | | const item = e.currentTarget.dataset.item |
| | | console.log('item', item); |
| | | |
| | | }, |
| | | onReady() { |
| | | |
| | | }, |
| | |
| | | onUnload() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 页é¢ç¸å
³äºä»¶å¤ç彿°--çå¬ç¨æ·ä¸æå¨ä½ |
| | | */ |
| | | onPullDownRefresh() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 页é¢ä¸æè§¦åºäºä»¶çå¤ç彿° |
| | | */ |
| | | onReachBottom() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * ç¨æ·ç¹å»å³ä¸è§å享 |
| | | */ |
| | |
| | | .container { |
| | | background-color: #fff; |
| | | } |
| | | .home_top{ |
| | | position: fixed; |
| | | width: 100%; |
| | | z-index: 99; |
| | | top: 0; |
| | | background-color: #fff; |
| | | } |
| | | .cate_wrap{ |
| | | background-color: #fff; |
| | | .cate_one{ |
| | | position: fixed; |
| | | top: 96rpx; |
| | | background-color: #fff; |
| | | width: 100%; |
| | | } |
| | | .cate_two{ |
| | | position: fixed; |
| | | top: 156rpx; |
| | | background-color: #fff; |
| | | padding-top: 30rpx; |
| | | width: 100%; |
| | | } |
| | | } |
| | | .search_wrap{ |
| | | width: 670rpx; |
| | | height: 72rpx; |
| | | margin: 0rpx auto 24rpx; |
| | | background: #F7F7F7; |
| | | border-radius: 8rpx; |
| | | padding: 0 40rpx; |
| | | display: flex; |
| | |
| | | } |
| | | } |
| | | .content{ |
| | | padding: 0 40rpx 40rpx; |
| | | padding: 260rpx 40rpx 40rpx; |
| | | .item{ |
| | | margin-bottom: 60rpx; |
| | | .img{ |
| | |
| | | <view class="container"> |
| | | <view class="search_wrap"> |
| | | <image src="../../static/icon/ic_search@2x.png" mode="widthFix"></image> |
| | | <input type="text" placeholder="æç´¢å¨è¯¢æ é¢" /> |
| | | <view class="home_top"> |
| | | <view class="search_wrap"> |
| | | <image src="../../static/icon/ic_search@2x.png" mode="widthFix"></image> |
| | | <input bindblur="getList" model:value="{{ query }}" type="text" placeholder="æç´¢èµè®¯æ é¢" /> |
| | | </view> |
| | | </view> |
| | | <!-- åç±» --> |
| | | <view> |
| | | <scroll-view scroll-x="true" style="weight: 710rpx;margin-bottom: 30rpx;"> |
| | | <view class="scroll_cate"> |
| | | <view bindtap="cateClick" data-code="{{item.code}}" wx:for="{{ category }}" class="item {{ activeCate == item.code ? 'active': '' }}">{{ item.name }}</view> |
| | | </view> |
| | | </scroll-view> |
| | | <scroll-view scroll-x="true" style="weight: 710rpx;margin-bottom: 28rpx;"> |
| | | <view class="scroll_cate second_list"> |
| | | <view bindtap="seCateClick" data-index="{{index}}" wx:for="{{ secondCategory }}" class="item {{ index == 0 ? 'active': '' }}">{{ index }}{{ item }}</view> |
| | | </view> |
| | | </scroll-view> |
| | | <view class="cate_wrap"> |
| | | <view class="cate_one"> |
| | | <scroll-view scroll-x="true" style="weight: 710rpx;margin-bottom: 30rpx;"> |
| | | <view class="scroll_cate"> |
| | | <view bindtap="cateClick" data-code="{{item.code}}" wx:for="{{ category }}" class="item {{ catalogCode == item.code ? 'active': '' }}">{{ item.name }}</view> |
| | | </view> |
| | | </scroll-view> |
| | | </view> |
| | | <view class="cate_two"> |
| | | <scroll-view scroll-x="true" style="weight: 710rpx;margin-bottom: 24rpx;"> |
| | | <view class="scroll_cate second_list"> |
| | | <view bindtap="seCateClick" data-code="{{item.code}}" wx:for="{{ secondCategory }}" class="item {{ tagCode == item.code ? 'active': '' }}">{{ item.name }}</view> |
| | | </view> |
| | | </scroll-view> |
| | | </view> |
| | | </view> |
| | | <!-- content --> |
| | | <view class="content"> |
| | | <view wx:for="{{ dataList }}" class="item" bindtap="itemClick" data-id="{{item.id}}"> |
| | | <view class="content" style="padding-top: {{ secondCategory.length > 0 ? 276 : 186 }}rpx;"> |
| | | <view wx:for="{{ dataList }}" class="item" bindtap="itemClick" data-item="{{item}}"> |
| | | <image class="img" src="{{ item.coverImage }}" mode="widthFix"></image> |
| | | <view class="title">{{ item.title }}</view> |
| | | <view class="df_sb static"> |
| | |
| | | .container { |
| | | background-color: #fff; |
| | | } |
| | | .home_top { |
| | | position: fixed; |
| | | width: 100%; |
| | | z-index: 99; |
| | | top: 0; |
| | | background-color: #fff; |
| | | } |
| | | .cate_wrap { |
| | | background-color: #fff; |
| | | } |
| | | .cate_wrap .cate_one { |
| | | position: fixed; |
| | | top: 96rpx; |
| | | background-color: #fff; |
| | | width: 100%; |
| | | } |
| | | .cate_wrap .cate_two { |
| | | position: fixed; |
| | | top: 156rpx; |
| | | background-color: #fff; |
| | | padding-top: 30rpx; |
| | | width: 100%; |
| | | } |
| | | .search_wrap { |
| | | width: 670rpx; |
| | | height: 72rpx; |
| | | margin: 0rpx auto 24rpx; |
| | | background: #F7F7F7; |
| | | border-radius: 8rpx; |
| | | padding: 0 40rpx; |
| | | display: flex; |
| | |
| | | font-weight: 400; |
| | | } |
| | | .content { |
| | | padding: 0 40rpx 40rpx; |
| | | padding: 260rpx 40rpx 40rpx; |
| | | } |
| | | .content .item { |
| | | margin-bottom: 60rpx; |
| | |
| | | data: { |
| | | bottomLift: 0, |
| | | info: {}, |
| | | detail: {}, |
| | | |
| | | showShare: false |
| | | }, |
| | |
| | | }, |
| | | getDetail(id) { |
| | | getProductNewsInfo({ id }).then(res => { |
| | | this.setData({ detail: res.data }) |
| | | this.setData({ info: res.data }) |
| | | wx.setNavigationBarTitle({ |
| | | title: res.data.title |
| | | }) |
| | | }) |
| | | }, |
| | | openShare() { |
| | |
| | | { |
| | | "usingComponents": { |
| | | "van-popup": "@vant/weapp/popup/index" |
| | | "van-popup": "@vant/weapp/popup/index", |
| | | "mp-html": "mp-html" |
| | | }, |
| | | "navigationBarTitleText": "详æ
" |
| | | "navigationBarTitleText": "" |
| | | } |
| | |
| | | <view> |
| | | <!-- <navBar title="{{ navTitle }}"></navBar> --> |
| | | <view class="main_content"> |
| | | <view class="main_title">ä¸ç§ç¾å¥½çå
³ï¼è¿å±ç¬é´å¸è½½ç²æ«</view> |
| | | <view class="datetime">å叿¶é´ï¼2021-08-21 10:0</view> |
| | | <view class="content"> |
| | | 客å
ãé¤å
ãå§å®¤ã卿¿ãé³å°â¦â¦å®¶ä¸ç©ºé´çç§°è°ï¼å¤§å¤æ´å®æ åï¼å¯ç¬âçå
³âä¸è¯æ ¼å¤å丽æ½è±¡ã |
| | | è¿ä¸ªä¸å¤ªèµ·ç¼çå°ç©ºé´ï¼åè¯æ¥èªéæï¼âçå
³âæä¿®ç¼å
丹è¿ç¨ä¸ï¼ä½å
çæ°ç»å·¡å
¨èº«æ¶ï¼æå
éè¿çå°æ¹ï¼ä¹æâ夫çå
³è
ï¼è³çè³å¦ä¹æºå
³ä¹âç说æ³ã |
| | | </view> |
| | | <view class="main_title">{{ info.title }}</view> |
| | | <view class="datetime">å叿¶é´ï¼{{ info.publishDt }}</view> |
| | | <mp-html content="{{info.content}}"></mp-html> |
| | | </view> |
| | | |
| | | |
| | | <!-- footer --> |
| | | <view class="footer" style="padding-bottom: {{bottomLift}}px;"> |
| | | <view class="btns"> |
| | |
| | | data: { |
| | | name: '', |
| | | phone: '', |
| | | city: '', |
| | | |
| | | showAreaList: false, |
| | | areaList: [], |
| | | addr: {}, |
| | | fieldNames: { |
| | | text: 'name', |
| | | value: 'id', |
| | | children: 'children', |
| | | }, |
| | | cascaderValue: '', |
| | | |
| | | DESIGN_BANNER: '', |
| | |
| | | onSubmit() { |
| | | const { |
| | | name, |
| | | phone |
| | | phone, |
| | | addr |
| | | } = this.data |
| | | if (!name) return wx.showToast({ |
| | | title: '请è¾å
¥å§å', |
| | |
| | | title: '请è¾å
¥èç³»çµè¯', |
| | | icon: 'none' |
| | | }) |
| | | if (phone.length !== 11) return wx.showToast({ |
| | | title: '请è¾å
¥æ£ç¡®çèç³»çµè¯', |
| | | icon: 'none' |
| | | }) |
| | | if (!addr.areaCode || !addr.cityCode) return wx.showToast({ |
| | | title: 'è¯·éæ©åå¸', |
| | | icon: 'none' |
| | | }) |
| | | saveFreeCustomizationApply({ |
| | | name, |
| | | phone |
| | | phone, |
| | | ...addr |
| | | }).then(res => { |
| | | wx.showToast({ |
| | | title: 'æ¥åæå' |
| | | }) |
| | | |
| | | wx.switchTab({ |
| | | url: '/pages/index/index', |
| | | }) |
| | | }) |
| | | }, |
| | | // æ¾ç¤ºåæ¢åå¸å¼¹çª |
| | | // æ¾ç¤ºåå¸å¼¹çª |
| | | chooseCity () { |
| | | this.setData({ showAreaList: !this.data.showAreaList }) |
| | | console.log('chooseCity', chooseCity); |
| | | console.log('chooseCity', this.data.showAreaList); |
| | | }, |
| | | // 忢åå¸ |
| | | confirmChange(e) { |
| | | let { |
| | | values |
| | | } = e.detail |
| | | let region = [] |
| | | for (let i in values) { |
| | | region.push(values[i].name) |
| | | onFinish(e) { |
| | | const { selectedOptions, value } = e.detail; |
| | | const addr = { |
| | | provinceCode: selectedOptions[0].id, |
| | | provinceName: selectedOptions[0].name, |
| | | cityCode: selectedOptions[1].id, |
| | | cityName: selectedOptions[1].name, |
| | | areaCode: selectedOptions[2].id, |
| | | areaName: selectedOptions[2].name, |
| | | } |
| | | this.setData({ |
| | | region, |
| | | cityCode: values[1].code |
| | | }) |
| | | this.getShopList() |
| | | this.chooseCity() |
| | | this.setData({ addr, showAreaList: false }) |
| | | console.log('selectedOptions', addr); |
| | | }, |
| | | onFinish() { |
| | | |
| | | positionChange (e) { |
| | | console.log(e.detail.value) |
| | | const names = e.detail.value |
| | | const codes = e.detail.code |
| | | let addr = { |
| | | provinceCode: codes[0] + '00', |
| | | provinceName: names[0], |
| | | cityCode: codes[1] + '00', |
| | | cityName: names[1], |
| | | areaCode: codes[2] + '00', |
| | | areaName: names[2], |
| | | } |
| | | this.setData({ addr }) |
| | | }, |
| | | bindRegionChange(e) { |
| | | console.log('pickeråééæ©æ¹åï¼æºå¸¦å¼ä¸º', e.detail.value) |
| | | const temp = e.detail.value |
| | | this.setData({ |
| | | region: e.detail.value |
| | | }) |
| | | }, |
| | | onClose() { |
| | | this.setData({ showAreaList: false }) |
| | |
| | | border-radius: 8rpx; |
| | | padding: 0 32rpx; |
| | | margin-bottom: 40rpx; |
| | | |
| | | .city_picler{ |
| | | flex: 1; |
| | | padding-left: 30rpx; |
| | | .placeholder9{ |
| | | color: #c8c9cc; |
| | | } |
| | | } |
| | | .icon { |
| | | width: 40rpx; |
| | | } |
| | |
| | | <image class="icon" src="../../static/icon/design_ic_phone.png" mode="widthFix"></image> |
| | | <van-field type="number" class="input" custom-style="background-color: #F6F6F6;" model:value="{{ phone }}" placeholder="请è¾å
¥èç³»çµè¯" clearable maxlength="{{ 11 }}" /> |
| | | </view> |
| | | <view class="line" bindtap="chooseCity"> |
| | | <view class="line"> |
| | | <image class="icon" src="../../static/icon/design_ic_city.png" mode="widthFix"></image> |
| | | <view class="city">{{ city }}</view> |
| | | <picker class="city_picler" mode="region" value="{{ addr }}" bindchange="bindRegionChange" bindchange="positionChange"> |
| | | <view class="placeholder9" hidden="{{ addr.cityName }}">è¯·éæ©å°å</view> |
| | | <view class="picker" hidden="{{ !addr.cityName }}"> |
| | | {{ addr.provinceName }}{{ addr.cityName }}{{ addr.areaName }} |
| | | </view> |
| | | </picker> |
| | | <image class="arrow_right" src="../../static/icon/arrow_right.png" mode="widthFix"></image> |
| | | </view> |
| | | <view class="btn" bindtap="onSubmit">ç«å³æ¥å</view> |
| | | </view> |
| | | <image class="banner" src="{{ WechatIMG558 }}" mode="widthFix"></image> |
| | | <!-- --> |
| | | <van-cascader wx:if="{{ showAreaList }}" value="{{ cascaderValue }}" title="è¯·éæ©æå¨å°åº" options="{{ areaList }}" bind:close="onClose" bind:finish="onFinish" /> |
| | | <van-popup show="{{ showAreaList }}" bind:close="onClose" round position="bottom"> |
| | | <van-cascader field-names="{{ fieldNames }}" value="{{ cascaderValue }}" title="è¯·éæ©æå¨å°åº" options="{{ areaList }}" bind:close="onClose" bind:finish="onFinish" /> |
| | | </van-popup> |
| | | |
| | | </view> |
| | |
| | | padding: 0 32rpx; |
| | | margin-bottom: 40rpx; |
| | | } |
| | | .main_content .line .city_picler { |
| | | flex: 1; |
| | | padding-left: 30rpx; |
| | | } |
| | | .main_content .line .city_picler .placeholder9 { |
| | | color: #c8c9cc; |
| | | } |
| | | .main_content .line .icon { |
| | | width: 40rpx; |
| | | } |
| | |
| | | import { shareContent } from '../../api/index' |
| | | import { actionDo, getWholecaseInfo } from '../../api/index' |
| | | Page({ |
| | | |
| | | /** |
| | |
| | | this.setData({ |
| | | bottomLift: app.bottomLift |
| | | }) |
| | | this.getDetail(options.id) |
| | | actionDo({ |
| | | actionType: 'view', |
| | | id: options.id |
| | | }) |
| | | const member = wx.getStorageSync('member') |
| | | this.setData({id: options.id, member}) |
| | | }, |
| | | |
| | | priviewFull(){ |
| | | let { panorama: link, title } = this.data.info |
| | | wx.navigateTo({ |
| | | url: '/pages/webView/index', |
| | | success: function(res) { |
| | | // éè¿eventChannelå被æå¼é¡µé¢ä¼ éæ°æ® |
| | | res.eventChannel.emit('acceptDataFromOpenerPage', { link, title }) |
| | | } |
| | | }) |
| | | }, |
| | | openShare() { |
| | | this.setData({showShare: true}) |
| | | }, |
| | | handleShare() { |
| | | console.log('ç¹å»äºå享'); |
| | | shareContent(this.data.info.id) |
| | | actionDo({ actionType: 'share', id: this.data.info.id }) |
| | | }, |
| | | // onShareAppMessage: function () { |
| | | // // let { productDetail, userInfo } = this.data |
| | |
| | | // path: '/pages/index/index?id=' + productDetail.id + '&shareuserid=' + userInfo.id + '&type=0' |
| | | // } |
| | | // }, |
| | | handleAction(e){ |
| | | const actionType = e.currentTarget.dataset.code |
| | | const { info } = this.data |
| | | actionDo({ |
| | | actionType, |
| | | id: this.data.info.id |
| | | }).then(res => { |
| | | info.collection = !info.collection |
| | | this.setData({info}) |
| | | wx.showToast({ |
| | | title: actionType == 'collect' ? 'æ¶èæå' : 'åæ¶æ¶è', |
| | | }) |
| | | }) |
| | | }, |
| | | getDetail(id) { |
| | | getWholecaseInfo({id}).then(res => { |
| | | this.setData({ info: res.data }) |
| | | wx.setNavigationBarTitle({ |
| | | title: res.data.title |
| | | }) |
| | | }) |
| | | }, |
| | | handleDesign() { |
| | | wx.navigateTo({ |
| | | url: '/pages/design/design', |
| | | }) |
| | | }, |
| | | playVideo() { |
| | | wx.previewMedia({ |
| | | sources: [{ url: this.data.info.video, type: 'video' }] |
| | | }) |
| | | }, |
| | | onClose() { |
| | | this.setData({showShare: false}) |
| | | }, |
| | |
| | | { |
| | | "usingComponents": { |
| | | "van-popup": "@vant/weapp/popup/index" |
| | | "van-popup": "@vant/weapp/popup/index", |
| | | "mp-html": "mp-html" |
| | | }, |
| | | "navigationBarTitleText": "" |
| | | } |
| | |
| | | } |
| | | |
| | | .fullview_wrap { |
| | | position: relative; |
| | | .banner { |
| | | width: 100%; |
| | | border-radius: 8rpx; |
| | | } |
| | | .full{ |
| | | position: absolute; |
| | | top: 32rpx; |
| | | right: 32rpx; |
| | | font-size: 20rpx; |
| | | color: rgba(255,255,255,0.8); |
| | | width: 112rpx; |
| | | height: 42rpx; |
| | | background: rgba(0,0,0,0.54); |
| | | border-radius: 30rpx; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | .icon{ |
| | | width: 24rpx; |
| | | margin-right: 4rpx; |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | .list{ |
| | | .item{ |
| | | .content{ |
| | | margin-top: 20rpx; |
| | | font-weight: 300; |
| | | font-size: 28rpx; |
| | | color: #333333; |
| | | } |
| | | .img{ |
| | | width: 100%; |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | <view class="container"> |
| | | <view class="main_title">ç®æ¬§é£æ ¼70m²两å±
室</view> |
| | | <view class="time">å叿¶é´ï¼2021-08-21 10:0</view> |
| | | <view class="main_title">{{ info.title }}</view> |
| | | <view class="time">å叿¶é´ï¼{{ info.publishDt }}</view> |
| | | <view class="fullview_wrap"> |
| | | <image class="banner" src="../../static/icon/test.png" mode="widthFix"></image> |
| | | <view bindtap="priviewFull" wx:if="{{ info.panorama }}" class="full"> |
| | | <image class="icon" src="../../static/icon/ic_720.png" mode="widthFix"></image> |
| | | <text>å
¨æ¯</text> |
| | | </view> |
| | | <image class="banner" src="{{ info.coverImage }}" mode="widthFix"></image> |
| | | </view> |
| | | <view class="h1">å¸ç½®å¾</view> |
| | | <image class="img" src="../../static/icon/test.png" mode="widthFix"></image> |
| | | <image class="img" src="{{ info.layoutUlr }}" mode="widthFix"></image> |
| | | <view class="analysis"> |
| | | <view class="h2">æ¡ä¾è§£æ</view> |
| | | <view class="text">为ä¿çå
¥æ·çå¨çº³ç©ºé´ï¼å°å«çé´çé¨ç§»å¨ä¸æ®µè·ç¦»ï¼æ¹ä¾¿äºå
¥æ·è´µç设置ï¼å¨ç©é´å°éå主å§è¡£å¸½é´ï¼å¢å 空é´ä½¿ç¨çåæ¿å±æ´ä½æ§ã客å
çæ ¼å±è®¾è®¡å¢å äºç©ºé´ç屿¬¡æã</view> |
| | | <view class="text">{{ info.caseInfo }}</view> |
| | | </view> |
| | | <view class="list"> |
| | | <view class="item"> |
| | | <view class="h1">01.客å
</view> |
| | | <image src="" mode="widthFix" /> |
| | | <view class="content">çæ¯äºæ´é½åä¸çç»çåæï¼éè²æ¡åç»é¨åæåæ¯ä¸ä¸æ ·ç审ç¾ï¼è¾¹æ¡å¾®æåå
¥ï¼å·¦å³å¯¹ç§°åå¸ï¼ç¯å
æ 衬ä¸ï¼ç¾å³ç»ä¸½å¤å§¿</view> |
| | | </view> |
| | | <view class="item"> |
| | | <view class="h1">01.客å
</view> |
| | | <image src="" mode="widthFix" /> |
| | | <view class="content">çæ¯äºæ´é½åä¸çç»çåæï¼éè²æ¡åç»é¨åæåæ¯ä¸ä¸æ ·ç审ç¾ï¼è¾¹æ¡å¾®æåå
¥ï¼å·¦å³å¯¹ç§°åå¸ï¼ç¯å
æ 衬ä¸ï¼ç¾å³ç»ä¸½å¤å§¿</view> |
| | | </view> |
| | | <view class="item"> |
| | | <view class="h1">01.客å
</view> |
| | | <image src="" mode="widthFix" /> |
| | | <view class="content">çæ¯äºæ´é½åä¸çç»çåæï¼éè²æ¡åç»é¨åæåæ¯ä¸ä¸æ ·ç审ç¾ï¼è¾¹æ¡å¾®æåå
¥ï¼å·¦å³å¯¹ç§°åå¸ï¼ç¯å
æ 衬ä¸ï¼ç¾å³ç»ä¸½å¤å§¿</view> |
| | | <view wx:for="{{ info.apiSpaceCaseVos }}" class="item"> |
| | | <view class="h1">{{ item.spaceName }}</view> |
| | | <image class="img" wx:for="{{ item.imgList }}" wx:for-item="img" src="{{ img }}" mode="widthFix" /> |
| | | <view class="content">{{ item.spaceDesc }}</view> |
| | | </view> |
| | | </view> |
| | | <!-- footer --> |
| | | <view class="footer" style="padding-bottom: {{bottomLift}}px;"> |
| | | <view class="btns"> |
| | | <view class="item"> |
| | | <image class="icon" src="../../static/icon/detail_nav_collected.png" mode="widthFix"></image> |
| | | <button class="item btn"> |
| | | <image data-code="collect_cancel" bindtap="handleAction" wx:if="{{ info.collection }}" class="icon" src="../../static/icon/detail_nav_collected.png" mode="widthFix"></image> |
| | | <image wx:else data-code="collect" bindtap="handleAction" class="icon" src="../../static/icon/detail_nav_collect.png" mode="widthFix"></image> |
| | | <view class="name">æ¶è</view> |
| | | </view> |
| | | <view class="item" bindtap="openShare"> |
| | | </button> |
| | | <button open-type="share" class="item btn" bindtap="handleShare"> |
| | | <image class="icon" src="../../static/icon/detail_nav_share.png" mode="widthFix"></image> |
| | | <view class="name">å享</view> |
| | | </view> |
| | | <view class="sub_btn"> |
| | | </button> |
| | | <view class="sub_btn" bindtap="handleDesign"> |
| | | <image class="sheji" src="../../static/icon/ic_sheji.png" mode="widthFix"></image> |
| | | <view>å
è´¹é¢çº¦ä¸å±è®¾è®¡</view> |
| | | </view> |
| | |
| | | color: #999999; |
| | | margin-bottom: 48rpx; |
| | | } |
| | | .container .fullview_wrap { |
| | | position: relative; |
| | | } |
| | | .container .fullview_wrap .banner { |
| | | width: 100%; |
| | | border-radius: 8rpx; |
| | | } |
| | | .container .fullview_wrap .full { |
| | | position: absolute; |
| | | top: 32rpx; |
| | | right: 32rpx; |
| | | font-size: 20rpx; |
| | | color: rgba(255, 255, 255, 0.8); |
| | | width: 112rpx; |
| | | height: 42rpx; |
| | | background: rgba(0, 0, 0, 0.54); |
| | | border-radius: 30rpx; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | } |
| | | .container .fullview_wrap .full .icon { |
| | | width: 24rpx; |
| | | margin-right: 4rpx; |
| | | } |
| | | .container .img { |
| | | width: 100%; |
| | |
| | | color: #333333; |
| | | } |
| | | .container .list .item .content { |
| | | margin-top: 20rpx; |
| | | font-weight: 300; |
| | | font-size: 28rpx; |
| | | color: #333333; |
| | | } |
| | | .container .list .item .img { |
| | | width: 100%; |
| | | } |
| | | .spaceList .item { |
| | | margin-bottom: 60rpx; |
| | | } |
| | |
| | | import { shareContent, getProductInfo, actionDo } from '../../api/index' |
| | | import { |
| | | shareContent, |
| | | getProductInfo, |
| | | actionDo |
| | | } from '../../api/index' |
| | | Page({ |
| | | |
| | | /** |
| | |
| | | id: options.id |
| | | }) |
| | | const member = wx.getStorageSync('member') |
| | | this.setData({id: options.id, member}) |
| | | this.setData({ |
| | | id: options.id, |
| | | member |
| | | }) |
| | | }, |
| | | handleAction(e){ |
| | | handleAction(e) { |
| | | const actionType = e.currentTarget.dataset.code |
| | | const { info } = this.data |
| | | const { |
| | | info |
| | | } = this.data |
| | | actionDo({ |
| | | actionType, |
| | | id: this.data.info.id |
| | | }).then(res => { |
| | | info.isCollection = info.isCollection || info.isCollection == 'true' ? 'false' : 'true' |
| | | this.setData({info}) |
| | | info.collection = !info.collection |
| | | this.setData({ |
| | | info |
| | | }) |
| | | wx.showToast({ |
| | | title: actionType == 'collect' ? 'æ¶èæå' : 'åæ¶æ¶è', |
| | | }) |
| | | }) |
| | | }, |
| | | getDetail(id) { |
| | | getProductInfo({id}).then(res => { |
| | | this.setData({ info: res.data }) |
| | | getProductInfo({ |
| | | id |
| | | }).then(res => { |
| | | this.setData({ |
| | | info: res.data |
| | | }) |
| | | wx.setNavigationBarTitle({ |
| | | title: res.data.title |
| | | }) |
| | | }) |
| | | }) |
| | | }, |
| | | playVideo() { |
| | | wx.previewMedia({ |
| | | sources: [{ url: this.data.info.video, type: 'video' }] |
| | | sources: [{ |
| | | url: this.data.info.video, |
| | | type: 'video' |
| | | }] |
| | | }) |
| | | }, |
| | | bannerbindload(e) { |
| | | const { height, width } = e.detail |
| | | const { |
| | | height, |
| | | width |
| | | } = e.detail |
| | | let activeHeight = height * 670 / width |
| | | this.setData({ |
| | | bannerHeight: activeHeight |
| | |
| | | }) |
| | | }, |
| | | openShare() { |
| | | this.setData({showShare: true}) |
| | | this.setData({ |
| | | showShare: true |
| | | }) |
| | | }, |
| | | handleShare() { |
| | | console.log('ç¹å»äºå享'); |
| | | actionDo({ actionType: 'share', id: this.data.info.id }) |
| | | actionDo({ |
| | | actionType: 'share', |
| | | id: this.data.info.id |
| | | }) |
| | | // shareContent({id: this.data.info.id || this.data.id}).then(res => { |
| | | // this.setData({showShare: false}) |
| | | // }) |
| | |
| | | // } |
| | | // }, |
| | | onClose() { |
| | | this.setData({showShare: false}) |
| | | this.setData({ |
| | | showShare: false |
| | | }) |
| | | }, |
| | | handleDown() { |
| | | let { info } = this.data |
| | | let { |
| | | info |
| | | } = this.data |
| | | wx.showToast({ |
| | | title: 'ä¸è½½ä¸', |
| | | icon: 'loading' |
| | |
| | | console.log('info.picUrls', info) |
| | | wx.downloadFile({ |
| | | url: info.picUrls, |
| | | success (res) { |
| | | success(res) { |
| | | // console.log(res) |
| | | wx.saveImageToPhotosAlbum({ |
| | | filePath: res.tempFilePath, |
| | |
| | | } |
| | | }) |
| | | }, |
| | | fail (err) { |
| | | fail(err) { |
| | | console.log(err.errMsg) |
| | | wx.showToast({ |
| | | title: 'ä¸è½½å¤±è´¥', |
| | |
| | | <view class="footer" style="padding-bottom: {{bottomLift}}px;"> |
| | | <view class="btns"> |
| | | <button class="item btn"> |
| | | <image data-code="like_cancel" bindtap="handleAction" wx:if="{{ info.isCollection }}" class="icon" src="../../static/icon/detail_nav_collected.png" mode="widthFix"></image> |
| | | <image wx:else data-code="like" bindtap="handleAction" class="icon" src="../../static/icon/detail_nav_collect.png" mode="widthFix"></image> |
| | | <image data-code="collect_cancel" bindtap="handleAction" wx:if="{{ info.collection }}" class="icon" src="../../static/icon/detail_nav_collected.png" mode="widthFix"></image> |
| | | <image wx:else data-code="collect" bindtap="handleAction" class="icon" src="../../static/icon/detail_nav_collect.png" mode="widthFix"></image> |
| | | <view class="name">æ¶è</view> |
| | | </button> |
| | | <button open-type="share" class="item btn" bindtap="handleShare"> |
| | |
| | | import { shareContent } from '../../api/index' |
| | | import { getRealcaseInfo, actionDo } from '../../api/index' |
| | | Page({ |
| | | |
| | | /** |
| | |
| | | */ |
| | | data: { |
| | | bottomLift: 0, |
| | | id: '', |
| | | info: {}, |
| | | member: {}, |
| | | showShare: false |
| | | }, |
| | | |
| | |
| | | this.setData({ |
| | | bottomLift: app.bottomLift |
| | | }) |
| | | this.getDetail(options.id) |
| | | actionDo({ |
| | | actionType: 'view', |
| | | id: options.id |
| | | }) |
| | | const member = wx.getStorageSync('member') |
| | | this.setData({id: options.id, member}) |
| | | }, |
| | | handleAction(e){ |
| | | const actionType = e.currentTarget.dataset.code |
| | | const { info } = this.data |
| | | actionDo({ |
| | | actionType, |
| | | id: this.data.info.id |
| | | }).then(res => { |
| | | info.collection = !info.collection |
| | | wx.showToast({ |
| | | title: actionType == 'collect' ? 'æ¶èæå' : 'åæ¶æ¶è', |
| | | }) |
| | | this.setData({info}) |
| | | }) |
| | | }, |
| | | getDetail(id) { |
| | | getRealcaseInfo({id}).then(res => { |
| | | this.setData({ info: res.data }) |
| | | wx.setNavigationBarTitle({ |
| | | title: res.data.title |
| | | }) |
| | | }) |
| | | }, |
| | | playVideo() { |
| | | wx.previewMedia({ |
| | | sources: [{ url: this.data.info.video, type: 'video' }] |
| | | }) |
| | | }, |
| | | bannerbindload(e) { |
| | | const { height, width } = e.detail |
| | | let activeHeight = height * 670 / width |
| | | this.setData({ |
| | | bannerHeight: activeHeight |
| | | }) |
| | | }, |
| | | handleDesign() { |
| | | wx.navigateTo({ |
| | | url: '/pages/design/design', |
| | | }) |
| | | }, |
| | | openShare() { |
| | | this.setData({showShare: true}) |
| | | }, |
| | | handleShare() { |
| | | console.log('ç¹å»äºå享'); |
| | | shareContent(this.data.info.id) |
| | | actionDo({ actionType: 'share', id: this.data.info.id }) |
| | | // shareContent({id: this.data.info.id || this.data.id}).then(res => { |
| | | // this.setData({showShare: false}) |
| | | // }) |
| | | }, |
| | | // onShareAppMessage: function () { |
| | | // // let { productDetail, userInfo } = this.data |
| | |
| | | onClose() { |
| | | this.setData({showShare: false}) |
| | | }, |
| | | |
| | | /** |
| | | * çå½å¨æå½æ°--çå¬é¡µé¢éè |
| | | */ |
| | | handleDown() { |
| | | let { info } = this.data |
| | | wx.showToast({ |
| | | title: 'ä¸è½½ä¸', |
| | | icon: 'loading' |
| | | }) |
| | | console.log('info.picUrls', info) |
| | | wx.downloadFile({ |
| | | url: info.picUrls, |
| | | success (res) { |
| | | // console.log(res) |
| | | wx.saveImageToPhotosAlbum({ |
| | | filePath: res.tempFilePath, |
| | | success(data) { |
| | | that.toSaveCaseShare() |
| | | wx.showToast({ |
| | | title: 'ä¸è½½æå', |
| | | }) |
| | | }, |
| | | fail(error) { |
| | | console.log(error) |
| | | wx.showToast({ |
| | | title: 'ä¸è½½å¤±è´¥', |
| | | icon: 'error' |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | fail (err) { |
| | | console.log(err.errMsg) |
| | | wx.showToast({ |
| | | title: 'ä¸è½½å¤±è´¥', |
| | | icon: 'error' |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | onHide() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * çå½å¨æå½æ°--çå¬é¡µé¢å¸è½½ |
| | | */ |
| | | onUnload() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 页é¢ç¸å
³äºä»¶å¤ç彿°--çå¬ç¨æ·ä¸æå¨ä½ |
| | | */ |
| | | onPullDownRefresh() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 页é¢ä¸æè§¦åºäºä»¶çå¤ç彿° |
| | | */ |
| | | onReachBottom() { |
| | | |
| | | }, |
| | |
| | | .container { |
| | | padding: 0 40rpx 220rpx; |
| | | |
| | | .info_item{ |
| | | width: 100%; |
| | | } |
| | | .main_title { |
| | | font-weight: 500; |
| | | font-size: 44rpx; |
| | |
| | | <view class="container"> |
| | | <view class="main_title">ç®æ¬§é£æ ¼70m²两å±
室</view> |
| | | <view class="time">å叿¶é´ï¼2021-08-21 10:0</view> |
| | | <view class="list"> |
| | | <view class="main_title">{{ info.title }}</view> |
| | | <view class="time">å叿¶é´ï¼{{ info.publishDt }}</view> |
| | | <image class="info_item" wx:for="{{ info.contentImgList }}" src="{{ item }}" mode="widthFix"></image> |
| | | <view>{{ info.contentText || '' }}</view> |
| | | <!-- <view class="list"> |
| | | <view class="item"> |
| | | <image src="" mode="widthFix" /> |
| | | <view class="content">çæ¯äºæ´é½åä¸çç»çåæï¼éè²æ¡åç»é¨åæåæ¯ä¸ä¸æ ·ç审ç¾ï¼è¾¹æ¡å¾®æåå
¥ï¼å·¦å³å¯¹ç§°åå¸ï¼ç¯å
æ 衬ä¸ï¼ç¾å³ç»ä¸½å¤å§¿</view> |
| | | </view> |
| | | <view class="item"> |
| | | <image src="" mode="widthFix" /> |
| | | <view class="content">çæ¯äºæ´é½åä¸çç»çåæï¼éè²æ¡åç»é¨åæåæ¯ä¸ä¸æ ·ç审ç¾ï¼è¾¹æ¡å¾®æåå
¥ï¼å·¦å³å¯¹ç§°åå¸ï¼ç¯å
æ 衬ä¸ï¼ç¾å³ç»ä¸½å¤å§¿</view> |
| | | </view> |
| | | <view class="item"> |
| | | <image src="" mode="widthFix" /> |
| | | <view class="content">çæ¯äºæ´é½åä¸çç»çåæï¼éè²æ¡åç»é¨åæåæ¯ä¸ä¸æ ·ç审ç¾ï¼è¾¹æ¡å¾®æåå
¥ï¼å·¦å³å¯¹ç§°åå¸ï¼ç¯å
æ 衬ä¸ï¼ç¾å³ç»ä¸½å¤å§¿</view> |
| | | </view> |
| | | </view> |
| | | </view> --> |
| | | <!-- footer --> |
| | | <view class="footer" style="padding-bottom: {{bottomLift}}px;"> |
| | | <view class="btns"> |
| | | <view class="item"> |
| | | <image class="icon" src="../../static/icon/detail_nav_collected.png" mode="widthFix"></image> |
| | | <button class="item btn"> |
| | | <image data-code="collect_cancel" bindtap="handleAction" wx:if="{{ info.collection }}" class="icon" src="../../static/icon/detail_nav_collected.png" mode="widthFix"></image> |
| | | <image wx:else data-code="collect" bindtap="handleAction" class="icon" src="../../static/icon/detail_nav_collect.png" mode="widthFix"></image> |
| | | <view class="name">æ¶è</view> |
| | | </view> |
| | | <view class="item" bindtap="openShare"> |
| | | </button> |
| | | <button open-type="share" class="item btn" bindtap="handleShare"> |
| | | <image class="icon" src="../../static/icon/detail_nav_share.png" mode="widthFix"></image> |
| | | <view class="name">å享</view> |
| | | </view> |
| | | <view class="sub_btn"> |
| | | </button> |
| | | <view class="sub_btn" bindtap="handleDesign"> |
| | | <image class="sheji" src="../../static/icon/ic_sheji.png" mode="widthFix"></image> |
| | | <view>å
è´¹é¢çº¦ä¸å±è®¾è®¡</view> |
| | | </view> |
| | |
| | | .container { |
| | | padding: 0 40rpx 220rpx; |
| | | } |
| | | .container .info_item { |
| | | width: 100%; |
| | | } |
| | | .container .main_title { |
| | | font-weight: 500; |
| | | font-size: 44rpx; |
| | |
| | | */ |
| | | data: { |
| | | menuButtonInfo: {}, |
| | | catalogCode: "whole_case" |
| | | catalogCode: "product_intro", |
| | | activeCate: '', |
| | | |
| | | height: 0, |
| | | top: 0, |
| | | }, |
| | | onLoad(options) { |
| | | let menuButtonInfo = wx.getMenuButtonBoundingClientRect(); |
| | |
| | | .main_tab{ |
| | | position: relative; |
| | | display: flex; |
| | | align-items: flex-end; |
| | | height: 88rpx; |
| | | align-items: center; |
| | | padding: 0 40rpx; |
| | | // border: 1px solid red; |
| | | .item{ |
| | | width: 76rpx; |
| | | font-size: 32rpx; |
| | |
| | | } |
| | | } |
| | | } |
| | | .container{ |
| | | .home_tab{ |
| | | position: fixed; |
| | | z-index: 999; |
| | | width: 100%; |
| | | background-color: #fff; |
| | | } |
| | | .main_content{ |
| | | } |
| | | |
| | | // .main_content{ |
| | | // padding-top: 200rpx; |
| | | // } |
| | |
| | | <view class="container"> |
| | | <view style="height: {{ menuButtonInfo.top }}px;"></view> |
| | | <view class="main_tab"> |
| | | <view class="item {{ catalogCode == 'product_intro' ? 'active' : '' }}" data-code="product_intro" bindtap="tabsClick"> |
| | | <view class="name">产å</view> |
| | | <view class="border"></view> |
| | | </view> |
| | | <view class="item {{ catalogCode == 'whole_case' ? 'active' : '' }}" data-code="whole_case" bindtap="tabsClick"> |
| | | <view class="name">æ¡ä¾</view> |
| | | <view class="border"></view> |
| | | </view> |
| | | <view class="item {{ catalogCode == 'real_case' ? 'active' : '' }}" data-code="real_case" bindtap="tabsClick"> |
| | | <view class="name">宿¯</view> |
| | | <view class="border"></view> |
| | | <view class="home_tab"> |
| | | <view style="height: {{ menuButtonInfo.top - 6 }}px;"></view> |
| | | <view class="main_tab" style="height: {{ menuButtonInfo.height + 12 }}px;"> |
| | | <view class="item {{ catalogCode == 'product_intro' ? 'active' : '' }}" data-code="product_intro" bindtap="tabsClick"> |
| | | <view class="name">产å</view> |
| | | <view class="border"></view> |
| | | </view> |
| | | <view class="item {{ catalogCode == 'whole_case' ? 'active' : '' }}" data-code="whole_case" bindtap="tabsClick"> |
| | | <view class="name">æ¡ä¾</view> |
| | | <view class="border"></view> |
| | | </view> |
| | | <view class="item {{ catalogCode == 'real_case' ? 'active' : '' }}" data-code="real_case" bindtap="tabsClick"> |
| | | <view class="name">宿¯</view> |
| | | <view class="border"></view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <!-- --> |
| | | <view class="main_content" style="height: calc( 100vh - {{menuButtonInfo.top}}px - 88rpx )"> |
| | | <disProduct wx:if="{{ catalogCode == 'product_intro' }}" /> |
| | | <disCase wx:if="{{ catalogCode == 'whole_case' }}" /> |
| | | <disRealpic wx:if="{{ catalogCode == 'real_case' }}" /> |
| | | <view class="main_content" style="height: 100vh"> |
| | | <disProduct menuButtonInfo="{{ menuButtonInfo }}" wx:if="{{ catalogCode == 'product_intro' }}" /> |
| | | <disCase menuButtonInfo="{{ menuButtonInfo }}" wx:if="{{ catalogCode == 'whole_case' }}" /> |
| | | <disRealpic menuButtonInfo="{{ menuButtonInfo }}" wx:if="{{ catalogCode == 'real_case' }}" /> |
| | | </view> |
| | | </view> |
| | |
| | | .main_tab { |
| | | position: relative; |
| | | display: flex; |
| | | align-items: flex-end; |
| | | height: 88rpx; |
| | | align-items: center; |
| | | padding: 0 40rpx; |
| | | } |
| | | .main_tab .item { |
| | |
| | | .main_tab .active .border { |
| | | background: linear-gradient(270deg, rgba(255, 255, 255, 0.56) 0%, rgba(206, 144, 111, 0.88) 100%); |
| | | } |
| | | .home_tab { |
| | | position: fixed; |
| | | z-index: 999; |
| | | width: 100%; |
| | | background-color: #fff; |
| | | } |
| | |
| | | import { getCataLogTagList, pageZSZXContentList } from '../../api/index' |
| | | import { getCataLogTagList, pageZSZXContentList, actionDo } from '../../api/index' |
| | | Page({ |
| | | |
| | | /** |
| | |
| | | tagList: [], |
| | | activeCate: '', |
| | | dataList: [], |
| | | total: 0, |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | |
| | |
| | | this.getTabList() |
| | | this.getList() |
| | | }, |
| | | itemClick(e) { |
| | | const { id } = e.target.dataset |
| | | console.log(e.target.dataset); |
| | | wx.navigateTo({ |
| | | url: '/pages/consult/detail', |
| | | onReachBottom() { |
| | | console.log('触åºäºä»¶'); |
| | | const { total, dataList, pageNum } = this.data |
| | | if(total > dataList.length){ |
| | | this.setData({ pageNum: pageNum + 1 }) |
| | | this.getList() |
| | | }else{ |
| | | wx.showToast({ |
| | | title: 'ææ æ´å¤æ°æ®', |
| | | icon: 'none' |
| | | }) |
| | | } |
| | | }, |
| | | getList(){ |
| | | const { code, tagCodes, pageSize, pageNum } = this.data |
| | | pageZSZXContentList({ |
| | | catalogCode: code, |
| | | tagCodes: tagCodes ? [tagCodes] : [], |
| | | pageSize, |
| | | pageNum |
| | | }).then(res => { |
| | | this.setData({ |
| | | total: res.data.total, |
| | | dataList: [ ...this.data.dataList, ...res.data.records ] |
| | | }) |
| | | }) |
| | | }, |
| | | itemClick(e) { |
| | | const item = e.currentTarget.dataset.item |
| | | console.log('item', item); |
| | | actionDo({actionType: 'view',id: item.id}) |
| | | if(item.contentType == 'video'){ |
| | | wx.previewMedia({ |
| | | sources: [{ url: item.content, type: 'video' }] |
| | | }) |
| | | } |
| | | if(item.contentType == 'link'){ |
| | | wx.navigateTo({ |
| | | url: '/pages/webView/index?link=' + item.content, |
| | | }) |
| | | } |
| | | if(item.contentType == 'page'){ |
| | | getApp().globalData.catalogCode=item.content |
| | | wx.switchTab({ |
| | | url: '/pages/discover/discover' |
| | | }) |
| | | } |
| | | }, |
| | | cateClick(e) { |
| | | const { code } = e.target.dataset |
| | |
| | | } |
| | | |
| | | }) |
| | | }, |
| | | getList(){ |
| | | const { code, tagCodes, pageSize, pageNum } = this.data |
| | | pageZSZXContentList({ |
| | | catalogCode: code, |
| | | tagCodes, |
| | | pageSize, |
| | | pageNum |
| | | }).then(res => { |
| | | this.setData({ |
| | | dataList: [ ...this.data.dataList, ...res.data.records ] |
| | | }) |
| | | }) |
| | | }, |
| | | onReachBottom() { |
| | | |
| | | }, |
| | | onReady() { |
| | | |
| | |
| | | /** |
| | | * 页é¢ä¸æè§¦åºäºä»¶çå¤ç彿° |
| | | */ |
| | | onReachBottom() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * ç¨æ·ç¹å»å³ä¸è§å享 |
| | |
| | | .container { |
| | | background-color: #fff; |
| | | } |
| | | .home_tabs{ |
| | | height: 80rpx; |
| | | position: fixed; |
| | | background-color: #fff; |
| | | } |
| | | .search_wrap{ |
| | | width: 670rpx; |
| | | height: 72rpx; |
| | |
| | | } |
| | | } |
| | | .content{ |
| | | padding: 0 40rpx 40rpx; |
| | | padding: 80rpx 40rpx 40rpx; |
| | | .item{ |
| | | margin-bottom: 60rpx; |
| | | .img{ |
| | |
| | | <view class="container"> |
| | | |
| | | <!-- åç±» --> |
| | | <view> |
| | | <view class="home_tabs"> |
| | | <scroll-view scroll-x="true" style="weight: 710rpx;margin-bottom: 30rpx;"> |
| | | <view class="scroll_cate"> |
| | | <view bindtap="cateClick" data-code="{{item.labelValueCode}}" wx:for="{{ tagList }}" class="item {{ tagCodes == item.labelValueCode ? 'active': '' }}">{{ item.labelValueName }}</view> |
| | |
| | | </view> |
| | | <!-- content --> |
| | | <view class="content"> |
| | | <view wx:for="{{ dataList }}" class="item" bindtap="itemClick" data-abg="qwe"> |
| | | <view wx:for="{{ dataList }}" class="item" bindtap="itemClick" data-item="{{item}}"> |
| | | <image class="img" src="{{ item.coverImage }}" mode="widthFix"></image> |
| | | <view class="title">{{ item.title }}</view> |
| | | <view class="df_sb static"> |
| | |
| | | .container { |
| | | background-color: #fff; |
| | | } |
| | | .home_tabs { |
| | | height: 80rpx; |
| | | position: fixed; |
| | | background-color: #fff; |
| | | } |
| | | .search_wrap { |
| | | width: 670rpx; |
| | | height: 72rpx; |
| | |
| | | font-weight: 400; |
| | | } |
| | | .content { |
| | | padding: 0 40rpx 40rpx; |
| | | padding: 80rpx 40rpx 40rpx; |
| | | } |
| | | .content .item { |
| | | margin-bottom: 60rpx; |
| | |
| | | getZSZXCatalogs, |
| | | getCustomizedNewsList, |
| | | getHomeBanner, |
| | | getHomeBannerDetail, |
| | | actionDo, |
| | | getZhongTaiVideoPage, |
| | | getZhongTaiProductNewsPage |
| | | } from '../../api/index' |
| | |
| | | }, |
| | | changePath(e) { |
| | | let index = e.currentTarget.dataset.type |
| | | let that = this |
| | | switch (index) { |
| | | case '0': |
| | | wx.navigateTo({ |
| | | url: '/pages/webView/index', |
| | | success: function (res) { |
| | | // éè¿eventChannelå被æå¼é¡µé¢ä¼ éæ°æ® |
| | | res.eventChannel.emit('acceptDataFromOpenerPage', { link: this.data.testUrl }) |
| | | // saveBehavior({ type: 1 }) |
| | | res.eventChannel.emit('acceptDataFromOpenerPage', { link: that.data.testUrl }) |
| | | } |
| | | }) |
| | | break; |
| | |
| | | // èµè®¯ |
| | | getZhongTaiProductNewsPage({ |
| | | catalogCode: 'product_info', |
| | | pageSize: 5, pageNum: 1 |
| | | pageSize: 6, pageNum: 1 |
| | | }).then(res => { |
| | | if(res.data){ |
| | | this.setData({ consultList: res.data.records }) |
| | |
| | | }, |
| | | bannerClick(e) { |
| | | const { id } = e.currentTarget.dataset |
| | | getHomeBannerDetail({id}) |
| | | const item = e.currentTarget.dataset.item |
| | | console.log('item', item); |
| | | actionDo({actionType: 'view',id: item.id}) |
| | | if(item.openType == 'video'){ |
| | | wx.previewMedia({ |
| | | sources: [{ url: item.openContent, type: 'video' }] |
| | | }) |
| | | } |
| | | if(item.openType == 'link'){ |
| | | wx.navigateTo({ |
| | | url: '/pages/webView/index?link=' + item.openContent, |
| | | }) |
| | | } |
| | | if(item.openType == 'page'){ |
| | | getApp().globalData.catalogCode=item.openContent |
| | | wx.switchTab({ |
| | | url: '/pages/discover/discover' |
| | | }) |
| | | } |
| | | // getHomeBannerDetail({id}) |
| | | }, |
| | | seriveClick(e) { |
| | | const { id, title } = e.currentTarget.dataset |
| | |
| | | |
| | | // 产åè§é¢ |
| | | .product_video { |
| | | padding: 72rpx 40rpx; |
| | | padding: 40rpx 40rpx; |
| | | background-color: #fff; |
| | | |
| | | .video_wrap { |
| | |
| | | } |
| | | |
| | | .strategy { |
| | | padding: 80rpx 40rpx; |
| | | padding: 40rpx 40rpx; |
| | | background: #F7F7F7; |
| | | |
| | | .item { |
| | |
| | | |
| | | // å¨è¯¢ |
| | | .consult { |
| | | padding: 80rpx 40rpx 60rpx; |
| | | padding: 40rpx 40rpx 60rpx; |
| | | background: #fff; |
| | | } |
| | | |
| | |
| | | |
| | | .left { |
| | | font-weight: 600; |
| | | font-size: 36rpx; |
| | | font-size: 34rpx; |
| | | color: #111111; |
| | | line-height: 50rpx; |
| | | line-height: 34rpx; |
| | | flex: 1; |
| | | |
| | | .name { |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | margin-bottom: 10rpx; |
| | | .icon { |
| | | width: 36rpx; |
| | | height: 36rpx; |
| | |
| | | |
| | | } |
| | | } |
| | | .auth{ |
| | | background-color: #fff; |
| | | } |
| | | .home_title{ |
| | | font-weight: 600; |
| | | font-size: 38rpx; |
| | | } |
| | | |
| | | .top-head-transparent { |
| | | background-color: transparent !important; |
| | |
| | | <view class="container"> |
| | | <van-nav-bar wx:if="{{ showWhiteHead }}" border="{{ topHeadBorder }}" custom-class="top-head" fixed custom-style="opacity: {{ topHeadStyle }}"> |
| | | <view slot="left" class="flex-cc search"> |
| | | <text style="color: {{font_color}};">å¿é¦å®¶é</text> |
| | | <text class="home_title" style="color: {{font_color}};">å¿é¦å®¶é</text> |
| | | <van-icon name="search" size="23px" color="#fff" /> |
| | | <!-- <image src="/static/icon/home_ic_search_black.png" mode="widthFix"></image> --> |
| | | <!-- <text>æç´¢</text> --> |
| | |
| | | </van-nav-bar> |
| | | <van-nav-bar wx:else border="{{ topHeadBorder }}" custom-class="top-head-transparent" fixed> |
| | | <view slot="left" class="flex-cc search"> |
| | | <text style="color: {{font_color}};">å¿é¦å®¶é</text> |
| | | <text class="home_title" style="color: {{font_color}};">å¿é¦å®¶é</text> |
| | | </view> |
| | | </van-nav-bar> |
| | | <!-- bannerè½®æ --> |
| | | <swiper class="banner_swiper" circular indicator-dots="{{ bannerSwiperOption.indicatorDots }}" autoplay="{{ bannerSwiperOption.autoplay }}" interval="{{ bannerSwiperOption.interval }}" style="height:{{bannerImgHeight}}rpx" duration="{{ bannerSwiperOption.duration }}"> |
| | | <block wx:for="{{ bannerList }}" wx:key="index"> |
| | | <swiper-item> |
| | | <image data-id="{{ item.id }}" bindtap="bannerClick" bindload="bannerbindload" mode="widthFix" src="{{ item.coverImage }}"></image> |
| | | <image data-item="{{ item }}" data-id="{{ item.id }}" bindtap="bannerClick" bindload="bannerbindload" mode="widthFix" src="{{ item.coverImage }}"></image> |
| | | </swiper-item> |
| | | </block> |
| | | </swiper> |
| | |
| | | </view> |
| | | </view> |
| | | <!-- --> |
| | | <authCard type="{{ member.authStatus }}" /> |
| | | <view class="auth"> |
| | | <authCard type="{{ member.authStatus }}" /> |
| | | </view> |
| | | <!-- <authCard type="1" /> --> |
| | | <!-- 产åè§é¢ --> |
| | | <view class="product_video"> |
| | |
| | | </view> |
| | | </view> |
| | | <view class="line"> |
| | | <view class="line_left item" data-item="{{ ZSZXCata.jdId }}" bindtap="changeStrategy"> |
| | | <view class="line_left item" data-item="{{ ZSZXCata.qwsj }}" bindtap="changeStrategy"> |
| | | <image src="{{HOME_CLASS_A}}"></image> |
| | | <text>{{ ZSZXCata.jdId.name }}</text> |
| | | <text>{{ ZSZXCata.qwsj.name }}</text> |
| | | </view> |
| | | <view class="line_right"> |
| | | <view class="item" data-item="{{ ZSZXCata.cfsj }}" bindtap="changeStrategy"> |
| | |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view data-item="{{ ZSZXCata.qwsj.code }}" bindtap="changeStrategy" class="home_id item"> |
| | | <view data-item="{{ ZSZXCata.jdId }}" bindtap="changeStrategy" class="home_id item"> |
| | | <image src="{{HOME_CLASS_C}}"></image> |
| | | <text>{{ ZSZXCata.qwsj.name }}</text> |
| | | <text>{{ ZSZXCata.jdId.name }}</text> |
| | | </view> |
| | | </view> |
| | | <!-- å¨è¯¢ --> |
| | |
| | | <block wx:for="{{ consultList }}" wx:key="index"> |
| | | <swiper-item> |
| | | <image bindload="consultbindload" mode="widthFix" src="{{ item.coverImage }}"></image> |
| | | |
| | | </swiper-item> |
| | | </block> |
| | | </swiper> |
| | |
| | | color: #666666; |
| | | } |
| | | .container .product_video { |
| | | padding: 72rpx 40rpx; |
| | | padding: 40rpx 40rpx; |
| | | background-color: #fff; |
| | | } |
| | | .container .product_video .video_wrap { |
| | |
| | | width: 100%; |
| | | } |
| | | .container .strategy { |
| | | padding: 80rpx 40rpx; |
| | | padding: 40rpx 40rpx; |
| | | background: #F7F7F7; |
| | | } |
| | | .container .strategy .item { |
| | |
| | | margin-top: 24rpx; |
| | | } |
| | | .container .consult { |
| | | padding: 80rpx 40rpx 60rpx; |
| | | padding: 40rpx 40rpx 60rpx; |
| | | background: #fff; |
| | | } |
| | | .container .service { |
| | |
| | | } |
| | | .container .com_header .left { |
| | | font-weight: 600; |
| | | font-size: 36rpx; |
| | | font-size: 34rpx; |
| | | color: #111111; |
| | | line-height: 50rpx; |
| | | line-height: 34rpx; |
| | | flex: 1; |
| | | } |
| | | .container .com_header .left .name { |
| | | display: flex; |
| | | align-items: center; |
| | | margin-bottom: 10rpx; |
| | | } |
| | | .container .com_header .left .name .icon { |
| | | width: 36rpx; |
| | |
| | | width: 44rpx; |
| | | height: 44rpx; |
| | | } |
| | | .auth { |
| | | background-color: #fff; |
| | | } |
| | | .home_title { |
| | | font-weight: 600; |
| | | font-size: 38rpx; |
| | | } |
| | | .top-head-transparent { |
| | | background-color: transparent !important; |
| | | } |
| | |
| | | const res = wx.getMenuButtonBoundingClientRect() |
| | | this.setData({clientHeight: res.height}) |
| | | this.setData({clientTop: res.top}) |
| | | |
| | | }, |
| | | onShow(){ |
| | | this.initData() |
| | | }, |
| | | initData() { |
| | |
| | | * çå½å¨æå½æ°--çå¬é¡µé¢å次渲æå®æ |
| | | */ |
| | | onReady() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * çå½å¨æå½æ°--çå¬é¡µé¢æ¾ç¤º |
| | | */ |
| | | onShow() { |
| | | |
| | | }, |
| | | |
| | |
| | | } |
| | | .main_content{ |
| | | background-color: #fff; |
| | | position: relative; |
| | | z-index: 9999; |
| | | border-radius: 16rpx 16rpx 0rpx 0rpx; |
| | | padding: 40rpx; |
| | | .func_list{ |
| | |
| | | <view class="navbar" style="padding-top: {{ clientTop }}px;height: {{clientHeight + clientTop}}px;">æçå®¶</view> |
| | | <image class="mine_bg" src="{{ MINE_BG }}" mode="widthFix"></image> |
| | | <view class="userinfo"> |
| | | <image class="avatar" src="{{ imgurlFull ? imgurlFull : '../../static/images/default_avatar.png' }}"></image> |
| | | <image class="avatar" src="{{ member.imgurl ? member.prefix + member.imgurl : '../../static/images/default_avatar.png' }}"></image> |
| | | <view class="content"> |
| | | <view class="header"> |
| | | <view class="name">{{ member.nickname }}</view> |
| | |
| | | } |
| | | .container .main_content { |
| | | background-color: #fff; |
| | | position: relative; |
| | | z-index: 9999; |
| | | border-radius: 16rpx 16rpx 0rpx 0rpx; |
| | | padding: 40rpx; |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | import { getProductNewsInfo } from '../../api/index' |
| | | Page({ |
| | | |
| | | /** |
| | | * 页é¢çåå§æ°æ® |
| | | */ |
| | | data: { |
| | | info: {} |
| | | }, |
| | | |
| | | /** |
| | | * çå½å¨æå½æ°--çå¬é¡µé¢å è½½ |
| | | */ |
| | | onLoad(options) { |
| | | this.getDetail(options.id) |
| | | }, |
| | | getDetail(id) { |
| | | getProductNewsInfo({id}).then(res => { |
| | | this.setData({ info: res.data }) |
| | | }) |
| | | }, |
| | | onReady() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * çå½å¨æå½æ°--çå¬é¡µé¢æ¾ç¤º |
| | | */ |
| | | onShow() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * çå½å¨æå½æ°--çå¬é¡µé¢éè |
| | | */ |
| | | onHide() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * çå½å¨æå½æ°--çå¬é¡µé¢å¸è½½ |
| | | */ |
| | | onUnload() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 页é¢ç¸å
³äºä»¶å¤ç彿°--çå¬ç¨æ·ä¸æå¨ä½ |
| | | */ |
| | | onPullDownRefresh() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 页é¢ä¸æè§¦åºäºä»¶çå¤ç彿° |
| | | */ |
| | | onReachBottom() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * ç¨æ·ç¹å»å³ä¸è§å享 |
| | | */ |
| | | onShareAppMessage() { |
| | | |
| | | } |
| | | }) |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | { |
| | | "usingComponents": {}, |
| | | "mp-html": "mp-html" |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <view> |
| | | <mp-html content="{{info.content}}"></mp-html> |
| | | </view> |
| | |
| | | <view class="title">é¨åºå¯¼è´</view> |
| | | <view class="list"> |
| | | <view class="item" data-id="{{ item.iamId }}" bindtap="handleDetail" wx:for="{{ info.usersList }}"> |
| | | <image src="{{ item.imgurlFull }}" class="avatar"></image> |
| | | <image src="{{ item.imgurlFull ? item.imgurlFull : '../../static/images/default_avatar.png' }}" class="avatar"></image> |
| | | <view class="content"> |
| | | <view class="name">{{ item.name }}</view> |
| | | <view class="desc">导è´ï½{{ info.jobDate || '-'}}å¹´ç»éª</view> |
| | |
| | | */ |
| | | data: { |
| | | bottomLift: 0, |
| | | isShow: false, |
| | | isShow: true, |
| | | |
| | | info: {} |
| | | }, |
| | |
| | | <!-- <navBar></navBar> --> |
| | | <image src="../../static/images/design_banner@2x.png" mode="widthFix" class="bg_wrap"></image> |
| | | <view class="container"> |
| | | <image class="avatar" src="{{ info.imgurlFull }}"></image> |
| | | <image class="avatar" src="{{ info.imgurlFull ? info.imgurlFull : '../../static/images/default_avatar.png' }}"></image> |
| | | <view class="name_wrap"> |
| | | <view class="left"> |
| | | <view class="name">{{ info.name }}</view> |
| | |
| | | url: `/pages/store/info?id=${id}`, |
| | | }) |
| | | }, |
| | | userDetail(e) { |
| | | const iamId = e.currentTarget.dataset.id |
| | | wx.navigateTo({ |
| | | url: `/pages/store/staff?id=${iamId}`, |
| | | }) |
| | | }, |
| | | makePhone(e) { |
| | | console.log('e', e); |
| | | const phoneNumber = e.currentTarget.dataset.phone |
| | |
| | | .left{ |
| | | flex: 1; |
| | | .title{ |
| | | width: 520rpx; |
| | | font-weight: 500; |
| | | font-size: 32rpx; |
| | | width: 100%; |
| | | white-space: nowrap; |
| | | overflow: hidden; |
| | | overflow: hidden;//ææ¬è¶
åºéè |
| | | text-overflow: ellipsis; |
| | | margin-bottom: 16rpx; |
| | | } |
| | | .address{ |
| | | width: 520rpx; |
| | | display: flex; |
| | | align-items: center; |
| | | white-space: nowrap; |
| | | overflow: hidden; |
| | | overflow: hidden;//ææ¬è¶
åºéè |
| | | text-overflow: ellipsis; |
| | | font-size: 26rpx; |
| | | color: #888888; |
| | |
| | | font-size: 24rpx; |
| | | color: #333333; |
| | | text-align: center; |
| | | margin-left: 80rpx; |
| | | margin-left: 20rpx; |
| | | .phone{ |
| | | width: 60rpx; |
| | | margin-bottom: 4rpx; |
| | |
| | | </view> |
| | | <scroll-view scroll-x style="width: 640rpx"> |
| | | <view class="user_list"> |
| | | <view class="item" wx:for="{{ item.usersList }}" wx:for-item="user"> |
| | | <view bindtap="userDetail" data-id="{{ item.iamId }}" class="item" wx:for="{{ item.usersList }}" wx:for-item="user"> |
| | | <view class="info"> |
| | | <image class="avatar" src="{{ user.imgurlFull }}" mode="widthFix"></image> |
| | | <view class="text"> |
| | |
| | | flex: 1; |
| | | } |
| | | .main_content .shops .shop .header .left .title { |
| | | width: 520rpx; |
| | | font-weight: 500; |
| | | font-size: 32rpx; |
| | | width: 100%; |
| | | white-space: nowrap; |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | margin-bottom: 16rpx; |
| | | } |
| | | .main_content .shops .shop .header .left .address { |
| | | width: 520rpx; |
| | | display: flex; |
| | | align-items: center; |
| | | white-space: nowrap; |
| | |
| | | font-size: 24rpx; |
| | | color: #333333; |
| | | text-align: center; |
| | | margin-left: 80rpx; |
| | | margin-left: 20rpx; |
| | | } |
| | | .main_content .shops .shop .header .right .phone { |
| | | width: 60rpx; |
| | |
| | | // pages/userinfo/collect.js |
| | | import { |
| | | collectLikePage |
| | | } from '../../api/index' |
| | | Page({ |
| | | |
| | | /** |
| | | * 页é¢çåå§æ°æ® |
| | | */ |
| | | data: { |
| | | activeTabs: '0' |
| | | }, |
| | | activeTabs: 'product_intro', |
| | | |
| | | tabsChange(e) { |
| | | const activeTabs = e.currentTarget.dataset.val |
| | | this.setData({ activeTabs }) |
| | | }, |
| | | handleDetail(e) { |
| | | wx.navigateTo({ |
| | | url: '/pages/detailDis/product', |
| | | }) |
| | | dataList: [], |
| | | total: 0, |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | }, |
| | | onLoad(options) { |
| | | |
| | | this.getList() |
| | | }, |
| | | onReachBottom() { |
| | | console.log('触åºäºä»¶'); |
| | | const { total, dataList, pageNum } = this.data |
| | | if(total > dataList.length){ |
| | | this.setData({ pageNum: pageNum + 1 }) |
| | | this.getList() |
| | | }else{ |
| | | wx.showToast({ |
| | | title: 'ææ æ´å¤æ°æ®', |
| | | icon: 'none' |
| | | }) |
| | | } |
| | | }, |
| | | tabsChange(e) { |
| | | const activeTabs = e.currentTarget.dataset.val |
| | | this.setData({ |
| | | activeTabs, |
| | | dataList: [],total: 0,pageNum: 1 |
| | | }) |
| | | this.getList() |
| | | }, |
| | | handleDetail(e) { |
| | | const id = e.currentTarget.dataset.id |
| | | const { activeTabs } = this.data |
| | | let url = '' |
| | | if(activeTabs == 'product_intro'){ |
| | | url = '/pages/detailDis/product' |
| | | }else if(activeTabs == 'whole_case'){ |
| | | url = '/pages/detailDis/case' |
| | | }else{ |
| | | url = '/pages/detailDis/realpic' |
| | | } |
| | | wx.navigateTo({ |
| | | url: `${url}?id=${id}`, |
| | | }) |
| | | }, |
| | | getList() { |
| | | const { |
| | | pageSize, |
| | | pageNum, |
| | | activeTabs |
| | | } = this.data |
| | | collectLikePage({ |
| | | businessCategory: 'collect', |
| | | businessType: activeTabs, |
| | | pageSize, |
| | | pageNum |
| | | }).then(res => { |
| | | if (res.data) { |
| | | this.setData({ |
| | | dataList: [...this.data.dataList, ...res.data.records || []], |
| | | total: res.data.total |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | /** |
| | |
| | | /** |
| | | * 页é¢ä¸æè§¦åºäºä»¶çå¤ç彿° |
| | | */ |
| | | onReachBottom() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * ç¨æ·ç¹å»å³ä¸è§å享 |
| | |
| | | <view class="container"> |
| | | <view class="tabs"> |
| | | <view class="item {{ activeTabs == '0' ? 'active' : '' }}" data-val="0" bindtap="tabsChange"> |
| | | <view class="item {{ activeTabs == 'product_intro' ? 'active' : '' }}" data-val="product_intro" bindtap="tabsChange"> |
| | | <view class="name">产å</view> |
| | | <view class="border"></view> |
| | | </view> |
| | | <view class="item {{ activeTabs == '1' ? 'active' : '' }}" data-val="1" bindtap="tabsChange"> |
| | | <view class="item {{ activeTabs == 'whole_case' ? 'active' : '' }}" data-val="whole_case" bindtap="tabsChange"> |
| | | <view class="name">æ¡ä¾</view> |
| | | <view class="border"></view> |
| | | </view> |
| | | <view class="item {{ activeTabs == '2' ? 'active' : '' }}" data-val="2" bindtap="tabsChange"> |
| | | <view class="item {{ activeTabs == 'real_case' ? 'active' : '' }}" data-val="real_case" bindtap="tabsChange"> |
| | | <view class="name">宿¯</view> |
| | | <view class="border"></view> |
| | | </view> |
| | | </view> |
| | | <view class="list"> |
| | | <view class="item" bindtap="handleDetail"> |
| | | <view data-id="{{ item.id }}" wx:for="{{ dataList }}" class="item" bindtap="handleDetail"> |
| | | <view class="img_wrap"> |
| | | <image src="../../static/icon/test.png" class="img"></image> |
| | | <image wx:if="{{ true }}" class="new" src="../../static/icon/chanpin_ic_new@2x.png" mode="widthFix"></image> |
| | | <image src="{{ item.thumbnailUrl }}" class="img"></image> |
| | | <image wx:if="{{ false }}" class="new" src="../../static/icon/chanpin_ic_new@2x.png" mode="widthFix"></image> |
| | | </view> |
| | | <view class="name">é¢ç´æ²</view> |
| | | <view class="name">{{ item.displayName }}</view> |
| | | <view class="info"> |
| | | <image wx:if="{{ false }}" class="icon" src="../../static/icon/detail_nav_collect.png" mode="widthFix"></image> |
| | | <image wx:else="" class="icon" src="../../static/icon/detail_nav_collected.png" mode="widthFix"></image> |
| | | <text class="num {{true ? 'primary' : ''}}">34</text> |
| | | <image wx:else class="icon" src="../../static/icon/detail_nav_collected.png" mode="widthFix"></image> |
| | | <text class="num {{true ? 'primary' : ''}}">{{ item.collectCount }}</text> |
| | | <image class="icon" src="../../static/icon/zixun_ic_liulan.png" mode="widthFix"></image> |
| | | <text>1000</text> |
| | | </view> |
| | | </view> |
| | | <view class="item" bindtap="handleDetail"> |
| | | <view class="img_wrap"> |
| | | <image src="../../static/icon/test.png" class="img"></image> |
| | | <image wx:if="{{ true }}" class="new" src="../../static/icon/chanpin_ic_new@2x.png" mode="widthFix"></image> |
| | | </view> |
| | | <view class="name">é¢ç´æ²</view> |
| | | <view class="info"> |
| | | <image wx:if="{{ false }}" class="icon" src="../../static/icon/detail_nav_collect.png" mode="widthFix"></image> |
| | | <image wx:else="" class="icon" src="../../static/icon/detail_nav_collected.png" mode="widthFix"></image> |
| | | <text class="num {{true ? 'primary' : ''}}">34</text> |
| | | <image class="icon" src="../../static/icon/zixun_ic_liulan.png" mode="widthFix"></image> |
| | | <text>1000</text> |
| | | </view> |
| | | </view> |
| | | <view class="item" bindtap="handleDetail"> |
| | | <view class="img_wrap"> |
| | | <image src="../../static/icon/test.png" class="img"></image> |
| | | <image wx:if="{{ true }}" class="new" src="../../static/icon/chanpin_ic_new@2x.png" mode="widthFix"></image> |
| | | </view> |
| | | <view class="name">é¢ç´æ²</view> |
| | | <view class="info"> |
| | | <image wx:if="{{ false }}" class="icon" src="../../static/icon/detail_nav_collect.png" mode="widthFix"></image> |
| | | <image wx:else="" class="icon" src="../../static/icon/detail_nav_collected.png" mode="widthFix"></image> |
| | | <text class="num {{true ? 'primary' : ''}}">34</text> |
| | | <image class="icon" src="../../static/icon/zixun_ic_liulan.png" mode="widthFix"></image> |
| | | <text>1000</text> |
| | | <text>{{ item.viewCount }}</text> |
| | | </view> |
| | | </view> |
| | | </view> |
| | |
| | | // pages/userinfo/collect.js |
| | | import { |
| | | collectLikePage |
| | | } from '../../api/index' |
| | | Page({ |
| | | |
| | | /** |
| | | * 页é¢çåå§æ°æ® |
| | | */ |
| | | data: { |
| | | activeTabs: '0' |
| | | }, |
| | | activeTabs: 'product_intro', |
| | | |
| | | tabsChange(e) { |
| | | const activeTabs = e.currentTarget.dataset.val |
| | | this.setData({ activeTabs }) |
| | | }, |
| | | handleDetail(e) { |
| | | wx.navigateTo({ |
| | | url: '/pages/detailDis/product', |
| | | }) |
| | | dataList: [], |
| | | total: 0, |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | }, |
| | | onLoad(options) { |
| | | |
| | | this.getList() |
| | | }, |
| | | onReachBottom() { |
| | | console.log('触åºäºä»¶'); |
| | | const { total, dataList, pageNum } = this.data |
| | | if(total > dataList.length){ |
| | | this.setData({ pageNum: pageNum + 1 }) |
| | | this.getList() |
| | | }else{ |
| | | wx.showToast({ |
| | | title: 'ææ æ´å¤æ°æ®', |
| | | icon: 'none' |
| | | }) |
| | | } |
| | | }, |
| | | tabsChange(e) { |
| | | const activeTabs = e.currentTarget.dataset.val |
| | | this.setData({ |
| | | activeTabs, |
| | | dataList: [],total: 0,pageNum: 1 |
| | | }) |
| | | this.getList() |
| | | }, |
| | | handleDetail(e) { |
| | | const id = e.currentTarget.dataset.id |
| | | const { activeTabs } = this.data |
| | | let url = '' |
| | | if(activeTabs == 'product_intro'){ |
| | | url = '/pages/detailDis/product' |
| | | }else if(activeTabs == 'whole_case'){ |
| | | url = '/pages/detailDis/case' |
| | | }else{ |
| | | url = '/pages/detailDis/realpic' |
| | | } |
| | | wx.navigateTo({ |
| | | url: `${url}?id=${id}`, |
| | | }) |
| | | }, |
| | | getList() { |
| | | const { |
| | | pageSize, |
| | | pageNum, |
| | | activeTabs |
| | | } = this.data |
| | | collectLikePage({ |
| | | businessCategory: 'like', |
| | | businessType: activeTabs, |
| | | pageSize, |
| | | pageNum |
| | | }).then(res => { |
| | | if (res.data) { |
| | | this.setData({ |
| | | dataList: [...this.data.dataList, ...res.data.records || []], |
| | | total: res.data.total |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | /** |
| | |
| | | /** |
| | | * 页é¢ä¸æè§¦åºäºä»¶çå¤ç彿° |
| | | */ |
| | | onReachBottom() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * ç¨æ·ç¹å»å³ä¸è§å享 |
| | |
| | | <view class="container"> |
| | | <view class="tabs"> |
| | | <view class="item {{ activeTabs == '0' ? 'active' : '' }}" data-val="0" bindtap="tabsChange"> |
| | | <view class="item {{ activeTabs == 'product_intro' ? 'active' : '' }}" data-val="product_intro" bindtap="tabsChange"> |
| | | <view class="name">产å</view> |
| | | <view class="border"></view> |
| | | </view> |
| | | <view class="item {{ activeTabs == '1' ? 'active' : '' }}" data-val="1" bindtap="tabsChange"> |
| | | <view class="item {{ activeTabs == 'whole_case' ? 'active' : '' }}" data-val="whole_case" bindtap="tabsChange"> |
| | | <view class="name">æ¡ä¾</view> |
| | | <view class="border"></view> |
| | | </view> |
| | | <view class="item {{ activeTabs == '2' ? 'active' : '' }}" data-val="2" bindtap="tabsChange"> |
| | | <view class="item {{ activeTabs == 'real_case' ? 'active' : '' }}" data-val="real_case" bindtap="tabsChange"> |
| | | <view class="name">宿¯</view> |
| | | <view class="border"></view> |
| | | </view> |
| | | </view> |
| | | <view class="list"> |
| | | <view class="item" bindtap="handleDetail"> |
| | | <view data-id="{{ item.id }}" wx:for="{{ dataList }}" class="item" bindtap="handleDetail"> |
| | | <view class="img_wrap"> |
| | | <image src="../../static/icon/test.png" class="img"></image> |
| | | <image wx:if="{{ true }}" class="new" src="../../static/icon/chanpin_ic_new@2x.png" mode="widthFix"></image> |
| | | <image src="{{ item.thumbnailUrl }}" class="img"></image> |
| | | <image wx:if="{{ false }}" class="new" src="../../static/icon/chanpin_ic_new@2x.png" mode="widthFix"></image> |
| | | </view> |
| | | <view class="name">é¢ç´æ²</view> |
| | | <view class="info"> |
| | | <image wx:if="{{ false }}" class="icon" src="../../static/icon/detail_nav_collect.png" mode="widthFix"></image> |
| | | <image wx:else="" class="icon" src="../../static/icon/detail_nav_collected.png" mode="widthFix"></image> |
| | | <text class="num {{true ? 'primary' : ''}}">34</text> |
| | | <image class="icon" src="../../static/icon/zixun_ic_liulan.png" mode="widthFix"></image> |
| | | <text>1000</text> |
| | | </view> |
| | | </view> |
| | | <view class="item" bindtap="handleDetail"> |
| | | <view class="img_wrap"> |
| | | <image src="../../static/icon/test.png" class="img"></image> |
| | | <image wx:if="{{ true }}" class="new" src="../../static/icon/chanpin_ic_new@2x.png" mode="widthFix"></image> |
| | | </view> |
| | | <view class="name">é¢ç´æ²</view> |
| | | <view class="info"> |
| | | <image wx:if="{{ false }}" class="icon" src="../../static/icon/detail_nav_collect.png" mode="widthFix"></image> |
| | | <image wx:else="" class="icon" src="../../static/icon/detail_nav_collected.png" mode="widthFix"></image> |
| | | <text class="num {{true ? 'primary' : ''}}">34</text> |
| | | <image class="icon" src="../../static/icon/zixun_ic_liulan.png" mode="widthFix"></image> |
| | | <text>1000</text> |
| | | </view> |
| | | </view> |
| | | <view class="item" bindtap="handleDetail"> |
| | | <view class="img_wrap"> |
| | | <image src="../../static/icon/test.png" class="img"></image> |
| | | <image wx:if="{{ true }}" class="new" src="../../static/icon/chanpin_ic_new@2x.png" mode="widthFix"></image> |
| | | </view> |
| | | <view class="name">é¢ç´æ²</view> |
| | | <view class="name">{{ item.displayName }}</view> |
| | | <view class="info"> |
| | | <image wx:if="{{ false }}" class="icon" src="../../static/icon/detail_nav_collect.png" mode="widthFix"></image> |
| | | <image wx:else="" class="icon" src="../../static/icon/detail_nav_collected.png" mode="widthFix"></image> |
| | |
| | | import { |
| | | uploadUrl, |
| | | editMember, |
| | | getMemberInfo |
| | | getMemberInfo, |
| | | getArea |
| | | } from '../../api/index' |
| | | Page({ |
| | | |
| | |
| | | longitude: '', |
| | | district: '', |
| | | housearea: '', |
| | | // åå¸ãå°å |
| | | region: [], |
| | | |
| | | addr: {}, |
| | | areaData: [], |
| | | |
| | | showHouseType: false, |
| | | houseType: { |
| | |
| | | longitude, |
| | | district, |
| | | housearea, |
| | | houseType |
| | | houseType, |
| | | addr |
| | | } = this.data |
| | | if (!nickname) return wx.showToast({ |
| | | title: '请è¾å
¥æµç§°', |
| | | icon: 'none' |
| | | }) |
| | | editMember({ |
| | | ...addr, |
| | | imgurl: imgurl || '', |
| | | name: name || '', |
| | | nickname: nickname || '', |
| | |
| | | longitude: res.data.longitude || '', |
| | | district: res.data.district || '', |
| | | housearea: res.data.housearea || '', |
| | | addr: { |
| | | provinceCode: res.data.provinceCode, |
| | | provinceName: res.data.provinceName, |
| | | cityCode: res.data.cityCode, |
| | | cityName: res.data.cityName, |
| | | areaCode: res.data.areaCode, |
| | | areaName: res.data.areaName, |
| | | } |
| | | |
| | | }) |
| | | }) |
| | | getArea().then(res => { |
| | | this.setData({ areaData: res.data }) |
| | | }) |
| | | }, |
| | | positionChange (e) { |
| | | console.log(e.detail.value) |
| | | const names = e.detail.value |
| | | const codes = e.detail.code |
| | | let addr = { |
| | | provinceCode: codes[0] + '00', |
| | | provinceName: names[0], |
| | | cityCode: codes[1] + '00', |
| | | cityName: names[1], |
| | | areaCode: codes[2] + '00', |
| | | areaName: names[2], |
| | | } |
| | | this.setData({ addr }) |
| | | }, |
| | | bindRegionChange(e) { |
| | | console.log('pickeråééæ©æ¹åï¼æºå¸¦å¼ä¸º', e.detail.value) |
| | | const temp = e.detail.value |
| | | this.setData({ |
| | | region: e.detail.value |
| | | }) |
| | | }, |
| | | changeAddr() { |
| | |
| | | address: res.address, |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | bindRegionChange(e) { |
| | | console.log('pickeråééæ©æ¹åï¼æºå¸¦å¼ä¸º', e.detail.value) |
| | | this.setData({ |
| | | region: e.detail.value |
| | | }) |
| | | }, |
| | | openHouse() { |
| | |
| | | margin-bottom: 40rpx; |
| | | display: flex; |
| | | align-items: center; |
| | | .picker{ |
| | | width: 100%; |
| | | display: flex; |
| | | .picker_wrap{ |
| | | width: 528rpx; |
| | | display: flex; |
| | | } |
| | | .text{ |
| | | flex: 1; |
| | | } |
| | | } |
| | | .label{ |
| | | width: 110rpx; |
| | | font-size: 30rpx; |
| | |
| | | <view class="container"> |
| | | <image class="avatar" src="{{ imgurlFull ? imgurlFull : '../../static/images/default_avatar.png' }}" mode="widthFix"></image> |
| | | <image class="avatar" bindtap="selMedia" src="{{ imgurlFull ? imgurlFull : '../../static/images/default_avatar.png' }}"></image> |
| | | <view bindtap="selMedia" class="avatar_btn">æ´æ¢å¤´å</view> |
| | | <view class="list"> |
| | | <view class="line"> |
| | |
| | | </view> |
| | | <view class="line"> |
| | | <view class="label">å§å</view> |
| | | <van-field type="text" border="{{ false }}" class="input" model:value="{{ name }}" maxlength="{{ 18 }}" clearable /> |
| | | <van-field type="text" border="{{ false }}" class="input" model:value="{{ name }}" maxlength="{{ 10 }}" clearable /> |
| | | </view> |
| | | <view class="line"> |
| | | <view class="label">çµè¯</view> |
| | |
| | | <view class="line"> |
| | | <view class="label">åå¸</view> |
| | | <view class="val"> |
| | | <view class="df_ac"> |
| | | <picker mode="region" bindchange="bindRegionChange" value="{{region}}"> |
| | | <view class="picker {{ region.length > 0 ? '' : 'placeholder9' }}"> |
| | | {{ region.length == 0 ? 'éæ©åå¸' : '' }}{{region[0]}}{{region[1]}}{{region[2]}} |
| | | <view class="df_ac" style="width: 100%"> |
| | | <picker class="picker" mode="region" value="{{ addr }}" bindchange="bindRegionChange" bindchange="positionChange"> |
| | | <view class="picker_wrap"> |
| | | <view class="text placeholder9" hidden="{{ addr.cityName }}">è¯·éæ©å°å</view> |
| | | <view class="text" hidden="{{ !addr.cityName }}"> |
| | | {{ addr.provinceName }}{{ addr.cityName }}{{ addr.areaName }} |
| | | </view> |
| | | <image class="icon" src="../../static/icon/home_ar@2x.png" mode="widthFix"></image> |
| | | </view> |
| | | </picker> |
| | | </view> |
| | | <image class="icon" src="../../static/icon/home_ar@2x.png" mode="widthFix"></image> |
| | | </view> |
| | | </view> |
| | | <view class="line"> |
| | |
| | | </view> |
| | | <view class="line"> |
| | | <view class="label">é¢ç§¯</view> |
| | | <van-field type="text" border="{{ false }}" class="input" model:value="{{ housearea }}" maxlength="{{ 15 }}" clearable /> |
| | | <!-- <text>m²</text> --> |
| | | <van-field type="number" border="{{ false }}" class="input" model:value="{{ housearea }}" maxlength="{{ 30 }}" clearable /> |
| | | <text>m²</text> |
| | | </view> |
| | | <view class="line"> |
| | | <view class="label">æ·å</view> |
| | |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | .list .line .picker { |
| | | width: 100%; |
| | | display: flex; |
| | | } |
| | | .list .line .picker .picker_wrap { |
| | | width: 528rpx; |
| | | display: flex; |
| | | } |
| | | .list .line .picker .text { |
| | | flex: 1; |
| | | } |
| | | .list .line .label { |
| | | width: 110rpx; |
| | | font-size: 30rpx; |
| | |
| | | * 页é¢çåå§æ°æ® |
| | | */ |
| | | data: { |
| | | activeTabs: '0', |
| | | activeTabs: '1', |
| | | |
| | | dataList: [], |
| | | total: 0, |
| | | page: 0, |
| | | page: 1, |
| | | capacity: 10, |
| | | }, |
| | | |
| | | /** |
| | | * çå½å¨æå½æ°--çå¬é¡µé¢å è½½ |
| | | */ |
| | | onLoad(options) { |
| | | this.getList() |
| | | }, |
| | | onReachBottom() { |
| | | console.log('触åºäºä»¶'); |
| | | const { total, dataList, page } = this.data |
| | | if(total > dataList.length){ |
| | | this.setData({ page: page + 1 }) |
| | | this.getList() |
| | | }else{ |
| | | wx.showToast({ |
| | | title: 'ææ æ´å¤æ°æ®', |
| | | icon: 'none' |
| | | }) |
| | | } |
| | | }, |
| | | getList() { |
| | | const { page, capacity} = this.data |
| | | const { page, capacity, activeTabs} = this.data |
| | | customerLogPage({ |
| | | model: {},page,capacity |
| | | model: { |
| | | type: activeTabs |
| | | },page,capacity |
| | | }).then(res => { |
| | | this.setData({ dataList: res.data.records }) |
| | | this.setData({ |
| | | dataList: res.data.records, |
| | | total: res.data.total, |
| | | }) |
| | | }) |
| | | }, |
| | | tabsChange(e) { |
| | | const activeTabs = e.currentTarget.dataset.val |
| | | this.setData({ activeTabs }) |
| | | }, |
| | | |
| | | /** |
| | | * çå½å¨æå½æ°--çå¬é¡µé¢å次渲æå®æ |
| | | */ |
| | | onReady() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * çå½å¨æå½æ°--çå¬é¡µé¢æ¾ç¤º |
| | | */ |
| | | onShow() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * çå½å¨æå½æ°--çå¬é¡µé¢éè |
| | | */ |
| | | onHide() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * çå½å¨æå½æ°--çå¬é¡µé¢å¸è½½ |
| | | */ |
| | | onUnload() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 页é¢ç¸å
³äºä»¶å¤ç彿°--çå¬ç¨æ·ä¸æå¨ä½ |
| | | */ |
| | | onPullDownRefresh() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * 页é¢ä¸æè§¦åºäºä»¶çå¤ç彿° |
| | | */ |
| | | onReachBottom() { |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * ç¨æ·ç¹å»å³ä¸è§å享 |
| | | */ |
| | | onShareAppMessage() { |
| | | |
| | | this.setData({ activeTabs, dataList: [], total: 0, page: 0, }) |
| | | this.getList() |
| | | } |
| | | }) |
| | |
| | | <view class="name">éæ±</view> |
| | | <view class="border"></view> |
| | | </view> --> |
| | | <view class="item {{ activeTabs == '0' ? 'active' : '' }}" data-val="1" bindtap="tabsChange"> |
| | | <view class="item {{ activeTabs == '1' ? 'active' : '' }}" data-val="1" bindtap="tabsChange"> |
| | | <view class="name">é¢çº¦éå°º</view> |
| | | <view class="border"></view> |
| | | </view> |
| | | <view class="item {{ activeTabs == '1' ? 'active' : '' }}" data-val="2" bindtap="tabsChange"> |
| | | <view class="item {{ activeTabs == '2' ? 'active' : '' }}" data-val="2" bindtap="tabsChange"> |
| | | <view class="name">é¢ç®</view> |
| | | <view class="border"></view> |
| | | </view> |
| | | </view> |
| | | <view class="list"> |
| | | <view class="item"> |
| | | <view class="item" wx:for="{{ dataList }}"> |
| | | <view class="header"> |
| | | <view class="name">name</view> |
| | | <view class="phone">198898</view> |
| | | <view class="name">{{ item.name }}</view> |
| | | <view class="phone">{{ item.phone }}</view> |
| | | </view> |
| | | <block wx:if="{{ false }}"> |
| | | <view class="line"> |
| | | <view class="label"><text class="spe">æ§</text>å«</view> |
| | | <view class="val">ç·</view> |
| | | </view> |
| | | <view class="line"> |
| | | <view class="label"><text class="spe">å¹´</text>é¾</view> |
| | | <view class="val">ç·</view> |
| | | </view> |
| | | <block wx:if="{{ activeTabs == '1' }}"> |
| | | <view class="line"> |
| | | <view class="label">æå¨åå¸</view> |
| | | <view class="val">ç·</view> |
| | | </view> |
| | | <view class="line"> |
| | | <view class="label">æ·åä¿¡æ¯</view> |
| | | <view class="val">ç·</view> |
| | | <view class="val"> |
| | | <text>{{ item.provinceName }}{{ item.cityName }}{{ item.areaName || '' }}</text> |
| | | </view> |
| | | </view> |
| | | </block> |
| | | <!-- é¢ç® --> |
| | | <block wx:if="{{ true }}"> |
| | | <block wx:else> |
| | | <view class="line"> |
| | | <view class="label">æ¿å±ç±»å</view> |
| | | <view class="val">ç·</view> |
| | | <view class="val">{{ item.houseStatus == '0' ? 'ç²¾è£
' : 'æ¯å¯' }}</view> |
| | | </view> |
| | | <view class="line"> |
| | | <view class="label">æ·åä¿¡æ¯</view> |
| | | <view class="val">ç·</view> |
| | | <view wx:if="{{ item.houseType == '0' }}" class="val">ä¸å®¤ä¸å
</view> |
| | | <view wx:if="{{ item.houseType == '1' }}" class="val">äºå®¤ä¸å
</view> |
| | | <view wx:if="{{ item.houseType == '2' }}" class="val">两室两å
</view> |
| | | <view wx:if="{{ item.houseType == '3' }}" class="val">ä¸å®¤ä¸å
</view> |
| | | <view wx:if="{{ item.houseType == '4' }}" class="val">å室ä¸å
</view> |
| | | <view wx:if="{{ item.houseType == '5' }}" class="val">äºå®¤ä¸¤å
å以ä¸</view> |
| | | </view> |
| | | <view class="line"> |
| | | <view class="label">æ¿å±é¢ç§¯</view> |
| | | <view class="val">ç·</view> |
| | | <view class="val">{{ item.area }} m²</view> |
| | | </view> |
| | | <view class="line"> |
| | | <view class="label">è£
ä¿®é¢ç®</view> |
| | | <view class="val">ç·</view> |
| | | <view class="val">{{ item.budget }}ä¸å
</view> |
| | | </view> |
| | | </block> |
| | | <view class="time"> |
| | | <view>æäº¤æ¶é´ï¼123213</view> |
| | | </view> |
| | | </view> |
| | | <view class="item"> |
| | | <view class="header"> |
| | | <view class="name">name</view> |
| | | <view class="phone">198898</view> |
| | | </view> |
| | | <block wx:if="{{ false }}"> |
| | | <view class="line"> |
| | | <view class="label"><text class="spe">æ§</text>å«</view> |
| | | <view class="val">ç·</view> |
| | | </view> |
| | | <view class="line"> |
| | | <view class="label"><text class="spe">å¹´</text>é¾</view> |
| | | <view class="val">ç·</view> |
| | | </view> |
| | | <view class="line"> |
| | | <view class="label">æå¨åå¸</view> |
| | | <view class="val">ç·</view> |
| | | </view> |
| | | <view class="line"> |
| | | <view class="label">æ·åä¿¡æ¯</view> |
| | | <view class="val">ç·</view> |
| | | </view> |
| | | </block> |
| | | <!-- é¢ç® --> |
| | | <block wx:if="{{ true }}"> |
| | | <view class="line"> |
| | | <view class="label">æ¿å±ç±»å</view> |
| | | <view class="val">ç·</view> |
| | | </view> |
| | | <view class="line"> |
| | | <view class="label">æ·åä¿¡æ¯</view> |
| | | <view class="val">ç·</view> |
| | | </view> |
| | | <view class="line"> |
| | | <view class="label">æ¿å±é¢ç§¯</view> |
| | | <view class="val">ç·</view> |
| | | </view> |
| | | <view class="line"> |
| | | <view class="label">è£
ä¿®é¢ç®</view> |
| | | <view class="val">ç·</view> |
| | | </view> |
| | | </block> |
| | | <view class="time"> |
| | | <view>æäº¤æ¶é´ï¼123213</view> |
| | | <view>æäº¤æ¶é´ï¼{{ item.crmDate }}</view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | |
| | | // pages/webView/index.js |
| | | // import Ls from '../../utils/storage' |
| | | // let ls = new Ls() |
| | | // import { saveBannerLookNum } from '../../api/index' |
| | | // import { decodePhone, bindPhone, memberUpdate } from '../../api/index' |
| | | |
| | | Page({ |
| | | |
| | | /** |
| | |
| | | hasUserInfo: true, |
| | | userInfo: {}, |
| | | id: '', |
| | | link: 'https://m.zbom.com/mobile/styleTest.html?type=1' |
| | | link: '' |
| | | }, |
| | | |
| | | // æ´æ°ç¨æ·ä¿¡æ¯ |
| | | toLogin() { |
| | | let that = this |
| | | wx.getUserProfile({ |
| | | desc: 'ç¨äºå®åä¼åèµæ', // 声æè·åç¨æ·ä¸ªäººä¿¡æ¯åçç¨éï¼åç»ä¼å±ç¤ºå¨å¼¹çªä¸ï¼è¯·è°¨æ
å¡«å |
| | | success: (wxInfo) => { |
| | | // console.log(wxInfo) |
| | | let { nickName: name, avatarUrl: imgurl, gender } = wxInfo.userInfo |
| | | let sex |
| | | switch (gender) { |
| | | case 0: |
| | | sex = '' |
| | | break; |
| | | |
| | | case 1: |
| | | sex = 0 |
| | | break; |
| | | |
| | | case 2: |
| | | sex = 1 |
| | | break; |
| | | |
| | | default: |
| | | break; |
| | | } |
| | | memberUpdate({ name, imgurl, sex }).then(res => { |
| | | ls.set('userInfo', res.member) |
| | | that.getWxUserInfo() |
| | | that.toSever() |
| | | }) |
| | | }, |
| | | fail: (err) => { |
| | | console.log(err) |
| | | wx.showToast({ |
| | | title: 'ææå¤±è´¥', |
| | | icon: 'none' |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | // è·åç¨æ·idåææºå· |
| | | bindgetphonenumber(e) { |
| | | // ç¨æ·æç» |
| | | let that = this |
| | | // ç¨æ·åæ |
| | | if (e.detail.errMsg === 'getPhoneNumber:ok') { |
| | | decodePhone({ code: e.detail.code }).then(res => { |
| | | if (res.phone === undefined || res.phone.length === null || !res.phone) { |
| | | wx.showToast({ |
| | | title: res.msg, |
| | | icon: 'none' |
| | | }) |
| | | } else { |
| | | that.setPhoneNumber(res.phone) |
| | | } |
| | | }) |
| | | } |
| | | }, |
| | | setPhoneNumber(phone) { |
| | | console.log(phone); |
| | | bindPhone({ phone }).then(res => { |
| | | console.log(res) |
| | | ls.set('userInfo', res.member) |
| | | this.setData({ userInfo: res.member }) |
| | | this.toSever() |
| | | }) |
| | | }, |
| | | toSever () { |
| | | try { |
| | | wx.openCustomerServiceChat({ |
| | | extInfo: { |
| | | url: "https://work.weixin.qq.com/kfid/kfcfbccadc81cd01c0b?enc_scene=ENC5EhZgjepB9zsutZUQ5AiRnyN7GamomkuWsUA4bwigukSK6w5pVyRzcNDKurjFDNDC7" //客æID |
| | | }, |
| | | corpId: 'ww3686d2bb864ce3e2', //ä¼ä¸å¾®ä¿¡ID |
| | | success(res) { } |
| | | }) |
| | | } catch (error) { |
| | | wx.showToast({ |
| | | title: 'è¯·æ´æ°è³å¾®ä¿¡ææ°çæ¬', |
| | | icon: 'none' |
| | | }) |
| | | } |
| | | }, |
| | | // è·åç¨æ·å¾®ä¿¡ä¿¡æ¯ |
| | | getWxUserInfo() { |
| | | // ä»ç¼åä¸è·åç¨æ·å¾®ä¿¡ä¿¡æ¯ |
| | | ls.get('userInfo').then(res => { |
| | | if (res) { |
| | | if (!res.name || !res.imgurl) { |
| | | this.setData({ hasUserInfo: false }) |
| | | } else { |
| | | this.setData({ hasUserInfo: true, userInfo: res }) |
| | | } |
| | | } |
| | | }) |
| | | ls.get('sessionkey').then(res => { |
| | | this.setData({ sessionkey: res }) |
| | | }) |
| | | }, |
| | | |
| | | /** |
| | | * çå½å¨æå½æ°--çå¬é¡µé¢å è½½ |
| | | */ |
| | | onLoad: function (options) { |
| | | return |
| | | let that = this |
| | | const eventChannel = this.getOpenerEventChannel() |
| | | |
| | | if (options.link) { |
| | | that.setData({ link: options.link, id: options.id }) |
| | | saveBannerLookNum({ id: id }) |
| | | } else { |
| | | // çå¬acceptDataFromOpenerPageäºä»¶ï¼è·åä¸ä¸é¡µé¢éè¿eventChannelä¼ éå°å½å页é¢çæ°æ® |
| | | eventChannel.on('acceptDataFromOpenerPage', function(data) { |
| | | console.log('åæ°', data) |
| | | if (data.title) wx.setNavigationBarTitle({ title: data.title }) |
| | | that.setData({ link: data.link, id: data.id }) |
| | | saveBannerLookNum({ id: data.id }) |
| | | // saveBannerLookNum({ id: data.id }) |
| | | }) |
| | | } |
| | | // // çå¬acceptDataFromOpenerPageäºä»¶ï¼è·åä¸ä¸é¡µé¢éè¿eventChannelä¼ éå°å½å页é¢çæ°æ® |
| | | // eventChannel.on('acceptDataFromOpenerPage', function(data) { |
| | | // if (data.title) wx.setNavigationBarTitle({ title: data.title }) |
| | | // that.setData({ link: data.link }) |
| | | // }) |
| | | }, |
| | | |
| | | /** |
| | |
| | | |
| | | }, |
| | | |
| | | /** |
| | | * çå½å¨æå½æ°--çå¬é¡µé¢æ¾ç¤º |
| | | */ |
| | | onShow: function () { |
| | | this.getWxUserInfo() |
| | | }, |
| | | |
| | | /** |
| | | * çå½å¨æå½æ°--çå¬é¡µé¢éè |
| | |
| | | <!--pages/webView/index.wxml--> |
| | | <web-view src="{{ link }}"> |
| | | <!-- <cover-view class="flex-cc bottom-btn-box"> |
| | | <cover-view class="btn"> |
| | | <button |
| | | plain="true" |
| | | style="background-color: #fff; border: 0; text-align: center;" |
| | | open-type="share" |
| | | > |
| | | <cover-view> |
| | | <cover-image style="margin: 8rpx auto; display: block;" mode="widthFix" src="/static/icon/share.png"></cover-image> |
| | | <cover-view style="height: 14px; line-height: 14px; color: #666; font-size: 10px;">å享</cover-view> |
| | | </cover-view> |
| | | </button> |
| | | </cover-view> |
| | | <cover-view class="reserve-design"> |
| | | <button wx:if="{{!hasUserInfo}}" bindtap="toLogin"> |
| | | <cover-image src="/static/icon/home_ic_kefu.png" mode="widthFix"></cover-image> |
| | | <cover-view class="title">ç«å³å¨è¯¢å®¢æ</cover-view> |
| | | </button> |
| | | <cover-view wx:else> |
| | | <button |
| | | wx:if="{{userInfo.phone && userInfo.phone != 'undefined' && userInfo.phone != null && userInfo.phone != ''}}" |
| | | bindtap="toSever" |
| | | > |
| | | <cover-image src="/static/icon/home_ic_kefu.png" mode="widthFix"></cover-image> |
| | | <cover-view class="title">ç«å³å¨è¯¢å®¢æ</cover-view> |
| | | </button> |
| | | <button |
| | | wx:else |
| | | open-type="getPhoneNumber" |
| | | bindgetphonenumber="bindgetphonenumber" |
| | | > |
| | | <cover-image src="/static/icon/home_ic_kefu.png" mode="widthFix"></cover-image> |
| | | <cover-view class="title">ç«å³å¨è¯¢å®¢æ</cover-view> |
| | | </button> |
| | | </cover-view> |
| | | </cover-view> |
| | | </cover-view> --> |
| | | </web-view> |
| | | |
| | | |
| | |
| | | }, |
| | | { |
| | | "name": "", |
| | | "pathName": "pages/store/store", |
| | | "query": "code=zb_deco_jdid&name=å®¶çiD", |
| | | "pathName": "pages/homeId/index", |
| | | "query": "code=zb_deco_jdid&name=%E5%AE%B6%E7%9A%84iD", |
| | | "launchMode": "default", |
| | | "scene": null |
| | | } |
| | |
| | | |
| | | |
| | | // export const baseUrl = 'https://jiaxuan.zbom.com/jx/wechat/' //æ£å¼æå¡å¨ |
| | | export const baseUrl = 'http://192.168.0.135:10027' // æ¬å° |
| | | // export const baseUrl = 'http://zbtest.ahapp.net/zbom_interface/jx/wechat/' //æµè¯æå¡å¨ |
| | | // export const baseUrl = 'http://192.168.0.135:10027' // æ¬å° |
| | | export const baseUrl = 'https://dmtest.ahapp.net/web_interface' //æµè¯æå¡å¨ |
| | | |
| | | // export const imageUrl = 'https://osswebcdn.zbom.com/jiaxuan/images/' |
| | | |
| | |
| | | import { baseUrl } from "./config" |
| | | import { wxLoginCustomer } from '../api/index' |
| | | |
| | | export function request(options){ |
| | | let loading = options.loading || '1' // é»è®¤å¼1æ¾ç¤ºï¼å¦å䏿¾ç¤º |
| | |
| | | if (res.data.code === 200) { |
| | | resolve(res.data || true) |
| | | } else { |
| | | if(res.data.code == 5111 && res.data.code == 5112){ |
| | | wx.navigateTo({ |
| | | url: '/pages/auth/auth', |
| | | // if(res.data.code == 5112){ |
| | | // wx.navigateTo({ |
| | | // url: '/pages/auth/auth ', |
| | | // }) |
| | | // } |
| | | if(res.data.code == 5111 || res.data.code == 5112){ |
| | | wx.login({ |
| | | timeout: 5000, |
| | | success(res) { |
| | | if (res.code) { |
| | | //åèµ·ç½ç»è¯·æ± |
| | | wxLoginCustomer({ |
| | | code: res.code |
| | | }).then(res => { |
| | | console.log(res) |
| | | if (res && res.data.member) { |
| | | wx.switchTab({ |
| | | url: '/pages/index/index', |
| | | }) |
| | | wx.setStorageSync('member', res.data.member) |
| | | wx.setStorageSync('openid', res.data.member.openid) |
| | | wx.setStorageSync('sessionKey', res.data.sessionKey) |
| | | wx.setStorageSync('token', res.data.token) |
| | | } else { |
| | | console.log('ç»å½å¤±è´¥ï¼') |
| | | } |
| | | }) |
| | | } else { |
| | | console.log('ç»å½å¤±è´¥ï¼' + res) |
| | | } |
| | | }, |
| | | fail(err) { |
| | | console.log(err) |
| | | } |
| | | }) |
| | | } |
| | | res.data.message && wx.showToast({ |