@@ -146,7 +146,7 @@ function createItem(data = null, oldData = {}) {
146146 if (! data .id ) {
147147 if (oldData) {
148148 // 如果旧数据状态是输入框, 则为新图片
149- if (oldData .status === ' input' ) {
149+ if (oldData .status === ' input' || oldData . status === ' new ' ) {
150150 item .status = ' new'
151151 }
152152 // 如果旧数据状态是初始化 init, 则为修改
@@ -418,6 +418,36 @@ export default {
418418 // 初始化 Draggable
419419 },
420420 methods: {
421+ async uploadImg (item ) {
422+ this .$axios ({
423+ method: ' post' ,
424+ url: ' /cms/file/' ,
425+ data: {
426+ file: item .file ,
427+ },
428+ }).then ((res ) => {
429+ if (! Array .isArray (res) || res .length !== 1 ) {
430+ throw new Error (' upload error' )
431+ }
432+ // 释放内存
433+ window .URL .revokeObjectURL (item .display )
434+ // eslint-disable-next-line
435+ item .display = res[0 ].url
436+ // eslint-disable-next-line
437+ item .src = res[0 ].key
438+ // eslint-disable-next-line
439+ item .file = null
440+ // eslint-disable-next-line
441+ item .loading = false
442+ return item
443+ }).catch ((err ) => {
444+ // eslint-disable-next-line
445+ item .loading = false
446+ console .error (err)
447+ this .$message .error (' 图像上传失败, 请重试' )
448+ return false
449+ })
450+ },
421451 async getValue () {
422452 const { itemList , isStable , min } = this
423453
@@ -435,46 +465,15 @@ export default {
435465 }
436466 // 提取需要上传文件
437467 const asyncList = []
438- // 上传文件后获取对应key值
439- const getAsyncItem = (item ) => {
440- if (! item .file ) {
441- return Promise .resolve (item)
442- }
443- // eslint-disable-next-line
444- item .loading = true
445- return this .$axios ({
446- method: ' post' ,
447- url: ' /cms/file/' ,
448- data: {
449- file: item .file ,
450- },
451- }).then ((res ) => {
452- if (! Array .isArray (res) || res .length !== 1 ) {
453- throw new Error (' upload error' )
454- }
455- // 释放内存
456- window .URL .revokeObjectURL (item .display )
457- // eslint-disable-next-line
458- item .display = res[0 ].url
459- // eslint-disable-next-line
460- item .src = res[0 ].key
461- // eslint-disable-next-line
462- item .file = null
463- // eslint-disable-next-line
464- item .loading = false
465- return item
466- }).catch ((err ) => {
467- // eslint-disable-next-line
468- item .loading = false
469- console .error (err)
470- this .$message .error (' 图像上传失败, 请重试' )
471- return false
472- })
473- }
468+
474469 for (let i = 0 ; i < itemList .length ; i += 1 ) {
475470 // 跳过上传组件
476- if (itemList[i].status !== ' input' ) {
477- asyncList .push (getAsyncItem (itemList[i]))
471+ if (itemList[i].status === ' input' ) return
472+ if (! itemList[i].file ) {
473+ asyncList .push (Promise .resolve (itemList[i]))
474+ } else {
475+ // 上传文件后获取对应key值
476+ asyncList .push (this .uploadImg (itemList[i]))
478477 }
479478 }
480479 const imgInfoList = await Promise .all (asyncList)
@@ -620,7 +619,7 @@ export default {
620619 * 选择图像文件后处理, 包括获取图像信息, 验证图像等
621620 */
622621 async handleChange (e ) {
623- const { currentId } = this
622+ const { currentId , autoUpload } = this
624623 const { files } = e .target
625624 let imgInfoList
626625
@@ -650,9 +649,11 @@ export default {
650649 }
651650 try {
652651 imgInfoList = await Promise .all (asyncList)
653- console .log (imgInfoList)
654652 // 设置图片信息
655653 await this .setImgInfo (imgInfoList, currentId)
654+ if (autoUpload) {
655+
656+ } else {}
656657 } catch (err) {
657658 // 清空缓存
658659 for (let i = 0 ; i < cache .length ; i += 1 ) {
0 commit comments