31 changed files with 2427 additions and 670 deletions
@ -1,5 +1,5 @@ |
|||||
ENV='development' |
ENV='development' |
||||
# base api |
# base api |
||||
VITE_APP_BASE_URL = 'https://evote.truescloud.com' |
VITE_APP_BASE_URL = 'https://hqt.truescloud.com' |
||||
VITE_APP_BASE_PRE = '/dev-api' |
VITE_APP_BASE_PRE = '/dev-api' |
||||
VITE_APP_BASE_NAME = 'POS' |
VITE_APP_BASE_NAME = 'POS' |
||||
|
|||||
@ -1,6 +1,6 @@ |
|||||
ENV='production' |
ENV='production' |
||||
# base api |
# base api |
||||
VITE_APP_BASE_URL = 'http://pos-api.lingji.vip' |
VITE_APP_BASE_URL = 'https://hqt.truescloud.com' |
||||
VITE_APP_BASE_PRE = 'http://pos-api.lingji.vip' |
VITE_APP_BASE_PRE = 'https://hqt.truescloud.com' |
||||
VITE_APP_BASE_NAME = 'POS' |
VITE_APP_BASE_NAME = 'POS' |
||||
|
|
||||
|
|||||
@ -0,0 +1,67 @@ |
|||||
|
import { request } from '@/utils/http' |
||||
|
|
||||
|
//首页专题
|
||||
|
export function homeSpecial() { |
||||
|
return request.http({ |
||||
|
url: '/api/huiqitong/home_special', |
||||
|
method: 'GET' |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
//banner列表
|
||||
|
export function bannerList() { |
||||
|
return request.http({ |
||||
|
url: '/api/huiqitong/banner_list', |
||||
|
method: 'GET' |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
//banner详情
|
||||
|
export function bannerInfo(id:string) { |
||||
|
return request.http({ |
||||
|
url: '/api/huiqitong/banner_info/'+id, |
||||
|
method: 'GET' |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
//活动列表
|
||||
|
export function activityList(page: string,limit: string) { |
||||
|
return request.http({ |
||||
|
url: '/api/huiqitong/activity_list?page='+page+'&limit='+limit, |
||||
|
method: 'GET' |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
//专题详情
|
||||
|
export function specialInfo(id: string) { |
||||
|
return request.http({ |
||||
|
url: '/api/huiqitong/special_info?special_id='+id, |
||||
|
method: 'GET' |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
//专题内容列表
|
||||
|
export function specialList(id: string) { |
||||
|
return request.http({ |
||||
|
url: '/api/huiqitong/special_list?special_id=1&page=1&limit=10', |
||||
|
method: 'GET' |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
//专题内容详情
|
||||
|
export function specialListInfo(id: string) { |
||||
|
return request.http({ |
||||
|
url: '/api/huiqitong/special_list_info/'+id, |
||||
|
method: 'GET' |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
//ai客服
|
||||
|
export function ai(data: any) { |
||||
|
return request.http({ |
||||
|
url: '/api/huiqitong/ai', |
||||
|
method: 'POST', |
||||
|
data |
||||
|
}) |
||||
|
} |
||||
|
|
||||
@ -0,0 +1,62 @@ |
|||||
|
import { request } from '@/utils/http' |
||||
|
|
||||
|
//我的学习清单
|
||||
|
export function myStudy() { |
||||
|
return request.http({ |
||||
|
url: '/api/huiqitong/my_study', |
||||
|
method: 'GET' |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
//学习中心列表
|
||||
|
export function studyCenter(recommend:string,title:string,type:string,page:string,limit:string) { |
||||
|
return request.http({ |
||||
|
url: '/api/huiqitong/study_center?recommend='+recommend+'&title='+title+'&s_type='+type+'&page='+page+'&limit='+limit, |
||||
|
method: 'GET' |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
//学习中心详情
|
||||
|
export function studyCenterDetail(id:string) { |
||||
|
return request.http({ |
||||
|
url: '/api/huiqitong/study_center/'+id, |
||||
|
method: 'GET' |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
//收藏学习
|
||||
|
export function collect(data:{item_id:string}) { |
||||
|
return request.http({ |
||||
|
url: '/api/huiqitong/collect', |
||||
|
method: 'POST', |
||||
|
data |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
//取消收藏
|
||||
|
export function removeCollect(data:{item_id:string}) { |
||||
|
return request.http({ |
||||
|
url: '/api/huiqitong/remove_collect', |
||||
|
method: 'POST', |
||||
|
data |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
//增加观看次数
|
||||
|
export function watchCount(data:{id:string}) { |
||||
|
return request.http({ |
||||
|
url: '/api/huiqitong/watch_count', |
||||
|
method: 'POST', |
||||
|
data |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
//观看进度记录
|
||||
|
export function studyRecord(data:any) { |
||||
|
return request.http({ |
||||
|
url: '/api/huiqitong/study_record', |
||||
|
method: 'POST', |
||||
|
data |
||||
|
}) |
||||
|
} |
||||
|
|
||||
@ -0,0 +1,19 @@ |
|||||
|
import { request } from '@/utils/http' |
||||
|
|
||||
|
//修改用户信息(单项)
|
||||
|
export function modifyField(field:string,value:string) { |
||||
|
return request.http({ |
||||
|
url: '/api/huiqitong/modify/'+ field +'?value=' + value, |
||||
|
method: 'PUT' |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
//图片上传
|
||||
|
export function updataImage(data:any) { |
||||
|
return request.http({ |
||||
|
url: '/api/file/image', |
||||
|
method: 'POST', |
||||
|
data |
||||
|
}) |
||||
|
} |
||||
|
|
||||
@ -0,0 +1,263 @@ |
|||||
|
<template> |
||||
|
<view class="dialog-container" v-if="visible"> |
||||
|
<view class="dialog-mask" @click="close">×</view> |
||||
|
<view class="dialog-content"> |
||||
|
<scroll-view class="message-box" scroll-y> |
||||
|
<view class="akstart" v-if="showfirst"> |
||||
|
<view v-for="(msg,index) in messages" :key="index" :class="['message', msg.role]"> |
||||
|
<image class="aicon" src="@/static/img/aiicon.png" mode=""></image> |
||||
|
<view class="bubble"> |
||||
|
<text>{{ msg.content }}</text> |
||||
|
</view> |
||||
|
</view> |
||||
|
<view v-if="loading" class="loading">AI思考中...</view> |
||||
|
</view> |
||||
|
<view class="cnxw" v-else> |
||||
|
<view class="message assistant"> |
||||
|
<image class="aicon" src="@/static/img/aiicon.png" mode=""></image> |
||||
|
<view class="bubble"> |
||||
|
<text class="cwtitle">猜你想问</text> |
||||
|
<u-line color="#99CCFF" margin="20rpx 0"></u-line> |
||||
|
<text class="cwtxt" @click="askClcik('小微企业优惠政策')">小微企业优惠政策</text> |
||||
|
<text class="cwtxt" @click="askClcik('2025年最新小微企业优惠政策')">2025年最新小微企业优惠政策</text> |
||||
|
</view> |
||||
|
</view> |
||||
|
</view> |
||||
|
</scroll-view> |
||||
|
<view class="input-box" v-if="showfirst"> |
||||
|
<input v-model="inputText" placeholder="请输入问题" @confirm="send" /> |
||||
|
<button @click="send" :disabled="loading">发送</button> |
||||
|
</view> |
||||
|
<view class="inputbox" @click="showfirst = true" v-else> |
||||
|
<image style="width: 28rpx;height: 26rpx;margin-right: 8rpx;" src="@/static/img/daan.png" mode=""> |
||||
|
</image> |
||||
|
找不到答案,点此提问 |
||||
|
</view> |
||||
|
</view> |
||||
|
</view> |
||||
|
</template> |
||||
|
|
||||
|
<script setup> |
||||
|
import { |
||||
|
ref |
||||
|
} from 'vue' |
||||
|
import { |
||||
|
ai |
||||
|
} from '@/api/index' |
||||
|
|
||||
|
const showfirst = ref(false) |
||||
|
|
||||
|
const props = defineProps({ |
||||
|
visible: Boolean, |
||||
|
}) |
||||
|
const emit = defineEmits(['close']) |
||||
|
|
||||
|
const messages = ref([]) |
||||
|
const inputText = ref('') |
||||
|
const loading = ref(false) |
||||
|
|
||||
|
const close = () => emit('close') |
||||
|
|
||||
|
const send = async () => { |
||||
|
if (!inputText.value.trim()) return |
||||
|
|
||||
|
// 用户消息(右侧) |
||||
|
messages.value.push({ |
||||
|
role: 'user', |
||||
|
content: inputText.value |
||||
|
}) |
||||
|
|
||||
|
const question = inputText.value |
||||
|
inputText.value = '' |
||||
|
loading.value = true |
||||
|
|
||||
|
try { |
||||
|
const { |
||||
|
data |
||||
|
} = await ai({ |
||||
|
"messages": question |
||||
|
}) |
||||
|
|
||||
|
// AI回复(左侧) |
||||
|
messages.value.push({ |
||||
|
role: 'assistant', |
||||
|
content: data.content |
||||
|
}) |
||||
|
} catch (e) { |
||||
|
messages.value.push({ |
||||
|
role: 'system', |
||||
|
content: '服务异常,请稍后重试' |
||||
|
}) |
||||
|
} finally { |
||||
|
loading.value = false |
||||
|
} |
||||
|
} |
||||
|
const askClcik = (val) => { |
||||
|
showfirst.value = true |
||||
|
inputText.value = val |
||||
|
} |
||||
|
</script> |
||||
|
|
||||
|
<style scoped lang="scss"> |
||||
|
.dialog-container { |
||||
|
position: fixed; |
||||
|
top: 0; |
||||
|
left: 0; |
||||
|
right: 0; |
||||
|
bottom: 0; |
||||
|
z-index: 999; |
||||
|
} |
||||
|
|
||||
|
.dialog-mask { |
||||
|
position: absolute; |
||||
|
width: 100%; |
||||
|
height: 100%; |
||||
|
background: rgba(0, 0, 0, 0.5); |
||||
|
} |
||||
|
|
||||
|
.dialog-content { |
||||
|
position: absolute; |
||||
|
width: 100%; |
||||
|
height: 686rpx; |
||||
|
bottom: 0; |
||||
|
background: #E7F3FF; |
||||
|
box-sizing: border-box; |
||||
|
border: 2rpx solid #FFFFFF; |
||||
|
box-shadow: 0rpx -30rpx 20rpx 0rpx rgba(0, 0, 0, 0.2); |
||||
|
border-radius: 96rpx 0rpx 0rpx 0rpx; |
||||
|
display: flex; |
||||
|
flex-direction: column; |
||||
|
} |
||||
|
|
||||
|
.message-box { |
||||
|
height: 85%; |
||||
|
padding: 30rpx 30rpx 10rpx 30rpx; |
||||
|
box-sizing: border-box; |
||||
|
} |
||||
|
|
||||
|
.message { |
||||
|
margin-bottom: 30rpx; |
||||
|
display: flex; |
||||
|
} |
||||
|
|
||||
|
.message.user { |
||||
|
justify-content: flex-end; |
||||
|
} |
||||
|
|
||||
|
.message.assistant { |
||||
|
justify-content: flex-start; |
||||
|
} |
||||
|
|
||||
|
.bubble { |
||||
|
max-width: 75%; |
||||
|
padding: 20rpx 30rpx; |
||||
|
border-radius: 10rpx; |
||||
|
background-color: aliceblue; |
||||
|
} |
||||
|
|
||||
|
.user { |
||||
|
.bubble { |
||||
|
background: #95ec69; |
||||
|
} |
||||
|
|
||||
|
.aicon { |
||||
|
width: 0; |
||||
|
height: 0; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.assistant { |
||||
|
.aicon { |
||||
|
width: 74rpx; |
||||
|
height: 64rpx; |
||||
|
} |
||||
|
|
||||
|
.bubble { |
||||
|
background: #FFFFFF; |
||||
|
margin-left: 20rpx; |
||||
|
|
||||
|
text { |
||||
|
font-family: Source Han Sans; |
||||
|
font-size: 24rpx; |
||||
|
font-weight: 300; |
||||
|
line-height: 48rpx; |
||||
|
text-align: justify; |
||||
|
/* 浏览器可能不支持 */ |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
letter-spacing: normal; |
||||
|
color: #000000; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.input-box { |
||||
|
height: 15%; |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
padding: 20rpx; |
||||
|
border-radius: 40rpx 40rpx 0rpx 0rpx; |
||||
|
background: #FFFFFF; |
||||
|
box-shadow: 0rpx -2rpx 12rpx 0rpx rgba(0, 0, 0, 0.05); |
||||
|
} |
||||
|
|
||||
|
input { |
||||
|
flex: 1; |
||||
|
padding: 16rpx 24rpx; |
||||
|
border: 2rpx solid #ddd; |
||||
|
border-radius: 8rpx; |
||||
|
} |
||||
|
|
||||
|
button { |
||||
|
margin-left: 20rpx; |
||||
|
padding: 0 30rpx; |
||||
|
background: #007aff; |
||||
|
color: white; |
||||
|
height: 70rpx; |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
} |
||||
|
|
||||
|
.loading { |
||||
|
text-align: center; |
||||
|
color: #999; |
||||
|
} |
||||
|
|
||||
|
.cwtitle { |
||||
|
color: #007FFF !important; |
||||
|
} |
||||
|
|
||||
|
.cwtxt { |
||||
|
font-family: Source Han Sans; |
||||
|
font-size: 24rpx; |
||||
|
font-weight: 300; |
||||
|
line-height: 48rpx; |
||||
|
text-align: justify; |
||||
|
/* 浏览器可能不支持 */ |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
letter-spacing: normal; |
||||
|
color: #666666; |
||||
|
} |
||||
|
|
||||
|
.inputbox { |
||||
|
height: 15%; |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
justify-content: center; |
||||
|
padding: 20rpx; |
||||
|
border-radius: 40rpx 40rpx 0rpx 0rpx; |
||||
|
background: #FFFFFF; |
||||
|
box-shadow: 0rpx -2rpx 12rpx 0rpx rgba(0, 0, 0, 0.05); |
||||
|
font-family: Source Han Sans; |
||||
|
font-size: 24rpx; |
||||
|
font-weight: 300; |
||||
|
line-height: 48rpx; |
||||
|
text-align: justify; |
||||
|
/* 浏览器可能不支持 */ |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
letter-spacing: normal; |
||||
|
color: #007FFF; |
||||
|
} |
||||
|
</style> |
||||
File diff suppressed because one or more lines are too long
@ -0,0 +1,31 @@ |
|||||
|
|
||||
|
import { ref, onMounted, onUnmounted } from 'vue'; |
||||
|
|
||||
|
export default function useTimeDiff(targetDateStr) { |
||||
|
const days = ref(0); |
||||
|
const hours = ref(0); |
||||
|
const minutes = ref(0); |
||||
|
|
||||
|
const calculateDiff = () => { |
||||
|
const targetDate = new Date(targetDateStr.replace(/-/g, '/')); |
||||
|
const now = new Date(); |
||||
|
const diffMs = now - targetDate; |
||||
|
|
||||
|
days.value = Math.max(0, Math.floor(diffMs / 86400000)); |
||||
|
hours.value = Math.max(0, Math.floor((diffMs % 86400000) / 3600000)); |
||||
|
minutes.value = Math.max(0, Math.floor((diffMs % 3600000) / 60000)); |
||||
|
}; |
||||
|
|
||||
|
let timer; |
||||
|
|
||||
|
onMounted(() => { |
||||
|
calculateDiff(); |
||||
|
timer = setInterval(calculateDiff, 60000); |
||||
|
}); |
||||
|
|
||||
|
onUnmounted(() => { |
||||
|
clearInterval(timer); |
||||
|
}); |
||||
|
|
||||
|
return { days, hours, minutes }; |
||||
|
} |
||||
@ -1,13 +1,163 @@ |
|||||
<script setup lang="ts"> |
|
||||
|
|
||||
</script> |
|
||||
|
|
||||
<template> |
<template> |
||||
<view class="electionList"> |
<view class="container"> |
||||
|
<u-search @search="search" @clickIcon="clickIcon" shape="square" placeholder="请输入搜索内容" |
||||
|
placeholderColor="#2a98ff" v-model="keyword" searchIcon="/static/img/search.png" searchIconSize="14" |
||||
|
:showAction="false" height="40" margin="40rpx 24rpx 24rpx 24rpx" bgColor="#FFFFFF"></u-search> |
||||
|
|
||||
|
<view class="main"> |
||||
|
<view class="ztone" v-for="(item,index) in ztList" :key="index" @click="godetail(item.id)"> |
||||
|
<image style="width: 150rpx;height: 150rpx;border-radius: 28rpx;flex: 1;" :src="item.img" mode=""> |
||||
|
</image> |
||||
|
<view class="rightpart"> |
||||
|
<view class="splace"> |
||||
|
{{item.splace}} |
||||
|
</view> |
||||
|
<view class="titlepart"> |
||||
|
<text class="title">{{item.title}}</text> |
||||
|
<image style="width: 32rpx;height: 44rpx;" src="@/static/img/Icon.png" mode="aspectFill"> |
||||
|
</image> |
||||
|
</view> |
||||
|
<view class="ms"> |
||||
|
{{item.ms}} |
||||
|
</view> |
||||
|
</view> |
||||
|
</view> |
||||
</view> |
</view> |
||||
|
</view> |
||||
|
|
||||
</template> |
</template> |
||||
|
|
||||
|
<script setup> |
||||
|
import { |
||||
|
ref |
||||
|
} from 'vue'; |
||||
|
|
||||
|
|
||||
|
|
||||
|
// 响应式数据 |
||||
|
const keyword = ref(''); |
||||
|
|
||||
|
|
||||
|
const search = (val) => { |
||||
|
console.log(val); |
||||
|
} |
||||
|
|
||||
|
const clickIcon = () => { |
||||
|
console.log(keyword.value); |
||||
|
} |
||||
|
|
||||
|
const ztList = ref([{ |
||||
|
id: 0, |
||||
|
img: '/static/img/image.png', |
||||
|
title: '这是一个标题', |
||||
|
time: '2025-04-16', |
||||
|
splace: '内蒙古数心科技', |
||||
|
ms: '描述描述描述描述描述描述' |
||||
|
}, |
||||
|
{ |
||||
|
id: 1, |
||||
|
img: '/static/img/image.png', |
||||
|
title: '这是一个标题', |
||||
|
time: '2025-04-16', |
||||
|
splace: '内蒙古数心科技', |
||||
|
ms: '描述描述描述描述描述描述' |
||||
|
} |
||||
|
]) |
||||
|
|
||||
|
const godetail = (id) => { |
||||
|
uni.navigateTo({ |
||||
|
url: '/pages/index/shoppage/jrbDetail?id=' + id |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
onMounted(() => { |
||||
|
|
||||
|
}) |
||||
|
</script> |
||||
|
|
||||
<style scoped lang="scss"> |
<style scoped lang="scss"> |
||||
|
.container { |
||||
|
background: linear-gradient(0deg, #F1F3F9 72%, rgba(129, 179, 222, 0.5) 88%); |
||||
|
height: 100vh; |
||||
|
width: 100%; |
||||
|
overflow-y: auto; |
||||
|
|
||||
|
.main { |
||||
|
margin-top: 10rpx; |
||||
|
width: 100%; |
||||
|
height: 100%; |
||||
|
padding: 0 24rpx; |
||||
|
box-sizing: border-box; |
||||
|
max-height: 79vh; |
||||
|
overflow-y: auto; |
||||
|
|
||||
|
.ztone { |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
width: 100%; |
||||
|
height: 210rpx; |
||||
|
margin-top: 30rpx; |
||||
|
padding: 30rpx; |
||||
|
border-radius: 20rpx; |
||||
|
background: #FFFFFF; |
||||
|
box-sizing: border-box; |
||||
|
border: 2rpx solid rgba(0, 127, 255, 0.12); |
||||
|
|
||||
|
.rightpart { |
||||
|
width: 100%; |
||||
|
margin-left: 40rpx; |
||||
|
flex: 3; |
||||
|
display: grid; |
||||
|
|
||||
|
.titlepart { |
||||
|
width: 100%; |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
justify-content: space-between; |
||||
|
|
||||
|
.title { |
||||
|
font-family: Poppins; |
||||
|
font-size: 24rpx; |
||||
|
font-weight: 600; |
||||
|
line-height: 34rpx; |
||||
|
letter-spacing: normal; |
||||
|
/* 外部/Colors/Dark/Base 1 */ |
||||
|
color: #161719; |
||||
|
margin-top: 13rpx; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.splace { |
||||
|
font-family: Poppins; |
||||
|
font-size: 24rpx; |
||||
|
font-weight: normal; |
||||
|
line-height: 34rpx; |
||||
|
letter-spacing: normal; |
||||
|
/* 外部/Colors/Dark/Base 1 */ |
||||
|
color: #161719; |
||||
|
} |
||||
|
|
||||
|
.ms { |
||||
|
margin-top: 13rpx; |
||||
|
font-family: Poppins; |
||||
|
font-size: 20rpx; |
||||
|
font-weight: normal; |
||||
|
line-height: 28rpx; |
||||
|
letter-spacing: normal; |
||||
|
/* 外部/Colors/Light/Base 3 */ |
||||
|
color: #91919F; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.hdzq { |
||||
|
width: 182rpx; |
||||
|
height: 80rpx; |
||||
|
position: fixed; |
||||
|
right: 0; |
||||
|
top: 70%; |
||||
|
margin-right: -14rpx; |
||||
|
} |
||||
</style> |
</style> |
||||
@ -0,0 +1,93 @@ |
|||||
|
<template> |
||||
|
<view class="container"> |
||||
|
<text class="texttitle">内蒙古数心科技有限公司</text> |
||||
|
<view class="titlepart"> |
||||
|
<view class="icon"></view> |
||||
|
<text class="title">公司简介</text> |
||||
|
</view> |
||||
|
<image style="width: 100%;height: 400rpx;margin-top: 40rpx;" src="@/static/img/Bitmap.png" mode=""></image> |
||||
|
<text class="message">说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明</text> |
||||
|
</view> |
||||
|
</template> |
||||
|
|
||||
|
<script setup> |
||||
|
import { |
||||
|
onLoad |
||||
|
} from '@dcloudio/uni-app'; |
||||
|
import { |
||||
|
ref |
||||
|
} from 'vue'; |
||||
|
|
||||
|
|
||||
|
onLoad(() => { |
||||
|
|
||||
|
}) |
||||
|
</script> |
||||
|
|
||||
|
<style scoped lang="scss"> |
||||
|
.container { |
||||
|
background-color: #FFFFFF; |
||||
|
height: calc(100vh - 182rpx); |
||||
|
width: 100%; |
||||
|
padding: 40rpx 40rpx 0 40rpx; |
||||
|
box-sizing: border-box; |
||||
|
.titlepart { |
||||
|
margin-top: 40rpx; |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
.icon{ |
||||
|
width: 12rpx; |
||||
|
height: 32rpx; |
||||
|
border-radius: 0rpx 32rpx 32rpx 0rpx; |
||||
|
/* 蓝色渐变 */ |
||||
|
background: linear-gradient(0deg, #007FFF 0%, #99CCFF 100%); |
||||
|
} |
||||
|
.title { |
||||
|
margin-left: 18rpx; |
||||
|
font-family: Source Han Sans; |
||||
|
font-size: 30rpx; |
||||
|
font-weight: 350; |
||||
|
line-height: 32rpx; |
||||
|
text-align: justify; /* 浏览器可能不支持 */ |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
letter-spacing: normal; |
||||
|
color: #0072FF; |
||||
|
} |
||||
|
} |
||||
|
.texttitle { |
||||
|
font-family: Source Han Sans; |
||||
|
font-size: 36rpx; |
||||
|
font-weight: normal; |
||||
|
letter-spacing: normal; |
||||
|
color: #0C092A; |
||||
|
} |
||||
|
.message { |
||||
|
margin-top: 36rpx; |
||||
|
font-family: Source Han Sans; |
||||
|
font-size: 30rpx; |
||||
|
font-weight: 300; |
||||
|
line-height: 60rpx; |
||||
|
text-align: justify; /* 浏览器可能不支持 */ |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
letter-spacing: normal; |
||||
|
color: #3D3D3D; |
||||
|
} |
||||
|
.people { |
||||
|
margin-top: 28rpx; |
||||
|
display: flex; |
||||
|
.text { |
||||
|
font-family: Source Han Sans; |
||||
|
font-size: 32rpx; |
||||
|
font-weight: 300; |
||||
|
line-height: 60rpx; |
||||
|
text-align: justify; /* 浏览器可能不支持 */ |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
letter-spacing: normal; |
||||
|
color: #3D3D3D; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
</style> |
||||
@ -0,0 +1,76 @@ |
|||||
|
<template> |
||||
|
<view class="classbox"> |
||||
|
<view class="classone" v-for="(item,index) in classList" :key="index" @click="goDetail(item.id)"> |
||||
|
<text class="title">{{item.title}}</text> |
||||
|
<text class="text">关联时间:{{item.time}}</text> |
||||
|
</view> |
||||
|
</view> |
||||
|
</template> |
||||
|
|
||||
|
<script setup> |
||||
|
import { |
||||
|
ref |
||||
|
} from 'vue'; |
||||
|
|
||||
|
const classList = ref([{ |
||||
|
id: 1, |
||||
|
title: '内蒙古数心科技有限公司', |
||||
|
time: '2025-04-17' |
||||
|
}, |
||||
|
{ |
||||
|
id: 2, |
||||
|
title: '内蒙古数心科技有限公司', |
||||
|
time: '2025-04-17' |
||||
|
}, |
||||
|
]) |
||||
|
|
||||
|
const goDetail = (id) => { |
||||
|
uni.navigateTo({ |
||||
|
url: '/pages/mine/associatedDetail?id='+id |
||||
|
}) |
||||
|
} |
||||
|
</script> |
||||
|
|
||||
|
<style scoped lang="scss"> |
||||
|
.classbox { |
||||
|
height: 100vh; |
||||
|
background: linear-gradient(0deg, #F1F3F9 72%, rgb(202 202 204 / 20%) 88%); |
||||
|
padding: 6rpx 24rpx 40rpx 24rpx; |
||||
|
box-sizing: border-box; |
||||
|
overflow-y: auto; |
||||
|
|
||||
|
.classone { |
||||
|
width: 100%; |
||||
|
height: 144rpx; |
||||
|
border-radius: 20rpx; |
||||
|
background: #FFFFFF; |
||||
|
display: grid; |
||||
|
align-items: center; |
||||
|
padding: 32rpx 28rpx; |
||||
|
margin-top: 30rpx; |
||||
|
|
||||
|
.title { |
||||
|
font-family: Source Han Sans; |
||||
|
font-size: 28rpx; |
||||
|
font-weight: 350; |
||||
|
text-align: justify; |
||||
|
/* 浏览器可能不支持 */ |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
letter-spacing: normal; |
||||
|
color: #0C092A; |
||||
|
} |
||||
|
|
||||
|
.text { |
||||
|
margin-top: 24rpx; |
||||
|
font-family: Source Han Sans; |
||||
|
font-size: 20rpx; |
||||
|
font-weight: 350; |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
letter-spacing: normal; |
||||
|
color: #858494; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
</style> |
||||
@ -0,0 +1,279 @@ |
|||||
|
<template> |
||||
|
<view class="container"> |
||||
|
<view class="cardbox"> |
||||
|
<view v-for="(group, index) in inputGroups" :key="index" class="input-group"> |
||||
|
<view class="inputs" @click="beforeRead(index)"> |
||||
|
公司性质 |
||||
|
<input class="inputclass" placeholder-class="inputplacla" :value="group.type==1 ? '其他(自由职业者等)' : (group.type===2 ? '个体工商户' : (group.type===3 ? '民营企业' : '') )" |
||||
|
placeholder="民营企业、个体工商户、其它(自由职业者等)" @click="qyshow = true" /> |
||||
|
<u-action-sheet :actions="qylist" title="请选择关联企业类型" :show="qyshow" @select="qyClick" |
||||
|
@close="qyshow = false"></u-action-sheet> |
||||
|
公司名称 |
||||
|
<input class="inputclass" placeholder-class="inputplacla" v-model="group.title" |
||||
|
placeholder="请输入真实公司名称" /> |
||||
|
营业执照 |
||||
|
<u-upload class="uploadbox" @afterRead="afterRead" :maxCount="1" |
||||
|
:imageMode="'heightFix'" :width="auto" :height="144"> |
||||
|
<view class="yyzz" v-if="group.license === ''"> |
||||
|
<image style="width: 40rpx;height: 40rpx;" src="@/static/img/yyzz.png" mode=""></image> |
||||
|
上传营业执照 |
||||
|
</view> |
||||
|
<image v-else @click="beforeRead(index)" style="width: 100%;height: 288rpx;margin-top: 12rpx;" :src="baseurl+ '/' + group.license" mode="scaleToFill"></image> |
||||
|
</u-upload> |
||||
|
</view> |
||||
|
<view v-if="index > 0" class="remove-btn">-</view> |
||||
|
</view> |
||||
|
<button @click="addGroup" class="add-btn">+ 添加一组</button> |
||||
|
</view> |
||||
|
</view> |
||||
|
<view class="buts"> |
||||
|
<view class="but" @click="submit"> |
||||
|
确认提交 |
||||
|
</view> |
||||
|
</view> |
||||
|
</template> |
||||
|
|
||||
|
<script setup> |
||||
|
import { |
||||
|
ref |
||||
|
} from 'vue' |
||||
|
import { |
||||
|
modifyField, |
||||
|
} from '@/api/mine' |
||||
|
|
||||
|
const baseurl = ref(import.meta.env.VITE_APP_BASE_URL) |
||||
|
|
||||
|
const inputGroups = ref([{ |
||||
|
type: '', |
||||
|
title: '', |
||||
|
license: '' |
||||
|
}]) |
||||
|
|
||||
|
const addGroup = () => { |
||||
|
inputGroups.value.push({ |
||||
|
type: '', |
||||
|
title: '', |
||||
|
license: '' |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
const qyshow = ref(false) |
||||
|
const qylist = ref([{ |
||||
|
id: 1, |
||||
|
name: '其他(自由职业者等)', |
||||
|
}, |
||||
|
{ |
||||
|
id: 2, |
||||
|
name: '个体工商户', |
||||
|
}, |
||||
|
{ |
||||
|
id: 3, |
||||
|
name: '民营企业', |
||||
|
} |
||||
|
]); |
||||
|
const qyClick = async (val) => { |
||||
|
inputGroups.value[upclickindex.value].type = val.id |
||||
|
} |
||||
|
|
||||
|
const removeGroup = (index) => { |
||||
|
inputGroups.value.splice(index, 1) |
||||
|
} |
||||
|
|
||||
|
const upclickindex = ref(0) |
||||
|
const beforeRead = (index) =>{ |
||||
|
upclickindex.value = index |
||||
|
} |
||||
|
|
||||
|
const afterRead = async (e) => { |
||||
|
console.log(e); |
||||
|
uni.uploadFile({ |
||||
|
url: import.meta.env.VITE_APP_BASE_URL + '/api/file/image', |
||||
|
filePath: e.file.url, |
||||
|
name: 'file', |
||||
|
header: { |
||||
|
'token': uni.getStorageSync('access_token') |
||||
|
}, |
||||
|
success: async (val) => { |
||||
|
inputGroups.value[upclickindex.value].license = '' |
||||
|
console.log(val); |
||||
|
console.log(JSON.parse(val.data).data.url); |
||||
|
if (JSON.parse(val.data).data.url) { |
||||
|
console.log(upclickindex.value); |
||||
|
inputGroups.value[upclickindex.value].license = JSON.parse(val.data).data.url |
||||
|
} |
||||
|
}, |
||||
|
fail: (res) => { |
||||
|
console.log('失败', res); |
||||
|
} |
||||
|
}) |
||||
|
} |
||||
|
const submit = async () => { |
||||
|
let data = [] |
||||
|
inputGroups.value.forEach((obj) => { |
||||
|
if(obj.type == ''||obj.title == ''||obj.license == '') { |
||||
|
|
||||
|
}else { |
||||
|
data.push(obj) |
||||
|
} |
||||
|
}) |
||||
|
await modifyField('enterprise',data.toString()).then((res) => { |
||||
|
if (res.code === 1) { |
||||
|
setTimeout(() => { |
||||
|
|
||||
|
uni.showToast({ |
||||
|
title: '提交成功!', |
||||
|
icon: 'success' |
||||
|
}) |
||||
|
}, 500) |
||||
|
} else { |
||||
|
uni.showToast({ |
||||
|
title: '提交失败!', |
||||
|
icon: 'fail' |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
}) |
||||
|
} |
||||
|
</script> |
||||
|
|
||||
|
<style scoped lang="scss"> |
||||
|
.container { |
||||
|
height: calc(100vh - 168rpx); |
||||
|
width: 100%; |
||||
|
background: #F1F3F9; |
||||
|
overflow-y: auto; |
||||
|
|
||||
|
.cardbox { |
||||
|
box-sizing: border-box; |
||||
|
} |
||||
|
|
||||
|
.input-group { |
||||
|
padding: 40rpx; |
||||
|
margin-top: 20rpx; |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
justify-content: space-between; |
||||
|
margin-bottom: 20rpx; |
||||
|
background-color: #e2e2e2; |
||||
|
} |
||||
|
|
||||
|
.inputs { |
||||
|
flex: 9; |
||||
|
} |
||||
|
|
||||
|
input { |
||||
|
flex: 1; |
||||
|
height: 80rpx; |
||||
|
border: 2rpx solid #ddd; |
||||
|
padding: 0 20rpx; |
||||
|
margin-right: 10rpx; |
||||
|
} |
||||
|
|
||||
|
.remove-btn, |
||||
|
.add-btn { |
||||
|
width: 80rpx; |
||||
|
height: 80rpx; |
||||
|
display: flex; |
||||
|
justify-content: center; |
||||
|
align-items: center; |
||||
|
background: #f0f0f0; |
||||
|
border-radius: 8rpx; |
||||
|
} |
||||
|
|
||||
|
.remove-btn { |
||||
|
margin-left: 20rpx; |
||||
|
border-radius: 50%; |
||||
|
width: 40rpx; |
||||
|
height: 40rpx; |
||||
|
color: #ff0000; |
||||
|
border: 2rpx solid #ff0000; |
||||
|
display: flex; |
||||
|
align-items: flex-end; |
||||
|
justify-content: center; |
||||
|
} |
||||
|
|
||||
|
.add-btn { |
||||
|
width: auto; |
||||
|
padding: 0 30rpx; |
||||
|
background: #4CAF50; |
||||
|
color: white; |
||||
|
margin-bottom: 60rpx; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.buts { |
||||
|
height: 168rpx; |
||||
|
position: fixed; |
||||
|
bottom: 0; |
||||
|
width: 100%; |
||||
|
background: #FFFFFF; |
||||
|
/* 标签栏投影 */ |
||||
|
box-shadow: 0rpx 0rpx 20rpx 0rpx rgba(0, 0, 0, 0.3); |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
justify-content: center; |
||||
|
|
||||
|
.but { |
||||
|
width: 574rpx; |
||||
|
height: 96rpx; |
||||
|
border-radius: 248rpx; |
||||
|
background: linear-gradient(90deg, #007FFF 0%, #99CCFF 100%); |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
justify-content: center; |
||||
|
font-family: Source Han Sans; |
||||
|
font-size: 36rpx; |
||||
|
font-weight: 350; |
||||
|
line-height: 32rpx; |
||||
|
text-align: justify; |
||||
|
/* 浏览器可能不支持 */ |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
letter-spacing: normal; |
||||
|
color: #FFFFFF; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.inputclass { |
||||
|
margin-top: 12rpx; |
||||
|
margin-bottom: 36rpx; |
||||
|
margin-right: 0 !important; |
||||
|
height: 100rpx !important; |
||||
|
border-radius: 10rpx; |
||||
|
background: #FFFFFF; |
||||
|
} |
||||
|
|
||||
|
:deep(.inputplacla) { |
||||
|
font-family: Source Han Sans; |
||||
|
font-size: 24rpx; |
||||
|
font-weight: 350; |
||||
|
line-height: 32.76rpx; |
||||
|
letter-spacing: normal; |
||||
|
color: #D3D3D3; |
||||
|
} |
||||
|
|
||||
|
.yyzz { |
||||
|
margin-top: 12rpx; |
||||
|
width: 100%; |
||||
|
height: 288rpx; |
||||
|
border-radius: 16rpx; |
||||
|
background: #FFFFFF; |
||||
|
display: grid; |
||||
|
align-content: center; |
||||
|
justify-items: center; |
||||
|
font-family: Source Han Sans; |
||||
|
font-size: 30rpx; |
||||
|
font-weight: 350; |
||||
|
line-height: 70rpx; |
||||
|
letter-spacing: normal; |
||||
|
color: #CCCCCC; |
||||
|
} |
||||
|
|
||||
|
:deep(.u-upload) { |
||||
|
.u-upload__wrap { |
||||
|
view { |
||||
|
width: 100%; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
</style> |
||||
@ -0,0 +1,187 @@ |
|||||
|
<template> |
||||
|
<view class="classbox"> |
||||
|
|
||||
|
<view class="pass"> |
||||
|
<view class="head"> |
||||
|
申请通过 |
||||
|
</view> |
||||
|
<view class="main"> |
||||
|
<view class="classone" v-for="(item,index) in passList" :key="index"> |
||||
|
<text class="title">{{item.title}}</text> |
||||
|
<view class="jindu"> |
||||
|
<image style="width: 32rpx;height: 32rpx;" src="@/static/img/timeicon.png" mode=""></image> |
||||
|
<text class="time">{{item.time}}</text> |
||||
|
</view> |
||||
|
</view> |
||||
|
</view> |
||||
|
</view> |
||||
|
<view class="reject"> |
||||
|
<view class="head"> |
||||
|
申请驳回 |
||||
|
</view> |
||||
|
<view class="main"> |
||||
|
<view class="classone" v-for="(item,index) in rejectList" :key="index"> |
||||
|
<text class="title">{{item.title}}</text> |
||||
|
<view class="jindu"> |
||||
|
<image style="width: 32rpx;height: 32rpx;" src="@/static/img/timeicon.png" mode=""></image> |
||||
|
<text class="time">{{item.time}}</text> |
||||
|
</view> |
||||
|
<text class="result">{{item.result}}</text> |
||||
|
</view> |
||||
|
</view> |
||||
|
</view> |
||||
|
</view> |
||||
|
</template> |
||||
|
|
||||
|
<script setup> |
||||
|
import { |
||||
|
ref |
||||
|
} from 'vue'; |
||||
|
|
||||
|
|
||||
|
const passList = ref([{ |
||||
|
id: 1, |
||||
|
title: '金融帮信息发布', |
||||
|
time: '07/04/2025 12:45' |
||||
|
}, |
||||
|
{ |
||||
|
id: 2, |
||||
|
title: '金融帮信息发布', |
||||
|
time: '07/04/2025 12:45' |
||||
|
}, |
||||
|
]) |
||||
|
|
||||
|
const rejectList = ref([ |
||||
|
{ |
||||
|
id: 1, |
||||
|
title: '金融帮信息发布', |
||||
|
time: '07/04/2025 12:45', |
||||
|
result: '企业信息查询有误' |
||||
|
}, |
||||
|
{ |
||||
|
id: 2, |
||||
|
title: '金融帮信息发布', |
||||
|
time: '07/04/2025 12:45', |
||||
|
result: '企业信息查询有误' |
||||
|
}, |
||||
|
]) |
||||
|
</script> |
||||
|
|
||||
|
<style scoped lang="scss"> |
||||
|
.classbox { |
||||
|
height: 100vh; |
||||
|
background: #FFFFFF; |
||||
|
padding: 40rpx 34rpx; |
||||
|
box-sizing: border-box; |
||||
|
overflow-y: auto; |
||||
|
|
||||
|
.pass { |
||||
|
width: 100%; |
||||
|
|
||||
|
.head { |
||||
|
width: 100%; |
||||
|
height: 72rpx; |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
background: #007FFF; |
||||
|
font-family: Lato; |
||||
|
font-size: 32rpx; |
||||
|
font-weight: normal; |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
letter-spacing: 0.76rpx; |
||||
|
/* System Background Primary Light */ |
||||
|
color: #FFFFFF; |
||||
|
padding-left: 32rpx; |
||||
|
box-sizing: border-box; |
||||
|
} |
||||
|
|
||||
|
.main { |
||||
|
background: #F1F3F9; |
||||
|
padding: 5rpx 16rpx 24rpx 16rpx; |
||||
|
box-sizing: border-box; |
||||
|
border-radius: 0rpx 0rpx 24rpx 24rpx; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.reject { |
||||
|
margin-top: 40rpx; |
||||
|
width: 100%; |
||||
|
|
||||
|
.head { |
||||
|
width: 100%; |
||||
|
height: 72rpx; |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
background: #FFC36F; |
||||
|
font-family: Lato; |
||||
|
font-size: 32rpx; |
||||
|
font-weight: normal; |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
letter-spacing: 0.76rpx; |
||||
|
/* System Background Primary Light */ |
||||
|
color: #FFFFFF; |
||||
|
padding-left: 32rpx; |
||||
|
box-sizing: border-box; |
||||
|
} |
||||
|
|
||||
|
.main { |
||||
|
background: #F1F3F9; |
||||
|
padding: 5rpx 16rpx 24rpx 16rpx; |
||||
|
box-sizing: border-box; |
||||
|
border-radius: 0rpx 0rpx 24rpx 24rpx; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
.classone { |
||||
|
width: 100%; |
||||
|
border-radius: 16rpx; |
||||
|
background: #FFFFFF; |
||||
|
display: grid; |
||||
|
align-items: center; |
||||
|
padding: 16rpx 32rpx; |
||||
|
margin-top: 20rpx; |
||||
|
box-sizing: border-box; |
||||
|
|
||||
|
.title { |
||||
|
font-family: Source Han Sans; |
||||
|
font-size: 28rpx; |
||||
|
font-weight: 300; |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
letter-spacing: 0.76rpx; |
||||
|
color: #0C092A; |
||||
|
} |
||||
|
|
||||
|
.jindu { |
||||
|
margin-top: 16rpx; |
||||
|
width: 100%; |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
|
||||
|
.time { |
||||
|
font-family: Lato; |
||||
|
font-size: 20rpx; |
||||
|
font-weight: normal; |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
letter-spacing: normal; |
||||
|
color: #858494; |
||||
|
margin-left: 16rpx; |
||||
|
} |
||||
|
} |
||||
|
.result { |
||||
|
margin-top: 12rpx; |
||||
|
font-family: Source Han Sans; |
||||
|
font-size: 28rpx; |
||||
|
font-weight: 300; |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
letter-spacing: 0.76rpx; |
||||
|
color: #FE0000; |
||||
|
} |
||||
|
} |
||||
|
</style> |
||||
@ -0,0 +1,103 @@ |
|||||
|
<template> |
||||
|
<view class="classbox"> |
||||
|
<view class="classone" v-for="(item,index) in classList" :key="index"> |
||||
|
<text class="title">{{item.title}}</text> |
||||
|
<text class="text">{{item.text}}</text> |
||||
|
<view class="jindu"> |
||||
|
<text class="learn">已学{{item.learn}}%</text> |
||||
|
<text class="time">{{item.time}}</text> |
||||
|
</view> |
||||
|
</view> |
||||
|
</view> |
||||
|
</template> |
||||
|
|
||||
|
<script setup> |
||||
|
import { ref } from 'vue'; |
||||
|
|
||||
|
|
||||
|
const classList = ref([ |
||||
|
{ |
||||
|
id: 1, |
||||
|
title: '内蒙古数心科技有限公司', |
||||
|
text: '小白必看!新手如何炒股票不被割韭菜?/书单推荐/股票基金避坑理财课靠谱吗?', |
||||
|
learn: 70, |
||||
|
time: '2025-04-17' |
||||
|
}, |
||||
|
{ |
||||
|
id: 2, |
||||
|
title: '内蒙古数心科技有限公司', |
||||
|
text: '小白必看!新手如何炒股票不被割韭菜?/书单推荐/股票基金避坑理财课靠谱吗?', |
||||
|
learn: 70, |
||||
|
time: '2025-04-17' |
||||
|
}, |
||||
|
]) |
||||
|
</script> |
||||
|
|
||||
|
<style scoped lang="scss"> |
||||
|
.classbox { |
||||
|
height: 100vh; |
||||
|
background: linear-gradient(0deg, #F1F3F9 72%, rgb(202 202 204 / 20%) 88%); |
||||
|
padding: 6rpx 24rpx 40rpx 24rpx; |
||||
|
box-sizing: border-box; |
||||
|
overflow-y: auto; |
||||
|
|
||||
|
.classone { |
||||
|
width: 100%; |
||||
|
border-radius: 20rpx; |
||||
|
background: #FFFFFF; |
||||
|
display: grid; |
||||
|
align-items: center; |
||||
|
padding: 30rpx 28rpx; |
||||
|
margin-top: 30rpx; |
||||
|
.title { |
||||
|
font-family: Source Han Sans; |
||||
|
font-size: 28rpx; |
||||
|
font-weight: 350; |
||||
|
text-align: justify; /* 浏览器可能不支持 */ |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
letter-spacing: normal; |
||||
|
color: #0C092A; |
||||
|
} |
||||
|
.text { |
||||
|
margin-top: 16rpx; |
||||
|
font-family: Source Han Sans; |
||||
|
font-size: 20rpx; |
||||
|
font-weight: 350; |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
letter-spacing: normal; |
||||
|
color: #858494; |
||||
|
} |
||||
|
.jindu { |
||||
|
margin-top: 32rpx; |
||||
|
width: 100%; |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
justify-content: space-between; |
||||
|
.learn { |
||||
|
font-family: Source Han Sans; |
||||
|
font-size: 20rpx; |
||||
|
font-weight: 500; |
||||
|
text-align: justify; /* 浏览器可能不支持 */ |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
letter-spacing: normal; |
||||
|
color: #007FFF; |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
} |
||||
|
.time { |
||||
|
font-family: Source Han Sans; |
||||
|
font-size: 20rpx; |
||||
|
font-weight: 350; |
||||
|
text-align: right; |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
letter-spacing: normal; |
||||
|
color: #858494; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
</style> |
||||
|
After Width: | Height: | Size: 91 KiB |
|
After Width: | Height: | Size: 505 B |
|
After Width: | Height: | Size: 732 B |
|
After Width: | Height: | Size: 473 B |
Loading…
Reference in new issue