瀏覽代碼

中英文,formbug

asd26269546 1 年之前
父節點
當前提交
a9d7ccda92

+ 9 - 10
src/components/byForm/index.vue

@@ -29,12 +29,11 @@
         <el-input
           v-if="i.type == 'input'"
           v-model="formData[i.prop]"
-          :placeholder="i.placeholder || '请输入'"
+          :placeholder="i.placeholder || $t('common.pleaseEnter')"
           @input="(e) => commonsEmit(e, i)"
           @change="(e) => commonsEmitChange(e, i)"
           :type="i.itemType ? i.itemType : 'text'"
           :disabled="i.disabled ? i.disabled : false"
-          v-mousewheel
           :max="i.max"
           :min="i.min"
           :maxlength="i.maxlength"
@@ -44,7 +43,7 @@
         <el-input
           v-if="i.type == 'selectInput'"
           v-model="formData[i.prop]"
-          :placeholder="i.placeholder || '请输入'"
+          :placeholder="i.placeholder || $t('common.pleaseEnter')"
           @input="(e) => commonsEmit(e, i)"
           :type="i.itemType ? i.itemType : 'text'"
           :disabled="i.disabled ? i.disabled : false"
@@ -56,7 +55,7 @@
           <template #prepend>
             <el-select
               v-model="formData[i.selectProp]"
-              :placeholder="i.selectPlaceholder || '请选择'"
+              :placeholder="i.selectPlaceholder || $t('common.pleaseSelect')"
               @change="(e) => commonsEmit(e, i)"
               :disabled="i.disabled ? i.disabled : false"
               :readonly="i.readonly ? i.readonly : false"
@@ -76,7 +75,7 @@
           v-model="formData[i.prop]"
           :multiple="i.multiple || false"
           v-else-if="i.type == 'select'"
-          :placeholder="i.placeholder || '请选择'"
+          :placeholder="i.placeholder || $t('common.pleaseSelect')"
           @change="(e) => commonsEmit(e, i)"
           :disabled="i.disabled ? i.disabled : false"
           :filterable="i.filterable ? true : false"
@@ -102,7 +101,7 @@
             children: i.propsTreeChildren || 'children',
           }"
           value-key="id"
-          :placeholder="i.placeholder || '请选择'"
+          :placeholder="i.placeholder || $t('common.pleaseSelect')"
           :disabled="i.disabled ? i.disabled : false"
           check-strictly
           :style="i.style"
@@ -112,7 +111,7 @@
           :readonly="i.readonly ? i.readonly : false"
           v-else-if="i.type == 'date'"
           :type="i.itemType"
-          :placeholder="i.placeholder || '请选择时间'"
+          :placeholder="i.placeholder || $t('common.pleaseSelectTime')"
           @change="(e) => commonsEmit(e, i)"
           :disabled="i.disabled ? i.disabled : false"
           :format="i.format ? i.format : dateFormatInit(i.itemType)"
@@ -159,7 +158,7 @@
           v-else-if="i.type == 'number'"
           v-model="formData[i.prop]"
           :readonly="i.readonly ? i.readonly : false"
-          :placeholder="i.placeholder || '请输入'"
+          :placeholder="i.placeholder || $t('common.pleaseEnter')"
           @change="(e) => commonsEmit(e, i)"
           :disabled="i.disabled ? i.disabled : false"
           :min="i.min ? i.min : 0"
@@ -184,7 +183,7 @@
           :options="i.data"
           :props="i.props"
           :readonly="i.readonly ? i.readonly : false"
-          :placeholder="i.placeholder || '请选择'"
+          :placeholder="i.placeholder || $t('common.pleaseSelect')"
           @change="(e) => commonsEmit(e, i)"
           :disabled="i.disabled ? i.disabled : false"
           :style="i.style"
@@ -227,7 +226,7 @@
                   @change="(e) => formTableChange(e, scope, j)"
                   v-model="scope.row[j.prop]"
                   :is="formTableObj[j.type]"
-                  :placeholder="j.placeholder || '请输入'"
+                  :placeholder="j.placeholder || $t('common.pleaseEnter')"
                   :type="j.type == 'number' ? 'number' : 'text'"
                 >
                   <el-option

