diff --git a/next.config.mjs b/next.config.mjs index 65f0e04..7e252f7 100644 --- a/next.config.mjs +++ b/next.config.mjs @@ -6,10 +6,22 @@ const nextConfig = { source: '/queyueapi/:path*', destination: `${process.env.NEXT_PUBLIC_HOST}/:path*`, }, + { + source: '/luoo-music/:path*', + destination: 'http://39.103.180.196:9012/luoo-music/:path*', + }, + { + source: '/user/artist/:path*', + destination: 'http://39.103.180.196:9012/user/artist/:path*', + }, { source: '/', destination: '/music/all', }, + { + source: '/artists-settle-in', + destination: '/artists-settle-in/home', + }, ]; }, reactStrictMode: false, diff --git a/package-lock.json b/package-lock.json index 405cf2c..1f0509f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10294,6 +10294,126 @@ "optional": true } } + }, + "node_modules/@next/swc-darwin-arm64": { + "version": "14.1.3", + "resolved": "https://registry.npmmirror.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.1.3.tgz", + "integrity": "sha512-LALu0yIBPRiG9ANrD5ncB3pjpO0Gli9ZLhxdOu6ZUNf3x1r3ea1rd9Q+4xxUkGrUXLqKVK9/lDkpYIJaCJ6AHQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-darwin-x64": { + "version": "14.1.3", + "resolved": "https://registry.npmmirror.com/@next/swc-darwin-x64/-/swc-darwin-x64-14.1.3.tgz", + "integrity": "sha512-E/9WQeXxkqw2dfcn5UcjApFgUq73jqNKaE5bysDm58hEUdUGedVrnRhblhJM7HbCZNhtVl0j+6TXsK0PuzXTCg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-gnu": { + "version": "14.1.3", + "resolved": "https://registry.npmmirror.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.1.3.tgz", + "integrity": "sha512-USArX9B+3rZSXYLFvgy0NVWQgqh6LHWDmMt38O4lmiJNQcwazeI6xRvSsliDLKt+78KChVacNiwvOMbl6g6BBw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-musl": { + "version": "14.1.3", + "resolved": "https://registry.npmmirror.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.1.3.tgz", + "integrity": "sha512-esk1RkRBLSIEp1qaQXv1+s6ZdYzuVCnDAZySpa62iFTMGTisCyNQmqyCTL9P+cLJ4N9FKCI3ojtSfsyPHJDQNw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-gnu": { + "version": "14.1.3", + "resolved": "https://registry.npmmirror.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.1.3.tgz", + "integrity": "sha512-8uOgRlYEYiKo0L8YGeS+3TudHVDWDjPVDUcST+z+dUzgBbTEwSSIaSgF/vkcC1T/iwl4QX9iuUyUdQEl0Kxalg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-musl": { + "version": "14.1.3", + "resolved": "https://registry.npmmirror.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.1.3.tgz", + "integrity": "sha512-DX2zqz05ziElLoxskgHasaJBREC5Y9TJcbR2LYqu4r7naff25B4iXkfXWfcp69uD75/0URmmoSgT8JclJtrBoQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-arm64-msvc": { + "version": "14.1.3", + "resolved": "https://registry.npmmirror.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.1.3.tgz", + "integrity": "sha512-HjssFsCdsD4GHstXSQxsi2l70F/5FsRTRQp8xNgmQs15SxUfUJRvSI9qKny/jLkY3gLgiCR3+6A7wzzK0DBlfA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-ia32-msvc": { + "version": "14.1.3", + "resolved": "https://registry.npmmirror.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.1.3.tgz", + "integrity": "sha512-DRuxD5axfDM1/Ue4VahwSxl1O5rn61hX8/sF0HY8y0iCbpqdxw3rB3QasdHn/LJ6Wb2y5DoWzXcz3L1Cr+Thrw==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } } } } diff --git a/public/img/artists-settle-in/avatar.png b/public/img/artists-settle-in/avatar.png new file mode 100644 index 0000000..28fd0e0 Binary files /dev/null and b/public/img/artists-settle-in/avatar.png differ diff --git a/public/img/artists-settle-in/home_bg.jpg b/public/img/artists-settle-in/home_bg.jpg new file mode 100644 index 0000000..b598e44 Binary files /dev/null and b/public/img/artists-settle-in/home_bg.jpg differ diff --git a/public/img/artists-settle-in/logo.svg b/public/img/artists-settle-in/logo.svg new file mode 100644 index 0000000..05ef706 --- /dev/null +++ b/public/img/artists-settle-in/logo.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/img/artists-settle-in/logo_black.svg b/public/img/artists-settle-in/logo_black.svg new file mode 100644 index 0000000..076fa22 --- /dev/null +++ b/public/img/artists-settle-in/logo_black.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/img/artists-settle-in/upload_default_pic.png b/public/img/artists-settle-in/upload_default_pic.png new file mode 100644 index 0000000..f8e83cf Binary files /dev/null and b/public/img/artists-settle-in/upload_default_pic.png differ diff --git a/src/app/(artists-settle-in)/artists-settle-in/home/home.module.css b/src/app/(artists-settle-in)/artists-settle-in/home/home.module.css new file mode 100644 index 0000000..4336d92 --- /dev/null +++ b/src/app/(artists-settle-in)/artists-settle-in/home/home.module.css @@ -0,0 +1,54 @@ +.wrap { + min-height: 100vh; + background-color: #000; + background-image: url(/img/artists-settle-in/home_bg.jpg); + background-position: center; + background-size: auto 100%; + background-repeat: no-repeat; +} + +.wrap .cont { + display: flex; + align-items: center; + justify-content: center; + flex-direction: column; +} + +.wrap .cont .contBox { + display: flex; + align-items: center; + justify-content: center; + flex-direction: column; + margin-top: -78px; +} + +.wrap .cont .contBox .sloganTitle { + height: 28px; + line-height: 28px; + font-size: 20px; + margin-bottom: 8px; + color: #fff; + font-weight: 400; +} + +.wrap .cont .contBox .slogan { + height: 67.2px; + line-height: 67.2px; + font-family: PingFang SC; + font-weight: 600; + font-size: 48px; + margin-top: 8px; + margin-bottom: 38px; + color: #fff; +} + +.wrap .cont .contBox .btn { + display: flex; + align-items: center; + justify-content: center; + width: 222px; + height: 59px; + border-radius: 38px; + font-weight: 500; + font-size: 18px; +} diff --git a/src/app/(artists-settle-in)/artists-settle-in/home/page.tsx b/src/app/(artists-settle-in)/artists-settle-in/home/page.tsx new file mode 100644 index 0000000..c6a3726 --- /dev/null +++ b/src/app/(artists-settle-in)/artists-settle-in/home/page.tsx @@ -0,0 +1,38 @@ +'use client'; + +import React from 'react'; + +import { Layout, Typography, Button } from '@arco-design/web-react'; +import { useRouter } from 'next/navigation'; + +import Header from '@/components/ArtistsSettleIn/Header'; + +import styles from './home.module.css'; + +const Content = Layout.Content; +const { Title, Paragraph } = Typography; + +function Home() { + const router = useRouter(); + + const handleClick = () => { + router.push('/artists-settle-in/sign-up'); + }; + + return ( + +
+ +
+ 雀乐音乐人 + 一起 记录独立音乐 + +
+
+ + ); +} + +export default Home; diff --git a/src/app/(artists-settle-in)/artists-settle-in/sign-up/components/StepArtistInfo/index.module.css b/src/app/(artists-settle-in)/artists-settle-in/sign-up/components/StepArtistInfo/index.module.css new file mode 100644 index 0000000..28d764f --- /dev/null +++ b/src/app/(artists-settle-in)/artists-settle-in/sign-up/components/StepArtistInfo/index.module.css @@ -0,0 +1,16 @@ +.formWrap { + width: 800px; + background-color: #fff; + border-radius: 16px; + padding-top: 39px; + padding-bottom: 38px; + padding-left: 30px; + padding-right: 47px; + margin-bottom: 54px; + box-sizing: border-box; +} + +.formWrap .submitWrap { + text-align: center; + margin-top: 20px; +} diff --git a/src/app/(artists-settle-in)/artists-settle-in/sign-up/components/StepArtistInfo/index.tsx b/src/app/(artists-settle-in)/artists-settle-in/sign-up/components/StepArtistInfo/index.tsx new file mode 100644 index 0000000..a1e580a --- /dev/null +++ b/src/app/(artists-settle-in)/artists-settle-in/sign-up/components/StepArtistInfo/index.tsx @@ -0,0 +1,112 @@ +'use client'; + +import { Radio, Message, Form, Button } from '@arco-design/web-react'; + +import { + FormArtistName, + FormArtistAvatar, + FormHomepageBackground, + FormBackendScreenshot, + FormAddress, + FormStyle, + FormType, + FormDescription, + FormUserName, + FormPassword, +} from '@/components/ArtistsSettleIn/FormArtistInfo'; + +import styles from './index.module.css'; + +import { apiArtistsSignUp } from '@/services'; + +const { useForm, useWatch, Item: FormItem } = Form; + +function StepArtistInfo() { + const [form] = useForm(); + const agree = useWatch('agree', form); + + const handleSubmit = () => { + form + .validate() + .then(async (values) => { + if (!agree) { + Message.warning('请阅读并同意《雀乐音乐用户服务协议》'); + return; + } + const { address, avatar, backgroundImage, description, nickName, password, screenshot, style, type, userName } = + values; + + const oParam = { + address, + avatar: avatar?.[0]?.response?.data?.fullUrl, + backgroundImage: backgroundImage?.[0]?.response?.data?.fullUrl, + // bandUserId: '', + description, + nickName, + password, + screenshot: screenshot?.[0]?.response?.data?.fullUrl, + style, + type, + userName, + }; + + const res = await apiArtistsSignUp(oParam); + if (res.code === 200) { + // setTotal(res.data.total); + // setsongList(res.data.rows); + Message.success('申请成功'); + } + }) + .catch((err) => { + console.log(err); + }); + }; + + return ( +
{ + // console.log(v, vs); + // }} + // onSubmit={handleSubmit} + > + {/* 歌手名 */} + + {/* 艺人头像 */} + + {/* 主页背景 */} + + {/* 后台截图 */} + + {/* 所在地区 */} + + {/* 流派/风格 */} + + {/* 类型 */} + + {/* 艺人简介 */} + + {/* 后台登录名 */} + + {/* 登录密码 */} + + + + 同意 + 《雀乐音乐用户服务协议》 + + + + + + + ); +} + +export default StepArtistInfo; diff --git a/src/app/(artists-settle-in)/artists-settle-in/sign-up/components/StepPolicy/index.module.css b/src/app/(artists-settle-in)/artists-settle-in/sign-up/components/StepPolicy/index.module.css new file mode 100644 index 0000000..67ce8d7 --- /dev/null +++ b/src/app/(artists-settle-in)/artists-settle-in/sign-up/components/StepPolicy/index.module.css @@ -0,0 +1,39 @@ +.policy { + width: 800px; + background-color: #fff; + border-radius: 16px; + padding-top: 39px; + padding-bottom: 38px; + box-sizing: border-box; +} + +.policy .policyTitle { + font-family: PingFang SC; + font-size: 17px; + font-weight: 600; + line-height: 20px; + padding-left: 34px; + flex-shrink: 0; +} + +.policy .policyCont { + padding-left: 34px; + padding-right: 68px; + color: #4e5969; + font-family: PingFang SC; + font-size: 12px; + font-weight: 400; + line-height: 20px; +} + +.nextStep { + width: 100%; + display: flex; + justify-content: space-between; + align-items: center; + margin-top: 30px; +} + +.nextStep .policyName { + font-weight: 500; +} diff --git a/src/app/(artists-settle-in)/artists-settle-in/sign-up/components/StepPolicy/index.tsx b/src/app/(artists-settle-in)/artists-settle-in/sign-up/components/StepPolicy/index.tsx new file mode 100644 index 0000000..fe1f0d6 --- /dev/null +++ b/src/app/(artists-settle-in)/artists-settle-in/sign-up/components/StepPolicy/index.tsx @@ -0,0 +1,65 @@ +'use client'; + +import React, { memo, useState } from 'react'; + +import { Typography, Button, Radio, Message } from '@arco-design/web-react'; + +import styles from './index.module.css'; + +interface StepPolicyProps { + onNext: () => void; +} + +const { Title } = Typography; + +function StepPolicy({ onNext }: StepPolicyProps) { + const [agree, setAgree] = useState(false); + + const handleNext = () => { + if (!agree) { + Message.warning('请阅读并同意《用户服务协议》'); + } else { + onNext?.(); + } + }; + + return ( + <> +
+ + 用户隐私和服务条款 + +
+ 欢迎使用雀乐音乐为您提供的雀乐音乐【版权管理及运营服务】(以下可称为“本服务”)。请您(以下也可称为“贵方”)仔细阅读以下全部内容(特别是粗体下划线标注的内容)。如贵方使用雀乐音乐版权管理及运营服务,即表示贵方与雀乐公司已达成协议,自愿接受本服务条款所有内容。服务条款是雀乐公司和贵方所约定的规范双方权利和义务的具有法律效力的电子协议,下称“本服务条款”。除非贵方与雀乐公司另有其他约定,贵方与雀乐公司之间的权利和义务均适用本服务条款。贵方勾选“我同意 + ”,即表示贵方已经仔细阅读、充分理解并完全地毫无保留地接受本服务条款的所有条款。 +
+
+ 一、总则 +
+ 贵方根据雀乐音乐要求及规则以版权公司身份申请入驻雀乐音乐版权服务平台(也可简称“本平台”),并在本平台从事音乐版权管理及/其他音乐经纪事务。本平台有权独立决定是否通过贵方的入驻申请及向贵方提供的服务内容。贵方同意本服务条款并按照页面提示完成全部的账号权限开通流程并通过雀乐公司审核后,即可使用本服务。 +
+
+ 二、账号登录及使用 +
+ 1、贵方根据本服务条款申请成为本平台入驻版权公司时,应按照本平台要求提供及完善相应主体信息资料。贵方须提供真实、及时、详尽及准确的资料,包括但不限于公司介绍、主体名称、营业执照、联系人、联系方式、运营者授权委托书、法定代表人相关信息等(以下简称“公司信息”)。如公司信息有任何变动,贵方须及时在本平台上予以更新。如本平台要求,贵方还应向本平台提交与原件核对一致并加盖贵方公章的纸质文件。贵方确认,若本平台给予贵方版权公司资格的,则贵方信息以贵方提交的公司信息为准。 +
+ 2、贵方入驻为本平台版权公司时可通过经贵方委托之运营者的雀乐音乐用户账号提出入驻申请。本平台核对贵方提供的运营者授权委托书信息与贵方运营者使用之用户账号信息等一致无误后可通过贵方运营者提交的申请,贵方运营者可以该用户账号登录本平台。 +
+ 3、贵方应维持密码及账号的机密安全,如果贵方未保管好账号和密码而对雀乐音乐用户、本平台或第三方造成损害,贵方将负全部责任。贵方同意若发现任何非法使用用户账号或安全漏洞的情况,有义务立即通告本平台。 +
+ 4、若贵方提供的公司信息不准确、不真实、含有违法或不良信息的,本平台有权不给予贵方入驻版权公司资格、暂停贵方入驻版权公司权限使用或注销贵方入驻版权公司资格等。同时,本平台对贵方信息的核实仅为形式审核,贵方仍需独立对公司信息的真实性、合法性、准确性、有效性承担全部法律责任。 +
+
+
+ setAgree(checked)}> + 同意《用户服务协议》 + + +
+ + ); +} + +export default memo(StepPolicy); diff --git a/src/app/(artists-settle-in)/artists-settle-in/sign-up/page.tsx b/src/app/(artists-settle-in)/artists-settle-in/sign-up/page.tsx new file mode 100644 index 0000000..9faa62a --- /dev/null +++ b/src/app/(artists-settle-in)/artists-settle-in/sign-up/page.tsx @@ -0,0 +1,35 @@ +'use client'; + +import React, { useCallback, useState } from 'react'; + +import { Layout, Typography } from '@arco-design/web-react'; + +import Footer from '@/components/ArtistsSettleIn/Footer'; +import Header from '@/components/ArtistsSettleIn/Header'; + +import StepArtistInfo from './components/StepArtistInfo'; +import StepPolicy from './components/StepPolicy'; +import styles from './sign-up.module.css'; + +const Content = Layout.Content; +const { Title } = Typography; + +function SignUp() { + const [step, setStep] = useState('1'); + const handle2Step2 = useCallback(() => setStep('2'), []); + return ( + +
+ +
+ 欢迎入驻雀乐音乐人 + {step === '1' && } + {step === '2' && } +
+
+