From 8b3261b204f7cb37ca85bb77b72deb2107744965 Mon Sep 17 00:00:00 2001 From: yanghang Date: Tue, 24 Jun 2025 08:27:08 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=9A=E7=94=A8=E5=9B=BE=E7=89=87=E9=A2=84?= =?UTF-8?q?=E8=A7=88=E7=BB=84=E4=BB=B6=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.development | 8 +- .hbuilderx/launch.json | 9 ++ src/api/common.js | 32 +++++- .../image-preview/image-preview.vue | 51 +++++----- src/pages/course/components/talkingItem.vue | 93 ++++++++++++++---- src/pages/course/index.vue | 2 +- src/pages/course/study.vue | 19 +++- src/static/images/course/goon.png | Bin 0 -> 423 bytes src/static/images/course/jianpan.png | Bin 0 -> 5173 bytes src/static/images/course/pause-focus.png | Bin 0 -> 1987 bytes src/static/images/course/pause.png | Bin 0 -> 2048 bytes src/static/images/course/play.png | Bin 0 -> 1267 bytes src/static/images/course/replay.png | Bin 0 -> 2088 bytes src/static/images/course/restart.png | Bin 0 -> 1825 bytes src/static/images/course/restart2.png | Bin 0 -> 3409 bytes src/static/images/course/restudy.png | Bin 0 -> 7335 bytes src/static/images/course/score.png | Bin 0 -> 2339 bytes 17 files changed, 162 insertions(+), 52 deletions(-) create mode 100644 .hbuilderx/launch.json create mode 100644 src/static/images/course/goon.png create mode 100644 src/static/images/course/jianpan.png create mode 100644 src/static/images/course/pause-focus.png create mode 100644 src/static/images/course/pause.png create mode 100644 src/static/images/course/play.png create mode 100644 src/static/images/course/replay.png create mode 100644 src/static/images/course/restart.png create mode 100644 src/static/images/course/restart2.png create mode 100644 src/static/images/course/restudy.png create mode 100644 src/static/images/course/score.png diff --git a/.env.development b/.env.development index 7c776625..5bae6850 100644 --- a/.env.development +++ b/.env.development @@ -6,11 +6,11 @@ ENV = 'development' # 苗扬 -#VITE_APP_BASE_API_Url = 'http://25.64.16.133:9786' +# VITE_APP_BASE_API_Url = 'http://25.64.16.133:9786' -VITE_APP_BASE_API_Url = 'https://aitstest.jlbank.com.cn:7001' +# VITE_APP_BASE_API_Url = 'https://aitstest.jlbank.com.cn:7001' -# app入口 -#VITE_APP_BASE_API_Url = 'http://25.18.122.65:7001' +app入口 +VITE_APP_BASE_API_Url = 'http://25.18.122.65:7001' diff --git a/.hbuilderx/launch.json b/.hbuilderx/launch.json new file mode 100644 index 00000000..8ae452a8 --- /dev/null +++ b/.hbuilderx/launch.json @@ -0,0 +1,9 @@ +{ + "version" : "1.0", + "configurations" : [ + { + "playground" : "standard", + "type" : "uni-app:app-android" + } + ] +} diff --git a/src/api/common.js b/src/api/common.js index 11b27be7..963bbfa9 100644 --- a/src/api/common.js +++ b/src/api/common.js @@ -40,8 +40,8 @@ export const uploadFile = (file, data) => { }; -// 对象存储预览 /traoss/tras3/show/{文件ID} -export function previewFile(id,responseType = 'arraybuffer') { +// 对象存储预览 /traoss/tras3/show/{文件ID} +export function previewFile(id, responseType = 'arraybuffer') { const token = getToken(); const header = { "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8", @@ -67,4 +67,32 @@ export function previewFile(id,responseType = 'arraybuffer') { } }); }); +} +// 缩略图预览 /traoss/tras3/getCacheThumbImage/{fileId}/{width}/{height} +export function previewCacheThumbImage(id, width = 30, height = 30) { + const token = getToken(); + const header = { + "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8", + }; + if (token) + header['summary'] = token + let baseUrl = get_base_url(); + + return new Promise((resolve, reject) => { + uni.request({ + url: `${baseUrl}/traoss/tras3/getCacheThumbImage/${id}/${width}/${height}`, + header, + responseType, + success(result) { + console.log(result) + let _header = result.header['content-type'].split(';')[0] + // let base64 = new Blob([result.data],{type:result.header['content-type'].split(';')[0]}) + let base64 = `data:${_header};base64,` + uni.arrayBufferToBase64(result.data) + resolve(base64) + }, + fail(error) { + reject(new Error('Upload failed')); + } + }); + }); } \ No newline at end of file diff --git a/src/components/image-preview/image-preview.vue b/src/components/image-preview/image-preview.vue index d51da45c..412a4406 100644 --- a/src/components/image-preview/image-preview.vue +++ b/src/components/image-preview/image-preview.vue @@ -1,22 +1,33 @@ diff --git a/src/pages/course/components/talkingItem.vue b/src/pages/course/components/talkingItem.vue index e4c7ffed..56535efe 100644 --- a/src/pages/course/components/talkingItem.vue +++ b/src/pages/course/components/talkingItem.vue @@ -24,11 +24,18 @@ - - - 继续学 - 重新学 - 继续 + + + + + + + + 继续学 + + + 继续 + @@ -50,7 +57,13 @@ - + + + + + @@ -132,7 +145,6 @@ float: left; width: 46rpx; height: 46rpx; - background-color: #ccc; overflow: hidden; margin-right: 16rpx; margin-top: 25rpx; @@ -141,45 +153,83 @@ float: left; width: 46rpx; height: 46rpx; - background-color: #ccc; overflow: hidden; margin-right: 16rpx; margin-top: 25rpx; } .next-learn-btn{ float: left; - padding: 0 20rpx; + padding: 0 60rpx 0 20rpx; height: 62rpx; line-height: 62rpx; - font-size: 32rpx; + font-size: 30rpx; background-color: #06f; color: #fff; border-radius: 8rpx; margin-top: 16rpx; margin-right: 16rpx; + position: relative; + .icon-iamge{ + width: 25rpx; + height: 25rpx; + position: absolute; + right: 20rpx; + top: 50%; + margin-top: -12rpx; + } } .replay-learn-btn{ float: left; - padding: 0 20rpx; + padding: 0 60rpx 0 20rpx; height: 62rpx; line-height: 62rpx; - font-size: 32rpx; + font-size: 30rpx; color: #06f; background-color: #eaf2ff; border-radius: 8rpx; margin-top: 16rpx; margin-right: 16rpx; + position: relative; + .icon-iamge{ + width: 25rpx; + height: 25rpx; + position: absolute; + right: 20rpx; + top: 50%; + margin-top: -12rpx; + } + } + .replay-study-btn{ + width: 162rpx; + height: 62rpx; + border-radius: 8rpx; + float: right; + margin-top: 16rpx; + .icon-iamge{ + width: 100%; + height: 100%; + margin:0; + } } .next-btn{ float: right; - padding: 0 20rpx; + padding: 0 60rpx 0 20rpx; height: 62rpx; line-height: 62rpx; - font-size: 32rpx; + font-size: 30rpx; background-color: #06f; color: #fff; border-radius: 8rpx; margin-top: 16rpx; + position: relative; + .icon-iamge{ + width: 25rpx; + height: 25rpx; + position: absolute; + right: 20rpx; + top: 50%; + margin-top: -12rpx; + } } } } @@ -236,7 +286,6 @@ float: left; width: 46rpx; height: 46rpx; - background-color: #ccc; overflow: hidden; margin-right: 16rpx; margin-top: 25rpx; @@ -245,21 +294,29 @@ float: left; width: 46rpx; height: 46rpx; - background-color: #ccc; overflow: hidden; margin-right: 16rpx; margin-top: 25rpx; } .next-btn{ float: right; - padding: 0 20rpx; + padding: 0 60rpx 0 20rpx; height: 62rpx; line-height: 62rpx; - font-size: 32rpx; + font-size: 30rpx; background-color: #06f; color: #fff; border-radius: 8rpx; margin-top: 16rpx; + position: relative; + .icon-iamge{ + width: 25rpx; + height: 25rpx; + position: absolute; + right: 20rpx; + top: 50%; + margin-top: -12rpx; + } } } } diff --git a/src/pages/course/index.vue b/src/pages/course/index.vue index 49e853b5..abbcc608 100644 --- a/src/pages/course/index.vue +++ b/src/pages/course/index.vue @@ -24,7 +24,7 @@ > - 筛选 + 筛选 diff --git a/src/pages/course/study.vue b/src/pages/course/study.vue index b06f14e2..ff6246ac 100644 --- a/src/pages/course/study.vue +++ b/src/pages/course/study.vue @@ -3,7 +3,18 @@ - + + + + 语言选择,开启学习之旅 + + + + + + + + 课程学习 @@ -25,6 +36,7 @@ import { onLoad } from '@dcloudio/uni-app'; import common from '@/common/common'; import TalkingItem from '@/pages/course/components/talkingItem.vue' const crsNum = ref(''); +const step = ref(1) const getData = async () => { console.log(crsNum.value) }; @@ -109,6 +121,11 @@ onLoad((params) => { font-weight: 400; } } + .voice-list{ + flex:1; + overflow-y: auto; + padding: 30rpx; + } } } diff --git a/src/static/images/course/goon.png b/src/static/images/course/goon.png new file mode 100644 index 0000000000000000000000000000000000000000..034ad221ec1d748be420dd2d276d2c004c82b939 GIT binary patch literal 423 zcmV;Y0a*TtP)&Er08%pspyx;X#< literal 0 HcmV?d00001 diff --git a/src/static/images/course/jianpan.png b/src/static/images/course/jianpan.png new file mode 100644 index 0000000000000000000000000000000000000000..0f6d8e040060928d1992df1bb57a251d5f9c4e58 GIT binary patch literal 5173 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 P00000NkvXXu0mjfiBM+w literal 0 HcmV?d00001 diff --git a/src/static/images/course/restart2.png b/src/static/images/course/restart2.png new file mode 100644 index 0000000000000000000000000000000000000000..926ff53cae5c2b68ab877df8d57e0e2a3b08cd51 GIT binary patch literal 3409 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 literal 0 HcmV?d00001 diff --git a/src/static/images/course/restudy.png b/src/static/images/course/restudy.png new file mode 100644 index 0000000000000000000000000000000000000000..e8798d8af5fce8b22fe1bc382acdc6dfb5ebd9a7 GIT binary patch literal 7335 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 literal 0 HcmV?d00001 diff --git a/src/static/images/course/score.png b/src/static/images/course/score.png new file mode 100644 index 0000000000000000000000000000000000000000..f647c09b8579395a5a36d29432b5107a591b6178 GIT binary patch literal 2339 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 literal 0 HcmV?d00001