<template>
  <ai-detail class="addThreeMeeting detail-content details-page no-content-border">
    <ai-title slot="title" title="补录三会一课" isShowBack @onBackClick="$parent.goBack()" isShowBottomBorder/>
    <template #content>
      <ai-card title="基本信息">
        <template #content>
          <el-form :model="form.basic" label-width="100px" ref="basicForm" :rules="fromRules">
            <div class="areaList" style="width:100%">
              <el-form-item label="会议分类：" style="width:100%;" prop="meetingClassification">
                <el-checkbox-group v-model="form.basic.meetingClassification">
                  <el-checkbox
                      :label="op.dictValue"
                      v-for="(op,j) in dict.getDict('meetingClassification')"
                      :key="j"
                  >{{ op.dictName }}
                  </el-checkbox>
                </el-checkbox-group>
              </el-form-item>
            </div>
            <div class="el-form-p">
              <el-form-item prop="meetingAgenda" label="会议名称：" ref="fromTitle">
                <el-input
                    v-model="form.basic.meetingAgenda"
                    size="small"
                    placeholder="限30字"
                    clearable
                    :maxLength="30"
                ></el-input>
              </el-form-item>
              <div class="el-form-p" style="margin-top:5px">
                <el-form-item
                    prop="appThreeMeetingOrganizationList"
                    label="与会组织："
                    ref="appThreeMeetingOrganizationList"
                >
                  <div class="organ" @click="showDialogVisible()">
                          <span v-if="form.basic.appThreeMeetingOrganizationList.length">
                            <span
                                v-for="(item,i) in form.basic.appThreeMeetingOrganizationList"
                                :key="i"
                                class="organzation">
                               {{ item.name || item.organizationName }}
                              <span
                                  class="iconfont iconOverrule"
                                  @click.stop="delate(i)"
                              ></span>
                            </span>
                          </span>
                    <span v-else>请选择</span>
                  </div>
                </el-form-item>
              </div>
              <el-form-item prop="isOnline" label="举办方式：">
                <el-radio label="1" v-model="form.basic.isOnline">线上举办</el-radio>
                <el-radio label="0" v-model="form.basic.isOnline">线下举办</el-radio>
              </el-form-item>
              <el-form-item prop="meetingAddress" label="会议地点：" v-if="form.basic.isOnline==0">
                <el-input
                    v-model="form.basic.meetingAddress"
                    size="small"
                    placeholder="限60字"
                    clearable
                    :maxLength="60"
                ></el-input>
              </el-form-item>
              <el-row type="flex" justify="space-between">
                <el-form-item prop="startTime" label="开始时间：" ref="startTime">
                  <el-date-picker @change="dateChage()"
                                  value-format="yyyy-MM-dd HH:mm:ss"
                                  size="small"
                                  type="datetime"
                                  v-model="form.basic.startTime"
                                  placeholder="请选择..."
                  ></el-date-picker>
                </el-form-item>
                <el-form-item prop="endTime" label="结束时间：" ref="endTime">
                  <el-date-picker @change="dateChage()"
                                  value-format="yyyy-MM-dd HH:mm:ss"
                                  size="small"
                                  type="datetime"
                                  v-model="form.basic.endTime"
                                  placeholder="请选择..."
                                  :disabled="!Boolean(form.basic.startTime)"
                  ></el-date-picker>
                </el-form-item>
              </el-row>
              <el-form-item label="会议说明：" prop="meetingDescription" calss="uedtor" style="margin-top: 20px;">
                <ai-editor v-model="form.basic.meetingDescription" :instance="instance" :limit="3000"/>
              </el-form-item>
            </div>
          </el-form>
          <el-form label-width="100px" ref="fileForm" :rules="fromRules">
            <div class="el-form-p">
              <el-form-item label="附件：">
                <ai-uploader :instance="instance" v-model="fileList" fileType="file" :limit="10"></ai-uploader>
              </el-form-item>
            </div>
          </el-form>
        </template>
      </ai-card>
      <ai-card title="人员设置">
        <template #content>
          <el-form
              :model="form.meetingUser"
              label-width="100px"
              ref="meetingUserForm"
              :rules="fromRules">

            <div class="person">
              <el-form-item label="与会人员：" prop="participantList" label-width="106px"
                            style="width:100%;margin-bottom: 10px;"
                            ref="participantList">
                <div class="select-person" v-for="(item,index) in form.meetingUser.participantList"
                     :key="item+index" style="margin-bottom: 34px;">
                  <div class="person-pictrue" style="cursor: pointer;" @click="selectHost(index)">
                    <img :src="item.avatarUrl" v-if="item.avatarUrl">
                    <div
                        style="overflow: hidden;width:40px;white-space: nowrap;background-color:#2266FF;border-radius:50%;"
                        v-else>{{ item.name }}
                    </div>
                    <span class="host">主持人</span>
                    <span class="iconfont del-icon iconOverrule"
                          @click.stop="deletePerson(index)"></span>
                  </div>
                  <span class="person-name">{{ item.name }}</span>
                  <span style="position: absolute;left: 0;top: 60px;color: #2266FF;" v-if="item.isHost">
                          <span class="iconfont iconzxjyzdls" style="color: #8899BB;"></span>
                          <span style="font-size: 12px;">主持人</span>
                        </span>
                </div>
                <ai-party-member
                    :instance="instance"
                    customCliker
                    dialogTitle="添加参与人"
                    v-model="form.meetingUser.participantList"
                    :area-id="areaId"
                    :disable="participantDisable"
                    customOrg
                    :partyOrgList="form.basic.appThreeMeetingOrganizationList"
                    @change="handleSelectParty">
                  <div class="select-person add-person">
                    <div class="add-icon"><span class="el-icon-plus icon-add"></span></div>
                    <span class="person-name">选择</span>
                  </div>
                </ai-party-member>

              </el-form-item>
              <span class="tips">*从党员用户中选择，必须设置一名主持人(点击与会人员头像设置或变更主持人)</span>
            </div>
            <div class="person">
              <el-form-item label="纪要负责人：" label-width="106px"
                            style="width:100%;margin-top: 20px;margin-bottom: 0;"
                            ref="recorderList">
                <ai-person-select :customClicker="true" customRightText :instance="instance"
                                  url="/admin/user/pageForWeb" headerTitle="人员列表" dialogTitle="选择"
                                  @selectPerson="changeRecorderList">
                  <template v-slot:option="{ item }">
                    <span class="iconfont iconProlife">{{ item.name }}</span>
                    <ai-id mode="show" :show-eyes="false" :value="item.idNumber"/>
                  </template>
                </ai-person-select>
              </el-form-item>
              <span class="tips">*从系统用户中选择，拥有签到管理权限</span>
            </div>
          </el-form>
        </template>
      </ai-card>
      <ai-card title="会议纪要">
        <template #content>
          <el-form
              :model="form.summary"
              label-width="100px"
              ref="summaryForm"
              :rules="summaryRules"
          >
            <div class="el-form-p">
              <el-form-item prop="content" label="纪要内容：">
                <el-input
                    type="textarea"
                    :rows="6"
                    placeholder="请输入内容"
                    v-model="form.summary.content"
                ></el-input>
              </el-form-item>
            </div>
            <div class="el-form-p">
              <el-form-item label="图片附件：">
                <el-upload
                    class="upload-demo upload-list"
                    ref="upload"
                    multiple
                    action
                    list-type="picture-card"
                    :file-list="form.summary.images"
                    :http-request="uploadFilePhoto"
                    :on-remove="handleRemoveFilePhoto"
                    :on-change="fileChangePhoto"
                    accept=".jpeg, .jpg, .png">
                  <div class="upload-img">
                    <div class="iconfont iconPhoto"></div>
                    <div class="upload-text">上传照片</div>
                  </div>
                </el-upload>
                <div style="color: #999;font-size: 12px">最多上传50张图片,单个文件最大10MB，支持jpg、jpeg、png格式</div>
              </el-form-item>
            </div>
          </el-form>
        </template>
      </ai-card>
    </template>
    <template #footer>
      <el-button size="small"  @click="toList()">取消</el-button>
      <el-button type="primary" size="small" @click="confirm()">保存</el-button>
    </template>
    <el-dialog width="644px" title="选择党组织" :visible.sync="dialogVisible" class="select-party">
      <div>
        <el-row type="flex" justify="space-between">
          <el-row class="search-panel" type="flex" justify="space-between">
            <div class="add-item" style="padding-bottom:3px;overflow-x: hidden">
              <p class="add_top">
                <span>党组织</span>
                <el-input
                    placeholder="党组织名称"
                    size="small"
                    style="width:166px;"
                    clearable
                    suffix-icon="el-icon-search"
                    v-model="filterText"
                ></el-input>
              </p>
              <div class="tree_list">
                <el-tree
                    :data="treeData"
                    show-checkbox
                    node-key="id"
                    ref="partyTree"
                    :filter-node-method="filterNode"
                    @check-change="handleCheckChange"
                    @node-click="handleNodeClick"
                    :highlight-current="true"
                    :props="defaultProps"
                ></el-tree>
              </div>
            </div>
          </el-row>
          <div class="selected-people add-item">
            <p class="add_top">
              <span>已选择</span>
              <el-button icon="iconfont iconDelete" size="mini" @click="clearSelect()">清空</el-button>
            </p>
            <div class="add_tag" v-if="selectParty.length" style="width:100%;">
              <el-tag
                  v-for="(item,i) in selectParty"
                  :disable-transitions="true"
                  :key="i"
                  type="info"
              >
                {{ item.name }}
                <span
                    class="iconfont iconOverrule icon-color89B"
                    style="float: right;"
                    @click.stop="cancelSelect(i)"
                ></span>
              </el-tag>
            </div>
            <div
                class="add_tag"
                v-else
                style="display:flex;align-items:center;justify-content:center;width:100%;"
            >
              <span>暂无数据</span>
            </div>
          </div>
        </el-row>
      </div>
      <div slot="footer" style="text-align: center;">
        <el-button
            style="width:92px"
            size="small"
            class="delete-btn"
            @click="dialogVisible=false"
        >取消
        </el-button>
        <el-button
            style="width:92px"
            size="small"
            type="primary"
            @click="dialogVisible=false,confirmSelect()"
        >确认
        </el-button>
      </div>
    </el-dialog>
  </ai-detail>
