shuishen
2021-11-12 8e2a42e4a2da78f9cda9fa3e7732a0ef72f0c906
src/views/securityUnitChild/index.vue
@@ -1,44 +1,29 @@
<template>
  <div class="dispatch">
    <avue-tabs :option="optionTABS" @change="handleChangeTABS"></avue-tabs>
    <!-- <avue-tabs :option="optionTABS" @change="handleChangeTABS"></avue-tabs>
    <span v-if="typeTABS.prop === 'tab1'" class="tab">
      <!-- <avue-crud
        :option="option"
        :data="data"
        :page.sync="page"
        ref="crudrec"
        @on-load="onLoad"
        :table-loading="loading"
        @row-save="rowSave"
        @search-change="searchChange"
        @search-reset="searchReset"
        @row-update="rowUpdate"
        @row-del="rowDel"
        @selection-change="selectionChange"
        @refresh-change="refreshChange"
      >
        <template slot="menuLeft">
          <el-button
            type="danger"
            size="small"
            plain
            icon="el-icon-delete"
            @click="handleDelete"
            >删 除
          </el-button>
        </template>
      </avue-crud>-->
      <!-- 表单组件 -->
      <basic-container>
        <avue-form ref="form" v-model="obj0" :option="option0">
          <!-- <template slot-scope="scope" slot="menuForm">
          <el-button @click="tip">自定义按钮</el-button>
        </template> -->
        <avue-form
          ref="form"
          v-model="obj0"
          :option="option0"
          @submit="submit0"
        >
        </avue-form>
      </basic-container>
    </span>
    <span v-if="typeTABS.prop === 'tab11'" class="tab">
      <basic-container>
        <avue-form
          ref="form"
          v-model="obj0"
          :option="option01"
          @submit="submit0"
        >
        </avue-form>
      </basic-container>
    </span>
    <span v-else-if="typeTABS.prop === 'tab2'" class="tab">
      <!-- <span v-if="typeTABS.prop === 'tab2'"> -->
      <basic-container>
        <avue-crud
          :option="option1"
@@ -53,6 +38,7 @@
          @row-del="rowDel1"
          @selection-change="selectionChange1"
          @refresh-change="refreshChange1"
          @on-load="onLoad1"
        >
          <template slot="menuLeft">
            <el-button
@@ -90,6 +76,7 @@
          @row-del="rowDel2"
          @selection-change="selectionChange2"
          @refresh-change="refreshChange2"
          @on-load="onLoad2"
        >
          <template slot="menuLeft">
            <el-button
