diff --git a/.neoconf.json b/.neoconf.json new file mode 100644 index 0000000..437bfce --- /dev/null +++ b/.neoconf.json @@ -0,0 +1,10 @@ +{ + "emmet_language_server": { + "init_options": { + "preferences": { + "css.intUnit": "rpx", + "css.floatUnitr": "rpx" + } + } + } +} diff --git a/project.config.json b/project.config.json index b006e07..2e03a50 100644 --- a/project.config.json +++ b/project.config.json @@ -66,7 +66,7 @@ ], "include": [] }, - "appid": "wx2b0bb13edf717c1d", + "appid": "wx385f901f517046d0", "scripts": { "beforeCompile": "pnpm run beforeCompile", "beforePreview": "pnpm run beforeCompile", diff --git a/project.private.config.json b/project.private.config.json index 610b857..22ecfe3 100644 --- a/project.private.config.json +++ b/project.private.config.json @@ -1,6 +1,60 @@ { "libVersion": "3.5.8", - "condition": {}, + "condition": { + "miniprogram": { + "list": [ + { + "name": "创建活动", + "pathName": "pages/actAdd/index", + "query": "", + "scene": null, + "launchMode": "default" + }, + { + "name": "活动报名结果", + "pathName": "pages/actResult/index", + "query": "", + "launchMode": "default", + "scene": null + }, + { + "name": "通知详情", + "pathName": "pages/noticeDetail/index", + "query": "", + "launchMode": "default", + "scene": null + }, + { + "name": "通知", + "pathName": "pages/notice/index", + "query": "", + "launchMode": "default", + "scene": null + }, + { + "name": "活动详情", + "pathName": "pages/actDetail/index", + "query": "", + "launchMode": "default", + "scene": null + }, + { + "name": "活动", + "pathName": "pages/act/index", + "query": "", + "launchMode": "default", + "scene": null + }, + { + "name": "首页", + "pathName": "pages/index/index", + "query": "", + "launchMode": "default", + "scene": null + } + ] + } + }, "projectname": "school-miniprogram", "setting": { "urlCheck": true, diff --git a/src/app.json b/src/app.json index b188573..2105a3c 100644 --- a/src/app.json +++ b/src/app.json @@ -2,23 +2,41 @@ "pages": [ "pages/start/index", "pages/index/index", + "pages/act/index", + "pages/notice/index", + "pages/actDetail/index", + "pages/actResult/index", + "pages/actAdd/index", + "pages/noticeDetail/index", "pages/login/index", "pages/my/index" ], "window": { "backgroundTextStyle": "light", "navigationBarBackgroundColor": "#fff", - "navigationBarTitleText": "校园小程序", - "navigationBarTextStyle": "black" + "navigationBarTitleText": "智能体小程序", + "navigationBarTextStyle": "black", + "navigationStyle": "custom" }, "tabBar": { "custom": true, + "color": "#8E8E93", + "selectedColor": "#4A6CF7", + "backgroundColor": "#ffffff", "list": [ { "pagePath": "pages/index/index", "text": "首页" }, { + "pagePath": "pages/act/index", + "text": "活动" + }, + { + "pagePath": "pages/notice/index", + "text": "通知" + }, + { "pagePath": "pages/my/index", "text": "我的" } diff --git a/src/app.ts b/src/app.ts index 6b0f5c9..b0d0b4c 100644 --- a/src/app.ts +++ b/src/app.ts @@ -1,9 +1,9 @@ import page from '@/utils/page' + import { request } from './api/request' -import { parseScene } from './utils/util' +import { parseScene } from './utils/util' const dayjs = require('dayjs') - const licia = require('miniprogram-licia') require('/utils/dayjs/day-zh-cn.js') const relativeTime = require('/utils/dayjs/relativeTime.js') diff --git a/src/custom-tab-bar/index.json b/src/custom-tab-bar/index.json new file mode 100644 index 0000000..4573acb --- /dev/null +++ b/src/custom-tab-bar/index.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "van-tabbar": "@vant/weapp/tabbar/index", + "van-tabbar-item": "@vant/weapp/tabbar-item/index" + } +} diff --git a/src/custom-tab-bar/index.scss b/src/custom-tab-bar/index.scss new file mode 100644 index 0000000..6e99e06 --- /dev/null +++ b/src/custom-tab-bar/index.scss @@ -0,0 +1,13 @@ +.tab-item { + .icon { + width: 44rpx; + height: 44rpx; + } + .name { + font-size: 24rpx; + color: rgba(148, 163, 184, 1); + &.active { + color: rgba(74, 184, 253, 1); + } + } +} diff --git a/src/custom-tab-bar/index.ts b/src/custom-tab-bar/index.ts new file mode 100644 index 0000000..2e5663d --- /dev/null +++ b/src/custom-tab-bar/index.ts @@ -0,0 +1,67 @@ +import { getCurrentPageUrl } from '@/utils/util' +const app = getApp() + +Component({ + properties: {}, + data: { + imageUrl: app.globalData.imageUrl, + Timestamp: app.globalData.Timestamp, + + isChild: 0, + active: 0, + list: [ + { + pagePath: '/pages/index/index', + text: '首页', + icon: 'tabbar1', + iconActive: 'tabbar11', + }, + { + pagePath: '/pages/act/index', + text: '活动', + icon: 'tabbar2', + iconActive: 'tabbar12', + }, + { + pagePath: '/pages/notice/index', + text: '通知', + icon: 'tabbar3', + iconActive: 'tabbar13', + }, + { + pagePath: '/pages/knowledge/index', + text: '智能体', + icon: 'tabbar4', + iconActive: 'tabbar14', + }, + { + pagePath: '/pages/my/index', + text: '我的', + icon: 'tabbar5', + iconActive: 'tabbar15', + }, + ], + }, + observers: {}, + lifetimes: { + ready() { + const pagePath = getCurrentPageUrl() + const active = this.data.list.findIndex((item) => item.pagePath === pagePath) + this.setData({ + active, + anyWhere: app.globalData.anyWhere, + }) + }, + }, + methods: { + onChange() {}, + handleNav(e) { + const { index } = e.currentTarget.dataset + const { list } = this.data + const pagePath = list[index].pagePath + wx.switchTab({ + url: pagePath, + }) + }, + }, +}) diff --git a/src/custom-tab-bar/index.wxml b/src/custom-tab-bar/index.wxml new file mode 100644 index 0000000..3f340a0 --- /dev/null +++ b/src/custom-tab-bar/index.wxml @@ -0,0 +1,14 @@ + + + + {{item.text}} + + + + diff --git a/src/images/bg1.png b/src/images/bg1.png new file mode 100644 index 0000000..bb802a0 Binary files /dev/null and b/src/images/bg1.png differ diff --git a/src/images/icon1.png b/src/images/icon1.png new file mode 100644 index 0000000..e0ba6e3 Binary files /dev/null and b/src/images/icon1.png differ diff --git a/src/images/icon10.png b/src/images/icon10.png new file mode 100644 index 0000000..62dbaae Binary files /dev/null and b/src/images/icon10.png differ diff --git a/src/images/icon11.png b/src/images/icon11.png new file mode 100644 index 0000000..591ef43 Binary files /dev/null and b/src/images/icon11.png differ diff --git a/src/images/icon12.png b/src/images/icon12.png new file mode 100644 index 0000000..d1a3148 Binary files /dev/null and b/src/images/icon12.png differ diff --git a/src/images/icon13.png b/src/images/icon13.png new file mode 100644 index 0000000..1499d11 Binary files /dev/null and b/src/images/icon13.png differ diff --git a/src/images/icon14.png b/src/images/icon14.png new file mode 100644 index 0000000..3f97fa1 Binary files /dev/null and b/src/images/icon14.png differ diff --git a/src/images/icon15.png b/src/images/icon15.png new file mode 100644 index 0000000..a042589 Binary files /dev/null and b/src/images/icon15.png differ diff --git a/src/images/icon16.png b/src/images/icon16.png new file mode 100644 index 0000000..4e5e18a Binary files /dev/null and b/src/images/icon16.png differ diff --git a/src/images/icon17.png b/src/images/icon17.png new file mode 100644 index 0000000..43f8142 Binary files /dev/null and b/src/images/icon17.png differ diff --git a/src/images/icon18.png b/src/images/icon18.png new file mode 100644 index 0000000..5cf1447 Binary files /dev/null and b/src/images/icon18.png differ diff --git a/src/images/icon19.png b/src/images/icon19.png new file mode 100644 index 0000000..2ad96fc Binary files /dev/null and b/src/images/icon19.png differ diff --git a/src/images/icon2.png b/src/images/icon2.png new file mode 100644 index 0000000..b1f6877 Binary files /dev/null and b/src/images/icon2.png differ diff --git a/src/images/icon20.png b/src/images/icon20.png new file mode 100644 index 0000000..2c157f7 Binary files /dev/null and b/src/images/icon20.png differ diff --git a/src/images/icon21.png b/src/images/icon21.png new file mode 100644 index 0000000..addf53f Binary files /dev/null and b/src/images/icon21.png differ diff --git a/src/images/icon22.png b/src/images/icon22.png new file mode 100644 index 0000000..aa35ffd Binary files /dev/null and b/src/images/icon22.png differ diff --git a/src/images/icon23.png b/src/images/icon23.png new file mode 100644 index 0000000..e61ac73 Binary files /dev/null and b/src/images/icon23.png differ diff --git a/src/images/icon24.png b/src/images/icon24.png new file mode 100644 index 0000000..97a76de Binary files /dev/null and b/src/images/icon24.png differ diff --git a/src/images/icon25.png b/src/images/icon25.png new file mode 100644 index 0000000..4883037 Binary files /dev/null and b/src/images/icon25.png differ diff --git a/src/images/icon26.png b/src/images/icon26.png new file mode 100644 index 0000000..903a4f3 Binary files /dev/null and b/src/images/icon26.png differ diff --git a/src/images/icon27.png b/src/images/icon27.png new file mode 100644 index 0000000..92ea4d2 Binary files /dev/null and b/src/images/icon27.png differ diff --git a/src/images/icon28.png b/src/images/icon28.png new file mode 100644 index 0000000..e7e1d34 Binary files /dev/null and b/src/images/icon28.png differ diff --git a/src/images/icon29.png b/src/images/icon29.png new file mode 100644 index 0000000..8433db5 Binary files /dev/null and b/src/images/icon29.png differ diff --git a/src/images/icon3.png b/src/images/icon3.png new file mode 100644 index 0000000..bc70ece Binary files /dev/null and b/src/images/icon3.png differ diff --git a/src/images/icon30.png b/src/images/icon30.png new file mode 100644 index 0000000..15defa8 Binary files /dev/null and b/src/images/icon30.png differ diff --git a/src/images/icon31.png b/src/images/icon31.png new file mode 100644 index 0000000..f40336a Binary files /dev/null and b/src/images/icon31.png differ diff --git a/src/images/icon32.png b/src/images/icon32.png new file mode 100644 index 0000000..1e2ee71 Binary files /dev/null and b/src/images/icon32.png differ diff --git a/src/images/icon4.png b/src/images/icon4.png new file mode 100644 index 0000000..4bd96af Binary files /dev/null and b/src/images/icon4.png differ diff --git a/src/images/icon5.png b/src/images/icon5.png new file mode 100644 index 0000000..7263ba1 Binary files /dev/null and b/src/images/icon5.png differ diff --git a/src/images/icon6.png b/src/images/icon6.png new file mode 100644 index 0000000..da87bde Binary files /dev/null and b/src/images/icon6.png differ diff --git a/src/images/icon7.png b/src/images/icon7.png new file mode 100644 index 0000000..9d7baf3 Binary files /dev/null and b/src/images/icon7.png differ diff --git a/src/images/icon8.png b/src/images/icon8.png new file mode 100644 index 0000000..3669a83 Binary files /dev/null and b/src/images/icon8.png differ diff --git a/src/images/icon9.png b/src/images/icon9.png new file mode 100644 index 0000000..c934259 Binary files /dev/null and b/src/images/icon9.png differ diff --git a/src/images/tabbar1.png b/src/images/tabbar1.png new file mode 100644 index 0000000..82a60e1 Binary files /dev/null and b/src/images/tabbar1.png differ diff --git a/src/images/tabbar11.png b/src/images/tabbar11.png new file mode 100644 index 0000000..9e62348 Binary files /dev/null and b/src/images/tabbar11.png differ diff --git a/src/images/tabbar12.png b/src/images/tabbar12.png new file mode 100644 index 0000000..9bdd9a5 Binary files /dev/null and b/src/images/tabbar12.png differ diff --git a/src/images/tabbar13.png b/src/images/tabbar13.png new file mode 100644 index 0000000..97acc53 Binary files /dev/null and b/src/images/tabbar13.png differ diff --git a/src/images/tabbar14.png b/src/images/tabbar14.png new file mode 100644 index 0000000..1d4db0b Binary files /dev/null and b/src/images/tabbar14.png differ diff --git a/src/images/tabbar15.png b/src/images/tabbar15.png new file mode 100644 index 0000000..704c68a Binary files /dev/null and b/src/images/tabbar15.png differ diff --git a/src/images/tabbar2.png b/src/images/tabbar2.png new file mode 100644 index 0000000..832d09e Binary files /dev/null and b/src/images/tabbar2.png differ diff --git a/src/images/tabbar3.png b/src/images/tabbar3.png new file mode 100644 index 0000000..cc8df84 Binary files /dev/null and b/src/images/tabbar3.png differ diff --git a/src/images/tabbar4.png b/src/images/tabbar4.png new file mode 100644 index 0000000..7b13259 Binary files /dev/null and b/src/images/tabbar4.png differ diff --git a/src/images/tabbar5.png b/src/images/tabbar5.png new file mode 100644 index 0000000..d8a0ef3 Binary files /dev/null and b/src/images/tabbar5.png differ diff --git a/src/pages/act/index.json b/src/pages/act/index.json new file mode 100644 index 0000000..e33ae3f --- /dev/null +++ b/src/pages/act/index.json @@ -0,0 +1,7 @@ +{ + "navigationStyle": "default", + "navigationBarTitleText": "活动", + "usingComponents": { + "van-popup": "@vant/weapp/popup/index" + } +} diff --git a/src/pages/act/index.scss b/src/pages/act/index.scss new file mode 100644 index 0000000..1f494fc --- /dev/null +++ b/src/pages/act/index.scss @@ -0,0 +1,327 @@ +page { + background-color: rgba(247, 248, 250, 1); +} +.page { + padding-bottom: calc(60px + env(safe-area-inset-bottom)); + .page-header { + padding: 30rpx 30rpx 0; + background-color: #fff; + .search { + margin: 30rpx; + padding: 12rpx 24rpx; + display: flex; + align-items: center; + gap: 16rpx; + background-color: rgba(247, 248, 250, 1); + border-radius: 40rpx; + .icon { + width: 38rpx; + height: 38rpx; + } + .content { + font-size: 28rpx; + color: rgba(148, 163, 184, 0.7); + line-height: 44rpx; + } + } + .options { + display: flex; + .tabs { + flex: 1; + overflow-x: auto; + display: flex; + align-items: center; + flex-wrap: nowrap; + overflow-x: auto; + &::-webkit-scrollbar { + display: none; + } + .tab { + flex-shrink: 0; + padding: 10rpx 18rpx 16rpx; + font-size: 28rpx; + color: rgba(71, 85, 105, 1); + &.active { + position: relative; + font-size: 36rpx; + color: rgba(74, 184, 253, 1); + &::after { + position: absolute; + bottom: 0; + left: 50%; + transform: translateX(-50%); + content: ''; + display: block; + width: 32rpx; + height: 6rpx; + background: #4ab8fd; + border-radius: 19228rpx 19228rpx 19228rpx 19228rpx; + } + } + } + } + .filter-btn { + margin-top: 2rpx; + align-self: start; + padding: 8rpx 24rpx; + flex-shrink: 0; + display: flex; + align-items: center; + gap: 6rpx; + background-color: rgba(247, 248, 250, 1); + border-radius: 40rpx; + font-size: 28rpx; + color: rgba(74, 184, 253, 1); + .icon { + width: 32rpx; + height: 32rpx; + } + } + } + } + .type-list { + padding: 32rpx 30rpx; + display: flex; + gap: 30rpx; + flex-wrap: nowrap; + overflow-x: auto; + &::-webkit-scrollbar { + display: none; + } + .type { + flex-shrink: 0; + .icon { + display: block; + margin: 0 auto; + width: 32rpx; + height: 32rpx; + padding: 30rpx; + background-color: rgba(255, 255, 255, 1); + border-radius: 16rpx; + } + .icon-active { + display: none; + margin: 0 auto; + width: 32rpx; + height: 32rpx; + padding: 30rpx; + background: linear-gradient(90deg, #9ddffd 0%, #4ab8fd 100%); + border-radius: 16rpx; + } + .name { + margin-top: 15rpx; + font-size: 28rpx; + color: rgba(71, 85, 105, 1); + text-align: center; + } + &.active { + .icon { + display: none; + } + .icon-active { + display: block; + } + .name { + color: rgba(74, 184, 253, 1); + } + } + } + } + .banner { + margin: 30rpx 30rpx 0; + height: 230rpx; + .b-img { + display: block; + width: 100%; + height: 100%; + } + } + .list { + margin: 30rpx; + .card { + margin-bottom: 24rpx; + padding: 24rpx; + display: flex; + gap: 24rpx; + background-color: #fff; + border-radius: 24rpx; + &:last-of-type { + border: none; + } + .photo { + flex-shrink: 0; + position: relative; + width: 262rpx; + height: 196rpx; + border-radius: 16rpx; + overflow: hidden; + .status { + position: absolute; + top: 0; + left: 0; + padding: 8rpx 16rpx; + font-size: 22rpx; + color: rgba(255, 255, 255, 1); + background: #feb54a; + border-radius: 16rpx 0rpx 16rpx 0rpx; + } + .p-img { + border-radius: 16rpx; + display: block; + width: 100%; + height: 100%; + } + .user { + position: absolute; + bottom: 0; + left: 0; + width: 100%; + box-sizing: border-box; + text-align: center; + line-height: 44rpx; + font-size: 24rpx; + color: rgba(255, 255, 255, 1); + background-color: rgba(0, 0, 0, 0.36); + backdrop-filter: blur(8rpx); + } + } + .wrap { + .title { + margin-bottom: 28rpx; + font-size: 32rpx; + color: rgba(17, 24, 39, 1); + line-height: 48rpx; + font-weight: bold; + height: 96rpx; + overflow: hidden; + text-overflow: ellipsis; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; + } + .date, + .site { + margin-top: 12rpx; + font-size: 28rpx; + color: rgba(100, 116, 139, 1); + display: flex; + align-items: center; + gap: 8rpx; + .icon { + width: 22rpx; + height: 22rpx; + } + } + } + } + } +} + +.aside-bar { + position: fixed; + right: 30rpx; + bottom: 290rpx; + width: 110rpx; + height: 110rpx; + background: linear-gradient(90deg, #9ddffd 0%, #4ab8fd 100%); + box-shadow: + inset 0rpx 4rpx 24rpx 0rpx rgba(255, 255, 255, 0.25), + 0rpx 15rpx 30rpx -6rpx rgba(74, 172, 219, 0.4); + border-radius: 55rpx 55rpx 55rpx 55rpx; + text-align: center; + padding-top: 14rpx; + box-sizing: border-box; + .icon { + width: 50rpx; + height: 50rpx; + } + .name { + font-size: 20rpx; + color: rgba(255, 255, 255, 1); + } +} + +.popup { + background: #fff; + padding: 32rpx 30rpx 120rpx; + .popup-line { + margin: 0 auto; + width: 77rpx; + height: 8rpx; + background: #c0c6d6; + border-radius: 20rpx; + } + .row { + .r-title { + margin-top: 42rpx; + font-size: 36rpx; + color: rgba(17, 24, 39, 1); + font-weight: bold; + } + .select { + margin-top: 24rpx; + display: flex; + flex-wrap: wrap; + gap: 23rpx 16rpx; + .s-item { + font-size: 32rpx; + color: rgba(71, 85, 105, 1); + padding: 15rpx 30rpx; + background: #f7f8fa; + border-radius: 15rpx 15rpx 15rpx 15rpx; + } + } + .date-raneg { + margin-top: 24rpx; + display: flex; + align-items: center; + gap: 23rpx; + .line { + color: rgba(192, 198, 214, 1); + } + .date { + flex: 1; + .content { + padding: 23rpx; + display: flex; + align-items: center; + justify-content: center; + gap: 8rpx; + background: #f8fafd; + border-radius: 16rpx 16rpx 16rpx 16rpx; + .icon { + width: 33rpx; + height: 33rpx; + } + } + } + } + } + .popup-footer { + margin-top: 56rpx; + display: flex; + gap: 30rpx; + .cancel, + .sure { + display: flex; + align-items: center; + justify-content: center; + } + .cancel { + flex: 1; + border-radius: 16rpx 16rpx 16rpx 16rpx; + border: 1px solid #4ab8fd; + font-size: 32rpx; + color: rgba(74, 184, 253, 1); + } + .sure { + flex: 1; + height: 96rpx; + background: linear-gradient(90deg, #9ddffd 0%, #4ab8fd 100%); + box-shadow: 0rpx 15rpx 30rpx -6rpx rgba(74, 172, 219, 0.4); + border-radius: 16rpx 16rpx 16rpx 16rpx; + font-size: 32rpx; + color: #fff; + } + } +} diff --git a/src/pages/act/index.ts b/src/pages/act/index.ts new file mode 100644 index 0000000..d1531fc --- /dev/null +++ b/src/pages/act/index.ts @@ -0,0 +1,52 @@ +const _app = getApp() + +Page({ + data: { + filterShow: true, + typeList: [ + { + name: '全部分类', + icon: '5', + iconActive: '6', + }, + { + name: '学术科技', + icon: '7', + iconActive: '8', + }, + { + name: '文体艺术', + icon: '9', + iconActive: '10', + }, + { + name: '志愿公益', + icon: '11', + iconActive: '12', + }, + { + name: '创新创业', + icon: '13', + iconActive: '14', + }, + ], + }, + onLoad() {}, + handlePopupClose() { + this.setData({ + filterShow: false, + }) + }, + handleApply() { + wx.navigateTo({ + url: '/pages/actAdd/index', + }) + }, + handleDetail() { + wx.navigateTo({ + url: '/pages/actDetail/index', + }) + }, +}) + +export {} diff --git a/src/pages/act/index.wxml b/src/pages/act/index.wxml new file mode 100644 index 0000000..73e420f --- /dev/null +++ b/src/pages/act/index.wxml @@ -0,0 +1,94 @@ + + + + + 请搜索你想要的内容 + + + + 全部 + + + + 筛选 + + + + + + + + 全部分类 + + + + + + + 进行中 + + 128人已报名 + + + + 深职大第十五届校园歌手大赛深职大第十五届校园歌手大深职大第十五届校园歌手大深职大第十五届校园歌手大赛赛赛 + + + + 2026.04.01-2026.05.30 + + + + 留仙洞校区音乐厅 + + + + + + + + + 活动申请 + + + + + + + 时间筛选 + + 全部时间 + 今天 + 本周 + 本月 + 自定义时间 + + + + 时间范围 + + + + 2026-05-28 + + + + - + + + 2026-05-28 + + + + + + + 取消 + 确定 + + + diff --git a/src/pages/actAdd/index.json b/src/pages/actAdd/index.json new file mode 100644 index 0000000..a97367d --- /dev/null +++ b/src/pages/actAdd/index.json @@ -0,0 +1,3 @@ +{ + "usingComponents": {} +} diff --git a/src/pages/actAdd/index.scss b/src/pages/actAdd/index.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/pages/actAdd/index.ts b/src/pages/actAdd/index.ts new file mode 100644 index 0000000..067b6bb --- /dev/null +++ b/src/pages/actAdd/index.ts @@ -0,0 +1,8 @@ +const _app = getApp(); + +Page({ + data: {}, + onLoad() {}, +}); + +export {} diff --git a/src/pages/actAdd/index.wxml b/src/pages/actAdd/index.wxml new file mode 100644 index 0000000..e69de29 diff --git a/src/pages/actDetail/index.json b/src/pages/actDetail/index.json new file mode 100644 index 0000000..eaefbc1 --- /dev/null +++ b/src/pages/actDetail/index.json @@ -0,0 +1,8 @@ +{ + "usingComponents": { + "van-icon": "@vant/weapp/icon/index", + "van-count-down": "@vant/weapp/count-down/index", + "mp-html": "mp-html", + "van-rate": "@vant/weapp/rate/index" + } +} diff --git a/src/pages/actDetail/index.scss b/src/pages/actDetail/index.scss new file mode 100644 index 0000000..0c41abb --- /dev/null +++ b/src/pages/actDetail/index.scss @@ -0,0 +1,278 @@ +page { + background-color: rgba(248, 250, 253, 1); +} +.page-title { + font-size: 32rpx; + color: #fff; +} +.page-back { + font-size: 32rpx; + color: #fff; +} + +.page { + min-height: 100vh; + box-sizing: border-box; + padding-bottom: 280rpx; + .info-card { + margin: 349rpx 30rpx 0; + padding: 48rpx 30rpx 40rpx; + background-color: #fff; + border-radius: 24rpx; + .title { + font-size: 40rpx; + color: rgba(17, 24, 39, 1); + font-weight: bold; + line-height: 56rpx; + } + .stat { + margin-top: 28rpx; + display: flex; + align-items: center; + flex-wrap: wrap; + gap: 32rpx; + .user { + flex: 1; + display: flex; + align-items: center; + gap: 18rpx; + .avatar-wrap { + display: flex; + align-items: center; + .icon { + margin-right: -8rpx; + width: 40rpx; + height: 40rpx; + } + } + .content { + font-size: 24rpx; + color: rgba(148, 163, 184, 1); + } + } + .pv, + .share { + flex-shrink: 0; + display: flex; + align-items: center; + gap: 12rpx; + font-size: 24rpx; + color: rgba(148, 163, 184, 1); + .icon { + width: 34rpx; + height: 34rpx; + } + } + } + .tags { + margin-top: 25rpx; + display: flex; + flex-wrap: wrap; + gap: 16rpx; + .tag { + padding: 4rpx 16rpx; + font-size: 24rpx; + border-radius: 8rpx; + color: rgba(74, 184, 253, 1); + background-color: rgba(74, 184, 253, 0.1); + } + } + .row-wrap { + margin-top: 24rpx; + border-top: 1px solid rgba(136, 142, 152, 0.19); + .row { + margin-top: 34rpx; + display: flex; + align-items: center; + gap: 12rpx; + .icon { + flex-shrink: 0; + width: 36rpx; + height: 36rpx; + } + .content { + font-size: 28rpx; + color: rgba(71, 85, 105, 1); + } + } + } + } + + .rich-card { + margin: 24rpx 30rpx 0; + padding: 30rpx; + background-color: #fff; + border-radius: 24rpx; + .r-title { + font-size: 36rpx; + color: rgba(17, 24, 39, 1); + font-weight: bold; + display: flex; + align-items: center; + gap: 20rpx; + &::before { + margin-left: -30rpx; + content: ''; + display: block; + width: 10rpx; + height: 36rpx; + background: #4ab8fd; + border-radius: 0 12rpx 12rpx 0; + } + } + .mp-html { + margin-top: 30rpx; + } + } + + .comment-list { + margin: 42rpx 30rpx 0; + .c-title { + font-size: 36rpx; + color: rgba(25, 28, 30, 1); + font-weight: bold; + } + .c-card { + margin-top: 30rpx; + padding: 30rpx; + background-color: #fff; + border-radius: 24rpx; + .user { + display: flex; + .avatar { + flex-shrink: 0; + width: 84rpx; + height: 84rpx; + border-radius: 50%; + } + .wrap { + padding-left: 16rpx; + .naem { + font-size: 32rpx; + color: rgba(17, 24, 39, 1); + } + .rate { + display: flex; + align-items: baseline; + gap: 10rpx; + .r-status { + font-size: 24rpx; + color: rgba(254, 181, 74, 1); + } + } + } + } + .content { + margin-top: 32rpx; + font-size: 28rpx; + color: rgba(71, 85, 105, 1); + line-height: 42rpx; + } + .photo-wrap { + margin-top: 32rpx; + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 18rpx; + .photo-item { + aspect-ratio: 1 / 1; + .photo { + width: 100%; + height: 100%; + border-radius: 16rpx; + } + } + } + .c-footer { + margin-top: 24rpx; + display: flex; + align-items: center; + justify-content: space-between; + gap: 24rpx; + .date { + flex: 1; + font-size: 28rpx; + color: rgba(148, 163, 184, 1); + } + .stat { + display: flex; + align-items: center; + gap: 24rpx; + .s-item { + display: flex; + align-items: center; + gap: 12rpx; + .icon { + width: 36rpx; + height: 36rpx; + } + .s-content { + font-size: 28rpx; + color: rgba(100, 116, 139, 1); + } + } + } + } + } + } + + .footer { + position: fixed; + bottom: 0; + left: 0; + width: 100%; + background-color: #fff; + .count-down-wrap { + padding: 10rpx 0; + position: absolute; + top: 0; + left: 50%; + width: 100%; + transform: translate(-50%, -100%); + background-color: rgba(255, 246, 233, 1); + .count-down { + display: flex; + align-items: center; + justify-content: center; + font-size: 28rpx; + gap: 8rpx; + white-space: nowrap; + color: rgba(254, 181, 74, 1); + .c-item { + padding: 0 10rpx; + color: #fff; + line-height: 56rpx; + background-color: rgba(254, 181, 74, 1); + min-width: 50rpx; + text-align: center; + box-sizing: border-box; + border-radius: 4rpx; + } + } + } + .options { + padding: 32rpx 32rpx calc(env(safe-area-inset-bottom) + 16rpx); + display: flex; + align-items: center; + gap: 26rpx; + .com, + .btn { + flex: 1; + height: 96rpx; + display: flex; + align-items: center; + justify-content: center; + box-sizing: border-box; + border-radius: 16rpx; + font-size: 32rpx; + } + .com { + color: rgba(74, 184, 253, 1); + border: 1px solid #4ab8fd; + } + .btn { + color: #fff; + background: linear-gradient(90deg, #9ddffd 0%, #4ab8fd 100%); + } + } + } +} diff --git a/src/pages/actDetail/index.ts b/src/pages/actDetail/index.ts new file mode 100644 index 0000000..067b6bb --- /dev/null +++ b/src/pages/actDetail/index.ts @@ -0,0 +1,8 @@ +const _app = getApp(); + +Page({ + data: {}, + onLoad() {}, +}); + +export {} diff --git a/src/pages/actDetail/index.wxml b/src/pages/actDetail/index.wxml new file mode 100644 index 0000000..e1a81f3 --- /dev/null +++ b/src/pages/actDetail/index.wxml @@ -0,0 +1,127 @@ + + + 详情 + + + + + 深职大第十五届校园歌手大赛 + + + + + + + + 1345人已报名 + + + + 134次 + + + + + 校园活动 + 学生会 + + + + + 报名时间 2026.5.30 - 2026.6.30. + + + + 活动时间 2026.7.1 19:00 - 2026.7.1 21:00 + + + + 活动地点 留仙洞校区音乐厅 + + + + 主办方 学生会 + + + + + + 活动介绍 + + + + + 精彩评论 (21条) + + + + + 李可可 + + + 非常满意 + + + + + 本次活动组织有序,流程顺畅,现场氛围良好。活动内容丰富、安排合理,服务贴心到位,整体体验良好。歌手们的实力都很强! + + + + + + + + 2026-01-01 12:00:00 + + + + 34 + + + + 回复 + + + + + + + + + + 倒计时 + + {{timeData.days}} + 天 + + + {{timeData.hours}} + 时 + + + {{timeData.minutes}} + 分 + + {{timeData.seconds}} + 秒 + + + + 去评论 + 我要报名 + + + diff --git a/src/pages/actResult/index.json b/src/pages/actResult/index.json new file mode 100644 index 0000000..a97367d --- /dev/null +++ b/src/pages/actResult/index.json @@ -0,0 +1,3 @@ +{ + "usingComponents": {} +} diff --git a/src/pages/actResult/index.scss b/src/pages/actResult/index.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/pages/actResult/index.ts b/src/pages/actResult/index.ts new file mode 100644 index 0000000..067b6bb --- /dev/null +++ b/src/pages/actResult/index.ts @@ -0,0 +1,8 @@ +const _app = getApp(); + +Page({ + data: {}, + onLoad() {}, +}); + +export {} diff --git a/src/pages/actResult/index.wxml b/src/pages/actResult/index.wxml new file mode 100644 index 0000000..e69de29 diff --git a/src/pages/index/index.json b/src/pages/index/index.json index a97367d..2352750 100644 --- a/src/pages/index/index.json +++ b/src/pages/index/index.json @@ -1,3 +1,9 @@ { - "usingComponents": {} + "navigationStyle": "custom", + "usingComponents": { + "van-icon": "@vant/weapp/icon/index", + "van-notice-bar": "@vant/weapp/notice-bar/index", + "van-tab": "@vant/weapp/tab/index", + "van-tabs": "@vant/weapp/tabs/index" + } } diff --git a/src/pages/index/index.scss b/src/pages/index/index.scss index 5c7ea70..0875e8b 100644 --- a/src/pages/index/index.scss +++ b/src/pages/index/index.scss @@ -1,3 +1,242 @@ +page { + background: rgba(247, 248, 250, 1); +} .page { - padding: 20rpx; + position: relative; + min-height: 100vh; + padding-bottom: calc(60px + env(safe-area-inset-bottom)); + .search { + margin: 30rpx; + padding: 10rpx 24rpx; + display: flex; + align-items: center; + gap: 16rpx; + background-color: #fff; + border-radius: 40rpx; + .icon { + width: 38rpx; + height: 38rpx; + } + .content { + font-size: 28rpx; + color: rgba(148, 163, 184, 0.7); + line-height: 44rpx; + } + } + .notice { + margin: 353rpx 30rpx 0; + padding: 12rpx 24rpx; + background-color: #fff; + border-radius: 59rpx; + display: flex; + align-items: center; + gap: 12rpx; + .icon { + flex-shrink: 0; + width: 36rpx; + height: 36rpx; + } + .content { + flex: 1; + font-size: 28rpx; + color: rgba(71, 85, 105, 1); + --notice-bar-padding: 0; + --notice-bar-line-height: 40rpx; + --notice-bar-height: 40rpx; + } + .more { + color: rgba(148, 163, 184, 1); + } + } + .kkd { + margin: 32rpx 30rpx; + padding: 36rpx; + background-color: #fff; + border-radius: 24rpx; + display: flex; + justify-content: space-between; + .k-item { + text-align: center; + flex: 1; + .icon { + width: 120rpx; + height: 120rpx; + } + .name { + margin-top: 13rpx; + font-size: 28rpx; + color: rgba(71, 85, 105, 1); + } + } + } + .module { + margin: 35rpx 30rpx 0; + .m-header { + display: flex; + align-content: inherit; + justify-content: space-between; + .title { + font-size: 36rpx; + color: rgba(15, 29, 63, 1); + font-weight: bold; + } + .more { + font-size: 28rpx; + color: rgba(148, 163, 184, 1); + } + } + .activity-list { + margin: 20rpx -30rpx; + padding-left: 30rpx; + display: flex; + flex-wrap: nowrap; + gap: 24rpx; + overflow-x: auto; + &::-webkit-scrollbar { + display: none; + } + .a-card { + flex-shrink: 0; + width: 653rpx; + height: 218rpx; + .a-img { + display: block; + width: 100%; + height: 100%; + border-radius: 24rpx; + } + } + } + .agent-list { + margin: 20rpx -30rpx; + padding-left: 30rpx; + display: flex; + flex-wrap: nowrap; + gap: 24rpx; + overflow-x: auto; + &::-webkit-scrollbar { + display: none; + } + .a-card { + flex-shrink: 0; + padding-top: 44rpx; + width: 200rpx; + height: 264rpx; + background-color: #fff; + border-radius: 24rpx; + box-sizing: border-box; + .icon { + display: block; + margin: 0 auto; + width: 112rpx; + height: 112rpx; + border-radius: 16rpx; + } + .name { + margin-top: 32rpx; + padding: 0 10rpx; + font-size: 28rpx; + color: rgba(71, 85, 105, 1); + text-align: center; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + } + } + } + } + .recommend { + margin: 42rpx 30rpx 0; + --tabs-nav-background-color: transparent; + --tab-font-size: 32rpx; + .van-tab--active { + --tab-font-size: 36rpx; + font-weight: bold; + } + .van-tabs__line { + display: none; + } + .van-tab { + position: relative; + flex: none; + } + .van-tab--active::after { + content: ''; + display: block; + position: absolute; + bottom: 0; + left: 50%; + transform: translateX(-50%); + width: 42rpx; + height: 8rpx; + background: #4ab8fd; + border-radius: 37rpx 37rpx 37rpx 37rpx; + } + .van-tabs__nav { + gap: 70rpx; + } + .r-activity-list { + margin-top: 32rpx; + padding: 0 32rpx; + border-radius: 16rpx; + background-color: #fff; + .card { + padding: 24rpx 0; + display: flex; + gap: 24rpx; + padding-bottom: 24rpx; + border-bottom: 1px solid rgba(148, 163, 184, 0.1); + &:last-of-type{ + border: none; + } + .photo { + flex-shrink: 0; + position: relative; + width: 262rpx; + height: 196rpx; + .status { + position: absolute; + top: 0; + left: 0; + padding: 8rpx 16rpx; + font-size: 22rpx; + color: rgba(255, 255, 255, 1); + background: #feb54a; + border-radius: 16rpx 0rpx 16rpx 0rpx; + } + .p-img { + border-radius: 16rpx; + display: block; + width: 100%; + height: 100%; + } + } + .wrap { + .title { + font-size: 32rpx; + color: rgba(17, 24, 39, 1); + line-height: 48rpx; + font-weight: bold; + } + .user { + margin-top: 18rpx; + color: rgba(100, 116, 139, 1); + font-size: 24rpx; + } + .date { + margin-top: 20rpx; + font-size: 24rpx; + color: rgba(100, 116, 139, 1); + display: flex; + align-items: center; + gap: 8rpx; + .icon { + width: 22rpx; + height: 22rpx; + } + } + } + } + } + } } diff --git a/src/pages/index/index.ts b/src/pages/index/index.ts index bea17d2..e9618c5 100644 --- a/src/pages/index/index.ts +++ b/src/pages/index/index.ts @@ -2,11 +2,99 @@ const app = getApp() Page({ data: { - title: '首页', + statusBarHeight: 44, + activeTab: 0, + navItems: [ + { type: 'schedule', label: '智能课表', icon: '/images/icon_schedule.png' }, + { type: 'bus', label: '校园巴士', icon: '/images/icon_bus.png' }, + { type: 'race', label: '活动报名', icon: '/images/icon_race.png' }, + { type: 'ai', label: 'AI辅导员', icon: '/images/icon_ai.png' }, + ], + tabList: [ + { label: '首页', icon: '/images/icon_home_active.png' }, + { label: '活动', icon: '/images/icon_calendar.png' }, + { label: '智能体', icon: '/images/icon_ai.png' }, + { label: '通知', icon: '/images/icon_bell.png' }, + { label: '我的', icon: '/images/icon_user.png' }, + ], + recommendAgents: [ + { id: 'ppt', name: 'PPT小助手', icon: '/images/agent_ppt.png', bgImage: '/images/activity_1.png' }, + { id: 'ielts', name: '雅思模拟考官', icon: '/images/agent_ielts.png', bgImage: '/images/activity_2.png' }, + { id: 'pdf', name: 'PDF翻译', icon: '/images/agent_pdf.png', bgImage: '/images/activity_3.png' }, + ], + recommendActivities: [ + { + id: '3', + title: '英语角交流活动', + desc: '提升口语能力', + time: '活动时间:2026-04-01~2026-05-30', + image: '/images/activity_1.png', + }, + { + id: '4', + title: '大学生创业项目大赛', + desc: '提升创新能力', + time: '活动时间:2026-04-01~2026-05-30', + image: '/images/activity_2.png', + }, + ], + hotActivities: [ + { + id: '1', + title: '计算机学院编程大赛', + image: '/images/activity_1.png', + deadline: '截止日期:2026年5月30日', + }, + { + id: '2', + title: '创新创业项目路演', + image: '/images/activity_2.png', + deadline: '截止日期:2026年6月15日', + }, + ], }, + onLoad() { + const sysInfo = wx.getSystemInfoSync() + this.setData({ statusBarHeight: sysInfo.statusBarHeight || 44 }) app.waitLogin() }, + + onSearchTap() { + wx.showToast({ title: '搜索功能开发中', icon: 'none' }) + }, + + onNavTap(e: WechatMiniprogram.TouchEvent) { + const type = e.currentTarget.dataset.type + wx.showToast({ title: `${type}功能开发中`, icon: 'none' }) + }, + + onAnnounceTap() { + wx.showToast({ title: '公告详情开发中', icon: 'none' }) + }, + + onMoreAgentsTap() { + wx.showToast({ title: '更多智能体开发中', icon: 'none' }) + }, + + onAgentTap(e: WechatMiniprogram.TouchEvent) { + const id = e.currentTarget.dataset.id + wx.navigateTo({ url: `/pages/agent/index?id=${id}` }) + }, + + onActivityTap(e: WechatMiniprogram.TouchEvent) { + const id = e.currentTarget.dataset.id + wx.navigateTo({ url: `/pages/activity-detail/index?id=${id}` }) + }, + + onTabTap(e: WechatMiniprogram.TouchEvent) { + const index = e.currentTarget.dataset.index + if (index === this.data.activeTab) return + this.setData({ activeTab: index }) + if (index === 4) { + wx.switchTab({ url: '/pages/my/index' }) + } + }, }) export {} diff --git a/src/pages/index/index.wxml b/src/pages/index/index.wxml index 0e4eb3e..056211b 100644 --- a/src/pages/index/index.wxml +++ b/src/pages/index/index.wxml @@ -1,3 +1,86 @@ - - {{title}} + + + + 请搜索你想要的内容 + + + + + + + + + + + + 智能课表 + + + + + 热门活动 + + 查看详情 + + + + + + + + + + + + 推荐智能体 + + 查看详情 + + + + + + + PPT小助手 + + + + + + + + + + 进行中 + + + + 深职大第十五届校园歌手大赛 + 128人已报名 + + + 2026.04.01-2026.05.30 + + + + + + 内容 2 + + diff --git a/src/pages/notice/index.json b/src/pages/notice/index.json new file mode 100644 index 0000000..0e929f8 --- /dev/null +++ b/src/pages/notice/index.json @@ -0,0 +1,9 @@ +{ + "navigationBarTitleText": "通知", + "navigationStyle": "default", + "usingComponents": { + "van-tab": "@vant/weapp/tab/index", + "van-tabs": "@vant/weapp/tabs/index", + "van-icon": "@vant/weapp/icon/index" + } +} diff --git a/src/pages/notice/index.scss b/src/pages/notice/index.scss new file mode 100644 index 0000000..87c9258 --- /dev/null +++ b/src/pages/notice/index.scss @@ -0,0 +1,125 @@ +page { + background-color: rgba(247, 248, 250, 1); +} + +.page { + .tabs { + .van-tabs__line { + width: 32rpx !important; + } + .van-tab--active { + --tab-font-size: 32rpx; + } + } + .page0 { + padding: 0 32rpx; + .module { + margin-top: 32rpx; + .date { + font-size: 28rpx; + color: rgba(148, 163, 184, 1); + text-align: center; + } + .card { + margin-top: 24rpx; + background-color: #fff; + border-radius: 24rpx; + padding: 32rpx; + .title { + font-size: 32rpx; + color: rgba(17, 24, 39, 1); + font-weight: bold; + } + .content { + margin-top: 24rpx; + font-size: 28rpx; + color: rgba(100, 116, 139, 1); + line-height: 44rpx; + } + .c-footer { + margin-top: 32rpx; + padding-top: 22rpx; + border-top: 1px solid rgba(235, 235, 235, 1); + display: flex; + align-items: center; + justify-content: space-between; + .tag { + font-size: 24rpx; + color: rgba(74, 184, 253, 1); + padding: 4rpx 16rpx; + border-radius: 6rpx; + background-color: rgba(74, 184, 253, 0.1); + } + .detail { + font-size: 28rpx; + color: rgba(148, 163, 184, 0.5); + } + } + } + } + } + + .page2 { + padding: 0 32rpx; + .module { + margin-top: 32rpx; + .date { + font-size: 28rpx; + color: rgba(148, 163, 184, 1); + text-align: center; + } + .card { + margin-top: 24rpx; + background-color: #fff; + border-radius: 24rpx; + padding: 32rpx; + .title { + font-size: 32rpx; + color: rgba(17, 24, 39, 1); + font-weight: bold; + } + .content { + margin-top: 24rpx; + font-size: 28rpx; + color: rgba(100, 116, 139, 1); + line-height: 44rpx; + } + .c-footer { + margin-top: 30rpx; + display: flex; + align-items: center; + justify-content: space-between; + .tag { + font-size: 24rpx; + padding: 4rpx 16rpx; + border-radius: 6rpx; + &.tag1 { + color: rgba(111, 220, 174, 1); + background-color: rgba(111, 220, 174, 0.1); + } + &.tag2 { + color: rgba(253, 91, 89, 1); + background-color: rgba(253, 91, 89, 0.1); + } + &.tag3 { + color: rgba(74, 184, 253, 1); + background-color: rgba(74, 184, 253, 0.1); + } + &.tag4 { + color: rgba(254, 181, 74, 1); + background-color: rgba(254, 181, 74, 0.1); + } + &.tag5 { + color: rgba(171, 89, 248, 1); + background-color: rgba(171, 89, 248, 0.1); + } + } + .detail { + font-size: 28rpx; + color: rgba(148, 163, 184, 0.5); + } + } + } + } + } +} diff --git a/src/pages/notice/index.ts b/src/pages/notice/index.ts new file mode 100644 index 0000000..becaafa --- /dev/null +++ b/src/pages/notice/index.ts @@ -0,0 +1,15 @@ +const _app = getApp() + +Page({ + data: { + active: 2, + }, + onLoad() {}, + handleDetail() { + wx.navigateTo({ + url: '/pages/noticeDetail/index', + }) + }, +}) + +export {} diff --git a/src/pages/notice/index.wxml b/src/pages/notice/index.wxml new file mode 100644 index 0000000..f8c613b --- /dev/null +++ b/src/pages/notice/index.wxml @@ -0,0 +1,59 @@ + + + + + + 03-01 13:01 + + 2025-2026学年暑期社会实践报名启动 + + 本次活动聚焦社会服务、乡村振兴、红色教育、志愿服务等方向,引导青年以实干践行使命,用行... + + + 重要通知 + + 查看详情 + + + + + + + + 内容 2 + + + + 03-01 13:01 + + 2025-2026学年暑期社会实践报名启动 + + 本次活动聚焦社会服务、乡村振兴、红色教育、志愿服务等方向,引导青年以实干践行使命,用行... + + 驳回原因: + + + + + + + 重要通知 + + 查看详情 + + + + + + + + 内容 2 + + diff --git a/src/pages/noticeDetail/index.json b/src/pages/noticeDetail/index.json new file mode 100644 index 0000000..f8bd8c8 --- /dev/null +++ b/src/pages/noticeDetail/index.json @@ -0,0 +1,7 @@ +{ + "navigationBarTitleText": "通知详情", + "navigationStyle": "default", + "usingComponents": { + "mp-html": "mp-html" + } +} diff --git a/src/pages/noticeDetail/index.scss b/src/pages/noticeDetail/index.scss new file mode 100644 index 0000000..6ff0d09 --- /dev/null +++ b/src/pages/noticeDetail/index.scss @@ -0,0 +1,154 @@ +.page { + padding: 32rpx; + .info { + .row { + display: flex; + align-items: center; + justify-content: space-between; + .type { + display: flex; + align-items: center; + gap: 8rpx; + .icon { + width: 34rpx; + height: 34rpx; + } + .content { + font-size: 32rpx; + color: rgba(74, 184, 253, 1); + } + } + .status { + font-size: 24rpx; + padding: 4rpx 16rpx; + border-radius: 6rpx; + &.status1 { + color: rgba(111, 220, 174, 1); + background-color: rgba(111, 220, 174, 0.1); + } + &.status2 { + color: rgba(253, 91, 89, 1); + background-color: rgba(253, 91, 89, 0.1); + } + &.status3 { + color: rgba(74, 184, 253, 1); + background-color: rgba(74, 184, 253, 0.1); + } + &.status4 { + color: rgba(254, 181, 74, 1); + background-color: rgba(254, 181, 74, 0.1); + } + &.status5 { + color: rgba(171, 89, 248, 1); + background-color: rgba(171, 89, 248, 0.1); + } + } + } + .title { + margin-top: 30rpx; + font-size: 42rpx; + line-height: 48rpx; + color: rgba(17, 24, 39, 1); + font-weight: bold; + } + .tag-wrap { + margin-top: 30rpx; + display: flex; + gap: 16rpx; + flex-wrap: wrap; + .tag { + font-size: 24rpx; + padding: 4rpx 16rpx; + border-radius: 6rpx; + &.tag1 { + color: rgba(111, 220, 174, 1); + background-color: rgba(111, 220, 174, 0.1); + } + &.tag2 { + color: rgba(253, 91, 89, 1); + background-color: rgba(253, 91, 89, 0.1); + } + &.tag3 { + color: rgba(74, 184, 253, 1); + background-color: rgba(74, 184, 253, 0.1); + } + &.tag4 { + color: rgba(254, 181, 74, 1); + background-color: rgba(254, 181, 74, 0.1); + } + &.tag5 { + color: rgba(171, 89, 248, 1); + background-color: rgba(171, 89, 248, 0.1); + } + } + } + .stat { + margin-top: 30rpx; + display: flex; + align-items: center; + gap: 36rpx; + .date, + .user { + display: flex; + align-items: center; + gap: 8rpx; + .icon { + width: 30rpx; + height: 30rpx; + } + .content { + font-size: 28rpx; + color: rgba(148, 163, 184, 1); + } + } + } + } + .mp-html { + margin-top: 30rpx; + } + .tip { + margin-top: 30rpx; + padding: 24rpx; + background-color: rgba(254, 181, 74, 0.1); + border-radius: 16rpx; + display: flex; + gap: 23rpx; + .icon { + margin-top: 4rpx; + flex-shrink: 0; + width: 32rpx; + height: 32rpx; + } + .wrap { + .w-title { + font-size: 32rpx; + color: rgba(254, 181, 74, 1); + } + .w-content { + font-size: 28rpx; + color: rgba(254, 181, 74, 1); + } + } + } + .footer { + position: fixed; + bottom: 0; + left: 0; + width: 100%; + box-sizing: border-box; + padding: 30rpx 30rpx calc(env(safe-area-inset-bottom) + 30rpx); + background-color: #fff; + box-shadow: 0rpx -4rpx 21rpx 0rpx rgba(0, 0, 0, 0.07); + .btn { + height: 96rpx; + font-size: 32rpx; + color: rgba(255, 255, 255, 1); + display: flex; + align-items: center; + justify-content: center; + background: linear-gradient(90deg, #9ddffd 0%, #4ab8fd 100%); + box-shadow: 0rpx 15rpx 30rpx -6rpx rgba(74, 172, 219, 0.4); + border-radius: 16rpx 16rpx 16rpx 16rpx; + } + } +} diff --git a/src/pages/noticeDetail/index.ts b/src/pages/noticeDetail/index.ts new file mode 100644 index 0000000..067b6bb --- /dev/null +++ b/src/pages/noticeDetail/index.ts @@ -0,0 +1,8 @@ +const _app = getApp(); + +Page({ + data: {}, + onLoad() {}, +}); + +export {} diff --git a/src/pages/noticeDetail/index.wxml b/src/pages/noticeDetail/index.wxml new file mode 100644 index 0000000..29c71eb --- /dev/null +++ b/src/pages/noticeDetail/index.wxml @@ -0,0 +1,38 @@ + + + + + + 通知 + + 已发布 + + 关于开展校园歌手大赛的通知 + + 校园活动 + + + + + 2026-05-20 14:30:00 + + + + 浏览人数:128 + + + + + + + + + + 温馨提示 + 未尽事宜,请联系校团委文艺部,联系电话:0755-12345678。 + + + + 查看活动详情 + + diff --git a/src/pages/start/index.ts b/src/pages/start/index.ts index b3dd361..33a2ad9 100644 --- a/src/pages/start/index.ts +++ b/src/pages/start/index.ts @@ -4,35 +4,8 @@ const app = getApp() Page({ data: {}, onLoad(options) { - if (options.scene) { - const params = parseScene(options.scene) - if (params) { - app.globalData.waitBindDoctorId = (params as any).doctorId - } - } - app.waitLogin().then(() => { - const initLoginInfo = app.globalData.initLoginInfo || {} - if (initLoginInfo.isLogin === 0) { - wx.reLaunch({ - url: '/pages/index/index', - }) - } - if (initLoginInfo.loginType === 1) { - if (initLoginInfo.isReg === 1) { - wx.reLaunch({ - url: '/pages/index/index', - }) - return - } - wx.reLaunch({ - url: '/pages/index/index', - }) - } - if (initLoginInfo.loginType === 2) { - wx.reLaunch({ - url: '/pages/index/index', - }) - } + wx.reLaunch({ + url: '/pages/index/index', }) }, })