保安服务企业管理-验收版本
Administrator
2021-09-13 4317aeff5de272c8f216c8050dc52f17bbed7099
Merge branch 'master' of http://192.168.0.105:10010/r/zhba_enterprises_ys
13 files modified
1040 ■■■■ changed files
src/views/dispatch/dispatch.vue 88 ●●●● patch | view | raw | blame | history
src/views/dispatch/dispatchChildoperable.vue 443 ●●●●● patch | view | raw | blame | history
src/views/securityAnalysis/child/assignment.vue 4 ●●●● patch | view | raw | blame | history
src/views/securityAnalysis/child/certificate.vue 2 ●●● patch | view | raw | blame | history
src/views/securityAnalysis/child/dispatch.vue 49 ●●●● patch | view | raw | blame | history
src/views/securityAnalysis/child/examination.vue 2 ●●● patch | view | raw | blame | history
src/views/securityAnalysis/child/situation.vue 2 ●●● patch | view | raw | blame | history
src/views/securityUnit/armedEscort.vue 16 ●●●●● patch | view | raw | blame | history
src/views/securityUnit/index.vue 384 ●●●● patch | view | raw | blame | history
src/views/securityUnit/securityTraining.vue 16 ●●●●● patch | view | raw | blame | history
src/views/securityUnit/selfRecruitedSecurityGuard.vue 16 ●●●●● patch | view | raw | blame | history
src/views/securityUnit/transRegionalcompany.vue 16 ●●●●● patch | view | raw | blame | history
vue.config.js 2 ●●● patch | view | raw | blame | history
src/views/dispatch/dispatch.vue
@@ -3,7 +3,8 @@
        <div class="dispatch">
            <!-- <avue-tabs :option="optionTABS" @change="handleChangeTABS"></avue-tabs>
    <span v-if="typeTABS.prop === 'tab1'"> -->
            <avue-crud :option="option"
      <avue-crud
        :option="option"
                       :data="data"
                       :page.sync="page"
                       ref="crudrec"
@@ -16,39 +17,46 @@
                       @row-del="rowDel"
                       @selection-change="selectionChange"
                       @refresh-change="refreshChange"
                       @row-click="rowClick">
        @row-click="rowClick"
      >
                <template slot="menuLeft">
                    <el-button type="danger"
          <el-button
            type="danger"
                               size="small"
                               plain
                               icon="el-icon-delete"
                               @click="handleDelete">删 除
            @click="handleDelete"
            >删 除
                    </el-button>
                    <el-button type="success"
          <el-button
            type="success"
                               size="small"
                               plain
                               icon="el-icon-upload2"
                               @click="handleImport">批量导入
            @click="handleImport"
            >批量导入
                    </el-button>
                </template>
                <template slot-scope="{ row }"
                          slot="jurisdiction">
        <template slot-scope="{ row }" slot="jurisdiction">
                    {{ row.jurisdiction == -1 ? "" : row.jurisdiction }}
                </template>
            </avue-crud>
            <el-dialog title="派遣单位导入"
      <el-dialog
        title="派遣单位导入"
                       append-to-body
                       :visible.sync="excelBox"
                       width="555px">
                <avue-form :option="excelOption"
        width="555px"
      >
        <avue-form
          :option="excelOption"
                           v-model="excelForm"
                           :upload-after="uploadAfter">
          :upload-after="uploadAfter"
        >
                    <template slot="excelTemplate">
                        <el-button type="primary"
                                   @click="handleTemplate">
            <el-button type="primary" @click="handleTemplate">
                            点击下载<i class="el-icon-download el-icon--right"></i>
                        </el-button>
                    </template>
