保安服务单位许可和备案申请系统
lin
2024-05-07 e047fc31f6d9c571b11a8c49072a34edb30176db
无诈调整
10 files modified
739 ■■■■■ changed files
public/index.html 11 ●●●●● patch | view | raw | blame | history
src/api/system/user.js 12 ●●●●● patch | view | raw | blame | history
src/components/attach/attach.vue 91 ●●●●● patch | view | raw | blame | history
src/components/cardPopup/cardPopup.vue 312 ●●●●● patch | view | raw | blame | history
src/config/website.js 2 ●●● patch | view | raw | blame | history
src/lang/zh.js 4 ●●●● patch | view | raw | blame | history
src/page/login/codelogin.vue 120 ●●●● patch | view | raw | blame | history
src/views/home/index.vue 63 ●●●●● patch | view | raw | blame | history
src/views/home/ourDatas.js 118 ●●●●● patch | view | raw | blame | history
vue.config.js 6 ●●●● patch | view | raw | blame | history
public/index.html
@@ -19,8 +19,17 @@
  <script src="<%= BASE_URL %>cdn/xlsx/FileSaver.min.js"></script>
  <script src="<%= BASE_URL %>cdn/xlsx/xlsx.full.min.js"></script>
  <script type="text/javascript" src="js/jquery-2.1.3.min.js"></script>
    <!-- AvueMap-begin-->
    <script>
      window._AMapSecurityConfig = {
        securityJsCode: '5c569caedb31676fc64da5be4c5e8cee',
      }
    </script>
    <script type="text/javascript"
      src='https://webapi.amap.com/maps?v=1.4.11&key=fce315b8c816ec06755a523ccae9922d&plugin=AMap.PlaceSearch'></script>
    <script src="https://webapi.amap.com/ui/1.0/main.js?v=1.0.11"></script>
  <link rel="icon" href="<%= BASE_URL %>favicon.png">
  <title>单位许可和备案系统</title>
    <title>无诈场景系统</title>
  <style>
    html,
    body,
