Administrator
2022-01-04 fc0c0f84305c45a60d3d3a254099ca1846bdb818
保安员派遣情况统计修改为保安员年龄分布情况统计
3 files modified
1 files added
2129 ■■■■■ changed files
src/api/securityAnalysis/securityAnalysis.js 11 ●●●●● patch | view | raw | blame | history
src/views/securityAnalysis/child/assignment copy.vue 1003 ●●●●● patch | view | raw | blame | history
src/views/securityAnalysis/child/assignment.vue 1080 ●●●● patch | view | raw | blame | history
src/views/securityAnalysis/index.vue 35 ●●●●● patch | view | raw | blame | history
src/api/securityAnalysis/securityAnalysis.js
@@ -91,6 +91,17 @@
    })
}
export const getAgeStatistics = (deptid, jurisdiction) => {
    return request({
        url: '/api/blade-user/getAgeStatistics',
        method: 'post',
        params: {
            deptId: deptid,
            jurisdiction: jurisdiction,
        }
    })
}
export const getinformationstatisticsXX = (current, size, params) => { //保安员考试情况统计 详细信息  只需要公司的deptid
    return request({
        url: '/api/examScore/score-page',
src/views/securityAnalysis/child/assignment copy.vue
New file
@@ -0,0 +1,1003 @@
<template>
  <basic-container>
    <div
      :class="[
        'dispatchChildoperable',
        $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '',
      ]"
    >
      <avue-crud
        :option="option1"
        :data="data1"
        :page.sync="page1"
        ref="crudrec1"
        v-model="form1"
        :table-loading="loading1"
        :before-open="beforeOpen"
        @row-save="rowSave1"
        @search-change="searchChange1"
        @search-reset="searchReset1"
        @row-update="rowUpdate1"
        @row-del="rowDel1"
        @selection-change="selectionChange1"
        @refresh-change="refreshChange1"
      >
        <template slot-scope="{ type, row }" slot="menu">
          <el-button
            icon="el-icon-check"
            size="small"
            :type="type"
            @click="openClick(row, page2)"
            >派遣轨迹</el-button
          >
        </template>
      </avue-crud>
    </div>
    <el-dialog
      title="提示"
      :visible.sync="dialogVisible"
      width="80%"
      top="10vh"
      append-to-body
    >
      <avue-crud
        :option="option2"
        :data="data2"
        :page.sync="page2"
        ref="crudrec2"
        v-model="form2"
        :table-loading="loading2"
        @selection-change="selectionChange2"
        @search-change="searchChange2"
        @row-save="rowSave2"
        @search-reset="searchReset2"
        @row-update="rowUpdate2"
        @row-del="rowDel2"
        @refresh-change="refreshChange2"
      >
        <!-- :before-open="beforeOpen"
        -->
        <!-- <template slot-scope="{ type, row }" slot="menu">
          <el-button
            icon="el-icon-check"
            size="small"
            :type="type"
            @click="openClick(row)"
            >派遣轨迹</el-button
          >
        </template> -->
      </avue-crud>
    </el-dialog>
  </basic-container>
</template>
<script>
import {
  getdata1,
  adddata1,
  update1,
  remove1,
  getDispatcherUnitByDeptId,
  overDispatcher,
} from "@/api/dispatch/dispatch";
import { update, getListByDeptId } from "@/api/system/user";
import { mapState } from "vuex";
export default {
  props: ["card"],
  data() {
    return {
      dialogVisible: false,
      dialogId: "",
      dialogData: [],
      deptCategory: "",
      deptId: "",
      loading1: true, //派遣记录
      selectionList1: [],
      page1: {
        pageSize: 10,
        currentPage: 1,
        total: 0,
        ...this.$store.state.control.changePageSize,
      },
      form1: {},
      query1: {},
      data1: [],
      option1: {
        // card: true,
        tip: false,
        index: true,
        // menu: false,
        searchSize: "mini",
        searchMenuSpan: 8,
        height: "auto",
        cellBtn: false,
        delBtnText: "结束派遣",
        editBtnText: "更改派遣",
        addTitle: "记录添加",
        addBtnText: "记录添加",
        // addBtn: false,
        menuWidth: 256,
        align: "center",
        selection: true,
        ...this.$store.state.control.clearOtherBut,
        column: [
          // },
          {
            label: "派遣单位",
            prop: "dispatcherCompany",
            // addDisplay: false,
            // editDisplay: false,
            // search: true,
            // labelWidth: 120,
            // searchSpan: 4,
            minWidth: 210,
            addDisplay: false,
            editDisplay: false,
          },
          {
            label: "保安公司",
            prop: "deptId",
            search: true,
            labelWidth: 120,
            type: "tree",
            searchSpan: 4,
            cascaderItem: ["userIds"],
            props: {
              label: "title",
              value: "id",
            },
            width: 180,
            dicUrl: `/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697`,
            rules: [
              {
                required: true,
                message: "请输入保安公司",
                trigger: "blur",
              },
            ],
          },
          {
            label: "派遣单位",
            prop: "dispatcherUnitId",
            labelWidth: 120,
            searchLabelWidth: 80,
            // dicUrl: "/api/dispatcherUnit/page-tree?deptId={{key}}",
            props: {
              label: "name",
              value: "id",
            },
            hide: true,
            searchSpan: 4,
            search: true,
            overHidden: true,
            type: "tree",
            rules: [
              {
                required: true,
                message: "请输入派遣单位",
                trigger: "blur",
              },
            ],
          },
          {
            label: "保安员",
            prop: "userIds",
            type: "tree",
            width: 70,
            labelWidth: 120,
            searchSpan: 3,
            search: true,
            hide: true,
            props: {
              label: "realName",
              value: "id",
            },
            // dicUrl: `/api/blade-user/page-security-units?dispatch=1&deptId={{key}}`,
            dicUrl: `/api/blade-user/page-security-units?status=1&deptId={{key}}`,
            dicData: [],
            rules: [
              {
                required: true,
                message: "请选择保安",
                trigger: "blur",
              },
            ],
          },
          {
            label: "保安员",
            prop: "securityName",
            type: "tree",
            width: 70,
            labelWidth: 120,
            addDisplay: false,
            editDisplay: false,
            // hide: true,
            // props: {
            //   label: "realName",
            //   value: "id",
            // },
            // dicUrl: `/api/blade-user/page-security-units?dispatch=1&deptId={{key}}`,
            dicData: [],
            rules: [
              {
                required: true,
                message: "请选择保安",
                trigger: "blur",
              },
            ],
          },
          {
            label: "身份证",
            prop: "idCardNo",
            labelWidth: 120,
            overHidden: true,
            addDisplay: false,
            editDisplay: false,
            rules: [
              {
                required: true,
                message: "请输入身份证",
                trigger: "click",
              },
            ],
            // search: true,
            // searchSpan: 4,
            // overHidden: true
          },
          // {
          //     label: "派遣人",
          //     prop: "dispatcher",
          //     // search: true,
          //     // searchSpan: 4,
          //     // overHidden: true
          // },
          {
            label: "派遣地址",
            prop: "dispatcheraddress",
            labelWidth: 120,
            rules: [
              {
                required: true,
                message: "请输入派遣地址",
                trigger: "click",
              },
            ],
            // search: true,
            // searchSpan: 4,
            // overHidden: true
          },
          {
            label: "开始时间",
            prop: "dispatchertime",
            type: "date",
            format: "yyyy-MM-dd",
            valueFormat: "yyyy-MM-dd",
            labelWidth: 120,
            searchSpan: 5,
            // search: true,
            overHidden: true,
            rules: [
              {
                required: true,
                message: "请输入派遣时间",
                trigger: "click",
              },
            ],
            // overHidden: true
          },
          {
            label: "结束时间",
            prop: "endTime",
            type: "date",
            format: "yyyy-MM-dd",
            valueFormat: "yyyy-MM-dd",
            labelWidth: 120,
            overHidden: true,
            rules: [
              {
                required: true,
                message: "请输入结束时间",
                trigger: "click",
              },
            ],
            // search: true,
            // searchSpan: 4,
            // overHidden: true
          },
          {
            label: "派遣时间",
            prop: "releaseTimeRange",
            type: "date",
            format: "yyyy-MM-dd",
            valueFormat: "yyyy-MM-dd",
            searchValue: [this.getStartTime(), this.getEndTime()],
            searchRange: true,
            searchSpan: 5,
            hide: true,
            addDisplay: false,
            editDisplay: false,
            viewDisplay: false,
            search: true,
            rules: [
              {
                required: true,
                message: "请输入时间",
                trigger: "blur",
              },
            ],
          },
        ],
      },
      loading2: true, //单个人派遣记录
      vals: [],
      selectionList2: [],
      page2: {
        pageSize: 10,
        currentPage: 1,
        total: 0,
        ...this.$store.state.control.changePageSize,
      },
      form2: {},
      query2: {},
      data2: [],
      option2: {
        // card: true,
        tip: false,
        index: true,
        // menu: false,
        searchSize: "mini",
        searchMenuSpan: 8,
        height: 450,
        cellBtn: false,
        delBtnText: "结束派遣",
        editBtnText: "更改派遣",
        addTitle: "记录添加",
        addBtnText: "记录添加",
        // addBtn: false,
        menuWidth: 256,
        align: "center",
        selection: true,
        column: [
          // },
          {
            label: "派遣单位",
            prop: "dispatcherCompany",
            // addDisplay: false,
            // editDisplay: false,
            // search: true,
            // labelWidth: 120,
            // searchSpan: 4,
            minWidth: 210,
            addDisplay: false,
            editDisplay: false,
          },
          {
            label: "保安公司",
            prop: "deptId",
            search: true,
            labelWidth: 120,
            type: "tree",
            searchSpan: 4,
            cascaderItem: ["userIds"],
            props: {
              label: "title",
              value: "id",
            },
            width: 180,
            dicUrl: `/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697`,
            rules: [
              {
                required: true,
                message: "请输入保安公司",
                trigger: "blur",
              },
            ],
          },
          {
            label: "派遣单位",
            prop: "dispatcherUnitId",
            labelWidth: 120,
            searchLabelWidth: 80,
            // dicUrl: "/api/dispatcherUnit/page-tree?deptId={{key}}",
            props: {
              label: "name",
              value: "id",
            },
            hide: true,
            searchSpan: 4,
            search: true,
            overHidden: true,
            type: "tree",
            rules: [
              {
                required: true,
                message: "请输入派遣单位",
                trigger: "blur",
              },
            ],
          },
          {
            label: "保安员",
            prop: "userIds",
            type: "tree",
            width: 70,
            labelWidth: 120,
            searchSpan: 3,
            // search: true,
            hide: true,
            props: {
              label: "realName",
              value: "id",
            },
            // dicUrl: `/api/blade-user/page-security-units?dispatch=1&deptId={{key}}`,
            dicUrl: `/api/blade-user/page-security-units?status=1&deptId={{key}}`,
            dicData: [],
            rules: [
              {
                required: true,
                message: "请选择保安",
                trigger: "blur",
              },
            ],
          },
          {
            label: "保安员",
            prop: "securityName",
            type: "tree",
            width: 70,
            labelWidth: 120,
            addDisplay: false,
            editDisplay: false,
            // hide: true,
            // props: {
            //   label: "realName",
            //   value: "id",
            // },
            // dicUrl: `/api/blade-user/page-security-units?dispatch=1&deptId={{key}}`,
            dicData: [],
            rules: [
              {
                required: true,
                message: "请选择保安",
                trigger: "blur",
              },
            ],
          },
          {
            label: "身份证",
            prop: "idCardNo",
            labelWidth: 120,
            overHidden: true,
            addDisplay: false,
            editDisplay: false,
            rules: [
              {
                required: true,
                message: "请输入身份证",
                trigger: "click",
              },
            ],
            // search: true,
            // searchSpan: 4,
            // overHidden: true
          },
          // {
          //     label: "派遣人",
          //     prop: "dispatcher",
          //     // search: true,
          //     // searchSpan: 4,
          //     // overHidden: true
          // },
          {
            label: "派遣地址",
            prop: "dispatcheraddress",
            labelWidth: 120,
            rules: [
              {
                required: true,
                message: "请输入派遣地址",
                trigger: "click",
              },
            ],
            // search: true,
            // searchSpan: 4,
            // overHidden: true
          },
          {
            label: "开始时间",
            prop: "dispatchertime",
            type: "date",
            format: "yyyy-MM-dd",
            valueFormat: "yyyy-MM-dd",
            labelWidth: 120,
            searchSpan: 5,
            // search: true,
            overHidden: true,
            rules: [
              {
                required: true,
                message: "请输入派遣时间",
                trigger: "click",
              },
            ],
            // overHidden: true
          },
          {
            label: "结束时间",
            prop: "endTime",
            type: "date",
            format: "yyyy-MM-dd",
            valueFormat: "yyyy-MM-dd",
            labelWidth: 120,
            overHidden: true,
            rules: [
              {
                required: true,
                message: "请输入结束时间",
                trigger: "click",
              },
            ],
            // search: true,
            // searchSpan: 4,
            // overHidden: true
          },
          {
            label: "派遣时间",
            prop: "releaseTimeRange",
            type: "date",
            format: "yyyy-MM-dd",
            valueFormat: "yyyy-MM-dd",
            searchValue: [this.getStartTime(), this.getEndTime()],
            searchRange: true,
            searchSpan: 5,
            hide: true,
            addDisplay: false,
            editDisplay: false,
            viewDisplay: false,
            search: true,
            rules: [
              {
                required: true,
                message: "请输入时间",
                trigger: "blur",
              },
            ],
          },
        ],
      },
    };
  },
  created() {
    if (this.userInfo.role_name == "保安公司管理员") {
      console.log("保安公司管理员登入");
      const deptColumn = this.findObject(this.option1.column, "deptId");
      deptColumn.search = false;
    } else {
      const deptColumn = this.findObject(
        this.option1.column,
        "dispatcherUnitId"
      );
      deptColumn.search = false;
    }
  },
  computed: {
    // },
    ids1() {
      let ids1 = [];
      this.selectionList1.forEach((ele) => {
        ids1.push(ele.id);
      });
      return ids1.join(",");
    },
    ...mapState({
      userInfo: (state) => state.user.userInfo,
    }),
    deps() {
      return this.form.deptId;
    },
  },
  methods: {
    openClick(val, page, params = {}) {
      this.vals = val;
      this.dialogVisible = true;
      params["userIds"] = val.userIds;
      //默认查询已派遣的,派遣结束,未派遣的不显示
      params["dispatch"] = 0;
      var values;
      const { releaseTimeRange } = this.query1;
      if (releaseTimeRange) {
        values = {
          ...params,
          beginTime: releaseTimeRange[0],
          overTime: releaseTimeRange[1],
          ...this.query,
        };
        values.releaseTimeRange = null;
      } else {
        values = {
          ...params,
          ...this.query,
        };
      }
      if (this.userInfo.role_name == "保安公司管理员") {
        // const deptColumn = this.findObject(this.option1.column, "deptId");
        // deptColumn.disabled = true;
        // // deptColumn.search = false; //会报错
        // deptColumn.value = this.userInfo.dept_id;
        this.option2.column[1].search = false;
        this.option2.column[1].value = this.userInfo.dept_id;
        this.option2.column[1].disabled = true;
        // this.option2.column[3].disabled = true;
        this.option2.column[3].value = val.userIds;
        this.initData(2, 2);
      } else {
        this.option2.column[1].search = true;
        // deptColumn.disabled = false;
        this.initData(1, 2);
      }
      getdata1(
        page.currentPage,
        page.pageSize,
        // Object.assign(params, this.query2)
        values
      ).then((res) => {
        const data = res.data.data;
        this.page2.total = data.total;
        this.data2 = data.records;
        this.loading2 = false;
        //     // this.$nextTick(() => this.$refs.crudrec1.dicInit("cascader"));
        //     // console.log(this.form, 111111);
      });
      //   console.log(val);
    },
    refreshChange2() {
      // console.log(4534)
      this.openClick(this.vals, this.page2, this.query2);
    },
    searchChange2(params, done) {
      this.query2 = params;
      this.page2.currentPage = 1;
      this.refreshChange2();
      done();
    },
    rowSave2(form, done, loading) {
      // if(this.userInfo.role_name=="保安公司管理员"){
      //   const userColumn = this.findObject(this.option1.column, "userIds");
      //   userColumn.dicUrl = "/api/blade-user/page-security-units?deptId="+this.userInfo.dept_id;
      // }
      adddata1(form).then(
        (res) => {
          this.refreshChange2();
          this.onLoad1(this.page1);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
        },
        (error) => {
          window.console.log(error);
          loading();
        }
      );
      // }
    },
    searchReset2() {
      this.query2 = {};
      this.refreshChange2();
    },
    rowUpdate2(row, index, done, loading) {
      // if(this.userInfo.role_name=="保安公司管理员"){
      //   const userColumn = this.findObject(this.option1.column, "userIds");
      //   userColumn.dicUrl = "/api/blade-user/page-security-units?deptId="+this.userInfo.dept_id;
      // }
      update1(row).then(
        () => {
          this.refreshChange2();
          this.onLoad1(this.page1);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
        },
        (error) => {
          window.console.log(error);
          loading();
        }
      );
    },
    rowDel2(row) {
      this.$confirm("确定结束当前派遣?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
          console.log(row);
          return overDispatcher(row);
        })
        .then(() => {
          this.refreshChange2();
          this.onLoad1(this.page1);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
        });
    },
    handleChangeTABS(column) {
      this.typeTABS = column;
      if (column.prop == "tab1") {
        this.loading1 = false;
        // this.onLoad(this.page);
      } else if (column.prop == "tab2") {
        // this.loading = false;
        console.log(document.getElementsByClassName("el-card__body")[0]);
        this.onLoad1(this.page1); //第二个表格不会自动执行
      }
      // this.$message.success(JSON.stringify(column));
    },
    //派遣记录
    sizeChange1(val) {
      this.page1.currentPage = 1;
      this.page1.pageSize = val;
      // this.getData();
      this.onLoad1(this.page1, this.query1);
    },
    currentChange1(val) {
      this.page1.currentPage = val;
      // this.getData();
      this.onLoad1(this.page1, this.query1);
    },
    rowSave1(form, done, loading) {
      // if(this.userInfo.role_name=="保安公司管理员"){
      //   const userColumn = this.findObject(this.option1.column, "userIds");
      //   userColumn.dicUrl = "/api/blade-user/page-security-units?deptId="+this.userInfo.dept_id;
      // }
      adddata1(form).then(
        (res) => {
          this.onLoad1(this.page1);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
        },
        (error) => {
          window.console.log(error);
          loading();
        }
      );
      // }
    },
    searchChange1(params, done) {
      this.query1 = params;
      this.page1.currentPage = 1;
      this.onLoad1(this.page1, params);
      done();
    },
    searchReset1() {
      this.query = {};
      this.onLoad1(this.page1);
    },
    rowUpdate1(row, index, done, loading) {
      // if(this.userInfo.role_name=="保安公司管理员"){
      //   const userColumn = this.findObject(this.option1.column, "userIds");
      //   userColumn.dicUrl = "/api/blade-user/page-security-units?deptId="+this.userInfo.dept_id;
      // }
      update1(row).then(
        () => {
          this.onLoad1(this.page1);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
        },
        (error) => {
          window.console.log(error);
          loading();
        }
      );
    },
    rowDel1(row) {
      this.$confirm("确定结束当前派遣?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
          return overDispatcher(row);
        })
        .then(() => {
          this.onLoad1(this.page1);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
        });
    },
    selectionChange1(list) {
      this.selectionList1 = list;
      // console.log(this.selectionList1.length);
    },
    handleDelete1() {
      console.log(this.selectionList1);
      if (this.selectionList1.length === 0) {
        this.$message.warning("请选择至少一条数据");
        return;
      }
      this.$confirm("确定将选择数据删除?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
          return remove1(this.ids1);
        })
        .then(() => {
          this.onLoad1(this.page1);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          this.$refs.crudrec1.toggleSelection();
        });
    },
    refreshChange1() {
      // console.log(4534)
      this.onLoad1(this.page1, this.query1);
    },
    // beforeOpen(done, type) {
    //   var that = this;
    //   if (["add", "edit", "view"].includes(type)) {
    //     if (this.userInfo.role_name == "保安公司管理员") {
    //       getListByDeptId(that.userInfo.dept_id).then((res) => {
    //         const userColumn = that.findObject(this.option1.column, "userIds");
    //         userColumn.dicData = res.data.data;
    //       });
    //     }
    //   }
    //   this.initFlag = true;
    //   done();
    // },
    getStartTime() {
      if (
        this.$route.query.startTime != undefined &&
        this.$route.query.startTime != null &&
        this.$route.query.startTime != ""
      ) {
        return this.$route.query.startTime;
      }
      return "";
    },
    getEndTime() {
      if (
        this.$route.query.endTime != undefined &&
        this.$route.query.endTime != null &&
        this.$route.query.endTime != ""
      ) {
        return this.$route.query.endTime;
      }
      return "";
    },
    //
    onLoad1(page, params = {}) {
      this.loading1 = true;
      var values;
      //默认查询已派遣的,派遣结束,未派遣的不显示
      params["dispatch"] = 0;
      if (this.card.jurisdiction == 1372091709474910209) {
        this.card.jurisdiction = "";
      }
      const { releaseTimeRange } = this.query1;
      if (releaseTimeRange) {
        values = {
          ...params,
          beginTime: releaseTimeRange[0],
          overTime: releaseTimeRange[1],
          ...this.query,
          ...this.card,
        };
        values.releaseTimeRange = null;
      } else {
        values = {
          ...params,
          ...this.query,
          ...this.card,
        };
      }
      if (this.userInfo.role_name == "保安公司管理员") {
        const deptColumn = this.findObject(this.option1.column, "deptId");
        deptColumn.disabled = true;
        // deptColumn.search = false; //会报错
        deptColumn.value = this.userInfo.dept_id;
        this.initData(2);
      } else {
        this.initData(1);
      }
      getdata1(
        page.currentPage,
        page.pageSize,
        // Object.assign(params, this.query)
        values
      ).then((res) => {
        const data = res.data.data;
        this.page1.total = data.total;
        this.data1 = data.records;
        this.loading1 = false;
        // this.$nextTick(() => this.$refs.crudrec1.dicInit("cascader"));
        // console.log(this.form, 111111);
      });
    },
    initData(type, d = 1) {
      var that = this;
      if (type == 1) {
        getDispatcherUnitByDeptId(null).then((res) => {
          const dispatcherUnitIdColumn = that.findObject(
            this["option" + d].column,
            "dispatcherUnitId"
          );
          //   console.log(res.data.data, 111);
          dispatcherUnitIdColumn.dicData = res.data.data;
        });
      }
      if (type == 2) {
        getDispatcherUnitByDeptId(that.userInfo.dept_id).then((res) => {
          const dispatcherUnitIdColumn = that.findObject(
            this["option" + d].column,
            "dispatcherUnitId"
          );
          dispatcherUnitIdColumn.dicData = res.data.data;
        });
        getListByDeptId(that.userInfo.dept_id, 1).then((res) => {
          const userIdsColumn = that.findObject(
            this["option" + d].column,
            "userIds"
          );
          userIdsColumn.dicData = res.data.data;
        });
      }
    },
  },
  //  watch: {
  //   // "form.deptId"() {
  //   //   this.initData();
  //   // }
  //   deps(){
  //     console.log(this.deps,5646646)
  //   }
  // },
  mounted() {
    this.onLoad1(this.page1, this.query1);
  },
};
</script>
<style lang="scss" scoped>
.dispatch {
  width: 100%;
  height: 100%;
  //   border: 1px solid #000;
  box-sizing: border-box;
}
.el-collapse-item {
  padding-top: 15px !important;
}
</style>
src/views/securityAnalysis/child/assignment.vue
@@ -1,1003 +1,211 @@
<template>
  <basic-container>
    <div
      :class="[
        'dispatchChildoperable',
        $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '',
      ]"
  <div
    :class="[
      'certificateTJ',
      $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '',
    ]"
  >
    <avue-crud
      :option="option1"
      :data="data1"
      :page.sync="page1"
      :table-loading="loading1"
      @on-load="getPractitionersPageInfo(page1)"
      @search-change="searchChange"
      @search-reset="searchReset"
      @refresh-change="refreshChange"
    >
      <avue-crud
        :option="option1"
        :data="data1"
        :page.sync="page1"
        ref="crudrec1"
        v-model="form1"
        :table-loading="loading1"
        :before-open="beforeOpen"
        @row-save="rowSave1"
        @search-change="searchChange1"
        @search-reset="searchReset1"
        @row-update="rowUpdate1"
        @row-del="rowDel1"
        @selection-change="selectionChange1"
        @refresh-change="refreshChange1"
      >
        <template slot-scope="{ type, row }" slot="menu">
          <el-button
            icon="el-icon-check"
            size="small"
            :type="type"
            @click="openClick(row, page2)"
            >派遣轨迹</el-button
          >
        </template>
      </avue-crud>
    </div>
    <el-dialog
      title="提示"
      :visible.sync="dialogVisible"
      width="80%"
      top="10vh"
      append-to-body
    >
      <avue-crud
        :option="option2"
        :data="data2"
        :page.sync="page2"
        ref="crudrec2"
        v-model="form2"
        :table-loading="loading2"
        @selection-change="selectionChange2"
        @search-change="searchChange2"
        @row-save="rowSave2"
        @search-reset="searchReset2"
        @row-update="rowUpdate2"
        @row-del="rowDel2"
        @refresh-change="refreshChange2"
      >
        <!-- :before-open="beforeOpen"
        -->
        <!-- <template slot-scope="{ type, row }" slot="menu">
          <el-button
            icon="el-icon-check"
            size="small"
            :type="type"
            @click="openClick(row)"
            >派遣轨迹</el-button
          >
        </template> -->
      </avue-crud>
    </el-dialog>
  </basic-container>
    </avue-crud>
  </div>
