Administrator
2022-04-11 79d9fc857559982b00b68b2d709807bdc4cd286f
src/views/securityUnit/selfRecruitedSecurityGuard.vue
@@ -1,91 +1,77 @@
<template>
  <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="{ row }" slot="znum">
          <el-tag
            class="rowClickSelf"
            @click="rowClickSelf(row)"
            title="点击查看保安人员情况"
            >{{ row.znum }}</el-tag
          >
        </template>
        <template slot-scope="{ type, size, row }" slot="menu">
          <el-button
            icon="el-icon-s-custom"
            :size="size"
            :type="type"
            @click.stop="rowClick(row)"
            >查看
          </el-button>
          <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>
      <el-dialog
        :visible.sync="forms"
        width="80%"
        top="5vh"
        :modal-append-to-body="false"
        class="addCompany"
      >
        <avue-form
          ref="form"
          v-model="obj0"
          :option="option0"
          v-if="forms"
          @submit="handleSubmit"
  <basic-container
    :class="[
      'securityUnit',
      $store.state.control.screenSize == 1366 ? 'smallSize' : 'normalSize',
      $store.state.control.windowWidth >= 1024 ? 'tooRowSearch1' : ''
    ]"
  >
    <avue-crud
      class="tablesss"
      :option="option"
      :data="data"
      :page.sync="page"
      ref="crudrec"
      :permission="permissionList"
      @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="{ row }" slot="znum">
        <el-tag
          class="rowClickSelf"
          @click="rowClickSelf(row)"
          title="点击查看保安人员情况"
          >{{ row.znum }}</el-tag
        >
        </avue-form>
      </el-dialog>
    </div>
      </template>
      <template slot-scope="{ type, size, row }" slot="menu">
        <el-button
          icon="el-icon-s-custom"
          :size="size"
          :type="type"
          v-if="permission.selfRecruitedSecurityGuard_view"
          @click.stop="rowClick(row)"
          >查看
        </el-button>
        <el-button
          :size="size"
          :type="type"
          v-if="permission.selfRecruitedSecurityGuard_upload"
          @click="handleUploadPage(row)"
          icon="el-icon-circle-check"
          >附件上传
        </el-button>
      </template>
      <template slot="menuLeft">
        <el-button
          type="danger"
          size="small"
          plain
          icon="el-icon-delete"
          v-if="permission.selfRecruitedSecurityGuard_delete"
          @click="handleDelete"
          >删 除
        </el-button>
        <el-button
          type="success"
          size="small"
          plain
          icon="el-icon-upload2"
          v-if="permission.selfRecruitedSecurityGuard_import"
          @click="handleImport1"
          >批量导入
        </el-button>
      </template>
    </avue-crud>
    <el-dialog
      title="保安单位导入"
      append-to-body
@@ -108,21 +94,17 @@
</template>
<script>
import { column, column0, column1, column2 } from "./data";
import { column0, column1, column2 } from "./data";
import {
  getdata,
  adddata,
  update,
  remove,
  adddata1,
  adddata2,
  getDeptLazyTree,
  remove
} from "@/api/securityUnit/securityUnit";
import { mapGetters } from "vuex";
import { getToken } from "@/util/auth";
export default {
  data() {
    var w = 160,
      s = 12;
    return {
      excelBox1: false,
      excelForm1: {},
@@ -138,18 +120,18 @@
            loadText: "文件上传中,请稍等",
            span: 24,
            propsHttp: {
              res: "data",
              res: "data"
            },
            tip: "请上传 .xls,.xlsx 标准格式文件",
            action: "/api/information/import-informaton",
            action: "/api/information/import-informaton"
          },
          {
            label: "模板下载",
            prop: "excelTemplate",
            formslot: true,
            span: 24,
          },
        ],
            span: 24
          }
        ]
      },
      loading: true, //保安单位基本信息
@@ -158,6 +140,7 @@
        pageSize: 10,
        currentPage: 1,
        total: 0,
        ...this.$store.state.control.changePageSize
      },
      treeData: [],
@@ -173,76 +156,17 @@
          column: [
            {
              label: "自定义项",
              prop: "label",
            },
          ],
              prop: "label"
            }
          ]
        },
        props: {
          labelText: "标题",
          label: "title",
          value: "id",
          children: "children",
        },
          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: {
        title0: "保安单位基本信息",
      },
      option0: {
        emptyBtn: false,
        submitBtn: true,
        gutter: 30,
        column: column0,
      },
      obj1: {
        title1: "保安单位出资人员",
      },
      option1: {
        emptyBtn: false,
        submitBtn: false,
        gutter: 30,
        column: column1,
      },
      obj2: {
        title2: "主要管理人员信息",
      },
      option2: {
        emptyBtn: false,
        submitBtn: false,
        gutter: 30,
        column: column2,
      },
      forms: false,
      data0: {},
      data1: {},