src/api/system/user.js
@@ -119,14 +119,10 @@
  })
}
export const zc = (username, password, phone) => {
export const zc = (param) => {
  return request({
    url: '/api/blade-user/zc',
    method: 'get',
    params: {
      username,
      password,
      phone
    }
    url: '/api/blade-system/user/register-user',
    method: 'post',
    data: param
  })
}
src/components/attach/attach.vue
@@ -1,75 +1,41 @@
<template>
  <basic-container class="hasButTwo">
    <avue-crud
      :option="option"
      :table-loading="loading"
      :data="data"
      :page.sync="page"
      :permission="permissionList"
      :before-open="beforeOpen"
      v-model="form"
      ref="crud"
      @row-del="rowDel"
      @search-change="searchChange"
      @search-reset="searchReset"
      @selection-change="selectionChange"
      @current-change="currentChange"
      @size-change="sizeChange"
      @refresh-change="refreshChange"
      @on-load="onLoad"
    >
    <avue-crud :option="option" :table-loading="loading" :data="data" :page.sync="page" :permission="permissionList"
      :before-open="beforeOpen" v-model="form" ref="crud" @row-del="rowDel" @search-change="searchChange"
      @search-reset="searchReset" @selection-change="selectionChange" @current-change="currentChange"
      @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
      <template slot="type" slot-scope="{ row }">
        <el-tag :class="row.type != 2 ? 'red' : ''">{{
          row.type != 2 ? "未上传" : "已上传"
        }}</el-tag>
      </template>
      <template slot="downtemplate" slot-scope="{ row }">
        <el-tag
          @click="downTemplates(row.template)"
          class="hand"
          :class="row.template == '' ? 'red' : ''"
          >{{ row.template == "" ? "无模板" : "下载模板" }}</el-tag
        >
        <el-tag @click="downTemplates(row.template)" class="hand"
          :class="row.template == '' ? 'red' : ''">{{ row.template == "" ? "无模板" : "下载模板" }}</el-tag>
      </template>
      <template slot-scope="{ type, size, row }" slot="menu">
        <el-button
          icon="el-icon-upload2"
          :size="size"
          :type="type"
          @click="upData(row)"
          >上传</el-button
        >
        <el-button
          icon="el-icon-download"
          :size="size"
          :type="type"
          :disabled="row.type != 2"
          @click="dowmData(row)"
          >下载</el-button
        >
        <el-button icon="el-icon-upload2" :size="size" :type="type" @click="upData(row)">上传</el-button>
        <el-button icon="el-icon-download" :size="size" :type="type" :disabled="row.type != 2"
          @click="dowmData(row)">下载</el-button>
      </template>
    </avue-crud>
    <el-dialog
      title="附件管理"
      append-to-body
      :visible.sync="attachBox"
      width="555px"
    >
      <avue-form
        ref="form"
        :option="attachOption"
        v-model="attachForm"
        :upload-after="uploadAfter"
      >
    <el-dialog title="附件管理" append-to-body :visible.sync="attachBox" width="555px">
      <avue-form ref="form" :option="attachOption" v-model="attachForm" :upload-after="uploadAfter">
      </avue-form>
    </el-dialog>
  </basic-container>
</template>
<script>
import { getUseInfor, getTemplate, addUseInfor } from "@/api/resource/attach";
import { mapGetters } from "vuex";
  import {
    getUseInfor,
    getTemplate,
    addUseInfor
  } from "@/api/resource/attach";
  import {
    mapGetters
  } from "vuex";
export default {
  props: ["type", "opens", "enclosure", "ptype"],
@@ -91,7 +57,6 @@
      selectionList: [],
      option: {
        height: 600,
        calcHeight: 30,
        tip: false,
        align: "center",
@@ -106,8 +71,7 @@
        viewBtn: true,
        selection: true,
        dialogClickModal: false,
        column: [
          {
          column: [{
            label: "附件名称",
            prop: "originalname",
            overHidden: true
@@ -128,13 +92,14 @@
          }
        ]
      },
      data: [],
        data: [{
          file: "name"
        }],
      attachForm: {},
      attachOption: {
        submitBtn: false,
        emptyBtn: false,
        column: [
          {
          column: [{
            label: "拖拽上传",
            prop: "imgUrl5",
            type: "upload",
@@ -143,16 +108,14 @@
            propsHttp: {
              res: "data"
            },
            tip:
              "支持上传jpg/png/doc/docx/xls/xlsx文件,图片不超过500Kb,文档不超过3Mb",
            tip: "支持上传jpg/png/doc/docx/xls/xlsx文件,图片不超过500Kb,文档不超过3Mb",
            action:
              // "/api/blade-resource/oss/endpoint/put-file-attach",
              "/api/blade-resource/oss/endpoint/put-file-attach?deptid=&type=" +
              type +
              "&cardid=" +
              cardid
          }
        ]
          }]
      },
      imgSee: false,
      imgUrl: "",
@@ -420,9 +383,11 @@
  background-color: rgba($color: #ff5151, $alpha: 0.1) !important;
  color: rgba($color: #ff5151, $alpha: 1) !important;
}
.hand:hover {
  cursor: pointer;
}
// .longbut {
//   // background-color: red !important;
//   width: 125px;
src/components/cardPopup/cardPopup.vue
@@ -1,41 +1,15 @@
<template>
  <div class="once">
    <div v-if="OnceChouse && useWhere != 'close'" class="OnceChouse">
      <slot name="close"></slot>
      <div class="heards"></div>
      <basic-container>
        <div v-for="(item, index) in cardData" :key="index">
          <!-- <div class="chouseHide"> -->
          <el-radio v-model="choseType" :label="item.type">{{
            item.menuName
          }}</el-radio>
          <div class="choseTitle">{{ item.datas.msg }}</div>
          <!-- </div> -->
        </div>
        <div class="hand-next">
          <el-button type="primary" @click="tipchose">确认</el-button>
          <!-- <el-button type="primary" @click="qx">取消</el-button> -->
        </div>
      </basic-container>
    </div>
    <div
      v-if="see && useWhere != 'close' && !OnceChouse"
      class="securityPermit"
    >
    <div v-if="see && useWhere != 'close' && !OnceChouse" class="securityPermit">
      <slot name="close"></slot>
      <div class="heards">{{ name }}</div>
      <basic-container>
        <div v-show="forms == 1" class="first-box-outer">
        <!-- <div v-show="forms == 1" class="first-box-outer">
          <div class="f-b-o-in">
            <div class="handling-guideline">
              <h2 class="hand-title">{{ name }}办理指南</h2>
              <div
                class="hand-content"
                ref="handcontent"
                id="handcontent"
                v-html="htmls"
              >
                <!-- ### -->
              <div class="hand-content" ref="handcontent" id="handcontent" v-html="htmls">
                {{ htmls }}
              </div>
            </div>
@@ -44,35 +18,24 @@
            <el-button type="primary" @click="tip0">下一步</el-button>
            <el-button type="primary" @click="qx">取消</el-button>
          </div>
        </div>
        <div v-show="forms == 2" class="first-box-outer">
          <div class="f-b-o-in" v-if="active">
        </div> -->
        <div class="first-box-outer">
          <div class="f-b-o-in">
            <el-collapse v-model="activeNames" @change="handleChange">
              <el-collapse-item title="公司基本信息" name="1">
                <avue-form
                  ref="form1"
                  v-model="obj0"
                  :option="option"
                  @submit="submit"
                  class="cardButs"
                ></avue-form>
                <avue-form ref="form1" v-model="obj0" :option="option" @submit="submit" class="cardButs"></avue-form>
              </el-collapse-item>
              <el-collapse-item title="附件上传/查询" name="2">
                <attach
                  :type="imgType"
                  :ptype="type"
                  :opens="opens"
                  :enclosure="enclosure"
                ></attach>
              <el-collapse-item title="附件上传" name="2">
                <!-- <attach :type="imgType" :ptype="type" :opens="opens" :enclosure="enclosure"></attach> -->
                <avue-form :option="optionFile" v-model="form"></avue-form>
              </el-collapse-item>
            </el-collapse>
          </div>
          <div class="hand-next">
            <el-button type="primary" @click="tip1up1">上一页</el-button>
            <el-button type="primary" @click="tip1" :disabled="!opens"
              >暂存</el-button
            >
            <!-- <el-button type="primary" @click="tip1up1">上一页</el-button> -->
            <el-button type="primary" @click="tip1" :disabled="!opens">暂存</el-button>
            <el-button type="primary" @click="up()" :disabled="!opens">{{
              //canDoIt ? "提交审批" : "已成功提交"
              opens ? "提交审批" : "提交审批"
@@ -86,8 +49,14 @@
</template>
<script>
import { mapGetters } from "vuex";
import { add, adds, selectIn } from "@/api/recordOur/outCardPopup";
  import {
    mapGetters
  } from "vuex";
  import {
    add,
    adds,
    selectIn
  } from "@/api/recordOur/outCardPopup";
import attach from "@/components/attach/attach";
import {
  // getDetail,
@@ -110,7 +79,7 @@
      type: "",
      imgType: "",
      apiName: [],
      forms: 1,
        forms: 2,
      data0: {},
      obj0: {},
      page: {
@@ -122,8 +91,158 @@
        emptyBtn: false,
        submitBtn: true,
        gutter: 50,
        column: []
          column: [{
              labelWidth: 100,
              label: "场所名称",
              prop: "placeName",
              // span: 24,
              rules: [{
                required: true,
                message: "请输入场所名称",
                trigger: "blur"
              }]
            }, {
              labelWidth: 100,
              label: "负责人名称",
              prop: "principal",
              // span: 24,
              rules: [{
                required: true,
                message: "请输入场所负责人姓名",
                trigger: "blur"
              }]
      },
            {
              labelWidth: 100,
              label: "负责人电话",
              prop: "principalPhone",
              // span: 24,
              rules: [{
                required: true,
                message: "请输入场所负责人联系方式",
                trigger: "blur"
              }]
            },
            // {
            //   label: "位置",
            //   prop: "location",
            //   span: 24,
            //   rules: [{
            //     required: true,
            //     message: "请选择位置",
            //     trigger: "blur"
            //   }]
            // },
            {
              labelWidth: 100,
              // width: 160,
              overHidden: true,
              slot: true,
              label: "位置",
              prop: "location",
              type: "map",
              dataType: "string",
              // labelWidth: 120,
              // span: 24,
              value: [117.96646, 28.431002, ""],
              // cascader: ['houseCodeBinds'],
              mapChange: (params) => {
                console.log('高德回调参数', params)
              },
              //高德初始化参数
              params: {
                zoom: 10,
                zoomEnable: false,
                dragEnable: false,
              },
              rules: [{
                required: true,
                message: "请选择地址",
                trigger: "blur",
              }, ],
            },
            {
              labelWidth: 100,
              label: "派出所名称",
              prop: "pcsName",
              // span: 24,
              rules: [{
                required: true,
                message: "请输入派出所名称",
                trigger: "blur"
              }]
            },
            {
              labelWidth: 100,
              label: "社区名称",
              prop: "communityName",
              // span: 24,
              rules: [{
                required: true,
                message: "请输入社区名称",
                trigger: "blur"
              }]
            },
            {
              labelWidth: 100,
              label: "社区名称",
              prop: "communityName",
              // span: 24,
              rules: [{
                required: true,
                message: "请输入社区名称",
                trigger: "blur"
              }]
            },
          ]
        },
        optionFile: {
          emptyBtn: false,
          submitBtn: true,
          gutter: 50,
          column: [
            //   {
            //   label: "附件",
            //   prop: "parentCode",
            //   type: 'upload',
            //   span: 24,
            //   dragFile: true,
            //   // action: action,
            //   rules: [{
            //     required: true,
            //     message: "请上传附件",
            //     trigger: "blur"
            //   }]
            // },
            {
              label: '附件',
              prop: 'constructionSchemeUrls',
              type: 'upload',
              span: 24,
              hide: true,
              labelWidth: 140,
              multiple: true,
              listType: "text",
              // showFileList: true,
              propsHttp: {
                res: 'data',
                name: "originalName",
                url: "link"
              },
              data: {
                suffix: 'pdf,ppt,doc,docx'
              },
              action: '/api/blade-resource/oss/endpoint/put-file-attach-suffix',
              rules: [{
                required: true,
                message: "请上传附件",
                trigger: "blur",
              }, ],
            },
          ]
        },
      activeNames: ["1", "2"],
      opens: true,
      active: false,
@@ -163,7 +282,8 @@
        this.cardData = d;
        console.log(this.cardData);
      } else {
        this.openS();
          this.see = true;
          // this.openS();
      }
      if (this.useWhere == "close") {
@@ -198,44 +318,44 @@
    },
    onLoad(page, params = {}, val, d) {
      params["cardid"] = this.userInfo.Id;
      getList(page.currentPage, page.pageSize, params).then(res => {
        const data = res.data.data;
        this.data = data.records;
        getListre(page.currentPage, page.pageSize, params).then(ress => {
          this.data = this.data.concat(ress.data.data.records);
          getListrek(page.currentPage, page.pageSize, params).then(resk => {
            this.data = this.data.concat(resk.data.data.records);
            getListrev(page.currentPage, page.pageSize, params).then(resv => {
              this.data = this.data.concat(resv.data.data.records);
              getListrel(page.currentPage, page.pageSize, params).then(resl => {
                this.data = this.data.concat(resl.data.data.records);
                // console.log("已有申请数量:", this.data.length);
                // console.log(val, "当前type");
                if (this.data.kservicetime) {
                  this.data.kservicetime.split(",");
                }
                this.changeBut(true, d);
                if (this.data.length == 0) {
                  // console.log("一条数据都没有");
                } else {
                  this.data.forEach(item => {
                    // console.log(item.ptype);
                    if (item.ptype == val) {
                      if (item.type == 0 || item.type == 2) {
                        this.changeBut(false, d);
                        // console.log(item, "有数据未审核或者审核通过");
                      } else {
                        this.changeBut(true, d);
                        // console.log(item, "审核不通过");
                      }
                    }
                  });
                }
              });
            });
          });
        });
      });
        // getList(page.currentPage, page.pageSize, params).then(res => {
        //   const data = res.data.data;
        //   this.data = data.records;
        //   getListre(page.currentPage, page.pageSize, params).then(ress => {
        //     this.data = this.data.concat(ress.data.data.records);
        //     getListrek(page.currentPage, page.pageSize, params).then(resk => {
        //       this.data = this.data.concat(resk.data.data.records);
        //       getListrev(page.currentPage, page.pageSize, params).then(resv => {
        //         this.data = this.data.concat(resv.data.data.records);
        //         getListrel(page.currentPage, page.pageSize, params).then(resl => {
        //           this.data = this.data.concat(resl.data.data.records);
        //           // console.log("已有申请数量:", this.data.length);
        //           // console.log(val, "当前type");
        //           if (this.data.kservicetime) {
        //             this.data.kservicetime.split(",");
        //           }
        //           this.changeBut(true, d);
        //           if (this.data.length == 0) {
        //             // console.log("一条数据都没有");
        //           } else {
        //             this.data.forEach(item => {
        //               // console.log(item.ptype);
        //               if (item.ptype == val) {
        //                 if (item.type == 0 || item.type == 2) {
        //                   this.changeBut(false, d);
        //                   // console.log(item, "有数据未审核或者审核通过");
        //                 } else {
        //                   this.changeBut(true, d);
        //                   // console.log(item, "审核不通过");
        //                 }
        //               }
        //             });
        //           }
        //         });
        //       });
        //     });
        //   });
        // });
    },
    changeBut(val, d) {
      this.opens = val;
@@ -264,7 +384,7 @@
      this.$store.commit("changeuseWhere", "close");
    },
    tip1up1() {
      this.forms = 1;
        this.forms = 2;
    },
    tip1() {
      //暂存申请
@@ -410,7 +530,7 @@
        }
        return number;
      }
      this.forms = 1;
        this.forms = 2;
      this.obj0 = {
        // title0: "保安单位基本信息",
      };
src/config/website.js
@@ -5,7 +5,7 @@
  title: "saber",
  logo: "S",
  key: 'saber',//配置主键,目前用于存储
  indexTitle: '单位许可和备案系统',
  indexTitle: '无诈场景系统',
  clientId: 'saber', // 客户端id
  clientSecret: 'saber_secret', // 客户端密钥
  tenantMode: true, // 是否开启租户模式
src/lang/zh.js
@@ -1,6 +1,6 @@
export default {
  tip: '提示',
  title: '单位许可和备案系统',
  title: '无诈场景系统',
  logoutTip: '退出系统, 是否继续?',
  submitText: '确定',
  cancelText: '取消',
@@ -67,7 +67,7 @@
  },
  login: {
    title: '登录 ',
    info: '单位许可和备案系统',
    info: '无诈场景系统',
    tenantId: '请输入租户ID',
    username: '请输入账号',
    password: '请输入密码',
src/page/login/codelogin.vue
@@ -1,13 +1,6 @@
<template>
  <el-form
    class="login-form"
    status-icon
    :rules="loginRules"
    ref="loginForm"
    :model="loginForm"
    label-width="0"
  >
    <el-form-item prop="username">
  <el-form class="login-form" status-icon :rules="loginRules" ref="loginForm" :model="loginForm" label-width="0">
    <!-- <el-form-item prop="username">
      <el-input
        size="small"
        @keyup.enter.native="handleLogin"
@@ -17,61 +10,48 @@
      >
        <i slot="prefix" class="icon-yonghu" />
      </el-input>
    </el-form-item>
    </el-form-item> -->
    <el-form-item prop="phone">
      <el-input
        size="small"
        @keyup.enter.native="handleLogin"
        v-model="loginForm.phone"
        auto-complete="off"
        :placeholder="$t('login.phone')"
      >
      <el-input size="small" @keyup.enter.native="handleLogin" v-model="loginForm.phone" auto-complete="off"
        :placeholder="$t('login.phone')">
        <i slot="prefix" class="el-icon-phone-outline" />
      </el-input>
    </el-form-item>
    <el-form-item prop="password">
      <el-input
        size="small"
        @keyup.enter.native="handleLogin"
        v-model="loginForm.password"
        auto-complete="off"
        show-password
        :placeholder="$t('login.password')"
      >
      <el-input size="small" @keyup.enter.native="handleLogin" v-model="loginForm.password" auto-complete="off"
        show-password :placeholder="$t('login.password')">
        <i slot="prefix" class="icon-mima" />
      </el-input>
    </el-form-item>
    <el-form-item prop="password2">
      <el-input
        size="small"
        @keyup.enter.native="handleLogin"
        v-model="loginForm.password2"
        auto-complete="off"
        show-password
        :placeholder="$t('login.password2')"
      >
      <el-input size="small" @keyup.enter.native="handleLogin" v-model="loginForm.password2" auto-complete="off"
        show-password :placeholder="$t('login.password2')">
        <i slot="prefix" class="icon-mima" />
      </el-input>
    </el-form-item>
    <el-form-item class="z-login-submit-prv">
      <el-button
        size="small"
        type="primary"
        @click.native.prevent="handleLogin"
        class="z-login-submit"
        >{{ $t("login.zc") }}
      <el-button size="small" type="primary" @click.native.prevent="handleLogin"
        class="z-login-submit">{{ $t("login.zc") }}
      </el-button>
      <el-button size="small" @click.native.prevent="gbs" class="z-login-submit"
        >{{ $t("login.gb") }}
      <el-button size="small" @click.native.prevent="gbs" class="z-login-submit">{{ $t("login.gb") }}
      </el-button>
    </el-form-item>
  </el-form>
</template>
<script>
import { isvalidatemobile } from "@/util/validate";
import { mapGetters } from "vuex";
import { zc } from "@/api/system/user";
  import {
    isvalidatemobile
  } from "@/util/validate";
  import {
    mapGetters
  } from "vuex";
  import {
    zc
  } from "@/api/system/user";
export default {
  name: "codelogin",
@@ -113,6 +93,7 @@
      msgKey: false,
      loginForm: {
        username: "",
          account: "",
        phone: "",
        password: "",
        password2: "",
@@ -120,17 +101,31 @@
      value: "",
      options: [],
      loginRules: {
        phone: [{ required: true, trigger: "blur", validator: validatePhone }],
        code: [{ required: true, trigger: "blur", validator: validateCode }],
        password: [
          { required: true, validator: validatePass, trigger: "blur" },
        ],
        password2: [
          { required: true, validator: validatePass2, trigger: "blur" },
        ],
        username: [
          { required: true, message: "请输入用户名", trigger: "blur" },
        ],
          phone: [{
            required: true,
            trigger: "blur",
            validator: validatePhone
          }],
          code: [{
            required: true,
            trigger: "blur",
            validator: validateCode
          }],
          password: [{
            required: true,
            validator: validatePass,
            trigger: "blur"
          }, ],
          password2: [{
            required: true,
            validator: validatePass2,
            trigger: "blur"
          }, ],
          username: [{
            required: true,
            message: "请输入用户名",
            trigger: "blur"
          }, ],
      },
      passwordType: "password",
      passwordTypes: "password2",
@@ -208,7 +203,7 @@
      this.$refs[formName].clearValidate();
    },
    refreshCode(row) {
      zc(row.username, row.password, row.phone).then((res) => {
        zc(row).then((res) => {
        this.loginForm.username = "";
        this.loginForm.phone = "";
        this.loginForm.password = "";
@@ -247,19 +242,20 @@
      }, 1000);
    },
    showPassword() {
      this.passwordType === ""
        ? (this.passwordType = "password")
        : (this.passwordType = "");
        this.passwordType === "" ?
          (this.passwordType = "password") :
          (this.passwordType = "");
    },
    showPasswords() {
      this.passwordType === ""
        ? (this.passwordType = "password2")
        : (this.passwordType = "");
        this.passwordType === "" ?
          (this.passwordType = "password2") :
          (this.passwordType = "");
    },
    handleLogin() {
      this.$refs.loginForm.validate((valid) => {
        console.log(valid);
        if (valid) {
            this.loginForm.account = this.loginForm.phone
          this.refreshCode(this.loginForm);
          this.message("dahsiofhiusa");
          return Promise.reject(new Error("注册成功,待审核"));
src/views/home/index.vue
@@ -1,12 +1,9 @@
<template>
  <div id="examine">
    <div class="examine_heard">
      服务许可审批备案系统
      无诈场景系统
      <div class="e_h_right">
        <img
          src="http://nx.baibaodun.cn:80/assets/images/username-person.png"
          alt=""
        />
        <img src="http://nx.baibaodun.cn:80/assets/images/username-person.png" alt="" />
        <span>
          {{ userName }}
        </span>
@@ -15,18 +12,13 @@
    </div>
    <div class="examine_body">
      <div class="title">
        <h2>保安相关申请流程</h2>
        <h2>无诈场景信息提交</h2>
        <button @click="openApproval">审批进度查询</button>
      </div>
      <div class="b_main">
        <!-- 卡片 -->
        <examineCard
          v-for="(item, index) in dataCard"
          :key="index"
          :data="item"
          :ind="item.type"
          @open="openMain"
        ></examineCard>
        <examineCard v-for="(item, index) in dataCard" :key="index" :data="item" :ind="item.type" @open="openMain">
        </examineCard>
        <!-- v-show="showCard" -->
        <!-- :background="" -->
      </div>
@@ -35,10 +27,7 @@
    <!-- 审批进度查询 -->
    <Approval class="Approval" :data="dataCard">
      <span slot="close">
        <i
          class="el-icon-close ApprovalClose breakApprovalClose"
          @click="ApprovalClose"
        ></i>
        <i class="el-icon-close ApprovalClose breakApprovalClose" @click="ApprovalClose"></i>
      </span>
    </Approval>
    <cardPopup class="crossRegion" :data="dataCard" :together="together">
@@ -50,12 +39,18 @@
</template>
<script>
import { ourDatas } from "./ourDatas";
  import {
    ourDatas
  } from "./ourDatas";
import examineCard from "@/components/examineCard/examineCard.vue"; //卡片
import Approval from "@/components/Approval/Approval.vue"; //审批进度查询
import cardPopup from "@/components/cardPopup/cardPopup.vue"; // 卡片弹窗
import { mapGetters } from "vuex";
import { resetRouter } from "@/router/router";
  import {
    mapGetters
  } from "vuex";
  import {
    resetRouter
  } from "@/router/router";
export default {
  components: {
@@ -118,7 +113,9 @@
      }).then(() => {
        this.$store.dispatch("LogOut").then(() => {
          resetRouter();
          this.$router.push({ path: "/login" });
            this.$router.push({
              path: "/login"
            });
        });
      });
    },
@@ -141,6 +138,7 @@
  height: 100%;
  overflow: hidden;
  box-sizing: border-box;
  .examine_heard {
    background-color: #25aff3;
    width: 100%;
@@ -150,13 +148,16 @@
    color: #ffffff;
    font-size: 24px;
    line-height: 50px;
    .e_h_right {
      float: right;
      margin-right: 20px;
      img {
        display: inline-block;
        vertical-align: middle;
      }
      span {
        font-style: normal;
        color: #ffffff;
@@ -166,6 +167,7 @@
        margin: 0;
        padding-left: 4px;
      }
      div {
        display: inline;
        margin-left: 15px;
@@ -175,14 +177,17 @@
      }
    }
  }
  .examine_body {
    width: 100%;
    height: calc(100% - 50px);
    .title {
      h2 {
        position: relative;
        left: 60px;
      }
      width: 100%;
      height: 200px;
      // border: 1px solid red;
@@ -191,6 +196,7 @@
      padding-bottom: 120px;
      box-sizing: border-box;
      justify-content: center;
      button {
        position: relative;
        left: 30%;
@@ -202,6 +208,7 @@
        background-color: #fff;
      }
    }
    .b_main {
      // width: 1105px;// 3个一行
      width: 1475px; //4个一行
@@ -211,6 +218,7 @@
      box-sizing: border-box;
    }
  }
  .zhezhao {
    width: 100%;
    height: 100%;
@@ -219,6 +227,7 @@
    left: 0;
    background-color: rgba($color: #000000, $alpha: 0.2);
  }
  .Approval,
  .securityPermit {
    position: absolute;
@@ -227,6 +236,7 @@
    width: 1243px;
    // height: 766px;
  }
  .OnceChouse {
    position: absolute;
    top: calc(50% - 200px);
@@ -243,10 +253,12 @@
    right: 11px;
    z-index: 10;
    color: #fff;
    &:hover {
      color: red;
    }
  }
  .breakApprovalClose {
    color: #000;
  }
@@ -266,11 +278,13 @@
  left: 1px;
  background-color: #25aff3;
}
.first-box-outer {
  width: 100%;
  max-height: 685px;
  overflow-y: hidden;
  overflow-x: hidden;
  .f-b-o-in {
    width: 100%;
    height: 620px;
@@ -278,18 +292,21 @@
    overflow-x: hidden;
  }
}
.handling-guideline {
  width: 85%;
  padding: 10px;
  margin: 0 auto;
  background-color: rgba($color: #f9f9f9, $alpha: 0.8);
}
.hand-next {
  margin-top: 15px;
  width: 100%;
  display: flex;
  justify-content: center;
}
p {
  font-size: 14px;
  line-height: 28px;
@@ -298,6 +315,7 @@
    font-weight: bold;
  }
}
.el-collapse-item__header {
  font-size: 20px !important;
}
@@ -316,18 +334,21 @@
  width: 25px;
  height: 25px;
}
.el-radio__inner::after {
  width: 8px;
  height: 8px;
  // left: calc(50% - 4px);
  // top: calc(50% - 4px);
}
.el-radio__label {
  font-size: 16px;
  font-weight: 700;
  font: Helvetica Neue, Helvetica, PingFang SC, \5fae\8f6f\96c5\9ed1, Tahoma,
    Arial, sans-serif;
}
.choseTitle {
  padding: 15px 28px;
  font-size: 14px;
src/views/home/ourDatas.js
@@ -35,12 +35,12 @@
export var ourDatas = [{
    menuName: "保安服务许可申请",
    menuName: "企业",
    centerUrl: "/img/logo.png",
    topUrl: "url(/img/login-sq1.png)",
    topUrlh: "url(/img/login-sq11.png)",
    targetUrl: "per",
    type: 0,
    type: 2,
    imgType: 0,
    datas: {
      msg: `材料说明:普通保安服
@@ -49,7 +49,7 @@
            秩序维护的公司。`,
      htmls: securityPermit,
      column: securityPermitcolumn,
      apiName: ['permit/save', 'permit/storage', 'permit/selectIn']
      apiName: ['permit/save', 'permit/storage', 'blade-taskNoFraudReporting/taskNoFraudReporting/page']
    },
    overtime: {
      overtimef: 30,
@@ -58,16 +58,16 @@
    enclosure: securityPermitenclosure,
  },
  {
    menuName: "保安培训许可申请",
    menuName: "工地",
    centerUrl: "/img/logo.png",
    topUrl: "url(/img/login-sq4.png)",
    topUrlh: "url(/img/login-sq44.png)",
    type: 1,
    type: 3,
    imgType: 1,
    datas: {
      htmls: securityTraining,
      column: securityTrainingcolumn,
      apiName: ['permit/save', 'permit/storage', 'permit/selectIn']
      apiName: ['permit/save', 'permit/storage', 'blade-taskNoFraudReporting/taskNoFraudReporting/page']
    },
    overtime: {
      overtimef: 30,
@@ -77,16 +77,16 @@
  },
  {
    menuName: "设立分公司备案",
    menuName: "学校",
    centerUrl: "/img/logo.png",
    topUrl: "url(/img/login-sq2.png)",
    topUrlh: "url(/img/login-sq22.png)",
    type: 2,
    type: 4,
    imgType: 2,
    datas: {
      htmls: branchOffice,
      column: branchOfficecolumn,
      apiName: ['record/save', 'record/rocordsave', 'record/selectIn']
      apiName: ['record/save', 'record/rocordsave', 'blade-taskNoFraudReporting/taskNoFraudReporting/page']
    },
    overtime: {
      overtimef: 30,
@@ -96,16 +96,16 @@
  },
  {
    menuName: "自招保安单位备案",
    menuName: "医院",
    centerUrl: "/img/logo.png",
    topUrl: "url(/img/login-sq3.png)",
    topUrlh: "url(/img/login-sq33.png)",
    type: 3,
    type: 5,
    imgType: 3,
    datas: {
      htmls: securityGuard,
      column: securityGuardcolumn,
      apiName: ['record/save', 'record/rocordsave', 'record/selectIn']
      apiName: ['record/save', 'record/rocordsave', 'blade-taskNoFraudReporting/taskNoFraudReporting/page']
    },
    overtime: {
      overtimef: 30,
@@ -115,16 +115,16 @@
  },
  {
    menuName: "自招保安单位撤销备案",
    menuName: "村(社区)",
    centerUrl: "/img/logo.png",
    topUrl: "url(/img/login-sq5.png)",
    topUrlh: "url(/img/login-sq55.png)",
    type: 4,
    type: 6,
    imgType: 6,
    datas: {
      htmls: cancellationOfFiling,
      column: cancellationOfFilingcolumn,
      apiName: ['revoke/save', 'revoke/revokesave', 'revoke/selectIn']
      apiName: ['revoke/save', 'revoke/revokesave', 'blade-taskNoFraudReporting/taskNoFraudReporting/page']
    },
    overtime: {
      overtimef: 30,
@@ -133,16 +133,16 @@
    enclosure: cancellationOfFilingenclosure,
  },
  {
    menuName: "跨区域经营备案",
    menuName: "厂(园区)",
    centerUrl: "/img/logo.png",
    topUrl: "url(/img/login-sq10.png)",
    topUrlh: "url(/img/login-sq1010.png)",
    type: 5,
    type: 7,
    imgType: 7,
    datas: {
      htmls: crossRegion,
      column: crossRegioncolumn,
      apiName: ['recordk/save', 'recordk/recorkstorage', 'recordk/selectIn']
      apiName: ['recordk/save', 'recordk/recorkstorage', 'blade-taskNoFraudReporting/taskNoFraudReporting/page']
    },
    overtime: {
      overtimef: 30,
@@ -151,46 +151,64 @@
    enclosure: crossRegionenclosure,
  },
  {
    menuName: "武装押运许可申请",
    // centerUrl: "/img/logo.png",
    // topUrl: "url(/img/login-sq10.png)",
    // topUrlh: "url(/img/login-sq1010.png)",
    fromWhere: 0,
    type: 6,
    imgType: 8,
    datas: {
      msg: `按照《公安部关于印发<保安守
            护押运管理规定>的通知》(公通字[2017]13号)规定
            :各地原则上不再许可设立新的
            提供武装守护押运服务的保安企业,确需设立的,必须报经公安部同意后方可许可`,
      htmls: armedEscort,
      column: armedEscortcolumn,
      apiName: ['recordk/save', 'recordk/recorkstorage', 'recordk/selectIn']
    },
    overtime: {
      overtimef: 15,
      overtimec: 15,
    },
    enclosure: armedEscortenclosure,
  },
  { //保安服务公司法人变更
    menuName: "保安服务公司法人变更",
    menuName: "单位",
    centerUrl: "/img/logo.png",
    topUrl: "url(/img/login-sq10.png)",
    topUrlh: "url(/img/login-sq1010.png)",
    type: 7,
    imgType: 13,
    type: 8,
    imgType: 7,
    datas: {
      htmls: changeOfLegalPerson,
      column: changeOfLegalPersoncolumn,
      apiName: ['recordlegalperson/save', 'recordlegalperson/recorkstorage', 'recordlegalperson/selectIn']
      htmls: crossRegion,
      column: crossRegioncolumn,
      apiName: ['recordk/save', 'recordk/recorkstorage', 'blade-taskNoFraudReporting/taskNoFraudReporting/page']
    },
    overtime: {
      overtimef: 30,
      overtimec: 10,
      overtimec: 14,
    },
    enclosure: changeOfLegalPersonenclosure,
  }
    enclosure: crossRegionenclosure,
  },
  // {
  //   menuName: "武装押运许可申请",
  //   // centerUrl: "/img/logo.png",
  //   // topUrl: "url(/img/login-sq10.png)",
  //   // topUrlh: "url(/img/login-sq1010.png)",
  //   fromWhere: 0,
  //   type: 6,
  //   imgType: 8,
  //   datas: {
  //     msg: `按照《公安部关于印发<保安守
  //           护押运管理规定>的通知》(公通字[2017]13号)规定
  //           :各地原则上不再许可设立新的
  //           提供武装守护押运服务的保安企业,确需设立的,必须报经公安部同意后方可许可`,
  //     htmls: armedEscort,
  //     column: armedEscortcolumn,
  //     apiName: ['recordk/save', 'recordk/recorkstorage', 'recordk/selectIn']
  //   },
  //   overtime: {
  //     overtimef: 15,
  //     overtimec: 15,
  //   },
  //   enclosure: armedEscortenclosure,
  // },
  // { //保安服务公司法人变更
  //   menuName: "保安服务公司法人变更",
  //   centerUrl: "/img/logo.png",
  //   topUrl: "url(/img/login-sq10.png)",
  //   topUrlh: "url(/img/login-sq1010.png)",
  //   type: 7,
  //   imgType: 13,
  //   datas: {
  //     htmls: changeOfLegalPerson,
  //     column: changeOfLegalPersoncolumn,
  //     apiName: ['recordlegalperson/save', 'recordlegalperson/recorkstorage', 'recordlegalperson/selectIn']
  //   },
  //   overtime: {
  //     overtimef: 30,
  //     overtimec: 10,
  //   },
  //   enclosure: changeOfLegalPersonenclosure,
  // }
]
//数据形式参考
// { //保安服务公司法人变更
vue.config.js
@@ -28,11 +28,11 @@
    proxy: {
      '/api': {
        //本地服务接口地址
        // target: 'http://localhost:81',
        target: 'http://localhost:9528',
        //远程演示服务地址,可用于直接启动项目
        // target: 'https://saber.bladex.vip/api',
        // target: 'https://srgdjczzxtpt.com:2080/api',
        // target: "http://61.131.136.25:2080/api",
        target: 'http://60.220.177.113:2081/api',
        // target: 'http://60.220.177.113:2081/api',
        ws: true,
        pathRewrite: {
          '^/api': '/'