plain-design 1.0.0-beta.49 → 1.0.0-beta.50

Sign up to get free protection for your applications and to get access to all the features.
Files changed (90) hide show
  1. package/dist/plain-design.commonjs.min.js +3 -3
  2. package/dist/plain-design.min.js +3 -3
  3. package/dist/report.html +2 -2
  4. package/package.json +1 -1
  5. package/src/packages/components/$file/index.tsx +1 -1
  6. package/src/packages/components/$message/image.service.utils.tsx +2 -2
  7. package/src/packages/components/$object/createObjectService.tsx +3 -3
  8. package/src/packages/components/$upload/createUploadService.tsx +1 -1
  9. package/src/packages/components/Application/theme/theme.ts +1 -1
  10. package/src/packages/components/AutoTable/filter/useTableOption.filter.form.tsx +3 -3
  11. package/src/packages/components/AutoTable/filter/useTableOption.filter.search.tsx +2 -2
  12. package/src/packages/components/AutoTable/setting/useTableOption.setting.all.fitler.tsx +4 -4
  13. package/src/packages/components/AutoTable/setting/useTableOption.setting.cache.tsx +16 -16
  14. package/src/packages/components/AutoTable/setting/useTableOption.setting.config.tsx +11 -11
  15. package/src/packages/components/AutoTable/setting/useTableOption.setting.export.tsx +20 -20
  16. package/src/packages/components/AutoTable/setting/useTableOption.setting.import.tsx +1 -1
  17. package/src/packages/components/AutoTable/setting/useTableOption.setting.senior.filter.tsx +10 -10
  18. package/src/packages/components/AutoTable/setting/useTableOption.setting.senior.sort.tsx +7 -7
  19. package/src/packages/components/AutoTable/setting/useTableOption.setting.tsx +2 -2
  20. package/src/packages/components/AutoTable/use/useTableOption.buttons.tsx +18 -18
  21. package/src/packages/components/AutoTable/use/useTableOption.cache.ts +1 -1
  22. package/src/packages/components/AutoTable/use/useTableOption.check.tsx +1 -1
  23. package/src/packages/components/AutoTable/use/useTableOption.column.popper.tsx +8 -8
  24. package/src/packages/components/AutoTable/use/useTableOption.confirm.tsx +3 -3
  25. package/src/packages/components/AutoTable/use/useTableOption.loading.tsx +1 -1
  26. package/src/packages/components/AutoTable/use/useTableOption.methods.tsx +17 -17
  27. package/src/packages/components/AutoTable/use/useTableOption.pagination.tsx +3 -3
  28. package/src/packages/components/AutoTable/use/useTableOption.sort.ts +5 -5
  29. package/src/packages/components/AutoTable/use/useTableOption.tips.tsx +1 -1
  30. package/src/packages/components/Cascade/createMultipleCascadeRender.tsx +1 -1
  31. package/src/packages/components/Cascade/createSingleCascadeRender.tsx +1 -1
  32. package/src/packages/components/CascadePanel/flat/createCascadeFlatRender.tsx +1 -1
  33. package/src/packages/components/Checkbox/index.tsx +1 -1
  34. package/src/packages/components/CheckboxGroup/index.tsx +2 -2
  35. package/src/packages/components/DatePicker/date.utils.tsx +2 -2
  36. package/src/packages/components/DatePicker/panel/DatePanelDate.tsx +7 -7
  37. package/src/packages/components/DatePicker/panel/DatePanelMonth.tsx +12 -12
  38. package/src/packages/components/Dialog/index.tsx +3 -3
  39. package/src/packages/components/Empty/index.tsx +1 -1
  40. package/src/packages/components/FilterFormMultiple/index.tsx +2 -2
  41. package/src/packages/components/FilterFormSingle/index.tsx +2 -2
  42. package/src/packages/components/FilterService/filter/filter.city.tsx +4 -4
  43. package/src/packages/components/FilterService/filter/filter.date.tsx +4 -4
  44. package/src/packages/components/FilterService/filter/filter.datetime.tsx +2 -2
  45. package/src/packages/components/FilterService/filter/filter.district.tsx +4 -4
  46. package/src/packages/components/FilterService/filter/filter.number.tsx +1 -1
  47. package/src/packages/components/FilterService/filter/filter.province.tsx +4 -4
  48. package/src/packages/components/FilterService/filter/filter.select.tsx +3 -3
  49. package/src/packages/components/FilterService/filter/filter.text.tsx +4 -4
  50. package/src/packages/components/FilterService/filter/fitler.object.tsx +4 -4
  51. package/src/packages/components/FilterService/index.tsx +7 -7
  52. package/src/packages/components/Form/types/any.tsx +6 -6
  53. package/src/packages/components/Form/types/array.tsx +7 -7
  54. package/src/packages/components/Form/types/date.tsx +6 -6
  55. package/src/packages/components/Form/types/email.tsx +1 -1
  56. package/src/packages/components/Form/types/idcard.tsx +1 -1
  57. package/src/packages/components/Form/types/number.tsx +7 -7
  58. package/src/packages/components/Form/types/phone.tsx +1 -1
  59. package/src/packages/components/Form/types/qq.tsx +1 -1
  60. package/src/packages/components/Form/types/string.tsx +7 -7
  61. package/src/packages/components/Formatter/index.tsx +1 -1
  62. package/src/packages/components/Image/index.tsx +3 -3
  63. package/src/packages/components/ImageUploader/index.tsx +2 -2
  64. package/src/packages/components/Object/createObjectRender.multiple.tsx +1 -1
  65. package/src/packages/components/Object/createObjectRender.single.tsx +1 -1
  66. package/src/packages/components/PageThemeUtils/deepmerge.ts +21 -0
  67. package/src/packages/components/PageThemeUtils/index.tsx +108 -53
  68. package/src/packages/components/Pagination/index.tsx +4 -4
  69. package/src/packages/components/Select/SelectPanel.tsx +1 -1
  70. package/src/packages/components/Select/createMultipleSelectRender.tsx +4 -4
  71. package/src/packages/components/Table/editor/PlcAddress.tsx +4 -4
  72. package/src/packages/components/Table/standard/PlcCheck/PlcCheck.multiple.tsx +4 -4
  73. package/src/packages/components/Table/standard/PlcExpand.tsx +2 -2
  74. package/src/packages/components/Table/standard/PlcIndex.tsx +1 -1
  75. package/src/packages/components/Table/standard/PlcOperation/OuterOperation.tsx +1 -1
  76. package/src/packages/components/Table/standard/PlcOperation/PlcOperation.tsx +4 -4
  77. package/src/packages/components/Table/standard/PlcTree/PlcTree.renderNode.tsx +4 -4
  78. package/src/packages/components/Table/table/use/useTableFormEditor.tsx +2 -2
  79. package/src/packages/components/Table/table/use/useTableModifyEditor.tsx +6 -6
  80. package/src/packages/components/ThemeEditor/index.tsx +32 -27
  81. package/src/packages/components/Tree/RenderTreeNode.tsx +1 -1
  82. package/src/packages/components/Upload/index.tsx +12 -12
  83. package/src/packages/components/VirtualTable/index.tsx +1 -1
  84. package/src/packages/components/useDialog/DialogService.tsx +2 -2
  85. package/src/packages/components/useImage/ImageService.tsx +8 -8
  86. package/src/packages/components/useNotice/index.tsx +1 -1
  87. package/src/packages/i18n/i18n.utils.ts +172 -120
  88. package/src/packages/i18n/index.ts +4 -3
  89. package/src/packages/i18n/lang/en-us.ts +4 -3
  90. package/src/packages/i18n/lang/zh-cn.ts +1 -0
