<template>
  <div class="add-manager-wrap">
    <bread-crumb :curmbFirst="curmbFirst" :curmbSecond="curmbSecond"></bread-crumb>
    <div class="add-content screenSet" id="screenSet">
      <el-row class="step-content">
        <el-col :span="14">
          <el-steps :active="active" simple class>
            <span class="step-num" v-bind:class="{ 'on-step': stepData[0] }">1</span>
            <el-step title="基础信息"></el-step>
            <span class="step-num" v-bind:class="{ 'on-step': stepData[1] }">2</span>
            <el-step title="选择范围">2</el-step>
            <span class="step-num" v-bind:class="{ 'on-step': stepData[2] }">3</span>
            <el-step title="选择项目组件">3</el-step>
          </el-steps>
        </el-col>
        <el-col :span="5" :offset="5">
          <el-button v-if="showStorage" size="small" @click="storage">暂存</el-button>
          <el-button v-if="active<2" size="small" type="primary" @click="nextStep">下一步</el-button>
          <el-button v-if="active>=2" size="small" type="primary" @click="complete">完成</el-button>
        </el-col>
      </el-row>
      <div class="first-step" v-if="active === 0">
        <el-form
          ref="formData"
          :model="formData"
          :rules="rules"
          label-width="150px"
          class="basic-form"
        >
          <el-form-item label="项目名称：" prop="projectName">
            <el-col :span="13">
              <el-input
                size="small"
                v-model="formData.projectName"
                placeholder="请输入项目名称"
                style="width:83%;"
                :disabled="peopleLevel == 'L3'"
              ></el-input>
              <span class="word-num">{{(formData.projectName).replace(/\s+/g,"").length}}/20</span>
            </el-col>
          </el-form-item>
          <el-form-item label="项目时间：" required>
            <el-col :span="5">
              <el-form-item prop="projectBegintime">
                <el-date-picker
                  v-model="formData.projectBegintime"
                  size="small"
                  type="datetime"
                  placeholder="请选择开始时间"
                  value-format="yyyy-MM-dd HH:mm:ss"
                  :picker-options="pickerOptions0"
                  style="width: 100%;"
                  :disabled="peopleLevel == 'L3'"
                ></el-date-picker>
              </el-form-item>
            </el-col>
            <el-col class="line" :span="1">~</el-col>
            <el-col :span="5">
              <el-form-item label prop="projectEndtime">
                <el-date-picker
                  v-model="formData.projectEndtime"
                  size="small"
                  type="datetime"
                  placeholder="请选择结束时间"
                  value-format="yyyy-MM-dd HH:mm:ss"
                  :picker-options="pickerOptions1"
                  default-time="23:59:59"
                  style="width: 100%;"
                  :disabled="peopleLevel == 'L3'"
                ></el-date-picker>
              </el-form-item>
            </el-col>
          </el-form-item>
          <el-form-item label="项目简介：" prop="projectIntro">
            <el-col :span="13">
              <el-input
                size="small"
                type="textarea"
                :autosize="{ minRows: 5}"
                placeholder="请输入项目简介"
                v-model="formData.projectIntro"
                style="width:83%;"
                :disabled="peopleLevel == 'L3'"
              ></el-input>
              <span class="word-num">{{(formData.projectIntro).replace(/\s+/g,"").length}}/150</span>
            </el-col>
          </el-form-item>
          <div class="basic-item-icon">
            <span class="require">*</span>
            <el-form-item label="列表图片：">
              <el-upload
                v-model="formData.attachmentUrl1"
                class="bg-uploader"
                action="#"
                :show-file-list="false"
                :before-upload="beforeUploadListPic"
                :disabled="peopleLevel == 'L3'"
              >
                <img v-if="formData.attachmentUrl1" @mouseover.stop="imgMouseOver=true && peopleLevel != 'L3'" :src="formData.attachmentUrl1" class="bg-img">
                <img
                  v-if="!formData.attachmentUrl1"
                  class="bg-img"
                  src="../../assets/image/small.png"
                >
                <div class="img-delete" v-show="imgMouseOver" @click.stop="deleteImg(1)" @mouseout.stop="imgMouseOver=false"><i class="el-icon-delete"></i></div>
                <div class="limit-text">
                  <p>尺寸:230*172</p>
                  <p>限制大小: 500Kb</p>
                  <p>支持.jpg,.png格式</p>
                </div>
              </el-upload>
            </el-form-item>
            <p class="upload-message" v-if="uploadImgMessage">请选择列表图片</p>
          </div>
          <el-form-item label="封面类型：">
            <el-radio-group
              size="small"
              v-model="formData.type"
              @change="changeCover"
              :disabled="peopleLevel == 'L3'"
            >
              <el-radio :label="1">图片</el-radio>
              <el-radio :label="2">视频</el-radio>
            </el-radio-group>
          </el-form-item>
          <div class="basic-item-icon">
            <span class="require">*</span>
            <el-form-item label="封面文件：">
              <el-upload
                v-model="formData.attachmentUrl2"
                class="bg-uploader"
                action="#"
                :show-file-list="false"
                :before-upload="beforeUploadCoverPic"
                :disabled="peopleLevel == 'L3'"
              >
                <img
                  v-if="formData.type == 1 && formData.attachmentUrl2"
                  :src="formData.attachmentUrl2"
                  @mouseover.stop="imgMouseOver2=true  && peopleLevel != 'L3'"
                  class="bg-img"
                >
                <video
                  v-if="formData.type == 2 && formData.attachmentUrl2"
                  width="100"
                  controls
                  class="bg-video"
                  @mouseover.stop="imgMouseOver2=true  && peopleLevel != 'L3'"
                >
                  <source :src="formData.attachmentUrl2" type="video/mp4">浏览器不支持mp4
                </video>
                <img
                  v-if="!formData.attachmentUrl2"
                  class="bg-img"
                  src="../../assets/image/small.png"
                >
                <div class="img-delete" v-show="imgMouseOver2" @click.stop="deleteImg(2)" @mouseout.stop="imgMouseOver2=false"><i class="el-icon-delete"></i></div>
                <div v-show="formData.type == 1" class="limit-text">
                  <p>尺寸:750*420</p>
                  <p>限制大小: 2.0 Mb</p>
                  <p>支持.jpg,.png格式</p>
                </div>
                <div v-show="formData.type == 2" class="limit-text">
                  <p></p>
                  <p>限制大小: 500 Mb</p>
                  <p>支持.mp4</p>
                </div>
              </el-upload>
            </el-form-item>
            <p class="upload-message" v-if="uploadImgMessage2">请选择封面</p>
          </div>
          <el-form-item label="添加下载文件：">
            <el-col :span="10">
              <el-upload
                v-model="formData.attachmentUrl3"
                class="upload-pdf"
                action="#"
                :on-preview="handlePreview"
                :on-remove="handleRemove"
                :before-upload="beforeUploadPDF"
                :on-change="handleChange"
                :before-remove="beforeRemove"
                multiple
                :on-exceed="handleExceed"
                :file-list="fileList"
                :disabled="peopleLevel == 'L3'"
              >
                <el-button class="choose-button" plain icon="el-icon-document">选择文件</el-button>
                <div slot="tip" class="el-upload__tip">支持文件类型：pdf</div>
              </el-upload>
            </el-col>
          </el-form-item>
        </el-form>
      </div>
      <div class="second-step" v-else-if="active === 1">
        <el-tabs v-model="activeName" @tab-click="handleClickTabs">
          <el-tab-pane v-if="idType != 2" label="设定行政范围" name="first">
            <el-row :gutter="20">
              <el-col class="rim" :span="12">
                <!-- 
                  :load="loadNode"
                  lazy 
                  default-expand-all
                -->
                <el-tree
                  default-expand-all
                  :data="treeData"
                  show-checkbox
                  node-key="id"
                  ref="tree"
                  highlight-current
                  :props="defaultProps"
                  @check="onChecked"
                >
                  <span class="custom-tree-node" slot-scope="{ node, data }">
                    <span>{{ node.label }}</span>
                    <span>
                      <el-button
                        type="text"
                        icon="el-icon-caret-bottom"
                        size="small"
                        @click="() => append(data,node)"
                      ></el-button>
                    </span>
                  </span>
                </el-tree>
              </el-col>
              <el-col :span="11">
                <el-tag
                  v-for="tag in tagsRegion"
                  :key="tag.name"
                  closable
                  :type="tag.type"
                  @close="handleCloseTree(tag)"
                >{{tag.name}}</el-tag>
              </el-col>
            </el-row>
          </el-tab-pane>
          <el-tab-pane label="设定机构" name="second">
            <el-form :inline="true" :model="formOrganization" class="demo-form-inline">
              <el-form-item label>
                <!-- <el-select
                  size="small"
                  v-model="formOrganization.administrativeId"
                  placeholder="全部地区"
                  v-if="idType != 2"
                >
                  <el-option
                    v-for="item in organizationRegion"
                    :key="item.id"
                    :label="item.label"
                    :value="item.value"
                  ></el-option>
                </el-select> -->
                <el-cascader
                  v-if="idType != 2"
                  size="small"
                  expand-trigger="hover"
                  :options="organizationRegion"
                  v-model="formOrganization.administrativeIdList"
                ></el-cascader>
              </el-form-item>
              <el-form-item>
                <el-select size="small" v-model="formOrganization.level" placeholder="全部医院级别">
                  <el-option
                    v-for="(item, index) in organizationRank"
                    :key="index"
                    :label="item.label"
                    :value="item.id"
                  ></el-option>
                </el-select>
              </el-form-item>
              <el-form-item label>
                <el-input size="small" v-model="formOrganization.name" placeholder="请输入机构名称"></el-input>
              </el-form-item>
              <el-form-item>
                <el-button size="small" type="primary" @click="searchOrganization()">搜索</el-button>
              </el-form-item>
              <el-form-item style="float:right;">
                <el-button-group>
                  <el-button
                    size="small"
                    type="default"
                    @click="checkAll(true,'multipleOrganization')"
                  >选择全部</el-button>
                  <el-button
                    size="small"
                    type="default"
                    @click="checkAll(false,'multipleOrganization')"
                  >全部不选</el-button>
                </el-button-group>
              </el-form-item>
            </el-form>
            <el-table
              class="rim"
              ref="multipleOrganization"
              :data="tableOrganization"
              tooltip-effect="dark"
              style="width: 100%"
              @selection-change="selectionChangeOrganization"
              :row-key="getRowKeys"
            >
              <el-table-column
                type="selection"
                width="55"
                :selectable="selectableTableList"
                :reserve-selection="true"
              ></el-table-column>
              <el-table-column prop="name" label="医院名称" min-width="100" align="center"></el-table-column>
              <el-table-column prop="hospitalLevelName" label="医院级别" align="center"></el-table-column>
              <el-table-column prop="provinceName" label="所属省份" align="center"></el-table-column>
              <el-table-column prop="cityName" label="所属城市" align="center"></el-table-column>
              <el-table-column prop="countyName" label="所属区县" align="center"></el-table-column>
              <el-table-column prop="townName" label="所属街道" align="center"></el-table-column>
              <div slot="empty">
                <div class="table-empty">
                  <img src="../../assets/image/no-content1.png">
                  <p>没有机构信息</p>
                </div>
              </div>
            </el-table>
            <div class="pagination">
              <el-pagination
                background
                @size-change="handleSizeOrganization"
                @current-change="handleCurrentOrganization"
                :current-page="formOrganization.pageNum"
                :page-sizes="[10, 20, 40]"
                :page-size="formOrganization.pageSize"
                layout="total, sizes, prev, pager, next, jumper"
                :total="totalOrganization"
              ></el-pagination>
            </div>
          </el-tab-pane>
          <el-tab-pane label="设定科室" name="third">
            <el-col :span="8">
              <el-table
                class="department"
                ref="multipleDepartment"
                :data="tableDepartment"
                tooltip-effect="dark"
                style="width: 100%"
                @selection-change="selectionChangeDepartment"
              >
                <el-table-column 
                  type="selection" 
                  width="55"
                  :selectable="selectableTableList"
                ></el-table-column>
                <el-table-column prop="name" label="科室名称" align="center"></el-table-column>
                <div slot="empty">
                  <div class="table-empty">
                    <img src="../../assets/image/no-content1.png">
                    <p>没有科室信息</p>
                  </div>
                </div>
              </el-table>
            </el-col>
          </el-tab-pane>
          <el-tab-pane label="设定人员" name="fourth">
            <el-form :inline="true" :model="formPerson" class="demo-form-inline">
              <el-form-item label>
                <el-select size="small" v-model="formPerson.hospitalId" placeholder="全部医院">
                  <el-option
                    v-for="(item, index) in hospitalList"
                    :key="index"
                    :label="item.label"
                    :value="item.value"
                  ></el-option>
                </el-select>
              </el-form-item>
              <el-form-item>
                <el-select size="small" v-model="formPerson.departmentId" placeholder="全部科室">
                  <el-option
                    v-for="item in departmentList"
                    :key="item.value"
                    :label="item.label"
                    :value="item.value"
                  ></el-option>
                </el-select>
              </el-form-item>
              <el-form-item label>
                <el-input size="small" v-model="formPerson.name" placeholder="请输入人员名称"></el-input>
              </el-form-item>
              <el-form-item>
                <el-button size="small" type="primary" @click="searchPeople">搜索</el-button>
              </el-form-item>
              <el-form-item style="float:right;">
                <el-button-group>
                  <el-button
                    size="small"
                    type="default"
                    @click="checkAll(true,'multiplePerson')"
                  >选择全部</el-button>
                  <el-button
                    size="small"
                    type="default"
                    @click="checkAll(false,'multiplePerson')"
                  >全部不选</el-button>
                </el-button-group>
              </el-form-item>
            </el-form>
            <el-table
              class="rim"
              ref="multiplePerson"
              :data="tablePerson"
              tooltip-effect="dark"
              style="width: 100%"
              @selection-change="selectionChangePerson"
              :row-key="getRowKeysPerson"
            >
              <el-table-column 
                type="selection" 
                width="55" 
                :reserve-selection="true"
                :selectable="selectableTableList"
              ></el-table-column>
              <el-table-column prop="name" label="人员名称" align="center"></el-table-column>
              <el-table-column prop="hospitalName" label="所属医院" align="center"></el-table-column>
              <el-table-column prop="departmentName" label="所属科室" align="center"></el-table-column>
              <el-table-column prop="provinceName" label="所属省份" align="center"></el-table-column>
              <el-table-column prop="cityName" label="所属城市" align="center"></el-table-column>
              <el-table-column prop="countyName" label="所属区县" align="center"></el-table-column>
              <div slot="empty">
                <div class="table-empty">
                  <img src="../../assets/image/no-content1.png">
                  <p>没有人员信息</p>
                </div>
              </div>
            </el-table>
            <div class="pagination">
              <el-pagination
                background
                @size-change="handleSizePerson"
                @current-change="handleCurrentPerson"
                :current-page="formPerson.pageNum"
                :page-sizes="[10, 20, 40]"
                :page-size="formPerson.pageSize"
                layout="total, sizes, prev, pager, next, jumper"
                :total="totalPerson"
              ></el-pagination>
            </div>
          </el-tab-pane>
        </el-tabs>
        <el-dialog title :visible.sync="dialogShow" width="40%" center>
          <p class="dialog-p">设定范围数据已经被其他管理员修改，是否强制提交进行覆盖</p>
          
          <span slot="footer" class="dialog-footer">
            <el-button type="default" size="small" @click="dialogShow = false">取消</el-button>
            <el-button type="primary" size="small" @click="coverData()">确定</el-button>
          </span>
        </el-dialog>
      </div>
      <div class="third-step" v-else-if="active === 2">
        <el-form
          ref="formComponent"
          label-width="150px"
          :model="formComponent"
          :rules="rulesComponent"
        >
          <el-form-item label="选择组件：" prop="component">
            <el-col :span="20">
              <el-select
                v-model="formComponent.component"
                multiple
                collapse-tags
                style="width: 350px"
                placeholder="请选择组件"
                @change="changeValue"
                :disabled="projectStatus == 3 || projectStatus == 4 || projectStatus == 5  || projectStatus == 6"
              >
                <el-option
                  v-for="item in optionsComponent"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value"
                ></el-option>
              </el-select>
            </el-col>
          </el-form-item>
          <el-form-item label="已选择：">
            <el-col :span="20">
              <el-tag
                v-for="tag in tagsComponent"
                :key="tag.name"
                closable
                :type="tag.type"
                style="margin-left: 10px;"
                @close="handleCloseComponent(tag)"
              >{{tag.name}}</el-tag>
            </el-col>
          </el-form-item>
          <el-form-item label="配置证书：">
            <el-radio-group v-model="formComponent.configure" :disabled="projectStatus == 3 || projectStatus == 4 || projectStatus == 5  || projectStatus == 6">
              <el-radio :label="1">是</el-radio>
              <el-radio :label="2">否</el-radio>
            </el-radio-group>
          </el-form-item>
          <el-form-item v-show="formComponent.configure == 1" label="选择证书：">
            <el-col :span="20">
              <el-select
                v-model="formComponent.certificate"
                placeholder="请选择证书"
                style="width: 350px"
                :disabled="projectStatus == 3 || projectStatus == 4 || projectStatus == 5  || projectStatus == 6"
              >
                <el-option
                  v-for="item in optionsCertificate"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value"
                ></el-option>
              </el-select>
            </el-col>
          </el-form-item>
        </el-form>
      </div>
    </div>
  </div>
