centaline-data-driven-v3 0.1.47 → 0.1.49

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.
Files changed (37) hide show
  1. package/dist/centaline-data-driven-v3.umd.js +84 -84
  2. package/package.json +1 -1
  3. package/src/assets/commonWeb.css +13 -0
  4. package/src/components/web/CheckBox.vue +1 -0
  5. package/src/components/web/CheckBoxList.vue +6 -3
  6. package/src/components/web/ComboBox.vue +1 -1
  7. package/src/components/web/ContainerControl.vue +1 -0
  8. package/src/components/web/Cron.vue +1 -0
  9. package/src/components/web/DatePicker.vue +1 -0
  10. package/src/components/web/File.vue +1 -0
  11. package/src/components/web/Form.vue +13 -10
  12. package/src/components/web/GroupList.vue +1 -0
  13. package/src/components/web/GroupSplitLine.vue +1 -0
  14. package/src/components/web/HyperLink.vue +1 -0
  15. package/src/components/web/HyperLinkList.vue +1 -0
  16. package/src/components/web/Image.vue +1 -0
  17. package/src/components/web/JsonViewer.vue +1 -0
  18. package/src/components/web/Label.vue +1 -0
  19. package/src/components/web/MultiComboBoxWithTextBox.vue +1 -0
  20. package/src/components/web/NumberWithPlusAndMinus.vue +1 -0
  21. package/src/components/web/NumericRange.vue +1 -0
  22. package/src/components/web/RadioButton.vue +1 -0
  23. package/src/components/web/SearchList/SearchTable.vue +8 -2
  24. package/src/components/web/SearchList.vue +3 -0
  25. package/src/components/web/Tags.vue +1 -0
  26. package/src/components/web/TextBox.vue +1 -0
  27. package/src/components/web/Tree/Tree.vue +172 -88
  28. package/src/loader/src/CheckBoxList.js +113 -0
  29. package/src/loader/src/DatePicker.js +9 -8
  30. package/src/loader/src/Field.js +17 -5
  31. package/src/loader/src/Form.js +11 -3
  32. package/src/loader/src/SearchTable.js +11 -1
  33. package/src/main.js +2 -2
  34. package/src/utils/mixins.js +13 -0
  35. package/src/utils/request.js +2 -5
  36. package/src/views/Form.vue +4 -3
  37. package/src/views/SearchList.vue +5 -7
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "centaline-data-driven-v3",
3
- "version": "0.1.47",
3
+ "version": "0.1.49",
4
4
  "private": false,
5
5
  "description": "centaline-data-driven-v3",
6
6
  "main": "dist/centaline-data-driven-v3.umd.js",
@@ -1099,4 +1099,17 @@ body {
1099
1099
  align-items: center !important;
1100
1100
  }
1101
1101
 
1102
+ .el-message {
1103
+ /* 核心属性:设置最大宽度(可根据需求调整,如 500px、80% 等) */
1104
+ max-width: 50%;
1105
+ }
1106
+
1107
+ .el-message .el-message__content{
1108
+ /* 可选优化:保证超长文本自动换行,不溢出 */
1109
+ max-width: 95%;
1110
+ word-wrap: break-word;
1111
+ white-space: pre-wrap;
1112
+ /* 可选优化:让消息提示居中显示(搭配 max-width 更美观) */
1113
+ }
1114
+
1102
1115
  /*elementPlus样式重置结束*/
@@ -17,6 +17,7 @@ import CheckBox from '../../loader/src/CheckBox';
17
17
  const emit = defineEmits(['click', 'change', 'search'])
18
18
  const props = defineProps({
19
19
  parameterAction: String,
20
+ fileData: Object,
20
21
  vmodel: Object,
21
22
  source: Object,
22
23
  })
@@ -10,12 +10,13 @@
10
10
  style="white-space: normal;">
11
11
  <span v-html="item.name" style="line-height: 16px;"></span>
12
12
  <el-icon :size="18" v-if="item.toolTip" style="margin-left: 5px;">
13
- <el-tooltip raw-content :content="item.toolTip" placement="top" effect="light">
13
+ <el-tooltip raw-content :content="item.toolTip" placement="top" effect="light">
14
14
  <InfoFilled />
15
15
  </el-tooltip>
16
16
  </el-icon>
17
17
  </el-checkbox>
