MultItemModal.vue 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. <template>
  2. <el-dialog
  3. :title="title"
  4. :visible.sync="modal"
  5. width="500px"
  6. :close-on-click-modal="false"
  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="关联活动" prop="activityId">
  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>
  31. <el-form-item v-show="step === 1" label="图片" prop="urls" required>
  32. <mult-upload
  33. v-model="form.urls"
  34. :api="multUpload"
  35. :limit="999"
  36. :paramsData="uploadParams"
  37. @finish="handleFinish"
  38. />
  39. </el-form-item>
  40. </el-form>
  41. </el-dialog>
  42. </template>
  43. <script>
  44. import { saveItem, multUpload } from '@/api/photoWarehouse';
  45. export default {
  46. name: 'PhotoUploadModal',
  47. data() {
  48. return {
  49. title: '上传图片',
  50. modal: true,
  51. multUpload: multUpload,
  52. // step: 0,
  53. form: {
  54. urls: [],
  55. kindergartenId: '',
  56. activityId: ''
  57. },
  58. rules: {
  59. urls: [{ required: true, message: '请上传图片', trigger: 'change' }],
  60. kindergartenId: [
  61. { required: true, message: '请选择关联场景', trigger: 'blur' }
  62. ],
  63. activityId: [
  64. { required: true, message: '请选择关联活动', trigger: 'blur' }
  65. ]
  66. }
  67. };
  68. },
  69. computed: {
  70. step() {
  71. const { kindergartenId, activityId } = this.form;
  72. let result = 1;
  73. if (!kindergartenId || !activityId) {
  74. result = 0;
  75. }
  76. return result;
  77. },
  78. uploadParams() {
  79. const { kindergartenId, activityId } = this.form;
  80. return { kindergartenId, activityId };
  81. }
  82. },
  83. watch: {
  84. 'form.kindergartenId': {
  85. handler(val) {
  86. this.form.activityId = '';
  87. },
  88. immediate: true
  89. }
  90. },
  91. mounted() {},
  92. methods: {
  93. handleFinish() {
  94. this.$success('保存成功!');
  95. this.modal = false;
  96. this.$g_emit('photo_reload');
  97. }
  98. }
  99. };
  100. </script>
  101. <style lang="scss" scoped></style>