centaline-data-driven-v3 0.0.90 → 0.0.91
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 +141 -141
- package/package.json +1 -1
- package/src/assets/commonApp.css +1 -0
- package/src/components/app/ComboBox.vue +3 -3
- package/src/components/app/Form.vue +2 -2
- package/src/components/app/FormList.vue +20 -0
- package/src/components/app/SearchList/SearchTable.vue +3 -1
- package/src/components/app/TextBox.vue +1 -1
- package/src/components/app/searchScreen.vue +52 -34
- package/src/components/common/iframe.vue +4 -1
- package/src/components/web/ComboBox.vue +14 -5
- package/src/components/web/File.vue +16 -4
- package/src/components/web/Form.vue +25 -5
- package/src/components/web/MapBaidu.vue +10 -2
- package/src/components/web/PhotoSelect.vue +10 -2
- package/src/components/web/Progress.vue +17 -3
- package/src/components/web/SearchList/SearchTable.vue +15 -5
- package/src/components/web/SearchList.vue +5 -4
- package/src/components/web/SearchScreen.vue +16 -6
- package/src/components/web/Tree/Tree.vue +11 -4
- package/src/components/web/Tree.vue +11 -2
- package/src/components/web/ViewerFile.vue +7 -2
- package/src/components/web/appContainer.vue +4 -1
- package/src/components/web/dialog.vue +5 -2
- package/src/components/web/other/PopupSearchListTable.vue +6 -1
- package/src/components/web/photo.vue +16 -3
- package/src/loader/src/Field.js +5 -0
- package/src/loader/src/SearchScreen.js +447 -1
- package/src/main.js +2 -2
- package/src/utils/common.js +4 -1
- package/src/utils/mixins.js +0 -18
- package/src/utils/request.js +10 -5
|
@@ -22,9 +22,9 @@
|
|
|
22
22
|
@SaveSearchWhere="SaveSearchWhere" @SearchWhereManage="SearchWhereManage"
|
|
23
23
|
@clickSearchWhere="clickSearchWhere"></component>
|
|
24
24
|
<br v-else-if="col.controlType === Enum.ControlType.LineFeed" />
|
|
25
|
-
<component v-else :from="from" class="list-field" v-bind="col.listBind"
|
|
26
|
-
:
|
|
27
|
-
@
|
|
25
|
+
<component v-else :from="from" class="list-field" v-bind="col.listBind" :is="col.is"
|
|
26
|
+
:vmodel="col" :parameterAction="model.parameterAction" @search="searchHandler(col)"
|
|
27
|
+
@change="changeHandler(col)">
|
|
28
28
|
</component>
|
|
29
29
|
</template>
|
|
30
30
|
</template>
|
|
@@ -55,7 +55,6 @@
|
|
|
55
55
|
<script setup lang="ts">
|
|
56
56
|
import { ref, nextTick, onDeactivated } from 'vue'
|
|
57
57
|
import SearchScreen from '../../loader/src/SearchScreen'
|
|
58
|
-
import Form from '../../loader/src/Form'
|
|
59
58
|
import Enum from '../../utils/Enum'
|
|
60
59
|
import common from '../../utils/common';
|
|
61
60
|
const emit = defineEmits(['loaded', 'failLoad', 'showTitle', 'search', 'resetSearch', 'saveShortcut'])
|
|
@@ -114,6 +113,18 @@ function searchComplate(flagLoad) {
|
|
|
114
113
|
//加载数据
|
|
115
114
|
function load(data) {
|
|
116
115
|
model.value = data;
|
|
116
|
+
if (model.value.scripts) {
|
|
117
|
+
model.value.scripts.formData = model.value.formData;
|
|
118
|
+
model.value.scripts.formData.form = model.value;
|
|
119
|
+
model.value.scripts.formData.excuteData = model.value.screen;
|
|
120
|
+
model.value.scripts.formData.fieldsDic = model.value.screenDic;
|
|
121
|
+
}
|
|
122
|
+
if (model.value.onload) {
|
|
123
|
+
let onloads = model.value.onload.split(';');
|
|
124
|
+
onloads.forEach((v) => {
|
|
125
|
+
common.excute.call(model.value.scripts, v);
|
|
126
|
+
});
|
|
127
|
+
}
|
|
117
128
|
setScreenShow();
|
|
118
129
|
loading.value = false;
|
|
119
130
|
emit('loaded', model.value.flagSearch);
|
|
@@ -139,8 +150,7 @@ function setScreenShow() {
|
|
|
139
150
|
}
|
|
140
151
|
//组件值发生变化时操作
|
|
141
152
|
function changeHandler(field) {
|
|
142
|
-
SearchScreen.
|
|
143
|
-
Form.clearRelatedHandle(field, model.value.screen)
|
|
153
|
+
SearchScreen.changeHandler(field, model.value);
|
|
144
154
|
}
|
|
145
155
|
//按钮执行
|
|
146
156
|
function searchHandler(field) {
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
</div>
|
|
33
33
|
</template>
|
|
34
34
|
<script setup lang="ts">
|
|
35
|
-
import { ref, nextTick, ComponentPublicInstance } from 'vue'
|
|
35
|
+
import { ref, nextTick, ComponentPublicInstance, onBeforeUnmount } from 'vue'
|
|
36
36
|
import common from '../../../utils/common'
|
|
37
37
|
import { RouterClickHandler } from '../../../utils/mixins';
|
|
38
38
|
import Enum from '../../../utils/Enum'
|
|
@@ -80,17 +80,24 @@ const handleSetInputMap = (el: refItem, item) => {
|
|
|
80
80
|
}
|
|
81
81
|
};
|
|
82
82
|
|
|
83
|
+
const qrtimer=ref(null)
|
|
84
|
+
onBeforeUnmount(()=>{
|
|
85
|
+
if (qrtimer.value) {
|
|
86
|
+
clearTimeout(qrtimer.value);
|
|
87
|
+
qrtimer.value = null;
|
|
88
|
+
}
|
|
89
|
+
})
|
|
90
|
+
|
|
83
91
|
//搜索(查询条件调用)
|
|
84
92
|
function search(m) {
|
|
85
|
-
let timer;
|
|
86
93
|
if (searchStatus.value.length == 0) {
|
|
87
|
-
clearTimeout(
|
|
94
|
+
if(qrtimer.value)clearTimeout(qrtimer.value);
|
|
88
95
|
searchStatus.value.push('a');
|
|
89
96
|
rootNode.value.childNodes = []
|
|
90
97
|
loadNode(rootNode.value, rootResolve.value,m)
|
|
91
98
|
}
|
|
92
99
|
else {
|
|
93
|
-
|
|
100
|
+
qrtimer.value = setTimeout(() => {
|
|
94
101
|
search(m);
|
|
95
102
|
}, 200);
|
|
96
103
|
}
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
</div>
|
|
12
12
|
</template>
|
|
13
13
|
<script lang="ts" setup>
|
|
14
|
-
import { ref, nextTick, watch, onMounted } from 'vue'
|
|
14
|
+
import { ref, nextTick, watch, onMounted, onBeforeUnmount } from 'vue'
|
|
15
15
|
import Tree from './Tree/Tree.vue';
|
|
16
16
|
const emit = defineEmits(['loaded'])
|
|
17
17
|
const loadTree=ref(false)
|
|
@@ -33,10 +33,19 @@ const refscreenDiv = ref()
|
|
|
33
33
|
const reftreescreen = ref()
|
|
34
34
|
const reftree = ref()
|
|
35
35
|
const treeHeight = ref(0)
|
|
36
|
+
|
|
37
|
+
const qrtimer=ref(null)
|
|
38
|
+
onBeforeUnmount(()=>{
|
|
39
|
+
if (qrtimer.value) {
|
|
40
|
+
clearTimeout(qrtimer.value);
|
|
41
|
+
qrtimer.value = null;
|
|
42
|
+
}
|
|
43
|
+
})
|
|
44
|
+
|
|
36
45
|
function setTreeHeight() {
|
|
37
46
|
nextTick(() => {
|
|
38
47
|
if (refscreenDiv.value) {
|
|
39
|
-
|
|
48
|
+
qrtimer.value = setTimeout(() => {
|
|
40
49
|
let searchHeight = refscreenDiv.value.offsetHeight;
|
|
41
50
|
treeHeight.value = props.searchtreeHeight - searchHeight;
|
|
42
51
|
}, 200);
|
|
@@ -228,6 +228,7 @@ const displayAreaHeight = ref(0)
|
|
|
228
228
|
const downloadUrl = ref("")
|
|
229
229
|
const downloadLoading = ref(false)
|
|
230
230
|
const mediaLabelShow=ref(false)
|
|
231
|
+
const qrtimer=ref(null)
|
|
231
232
|
|
|
232
233
|
groupCountLen.value = 0;
|
|
233
234
|
props.MediaAlbum.forEach((item, n) => {
|
|
@@ -294,7 +295,7 @@ function handDownloadUrl(url) {
|
|
|
294
295
|
else {
|
|
295
296
|
downloadUrl.value = getDownloadUrl(url) + "?download=1&" + Math.random();
|
|
296
297
|
}
|
|
297
|
-
setTimeout(function () {
|
|
298
|
+
qrtimer.value = setTimeout(function () {
|
|
298
299
|
downloadLoading.value = false;
|
|
299
300
|
}, 1000);
|
|
300
301
|
}
|
|
@@ -421,7 +422,11 @@ function enterFullscreen(n) {
|
|
|
421
422
|
refviewerP360.value.enterFullscreen(n);
|
|
422
423
|
}
|
|
423
424
|
onUnmounted(() => {
|
|
424
|
-
|
|
425
|
+
window.onresize = null;
|
|
426
|
+
if (qrtimer.value) {
|
|
427
|
+
clearTimeout(qrtimer.value);
|
|
428
|
+
qrtimer.value = null;
|
|
429
|
+
}
|
|
425
430
|
})
|
|
426
431
|
</script>
|
|
427
432
|
<style scoped>
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
</div>
|
|
11
11
|
</template>
|
|
12
12
|
<script setup>
|
|
13
|
-
import { ref, nextTick, watch, onMounted } from 'vue'
|
|
13
|
+
import { ref, nextTick, watch, onMounted, onBeforeUnmount } from 'vue'
|
|
14
14
|
import AppContainer from '../../loader/src/AppContainer';
|
|
15
15
|
import appContainerLayout from './appContainer/appContainerLayout.vue'
|
|
16
16
|
|
|
@@ -29,6 +29,9 @@ const appContainerLeft = ref(0)
|
|
|
29
29
|
const appContainerHeight = ref(0)
|
|
30
30
|
const appContainerWidth = ref(0)
|
|
31
31
|
const refappContainer = ref()
|
|
32
|
+
onBeforeUnmount(()=>{
|
|
33
|
+
window.removeEventListener('resize',setresize)
|
|
34
|
+
})
|
|
32
35
|
function init() {
|
|
33
36
|
|
|
34
37
|
//初始化
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<render />
|
|
3
3
|
</template>
|
|
4
4
|
<script setup>
|
|
5
|
-
import { h, ref, onActivated, resolveComponent } from 'vue'
|
|
5
|
+
import { h, ref, onActivated, resolveComponent, onBeforeUnmount } from 'vue'
|
|
6
6
|
const emit = defineEmits(['close'])
|
|
7
7
|
const props = defineProps({
|
|
8
8
|
vmodel: Object,
|
|
@@ -12,6 +12,9 @@ const contentTop = ref(0)
|
|
|
12
12
|
const content = ref()
|
|
13
13
|
const captionBarButtons = ref([])
|
|
14
14
|
const modelSelf = ref(null)
|
|
15
|
+
onBeforeUnmount(()=>{
|
|
16
|
+
modelSelf.value=null
|
|
17
|
+
})
|
|
15
18
|
onActivated(() => {
|
|
16
19
|
if (contentTop.value && content) {
|
|
17
20
|
content.value.scrollTop = contentTop.value;
|
|
@@ -29,7 +32,7 @@ function scrollHandle(ev) {
|
|
|
29
32
|
ev.stopPropagation();
|
|
30
33
|
}
|
|
31
34
|
|
|
32
|
-
const render = () => {
|
|
35
|
+
const render = () => {
|
|
33
36
|
return h('div', {}, [
|
|
34
37
|
h('div', {
|
|
35
38
|
style: {
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
</div>
|
|
58
58
|
</template>
|
|
59
59
|
<script setup lang="ts">
|
|
60
|
-
import { ref, nextTick } from 'vue'
|
|
60
|
+
import { ref, nextTick, onBeforeUnmount } from 'vue'
|
|
61
61
|
import { ElMessage } from 'element-plus'
|
|
62
62
|
import common from '../../../utils/common'
|
|
63
63
|
import { RouterClickHandler } from '../../../utils/mixins';
|
|
@@ -86,6 +86,11 @@ const isBusy = ref(false)
|
|
|
86
86
|
const elTableHeight = ref(0)
|
|
87
87
|
const selectCount = ref(0)
|
|
88
88
|
const multipleTable = ref()
|
|
89
|
+
|
|
90
|
+
onBeforeUnmount(()=>{
|
|
91
|
+
multipleTable.value.$el.querySelector('.el-scrollbar__wrap').removeEventListener('scroll', scrollHandle);
|
|
92
|
+
multipleTable.value=null;
|
|
93
|
+
})
|
|
89
94
|
function load(data) {
|
|
90
95
|
loadingOne.value = false;
|
|
91
96
|
model.value = data;
|
|
@@ -146,6 +146,8 @@ const refupload = ref()
|
|
|
146
146
|
const QRCodeRef = ref()
|
|
147
147
|
const UploadhttpRequest = ref({})
|
|
148
148
|
const model = ref(null)
|
|
149
|
+
const qrtimer1=ref(null)
|
|
150
|
+
const qrtimer2=ref(null)
|
|
149
151
|
|
|
150
152
|
const headers = computed(() => {
|
|
151
153
|
return common.getDataDrivenOpts().handler.getRequestHeaders();
|
|
@@ -222,7 +224,7 @@ function handleRemove(file) {
|
|
|
222
224
|
}).then(() => {
|
|
223
225
|
Photo.deleteFile(file, false, model.value);
|
|
224
226
|
selfValidExcute("remove");
|
|
225
|
-
setTimeout(() => {
|
|
227
|
+
qrtimer1.value = setTimeout(() => {
|
|
226
228
|
QRCodeLocate();
|
|
227
229
|
}, 1080);
|
|
228
230
|
|
|
@@ -274,7 +276,7 @@ function uploadProcess(event, file, fileList) {
|
|
|
274
276
|
file.loadProgress = parseInt(event.percent); // 动态获取文件上传进度
|
|
275
277
|
if (file.loadProgress >= 100) {
|
|
276
278
|
file.loadProgress = 100;
|
|
277
|
-
setTimeout(() => {
|
|
279
|
+
qrtimer2.value = setTimeout(() => {
|
|
278
280
|
file.progressFlag = false;
|
|
279
281
|
}, 1000); // 一秒后关闭进度条
|
|
280
282
|
}
|
|
@@ -522,10 +524,21 @@ function ListenerPaste(event) {
|
|
|
522
524
|
document.addEventListener('paste', ListenerPaste);
|
|
523
525
|
onBeforeUnmount(() => {
|
|
524
526
|
//销毁定时上传
|
|
525
|
-
|
|
527
|
+
if (model.value.qrtimer) {
|
|
528
|
+
clearTimeout(model.value.qrtimer);
|
|
529
|
+
model.value.qrtimer = null;
|
|
530
|
+
}
|
|
526
531
|
window.removeEventListener('scroll', model.value.QRCodeLocate, true)
|
|
527
532
|
//销毁贴事件监听器
|
|
528
533
|
document.removeEventListener('paste', ListenerPaste)
|
|
534
|
+
if (qrtimer1.value) {
|
|
535
|
+
clearTimeout(qrtimer1.value);
|
|
536
|
+
qrtimer1.value = null;
|
|
537
|
+
}
|
|
538
|
+
if (qrtimer2.value) {
|
|
539
|
+
clearTimeout(qrtimer2.value);
|
|
540
|
+
qrtimer2.value = null;
|
|
541
|
+
}
|
|
529
542
|
})
|
|
530
543
|
defineExpose({
|
|
531
544
|
model
|
package/src/loader/src/Field.js
CHANGED