+ 3 - 26
src/components/byTable/index.vue

@@ -44,7 +44,7 @@
                 justify-content: center;
               "
             >
-              全部
+              {{$t('common.all')}}
             </li>
             <li
               v-for="j in i.data"
@@ -64,7 +64,7 @@
 
       <div style="display: flex">
         <el-input
-          placeholder="请输入关键字"
+          :placeholder="$t('common.pleaseEnterKeywords')"
           suffix-icon="search"
           size="mini"
           v-model="pagination.keyword"
@@ -76,34 +76,11 @@
           style="margin-left: 10px"
           size="default"
           @click="searchFn"
-          >搜索</el-button
+          >{{$t('common.search')}}</el-button
         >
-
         <div class="more-icon" @click="retrievalModalFn"><img src="@/assets/images/iconm_xiangyzk.png" alt=""></div>
-        
       </div>
     </div>
-    <el-drawer v-model="retrievalModal" direction="rtl">
-      <template #header>
-        <h4>高级检索</h4>
-      </template>
-      <template #default>
-        <div>
-          <el-radio v-model="radio1" label="Option 1" size="large"
-            >Option 1</el-radio
-          >
-          <el-radio v-model="radio1" label="Option 2" size="large"
-            >Option 2</el-radio
-          >
-        </div>
-      </template>
-      <template #footer>
-        <div style="flex: auto">
-          <el-button @click="cancelClick">cancel</el-button>
-          <el-button type="primary" @click="confirmClick">confirm</el-button>
-        </div>
-      </template>
-    </el-drawer>
     <component :is="containerTag">
       <div class="filter-form-container">
         <slot />

+ 15 - 15
src/components/headerBar/header-bar.vue

@@ -10,7 +10,7 @@
         <li class="header-bar-hover-warp nav-li" :class="isChildMenu ? 'active' : ''">
           <div @click="isChildMenu = !isChildMenu" class="menu-modal">
             <i class="iconfont icon-icomx_gongndh" style="margin: 0 5px 0 0"></i>
-            功能导览
+            {{$t('header.functionGuide')}}
             <i class="iconfont icon-iconm_xialan1" style="margin: 0 0 0 3px"></i>
           </div>
         </li>
@@ -19,7 +19,7 @@
             <span>{{ i.menuName }}</span>
           </li>
           <li class="nav-li more-box" v-show="commonsRouterList.length > autoListChidrenNum - 1">
-            更多
+            {{$t('header.more')}}
             <i class="iconfont icon-iconm_xialan1"></i>
             <ul class="more-list">
               <li v-for="(i, index) in commonsRouterList" v-show="index >= autoListChidrenNum - 1" :key="i.id">
@@ -36,13 +36,13 @@
                   <el-icon size="16" color="#0084FF">
                     <edit />
                   </el-icon>
-                  常用功能
+                  {{$t('header.commonFunctions')}}
                 </div>
                 <div class="first-order">
                   <el-icon size="16" color="#0084FF">
                     <edit />
                   </el-icon>
-                  功能菜单
+                  {{$t('header.functionMenu')}}
                 </div>
                 <ul>
                   <li @click="openLeftBaner(i, index)" v-for="(i, index) in sidebarRoutersCopy" :key="i.name" v-show="i.type == 1 && i.status == '0'">
@@ -84,7 +84,7 @@
                 </ul>
               </div>
               <div class="menu-warp" v-show="leftBanerType == 2">
-                <div class="first-order-title">常用功能</div>
+                <div class="first-order-title">{{$t('header.commonFunctions')}}</div>
                 <div class="commons-warp">
                   <div>
                     <div class="header-button-box cp" v-for="(i, index) in commonsRouterList" :key="i.name" @click="commonsBannerToRouter(i)">
@@ -100,11 +100,11 @@
                       <el-icon color="#46A6FF">
                         <CirclePlus />
                       </el-icon>
-                      编辑功能
+                      {{$t('header.edit')}}
                     </div>
                   </div>
                 </div>
