保安公司修改  字段, 加处罚,资格审查调整  搜索 字段  成绩查询  保安服务单位   报名列表
15 files modified
3 files added
2352 ■■■■ changed files
public/img/register/bazbj.png patch | view | raw | blame | history
public/index.html 3 ●●●●● patch | view | raw | blame | history
src/views/permit/permit.vue 173 ●●●● patch | view | raw | blame | history
src/views/qualificationExamination/qualificationExamination.vue 66 ●●●● patch | view | raw | blame | history
src/views/qualificationExamination/registrationTrainingQuery.vue 87 ●●●●● patch | view | raw | blame | history
src/views/qualificationExamination/scoreInquiry.vue 19 ●●●●● patch | view | raw | blame | history
src/views/qualificationExamination/signQualificationExamination.vue 237 ●●●●● patch | view | raw | blame | history
src/views/record/record.vue 12 ●●●●● patch | view | raw | blame | history
src/views/securityCompany/column.js 79 ●●●●● patch | view | raw | blame | history
src/views/securityCompany/confess.vue 297 ●●●● patch | view | raw | blame | history
src/views/securityCompany/dispatch.vue 1 ●●●● patch | view | raw | blame | history
src/views/securityCompany/security.vue 175 ●●●●● patch | view | raw | blame | history
src/views/securityCompany/securityCrossRegion.vue 498 ●●●●● patch | view | raw | blame | history
src/views/securityCompany/train.vue 163 ●●●●● patch | view | raw | blame | history
src/views/securityGuardManagement/register.vue 95 ●●●●● patch | view | raw | blame | history
src/views/workreport/data.js 442 ●●●● patch | view | raw | blame | history
src/views/workreport/workreply.vue 2 ●●● patch | view | raw | blame | history
src/views/workreport/workreport.vue 3 ●●●●● patch | view | raw | blame | history
public/img/register/bazbj.png
public/index.html
@@ -22,6 +22,9 @@
  <!-- <title>保安监管系统</title> -->
  <title>智慧保安监管模块</title>
  <script type="text/javascript" src="./libs/Cesium/Cesium.js"></script>
  <!-- jquery打印模块 -->
  <script language="javascript" src="jquery-1.4.4.min.js"></script>
  <script language="javascript" src="jquery.jqprint-0.3.js"></script>
  <style>
    html,
    body,
src/views/permit/permit.vue
@@ -1,71 +1,77 @@
<template>
  <basic-container class="permit">
    <avue-crud
      :option="option"
      :table-loading="loading"
      :data="data"
      :page.sync="page"
      :permission="permissionList"
      :before-open="beforeOpen"
      v-model="form"
      ref="crud"
      @row-update="rowUpdate"
      @row-save="rowSave"
      @row-del="rowDel"
      @search-change="searchChange"
      @search-reset="searchReset"
      @selection-change="selectionChange"
      @current-change="currentChange"
      @size-change="sizeChange"
      @refresh-change="refreshChange"
      @on-load="onLoad"
      :row-style="rowStyle"
    >
      <template slot="menuLeft">
        <el-button
          type="danger"
          size="small"
          icon="el-icon-delete"
          plain
          v-if="permission.permit_delete"
          @click="handleDelete"
          >删 除
        </el-button>
      </template>
      <template slot-scope="{ type, size, row }" slot="menu">
        <el-button
          icon="icon-zhengjian"
          :size="size"
          :type="type"
          class="zhengJian-icon"
          @click.stop="handleCredentials(row)"
          >附件查阅
        </el-button>
        <el-button
          icon="el-icon-edit"
          :size="size"
          :type="type"
          @click.stop="rowDel(row)"
          v-if="row.type == '2'"
          >许可审批
        </el-button>
        <el-button
          icon="el-icon-edit"
          :size="size"
          :type="type"
          @click.stop="viewLicense(row)"
          >查看许可证
        </el-button>
      </template>
      <template class="tdtype" slot-scope="{ row }" slot="type">
        <el-tag class="dtype">
          {{ row.type == "0" ? "通过" : row.type == "1" ? "不通过" : "待审核" }}
          <i class="gz" v-if="row.type == '0'"></i>
          <i class="yj" v-if="row.type == '1'"></i>
          <i class="zc" v-if="row.type == '2'"></i>
        </el-tag>
      </template>
    </avue-crud>
  <div>
    <basic-container class="permit">
      <avue-crud
        :option="option"
        :table-loading="loading"
        :data="data"
        :page.sync="page"
        :permission="permissionList"
        :before-open="beforeOpen"
        v-model="form"
        ref="crud"
        @row-update="rowUpdate"
        @row-save="rowSave"
        @row-del="rowDel"
        @search-change="searchChange"
        @search-reset="searchReset"
        @selection-change="selectionChange"
        @current-change="currentChange"
        @size-change="sizeChange"
        @refresh-change="refreshChange"
        @on-load="onLoad"
        :row-style="rowStyle"
      >
        <template slot="menuLeft">
          <el-button
            type="danger"
            size="small"
            icon="el-icon-delete"
            plain
            v-if="permission.permit_delete"
            @click="handleDelete"
            >删 除
          </el-button>
        </template>
        <template slot-scope="{ type, size, row }" slot="menu">
          <el-button
            icon="icon-zhengjian"
            :size="size"
            :type="type"
            class="zhengJian-icon"
            @click.stop="handleCredentials(row)"
            >附件查阅
          </el-button>
          <el-button
            icon="el-icon-edit"
            :size="size"
            :type="type"
            @click.stop="rowDel(row)"
            v-if="row.type == '2'"
            >许可审批
          </el-button>
          <el-button
            icon="el-icon-edit"
            :size="size"
            :type="type"
            @click.stop="viewLicense(row)"
            v-if="row.type != '2'"
            >生成许可证
          </el-button>
        </template>
        <template class="tdtype" slot-scope="{ row }" slot="type">
          <el-tag class="dtype">
            {{
              row.type == "0" ? "通过" : row.type == "1" ? "不通过" : "待审核"
            }}
            <i class="gz" v-if="row.type == '0'"></i>
            <i class="yj" v-if="row.type == '1'"></i>
            <i class="zc" v-if="row.type == '2'"></i>
          </el-tag>
        </template>
      </avue-crud>
    </basic-container>
    <el-dialog
      :visible.sync="dialogVisible"
      :before-close="handleClose"
