From 21ca867c2850640ef6df888d604de35d3108335f Mon Sep 17 00:00:00 2001
From: wangqing <250543222@qq.com>
Date: Wed, 16 Dec 2020 23:07:06 +0800
Subject: [PATCH] el-upload
---
src/components/generator/config.js | 3 ++-
src/components/parser/Parser.vue | 22 +++++++++++++------
src/components/render/render.js | 3 +++
src/components/render/slots/el-upload.js | 5 +++--
src/utils/convert.js | 12 ++++++++++-
src/views/form/RightPanel.vue | 27 +++++++++++++-----------
6 files changed, 49 insertions(+), 23 deletions(-)
diff --git a/src/components/generator/config.js b/src/components/generator/config.js
index 7c7430a..d620331 100644
--- a/src/components/generator/config.js
+++ b/src/components/generator/config.js
@@ -494,7 +494,7 @@ export const selectComponents = [
buttonText: '点击上传',
regList: [],
changeTag: true,
- fileSize: 2,
+ fileSize: 1,
sizeUnit: 'MB',
document: 'https://element.eleme.cn/#/zh-CN/component/upload'
},
@@ -507,6 +507,7 @@ export const selectComponents = [
name: 'file',
'auto-upload': true,
'list-type': 'text',
+ limit: 2,
multiple: false
}
]
diff --git a/src/components/parser/Parser.vue b/src/components/parser/Parser.vue
index c659aa6..ea1290f 100644
--- a/src/components/parser/Parser.vue
+++ b/src/components/parser/Parser.vue
@@ -136,25 +136,24 @@ function renderChildren(h, scheme) {
}
function setUpload(config, scheme, response, file, fileList) {
- debugger
- console.log(this[this.formConf.formModel][scheme.__vModel__])
let newValue = JSON.parse(this[this.formConf.formModel][scheme.__vModel__])
if (!newValue) {
newValue = []
}
- newValue.push({name: file.name, url: response.data})
+ newValue.push({fileName: file.name, url: response.data})
this.$set(config, 'defaultValue', JSON.stringify(newValue))
this.$set(this[this.formConf.formModel], scheme.__vModel__, JSON.stringify(newValue))
-
+ setValueLabel.call(this, {type: 'file', files: JSON.stringify(newValue)}, config, scheme)
}
-function deleteUpload(event, config, scheme, file, fileList) {
+function deleteUpload(config, scheme, file, fileList) {
let newValue = []
fileList.forEach(element => {
- newValue.push({name: element.name, url: element.url})
+ newValue.push({fileName: element.name, url: element.url})
})
this.$set(config, 'defaultValue', JSON.stringify(newValue))
this.$set(this[this.formConf.formModel], scheme.__vModel__, JSON.stringify(newValue))
+ setValueLabel.call(this, {type: 'file', files: JSON.stringify(newValue)}, config, scheme)
}
function setValue(event, config, scheme) {
@@ -177,6 +176,8 @@ function setValueLabel(event, config, scheme) {
let item = _.find(_.get(scheme, tagOptionKey), {'value': event})
this.$set(this[this.formConf.labelFormModel], scheme.__vModel__, item.label)
}
+ } else if (config.tag === 'el-upload') {
+ this.$set(this[this.formConf.labelFormModel], scheme.__vModel__, event)
} else {
this.$set(this[this.formConf.labelFormModel], scheme.__vModel__, event)
}
@@ -206,7 +207,7 @@ function buildListeners(scheme) {
// 响应 render.js 中的 vModel $emit('input', val)
listeners.input = event => setValue.call(this, event, config, scheme)
listeners.upload = (response, file, fileList) => setUpload.call(this, config, scheme, response, file, fileList)
- listeners.deleteUpload = event => setValue.call(this, event, config, scheme)
+ listeners.deleteUpload = (file, fileList) => deleteUpload.call(this, config, scheme, file, fileList)
return listeners
}
@@ -283,6 +284,13 @@ export default {
buildRules(componentList, rules) {
componentList.forEach(cur => {
const config = cur.__config__
+ if (cur.tag === 'el-upload') {
+ config.regList.push({
+ validator: () => {
+ console.log(cur.limit)
+ }, trigger: 'change'
+ })
+ }
if (Array.isArray(config.regList)) {
if (config.required) {
const required = {required: config.required, message: cur.placeholder}
diff --git a/src/components/render/render.js b/src/components/render/render.js
index 949a817..c64f476 100644
--- a/src/components/render/render.js
+++ b/src/components/render/render.js
@@ -25,6 +25,9 @@ function vModel(dataObject, defaultValue) {
dataObject.attrs['on-remove'] = (file, fileList) => {
this.$emit('deleteUpload', file, fileList)
}
+ dataObject.attrs['on-exceed']=(file, fileList) => {
+ this.$emit('deleteUpload', file, fileList)
+ }
} else {
dataObject.props.value = defaultValue
diff --git a/src/components/render/slots/el-upload.js b/src/components/render/slots/el-upload.js
index 8ce3c35..757123e 100644
--- a/src/components/render/slots/el-upload.js
+++ b/src/components/render/slots/el-upload.js
@@ -7,11 +7,12 @@ export default {
} else {
list.push(