Merge branch 'milestone-20251031-简版功能开发' of http://39.101.133.168:8807/qimaohong/deepChartVueApp into wangyi/feature-20251026183100-deepmate王毅
lihuilin/feature-20251024095243-我的
-
15api/setting/share.js
-
30api/tcpConnection.js
-
3components/IndexCard.vue
-
8components/MarketOverview.vue
-
190components/SharePopup.vue
-
9manifest.json
-
30pages.json
-
55pages/analysisInstitutionalTrends/analysisInstitutionalTrends.vue
-
147pages/customStockList/customStockList.vue
-
57pages/home/home.vue
-
307pages/marketSituation/globalIndex.vue
-
151pages/marketSituation/marketCondition.vue
-
340pages/marketSituation/marketDetail.vue
-
290pages/marketSituation/marketOverview.vue
-
37pages/morningMarketAnalysis/morningMarketAnalysis.vue
-
278pages/setting/share.vue
-
BINstatic/my/share/KakaoTalk.png
-
BINstatic/my/share/Line.png
-
BINstatic/my/share/WeChat.png
-
BINstatic/my/share/WhatsApp.png
-
BINstatic/my/share/share.png
-
BINstatic/my/share/success.png
-
55stores/modules/marketSituation.js
-
5utils/http.js
@ -0,0 +1,15 @@ |
|||||
|
import { http } from '../../utils/http' |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 分享接口获取dccode |
||||
|
* @param data |
||||
|
* @returns {*} |
||||
|
*/ |
||||
|
export const Share = (data) => { |
||||
|
return http({ |
||||
|
method: 'POST', |
||||
|
url: '/api/my/share', |
||||
|
data: data, |
||||
|
}) |
||||
|
} |
||||
@ -0,0 +1,190 @@ |
|||||
|
<!--自定义分享弹窗 使用uni的更改--> |
||||
|
<template> |
||||
|
<view class="uni-popup-share"> |
||||
|
<!-- <view class="uni-share-title">--> |
||||
|
<!-- <text class="uni-share-title-text">{{ shareTitleText }}</text>--> |
||||
|
<!-- </view>--> |
||||
|
<view class="uni-share-content"> |
||||
|
<view class="uni-share-content-box"> |
||||
|
<view class="uni-share-content-item" v-for="(item,index) in bottomData" :key="index" |
||||
|
@click.stop="select(item,index)"> |
||||
|
<image class="uni-share-image" :src="item.icon" mode="aspectFill"></image> |
||||
|
<text class="uni-share-text">{{ item.text }}</text> |
||||
|
</view> |
||||
|
|
||||
|
</view> |
||||
|
</view> |
||||
|
<view class="uni-share-button-box"> |
||||
|
<button class="uni-share-button" @click="close">{{ cancelText }}</button> |
||||
|
</view> |
||||
|
</view> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import popup from '../uni_modules/uni-popup/components/uni-popup/popup.js' |
||||
|
// import popup from '../uni-popup/popup.js' |
||||
|
import {initVueI18n} from '@dcloudio/uni-i18n' |
||||
|
import messages from '../uni_modules/uni-popup/components/uni-popup/i18n/index.js' |
||||
|
|
||||
|
const {t} = initVueI18n(messages) |
||||
|
export default { |
||||
|
name: 'SharePopup', |
||||
|
mixins: [popup], |
||||
|
emits: ['select'], |
||||
|
props: { |
||||
|
title: { |
||||
|
type: String, |
||||
|
default: '' |
||||
|
}, |
||||
|
beforeClose: { |
||||
|
type: Boolean, |
||||
|
default: false |
||||
|
} |
||||
|
}, |
||||
|
data() { |
||||
|
return { |
||||
|
bottomData: [{ |
||||
|
text: 'WhatsApp', |
||||
|
icon: '/static/my/share/WhatsApp.png', |
||||
|
name: 'WhatsApp' |
||||
|
}, |
||||
|
{ |
||||
|
text: 'Line', |
||||
|
icon: '/static/my/share/Line.png', |
||||
|
name: 'Line' |
||||
|
}, |
||||
|
{ |
||||
|
text: 'KakaoTalk', |
||||
|
icon: '/static/my/share/KakaoTalk.png', |
||||
|
name: 'KakaoTalk' |
||||
|
}, |
||||
|
{ |
||||
|
text: 'WeChat', |
||||
|
icon: '/static/my/share/WeChat.png', |
||||
|
name: 'WeChat' |
||||
|
}, |
||||
|
{ |
||||
|
text: '复制链接', |
||||
|
icon: '/static/my/share/share.png', |
||||
|
name: '复制链接' |
||||
|
}, |
||||
|
] |
||||
|
} |
||||
|
}, |
||||
|
created() { |
||||
|
}, |
||||
|
computed: { |
||||
|
cancelText() { |
||||
|
return t("uni-popup.cancel") |
||||
|
}, |
||||
|
shareTitleText() { |
||||
|
return this.title || t("uni-popup.shareTitle") |
||||
|
} |
||||
|
}, |
||||
|
methods: { |
||||
|
/** |
||||
|
* 选择内容 |
||||
|
*/ |
||||
|
select(item, index) { |
||||
|
this.$emit('select', { |
||||
|
item, |
||||
|
index |
||||
|
}) |
||||
|
// this.close() |
||||
|
|
||||
|
}, |
||||
|
/** |
||||
|
* 关闭窗口 |
||||
|
*/ |
||||
|
close() { |
||||
|
if (this.beforeClose) return |
||||
|
this.popup.close() |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
|
<style lang="scss"> |
||||
|
.uni-popup-share { |
||||
|
background-color: #fff; |
||||
|
border-top-left-radius: 11px; |
||||
|
border-top-right-radius: 11px; |
||||
|
} |
||||
|
|
||||
|
.uni-share-title { |
||||
|
/* #ifndef APP-NVUE */ |
||||
|
display: flex; |
||||
|
/* #endif */ |
||||
|
flex-direction: row; |
||||
|
align-items: center; |
||||
|
justify-content: center; |
||||
|
height: 40px; |
||||
|
} |
||||
|
|
||||
|
.uni-share-title-text { |
||||
|
font-size: 14px; |
||||
|
color: #666; |
||||
|
} |
||||
|
|
||||
|
.uni-share-content { |
||||
|
/* #ifndef APP-NVUE */ |
||||
|
display: flex; |
||||
|
/* #endif */ |
||||
|
flex-direction: row; |
||||
|
justify-content: center; |
||||
|
padding-top: 10px; |
||||
|
} |
||||
|
|
||||
|
.uni-share-content-box { |
||||
|
/* #ifndef APP-NVUE */ |
||||
|
display: flex; |
||||
|
/* #endif */ |
||||
|
flex-direction: row; |
||||
|
flex-wrap: wrap; |
||||
|
width: 360px; |
||||
|
} |
||||
|
|
||||
|
.uni-share-content-item { |
||||
|
width: 72px; |
||||
|
/* #ifndef APP-NVUE */ |
||||
|
display: flex; |
||||
|
/* #endif */ |
||||
|
flex-direction: column; |
||||
|
justify-content: center; |
||||
|
padding: 10px 0; |
||||
|
align-items: center; |
||||
|
} |
||||
|
|
||||
|
.uni-share-content-item:active { |
||||
|
background-color: #f5f5f5; |
||||
|
} |
||||
|
|
||||
|
.uni-share-image { |
||||
|
width: 42px; |
||||
|
height: 42px; |
||||
|
} |
||||
|
|
||||
|
.uni-share-text { |
||||
|
margin-top: 10px; |
||||
|
font-size: 14px; |
||||
|
color: #3B4144; |
||||
|
} |
||||
|
|
||||
|
.uni-share-button-box { |
||||
|
/* #ifndef APP-NVUE */ |
||||
|
display: flex; |
||||
|
/* #endif */ |
||||
|
flex-direction: row; |
||||
|
padding: 10px 15px; |
||||
|
} |
||||
|
|
||||
|
.uni-share-button { |
||||
|
flex: 1; |
||||
|
border-radius: 50px; |
||||
|
color: #666; |
||||
|
font-size: 16px; |
||||
|
} |
||||
|
|
||||
|
.uni-share-button::after { |
||||
|
border-radius: 50px; |
||||
|
} |
||||
|
</style> |
||||
@ -0,0 +1,55 @@ |
|||||
|
<template> |
||||
|
<view class="container"> |
||||
|
<view class="content"> |
||||
|
<image |
||||
|
class="no-data-image" |
||||
|
src="https://d31zlh4on95l9h.cloudfront.net/images/f5a9bd32c81bc7cca47252b51357c12f.png" |
||||
|
mode="aspectFit" |
||||
|
></image> |
||||
|
<text class="no-data-text">暂无数据~</text> |
||||
|
</view> |
||||
|
</view> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
export default { |
||||
|
data() { |
||||
|
return { |
||||
|
|
||||
|
} |
||||
|
}, |
||||
|
methods: { |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
|
|
||||
|
<style> |
||||
|
.container { |
||||
|
width: 100%; |
||||
|
height: 100vh; |
||||
|
display: flex; |
||||
|
justify-content: center; |
||||
|
align-items: center; |
||||
|
background-color: #f5f5f5; |
||||
|
} |
||||
|
|
||||
|
.content { |
||||
|
display: flex; |
||||
|
flex-direction: column; |
||||
|
align-items: center; |
||||
|
justify-content: center; |
||||
|
} |
||||
|
|
||||
|
.no-data-image { |
||||
|
width: 200px; |
||||
|
height: 200px; |
||||
|
margin-bottom: 20px; |
||||
|
} |
||||
|
|
||||
|
.no-data-text { |
||||
|
font-size: 16px; |
||||
|
color: #999999; |
||||
|
text-align: center; |
||||
|
} |
||||
|
</style> |
||||
@ -0,0 +1,147 @@ |
|||||
|
|
||||
|
<!-- 自选股页面 --> |
||||
|
<template> |
||||
|
<view class="container"> |
||||
|
<!-- 自定义导航栏 --> |
||||
|
<view class="custom-navbar"> |
||||
|
<view class="navbar-content"> |
||||
|
<view class="navbar-left"> |
||||
|
<view class="back-btn" @click="goBack"> |
||||
|
<text class="back-icon">‹</text> |
||||
|
</view> |
||||
|
</view> |
||||
|
<view class="navbar-center"> |
||||
|
<text class="navbar-title">我的自选</text> |
||||
|
</view> |
||||
|
<view class="navbar-right"> |
||||
|
<image |
||||
|
class="navbar-btn" |
||||
|
src="https://d31zlh4on95l9h.cloudfront.net/images/ba5c8a2eda065274e868bcd9b2d7d914.png" |
||||
|
@click="onFirstButtonClick" |
||||
|
mode="aspectFit" |
||||
|
></image> |
||||
|
<image |
||||
|
class="navbar-btn" |
||||
|
src="https://d31zlh4on95l9h.cloudfront.net/images/a4ae8952aeae90dac6d2b4c221c65fa9.png" |
||||
|
@click="onSecondButtonClick" |
||||
|
mode="aspectFit" |
||||
|
></image> |
||||
|
</view> |
||||
|
</view> |
||||
|
</view> |
||||
|
|
||||
|
<!-- 页面内容 --> |
||||
|
<view class="page-content"> |
||||
|
|
||||
|
</view> |
||||
|
</view> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
export default { |
||||
|
data() { |
||||
|
return { |
||||
|
|
||||
|
} |
||||
|
}, |
||||
|
methods: { |
||||
|
// 返回上一页 |
||||
|
goBack() { |
||||
|
uni.navigateBack() |
||||
|
}, |
||||
|
|
||||
|
// 第一个按钮点击事件 |
||||
|
onFirstButtonClick() { |
||||
|
console.log('第一个按钮被点击') |
||||
|
// 这里可以添加具体的功能逻辑 |
||||
|
}, |
||||
|
|
||||
|
// 第二个按钮点击事件 |
||||
|
onSecondButtonClick() { |
||||
|
console.log('第二个按钮被点击') |
||||
|
// 这里可以添加具体的功能逻辑 |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
|
|
||||
|
<style> |
||||
|
.container { |
||||
|
width: 100%; |
||||
|
height: 100vh; |
||||
|
background-color: #f5f5f5; |
||||
|
} |
||||
|
|
||||
|
/* 自定义导航栏 */ |
||||
|
.custom-navbar { |
||||
|
position: fixed; |
||||
|
top: 0; |
||||
|
left: 0; |
||||
|
right: 0; |
||||
|
z-index: 999; |
||||
|
background-color: #ffffff; |
||||
|
border-bottom: 1px solid #e5e5e5; |
||||
|
} |
||||
|
|
||||
|
.navbar-content { |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
justify-content: space-between; |
||||
|
height: 44px; |
||||
|
padding: 0 15px; |
||||
|
/* 适配状态栏高度 */ |
||||
|
padding-top: var(--status-bar-height, 20px); |
||||
|
min-height: calc(44px + var(--status-bar-height, 20px)); |
||||
|
} |
||||
|
|
||||
|
.navbar-left { |
||||
|
flex: 0 0 auto; |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
} |
||||
|
|
||||
|
.back-btn { |
||||
|
width: 40px; |
||||
|
height: 40px; |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
justify-content: center; |
||||
|
} |
||||
|
|
||||
|
.back-icon { |
||||
|
font-size: 24px; |
||||
|
color: #333333; |
||||
|
font-weight: bold; |
||||
|
} |
||||
|
|
||||
|
.navbar-center { |
||||
|
flex: 1; |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
justify-content: center; |
||||
|
} |
||||
|
|
||||
|
.navbar-title { |
||||
|
font-size: 18px; |
||||
|
font-weight: 500; |
||||
|
color: #333333; |
||||
|
} |
||||
|
|
||||
|
.navbar-right { |
||||
|
flex: 0 0 auto; |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
gap: 10px; |
||||
|
} |
||||
|
|
||||
|
.navbar-btn { |
||||
|
width: 24px; |
||||
|
height: 24px; |
||||
|
} |
||||
|
|
||||
|
/* 页面内容 */ |
||||
|
.page-content { |
||||
|
padding-top: calc(44px + var(--status-bar-height, 20px) + 1px); |
||||
|
min-height: calc(100vh - 44px - var(--status-bar-height, 20px) - 1px); |
||||
|
} |
||||
|
</style> |
||||
|
After Width: 42 | Height: 42 | Size: 2.5 KiB |
|
After Width: 42 | Height: 42 | Size: 2.2 KiB |
|
After Width: 42 | Height: 42 | Size: 2.4 KiB |
|
After Width: 42 | Height: 42 | Size: 3.6 KiB |
|
After Width: 42 | Height: 42 | Size: 1.3 KiB |
|
After Width: 32 | Height: 32 | Size: 1.6 KiB |