feat: 完善分词功能样式与权限验证

This commit is contained in:
ZiuChen 2022-09-07 16:55:26 +08:00
parent b34107a64d
commit 7fe706d94f
4 changed files with 55 additions and 4 deletions

View File

@ -16,9 +16,10 @@
<template v-if="fullData.type === 'text'">
<div class="clip-full-content" v-text="fullData.data"></div>
</template>
<div v-else class="clip-full-content">
<div v-else-if="fullData.type === 'file'" class="clip-full-content">
<FileList :data="JSON.parse(fullData.data)"></FileList>
</div>
<ClipWordBreak :words="splitWords"></ClipWordBreak>
</div>
</Transition>
<div class="clip-overlay" v-show="isShow" @click="onOverlayClick"></div>
@ -27,7 +28,8 @@
<script setup>
import FileList from './FileList.vue'
import { onMounted } from 'vue'
import ClipWordBreak from './ClipWordBreak.vue'
import { ref, onMounted } from 'vue'
const props = defineProps({
isShow: {
@ -67,6 +69,8 @@ const handleBtnClick = (id) => {
}
}
const splitWords = ref([])
const fetchUserInfo = async () => {
return utools.fetchUserServerTemporaryToken().then(({ token, expired_at }) => {
return {
@ -77,7 +81,8 @@ const fetchUserInfo = async () => {
}
const fetchWordBreakResult = async (origin) => {
const url = 'https://service-a0pyrkub-1304937021.sh.apigw.tencentcs.com/release/v1/word-break'
const baseUrl = 'https://service-a0pyrkub-1304937021.sh.apigw.tencentcs.com/release'
const url = baseUrl + '/v1/word-break'
const info = await fetchUserInfo()
console.log(info)
return fetch(url, {
@ -86,7 +91,8 @@ const fetchWordBreakResult = async (origin) => {
'Content-Type': 'application/json'
},
body: JSON.stringify({
word: origin
word: origin,
...info
})
})
.then((res) => res.json())
@ -94,6 +100,9 @@ const fetchWordBreakResult = async (origin) => {
if (code !== 0) {
console.log(msg)
} else {
splitWords.value = data.splitWord.filter(
(w) => w !== '' && w !== ' ' && w.indexOf('\n') === -1
)
console.log(data.splitWord)
console.log(data.extractWord)
}

View File

@ -0,0 +1,22 @@
<template>
<div class="clip-word-break">
<div class="clip-word-break-content">
<template v-for="w of words">
<div class="clip-word-break-content-item">{{ w }}</div>
</template>
</div>
</div>
</template>
<script setup>
const props = defineProps({
words: {
type: Array,
required: true
}
})
</script>
<style lang="less" scoped>
@import '../style/index.less';
</style>

View File

@ -0,0 +1,19 @@
.clip-word-break {
display: flex;
justify-content: center;
align-items: center;
padding: 10px;
&-content-item {
display: inline-block;
vertical-align: middle;
white-space: normal;
word-break: break-all;
word-wrap: break-word;
padding: 5px;
margin: 2px 5px;
cursor: pointer;
user-select: none;
background-color: @text-bg-color;
border-radius: 5px;
}
}

View File

@ -5,6 +5,7 @@
@import (multiple) './cpns/clip-item-list.less';
@import (multiple) './cpns/clip-search.less';
@import (multiple) './cpns/clip-switch.less';
@import (multiple) './cpns/clip-word-break.less';
@import (multiple) './cpns/file-list.less';
}