18
- <el-icon @click="clearClickHandle" class="el-range__close-icon" style="margin-left: 10px;" v-if="!common.flagHK()">
18
+ <el-icon @click="clearClickHandle" class="el-range__close-icon" style="margin-left: 10px;"
19
+ v-if="!common.flagHK()">
19
20
  <CircleClose />
20
21
  </el-icon>
21
22
  </el-checkbox-group>
@@ -30,11 +31,13 @@ import common from '../../utils/common'
30
31
  const emit = defineEmits(['click', 'change', 'search'])
31
32
  const props = defineProps({
32
33
  parameterAction: String,
34
+ fileData: Object,
33
35
  vmodel: Object,
34
36
  source: Object,
35
37
  })
36
38
  const model = initData(props, CheckBoxList)
37
- function change() {
39
+
40
+ function change() {
38
41
  model.value.setcode()
39
42
  changeHandler(model.value, emit);
40
43
  if (model.value.autoSearch) emit('search');
@@ -21,7 +21,6 @@
21
21
  <template #tag>
22
22
  <template v-for="(v, i) in model.labelValue" :key="i">
23
23
  <el-tag class="ml-2" type="info" disable-transitions :closable="!v.locked && !model.locked"
24
- :style="{ marginRight: i + 1 == model.labelValue.length ? '20px' : '' }"
25
24
  @close="closeTag(v.code)">
26
25
  {{ v.name }}</el-tag>
27
26
  </template>
@@ -54,6 +53,7 @@ import ComboBox from '../../loader/src/ComboBox';
54
53
  const emit = defineEmits(['click', 'input', 'change', 'popupSearchList', 'search'])
55
54
  const props = defineProps({
56
55
  parameterAction: String,
56
+ fileData: Object,
57
57
  vmodel: Object,
58
58
  source: Object,
59
59
  })
@@ -48,6 +48,7 @@ import ContainerControl from '../../loader/src/ContainerControl';
48
48
  const emit = defineEmits(['click', 'change', 'fieldClick', 'popupSearchList'])
49
49
  const props = defineProps({
50
50
  parameterAction: String,
51
+ fileData: Object,
51
52
  vmodel: Object,
52
53
  source: Object,
53
54
  })
@@ -17,6 +17,7 @@ import { nextTick, ref, onMounted } from "vue";
17
17
  const props = defineProps({
18
18
  api: String,
19
19
  vmodel: Object,
20
+ fileData: Object,
20
21
  actionRouter: Array,
21
22
  listHeight: Number,
22
23
  })
@@ -41,6 +41,7 @@ import DateTimePicker from './DateTimePicker/DateTimePicker.vue';
41
41
  const emit = defineEmits(['input', 'change'])
42
42
  const props = defineProps({
43
43
  parameterAction: String,
44
+ fileData: Object,
44
45
  vmodel: Object,
45
46
  source: Object,
46
47
  })
@@ -178,6 +178,7 @@ import util from '../../utils/pub-use'
178
178
  const emit = defineEmits(['loaded', "change", "click"])
179
179
  const props = defineProps({
180
180
  api: String,
181
+ fileData: Object,
181
182
  vmodel: Object,
182
183
  actionRouter: Array,
183
184
  })
@@ -3,7 +3,7 @@
3
3
  :style="{ width: pageWidth ? pageWidth + 'px' : '100%', margin: 'auto', 'min-height': minHeight }">
4
4
  <div style="display: flex; width: 100%;">
5
5
  <div style="flex: 1; min-width: 0;">
6
- <div v-if="model !== null && !loading" class="ct-form"
6
+ <div v-if="model !== null && !loading" class="ct-form" :class="{ 'domDisabled': model.pageDisabled }"
7
7
  :style="{ margin: openType != 'tree' ? '10px' : '0px' }">
8
8
  <el-affix target=".ct-form" v-if="model.tip" :offset="tipTopHight">
9
9
  <div class="ct-form-tip" ref="refTip">
@@ -94,7 +94,7 @@
94
94
  <div style="height: 34px;"> </div>
95
95
  </template>
96
96
  <!--分组-->
97
- <el-collapse v-else v-model="model.collapseActiveNames"
97
+ <el-collapse v-else-if="model.collapse.length>0" v-model="model.collapseActiveNames"
98
98
  :class="model.flagHideSaveLine ? 'el-collapse-saveLine' : ''">
99
99
  <template v-for="(item, index) in model.collapse" :key="index">
100
100
  <el-collapse-item v-if="item.show !== false" :title="item.controlLabel" :name="index"
@@ -443,6 +443,9 @@ function changeHandler(field) {
443
443
  //组件点击操作
444
444
  function fieldClickHandler(field) {
445
445
  let data = Form.getRouterAndSubmitData(field, model.value);
446
+ if (field.isOpenFileDialog) {
447
+ data.router.fileList = field.fileList || [];
448
+ }
446
449
  clickHandler(data.router, data.submitData);
447
450
  }
448
451
  function clickHandler(field, submitData, formList) {
@@ -719,21 +722,21 @@ function updateFields(data) {
719
722
  Form.updateFields(data, model.value)
720
723
  }
721
724
  function setCss() {
722
- if (props.topHeight > -1) {
723
- minHeight.value = (document.documentElement.clientHeight - props.topHeight - 20) + 'px';
724
- }
725
- else if (props.dialogHeight) {
726
- minHeight.value = (props.dialogHeight) + 'px';
727
- }
728
- else if (props.openType == 'tree') {
725
+ if (props.openType == 'tree') {
729
726
  if (refForm.value) {
730
727
  let parentDom = refForm.value.parentElement;
731
728
  minHeight.value = parentDom.clientHeight + 'px';
732
729
  refForm.value.style.height = minHeight.value
733
730
  refForm.value.style.overflowY = 'auto'
734
- refForm.value.style.paddingBottom = '45px'
731
+ refForm.value.style.paddingBottom = '35px'
735
732
  }
736
733
  }
734
+ else if (props.topHeight > -1) {
735
+ minHeight.value = (document.documentElement.clientHeight - props.topHeight - 20) + 'px';
736
+ }
737
+ else if (props.dialogHeight) {
738
+ minHeight.value = (props.dialogHeight) + 'px';
739
+ }
737
740
  else if (props.openType == 'detail') {
738
741
  if (refForm.value) {
739
742
  let parentDom = refForm.value.parentElement;
@@ -19,6 +19,7 @@ const props = defineProps({
19
19
  parameterAction: String,
20
20
  vmodel: Object,
21
21
  source: Object,
22
+ fileData: Object,
22
23
  from: {
23
24
  type: String,
24
25
  default: ''
@@ -4,6 +4,7 @@
4
4
  <script lang="ts" setup>
5
5
  const props = defineProps({
6
6
  parameterAction: String,
7
+ fileData: Object,
7
8
  vmodel: Object,
8
9
  source: Object,
9
10
  })
@@ -11,6 +11,7 @@
11
11
  const emit = defineEmits(['fieldClick'])
12
12
  const props = defineProps({
13
13
  parameterAction: String,
14
+ fileData: Object,
14
15
  vmodel: Object,
15
16
  source: Object,
16
17
  })
@@ -12,6 +12,7 @@ import { ref } from 'vue'
12
12
  const emit = defineEmits(['fieldClick'])
13
13
  const props = defineProps({
14
14
  parameterAction: String,
15
+ fileData: Object,
15
16
  vmodel: Object,
16
17
  source: Object,
17
18
  })
@@ -12,6 +12,7 @@
12
12
  <script lang="ts" setup>
13
13
  const props = defineProps({
14
14
  parameterAction: String,
15
+ fileData: Object,
15
16
  vmodel: Object,
16
17
  source: Object,
17
18
  })
@@ -28,6 +28,7 @@ import { nextTick, ref, onMounted} from "vue";
28
28
  const props = defineProps({
29
29
  api: String,
30
30
  vmodel: Object,
31
+ fileData: Object,
31
32
  actionRouter: Array,
32
33
  listHeight: Number,
33
34
  })
@@ -42,6 +42,7 @@ import Label from '../../loader/src/Label';
42
42
  const emit = defineEmits(['popupSearchList', 'change'])
43
43
  const props = defineProps({
44
44
  parameterAction: String,
45
+ fileData: Object,
45
46
  vmodel: Object,
46
47
  source: Object,
47
48
  })
@@ -32,6 +32,7 @@ import MultiComboBoxWithTextBox from '../../loader/src/MultiComboBoxWithTextBox'
32
32
  const emit = defineEmits(['click', 'input', 'change', 'popupSearchList'])
33
33
  const props = defineProps({
34
34
  parameterAction: String,
35
+ fileData: Object,
35
36
  vmodel: Object,
36
37
  source: Object,
37
38
  })
@@ -35,6 +35,7 @@ import NumberWithPlusAndMinus from '../../loader/src/NumberWithPlusAndMinus';
35
35
  const emit = defineEmits(['click', 'change', 'search'])
36
36
  const props = defineProps({
37
37
  parameterAction: String,
38
+ fileData: Object,
38
39
  vmodel: Object,
39
40
  source: Object,
40
41
  })
@@ -23,6 +23,7 @@ import NumericRange from '../../loader/src/NumericRange';
23
23
  const emit = defineEmits(['click', 'change'])
24
24
  const props = defineProps({
25
25
  parameterAction: String,
26
+ fileData: Object,
26
27
  vmodel: Object,
27
28
  source: Object,
28
29
  })
@@ -23,6 +23,7 @@ import common from '../../utils/common'
23
23
  const emit = defineEmits(['click', 'change','search'])
24
24
  const props = defineProps({
25
25
  parameterAction: String,
26
+ fileData: Object,
26
27
  vmodel: Object,
27
28
  source: Object,
28
29
  })
@@ -15,7 +15,7 @@
15
15
  <div v-loading="operationLoading"></div>
16
16
 
17
17
  <div class="ct-tableParent" ref="refTableParent" v-bind="model.attrs" v-if="!isLoading && model"
18
- :style="{ height:model.tableHeight + 'px', 'border-bottom': model.isLayout ? 'none' : '', 'border-top': model.isLayout ? 'none' : '', }"
18
+ :style="{ height: model.tableHeight + 'px', 'border-bottom': model.isLayout ? 'none' : '', 'border-top': model.isLayout ? 'none' : '', }"
19
19
  @scroll="scrollHandle($event)" @keydown.up="rowKeyDownHandle($event, 0)"
20
20
  @keydown.down="rowKeyDownHandle($event, 1)" tabindex="-1">
21
21
  <div class="ct-table-content" v-if="!model.isLayout">
@@ -404,7 +404,7 @@ function searchComplate(m, defaultSearch) {
404
404
  //初始化数据
405
405
  function load(data) {
406
406
  model.value = data;
407
- model.value.$vue = { searchStrat, searchEnd, downloadUrl, loadStats, setTableHeight, updateCurrentRow, doAction, itemKey, refreshTableColumns, calculatingRowHeight, emit, operationLoading, getPage, toolbarClickHandler };
407
+ model.value.$vue = { searchStrat, searchEnd, downloadUrl, loadStats, setTableHeight, updateCurrentRow, doAction, itemKey, refreshTableColumns, calculatingRowHeight, emit, operationLoading, getPage, toolbarClickHandler,closeTabThen };
408
408
  model.value.isIframe = props.isIframe
409
409
  model.value.isPageInSideBar = false
410
410
  model.value.columnName = null
@@ -1642,6 +1642,12 @@ function getValueCaseInsensitive(obj, key) {
1642
1642
  const foundKey = Object.keys(obj).find(k => k.toLowerCase() === searchKey);
1643
1643
  return foundKey ? obj[foundKey] : undefined;
1644
1644
  }
1645
+ function closeTabThen(ev) {
1646
+ if (SearchTable.checkCloseTabThen(ev.notification)) {
1647
+ doAction(ev);
1648
+ }
1649
+ }
1650
+
1645
1651
 
1646
1652
  defineExpose({
1647
1653
  model,
@@ -399,6 +399,9 @@ function rowClickHandle() {
399
399
  }
400
400
  if (refTable.value.model.columnGroupId) {
401
401
  sideBarApiParam.value.columnGroupId = refTable.value.model.columnGroupId;
402
+ }
403
+ if (refTable.value.model.rowSelectRouter.flagAttachSearchCondition) {
404
+ sideBarApiParam.value["searchFields"] = refTable.value.model.getSearchData();
402
405
  }
403
406
  sideBarApiParam.value.actionType = refTable.value.model.rowSelectRouter.actionType;
404
407
  detailKey.value = detailKey.value + 1;
@@ -25,6 +25,7 @@ import draggable from "vuedraggable";
25
25
  const emit = defineEmits(['click', 'change', 'search'])
26
26
  const props = defineProps({
27
27
  parameterAction: String,
28
+ fileData: Object,
28
29
  vmodel: Object,
29
30
  source: Object,
30
31
  })
@@ -43,6 +43,7 @@ import Enum from '../../utils/Enum'
43
43
  const emit = defineEmits(['input', 'change', 'click', 'search', 'popupSearchList'])
44
44
  const props = defineProps({
45
45
  parameterAction: String,
46
+ fileData: Object,
46
47
  vmodel: Object,
47
48
  source: Object,
48
49
  from: {