<template>
  <div style="width:100%;height:40vh;padding:0px 23px; z-index:10;background: rgba(0, 9, 34, 0.6);">
    <el-form ref="form" size="mini" :model="addForm" :rules="rules" label-width="140px">
      <el-form-item label="姓名: " prop="Name">
        <el-input v-model="addForm.Name" style="width:300px ;"></el-input>
      </el-form-item>
      <el-form-item label="性别: " prop="Sex">
        <el-radio-group v-model="addForm.Sex">
          <el-radio label="男">男</el-radio>
          <el-radio label="女">女</el-radio>
        </el-radio-group>
      </el-form-item>
      <el-form-item :label="'所属自然村'">
        <!-- <treeselect :options="orgsTree" :default-expand-level="3" :multiple="true" :flat="true" :open-on-click="true"
          :open-on-focus="true" :clear-on-select="true" v-model="selectOrgs" style="z-index: 2026;">
        </treeselect> -->
        <treeselect :options="orgsTree" :default-expand-level="3" :multiple="true" :flat="true" :open-on-click="true"
        :open-on-focus="true" :clear-on-select="true" v-model="selectOrgs" style="z-index: 2026;">
      </treeselect>
      </el-form-item>
      <el-form-item style="margin-top: 16%;">
        <el-button @click="close()">取消</el-button>
        <el-button type="primary" @click="submitForm('form')" v-if="detailInfo.length == 0">保存</el-button>
        <el-button type="primary" @click="createForm('form')" v-else>编辑</el-button>
      </el-form-item>
    </el-form>
  </div>
</template>
<script>
  import { listToTreeSelect } from '@/utils'
  import Treeselect from '@riophae/vue-treeselect'
  import '@riophae/vue-treeselect/dist/vue-treeselect.css'
  import { postMethodCommon, getMethodCommon } from '../../../../api/common';
  import { validateMobile, validID, validateStock } from './validate.js'
  import form from '../../../../store/modules/form';
  let BASE_IMAGE_URL = process.env.VUE_APP_BASE_IMG_URL;
  // let BASE_IMAGE_URL = BASE_IMAGE_API_URL;
  export default {
    name: "AddForm",
    props: ['detailInfo'],
    components: {
      Treeselect,
    },
    data() {
      return {
        BASE_IMAGE_URL: BASE_IMAGE_URL,
        addForm: {
          gender: "男"
        },
        rules: {
          name: [
            { required: true, message: '姓名不能为空', trigger: 'blur' },
          ],
          phone: [
            { required: true, message: '电话不能为空', trigger: 'blur' },
            { validator: validateMobile.bind(this), trigger: 'blur' }
          ],
          gender: [
            { required: true, message: '性别不能为空', trigger: 'blur' },
          ],
        },
        dialogFormVisible: false,
        orgsTree: [], // 用户可访问到的所有机构组成的树
        selectRoles: [], // 用户分配的角色
        selectRoleNames: '',
      }
    },
    created() {
      console.log(this.detailInfo)
      if (this.detailInfo.length == 1) {
        this.getDetail()
      } else {
        this.addForm = {
          gender: "男"
        }
      }
    },
    computed: {
      selectOrgs: {
        get: function () {
          console.log(this.detailInfo)
          if (this.detailInfo.length == 1) {
            return this.addForm.areaId
          } else {
            return []
          }
        },
        set: function (v) {
          console.log('set org:', v)
          var _this = this
          _this.addForm.areaId = v
        }
      }
    },
    mounted() {
      let _this = this;
      var querys = {
        regionName: localStorage.getItem("areaENName")
      }
      getMethodCommon("/Grid/LoadAllGrid", querys).then(res => {
        console.log("data", res.data);
        if (res.code == 200) {
          var list = res.data
          var arr = this.traverse(list)
          console.log(arr)
          _this.orgsTree = arr;
        }
      })
    },
    methods: {
     
      getDetail() {
        getMethodCommon("/FireCodeApp/GetForestryUserById?id=" + this.detailInfo[0].Id, {}).then(res => {
          if (res.code == 200) {
            this.addForm = res.data[0]
            if(this.addForm.areaId){
              var areaId = this.addForm.areaId.split(',')
              this.addForm.areaId = turnNum(areaId)
            }
            var turnNum = function (nums) {
              return nums.map(Number);
            }
            if (this.addForm.Sex == 0) {
              this.addForm.Sex = '男'
            } else {
              this.addForm.Sex = '女'
            }
          }
        })
      },
      traverse(arr) {
        if (arr && arr.length > 0) {
          var list = []
          arr.forEach(childelement => {
            list.push({
              id: childelement.id,
              label: childelement.areaName,
              parentId: childelement.pId || null,
              children: this.traverse(childelement.child)
            })
          });
          return list
        }
      },
      submitForm() {
        var _this = this
        this.$refs['form'].validate((valid) => {
          if (valid) {
            console.log(_this.addForm)
            if (this.addForm.Sex == '男') {
              this.addForm.Sex = 0
            } else {
              this.addForm.Sex = 1
            }
            postMethodCommon("/FireCodeApp/AddFireFighter", _this.addForm).then(response => {
              if (response.code == 200) {
                // 上传shp
                this.$emit("addSuccess");
                this.$message({
                  type: "success",
                  message: "添加成功"
                })
              }
            })
          } else {
            console.log('error submit!!');
            return false;
          }
        });
      },
      createForm() {
        var _this = this
        this.$refs['form'].validate((valid) => {
          if (valid) {
            console.log(_this.addForm)
            if (this.addForm.Sex == '男') {
              this.addForm.Sex = 0
            } else {
              this.addForm.Sex = 1
            }

            // delete this.addForm.zrclist
            postMethodCommon("/FireCodeApp/EditForestryUser ", _this.addForm).then(response => {
              if (response.code == 200) {
                // 上传shp
                this.$emit("addSuccess");
                this.$message({
                  type: "success",
                  message: "编辑成功"
                })
              }
            })
          } else {
            console.log('error submit!!');
            return false;
          }
        });
      },
      close() {
        this.$emit("close");
      }
    }
  }
</script>
<style scoped>
  ::v-deep .vue-treeselect__control {
    background: rgba(0, 9, 34, 0.6);
  }

  ::v-deep .el-form-item__label {
    color: #fff;
  }

  ::v-deep .el-radio {
    color: #fff;

  }

  .service-type-btn {
    width: 100%;
    height: 180px;
    text-align: center;
    margin-top: 100px;
  }
</style>