@@ -97,7 +103,7 @@
              <span class="l-m-r-once">{{ item }}</span>
            </div>
          </div>
          <div class="licence-bottom">发证机关(印章)</div>
          <div class="licence-bottom">发证机关(南昌市公安局)</div>
          <div class="l-bottom">
            发证日期
            <span class="l-b-t">{{
@@ -120,7 +126,7 @@
        <el-button type="primary" @click="Print">打 印</el-button>
      </span>
    </el-dialog>
  </basic-container>
  </div>
</template>
<script>
@@ -423,13 +429,15 @@
  methods: {
    Print() {
      //打印
      let subOutputRankPrint = document.getElementById("licence_box");
      let newContent = subOutputRankPrint.innerHTML;
      let oldContent = document.body.innerHTML;
      document.body.innerHTML = newContent;
      window.print();
      window.location.reload();
      document.body.innerHTML = oldContent;
      // let subOutputRankPrint = document.getElementById("licence_box");
      // let newContent = subOutputRankPrint.innerHTML;
      // let oldContent = document.body.innerHTML;
      // document.body.innerHTML = newContent;
      // window.print();
      // window.location.reload();
      // document.body.innerHTML = oldContent;
      this.$Print("#licence");
      // licence_box
    },
    handleCredentials(row) {
      this.$router.push({
@@ -492,12 +500,13 @@
        })
        .catch(() => {
          row.type = "1";
          update(row);
          this.onLoad(this.page);
          this.$message({
            type: "warning",
            message: "操作成功!",
          });
          return update(row);
          // update(row);
          // this.onLoad(this.page);
          // this.$message({
          //   type: "warning",
          //   message: "操作成功!",
          // });
        });
    },
    viewLicense(row) {
src/views/qualificationExamination/qualificationExamination.vue
@@ -79,6 +79,7 @@
          {
            label: "保安公司",
            prop: "deptName",
            minWidth: 110,
            overHidden: true,
            // labelWidth: 120,
            // searchLabelWidth: 120,
@@ -138,6 +139,7 @@
          {
            label: "性别",
            prop: "sexName",
            width: 56,
            // type: "select",
            // labelWidth: 120,
            // // display: false,
@@ -153,6 +155,7 @@
          {
            label: "身份证号",
            prop: "cardid",
            width: 139,
            // type: "select",
            // labelWidth: 120,
            // // display: false,
@@ -161,8 +164,9 @@
            // //   label: "label",
            // //   value: "value",
            // // },
            // searchSpan: 5,
            // search: true,
            searchSpan: 4,
            search: true,
            // width: 120,
          },
          // {
@@ -171,6 +175,30 @@
          //   // labelWidth: 120,
          //   // display: false,
          // },
          {
            label: "年龄",
            prop: "age",
            // display: false,
            // labelWidth: 120,
            // width: 200,
          },
          {
            label: "出生日期",
            prop: "birthday",
            type: "date",
            format: "yyyy-MM-dd",
            valueFormat: "yyyy-MM-dd",
            // display: false,
            // labelWidth: 120,
            // width: 200,
          },
          {
            label: "保安员证编号",
            prop: "securitynumber",
            searchLabelWidth: 110,
            searchSpan: 4,
            search: true,
          },
          {
            label: "联系方式",
            prop: "phone",
@@ -224,12 +252,12 @@
            // display: false,
            hide: true,
          },
          {
            label: "是否在职",
            prop: "onjob",
            // labelWidth: 120,
            // display: false,
          },
          // {
          //   label: "是否在职",
          //   prop: "status",
          //   // labelWidth: 120,
          //   // display: false,
          // },
        ],
        // group: [
        //   {
@@ -373,9 +401,14 @@
    refreshChange() {
      this.onLoad(this.page, this.query);
    },
    getyears() {
      var d = new Date();
      return d.getFullYear();
    },
    onLoad(page, params = {}) {
      // this.loading = false;
      this.loading = true;
      params["status"] = 1;
      getListSecurity(
        page.currentPage,
        page.pageSize,
@@ -383,7 +416,22 @@
      ).then((res) => {
        const data = res.data.data;
        this.page.total = data.total;
        this.data = data.records;
        var d = data.records;
        for (var k in d) {
          if (d[k]["examinationMx"] == "") {
            d[k]["examinationMx"] = "正常";
            d[k]["examinationType"] = "正常";
          } else {
            d[k]["examinationType"] = "异常";
          }
          // if (d[k]["examinationType"] == "") {
          //   d[k]["examinationType"] = "正常";
          // }
          var sfz = d[k].cardid.substring(6, 10);
          d[k]["age"] = this.getyears() - sfz;
        }
        this.data = d;
        // this.data = data.records;
        console.log(this.data);
        this.loading = false;
        // this.selectionClear();
src/views/qualificationExamination/registrationTrainingQuery.vue
@@ -120,7 +120,7 @@
          // },//上面不显示
          {
            label: "姓名",
            prop: "name",
            prop: "realName",
            width: 100,
            searchLabelWidth: 50,
            rules: [
@@ -206,34 +206,34 @@
            //     trigger: "blur"
            // }],
          },
          {
            label: "体重(kg)",
            prop: "weight",
            width: 90,
            rules: [
              {
                required: true,
                message: "请输入体重",
                trigger: "blur",
              },
            ],
            // addDisplay: true,
            // editDisplay: true,
            // viewDisplay: true,
            // searchSpan: 5,
            // dicUrl: "/api/blade-system/dict-biz/dictionary?code=experienceType",
            // props: {
            //     label: "dictValue",
            //     value: "dictKey"
            // },
            // search: true,
            // type: "select",
            // rules: [{
            //     required: true,
            //     message: "请选择工作经验",
            //     trigger: "blur"
            // }],
          },
          // {
          //   label: "体重(kg)",
          //   prop: "weight",
          //   width: 90,
          //   rules: [
          //     {
          //       required: true,
          //       message: "请输入体重",
          //       trigger: "blur",
          //     },
          //   ],
          //   // addDisplay: true,
          //   // editDisplay: true,
          //   // viewDisplay: true,
          //   // searchSpan: 5,
          //   // dicUrl: "/api/blade-system/dict-biz/dictionary?code=experienceType",
          //   // props: {
          //   //     label: "dictValue",
          //   //     value: "dictKey"
          //   // },
          //   // search: true,
          //   // type: "select",
          //   // rules: [{
          //   //     required: true,
          //   //     message: "请选择工作经验",
          //   //     trigger: "blur"
          //   // }],
          // },
          {
            label: "电话",
            prop: "phone",
@@ -265,9 +265,15 @@
            // overHidden: true
          },
          {
            label: "学历证书",
            prop: "academicUrl",
            label: "学历",
            prop: "education",
            width: 110,
            type: "select",
            dicUrl: "/api/blade-system/dict-biz/dictionary?code=xueliType",
            props: {
              label: "dictValue",
              value: "dictKey",
            },
            rules: [
              {
                required: true,
@@ -281,7 +287,7 @@
            // searchSpan: 4,
          },
          {
            label: "组织机构",
            label: "保安公司",
            prop: "deptId",
            // width: 70,
            // search: true,
@@ -293,7 +299,7 @@
              value: "id",
            },
            // search: true,
            type: "select",
            // type: "tree",
            rules: [
              {
                required: true,
@@ -305,7 +311,7 @@
          },
          {
            label: "培训公司名称",
            prop: "trainingUnitName",
            prop: "trainUnitName",
            rules: [
              {
                required: true,
@@ -501,6 +507,10 @@
    refreshChange() {
      this.onLoad(this.page, this.query);
    },
    getyears() {
      var d = new Date();
      return d.getFullYear();
    },
    onLoad(page, params = {}) {
      // this.loading = false;
      this.loading = true;
@@ -511,7 +521,14 @@
      ).then((res) => {
        const data = res.data.data;
        this.page.total = data.total;
        this.data = data.records;
        var d = data.records;
        for (var k in d) {
          // if(d[k])
          var sfz = d[k].idCardNo.substring(6, 10);
          d[k]["age"] = this.getyears() - sfz;
          // console.log(this.getyears());
        }
        this.data = d;
        console.log(this.data, "getLispereregistrationTrainingQuery");
        this.loading = false;
        // this.selectionClear();
src/views/qualificationExamination/scoreInquiry.vue
@@ -159,6 +159,12 @@
            // slot: true,
            // display: false,
          },
          {
            label: "是否通过",
            prop: "qualified",
            // slot: true,
            // display: false,
          },
        ],
      },
      data: [
@@ -286,7 +292,18 @@
      ).then((res) => {
        const data = res.data.data;
        this.page.total = data.total;
        this.data = data.records;
        var d = data.records;
        for (var k in d) {
          if (d[k].qualified == 0) {
            d[k].qualified = "通过";
          } else if (d[k].qualified == 1) {
            d[k].qualified = "不通过";
          } else if (d[k].qualified == 2) {
            d[k].qualified = "暂未录入实操成绩";
          }
        }
        this.data = d;
        console.log(this.data);
        this.loading = false;
        // this.selectionClear();
src/views/qualificationExamination/signQualificationExamination.vue
@@ -31,14 +31,11 @@
</template>
<script>
// import {
//   getList,
//   getListJSON,
// } from "@/api/qualificationExamination/signQualificationExamination";
import {
  getList,
  getListJSON,
} from "@/api/qualificationExamination/signQualificationExamination";
import { mapGetters } from "vuex";
// import { datasing } from "@api/qualificationExamination/datasignQualificationExamination";
import { datasing } from "./datasignQualificationExamination";
// import { getList } from "@/api/qualificationExamination/qualificationExamination";
export default {
  data() {
@@ -74,41 +71,7 @@
          {
            label: "保安姓名",
            prop: "name",
            // labelWidth: 120,
            // searchLabelWidth: 120,
            // searchSpan: 5,
            // dicUrl:
            //   "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697",
            // props: {
            //   label: "title",
            //   value: "id",
            // },
            // search: true,
            // overHidden: true,
            // type: "select",
            // rules: [
            //   {
            //     required: true,
            //     message: "请输入保安公司",
            //     trigger: "blur",
            //   },
            // ],
          },
          //   {
          //     label: "试卷名称",
          //     prop: "examName",
          //     // type: "select",
          //     // labelWidth: 120,
          //     // // display: false,
          //     // dicData: dic,
          //     // // props: {
          //     // //   label: "label",
          //     // //   value: "value",
          //     // // },
          //     // searchSpan: 5,
          //     // search: true,
          //     // width: 120,
          //   },
          {
            label: "保安公司",
            prop: "deptName",
@@ -119,50 +82,14 @@
            // labelWidth: 120,
            // width: 200,
          },
          {
            label: "准考证号",
            prop: "userId",
            overHidden: true,
            // // display: false,
            // width: 200,
            // labelWidth: 120,
            // overHidden: true,
          },
          //   {
          //     label: "试卷分数",
          //     prop: "paperScore",
          //     // type: "date",
          //     // format: "yyyy-MM-dd",
          //     // valueFormat: "yyyy-MM-dd",
          //     // mock: {
          //     //   type: "datetime",
          //     //   labelWidth: 120,
          //     //   format: "yyyy-MM-dd",
          //     // },
          //     // // search: true,
          //     // searchSpan: 4,
          //     // // display: false,
          //     // width: 180,
          //   },
          // {
          //   label: "准考证号",
          //   prop: "userId",
          //   overHidden: true,
          // },
          {
            label: "报名时间",
            prop: "examTime",
            type: "date",
            format: "yyyy-MM-dd",
            valueFormat: "yyyy-MM-dd",
            mock: {
              type: "datetime",
              labelWidth: 120,
              format: "yyyy-MM-dd",
            },
            // search: true,
            searchSpan: 4,
            // display: false,
            width: 180,
          },
          {
            label: "考试时间",
            prop: "applyTime",
            type: "date",
            format: "yyyy-MM-dd",
@@ -174,15 +101,31 @@
            },
            // search: true,
            searchSpan: 4,
            // display: false,
            // display: false,·
            width: 180,
          },
          {
            label: "证件类型",
            prop: "certificatetype",
            // labelWidth: 120,
            // display: false,
          },
          // {
          //   label: "考试时间",
          //   prop: "applyTime",
          //   type: "date",
          //   format: "yyyy-MM-dd",
          //   valueFormat: "yyyy-MM-dd",
          //   mock: {
          //     type: "datetime",
          //     labelWidth: 120,
          //     format: "yyyy-MM-dd",
          //   },
          //   // search: true,
          //   searchSpan: 4,
          //   // display: false,
          //   width: 180,
          // },
          // {
          //   label: "证件类型",
          //   prop: "certificatetype",
          //   // labelWidth: 120,
          //   // display: false,
          // },
          //   {
          //     label: "保安员证",
          //     prop: "certificate",
@@ -190,13 +133,29 @@
          //     // display: false,
          //   },
          {
            label: "审查结果",
            prop: "results",
            label: "审查状态",
            prop: "examinationType",
            // // display: false,
            // width: 200,
            // labelWidth: 120,
            // overHidden: true,
          },
          {
            label: "审查明细",
            prop: "examinationMx",
            // // display: false,
            // width: 200,
            // labelWidth: 120,
            // overHidden: true,
          },
          // {
          //   label: "审查结果",
          //   prop: "results",
          //   // // display: false,
          //   // width: 200,
          //   // labelWidth: 120,
          //   // overHidden: true,
          // },
        ],
        // group: [
        //   {
@@ -340,56 +299,68 @@
    refreshChange() {
      this.onLoad(this.page, this.query);
    },
    // onLoad(page, params = {}) {
    //   this.loading = false;
    //   this.loading = true;
    //   getList(
    //     page.currentPage,
    //     page.pageSize,
    //     Object.assign(params, this.query)
    //   ).then((res) => {
    //     const data = res.data.data;
    //     this.page.total = data.total;
    //     this.data = data.records;
    //     this.loading = false;
    //     // this.selectionClear();
    //   });
    // },
    onLoad(page, params = {}) {
      // this.loading = false;
      this.loading = true;
      //   getListJSON().then((res) => {
      //   axios
      //     .get(
      //       "../../api/qualificationExamination/signQualificationExamination.json"
      //     )
      //     .then((res) => {
      // page.currentPage,
      // page.pageSize,
      // Object.assign(params, this.query)
      if (datasing) {
        var res = datasing;
        console.log(res, "signQualificationExamination");
        const data = res.data;
        // this.page.total = data.total;
        // this.data = data.records;
      getList(
        page.currentPage,
        page.pageSize,
        Object.assign(params, this.query)
      ).then((res) => {
        const data = res.data.data;
        this.page.total = data.total;
        var d = data.records;
        for (var k in d) {
          //   d[k].examination_mx = "正常";
          //   d[k].examination_type = "正常";
          //   d[k]["carid"] = "370111198807051124";
          //   d[k]["reviewTime"] = "2021-02-21";
          d[k]["results"] = "通过";
          d[k]["certificate"] = "拥有";
          d[k]["certificatetype"] = "保安员证";
          //   d[k]["onjob"] = "是";
          if (d[k].examinationType == 1) {
            d[k].examinationType = "正常";
          } else if (d[k].examinationType == 2) {
            d[k].examinationType = "异常";
          }
        }
        this.data = d;
        this.data = data.records;
        this.loading = false;
      }
      // this.selectionClear();
      // });
        // this.selectionClear();
      });
    },
    // onLoad(page, params = {}) {
    // this.loading = false;
    // this.loading = true;
    // getList().then(res=>{
    //   this.loading = false;
    // })
    // getListJSON().then((res) => {
    // getListJSON().then((res) => {
    //   axios
    //     .get(
    //       "../../api/qualificationExamination/signQualificationExamination.json"
    //     )
    //     .then((res) => {
    // page.currentPage,
    // page.pageSize,
    // Object.assign(params, this.query)
    // if (datasing) {
    //   var res = datasing;
    //   console.log(res, "signQualificationExamination");
    //   const data = res.data;
    //   // this.page.total = data.total;
    //   // this.data = data.records;
    //   var d = data.records;
    //   for (var k in d) {
    //     //   d[k].examination_mx = "正常";
    //     //   d[k].examination_type = "正常";
    //     //   d[k]["carid"] = "370111198807051124";
    //     //   d[k]["reviewTime"] = "2021-02-21";
    //     d[k]["results"] = "通过";
    //     d[k]["certificate"] = "拥有";
    //     d[k]["certificatetype"] = "保安员证";
    //     //   d[k]["onjob"] = "是";
    //   }
    //   this.data = d;
    //   this.loading = false;
    // }
    // this.selectionClear();
    // });
    // },
    // 行单击
    handleRowClick(row) {
src/views/record/record.vue
@@ -45,7 +45,7 @@
          :size="size"
          :type="type"
          @click.stop="rowDel(row)"
          >备案审批
          >审批
        </el-button>
      </template>
      <template class="tdtype" slot-scope="{ row }" slot="type">
@@ -401,9 +401,9 @@
      );
    },
    rowDel(row) {
      this.$confirm("确定对选择的备案进行审批?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
      this.$confirm("是否通过?", {
        confirmButtonText: " 是 ",
        cancelButtonText: "否",
        type: "warning",
      })
        .then(() => {
@@ -416,6 +416,10 @@
            type: "success",
            message: "操作成功!",
          });
        })
        .catch(() => {
          row.type = "1";
          return update(row);
        });
    },
    handleDelete() {
src/views/securityCompany/column.js
New file
@@ -0,0 +1,79 @@
export var companyColimn = [
    {
        label: "公司名称",
        prop: "enterprisename",
        search: true,
        searchSpan: 4,
        // width: 300,
        minWidth: 120,
        overHidden: true,
        display: false,
    },
    {
        label: "法定代表人",
        prop: "representative",
        display: false,
        width: 86,
    },
    {
        label: "法人电话",
        prop: "representativecell",
        display: false,
        width: 95,
    },
    {
        label: "成立日期",
        prop: "establishtime",
        type: "date",
        format: "yyyy-MM-dd",
        valueFormat: "yyyy-MM-dd",
        mock: {
            type: "datetime",
            format: "yyyy-MM-dd",
        },
        search: true,
        searchSpan: 4,
        display: false,
        width: 140,
    },
    {
        label: "注册资金",
        prop: "registeredcapital",
        display: false,
        width: 110,
    },
    // {
    //     label: "实缴资金",
    //     prop: "capital",
    //     display: false,
    //     width: 110,
    // },
    // {
    //   label: "公司类型",
    //   prop: "enterprises",
    //   display: false,
    //   width: 220,
    //   overHidden: true,
    // },
    {
        label: "联系人",
        prop: "contacts",
        display: false,
        overHidden: true,
        width: 95,
    },
    {
        label: "联系电话",
        prop: "contactscell",
        display: false,
        overHidden: true,
        width: 95,
    },
    {
        label: "注册地址",
        prop: "address",
        display: false,
        overHidden: true,
    }
]
src/views/securityCompany/confess.vue
@@ -28,7 +28,48 @@
      @row-click="handleRowClick"
      @on-load="onLoad"
    >
      <template slot-scope="{ type, size, row }" slot="menu">
        <el-button
          :size="size"
          :type="type"
          class="zhengJian-icon"
          @click.stop="punish(row)"
          >处罚</el-button
        >
      </template>
    </avue-crud>
    <el-dialog
      title="处罚"
      :visible.sync="dialogVisible"
      width="60%"
      :before-close="handleClose"
      :modal-append-to-body="false"
      center
    >
      <!-- <span>这是一段信息</span> -->
      <avue-form
        :option="optionf"
        v-model="objf"
        @submit="submitf"
        @error="errorf"
      >
        <template slot-scope="{ type, size, row }" slot="menuForm">
          <el-button
            :size="size"
            icon="el-icon-error"
            :type="type"
            @click="close(row)"
            >关闭</el-button
          >
        </template>
      </avue-form>
      <!-- <span slot="footer" class="dialog-footer">
        <el-button @click="dialogVisible = false">取 消</el-button>
        <el-button type="primary" @click="dialogVisible = false"
          >确 定</el-button
        >
      </span> -->
    </el-dialog>
  </basic-container>
</template>
@@ -40,11 +81,76 @@
  update,
  remove,
} from "@/api/securityCompany/confess";
import { savePunish } from "@/api/securityCompany/security";
import { mapGetters } from "vuex";
import { companyColimn } from "./column";
export default {
  data() {
    return {
      objf: {},
      optionf: {
        column: [
          {
            label: "公司名称",
            prop: "enterprisename",
            span: 24,
            labelWidth: 110,
            rules: [
              {
                required: true,
                message: "请输入身份证号码",
                trigger: "blur",
              },
            ],
          },
          {
            label: "处罚原因",
            prop: "punishreason",
            span: 24,
            labelWidth: 110,
            rules: [
              {
                required: true,
                message: "请输入荣誉名称",
                trigger: "blur",
              },
            ],
          },
          {
            label: "处罚结果",
            prop: "punishresult",
            span: 24,
            // type: "textarea",
            labelWidth: 110,
          },
          {
            label: "处罚日期",
            prop: "punishtime",
            span: 24,
            type: "date",
            format: "yyyy-MM-dd",
            valueFormat: "yyyy-MM-dd",
            // type: "textarea",
            labelWidth: 110,
          },
          {
            label: "处罚批准文号",
            prop: "punisnum",
            span: 24,
            // type: "textarea",
            labelWidth: 110,
          },
          //   {
          //     label: "授予单位名称",
          //     prop: "sex2",
          //     span: 24,
          //     labelWidth: 110,
          //   },
        ],
      },
      dialogVisible: false,
      form: {},
      query: {},
      loading: true,
@@ -59,8 +165,9 @@
        delBtn: false,
        editBtn: false,
        addBtn: false,
        menuWidth: 100,
        selection: true,
        menu: false,
        // menu: false,
        align: "center",
        height: "auto",
@@ -73,59 +180,86 @@
        viewBtn: true,
        dialogClickModal: false,
        column: [
          {
            label: "公司名称",
            prop: "enterprisename",
            search: true,
            searchSpan: 4,
            display: false,
          },
          {
            label: "法定代表人",
            prop: "representative",
            display: false,
            width: 130,
          },
          {
            label: "成立日期",
            prop: "establishtime",
            type: "date",
            format: "yyyy-MM-dd",
            valueFormat: "yyyy-MM-dd",
            mock: {
              type: "datetime",
              format: "yyyy-MM-dd",
            },
            search: true,
            searchSpan: 4,
            display: false,
            width: 180,
          },
          {
            label: "注册资金",
            prop: "registeredcapital",
            display: false,
            width: 130,
          },
          {
            label: "实缴资金",
            prop: "capital",
            display: false,
            width: 130,
          },
          {
            label: "公司类型",
            prop: "enterprises",
            display: false,
          },
          {
            label: "注册地址",
            prop: "address",
            display: false,
            width: 280,
          },
        ],
        column: companyColimn,
        // [
        //   {
        //     label: "公司名称",
        //     prop: "enterprisename",
        //     search: true,
        //     searchSpan: 4,
        //     // width: 300,
        //     minWidth: 120,
        //     overHidden: true,
        //     display: false,
        //   },
        //   {
        //     label: "法定代表人",
        //     prop: "representative",
        //     display: false,
        //     width: 86,
        //   },
        //   {
        //     label: "法人电话",
        //     prop: "representativecell",
        //     display: false,
        //     width: 95,
        //   },
        //   {
        //     label: "成立日期",
        //     prop: "establishtime",
        //     type: "date",
        //     format: "yyyy-MM-dd",
        //     valueFormat: "yyyy-MM-dd",
        //     mock: {
        //       type: "datetime",
        //       format: "yyyy-MM-dd",
        //     },
        //     search: true,
        //     searchSpan: 4,
        //     display: false,
        //     width: 140,
        //   },
        //   {
        //     label: "注册资金",
        //     prop: "registeredcapital",
        //     display: false,
        //     width: 110,
        //   },
        //   {
        //     label: "实缴资金",
        //     prop: "capital",
        //     display: false,
        //     width: 110,
        //   },
        //   // {
        //   //   label: "公司类型",
        //   //   prop: "enterprises",
        //   //   display: false,
        //   //   width: 220,
        //   //   overHidden: true,
        //   // },
        //   {
        //     label: "联系人",
        //     prop: "contacts",
        //     display: false,
        //     overHidden: true,
        //     width: 95,
        //   },
        //   {
        //     label: "联系电话",
        //     prop: "contactscell",
        //     display: false,
        //     overHidden: true,
        //     width: 95,
        //   },
        //   {
        //     label: "注册地址",
        //     prop: "address",
        //     display: false,
        //     overHidden: true,
        //   },
        // ],
        group: [
          {
            label: "详细信息",
@@ -175,6 +309,60 @@
    },
  },
  methods: {
    punish(row) {
      //打开处罚
      // console.log(row);
      this.objf = {
        deptid: row.departmentid,
        enterprisename: row.enterprisename,
      };
      this.dialogVisible = true;
    },
    close(row) {
      this.dialogVisible = false;
      this.objf = {
        enterprisename: "",
        punishreason: "",
        punishresult: "",
        punishtime: "",
        punisnum: "",
      };
    },
    submitf(form, done) {
      console.log(form);
      var that = this;
      savePunish(form).then((res) => {
        this.$message({
          type: "success",
          message: "操作成功!",
        });
        that.objf = {
          enterprisename: "",
          punishreason: "",
          punishresult: "",
          punishtime: "",
          punisnum: "",
        };
      });
      // this.$message.success(JSON.stringify(form));
      done();
      this.dialogVisible = false;
      this.objf = {};
    },
    errorf(err) {
      this.$message.success("操作失败");
      console.log(err);
    },
    handleClose(done) {
      this.objf = {
        enterprisename: "",
        punishreason: "",
        punishresult: "",
        punishtime: "",
        punisnum: "",
      };
      done();
    },
    rowSave(row, done, loading) {
      add(row).then(
        () => {
@@ -269,6 +457,7 @@
        const data = res.data.data;
        this.page.total = data.total;
        this.data = data.records;
        console.log(this.data, "自招单位");
        this.loading = false;
        this.selectionClear();
      });
src/views/securityCompany/dispatch.vue
@@ -42,6 +42,7 @@
// } from "@/api/securityCompany/dispatch";
import { getdata } from "@/api/dispatch/dispatch";
import { mapGetters } from "vuex";
import { companyColimn } from "./column";
export default {
  data() {
src/views/securityCompany/security.vue
@@ -36,8 +36,8 @@
          @click.stop="punish(row)"
          >处罚</el-button
        >
      </template></avue-crud
    >
      </template>
    </avue-crud>
    <el-dialog
      title="处罚"
      :visible.sync="dialogVisible"
@@ -83,6 +83,7 @@
  savePunish,
} from "@/api/securityCompany/security";
import { mapGetters } from "vuex";
import { companyColimn } from "./column";
export default {
  data() {
@@ -149,6 +150,7 @@
        ],
      },
      dialogVisible: false,
      form: {},
      query: {},
      loading: true,
@@ -178,63 +180,86 @@
        viewBtn: true,
        dialogClickModal: false,
        column: [
          {
            label: "公司名称",
            prop: "enterprisename",
            search: true,
            searchSpan: 4,
            width: 300,
            overHidden: true,
            display: false,
          },
          {
            label: "法定代表人",
            prop: "representative",
            display: false,
            width: 80,
          },
          {
            label: "成立日期",
            prop: "establishtime",
            type: "date",
            format: "yyyy-MM-dd",
            valueFormat: "yyyy-MM-dd",
            mock: {
              type: "datetime",
              format: "yyyy-MM-dd",
            },
            search: true,
            searchSpan: 4,
            display: false,
            width: 140,
          },
          {
            label: "注册资金",
            prop: "registeredcapital",
            display: false,
            width: 130,
          },
          {
            label: "实缴资金",
            prop: "capital",
            display: false,
            width: 130,
          },
          {
            label: "公司类型",
            prop: "enterprises",
            display: false,
            width: 220,
            overHidden: true,
          },
          {
            label: "注册地址",
            prop: "address",
            display: false,
            overHidden: true,
          },
        ],
        column: companyColimn,
        // [
        //   {
        //     label: "公司名称",
        //     prop: "enterprisename",
        //     search: true,
        //     searchSpan: 4,
        //     // width: 300,
        //     minWidth: 120,
        //     overHidden: true,
        //     display: false,
        //   },
        //   {
        //     label: "法定代表人",
        //     prop: "representative",
        //     display: false,
        //     width: 86,
        //   },
        //   {
        //     label: "法人电话",
        //     prop: "representativecell",
        //     display: false,
        //     width: 95,
        //   },
        //   {
        //     label: "成立日期",
        //     prop: "establishtime",
        //     type: "date",
        //     format: "yyyy-MM-dd",
        //     valueFormat: "yyyy-MM-dd",
        //     mock: {
        //       type: "datetime",
        //       format: "yyyy-MM-dd",
        //     },
        //     search: true,
        //     searchSpan: 4,
        //     display: false,
        //     width: 140,
        //   },
        //   {
        //     label: "注册资金",
        //     prop: "registeredcapital",
        //     display: false,
        //     width: 110,
        //   },
        //   {
        //     label: "实缴资金",
        //     prop: "capital",
        //     display: false,
        //     width: 110,
        //   },
        //   // {
        //   //   label: "公司类型",
        //   //   prop: "enterprises",
        //   //   display: false,
        //   //   width: 220,
        //   //   overHidden: true,
        //   // },
        //   {
        //     label: "联系人",
        //     prop: "contacts",
        //     display: false,
        //     overHidden: true,
        //     width: 95,
        //   },
        //   {
        //     label: "联系电话",
        //     prop: "contactscell",
        //     display: false,
        //     overHidden: true,
        //     width: 95,
        //   },
        //   {
        //     label: "注册地址",
        //     prop: "address",
        //     display: false,
        //     overHidden: true,
        //   },
        // ],
        group: [
          {
            label: "详细信息",
@@ -286,12 +311,29 @@
  methods: {
    close(row) {
      this.dialogVisible = false;
      this.objf = {};
      this.objf = {
        enterprisename: "",
        punishreason: "",
        punishresult: "",
        punishtime: "",
        punisnum: "",
      };
    },
    submitf(form, done) {
      console.log(form);
      var that = this;
      savePunish(form).then((res) => {
        console.log(res);
        this.$message({
          type: "success",
          message: "操作成功!",
        });
        that.objf = {
          enterprisename: "",
          punishreason: "",
          punishresult: "",
          punishtime: "",
          punisnum: "",
        };
      });
      // this.$message.success(JSON.stringify(form));
      done();
@@ -303,7 +345,13 @@
      console.log(err);
    },
    handleClose(done) {
      this.objf = {};
      this.objf = {
        enterprisename: "",
        punishreason: "",
        punishresult: "",
        punishtime: "",
        punisnum: "",
      };
      done();
    },
    punish(row) {
@@ -403,7 +451,8 @@
      getList(
        page.currentPage,
        page.pageSize,
        Object.assign(params, this.query)
        Object.assign(params, this.query),
        2
      ).then((res) => {
        const data = res.data.data;
        this.page.total = data.total;
src/views/securityCompany/securityCrossRegion.vue
New file
@@ -0,0 +1,498 @@
/*
 * @Author: Morpheus
 * @Date: 2021-07-07 17:30:05
 * @Last Modified by: Morpheus
 * @Last Modified time: 2021-07-10 16:01:42
 * menu-name 保安服务公司查询
 */
<template>
  <basic-container>
    <avue-crud
      :option="option"
      :table-loading="loading"
      :data="data"
      :page.sync="page"
      :permission="permissionList"
      :before-open="beforeOpen"
      v-model="form"
      ref="crud"
      @row-update="rowUpdate"
      @row-save="rowSave"
      @row-del="rowDel"
      @search-change="searchChange"
      @search-reset="searchReset"
      @selection-change="selectionChange"
      @current-change="currentChange"
      @size-change="sizeChange"
      @refresh-change="refreshChange"
      @row-click="handleRowClick"
      @on-load="onLoad"
    >
      <template slot-scope="{ type, size, row }" slot="menu">
        <el-button
          :size="size"
          :type="type"
          class="zhengJian-icon"
          @click.stop="punish(row)"
          >处罚</el-button
        >
      </template>
    </avue-crud>
    <el-dialog
      title="处罚"
      :visible.sync="dialogVisible"
      width="60%"
      :before-close="handleClose"
      :modal-append-to-body="false"
      center
    >
      <!-- <span>这是一段信息</span> -->
      <avue-form
        :option="optionf"
        v-model="objf"
        @submit="submitf"
        @error="errorf"
      >
        <template slot-scope="{ type, size, row }" slot="menuForm">
          <el-button
            :size="size"
            icon="el-icon-error"
            :type="type"
            @click="close(row)"
            >关闭</el-button
          >
        </template>
      </avue-form>
      <!-- <span slot="footer" class="dialog-footer">
        <el-button @click="dialogVisible = false">取 消</el-button>
        <el-button type="primary" @click="dialogVisible = false"
          >确 定</el-button
        >
      </span> -->
    </el-dialog>
  </basic-container>
</template>
<script>
import {
  getList,
  getDetail,
  add,
  update,
  remove,
  savePunish,
} from "@/api/securityCompany/security";
import { mapGetters } from "vuex";
import { companyColimn } from "./column";
export default {
  data() {
    return {
      objf: {},
      optionf: {
        column: [
          {
            label: "公司名称",
            prop: "enterprisename",
            span: 24,
            labelWidth: 110,
            rules: [
              {
                required: true,
                message: "请输入身份证号码",
                trigger: "blur",
              },
            ],
          },
          {
            label: "处罚原因",
            prop: "punishreason",
            span: 24,
            labelWidth: 110,
            rules: [
              {
                required: true,
                message: "请输入荣誉名称",
                trigger: "blur",
              },
            ],
          },
          {
            label: "处罚结果",
            prop: "punishresult",
            span: 24,
            // type: "textarea",
            labelWidth: 110,
          },
          {
            label: "处罚日期",
            prop: "punishtime",
            span: 24,
            type: "date",
            format: "yyyy-MM-dd",
            valueFormat: "yyyy-MM-dd",
            // type: "textarea",
            labelWidth: 110,
          },
          {
            label: "处罚批准文号",
            prop: "punisnum",
            span: 24,
            // type: "textarea",
            labelWidth: 110,
          },
          //   {
          //     label: "授予单位名称",
          //     prop: "sex2",
          //     span: 24,
          //     labelWidth: 110,
          //   },
        ],
      },
      dialogVisible: false,
      form: {},
      query: {},
      loading: true,
      page: {
        pageSize: 10,
        currentPage: 1,
        total: 0,
      },
      selectionList: [],
      option: {
        // 操作栏多余按钮去除
        delBtn: false,
        editBtn: false,
        addBtn: false,
        selection: true,
        searchShowBtn: false,
        // menu: false,
        align: "center",
        height: "auto",
        calcHeight: 30,
        tip: false,
        searchShow: true,
        menuWidth: 100,
        searchMenuSpan: 6,
        index: true,
        viewBtn: true,
        dialogClickModal: false,
        column: companyColimn,
        // [
        //   {
        //     label: "公司名称",
        //     prop: "enterprisename",
        //     search: true,
        //     searchSpan: 4,
        //     // width: 300,
        //     minWidth: 120,
        //     overHidden: true,
        //     display: false,
        //   },
        //   {
        //     label: "法定代表人",
        //     prop: "representative",
        //     display: false,
        //     width: 86,
        //   },
        //   {
        //     label: "法人电话",
        //     prop: "representativecell",
        //     display: false,
        //     width: 95,
        //   },
        //   {
        //     label: "成立日期",
        //     prop: "establishtime",
        //     type: "date",
        //     format: "yyyy-MM-dd",
        //     valueFormat: "yyyy-MM-dd",
        //     mock: {
        //       type: "datetime",
        //       format: "yyyy-MM-dd",
        //     },
        //     search: true,
        //     searchSpan: 4,
        //     display: false,
        //     width: 140,
        //   },
        //   {
        //     label: "注册资金",
        //     prop: "registeredcapital",
        //     display: false,
        //     width: 110,
        //   },
        //   {
        //     label: "实缴资金",
        //     prop: "capital",
        //     display: false,
        //     width: 110,
        //   },
        //   // {
        //   //   label: "公司类型",
        //   //   prop: "enterprises",
        //   //   display: false,
        //   //   width: 220,
        //   //   overHidden: true,
        //   // },
        //   {
        //     label: "联系人",
        //     prop: "contacts",
        //     display: false,
        //     overHidden: true,
        //     width: 95,
        //   },
        //   {
        //     label: "联系电话",
        //     prop: "contactscell",
        //     display: false,
        //     overHidden: true,
        //     width: 95,
        //   },
        //   {
        //     label: "注册地址",
        //     prop: "address",
        //     display: false,
        //     overHidden: true,
        //   },
        // ],
        group: [
          {
            label: "详细信息",
            prop: "baseInfo",
            icon: "el-icon-user-solid",
            column: [
              {
                label: "公司名称",
                prop: "enterprisename",
                display: false,
              },
            ],
          },
          {
            label: "详细信息",
            prop: "detailInfo",
            icon: "el-icon-s-order",
            column: [],
          },
          {
            label: "职责信息",
            prop: "dutyInfo",
            icon: "el-icon-s-custom",
            column: [],
          },
        ],
      },
      data: [],
    };
  },
  computed: {
    ...mapGetters(["permission"]),
    permissionList() {
      return {
        addBtn: this.vaildData(this.permission.post_add, false),
        viewBtn: this.vaildData(this.permission.post_view, false),
        delBtn: this.vaildData(this.permission.post_delete, false),
        editBtn: this.vaildData(this.permission.post_edit, false),
      };
    },
    ids() {
      let ids = [];
      this.selectionList.forEach((ele) => {
        ids.push(ele.id);
      });
      return ids.join(",");
    },
  },
  methods: {
    close(row) {
      this.dialogVisible = false;
      this.objf = {
        enterprisename: "",
        punishreason: "",
        punishresult: "",
        punishtime: "",
        punisnum: "",
      };
    },
    submitf(form, done) {
      console.log(form);
      var that = this;
      savePunish(form).then((res) => {
        this.$message({
          type: "success",
          message: "操作成功!",
        });
        that.objf = {
          enterprisename: "",
          punishreason: "",
          punishresult: "",
          punishtime: "",
          punisnum: "",
        };
      });
      // this.$message.success(JSON.stringify(form));
      done();
      this.dialogVisible = false;
      this.objf = {};
    },
    errorf(err) {
      this.$message.success("请查看控制台");
      console.log(err);
    },
    handleClose(done) {
      this.objf = {
        enterprisename: "",
        punishreason: "",
        punishresult: "",
        punishtime: "",
        punisnum: "",
      };
      done();
    },
    punish(row) {
      //打开处罚
      // console.log(row);
      this.objf = {
        deptid: row.departmentid,
        enterprisename: row.enterprisename,
      };
      this.dialogVisible = true;
    },
    rowSave(row, done, loading) {
      add(row).then(
        () => {
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
        },
        (error) => {
          window.console.log(error);
          loading();
        }
      );
    },
    rowUpdate(row, index, done, loading) {
      update(row).then(
        () => {
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
        },
        (error) => {
          window.console.log(error);
          loading();
        }
      );
    },
    rowDel(row) {
      this.$confirm("确定将选择数据删除?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
          return remove(row.id);
        })
        .then(() => {
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
        });
    },
    beforeOpen(done, type) {
      if (["edit", "view"].includes(type)) {
        getDetail(this.form.id).then((res) => {
          this.form = res.data.data;
        });
      }
      done();
    },
    searchReset() {
      this.query = {};
      this.onLoad(this.page);
    },
    searchChange(params, done) {
      this.query = params;
      this.page.currentPage = 1;
      this.onLoad(this.page, params);
      done();
    },
    selectionChange(list) {
      this.selectionList = list;
    },
    selectionClear() {
      this.selectionList = [];
      this.$refs.crud.toggleSelection();
    },
    currentChange(currentPage) {
      this.page.currentPage = currentPage;
    },
    sizeChange(pageSize) {
      this.page.pageSize = pageSize;
    },
    refreshChange() {
      this.onLoad(this.page, this.query);
    },
    onLoad(page, params = {}) {
      this.loading = true;
      getList(
        page.currentPage,
        page.pageSize,
        Object.assign(params, this.query),
        4
      ).then((res) => {
        const data = res.data.data;
        this.page.total = data.total;
        this.data = data.records;
        console.log(this.data);
        this.loading = false;
        this.selectionClear();
      });
    },
    // 行单击
    handleRowClick(row) {
      // delete (row["name"]);
      var obj = row;
      obj["name"] = "保安公司详细信息";
      this.$router.push({
        path: `/securityCompany/index`,
        query: obj,
      });
      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);
      }
    },
  },
};
</script>
<style>
</style>
src/views/securityCompany/train.vue
@@ -28,7 +28,48 @@
      @row-click="handleRowClick"
      @on-load="onLoad"
    >
      <template slot-scope="{ type, size, row }" slot="menu">
        <el-button
          :size="size"
          :type="type"
          class="zhengJian-icon"
          @click.stop="punish(row)"
          >处罚</el-button
        >
      </template>
    </avue-crud>
    <el-dialog
      title="处罚"
      :visible.sync="dialogVisible"
      width="60%"
      :before-close="handleClose"
      :modal-append-to-body="false"
      center
    >
      <!-- <span>这是一段信息</span> -->
      <avue-form
        :option="optionf"
        v-model="objf"
        @submit="submitf"
        @error="errorf"
      >
        <template slot-scope="{ type, size, row }" slot="menuForm">
          <el-button
            :size="size"
            icon="el-icon-error"
            :type="type"
            @click="close(row)"
            >关闭</el-button
          >
        </template>
      </avue-form>
      <!-- <span slot="footer" class="dialog-footer">
        <el-button @click="dialogVisible = false">取 消</el-button>
        <el-button type="primary" @click="dialogVisible = false"
          >确 定</el-button
        >
      </span> -->
    </el-dialog>
  </basic-container>
</template>
@@ -40,11 +81,75 @@
  update,
  remove,
} from "@/api/securityCompany/train";
import { savePunish } from "@/api/securityCompany/security";
import { mapGetters } from "vuex";
export default {
  data() {
    return {
      objf: {},
      optionf: {
        column: [
          {
            label: "公司名称",
            prop: "enterprisename",
            span: 24,
            labelWidth: 110,
            rules: [
              {
                required: true,
                message: "请输入身份证号码",
                trigger: "blur",
              },
            ],
          },
          {
            label: "处罚原因",
            prop: "punishreason",
            span: 24,
            labelWidth: 110,
            rules: [
              {
                required: true,
                message: "请输入荣誉名称",
                trigger: "blur",
              },
            ],
          },
          {
            label: "处罚结果",
            prop: "punishresult",
            span: 24,
            // type: "textarea",
            labelWidth: 110,
          },
          {
            label: "处罚日期",
            prop: "punishtime",
            span: 24,
            type: "date",
            format: "yyyy-MM-dd",
            valueFormat: "yyyy-MM-dd",
            // type: "textarea",
            labelWidth: 110,
          },
          {
            label: "处罚批准文号",
            prop: "punisnum",
            span: 24,
            // type: "textarea",
            labelWidth: 110,
          },
          //   {
          //     label: "授予单位名称",
          //     prop: "sex2",
          //     span: 24,
          //     labelWidth: 110,
          //   },
        ],
      },
      dialogVisible: false,
      form: {},
      query: {},
      loading: true,
@@ -60,7 +165,8 @@
        editBtn: false,
        addBtn: false,
        selection: true,
        menu: false,
        // menu: false,
        menuWidth: 100,
        align: "center",
        height: "auto",
@@ -175,6 +281,61 @@
    },
  },
  methods: {
    punish(row) {
      //打开处罚
      // console.log(row);
      this.objf = {
        deptid: row.departmentid,
        enterprisename: row.enterprisename,
      };
      this.dialogVisible = true;
    },
    close(row) {
      this.dialogVisible = false;
      this.objf = {
        enterprisename: "",
        punishreason: "",
        punishresult: "",
        punishtime: "",
        punisnum: "",
      };
    },
    submitf(form, done) {
      console.log(form);
      var that = this;
      savePunish(form).then((res) => {
        this.$message({
          type: "success",
          message: "操作成功!",
        });
        that.objf = {
          enterprisename: "",
          punishreason: "",
          punishresult: "",
          punishtime: "",
          punisnum: "",
        };
      });
      // this.$message.success(JSON.stringify(form));
      done();
      this.dialogVisible = false;
      this.objf = {};
    },
    errorf(err) {
      this.$message.success("操作失败");
      console.log(err);
    },
    handleClose(done) {
      this.objf = {
        enterprisename: "",
        punishreason: "",
        punishresult: "",
        punishtime: "",
        punisnum: "",
      };
      done();
    },
    rowSave(row, done, loading) {
      add(row).then(
        () => {
src/views/securityGuardManagement/register.vue
@@ -72,7 +72,7 @@
                :type="type"
                class="zhengJian-icon"
                @click.stop="handleViewCredentials(row)"
                >查看证件</el-button
                >打印证件</el-button
              >
              <el-button
@@ -138,6 +138,24 @@
        >
      </span> -->
    </el-dialog>
    <el-dialog
      title="保安证预览"
      :visible.sync="dialogVisiblecertificates"
      width="300"
      :before-close="handleClosecertificates"
      :modal-append-to-body="false"
      center
    >
      <div id="certificatess">
        <div class="certificates-main"></div>
      </div>
      <!-- <span>这是一段信息</span>
  <span slot="footer" class="dialog-footer">
    <el-button @click="dialogVisible = false">取 消</el-button>
    <el-button type="primary" @click="dialogVisible = false">确 定</el-button>
  </span> -->
    </el-dialog>
  </div>
</template>
@@ -173,6 +191,7 @@
      }
    };
    return {
      dialogVisiblecertificates: false,
      objf: {},
      optionf: {
        column: [
@@ -375,27 +394,27 @@
            hide: true,
          },
          {
            label: "所属辖区",
            prop: "jurisdiction",
            // multiple: true,
            minWidth: 60,
            type: "tree",
            dicUrl: "/api/jurisdiction/lazy-tree?parentId=0",
            props: {
              label: "title",
              value: "id",
            },
            checkStrictly: true,
            slot: true,
            rules: [
              {
                required: true,
                message: "请选择所属辖区",
                trigger: "click",
              },
            ],
          },
          // {
          //   label: "所属辖区",
          //   prop: "jurisdiction",
          //   // multiple: true,
          //   minWidth: 60,
          //   type: "tree",
          //   dicUrl: "/api/jurisdiction/lazy-tree?parentId=0",
          //   props: {
          //     label: "title",
          //     value: "id",
          //   },
          //   checkStrictly: true,
          //   slot: true,
          //   rules: [
          //     {
          //       required: true,
          //       message: "请选择所属辖区",
          //       trigger: "click",
          //     },
          //   ],
          // },
          {
            label: "是否在职",
            prop: "status",
@@ -953,11 +972,16 @@
    //证件查看
    handleViewCredentials(row) {
      var obj = row;
      obj["name"] = "保安证件信息";
      this.$router.push({
        path: `/management/idinformation`,
        query: obj,
      });
      // obj["name"] = "保安证件信息";
      // this.$router.push({
      //   path: `/management/idinformation`,
      //   query: obj,
      // });
      this.dialogVisiblecertificates = true;
      // // $("#certificatess").jqprint();
      // console.log($);
      // this.$Print("#certificatess");
      console.log(obj);
    },
    // 证件吊销事件
    handleCredentials(row) {
@@ -972,9 +996,9 @@
          message: "证件已吊销!",
        });
      } else {
        this.$confirm("此操作将吊销该人员的证件, 是否继续?", "提示", {
          confirmButtonText: "确定",
          cancelButtonText: "取消",
        this.$confirm("是否吊销该人员的证件?", "提示", {
          confirmButtonText: "是",
          cancelButtonText: "否",
          type: "warning",
        })
          .then(() => {
@@ -1010,4 +1034,15 @@
.box .el-scrollbar__wrap {
  overflow: scroll;
}
#certificatess {
  width: 600px;
  height: 300px;
  background-color: #fff;
  .certificates-main {
    width: 100%;
    height: 100%;
    background-image: url("/img/register/bazbj.png");
    background-size: 100% 100%;
  }
}
</style>
src/views/workreport/data.js
@@ -1,230 +1,240 @@
//已发送列表信息
export var workreportColumn = [{
        label: "汇报时间",
        prop: "reportTime",
        type: "datetime",
        format: "yyyy-MM-dd HH:mm:ss",
        valueFormat: "yyyy-MM-dd HH:mm:ss",
        searchRange: true,
        searchSpan: 6,
        hide: false,
        addDisplay: false,
        editDisplay: false,
        // viewDisplay: false,
        search: false,
        rules: [{
            required: true,
            message: "请输入时间",
            trigger: "blur"
        }]
    }, {
        label: "汇报类别",
        prop: "category",
        type: "select",
        dicUrl: "/api/blade-system/dict-biz/dictionary?code=workReportCategory",
        props: {
            label: "dictValue",
            value: "dictKey"
        },
        dataType: "number",
        searchSpan: 4,
        search: true,
        rules: [{
            required: true,
            message: "请选择汇报类别",
            trigger: "blur"
        }]
    }, {
        label: "汇报类型",
        prop: "type",
        type: "select",
        dicUrl: "/api/blade-system/dict-biz/dictionary?code=workReportType",
        props: {
            label: "dictValue",
            value: "dictKey"
        },
        dataType: "number",
        searchSpan: 4,
        search: true,
        rules: [{
            required: true,
            message: "请选择汇报类型",
            trigger: "blur"
        }]
    label: "汇报时间",
    prop: "reportTime",
    type: "datetime",
    format: "yyyy-MM-dd HH:mm:ss",
    valueFormat: "yyyy-MM-dd HH:mm:ss",
    searchRange: true,
    searchSpan: 6,
    hide: false,
    addDisplay: false,
    editDisplay: false,
    // viewDisplay: false,
    search: false,
    rules: [{
        required: true,
        message: "请输入时间",
        trigger: "blur"
    }]
}, {
    label: "汇报类别",
    prop: "category",
    type: "select",
    dicUrl: "/api/blade-system/dict-biz/dictionary?code=workReportCategory",
    props: {
        label: "dictValue",
        value: "dictKey"
    },
    {
        label: "汇报人身份证号",
        prop: "idCardNo",
        hide: true,
        addDisplay: false,
        editDisplay: false,
        viewDisplay: false,
    dataType: "number",
    // searchSpan: 4,
    // search: true,
    hide: true,
    addDisplay: false,
    editDisplay: false,
    viewDisplay: false,
    rules: [{
        required: true,
        message: "请选择汇报类别",
        trigger: "blur"
    }]
}, {
    label: "汇报类型",
    prop: "type",
    type: "select",
    dicUrl: "/api/blade-system/dict-biz/dictionary?code=workReportType",
    props: {
        label: "dictValue",
        value: "dictKey"
    },
    {
        label: "汇报内容",
        prop: "content",
        type: "textarea",
        span: 24,
        rules: [{
            required: true,
            message: "请输入汇报内容",
            trigger: "blur"
        }]
    dataType: "number",
    searchSpan: 4,
    search: true,
    rules: [{
        required: true,
        message: "请选择汇报类型",
        trigger: "blur"
    }]
},
{
    label: "接收人",
    prop: "receivedIds",
    // span: 12,
    type: "tree",
    dicUrl: "/api/blade-system/dept/lazy-tree-user",
    hide: true,
    leafOnly: true,
    props: {
        label: "title",
        value: "id",
    },
    {
        label: "接收人",
        prop: "receivedIds",
        span: 24,
        type: "tree",
        dicUrl: "/api/blade-system/dept/lazy-tree-user",
        hide: true,
        props: {
            label: "title",
            value: "id",
        },
        multiple: true,
        // dataType: "number",
        rules: [{
            required: true,
            message: "请选择接收人",
            trigger: "blur"
        }]
    },
    {
        label: "接收人",
        prop: "replyRealName",
        addDisplay: false,
        editDisplay: false,
        viewDisplay: false,
    },
    {
        label: "接收人单位",
        prop: "replyDeptName",
        addDisplay: false,
        editDisplay: false,
        // viewDisplay: false,
    },
    {
        label: "回复内容",
        prop: "replyContent",
        type: "textarea",
        span: 24,
        addDisplay: false,
        editDisplay: false,
        rules: [{
            required: true,
            message: "请输入回复内容",
            trigger: "blur"
        }]
    }
    multiple: true,
    // dataType: "number",
    rules: [{
        required: true,
        message: "请选择接收人",
        trigger: "blur"
    }]
},
{
    label: "汇报人身份证号",
    prop: "idCardNo",
    hide: true,
    addDisplay: false,
    editDisplay: false,
    viewDisplay: false,
},
{
    label: "汇报内容",
    prop: "content",
    type: "textarea",
    span: 24,
    rules: [{
        required: true,
        message: "请输入汇报内容",
        trigger: "blur"
    }]
},
{
    label: "接收人",
    prop: "replyRealName",
    addDisplay: false,
    editDisplay: false,
    viewDisplay: false,
},
{
    label: "接收人单位",
    prop: "replyDeptName",
    addDisplay: false,
    editDisplay: false,
    // viewDisplay: false,
},
{
    label: "回复内容",
    prop: "replyContent",
    type: "textarea",
    span: 24,
    addDisplay: false,
    editDisplay: false,
    rules: [{
        required: true,
        message: "请输入回复内容",
        trigger: "blur"
    }]
}
]
//接收人列信息
export var workreplyColumn = [{
        label: "汇报人",
        prop: "realName",
        disabled: true,
        span: 24,
        rules: [{
            required: true,
            message: "请选择接收人",
            trigger: "blur"
        }]
    label: "汇报人",
    prop: "realName",
    disabled: true,
    span: 24,
    rules: [{
        required: true,
        message: "请选择接收人",
        trigger: "blur"
    }]
},
{
    label: "汇报人单位",
    prop: "deptName",
    addDisplay: false,
    editDisplay: false,
    // viewDisplay: false,
}, {
    label: "汇报时间",
    prop: "reportTime",
    type: "datetime",
    format: "yyyy-MM-dd HH:mm:ss",
    valueFormat: "yyyy-MM-dd HH:mm:ss",
    searchRange: true,
    searchSpan: 6,
    hide: false,
    addDisplay: false,
    editDisplay: false,
    // viewDisplay: false,
    search: false,
    rules: [{
        required: true,
        message: "请输入时间",
        trigger: "blur"
    }]
}, {
    label: "汇报类别",
    prop: "category",
    type: "select",
    dicUrl: "/api/blade-system/dict-biz/dictionary?code=workReportCategory",
    props: {
        label: "dictValue",
        value: "dictKey"
    },
    {
        label: "汇报人单位",
        prop: "deptName",
        addDisplay: false,
        editDisplay: false,
        // viewDisplay: false,
    }, {
        label: "汇报时间",
        prop: "reportTime",
        type: "datetime",
        format: "yyyy-MM-dd HH:mm:ss",
        valueFormat: "yyyy-MM-dd HH:mm:ss",
        searchRange: true,
        searchSpan: 6,
        hide: false,
        addDisplay: false,
        editDisplay: false,
        // viewDisplay: false,
        search: false,
        rules: [{
            required: true,
            message: "请输入时间",
            trigger: "blur"
        }]
    }, {
        label: "汇报类别",
        prop: "category",
        type: "select",
        dicUrl: "/api/blade-system/dict-biz/dictionary?code=workReportCategory",
        props: {
            label: "dictValue",
            value: "dictKey"
        },
        dataType: "number",
        searchSpan: 4,
        search: true,
        hide: true,
        editDisplay: false,
        rules: [{
            required: true,
            message: "请选择汇报类别",
            trigger: "blur"
        }]
    }, {
        label: "汇报类型",
        prop: "type",
        type: "select",
        dicUrl: "/api/blade-system/dict-biz/dictionary?code=workReportType",
        props: {
            label: "dictValue",
            value: "dictKey"
        },
        dataType: "number",
        searchSpan: 4,
        search: true,
        disabled: true,
        rules: [{
            required: true,
            message: "请选择汇报类型",
            trigger: "blur"
        }]
    dataType: "number",
    // searchSpan: 4,
    // search: true,
    hide: true,
    addDisplay: false,
    editDisplay: false,
    viewDisplay: false,
    hide: true,
    editDisplay: false,
    rules: [{
        required: true,
        message: "请选择汇报类别",
        trigger: "blur"
    }]
}, {
    label: "汇报类型",
    prop: "type",
    type: "select",
    dicUrl: "/api/blade-system/dict-biz/dictionary?code=workReportType",
    props: {
        label: "dictValue",
        value: "dictKey"
    },
    // {
    //     label: "汇报人身份证号",
    //     prop: "idCardNo",
    //     hide: true,
    //     addDisplay: false,
    //     editDisplay: false,
    //     viewDisplay: false,
    // },
    {
        label: "汇报内容",
        prop: "content",
        type: "textarea",
        // editDisplay: false,
        disabled: true,
        span: 24,
        rules: [{
            required: true,
            message: "请输入汇报内容",
            trigger: "blur"
        }]
    },
    {
        label: "回复内容",
        prop: "replyContent",
        type: "textarea",
        span: 24,
        rules: [{
            required: true,
            message: "请输入回复内容",
            trigger: "blur"
        }]
    }
    dataType: "number",
    searchSpan: 4,
    search: true,
    disabled: true,
    rules: [{
        required: true,
        message: "请选择汇报类型",
        trigger: "blur"
    }]
},
// {
//     label: "汇报人身份证号",
//     prop: "idCardNo",
//     hide: true,
//     addDisplay: false,
//     editDisplay: false,
//     viewDisplay: false,
// },
{
    label: "汇报内容",
    prop: "content",
    type: "textarea",
    // editDisplay: false,
    disabled: true,
    span: 24,
    rules: [{
        required: true,
        message: "请输入汇报内容",
        trigger: "blur"
    }]
},
{
    label: "回复内容",
    prop: "replyContent",
    type: "textarea",
    span: 24,
    rules: [{
        required: true,
        message: "请输入回复内容",
        trigger: "blur"
    }]
}
]
src/views/workreport/workreply.vue
@@ -81,7 +81,7 @@
        searchMenuSpan: 6,
        editBtnText: "回复",
        searchShowBtn: false,
        updateBtnText: "提交",
        updateBtnText: "保存",
        editTitle: "回复",
        border: false,
        index: true,
src/views/workreport/workreport.vue
@@ -118,6 +118,9 @@
      row.receivedIds = row.receivedIds.join(",");
      row.deptId = this.deptId;
      row.userId = this.userId;
      row.category = 3;
      console.log(row);
      add(row).then(
        () => {
          this.onLoad(this.page);