cloud-web-corejs 1.0.281 → 1.1.0-dev.5

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 (161) hide show
  1. package/package.json +6 -2
  2. package/src/components/VabUpload/image-viewer.vue +442 -442
  3. package/src/components/VabUpload/index.vue +44 -2
  4. package/src/components/VabUpload/mixins.js +126 -19
  5. package/src/components/VabUpload/view.vue +247 -209
  6. package/src/components/baseTabs/mixins.js +181 -181
  7. package/src/components/bizTab/BizBillActions.vue +129 -0
  8. package/src/components/bizTab/BizTabListPage.vue +391 -0
  9. package/src/components/bizTab/README.md +378 -0
  10. package/src/components/bizTab/billTableUtil.js +48 -0
  11. package/src/components/bizTab/billValidators.js +136 -0
  12. package/src/components/bizTab/bizBillDetailMixin.js +705 -0
  13. package/src/components/bizTab/index.js +24 -0
  14. package/src/components/excelExport/exportFieldDialog.vue +23 -12
  15. package/src/components/excelExport/exportItemConfigUtil.js +30 -0
  16. package/src/components/excelExport/mixins.js +3 -3
  17. package/src/components/mobile/statusTag/mixins.js +1 -61
  18. package/src/components/mobile/wf/content.vue +1662 -1556
  19. package/src/components/mobile/wf/mixins/wfModifyDialogMixin.js +8 -6
  20. package/src/components/table/config.js +78 -78
  21. package/src/components/table/index.js +1276 -1276
  22. package/src/components/table/plugins/cell-area/index.js +1055 -0
  23. package/src/components/table/plugins/cell-area/index.scss +77 -0
  24. package/src/components/table/plugins/cell-area/util.js +224 -0
  25. package/src/components/table/tableForm.vue +330 -330
  26. package/src/components/table/tableFormMixin.js +318 -318
  27. package/src/components/table/vxeFilter/index.js +163 -163
  28. package/src/components/table/vxeFilter/mixin.js +316 -316
  29. package/src/components/wf/content.vue +1188 -1188
  30. package/src/components/wf/wf.js +40 -20
  31. package/src/components/wf/wfActionDropdown.vue +1 -1
  32. package/src/components/wf/wfActionItems.js +1 -1
  33. package/src/components/xform/docs/2026-08 xform H5 P0 /345/256/236/347/216/260/350/247/204/346/240/274.md" +528 -0
  34. package/src/components/xform/docs/2026-08 xform H5 P1 /345/256/236/347/216/260/350/247/204/346/240/274.md" +412 -0
  35. package/src/components/xform/docs/2026-08 xform H5 P2 /345/256/236/347/216/260/350/247/204/346/240/274.md" +287 -0
  36. package/src/components/xform/docs/2026-08 xform /347/247/273/345/212/250/347/253/257/345/270/203/345/261/200/345/257/271/351/275/220 bill_setting /346/226/271/346/241/210.md" +400 -0
  37. package/src/components/xform/form-designer/designer.js +15 -0
  38. package/src/components/xform/form-designer/form-widget/container-widget/data-table-widget.vue +269 -269
  39. package/src/components/xform/form-designer/form-widget/container-widget/detail-temp-widget.vue +132 -0
  40. package/src/components/xform/form-designer/form-widget/container-widget/detail-widget.vue +250 -250
  41. package/src/components/xform/form-designer/form-widget/dialog/fileReferenceDialog.vue +319 -320
  42. package/src/components/xform/form-designer/form-widget/dialog/formDialog.vue +365 -365
  43. package/src/components/xform/form-designer/form-widget/dialog/searchFormDialog.vue +554 -555
  44. package/src/components/xform/form-designer/form-widget/dialog/vabSearchDialog.vue +409 -409
  45. package/src/components/xform/form-designer/form-widget/field-widget/a-link-widget.vue +150 -132
  46. package/src/components/xform/form-designer/form-widget/field-widget/date-range-widget.vue +114 -114
  47. package/src/components/xform/form-designer/form-widget/field-widget/date-widget.vue +154 -154
  48. package/src/components/xform/form-designer/form-widget/field-widget/form-item-wrapper.vue +47 -1
  49. package/src/components/xform/form-designer/form-widget/field-widget/mixins/date-limit-mixin.js +178 -178
  50. package/src/components/xform/form-designer/form-widget/field-widget/mixins/time-limit-mixin.js +77 -77
  51. package/src/components/xform/form-designer/form-widget/field-widget/select-export-item-button-widget.vue +6 -0
  52. package/src/components/xform/form-designer/form-widget/field-widget/select-widget.vue +139 -139
  53. package/src/components/xform/form-designer/form-widget/field-widget/time-range-widget.vue +106 -106
  54. package/src/components/xform/form-designer/form-widget/field-widget/time-widget.vue +134 -134
  55. package/src/components/xform/form-designer/form-widget/field-widget/vabUpload-widget.vue +1 -0
  56. package/src/components/xform/form-designer/setting-panel/form-setting.vue +39 -39
  57. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/data-table-editor.vue +10 -10
  58. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/exportItemColumns-dialog.vue +438 -432
  59. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/table-column-dialog.vue +2103 -2103
  60. package/src/components/xform/form-designer/setting-panel/property-editor/container-detail/detail-temp-edito.vue +90 -0
  61. package/src/components/xform/form-designer/setting-panel/property-editor/container-grid/gutter-editor.vue +82 -82
  62. package/src/components/xform/form-designer/setting-panel/property-editor/container-list-h5/list-h5-editor.vue +19 -5
  63. package/src/components/xform/form-designer/setting-panel/property-editor/container-table/table-dynamicField-editor.vue +8 -8
  64. package/src/components/xform/form-designer/setting-panel/property-editor/dropdownFlag-editor.vue +137 -137
  65. package/src/components/xform/form-designer/setting-panel/property-editor/field-button/search-dialog-event-editor.vue +237 -237
  66. package/src/components/xform/form-designer/setting-panel/property-editor/field-date/date-defaultValue-editor.vue +43 -43
  67. package/src/components/xform/form-designer/setting-panel/property-editor/field-date-range/date-range-defaultValue-editor.vue +43 -43
  68. package/src/components/xform/form-designer/setting-panel/property-editor/field-import-button/import2-button-editor.vue +96 -96
  69. package/src/components/xform/form-designer/setting-panel/property-editor/field-table-export-button/select-export-item-button-editor.vue +51 -0
  70. package/src/components/xform/form-designer/setting-panel/property-editor/field-time/time-defaultValue-editor.vue +42 -42
  71. package/src/components/xform/form-designer/setting-panel/property-editor/field-time-range/time-range-defaultValue-editor.vue +43 -43
  72. package/src/components/xform/form-designer/setting-panel/property-editor/formScriptEnabled-editor.vue +158 -158
  73. package/src/components/xform/form-designer/setting-panel/property-editor/h5Span-editor.vue +51 -0
  74. package/src/components/xform/form-designer/setting-panel/property-editor/itemStyle-editor.vue +39 -0
  75. package/src/components/xform/form-designer/setting-panel/property-editor/name-editor.vue +188 -188
  76. package/src/components/xform/form-designer/setting-panel/property-editor/styleTempClass-editor.vue +51 -0
  77. package/src/components/xform/form-designer/setting-panel/property-editor/textFlag-editor.vue +347 -347
  78. package/src/components/xform/form-designer/setting-panel/propertyRegister.js +4 -0
  79. package/src/components/xform/form-designer/widget-panel/widgetsConfig.js +59 -3
  80. package/src/components/xform/form-render/container-item/data-table-mixin.js +151 -93
  81. package/src/components/xform/form-render/container-item/detail-h5-item.vue +183 -32
  82. package/src/components/xform/form-render/container-item/detail-temp-item.vue +110 -0
  83. package/src/components/xform/form-render/container-item/h5-card-pane-item.vue +160 -140
  84. package/src/components/xform/form-render/container-item/list-h5-item.vue +1688 -1700
  85. package/src/components/xform/form-render/index.vue +153 -147
  86. package/src/components/xform/form-render/indexMixin.js +12 -0
  87. package/src/components/xform/lang/en-US.js +10 -0
  88. package/src/components/xform/lang/zh-CN.js +12 -0
  89. package/src/components/xform/mixins/defaultHandle.js +707 -707
  90. package/src/components/xform/styles/h5.scss +1992 -0
  91. package/src/components/xform/utils/textMaskUtil.js +182 -179
  92. package/src/components/xform/utils/treeTableUtil.js +1292 -1265
  93. package/src/components/xform/utils/util.js +56 -11
  94. package/src/index.js +9 -4
  95. package/src/layout/components/Sidebar/default.vue +1 -1
  96. package/src/layout/components/extractedCode/viewDialog.vue +7 -7
  97. package/src/router/index.js +21 -0
  98. package/src/router/modules/customer.js +71 -14
  99. package/src/store/modules/permission.js +17 -18
  100. package/src/utils/pdfUtil.js +429 -429
  101. package/src/utils/resolveViewComponent.js +142 -16
  102. package/src/views/bd/project/branch/bd_branch/edit.vue +145 -0
  103. package/src/views/bd/project/branch/bd_branch/list.vue +72 -0
  104. package/src/views/bd/project/branch/bd_branch/menuKindDialog.vue +106 -0
  105. package/src/views/bd/project/branch/bd_branch/mixins/edit.js +189 -0
  106. package/src/views/bd/project/branch/bd_branch/mixins/list.js +124 -0
  107. package/src/views/bd/project/branch/bd_branch/mixins/menuKindDialog.js +85 -0
  108. package/src/views/bd/project/branch/form_script/list.vue +31 -0
  109. package/src/views/bd/project/branch/form_template/list.vue +30 -0
  110. package/src/views/bd/project/branch/menu_kind/list.vue +31 -0
  111. package/src/views/bd/project/common/form_script/list.vue +16 -0
  112. package/src/views/bd/project/common/form_template/list.vue +15 -0
  113. package/src/views/bd/project/common/menu_kind/list.vue +15 -0
  114. package/src/views/bd/project/core/branchContext.js +100 -0
  115. package/src/views/bd/project/core/branchPage.js +78 -0
  116. package/src/views/bd/project/core/branchPageWrap.vue +225 -0
  117. package/src/views/bd/project/core/branchScope.js +44 -0
  118. package/src/views/bd/project/core/branchSearchPage.js +285 -0
  119. package/src/views/bd/project/core/branchSelect.vue +85 -0
  120. package/src/views/bd/project/core/branchTreeBar.vue +81 -0
  121. package/src/views/bd/project/core/httpBranchPatch.js +58 -0
  122. package/src/views/bd/project/datatable/menu_kind/list.vue +15 -0
  123. package/src/views/bd/project/datatable/table_model/list.vue +15 -0
  124. package/src/views/bd/setting/bd_company_env/dialog.vue +174 -174
  125. package/src/views/bd/setting/table_model/edit.vue +1066 -1066
  126. package/src/views/bd/setting/table_model/mixins/edit.js +1455 -1455
  127. package/src/views/bd/setting/table_model/mixins/zdDialog.js +148 -148
  128. package/src/views/demo/bizTab/bill/billConfig.js +41 -0
  129. package/src/views/demo/bizTab/bill/detail.vue +436 -0
  130. package/src/views/demo/bizTab/bill/list.vue +288 -0
  131. package/src/views/demo/bizTab/bill/productDialog.vue +176 -0
  132. package/src/views/demo/bizTab/simple/billApi.js +123 -0
  133. package/src/views/demo/bizTab/simple/detail.vue +407 -0
  134. package/src/views/demo/bizTab/simple/list.vue +217 -0
  135. package/src/views/demo/bizTab/standalone/index.vue +121 -0
  136. package/src/views/demo/bizTab/wf/billConfig.js +44 -0
  137. package/src/views/demo/bizTab/wf/detail.vue +661 -0
  138. package/src/views/demo/bizTab/wf/list.vue +242 -0
  139. package/src/views/support/form-dialog-demo/demoPickerDialog.vue +72 -0
  140. package/src/views/support/form-dialog-demo/index.vue +537 -0
  141. package/src/views/user/file_view_ins/list.vue +3 -3
  142. package/src/views/user/home/default.vue +1 -1
  143. package/src/views/user/home/default2.vue +1 -1
  144. package/src/views/user/home/index.vue +8 -6
  145. package/src/views/user/home/wjl/content.vue +1569 -0
  146. package/src/views/user/notify_message/dialog.vue +7 -5
  147. package/src/views/user/outLink/cc_form_view.vue +188 -0
  148. package/src/views/user/outLink/form_view.vue +2 -2
  149. package/src/views/user/outLink/index.vue +4 -4
  150. package/src/views/user/outLink/view.vue +3 -3
  151. package/src/views/user/role/edit.vue +632 -632
  152. package/src/views/user/role/list.vue +260 -260
  153. package/src/views/user/wf/iframe/index.vue +3 -3
  154. package/src/views/user/wf/iframe/index2.vue +3 -3
  155. package/src/views/user/wf/wf_manage/list.vue +1112 -1116
  156. package/src/views/user/wf/wf_manage/list2.vue +9 -13
  157. package/src/views/user/wf/wf_manage/wfContentDialog.vue +8 -5
  158. package/src/components/xform/form-designer/form-widget/field-widget/dropdown-menu-widget.vue +0 -106
  159. package/src/components/xform/form-designer/form-widget/field-widget/tableexportbuttonwidget.vue +0 -99
  160. package/src/components/xform/form-render/container-item/list-h5-item2.vue +0 -1340
  161. package/src/utils/wf.js +0 -766
