From 68981c58ea61ff4edc0479facfb8b76181d2a582 Mon Sep 17 00:00:00 2001 From: jinlin <jinlin> Date: 星期五, 01 十二月 2023 10:54:37 +0800 Subject: [PATCH] 6 --- web/src/components/config-uploader/src/config-uploader.vue | 139 +++++++++++++++++++++++++++++++++------------ 1 files changed, 101 insertions(+), 38 deletions(-) diff --git a/web/src/components/config-uploader/src/config-uploader.vue b/web/src/components/config-uploader/src/config-uploader.vue index bf400de..2f3f777 100644 --- a/web/src/components/config-uploader/src/config-uploader.vue +++ b/web/src/components/config-uploader/src/config-uploader.vue @@ -1,29 +1,66 @@ <template> - <el-collapse class="config-uploader" v-model="activeNames" v-if="oss"> - <el-collapse-item name="1" v-for="group in (oss.groups || [])" :key="group.busiFieldGroup"> - <template slot="title"> - <el-tag v-if="!image">{{group.busiFieldGroup}}</el-tag> - </template> - <!-- <zt-form-item :label="field.busiFieldName" :prop="field.busiField" v-for="field in group.fields" - :key="field.busiField" :rules="field.isRequired ? 'required':''" style="width: 100%;"> - <zt-uploader v-model="dataForm[field.busiField]" multiple :limit="field.fileLimit" :file-type="field.fileType" - :accept="field.accept" :file-size="field.fileSize" @input="change(field.busiField)"/> - </zt-form-item>--> - <el-table :data="group.fields" :show-header="false"> - <el-table-column width="250" style="text-align: left;white-space:nowrap;"> - <template slot-scope="scope"> - <span v-html="scope.row.busiFieldName"></span> - </template> - </el-table-column> - <el-table-column align="left"> - <template slot-scope="scope"> - <zt-uploader :image="image" v-model="dataForm[scope.row.busiField]" multiple :limit="scope.row.fileLimit" :file-type="scope.row.fileType" - :accept="scope.row.accept" :file-size="scope.row.fileSize" @getUploaderImg="getUploaderImg" @input="change(scope.row.busiField)"/> - </template> - </el-table-column> - </el-table> - </el-collapse-item> - </el-collapse> + <div v-if="oss"> + <el-collapse class="config-uploader" v-model="activeNames" v-if="oss.groups.length>1"> + <el-collapse-item name="1" v-for="group in (oss.groups || [])" :key="group.busiFieldGroup"> + <template slot="title"> + <el-tag>{{group.busiFieldGroup}}</el-tag> + </template> + <!-- <zt-form-item :label="field.busiFieldName" :prop="field.busiField" v-for="field in group.fields" + :key="field.busiField" :rules="field.isRequired ? 'required':''" style="width: 100%;"> + <zt-uploader v-model="dataForm[field.busiField]" multiple :limit="field.fileLimit" :file-type="field.fileType" + :accept="field.accept" :file-size="field.fileSize" @input="change(field.busiField)"/> + </zt-form-item>--> + <el-table :data="group.fields" :show-header="false"> + <el-table-column width="180" style="text-align: left;white-space:nowrap;"> + <template slot-scope="scope"> + <span v-html="(scope.row.isRequired?'<font color=red>* </font>':'')+ scope.row.busiFieldName"></span> + </template> + </el-table-column> + <el-table-column align="left"> + <template slot-scope="scope"> + <zt-uploader v-model="dataForm[scope.row.busiField]" :dataForm="dataForm" multiple + :limit="scope.row.fileLimit" :file-type="scope.row.fileTypeArr" + :showFileList2="false" :accept="scope.row.accept" :file-size="scope.row.fileSize" + @input="change(scope.row.busiField)"/> + </template> + </el-table-column> + </el-table> + </el-collapse-item> + </el-collapse> + <div v-else class="config-uploader" v-model="activeNames"> + <div v-for="group in (oss.groups || [])" :key="group.busiFieldGroup"> + <!-- <zt-form-item :label="field.busiFieldName" :prop="field.busiField" v-for="field in group.fields" + :key="field.busiField" :rules="field.isRequired ? 'required':''" style="width: 100%;"> + <zt-uploader v-model="dataForm[field.busiField]" multiple :limit="field.fileLimit" :file-type="field.fileType" + :accept="field.accept" :file-size="field.fileSize" @input="change(field.busiField)"/> + </zt-form-item>--> + <template slot="title"> + <el-tag>{{group.busiFieldGroup}}</el-tag> + </template> + <!-- <zt-form-item :label="field.busiFieldName" :prop="field.busiField" v-for="field in group.fields" + :key="field.busiField" :rules="field.isRequired ? 'required':''" style="width: 100%;"> + <zt-uploader v-model="dataForm[field.busiField]" multiple :limit="field.fileLimit" :file-type="field.fileType" + :accept="field.accept" :file-size="field.fileSize" @input="change(field.busiField)"/> + </zt-form-item>--> + <el-table :data="group.fields" :show-header="false"> + <el-table-column width="180" style="text-align: left;white-space:nowrap;"> + <template slot-scope="scope"> + <span v-html="(scope.row.isRequired?'<font color=red>* </font>':'')+ scope.row.busiFieldName"></span> + </template> + </el-table-column> + <el-table-column align="left"> + <template slot-scope="scope"> + <zt-uploader v-model="dataForm[scope.row.busiField]" :dataForm="dataForm" multiple + :limit="scope.row.fileLimit" :file-type="scope.row.fileTypeArr" + :showFileList2="false" :accept="scope.row.accept" :file-size="scope.row.fileSize" + @input="change(scope.row.busiField)" @getUploaderImg="getUploaderImg"/> + </template> + </el-table-column> + </el-table> + </div> + </div> + </div> + </template> <script> @@ -33,7 +70,6 @@ props: { value: Object, dataForm: Object, - image:false, busiType: String // 涓氬姟绫诲瀷 }, data() { @@ -47,7 +83,15 @@ let arr = [] if (this.dataForm.files && this.dataForm.files.groups) { this.dataForm.files.groups.forEach(group => { - group.fields.forEach(field => arr.push(field)) + group.fields.forEach(field => { + let arrType = [] + if (field.fileTypes) { + arrType = field.fileTypes.split(',') + } + //this.$set(field, 'fileTypeArr', arrType) + field.fileTypeArr = arrType + arr.push(field) + }) }) } return arr @@ -85,25 +129,43 @@ getOss() { let arr = (this.$store.state.oss.configs || []).filter(config => config.busiType === this.busiType) if (arr.length > 0) { + arr[0].groups.forEach(group => { + group.fields.forEach(field => { + let arrType = [] + if (field.fileTypes) { + arrType = field.fileTypes.split(',') + } + //this.$set(field, 'fileTypeArr', arrType) + field.fileTypeArr = arrType + }) + }) + console.log(JSON.parse(JSON.stringify(arr[0])), 'JSON.parse(JSON.stringify(arr[0]))') return JSON.parse(JSON.stringify(arr[0])) } return null }, + getUploaderImg(list) { + // this.imageList = list + if (list[0].url) { + this.$emit('getImageUrl', list[0].url) + } + }, change(busiField) { - console.log(busiField,'busiField busiField') + console.log(busiField, 'config_uploader change(busiField) busiField') this.fields.forEach(field => { if (field.busiField === busiField) { field.files.length = 0 - this.dataForm[busiField].forEach(file => field.files.push(file)) + this.dataForm[busiField].forEach(file => { + field.files.push(file) + } + ) + if (this.dataForm) { + this.dataForm.hasUploadFinsh = 100 + } } }) - }, - getUploaderImg(list){ - // this.imageList = list - if(list[0].url){ - this.$emit('getImageUrl',list[0].url) - } - + console.log(this.dataForm, 'config_uploader change(busiField)') + this.$emit('getImageUrl') } } } @@ -112,7 +174,8 @@ .config-uploader label { width: 260px !important; } - .zt .el-upload-list__item .el-progress{ - top:15px !important; + + .zt .el-upload-list__item .el-progress { + top: 15px !important; } </style> -- Gitblit v1.9.1