<template>
  <div class="subPage">
    <form class="mainForm">
      <ul>
        <li class="flex-h">
          <span>跳转类型：</span>
          <div class="flex-item">
            <div style="width:50%" class="radio">
                <el-radio v-model="postData.ForwardType" label='1' >链接</el-radio>
                <el-radio v-model="postData.ForwardType" label='0' >课程</el-radio>
            </div>
          </div>
        </li>
        <li class="flex-h" v-if="postData.ForwardType==='1'">
          <span>链接：</span>
          <div class="flex-item">
            <div style="width:50%">
              <el-input
                placeholder="请输入链接"
                v-model="postData.ForwardUrl"
                clearable>
              </el-input>
            </div>
          </div>
        </li>
        <li class="flex-h" v-else>
          <span>课程：</span>
          <div class="flex-item">
            <div style="width:50%">
              <el-select v-model="postData.ForwardResourceId" placeholder="请选择课程">
                <el-option
                  v-for="item in courses.list"
                  :key="item.CourseId"
                  :label="item.CourseName"
                  :value="item.CourseId">
                </el-option>
              </el-select>
            </div>
          </div>
        </li>
        <li class="flex-h">
          <span>是否发布：</span>
          <div class="flex-item">
            <div style="width:50%" class="radio">
              <el-radio v-model="postData.Status" label='1' >是</el-radio>
              <el-radio v-model="postData.Status" label='0' >否</el-radio>
            </div>
          </div>
        </li>
        <li class="flex-h">
          <span>图片位置：</span>
          <div class="flex-item">
            <div style="width:50%">
              <el-select v-model="postData.LocationId" placeholder="请选择">
                <el-option
                  v-for="item in positionList"
                  :key="item.LocationId"
                  :label="item.LocationName"
                  :value="item.LocationId">
                </el-option>
              </el-select>
            </div>
          </div>
        </li>
        <li class="flex-h">
          <span>标题：</span>
          <div class="flex-item">
            <div style="width:50%">
              <el-input
                placeholder="请输入标题"
                v-model="postData.Title"
                clearable>
              </el-input>
            </div>
          </div>
        </li>
        <li class="flex-h">
          <span>图片：</span>
          <div class="flex-item">
            <el-upload
              :action="$api.file.image.url"
              :limit='limit'
              list-type="picture-card"
              :file-list='imgsArr'
              :on-success="handlePictureCardPreview"
              :on-remove="handleRemove"
              :on-exceed="exceed">
              <i class="el-icon-plus"></i>
            </el-upload>
            <el-dialog :visible.sync="dialogVisible">
              <img width="100%" :src="imgs" alt="">
            </el-dialog>
          </div>
        </li>
        <!-- <li class="flex-h">
          <span>对应案场：</span>
          <div class="flex-item">
            <div style="width:50%">
              <el-select v-model="postData.CaseId" placeholder="请选择">
                <el-option
                  v-for="item in caseList"
                  :key="item.CaseId"
                  :label="item.CaseName"
                  :value="item.CaseId">
                </el-option>
              </el-select>
            </div>
          </div>
        </li> -->
        <li style="text-align:center">
          <el-button type="primary" size="mini" @click="submit">保存</el-button>
          <el-button type="danger" size="mini" @click="cancel">取消</el-button>
        </li>
      </ul>
    </form>
  </div>
</template>

<script>
import { mapState, createNamespacedHelpers, mapActions } from 'vuex'

const { mapActions: mapCmsActions } = createNamespacedHelpers('cms')
const { mapState: mapCourseState, mapActions: mapCourseActions } = createNamespacedHelpers('course')

export default {
  name: '',
  data () {
    return {
      postData: {
        ForwardType: '1',
        ForwardUrl: '',
        ForwardResourceId: '',
        Status: '1',
        LocationId: '',
        ImageUrl: '',
        Title: '',
        OrgId: '',
        CaseId: '',
      },
      dialogVisible: false,
      imgs: '',
      imgsArr: [],
      limit: 1
    }
  },
  components: {},
  created () {
    this.GetCourseList({page: 1, pagesize: 100})
    this.updateLocationInfo()
    this.updateSystemInfo().then(() => {
      this.postData.CaseId = this.defaultCaseId
    })
  },
  computed: {
    ...mapState({
      positionList: x => x.cms.location,
      OrgId: x => x.app.user.OrgId,
      defaultCaseId: x => x.app.cases.default,
      caseList: x => x.app.cases.list
    }),
    ...mapCourseState({
      courses: x => x.courseList,
    })
  },
  methods: {
    ...mapCourseActions([
      'GetCourseList',
    ]),
    ...mapCmsActions(['updateLocationInfo']),
    ...mapActions(['updateSystemInfo']),
    submit () {
      if (this.postData.ForwardType === '1') {
        this.postData.ForwardResourceId = ''
        if (this.postData.ForwardUrl === '') {
          this.$message({
            message: '链接地址不能为空',
            type: 'error',
          })
          return false
        } else {
          var reg = /^([hH][tT]{2}[pP]:\/\/|[hH][tT]{2}[pP][sS]:\/\/)(([A-Za-z0-9-~]+)\.)+([A-Za-z0-9-~\/])+$/  // eslint-disable-line
          if (!reg.test(this.postData.ForwardUrl)) {
            this.$message({
              message: '链接地址格式不正确',
              type: 'error',
            })
            return false
          }
        }
      } else {
        this.postData.ForwardUrl = ''
      }
      this.postData.OrgId = this.OrgId
      this.postData.ForwardType === '1' ? this.postData.ForwardType = 'url' : this.postData.ForwardType = 'course'
      this.postData.ImageUrl = ''
      for (let i = 0; i < this.imgsArr.length; i++) {
        this.postData.ImageUrl += this.imgsArr[i].response.result.url + ','
      }
      if (this.postData.ImageUrl) {
        this.postData.ImageUrl = this.postData.ImageUrl.substr(0, this.postData.ImageUrl.length - 1)
      }
      this.$ajax(this.$api.cms.addImage.url, {
        method: this.$api.cms.addImage.method,
        data: this.postData
      }).then(res => {
        this.$message({
          message: '添加成功',
          type: 'success',
          duration: 1000
        })
        setTimeout(() => {
          this.$router.push({ name: 'bannerManager' })
        }, 1000)
      }).catch(msg => {

      })
    },
    cancel () {
      this.$router.go(-1)
    },
    handlePictureCardPreview (res, file, fileList) {
      this.imgs = res.result.url
      this.dialogVisible = false
      this.imgsArr = fileList
    },
    handleRemove (file, fileList) {
      this.imgsArr = fileList
    },
    exceed () {
      this.$message({
        message: '超过可传的图片上限',
        type: 'info',
        duration: 1000
      })
    }
  }
}
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style lang="scss" scoped>
</style>