</template>
<script>
import BreadCrumb from "../../components/breadcrumb.vue";
import { doUpload, getFilePath } from "../../utils/qiniu-util";
import { mapGetters } from "vuex";
import { openLoading, closeLoading } from "../../utils/utils";
import * as commonUtil from "../../utils/utils";
import * as operationData from "../../utils/operation";
let vm = null;
export default {
  components: {
    BreadCrumb
  },
  data() {
    // const itemOrganization = {
    //   name: "上海市第一人民医院",
    //   grade: "二甲医院",
    //   province: "上海市",
    //   city: "上海市",
    //   district: "浦东新区",
    //   street: "张江街道"
    // };
    // const itemPerson = {
    //   name: "云小鹊",
    //   hospital: "上海市第一人民医院",
    //   department: "全科",
    //   province: "上海市",
    //   city: "上海市",
    //   district: "长宁区"
    // };
    return {
      idTypeValue: 1,
      idTypeProject: '',
      // itemOrganization: itemOrganization,
      // itemPerson: itemPerson,
      projectId: null,
      peopleLevel: null,
      //面包屑
      curmbFirst: "教培项目",
      curmbSecond: "新建项目",
      //页面展示位置
      stepData: [true, false, false],
      active: 0,
      activeName: "first",
      //基层信息 数据
      uploadImgMessage: false,
      uploadImgMessage2: false,
      imgMouseOver: false,
      imgMouseOver2: false,
      imageUrl: "",
      formData: {
        projectName: "",
        projectBegintime: "",
        projectEndtime: "",
        projectIntro: "",
        type: 1,
        attachmentUrl1: "",
        attachmentUrl2: "",
        attachmentUrl3: "",
        attachmentMore1: {},
        attachmentMore2: {}
      },
      pickerOptions0: {
        disabledDate: time => {
          if (
            this.formData.projectEndtime != "" &&
            this.formData.projectEndtime != null
          ) {
            return (
              time.getTime() > new Date(this.formData.projectEndtime).getTime()
            );
          }
        }
      },
      pickerOptions1: {
        disabledDate: time => {
          return (
            time.getTime() < new Date(this.formData.projectBegintime).getTime()
          ); //减去一天的时间代表可以选择同一天;
        }
      },
      fileList: [],
      //设定行政范围 数据
      scopeReq: {},
      allSelectedKeys: [],
      updatedTree: false,
      defaultProps: {
        children: "children",
        label: "label",
        isLeaf: "isLeaf"
      },
      treeData: [],
      tagsRegion: [],
      //设定机构 数据
      getRowKeys(row) {
        return row.id;
      },
      checkTableState: {
        multipleOrganization: "",
        multipleDepartment: "",
        multiplePerson: ""
      },
      updatedOrganization: false,
      formOrganization: {
        name: "",
        administrativeId: "0",
        administrativeIdList: ['0'],
        level: "-1",
        chechAll: true,
        pageNum: 1,
        pageSize: 10
      },
      organizationRegion: [],
      organizationRank: [],
      hasOrganizationInit: false,
      tableOrganization: new Array(),
      multipleSelectionOrganization: [],
      currentOrganization: 1,
      totalOrganization: 10,
      pageSizeOrganization: 2,
      lookedOrganization: [],
      changedOrganization: [],
      changedOrganization2: [],
      //设定科室 数据
      firstDepartment: true,
      formDepartment: {
        grade: ""
      },
      tableDepartment: [],
      multipleSelectionDepartment: [],
      updatedDepartment: false,
      changedDepartment: {},
      //设定人员 数据
      getRowKeysPerson(row) {
        return row.id;
      },
      formPerson: {
        hospitalId: 0,
        departmentId: -1,
        name: "",
        pageNum: 1,
        pageSize: 10
      },
      hospitalList: [],
      departmentList: [],
      tablePerson: new Array(),
      multipleSelectionPerson: [],
      currentPerson: 1,
      pageSizePerson: 2,
      totalPerson: 10,
      updatedPerson: false,
      lookedPerson: [],
      changedPerson: [],
      changedPerson2: [],
      //dialog
      dialogShow: false,
      flagCover: 0,
      //记录上次
      scopeOfOrganizationLast: [],
      scopeOfPeopleLast: [],
      setKindOfOrganizationLast: '',
      setKindOfPeopleLast: '',
      //搜索类型
      searchOrganizationType: '',
      searchPeopleType: '',
      //选择项目组件 数据
      optionsComponent: [],
      optionsCertificate: [],
      formComponent: {
        component: [],
        configure: 2,
        certificate: ""
      },
      tagsComponent: [],
      projectStatus: "",
      showStorage: false,
      //校验工具 数据
      rulesComponent: {
        component: [
          { required: true, message: "请选择组件", trigger: "change" }
        ],
        certificate: [
          { required: true, message: "请选择证书", trigger: "change" }
        ]
      },
      rules: {
        projectName: [
          { required: true, message: "请输入项目名称", trigger: "blur" },
          {
            min: 2,
            max: 20,
            message: "输入长度为2-20的内容，可包含中英文、数字及特殊符号",
            trigger: "blur"
          }
        ],
        duringTime: [
          {
            required: true,
            message: "请选择时间",
            trigger: "change"
          }
        ],
        projectBegintime: [
          {
            required: true,
            message: "请选择时间",
            trigger: "change"
          }
        ],
        projectEndtime: [
          {
            required: true,
            message: "请选择时间",
            trigger: "change"
          }
        ],
        type: [
          {
            type: "array",
            required: true,
            message: "请至少选择一个活动性质",
            trigger: "change"
          }
        ],
        resource: [
          { required: true, message: "请选择活动资源", trigger: "change" }
        ],
        projectIntro: [
          { required: true, message: "请填写项目简介", trigger: "blur" },
          { min: 1, max: 150, message: "超出可输入的最大长度", trigger: "blur" }
        ],
        attachmentUrl1: [
          { required: true, message: "请选择列表图片", trigger: "blur" }
        ],
        attachmentUrl2: [
          { required: true, message: "请选择封面", trigger: "blur" }
        ]
      }
    };
  },
  computed: {
    ...mapGetters(["_token"])
  },
  created() {
    vm = this;
    (this.projectId = vm.getUrlSearch(window.location.href, "projectId")),
      (this.peopleLevel = vm.getUrlSearch(window.location.href, "level"));

    this.changeOnStep(this.active);
    this.getComponentInfo();
    //this.editManager();
    vm.idType = localStorage.getItem('storageIdType');
    console.log('this.idType:'+ vm.idType);
    if (vm.idType == 2) {
      this.activeName = "second";
    }
    this.$nextTick(function() {
      //this.getDepartment();
    });
  },
  // 挂载到Dom完成时
  mounted: function() {
    commonUtil.resizeHeight();
  },
  methods: {

    //表单校验
    submitForm(formName) {
      let flag = null;
      this.$refs[formName].validate(valid => {
        if (valid) {
          //console.log("success");
          flag = true;
        } else {
          console.log("error submit!!");
          flag = false;
        }
      });
      return flag;
    },
    //重置表单
    resetForm(formName) {
      this.$refs[formName].resetFields();
    },
    //  删除图片
    deleteImg(type) {
      if(type == 1) {
        vm.formData.attachmentUrl1 = '';
        vm.imgMouseOver = false;
      } else {
        vm.formData.attachmentUrl2 = '';
        vm.imgMouseOver2 = false;
      }
    },
    //改变封面类型
    changeCover(radio) {
      this.formData.attachmentUrl2 = "";
      //console.log(radio);
    },
    //设置编辑数据
    setEditData(editData) {
      //console.log(editData);
      //设置基础信息页
      this.formData = {
        id: vm.getUrlSearch(window.location.href, "projectId"),
        projectName: editData.projectData.projectName,
        projectBegintime: editData.projectData.projectBegintime,
        projectEndtime: editData.projectData.projectEndtime,
        projectIntro: editData.projectData.projectIntro,
        type: editData.attachmentData[1].attachmentType,
        attachmentUrl1: editData.attachmentData[0].attachmentUrl,
        attachmentUrl2: editData.attachmentData[1].attachmentUrl,
        attachmentUrl3: "",
        attachmentMore1: {
          attachmentName: editData.attachmentData[0].attachmentName,
          attachmentExt: editData.attachmentData[0].attachmentExt,
          attachmentSize: editData.attachmentData[0].attachmentSize
        },
        attachmentMore2: {
          attachmentName: editData.attachmentData[1].attachmentName,
          attachmentExt: editData.attachmentData[1].attachmentExt,
          attachmentSize: editData.attachmentData[1].attachmentSize
        }
      };
      if (editData.attachmentData.length > 2) {
        for (let i = 2; i < editData.attachmentData.length; i++) {
          let pdfItem = {
            name: editData.attachmentData[i].attachmentName,
            url: editData.attachmentData[i].attachmentUrl,
            attachmentExt: editData.attachmentData[i].attachmentExt,
            attachmentSize: editData.attachmentData[i].attachmentSize
          };
          vm.fileList.push(pdfItem);
        }
      }
      //设置选择项目组件页
      let componentEdit = [];
      let certificateEdit = 0;
      for (let i = 0; i < editData.componentData.length; i++) {
        componentEdit.push(editData.componentData[i].relevanceId);
      }
      this.formComponent.component = componentEdit;
      this.initTags(componentEdit);
      if (editData.certificateData.length > 0) {
        this.formComponent.configure = 1;
        this.formComponent.certificate =
          editData.certificateData[0].relevanceId;
      }
    },
    //编辑管理
    editManager(data) {
      let req = {};
      let projectId = vm.getUrlSearch(window.location.href, "projectId");
      if (projectId != null && projectId != "") {
        openLoading(vm);
        vm.GET("portal/portalInfo/getProjectInfo/" + projectId, req).then(
          res => {
            closeLoading(vm);
            if (res.code == "000000" && res.data.projectData != null) {
              let editData = res.data;
              this.setEditData(editData);
              this.idTypeProject = res.data.projectData.idType;
              this.projectStatus = res.data.projectData.projectStatus;
              if (this.projectStatus == 1) {
                this.showStorage = true;
              }
              //console.log('projectStatus:',this.projectStatus);
            } else {
              console.log(res);
            }
          }
        );
      } else {
        this.showStorage = true;
      }
    },

    //编辑/更新 基础信息
    insertOrUpdate(option) {
      //console.log(this.formData);
      let projectModel = {
        projectName: this.formData.projectName,
        projectBegintime: this.formData.projectBegintime,
        projectEndtime: this.formData.projectEndtime,
        projectIntro: this.formData.projectIntro
      };
      let attachmentModel = [
        {
          attachmentType: 1,
          attachmentUrl: this.formData.attachmentUrl1,
          attachmentName: this.formData.attachmentMore1.attachmentName,
          attachmentExt: this.formData.attachmentMore1.attachmentExt,
          attachmentSize: this.formData.attachmentMore1.attachmentSize,
          kind: 1,
          seqNo: 1
        },
        {
          attachmentType: this.formData.type,
          attachmentUrl: this.formData.attachmentUrl2,
          attachmentName: this.formData.attachmentMore2.attachmentName,
          attachmentExt: this.formData.attachmentMore2.attachmentExt,
          attachmentSize: this.formData.attachmentMore2.attachmentSize,
          kind: 2,
          seqNo: 1
        }
      ];
      let attachmentPDFModel = [];
      // if (option == "add") {
      for (let i = 0; i < vm.fileList.length; i++) {
        let PDFModel = {
          attachmentType: 3,
          attachmentName: vm.fileList[i].name,
          attachmentUrl: vm.fileList[i].url,
          attachmentExt: vm.fileList[i].attachmentExt,
          attachmentSize: vm.fileList[i].attachmentSize,
          kind: 3
        };
        attachmentPDFModel.push(PDFModel);
      }
      //}
      if (option == "edit" || option == "storageEdit") {
        //编辑
        projectModel.id = this.formData.id;
        projectModel.projectStatus = this.projectStatus;
        for (let i = 0; i < attachmentModel.length; i++) {
          attachmentModel[i].portalProjectId = this.formData.id;
        }
        for (let i = 0; i < attachmentPDFModel.length; i++) {
          attachmentPDFModel[i].portalProjectId = this.formData.id;
        }
        //idTypeProject
      }
      let postData = {
        projectModel: JSON.stringify(projectModel),
        attachmentModel: JSON.stringify(attachmentModel),
        attachmentPDFModel: JSON.stringify(attachmentPDFModel)
      };
      //console.log(postData);
      openLoading(vm);
      vm.POST("portal/portalInfo/insertOrUpdate", postData).then(res => {
        closeLoading(vm);
        if(option == "storage" || option == "storageEdit") {
          vm.$message.info(res.message);
        }
        if (res.code == "000000") {
          //console.log(res);
          this.projectId = res.data.id;
          this.projectStatus = res.data.projectStatus;
          this.idTypeProject = res.data.idType;
          this.operationLast();
          if (option != "storage" && option != "storageEdit") {
            this.active++;
            this.stepData = [false, true, false];
            // this.projectId = res.data.id;
            this.initRange();
            this.getDepartment();
          }
        }
      });
    },
    //查询上次设定范围
    operationLast() {
      let req = {};
      vm.GET("portal/scope/v1/" + this.projectId + "/operation/last", req).then(
        res => {
          if (res.code == "000000") {
            this.scopeReq = res.data.scopeReq;
            //console.log(this.scopeReq);
            //operationData.getDivision(res.data.scopeReq.scopeOfAdministrative);
            this.setKindOfOrganizationLast = this.scopeReq.setKindOfOrganization;
            this.setKindOfPeopleLast = this.scopeReq.setKindOfPeople;
            this.scopeOfOrganizationLast = operationData.getDivision(this.scopeReq.scopeOfOrganization);
            this.scopeOfPeopleLast = operationData.getDivision(this.scopeReq.scopeOfPeople);
            //this.changedOrganization = list;

          }
        }
      );
    },
    //查询组件证书信息
    getComponentInfo() {
      let param = {};
      vm.GET("portal/portalInfo/getComponentInfo", param).then(res => {
        if (res.code == "000000") {
          //console.log(res);
          let componentList = res.data.componentList;
          let certificateList = res.data.certificateList;
          let optionsComponent = [],
            optionsCertificate = [];
          for (let index = 0; index < componentList.length; index++) {
            optionsComponent[index] = {};
            optionsComponent[index].value = componentList[index].id;
            optionsComponent[index].label = componentList[index].name;
            optionsComponent[index].name = componentList[index].name;
          }
          for (let index = 0; index < certificateList.length; index++) {
            optionsCertificate[index] = {};
            optionsCertificate[index].value = certificateList[index].id;
            optionsCertificate[index].label = certificateList[index].name;
            optionsCertificate[index].name = certificateList[index].name;
          }
          this.optionsComponent = optionsComponent;
          this.optionsCertificate = optionsCertificate;
        }
        this.editManager();
      });
    },
    //项目组件信息 暂存/完成
    componentDraft(type) {
      let param = {
        componentIds: this.formComponent.component,
        certificateId: this.formComponent.certificate,
        projectId: this.projectId,
        type: type,
        status: this.projectStatus
      };
      vm.POST("portal/portalInfo/componentDraft", param).then(res => {
        console.log(res);
        vm.$message({
          message: res.message,
          type: "info"
        });
        if (res.code == "000000") {
          //notify
          if (type == 2) {
            this.$router.push("item-manager");
          }
        }
      });
    },
    //步骤style
    changeOnStep(active) {
      if (active == 0) {
        this.stepData = [true, false, false];
      } else if (active == 1) {
        this.stepData = [false, true, false];
        this.operationLast();
        this.initRange();
        this.getDepartment();
      } else if (active == 2) {
        this.stepData = [false, false, true];
      }
    },
    //点击暂存
    storage() {
      console.log("暂存步骤" + (this.active + 1));
      if (this.active == 0) {
        if (this.formData.projectName != "") {
          if (
            this.formData.projectName.length < 2 ||
            this.formData.projectName.length > 20
          ) {
            this.$message.error("输入长度为2-20的内容");
            return;
          }
          let urlProjectId = vm.getUrlSearch(window.location.href, "projectId");

          if (urlProjectId == null) {
            let param = {
              projectName: this.formData.projectName
            };
            vm.GET("portal/portalInfo/checkProjectName", param).then(res => {
              //console.log(res);
              if (res.code == "000000") {
                //移动到第二页 选择范围
                this.insertOrUpdate("storage");
              } else {
                this.$message.info(res.message);
              }
            });
          } else {
            //console.log('urlProjectId'+urlProjectId);
            this.insertOrUpdate("storageEdit");
          }
        } else {
          this.$message.error("请输入项目名称");
        }
      } else if (this.active == 1) {
        //暂存步骤2
        if(this.tagsRegion.length == 0) {
          vm.$message({
            type: "info",
            message: '成功',
          });
          return;
        }
        let req = {
          projectId: this.projectId,
          setKindOfAdministrative: this.getKind("administrativeScope"),
          setKindOfOrganization: this.getKind("organization"),
          setKindOfDepartment: this.getKind("department"),
          setKindOfPeople: this.getKind("person"),
          flag: this.flagCover,
        };
        if (req.setKindOfAdministrative == 3) {
          req.scopeOfAdministrative = this.getScope("administrativeUpdate");
        }
        if (req.setKindOfOrganization == 2 || req.setKindOfOrganization == 3) {
          req.scopeOfOrganization = this.getScopeOrganization(
            req.setKindOfOrganization
          );
        }
        if (req.setKindOfDepartment == 3) {
          req.scopeOfDepartment = this.getScopeDepartment();
        }
        if (req.setKindOfPeople == 2 || req.setKindOfPeople == 3) {
          req.scopeOfPeople = this.getScopePeople(req.setKindOfPeople);
        }
        openLoading(vm);
        vm.POST("portal/scope", req).then(res => {
          //暂存范围
          closeLoading(vm);
          console.log(res);
          vm.$message({
            type: "info",
            message: res.message
          });
        });
      } else if (this.active == 2) {
        //暂存步骤3
        this.componentDraft(1);
        // let formName = "formComponent";
        // let completeState = this.submitForm(formName);
        // if (completeState === true) {
        //   this.componentDraft(1);
        // }
      }
    },
    //点击完成
    complete() {
      //type 1:暂存 2：完成
      if (this.projectStatus == 4) {
        vm.$message.info("完成");
        vm.$router.push({ path: "item-manager" });
        return;
      }
      let formName = "formComponent";
      let completeState = this.submitForm(formName);
      if (completeState === true) {
        this.componentDraft(2);
      }
    },
    //覆盖数据
    coverData() {
      this.dialogShow = false;
      this.flagCover = 1;
      this.nextStep();
    },
    //点击下一步
    nextStep() {
      if (this.active == 0) {
        let formName = "formData";
        let removeState = this.submitForm(formName);
        if (!vm.formData.attachmentUrl1) {
          vm.uploadImgMessage = true;
        } else {
          vm.uploadImgMessage = false;
        }
        if (!vm.formData.attachmentUrl2) {
          vm.uploadImgMessage2 = true;
        } else {
          vm.uploadImgMessage2 = false;
        }
        //console.log("判断移动" + removeState);
        if (removeState === true && vm.formData.attachmentUrl1!='' && vm.formData.attachmentUrl2!='') {
          //校验名字
          let projectId = vm.getUrlSearch(window.location.href, "projectId");
          if (projectId == null) {
            //新建
            let param = {
              projectName: this.formData.projectName
            };
            vm.GET("portal/portalInfo/checkProjectName", param).then(res => {
              if (res.code == "000000") {
                //移动到第二页 选择范围
                // this.operationLast();
                this.insertOrUpdate("add");
                // this.active++;
                // this.stepData = [false, true, false];
                //this.initRange();
              } else {
                this.$message.info(res.message);
              }
            });
          } else {
            //编辑
            // this.operationLast();
            this.insertOrUpdate("edit");
          }
        }
      } else if (this.active == 1) {
        //进入第三步
        if (this.idType == 1) {
          //内部管理员
          if (this.tagsRegion.length > 0 || this.idTypeProject == 2) {
            //选择了范围
            let req = {
              projectId: this.projectId,
              setKindOfAdministrative: this.getKind("administrativeScope"),
              //scopeOfAdministrative: "000:2|000_110:1",
              setKindOfOrganization: this.getKind("organization"),
              //scopeOfOrganization: "2|3|4|5|6|7",
              setKindOfDepartment: this.getKind("department"),
              //scopeOfDepartment: "54",
              setKindOfPeople: this.getKind("person"),
              //scopeOfPeople: ""
              flag: this.flagCover,
            };
            if (req.setKindOfAdministrative == 3) {
              req.scopeOfAdministrative = this.getScope("administrativeUpdate");
            }
            if (
              req.setKindOfOrganization == 2 ||
              req.setKindOfOrganization == 3
            ) {
              req.scopeOfOrganization = this.getScopeOrganization(
                req.setKindOfOrganization
              );
            }
            if (req.setKindOfDepartment == 3) {
              req.scopeOfDepartment = this.getScopeDepartment();
            }
            if (req.setKindOfPeople == 2 || req.setKindOfPeople == 3) {
              req.scopeOfPeople = this.getScopePeople(req.setKindOfPeople);
            }
            
            openLoading(vm);
            vm.POST("portal/scope", req).then(res => {
              closeLoading(vm);
              if (res.code == "000000") {
                //移动到选择项目组件
                //console.log(res);
                let statusMove = this.scopeStatus(res.data.status);
                if(statusMove === 0) { 
                  this.active++;
                  this.stepData = [false, false, true];
                } else {
                  console.log('不能改变范围status：'+res.data.status)
                }
              } else {
                vm.$message({
                  type: "info",
                  message: res.message
                });
              }
            });
          } else {
            //没有选择范围
            vm.$message({
              showClose: true,
              message: "项目范围不能为空",
              type: "error"
            });
          }
        } else {
          //外部人员
          let req = {
            projectId: this.projectId,
            setKindOfAdministrative: 0,
            setKindOfOrganization: this.getKind("organization"),
            setKindOfDepartment: this.getKind("department"),
            setKindOfPeople: this.getKind("person"),
            flag: this.flagCover,
          };
          if (
            req.setKindOfOrganization == 2 ||
            req.setKindOfOrganization == 3
          ) {
            req.scopeOfOrganization = this.getScopeOrganization(
              req.setKindOfOrganization
            );
          }
          if (req.setKindOfDepartment == 3) {
            req.scopeOfDepartment = this.getScopeDepartment();
          }
          if (req.setKindOfPeople == 2 || req.setKindOfPeople == 3) {
            req.scopeOfPeople = this.getScopePeople(req.setKindOfPeople);
          }
          vm.POST("portal/scope", req).then(res => {
            if (res.code == "000000") {
              //移动到选择项目组件
              let statusMove = this.scopeStatus(res.data.status);
              if(statusMove === 0) { 
                this.active++;
                this.stepData = [false, false, true];
              } else {
                console.log('不能改变范围status：'+res.data.status)
              }
            } else {
              vm.$message({
              type: "info",
              message: res.message
            });
            }
          });
        }
      }
    },
    //图片上传
    handleAvatarSuccess(res, file) {
      this.imageUrl = URL.createObjectURL(file.raw);
    },
    //上传列表图片
    beforeUploadListPic(file) {
      let fileLimit = {
        width: 230,
        height: 172,
        size: 0.5,
        sizeText: "500K",
        key: "attachmentUrl1",
        more: "attachmentMore1",
        show: "uploadImgMessage"
      };
      this.beforeAvatarUpload(file, fileLimit);
    },
    //上传封面图片
    beforeUploadCoverPic(file) {
      let fileLimit = {
        width: 750,
        height: 420,
        size: 2,
        sizeText: "2.0M",
        key: "attachmentUrl2",
        more: "attachmentMore2",
        show: "uploadImgMessage2"
      };
      if (this.formData.type == 1) {
        this.beforeAvatarUpload(file, fileLimit);
      } else {
        this.beforeUploadMp4(file);
      }
    },
    //上传PDF
    beforeUploadPDF(file) {
      // console.log(file);
      // console.log(this.fileList);
      const isPDF = file.type === "application/pdf";
      if (!isPDF) {
        this.$message.error("请上传PDF格式文件!");
      } else {
        openLoading(vm);
        doUpload(
          vm,
          file,
          getFilePath(file, null),
          "preview4",
          "progress1",
          1
        ).then(function(path) {
          closeLoading(vm);
          console.log(path);
          let fileItem = {
            name: path.name,
            url: path.fullPath,
            attachmentExt: path.ext,
            attachmentSize: path.size
          };
          vm.fileList.push(fileItem);
          vm.$message.success("上传成功");
        });
      }
    },
    handleChange(file, fileList) {
      //this.fileList3 = fileList.slice(-3);
    },
    //上传mp4
    beforeUploadMp4(file) {
      console.log(file);
      const isMP4 = file.type === "video/mp4";
      const isLt = file.size / 1024 / 1024 < 500;
      if (!isLt) {
        this.$message.error("视频不符合规范，请根据规范上传视频");
        return;
      }
      if (!isMP4) {
        this.$message.error("视频不符合规范，请根据规范上传视频");
      } else {
        openLoading(vm);
        doUpload(
          vm,
          file,
          getFilePath(file, null),
          "preview4",
          "progress1",
          ''
        ).then(function(path) {
          closeLoading(vm);
          console.log(path);
          vm.uploadImgMessage2 = false;
          vm.formData.attachmentUrl2 = path.fullPath;
          vm.$message.success("上传成功");
        });
      }
    },
    //上传图片校验
    beforeAvatarUpload(file, fileLimit) {
      const isJPG = file.type === "image/jpeg";
      const isPNG = file.type === "image/png";
      const isLt2M = file.size / 1024 / 1024 < fileLimit.size;
      if (!isJPG && !isPNG) {
        this.$message.error("图片不符合规范，请根据规范上传图片");
        return;
      }
      if (!isLt2M) {
        this.$message.error("图片不符合规范，请根据规范上传图片 ");
        return;
      }
      let _img = new FileReader();
      _img.readAsDataURL(file);
      _img.onload = function(theFile) {
        let image = new Image();
        image.src = theFile.target.result;
        image.onload = function() {
          let _this = this;
          if (
            _this.width != fileLimit.width ||
            _this.height != fileLimit.height
          ) {
            vm.$message.error("图片不符合规范，请根据规范上传图片");
          } else {
            openLoading(vm);
            doUpload(
              vm,
              file,
              getFilePath(file, null),
              "preview4",
              "progress1",
              1
            ).then(function(path) {
              closeLoading(vm);
              console.log(path);
              if (fileLimit.show == "uploadImgMessage") {
                vm.uploadImgMessage = false;
              } else if (fileLimit.show == "uploadImgMessage2") {
                vm.uploadImgMessage2 = false;
              }
              vm.formData[fileLimit.key] = path.fullPath;
              vm.formData[fileLimit.more] = {
                attachmentName: path.name,
                attachmentExt: path.ext,
                attachmentSize: path.size
              };
              vm.$message.success("上传成功");
            });
          }
        };
      };
      return isJPG && isLt2M;
    },
    handleRemove(file, fileList) {
      for (let i = 0; i < vm.fileList.length; i++) {
        if (vm.fileList[i].name == file.name) {
          vm.fileList.splice(i, 1);
          console.log("删除" + i);
        }
      }
    },
    handlePreview(file) {
      //console.log(file);
    },
    handleExceed(files, fileList) {
      // this.$message.warning(
      //   `当前限制选择 3 个文件，本次选择了 ${
      //     files.length
      //   } 个文件，共选择了 ${files.length + fileList.length} 个文件`
      // );
    },
    beforeRemove(file, fileList) {
      return this.$confirm(`确定移除 ${file.name}？`);
    },
    //第二步 选择范围 初始化
    initRange() {
      let projectId = this.projectId;
      if (projectId == null) {
        //新建
      } else {
        //编辑
        this.listLevels();
        if (this.idType != 2) {
          this.getAdministrative();
        } else {
          this.activeName = "second";
          this.getOrganization();
          this.getCheckedTree();
        }
      }
    },
    //切换tabs
    handleClickTabs(tab, event) {
      let tabName = tab.name;
      if (tabName == "second") {
        //设定机构
        this.formOrganization.pageNum = 1;
        this.formOrganization.name ="";
        this.formOrganization.administrativeIdList = ['0'];
        this.formOrganization.level ="-1";
        this.getCheckedTree();
        this.getOrganization();
        // this.listLevels();
      } else if (tabName == "third") {
        //设定科室
        // if (this.checkTableState.multipleDepartment && this.firstDepartment) {
        //   this.$refs.multipleDepartment.toggleAllSelection();
        //   this.firstDepartment = false;
        // }
      } else if (tabName == "fourth") {
        //设定人员
        this.formPerson.pageNum = 1;
        this.formPerson.name ="";
        this.formPerson.departmentId = -1;
        this.formPerson.hospitalId = 0;
        this.getHospital();
        this.departmentList = this.getDepartmentList();
        //console.log('departmentList',this.departmentList);
        this.getPeople();
      }
    },
    //获取勾选树
    getCheckedTree() {
      if(this.idType != 2) {
        let allTree = JSON.parse(JSON.stringify(this.treeData[0].children));
        let changedTags = JSON.parse(JSON.stringify(this.tagsRegion));
        let organizationArea = operationData.treeHandler(allTree,changedTags);
        console.log('多级树：',organizationArea);
        this.organizationRegion = organizationArea;
        //改
        // this.organizationRegion = operationData.getOrganizationList(
        //   this.tagsRegion
        // );
        //console.log(this.organizationRegion);
      }
    },
    //初始化范围树
    setTreeData(administrative) {
      let treeIdList = [];
      let checkList = [];
      for (let i = 0; i < administrative.length; i++) {
        treeIdList.push(administrative[i].id);
        checkList[i] = {};
        checkList[i].name = administrative[i].label;
        checkList[i].key = administrative[i].id;
      }
      //console.log(treeIdList);
      this.$refs.tree.setCheckedKeys(treeIdList);
      this.tagsRegion = checkList;
    },
    //查询行政范围（树）
    getAdministrative() {
      let req = {
        projectId: this.projectId
      };
      openLoading(vm);
      vm.GET("portal/scope/v1/administrative", req).then(res => {
        closeLoading(vm);
        if (res.code == "000000") {
          //console.log(res.data);
          let administrativeAll = res.data.administrativeAll;
          let administrative = res.data.administrative;
          this.treeData = [];
          this.treeData[0] = administrativeAll;
          this.setTreeData(administrative);
          this.getCheckedTree();
          //console.log("treeData", this.treeData);
        }
      });
    },
    //列举选中地区
    initCheckList(allSelectedKeys) {
      this.tagsRegion = [];
      // console.log(allSelectedKeys);
      // console.log(this.$refs.tree.getCheckedNodes());
      let nodeData = this.$refs.tree.getCheckedNodes();
      for (let i = 0; i < nodeData.length; i++) {
        for (let j = 0; j < allSelectedKeys.length; j++) {
          if (
            allSelectedKeys[j].type == 1 &&
            nodeData[i].id == allSelectedKeys[j].key
          ) {
            let tagObj = {};
            tagObj.name = nodeData[i].label;
            tagObj.key = nodeData[i].id;
            this.tagsRegion.push(tagObj);
          }
        }
      }
    },
    //子节点选中
    appendCheck(administrative, checked) {
      //console.log(checked,administrative)
      let checkList = [];
      checkList = this.$refs.tree.getCheckedKeys();
      if (checked) {
        for (let i = 0; i < administrative.length; i++) {
          checkList.push(administrative[i].id);
          // console.log(checkList);
        }
      }
      this.$nextTick(function() {
        this.$refs.tree.setCheckedKeys(checkList);
      });
    },
    //添加子节点
    append(data, node) {
      console.log("data:", data);
      console.log("node:", node);
      if (data.children.length == 0) {
        //let id = data.id + "add";
        let statusValue = 0;
        if (node.checked == true) {
          statusValue = 1;
        }
        let req = {
          id: data.id,
          status: statusValue,
          disabled: data.disabled
        };
        vm.GET("portal/scope/v1/administrative/children", req).then(res => {
          if (res.code == "000000") {
            let administrative = res.data.administrative;
            //console.log(administrative);
            data.children = administrative;
            this.appendCheck(administrative, node.checked);
          }
        });
      }
    },
    getCheckedKeys() {
      console.log(this.$refs.tree.getCheckedKeys());
    },
    onChecked() {
      let cData = [],
        oldData = (this.treeData.length && this.treeData.slice()) || [],
        checkedKeys = this.$refs.tree.getCheckedKeys(),
        halfCheckedKeys = this.$refs.tree.getHalfCheckedKeys(),
        savedCheckedKeys = this.handlerCheckedData(oldData, checkedKeys).map(
          key => {
            return { type: 1, key: key };
          }
        ),
        savedHalfCheckedKeys = halfCheckedKeys.map(key => {
          return { type: 2, key: key };
        }),
        allSelectedKeys = savedCheckedKeys.concat(savedHalfCheckedKeys);

      this.allSelectedKeys = allSelectedKeys;
      this.initCheckList(allSelectedKeys);
      //console.log("allSelectedKeys", allSelectedKeys);
      //改变行政范围后，更新设定机构和设定人员
      this.updateOrganizationAndPerson(allSelectedKeys);
      this.updatedTree = true;
    },
    getTreeCheck() {
      let cData = [],
        oldData = (this.treeData.length && this.treeData.slice()) || [],
        checkedKeys = this.$refs.tree.getCheckedKeys(),
        halfCheckedKeys = this.$refs.tree.getHalfCheckedKeys(),
        savedCheckedKeys = this.handlerCheckedData(oldData, checkedKeys).map(
          key => {
            return { type: 1, key: key };
          }
        ),
        savedHalfCheckedKeys = halfCheckedKeys.map(key => {
          return { type: 2, key: key };
        }),
        allSelectedKeys = savedCheckedKeys.concat(savedHalfCheckedKeys);
      return allSelectedKeys;
    },
    // 递归删除列表中所有子节点
    delSubKeysByNode(node, checkedKeys) {
      let idIndex;
      if (node.children && node.children.length) {
        if (node.children && node.children.length) {
          node.children.forEach(elm => {
            idIndex = checkedKeys.findIndex(id => {
              return id === elm.id;
            });
            if (idIndex > -1) {
              checkedKeys.splice(idIndex, 1);
            }
            if (elm.children && elm.children.length) {
              this.delSubKeysByNode(elm, checkedKeys);
            }
          });
        }
      }
    },
    // 去除子节点
    handlerCheckedData(oldData, checkedKeys) {
      oldData.forEach(element => {
        for (let i = 0; i < checkedKeys.length; i++) {
          // 如果此节点被选中，则删除所有子节点
          if (element.id === checkedKeys[i]) {
            this.delSubKeysByNode(element, checkedKeys);
          } else {
            if (element.children && element.children.length) {
              this.handlerCheckedData(element.children, checkedKeys);
            }
          }
        }
      });
      return checkedKeys;
    },
    //通过key设置tree
    setCheckedKeys(tagsRegion) {
      console.log(tagsRegion);
      let treeKeyList = [];
      for (let index = 0; index < tagsRegion.length; index++) {
        treeKeyList[index] = tagsRegion[index].key;
      }
      console.log(treeKeyList);
      this.$refs.tree.setCheckedKeys(treeKeyList);
    },

    //删除label节点 同步树结构
    handleCloseTree(tag) {
      if (this.projectStatus != 4) {
        this.tagsRegion.splice(this.tagsRegion.indexOf(tag), 1);
        this.setCheckedKeys(this.tagsRegion);
      }
    },
    //获取反选数据
    getDifference(a, b) {
      if (a.constructor === Array && b.constructor === Array) {
        let set1 = new Set(a);
        let set2 = new Set(b);
        return Array.from(new Set([...set1].filter(x => !set2.has(x))));
      }
      return null;
    },
    //获取医院等级
    listLevels() {
      let req = {};
      vm.GET("contents/courseDoctor/listLevels?sysCode=10", req).then(res => {
        if (res.code == "000000") {
          // console.log(res);
          this.organizationRank = operationData.getLevelList(res.data.list);
        } else {
          this.organizationRank = [{
            id: '0',
            label: '全部医院等级',
          }];
        }
      });
    },
    selectableTableList(row, index) {
      if (this.projectStatus == 4) {
        if (row.status == 1) {
          //console.log("scopeReq",this.scopeReq);
          return false;
        }
        return true;
      }
      return true;
    },
    //改变 设定机构选项
    selectionChangeOrganization(rows) {
      this.changedOrganization = [];
      this.changedOrganization2 = [];
      if (rows) {
        rows.forEach(row => {
          if (row) {
            this.changedOrganization.push(row.id);
          }
        });
      }
      this.changedOrganization2 = operationData.getDifference(
        this.lookedOrganization,
        this.changedOrganization
      );
      console.log(
        "选",
        this.changedOrganization,
        "没",
        this.changedOrganization2
      );
      this.updatePerson();
      this.$refs.multiplePerson.clearSelection();
    },
    //改变机构 table 的check状态
    selectionChangeDepartment(val) {
      this.multipleSelectionDepartment = val;
      //console.log(this.multipleSelectionDepartment);
    },
    //改变人员 table的check状态
    selectionChangePerson(rows) {
      this.changedPerson = [];
      this.changedPerson2 = [];
      if (rows) {
        rows.forEach(row => {
          if (row) {
            this.changedPerson.push(row.id);
          }
        });
      }
      this.changedPerson2 = operationData.getDifference(
        this.lookedPerson,
        this.changedPerson
      );
      console.log(
        "选",
        this.changedPerson,
        "没",
        this.changedPerson2
      );
    },
    //设定机构table全选
    checkAll(flag, name) {
      if (name == "multipleOrganization") {
        //机构全选
        let checkItem = this.checkTableState[name];
        if (flag === true) {
          let idList = operationData.getIdList(this.tableOrganization);
          //console.log('idList',idList,'changedOrganization',this.changedOrganization);
          let difference = operationData.getDifference(
            idList,
            this.changedOrganization
          );
          //console.log('difference',difference);
          if (difference.length > 0) {
            this.$refs[name].toggleAllSelection();
          }
          this.checkTableState[name] = true;

          this.changedOrganization2 = [];
          this.changedOrganization = operationData.getDifference(
            this.lookedOrganization,
            this.changedOrganization2
          );
        } else {
          this.$refs[name].clearSelection();
          this.checkTableState[name] = false;

          this.changedOrganization = [];
          this.changedOrganization2 = operationData.getDifference(
            this.lookedOrganization,
            this.changedOrganization
          );
        }
        //置空
      } else if (name == "multiplePerson") {
        //人员全选
        if (flag === true) {
          let idList = operationData.getIdList(this.tablePerson);
          //console.log('idList',idList,'changedPerson',this.changedPerson);
          let difference = operationData.getDifference(
            idList,
            this.changedPerson
          );
          //console.log('difference',difference);
          if (difference.length > 0) {
            this.$refs[name].toggleAllSelection();
          }
          this.checkTableState[name] = true;

          this.changedPerson2 = [];
          this.changedPerson = operationData.getDifference(
            this.lookedPerson,
            this.changedPerson2
          );
        } else {
          this.$refs[name].clearSelection();
          this.checkTableState[name] = false;

          this.changedPerson = [];
          this.changedPerson2 = operationData.getDifference(
            this.lookedPerson,
            this.changedPerson
          );
        }
      }
    },
    //获取用户类型
    getKind(type) {
      let kind = 3;
      if (type == "administrative") {
        kind = 3;
        if (this.updatedTree == true) {
          kind = 3;
        }
        //console.log('this.idTypeProject',this.idTypeProject);
        if(this.idTypeProject == 2 && this.tagsRegion.length == 0) {
          kind = 0;
        }
        if(this.idType == 2) {
          kind = 0;
        }
      } else if (type == "administrativeScope") {
        kind = 3;
        if (this.tagsRegion.length > 0) {
          kind = 3;
        }
        if(this.idTypeProject == 2 && this.tagsRegion.length == 0) {
          kind = 0;
        }
        if(this.idType == 2) {
          kind = 0;
        }
      } else if (type == "organization") {
        //设置机构类别0：无 1：全选 2：去掉 3：选中
        if (this.checkTableState.multipleOrganization === false) {
          //全部不选
          kind = 0;
          if (this.changedOrganization.length > 0) {
            kind = 3;
          }
        } else if (this.checkTableState.multipleOrganization === true) {
          //设置机构类别0：无 1：全选 2：去掉 3：选中
          kind = 1;
          if (this.changedOrganization2.length > 0) {
            kind = 2;
          }
        } else if(this.checkTableState.multipleOrganization === '') {
          kind = this.setKindOfOrganizationLast;
          if(this.setKindOfOrganizationLast === -1) {
            kind = 1;
          }
          //初始化0或1
          if(kind == 0 && this.changedOrganization.length > 0) {
            kind = 3;
          }
          if(kind == 1 && this.changedOrganization2.length > 0) {
            kind = 2;
          }
        }
      } else if (type == "department") {
        kind = 3;
        if (this.multipleSelectionDepartment.length > 0) {
          kind = 3;
        }
      } else if (type == "person") {
        //设置人员类别0：无 1：全选 2：去掉 3：选中
        if (this.checkTableState.multiplePerson === false) {
          //全部不选
          kind = 0;
          if (this.changedPerson.length > 0) {
            kind = 3;
          }
        } else if (this.checkTableState.multiplePerson === true) {
          kind = 1;
          if (this.changedPerson2.length > 0) {
            kind = 2;
          }
        } else if(this.checkTableState.multiplePerson === '') {
          kind = this.setKindOfPeopleLast;
          if(this.setKindOfPeopleLast === -1) {
            kind = 1;
          }
          //初始化0或1
          if(kind == 0 && this.changedPerson.length > 0) {
            kind = 3;
          }
          if(kind == 1 && this.changedPerson2.length > 0) {
            kind = 2;
          }
        }
      }
      return kind;
    },
    //设定的行政范围内容
    getScope(type) {
      let scope = "";
      if (type == "administrative") {
        for (let i = 0; i < this.tagsRegion.length; i++) {
          scope += this.tagsRegion[i].key;
          if (i < this.tagsRegion.length - 1) {
            scope += "|";
          }
        }
      } else if (type == "administrativeUpdate") {
        //console.log(this.allSelectedKeys.length);
        if (this.allSelectedKeys.length > 0) {
          for (let i = 0; i < this.allSelectedKeys.length; i++) {
            scope +=
              this.allSelectedKeys[i].key + ":" + this.allSelectedKeys[i].type;
            if (i < this.allSelectedKeys.length - 1) {
              scope += "|";
            }
          }
        } else {
          let noChangeTree = this.getTreeCheck();
          console.log(noChangeTree);
          for (let i = 0; i < noChangeTree.length; i++) {
            scope += noChangeTree[i].key + ":" + noChangeTree[i].type;
            if (i < noChangeTree.length - 1) {
              scope += "|";
            }
          }
        }
      }
      //console.log(scope);
      return scope;
    },
    initOrganizationStatus() {
      let tableStatus = this.tableOrganization;
      tableStatus.forEach(row => {
        if (row.status == 1) {
          this.$nextTick(function() {
            this.$refs.multipleOrganization.toggleRowSelection(row);
          });
        }
      });
    },
    //选择搜索机构方式
    searchOrganization() {
      this.formOrganization.pageNum = 1;
      let searchForm = this.formOrganization;
      if (
        searchForm.administrativeId == "0" &&
        searchForm.administrativeIdList[searchForm.administrativeIdList.length-1] == "0" &&
        searchForm.level == "-1" &&
        searchForm.name == ""
      ) {
        this.searchOrganizationType = '';
        this.getOrganization();
      } else {
        this.searchOrganizationType = 'choose';
        this.getOrganizationChoose();
      }
    },
    //初始化搜索机构状态
    initOrganizationChoose() {
      let tableStatus = this.tableOrganization;
      if(typeof tableStatus === 'undefined') {
        return;
      }
      tableStatus.forEach(row => {
        let idList = [];
        idList[0] = row.id;
        //console.log('this.changedOrganization2',this.changedOrganization2);
        let intersect = operationData.getIntersect(idList,this.changedOrganization);
        let intersect2 = operationData.getIntersect(idList,this.changedOrganization2);
        //debugger;
        if(intersect.length > 0) {
          //选中
          //this.$refs.multipleOrganization.toggleRowSelection(row);
        } else if (intersect2.length > 0) {
          //不选
        } else {
          if (row.status == 1) {
            this.$nextTick(function() {
              this.$refs.multipleOrganization.toggleRowSelection(row);
            });
          }
        }
      });
    },
    //机构搜索
    getOrganizationChoose() {
      // console.log('formOrganization',this.formOrganization);
      let lastNum = this.formOrganization.administrativeIdList.length - 1
      let administrativeIdItem = this.formOrganization.administrativeIdList[lastNum];
      console.log('多级选中administrativeIdItem：',administrativeIdItem)
      let req = {
        projectId: this.projectId,
        setKind: this.getKind("administrative"),
        // scope: "000_110",
        //administrativeId: this.formOrganization.administrativeId,
        administrativeId: administrativeIdItem,
        departmentLevel: this.formOrganization.level,
        organizationName: this.formOrganization.name,
        pageNum: this.formOrganization.pageNum,
        pageSize: this.formOrganization.pageSize
      };
      if (req.setKind == 3) {
        req.scope = this.getScope("administrative");
      }
      openLoading(vm);
      vm.POST("portal/scope/v1/organization/choose", req).then(res => {
        closeLoading(vm);
        console.log(res);
        if (res.code == "000000") {
          this.tableOrganization = res.data.organizationList;
          this.totalOrganization = res.data.total;

          let idList = operationData.getIdList(this.tableOrganization);
          let intersect = operationData.getIntersect(
            idList,
            this.changedOrganization
          );
          this.lookedOrganization = operationData.getUnion(
            this.lookedOrganization,
            idList
          );
          
          //console.log('全部看过的：',this.lookedOrganization);
          if (vm.checkTableState.multipleOrganization === "") {
            this.initOrganizationChoose();
          } else if (vm.checkTableState.multipleOrganization === true) {
            let intersect2 = operationData.getIntersect(
              idList,
              this.changedOrganization
            );
            // console.log('intersect2',intersect2);
            if (intersect2.length == 0) {
              this.$refs.multipleOrganization.toggleAllSelection();
            }
          }

        }
      });
    },
    //查询机构列表
    getOrganization() {
      let req = {
        projectId: this.projectId,
        setKind: this.getKind("administrative"),
        // scope: "000_110",
        pageNum: this.formOrganization.pageNum,
        pageSize: this.formOrganization.pageSize
      };
      if (req.setKind == 3) {
        req.scope = this.getScope("administrative");
      }
      openLoading(vm);
      vm.POST("portal/scope/v1/organization", req).then(res => {
        closeLoading(vm);
        if (res.code == "000000") {
          //console.log(res.data);
          this.tableOrganization = res.data.organizationList;
          this.totalOrganization = res.data.total;

          //console.log("changedOrganization", this.changedOrganization);
          let idList = operationData.getIdList(this.tableOrganization);
          let intersect = operationData.getIntersect(
            idList,
            this.changedOrganization
          );
          this.lookedOrganization = operationData.getUnion(
            this.lookedOrganization,
            idList
          );
          // this.changedOrganization2 = operationData.getDifference(
          //   this.lookedOrganization,
          //   this.changedOrganization
          // );
          let difference = operationData.getDifference(
            idList,
            this.changedOrganization2
          );
          // debugger;
          //console.log('全部看过的：',this.lookedOrganization);
          if (vm.checkTableState.multipleOrganization === "") {
            // if (intersect.length == 0 && difference.length > 0) {
            //   this.initOrganizationStatus();
            // }
            this.initOrganizationChoose();
          } else if (vm.checkTableState.multipleOrganization === true) {
            let intersect2 = operationData.getIntersect(
              idList,
              this.changedOrganization
            );
            // console.log('intersect2',intersect2);
            if (intersect2.length == 0) {
              this.$refs.multipleOrganization.toggleAllSelection();
            }
          }
          // this.changedOrganization2 = operationData.getDifference(
          //   this.lookedOrganization,
          //   this.changedOrganization
          // );
        }
      });
    },
    //获取科室信息
    getDepartment() {
      let req = {
        projectId: this.projectId
      };
      vm.GET("portal/scope/v1/department", req).then(res => {
        if (res.code == "000000") {
          this.tableDepartment = res.data.department;

          let rowCheck = this.tableDepartment;
          rowCheck.forEach(row => {
            if (row.status == 1) {
              this.$nextTick(function() {
                this.$refs.multipleDepartment.toggleRowSelection(row);
              });
            }
          });
        }
      });
    },
    //获取机构id列表
    getScopeOrganization(type) {
      let scope = "";
      //2：去掉 3：选中
      if (type == 2) {
        // console.log(this.scopeOfOrganizationLast,this.changedOrganization);
        let differenceScope = operationData.getDifference(this.scopeOfOrganizationLast,this.changedOrganization);
        //console.log('differenceScope',differenceScope);
        let unionScope = operationData.getUnion(this.changedOrganization2,differenceScope);
        //console.log('unionScope',unionScope);
        for (let i = 0; i < unionScope.length; i++) {
          scope += unionScope[i] + "|";
        }
      } else if (type == 3) {
        console.log(this.scopeOfOrganizationLast,this.changedOrganization2);
        let differenceScope = operationData.getDifference(this.scopeOfOrganizationLast,this.changedOrganization2);
        let unionScope = operationData.getUnion(this.changedOrganization,differenceScope);
        for (let i = 0; i < unionScope.length; i++) {
          scope += unionScope[i] + "|";
        }
      }
      scope = scope.substring(0, scope.length - 1);
      console.log("scope", scope);
      return scope;
    },
    //获取人员id列表
    getScopePeople(type) {
      let scope = "";
      //2：去掉 3：选中
      if (type == 2) {
        let differenceScope = operationData.getDifference(this.scopeOfPeopleLast,this.changedPerson);
        //console.log('differenceScope',differenceScope);
        let unionScope = operationData.getUnion(this.changedPerson2,differenceScope);
        for (let i = 0; i < unionScope.length; i++) {
          scope += unionScope[i] + "|";
        }
      } else if (type == 3) {
        //console.log(this.changedPerson2,this.scopeOfPeople);
        let differenceScope = operationData.getDifference(this.scopeOfPeopleLast,this.changedPerson2);
        let unionScope = operationData.getUnion(this.changedPerson,differenceScope);
        // debugger;
        for (let i = 0; i < unionScope.length; i++) {
          scope += unionScope[i] + "|";
        }
      }
      
      scope = scope.substring(0, scope.length - 1);
      console.log("scope people", scope);
      return scope;
    },
    //获取科室列表
    getScopeDepartment() {
      let scope = "";
      for (let i = 0; i < this.multipleSelectionDepartment.length; i++) {
        scope += this.multipleSelectionDepartment[i].id + "|";
      }
      scope = scope.substring(0, scope.length - 1);
      return scope;
    },
    //获取医院
    getHospital() {
      let req = {
        projectId: this.projectId,
        setKindOfAdministrative: this.getKind("administrative"),
        //scopeOfAdministrative: "000_110",
        setKindOfOrganization: this.getKind("organization"),
        //scopeOfOrganization: "2|3|4|5|6|7",

        pageNum: this.formPerson.pageNum,
        pageSize: this.formPerson.pageSize
      };
      if (req.setKindOfAdministrative == 3) {
        req.scopeOfAdministrative = this.getScope("administrative");
      }
      if (req.setKindOfOrganization == 2 || req.setKindOfOrganization == 3) {
        req.scopeOfOrganization = this.getScopeOrganization(
          req.setKindOfOrganization
        );
      }
      vm.POST("portal/scope/v1/hospital", req).then(res => {
        if (res.code == "000000") {
          console.log(res);
          this.hospitalList = operationData.getHospitalList(res.data.organizationList);
        }
      })
    },
    //选择搜索机构方式
    searchPeople() {
      this.formPerson.pageNum = 1;
      let searchForm = this.formPerson;
      if (
        searchForm.hospitalId === 0 &&
        searchForm.departmentId === -1 &&
        searchForm.name == ""
      ) {
        this.searchPeopleType = '';
        this.getPeople();
      } else {
        this.searchPeopleType = 'choose';
        this.getPeopleChoose();
      }
    },
    //初始化搜索人员状态
    initPeopleChoose() {
      let tableStatus = this.tablePerson;
      if(typeof tableStatus === 'undefined') {
        return;
      }
      tableStatus.forEach(row => {
        let idList = [];
        idList[0] = row.id;
        let intersect = operationData.getIntersect(idList,this.changedPerson);
        let intersect2 = operationData.getIntersect(idList,this.changedPerson2);
        // debugger;
        if(intersect.length > 0) {
          //选中
          //this.$refs.multiplePerson.toggleRowSelection(row);
        } else if (intersect2.length > 0) {
          //不选
        } else {
          if (row.status == 1) {
            this.$nextTick(function() {
              this.$refs.multiplePerson.toggleRowSelection(row);
            });
          }
        }
      });
    },
    //人员搜索
    getPeopleChoose() {
      // console.log('formOrganization',this.formOrganization);
      let req = {
        projectId: this.projectId,
        setKindOfAdministrative: this.getKind("administrative"),
        //scopeOfAdministrative: "000_110",
        setKindOfOrganization: this.getKind("organization"),
        //scopeOfOrganization: "2|3|4|5|6|7",
        setKindOfDepartment: this.getKind("department"),
        //scopeOfDepartment: 54,
        pageNum: this.formPerson.pageNum,
        pageSize: this.formPerson.pageSize,
        hospitalId: this.formPerson.hospitalId,
        departmentId: this.formPerson.departmentId,
        name: this.formPerson.name,
      };
      if (req.setKindOfAdministrative == 3) {
        req.scopeOfAdministrative = this.getScope("administrative");
      }
      if (req.setKindOfOrganization == 2 || req.setKindOfOrganization == 3) {
        req.scopeOfOrganization = this.getScopeOrganization(
          req.setKindOfOrganization
        );
      }
      if (req.setKindOfDepartment == 3) {
        req.scopeOfDepartment = this.getScopeDepartment();
      }
      openLoading(vm);
      vm.POST("portal/scope/v1/people/choose", req).then(res => {
        closeLoading(vm);
        console.log(res);
        if (res.code == "000000") {
          this.tablePerson = res.data.people;
          this.totalPerson = res.data.total;

          let idList = operationData.getIdList(this.tablePerson);
          let intersect = operationData.getIntersect(
            idList,
            this.changedPerson
          );
          this.lookedPerson = operationData.getUnion(
            this.lookedPerson,
            idList
          );
          // this.changedPerson2 = operationData.getDifference(
          //   this.lookedPerson,
          //   this.changedPerson
          // );
          //console.log('全部看过的：',this.lookedPerson);
          if (vm.checkTableState.multiplePerson === "") {
            this.initPeopleChoose();
          } else if (vm.checkTableState.multiplePerson === true) {
            let intersect2 = operationData.getIntersect(
              idList,
              this.changedPerson
            );
            if (intersect2.length == 0) {
              this.$refs.multiplePerson.toggleAllSelection();
            }
          }
        }
      });
    },
    initPeopleStatus() {
      let tableStatus = this.tablePerson;
      tableStatus.forEach(row => {
        if (row.status == 1) {
          this.$nextTick(function() {
            this.$refs.multiplePerson.toggleRowSelection(row);
          });
        }
      });
    },
    //查询人员列表
    getPeople() {
      let req = {
        projectId: this.projectId,
        setKindOfAdministrative: this.getKind("administrative"),
        //scopeOfAdministrative: "000_110",
        setKindOfOrganization: this.getKind("organization"),
        //scopeOfOrganization: "2|3|4|5|6|7",
        setKindOfDepartment: this.getKind("department"),
        //scopeOfDepartment: 54,
        pageNum: this.formPerson.pageNum,
        pageSize: this.formPerson.pageSize
      };
      if (req.setKindOfAdministrative == 3) {
        req.scopeOfAdministrative = this.getScope("administrative");
      }
      if (req.setKindOfOrganization == 2 || req.setKindOfOrganization == 3) {
        req.scopeOfOrganization = this.getScopeOrganization(
          req.setKindOfOrganization
        );
      }
      if (req.setKindOfDepartment == 3) {
        req.scopeOfDepartment = this.getScopeDepartment();
      }
      openLoading(vm);
      vm.POST("portal/scope/v1/people", req).then(res => {
        closeLoading(vm);
        if (res.code == "000000") {
          console.log(res);
          this.tablePerson = res.data.people;
          this.totalPerson = res.data.total;

          let idList = operationData.getIdList(this.tablePerson);
          let intersect = operationData.getIntersect(
            idList,
            this.changedPerson
          );
          this.lookedPerson = operationData.getUnion(
            this.lookedPerson,
            idList
          );
          // this.changedPerson2 = operationData.getDifference(
          //   this.lookedPerson,
          //   this.changedPerson
          // );
          let difference = operationData.getDifference(
            idList,
            this.changedPerson2
          );
          //console.log('全部看过的：',this.lookedPerson);
          if (vm.checkTableState.multiplePerson === "") {
            // if (intersect.length == 0 && difference.length > 0) {
            //   this.initPeopleStatus();
            // }
            this.initPeopleChoose();
          } else if (vm.checkTableState.multiplePerson === true) {
            let intersect2 = operationData.getIntersect(
              idList,
              this.changedPerson
            );
            // console.log('intersect2',intersect2);
            if (intersect2.length == 0) {
              this.$refs.multiplePerson.toggleAllSelection();
            }
          }
        }
      });
    },
    //设定人员中科室列表
    getDepartmentList() {
      let list = [];
      list[0] = {
        value: -1,
        label: '全部科室',
      };
      for (let i = 0; i < this.tableDepartment.length; i++) {
        if (this.tableDepartment[i].status == 1) {
          let obj = {
            value: this.tableDepartment[i].id,
            label: this.tableDepartment[i].name
          };
          list.push(obj);
        }
      }
      return list;
    },
    //机构table修改
    handleSizeOrganization(val) {
      console.log(`每页 ${val} 条`);
      this.formOrganization.pageSize = val;
    },
    handleCurrentOrganization(val) {
      //console.log(`当前页: ${val}`);
      this.formOrganization.pageNum = val;
      if(this.searchOrganizationType == 'choose') {
        this.getOrganizationChoose();
      } else {
        this.getOrganization();
      }
    },
    //角色table修改
    handleSizePerson(val) {
      console.log(`每页 ${val} 条`);
      this.formPerson.pageSize = val;
    },
    handleCurrentPerson(val) {
      console.log(`当前页: ${val}`);
      this.formPerson.pageNum = val;
      if(this.searchPeopleType == 'choose') {
        this.getPeopleChoose();
      } else {
        this.getPeople();
      }
    },
    //行政范围改变更新设定机构和设定人员
    updateOrganizationAndPerson(allSelectedKeys) {
      this.tableOrganization = [];
      this.tablePerson = [];
      this.$refs.multipleOrganization.clearSelection();
      this.lookedOrganization = [];
      this.changedOrganization = [];
      this.changedOrganization2 = [];
      // this.lookedPerson = [];
      // this.changedPerson = [];
      // this.changedPerson2 = [];
    },
    //设定机构改变更新设定人员
    updatePerson() {
      this.lookedPerson = [];
      this.changedPerson = [];
      this.changedPerson2 = [];
    },
    //scope的不同status操作
    scopeStatus(data) {
      //console.log('范围提交status:'+data);
      let status = data;
      //console.log('范围提交status:'+status);
      if(status === 0) {
        this.flagCover = 0;
      } else if(status === 1) {
        vm.$message({
          type: "info",
          message: "您已被上级管理员移除项目，暂无权限操作",
        });
        this.$router.push("item-manager");
      } else if(status === 2) {
        console.log('弹框');
        this.flagCover = 1;
        this.dialogShow = true;
      }
      return status;
    },
    //选择项目组件
    //改变组件选择情况
    changeValue(value) {
      //console.log('value',value,'optionsComponent',this.optionsComponent);
      this.tagsComponent = [];
      let len = 0;
      for (let i = 0; i < value.length; i++) {
        for (let j = 0; j < this.optionsComponent.length; j++) {
          if (value[i] == this.optionsComponent[j].value) {
            this.tagsComponent[len] = {};
            this.tagsComponent[len].value = this.optionsComponent[j].value;
            this.tagsComponent[len].name = this.optionsComponent[j].label;
            len++;
          }
        }
      }
      //console.log('this.tagsComponent',this.tagsComponent);
    },
    initTags(value) {
      //console.log('value',value,'optionsComponent',this.optionsComponent);
      this.tagsComponent = [];
      let len = 0;
      for (let i = 0; i < value.length; i++) {
        for (let j = 0; j < this.optionsComponent.length; j++) {
          if (value[i] == this.optionsComponent[j].value) {
            this.tagsComponent[len] = {};
            this.tagsComponent[len].value = this.optionsComponent[j].value;
            this.tagsComponent[len].name = this.optionsComponent[j].label;
            len++;
          }
        }
      }
      //console.log('this.tagsComponent',this.tagsComponent);
    },
    //选择组件数据绑定
    handleCloseComponent(tag) {
      if (this.projectStatus == 1 || this.projectStatus == 2) {
        this.tagsComponent.splice(this.tagsComponent.indexOf(tag), 1);
        this.formComponent.component = [];
        for (let j = 0; j < this.tagsComponent.length; j++) {
          this.formComponent.component[j] = this.tagsComponent[j].value;
        }
      }
    }
  }
};
</script>
<style lang="scss">
.add-manager-wrap {
  .add-content {
    background: #fff;
  }
  .rim {
    border: 1px solid #dddddd;
  }
  .step-content {
    overflow: hidden;
    height: 60px;
    // margin-top: 66px;
    padding: 15px 0 50px 0;
    border-bottom: 1px solid #efefef;
    .is-text {
      display: none;
    }
    .el-steps--simple {
      background: #fff;
    }
    .button-green {
      color: #ffffff;
      background: #449284;
      border-color: #bfdad5;
      border-radius: 2px;
    }
    .button-white {
      color: #606266;
      background: #ffffff;
      border-color: #ecedf1;
      border-radius: 2px;
    }
    .step-num {
      display: block;
      margin-top: 1.5px;
      font-size: 12px;
      border: 1px solid #999 !important;
      border-radius: 50%;
      width: 25px;
      height: 18px;
      line-height: 15px;
      text-align: center;
      color: #999;
    }
    .el-step__title.is-wait {
      color: #999;
    }
    .el-step__title.is-process {
      color: #449284;
    }
    .is-finish {
      color: #999 !important;
    }
    .on-step {
      color: #449284;
      border: 1px solid #449284 !important;
    }
  }
  .first-step {
    margin-top: 20px;
    .basic-item-icon {
      position: relative;
      .require {
        position: absolute;
        left: 67px;
        top: 11px;
        color: #f56c6c;
      }
      .upload-message {
        position: absolute;
        left: 160px;
        top: 105px;
        font-size: 12px;
        color: #f56c6c;
      }
      .img-delete {
        position: absolute;
        left: 0px;
        top: 0px;
        width: 84px;
        height: 100px;
        background: #000;
        opacity: 0.7;
        z-index: 999;
        i {
          color: #fff;
          margin-top: 39px;
          margin-left: 0px;
        }
      }
    }
    .word-num {
      font-size: 12px;
      color: #999;
      padding-top: 5px;
    }
    .line {
      margin-left: 10px;
      width: 20px;
    }
    .bg-uploader {
      img {
        float: left;
      }
      .bg-img {
        width: 84px;
        height: 100px;
      }
      .bg-video {
        float: left;
        width: 84px;
        height: 100px;
      }
      .limit-text {
        float: left;
        margin-left: 10px;
        margin-top: -10px;
        p {
          font-size: 12px;
          color: #999;
        }
      }
    }
    .el-upload__tip {
      position: absolute;
      top: -6px;
      left: 130px;
    }
    .choose-button {
      background: #fff;
      color: #409eff;
      border: 1px solid #409eff;
    }
  }
  .second-step {
    margin: 10px 0 0 20px;
    .dialog-p {
      text-align: center;
      span {
        color: #449284;
      }
    }
    //隐藏树展开
    .table-empty {
      img {
        width: 100px;
      }
      p {
        margin-top: -50px;
      }
    }
    .el-tree-node__expand-icon {
      display: none;
    }
    .el-table__header-wrapper {
      .el-checkbox__inner {
        //display: none;
        //visibility: hidden;
      }
    }
    .department {
      margin-top: 20px;
      border: 1px solid #dddddd;
    }
    .el-tabs__nav-wrap::after {
      display: none;
    }
    .el-tabs__active-bar {
      display: none;
    }
    #tab-first,
    #tab-second,
    #tab-third {
      padding-right: 0px;
    }
    #tab-first::after,
    #tab-second::after,
    #tab-third::after {
      color: #c7cbd2;
      margin-left: 20px;
      content: "•";
    }
    .el-tabs__item.is-active {
      color: #fff;
    }
    .el-tag {
      margin: 0 10px 10px 0;
      border: 1.3px solid #48a8fe;
      color: #1e92fe;
      background-color: #e7f6fe;
      .el-icon-close {
        width: 13px;
        height: 13px;
        line-height: 13px;
        font-size: 12px;
        background-color: #0486fe;
        border-radius: 50%;
        color: #d4edfe;
      }
    }
  }
  .third-step {
    margin: 30px 0 0px 30px;
    padding-bottom: 30px;
  }
}
</style>