@@ -113,29 +100,166 @@
      </basic-container>
    </span>
    <span v-else-if="typeTABS.prop === 'tab4'" class="tab">
      <!-- 装备管理 -->
      <equipments :fromDeptId="departmentid"></equipments>
    </span>
    <span v-else-if="typeTABS.prop === 'tab5'" class="tab">
      <!-- 车辆管理 -->
      <car :fromDeptId="departmentid"></car>
    </span>
    <!-- <span v-else-if="typeTABS.prop === 'tab6'" class="tab">
      枪支管理
      <gun :fromDeptId="departmentid"></gun>
    </span> -->
    <span v-else-if="typeTABS.prop === 'tab9'" class="tab">
      <social :deptid="obj0.departmentid"></social>
    </span>
    <span v-else-if="typeTABS.prop === 'tab7'" class="tab">
      <!-- 营业执照 -->
      <businessLicense :row="obj0"></businessLicense>
    </span>
    <span v-else-if="typeTABS.prop === 'tab8'" class="tab">
      <!-- 许可证  -->
      <licence :row="obj0"></licence>
    </span>
    <span v-else-if="typeTABS.prop === 'tab9'" class="tab">
      <!-- 社保记录  -->
      <social :deptid="obj0.departmentid"></social>
    </span>
    </span> -->
    <el-tabs v-model="activeName" @tab-click="handleClick">
      <!-- <span v-if="typeTABS.prop === 'tab1'" class="tab"> -->
      <el-tab-pane label="保安单位基本信息" name="tab1">
        <basic-container>
          <avue-form
            ref="form"
            v-model="obj0"
            :option="option0"
            @submit="submit0"
          >
          </avue-form>
        </basic-container>
        <!-- </span> -->
      </el-tab-pane>
      <!-- <span v-if="typeTABS.prop === 'tab11'" class="tab"> -->
      <el-tab-pane label="工商信息" name="tab11">
        <basic-container>
          <avue-form
            ref="form"
            v-model="obj0"
            :option="option01"
            @submit="submit0"
          >
          </avue-form>
        </basic-container>
        <!-- </span> -->
      </el-tab-pane>
      <!-- <span v-else-if="typeTABS.prop === 'tab2'" class="tab"> -->
      <el-tab-pane label="保安单位出资人员" name="tab2">
        <basic-container>
          <avue-crud
            :option="option1"
            :data="data1"
            :page.sync="page1"
            ref="crudrec1"
            :table-loading="loading1"
            @row-save="rowSave1"
            @search-change="searchChange1"
            @search-reset="searchReset1"
            @row-update="rowUpdate1"
            @row-del="rowDel1"
            @selection-change="selectionChange1"
            @refresh-change="refreshChange1"
            @on-load="onLoad1"
          >
            <template slot="menuLeft">
              <el-button
                type="danger"
                size="small"
                plain
                icon="el-icon-delete"
                @click="handleDelete1"
                >删 除
              </el-button>
              <el-button
                type="success"
                size="small"
                plain
                icon="el-icon-upload2"
                @click="handleImport"
                >批量导入
              </el-button>
            </template>
          </avue-crud>
        </basic-container>
        <!-- </span> -->
      </el-tab-pane>
      <!-- <span v-else-if="typeTABS.prop === 'tab3'" class="tab"> -->
      <el-tab-pane label="主要管理人员信息" name="tab3">
        <basic-container>
          <avue-crud
            :option="option2"
            :data="data2"
            :page.sync="page2"
            ref="crudrec2"
            :table-loading="loading2"
            @row-save="rowSave2"
            @search-change="searchChange2"
            @search-reset="searchReset2"
            @row-update="rowUpdate2"
            @row-del="rowDel2"
            @selection-change="selectionChange2"
            @refresh-change="refreshChange2"
            @on-load="onLoad2"
          >
            <template slot="menuLeft">
              <el-button
                type="danger"
                size="small"
                plain
                icon="el-icon-delete"
                @click="handleDelete2"
                >删 除
              </el-button>
              <el-button
                type="success"
                size="small"
                plain
                icon="el-icon-upload2"
                @click="handleImport1"
                >批量导入
              </el-button>
            </template>
          </avue-crud>
        </basic-container>
        <!-- </span> -->
      </el-tab-pane>
      <!-- <span v-else-if="typeTABS.prop === 'tab4'" class="tab"> -->
      <el-tab-pane label="装备管理" name="tab4">
        <!-- 装备管理 -->
        <equipments :fromDeptId="departmentid" v-if="overzb"></equipments>
        <!-- </span> -->
      </el-tab-pane>
      <!-- <span v-else-if="typeTABS.prop === 'tab5'" class="tab"> -->
      <el-tab-pane label="车辆管理" name="tab5">
        <!-- 车辆管理 -->
        <car :fromDeptId="departmentid" v-if="overcar"></car>
        <!-- </span> -->
      </el-tab-pane>
      <!-- <span v-else-if="typeTABS.prop === 'tab6'" class="tab">
      枪支管理
      <gun :fromDeptId="departmentid"></gun>
    </span> -->
      <!-- <span v-else-if="typeTABS.prop === 'tab9'" class="tab"> -->
      <el-tab-pane label="社保记录" name="tab9">
        <!-- 社保记录  -->
        <social
          :deptid="obj0.departmentid"
          :socialRE="social"
          v-if="social"
        ></social>
        <!-- </span> -->
      </el-tab-pane>
      <!-- <span v-else-if="typeTABS.prop === 'tab7'" class="tab"> -->
      <el-tab-pane label="营业执照" name="tab7">
        <!-- 营业执照 -->
        <businessLicense :row="obj0" v-if="overHtp"></businessLicense>
        <!-- </span> -->
      </el-tab-pane>
      <!-- <span v-else-if="typeTABS.prop === 'tab8'" class="tab"> -->
      <el-tab-pane label="许可证" name="tab8">
        <!-- 许可证  -->
        <licence :row="obj0" v-if="overHtp"></licence>
        <!-- </span> -->
      </el-tab-pane>
    </el-tabs>
    <el-dialog
      title="出资人导入"
      append-to-body
