cloud-web-corejs-haier 1.0.5 → 1.0.7

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 (141) hide show
  1. package/package.json +7 -4
  2. package/src/App.vue +30 -34
  3. package/src/api/user.js +8 -0
  4. package/src/components/Tinymce/index.vue +112 -71
  5. package/src/components/VabUpload/image-viewer.vue +2 -2
  6. package/src/components/VabUpload/index.js +1 -1
  7. package/src/components/VabUpload/mixins.js +1 -1
  8. package/src/components/VabUpload/privateProfileDialogMixins.js +1 -1063
  9. package/src/components/VabUpload/view.vue +6 -2
  10. package/src/components/base-textarea/index.vue +104 -0
  11. package/src/components/baseAlert/mixins.js +1 -1
  12. package/src/components/baseAttachment/mixins.js +2 -1
  13. package/src/components/baseInputExport/index.vue +19 -12
  14. package/src/components/baseInputExport/mixins.js +1 -1
  15. package/src/components/baseTabs/mixins.js +1 -1
  16. package/src/components/code-editor/index.vue +102 -63
  17. package/src/components/confirmDialog/index.vue +24 -17
  18. package/src/components/confirmDialog/mixins.js +1 -1
  19. package/src/components/errorMsg/index.vue +42 -34
  20. package/src/components/errorMsg/mixins.js +1 -1
  21. package/src/components/excelExport/index.js +1 -2
  22. package/src/components/excelExport/mixins.js +1 -1
  23. package/src/components/fileLibrary/fileObjAuthDialog.vue +179 -89
  24. package/src/components/fileLibrary/filterDialog.vue +45 -21
  25. package/src/components/fileLibrary/index.vue +579 -238
  26. package/src/components/fileLibrary/mixins/fileObjAuthDialogMixin.js +4 -1
  27. package/src/components/fileLibrary/mixins/indexMixins.js +3 -0
  28. package/src/components/scriptDescription/button.vue +12 -4
  29. package/src/components/scriptTest/mixins.js +1 -1
  30. package/src/components/table/index.js +12 -12
  31. package/src/components/tempStorage/index.vue +1 -1
  32. package/src/components/vb-tabs/x-tabs.vue +0 -1
  33. package/src/components/wf/content.vue +32 -36
  34. package/src/components/wf/mixins/setCandidateDialog2.js +1 -1
  35. package/src/components/wf/mixins/wfFlowEleScriptDialog.js +131 -3
  36. package/src/components/wf/setCandidateDialog2.vue +76 -66
  37. package/src/components/wf/wf.js +2176 -1
  38. package/src/components/wf/wfFlowEleScriptDialog.vue +5 -1
  39. package/src/components/wf/wfStartDialog.vue +6 -10
  40. package/src/components/wf/wfUtil.js +279 -1
  41. package/src/components/xform/form-designer/designer.js +1 -1
  42. package/src/components/xform/form-designer/form-widget/components/gantt/index.vue +16 -1
  43. package/src/components/xform/form-designer/form-widget/dialog/importDialogMixin.js +1 -1
  44. package/src/components/xform/form-designer/form-widget/dialog/searchFormDialog.vue +17 -4
  45. package/src/components/xform/form-designer/form-widget/field-widget/fieldMixin.js +1 -1
  46. package/src/components/xform/form-designer/form-widget/field-widget/form-item-wrapper.vue +247 -187
  47. package/src/components/xform/form-designer/form-widget/field-widget/gantt-widget.vue +2 -0
  48. package/src/components/xform/form-designer/form-widget/field-widget/html-text-widget.vue +6 -2
  49. package/src/components/xform/form-designer/form-widget/field-widget/static-content-wrapper.vue +10 -0
  50. package/src/components/xform/form-designer/form-widget/field-widget/text-widget.vue +65 -4
  51. package/src/components/xform/form-designer/setting-panel/form-setting.vue +132 -118
  52. package/src/components/xform/form-designer/setting-panel/property-editor/autoValueEnabled-editor.vue +1 -1
  53. package/src/components/xform/form-designer/setting-panel/property-editor/formatType-editor.vue +137 -0
  54. package/src/components/xform/form-designer/setting-panel/property-editor/name-editor.vue +124 -50
  55. package/src/components/xform/form-designer/setting-panel/propertyRegister.js +1 -0
  56. package/src/components/xform/form-designer/widget-panel/widgetsConfig.js +5 -1
  57. package/src/components/xform/form-render/index.vue +8 -0
  58. package/src/components/xform/form-render/indexMixin copy.js +3462 -0
  59. package/src/components/xform/form-render/indexMixin.js +3496 -1
  60. package/src/components/xform/mixins/defaultHandle.js +1 -1
  61. package/src/components/xform/utils/format.js +14 -4
  62. package/src/components/xform/utils/formula-util.js +0 -4
  63. package/src/components/xform/utils/util.js +1 -1
  64. package/src/index.js +215 -190
  65. package/src/lang/index.js +56 -51
  66. package/src/lang/locale/en/login.js +20 -0
  67. package/src/lang/locale/zh/login.js +20 -0
  68. package/src/layout/components/Sidebar/default.vue +1423 -1266
  69. package/src/layout/components/TagsView/index.vue +37 -11
  70. package/src/layout/components/createCompany/createCompanyDialog.vue +157 -0
  71. package/src/layout/components/extractedCode/viewDialog.vue +1 -0
  72. package/src/layout/defaultLayout.vue +1 -1
  73. package/src/layout/index.vue +3 -5
  74. package/src/mixins/table/index.js +151 -0
  75. package/src/permission.js +1 -18
  76. package/src/router/modules/customer.js +3 -8
  77. package/src/store/getters.js +24 -23
  78. package/src/store/modules/user.js +1 -30
  79. package/src/utils/vab.js +1 -1
  80. package/src/views/bd/setting/config_manage/list.vue +36 -19
  81. package/src/views/bd/setting/form_script/edit.vue +9 -0
  82. package/src/views/bd/setting/form_script/edit1.vue +29 -3
  83. package/src/views/bd/setting/form_script/form_list.vue +99 -37
  84. package/src/views/bd/setting/form_script/list1.vue +181 -118
  85. package/src/views/bd/setting/form_script/mixins/dialog.js +130 -1
  86. package/src/views/bd/setting/form_script/mixins/edit.js +199 -1
  87. package/src/views/bd/setting/form_script/mixins/edit1.js +193 -1
  88. package/src/views/bd/setting/form_script/mixins/list.js +236 -1
  89. package/src/views/bd/setting/form_script/mixins/list1.js +410 -1
  90. package/src/views/bd/setting/form_script/mixins/otherAuthDialog.js +194 -0
  91. package/src/views/bd/setting/form_script/otherAuthDialog.vue +83 -0
  92. package/src/views/bd/setting/form_template/edit.vue +13 -0
  93. package/src/views/bd/setting/form_template/list.vue +326 -214
  94. package/src/views/bd/setting/form_template/mixins/batchWfObjConfigDialog.js +279 -1
  95. package/src/views/bd/setting/form_template/mixins/edit.js +234 -9
  96. package/src/views/bd/setting/form_template/mixins/list.js +667 -3
  97. package/src/views/bd/setting/form_template/mixins/otherAuthDialog.js +193 -0
  98. package/src/views/bd/setting/form_template/otherAuthDialog.vue +83 -0
  99. package/src/views/bd/setting/logic_param/mixins/edit.js +1 -91
  100. package/src/views/bd/setting/logic_param/mixins/list.js +2 -362
  101. package/src/views/bd/setting/menu_kind/list.vue +172 -87
  102. package/src/views/bd/setting/menu_kind/mixins/authDialog.js +300 -7
  103. package/src/views/bd/setting/table_model/edit.vue +345 -304
  104. package/src/views/bd/setting/table_model/list.vue +190 -128
  105. package/src/views/bd/setting/table_model/mixins/edit.js +1191 -1
  106. package/src/views/bd/setting/table_model/mixins/list.js +428 -2
  107. package/src/views/bd/setting/table_model/mixins/otherAuthDialog.js +201 -0
  108. package/src/views/bd/setting/table_model/otherAuthDialog.vue +83 -0
  109. package/src/views/user/access_log/list.vue +418 -349
  110. package/src/views/user/area/dialog.vue +223 -116
  111. package/src/views/user/area/list.vue +318 -0
  112. package/src/views/user/common_attribute/list.vue +4 -1
  113. package/src/views/user/extend_datasource/dialog.vue +3 -0
  114. package/src/views/user/extend_datasource/edit.vue +2 -1
  115. package/src/views/user/extend_datasource/list.vue +3 -0
  116. package/src/views/user/form/vform/designer.vue +2 -1
  117. package/src/views/user/home/bears/index.vue +1032 -0
  118. package/src/views/user/home/default.vue +6 -5
  119. package/src/views/user/home/taili/index.vue +1034 -0
  120. package/src/views/user/ledger_library/list.vue +10 -12
  121. package/src/views/user/login/default.vue +165 -36
  122. package/src/views/user/login/index.vue +4 -6
  123. package/src/views/user/login/indexMixin.js +184 -8
  124. package/src/views/user/menu/list.vue +24 -1
  125. package/src/views/user/notify_message/dialog.vue +2 -6
  126. package/src/views/user/outLink/index.vue +57 -18
  127. package/src/views/user/role/authConfig.vue +89 -0
  128. package/src/views/user/role/dialog.vue +70 -48
  129. package/src/views/user/role/edit.vue +114 -4
  130. package/src/views/user/user/form_dialog.vue +158 -0
  131. package/src/views/user/user/list.vue +652 -582
  132. package/src/views/user/user/modifyPasswordDialog.vue +64 -53
  133. package/src/views/user/wf/wfReport/index.vue +137 -28
  134. package/src/views/user/wf/wf_obj_config/itemEdit.vue +15 -116
  135. package/src/views/user/wf/wf_obj_config/itemOperateDialog.vue +414 -0
  136. package/src/views/user/wf/wf_obj_config/list.vue +84 -78
  137. package/src/views/user/wf/wf_transfer_setting/edit.vue +52 -0
  138. package/src/views/user/wf/wf_transfer_setting/list.vue +10 -0
  139. package/src/components/xform/form-render/container-item/data-table-mixin2.js +0 -2169
  140. package/src/views/bd/setting/table_model/mixins/edit copy.js +0 -903
  141. package/src/views/user/login/index2.vue +0 -131
