Merge branch 'dev-20250930' of http://25.13.9.101:9000/K17_AITS/tra-app into dev-20250930
This commit is contained in:
+7
-6
@@ -24,15 +24,16 @@ VITE_APP_BASE_API_Url = 'https://aitstest.jlbank.com.cn:7001'
|
||||
# 线上
|
||||
|
||||
# VITE_APP_BASE_H5_API_Url = 'https://aitstest.jlbank.com.cn:7001'
|
||||
VITE_APP_BASE_H5_API_Url = 'https://aitstest.jlbank.com.cn:7001'
|
||||
VITE_APP_BASE_H5_API_Url = 'http://25.18.122.65:7001'
|
||||
|
||||
|
||||
VITE_APP_BASE_H5_API_Url_TRAAPP = 'http://25.64.16.130:9601'
|
||||
VITE_APP_BASE_H5_API_Url_TRASTUDY = 'http://25.64.16.130:9602'
|
||||
VITE_APP_BASE_H5_API_Url_TRAASK = 'http://25.64.16.144:9605'
|
||||
# VITE_APP_BASE_H5_API_Url_TRAAPP = 'http://25.64.16.130:9601'
|
||||
# VITE_APP_BASE_H5_API_Url_TRASTUDY = 'http://25.64.16.130:9602'
|
||||
# VITE_APP_BASE_H5_API_Url_TRAASK = 'http://25.64.16.144:9605'
|
||||
|
||||
|
||||
# 王洋洋
|
||||
#VITE_APP_BASE_H5_API_Url_TRAEXAM = 'http://25.64.16.140:9604'
|
||||
# VITE_APP_BASE_H5_API_Url_TRAEXAM = 'http://25.64.16.140:9604'
|
||||
# 于嘉文
|
||||
#VITE_APP_BASE_H5_API_Url_TRAEXAM = 'http://25.64.16.143:9604'
|
||||
# VITE_APP_BASE_H5_API_Url_TRAEXAM = 'http://25.64.16.143:9604'
|
||||
|
||||
|
||||
@@ -60,4 +60,13 @@ export const publishCrsEvaluation = (data) => {
|
||||
};
|
||||
|
||||
|
||||
// 考试排行榜/traexam/traCrsPapers/queryTraCrsRankingList
|
||||
export const queryTraCrsRankingList = (data) => {
|
||||
return request({
|
||||
url: '/traexam/traCrsPapers/queryTraCrsRankingList',
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
|
||||
+15
-1
@@ -11,7 +11,21 @@ export const queryHotQuestionApi = (data) => {
|
||||
});
|
||||
};
|
||||
// 获取问答历史
|
||||
|
||||
export const queryAskBatchSessionPaging = (data) => {
|
||||
return request({
|
||||
url: '/traask/traAskchatSession/queryAskBatchSessionPaging',
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
};
|
||||
// 问答详情 /traAskchatSession/queryAskHisByBatchIdPaging
|
||||
export const queryAskHisByBatchIdPaging = (data) => {
|
||||
return request({
|
||||
url: '/traask/traAskchatSession/queryAskHisByBatchIdPaging',
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
};
|
||||
// 问答反馈
|
||||
export const insertTraAskFeedback = (data) => {
|
||||
return request({
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
import request from '@/api/request'
|
||||
const base_url = '/traapp'
|
||||
|
||||
// 搜索
|
||||
export const appSearchCrsApi = (data) => {
|
||||
return request({
|
||||
url: base_url + '/traSearchHis/appSearchCrs',
|
||||
method: 'post',
|
||||
toastErrors: true,
|
||||
data
|
||||
});
|
||||
};
|
||||
@@ -1,8 +1,7 @@
|
||||
<template>
|
||||
<view class="course-item-box" @click="clickItem">
|
||||
<view class="img-box-view">
|
||||
|
||||
<ImagePreview class="img-box" :imgId="itemInfo.imgId" :isCache="true" width="340" height="340" mode="aspectFill"></ImagePreview>
|
||||
<ImagePreview class="img-box" :imgId="itemInfo.imgId" :isCache="true" width="225" height="170" mode="aspectFill"></ImagePreview>
|
||||
<view class="item-grade">{{itemInfo.evalGrade}}</view>
|
||||
<!-- <image class="item-grade" mode="aspectFill"></view> -->
|
||||
</view>
|
||||
@@ -37,8 +36,8 @@
|
||||
})
|
||||
},
|
||||
activeTag:{
|
||||
default: '',
|
||||
type: String
|
||||
default: () => [],
|
||||
type: Array
|
||||
}
|
||||
},
|
||||
data() {
|
||||
@@ -55,9 +54,9 @@
|
||||
},
|
||||
computed:{
|
||||
tagsShowList(){
|
||||
if(!this.activeTag) return this.itemInfo.tagCataList
|
||||
let _arr = this.itemInfo.tagCataList.filter(t=> t.tagId === this.activeTag)
|
||||
let _arr1 = this.itemInfo.tagCataList.filter(t=> t.tagId !== this.activeTag)
|
||||
if(!this.activeTag) return this.itemInfo.tagCataList||[]
|
||||
let _arr = (this.itemInfo.tagCataList||[]).filter(t=> this.activeTag.includes(t.tagId))
|
||||
let _arr1 = (this.itemInfo.tagCataList||[]).filter(t=> !this.activeTag.includes(t.tagId))
|
||||
return _arr.concat(_arr1)
|
||||
}
|
||||
},
|
||||
@@ -73,8 +72,9 @@
|
||||
.course-item-box{
|
||||
padding: 15rpx;
|
||||
overflow: hidden;
|
||||
width: 100%;
|
||||
.img-box-view{
|
||||
width: 170rpx;
|
||||
width: 225rpx;
|
||||
height: 170rpx;
|
||||
float: left;
|
||||
position: relative;
|
||||
@@ -82,7 +82,7 @@
|
||||
overflow: hidden;
|
||||
box-shadow: 0 0 10rpx #c3c3c3;
|
||||
.img-box{
|
||||
width: 170rpx;
|
||||
width: 225rpx;
|
||||
height: 170rpx;
|
||||
}
|
||||
.item-grade{
|
||||
@@ -101,7 +101,7 @@
|
||||
}
|
||||
}
|
||||
.cont-box{
|
||||
width: calc(100% - 170rpx);
|
||||
width: calc(100% - 225rpx);
|
||||
box-sizing: border-box;
|
||||
padding: 0 10rpx 0 20rpx;
|
||||
float: left;
|
||||
@@ -118,23 +118,25 @@
|
||||
padding-bottom: 0 !important;
|
||||
.item-tag-view{
|
||||
white-space: nowrap;
|
||||
height: 34rpx;
|
||||
.item-tag{
|
||||
height: 32rpx;
|
||||
line-height: 32rpx;
|
||||
font-size: 20rpx;
|
||||
background-color: #eee;
|
||||
color: rgb(51, 51, 51);
|
||||
padding: 0 20rpx;
|
||||
border-radius: 16rpx;
|
||||
margin-right: 20rpx;
|
||||
display: inline-block;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
max-width: 200rpx;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
height: 38rpx;
|
||||
.item-tag{
|
||||
height: 38rpx;
|
||||
line-height: 36rpx;
|
||||
box-sizing: border-box;
|
||||
font-size: 20rpx;
|
||||
background-color: #fff;
|
||||
color: #ffa150;
|
||||
border: 1rpx solid #ffa150;
|
||||
padding: 0 20rpx;
|
||||
border-radius: 8rpx;
|
||||
margin-right: 20rpx;
|
||||
display: inline-block;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
max-width: 200rpx;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
}
|
||||
}
|
||||
.item-publish,
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<image :src="imgUrlShow" fit="cover" :mode="mode" @click="showDetail" style="width: 100%;height: 100%;"></image>
|
||||
<uv-overlay :show="showModel" opacity=".6" @click="showModel = false">
|
||||
<view class="overlay-box">
|
||||
<image class="detail-img" :src="imgUrlShow" fit="cover" :mode="mode"></image>
|
||||
<image class="detail-img" :src="imgUrlShow" :mode="mode"></image>
|
||||
</view>
|
||||
</uv-overlay>
|
||||
</view>
|
||||
|
||||
@@ -306,6 +306,15 @@
|
||||
"titleNView": false
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/search/result",
|
||||
"style": {
|
||||
"navigationBarTitleText": "",
|
||||
"app-plus": {
|
||||
"titleNView": false
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"tabBar": {
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
</view>
|
||||
<view class="touch-btn" v-if="keyboardIsShow">
|
||||
<uv-input class="input-box" ref="inputRef" v-model="answerValue" :maxlength="props.textValueLength"
|
||||
:adjustPosition="false" placeholderStyle='color:#999999;font-size:26rpx' placeholder="请输入文字">
|
||||
:adjustPosition="adjustPosition" placeholderStyle='color:#999999;font-size:26rpx' placeholder="请输入文字">
|
||||
</uv-input>
|
||||
</view>
|
||||
<view class="talk-btn-box" v-show="!onlyVoice">
|
||||
@@ -86,11 +86,16 @@
|
||||
textValueLength: {
|
||||
type: Number,
|
||||
default: 500
|
||||
}
|
||||
},
|
||||
adjustPosition: {
|
||||
default: false,
|
||||
type: Boolean
|
||||
},
|
||||
})
|
||||
const {
|
||||
isDisabled,
|
||||
onlyVoice
|
||||
onlyVoice,
|
||||
adjustPosition
|
||||
} = toRefs(props)
|
||||
const isLoadingState = computed(() => props.isLoading)
|
||||
|
||||
|
||||
+74
-20
@@ -29,14 +29,19 @@
|
||||
<uv-icon class="filter-icon" name="list"/>
|
||||
</view>
|
||||
<view :class="['filter-list',showFilterList?'show':'']">
|
||||
<view class="filter-type" v-for="item in tagsTree" :key="item.value">
|
||||
<!-- .filter(t=>(t.children||[]).length>0) -->
|
||||
<view class="filter-type-title">{{item.label}}</view>
|
||||
<scroll-view :scroll-x="true" class="filter-type-list">
|
||||
<view :class="['filter-type-item', activeTag===itemT.value?'is-active':'']" v-for="itemT in (item.children||[])" @click="chooseTag(itemT)">
|
||||
{{itemT.label}}
|
||||
</view>
|
||||
</scroll-view>
|
||||
<scroll-view :scroll-y="true" class="scroll-box-tags">
|
||||
<view class="filter-type" v-for="item in tagsTree" :key="item.value">
|
||||
<!-- .filter(t=>(t.children||[]).length>0) -->
|
||||
<view class="filter-type-title">{{item.label}}</view>
|
||||
<scroll-view :scroll-x="true" class="filter-type-list">
|
||||
<view :class="['filter-type-item', activeTag.includes(itemT.value)?'is-active':'']" v-for="itemT in (item.children||[])" @click="chooseTag(itemT)">
|
||||
{{itemT.label}}
|
||||
</view>
|
||||
</scroll-view>
|
||||
</view>
|
||||
</scroll-view>
|
||||
<view class="btns-box">
|
||||
<view class="btn-sub" @click="showFilterList = false">确定</view>
|
||||
</view>
|
||||
</view>
|
||||
<uv-scroll-list class="tags-view" :indicator="false">
|
||||
@@ -45,7 +50,7 @@
|
||||
plain
|
||||
class="tags-item"
|
||||
size="mini"
|
||||
:type="activeTag === ''?'primary':'info'"
|
||||
:type="activeTag.includes('')?'primary':'info'"
|
||||
@click="chooseTag({value:''})"
|
||||
></uv-tags>
|
||||
<uv-tags :text="item.label"
|
||||
@@ -53,7 +58,7 @@
|
||||
:key="item.value"
|
||||
shape="circle"
|
||||
plain
|
||||
:type="activeTag === item.value?'primary':'info'"
|
||||
:type="activeTag.includes(item.value)?'primary':'info'"
|
||||
@click="chooseTag(item)"
|
||||
class="tags-item" size="mini"
|
||||
></uv-tags>
|
||||
@@ -154,7 +159,7 @@ import { onShow } from "@dcloudio/uni-app"
|
||||
const activeTab = ref('全部')
|
||||
const activeCourseType = ref('')
|
||||
const activePrdlineType = ref('')
|
||||
const activeTag = ref('')
|
||||
const activeTag = ref([''])
|
||||
const courseTypeList = ref([])
|
||||
const coursePrdlineList = ref([])
|
||||
const tagsTree = ref([])
|
||||
@@ -167,8 +172,17 @@ import { onShow } from "@dcloudio/uni-app"
|
||||
const pageTopPadding = computed(() => statusBarHeight + 'px')
|
||||
// 点击标签
|
||||
const chooseTag = (item)=>{
|
||||
activeTag.value = item.value
|
||||
showFilterList.value = false
|
||||
if(!item.value){
|
||||
activeTag.value = ['']
|
||||
return
|
||||
}
|
||||
activeTag.value = activeTag.value.filter((t=>!!t))
|
||||
if(activeTag.value.includes(item.value)){
|
||||
activeTag.value = activeTag.value.filter((t=>t !== item.value))
|
||||
}else{
|
||||
activeTag.value.push(item.value)
|
||||
}
|
||||
// showFilterList.value = false
|
||||
}
|
||||
// 点击生产线分类
|
||||
const changePrdLine = (item)=>{
|
||||
@@ -194,9 +208,23 @@ import { onShow } from "@dcloudio/uni-app"
|
||||
|
||||
const courseListBase = ref([])
|
||||
const courseList = computed(()=>{
|
||||
return activeTag.value
|
||||
?courseListBase.value.filter(t=>(t.tagCataList||[]).map(k=>k.tagId).indexOf(activeTag.value)>=0)
|
||||
:courseListBase.value
|
||||
if(activeTag.value.length > 0 && !!activeTag.value[0]){
|
||||
return courseListBase.value.filter(t=>{
|
||||
let _tags = (t.tagCataList||[]).map(k=>k.tagId)
|
||||
let _pass = false
|
||||
activeTag.value.forEach(k => {
|
||||
if(_tags.includes(k)){
|
||||
_pass = true
|
||||
}
|
||||
})
|
||||
return _pass
|
||||
})
|
||||
}else{
|
||||
return courseListBase.value
|
||||
}
|
||||
// return activeTag.value.length > 0
|
||||
// ?courseListBase.value.filter(t=>(t.tagCataList||[]).map(k=>k.tagId).indexOf(activeTag.value)>=0)
|
||||
// :courseListBase.value
|
||||
})
|
||||
// 整理树形
|
||||
const courseListTree = computed(()=>{
|
||||
@@ -275,7 +303,7 @@ import { onShow } from "@dcloudio/uni-app"
|
||||
}
|
||||
// 跳转搜索页
|
||||
const toSearchPage = () => {
|
||||
common.navigateTo('/pages/search/search')
|
||||
common.navigateTo('/pages/search/search?from=course')
|
||||
}
|
||||
// 跳转 课程详情
|
||||
const toCourseDetail = (item) => {
|
||||
@@ -376,14 +404,20 @@ import { onShow } from "@dcloudio/uni-app"
|
||||
top: 84rpx;
|
||||
left:0;
|
||||
width: 100%;
|
||||
height: 508rpx;
|
||||
overflow-y: auto;
|
||||
height: 588rpx;
|
||||
padding-bottom: 80rpx;
|
||||
overflow-y: hidden;
|
||||
z-index: 2;
|
||||
background-color: #f9f9f9;
|
||||
box-shadow: 0rpx 12rpx 20rpx rgba(160,160,160,.25);
|
||||
border-radius: 0 0 0rpx 0rpx;
|
||||
padding: 0rpx 25rpx;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
.scroll-box-tags{
|
||||
height: 508rpx;
|
||||
padding: 0rpx 25rpx;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.filter-type{
|
||||
padding: 10rpx 0;
|
||||
box-sizing: border-box;
|
||||
@@ -424,6 +458,26 @@ import { onShow } from "@dcloudio/uni-app"
|
||||
margin-top: 20rpx;
|
||||
}
|
||||
}
|
||||
.btns-box{
|
||||
height: 80rpx;
|
||||
position: absolute;
|
||||
background-color: #fff;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
padding-top: 10rpx;
|
||||
.btn-sub{
|
||||
display: inline-block;
|
||||
text-align: center;
|
||||
background-color: #06f;
|
||||
height: 60rpx;
|
||||
line-height: 60rpx;
|
||||
padding: 0 40rpx;
|
||||
color: #fff;
|
||||
border-radius: 8rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
.filter-list{
|
||||
display: none;
|
||||
|
||||
@@ -22,18 +22,18 @@
|
||||
<view class="score-column">最高分</view>
|
||||
</view>
|
||||
<scroll-view :scroll-y="true" class="scroll-items-view">
|
||||
<view v-for="(item,index) in 60" :class="['list-item', 'item-'+(index+1)]">
|
||||
<view v-for="(item,index) in userList" :class="['list-item', 'item-'+(index+1)]">
|
||||
<view class="rank-column">
|
||||
{{index + 1}}
|
||||
{{item.ranking}}
|
||||
</view>
|
||||
<view class="user-column">
|
||||
<view class="avatar-box">
|
||||
<image-preview class="avatar-image" :imgId="item" mode="aspectFit"></image-preview>
|
||||
<image-preview class="avatar-image" :src="item.ossAddr" mode="aspectFit"></image-preview>
|
||||
</view>
|
||||
<view class="user-name">{{'李想'}}</view>
|
||||
<view class="user-org">{{'吉林银行白城分行'}}</view>
|
||||
<view class="user-name">{{item.userName}}</view>
|
||||
<view class="user-org">{{item.orgName}}</view>
|
||||
</view>
|
||||
<view class="score-column">{{100 - index}}</view>
|
||||
<view class="score-column">{{item.examGrade}}</view>
|
||||
</view>
|
||||
</scroll-view>
|
||||
</view>
|
||||
@@ -43,16 +43,16 @@
|
||||
</view>
|
||||
<view class="list-item item-me">
|
||||
<view class="rank-column">
|
||||
{{21}}
|
||||
{{userRankObj.ranking}}
|
||||
</view>
|
||||
<view class="user-column">
|
||||
<view class="avatar-box">
|
||||
<image-preview class="avatar-image" :imgId="item" mode="aspectFit"></image-preview>
|
||||
<image-preview class="avatar-image" :src="userRankObj.ossAddr" mode="aspectFit"></image-preview>
|
||||
</view>
|
||||
<view class="user-name">{{'李想'}}</view>
|
||||
<view class="user-org">{{'吉林银行白城分行'}}</view>
|
||||
<view class="user-name">{{userRankObj.userName}}</view>
|
||||
<view class="user-org">{{userRankObj.orgName}}</view>
|
||||
</view>
|
||||
<view class="score-column">{{22}}</view>
|
||||
<view class="score-column">{{userRankObj.examGrade}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@@ -60,14 +60,29 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { queryTraCrsRankingList } from "@/api/courseDetail.js"
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
|
||||
crsId:'',
|
||||
userList: [],
|
||||
userRankObj:{}
|
||||
}
|
||||
},
|
||||
onLoad(params){
|
||||
this.crsId = params.crsId
|
||||
this.getList()
|
||||
},
|
||||
methods: {
|
||||
|
||||
getList(){
|
||||
queryTraCrsRankingList({
|
||||
crsId: this.crsId
|
||||
}).then(res=>{
|
||||
console.log(res)
|
||||
this.userList = res.body.rankingListVos||[]
|
||||
this.userRankObj = res.body
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -6,8 +6,8 @@
|
||||
对话记录
|
||||
</view>
|
||||
<view class="history-list">
|
||||
<view class="history-item" v-for="item in 8" @click="chooseHistory(item)">
|
||||
{{'信息补录操作时,需录入什么信息?信息补录操作时,需录入什么信息?'}}
|
||||
<view class="history-item" v-for="item in historyList" :key="item.reqBatch" @click="chooseHistory(item)">
|
||||
{{item.sseContent}}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@@ -20,18 +20,32 @@
|
||||
reactive,
|
||||
computed,
|
||||
onMounted,
|
||||
nextTick
|
||||
nextTick
|
||||
} from 'vue';
|
||||
import { queryAskBatchSessionPaging } from '@/api/dialog.js'
|
||||
const emit = defineEmits(['showDetail'])
|
||||
|
||||
const historyPopupRef = ref()
|
||||
const historyList = ref([])
|
||||
const open = () => {
|
||||
openFeedback(true)
|
||||
}
|
||||
const close = () => {
|
||||
openFeedback()
|
||||
}
|
||||
const openFeedback = (status) => {
|
||||
const pageInfo = ref({
|
||||
page: 1,
|
||||
limit: 20
|
||||
})
|
||||
const getList = async () => {
|
||||
try {
|
||||
const res = await queryAskBatchSessionPaging(pageInfo.value)
|
||||
historyList.value = historyList.value.concat(res.body|| [])
|
||||
}catch{}finally{}
|
||||
}
|
||||
const openFeedback = async (status) => {
|
||||
if (status) {
|
||||
await getList()
|
||||
historyPopupRef.value.open('left')
|
||||
} else {
|
||||
historyPopupRef.value.close()
|
||||
@@ -39,6 +53,7 @@
|
||||
}
|
||||
const chooseHistory = (item) => {
|
||||
console.log(item)
|
||||
emit('showDetail',item)
|
||||
}
|
||||
defineExpose({
|
||||
open,close
|
||||
|
||||
@@ -85,7 +85,7 @@
|
||||
:isDisabled="false" />
|
||||
<!-- 反馈组件 -->
|
||||
<Feedback ref="feedbackRef"></Feedback>
|
||||
<History ref="historyRef"></History>
|
||||
<History ref="historyRef" @showDetail="showHistoryDetail"></History>
|
||||
<PreviewVue ref="previewRef" />
|
||||
</scroll-view>
|
||||
</view>
|
||||
@@ -134,7 +134,8 @@
|
||||
} from "@/api/common.js"
|
||||
import {
|
||||
queryHotQuestionApi,
|
||||
insertTraAskFeedback
|
||||
insertTraAskFeedback,
|
||||
queryAskHisByBatchIdPaging
|
||||
} from "@/api/dialog.js"
|
||||
import Feedback from './components/feedback.vue'
|
||||
import History from './components/history.vue'
|
||||
@@ -436,6 +437,30 @@
|
||||
const showHistory = () => {
|
||||
historyRef.value.open()
|
||||
}
|
||||
|
||||
const showHistoryDetail = (item) => {
|
||||
queryAskHisByBatchIdPaging({
|
||||
batchId: item.reqBatch,
|
||||
page: 1,
|
||||
limit: 100
|
||||
}).then(res=> {
|
||||
console.log(res)
|
||||
talkingList.value = (res.body || []).map((t,index)=> {
|
||||
return {
|
||||
type: t.chatRole === 'TCH'? 'answer':'question',
|
||||
talkingText: t.respContent,
|
||||
isLoading: false,
|
||||
id: t.askId + index,
|
||||
talkingVoice: '',
|
||||
reqBatch: item.reqBatch,
|
||||
intrctWay: '01', //01-文本;02-语音;03-图片
|
||||
intrctContent: t.respContent,
|
||||
bucketKey: ''
|
||||
}
|
||||
})
|
||||
historyRef.value.close()
|
||||
})
|
||||
}
|
||||
const routerTo = (type) => {
|
||||
switch (type) {
|
||||
case 'AI学':
|
||||
|
||||
@@ -10,17 +10,15 @@
|
||||
{{ item.taskName }}
|
||||
</view>
|
||||
<view class="time_div" v-if="item.limitTyp === '02'">
|
||||
起止时间:
|
||||
<text class="blod_color">{{ item.startTm?.substr(0, 10) }}至{{ item.endTm?.substr(0, 10) }}</text>
|
||||
起止时间:<text class="blod_color">{{ item.startTm?.substr(0, 10) }}至{{ item.endTm?.substr(0, 10) }}</text>
|
||||
</view>
|
||||
<view class="people_progress_div">
|
||||
<view class="mr-10">
|
||||
完成人数:
|
||||
<text class="">{{ item.taskFinishSums ?? 0 }}/{{ item.taskSums ?? 0 }}</text>
|
||||
完成人数:<text class="">{{ item.taskFinishSums ?? 0 }}/{{ item.taskSums ?? 0 }}</text>
|
||||
</view>
|
||||
<view>
|
||||
进度:
|
||||
<text class="">{{ item.finishCrs ?? 0 }}/{{ item.sumCrs ?? 0 }}门课程</text>
|
||||
<text class="">{{ item.finishCrs ?? item.learnedNumber ?? 0 }}/{{ item.sumCrs ?? item.taskNumber ?? 0 }}门课程</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@@ -94,7 +92,7 @@
|
||||
}
|
||||
.item {
|
||||
height: 170rpx;
|
||||
margin: 32rpx 22rpx;
|
||||
margin-top: 32rpx;
|
||||
display: flex;
|
||||
|
||||
.img_div {
|
||||
@@ -151,6 +149,7 @@
|
||||
flex-wrap: nowrap;
|
||||
height: 23rpx;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.people_progress_div {
|
||||
@@ -160,7 +159,7 @@
|
||||
font-size: 23rpx;
|
||||
color: #666;
|
||||
margin-bottom: 23rpx;
|
||||
|
||||
white-space: nowrap;
|
||||
line-height: 23rpx;
|
||||
flex-wrap: nowrap;
|
||||
height: 23rpx;
|
||||
|
||||
@@ -83,5 +83,7 @@
|
||||
height: calc(100vh - var(--status-bar-height) - 88rpx - 80rpx - 88rpx - 20rpx - 30rpx);
|
||||
background-color: #fff;
|
||||
border-radius: 16rpx;
|
||||
padding: 0 12rpx 0 22rpx;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -0,0 +1,535 @@
|
||||
<template>
|
||||
<view class="main_div max_page">
|
||||
<view class="fixed_search_div">
|
||||
<view class="back_div" @click="common.navigateBack()">
|
||||
<view class="back-icon"></view>
|
||||
</view>
|
||||
<view class="fixed_search_input_div fl1">
|
||||
<uv-input v-model="inputValue" shape="circle" :customStyle="fixedCustomStyles" confirmType="search"
|
||||
placeholderStyle='color:#999999;font-size:26rpx' placeholder="请输入关键字" :focus="true" :adjust-position="false"
|
||||
@confirm="search">
|
||||
<template #suffix><uv-icon name="search" color="#2c8ef2" size="24" @click="search()"></uv-icon></template>
|
||||
</uv-input>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 主体 -->
|
||||
<view class="search_content" v-if="!fromType">
|
||||
<view class="tabs-view">
|
||||
<uv-tabs :list="tabList" @click="changeTab" :scrollable="false" active-style="font-weight:bold; color:#000;"
|
||||
line-color="#06f"></uv-tabs>
|
||||
</view>
|
||||
<scroll-view class="lists-view" :scroll-y="true">
|
||||
<view class="ability-view model-view" v-show="!fromType || fromType === 'ability'">
|
||||
<view class="view-title">
|
||||
<image src="@/static/images/search/result/ability.png" class="view-title-img"></image>
|
||||
功能
|
||||
</view>
|
||||
<view class="view-list">
|
||||
<view class="ability-view-item" v-for="item in abilityListShow" @click="clickAbility(item)">
|
||||
<image class="icon" v-if="item.type === 'course'" src="@/static/images/index/navigation_course.png">
|
||||
</image>
|
||||
<image class="icon" v-if="item.type === 'dialog'"
|
||||
src="@/static/images/index/navigation_question_answering.png"></image>
|
||||
<image class="icon" v-if="item.type === 'test'" src="@/static/images/index/navigation_ai.png"></image>
|
||||
<image class="icon" v-if="item.type === 'task'" src="@/static/images/index/navigation_learning_tasks.png">
|
||||
</image>
|
||||
<image class="icon" v-if="item.type === 'exam'" src="@/static/images/index/navigation_examination.png">
|
||||
</image>
|
||||
<image class="icon" v-if="item.type === 'examTest'" src="@/static/images/index/navigation_practice.png">
|
||||
</image>
|
||||
<image class="icon" v-if="item.type === 'wrong'"
|
||||
src="@/static/images/index/navigation_wrong_question.png"></image>
|
||||
<image class="icon" v-if="item.type === 'analysis'"
|
||||
src="@/static/images/index/navigation_learning_analysis.png"></image>
|
||||
<view class="title">{{item.title}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="view-result" v-show="abilityListShow.length === 0">
|
||||
暂无数据
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="course-view model-view" v-show="!fromType || fromType === 'course'">
|
||||
<view class="view-title">
|
||||
<image src="@/static/images/search/result/course.png" class="view-title-img"></image>
|
||||
课程
|
||||
</view>
|
||||
<view class="view-list course-list">
|
||||
<course-item class="course-item" v-for="itemC in courseList" :key="itemC.crsNum" :itemInfo="itemC" @clickItem="toCourseDetail(itemC)"/>
|
||||
</view>
|
||||
<view class="view-result" v-show="courseList.length === 0">
|
||||
暂无数据
|
||||
</view>
|
||||
</view>
|
||||
<view class="task-view model-view" v-show="!fromType || fromType === 'task'">
|
||||
<view class="view-title">
|
||||
<image src="@/static/images/search/result/task.png" class="view-title-img"></image>
|
||||
任务
|
||||
</view>
|
||||
<view class="view-list">
|
||||
<TaskItem :item="item" v-for="(item, index) in taskList"></TaskItem>
|
||||
</view>
|
||||
<view class="view-result" v-show="taskList.length === 0">
|
||||
暂无数据
|
||||
</view>
|
||||
</view>
|
||||
<view class="test-view model-view" v-if="false">
|
||||
<view class="view-title">
|
||||
<image src="@/static/images/search/result/test.png" class="view-title-img"></image>
|
||||
AI陪练
|
||||
</view>
|
||||
<view class="view-list">
|
||||
</view>
|
||||
<view class="view-result" v-show="testList.length === 0">
|
||||
暂无数据
|
||||
</view>
|
||||
</view>
|
||||
<view class="exam-view model-view" v-show="!fromType || fromType === 'exam'">
|
||||
<view class="view-title">
|
||||
<image src="@/static/images/search/result/exam.png" class="view-title-img"></image>
|
||||
考试
|
||||
</view>
|
||||
<view class="view-list">
|
||||
<ExamItem class="exam-list" :item="item" v-for="item in examList"></ExamItem>
|
||||
</view>
|
||||
<view class="view-result" v-show="examList.length === 0">
|
||||
暂无数据
|
||||
</view>
|
||||
</view>
|
||||
</scroll-view>
|
||||
</view>
|
||||
<view class="search_content" v-if="fromType === 'course'">
|
||||
<scroll-view class="lists-view lists-view-course" :scroll-y="true" @scrolltolower="scrolltolower">
|
||||
<view class="view-list course-list">
|
||||
<course-item class="course-item" v-for="itemC in courseList" :key="itemC.crsNum" :itemInfo="itemC" @clickItem="toCourseDetail(itemC)"/>
|
||||
<view class="view-tips">
|
||||
{{hasMore?'滚动加载更多':'加载完成'}}
|
||||
</view>
|
||||
</view>
|
||||
<view class="view-result" v-show="courseList.length === 0">
|
||||
暂无数据
|
||||
</view>
|
||||
</scroll-view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import {
|
||||
ref,
|
||||
watchEffect,
|
||||
nextTick,
|
||||
onMounted,
|
||||
computed
|
||||
} from 'vue';
|
||||
import common from '@/common/common.js'
|
||||
import {
|
||||
onShow
|
||||
} from '@dcloudio/uni-app';
|
||||
import TaskItem from '@/pages/learningTasks/components/content-item.vue';
|
||||
import ExamItem from '@/pages/testingHall/components/content-item.vue';
|
||||
import { onLoad } from '@dcloudio/uni-app';
|
||||
import { appSearchCrsApi } from '@/api/search.js'
|
||||
|
||||
|
||||
const fromType = ref('')
|
||||
onLoad((params) => {
|
||||
inputValue.value = params.searchName
|
||||
fromType.value = params.from;
|
||||
pageInfo.value.limit = fromType.value === 'course'? 15 : 3
|
||||
});
|
||||
onShow(() => {
|
||||
search()
|
||||
});
|
||||
// 静态样式配置
|
||||
const fixedCustomStyles = {
|
||||
backgroundColor: "#ffffff",
|
||||
paddingLeft: "40rpx",
|
||||
paddingTop: "5px",
|
||||
paddingBottom: "5px",
|
||||
border: "none"
|
||||
}
|
||||
const inputValue = ref('');
|
||||
const searchValue = ref('');
|
||||
const activeTab = ref('')
|
||||
const tabList = ref([{
|
||||
name: '全部',
|
||||
type: 'all'
|
||||
},
|
||||
{
|
||||
name: '功能',
|
||||
type: 'ability'
|
||||
},
|
||||
{
|
||||
name: '课程',
|
||||
type: 'course'
|
||||
},
|
||||
{
|
||||
name: '任务',
|
||||
type: 'task'
|
||||
},
|
||||
{
|
||||
name: 'AI陪练',
|
||||
type: 'test'
|
||||
},
|
||||
{
|
||||
name: '考试',
|
||||
type: 'exam'
|
||||
},
|
||||
])
|
||||
const abilityListShow = computed(() => {
|
||||
if (searchValue.value) {
|
||||
let _arr = abilityList.value.filter(t => t.title.includes(searchValue.value))
|
||||
let _sum = 4 - (_arr.length % 4)
|
||||
if (_sum !== 4) {
|
||||
for (let i = 0; i < _sum; i++) {
|
||||
_arr.push({})
|
||||
}
|
||||
}
|
||||
return _arr
|
||||
} else {
|
||||
return abilityList.value
|
||||
}
|
||||
})
|
||||
const abilityList = ref([{
|
||||
title: 'AI学习',
|
||||
type: 'course',
|
||||
path: '/pages/course/index',
|
||||
isTab: true
|
||||
},
|
||||
{
|
||||
title: 'AI问答',
|
||||
type: 'dialog',
|
||||
path: '/pages/index/dialog',
|
||||
params: {
|
||||
animationType: 'slide-in-bottom'
|
||||
},
|
||||
},
|
||||
{
|
||||
title: 'AI陪练',
|
||||
type: 'test',
|
||||
path: '',
|
||||
},
|
||||
{
|
||||
title: '学习任务',
|
||||
type: 'task',
|
||||
path: '/pages/learningTasks/index',
|
||||
},
|
||||
{
|
||||
title: '考试中心',
|
||||
type: 'exam',
|
||||
path: '/pages/testingHall/index',
|
||||
},
|
||||
{
|
||||
title: '竞赛练习',
|
||||
type: 'examTest',
|
||||
path: '',
|
||||
},
|
||||
{
|
||||
title: '错题本',
|
||||
type: 'wrong',
|
||||
path: '/pages/wrongQuestionRecord/index',
|
||||
},
|
||||
{
|
||||
title: '学习分析',
|
||||
type: 'analysis',
|
||||
path: '',
|
||||
},
|
||||
])
|
||||
const testList = ref([])
|
||||
const taskList = ref([])
|
||||
const examList = ref([])
|
||||
const courseList = ref([])
|
||||
|
||||
const changeTab = (item) => {
|
||||
if (!item) return
|
||||
activeTab.value = item.type
|
||||
console.log(item)
|
||||
switch (item.name) {
|
||||
case 'all':
|
||||
break;
|
||||
case 'ability':
|
||||
break;
|
||||
case 'course':
|
||||
break;
|
||||
case 'task':
|
||||
break;
|
||||
case 'test':
|
||||
break;
|
||||
case 'exam':
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
const clickAbility = (item) => {
|
||||
if(item.isTab){
|
||||
common.switchTab(item.path)
|
||||
}else{
|
||||
common.navigateTo(item.path,item.params|| {})
|
||||
}
|
||||
}
|
||||
const pageInfo = ref({
|
||||
page: 1,
|
||||
limit: 3,
|
||||
total: 0
|
||||
})
|
||||
const search = () => {
|
||||
searchValue.value = inputValue.value
|
||||
getData(1)
|
||||
}
|
||||
const getData = (flag=null) => {
|
||||
if(flag){
|
||||
pageInfo.value.page = 1
|
||||
courseList.value = []
|
||||
}
|
||||
appSearchCrsApi({
|
||||
type: fromType.value === 'course'?'01':'00',//00 首页搜索 01课程搜索
|
||||
searchName: searchValue.value,
|
||||
page: pageInfo.value.page,
|
||||
limit: pageInfo.value.limit
|
||||
}).then(res=>{
|
||||
pageInfo.value.total = res.total || 0
|
||||
courseList.value = courseList.value.concat(res.body.traCrsInfoVoList||[])
|
||||
if(fromType.value !== 'course'){
|
||||
examList.value = res.body.traExamPapersExtVoList||[]
|
||||
taskList.value = res.body.traTaskInfoExtVoList||[]
|
||||
}
|
||||
})
|
||||
}
|
||||
const hasMore = computed(()=> {
|
||||
return (pageInfo.value.limit * pageInfo.value.page) <= pageInfo.value.total
|
||||
})
|
||||
const scrolltolower = () => {
|
||||
if(!hasMore.value){
|
||||
return
|
||||
}
|
||||
pageInfo.value.page += 1
|
||||
getData()
|
||||
}
|
||||
const toCourseDetail = (item)=>{
|
||||
common.navigateTo("/pages/courseDetail/index?crsId=" + item.crsId);
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.search_content {
|
||||
height: calc(100% - 94rpx);
|
||||
background-color: #fff;
|
||||
border-radius: 30rpx 30rpx 0 0;
|
||||
|
||||
.tabs-view {
|
||||
height: 84rpx;
|
||||
}
|
||||
|
||||
.lists-view {
|
||||
height: calc(100% - 90rpx);
|
||||
box-sizing: border-box;
|
||||
padding: 24rpx 30rpx;
|
||||
&.lists-view-course{
|
||||
height: 100%;
|
||||
}
|
||||
.view-result {
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
height: 100rpx;
|
||||
line-height: 100rpx;
|
||||
color: #999;
|
||||
}
|
||||
.view-tips{
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
color: #999;
|
||||
font-size: 25rpx;
|
||||
}
|
||||
.model-view {
|
||||
border: 2px solid #f1f1f1;
|
||||
border-radius: 15rpx;
|
||||
padding: 20rpx 24rpx 24rpx;
|
||||
margin-bottom: 24rpx;
|
||||
|
||||
.view-title {
|
||||
height: 40rpx;
|
||||
line-height: 40rpx;
|
||||
padding-left: 50rpx;
|
||||
position: relative;
|
||||
font-size: 29rpx;
|
||||
|
||||
.view-title-img {
|
||||
position: absolute;
|
||||
left: 5rpx;
|
||||
top: 5rpx;
|
||||
width: 30rpx;
|
||||
height: 30rpx;
|
||||
}
|
||||
}
|
||||
&.ability-view{
|
||||
.view-list {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
.view-list {
|
||||
overflow: hidden;
|
||||
|
||||
.scroll-view-item {
|
||||
display: inline-block;
|
||||
margin-right: 30rpx;
|
||||
background-color: #ffffff;
|
||||
border-radius: 22rpx;
|
||||
box-shadow: #eaeaea 0 0 6rpx;
|
||||
padding: 32rpx 22rpx 36rpx 26rpx;
|
||||
}
|
||||
&.course-list{
|
||||
margin: 6rpx -20rpx 0;
|
||||
}
|
||||
.exam-list{
|
||||
border:2rpx solid #e8e8e8;
|
||||
}
|
||||
.course-item {
|
||||
display: flex;
|
||||
.left {
|
||||
border-radius: 16rpx;
|
||||
overflow: hidden;
|
||||
width: 180rpx;
|
||||
height: 146rpx;
|
||||
|
||||
.img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.right {
|
||||
width: calc(100% - 180rpx);
|
||||
margin-left: 22rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
|
||||
.title {
|
||||
width: 100%;
|
||||
font-weight: 500;
|
||||
font-size: 30rpx;
|
||||
color: #333333;
|
||||
line-height: 40rpx;
|
||||
text-align: left;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
.note {
|
||||
font-family: PingFangSC, PingFang SC;
|
||||
font-weight: 400;
|
||||
font-size: 23rpx;
|
||||
color: #666666;
|
||||
line-height: 33rpx;
|
||||
text-align: left;
|
||||
font-style: normal;
|
||||
|
||||
}
|
||||
|
||||
.button_div {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
|
||||
|
||||
.button {
|
||||
text-align: center;
|
||||
line-height: 62rpx;
|
||||
width: 138rpx;
|
||||
height: 62rpx;
|
||||
background: #EBF1FF;
|
||||
border-radius: 30rpx;
|
||||
font-weight: 500;
|
||||
font-size: 30rpx;
|
||||
color: #0066FF;
|
||||
font-style: normal;
|
||||
margin-right: 10rpx;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
.ability-view-item {
|
||||
width: 98rpx;
|
||||
margin-right: 50rpx;
|
||||
float: left;
|
||||
margin-top: 24rpx;
|
||||
|
||||
&:nth-child(4n) {
|
||||
margin-right: 0rpx;
|
||||
}
|
||||
|
||||
.icon {
|
||||
width: 88rpx;
|
||||
height: 86rpx;
|
||||
margin-left: 5rpx;
|
||||
}
|
||||
|
||||
.title {
|
||||
margin-top: 10rpx;
|
||||
font-family: PingFangSC, PingFang SC;
|
||||
font-weight: 400;
|
||||
font-size: 25rpx;
|
||||
white-space: nowrap;
|
||||
line-height: 35rpx;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.fixed_search_div {
|
||||
padding: 10rpx 15rpx 24rpx 10rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
height: 94rpx;
|
||||
box-sizing: border-box;
|
||||
|
||||
.back_div {
|
||||
// margin-right: 10rpx;
|
||||
padding: 10rpx 10rpx 10rpx 20rpx;
|
||||
|
||||
// background-color: red;
|
||||
.back-icon {
|
||||
position: relative;
|
||||
width: 40rpx;
|
||||
height: 40rpx;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.back-icon::before,
|
||||
.back-icon::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.back-icon::after {
|
||||
top: 25%;
|
||||
left: 25%;
|
||||
width: 40%;
|
||||
height: 40%;
|
||||
border-top: 4rpx solid #2B2C2E;
|
||||
border-left: 4rpx solid #2B2C2E;
|
||||
transform: rotate(-45deg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.main_div {
|
||||
width: 100vw;
|
||||
background: linear-gradient(90deg, #F1F7FF 0%, #D8EDFF 50%, #C3E6FF 100%);
|
||||
padding-top: var(--status-bar-height);
|
||||
height: 100vh;
|
||||
overflow: hidden;
|
||||
}
|
||||
::v-deep .uv-tabs__wrapper__nav__item__text{
|
||||
white-space: nowrap;
|
||||
}
|
||||
</style>
|
||||
+23
-15
@@ -6,9 +6,10 @@
|
||||
<view class="back-icon"></view>
|
||||
</view>
|
||||
<view class="fixed_search_input_div fl1">
|
||||
<uv-input v-model="inputValue" shape="circle" :customStyle="fixedCustomStyles"
|
||||
placeholderStyle='color:#999999;font-size:26rpx' placeholder="请输入关键字" suffixIcon="search"
|
||||
:suffixIconStyle="suffixIconStyle" :focus="true">
|
||||
<uv-input v-model="inputValue" shape="circle" :customStyle="fixedCustomStyles" confirmType="search"
|
||||
placeholderStyle='color:#999999;font-size:26rpx' placeholder="请输入关键字" :focus="true" :adjust-position="false"
|
||||
@confirm="search">
|
||||
<template #suffix><uv-icon name="search" color="#2c8ef2" size="24" @click="search()"></uv-icon></template>
|
||||
</uv-input>
|
||||
</view>
|
||||
<view class="message_div" v-show="false">
|
||||
@@ -55,6 +56,18 @@
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import {
|
||||
ref,
|
||||
watchEffect,
|
||||
nextTick,
|
||||
onMounted
|
||||
} from 'vue';
|
||||
import common from '@/common/common.js'
|
||||
import {
|
||||
onShow,
|
||||
onLoad
|
||||
} from '@dcloudio/uni-app';
|
||||
|
||||
const tagRefs = ref([]) // 用于存储所有history_item的引用
|
||||
import {
|
||||
getCurrentInstance,
|
||||
@@ -139,17 +152,6 @@
|
||||
}
|
||||
|
||||
|
||||
import {
|
||||
ref,
|
||||
watchEffect,
|
||||
nextTick,
|
||||
onMounted
|
||||
} from 'vue';
|
||||
import common from '@/common/common.js'
|
||||
import {
|
||||
onShow
|
||||
} from '@dcloudio/uni-app';
|
||||
|
||||
// 静态样式配置
|
||||
const fixedCustomStyles = {
|
||||
backgroundColor: "#ffffff",
|
||||
@@ -164,11 +166,17 @@
|
||||
}
|
||||
const inputValue = ref('');
|
||||
|
||||
|
||||
const fromType = ref('')
|
||||
onLoad((params) => {
|
||||
fromType.value = params.from||'';
|
||||
});
|
||||
|
||||
|
||||
const measureRef = ref(null)
|
||||
const measureItems = ref([])
|
||||
const search=() => {
|
||||
common.navigateTo('/pages/search/result?searchName='+ inputValue.value +'&from=' + fromType.value)
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
|
||||
@@ -78,7 +78,8 @@
|
||||
|
||||
.item {
|
||||
padding: 30rpx 44rpx 20rpx 38rpx;
|
||||
margin: 0rpx 22rpx 22rpx 22rpx;
|
||||
// margin: 0rpx 22rpx 22rpx 22rpx;
|
||||
margin-top: 22rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background-color: #ffffff;
|
||||
|
||||
@@ -117,6 +117,8 @@
|
||||
border-radius: 20rpx 20rpx 0 0;
|
||||
position: relative;
|
||||
padding-top: 22rpx;
|
||||
padding: 0 22rpx;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -34,6 +34,15 @@
|
||||
"titleNView": false
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/search/result",
|
||||
"style": {
|
||||
"navigationBarTitleText": "",
|
||||
"app-plus": {
|
||||
"titleNView": false
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 739 B |
Binary file not shown.
|
After Width: | Height: | Size: 361 B |
Binary file not shown.
|
After Width: | Height: | Size: 529 B |
Binary file not shown.
|
After Width: | Height: | Size: 547 B |
Binary file not shown.
|
After Width: | Height: | Size: 565 B |
Reference in New Issue
Block a user