@@ -226,12 +234,9 @@
                        // span: 12,
                        labelWidth: 118,
                    },
                    {
                        label: "保安公司",
                        prop: "deptId",
            prop: "deptName",
                        type: "tree",
                        overHidden: true,
                        dicUrl:
@@ -262,6 +267,40 @@
                        // hide: true,
                        // span: 11,
                    },
          //备用  不删 ↑针对没有depid的公司名字转换
          //   {
          //     label: "保安公司",
          //     prop: "deptId",
          //     type: "tree",
          //     overHidden: true,
          //     dicUrl:
          //       "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697",
          //     props: {
          //       label: "title",
          //       value: "id",
          //     },
          //     // hide: true,
          //     // hide: !website.tenantMode,
          //     // addDisplay: website.tenantMode,
          //     // editDisplay: website.tenantMode,
          //     // viewDisplay: website.tenantMode,
          //     rules: [
          //       {
          //         required: true,
          //         message: "请选择保安公司",
          //         trigger: "click",
          //       },
          //     ],
          //     labelWidth: 118,
          //     width: 230,
          //     searchLabelWidth: 80,
          //     search: true,
          //     searchSpan: 4,
          //     // editDisplay: false,
          //     // addDisplay: false,
          //     // hide: true,
          //     // span: 11,
          //   },
                    {
                        label: "保安服务类型",
                        prop: "serveType",
@@ -383,7 +422,7 @@
                                trigger: "click",
                            },
                        ],
                    }
          },
                ],
            },
        };
@@ -416,7 +455,7 @@
        },
        ...mapState({
            userInfo: (state) => state.user.userInfo,
        })
    }),
    },
    methods: {
        handleChangeTABS (column) {
@@ -463,6 +502,11 @@
            // }
        },
        searchChange (params, done) {
      if (params.deptName) {
        params.deptId = params.deptName;
      }
      delete params.deptName;
      //   console.log(params);
            this.query = params;
            this.page.currentPage = 1;
            this.onLoad(this.page, params);
@@ -585,7 +629,7 @@
                };
            }
            console.log(values);
      // console.log(values);
            getdata(
                page.currentPage,
@@ -593,10 +637,10 @@
                // Object.assign(params, this.query)
                values
            ).then((res) => {
                // console.log(res);
                const data = res.data.data;
                this.page.total = data.total;
                this.data = data.records;
        console.log(this.data);
                for (var k in this.data) {
                    // this.data[k]["deptId"] = that.userInfo.dept_id;
                    this.data[k]["tenantName"] = that.userInfo.user_name;
src/views/dispatch/dispatchChildoperable.vue
@@ -1,11 +1,12 @@
<template>
    <basic-container>
        <div class="dispatchChildoperable">
            <avue-crud :option="option1"
      <avue-crud
        :option="option1"
                       :data="data1"
                       :page.sync="page1"
                       ref="crudrec1"
                       v-model="form"
        v-model="form1"
                       :table-loading="loading1"
                       :before-open="beforeOpen"
                       @row-save="rowSave1"
@@ -14,9 +15,54 @@
                       @row-update="rowUpdate1"
                       @row-del="rowDel1"
                       @selection-change="selectionChange1"
                       @refresh-change="refreshChange1">
        @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>
@@ -35,6 +81,10 @@
export default {
    data () {
        return {
      dialogVisible: false,
      dialogId: "",
      dialogData: [],
            deptCategory: "",
            deptId: "",
@@ -45,7 +95,7 @@
                currentPage: 1,
                total: 0,
            },
            form: {},
      form1: {},
            query1: {},
            data1: [],
            option1: {
@@ -62,7 +112,7 @@
                addTitle: "记录添加",
                addBtnText: "记录添加",
                // addBtn: false,
                // menuWidth: 160,
        menuWidth: 256,
                align: "center",
                selection: true,
                column: [
@@ -272,7 +322,243 @@
                            },
                        ],
                    },
        ],
      },
      loading2: true, //单个人派遣记录
      vals: [],
      selectionList2: [],
      page2: {
        pageSize: 10,
        currentPage: 1,
        total: 0,
      },
      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",
              },
            ],
          },
                ],
            },
        };
@@ -308,6 +594,138 @@
    },
    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") {
