bl-common-vue3 3.8.71 → 3.8.73

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 (42) hide show
  1. package/index.js +7 -0
  2. package/package.json +1 -1
  3. package/src/common/utils/popupContainer.js +31 -0
  4. package/src/common/utils/util.js +3 -4
  5. package/src/components/ApprovalDetail/modules/ApprovalAddSignModal.vue +4 -3
  6. package/src/components/ApprovalDetail/modules/ApprovalSendBack.vue +4 -3
  7. package/src/components/ApprovalDetail/modules/ApprovalTransferReview.vue +4 -2
  8. package/src/components/AttachmentInfo/modules/AddAttachments.vue +4 -4
  9. package/src/components/AttachmentInfo/modules/MultipleAddAttachments.vue +4 -4
  10. package/src/components/BlDrawer/index.vue +13 -0
  11. package/src/components/BlMobileAnnexUpload/index.vue +4 -3
  12. package/src/components/BlModal/index.vue +13 -0
  13. package/src/components/BlTextTranslationModal/index.vue +4 -3
  14. package/src/components/BlTinymceEditor/index.vue +4 -2
  15. package/src/components/ChooseHousingModal/index.vue +5 -4
  16. package/src/components/ChooseOrgMember/index.vue +6 -9
  17. package/src/components/ColumnSetting/index.vue +4 -3
  18. package/src/components/CustomImport/components/ImportResult.vue +4 -2
  19. package/src/components/CustomImport/index.vue +287 -286
  20. package/src/components/CustomTable/index.vue +6 -4
  21. package/src/components/DepartmentPositionModal/index.vue +602 -601
  22. package/src/components/DictionarySetting/components/AddDictionary.vue +4 -3
  23. package/src/components/DictionarySetting/index.vue +4 -3
  24. package/src/components/ExportComponents/index.vue +4 -2
  25. package/src/components/ExtraManage/components/ExtraManageEdit.vue +4 -3
  26. package/src/components/ExtraManage/index.vue +5 -4
  27. package/src/components/IDCardReader/index.vue +327 -326
  28. package/src/components/ImportFile/index.vue +4 -3
  29. package/src/components/LinkLibrary/AddMini.vue +4 -2
  30. package/src/components/LinkLibrary/MiniList.vue +4 -2
  31. package/src/components/LinkLibrary/index.vue +6 -5
  32. package/src/components/PaySetting/index.vue +437 -436
  33. package/src/components/PhotoUpload/Photograph.vue +77 -76
  34. package/src/components/PreviewImg/index.vue +4 -3
  35. package/src/components/PublicExtensionField/components/ExtraManageEdit.vue +4 -3
  36. package/src/components/PublicExtensionField/index.vue +4 -3
  37. package/src/components/QrcodeModal/index.vue +5 -10
  38. package/src/components/SelectProperty/index.vue +4 -3
  39. package/src/components/UserDetail/index.vue +567 -566
  40. package/src/components/ViewEnergyList/index.vue +4 -3
  41. package/src/components/ViewPropertyList/index.vue +4 -3
  42. package/src/components/components.js +2 -0
package/index.js CHANGED
@@ -3,6 +3,12 @@ import * as components from "./src/components/components.js";
3
3
  export * from "./src/components/components.js";
4
4
  import utils from "./src/common/utils/util.js";
5
5
  import { commonLocale, commonAllLocale } from "./src/locale/index";
6
+ export {
7
+ setGlobalGetContainer,
8
+ resetGlobalGetContainer,
9
+ getGlobalContainer,
10
+ } from "./src/common/utils/popupContainer";
11
+ import popupContainer from "./src/common/utils/popupContainer";
6
12
 
