|
@@ -2,27 +2,40 @@
|
|
|
<div class="page">
|
|
|
<el-card shadow="never">
|
|
|
<el-form inline>
|
|
|
- <el-form-item label="名称">
|
|
|
- <el-input v-model="searchParams.keyWord" placeholder="请输入关键字" clearable @keyup.enter="handleSearch" />
|
|
|
+ <!-- 名称 -->
|
|
|
+ <el-form-item :label="$t('message.formI18nLabel.name1')">
|
|
|
+ <!-- 请输入关键字 -->
|
|
|
+ <el-input v-model="searchParams.keyWord" :placeholder="$t('message.ruleEngine.keywordPlaceholder')" clearable @keyup.enter="handleSearch" />
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="类型">
|
|
|
- <el-select v-model="searchParams.types" placeholder="请选择类型" clearable @clear="() => (searchParams.types = -1)" @change="handleSearch">
|
|
|
- <el-option label="主链" :value="1" />
|
|
|
- <el-option label="子链" :value="2" />
|
|
|
- <el-option label="全部" :value="-1" />
|
|
|
+ <!-- 类型 -->
|
|
|
+ <el-form-item :label="$t('message.formI18nLabel.type')">
|
|
|
+ <!-- 请选择类型 -->
|
|
|
+ <el-select v-model="searchParams.types" :placeholder="$t('message.ruleEngine.typePlaceholder')" clearable @clear="() => (searchParams.types = -1)" @change="handleSearch">
|
|
|
+ <!-- 主链 -->
|
|
|
+ <el-option :label="$t('message.ruleEngine.mainChain')" :value="1" />
|
|
|
+ <!-- 子链 -->
|
|
|
+ <el-option :label="$t('message.ruleEngine.subChain')" :value="2" />
|
|
|
+ <!-- 全部 -->
|
|
|
+ <el-option :label="$t('message.ruleEngine.all')" :value="-1" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="状态">
|
|
|
- <el-select v-model="searchParams.status" placeholder="请选择状态" clearable @clear="() => (searchParams.status = -1)" @change="handleSearch">
|
|
|
- <el-option label="已启动" :value="1" />
|
|
|
- <el-option label="已停止" :value="0" />
|
|
|
- <el-option label="全部" :value="-1" />
|
|
|
+ <!-- 状态 -->
|
|
|
+ <el-form-item :label="$t('message.formI18nLabel.status')">
|
|
|
+ <!-- 请选择状态 -->
|
|
|
+ <el-select v-model="searchParams.status" :placeholder="$t('message.ruleEngine.statusPlaceholder')" clearable @clear="() => (searchParams.status = -1)" @change="handleSearch">
|
|
|
+ <!-- 已启动 -->
|
|
|
+ <el-option :label="$t('message.ruleEngine.started')" :value="1" />
|
|
|
+ <!-- 已停止 -->
|
|
|
+ <el-option :label="$t('message.ruleEngine.stopped')" :value="0" />
|
|
|
+ <!-- 全部 -->
|
|
|
+ <el-option :label="$t('message.ruleEngine.all')" :value="-1" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
|
+ <!-- 查询 -->
|
|
|
<el-button type="primary" @click="handleSearch">
|
|
|
<el-icon><ele-Search /></el-icon>
|
|
|
- 搜索
|
|
|
+ {{$t('message.formI18nButton.query')}}
|
|
|
</el-button>
|
|
|
<!-- <el-button @click="handleReset">
|
|
|
<el-icon><ele-Refresh /></el-icon>
|
|
@@ -30,38 +43,55 @@
|
|
|
</el-button> -->
|
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
|
+ <!-- 新增规则编排 -->
|
|
|
<el-button type="primary" v-auth="'add'" @click="addOrEdit()">
|
|
|
<el-icon>
|
|
|
<ele-FolderAdd />
|
|
|
</el-icon>
|
|
|
- 新增规则编排
|
|
|
+ {{ $t('message.ruleEngine.addRule') }}
|
|
|
</el-button>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
<el-table :data="tableData" style="width: 100%" v-loading="loading">
|
|
|
- <el-table-column type="index" label="序号" width="80" align="center" />
|
|
|
- <el-table-column prop="types" label="类型" width="70" align="center">
|
|
|
+ <!-- 序号 -->
|
|
|
+ <el-table-column type="index" :label="$t('message.tableI18nColumn.index')" width="80" align="center" />
|
|
|
+ <!-- 类型 -->
|
|
|
+ <el-table-column prop="types" :label="$t('message.formI18nLabel.type')" width="70" align="center">
|
|
|
<template #default="scope">
|
|
|
- <el-tag size="small" v-if="scope.row.types == 1">主链</el-tag>
|
|
|
- <el-tag type="success" size="small" v-else>子链</el-tag>
|
|
|
+ <!-- 主链 -->
|
|
|
+ <el-tag size="small" v-if="scope.row.types == 1">{{$t('message.ruleEngine.mainChain')}}</el-tag>
|
|
|
+ <!-- 子链 -->
|
|
|
+ <el-tag type="success" size="small" v-else>{{$t('message.ruleEngine.subChain')}}</el-tag>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="name" label="名称" show-overflow-tooltip></el-table-column>
|
|
|
- <el-table-column prop="expound" label="说明" show-overflow-tooltip></el-table-column>
|
|
|
- <el-table-column prop="createdAt" label="创建时间" min-width="100" align="center"></el-table-column>
|
|
|
- <el-table-column prop="status" label="状态" width="100" align="center">
|
|
|
+ <!-- 名称 -->
|
|
|
+ <el-table-column prop="name" :label="$t('message.formI18nLabel.name1')" show-overflow-tooltip></el-table-column>
|
|
|
+ <!-- 描述 -->
|
|
|
+ <el-table-column prop="expound" :label="$t('message.formI18nLabel.desc')" show-overflow-tooltip></el-table-column>
|
|
|
+ <!-- 创建时间 -->
|
|
|
+ <el-table-column prop="createdAt" :label="$t('message.tableI18nColumn.createdAt')" min-width="100" align="center"></el-table-column>
|
|
|
+ <!-- 状态 -->
|
|
|
+ <el-table-column prop="status" :label="$t('message.formI18nLabel.status')" width="100" align="center">
|
|
|
<template #default="scope">
|
|
|
- <el-tag type="success" size="small" v-if="scope.row.status == 1">已启动</el-tag>
|
|
|
- <el-tag type="info" size="small" v-else>已停止</el-tag>
|
|
|
+ <!-- 已启动 -->
|
|
|
+ <el-tag type="success" size="small" v-if="scope.row.status == 1">{{$t('message.ruleEngine.started')}}</el-tag>
|
|
|
+ <!-- 已停止 -->
|
|
|
+ <el-tag type="info" size="small" v-else>{{$t('message.ruleEngine.stopped')}}</el-tag>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="操作" width="200" align="center">
|
|
|
+ <!-- 操作 -->
|
|
|
+ <el-table-column :label="$t('message.tableI18nColumn.operation')" width="200" align="center">
|
|
|
<template #default="scope">
|
|
|
- <el-button size="small" text type="info" v-auth="'startOrStop'" v-if="scope.row.status" @click="setStatus(scope.row, 0)">停止</el-button>
|
|
|
- <el-button size="small" text type="primary" v-auth="'startOrStop'" v-else @click="setStatus(scope.row, 1)">启动</el-button>
|
|
|
- <el-button size="small" text type="primary" v-auth="'edit'" @click="addOrEdit(scope.row)">编辑</el-button>
|
|
|
- <el-button size="small" text type="warning" @click="edit(scope.row)">规则编辑</el-button>
|
|
|
- <el-button size="small" text type="info" v-auth="'del'" @click="onDel(scope.row)">删除</el-button>
|
|
|
+ <!-- 停止 -->
|
|
|
+ <el-button size="small" text type="info" v-auth="'startOrStop'" v-if="scope.row.status" @click="setStatus(scope.row, 0)">{{ $t('message.ruleEngine.stop') }}</el-button>
|
|
|
+ <!-- 启动 -->
|
|
|
+ <el-button size="small" text type="primary" v-auth="'startOrStop'" v-else @click="setStatus(scope.row, 1)">{{ $t('message.ruleEngine.start') }}</el-button>
|
|
|
+ <!-- 编辑 -->
|
|
|
+ <el-button size="small" text type="primary" v-auth="'edit'" @click="addOrEdit(scope.row)">{{ $t('message.tableI18nAction.edit') }}</el-button>
|
|
|
+ <!-- 规则编辑 -->
|
|
|
+ <el-button size="small" text type="warning" @click="edit(scope.row)">{{ $t('message.ruleEngine.ruleEdit') }}</el-button>
|
|
|
+ <!-- 删除 -->
|
|
|
+ <el-button size="small" text type="info" v-auth="'del'" @click="onDel(scope.row)">{{ $t('message.tableI18nAction.delete') }}</el-button>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
@@ -72,7 +102,7 @@
|
|
|
</template>
|
|
|
|
|
|
<script lang="ts" setup>
|
|
|
-import { ref, reactive, watch } from "vue";
|
|
|
+import { ref, reactive, watch, computed } from "vue";
|
|
|
import api from "/@/api/rule";
|
|
|
import { ElMessageBox, ElMessage } from "element-plus";
|
|
|
import { useSearch } from "/@/hooks/useCommon";
|
|
@@ -80,7 +110,11 @@ import EditForm from "./edit.vue";
|
|
|
import axios from "axios";
|
|
|
import { getToken } from "/@/utils/auth";
|
|
|
import { getRuleServerOrigin } from "/@/utils/origin";
|
|
|
+import { useI18n } from 'vue-i18n';
|
|
|
+// 国际化
|
|
|
+const { locale, t } = useI18n();
|
|
|
|
|
|
+const currentLocale = computed(() => locale.value);
|
|
|
const editFormRef = ref();
|
|
|
|
|
|
// 规则引擎模式 node-red、 sagoo-rule
|
|
@@ -157,15 +191,18 @@ const setStatus = async (row: any, status: number) => {
|
|
|
api
|
|
|
.setStatus(row.id, status)
|
|
|
.then(() => {
|
|
|
- ElMessage.success("操作成功");
|
|
|
+ // 操作成功
|
|
|
+ ElMessage.success(t('message.tableI18nConfirm.handleSuccess'));
|
|
|
getList();
|
|
|
})
|
|
|
.catch(() => {
|
|
|
- ElMessage.error("操作失败");
|
|
|
+ // 操作失败
|
|
|
+ ElMessage.error(t('message.tableI18nConfirm.handleFailed'));
|
|
|
});
|
|
|
})
|
|
|
.catch(() => {
|
|
|
- ElMessage.error("操作失败");
|
|
|
+ // 操作失败
|
|
|
+ ElMessage.error(t('message.tableI18nConfirm.handleFailed'));
|
|
|
});
|
|
|
} else {
|
|
|
// 找到所有规则
|
|
@@ -174,7 +211,8 @@ const setStatus = async (row: any, status: number) => {
|
|
|
const flow = flows.find((item: any) => item.id === row.flowId);
|
|
|
|
|
|
if (!flow) {
|
|
|
- ElMessage.error("规则不存在");
|
|
|
+ // 规则不存在
|
|
|
+ ElMessage.error(t('message.ruleEngine.ruleNotExist'));
|
|
|
return;
|
|
|
}
|
|
|
|
|
@@ -185,11 +223,13 @@ const setStatus = async (row: any, status: number) => {
|
|
|
api
|
|
|
.setStatus(row.id, status)
|
|
|
.then(() => {
|
|
|
- ElMessage.success("操作成功");
|
|
|
+ // 操作成功
|
|
|
+ ElMessage.success(t('message.tableI18nConfirm.handleSuccess'));
|
|
|
getList();
|
|
|
})
|
|
|
.catch(() => {
|
|
|
- ElMessage.error("操作失败");
|
|
|
+ // 操作失败
|
|
|
+ ElMessage.error(t('message.tableI18nConfirm.handleFailed'));
|
|
|
});
|
|
|
}
|
|
|
};
|
|
@@ -207,14 +247,18 @@ const edit = async (row: any) => {
|
|
|
};
|
|
|
|
|
|
const onDel = (row: any) => {
|
|
|
- ElMessageBox.confirm(`此操作将删除:“${row.name}”,是否继续?`, "提示", {
|
|
|
- confirmButtonText: "确认",
|
|
|
- cancelButtonText: "取消",
|
|
|
- type: "warning",
|
|
|
+ // 此操作将删除:“${row.name}”,是否继续?
|
|
|
+ ElMessageBox.confirm(
|
|
|
+ t('message.ruleEngine.deleteRuleMessage', { name: row.name }),
|
|
|
+ t('message.tableI18nConfirm.deleteTitle'), {
|
|
|
+ confirmButtonText: t('message.tableI18nConfirm.confirmText'),
|
|
|
+ cancelButtonText: t('message.tableI18nConfirm.cancelText'),
|
|
|
+ type: 'warning',
|
|
|
}).then(async () => {
|
|
|
if (model == "sagoo-rule") {
|
|
|
await axios.delete(getRuleServerOrigin("/api/v1/rules/" + row.flowId), { headers }).catch(() => {
|
|
|
- ElMessage.error("规则不存在");
|
|
|
+ // 规则不存在
|
|
|
+ ElMessage.error(t('message.ruleEngine.ruleNotExist'));
|
|
|
});
|
|
|
} else if (model == "node-red") {
|
|
|
// 找到所有规则
|
|
@@ -241,7 +285,8 @@ const onDel = (row: any) => {
|
|
|
}
|
|
|
|
|
|
await api.del([row.id as string]);
|
|
|
- ElMessage.success("删除成功");
|
|
|
+ // 删除成功
|
|
|
+ ElMessage.success(t('message.tableI18nConfirm.deleteSuccess'));
|
|
|
getList();
|
|
|
});
|
|
|
};
|