@@ -252,73 +176,225 @@
      b2: {},
      noshehuibianma: 0,
      nobumen: 0,
      query: {},
      data: [],
      option: {
        index: true,
        addBtn: false,
        // card: true,
        addBtn: true,
        tip: false,
        searchSize: "mini",
        searchMenuSpan: 6,
        height: 583,
        height: "auto",
        menuWidth: 275,
        align: "center",
        border: true,
        selection: true,
        ...this.$store.state.control.clearOtherBut,
        column: [
          ...column,
          {
            label: "企业名称",
            prop: "enterprisename",
            search: true,
            searchSpan: 4,
            labelWidth: 110,
            minWidth: 160,
            rules: [
              {
                required: true,
                message: "请选择企业名称",
                trigger: "click"
              }
            ],
            overHidden: true
          },
          {
            label: "所属辖区",
            prop: "jurisdiction",
            //父节点不能选
            parent: false,
            labelWidth: 110,
            type: "tree",
            dicUrl: "/api//jurisdiction/lazy-trees",
            props: {
              label: "title",
              value: "id"
            },
            rules: [
              {
                required: false,
                message: "请选择所属辖区",
                trigger: "click"
              }
            ],
            overHidden: true
          },
          {
            label: "联系人",
            prop: "contacts",
            labelWidth: 110,
            hide: false
          },
          {
            label: "联系电话",
            prop: "contactscell",
            labelWidth: 110,
            hide: false
          },
          {
            label: "保安人数",
            labelWidth: 110,
            prop: "znum",
            searchSpan: 4,
            addDisabled: false,
            addDisplay: false,
            editDisabled: false,
            editDisplay: false,
            viewDisabled: false,
            viewDisplay: false,
            searchLabelWidth: 100
          },
          {
            label: "派遣人数",
            labelWidth: 110,
            prop: "pnum",
            addDisabled: false,
            addDisplay: false,
            editDisabled: false,
            editDisplay: false,
            viewDisabled: false,
            viewDisplay: false,
            searchSpan: 4,
            searchLabelWidth: 100
          },
          {
            label: "持证人数",
            labelWidth: 110,
            prop: "cnum",
            addDisabled: false,
            addDisplay: false,
            editDisabled: false,
            editDisplay: false,
            viewDisabled: false,
            viewDisplay: false,
            searchSpan: 4,
            searchLabelWidth: 100
          },
          {
            label: "企业属性",
            prop: "stats",
            type: "tree",
            hide: true,
            labelWidth: 110,
            dicUrl: "/api/blade-system/dict-biz/dictionary?code=stats",
            props: {
              label: "dictValue",
              value: "dictKey"
            },
            rules: [
              {
                required: true,
                message: "请选择企业属性",
                trigger: "click"
              }
            ]
          },
          {
            label: "注册地址",
            prop: "address",
            labelWidth: 110,
            // search: true,
            hide: true
          },
          {
            label: "注册时间",
            prop: "establishtime",
            span: 12,
            labelWidth: 110,
            disabled: true,
            type: "date",
            format: "yyyy-MM-dd",
            valueFormat: "yyyy-MM-dd",
            // 表单新增时是否禁止
            addDisabled: false,
            // 表单新增时是否可见
            addDisplay: false,
            // 表单新增时是否为查看模式
            addDetail: false,
            // 表单编辑时是否禁止
            editDisabled: false,
            // 表单编辑时是否可见
            editDisplay: false,
            // 表单编辑时是否为查看模式
            editDetail: false,
            rules: [
              {
                required: true,
                message: "请选择注册时间",
                trigger: "blur"
              }
            ]
          },
          {
            label: "服务区域",
            labelWidth: 160,
            prop: "fregion",
            width: 69,
            labelWidth: 110,
            prop: "fregion"
          },
          {
            label: "服务时间",
            labelWidth: 160,
            labelWidth: 110,
            prop: "ftime",
            width: 69,
            type: "date",
            format: "yyyy-MM-dd",
            valueFormat: "timestamp",
            valueFormat: "yyyy-MM-dd"
          },
        ],
      },
          {
            label: "登记机关",
            prop: "registration",
            // search: true,
            labelWidth: 110,
            // width: 88,
            overHidden: true,
            hide: true
          }
        ]
      }
    };
  },
  created() {
    this.option0.column[4].value = 2;
    this.option0.column[4].disabled = true;
    const column = this.findObject(this.option.column, "stats");
    column.value = "0";
    if (this.userInfo.role_name == "培训公司管理员") {
      column.editDisabled = true;
      column.addDisabled = true;
    }
  },
  computed: {
    ...mapGetters(["userInfo"]),
    ...mapGetters(["userInfo", "permission"]),
    permissionList() {
      return {
        addBtn: this.vaildData(this.permission.selfRecruitedSecurityGuard_add, false),
        viewBtn: this.vaildData(this.permission.selfRecruitedSecurityGuard_view, false),
        delBtn: this.vaildData(this.permission.selfRecruitedSecurityGuard_delete, false),
        editBtn: this.vaildData(this.permission.selfRecruitedSecurityGuard_edit, false)
      };
    },
    ids() {
      let ids = [];
      this.selectionList.forEach((ele) => {
      this.selectionList.forEach(ele => {
        ids.push(ele.creditcode);
      });
      return ids.join(",");
    },
    ids1() {
      let ids1 = [];
      this.selectionList.forEach((ele) => {
        ids1.push(ele.departmentid);
      });
      return ids1.join(",");
    },
    haveID() {
      return this.obj0.creditcode;
    },
    }
  },
  mounted() {
    this.$store.commit("setWindowSizeHeightAdd");
  },
  methods: {
    rowClickSelf(val) {
      // console.log(val.departmentid);
      this.$router.push({
        path: "/securityGuardOnce/index",
        query: { departmentid: val.departmentid },
        query: { departmentid: val.departmentid }
      });
    },
    handleImport1() {
@@ -331,49 +407,40 @@
      done();
    },
    handleTemplate1() {
      window.open(`/api/examSubjectChoices/export-template`);
      window.open(
        `/api/examSubjectChoices/export-template?${
          this.website.tokenHeader
        }=${getToken()}&`
      );
    },
    // handleChangeTABS(column) {
    //   this.typeTABS = column;
    //   // 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.loading = false;
    //     this.loading2 = false;
    //     this.onLoad1(this.page1); //第二个表格不会自动执行
    //   } else if (column.prop == "tab3") {
    //     this.loading1 = false;
    //     this.loading = false;
    //     this.onLoad2(this.page2); //第二个表格不会自动执行
    //   }
    // },
    //保安单位基本信息
    sizeChange(val) {
      this.page1.currentPage = 1;
      this.page1.pageSize = val;
      // this.getData();
      this.onLoad(this.page, this.query);
      //   this.$message.success("行数" + val);
    },
    currentChange(val) {
      this.page1.currentPage = val;
      // this.getData();
      this.onLoad(this.page, this.query);
      //   this.$message.success("页码" + val);
    },
    rowSave(form, done, loading) {
      // console.log("save1");
      this.forms = true;
      var that = this;
      //先获取部门接口
      getDeptLazyTree().then((res) => {
        var d = res.data.data;
        that.treeData = d;
        // console.log(d);
      form["createUserId"] = this.userInfo.Id;
      adddata(form).then(res => {
        if (res.data.success) {
          this.$message({
            message: "操作成功",
            type: "success"
          });
          this.refreshChange();
          done();
          this.forms = false;
        } else {
          this.$message({
            message: "操作失败",
            type: "warning"
          });
          done();
        }
      });
    },
    searchChange(params, done) {
@@ -389,17 +456,16 @@
    rowUpdate(row, index, done, loading) {
      delete row.tenantid;
      delete row.regstsat;
      console.log(row, 0);
      update(row).then(
        () => {
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!",
            message: "操作成功!"
          });
          done();
        },
        (error) => {
        error => {
          window.console.log(error);
          loading();
        }
@@ -409,7 +475,7 @@
      this.$confirm("确定将选择数据删除?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
        type: "warning"
      })
        .then(() => {
          console.log(row);
@@ -419,7 +485,7 @@
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!",
            message: "操作成功!"
          });
        });
    },
@@ -431,37 +497,39 @@
        this.$message.warning("请选择至少一条数据");
        return;
      }
      this.$confirm("确定批量将选择数据删除?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
      this.$confirm(
        "该操作将会把保安员数据一并删除,不可恢复!确定将选择公司删除?",
        {
          confirmButtonText: "确定",
          cancelButtonText: "取消",
          type: "warning"
        }
      )
        .then(() => {
          // console.log(this.ids);
          return remove(this.ids, this.ids1);
          return remove(this.ids, this.ids1).then(res => {
            this.refreshChange();
          });
        })
        .then(() => {
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!",
            message: "操作成功!"
          });
          this.$refs.crudrec.toggleSelection();
        })
        .catch((res) => {});
        .catch(res => {});
    },
    refreshChange() {
      this.onLoad(this.page, this.query);
    },
    rowClick(row) {
      // console.log(row);
      // row.identificationnumber; //统一社会信用代 码
      window.localStorage.setItem("danweidata", JSON.stringify(row));
      var data = JSON.stringify(row);
      this.$router.push({
        path: "/securityUnitChild",
        // redirect: { name: "foo" },
        query: { rowsecurity: "fromSecurity" },
        // params: { row: row.identificationnumber },
        query: { data: data }
      });
    },
    //跳转到附近列表页面
