centaline-data-driven-v3 0.0.50 → 0.0.52
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/dist/centaline-data-driven-v3.umd.js +88 -83
- package/package.json +2 -1
- package/src/components/app/PhotoSelect.vue +41 -34
- package/src/components/app/PhotoSelectList.vue +3 -3
- package/src/components/app/SearchList/SearchTable.vue +9 -7
- package/src/components/app/ViewerFile.vue +1 -1
- package/src/components/web/ComboBox.vue +1 -0
- package/src/components/web/PhotoSelect.vue +1 -1
- package/src/components/web/PhotoSelectList.vue +4 -4
- package/src/components/web/ViewerFile/ViewerPDFjs.vue +24 -4
- package/src/components/web/other/PopupSearchListTable.vue +3 -3
- package/src/loader/src/FormList.js +2 -2
- package/src/main.js +2 -1
- package/src/utils/common.js +8 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "centaline-data-driven-v3",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.52",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "centaline-data-driven-v3",
|
|
6
6
|
"main": "dist/centaline-data-driven-v3.umd.js",
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
"element-plus": "^2.5.5",
|
|
16
16
|
"moment": "^2.30.1",
|
|
17
17
|
"photo-sphere-viewer": "^4.8.1",
|
|
18
|
+
"sortablejs": "^1.15.6",
|
|
18
19
|
"vant": "^4.8.0",
|
|
19
20
|
"vite-plugin-css-injected-by-js": "^3.3.0",
|
|
20
21
|
"vue": "^3.3.4",
|
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="van-uploader" style="margin:10px 10px 0 10px; ">
|
|
3
3
|
<div class="van-uploader__wrapper">
|
|
4
|
-
<
|
|
5
|
-
<template
|
|
6
|
-
<div class="van-uploader__preview" style="display:inline-block;"
|
|
4
|
+
<div ref="uploadImgItem">
|
|
5
|
+
<template v-for="(element, index) in photoList" :key="element.mediaCode">
|
|
6
|
+
<div class="van-uploader__preview" style="display:inline-block;"
|
|
7
|
+
@click="viewerfile(photoList, index)">
|
|
7
8
|
<div class="van-image van-uploader__preview-image">
|
|
8
9
|
<img :src="element.thumbnailUrl" class="van-image__img" style="object-fit: cover;">
|
|
9
10
|
<div class="van-uploader__preview-cover">
|
|
10
11
|
<div class="preview-cover van-ellipsis">{{ element.mediaLabelName }}</div>
|
|
11
12
|
</div>
|
|
12
|
-
<div class="swiper-i" @click="viewerfile(photoList, index)"
|
|
13
|
+
<div class="swiper-i" @click="viewerfile(photoList, index)"
|
|
14
|
+
v-if="element.mediaTypeID == '7'">
|
|
13
15
|
<img :src="util.getAssetsImage('p3602x.png')" class="hous-icon" />
|
|
14
16
|
</div>
|
|
15
17
|
</div>
|
|
@@ -21,7 +23,7 @@
|
|
|
21
23
|
|
|
22
24
|
</div>
|
|
23
25
|
</template>
|
|
24
|
-
</
|
|
26
|
+
</div>
|
|
25
27
|
<div class="van-uploader__upload" v-if="!model.locked && photoList.length < max" @click="handleOpen()">
|
|
26
28
|
<i class="van-badge__wrapper van-icon van-icon-plus van-uploader__upload-icon"></i>
|
|
27
29
|
</div>
|
|
@@ -29,12 +31,12 @@
|
|
|
29
31
|
</div>
|
|
30
32
|
</template>
|
|
31
33
|
<script setup lang="ts">
|
|
32
|
-
import { ref, nextTick } from 'vue'
|
|
34
|
+
import { ref, nextTick, onMounted } from 'vue'
|
|
33
35
|
import { ElMessage } from 'element-plus'
|
|
34
36
|
import common from '../../utils/common'
|
|
35
37
|
import util from '../../utils/pub-use'
|
|
36
38
|
import PhotoSelect from '../../loader/src/PhotoSelect';
|
|
37
|
-
import
|
|
39
|
+
import Sortable from 'sortablejs'
|
|
38
40
|
const emit = defineEmits(['loaded'])
|
|
39
41
|
const props = defineProps({
|
|
40
42
|
vmodel: Object,
|
|
@@ -42,17 +44,11 @@ const props = defineProps({
|
|
|
42
44
|
})
|
|
43
45
|
const max = ref(99999)
|
|
44
46
|
const photoList = ref([])
|
|
45
|
-
const
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
ghostClass: "ghost",
|
|
51
|
-
dragClass: "drag",
|
|
52
|
-
chosenClass: "chosen",
|
|
53
|
-
forceFallback: true,
|
|
54
|
-
handle:'.van-uploader__preview-image',
|
|
55
|
-
}
|
|
47
|
+
const uploadImgItem = ref()
|
|
48
|
+
|
|
49
|
+
onMounted(() => {
|
|
50
|
+
initDragSort()
|
|
51
|
+
})
|
|
56
52
|
|
|
57
53
|
const model = ref()
|
|
58
54
|
init();
|
|
@@ -63,6 +59,30 @@ function init() {
|
|
|
63
59
|
}
|
|
64
60
|
|
|
65
61
|
}
|
|
62
|
+
const initDragSort = () => {
|
|
63
|
+
nextTick(() => {
|
|
64
|
+
// 选择包含所有可排序项目的容器
|
|
65
|
+
const el = uploadImgItem.value
|
|
66
|
+
|
|
67
|
+
// 确保 el 是一个有效的 DOM 元素
|
|
68
|
+
if (el) {
|
|
69
|
+
Sortable.create(el, {
|
|
70
|
+
group: 'shared', // 设置同一组内的元素可以互相排序
|
|
71
|
+
fallbackOnBody: false, // 如果需要的话,可以在 body 上进行拖拽
|
|
72
|
+
swapThreshold: 0.65, // 控制元素交换的阈值
|
|
73
|
+
onEnd: (/** 事件对象 */ evt) => {
|
|
74
|
+
// 获取旧的索引和新索引
|
|
75
|
+
const { oldIndex, newIndex } = evt
|
|
76
|
+
// 交换位置
|
|
77
|
+
const movedItem = photoList.value.splice(oldIndex, 1)[0]
|
|
78
|
+
photoList.value.splice(newIndex, 0, movedItem)
|
|
79
|
+
|
|
80
|
+
PhotoSelect.setfileSourceList(photoList.value, model.value);
|
|
81
|
+
}
|
|
82
|
+
})
|
|
83
|
+
}
|
|
84
|
+
})
|
|
85
|
+
}
|
|
66
86
|
|
|
67
87
|
function load(data) {
|
|
68
88
|
model.value = data;
|
|
@@ -140,22 +160,8 @@ function handleOpen() {
|
|
|
140
160
|
|
|
141
161
|
|
|
142
162
|
}
|
|
143
|
-
function onEnd(a, b) {
|
|
144
|
-
|
|
145
|
-
nextTick(function () {
|
|
146
|
-
PhotoSelect.setfileSourceList(photoList.value, model.value);
|
|
147
|
-
});
|
|
148
|
-
}
|
|
149
|
-
function radiochecked(list, item) {
|
|
150
163
|
|
|
151
|
-
list.forEach((v) => {
|
|
152
|
-
v.flagDefault = false;
|
|
153
|
-
});
|
|
154
|
-
item.flagDefault = true;
|
|
155
|
-
PhotoSelect.setfileSourceList(list, model.value);
|
|
156
164
|
|
|
157
|
-
selfValidExcute("valid");
|
|
158
|
-
}
|
|
159
165
|
//不能共用的数据校验
|
|
160
166
|
function selfValidExcute(eventName) {
|
|
161
167
|
return PhotoSelect.selfValidExcute(eventName, model.value)
|
|
@@ -196,6 +202,7 @@ defineExpose({
|
|
|
196
202
|
position: absolute;
|
|
197
203
|
bottom: 0;
|
|
198
204
|
}
|
|
205
|
+
|
|
199
206
|
.swiper-i {
|
|
200
207
|
position: absolute;
|
|
201
208
|
width: 100%;
|
|
@@ -217,9 +224,9 @@ defineExpose({
|
|
|
217
224
|
transform: translate(-50%, -50%);
|
|
218
225
|
}
|
|
219
226
|
|
|
220
|
-
.van-uploader__preview-image
|
|
227
|
+
.van-uploader__preview-image,
|
|
228
|
+
.van-uploader__upload {
|
|
221
229
|
width: 110px;
|
|
222
230
|
height: 110px;
|
|
223
231
|
}
|
|
224
|
-
|
|
225
232
|
</style>
|
|
@@ -39,13 +39,13 @@
|
|
|
39
39
|
</template>
|
|
40
40
|
</template>
|
|
41
41
|
<template v-else>
|
|
42
|
-
<van-empty description="没有数据" />
|
|
42
|
+
<van-empty :description="common.LocalizedString('没有数据','沒有數據')" />
|
|
43
43
|
</template>
|
|
44
44
|
</div>
|
|
45
45
|
<div class="PhotoSelectList-bottom">
|
|
46
|
-
<van-checkbox @change="allchoose" v-model="allcheck" shape="square" icon-size="14px"
|
|
46
|
+
<van-checkbox @change="allchoose" v-model="allcheck" shape="square" icon-size="14px">{{common.LocalizedString('全选','全選')}}</van-checkbox>
|
|
47
47
|
<van-button type="primary" class="van-button-app" size="small" style="display: flex;margin-left: 30%;"
|
|
48
|
-
@click="handleClick()"
|
|
48
|
+
@click="handleClick()">{{common.LocalizedString('确定','確認')}}</van-button>
|
|
49
49
|
</div>
|
|
50
50
|
</div>
|
|
51
51
|
<van-popup v-model:show="showPicker" position="bottom" :safe-area-inset-bottom="true">
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
<div ref="refTableParent" class="ct-tableParentAPP" :style="'height:' + model.tableHeight + 'px'"
|
|
11
11
|
@scroll="scrollHandle($event)">
|
|
12
12
|
<van-pull-refresh v-model="refreshing" @refresh="onRefresh">
|
|
13
|
-
<van-list v-if="!tableError" v-model:loading="tableLoading" error-text="没有查到数据,点我刷新"
|
|
13
|
+
<van-list v-if="!tableError" v-model:loading="tableLoading" :error-text="common.LocalizedString('没有查到数据,点我刷新','沒有查到數據,點我刷新')"
|
|
14
14
|
:finished="finished" @load="onLoad" :immediate-check="false"
|
|
15
15
|
:style="'min-height:' + model.tableHeight + 'px'">
|
|
16
16
|
<template v-if="flagPopupSearchlist && singleSelectio">
|
|
@@ -29,9 +29,11 @@
|
|
|
29
29
|
<template v-else>
|
|
30
30
|
<van-checkbox-group v-model="checkeds" ref="refCheckboxGroup">
|
|
31
31
|
<div class="ct-list" v-for="(row, rowindex) in model.listData" :key="rowindex">
|
|
32
|
-
<
|
|
33
|
-
|
|
34
|
-
|
|
32
|
+
<template v-if="isoperate || flagPopupSearchlist">
|
|
33
|
+
<van-checkbox v-if="flagSelect(row)" shape="square" checked-color="#EE6B6B"
|
|
34
|
+
icon-size="14px" :name="rowindex" @click="selectRow(row)"></van-checkbox>
|
|
35
|
+
<div class="van-checkbox" v-else></div>
|
|
36
|
+
</template>
|
|
35
37
|
<ct-layout :vmodel="row" :cellLayout="model.cellLayout" :rowindex="rowindex"
|
|
36
38
|
:key="itemKey" @rolRouterclick="rolRouterCellClickHandler"
|
|
37
39
|
:actionRouter="model.actionRouter"
|
|
@@ -41,7 +43,7 @@
|
|
|
41
43
|
</van-checkbox-group>
|
|
42
44
|
</template>
|
|
43
45
|
</van-list>
|
|
44
|
-
<van-empty v-else description="没有查到数据" />
|
|
46
|
+
<van-empty v-else :description="common.LocalizedString('没有查到数据','沒有查到數據')" />
|
|
45
47
|
</van-pull-refresh>
|
|
46
48
|
<div v-if="isoperate || flagPopupSearchlist" style="height: 50px;"></div>
|
|
47
49
|
<div class="safe-area-inset-bottom" style="background-color: #fafafa;"></div>
|
|
@@ -57,7 +59,7 @@
|
|
|
57
59
|
</div>
|
|
58
60
|
<div class="ct-checkboxtips" v-if="isoperate || flagPopupSearchlist">
|
|
59
61
|
<van-checkbox v-if="!singleSelectio" v-model="model.selectAll" shape="square" checked-color="#EE6B6B"
|
|
60
|
-
icon-size="14px" :indeterminate="model.isIndeterminate" @click="selectAll()"
|
|
62
|
+
icon-size="14px" :indeterminate="model.isIndeterminate" @click="selectAll()">{{common.LocalizedString('本页全选(已选','本頁全選(已選')}}{{ selectCount }})
|
|
61
63
|
</van-checkbox>
|
|
62
64
|
<div style="display: flex;flex: 1; justify-content: right;">
|
|
63
65
|
<template v-if="!flagPopupSearchlist">
|
|
@@ -69,7 +71,7 @@
|
|
|
69
71
|
</template>
|
|
70
72
|
<template v-else>
|
|
71
73
|
<van-button color="#EE6B6B" size="small" @click="confirmClickHandler()"
|
|
72
|
-
style=" width: 25%;margin-left: 10px;"
|
|
74
|
+
style=" width: 25%;margin-left: 10px;">{{common.LocalizedString('确认','確認')}}</van-button>
|
|
73
75
|
</template>
|
|
74
76
|
</div>
|
|
75
77
|
</div>
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
</div>
|
|
33
33
|
</div>
|
|
34
34
|
<template v-if="file.mediaTypeID == '1'">
|
|
35
|
-
<iframe :src="file.mediaUrl" height="100%" width="100%" style="border-width: 0px;">
|
|
35
|
+
<iframe :src="file.mediaUrl" height="100%" width="100%" style="border-width: 0px;" allowfullscreen allowvr>
|
|
36
36
|
</iframe>
|
|
37
37
|
</template>
|
|
38
38
|
<!--Photo-->
|
|
@@ -129,7 +129,7 @@ function handleOpen() {
|
|
|
129
129
|
chooseList.push(n);
|
|
130
130
|
});
|
|
131
131
|
var dialogOption = {
|
|
132
|
-
title:
|
|
132
|
+
title: common.LocalizedString('选择','選擇') + model.value.controlLabel || common.LocalizedString('选择图片','選擇圖片'),
|
|
133
133
|
pane: common.getParentPane(),
|
|
134
134
|
content: [{
|
|
135
135
|
component: "ct-photoselectlist",
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<div v-loading="loading" style="width: 100%;height: 100%;">
|
|
3
3
|
<div style="width: 100%;height: 100%;position: relative;" class="ct-photoSelectList" v-if="FlagPhoto">
|
|
4
4
|
<div style="padding: 10px 0 0 20px" v-if="paramName">
|
|
5
|
-
<el-select-v2 v-model="mediaLabelID" :props="optionAttrs" :options="options" placeholder="类别"
|
|
5
|
+
<el-select-v2 v-model="mediaLabelID" :props="optionAttrs" :options="options" :placeholder="common.LocalizedString('类别','類別')"
|
|
6
6
|
style="width: 150px;" @change="change" clearable />
|
|
7
7
|
</div>
|
|
8
8
|
<el-main :style="paramName ? 'top: 40px' : 'top: 10px'"
|
|
@@ -53,14 +53,14 @@
|
|
|
53
53
|
</template>
|
|
54
54
|
</template>
|
|
55
55
|
<template v-else>
|
|
56
|
-
<el-empty description="没有数据" />
|
|
56
|
+
<el-empty :description="common.LocalizedString('没有数据','沒有數據')" />
|
|
57
57
|
</template>
|
|
58
58
|
</el-main>
|
|
59
59
|
|
|
60
60
|
<div style="width:100%;text-align:center">
|
|
61
61
|
<el-checkbox style="position:absolute;bottom:10px;left: 15px;" @change="allchoose"
|
|
62
|
-
v-model="allcheck"
|
|
63
|
-
<el-button type="primary" style="position:absolute;bottom:10px;" @click="handleClick()"
|
|
62
|
+
v-model="allcheck">{{common.LocalizedString('全选','全選')}}</el-checkbox>
|
|
63
|
+
<el-button type="primary" style="position:absolute;bottom:10px;" @click="handleClick()">{{common.LocalizedString('确定','確認')}}</el-button>
|
|
64
64
|
</div>
|
|
65
65
|
</div>
|
|
66
66
|
</div>
|
|
@@ -41,10 +41,23 @@ function complete() {
|
|
|
41
41
|
|
|
42
42
|
var doc = document.getElementById("previewPdf").contentWindow.document;
|
|
43
43
|
if (doc) {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
44
|
+
elementHideById("download", doc)
|
|
45
|
+
elementHideById("openFile", doc)
|
|
46
|
+
elementHideById("print", doc)
|
|
47
|
+
elementHideById("viewBookmark", doc)
|
|
48
|
+
|
|
49
|
+
elementHideById("editorHighlightButton", doc)
|
|
50
|
+
elementHideById("editorFreeText", doc)
|
|
51
|
+
elementHideById("editorInk", doc)
|
|
52
|
+
elementHideById("editorStamp", doc)
|
|
53
|
+
elementHideById("editorModeButtons", doc)
|
|
54
|
+
|
|
55
|
+
elementHideById("printButton", doc)
|
|
56
|
+
elementHideById("downloadButton", doc)
|
|
57
|
+
|
|
58
|
+
elementHideById("secondaryOpenFile", doc)
|
|
59
|
+
elementHideById("cursorToolButtons", doc)
|
|
60
|
+
elementHideById("documentProperties", doc)
|
|
48
61
|
doc.oncontextmenu = new Function("event.returnValue=false");
|
|
49
62
|
}
|
|
50
63
|
}
|
|
@@ -71,6 +84,13 @@ function getApplicationPath() {
|
|
|
71
84
|
}
|
|
72
85
|
return url;
|
|
73
86
|
}
|
|
87
|
+
function elementHideById(elementId, doc) {
|
|
88
|
+
if (doc.getElementById(elementId) != null) {
|
|
89
|
+
if (doc.getElementById(elementId).style) {
|
|
90
|
+
doc.getElementById(elementId).style.display = "none";
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
74
94
|
watch(() => props.src, () => {
|
|
75
95
|
init(props.src);
|
|
76
96
|
//complete();
|
|
@@ -36,15 +36,15 @@
|
|
|
36
36
|
</el-table>
|
|
37
37
|
<div style="margin-top: 20px;width: 100%;display: inline-block;height: 30px;margin-bottom: 10px;">
|
|
38
38
|
<span class="ct-table-tip-small" v-if="!loading && model" v-html="model.footer"></span> <span
|
|
39
|
-
class="ct-table-tip-small" v-if="!loading && !singleSelectio && model" style="color:red;"
|
|
40
|
-
{{ selectCount }}
|
|
39
|
+
class="ct-table-tip-small" v-if="!loading && !singleSelectio && model" style="color:red;">{{common.LocalizedString('已勾选','已勾選')}}
|
|
40
|
+
{{ selectCount }} {{common.LocalizedString('条','條')}}</span>
|
|
41
41
|
<el-input v-if="jumpBtnName" size="small" v-model="jumpStr" placeholder="定位"
|
|
42
42
|
style="width:150px"></el-input>
|
|
43
43
|
<el-button v-if="jumpBtnName" size="small" @click="jumpClickHandler()">{{ jumpBtnName }}</el-button>
|
|
44
44
|
<el-button v-if="filterBtnName" size="small" @click="filterClickHandler()" style="margin-left: 0px;">{{
|
|
45
45
|
filterBtnName }}</el-button>
|
|
46
46
|
<el-button size="small" @click="confirmClickHandler()" class="search-btn" style="float:right;"
|
|
47
|
-
type="primary"
|
|
47
|
+
type="primary">{{common.LocalizedString('确认','確認')}}</el-button>
|
|
48
48
|
</div>
|
|
49
49
|
</div>
|
|
50
50
|
<div style="min-height:250px;" v-loading="loadingOne" v-if="loadingOne"></div>
|
|
@@ -419,8 +419,8 @@ function fieldsToTableData(fields) {
|
|
|
419
419
|
}
|
|
420
420
|
//删除行
|
|
421
421
|
function deleteRow(index, model, callback) {
|
|
422
|
-
common.confirm(
|
|
423
|
-
confirmButtonText:
|
|
422
|
+
common.confirm(common.LocalizedString('确定删除?','確定刪除?'), "提示", {
|
|
423
|
+
confirmButtonText: common.LocalizedString('确定','確定'),
|
|
424
424
|
cancelButtonText: "取消",
|
|
425
425
|
}).then(() => {
|
|
426
426
|
model.rows.forEach((row, i) => {
|
package/src/main.js
CHANGED
|
@@ -30,6 +30,7 @@ app.use(centaline, {
|
|
|
30
30
|
zindex: 999,
|
|
31
31
|
showRequestSuccessMessage: true,
|
|
32
32
|
showRequestErrorMessage: true,
|
|
33
|
+
language:'HK',
|
|
33
34
|
handler: {
|
|
34
35
|
// 打开tab页
|
|
35
36
|
openTab: function (action) {
|
|
@@ -63,7 +64,7 @@ app.use(centaline, {
|
|
|
63
64
|
//authObject: '{token:"aplus eyJhbGciOiJIUzI1NiIsInppcCI6IkRFRiJ9.eNrEjjsOwjAQBe-ydVay1xvvOl3sJA2HiPIxElSIJBIIcXdAQEfPFK-YZt4Nlm2EChqtDafOYWqpRG6kxLoTxZhUTSRxHLUPH_DHfOmt5SDWt1gHScieHapNiol94q5pXYoNFJAvJ6isGHWmNMYVcBjWtyCr_iW2JZ93-fqPc8f18MwGIqFRCIO1GXmWGYd9npCZJ6N5JjYZ7g8AAAD__w.HgtNKtHWooj8c9Hy_vB8CfKq-qOeHMp0irnW0DfXtHo"}',
|
|
64
65
|
//oldToken: 'd92d4a3b-2274-42e8-96f0-100ffb579b6e',
|
|
65
66
|
//authObject: '{token:"1647-1802885825978044416",platform:"WEB"}',
|
|
66
|
-
authObject: '{EmpID:"
|
|
67
|
+
authObject: '{EmpID:"Token_937f0ada-8862-4c37-bf44-578531920446",MachineCode:"7a216b39-84af-43bb-842b-07604ac37a10",SSO_Token:"SSOToken_937f0ada-8862-4c37-bf44-578531920446",Platform:"WEB"}',
|
|
67
68
|
};
|
|
68
69
|
},
|
|
69
70
|
// 请求完成事件,可判断是否登录过期执行响应操作
|
package/src/utils/common.js
CHANGED
|
@@ -282,8 +282,8 @@ const common = {
|
|
|
282
282
|
if (this.hasHtml(message)) {
|
|
283
283
|
showDialog({ message: message, allowHtml: true });
|
|
284
284
|
}
|
|
285
|
-
else if(type=='error'){
|
|
286
|
-
showDialog({ title: '提示', message:message, closeOnClickOverlay: true, confirmButtonText: '确定', className: 'showDialogMessage' });
|
|
285
|
+
else if (type == 'error') {
|
|
286
|
+
showDialog({ title: '提示', message: message, closeOnClickOverlay: true, confirmButtonText: '确定', className: 'showDialogMessage' });
|
|
287
287
|
}
|
|
288
288
|
else {
|
|
289
289
|
showToast(message);
|
|
@@ -557,6 +557,12 @@ const common = {
|
|
|
557
557
|
flagApp() {
|
|
558
558
|
return dataDrivenOpts.flagApp;
|
|
559
559
|
},
|
|
560
|
+
LocalizedString(strCN, strHK) {
|
|
561
|
+
if (dataDrivenOpts.language && dataDrivenOpts.language == 'HK') {
|
|
562
|
+
return strHK;
|
|
563
|
+
}
|
|
564
|
+
return strCN;
|
|
565
|
+
},
|
|
560
566
|
//是否微信浏览器
|
|
561
567
|
flagMicroMessenger() {
|
|
562
568
|
var ua = navigator.userAgent.toLowerCase();
|