50 Commits

Author SHA1 Message Date
hackrobot
55bc780e93 'test' 2024-10-27 09:34:52 +08:00
hackrobot
df07eb8971 'ss' 2024-10-04 19:08:49 +08:00
hackrobot
b599aebfcc 'hello' 2024-10-04 16:33:21 +08:00
hackrobot
737ee3ce76 'h5' 2024-10-02 22:02:44 +08:00
hackrobot
1b8160d154 ;s 2024-09-15 18:36:09 +08:00
hackrobot
e55e5cea40 'update 2024-09-14 12:54:00 +08:00
hackrobot
464e73229e ''' 2024-09-14 09:11:21 +08:00
hackrobot
3dfea0de3e 'hello; 2024-09-13 21:47:06 +08:00
hackrobot
859b13d886 update 2024-09-12 19:06:51 +08:00
hackrobot
9c4b588909 fwf 2024-09-12 17:13:01 +08:00
hackrobot
2ef02e1cb8 update 2024-09-12 17:11:46 +08:00
hackrobot
a51c8ee66f 's 2024-09-12 17:03:41 +08:00
hackrobot
4a154a0cb0 update 2024-09-12 16:55:34 +08:00
hackrobot
6f36f219ea update 2024-09-12 16:44:45 +08:00
hackrobot
b579bac84a 'sss' 2024-09-12 16:29:03 +08:00
hackrobot
4b27c16d44 update 2024-09-12 16:11:44 +08:00
hackrobot
999897ba6a update 2024-09-12 14:33:20 +08:00
hackrobot
7407f95197 update 2024-09-12 11:46:41 +08:00
hackrobot
3bc929afa3 模版页面 2024-09-12 11:03:28 +08:00
hackrobot
fa1d8cddec update 2024-09-10 13:04:42 +08:00
hackrobot
8134ccb2eb update 2024-08-08 20:09:36 +08:00
hackrobot
596f800d7d update 2024-08-08 20:05:02 +08:00
hackrobot
434c0ca274 update 2024-07-21 19:39:16 +08:00
hackrobot
6a9f89f7d5 feat:手机号校验 2024-07-21 17:28:22 +08:00
hackrobot
5676354a3f update 2024-07-21 16:26:30 +08:00
hackrobot
29ab494d4d update 2024-07-21 16:23:59 +08:00
hackrobot
7429d4cb02 update 2024-07-19 21:58:48 +08:00
hackrobot
e93170af3c update 2024-07-19 21:57:30 +08:00
hackrobot
958825b20c update 2024-07-19 21:55:18 +08:00
hackrobot
bd5a310ba3 feat: update 2024-07-19 17:28:06 +08:00
hackrobot
dd1970458c update 2024-07-19 17:06:15 +08:00
hackrobot
0e0fed4ecc 判断是否在微信客户端 2024-07-18 18:31:20 +08:00
hackrobot
e3599c3afc update 2024-07-18 11:38:07 +08:00
hackrobot
05e0dc3511 update 2024-07-18 11:32:59 +08:00
hackrobot
33c3a6de8e update 2024-07-17 23:35:49 +08:00
hackrobot
25ed0f182f fix其他wxid影响 2024-07-17 22:56:50 +08:00
hackrobot
9058cdb3ac update 2024-07-17 22:26:32 +08:00
hackrobot
d9d95b12b7 update 2024-07-17 22:22:15 +08:00
hackrobot
a1aef1d15c update 2024-07-17 19:29:38 +08:00
hackrobot
6642856bbb update 2024-07-17 14:07:53 +08:00
hackrobot
621b54d83e webpack配置域名 2024-07-17 13:42:36 +08:00
hackrobot
c0df39db6a 在线书籍 2024-07-17 11:21:53 +08:00
hackrobot
e4736b19c4 添加跳转和下载链接 2024-07-17 10:29:04 +08:00
hackrobot
376cc14cc8 添加合集跳转链接 2024-07-17 10:08:45 +08:00
hackrobot
bc72d18a89 update 2024-07-17 00:29:54 +08:00
hackrobot
921713a7bf feat:线下活动 2024-07-16 23:42:15 +08:00
hackrobot
d936c60623 feat: 前端网页优化 2024-07-16 19:19:01 +08:00
hackrobot
f6246b2fc9 安卓H5首页,添加动画效果 2024-07-16 16:27:58 +08:00
hackrobot
138e03fad9 update 2024-07-16 09:38:53 +08:00
hackrobot
3836a222b4 清空首页 2024-07-13 23:20:08 +08:00
43 changed files with 1633 additions and 262 deletions

View File

@@ -42,6 +42,14 @@ const config = {
},
},
h5: {
webpackChain (chain) {
chain.module
.rule('markdown')
.test(/\.md$/)
.use('raw-loader')
.loader('raw-loader')
.end();
},
esnextModules: ["taro-ui"],
publicPath: "/",
staticDirectory: "static",
@@ -74,15 +82,21 @@ const config = {
// HOST: '"/api"'
// },
devServer: {
// host: 'nomad.hackrobot.cn', // 替换为您的域名
// port: 10086, // 选择一个适当的端口号
proxy: {
'/api/': {
target: JSON.parse('"http://localhost:8055"'), //本地调试端口
target: JSON.parse('"http://localhost:8700"'), //本地调试端口
pathRewrite: {
'^/api/': '/'
},
changeOrigin: true
}
}
},
// 允许特定域名访问
allowedHosts: [
'nomad.hackrobot.cn'
],
}
},
};

1
h5.sh Normal file
View File

@@ -0,0 +1 @@
yarn dev:h5

View File

@@ -44,6 +44,10 @@
"@tarojs/runtime": "3.6.20",
"@tarojs/shared": "3.6.20",
"@tarojs/taro": "3.6.20",
"animate.css": "^4.1.1",
"github-markdown-css": "^5.6.1",
"marked": "^14.1.2",
"raw-loader": "^4.0.2",
"react": "^18.0.0",
"react-dom": "^18.0.0",
"sr-sdk-h5": "^1.3.1",

View File

@@ -4,6 +4,10 @@ export default {
'pages/my/index',
'pages/meetup/index',
'pages/meetup/Detail/index',
'pages/group/index',
'pages/book/index',
'pages/salon/index',
],
window: {

BIN
src/images/AIGC.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

BIN
src/images/book.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 623 KiB

BIN
src/images/bookqr.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 326 KiB

BIN
src/images/cat.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

BIN
src/images/coffee192.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

BIN
src/images/doller.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

BIN
src/images/emoji.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

BIN
src/images/eric.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

BIN
src/images/girl.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

BIN
src/images/loft.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
src/images/loft.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 966 KiB

BIN
src/images/meetup.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
src/images/nomad.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 KiB

BIN
src/images/phone.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

BIN
src/images/qrcode.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 131 KiB

BIN
src/images/robot.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

BIN
src/images/touxiang.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

BIN
src/images/travel.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

BIN
src/images/web.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

BIN
src/images/wenwen.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

View File

@@ -8,6 +8,11 @@
<meta name="format-detection" content="telephone=no,address=no">
<meta name="apple-mobile-web-app-status-bar-style" content="white">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" >
<link rel="apple-touch-icon" href="/static/images/images/coffee192.png" />
<link
rel="icon"
sizes="192x192"
href="/static/images/images/coffee192.png">
<title>异度星球</title>
<script><%= htmlWebpackPlugin.options.script %></script>
</head>

View File

@@ -0,0 +1,3 @@
export default {
navigationBarTitleText: '一人公司方法论'
}

26
src/pages/book/index.scss Normal file
View File

@@ -0,0 +1,26 @@
// 在 src/index.scss 中引入 GitHub Markdown 主题
@import 'github-markdown-css/github-markdown.css';
.Book {
padding: 40px;
// font-size: 30px !important;
// color: #666;
.markdown-body{
font-size: 30px !important;
}
img {
max-width: 100%;
height: auto; /* 保持图像的纵横比 */
}
.formCode {
display: flex;
flex-direction: row;
.codeBtn {
background-color: aquamarine;
// height: 80px;
// color: red;
}
}
}

62
src/pages/book/index.tsx Normal file
View File

@@ -0,0 +1,62 @@
// @ts-nocheck
import { Component } from "react";
import { View, Text, Image } from "@tarojs/components";
import "./index.scss";
import { AtButton, AtInput, AtTabBar } from "taro-ui";
import React, { useCallback, useEffect, useState } from "react";
import { AtGrid } from "taro-ui";
import { Swiper, SwiperItem } from "@tarojs/components";
import { AtCard } from "taro-ui";
import { AtImagePicker } from "taro-ui";
import Taro from "@tarojs/taro";
import { AtAvatar } from "taro-ui";
import { AtTag } from "taro-ui";
import { AtList, AtListItem } from "taro-ui";
import { AtForm, AtMessage } from "taro-ui";
import { marked } from "marked";
import markdownText from "./text.md";
marked.setOptions({
breaks: true, // 是否回车换行
gfm: true, //使用经批准的 GitHub Flavored Markdown (GFM) 规范
// pedantic: true, //严格模式
// highlight(code:any, lang:any) {
// // 语法高亮
// let val = code;
// if (lang) {
// val = hljs.highlight(lang, code).value;
// } else {
// val = hljs.highlightAuto(code).value;
// }
// return val;
// },
});
// const renderer = new marked.Renderer();
// // 使用拓展
// marked.use({ renderer });
// export default class Index extends Component {
const Book = () => {
const [markText, setmarkText] = useState();
useEffect(() => {}, []);
const handleClick = (value) => {
// 跳转到目的页面,在当前页面打开
Taro.navigateTo({
url: "/pages/index/index",
});
};
return (
<View className="Book">
<View
className="markdown-body" // 添加 GitHub Markdown 主题类
dangerouslySetInnerHTML={{ __html: marked(markdownText) }}
></View>
</View>
);
};
export default Book;

49
src/pages/book/text.md Normal file
View File

@@ -0,0 +1,49 @@
## 一人公司方法论
> 公司化运营业务,但并不是注册企业主体
<img src="https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/book.png?imageSlim" title="" alt="book.png" width="248">
这本书是基于H5页面的`单页书籍`,会不定时更新
本主要基于个人的学习,实践,总结一套方法论,包含了`道``术`
读者可以参考借鉴
主题包含并不限于以下:
- 云手机+微信机器人+AIGC+边缘计算
- youtube频道获利
- 独立开发者
- 跨境电商
- 旅行+远程办公
---
## 简介
> 数字游民实践者
<img src="https://hackrobot-1258475618.cos.ap-shenzhen-fsi.myqcloud.com/avatar.jpg?imageSlim" title="" alt="avatar.jpg" width="254">
曾经是程序员,业余开发软件工具
有公司主体,运营跨境电商亚马逊
平时爱折腾技术,以`树莓派`为主
目前方向是偏户外/旅行
以youtube频道作为副资产获利
最近在策划`coffeechat以及小型沙龙`
---
## 持续更新中
> 有建议请私聊

View File

@@ -0,0 +1,3 @@
export default {
navigationBarTitleText: '加入微信群'
}

View File

@@ -0,0 +1,13 @@
.group{
padding: 40px;
.formCode{
display: flex;
flex-direction: row;
.codeBtn{
background-color: aquamarine;
// height: 80px;
// color: red;
}
}
}

130
src/pages/group/index.tsx Normal file
View File

@@ -0,0 +1,130 @@
// @ts-nocheck
import { Component } from "react";
import { View, Text, Image } from "@tarojs/components";
import "./index.scss";
import { AtButton, AtInput, AtTabBar } from "taro-ui";
import React, { useCallback, useEffect, useState } from "react";
import { AtGrid } from "taro-ui";
import { Swiper, SwiperItem } from "@tarojs/components";
import { AtCard } from "taro-ui";
import { AtImagePicker } from "taro-ui";
import Taro from "@tarojs/taro";
import { AtAvatar } from "taro-ui";
import { AtTag } from "taro-ui";
import { AtList, AtListItem } from "taro-ui";
import { AtForm, AtMessage } from "taro-ui";
// export default class Index extends Component {
const Group = () => {
const [current, setcurrent] = useState(2);
const [wxid, setwxid] = useState(null);
const [phoneNum, setphoneNum] = useState(null);
const [vCode, setvCode] = useState(null);
const [waitTime, setWaitTime] = useState(0); // 等待秒数
const [isButtonDisabled, setIsButtonDisabled] = useState(false); // 按钮是否禁用
useEffect(() => {}, []);
const handleClick = (value) => {
// 跳转到目的页面,在当前页面打开
Taro.navigateTo({
url: "/pages/index/index",
});
};
const startTimer = () => {
setIsButtonDisabled(true);
let localWaitTime = 60; // 使用局部变量
// 更新状态的函数
const updateTime = () => {
if (localWaitTime <= 0) {
clearInterval(timer);
setIsButtonDisabled(false);
setWaitTime(0);
} else {
setWaitTime(localWaitTime);
localWaitTime -= 1;
}
};
// 设定计时器
const timer = setInterval(updateTime, 1000);
// 初始调用
updateTime();
};
const validatePhoneNumber=(phoneNum) =>{
// 检查是否为11位数字
const phoneRegex = /^[0-9]{11}$/;
return phoneRegex.test(phoneNum);
}
return (
<View className="group">
<AtForm
onSubmit={(event) => {
console.log("onSubmit-event--", event[0]?.detail?.value);
}}
onReset={(event) => {
// 重置数据
}}
>
<AtInput
name="phoneNum"
border={false}
title="手机号"
type="phone"
placeholder="请输入"
value={phoneNum}
disabled={isButtonDisabled}
onChange={(value) => {
console.log("value", value);
setphoneNum(value);
}}
/>
<View className="formCode">
<AtInput
name="vCode"
title="验证码"
type="number"
placeholder="请输入4位数字"
value={vCode}
onChange={(value) => {
setvCode(value);
}}
/>
<AtButton
className="codeBtn"
onClick={() => {
if (!!phoneNum & !!validatePhoneNumber(phoneNum)) {
// 提交手机数据
setIsButtonDisabled(true);
startTimer(); // 开始防抖计时
} else {
Taro.atMessage({
message: "请检查手机号",
type: `warning`,
});
}
}}
// type="primary"
disabled={isButtonDisabled}
>
{isButtonDisabled ? `${waitTime}` : "获取"}
</AtButton>
</View>
<AtButton formType="submit" type="primary">
{"提交"}
</AtButton>
</AtForm>
<AtMessage />
</View>
);
};
export default Group;

View File

@@ -1,3 +1,3 @@
export default {
navigationBarTitleText: '异度星球'
navigationBarTitleText: '数字游民工具箱'
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,57 +1,232 @@
.index {
display: flex;
flex-direction: column;
// align-items: center;
justify-content: center;
.indexSwiper {
// margin-top: 20px;
padding: 20px;
// background-color: #002329;
// width: 100vw;
// height: 100vh;
padding: 40px;
.demo-text {
// display: flex;
// flex-direction: column;
// align-items: center;
// justify-content: center;
// background-color: yellow;
height: 300px;
width: 100%;
// padding: 20px;
// Image{
// width: 90%;
// }
.index-title {
display: flex;
flex-direction: row;
font-weight: 700;
align-items: center;
.yidooplanet {
margin-left: 20px;
}
}
.meetupCard {
.index-tags {
margin-top: 20px;
.index-AtTag {
background-color: rgb(99 102 241);
color: white;
}
}
.index-article {
margin-top: 60px;
// background-color: yellow;
font-size: 30px;
.web{
color:chocolate
}
.spanText {
font-weight: 700;
}
}
.index-list {
margin-top: 60px;
}
.index-book {
margin-top: 60px;
// width: 100%;
height: 300px;
padding: 20px;
display: flex;
flex-direction: row;
.right {
// background-color: yellow;
width: 100%;
margin-left: 20px;
align-items: center;
// justify-content: center;
// background-color: #f0f0f0;
background-color: #f0f5ff;
.bookImg {
width: 40%;
height: 100%;
// background-color: #1bb14e;
}
.book-middle {
width: 20px;
height: 100%;
}
.nomad-right {
// margin-left: 20px;
display: flex;
flex-direction: column;
// align-items: center;
justify-content: space-between;
.down {
width: 200px;
// background-color: aqua;
position: relative;
bottom: 10px;
right: -120px;
// display: flex;
// flex-direction: column-reverse;
// justify-content:flex-end
// position: relative;
.submitBtn {
// width: 200px;
// position: absolute;
// right: 0px;
// background-color: yellow;
// width: 100%;
flex: 1;
height: 100%;
.nomad-title {
font-size: 35px;
display: flex;
flex-direction: row;
align-items: center;
// justify-content: space-between;
// background-color: red;
.bookNmae {
margin-left: 10px;
}
}
.subtitle {
font-size: 20px;
color: red;
}
.bookText {
font-size: 20px;
}
.bookPrice {
font-size: 30px;
display: flex;
flex-direction: row-reverse;
.join {
font-size: 20px;
width: 100px;
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
background-color: #1bb14e;
color: #fff;
border-radius: 15%;
position: relative;
bottom: 10px;
right: 10px;
}
}
}
}
.indexTablebar {
.software {
margin-top: 60px;
font-size: 30px;
padding: 30px;
.emojiTitle {
color: rgb(99 102 241);
}
.emojitext {
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
font-size: 28px;
}
.software-emoji {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
}
.index-meetup {
margin-top: 60px;
.meetup-card {
display: flex;
flex-direction: row;
// background-color: yellow;
.meetup-left {
width: 50%;
height: 100%;
display: flex;
flex-direction: column;
// background-color: red;
}
.meetup-right {
font-size: 20px;
margin-left: 10px;
display: flex;
flex-direction: column;
// align-items: center;
justify-content: space-between;
// background-color: green;
flex: 1;
.title {
}
.address {
// margin-top: 30px;
}
.meetBtn {
display: flex;
// flex-direction: row-reverse;
flex-direction: row;
align-items: center;
justify-content: space-between;
.meetupSrcItem{
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
// background-color: red;
.meetupSrc {
// width: 20px;
// height:20px;
border-radius: 15%;
// background-color: yellow;
margin-left: 10px;
}
}
.join {
width: 100px;
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
background-color: #1bb14e;
color: #fff;
border-radius: 15%;
position: relative;
// bottom: 10px;
right: -10px;
}
}
}
}
}
.contack {
margin-top: 60px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
.wechatNum {
font-size: 34px;
color: #1bb14e;
}
}
.emojiModel {
.modelText {
font-size: 22px;
}
.model-emoji {
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
}
}
.payBtn {
position: fixed;
bottom: 0;
width: 100%;

View File

@@ -0,0 +1,3 @@
export default {
navigationBarTitleText: '模版页面'
}

View File

@@ -0,0 +1,4 @@
.Model{
padding: 40px;
}

31
src/pages/model/index.tsx Normal file
View File

@@ -0,0 +1,31 @@
// @ts-nocheck
import { Component } from "react";
import { View, Text, Image } from "@tarojs/components";
import "./index.scss";
import { AtButton, AtInput, AtTabBar } from "taro-ui";
import React, { useCallback, useEffect, useState } from "react";
import { AtGrid } from "taro-ui";
import { Swiper, SwiperItem } from "@tarojs/components";
import { AtCard } from "taro-ui";
import { AtImagePicker } from "taro-ui";
import Taro from "@tarojs/taro";
import { AtAvatar } from "taro-ui";
import { AtTag } from "taro-ui";
import { AtList, AtListItem } from "taro-ui";
import { AtForm, AtMessage } from "taro-ui";
// export default class Index extends Component {
const Model = () => {
useEffect(() => {}, []);
const handleClick = (value) => {
// 跳转到目的页面,在当前页面打开
Taro.navigateTo({
url: "/pages/index/index",
});
};
return <View className="Model"></View>;
};
export default Model;

View File

@@ -0,0 +1,3 @@
export default {
navigationBarTitleText: '副业沙龙'
}

View File

@@ -0,0 +1,23 @@
.Model {
padding: 20px;
.bottomDiv {
width: 100%;
height: 100px;
// background-color: yellow;
}
.joinSalon {
// position: relative;
bottom: 20px;
position: fixed;
width: 700px;
}
.model-emoji {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
}

224
src/pages/salon/index.tsx Normal file
View File

@@ -0,0 +1,224 @@
// @ts-nocheck
import { Component } from "react";
import { View, Text, Image, Button } from "@tarojs/components";
import "./index.scss";
import { AtButton, AtInput, AtTabBar } from "taro-ui";
import React, { useCallback, useEffect, useState } from "react";
import { AtGrid } from "taro-ui";
import { Swiper, SwiperItem } from "@tarojs/components";
import { AtCard } from "taro-ui";
import { AtImagePicker } from "taro-ui";
import Taro from "@tarojs/taro";
import { AtTag } from "taro-ui";
import { AtList, AtListItem } from "taro-ui";
import { AtForm, AtMessage } from "taro-ui";
import loft from "../../images/loft.png";
import nomadvloglife from "../../images/nomadvloglife.png";
import {
AtModal,
AtModalHeader,
AtModalContent,
AtModalAction,
AtAvatar,
AtAccordion,
} from "taro-ui";
import qrcode from "../../images/qrcode.png";
// export default class Index extends Component {
const Salon = () => {
const [meetupQR, setmeetupQR] = useState(false);
const [isWeChat, setisWeChat] = useState(false);
const [meetup, setmeetup] = useState(window.localStorage.getItem("meetup"));
useEffect(() => {
isWeChatFun();
}, []);
const handleClick = (value) => {
// 跳转到目的页面,在当前页面打开
Taro.navigateTo({
url: "/pages/index/index",
});
};
// 是否在微信客户端
const isWeChatFun = () => {
var ua = navigator.userAgent.toLowerCase();
if (ua.indexOf("micromessenger") != -1) {
setisWeChat(true);
return true;
} else {
setisWeChat(false);
return false;
}
};
const payh5 = (type, total_fee = 1000) => {
// console.log("111");
Taro.request({
method: "POST",
url: "/api/payh5", //仅为示例,并非真实的接口地址
// url: "https://pay.hackrobot.cn/api/payh5", //仅为示例,并非真实的接口地址
data: {
callback_url: window.location.href,
openid: window.localStorage.getItem("openid"),
total_fee: total_fee, // 金额,单位:分
type: type, //订单类型 book/meetup/video/vip
},
header: {
"content-type": "application/json", // 默认值
},
success: function (res) {
console.log(res.data);
// window.alert(res.data.jsapi);
WeixinJSBridge.invoke(
"getBrandWCPayRequest",
{
// 以下6个支付参数通过payjs的jsapi接口获取
// appId: "wxc5205a653b0259bf",
// timeStamp: "1701401644",
// nonceStr: "KhOYB0wFV6j9qyQK",
// package: "prepay_id=wx01113404850024729b35f4d69b73500000",
// signType: "MD5",
// paySign: "2A823C8D47CCF871C6C65A56DC228CF8",
...(res?.data?.jsapi ?? {}),
},
function (res) {
// 支付成功
if (res.err_msg == "get_brand_wcpay_request:ok") {
window.localStorage.setItem(type, 1); //订单类型 book/meetup/video/vip
WeixinJSBridge.call("closeWindow");
}
}
);
},
});
};
return (
<View className="Model">
<View className="meetup-left">
<Image style="width: 100%;height: 100px;background: #fff;" src={loft} />
</View>
<View className="at-article">
<View className="at-article__h1">& | 线</View>
<View className="at-article__info">
{/* 2017-05-07&nbsp;&nbsp;&nbsp; */}
</View>
<View className="at-article__content">
<View className="at-article__section">
<View className="at-article__h2"></View>
<View className="at-article__h3">| 📣coffeechat</View>
<View className="at-article__p">
coffeechat的另一种形式
<br />
1V1交流会紧张,
<br />
(6),
</View>
<br />
<View className="at-article__h3">| 📋</View>
<View className="at-article__p">
<br />
1地点:南山区--loft民宿
<br />
26 (8)
<br />
3 []
</View>
<br />
{/* ❌ */}
<View className="at-article__h3">| ,</View>
<View className="at-article__p">
🚫广
<br />
{/* 🚫标榜:"留学海归""博士硕士""大咖大V""大厂"等
<br />
声明:"一人公司","自由职业","副业",有很多组织,或者个人,会举办专题的活动,以及"高端XX局",固定周期,流程体系化,并以此盈利.{" "}
<br />
本沙龙不属于此类
<br /> */}
"职业/学历/大公司"
<br />
💰39/ ()
</View>
<br />
{meetup == 1 ? (
<View className="at-article__h3">| ,</View>
) : (
null
)}
{meetup == 1 ? (
<View className="at-article__p">
{`ID:${window.localStorage.getItem("openid")}`}
</View>
) : null}
{/* 已报名 */}
{meetup == 1 ? (
<View className="model-emoji">
<Image
style="width: 240px;height: 240px;background: #fff;"
// src={qrcode}
src={nomadvloglife}
/>
</View>
) : null}
</View>
</View>
</View>
<View className="bottomDiv"></View>
{/* 判断有没有wxid,是否女性 */}
<AtButton
type="primary"
size="normal"
className="joinSalon"
onClick={() => {
if (meetup == 1) {
return false;
} else {
if (!!isWeChat) {
payh5("meetup", 3900);
} else {
setmeetupQR(true);
}
}
}}
>
{meetup == 1 ? "已报名" : `立即报名`}
</AtButton>
<View className="meetupQR">
{/* 软件下载模态窗 */}
<AtModal isOpened={meetupQR}>
<AtModalHeader></AtModalHeader>
<AtModalContent>
<View className="model-emoji">
<Image
// style="width: 100%;height: 240px;background: #fff;"
src={qrcode}
/>
</View>
</AtModalContent>
<AtModalAction>
<Button
onClick={() => {
setmeetupQR(false);
}}
>
</Button>
</AtModalAction>
</AtModal>
</View>
</View>
);
};
export default Salon;

View File

@@ -2823,6 +2823,11 @@ ajv@^8.0.0, ajv@^8.9.0:
require-from-string "^2.0.2"
uri-js "^4.2.2"
animate.css@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/animate.css/-/animate.css-4.1.1.tgz#614ec5a81131d7e4dc362a58143f7406abd68075"
integrity sha512-+mRmCTv6SbCmtYJCN4faJMNFVNN5EuCTTprDTAo7YzIGji2KADmakjVA3+8mVDkZ2Bf09vayB35lSQIex2+QaQ==
ansi-align@^3.0.0:
version "3.0.1"
resolved "https://registry.npmmirror.com/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59"
@@ -6240,6 +6245,11 @@ git-clone@^0.1.0:
resolved "https://registry.npmmirror.com/git-clone/-/git-clone-0.1.0.tgz#0d76163778093aef7f1c30238f2a9ef3f07a2eb9"
integrity sha512-zs9rlfa7HyaJAKG9o+V7C6qfMzyc+tb1IIXdUFcOBcR1U7siKy/uPdauLlrH1mc0vOgUwIv4BF+QxPiiTYz3Rw==
github-markdown-css@^5.6.1:
version "5.6.1"
resolved "https://registry.yarnpkg.com/github-markdown-css/-/github-markdown-css-5.6.1.tgz#8ca3d5c3d93d79ea429fddafea091347ab374f78"
integrity sha512-DItLFgHd+s7HQmk63YN4/TdvLeRqk1QP7pPKTTPrDTYoI5x7f/luJWSOZxesmuxBI2srHp8RDyoZd+9WF+WK8Q==
giturl@^1.0.0:
version "1.0.3"
resolved "https://registry.npmmirror.com/giturl/-/giturl-1.0.3.tgz#27f9d1f251d138eb2a5a56cc9dd8512b0fc0bbc6"
@@ -8280,6 +8290,11 @@ markdown-table@^1.1.0:
resolved "https://registry.npmmirror.com/markdown-table/-/markdown-table-1.1.3.tgz#9fcb69bcfdb8717bfd0398c6ec2d93036ef8de60"
integrity sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==
marked@^14.1.2:
version "14.1.2"
resolved "https://registry.yarnpkg.com/marked/-/marked-14.1.2.tgz#3cbc26b2d6832be32b75ae0746e0968c781b6156"
integrity sha512-f3r0yqpz31VXiDB/wj9GaOB0a2PRLQl6vJmXiFrniNwjkKdvakqJRULhjFKJpxOchlCRiG5fcacoUZY5Xa6PEQ==
math-random@^1.0.1:
version "1.0.4"
resolved "https://registry.npmmirror.com/math-random/-/math-random-1.0.4.tgz#5dd6943c938548267016d4e34f057583080c514c"
@@ -10116,6 +10131,14 @@ raw-body@2.5.1:
iconv-lite "0.4.24"
unpipe "1.0.0"
raw-loader@^4.0.2:
version "4.0.2"
resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-4.0.2.tgz#1aac6b7d1ad1501e66efdac1522c73e59a584eb6"
integrity sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==
dependencies:
loader-utils "^2.0.0"
schema-utils "^3.0.0"
rc-config-loader@^4.0.0:
version "4.1.3"
resolved "https://registry.npmmirror.com/rc-config-loader/-/rc-config-loader-4.1.3.tgz#1352986b8a2d8d96d6fd054a5bb19a60c576876a"
@@ -11291,7 +11314,7 @@ strict-uri-encode@^2.0.0:
resolved "https://registry.npmmirror.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546"
integrity sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==
"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2:
"string-width-cjs@npm:string-width@^4.2.0":
version "4.2.3"
resolved "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
@@ -11308,6 +11331,15 @@ string-width@^2.1.0, string-width@^2.1.1:
is-fullwidth-code-point "^2.0.0"
strip-ansi "^4.0.0"
string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2:
version "4.2.3"
resolved "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
dependencies:
emoji-regex "^8.0.0"
is-fullwidth-code-point "^3.0.0"
strip-ansi "^6.0.1"
string-width@^5.0.1, string-width@^5.1.2:
version "5.1.2"
resolved "https://registry.npmmirror.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794"
@@ -11388,7 +11420,7 @@ stringify-entities@^1.0.1:
is-alphanumerical "^1.0.0"
is-hexadecimal "^1.0.0"
"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1:
"strip-ansi-cjs@npm:strip-ansi@^6.0.1":
version "6.0.1"
resolved "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
@@ -11409,6 +11441,13 @@ strip-ansi@^4.0.0:
dependencies:
ansi-regex "^3.0.0"
strip-ansi@^6.0.0, strip-ansi@^6.0.1:
version "6.0.1"
resolved "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
dependencies:
ansi-regex "^5.0.1"
strip-ansi@^7.0.1:
version "7.1.0"
resolved "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45"
@@ -12734,7 +12773,7 @@ widest-line@^3.1.0:
dependencies:
string-width "^4.0.0"
"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0:
"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
version "7.0.0"
resolved "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
@@ -12752,6 +12791,15 @@ wrap-ansi@^6.0.1:
string-width "^4.1.0"
strip-ansi "^6.0.0"
wrap-ansi@^7.0.0:
version "7.0.0"
resolved "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
dependencies:
ansi-styles "^4.0.0"
string-width "^4.1.0"
strip-ansi "^6.0.0"
wrap-ansi@^8.1.0:
version "8.1.0"
resolved "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"