保安服务单位许可和备案申请系统
lin
2024-05-08 5455230326af3e930771fbb688536b3483f076b7
无诈调整
10 files modified
1201 ■■■■ changed files
public/index.html 2 ●●● patch | view | raw | blame | history
src/api/permit/permit.js 2 ●●● patch | view | raw | blame | history
src/api/recordOur/outCardPopup.js 50 ●●●●● patch | view | raw | blame | history
src/components/Approval/Approval.vue 545 ●●●● patch | view | raw | blame | history
src/components/cardPopup/cardPopup.vue 279 ●●●●● patch | view | raw | blame | history
src/components/cardPopup/cardPopuponce.vue 295 ●●●● 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/views/home/index.vue 8 ●●●●● patch | view | raw | blame | history
src/views/home/ourDatas.js 14 ●●●● patch | view | raw | blame | history
public/index.html
@@ -29,7 +29,7 @@
      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/permit/permit.js
@@ -2,7 +2,7 @@
export const getList = (current, size, params) => {
  return request({
    url: '/api/permit/list',
    url: '/api/blade-taskNoFraudReporting/taskNoFraudReporting/page',
    method: 'get',
    params: {
      ...params,
src/api/recordOur/outCardPopup.js
@@ -1,30 +1,38 @@
import request from '@/router/axios';
export const add = (name, row) => {
    return request({
        url: '/api/' + name,
        method: 'post',
        data: row
    })
export const add = (row) => {
  return request({
    url: '/api/blade-taskNoFraudReporting/taskNoFraudReporting/saveTwo',
    method: 'post',
    data: row
  })
}
export const adds = (name, row) => {
    return request({
        url: '/api/' + name,
        method: 'post',
        data: row
    })
export const uploadFile = (row) => {
  return request({
    url: '/api/blade-resource/oss/endpoint/put-file-attach-suffix',
    method: 'post',
    data: row
  })
}
export const patrolGroupTree = (row) => {
  return request({
    url: '/api/patrol/patrolGroup/getPatrolGroupTree',
    method: 'get',
    params: row
  })
}
export const selectIn = (name, cardid, type) => {
    return request({
        url: '/api/' + name,
        method: 'post',
        params: {
            cardid,
            type
        }
    })
}
  return request({
    url: '/api/' + name,
    method: 'post',
    params: {
      cardid,
      type
    }
  })
}
src/components/Approval/Approval.vue
@@ -2,28 +2,12 @@
  <div v-if="ApprovalShow">
    <slot name="close"></slot>
    <basic-container class="Approval">
      <avue-crud
        :option="option1"
        :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 class="tdtype" slot-scope="{ row }" slot="type">
      <avue-crud :option="option1" :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 class="tdtype" slot-scope="{ row }" slot="type">
          <el-tag class="dtype">
            {{
              row.type == "0" ? "通过" : row.type == "1" ? "不通过" : "待审核"
@@ -32,25 +16,15 @@
            <i class="yj" v-if="row.type == '1'"></i>
            <i class="zc" v-if="row.type == '2'"></i>
          </el-tag>
        </template>
        </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="icon-zhengjian" :size="size" :type="type" class="zhengJian-icon"
            @click.stop="handleCredentials(row)">查看</el-button>
        </template>
      </avue-crud>
    </basic-container>
    <div class="seeOnces" v-if="openOnceShow">
      <i
        class="el-icon-close openOnceCLoce"
        style="color: #000 !important"
        @click="openClose"
      >
      <i class="el-icon-close openOnceCLoce" style="color: #000 !important" @click="openClose">
      </i>
      <div class="seeOncesMain">
        <cardPopuponce class="openOnce" :paredData="paredData"></cardPopuponce>
@@ -60,257 +34,276 @@
</template>
<script>
import {
  getDetail,
  getList,
  getListre,
  getListrek,
  getListrev,
} from "@/api/permit/permit";
import { mapGetters } from "vuex";
import cardPopuponce from "../cardPopup/cardPopuponce.vue";
export default {
  components: {
    cardPopuponce,
  },
  props: {
    visible: {
      type: Boolean,
      default: false,
  import {
    getDetail,
    getList,
    getListre,
    getListrek,
    getListrev,
  } from "@/api/permit/permit";
  import {
    mapGetters
  } from "vuex";
  import cardPopuponce from "../cardPopup/cardPopuponce.vue";
  export default {
    components: {
      cardPopuponce,
    },
    data: {
      type: Array,
      default: [],
    props: {
      visible: {
        type: Boolean,
        default: false,
      },
      data: {
        type: Array,
        default: [],
      },
    },
  },
  computed: {
    ...mapGetters(["ApprovalShow", "userInfo"]),
  },
  created() {
    var d = this.data,
      b = [];
    for (var k in d) {
      // console.log({
      //   label: d[k].menuName,
      //   value: d[k].type + "",
      // });
      b.push({
        label: d[k].menuName,
        value: d[k].type + "",
      });
    }
    this.option1.column[1].dicData = b;
  },
  data() {
    return {
      useWhere: "",
      paredData: "",
      openOnceShow: false,
    computed: {
      ...mapGetters(["ApprovalShow", "userInfo"]),
    },
    created() {
      data: [],
      query: {},
      loading: false,
      page: {
        pageSize: 10,
        currentPage: 1,
        total: 0,
      },
      option1: {
        delBtn: false,
        editBtn: false,
        addBtn: false,
        height: "auto",
        calcHeight: 260,
        tip: false,
        searchShow: true,
        searchMenuSpan: 8,
        labelWidth: 130,
        menuWidth: 100,
        headerAlign: "center",
        align: "center",
        border: true,
        index: true,
        viewBtn: false,
        selection: true,
        dialogClickModal: false,
        column: [
          {
            label: "企业名称",
            prop: "enterprisename",
            labelWidth: 160,
            span: 12,
            rules: [
              {
                required: true,
                message: "请输入企业名称",
                trigger: "blur",
              },
            ],
          },
          {
            label: "许可类型",
            prop: "ptype",
            type: "select",
            dicData: [],
          },
          {
            label: "审批意见",
            prop: "approve",
          },
          {
            label: "提交时间",
            prop: "permitime",
            addDisplay: false,
            type: "date",
            format: "yyyy-MM-dd HH:mm:ss",
            valueFormat: "yyyy-MM-dd HH:mm:ss",
          },
          {
            label: "截止受理时间",
            prop: "overtime",
            addDisplay: false,
            type: "date",
            format: "yyyy-MM-dd",
            valueFormat: "yyyy-MM-dd",
          },
          {
            label: "所属辖区",
            prop: "jurisdiction",
            type: "tree",
            dicUrl: "/api/jurisdiction/lazy-trees",
            // hide: true,
            props: {
              label: "title",
              value: "id",
    },
    data() {
      return {
        useWhere: "",
        paredData: "",
        openOnceShow: false,
        data: [],
        query: {},
        loading: false,
        page: {
          pageSize: 10,
          currentPage: 1,
          total: 0,
        },
        option1: {
          delBtn: false,
          editBtn: false,
          addBtn: false,
          height: "auto",
          calcHeight: 260,
          tip: false,
          searchShow: false,
          // searchMenuSpan: 8,
          labelWidth: 130,
          menuWidth: 100,
          headerAlign: "center",
          align: "center",
          border: true,
          index: true,
          viewBtn: false,
          selection: true,
          dialogClickModal: false,
          column: [{
              label: "场所名称",
              prop: "placeName",
              span: 24,
              row: true,
              searchSpan: 4,
              search: true,
              align: 'center'
            },
            labelWidth: 160,
            span: 12,
            rules: [
              {
                required: true,
                message: "请输入发证时间",
                trigger: "blur",
            {
              label: "场所地址",
              prop: "location",
              span: 24,
              row: true,
              searchSpan: 4,
              searchLabelWidth: 46,
              overHidden: true,
              align: 'center'
            }, {
              label: "无诈类别",
              prop: "noExplosionCategory",
              align: 'center',
              dicUrl: "/api/blade-system/dict-biz/tree?code=noExplosionCategory",
              props: {
                label: "title",
                value: "key",
              },
            ],
          },
          {
            label: "审核状态",
            prop: "type",
            addDisplay: false,
            type: "select",
            dicData: [
              {
                label: "通过",
                value: "0",
              },
              {
                label: "不通过",
                value: "1",
              },
              {
                label: "待审核",
                value: "2",
              },
            ],
          },
        ],
              type: 'select',
              search: true,
              searchSpan: 4,
              searchLabelWidth: 96,
              align: 'center'
            }, {
              label: "所属街道",
              prop: "streetName",
              span: 24,
              row: true,
              searchSpan: 4,
              search: true,
              align: 'center'
            },
            {
              label: "所属社区",
              prop: "communityName",
              span: 24,
              row: true,
              searchSpan: 4,
              search: true,
              width: 160,
              overHidden: true,
              align: 'center'
            },
            {
              label: "派出所",
              prop: "pcsName",
              span: 24,
              row: true,
              searchSpan: 4,
              search: true,
              align: 'center'
            },
            {
              label: "场所负责人",
              prop: "principal",
              span: 24,
              row: true,
              searchSpan: 4,
              search: true,
              align: 'center'
            },
            {
              label: "场所负责人电话",
              prop: "principalPhone",
              span: 24,
              row: true,
              slot: true,
              searchSpan: 4,
              align: 'center'
            },
            // {
            //   label: "无诈上报数量",
            //   prop: "number",
            //   span: 24,
            //   row: true,
            //   slot: true,
            //   searchSpan: 4,
            //   align: 'center'
            // },
            // {
            //   width: 110,
            //   label: "审核状态",
            //   prop: "status",
            //   span: 24,
            //   align: 'center',
            //   slot: true,
            // },
            {
              label: "创建时间",
              prop: "createTime",
              span: 24,
              row: true,
              searchSpan: 4,
              searchLabelWidth: 46,
              align: 'center'
            },
            {
              label: "审核状态",
              prop: "status",
              addDisplay: false,
              type: "select",
              dicData: [{
                  label: "待审核",
                  value: 1,
                },
                {
                  label: "已审核",
                  value: 2,
                },
                {
                  label: "未通过",
                  value: 3,
                }, {
                  label: "待完成",
                  value: 4,
                },
              ],
            },
          ],
        },
      };
    },
    methods: {
      refreshChange() {
        this.onLoad(this.page);
      },
    };
  },
  methods: {
    refreshChange() {
      this.onLoad(this.page);
    },
    beforeOpen(done, type) {
      if (["edit", "view"].includes(type)) {
        getDetail(this.form.id).then((res) => {
          this.form = res.data.data;
        });
      }
      done();
    },
    handleCredentials(val) {
      this.openOnceShow = true;
      this.paredData = val;
      // console.log(val);
    },
    openClose() {
      this.paredData = "";
      this.openOnceShow = false;
    },
    onLoad(page, params = {}) {
      this.loading = true;
      //   console.log(this.userInfo);
      params["cardid"] = this.userInfo.Id;
      var num = 0;
      getList(
        page.currentPage,
        page.pageSize,
        Object.assign(params, this.query)
      ).then((res) => {
        num += res.data.data.total;
        this.data = res.data.data.records;
        this.loading = false;
        getListre(
      beforeOpen(done, type) {
        if (["edit", "view"].includes(type)) {
          // getDetail(this.form.id).then((res) => {
          //   this.form = res.data.data;
          // });
        }
        done();
      },
      handleCredentials(val) {
        this.openOnceShow = true;
        this.paredData = val;
        // console.log(val);
      },
      openClose() {
        this.paredData = "";
        this.openOnceShow = false;
      },
      onLoad(page, params = {}) {
        console.log("userId*****" + window.localStorage.getItem("saber-userInfo"))
        console.log("userId2*****" + JSON.parse(window.localStorage.getItem("saber-userInfo")).content.user_id)
        this.loading = true;
        params.createUser = JSON.parse(window.localStorage.getItem("saber-userInfo")).content.user_id
        getList(
          page.currentPage,
          page.pageSize,
          Object.assign(params, this.query)
        ).then((ress) => {
          num += ress.data.data.total;
          this.data = this.data.concat(ress.data.data.records);
          getListrek(
            page.currentPage,
            page.pageSize,
            Object.assign(params, this.query)
          ).then((resk) => {
            num += resk.data.data.total;
            this.data = this.data.concat(resk.data.data.records);
            getListrev(
              page.currentPage,
              page.pageSize,
              Object.assign(params, this.query)
            ).then((resv) => {
              num += resv.data.data.total;
              this.data = this.data.concat(resv.data.data.records);
              this.page.total = num;
            });
          });
        ).then((res) => {
          this.loading = false;
          this.page.total = res.data.data.total;
          this.data = res.data.data.records;
        });
      });
      },
    },
  },
};
  };
</script>
<style lang="scss">
.seeOnces {
  position: absolute;
  top: -50px;
  left: 6px;
  width: 1251px;
  height: 850px;
  background-color: #fff;
  z-index: 10;
  border-radius: 4px;
}
.openOnce {
  width: 100%;
  height: 100%;
}
.seeOncesMain {
  width: 100%;
  height: 100%;
  overflow: scroll;
}
.openOnceCLoce {
  position: absolute;
  top: 17px;
  font-size: 20px;
  right: 11px;
  z-index: 10;
  color: #fff;
}
.openOnceCLoce:hover {
  color: red;
}
</style>
  .seeOnces {
    position: absolute;
    top: -50px;
    left: 6px;
    width: 1251px;
    height: 850px;
    background-color: #fff;
    z-index: 10;
    border-radius: 4px;
  }
  .openOnce {
    width: 100%;
    height: 100%;
  }
  .seeOncesMain {
    width: 100%;
    height: 100%;
    overflow: scroll;
  }
  .openOnceCLoce {
    position: absolute;
    top: 17px;
    font-size: 20px;
    right: 11px;
    z-index: 10;
    color: #fff;
  }
  .openOnceCLoce:hover {
    color: red;
  }
</style>
src/components/cardPopup/cardPopup.vue
@@ -5,37 +5,38 @@
      <slot name="close"></slot>
      <div class="heards">{{ name }}</div>
      <basic-container>
        <!-- <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">
                {{ htmls }}
              </div>
            </div>
          </div>
          <div class="hand-next">
            <el-button type="primary" @click="tip0">下一步</el-button>
            <el-button type="primary" @click="qx">取消</el-button>
          </div>
        </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">
              <el-collapse-item title="基本信息" name="1">
                <avue-form ref="form1" v-model="obj0" :option="option" @submit="submit" class="cardButs"></avue-form>
              </el-collapse-item>
              <el-collapse-item title="附件上传" name="2">
                <div v-for="(item,index) in patrolGroup">
                  <div style="font-weight: bold;font-size: 20px;">
                    {{item.title}}
                  </div>
                  <div v-for="(item1,index1) in item.children">
                    <div>
                      {{index1+1}} {{item1.title}}
                    </div>
                    <div style="margin: 10px;">
                      <el-upload class="upload-demo" :limit="1" :data="item1" :on-change="handleChange"
                        :http-request="uploadFile">
                        <el-button size="small" type="primary">点击上传</el-button>
                      </el-upload>
                    </div>
                  </div>
                </div>
                <!-- <attach :type="imgType" :ptype="type" :opens="opens" :enclosure="enclosure"></attach> -->
                <avue-form :option="optionFile" v-model="form"></avue-form>
                <!-- <avue-form :option="optionFile" v-model="obj0"></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="tip1" :disabled="!opens">暂存</el-button> -->
            <el-button type="primary" @click="up()" :disabled="!opens">{{
              //canDoIt ? "提交审批" : "已成功提交"
              opens ? "提交审批" : "提交审批"
@@ -54,12 +55,12 @@
  } from "vuex";
  import {
    add,
    adds,
    selectIn
    patrolGroupTree,
    selectIn,
    uploadFile
  } from "@/api/recordOur/outCardPopup";
  import attach from "@/components/attach/attach";
  import {
    // getDetail,
    getList,
    getListre,
    getListrek,
@@ -81,7 +82,9 @@
        apiName: [],
        forms: 2,
        data0: {},
        obj0: {},
        obj0: {
          type: 2
        },
        page: {
          pageSize: 10,
          currentPage: 1,
@@ -123,16 +126,6 @@
                trigger: "blur"
              }]
            },
            // {
            //   label: "位置",
            //   prop: "location",
            //   span: 24,
            //   rules: [{
            //     required: true,
            //     message: "请选择位置",
            //     trigger: "blur"
            //   }]
            // },
            {
              labelWidth: 100,
              // width: 160,
@@ -173,26 +166,48 @@
              }]
            },
            {
              // width: 156,
              labelWidth: 100,
              overHidden: true,
              label: "社区名称",
              prop: "communityName",
              // span: 24,
              parent: false,
              prop: "communityCode",
              // search: true,
              searchSpan: 4,
              searchType: 'input',
              type: "tree",
              dicUrl: "/api/blade-system/region/treeToCommunity",
              props: {
                label: "name",
                value: "id"
              },
              nodeClick: (data, node, nodeComp) => {
                this.obj0.communityName = data.name
              },
              rules: [{
                required: true,
                message: "请输入社区名称",
                trigger: "blur"
              }]
                message: "请选择社区名称",
                trigger: "blur",
              }, ],
            },
            {
              labelWidth: 100,
              label: "社区名称",
              prop: "communityName",
              // span: 24,
              rules: [{
                required: true,
                message: "请输入社区名称",
                trigger: "blur"
              }]
              disabled: true,
              // label: "无诈类型",
              // prop: "noFraudType",
              label: "无诈类别",
              prop: "noFraudType",
              align: 'center',
              dicUrl: "/api/blade-system/dict-biz/tree?code=noExplosionCategory",
              props: {
                label: "title",
                value: "key",
              },
              type: 'select',
              search: true,
              searchSpan: 4,
              searchLabelWidth: 96,
              align: 'center'
            },
          ]
        },
@@ -217,7 +232,7 @@
            // },
            {
              label: '附件',
              prop: 'constructionSchemeUrls',
              prop: 'fileUrls',
              type: 'upload',
              span: 24,
              hide: true,
@@ -240,7 +255,7 @@
                trigger: "blur",
              }, ],
            },
          ]
          ],
        },
        activeNames: ["1", "2"],
@@ -254,7 +269,10 @@
          overtimef: "",
          overtimec: ""
        },
        enclosure: [] //附件上传 基础数据
        enclosure: [], //附件上传 基础数据
        patrolGroup: [],
        taskPlaceRecordVOList: [],
      };
    },
    computed: {
@@ -272,6 +290,7 @@
            // console.log("选择");
          }
        }
        // console.log("**********noFraudType*****************" + JSON.stringify(this.data))
        if (this.OnceChouse) {
          this.choseType = this.useWhere;
          for (var k in this.data) {
@@ -284,6 +303,10 @@
        } else {
          this.see = true;
          // this.openS();
          this.getPatrolGroupTree();
          this.obj0.noFraudType = this.data[0].type
          console.table(this.data);
          console.log(this.data[0].type);
        }
        if (this.useWhere == "close") {
@@ -292,6 +315,32 @@
      }
    },
    methods: {
      uploadFile(param) {
        console.log("自定义上传", param);
        const formData = new FormData()
        formData.append('file', param.file)
        formData.append('suffix', "pdf,ppt,doc,docx")
        let data = param.data
        uploadFile(formData).then(res => {
          if (res.data.code == 200) {
            this.taskPlaceRecordVOList.push({
              itemId: data.id,
              imageUrls: res.data.data.link
            })
          }
          console.log('上传图片成功' + JSON.stringify(res))
          // console.log('上传图片成功2' + JSON.stringify(this.patrolGroup))
          console.log('上传图片成功2' + JSON.stringify(this.taskPlaceRecordVOList))
        }).catch(response => {
          console.log('图片上传失败')
        })
      },
      handleChange(file, fileList) {
        console.table(fileList)
        // this.fileList = fileList.slice(-3);
      },
      tipchose() {
        this.OnceChouse = false;
        this.openS(this.choseType, this.cardData);
@@ -318,44 +367,7 @@
      },
      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, "审核不通过");
        //                 }
        //               }
        //             });
        //           }
        //         });
        //       });
        //     });
        //   });
        // });
      },
      changeBut(val, d) {
        this.opens = val;
@@ -386,6 +398,23 @@
      tip1up1() {
        this.forms = 2;
      },
      getPatrolGroupTree() {
        let data = {
          childType: 6,
          type: 2
        }
        patrolGroupTree(data).then((res) => {
          console.log("*****res********" + JSON.stringify(res))
          this.patrolGroup = res.data.data
          // this.qx();
          // this.$message({
          //   message: "暂存申请成功",
          //   type: "success"
          // });
        });
      },
      tip1() {
        //暂存申请
        var d = {};
@@ -400,7 +429,7 @@
        this.data0 = d;
        this.data0.cardid = this.$store.getters.userInfo.Id;
        this.data0.ptype = this.type;
        adds(this.apiName[1], this.data0).then(() => {
        adds().then(() => {
          this.qx();
          this.$message({
            message: "暂存申请成功",
@@ -415,79 +444,21 @@
        this.up(0);
      },
      up(val = 1) {
        //提交申请
        // this.submit();
        if (val == 1) {
          this.$refs.form1.submit(); //解决点击提交不能显示那个字段输入错误的问题
          return;
        }
        var d = {};
        for (var k in this.obj0) {
          for (var i in this.option.column) {
            if (k == this.option.column[i].prop && k != "title0") {
              d[k] = this.obj0[k];
            }
          }
        if (this.obj0.fileUrls) {
          this.obj0.fileUrls = JSON.stringify(this.obj0.fileUrls)
        }
        this.data0 = d;
        this.data0.ptype = this.type;
        this.data0.cardid = this.$store.getters.userInfo.Id;
        //验证数据
        var commin = true;
        var a = this.data0;
        for (var k in a) {
          if (k == "representativecell" || k == "contactscell") {
            //电话验证
            if (!yanzhengphons.test(a[k])) {
              // console.log(a[k], k);
              commin = false;
              console.log(1);
              break;
            }
            // } else if (k == "creditcode" || k == "registeredcapital") {
          } else if (k == "registeredcapital") {
            //数字验证
            if (!yanzhengnumbers.test(a[k])) {
              // console.log(a[k], k);
              commin = false;
              console.log(2);
              break;
            }
          } else if (k == "address" || k == "business") {
            //跳过验证
            continue;
          } else {
            //空值验证
            // if (a[k] == "" && k != "ptype" && k != "creditcode") {
            //   console.log(a[k], k);
            //   commin = false;
            //   console.log(3);
            //   break;
            // }
          }
        if (this.obj0.location) {
          let arr = this.obj0.location.split(",")
          this.obj0.lng = arr[0]
          this.obj0.lat = arr[1]
          this.obj0.location = arr[2]
        }
        if (!commin) {
          this.$message({
            message: "请检查输入数据是否正确!",
            type: "warning"
          });
          return;
        }
        a["overtime"] = this.getNowTime(this.overtime.overtimec);
        // console.log(a);
        // return;
        // console.log(typeof this.data0.kservicetime);
        if (
          this.data0.kservicetime &&
          typeof this.data0.kservicetime != "string"
        ) {
          this.data0.kservicetime = this.data0.kservicetime.join(",");
        }
        // console.log(this.apiName[0], this.data0);
        // return;
        add(this.apiName[0], this.data0).then(() => {
        this.obj0.taskPlaceRecordVOList = this.taskPlaceRecordVOList
        add(this.obj0).then(() => {
          this.qx();
          this.$message({
            message: "提交申请成功",
src/components/cardPopup/cardPopuponce.vue
@@ -1,89 +1,230 @@
<template>
  <basic-container class="openOnceMain">
    <el-collapse v-model="activeNames" @change="handleChange">
      <el-collapse-item title="公司基本信息" name="1">
        <avue-form
          ref="form1"
          v-model="obj0"
          :option="option"
          class="cardButs"
        ></avue-form>
    <!-- <el-collapse v-model="activeNames" @change="handleChange">
      <el-collapse-item title="基本信息" name="1">
        <avue-form ref="form1" v-model="obj0" :option="option" class="cardButs"></avue-form>
      </el-collapse-item>
      <el-collapse-item title="附件上传/查询" name="2">
        <attach
          v-if="openattach"
          :type="imgType"
          :ptype="type"
          :opens="opens"
          :enclosure="enclosure"
        ></attach>
      <el-collapse-item title="附件上传" name="2">
        <attach v-if="openattach" :type="imgType" :ptype="type" :opens="opens" :enclosure="enclosure"></attach>
      </el-collapse-item>
    </el-collapse> -->
    <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>
      </el-collapse-item>
      <el-collapse-item title="附件上传" name="2">
        <div v-for="(item,index) in  this.obj0.taskPlaceRecordVOList">
          <div style="font-weight: bold;font-size: 20px;">
            {{item.title}}
          </div>
          <div v-for="(item1,index1) in item.children">
            <div>
              {{index1+1}} {{item1.title}}
            </div>
            <div style="margin: 10px;">
              <!--  <el-upload class="upload-demo" :limit="1" :data="item1" :on-change="handleChange"
                :http-request="uploadFile">
                <el-button size="small" type="primary">点击上传</el-button>
              </el-upload> -->
            </div>
          </div>
        </div>
        <!-- <attach :type="imgType" :ptype="type" :opens="opens" :enclosure="enclosure"></attach> -->
        <!-- <avue-form :option="optionFile" v-model="obj0"></avue-form> -->
      </el-collapse-item>
    </el-collapse>
  </basic-container>
</template>
<script>
import { ourDatas } from "@/views/home/ourDatas";
import attach from "@/components/attach/attach";
import { mapGetters } from "vuex";
export default {
  components: {
    attach,
  },
  props: ["useWhere", "paredData"],
  data() {
    return {
      opens: false,
      openattach: false,
      enclosure: "",
      type: "",
      activeNames: ["1", "2"],
      imgType: "",
      obj0: {},
      option: {
        emptyBtn: false,
        submitBtn: true,
        editDisabled: true,
        gutter: 50,
        column: [],
      },
    };
  },
  computed: {
    ...mapGetters(["userInfo"]),
  },
  mounted() {
    for (let i = 0; i < ourDatas.length; i++) {
      if (ourDatas[i].menuName == this.paredData.$ptype) {
        // console.log(ourDatas[i]);
        this.option.column = ourDatas[i].datas.column;
        this.imgType = ourDatas[i].imgType;
        this.openattach = true;
        this.type = ourDatas[i].type;
        this.enclosure = ourDatas[i].enclosure;
  import {
    ourDatas
  } from "@/views/home/ourDatas";
  import attach from "@/components/attach/attach";
  import {
    mapGetters
  } from "vuex";
  export default {
    components: {
      attach,
    },
    props: ["useWhere", "paredData"],
    data() {
      return {
        patrolGroup: [],
        opens: false,
        openattach: false,
        enclosure: "",
        type: "",
        activeNames: ["1", "2"],
        imgType: "",
        obj0: {},
        option: {
          emptyBtn: false,
          submitBtn: true,
          gutter: 50,
          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"
              }]
            },
            {
              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"
              }]
            },
            {
              // width: 156,
              labelWidth: 100,
              overHidden: true,
              label: "社区名称",
              parent: false,
              prop: "communityCode",
              // search: true,
              searchSpan: 4,
              searchType: 'input',
              type: "tree",
              dicUrl: "/api/blade-system/region/treeToCommunity",
              props: {
                label: "name",
                value: "id"
              },
              // change: ({
              //   value,
              //   column
              // }) => {
              //   this.$message.success('change事件查看控制台')
              //   console.log('值改变', value, column)
              // },
              nodeClick: (data, node, nodeComp) => {
                this.obj0.communityName = data.name
                // this.$message.success(JSON.stringify(data))
              },
              rules: [{
                required: true,
                message: "请选择社区名称",
                trigger: "blur",
              }, ],
            },
            {
              labelWidth: 100,
              disabled: true,
              // label: "无诈类型",
              // prop: "noFraudType",
              label: "无诈类别",
              prop: "noFraudType",
              align: 'center',
              dicUrl: "/api/blade-system/dict-biz/tree?code=noExplosionCategory",
              props: {
                label: "title",
                value: "key",
              },
              type: 'select',
              search: true,
              searchSpan: 4,
              searchLabelWidth: 96,
              align: 'center'
            },
          ]
        },
      };
    },
    computed: {
      ...mapGetters(["userInfo"]),
    },
    mounted() {
      for (let i = 0; i < ourDatas.length; i++) {
        if (ourDatas[i].menuName == this.paredData.$ptype) {
          // console.log(ourDatas[i]);
          this.option.column = ourDatas[i].datas.column;
          this.imgType = ourDatas[i].imgType;
          this.openattach = true;
          this.type = ourDatas[i].type;
          this.enclosure = ourDatas[i].enclosure;
        }
      }
    }
    let cloum = this.option.column;
    for (let i in cloum) {
      if (cloum[i].prop == "jurisdiction") {
        cloum[i] = {
          label: "所属辖区",
          prop: "jurisdiction",
          labelWidth: 160,
          span: 12,
        };
      let cloum = this.option.column;
      for (let i in cloum) {
        if (cloum[i].prop == "jurisdiction") {
          cloum[i] = {
            label: "所属辖区",
            prop: "jurisdiction",
            labelWidth: 160,
            span: 12,
          };
        }
        cloum[i]["disabled"] = true;
      }
      cloum[i]["disabled"] = true;
    }
    // console.log(cloum);
    this.paredData.jurisdiction = this.paredData.$jurisdiction;
    this.obj0 = this.paredData;
    // console.log(this.obj0);
  },
};
      // console.log(cloum);
      this.paredData.jurisdiction = this.paredData.$jurisdiction;
      this.obj0 = this.paredData;
      console.log("this.obj0******************" + JSON.stringify(this.obj0));
    },
  };
</script>
<style lang="scss" scoped>
.openOnceMain {
  width: 100%;
  height: 100%;
}
</style>
  .openOnceMain {
    width: 100%;
    height: 100%;
  }
</style>
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/views/home/index.vue
@@ -1,8 +1,11 @@
<template>
  <div id="examine">
    <div class="examine_heard">
      无诈场景系统
      无诈认证系统
      <div class="e_h_right">
        <button
          style="margin-right: 10px; background-color: aliceblue; border: 0ch; border-radius: 5px; font-size: 20px;"
          @click="openApproval">审批进度查询</button>
        <img src="http://nx.baibaodun.cn:80/assets/images/username-person.png" alt="" />
        <span>
          {{ userName }}
@@ -12,8 +15,7 @@
    </div>
    <div class="examine_body">
      <div class="title">
        <h2>无诈场景信息提交</h2>
        <button @click="openApproval">审批进度查询</button>
        <!-- <h2>无诈场景信息提交</h2> -->
      </div>
      <div class="b_main">
        <!-- 卡片 -->
src/views/home/ourDatas.js
@@ -40,7 +40,7 @@
    topUrl: "url(/img/login-sq1.png)",
    topUrlh: "url(/img/login-sq11.png)",
    targetUrl: "per",
    type: 2,
    type: "2",
    imgType: 0,
    datas: {
      msg: `材料说明:普通保安服
@@ -62,7 +62,7 @@
    centerUrl: "/img/logo.png",
    topUrl: "url(/img/login-sq4.png)",
    topUrlh: "url(/img/login-sq44.png)",
    type: 3,
    type: "3",
    imgType: 1,
    datas: {
      htmls: securityTraining,
@@ -81,7 +81,7 @@
    centerUrl: "/img/logo.png",
    topUrl: "url(/img/login-sq2.png)",
    topUrlh: "url(/img/login-sq22.png)",
    type: 4,
    type: "4",
    imgType: 2,
    datas: {
      htmls: branchOffice,
@@ -100,7 +100,7 @@
    centerUrl: "/img/logo.png",
    topUrl: "url(/img/login-sq3.png)",
    topUrlh: "url(/img/login-sq33.png)",
    type: 5,
    type: "5",
    imgType: 3,
    datas: {
      htmls: securityGuard,
@@ -119,7 +119,7 @@
    centerUrl: "/img/logo.png",
    topUrl: "url(/img/login-sq5.png)",
    topUrlh: "url(/img/login-sq55.png)",
    type: 6,
    type: "6",
    imgType: 6,
    datas: {
      htmls: cancellationOfFiling,
@@ -137,7 +137,7 @@
    centerUrl: "/img/logo.png",
    topUrl: "url(/img/login-sq10.png)",
    topUrlh: "url(/img/login-sq1010.png)",
    type: 7,
    type: "7",
    imgType: 7,
    datas: {
      htmls: crossRegion,
@@ -155,7 +155,7 @@
    centerUrl: "/img/logo.png",
    topUrl: "url(/img/login-sq10.png)",
    topUrlh: "url(/img/login-sq1010.png)",
    type: 8,
    type: "8",
    imgType: 7,
    datas: {
      htmls: crossRegion,