doum
12 小时以前 c261cb7ff2e4cfce233d02c6aca9e8f85e8ba1ba
admin/src/components/business/OperaInformationWindow.vue
@@ -7,48 +7,47 @@
    @confirm="confirm"
  >
    <el-form :model="form" ref="form" label-width="130px" label-suffix=":" :rules="rules" inline>
      <el-form-item label="资讯标题" prop="name">
        <el-input v-model="form.name" placeholder="请输入资讯标题" v-trim/>
      </el-form-item>
      <el-form-item label="资讯分类" prop="labelId">
        <el-select
          v-model="form.labelId"
          placeholder="请选择资讯分类"
          filterable
          clearable
        >
          <el-option v-for="item in labels" :key="item.id" :value="item.id" :label="item.name" />
        </el-select>
        <!-- <el-input v-model="form.labelId" placeholder="请输入选择" v-trim/> -->
      <el-form-item label="标题" prop="name">
        <el-input v-model="form.name" placeholder="请输入标题" v-trim/>
      </el-form-item>
      <el-form-item label="资讯封面图" prop="imgurlfull">
        <UploadAvatarImage
          :file="{ 'imgurlfull': form.imgurlfull, 'imgurl': form.imgurl }"
          @uploadSuccess="uploadAvatarSuccess"
          @uploadEnd="isUploading=false"
          @uploadBegin="isUploading = true"
            :file="{ 'imgurlfull': form.imgurlfull, 'imgurl': form.imgurl }"
            @uploadSuccess="uploadAvatarSuccess"
            :uploadData="{folder:'activity'}"
            @uploadEnd="isUploading=false"
            @uploadBegin="isUploading = true"
        />
      </el-form-item>
      <el-form-item label="关联店铺" prop="shopId">
      <el-form-item label="所属分类" prop="labelId">
        <el-select
          v-model="form.shopId"
          placeholder="请输入店铺名称,再选择"
          v-model="form.labelId"
          placeholder="请选择所属分类"
          filterable
          remote
          reserve-keyword
          :remote-method="remoteMethod"
          :loading="searchLoading"
          clearable
        >
          <el-option
            v-for="item in shops"
            :key="item.value"
            :label="item.label"
            :value="item.value">
          </el-option>
          <el-option v-for="item in labels()" :key="item.id" :value="item.id" :label="item.name" />
        </el-select>
      </el-form-item>
      <el-form-item label="详情" prop="content">
        <RichEditor :content="{ content : form.content}"  @edit="form.content=$event" />
      <el-form-item label="所属品牌" prop="brandId">
        <el-select
          v-model="form.brandId"
          placeholder="请选择所属品牌"
          filterable
          clearable
        >
          <el-option v-for="item in brands()" :key="item.id" :value="item.id" :label="item.name" />
        </el-select>
      </el-form-item>
      <el-form-item label="内容类型" prop="contentType" >
        <el-radio-group v-model="form.contentType">
          <el-radio :label="0" value="0">富文本</el-radio>
          <el-radio :label="1" value="1">外链</el-radio>
        </el-radio-group>
      </el-form-item>
      <el-form-item label="详情" prop="content" required>
        <el-input v-if="form.contentType == 1"  v-model="form.content" placeholder="请输入外链地址" v-trim/>
        <RichEditor v-else  :richData="form.content" :styleEditor="styleEditor" @getWangedditor="getWangedditor" :readonly="false"/>
      </el-form-item>
    </el-form>
  </GlobalWindow>
@@ -60,7 +59,7 @@
import RichEditor from '@/components/common/RichEditor'
import UploadAvatarImage from '@/components/common/UploadAvatarImage'
import { fetchList as shopList } from '@/api/business/shop'
import { fetchList as shopList } from '@/api/business/shop'
export default {
  name: 'OperaActivityWindow',
@@ -68,6 +67,7 @@
  components: { GlobalWindow, RichEditor, UploadAvatarImage },
  data () {
    return {
      styleEditor: 'border: 1px solid #ccc;display: inline-block;height:500px;',
      isUploading: false,
      searchLoading: false,
      shops: [],
@@ -78,29 +78,35 @@
        labelId: '',
        imgurlfull: null,
        imgurl: null,
        shopId: '',
        brandId: '',
        content: '',
        contentType: 0,
        type: 3 //资讯
      },
      labels: [
        { name: 'a', id: 1 },
        { name: 'b', id: 2 },
        { name: 'c', id: 3 },
      ],
      // 验证规则
      rules: {
        name: [
          { required: true, message: '请输入资讯标题', tigger: 'blur' }
          { required: true, message: '请输入标题', tigger: 'blur' }
        ],
        content: [
          { required: true, message: '请输入内容', tigger: 'blur' }
        ],
        contentType: [
          { required: true, message: '请选择内容类型' }
        ],
        labelId: [
          { required: true, message: '请选择资讯分类', tigger: 'change' }
          { required: true, message: '请选择所属分类' }
        ],
        brandId: [
          { required: true, message: '请选择所属品牌' }
        ],
        imgurlfull: [
          { required: true, message: '请上传资讯主图', tigger: 'change' }
          { required: true, message: '请上传资讯主图'  }
        ],
      }
    }
  },
  inject: ['labels', 'brands'],
  created () {
    this.config({
      api: '/business/activity',
@@ -113,24 +119,10 @@
      this.form.imgurl = file.imgurl;
      this.form.imgurlfull = file.imgurlfull;
    },
    remoteMethod(query) {
      if (query !== '') {
        this.searchLoading = true
        shopList({
          capacity: 999,
          model: {
            name: query
          }
        })
          .then(res => {
            this.shops = res.records
          })
          .finally(() => {
            this.searchLoading = false
          })
      }
    getWangedditor(val){
      this.form.content =val
    }
  },
  }
}
</script>