meixioacomponent 0.4.2 → 0.4.6
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/lib/meixioacomponent.common.js +16241 -19856
- package/lib/meixioacomponent.umd.js +16353 -19968
- package/lib/meixioacomponent.umd.min.js +33 -34
- package/lib/style/element/index.css +1182 -1153
- package/lib/style/theme/light.less +5 -4
- package/package.json +2 -2
- package/packages/components/base/baseCropper/index.vue +2 -1
- package/packages/components/base/baseDialog/index.vue +13 -7
- package/packages/components/base/baseDrawer/index.vue +5 -2
- package/packages/components/base/baseIcon/index.vue +1 -2
- package/packages/components/base/baseList/index.js +6 -0
- package/packages/components/base/baseList/index.vue +48 -0
- package/packages/components/base/baseList/scrollbar/index.js +8 -0
- package/packages/components/base/baseList/scrollbar/src/bar.js +92 -0
- package/packages/components/base/baseList/scrollbar/src/main.js +150 -0
- package/packages/components/base/baseList/scrollbar/src/util.js +34 -0
- package/packages/components/base/baseNumberInput/index.js +6 -0
- package/packages/components/base/baseNumberInput/index.vue +191 -0
- package/packages/components/base/basePlainTable/basePlainTable.vue +78 -12
- package/packages/components/base/basePopoverButton/index.vue +1 -1
- package/packages/components/base/baseSection/baseSection.vue +24 -11
- package/packages/components/base/baseSingleImgUpload/index.js +6 -0
- package/packages/components/base/baseSingleImgUpload/index.vue +147 -0
- package/packages/components/base/baseStoreSelect/index.js +6 -0
- package/packages/components/base/baseStoreSelect/index.vue +159 -0
- package/packages/components/base/baseToggle/toggle.vue +22 -3
- package/packages/components/base/baseTreeSelect/index.vue +7 -1
- package/packages/components/base/baseUpload/baseUpload.vue +23 -0
- package/packages/components/base/baseUpload/baseUploadItem.vue +2 -3
- package/packages/components/base/baseUpload/mixins.js +12 -2
- package/packages/components/base/baseUploadTemplate/index.vue +19 -3
- package/packages/components/base/upload/upload.vue +36 -13
- package/packages/components/base/upload/uploadItem.vue +40 -17
- package/packages/components/dynamicmount/index.js +30 -29
- package/packages/components/index.js +19 -2
- package/packages/components/proForm/dialogForm/baseDialogForm.vue +29 -19
- package/packages/components/proForm/proForm/proFormItem/index.js +6 -0
- package/packages/components/proForm/proForm/{pro_form_item.vue → proFormItem/pro_form_item.vue} +161 -99
- package/packages/components/proForm/proForm/pro_form.vue +70 -16
- package/packages/components/proForm/proFormWrap/pro_form_wrap.vue +70 -28
- package/packages/components/proPageTable/oa_pro_colum_config.vue +24 -28
- package/packages/components/proPageTable/oa_pro_footer.vue +12 -10
- package/packages/components/proPageTable/oa_pro_screen.vue +1 -0
- package/packages/components/proPageTable/oa_pro_screen_item.vue +6 -6
- package/packages/components/proPageTable/oa_pro_table.vue +44 -20
- package/packages/components/style/element/index.css +1182 -1153
- package/packages/components/style/theme/light.less +5 -4
- package/packages/config/selectStore/SelectStore.js +26 -17
- package/packages/config/uploadRequest.js +1 -0
- package/packages/utils/upload.js +22 -21
- package/packages/utils/utils.js +110 -111
- package/src/App.vue +9 -14
- package/src/component/test.vue +333 -233
- package/src/component/testSelectStore.js +25 -13
- package/src/config/CompanyInfoConfig.js +4 -2
- package/packages/components/base/brieflyItem.vue +0 -198
|
@@ -45,13 +45,12 @@
|
|
|
45
45
|
v-if="(isUploadProImg || type == 'img') && imgSrc"
|
|
46
46
|
class="type-pre-views"
|
|
47
47
|
>
|
|
48
|
-
<div class="handleUploadItem">
|
|
48
|
+
<div class="handleUploadItem" v-if="!disabled">
|
|
49
49
|
<base-icon
|
|
50
50
|
:size="`l`"
|
|
51
51
|
:color="`d`"
|
|
52
52
|
:event="true"
|
|
53
53
|
:plain="true"
|
|
54
|
-
v-if="!disabled"
|
|
55
54
|
style="width: 32px; height: 32px;"
|
|
56
55
|
:name="`meixicomponenticon-close`"
|
|
57
56
|
@iconClick="handleDeleteUploadItem"
|
|
@@ -224,12 +223,12 @@ export default {
|
|
|
224
223
|
clickFile() {
|
|
225
224
|
const { disabled } = this.$props
|
|
226
225
|
if (disabled) return
|
|
226
|
+
this.$refs.inputFile.value = ''
|
|
227
227
|
this.$refs.inputFile.click()
|
|
228
228
|
},
|
|
229
229
|
|
|
230
230
|
async returnFiles(files) {
|
|
231
231
|
let list = []
|
|
232
|
-
console.log(files)
|
|
233
232
|
const { fileSize } = this.$props
|
|
234
233
|
for (let i = 0; i < files.length; i++) {
|
|
235
234
|
if (files[i].size < fileSize * 1048576) {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Notification } from 'element-ui'
|
|
1
2
|
import componentConfig from '../../../config/componentConfig'
|
|
2
3
|
import useUpload from '../../../config/use/UseUpload'
|
|
3
4
|
export const baseUploadMixins = {
|
|
@@ -14,6 +15,7 @@ export const baseUploadMixins = {
|
|
|
14
15
|
uploadPath: {
|
|
15
16
|
type: [String, Array],
|
|
16
17
|
default: () => {
|
|
18
|
+
// 第二位 代表 是oss 还是 只有miniio
|
|
17
19
|
return [0, 1]
|
|
18
20
|
},
|
|
19
21
|
},
|
|
@@ -55,11 +57,19 @@ export const baseUploadMixins = {
|
|
|
55
57
|
},
|
|
56
58
|
|
|
57
59
|
uploadEd(list) {
|
|
60
|
+
const filterList = list.filter((item) => {
|
|
61
|
+
if (!item.upload || item.upload.state == 1) {
|
|
62
|
+
return item
|
|
63
|
+
} else {
|
|
64
|
+
Notification.error('文件取消上传或上传失败!')
|
|
65
|
+
}
|
|
66
|
+
})
|
|
58
67
|
if (!this.isGroup) {
|
|
59
|
-
this.module =
|
|
68
|
+
this.module = filterList
|
|
60
69
|
}
|
|
61
70
|
this.uploadLoading = false
|
|
62
|
-
this
|
|
71
|
+
this.module = filterList
|
|
72
|
+
this.$emit('uploadEd', filterList)
|
|
63
73
|
},
|
|
64
74
|
},
|
|
65
75
|
}
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
<div class="custom-upload-content" v-on:paste="onPasteFile">
|
|
21
21
|
<span class="notice-text">
|
|
22
22
|
请选择需要导入的文件(
|
|
23
|
-
<strong>点击此处后</strong>
|
|
23
|
+
<strong style="cursor: pointer;">点击此处后</strong>
|
|
24
24
|
>支持黏贴文件上传)
|
|
25
25
|
</span>
|
|
26
26
|
<div class="upload-handle-wrap" v-show="stepActive == 0">
|
|
@@ -41,6 +41,7 @@
|
|
|
41
41
|
:fileType="fileType"
|
|
42
42
|
:auto-upload="false"
|
|
43
43
|
style="display: none;"
|
|
44
|
+
:uploadPath="uploadPath"
|
|
44
45
|
:uploadType="uploadType"
|
|
45
46
|
ref="baseUploadItemRef"
|
|
46
47
|
@uploadEd="uploadEd"
|
|
@@ -129,6 +130,10 @@ export default {
|
|
|
129
130
|
type: Boolean,
|
|
130
131
|
default: false,
|
|
131
132
|
},
|
|
133
|
+
|
|
134
|
+
uploadedCallBack: {
|
|
135
|
+
type: Function,
|
|
136
|
+
},
|
|
132
137
|
},
|
|
133
138
|
components: { baseUploadItem, BaseDefaultSvg },
|
|
134
139
|
computed: {
|
|
@@ -152,7 +157,7 @@ export default {
|
|
|
152
157
|
},
|
|
153
158
|
{
|
|
154
159
|
type: 'primary',
|
|
155
|
-
disabled: this.stepActive == 1 ? true : false,
|
|
160
|
+
disabled: this.stepActive == 1 || !this.fileName ? true : false,
|
|
156
161
|
text: this.stepActive == 0 ? '导入文件' : '确定',
|
|
157
162
|
click: () => {
|
|
158
163
|
if (this.stepActive == 0) {
|
|
@@ -174,10 +179,16 @@ export default {
|
|
|
174
179
|
uploadEd(e) {
|
|
175
180
|
this.stepActive = 2
|
|
176
181
|
const { url } = e[0]
|
|
182
|
+
console.log(e)
|
|
177
183
|
if (url == 'cancel') {
|
|
178
184
|
this.result = 'fail'
|
|
179
185
|
} else {
|
|
180
|
-
result = 'success'
|
|
186
|
+
this.result = 'success'
|
|
187
|
+
}
|
|
188
|
+
const { uploadedCallBack } = this.$props
|
|
189
|
+
|
|
190
|
+
if (uploadedCallBack) {
|
|
191
|
+
this.uploadedCallBack(this.result)
|
|
181
192
|
}
|
|
182
193
|
},
|
|
183
194
|
onHandleFile() {
|
|
@@ -232,5 +243,10 @@ export default {
|
|
|
232
243
|
justify-content: center;
|
|
233
244
|
}
|
|
234
245
|
}
|
|
246
|
+
|
|
247
|
+
/deep/.svg-icon {
|
|
248
|
+
width: 100px;
|
|
249
|
+
height: 100px;
|
|
250
|
+
}
|
|
235
251
|
}
|
|
236
252
|
</style>
|
|
@@ -27,6 +27,7 @@
|
|
|
27
27
|
:key="index"
|
|
28
28
|
:item="item"
|
|
29
29
|
v-for="(item, index) in filterArray"
|
|
30
|
+
@deleteAppendixItem="deleteAppendixItem"
|
|
30
31
|
></uploadItemVue>
|
|
31
32
|
</div>
|
|
32
33
|
</div>
|
|
@@ -78,11 +79,11 @@ export default {
|
|
|
78
79
|
},
|
|
79
80
|
|
|
80
81
|
completed() {
|
|
81
|
-
let uploadArray = this
|
|
82
|
+
let uploadArray = this.uploadArray
|
|
82
83
|
return (
|
|
83
|
-
uploadArray
|
|
84
|
+
uploadArray?.filter((item) => {
|
|
84
85
|
return item.process == 100
|
|
85
|
-
}).length / uploadArray
|
|
86
|
+
}).length / uploadArray?.length
|
|
86
87
|
)
|
|
87
88
|
},
|
|
88
89
|
totalStyle() {
|
|
@@ -114,24 +115,27 @@ export default {
|
|
|
114
115
|
createUpload(uploadItem) {
|
|
115
116
|
this.uploadArray.push(uploadItem)
|
|
116
117
|
if (uploadItem.file && uploadItem.process != 100) {
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
118
|
+
this.$set(
|
|
119
|
+
uploadItem,
|
|
120
|
+
'upload',
|
|
121
|
+
new Upload({
|
|
122
|
+
file: uploadItem.file,
|
|
123
|
+
uploadProgressFn: (process) => {
|
|
124
|
+
uploadItem.process = process
|
|
125
|
+
},
|
|
126
|
+
}),
|
|
127
|
+
)
|
|
128
|
+
|
|
123
129
|
uploadItem.upload
|
|
124
130
|
.start()
|
|
125
131
|
.then((uploadEdUrl) => {
|
|
126
132
|
this.$set(uploadItem, 'url', uploadEdUrl)
|
|
127
|
-
// uploadItem.url = uploadEdUrl;
|
|
128
133
|
if (uploadItem.cb) {
|
|
129
134
|
uploadItem.cb([uploadItem])
|
|
130
135
|
}
|
|
131
136
|
this.uploadEd()
|
|
132
137
|
})
|
|
133
138
|
.catch((error) => {
|
|
134
|
-
// uploadItem.url = "cancel";
|
|
135
139
|
this.$set(uploadItem, 'url', 'cancel')
|
|
136
140
|
this.uploadEd()
|
|
137
141
|
})
|
|
@@ -179,6 +183,21 @@ export default {
|
|
|
179
183
|
}
|
|
180
184
|
},
|
|
181
185
|
|
|
186
|
+
deleteAppendixItem(item) {
|
|
187
|
+
this.$confirm('此操作将取消当前未上传的文件, 是否继续?', '提示', {
|
|
188
|
+
confirmButtonText: '确定',
|
|
189
|
+
cancelButtonText: '取消',
|
|
190
|
+
type: 'warning',
|
|
191
|
+
})
|
|
192
|
+
.then(() => {
|
|
193
|
+
if (item.upload?.state == 0) {
|
|
194
|
+
item.upload.cancel()
|
|
195
|
+
}
|
|
196
|
+
// this.uploadEd()
|
|
197
|
+
})
|
|
198
|
+
.catch(() => {})
|
|
199
|
+
},
|
|
200
|
+
|
|
182
201
|
uploadFailed() {
|
|
183
202
|
if (this.$props.uploadEdEvent) {
|
|
184
203
|
this.$props.uploadEdEvent()
|
|
@@ -236,8 +255,12 @@ export default {
|
|
|
236
255
|
span {
|
|
237
256
|
color: var(--bg-white) !important;
|
|
238
257
|
}
|
|
239
|
-
/deep/
|
|
240
|
-
|
|
258
|
+
/deep/ .base-icon-wrap {
|
|
259
|
+
background: var(--color-warn);
|
|
260
|
+
i {
|
|
261
|
+
color: white !important;
|
|
262
|
+
font-weight: var(--font-weight-kg);
|
|
263
|
+
}
|
|
241
264
|
}
|
|
242
265
|
}
|
|
243
266
|
.upload-content {
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<div class="item-content">
|
|
7
7
|
<div class="item-info">
|
|
8
8
|
<span class="item-name">{{ fileName }}</span>
|
|
9
|
-
<span class="item-size"
|
|
9
|
+
<span class="item-size">- ({{ fileSize }})</span>
|
|
10
10
|
</div>
|
|
11
11
|
<div class="item-process-wrap" v-if="type == 'upload'">
|
|
12
12
|
<div class="item-process-bar" :style="barStyle"></div>
|
|
@@ -16,15 +16,17 @@
|
|
|
16
16
|
<base-icon
|
|
17
17
|
:size="`l`"
|
|
18
18
|
:active="true"
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
:event="true"
|
|
20
|
+
@iconClick="handleClose"
|
|
21
|
+
:name="uploadTypeIcon"
|
|
22
|
+
v-if="type == 'upload'"
|
|
21
23
|
></base-icon>
|
|
22
24
|
<base-icon
|
|
23
25
|
:size="`l`"
|
|
24
26
|
:event="true"
|
|
25
|
-
:name="`meixicomponenticon-lajixiang`"
|
|
26
27
|
v-if="type == 'appendix'"
|
|
27
|
-
@iconClick="
|
|
28
|
+
@iconClick="handleClose"
|
|
29
|
+
:name="`meixicomponenticon-lajixiang`"
|
|
28
30
|
></base-icon>
|
|
29
31
|
</div>
|
|
30
32
|
</div>
|
|
@@ -35,10 +37,10 @@ import {
|
|
|
35
37
|
fileSuffix,
|
|
36
38
|
filterFileSize,
|
|
37
39
|
jugeFileTypeKey,
|
|
38
|
-
} from
|
|
40
|
+
} from '../../../utils/utils'
|
|
39
41
|
export default {
|
|
40
42
|
data() {
|
|
41
|
-
return {}
|
|
43
|
+
return {}
|
|
42
44
|
},
|
|
43
45
|
props: {
|
|
44
46
|
item: {
|
|
@@ -48,37 +50,58 @@ export default {
|
|
|
48
50
|
|
|
49
51
|
type: {
|
|
50
52
|
type: String,
|
|
51
|
-
default:
|
|
53
|
+
default: 'upload',
|
|
52
54
|
},
|
|
53
55
|
},
|
|
56
|
+
created() {},
|
|
54
57
|
computed: {
|
|
55
58
|
zhengqueShow() {
|
|
56
|
-
return this.process == 100 && this.$props.type ==
|
|
59
|
+
return this.process == 100 && this.$props.type == 'upload'
|
|
60
|
+
},
|
|
61
|
+
uploadTypeIcon() {
|
|
62
|
+
const { item } = this.$props
|
|
63
|
+
if (this.process == 100) {
|
|
64
|
+
const { upload } = item
|
|
65
|
+
if (upload.state == 1) {
|
|
66
|
+
return 'meixicomponenticon-zhengque'
|
|
67
|
+
} else if (upload.state == 2) {
|
|
68
|
+
return 'meixicomponenticon-close'
|
|
69
|
+
}
|
|
70
|
+
} else {
|
|
71
|
+
return 'meixicomponenticon-close'
|
|
72
|
+
}
|
|
57
73
|
},
|
|
58
74
|
fileName() {
|
|
59
|
-
return this.item.file.name
|
|
75
|
+
return this.item.file.name
|
|
60
76
|
},
|
|
61
77
|
svgKey() {
|
|
62
|
-
return jugeFileTypeKey(fileSuffix(this.fileName))
|
|
78
|
+
return jugeFileTypeKey(fileSuffix(this.fileName))
|
|
63
79
|
},
|
|
64
80
|
process() {
|
|
65
|
-
return this.$props.item.process
|
|
81
|
+
return this.$props.item.process
|
|
66
82
|
},
|
|
67
83
|
fileSize() {
|
|
68
|
-
return filterFileSize(this.$props.item.file.size)
|
|
84
|
+
return filterFileSize(this.$props.item.file.size)
|
|
69
85
|
},
|
|
70
86
|
barStyle() {
|
|
71
87
|
return {
|
|
72
88
|
width: `${this.process}%`,
|
|
73
|
-
}
|
|
89
|
+
}
|
|
74
90
|
},
|
|
75
91
|
},
|
|
76
92
|
methods: {
|
|
77
|
-
|
|
78
|
-
this.$
|
|
93
|
+
handleClose() {
|
|
94
|
+
const { type } = this.$props
|
|
95
|
+
if (type == 'upload') {
|
|
96
|
+
if (this.process != 100) {
|
|
97
|
+
this.$emit('deleteAppendixItem', this.$props.item)
|
|
98
|
+
}
|
|
99
|
+
} else {
|
|
100
|
+
this.$emit('deleteAppendixItem', this.$props.item)
|
|
101
|
+
}
|
|
79
102
|
},
|
|
80
103
|
},
|
|
81
|
-
}
|
|
104
|
+
}
|
|
82
105
|
</script>
|
|
83
106
|
|
|
84
107
|
<style lang="less" scoped>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import Vue from
|
|
2
|
-
import dynamicMountComponent from
|
|
3
|
-
import componentConfig from
|
|
4
|
-
const ComponentInsertConstructor = Vue.extend(dynamicMountComponent)
|
|
1
|
+
import Vue from 'vue'
|
|
2
|
+
import dynamicMountComponent from './dynamicMount.vue'
|
|
3
|
+
import componentConfig from '../../config/componentConfig'
|
|
4
|
+
const ComponentInsertConstructor = Vue.extend(dynamicMountComponent)
|
|
5
5
|
|
|
6
6
|
//使用方法
|
|
7
7
|
// this.$dynmaicMount({
|
|
@@ -11,38 +11,39 @@ const ComponentInsertConstructor = Vue.extend(dynamicMountComponent);
|
|
|
11
11
|
// });
|
|
12
12
|
|
|
13
13
|
const Insert = (options) => {
|
|
14
|
-
componentConfig.setDynamicId()
|
|
15
|
-
let id = componentConfig.dynamicId
|
|
16
|
-
const componentInsertConstructor = new ComponentInsertConstructor()
|
|
17
|
-
componentInsertConstructor.vm = componentInsertConstructor.$mount()
|
|
18
|
-
componentInsertConstructor.dom = componentInsertConstructor.vm.$el
|
|
19
|
-
componentInsertConstructor.mountedDom = options.mountedDom
|
|
20
|
-
componentInsertConstructor.vm.id = id
|
|
21
|
-
componentInsertConstructor.vm.vueComponent = options.vueComponent
|
|
22
|
-
componentInsertConstructor.componentProps = options.componentProps
|
|
23
|
-
componentInsertConstructor.vm.init()
|
|
24
|
-
let ele = document.createElement(
|
|
25
|
-
ele.setAttribute(
|
|
14
|
+
componentConfig.setDynamicId()
|
|
15
|
+
let id = componentConfig.dynamicId
|
|
16
|
+
const componentInsertConstructor = new ComponentInsertConstructor()
|
|
17
|
+
componentInsertConstructor.vm = componentInsertConstructor.$mount()
|
|
18
|
+
componentInsertConstructor.dom = componentInsertConstructor.vm.$el
|
|
19
|
+
componentInsertConstructor.mountedDom = options.mountedDom
|
|
20
|
+
componentInsertConstructor.vm.id = id
|
|
21
|
+
componentInsertConstructor.vm.vueComponent = options.vueComponent
|
|
22
|
+
componentInsertConstructor.componentProps = options.componentProps
|
|
23
|
+
componentInsertConstructor.vm.init()
|
|
24
|
+
let ele = document.createElement('div')
|
|
25
|
+
ele.setAttribute('id', `dynamic-${id}`)
|
|
26
|
+
ele.setAttribute('class', 'dynamic')
|
|
26
27
|
if (options.mountedDom) {
|
|
27
|
-
ele.style.height =
|
|
28
|
-
componentInsertConstructor.vm.$el.style.height =
|
|
28
|
+
ele.style.height = '100%'
|
|
29
|
+
componentInsertConstructor.vm.$el.style.height = '100%'
|
|
29
30
|
} else {
|
|
30
|
-
ele.style.position = `fixed
|
|
31
|
-
ele.style.zIndex = 9999
|
|
32
|
-
ele.style.top
|
|
33
|
-
ele.style.left
|
|
31
|
+
ele.style.position = `fixed`
|
|
32
|
+
ele.style.zIndex = 9999
|
|
33
|
+
ele.style.top = `0px`
|
|
34
|
+
ele.style.left = `0px`
|
|
34
35
|
}
|
|
35
|
-
ele.appendChild(componentInsertConstructor.dom)
|
|
36
|
+
ele.appendChild(componentInsertConstructor.dom)
|
|
36
37
|
if (options.mountedDom) {
|
|
37
|
-
options.mountedDom.appendChild(ele)
|
|
38
|
+
options.mountedDom.appendChild(ele)
|
|
38
39
|
} else {
|
|
39
|
-
document.body.appendChild(ele)
|
|
40
|
+
document.body.appendChild(ele)
|
|
40
41
|
}
|
|
41
|
-
return componentInsertConstructor.vm
|
|
42
|
-
}
|
|
42
|
+
return componentInsertConstructor.vm
|
|
43
|
+
}
|
|
43
44
|
|
|
44
45
|
export default {
|
|
45
46
|
install(Vue, options = {}) {
|
|
46
|
-
Vue.prototype.$dynmaicMount = Insert
|
|
47
|
+
Vue.prototype.$dynmaicMount = Insert
|
|
47
48
|
},
|
|
48
|
-
}
|
|
49
|
+
}
|
|
@@ -36,6 +36,11 @@ import basePopoverButton from './base/basePopoverButton'
|
|
|
36
36
|
import baseTreeSelect from './base/baseTreeSelect'
|
|
37
37
|
import baseUploadTemplate from './base/baseUploadTemplate'
|
|
38
38
|
import VueCropper from 'vue-cropper'
|
|
39
|
+
import baseList from './base/baseList'
|
|
40
|
+
import baseNumberInput from './base/baseNumberInput'
|
|
41
|
+
import baseStoreSelect from './base/baseStoreSelect'
|
|
42
|
+
import baseFormItem from './proForm/proForm/proFormItem'
|
|
43
|
+
import baseSingleImgUpload from './base/baseSingleImgUpload'
|
|
39
44
|
// js 文件相关
|
|
40
45
|
import Theme from '../config/theme/theme'
|
|
41
46
|
import DynamicMount from './dynamicmount/index.js'
|
|
@@ -50,6 +55,8 @@ import useUpload from '../config/use/UseUpload'
|
|
|
50
55
|
import useFixedHeader from '../config/use/useFixedHeader'
|
|
51
56
|
import useCropper from '../config/use/useCropper'
|
|
52
57
|
|
|
58
|
+
import VueDND from 'awe-dnd'
|
|
59
|
+
|
|
53
60
|
const meixicomponents = [
|
|
54
61
|
baseAnchor,
|
|
55
62
|
baseAppendix,
|
|
@@ -88,14 +95,20 @@ const meixicomponents = [
|
|
|
88
95
|
basePopoverButton,
|
|
89
96
|
baseTreeSelect,
|
|
90
97
|
baseUploadTemplate,
|
|
98
|
+
baseList,
|
|
99
|
+
baseNumberInput,
|
|
100
|
+
baseStoreSelect,
|
|
101
|
+
baseFormItem,
|
|
102
|
+
baseSingleImgUpload
|
|
91
103
|
]
|
|
92
104
|
|
|
93
105
|
const install = (Vue) => {
|
|
94
|
-
meixicomponents.forEach((
|
|
95
|
-
Vue.component(
|
|
106
|
+
meixicomponents.forEach((baseComponent) => {
|
|
107
|
+
Vue.component(baseComponent.name, baseComponent)
|
|
96
108
|
})
|
|
97
109
|
Vue.use(DynamicMount)
|
|
98
110
|
Vue.use(VueCropper)
|
|
111
|
+
Vue.use(VueDND)
|
|
99
112
|
}
|
|
100
113
|
|
|
101
114
|
if (typeof window !== 'undefined' && window.Vue) {
|
|
@@ -143,6 +156,10 @@ export default {
|
|
|
143
156
|
basePopoverButton,
|
|
144
157
|
baseTreeSelect,
|
|
145
158
|
baseUploadTemplate,
|
|
159
|
+
baseNumberInput,
|
|
160
|
+
baseStoreSelect,
|
|
161
|
+
baseFormItem,
|
|
162
|
+
baseSingleImgUpload,
|
|
146
163
|
Theme,
|
|
147
164
|
SelectStore,
|
|
148
165
|
useImg,
|
|
@@ -48,6 +48,10 @@
|
|
|
48
48
|
></slot>
|
|
49
49
|
</template>
|
|
50
50
|
</template>
|
|
51
|
+
|
|
52
|
+
<template :slot="item.key" v-if="item.formType == 'template'">
|
|
53
|
+
<slot :name="`formWrap-${item.key}`"></slot>
|
|
54
|
+
</template>
|
|
51
55
|
</pro_formVue>
|
|
52
56
|
</div>
|
|
53
57
|
</div>
|
|
@@ -165,6 +169,7 @@ export default {
|
|
|
165
169
|
},
|
|
166
170
|
methods: {
|
|
167
171
|
createSlots() {
|
|
172
|
+
this.slotList = []
|
|
168
173
|
for (let i = 0; i < this.module.length; i++) {
|
|
169
174
|
let item = this.module[i]
|
|
170
175
|
for (let j = 0; j < item.formList.length; j++) {
|
|
@@ -176,30 +181,35 @@ export default {
|
|
|
176
181
|
}
|
|
177
182
|
},
|
|
178
183
|
disableWatcherResult(params) {
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
184
|
+
this.$nextTick(() => {
|
|
185
|
+
const { result, type, key } = params
|
|
186
|
+
let index = 0
|
|
187
|
+
let cindex = -1
|
|
182
188
|
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
189
|
+
for (let i = 0; i < this.module.length; i++) {
|
|
190
|
+
let item = this.module[i]
|
|
191
|
+
for (let j = 0; j < item.formList.length; j++) {
|
|
192
|
+
let citem = item.formList[j]
|
|
193
|
+
if (citem.key == key) {
|
|
194
|
+
index = i
|
|
195
|
+
cindex = j
|
|
196
|
+
break
|
|
197
|
+
}
|
|
191
198
|
}
|
|
192
199
|
}
|
|
193
|
-
}
|
|
194
200
|
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
+
if (cindex > -1) {
|
|
202
|
+
let formItem = this.module[index].formList[cindex]
|
|
203
|
+
if (type == 'hide') {
|
|
204
|
+
this.$set(formItem, 'renderHide', result)
|
|
205
|
+
} else if (type == 'disable') {
|
|
206
|
+
this.$set(formItem, 'disabled', result)
|
|
207
|
+
} else if (type == 'template') {
|
|
208
|
+
formItem.type = result
|
|
209
|
+
this.createSlots()
|
|
210
|
+
}
|
|
201
211
|
}
|
|
202
|
-
}
|
|
212
|
+
})
|
|
203
213
|
},
|
|
204
214
|
setLabelPosition(type) {
|
|
205
215
|
if (!type) {
|