From 812d667c74c3ac07dcaba4e40a8e9afa2adc590c Mon Sep 17 00:00:00 2001 From: yanghang Date: Tue, 24 Jun 2025 16:34:38 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E5=AD=A6=E4=B9=A0=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E7=BB=98=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.development | 4 +- src/api/common.js | 31 +- .../image-preview/image-preview.vue | 6 +- .../image-preview/video-preview.vue | 43 +-- src/pages/course/index.vue | 1 + src/pages/course/study.vue | 287 ++++++++++++++- src/static/images/course/close-active.png | Bin 0 -> 4916 bytes src/static/images/course/close.png | Bin 0 -> 4635 bytes src/static/images/course/talk-icon.png | Bin 0 -> 1703 bytes src/static/images/course/talking.png | Bin 0 -> 40475 bytes src/static/images/course/to-text.png | Bin 0 -> 5301 bytes src/uni_modules/uv-overlay/changelog.md | 9 + .../uv-overlay/components/uv-overlay/props.js | 25 ++ .../components/uv-overlay/uv-overlay.vue | 85 +++++ src/uni_modules/uv-overlay/package.json | 88 +++++ src/uni_modules/uv-overlay/readme.md | 11 + src/uni_modules/uv-radio/changelog.md | 31 ++ .../components/uv-radio-group/props.js | 89 +++++ .../uv-radio-group/uv-radio-group.vue | 115 ++++++ .../uv-radio/components/uv-radio/props.js | 65 ++++ .../uv-radio/components/uv-radio/uv-radio.vue | 348 ++++++++++++++++++ src/uni_modules/uv-radio/package.json | 88 +++++ src/uni_modules/uv-radio/readme.md | 19 + 23 files changed, 1300 insertions(+), 45 deletions(-) create mode 100644 src/static/images/course/close-active.png create mode 100644 src/static/images/course/close.png create mode 100644 src/static/images/course/talk-icon.png create mode 100644 src/static/images/course/talking.png create mode 100644 src/static/images/course/to-text.png create mode 100644 src/uni_modules/uv-overlay/changelog.md create mode 100644 src/uni_modules/uv-overlay/components/uv-overlay/props.js create mode 100644 src/uni_modules/uv-overlay/components/uv-overlay/uv-overlay.vue create mode 100644 src/uni_modules/uv-overlay/package.json create mode 100644 src/uni_modules/uv-overlay/readme.md create mode 100644 src/uni_modules/uv-radio/changelog.md create mode 100644 src/uni_modules/uv-radio/components/uv-radio-group/props.js create mode 100644 src/uni_modules/uv-radio/components/uv-radio-group/uv-radio-group.vue create mode 100644 src/uni_modules/uv-radio/components/uv-radio/props.js create mode 100644 src/uni_modules/uv-radio/components/uv-radio/uv-radio.vue create mode 100644 src/uni_modules/uv-radio/package.json create mode 100644 src/uni_modules/uv-radio/readme.md diff --git a/.env.development b/.env.development index 5bae6850..9e88b879 100644 --- a/.env.development +++ b/.env.development @@ -9,8 +9,8 @@ ENV = 'development' # 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' +# VITE_APP_BASE_API_Url = 'http://25.18.122.65:7001' diff --git a/src/api/common.js b/src/api/common.js index 1b48c997..4eeb3a85 100644 --- a/src/api/common.js +++ b/src/api/common.js @@ -39,6 +39,29 @@ export const uploadFile = (file, data) => { }); }; +// 对象存储下载 /traoss/tras3/show/{文件ID} +export function downloadFile(id) { + 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.downloadFile({ + url: `${baseUrl}/traoss/tras3/show/${id}`, + header, + success(result) { + resolve(result) + }, + fail(error) { + reject(new Error(error)); + } + }); + }); +} // 对象存储预览 /traoss/tras3/show/{文件ID} export function previewFile(id, responseType = 'arraybuffer') { @@ -56,11 +79,7 @@ export function previewFile(id, responseType = 'arraybuffer') { 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) + resolve(result) }, fail(error) { reject(new Error(error)); @@ -87,7 +106,7 @@ export function previewCacheThumbImage(id, width = 30, height = 30) { let base64 = `data:image/png;base64,` + result.data.body resolve(base64) }else{ - reject(new Error(result.data.message)) + reject({error:result.data.message}) } }, fail(error) { diff --git a/src/components/image-preview/image-preview.vue b/src/components/image-preview/image-preview.vue index 412a4406..d619e364 100644 --- a/src/components/image-preview/image-preview.vue +++ b/src/components/image-preview/image-preview.vue @@ -48,8 +48,10 @@ this.imgUrlShow = res; }); }else{ - previewFile(id).then((res) => { - this.imgUrlShow = res; + previewFile(id).then((result) => { + let _header = result.header['content-type'].split(';')[0] + let base64 = `data:${_header};base64,` + uni.arrayBufferToBase64(result.data) + this.imgUrlShow = base64; }); } }, diff --git a/src/components/image-preview/video-preview.vue b/src/components/image-preview/video-preview.vue index 5e21bebc..253439a4 100644 --- a/src/components/image-preview/video-preview.vue +++ b/src/components/image-preview/video-preview.vue @@ -1,12 +1,13 @@ \ No newline at end of file diff --git a/src/pages/course/index.vue b/src/pages/course/index.vue index abbcc608..4bda093d 100644 --- a/src/pages/course/index.vue +++ b/src/pages/course/index.vue @@ -277,6 +277,7 @@ import { onMounted, ref, computed } from 'vue' // 跳转 课程详情 const toCourseDetail = (item) => { common.navigateTo('/pages/courseDetail/index?crsNum=' + item.crsNum) + // common.navigateTo('/pages/course/study?crsNum=' + item.crsNum) } onMounted(()=>{ getCourseTypeListApi().then(res=>{ diff --git a/src/pages/course/study.vue b/src/pages/course/study.vue index 3eb2880b..025df81a 100644 --- a/src/pages/course/study.vue +++ b/src/pages/course/study.vue @@ -1,5 +1,4 @@ diff --git a/src/static/images/course/close-active.png b/src/static/images/course/close-active.png new file mode 100644 index 0000000000000000000000000000000000000000..f139f0960ec4ed3944170905b34d2c1c03c0c9de GIT binary patch literal 4916 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 Hu0mjfFr}N< literal 0 HcmV?d00001 diff --git a/src/uni_modules/uv-overlay/changelog.md b/src/uni_modules/uv-overlay/changelog.md new file mode 100644 index 00000000..ff147138 --- /dev/null +++ b/src/uni_modules/uv-overlay/changelog.md @@ -0,0 +1,9 @@ +## 1.0.3(2023-07-02) +uv-overlay 由于弹出层uv-transition的修改,组件内部做了相应的修改,参数不变。 +## 1.0.2(2023-06-29) +1. 优化,H5端禁止穿透滚动 +## 1.0.1(2023-05-16) +1. 优化组件依赖,修改后无需全局引入,组件导入即可使用 +2. 优化部分功能 +## 1.0.0(2023-05-10) +1. 新增uv-overlay组件 diff --git a/src/uni_modules/uv-overlay/components/uv-overlay/props.js b/src/uni_modules/uv-overlay/components/uv-overlay/props.js new file mode 100644 index 00000000..267c613f --- /dev/null +++ b/src/uni_modules/uv-overlay/components/uv-overlay/props.js @@ -0,0 +1,25 @@ +export default { + props: { + // 是否显示遮罩 + show: { + type: Boolean, + default: false + }, + // 层级z-index + zIndex: { + type: [String, Number], + default: 10070 + }, + // 遮罩的过渡时间,单位为ms + duration: { + type: [String, Number], + default: 300 + }, + // 不透明度值,当做rgba的第四个参数 + opacity: { + type: [String, Number], + default: 0.5 + }, + ...uni.$uv?.props?.overlay + } +} \ No newline at end of file diff --git a/src/uni_modules/uv-overlay/components/uv-overlay/uv-overlay.vue b/src/uni_modules/uv-overlay/components/uv-overlay/uv-overlay.vue new file mode 100644 index 00000000..53568c0d --- /dev/null +++ b/src/uni_modules/uv-overlay/components/uv-overlay/uv-overlay.vue @@ -0,0 +1,85 @@ + + + + diff --git a/src/uni_modules/uv-overlay/package.json b/src/uni_modules/uv-overlay/package.json new file mode 100644 index 00000000..a664f3a8 --- /dev/null +++ b/src/uni_modules/uv-overlay/package.json @@ -0,0 +1,88 @@ +{ + "id": "uv-overlay", + "displayName": "uv-overlay 遮罩层 全面兼容小程序、nvue、vue2、vue3等多端", + "version": "1.0.3", + "description": "uv-overlay 创建一个遮罩层,用于强调特定的页面元素,并阻止用户对遮罩下层的内容进行操作,一般用于弹窗场景,uv-popup、uv-toast、uv-tooltip等组件就是用了该组件。", + "keywords": [ + "uv-overlay", + "uvui", + "uv-ui", + "overlay", + "遮罩层" +], + "repository": "", + "engines": { + "HBuilderX": "^3.1.0" + }, + "dcloudext": { + "type": "component-vue", + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "插件不采集任何数据", + "permissions": "无" + }, + "npmurl": "" + }, + "uni_modules": { + "dependencies": [ + "uv-ui-tools", + "uv-transition" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "Vue": { + "vue2": "y", + "vue3": "y" + }, + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y", + "钉钉": "u", + "快手": "u", + "飞书": "u", + "京东": "u" + }, + "快应用": { + "华为": "u", + "联盟": "u" + } + } + } + } +} \ No newline at end of file diff --git a/src/uni_modules/uv-overlay/readme.md b/src/uni_modules/uv-overlay/readme.md new file mode 100644 index 00000000..4e8af4b8 --- /dev/null +++ b/src/uni_modules/uv-overlay/readme.md @@ -0,0 +1,11 @@ +## Overlay 遮罩层 + +> **组件名:uv-overlay** + +创建一个遮罩层,用于强调特定的页面元素,并阻止用户对遮罩下层的内容进行操作,一般用于弹窗场景,uv-popup、uv-toast、uv-tooltip等组件就是用了该组件。 + +### 查看文档 + +### [完整示例项目下载 | 关注更多组件](https://ext.dcloud.net.cn/plugin?name=uv-ui) + +#### 如使用过程中有任何问题,或者您对uv-ui有一些好的建议,欢迎加入 uv-ui 交流群:uv-ui官方QQ群 diff --git a/src/uni_modules/uv-radio/changelog.md b/src/uni_modules/uv-radio/changelog.md new file mode 100644 index 00000000..e51b1818 --- /dev/null +++ b/src/uni_modules/uv-radio/changelog.md @@ -0,0 +1,31 @@ +## 1.0.13(2023-12-19) +1. 修复在group设置labelColor不生效的BUG +## 1.0.12(2023-11-04) +1. 修复label文字较多不分行的问题 +## 1.0.11(2023-10-11) +1. 优化:https://gitee.com/climblee/uv-ui/issues/I872VD +## 1.0.10(2023-09-01) +1. 修复点击空隙处无效的问题 +2. label支持插槽下可点击 +## 1.0.9(2023-08-27) +1. 优化 +## 1.0.8(2023-08-26) +1. 修复v-model 绑定布尔值控制台报警 +## 1.0.7(2023-08-26) +1. 修复设置 labelSize 属性设置无效的问题:https://gitee.com/climblee/uv-ui/issues/I7W6UN +## 1.0.6(2023-08-04) +1. 修复name为数字0时不能选中的BUG +## 1.0.5(2023-07-13) +1. 修复 uv-radio设置value属性不生效的BUG +## 1.0.4(2023-07-05) +修复vue3模式下,动态修改v-model绑定的值无效的BUG +## 1.0.3(2023-06-06) +1. 修正语法问题 +## 1.0.2(2023-06-06) +1. uv-radio-group 兼容自定义样式customStyle,方便通过样式调整整体位置等 +2. .uv-radio-group--row增加flex-wrap: wrap;允许换行 +## 1.0.1(2023-05-16) +1. 优化组件依赖,修改后无需全局引入,组件导入即可使用 +2. 优化部分功能 +## 1.0.0(2023-05-10) +uv-radio 单选框 diff --git a/src/uni_modules/uv-radio/components/uv-radio-group/props.js b/src/uni_modules/uv-radio/components/uv-radio-group/props.js new file mode 100644 index 00000000..b0dbd15a --- /dev/null +++ b/src/uni_modules/uv-radio/components/uv-radio-group/props.js @@ -0,0 +1,89 @@ +export default { + props: { + // 绑定的值 + value: { + type: [String, Number, Boolean], + default: '' + }, + modelValue: { + type: [String, Number, Boolean], + default: '' + }, + // 是否禁用全部radio + disabled: { + type: Boolean, + default: false + }, + // 形状,circle-圆形,square-方形 + shape: { + type: String, + default: 'circle' + }, + // 选中状态下的颜色,如设置此值,将会覆盖parent的activeColor值 + activeColor: { + type: String, + default: '#2979ff' + }, + // 未选中的颜色 + inactiveColor: { + type: String, + default: '#c8c9cc' + }, + // 标识符 + name: { + type: String, + default: '' + }, + // 整个组件的尺寸,默认px + size: { + type: [String, Number], + default: 18 + }, + // 布局方式,row-横向,column-纵向 + placement: { + type: String, + default: 'row' + }, + // label的文本 + label: { + type: [String], + default: '' + }, + // label的颜色 (默认 '#303133' ) + labelColor: { + type: [String], + default: '#303133' + }, + // label的字体大小,px单位 + labelSize: { + type: [String, Number], + default: 14 + }, + // 是否禁止点击文本操作checkbox(默认 false ) + labelDisabled: { + type: Boolean, + default: false + }, + // 图标颜色 + iconColor: { + type: String, + default: '#fff' + }, + // 图标的大小,单位px + iconSize: { + type: [String, Number], + default: 12 + }, + // 竖向配列时,是否显示下划线 + borderBottom: { + type: Boolean, + default: false + }, + // 图标与文字的对齐方式 + iconPlacement: { + type: String, + default: 'left' + }, + ...uni.$uv?.props?.radioGroup + } +} \ No newline at end of file diff --git a/src/uni_modules/uv-radio/components/uv-radio-group/uv-radio-group.vue b/src/uni_modules/uv-radio/components/uv-radio-group/uv-radio-group.vue new file mode 100644 index 00000000..6b3069f1 --- /dev/null +++ b/src/uni_modules/uv-radio/components/uv-radio-group/uv-radio-group.vue @@ -0,0 +1,115 @@ + + + + + diff --git a/src/uni_modules/uv-radio/components/uv-radio/props.js b/src/uni_modules/uv-radio/components/uv-radio/props.js new file mode 100644 index 00000000..1e5e2ac8 --- /dev/null +++ b/src/uni_modules/uv-radio/components/uv-radio/props.js @@ -0,0 +1,65 @@ +export default { + props: { + // radio的名称 + name: { + type: [String, Number, Boolean], + default: '' + }, + // 形状,square为方形,circle为圆型 + shape: { + type: String, + default: '' + }, + // 是否禁用 + disabled: { + type: [String, Boolean], + default: '' + }, + // 是否禁止点击提示语选中单选框 + labelDisabled: { + type: [String, Boolean], + default: '' + }, + // 选中状态下的颜色,如设置此值,将会覆盖parent的activeColor值 + activeColor: { + type: String, + default: '' + }, + // 未选中的颜色 + inactiveColor: { + type: String, + default: '' + }, + // 图标的大小,单位px + iconSize: { + type: [String, Number], + default: '' + }, + // label的字体大小,px单位 + labelSize: { + type: [String, Number], + default: '' + }, + // label提示文字,因为nvue下,直接slot进来的文字,由于特殊的结构,无法修改样式 + label: { + type: [String, Number, Boolean], + default: '' + }, + // 整体的大小 + size: { + type: [String, Number], + default: '' + }, + // 图标颜色 + iconColor: { + type: String, + default: '' + }, + // label的颜色 + labelColor: { + type: String, + default: '' + }, + ...uni.$uv?.props?.radio + } +} \ No newline at end of file diff --git a/src/uni_modules/uv-radio/components/uv-radio/uv-radio.vue b/src/uni_modules/uv-radio/components/uv-radio/uv-radio.vue new file mode 100644 index 00000000..3c0236c1 --- /dev/null +++ b/src/uni_modules/uv-radio/components/uv-radio/uv-radio.vue @@ -0,0 +1,348 @@ + + + + \ No newline at end of file diff --git a/src/uni_modules/uv-radio/package.json b/src/uni_modules/uv-radio/package.json new file mode 100644 index 00000000..e7892460 --- /dev/null +++ b/src/uni_modules/uv-radio/package.json @@ -0,0 +1,88 @@ +{ + "id": "uv-radio", + "displayName": "uv-radio 单选框 全面兼容vue3+2、app、h5、小程序等多端", + "version": "1.0.13", + "description": "uv-radio 单选框用于有一个选择,用户只能选择其中一个的场景。", + "keywords": [ + "uv-radio", + "uvui", + "uv-ui", + "radio", + "单选框" +], + "repository": "", + "engines": { + "HBuilderX": "^3.1.0" + }, + "dcloudext": { + "type": "component-vue", + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "插件不采集任何数据", + "permissions": "无" + }, + "npmurl": "" + }, + "uni_modules": { + "dependencies": [ + "uv-ui-tools", + "uv-icon" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "Vue": { + "vue2": "y", + "vue3": "y" + }, + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y", + "钉钉": "u", + "快手": "u", + "飞书": "u", + "京东": "u" + }, + "快应用": { + "华为": "u", + "联盟": "u" + } + } + } + } +} \ No newline at end of file diff --git a/src/uni_modules/uv-radio/readme.md b/src/uni_modules/uv-radio/readme.md new file mode 100644 index 00000000..c8268984 --- /dev/null +++ b/src/uni_modules/uv-radio/readme.md @@ -0,0 +1,19 @@ +## Radio 单选框 + +> **组件名:uv-radio** + +单选框用于有一个选择,用户只能选择其中一个的场景。 + +# 查看文档 + +## [下载完整示例项目](https://ext.dcloud.net.cn/plugin?name=uv-ui) (请不要 下载插件ZIP) + +### [更多插件,请关注uv-ui组件库](https://ext.dcloud.net.cn/plugin?name=uv-ui) + + + +![image](https://mp-a667b617-c5f1-4a2d-9a54-683a67cff588.cdn.bspapp.com/uv-ui/banner.png) + + + +#### 如使用过程中有任何问题反馈,或者您对uv-ui有一些好的建议,欢迎加入uv-ui官方交流群:官方QQ群 \ No newline at end of file