@@ -177,12 +301,12 @@
</template> 
<script>
import { column, column1, column2 } from "./data";
import { column11, column, column1, column2 } from "./data";
import {
  getOncedata,
  // getdata,
  // adddata,
  // update,
  update,
  // remove,
  getdataOnce1,
  getdata1,
@@ -201,6 +325,8 @@
import licence from "./licence.vue";
import businessLicense from "./businessLicense.vue";
import social from "./social.vue";
import { mapState } from "vuex";
import { getRoleDetail } from "@/api/system/role";
export default {
  components: {
@@ -235,6 +361,15 @@
      ],
    };
    return {
      overcar: false, //结决id传入、信息获取的优先级
      overzb: false, //结决id传入、信息获取的优先级
      overcar: false, //结决id传入、信息获取的优先级
      social: false, //解决表格错乱
      overHtp: false,
      activeName: "tab1",
      departmentid: "",
      excelBox: false, //出资人
@@ -254,7 +389,7 @@
              res: "data",
            },
            tip: "请上传 .xls,.xlsx 标准格式文件",
            action: "/api/car/import-examSubject",
            action: "/api/shareholder/import-share",
          },
          {
            label: "模板下载",
@@ -282,7 +417,7 @@
              res: "data",
            },
            tip: "请上传 .xls,.xlsx 标准格式文件",
            action: "/api/examSubjectChoices/import-examSubject",
            action: "/api/member/import-member",
          },
          {
            label: "模板下载",
@@ -300,6 +435,11 @@
            // icon: "el-icon-info",
            label: "保安单位基本信息",
            prop: "tab1",
          },
          {
            // icon: "el-icon-info",
            label: "工商信息",
            prop: "tab11",
          },
          {
            // icon: "el-icon-info",
@@ -328,6 +468,11 @@
          // },
          {
            // icon: "el-icon-info",
            label: "社保记录 ",
            prop: "tab9",
          },
          {
            // icon: "el-icon-info",
            label: "营业执照 ",
            prop: "tab7",
          },
@@ -335,11 +480,6 @@
            // icon: "el-icon-info",
            label: "许可证 ",
            prop: "tab8",
          },
          {
            // icon: "el-icon-info",
            label: "社保记录 ",
            prop: "tab9",
          },
        ],
      },
@@ -353,8 +493,17 @@
      option0: {
        emptyBtn: false,
        submitBtn: false,
        submitText: "保存",
        gutter: 30,
        column: column,
      },
      option01: {
        emptyBtn: false,
        submitBtn: false,
        submitText: "保存",
        gutter: 30,
        column: column11,
      },
      loading1: true, //派遣记录