@@ -470,14 +538,16 @@
        path: `/resource/attachCopy`,
        query: {
          deptId: row.departmentid,
          enterprisename: row.enterprisename,
        },
          enterprisename: row.enterprisename
        }
      });
    },
    onLoad(page, params = {}) {
      if (this.userInfo.role_id == "1414840172333842433") {
        console.log("是公安add jurisdiction");
      if(this.userInfo.role_name == "公安管理员" || this.userInfo.role_name == "民警" || this.userInfo.role_name == "administrator"){
        params["jurisdiction"] = this.userInfo.jurisdiction;
      }
      if (this.userInfo.role_name == "培训公司管理员") {
        params["createDeptId"] = this.userInfo.dept_id;
      }
      params["stats"] = 0;
      this.loading = true;
@@ -485,181 +555,16 @@
        page.currentPage,
        page.pageSize,
        Object.assign(params, this.query)
      ).then((res) => {
      ).then(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.$store.commit("setWindowSizeHeightAdd");
        // 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.obj0["useid"] = data.id;
    //   this.obj1["useid"] = data.id;
    //   this.obj2["useid"] = data.id;
    //   this.nobumen = 1;
    // },
    handleSubmit(form, done) {
      console.log(form);
      adddata(form).then((res) => {
        if (res.data.success) {
          this.$message({
            message: "提交成功",
            type: "success",
          });
          done();
          this.forms = false;
        } else {
          this.$message({
            message: "提交失败",
            type: "warning",
          });
        }
      });
    },
    tip0() {
      if (this.panduanmeiyouziduan()) {
        return;
      }
      var d = {};
      for (var k in this.obj0) {
        for (var i in column0) {
          if (k == column0[i].prop && k != "title0") {
            d[k] = this.obj0[k];
          }
        }
      }
      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 d = {};
      for (var k in this.obj1) {
        for (var i in column1) {
          if (k == column1[i].prop && k != "title1") {
            d[k] = this.obj1[k];
          }
        }
      }
      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 d = {};
      for (var k in this.obj2) {
        for (var i in column2) {
          if (k == column2[i].prop && k != "title2") {
            d[k] = this.obj2[k];
          }
        }
      }
      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);
      });
      adddata1(this.data1).then((res) => {
        console.log(res, 1);
      });
      adddata2(this.data2).then((res) => {
        console.log(res, 2);
      });
      var time = setTimeout(() => {
        this.onLoad(this.page, this.query);
        console.log(this.data0, this.data1, this.data2, "已刷新");
      }, 500);
      this.tipover();
    },
    tip1up1() {
      this.forms = true;
    },
    tip2up2() {
      this.forms = 1;
    },
    tipover() {
      this.forms = false;
      this.obj0 = {
        title0: "保安单位基本信息",
      };
      this.obj1 = {
        title1: "保安单位出资人员",
      };
      this.obj2 = {
        title2: "主要管理人员信息",
      };
      this.data0 = {};
      this.data1 = {};
      this.data2 = {};
      this.noshehuibianma = 0;
      this.nobumen = 0;
    },
    panduanmeiyouziduan() {
      if (this.noshehuibianma == 0) {
        this.$message.warning("请输入统一社会信用代码");
        return true;
      }
      if (this.nobumen == 0) {
        return false;
        this.$message.warning("请选则部门");
      }
      return false;
    },
    }
  },
  watch: {
    haveID() {
@@ -675,9 +580,9 @@
    },
    havedata() {
      console.log(this.havedata, "qqqqq");
    },
    }
  },
  mounted() {},
  mounted() {}
};
</script>
@@ -688,14 +593,6 @@
  //   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;
// }
.lod {
  position: absolute;