diff --git a/web/app.vue b/web/app.vue index c5dfb750f..be895ec1c 100644 --- a/web/app.vue +++ b/web/app.vue @@ -8,6 +8,7 @@ diff --git a/web/app/api/article.ts b/web/app/api/article.ts deleted file mode 100644 index c7a2cebc1..000000000 --- a/web/app/api/article.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * 文章列表 - */ -export function getArticleList(params: Record) { - return request.get('article/article', params) -} - -/** - * 文章列表 - */ -export function getArticleAll(params: Record) { - return request.get('article/article/all', params) -} - -/** - * 文章详情 - */ -export function getArticleDetail(id: number) { - return request.get(`article/article/${id}`) -} - -/** - * 文章分类 - */ -export function getArticleCategory() { - return request.get('article/category') -} \ No newline at end of file diff --git a/web/app/api/auth.ts b/web/app/api/auth.ts index 02c8f7c44..7a01baee0 100644 --- a/web/app/api/auth.ts +++ b/web/app/api/auth.ts @@ -31,7 +31,7 @@ export function logout() { */ export function usernameRegister(data: AnyObject) { let url = 'register' - data.pid && (url += `?pid=${data.pid}`) + data.pid && (url += `?pid=${ data.pid }`) return request.post(url, data) } @@ -40,7 +40,7 @@ export function usernameRegister(data: AnyObject) { */ export function mobileRegister(data: AnyObject) { let url = 'register/mobile' - data.pid && (url += `?pid=${data.pid}`) + data.pid && (url += `?pid=${ data.pid }`) return request.post(url, data) } @@ -63,7 +63,7 @@ export function weappLogin(data: AnyObject) { */ export function bind(data: AnyObject) { let url = 'bind' - data.pid && (url += `?pid=${data.pid}`) + data.pid && (url += `?pid=${ data.pid }`) return request.post(url, data) } @@ -79,4 +79,11 @@ export function scanlogin() { */ export function checkscan(data: AnyObject) { return request.get('checkscan', data) -} \ No newline at end of file +} + +/** + * 校验扫码信息 + */ +export function wechatCheck() { + return request.get('wechat/check') +} diff --git a/web/app/api/member.ts b/web/app/api/member.ts index acf58fb1d..41d9c52c0 100644 --- a/web/app/api/member.ts +++ b/web/app/api/member.ts @@ -6,7 +6,7 @@ export function getMemberInfo() { * 会员信息修改 */ export function modifyMember(data: AnyObject) { - return request.put(`member/modify/${data.field}`, data) + return request.put(`member/modify/${ data.field }`, data) } /** @@ -16,6 +16,13 @@ export function getPointList(data: AnyObject) { return request.get('member/account/point', data) } +/** + * 获取个人积分 + */ +export function getMemberAccountPointcount() { + return request.get(`member/account/pointcount`) +} + /** * 获取余额流水 */ @@ -23,9 +30,23 @@ export function getBalanceList(data: AnyObject) { return request.get('member/account/balance', data) } +/** + * 获取余额流水 + */ +export function getBalanceListAll(data: AnyObject) { + return request.get('member/account/balance_list', data) +} + /** * 登录会员绑定手机号 */ export function bindMobile(data: AnyObject) { return request.put('member/mobile', data) -} \ No newline at end of file +} + +/** + * 获取会员等级 + */ +export function getMemberLevel() { + return request.get(`member/level`); +} diff --git a/web/app/api/system.ts b/web/app/api/system.ts index 575563bb5..ca32fddf9 100644 --- a/web/app/api/system.ts +++ b/web/app/api/system.ts @@ -23,7 +23,7 @@ export function wechatSync(data: AnyObject) { * 获取协议信息 */ export function getAgreementInfo(key: string) { - return request.get(`agreement/${key}`) + return request.get(`agreement/${ key }`) } /** @@ -37,7 +37,7 @@ export function resetPassword(data: AnyObject) { * 发送短信验证码 */ export function sendSms(data: AnyObject) { - return request.post(`send/mobile/${data.type}`, data) + return request.post(`send/mobile/${ data.type }`, data) } /** @@ -74,3 +74,23 @@ export function getCopyRight() { export function getSiteInfo() { return request.get('site') } +/** + * 获取广告位 + */ +export function getAdvInfo(params: Record) { + return request.get(`web/adv`, params, { showErrorMessage: false }) +} + +/** + * 获取导航列表 + */ +export function getNavList() { + return request.get(`web/nav`) +} + +/** + * 获取友情链接 + */ +export function getFriendlyLink() { + return request.get(`web/friendly_link`) +} diff --git a/web/app/api/verify.ts b/web/app/api/verify.ts new file mode 100644 index 000000000..80d7f9a71 --- /dev/null +++ b/web/app/api/verify.ts @@ -0,0 +1,43 @@ +import request from '@/utils/request' + +/** + * 获取核销信息 + */ +export function getVerifyCode(type: string, params: AnyObject) { + return request.get('verify', { type, data: params }) +} + +/** + * 获取核销记录 + */ +export function getVerifyRecords(params: Record) { + return request.get('verify_records', params) +} + +/** + * 判断是否是核销员 + */ +export function getCheckVerifier() { + return request.get('check_verifier') +} + +/** + * 获取核销信息 + */ +export function getVerifierInfo(code: string) { + return request.get(`get_verify_by_code/${ code }`) +} + +/** + * 核销 + */ +export function verify(code: string) { + return request.post(`verify/${ code }`, {}, { showSuccessMessage: true, showErrorMessage: true }) +} + +/** + * 获取核销详情 + */ +export function getVerifyDetail(code: string) { + return request.get(`verify_detail/${ code }`, {}, { showErrorMessage: true }) +} diff --git a/web/app/assets/images/index/logo.jpg b/web/app/assets/images/index/logo.jpg deleted file mode 100644 index ec17c5ea0..000000000 Binary files a/web/app/assets/images/index/logo.jpg and /dev/null differ diff --git a/web/app/lang/zh-cn/app.member.balance.json b/web/app/lang/zh-cn/app.member.balance.json new file mode 100644 index 000000000..009987739 --- /dev/null +++ b/web/app/lang/zh-cn/app.member.balance.json @@ -0,0 +1,8 @@ +{ + "myBalance": "我的余额", + "accountType": "账户类型", + "changeInAmount": "金额变化", + "modeOfOccurrence": "发生方式", + "remark": "备注", + "occurrenceTime": "发生时间" +} \ No newline at end of file diff --git a/web/app/lang/zh-cn/app.member.center.json b/web/app/lang/zh-cn/app.member.center.json new file mode 100644 index 000000000..d8890518f --- /dev/null +++ b/web/app/lang/zh-cn/app.member.center.json @@ -0,0 +1,15 @@ +{ + "personageInfo": "个人信息", + "memberHeadimg": "会员头像", + "edit": "修改", + "nickname": "会员昵称", + "username":"用户名", + "mobile":"手机号", + "updateMobile":"修改手机号", + "mobilePlaceholder": "请输入手机号", + "mobileTips":"请输入正确的手机号", + "mobileError": "请输入正确的手机号", + "codePlaceholder": "请输入手机验证码", + "cancel": "取消", + "confirm": "确定" +} \ No newline at end of file diff --git a/web/app/lang/zh-cn/app.member.point.json b/web/app/lang/zh-cn/app.member.point.json new file mode 100644 index 000000000..2adbb845d --- /dev/null +++ b/web/app/lang/zh-cn/app.member.point.json @@ -0,0 +1,8 @@ +{ + "myPoint": "我的积分", + "accountType": "账户类型", + "changeInAmount": "金额变化", + "modeOfOccurrence": "发生方式", + "remark": "备注", + "occurrenceTime": "发生时间" +} \ No newline at end of file diff --git a/web/app/lang/zh-cn/auth.bind.json b/web/app/lang/zh-cn/auth.bind.json index 8355982cf..e2fdaff3b 100644 --- a/web/app/lang/zh-cn/auth.bind.json +++ b/web/app/lang/zh-cn/auth.bind.json @@ -1,5 +1,4 @@ { - "bind": "绑定", "binding": "绑定中", "usernamePlaceholder": "请输入账号", diff --git a/web/app/lang/zh-cn/common.json b/web/app/lang/zh-cn/common.json index 34ca92775..6c50f4416 100644 --- a/web/app/lang/zh-cn/common.json +++ b/web/app/lang/zh-cn/common.json @@ -14,7 +14,7 @@ "privacyAgreement": "隐私协议", "protocolNotConfigured": "未配置协议", "siteClose": "站点已关闭", - "noSite": "站点不存在", + "request": { "unknownError": "未知错误", "400": "错误的请求", @@ -32,4 +32,4 @@ "505": "http版本不支持该请求", "timeout": "网络请求超时!" } -} \ No newline at end of file +} diff --git a/web/app/lang/zh-cn/member.center.json b/web/app/lang/zh-cn/member.center.json index bfb920a2a..d8890518f 100644 --- a/web/app/lang/zh-cn/member.center.json +++ b/web/app/lang/zh-cn/member.center.json @@ -3,6 +3,13 @@ "memberHeadimg": "会员头像", "edit": "修改", "nickname": "会员昵称", + "username":"用户名", + "mobile":"手机号", + "updateMobile":"修改手机号", + "mobilePlaceholder": "请输入手机号", + "mobileTips":"请输入正确的手机号", + "mobileError": "请输入正确的手机号", + "codePlaceholder": "请输入手机验证码", "cancel": "取消", "confirm": "确定" } \ No newline at end of file diff --git a/web/app/lang/zh-cn/member.json b/web/app/lang/zh-cn/member.json index ff4ec393a..85afbb250 100644 --- a/web/app/lang/zh-cn/member.json +++ b/web/app/lang/zh-cn/member.json @@ -5,5 +5,6 @@ "point": "积分", "balance": "余额", "looseChange": "零钱", - "notBound": "未绑定" + "notBound": "未绑定", + "coupon":"优惠劵" } \ No newline at end of file diff --git a/web/app/lang/zh-cn/pages.json b/web/app/lang/zh-cn/pages.json index f4924cb0e..a781442ee 100644 --- a/web/app/lang/zh-cn/pages.json +++ b/web/app/lang/zh-cn/pages.json @@ -1,20 +1,34 @@ { - "pages": { - "index": { - "index": "首页" - }, - "auth": { - "login": "登录", - "register": "登录", - "bind": "手机号绑定" - }, - "member": { - "index": "欢迎页", - "center": "个人中心" - }, - "site": { - "close": "站点已关闭", - "nosite": "站点不存在" - } + "pages": { + "article": { + "list": "文章资讯", + "detail": "文章详情" + }, + "index": { + "index": "首页" + }, + "app":{ + "index": "首页", + "member":{ + "center": "个人中心", + "point": "我的积分", + "balance": "我的余额" + } + }, + "auth": { + "agreement": "协议", + "login": "登录", + "register": "注册", + "bind": "手机号绑定" + }, + "member": { + "index": "欢迎页", + "center": "个人中心", + "point": "我的积分", + "balance": "我的余额" + }, + "site": { + "close": "站点已关闭" } -} + } +} \ No newline at end of file diff --git a/web/app/pages/article/detail.vue b/web/app/pages/article/detail.vue deleted file mode 100644 index dfccdc05f..000000000 --- a/web/app/pages/article/detail.vue +++ /dev/null @@ -1,78 +0,0 @@ - - - - - diff --git a/web/app/pages/article/list.vue b/web/app/pages/article/list.vue deleted file mode 100644 index 66033fd95..000000000 --- a/web/app/pages/article/list.vue +++ /dev/null @@ -1,162 +0,0 @@ - - - - - diff --git a/web/app/pages/auth/agreement.vue b/web/app/pages/auth/agreement.vue index 1d4b195b4..b35f5435d 100644 --- a/web/app/pages/auth/agreement.vue +++ b/web/app/pages/auth/agreement.vue @@ -1,29 +1,46 @@ diff --git a/web/app/pages/auth/bind.vue b/web/app/pages/auth/bind.vue index 388be7c94..998b47791 100644 --- a/web/app/pages/auth/bind.vue +++ b/web/app/pages/auth/bind.vue @@ -36,10 +36,12 @@ import { bind } from '@/app/api/auth' import { bindMobile } from '@/app/api/member' import useMemberStore from '@/stores/member' import { FormInstance } from 'element-plus' +import { useRouter } from 'vue-router' + definePageMeta({ layout: "container" }); - +let router = useRouter() const memberStore = useMemberStore() const info = computed(() => memberStore.info) const loading = ref(false) @@ -88,7 +90,7 @@ const handleRegister = async () => { request(formData).then((res: responseResult) => { memberStore.setToken(res.data.token) - useLogin().handleLoginBack() + router.push({ path: '/' }) }).catch(() => { loading.value = false captcha.refresh() diff --git a/web/app/pages/auth/login.vue b/web/app/pages/auth/login.vue index 5311b904d..a50ef7424 100644 --- a/web/app/pages/auth/login.vue +++ b/web/app/pages/auth/login.vue @@ -1,21 +1,7 @@ \ No newline at end of file + diff --git a/web/app/pages/member/balance.vue b/web/app/pages/member/balance.vue index f984ad29a..e7d655f40 100644 --- a/web/app/pages/member/balance.vue +++ b/web/app/pages/member/balance.vue @@ -1,50 +1,78 @@ diff --git a/web/app/pages/member/center.vue b/web/app/pages/member/center.vue index 25cf61b97..64aca49b4 100644 --- a/web/app/pages/member/center.vue +++ b/web/app/pages/member/center.vue @@ -1,35 +1,47 @@ + + + + + + + + + + + + + + + @@ -50,13 +84,12 @@ import { reactive, ref, computed } from 'vue' import useMemberStore from '@/stores/member' import useAppStore from '@/stores/app' -import { modifyMember } from '@/app/api/member' -import { ElMessage, UploadFile, UploadFiles } from 'element-plus' +import { modifyMember, bindMobile, getMemberLevel} from '@/app/api/member' +import { ElMessage, ElMessageBox, UploadFile, UploadFiles, FormInstance } from 'element-plus' import request from '@/utils/request' import storage from '@/utils/storage' import { getToken } from '@/utils/common' - const memberStore = useMemberStore() const loading = ref(true) @@ -66,14 +99,28 @@ const updateNickname = reactive({ value: '' }) -const info = computed(() => { +const info:any = computed(() => { updateNickname.value = memberStore.info?.nickname; if (memberStore.info) loading.value = false; return memberStore.info; }) const appStore = useAppStore() -definePageMeta({ middleware: 'auth' }) +// 获取会员等级 +let currentLevel = ref('') +const getMemberLevelFn = () =>{ + getMemberLevel().then((res:any) =>{ + if(info.value && res.data && res.data.length){ + res.data.forEach((item:any,index:number)=>{ + if(item.level_id == info.value.member_level){ + currentLevel.value = item.level_name + } + }) + } + }) +} +getMemberLevelFn() +const uploadRef = ref(null) const upload = computed(() => { const headers: Record = {} headers.token = getToken() @@ -84,12 +131,13 @@ const upload = computed(() => { headers, onSuccess: (response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) => { let img = uploadFile?.response?.data?.url; - if (response.code == 200) { + if (response.code == 200 || response.code == 1) { modifyMember({ field: 'headimg', value: img }).then(() => { memberStore.info.headimg = img + uploadRef.value.clearFiles() }) } else { uploadFile.status = 'fail' @@ -110,6 +158,84 @@ const updateNicknameConfirm = () => { updateNickname.modal = false }) } + +// 手机号 +const updateMobileDialog = ref(false) +const formData = reactive({ + mobile: '', + mobile_code: '', + mobile_key: '' +}) +const mobileLoading = ref(false) +const formRef = ref() +const formRules = computed(() => { + return { + 'mobile': [ + { + required: true, + message: t('mobilePlaceholder'), + trigger: ['blur', 'change'], + }, + { + validator(rule: any, value: string, callback: any) { + const phonePattern = /^1[3456789]\d{9}$/ + if (!phonePattern.test(value)) { + return callback(new Error(t('mobileTips'))) + } else { + return callback() + } + }, + message: t('mobileError'), + trigger: ['blur'], + } + ], + 'mobile_code': { + required: true, + message: t('codePlaceholder'), + trigger: ['change'] + } + } +}) + +const smsCodeRef = ref(null) +const sendSmsCode = async () => { + await formRef.value?.validateField('mobile', async (valid, fields) => { + if (valid) { + smsCodeRef.value?.send() + } + }) +} +const updateMobileConfirm = async () => { + await formRef.value?.validate(async (valid, fields) => { + if (valid) { + if (mobileLoading.value) return + mobileLoading.value = true + bindMobile(formData).then((res) => { + memberStore.getMemberInfo() + mobileLoading.value = false + updateMobileDialog.value = false + }).catch(() => { + mobileLoading.value = false + }) + } + }) +} + +// 退出登录 +const logoutFn = () => { + ElMessageBox.confirm('您确定要退出账号吗?', '提示', + { + confirmButtonText: '确定', + cancelButtonText: '取消', + confirmButtonClass:'!bg-[var(--el-color-primary)] !border-[var(--el-color-primary)]', + cancelButtonClass:'!border-[#dcdfe6]', + type: 'warning' + } + ).then(() => { + memberStore.logout() + navigateTo(`/`) + }) +} \ No newline at end of file diff --git a/web/app/router.options.ts b/web/app/router.options.ts index 4b3e0028f..6db69b6c5 100644 --- a/web/app/router.options.ts +++ b/web/app/router.options.ts @@ -5,7 +5,8 @@ const addonRoutes = import.meta.globEager('@/addon/**/pages/routes.ts') for (const key in addonRoutes) { const addon = key.split('/')[2] - routes.push(...addonRoutes[key].default.map((item) => { + // 先加载插件路由后加载app路由 + routes.unshift(...addonRoutes[key].default.map((item) => { item.meta = item.meta ? Object.assign(item.meta, { addon }) : { addon } return item })) diff --git a/web/assets/images/camera.png b/web/assets/images/camera.png new file mode 100644 index 000000000..41b03e0f3 Binary files /dev/null and b/web/assets/images/camera.png differ diff --git a/web/assets/images/default-logo.png b/web/assets/images/default-logo.png deleted file mode 100644 index 11f4e6333..000000000 Binary files a/web/assets/images/default-logo.png and /dev/null differ diff --git a/web/assets/images/default_headimg.png b/web/assets/images/default_headimg.png index f4f8cb31b..3c4876017 100644 Binary files a/web/assets/images/default_headimg.png and b/web/assets/images/default_headimg.png differ diff --git a/web/assets/images/fiexd/cart.png b/web/assets/images/fiexd/cart.png new file mode 100644 index 000000000..5c86b0bc4 Binary files /dev/null and b/web/assets/images/fiexd/cart.png differ diff --git a/web/assets/images/fiexd/customer.png b/web/assets/images/fiexd/customer.png new file mode 100644 index 000000000..8b844bd4a Binary files /dev/null and b/web/assets/images/fiexd/customer.png differ diff --git a/web/assets/images/fiexd/member.png b/web/assets/images/fiexd/member.png new file mode 100644 index 000000000..0e46224f1 Binary files /dev/null and b/web/assets/images/fiexd/member.png differ diff --git a/web/assets/images/fiexd/mobile.png b/web/assets/images/fiexd/mobile.png new file mode 100644 index 000000000..949020b7a Binary files /dev/null and b/web/assets/images/fiexd/mobile.png differ diff --git a/web/assets/images/fiexd/top.png b/web/assets/images/fiexd/top.png new file mode 100644 index 000000000..d971a00e7 Binary files /dev/null and b/web/assets/images/fiexd/top.png differ diff --git a/web/assets/images/pay/pay.png b/web/assets/images/pay/pay.png new file mode 100644 index 000000000..5bff3e0de Binary files /dev/null and b/web/assets/images/pay/pay.png differ diff --git a/web/assets/images/user.png b/web/assets/images/user.png new file mode 100644 index 000000000..bb09f5ec3 Binary files /dev/null and b/web/assets/images/user.png differ diff --git a/web/assets/styles/OPPOSans-M.ttf b/web/assets/styles/OPPOSans-M.ttf new file mode 100644 index 000000000..e13e81f92 Binary files /dev/null and b/web/assets/styles/OPPOSans-M.ttf differ diff --git a/web/assets/styles/OPPOSans-R.ttf b/web/assets/styles/OPPOSans-R.ttf new file mode 100644 index 000000000..ddadfba63 Binary files /dev/null and b/web/assets/styles/OPPOSans-R.ttf differ diff --git a/web/assets/styles/common.scss b/web/assets/styles/common.scss index 0128d8710..bee148175 100644 --- a/web/assets/styles/common.scss +++ b/web/assets/styles/common.scss @@ -1,4 +1,64 @@ +@font-face { + font-family: 'oppoSans-M'; + src: url('@/assets/styles/OPPOSans-M.ttf') format('truetype'); +} +@font-face { + font-family: 'oppoSans-R'; + src: url('@/assets/styles/OPPOSans-R.ttf') format('truetype'); +} +@font-face { + font-family: 'myFont'; + src: url('@/assets/styles/custom.ttf') format('truetype'); +} + +.oppoSans-M{ + font-family: 'oppoSans-M'; + font-weight: 500; +} +.oppoSans-R{ + font-family: 'oppoSans-R'; +} +.price-font{ + font-family: 'myFont'; +} +body{ + font-family: 'oppoSans-M'; + background-color: #f5f5f5; + color: #303133; +} +div{ + box-sizing: border-box; +} +// 标签 +.tag-item{ + display: flex; + justify-content: center; + align-items: center; + box-sizing: border-box; + font-size: 12px; + border-radius: 6px; +} +.flex-center { + align-items: center; + display: flex; + justify-content: center; +} .main-container { width: 1200px; margin: 0 auto; -} \ No newline at end of file +} + +/* 多行超出隐藏 */ +.multi-hidden { + word-break: break-all; + text-overflow: ellipsis; + overflow: hidden; + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; +} + + +.el-button:focus-visible{ + outline: none !important; +} diff --git a/web/assets/styles/custom.ttf b/web/assets/styles/custom.ttf new file mode 100644 index 000000000..6483758ed Binary files /dev/null and b/web/assets/styles/custom.ttf differ diff --git a/web/assets/styles/iconfont.css b/web/assets/styles/iconfont.css index 952ace918..7226b41ae 100644 --- a/web/assets/styles/iconfont.css +++ b/web/assets/styles/iconfont.css @@ -1,178 +1,455 @@ @font-face { font-family: "iconfont"; /* Project id 4174881 */ - src: url('//at.alicdn.com/t/c/font_4174881_3g0m7bfru3s.woff2?t=1703736772336') format('woff2'), - url('//at.alicdn.com/t/c/font_4174881_3g0m7bfru3s.woff?t=1703736772336') format('woff'), - url('//at.alicdn.com/t/c/font_4174881_3g0m7bfru3s.ttf?t=1703736772336') format('truetype'); -} - -.iconfont { + src: url('//at.alicdn.com/t/c/font_4174881_kzu1qah5r4j.woff2?t=1733801795296') format('woff2'), + url('//at.alicdn.com/t/c/font_4174881_kzu1qah5r4j.woff?t=1733801795296') format('woff'), + url('//at.alicdn.com/t/c/font_4174881_kzu1qah5r4j.ttf?t=1733801795296') format('truetype'); + } + + .iconfont { font-family: "iconfont" !important; font-size: 16px; font-style: normal; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; -} - -.icon-shoucang:before { + } + + .icon-gouwucheV6xx6:before { + content: "\e835"; + } + + .icon-zuoV6xx:before { + content: "\e630"; + } + + .icon-a-guanbi34:before { + content: "\e82b"; + } + + .icon-zujiV6xx:before { + content: "\e765"; + } + + .icon-gouwucheV6xx-2:before { + content: "\e6fe"; + } + + .icon-woV6xx1:before { + content: "\e709"; + } + + .icon-mima:before { + content: "\e65e"; + } + + .icon-shoujiV6xx:before { + content: "\e7a1"; + } + + .icon-tubiaoV6-3:before { + content: "\e664"; + } + + .icon-youV6xx:before { + content: "\e631"; + } + + .icon-riliV6xx:before { + content: "\e73e"; + } + + .icon-xiugaiV6xx:before { + content: "\e659"; + } + + .icon-shanchu-yuangaizhiV6xx:before { + content: "\e6e7"; + } + + .icon-shenhezhong:before { + content: "\e6cb"; + } + + .icon-jishibenV6xx:before { + content: "\e6fb"; + } + + .icon-fapiao:before { + content: "\e658"; + } + + .icon-checkbox_nol:before { + content: "\e62d"; + } + + .icon-shangV6xx-1:before { + content: "\e641"; + } + + .icon-xiaV6xx:before { + content: "\e643"; + } + + .icon-aixin1:before { + content: "\e663"; + } + + .icon-fujian:before { + content: "\e611"; + } + + .icon-group-num:before { + content: "\e603"; + } + + .icon-zhaopian:before { + content: "\e618"; + } + + .icon-duanxinV6xx1:before { + content: "\e654"; + } + + .icon-aixin:before { + content: "\e62a"; + } + + .icon-paixujiantoushang:before { + content: "\e60d"; + } + + .icon-paixujiantouxia:before { + content: "\e60e"; + } + + .icon-xuanze1:before { + content: "\e616"; + } + + .icon-weixinzhifu:before { + content: "\e650"; + } + + .icon-zhifubaozhifu:before { + content: "\e627"; + } + + .icon-yuezhifu:before { + content: "\e629"; + } + + .icon-shijian_o:before { + content: "\ebb1"; + } + + .icon-shangjiantou:before { + content: "\e79d"; + } + + .icon-xiajiantou1:before { + content: "\e79e"; + } + + .icon-shouye:before { + content: "\e626"; + } + + .icon-Vector-25:before { + content: "\e70b"; + } + + .icon-youhuiquan:before { + content: "\e623"; + } + + .icon-ruzhushenqing:before { + content: "\e624"; + } + + .icon-dizhiguanli:before { + content: "\e625"; + } + + .icon-shoucang1:before { + content: "\e620"; + } + + .icon-shoucang2:before { + content: "\e621"; + } + + .icon-fanhui:before { + content: "\e61c"; + } + + .icon-sousuo:before { + content: "\e61e"; + } + + .icon-gouwuche1:before { + content: "\e61f"; + } + + .icon-yanjing_kai:before { + content: "\e61b"; + } + + .icon-shijian:before { + content: "\e619"; + } + + .icon-bofang:before { + content: "\e606"; + } + + .icon-weixin1:before { + content: "\e6ea"; + } + + .icon-gengduo-lan:before { + content: "\e615"; + } + + .icon-shoucang01:before { + content: "\ea33"; + } + + .icon-a-dingdan2:before { + content: "\eba3"; + } + + .icon-a-qian2:before { + content: "\eb44"; + } + + .icon-caigou6:before { + content: "\eba1"; + } + + .icon-a-zhibao5:before { + content: "\ebc9"; + } + + .icon-shizhong:before { + content: "\e74f"; + } + + .icon-zhanghaodenglu:before { + content: "\e698"; + } + + .icon-mianxing_denglu_erweimadenglu:before { + content: "\e6fd"; + } + + .icon-yishoucang:before { + content: "\e60c"; + } + + .icon-dizhi-tianjia:before { + content: "\e622"; + } + + .icon-xuanzhong4:before { + content: "\e9ec"; + } + + .icon-jiageshaixuanshang:before { + content: "\e612"; + } + + .icon-shangjiashijian:before { + content: "\e684"; + } + + .icon-kefu:before { + content: "\e657"; + } + + .icon-xiangshangjiantou:before { + content: "\e65d"; + } + + .icon-dijia:before { + content: "\e601"; + } + + .icon-zhifa:before { + content: "\e648"; + } + + .icon-hanghuo:before { + content: "\e61a"; + } + + .icon-pinzhong:before { + content: "\e62b"; + } + + .icon-gouwuche:before { + content: "\e652"; + } + + .icon-shoucang:before { content: "\e600"; -} - -.icon-geren:before { + } + + .icon-geren:before { content: "\e610"; -} - -.icon-c:before { + } + + .icon-c:before { content: "\e683"; -} - -.icon-wenhao:before { + } + + .icon-wenhao:before { content: "\e628"; -} - -.icon-jiahao:before { + } + + .icon-jiahao:before { content: "\e602"; -} - -.icon-biaoqian:before { + } + + .icon-biaoqian:before { content: "\e63d"; -} - -.icon-xiajiantou:before { + } + + .icon-xiajiantou:before { content: "\e63c"; -} - -.icon-rili1:before { + } + + .icon-rili1:before { content: "\e62f"; -} - -.icon-huangguan:before { + } + + .icon-huangguan:before { content: "\e6bb"; -} - -.icon-05_success:before { + } + + .icon-05_success:before { content: "\e6b2"; -} - -.icon-huojian1:before { + } + + .icon-huojian1:before { content: "\e6c0"; -} - -.icon-shouquanliebiao:before { + } + + .icon-shouquanliebiao:before { content: "\e696"; -} - -.icon-icon_huojian:before { + } + + .icon-icon_huojian:before { content: "\e694"; -} - -.icon-xiaoxi1:before { + } + + .icon-xiaoxi1:before { content: "\e695"; -} - -.icon-huojian:before { + } + + .icon-huojian:before { content: "\e693"; -} - -.icon-tishi2:before { + } + + .icon-tishi2:before { content: "\e6fc"; -} - -.icon-kaifazhe:before { + } + + .icon-kaifazhe:before { content: "\e692"; -} - -.icon-xiaoxi:before { + } + + .icon-xiaoxi:before { content: "\e690"; -} - -.icon--_shengchengyanshi:before { + } + + .icon--_shengchengyanshi:before { content: "\e68f"; -} - -.icon-tishi1:before { + } + + .icon-tishi1:before { content: "\e691"; -} - -.icon-dian:before { + } + + .icon-dian:before { content: "\ec1e"; -} - -.icon-huanyingye:before { + } + + .icon-huanyingye:before { content: "\e68e"; -} - -.icon-gerenxinxi:before { + } + + .icon-gerenxinxi:before { content: "\e6f4"; -} - -.icon-shimingrenzheng:before { + } + + .icon-shimingrenzheng:before { content: "\e6f9"; -} - -.icon-kaifashangzhongxin:before { + } + + .icon-kaifashangzhongxin:before { content: "\e6fa"; -} - -.icon-wodezhanghu:before { + } + + .icon-wodezhanghu:before { content: "\e6f8"; -} - -.icon-wodeshouquan:before { + } + + .icon-wodeshouquan:before { content: "\e6f6"; -} - -.icon-wodezhandian:before { + } + + .icon-wodezhandian:before { content: "\e6f5"; -} - -.icon-wodedingdan:before { + } + + .icon-wodedingdan:before { content: "\e6f2"; -} - -.icon-lingdang-xianxing:before { + } + + .icon-lingdang-xianxing:before { content: "\e8c0"; -} - -.icon-weixin:before { + } + + .icon-weixin:before { content: "\e62c"; -} - -.icon-fenxiang:before { + } + + .icon-fenxiang:before { content: "\e86e"; -} - -.icon-erweima:before { + } + + .icon-erweima:before { content: "\e680"; -} - -.icon-shoujihao:before { + } + + .icon-shoujihao:before { content: "\e62e"; -} - -.icon-tishi:before { + } + + .icon-tishi:before { content: "\e613"; -} - -.icon-shimingrenzheng-xian:before { + } + + .icon-shimingrenzheng-xian:before { content: "\e89c"; -} - -.icon-icon-selected:before { + } + + .icon-icon-selected:before { content: "\e61d"; -} - -.icon-yangshi_icon_tongyong_shield:before { + } + + .icon-yangshi_icon_tongyong_shield:before { content: "\e668"; -} - -.icon-xiangyoujiantou:before { + } + + .icon-xiangyoujiantou:before { content: "\e65f"; -} - -.icon-xiangzuojiantou:before { + } + + .icon-xiangzuojiantou:before { content: "\e660"; -} - -.icon-qiye:before { + } + + .icon-qiye:before { content: "\e60f"; -} + } + \ No newline at end of file diff --git a/web/assets/styles/index.scss b/web/assets/styles/index.scss index 71144330a..c43765b1e 100644 --- a/web/assets/styles/index.scss +++ b/web/assets/styles/index.scss @@ -1,2 +1,21 @@ @import 'iconfont.css'; -@import 'common.scss'; \ No newline at end of file +@import 'common.scss'; + +// 主色调修改 +:root{ + --el-color-primary: #EF000C; + --el-color-primary-light-3: #EF000C; + --el-color-primary-light-5: #f49991; + --el-color-primary-light-7: #f8c2bd; + --el-color-primary-light-8: #fbd6d3; + --el-color-primary-light-9: #fff; + --el-color-primary-dark-2: #EF000C; + --el-price:#E4221C; + // 圆角大小 + --rounded-xl: 100px; + --rounded-big: 16px; + --rounded-mid: 12px; + --rounded-med: 8px; + --rounded-small: 6px; +} + diff --git a/web/components/login-dialog/index.vue b/web/components/login-dialog/index.vue new file mode 100644 index 000000000..1a1260e90 --- /dev/null +++ b/web/components/login-dialog/index.vue @@ -0,0 +1,76 @@ + + + + diff --git a/web/components/login-dialog/login.vue b/web/components/login-dialog/login.vue new file mode 100644 index 000000000..bb0dd7b77 --- /dev/null +++ b/web/components/login-dialog/login.vue @@ -0,0 +1,278 @@ + + + + diff --git a/web/components/login-dialog/register.vue b/web/components/login-dialog/register.vue new file mode 100644 index 000000000..fcb4e1755 --- /dev/null +++ b/web/components/login-dialog/register.vue @@ -0,0 +1,271 @@ + + + + diff --git a/web/components/sidebar/index.vue b/web/components/sidebar/index.vue index a27879abf..876360edb 100644 --- a/web/components/sidebar/index.vue +++ b/web/components/sidebar/index.vue @@ -1,34 +1,64 @@ \ No newline at end of file diff --git a/web/components/sms-code/index.vue b/web/components/sms-code/index.vue index 72a7025cd..20db93d82 100644 --- a/web/components/sms-code/index.vue +++ b/web/components/sms-code/index.vue @@ -1,6 +1,6 @@