@@ -402,6 +551,9 @@
    };
  },
  computed: {
    ...mapState({
      userInfo: (state) => state.user.userInfo,
    }),
    chuzitime() {
      return this.data1.capitaltime;
    },
@@ -428,6 +580,32 @@
    },
  },
  methods: {
    submit0(row, done, loading) {
      // let nowTab = this.typeTABS.prop;
      // console.log(this.typeTABS);
      if (this.userInfo.role_name == "保安公司管理员") {
        row["departmentid"] = this.userInfo.dept_id;
      }
      console.log(row);
      update(row).then(
        () => {
          // this.onLoad(this.page);
          // this.onloads();
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          this.onloads();
          done();
        },
        (error) => {
          window.console.log(error);
          loading();
        }
      );
      done();
    },
    handleImport() {
      //出资人
      this.excelBox = true;
@@ -435,11 +613,11 @@
    uploadAfter(res, done, loading, column) {
      window.console.log(column);
      this.excelBox = false;
      this.refreshChange();
      this.refreshChange1();
      done();
    },
    handleTemplate() {
      window.open(`/api/car/export-template`);
      window.open(`/api/shareholder/export-template`);
    },
    handleImport1() {
@@ -449,31 +627,60 @@
    uploadAfter1(res, done, loading, column) {
      window.console.log(column);
      this.excelBox1 = false;
      // this.refreshChange();
      this.refreshChange2();
      done();
    },
    handleTemplate1() {
      window.open(`/api/examSubjectChoices/export-template`);
      window.open(`/api/member/export-template`);
    },
    handleChangeTABS(column) {
      this.typeTABS = column;
      // this.$message.success(JSON.stringify(column));
      if (column.prop == "tab1") {
    // handleChangeTABS(column) {
    //   // this.typeTABS = column;
    //   // console.log(column.prop);
    //   // this.$message.success(JSON.stringify(column));
    //   if (column.prop == "tab1") {
    //     this.loading1 = false;
    //     this.loading2 = false;
    //     // this.onLoad(this.page);
    //   } else if (column.prop == "tab2") {
    //     //  this.loading1 = false;
    //     this.loading2 = false;
    //     this.onLoad1(this.page1); //第二个表格不会自动执行
    //   } else if (column.prop == "tab3") {
    //     this.loading1 = false;
    //     // this.loading2 = false;
    //     this.onLoad2(this.page2); //第二个表格不会自动执行
    //   }
    // },
    handleClick(tab, event) {
      // console.log(tab.name, event);
      if (tab.name == "tab1") {
        this.loading1 = false;
        this.loading2 = false;
        // this.onLoad(this.page);
      } else if (column.prop == "tab2") {
      } else if (tab.name == "tab5") {
        this.overcar = true;
        // this.onLoad(this.page);
      } else if (tab.name == "tab4") {
        this.overzb = true;
        // this.onLoad(this.page);
      } else if (tab.name == "tab2") {
        //  this.loading1 = false;
        this.loading2 = false;
        this.onLoad1(this.page1); //第二个表格不会自动执行
      } else if (column.prop == "tab3") {
      } else if (tab.name == "tab3") {
        this.loading1 = false;
        // this.loading2 = false;
        this.onLoad2(this.page2); //第二个表格不会自动执行
      } else if (tab.name == "tab9") {
        this.social = true; //表格错乱
      } else {
        this.social = false;
        this.overcar = false;
        this.overzb = false;
        this.overcar = false;
      }
    },
    //派遣记录
    sizeChange1(val) {
      this.page1.currentPage = 1;
@@ -493,7 +700,7 @@
      //   var form = this.data[0];
      //   delete form.id;
      //   for (var k = 0; k < 13; k++) {
      form["creditcode"] = this.creditcode;
      form["deptId"] = this.departmentid;
      adddata1(form).then(
        () => {
          this.onLoad1(this.page1);
@@ -523,7 +730,9 @@
    rowUpdate1(row, index, done, loading) {
      delete row.shareholdingratio;
      delete row.tenantId;
      console.log(row);
      row["deptId"] = this.departmentid;
      update1(row).then(
        () => {
          this.onLoad1(this.page1);
@@ -589,7 +798,7 @@
    onLoad1(page, params = {}) {
      this.loading1 = true;
      console.log(page, params, 3435434);
      params["creditcode"] = this.creditcode;
      params["deptId"] = this.departmentid;
      getdataOnce1(
        page.currentPage,
        page.pageSize,
@@ -601,6 +810,9 @@
        this.data1 = data.records;
        console.log(this.data1);
        this.loading1 = false;
        this.$refs.crudrec1.refreshTable();
        this.$refs.crudrec1.doLayout();
      });
      // onLoad1(page, params = {}) {
      //   this.loading1 = true;
@@ -639,7 +851,7 @@
      //   var form = this.data[0];
      //   delete form.id;
      //   for (var k = 0; k < 13; k++) {
      form["creditcode"] = this.creditcode;
      form["deptId"] = this.departmentid;
      adddata2(form).then(
        () => {
          this.onLoad2(this.page1);
@@ -669,6 +881,7 @@
    rowUpdate2(row, index, done, loading) {
      console.log(row);
      delete row.shareholdingratio;
      row["deptId"] = this.departmentid;
      update2(row).then(
        () => {
          this.onLoad2(this.page2);
@@ -735,7 +948,7 @@
      this.loading2 = true;
      // console.log(page);
      // getdata2(
      params["creditcode"] = this.creditcode;
      params["deptId"] = this.departmentid;
      getdataOnce2(
        page.currentPage,
        page.pageSize,
@@ -747,6 +960,8 @@
        this.data2 = data.records;
        console.log(this.data2);
        this.loading2 = false;
        this.$refs.crudrec2.refreshTable();
        this.$refs.crudrec2.doLayout();
      });
    },
    //派遣记录
@@ -756,79 +971,128 @@
    readLock(name) {
      return window.localStorage.getItem(name);
    },
  },
  mounted() {
    var that = this;
    var doit = (a) => {
      that.typeTABS = that.optionTABS.column[0];
      var row = {};
      if (that.readLock("danweidata") != null) {
        row = JSON.parse(that.readLock("danweidata"));
        // that.obj0.title = row.enterprisename;
        console.log(row, "row");
        that.departmentid = row.departmentid;
        for (var k in row) {
          that.obj0[k] = row[k];
        }
        that.creditcode = row.creditcode;
        if (that.readLock("danweidataS") != null && a == 1) {
          var b = JSON.parse(that.readLock("danweidataS"));
          var i = 0;
          for (var k in b) {
            if (b[k].enterprisename == row.enterprisename) {
              i = 1;
    onloads(tab) {
      var that = this;
      var doit = (a) => {
        that.typeTABS = that.optionTABS.column[0];
        // if (tab) {
        // that.typeTABS.prop = tab;
        // }
        var row = {};
        if (that.readLock("danweidata") != null) {
          row = JSON.parse(that.readLock("danweidata"));
          // that.obj0.title = row.enterprisename;
          console.log(row, "rowneibu");
          that.departmentid = row.departmentid;
          for (var k in row) {
            that.obj0[k] = row[k];
          }
          if (row.creditcode == "") {
            that.creditcode = 111;
          } else {
            that.creditcode = row.creditcode;
          }
          that.overHtp = true;
          if (that.readLock("danweidataS") != null && a == 1) {
            var b = JSON.parse(that.readLock("danweidataS"));
            var i = 0;
            for (var k in b) {
              if (b[k].enterprisename == row.enterprisename) {
                i = 1;
              }
            }
            if (i == 1) {
              // console.log("存在");
            } else {
              // console.log("已删除");
              that.obj0 = {};
              that.obj0.enterprisename = row.enterprisename + "该公司已删除";
              window.localStorage.removeItem("danweidata");
              that.creditcode = "";
            }
          }
          if (i == 1) {
            // console.log("存在");
          } else {
            // console.log("已删除");
            that.obj0 = {};
            that.obj0.enterprisename = row.enterprisename + "该公司已删除";
            window.localStorage.removeItem("danweidata");
            that.creditcode = "";
          }
        } else {
          // console.log("no");
          that.obj0.enterprisename = "未选择查询单位";
        }
      } else {
        // console.log("no");
        that.obj0.enterprisename = "未选择查询单位";
      }
    };
    var flag = false,
      i = 0,
      ind = null;
    this.$store.state.tags.tagList.forEach((item, index) => {
      if (item.label == "保安单位详情") {
        if (flag == false) {
          ind = index;
          flag = true;
        }
        i++;
      }
    });
    if (i > 1) {
      this.$store.state.tags.tagList.splice(ind, 1);
    }
    var fromSecunityGuardId = this.$route.query.fromSecunityGuardId;
    // var fromSecunityGuardId = this.$route.query;
    if (fromSecunityGuardId != undefined) {
      var value = {
        departmentid: fromSecunityGuardId,
      };
      getOncedata(value).then((res) => {
        // console.log(res.data.data, "get");
        window.localStorage.setItem(
          "danweidata",
          JSON.stringify(res.data.data)
        );
        doit();
      var flag = false,
        i = 0,
        ind = null;
      this.$store.state.tags.tagList.forEach((item, index) => {
        if (item.label == "保安单位详情") {
          if (flag == false) {
            ind = index;
            flag = true;
          }
          i++;
        }
      });
      // return;
    } else {
      doit(1);
    }
      if (i > 1) {
        this.$store.state.tags.tagList.splice(ind, 1);
      }
      var getdatas = (roleAlias) => {
        var fromSecunityGuardId = that.$route.query.fromSecunityGuardId;
        // var fromSecunityGuardId = that.$route.query;
        if (fromSecunityGuardId != undefined || roleAlias == "保安公司管理员") {
          var value = {
            departmentid: fromSecunityGuardId || that.userInfo.dept_id,
          };
          getOncedata(value).then((res) => {
            // console.log(res.data.data, "get");
            window.localStorage.setItem(
              "danweidata",
              JSON.stringify(res.data.data)
            );
            doit();
          });
          // return;
        } else {
          doit(1);
        }
      };
      // console.log(this.userInfo, "userInfo");
      //获取当前登录人员的角色信息
      var roleIds = this.userInfo.role_id.split(",");
      roleIds.forEach((roleId) => {
        getRoleDetail(roleId).then((res) => {
          var roleAlias = res.data.data.roleAlias;
          var d = that.option0.column;
          var e = that.option01.column;
          // console.log(roleAlias);
          if (roleAlias == "保安公司管理员") {
            that.option0.submitBtn = true;
            that.option01.submitBtn = true;
            for (var k in d) {
              // if (d[k].label != "企业类型") {
              d[k].disabled = false;
              // }
            }
            for (var n in e) {
              // if (d[k].label != "企业类型") {
              e[n].disabled = false;
              // }
            }
          } else {
            that.option0.submitBtn = false;
            that.option01.submitBtn = false;
            for (var k in d) {
              d[k].disabled = true;
            }
            for (var n in e) {
              e[n].disabled = true;
            }
          }
          getdatas(roleAlias);
        });
      });
    },
  },
  mounted() {
    this.onloads();
  },
  watch: {
    // chuzitime() {