MultItemModal.vue 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. <template>
  2. <el-dialog
  3. :title="title"
  4. :visible.sync="modal"
  5. :close-on-click-modal="false"
  6. width="960px"
  7. @close="
  8. res => {
  9. $emit('cancel');
  10. }
  11. "
  12. >
  13. <el-form ref="form" :model="form" :rules="rules" label-width="100px">
  14. <el-steps class="mrow-40 pb-40" :space="200" :active="step">
  15. <el-step title="关联信息"></el-step>
  16. <el-step title="批量上传"></el-step>
  17. </el-steps>
  18. <div v-if="step === 0">
  19. <el-form-item label="关联场景" prop="kindergartenId">
  20. <SceneSelect v-model="form.kindergartenId" />
  21. </el-form-item>
  22. <el-form-item label="关联活动">
  23. <ActivitySelect
  24. v-model="form.activityId"
  25. :kindergartenId="form.kindergartenId"
  26. :firstLoad="false"
  27. :disabled="form.kindergartenId === null"
  28. />
  29. </el-form-item>
  30. <div class="f-fe-fs" :style="{ width: '50%' }">
  31. <el-button
  32. type="primary"
  33. round
  34. :disabled="!form.kindergartenId"
  35. @click="step++"
  36. >下一步</el-button
  37. >
  38. </div>
  39. </div>
  40. <el-form-item v-show="step === 1" label="图片" prop="urls" required>
  41. <mult-upload
  42. v-model="form.urls"
  43. :api="multUpload"
  44. :limit="999"
  45. :paramsData="uploadParams"
  46. @finish="handleFinish"
  47. />
  48. </el-form-item>
  49. </el-form>
  50. </el-dialog>
  51. </template>
  52. <script>
  53. import { saveItem, multUpload } from '@/api/photoWarehouse';
  54. export default {
  55. name: 'PhotoUploadModal',
  56. data() {
  57. return {
  58. title: '上传图片',
  59. modal: true,
  60. multUpload: multUpload,
  61. form: {
  62. kindergartenId: null,
  63. activityId: '',
  64. urls: []
  65. },
  66. rules: {
  67. kindergartenId: [
  68. { required: true, message: '请选择关联场景', trigger: 'blur' }
  69. ],
  70. urls: [{ required: true, message: '请上传图片', trigger: 'change' }]
  71. },
  72. step: 0
  73. };
  74. },
  75. watch: {
  76. 'form.activityId': {
  77. handler(str) {
  78. if (str) {
  79. this.step = 1;
  80. }
  81. },
  82. immediate: true
  83. }
  84. },
  85. computed: {
  86. uploadParams() {
  87. const { kindergartenId, activityId } = this.form;
  88. return { kindergartenId, activityId };
  89. }
  90. },
  91. watch: {
  92. 'form.kindergartenId': {
  93. handler(val) {
  94. this.form.activityId = '';
  95. },
  96. immediate: true
  97. }
  98. },
  99. mounted() {},
  100. methods: {
  101. handleFinish() {
  102. this.$success('保存成功!');
  103. this.modal = false;
  104. this.$g_emit('photo_reload');
  105. }
  106. }
  107. };
  108. </script>
  109. <style lang="scss" scoped></style>