<template>
  <div class="content">
    <div class="topSearch">
      <div class="left">
        <Input style="width:280px" search enter-button placeholder="" @on-search='onSearch'/>
      </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 '@/view/components/scene/table.vue'
import Forms from '@/view/components/scene/form.vue'
import draggableList from '@/view/common/draggable.vue'
import {
  getScenes,
  delScenes,
  editScenes
} from '@/api/scenes'
export default {
  name: 'categories',
  components: {
    Stable,
    Forms,
    draggableList
  },
  data () {
    return {
      selectList: [],
      visible: false,
      draggableVisible: false,
      row: {},
      data: []
    }
  },
  methods: {
    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) {
      editScenes(list).then((res) => {
        if (res.code === 200 && res.data.length > 0) {
          this.$Message.success('操作成功')
          this.draggableVisible = false
          this.search()
        }
      })
    },
    del () {
      delScenes(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) {
      getScenes(p).then((res) => {
        this.data = res.data
      })
    }
  },
  mounted () {
    this.search({})
  }
}
</script>

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