@@ -511,31 +929,34 @@
                this.data1 = data.records;
                this.loading1 = false;
                // this.$nextTick(() => this.$refs.crudrec1.dicInit("cascader"));
                console.log(this.form, 111111);
        // console.log(this.form, 111111);
            });
        },
        initData (type) {
    initData(type, d = 1) {
            var that = this;
            if (type == 1) {
                getDispatcherUnitByDeptId(null).then((res) => {
                    const dispatcherUnitIdColumn = that.findObject(
                        this.option1.column,
            this["option" + d].column,
                        "dispatcherUnitId"
                    );
                    console.log(res.data.data, 111);
          //   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.option1.column,
            this["option" + d].column,
                        "dispatcherUnitId"
                    );
                    dispatcherUnitIdColumn.dicData = res.data.data;
                });
                getListByDeptId(that.userInfo.dept_id, 1).then((res) => {
                    const userIdsColumn = that.findObject(this.option1.column, "userIds");
          const userIdsColumn = that.findObject(
            this["option" + d].column,
            "userIds"
          );
                    userIdsColumn.dicData = res.data.data;
                });
            }
src/views/securityAnalysis/child/assignment.vue
@@ -274,7 +274,7 @@
      if (this.card.jurisdiction == 1123598813738675201) {
        this.card.jurisdiction = "";
      }
      console.log(this.query1);
      // console.log(this.query1);
      const releaseTimeRange = this.query1.releaseTimeRange;
      if (releaseTimeRange) {
        params = {
@@ -316,7 +316,7 @@
      this.query1 = {};
      this.page1.currentPage = 1;
      this.refreshChange();
      console.log(212);
      // console.log(212);
    },
  },
};
src/views/securityAnalysis/child/certificate.vue
@@ -200,7 +200,7 @@
      this.query1 = {};
      this.page1.currentPage = 1;
      this.refreshChange();
      console.log(212);
      // console.log(212);
    },
  },
};
src/views/securityAnalysis/child/dispatch.vue
@@ -75,15 +75,13 @@
            // span: 12,
            labelWidth: 118,
          },
          {
            label: "保安公司",
            prop: "deptId",
            prop: "deptName",
            type: "tree",
            overHidden: true,
            dicUrl:
              "/api/blade-system/dept/security_lazy-tree?jurisdiction=" +
              jurisdiction,
              "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697",
            props: {
              label: "title",
              value: "id",
@@ -110,6 +108,41 @@
            // hide: true,
            // span: 11,
          },
          //备用  不删 ↑针对没有depid的公司名字转换
          // {
          //   label: "保安公司",
          //   prop: "deptId",
          //   type: "tree",
          //   overHidden: true,
          //   dicUrl:
          //     "/api/blade-system/dept/security_lazy-tree?jurisdiction=" +
          //     jurisdiction,
          //   props: {
          //     label: "title",
          //     value: "id",
          //   },
          //   // hide: true,
          //   // hide: !website.tenantMode,
          //   // addDisplay: website.tenantMode,
          //   // editDisplay: website.tenantMode,
          //   // viewDisplay: website.tenantMode,
          //   rules: [
          //     {
          //       required: true,
          //       message: "请选择保安公司",
          //       trigger: "click",
          //     },
          //   ],
          //   labelWidth: 118,
          //   width: 230,
          //   searchLabelWidth: 80,
          //   search: true,
          //   searchSpan: 4,
          //   // editDisplay: false,
          //   // addDisplay: false,
          //   // hide: true,
          //   // span: 11,
          // },
          {
            label: "保安服务类型",
            prop: "serveType",
@@ -274,7 +307,7 @@
      if (this.card.jurisdiction == 1123598813738675201) {
        this.card.jurisdiction = "";
      }
      console.log(this.query1);
      // console.log(this.query1);
      const releaseTimeRange = this.query1.releaseTimeRange;
      if (releaseTimeRange) {
        params = {
@@ -307,6 +340,10 @@
      this.getPractitionersPageInfo(this.page1, this.query1);
    },
    searchChange(params, done) {
      if (params.deptName) {
        params.deptId = params.deptName;
      }
      delete params.deptName;
      this.query1 = params;
      this.page1.currentPage = 1;
      this.refreshChange();
@@ -316,7 +353,7 @@
      this.query1 = {};
      this.page1.currentPage = 1;
      this.refreshChange();
      console.log(212);
      // console.log(212);
    },
  },
};
src/views/securityAnalysis/child/examination.vue
@@ -78,7 +78,7 @@
  methods: {
    getPractitionersPageInfo(page, params = {}) {
      // this.data1 = this.czdata;
      console.log(page);
      // console.log(page);
      params = {
        ...params,
        ...this.card,
src/views/securityAnalysis/child/situation.vue
@@ -196,7 +196,7 @@
      this.query1 = {};
      this.page1.currentPage = 1;
      this.refreshChange();
      console.log(212);
      // console.log(212);
    },
  },
};
src/views/securityUnit/armedEscort.vue
@@ -739,4 +739,20 @@
    cursor: pointer;
  }
}
.information-box {
  .el-dialog {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    margin: auto !important;
    height: 86% !important;
    .el-dialog__body {
      padding: 10px 20px !important;
    }
  }
}
</style>
src/views/securityUnit/index.vue
@@ -1,8 +1,7 @@
<template>
  <basic-container>
    <div class="securityUnit">
      <avue-crud
        :option="option"
            <avue-crud :option="option"
        :data="data"
        :page.sync="page"
        ref="crudrec"
