Browse Source

后台配置有道翻译

master
La123123 3 weeks ago
parent
commit
282505ef27
  1. 92
      im-admin-ui/src/views/im/setting/indexSetting.vue
  2. 4
      im-admin-ui/src/views/system/user/profile/index.vue
  3. 10
      im-admin/ruoyi-im/src/main/java/org/dromara/im/domain/setting/domain/TranslationSetting.java
  4. 7
      im-admin/ruoyi-im/src/main/java/org/dromara/im/service/impl/ImSettingServiceImpl.java

92
im-admin-ui/src/views/im/setting/indexSetting.vue

@ -14,7 +14,7 @@
<el-select v-model="translationSettingData.type" placeholder="请选择翻译类型">
<el-option label="默认配置" value="0"></el-option>
<el-option label="百度翻译" value="1"></el-option>
<!-- <el-option label="Google翻译" value="2"></el-option> -->
<el-option label="有道翻译" value="2"></el-option>
</el-select>
</el-form-item>
<el-form-item v-if="translationSettingData.type === '1'" label="APP ID" prop="appId">
@ -23,33 +23,18 @@
<el-form-item v-if="translationSettingData.type === '1'" label="密钥" prop="secretKey">
<el-input v-model="translationSettingData.secretKey" :rows="4" placeholder="请输入密钥"></el-input>
</el-form-item>
<el-form-item v-if="translationSettingData.type === '2'" label="App Key" prop="appKey">
<el-input v-model="translationSettingData.appKey" placeholder="请输入App Key"></el-input>
</el-form-item>
<el-form-item v-if="translationSettingData.type === '2'" label="密钥" prop="appSecret">
<el-input v-model="translationSettingData.appSecret" :rows="4" placeholder="请输入密钥"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitTranslationForm">提交</el-button>
<el-button @click="resetTranslationForm">重置</el-button>
</el-form-item>
</el-form>
</el-tab-pane>
<!-- <el-tab-pane label="平台配置" name="platform" lazy>
<el-form
ref="platformFormRef"
:model="platformSettingData"
:rules="platformRules"
label-width="120px"
style="max-width: 600px; margin-top: 20px"
>
<el-form-item label="平台名称" prop="name">
<el-input v-model="platformSettingData.name" placeholder="请输入平台名称"></el-input>
</el-form-item>
<el-form-item label="平台域名" prop="domain">
<el-input v-model="platformSettingData.domain" placeholder="请输入平台域名"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitPlatformForm">提交</el-button>
<el-button @click="resetPlatformForm">重置</el-button>
</el-form-item>
</el-form>
</el-tab-pane> -->
</el-tabs>
<!-- </el-card> -->
</div>
@ -69,12 +54,9 @@ const activeTab = ref('translation');
const translationSettingData = ref({
type: '',
appId: '',
secretKey: ''
});
const platformSettingData = ref({
name: '',
domain: ''
secretKey: '',
appKey: '',
appSecret: ''
});
//
@ -87,18 +69,14 @@ const translationRules = {
secretKey: [
{ required: true, message: '请输入密钥', trigger: 'blur' },
{ min: 1, max: 200, message: '长度在 1 到 200 个字符', trigger: 'blur' }
]
};
//
const platformRules = {
name: [
{ required: true, message: '请输入平台名称', trigger: 'blur' },
{ min: 1, max: 50, message: '长度在 1 到 50 个字符', trigger: 'blur' }
],
domain: [
{ required: true, message: '请输入平台域名', trigger: 'blur' },
{ pattern: /^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/, message: '请输入正确的域名格式', trigger: 'blur' }
appKey: [
{ required: true, message: '请输入App Key', trigger: 'blur' },
{ min: 1, max: 100, message: '长度在 1 到 100 个字符', trigger: 'blur' }
],
appSecret: [
{ required: true, message: '请输入密钥', trigger: 'blur' },
{ min: 1, max: 200, message: '长度在 1 到 200 个', trigger: 'blur' }
]
};
@ -113,10 +91,6 @@ const getList = async () => {
translationSettingData.value = JSON.parse(res.TRANSLATION_SETTING);
}
console.log('成功:', translationSettingData.value);
//
if (res.PLATFORM_SETTING) {
platformSettingData.value = JSON.parse(res.PLATFORM_SETTING);
}
} catch (error) {
ElMessage.error('获取配置失败');
} finally {
@ -137,7 +111,9 @@ const submitTranslationForm = async () => {
settingName: 'TRANSLATION_SETTING',
type: translationSettingData.value.type,
appId: translationSettingData.value.appId,
secretKey: translationSettingData.value.secretKey
secretKey: translationSettingData.value.secretKey,
appKey: translationSettingData.value.appKey,
appSecret: translationSettingData.value.appSecret
};
await updateSetting(params);
ElMessage.success('翻译配置更新成功');
@ -149,40 +125,12 @@ const submitTranslationForm = async () => {
}
};
/** 提交平台配置表单 */
const submitPlatformForm = async () => {
const formRef = proxy.$refs.platformFormRef as (typeof import('element-plus'))['ElForm'];
const isValid = await formRef.validate().catch(() => false);
if (!isValid) return;
try {
buttonLoading.value = true;
const params = {
PLATFORM_SETTING: platformSettingData.value
};
await updateSetting(params);
ElMessage.success('平台配置更新成功');
} catch (error) {
console.error('更新平台配置失败:', error);
ElMessage.error('更新平台配置失败');
} finally {
buttonLoading.value = false;
}
};
/** 重置翻译配置表单 */
const resetTranslationForm = () => {
const formRef = proxy.$refs.translationFormRef as (typeof import('element-plus'))['ElForm'];
formRef.resetFields();
};
/** 重置平台配置表单 */
const resetPlatformForm = () => {
const formRef = proxy.$refs.platformFormRef as (typeof import('element-plus'))['ElForm'];
formRef.resetFields();
};
onMounted(() => {
getList();
});

