liuyg
2021-09-27 8c6cf205affbbc8ada74f00a7ca25ebca867e9ed
src/views/securityUnit/index.vue
@@ -1,45 +1,61 @@
<template>
  <div class="securityUnit">
    <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"
      @row-click="rowClick"
    >
      <template slot="menuLeft">
        <el-button
          type="primary"
          icon="el-icon-plus"
          size="small"
          plain
          @click.stop="rowSave"
          >新增</el-button
        >
      </template>
      <template slot="menuLeft">
        <el-button
          type="danger"
          size="small"
          plain
          icon="el-icon-delete"
          @click="handleDelete"
          >删 除
        </el-button>
      </template>
    </avue-crud>
    <div class="lod" v-show="forms != -1">
      <div class="lod-in">
        <el-col class="trees" v-if="forms == 0">
  <basic-container>
    <div class="securityUnit">
      <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"
        @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"
            >附件上传
          </el-button>
        </template>
        <template slot="menuLeft">
          <el-button
            type="primary"
            icon="el-icon-plus"
            size="small"
            plain
            @click.stop="rowSave"
            >新增</el-button
          >
          <el-button
            type="danger"
            size="small"
            plain
            icon="el-icon-delete"
            @click="handleDelete"
            >删 除
          </el-button>
          <el-button
            type="success"
            size="small"
            plain
            icon="el-icon-upload2"
            @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>
@@ -51,46 +67,65 @@
              </basic-container>
            </el-scrollbar>
          </div>
        </el-col>
        <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>
          </template>
        </avue-form>
        <avue-form
          ref="form"
          v-model="obj1"
          :option="option1"
          v-else-if="forms == 1"
        >
          <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>
          </template>
        </avue-form>
        <avue-form
          ref="form"
          v-model="obj2"
          :option="option2"
          v-else-if="forms == 2"
        >
          <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>
          </template>
        </avue-form>
        </el-col> -->
          <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>
            </template>
          </avue-form>
          <avue-form
            ref="form1"
            v-model="obj1"
            :option="option1"
            v-else-if="forms == 1"
          >
            <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>
            </template>
          </avue-form>
          <avue-form
            ref="form2"
            v-model="obj2"
            :option="option2"
            v-else-if="forms == 2"
          >
            <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>
            </template>
          </avue-form>
        </div>
      </div>
    </div>
  </div>
</template>
    <el-dialog
      title="保安单位导入"
      append-to-body
      :visible.sync="excelBox1"
      width="555px"
    >
      <avue-form
        :option="excelOption1"
        v-model="excelForm1"
        :upload-after="uploadAfter1"
      >
        <template slot="excelTemplate">
          <el-button type="primary" @click="handleTemplate1">
            点击下载<i class="el-icon-download el-icon--right"></i>
          </el-button>
        </template>
      </avue-form>
    </el-dialog>
  </basic-container>