@@ -15,110 +14,99 @@
        @row-del="rowDel"
        @selection-change="selectionChange"
        @refresh-change="refreshChange"
        @row-click="rowClick"
      >
        <template slot-scope="{ type, size, row }" slot="menu">
          <el-button
            :size="size"
                       @row-click="rowClick">
                <template slot-scope="{ type, size, row }"
                          slot="menu">
                    <el-button :size="size"
            :type="type"
            @click="handleUploadPage(row)"
            icon="el-icon-circle-check"
            >附件上传
                               icon="el-icon-circle-check">附件上传
          </el-button>
        </template>
        <template slot="menuLeft">
          <el-button
            type="primary"
                    <el-button type="primary"
            icon="el-icon-plus"
            size="small"
            plain
            @click.stop="rowSave"
            >新增</el-button
          >
          <el-button
            type="danger"
                               @click.stop="rowSave">信息登记</el-button>
                    <el-button type="danger"
            size="small"
            plain
            icon="el-icon-delete"
            @click="handleDelete"
            >删 除
                               @click="handleDelete">删 除
          </el-button>
          <el-button
            type="success"
                    <el-button type="success"
            size="small"
            plain
            icon="el-icon-upload2"
            @click="handleImport1"
            >批量导入
                               @click="handleImport1">批量导入
          </el-button>
        </template>
      </avue-crud>
      <div class="lod" v-show="forms != -1">
        <div class="lod-in">
          <!-- <el-col class="trees" v-if="forms == 0">
          <div class="box">
            <el-scrollbar>
              <basic-container>
                <avue-tree
                  :option="treeOption"
                  :data="treeData"
                  @node-click="nodeClick"
                />
              </basic-container>
            </el-scrollbar>
          </div>
        </el-col> -->
          <avue-form
            ref="form"
            <el-dialog title="信息登记"
                       append-to-body
                       :visible.sync="forms"
                       :close-on-click-modal="false"
                       @close="tipover"
                       class="information-box"
                       width="60%">
                <el-tabs v-model="activeName"
                         @tab-click="handleClick">
                    <el-tab-pane label="保安单位基本信息"
                                 name="first">
                        <avue-form ref="form"
            v-model="obj0"
            :option="option0"
            v-if="forms == 0"
          >
            <template slot="menuForm">
              <el-button type="primary" @click="tip0">下一页</el-button>
              <el-button type="info" @click="tipover">取消</el-button>
                                   :option="option0">
                            <template slot="menuForm"
                                      align="center">
                                <el-button type="primary"
                                           @click="submitAdd">提交</el-button>
                                <el-button type="info"
                                           @click="tipover">取消</el-button>
            </template>
          </avue-form>
          <avue-form
            ref="form1"
                    </el-tab-pane>
                    <el-tab-pane label="保安单位出资人员"
                                 name="second">
                        <avue-form ref="form1"
            v-model="obj1"
            :option="option1"
            v-else-if="forms == 1"
          >
                                   :option="option1">
            <template slot="menuForm">
              <el-button type="primary" @click="tip1up1">上一页</el-button>
              <el-button type="primary" @click="tip1">下一页</el-button>
              <el-button type="info" @click="tipover">取消</el-button>
                                <el-button type="primary"
                                           @click="submitAdd">提交</el-button>
                                <el-button type="info"
                                           @click="tipover">取消</el-button>
            </template>
          </avue-form>
          <avue-form
            ref="form2"
                    </el-tab-pane>
                    <el-tab-pane label="主要管理人员信息"
                                 name="third">
                        <avue-form ref="form2"
            v-model="obj2"
            :option="option2"
            v-else-if="forms == 2"
          >
                                   :option="option2">
            <template slot="menuForm">
              <el-button type="primary" @click="tip2up2">上一页</el-button>
              <el-button type="primary" @click="tip2">提交</el-button>
              <el-button type="info" @click="tipover">取消</el-button>
                                <el-button type="primary"
                                           @click="submitAdd">提交</el-button>
                                <el-button type="info"
                                           @click="tipover">取消</el-button>
            </template>
          </avue-form>
                    </el-tab-pane>
                </el-tabs>
            </el-dialog>
        </div>
      </div>
    </div>
    <el-dialog
      title="保安单位导入"
        <el-dialog title="保安单位导入"
      append-to-body
      :visible.sync="excelBox1"
      width="555px"
    >
      <avue-form
        :option="excelOption1"
                   width="555px">
            <avue-form :option="excelOption1"
        v-model="excelForm1"
        :upload-after="uploadAfter1"
      >
                       :upload-after="uploadAfter1">
        <template slot="excelTemplate">
          <el-button type="primary" @click="handleTemplate1">
                    <el-button type="primary"
                               @click="handleTemplate1">
            点击下载<i class="el-icon-download el-icon--right"></i>
          </el-button>
        </template>