</template>

<script>
import {mapState} from "vuex";
import moment from 'dayjs';

export default {
  name: "supplement",
  props: {
    instance: Function,
    dict: Object,
    permissions: Function
  },
  computed: {
    isEdit() {
      return this.detail ? Boolean(this.detail.id) : false;
    },
    ...mapState(["user"]),

    participantDisable() {
      if (!this.form.meetingUser) return []

      const list = [
        ...this.form.meetingUser.recorderList,
        ...this.form.meetingUser.hostList
      ]

      return list || []
    }
  },
  data() {
    let endTimePass = (rule, value, callback) => {
      if (value) {
        if (
            moment(value).unix() - moment(this.form.basic.startTime).unix() > 0
        ) {
          callback();
        } else {
          callback(new Error("结束时间要大于开始时间"));
        }
      } else {
        callback(new Error("请填写结束时间"));
      }
    };
    let startTimePass = (rule, value, callback) => {
      if (value) {
        callback();
      } else {
        callback(new Error("请填写开始时间"));
      }
    };
    let meetingBeforePass = (rule, value, callback) => {
      if (value) {
        if (this.form.basic.meetingAfter) {
          callback();
        } else {
          callback(new Error("请填写签到时间"));
        }
      } else {
        callback(new Error("请填写签到时间"));
      }
    };
    return {
      dictList: [
        "meetingClassification",
        "feminderMethod",
        "addSignMethod"
      ],
      form: {
        basic: {
          editable: false,
          id: "",
          meetingClassification: [], //会议分类
          meetingAgenda: "",
          meetingAddress: "", //会议地址
          meetingDescription: "", //补充说明
          meetingBefore: "",
          meetingAfter: "",
          startTime: "", //开始时间
          endTime: "", //结束时间
          appThreeMeetingOrganizationList: [], //组织
          isOnline: "0"
        },
        file: {
          annex: [], //附件
          editable: false
        },
        meetingUser: {
          editable: false,
          hostList: [], //主持人
          recorderList: [], //记录人
          participantList: [] //参与人
        },
        summary: {
          createUserId: "",
          editable: false,
          content: "",
          images: [],
          meetingId: ""
        }
      },
      signStart: "",
      signEnd: "",
      areaId: "",
      fromRules: {
        meetingClassification: [
          {required: true, message: "请选择会议分类", trigger: "change"}
        ],
        meetingAgenda: [{required: true, message: "请输入会议标题", trigger: "change"}],
        isOnline: [{required: true, message: "请选择举办方式", trigger: "change"}],
        meetingAddress: [
          {required: true, message: "请输入会议地点", trigger: "change"}
        ],
        meetingDescription: [
          {required: true, message: "请输入补充说明", trigger: "change"}
        ],
        meetingBefore: [
          {required: true, validator: meetingBeforePass, trigger: "change"}
        ],
        startTime: [
          {required: true, validator: startTimePass, trigger: "change"}
        ],
        endTime: [
          {required: true, validator: endTimePass, trigger: "change"}
        ],
        hostList: [
          {required: true, message: "请选择主持人", trigger: "change"}
        ],
        recorderList: [
          {required: true, message: "请选择记录人", trigger: "change"}
        ],
        participantList: [
          {required: true, message: "请选择参与人", trigger: "change"}
        ],
        appThreeMeetingOrganizationList: [
          {required: true, message: "请选择党组织", trigger: "change"}
        ]
      },
      summaryRules: {
        content: [{required: true, message: "请输入正文内容", trigger: "change"}],
      },
      defaultProps: {
        children: "children",
        label: "name"
      },
      treeData: [], //tree
      dialogVisible: false, //弹窗
      filterText: "", //tree模糊搜索
      selectParty: [], //选中的党组织
      fileList: [],
    }
  },
  watch: {
    filterText(val) {
      this.$refs.partyTree.filter(val);
    },
    form: {
      handler(newVal) {
        if (newVal.basic.startTime && newVal.basic.meetingBefore) {
          let d = new Date(newVal.basic.startTime);
          let time = d.getTime();
          let min = Number(newVal.basic.meetingBefore) * 60000;
          let total = time - min;
          this.signStart = this.countTime(total);
        }
        if (newVal.basic.startTime && newVal.basic.meetingAfter) {
          let d = new Date(newVal.basic.startTime);
          let time = d.getTime();
          let min = Number(newVal.basic.meetingAfter) * 60000;
          let total = time + min;
          this.signEnd = this.countTime(total);
        }
      },
      deep: true
    }
  },
  methods: {
    deletePerson(index) {
      if (this.form.meetingUser.participantList[index].isHost) {
        this.form.meetingUser.participantList.map(e => {
          this.$set(e, "isHost", false);
        })
      }
      this.form.meetingUser.participantList.splice(index, 1);
    },
    selectHost(index) {
      this.form.meetingUser.participantList.map(e => {
        e.isHost = false;
      })
      this.form.meetingUser.participantList[index].isHost = true;
    },
    toList() {
      this.$parent.goBack();
    },
    //开始时间，结束时间验证
    dateChage() {
      this.$refs.startTime.$emit("el.form.change");
      this.$refs.endTime.$emit("el.form.change");
    },
    // 上传照片
    uploadFilePhoto(file) {
      let isPng = file.file.type == "image/jpeg" ||
          file.file.type == "image/png" ||
          file.file.type == "image/jpg";

      if (!isPng) {
        this.$message.warning("上传图片信息必须是jpeg/png/jpg格式!");
        for (let i = 0; i < this.form.summary.images.length; i++) {
          if (this.form.summary.images[i].uid == file.file.uid) {
            this.form.summary.images.splice(i, 1);
          }
        }
        return;
      }
      const isLt10M = file.file.size / 1024 / 1024 < 10;
      if (!isLt10M) {
        this.$message.warning("图片大小不能超过 10MB!");
        for (let i = 0; i < this.form.summary.images.length; i++) {
          if (this.form.summary.images[i].uid == file.file.uid) {
            this.form.summary.images.splice(i, 1);
          }
        }
        return;
      }
      if (this.form.summary.images.length > 50) {
        this.$message.error("图片信息不能超过50张");
        this.form.summary.images.map((item, index) => {
          if (item.uid == file.file.uid) {
            this.form.summary.images.splice(index, 1);
          }
          return this.form.summary.images;
        });
        return;
      }
      let formData = new FormData();
      formData.append("file", file.file);
      this.instance.post(`/admin/file/add`, formData).then(res => {
        if (res.msg == "success") {
          this.$message({message: "图片上传成功", type: "success"});
          let imgInfo = res.data[0].split(";");
          let img = {
            fileId: imgInfo[1],
            accessUrl: imgInfo[0]
          };
          this.form.summary.images.map((item, index) => {
            if (item.uid == file.file.uid) {
              this.form.summary.images[index].fileId = img.fileId;
              this.form.summary.images[index].accessUrl = img.accessUrl;
              this.form.summary.images[index].url = img.accessUrl;
            }
            return this.form.summary.images;
          });
        }
      });
    },
    handleRemoveFilePhoto(file, fileList) {
      this.form.summary.images = fileList;
    },
    fileChangePhoto(file, fileList) {
      this.form.summary.images = fileList;
    },
    //会议签到时间计算
    countTime(total) {
      let now = new Date(total);
      let y = now.getFullYear();
      let m = now.getMonth() + 1;
      m = m < 10 ? "0" + m : m;
      let da = now.getDate();
      da = da < 10 ? "0" + da : da;
      let h = now.getHours();
      h = h < 10 ? "0" + h : h;
      let minute = now.getMinutes();
      minute = minute < 10 ? "0" + minute : minute;
      let seconds = now.getSeconds();
      seconds = seconds < 10 ? "0" + seconds : seconds;
      return y + "-" + m + "-" + da + " " + h + ":" + minute + ":" + seconds;
    },

    //纪要负责人
    changeRecorderList(val) {
      if (val) {
        this.$set(val, "meetingUserRole", "1");
        this.$set(val, "userName", val.name);
        this.form.meetingUser.recorderList.splice(0, 1, val);
      } else {
        this.form.meetingUser.recorderList = [];
      }
    },

    //与会人员
    handleSelectParty() {
      this.form.meetingUser.participantList.map(e => {
        e.meetingUserRole = "3";
        e.userName = e.name;
        this.$set(e, "isHost", false);
      })
    },

    //保存提交表单验证
    confirm() {
      this.$refs.basicForm.validate(validate => {
        let flag = validate;
        for (let k in this.form) {
          if (this.$refs[k + "Form"])
            this.$refs[k + "Form"].validate(v => {
              flag = flag && v;
            });
        }
        if (flag) {
          this.addUpdate();
        }
      });
    },
    //新增
    addUpdate() {
      let hasHost = false;
      this.form.meetingUser.participantList.map(e => {
        if (e.isHost) {
          hasHost = true;
          this.form.meetingUser.hostList.push({
            ...e,
            meetingUserRole: "0"
          })
        }
      })

      if (!hasHost) {
        return this.$message.error("请选择主持人");
      }

      //会议分类
      this.form.basic.meetingClassification = this.form.basic.meetingClassification.join(",");

      //发布状态
      let postStatus = 0;

      let appThreeMeetingUserList = [];
      let meetingList = [];

      //选择人员
      meetingList = [
        ...this.form.meetingUser.hostList,
        ...this.form.meetingUser.recorderList,
        ...this.form.meetingUser.participantList
      ];
      meetingList.forEach(i => {
        appThreeMeetingUserList.push({
          meetingUserId: i.id,
          meetingUserName: i.userName,
          meetingUserRole: i.meetingUserRole,
          organizationId: i.partyOrgId,
          organizationName: i.partyOrgName
        });
      });

//      this.form.summary.images = JSON.stringify(this.form.summary.images);
      let imgs = this.form.summary.images.map(e => {
        return {
          url: e.url
        }
      })
      this.instance
      .post(`/app/appthreemeetinginfo/makeup`, {
        ...this.form.basic,
        ...this.form.file,
        ...this.form.meetingUser,
        ...this.form.summary,
        annex: JSON.stringify(this.fileList),
        images: JSON.stringify(imgs),
        appThreeMeetingUserList,
        postStatus
      }).then(res => {
        if (res && res.code == 0) {
          this.$message.success("会议补录成功");
          this.$parent.goBack();
        }
      });
    },
    //显示树结构
    showDialogVisible() {
      this.dialogVisible = true;
      this.$nextTick(() => {
        this.$refs.partyTree.setCheckedNodes(
            this.form.basic.appThreeMeetingOrganizationList
        );
      });
    },
    // 查询所有党组织 树形结构
    searchSysAll() {
      this.instance
      .post("/admin/partyOrganization/queryAllChildren", null, {
        params: {id: this.user.info.organizationId}
      })
      .then(res => {
        if (res && res.code == 0) {
          res.data = res.data.map(a => {
            return {...a};
          });
          this.treeData = res.data.filter(
              e => e.id == this.user.info.organizationId
          );
          this.treeData.map(t => this.addChild(t, res.data));
          if (this.filterText) {
            this.$nextTick(() => {
              this.$refs.partyTree.filter(this.filterText);
            });
          }
        }
      });
    },
    //节点过滤/搜索
    filterNode(value, data) {
      if (!value) return true;
      return data.name.indexOf(value) !== -1;
    },
    //点击节点
    handleNodeClick() {
    },
    //选中的数据
    handleCheckChange() {
      this.selectParty = this.$refs.partyTree.getCheckedNodes();
    },
    //取消选择
    cancelSelect(index) {
      this.selectParty.splice(index, 1);
      this.$refs.partyTree.setCheckedNodes(this.selectParty);
    },
    //删除选择
    delate(index) {
      this.form.basic.appThreeMeetingOrganizationList.splice(index, 1);
      this.form.meetingUser.hostList = [];
      this.form.meetingUser.recorderList = [];
      this.form.meetingUser.participantList = [];
    },
    //清空
    clearSelect() {
      this.$refs.partyTree.setCheckedKeys([]);
      this.selectParty = [];
      this.form.meetingUser.hostList = [];
      this.form.meetingUser.recorderList = [];
      this.form.meetingUser.participantList = [];
    },
    //确认选择
    confirmSelect() {
      this.form.basic.appThreeMeetingOrganizationList = this.selectParty;
    },
  },
  mounted() {
    this.dict.load(this.dictList);
    if (!this.isEdit) {
      this.form.basic.editable = true;
      this.form.file.editable = true;
      this.form.meetingUser.editable = true;
      this.form.summary.editable = true;
      this.searchSysAll();
    } else {
      if (this.copy) {
        for (let k in this.form) {
          this.form[k].editable = true;
        }
      }
      this.getDetailInfo();
    }
    this.areaId = this.user.info.areaId;
  }
};
</script>

