保安服务单位许可和备案申请系统
liuyg
2022-02-17 fa2872c51e7a8f6ff9ebb52cdf0fcb188610b3da
+加法人变更类别  7
6 files modified
410 ■■■■■ changed files
src/api/permit/permit.js 12 ●●●●● patch | view | raw | blame | history
src/components/attach/attach.vue 74 ●●●● patch | view | raw | blame | history
src/components/cardPopup/cardPopup.vue 68 ●●●●● patch | view | raw | blame | history
src/views/home/column.js 242 ●●●●● patch | view | raw | blame | history
src/views/home/ourDatas.js 5 ●●●●● patch | view | raw | blame | history
vue.config.js 9 ●●●●● patch | view | raw | blame | history
src/api/permit/permit.js
@@ -47,6 +47,17 @@
  })
}
export const getListrel = (current, size, params) => {
  return request({
    url: '/api/recordlegalperson/list',
    method: 'get',
    params: {
      ...params,
      current,
      size,
    }
  })
}
export const getDetail = (id) => {
  return request({
    url: '/api/permit/detail',
@@ -101,4 +112,3 @@
    data: row
  })
}
src/components/attach/attach.vue
@@ -85,7 +85,7 @@
      page: {
        pageSize: 10,
        currentPage: 1,
        total: 0,
        total: 0
      },
      attachBox: false,
      selectionList: [],
@@ -110,23 +110,23 @@
          {
            label: "附件名称",
            prop: "originalname",
            overHidden: true,
            overHidden: true
          },
          {
            label: "附件状态",
            prop: "type",
            width: 110,
            slot: true,
            overHidden: true,
            overHidden: true
          },
          {
            label: "示范模板",
            prop: "downtemplate",
            width: 110,
            // overHidden: true,
            slot: true,
          },
        ],
            slot: true
          }
        ]
      },
      data: [],
      attachForm: {},
@@ -141,17 +141,18 @@
            span: 12,
            drag: true,
            propsHttp: {
              res: "data",
              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,
          },
        ],
              cardid
          }
        ]
      },
      imgSee: false,
      imgUrl: "",