@@ -90,37 +90,42 @@ export const ThemeEditor = designComponent({
90
90
  {state.isExpand && (
91
91
  <div className="theme-editor-form">
92
92
  <div>
93
- <div>{i18n('theme.inputMode').d('输入框类型')}</div>
93
+ <div>{i18n.$it('theme.inputMode').d('输入框类型')}</div>
94
94
  <div>
95
95
  <Select v-model={state.inputMode} onChange={handler.onInputModeChange} size="mini" popperAttrs={publicPopperAttrs}>
96
- <SelectOption label={i18n('theme.inputModeFlat').d('输入框:填充')} val="flat"/>
97
- <SelectOption label={i18n('theme.inputModelStroke').d('输入框:描边')} val="stroke"/>
96
+ <SelectOption label={i18n.$it('theme.inputModeFlat').d('输入框:填充')} val="flat"/>
97
+ <SelectOption label={i18n.$it('theme.inputModelStroke').d('输入框:描边')} val="stroke"/>
98
98
  </Select>
99
99
  </div>
100
100
  </div>
101
101
 
102
102
  <div>
103
- <div>{i18n('theme.buttonMode').d('按钮类型')}</div>
103
+ <div>{i18n.$it('theme.buttonMode').d('按钮类型')}</div>
104
104
  <div>
105
105
  <Select v-model={state.buttonMode} onChange={handler.onButtonModeChange} size="mini" popperAttrs={publicPopperAttrs}>
106
- <SelectOption label={i18n('theme.buttonModeFlat').d('扁平')} val="flat"/>
107
- <SelectOption label={i18n('theme.buttonModeFill').d('填充')} val="fill"/>
108
- <SelectOption label={i18n('theme.buttonModeOutline').d('线框')} val="outline"/>
109
- <SelectOption label={i18n('theme.buttonModeStroke').d('描边')} val="stroke"/>
110
- <SelectOption label={i18n('theme.buttonModeText').d('文字')} val="text"/>
106
+ <SelectOption label={i18n.$it('theme.buttonModeFlat').d('扁平')} val="flat"/>
107
+ <SelectOption label={i18n.$it('theme.buttonModeFill').d('填充')} val="fill"/>
108
+ <SelectOption label={i18n.$it('theme.buttonModeOutline').d('线框')} val="outline"/>
109
+ <SelectOption label={i18n.$it('theme.buttonModeStroke').d('描边')} val="stroke"/>
110
+ <SelectOption label={i18n.$it('theme.buttonModeText').d('文字')} val="text"/>
111
111
  </Select>
112
112
  </div>
113
113
  </div>
114
114
 
115
115
  <div>
116
- <div>{i18n('theme.primaryColor').d('主题颜色')}</div>
116
+ <div>{i18n.$it('theme.primaryColor').d('主题颜色')}</div>
117
117
  <div>
118
118
  <Select v-model={state.primaryKey} onChange={handler.onPrimaryChange} size="mini" popperAttrs={publicPopperAttrs}>
119
119
  {Object.entries(ThemePrimaryColors).map(([key, value]) => (
120
- <SelectOption label={i18n('colorName.' + value!.label as any).d(value!.label)} val={key} key={key}>
120
+ <SelectOption label={i18n.$it('colorName.' + value!.label as any).d(value!.label)} val={key} key={key}>
121
121
  <div className={getComponentCls('theme-editor-block-item')}>
122
- {!!value!.primary && <span style={{ ...publicBlockStyles, background: value!.primary }}/>}
123
- <span>{i18n('colorName.' + value!.label as any).d(value!.label)}</span>
122
+ {(() => {
123
+ let themeConfig = value!.themeConfig;
124
+ if (!themeConfig) {return null;}
125
+ let primary = typeof themeConfig === "string" ? themeConfig : themeConfig[PageThemeUtils.state.dark ? 'dark' : 'light'].base?.primary;
126
+ return !!primary && <span style={{ ...publicBlockStyles, background: primary }}/>;
127
+ })()}
128
+ <span>{i18n.$it('colorName.' + value!.label as any).d(value!.label)}</span>
124
129
  </div>
125
130
  </SelectOption>
126
131
  ))}
@@ -129,40 +134,40 @@ export const ThemeEditor = designComponent({
129
134
  </div>
130
135
 
131
136
  <div>
132
- <div>{i18n('theme.size').d('大小尺寸')}</div>
137
+ <div>{i18n.$it('theme.size').d('大小尺寸')}</div>
133
138
  <div>
134
139
  <Select v-model={state.size} onChange={handler.onSizeChange} size="mini" popperAttrs={publicPopperAttrs}>
135
- <SelectOption label={i18n('theme.sizeLarge').d('大尺寸')} val="large"/>
136
- <SelectOption label={i18n('theme.sizeNormal').d('中等尺寸')} val="normal"/>
137
- <SelectOption label={i18n('theme.sizeSmall').d('小尺寸')} val="small"/>
138
- <SelectOption label={i18n('theme.sizeMini').d('极小尺寸')} val="mini"/>
140
+ <SelectOption label={i18n.$it('theme.sizeLarge').d('大尺寸')} val="large"/>
141
+ <SelectOption label={i18n.$it('theme.sizeNormal').d('中等尺寸')} val="normal"/>
142
+ <SelectOption label={i18n.$it('theme.sizeSmall').d('小尺寸')} val="small"/>
143
+ <SelectOption label={i18n.$it('theme.sizeMini').d('极小尺寸')} val="mini"/>
139
144
  </Select>
140
145
  </div>
141
146
  </div>
142
147
 
143
148
  <div>
144
- <div>{i18n('theme.darkMode').d('黑白主题')}</div>
149
+ <div>{i18n.$it('theme.darkMode').d('黑白主题')}</div>
145
150
  <div>
146
151
  <Select v-model={state.dark} onChange={handler.onDarkChange} size="mini" popperAttrs={publicPopperAttrs}>
147
- <SelectOption label={i18n('theme.darkModeOn').d('黑色主题')} val="dark"/>
148
- <SelectOption label={i18n('theme.darkModeOff').d('白色主题')} val="light"/>
152
+ <SelectOption label={i18n.$it('theme.darkModeOn').d('黑色主题')} val="dark"/>
153
+ <SelectOption label={i18n.$it('theme.darkModeOff').d('白色主题')} val="light"/>
149
154
  </Select>
150
155
  </div>
151
156
  </div>
152
157
 
153
158
  <div>
154
- <div>{i18n('theme.radiusMode').d('圆角类型')}</div>
159
+ <div>{i18n.$it('theme.radiusMode').d('圆角类型')}</div>
155
160
  <div>
156
161
  <Select v-model={state.shape} onChange={handler.onShapeChange} size="mini" popperAttrs={publicPopperAttrs}>
157
- <SelectOption label={i18n('theme.radiusModeRound').d('圆角')} val="round"/>
158
- <SelectOption label={i18n('theme.radiusModeNormal').d('小圆角')} val="square"/>
159
- <SelectOption label={i18n('theme.radiusModeNone').d('无圆角')} val="none"/>
162
+ <SelectOption label={i18n.$it('theme.radiusModeRound').d('圆角')} val="round"/>
163
+ <SelectOption label={i18n.$it('theme.radiusModeNormal').d('小圆角')} val="square"/>
164
+ <SelectOption label={i18n.$it('theme.radiusModeNone').d('无圆角')} val="none"/>
160
165
  </Select>
161
166
  </div>
162
167
  </div>
163
168
 
164
169
  <div>
165
- <div>{i18n('theme.scale').d('大小缩放')}</div>
170
+ <div>{i18n.$it('theme.scale').d('大小缩放')}</div>
166
171
  <Select v-model={state.zoom} onChange={handler.onZoomChange} size="mini" placeholder="页面缩放" popperAttrs={publicPopperAttrs}>
167
172
  <SelectOption label="0.6" val={0.6}/>
168
173
  <SelectOption label="0.7" val={0.7}/>
@@ -184,7 +189,7 @@ export const ThemeEditor = designComponent({
184
189
 
185
190
  <div>
186
191
  <div>&nbsp;</div>
187
- <Button block size="mini" label={i18n('theme.reset').d('重置')} onClick={() => {
192
+ <Button block size="mini" label={i18n.$it('theme.reset').d('重置')} onClick={() => {
188
193
  PageThemeUtils.clear();
189
194
  }}/>
190
195
  </div>
@@ -157,7 +157,7 @@ export const RenderTreeNode = designComponent({
157
157
  })()}
158
158
  </div>
159
159
  <div className="tree-node-content" onClick={handler.onClickNodeContent}>
160
- {props.treeNode.empty ? i18n('base.noData').d('暂无数据') : (() => {
160
+ {props.treeNode.empty ? i18n.$it('base.noData').d('暂无数据') : (() => {
161
161
  const scope = { treeNode: props.treeNode, index: props.treeNode.flatIndex, };
162
162
  return tree.props.renderContent ? tree.props.renderContent(scope) : tree.scopeSlots.default(scope, props.treeNode.label()) as any;
163
163
  })()}
@@ -110,7 +110,7 @@ export const Upload = designComponent({
110
110
  [eUploadStatus.empty]: <Icon icon="pi-info-circle"/>,
111
111
  };
112
112
  const singleEmptyFile: UploadFile = {
113
- name: i18n('file.notUpload').d('未上传'),
113
+ name: i18n.$it('file.notUpload').d('未上传'),
114
114
  status: eUploadStatus.empty,
115
115
  id: 'nothing'
116
116
  };
@@ -151,7 +151,7 @@ export const Upload = designComponent({
151
151
  if (props.max != null) {
152
152
  if (f.calcSize > props.max) {
153
153
  $message.error(
154
- i18n('file.oversize', { filename: file.name, filesize: f.calcSize, max: props.max }).d(`[${file.name}]大小为${f.calcSize}MB,超过最大限制${props.max}MB`)
154
+ i18n.$it('file.oversize', { filename: file.name, filesize: f.calcSize, max: props.max }).d(`[${file.name}]大小为${f.calcSize}MB,超过最大限制${props.max}MB`)
155
155
  , { time: 5000 });
156
156
  return false;
157
157
  }
@@ -249,7 +249,7 @@ export const Upload = designComponent({
249
249
  // 状态不存在或者状态为success表示需要用户处理删除文件在后端的逻辑,否则其他状态直接前端删除
250
250
  if (!file.status || file.status === eUploadStatus.success) {
251
251
  if (props.removeConfirm) {
252
- await $dialog.confirm(i18n('file.areYouSureToDeleteFile', { name: file.name }).d(`确认要删除文件:${file.name} 吗?`));
252
+ await $dialog.confirm(i18n.$it('file.areYouSureToDeleteFile', { name: file.name }).d(`确认要删除文件:${file.name} 吗?`));
253
253
  }
254
254
  if (!!props.beforeRemove) {await props.beforeRemove(file);}
255
255
  await props.handleRemove!(file);
@@ -289,7 +289,7 @@ export const Upload = designComponent({
289
289
  toArray(uploadFiles).forEach(file => {
290
290
  file.status = eUploadStatus.success;
291
291
  file.percent = undefined;
292
- $notice.success(i18n('file.uploadFileSucceed', { name: file.name }).d(`文件[${file.name}]上传成功!`));
292
+ $notice.success(i18n.$it('file.uploadFileSucceed', { name: file.name }).d(`文件[${file.name}]上传成功!`));
293
293
  });
294
294
  dfd.resolve();
295
295
  emit.onUploadSuccess({ file: uploadFiles, resp: data });
@@ -298,7 +298,7 @@ export const Upload = designComponent({
298
298
  toArray(uploadFiles).forEach(file => file.status = eUploadStatus.error);
299
299
  dfd.reject();
300
300
  emit.onUploadError(error);
301
- $notice.error(i18n('file.uploadFailed').d(`文件上传失败!`));
301
+ $notice.error(i18n.$it('file.uploadFailed').d(`文件上传失败!`));
302
302
  },
303
303
  };
304
304
 
@@ -339,7 +339,7 @@ export const Upload = designComponent({
339
339
  <div className="upload-item-inner">
340
340
  {!!custom ? custom() : <>
341
341
  {file.status ? renderIcon[file.status] : <Icon icon="pi-file"/>}
342
- {file.status === eUploadStatus.ready ? `(${i18n('file.toBeUpload').d('待上传')}) ` : ''}
342
+ {file.status === eUploadStatus.ready ? `(${i18n.$it('file.toBeUpload').d('待上传')}) ` : ''}
343
343
  <div className="upload-item-content" onClick={() => !!props.handlePreview && props.handlePreview(file)}>
344
344
  {scopeSlots.default({ item: file, index }, file.name)}
345
345
  </div>
@@ -366,8 +366,8 @@ export const Upload = designComponent({
366
366
  const singleRender = computed(() => <>
367
367
  {editComputed.value.editable && (
368
368
  <ButtonGroup>
369
- <Button label={i18n('file.selectFile').d('选择文件')} icon="pi-file" onClick={methods.chooseFile}/>
370
- {!props.autoUpload && <Button label={i18n('file.upload').d('上传')} icon="pi-upload" onClick={methods.upload}/>}
369
+ <Button label={i18n.$it('file.selectFile').d('选择文件')} icon="pi-file" onClick={methods.chooseFile}/>
370
+ {!props.autoUpload && <Button label={i18n.$it('file.upload').d('上传')} icon="pi-upload" onClick={methods.upload}/>}
371
371
  {slots.button()}
372
372
  </ButtonGroup>
373
373
  )}
@@ -378,8 +378,8 @@ export const Upload = designComponent({
378
378
  {!props.draggable ? (
379
379
  editComputed.value.editable && (
380
380
  <ButtonGroup>
381
- <Button label={i18n('file.selectFile').d('选择文件')} icon="pi-file" onClick={methods.chooseFile}/>
382
- {!props.autoUpload && <Button label={i18n('file.upload').d('上传')} icon="pi-upload" onClick={methods.upload}/>}
381
+ <Button label={i18n.$it('file.selectFile').d('选择文件')} icon="pi-file" onClick={methods.chooseFile}/>
382
+ {!props.autoUpload && <Button label={i18n.$it('file.upload').d('上传')} icon="pi-upload" onClick={methods.upload}/>}
383
383
  {slots.button()}
384
384
  </ButtonGroup>
385
385
  )
@@ -388,9 +388,9 @@ export const Upload = designComponent({
388
388
  <div className="upload-drop-area" onClick={methods.chooseFile} {...dropHandler}>
389
389
  <Icon icon="pi-share-external"/>
390
390
  <div>
391
- <span>{i18n('file.dropFilesOr').d('拖拽文件至此处,或者')}</span>
391
+ <span>{i18n.$it('file.dropFilesOr').d('拖拽文件至此处,或者')}</span>
392
392
  <Button mode="text" className="upload-drop-upload-button" onClick={methods.chooseFile}>
393
- <span>{i18n('file.clickToUpload').d('点击上传')}</span>
393
+ <span>{i18n.$it('file.clickToUpload').d('点击上传')}</span>
394
394
  <Icon icon="pi-upload"/>
395
395
  </Button>
396
396
  {slots.button()}
@@ -149,7 +149,7 @@ export const VirtualTable = designComponent({
149
149
  onScroll={handler.onScroll}
150
150
  scrollX
151
151
  className={virtual.classes.value}
152
- horizontalScrollbarTooltip={i18n('table.tableScrollTips').d('推荐【表头使用鼠标滚轮】,或者【表体Alt键+鼠标滚轮】横向滚动')}
152
+ horizontalScrollbarTooltip={i18n.$it('table.tableScrollTips').d('推荐【表头使用鼠标滚轮】,或者【表体Alt键+鼠标滚轮】横向滚动')}
153
153
  disableTransitionWhenScroll={!props.disabled}
154
154
  >
155
155
  {{
@@ -122,12 +122,12 @@ export const DialogService = createApplicationServiceComponent<iDialogServiceOpt
122
122
  const head = () => (
123
123
  <div className="dialog-service-head">
124
124
  {!!targetOption.value.customOption.status && <Icon icon={ThemeStatusIcons[targetOption.value.customOption.status]}/>}
125
- <span>{targetOption.value.dialogProps.title || i18n('base.defaultTitle').d('提示')}</span>
125
+ <span>{targetOption.value.dialogProps.title || i18n.$it('base.defaultTitle').d('提示')}</span>
126
126
  </div>
127
127
  );
128
128
  /*---------------------------------------foot-------------------------------------------*/
129
129
  const foot = () => !targetOption.value.dialogProps.confirmButton && !targetOption.value.dialogProps.cancelButton && (
130
- <Button mode="fill" label={i18n('base.close').d('关闭')} onClick={hide} status={targetOption.value.customOption.status || undefined}/>
130
+ <Button mode="fill" label={i18n.$it('base.close').d('关闭')} onClick={hide} status={targetOption.value.customOption.status || undefined}/>
131
131
  );
132
132
  /*---------------------------------------default-------------------------------------------*/
133
133
  let defaultSlot = null as any;
@@ -91,7 +91,7 @@ export const ImageService = createApplicationServiceComponent<ImageServicePrevie
91
91
 
92
92
  const buttons = [
93
93
  {
94
- label: i18n('image.rotation_90').d('逆时针旋转90°'),
94
+ label: i18n.$it('image.rotation_90').d('逆时针旋转90°'),
95
95
  icon: 'pi-rotate-left',
96
96
  onClick: () => {
97
97
  let { rotate } = state.adjust;
@@ -101,7 +101,7 @@ export const ImageService = createApplicationServiceComponent<ImageServicePrevie
101
101
  }
102
102
  },
103
103
  {
104
- label: i18n('image.rotation90').d('顺时针旋转90°'),
104
+ label: i18n.$it('image.rotation90').d('顺时针旋转90°'),
105
105
  icon: 'pi-rotate-right',
106
106
  onClick: () => {
107
107
  let { rotate } = state.adjust;
@@ -111,7 +111,7 @@ export const ImageService = createApplicationServiceComponent<ImageServicePrevie
111
111
  }
112
112
  },
113
113
  {
114
- label: i18n('base.zoomIn').d('放大'),
114
+ label: i18n.$it('base.zoomIn').d('放大'),
115
115
  icon: 'pi-zoom-in',
116
116
  onClick: () => {
117
117
  let { scale } = state.adjust;
@@ -119,7 +119,7 @@ export const ImageService = createApplicationServiceComponent<ImageServicePrevie
119
119
  }
120
120
  },
121
121
  {
122
- label: i18n('base.zoomOut').d('缩小'),
122
+ label: i18n.$it('base.zoomOut').d('缩小'),
123
123
  icon: 'pi-zoom-out',
124
124
  onClick: () => {
125
125
  let { scale } = state.adjust;
@@ -127,7 +127,7 @@ export const ImageService = createApplicationServiceComponent<ImageServicePrevie
127
127
  }
128
128
  },
129
129
  {
130
- label: i18n('image.prevPicture').d('上一张'),
130
+ label: i18n.$it('image.prevPicture').d('上一张'),
131
131
  icon: 'pi-left',
132
132
  show: () => isMultipleImages.value,
133
133
  onClick: () => {
@@ -138,7 +138,7 @@ export const ImageService = createApplicationServiceComponent<ImageServicePrevie
138
138
  },
139
139
  },
140
140
  {
141
- label: i18n('image.nextPicture').d('下一张'),
141
+ label: i18n.$it('image.nextPicture').d('下一张'),
142
142
  icon: 'pi-right',
143
143
  show: () => isMultipleImages.value,
144
144
  onClick: () => {
@@ -149,12 +149,12 @@ export const ImageService = createApplicationServiceComponent<ImageServicePrevie
149
149
  },
150
150
  },
151
151
  {
152
- label: i18n('base.reset').d('重置'),
152
+ label: i18n.$it('base.reset').d('重置'),
153
153
  icon: 'pi-sync',
154
154
  onClick: resetAdjust,
155
155
  },
156
156
  {
157
- label: i18n('base.close').d('关闭'),
157
+ label: i18n.$it('base.close').d('关闭'),
158
158
  icon: 'pi-close',
159
159
  onClick: hide,
160
160
  },
@@ -14,7 +14,7 @@ export const useNotice = createApplicationService(
14
14
  const service = (sourceOption: string | iNoticeServiceOption, externalOption?: iNoticeServiceOption): () => void => {
15
15
  const option = formatOptions(sourceOption, externalOption);
16
16
  option.id = nextNoticeId();
17
- if (option.title === undefined) {option.title = () => i18n('base.notice').d('提示');}
17
+ if (option.title === undefined) {option.title = () => i18n.$it('base.notice').d('提示');}
18
18
  if (option.time === undefined) {option.time = 3000;}
19
19
  if (option.status === undefined) {option.status = ThemeStatus.primary;}
20
20
  if (!!option.status && !option.icon) {option.icon = ThemeStatusIcons[option.status];}