<style scoped lang="scss">
.addThreeMeeting {

  ::v-deep .el-upload-list--picture-card {
    .el-upload-list__item-actions {
      width: 84px !important;
      height: 84px !important;
    }
  }

  .host {
    font-size: 12px;
    width: 40px;
    height: 40px;
    display: inline-block;
    position: absolute;
    left: 6px;
    top: 6px;
    color: #ffffff;
    background-color: transparent;
    border-radius: 50%;
    opacity: 0;

    &:hover {
      opacity: 1;
      background-color: #AAAAAA;
    }
  }

  ::v-deep .el-upload-list__item {
    margin-right: 16px;
  }

  ::v-deep .el-date-editor--datetime {
    width: 100% !important;
  }

  ::v-deep .el-upload-list__item:nth-of-type(7) {
    margin-right: 0;
  }

  ::v-deep .el-upload-list__item,
  .el-upload-list__item {
    img {
      width: 84px !important;
      height: 84px !important;
      border-radius: 2px !important;
    }
  }

  .upload-list {
    //   padding-bottom: 100px;

    ::v-deep .el-upload-list__item {
      width: 84px !important;
      height: 84px !important;
      border-radius: 2px !important;
    }
  }

  .upload-img {
    width: 84px;
    height: 84px;
    background: rgba(245, 245, 245, 1);
    border-radius: 2px;
    border: 1px solid rgba(208, 212, 220, 1);

    .iconPhoto {
      margin-top: 20px;
      font-size: 32px;
      color: #8b9cb6;
    }
  }

  .upload-demo {
    // padding: 0 15px;
  }

  .upload-text {
    color: rgba(102, 102, 102, 1);
    font-size: 12px;
    height: 16px;
    line-height: 16px;
  }

  ::v-deep .el-upload--picture-card {
    width: 84px !important;
    height: 84px !important;
    line-height: 30px !important;
    background: rgba(245, 245, 245, 1) !important;
    border-radius: 2px !important;
    border: none !important;
  }

  .content-left {
    width: 160px;
    height: 100%;
    // float:left;
    position: absolute;
    left: -224px;

    .content-left-nav {
      width: 158px;
      background-color: #ffffff;
      border-radius: 4px;
      border: solid 1px #eeeeee;
      margin-top: 56px;
      overflow: hidden;

      li {
        height: 48px;
        line-height: 48px;
        padding-left: 24px;
        font-size: 14px;
        font-weight: normal;
        font-stretch: normal;
        letter-spacing: 0;
        color: #666666;
        cursor: pointer;
        border-left: 3px solid transparent;

        &:hover {
          border-left: 3px solid #5088ff;
        }

        a {
          display: block;
        }
      }

      .navActive {
        border-left: 3px solid #5088ff;
        color: #5088ff;
      }
    }
  }

  .flie {
    width: 100%;
    height: 40px;
    line-height: 40px;
    padding: 0 8px;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 14px;
    color: rgba(51, 51, 51, 1);
    background: rgba(255, 255, 255, 1);
    border-radius: 4px;
    border: 1px solid rgba(208, 212, 220, 1);
    margin-bottom: 16px;
    cursor: pointer;

    p {
      display: flex;
      justify-content: flex-start;
      align-items: center;
    }

    .iconDelete {
      color: #8899bb;
      margin-left: 4px;
      font-size: 16px;
    }
  }

  .flie:hover {
    background-color: #f3f6f9;
    border: none;
  }

  .flie:hover .iconDelete {
    color: #ff4466;
  }

  .person {
    width: 100%;

    .tips {
      box-sizing: border-box;
      padding: 0 106px;
      font-size: 12px;
      color: #999999;
      line-height: 16px;
    }

    .select-person {
      display: flex;
      flex-direction: column;
      position: relative;
      // width:70px;
      margin: 0 15px;
      height: 70px;
      justify-content: center;
      align-items: center;

      .person-pictrue {
        width: 54px;
        height: 54px;
        border-radius: 50%;
        text-align: center;
        display: flex;
        align-items: center;
        justify-content: center;
        color: #fff;
        position: relative;

        img {
          width: 40px;
          height: 40px;
          border-radius: 50%;
        }

        .del-icon {
          position: absolute;
          top: -12px;
          right: -4px;
          font-size: 20px;
          color: #333;
          width: 20px;
          height: 24px;
          border-radius: 50%;
          background-color: #fff;
        }
      }

      .person-name {
        font-size: 14px;
        color: #666;
        line-height: normal;
      }
    }

    ::v-deep .el-form-item__content {
      display: flex;
      flex-wrap: wrap;
    }

    .add-person {
      display: flex;
      flex-direction: column;
      position: relative;
      // width:70px;
      margin: 0 15px;
      height: 70px;
      justify-content: center;
      align-items: center;

      .add-icon {
        width: 40px;
        height: 40px;
        line-height: 40px;
        margin: 0 auto 4px;
        text-align: center;
        font-size: 20px;
        color: #2266FF;
        border: 1px dashed #2266ff;
        border-radius: 50%;
        box-sizing: border-box;

        .icon-add {
          color: #2266FF;
          font-size: 20px;
          margin-top: 5px;
        }
      }
    }
  }

  .time-input {
    width: 48px;
    height: 32px;
    margin: 0 8px;

    ::v-deep .el-input__inner {
      line-height: 32px;
      height: 32px;
      padding: 0 10px;
    }
  }

  .select-party {
    ::v-deep .el-dialog__header {
      padding: 13px 16px;
      border-bottom: 1px solid #eee;
    }

    ::v-deep .el-dialog__body {
      padding: 24px 40px 48px;
    }

    ::v-deep .el-tree {
      background-color: #fcfcfc;
      height: calc(100% - 40px);
      width: 350px;
    }

    .add-item {
      width: 274px;
      height: 360px;
      background: rgba(252, 252, 252, 1);
      border-radius: 2px;
      border: 1px solid rgba(208, 212, 220, 1);
      position: relative;
      overflow: auto;
      box-sizing: border-box;

      .add_top {
        width: 100%;
        height: 40px;
        background: rgba(245, 245, 245, 1);
        border-bottom: 1px solid rgba(208, 212, 220, 1);
        padding: 0 8px;
        box-sizing: border-box;
        display: flex;
        justify-content: space-between;
        align-items: center;
      }

      .tree_list {
        width: 100%;
        overflow: auto;
        height: calc(100% - 40px);
      }

      .add_buttom {
        position: absolute;
        left: 0;
        bottom: 0;
        font-size: 12px;
        width: 310px;
        height: 32px;
        line-height: 32px;
        z-index: 10000;
        background: rgba(245, 246, 247, 1);
        color: rgba(51, 51, 51, 1);
        box-shadow: 0 1px 0 0 rgba(216, 220, 227, 1);
        display: flex;
        justify-content: center;
        align-items: center;
        cursor: pointer;
      }

      .add_tag {
        width: 310px;
        height: calc(100% - 40px);
        overflow-y: auto;

        .el-tag {
          margin: 8px 8px 0 8px;
          background: rgba(238, 238, 238, 1);
          border: none;
          color: #666;
          max-width: calc(100% - 16px);
          overflow: hidden;
          text-overflow: ellipsis;
          white-space: nowrap;
          width: 100%;
        }

        ::v-deep .el-tag .el-icon-close {
          color: #666;
        }
      }
    }
  }

  .organ {
    width: auto;
    height: auto;
    padding: 0 10px;
    line-height: 32px;
    border: 1px solid #d0d4dc;
    border-radius: 5px;
    cursor: pointer;
    box-sizing: border-box;
    color: #666;

    .organzation {
      background-color: #eee;
      margin-right: 4px;
      padding: 4px;
    }
  }

  .el-checkbox {
    width: 20%;
  }
}
</style>