7
13
  export const install = function (app) {
8
14
  Object.keys(components).map((key) => {
@@ -20,4 +26,5 @@ export default {
20
26
  utils,
21
27
  commonLocale,
22
28
  commonAllLocale,
29
+ ...popupContainer,
23
30
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bl-common-vue3",
3
- "version": "3.8.71",
3
+ "version": "3.8.73",
4
4
  "main": "index.js",
5
5
  "module": "index.js",
6
6
  "description": "bailing vue3 common components lib",
@@ -0,0 +1,31 @@
1
+ /**
2
+ * 全局弹层容器(Modal / Drawer / Popover 等)统一入口
3
+ *
4
+ * 业务方在应用初始化时调用 setGlobalGetContainer 即可统一所有 Bl 封装组件
5
+ * 以及通过 getGlobalContainer 接入的命令式弹框的挂载节点。
6
+ */
7
+
8
+ const defaultGetContainer = () => {
9
+ if (typeof window !== 'undefined' && window?.rawDocument?.body) {
10
+ return window.rawDocument.body;
11
+ }
12
+ return typeof document !== 'undefined' ? document.body : null;
13
+ };
14
+
15
+ let _getContainer = defaultGetContainer;
16
+
17
+ export const setGlobalGetContainer = (fn) => {
18
+ _getContainer = typeof fn === 'function' ? fn : defaultGetContainer;
19
+ };
20
+
21
+ export const resetGlobalGetContainer = () => {
22
+ _getContainer = defaultGetContainer;
23
+ };
24
+
25
+ export const getGlobalContainer = (...args) => _getContainer(...args);
26
+
27
+ export default {
28
+ setGlobalGetContainer,
29
+ resetGlobalGetContainer,
30
+ getGlobalContainer,
31
+ };
@@ -4,6 +4,7 @@ import { ExclamationCircleOutlined } from "@ant-design/icons-vue";
4
4
  import i18n, {t, loadLanguageAsync} from "../../locale";
5
5
  import shareds from "./shared";
6
6
  import { cloneDeep, isEmpty } from "lodash";
7
+ import { getGlobalContainer } from "./popupContainer";
7
8
 
8
9
  const utils = {
9
10
  numberReg: /^\d+(\.\d+)?$/, // 数字验证正则
@@ -219,6 +220,7 @@ const utils = {
219
220
  okText: params.okText || t('common.button.ok'),
220
221
  cancelText: params.cancelText || t('common.button.cancel'),
221
222
  icon: () => createVNode(ExclamationCircleOutlined),
223
+ getContainer: getGlobalContainer,
222
224
  onOk: () => {
223
225
  params.onOk && params.onOk();
224
226
  },
@@ -239,9 +241,6 @@ const utils = {
239
241
  okText = t('common.button.ok'),
240
242
  cancelText = t('common.button.cancel')
241
243
  }) => {
242
- const getContainer = () => {
243
- return window?.rawDocument?.body || document?.body;
244
- };
245
244
  Modal.confirm({
246
245
  title: () => title,
247
246
  content: () => content ? content : '',
@@ -250,7 +249,7 @@ const utils = {
250
249
  okType,
251
250
  cancelText: () => cancelText,
252
251
  centered,
253
- getContainer,
252
+ getContainer: getGlobalContainer,
254
253
  onOk() {
255
254
  onOk && onOk();
256
255
  },
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <a-modal
2
+ <bl-modal
3
3
  :visible="visible"
4
4
  :title="$t('modules.ApprovalAddSignModal.924062-0')"
5
5
  @ok="handleOk"
@@ -115,7 +115,7 @@
115
115
  :uMin="1"
116
116
  :uMax="99"
117
117
  />
118
- </a-modal>
118
+ </bl-modal>
119
119
  </template>
120
120
 
121
121
  <script>
@@ -129,6 +129,7 @@ import {
129
129
  createVNode,
130
130
  } from "vue";
131
131
  import { Form, message } from "ant-design-vue";
132
+ import BlModal from "../../BlModal/index.vue";
132
133
  const useForm = Form.useForm;
133
134
  import { ChooseOrgMember } from "../../components";
134
135
  import {
@@ -139,7 +140,7 @@ import {
139
140
  import { t } from "../../../locale";
140
141
  export default defineComponent({
141
142
  name: "AddSignModal",
142
- components: { UserOutlined, CloseOutlined, ChooseOrgMember, PlusOutlined },
143
+ components: { UserOutlined, CloseOutlined, ChooseOrgMember, PlusOutlined, BlModal },
143
144
  props: {
144
145
  visible: {
145
146
  type: Boolean,
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <a-modal
2
+ <bl-modal
3
3
  :title="$t('modules.ApprovalSendBack.587880-0')"
4
4
  :width="700"
5
5
  :body-style="{
@@ -27,17 +27,18 @@
27
27
  />
28
28
  </a-form-item>
29
29
  </a-form>
30
- </a-modal>
30
+ </bl-modal>
31
31
  </template>
32
32
 
33
33
  <script>
34
34
  import OpinionInfo from "./ApprovalOpinionInfo.vue";
35
35
  import { reactive, toRefs, watch } from "vue";
36
36
  import { Form, message } from "ant-design-vue";
37
+ import BlModal from "../../BlModal/index.vue";
37
38
  const useForm = Form.useForm;
38
39
  import { t } from "../../../locale";
39
40
  export default {
40
- components: { OpinionInfo },
41
+ components: { OpinionInfo, BlModal },
41
42
  props: {
42
43
  visible: {
43
44
  type: Boolean,
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <a-modal
2
+ <bl-modal
3
3
  :title="$t('modules.ApprovalTransferReview.357897-0')"
4
4
  :width="700"
5
5
  :body-style="{
@@ -29,7 +29,7 @@
29
29
  />
30
30
  </a-form-item>
31
31
  </a-form>
32
- </a-modal>
32
+ </bl-modal>
33
33
  </template>
34
34
 
35
35
  <script>
@@ -37,6 +37,7 @@ import OpinionInfo from "./ApprovalOpinionInfo.vue";
37
37
  import { reactive, toRefs } from "vue";
38
38
  import ChooseUser from "./ApprovalChooseUser.vue";
39
39
  import { Form } from "ant-design-vue";
40
+ import BlModal from "../../BlModal/index.vue";
40
41
  const useForm = Form.useForm;
41
42
  import { t } from "../../../locale";
42
43
 
@@ -44,6 +45,7 @@ export default {
44
45
  components: {
45
46
  OpinionInfo,
46
47
  ChooseUser,
48
+ BlModal,
47
49
  },
48
50
  props: {
49
51
  visible: {
@@ -8,7 +8,7 @@
8
8
  -->
9
9
 
10
10
  <template>
11
- <a-modal
11
+ <bl-modal
12
12
  :title="t('modules.AddAttachments.831666-0', [title])"
13
13
  :maskClosable="false"
14
14
  :visible="visible"
@@ -61,7 +61,7 @@
61
61
  <a-button class="mr-10" @click.prevent="closeModal">{{t('common.button.cancel')}}</a-button>
62
62
  <a-button type="primary" @click.prevent="onSubmit">{{t('common.button.save')}}</a-button>
63
63
  </div>
64
- </a-modal>
64
+ </bl-modal>
65
65
  </template>
66
66
 
67
67
  <script>
@@ -78,6 +78,7 @@ import {
78
78
  import { FileTextOutlined, InboxOutlined } from "@ant-design/icons-vue";
79
79
  import {t, loadLanguageAsync} from "../../../locale";
80
80
  import utils from "../../../common/utils/util";
81
+ import BlModal from "../../BlModal/index.vue";
81
82
  const useForm = Form.useForm;
82
83
 
83
84
  export default defineComponent({
@@ -115,8 +116,7 @@ export default defineComponent({
115
116
  components: {
116
117
  FileTextOutlined,
117
118
  InboxOutlined,
118
-
119
- "a-modal": Modal,
119
+ BlModal,
120
120
  "a-form": Form,
121
121
  "a-form-item": FormItem,
122
122
  "a-input": Input,
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <a-modal
2
+ <bl-modal
3
3
  :width="650"
4
4
  :visible="visible"
5
5
  :title="t('modules.MultipleAddAttachments.414571-0')"
@@ -63,7 +63,7 @@
63
63
  :list="imgList"
64
64
  @close="imgVisible = false"
65
65
  />
66
- </a-modal>
66
+ </bl-modal>
67
67
  </template>
68
68
 
69
69
  <script>
@@ -86,14 +86,14 @@ import {
86
86
  import PreviewImg from "../../PreviewImg/index.vue";
87
87
  import {t, loadLanguageAsync} from "../../../locale";
88
88
  import utils from "../../../common/utils/util";
89
+ import BlModal from "../../BlModal/index.vue";
89
90
 
90
91
  export default {
91
92
  components: {
92
93
  EyeOutlined,
93
94
  DeleteOutlined,
94
95
  PreviewImg,
95
-
96
- "a-modal": Modal,
96
+ BlModal,
97
97
  "a-table": Table,
98
98
  "a-input": Input,
99
99
  "a-progress": Progress,
@@ -0,0 +1,13 @@
1
+ <script>
2
+ import { h, defineComponent } from 'vue';
3
+ import { Drawer } from 'ant-design-vue';
4
+ import { getGlobalContainer } from '../../common/utils/popupContainer';
5
+
6
+ export default defineComponent({
7
+ name: 'BlDrawer',
8
+ inheritAttrs: false,
9
+ setup(_, { attrs, slots }) {
10
+ return () => h(Drawer, { getContainer: getGlobalContainer, ...attrs }, slots);
11
+ },
12
+ });
13
+ </script>
@@ -12,7 +12,7 @@
12
12
  <QrcodeModal :visible="qrcodeModalVisible" :isCopy="true" :download="false" :urls="annexUploadPageUrl" @cancel="handleCancelQrcode" @request="handleRequest" :zIndex="visible ? 1001 : 1000" :title="t('BlMobileAnnexUpload.index-1')"></QrcodeModal>
13
13
 
14
14
  <!-- 批量上传弹框 -->
15
- <a-modal
15
+ <bl-modal
16
16
  :width="650"
17
17
  :visible="visible"
18
18
  :cancel-text="t('common.button.cancel')"
@@ -43,7 +43,7 @@
43
43
  </template>
44
44
  </a-table>
45
45
 
46
- </a-modal>
46
+ </bl-modal>
47
47
 
48
48
  <!-- 预览图片 -->
49
49
  <div style="display: none">
@@ -65,11 +65,12 @@ import { ExpandOutlined, ExclamationCircleOutlined } from "@ant-design/icons-vue
65
65
  import QrcodeModal from "../QrcodeModal/index.vue";
66
66
  import { t, loadLanguageAsync } from "../../locale";
67
67
  import utils from "../../common/utils/util";
68
+ import BlModal from "../BlModal/index.vue";
68
69
  export default defineComponent({
69
70
  name: "BlMobileAnnexUpload",
70
71
  components: {
71
72
  "a-button": Button,
72
- "a-modal": Modal,
73
+ BlModal,
73
74
  "a-table": Table,
74
75
  "a-space": Space,
75
76
  "a-input": Input,
@@ -0,0 +1,13 @@
1
+ <script>
2
+ import { h, defineComponent } from 'vue';
3
+ import { Modal } from 'ant-design-vue';
4
+ import { getGlobalContainer } from '../../common/utils/popupContainer';
5
+
6
+ export default defineComponent({
7
+ name: 'BlModal',
8
+ inheritAttrs: false,
9
+ setup(_, { attrs, slots }) {
10
+ return () => h(Modal, { getContainer: getGlobalContainer, ...attrs }, slots);
11
+ },
12
+ });
13
+ </script>
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <a-modal
2
+ <bl-modal
3
3
  :visible="visible"
4
4
  :title="titleProps"
5
5
  :width="800"
@@ -32,7 +32,7 @@
32
32
  </a-form-item>
33
33
  </div>
34
34
  </a-form>
35
- </a-modal>
35
+ </bl-modal>
36
36
  </template>
37
37
 
38
38
  <script>
@@ -40,10 +40,11 @@ import { defineComponent, ref, watch, computed } from "vue";
40
40
  import { Modal, Form, FormItem, Input, Textarea } from "ant-design-vue";
41
41
  import {t, loadLanguageAsync} from "../../locale";
42
42
  import utils from "../../common/utils/util";
43
+ import BlModal from "../BlModal/index.vue";
43
44
  const useForm = Form.useForm;
44
45
  export default defineComponent({
45
46
  name: "BlTextTranslationModal",
46
- components: { "a-modal": Modal, "a-form": Form, "a-form-item": FormItem, "a-input": Input, "a-textarea": Textarea },
47
+ components: { BlModal, "a-form": Form, "a-form-item": FormItem, "a-input": Input, "a-textarea": Textarea },
47
48
  props: {
48
49
  // 是否显示
49
50
  visible: {
@@ -355,8 +355,10 @@ export default defineComponent({
355
355
  :deep(.tox .tox-promotion-link) {
356
356
  display: none !important;
357
357
  }
358
+ </style>
358
359
 
359
- :deep(.tox.tox-tinymce-aux) {
360
- z-index: 999 !important;
360
+ <style lang="less">
361
+ .tox.tox-tinymce-aux {
362
+ z-index: 1001 !important;
361
363
  }
362
364
  </style>
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <a-modal
2
+ <bl-modal
3
3
  :visible="visible"
4
4
  :title="titleProps"
5
5
  :width="600"
@@ -51,11 +51,11 @@
51
51
  @getResult="getResult"
52
52
  @handleResult="handleResult"
53
53
  />
54
- </a-modal>
54
+ </bl-modal>
55
55
  </template>
56
56
 
57
57
  <script>
58
- import { cloneDeep } from "lodash";
58
+ import { cloneDeep } from "lodash";
59
59
  import {
60
60
  defineComponent, reactive, watch, toRefs, computed,
61
61
  } from "vue";
@@ -63,11 +63,12 @@ import {Modal, message} from "ant-design-vue";
63
63
  import ChooseHousingResources from "../ChooseHousingResources/index.vue";
64
64
  import {t, loadLanguageAsync} from "../../locale";
65
65
  import utils from "../../common/utils/util";
66
+ import BlModal from "../BlModal/index.vue";
66
67
 
67
68
  export default defineComponent({
68
69
  name: "ChooseHousingModal",
69
70
  components: {
70
- "a-modal": Modal,
71
+ BlModal,
71
72
  ChooseHousingResources,
72
73
  },
73
74
  props: {
@@ -2,7 +2,7 @@
2
2
  * 选择成员
3
3
  -->
4
4
  <template>
5
- <Modal
5
+ <bl-modal
6
6
  :visible="visible"
7
7
  :title="title"
8
8
  @ok="handleOk"
@@ -12,7 +12,6 @@
12
12
  class="member-modal"
13
13
  destroyOnClose
14
14
  :zIndex="zIndex"
15
- :getContainer="getPopupContainer"
16
15
  >
17
16
  <Row class="card">
18
17
  <Col :span="12" class="left">
@@ -162,7 +161,7 @@
162
161
  </div>
163
162
  </Col>
164
163
  </Row>
165
- </Modal>
164
+ </bl-modal>
166
165
  </template>
167
166
 
168
167
  <script>
@@ -188,6 +187,8 @@ import {
188
187
  } from "ant-design-vue";
189
188
  import {t, loadLanguageAsync} from "../../locale";
190
189
  import utils from "../../common/utils/util";
190
+ import { getGlobalContainer } from "../../common/utils/popupContainer";
191
+ import BlModal from "../BlModal/index.vue";
191
192
 
192
193
  export default defineComponent({
193
194
  name: "ChooseOrgMember",
@@ -288,7 +289,7 @@ export default defineComponent({
288
289
  PartitionOutlined,
289
290
  ApartmentOutlined,
290
291
  CloseCircleOutlined,
291
- Modal,
292
+ BlModal,
292
293
  Row,
293
294
  Col,
294
295
  Button,
@@ -450,11 +451,7 @@ export default defineComponent({
450
451
  };
451
452
 
452
453
  const getPopupContainer = (triggerNode) => {
453
- return (
454
- triggerNode?.parentElement ||
455
- window?.rawDocument?.body ||
456
- document?.body
457
- );
454
+ return triggerNode?.parentElement || getGlobalContainer();
458
455
  };
459
456
 
460
457
  const hasData = computed(() => {
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <a-drawer
2
+ <bl-drawer
3
3
  :title="t('ColumnSetting.index.391089-0')"
4
4
  :visible="visible"
5
5
  :destroyOnClose="true"
@@ -83,7 +83,7 @@
83
83
  <a-button type="primary" :loading="loading" @click.stop="onSubmit()">{{t('common.button.save')}}</a-button>
84
84
  </div>
85
85
  </div>
86
- </a-drawer>
86
+ </bl-drawer>
87
87
  </template>
88
88
 
89
89
  <script>
@@ -98,13 +98,14 @@ import {
98
98
  import {t, loadLanguageAsync} from "../../locale";
99
99
  import utils from "../../common/utils/util";
100
100
  import TextTip from "../TextTip/index.vue";
101
+ import BlDrawer from "../BlDrawer/index.vue";
101
102
 
102
103
  export default defineComponent({
103
104
  name: "ColumnSetting",
104
105
  components: {
105
106
  draggable,
106
107
  HolderOutlined,
107
- "a-drawer": Drawer,
108
+ BlDrawer,
108
109
  "a-space": Space,
109
110
  "a-button": Button,
110
111
  "a-input-number": InputNumber,
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <a-modal
2
+ <bl-modal
3
3
  :visible="visible"
4
4
  @cancel="cancelBtn"
5
5
  :title="t('components.ImportResult.699608-0')"
@@ -23,7 +23,7 @@
23
23
  >{{ t('components.ImportResult.699608-5') }}</a-button>
24
24
  </template>
25
25
  </a-result>
26
- </a-modal>
26
+ </bl-modal>
27
27
  </template>
28
28
 
29
29
  <script>
@@ -35,10 +35,12 @@ import {
35
35
  import { Result } from "ant-design-vue";
36
36
  import {loadLanguageAsync, t} from "../../../locale";
37
37
  import utils from "../../../common/utils/util";
38
+ import BlModal from "../../BlModal/index.vue";
38
39
  export default defineComponent({
39
40
  name: "ImportResult",
40
41
  components: {
41
42
  "a-result": Result,
43
+ BlModal,
42
44
  },
43
45
  props: {
44
46
  visible: {