-                <div class="first-order-title" v-if="isEidtType">待添加功能</div>
+                <div class="first-order-title" v-if="isEidtType">{{$t('header.toAdd')}}</div>
                 <div class="all-menu-warp" v-if="isEidtType">
                   <div v-for="(i, index) in sidebarRoutersCopy" :key="i.name" v-show="i.type === 1">
                     <div class="all-menu-title" v-for="(j, jindex) in i.children" :key="j.name">
@@ -147,13 +147,13 @@
           <template #dropdown>
             <el-dropdown-menu>
               <router-link to="/user/profile">
-                <el-dropdown-item>个人中心</el-dropdown-item>
+                <el-dropdown-item>{{$t('header.personalCenter')}}</el-dropdown-item>
               </router-link>
               <el-dropdown-item command="setLayout">
-                <span>布局设置</span>
+                <span>{{$t('header.layoutSettings')}}</span>
               </el-dropdown-item>
               <el-dropdown-item divided command="logout">
-                <span>退出登录</span>
+                <span>{{$t('header.logout')}}</span>
               </el-dropdown-item>
             </el-dropdown-menu>
           </template>
@@ -219,7 +219,7 @@ const addCommonsRouter = (index, jindex, nindex, n) => {
     const element = commonsRouterList.value[i];
     if (element.menuId === n.menuId) {
       ElMessage({
-        message: "此目录已添加",
+        message: proxy.t('header.thisDirectoryHasBeenAdded'),
         type: "error",
       });
       return;
@@ -227,7 +227,7 @@ const addCommonsRouter = (index, jindex, nindex, n) => {
   }
   if (n.hidden) {
     ElMessage({
-      message: "此目录需要额外参数,暂不支持添加",
+      message: proxy.t('header.thisDirectoryRequiresAdditionalParameters'),
       type: "error",
     });
     return;
@@ -287,9 +287,9 @@ function handleCommand(command) {
 }
 
 function logout() {
-  ElMessageBox.confirm("确定注销并退出系统吗?", "提示", {
-    confirmButtonText: "确定",
-    cancelButtonText: "取消",
+  ElMessageBox.confirm(proxy.t('header.areYouSureYouWantToLogOutAndExitTheSystem'), proxy.t('common.prompt'), {
+    confirmButtonText:  proxy.t('common.confirm'),
+    cancelButtonText: proxy.t('common.cancel'),
     type: "warning",
   })
     .then(() => {

+ 7 - 5
src/directive/permission/mousewheel.js

@@ -6,10 +6,12 @@
 
 export default {
     mounted(el, binding, vnode) {
-        const elem = el.tagName === 'INPUT' ? el : el.querySelector('input');
-        elem.blur();
-        elem.onmousewheel = function (e) {
-            return false;
-        }
+        // console.log(el,1231231231)
+        // return
+        // const elem = el.tagName === 'INPUT' ? el : el.querySelector('input');
+        
+        // elem.onmousewheel = function (e) {
+        //     return false;
+        // }
     }
 }

+ 71 - 116
src/lang/cn.js

@@ -1,124 +1,79 @@
 
 export const lang = {
-	equipment:{
-		stat:"状态",
-		model:'产品型号',
-		running:"运行中",
-		offLine:"离线",
-		standby:"待机",
-		auxiliaryMachine:"辅助机器",
-		yield:"产量",
-		temperature:"平均温度",
-		humidity:"平均湿度",
-		equipmentStatus:"设备状态",
-		operatingMode:"工作模式",
-		productionData:"产量数据",
-		ultimateOutput:"极限产量",
-		actualOutput:"实际产量",
+	common:{
+		//提示,取消,确认,请输入关键词,请输入,请选择,请选择日期,请选择时间,搜索,全部,修改,删除,新增,详情,保存,返回,操作,排序,暂无数据,创建时间
+		prompt:"提示",
+		cancel:"取消",
+		confirm:"确认",
+		pleaseEnterKeywords:"请输入关键词",
+		pleaseEnter:"请输入",
+		pleaseSelect:"请选择",
+		pleaseSelectDate:"请选择日期",
+		pleaseSelectTime:"请选择时间",
+		search:"搜索",
+		all:"全部",
+		edit:"修改",
+		delete:"删除",
+		add:"新增",
+		details:"详情",
+		save:"保存",
+		return:"返回",
+		operation:"操作",
+		serialNumber:"排序",
+		noData:"暂无数据",
+		createTime:"创建时间",
 	},
-	sterilization:{
-		name:"灭菌柜",
-		pressure:"气压",
-		gasTemp:"Gas Temp",
-		EO:"E.O.温度",
-		waterTemperature:"水温",
-		humidity:"湿度",
-		averageTemperature:"平均温度",
-		hotbox:"温箱",
-	},
-	threadedHead:{
-		name:"螺纹头",
-		converterStartup:"变频器启动",
-		mainCompressedAirValve:"压缩空气总阀",
-		separatingDisc:"分离盘",
-		injectionValve:"喷油阀",
-		stationVibrationDisk:"工位振动盘",
-	},
-	rollPrinting:{
-		name:"滚印机",
-		frequencyOfMainMotor:"主电机频率",
-		injectionValve:"喷油阀",
-		variableFrequencyMotor:"变频电机",
-		frequency:"频率",
-		heatingMotor:"加热电机",
-		firstCurrentTemperature:"第一当前温度",
-		secondCurrentTemperature:"第二当前温度",
-		fuelInjectionMotor:"喷油电机",
-		oilPumpMotor:"油泵电机",
-		storageMotor:"蓄料电机",
-		centrifugalMotor:"离心电机",
-		
-	},
-	injection:{
-		name:"注塑机",
-		MoldStatus:"模具状态",
-		hydraulicPress:"液压机",
-		hydraulicOilTemperature:"液压油温度",
-		cylinderTemperature:"简体温度",
-		channel:"通道",
-		pressure:"压力",
-		speed:"速度",
-		videoInstruction:"视频说明书"
-	},
-	assemblingMachine:{
-		name:'组装机',
-		mainMotor:"主电机",
-		valve:"气阀",
-		centrifuge:"离心机",
-		frequencyOfMainMotor:"主电机频率",
-		stopperRate:"胶塞速率",
-		tipVelocity:"针尖速率",
-		rubberStopperSentHorizontally:"胶塞平送",
-		needleTipFlatFeeding:"针尖平送",
-	},
-	warpKnitting:{
-		name:'经编机',
-		spindleSpeed:'主轴转速',
-		jaca:'贾卡',
-		traverse:'横移',
-		currentClothLength:'当前布长',
-		setClothLength:'设定布长',
-		density:'密度',
-		warpLetOffAxis:'送经轴',
-		remainingTurns:'剩余圈数',
-		timeRemaining:'剩余时间',
-		traction:'牵拉',
-		crimp:'卷曲',
-		processwidth:'工艺宽度',
-		processHeight:'工艺高度',
-		totalNumberOfAxles:'总轴数',
-	},
-	packer:{
-		name:'包装机',
-		production:'12小时产量',
-		plannedOutput:"计划产量",
-		versionsPerMinute:"每分钟版数",
-		numberOfModules:"每模个数",
-		singleModeDistance:'单模距离',
-		alignmentDistance:"对版距离",
-		jogSpeed:"点动速度",
-		chainSpeed:'链条速度',
-		alignmentSpeed:"对版速度"
+	dept:{
+		//机构名称,机构类型,创建时间,添加机构,租户列表,上级机构,机构名称,机构类型,负责人,总监,请输入用户名,密码,随机生成
+		deptName:"机构名称",
+		deptType:"机构类型",
+		createTime:"创建时间",
+		addDept:"添加机构",
+		tenantList:"租户列表",
+		parentDept:"上级机构",
+		deptName:"机构名称",
+		deptType:"机构类型",
+		deptManager:"负责人",
+		deptDirector:"总监",
+		pleaseEnterTheUsername:"请输入用户名",
+		pleaseEnterThePassword:"请输入密码",
 	},
 	login:{
-		deviceInformation:"设备信息",
-		switchLanguage:'switch English',
-		logOut:'退出登录',
-		title:"ByteSailing管理系统",
-		form:{
-			tenantId:"请输入租户ID",
-			username:"请输入账号",
-			password:"请输入密码",
-			
-		},
-		loginText:'登录',
-		demo:"demo",
-		agreement:{
-			text:"已阅读并同意:Bytesailing",
-			clause:"服务条款",
-			agreement:"隐私协议",
-			and:"和"
-		},
+		//欢迎登录,管理系统,租户ID,账号,密码,验证码,请输入租户ID,请输入账号,请输入密码,请输入验证码,记住密码,登录
+		welcomeToLogin:"欢迎登录",
+		managementSystem:"管理系统",
+		tenantId:"租户ID",
+		username:"账号",
+		password:"密码",
+		verificationCode:"验证码",
+		pleaseEnterTheTenantId:"请输入租户ID",
+		pleaseEnterYourAccountNumber:"请输入账号",
+		pleaseEnterYourPassword:"请输入密码",
+		pleaseEnterTheVerificationCode:"请输入验证码",
+		rememberPassword:"记住密码",
+		login:"登录",
+		li1H3:'为中小企业提供数字化管理',
+		li1P:"一站式定制解决方案",
+		li2H3:"物联网筑基,云计算赋能",
+		li2P:"助力企业实现数字化协同",
+		li3H3:"数据驱动,助力决策",
+		li3P:"SaaS定制全套解决方案",
+	},
+	header:{
+		//常用功能,功能菜单,编辑功能,个人中心,退出登录,功能导览,更多,待添加功能,布局设置,此目录已添加,此目录需要额外参数,暂不支持添加,确定注销并退出系统吗
+		commonFunctions:"常用功能",
+		functionMenu:"功能菜单",
+		edit:"编辑功能",
+		personalCenter:"个人中心",
+		logout:"退出登录",
+		functionGuide:"功能导览",
+		more:"更多",
+		toAdd:"待添加功能",
+		layoutSettings:"布局设置",
+		thisDirectoryHasBeenAdded:"此目录已添加",
+		thisDirectoryRequiresAdditionalParameters:"此目录需要额外参数,暂不支持添加",
+		areYouSureYouWantToLogOutAndExitTheSystem:"确定注销并退出系统吗",
+
 	},
 }
 //导出

+ 2 - 1
src/lang/index.js

@@ -1,12 +1,12 @@
 import { createI18n } from 'vue-i18n'
 import cn from '@/lang/cn'
 import en from '@/lang/en'
-console.log(cn,123987129378192379127389127)
 import {
   download,
   post,
   get
 } from '@/utils/request'
+
 const i18n = createI18n({ 
   legacy: false, // 让 setup 函数可以通过 t 访问
   globalInjection: true, // 让 template 可以像 vue2 那样使用 $t 来访问
@@ -18,6 +18,7 @@ const i18n = createI18n({
     'en-us': en
   }
 })
+
 get('/open/multilingual/getJson',{}).then(res=>{
   // console.log(JSON.parse(res.data),'下载')
   window.localStorage.setItem('lang',res.data)

+ 2 - 1
src/main.js

@@ -77,7 +77,7 @@ import DictTag from '@/components/DictTag'
 // 多语言
 import i18n from "@/lang/index";
 const app = createApp(App)
-
+console.log(i18n.global.t('login.welcomeToLogin'))
 // 全局方法挂载
 app.config.globalProperties.useDict = useDict
 app.config.globalProperties.get = get
@@ -89,6 +89,7 @@ app.config.globalProperties.handleTree = handleTree
 app.config.globalProperties.addDateRange = addDateRange
 app.config.globalProperties.selectDictLabel = selectDictLabel
 app.config.globalProperties.selectDictLabels = selectDictLabels
+app.config.globalProperties.t = i18n.global.t
 //字典回显
 app.config.globalProperties.dictDataEcho = dictDataEcho
 app.config.globalProperties.dictValueLabel = dictValueLabel

+ 1 - 0
src/store/modules/tagsView.js

@@ -34,6 +34,7 @@ const useTagsViewStore = defineStore(
         }
       },
       delView(view) {
+        console.log(view)
         return new Promise(resolve => {
           this.delVisitedView(view)
           this.delCachedView(view)

+ 13 - 13
src/views/login.vue

@@ -14,16 +14,16 @@
               :autoplay="true"
             >
               <el-carousel-item>
-                <h3>为中小企业提供数字化管理</h3>
-                <p>一站式定制解决方案</p>
+                <h3>{{$t('login.li1H3')}}</h3>
+                <p>{{$t('login.li1P')}}</p>
               </el-carousel-item>
               <el-carousel-item>
-                <h3>物联网筑基,云计算赋能</h3>
-                <p>助力企业实现数字化协同</p>
+                <h3>{{$t('login.li2H3')}}</h3>
+                <p>{{$t('login.li2P')}}</p>
               </el-carousel-item>
               <el-carousel-item>
-                <h3>数据驱动,助力决策</h3>
-                <p>loT-SaaS定制全套解决方案</p>
+                <h3>{{$t('login.li3H3')}}</h3>
+                <p>{{$t('login.li3P')}}</p>
               </el-carousel-item>
             </el-carousel>
           </div>
@@ -36,11 +36,11 @@
             class="login-form"
           >
             <div class="form" style="margin-top: 300px">
-              <div class="">欢迎登录~</div>
-              <h2>ByteSailing 管理系统</h2>
+              <div class="">{{$t('login.welcomeToLogin')}}~</div>
+              <h2>ByteSailing {{$t('login.managementSystem')}}</h2>
               <el-form-item prop="tenantId" style="margin-top: 30px">
                 <el-input
-                  placeholder="请输入租户号"
+                  :placeholder="$t('login.pleaseEnterTheTenantId')"
                   prefix-icon="user"
                   @keyup.enter="handleLogin"
                   autocomplete="email"
@@ -50,7 +50,7 @@
               </el-form-item>
               <el-form-item prop="username" style="margin-top: 30px">
                 <el-input
-                  placeholder="请输入账号"
+                  :placeholder="$t('login.pleaseEnterYourAccountNumber')"
                   prefix-icon="UserFilled"
                   @keyup.enter="handleLogin"
                   autocomplete="username"
@@ -60,7 +60,7 @@
               </el-form-item>
               <el-form-item prop="password" style="margin-top: 30px">
                 <el-input
-                  placeholder="请输入密码"
+                  :placeholder="$t('login.pleaseEnterYourPassword')"
                   prefix-icon="View"
                   type="password"
                   v-model="loginForm.password"
@@ -82,14 +82,14 @@
                 <el-checkbox
                   v-model="loginForm.rememberMe"
                   style="margin: 0px 0px 25px 0px"
-                  >记住密码</el-checkbox
+                  >{{$t('login.rememberPassword')}}</el-checkbox
                 >
               </div>
               <el-button
                 type="primary"
                 @click="handleLogin"
                 style="width: 100%; margin-top: 30px"
-                >登录</el-button
+                >{{$t('login.login')}}</el-button
               >
             </div>
           </el-form>

+ 1 - 0
src/views/process/processConfig/index.vue

@@ -389,6 +389,7 @@ const getDtl = (row) => {
 		path: 'processChart',
 		query: {
 			id: row.flowInfoId,
+			flowInfoId:row.flowInfoId,
 			tenantId:row.tenantId
 		},
 	})

+ 1 - 1
src/views/process/processConfig/processChart.vue

@@ -20,7 +20,7 @@
 	</div>
 </template>
 
-<script setup>
+<script setup name="ProcessChart">
 
 import vueFlow from '@/views/process/processConfig/vueFlow.vue'
 const title = ref('')

+ 7 - 3
src/views/process/processConfig/vueFlow.vue

@@ -72,6 +72,7 @@ import startBtn from './startBtn.vue'
 import endBtn from './endBtn.vue'
 import handleBtn from './handleBtn.vue'
 import { MiniMap } from "@antv/x6-plugin-minimap";
+import useTagsViewStore from '@/store/modules/tagsView'
 defineProps({
 	title: {
 		type: Object,
@@ -377,6 +378,10 @@ const addVersion = () => {
 			message: '保存成功',
 			type: 'success',
 		})
+		console.log(router)
+		useTagsViewStore().delView(router.currentRoute.value);
+		history.go(-1)
+
 	})
 }
 
@@ -837,13 +842,12 @@ const getFlowInfo =	(()=>{
 		
 	})
 })
-
+const router = useRouter()
 
 onMounted(() => {
 	antvInit()
 	//获取url router参数
-	const router = useRouter()
-	submitFormData.flowInfoId = router.currentRoute.value.query.id
+	submitFormData.flowInfoId = router.currentRoute.value.query.id 
 	submitFormData.tenantId = router.currentRoute.value.query.tenantId
 	if(submitFormData.flowInfoId) {
 		//getFlowInfo()

+ 13 - 13
src/views/system/dept2/index.vue

@@ -17,7 +17,7 @@
         }"
         :action-list="[
           {
-            text: '添加机构',
+            text: $t('dept.addDept'),
             action: () => openModal('add'),
             disabled: !sourceList.pagination.tenantId,
           },
@@ -36,28 +36,28 @@
           children: 'children',
           hasChildren: 'hasChildren',
         }">
-        <el-table-column prop="deptName" label="机构名称" width="260"></el-table-column>
-        <el-table-column prop="orderNum" label="排序" width="100"></el-table-column>
-        <el-table-column prop="type" label="机构类型" width="100" :formatter="(row) => showType(row.type)"> </el-table-column>
-        <el-table-column label="创建时间" align="center" prop="createTime" width="200">
+        <el-table-column prop="deptName" :label="$t('dept.deptName')" width="260"></el-table-column>
+        <el-table-column prop="orderNum" :label="$t('common.serialNumber')" width="100"></el-table-column>
+        <el-table-column prop="type" :label="$t('dept.deptType')" width="100" :formatter="(row) => showType(row.type)"> </el-table-column>
+        <el-table-column :label="$t('common.createTime')" align="center" prop="createTime" width="200">
           <template #default="scope">
             <span>{{ parseTime(scope.row.createTime) }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <el-table-column :label="$t('common.operation')" align="center" class-name="small-padding fixed-width">
           <template #default="scope">
-            <el-button link type="primary" @click="getDtl(scope.row)">修改</el-button>
-            <el-button link type="primary" @click="handleAdd(scope.row)">新增</el-button>
-            <el-button v-if="scope.row.parentId != 0" link type="primary" @click="listDelete(scope.row)">删除</el-button>
+            <el-button link type="primary" @click="getDtl(scope.row)">{{$t('common.edit')}}</el-button>
+            <el-button link type="primary" @click="handleAdd(scope.row)">{{$t('common.add')}}</el-button>
+            <el-button v-if="scope.row.parentId != 0" link type="primary" @click="listDelete(scope.row)">{{$t('common.delete')}}</el-button>
           </template>
         </el-table-column>
       </el-table>
     </div>
-    <el-dialog :title="modalType == 'add' ? '新增' : '编辑'" v-if="dialogVisible" v-model="dialogVisible" width="500" v-loading="loading">
+    <el-dialog :title="modalType == 'add' ? $t('common.add') : $t('common.edit')" v-if="dialogVisible" v-model="dialogVisible" width="500" v-loading="loading">
       <byForm :formConfig="formConfig" :formOption="formOption" v-model="formData.data" :rules="rules" ref="byform">
-        <template #account>
-          <el-input style="width: 150px; margin-right: 10px" v-model="formData.data.userName" placeholder="请输入用户名"></el-input>
-          <el-input style="width: 150px; margin-right: 10px" v-model="formData.data.password" placeholder="密码"></el-input>
+        <template #account>pleaseEnterTheUsername
+          <el-input style="width: 150px; margin-right: 10px" v-model="formData.data.userName" :placeholder="$t('dept.pleaseEnterTheUsername')"></el-input>
+          <el-input style="width: 150px; margin-right: 10px" v-model="formData.data.password" :placeholder="$t('dept.pleaseEnterThePassword')"></el-input>
           <span style="color: #409eff; cursor: pointer" @click="newPassword">随机生成</span>
         </template>
       </byForm>