jazzzone
2022-03-05 f2a2b4a4258cc1c88b897024bc5c49f31273c0ca
src/pages/system/banner.vue
@@ -19,7 +19,12 @@
      <el-table-column type="index" label="序号" align="center" width="60" />
      <el-table-column label="图片" prop="imgUrl" align="center" min-width="120">
        <template slot-scope="scope">
          <el-image :src="scope.row.imgUrl" style="width:80px;height:80px" fit="contain" :preview-src-list="[scope.row.imgUrl]" />
          <el-image :src="scope.row.imgUrl" style="width:80px;height:80px" fit="contain" :preview-src-list="[scope.row.imgUrl]">
            <div slot="error" class="image-slot">
              <!-- 图片显示失败图标 -->
              <img src="https://cube.elemecdn.com/e/fd/0fc7d20532fdaf769a25683617711png.png" style="width:80px;height:80px">
            </div>
          </el-image>
        </template>
      </el-table-column>
      <el-table-column prop="jumpType" label="跳转类型" align="center" min-width="120">
@@ -58,13 +63,17 @@
    />
    <!-- 新增&编辑 -->
    <el-dialog v-el-drag-dialog :title="dialogData.type=='add'?'新增轮播图':'编辑轮播图'" width="500px" :visible.sync="isShowDialog" append-to-body :before-close="hideDialog">
    <el-dialog v-el-drag-dialog :title="dialogData.type=='add'?'新增轮播图':'编辑轮播图'" width="500px" :visible.sync="isShowDialog" append-to-body :before-close="hideDialog" :close-on-click-modal="false">
      <el-form :ref="formName" :model="dialogData" label-width="120px" :rules="rules" size="small">
        <el-form-item label="排序号:" prop="orderNum">
          <el-input v-model="dialogData.orderNum" placeholder="请输入排序号" maxlength="10" />
        </el-form-item>
        <el-form-item ref="uploadFormItem" label="轮播图:" prop="uploadImgs">
          <!-- 上传图片组件(多图) -->
        <el-form-item ref="uploadFormItem" prop="uploadImgs">
          <span slot="label">
            <!-- 尺寸 -->
            轮播图:<br><span style="color: #999;font-size: 12px">(xxx*xxx像素)</span>
          </span>
          <!-- 上传图片组件(单图) -->
          <UploadSingleImg
            ref="refUploadImg"
            v-model="dialogData.uploadImgs"
@@ -93,6 +102,7 @@
            clearable
            placeholder="请选择小程序版本"
            class="com-edit-input"
            @change="handleJumpTypeChange"
          >
            <el-option v-for="item in envVersionOpt" :key="item.value" :label="item.label" :value="item.value" />
          </el-select>
@@ -133,6 +143,19 @@
      pageSize: 20,
      // 分页 ↑↑↑↑↑↑↑↑↑↑
      jumpTypeOpt: [
        { label: '不跳转', value: 0 },
        { label: '小程序页面', value: 1 },
        { label: 'H5页面', value: 2 },
        { label: '其它小程序', value: 3 }
      ],
      envVersionOpt: [
        { label: '开发版', value: 'develop' },
        { label: '体验版', value: 'trial' },
        { label: '正式版', value: 'release' }
      ],
      // 显示弹窗
      isShowDialog: false,
@@ -166,12 +189,6 @@
        uploadImgs: []
      }
    }
  },
  computed: {
    // 上传禁用
    uploadDisabled() {
      return this.dialogData.uploadImgs.length > 0
    }
  },
  mounted() {
@@ -247,6 +264,15 @@
    handleEdit(item) {
      this.showDialog('edit', item)
    },
    // 跳转类型为【不跳转】时,清空其余跳转字段
    handleJumpTypeChange() {
      if (this.dialogData.jumpType === 0) {
        this.dialogData.jumpUrl = ''
        this.dialogData.jumpMpId = ''
        this.dialogData.envVersion = ''
        this.dialogData.extraData = ''
      }
    },
    // 显示弹框
    showDialog(type, item) {
      let dialogData = {}
@@ -315,7 +341,7 @@
      }, inf => {
        this.$messageSuc('保存成功')
        this.hideDialog()
        this.getList()
        type === 'add' ? this.reGetList() : this.getList()
      })
    }
  }