Browse Source

32 摄影师支持多张照片同时上传

loki 3 năm trước cách đây
mục cha
commit
8699d1d6e9

+ 21 - 11
src/components/MultUpload.vue

@@ -78,6 +78,10 @@ export default {
     api: {
       type: Function,
       default: () => {}
+    },
+    error: {
+      type: String,
+      default: null
     }
   },
   data() {
@@ -129,6 +133,10 @@ export default {
       this.imgList.push(fileList);
     },
     submitUpload() {
+      if (this.error) {
+        this.$error(this.error);
+        return false;
+      }
       if (this.imgList.length == 0) {
         this.$error('未选择图片,请先选择图片');
         return false;
@@ -144,19 +152,21 @@ export default {
         form.append('file', file.raw);
       });
 
-      this.api(form).then(({ success }) => {
-        if (success) {
-          this.mark = false;
-          this.$emit('finish');
-        } else {
+      this.api(form)
+        .then(({ success }) => {
+          if (success) {
+            this.mark = false;
+            this.$emit('finish');
+          } else {
+            this.$error('上传失败,请稍后重试...');
+            this.mark = false;
+          }
+        })
+        .catch(err => {
+          console.error(err);
           this.$error('上传失败,请稍后重试...');
           this.mark = false;
-        }
-      }).catch(err => {
-        console.error(err);
-        this.$error('上传失败,请稍后重试...');
-        this.mark = false;
-      });
+        });
     },
     handlePictureCardPreview(file) {
       this.dialogImageUrl = file.url;

+ 1 - 0
src/containers/sceneSelect/SceneSelect.vue

@@ -4,6 +4,7 @@
     placeholder="请选择"
     filterable
     clearable
+    v-bind="$attrs"
     @change="onChange"
   >
     <el-option

+ 3 - 3
src/views/photographerManagement/photoVerify/index.vue

@@ -3,14 +3,14 @@
     <toolbar @on-filter="filterData" @on-reset="filterData" />
 
     <div class="m-10 bg-w p-20 br-10">
-      <el-button type="primary" icon="el-icon-plus" @click="$PhotoUploadModal()"
+      <!-- <el-button type="primary" icon="el-icon-plus" @click="$PhotoUploadModal()"
         >新增</el-button
-      >
+      > -->
       <el-button
         type="primary"
         icon="el-icon-plus"
         @click="$PhotoMultUploadModal()"
-        >批量新增</el-button
+        >批量上传照片</el-button
       >
 
       <base-table

+ 28 - 18
src/views/photographerManagement/photoVerify/modal/MultItemModal.vue

@@ -11,24 +11,24 @@
     "
   >
     <el-form ref="form" :model="form" :rules="rules" label-width="100px">
-      <el-steps class="mrow-40 pb-40" :space="200" :active="step">
+      <!-- <el-steps class="mrow-40 pb-40" :space="200" :active="step">
         <el-step title="关联信息"></el-step>
         <el-step title="批量上传"></el-step>
-      </el-steps>
+      </el-steps> -->
 
-      <div v-if="step === 0">
-        <el-form-item label="关联场景" prop="kindergartenId">
-          <SceneSelect v-model="form.kindergartenId" />
-        </el-form-item>
-        <el-form-item label="关联活动">
-          <ActivitySelect
-            v-model="form.activityId"
-            :kindergartenId="form.kindergartenId"
-            :firstLoad="false"
-            :disabled="form.kindergartenId === null"
-          />
-        </el-form-item>
-        <div class="f-fe-fs" :style="{ width: '50%' }">
+      <!-- <div v-if="step === 0"> -->
+      <el-form-item label="关联场景" prop="kindergartenId">
+        <SceneSelect v-model="form.kindergartenId" :clearable="false" />
+      </el-form-item>
+      <el-form-item label="关联活动">
+        <ActivitySelect
+          v-model="form.activityId"
+          :kindergartenId="form.kindergartenId"
+          :firstLoad="false"
+          :disabled="form.kindergartenId === null"
+        />
+      </el-form-item>
+      <!-- <div class="f-fe-fs" :style="{ width: '50%' }">
           <el-button
             type="primary"
             round
@@ -36,13 +36,14 @@
             @click="step++"
             >下一步</el-button
           >
-        </div>
-      </div>
-      <el-form-item v-show="step === 1" label="图片" prop="urls" required>
+        </div> -->
+      <!-- </div> -->
+      <el-form-item label="图片" prop="urls" required>
         <mult-upload
           v-model="form.urls"
           :api="multUpload"
           :limit="999"
+          :error="errorMsg"
           :paramsData="uploadParams"
           @finish="handleFinish"
         />
@@ -93,6 +94,15 @@ export default {
     uploadParams() {
       const { kindergartenId, activityId } = this.form;
       return { kindergartenId, activityId };
+    },
+
+    errorMsg() {
+      const { kindergartenId } = this.form;
+      if (kindergartenId) {
+        return null;
+      } else {
+        return '请先选择关联场景';
+      }
     }
   },