@flexem/fc-gui 3.0.0-alpha.18 → 3.0.0-alpha.180
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.
- package/CHANGELOG.md +419 -1
- package/assets/img/black_first_page.png +0 -0
- package/assets/img/black_last_page.png +0 -0
- package/assets/img/black_next_page.png +0 -0
- package/assets/img/black_previous_page.png +0 -0
- package/assets/img/exclamation-outline-circle.png +0 -0
- package/bundles/@flexem/fc-gui.umd.js +39377 -34650
- package/bundles/@flexem/fc-gui.umd.js.map +1 -1
- package/bundles/@flexem/fc-gui.umd.min.js +5 -5
- package/bundles/@flexem/fc-gui.umd.min.js.map +1 -1
- package/communication/variable/variable-communicator.d.ts +5 -0
- package/communication/variable/variable-state-enum.d.ts +1 -0
- package/communication/variable/variable-state-enum.js +1 -0
- package/communication/variable/variable-state-enum.metadata.json +1 -1
- package/communication/variable/variable-value.d.ts +4 -1
- package/communication/variable/variable-value.js +4 -1
- package/communication/variable/variable-value.metadata.json +1 -1
- package/config/alarm/alarm.store.d.ts +6 -0
- package/config/alarm/alarm.store.js +0 -0
- package/config/alarm/alarm.store.metadata.json +1 -0
- package/config/alarm/get-alarms-args.d.ts +12 -0
- package/config/alarm/get-alarms-args.js +13 -0
- package/config/alarm/get-alarms-args.metadata.json +1 -0
- package/config/alarm/index.d.ts +2 -0
- package/config/alarm/index.js +1 -0
- package/config/alarm/index.metadata.json +1 -0
- package/config/config-store.d.ts +2 -0
- package/config/gui-feature-config.d.ts +3 -0
- package/config/gui-feature-config.js +3 -0
- package/config/gui-feature-config.metadata.json +1 -0
- package/config/index.d.ts +2 -0
- package/config/index.js +2 -0
- package/config/index.metadata.json +1 -1
- package/config/variable/variable-store.d.ts +1 -0
- package/elements/air-quality/air-quality-element.js +3 -4
- package/elements/alarm/alarm-element.d.ts +69 -0
- package/elements/alarm/alarm-element.js +497 -0
- package/elements/alarm/alarm-element.metadata.json +1 -0
- package/elements/bar-graph-element.d.ts +10 -2
- package/elements/bar-graph-element.js +135 -5
- package/elements/bar-graph-element.metadata.json +1 -1
- package/elements/base/readable-element.d.ts +6 -1
- package/elements/base/readable-element.js +69 -2
- package/elements/base/readable-element.metadata.json +1 -1
- package/elements/base/state-control-element.d.ts +3 -1
- package/elements/base/state-control-element.js +21 -5
- package/elements/character-display/character-display-element.js +3 -2
- package/elements/character-display/character-display-element.metadata.json +1 -1
- package/elements/datetime-display/datetime-display-element.d.ts +1 -0
- package/elements/datetime-display/datetime-display-element.js +10 -2
- package/elements/datetime-display/datetime-display-element.metadata.json +1 -1
- package/elements/datetime-display/time-zone-select-json.d.ts +8 -0
- package/elements/datetime-display/time-zone-select-json.js +558 -0
- package/elements/historical-curve/historical-curve.element.d.ts +44 -3
- package/elements/historical-curve/historical-curve.element.js +696 -32
- package/elements/historical-curve/historical-curve.element.metadata.json +1 -1
- package/elements/main-element.d.ts +1 -0
- package/elements/main-element.js +70 -9
- package/elements/main-element.metadata.json +1 -1
- package/elements/meter-element.d.ts +7 -1
- package/elements/meter-element.js +76 -7
- package/elements/meter-element.metadata.json +1 -1
- package/elements/numerical-display/numerical-display-element.d.ts +22 -3
- package/elements/numerical-display/numerical-display-element.js +145 -12
- package/elements/numerical-display/numerical-display-element.metadata.json +1 -1
- package/elements/per-view-variable-communicator.d.ts +4 -0
- package/elements/per-view-variable-communicator.js +21 -1
- package/elements/per-view-variable-communicator.metadata.json +1 -1
- package/elements/ring-graph/ring-graph-element.d.ts +13 -1
- package/elements/ring-graph/ring-graph-element.js +164 -3
- package/elements/ring-graph/ring-graph-element.metadata.json +1 -1
- package/elements/scroll-alarm/scroll-alarm-element.d.ts +79 -0
- package/elements/scroll-alarm/scroll-alarm-element.js +845 -0
- package/elements/scroll-alarm/scroll-alarm-element.metadata.json +1 -0
- package/elements/shared/graph/graph-state-element.d.ts +1 -0
- package/elements/shared/graph/graph-state-element.js +30 -1
- package/elements/shared/graph/graph-state-element.metadata.json +1 -1
- package/elements/shared/text/text-element.d.ts +14 -0
- package/elements/shared/text/text-element.js +42 -4
- package/elements/shared/text/text-element.metadata.json +1 -1
- package/elements/shared/text/text-state-element.d.ts +39 -2
- package/elements/shared/text/text-state-element.js +242 -67
- package/elements/shared/text/text-state-element.metadata.json +1 -1
- package/elements/static-elements/hyperlink-element.d.ts +28 -2
- package/elements/static-elements/hyperlink-element.js +153 -4
- package/elements/static-elements/hyperlink-element.metadata.json +1 -1
- package/elements/static-elements/text-element.d.ts +28 -2
- package/elements/static-elements/text-element.js +162 -12
- package/elements/static-elements/text-element.metadata.json +1 -1
- package/elements/switch-indicator-light/bit-indicator-light-operator.d.ts +1 -0
- package/elements/switch-indicator-light/bit-indicator-light-operator.js +10 -3
- package/elements/switch-indicator-light/bit-indicator-light-operator.metadata.json +1 -1
- package/elements/switch-indicator-light/switch-indicator-light-element.d.ts +11 -2
- package/elements/switch-indicator-light/switch-indicator-light-element.js +70 -12
- package/elements/switch-indicator-light/switch-indicator-light-element.metadata.json +1 -1
- package/elements/switch-indicator-light/word-indicator-light-operator.d.ts +1 -0
- package/elements/switch-indicator-light/word-indicator-light-operator.js +10 -3
- package/elements/switch-indicator-light/word-indicator-light-operator.metadata.json +1 -1
- package/elements/video/video-element.d.ts +10 -0
- package/elements/video/video-element.js +139 -21
- package/elements/video/video-element.metadata.json +1 -1
- package/elements/view-operation/view-operation.element.d.ts +28 -2
- package/elements/view-operation/view-operation.element.js +163 -4
- package/elements/view-operation/view-operation.element.metadata.json +1 -1
- package/elements/weather/weater-element.js +0 -1
- package/gui/gui-context.d.ts +25 -2
- package/gui/gui-host.d.ts +1 -1
- package/gui/gui-view.d.ts +4 -1
- package/gui/gui-view.js +69 -8
- package/gui/gui-view.metadata.json +1 -1
- package/gui/gui.component.d.ts +3 -0
- package/gui/gui.component.js +15 -2
- package/gui/gui.component.metadata.json +1 -1
- package/localization/localization.service.d.ts +11 -0
- package/localization/localization.service.js +16 -5
- package/localization/localization.service.metadata.json +1 -1
- package/localization/localization.service.zh_CN.js +12 -1
- package/localization/localization.service.zh_CN.metadata.json +1 -1
- package/modal/write-character/write-character-modal.component.d.ts +3 -2
- package/modal/write-character/write-character-modal.component.html +4 -4
- package/modal/write-character/write-character-modal.component.js +7 -5
- package/modal/write-character/write-character-modal.component.less +15 -0
- package/modal/write-character/write-character-modal.component.metadata.json +1 -1
- package/modal/write-value/write-value-modal-args.d.ts +5 -1
- package/modal/write-value/write-value-modal-args.js +3 -1
- package/modal/write-value/write-value-modal-args.metadata.json +1 -1
- package/modal/write-value/write-value-modal.component.d.ts +15 -8
- package/modal/write-value/write-value-modal.component.html +10 -5
- package/modal/write-value/write-value-modal.component.js +99 -21
- package/modal/write-value/write-value-modal.component.less +16 -1
- package/modal/write-value/write-value-modal.component.metadata.json +1 -1
- package/model/alarm/alarm.model.d.ts +13 -0
- package/model/alarm/alarm.model.js +0 -0
- package/model/alarm/alarm.model.metadata.json +1 -0
- package/model/bar-graph/bar-graph.d.ts +4 -0
- package/model/base/font-setting-model.d.ts +22 -1
- package/model/base/font-setting-model.metadata.json +1 -1
- package/model/base/readable-model.d.ts +4 -0
- package/model/datetime-display/datetime-display.d.ts +1 -0
- package/model/historical-curve/historical-curve-axis-settings.d.ts +11 -0
- package/model/historical-curve/historical-curve-axis-settings.js +5 -0
- package/model/historical-curve/historical-curve-axis-settings.metadata.json +1 -1
- package/model/historical-curve/historical-curve-chanel.model.d.ts +8 -0
- package/model/meter/meter.d.ts +4 -0
- package/model/numerical-display/numerical-operation.d.ts +10 -2
- package/model/ring-graph/ring-graph.model.d.ts +8 -0
- package/model/scroll-alarm/scroll-alarm.model.d.ts +21 -0
- package/model/scroll-alarm/scroll-alarm.model.js +0 -0
- package/model/scroll-alarm/scroll-alarm.model.metadata.json +1 -0
- package/model/shared/state/state.d.ts +1 -0
- package/model/shared/state/state.js +1 -0
- package/model/shared/state/state.metadata.json +1 -1
- package/model/shared/text/font.d.ts +1 -1
- package/model/shared/text/text.d.ts +3 -0
- package/model/switch-indicator-light/switch-indicator-light.d.ts +2 -0
- package/model/view-operation/view-operation-element.model.d.ts +7 -1
- package/package.json +1 -1
- package/public_api.js +1 -0
- package/remote/communication/variable/remote-variable-communicator.d.ts +30 -0
- package/remote/communication/variable/remote-variable-communicator.js +193 -3
- package/remote/communication/variable/remote-variable-communicator.metadata.json +1 -1
- package/remote/communication/variable/remote-variable-protocol.d.ts +8 -0
- package/service/index.d.ts +4 -0
- package/service/index.js +1 -0
- package/service/index.metadata.json +1 -1
- package/service/language.service.d.ts +37 -0
- package/service/language.service.js +0 -0
- package/service/language.service.metadata.json +1 -0
- package/service/released-variable/index.d.ts +1 -0
- package/service/released-variable/index.js +0 -0
- package/service/released-variable/index.metadata.json +1 -0
- package/service/released-variable/released-variable.service.d.ts +4 -0
- package/service/released-variable/released-variable.service.js +0 -0
- package/service/released-variable/released-variable.service.metadata.json +1 -0
- package/service/system-text-library.service.d.ts +77 -0
- package/service/system-text-library.service.js +29 -0
- package/service/system-text-library.service.metadata.json +1 -0
- package/service/text-library.service.d.ts +49 -0
- package/service/text-library.service.js +0 -0
- package/service/text-library.service.metadata.json +1 -0
- package/shared/gui-consts.d.ts +2 -0
- package/shared/gui-consts.js +3 -1
- package/shared/gui-consts.metadata.json +1 -1
- package/utils/data-type/fbox-data-type.service.js +40 -0
- package/utils/numerical-operation.service.js +28 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"__symbolic":"module","version":4,"metadata":{"LOCALIZATION":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":2,"character":32},"arguments":["fc.gui.loc"]},"Localization":{"__symbolic":"interface"},"DefaultLocalization":{"loadFailed":"Load failed.","setting":"Setting","submit":"Submit","numericalValueRequired":"Numerical value can't be emtpy","invalidNumericalValue":"Numerical value is not valid","binaryType":"Binary","decimalType":"Decimal","hexadecimalType":"Hexadecimal","stringType":"String","numericalValueTooLong":"Numerical value too long","fractionDigitsMustLessThan":"Fraction digits must be less than ","canNotBeNegative":"Can not be negative","valueOutOfRange":"Numerical value is out of range","timeout":"timeout","confirmOperationPrompt":"
|
|
1
|
+
[{"__symbolic":"module","version":4,"metadata":{"LOCALIZATION":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":2,"character":32},"arguments":["fc.gui.loc"]},"Localization":{"__symbolic":"interface"},"DefaultLocalization":{"loadFailed":"Load failed.","setting":"Setting ","save":"Save","submit":"Submit","submitting":"Submitting···","numericalValueRequired":"Numerical value can't be emtpy","invalidNumericalValue":"Numerical value is not valid","writeValueTimeout":"Write value error: Timeout","binaryType":"Binary","decimalType":"Decimal","hexadecimalType":"Hexadecimal","stringType":"String","numericalValueTooLong":"Numerical value too long","fractionDigitsMustLessThan":"Fraction digits must be less than ","canNotBeNegative":"Can not be negative","valueOutOfRange":"Numerical value is out of range","timeout":"timeout","confirmOperationPrompt":"Are you sure you want to perform this operation?","confirm":"Yes","cancel":"Cancel","characterInputRequired":"Character input can't be empty","character":"(Character)","characterOutofRange":"Character length is out of range","writeValueRange":"Write value range","loading":"Loading","unbind":"Unbind","offline":"Offline","abnormal":"Data abnormal","disable":"Disable","invalidMonitor":"Element binding monitor point is invalid","variableChanged":"Variable changed, please re-import the device template","permissiontip":"You have no permission to operate.","conditionIsNotMetTip":"Operation conditions not met or variable anomalies.","chartNoData":"No Data Available","lastThirtyMinutes":"Last thirty minutes","lastOneHour":"Last one hour","lastEightHour":"Last eight hours","lastTwentyFourHours":"Last 24 hours","lastSevenDays":"Last 7 days","lastThirtyDays":"Last 30 days","lastOneYear":"Last 6 months","customTimeRange":"Custom","timeRange":"Time Range","startTime":"Start Time","endTime":"End Time","grouped":"Grouped","stacked":"Stacked","passwordVerify":"Password Verification","passwordError":"Password error","password":"Password","passwordToolTip":"Password error, please re-enter","passwordRequired":"Password can't be empty","invalidVideoAddress":"Invalid video address","unconfiguredVideoAddress":"Unconfigured Video Address","weatherNotSupport":"Location not supported","weatherNotAddress":"Address not configured","weatherNotAvailable":"Address not yet available","airQualityNotSupport":"Location not supported","airQualityNotAddress":"Address not configured","airQualityNotAvailable":"Address not yet available"}}}]
|
|
@@ -2,8 +2,11 @@ export const Localization_zh_CN = {
|
|
|
2
2
|
loadFailed: '加载失败.',
|
|
3
3
|
setting: '设置',
|
|
4
4
|
submit: '提交',
|
|
5
|
+
save: '保存',
|
|
6
|
+
submitting: '提交中···',
|
|
5
7
|
numericalValueRequired: '数值不能为空',
|
|
6
8
|
invalidNumericalValue: '数值格式不正确',
|
|
9
|
+
writeValueTimeout: '写值错误:超时',
|
|
7
10
|
binaryType: '二进制',
|
|
8
11
|
decimalType: '十进制',
|
|
9
12
|
hexadecimalType: '十六进制',
|
|
@@ -25,14 +28,22 @@ export const Localization_zh_CN = {
|
|
|
25
28
|
offline: '离线',
|
|
26
29
|
abnormal: '数据异常',
|
|
27
30
|
disable: '禁用',
|
|
31
|
+
invalidMonitor: '元件绑定的监控点无效',
|
|
32
|
+
variableChanged: '变量已变更,请重新导入设备模板',
|
|
28
33
|
permissiontip: '您无权限执行此操作',
|
|
29
34
|
conditionIsNotMetTip: '操作条件不满足或逻辑控制变量异常',
|
|
30
35
|
chartNoData: '无数据',
|
|
36
|
+
lastThirtyMinutes: '最近30分钟',
|
|
31
37
|
lastOneHour: '最近1小时',
|
|
38
|
+
lastEightHour: '最近8小时',
|
|
32
39
|
lastTwentyFourHours: '最近24小时',
|
|
33
40
|
lastSevenDays: '最近7天',
|
|
34
41
|
lastThirtyDays: '最近30天',
|
|
35
|
-
lastOneYear: '
|
|
42
|
+
lastOneYear: '最近半年',
|
|
43
|
+
customTimeRange: '自定义',
|
|
44
|
+
timeRange: '时间范围',
|
|
45
|
+
startTime: '开始时间',
|
|
46
|
+
endTime: '结束时间',
|
|
36
47
|
grouped: '分组',
|
|
37
48
|
stacked: '叠加',
|
|
38
49
|
passwordVerify: '密码校验',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"__symbolic":"module","version":4,"metadata":{"Localization_zh_CN":{"loadFailed":"加载失败.","setting":"设置","submit":"提交","numericalValueRequired":"数值不能为空","invalidNumericalValue":"数值格式不正确","binaryType":"二进制","decimalType":"十进制","hexadecimalType":"十六进制","stringType":"字符串","numericalValueTooLong":"数值超长","fractionDigitsMustLessThan":"小数位不能超过","canNotBeNegative":"不能为负数","valueOutOfRange":"数值超出范围","timeout":"超时","confirmOperationPrompt":"是否确认要执行此操作?","confirm":"确定","cancel":"取消","characterInputRequired":"请输入至少一个字符","character":"(字符串)","characterOutofRange":"字符长度超限","writeValueRange":"写值范围","loading":"加载中","unbind":"未绑定","offline":"离线","abnormal":"数据异常","disable":"禁用","permissiontip":"您无权限执行此操作","conditionIsNotMetTip":"操作条件不满足或逻辑控制变量异常","chartNoData":"无数据","lastOneHour":"最近1小时","lastTwentyFourHours":"最近24小时","lastSevenDays":"最近7天","lastThirtyDays":"最近30天","lastOneYear":"
|
|
1
|
+
[{"__symbolic":"module","version":4,"metadata":{"Localization_zh_CN":{"loadFailed":"加载失败.","setting":"设置","submit":"提交","save":"保存","submitting":"提交中···","numericalValueRequired":"数值不能为空","invalidNumericalValue":"数值格式不正确","writeValueTimeout":"写值错误:超时","binaryType":"二进制","decimalType":"十进制","hexadecimalType":"十六进制","stringType":"字符串","numericalValueTooLong":"数值超长","fractionDigitsMustLessThan":"小数位不能超过","canNotBeNegative":"不能为负数","valueOutOfRange":"数值超出范围","timeout":"超时","confirmOperationPrompt":"是否确认要执行此操作?","confirm":"确定","cancel":"取消","characterInputRequired":"请输入至少一个字符","character":"(字符串)","characterOutofRange":"字符长度超限","writeValueRange":"写值范围","loading":"加载中","unbind":"未绑定","offline":"离线","abnormal":"数据异常","disable":"禁用","invalidMonitor":"元件绑定的监控点无效","variableChanged":"变量已变更,请重新导入设备模板","permissiontip":"您无权限执行此操作","conditionIsNotMetTip":"操作条件不满足或逻辑控制变量异常","chartNoData":"无数据","lastThirtyMinutes":"最近30分钟","lastOneHour":"最近1小时","lastEightHour":"最近8小时","lastTwentyFourHours":"最近24小时","lastSevenDays":"最近7天","lastThirtyDays":"最近30天","lastOneYear":"最近半年","customTimeRange":"自定义","timeRange":"时间范围","startTime":"开始时间","endTime":"结束时间","grouped":"分组","stacked":"叠加","passwordVerify":"密码校验","passwordError":"密码错误","password":"密码","passwordToolTip":"密码错误,请重新输入","passwordRequired":"密码不能为空","invalidVideoAddress":"无效的视频地址","unconfiguredVideoAddress":"未配置视频地址","weatherNotSupport":"当前位置暂不支持","weatherNotAddress":"当前设备未设置地址","weatherNotAvailable":"暂未获取设备地址","airQualityNotSupport":"当前位置暂不支持","airQualityNotAddress":"当前设备未设置地址","airQualityNotAvailable":"暂未获取设备地址"}}}]
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { OnInit } from '@angular/core';
|
|
1
|
+
import { Injector, OnInit } from '@angular/core';
|
|
2
2
|
import { Observable } from 'rxjs';
|
|
3
3
|
import { Localization } from '../../localization';
|
|
4
4
|
import { WriteValueModelResult } from '../write-value/write-value-model-result';
|
|
@@ -8,6 +8,7 @@ export declare class WriteCharacterModalComponent implements OnInit {
|
|
|
8
8
|
private _onClosed;
|
|
9
9
|
get onClosed(): Observable<WriteValueModelResult>;
|
|
10
10
|
args: WriteCharacterModalArgs;
|
|
11
|
+
isMobileMode: boolean;
|
|
11
12
|
value: string;
|
|
12
13
|
variableName: string;
|
|
13
14
|
isPassword: boolean;
|
|
@@ -15,7 +16,7 @@ export declare class WriteCharacterModalComponent implements OnInit {
|
|
|
15
16
|
validationError: boolean;
|
|
16
17
|
validationErrorText: string;
|
|
17
18
|
get invalidErrorText(): string;
|
|
18
|
-
constructor(localization: Localization);
|
|
19
|
+
constructor(localization: Localization, injector: Injector);
|
|
19
20
|
ngOnInit(): void;
|
|
20
21
|
validate(): void;
|
|
21
22
|
private showValidationErrorInfo;
|
|
@@ -9,13 +9,13 @@
|
|
|
9
9
|
</button>
|
|
10
10
|
</div>
|
|
11
11
|
<div class="modal-body">
|
|
12
|
-
<input type="text" name="characterInput" autoFocus class="form-control write-character-value" [(ngModel)]="value" (keyup)="validate()" *ngIf="!isPassword"
|
|
12
|
+
<input type="text" name="characterInput" autoFocus [class.form-control-write]="!isMobileMode" class="form-control write-character-value" [(ngModel)]="value" (keyup)="validate()" *ngIf="!isPassword"
|
|
13
13
|
autocomplete="off">
|
|
14
|
-
<input type="password" name="passwordInput" autoFocus class="form-control write-character-value" [(ngModel)]="value" (keyup)="validate()"
|
|
14
|
+
<input type="password" name="passwordInput" autoFocus [class.form-control-write]="!isMobileMode" class="form-control write-character-value" [(ngModel)]="value" (keyup)="validate()"
|
|
15
15
|
*ngIf="isPassword" autocomplete="off">
|
|
16
16
|
<span class="help-block text-danger" [hidden]="!validationError">{{validationErrorText}}</span>
|
|
17
17
|
</div>
|
|
18
|
-
<div class="modal-footer">
|
|
19
|
-
<button type="submit" class="btn md-skip btn-primary btn-block" [disabled]="validationError">{{localization.submit}}</button>
|
|
18
|
+
<div class="modal-footer" [class.modal-footer-write]="!isMobileMode">
|
|
19
|
+
<button type="submit" [class.btn-primary-write]="!isMobileMode" class="btn md-skip btn-primary btn-block" [disabled]="validationError">{{localization.submit}}</button>
|
|
20
20
|
</div>
|
|
21
21
|
</form>
|
|
@@ -10,13 +10,15 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
10
|
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
11
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
12
|
};
|
|
13
|
-
import { Component, Inject, Output } from '@angular/core';
|
|
13
|
+
import { Component, Inject, Injector, Output } from '@angular/core';
|
|
14
14
|
import { Subject } from 'rxjs';
|
|
15
15
|
import { LOCALIZATION } from '../../localization';
|
|
16
|
+
import { DisplayMode, GlobalSettings } from '../../settings';
|
|
16
17
|
let WriteCharacterModalComponent = class WriteCharacterModalComponent {
|
|
17
|
-
constructor(localization) {
|
|
18
|
+
constructor(localization, injector) {
|
|
18
19
|
this.localization = localization;
|
|
19
20
|
this._onClosed = new Subject();
|
|
21
|
+
this.isMobileMode = DisplayMode.Mobile === injector.get(GlobalSettings).displayMode;
|
|
20
22
|
}
|
|
21
23
|
get onClosed() {
|
|
22
24
|
return this._onClosed;
|
|
@@ -65,10 +67,10 @@ __decorate([
|
|
|
65
67
|
WriteCharacterModalComponent = __decorate([
|
|
66
68
|
Component({
|
|
67
69
|
selector: 'writeCharacterModal',
|
|
68
|
-
template: "<form #writeValueForm=\"ngForm\" novalidate (ngSubmit)=\"save()\" bs-modal-drag> <div class=\"modal-header\"> <h4 class=\"modal-title\"> <span>{{localization.setting}}</span> <span>{{variableName}}</span> </h4> <button type=\"button\" class=\"close pull-right\" aria-label=\"Close\" (click)=\"close()\"> <span aria-hidden=\"true\">×</span> </button> </div> <div class=\"modal-body\"> <input type=\"text\" name=\"characterInput\" autoFocus class=\"form-control write-character-value\" [(ngModel)]=\"value\" (keyup)=\"validate()\" *ngIf=\"!isPassword\" autocomplete=\"off\"> <input type=\"password\" name=\"passwordInput\" autoFocus class=\"form-control write-character-value\" [(ngModel)]=\"value\" (keyup)=\"validate()\" *ngIf=\"isPassword\" autocomplete=\"off\"> <span class=\"help-block text-danger\" [hidden]=\"!validationError\">{{validationErrorText}}</span> </div> <div class=\"modal-footer\"> <button type=\"submit\" class=\"btn md-skip btn-primary btn-block\" [disabled]=\"validationError\">{{localization.submit}}</button> </div> </form> ",
|
|
69
|
-
styles: [".modal-header { padding: 10px; border-color: transparent; } .modal-body { position: relative; padding: 0px 5px !important; } .modal-title { display: unset; margin-left: -6px; font-size: 16px !important; } .form-control { margin: 0 5%; float: none; width: 90%; } .modal-footer { padding: 10px 4px 20px 5px !important; text-align: right; border-color: transparent; } .text-danger { display: block; color: #ed6b75; font-size: 14px; margin: 10px 0px 0px 15px; } .btn-primary { background-color: #3B97FC; border-color: #3B97FC; padding: 5px 30px; width: 90%; margin: 0 5%; height: 32px; } .write-character-value { padding-left: 8px; height: 32px; margin-left: 16px; } "]
|
|
70
|
+
template: "<form #writeValueForm=\"ngForm\" novalidate (ngSubmit)=\"save()\" bs-modal-drag> <div class=\"modal-header\"> <h4 class=\"modal-title\"> <span>{{localization.setting}}</span> <span>{{variableName}}</span> </h4> <button type=\"button\" class=\"close pull-right\" aria-label=\"Close\" (click)=\"close()\"> <span aria-hidden=\"true\">×</span> </button> </div> <div class=\"modal-body\"> <input type=\"text\" name=\"characterInput\" autoFocus [class.form-control-write]=\"!isMobileMode\" class=\"form-control write-character-value\" [(ngModel)]=\"value\" (keyup)=\"validate()\" *ngIf=\"!isPassword\" autocomplete=\"off\"> <input type=\"password\" name=\"passwordInput\" autoFocus [class.form-control-write]=\"!isMobileMode\" class=\"form-control write-character-value\" [(ngModel)]=\"value\" (keyup)=\"validate()\" *ngIf=\"isPassword\" autocomplete=\"off\"> <span class=\"help-block text-danger\" [hidden]=\"!validationError\">{{validationErrorText}}</span> </div> <div class=\"modal-footer\" [class.modal-footer-write]=\"!isMobileMode\"> <button type=\"submit\" [class.btn-primary-write]=\"!isMobileMode\" class=\"btn md-skip btn-primary btn-block\" [disabled]=\"validationError\">{{localization.submit}}</button> </div> </form> ",
|
|
71
|
+
styles: [".modal-header { padding: 10px; border-color: transparent; } .modal-body { position: relative; padding: 0px 5px !important; } .modal-title { display: unset; margin-left: -6px; font-size: 16px !important; } .form-control { margin: 0 5%; float: none; width: 90%; } .modal-footer { padding: 10px 4px 20px 5px !important; text-align: right; border-color: transparent; } .text-danger { display: block; color: #ed6b75; font-size: 14px; margin: 10px 0px 0px 15px; } .btn-primary { background-color: #3B97FC; border-color: #3B97FC; padding: 5px 30px; width: 90%; margin: 0 5%; height: 32px; } .write-character-value { padding-left: 8px; height: 32px; margin-left: 16px; } .modal-footer-write { margin-right: 4px; padding: 10px 5px 20px 5px !important; } .btn-primary-write { width: 585px; margin: 0 15px 0 0; } .form-control-write { margin: 0 16px; width: 585px; } "]
|
|
70
72
|
}),
|
|
71
73
|
__param(0, Inject(LOCALIZATION)),
|
|
72
|
-
__metadata("design:paramtypes", [Object])
|
|
74
|
+
__metadata("design:paramtypes", [Object, Injector])
|
|
73
75
|
], WriteCharacterModalComponent);
|
|
74
76
|
export { WriteCharacterModalComponent };
|
|
@@ -47,3 +47,18 @@
|
|
|
47
47
|
height: 32px;
|
|
48
48
|
margin-left: 16px;
|
|
49
49
|
}
|
|
50
|
+
|
|
51
|
+
.modal-footer-write {
|
|
52
|
+
margin-right: 4px;
|
|
53
|
+
padding: 10px 5px 20px 5px !important;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.btn-primary-write {
|
|
57
|
+
width: 585px;
|
|
58
|
+
margin: 0 15px 0 0;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.form-control-write {
|
|
62
|
+
margin: 0 16px;
|
|
63
|
+
width: 585px;
|
|
64
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"__symbolic":"module","version":4,"metadata":{"WriteCharacterModalComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":
|
|
1
|
+
[{"__symbolic":"module","version":4,"metadata":{"WriteCharacterModalComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"writeCharacterModal","template":"<form #writeValueForm=\"ngForm\" novalidate (ngSubmit)=\"save()\" bs-modal-drag> <div class=\"modal-header\"> <h4 class=\"modal-title\"> <span>{{localization.setting}}</span> <span>{{variableName}}</span> </h4> <button type=\"button\" class=\"close pull-right\" aria-label=\"Close\" (click)=\"close()\"> <span aria-hidden=\"true\">×</span> </button> </div> <div class=\"modal-body\"> <input type=\"text\" name=\"characterInput\" autoFocus [class.form-control-write]=\"!isMobileMode\" class=\"form-control write-character-value\" [(ngModel)]=\"value\" (keyup)=\"validate()\" *ngIf=\"!isPassword\" autocomplete=\"off\"> <input type=\"password\" name=\"passwordInput\" autoFocus [class.form-control-write]=\"!isMobileMode\" class=\"form-control write-character-value\" [(ngModel)]=\"value\" (keyup)=\"validate()\" *ngIf=\"isPassword\" autocomplete=\"off\"> <span class=\"help-block text-danger\" [hidden]=\"!validationError\">{{validationErrorText}}</span> </div> <div class=\"modal-footer\" [class.modal-footer-write]=\"!isMobileMode\"> <button type=\"submit\" [class.btn-primary-write]=\"!isMobileMode\" class=\"btn md-skip btn-primary btn-block\" [disabled]=\"validationError\">{{localization.submit}}</button> </div> </form> ","styles":[".modal-header { padding: 10px; border-color: transparent; } .modal-body { position: relative; padding: 0px 5px !important; } .modal-title { display: unset; margin-left: -6px; font-size: 16px !important; } .form-control { margin: 0 5%; float: none; width: 90%; } .modal-footer { padding: 10px 4px 20px 5px !important; text-align: right; border-color: transparent; } .text-danger { display: block; color: #ed6b75; font-size: 14px; margin: 10px 0px 0px 15px; } .btn-primary { background-color: #3B97FC; border-color: #3B97FC; padding: 5px 30px; width: 90%; margin: 0 5%; height: 32px; } .write-character-value { padding-left: 8px; height: 32px; margin-left: 16px; } .modal-footer-write { margin-right: 4px; padding: 10px 5px 20px 5px !important; } .btn-primary-write { width: 585px; margin: 0 15px 0 0; } .form-control-write { margin: 0 16px; width: 585px; } "]}]}],"members":{"invalidErrorText":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":30,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":36,"character":9},"arguments":[{"__symbolic":"reference","module":"../../localization","name":"LOCALIZATION","line":36,"character":16}]}],null],"parameters":[{"__symbolic":"reference","module":"../../localization","name":"Localization","line":36,"character":51},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":37,"character":18}]}],"ngOnInit":[{"__symbolic":"method"}],"validate":[{"__symbolic":"method"}],"showValidationErrorInfo":[{"__symbolic":"method"}],"hideValidationErrorInfo":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}]}}}}]
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { NumericalOperation } from '../../model';
|
|
2
|
+
import { ReleasedVariableService } from '../../service';
|
|
3
|
+
import { GuiContext } from '../../gui/gui-context';
|
|
2
4
|
export declare class WriteValueModalArgs {
|
|
3
5
|
variableName: string;
|
|
4
6
|
dataType: number;
|
|
@@ -8,5 +10,7 @@ export declare class WriteValueModalArgs {
|
|
|
8
10
|
numericalOperation: NumericalOperation;
|
|
9
11
|
version: number;
|
|
10
12
|
enableDataParsed: boolean;
|
|
11
|
-
|
|
13
|
+
releasedVariableService: ReleasedVariableService;
|
|
14
|
+
guiContext?: GuiContext;
|
|
15
|
+
constructor(variableName: string, dataType: number, fBoxDataType: number, integerDigits: number, fractionDigits: number, numericalOperation: NumericalOperation, version: number, enableDataParsed: boolean, releasedVariableService: ReleasedVariableService, guiContext?: GuiContext);
|
|
12
16
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export class WriteValueModalArgs {
|
|
2
|
-
constructor(variableName, dataType, fBoxDataType, integerDigits, fractionDigits, numericalOperation, version, enableDataParsed) {
|
|
2
|
+
constructor(variableName, dataType, fBoxDataType, integerDigits, fractionDigits, numericalOperation, version, enableDataParsed, releasedVariableService, guiContext) {
|
|
3
3
|
this.variableName = variableName;
|
|
4
4
|
this.dataType = dataType;
|
|
5
5
|
this.fBoxDataType = fBoxDataType;
|
|
@@ -8,5 +8,7 @@ export class WriteValueModalArgs {
|
|
|
8
8
|
this.numericalOperation = numericalOperation;
|
|
9
9
|
this.version = version;
|
|
10
10
|
this.enableDataParsed = enableDataParsed;
|
|
11
|
+
this.releasedVariableService = releasedVariableService;
|
|
12
|
+
this.guiContext = guiContext;
|
|
11
13
|
}
|
|
12
14
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"__symbolic":"module","version":4,"metadata":{"WriteValueModalArgs":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","module":"../../model","name":"NumericalOperation","line":
|
|
1
|
+
[{"__symbolic":"module","version":4,"metadata":{"WriteValueModalArgs":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","module":"../../model","name":"NumericalOperation","line":11,"character":35},{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","name":"boolean"},{"__symbolic":"reference","module":"../../service","name":"ReleasedVariableService","line":14,"character":40},{"__symbolic":"reference","module":"../../gui/gui-context","name":"GuiContext","line":15,"character":28}]}]}}}}]
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import { OnInit } from '@angular/core';
|
|
2
|
-
import { Observable } from 'rxjs';
|
|
1
|
+
import { Injector, OnInit } from '@angular/core';
|
|
3
2
|
import { Localization } from '../../localization';
|
|
4
3
|
import { NumericalOperation } from '../../model/numerical-display/numerical-operation';
|
|
5
4
|
import { DataTypeService } from '../../utils/data-type/data-type.service';
|
|
6
5
|
import { FractionDigitService } from '../../utils/fraction-digit.service';
|
|
7
6
|
import { NumericalOperationService } from '../../utils/numerical-operation.service';
|
|
8
7
|
import { WriteValueModalArgs } from './write-value-modal-args';
|
|
9
|
-
import {
|
|
8
|
+
import { BsModalRef } from 'ngx-bootstrap/modal';
|
|
10
9
|
export declare class WriteValueModalComponent implements OnInit {
|
|
11
10
|
localization: Localization;
|
|
12
11
|
private readonly dataTypeService;
|
|
13
12
|
private readonly fractionDigitService;
|
|
14
13
|
private readonly numericalOperationService;
|
|
15
|
-
private
|
|
16
|
-
|
|
14
|
+
private readonly bsModalRef;
|
|
15
|
+
onClosed: any;
|
|
17
16
|
args: WriteValueModalArgs;
|
|
17
|
+
isMobileMode: boolean;
|
|
18
18
|
private dataType;
|
|
19
19
|
private fBoxDataType;
|
|
20
20
|
private pattern;
|
|
@@ -27,22 +27,29 @@ export declare class WriteValueModalComponent implements OnInit {
|
|
|
27
27
|
value: string;
|
|
28
28
|
valueType: string;
|
|
29
29
|
variableName: string;
|
|
30
|
+
displayVariableName: string;
|
|
30
31
|
enableNumericalOperation: boolean;
|
|
32
|
+
isNumericalOperation: boolean;
|
|
31
33
|
numericalOperation: NumericalOperation;
|
|
32
34
|
validationError: boolean;
|
|
33
35
|
validationErrorText: string;
|
|
34
36
|
writeMinValue: number;
|
|
35
37
|
writeMaxValue: number;
|
|
36
38
|
writeValueRangeText: string;
|
|
39
|
+
isSubmitting: boolean;
|
|
37
40
|
get invalidErrorText(): string;
|
|
38
|
-
constructor(localization: Localization, dataTypeService: DataTypeService, fractionDigitService: FractionDigitService, numericalOperationService: NumericalOperationService);
|
|
41
|
+
constructor(localization: Localization, dataTypeService: DataTypeService, fractionDigitService: FractionDigitService, numericalOperationService: NumericalOperationService, bsModalRef: BsModalRef, injector: Injector);
|
|
39
42
|
ngOnInit(): void;
|
|
40
43
|
initData(option: WriteValueModalArgs): void;
|
|
41
44
|
private setValueRangeAccordToDataParsed;
|
|
42
45
|
getWriteValueRangeText(): string;
|
|
43
46
|
save(): void;
|
|
44
|
-
|
|
45
|
-
|
|
47
|
+
/**
|
|
48
|
+
* 处理"当前语种ID"系统变量的保存
|
|
49
|
+
*/
|
|
50
|
+
private handleCurrentLanguageIdSave;
|
|
51
|
+
close(): void;
|
|
52
|
+
validate(event?: any): void;
|
|
46
53
|
private showValidationErrorInfo;
|
|
47
54
|
private hideValidationErrorInfo;
|
|
48
55
|
private getFractionDigits;
|
|
@@ -2,20 +2,25 @@
|
|
|
2
2
|
<div class="modal-header">
|
|
3
3
|
<h4 class="modal-title">
|
|
4
4
|
<span>{{localization.setting}}</span>
|
|
5
|
-
<span>{{
|
|
5
|
+
<span>{{displayVariableName}}</span>
|
|
6
6
|
</h4>
|
|
7
7
|
<button type="button" class="close pull-right" aria-label="Close" (click)="close()">
|
|
8
8
|
<span aria-hidden="true">×</span>
|
|
9
9
|
</button>
|
|
10
10
|
</div>
|
|
11
11
|
<div class="modal-body">
|
|
12
|
-
<span class="write-value-range">{{localization.writeValueRange}}
|
|
12
|
+
<span class="write-value-range">{{localization.writeValueRange}}:</span>
|
|
13
|
+
<span>
|
|
14
|
+
{{writeValueRangeText}}
|
|
13
15
|
<span *ngIf="valueType">({{valueType}})</span>
|
|
14
16
|
</span>
|
|
15
|
-
<input type="text" name="valueInput" autoFocus class="form-control write-value" [(ngModel)]="value" (keyup)="validate()" autocomplete="off">
|
|
17
|
+
<input type="text" name="valueInput" autoFocus [class.form-control-write]="!isMobileMode" class="form-control write-value" [(ngModel)]="value" (keyup)="validate($event)" autocomplete="off">
|
|
16
18
|
<span class="help-block text-danger" [hidden]="!validationError">{{validationErrorText}}</span>
|
|
17
19
|
</div>
|
|
18
|
-
<div class="modal-footer">
|
|
19
|
-
<button type="submit" class="btn md-skip btn-primary btn-block" [disabled]="validationError">
|
|
20
|
+
<div class="modal-footer" [class.modal-footer-write]="!isMobileMode">
|
|
21
|
+
<button type="submit" [class.btn-primary-write]="!isMobileMode" class="btn md-skip btn-primary btn-block" [disabled]="validationError || isSubmitting">
|
|
22
|
+
<ng-container *ngIf="!isSubmitting">{{localization.submit}}</ng-container>
|
|
23
|
+
<ng-container *ngIf="isSubmitting">{{localization.submitting}}</ng-container>
|
|
24
|
+
</button>
|
|
20
25
|
</div>
|
|
21
26
|
</form>
|
|
@@ -10,24 +10,25 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
10
|
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
11
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
12
|
};
|
|
13
|
-
import { Component, Inject, Output } from '@angular/core';
|
|
14
|
-
import { Subject } from 'rxjs';
|
|
13
|
+
import { Component, Inject, Injector, Output } from '@angular/core';
|
|
15
14
|
import { LOCALIZATION } from '../../localization';
|
|
16
15
|
import { DataTypeService } from '../../utils/data-type/data-type.service';
|
|
17
16
|
import { FractionDigitService } from '../../utils/fraction-digit.service';
|
|
18
17
|
import { NumericalOperationService } from '../../utils/numerical-operation.service';
|
|
19
18
|
import { isNil } from 'lodash';
|
|
19
|
+
import { BsModalRef } from 'ngx-bootstrap/modal';
|
|
20
|
+
import { DisplayMode, GlobalSettings } from '../../settings';
|
|
20
21
|
let WriteValueModalComponent = class WriteValueModalComponent {
|
|
21
|
-
constructor(localization, dataTypeService, fractionDigitService, numericalOperationService) {
|
|
22
|
+
constructor(localization, dataTypeService, fractionDigitService, numericalOperationService, bsModalRef, injector) {
|
|
22
23
|
this.localization = localization;
|
|
23
24
|
this.dataTypeService = dataTypeService;
|
|
24
25
|
this.fractionDigitService = fractionDigitService;
|
|
25
26
|
this.numericalOperationService = numericalOperationService;
|
|
26
|
-
this.
|
|
27
|
+
this.bsModalRef = bsModalRef;
|
|
28
|
+
this.displayVariableName = '';
|
|
27
29
|
this.writeValueRangeText = '';
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
return this._onClosed;
|
|
30
|
+
this.isSubmitting = false;
|
|
31
|
+
this.isMobileMode = DisplayMode.Mobile === injector.get(GlobalSettings).displayMode;
|
|
31
32
|
}
|
|
32
33
|
get invalidErrorText() {
|
|
33
34
|
return this.localization.loadFailed;
|
|
@@ -37,7 +38,20 @@ let WriteValueModalComponent = class WriteValueModalComponent {
|
|
|
37
38
|
this.validate();
|
|
38
39
|
}
|
|
39
40
|
initData(option) {
|
|
41
|
+
var _a, _b, _c, _d, _e;
|
|
40
42
|
this.variableName = option.variableName;
|
|
43
|
+
this.displayVariableName = this.variableName;
|
|
44
|
+
if (this.variableName === '当前语种ID') {
|
|
45
|
+
const language = ((_c = (_b = (_a = window.abp) === null || _a === void 0 ? void 0 : _a.localization) === null || _b === void 0 ? void 0 : _b.currentLanguage) === null || _c === void 0 ? void 0 : _c.name) || ((_e = (_d = this.localization.localizationService) === null || _d === void 0 ? void 0 : _d.translate) === null || _e === void 0 ? void 0 : _e.currentLang);
|
|
46
|
+
const isTraditionalChinese = language === 'zh-Hant' || language === 'zh-TW' || language === 'zh-tw';
|
|
47
|
+
const isChinese = language === 'zh-Hans' || language === 'zh';
|
|
48
|
+
if (isTraditionalChinese) {
|
|
49
|
+
this.displayVariableName = '當前語種ID';
|
|
50
|
+
}
|
|
51
|
+
else if (!isChinese) {
|
|
52
|
+
this.displayVariableName = 'Current Language ID';
|
|
53
|
+
}
|
|
54
|
+
}
|
|
41
55
|
this.dataType = option.dataType;
|
|
42
56
|
this.fBoxDataType = option.fBoxDataType;
|
|
43
57
|
this.integerDigits = option.integerDigits ? option.integerDigits : 0;
|
|
@@ -58,17 +72,20 @@ let WriteValueModalComponent = class WriteValueModalComponent {
|
|
|
58
72
|
this.writeValueRangeText = this.getWriteValueRangeText();
|
|
59
73
|
}
|
|
60
74
|
setValueRangeAccordToDataParsed(option) {
|
|
75
|
+
// 上下限已在 numerical-display-element.ts 中解析为数值,直接使用
|
|
76
|
+
const resolvedUpperLimit = Number(this.numericalOperation.numericalUpperLimit);
|
|
77
|
+
const resolvedLowerLimit = Number(this.numericalOperation.numericalLowerLimit);
|
|
61
78
|
if (this.dataTypeService.isFloat(option.version, this.dataType) || this.enableNumericalOperation) {
|
|
62
79
|
this.maxValueLimit = this.dataTypeService.getMaxValue(option.version, this.dataType, this.fBoxDataType);
|
|
63
80
|
this.minValueLimit = this.dataTypeService.getMinValue(option.version, this.dataType, this.fBoxDataType);
|
|
64
|
-
this.numericalLowerLimit =
|
|
65
|
-
this.numericalUpperLimit =
|
|
81
|
+
this.numericalLowerLimit = resolvedLowerLimit;
|
|
82
|
+
this.numericalUpperLimit = resolvedUpperLimit;
|
|
66
83
|
}
|
|
67
84
|
else {
|
|
68
85
|
this.maxValueLimit = +this.fractionDigitService.movePoint(this.dataTypeService.getMaxValue(option.version, this.dataType, this.fBoxDataType), -this.fractionDigits);
|
|
69
86
|
this.minValueLimit = +this.fractionDigitService.movePoint(this.dataTypeService.getMinValue(option.version, this.dataType, this.fBoxDataType), -this.fractionDigits);
|
|
70
|
-
this.numericalLowerLimit = +this.fractionDigitService.movePoint(
|
|
71
|
-
this.numericalUpperLimit = +this.fractionDigitService.movePoint(
|
|
87
|
+
this.numericalLowerLimit = +this.fractionDigitService.movePoint(resolvedLowerLimit, -this.fractionDigits);
|
|
88
|
+
this.numericalUpperLimit = +this.fractionDigitService.movePoint(resolvedUpperLimit, -this.fractionDigits);
|
|
72
89
|
}
|
|
73
90
|
const minValue = this.numericalOperationService.getWriteMinValue(this.minValueLimit, this.numericalOperation);
|
|
74
91
|
const maxValue = this.numericalOperationService.getWriteMaxValue(this.maxValueLimit, this.numericalOperation);
|
|
@@ -101,21 +118,80 @@ let WriteValueModalComponent = class WriteValueModalComponent {
|
|
|
101
118
|
return minValue + '~' + maxValue;
|
|
102
119
|
}
|
|
103
120
|
save() {
|
|
121
|
+
this.isSubmitting = true;
|
|
122
|
+
let value = this.value;
|
|
123
|
+
const showValue = this.value;
|
|
104
124
|
if (this.args.enableDataParsed) {
|
|
105
125
|
if (this.enableNumericalOperation) {
|
|
106
|
-
|
|
126
|
+
value = this.numericalOperationService.getWriteValue(this.args.version, this.value, this.numericalOperation, this.dataType, this.fractionDigits);
|
|
107
127
|
}
|
|
108
128
|
else {
|
|
109
|
-
|
|
129
|
+
value = this.formatWriteValue();
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
// 处理系统变量"当前语种ID"
|
|
133
|
+
if (this.variableName === '当前语种ID') {
|
|
134
|
+
this.handleCurrentLanguageIdSave(value);
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
if (!this.args.releasedVariableService) {
|
|
138
|
+
this.onClosed({
|
|
139
|
+
value: value,
|
|
140
|
+
showValue: showValue,
|
|
141
|
+
enableNumericalOperation: false,
|
|
142
|
+
isNumericalOperation: this.isNumericalOperation,
|
|
143
|
+
variableRwType: 6
|
|
144
|
+
});
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
this.args.releasedVariableService.getVariableWithValueTransform(this.variableName).subscribe(result => {
|
|
148
|
+
const valueTransform = JSON.parse(result.valueTransform);
|
|
149
|
+
if ((valueTransform === null || valueTransform === void 0 ? void 0 : valueTransform.Type) !== 0) {
|
|
150
|
+
this.isNumericalOperation = true;
|
|
110
151
|
}
|
|
152
|
+
this.onClosed({
|
|
153
|
+
value: value,
|
|
154
|
+
showValue: showValue,
|
|
155
|
+
enableNumericalOperation: this.enableNumericalOperation,
|
|
156
|
+
isNumericalOperation: this.isNumericalOperation,
|
|
157
|
+
variableRwType: result.variableRwType
|
|
158
|
+
});
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* 处理"当前语种ID"系统变量的保存
|
|
163
|
+
*/
|
|
164
|
+
handleCurrentLanguageIdSave(value) {
|
|
165
|
+
if (!this.args.guiContext || !this.args.guiContext.updateCurrentLanguageId) {
|
|
166
|
+
this.showValidationErrorInfo(this.localization.loadFailed);
|
|
167
|
+
this.isSubmitting = false;
|
|
168
|
+
return;
|
|
111
169
|
}
|
|
112
|
-
|
|
170
|
+
// 转换为数字类型
|
|
171
|
+
const languageId = value === '' || value == null ? null : Number(value);
|
|
172
|
+
// 调用 GuiContext 的语种切换方法
|
|
173
|
+
this.args.guiContext.updateCurrentLanguageId(languageId).then(() => {
|
|
174
|
+
// 语种切换成功,调用 onClosed 回调,让数字显示元件也能更新
|
|
175
|
+
this.onClosed({
|
|
176
|
+
value: value,
|
|
177
|
+
showValue: value,
|
|
178
|
+
enableNumericalOperation: false,
|
|
179
|
+
isNumericalOperation: false,
|
|
180
|
+
variableRwType: 6
|
|
181
|
+
});
|
|
182
|
+
}).catch(() => {
|
|
183
|
+
this.showValidationErrorInfo(this.localization.loadFailed);
|
|
184
|
+
this.isSubmitting = false;
|
|
185
|
+
});
|
|
113
186
|
}
|
|
114
|
-
close(
|
|
115
|
-
this.
|
|
116
|
-
this._onClosed.complete();
|
|
187
|
+
close() {
|
|
188
|
+
this.bsModalRef.hide();
|
|
117
189
|
}
|
|
118
|
-
validate() {
|
|
190
|
+
validate(event = null) {
|
|
191
|
+
if (event && event.keyCode === 13 && !this.validationError) {
|
|
192
|
+
this.save();
|
|
193
|
+
return;
|
|
194
|
+
}
|
|
119
195
|
// 校验数值必填
|
|
120
196
|
if (null == this.value || '' === this.value.trim()) {
|
|
121
197
|
return this.showValidationErrorInfo(this.localization.numericalValueRequired);
|
|
@@ -193,12 +269,14 @@ __decorate([
|
|
|
193
269
|
WriteValueModalComponent = __decorate([
|
|
194
270
|
Component({
|
|
195
271
|
selector: 'writeValueModal',
|
|
196
|
-
template: "<form #writeValueForm=\"ngForm\" novalidate (ngSubmit)=\"save()\" bs-modal-drag> <div class=\"modal-header\"> <h4 class=\"modal-title\"> <span>{{localization.setting}}</span> <span>{{
|
|
197
|
-
styles: [".modal-header { padding: 10px; border-color: transparent; } .modal-body { position: relative; padding: 0px 5px !important; padding-top: 10px !important; } .modal-title { display: unset; margin-left: -6px; font-size: 16px !important; } .form-control { margin: 0 5%; float: none; width: 90%; } .modal-footer { padding: 10px
|
|
272
|
+
template: "<form #writeValueForm=\"ngForm\" novalidate (ngSubmit)=\"save()\" bs-modal-drag> <div class=\"modal-header\"> <h4 class=\"modal-title\"> <span>{{localization.setting}}</span> <span>{{displayVariableName}}</span> </h4> <button type=\"button\" class=\"close pull-right\" aria-label=\"Close\" (click)=\"close()\"> <span aria-hidden=\"true\">×</span> </button> </div> <div class=\"modal-body\"> <span class=\"write-value-range\">{{localization.writeValueRange}}:</span> <span> {{writeValueRangeText}} <span *ngIf=\"valueType\">({{valueType}})</span> </span> <input type=\"text\" name=\"valueInput\" autoFocus [class.form-control-write]=\"!isMobileMode\" class=\"form-control write-value\" [(ngModel)]=\"value\" (keyup)=\"validate($event)\" autocomplete=\"off\"> <span class=\"help-block text-danger\" [hidden]=\"!validationError\">{{validationErrorText}}</span> </div> <div class=\"modal-footer\" [class.modal-footer-write]=\"!isMobileMode\"> <button type=\"submit\" [class.btn-primary-write]=\"!isMobileMode\" class=\"btn md-skip btn-primary btn-block\" [disabled]=\"validationError || isSubmitting\"> <ng-container *ngIf=\"!isSubmitting\">{{localization.submit}}</ng-container> <ng-container *ngIf=\"isSubmitting\">{{localization.submitting}}</ng-container> </button> </div> </form> ",
|
|
273
|
+
styles: [".modal-header { padding: 10px; border-color: transparent; } .modal-body { position: relative; padding: 0px 5px !important; padding-top: 10px !important; } .modal-title { display: unset; margin-left: -6px; font-size: 16px !important; } .form-control { margin: 0 5%; float: none; width: 90%; } .form-control-write { margin: 0 20px; width: 585px; } .modal-footer { padding: 10px 5px 20px 5px !important; text-align: right; border-color: transparent; } .modal-footer-write { margin-right: 4px; padding: 10px 5px 20px 5px !important; } .text-danger { display: block; color: #ed6b75; font-size: 14px; margin: 5px 0px 0px 15px; } .btn-primary { background-color: #3B97FC; border-color: #3B97FC; padding: 5px 30px; width: 90%; margin: 0 5%; height: 32px; } .btn-primary-write { width: 585px; margin: 0 15px 0 0; } .write-value-range { color: #7f939e; font-size: 14px; margin-left: 15px; } .write-value { padding-left: 8px; margin-left: 16px; height: 32px; } "]
|
|
198
274
|
}),
|
|
199
275
|
__param(0, Inject(LOCALIZATION)),
|
|
200
276
|
__metadata("design:paramtypes", [Object, DataTypeService,
|
|
201
277
|
FractionDigitService,
|
|
202
|
-
NumericalOperationService
|
|
278
|
+
NumericalOperationService,
|
|
279
|
+
BsModalRef,
|
|
280
|
+
Injector])
|
|
203
281
|
], WriteValueModalComponent);
|
|
204
282
|
export { WriteValueModalComponent };
|
|
@@ -21,12 +21,22 @@
|
|
|
21
21
|
width: 90%;
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
+
.form-control-write {
|
|
25
|
+
margin: 0 20px;
|
|
26
|
+
width: 585px;
|
|
27
|
+
}
|
|
28
|
+
|
|
24
29
|
.modal-footer {
|
|
25
|
-
padding: 10px
|
|
30
|
+
padding: 10px 5px 20px 5px !important;
|
|
26
31
|
text-align: right;
|
|
27
32
|
border-color: transparent;
|
|
28
33
|
}
|
|
29
34
|
|
|
35
|
+
.modal-footer-write {
|
|
36
|
+
margin-right: 4px;
|
|
37
|
+
padding: 10px 5px 20px 5px !important;
|
|
38
|
+
}
|
|
39
|
+
|
|
30
40
|
.text-danger {
|
|
31
41
|
display: block;
|
|
32
42
|
color: #ed6b75;
|
|
@@ -43,6 +53,11 @@
|
|
|
43
53
|
height: 32px;
|
|
44
54
|
}
|
|
45
55
|
|
|
56
|
+
.btn-primary-write {
|
|
57
|
+
width: 585px;
|
|
58
|
+
margin: 0 15px 0 0;
|
|
59
|
+
}
|
|
60
|
+
|
|
46
61
|
.write-value-range {
|
|
47
62
|
color: #7f939e;
|
|
48
63
|
font-size: 14px;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"__symbolic":"module","version":4,"metadata":{"WriteValueModalComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":
|
|
1
|
+
[{"__symbolic":"module","version":4,"metadata":{"WriteValueModalComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":12,"character":1},"arguments":[{"selector":"writeValueModal","template":"<form #writeValueForm=\"ngForm\" novalidate (ngSubmit)=\"save()\" bs-modal-drag> <div class=\"modal-header\"> <h4 class=\"modal-title\"> <span>{{localization.setting}}</span> <span>{{displayVariableName}}</span> </h4> <button type=\"button\" class=\"close pull-right\" aria-label=\"Close\" (click)=\"close()\"> <span aria-hidden=\"true\">×</span> </button> </div> <div class=\"modal-body\"> <span class=\"write-value-range\">{{localization.writeValueRange}}:</span> <span> {{writeValueRangeText}} <span *ngIf=\"valueType\">({{valueType}})</span> </span> <input type=\"text\" name=\"valueInput\" autoFocus [class.form-control-write]=\"!isMobileMode\" class=\"form-control write-value\" [(ngModel)]=\"value\" (keyup)=\"validate($event)\" autocomplete=\"off\"> <span class=\"help-block text-danger\" [hidden]=\"!validationError\">{{validationErrorText}}</span> </div> <div class=\"modal-footer\" [class.modal-footer-write]=\"!isMobileMode\"> <button type=\"submit\" [class.btn-primary-write]=\"!isMobileMode\" class=\"btn md-skip btn-primary btn-block\" [disabled]=\"validationError || isSubmitting\"> <ng-container *ngIf=\"!isSubmitting\">{{localization.submit}}</ng-container> <ng-container *ngIf=\"isSubmitting\">{{localization.submitting}}</ng-container> </button> </div> </form> ","styles":[".modal-header { padding: 10px; border-color: transparent; } .modal-body { position: relative; padding: 0px 5px !important; padding-top: 10px !important; } .modal-title { display: unset; margin-left: -6px; font-size: 16px !important; } .form-control { margin: 0 5%; float: none; width: 90%; } .form-control-write { margin: 0 20px; width: 585px; } .modal-footer { padding: 10px 5px 20px 5px !important; text-align: right; border-color: transparent; } .modal-footer-write { margin-right: 4px; padding: 10px 5px 20px 5px !important; } .text-danger { display: block; color: #ed6b75; font-size: 14px; margin: 5px 0px 0px 15px; } .btn-primary { background-color: #3B97FC; border-color: #3B97FC; padding: 5px 30px; width: 90%; margin: 0 5%; height: 32px; } .btn-primary-write { width: 585px; margin: 0 15px 0 0; } .write-value-range { color: #7f939e; font-size: 14px; margin-left: 15px; } .write-value { padding-left: 8px; margin-left: 16px; height: 32px; } "]}]}],"members":{"invalidErrorText":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":48,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":54,"character":9},"arguments":[{"__symbolic":"reference","module":"../../localization","name":"LOCALIZATION","line":54,"character":16}]}],null,null,null,null,null],"parameters":[{"__symbolic":"reference","module":"../../localization","name":"Localization","line":54,"character":51},{"__symbolic":"reference","module":"../../utils/data-type/data-type.service","name":"DataTypeService","line":55,"character":42},{"__symbolic":"reference","module":"../../utils/fraction-digit.service","name":"FractionDigitService","line":56,"character":47},{"__symbolic":"reference","module":"../../utils/numerical-operation.service","name":"NumericalOperationService","line":57,"character":52},{"__symbolic":"reference","module":"ngx-bootstrap/modal","name":"BsModalRef","line":58,"character":37},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":59,"character":18}]}],"ngOnInit":[{"__symbolic":"method"}],"initData":[{"__symbolic":"method"}],"setValueRangeAccordToDataParsed":[{"__symbolic":"method"}],"getWriteValueRangeText":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"handleCurrentLanguageIdSave":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}],"validate":[{"__symbolic":"method"}],"showValidationErrorInfo":[{"__symbolic":"method"}],"hideValidationErrorInfo":[{"__symbolic":"method"}],"getFractionDigits":[{"__symbolic":"method"}],"formatWriteValue":[{"__symbolic":"method"}]}}}}]
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ConditionalDisplayModel } from '../base/conditional-display-model';
|
|
2
|
+
import { Point, Size } from '../shared';
|
|
3
|
+
export interface AlarmModel extends ConditionalDisplayModel {
|
|
4
|
+
readonly version: number;
|
|
5
|
+
readonly size: Size;
|
|
6
|
+
readonly location: Point;
|
|
7
|
+
readonly generalSetting?: any;
|
|
8
|
+
readonly filterSetting?: any;
|
|
9
|
+
readonly widths: number[];
|
|
10
|
+
readonly heights: number[];
|
|
11
|
+
readonly columLabels: string[];
|
|
12
|
+
readonly levelText: string[];
|
|
13
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[{"__symbolic":"module","version":4,"metadata":{"AlarmModel":{"__symbolic":"interface"}}}]
|
|
@@ -19,4 +19,8 @@ export interface BarGraph extends ReadableModel {
|
|
|
19
19
|
readonly upperLimitColor?: string;
|
|
20
20
|
readonly lowerLimitColor?: string;
|
|
21
21
|
readonly percentageFont?: FontStyleData;
|
|
22
|
+
readonly masterDivisionNumber: number;
|
|
23
|
+
readonly subDivisionNumber: number;
|
|
24
|
+
readonly integerDigits: number;
|
|
25
|
+
readonly fractionDigits: number;
|
|
22
26
|
}
|