From 28ac396cb4f258d1ba9d69ee53a0a50575225f1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B2=B3=E9=B9=8F=E9=BE=99?= <1547476325@qq.com> Date: Wed, 6 Aug 2025 12:42:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=9C=80=E6=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 41 +- package.json | 3 +- src/api/index.ts | 36 +- src/api/learningCenter.ts | 35 +- src/api/memberCenter.ts | 14 +- src/api/mine.ts | 15 +- src/api/shop.ts | 63 +- src/api/user.ts | 6 +- src/components/zh-scroll/interface.ts | 22 +- src/components/zh-scroll/zh-scroll.vue | 828 +++++----- src/main.ts | 36 +- src/pages/index/ChatDialog.vue | 546 ++++--- src/pages/index/active/activeDetail.vue | 278 ++-- src/pages/index/active/activelist.vue | 358 ++-- src/pages/index/index.vue | 1446 +++++++++-------- .../index/shoppage/financialAssistance.vue | 388 ++--- .../index/shoppage/interactiveDetail.vue | 699 ++++---- src/pages/index/shoppage/interactiveZone.vue | 673 ++++---- src/pages/index/shoppage/jrbDetail.vue | 188 ++- src/pages/index/shoppage/makeAssistance.vue | 300 ++-- src/pages/index/shoppage/mediaDetail.vue | 326 ++-- src/pages/index/shoppage/mediaHelp.vue | 463 +++--- src/pages/index/shoppage/mtbmakeMessage.vue | 645 ++++---- src/pages/index/shoppage/shopHelp.vue | 118 +- src/pages/index/shoppage/shophelpDetail.vue | 262 ++- src/pages/index/specialSubject.vue | 1091 ++++++------- src/pages/index/tabsComm.vue | 225 ++- src/pages/index/ztdetail.vue | 153 +- src/pages/learningCenter/detail.vue | 482 +++--- src/pages/learningCenter/index.vue | 788 ++++----- src/pages/learningCenter/useTimeDiff.js | 46 +- src/pages/login/login.vue | 214 +-- src/pages/memberCenter/index.vue | 503 +++--- src/pages/memberCenter/inpart.vue | 1005 ++++++------ src/pages/mine/associatedDetail.vue | 165 +- src/pages/mine/associatedEnterprise.vue | 130 +- src/pages/mine/completeInformation.vue | 531 +++--- src/pages/mine/index.vue | 341 ++-- src/pages/mine/myApplication.vue | 363 ++--- src/pages/mine/myCourses.vue | 187 ++- src/pages/mine/porsonalinfo.vue | 698 ++++---- src/static/img/aiback.png | Bin 0 -> 925 bytes src/static/img/aiimg.png | Bin 0 -> 6817 bytes src/static/img/hdzq.png | Bin 1963 -> 2231 bytes src/static/img/xzs.png | Bin 4768 -> 3812 bytes src/static/tabbar/index_select.png | Bin 750 -> 680 bytes src/store/user.ts | 184 ++- src/utils/http.ts | 16 +- 48 files changed, 7499 insertions(+), 7412 deletions(-) create mode 100644 src/static/img/aiback.png create mode 100644 src/static/img/aiimg.png diff --git a/package-lock.json b/package-lock.json index 2d62d45..d329c90 100644 --- a/package-lock.json +++ b/package-lock.json @@ -28,6 +28,7 @@ "animate.css": "^4.1.1", "echarts": "^5.5.0", "pinia": "2.0.36", + "pnpm": "^10.14.0", "sass": "^1.63.2", "uview-plus": "^3.4.9", "vue": "^3.2.45", @@ -51,7 +52,6 @@ "eslint-plugin-prettier": "^5.0.0", "eslint-plugin-vue": "^9.16.1", "feng-uniapp-exploit": "^1.0.2", - "husky": "^8.0.0", "pinia-plugin-unistorage": "^0.0.17", "prettier": "^3.0.0", "sass-loader": "^10.4.1", @@ -7431,20 +7431,6 @@ "node": ">=10.17.0" } }, - "node_modules/husky": { - "version": "8.0.3", - "dev": true, - "license": "MIT", - "bin": { - "husky": "lib/bin.js" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/typicode" - } - }, "node_modules/iconv-lite": { "version": "0.4.24", "dev": true, @@ -9840,6 +9826,22 @@ "node": ">=4.0.0" } }, + "node_modules/pnpm": { + "version": "10.14.0", + "resolved": "https://registry.npmjs.org/pnpm/-/pnpm-10.14.0.tgz", + "integrity": "sha512-rSenlkG0nD5IGhaoBbqnGBegS74Go40X5g4urug/ahRsamiBJfV5LkjdW6MOfaUqXNpMOZK5zPMz+c4iOvhHSA==", + "license": "MIT", + "bin": { + "pnpm": "bin/pnpm.cjs", + "pnpx": "bin/pnpx.cjs" + }, + "engines": { + "node": ">=18.12" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, "node_modules/possible-typed-array-names": { "version": "1.1.0", "dev": true, @@ -17687,10 +17689,6 @@ "version": "2.1.0", "dev": true }, - "husky": { - "version": "8.0.3", - "dev": true - }, "iconv-lite": { "version": "0.4.24", "dev": true, @@ -19191,6 +19189,11 @@ "pngjs": { "version": "3.4.0" }, + "pnpm": { + "version": "10.14.0", + "resolved": "https://registry.npmjs.org/pnpm/-/pnpm-10.14.0.tgz", + "integrity": "sha512-rSenlkG0nD5IGhaoBbqnGBegS74Go40X5g4urug/ahRsamiBJfV5LkjdW6MOfaUqXNpMOZK5zPMz+c4iOvhHSA==" + }, "possible-typed-array-names": { "version": "1.1.0", "dev": true diff --git a/package.json b/package.json index 1e7c239..ba871c5 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,6 @@ "preinstall": "node ./auto/preinstall.js", "lint": "eslint --ext .ts,.js,.vue ./src", "fix": "eslint --fix --ext .ts,.js,.vue ./src", - "prepare": "husky install", "rm": "rm -rf node_modules package-lock.json pnpm-lock.yaml && pnpm install" }, "dependencies": { @@ -65,6 +64,7 @@ "animate.css": "^4.1.1", "echarts": "^5.5.0", "pinia": "2.0.36", + "pnpm": "^10.14.0", "sass": "^1.63.2", "uview-plus": "^3.4.9", "vue": "^3.2.45", @@ -88,7 +88,6 @@ "eslint-plugin-prettier": "^5.0.0", "eslint-plugin-vue": "^9.16.1", "feng-uniapp-exploit": "^1.0.2", - "husky": "^8.0.0", "pinia-plugin-unistorage": "^0.0.17", "prettier": "^3.0.0", "sass-loader": "^10.4.1", diff --git a/src/api/index.ts b/src/api/index.ts index af2db7c..8d8f434 100644 --- a/src/api/index.ts +++ b/src/api/index.ts @@ -17,60 +17,60 @@ export function bannerList() { } //banner详情 -export function bannerInfo(id:string) { +export function bannerInfo(id: string) { return request.http({ - url: '/api/huiqitong/banner_info/'+id, + url: '/api/huiqitong/banner_info/' + id, method: 'GET' }) } //活动列表 -export function activityList(data:any) { +export function activityList(data: any) { return request.http({ url: '/api/huiqitong/activity_list', method: 'GET', - data + data }) } //活动详情 -export function activityInfo(id:string) { +export function activityInfo(id: string) { return request.http({ - url: '/api/huiqitong/activity_info/'+id, - method: 'GET', + url: '/api/huiqitong/activity_info/' + id, + method: 'GET' }) } //专题详情 export function specialInfo(id: string) { return request.http({ - url: '/api/huiqitong/special_info?special_id='+id, + url: '/api/huiqitong/special_info?special_id=' + id, method: 'GET' }) -} +} //专题内容列表 -export function specialList(id: string) { +export function specialList(data: any) { return request.http({ - url: '/api/huiqitong/special_list?special_id=1&page=1&limit=10', - method: 'GET' + url: '/api/huiqitong/special_list', + method: 'GET', + data }) -} +} //专题内容详情 export function specialListInfo(id: string) { return request.http({ - url: '/api/huiqitong/special_list_info/'+id, + url: '/api/huiqitong/special_list_info/' + id, method: 'GET' }) -} +} //ai客服 export function ai(data: any) { return request.http({ url: '/api/huiqitong/ai', method: 'POST', - data + data }) -} - +} diff --git a/src/api/learningCenter.ts b/src/api/learningCenter.ts index 151d597..ae1846c 100644 --- a/src/api/learningCenter.ts +++ b/src/api/learningCenter.ts @@ -9,63 +9,70 @@ export function myStudy() { } //学习中心列表 -export function studyCenter(recommend:string,title:string,type:string,page:string,limit:string) { +export function studyCenter(recommend: string, title: string, type: string, page: string, limit: string) { return request.http({ - url: '/api/huiqitong/study_center?recommend='+recommend+'&title='+title+'&s_type='+type+'&page='+page+'&limit='+limit, + url: '/api/huiqitong/study_center?recommend=' + recommend + '&title=' + title + '&s_type=' + type + '&page=' + page + '&limit=' + limit, method: 'GET' }) } //学习中心详情 -export function studyCenterDetail(id:string) { +export function studyCenterDetail(id: string) { return request.http({ - url: '/api/huiqitong/study_center/'+id, + url: '/api/huiqitong/study_center/' + id, method: 'GET' }) } //收藏学习 -export function collect(data:{item_id:string}) { +export function collect(data: { item_id: string }) { return request.http({ url: '/api/huiqitong/collect', method: 'POST', - data + data }) } //取消收藏 -export function removeCollect(data:{item_id:string}) { +export function removeCollect(data: { item_id: string }) { return request.http({ url: '/api/huiqitong/remove_collect', method: 'POST', - data + data }) } //增加观看次数 -export function watchCount(data:{id:string}) { +export function watchCount(data: { id: string }) { return request.http({ url: '/api/huiqitong/watch_count', method: 'POST', - data + data }) } //观看进度记录 -export function studyRecord(data:any) { +export function studyRecord(data: any) { return request.http({ url: '/api/huiqitong/study_record', method: 'POST', - data + data }) } //是否收藏 -export function isCollect(data:any) { +export function isCollect(data: any) { return request.http({ url: '/api/huiqitong/is_collect', method: 'POST', - data + data }) } +//学习中心分类 +export function studyCenterCategory() { + return request.http({ + url: '/api/huiqitong/study_center_category', + method: 'GET' + }) +} diff --git a/src/api/memberCenter.ts b/src/api/memberCenter.ts index 30e68fe..4b1004c 100644 --- a/src/api/memberCenter.ts +++ b/src/api/memberCenter.ts @@ -9,28 +9,28 @@ export function memberTagList() { } //会员列表 -export function memberCenter(data:any) { +export function memberCenter(data: any) { return request.http({ url: '/api/huiqitong/member_center', method: 'GET', - data + data }) } //会员详情 export function memberCenterInfo(id: string) { return request.http({ - url: '/api/huiqitong/member_center_info/'+id, + url: '/api/huiqitong/member_center_info/' + id, method: 'GET' }) } //入会申请 -export function memberApply(data:any) { +export function memberApply(data: any) { return request.http({ url: '/api/huiqitong/member_apply', method: 'POST', - data + data }) } @@ -38,8 +38,6 @@ export function memberApply(data:any) { export function myMemberApply() { return request.http({ url: '/api/huiqitong/my_member_apply', - method: 'POST', + method: 'POST' }) } - - diff --git a/src/api/mine.ts b/src/api/mine.ts index 7c5c53c..dac39a4 100644 --- a/src/api/mine.ts +++ b/src/api/mine.ts @@ -1,27 +1,26 @@ import { request } from '@/utils/http' //修改用户信息(单项) -export function modifyField(field:string,value:string) { +export function modifyField(field: string, value: string) { return request.http({ - url: '/api/huiqitong/modify/'+ field +'?value=' + value, + url: '/api/huiqitong/modify/' + field + '?value=' + value, method: 'PUT' }) } //修改用户信息(单项) -export function modifyField1(field:string,data:any) { +export function modifyField1(field: string, data: any) { return request.http({ - url: '/api/huiqitong/modify/'+ field, + url: '/api/huiqitong/modify/' + field, method: 'PUT', - data + data }) } //图片上传 -export function updataImage(data:any) { +export function updataImage(data: any) { return request.http({ url: '/api/file/image', method: 'POST', - data + data }) } - diff --git a/src/api/shop.ts b/src/api/shop.ts index 70c1731..40716ea 100644 --- a/src/api/shop.ts +++ b/src/api/shop.ts @@ -9,62 +9,62 @@ export function storeCategoryAll() { } //开店帮内容 -export function storeList(data:any) { +export function storeList(data: any) { return request.http({ url: '/api/huiqitong/store_list', method: 'GET', - data + data }) } //开店帮内容详情 -export function storeInfo(id:string) { +export function storeInfo(id: string) { return request.http({ - url: '/api/huiqitong/store_info/'+id, - method: 'GET', + url: '/api/huiqitong/store_info/' + id, + method: 'GET' }) } //金融帮信息列表 -export function financeList(data:any) { +export function financeList(data: any) { return request.http({ url: '/api/huiqitong/finance_list', method: 'GET', - data + data }) } //金融帮信息详情 -export function financeInfo(id:string) { +export function financeInfo(id: string) { return request.http({ - url: '/api/huiqitong/finance_info/'+id, + url: '/api/huiqitong/finance_info/' + id, method: 'GET' }) } //媒体帮列表 -export function mediumList(data:any) { +export function mediumList(data: any) { return request.http({ url: '/api/huiqitong/medium_list', method: 'GET', - data + data }) } //媒体帮内容详情 -export function mediumInfo(id:string) { +export function mediumInfo(id: string) { return request.http({ - url: '/api/huiqitong/medium_info/'+id, + url: '/api/huiqitong/medium_info/' + id, method: 'GET' }) } //发布需求 -export function mediumAdd(data:any) { +export function mediumAdd(data: any) { return request.http({ url: '/api/huiqitong/medium/add', method: 'POST', - data + data }) } @@ -77,66 +77,63 @@ export function myMedium() { } //发帖 -export function addPosts(data:any) { +export function addPosts(data: any) { return request.http({ url: '/api/huiqitong/posts/add', method: 'POST', - data + data }) } //帖子列表 -export function postsList(data:any) { +export function postsList(data: any) { return request.http({ url: '/api/huiqitong/posts/list', method: 'GET', - data + data }) } //评论帖子 -export function commentsPosts(data:any) { +export function commentsPosts(data: any) { return request.http({ url: '/api/huiqitong/posts/comments', method: 'POST', - data + data }) } //点赞/取消点赞 -export function likesPosts(data:any) { +export function likesPosts(data: any) { return request.http({ url: '/api/huiqitong/posts/likes', method: 'POST', - data + data }) } //评论列表 -export function commentsList(data:any) { +export function commentsList(data: any) { return request.http({ url: '/api/huiqitong/posts/comments/list', method: 'GET', - data + data }) } //是否点赞 -export function isLikes(data:any) { +export function isLikes(data: any) { return request.http({ url: '/api/huiqitong/posts/isLikes', method: 'POST', - data + data }) } //帖子详情 -export function postsInfo(id:any) { +export function postsInfo(id: any) { return request.http({ - url: '/api/huiqitong/posts/info/'+id, - method: 'GET', + url: '/api/huiqitong/posts/info/' + id, + method: 'GET' }) } - - - diff --git a/src/api/user.ts b/src/api/user.ts index 6668734..a7a1d96 100644 --- a/src/api/user.ts +++ b/src/api/user.ts @@ -17,14 +17,12 @@ export interface dateListtype extends listType { export function infoForOpenid() { return request.http({ url: '/api/huiqitong/member/info', - method: 'GET', + method: 'GET' }) } export function logout() { return request.http({ url: '/api/huiqitong/logout', - method: 'PUT', + method: 'PUT' }) } - - diff --git a/src/components/zh-scroll/interface.ts b/src/components/zh-scroll/interface.ts index 0f5140e..2781400 100644 --- a/src/components/zh-scroll/interface.ts +++ b/src/components/zh-scroll/interface.ts @@ -1,16 +1,16 @@ /* 左右联动props */ export interface ICateItem { - id: number; - name: string; - icon: string; - goods_list: IGood[]; - [key: string]: any; + id: number + name: string + icon: string + goods_list: IGood[] + [key: string]: any } export interface IGood { - id: number; - content: string; - name: string; - images: string; - [key: string]: any; -} \ No newline at end of file + id: number + content: string + name: string + images: string + [key: string]: any +} diff --git a/src/components/zh-scroll/zh-scroll.vue b/src/components/zh-scroll/zh-scroll.vue index daf73f5..b425017 100644 --- a/src/components/zh-scroll/zh-scroll.vue +++ b/src/components/zh-scroll/zh-scroll.vue @@ -1,420 +1,422 @@ \ No newline at end of file +page { + height: 100%; +} +.zh-wrapper { + height: calc(100% - 66rpx); + overflow: hidden; + width: 100%; + display: flex; + + .menus { + width: 200rpx; + height: 100%; + overflow: hidden; + background-color: #f1f3f9; + + .wrapper { + width: 100%; + height: 100%; + + .menu { + display: flex; + align-items: center; + justify-content: flex-start; + padding: 30rpx 20rpx; + font-size: 26rpx; + color: #3d3d3d; + position: relative; + + &:nth-last-child(1) { + margin-bottom: 130rpx; + } + + &.current { + background-color: #ffffff; + color: #0072ff; + } + + .dot { + position: absolute; + width: 34rpx; + height: 34rpx; + line-height: 34rpx; + font-size: 22rpx; + // background-color: $uni-color-primary; + color: #ffffff; + top: 16rpx; + right: 10rpx; + border-radius: 100%; + text-align: center; + } + .menutitle { + margin-left: 20rpx; + font-family: Source Han Sans; + font-size: 30rpx; + font-weight: 350; + line-height: 32rpx; + text-align: justify; /* 浏览器可能不支持 */ + display: flex; + align-items: center; + letter-spacing: normal; + color: #3d3d3d; + } + .changeicon { + width: 20rpx; + height: 40rpx; + border-radius: 0rpx 32rpx 32rpx 0rpx; + /* 蓝色渐变 */ + background: linear-gradient(0deg, #007fff 0%, #99ccff 100%); + position: fixed; + left: 0; + } + } + } + } + + .goods { + flex: 1; + height: 100%; + overflow: hidden; + background-color: #ffffff; + + .wrapper { + width: 100%; + height: 100%; + padding: 20rpx; + + .list { + width: 100%; + font-size: 28rpx; + padding-bottom: 130rpx; + + .category { + width: 100%; + + .title { + padding: 10rpx 0; + display: flex; + align-items: center; + color: #0c092a; + + .icon { + width: 38rpx; + height: 38rpx; + } + .fristtitle { + margin-left: 20rpx; + font-family: Source Han Sans; + font-size: 28rpx; + font-weight: 530; + line-height: 48rpx; + display: flex; + align-items: center; + letter-spacing: normal; + color: #0c092a; + } + } + } + + .items { + display: flex; + flex-direction: column; + padding-bottom: -30rpx; + + :deep(.good) { + display: flex; + align-items: center; + justify-content: space-between; + margin-bottom: 30rpx; + padding-left: 40rpx; + .name { + max-width: 100%; + margin-left: 10rpx; + font-family: Source Han Sans; + font-size: 28rpx; + font-weight: 300; + color: #606266; + overflow: hidden; /* 隐藏溢出内容 */ + white-space: nowrap; /* 禁止换行 */ + text-overflow: ellipsis; /* 显示省略号 */ + } + .icon { + width: 38rpx; + height: 38rpx; + } + .lefticon { + width: 16rpx; + height: 28rpx; + margin-right: 6rpx; + } + + // .image { + // width: 160rpx; + // height: 160rpx; + // margin-right: 20rpx; + // border-radius: 8rpx; + // } + + // .right { + // flex: 1; + // height: 160rpx; + // overflow: hidden; + // display: flex; + // flex-direction: column; + // align-items: flex-start; + // justify-content: space-between; + // padding-right: 14rpx; + + // .name { + // font-family: Source Han Sans; + // font-size: 28rpx; + // font-weight: 300; + // line-height: 48rpx; + // display: flex; + // align-items: center; + // letter-spacing: normal; + // color: #606266; + // } + + // .tips { + // width: 100%; + // height: 40rpx; + // line-height: 40rpx; + // overflow: hidden; + // text-overflow: ellipsis; + // white-space: nowrap; + // font-size: 28rpx; + // color: #606266; + // margin-bottom: 10rpx; + // } + + // .price_and_action { + // width: 100%; + // display: flex; + // justify-content: space-between; + // align-items: center; + + // .price { + // font-size: #606266; + // font-weight: 600; + // } + + // .btn-group { + // display: flex; + // justify-content: space-between; + // align-items: center; + // position: relative; + + // .btn { + // padding: 0 20rpx; + // box-sizing: border-box; + // font-size: 28rpx; + // height: 44rpx; + // line-height: 44rpx; + + // &.property_btn { + // border-radius: 24rpx; + // } + + // &.add_btn, + // &.reduce_btn { + // padding: 0; + // width: 44rpx; + // border-radius: 44rpx; + // } + // } + + // .dot { + // position: absolute; + // background-color: #ffffff; + // color: #606266; + // font-size: 28rpx; + // width: 36rpx; + // height: 36rpx; + // line-height: 36rpx; + // text-align: center; + // border-radius: 100%; + // right: -12rpx; + // top: -10rpx; + // } + + // .number { + // width: 44rpx; + // height: 44rpx; + // line-height: 44rpx; + // text-align: center; + // } + // } + // } + // } + } + } + } + } + } +} + diff --git a/src/main.ts b/src/main.ts index 89fb0f6..5fb9b4b 100644 --- a/src/main.ts +++ b/src/main.ts @@ -7,20 +7,22 @@ import fengUniappExploit from 'feng-uniapp-exploit' import store from './store' export function createApp() { - const app = createSSRApp(App) - app.use(uviewPlus) - app.use(fengUniappExploit) - app.use(store) - app.mixin({ - onShareAppMessage() { // 分享给好友 - return { - title: '惠企帮', - path: '/pages/index/index', - } - }, - onShareTimeline() { // 分享朋友圈 - return { title: '惠企帮' } - } - }) - return { app } -} \ No newline at end of file + const app = createSSRApp(App) + app.use(uviewPlus) + app.use(fengUniappExploit) + app.use(store) + app.mixin({ + onShareAppMessage() { + // 分享给好友 + return { + title: '惠企帮', + path: '/pages/index/index' + } + }, + onShareTimeline() { + // 分享朋友圈 + return { title: '惠企帮' } + } + }) + return { app } +} diff --git a/src/pages/index/ChatDialog.vue b/src/pages/index/ChatDialog.vue index 594d7b4..bcca831 100644 --- a/src/pages/index/ChatDialog.vue +++ b/src/pages/index/ChatDialog.vue @@ -1,275 +1,285 @@ \ No newline at end of file +.dialog-container { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + z-index: 999; +} + +.dialog-mask { + position: absolute; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.5); +} + +.dialog-content { + position: absolute; + width: 100%; + bottom: 0; + background: #e7f3ff; + box-sizing: border-box; + border: 2rpx solid #ffffff; + box-shadow: 0rpx -30rpx 20rpx 0rpx rgba(0, 0, 0, 0.2); + border-radius: 96rpx 0rpx 0rpx 0rpx; + display: flex; + flex-direction: column; +} + +.message-box { + padding: 30rpx 30rpx 10rpx 30rpx; + box-sizing: border-box; +} + +.message { + margin-bottom: 30rpx; + display: flex; +} + +.message.user { + justify-content: flex-end; +} + +.message.assistant { + justify-content: flex-start; +} + +.bubble { + max-width: 75%; + padding: 20rpx 30rpx; + border-radius: 10rpx; + background-color: aliceblue; +} + +.user { + .bubble { + background: #95ec69; + } + + .aicon { + width: 0; + height: 0; + } +} + +.assistant { + .aicon { + width: 64rpx; + } + + .bubble { + background: #ffffff; + margin-left: 20rpx; + + text { + font-family: Source Han Sans; + font-size: 24rpx; + font-weight: 300; + line-height: 48rpx; + text-align: justify; + /* 浏览器可能不支持 */ + display: flex; + align-items: center; + letter-spacing: normal; + color: #000000; + } + } +} + +.input-box { + width: 100%; + position: fixed; + bottom: 0; + display: flex; + align-items: center; + padding: 25rpx; + box-sizing: border-box; + border-radius: 40rpx 40rpx 0rpx 0rpx; + background: #ffffff; + box-shadow: 0rpx -2rpx 12rpx 0rpx rgba(0, 0, 0, 0.05); +} + +input { + flex: 1; + padding: 16rpx 24rpx; + border: 2rpx solid #ddd; + border-radius: 8rpx; +} + +button { + margin-left: 20rpx; + padding: 0 30rpx; + background: #007aff; + color: white; + height: 70rpx; + display: flex; + align-items: center; +} + +.loading { + text-align: center; + color: #999; +} + +.cwtitle { + color: #007fff !important; +} + +.cwtxt { + font-family: Source Han Sans; + font-size: 24rpx; + font-weight: 300; + line-height: 48rpx; + text-align: justify; + /* 浏览器可能不支持 */ + display: flex; + align-items: center; + letter-spacing: normal; + color: #666666; +} + +.inputbox { + height: 15%; + display: flex; + align-items: center; + justify-content: center; + padding: 20rpx; + border-radius: 40rpx 40rpx 0rpx 0rpx; + background: #ffffff; + box-shadow: 0rpx -2rpx 12rpx 0rpx rgba(0, 0, 0, 0.05); + font-family: Source Han Sans; + font-size: 24rpx; + font-weight: 300; + line-height: 48rpx; + text-align: justify; + /* 浏览器可能不支持 */ + display: flex; + align-items: center; + letter-spacing: normal; + color: #007fff; +} + +.butss { + width: 100%; + display: flex; + align-items: center; + justify-content: flex-end; + padding: 20rpx; +} + diff --git a/src/pages/index/active/activeDetail.vue b/src/pages/index/active/activeDetail.vue index 0f4f394..a1f51fc 100644 --- a/src/pages/index/active/activeDetail.vue +++ b/src/pages/index/active/activeDetail.vue @@ -1,158 +1,152 @@ \ No newline at end of file + .time { + font-family: Source Han Sans; + font-size: 28rpx; + font-weight: 350; + line-height: 48rpx; + display: flex; + align-items: center; + letter-spacing: normal; + color: #858494; + } + .ydl { + display: flex; + align-items: center; + .time { + font-family: Source Han Sans; + font-size: 28rpx; + font-weight: 350; + line-height: 48rpx; + display: flex; + align-items: center; + letter-spacing: normal; + color: #858494; + } + .value { + font-family: Source Han Sans; + font-size: 28rpx; + font-weight: 350; + line-height: 48rpx; + text-align: right; + display: flex; + align-items: center; + letter-spacing: normal; + color: #007fff; + } + } + } + .certetime { + font-family: Roboto; + font-size: 28rpx; + font-weight: normal; + line-height: 80rpx; + letter-spacing: normal; + color: #a1a1a1; + } +} + diff --git a/src/pages/index/active/activelist.vue b/src/pages/index/active/activelist.vue index 336835f..474f2d3 100644 --- a/src/pages/index/active/activelist.vue +++ b/src/pages/index/active/activelist.vue @@ -1,182 +1,190 @@ \ No newline at end of file +.container { + background: linear-gradient(0deg, #f1f3f9 72%, rgba(129, 179, 222, 0.5) 88%); + height: 100vh; + width: 100%; + overflow-y: hidden; + + .main { + margin-top: 10rpx; + width: 100%; + height: 100%; + padding: 0 24rpx; + box-sizing: border-box; + + .ztone { + display: flex; + align-items: center; + width: 100%; + margin-top: 20rpx; + padding: 10rpx; + border-radius: 8rpx; + background: #ffffff; + box-sizing: border-box; + border: 2rpx solid rgba(0, 127, 255, 0.12); + + .rightpart { + width: 100%; + margin-left: 20rpx; + flex: 3; + display: grid; + + .titlepart { + width: 100%; + display: flex; + align-items: center; + justify-content: space-between; + + .title { + font-family: Source Han Sans; + font-size: 20rpx; + font-weight: 300; + line-height: normal; + display: flex; + align-items: flex-end; + letter-spacing: normal; + color: #666666; + margin-top: 20rpx; + } + } + + .splace { + font-family: Source Han Sans; + font-size: 28rpx; + font-weight: 500; + display: flex; + align-items: center; + letter-spacing: normal; + color: #0c092a; + } + + .ms { + margin-top: 8rpx; + font-family: Source Han Sans; + font-size: 20rpx; + font-weight: 300; + line-height: normal; + display: flex; + align-items: flex-end; + letter-spacing: normal; + color: #666666; + } + } + } + } +} + +.hdzq { + width: 182rpx; + height: 80rpx; + position: fixed; + right: 0; + top: 70%; + margin-right: -14rpx; +} + diff --git a/src/pages/index/index.vue b/src/pages/index/index.vue index a15bb8e..7cbfa26 100644 --- a/src/pages/index/index.vue +++ b/src/pages/index/index.vue @@ -1,71 +1,76 @@ \ No newline at end of file +.container { + background-color: #f1f3f9; + height: calc(100vh - 182rpx); + padding-bottom: 90rpx; + + :deep(.u-navbar__content__left__text) { + font-family: Source Han Sans; + font-size: 24rpx; + font-weight: 300; + line-height: normal; + display: flex; + align-items: flex-end; + letter-spacing: normal; + color: #333333; + } + + :deep(.u-navbar__content__title) { + font-family: Source Han Sans; + font-size: 36rpx; + font-weight: 500; + line-height: normal; + display: flex; + align-items: flex-end; + letter-spacing: normal; + color: #333333; + } +} + +.indicator { + @include flex(row); + justify-content: center; + + &__dot { + height: 12rpx; + width: 12rpx; + border-radius: 200rpx; + background-color: rgba(255, 255, 255, 0.35); + margin: 0 10rpx; + transition: background-color 0.3s; + } + + .indicator__dotactive { + background-color: #ffffff; + } +} + +.box { + margin-top: -140rpx; + position: relative; + border-radius: 85rpx 85rpx 0 0; + background-color: #f1f3f9; + padding: 0 24rpx; + + .zuanti { + width: 100%; + height: 160rpx; + border-radius: 134rpx; + margin-top: 30rpx; + } + + .scroll-view_H { + margin-top: 30rpx; + white-space: nowrap; + width: 100%; + + .hdCard { + display: inline-block; + width: 248rpx; + height: 340rpx; + border-radius: 16rpx; + background: #ffffff; + margin-right: 20rpx; + + .img { + border-radius: 16rpx 16rpx 0 0; + width: 100%; + height: 196rpx; + } + + .message { + .title { + margin-left: 16rpx; + margin-top: 8rpx; + font-family: Source Han Sans; + font-size: 26rpx; + font-weight: 350; + /* 文本/正文 */ + color: #1d2129; + max-width: 180rpx; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + } + + .time { + margin-left: 16rpx; + margin-top: 20rpx; + font-family: Source Han Sans; + font-size: 20rpx; + font-weight: 300; + color: #666666; + max-width: 180rpx; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + } + + .splace { + margin-left: 16rpx; + margin-top: 8rpx; + font-family: Source Han Sans; + font-size: 20rpx; + font-weight: 300; + color: #666666; + max-width: 222rpx; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + } + } + } + } + + .smallshop { + margin-top: 40rpx; + width: 100%; + padding: 3%; + box-sizing: border-box; + height: 366rpx; + border-radius: 24rpx; + background-color: #ffffff; + + .xdb { + font-family: Source Han Sans; + font-size: 30rpx; + font-weight: 500; + line-height: normal; + display: flex; + align-items: center; + letter-spacing: normal; + color: #333333; + } + + .bangCart { + margin-top: 30rpx; + gap: 4%; + display: flex; + flex-wrap: wrap; + + .bangone1 { + flex: 1 1 45%; + height: 108rpx; + border-radius: 24rpx; + box-sizing: border-box; + border: 0.4rpx solid #007fff; + background: #edf5ff; + display: flex; + justify-content: space-around; + align-items: center; + } + + .bangone2 { + flex: 1 1 45%; + height: 108rpx; + border-radius: 24rpx; + box-sizing: border-box; + border: 0.4rpx solid #ff2228; + background: #fff1f3; + display: flex; + justify-content: space-around; + align-items: center; + } + + .bangone3 { + margin-top: 20rpx; + flex: 1 1 45%; + height: 108rpx; + border-radius: 24rpx; + box-sizing: border-box; + border: 0.4rpx solid #fd8702; + background: #ffe7ce; + display: flex; + justify-content: space-around; + align-items: center; + } + + .bangone4 { + margin-top: 20rpx; + flex: 1 1 45%; + height: 108rpx; + border-radius: 24rpx; + box-sizing: border-box; + border: 0.4rpx solid #08b4bd; + background: #e5feff; + display: flex; + justify-content: space-around; + align-items: center; + } + + .btext { + margin-left: 32rpx; + font-family: Source Han Sans; + font-size: 30rpx; + font-weight: 350; + line-height: normal; + text-align: center; + letter-spacing: normal; + /* 文本/正文 */ + color: #1a1a1a; + } + } + } + + .buttonCard { + margin-top: 40rpx; + width: 100%; + height: 192rpx; + border-radius: 24rpx; + background-color: #ffffff; + display: flex; + justify-content: center; + align-items: center; + gap: 64rpx; + + .but { + display: grid; + justify-items: center; + + .butext { + font-family: Source Han Sans; + font-size: 28rpx; + font-weight: 350; + line-height: normal; + letter-spacing: normal; + /* 文本/正文 */ + color: #1a1a1a; + margin-top: 8rpx; + } + } + } + + .hylist { + width: 100%; + display: grid; + justify-content: center; + + .hyCard { + border: 2rpx solid #f1f3f9; + margin-top: 24rpx; + width: 100%; + border-radius: 24rpx; + background: #ffffff; + display: flex; + align-items: center; + justify-content: space-between; + box-sizing: border-box; + padding: 20rpx 28rpx; + + .left { + display: flex; + align-items: center; + box-sizing: border-box; + + .textpart { + margin-left: 32rpx; + display: grid; + justify-content: left; + + .namepart { + display: flex; + align-items: center; + box-sizing: border-box; + + .name { + font-family: Source Han Sans; + font-size: 24rpx; + font-weight: 350; + line-height: 150%; + letter-spacing: normal; + /* 外部/Neutral/Black */ + color: #0c092a; + } + + .biaoq { + padding: 10rpx; + height: 28rpx; + border-radius: 0rpx 4rpx 20rpx 0rpx; + margin-left: 16rpx; + font-family: YouSheBiaoTiHei; + font-size: 24rpx; + font-weight: normal; + display: flex; + align-items: center; + letter-spacing: normal; + color: #ffffff; + text-shadow: 0rpx 4rpx 4rpx rgba(0, 0, 0, 0.2); + } + } + + .company { + margin-top: 12rpx; + font-family: Source Han Sans; + font-size: 24rpx; + font-weight: 300; + line-height: 150%; + letter-spacing: normal; + /* 外部/Neutral/Grey 2 */ + color: #858494; + } + } + } + } + } +} + +.tjback { + margin-top: 40rpx; + background: #ffffff; + border-radius: 24rpx; + padding: 20rpx 30rpx; + box-sizing: border-box; + width: 100%; +} +.titlebox { + margin-top: 20rpx; + width: 100%; + display: inline-flex; + justify-content: space-between; + align-items: center; + + .left { + display: flex; + align-items: center; + + .text { + margin-left: 8rpx; + font-family: Source Han Sans; + font-size: 30rpx; + font-weight: 500; + line-height: normal; + display: flex; + align-items: center; + letter-spacing: normal; + color: #333333; + } + } + + .more { + font-family: Source Han Sans; + font-size: 22rpx; + font-weight: 300; + line-height: normal; + text-align: right; + display: flex; + align-items: center; + letter-spacing: normal; + color: #007fff; + } +} + +.xzs1 { + width: 298rpx; + height: 148rpx; + position: fixed; + background-image: url(@/static/img/xzs.png); + background-size: 100% 100%; + font-size: 32rpx; + color: #ffffff; + padding: 0 0 20rpx 90rpx; + display: flex; + align-items: center; + justify-content: center; + // top: 70%; +} + +.xzs { + width: 80rpx; + // position: fixed; + // right: -24rpx; + // top: 70%; +} +.showtitle { + position: relative; + top: -102rpx; + left: -137rpx; + background-image: url(@/static/img/aiback.png); + background-size: 100% 100%; + padding: 20rpx 10rpx; + .tit { + white-space: nowrap; + color: #2563eb; + font-size: 28rpx; + display: flex; + } +} + diff --git a/src/pages/index/shoppage/financialAssistance.vue b/src/pages/index/shoppage/financialAssistance.vue index 1f5a3d0..4bf05f5 100644 --- a/src/pages/index/shoppage/financialAssistance.vue +++ b/src/pages/index/shoppage/financialAssistance.vue @@ -1,199 +1,203 @@ \ No newline at end of file +.container { + background: linear-gradient(0deg, #f1f3f9 72%, rgba(129, 179, 222, 0.5) 88%); + height: calc(100vh - 178rpx); + width: 100%; + overflow-y: hidden; + .hyonne { + max-height: calc(100vh - 350rpx); + overflow-y: auto; + } + .main { + margin-top: 10rpx; + width: 100%; + height: 100%; + padding: 0 24rpx; + box-sizing: border-box; + overflow-y: hidden; + + .ztone { + display: flex; + align-items: center; + width: 100%; + height: 210rpx; + margin-top: 30rpx; + padding: 30rpx; + border-radius: 20rpx; + background: #ffffff; + box-sizing: border-box; + border: 2rpx solid rgba(0, 127, 255, 0.12); + + .rightpart { + width: 100%; + margin-left: 40rpx; + flex: 3; + display: grid; + + .titlepart { + width: 100%; + display: flex; + align-items: center; + justify-content: space-between; + + .title { + font-family: Poppins; + font-size: 24rpx; + font-weight: 600; + line-height: 34rpx; + letter-spacing: normal; + /* 外部/Colors/Dark/Base 1 */ + color: #161719; + margin-top: 13rpx; + } + } + + .splace { + font-family: Poppins; + font-size: 24rpx; + font-weight: normal; + line-height: 34rpx; + letter-spacing: normal; + /* 外部/Colors/Dark/Base 1 */ + color: #161719; + } + + .ms { + margin-top: 13rpx; + font-family: Poppins; + font-size: 20rpx; + font-weight: normal; + line-height: 28rpx; + letter-spacing: normal; + /* 外部/Colors/Light/Base 3 */ + color: #91919f; + } + } + } + } +} + +.hdzq { + width: 212rpx; + height: 86rpx; + position: fixed; + right: 0; + top: 70%; + margin-right: -14rpx; +} + diff --git a/src/pages/index/shoppage/interactiveDetail.vue b/src/pages/index/shoppage/interactiveDetail.vue index 1ceceae..9323973 100644 --- a/src/pages/index/shoppage/interactiveDetail.vue +++ b/src/pages/index/shoppage/interactiveDetail.vue @@ -1,354 +1,359 @@ \ No newline at end of file +.container { + overflow-y: hidden; + background-color: #ffffff; + height: calc(100vh - 182rpx); + width: 100%; + box-sizing: border-box; + + .cardbox { + .dhone { + margin-top: 30rpx; + width: 100%; + padding: 40rpx; + display: grid; + align-items: center; + box-sizing: border-box; + background: #ffffff; + + .head { + display: flex; + align-items: center; + + .namepart { + margin-left: 20rpx; + display: grid; + + .name { + font-family: Source Han Sans; + font-size: 28rpx; + font-weight: 350; + line-height: 26rpx; + letter-spacing: normal; + color: #0c092a; + } + + .date { + margin-top: 18rpx; + font-family: Source Han Sans; + font-size: 28rpx; + font-weight: 350; + line-height: 30rpx; + letter-spacing: normal; + color: #858494; + } + } + } + + .pl { + margin-top: 24rpx; + font-family: Source Han Sans; + font-size: 28rpx; + font-weight: 350; + text-align: justify; + /* 浏览器可能不支持 */ + letter-spacing: normal; + color: #0c092a; + } + + .bottom { + margin-top: 20rpx; + display: flex; + align-items: center; + justify-content: space-between; + + .left { + display: flex; + align-items: center; + + .value { + margin-left: 8rpx; + font-family: Source Han Sans; + font-size: 36rpx; + font-weight: 350; + line-height: 72rpx; + display: flex; + align-items: center; + letter-spacing: normal; + color: #858494; + } + } + + .right { + display: flex; + align-items: center; + + .value { + margin-left: 8rpx; + font-family: Source Han Sans; + font-size: 36rpx; + font-weight: 350; + line-height: 72rpx; + display: flex; + align-items: center; + letter-spacing: normal; + color: #858494; + } + } + } + } + } + + .ypl { + width: 100%; + border-radius: 8rpx; + background: #f8f9fa; + padding: 24rpx; + margin-top: 22rpx; + + .head { + display: flex; + align-items: center; + justify-content: space-between; + + .left { + display: flex; + align-items: center; + + .name { + margin-left: 8rpx; + font-family: Source Han Sans; + font-size: 28rpx; + font-weight: 350; + line-height: 26rpx; + letter-spacing: normal; + color: #333333; + } + } + + .right { + display: flex; + align-items: center; + + .value { + font-family: Source Han Sans; + font-size: 24rpx; + font-weight: 350; + line-height: 20rpx; + letter-spacing: normal; + color: #858494; + } + } + } + + .pl { + font-family: Source Han Sans; + font-size: 24rpx; + font-weight: 350; + line-height: normal; + text-align: justify; + /* 浏览器可能不支持 */ + display: flex; + align-items: center; + letter-spacing: normal; + color: #0c092a; + } + } +} + +.plpart { + position: fixed; + bottom: 0; + width: 100%; + padding: 20px 15px; + box-sizing: border-box; + display: flex; + align-items: center; + + .textarea { + } + + .butt { + margin-left: 10px; + padding: 9px 8px; + box-sizing: border-box; + background-color: #5ac725; + border-radius: 5px; + color: #ffffff; + } +} + diff --git a/src/pages/index/shoppage/interactiveZone.vue b/src/pages/index/shoppage/interactiveZone.vue index e63670e..d7bc4d7 100644 --- a/src/pages/index/shoppage/interactiveZone.vue +++ b/src/pages/index/shoppage/interactiveZone.vue @@ -1,343 +1,344 @@ \ No newline at end of file +.container { + background-color: #f1f3f9; + height: calc(100vh - 96px); + overflow: hidden; + width: 100%; + + .cardbox { + max-height: calc(100vh - 150px); + + .dhone { + margin-top: 30rpx; + width: 100%; + padding: 40rpx; + display: grid; + align-items: center; + box-sizing: border-box; + background: #ffffff; + + .head { + display: flex; + align-items: center; + + .namepart { + margin-left: 20rpx; + display: grid; + + .name { + font-family: Source Han Sans; + font-size: 28rpx; + font-weight: 350; + line-height: 26rpx; + letter-spacing: normal; + color: #0c092a; + } + + .date { + margin-top: 18rpx; + font-family: Source Han Sans; + font-size: 28rpx; + font-weight: 350; + line-height: 30rpx; + letter-spacing: normal; + color: #858494; + } + } + } + + .pl { + margin-top: 24rpx; + font-family: Source Han Sans; + font-size: 28rpx; + font-weight: 350; + text-align: justify; + /* 浏览器可能不支持 */ + letter-spacing: normal; + color: #0c092a; + } + + .bottom { + margin-top: 20rpx; + display: flex; + align-items: center; + justify-content: space-between; + + .left { + display: flex; + align-items: center; + + .value { + margin-left: 8rpx; + font-family: Source Han Sans; + font-size: 36rpx; + font-weight: 350; + line-height: 72rpx; + display: flex; + align-items: center; + letter-spacing: normal; + color: #858494; + } + } + + .right { + display: flex; + align-items: center; + + .value { + margin-left: 8rpx; + font-family: Source Han Sans; + font-size: 36rpx; + font-weight: 350; + line-height: 72rpx; + display: flex; + align-items: center; + letter-spacing: normal; + color: #858494; + } + } + } + } + } + + .ypl { + width: 100%; + border-radius: 8rpx; + background: #f8f9fa; + padding: 24rpx; + margin-top: 22rpx; + + .head { + display: flex; + align-items: center; + justify-content: space-between; + + .left { + display: flex; + align-items: center; + + .name { + margin-left: 8rpx; + font-family: Source Han Sans; + font-size: 28rpx; + font-weight: 350; + line-height: 26rpx; + letter-spacing: normal; + color: #333333; + } + } + + .right { + display: flex; + align-items: center; + + .value { + font-family: Source Han Sans; + font-size: 24rpx; + font-weight: 350; + line-height: 20rpx; + letter-spacing: normal; + color: #858494; + } + } + } + + .pl { + font-family: Source Han Sans; + font-size: 24rpx; + font-weight: 350; + line-height: normal; + text-align: justify; + /* 浏览器可能不支持 */ + display: flex; + align-items: center; + letter-spacing: normal; + color: #0c092a; + } + } +} + +.hdzq { + width: 108rpx; + height: 108rpx; + position: fixed; + right: 0; + top: 75%; +} + diff --git a/src/pages/index/shoppage/jrbDetail.vue b/src/pages/index/shoppage/jrbDetail.vue index f1a0970..aa1c186 100644 --- a/src/pages/index/shoppage/jrbDetail.vue +++ b/src/pages/index/shoppage/jrbDetail.vue @@ -1,106 +1,100 @@ \ No newline at end of file +.container { + background-color: #ffffff; + height: calc(100vh - 182rpx); + width: 100%; + padding: 40rpx 40rpx 0 40rpx; + box-sizing: border-box; + .titlepart { + margin-top: 40rpx; + display: flex; + align-items: center; + .icon { + width: 12rpx; + height: 32rpx; + border-radius: 0rpx 32rpx 32rpx 0rpx; + /* 蓝色渐变 */ + background: linear-gradient(0deg, #007fff 0%, #99ccff 100%); + } + .title { + margin-left: 18rpx; + font-family: Source Han Sans; + font-size: 30rpx; + font-weight: 350; + line-height: 32rpx; + text-align: justify; /* 浏览器可能不支持 */ + display: flex; + align-items: center; + letter-spacing: normal; + color: #0072ff; + } + } + .message { + margin-top: 36rpx; + font-family: Source Han Sans; + font-size: 32rpx; + font-weight: 300; + line-height: 60rpx; + text-align: justify; /* 浏览器可能不支持 */ + display: flex; + align-items: center; + letter-spacing: normal; + color: #3d3d3d; + } + .people { + margin-top: 28rpx; + display: flex; + .text { + font-family: Source Han Sans; + font-size: 32rpx; + font-weight: 300; + line-height: 60rpx; + text-align: justify; /* 浏览器可能不支持 */ + display: flex; + align-items: center; + letter-spacing: normal; + color: #3d3d3d; + } + } +} + diff --git a/src/pages/index/shoppage/makeAssistance.vue b/src/pages/index/shoppage/makeAssistance.vue index 423661e..bc89e3f 100644 --- a/src/pages/index/shoppage/makeAssistance.vue +++ b/src/pages/index/shoppage/makeAssistance.vue @@ -1,162 +1,174 @@ \ No newline at end of file +.placlass { + font-family: Source Han Sans; + font-size: 30rpx; + font-weight: 350; + line-height: 40rpx; + display: flex; + align-items: center; + letter-spacing: normal; + color: #d3d3d3; +} + diff --git a/src/pages/index/shoppage/mediaDetail.vue b/src/pages/index/shoppage/mediaDetail.vue index 062d708..9b6c2f8 100644 --- a/src/pages/index/shoppage/mediaDetail.vue +++ b/src/pages/index/shoppage/mediaDetail.vue @@ -1,170 +1,174 @@ \ No newline at end of file +.container { + background-color: #ffffff; + height: calc(100vh - 182rpx); + width: 100%; + .main { + width: 100%; + margin-top: -200rpx; + .head { + width: 100%; + display: grid; + justify-items: center; + .toux { + width: 316rpx; + height: 316rpx; + box-sizing: border-box; + border-radius: 50%; + /* White */ + border: 8rpx solid #ffffff; + box-shadow: 0rpx 8rpx 40rpx 0rpx rgba(101, 101, 101, 0.15); + } + .name { + margin-top: 32rpx; + font-family: Inter; + font-size: 60rpx; + font-weight: 520; + line-height: 84rpx; + text-align: center; + letter-spacing: normal; + color: #000000; + } + .type { + margin-top: 4rpx; + font-family: Inter; + font-size: 32rpx; + font-weight: 500; + line-height: 44rpx; + text-align: center; + letter-spacing: normal; + color: #858494; + } + } + .content { + padding: 0 40rpx; + box-sizing: border-box; + padding-bottom: 100rpx; + } + } + .titlepart { + margin-top: 40rpx; + display: flex; + align-items: center; + .icon { + width: 12rpx; + height: 32rpx; + border-radius: 0rpx 32rpx 32rpx 0rpx; + /* 蓝色渐变 */ + background: linear-gradient(0deg, #007fff 0%, #99ccff 100%); + } + .title { + margin-left: 18rpx; + font-family: Source Han Sans; + font-size: 30rpx; + font-weight: 350; + line-height: 32rpx; + text-align: justify; /* 浏览器可能不支持 */ + display: flex; + align-items: center; + letter-spacing: normal; + color: #0072ff; + } + } + .message { + margin-top: 36rpx; + font-family: Source Han Sans; + font-size: 32rpx; + font-weight: 300; + line-height: 60rpx; + text-align: justify; /* 浏览器可能不支持 */ + display: flex; + align-items: center; + letter-spacing: normal; + color: #3d3d3d; + } + .people { + margin-top: 28rpx; + display: flex; + .text { + font-family: Source Han Sans; + font-size: 32rpx; + font-weight: 300; + line-height: 60rpx; + text-align: justify; /* 浏览器可能不支持 */ + display: flex; + align-items: center; + letter-spacing: normal; + color: #3d3d3d; + } + } +} + diff --git a/src/pages/index/shoppage/mediaHelp.vue b/src/pages/index/shoppage/mediaHelp.vue index 30628e2..6137649 100644 --- a/src/pages/index/shoppage/mediaHelp.vue +++ b/src/pages/index/shoppage/mediaHelp.vue @@ -1,257 +1,256 @@ \ No newline at end of file + .button { + width: 574rpx; + height: 96rpx; + border-radius: 248rpx; + background: linear-gradient(90deg, #007fff 0%, #99ccff 100%); + font-family: Source Han Sans; + font-size: 36rpx; + font-weight: 500; + line-height: 32rpx; + text-align: justify; + /* 浏览器可能不支持 */ + display: flex; + align-items: center; + letter-spacing: normal; + color: #ffffff; + display: flex; + align-items: center; + justify-content: center; + } +} + diff --git a/src/pages/index/shoppage/mtbmakeMessage.vue b/src/pages/index/shoppage/mtbmakeMessage.vue index 84da5b6..27323dc 100644 --- a/src/pages/index/shoppage/mtbmakeMessage.vue +++ b/src/pages/index/shoppage/mtbmakeMessage.vue @@ -1,332 +1,361 @@ \ No newline at end of file +.u-form-item__body__left__content__label { + white-space: nowrap; +} + diff --git a/src/pages/index/shoppage/shopHelp.vue b/src/pages/index/shoppage/shopHelp.vue index 5b97592..81b9a26 100644 --- a/src/pages/index/shoppage/shopHelp.vue +++ b/src/pages/index/shoppage/shopHelp.vue @@ -1,73 +1,77 @@ \ No newline at end of file +.hdzq { + width: 212rpx; + height: 86rpx; + position: fixed; + right: 0; + top: 70%; + margin-right: -14rpx; +} + diff --git a/src/pages/index/shoppage/shophelpDetail.vue b/src/pages/index/shoppage/shophelpDetail.vue index 7c12b39..eb7f090 100644 --- a/src/pages/index/shoppage/shophelpDetail.vue +++ b/src/pages/index/shoppage/shophelpDetail.vue @@ -1,153 +1,147 @@ \ No newline at end of file + .message { + margin-top: 40rpx; + } +} + diff --git a/src/pages/index/specialSubject.vue b/src/pages/index/specialSubject.vue index 1647532..2d09bcb 100644 --- a/src/pages/index/specialSubject.vue +++ b/src/pages/index/specialSubject.vue @@ -1,8 +1,7 @@ \ No newline at end of file +.u-box__right-top { + max-height: 50%; + overflow-y: hidden; +} + +.u-box__right-bottom { + max-height: 50%; + overflow-y: hidden; +} + diff --git a/src/pages/index/tabsComm.vue b/src/pages/index/tabsComm.vue index 93d4e66..ccdb79c 100644 --- a/src/pages/index/tabsComm.vue +++ b/src/pages/index/tabsComm.vue @@ -1,40 +1,30 @@ diff --git a/src/pages/index/ztdetail.vue b/src/pages/index/ztdetail.vue index b81ae70..e651a90 100644 --- a/src/pages/index/ztdetail.vue +++ b/src/pages/index/ztdetail.vue @@ -1,86 +1,83 @@ diff --git a/src/pages/learningCenter/detail.vue b/src/pages/learningCenter/detail.vue index 6afac70..82f3fe1 100644 --- a/src/pages/learningCenter/detail.vue +++ b/src/pages/learningCenter/detail.vue @@ -1,250 +1,246 @@ \ No newline at end of file +.pagebox { + height: 100vh; + + .vidoepart { + .myVideo { + width: 100vw; + } + } + + .main { + padding: 30rpx 40rpx; + box-sizing: border-box; + + .peopnum { + display: flex; + align-items: center; + justify-content: space-between; + margin-top: 40rpx; + + .left { + display: flex; + align-items: center; + + .txt { + margin-left: 8rpx; + font-family: Source Han Sans; + font-size: 28rpx; + font-weight: 350; + text-align: justify; + /* 浏览器可能不支持 */ + display: flex; + align-items: center; + letter-spacing: normal; + /* 观看人数: */ + color: #858494; + } + + .num { + font-family: Source Han Sans; + font-size: 28rpx; + font-weight: 350; + text-align: justify; + /* 浏览器可能不支持 */ + display: flex; + align-items: center; + letter-spacing: normal; + /* 观看人数: */ + color: #007fff; + } + } + } + + .shqy { + display: grid; + + .head { + margin-top: 48rpx; + display: flex; + align-items: center; + + .text { + margin-left: 18rpx; + font-family: Source Han Sans; + font-size: 30rpx; + font-weight: 350; + text-align: justify; + /* 浏览器可能不支持 */ + display: flex; + align-items: center; + letter-spacing: normal; + color: #0072ff; + } + } + + .cards { + margin-top: 32rpx; + display: flex; + flex-wrap: wrap; + gap: 20rpx; + + .card { + flex: 0 1 calc(50% - 13rpx); + height: 144rpx; + border-radius: 24rpx; + background: #fafdff; + box-sizing: border-box; + border: 8rpx solid #dbedff; + display: grid; + justify-items: center; + align-items: center; + + .lcxb { + font-family: Source Han Sans; + font-size: 30rpx; + font-weight: normal; + letter-spacing: normal; + color: #007fff; + } + + .bz { + font-family: Source Han Sans; + font-size: 28rpx; + font-weight: 350; + line-height: 32rpx; + letter-spacing: normal; + color: #858494; + } + } + } + } + + .title { + font-family: Source Han Sans; + font-size: 36rpx; + font-weight: 350; + line-height: 80rpx; + letter-spacing: normal; + color: #0c092a; + } + + .message { + margin-top: 40rpx; + font-family: Source Han Sans; + font-size: 30rpx; + font-weight: 300; + text-align: justify; + /* 浏览器可能不支持 */ + display: flex; + align-items: center; + letter-spacing: normal; + color: #3d3d3d; + line-height: 60rpx; + } + } +} + diff --git a/src/pages/learningCenter/index.vue b/src/pages/learningCenter/index.vue index 28da632..e66090f 100644 --- a/src/pages/learningCenter/index.vue +++ b/src/pages/learningCenter/index.vue @@ -1,400 +1,406 @@ \ No newline at end of file +.u-search { + margin: 20rpx 0rpx 0 0 !important; +} + +.u-search__content { + background-color: #ffffff !important; + border-radius: 16rpx !important; + height: 90rpx !important; +} + +.u-search__content__input { + background-color: #ffffff !important; +} + diff --git a/src/pages/learningCenter/useTimeDiff.js b/src/pages/learningCenter/useTimeDiff.js index 6f7619b..1412c08 100644 --- a/src/pages/learningCenter/useTimeDiff.js +++ b/src/pages/learningCenter/useTimeDiff.js @@ -1,31 +1,27 @@ - -import { ref, onMounted, onUnmounted } from 'vue'; +import { ref, onMounted, onUnmounted } from 'vue' export default function useTimeDiff(targetDateStr) { - const days = ref(0); - const hours = ref(0); - const minutes = ref(0); - - const calculateDiff = () => { - const targetDate = new Date(targetDateStr.replace(/-/g, '/')); - const now = new Date(); - const diffMs = now - targetDate; - - days.value = Math.max(0, Math.floor(diffMs / 86400000)); - hours.value = Math.max(0, Math.floor((diffMs % 86400000) / 3600000)); - minutes.value = Math.max(0, Math.floor((diffMs % 3600000) / 60000)); - }; + const days = ref(0) + const hours = ref(0) + const minutes = ref(0) + const calculateDiff = () => { + const targetDate = new Date(targetDateStr.replace(/-/g, '/')) + const now = new Date() + const diffMs = now - targetDate + days.value = Math.max(0, Math.floor(diffMs / 86400000)) + hours.value = Math.max(0, Math.floor((diffMs % 86400000) / 3600000)) + minutes.value = Math.max(0, Math.floor((diffMs % 3600000) / 60000)) + } - let timer; - - onMounted(() => { - calculateDiff(); - timer = setInterval(calculateDiff, 60000); - }); + let timer + onMounted(() => { + calculateDiff() + timer = setInterval(calculateDiff, 60000) + }) - onUnmounted(() => { - clearInterval(timer); - }); + onUnmounted(() => { + clearInterval(timer) + }) - return { days, hours, minutes }; + return { days, hours, minutes } } diff --git a/src/pages/login/login.vue b/src/pages/login/login.vue index 74bb11f..e72c002 100644 --- a/src/pages/login/login.vue +++ b/src/pages/login/login.vue @@ -1,122 +1,124 @@ \ No newline at end of file + .logo-img { + width: 220rpx; + margin-bottom: 60rpx; + } +} +.btn_box { + margin-top: 60rpx; +} +.backindex { + margin-top: 20px; +} + diff --git a/src/pages/memberCenter/index.vue b/src/pages/memberCenter/index.vue index edb363a..20fcb64 100644 --- a/src/pages/memberCenter/index.vue +++ b/src/pages/memberCenter/index.vue @@ -1,250 +1,267 @@ \ No newline at end of file +.container { + background: linear-gradient(0deg, #f1f3f9 72%, rgba(129, 179, 222, 0.5) 88%); + height: 100vh; + width: 100%; + overflow-y: auto; + + .main { + width: 100%; + display: grid; + padding: 0 24rpx; + box-sizing: border-box; + overflow-y: hidden; + + .hyCard { + margin-top: 24rpx; + width: 100%; + height: 160rpx; + border-radius: 24rpx; + background: #ffffff; + display: flex; + align-items: center; + justify-content: space-between; + box-sizing: border-box; + padding: 0 20rpx; + + .left { + display: flex; + align-items: center; + box-sizing: border-box; + + .textpart { + margin-left: 32rpx; + display: grid; + justify-content: left; + + .namepart { + display: flex; + align-items: center; + box-sizing: border-box; + + .name { + font-family: Source Han Sans; + font-size: 30rpx; + font-weight: 350; + line-height: 150%; + letter-spacing: normal; + /* 外部/Neutral/Black */ + color: #0c092a; + } + + .biaoq { + padding: 10rpx; + height: 40.5rpx; + border-radius: 0rpx 4rpx 20rpx 0rpx; + margin-left: 16rpx; + font-family: YouSheBiaoTiHei; + font-size: 24rpx; + font-weight: normal; + display: flex; + align-items: center; + letter-spacing: normal; + color: #ffffff; + text-shadow: 0rpx 4rpx 4rpx rgba(0, 0, 0, 0.2); + } + } + + .company { + margin-top: 12rpx; + font-family: Source Han Sans; + font-size: 24rpx; + font-weight: 300; + line-height: 150%; + letter-spacing: normal; + /* 外部/Neutral/Grey 2 */ + color: #858494; + } + } + } + } + } + + :deep(.u-icon__icon) { + color: #007fff !important; + } +} + +.hdzq { + width: 182rpx; + height: 80rpx; + position: fixed; + right: 0; + top: 70%; + margin-right: -14rpx; +} + diff --git a/src/pages/memberCenter/inpart.vue b/src/pages/memberCenter/inpart.vue index 2116592..335fec5 100644 --- a/src/pages/memberCenter/inpart.vue +++ b/src/pages/memberCenter/inpart.vue @@ -1,501 +1,522 @@ \ No newline at end of file +.u-input { + background-color: #ffffff; + height: 100rpx !important; +} + +.u-form-item__body__left__content__label { + white-space: nowrap; +} + diff --git a/src/pages/mine/associatedDetail.vue b/src/pages/mine/associatedDetail.vue index 1e7316a..2ca3a57 100644 --- a/src/pages/mine/associatedDetail.vue +++ b/src/pages/mine/associatedDetail.vue @@ -1,93 +1,88 @@ \ No newline at end of file +.container { + background-color: #ffffff; + height: calc(100vh - 182rpx); + width: 100%; + padding: 40rpx 40rpx 0 40rpx; + box-sizing: border-box; + .titlepart { + margin-top: 40rpx; + display: flex; + align-items: center; + .icon { + width: 12rpx; + height: 32rpx; + border-radius: 0rpx 32rpx 32rpx 0rpx; + /* 蓝色渐变 */ + background: linear-gradient(0deg, #007fff 0%, #99ccff 100%); + } + .title { + margin-left: 18rpx; + font-family: Source Han Sans; + font-size: 30rpx; + font-weight: 350; + line-height: 32rpx; + text-align: justify; /* 浏览器可能不支持 */ + display: flex; + align-items: center; + letter-spacing: normal; + color: #0072ff; + } + } + .texttitle { + font-family: Source Han Sans; + font-size: 36rpx; + font-weight: normal; + letter-spacing: normal; + color: #0c092a; + } + .message { + margin-top: 36rpx; + font-family: Source Han Sans; + font-size: 30rpx; + font-weight: 300; + line-height: 60rpx; + text-align: justify; /* 浏览器可能不支持 */ + display: flex; + align-items: center; + letter-spacing: normal; + color: #3d3d3d; + } + .people { + margin-top: 28rpx; + display: flex; + .text { + font-family: Source Han Sans; + font-size: 32rpx; + font-weight: 300; + line-height: 60rpx; + text-align: justify; /* 浏览器可能不支持 */ + display: flex; + align-items: center; + letter-spacing: normal; + color: #3d3d3d; + } + } +} + diff --git a/src/pages/mine/associatedEnterprise.vue b/src/pages/mine/associatedEnterprise.vue index 494a587..b0a526d 100644 --- a/src/pages/mine/associatedEnterprise.vue +++ b/src/pages/mine/associatedEnterprise.vue @@ -1,86 +1,72 @@ \ No newline at end of file + .text { + margin-top: 24rpx; + font-family: Source Han Sans; + font-size: 20rpx; + font-weight: 350; + display: flex; + align-items: center; + letter-spacing: normal; + color: #858494; + } + } +} + diff --git a/src/pages/mine/completeInformation.vue b/src/pages/mine/completeInformation.vue index ac88777..27cc519 100644 --- a/src/pages/mine/completeInformation.vue +++ b/src/pages/mine/completeInformation.vue @@ -1,284 +1,295 @@ \ No newline at end of file +:deep(.u-upload) { + .u-upload__wrap { + view { + width: 100%; + } + } +} + diff --git a/src/pages/mine/index.vue b/src/pages/mine/index.vue index 3e27551..0ec72c2 100644 --- a/src/pages/mine/index.vue +++ b/src/pages/mine/index.vue @@ -1,189 +1,188 @@ \ No newline at end of file + .but { + margin-top: 160rpx; + width: 574rpx; + height: 96rpx; + border-radius: 248rpx; + background: linear-gradient(90deg, #007fff 0%, #99ccff 100%); + display: flex; + align-items: center; + justify-content: center; + font-family: Source Han Sans; + font-size: 36rpx; + font-weight: 500; + text-align: justify; + /* 浏览器可能不支持 */ + display: flex; + align-items: center; + letter-spacing: normal; + color: #ffffff; + } + } + } +} + diff --git a/src/pages/mine/myApplication.vue b/src/pages/mine/myApplication.vue index 81fb1f0..08b7e1c 100644 --- a/src/pages/mine/myApplication.vue +++ b/src/pages/mine/myApplication.vue @@ -1,196 +1,181 @@ \ No newline at end of file +.classbox { + height: 100vh; + background: #ffffff; + padding: 40rpx 34rpx; + box-sizing: border-box; + overflow-y: auto; + + .pass { + width: 100%; + + .head { + width: 100%; + height: 72rpx; + display: flex; + align-items: center; + background: #007fff; + font-family: Lato; + font-size: 32rpx; + font-weight: normal; + display: flex; + align-items: center; + letter-spacing: 0.76rpx; + /* System Background Primary Light */ + color: #ffffff; + padding-left: 32rpx; + box-sizing: border-box; + } + + .main { + background: #f1f3f9; + padding: 5rpx 16rpx 24rpx 16rpx; + box-sizing: border-box; + border-radius: 0rpx 0rpx 24rpx 24rpx; + } + } + + .reject { + margin-top: 40rpx; + width: 100%; + + .head { + width: 100%; + height: 72rpx; + display: flex; + align-items: center; + background: #ffc36f; + font-family: Lato; + font-size: 32rpx; + font-weight: normal; + display: flex; + align-items: center; + letter-spacing: 0.76rpx; + /* System Background Primary Light */ + color: #ffffff; + padding-left: 32rpx; + box-sizing: border-box; + } + + .main { + background: #f1f3f9; + padding: 5rpx 16rpx 24rpx 16rpx; + box-sizing: border-box; + border-radius: 0rpx 0rpx 24rpx 24rpx; + } + } +} + +.classone { + width: 100%; + border-radius: 16rpx; + background: #ffffff; + display: grid; + align-items: center; + padding: 16rpx 32rpx; + margin-top: 20rpx; + box-sizing: border-box; + + .title { + font-family: Source Han Sans; + font-size: 28rpx; + font-weight: 300; + display: flex; + align-items: center; + letter-spacing: 0.76rpx; + color: #0c092a; + } + + .jindu { + margin-top: 16rpx; + width: 100%; + display: flex; + align-items: center; + + .time { + font-family: Lato; + font-size: 20rpx; + font-weight: normal; + display: flex; + align-items: center; + letter-spacing: normal; + color: #858494; + margin-left: 16rpx; + } + } + .result { + margin-top: 12rpx; + font-family: Source Han Sans; + font-size: 28rpx; + font-weight: 300; + display: flex; + align-items: center; + letter-spacing: 0.76rpx; + color: #fe0000; + } +} + diff --git a/src/pages/mine/myCourses.vue b/src/pages/mine/myCourses.vue index d1ca744..fbcb4c2 100644 --- a/src/pages/mine/myCourses.vue +++ b/src/pages/mine/myCourses.vue @@ -1,104 +1,101 @@ diff --git a/src/pages/mine/porsonalinfo.vue b/src/pages/mine/porsonalinfo.vue index 8065606..5da8b90 100644 --- a/src/pages/mine/porsonalinfo.vue +++ b/src/pages/mine/porsonalinfo.vue @@ -1,381 +1,373 @@ \ No newline at end of file + .jujue { + width: 180rpx; + height: 70rpx; + border-radius: 10rpx; + background: #dadada; + font-family: Source Han Sans; + font-size: 28rpx; + text-align: justify; + /* 浏览器可能不支持 */ + display: flex; + align-items: center; + letter-spacing: normal; + color: #393939; + display: flex; + align-items: center; + justify-content: center; + } + } +} + diff --git a/src/static/img/aiback.png b/src/static/img/aiback.png new file mode 100644 index 0000000000000000000000000000000000000000..1d5823484ae28fe4a8e1811d12279e9d0508eae1 GIT binary patch literal 925 zcmV;O17iG%P)Px#1am@3R0s$N2z&@+hyVZsM@d9MRCt{2+|O+jK@*bZaM%Rx0TH|fAQym4 z1Gs=F4FCls6o4oop@CEo8lZxN20{Zdpd3~rdq`w^XC4Q~4*nA-yAD~6_$8juK*^iVmZ|Y^k zj+$|q`b885F*~klZLdg}?i8Z*!dm^I z|6ss&`SK_z9tTaYdw2PpyEQ~-nRRk=pE=I?AK7WMQQL~2NN?GzmWJqO=622S;eHFF zu-qP`8$-kZ(Y574S{Nb*i00iKB%OWYEVB*+MDrx+5B-EgB7?iRKxw-TR%- z&CsVpG^lyb!e}WG?9M(n3DH?*9WUrUY)KRzNoKpzBt*_Tj)UkyY57J18r{Spu$Aj_tIToT)ex?03 z04NN+E<~lchDHFO24g3pQq=0B5LI0Wh0B{;2LR1tbI#;e)1oR{RrO=)o~+2%%l3myj#Srdil)}4(np4L8^*$y|a(INsY z9uv)KZPX8&PG7;}fMKG)iAq%XX6R{ZQNQ8ena6vcoFx(LmAa$;*jZ+s-1#ol-tbEI z|4D$ul|nQty|C70o+oPcXnZD#9*zLf_yh)k$sTAiM5Yprw{G0$5B}amMBzv;tTnhC ztXut2%giM(NmS7CV(lU!6Oki^h~}iJMR^15+`F~_U4z_s=NN{F?qm`w=erPWPX)^C zgdw6r=4a=2$`Da0X=+iw?mzLaGPJUvncMvXIHEaD?KsgU00000NkvXXu0mjf0;8W0 literal 0 HcmV?d00001 diff --git a/src/static/img/aiimg.png b/src/static/img/aiimg.png new file mode 100644 index 0000000000000000000000000000000000000000..b8a0d408035520483e34faf5ead091fa9117fa32 GIT binary patch literal 6817 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 P00000NkvXXu0mjfs1F%{ literal 0 HcmV?d00001 diff --git a/src/static/img/hdzq.png b/src/static/img/hdzq.png index 267c1cd6ab5021b394e661c15df4606f86b0aa5a..b44f8f2b4fc18b94febe50cb3cd86c3ee0b57453 100644 GIT binary patch delta 2205 zcmV;O2x9lE54RDJGJj`5O+f$vv5yPVa#KJs#E1d`L?lK`5JeCq#s@ATF*bnlL4ia>kQZ+RO$c&{4|08| zMZyb0Ae2%bh;m1E$N&G#`8H=~XJ&`)*2Fl!^+z*n17~_P_kdd;kFA*i`2FLtv)qVnkG9v-AR}oh%X(6`Gk&e!(HFDseCm? zf5RlZvROsv7eYj$RT!(P8M*C|+PNPebn4xWs#-mhh*TtZb?{3Pqkc?X{pN{H)f zKkHtvCwznnMMNx$R8iGyUS0Lrm%mN2sBwkmLQ?zAju>xRPR|^mL(!}IyvIl z_=S=KMJ%RbMcuU1PrEhF0`7>*peL1@^t@-44VdWe%_l@6e$OK;qd2b@5LG?r^eG=Y zw23?7Fn@ohQmt#1I{chcGlzS2ZU*MwS86gu`_Ir9_HPE46D*M6-)W1)6<*iWy!0ZK zaz4bkAj=mjwRo^nPwZCe{I6!xz^tNRt4=Dlb%&V@15O$>!i-~Zq6I%L!|2!^obkbZ zfY-3TQK=;{!fyL21Rd_^6)KzI>k2 z&rv}_$x^%u)-|;#^NH%IUcfjKX3OV~E7flUJ{ZU30RdVUD>Ze$Qpfk1xgc=d{IT9} z1jaM!Jb}a5dIUetz=kNb_f0LI}UvRK*%?4N+y%AjkR-L%`={@O$Wyjp&hn7MPyN>r8d?dZe9QO-nohzm zn^AxZsnxhJDgO+Hep@hRSuVi+mOcul-$KBuQ*-YuQV&#ofN>z2p%0UW}d-x(xfIcD+r25M#15JV@3v63k#O^4d=WJ)r*`G5hj!- z-FhUJQ0ITkbvm*d&U^@SYH?BkWG2;DjZa5_==)@{iABF`NJOMjK$h%VCsB{&Pt&yr4&SWfxfEWcVT23U~<38h7Xd4FZR zrA~9Q5WGM}ELT23<&1MIg{<9s*obj_BaUa;41>o_Kvw!~1%&?DWK9lm2+QhnJcM$U zN#i5VD6IOJY4&pwOJ8%l`C!52H2aJ=mwjz9PFhGL-rELTS5D7E`G4gzBZI40{6dLH zB2-%4aZh1ekYNZ{25Sp$o>@aDaWzHbSl&wL8^Mi9@3L2Iap97k-{XfpiJ83<%V9c} zC3pg&I)&_EgI{8@gRoz<1k}$x=3%xO&gFG;6&EQI!HsiaqXW1+gX0JJjaesV}EsSE;cEX28Mml>EOBu)X5lfN1ViK5@%(l2NQ~awp8=jAS zhs}Nd7c0?!e{I8fhH+C+YgKa`*!G9TxAZjr|HE9&;?)8fwopmo< zUx%4%_?*x=i0|_V%P9GuvaC?B+n2xUwfWi?i>D(wkKuDd=?N5x1PLVvd&_grDAXO; ztsCu|&a`bTn}3sO&3uZ_2_+&^p3NrPvV>(6;ejF+dzFaAW_PoFTbHKWKW(0_+TAbJ zb#*)`iN)bKSzmLThkw;)Bl{>O$9$_Ut3i3gE@Qo~d;J>&x{Z1JvGSV!$?C8GnX(GE z%u%jW?xZu0O1oDt{L=o--~-sjgphx0&SqAWP(=1~OMk&=6idX>0-3Gs7h&z+O~^$A zkk%sW09zzkC&Utp*bWyFL@=6+6OrPhoewAmjjctVo4A#EIWD#%?c+GM1q<2|*(L-d z*+Qczl0_nrnC5<+=@)@pzX|p@As-RJ7R5Fq+YUQ3OprvV`@=6toN*4VC+{WlIbBXL`00000NkvXXu0mjfH%cJ_ delta 1935 zcmV;A2XOee5vvc7GJkVINmK|32nc)#WQYI&2UST#K~#90?OR=J6jc=dc6PT6CD3UQ zvI&q*qtQl6IwlG$F|d7WG|{auRwJ||K43JqMo=FhEove@n6?^?iJC5NeWK-!w@$0k zjXbctkS6{xXh>=zI)FmUcDFv9y}h?HcYb!+s&VH_CNn!T_kY~8=ey_JbAJYi5FtYS z5c`kGX>_c3JxJVx(3s>}b}xcARvc&N{Z-ULlt_wrKyn?y8zM>0!}(5CM9BzJgu_W( zM3g^7V#)wYm2+8mzKXC!ISEhz#4CrgdftCrL+5jQuqoAv_{J^w_(%T#h{aYAQ|P#R zV-};kW&tdN$bYJeDA9|U*CfD5dgAS^c=Y9`uyN~?h$nX;-n6^E|D=JiQjP)m8k{6% z`xPLZM~NXWQ8|)$`pb57^`C_j-&J>|8xiGV9AsND{H?-|C|Q_m0+7VaxM7@1 zcISYZ0eYS*_{(drgv~aM41C7t{Yw>cbd3z`M1SvOuxAVyYa2&Kr!p)$Fr1s`jZjm8 z!88%N-VlkB&EX}mVM}0}(NthKLk5wN#9-MJ{)RLDL|HcXy1_IVEXWH13boz2;P<@B zik??kkT(wJ|6{sos=P4_RrC*Pm_hIheG0nzwJ>4NNRcwktuG#>dm;)8z$2fL!owLd zMt_(vpliU5MLIj-*C<3}JIK>mSj-I3wMZ=MPXY3xGllBH6!XX<)0{9}BU!zZ;pKS2 zFY8m#btqKW>q@QtQ!>TG)@IpcxF8P%h;U7H_gO}Y%8T`m^^h)3jOT&&G4jsVN*~Gk zD}egWj38gHgxleaT&Jr;IB@YrO#AA&41>m0{;r75GDC~}S z_)j6-xqc0JAW%qQ0eGf^|DGA(p>HftS)d3bMaCKJ@ehGUivGBaXqG;UU=74xB!8W< z9aNsR=&ls+cVyWiz`e|wM6fdF=KVb+SD<=^(!q_e8u-ti|Ni|o?ARA5#I%43jT_xh zK^9_6i;NkDC};nqYu+tYl*h8R!g+VO78STEG5A#*xC)+iGV~iH&oBD~cwg9^qlnQv zSs$l*b3r%dh*vQWgp#zhlZ_kFK)TO22u z7O#)VV&358QL^lEBt!Le=e+A>|IM;_{k@Y!me-J_8pwzemxs$J{xy%L&3l6cX(}l@ z)h8b)vH`DY@s2m6`;S4!^75IC!L&RJ)HON=)7*0{o5FGoYjtW>fh!W@v43>hv?{}d z43!Te>EcoM%u8W`?oDKCA2u*JiE^*wFWtHvhA7r&ST>Pm+1%xg6g?l$Q;TKB6jSHVobUY9JH5naer@>J*x(ueN_!a z@#PKXRlp{kSeik+X-9QxMF@=mqP$jkSs%3wpa@_IbMGEre{CBWF~xH`GvFplOeRW| zqX^(G=H9!4-!8w8a_QE(C>jB9@04AImq)Q3Fq|l05ufb-0y8I`#nR0S>!M}^Pp^^@ z#a?FHY)c@bmH^zr*MFyf#Oap9xcwq}D#JAtF9i9|LZ1ldRFe{Lu10pF!teX2 znu&70@AcJT^l4~#_D%PDHLkV1l_sy0QQO diff --git a/src/static/img/xzs.png b/src/static/img/xzs.png index 67bb2927cdbbfa89a8f64ce79b8a54dc8473a3cc..958beede49d5611137107c2657da5a55c44f43b2 100644 GIT binary patch delta 3784 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 a_^Xhv&Fu59zOTM> zh2m5z_wLgY#j6vA?Dqu+S<@{-Cqr?n(e}>bh#We}fyUcsig6o7iFktkodnsNU(xeB#zQ*x=NT2af{szds= z5XdE<77i^fbiHQAL~3Y-g(VhUx0ewr)I(#btlP*XN+mQKQk@BRhRO&FJDQA?%{Xpe zh3*WM5E{E~3)k7a3Kg4Xf9M7k%ExUU5i719R(pqpgYPe|uk@yQbgT*Dzu1!p$Lduh z5l(-+lA6oC4_|9fm8y@ve`LBarWp$Be(!{^(Ag<`!n|`IjF#(7pNGaWK&ZHWYy_Nl zHH;m1==w2(L1>l!WzG}3%Z|!VS3||sGv&G?U;VJKbP)F!Pd!GZYx&!ZlQ^B={7^Eh zbY1_`eP#(`z4ic3&krRF0Df7T2C`zbF|f25k5OhU-<&ip*@dM6(*q~b>UfK;3bTuU vfwoQLz@tb6iKYtmIeG)&RG~v6-O0s2?z@WS3)@3500000NkvXXu0mjfFkmr; delta 732 zcmV<20wevX1?~kQiBL{Q4GJ0x0000DNk~Le0000e0000e2nGNE0F3^)ZIK}$f0#)` zK~z|U?U~PN)KC z6sHTZ))%ni(#`k=5g))TgjUXQmy&4?;-py}2Lx-JA>=p%2Wj>%5F` z4JE&SDpF;WF~YDYaWB`FUIss`f9Ra!u&Cg*xq7S#3r}Zc&2|oJ!3Px$L|9DOJsjO; zDfF}7&CG)LE9!}`Q5R?0nX0N3pUp^=ZCD2Gz19M-OuIZz~{6b5eANL7^LdQ;>Lf`zhrqwt|^;T=3N zP<-Rd)}Ir91+TAaK>ETvScLGcUyED-uC8hzhqT_(qOkP-t^{&rMGFcWM=jI}G5GEt z%%VrF(gtDHO-$bla6iere~B`A)D|6>bdzC?cON$~bw>gX>v0HHALQYLnS;Xiu@df1n{o2LGegN>GX2 zM5)sM?=ARRr#nH1&_BWE1j^Zx2k+`ekH6WhA7LEHD)20`3W{eKN3P`Cy;2@ zP|Pye=5AyaGzOnQVh3P1kZNMMWDHSapxbsjmtAoBRQKy9286~Ii46}GVAdL;)xVRx}I+_Jo$u&l5bHpszBtxW)d|1Bk&vD(al?h8f^~% O0000 { - const openId = ref('') - const mobile = ref('') - const showtoast = ref(false) - const userInfo = ref({}) - const cometype = ref(0) + getPrefixName('user'), + () => { + const openId = ref('') + const mobile = ref('') + const showtoast = ref(false) + const userInfo = ref({}) + const cometype = ref(0) - function getopenid(params : { code : string }) { - return new Promise((resolve, reject) => { - getOpenid(params) - .then((res : any) => { - openId.value = res.data.openid - resolve({ code: 1, message: '登录成功~' }) - }) - .catch((err) => { - reject(err) - }) - }) - } + function getopenid(params: { code: string }) { + return new Promise((resolve, reject) => { + getOpenid(params) + .then((res: any) => { + openId.value = res.data.openid + resolve({ code: 1, message: '登录成功~' }) + }) + .catch((err) => { + reject(err) + }) + }) + } - function getUserInfo() { - return new Promise((resolve, reject) => { - infoForOpenid() - .then((res : any) => { - const { data } = res as { data : userInfoStoreInt } - userInfo.value = data || {} - resolve({ code: 1, data, message: 'SUCCESS' }) - }) - .catch((err) => { - reject(err) - }) + function getUserInfo() { + return new Promise((resolve, reject) => { + infoForOpenid() + .then((res: any) => { + const { data } = res as { data: userInfoStoreInt } + userInfo.value = data || {} + resolve({ code: 1, data, message: 'SUCCESS' }) + }) + .catch((err) => { + reject(err) + }) + }) + } - }) - } + function logOut() { + if (uni.getStorageSync('access_token') === '') { + uni.navigateTo({ + url: '/pages/login/login' + }) + } else { + userInfo.value = {} + uni.clearStorageSync() + const res = logout() + console.log(res, uni.getStorageSync('access_token')) + uni.showToast({ + icon: 'none', + title: '退出成功', + mask: true, + success() { + setTimeout(() => uni.navigateTo({ url: 'pages/login/login' }), 1000) + } + }) + } + } - function logOut() { - if(uni.getStorageSync('access_token') === '') { - uni.navigateTo({ - url: '/pages/login/login' - }) - } else { - userInfo.value = {} - uni.clearStorageSync() - const res = logout() - console.log(res,uni.getStorageSync('access_token')); + return { + openId, + mobile, + showtoast, + userInfo, + getopenid, + getUserInfo, + logOut, + cometype + } + }, + { + unistorage: { + serializer: { + // 序列化,默认为 JSON.stringify + serialize(v) { + return JSON.stringify(v) + }, + // 反序列化,默认为 JSON.parse + deserialize(v) { + return JSON.parse(v) + } + } + } // 开启后对 state 的数据读写都将持久化 + // unistorage: { + // key: 'userInfo', // 缓存的键,默认为该 store 的 id,这里是 main, + // paths: ['userInfo.token'], // 需要缓存的路径,这里设置 foo 和 nested 下的 data 会被缓存 + // // 初始化恢复前触发 + // beforeRestore(ctx: any) { + // console.log(ctx) + // }, + // // 初始化恢复后触发 + // afterRestore(ctx: any) { + // console.log('ctx', ctx) + // }, - uni.showToast({ - icon: 'none', - title: '退出成功', - mask: true, - success() { - setTimeout(() => uni.navigateTo({ url: 'pages/login/login' }), 1000) - } - }) - } - } - - return { - openId, - mobile, - showtoast, - userInfo, - getopenid, - getUserInfo, - logOut, - cometype - } - }, - { - unistorage: { - serializer: { - // 序列化,默认为 JSON.stringify - serialize(v) { - return JSON.stringify(v) - }, - // 反序列化,默认为 JSON.parse - deserialize(v) { - return JSON.parse(v) - } - } - } // 开启后对 state 的数据读写都将持久化 - // unistorage: { - // key: 'userInfo', // 缓存的键,默认为该 store 的 id,这里是 main, - // paths: ['userInfo.token'], // 需要缓存的路径,这里设置 foo 和 nested 下的 data 会被缓存 - // // 初始化恢复前触发 - // beforeRestore(ctx: any) { - // console.log(ctx) - // }, - // // 初始化恢复后触发 - // afterRestore(ctx: any) { - // console.log('ctx', ctx) - // }, - - // }, - } -) \ No newline at end of file + // }, + } +) diff --git a/src/utils/http.ts b/src/utils/http.ts index 543391e..9b44518 100644 --- a/src/utils/http.ts +++ b/src/utils/http.ts @@ -28,10 +28,10 @@ export const request = { url = import.meta.env.VITE_APP_BASE_URL + url // #endif - const header = Object.assign({ 'content-type': 'application/json', - Authorization: '', - 'token': uni.getStorageSync('access_token') || '', - }, headers) + const header = Object.assign( + { 'content-type': 'application/json', Authorization: '', token: uni.getStorageSync('access_token') || '' }, + headers + ) uni.request({ url, @@ -45,10 +45,10 @@ export const request = { case 1: resolve(res.data) break - case 401: - uni.showToast({ title: data.msg, icon: 'none', mask: true }) - uni.removeStorageSync('access_token') - break + case 401: + uni.showToast({ title: data.msg, icon: 'none', mask: true }) + uni.removeStorageSync('access_token') + break default: uni.showToast({ title: data.msg, icon: 'none', mask: true }) reject(res.data)