@@ -15,7 +15,8 @@
15
15
  <i class="el-icon-s-home" v-if="tag.name =='home'"></i>
16
16
  {{ getMenuName(tag) }}
17
17
 
18
- <span v-if="!isAffix(tag)" class="el-icon-close" @click.prevent.stop="closeSelectedTag(tag)"/>
18
+ <span v-if="!!tag.meta.user_affix" class="el-icon-close is-disabled"/>
19
+ <span v-else-if="!isAffix(tag)" class="el-icon-close" @click.prevent.stop="closeSelectedTag(tag)"/>
19
20
  </router-link>
20
21
  </scroll-pane>
21
22
  <div class="tags-operBox">
@@ -27,12 +28,25 @@
27
28
  <i class="el-icon-arrow-right" ayadmin-event="rightPage"
28
29
  one-link-mark="yes" @click="$refs.scrollPane.handleScrollRight()"/>
29
30
  </el-tooltip>
30
- <el-tooltip :enterable="false" class="item" effect="dark" :content="$t1('刷新')" placement="bottom">
31
+ <el-dropdown >
32
+ <span class="el-dropdown-link" style="padding-right:10px;padding-left:4px;">
33
+ <i class="el-icon-more el-icon--right"></i>
34
+ </span>
35
+ <el-dropdown-menu slot="dropdown">
36
+ <el-dropdown-item @click.native="refreshSelectedTag($route)" :disabled="getIsLock()">
37
+ <i class="el-icon-refresh"/><span>{{ $t1('刷新') }}</span>
38
+ </el-dropdown-item>
39
+ <el-dropdown-item @click.native="closeAllTags(selectedTag)">
40
+ <i class="el-icon-close"/><span>{{ $t1('全部关闭') }}</span>
41
+ </el-dropdown-item>
42
+ </el-dropdown-menu>
43
+ </el-dropdown>
44
+ <!-- <el-tooltip :enterable="false" class="item" effect="dark" :content="$t1('刷新')" placement="bottom">
31
45
  <i class="el-icon-refresh" @click="refreshSelectedTag($route)"/>
