<template>
  <div style="padding: 0px 100px;" class="flex">
    <div class="btn-group auto">
      <button type="button" class="btn btn-primary" @click="removeData(ids)">批量删除</button>
      <button type="button" class="btn btn-primary" @click="add('add-role')">添加角色</button>
      <button type="button" class="btn btn-primary">移动资源</button>
    </div></br>
    <span>{{data.name}}</span></br>
    <div class="span">
      <data-grid :model='model'>
        <template partial='head'>
          <tr>
            <th colspan="5">角色用户管理</th>
          </tr>
          <tr>
            <th>全选<input type="checkbox" class="all-checked" v-model="checked" @click="$parent.$parent.isAll(checked)"></th>
            <!-- <th><input type="checkbox"  v-model="$parent.$parent.ids" :value="$parent.model.data"></th> -->
            <th></th>
            <th>资源名称</th>
            <th>修改</th>
            <th>删除</th>
          </tr>
        </template>
        <template partial='body'>
          <td><input type="checkbox"  v-model="$parent.$parent.ids" :value="row"></td>
          <td><img :src="$parent.$parent.imgsrc(row.f_icon)" alt=""></td>
          <td>{{row.name}}</td>
          <td><span class="glyphicon glyphicon-edit" @click="$parent.$parent.add('add-role', row)"></span></td>
          <td><span class="glyphicon glyphicon-remove" @click="$parent.$parent.removeData([row])"></span></td>
        </template>
      </data-grid>
    </div>
  </div>
</template>

<script>
import co from 'co'
import * as Util from '../Util'
import {HttpResetClass} from "vue-client";
let gen = function * (self) {
  //self.model = yield self.$post('rs/search', {source: `tool.getChildren($${self.data.id}$)`, userid: self.userid},{resolveMsg: null, rejectMsg: null})
  self.model = yield new HttpResetClass().load('POST', 'rs/search',{source: `tool.getChildren($${self.data.id}$).where(true)`, userid: self.userid})
  // console.log(self.model)
}
let deleteData = function * (self,data) {
  //yield self.$post('rs/data/delete', {data: data},{resolveMsg:null, rejectMsg:null})
  yield new HttpResetClass().load('POST', 'rs/data/delete', {data: data}).then(function(res) {
    self.$showMessage(res.bodyText)
    self.refresh()
  });
}

export default {
  title: '角色',
  props: ['data', 'userid'],
  ready() {
    this.$parent.setTitle(this.data.name)
    this.refresh()
  },
  data () {
    return {
      ids: [], // 处理全选和部分选择使用
      model: ''
    }
  },
  // watch: {
  //   'allCheck' () {
  //     if (this.allCheck) {
  //       this.ids = Object.assign({}, {}, this.model.data)
  //     }else {
  //       this.ids = []
  //     }
  //   }
  // },
  methods: {
    // 刷新数据
    refresh () {
      let g = gen(this)
      co(g)
    },
    add(name, data) {
      console.log(name)
      let parent = this.data
      let del = delete parent.children
      console.log(JSON.stringify(del))
      this.$goto(name, {parent:parent, data: data}, 'self', this.isRefresh)
    },
    isAll (checked) {
      this.ids = []
      if (!checked) {
        this.model.data.forEach((row) => {
          this.ids.push(row)
        })
      }
    },
    imgsrc (name) {
      return Util.getImgsrc(name)
    },
    removeData (data) {
      let d = deleteData(this,data)
      co(d)
    },
    isRefresh (param) {
      if (param === 'refresh') {
        this.refresh()
      }
    }
  }
}
</script>
<style>
  .all-checked {
    vertical-align: text-top;
    margin-left: 10px !important;
  }
  td > .glyphicon {
    cursor: pointer;
  }
  th > input[type="checkbox"], td > input[type="checkbox"] {
    cursor: pointer;
  }
</style>