4
im-admin-ui/src/views/system/user/profile/index.vue

@ -25,10 +25,10 @@
<svg-icon icon-class="email" />用户邮箱
<div class="pull-right">{{ state.user.email }}</div>
</li>
<li class="list-group-item">
<!-- <li class="list-group-item">
<svg-icon icon-class="tree" />所属部门
<div v-if="state.user.deptName" class="pull-right">{{ state.user.deptName }} / {{ state.postGroup }}</div>
</li>
</li> -->
<li class="list-group-item">
<svg-icon icon-class="peoples" />所属角色
<div class="pull-right">{{ state.roleGroup }}</div>

10
im-admin/ruoyi-im/src/main/java/org/dromara/im/domain/setting/domain/TranslationSetting.java

@ -9,12 +9,16 @@ import lombok.Setter;
public class TranslationSetting {
/**
* 翻译类型 0-默认管理员配置 1-百度翻译 2-谷歌翻译
* 翻译类型 0-默认管理员配置 1-百度翻译 2-有道翻译 3-谷歌翻译
*/
private String type = "0";
private String appId = "";
private String appId = "";//百度翻译使用
private String secretKey = "";
private String secretKey = "";//百度翻译使用
private String appKey = "";//有道翻译使用
private String appSecret = "";//有道翻译使用
}

7
im-admin/ruoyi-im/src/main/java/org/dromara/im/service/impl/ImSettingServiceImpl.java

@ -279,9 +279,14 @@ public class ImSettingServiceImpl implements IImSettingService {
origin.setType("1");
origin.setAppId(value.getStr("appId"));
origin.setSecretKey(value.getStr("secretKey"));
}else{//其余情况 异常
} else if (type.equals("2")) {//使用有道翻译
if(ObjectUtil.isEmpty(value.getStr("appKey")) || ObjectUtil.isEmpty(value.getStr("appSecret"))) {
return false;
}
origin.setType("2");
origin.setAppId(value.getStr("appKey"));
origin.setAppSecret(value.getStr("appSecret"));
}
translationSetting.setSettingValue((JSONUtil.toJsonStr(origin)));

Loading…
Cancel
Save