kz-ui-base 1.0.159 → 1.0.161

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,19 +5,19 @@
5
5
  v-if="searchVisible">
6
6
  <el-button size="mini" circle icon="el-icon-search" @click="toggleSearch()"/>
7
7
  </el-tooltip> -->
8
- <el-tooltip class="item" effect="dark" content="刷新" placement="top" v-if="refreshVisible">
8
+ <el-tooltip class="item" effect="dark" :content="t('common.refresh')" placement="top" v-if="refreshVisible">
9
9
  <el-button size="mini" circle icon="el-icon-refresh" @click="refresh()"/>
10
10
  </el-tooltip>
11
- <el-tooltip class="item" effect="dark" :content="sortable ? '禁用排序' : '启用排序'" placement="top" v-if="sortVisible">
11
+ <el-tooltip class="item" effect="dark" :content="sortable ? t('common.disableSort') : t('common.enableSort')" placement="top" v-if="sortVisible">
12
12
  <el-button size="mini" circle icon="el-icon-sort" @click="toggleSortable()"/>
13
13
  </el-tooltip>
14
- <el-tooltip class="item" effect="dark" content="显隐列" placement="top" v-if="columns">
14
+ <el-tooltip class="item" effect="dark" :content="t('common.showHideColumn')" placement="top" v-if="columns">
15
15
  <el-button size="mini" circle icon="el-icon-menu" @click="showColumn()"/>
16
16
  </el-tooltip>
17
17
  </el-row>
18
18
  <el-dialog :title="title" :visible.sync="open" append-to-body :before-close="handleClose">
19
19
  <el-transfer
20
- :titles="['显示', '隐藏']"
20
+ :titles="[t('common.show'), t('common.hide')]"
21
21
  v-model="value"
22
22
  :data="columns"
23
23
  @change="dataChange"
@@ -34,7 +34,7 @@ export default {
34
34
  // 显隐数据
35
35
  value: [],
36
36
  // 弹出层标题
37
- title: "显示/隐藏",
37
+ title: "",
38
38
  // 是否显示弹出层
39
39
  sortable: true,
40
40
  open: false
@@ -62,6 +62,7 @@ export default {
62
62
  }
63
63
  },