@@ -236,7 +224,39 @@
      // },
      obj0: {
        title0: "保安单位基本信息",
                creditcode: "",
                jurisdiction: "",
                stats: "",
                enterprisename: "",
                representative: "",
                establishtime: "",
                registeredcapital: "",
                capital: "",
                organizationcode: "",
                registrationnumber: "",
                identificationnumber: "",
                enterprises: "",
                address: "",
                business: "",
                region: "",
                registration: "",
                industry: "",
            },
            obj1: {
                creditcode: "",
                shareholder: "",
                shareholdingratio: "",
                capital2: "",
                capitaltime: "",
                cardid: "",
                cell: "",
            },
            obj2: {
                creditcode: "",
                name: "",
                post: "",
                cardid2: "",
                cell2: "",
      },
      option0: {
        emptyBtn: false,
@@ -244,18 +264,14 @@
        gutter: 30,
        column: column0,
      },
      obj1: {
        title1: "保安单位出资人员",
      },
      option1: {
        emptyBtn: false,
        submitBtn: false,
        gutter: 30,
        column: column1,
      },
      obj2: {
        title2: "主要管理人员信息",
      },
      option2: {
        emptyBtn: false,
        submitBtn: false,
@@ -263,7 +279,7 @@
        column: column2,
      },
      forms: -1,
            forms: false,
      data0: {},
      data1: {},
      data2: {},