</template>
<script>
import {
  getdata1,
  adddata1,
  update1,
  remove1,
  getDispatcherUnitByDeptId,
  overDispatcher,
} from "@/api/dispatch/dispatch";
import { update, getListByDeptId } from "@/api/system/user";
import { mapState } from "vuex";
import { getList } from "@/api/securityGuard/securityGuard"; // 保安员
export default {
  props: ["card"],
  data() {
    var dicUrl =
        "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697",
      search = true;
    if (this.card.jurisdiction != "") {
      dicUrl =
        "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697&jurisdiction=" +
        this.card.jurisdiction;
    } else if (this.card.jurisdiction == 1372091709474910209) {
      // a = "";
    }
    // console.log(this.card);
    if (this.card.deptId != "") {
      search = false;
    }
    return {
      dialogVisible: false,
      dialogId: "",
      dialogData: [],
      deptCategory: "",
      deptId: "",
      loading1: true, //派遣记录
      selectionList1: [],
      securityid1: "",
      ExperienceVisible: false,
      loading1: true,
      page1: {
        pageSize: 10,
        currentPage: 1,
        total: 0,
        ...this.$store.state.control.changePageSize,
      },
      form1: {},
      query1: {},
      data1: [],
      option1: {
        addBtn: false,
        searchShowBtn: false,
        columnBtn: false,
        // refreshBtn: false,
        // card: true,
        tip: false,
        index: true,
        // menu: false,
        searchSize: "mini",
        searchMenuSpan: 8,
        menu: false,
        height: "auto",
        cellBtn: false,
        delBtnText: "结束派遣",
        editBtnText: "更改派遣",
        addTitle: "记录添加",
        addBtnText: "记录添加",
        // addBtn: false,
        menuWidth: 256,
        align: "center",
        selection: true,
        ...this.$store.state.control.clearOtherBut,
        column: [
          // },
          {
            label: "派遣单位",
            prop: "dispatcherCompany",
            // addDisplay: false,
            // editDisplay: false,
            // search: true,
            // labelWidth: 120,
            // searchSpan: 4,
            minWidth: 210,
            addDisplay: false,
            editDisplay: false,
          },
          {
            label: "保安公司",
            prop: "deptId",
            search: true,
            labelWidth: 120,
            type: "tree",
            searchSpan: 4,
            cascaderItem: ["userIds"],
            props: {
              label: "title",
              value: "id",
            },
            width: 180,
            dicUrl: `/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697`,
            rules: [
              {
                required: true,
                message: "请输入保安公司",
                trigger: "blur",
              },
            ],
          },
          {
            label: "派遣单位",
            prop: "dispatcherUnitId",
            labelWidth: 120,
            searchLabelWidth: 80,
            // dicUrl: "/api/dispatcherUnit/page-tree?deptId={{key}}",
            props: {
              label: "name",
              value: "id",
            },
            hide: true,
            searchSpan: 4,
            search: true,
            overHidden: true,
            type: "tree",
            rules: [
              {
                required: true,
                message: "请输入派遣单位",
                trigger: "blur",
              },
            ],
          },
          {
            label: "保安员",
            prop: "userIds",
            type: "tree",
            width: 70,
            labelWidth: 120,
            searchSpan: 3,
            search: true,
            hide: true,
            props: {
              label: "realName",
              value: "id",
            },
            // dicUrl: `/api/blade-user/page-security-units?dispatch=1&deptId={{key}}`,
            dicUrl: `/api/blade-user/page-security-units?status=1&deptId={{key}}`,
            dicData: [],
            rules: [
              {
                required: true,
                message: "请选择保安",
                trigger: "blur",
              },
            ],
          },
          {
            label: "保安员",
            prop: "securityName",
            type: "tree",
            width: 70,
            labelWidth: 120,
            addDisplay: false,
            editDisplay: false,
            // hide: true,
            // props: {
            //   label: "realName",
            //   value: "id",
            // },
            // dicUrl: `/api/blade-user/page-security-units?dispatch=1&deptId={{key}}`,
            dicData: [],
            rules: [
              {
                required: true,
                message: "请选择保安",
                trigger: "blur",
              },
            ],
          },
          {
            label: "身份证",
            prop: "idCardNo",
            labelWidth: 120,
            overHidden: true,
            addDisplay: false,
            editDisplay: false,
            rules: [
              {
                required: true,
                message: "请输入身份证",
                trigger: "click",
              },
            ],
            // search: true,
            // searchSpan: 4,
            // overHidden: true
          },
          // {
          //     label: "派遣人",
          //     prop: "dispatcher",
          //     // search: true,
          //     // searchSpan: 4,
          //     // overHidden: true
          // },
          {
            label: "派遣地址",
            prop: "dispatcheraddress",
            labelWidth: 120,
            rules: [
              {
                required: true,
                message: "请输入派遣地址",
                trigger: "click",
              },
            ],
            // search: true,
            // searchSpan: 4,
            // overHidden: true
          },
          {
            label: "开始时间",
            prop: "dispatchertime",
            type: "date",
            format: "yyyy-MM-dd",
            valueFormat: "yyyy-MM-dd",
            labelWidth: 120,
            searchSpan: 5,
            // search: true,
            overHidden: true,
            rules: [
              {
                required: true,
                message: "请输入派遣时间",
                trigger: "click",
              },
            ],
            // overHidden: true
          },
          {
            label: "结束时间",
            prop: "endTime",
            type: "date",
            format: "yyyy-MM-dd",
            valueFormat: "yyyy-MM-dd",
            labelWidth: 120,
            overHidden: true,
            rules: [
              {
                required: true,
                message: "请输入结束时间",
                trigger: "click",
              },
            ],
            // search: true,
            // searchSpan: 4,
            // overHidden: true
          },
          {
            label: "派遣时间",
            prop: "releaseTimeRange",
            type: "date",
            format: "yyyy-MM-dd",
            valueFormat: "yyyy-MM-dd",
            searchValue: [this.getStartTime(), this.getEndTime()],
            searchRange: true,
            searchSpan: 5,
            hide: true,
            addDisplay: false,
            editDisplay: false,
            viewDisplay: false,
            search: true,
            rules: [
              {
                required: true,
                message: "请输入时间",
                trigger: "blur",
              },
            ],
          },
        ],
      },
      loading2: true, //单个人派遣记录
      vals: [],
      selectionList2: [],
      page2: {
        pageSize: 10,
        currentPage: 1,
        total: 0,
        ...this.$store.state.control.changePageSize,
      },
      form2: {},
      query2: {},
      data2: [],
      option2: {
        // card: true,
        tip: false,
        widtd: "auto",
        // calcHeight: 54,
        border: true, //liu
        stripe: true,
        // tip: false,
        index: true,
        // menu: false,
        searchSize: "mini",
        searchMenuSpan: 8,
        height: 450,
        cellBtn: false,
        delBtnText: "结束派遣",
        editBtnText: "更改派遣",
        addTitle: "记录添加",
        addBtnText: "记录添加",
        // addBtn: false,
        menuWidth: 256,
        ...this.$store.state.control.clearOtherBut,
        // dialogClickModal: false,
        // headerAlign: "center",
        align: "center",
        selection: true,
        column: [
          // },
          {
            label: "派遣单位",
            prop: "dispatcherCompany",
            // addDisplay: false,
            // editDisplay: false,
            // search: true,
            // labelWidth: 120,
            // searchSpan: 4,
            minWidth: 210,
            addDisplay: false,
            editDisplay: false,
            label: "姓名",
            prop: "realName",
            disabled: true,
            searchLabelWidth: "50",
            overHidden: true,
            searchSpan: 4,
            search: true,
          },
          {
            label: "保安公司",
            label: "企业名称",
            searchLabelWidth: "110",
            // prop: "deptName",
            prop: "deptId",
            search: true,
            labelWidth: 120,
            type: "tree",
            searchSpan: 4,
            cascaderItem: ["userIds"],
            dicUrl: dicUrl,
            props: {
              label: "title",
              value: "id",
            },
            width: 180,
            dicUrl: `/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697`,
            rules: [
              {
                required: true,
                message: "请输入保安公司",
                trigger: "blur",
              },
            ],
          },
          {
            label: "派遣单位",
            prop: "dispatcherUnitId",
            labelWidth: 120,
            searchLabelWidth: 80,
            // dicUrl: "/api/dispatcherUnit/page-tree?deptId={{key}}",
            props: {
              label: "name",
              value: "id",
            },
            hide: true,
            searchSpan: 4,
            search: true,
            overHidden: true,
            type: "tree",
            rules: [
              {
                required: true,
                message: "请输入派遣单位",
                trigger: "blur",
              },
            ],
          },
          {
            label: "保安员",
            prop: "userIds",
            type: "tree",
            width: 70,
            labelWidth: 120,
            searchSpan: 3,
            // search: true,
            hide: true,
            props: {
              label: "realName",
              value: "id",
            },
            // dicUrl: `/api/blade-user/page-security-units?dispatch=1&deptId={{key}}`,
            dicUrl: `/api/blade-user/page-security-units?status=1&deptId={{key}}`,
            dicData: [],
            rules: [
              {
                required: true,
                message: "请选择保安",
                trigger: "blur",
              },
            ],
          },
          {
            label: "保安员",
            prop: "securityName",
            type: "tree",
            width: 70,
            labelWidth: 120,
            addDisplay: false,
            editDisplay: false,
            // hide: true,
            // props: {
            //   label: "realName",
            //   value: "id",
            // },
            // dicUrl: `/api/blade-user/page-security-units?dispatch=1&deptId={{key}}`,
            dicData: [],
            rules: [
              {
                required: true,
                message: "请选择保安",
                trigger: "blur",
              },
            ],
          },
          {
            label: "身份证",
            prop: "idCardNo",
            labelWidth: 120,
            overHidden: true,
            addDisplay: false,
            editDisplay: false,
            rules: [
              {
                required: true,
                message: "请输入身份证",
                trigger: "click",
              },
            ],
            // search: true,
            // searchSpan: 4,
            // overHidden: true
          },
          // {
          //     label: "派遣人",
          //     prop: "dispatcher",
          //     // search: true,
          //     // searchSpan: 4,
          //     // overHidden: true
          // },
          {
            label: "派遣地址",
            prop: "dispatcheraddress",
            labelWidth: 120,
            rules: [
              {
                required: true,
                message: "请输入派遣地址",
                trigger: "click",
              },
            ],
            // search: true,
            // searchSpan: 4,
            // overHidden: true
            // slot: true,
            searchSpan: 4,
            display: false,
            search: search,
            minWidth: 220,
          },
          {
            label: "开始时间",
            prop: "dispatchertime",
            type: "date",
            format: "yyyy-MM-dd",
            valueFormat: "yyyy-MM-dd",
            labelWidth: 120,
            searchSpan: 5,
            // search: true,
            overHidden: true,
            rules: [
            label: "性别",
            prop: "sex",
            type: "select",
            dicData: [
              {
                required: true,
                message: "请输入派遣时间",
                trigger: "click",
                label: "男",
                value: 1,
              },
              {
                label: "女",
                value: 2,
              },
              {
                label: "未知",
                value: 3,
              },
            ],
            // overHidden: true
            display: false,
          },
          {
            label: "结束时间",
            prop: "endTime",
            type: "date",
            format: "yyyy-MM-dd",
            valueFormat: "yyyy-MM-dd",
            labelWidth: 120,
            overHidden: true,
            rules: [
              {
                required: true,
                message: "请输入结束时间",
                trigger: "click",
              },
            ],
            // search: true,
            // searchSpan: 4,
            // overHidden: true
          },
          {
            label: "派遣时间",
            prop: "releaseTimeRange",
            type: "date",
            format: "yyyy-MM-dd",
            valueFormat: "yyyy-MM-dd",
            searchValue: [this.getStartTime(), this.getEndTime()],
            searchRange: true,
            searchSpan: 5,
            hide: true,
            addDisplay: false,
            editDisplay: false,
            viewDisplay: false,
            label: "身份证号码",
            prop: "cardid",
            search: true,
            searchLabelWidth: 90,
            searchSpan: 4,
          },
          {
            label: "年龄",
            prop: "age",
          },
          {
            label: "年龄",
            prop: "ageType",
            type: "select",
            hide:true,
            search:true,
            searchSpan:4,
            dicData:[
              {
                label:"全部",
                value:4
              },
              {
                label:"18-30周岁",
                value:1
              },
              {
                label:"30-45周岁",
                value:2
              },
              {
                label:"45-60周岁",
                value:3
              },
            ],
            rules: [
              {
                required: true,
                message: "请输入时间",
                message: "请选择年龄",
                trigger: "blur",
              },
            ],
          },
          {
            label: "联系电话",
            prop: "phone",
            display: false,
          },
        ],
      },
    };
  },
  created() {
    if (this.userInfo.role_name == "保安公司管理员") {
      console.log("保安公司管理员登入");
      const deptColumn = this.findObject(this.option1.column, "deptId");
      deptColumn.search = false;
    } else {
      const deptColumn = this.findObject(
        this.option1.column,
        "dispatcherUnitId"
      );
      deptColumn.search = false;
    }
  },
  computed: {
    // },
    ids1() {
      let ids1 = [];
      this.selectionList1.forEach((ele) => {
        ids1.push(ele.id);
      });
      return ids1.join(",");
    },
    ...mapState({
      userInfo: (state) => state.user.userInfo,
    }),
    deps() {
      return this.form.deptId;
    },
  },
  methods: {
    openClick(val, page, params = {}) {
      this.vals = val;
      this.dialogVisible = true;
      params["userIds"] = val.userIds;
      //默认查询已派遣的,派遣结束,未派遣的不显示
      params["dispatch"] = 0;
      var values;
      const { releaseTimeRange } = this.query1;
      if (releaseTimeRange) {
        values = {
          ...params,
          beginTime: releaseTimeRange[0],
          overTime: releaseTimeRange[1],
          ...this.query,
        };
        values.releaseTimeRange = null;
      } else {
        values = {
          ...params,
          ...this.query,
        };
      }
      if (this.userInfo.role_name == "保安公司管理员") {
        // const deptColumn = this.findObject(this.option1.column, "deptId");
        // deptColumn.disabled = true;
        // // deptColumn.search = false; //会报错
        // deptColumn.value = this.userInfo.dept_id;
        this.option2.column[1].search = false;
        this.option2.column[1].value = this.userInfo.dept_id;
        this.option2.column[1].disabled = true;
        // this.option2.column[3].disabled = true;
        this.option2.column[3].value = val.userIds;
        this.initData(2, 2);
      } else {
        this.option2.column[1].search = true;
        // deptColumn.disabled = false;
        this.initData(1, 2);
      }
      getdata1(
        page.currentPage,
        page.pageSize,
        // Object.assign(params, this.query2)
        values
      ).then((res) => {
        const data = res.data.data;
        this.page2.total = data.total;
        this.data2 = data.records;
        this.loading2 = false;
        //     // this.$nextTick(() => this.$refs.crudrec1.dicInit("cascader"));
        //     // console.log(this.form, 111111);
      });
      //   console.log(val);
    },
    refreshChange2() {
      // console.log(4534)
      this.openClick(this.vals, this.page2, this.query2);
    },
    searchChange2(params, done) {
      this.query2 = params;
      this.page2.currentPage = 1;
      this.refreshChange2();
      done();
    },
    rowSave2(form, done, loading) {
      // if(this.userInfo.role_name=="保安公司管理员"){
      //   const userColumn = this.findObject(this.option1.column, "userIds");
      //   userColumn.dicUrl = "/api/blade-user/page-security-units?deptId="+this.userInfo.dept_id;
      // }
      adddata1(form).then(
        (res) => {
          this.refreshChange2();
          this.onLoad1(this.page1);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
        },
        (error) => {
          window.console.log(error);
          loading();
        }
      );
      // }
    },
    searchReset2() {
      this.query2 = {};
      this.refreshChange2();
    },
    rowUpdate2(row, index, done, loading) {
      // if(this.userInfo.role_name=="保安公司管理员"){
      //   const userColumn = this.findObject(this.option1.column, "userIds");
      //   userColumn.dicUrl = "/api/blade-user/page-security-units?deptId="+this.userInfo.dept_id;
      // }
      update1(row).then(
        () => {
          this.refreshChange2();
          this.onLoad1(this.page1);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
        },
        (error) => {
          window.console.log(error);
          loading();
        }
      );
    },
    rowDel2(row) {
      this.$confirm("确定结束当前派遣?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
          console.log(row);
          return overDispatcher(row);
        })
        .then(() => {
          this.refreshChange2();
          this.onLoad1(this.page1);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
        });
    },
    handleChangeTABS(column) {
      this.typeTABS = column;
      if (column.prop == "tab1") {
        this.loading1 = false;
        // this.onLoad(this.page);
      } else if (column.prop == "tab2") {
        // this.loading = false;
        console.log(document.getElementsByClassName("el-card__body")[0]);
        this.onLoad1(this.page1); //第二个表格不会自动执行
      }
      // this.$message.success(JSON.stringify(column));
    },
    //派遣记录
    sizeChange1(val) {
      this.page1.currentPage = 1;
      this.page1.pageSize = val;
      // this.getData();
      this.onLoad1(this.page1, this.query1);
    },
    currentChange1(val) {
      this.page1.currentPage = val;
      // this.getData();
      this.onLoad1(this.page1, this.query1);
    },
    rowSave1(form, done, loading) {
      // if(this.userInfo.role_name=="保安公司管理员"){
      //   const userColumn = this.findObject(this.option1.column, "userIds");
      //   userColumn.dicUrl = "/api/blade-user/page-security-units?deptId="+this.userInfo.dept_id;
      // }
      adddata1(form).then(
        (res) => {
          this.onLoad1(this.page1);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
        },
        (error) => {
          window.console.log(error);
          loading();
        }
      );
      // }
    },
    searchChange1(params, done) {
      this.query1 = params;
      this.page1.currentPage = 1;
      this.onLoad1(this.page1, params);
      done();
    },
    searchReset1() {
      this.query = {};
      this.onLoad1(this.page1);
    },
    rowUpdate1(row, index, done, loading) {
      // if(this.userInfo.role_name=="保安公司管理员"){
      //   const userColumn = this.findObject(this.option1.column, "userIds");
      //   userColumn.dicUrl = "/api/blade-user/page-security-units?deptId="+this.userInfo.dept_id;
      // }
      update1(row).then(
        () => {
          this.onLoad1(this.page1);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
        },
        (error) => {
          window.console.log(error);
          loading();
        }
      );
    },
    rowDel1(row) {
      this.$confirm("确定结束当前派遣?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
          return overDispatcher(row);
        })
        .then(() => {
          this.onLoad1(this.page1);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
        });
    },
    selectionChange1(list) {
      this.selectionList1 = list;
      // console.log(this.selectionList1.length);
    },
    handleDelete1() {
      console.log(this.selectionList1);
      if (this.selectionList1.length === 0) {
        this.$message.warning("请选择至少一条数据");
        return;
      }
      this.$confirm("确定将选择数据删除?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
          return remove1(this.ids1);
        })
        .then(() => {
          this.onLoad1(this.page1);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          this.$refs.crudrec1.toggleSelection();
        });
    },
    refreshChange1() {
      // console.log(4534)
      this.onLoad1(this.page1, this.query1);
    },
    // beforeOpen(done, type) {
    //   var that = this;
    //   if (["add", "edit", "view"].includes(type)) {
    //     if (this.userInfo.role_name == "保安公司管理员") {
    //       getListByDeptId(that.userInfo.dept_id).then((res) => {
    //         const userColumn = that.findObject(this.option1.column, "userIds");
    //         userColumn.dicData = res.data.data;
    //       });
    //     }
    //   }
    //   this.initFlag = true;
    //   done();
    // },
    getStartTime() {
      if (
        this.$route.query.startTime != undefined &&
        this.$route.query.startTime != null &&
        this.$route.query.startTime != ""
      ) {
        return this.$route.query.startTime;
      }
      return "";
    },
    getEndTime() {
      if (
        this.$route.query.endTime != undefined &&
        this.$route.query.endTime != null &&
        this.$route.query.endTime != ""
      ) {
        return this.$route.query.endTime;
      }
      return "";
    },
    //
    onLoad1(page, params = {}) {
      this.loading1 = true;
      var values;
      //默认查询已派遣的,派遣结束,未派遣的不显示
      params["dispatch"] = 0;
    getPractitionersPageInfo(page, params = {}) {
      if (this.card.jurisdiction == 1372091709474910209) {
        this.card.jurisdiction = "";
      }
      const { releaseTimeRange } = this.query1;
      if (releaseTimeRange) {
        values = {
          ...params,
          beginTime: releaseTimeRange[0],
          overTime: releaseTimeRange[1],
          ...this.query,
          ...this.card,
        };
        values.releaseTimeRange = null;
      } else {
        values = {
          ...params,
          ...this.query,
          ...this.card,
        };
      }
      if (this.userInfo.role_name == "保安公司管理员") {
        const deptColumn = this.findObject(this.option1.column, "deptId");
        deptColumn.disabled = true;
        // deptColumn.search = false; //会报错
        deptColumn.value = this.userInfo.dept_id;
        this.initData(2);
      } else {
        this.initData(1);
      }
      getdata1(
        page.currentPage,
        page.pageSize,
        // Object.assign(params, this.query)
        values
      ).then((res) => {
      params = {
        ...this.card,
        ...params,
        status: 1,
        ...this.query1,
      };
      getList(page.currentPage, page.pageSize, params).then((res) => {
        // console.log(res.data.data.records);
        const data = res.data.data;
        this.page1.total = data.total;
        this.data1 = data.records;
        this.page1.total = data.total;
        this.loading1 = false;
        // this.$nextTick(() => this.$refs.crudrec1.dicInit("cascader"));
        // console.log(this.form, 111111);
      });
    },
    initData(type, d = 1) {
      var that = this;
      if (type == 1) {
        getDispatcherUnitByDeptId(null).then((res) => {
          const dispatcherUnitIdColumn = that.findObject(
            this["option" + d].column,
            "dispatcherUnitId"
          );
          //   console.log(res.data.data, 111);
          dispatcherUnitIdColumn.dicData = res.data.data;
        });
      }
      if (type == 2) {
        getDispatcherUnitByDeptId(that.userInfo.dept_id).then((res) => {
          const dispatcherUnitIdColumn = that.findObject(
            this["option" + d].column,
            "dispatcherUnitId"
          );
          dispatcherUnitIdColumn.dicData = res.data.data;
        });
        getListByDeptId(that.userInfo.dept_id, 1).then((res) => {
          const userIdsColumn = that.findObject(
            this["option" + d].column,
            "userIds"
          );
          userIdsColumn.dicData = res.data.data;
        });
      }
    refreshChange() {
      this.getPractitionersPageInfo(this.page1, this.query1);
    },
  },
  //  watch: {
  //   // "form.deptId"() {
  //   //   this.initData();
  //   // }
  //   deps(){
  //     console.log(this.deps,5646646)
  //   }
  // },
  mounted() {
    this.onLoad1(this.page1, this.query1);
    searchChange(params, done) {
      this.query1 = params;
      this.page1.currentPage = 1;
      this.refreshChange();
      done();
    },
    searchReset() {
      this.query1 = {};
      this.page1.currentPage = 1;
      this.refreshChange();
    },
  },
};
</script>
<style lang="scss" scoped>
.dispatch {
  width: 100%;
  height: 100%;
  //   border: 1px solid #000;
  box-sizing: border-box;
}
.el-collapse-item {
  padding-top: 15px !important;
}
</style>
<style scoped>
</style>
src/views/securityAnalysis/index.vue
@@ -108,6 +108,7 @@
  getinformationstatistics, //保安员考试情况统计
  getExamStatisInfo, //保安员考试情况统计
  getinformationselectDisp, //保安派遣情况
  getAgeStatistics, //保安员年龄分布情况
  getinformationselectSoil, //社保缴纳情况统计
  getEducationStatistics
} from "@/api/securityAnalysis/securityAnalysis";
@@ -792,21 +793,30 @@
    },
    getEC5() {
      var that = this;
      getinformationselectDisp(this.deptid, this.jurisdiction)
      getAgeStatistics(this.deptid, this.jurisdiction)
        .then((res) => {
          var a = res.data.data;
          // console.log(a, "111111");
          var b = that.changedata(a, "pnum", "wpnum", "已派遣", "未派遣");
          that.setEC5(b);
        })
        .catch((res) => {
          var b = that.changedata([], "pnum", "wpnum", "已派遣", "未派遣");
          that.setEC5(b);
          var data = res.data.data;
          var a = [
            {
              value:data[0],
              name:"18-30周岁"
            },
            {
              value:data[1],
              name:"30-45周岁"
            },
            {
              value:data[2],
              name:"45-60周岁"
            },
          ]
          console.log(a, "111111");
          this.setEC5(a);
        });
    },
    setEC5(d) {
      var option;
      d = this.setColor(d, this.colors);
      // d = this.setColor(d, this.colors);
      option = {
        title: {
          text: "保安员年龄分布情况统计",
@@ -819,17 +829,13 @@
        },
        toolbox: this.gettoolbox("保安员年龄分布情况查询", "保安员年龄分布情况明细", 5),
        legend: {
          // orient: "vertical",
          // left: "left",
          x: "center",
          y: "90%",
        },
        series: [
          {
            // name: "访问来源",
            type: "pie",
            radius: "50%",
            // data: d,
            data: d,
            emphasis: {
              itemStyle: {
@@ -839,7 +845,6 @@
              },
            },
            label: {
              // alignTo: "edge",
              formatter: "{b}\n({d}%)",
            },
          },