<template>
  <div class="content">
    <div class="topSearch">
      <div class="left">
        <Input style="width:280px" search enter-button placeholder="" @on-search='onSearch'/>
         <span class="lable">
              栏目
            </span>
             <Select clearable  v-model="seleted" style="width:80px" @on-change='selectChange'>
              <Option
                v-for="item in $store.state.app.categoryObj.categories"
                :value="item.id"
                :key="item.id"
                >{{ item.name }}</Option
              >
            </Select>
      </div>
      <div class="right">
        <Button class='success-btn' type="success" @click="seq">排序</Button>
        <Button @click="add" type="primary">新增</Button>
        <Button type="error" @click="del">删除</Button>
      </div>
    </div>
     <Stable :data='data' @edit='edit' @select='select'/>
     <Forms :visible.sync="visible" :search='search' :row='row'/>
      <draggableList :visible.sync="draggableVisible" :list='data' @ok='ok'/>
  </div>
</template>

<script>
import Stable from './table.vue'
import Forms from './form.vue'
import draggableList from '@/view/common/draggable.vue'
import {
  getCourses,
  delCourses,
  editCourses
} from '@/api/courses'
export default {
  name: 'categories',
  components: {
    Stable,
    Forms,
    draggableList
  },
  data () {
    return {
      seleted: null,
      selectList: [],
      visible: false,
      draggableVisible: false,
      row: {},
      data: []
    }
  },
  methods: {
    selectChange (p) {
      console.log(p)
      this.search({
        category: p
      })
    },
    edit (row) {
      this.visible = true
      this.row = row
    },
    add () {
      this.visible = true
      this.row = {
        id: 'add'
      }
    },
    select (val) {
      this.selectList = val
    },
    seq () {
      this.draggableVisible = true
    },
    ok (list) {
      editCourses(list).then((res) => {
        if (res.code === 200 && res.data.length > 0) {
          this.$Message.success('操作成功')
          this.draggableVisible = false
          this.search()
        }
      })
    },
    del () {
      delCourses(this.selectList).then((res) => {
        if (res.code === 200) {
          this.$Message.success('删除成功')
          this.search()
        } else {
          this.$Message.error('删除失败')
        }
      })
    },
    onSearch (p) {
      this.search({
        keyword: p
      })
    },
    search (p) {
      getCourses(p).then((res) => {
        this.data = res.data
      })
    }
  },
  activated: function () {
    let id = this.$route.query.row && this.$route.query.row.id
    this.seleted = id
    let parmas = {
      category: id
    }
    if (parmas) {
      this.search(parmas)
    } else {
      this.search({})
    }
  },
  mounted () {
  }
}
</script>

<style lang="less"></style>