@@ -287,7 +303,11 @@
        align: "center",
        selection: true,
        column: column,
                addTitle: "信息登记",
                addBtnText: "信息登记",
      },
            activeName: "first",
    };
  },
  computed: {
@@ -364,7 +384,8 @@
    },
    rowSave(form, done, loading) {
      // console.log("save1");
      this.forms = 0;
            this.forms = true;
            this.activeName = "first";
      var that = this;
      //先获取部门接口
      getDeptLazyTree().then((res) => {
@@ -502,84 +523,80 @@
    //   this.obj2["useid"] = data.id;
    //   this.nobumen = 1;
    // },
    tip0() {
        submitAdd () {
      if (this.panduanmeiyouziduan()) {
        return;
      }
      var d = {};
            var oneObj = {};
      for (var k in this.obj0) {
        for (var i in column0) {
          if (k == column0[i].prop && k != "title0") {
            d[k] = this.obj0[k];
                        oneObj[k] = this.obj0[k];
                    }
                    if (column0[i].prop == "creditcode") {
                        column1[1].value = column0[i].value;
          }
        }
      }
      console.log(d);
      for (var k in d) {
        if (d[k] == "" || d[k] == undefined) {
          console.log(k);
          this.$message.warning("请检查表单是否填写完整!");
            for (var key in oneObj) {
                if (oneObj[key] == "" || oneObj[key] == undefined) {
                    console.log(key);
                    this.$message.warning("请检查表单是否填写完整!1");
          return;
        }
      }
      console.log(d, 0);
      this.data0 = d;
      this.forms = 1;
    },
    tip1() {
      if (this.panduanmeiyouziduan()) {
        return;
      }
      var d = {};
      for (var k in this.obj1) {
        for (var i in column1) {
          if (k == column1[i].prop && k != "title1") {
            d[k] = this.obj1[k];
            this.data0 = oneObj;
            var twoObj = {};
            for (var twok in this.obj1) {
                for (var twoi in column1) {
                    if (twok == column1[twoi].prop && twok != "title1") {
                        twoObj[twok] = this.obj1[twok];
          }
        }
      }
      d["capital"] = d["capital2"];
      delete d["capital2"];
            twoObj["capital"] = twoObj["capital2"];
            delete twoObj["capital2"];
      // console.log(d);
      for (var k in d) {
        if (d[k] == "" || d[k] == undefined) {
          console.log(k);
          this.$message.warning("请检查表单是否填写完整!");
            for (var twokey in twoObj) {
                if (twoObj[twokey] == "" || twoObj[twokey] == undefined) {
                    console.log(twokey);
                    this.$message.warning("请检查表单是否填写完整!2");
          return;
        }
      }
      console.log(d, 1);
      this.data1 = d;
      this.forms = 2;
    },
    tip2() {
      if (this.panduanmeiyouziduan()) {
        return;
      }
      var d = {};
      for (var k in this.obj2) {
        for (var i in column2) {
          if (k == column2[i].prop && k != "title2") {
            d[k] = this.obj2[k];
            this.data1 = twoObj;
            var threeObj = {};
            for (var threek in this.obj2) {
                for (var threei in column2) {
                    if (threek == column2[threei].prop && threek != "title2") {
                        threeObj[threek] = this.obj2[threek];
          }
        }
      }
      console.log(d);
      d["cardid"] = d["cardid2"];
      delete d["cardid2"];
      d["cell"] = d["cell2"];
      delete d["cell2"];
            threeObj["cardid"] = threeObj["cardid2"];
            delete threeObj["cardid2"];
            threeObj["cell"] = threeObj["cell2"];
            delete threeObj["cell2"];
      // d["shareholdingratio"] = d["shareholdingratio2"];
      // delete d["shareholdingratio2"];
      for (var k in d) {
        if (d[k] == "" || d[k] == undefined) {
          console.log(k);
          this.$message.warning("请检查表单是否填写完整!");
            for (var threekey in threeObj) {
                if (threeObj[threekey] == "" || threeObj[threekey] == undefined) {
                    console.log(threekey);
                    this.$message.warning("请检查表单是否填写完整!3");
          return;
        }
      }
      console.log(d, 2);
      this.data2 = d;
            this.data2 = threeObj;
      // this.data0.departmentid = this.data0.useid;
      // this.data1.departmentid = this.data1.useid;
@@ -603,22 +620,44 @@
      }, 500);
      this.tipover();
    },
    tip1up1() {
      this.forms = 0;
    },
    tip2up2() {
      this.forms = 1;
    },
    tipover() {
      this.forms = -1;
            this.forms = false;
      this.obj0 = {
        title0: "保安单位基本信息",
                creditcode: "",
                jurisdiction: "",
                stats: "",
                enterprisename: "",
                representative: "",
                establishtime: "",
                registeredcapital: "",
                capital: "",
                organizationcode: "",
                registrationnumber: "",
                identificationnumber: "",
                enterprises: "",
                address: "",
                business: "",
                region: "",
                registration: "",
                industry: "",
      };
      this.obj1 = {
        title1: "保安单位出资人员",
                creditcode: "",
                shareholder: "",
                shareholdingratio: "",
                capital2: "",
                capitaltime: "",
                cardid: "",
                cell: "",
      };
      this.obj2 = {
        title2: "主要管理人员信息",
                creditcode: "",
                name: "",
                post: "",
                cardid2: "",
                cell2: "",
      };
      this.data0 = {};
      this.data1 = {};
@@ -654,7 +693,18 @@
      console.log(this.havedata, "qqqqq");
    },
  },
  mounted() {},
    mounted () {
        var that = this;
        this.option0.column.forEach((item) => {
            if (item.prop == "creditcode") {
                item.change = function (e) {
                    that.obj1.creditcode = e.value;
                    that.obj2.creditcode = e.value;
                };
            }
        });
    },
};
</script>
@@ -674,39 +724,23 @@
//   padding: 0 !important;
// }
.lod {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba($color: #000000, $alpha: 0.5);
  padding: 100px 0 0 0;
  z-index: 500 !important;
  display: flex;
  // align-items: center;
  justify-content: center;
  .trees {
    z-index: 501 !important;
    position: absolute;
    width: 15%;
    top: 100px;
    left: 0;
    // display: none;
  }
  .lod-in {
    width: 70%;
    height: auto;
    background-color: transparent;
    // padding: 10px 0 0 0;
  }
  .el-collapse-item {
    padding-top: 15px !important;
  }
}
.el-collapse {
  border-top: 1px solid transparent !important;
}
.information-box {
  .el-dialog {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    margin: auto !important;
    height: 86% !important;
    .el-dialog__body {
      padding: 10px 20px !important;
    }
  }
}
</style>
src/views/securityUnit/securityTraining.vue
@@ -765,4 +765,20 @@
.el-collapse {
  border-top: 1px solid transparent !important;
}
.information-box {
  .el-dialog {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    margin: auto !important;
    height: 86% !important;
    .el-dialog__body {
      padding: 10px 20px !important;
    }
  }
}
</style>
src/views/securityUnit/selfRecruitedSecurityGuard.vue
@@ -782,4 +782,20 @@
.el-collapse {
  border-top: 1px solid transparent !important;
}
.information-box {
  .el-dialog {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    margin: auto !important;
    height: 86% !important;
    .el-dialog__body {
      padding: 10px 20px !important;
    }
  }
}
</style>
src/views/securityUnit/transRegionalcompany.vue
@@ -764,4 +764,20 @@
.el-collapse {
  border-top: 1px solid transparent !important;
}
.information-box {
  .el-dialog {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    margin: auto !important;
    height: 86% !important;
    .el-dialog__body {
      padding: 10px 20px !important;
    }
  }
}
</style>
vue.config.js
@@ -28,7 +28,7 @@
            '/api': {
                // 本地服务接口地址
                // target: 'http://localhost:81',
                target: 'http://192.168.0.114:83',//钟日健W
                target: 'http://192.168.0.115:83',//钟日健W
                // target: 'http://localhost:81', //原W
                // target: 'http://192.168.0.108:81',//原W
                // target: 'http://192.168.0.110:81',//唐N