32
46
  </el-tooltip>
33
47
  <el-tooltip :enterable="false" class="item" effect="dark" :content="$t1('全部关闭')" placement="bottom">
34
48
  <i class="el-icon-close" @click="closeAllTags(selectedTag)"/>
35
- </el-tooltip>
49
+ </el-tooltip> -->
36
50
  </div>
37
51
  <!-- <ul v-show="visible" :style="{left:left+'px',top:top+'px'}" class="contextmenu">
38
52
  <li @click="refreshSelectedTag(selectedTag)">Refresh</li>
@@ -86,8 +100,8 @@ export default {
86
100
  methods: {
87
101
  getMenuName(item) {
88
102
  let locale = this.$i18n?.locale;
89
- let zhTitle = (item.meta ? item.meta.title : '');
90
- let enTitle = (item.meta ? item.meta.enTitle : '');
103
+ let zhTitle = item.meta?.title || "";
104
+ let enTitle = item.meta?.enTitle || '';
91
105
  let title;
92
106
  if (locale == "en") {
93
107
  title = enTitle || zhTitle;
@@ -178,6 +192,7 @@ export default {
178
192
  } */
179
193
  },
180
194
  closeSelectedTag(view) {
195
+ if(view.meta.user_affix)return
181
196
  this.$store.dispatch('tagsView/delView', view).then(({visitedViews}) => {
182
197
  if (this.isActive(view)) {
183
198
  this.toLastView(visitedViews, view)
@@ -191,11 +206,13 @@ export default {
191
206
  })
192
207
  },
193
208
  closeAllTags(view) {
194
- this.$store.dispatch('tagsView/delAllViews').then(({visitedViews}) => {
195
- if (this.affixTags.some(tag => tag.path === view.path)) {
196
- return
197
- }
198
- this.toLastView(visitedViews, view)
209
+ this.$baseConfirm(this.$t1('您确定要全部关闭吗?')).then(() => {
210
+ this.$store.dispatch('tagsView/delAllViews').then(({visitedViews}) => {
211
+ if (this.affixTags.some(tag => tag.path === view.path)) {
212
+ return
213
+ }
214
+ this.toLastView(visitedViews, view)
215
+ })
199
216
  })
200
217
  },
201
218
  toLastView(visitedViews, view) {
@@ -235,7 +252,13 @@ export default {
235
252
  },
236
253
  handleScroll() {
237
254
  this.closeMenu()
238
- }
255
+ },
256
+ getIsLock() {
257
+ let path = this.$route.path;
258
+ let visitedViews = this.$store.state.tagsView.visitedViews
259
+ let currentItem = visitedViews.find(item => item.path == path)
260
+ return !!currentItem?.meta?.user_affix;
261
+ },
239
262
  }
240
263
  }
241
264
  </script>
@@ -249,6 +272,9 @@ export default {
249
272
  </style>
250
273
  <style lang="scss">
251
274
  //reset element css of el-icon-close
275
+ span.el-icon-close.is-disabled{
276
+ cursor: not-allowed;
277
+ }
252
278
  .tags-view-wrapper {
253
279
  .tags-view-item {
254
280
  .el-icon-close {
@@ -0,0 +1,157 @@
1
+ <template>
2
+ <div>
3
+ <el-dialog
4
+ :title="$t1('新建企业')"
5
+ :append-to-body="true"
6
+ :modal-append-to-body="true"
7
+ :close-on-click-modal="false"
8
+ :visible.sync="showDialog"
9
+ :modal="false"
10
+ custom-class="dialog-style list-dialog dialog-checkbox pd_8"
11
+ width="350px"
12
+ v-el-drag-dialog
13
+ v-el-dialog-center
14
+ :before-close="dialogClose"
15
+ >
16
+ <div class="cont">
17
+ <el-form
18
+ ref="editCategoryForm"
19
+ :model="formData"
20
+ label-width="102px"
21
+ class="adSearchForm"
22
+ style="min-height: 150px; width: auto"
23
+ >
24
+ <el-form-item :label="$t1('企业类型')">
25
+ <el-radio-group v-model="formData.gender">
26
+ <el-radio :label="1">{{ $t1("海外营销") }}</el-radio
27
+ ><br />
28
+ <el-radio :label="2">{{ $t1("国内营销") }}</el-radio
29
+ ><br />
30
+ <el-radio :label="3">{{ $t1("产品平台") }}</el-radio>
31
+ </el-radio-group>
32
+ </el-form-item>
33
+ <el-form-item :label="$t1('编码')">
34
+ <el-input v-model="formData.sid" clearable class="all-width" />
35
+ </el-form-item>
36
+ </el-form>
37
+ </div>
38
+ <span slot="footer" class="dialog-footer">
39
+ <el-button type="primary" plain class="button-sty" @click="dialogClose">
40
+ <i class="el-icon-close el-icon"></i>
41
+ {{ $t1("取消") }}
42
+ </el-button>
43
+ <el-button type="primary" @click="openCreateCompanyJsonDialog" class="button-sty">
44
+ <i class="el-icon-check el-icon"></i>
45
+ {{ $t1("确定") }}
46
+ </el-button>
47
+ </span>
48
+ </el-dialog>
49
+ <el-dialog
50
+ title="新建企业JSON维护"
51
+ :append-to-body="true"
52
+ :modal-append-to-body="true"
53
+ :close-on-click-modal="false"
54
+ :visible.sync="showCreateCompanyJsonDialog"
55
+ :modal="false"
56
+ custom-class="dialog-style tips-dialog tips-1 "
57
+ width="800px"
58
+ @close="dialogClose"
59
+ v-el-drag-dialog
60
+ v-el-dialog-center
61
+ >
62
+ <div class="cont" style="height: 700px">
63
+ <code-editor
64
+ mode="json"
65
+ :readonly="!1"
66
+ v-model="companyJson"
67
+ height="414px;"
68
+ ></code-editor>
69
+ </div>
70
+ <span slot="footer" class="dialog-footer">
71
+ <el-button type="primary" plain class="button-sty" @click="dialogClose">
72
+ <i class="el-icon-close el-icon"></i>
73
+ {{ $t1("取 消") }}
74
+ </el-button>
75
+ <el-button
76
+ type="primary"
77
+ @click="confirmCreateCompanyJsonDialog"
78
+ class="button-sty"
79
+ >
80
+ <i class="el-icon-check el-icon"></i>
81
+ {{ $t1("确 定") }}
82
+ </el-button>
83
+ </span>
84
+ </el-dialog>
85
+ </div>
86
+ </template>
87
+ <script>
88
+ export default {
89
+ components: {},
90
+ data() {
91
+ return {
92
+ showDialog: true,
93
+ formData: {
94
+ objType: "FormTemplate",
95
+ sid: null,
96
+ },
97
+ extractedCode: null,
98
+ companyJson: null,
99
+ showCreateCompanyJsonDialog: false,
100
+ };
101
+ },
102
+ methods: {
103
+ dialogConfirm() {
104
+ this.extractedCode = null;
105
+ if (!this.formData.sid) {
106
+ this.$baseAlert("唯一标识不能为空");
107
+ return;
108
+ }
109
+ this.$http({
110
+ aes: true,
111
+ url: USER_PREFIX + `/form_develop/getExtractedCodeData`,
112
+ method: `post`,
113
+ data: this.formData,
114
+ isLoading: true,
115
+ success: (res) => {
116
+ let rows = res.objx || [];
117
+ if (rows.length) {
118
+ let row = rows[0];
119
+ this.extractedCode = row.extractedCode;
120
+ }
121
+ },
122
+ });
123
+ },
124
+ dialogClose() {
125
+ this.showDialog = false;
126
+ this.$emit("update:visiable", false);
127
+ },
128
+ openCreateCompanyJsonDialog() {
129
+ this.showDialog = false;
130
+ this.companyJson = "";
131
+ this.showCreateCompanyJsonDialog = true;
132
+ },
133
+ confirmCreateCompanyJsonDialog(data) {
134
+ /* this.$http({
135
+ aes: true,
136
+ url: USER_PREFIX + `/form_develop/getExtractedCodeData`,
137
+ method: `post`,
138
+ data: this.formData,
139
+ isLoading: true,
140
+ success: (res) => {
141
+ this.$message({
142
+ message: res.content,
143
+ type: "success"
144
+ });
145
+ this.dialogClose();
146
+ },
147
+ }); */
148
+ },
149
+ },
150
+ };
151
+ </script>
152
+
153
+ <style scoped>
154
+ ::v-deep .el-select.all-width .el-input {
155
+ width: 100% !important;
156
+ }
157
+ </style>
@@ -25,6 +25,7 @@
25
25
  :_viewType="1"
26
26
  @reload="$reloadHandle"
27
27
  @openDesignDialog="openDesingerDialogByChild"
28
+ :extractedObj="extractedObj"
28
29
  ></component>
29
30
  <el-drawer :title="$t1('表单设计({formName})',{formName})" :visible.sync="showDesingerDialog" :modal="false"
30
31
  :destroy-on-close="true"
@@ -92,7 +92,7 @@ export default {
92
92
  position: relative;
93
93
  height: 100%;
94
94
  width: 100%;
95
-
95
+ overflow: hidden;
96
96
  &.mobile.openSidebar {
97
97
  position: fixed;
98
98
  top: 0;
@@ -6,12 +6,10 @@
6
6
  import defaultLayout from "@base/layout/defaultLayout.vue";
7
7
 
8
8
  export default {
9
- name: 'Layout',
9
+ name: "Layout",
10
10
  components: {
11
- defaultLayout
11
+ defaultLayout,
12
12
  },
13
13
  };
14
14
  </script>
15
- <style lang="scss" scoped>
16
- </style>
17
-
15
+ <style lang="scss" scoped></style>
@@ -0,0 +1,151 @@
1
+
2
+ let module = {
3
+ install (vxetable, options) {
4
+ let Table = vxetable.Table;
5
+ // return
6
+
7
+
8
+
9
+ Table.mixins.push({
10
+ methods: {
11
+ /**
12
+ * 全局按下事件处理
13
+ */
14
+ handleGlobalMousedownEvent : (evnt) => {
15
+ let $xeTable = this
16
+ const { editStore, ctxMenuStore, filterStore, customStore } = reactData
17
+ const { mouseConfig, editRules } = props
18
+ const el = refElem.value
19
+ const editOpts = computeEditOpts.value
20
+ const validOpts = computeValidOpts.value
21
+ const areaOpts = computeAreaOpts.value
22
+ const { actived } = editStore
23
+ const $validTooltip = refValidTooltip.value
24
+ const tableFilter = refTableFilter.value
25
+ const tableCustom = refTableCustom.value
26
+ const tableMenu = refTableMenu.value
27
+ // 筛选
28
+ if (tableFilter) {
29
+ if (getEventTargetNode(evnt, el, 'vxe-cell--filter').flag) {
30
+ // 如果点击了筛选按钮
31
+ } else if (getEventTargetNode(evnt, tableFilter.getRefMaps().refElem.value).flag) {
32
+ // 如果点击筛选容器
33
+ } else {
34
+ if (!getEventTargetNode(evnt, document.body, 'vxe-table--ignore-clear').flag) {
35
+ tablePrivateMethods.preventEvent(evnt, 'event.clearFilter', filterStore.args, tableMethods.closeFilter)
36
+ }
37
+ }
38
+ }
39
+ // 自定义列
40
+ if (tableCustom) {
41
+ if (customStore.btnEl === evnt.target || getEventTargetNode(evnt, document.body, 'vxe-toolbar-custom-target').flag) {
42
+ // 如果点击了自定义列按钮
43
+ } else if (getEventTargetNode(evnt, tableCustom.getRefMaps().refElem.value).flag) {
44
+ // 如果点击自定义列容器
45
+ } else {
46
+ if (!getEventTargetNode(evnt, document.body, 'vxe-table--ignore-clear').flag) {
47
+ tablePrivateMethods.preventEvent(evnt, 'event.clearCustom', {}, () => {
48
+ if ($xeTable.closeCustom) {
49
+ $xeTable.closeCustom()
50
+ }
51
+ })
52
+ }
53
+ }
54
+ }
55
+
56
+ // 如果已激活了编辑状态
57
+ if (actived.row) {
58
+ if (!(editOpts.autoClear === false)) {
59
+ // 如果是激活状态,点击了单元格之外
60
+ const cell = actived.args.cell
61
+ if ((!cell || !getEventTargetNode(evnt, cell).flag)) {
62
+ if ($validTooltip && getEventTargetNode(evnt, $validTooltip.$el as HTMLDivElement).flag) {
63
+ // 如果是激活状态,且点击了校验提示框
64
+ } else if (!internalData._lastCallTime || internalData._lastCallTime + 50 < Date.now()) {
65
+ // 如果是激活状态,点击了单元格之外
66
+ if (!getEventTargetNode(evnt, document.body, 'vxe-table--ignore-clear').flag) {
67
+ // 如果手动调用了激活单元格,避免触发源被移除后导致重复关闭
68
+ tablePrivateMethods.preventEvent(evnt, 'event.clearEdit', actived.args, () => {
69
+ let isClear
70
+ if (editOpts.mode === 'row') {
71
+ const rowTargetNode = getEventTargetNode(evnt, el, 'vxe-body--row')
72
+ const rowNodeRest = rowTargetNode.flag ? tableMethods.getRowNode(rowTargetNode.targetElem) : null
73
+ // row 方式,如果点击了不同行
74
+ isClear = rowNodeRest ? !$xeTable.eqRow(rowNodeRest.item, actived.args.row) : false
75
+ } else {
76
+ // cell 方式,如果是非编辑列
77
+ isClear = !getEventTargetNode(evnt, el, 'col--edit').flag
78
+ }
79
+ // 如果点击表头行,则清除激活状态
80
+ if (!isClear) {
81
+ isClear = getEventTargetNode(evnt, el, 'vxe-header--row').flag
82
+ }
83
+ // 如果点击表尾行,则清除激活状态
84
+ if (!isClear) {
85
+ isClear = getEventTargetNode(evnt, el, 'vxe-footer--row').flag
86
+ }
87
+ // 如果固定了高度且点击了行之外的空白处,则清除激活状态
88
+ if (!isClear && props.height && !reactData.overflowY) {
89
+ const bodyWrapperElem = evnt.target as HTMLDivElement
90
+ if (hasClass(bodyWrapperElem, 'vxe-table--body-wrapper')) {
91
+ isClear = evnt.offsetY < bodyWrapperElem.clientHeight
92
+ }
93
+ }
94
+ if (
95
+ isClear ||
96
+ // 如果点击了当前表格之外
97
+ !getEventTargetNode(evnt, el).flag
98
+ ) {
99
+ setTimeout(() => {
100
+ $xeTable.handleClearEdit(evnt).then(() => {
101
+ // 如果存在校验,点击了表格之外则清除
102
+ if (!internalData.isActivated && editRules && validOpts.autoClear) {
103
+ reactData.validErrorMaps = {}
104
+ }
105
+ })
106
+ })
107
+ }
108
+ })
109
+ }
110
+ }
111
+ }
112
+ }
113
+ } else if (mouseConfig) {
114
+ if (!getEventTargetNode(evnt, el).flag && !($xeGGWrapper && getEventTargetNode(evnt, $xeGGWrapper.getRefMaps().refElem.value).flag) && !(tableMenu && getEventTargetNode(evnt, tableMenu.getRefMaps().refElem.value).flag) && !($xeToolbar && getEventTargetNode(evnt, $xeToolbar.getRefMaps().refElem.value).flag)) {
115
+ if ($xeTable.clearSelected) {
116
+ $xeTable.clearSelected()
117
+ }
118
+ if (areaOpts.autoClear) {
119
+ if ($xeTable.getCellAreas) {
120
+ const cellAreas = $xeTable.getCellAreas()
121
+ if (cellAreas && cellAreas.length && !getEventTargetNode(evnt, document.body, 'vxe-table--ignore-areas-clear').flag) {
122
+ tablePrivateMethods.preventEvent(evnt, 'event.clearAreas', {}, () => {
123
+ $xeTable.clearCellAreas()
124
+ $xeTable.clearCopyCellArea()
125
+ dispatchEvent('clear-cell-area-selection', { cellAreas }, evnt)
126
+ })
127
+ }
128
+ }
129
+ }
130
+ }
131
+ }
132
+ // 如果配置了快捷菜单且,点击了其他地方则关闭
133
+ if ($xeTable.closeMenu) {
134
+ if (ctxMenuStore.visible && tableMenu && !getEventTargetNode(evnt, tableMenu.getRefMaps().refElem.value).flag) {
135
+ $xeTable.closeMenu()
136
+ }
137
+ }
138
+ const isActivated = getEventTargetNode(evnt, $xeGGWrapper ? $xeGGWrapper.getRefMaps().refElem.value : el).flag
139
+ // 如果存在校验,点击了表格之外则清除
140
+ if (!isActivated && editRules && validOpts.autoClear) {
141
+ reactData.validErrorMaps = {}
142
+ }
143
+ // 最后激活的表格
144
+ internalData.isActivated = isActivated
145
+ }
146
+ }
147
+ })
148
+ }
149
+ }
150
+
151
+ export default module