From 85e3630ed76b0da87d12212f959643de935e2db9 Mon Sep 17 00:00:00 2001
From: Fox-33 <1466778434@qq.com>
Date: Fri, 25 Jul 2025 19:21:29 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20=E6=8E=A5=E5=8F=A3=E5=AF=B9=E6=8E=A5;?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
components/base/arrow.vue | 18 +++----
components/base/suspendDropdown.vue | 2 +-
pages/index/case.vue | 10 ++--
pages/index/center.vue | 10 +---
pages/index/index.vue | 12 ++---
pages/index/serve.vue | 7 +--
pages_order/case/index.vue | 34 ++++++-------
pages_order/thesis/index.vue | 99 ++++++++++++++++++++++---------------
pages_order/thesis/search.vue | 18 ++-----
store/store.js | 3 +-
10 files changed, 103 insertions(+), 110 deletions(-)
diff --git a/components/base/arrow.vue b/components/base/arrow.vue
index e76b152..40b7e02 100644
--- a/components/base/arrow.vue
+++ b/components/base/arrow.vue
@@ -21,22 +21,22 @@ export default {
&-blank {
position: absolute;
- left: 0;
+ right: 0;
&-top {
top: 0;
- border-top: 8rpx solid #FFFFFF;
- border-right: 14rpx solid #FFFFFF;
- border-bottom: 8rpx solid transparent;
- border-left: 14rpx solid transparent;
+ border-top: 9rpx solid #FFFFFF;
+ border-right: 15rpx solid #FFFFFF;
+ border-bottom: 9rpx solid transparent;
+ border-left: 15rpx solid transparent;
}
&-bottom {
bottom: 0;
- border-top: 8rpx solid transparent;
- border-right: 14rpx solid #FFFFFF;
- border-bottom: 8rpx solid #FFFFFF;
- border-left: 14rpx solid transparent;
+ border-top: 9rpx solid transparent;
+ border-right: 15rpx solid #FFFFFF;
+ border-bottom: 9rpx solid #FFFFFF;
+ border-left: 15rpx solid transparent;
}
}
}
diff --git a/components/base/suspendDropdown.vue b/components/base/suspendDropdown.vue
index 7f46388..c4e4ceb 100644
--- a/components/base/suspendDropdown.vue
+++ b/components/base/suspendDropdown.vue
@@ -69,7 +69,7 @@
},
onSelect(val) {
const selected = this.value
- const newVal = selected === val ? null : val
+ const newVal = selected === val ? '' : val
this.$emit('input', newVal)
this.$emit('change', newVal)
diff --git a/pages/index/case.vue b/pages/index/case.vue
index 5281be9..97431c0 100644
--- a/pages/index/case.vue
+++ b/pages/index/case.vue
@@ -32,7 +32,7 @@
-
+
@@ -71,10 +71,10 @@
queryParams: {
pageNo: 1,
pageSize: 10,
- title: null,
- categoryServiceId: null,
- categoryMajorId: null,
- categoryPeriodId: null,
+ title: '',
+ categoryServiceId: '',
+ categoryMajorId: '',
+ categoryPeriodId: '',
},
mixinsListApi: 'queryAriticleList',
}
diff --git a/pages/index/center.vue b/pages/index/center.vue
index bec0db4..af6d23d 100644
--- a/pages/index/center.vue
+++ b/pages/index/center.vue
@@ -6,12 +6,10 @@
@@ -20,7 +18,6 @@
-
@@ -49,9 +46,6 @@
}
},
onLoad() {
- // todo: check
- this.$fetch('querySummaryList')
-
this.fetchBanner()
},
methods: {
diff --git a/pages/index/index.vue b/pages/index/index.vue
index 845c4d3..f0dd48b 100644
--- a/pages/index/index.vue
+++ b/pages/index/index.vue
@@ -28,8 +28,7 @@
-
-
+
{{ item.title }}
@@ -38,8 +37,7 @@
-
-
+
{{ item.title }}
@@ -81,7 +79,6 @@
records.forEach(record => {
if (record.hasChild == 1) {
- // todo: icon
const { id, title, createTime } = record
const index = groups.findIndex(group => group.id === id)
if (index === -1) {
@@ -91,10 +88,9 @@
groups[index].createTime = createTime
}
} else {
- // todo: icon
- const { pid, id, title, createTime } = record
+ const { pid, id, title, image, createTime } = record
const index = groups.findIndex(group => group.id === pid)
- const item = { id, title, createTime }
+ const item = { id, title, image, createTime }
if (index === -1) {
groups.push({ id: pid, children: [item] })
} else {
diff --git a/pages/index/serve.vue b/pages/index/serve.vue
index 8f0e6c0..df60921 100644
--- a/pages/index/serve.vue
+++ b/pages/index/serve.vue
@@ -6,12 +6,10 @@
@@ -20,7 +18,6 @@
-
diff --git a/pages_order/case/index.vue b/pages_order/case/index.vue
index b86c7de..2c1b802 100644
--- a/pages_order/case/index.vue
+++ b/pages_order/case/index.vue
@@ -2,11 +2,11 @@
-
+
-
+
@@ -16,8 +16,7 @@
学生情况
-
-
+
@@ -28,8 +27,7 @@
服务项目
-
-
+
@@ -40,8 +38,7 @@
服务过程
-
-
+
@@ -52,8 +49,7 @@
服务结果
-
-
+
@@ -64,8 +60,7 @@
服务感受
-
-
+
@@ -81,20 +76,23 @@
},
data() {
return {
- title: '',
- bannerList: [],
- detail: {},
+ details: {},
}
},
onLoad({ articleId }) {
this.getData(articleId)
},
+ computed: {
+ bannerList() {
+ const { image } = this.details || {}
+ return (image || '').split(',').map(url => ({ image: url }))
+ }
+ },
methods: {
async getData(articleId) {
try {
- // todo
- await this.$fetch('queryAriticleById', { articleId })
+ this.details = await this.$fetch('queryAriticleById', { articleId })
} catch (err) {
}
@@ -114,6 +112,8 @@
.swiper {
margin: 20rpx 18rpx 47rpx 18rpx;
+ border-radius: 25rpx;
+ overflow: hidden;
/deep/ .uv-swiper-indicator__wrapper__dot {
width: 15rpx;
diff --git a/pages_order/thesis/index.vue b/pages_order/thesis/index.vue
index 5874042..dcc62c1 100644
--- a/pages_order/thesis/index.vue
+++ b/pages_order/thesis/index.vue
@@ -2,11 +2,11 @@
-
+
-
+
@@ -14,11 +14,7 @@
-
- 难度
-
-
- {{ process.content }}
+
@@ -31,9 +27,9 @@
-
+
{{ row.title }}
- {{ row.desc }}
+ {{ row.description }}
@@ -46,18 +42,18 @@
师资介绍
-
+
- {{ item.name }}
+ {{ item.title }}
- {{ item.label }}
+ {{ item.career }}
- {{ item.degree }}
+ {{ item.qualification }}
专业经历:
@@ -79,12 +75,9 @@
-
-
- {{ row.title }}
- {{ `(共${row.length}课时)` }}
-
- {{ row.desc }}
+
+ {{ row.title }}
+ {{ row.description }}
@@ -98,7 +91,7 @@
- {{ targetAudience }}
+
@@ -110,19 +103,19 @@
期刊推荐
-
+
- {{ item.name }}
- {{ item.desc }}
+ {{ item.title }}
+ {{ item.shortTitle }}
- {{ item.intro }}
+ {{ item.description }}
@@ -136,7 +129,7 @@
附加材料
-
+
@@ -145,11 +138,11 @@
- {{ item.name }}
- {{ `${item.type} ${item.size}MB` }}
+ {{ item.title }}
+ {{ `${getFileType(item.document)} ${item.size || '-'}MB` }}
-
+
@@ -160,31 +153,34 @@
export default {
data() {
return {
- title: '',
- bannerList: [],
- process: {},
- direction: [],
- teachers: [],
- course: [],
- targetAudience: '',
- journal: [],
- attachment: [],
+ details: {},
}
},
onLoad({ thesisId }) {
this.getData(thesisId)
},
+ computed: {
+ bannerList() {
+ const { image } = this.details || {}
+ return (image || '').split(',').map(url => ({ image: url }))
+ }
+ },
methods: {
async getData(thesisId) {
try {
- // todo
- await this.$fetch('queryThesisById', { thesisId })
+ this.details = await this.$fetch('queryThesisById', { thesisId })
} catch (err) {
}
},
+ getFileType(fileName) {
+ const pdfReg = /(.pdf)$/g
+ // const officeReg = /(doc|docx|ppt|pptx|xls|xlsx)$/g
+
+ return pdfReg.test(fileName) ? 'pdf' : ''
+ },
downloadFile(url) {
console.log('downloadFile', url)
uni.downloadFile({
@@ -219,6 +215,8 @@
.swiper {
margin: 20rpx 18rpx 32rpx 18rpx;
+ border-radius: 25rpx;
+ overflow: hidden;
/deep/ .uv-swiper-indicator__wrapper__dot {
width: 15rpx;
@@ -389,7 +387,7 @@
}
.pic {
- padding: 48rpx 9rpx 48rpx 0;
+ margin: 48rpx 9rpx 48rpx 0;
width: 253rpx;
height: 345rpx;
border-radius: 127rpx;
@@ -409,7 +407,7 @@
}
.pic {
- padding: 48rpx 0 48rpx 9rpx;
+ margin: 48rpx 0 48rpx 9rpx;
}
}
}
@@ -449,6 +447,25 @@
.info {
height: 181rpx;
padding: 0 14rpx 0 266rpx;
+
+ .name {
+ padding-left: 6rpx;
+ font-size: 32rpx;
+ font-weight: 700;
+ color: #000000;
+ }
+
+ .desc {
+ margin-top: 24rpx;
+ font-size: 28rpx;
+ font-weight: 700;
+ color: #707070;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ display:-webkit-box; //作为弹性伸缩盒子模型显示。
+ -webkit-box-orient:vertical; //设置伸缩盒子的子元素排列方式--从上到下垂直排列
+ -webkit-line-clamp:3; //显示的行
+ }
}
}
diff --git a/pages_order/thesis/search.vue b/pages_order/thesis/search.vue
index b9ceb97..be8f325 100644
--- a/pages_order/thesis/search.vue
+++ b/pages_order/thesis/search.vue
@@ -18,10 +18,10 @@
-
+
{{ item.title }}
- {{ item.description }}
+ {{ item.shortTitle }}
@@ -50,8 +50,7 @@
queryParams: {
pageNo: 1,
pageSize: 10,
- title: null,
- cid: null,
+ title: '',
},
mixinsListApi: 'queryThesisList',
}
@@ -78,16 +77,6 @@
this.queryParams.title = this.keyword
this.getData()
},
- getDataThen(list) {
- // todo: check
- const reg = /\<[^>]*\>/g
-
- this.list = list.map(item => {
- const description = item.description.replace(reg, '')
-
- return { ...item, description }
- })
- },
jumpToDetail(thesisId) {
uni.navigateTo({
url: `/pages_order/thesis/index?thesisId=${thesisId}`
@@ -136,6 +125,7 @@
}
.card {
+ align-items: flex-start;
background: #ffffff;
border-radius: 20rpx;
box-shadow: 0rpx 3rpx 6rpx 0rpx rgba(0,0,0,0.16);
diff --git a/store/store.js b/store/store.js
index c99ed44..9dc66c5 100644
--- a/store/store.js
+++ b/store/store.js
@@ -27,8 +27,7 @@ const store = new Vuex.Store({
}
if (res.code == 200) {
res.result?.records?.forEach(n => {
- configList[n.keyName] = n.keyContent;
- configList[n.keyName + '_keyValue'] = n.keyValue;
+ configList[n.paramCode] = n.paramImage || n.paramText || n.paramTextarea;
});
}
state.configList = configList
--
2.15.0