Newer
Older
smartwell_front / src / views / wellManage / responseAssign.vue
StephanieGitHub on 4 Jul 2019 4 KB first commit
<template>
  <el-dialog :visible.sync="dialogFormVisible" :title="titleText" width="330px" append-to-body>
    <el-scrollbar>
      <el-tree
        v-loading="loading"
        :props="defaultProps"
        :data="userTreeList"
        check-strictly
        node-key="id"
        @check-change="handleCheckChange"/>
    </el-scrollbar>
    <div slot="footer" class="dialog-footer">
      <el-button type="primary" @click="saveData">保存</el-button>
      <el-button @click="dialogFormVisible = false">取消</el-button>
    </div>
  </el-dialog>
</template>

<script>
import { toTreeList } from '@/utils/structure'
// import { getRoleTreeListByUser } from '@/api/role'
import { getDeptTreeList } from '@/api/dept'

export default {
  name: 'ResponseAssign',
  data() {
    return {
      userName: '', // 用户名称
      dialogFormVisible: false, // 对话框是否显示
      defaultProps: {
        label: 'name',
        children: 'children'
      },
      userTreeList: [
        {
          'id': '0',
          'name': 'A公司',
          'type': 'dept',
          'open': 'true',
          'children': [
            {
              'id': '0',
              'name': '张三',
              'type': 'staff',
              'open': 'true'
            },
            {
              'id': '0',
              'name': '李四',
              'type': 'staff',
              'open': 'true'
            },
            {
              'id': '0',
              'name': '一组',
              'open': 'true',
              'type': 'dept',
              'children': [
                {
                  'id': '0',
                  'name': '张三',
                  'type': 'staff',
                  'open': 'true'
                },
                {
                  'id': '0',
                  'name': '李四',
                  'open': 'true'
                },
                {
                  'id': '0',
                  'name': '王五',
                  'open': 'true'
                }
              ]
            }
          ]
        },
        {
          'id': '0',
          'name': 'B公司',
          'open': 'true',
          'children': [
            {
              'id': '0',
              'name': '张三',
              'open': 'true'
            },
            {
              'id': '0',
              'name': '李四',
              'open': 'true'
            },
            {
              'id': '0',
              'name': '王五',
              'open': 'true'
            },
            {
              'id': '0',
              'name': '一组',
              'open': 'true',
              'children': [
                {
                  'id': '0',
                  'name': '张三',
                  'open': 'true'
                },
                {
                  'id': '0',
                  'name': '李四',
                  'open': 'true'
                },
                {
                  'id': '0',
                  'name': '王五',
                  'open': 'true'
                }
              ]
            }
          ]
        }
      ], // 权属单位树列表数据
      defaultExpanded: [], // 默认展开的项
      defaultChecked: [], // 默认选中的树
      loading: false // 加载动态效果
    }
  },
  computed: {
    titleText: function() {
      return this.userName + ''
    }
  },
  mounted: function() {
    // this.fetchResourceData()
  },
  methods: {
    // 初始化对话框
    initDialog: function(dialogFormVisible, deptid) {
      this.loading = true
      this.dialogFormVisible = dialogFormVisible
      this.loading = false
      // this.fetchDeptTree()
    },
    // 获取权属单位列表
    fetchDeptTree: function(deptid) {
      getDeptTreeList(deptid).then(response => {
        if (response.data.list) {
          if (response.data.list.length > 0) {
            this.userTreeList = toTreeList(response.data.list)
            this.loading = false
          } else {
            this.$message.warning('请先选择井权属单位')
          }
        }
      })
    },
    // 保存数据
    saveData: function() {
      console.log('授权成功')
      this.$emit('watchChild')
    },
    handleCheckChange() {
      console.log('handleCheckChange')
    }
  }
}
</script>

<style rel="stylesheet/scss" lang="scss" scoped>

  .el-dialog{
    min-width:350px !important;
  }
  .el-tree{
    max-height:300px;
  }
  .el-select{
    width: 100%;
  }
</style>