flat: 暂存

This commit is contained in:
史典卓
2025-04-10 10:59:25 +08:00
parent b98e1d5405
commit 0d2b8ae65f
103 changed files with 461 additions and 189 deletions

BIN
.DS_Store vendored

Binary file not shown.

View File

@@ -57,7 +57,8 @@ onHide(() => {
margin-top: -1rpx;
}
.uni-tabbar-border {
background-color: transparent !important;
/* background-color: transparent !important; */
background-color: #e4e4e4 !important;
}
/* 提升toast层级 */
uni-toast,
@@ -66,4 +67,4 @@ uni-modal,
.uni-mask {
z-index: 999;
}
</style>
</style>

View File

@@ -5,41 +5,60 @@
</template>
<script setup>
import { computed } from 'vue';
import { computed, onMounted, inject } from 'vue';
import { parseMarkdown, codeDataList } from '@/utils/markdownParser';
const { navTo } = inject('globalFunction');
const props = defineProps({
content: {
type: String,
default: '',
},
typing: {
type: Boolean,
default: false,
},
});
const renderedHtml = computed(() => parseMarkdown(props.content));
const handleItemClick = (e) => {
let { attrs } = e.detail.node;
let { 'data-copy-index': codeDataIndex, class: className, href } = attrs;
if (href) {
window.open(href);
return;
}
if (className == 'copy-btn') {
uni.setClipboardData({
data: codeDataList[codeDataIndex],
showToast: false,
success() {
uni.showToast({
title: '复制成功',
icon: 'none',
});
},
});
let { 'data-copy-index': codeDataIndex, 'data-job-id': jobId, class: className } = attrs;
switch (className) {
case 'custom-card':
navTo('/packageA/pages/post/post?jobId=' + jobId);
return;
case 'copy-btn':
uni.setClipboardData({
data: codeDataList[codeDataIndex],
showToast: false,
success() {
uni.showToast({
title: '复制成功',
icon: 'none',
});
},
});
}
};
</script>
<style lang="scss">
.cursor-blink {
display: inline-block;
width: 8px;
height: 1.2em;
background-color: black;
animation: blink 1s step-start infinite;
margin-left: 2px;
vertical-align: bottom;
}
@keyframes blink {
50% {
opacity: 0;
}
}
.markdown-body {
h2,
h3,
@@ -107,18 +126,32 @@ tr:hover {
pre,
code {
user-select: text;
display: flex;
flex-direction: column;
margin-top: 0;
margin-bottom: 0;
}
pre code {
padding: 0;
margin: 0;
min-height: 0;
line-height: 1;
}
pre code {
white-space: pre-wrap; /* 保证换行处理 */
}
pre code:empty,
pre code:not(:has(*)):not(:has(text)) {
display: none;
}
.code-container {
position: relative;
border-radius: 10rpx;
overflow: hidden;
// background: #0d1117;
padding: 8rpx;
color: #c9d1d9;
font-size: 28rpx;
height: fit-content;
margin-top: -140rpx;
margin-bottom: -140rpx;
}
.code-header {
@@ -151,7 +184,7 @@ pre.hljs {
padding: 0 24rpx;
margin: 0;
border-radius: 0 0 16rpx 16rpx;
background-color: #f8f8f8;
background-color: #ffffff;
padding: 20rpx;
overflow-x: auto;
font-size: 24rpx;
@@ -179,4 +212,81 @@ ol {
display: inline-block;
text-align: right;
}
#markdown-content ::v-deep div > pre:first-of-type {
margin-top: 20rpx;
}
#markdown-content ::v-deep > div {
display: flex;
flex-direction: column;
}
.markdownRich > div {
display: flex;
flex-direction: column;
}
</style>
<style lang="stylus">
.custom-card
background: #FFFFFF;
box-shadow: 0rpx 0rpx 8rpx 0rpx rgba(0,0,0,0.04);
border-radius: 20rpx 20rpx 20rpx 20rpx;
padding: 28rpx 24rpx;
font-weight: 500;
font-size: 28rpx;
color: #333333;
margin-bottom: 20rpx;
position: relative;
display: flex;
flex-direction: column
.card-title
font-weight: 600;
display: flex;
align-items: center;
.title-text
max-width: calc(100% - 160rpx);
overflow: hidden
text-overflow: ellipsis
.card-tag
font-weight: 500;
font-size: 24rpx;
color: #333333;
width: fit-content;
background: #F4F4F4;
border-radius: 4rpx 4rpx 4rpx 4rpx;
padding: 0rpx 20rpx;
margin-left: 16rpx;
.card-company
margin-top: 12rpx;
.card-info
margin-top: 12rpx;
display: flex;
align-items: center;
justify-content: space-between;
padding-right: 40rpx;
.position-nav
position: absolute;
right: 34rpx;
top: 50%;
.position-nav::before
position: absolute;
left: 0;
top: 0;
content: '';
width: 4rpx;
height: 16rpx;
border-radius: 2rpx
background: #8A8A8A;
transform: translate(0, -50%) rotate(-45deg) ;
.position-nav::after
position: absolute;
left: 0;
top: 0;
content: '';
width: 4rpx;
height: 16rpx;
border-radius: 2rpx
background: #8A8A8A;
transform: rotate(45deg)
</style>

View File

@@ -0,0 +1,133 @@
<template>
<view class="tabbar_container">
<view class="tabbar_item" v-for="(item, index) in tabbarList" :key="index" @click="changeItem(item)">
<view class="item-top" :class="[item.centerItem ? 'center-item-img' : '']">
<image :src="currentItem == item.id ? item.selectedIconPath : item.iconPath"></image>
</view>
<view class="item-bottom" :class="[currentItem == item.id ? 'item-active' : '']">
<text>{{ item.text }}</text>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
currentItem: 0,
tabbarList: [
{
id: 0,
text: '首页',
path: '/pages/index/index',
iconPath: '../../static/tabbar/calendar.png',
selectedIconPath: '../../static/tabbar/calendared.png',
centerItem: false,
},
{
id: 1,
text: '招聘会',
path: '/pages/careerfair/careerfair',
iconPath: '../../static/tabbar/post.png',
selectedIconPath: '../../static/tabbar/posted.png',
centerItem: false,
},
{
id: 2,
text: '',
path: '/pages/chat/chat',
iconPath: '../../static/tabbar/logo2copy.png',
selectedIconPath: '../../static/tabbar/logo2copy.png',
centerItem: true,
},
{
id: 3,
text: '消息',
path: '/pages/msglog/msglog',
iconPath: '../../static/tabbar/chat4.png',
selectedIconPath: '../../static/tabbar/chat4ed.png',
centerItem: false,
},
{
id: 4,
text: '我的',
path: '/pages/mine/mine',
iconPath: '../../static/tabbar/mine.png',
selectedIconPath: '../../static/tabbar/mined.png',
centerItem: false,
},
],
};
},
props: {
currentpage: {
type: Number,
required: true,
default: 0,
},
},
mounted() {
this.currentItem = this.currentpage;
uni.hideTabBar();
},
methods: {
changeItem(item) {
uni.switchTab({
url: item.path,
});
},
},
};
</script>
<style lang="scss" scoped>
.tabbar_container {
background-color: #ffffff;
position: fixed;
bottom: 0rpx;
left: 0rpx;
width: 100%;
height: 126rpx;
// box-shadow: 0 0 5px #999;
display: flex;
align-items: center;
padding: 5rpx 0;
padding-bottom: env(safe-area-inset-bottom);
z-index: 998;
.tabbar_item {
width: 33.33%;
height: 100rpx;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
text-align: center;
position: relative;
color: #5e5f60;
.item-top {
width: 44.44rpx;
height: 44.44rpx;
image {
width: 100%;
height: 100%;
}
}
.item-bottom {
font-weight: 500;
font-size: 22rpx;
}
}
}
.center-item-img {
position: absolute;
top: 0rpx;
left: 50%;
transform: translate(-50%, 0);
width: 96rpx !important;
height: 96rpx !important;
}
.item-active {
color: #256bfa;
}
</style>

View File

@@ -4,9 +4,11 @@ export default {
// sseAI+
// StreamBaseURl: 'http://39.98.44.136:8000',
StreamBaseURl: 'https://qd.zhaopinzao8dian.com/ai',
// StreamBaseURl: 'https://qd.zhaopinzao8dian.com/ai/test',
// 语音转文字
// vioceBaseURl: 'ws://39.98.44.136:8080/speech-recognition',
vioceBaseURl: 'wss://qd.zhaopinzao8dian.com/api/speech-recognition',
// indexedDB
DBversion: 2,
// 应用信息
appInfo: {

View File

@@ -8,24 +8,7 @@ import {
onUnload
} from '@dcloudio/uni-app'
function formatTextForSpeech(rawText) {
return rawText
// 去除链接 markdown 格式 [xxx](url)
.replace(/\[([^\]]+)\]\([^)]+\)/g, '$1')
// 去除 Markdown 语法符号
.replace(/[*_`>#\-]/g, '')
// 将换行转换为句号
.replace(/\n+/g, '。')
// 多个标点统一转为句号(表示停顿)
.replace(/[。,,.、!?;:~~…··\-\/\\]{1,}/g, '。')
// 合并多个句号
.replace(/([。]{2,})/g, '。')
// 去除多余空格
.replace(/\s+/g, ' ')
// 去除开头结尾的句号
.replace(/^[。]+|[。]+$/g, '')
.trim()
}
export function useSpeechReader() {
const isSpeaking = ref(false)
@@ -41,14 +24,12 @@ export function useSpeechReader() {
rate: 0.9,
pitch: 1.2
}) => {
cancel() // 重置之前的
const voices = speechSynthesis.getVoices()
const chineseVoices = voices.filter(v => v.lang.includes('zh'))
// console.log(chineseVoices.map((item) => item.name))
const cleanText = cleanMarkdown(text)
utterance = new SpeechSynthesisUtterance(cleanText)
// utterance.voice = chineseVoices.find(v => v.name === 'Shelley')
utterance.lang = options.lang || 'zh-CN'
cancelAudio() // 重置之前的
// const voices = speechSynthesis.getVoices()
// const chineseVoices = voices.filter(v => v.lang.includes('zh'))
const speechText = extractSpeechText(text);
utterance = new SpeechSynthesisUtterance(speechText)
// utterance.lang = options.lang || 'zh'
utterance.rate = options.rate || 1
utterance.pitch = options.pitch || 1.1 // 音调0 - 2偏高比较柔和
@@ -76,7 +57,7 @@ export function useSpeechReader() {
}
}
const cancel = () => {
const cancelAudio = () => {
speechSynthesis.cancel()
isSpeaking.value = false
isPaused.value = false
@@ -84,26 +65,72 @@ export function useSpeechReader() {
// 页面刷新/关闭时
onMounted(() => {
if (typeof window !== 'undefined') {
window.addEventListener('beforeunload', cancel)
window.addEventListener('beforeunload', cancelAudio)
}
})
onBeforeUnmount(() => {
cancel()
cancelAudio()
if (typeof window !== 'undefined') {
window.removeEventListener('beforeunload', cancel)
window.removeEventListener('beforeunload', cancelAudio)
}
})
onHide(cancel)
onUnload(cancel)
onHide(cancelAudio)
onUnload(cancelAudio)
return {
speak,
pause,
resume,
cancel,
cancelAudio,
isSpeaking,
isPaused,
}
}
function extractSpeechText(markdown) {
const jobRegex = /``` job-json\s*({[\s\S]*?})\s*```/g;
const jobs = [];
let match;
let lastJobEndIndex = 0;
let firstJobStartIndex = -1;
// 提取岗位 json 数据及前后位置
while ((match = jobRegex.exec(markdown)) !== null) {
const jobStr = match[1];
try {
const job = JSON.parse(jobStr);
jobs.push(job);
if (firstJobStartIndex === -1) {
firstJobStartIndex = match.index;
}
lastJobEndIndex = jobRegex.lastIndex;
} catch (e) {
console.warn('JSON 解析失败', e);
}
}
// 提取引导语(第一个 job-json 之前的文字)
const guideText = firstJobStartIndex > 0 ?
markdown.slice(0, firstJobStartIndex).trim() :
'';
// 提取结束语(最后一个 job-json 之后的文字)
const endingText = lastJobEndIndex < markdown.length ?
markdown.slice(lastJobEndIndex).trim() :
'';
// 岗位信息格式化为语音文本
const jobTexts = jobs.map((job, index) => {
return `${index + 1} 个岗位,岗位名称是:${job.jobTitle},公司是:${job.companyName},薪资:${job.salary},地点:${job.location},学历要求:${job.education},经验要求:${job.experience}`;
});
// 拼接总语音内容
const finalTextParts = [];
if (guideText) finalTextParts.push(guideText);
finalTextParts.push(...jobTexts);
if (endingText) finalTextParts.push(endingText);
return finalTextParts.join('\n');
}

View File

@@ -18,12 +18,11 @@
</script>
<title></title>
<!-- vconsole -->
<script src="https://unpkg.com/vconsole@latest/dist/vconsole.min.js"></script>
<!-- <script>
<!-- <script src="https://unpkg.com/vconsole@latest/dist/vconsole.min.js"></script>
<script>
var vConsole = new window.VConsole();
vConsole.destroy();
</script>
<script type="text/javascript" src="./static/js/jweixin-1.4.0.js"></script> -->
</script> -->
</head>
<body>
<div id="app"><!--app-html--></div>

View File

@@ -4,6 +4,7 @@ import globalFunction from '@/common/globalFunction'
import '@/lib/string-similarity.min.js'
import similarityJobs from '@/utils/similarity_Job.js';
import NoBouncePage from '@/components/NoBouncePage/NoBouncePage.vue'
// import Tabbar from '@/components/tabbar/midell-box.vue'
import {
createSSRApp,
@@ -14,6 +15,7 @@ export function createApp() {
const app = createSSRApp(App)
app.component('NoBouncePage', NoBouncePage)
// app.component('tabbar-custom', Tabbar)
app.provide('globalFunction', {
...globalFunction,

View File

@@ -34,6 +34,8 @@
</view>
</view>
</scroll-view>
<!-- 自定义tabbar -->
<!-- <tabbar-custom :currentpage="1"></tabbar-custom> -->
</view>
</template>

View File

@@ -63,6 +63,8 @@
<ai-paging ref="paging"></ai-paging>
</view>
</view>
<!-- 自定义tabbar -->
<!-- <tabbar-custom :currentpage="2"></tabbar-custom> -->
</view>
</template>
@@ -103,10 +105,19 @@ onShow(() => {
onHide(() => {
paging.value?.handleTouchCancel();
if (isDrawerOpen.value) {
isDrawerOpen.value = false;
uni.showTabBar();
}
});
const toggleDrawer = () => {
isDrawerOpen.value = !isDrawerOpen.value;
if (isDrawerOpen.value) {
uni.hideTabBar();
} else {
uni.showTabBar();
}
};
const addNewDialogue = () => {
@@ -131,13 +142,13 @@ function updateSetting() {
</script>
<style lang="stylus" scoped>
header-height = 88rpx
/* 页面容器 */
.container {
position: fixed;
z-index: 1000;
z-index: 100;
width: 100vw;
height: calc(100vh - var(--window-top) - var(--status-bar-height) - var(--window-bottom));
height: 100vh;
overflow: hidden;
}
@@ -203,8 +214,8 @@ function updateSetting() {
font-weight: 500;
align-items: center
position: relative
margin-bottom: constant(safe-area-inset-bottom); /*兼容 IOS<11.2*/
margin-bottom: env(safe-area-inset-bottom); /*兼容 IOS>11.2*/
margin-bottom: calc( 32rpx + var(--window-bottom)); /*兼容 IOS<11.2*/
margin-bottom: calc( 32rpx +var(--window-bottom)); /*兼容 IOS>11.2*/
color: #000000
.drawer-user-img
width: 57.2rpx;
@@ -218,8 +229,8 @@ function updateSetting() {
right: 28rpx
transform: translate(0,-50%)
.drawer-title
height: calc(88rpx + env(safe-area-inset-top));
line-height: calc(88rpx + env(safe-area-inset-top));
height: header-height;
line-height: header-height;
padding: 0 52rpx;
color: #333333;
font-size: 32rpx
@@ -260,22 +271,21 @@ function updateSetting() {
/* 主要内容区域 */
.main-content
width: 100%;
height: 100vh;
// background: #f8f8f8;
height: calc(100% - var(--window-bottom));
transition: margin-left 0.3s ease-in-out;
position: relative
background: #FFFFFF
.head
display: block;
box-sizing: border-box;
height: calc(88rpx + env(safe-area-inset-top));
height: header-height;
user-select: none;
.main-header
position: fixed;
left: var(--window-left);
right: var(--window-right);
height: calc(88rpx + env(safe-area-inset-top));
padding-top: calc(14rpx + env(safe-area-inset-top));
height:header-height;
padding-top: calc(14rpx);
border: 2rpx solid #F4F4F4;
background: #FFFFFF
z-index: 998;
@@ -293,7 +303,7 @@ function updateSetting() {
height: 37rpx;
.chatmain-warpper
height: calc(100% - 88rpx - env(safe-area-inset-top));
height: 'calc(100% - %s)' % header-height
position: relative;
display: block;
box-sizing: border-box;

View File

@@ -43,7 +43,10 @@
<view class="message" :class="{ messageNull: !msg.displayText }" v-else>
<!-- {{ msg.displayText }} -->
<view class="message-markdown">
<md-render :content="msg.displayText"></md-render>
<md-render
:content="msg.displayText"
:typing="isTyping && messages.length - 1 === index"
></md-render>
<view class="message-controll" v-show="showControll(index)">
<view class="controll-left">
<image
@@ -99,7 +102,7 @@
<view class="chat-item self" v-if="isRecording">
<view class="message">{{ recognizedText }} {{ lastFinalText }}</view>
</view>
<view v-if="isTyping" :class="{ self: true }">
<view v-if="isTyping" class="self">
<text class="message msg-loading">
<span class="ai-loading"></span>
</text>
@@ -107,7 +110,7 @@
</view>
</FadeView>
</scroll-view>
<view class="vio_container" :class="status" v-if="status !== 'idle'">
<view class="vio_container" @click="handleTouchEnd" :class="status" v-if="status !== 'idle'">
<view class="record-tip">{{ statusText }}</view>
<WaveDisplay
:background="audiowaveStyle"
@@ -134,6 +137,9 @@
@touchmove="handleTouchMove"
@touchend="handleTouchEnd"
@touchcancel="handleTouchCancel"
:catchtouchstart="true"
:catchtouchmove="true"
:catchtouchend="true"
v-show="isVoice"
type="default"
>
@@ -250,7 +256,7 @@ const {
lastFinalText,
} = useAudioRecorder(config.vioceBaseURl);
const { speak, pause, resume, isSpeaking, isPaused } = useSpeechReader();
const { speak, pause, resume, isSpeaking, isPaused, cancelAudio } = useSpeechReader();
// state
const queries = ref([]);
@@ -327,8 +333,6 @@ const sendMessage = (text) => {
const callback = () => {
const normalArr = toRaw(filesList.value); // 转换为普通数组
filesList.value = [];
const newMsg = { text: values, self: true, displayText: values, files: normalArr };
useChatGroupDBStore().addMessage(newMsg);
useChatGroupDBStore()
.getStearm(values, normalArr, scrollToBottom, {
onComplete: () => console.log('Display complete'),
@@ -505,6 +509,7 @@ const handleTouchStart = async (e) => {
if (!isAudioPermission.value) {
return tipsPermisson();
}
cancelAudio();
console.log('handleTouchStart');
startY.value = e.touches[0].clientY;
status.value = 'recording';
@@ -574,11 +579,8 @@ function copyMarkdown(value) {
function userGoodFeedback(msg) {
$api.msg('该功能正在开发中,敬请期待后续更新!');
// const params = {
// dataId: msg.dataId,
// sessionId: msg.parentGroupId,
// userGoodFeedback: 'no',
// };
console.log(msg.dataId);
// useChatGroupDBStore().badFeedback(msg.dataId, msg.parentGroupId);
}
function readMarkdown(value, index) {
@@ -638,7 +640,6 @@ defineExpose({ scrollToBottom, closeGuess, colseFile, changeQueries, handleTouch
</script>
<style lang="stylus" scoped>
/* 过渡样式 */
.collapse-enter-active,
.collapse-leave-active {
@@ -706,7 +707,7 @@ image-margin-top = 40rpx
.chat-container
display: flex;
flex-direction: column;
height: calc(100% - var(--window-top) - var(--status-bar-height) - var(--window-bottom));
height: 100%;
position: relative
z-index: 1
background: #FFFFFF
@@ -795,7 +796,7 @@ image-margin-top = 40rpx
align-items: center
border-top: 2rpx solid #EAEAEA
padding: 24rpx 0
margin-top: -10rpx
margin-top: 10rpx
.controll-left
.controll-right
.controll-icon
@@ -863,12 +864,12 @@ image-margin-top = 40rpx
text-align: center
font-size: 28rpx
font-weight: 500
user-select:none;
-webkit-touch-callout:none;
-webkit-user-select:none;
-khtml-user-select:none;
-moz-user-select:none;
-ms-user-select:none;
user-select:none;
.input_vio:active
background: #e8e8e8
.vio_container

View File

@@ -0,0 +1,8 @@
<template>
</template>
<script>
</script>
<style>
</style>

View File

@@ -121,6 +121,8 @@
></screeningJobRequirementsVue>
<!-- 岗位推荐组件 -->
<modify-expected-position-vue v-model:show="showModel" :jobList="jobList" />
<!-- 自定义tabbar -->
<!-- <tabbar-custom :currentpage="0"></tabbar-custom> -->
</view>
</template>

View File

@@ -51,6 +51,8 @@
@close="close"
></uni-popup-dialog>
</uni-popup>
<!-- 自定义tabbar -->
<!-- <tabbar-custom :currentpage="4"></tabbar-custom> -->
</view>
</template>

View File

@@ -33,6 +33,8 @@
</swiper-item>
</swiper>
</view>
<!-- 自定义tabbar -->
<!-- <tabbar-custom :currentpage="3"></tabbar-custom> -->
</view>
</template>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.6 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@@ -13,6 +13,7 @@ class BaseStore {
}
checkAndInitDB() {
// 获取本地数据库版本
// this.initDB()
const localVersion = uni.getStorageSync('indexedDBVersion') || 1
console.log('DBVersion: ', localVersion, config.DBversion)
if (localVersion === config.DBversion) {

View File

@@ -3,7 +3,8 @@ import {
} from 'pinia';
import {
reactive,
ref
ref,
toRaw
} from 'vue'
import IndexedDBHelper from '@/common/IndexedDBHelper.js'
import baseDB from './BaseDBStore';
@@ -31,13 +32,6 @@ const useChatGroupDBStore = defineStore("messageGroup", () => {
const chatSessionID = ref('')
const lastDateRef = ref('')
// const groupPages = reactive({
// page: 0,
// total: 0,
// maxPage: 2,
// pageSize: 50,
// })
async function init() {
// 获取所有数据
setTimeout(async () => {
@@ -54,7 +48,7 @@ const useChatGroupDBStore = defineStore("messageGroup", () => {
initMessage(tabelRow.sessionId)
} else {
console.warn('本地数据库存在数据')
// getHistory('refresh')
getHistory('refresh')
}
}, 1000)
}
@@ -106,28 +100,37 @@ const useChatGroupDBStore = defineStore("messageGroup", () => {
}
async function addMessageIndexdb(payload) {
console.log(payload)
return await baseDB.db.add(massageName.value, payload);
}
async function getStearm(text, fileUrls = [], progress) {
return new Promise((resolve, reject) => {
try {
toggleTyping(true);
const customDataID = 'message_' + UUID.generate()
const params = {
data: text,
sessionId: chatSessionID.value,
dataId: customDataID
};
if (fileUrls && fileUrls.length) {
params['fileUrl'] = fileUrls.map((item) => item.url);
}
// ------>
const MsgData = {
text: text,
self: true,
displayText: text,
files: fileUrls
};
addMessage(MsgData); // 添加message数据
// <------
const newMsg = {
text: [], // 存储原始结构化内容
text: '', // 存储原始结构化内容
self: false,
displayText: '' // 用于流式渲染展示
displayText: '', // 用于流式渲染展示
dataId: customDataID
};
const index = messages.value.length;
@@ -144,36 +147,10 @@ const useChatGroupDBStore = defineStore("messageGroup", () => {
}
window.addEventListener("unload", handleUnload);
function renderPart(part) {
if (typeof part === 'string') {
newMsg.displayText += part;
} else if (typeof part === 'object' && part.type === 'highlight') {
consol.log('自定义样式')
newMsg.displayText += `<span class="highlight">${part.content}</span>`;
} else {
newMsg.displayText += String(part); // 兜底
}
}
function onDataReceived(data) {
let parsed;
try {
parsed = JSON.parse(data);
} catch {
parsed = data;
}
// 支持追加多个部分
if (Array.isArray(parsed)) {
parsed.forEach((part) => {
newMsg.text.push(part); // 存结构
renderPart(part); // 渲染显示
});
} else {
newMsg.text.push(parsed);
renderPart(parsed);
}
newMsg.text += data;
newMsg.displayText += data;
messages.value[index] = {
...newMsg
};
@@ -214,6 +191,18 @@ const useChatGroupDBStore = defineStore("messageGroup", () => {
initMessage(item.sessionId)
}
// 云端数据
function badFeedback(dataId, sessionId = chatSessionID.value, content = '') {
let parmas = {
dataId: dataId,
sessionId: sessionId,
userBadFeedback: '这是反馈',
}
// $api.chatRequest('/stepped', parmas, 'POST').then((res) => {
// console.log('反馈成功')
// })
}
// 云端数据
function getHistory() {
$api.chatRequest('/getHistory').then((res) => {
@@ -282,6 +271,7 @@ const useChatGroupDBStore = defineStore("messageGroup", () => {
displayText: text,
self: self,
text: text,
userBadFeedback: element.userBadFeedback,
dataId: element.dataId,
files,
})
@@ -303,6 +293,7 @@ const useChatGroupDBStore = defineStore("messageGroup", () => {
changeDialogue,
getStearm,
getHistory,
badFeedback
};
});

BIN
unpackage/.DS_Store vendored

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1 +0,0 @@
.collection-content[data-v-6c0afbd6]{padding:.625rem 0}.one-cards[data-v-6c0afbd6]{display:flex;flex-direction:column;padding:0 .625rem}.one-cards .card-box[data-v-6c0afbd6]{width:calc(100% - 2.25rem);border-radius:0;background:#fff;border-radius:.53125rem;padding:.46875rem 1.125rem;margin-top:.75rem}.one-cards .card-box .box-row[data-v-6c0afbd6]{display:flex;justify-content:space-between;margin-top:.25rem;align-items:center}.one-cards .card-box .box-row .mineText[data-v-6c0afbd6]{font-weight:400;font-size:.65625rem;color:#606060}.one-cards .card-box .box-row .textblue[data-v-6c0afbd6]{color:#4778ec}.one-cards .card-box .box-row .row-left[data-v-6c0afbd6]{display:flex;justify-content:space-between}.one-cards .card-box .box-row .row-left .row-tag[data-v-6c0afbd6]{background:#13c57c;border-radius:.53125rem;font-size:.65625rem;color:#fff;line-height:.78125rem;text-align:center;padding:.125rem .25rem;margin-right:.71875rem}.one-cards .card-box[data-v-6c0afbd6]:first-child{margin-top:.1875rem}

View File

@@ -1 +0,0 @@
.container[data-v-1fe8fba7]{display:flex;flex-direction:column;background-color:#f8f8f8}.hr[data-v-1fe8fba7]{height:.3125rem}.company-header[data-v-1fe8fba7]{padding:.625rem 1.25rem;background-color:#fff}.company-header .company-name[data-v-1fe8fba7]{font-size:1.75rem;font-weight:700;color:#333;margin-bottom:.3125rem}.company-header .company-info[data-v-1fe8fba7]{font-size:.75rem;color:#666;display:flex;align-items:center;justify-content:space-between}.company-header .company-info .location[data-v-1fe8fba7]{display:flex;align-items:center}.company-description[data-v-1fe8fba7]{padding:.625rem 1.25rem;background-color:#fff;margin-bottom:.3125rem}.company-description .section-title[data-v-1fe8fba7]{font-size:1.3125rem;font-weight:700;margin-bottom:.3125rem}.company-description .description[data-v-1fe8fba7]{font-size:.75rem;color:#333;line-height:1.125rem}.job-list[data-v-1fe8fba7]{padding:.625rem 1.25rem;background-color:#fff}.job-list .section-title[data-v-1fe8fba7]{font-size:1.3125rem;font-weight:700;margin-bottom:.3125rem}.job-list .job-row[data-v-1fe8fba7]{display:flex;justify-content:space-between;align-items:flex-start;padding:.625rem;border:.0625rem solid #d9d9d9;margin-top:.625rem;border-radius:.53125rem}.job-list .job-row .left[data-v-1fe8fba7]{display:flex;flex-direction:column;flex-grow:1}.job-list .job-row .left .job-title[data-v-1fe8fba7]{font-size:.875rem;font-weight:700;color:#333;margin-bottom:.3125rem}.job-list .job-row .left .job-tags[data-v-1fe8fba7]{display:flex;gap:.3125rem;margin-bottom:.3125rem}.job-list .job-row .left .job-tags .tag[data-v-1fe8fba7]{background-color:#22c55e;color:#fff;padding:.15625rem .3125rem;border-radius:.375rem;font-size:.625rem}.job-list .job-row .left .location[data-v-1fe8fba7]{font-size:.75rem;color:#666}.job-list .job-row .right[data-v-1fe8fba7]{display:flex;flex-direction:column;align-items:flex-end}.job-list .job-row .right .salary[data-v-1fe8fba7]{font-size:.875rem;color:#3b82f6;font-weight:700}.job-list .job-row .right .hot[data-v-1fe8fba7]{color:#ff6b6b;font-size:.75rem;margin-top:.15625rem}

View File

@@ -1 +0,0 @@
.card-title[data-v-f2493dde]{color:#5d5d5d;font-weight:700;font-size:.75rem}.nothemonth[data-v-f2493dde]{color:#bfbfbf}.downDate[data-v-f2493dde]{display:flex;align-items:center;justify-content:center;width:100%;margin-top:.625rem}.downDate .downIcon[data-v-f2493dde]{background:#e8e8e8;border-radius:50%;width:1.25rem;height:1.25rem}.AllDay[data-v-f2493dde]{position:relative;padding-top:2.1875rem}.AllDay .monthSelect[data-v-f2493dde]{position:absolute;top:0;left:50%;transform:translate(-50%);text-align:center;line-height:1.5625rem;display:flex;align-items:center;justify-content:center;font-size:.875rem}.AllDay .monthSelect .monthIcon[data-v-f2493dde]{padding:0 .3125rem}.date-7days[data-v-f2493dde]{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;margin-top:.3125rem;font-size:.75rem;grid-gap:.8125rem}.date-7days .day[data-v-f2493dde]{position:relative;z-index:2}.date-7days .active[data-v-f2493dde]{color:#fff}.date-7days .active[data-v-f2493dde]:before{position:absolute;content:"";top:50%;left:50%;transform:translate(-50%,-50%);width:1.25rem;height:1.25rem;background:#4679ef;border-radius:.21875rem;z-index:-1}.date-7days .optional[data-v-f2493dde]:after{border:.0625rem solid #4679ef;position:absolute;content:"";top:50%;left:50%;border-radius:.3125rem;transform:translate(-50%,-50%);width:1.25rem;height:1.25rem;z-index:-1}.collection-content[data-v-f2493dde]{padding:0 0 .625rem}.collection-search[data-v-f2493dde]{padding:.3125rem .625rem}.collection-search .search-content[data-v-f2493dde]{position:relative}.collection-search .search-content .collInput[data-v-f2493dde]{padding:.1875rem .3125rem .1875rem 1.5625rem;background:#e8e8e8;border-radius:.3125rem}.collection-search .search-content .iconsearch[data-v-f2493dde]{position:absolute;left:.3125rem;top:50%;transform:translateY(-50%)}.one-cards[data-v-f2493dde]{display:flex;flex-direction:column;padding:0 .625rem}.one-cards .card-box[data-v-f2493dde]{width:calc(100% - 2.25rem);border-radius:0;background:#fff;border-radius:.53125rem;padding:.46875rem 1.125rem;margin-top:.75rem}.one-cards .card-box .box-row[data-v-f2493dde]{display:flex;justify-content:space-between;margin-top:.25rem;align-items:center}.one-cards .card-box .box-row .mineText[data-v-f2493dde]{font-weight:400;font-size:.65625rem;color:#606060}.one-cards .card-box .box-row .textblue[data-v-f2493dde]{color:#4778ec}.one-cards .card-box .box-row .row-left[data-v-f2493dde]{display:flex;justify-content:space-between}.one-cards .card-box .box-row .row-left .row-tag[data-v-f2493dde]{background:#13c57c;border-radius:.53125rem;font-size:.65625rem;color:#fff;line-height:.78125rem;text-align:center;padding:.125rem .25rem;margin-right:.71875rem}.one-cards .card-box[data-v-f2493dde]:first-child{margin-top:.1875rem}.card-transprent[data-v-f2493dde]{background:transparent!important}.card-transprent[data-v-f2493dde]:first-child{margin:0!important;padding:0!important}

View File

@@ -1 +0,0 @@
.container[data-v-21f6c3ed]{background-color:#edf4ff;height:100%;display:flex;flex-direction:column;padding:.625rem}.search-bar[data-v-21f6c3ed]{font-size:1rem;font-weight:700;color:#333;margin-bottom:.625rem}.grid-container[data-v-21f6c3ed]{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.625rem}.grid-item[data-v-21f6c3ed]{width:48%;height:6.25rem;border-radius:.625rem;display:flex;flex-direction:column;justify-content:center;align-items:center;color:#fff;font-size:.875rem;font-weight:700;position:relative}.grid-item .status[data-v-21f6c3ed]{position:absolute;bottom:.625rem;font-size:.75rem;background-color:rgba(255,255,255,.9);color:#333;padding:.15625rem .46875rem;border-radius:.46875rem}.blue[data-v-21f6c3ed]{background-color:#3b82f6}.green[data-v-21f6c3ed]{background-color:#22c55e}.orange[data-v-21f6c3ed]{background-color:#f59e0b}.red[data-v-21f6c3ed]{background-color:#ef4444}

View File

@@ -1 +0,0 @@
.collection-content[data-v-99c64065]{padding:.625rem 0}.one-cards[data-v-99c64065]{display:flex;flex-direction:column;padding:0 .625rem}.one-cards .card-box[data-v-99c64065]{width:calc(100% - 2.25rem);border-radius:0;background:#fff;border-radius:.53125rem;padding:.46875rem 1.125rem;margin-top:.75rem}.one-cards .card-box .box-row[data-v-99c64065]{display:flex;justify-content:space-between;margin-top:.25rem;align-items:center}.one-cards .card-box .box-row .mineText[data-v-99c64065]{font-weight:400;font-size:.65625rem;color:#606060}.one-cards .card-box .box-row .textblue[data-v-99c64065]{color:#4778ec}.one-cards .card-box .box-row .row-left[data-v-99c64065]{display:flex;justify-content:space-between}.one-cards .card-box .box-row .row-left .row-tag[data-v-99c64065]{background:#13c57c;border-radius:.53125rem;font-size:.65625rem;color:#fff;line-height:.78125rem;text-align:center;padding:.125rem .25rem;margin-right:.71875rem}.one-cards .card-box[data-v-99c64065]:first-child{margin-top:.1875rem}

View File

@@ -1 +0,0 @@
.tianditu-popop[data-v-ad9fd3a8]{position:fixed;left:0;z-index:999;background-color:rgba(0,0,0,.6);display:flex;flex-direction:column}.popup-header[data-v-ad9fd3a8]{flex:1}.popup-content[data-v-ad9fd3a8]{background-color:#fff;min-height:300px;width:100%}.animated[data-v-ad9fd3a8]{animation-duration:1s;animation-fill-mode:both}.animated.infinite[data-v-ad9fd3a8]{animation-iteration-count:infinite}.animated.hinge[data-v-ad9fd3a8]{animation-duration:2s}@keyframes fadeInUp-ad9fd3a8{0%{opacity:0;transform:translate3d(0,100%,0)}to{opacity:1;transform:none}}.fadeInUp[data-v-ad9fd3a8]{animation-name:fadeInUp-ad9fd3a8}

View File

@@ -1 +0,0 @@
.container[data-v-dc2d33aa]{display:flex;flex-direction:column;background-color:#f8f8f8}.header[data-v-dc2d33aa]{padding:.625rem 1.25rem;background-color:#fff}.header .header-title[data-v-dc2d33aa]{font-size:1.75rem;font-weight:700;color:#333;margin-bottom:.3125rem}.header .header-info[data-v-dc2d33aa]{margin-top:.625rem;font-size:.75rem;color:#666;display:flex;align-items:center;justify-content:space-between}.header .header-info .location[data-v-dc2d33aa]{display:flex;align-items:center}.header .header-info .date[data-v-dc2d33aa]{flex-shrink:0}.company-list[data-v-dc2d33aa]{padding:.625rem;background-color:#fff;margin-top:.3125rem}.company-list .section-title[data-v-dc2d33aa]{padding:.625rem;font-size:1.25rem;font-weight:700;margin-bottom:.3125rem}.company-row[data-v-dc2d33aa]{display:flex;justify-content:space-between;align-items:center;padding:.625rem;border:.0625rem solid #d9d9d9;margin-top:.625rem;border-radius:.53125rem}.company-row .left[data-v-dc2d33aa]{display:flex;align-items:center;width:100%;height:100%}.company-row .left .logo[data-v-dc2d33aa]{background-color:#22c55e;color:#fff;font-size:.75rem;font-weight:700;width:7.34375rem;height:5.125rem;display:flex;align-items:center;justify-content:center;border-radius:.375rem;margin-right:.625rem}.company-row .left .company-info[data-v-dc2d33aa]{min-height:5.125rem;flex:1;display:flex;flex-direction:column;justify-content:space-between}.company-row .left .company-info .company-name[data-v-dc2d33aa]{font-size:.875rem;color:#333;font-weight:700}.company-row .left .company-info .industry[data-v-dc2d33aa]{font-size:.75rem;color:#666}.company-row .left .company-info .details[data-v-dc2d33aa]{font-size:.75rem;color:#666;display:flex;align-items:center;justify-content:space-between}

View File

@@ -1 +0,0 @@
.secondary-title[data-v-efd19bad]{font-weight:700;padding:1.25rem 0 .3125rem .9375rem}.expected-station[data-v-efd19bad]{width:100%;overflow:hidden;display:flex;flex-direction:column}.sex-search[data-v-efd19bad]{width:calc(100% - 1.75rem);padding:.3125rem .875rem;display:grid;position:relative}.sex-search .iconsearch[data-v-efd19bad]{position:absolute;left:1.25rem;top:.625rem}.sex-search .searchinput[data-v-efd19bad]{border-radius:.3125rem;background:#fff;padding:.3125rem 0 .3125rem 1.8125rem}.sex-content[data-v-efd19bad]{background:#fff;border-radius:.625rem;width:100%;margin-top:.625rem;display:flex;border-bottom:2px solid #d9d9d9;overflow:hidden;height:100%}.sex-content .sex-content-left[data-v-efd19bad]{width:7.8125rem}.sex-content .sex-content-left .left-list-btn[data-v-efd19bad]{padding:0 1.25rem 0 .75rem;display:grid;place-items:center;height:3.125rem;text-align:center;color:#606060;font-size:.875rem;position:relative}.sex-content .sex-content-left .positionNum[data-v-efd19bad]{position:absolute;right:0;top:50%;transform:translateY(-50%);color:#fff;background:#4778ec;border-radius:50%;width:1.125rem;height:1.125rem}.sex-content .sex-content-left .left-list-btned[data-v-efd19bad]{color:#4778ec;position:relative}.sex-content .sex-content-left .left-list-btned[data-v-efd19bad]:after{position:absolute;left:.625rem;content:"";width:.21875rem;height:1.1875rem;background:#4778ec;border-radius:0}.sex-content .sex-content-right[data-v-efd19bad]{border-left:2px solid #d9d9d9;flex:1}.sex-content .sex-content-right .grid-sex[data-v-efd19bad]{display:grid;grid-template-columns:50% 50%;place-items:center;padding:0 0 1.25rem}.sex-content .sex-content-right .grid-sex .sex-right-btn[data-v-efd19bad]{width:6.59375rem;height:2.625rem;font-size:1rem;line-height:1.28125rem;text-align:center;display:grid;place-items:center;background:#d9d9d9;border-radius:.625rem;margin-top:.9375rem;color:#606060}.sex-content .sex-content-right .grid-sex .sex-right-btned[data-v-efd19bad]{color:#fff;background:#4778ec}

View File

@@ -1 +0,0 @@
.tab-container[data-v-b9170ed9]{width:100%;height:100%;display:flex;align-items:center;justify-content:center;flex-direction:row}.uni-margin-wrap[data-v-b9170ed9],.swiper[data-v-b9170ed9]{width:100%;height:100%}.swiper-item[data-v-b9170ed9]{display:block;width:100%;height:100%}.container[data-v-b6f000c9]{background:linear-gradient(#4778ec,#002979);width:100%;height:calc(100vh - var(--window-top) - var(--status-bar-height) - var(--window-bottom));position:fixed}.login-content[data-v-b6f000c9]{position:absolute;left:50%;top:40%;transform:translate(-50%,-50%);display:flex;align-items:flex-end;flex-wrap:nowrap}.login-content .logo[data-v-b6f000c9]{width:8.3125rem;height:5.6875rem}.login-content .logo-title[data-v-b6f000c9]{font-size:2.75rem;color:#fff;width:5.625rem}.btns[data-v-b6f000c9]{position:absolute;top:70%;left:50%;transform:translate(-50%)}.btns .wxlogin[data-v-b6f000c9]{width:17.5625rem;height:4.375rem;border-radius:2.1875rem;background-color:#13c57c;color:#fff;text-align:center;line-height:4.375rem;font-size:2.1875rem}.btns .wxaddress[data-v-b6f000c9]{color:#bbb;margin-top:2.1875rem;text-align:center}.tabtwo[data-v-b6f000c9]{padding:1.25rem;display:flex;flex-direction:column;align-items:center;justify-content:space-between;height:calc(100% - 1.25rem)}.tabtwo-top[data-v-b6f000c9]{margin:6.9375rem 0 0;width:100%}.tabtwo-sex[data-v-b6f000c9]{display:flex;flex-direction:column;justify-content:center;align-items:center;color:#fff;font-size:1.25rem;margin:6.25rem 1.875rem 0}.tabtwo-sex .sex-img[data-v-b6f000c9]{width:5.75rem;height:5.75rem}.dot[data-v-b6f000c9]{width:2.125rem;height:2.125rem;border-radius:50%;background:#d1d1d6;position:relative}.dot[data-v-b6f000c9]:before{content:"";width:1.375rem;height:1.375rem;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:50%;background:#1e4baa}.doted[data-v-b6f000c9]{background:#13c57c}.doted[data-v-b6f000c9]:after{content:"";width:1.0625rem;height:1.0625rem;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:50%;background:#13c57c}.agebtn[data-v-b6f000c9]{width:19.6875rem;height:3.375rem;border-radius:.625rem;background:#d9d9d9;text-align:center;line-height:3.375rem;font-size:1.25rem;margin-top:1.5625rem;color:#606060}.agebtned[data-v-b6f000c9]{background:#13c57c;color:#fff}.nextstep[data-v-b6f000c9]{width:19.6875rem;height:3.0625rem;border-radius:.625rem;background:#13c57c;text-align:center;line-height:3.0625rem;font-size:1.125rem;color:#fff;margin-bottom:4.6875rem}.confirmStep[data-v-b6f000c9]{margin-bottom:1.5625rem}.eduction-content[data-v-b6f000c9]{width:-webkit-fit-content;width:fit-content;display:grid;grid-template-columns:9.375rem 9.375rem;grid-gap:.625rem;margin-top:1.5625rem}.eduction-content .eductionbtn[data-v-b6f000c9]{width:9.375rem;height:3.375rem;border-radius:.625rem;background:#d9d9d9;text-align:center;line-height:3.375rem;font-size:1.125rem;color:#606060}.eduction-content .eductionbtned[data-v-b6f000c9]{background:#13c57c;color:#fff}.salary[data-v-b6f000c9]{width:-webkit-fit-content;width:fit-content;display:grid;grid-template-columns:20rem;grid-gap:.625rem;margin-top:1.5625rem}.salary .picker-view[data-v-b6f000c9]{width:100%;height:18.75rem;margin-top:.625rem}.salary .picker-view .uni-picker-view-mask[data-v-b6f000c9]{background:rgba(0,0,0,0)}.salary .item .item-child[data-v-b6f000c9]{line-height:2.8125rem;font-size:1.1875rem;color:#606060;text-align:center;background:#d9d9d9;border-radius:.625rem;margin:.625rem .3125rem}.salary .item .item-childed[data-v-b6f000c9]{line-height:3.28125rem;margin:.3125rem .15625rem;background:#13c57c;color:#fff}.salary .item-center[data-v-b6f000c9]{width:1.25rem;line-height:18.75rem;width:1.59375rem;height:1.46875rem;font-family:Inter,Inter;font-weight:400;font-size:.875rem;color:#fff;text-align:center;font-style:normal;text-transform:none}.salary .uni-picker-view-indicator[data-v-b6f000c9]:after{border:0}.salary .uni-picker-view-indicator[data-v-b6f000c9]:before{border:0}.salary .center-text[data-v-b6f000c9]{color:#fff;text-align:center;line-height:12.5rem}.salary .salary-content[data-v-b6f000c9]{width:9.375rem;height:11.875rem}.salary .salary-content .salary-content-item[data-v-b6f000c9]{height:3.25rem;line-height:3.25rem;margin:.625rem .3125rem;border-radius:.625rem;background:#d9d9d9;text-align:center;font-size:1.1875rem}.salary .salary-content .salary-content-item-selected[data-v-b6f000c9]{margin:.3125rem .15625rem;background:#13c57c;color:#fff}.sex-two[data-v-b6f000c9]{padding-left:0;padding-right:0;background:#4678ec}.sex-content[data-v-b6f000c9]{border-radius:.625rem;width:100%;margin-top:.625rem;margin-bottom:1.25rem;display:flex;overflow:hidden;height:100%}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

View File

@@ -1 +0,0 @@
.app-container[data-v-6119d1bb]{width:100%;height:calc(100vh - var(--window-top) - var(--status-bar-height) - var(--window-bottom));background:linear-gradient(180deg,#4778ec,#002979);display:flex;flex-direction:column}.app-container .msg-AI[data-v-6119d1bb]{height:1.3125rem;font-family:Inter,Inter;font-weight:400;font-size:1.09375rem;color:#fff;line-height:1.28125rem;padding:2.65625rem 0 0 .9375rem}.app-container .msg-tab[data-v-6119d1bb]{padding:2.65625rem 0 0 .9375rem;display:flex;justify-content:flex-start;align-items:center;color:#d9d9d9}.app-container .msg-tab .msg-tab-item[data-v-6119d1bb]{margin-right:1.25rem}.app-container .msg-tab .actived[data-v-6119d1bb]{font-size:.875rem;color:#fff;text-shadow:0 .4375rem .4375rem rgba(0,0,0,.25)}.app-container .msg-list[data-v-6119d1bb]{flex:1;overflow:hidden}.app-container .msg-list .swiper[data-v-6119d1bb]{height:100%}.app-container .msg-list .swiper .list[data-v-6119d1bb]{display:flex;flex-direction:column}.app-container .msg-list .swiper .list .list-card[data-v-6119d1bb]{height:2.09375rem;width:calc(100% - 3.6875rem);background:#fff;border-radius:.53125rem;display:flex;justify-content:flex-start;align-items:center;padding:.8125rem 1.125rem;margin:1.125rem .71875rem}.app-container .msg-list .swiper .list .list-card .card-img[data-v-6119d1bb]{width:1.96875rem;height:1.96875rem;background:#d9d9d9;border-radius:50%;display:grid;place-items:center;margin-right:.9375rem}.app-container .msg-list .swiper .list .list-card .card-img .card-img-flame[data-v-6119d1bb]{width:100%;height:100%}.app-container .msg-list .swiper .list .list-card .card-info[data-v-6119d1bb]{flex:1;display:flex;align-items:flex-start;flex-direction:column}.app-container .msg-list .swiper .list .list-card .card-info .info-title[data-v-6119d1bb]{font-weight:400;font-size:.875rem;color:#000}.app-container .msg-list .swiper .list .list-card .card-info .info-text[data-v-6119d1bb],.app-container .msg-list .swiper .list .list-card .card-time[data-v-6119d1bb]{font-size:.53125rem;color:#606060}

View File

@@ -1 +0,0 @@
.container[data-v-dbb991d2]{width:100%;height:calc(100vh - var(--window-top) - var(--status-bar-height) - var(--window-bottom));background:linear-gradient(180deg,#4778ec,#002979);display:flex;flex-direction:column;align-items:center}.header[data-v-dbb991d2]{display:flex;align-items:center;padding:.9375rem 1.875rem;width:calc(100% - 3.75rem);border-radius:0 0 .625rem .625rem}.header .avatar[data-v-dbb991d2]{width:3.125rem;height:3.125rem;background-color:#ccc;border-radius:50%;margin-right:.625rem}.header .info[data-v-dbb991d2]{display:flex;flex-direction:column}.header .info .name-row[data-v-dbb991d2]{display:flex;align-items:center;position:relative}.header .info .name-row .name[data-v-dbb991d2]{font-size:1.125rem;font-weight:700;color:#fff}.header .info .name-row .edit-icon[data-v-dbb991d2]{width:1.25rem;height:1.25rem;border-radius:50%;position:absolute;right:-1.875rem;top:.1875rem}.header .info .name-row .edit-icon .img[data-v-dbb991d2]{width:100%;height:100%}.header .info .details[data-v-dbb991d2]{font-size:.75rem;color:#dbeafe}.resume-info[data-v-dbb991d2]{padding:0 .8125rem;width:calc(100% - 1.625rem);margin-top:.625rem}.info-card[data-v-dbb991d2]{display:flex;flex-direction:column;justify-content:space-between;align-items:center;color:#fff;padding:.3125rem .75rem;border-radius:.375rem;margin-bottom:.3125rem;background:#4778ec;box-shadow:0 .21875rem .21875rem rgba(0,0,0,.25);border-radius:.53125rem;position:relative}.info-card .card-content[data-v-dbb991d2]{width:100%;display:flex;line-height:1.8125rem;margin-top:.5rem;position:relative}.info-card .label[data-v-dbb991d2]{width:5rem;height:1rem;font-size:.875rem;color:#fff;text-align:justify;margin-right:.625rem}.info-card .long[data-v-dbb991d2]{width:5.625rem;margin-right:0}.info-card .label[data-v-dbb991d2]:after{content:"";display:inline-block;width:100%}.info-card .value[data-v-dbb991d2]{font-size:.875rem;color:#fff}.info-card .card-content[data-v-dbb991d2]:first-child{margin-top:0}.info-card .edit-icon[data-v-dbb991d2]{position:absolute;right:.3125rem;top:.3125rem;width:1.25rem;height:1.25rem}.info-card .edit-icon .img[data-v-dbb991d2]{width:100%;height:100%}.upload-btn[data-v-dbb991d2]{margin-top:.625rem}.upload-btn .btn[data-v-dbb991d2]{display:flex;align-items:center;box-shadow:0 .21875rem .21875rem rgba(0,0,0,.25);height:2.5rem;background-color:#22c55e;color:#fff;font-size:.875rem;font-weight:700;border-radius:.625rem}.popContent[data-v-dbb991d2]{padding:.75rem;background:#4778ec;height:calc(100% - 1.53125rem)}.popContent .sex-content[data-v-dbb991d2]{border-radius:.625rem;width:100%;margin-top:.625rem;margin-bottom:1.25rem;display:flex;overflow:hidden;height:calc(100% - 3.125rem);border:1px solid #4778ec}.popContent .s-header[data-v-dbb991d2]{display:flex;justify-content:space-between;text-align:center;font-size:16px}.popContent .s-header .heade-lf[data-v-dbb991d2]{line-height:30px;width:50px;height:30px;border-radius:4px;border:1px solid #666;color:#666;background:#fff}.popContent .s-header .heade-ri[data-v-dbb991d2]{line-height:30px;width:50px;height:30px;border-radius:4px;border:1px solid #1b66ff;background-color:#1b66ff;color:#fff}

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
.uni-load-more[data-v-7690a0fc]{display:flex;flex-direction:row;height:40px;align-items:center;justify-content:center}.uni-load-more__text[data-v-7690a0fc]{font-size:14px;margin-left:8px}.uni-load-more__img[data-v-7690a0fc]{width:24px;height:24px}.uni-load-more__img--nvue[data-v-7690a0fc]{color:#666}.uni-load-more__img--android[data-v-7690a0fc],.uni-load-more__img--ios[data-v-7690a0fc]{width:24px;height:24px;transform:rotate(0)}.uni-load-more__img--android[data-v-7690a0fc]{animation:loading-ios 1s 0s linear infinite}@keyframes loading-android-7690a0fc{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.uni-load-more__img--ios-H5[data-v-7690a0fc]{position:relative;animation:loading-ios-H5-7690a0fc 1s 0s step-end infinite}.uni-load-more__img--ios-H5 uni-image[data-v-7690a0fc]{position:absolute;width:100%;height:100%;left:0;top:0}@keyframes loading-ios-H5-7690a0fc{0%{transform:rotate(0)}8%{transform:rotate(30deg)}16%{transform:rotate(60deg)}24%{transform:rotate(90deg)}32%{transform:rotate(120deg)}40%{transform:rotate(150deg)}48%{transform:rotate(180deg)}56%{transform:rotate(210deg)}64%{transform:rotate(240deg)}73%{transform:rotate(270deg)}82%{transform:rotate(300deg)}91%{transform:rotate(330deg)}to{transform:rotate(360deg)}}.uni-load-more__img--android-H5[data-v-7690a0fc]{animation:loading-android-H5-rotate-7690a0fc 2s linear infinite;transform-origin:center center}.uni-load-more__img--android-H5 circle[data-v-7690a0fc]{display:inline-block;animation:loading-android-H5-dash-7690a0fc 1.5s ease-in-out infinite;stroke:currentColor;stroke-linecap:round}@keyframes loading-android-H5-rotate-7690a0fc{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes loading-android-H5-dash-7690a0fc{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40}to{stroke-dasharray:90,150;stroke-dashoffset:-120}}.modal-mask[data-v-56e8df2d]{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:rgba(0,0,0,.5);display:flex;justify-content:center;align-items:center;z-index:9999}.modal-container[data-v-56e8df2d]{width:100vw;height:100vh;background-color:#fff;overflow:hidden;display:flex;flex-direction:column}.modal-header[data-v-56e8df2d]{height:2.75rem;display:flex;align-items:center;justify-content:space-between;padding:0 1rem;border-bottom:.03125rem solid #eee;position:relative}.modal-header .back-btn[data-v-56e8df2d]{font-size:1.125rem;width:1.5rem}.modal-header .modal-title[data-v-56e8df2d]{font-size:1rem;font-weight:500}.content-wrapper[data-v-56e8df2d]{flex:1;display:flex;overflow:hidden}.filter-nav[data-v-56e8df2d]{width:6.25rem;background-color:#f5f5f5}.filter-nav .nav-item[data-v-56e8df2d]{height:3.125rem;padding:0 .625rem;line-height:3.125rem;font-size:.875rem;color:#666}.filter-nav .nav-item.active[data-v-56e8df2d]{background-color:#fff;color:#007aff;font-weight:700}.filter-content[data-v-56e8df2d]{flex:1;padding:.625rem}.filter-content .content-item[data-v-56e8df2d]{margin-top:1.25rem}.filter-content .content-item .item-title[data-v-56e8df2d]{width:8.78125rem;height:1.625rem;font-family:Inter,Inter;font-weight:400;font-size:1.09375rem;color:#000;line-height:1.28125rem;text-align:left;font-style:normal;text-transform:none}.filter-content .content-item[data-v-56e8df2d]:first-child{margin-top:0}.filter-content .check-content[data-v-56e8df2d]{display:grid;grid-template-columns:50% 50%;place-items:center}.filter-content .check-content .checkbox-item[data-v-56e8df2d]{display:flex;align-items:center;width:7.125rem;height:2.03125rem;margin:.625rem .625rem 0 0;text-align:center;background-color:#d9d9d9}.filter-content .check-content .checkbox-item .option-label[data-v-56e8df2d]{font-size:.875rem;width:100%}.filter-content .check-content .checkedstyle[data-v-56e8df2d]{background-color:#007aff;color:#fff}.modal-footer[data-v-56e8df2d]{height:3.125rem;display:flex;border-top:.03125rem solid #eee}.modal-footer .footer-btn[data-v-56e8df2d]{flex:1;margin:0;border-radius:0;line-height:3.125rem}.modal-footer .footer-btn[data-v-56e8df2d]:first-child{border-right:.03125rem solid #eee}

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
.uni-popup-dialog[data-v-19f0223c]{width:300px;border-radius:11px;background-color:#fff}.uni-dialog-title[data-v-19f0223c]{display:flex;flex-direction:row;justify-content:center;padding-top:25px}.uni-dialog-title-text[data-v-19f0223c]{font-size:16px;font-weight:500}.uni-dialog-content[data-v-19f0223c]{display:flex;flex-direction:row;justify-content:center;align-items:center;padding:20px}.uni-dialog-content-text[data-v-19f0223c]{font-size:14px;color:#6c6c6c}.uni-dialog-button-group[data-v-19f0223c]{display:flex;flex-direction:row;border-top-color:#f5f5f5;border-top-style:solid;border-top-width:1px}.uni-dialog-button[data-v-19f0223c]{display:flex;flex:1;flex-direction:row;justify-content:center;align-items:center;height:45px}.uni-border-left[data-v-19f0223c]{border-left-color:#f0f0f0;border-left-style:solid;border-left-width:1px}.uni-dialog-button-text[data-v-19f0223c]{font-size:16px;color:#333}.uni-button-color[data-v-19f0223c]{color:#007aff}.uni-dialog-input[data-v-19f0223c]{flex:1;font-size:14px;border:1px #eee solid;height:40px;padding:0 10px;border-radius:5px;color:#555}.uni-popup__success[data-v-19f0223c]{color:#4cd964}.uni-popup__warn[data-v-19f0223c]{color:#f0ad4e}.uni-popup__error[data-v-19f0223c]{color:#dd524d}.uni-popup__info[data-v-19f0223c]{color:#909399}.uni-popup[data-v-fc99ec19]{position:fixed;z-index:99}.uni-popup.top[data-v-fc99ec19],.uni-popup.left[data-v-fc99ec19],.uni-popup.right[data-v-fc99ec19]{top:var(--window-top)}.uni-popup .uni-popup__wrapper[data-v-fc99ec19]{display:block;position:relative}.uni-popup .uni-popup__wrapper.left[data-v-fc99ec19],.uni-popup .uni-popup__wrapper.right[data-v-fc99ec19]{padding-top:var(--window-top);flex:1}.fixforpc-z-index[data-v-fc99ec19]{z-index:999}.fixforpc-top[data-v-fc99ec19]{top:0}

File diff suppressed because one or more lines are too long

View File

@@ -1,35 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="/app/assets/uni.a0977af4.css">
<meta charset="UTF-8" />
<script>
(function() {
var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' &&
(CSS.supports('top: env(a)') || CSS.supports('top: constant(a)'));
var meta = document.createElement('meta');
meta.name = 'viewport';
meta.content =
'width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
(coverSupport ? ', viewport-fit=cover' : '');
document.head.appendChild(meta);
})();
</script>
<title>青岛智慧就业服务</title>
<!-- vconsole -->
<script src="https://unpkg.com/vconsole@latest/dist/vconsole.min.js"></script>
<!-- <script>
var vConsole = new window.VConsole();
vConsole.destroy();
</script>
<script type="text/javascript" src="./static/js/jweixin-1.4.0.js"></script> -->
<script type="module" crossorigin src="/app/assets/index-B_uIn6pP.js"></script>
<link rel="stylesheet" crossorigin href="/app/assets/index-DzO-O46h.css">
</head>
<body>
<div id="app"><!--app-html--></div>
</body>

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 962 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 953 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 791 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 631 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 808 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 333 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 398 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 210 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 469 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 215 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 543 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 365 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 581 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 597 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 438 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 329 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 452 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 384 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 564 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 335 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 734 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 485 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 916 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 799 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1008 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 776 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 419 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 441 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 555 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 391 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 263 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 271 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 394 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 692 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 947 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 950 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 594 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 697 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 926 B

Some files were not shown because too many files have changed in this diff Show More