Commit 07df24dc by zhaochengxiang

模型中文名称自动翻译

parent 973cd125
......@@ -106,6 +106,10 @@ export function* getConsult(payload) {
return yield call(datamodelerService.consult, payload);
}
export function* translatePhase(payload) {
return yield call(datamodelerService.translatePhase, payload);
}
export function* getSupportedDatatypes() {
return yield call(datamodelerService.getSupportedDatatypes);
}
......
......@@ -58,6 +58,10 @@ export function consult(payload) {
return PostJSON("/datamodeler/easyDataModelerDesign/consult", payload);
}
export function translatePhase(payload) {
return PostJSON("/datamodeler/easyDataModelerDesign/translatePhase", payload);
}
//获取支持的数据类型
export function getSupportedDatatypes() {
return GetJSON("/datamodeler/easyDataModelerCURD/getSupportedDatatypes");
......
......@@ -5,7 +5,7 @@ import ImportActionHeader from './ImportActionHeader';
import ImportActionTable from './ImportActionTable';
import ImportActionIndex from './ImportActionIndex';
import { dispatchLatest, dispatch } from '../../../../model';
import { dispatch } from '../../../../model';
const ImportAction = (props) => {
const { action, hints, onChange, form, modelerId, terms } = props;
......@@ -102,7 +102,7 @@ const ImportAction = (props) => {
}
const getCurrentDataModel = () => {
dispatchLatest({
dispatch({
type: 'datamodel.getDataModel',
payload: {
id: modelerId||''
......@@ -189,7 +189,7 @@ const ImportAction = (props) => {
}
const onHeaderChange = (changedValues, allValues) => {
if (changedValues.hasOwnProperty('name')) {
if (changedValues.hasOwnProperty('name') || changedValues.hasOwnProperty('cnName')) {
validateDataModel(modelerData);
}
}
......
......@@ -2,7 +2,7 @@ import React, { useState, useEffect } from 'react';
import { Form, Input, Row, Col, Descriptions, Select, AutoComplete } from 'antd';
import { highlightSearchContentByTerms } from '../../../../util';
import { dispatch } from '../../../../model';
import { dispatchLatest } from '../../../../model';
const { Option } = Select;
......@@ -52,6 +52,8 @@ const ImportActionHeader = (props) => {
const [ causes, setCauses ] = useState([]);
const [ options, setOptions ] = useState([]);
const [ autoTranslate, setAutoTranslate ] = useState((modelerData.name||'')==='');
useEffect(() => {
const causes = [];
......@@ -88,7 +90,7 @@ const ImportActionHeader = (props) => {
const _searchText = searchText.replace(/ /g,'');
if (_searchText !== '') {
dispatch({
dispatchLatest({
type: 'datamodel.autocomplete',
payload: {
params: {
......@@ -106,7 +108,7 @@ const ImportActionHeader = (props) => {
}
})
} else {
dispatch({
dispatchLatest({
type: 'datamodel.recommandEnglishWords',
payload: {
params: {
......@@ -126,7 +128,28 @@ const ImportActionHeader = (props) => {
}
const onValuesChange = (changedValues, allValues) => {
onChange && onChange(changedValues, allValues);
//有手动编辑过英文名称并且有内容的情况下, 不能通过编辑中文名称自动翻译
if (changedValues.hasOwnProperty('name')) {
setAutoTranslate(changedValues.name==='');
} else if (changedValues.hasOwnProperty('cnName')) {
if (autoTranslate) {
dispatchLatest({
type: 'datamodel.translatePhase',
payload: {
params: {
phaseInChinese: changedValues.cnName,
}
},
callback: data => {
form.setFieldsValue({ name: data?.translated||'' });
onChange && onChange(changedValues, allValues);
}
})
}
}
}
return (
......
......@@ -809,9 +809,14 @@ const ImportActionTable = (props) => {
suggests && suggests.map((suggest, index) => {
return (
<Radio key={index} value={index} className='mt-3' style={{ display: 'block' }}>
{`中文名称: ${suggest.cnName||''} 英文名称: ${suggest.name||''} 描述: ${suggest.remark||''} 匹配度: `}
<span style={{ color: '#f50' }}>{`${suggest.score*100}%`}</span>
{`中文名称: ${suggest.cnName||''}`}
{` 英文名称: ${suggest.name||''}`}
{` 描述: ${suggest.remark||''}`}
{' 匹配度: '}
<span style={{ color: '#f50' }}>{`${suggest.recommendedStats?.score}%`}</span>
{ index===0 && <span style={{ color: '#f50' }}> 推荐</span> }
{` 使用次数: ${suggest.recommendedStats?.referencesCount}`}
{` 来源: ${suggest.recommendedStats?.pathInSource||''}`}
</Radio>
)
})
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment