浏览代码

流程监控接入国际化设置

kagg886 1 月之前
父节点
当前提交
d5ecf491d7

+ 10 - 3
src/i18n/index.ts

@@ -54,6 +54,10 @@ import pagesFlowModelZhcn from './pages/flow/flowModel/zh-cn'
 import pagesFlowModelEn from './pages/flow/flowModel/en'
 import pagesFlowModelZhtw from './pages/flow/flowModel/zh-tw'
 
+import pagesFlowDemoZhcn from './pages/flow/flowDemo/zh-cn'
+import pagesFlowDemoEn from './pages/flow/flowDemo/en'
+import pagesFlowDemoZhtw from './pages/flow/flowDemo/zh-tw'
+
 import componentFlowModelZhcn from './pages/flow/component/zh-cn'
 import componentFlowModelEn from './pages/flow/component/en'
 import componentFlowModelZhtw from './pages/flow/component/zh-tw'
@@ -79,7 +83,8 @@ const messages = {
 			dateCenter: pagesDateCenterZhcn,
 			flowForm: pagesFlowFormZhcn,
 			flowModel: pagesFlowModelZhcn,
-			flowComponent: componentFlowModelZhcn
+			flowComponent: componentFlowModelZhcn,
+			flowDemo: pagesFlowDemoZhcn
 		}
 	},
 	[enLocale.name]: {
@@ -96,7 +101,8 @@ const messages = {
 			dateCenter: pagesDateCenterEn,
 			flowForm: pagesFlowFormEn,
 			flowModel: pagesFlowModelEn,
-			flowComponent: componentFlowModelEn
+			flowComponent: componentFlowModelEn,
+			flowDemo: pagesFlowDemoEn
 		},
 	},
 	[zhtwLocale.name]: {
@@ -113,7 +119,8 @@ const messages = {
 			dateCenter: pagesDateCenterZhtw,
 			flowForm: pagesFlowFormZhtw,
 			flowModel: pagesFlowModelZhtw,
-			flowComponent: componentFlowModelZhtw
+			flowComponent: componentFlowModelZhtw,
+			flowDemo: pagesFlowDemoZhtw
 		},
 	},
 };

+ 62 - 0
src/i18n/pages/flow/flowDemo/en.ts

@@ -0,0 +1,62 @@
+export default {
+  // Page Title
+  pageTitle: 'Flow Approval Test',
+  
+  // Search and Form
+  title: 'Title',
+  status: 'Approval Status',
+  userId: 'User ID',
+  age: 'Age',
+  
+  // Placeholders
+  enterTitle: 'Please enter title',
+  selectStatus: 'Please select approval status',
+  enterAge: 'Please enter age',
+  
+  // Common Operations
+  search: 'Search',
+  reset: 'Reset',
+  add: 'Add',
+  edit: 'Edit',
+  delete: 'Delete',
+  detail: 'Detail',
+  operation: 'Operation',
+  confirm: 'Confirm',
+  cancel: 'Cancel',
+  
+  // Table Columns
+  primaryKey: 'Primary Key',
+  titleCol: 'Title',
+  statusCol: 'Approval Status',
+  userIdCol: 'User ID',
+  ageCol: 'Age',
+  
+  // Validation Messages
+  idRequired: 'Primary key cannot be empty',
+  statusRequired: 'Approval status cannot be empty',
+  
+  // Success Messages
+  addSuccess: 'Added successfully',
+  editSuccess: 'Modified successfully',
+  deleteSuccess: 'Deleted successfully',
+  
+  // Confirmation Messages
+  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 Page
+  detailTitle: 'Flow Approval Test Detail',
+  tabFormDetail: 'Form Detail',
+  tabApprovalRecord: 'Approval Record',
+  tabFlowChart: 'Flow Chart',
+  
+  // Dialog Titles
+  addDialogTitle: 'Add Flow Approval Test',
+  editDialogTitle: 'Edit Flow Approval Test',
+  
+  // Tips
+  tip: 'Tip',
+  expandSearch: 'Expand Search',
+  collapseSearch: 'Collapse Search'
+}

+ 62 - 0
src/i18n/pages/flow/flowDemo/zh-cn.ts

@@ -0,0 +1,62 @@
+export default {
+  // 页面标题
+  pageTitle: '流程审批测试',
+  
+  // 搜索与表单
+  title: '标题',
+  status: '审核状态',
+  userId: '用户id',
+  age: '年龄',
+  
+  // 占位符
+  enterTitle: '请输入标题',
+  selectStatus: '请选择审核状态',
+  enterAge: '请输入年龄',
+  
+  // 公共操作
+  search: '搜索',
+  reset: '重置',
+  add: '新增',
+  edit: '修改',
+  delete: '删除',
+  detail: '详情',
+  operation: '操作',
+  confirm: '确认',
+  cancel: '取消',
+  
+  // 表格列
+  primaryKey: '主键',
+  titleCol: '标题',
+  statusCol: '审核状态',
+  userIdCol: '用户id',
+  ageCol: '年龄',
+  
+  // 校验消息
+  idRequired: '主键不能为空',
+  statusRequired: '审核状态不能为空',
+  
+  // 成功消息
+  addSuccess: '添加成功',
+  editSuccess: '修改成功',
+  deleteSuccess: '删除成功',
+  
+  // 确认消息
+  confirmDeleteSelected: '你确定要删除所选数据?',
+  confirmDeleteSingle: '此操作将永久删除数据,是否继续?',
+  pleaseSelectDeleteData: '请选择要删除的数据。',
+  
+  // 详情页面
+  detailTitle: '流程审批测试详情',
+  tabFormDetail: '表单详情',
+  tabApprovalRecord: '审批记录',
+  tabFlowChart: '流程图',
+  
+  // 对话框标题
+  addDialogTitle: '添加流程审批测试',
+  editDialogTitle: '修改流程审批测试',
+  
+  // 提示信息
+  tip: '提示',
+  expandSearch: '展开搜索',
+  collapseSearch: '收起搜索'
+}

+ 62 - 0
src/i18n/pages/flow/flowDemo/zh-tw.ts

@@ -0,0 +1,62 @@
+export default {
+  // 頁面標題
+  pageTitle: '流程審批測試',
+  
+  // 搜索與表單
+  title: '標題',
+  status: '審核狀態',
+  userId: '用戶id',
+  age: '年齡',
+  
+  // 佔位符
+  enterTitle: '請輸入標題',
+  selectStatus: '請選擇審核狀態',
+  enterAge: '請輸入年齡',
+  
+  // 公共操作
+  search: '搜索',
+  reset: '重置',
+  add: '新增',
+  edit: '修改',
+  delete: '刪除',
+  detail: '詳情',
+  operation: '操作',
+  confirm: '確認',
+  cancel: '取消',
+  
+  // 表格列
+  primaryKey: '主鍵',
+  titleCol: '標題',
+  statusCol: '審核狀態',
+  userIdCol: '用戶id',
+  ageCol: '年齡',
+  
+  // 校驗消息
+  idRequired: '主鍵不能為空',
+  statusRequired: '審核狀態不能為空',
+  
+  // 成功消息
+  addSuccess: '添加成功',
+  editSuccess: '修改成功',
+  deleteSuccess: '刪除成功',
+  
+  // 確認消息
+  confirmDeleteSelected: '你確定要刪除所選數據?',
+  confirmDeleteSingle: '此操作將永久刪除數據,是否繼續?',
+  pleaseSelectDeleteData: '請選擇要刪除的數據。',
+  
+  // 詳情頁面
+  detailTitle: '流程審批測試詳情',
+  tabFormDetail: '表單詳情',
+  tabApprovalRecord: '審批記錄',
+  tabFlowChart: '流程圖',
+  
+  // 對話框標題
+  addDialogTitle: '添加流程審批測試',
+  editDialogTitle: '修改流程審批測試',
+  
+  // 提示信息
+  tip: '提示',
+  expandSearch: '展開搜索',
+  collapseSearch: '收起搜索'
+}

+ 24 - 1
src/i18n/pages/flow/flowModel/en.ts

@@ -78,5 +78,28 @@ export default {
   flowExecTime: 'Flow Execute Time',
   proxyApprove: 'Proxy',
   confirmStop: 'Do you want to terminate the process? [Irreversible]',
-  pleaseSelectStopData: 'Please select the process to terminate.'
+  pleaseSelectStopData: 'Please select the process to terminate.',
+
+  // New internationalization keys
+  updatedBy: 'Updated By',
+  expandSearchText: 'Expand Search',
+  collapseSearchText: 'Collapse Search',
+  flowNameCol: 'Flow Name',
+  flowTypeCol: 'Flow Type',
+  businessNameCol: 'Business Name',
+  businessIdCol: 'Business ID',
+  flowExecTimeCol: 'Flow Execute Time',
+  operationCol: 'Operation',
+  stopCol: 'Stop',
+  proxyCol: 'Proxy',
+  searchText: 'Search',
+  resetText: 'Reset',
+  stopButton: 'Stop',
+  proxyButton: 'Proxy',
+  confirmStopTitle: 'Tip',
+  confirmStopMessage: 'Do you want to terminate the process? [Irreversible]',
+  confirmStopConfirm: 'Confirm',
+  confirmStopCancel: 'Cancel',
+  stopSuccessMessage: 'Stop successful',
+  pleaseSelectStopDataMessage: 'Please select the process to terminate.'
 }

+ 24 - 1
src/i18n/pages/flow/flowModel/zh-cn.ts

@@ -78,5 +78,28 @@ export default {
   flowExecTime: '流程执行时间',
   proxyApprove: '代审',
   confirmStop: '是否要终止流程【此操作不可恢复】?',
-  pleaseSelectStopData: '请选择要终止的流程。'
+  pleaseSelectStopData: '请选择要终止的流程。',
+
+  // 新增的国际化键值
+  updatedBy: '修改人',
+  expandSearchText: '展开搜索',
+  collapseSearchText: '收起搜索',
+  flowNameCol: '流程名称',
+  flowTypeCol: '流程类型',
+  businessNameCol: '业务名称',
+  businessIdCol: '业务ID',
+  flowExecTimeCol: '流程执行时间',
+  operationCol: '操作',
+  stopCol: '终止',
+  proxyCol: '代审',
+  searchText: '搜索',
+  resetText: '重置',
+  stopButton: '终止',
+  proxyButton: '代审',
+  confirmStopTitle: '提示',
+  confirmStopMessage: '是否要终止流程【此操作不可恢复】?',
+  confirmStopConfirm: '确认',
+  confirmStopCancel: '取消',
+  stopSuccessMessage: '终止成功',
+  pleaseSelectStopDataMessage: '请选择要终止的流程。'
 }

+ 24 - 1
src/i18n/pages/flow/flowModel/zh-tw.ts

@@ -78,5 +78,28 @@ export default {
   flowExecTime: '流程執行時間',
   proxyApprove: '代審',
   confirmStop: '是否要終止流程【此操作不可恢復】?',
-  pleaseSelectStopData: '請選擇要終止的流程。'
+  pleaseSelectStopData: '請選擇要終止的流程。',
+
+  // 新增的國際化鍵值
+  updatedBy: '修改人',
+  expandSearchText: '展開搜尋',
+  collapseSearchText: '收起搜尋',
+  flowNameCol: '流程名稱',
+  flowTypeCol: '流程類型',
+  businessNameCol: '業務名稱',
+  businessIdCol: '業務ID',
+  flowExecTimeCol: '流程執行時間',
+  operationCol: '操作',
+  stopCol: '終止',
+  proxyCol: '代審',
+  searchText: '搜尋',
+  resetText: '重置',
+  stopButton: '終止',
+  proxyButton: '代審',
+  confirmStopTitle: '提示',
+  confirmStopMessage: '是否要終止流程【此操作不可恢復】?',
+  confirmStopConfirm: '確認',
+  confirmStopCancel: '取消',
+  stopSuccessMessage: '終止成功',
+  pleaseSelectStopDataMessage: '請選擇要終止的流程。'
 }

+ 13 - 11
src/views/flow/flowDemo/list/component/detail.vue

@@ -3,10 +3,10 @@
   <div class="flow-flowDemo-detail">
     <el-drawer v-model="isShowDialog" size="80%" direction="ltr">
       <template #header>
-        <h4>流程审批测试详情</h4>
+        <h4>{{ t('message.flowDemo.detailTitle') }}</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.flowDemo.tabFormDetail')" name="0">
           <el-descriptions
               class="margin-top"
               :column="3"
@@ -16,7 +16,7 @@
             <el-descriptions-item :span="1">
               <template #label>
                 <div class="cell-item">
-                  主键
+                  {{ t('message.flowDemo.primaryKey') }}
                 </div>
               </template>
               {{ formData.id }}
@@ -24,7 +24,7 @@
             <el-descriptions-item :span="1">
               <template #label>
                 <div class="cell-item">
-                  标题
+                  {{ t('message.flowDemo.titleCol') }}
                 </div>
               </template>
               {{ formData.title }}
@@ -32,7 +32,7 @@
             <el-descriptions-item :span="1">
               <template #label>
                 <div class="cell-item">
-                  审核状态
+                  {{ t('message.flowDemo.statusCol') }}
                 </div>
               </template>
               {{ proxy.getOptionValue(formData.status, statusOptions,'value','label') }}
@@ -40,7 +40,7 @@
             <el-descriptions-item :span="1">
               <template #label>
                 <div class="cell-item">
-                  用户id
+                  {{ t('message.flowDemo.userIdCol') }}
                 </div>
               </template>
               {{ formData.createdBy }}
@@ -48,17 +48,17 @@
             <el-descriptions-item :span="1">
               <template #label>
                 <div class="cell-item">
-                  年龄
+                  {{ t('message.flowDemo.ageCol') }}
                 </div>
               </template>
               {{ formData.age }}
             </el-descriptions-item>
           </el-descriptions>
         </el-tab-pane>
-        <el-tab-pane label="审批记录" name="1">
+        <el-tab-pane :label="t('message.flowDemo.tabApprovalRecord')" name="1">
             <FlowLog ref="flowLogRef" :form-id="formId" :form-table="formTable" :key="formId"/>
         </el-tab-pane>
-        <el-tab-pane label="流程图" name="2">
+        <el-tab-pane :label="t('message.flowDemo.tabFlowChart')" name="2">
           <ShowFlowDesign ref="showFlowCheckRef" />
         </el-tab-pane>
       </el-tabs>
@@ -67,6 +67,7 @@
 </template>
 <script setup lang="ts">
   import { reactive, toRefs, ref,getCurrentInstance } from 'vue';
+  import { useI18n } from 'vue-i18n'
   import {
     getFlowDemo,
   } from "/@/api/flow/flowDemo";
@@ -79,6 +80,7 @@
   import ShowFlowDesign from "/@/components/gFlow/showDesign.vue";
   import {getRunStep} from "/@/api/flow/flowModel";
 
+  const { t } = useI18n()
   const props = defineProps({
     statusOptions:{
       type:Array,
@@ -114,10 +116,10 @@
     // 表单校验
     rules: {
       id : [
-          { required: true, message: "主键不能为空", trigger: "blur" }
+          { required: true, message: t('message.flowDemo.idRequired'), trigger: "blur" }
       ],
       status : [
-          { required: true, message: "审核状态不能为空", trigger: "blur" }
+          { required: true, message: t('message.flowDemo.statusRequired'), trigger: "blur" }
       ],
     }
   });

+ 13 - 11
src/views/flow/flowDemo/list/component/edit.vue

@@ -3,20 +3,20 @@
     <!-- 添加或修改流程审批测试对话框 -->
     <el-dialog v-model="isShowDialog" width="800px" :close-on-click-modal="false" :destroy-on-close="true">
       <template #header>
-        <div v-drag="['.flow-flowDemo-edit .el-dialog', '.flow-flowDemo-edit .el-dialog__header']">{{(!formData.id || formData.id==0?'添加':'修改')+'流程审批测试'}}</div>
+        <div v-drag="['.flow-flowDemo-edit .el-dialog', '.flow-flowDemo-edit .el-dialog__header']">{{(!formData.id || formData.id==0?t('message.flowDemo.addDialogTitle'):t('message.flowDemo.editDialogTitle'))}}</div>
       </template>
       <el-form ref="formRef" :model="formData" :rules="rules" label-width="120px">
-        <el-form-item label="标题" prop="title">
-          <el-input v-model="formData.title" placeholder="请输入标题" />
+        <el-form-item :label="t('message.flowDemo.titleCol')" prop="title">
+          <el-input v-model="formData.title" :placeholder="t('message.flowDemo.enterTitle')" />
         </el-form-item>
-        <el-form-item label="年龄" prop="age">
-          <el-input v-model="formData.age" placeholder="请输入年龄" />
+        <el-form-item :label="t('message.flowDemo.ageCol')" prop="age">
+          <el-input v-model="formData.age" :placeholder="t('message.flowDemo.enterAge')" />
         </el-form-item>
       </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.flowDemo.confirm') }}</el-button>
+          <el-button @click="onCancel">{{ t('message.flowDemo.cancel') }}</el-button>
         </div>
       </template>
     </el-dialog>
@@ -25,6 +25,7 @@
 <script setup lang="ts">
 import { reactive, toRefs, ref,unref,getCurrentInstance } from 'vue';
 import {ElMessageBox, ElMessage, FormInstance,UploadProps} from 'element-plus';
+import { useI18n } from 'vue-i18n'
 import {
   listFlowDemo,
   getFlowDemo,
@@ -39,6 +40,7 @@ import {
   FlowDemoEditState
 } from "/@/views/flow/flowDemo/list/component/model"
 
+const { t } = useI18n()
 const emit = defineEmits(['flowDemoList'])
   const props = defineProps({
     statusOptions:{
@@ -63,10 +65,10 @@ const state = reactive<FlowDemoEditState>({
   // 表单校验
   rules: {
     id : [
-        { required: true, message: "主键不能为空", trigger: "blur" }
+        { required: true, message: t('message.flowDemo.idRequired'), trigger: "blur" }
     ],
     status : [
-        { required: true, message: "审核状态不能为空", trigger: "blur" }
+        { required: true, message: t('message.flowDemo.statusRequired'), trigger: "blur" }
     ],
   }
 });
@@ -103,7 +105,7 @@ const onSubmit = () => {
       if(!state.formData.id || state.formData.id===0){
         //添加
       addFlowDemo(state.formData).then(()=>{
-          ElMessage.success('添加成功');
+          ElMessage.success(t('message.flowDemo.addSuccess'));
           closeDialog(); // 关闭弹窗
           emit('flowDemoList')
         }).finally(()=>{
@@ -112,7 +114,7 @@ const onSubmit = () => {
       }else{
         //修改
       updateFlowDemo(state.formData).then(()=>{
-          ElMessage.success('修改成功');
+          ElMessage.success(t('message.flowDemo.editSuccess'));
           closeDialog(); // 关闭弹窗
           emit('flowDemoList')
         }).finally(()=>{

+ 29 - 27
src/views/flow/flowDemo/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="title">
+                  <el-form-item :label="t('message.flowDemo.title')" prop="title">
                     <el-input
                         v-model="tableData.param.title"
-                        placeholder="请输入标题"
+                        :placeholder="t('message.flowDemo.enterTitle')"
                         clearable
                         @keyup.enter.native="flowDemoList"
                     />
                   </el-form-item>
                 </el-col>
                 <el-col :span="8" class="colBlock">
-                  <el-form-item label="审核状态" prop="status">
-                    <el-select v-model="tableData.param.status" placeholder="请选择审核状态" clearable style="width:200px;">
+                  <el-form-item :label="t('message.flowDemo.status')" prop="status">
+                    <el-select v-model="tableData.param.status" :placeholder="t('message.flowDemo.selectStatus')" clearable style="width:200px;">
                         <el-option
                             v-for="dict in flow_status"
                             :key="dict.value"
@@ -28,8 +28,8 @@
                 </el-col>
                 <el-col :span="8" class="colBlock">
                   <el-form-item>
-                    <el-button type="primary"   @click="flowDemoList"><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="flowDemoList"><el-icon><ele-Search /></el-icon>{{ t('message.flowDemo.search') }}</el-button>
+                    <el-button  @click="resetQuery(queryRef)"><el-icon><ele-Refresh /></el-icon>{{ t('message.flowDemo.reset') }}</el-button>
                   </el-form-item>
                 </el-col>
               </el-row>
@@ -40,7 +40,7 @@
                   type="primary"
                   @click="handleAdd"
                   v-auth="'api/v1/flow/flowDemo/add'"
-                ><el-icon><ele-Plus /></el-icon>新增</el-button>
+                ><el-icon><ele-Plus /></el-icon>{{ t('message.flowDemo.add') }}</el-button>
               </el-col>
               <el-col :span="1.5">
                 <el-button
@@ -48,7 +48,7 @@
                   :disabled="single"
                   @click="handleUpdate(null)"
                   v-auth="'api/v1/flow/flowDemo/edit'"
-                ><el-icon><ele-Edit /></el-icon>修改</el-button>
+                ><el-icon><ele-Edit /></el-icon>{{ t('message.flowDemo.edit') }}</el-button>
               </el-col>
               <el-col :span="1.5">
                 <el-button
@@ -56,43 +56,43 @@
                   :disabled="multiple"
                   @click="handleDelete(null)"
                   v-auth="'api/v1/flow/flowDemo/delete'"
-                ><el-icon><ele-Delete /></el-icon>删除</el-button>
+                ><el-icon><ele-Delete /></el-icon>{{ t('message.flowDemo.delete') }}</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.flowDemo.primaryKey')" align="center" prop="id"
             min-width="150px"
              />
-          <el-table-column label="标题" align="center" prop="title"
+          <el-table-column :label="t('message.flowDemo.titleCol')" align="center" prop="title"
             min-width="150px"
              />
-          <el-table-column label="审核状态" align="center" prop="status" min-width="150px">
+          <el-table-column :label="t('message.flowDemo.statusCol')" align="center" prop="status" min-width="150px">
             <template #default="scope">
               <el-tag :type="columnColor(scope.row)">{{ statusFormat(scope.row) }}</el-tag>
             </template>
           </el-table-column>
-          <el-table-column label="用户id" align="center" prop="createdBy"
+          <el-table-column :label="t('message.flowDemo.userIdCol')" align="center" prop="createdBy"
             min-width="150px"
              />
-          <el-table-column label="年龄" align="center" prop="age"
+          <el-table-column :label="t('message.flowDemo.ageCol')" align="center" prop="age"
             min-width="150px"
              />
-          <el-table-column label="操作" align="center" class-name="small-padding" min-width="200px" fixed="right">
+          <el-table-column :label="t('message.flowDemo.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/flowDemo/get'"
-              ><el-icon><ele-View /></el-icon>详情</el-button>
+              ><el-icon><ele-View /></el-icon>{{ t('message.flowDemo.detail') }}</el-button>
               <el-button
                 type="primary"
                 link
                 @click="handleUpdate(scope.row)"
                 v-auth="'api/v1/flow/flowDemo/edit'"
-              ><el-icon><ele-EditPen /></el-icon>修改</el-button>
+              ><el-icon><ele-EditPen /></el-icon>{{ t('message.flowDemo.edit') }}</el-button>
               <el-button
                   v-if="scope.row.actionBtn && scope.row.actionBtn.type!='disabled'"
                   type="primary"
@@ -104,7 +104,7 @@
                 link
                 @click="handleDelete(scope.row)"
                 v-auth="'api/v1/flow/flowDemo/delete'"
-              ><el-icon><ele-DeleteFilled /></el-icon>删除</el-button>
+              ><el-icon><ele-DeleteFilled /></el-icon>{{ t('message.flowDemo.delete') }}</el-button>
             </template>
           </el-table-column>
         </el-table>
@@ -133,6 +133,7 @@
 import checkFlow from "/@/components/gFlow/checkFlow.vue"
 import {toRefs, reactive, onMounted, ref,  computed,getCurrentInstance,toRaw} from 'vue';
 import {ElMessageBox, ElMessage, FormInstance} from 'element-plus';
+import { useI18n } from 'vue-i18n'
 import {
     listFlowDemo,
     delFlowDemo,
@@ -145,6 +146,7 @@ import {
 import ApiV1FlowFlowDemoEdit from "/@/views/flow/flowDemo/list/component/edit.vue"
 import ApiV1FlowFlowDemoDetail from "/@/views/flow/flowDemo/list/component/detail.vue"
 
+const { t } = useI18n()
 const {proxy} = <any>getCurrentInstance()
 const loading = ref(false)
 const queryRef = ref()
@@ -160,9 +162,9 @@ const ckFlowRef = ref()
 const word = computed(()=>{
     if(showAll.value === false) {
         //对文字进行处理
-        return "展开搜索";
+        return t('message.flowDemo.expandSearch');
     } else {
-        return "收起搜索";
+        return t('message.flowDemo.collapseSearch');
     }
 })
 // 字典选项数据
@@ -239,26 +241,26 @@ const handleUpdate = (row: FlowDemoTableColumns|null) => {
     editRef.value.openDialog(toRaw(row));
 };
 const handleDelete = (row: FlowDemoTableColumns|null) => {
-    let msg = '你确定要删除所选数据?';
+    let msg = t('message.flowDemo.confirmDeleteSelected');
     let id:number[] = [] ;
     if(row){
-    msg = `此操作将永久删除数据,是否继续?`
+    msg = t('message.flowDemo.confirmDeleteSingle')
     id = [row.id]
     }else{
     id = state.ids
     }
     if(id.length===0){
-        ElMessage.error('请选择要删除的数据。');
+        ElMessage.error(t('message.flowDemo.pleaseSelectDeleteData'));
         return
     }
-    ElMessageBox.confirm(msg, '提示', {
-        confirmButtonText: '确认',
-        cancelButtonText: '取消',
+    ElMessageBox.confirm(msg, t('message.flowDemo.tip'), {
+        confirmButtonText: t('message.flowDemo.confirm'),
+        cancelButtonText: t('message.flowDemo.cancel'),
         type: 'warning',
     })
         .then(() => {
             delFlowDemo(id).then(()=>{
-                ElMessage.success('删除成功');
+                ElMessage.success(t('message.flowDemo.deleteSuccess'));
                 flowDemoList();
             })
         })

+ 136 - 138
src/views/flow/flowForm/list/component/dataDetail.vue

@@ -1,50 +1,49 @@
 <template>
-  <!-- 流程表单详情抽屉 -->
-  <div class="flow-flowForm-detail">
-    <el-drawer v-model="isShowDialog" size="80%" direction="ltr">
-      <template #header>
-        <h4>{{ t('message.flowForm.detailTitleWithName', { name: state.formData.name||'' }) }}</h4>
-      </template>
-      <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick" style="margin: 8px;">
-        <el-tab-pane :label="t('message.flowForm.tabFormDetail')" name="0">
-          <div class="form-create-show">
-            <FormCreate :option="detailData.option" :rule="detailData.rule" :disabled="true" v-model="formData" />
-          </div>
-        </el-tab-pane>
-        <el-tab-pane :label="t('message.flowForm.tabApproveLog')" name="1">
-          <FlowLog ref="flowLogRef" :form-id="formId" :form-table="formTable" :key="formId"/>
-        </el-tab-pane>
-        <el-tab-pane :label="t('message.flowForm.tabFlowChart')" name="2">
-          <ShowFlowDesign ref="showFlowCheckRef" />
-        </el-tab-pane>
-      </el-tabs>
-    </el-drawer>
-  </div>
+	<!-- 流程表单详情抽屉 -->
+	<div class="flow-flowForm-detail">
+		<el-drawer v-model="isShowDialog" size="80%" direction="ltr">
+			<template #header>
+				<h4>{{ t('message.flowForm.detailTitleWithName', { name: state.formData.name || '' }) }}</h4>
+			</template>
+			<el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick" style="margin: 8px">
+				<el-tab-pane :label="t('message.flowForm.tabFormDetail')" name="0">
+					<div class="form-create-show">
+						<FormCreate :option="detailData.option" :rule="detailData.rule" :disabled="true" v-model="formData" />
+					</div>
+				</el-tab-pane>
+				<el-tab-pane :label="t('message.flowForm.tabApproveLog')" name="1">
+					<FlowLog ref="flowLogRef" :form-id="formId" :form-table="formTable" :key="formId" />
+				</el-tab-pane>
+				<el-tab-pane :label="t('message.flowForm.tabFlowChart')" name="2">
+					<ShowFlowDesign ref="showFlowCheckRef" />
+				</el-tab-pane>
+			</el-tabs>
+		</el-drawer>
+	</div>
 </template>
 <script lang="ts" setup>
 // 引入 form-create
 import formCreate from '@form-create/element-ui'
 // 引入 form-create-edit
-import FcEditor from "@form-create/component-wangeditor";
-import {reactive, ref, getCurrentInstance, toRefs} from 'vue';
-import {getFlowForm, getFlowFormData} from "/@/api/flow/flowForm";
-import {
-  FlowFormEditState, FlowFormTableColumns
-} from "/@/views/flow/flowForm/list/component/model"
-import {setConfAndFields2} from "/@/utils/formCreate";
-import FlowLog from "/@/components/gFlow/flowLog.vue";
-import ShowFlowDesign from "/@/components/gFlow/showDesign.vue";
-import {TabsPaneContext} from "element-plus";
-import {getRunStep} from "/@/api/flow/flowModel";
+import FcEditor from '@form-create/component-wangeditor'
+import { reactive, ref, getCurrentInstance, toRefs } from 'vue'
+import { getFlowForm, getFlowFormData } from '/@/api/flow/flowForm'
+import { FlowFormEditState, FlowFormTableColumns } from '/@/views/flow/flowForm/list/component/model'
+import { setConfAndFields2 } from '/@/utils/formCreate'
+import FlowLog from '/@/components/gFlow/flowLog.vue'
+import ShowFlowDesign from '/@/components/gFlow/showDesign.vue'
+import { TabsPaneContext } from 'element-plus'
+import { getRunStep } from '/@/api/flow/flowModel'
+import { useI18n } from 'vue-i18n'
 formCreate.component(FcEditor)
 //获取 formCreate 组件
-const FormCreate = formCreate.$form();
+const FormCreate = formCreate.$form()
 
 const props = defineProps({
-  statusOptions:{
-    type:Array,
-    default:()=>[]
-  },
+	statusOptions: {
+		type: Array,
+		default: () => [],
+	},
 })
 const flowLogRef = ref()
 const showFlowCheckRef = ref()
@@ -52,126 +51,125 @@ const formId = ref(0)
 const formTable = ref('')
 const activeName = ref('0')
 const handleClick = (tab: TabsPaneContext) => {
-  if(tab.index=="1"){
-    flowLogRef.value.getLogList()
-  }else if(tab.index=="2"){
-    getRunStep({formTable:formTable.value,formId:formId.value}).then((res:any)=>{
-      showFlowCheckRef.value.showDesign({flowId:res.data?.runFlow||'0',processId:res.data?.runFlowNode||''})
-    })
-  }
+	if (tab.index == '1') {
+		flowLogRef.value.getLogList()
+	} else if (tab.index == '2') {
+		getRunStep({ formTable: formTable.value, formId: formId.value }).then((res: any) => {
+			showFlowCheckRef.value.showDesign({ flowId: res.data?.runFlow || '0', processId: res.data?.runFlowNode || '' })
+		})
+	}
 }
-const {proxy} = <any>getCurrentInstance()
+const { proxy } = <any>getCurrentInstance()
+const { t } = useI18n()
 const dataId = ref(0)
-const formData = ref({});
+const formData = ref({})
 const detailData = ref({
-  rule: [],
-  option: {} as any,
+	rule: [],
+	option: {} as any,
 })
 const state = reactive<FlowFormEditState>({
-  loading:false,
-  isShowDialog: false,
-  formData: {
-    id: undefined,
-    name: undefined,
-    status: false ,
-    remark: undefined,
-    createdAt: undefined,
-    updatedAt: undefined,
-    deletedAt: undefined,
-    createdBy: undefined,
-    updatedBy: undefined,
-    conf: undefined,
-    fields: undefined,
-  },
-  // 表单校验
-  rules: {
-    name : [
-      { required: true, message: "表单名不能为空", trigger: "blur" }
-    ],
-    status : [
-      { required: true, message: "状态不能为空", trigger: "blur" }
-    ],
-  }
-});
-const {isShowDialog} = toRefs(state);
+	loading: false,
+	isShowDialog: false,
+	formData: {
+		id: undefined,
+		name: undefined,
+		status: false,
+		remark: undefined,
+		createdAt: undefined,
+		updatedAt: undefined,
+		deletedAt: undefined,
+		createdBy: undefined,
+		updatedBy: undefined,
+		conf: undefined,
+		fields: undefined,
+	},
+	// 表单校验
+	rules: {
+		name: [{ required: true, message: '表单名不能为空', trigger: 'blur' }],
+		status: [{ required: true, message: '状态不能为空', trigger: 'blur' }],
+	},
+})
+const { isShowDialog } = toRefs(state)
 // 打开弹窗
 const openDialog = async (row?: FlowFormTableColumns) => {
-  resetForm();
-  if(row) {
-    formId.value = row.actionBtn.wfFid
-    formTable.value = row.actionBtn.wfType
-    await getFlowForm(row.id!).then((res:any)=>{
-      const data = res;
-      data.createdBy = data.createdUser?.userNickname
-      data.updatedBy = data.updatedUser?.userNickname
-      state.formData = data;
-      setConfAndFields2(detailData, data.conf, data.fields)
-      detailData.value.option.submitBtn = false //隐藏提交按钮
-      detailData.value.option.resetBtn = false //隐藏重置按钮
-    })
-    if(row.dataId && row.dataId!=0){
-      dataId.value = row.dataId
-      //获取表单数据
-      getFlowFormData({formId:row.id,dataId:row.dataId}).then((res:any)=>{
-        formData.value = res.data
-      })
-    }
-  }
-  state.isShowDialog = true;
-};
+	resetForm()
+	if (row) {
+		formId.value = row.actionBtn.wfFid
+		formTable.value = row.actionBtn.wfType
+		await getFlowForm(row.id!).then((res: any) => {
+			const data = res
+			data.createdBy = data.createdUser?.userNickname
+			data.updatedBy = data.updatedUser?.userNickname
+			state.formData = data
+			setConfAndFields2(detailData, data.conf, data.fields)
+			detailData.value.option.submitBtn = false //隐藏提交按钮
+			detailData.value.option.resetBtn = false //隐藏重置按钮
+		})
+		if (row.dataId && row.dataId != 0) {
+			dataId.value = row.dataId
+			//获取表单数据
+			getFlowFormData({ formId: row.id, dataId: row.dataId }).then((res: any) => {
+				formData.value = res.data
+			})
+		}
+	}
+	state.isShowDialog = true
+}
 // 关闭弹窗
 const closeDialog = () => {
-  state.isShowDialog = false;
-};
+	state.isShowDialog = false
+}
 // 取消
 const onCancel = () => {
-  closeDialog();
-};
-const resetForm = ()=>{
-  state.formData = {
-    id: undefined,
-    name: undefined,
-    status: false ,
-    remark: undefined,
-    createdAt: undefined,
-    updatedAt: undefined,
-    deletedAt: undefined,
-    createdBy: undefined,
-    updatedBy: undefined,
-    conf: undefined,
-    fields: undefined,
-  }
-  dataId.value = 0
-  formData.value = {};
-  activeName.value = '0'
-};
-defineExpose({openDialog})
+	closeDialog()
+}
+const resetForm = () => {
+	state.formData = {
+		id: undefined,
+		name: undefined,
+		status: false,
+		remark: undefined,
+		createdAt: undefined,
+		updatedAt: undefined,
+		deletedAt: undefined,
+		createdBy: undefined,
+		updatedBy: undefined,
+		conf: undefined,
+		fields: undefined,
+	}
+	dataId.value = 0
+	formData.value = {}
+	activeName.value = '0'
+}
+defineExpose({ openDialog })
 </script>
 <style scoped>
 /*.flow-flowForm-detail :deep(.el-form-item__content ._fc-submit-btn),
 .flow-flowForm-detail :deep(.el-form-item__content ._fc-reset-btn){
   display: none;
 }*/
-.flow-flowForm-detail :deep(.el-form-item__label){
-  font-weight: bolder;
+.flow-flowForm-detail :deep(.el-form-item__label) {
+	font-weight: bolder;
+}
+.pic-block {
+	margin-right: 8px;
 }
-.pic-block{
-  margin-right: 8px;
+.file-block {
+	width: 100%;
+	border: 1px solid var(--el-border-color);
+	border-radius: 6px;
+	cursor: pointer;
+	position: relative;
+	overflow: hidden;
+	transition: var(--el-transition-duration-fast);
+	margin-bottom: 5px;
+	padding: 3px 6px;
 }
-.file-block{
-  width: 100%;
-  border: 1px solid var(--el-border-color);
-  border-radius: 6px;
-  cursor: pointer;
-  position: relative;
-  overflow: hidden;
-  transition: var(--el-transition-duration-fast);
-  margin-bottom: 5px;
-  padding: 3px 6px;
+.ml-2 {
+	margin-right: 5px;
 }
-.ml-2{margin-right: 5px;}
-.form-create-show{
-  width: 100%;
-  padding: 16px;
+.form-create-show {
+	width: 100%;
+	padding: 16px;
 }
 </style>

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

@@ -37,7 +37,7 @@
                 <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>
+                <el-form-item :label="t('message.flowModel.updatedBy')">{{ formData.updatedBy }}</el-form-item>
               </el-col>
             </el-row>
           </el-form>
@@ -122,13 +122,13 @@
         // 表单校验
         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" }
           ],
         }
       });

+ 25 - 23
src/views/flow/flowModel/monitor/index.vue

@@ -5,10 +5,10 @@
         <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="title">
+              <el-form-item :label="t('message.flowModel.title')" prop="title">
                 <el-input
                     v-model="tableData.param.title"
-                    placeholder="请输入标题"
+                    :placeholder="t('message.flowModel.enterTitle')"
                     clearable
                     @keyup.enter.native="monitorList"
                 />
@@ -16,8 +16,8 @@
             </el-col>
             <el-col :span="8" class="colBlock">
               <el-form-item>
-                <el-button type="primary"   @click="monitorList"><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="monitorList"><el-icon><ele-Search /></el-icon>{{ t('message.flowModel.searchText') }}</el-button>
+                <el-button  @click="resetQuery(queryRef)"><el-icon><ele-Refresh /></el-icon>{{ t('message.flowModel.resetText') }}</el-button>
               </el-form-item>
             </el-col>
           </el-row>
@@ -29,44 +29,44 @@
                 :disabled="multiple"
                 @click="handleDelete(null)"
                 v-auth="'api/v1/flow/flowModel/stop'"
-            ><el-icon><ele-RemoveFilled/></el-icon>终止</el-button>
+            ><el-icon><ele-RemoveFilled/></el-icon>{{ t('message.flowModel.stopButton') }}</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="运行ID" align="center" prop="id"
+        <el-table-column :label="t('message.flowModel.runId')" align="center" prop="id"
                          min-width="150px"
         />
-        <el-table-column label="流程名称" align="center" prop="flowInfo.name"
+        <el-table-column :label="t('message.flowModel.flowNameCol')" align="center" prop="flowInfo.name"
                          min-width="150px"
         />
-        <el-table-column label="流程类型" align="center" prop="formTable"
+        <el-table-column :label="t('message.flowModel.flowTypeCol')" align="center" prop="formTable"
                          min-width="150px"
         />
-        <el-table-column label="业务名称" align="center" prop="runName"
+        <el-table-column :label="t('message.flowModel.businessNameCol')" align="center" prop="runName"
                          min-width="150px"
         />
-        <el-table-column label="业务ID" align="center" prop="formId"
+        <el-table-column :label="t('message.flowModel.businessIdCol')" align="center" prop="formId"
                          min-width="150px"
         />
-        <el-table-column label="流程执行时间" align="center" prop="dateline"
+        <el-table-column :label="t('message.flowModel.flowExecTimeCol')" align="center" prop="dateline"
                          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.operationCol')" align="center" class-name="small-padding" min-width="200px" fixed="right">
           <template #default="scope">
             <el-button
                 type="primary"
                 link
                 @click="handleDelete(scope.row)"
                 v-auth="'api/v1/flow/flowModel/stopv'"
-            ><el-icon><ele-RemoveFilled /></el-icon>终止</el-button>
+            ><el-icon><ele-RemoveFilled /></el-icon>{{ t('message.flowModel.stopCol') }}</el-button>
             <el-button
                 type="primary"
                 link
                 @click="handleProxy(scope.row)"
                 v-auth="'api/v1/flow/flowModel/proxy'"
-            ><el-icon><ele-User /></el-icon>代审</el-button>
+            ><el-icon><ele-User /></el-icon>{{ t('message.flowModel.proxyCol') }}</el-button>
           </template>
         </el-table-column>
       </el-table>
@@ -87,7 +87,9 @@ import {toRefs, reactive, onMounted, ref,  computed,getCurrentInstance,toRaw} fr
 import {ElMessageBox, ElMessage, FormInstance} from 'element-plus';
 import {getMonitor, stopRun} from "/@/api/flow/flowModel";
 import {MonitorTableColumnsState,MonitorTableColumns} from "/@/views/flow/flowModel/monitor/component/model";
+import { useI18n } from 'vue-i18n'
 
+const { t } = useI18n()
 const {proxy} = <any>getCurrentInstance()
 const loading = ref(false)
 const queryRef = ref()
@@ -101,9 +103,9 @@ const ckFlowRef = ref()
 const word = computed(()=>{
   if(showAll.value === false) {
     //对文字进行处理
-    return "展开搜索";
+    return t('message.flowModel.expandSearchText');
   } else {
-    return "收起搜索";
+    return t('message.flowModel.collapseSearchText');
   }
 })
 const state = reactive<MonitorTableColumnsState>({
@@ -160,7 +162,7 @@ const handleSelectionChange = (selection:Array<MonitorTableColumns>) => {
   multiple.value = !selection.length
 }
 const handleDelete = (row: MonitorTableColumns|null) => {
-  let msg = '是否要终止流程【此操作不可恢复】?';
+  let msg = t('message.flowModel.confirmStopMessage');
   let id:number[] = [] ;
   if(row){
     id = [row.id]
@@ -168,17 +170,17 @@ const handleDelete = (row: MonitorTableColumns|null) => {
     id = state.ids
   }
   if(id.length===0){
-    ElMessage.error('请选择要终止的流程。');
+    ElMessage.error(t('message.flowModel.pleaseSelectStopDataMessage'));
     return
   }
-  ElMessageBox.confirm(msg, '提示', {
-    confirmButtonText: '确认',
-    cancelButtonText: '取消',
+  ElMessageBox.confirm(msg, t('message.flowModel.confirmStopTitle'), {
+    confirmButtonText: t('message.flowModel.confirmStopConfirm'),
+    cancelButtonText: t('message.flowModel.confirmStopCancel'),
     type: 'warning',
   })
       .then(() => {
         stopRun(id).then(()=>{
-          ElMessage.success('终止成功');
+          ElMessage.success(t('message.flowModel.stopSuccessMessage'));
           monitorList();
         })
       })
@@ -187,7 +189,7 @@ const handleDelete = (row: MonitorTableColumns|null) => {
 const handleProxy =(row: MonitorTableColumns)=>{
   row.actionBtn = {
     api: "wfCheck",
-    title: "代审",
+    title: t('message.flowModel.proxyButton'),
     type: "link",
     wfFid: row.formId,
     wfModelType: row.flowInfo.flowType,