64
64
  created() {
65
+ this.title = this.t('common.showHide');
65
66
  let displayHideColumn
66
67
  if(localStorage.getItem("displayHideColumn")&&localStorage.getItem("displayHideColumn")!=='{}'){
67
68
  displayHideColumn=JSON.parse(localStorage.getItem("displayHideColumn"))
@@ -11,11 +11,9 @@
11
11
  >
12
12
  <template slot="title">
13
13
  <div class="title-text">
14
- <span class="title-main">添加文件</span
14
+ <span class="title-main">{{ t('common.addFile') }}</span
15
15
  ><span class="title-supplement"
16
- >(只能添加"jpg", "jpeg", "bmp", "png", "gif", "pdf", "doc", "docx",
17
- "md", "xmind", "mp4", "xlsx"
18
- ,"bmp","tif","avi","wmv","xls"大小不超过5M。)</span
16
+ >{{ t('common.addFileTip') }}</span
19
17
  >
20
18
  </div>
21
19
  </template>
@@ -27,7 +25,7 @@
27
25
  class="material"
28
26
  style="height: 500px"
29
27
  >
30
- <el-tab-pane label="我的文件" name="first">
28
+ <el-tab-pane :label="t('common.myFiles')" name="first">
31
29
  <el-container>
32
30
  <el-header class="container-header">
33
31
  <el-row :gutter="20" type="flex" justify="space-between">
@@ -54,7 +52,7 @@
54
52
  icon="el-icon-upload2"
55
53
  :loading="upload.isUploading"
56
54
  >
57
- 直接上传
55
+ {{ t('common.uploadDirectly') }}
58
56
  </el-button>
59
57
  </el-upload>
60
58
  </el-col>
@@ -65,14 +63,14 @@
65
63
  icon="el-icon-folder-add"
66
64
  @click="handleAddFolder"
67
65
  :loading="upload.isUploading"
68
- >新增文件夹
66
+ >{{ t('common.addFolder') }}
69
67
  </el-button>
70
68
  </el-col>
71
69
  </el-row>
72
70
  </el-col>
73
71
  <el-col :xs="4" :sm="4" :md="4" :lg="4" :xl="4" :pull="2">
74
72
  <el-input
75
- placeholder="搜索所有文件"
73
+ :placeholder="t('common.searchAllFiles')"
76
74
  v-model="form.folderName"
77
75
  class="header-search"
78
76
  @change="searchChange"
@@ -233,18 +231,18 @@
233
231
  </el-main>
234
232
  </el-container>
235
233
  </el-tab-pane>
236
- <el-tab-pane label="图库中心" name="second"></el-tab-pane>
234
+ <el-tab-pane :label="t('common.galleryCenter')" name="second"></el-tab-pane>
237
235
  </el-tabs>
238
236
  </div>
239
237
  <div slot="footer" class="dialog-footer dialogTop-footer">
240
238
  <el-button class="dialogTop-footer-button" @click="handleClose"
241
- >取 消</el-button
239
+ >{{ t('common.cancel') }}</el-button
242
240
  >
243
241
  <el-button
244
242
  class="dialogTop-footer-button"
245
243
  type="primary"
246
244
  @click="onSubmit"
247
- >确 定</el-button
245
+ >{{ t('common.confirm') }}</el-button
248
246
  >
249
247
  </div>
250
248
  </el-dialog>
@@ -262,7 +260,7 @@
262
260
  <template slot="title">
263
261
  <div class="minor-title-text">
264
262
  <span class="minor-increase"
265
- >待添加({{ choiceList.length }}/{{ max }})</span
263
+ {{ t('common.toBeAdded') }}({{ choiceList.length }}/{{ max }})</span
266
264
  >
267
265
  </div>
268
266
  </template>
@@ -467,7 +465,7 @@ export default {
467
465
  handleAddFolder() {
468
466
  this.upload.isUploading = true;
469
467
  addFolder(this.form).then((response) => {
470
- this.msgSuccess("新增成功");
468
+ this.msgSuccess(this.t('common.addSuccess'));
471
469
  this.getList();
472
470
  this.upload.isUploading = false;
473
471
  });
@@ -540,12 +538,12 @@ export default {
540
538
  updateMaterialNick(type, item, index) {
541
539
  if (type === 0) {
542
540
  updateFolder(item).then((response) => {
543
- this.msgSuccess("修改成功");
541
+ this.msgSuccess(this.t('common.modifySuccess'));
544
542
  this.getList();
545
543
  });
546
544
  } else if (type === 1) {
547
545
  updateMaterial(item).then((response) => {
548
- this.msgSuccess("修改成功");
546
+ this.msgSuccess(this.t('common.modifySuccess'));
549
547
  this.getList();
550
548
  });
551
549
  }
@@ -554,12 +552,12 @@ export default {
554
552
  imageDelete(type, item, index) {
555
553
  this.$confirm(
556
554
  type === 0
557
- ? "您确定将该文件夹以及该文件夹内的所有文件放入回收站吗?"
558
- : "将文件放入回收站会影响使用该文件的地方,确定放入回收站吗?",
559
- "提示",
555
+ ? this.t('common.deleteFolderConfirm')
556
+ : this.t('common.deleteFileConfirm'),
557
+ this.t('common.tip'),
560
558
  {
561
- confirmButtonText: "确定",
562
- cancelButtonText: "取消",
559
+ confirmButtonText: this.t('common.confirm'),
560
+ cancelButtonText: this.t('common.cancel'),
563
561
  type: "warning",
564
562
  center: true,
565
563
  }
@@ -575,13 +573,13 @@ export default {
575
573
  this.getList();
576
574
  this.$message({
577
575
  type: "success",
578
- message: "删除成功!",
576
+ message: this.t('common.deleteSuccess'),
579
577
  });
580
578
  })
581
579
  .catch(() => {
582
580
  this.$message({
583
581
  type: "info",
584
- message: "已取消删除",
582
+ message: this.t('common.deleteCancelled'),
585
583
  });
586
584
  });
587
585
  },
@@ -590,7 +588,7 @@ export default {
590
588
  const fileSuffix = file.name.substring(file.name.lastIndexOf(".") + 1);
591
589
  if (this.upload.whiteList.indexOf(fileSuffix) === -1) {
592
590
  this.$message({
593
- message: "您上传的文件暂不支持,请联系管理员",
591
+ message: this.t('common.unsupportedFileType'),
594
592
  type: "warning",
595
593
  });
596
594
  return false;
@@ -598,7 +596,7 @@ export default {
598
596
  const isLt2M = file.size / 1024 / 1024 < 100;
599
597
  if (!isLt2M) {
600
598
  this.$message({
601
- message: "上传文件大小不能超过 100MB",
599
+ message: this.t('common.fileSizeLimit'),
602
600
  type: "warning",
603
601
  });
604
602
  return false;
@@ -613,10 +611,10 @@ export default {
613
611
  this.upload.fileList = [];
614
612
  this.upload.isUploading = false;
615
613
  if (response.code != 200) {
616
- this.$message.error("上传失败:" + response.msg);
614
+ this.$message.error(this.t('common.uploadFailed') + response.msg);
617
615
  } else {
618
616
  this.$message({
619
- message: "上传成功!",
617
+ message: this.t('common.uploadSuccess'),
620
618
  type: "success",
621
619
  });
622
620
  }
@@ -626,7 +624,7 @@ export default {
626
624
  handleFileError(err, file, fileList) {
627
625
  this.upload.fileList = [];
628
626
  this.upload.isUploading = false;
629
- this.$message.error("上传失败:" + err);
627
+ this.$message.error(this.t('common.uploadFailed') + err);
630
628
  },
631
629
  /** 确定 */
632
630
  onSubmit() {
@@ -11,11 +11,9 @@
11
11
  >
12
12
  <template slot="title">
13
13
  <div class="title-text">
14
- <span class="title-main">添加文件</span
14
+ <span class="title-main">{{ t('common.addFile') }}</span
15
15
  ><span class="title-supplement"
16
- >(只能添加"jpg", "jpeg", "bmp", "png", "gif", "pdf", "doc", "docx",
17
- "md", "xmind", "mp4", "xlsx"
18
- ,"bmp","tif","avi","wmv","xls"大小不超过5M。)</span
16
+ >{{ t('common.addFileTip') }}</span
19
17
  >
20
18
  </div>
21
19
  </template>
@@ -27,7 +25,7 @@
27
25
  class="material"
28
26
  style="height: 500px"
29
27
  >
30
- <el-tab-pane label="我的文件" name="first">
28
+ <el-tab-pane :label="t('common.myFiles')" name="first">
31
29
  <el-container>
32
30
  <el-header class="container-header">
33
31
  <el-row :gutter="20" type="flex" justify="space-between">
@@ -54,7 +52,7 @@
54
52
  icon="el-icon-upload2"
55
53
  :loading="upload.isUploading"
56
54
  >
57
- 直接上传
55
+ {{ t('common.uploadDirectly') }}
58
56
  </el-button>
59
57
  </el-upload>
60
58
  </el-col>
@@ -65,14 +63,14 @@
65
63
  icon="el-icon-folder-add"
66
64
  @click="handleAddFolder"
67
65
  :loading="upload.isUploading"
68
- >新增文件夹
66
+ >{{ t('common.addFolder') }}
69
67
  </el-button>
70
68
  </el-col>
71
69
  </el-row>
72
70
  </el-col>
73
71
  <el-col :xs="4" :sm="4" :md="4" :lg="4" :xl="4" :pull="2">
74
72
  <el-input
75
- placeholder="搜索所有文件"
73
+ :placeholder="t('common.searchAllFiles')"
76
74
  v-model="form.folderName"
77
75
  class="header-search"
78
76
  @change="searchChange"
@@ -233,18 +231,18 @@
233
231
  </el-main>
234
232
  </el-container>
235
233
  </el-tab-pane>
236
- <el-tab-pane label="图库中心" name="second"></el-tab-pane>
234
+ <el-tab-pane :label="t('common.galleryCenter')" name="second"></el-tab-pane>
237
235
  </el-tabs>
238
236
  </div>
239
237
  <div slot="footer" class="dialog-footer dialogTop-footer">
240
238
  <el-button class="dialogTop-footer-button" @click="handleClose"
241
- >取 消</el-button
239
+ >{{ t('common.cancel') }}</el-button
242
240
  >
243
241
  <el-button
244
242
  class="dialogTop-footer-button"
245
243
  type="primary"
246
244
  @click="onSubmit"
247
- >确 定</el-button
245
+ >{{ t('common.confirm') }}</el-button
248
246
  >
249
247
  </div>
250
248
  </el-dialog>
@@ -262,7 +260,7 @@
262
260
  <template slot="title">
263
261
  <div class="minor-title-text">
264
262
  <span class="minor-increase"
265
- >待添加({{ choiceList.length }}/{{ max }})</span
263
+ {{ t('common.toBeAdded') }}({{ choiceList.length }}/{{ max }})</span
266
264
  >
267
265
  </div>
268
266
  </template>
@@ -465,7 +463,7 @@ export default class material extends Vue {
465
463
  public handleAddFolder() {
466
464
  this.upload.isUploading = true;
467
465
  addFolder(this.form).then((response) => {
468
- (this as any).msgSuccess("新增成功");
466
+ (this as any).msgSuccess((this as any).t('common.addSuccess'));
469
467
  this.getList();
470
468
  this.upload.isUploading = false;
471
469
  });
@@ -536,12 +534,12 @@ export default class material extends Vue {
536
534
  public updateMaterialNick(type, item, index) {
537
535
  if (type === 0) {
538
536
  updateFolder(item).then((response) => {
539
- (this as any).msgSuccess("修改成功");
537
+ (this as any).msgSuccess((this as any).t('common.modifySuccess'));
540
538
  this.getList();
541
539
  });
542
540
  } else if (type === 1) {
543
541
  updateMaterial(item).then((response) => {
544
- (this as any).msgSuccess("修改成功");
542
+ (this as any).msgSuccess((this as any).t('common.modifySuccess'));
545
543
  this.getList();
546
544
  });
547
545
  }
@@ -551,12 +549,12 @@ export default class material extends Vue {
551
549
  (this as any)
552
550
  .$confirm(
553
551
  type === 0
554
- ? "您确定将该文件夹以及该文件夹内的所有文件放入回收站吗?"
555
- : "将文件放入回收站会影响使用该文件的地方,确定放入回收站吗?",
556
- "提示",
552
+ ? (this as any).t('common.deleteFolderConfirm')
553
+ : (this as any).t('common.deleteFileConfirm'),
554
+ (this as any).t('common.tip'),
557
555
  {
558
- confirmButtonText: "确定",
559
- cancelButtonText: "取消",
556
+ confirmButtonText: (this as any).t('common.confirm'),
557
+ cancelButtonText: (this as any).t('common.cancel'),
560
558
  type: "warning",
561
559
  center: true,
562
560
  }
@@ -572,13 +570,13 @@ export default class material extends Vue {
572
570
  this.getList();
573
571
  (this as any).$message({
574
572
  type: "success",
575
- message: "删除成功!",
573
+ message: (this as any).t('common.deleteSuccess'),
576
574
  });
577
575
  })
578
576
  .catch(() => {
579
577
  (this as any).$message({
580
578
  type: "info",
581
- message: "已取消删除",
579
+ message: (this as any).t('common.deleteCancelled'),
582
580
  });
583
581
  });
584
582
  }
@@ -587,7 +585,7 @@ export default class material extends Vue {
587
585
  const fileSuffix = file.name.substring(file.name.lastIndexOf(".") + 1);
588
586
  if (this.upload.whiteList.indexOf(fileSuffix) === -1) {
589
587
  (this as any).$message({
590
- message: "您上传的文件暂不支持,请联系管理员",
588
+ message: (this as any).t('common.unsupportedFileType'),
591
589
  type: "warning",
592
590
  });
593
591
  return false;
@@ -595,7 +593,7 @@ export default class material extends Vue {
595
593
  const isLt2M = file.size / 1024 / 1024 < 100;
596
594
  if (!isLt2M) {
597
595
  (this as any).$message({
598
- message: "上传文件大小不能超过 100MB",
596
+ message: (this as any).t('common.fileSizeLimit'),
599
597
  type: "warning",
600
598
  });
601
599
  return false;
@@ -611,10 +609,10 @@ export default class material extends Vue {
611
609
  this.upload.fileList = [];
612
610
  this.upload.isUploading = false;
613
611
  if (response.code != 200) {
614
- (this as any).$message.error("上传失败:" + response.msg);
612
+ (this as any).$message.error((this as any).t('common.uploadFailed') + response.msg);
615
613
  } else {
616
614
  (this as any).$message({
617
- message: "上传成功!",
615
+ message: (this as any).t('common.uploadSuccess'),
618
616
  type: "success",
619
617
  });
620
618
  }
@@ -624,7 +622,7 @@ export default class material extends Vue {
624
622
  public handleFileError(err, file, fileList) {
625
623
  this.upload.fileList = [];
626
624
  this.upload.isUploading = false;
627
- (this as any).$message.error("上传失败:" + err);
625
+ (this as any).$message.error((this as any).t('common.uploadFailed') + err);
628
626
  }
629
627
  /** 确定 */
630
628
  public onSubmit() {
@@ -96,7 +96,7 @@ export default {
96
96
  */
97
97
  getFieldValueByMap(row, field) {
98
98
  // 如果直接能找到字段,直接返回
99
- if (row[field] !== undefined && row[field] !== null) {
99
+ if (row[field] !== undefined && row[field] !== null && row[field] !== '') {
100
100
  return row[field]
101
101
  }
102
102
  // 如果找不到,尝试通过 dataLangFieldMap 映射
@@ -104,7 +104,7 @@ export default {
104
104
  if (fieldMap) {
105
105
  // 查找映射关系中 value 等于 field 的 key
106
106
  const mappedKey = Object.keys(fieldMap).find(key => fieldMap[key] === field)
107
- if (mappedKey && row[mappedKey] !== undefined && row[mappedKey] !== null) {
107
+ if (mappedKey && row[mappedKey] !== undefined && row[mappedKey] !== null && row[mappedKey] !== '') {
108
108
  return row[mappedKey]
109
109
  }
110
110
  }
@@ -119,6 +119,7 @@ export default {
119
119
  const data = this.config.data.map((row, index) => {
120
120
  const item = {
121
121
  id: this.getFieldValueByMap(row, this.config.dataLangIdField) || row.configId,
122
+ // 使用 getFieldValueByMap 获取原始值(会处理字段映射)
122
123
  value: this.getFieldValueByMap(row, columnName) || '-',
123
124
  configKey: row.configKey
124
125
  }
@@ -137,6 +138,7 @@ export default {
137
138
  this.tableDataMap[columnName] = this.config.data.map((row, index) => {
138
139
  const item = {
139
140
  id: this.getFieldValueByMap(row, this.config.dataLangIdField) || row.configId,
141
+ // 使用 getFieldValueByMap 获取原始值(会处理字段映射)
140
142
  value: this.getFieldValueByMap(row, columnName) || '-',
141
143
  configKey: row.configKey
142
144
  }
@@ -159,6 +161,8 @@ export default {
159
161
  }))
160
162
  // 语言加载完成后初始化表格数据
161
163
  this.initTableData()
164
+ // 批量查询翻译并回填
165
+ this.fetchAndFillTranslations()
162
166
  }
163
167
  }).catch(error => {
164
168
  console.error('获取语言列表失败:', error)
@@ -169,6 +173,68 @@ export default {
169
173
  ]
170
174
  // 语言加载完成后初始化表格数据
171
175
  this.initTableData()
176
+ // 批量查询翻译并回填
177
+ this.fetchAndFillTranslations()
178
+ })
179
+ },
180
+ /** 批量获取翻译并回填 - 按每个语言调用接口 */
181
+ fetchAndFillTranslations() {
182
+ if (!this.config.data || this.config.data.length === 0 || this.languages.length === 0) {
183
+ return
184
+ }
185
+ const userInfo = JSON.parse(localStorage.getItem('userInfo') || '{}')
186
+ const tenantId = userInfo.tenantId
187
+
188
+ // 构建请求参数 - 公共部分
189
+ const recordIds = this.config.data.map((item) =>
190
+ String(this.getFieldValueByMap(item, this.config.dataLangIdField))
191
+ ).filter((id) => id && id !== "" && id !== "undefined" && id !== "null")
192
+
193
+ if (recordIds.length === 0) {
194
+ return
195
+ }
196
+
197
+ // 【重要】循环每个语言,分别调用接口回填
198
+ this.languages.forEach(lang => {
199
+ const params = {
200
+ entityName: this.config.entityName,
201
+ recordIds: recordIds,
202
+ columnNames: this.config.dataLangColumnFields,
203
+ locale: lang.value,
204
+ tenantId: tenantId
205
+ }
206
+
207
+ // 批量查询翻译接口 - 单语言
208
+ request({
209
+ url: '/system/api/i18n/translation/batch-get-multi',
210
+ method: 'post',
211
+ data: params
212
+ }).then(response => {
213
+ if (response.code === 200 && response.data) {
214
+ this.fillTranslationsByLocale(response.data, lang.value)
215
+ }
216
+ }).catch(error => {
217
+ console.error(`获取${lang.label}翻译失败:`, error)
218
+ })
219
+ })
220
+ },
221
+ /** 按指定语言回填到对应的 input 列 */
222
+ fillTranslationsByLocale(translationMap, currentLocale) {
223
+ // translationMap 格式:{"1": {"dictName": "用户性别"}}
224
+ // currentLocale: "zh_CN" / "en_US"
225
+ this.config.dataLangColumnFields.forEach(columnName => {
226
+ const tableData = this.tableDataMap[columnName] || []
227
+ tableData.forEach((rowData, rowIndex) => {
228
+ const originalRow = this.config.data[rowIndex]
229
+ const recordId = String(this.getFieldValueByMap(originalRow, this.config.dataLangIdField))
230
+
231
+ // 如果这条数据有翻译,放到对应语言的 input 中
232
+ if (translationMap[recordId] && translationMap[recordId][columnName]) {
233
+ const translationValue = translationMap[recordId][columnName]
234
+ // currentLocale = "zh_CN" 对应 rowData["zh_CN"]
235
+ rowData[currentLocale] = translationValue
236
+ }
237
+ })
172
238
  })
173
239
  },
174
240
  handleClose() {
@@ -6,7 +6,7 @@
6
6
  :data="listData"
7
7
  :listCustomOpMenus="listCustomOpMenus"
8
8
  >
9
- <el-table-column type="index" label="序号" width="50" align="center">
9
+ <el-table-column type="index" :label="t('common.serialNumber')" width="50" align="center">
10
10
  <template scope="scope">
11
11
  <span>{{
12
12
  (listQueryParams.pageNum - 1) * listQueryParams.pageSize +
@@ -121,7 +121,7 @@
121
121
 
122
122
  <el-table-column
123
123
  v-if="listSetting && listSetting.isShowOpColumn"
124
- label="操作"
124
+ :label="t('common.operation')"
125
125
  align="center"
126
126
  min-width="160"
127
127
  class-name="small-padding fixed-width"
@@ -41,18 +41,18 @@
41
41
  type="primary"
42
42
  :loading="setting.submitLoading"
43
43
  @click="submitForm"
44
- >确 定</el-button
44
+ >{{ t('common.confirm') }}</el-button
45
45
  >
46
- <el-button @click="cancel">取 消</el-button>
46
+ <el-button @click="cancel">{{ t('common.cancel') }}</el-button>
47
47
  </div> -->
48
48
  <div slot="footer" class="dialog-footer">
49
49
  <el-button
50
50
  type="primary"
51
51
  :loading="setting.submitLoading"
52
52
  @click="submitForm"
53
- >确 定</el-button
53
+ >{{ t('common.confirm') }}</el-button
54
54
  >
55
- <el-button @click="cancel">取 消</el-button>
55
+ <el-button @click="cancel">{{ t('common.cancel') }}</el-button>
56
56
  </div>
57
57
  </div>
58
58
  </template>
@@ -96,7 +96,7 @@ export default {
96
96
  name: "basic",
97
97
  visable: true,
98
98
  icon: "ion-plus-round",
99
- text: "基本信息",
99
+ text: "",
100
100
  type: "area",
101
101
  },
102
102
  {
@@ -117,20 +117,20 @@ export default {
117
117
  // 列信息
118
118
  columns: [
119
119
  {
120
- text: `公告标题`,
120
+ text: "",
121
121
  property: "noticeTitle",
122
122
  displayType: "TextBox",
123
123
  visible: true,
124
- placeholder: "自定义占位符", //占位符文案 默认不传 不传就显示text的文案
124
+ placeholder: "", //占位符文案 默认不传 不传就显示text的文案
125
125
  setting: {
126
- default: "默认标题",
126
+ default: "",
127
127
  },
128
128
  // inputType: "number", // 输入类型默认不传
129
129
  // maxLength: "10", // 输入长度限制
130
130
  area: "basic",
131
131
  },
132
132
  {
133
- text: `公告类型`,
133
+ text: "",
134
134
  property: "noticeType",
135
135
  displayType: "DropDownList",
136
136
  setting: {
@@ -142,7 +142,7 @@ export default {
142
142
  area: "basic",
143
143
  },
144
144
  {
145
- text: `公告类型`,
145
+ text: "",
146
146
  property: "noticeType",
147
147
  displayType: "DropDownList",
148
148
  setting: {
@@ -154,7 +154,7 @@ export default {
154
154
  area: "basic",
155
155
  },
156
156
  {
157
- text: `公告类型`,
157
+ text: "",
158
158
  property: "noticeType",
159
159
  displayType: "DropDownList",
160
160
  setting: {
@@ -166,7 +166,7 @@ export default {
166
166
  area: "basic",
167
167
  },
168
168
  {
169
- text: `公告类型`,
169
+ text: "",
170
170
  property: "noticeType",
171
171
  displayType: "DropDownList",
172
172
  setting: {
@@ -178,7 +178,7 @@ export default {
178
178
  area: "basic",
179
179
  },
180
180
  {
181
- text: `公告类型`,
181
+ text: "",
182
182
  property: "noticeType",
183
183
  displayType: "DropDownList",
184
184
  setting: {
@@ -190,7 +190,7 @@ export default {
190
190
  area: "basic",
191
191
  },
192
192
  {
193
- text: `公告类型`,
193
+ text: "",
194
194
  property: "noticeType",
195
195
  displayType: "DropDownList",
196
196
  setting: {
@@ -202,7 +202,7 @@ export default {
202
202
  area: "basic",
203
203
  },
204
204
  {
205
- text: `公告类型`,
205
+ text: "",
206
206
  property: "noticeType",
207
207
  displayType: "DropDownList",
208
208
  setting: {
@@ -214,7 +214,7 @@ export default {
214
214
  area: "basic",
215
215
  },
216
216
  {
217
- text: `公告类型`,
217
+ text: "",
218
218
  property: "noticeType",
219
219
  displayType: "DropDownList",
220
220
  setting: {
@@ -226,7 +226,7 @@ export default {
226
226
  area: "basic",
227
227
  },
228
228
  {
229
- text: `公告类型`,
229
+ text: "",
230
230
  property: "noticeType",
231
231
  displayType: "DropDownList",
232
232
  setting: {
@@ -238,7 +238,7 @@ export default {
238
238
  area: "basic",
239
239
  },
240
240
  {
241
- text: `公告类型`,
241
+ text: "",
242
242
  property: "noticeType",
243
243
  displayType: "DropDownList",
244
244
  setting: {
@@ -250,7 +250,7 @@ export default {
250
250
  area: "basic",
251
251
  },
252
252
  {
253
- text: `公告类型`,
253
+ text: "",
254
254
  property: "noticeType",
255
255
  displayType: "DropDownList",
256
256
  setting: {
@@ -262,7 +262,7 @@ export default {
262
262
  area: "basic",
263
263
  },
264
264
  {
265
- text: `公告类型`,
265
+ text: "",
266
266
  property: "noticeType",
267
267
  displayType: "DropDownList",
268
268
  setting: {
@@ -274,7 +274,7 @@ export default {
274
274
  area: "basic",
275
275
  },
276
276
  {
277
- text: `公告类型`,
277
+ text: "",
278
278
  property: "noticeType",
279
279
  displayType: "DropDownList",
280
280
  setting: {
@@ -286,7 +286,7 @@ export default {
286
286
  area: "basic",
287
287
  },
288
288
  {
289
- text: `公告类型`,
289
+ text: "",
290
290
  property: "noticeType",
291
291
  displayType: "DropDownList",
292
292
  setting: {
@@ -298,7 +298,7 @@ export default {
298
298
  area: "basic",
299
299
  },
300
300
  {
301
- text: `公告类型`,
301
+ text: "",
302
302
  property: "noticeType",
303
303
  displayType: "DropDownList",
304
304
  setting: {
@@ -310,7 +310,7 @@ export default {
310
310
  area: "basic",
311
311
  },
312
312
  {
313
- text: `公告类型`,
313
+ text: "",
314
314
  property: "noticeType",
315
315
  displayType: "DropDownList",
316
316
  setting: {
@@ -322,7 +322,7 @@ export default {
322
322
  area: "basic",
323
323
  },
324
324
  {
325
- text: `公告类型`,
325
+ text: "",
326
326
  property: "noticeType",
327
327
  displayType: "DropDownList",
328
328
  setting: {
@@ -334,7 +334,7 @@ export default {
334
334
  area: "basic",
335
335
  },
336
336
  {
337
- text: `公告类型`,
337
+ text: "",
338
338
  property: "noticeType",
339
339
  displayType: "DropDownList",
340
340
  setting: {
@@ -349,16 +349,16 @@ export default {
349
349
  // 表单校验
350
350
  rules: {
351
351
  noticeTitle: [
352
- { required: true, message: "公告标题不能为空", trigger: "blur" },
352
+ { required: true, message: "", trigger: "blur" },
353
353
  {
354
354
  min: 2,
355
355
  max: 20,
356
- message: "公告标题长度必须介于 2 和 20 之间",
356
+ message: "",
357
357
  trigger: "blur",
358
358
  },
359
359
  ],
360
360
  noticeType: [
361
- { required: true, message: "公告类型不能为空", trigger: "blur" },
361
+ { required: true, message: "", trigger: "blur" },
362
362
  ],
363
363
  },
364
364
  //可编辑表格配置
@@ -396,13 +396,13 @@ export default {
396
396
  },
397
397
  {
398
398
  prop: "noticeTitle",
399
- text: "公告标题",
399
+ text: "",
400
400
  attr: { width: "180" },
401
401
  edit: true,
402
402
  },
403
403
  {
404
404
  prop: "noticeType",
405
- text: "公告类型",
405
+ text: "",
406
406
  attr: { minWidth: "110" },
407
407
  edit: true,
408
408
  type: "select",
@@ -413,19 +413,19 @@ export default {
413
413
  },
414
414
  {
415
415
  prop: "remark",
416
- text: "备注",
416
+ text: "",
417
417
  attr: { minWidth: "110" },
418
418
  edit: true,
419
419
  },
420
420
  {
421
421
  prop: "noticeContent",
422
- text: "自定义html",
422
+ text: "",
423
423
  attr: { minWidth: "110" },
424
424
  edit: true,
425
425
  },
426
426
  {
427
427
  prop: "product",
428
- text: "产品",
428
+ text: "",
429
429
  attr: { minWidth: "110" },
430
430
  edit: true,
431
431
  type: "checkbox",
@@ -436,7 +436,7 @@ export default {
436
436
  },
437
437
  {
438
438
  prop: "date",
439
- text: "日期",
439
+ text: "",
440
440
  attr: { minWidth: "110" },
441
441
  edit: true,
442
442
  type: "date",
@@ -444,14 +444,14 @@ export default {
444
444
  },
445
445
  {
446
446
  prop: "status",
447
- text: "锁定",
447
+ text: "",
448
448
  attr: { minWidth: "110" },
449
449
  edit: true,
450
450
  type: "switch",
451
451
  },
452
452
  {
453
453
  prop: "search",
454
- text: "搜索",
454
+ text: "",
455
455
  attr: { minWidth: "110" },
456
456
  edit: true,
457
457
  type: "mixInput",
@@ -459,7 +459,7 @@ export default {
459
459
  console.log(row);
460
460
  },
461
461
  },
462
- { prop: "opt", text: "操作", attr: { minWidth: "110" }, edit: true },
462
+ { prop: "opt", text: "", attr: { minWidth: "110" }, edit: true },
463
463
  ],
464
464
  data: [],
465
465
  },
@@ -468,6 +468,7 @@ export default {
468
468
  watch: {},
469
469
  created() {
470
470
  console.log(this.entity);
471
+ this.initI18n();
471
472
  //有可编辑表格的情况下
472
473
  if (this.tableSetting.visible) {
473
474
  /** 查询列表 */
@@ -487,6 +488,28 @@ export default {
487
488
  mounted() {},
488
489
  activated() {},
489
490
  methods: {
491
+ initI18n() {
492
+ this.areaSetting[0].text = this.t('common.basicInfo');
493
+ this.columns[0].text = this.t('common.announcementTitle');
494
+ this.columns[0].placeholder = this.t('common.customPlaceholder');
495
+ this.columns[0].setting.default = this.t('common.defaultTitle');
496
+ this.columns[1].text = this.t('common.announcementType');
497
+ for (let i = 2; i < this.columns.length; i++) {
498
+ this.columns[i].text = this.t('common.announcementTitle');
499
+ }
500
+ this.rules.noticeTitle[0].message = this.t('common.announcementTitleRequired');
501
+ this.rules.noticeTitle[1].message = this.t('common.announcementTitleLength');
502
+ this.rules.noticeType[0].message = this.t('common.announcementTypeRequired');
503
+ this.tableSetting.columns[1].text = this.t('common.announcementTitle');
504
+ this.tableSetting.columns[2].text = this.t('common.announcementType');
505
+ this.tableSetting.columns[3].text = this.t('common.remark');
506
+ this.tableSetting.columns[4].text = this.t('common.customHtml');
507
+ this.tableSetting.columns[5].text = this.t('common.product');
508
+ this.tableSetting.columns[6].text = this.t('common.date');
509
+ this.tableSetting.columns[7].text = this.t('common.locked');
510
+ this.tableSetting.columns[8].text = this.t('common.search');
511
+ this.tableSetting.columns[9].text = this.t('common.operation');
512
+ },
490
513
  //当前绑定实体字段值变更事件
491
514
  onChangeEvent(args) {
492
515
  console.log(args);
@@ -91,35 +91,35 @@ export default class MaterialsEditDialog extends Vue {
91
91
  name: "basic",
92
92
  visable: true,
93
93
  icon: "ion-plus-round",
94
- text: "基本信息",
94
+ text: (this as any).t('common.basicInfo'),
95
95
  type: "area",
96
96
  },
97
97
  {
98
98
  name: "tab1",
99
99
  visable: true,
100
100
  icon: "ion-plus-round",
101
- text: "叫料数据",
101
+ text: (this as any).t('common.callingData'),
102
102
  type: "tab",
103
103
  },
104
104
  ];
105
105
  // 列信息
106
106
  columns = [
107
107
  {
108
- text: `日期`,
108
+ text: (this as any).t('common.date'),
109
109
  property: "noticeTitle",
110
110
  displayType: "TextBox",
111
111
  visible: true,
112
112
  area: "basic",
113
113
  },
114
114
  {
115
- text: `班次`,
115
+ text: (this as any).t('common.shift'),
116
116
  property: "noticeTitle",
117
117
  displayType: "TextBox",
118
118
  visible: true,
119
119
  area: "basic",
120
120
  },
121
121
  {
122
- text: `计划编号`,
122
+ text: (this as any).t('common.planNo'),
123
123
  property: "noticeTitle",
124
124
  displayType: "TextBox",
125
125
  visible: true,
@@ -127,7 +127,7 @@ export default class MaterialsEditDialog extends Vue {
127
127
  width: 24,
128
128
  },
129
129
  {
130
- text: `信息提示`,
130
+ text: (this as any).t('common.infoTip'),
131
131
  property: "noticeTitle",
132
132
  displayType: "TextBox",
133
133
  visible: true,
@@ -138,16 +138,16 @@ export default class MaterialsEditDialog extends Vue {
138
138
  // 表单校验
139
139
  rules = {
140
140
  noticeTitle: [
141
- { required: true, message: "公告标题不能为空", trigger: "blur" },
141
+ { required: true, message: (this as any).t('common.announcementTitleRequired'), trigger: "blur" },
142
142
  {
143
143
  min: 2,
144
144
  max: 20,
145
- message: "公告标题长度必须介于 2 和 20 之间",
145
+ message: (this as any).t('common.announcementTitleLength'),
146
146
  trigger: "blur",
147
147
  },
148
148
  ],
149
149
  noticeType: [
150
- { required: true, message: "公告类型不能为空", trigger: "blur" },
150
+ { required: true, message: (this as any).t('common.announcementTypeRequired'), trigger: "blur" },
151
151
  ],
152
152
  };
153
153
  loading = false;
@@ -155,10 +155,10 @@ export default class MaterialsEditDialog extends Vue {
155
155
  isMultiple = true;
156
156
  // 列表列信息
157
157
  listColumns = [
158
- { text: `用户名1`, property: "userName", displayType: "TextBox" },
159
- { text: `昵称`, property: "nickName", displayType: "TextBox" },
158
+ { text: (this as any).t('common.username'), property: "userName", displayType: "TextBox" },
159
+ { text: (this as any).t('common.nickname'), property: "nickName", displayType: "TextBox" },
160
160
  {
161
- text: `用户`,
161
+ text: (this as any).t('common.user'),
162
162
  property: "test7",
163
163
  displayType: "dropDownList",
164
164
  setting: { type: "User", displayMode: "form" },
@@ -30,7 +30,7 @@
30
30
  v-if="column.displayType == 'TextBox'"
31
31
  size="small"
32
32
  v-model="scope.row[column.property]"
33
- placeholder="请输入内容"
33
+ :placeholder="t('common.pleaseEnterContent')"
34
34
  ></el-input>
35
35
 
36
36
  <dropDownList
@@ -81,7 +81,7 @@
81
81
  </template>
82
82
 
83
83
  <el-table-column
84
- label="操作"
84
+ :label="t('common.operation')"
85
85
  align="center"
86
86
  min-width="160"
87
87
  class-name="small-padding fixed-width"
@@ -92,16 +92,16 @@
92
92
  size="mini"
93
93
  type="text"
94
94
  @click="deleteSingle(scope.$index)"
95
- >删除</el-button
95
+ >{{ t('common.delete') }}</el-button
96
96
  >
97
97
  </template>
98
98
  </el-table-column>
99
99
  </el-table>
100
100
  </el-form>
101
101
  <div style="margin-top: 8px" v-if="listSetting.buttonShow">
102
- <el-button type="primary" size="mini" @click="newAdd">新增数据</el-button>
102
+ <el-button type="primary" size="mini" @click="newAdd">{{ t('common.addData') }}</el-button>
103
103
  <el-button @click="deleteAll" type="danger" size="mini"
104
- >删除选中</el-button
104
+ >{{ t('common.deleteSelected') }}</el-button
105
105
  >
106
106
  </div>
107
107
  </div>
@@ -166,7 +166,7 @@ export default class TableForm extends Vue {
166
166
  }
167
167
  deleteAll() {
168
168
  if (this.multipleSelectAry.length == 0) {
169
- (this as any).$message.error("请选择要删除的数据");
169
+ (this as any).$message.error((this as any).t('common.pleaseSelectDeleteData'));
170
170
  }
171
171
  this.model.listData = this.model.listData.filter((item, index) => {
172
172
  return !this.multipleSelectAry.includes(index);
@@ -440,7 +440,7 @@
440
440
  plain
441
441
  icon="el-icon-connection"
442
442
  size="mini"
443
- :disabled="multiple"
443
+ :disabled="!currentEntities || currentEntities.length === 0"
444
444
  @click="handleMultiLanguage"
445
445
  >
446
446
  {{ t('config.switch_multi_language') }}
@@ -1403,6 +1403,8 @@ export default class listBasePage extends Vue {
1403
1403
  dataLangIdField: undefined,
1404
1404
  data: []
1405
1405
  };
1406
+ // 原始数据副本(用于多语言对话框展示原始值)
1407
+ originalListData = [];
1406
1408
  // 树名称
1407
1409
  treeShapeName = undefined;
1408
1410
  defaultProps = {
@@ -2188,6 +2190,8 @@ export default class listBasePage extends Vue {
2188
2190
  )
2189
2191
  .then((response) => {
2190
2192
  this.listData = (response as any).rows;
2193
+ // 保存原始数据副本
2194
+ this.originalListData = JSON.parse(JSON.stringify((response as any).rows));
2191
2195
 
2192
2196
  this.listQueryParams.total = Number((response as any).total);
2193
2197
  this.contentLoading = false;
@@ -2753,8 +2757,11 @@ export default class listBasePage extends Vue {
2753
2757
  //this.setOpMenuEnable();
2754
2758
  this.currentEntities = selection;
2755
2759
  this.setOpMenuEnable();
2756
- // 更新多语言配置的数据
2757
- this.multiLanguageConfig.data = selection;
2760
+ // 更新多语言配置的数据 - 使用原始数据而不是已翻译的数据
2761
+ const selectedOriginalData = this.originalListData.filter(item =>
2762
+ selection.some(selected => selected[this.multiLanguageConfig.dataLangIdField] === item[this.multiLanguageConfig.dataLangIdField])
2763
+ );
2764
+ this.multiLanguageConfig.data = selectedOriginalData;
2758
2765
  }
2759
2766
  // 表单重置
2760
2767
  reset() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kz-ui-base",
3
- "version": "1.0.159",
3
+ "version": "1.0.161",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -2,7 +2,7 @@
2
2
  <base-dialog
3
3
  :visible.sync="visible"
4
4
  width="960px"
5
- :title="t('employeeModal.title')"
5
+ :title="t('common.employeeSelectTitle')"
6
6
  append-to-body
7
7
  @on-confirm="handleConfirm"
8
8
  @on-cancel="handleCancel"
@@ -18,8 +18,8 @@
18
18
  >
19
19
  <el-row class="mb8">
20
20
  <el-col :span="8">
21
- <el-form-item :label="t('employeeModal.siteId')" prop="siteId">
22
- <el-select v-model="listQueryParams.siteId" :placeholder="t('employeeModal.placeholder.siteId')" @change="siteChangeEvent" :disabled="siteDisabled">
21
+ <el-form-item :label="t('common.site')" prop="siteId">
22
+ <el-select v-model="listQueryParams.siteId" :placeholder="t('common.pleaseSelect')" @change="siteChangeEvent" :disabled="siteDisabled">
23
23
  <el-option
24
24
  v-for="item in siteOptions"
25
25
  :key="item.id"
@@ -31,7 +31,7 @@
31
31
  </el-form-item>
32
32
  </el-col>
33
33
  <el-col :span="8">
34
- <el-form-item :label="t('employeeModal.deptId')" prop="deptId">
34
+ <el-form-item :label="t('common.deptName')" prop="deptId">
35
35
  <el-cascader
36
36
  v-model="listQueryParams.deptId"
37
37
  :options="deptOptions"
@@ -45,8 +45,8 @@
45
45
  </el-form-item>
46
46
  </el-col>
47
47
  <el-col :span="8">
48
- <el-form-item :label="t('employeeModal.postId')" prop="postId">
49
- <el-select v-model="listQueryParams.postId" :placeholder="t('employeeModal.placeholder.postId')" clearable>
48
+ <el-form-item :label="t('common.postName')" prop="postId">
49
+ <el-select v-model="listQueryParams.postId" :placeholder="t('common.pleaseSelect')" clearable>
50
50
  <el-option
51
51
  v-for="item in postOptions"
52
52
  :key="item.postId"
@@ -60,12 +60,12 @@
60
60
  </el-row>
61
61
  <el-row class="mb8">
62
62
  <el-col :span="8">
63
- <el-form-item :label="t('employeeModal.employeeNo')" prop="employeeNo">
63
+ <el-form-item :label="t('common.employeeNo')" prop="employeeNo">
64
64
  <el-input v-model="listQueryParams.employeeNo" clearable/>
65
65
  </el-form-item>
66
66
  </el-col>
67
67
  <el-col :span="8">
68
- <el-form-item :label="t('employeeModal.employeeName')" prop="employeeName">
68
+ <el-form-item :label="t('common.employeeName')" prop="employeeName">
69
69
  <el-input v-model="listQueryParams.employeeName" clearable/>
70
70
  </el-form-item>
71
71
  </el-col>
@@ -76,13 +76,13 @@
76
76
  icon="el-icon-search"
77
77
  size="mini"
78
78
  @click="handleQuery"
79
- >{{ t('employeeModal.search') }}
79
+ >{{ t('common.query') }}
80
80
  </el-button>
81
81
  <el-button
82
82
  icon="el-icon-refresh"
83
83
  size="mini"
84
84
  @click="resetQuery"
85
- >{{ t('employeeModal.reset') }}
85
+ >{{ t('common.reset') }}
86
86
  </el-button>
87
87
  </el-form-item>
88
88
  </el-col>
@@ -103,10 +103,10 @@
103
103
  @selection-change="onSelectionChange"
104
104
  >
105
105
  <el-table-column type="selection" min-width="50" align="center" />
106
- <el-table-column prop="employeeNo" :label="t('employeeModal.employeeNo')" min-width="100" align="left" show-overflow-tooltip />
107
- <el-table-column prop="employeeName" :label="t('employeeModal.employeeName')" min-width="100" align="left" show-overflow-tooltip />
108
- <el-table-column prop="deptName" :label="t('employeeModal.deptId')" min-width="100" align="left" show-overflow-tooltip/>
109
- <el-table-column prop="postName" :label="t('employeeModal.postId')" min-width="100" align="left" show-overflow-tooltip/>
106
+ <el-table-column prop="employeeNo" :label="t('common.employeeNo')" min-width="100" align="left" show-overflow-tooltip />
107
+ <el-table-column prop="employeeName" :label="t('common.employeeName')" min-width="100" align="left" show-overflow-tooltip />
108
+ <el-table-column prop="deptName" :label="t('common.deptName')" min-width="100" align="left" show-overflow-tooltip/>
109
+ <el-table-column prop="postName" :label="t('common.postName')" min-width="100" align="left" show-overflow-tooltip/>
110
110
  </el-table>
111
111
  <pagination
112
112
  :total="listQueryParams.total"
@@ -184,11 +184,7 @@ export default {
184
184
  deptOptionIds: [],
185
185
  siteOptions: [],
186
186
  postOptions: [],
187
- rules: {
188
- siteId: [
189
- { required: true, message: this.t('employeeModal.placeholder.siteId'), trigger: 'blur' }
190
- ]
191
- },
187
+ rules: {},
192
188
  relatedDeptId: undefined
193
189
  }
194
190
  },
@@ -196,9 +192,17 @@ export default {
196
192
  watch: {},
197
193
  mounted() {},
198
194
  created() {
195
+ this.initRules()
199
196
  this.init()
200
197
  },
201
198
  methods: {
199
+ initRules() {
200
+ this.rules = {
201
+ siteId: [
202
+ { required: true, message: this.t('common.pleaseSelectSite'), trigger: 'blur' }
203
+ ]
204
+ }
205
+ },
202
206
  async init() {
203
207
  if (this.siteId) {
204
208
  this.$set(this.listQueryParams, "siteId", this.siteId)
@@ -261,7 +265,7 @@ export default {
261
265
  },
262
266
  getList() {
263
267
  if (!this.relatedDeptId) {
264
- this.msgError(this.t('employeeModal.siteNotRelatedDept'));
268
+ this.msgError(this.t('common.siteNotRelatedDept'));
265
269
  return
266
270
  }
267
271
  this.loading = true
@@ -295,7 +299,7 @@ export default {
295
299
  },
296
300
  handleConfirm() {
297
301
  if (!this.multipleSelection || this.multipleSelection.length === 0) {
298
- this.msgError(this.t('employeeModal.selectEmployeeTip'));
302
+ this.msgError(this.t('common.pleaseSelectOneEmployee'));
299
303
  } else {
300
304
  if(this.multipleChoice) {
301
305
  this.confirm(this.multipleSelection)
@@ -315,7 +319,7 @@ export default {
315
319
  if(!selectOption) return;
316
320
  this.relatedDeptId = selectOption.relatedDeptId;
317
321
  if(!this.relatedDeptId){
318
- this.msgError(this.t('employeeModal.siteNotRelatedDept'));
322
+ this.msgError(this.t('common.siteNotRelatedDept'));
319
323
  return;
320
324
  }
321
325
  this.getDept(this.relatedDeptId);
@@ -277,8 +277,8 @@
277
277
  </el-col>
278
278
  </el-row>
279
279
  <div v-if="value && value.btnShow" class="dialog-footer">
280
- <el-button type="primary" @click="submitForm">确 定</el-button>
281
- <el-button @click="cancel">取 消</el-button>
280
+ <el-button type="primary" @click="submitForm">{{ t('common.confirm') }}</el-button>
281
+ <el-button @click="cancel">{{ t('common.cancel') }}</el-button>
282
282
  </div>
283
283
  </div>
284
284
  </template>
@@ -405,7 +405,7 @@ export default class StandardList extends ListBasePage {
405
405
  //是否显示下拉滑块
406
406
  dropDownSliders: false,
407
407
  //搜索框标题
408
- title: "请输入部门|岗位名称",
408
+ title: this.t('common.pleaseEnterDeptOrPost'),
409
409
  };
410
410
  //操作菜单设定
411
411
  opMenus = [