@@ -159,7 +160,7 @@
      saveIds: [],
      saveLinks: [],
      onceIds: "",
      onceLinks: "",
      onceLinks: ""
    };
  },
  computed: {
@@ -169,16 +170,16 @@
        addBtn: false,
        editBtn: false,
        viewBtn: false,
        delBtn: this.vaildData(this.permission.attach_delete, false),
        delBtn: this.vaildData(this.permission.attach_delete, false)
      };
    },
    ids() {
      let ids = [];
      this.selectionList.forEach((ele) => {
      this.selectionList.forEach(ele => {
        ids.push(ele.id);
      });
      return ids.join(",");
    },
    }
  },
  mounted() {
    // console.log(this.enclosure, "enclosure");
@@ -200,8 +201,8 @@
  },
  methods: {
    upData(val) {
      console.log(val);
      this.onceIds = +val.id - 1 + "";
      // console.log(val);
      this.onceIds = +val.id + "";
      this.attachBox = true;
    },
    dowmData(val) {
@@ -221,13 +222,15 @@
      this.attachBox = true;
    },
    uploadAfter(res, done, loading, column) {
      window.console.log(res.link);
      // window.console.log(res.link);
      var test = /^http:\/\/.*/;
      if (!test.test(res.link)) {
        this.$message.error("上传失败");
        return;
      }
      this.onceLinks = res.link;
      // console.log(res);
      // return;
      var haveit = null;
      for (let k in this.saveIds) {
        if (this.saveIds[k] == this.onceIds) {
@@ -242,21 +245,24 @@
        this.saveIds.push(this.onceIds);
        this.saveLinks.push(this.onceLinks);
      }
      console.log(this.saveIds);
      console.log(this.saveLinks);
      // console.log(this.saveIds);
      // console.log(this.saveLinks);
      //  console.log(this.$store.getters.userInfo.Id);
      var params = {
        userid: this.$store.getters.userInfo.Id,
        ptype: this.ptype,
        templateid: this.saveIds.join(","),
        links: this.saveLinks.join(","),
        links: this.saveLinks.join(",")
      };
      addUseInfor(params).then((res) => {
      // console.log(params);
      // loading();
      // return;
      addUseInfor(params).then(res => {
        // console.log(res);
        this.$message({
          type: "success",
          message: "操作成功!",
          message: "操作成功!"
        });
      });
      this.refreshChange();
@@ -270,7 +276,7 @@
      this.$confirm("确定将选择数据删除?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
        type: "warning"
      })
        .then(() => {
          return remove(row.id);
@@ -279,7 +285,7 @@
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!",
            message: "操作成功!"
          });
        });
    },
@@ -291,7 +297,7 @@
      this.$confirm("确定将选择数据删除?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
        type: "warning"
      })
        .then(() => {
          return remove(this.ids);
@@ -300,14 +306,14 @@
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!",
            message: "操作成功!"
          });
          this.$refs.crud.toggleSelection();
        });
    },
    beforeOpen(done, type) {
      if (["edit", "view"].includes(type)) {
        getDetail(this.form.id).then((res) => {
        getDetail(this.form.id).then(res => {
          this.form = res.data.data;
        });
      }
@@ -345,11 +351,11 @@
      // console.log(this.$store.getters.userInfo.Id);
      // this.data = this.enclosure;
      params["ptype"] = this.ptype;
      getTemplate(params, 1, 50).then((res) => {
      getTemplate(params, 1, 50).then(res => {
        data = res.data.data.records;
        // console.log(data, "::template");
        params["userid"] = this.$store.getters.userInfo.Id;
        getUseInfor(params).then((res) => {
        getUseInfor(params).then(res => {
          var userInfo = res.data.data.records;
          // console.log(userInfo, "::userInfo");
          if (userInfo.length == 0) {
@@ -364,7 +370,7 @@
            this.saveLinks = userInfo[0].links.split(",");
            for (let k in data) {
              for (let i in this.saveIds) {
                if (+data[k].id - 1 == this.saveIds[i]) {
                if (+data[k].id == this.saveIds[i]) {
                  data[k]["type"] = 2;
                  data[k]["down"] = this.saveLinks[i];
                }
@@ -400,11 +406,11 @@
          "webp",
          "psd",
          "svg",
          "tiff",
          "tiff"
        ].indexOf(ext.toLowerCase()) == -1
      );
    },
  },
    }
  }
};
</script>
src/components/cardPopup/cardPopup.vue
@@ -95,10 +95,11 @@
  getListre,
  getListrek,
  getListrev,
  getListrel
} from "@/api/permit/permit";
export default {
  components: {
    attach: attach,
    attach: attach
  },
  props: ["data", "together"],
  data() {
@@ -115,13 +116,13 @@
      page: {
        pageSize: 10,
        currentPage: 1,
        total: 0,
        total: 0
      },
      option: {
        emptyBtn: false,
        submitBtn: true,
        gutter: 50,
        column: [],
        column: []
      },
      activeNames: ["1", "2"],
      opens: true,
@@ -132,13 +133,13 @@
      choseType: "",
      overtime: {
        overtimef: "",
        overtimec: "",
        overtimec: ""
      },
      enclosure: [], //附件上传 基础数据
      enclosure: [] //附件上传 基础数据
    };
  },
  computed: {
    ...mapGetters(["userInfo", "useWhere"]),
    ...mapGetters(["userInfo", "useWhere"])
  },
  watch: {
    useWhere() {
@@ -168,7 +169,7 @@
      if (this.useWhere == "close") {
        this.tipover();
      }
    },
    }
  },
  methods: {
    tipchose() {
@@ -197,22 +198,28 @@
    },
    onLoad(page, params = {}, val, d) {
      params["cardid"] = this.userInfo.Id;
      getList(page.currentPage, page.pageSize, params).then((res) => {
      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) => {
        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) => {
          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) => {
            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) => {
                  this.data.forEach(item => {
                    // console.log(item.ptype);
                  if (item.ptype == val) {
                    if (item.type == 0 || item.type == 2) {
                      this.changeBut(false, d);
@@ -228,6 +235,7 @@
          });
        });
      });
      });
    },
    changeBut(val, d) {
      this.opens = val;
@@ -239,7 +247,7 @@
    },
    convert: function () {
      var caridid = this.$store.getters.userInfo.Id;
      selectIn(this.apiName[2], caridid, this.type).then((res) => {
      selectIn(this.apiName[2], caridid, this.type).then(res => {
        var d = res.data.data;
        // console.log(d, "d");
        for (var k in d) {
@@ -276,7 +284,7 @@
        this.qx();
        this.$message({
          message: "暂存申请成功",
          type: "success",
          type: "success"
        });
      });
    },
@@ -331,30 +339,39 @@
          continue;
        } else {
          //空值验证
          if (a[k] == "" && k != "ptype") {
          // if (a[k] == "" && k != "ptype" && k != "creditcode") {
            // console.log(a[k], k);
            commin = false;
            console.log(3);
            break;
          }
          //   commin = false;
          //   console.log(3);
          //   break;
          // }
        }
      }
      if (!commin) {
        this.$message({
          message: "请检查输入数据是否正确!",
          type: "warning",
          type: "warning"
        });
        return;
      }
      a["overtime"] = this.getNowTime(this.overtime.overtimec);
      console.log(a);
      // 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.qx();
        this.$message({
          message: "提交申请成功",
          type: "success",
          type: "success"
        });
        this.$store.commit("changecanDoIt", false);
      });
@@ -401,10 +418,9 @@
      this.data0 = d;
      this.active = false;
      this.OnceChouse = false;
    },
  },
    }
  }
};
</script>
<style lang="scss">
</style>
<style lang="scss"></style>
src/views/home/column.js
@@ -2,13 +2,15 @@
var numbers = (rule, value, callback) => {
    window.yanzhengnumbers = /^[0-9]+.?[0-9]*$/;
    if (!yanzhengnumbers.test(value)) {
        callback(new Error('请输入数字'));
    } else {
  //   window.yanzhengnumbers = /^[0-9]+.?[0-9]*$/;
  //   if (!yanzhengnumbers.test(value) && Math.floor(value) !== value) {
  if (Math.floor(value) === value) {
        callback();
  } else {
    callback(new Error('请输入整数'));
    }
};
var phones = (rule, value, callback) => {
    window.yanzhengphons = /^1([358][0-9]|4[579]|66|7[0135678]|9[89])[0-9]{8}$/;
@@ -19,19 +21,16 @@
    }
};
var columnOLD = [
    {
var columnOLD = [{
        label: "企业名称",
        prop: "enterprisename",
        labelWidth: 160,
        span: 12,
        rules: [
            {
    rules: [{
                required: true,
                message: "请输入企业名称",
                trigger: "blur",
            },
        ],
    }, ],
    },
    {
        label: "统一社会信用代码",
@@ -68,27 +67,25 @@
        prop: "representative",
        labelWidth: 160,
        span: 12,
        rules: [
            {
    rules: [{
                required: true,
                message: "请输入法定代表人",
                trigger: "blur",
            },
        ],
    }, ],
    },
    {
        label: "法定代表人电话",
        prop: "representativecell",
        labelWidth: 160,
        span: 12,
        rules: [
            {
    rules: [{
                required: true,
                message: "法定代表人电话",
                trigger: "blur",
            },
            {
                validator: phones, trigger: ['change', 'blur']
        validator: phones,
        trigger: ['change', 'blur']
            },
        ],
    },
@@ -97,27 +94,25 @@
        prop: "contacts",
        labelWidth: 160,
        span: 12,
        rules: [
            {
    rules: [{
                required: true,
                message: "联系人",
                trigger: "blur",
            },
        ],
    }, ],
    },
    {
        label: "联系人电话",
        prop: "contactscell",
        labelWidth: 160,
        span: 12,
        rules: [
            {
    rules: [{
                required: true,
                message: "联系人电话",
                trigger: "blur",
            },
            {
                validator: phones, trigger: ['change', 'blur']
        validator: phones,
        trigger: ['change', 'blur']
            },
        ],
    },
@@ -256,13 +251,11 @@
        },
        labelWidth: 160,
        span: 12,
        rules: [
            {
    rules: [{
                required: true,
                message: "请输入发证时间",
                trigger: "blur",
            },
        ],
    }, ],
    },
    {
        label: "登记机关",
@@ -292,19 +285,16 @@
    }
]
var column = [
    {
var column = [{
        label: "企业名称",
        prop: "enterprisename",
        labelWidth: 160,
        span: 12,
        rules: [
            {
    rules: [{
                required: true,
                message: "请输入企业名称",
                trigger: "blur",
            },
        ],
    }, ],
    },
    {
        label: "统一社会信用代码",
@@ -327,27 +317,25 @@
        prop: "representative",
        labelWidth: 160,
        span: 12,
        rules: [
            {
    rules: [{
                required: true,
                message: "请输入法定代表人",
                trigger: "blur",
            },
        ],
    }, ],
    },
    {
        label: "法定代表人电话",
        prop: "representativecell",
        labelWidth: 160,
        span: 12,
        rules: [
            {
    rules: [{
                required: true,
                message: "法定代表人电话",
                trigger: "blur",
            },
            {
                validator: phones, trigger: ['change', 'blur']
        validator: phones,
        trigger: ['change', 'blur']
            },
        ],
    },
@@ -356,27 +344,25 @@
        prop: "contacts",
        labelWidth: 160,
        span: 12,
        rules: [
            {
    rules: [{
                required: true,
                message: "联系人",
                trigger: "blur",
            },
        ],
    }, ],
    },
    {
        label: "联系人电话",
        prop: "contactscell",
        labelWidth: 160,
        span: 12,
        rules: [
            {
    rules: [{
                required: true,
                message: "联系人电话",
                trigger: "blur",
            },
            {
                validator: phones, trigger: ['change', 'blur']
        validator: phones,
        trigger: ['change', 'blur']
            },
        ],
    },
@@ -385,13 +371,11 @@
        prop: "address",
        labelWidth: 160,
        span: 12,
        rules: [
            {
    rules: [{
                required: true,
                message: "联系人电话",
                trigger: "blur",
            }
        ],
    }],
    },
    {
        label: "所属辖区",
@@ -404,13 +388,11 @@
        },
        labelWidth: 160,
        span: 12,
        rules: [
            {
    rules: [{
                required: true,
                message: "请输入发证时间",
                trigger: "blur",
            },
        ],
    }, ],
    },
    // {
    //     label: "注册地址",
@@ -467,19 +449,16 @@
]
var columnzizhao = [
    {
var columnzizhao = [{
        label: "企业名称",
        prop: "enterprisename",
        labelWidth: 160,
        span: 12,
        rules: [
            {
    rules: [{
                required: true,
                message: "请输入企业名称",
                trigger: "blur",
            },
        ],
    }, ],
    },
    {
        label: "统一社会信用代码",
@@ -502,27 +481,25 @@
        prop: "representative",
        labelWidth: 160,
        span: 12,
        rules: [
            {
    rules: [{
                required: true,
                message: "请输入法定代表人",
                trigger: "blur",
            },
        ],
    }, ],
    },
    {
        label: "法定代表人电话",
        prop: "representativecell",
        labelWidth: 160,
        span: 12,
        rules: [
            {
    rules: [{
                required: true,
                message: "法定代表人电话",
                trigger: "blur",
            },
            {
                validator: phones, trigger: ['change', 'blur']
        validator: phones,
        trigger: ['change', 'blur']
            },
        ],
    },
@@ -531,27 +508,25 @@
        prop: "contacts",
        labelWidth: 160,
        span: 12,
        rules: [
            {
    rules: [{
                required: true,
                message: "联系人",
                trigger: "blur",
            },
        ],
    }, ],
    },
    {
        label: "联系人电话",
        prop: "contactscell",
        labelWidth: 160,
        span: 12,
        rules: [
            {
    rules: [{
                required: true,
                message: "联系人电话",
                trigger: "blur",
            },
            {
                validator: phones, trigger: ['change', 'blur']
        validator: phones,
        trigger: ['change', 'blur']
            },
        ],
    },
@@ -560,13 +535,11 @@
        prop: "address",
        labelWidth: 160,
        span: 12,
        rules: [
            {
    rules: [{
                required: true,
                message: "联系人电话",
                trigger: "blur",
            }
        ],
    }],
    },
    {
        label: "所属辖区",
@@ -579,13 +552,11 @@
        },
        labelWidth: 160,
        span: 12,
        rules: [
            {
    rules: [{
                required: true,
                message: "请输入发证时间",
                trigger: "blur",
            },
        ],
    }, ],
    },
];
@@ -635,19 +606,76 @@
        labelWidth: 160,
        span: 24,
        type: 'textarea',
        rules: [
            {
    rules: [{
                required: true,
                message: "请输入撤销原因",
                trigger: "blur",
            },
        ],
    }, ],
    },
]
export var crossRegioncolumn = [//跨区域经营备案
    ...columnXIAQU
  ...columnXIAQU, {
    label: "保安人数",
    prop: "ksecuritys",
    labelWidth: 160,
    span: 12,
    append: '(人)',
    type: 'number',
    rules: [{
      required: true,
      message: "请输入保安人数",
      trigger: "blur",
    }, {
      validator: numbers,
      trigger: 'blur'
    }],
  }, {
    label: "拟跨区域经营的保安服务项目",
    prop: "kproject",
    labelWidth: 240,
    // span: 24,
    rules: [{
      required: true,
      message: "请输入拟跨区域经营的保安服务项目",
      trigger: "blur",
    }],
  }, {
    label: "邮编",
    prop: "kzipcode",
    span: 12,
    labelWidth: 160,
    rules: [{
      required: true,
      message: "请输入邮编",
      trigger: "blur",
    }],
  }, {
    label: "跨区域经营服务时间(备案有效期)",
    prop: "kservicetime",
    format: 'yyyy-MM-dd',
    labelWidth: 260,
    type: "daterange",
    valueFormat: 'yyyy-MM-dd',
    startPlaceholder: '备案有效期开始',
    endPlaceholder: '备案有效期结束',
    rules: [{
      required: true,
      message: "请输入跨区域经营服务时间(备案有效期)",
      trigger: "blur",
    }],
  }, {
    label: "地址",
    prop: "kaddress",
    labelWidth: 160,
    // span: 24,
    rules: [{
      required: true,
      message: "请输入地址",
      trigger: "blur",
    }],
  },
]
@@ -655,6 +683,40 @@
    ...columnU
]
var columnFRBG = [];
for (var k in column) {
  if (column[k].prop == 'contacts') {
    columnFRBG.push({
      label: "更变后法人",
      prop: "changecontacts",
      labelWidth: 160,
      span: 12,
      rules: [{
        required: true,
        message: "更变后法人",
        trigger: "blur",
      }, ],
    });
    columnFRBG.push({
      label: "更变后法人电话",
      prop: "changecontactscell",
      labelWidth: 160,
      span: 12,
      rules: [{
          required: true,
          message: "更变后法人电话",
          trigger: "blur",
        },
        {
          validator: phones,
          trigger: ['change', 'blur']
        },
      ],
    }, );
  }
  columnFRBG.push(column[k]);
}
export var changeOfLegalPersoncolumn = [//保安服务公司法人变更
    ...column
  ...columnFRBG
]
src/views/home/ourDatas.js
@@ -34,8 +34,7 @@
export var ourDatas = [
    {
export var ourDatas = [{
        menuName: "保安服务许可申请",
        centerUrl: "/img/logo.png",
        topUrl: "url(/img/login-sq1.png)",
@@ -184,7 +183,7 @@
        datas: {
            htmls: changeOfLegalPerson,
            column: changeOfLegalPersoncolumn,
            apiName: ['recordk/save', 'recordk/recorkstorage', 'recordk/selectIn']
      apiName: ['recordlegalperson/save', 'recordlegalperson/recorkstorage', 'recordlegalperson/selectIn']
        },
        overtime: {
            overtimef: 30,
vue.config.js
@@ -18,7 +18,9 @@
    entry.add('@/mock').end();
  },
  css: {
    extract: { ignoreOrder: true }
    extract: {
      ignoreOrder: true
    }
  },
  //开发模式反向代理配置,生产模式请使用Nginx部署并配置反向代理
  devServer: {
@@ -26,10 +28,11 @@
    proxy: {
      '/api': {
        //本地服务接口地址
        // target: 'http://localhost:81',
        target: 'http://localhost:81',
        //远程演示服务地址,可用于直接启动项目
        // target: 'https://saber.bladex.vip/api',
        target: 'http://192.168.0.103:81',
        // target: "http://223.82.109.183:2080/api",
        // target: 'http://192.168.0.103:81',
        ws: true,
        pathRewrite: {
          '^/api': '/'