</template>
<script>
import { column, column0, column1, column2 } from "./data";
@@ -103,11 +138,40 @@
  adddata2,
  getDeptLazyTree,
} from "@/api/securityUnit/securityUnit";
import { mapGetters } from "vuex";
export default {
  data() {
    var w = 160,
      s = 12;
    return {
      excelBox1: false,
      excelForm1: {},
      excelOption1: {
        submitBtn: false,
        emptyBtn: false,
        column: [
          {
            label: "文件上传",
            prop: "excelFile",
            type: "upload",
            drag: true,
            loadText: "文件上传中,请稍等",
            span: 24,
            propsHttp: {
              res: "data",
            },
            tip: "请上传 .xls,.xlsx 标准格式文件",
            action: "/api/information/import-informaton",
          },
          {
            label: "模板下载",
            prop: "excelTemplate",
            formslot: true,
            span: 24,
          },
        ],
      },
      loading: true, //保安单位基本信息
      selectionList: [],
      page: {
@@ -118,38 +182,61 @@
      treeData: [],
      treeOption: {
        nodeKey: "id",
        lazy: true,
        treeLoad: function (node, resolve) {
          // const parentId = node.level === 0 ? 0 : node.data.id;
          getDeptLazyTree().then((res) => {
            resolve(
              res.data.data.map((item) => {
                console.log({
                  ...item,
                  leaf: !item.hasChildren,
                });
                return {
                  ...item,
                  leaf: !item.hasChildren,
                };
              })
            );
          });
        },
        title: "我是标题",
        filterText: "搜索关键字自定义",
        defaultExpandAll: true,
        addBtn: false,
        menu: false,
        size: "small",
        formOption: {
          labelWidth: 100,
          column: [
            {
              label: "自定义项",
              prop: "label",
            },
          ],
        },
        props: {
          labelText: "标题",
          label: "title",
          value: "value",
          value: "id",
          children: "children",
        },
      },
      // treeOption: {
      //   nodeKey: "id",
      //   // lazy: true,
      //   // treeLoad: function (node, resolve) {
      //   //   // const parentId = node.level === 0 ? 0 : node.data.id;
      //   //   getDeptLazyTree().then((res) => {
      //   //     resolve(
      //   //       res.data.data.map((item) => {
      //   //         console.log({
      //   //           ...item,
      //   //           leaf: !item.hasChildren,
      //   //         });
      //   //         return {
      //   //           ...item,
      //   //           leaf: !item.hasChildren,
      //   //         };
      //   //       })
      //   //     );
      //   //   });
      //   // },
      //   addBtn: false,
      //   menu: false,
      //   size: "small",
      //   props: {
      //     labelText: "标题",
      //     label: "title",
      //     value: "value",
      //     children: "children",
      //   },
      // },
      obj0: {
        title: "保安单位基本信息",
        title0: "保安单位基本信息",
      },
      option0: {
        emptyBtn: false,
@@ -158,7 +245,7 @@
        column: column0,
      },
      obj1: {
        title: "保安单位出资人员",
        title1: "保安单位出资人员",
      },
      option1: {
        emptyBtn: false,
@@ -167,7 +254,7 @@
        column: column1,
      },
      obj2: {
        title: "主要管理人员信息",
        title2: "主要管理人员信息",
      },
      option2: {
        emptyBtn: false,
@@ -180,18 +267,23 @@
      data0: {},
      data1: {},
      data2: {},
      b0: {},
      b1: {},
      b2: {},
      noshehuibianma: 0,
      nobumen: 0,
      query: {},
      data: [],
      option: {
        index: true,
        addBtn: false,
        card: true,
        // card: true,
        tip: false,
        searchSize: "mini",
        searchMenuSpan: 6,
        height: 547,
        menuWidth: 160,
        height: 583,
        menuWidth: 220,
        align: "center",
        selection: true,
        column: column,
@@ -199,10 +291,11 @@
    };
  },
  computed: {
    ...mapGetters(["userInfo"]),
    ids() {
      let ids = [];
      this.selectionList.forEach((ele) => {
        ids.push(ele.id);
        ids.push(ele.creditcode);
      });
      return ids.join(",");
    },
@@ -225,6 +318,19 @@
    },
  },
  methods: {
    handleImport1() {
      this.excelBox1 = true;
    },
    uploadAfter1(res, done, loading, column) {
      window.console.log(column);
      this.excelBox1 = false;
      // this.refreshChange();
      done();
    },
    handleTemplate1() {
      window.open(`/api/examSubjectChoices/export-template`);
    },
    // handleChangeTABS(column) {
    //   this.typeTABS = column;
    //   // this.$message.success(JSON.stringify(column));
@@ -257,8 +363,15 @@
      //   this.$message.success("页码" + val);
    },
    rowSave(form, done, loading) {
      console.log("save1");
      // console.log("save1");
      this.forms = 0;
      var that = this;
      //先获取部门接口
      getDeptLazyTree().then((res) => {
        var d = res.data.data;
        that.treeData = d;
        // console.log(d);
      });
    },
    searchChange(params, done) {
      this.query = params;
@@ -297,7 +410,7 @@
      })
        .then(() => {
          console.log(row);
          return remove(row.creditcode);
          return remove(row.creditcode, row.departmentid);
        })
        .then(() => {
          this.onLoad(this.page);
@@ -315,13 +428,14 @@
        this.$message.warning("请选择至少一条数据");
        return;
      }
      this.$confirm("确定将选择数据删除?", {
      this.$confirm("确定批量将选择数据删除?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
          return remove(this.ids);
          console.log(this.ids);
          // return remove(this.ids);
        })
        .then(() => {
          this.onLoad(this.page);
@@ -336,77 +450,144 @@
      this.onLoad(this.page, this.query);
    },
    rowClick(row) {
      console.log(row);
      row.identificationnumber; //统一社会信用代码
      // console.log(row);
      // row.identificationnumber; //统一社会信用代 码
      window.localStorage.setItem("danweidata", JSON.stringify(row));
      this.$router.push({
        path: "/securityUnitChild",
        // redirect: { name: "foo" },
        query: { row: row },
        query: { rowsecurity: "fromSecurity" },
        // params: { row: row.identificationnumber },
      });
    },
    //跳转到附近列表页面
    handleUploadPage(row) {
      this.$router.push({
        path: `/resource/attachCopy`,
        query: {
          deptId: row.departmentid,
          enterprisename: row.enterprisename,
        },
      });
    },
    onLoad(page, params = {}) {
      if (this.userInfo.role_id == "1414840172333842433") {
        console.log("是公安add jurisdiction");
        params["jurisdiction"] = this.userInfo.jurisdiction;
      }
      this.loading = true;
      getdata(
        page.currentPage,
        page.pageSize,
        Object.assign(params, this.query)
      ).then((res) => {
        // console.log(res);
        const data = res.data.data;
        this.page.total = data.total;
        this.data = data.records;
        window.localStorage.setItem("danweidataS", JSON.stringify(this.data));
        console.log(this.data);
        this.loading = false;
      });
    },
    nodeClick(data) {
      // this.treeDeptId = data.id;
      // this.page.currentPage = 1;
      // this.onLoad(this.page);
      // this.$message.success(JSON.stringify(data));
      this.obj0["departmentid"] = data.title;
      this.obj1["departmentid"] = data.title;
      this.obj2["departmentid"] = data.title;
      this.nobumen = 1;
    },
    // nodeClick(data) {//分局   不在这添加
    //   // this.treeDeptId = data.id;
    //   // this.page.currentPage = 1;
    //   // this.onLoad(this.page);
    //   // this.$message.success(JSON.stringify(data));
    //   this.obj0["departmentid"] = data.title;
    //   this.obj1["departmentid"] = data.title;
    //   this.obj2["departmentid"] = data.title;
    //   this.obj0["useid"] = data.id;
    //   this.obj1["useid"] = data.id;
    //   this.obj2["useid"] = data.id;
    //   this.nobumen = 1;
    // },
    tip0() {
      if (this.panduanmeiyouziduan()) {
        return;
      }
      var b = {};
      var d = {};
      for (var k in this.obj0) {
        if (k != "title") {
          b[k] = this.obj0[k];
        for (var i in column0) {
          if (k == column0[i].prop && k != "title0") {
            d[k] = this.obj0[k];
          }
        }
      }
      this.data0 = b;
      console.log(d);
      for (var k in d) {
        if (d[k] == "" || d[k] == undefined) {
          console.log(k);
          this.$message.warning("请检查表单是否填写完整!");
          return;
        }
      }
      console.log(d, 0);
      this.data0 = d;
      this.forms = 1;
    },
    tip1() {
      if (this.panduanmeiyouziduan()) {
        return;
      }
      var b = {};
      var d = {};
      for (var k in this.obj1) {
        if (k != "title") {
          b[k] = this.obj1[k];
        for (var i in column1) {
          if (k == column1[i].prop && k != "title1") {
            d[k] = this.obj1[k];
          }
        }
      }
      this.data1 = b;
      d["capital"] = d["capital2"];
      delete d["capital2"];
      // console.log(d);
      for (var k in d) {
        if (d[k] == "" || d[k] == undefined) {
          console.log(k);
          this.$message.warning("请检查表单是否填写完整!");
          return;
        }
      }
      console.log(d, 1);
      this.data1 = d;
      this.forms = 2;
    },
    tip2() {
      if (this.panduanmeiyouziduan()) {
        return;
      }
      var b = {};
      var d = {};
      for (var k in this.obj2) {
        if (k != "title") {
          b[k] = this.obj2[k];
        for (var i in column2) {
          if (k == column2[i].prop && k != "title2") {
            d[k] = this.obj2[k];
          }
        }
      }
      this.data2 = b;
      console.log(d);
      d["cardid"] = d["cardid2"];
      delete d["cardid2"];
      d["cell"] = d["cell2"];
      delete d["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("请检查表单是否填写完整!");
          return;
        }
      }
      console.log(d, 2);
      this.data2 = d;
      // this.data0.departmentid = this.data0.useid;
      // this.data1.departmentid = this.data1.useid;
      // this.data2.departmentid = this.data2.useid;
      // delete this.data0.useid;
      // delete this.data1.useid;
      // delete this.data2.useid;
      adddata(this.data0).then((res) => {
        console.log(res, 0);
      });
@@ -416,8 +597,10 @@
      adddata2(this.data2).then((res) => {
        console.log(res, 2);
      });
      this.onLoad(this.page, this.query);
      console.log(this.data0, this.data1, this.data2);
      var time = setTimeout(() => {
        this.onLoad(this.page, this.query);
        console.log(this.data0, this.data1, this.data2, "已刷新");
      }, 500);
      this.tipover();
    },
    tip1up1() {
@@ -429,13 +612,13 @@
    tipover() {
      this.forms = -1;
      this.obj0 = {
        title: "保安单位基本信息",
        title0: "保安单位基本信息",
      };
      this.obj0 = {
        title: "保安单位出资人员",
      this.obj1 = {
        title1: "保安单位出资人员",
      };
      this.obj2 = {
        title: "主要管理人员信息",
        title2: "主要管理人员信息",
      };
      this.data0 = {};
      this.data1 = {};
@@ -449,20 +632,26 @@
        return true;
      }
      if (this.nobumen == 0) {
        return false;
        this.$message.warning("请选则部门");
        return true;
      }
      return false;
    },
  },
  watch: {
    haveID() {
      if (this.haveID > 9000) {
        //统一社会信用代码判断
        this.noshehuibianma = 1;
      } else {
        this.noshehuibianma = 0;
      // console.log(this.haveID);
      if (this.haveID != undefined) {
        if (this.haveID.length > 5) {
          //统一社会信用代码判断
          this.noshehuibianma = 1;
        } else {
          this.noshehuibianma = 0;
        }
      }
    },
    havedata() {
      console.log(this.havedata, "qqqqq");
    },
  },
  mounted() {},
@@ -476,14 +665,14 @@
  //   border: 1px solid #000;
  box-sizing: border-box;
}
.el-card__body {
  padding-bottom: 5px !important;
}
.avue-crud__tip,
.el-tag,
.el-tag--light {
  padding: 0 !important;
}
// .el-card__body {
//   padding-bottom: 5px !important;
// }
// .avue-crud__tip,
// .el-tag,
// .el-tag--light {
//   padding: 0 !important;
// }
.lod {
  position: absolute;
@@ -503,13 +692,21 @@
    width: 15%;
    top: 100px;
    left: 0;
    display: none;
    // display: none;
  }
  .lod-in {
    width: 70%;
    height: auto;
    background-color: transparent;
    // padding: 10px 0 0 0;
  }
  .el-collapse-item {
    padding-top: 15px !important;
  }
}
</style>
.el-collapse {
  border-top: 1px solid transparent !important;
}
</style>