|
@@ -1,17 +1,17 @@
|
|
|
<template>
|
|
|
<div class="system-edit-dic-container">
|
|
|
- <el-dialog :title="(ruleForm.id !== 0 ? '修改' : '添加') + '字段节点'" v-model="isShowDialog" width="769px">
|
|
|
+ <el-dialog :title="(ruleForm.id !== 0 ? t('message.dateCenter.modeling.fieldNode.dialogTitleEdit') : t('message.dateCenter.modeling.fieldNode.dialogTitleAdd'))" v-model="isShowDialog" width="769px">
|
|
|
<el-form :model="ruleForm" ref="formRef" :rules="rules" label-width="110px">
|
|
|
- <el-form-item label="类型" prop="from">
|
|
|
+ <el-form-item :label="t('message.dateCenter.modeling.labels.modelType')" prop="from">
|
|
|
<el-radio-group v-model="ruleForm.from">
|
|
|
- <el-radio :label="1">自定义</el-radio>
|
|
|
- <el-radio :label="2">数据源</el-radio>
|
|
|
+ <el-radio :label="1">{{ t('message.dateCenter.modeling.labels.custom') }}</el-radio>
|
|
|
+ <el-radio :label="2">{{ t('message.dateCenter.modeling.relation.labels.source') }}</el-radio>
|
|
|
</el-radio-group>
|
|
|
</el-form-item>
|
|
|
|
|
|
<div v-if="ruleForm.from == 2">
|
|
|
- <el-form-item label="数据源" prop="sourceId">
|
|
|
- <el-select v-model="ruleForm.sourceId" filterable placeholder="请选择数据源" @change="getNodeList">
|
|
|
+ <el-form-item :label="t('message.dateCenter.modeling.relation.labels.source')" prop="sourceId">
|
|
|
+ <el-select v-model="ruleForm.sourceId" filterable :placeholder="t('message.dateCenter.modeling.relation.placeholders.selectSource')" @change="getNodeList">
|
|
|
<el-option v-for="item in sourceData" :key="item.sourceId" :label="item.key" :value="item.sourceId">
|
|
|
<span style="float: left">{{ item.name }}</span>
|
|
|
<span style="float: right; font-size: 13px">{{ item.key }}</span>
|
|
@@ -19,8 +19,8 @@
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
|
|
|
- <el-form-item label="数据源节点" prop="nodeId">
|
|
|
- <el-select v-model="ruleForm.nodeId" filterable placeholder="请选择数据源" @change="setNode">
|
|
|
+ <el-form-item :label="t('message.dateCenter.modeling.relation.labels.sourceNode')" prop="nodeId">
|
|
|
+ <el-select v-model="ruleForm.nodeId" filterable :placeholder="t('message.dateCenter.modeling.relation.placeholders.selectSourceNode')" @change="setNode">
|
|
|
<el-option v-for="item in nodeData" :key="item.nodeId" :label="item.key" :value="item.nodeId">
|
|
|
<span style="float: left">{{ item.key }}</span>
|
|
|
<span style="float: right; font-size: 13px">{{ item.name }}</span>
|
|
@@ -29,71 +29,72 @@
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
|
|
|
- <el-form-item label="字段节点标识" prop="key">
|
|
|
- <el-input v-model="ruleForm.key" placeholder="请输入字段节点名称" />
|
|
|
+ <el-form-item :label="t('message.dateCenter.modeling.labels.fieldName')" prop="key">
|
|
|
+ <el-input v-model="ruleForm.key" :placeholder="t('message.dateCenter.modeling.placeholders.inputFieldName')" />
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="字段节点名称" prop="name">
|
|
|
- <el-input v-model="ruleForm.name" placeholder="请输入字段节点名称" />
|
|
|
+ <el-form-item :label="t('message.dateCenter.modeling.labels.fieldTitle')" prop="name">
|
|
|
+ <el-input v-model="ruleForm.name" :placeholder="t('message.dateCenter.modeling.placeholders.inputFieldTitle')" />
|
|
|
</el-form-item>
|
|
|
|
|
|
- <el-form-item label="数据类型" prop="dataType">
|
|
|
- <el-select v-model="ruleForm.dataType" filterable placeholder="请选择数据类型">
|
|
|
+ <el-form-item :label="t('message.dateCenter.modeling.labels.dataType')" prop="dataType">
|
|
|
+ <el-select v-model="ruleForm.dataType" filterable :placeholder="t('message.dateCenter.modeling.placeholders.select')">
|
|
|
<el-option v-for="item in tabData" :key="item.value" :label="item.label" :value="item.value" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
|
|
|
- <el-form-item label="取值方式" prop="method" v-if="ruleForm.from == 2 && (ruleForm.dataType=='int' || ruleForm.dataType=='bigint' || ruleForm.dataType=='float' || ruleForm.dataType=='double')">
|
|
|
- <el-select v-model="ruleForm.method" placeholder="请选择数据类型">
|
|
|
+ <el-form-item :label="t('message.dateCenter.modeling.labels.method')" prop="method" v-if="ruleForm.from == 2 && (ruleForm.dataType=='int' || ruleForm.dataType=='bigint' || ruleForm.dataType=='float' || ruleForm.dataType=='double')">
|
|
|
+ <el-select v-model="ruleForm.method" :placeholder="t('message.dateCenter.modeling.placeholders.select')">
|
|
|
<el-option v-for="item in methodData" :key="item.value" :label="item.label" :value="item.value" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
|
|
|
|
|
|
- <el-form-item label="默认值" prop="default" v-if="ruleForm.from == 1">
|
|
|
- <el-input v-model="ruleForm.default" placeholder="请输入取值项" />
|
|
|
+ <el-form-item :label="t('message.dateCenter.modeling.labels.defaultValue')" prop="default" v-if="ruleForm.from == 1">
|
|
|
+ <el-input v-model="ruleForm.default" :placeholder="t('message.dateCenter.modeling.placeholders.input')" />
|
|
|
</el-form-item>
|
|
|
|
|
|
- <el-form-item label="是否主键" prop="isPk">
|
|
|
+ <el-form-item :label="t('message.dateCenter.modeling.labels.isPk')" prop="isPk">
|
|
|
<el-radio-group v-model="ruleForm.isPk">
|
|
|
- <el-radio :label="0">否</el-radio>
|
|
|
- <el-radio :label="1">是</el-radio>
|
|
|
+ <el-radio :label="0">{{ t('message.dateCenter.options.no') }}</el-radio>
|
|
|
+ <el-radio :label="1">{{ t('message.dateCenter.options.yes') }}</el-radio>
|
|
|
</el-radio-group>
|
|
|
</el-form-item>
|
|
|
|
|
|
- <el-form-item label="是否排序" prop="isSorting">
|
|
|
+ <el-form-item :label="t('message.dateCenter.modeling.labels.isSorting')" prop="isSorting">
|
|
|
<el-radio-group v-model="ruleForm.isSorting">
|
|
|
- <el-radio :label="0">否</el-radio>
|
|
|
- <el-radio :label="1">是</el-radio>
|
|
|
+ <el-radio :label="0">{{ t('message.dateCenter.options.no') }}</el-radio>
|
|
|
+ <el-radio :label="1">{{ t('message.dateCenter.options.yes') }}</el-radio>
|
|
|
</el-radio-group>
|
|
|
</el-form-item>
|
|
|
|
|
|
|
|
|
- <el-form-item label="排序方式" prop="isDesc">
|
|
|
+ <el-form-item :label="t('message.dateCenter.modeling.labels.sortOrder')" prop="isDesc">
|
|
|
<el-radio-group v-model="ruleForm.isDesc">
|
|
|
- <el-radio :label="0">倒序</el-radio>
|
|
|
- <el-radio :label="1">正序</el-radio>
|
|
|
+ <el-radio :label="0">{{ t('message.dateCenter.modeling.labels.orderDesc') }}</el-radio>
|
|
|
+ <el-radio :label="1">{{ t('message.dateCenter.modeling.labels.orderAsc') }}</el-radio>
|
|
|
</el-radio-group>
|
|
|
</el-form-item>
|
|
|
|
|
|
- <el-form-item label="备注说明" prop="desc">
|
|
|
- <el-input v-model="ruleForm.desc" type="textarea" placeholder="请输入内容"></el-input>
|
|
|
+
|
|
|
+ <el-form-item :label="t('message.dateCenter.modeling.labels.remark')" prop="desc">
|
|
|
+ <el-input v-model="ruleForm.desc" type="textarea" :placeholder="t('message.dateCenter.modeling.placeholders.input')"></el-input>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
<template #footer>
|
|
|
<span class="dialog-footer">
|
|
|
- <el-button @click="onCancel">取 消</el-button>
|
|
|
- <el-button type="primary" @click="onSubmit">{{ ruleForm.id !== 0 ? '修 改' : '添 加' }}</el-button>
|
|
|
+ <el-button @click="onCancel">{{ t('message.dateCenter.modeling.actions.cancel') }}</el-button>
|
|
|
+ <el-button type="primary" @click="onSubmit">{{ t('message.dateCenter.modeling.actions.confirm') }}</el-button>
|
|
|
</span>
|
|
|
</template>
|
|
|
</el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
-wa1
|
|
|
<script lang="ts">
|
|
|
import { reactive, toRefs, defineComponent, ref, unref } from 'vue';
|
|
|
import api from '/@/api/datahub';
|
|
|
import { ElMessage } from 'element-plus';
|
|
|
-import { Delete, Minus, Right } from '@element-plus/icons-vue';
|
|
|
+import { useI18n } from 'vue-i18n';
|
|
|
+import type { FormInstance } from 'element-plus';
|
|
|
|
|
|
interface RuleFormState {
|
|
|
id: number;
|
|
@@ -114,64 +115,37 @@ interface RuleFormState {
|
|
|
interface DicState {
|
|
|
isShowDialog: boolean;
|
|
|
ruleForm: RuleFormState;
|
|
|
- rules: {};
|
|
|
+ rules: Record<string, any>;
|
|
|
+ methodData: Array<{ label: string; value: string }>;
|
|
|
+ tabData: Array<{ label: string; value: string }>;
|
|
|
+ sourceData: Array<any>;
|
|
|
+ nodeData: Array<any>;
|
|
|
}
|
|
|
|
|
|
export default defineComponent({
|
|
|
name: 'Edit',
|
|
|
- components: { Delete, Minus, Right },
|
|
|
+ components: { },
|
|
|
|
|
|
setup(prop, { emit }) {
|
|
|
- const formRef = ref<HTMLElement | null>(null);
|
|
|
+ const formRef = ref<FormInstance | null>(null);
|
|
|
+ const { t } = useI18n();
|
|
|
const state = reactive<DicState>({
|
|
|
isShowDialog: false,
|
|
|
methodData: [
|
|
|
- {
|
|
|
- label: '默认',
|
|
|
- value: '',
|
|
|
- }, {
|
|
|
- label: 'max',
|
|
|
- value: 'max',
|
|
|
- }, {
|
|
|
- label: 'min',
|
|
|
- value: 'min',
|
|
|
- }, {
|
|
|
- label: 'avg',
|
|
|
- value: 'avg',
|
|
|
- }, {
|
|
|
- label: 'sum',
|
|
|
- value: 'sum',
|
|
|
- }
|
|
|
+ { label: t('message.dateCenter.modeling.methods.default'), value: '' },
|
|
|
+ { label: t('message.dateCenter.modeling.methods.max'), value: 'max' },
|
|
|
+ { label: t('message.dateCenter.modeling.methods.min'), value: 'min' },
|
|
|
+ { label: t('message.dateCenter.modeling.methods.avg'), value: 'avg' },
|
|
|
+ { label: t('message.dateCenter.modeling.methods.sum'), value: 'sum' },
|
|
|
],
|
|
|
tabData: [
|
|
|
- {
|
|
|
- label: 'int',
|
|
|
- value: 'int',
|
|
|
- },
|
|
|
- {
|
|
|
- label: 'long',
|
|
|
- value: 'long',
|
|
|
- },
|
|
|
- {
|
|
|
- label: 'float',
|
|
|
- value: 'float',
|
|
|
- },
|
|
|
- {
|
|
|
- label: 'double',
|
|
|
- value: 'double',
|
|
|
- },
|
|
|
- {
|
|
|
- label: 'string',
|
|
|
- value: 'string',
|
|
|
- },
|
|
|
- {
|
|
|
- label: 'boolean',
|
|
|
- value: 'boolean',
|
|
|
- },
|
|
|
- {
|
|
|
- label: 'date',
|
|
|
- value: 'date',
|
|
|
- },
|
|
|
+ { label: t('message.dateCenter.modeling.types.int'), value: 'int' },
|
|
|
+ { label: t('message.dateCenter.modeling.types.long'), value: 'long' },
|
|
|
+ { label: t('message.dateCenter.modeling.types.float'), value: 'float' },
|
|
|
+ { label: t('message.dateCenter.modeling.types.double'), value: 'double' },
|
|
|
+ { label: t('message.dateCenter.modeling.types.string'), value: 'string' },
|
|
|
+ { label: t('message.dateCenter.modeling.types.boolean'), value: 'boolean' },
|
|
|
+ { label: t('message.dateCenter.modeling.types.date'), value: 'date' },
|
|
|
],
|
|
|
|
|
|
sourceData: [],
|
|
@@ -191,31 +165,27 @@ export default defineComponent({
|
|
|
isPk: 0,
|
|
|
default: '',
|
|
|
desc: '',
|
|
|
+ status: 0,
|
|
|
},
|
|
|
rules: {
|
|
|
- key: [{ required: true, message: '字段节点标识不能为空', trigger: 'blur' }],
|
|
|
- name: [{ required: true, message: '字段节点名称不能为空', trigger: 'blur' }],
|
|
|
- dataType: [{ required: true, message: '数据类型不能为空', trigger: 'blur' }],
|
|
|
- value: [{ required: true, message: '字段节点取值项不能为空', trigger: 'blur' }],
|
|
|
- isSorting: [{ required: true, message: '请选择是否参与排序', trigger: 'blur' }],
|
|
|
- isDesc: [{ required: true, message: '请选择排序方式', trigger: 'blur' }],
|
|
|
+ key: [{ required: true, message: t('message.dateCenter.modeling.messages.fieldRequired', { field: t('message.dateCenter.modeling.labels.fieldName') }), trigger: 'blur' }],
|
|
|
+ name: [{ required: true, message: t('message.dateCenter.modeling.messages.fieldRequired', { field: t('message.dateCenter.modeling.labels.fieldTitle') }), trigger: 'blur' }],
|
|
|
+ dataType: [{ required: true, message: t('message.dateCenter.modeling.messages.fieldRequired', { field: t('message.dateCenter.modeling.labels.dataType') }), trigger: 'blur' }],
|
|
|
+ value: [{ required: true, message: t('message.dateCenter.modeling.messages.fieldRequired', { field: t('message.dateCenter.modeling.labels.defaultValue') }), trigger: 'blur' }],
|
|
|
+ isSorting: [{ required: true, message: t('message.dateCenter.modeling.messages.fieldRequired', { field: t('message.dateCenter.modeling.labels.isSorting') }), trigger: 'blur' }],
|
|
|
+ isDesc: [{ required: true, message: t('message.dateCenter.modeling.messages.fieldRequired', { field: t('message.dateCenter.modeling.labels.sortOrder') }), trigger: 'blur' }],
|
|
|
},
|
|
|
});
|
|
|
|
|
|
// 打开弹窗
|
|
|
- const openDialog = (row: RuleFormState | null) => {
|
|
|
+ const openDialog = (payload: Partial<RuleFormState> = {}) => {
|
|
|
resetForm();
|
|
|
-
|
|
|
- if (row?.id) {
|
|
|
- state.ruleForm = row;
|
|
|
+ // merge payload safely
|
|
|
+ state.ruleForm = { ...state.ruleForm, ...payload } as RuleFormState;
|
|
|
+ if (payload.sourceId) {
|
|
|
+ getNodeList(payload.sourceId);
|
|
|
}
|
|
|
-
|
|
|
- if (row.sourceId) {
|
|
|
- getNodeList(row.sourceId);
|
|
|
- }
|
|
|
- state.ruleForm = row;
|
|
|
state.isShowDialog = true;
|
|
|
-
|
|
|
getSouData();
|
|
|
};
|
|
|
|
|
@@ -229,7 +199,7 @@ export default defineComponent({
|
|
|
});
|
|
|
};
|
|
|
|
|
|
- const getNodeList = (event) => {
|
|
|
+ const getNodeList = (event: number) => {
|
|
|
api.node
|
|
|
.getList({
|
|
|
pageNum: 1,
|
|
@@ -240,8 +210,8 @@ export default defineComponent({
|
|
|
state.nodeData = res.list;
|
|
|
});
|
|
|
};
|
|
|
- const setNode = (event) => {
|
|
|
- state.nodeData.forEach((item, index) => {
|
|
|
+ const setNode = (event: number) => {
|
|
|
+ state.nodeData.forEach((item: any) => {
|
|
|
if (item.nodeId == event) {
|
|
|
state.ruleForm.name = item.name;
|
|
|
state.ruleForm.key = item.key;
|
|
@@ -264,6 +234,7 @@ export default defineComponent({
|
|
|
isPk: 0,
|
|
|
default: '',
|
|
|
desc: '',
|
|
|
+ status: 0,
|
|
|
};
|
|
|
};
|
|
|
// 关闭弹窗
|
|
@@ -283,7 +254,7 @@ export default defineComponent({
|
|
|
if (state.ruleForm.id !== 0) {
|
|
|
//修改
|
|
|
api.tnode.edit(state.ruleForm).then(() => {
|
|
|
- ElMessage.success('字段节点类型修改成功');
|
|
|
+ ElMessage.success(t('message.dateCenter.modeling.messages.operateSuccess'));
|
|
|
closeDialog(); // 关闭弹窗
|
|
|
emit('typeList');
|
|
|
});
|
|
@@ -291,7 +262,7 @@ export default defineComponent({
|
|
|
//添加
|
|
|
|
|
|
api.tnode.add(state.ruleForm).then(() => {
|
|
|
- ElMessage.success('字段节点类型添加成功');
|
|
|
+ ElMessage.success(t('message.dateCenter.modeling.messages.operateSuccess'));
|
|
|
closeDialog(); // 关闭弹窗
|
|
|
emit('typeList');
|
|
|
});
|
|
@@ -309,9 +280,9 @@ export default defineComponent({
|
|
|
onCancel,
|
|
|
onSubmit,
|
|
|
formRef,
|
|
|
+ t,
|
|
|
...toRefs(state),
|
|
|
};
|
|
|
},
|
|
|
});
|
|
|
</script>
|
|
|
-
|