From ab6bc39e826173e8c602b59ea576e06517de8938 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=B3=89=E5=BE=B7?= Date: Mon, 23 Jun 2025 10:37:34 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E8=AF=84=E4=BB=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages.json | 15 +++--- src/pages/courseDetail/submit.vue | 90 +++++++++++++++++++++++++++++++ src/pagesOther.json | 9 ++++ 3 files changed, 108 insertions(+), 6 deletions(-) create mode 100644 src/pages/courseDetail/submit.vue diff --git a/src/pages.json b/src/pages.json index a1259033..2a087741 100644 --- a/src/pages.json +++ b/src/pages.json @@ -10,7 +10,6 @@ } }, { -<<<<<<< HEAD "path": "pages/courseDetail/index", "style": { "navigationBarTitleText": "课程详情", @@ -20,8 +19,15 @@ } }, { -======= ->>>>>>> f0015d5ea46c4904ce35c5ec4a03028d9ec6d5b4 + "path": "pages/courseDetail/submit", + "style": { + "navigationBarTitleText": "提交评价", + "app-plus": { + "titleNView": false + } + } + }, + { "path": "pages/study/index", "style": { "navigationBarTitleText": "学习", @@ -93,8 +99,6 @@ "titleNView": false } } -<<<<<<< HEAD -======= }, { "path": "pages/course/index", @@ -104,7 +108,6 @@ "titleNView": false } } ->>>>>>> f0015d5ea46c4904ce35c5ec4a03028d9ec6d5b4 } ], "tabBar": { diff --git a/src/pages/courseDetail/submit.vue b/src/pages/courseDetail/submit.vue new file mode 100644 index 00000000..03ca1939 --- /dev/null +++ b/src/pages/courseDetail/submit.vue @@ -0,0 +1,90 @@ + + + + + diff --git a/src/pagesOther.json b/src/pagesOther.json index b720cdef..04435044 100644 --- a/src/pagesOther.json +++ b/src/pagesOther.json @@ -17,6 +17,15 @@ "titleNView": false } } + }, + { + "path": "pages/courseDetail/submit", + "style": { + "navigationBarTitleText": "提交评价", + "app-plus": { + "titleNView": false + } + } } ], "tabBar": { From 84ab849bc8081ef657052d3941b204078fc36f8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=94=B0=E5=B2=A9?= Date: Mon, 23 Jun 2025 11:32:10 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E5=BC=80=E5=8F=91=E8=AF=84=E4=BB=B7?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E7=99=BE=E5=88=86=E4=B9=8B60=EF=BC=8C?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E4=B8=A4=E4=B8=A4=E4=B8=AA=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.development | 4 +- src/App.vue | 3 + src/pages.json | 5 +- src/pages/courseDetail/comment.vue | 144 ++++++++++++++++ src/pages/courseDetail/index.vue | 146 ++-------------- src/pages/courseDetail/introduce.vue | 115 +++++++++++++ src/pages/courseDetail/knowledge.vue | 47 +++++ src/pages/index/index.vue | 2 +- src/uni_modules/uv-read-more/changelog.md | 7 + .../components/uv-read-more/props.js | 62 +++++++ .../components/uv-read-more/uv-read-more.vue | 162 ++++++++++++++++++ src/uni_modules/uv-read-more/package.json | 89 ++++++++++ src/uni_modules/uv-read-more/readme.md | 11 ++ src/uni_modules/uv-slider/changelog.md | 9 + .../uv-slider/components/uv-slider/props.js | 58 +++++++ .../components/uv-slider/uv-slider.vue | 58 +++++++ src/uni_modules/uv-slider/package.json | 87 ++++++++++ src/uni_modules/uv-slider/readme.md | 15 ++ 18 files changed, 884 insertions(+), 140 deletions(-) create mode 100644 src/pages/courseDetail/comment.vue create mode 100644 src/pages/courseDetail/introduce.vue create mode 100644 src/pages/courseDetail/knowledge.vue create mode 100644 src/uni_modules/uv-read-more/changelog.md create mode 100644 src/uni_modules/uv-read-more/components/uv-read-more/props.js create mode 100644 src/uni_modules/uv-read-more/components/uv-read-more/uv-read-more.vue create mode 100644 src/uni_modules/uv-read-more/package.json create mode 100644 src/uni_modules/uv-read-more/readme.md create mode 100644 src/uni_modules/uv-slider/changelog.md create mode 100644 src/uni_modules/uv-slider/components/uv-slider/props.js create mode 100644 src/uni_modules/uv-slider/components/uv-slider/uv-slider.vue create mode 100644 src/uni_modules/uv-slider/package.json create mode 100644 src/uni_modules/uv-slider/readme.md diff --git a/.env.development b/.env.development index 3111b865..a79a6ae0 100644 --- a/.env.development +++ b/.env.development @@ -6,12 +6,12 @@ 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 = 'http://aitstest.jlbank.com.cn:7002' # 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/App.vue b/src/App.vue index 28fdcff6..5327b48d 100644 --- a/src/App.vue +++ b/src/App.vue @@ -83,6 +83,9 @@ view { .fw-600 { font-weight: 600; } +.fw-400 { + font-weight: 400; +} .img_100 { width: 100%; height: 100%; diff --git a/src/pages.json b/src/pages.json index d3155b84..924d2e0d 100644 --- a/src/pages.json +++ b/src/pages.json @@ -28,7 +28,7 @@ } }, { - "path": "pages/intelligent_answering/index", + "path": "pages/intelligentAnswering/index", "style": { "navigationBarTitleText": "智能问答", "app-plus": { @@ -51,8 +51,7 @@ "navigationBarTitleText": "我的", "app-plus": { "titleNView": false - }, - "enablePullDownRefresh": true + } } }, { diff --git a/src/pages/courseDetail/comment.vue b/src/pages/courseDetail/comment.vue new file mode 100644 index 00000000..da3de859 --- /dev/null +++ b/src/pages/courseDetail/comment.vue @@ -0,0 +1,144 @@ + + + + + \ No newline at end of file diff --git a/src/pages/courseDetail/index.vue b/src/pages/courseDetail/index.vue index 46a84b1d..d9e24b1e 100644 --- a/src/pages/courseDetail/index.vue +++ b/src/pages/courseDetail/index.vue @@ -30,59 +30,14 @@ > - - - 课程类别 - {{ form.catalogName }} - - - 评分 - {{ form.evalGrade }} - - - - 发布日期 - {{ common.formatDate2(form.issuTm, 'yyyy-MM-dd HH:mm') }} - - - - - 标签 - - {{ item.tagName }} - - - - 创建人 - {{ form.ctUserName }} - - - 归属部门 - {{ form.belgOrgName }} - - - - - - + - - - - - - - 知识点0{{ index + 1 }} - {{ item.pgrphContent }} - - - - {{ item.pgrphStdyStateName }} - - + + + + - @@ -99,6 +54,10 @@ import { onLoad } from '@dcloudio/uni-app'; import { getCourseDetailApi } from '@/api/courseDetail.js'; // import {formatDate2} from '@/common/common.js' import common from '@/common/common'; +import introduceVue from './introduce.vue'; +import knowledge from './knowledge.vue'; +import comment from './comment.vue'; + // tab栏 const tabList = ref([{ name: '课程介绍' }, { name: '知识点' }, { name: '评价' }]); const form = ref({}); @@ -183,71 +142,8 @@ onLoad((params) => { // bottom: 10rpx; // } } -.course-info { - box-sizing: border-box; - width: 100%; - background-color: #ffffff; - border-radius: 22rpx; - padding-top: 38rpx; - padding-left: 38rpx; -} -.info-top { - display: flex; - align-items: center; - justify-content: space-between; - margin-bottom: 62rpx; - padding-right: 36rpx; - .top-right { - .rate-text { - text-align: right; - color: #999999; - font-size: 30rpx; - margin-bottom: 4rpx; - } - .rate-num { - color: #0066ff; - font-size: 62rpx; - font-family: Arial, Helvetica, sans-serif; - font-weight: 600; - } - } -} -.info-middle { - margin-bottom: 35rpx; - padding-right: 36rpx; -} -.info-bottom { - display: flex; - justify-content: space-between; - width: 100%; -} -.bottom-left { - display: flex; - flex-direction: column; - padding-top: 12rpx; - flex: 1; - .label { - width: 100%; - display: flex; - flex-wrap: wrap; - } - .label-item { - text-align: center; - border-radius: 22rpx; - padding: 2rpx 14rpx; - font-size: 22rpx; - margin-right: 14rpx; - background-color: #f1f3f8; - } -} -.bottom-right { - width: 50%; - .right-img { - width: 100%; - height: auto; - object-fit: cover; - } -} + + .btn-box { position: fixed; bottom: 0; @@ -273,25 +169,7 @@ onLoad((params) => { .point { width: 100%; } -.point-item { - background-color: #fff; - display: flex; - padding-top: 24rpx; - padding-left: 36rpx; - padding-right: 52rpx; - border-radius: 22rpx; - justify-content: space-between; - .blue-ball { - padding-top: 16rpx; - margin-right: 12rpx; - .ball { - width: 12rpx; - height: 12rpx; - background-color: #0066ff; - border-radius: 50%; - } - } -} + .learn { color: #1dd17a; } diff --git a/src/pages/courseDetail/introduce.vue b/src/pages/courseDetail/introduce.vue new file mode 100644 index 00000000..2295b89e --- /dev/null +++ b/src/pages/courseDetail/introduce.vue @@ -0,0 +1,115 @@ + + + + + \ No newline at end of file diff --git a/src/pages/courseDetail/knowledge.vue b/src/pages/courseDetail/knowledge.vue new file mode 100644 index 00000000..5906419c --- /dev/null +++ b/src/pages/courseDetail/knowledge.vue @@ -0,0 +1,47 @@ + + + + + \ No newline at end of file diff --git a/src/pages/index/index.vue b/src/pages/index/index.vue index b6d84005..c9b76a33 100644 --- a/src/pages/index/index.vue +++ b/src/pages/index/index.vue @@ -45,7 +45,7 @@ color="rgba(255,255,255,0.7)" :speed="40" direction="column"> - + diff --git a/src/uni_modules/uv-read-more/changelog.md b/src/uni_modules/uv-read-more/changelog.md new file mode 100644 index 00000000..890f9740 --- /dev/null +++ b/src/uni_modules/uv-read-more/changelog.md @@ -0,0 +1,7 @@ +## 1.0.2(2023-09-13) +1. 修复全局设置rpx,导致展开高度不对的BUG +## 1.0.1(2023-05-16) +1. 优化组件依赖,修改后无需全局引入,组件导入即可使用 +2. 优化部分功能 +## 1.0.0(2023-05-10) +uv-read-more 展开阅读更多 diff --git a/src/uni_modules/uv-read-more/components/uv-read-more/props.js b/src/uni_modules/uv-read-more/components/uv-read-more/props.js new file mode 100644 index 00000000..c691a01b --- /dev/null +++ b/src/uni_modules/uv-read-more/components/uv-read-more/props.js @@ -0,0 +1,62 @@ +export default { + props: { + // 默认的显示占位高度 + showHeight: { + type: [String, Number], + default: 400 + }, + // 展开后是否显示"收起"按钮 + toggle: { + type: Boolean, + default: false + }, + // 关闭时的提示文字 + closeText: { + type: String, + default: '展开阅读全文' + }, + // 展开时的提示文字 + openText: { + type: String, + default: '收起' + }, + // 提示的文字颜色 + color: { + type: String, + default: '#2979ff' + }, + // 提示文字的大小 + fontSize: { + type: [String, Number], + default: 14 + }, + // 是否显示阴影 + // 此参数不能写在props/readMore.js中进行默认配置,因为使用了条件编译,在外部js中 + // uni无法准确识别当前是否处于nvue还是非nvue下 + shadowStyle: { + type: Object, + default: () => ({ + // #ifndef APP-NVUE + backgroundImage: 'linear-gradient(-180deg, rgba(255, 255, 255, 0) 0%, #fff 80%)', + // #endif + // #ifdef APP-NVUE + // nvue上不支持设置复杂的backgroundImage属性 + backgroundImage: 'linear-gradient(to top, #fff, rgba(255, 255, 255, 0.5))', + // #endif + paddingTop: '100px', + marginTop: '-100px' + }) + }, + // 段落首行缩进的字符个数 + textIndent: { + type: String, + default: '2em' + }, + // open和close事件时,将此参数返回在回调参数中 + name: { + type: [String, Number], + default: '' + }, + ...uni.$uv?.props?.readMore + } +} \ No newline at end of file diff --git a/src/uni_modules/uv-read-more/components/uv-read-more/uv-read-more.vue b/src/uni_modules/uv-read-more/components/uv-read-more/uv-read-more.vue new file mode 100644 index 00000000..9ee47db1 --- /dev/null +++ b/src/uni_modules/uv-read-more/components/uv-read-more/uv-read-more.vue @@ -0,0 +1,162 @@ + + + + + diff --git a/src/uni_modules/uv-read-more/package.json b/src/uni_modules/uv-read-more/package.json new file mode 100644 index 00000000..77df674f --- /dev/null +++ b/src/uni_modules/uv-read-more/package.json @@ -0,0 +1,89 @@ +{ + "id": "uv-read-more", + "displayName": "uv-read-more 展开阅读更多 全面兼容小程序、nvue、vue2、vue3等多端", + "version": "1.0.2", + "description": "uv-read-more 该组件一般用于内容较长,预先收起一部分,点击展开全部内容的场景。", + "keywords": [ + "uv-read-more", + "uvui", + "uv-ui", + "read", + "展开阅读更多" +], + "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", + "uv-text" + ], + "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-read-more/readme.md b/src/uni_modules/uv-read-more/readme.md new file mode 100644 index 00000000..79e2eae3 --- /dev/null +++ b/src/uni_modules/uv-read-more/readme.md @@ -0,0 +1,11 @@ +## ReadMore 展开阅读更多 + +> **组件名:uv-read-more** + +该组件一般用于内容较长,预先收起一部分,点击展开全部内容的场景。 + +### 查看文档 + +### [完整示例项目下载 | 关注更多组件](https://ext.dcloud.net.cn/plugin?name=uv-ui) + +#### 如使用过程中有任何问题,或者您对uv-ui有一些好的建议,欢迎加入 uv-ui 交流群:uv-ui官方QQ群 diff --git a/src/uni_modules/uv-slider/changelog.md b/src/uni_modules/uv-slider/changelog.md new file mode 100644 index 00000000..d065ed08 --- /dev/null +++ b/src/uni_modules/uv-slider/changelog.md @@ -0,0 +1,9 @@ +## 1.0.3(2023-07-25) +1. 将inactiveColor修正为backgroundColor 参数,避免不生效 +## 1.0.2(2023-07-13) +1. 修复 uv-slider设置value属性不生效的BUG +## 1.0.1(2023-05-16) +1. 优化组件依赖,修改后无需全局引入,组件导入即可使用 +2. 优化部分功能 +## 1.0.0(2023-05-10) +uv-slider 滑动选择器 diff --git a/src/uni_modules/uv-slider/components/uv-slider/props.js b/src/uni_modules/uv-slider/components/uv-slider/props.js new file mode 100644 index 00000000..1c622de3 --- /dev/null +++ b/src/uni_modules/uv-slider/components/uv-slider/props.js @@ -0,0 +1,58 @@ +export default { + props: { + value: { + type: [Number, String], + default: 0 + }, + modelValue: { + type: [Number, String], + default: 0 + }, + // 最小可选值 + min: { + type: [Number, String], + default: 0 + }, + // 最大可选值 + max: { + type: [Number, String], + default: 100 + }, + // 步长,取值必须大于 0,并且可被(max - min)整除 + step: { + type: [Number, String], + default: 1 + }, + // 滑块右侧已选择部分的背景色 + activeColor: { + type: String, + default: '#2979ff' + }, + // 滑块左侧未选择部分的背景色 + backgroundColor: { + type: String, + default: '#c0c4cc' + }, + // 滑块的大小,取值范围为 12 - 28 + blockSize: { + type: [Number, String], + default: 18 + }, + // 滑块的颜色 + blockColor: { + type: String, + default: '#ffffff' + }, + // 禁用状态 + disabled: { + type: Boolean, + default: false + }, + // 是否显示当前的选择值 + showValue: { + type: Boolean, + default: false + }, + ...uni.$uv?.props?.slider + } +} \ No newline at end of file diff --git a/src/uni_modules/uv-slider/components/uv-slider/uv-slider.vue b/src/uni_modules/uv-slider/components/uv-slider/uv-slider.vue new file mode 100644 index 00000000..9c2a86ab --- /dev/null +++ b/src/uni_modules/uv-slider/components/uv-slider/uv-slider.vue @@ -0,0 +1,58 @@ + + + diff --git a/src/uni_modules/uv-slider/package.json b/src/uni_modules/uv-slider/package.json new file mode 100644 index 00000000..13939517 --- /dev/null +++ b/src/uni_modules/uv-slider/package.json @@ -0,0 +1,87 @@ +{ + "id": "uv-slider", + "displayName": "uv-slider 滑动选择器 全面兼容vue3+2、app、h5、小程序等多端", + "version": "1.0.3", + "description": "滑动选择器组件一般用于表单中,手动选择一个区间范围的场景。", + "keywords": [ + "uv-slider", + "uvui", + "uv-ui", + "slider", + "滑动选择器" +], + "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" + ], + "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-slider/readme.md b/src/uni_modules/uv-slider/readme.md new file mode 100644 index 00000000..c9c00cca --- /dev/null +++ b/src/uni_modules/uv-slider/readme.md @@ -0,0 +1,15 @@ +## Slider 滑动选择器 + +> **组件名:uv-slider** + +该组件一般用于表单中,手动选择一个区间范围的场景。 + +# 查看文档 + +## [下载完整示例项目](https://ext.dcloud.net.cn/plugin?name=uv-ui) + +### [更多插件,请关注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群 From 17f12b5fb9a40abbb168ab9ea9dcedfbd6f08e64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=94=B0=E5=B2=A9?= Date: Mon, 23 Jun 2025 14:41:49 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=96=87=E6=9C=AC?= =?UTF-8?q?=E5=9F=9F=E7=BB=84=E4=BB=B6=EF=BC=8C=E7=BB=A7=E7=BB=AD=E5=AE=8C?= =?UTF-8?q?=E6=88=90=E8=AF=BE=E7=A8=8B=E8=AF=A6=E6=83=85=E8=AF=84=E4=BB=B7?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages.json | 12 +- src/pages/courseDetail/comment.vue | 1 - src/pages/courseDetail/index.vue | 46 ++-- src/uni_modules/uv-textarea/changelog.md | 28 +++ .../components/uv-textarea/props.js | 138 ++++++++++ .../components/uv-textarea/uv-textarea.vue | 238 ++++++++++++++++++ src/uni_modules/uv-textarea/package.json | 87 +++++++ src/uni_modules/uv-textarea/readme.md | 19 ++ 8 files changed, 549 insertions(+), 20 deletions(-) create mode 100644 src/uni_modules/uv-textarea/changelog.md create mode 100644 src/uni_modules/uv-textarea/components/uv-textarea/props.js create mode 100644 src/uni_modules/uv-textarea/components/uv-textarea/uv-textarea.vue create mode 100644 src/uni_modules/uv-textarea/package.json create mode 100644 src/uni_modules/uv-textarea/readme.md diff --git a/src/pages.json b/src/pages.json index 411dbbb9..2576942a 100644 --- a/src/pages.json +++ b/src/pages.json @@ -100,11 +100,13 @@ } }, { - "path" : "pages/course/study/study", - "style" : - { - "navigationBarTitleText" : "" - } + "path": "pages/course/study", + "style": { + "navigationBarTitleText": "课程学习", + "app-plus": { + "titleNView": false + } + } } ], "tabBar": { diff --git a/src/pages/courseDetail/comment.vue b/src/pages/courseDetail/comment.vue index da3de859..73383cba 100644 --- a/src/pages/courseDetail/comment.vue +++ b/src/pages/courseDetail/comment.vue @@ -103,7 +103,6 @@ align-items: center; height: 28rpx; .time{ - font-family: ArialMT; font-size: 23rpx; color: #666666; diff --git a/src/pages/courseDetail/index.vue b/src/pages/courseDetail/index.vue index d9e24b1e..1dfa119b 100644 --- a/src/pages/courseDetail/index.vue +++ b/src/pages/courseDetail/index.vue @@ -22,28 +22,34 @@ - + - + - + - 去学习 - 去练习 - 去考试 + + + @@ -62,9 +68,9 @@ import comment from './comment.vue'; const tabList = ref([{ name: '课程介绍' }, { name: '知识点' }, { name: '评价' }]); const form = ref({}); const crsNum = ref(''); -const tabAct = ref('课程介绍'); +const tabAct = ref(0); const tabSwitch = (item) => { - tabAct.value = item.name; + tabAct.value = item.index; }; const getData = async () => { const { body } = await getCourseDetailApi({ crsNum: crsNum.value }); @@ -151,13 +157,25 @@ onLoad((params) => { width: 100%; display: flex; padding-top: 37rpx; - justify-content: space-evenly; + justify-content: space-around; background-color: #ffffff; - :deep(.uv-button) { - border-radius: 14rpx; - width: 200rpx; - height: 92rpx; + // background-color: red; + + :deep(.uv-button-wrapper) { + flex: 1; + &.send_evaluate{ + margin: 0 60rpx; + } + &:not(.send_evaluate){ + margin: 0 30rpx; + } + .uv-button { + border-radius: 14rpx; + width: 100%; + height: 92rpx; + } } + } .num-item { display: flex; diff --git a/src/uni_modules/uv-textarea/changelog.md b/src/uni_modules/uv-textarea/changelog.md new file mode 100644 index 00000000..63a90948 --- /dev/null +++ b/src/uni_modules/uv-textarea/changelog.md @@ -0,0 +1,28 @@ +## 1.0.11(2023-12-26) +1. 优化confirmType默认值改成return +## 1.0.10(2023-09-13) +1. 修复设置autoHeight后出现高度异常的BUG +## 1.0.9(2023-08-08) +1. 优化 +## 1.0.8(2023-08-07) +1. 修复值为null或undefined时显示错误的bug +## 1.0.7(2023-08-05) +1. v-model设置为数据时的BUG +2. 复制过多内容,计数显示错误的BUG +3. maxlength为-1改成不显示计数 +## 1.0.6(2023-07-30) +1. 增加confirm-hold参数,参考官方文档 +## 1.0.5(2023-07-25) +1. 增加textStyle属性,自定义文本样式 +2. 增加countStyle属性,自定义统计数字的样式 +## 1.0.4(2023-07-14) +1. 修复 设置maxlength为-1时不生效的BUG +## 1.0.3(2023-07-13) +1. 修复 uv-textarea设置value属性不生效的BUG +## 1.0.2(2023-05-16) +1. 优化组件依赖,修改后无需全局引入,组件导入即可使用 +2. 优化部分功能 +## 1.0.1(2023-05-12) +1. 修复vue3中双向绑定问题 +## 1.0.0(2023-05-10) +uv-textarea 文本域 diff --git a/src/uni_modules/uv-textarea/components/uv-textarea/props.js b/src/uni_modules/uv-textarea/components/uv-textarea/props.js new file mode 100644 index 00000000..b0c78899 --- /dev/null +++ b/src/uni_modules/uv-textarea/components/uv-textarea/props.js @@ -0,0 +1,138 @@ +export default { + props: { + value: { + type: [String, Number], + default: '' + }, + modelValue: { + type: [String, Number], + default: '' + }, + // 输入框为空时占位符 + placeholder: { + type: [String, Number], + default: '' + }, + // 指定placeholder的样式类,注意页面或组件的style中写了scoped时,需要在类名前写/deep/ + placeholderClass: { + type: String, + default: 'textarea-placeholder' + }, + // 指定placeholder的样式 + placeholderStyle: { + type: [String, Object], + default: 'color: #c0c4cc' + }, + // 输入框高度 + height: { + type: [String, Number], + default: 70 + }, + // 设置键盘右下角按钮的文字,仅微信小程序,App-vue和H5有效 + confirmType: { + type: String, + default: 'return' + }, + // 是否禁用 + disabled: { + type: Boolean, + default: false + }, + // 是否显示统计字数 + count: { + type: Boolean, + default: false + }, + // 是否自动获取焦点,nvue不支持,H5取决于浏览器的实现 + focus: { + type: Boolean, + default: false + }, + // 是否自动增加高度 + autoHeight: { + type: Boolean, + default: false + }, + // 如果textarea是在一个position:fixed的区域,需要显示指定属性fixed为true + fixed: { + type: Boolean, + default: false + }, + // 指定光标与键盘的距离 + cursorSpacing: { + type: Number, + default: 0 + }, + // 指定focus时的光标位置 + cursor: { + type: [String, Number], + default: '' + }, + // 是否显示键盘上方带有”完成“按钮那一栏, + showConfirmBar: { + type: Boolean, + default: true + }, + // 光标起始位置,自动聚焦时有效,需与selection-end搭配使用 + selectionStart: { + type: Number, + default: -1 + }, + // 光标结束位置,自动聚焦时有效,需与selection-start搭配使用 + selectionEnd: { + type: Number, + default: -1 + }, + // 键盘弹起时,是否自动上推页面 + adjustPosition: { + type: Boolean, + default: true + }, + // 是否去掉 iOS 下的默认内边距,只微信小程序有效 + disableDefaultPadding: { + type: Boolean, + default: false + }, + // focus时,点击页面的时候不收起键盘,只微信小程序有效 + holdKeyboard: { + type: Boolean, + default: false + }, + // 最大输入长度,设置为 -1 的时候不限制最大长度 + maxlength: { + type: [String, Number], + default: 140 + }, + // 边框类型,surround-四周边框,bottom-底部边框 + border: { + type: String, + default: 'surround' + }, + // 用于处理或者过滤输入框内容的方法 + formatter: { + type: [Function, null], + default: null + }, + // 是否忽略组件内对文本合成系统事件的处理 + ignoreCompositionEvent: { + type: Boolean, + default: true + }, + // 是否忽略组件内对文本合成系统事件的处理 + confirmHold: { + type: Boolean, + default: false + }, + // 文本样式 + textStyle: { + type: [Object, String], + default: () => {} + }, + // 统计数字的样式 + countStyle: { + type: [Object, String], + default: () => {} + }, + ...uni.$uv?.props?.textarea + } +} \ No newline at end of file diff --git a/src/uni_modules/uv-textarea/components/uv-textarea/uv-textarea.vue b/src/uni_modules/uv-textarea/components/uv-textarea/uv-textarea.vue new file mode 100644 index 00000000..cd047ac3 --- /dev/null +++ b/src/uni_modules/uv-textarea/components/uv-textarea/uv-textarea.vue @@ -0,0 +1,238 @@ + + + \ No newline at end of file diff --git a/src/uni_modules/uv-textarea/package.json b/src/uni_modules/uv-textarea/package.json new file mode 100644 index 00000000..7df2034a --- /dev/null +++ b/src/uni_modules/uv-textarea/package.json @@ -0,0 +1,87 @@ +{ + "id": "uv-textarea", + "displayName": "uv-textarea 文本域 全面兼容vue3+2、app、h5、小程序等多端", + "version": "1.0.11", + "description": "文本域此组件满足了可能出现的表单信息补充,编辑等实际逻辑的功能,内置了字数校验等。", + "keywords": [ + "uv-textarea", + "uvui", + "uv-ui", + "textarea", + "文本域" +], + "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" + ], + "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-textarea/readme.md b/src/uni_modules/uv-textarea/readme.md new file mode 100644 index 00000000..6a64819d --- /dev/null +++ b/src/uni_modules/uv-textarea/readme.md @@ -0,0 +1,19 @@ +## Textarea 文本域 + +> **组件名:uv-textarea** + +文本域此组件满足了可能出现的表单信息补充,编辑等实际逻辑的功能,内置了字数校验等。 + +# 查看文档 + +## [下载完整示例项目](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 From 08f2817c0abe2e8a3769b327d5c1249c212c1623 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=B3=89=E5=BE=B7?= Date: Mon, 23 Jun 2025 14:44:31 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E6=8F=90=E5=87=BA=E8=AF=84=E4=BB=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.vue | 10 ++++ src/pages/courseDetail/submit.vue | 79 ++++++++++++++++++++++++++++--- 2 files changed, 83 insertions(+), 6 deletions(-) diff --git a/src/App.vue b/src/App.vue index 5327b48d..694860bc 100644 --- a/src/App.vue +++ b/src/App.vue @@ -66,6 +66,9 @@ view { .fz-30 { font-size: 30rpx; } +.fz-28 { + font-size: 28rpx; +} .fz-24 { font-size: 24rpx; } @@ -80,6 +83,13 @@ view { .flex { display: flex; } +.flex-jcsb { + display: flex; + justify-content: space-between; +} +.tar{ + text-align: right; +} .fw-600 { font-weight: 600; } diff --git a/src/pages/courseDetail/submit.vue b/src/pages/courseDetail/submit.vue index 0ab60bc6..cee54cad 100644 --- a/src/pages/courseDetail/submit.vue +++ b/src/pages/courseDetail/submit.vue @@ -20,14 +20,23 @@ - 综合评分 - - + 综合评分 + + + + + 0 + 10 - 平分 - 平分 + + 建议 + 提问 + + + + @@ -43,6 +52,11 @@ import { getCourseDetailApi } from '@/api/courseDetail.js'; // import {formatDate2} from '@/common/common.js' import common from '@/common/common'; const num = ref(0); +const activeTab = ref(1); +const aaa = ref('') +const changeTab = (type) => { + activeTab.value = type; +}; // tab栏 onLoad((params) => {}); @@ -53,7 +67,7 @@ onLoad((params) => {}); } .detail-body { box-sizing: border-box; - min-height: calc(100vh - (var(--status-bar-height)+37rpx)); + min-height: calc(100vh - (var(--status-bar-height)+50rpx)); padding: 29rpx 37rpx; width: 100%; display: flex; @@ -90,11 +104,57 @@ onLoad((params) => {}); font-size: 24rpx; margin-bottom: 28rpx; } +.num { + display: flex; + width: 100%; + // height: 92rpx; + justify-content: space-between; + margin-bottom: 40rpx; +} .num-pic { width: 92rpx; height: 92rpx; + padding-top: 20rpx; + margin-right: 20rpx; } .num-box { + flex: 1; + display: flex; + // height: 100%; + justify-content: space-between; + flex-direction: column; +} +.slider-box { + width: 100%; + :deep(.uv-slider) { + width: 100%; + } + :deep(uni-slider) { + margin: 0 16rpx 10rpx 0; + } + :deep(.uni-slider-tap-area) { + padding: 10rpx 0; + } + :deep(.uni-slider-thumb) { + border: 2px solid #0066ff; + } +} +.tab { + display: flex; +} +.tab-btn { + width: 78rpx; + height: 36rpx; + font-size: 22rpx; + color: #999999; + text-align: center; + border-radius: 8rpx; + border: 2rpx solid #999999; + margin-right: 30rpx; +} +.is-active { + color: #0066ff; + border: 2rpx solid #0066ff; } .btn-box { position: fixed; @@ -110,6 +170,13 @@ onLoad((params) => {}); height: 80rpx; } } +.c-666 { + color: #666666; +} +.c-000 { + font-weight: 600; + color: #000; +} .fixed_search_div { padding: calc(10rpx + var(--status-bar-height)) 15rpx 24rpx 30rpx; display: flex; From 0abb025ea88702fedb5c19cc3a2a818bc8570459 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=B3=89=E5=BE=B7?= Date: Mon, 23 Jun 2025 14:57:00 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E6=8F=90=E5=87=BA=E8=AF=84=E4=BB=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages.json | 171 ++---------------------------- src/pages/courseDetail/submit.vue | 9 +- 2 files changed, 16 insertions(+), 164 deletions(-) diff --git a/src/pages.json b/src/pages.json index 2d4f51ea..9cd6dcfe 100644 --- a/src/pages.json +++ b/src/pages.json @@ -1,5 +1,4 @@ { -<<<<<<< HEAD "pages": [ { "path": "pages/index/index", @@ -19,6 +18,15 @@ } } }, + { + "path": "pages/courseDetail/submit", + "style": { + "navigationBarTitleText": "提交评价", + "app-plus": { + "titleNView": false + } + } + }, { "path": "pages/study/index", "style": { @@ -155,165 +163,4 @@ } }, "uniIdRouter": {} -======= - "pages": [{ - "path": "pages/index/index", - "style": { - "navigationBarTitleText": "首页", - "app-plus": { - "titleNView": false - } - } - }, - { - "path": "pages/courseDetail/index", - "style": { - "navigationBarTitleText": "课程详情", - "app-plus": { - "titleNView": false - } - } - }, - { - "path": "pages/courseDetail/submit", - "style": { - "navigationBarTitleText": "提交评价", - "app-plus": { - "titleNView": false - } - } - }, - { - "path": "pages/study/index", - "style": { - "navigationBarTitleText": "学习", - "app-plus": { - "titleNView": false - } - } - }, - { - "path": "pages/intelligentAnswering/index", - "style": { - "navigationBarTitleText": "智能问答", - "app-plus": { - "titleNView": false - } - } - }, - { - "path": "pages/scene/index", - "style": { - "navigationBarTitleText": "场景", - "app-plus": { - "titleNView": false - } - } - }, - { - "path": "pages/me/index", - "style": { - "navigationBarTitleText": "我的", - "app-plus": { - "titleNView": false - } - } - }, - { - "path": "pages/login/login", - "style": { - "navigationBarTitleText": "登录", - "app-plus": { - "titleNView": false - } - } - }, - { - "path": "pages/other/web_view", - "style": { - "navigationBarTitleText": "", - "app-plus": { - "titleNView": false - } - } - }, - { - "path": "pages/login/ysxy", - "style": { - "navigationBarTitleText": "", - "app-plus": { - "titleNView": false - } - } - }, - { - "path": "pages/search/search", - "style": { - "navigationBarTitleText": "", - "app-plus": { - "titleNView": false - } - } - }, - { - "path": "pages/course/index", - "style": { - "navigationBarTitleText": "课程中心", - "app-plus": { - "titleNView": false - } - } - }, - { - "path": "pages/course/study", - "style": { - "navigationBarTitleText": "" - } - } - ], - "tabBar": { - "list": [{ - "text": "首页", - "pagePath": "pages/index/index" - }, - { - "text": "学习", - "pagePath": "pages/study/index" - }, - { - "text": "场景", - "pagePath": "pages/scene/index" - }, - { - "text": "我的", - "pagePath": "pages/me/index" - } - ], - "color": "#666666", - "selectedColor": "#0066FF", - "fontSize": "16px", - "borderStyle": "white", - "borderColor": "#ffffff", - "height": "70px", - "spacing": "10px", - "midButton": { - "iconPath": "/static/images/icon/fawn.png", - "width": "86px", - "height": "86px", - "iconWidth": "90px" - } - }, - "globalStyle": { - "navigationBarTextStyle": "black", - "navigationBarTitleText": "AI智能培训", - "navigationBarBackgroundColor": "#F8F8F8", - "backgroundColor": "#F8F8F8", - "navigationStyle": "custom", - "app-plus": { - "titleView": false, - "bounce": "none" - } - }, - "uniIdRouter": {} ->>>>>>> 8af971b2f3c186031f86d692251cf77f91455270 } \ No newline at end of file diff --git a/src/pages/courseDetail/submit.vue b/src/pages/courseDetail/submit.vue index cee54cad..be117054 100644 --- a/src/pages/courseDetail/submit.vue +++ b/src/pages/courseDetail/submit.vue @@ -35,7 +35,7 @@ 提问 - + @@ -81,7 +81,7 @@ onLoad((params) => {}); margin-bottom: 30rpx; } .body-content { - // flex: 1; + flex: 1; background-color: #ffffff; border-radius: 15rpx; padding: 36rpx; @@ -141,6 +141,7 @@ onLoad((params) => {}); } .tab { display: flex; + margin-bottom: 30rpx; } .tab-btn { width: 78rpx; @@ -156,6 +157,10 @@ onLoad((params) => {}); color: #0066ff; border: 2rpx solid #0066ff; } +.input-textarea{ + // height: 250rpx; + // padding-bottom: 250rpx; +} .btn-box { position: fixed; bottom: 0;