V 3.0.1 LaiTool V3.0.1-preview.4
This commit is contained in:
@@ -6,6 +6,7 @@
|
||||
<n-select
|
||||
style="width: 160px"
|
||||
v-model:value="formValue.gptType"
|
||||
@update:value="UpdateSelectPromptType"
|
||||
:options="gptTypeOptions"
|
||||
placeholder="请选择提示词类型"
|
||||
>
|
||||
@@ -88,6 +89,7 @@ export default defineComponent({
|
||||
{ label: 'DouBao', value: 'doubao' }
|
||||
])
|
||||
let softwareStore = useSoftwareStore()
|
||||
let allPromptDataOptions = ref([])
|
||||
|
||||
// 加载服务端数据
|
||||
async function InitServerGptOptions() {
|
||||
@@ -105,6 +107,7 @@ export default defineComponent({
|
||||
gptDataOptions.value = gptRes.data.promptData.map((item) => {
|
||||
return { label: item.name, value: item.id }
|
||||
})
|
||||
allPromptDataOptions.value = gptRes.data.promptData
|
||||
}
|
||||
|
||||
onMounted(async () => {
|
||||
@@ -134,7 +137,6 @@ export default defineComponent({
|
||||
* AI设置相关
|
||||
*/
|
||||
async function AISetting() {
|
||||
debugger
|
||||
// 判断当前数据是不是存在
|
||||
// 处理数据。获取当前的所有的数据
|
||||
let dialogWidth = 800
|
||||
@@ -172,14 +174,29 @@ export default defineComponent({
|
||||
softwareStore.spin.spinning = false
|
||||
return
|
||||
}
|
||||
|
||||
newWord.value = res.data
|
||||
}
|
||||
|
||||
/**
|
||||
* 选择的提示词类型发生变化时,删选提示词预设
|
||||
* @param value
|
||||
* @param options
|
||||
*/
|
||||
async function UpdateSelectPromptType(value, options) {
|
||||
gptDataOptions.value = allPromptDataOptions.value
|
||||
.filter((item) => {
|
||||
return item.promptTypeId == value
|
||||
})
|
||||
.map((item) => {
|
||||
return { label: item.name, value: item.id }
|
||||
})
|
||||
}
|
||||
|
||||
return {
|
||||
formValue,
|
||||
gptTypeOptions,
|
||||
gptDataOptions,
|
||||
UpdateSelectPromptType,
|
||||
oldWord,
|
||||
newWord,
|
||||
rules,
|
||||
@@ -187,7 +204,8 @@ export default defineComponent({
|
||||
AISetting,
|
||||
gptOptions,
|
||||
softwareStore,
|
||||
ActionStart
|
||||
ActionStart,
|
||||
allPromptDataOptions
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
@@ -165,7 +165,7 @@ export default defineComponent({
|
||||
item.loading = false
|
||||
item.timedata = new Date().getTime()
|
||||
})
|
||||
|
||||
|
||||
data.value = value.value
|
||||
})
|
||||
}
|
||||
@@ -436,8 +436,10 @@ export default defineComponent({
|
||||
await window.api.TranslatePrompt(
|
||||
[JSON.stringify([row]), 'en', 'zh', window.id, false],
|
||||
(value) => {
|
||||
|
||||
console.log(value)
|
||||
if (value.code == 0) {
|
||||
message.error(value.message)
|
||||
return
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
||||
@@ -559,12 +561,10 @@ export default defineComponent({
|
||||
})
|
||||
|
||||
window.api.setEventListen([DEFINE_STRING.TRANSLATE_RETURN_REFRESH, window.id], (value) => {
|
||||
|
||||
if (value.code == 0) {
|
||||
message.error('返回数据错误')
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
// 直接
|
||||
let index = data.value.findIndex((item) => item.id == value.rowId)
|
||||
@@ -620,8 +620,10 @@ export default defineComponent({
|
||||
async function TranslatePrompt(translateData, from, to) {
|
||||
console.log(translateData)
|
||||
await window.api.TranslatePrompt([translateData, from, to, window.id, true], (value) => {
|
||||
|
||||
console.log(value)
|
||||
if (value.code == 0) {
|
||||
message.error(value.message)
|
||||
return
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -629,7 +631,6 @@ export default defineComponent({
|
||||
* 翻译中文到提示词
|
||||
*/
|
||||
async function TranslateChineseToPrompt() {
|
||||
|
||||
// 将当前的prompt和Chinese_prompt中的src全部删除(全部重新翻译)
|
||||
let fileterData = []
|
||||
for (let i = 0; i < data.value.length; i++) {
|
||||
@@ -650,8 +651,10 @@ export default defineComponent({
|
||||
let tmp_str = JSON.stringify(fileterData)
|
||||
// 开始调用
|
||||
await window.api.TranslatePrompt([tmp_str, 'zh', 'en', window.id, true], (value) => {
|
||||
|
||||
console.log(value)
|
||||
if (value.code == 0) {
|
||||
message.error(value.message)
|
||||
return
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -780,7 +783,6 @@ export default defineComponent({
|
||||
// 翻译立即返回
|
||||
// 翻译单个。马上返回
|
||||
await window.api.TranslateReturnNow([tmp_s, 'en', 'zh', true], (value) => {
|
||||
|
||||
console.log(value)
|
||||
if (value.code == 0) {
|
||||
message.error(value.message)
|
||||
|
||||
@@ -439,7 +439,7 @@ export default defineComponent({
|
||||
dialog.create({
|
||||
showIcon: false,
|
||||
title: '翻译设置',
|
||||
content: () => h(TranslateSetting),
|
||||
content: () => h(TranslateSetting, { height: dialogHeight }),
|
||||
style: `width : ${dialogWidth}px; height : ${dialogHeight}px`,
|
||||
maskClosable: false
|
||||
})
|
||||
|
||||
@@ -1,51 +1,60 @@
|
||||
<template>
|
||||
<div style="display: flex">
|
||||
<div style="display: flex; align-items: center">
|
||||
<div style="width: 200px">选择翻译服务商:</div>
|
||||
<n-select v-model:value="translateSetting.selectModel" :options="translateOptions"></n-select>
|
||||
</div>
|
||||
<div style="display: flex; align-items: center; margin-left: 20px">
|
||||
<n-checkbox v-model:checked="translateSetting.translation_auto"> 是否自动翻译 </n-checkbox>
|
||||
</div>
|
||||
<div style="display: flex; align-items: center; margin-left: 20px">
|
||||
<n-button :type="block ? 'warning' : 'primary'" @click="ModifyBlock">{{
|
||||
block ? '解锁' : '锁定'
|
||||
}}</n-button>
|
||||
</div>
|
||||
<div style="display: flex; align-items: center; margin-left: 20px">
|
||||
<n-button type="error" @click="ResetTranslateSetting">重置数据</n-button>
|
||||
</div>
|
||||
<div style="display: flex; align-items: center; margin-left: 20px">
|
||||
<n-button type="info" @click="SaveTranslateSetting">保存</n-button>
|
||||
<div id="translate-setting">
|
||||
<div style="display: flex">
|
||||
<div style="display: flex; align-items: center">
|
||||
<div style="width: 200px">选择翻译服务商:</div>
|
||||
<n-select
|
||||
v-model:value="translateSetting.selectModel"
|
||||
:options="translateOptions"
|
||||
></n-select>
|
||||
</div>
|
||||
<div style="display: flex; align-items: center; margin-left: 20px">
|
||||
<n-checkbox v-model:checked="translateSetting.translation_auto"> 是否自动翻译 </n-checkbox>
|
||||
</div>
|
||||
<div style="display: flex; align-items: center; margin-left: 20px">
|
||||
<n-button :type="block ? 'warning' : 'primary'" @click="ModifyBlock">{{
|
||||
block ? '解锁' : '锁定'
|
||||
}}</n-button>
|
||||
</div>
|
||||
<div style="display: flex; align-items: center; margin-left: 20px">
|
||||
<n-button type="error" @click="ResetTranslateSetting">重置数据</n-button>
|
||||
</div>
|
||||
<div style="display: flex; align-items: center; margin-left: 20px">
|
||||
<n-button type="info" @click="SaveTranslateSetting">保存</n-button>
|
||||
</div>
|
||||
</div>
|
||||
<n-card
|
||||
v-for="item in translateSetting.translates"
|
||||
style="margin-top: 10px"
|
||||
:title="GetTranslationName(item.name)"
|
||||
size="medium"
|
||||
>
|
||||
<n-form label-placement="left" inline="">
|
||||
<n-form-item label="API URL:">
|
||||
<n-input
|
||||
:disabled="block"
|
||||
style="width: 250px"
|
||||
v-model:value="item.translation_business"
|
||||
/>
|
||||
</n-form-item>
|
||||
<n-form-item label="APP ID/应用ID:">
|
||||
<n-input
|
||||
:type="item.name == 'laitool' ? 'text' : 'password'"
|
||||
:show-password-on="mousedown"
|
||||
v-model:value="item.translation_app_id"
|
||||
/>
|
||||
</n-form-item>
|
||||
<n-form-item label="产品密钥:">
|
||||
<n-input
|
||||
type="password"
|
||||
show-password-on="mousedown"
|
||||
v-model:value="item.translation_secret"
|
||||
/>
|
||||
</n-form-item>
|
||||
<!-- </div> -->
|
||||
</n-form>
|
||||
</n-card>
|
||||
</div>
|
||||
<n-card
|
||||
v-for="item in translateSetting.translates"
|
||||
style="margin-top: 10px"
|
||||
:title="GetTranslationName(item.name)"
|
||||
size="medium"
|
||||
>
|
||||
<n-form label-placement="left" inline="">
|
||||
<n-form-item label="API URL:">
|
||||
<n-input :disabled="block" style="width: 250px" v-model:value="item.translation_business" />
|
||||
</n-form-item>
|
||||
<n-form-item label="APP ID/应用ID:">
|
||||
<n-input
|
||||
type="password"
|
||||
show-password-on="mousedown"
|
||||
v-model:value="item.translation_app_id"
|
||||
/>
|
||||
</n-form-item>
|
||||
<n-form-item label="产品密钥:">
|
||||
<n-input
|
||||
type="password"
|
||||
show-password-on="mousedown"
|
||||
v-model:value="item.translation_secret"
|
||||
/>
|
||||
</n-form-item>
|
||||
<!-- </div> -->
|
||||
</n-form>
|
||||
</n-card>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
@@ -65,13 +74,18 @@ import { TranslateAPIType } from '../../../../define/enum/translate'
|
||||
|
||||
export default defineComponent({
|
||||
components: { NCard, NInput, NSelect, NButton, NCheckbox, NForm, NFormItem },
|
||||
|
||||
setup() {
|
||||
props: ['height'],
|
||||
setup(props) {
|
||||
let message = useMessage()
|
||||
let dialog = useDialog()
|
||||
let translateSetting = ref({})
|
||||
let block = ref(true)
|
||||
let height = ref(props.height)
|
||||
onMounted(async () => {
|
||||
let div = document.getElementById('translate-setting')
|
||||
div.style.height = height.value - 70 + 'px'
|
||||
div.style.overflow = 'auto'
|
||||
|
||||
// 初始化加载数据
|
||||
let translateSettingRes = await window.translate.GetTranslateSetting()
|
||||
if (translateSettingRes.code == 0) {
|
||||
@@ -83,6 +97,8 @@ export default defineComponent({
|
||||
|
||||
function GetTranslationName(name) {
|
||||
switch (name) {
|
||||
case 'laitool':
|
||||
return 'Laitool GPT翻译'
|
||||
case 'baidu':
|
||||
return '百度翻译'
|
||||
case 'tencent':
|
||||
@@ -125,7 +141,7 @@ export default defineComponent({
|
||||
// 判断当前选中的数据是不是设置完善
|
||||
let selectModel = translateSetting.value.selectModel
|
||||
let settingIndex = translateSetting.value.translates.findIndex(
|
||||
(item) => (item.name == selectModel)
|
||||
(item) => item.name == selectModel
|
||||
)
|
||||
if (settingIndex < 0) {
|
||||
message.error('未找到选中的数据,请检查')
|
||||
@@ -152,6 +168,7 @@ export default defineComponent({
|
||||
}
|
||||
|
||||
return {
|
||||
height,
|
||||
translateSetting,
|
||||
GetTranslationName,
|
||||
ResetTranslateSetting,
|
||||
@@ -159,6 +176,10 @@ export default defineComponent({
|
||||
ModifyBlock,
|
||||
block,
|
||||
translateOptions: [
|
||||
{
|
||||
label: 'laitool GPT翻译',
|
||||
value: TranslateAPIType.LAITOOL
|
||||
},
|
||||
{
|
||||
label: '百度翻译',
|
||||
value: TranslateAPIType.BAIDU
|
||||
|
||||
Reference in New Issue
Block a user