Explorar o código

流程模型列表页面 国际化

kagg886 hai 1 mes
pai
achega
49ab58a919

+ 11 - 4
src/i18n/index.ts

@@ -50,6 +50,10 @@ import pagesFlowFormZhcn from './pages/flow/flowForm/zh-cn';
 import pagesFlowFormEn from './pages/flow/flowForm/en';
 import pagesFlowFormZhtw from './pages/flow/flowForm/zh-tw';
 
+import pagesFlowModelZhcn from './pages/flow/flowModel/zh-cn'
+import pagesFlowModelEn from './pages/flow/flowModel/en'
+import pagesFlowModelZhtw from './pages/flow/flowModel/zh-tw'
+
 // 定义语言国际化内容
 /**
  * 说明:
@@ -69,7 +73,8 @@ const messages = {
 			projects: pagesProjectsZhcn,
 			property: pagesPropertyZhcn,
 			dateCenter: pagesDateCenterZhcn,
-			flowForm: pagesFlowFormZhcn
+			flowForm: pagesFlowFormZhcn,
+			flowModel: pagesFlowModelZhcn
 		}
 	},
 	[enLocale.name]: {
@@ -84,8 +89,9 @@ const messages = {
 			projects: pagesProjectsEn,
 			property: pagesPropertyEn,
 			dateCenter: pagesDateCenterEn,
-			flowForm: pagesFlowFormEn
-		},	
+			flowForm: pagesFlowFormEn,
+			flowModel: pagesFlowModelEn
+		},
 	},
 	[zhtwLocale.name]: {
 		...zhtwLocale,
@@ -99,7 +105,8 @@ const messages = {
 			projects: pagesProjectsZhtw,
 			property: pagesPropertyZhtw,
 			dateCenter: pagesDateCenterZhtw,
-			flowForm: pagesFlowFormZhtw
+			flowForm: pagesFlowFormZhtw,
+			flowModel: pagesFlowModelZhtw
 		},
 	},
 };

+ 82 - 0
src/i18n/pages/flow/flowModel/en.ts

@@ -0,0 +1,82 @@
+export default {
+  // Search & Form
+  flowName: 'Flow Name',
+  formType: 'Form Type',
+  flowFormCategory: 'Flow Form Category',
+  businessFormCategory: 'Business Form Category',
+  flowStatus: 'Flow Status',
+  remark: 'Flow Description',
+  sort: 'Sort',
+
+  // Placeholders
+  enterFlowName: 'Please enter flow name',
+  selectFormType: 'Please select form type',
+  selectFlowFormCategory: 'Please select flow form category',
+  selectBusinessFormCategory: 'Please select business form category',
+  enterRemark: 'Please enter flow description',
+  enterSort: 'Please enter sort',
+  selectFlowStatus: 'Please select flow status',
+
+  // Common
+  primaryKey: 'Primary Key',
+  createTime: 'Create Time',
+  creator: 'Creator',
+  operation: 'Operation',
+  search: 'Search',
+  reset: 'Reset',
+  expandSearch: 'Expand Search',
+  collapseSearch: 'Collapse Search',
+  add: 'Add',
+  edit: 'Edit',
+  delete: 'Delete',
+  detail: 'Detail',
+  deployDesign: 'Flow Design',
+  import: 'Import Excel',
+  export: 'Export Excel',
+  running: 'Flow Running',
+  tip: 'Tip',
+  confirm: 'Confirm',
+  cancel: 'Cancel',
+
+  // Validation
+  idRequired: 'Primary key is required',
+  nameRequired: 'Flow name is required',
+  statusRequired: 'Flow status is required',
+
+  // Success Messages
+  addSuccess: 'Add successful',
+  editSuccess: 'Edit successful',
+  deleteSuccess: 'Delete successful',
+  saveSuccess: 'Save successful',
+  stopSuccess: 'Stop successful',
+
+  // Errors / Prompts
+  paramError: 'Parameter error',
+  exportFailed: 'Export failed',
+  confirmDeleteSelected: 'Are you sure you want to delete the selected data?',
+  confirmDeleteSingle: 'This operation will permanently delete the data, do you want to continue?',
+  pleaseSelectDeleteData: 'Please select the data to delete.',
+
+  // Detail & Tabs
+  modelDetailTitle: 'Flow Model Detail',
+  tabFormDetail: 'Form Detail',
+  tabFlowChart: 'Flow Chart',
+
+  // Designer
+  setNodeProps: 'Set Node Properties',
+  data: 'Data',
+  miniMap: 'MiniMap',
+
+  // Monitor
+  title: 'Title',
+  enterTitle: 'Please enter title',
+  stop: 'Stop',
+  runId: 'Run ID',
+  flowTypeCol: 'Flow Type',
+  businessName: 'Business Name',
+  businessId: 'Business ID',
+  flowExecTime: 'Flow Execute Time',
+  proxyApprove: 'Proxy',
+  confirmStop: 'Do you want to terminate the process? [Irreversible]',
+  pleaseSelectStopData: 'Please select the process to terminate.'
+}

+ 82 - 0
src/i18n/pages/flow/flowModel/zh-cn.ts

@@ -0,0 +1,82 @@
+export default {
+  // 搜索与表单
+  flowName: '流程名称',
+  formType: '表单类型',
+  flowFormCategory: '流程表单类别',
+  businessFormCategory: '业务表单类别',
+  flowStatus: '流程状态',
+  remark: '流程描述',
+  sort: '排序',
+
+  // 占位符
+  enterFlowName: '请输入流程名称',
+  selectFormType: '请选择表单类型',
+  selectFlowFormCategory: '请选择流程表单类别',
+  selectBusinessFormCategory: '请选择业务表单类别',
+  enterRemark: '请输入流程描述',
+  enterSort: '请输入排序',
+  selectFlowStatus: '请选择流程状态',
+
+  // 公共
+  primaryKey: '主键',
+  createTime: '创建时间',
+  creator: '创建人',
+  operation: '操作',
+  search: '搜索',
+  reset: '重置',
+  expandSearch: '展开搜索',
+  collapseSearch: '收起搜索',
+  add: '新增',
+  edit: '修改',
+  delete: '删除',
+  detail: '详情',
+  deployDesign: '流程设计',
+  import: '导入Excel',
+  export: '导出Excel',
+  running: '流程运行中',
+  tip: '提示',
+  confirm: '确认',
+  cancel: '取消',
+
+  // 校验
+  idRequired: '主键不能为空',
+  nameRequired: '流程名称不能为空',
+  statusRequired: '流程状态不能为空',
+
+  // 成功消息
+  addSuccess: '添加成功',
+  editSuccess: '修改成功',
+  deleteSuccess: '删除成功',
+  saveSuccess: '保存成功',
+  stopSuccess: '终止成功',
+
+  // 错误/提示
+  paramError: '参数错误',
+  exportFailed: '导出失败',
+  confirmDeleteSelected: '你确定要删除所选数据?',
+  confirmDeleteSingle: '此操作将永久删除数据,是否继续?',
+  pleaseSelectDeleteData: '请选择要删除的数据。',
+
+  // 详情与标签
+  modelDetailTitle: '流程模型详情',
+  tabFormDetail: '表单详情',
+  tabFlowChart: '流程图',
+
+  // 设计器
+  setNodeProps: '设置节点属性',
+  data: '数据',
+  miniMap: 'MiniMap',
+
+  // 监控
+  title: '标题',
+  enterTitle: '请输入标题',
+  stop: '终止',
+  runId: '运行ID',
+  flowTypeCol: '流程类型',
+  businessName: '业务名称',
+  businessId: '业务ID',
+  flowExecTime: '流程执行时间',
+  proxyApprove: '代审',
+  confirmStop: '是否要终止流程【此操作不可恢复】?',
+  pleaseSelectStopData: '请选择要终止的流程。'
+}

+ 82 - 0
src/i18n/pages/flow/flowModel/zh-tw.ts

@@ -0,0 +1,82 @@
+export default {
+  // 搜尋與表單
+  flowName: '流程名稱',
+  formType: '表單類型',
+  flowFormCategory: '流程表單類別',
+  businessFormCategory: '業務表單類別',
+  flowStatus: '流程狀態',
+  remark: '流程描述',
+  sort: '排序',
+
+  // 佔位符
+  enterFlowName: '請輸入流程名稱',
+  selectFormType: '請選擇表單類型',
+  selectFlowFormCategory: '請選擇流程表單類別',
+  selectBusinessFormCategory: '請選擇業務表單類別',
+  enterRemark: '請輸入流程描述',
+  enterSort: '請輸入排序',
+  selectFlowStatus: '請選擇流程狀態',
+
+  // 公共
+  primaryKey: '主鍵',
+  createTime: '創建時間',
+  creator: '創建人',
+  operation: '操作',
+  search: '搜尋',
+  reset: '重置',
+  expandSearch: '展開搜尋',
+  collapseSearch: '收起搜尋',
+  add: '新增',
+  edit: '修改',
+  delete: '刪除',
+  detail: '詳情',
+  deployDesign: '流程設計',
+  import: '匯入Excel',
+  export: '匯出Excel',
+  running: '流程運行中',
+  tip: '提示',
+  confirm: '確認',
+  cancel: '取消',
+
+  // 校驗
+  idRequired: '主鍵不能為空',
+  nameRequired: '流程名稱不能為空',
+  statusRequired: '流程狀態不能為空',
+
+  // 成功消息
+  addSuccess: '新增成功',
+  editSuccess: '修改成功',
+  deleteSuccess: '刪除成功',
+  saveSuccess: '儲存成功',
+  stopSuccess: '終止成功',
+
+  // 錯誤/提示
+  paramError: '參數錯誤',
+  exportFailed: '匯出失敗',
+  confirmDeleteSelected: '你確定要刪除所選數據?',
+  confirmDeleteSingle: '此操作將永久刪除數據,是否繼續?',
+  pleaseSelectDeleteData: '請選擇要刪除的數據。',
+
+  // 詳情與標籤
+  modelDetailTitle: '流程模型詳情',
+  tabFormDetail: '表單詳情',
+  tabFlowChart: '流程圖',
+
+  // 設計器
+  setNodeProps: '設置節點屬性',
+  data: '數據',
+  miniMap: 'MiniMap',
+
+  // 監控
+  title: '標題',
+  enterTitle: '請輸入標題',
+  stop: '終止',
+  runId: '運行ID',
+  flowTypeCol: '流程類型',
+  businessName: '業務名稱',
+  businessId: '業務ID',
+  flowExecTime: '流程執行時間',
+  proxyApprove: '代審',
+  confirmStop: '是否要終止流程【此操作不可恢復】?',
+  pleaseSelectStopData: '請選擇要終止的流程。'
+}

+ 8 - 6
src/views/flow/flowModel/list/component/design.vue

@@ -5,11 +5,11 @@
 		<!-- 画布 -->
 		<div class="app-content" ref="logicFlowContainerRef"></div>
 		<!-- 属性面板 -->
-		<el-drawer title="设置节点属性" v-model="dialogVisible" direction="rtl" size="900px" :before-close="closeDialog">
+		<el-drawer :title="t('message.flowModel.setNodeProps')" v-model="dialogVisible" direction="rtl" size="900px" :before-close="closeDialog">
 			<PropertyDialog v-if="dialogVisible" :nodeData="clickNode" :lf="lf as LogicFlow" @setPropertiesFinish="closeDialog"></PropertyDialog>
 		</el-drawer>
 		<!-- 数据查看面板 -->
-		<el-dialog title="数据" v-model="dataVisible" width="50%">
+		<el-dialog :title="t('message.flowModel.data')" v-model="dataVisible" width="50%">
 			<DataDialog :graphData="graphData"></DataDialog>
 		</el-dialog>
 	</div>
@@ -37,6 +37,7 @@ import PropertyDialog from '/@/components/gFlow/propertySetting/PropertyDialog.v
 import DataDialog from '/@/components/gFlow/DataDialog.vue'
 import { useRoute } from 'vue-router'
 import { ElMessage } from 'element-plus'
+import { useI18n } from 'vue-i18n'
 import { getNodeData, saveModeNode } from '/@/api/flow/flowModel'
 import {
 	FlowCheckRuleDept,
@@ -48,6 +49,7 @@ import {
 import GraphConfigData = LogicFlow.GraphConfigData
 
 const route = useRoute()
+const { t } = useI18n()
 const modelId = ref(0)
 const logicFlowContainerRef = ref()
 const lf = ref<LogicFlow>({} as LogicFlow)
@@ -66,7 +68,7 @@ onMounted(() => {
 	if (route.query.id) {
 		modelId.value = parseInt(route.query.id as string)
 	} else {
-		ElMessage.error('参数错误')
+		ElMessage.error(t('message.flowModel.paramError'))
 		return
 	}
 	lf.value = new LogicFlow({
@@ -77,7 +79,7 @@ onMounted(() => {
 			miniMap: {
 				isShowHeader: false,
 				isShowCloseIcon: true,
-				headerTitle: 'MiniMap',
+				headerTitle: t('message.flowModel.miniMap'),
 			},
 		},
 	})
@@ -212,9 +214,9 @@ const $_saveModel = () => {
 	}
 	saveModeNode(postData)
 		.then(() => {
-			ElMessage.success('保存成功')
+			ElMessage.success(t('message.flowModel.saveSuccess'))
 		})
-		.catch(() => ElMessage.error('导出失败'))
+		.catch(() => ElMessage.error(t('message.flowModel.exportFailed')))
 }
 const $_LfEvent = () => {
 	const logicFlow = lf.value as LogicFlow

+ 15 - 12
src/views/flow/flowModel/list/component/detail.vue

@@ -3,38 +3,38 @@
   <div class="flow-flowModel-detail">
     <el-drawer v-model="isShowDialog" size="80%" direction="ltr">
       <template #header>
-        <h4>流程模型详情</h4>
+        <h4>{{ t('message.flowModel.modelDetailTitle') }}</h4>
       </template>
       <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick" style="margin: 8px;">
-        <el-tab-pane label="表单详情" name="0">
+        <el-tab-pane :label="t('message.flowModel.tabFormDetail')" name="0">
           <el-form ref="formRef" :model="formData" label-width="100px">
             <el-row>
               <el-col :span="12">
-                <el-form-item label="主键">{{ formData.id }}</el-form-item>
+                <el-form-item :label="t('message.flowModel.primaryKey')">{{ formData.id }}</el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="流程名称">{{ formData.name }}</el-form-item>
+                <el-form-item :label="t('message.flowModel.flowName')">{{ formData.name }}</el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="表单类型">{{ proxy.getOptionValue(formData.flowType, flowTypeOptions,'value','label') }}</el-form-item>
+                <el-form-item :label="t('message.flowModel.formType')">{{ proxy.getOptionValue(formData.flowType, flowTypeOptions,'value','label') }}</el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="流程表单类别">{{ formData.linkedFlowFormCate?formData.linkedFlowFormCate.name:'' }}</el-form-item>
+                <el-form-item :label="t('message.flowModel.flowFormCategory')">{{ formData.linkedFlowFormCate?formData.linkedFlowFormCate.name:'' }}</el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="流程描述">{{ formData.remark }}</el-form-item>
+                <el-form-item :label="t('message.flowModel.remark')">{{ formData.remark }}</el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="业务表单类别">{{ proxy.getOptionValue(formData.flowBusinessCate, flowBusinessCateOptions,'value','label') }}</el-form-item>
+                <el-form-item :label="t('message.flowModel.businessFormCategory')">{{ proxy.getOptionValue(formData.flowBusinessCate, flowBusinessCateOptions,'value','label') }}</el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="流程状态">{{ proxy.getOptionValue(formData.status, statusOptions,'value','label') }}</el-form-item>
+                <el-form-item :label="t('message.flowModel.flowStatus')">{{ proxy.getOptionValue(formData.status, statusOptions,'value','label') }}</el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="创建时间">{{ proxy.parseTime(formData.createdAt, '{y}-{m}-{d} {h}:{i}:{s}') }}</el-form-item>
+                <el-form-item :label="t('message.flowModel.createTime')">{{ proxy.parseTime(formData.createdAt, '{y}-{m}-{d} {h}:{i}:{s}') }}</el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="创建人">{{ formData.createdBy }}</el-form-item>
+                <el-form-item :label="t('message.flowModel.creator')">{{ formData.createdBy }}</el-form-item>
               </el-col>
               <el-col :span="12">
                 <el-form-item label="修改人">{{ formData.updatedBy }}</el-form-item>
@@ -42,7 +42,7 @@
             </el-row>
           </el-form>
         </el-tab-pane>
-        <el-tab-pane label="流程图" name="1">
+        <el-tab-pane :label="t('message.flowModel.tabFlowChart')" name="1">
           <ShowFlowDesign ref="showFlowCheckRef" />
         </el-tab-pane>
       </el-tabs>
@@ -60,6 +60,7 @@
     FlowModelEditState
   } from "/@/views/flow/flowModel/list/component/model"
   import {TabsPaneContext} from "element-plus";
+	import { useI18n } from 'vue-i18n'
   export default defineComponent({
     name:"ApiV1FlowFlowModelDetail",
     components:{
@@ -92,6 +93,7 @@
         }
       }
       const {proxy} = <any>getCurrentInstance()
+      const { t } = useI18n()
       const formRef = ref<HTMLElement | null>(null);
       const menuRef = ref();
       const state = reactive<FlowModelEditState>({
@@ -183,6 +185,7 @@
           return props.flowFormCateOptions
         })
         return {
+          t,
           proxy,
           openDialog,
           closeDialog,

+ 23 - 20
src/views/flow/flowModel/list/component/edit.vue

@@ -3,13 +3,13 @@
     <!-- 添加或修改流程模型对话框 -->
     <el-dialog v-model="isShowDialog" width="800px" :close-on-click-modal="false" :destroy-on-close="true">
       <template #header>
-        <div v-drag="['.flow-flowModel-edit .el-dialog', '.flow-flowModel-edit .el-dialog__header']">{{(!formData.id || formData.id==0?'添加':'修改')+'流程模型'}}</div>
+        <div v-drag="['.flow-flowModel-edit .el-dialog', '.flow-flowModel-edit .el-dialog__header']">{{(!formData.id || formData.id==0?t('message.flowModel.add'):t('message.flowModel.edit'))+' '+t('message.flowModel.modelDetailTitle')}}</div>
       </template>
       <el-form ref="formRef" :model="formData" :rules="rules" label-width="120px">
-        <el-form-item label="流程名称" prop="name">
-          <el-input v-model="formData.name" placeholder="请输入流程名称" />
+        <el-form-item :label="t('message.flowModel.flowName')" prop="name">
+          <el-input v-model="formData.name" :placeholder="t('message.flowModel.enterFlowName')" />
         </el-form-item>
-        <el-form-item label="表单类型" prop="flowType">
+        <el-form-item :label="t('message.flowModel.formType')" prop="flowType">
           <el-radio-group v-model="formData.flowType">
 <!--            <el-radio-->
 <!--              v-for="dict in flowTypeOptions"-->
@@ -19,8 +19,8 @@
 						<el-radio v-for="(dict,index) in flowTypeOptions" :label="dict.value" :key="index">{{dict.label }}</el-radio>
           </el-radio-group>
         </el-form-item>
-        <el-form-item label="流程表单类别" prop="flowFormCate" v-if="formData.flowType=='1'">
-          <el-select v-model="formData.flowFormCate" placeholder="请选择流程表单类别"   >
+        <el-form-item :label="t('message.flowModel.flowFormCategory')" prop="flowFormCate" v-if="formData.flowType=='1'">
+          <el-select v-model="formData.flowFormCate" :placeholder="t('message.flowModel.selectFlowFormCategory')"   >
               <el-option
                   v-for="item in flowFormCateOptions"
                   :key="item.key"
@@ -29,8 +29,8 @@
               ></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="业务表单类别" prop="flowBusinessCate" v-if="formData.flowType=='2'">
-          <el-select v-model="formData.flowBusinessCate" placeholder="请选择业务表单类别" >
+        <el-form-item :label="t('message.flowModel.businessFormCategory')" prop="flowBusinessCate" v-if="formData.flowType=='2'">
+          <el-select v-model="formData.flowBusinessCate" :placeholder="t('message.flowModel.selectBusinessFormCategory')" >
             <el-option
                 v-for="dict in flowBusinessCateOptions"
                 :key="dict.value"
@@ -39,13 +39,13 @@
             ></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="流程描述" prop="remark">
-          <el-input v-model="formData.remark" type="textarea" placeholder="请输入流程描述" />
+        <el-form-item :label="t('message.flowModel.remark')" prop="remark">
+          <el-input v-model="formData.remark" type="textarea" :placeholder="t('message.flowModel.enterRemark')" />
         </el-form-item>
-        <el-form-item label="排序" prop="sort">
-          <el-input-number v-model="formData.sort" placeholder="请输入排序"  />
+        <el-form-item :label="t('message.flowModel.sort')" prop="sort">
+          <el-input-number v-model="formData.sort" :placeholder="t('message.flowModel.enterSort')"  />
         </el-form-item>
-        <el-form-item label="流程状态" prop="status">
+        <el-form-item :label="t('message.flowModel.flowStatus')" prop="status">
           <el-radio-group v-model="formData.status">
 						<el-radio v-for="(dict,index) in statusOptions" :label="dict.value" :key="index">{{dict.label }}</el-radio>
           </el-radio-group>
@@ -53,8 +53,8 @@
       </el-form>
       <template #footer>
         <div class="dialog-footer">
-          <el-button type="primary" @click="onSubmit" :disabled="loading">确 定</el-button>
-          <el-button @click="onCancel">取 消</el-button>
+          <el-button type="primary" @click="onSubmit" :disabled="loading">{{ t('message.flowModel.confirm') }}</el-button>
+          <el-button @click="onCancel">{{ t('message.flowModel.cancel') }}</el-button>
         </div>
       </template>
     </el-dialog>
@@ -76,6 +76,7 @@ import {
   FlowModelTableDataState,
   FlowModelEditState
 } from "/@/views/flow/flowModel/list/component/model"
+import { useI18n } from 'vue-i18n'
 export default defineComponent({
   name:"ApiV1FlowFlowModelEdit",
   components:{
@@ -100,6 +101,7 @@ export default defineComponent({
   },
   setup(props,{emit}) {
     const {proxy} = <any>getCurrentInstance()
+    const { t } = useI18n()
     const formRef = ref<HTMLElement | null>(null);
     const menuRef = ref();
     const state = reactive<FlowModelEditState>({
@@ -127,13 +129,13 @@ export default defineComponent({
       // 表单校验
       rules: {
         id : [
-            { required: true, message: "主键不能为空", trigger: "blur" }
+            { required: true, message: t('message.flowModel.idRequired'), trigger: "blur" }
         ],
         name : [
-            { required: true, message: "流程名称不能为空", trigger: "blur" }
+            { required: true, message: t('message.flowModel.nameRequired'), trigger: "blur" }
         ],
         status : [
-            { required: true, message: "流程状态不能为空", trigger: "blur" }
+            { required: true, message: t('message.flowModel.statusRequired'), trigger: "blur" }
         ],
       }
     });
@@ -170,7 +172,7 @@ export default defineComponent({
           if(!state.formData.id || state.formData.id===0){
             //添加
           addFlowModel(state.formData).then(()=>{
-              ElMessage.success('添加成功');
+              ElMessage.success(t('message.flowModel.addSuccess'));
               closeDialog(); // 关闭弹窗
               emit('flowModelList')
             }).finally(()=>{
@@ -179,7 +181,7 @@ export default defineComponent({
           }else{
             //修改
           updateFlowModel(state.formData).then(()=>{
-              ElMessage.success('修改成功');
+              ElMessage.success(t('message.flowModel.editSuccess'));
               closeDialog(); // 关闭弹窗
               emit('flowModelList')
             }).finally(()=>{
@@ -211,6 +213,7 @@ export default defineComponent({
       }
     };
     return {
+      t,
       proxy,
       openDialog,
       closeDialog,

+ 45 - 42
src/views/flow/flowModel/list/index.vue

@@ -5,18 +5,18 @@
             <el-form :model="tableData.param" ref="queryRef" :inline="true" label-width="100px">
             <el-row>
                 <el-col :span="8" class="colBlock">
-                  <el-form-item label="流程名称" prop="name">
+                  <el-form-item :label="t('message.flowModel.flowName')" prop="name">
                     <el-input
                         v-model="tableData.param.name"
-                        placeholder="请输入流程名称"
+                        :placeholder="t('message.flowModel.enterFlowName')"
                         clearable
                         @keyup.enter.native="flowModelList"
                     />
                   </el-form-item>
                 </el-col>
                 <el-col :span="8" class="colBlock">
-                  <el-form-item label="表单类型" prop="flowType">
-                    <el-select v-model="tableData.param.flowType" placeholder="请选择表单类型" clearable style="width: 160px">
+                  <el-form-item :label="t('message.flowModel.formType')" prop="flowType">
+                    <el-select v-model="tableData.param.flowType" :placeholder="t('message.flowModel.selectFormType')" clearable style="width: 160px">
                         <el-option
                             v-for="dict in flow_model_type"
                             :key="dict.value"
@@ -28,8 +28,8 @@
                 </el-col>
                 <el-col :span="8" :class="!showAll ? 'colBlock' : 'colNone'">
                   <el-form-item>
-                    <el-button type="primary"  @click="flowModelList"><el-icon><ele-Search /></el-icon>搜索</el-button>
-                    <el-button  @click="resetQuery(queryRef)"><el-icon><ele-Refresh /></el-icon>重置</el-button>
+                    <el-button type="primary"  @click="flowModelList"><el-icon><ele-Search /></el-icon>{{ t('message.flowModel.search') }}</el-button>
+                    <el-button  @click="resetQuery(queryRef)"><el-icon><ele-Refresh /></el-icon>{{ t('message.flowModel.reset') }}</el-button>
                     <el-button type="primary" link  @click="toggleSearch">
                       {{ word }}
                       <el-icon v-show="showAll"><ele-ArrowUp/></el-icon>
@@ -38,8 +38,8 @@
                   </el-form-item>
                 </el-col>
                 <el-col :span="8" :class="showAll ? 'colBlock' : 'colNone'">
-                  <el-form-item label="流程表单类别" prop="flowFormCate">
-                    <el-select v-model="tableData.param.flowFormCate" placeholder="请选择流程表单类别" clearable  style="width: 180px">
+                  <el-form-item :label="t('message.flowModel.flowFormCategory')" prop="flowFormCate">
+                    <el-select v-model="tableData.param.flowFormCate" :placeholder="t('message.flowModel.selectFlowFormCategory')" clearable  style="width: 180px">
                       <el-option
                           v-for="item in flowFormCateOptions"
                           :key="item.key"
@@ -50,8 +50,8 @@
                   </el-form-item>
                 </el-col>
                 <el-col :span="8" :class="showAll ? 'colBlock' : 'colNone'">
-                  <el-form-item label="业务表单类别" prop="flowBusinessCate">
-                    <el-select v-model="tableData.param.flowBusinessCate" placeholder="请选择业务表单类别" clearable style="width: 180px">
+                  <el-form-item :label="t('message.flowModel.businessFormCategory')" prop="flowBusinessCate">
+                    <el-select v-model="tableData.param.flowBusinessCate" :placeholder="t('message.flowModel.selectBusinessFormCategory')" clearable style="width: 180px">
                         <el-option
                             v-for="dict in flow_model_cate"
                             :key="dict.value"
@@ -62,8 +62,8 @@
                   </el-form-item>
                 </el-col>
                 <el-col :span="8" :class="showAll ? 'colBlock' : 'colNone'">
-                  <el-form-item label="流程状态" prop="status">
-                    <el-select v-model="tableData.param.status" placeholder="请选择流程状态" clearable style="width: 180px">
+                  <el-form-item :label="t('message.flowModel.flowStatus')" prop="status">
+                    <el-select v-model="tableData.param.status" :placeholder="t('message.flowModel.selectFlowStatus')" clearable style="width: 180px">
                         <el-option
                             v-for="dict in flow_form_status"
                             :key="dict.value"
@@ -75,8 +75,8 @@
                 </el-col>
                 <el-col :span="8" :class="showAll ? 'colBlock' : 'colNone'">
                   <el-form-item>
-                    <el-button type="primary"  @click="flowModelList"><el-icon><ele-Search /></el-icon>搜索</el-button>
-                    <el-button  @click="resetQuery(queryRef)"><el-icon><ele-Refresh /></el-icon>重置</el-button>
+                    <el-button type="primary"  @click="flowModelList"><el-icon><ele-Search /></el-icon>{{ t('message.flowModel.search') }}</el-button>
+                    <el-button  @click="resetQuery(queryRef)"><el-icon><ele-Refresh /></el-icon>{{ t('message.flowModel.reset') }}</el-button>
                     <el-button type="primary" link  @click="toggleSearch">
                         {{ word }}
                         <el-icon v-show="showAll"><ele-ArrowUp/></el-icon>
@@ -92,7 +92,7 @@
                   type="primary"
                   @click="handleAdd"
                   v-auth="'api/v1/flow/flowModel/add'"
-                ><el-icon><ele-Plus /></el-icon>新增</el-button>
+                ><el-icon><ele-Plus /></el-icon>{{ t('message.flowModel.add') }}</el-button>
               </el-col>
               <el-col :span="1.5">
                 <el-button
@@ -100,7 +100,7 @@
                   :disabled="single"
                   @click="handleUpdate(null)"
                   v-auth="'api/v1/flow/flowModel/edit'"
-                ><el-icon><ele-Edit /></el-icon>修改</el-button>
+                ><el-icon><ele-Edit /></el-icon>{{ t('message.flowModel.edit') }}</el-button>
               </el-col>
               <el-col :span="1.5">
                 <el-button
@@ -108,84 +108,84 @@
                   :disabled="multiple"
                   @click="handleDelete(null)"
                   v-auth="'api/v1/flow/flowModel/delete'"
-                ><el-icon><ele-Delete /></el-icon>删除</el-button>
+                ><el-icon><ele-Delete /></el-icon>{{ t('message.flowModel.delete') }}</el-button>
               </el-col>
              <el-col :span="1.5">
                 <el-button
                         type="warning"
                         @click="handleExport()"
                         v-auth="'api/v1/flow/flowModel/export'"
-                ><el-icon><ele-Download /></el-icon>导出Excel</el-button>
+                ><el-icon><ele-Download /></el-icon>{{ t('message.flowModel.export') }}</el-button>
              </el-col>
                 <el-col :span="1.5">
                     <el-button
                             type="success"
                             @click="handleImport()"
                             v-auth="'api/v1/flow/flowModel/import'"
-                    ><el-icon><ele-Upload /></el-icon>导入Excel</el-button>
+                    ><el-icon><ele-Upload /></el-icon>{{ t('message.flowModel.import') }}</el-button>
                 </el-col>
             </el-row>
         </div>
         <el-table v-loading="loading" :data="tableData.data" @selection-change="handleSelectionChange">
           <el-table-column type="selection" width="55" align="center" />
-          <el-table-column label="主键" align="center" prop="id"
+          <el-table-column :label="t('message.flowModel.primaryKey')" align="center" prop="id"
             min-width="150px"
              />
-          <el-table-column label="流程名称" align="center" prop="name"
+          <el-table-column :label="t('message.flowModel.flowName')" align="center" prop="name"
             min-width="150px"
              />
-          <el-table-column label="表单类型" align="center" prop="flowType" :formatter="flowTypeFormat"
+          <el-table-column :label="t('message.flowModel.formType')" align="center" prop="flowType" :formatter="flowTypeFormat"
             min-width="150px"
              />
-          <el-table-column label="流程表单类别" align="center" prop="linkedFlowFormCate.name"
+          <el-table-column :label="t('message.flowModel.flowFormCategory')" align="center" prop="linkedFlowFormCate.name"
             min-width="150px"
              />
-          <el-table-column label="业务表单类别" align="center" prop="flowBusinessCate" :formatter="flowBusinessCateFormat"
+          <el-table-column :label="t('message.flowModel.businessFormCategory')" align="center" prop="flowBusinessCate" :formatter="flowBusinessCateFormat"
             min-width="150px"
              />
-          <el-table-column label="流程状态" align="center" prop="status" :formatter="statusFormat"
+          <el-table-column :label="t('message.flowModel.flowStatus')" align="center" prop="status" :formatter="statusFormat"
             min-width="150px"
              />
-          <el-table-column label="创建时间" align="center" prop="createdAt"
+          <el-table-column :label="t('message.flowModel.createTime')" align="center" prop="createdAt"
             min-width="150px"
             >
             <template #default="scope">
                 <span>{{ proxy.parseTime(scope.row.createdAt, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
             </template>
           </el-table-column>
-          <el-table-column label="创建人" align="center" prop="createdBy"
+          <el-table-column :label="t('message.flowModel.creator')" align="center" prop="createdBy"
             min-width="150px"
              />
-          <el-table-column label="操作" align="center" class-name="small-padding" min-width="200px" fixed="right">
+          <el-table-column :label="t('message.flowModel.operation')" align="center" class-name="small-padding" min-width="200px" fixed="right">
             <template #default="scope">
               <el-button
                 type="primary"
                 link
                 @click="handleView(scope.row)"
                 v-auth="'api/v1/flow/flowModel/get'"
-              ><el-icon><ele-View /></el-icon>详情</el-button>
+              ><el-icon><ele-View /></el-icon>{{ t('message.flowModel.detail') }}</el-button>
               <el-button
                   v-show="!scope.row.isRunning"
                   type="primary"
                   link
                   @click="handleUpdate(scope.row)"
                   v-auth="'api/v1/flow/flowModel/edit'"
-              ><el-icon><ele-EditPen /></el-icon>修改</el-button>
+              ><el-icon><ele-EditPen /></el-icon>{{ t('message.flowModel.edit') }}</el-button>
               <el-button
                   v-show="!scope.row.isRunning"
                   type="primary"
                   link
                   @click="handleDesign(scope.row)"
                   v-auth="'api/v1/flow/flowModel/design'"
-              ><el-icon><ele-Notification /></el-icon>流程设计</el-button>
+              ><el-icon><ele-Notification /></el-icon>{{ t('message.flowModel.deployDesign') }}</el-button>
               <el-button
                   v-show="!scope.row.isRunning"
                   type="primary"
                   link
                   @click="handleDelete(scope.row)"
                   v-auth="'api/v1/flow/flowModel/delete'"
-              ><el-icon><ele-DeleteFilled /></el-icon>删除</el-button>
-              <el-tag v-show="scope.row.isRunning" type="danger">流程运行中</el-tag>
+              ><el-icon><ele-DeleteFilled /></el-icon>{{ t('message.flowModel.delete') }}</el-button>
+              <el-tag v-show="scope.row.isRunning" type="danger">{{ t('message.flowModel.running') }}</el-tag>
             </template>
           </el-table-column>
         </el-table>
@@ -237,6 +237,7 @@ import ApiV1FlowFlowModelDetail from "/@/views/flow/flowModel/list/component/det
 import {downLoadXml} from "/@/utils/zipdownload";
 import loadExcel from "/@/components/loadExcel/index.vue"
 import {useRouter} from "vue-router";
+import { useI18n } from 'vue-i18n'
 export default defineComponent({
     name: "ApiV1FlowFlowModelList",
     components:{
@@ -245,6 +246,7 @@ export default defineComponent({
         ApiV1FlowFlowModelDetail
     },
     setup() {
+        const { t } = useI18n()
         const router = useRouter();
         const {proxy} = <any>getCurrentInstance()
         const loading = ref(false)
@@ -261,9 +263,9 @@ export default defineComponent({
         const word = computed(()=>{
             if(showAll.value === false) {
                 //对文字进行处理
-                return "展开搜索";
+                return t('message.flowModel.expandSearch');
             } else {
-                return "收起搜索";
+                return t('message.flowModel.collapseSearch');
             }
         })
         // 字典选项数据
@@ -367,26 +369,26 @@ export default defineComponent({
           router.push('/flow/flowModel/design?id='+row.id)
         }
         const handleDelete = (row: FlowModelTableColumns) => {
-            let msg = '你确定要删除所选数据?';
+            let msg = t('message.flowModel.confirmDeleteSelected');
             let id:number[] = [] ;
             if(row){
-            msg = `此操作将永久删除数据,是否继续?`
+            msg = t('message.flowModel.confirmDeleteSingle')
             id = [row.id]
             }else{
             id = state.ids
             }
             if(id.length===0){
-                ElMessage.error('请选择要删除的数据。');
+                ElMessage.error(t('message.flowModel.pleaseSelectDeleteData'));
                 return
             }
-            ElMessageBox.confirm(msg, '提示', {
-                confirmButtonText: '确认',
-                cancelButtonText: '取消',
+            ElMessageBox.confirm(msg, t('message.flowModel.tip'), {
+                confirmButtonText: t('message.flowModel.confirm'),
+                cancelButtonText: t('message.flowModel.cancel'),
                 type: 'warning',
             })
                 .then(() => {
                     delFlowModel(id).then(()=>{
-                        ElMessage.success('删除成功');
+                        ElMessage.success(t('message.flowModel.deleteSuccess'));
                         flowModelList();
                     })
                 })
@@ -403,6 +405,7 @@ export default defineComponent({
             loadExcelFlowModelRef.value.open()
         }
         return {
+            t,
             proxy,
             editRef,
             detailRef,