@@ -1,209 +1,247 @@
1
- <template>
2
- <div>
3
- <div id="uploadImage" :class="classList">
4
- <div
5
- class="upload-list"
6
- model="singer"
7
- v-for="(attachment, index) in attachments"
8
- :key="index"
9
- style="display: inline-block; vertical-align: middle; float: left"
10
- >
11
- <template v-if="$attrs.hideInfo !== true && $attrs.hideInfo !== 'true'">
12
- <div class="upload-box">
13
- <ul class="el-upload-list el-upload-list--picture">
14
- <li tabindex="0" class="el-upload-list__item">
15
- <div>
16
- <div class="el-upload-list__item-thumbnail">
17
- <div
18
- class="show-video"
19
- v-if="hasPreview(attachment)"
20
- @click="openPreview(attachment, index)"
21
- >
22
- <i class="icon-chakan"></i>
23
- </div>
24
- <p>
25
- <el-image
26
- :src="getShowUrl(attachment)"
27
- @click="openPreview(attachment, index)"
28
- :z-index="999999"
29
- />
30
- </p>
31
- </div>
32
- <div class="el-upload-list__item-name">
33
- <el-tooltip
34
- :enterable="false"
35
- class="item"
36
- effect="dark"
37
- :content="getAttachmentName(attachment)"
38
- placement="top"
39
- >
40
- <p v-if="$attrs.hideName !== true">
41
- {{ getAttachmentName(attachment) }}
42
- </p>
43
- </el-tooltip>
44
- <p v-if="$attrs.showSize === true || $attrs.showSize === 'true'">
45
- {{ formatFileSize(attachment.fileSize) }}
46
- </p>
47
- <!-- <p v-if="$attrs.showSortInput !== true && !dataType && $attrs.createBy !== false">
48
- {{ attachment.createBy }}</p>-->
49
- <p
50
- v-if="
51
- $attrs.showSortInput !== true &&
52
- !dataType &&
53
- $attrs.createDate !== false
54
- "
55
- >
56
- {{ attachment.createDate }}
57
- </p>
58
- </div>
59
- <div class="el-upload-input" v-if="$attrs.showSortInput">
60
- <base-input-number
61
- v-model="attachment.orders"
62
- class="button-sty"
63
- :placeholder="$t2('序号', 'components.VabUpload.orders')"
64
- :scale="0"
65
- @change="handleChange"
66
- />
67
- </div>
68
- <div class="el-upload-input" v-if="$attrs.showNameInput">
69
- <el-input
70
- v-model="attachment.name"
71
- class="button-sty"
72
- :placeholder="$t2('请输入名称', 'components.VabUpload.name')"
73
- :scale="0"
74
- @change="handleChange"
75
- />
76
- </div>
77
- <div class="el-upload-list__item-status-label">
78
- <i class="el-icon-upload-success el-icon-check"></i>
79
- </div>
80
- <div
81
- class="el-icon-close"
82
- @click="deleteFile(index)"
83
- v-if="
84
- $attrs.edit !== false &&
85
- $attrs.edit !== 'false' &&
86
- attachment.h5 !== 1 &&
87
- $attrs.remove !== false
88
- "
89
- >
90
- <i
91
- class="el-tooltip iconfont iconshanchu"
92
- aria-describedby="el-tooltip-6144"
93
- tabindex="0"
94
- ></i>
95
- </div>
96
- <div class="el-icon-tagEdit" v-if="attachment.h5 !== 1">
97
- <el-tooltip
98
- class="item"
99
- effect="dark"
100
- :content="$t2('下载', 'system.button.download')"
101
- placement="top"
102
- >
103
- <i class="el-icon-download" @click="downloadFile(attachment)"></i>
104
- </el-tooltip>
105
- <el-tooltip
106
- class="item"
107
- effect="dark"
108
- :content="$t2('详情', 'components.VabUpload.detail')"
109
- placement="top"
110
- v-if="
111
- attachment &&
112
- attachment.id &&
113
- $attrs.showProperties !== false &&
114
- !dataType
115
- "
116
- >
117
- <i
118
- class="iconfont icon-shuxing"
119
- @click="openPropertiesDialog(attachment)"
120
- ></i>
121
- </el-tooltip>
122
- </div>
123
- </div>
124
- </li>
125
- </ul>
126
- </div>
127
- </template>
128
- <template v-else>
129
- <a>
130
- <el-image
131
- :src="getShowUrl(attachment)"
132
- @click="openPreview(attachment, index)"
133
- :z-index="999999"
134
- />
135
- </a>
136
- <a
137
- href="javascript:void(0);"
138
- class="del"
139
- @click="deleteFile(index)"
140
- v-if="$attrs.edit !== false && $attrs.edit !== 'false' &&
141
- $attrs.remove !== false"
142
- ><i class="el-icon-error"></i
143
- ></a>
144
- </template>
145
- </div>
146
- <div
147
- class="el-upload el-upload--picture"
148
- style="vertical-align: middle; display: inline-block; float: left"
149
- v-if="$attrs.edit !== false && $attrs.edit !== 'false'"
150
- >
151
- <button
152
- type="button"
153
- class="avatar-uploader"
154
- v-if="showUploadBtn"
155
- @keyup.prevent
156
- @keydown.enter.prevent
157
- @click="openUploadDialog()"
158
- @mouseenter="uploadEnterOver()"
159
- @mouseleave="uploadEnterLeave()"
160
- >
161
- <i class="el-icon-plus avatar-uploader-icon"></i>
162
- </button>
163
- </div>
164
- </div>
165
- <propertiesDialog
166
- v-if="showPropertiesDialog"
167
- :visiable.sync="showPropertiesDialog"
168
- :editAttachment.sync="editAttachment"
169
- :edit.sync="$attrs.edit"
170
- ></propertiesDialog>
171
- <el-image-viewer
172
- v-if="showViewer"
173
- :on-close="closeViewer"
174
- :initial-index.sync="chooseIndex"
175
- :url-list="previewList"
176
- />
177
- </div>
178
- </template>
179
-
180
- <script>
181
- import { viewMixins } from "./mixins";
182
-
183
- export default {
184
- mixins: [viewMixins],
185
- components: {
186
- propertiesDialog: () => import("./propertiesDialog.vue"),
187
- ElImageViewer: () => import("./image-viewer"),
188
- },
189
- computed: {
190
- classList() {
191
- // 'upload-img': this.dataType || (this.$attrs.hideInfo == true || this.$attrs.hideInfo == 'true')
192
- let arr = [];
193
- if (
194
- this.dataType ||
195
- this.$attrs.hideInfo == true ||
196
- this.$attrs.hideInfo == "true"
197
- ) {
198
- arr.push("upload-img");
199
- }
200
- let widgetSize = this.$attrs.widgetSize || 2;
201
- if (widgetSize) {
202
- let str1 = "widgetSize-" + widgetSize;
203
- arr.push(str1);
204
- }
205
- return arr;
206
- },
207
- },
208
- };
209
- </script>
1
+ <template>
2
+ <div>
3
+ <div id="uploadImage" :class="classList">
4
+ <div
5
+ class="upload-list"
6
+ model="singer"
7
+ v-for="(attachment, index) in attachments"
8
+ :key="index"
9
+ style="display: inline-block; vertical-align: middle; float: left"
10
+ >
11
+ <template v-if="$attrs.hideInfo !== true && $attrs.hideInfo !== 'true'">
12
+ <div class="upload-box">
13
+ <ul class="el-upload-list el-upload-list--picture">
14
+ <li tabindex="0" class="el-upload-list__item">
15
+ <div>
16
+ <div class="el-upload-list__item-thumbnail">
17
+ <div
18
+ class="show-video"
19
+ v-if="hasPreview(attachment)"
20
+ @click="openPreview(attachment, index)"
21
+ >
22
+ <i class="icon-chakan"></i>
23
+ </div>
24
+ <p>
25
+ <el-image
26
+ :src="getShowUrl(attachment)"
27
+ @click="openPreview(attachment, index)"
28
+ :z-index="999999"
29
+ />
30
+ </p>
31
+ </div>
32
+ <div class="el-upload-list__item-name">
33
+ <el-tooltip
34
+ :enterable="false"
35
+ class="item"
36
+ effect="dark"
37
+ :content="getAttachmentName(attachment)"
38
+ placement="top"
39
+ >
40
+ <p v-if="$attrs.hideName !== true">
41
+ {{ getAttachmentName(attachment) }}
42
+ </p>
43
+ </el-tooltip>
44
+ <p v-if="$attrs.showSize === true || $attrs.showSize === 'true'">
45
+ {{ formatFileSize(attachment.fileSize) }}
46
+ </p>
47
+ <!-- <p v-if="$attrs.showSortInput !== true && !dataType && $attrs.createBy !== false">
48
+ {{ attachment.createBy }}</p>-->
49
+ <p
50
+ v-if="
51
+ $attrs.showSortInput !== true &&
52
+ !dataType &&
53
+ $attrs.createDate !== false
54
+ "
55
+ >
56
+ {{ attachment.createDate }}
57
+ </p>
58
+ </div>
59
+ <div class="el-upload-input" v-if="$attrs.showSortInput">
60
+ <base-input-number
61
+ v-model="attachment.orders"
62
+ class="button-sty"
63
+ :placeholder="$t2('序号', 'components.VabUpload.orders')"
64
+ :scale="0"
65
+ @change="handleChange"
66
+ />
67
+ </div>
68
+ <div class="el-upload-input" v-if="$attrs.showNameInput">
69
+ <el-input
70
+ v-model="attachment.name"
71
+ class="button-sty"
72
+ :placeholder="$t2('请输入名称', 'components.VabUpload.name')"
73
+ :scale="0"
74
+ @change="handleChange"
75
+ />
76
+ </div>
77
+ <div class="el-upload-list__item-status-label">
78
+ <i class="el-icon-upload-success el-icon-check"></i>
79
+ </div>
80
+ <div
81
+ class="el-icon-close"
82
+ @click="deleteFile(index)"
83
+ v-if="
84
+ $attrs.edit !== false &&
85
+ $attrs.edit !== 'false' &&
86
+ attachment.h5 !== 1 &&
87
+ $attrs.remove !== false
88
+ "
89
+ >
90
+ <i
91
+ class="el-tooltip iconfont iconshanchu"
92
+ aria-describedby="el-tooltip-6144"
93
+ tabindex="0"
94
+ ></i>
95
+ </div>
96
+ <div class="el-icon-tagEdit" v-if="attachment.h5 !== 1">
97
+ <el-tooltip
98
+ class="item"
99
+ effect="dark"
100
+ :content="$t2('下载', 'system.button.download')"
101
+ placement="top"
102
+ >
103
+ <i class="el-icon-download" @click="downloadFile(attachment)"></i>
104
+ </el-tooltip>
105
+ <el-tooltip
106
+ class="item"
107
+ effect="dark"
108
+ :content="$t2('详情', 'components.VabUpload.detail')"
109
+ placement="top"
110
+ v-if="
111
+ attachment &&
112
+ attachment.id &&
113
+ $attrs.showProperties !== false &&
114
+ !dataType
115
+ "
116
+ >
117
+ <i
118
+ class="iconfont icon-shuxing"
119
+ @click="openPropertiesDialog(attachment)"
120
+ ></i>
121
+ </el-tooltip>
122
+ </div>
123
+ </div>
124
+ </li>
125
+ </ul>
126
+ </div>
127
+ </template>
128
+ <template v-else>
129
+ <a>
130
+ <el-image
131
+ :src="getShowUrl(attachment)"
132
+ @click="openPreview(attachment, index)"
133
+ :z-index="999999"
134
+ />
135
+ </a>
136
+ <a
137
+ href="javascript:void(0);"
138
+ class="del"
139
+ @click="deleteFile(index)"
140
+ v-if="$attrs.edit !== false && $attrs.edit !== 'false' &&
141
+ $attrs.remove !== false"
142
+ ><i class="el-icon-error"></i
143
+ ></a>
144
+ </template>
145
+ </div>
146
+ <div
147
+ class="el-upload el-upload--picture"
148
+ style="vertical-align: middle; display: inline-block; float: left"
149
+ v-if="$attrs.edit !== false && $attrs.edit !== 'false'"
150
+ >
151
+ <button
152
+ type="button"
153
+ class="avatar-uploader"
154
+ v-if="showUploadBtn"
155
+ @keyup.prevent
156
+ @keydown.enter.prevent
157
+ @click="openUploadDialog()"
158
+ @mouseenter="uploadEnterOver()"
159
+ @mouseleave="uploadEnterLeave()"
160
+ >
161
+ <i class="el-icon-plus avatar-uploader-icon"></i>
162
+ </button>
163
+ </div>
164
+ </div>
165
+ <propertiesDialog
166
+ v-if="showPropertiesDialog"
167
+ :visiable.sync="showPropertiesDialog"
168
+ :editAttachment.sync="editAttachment"
169
+ :edit.sync="$attrs.edit"
170
+ ></propertiesDialog>
171
+ <el-image-viewer
172
+ v-if="showViewer"
173
+ :on-close="closeViewer"
174
+ :initial-index.sync="chooseIndex"
175
+ :url-list="previewList"
176
+ />
177
+ <!-- H5 非图片文件预览:结构与 mobile/wf/content.vue 的流程图预览一致,
178
+ 样式走 xform/styles/h5.scss 块 L 的 .pop-box(全屏 fixed + 内部 flex)。
179
+ 只在宿主传了 h5Preview 时才会被 openPreview 打开,PC 上永远不渲染。 -->
180
+ <div class="pop-box" v-if="showFilePreviewDialog">
181
+ <div>
182
+ <div class="header-box">
183
+ <i
184
+ class="back el-icon-close"
185
+ @click="showFilePreviewDialog = false"
186
+ ></i>
187
+ {{ $t2("文件预览", "components.VabUpload.filePreview") }}
188
+ </div>
189
+ <div class="flex">
190
+ <div class="form-box">
191
+ <div class="tit">
192
+ <span>{{ previewFileName }}</span>
193
+ </div>
194
+ <iframe
195
+ style="width: 100%; flex: 1; border: none"
196
+ :src="previewFileUrl"
197
+ ></iframe>
198
+ </div>
199
+ </div>
200
+ <!-- 与流程图预览/任务情况预览同款:底部一个铺满行的「关 闭」。
201
+ .btn flex:1 由 xform/styles/h5.scss 块 L 给,单个按钮自动占满。 -->
202
+ <div class="fixed-bottom-btns">
203
+ <el-button
204
+ type="primary"
205
+ plain
206
+ class="btn"
207
+ icon="el-icon-close"
208
+ @click="showFilePreviewDialog = false"
209
+ >
210
+ {{ $t2("关 闭", "system.button.close2") }}
211
+ </el-button>
212
+ </div>
213
+ </div>
214
+ </div>
215
+ </div>
216
+ </template>
217
+
218
+ <script>
219
+ import { viewMixins } from "./mixins";
220
+
221
+ export default {
222
+ mixins: [viewMixins],
223
+ components: {
224
+ propertiesDialog: () => import("./propertiesDialog.vue"),
225
+ ElImageViewer: () => import("./image-viewer"),
226
+ },
227
+ computed: {
228
+ classList() {
229
+ // 'upload-img': this.dataType || (this.$attrs.hideInfo == true || this.$attrs.hideInfo == 'true')
230
+ let arr = [];
231
+ if (
232
+ this.dataType ||
233
+ this.$attrs.hideInfo == true ||
234
+ this.$attrs.hideInfo == "true"
235
+ ) {
236
+ arr.push("upload-img");
237
+ }
238
+ let widgetSize = this.$attrs.widgetSize || 2;
239
+ if (widgetSize) {
240
+ let str1 = "widgetSize-" + widgetSize;
241
+ arr.push(str1);
242
+ }
243
+ return arr;
244
+ },
245
+ },
246
+ };
247
+ </script>