From 6922e2338b6b500f79837bc7684f0e05dc8db52e Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Mon, 12 Jul 2021 20:14:58 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.105:10010/r/zhba_enterprises

---
 src/api/equipments/equipments.js          |   39 +
 src/views/dispatchChild/data.js           |    2 
 vue.config.js                             |    1 
 src/router/views/index.js                 |   39 +
 src/views/recruitmentManagement/index.vue |   44 
 src/views/dispatch/data.js                |    2 
 src/views/securityUnit/data.js            |   96 ++
 src/views/car/index.vue                   |  222 ++++++++
 src/views/gun/index.vue                   |  222 ++++++++
 src/views/equipments/index.vue            |  222 ++++++++
 src/api/car/car.js                        |   39 +
 src/api/gun/gun.js                        |   39 +
 保安企业服务.zip                                |    0 
 src/views/car/data.js                     |  137 +++++
 src/views/recruitmentManagement/data.js   |  177 +-----
 src/views/gun/data.js                     |  128 ++++
 src/views/equipments/data.js              |  122 ++++
 17 files changed, 1,344 insertions(+), 187 deletions(-)

diff --git a/src/api/car/car.js b/src/api/car/car.js
new file mode 100644
index 0000000..4c77a51
--- /dev/null
+++ b/src/api/car/car.js
@@ -0,0 +1,39 @@
+import request from '@/router/axios';
+
+export const getdata = (current, size, params) => {
+  return request({
+    url: '/api/car/page',
+    method: 'get',
+    params: {
+      ...params,
+      current,
+      size,
+    }
+  })
+}
+
+export const adddata = (row) => {
+  return request({
+    url: '/api/car/submit',
+    method: 'post',
+    data: row
+  })
+}
+
+export const update = (row) => {
+  return request({
+    url: '/api/car/submit',
+    method: 'post',
+    data: row
+  })
+}
+
+export const remove = (ids) => {
+  return request({
+    url: '/api/car/remove',
+    method: 'post',
+    params: {
+      ids,
+    }
+  })
+}
\ No newline at end of file
diff --git a/src/api/equipments/equipments.js b/src/api/equipments/equipments.js
new file mode 100644
index 0000000..80a61ee
--- /dev/null
+++ b/src/api/equipments/equipments.js
@@ -0,0 +1,39 @@
+import request from '@/router/axios';
+
+export const getdata = (current, size, params) => {
+  return request({
+    url: '/api/equipage/page',
+    method: 'get',
+    params: {
+      ...params,
+      current,
+      size,
+    }
+  })
+}
+
+export const adddata = (row) => {
+  return request({
+    url: '/api/equipage/submit',
+    method: 'post',
+    data: row
+  })
+}
+
+export const update = (row) => {
+  return request({
+    url: '/api/equipage/submit',
+    method: 'post',
+    data: row
+  })
+}
+
+export const remove = (ids) => {
+  return request({
+    url: '/api/equipage/remove',
+    method: 'post',
+    params: {
+      ids,
+    }
+  })
+}
\ No newline at end of file
diff --git a/src/api/gun/gun.js b/src/api/gun/gun.js
new file mode 100644
index 0000000..d968385
--- /dev/null
+++ b/src/api/gun/gun.js
@@ -0,0 +1,39 @@
+import request from '@/router/axios';
+
+export const getdata = (current, size, params) => {
+  return request({
+    url: '/api/gun/page',
+    method: 'get',
+    params: {
+      ...params,
+      current,
+      size,
+    }
+  })
+}
+
+export const adddata = (row) => {
+  return request({
+    url: '/api/gun/submit',
+    method: 'post',
+    data: row
+  })
+}
+
+export const update = (row) => {
+  return request({
+    url: '/api/gun/submit',
+    method: 'post',
+    data: row
+  })
+}
+
+export const remove = (ids) => {
+  return request({
+    url: '/api/gun/remove',
+    method: 'post',
+    params: {
+      ids,
+    }
+  })
+}
\ No newline at end of file
diff --git a/src/router/views/index.js b/src/router/views/index.js
index a17836f..7ba0925 100644
--- a/src/router/views/index.js
+++ b/src/router/views/index.js
@@ -220,4 +220,43 @@
         component: () =>
             import ( /* webpackChunkName: "views" */ '@/views/dispatchChild/index')
     }]
+}, {
+    path: '/equipments',
+    component: Layout,
+    redirect: '/equipments/index',
+    children: [{
+        path: 'index',
+        name: '保安公司装备管理',
+        meta: {
+            i18n: 'dict'
+        },
+        component: () =>
+            import ( /* webpackChunkName: "views" */ '@/views/equipments/index')
+    }]
+}, {
+    path: '/car',
+    component: Layout,
+    redirect: '/car/index',
+    children: [{
+        path: 'index',
+        name: '保安公司车辆管理',
+        meta: {
+            i18n: 'dict'
+        },
+        component: () =>
+            import ( /* webpackChunkName: "views" */ '@/views/car/index')
+    }]
+}, {
+    path: '/gun',
+    component: Layout,
+    redirect: '/gun/index',
+    children: [{
+        path: 'index',
+        name: '保安公司枪支管理',
+        meta: {
+            i18n: 'dict'
+        },
+        component: () =>
+            import ( /* webpackChunkName: "views" */ '@/views/gun/index')
+    }]
 }]
\ No newline at end of file
diff --git a/src/views/car/data.js b/src/views/car/data.js
new file mode 100644
index 0000000..433fe9f
--- /dev/null
+++ b/src/views/car/data.js
@@ -0,0 +1,137 @@
+var DIC = [
+    {
+        label: '招聘中',
+        value: 1,
+    }, {
+        label: '停止招聘',
+        value: 2,
+    }
+]
+
+export var column = [
+    {
+        label: "id",
+        prop: "id",
+        hide: true,
+        editDisplay: false,
+        addDisplay: false
+    },
+    {
+        label: "车牌号码",
+        prop: "carNumber",
+        search: true,
+        rules: [{
+            required: true,
+            message: "请输入车牌号码",
+            trigger: "blur"
+        }]
+    },
+    {
+        label: "号码种类",
+        prop: "numberType",
+        rules: [{
+            required: true,
+            message: "请输入号码种类",
+            trigger: "blur"
+        }],
+        search: true,
+    },//上面不显示 
+    {
+        label: "车辆类型",
+        prop: "carType",
+        rules: [{
+            required: true,
+            message: "请输入车辆类型",
+            trigger: "blur"
+        }]
+        // search: true,
+    }
+    , {
+        label: "车辆型号",
+        prop: "mode",
+        // search: true,
+        width: 110,
+        overHidden: true,
+        search: true,
+        rules: [{
+            required: true,
+            message: "请输入车辆型号",
+            trigger: "blur"
+        }]
+    },
+    {
+        label: "组织机构",
+        prop: "tenantName",
+        rules: [{
+            required: true,
+            message: "请输入组织机构",
+            trigger: "blur"
+        }],
+        // addDisplay: true,
+        // editDisplay: true,
+        // viewDisplay: true,
+        // searchSpan: 5,
+        dicUrl: "/api/blade-system/dept/security_lazy-tree?parentId=0",
+        props: {
+             label: "title",
+            value: "id"
+        },
+        // search: true,
+        type: "select",
+        // rules: [{
+        //     required: true,
+        //     message: "请选择学历",
+        //     trigger: "blur"
+        // }],
+    },
+    {
+        label: "责任人",
+        prop: "personInCharge",
+        rules: [{
+            required: true,
+            message: "请输入责任人",
+            trigger: "blur"
+        }]
+    },
+    {
+        label: "厂商",
+        prop: "brand",
+        // search: true,
+        width: 110,
+        overHidden: true,
+        search: true,
+        rules: [{
+            required: true,
+            message: "请输入厂商",
+            trigger: "blur"
+        }]
+    },
+    {
+        label: "出厂日期",
+        prop: "dateForProduction",
+        // search: true,
+        type: "date",
+        format: "yyyy-MM-dd",
+        valueFormat: "timestamp",
+        searchSpan: 4,
+        overHidden: true,
+        rules: [{
+            required: true,
+            message: "请输入出厂日期",
+            trigger: "blur"
+        }]
+    },
+    {
+        label: "环保标志",
+        prop: "umweltsatz",
+        // search: true,
+        width: 110,
+        overHidden: true,
+        search: true,
+        rules: [{
+            required: true,
+            message: "请输入环保标志 ,国IV",
+            trigger: "blur"
+        }]
+    }
+]
diff --git a/src/views/car/index.vue b/src/views/car/index.vue
new file mode 100644
index 0000000..7e16f4f
--- /dev/null
+++ b/src/views/car/index.vue
@@ -0,0 +1,222 @@
+<template>
+  <div class="equipments">
+    <avue-crud
+      :option="option"
+      :data="data"
+      :page.sync="page"
+      ref="crudrec"
+      @on-load="onLoad"
+      :table-loading="loading"
+      @row-save="rowSave"
+      @search-change="searchChange"
+      @search-reset="searchReset"
+      @row-update="rowUpdate"
+      @row-del="rowDel"
+      @selection-change="selectionChange"
+      @refresh-change="refreshChange"
+    >
+      <template slot="menuLeft">
+        <el-button
+          type="danger"
+          size="small"
+          plain
+          icon="el-icon-delete"
+          @click="handleDelete"
+          >删 除
+        </el-button>
+      </template>
+    </avue-crud>
+  </div>
+</template>
+
+<script>
+import { data, column } from "./data";
+import {
+  getdata,
+  adddata,
+  update,
+  remove,
+} from "@/api/car/car";
+
+export default {
+  data() {
+    return {
+      loading: true,
+      selectionList: [],
+      page: {
+        pageSize: 10,
+        currentPage: 1,
+        total: 0,
+      },
+      query: {},
+      data: [],
+      option: {
+        // card: true,
+        tip: false,
+        searchSize: "mini",
+        searchMenuSpan: 6,
+        height: 627,
+        menuWidth: 160,
+        align: "center",
+        selection: true,
+        column: column,
+      },
+    };
+  },
+  computed: {
+    ids() {
+      let ids = [];
+      this.selectionList.forEach((ele) => {
+        ids.push(ele.id);
+      });
+      return ids.join(",");
+    },
+  },
+  methods: {
+    sizeChange(val) {
+      this.page1.currentPage = 1;
+      this.page1.pageSize = val;
+      this.getData();
+      //   this.$message.success("行数" + val);
+    },
+    currentChange(val) {
+      this.page1.currentPage = val;
+      this.getData();
+      //   this.$message.success("页码" + val);
+    },
+    rowSave(form, done, loading) {
+      var that = this;
+      //   var form = this.data[0];
+      //   delete form.id;
+      //   for (var k = 0; k < 13; k++) {
+      adddata(form).then(
+        (res) => {
+          this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+          done();
+        },
+        (error) => {
+          window.console.log(error);
+          loading();
+        }
+      );
+      //   }
+    },
+    searchChange(params, done) {
+      this.query = params;
+      this.page.currentPage = 1;
+      this.onLoad(this.page, params);
+      done();
+    },
+    searchReset() {
+      this.query = {};
+      this.onLoad(this.page);
+    },
+    rowUpdate(row, index, done, loading) {
+      console.log(row);
+      update(row).then(
+        () => {
+          this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+          done();
+        },
+        (error) => {
+          window.console.log(error);
+          loading();
+        }
+      );
+    },
+    rowDel(row) {
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          return remove(row.id);
+        })
+        .then(() => {
+          this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+        });
+    },
+    selectionChange(list) {
+      this.selectionList = list;
+    },
+    handleDelete() {
+      if (this.selectionList.length === 0) {
+        this.$message.warning("请选择至少一条数据");
+        return;
+      }
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          return remove(this.ids);
+        })
+        .then(() => {
+          this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+          this.$refs.crudrec.toggleSelection();
+        });
+    },
+    refreshChange() {
+      this.onLoad(this.page, this.query);
+    },
+    onLoad(page, params = {}) {
+      this.loading = true;
+      getdata(
+        page.currentPage,
+        page.pageSize,
+        Object.assign(params, this.query)
+      ).then((res) => {
+        // console.log(res);
+        const data = res.data.data;
+        this.page.total = data.total;
+        this.data = data.records;
+        console.log(this.data);
+        this.loading = false;
+      });
+    },
+  },
+  mounted() {
+    // this.Ourdata = data;
+    // this.getData();
+    // this.onLoad(this.page);
+    // var dept_id = JSON.parse(
+    //   window.localStorage.getItem("saber-userInfo")
+    // ).content.dept_id;
+  },
+};
+</script>
+
+<style lang="scss">
+.equipments {
+  width: 100%;
+  height: 100%;
+  //   border: 1px solid #000;
+  box-sizing: border-box;
+}
+// .el-card__body {
+//   padding-bottom: 5px !important;
+// }
+// .avue-crud__tip,
+// .el-tag,
+// .el-tag--light {
+//   padding: 0 !important;
+// }
+</style>
\ No newline at end of file
diff --git a/src/views/dispatch/data.js b/src/views/dispatch/data.js
index cf5e06a..7e15ff4 100644
--- a/src/views/dispatch/data.js
+++ b/src/views/dispatch/data.js
@@ -21,7 +21,7 @@
         label: "保安公司",
         prop: "tenantName",
         type: "tree",
-        dicUrl: "/api/blade-system/dept/lazy-tree?parentId=0",
+        dicUrl: "/api/blade-system/dept/security_lazy-tree?parentId=0",
         props: {
             label: "title",
             value: "id"
diff --git a/src/views/dispatchChild/data.js b/src/views/dispatchChild/data.js
index 8630d5b..70e0392 100644
--- a/src/views/dispatchChild/data.js
+++ b/src/views/dispatchChild/data.js
@@ -129,7 +129,7 @@
         // overHidden: true
     }, {
         label: "结束时间",
-        prop: "dispatchertime",
+        prop: "endTime",
         type: "date",
         format: "yyyy-MM-dd hh:mm:ss",
         valueFormat: "timestamp",
diff --git a/src/views/equipments/data.js b/src/views/equipments/data.js
new file mode 100644
index 0000000..bab1bb1
--- /dev/null
+++ b/src/views/equipments/data.js
@@ -0,0 +1,122 @@
+var DIC = [
+    {
+        label: '招聘中',
+        value: 1,
+    }, {
+        label: '停止招聘',
+        value: 2,
+    }
+]
+
+export var column = [
+    {
+        label: "id",
+        prop: "id",
+        hide: true,
+        editDisplay: false,
+        addDisplay: false
+    },
+    {
+        label: "名称",
+        prop: "name",
+        search: true,
+         rules: [{
+            required: true,
+            message: "请输入名称",
+            trigger: "blur"
+        }]
+    },
+    {
+        label: "编号",
+        prop: "number",
+         rules: [{
+            required: true,
+            message: "请输入编号",
+            trigger: "blur"
+        }],
+        search: true,
+    },//上面不显示 
+    {
+        label: "规格",
+        prop: "specifications",
+         rules: [{
+            required: true,
+            message: "请输入规格",
+            trigger: "blur"
+        }]
+        // search: true,
+    },
+    {
+        label: "型号",
+        prop: "mode",
+        width: 70,
+         rules: [{
+            required: true,
+            message: "请输入型号",
+            trigger: "blur"
+        }]
+        // search: true,
+    },
+    {
+        label: "组织机构",
+        prop: "tenantName",
+        rules: [{
+            required: true,
+            message: "请输入组织机构",
+            trigger: "blur"
+        }],
+        // addDisplay: true,
+        // editDisplay: true,
+        // viewDisplay: true,
+        // searchSpan: 5,
+        dicUrl: "/api/blade-system/dept/security_lazy-tree?parentId=0",
+        props: {
+            label: "title",
+            value: "id"
+        },
+        // search: true,
+        type: "select",
+        // rules: [{
+        //     required: true,
+        //     message: "请选择学历",
+        //     trigger: "blur"
+        // }],
+    },
+    {
+        label: "负责人",
+        prop: "personInCharge",
+        rules: [{
+            required: true,
+            message: "请输入负责人",
+            trigger: "blur"
+        }]
+    },
+    {
+        label: "厂商",
+        prop: "brand",
+        // search: true,
+        width: 110,
+        overHidden: true,
+        search: true,
+        rules: [{
+            required: true,
+            message: "请输入厂商",
+            trigger: "blur"
+        }]
+    },
+    {
+        label: "出厂日期",
+        prop: "dateForProduction",
+        // search: true,
+        type: "date",
+        format: "yyyy-MM-dd",
+        valueFormat: "timestamp",
+        searchSpan: 4,
+        overHidden: true,
+        rules: [{
+            required: true,
+            message: "请输入出厂日期",
+            trigger: "blur"
+        }]
+    }
+]
diff --git a/src/views/equipments/index.vue b/src/views/equipments/index.vue
new file mode 100644
index 0000000..480e476
--- /dev/null
+++ b/src/views/equipments/index.vue
@@ -0,0 +1,222 @@
+<template>
+  <div class="equipments">
+    <avue-crud
+      :option="option"
+      :data="data"
+      :page.sync="page"
+      ref="crudrec"
+      @on-load="onLoad"
+      :table-loading="loading"
+      @row-save="rowSave"
+      @search-change="searchChange"
+      @search-reset="searchReset"
+      @row-update="rowUpdate"
+      @row-del="rowDel"
+      @selection-change="selectionChange"
+      @refresh-change="refreshChange"
+    >
+      <template slot="menuLeft">
+        <el-button
+          type="danger"
+          size="small"
+          plain
+          icon="el-icon-delete"
+          @click="handleDelete"
+          >删 除
+        </el-button>
+      </template>
+    </avue-crud>
+  </div>
+</template>
+
+<script>
+import { data, column } from "./data";
+import {
+  getdata,
+  adddata,
+  update,
+  remove,
+} from "@/api/equipments/equipments";
+
+export default {
+  data() {
+    return {
+      loading: true,
+      selectionList: [],
+      page: {
+        pageSize: 10,
+        currentPage: 1,
+        total: 0,
+      },
+      query: {},
+      data: [],
+      option: {
+        // card: true,
+        tip: false,
+        searchSize: "mini",
+        searchMenuSpan: 6,
+        height: 627,
+        menuWidth: 160,
+        align: "center",
+        selection: true,
+        column: column,
+      },
+    };
+  },
+  computed: {
+    ids() {
+      let ids = [];
+      this.selectionList.forEach((ele) => {
+        ids.push(ele.id);
+      });
+      return ids.join(",");
+    },
+  },
+  methods: {
+    sizeChange(val) {
+      this.page1.currentPage = 1;
+      this.page1.pageSize = val;
+      this.getData();
+      //   this.$message.success("行数" + val);
+    },
+    currentChange(val) {
+      this.page1.currentPage = val;
+      this.getData();
+      //   this.$message.success("页码" + val);
+    },
+    rowSave(form, done, loading) {
+      var that = this;
+      //   var form = this.data[0];
+      //   delete form.id;
+      //   for (var k = 0; k < 13; k++) {
+      adddata(form).then(
+        (res) => {
+          this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+          done();
+        },
+        (error) => {
+          window.console.log(error);
+          loading();
+        }
+      );
+      //   }
+    },
+    searchChange(params, done) {
+      this.query = params;
+      this.page.currentPage = 1;
+      this.onLoad(this.page, params);
+      done();
+    },
+    searchReset() {
+      this.query = {};
+      this.onLoad(this.page);
+    },
+    rowUpdate(row, index, done, loading) {
+      console.log(row);
+      update(row).then(
+        () => {
+          this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+          done();
+        },
+        (error) => {
+          window.console.log(error);
+          loading();
+        }
+      );
+    },
+    rowDel(row) {
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          return remove(row.id);
+        })
+        .then(() => {
+          this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+        });
+    },
+    selectionChange(list) {
+      this.selectionList = list;
+    },
+    handleDelete() {
+      if (this.selectionList.length === 0) {
+        this.$message.warning("请选择至少一条数据");
+        return;
+      }
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          return remove(this.ids);
+        })
+        .then(() => {
+          this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+          this.$refs.crudrec.toggleSelection();
+        });
+    },
+    refreshChange() {
+      this.onLoad(this.page, this.query);
+    },
+    onLoad(page, params = {}) {
+      this.loading = true;
+      getdata(
+        page.currentPage,
+        page.pageSize,
+        Object.assign(params, this.query)
+      ).then((res) => {
+        // console.log(res);
+        const data = res.data.data;
+        this.page.total = data.total;
+        this.data = data.records;
+        console.log(this.data);
+        this.loading = false;
+      });
+    },
+  },
+  mounted() {
+    // this.Ourdata = data;
+    // this.getData();
+    // this.onLoad(this.page);
+    // var dept_id = JSON.parse(
+    //   window.localStorage.getItem("saber-userInfo")
+    // ).content.dept_id;
+  },
+};
+</script>
+
+<style lang="scss">
+.equipments {
+  width: 100%;
+  height: 100%;
+  //   border: 1px solid #000;
+  box-sizing: border-box;
+}
+// .el-card__body {
+//   padding-bottom: 5px !important;
+// }
+// .avue-crud__tip,
+// .el-tag,
+// .el-tag--light {
+//   padding: 0 !important;
+// }
+</style>
\ No newline at end of file
diff --git a/src/views/gun/data.js b/src/views/gun/data.js
new file mode 100644
index 0000000..8cf444b
--- /dev/null
+++ b/src/views/gun/data.js
@@ -0,0 +1,128 @@
+var DIC = [
+    {
+        label: '招聘中',
+        value: 1,
+    }, {
+        label: '停止招聘',
+        value: 2,
+    }
+]
+
+export var column = [
+    {
+        label: "id",
+        prop: "id",
+        hide: true,
+        editDisplay: false,
+        addDisplay: false
+    },
+    {
+        label: "公务用枪证编号",
+        prop: "gunCardNumber",
+        searchLabelWidth: 130,
+        search: true,
+        rules: [{
+            required: true,
+            message: "请输入公务用枪证编号",
+            trigger: "blur"
+        }]
+    },
+    {
+        label: "发证单位名称",
+        searchLabelWidth: 110,
+        prop: "issueUnit",
+        rules: [{
+            required: true,
+            message: "请输入发证单位名称",
+            trigger: "blur"
+        }],
+        search: true,
+    },//上面不显示 
+    {
+        label: "公务用枪编号",
+        prop: "cardNumber",
+        searchLabelWidth: 110,
+        rules: [{
+            required: true,
+            message: "请输入公务用枪编号",
+            trigger: "blur"
+        }]
+        // search: true,
+    },
+    {
+        label: "枪型",
+        prop: "gunMode",
+        width: 70,
+        rules: [{
+            required: true,
+            message: "请输入枪型",
+            trigger: "blur"
+        }],
+        search: true,
+    },
+    {
+        label: "组织机构",
+        prop: "tenantName",
+        rules: [{
+            required: true,
+            message: "请输入组织机构",
+            trigger: "blur"
+        }],
+        // addDisplay: true,
+        // editDisplay: true,
+        // viewDisplay: true,
+        // searchSpan: 5,
+        dicUrl: "/api/blade-system/dept/security_lazy-tree?parentId=0",
+        props: {
+            label: "title",
+            value: "id"
+        },
+        // search: true,
+        type: "select",
+        // rules: [{
+        //     required: true,
+        //     message: "请选择学历",
+        //     trigger: "blur"
+        // }],
+    },
+    {
+        label: "责任人",
+        prop: "personInCharge",
+        rules: [{
+            required: true,
+            message: "请输入责任人",
+            trigger: "blur"
+        }]
+    },
+    {
+        label: "发证日期",
+        prop: "issueTime",
+        // search: true,
+        type: "date",
+        format: "yyyy-MM-dd",
+        valueFormat: "timestamp",
+        // width: 110,
+        // overHidden: true,
+        // search: true,
+        rules: [{
+            required: true,
+            message: "请输入发证日期",
+            trigger: "blur"
+        }]
+    },
+    {
+        label: "有效日期",
+        prop: "validTime",
+        // search: true,
+        type: "date",
+        format: "yyyy-MM-dd",
+        valueFormat: "timestamp",
+        searchSpan: 4,
+        overHidden: true,
+        rules: [{
+            required: true,
+            message: "请输入有效日期",
+            trigger: "blur"
+        }]
+    }
+]
diff --git a/src/views/gun/index.vue b/src/views/gun/index.vue
new file mode 100644
index 0000000..b1fe848
--- /dev/null
+++ b/src/views/gun/index.vue
@@ -0,0 +1,222 @@
+<template>
+  <div class="equipments">
+    <avue-crud
+      :option="option"
+      :data="data"
+      :page.sync="page"
+      ref="crudrec"
+      @on-load="onLoad"
+      :table-loading="loading"
+      @row-save="rowSave"
+      @search-change="searchChange"
+      @search-reset="searchReset"
+      @row-update="rowUpdate"
+      @row-del="rowDel"
+      @selection-change="selectionChange"
+      @refresh-change="refreshChange"
+    >
+      <template slot="menuLeft">
+        <el-button
+          type="danger"
+          size="small"
+          plain
+          icon="el-icon-delete"
+          @click="handleDelete"
+          >删 除
+        </el-button>
+      </template>
+    </avue-crud>
+  </div>
+</template>
+
+<script>
+import { data, column } from "./data";
+import {
+  getdata,
+  adddata,
+  update,
+  remove,
+} from "@/api/gun/gun";
+
+export default {
+  data() {
+    return {
+      loading: true,
+      selectionList: [],
+      page: {
+        pageSize: 10,
+        currentPage: 1,
+        total: 0,
+      },
+      query: {},
+      data: [],
+      option: {
+        // card: true,
+        tip: false,
+        searchSize: "mini",
+        searchMenuSpan: 6,
+        height: 627,
+        menuWidth: 160,
+        align: "center",
+        selection: true,
+        column: column,
+      },
+    };
+  },
+  computed: {
+    ids() {
+      let ids = [];
+      this.selectionList.forEach((ele) => {
+        ids.push(ele.id);
+      });
+      return ids.join(",");
+    },
+  },
+  methods: {
+    sizeChange(val) {
+      this.page1.currentPage = 1;
+      this.page1.pageSize = val;
+      this.getData();
+      //   this.$message.success("行数" + val);
+    },
+    currentChange(val) {
+      this.page1.currentPage = val;
+      this.getData();
+      //   this.$message.success("页码" + val);
+    },
+    rowSave(form, done, loading) {
+      var that = this;
+      //   var form = this.data[0];
+      //   delete form.id;
+      //   for (var k = 0; k < 13; k++) {
+      adddata(form).then(
+        (res) => {
+          this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+          done();
+        },
+        (error) => {
+          window.console.log(error);
+          loading();
+        }
+      );
+      //   }
+    },
+    searchChange(params, done) {
+      this.query = params;
+      this.page.currentPage = 1;
+      this.onLoad(this.page, params);
+      done();
+    },
+    searchReset() {
+      this.query = {};
+      this.onLoad(this.page);
+    },
+    rowUpdate(row, index, done, loading) {
+      console.log(row);
+      update(row).then(
+        () => {
+          this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+          done();
+        },
+        (error) => {
+          window.console.log(error);
+          loading();
+        }
+      );
+    },
+    rowDel(row) {
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          return remove(row.id);
+        })
+        .then(() => {
+          this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+        });
+    },
+    selectionChange(list) {
+      this.selectionList = list;
+    },
+    handleDelete() {
+      if (this.selectionList.length === 0) {
+        this.$message.warning("请选择至少一条数据");
+        return;
+      }
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          return remove(this.ids);
+        })
+        .then(() => {
+          this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+          this.$refs.crudrec.toggleSelection();
+        });
+    },
+    refreshChange() {
+      this.onLoad(this.page, this.query);
+    },
+    onLoad(page, params = {}) {
+      this.loading = true;
+      getdata(
+        page.currentPage,
+        page.pageSize,
+        Object.assign(params, this.query)
+      ).then((res) => {
+        // console.log(res);
+        const data = res.data.data;
+        this.page.total = data.total;
+        this.data = data.records;
+        console.log(this.data);
+        this.loading = false;
+      });
+    },
+  },
+  mounted() {
+    // this.Ourdata = data;
+    // this.getData();
+    // this.onLoad(this.page);
+    // var dept_id = JSON.parse(
+    //   window.localStorage.getItem("saber-userInfo")
+    // ).content.dept_id;
+  },
+};
+</script>
+
+<style lang="scss">
+.equipments {
+  width: 100%;
+  height: 100%;
+  //   border: 1px solid #000;
+  box-sizing: border-box;
+}
+// .el-card__body {
+//   padding-bottom: 5px !important;
+// }
+// .avue-crud__tip,
+// .el-tag,
+// .el-tag--light {
+//   padding: 0 !important;
+// }
+</style>
\ No newline at end of file
diff --git a/src/views/recruitmentManagement/data.js b/src/views/recruitmentManagement/data.js
index 72dd585..704c0fc 100644
--- a/src/views/recruitmentManagement/data.js
+++ b/src/views/recruitmentManagement/data.js
@@ -7,7 +7,18 @@
         value: 2,
     }
 ]
+var DIC1 = [
+    {
+        label: '拥有',
+        value: 1,
+    }, {
+        label: '未拥有',
+        value: 2,
+    }
+]
 
+var w = 160
+    , s = 12;
 export var column = [
     {
         label: "id",
@@ -41,6 +52,24 @@
         prop: "number",
         width: 70,
         // search: true,
+    },
+    {
+        label: "保安证",
+        prop: "permit",
+        // addDisplay: true,
+        // editDisplay: true,
+        // viewDisplay: true,
+        filter: false,
+        type: 'tree',
+        dicData: DIC1,
+        searchSpan: 5,
+        // dicUrl: "/api/blade-system/dict-biz/dictionary?code=equipage",
+        // props: {
+        //     label: "dictValue",
+        //     value: "dictKey"
+        // },
+        // search: true,
+        // type: "select",
     },
     {
         label: "学历要求",
@@ -99,18 +128,21 @@
     {
         label: "最低薪资",
         prop: "minSalary",
+        width: 70,
         // search: true,
         searchSpan: 4,
     },
     {
         label: "最高薪资",
         prop: "maxSalary",
+        width: 70,
         search: true,
         searchSpan: 4,
     },
     {
         label: "单位性质",
         prop: "unitsNature",
+        width: 70,
         addDisplay: true,
         editDisplay: true,
         viewDisplay: true,
@@ -190,6 +222,7 @@
         // prop: "status",
         // search: true,
         // searchSpan: 4,
+        width: 70,
         prop: 'status',
         filter: false,
         type: 'tree',
@@ -200,148 +233,4 @@
         //     trigger: "blur"
         // }],
     },
-]
-
-
-export var data = [
-    {
-        "tenant_id": "xx保安公司", "name": "xx职务",
-        "number": "10",
-        "education": "大专以上",
-        "experience": "2年",
-        "max_salary": "8k",
-        "units_scale": "200人+",
-        "linkman": "XX",
-        "phone": "xxxxxxxxxx",
-        "address": "环城路地一大道30号口下",
-        "start_time": "7月8日",
-        "end_time": "7月31日",
-        "status": "2"
-    },
-    {
-        "tenant_id": "xx保安公司", "name": "xx职务",
-        "number": "10",
-        "education": "大专以上",
-        "experience": "2年",
-        "max_salary": "8k",
-        "units_scale": "200人+",
-        "linkman": "XX",
-        "phone": "xxxxxxxxxx",
-        "address": "环城路地一大道30号口下",
-        "start_time": "7月8日",
-        "end_time": "7月31日",
-        "status": "2"
-    },
-    {
-        "tenant_id": "xx保安公司", "name": "xx职务",
-        "number": "10",
-        "education": "大专以上",
-        "experience": "2年",
-        "max_salary": "8k",
-        "units_scale": "200人+",
-        "linkman": "XX",
-        "phone": "xxxxxxxxxx",
-        "address": "环城路地一大道30号口下",
-        "start_time": "7月8日",
-        "end_time": "7月31日",
-        "status": "2"
-    },
-    {
-        "tenant_id": "xx保安公司", "name": "xx职务",
-        "number": "10",
-        "education": "大专以上",
-        "experience": "3年",
-        "max_salary": "8k",
-        "units_scale": "200人+",
-        "linkman": "XX",
-        "phone": "xxxxxxxxxx",
-        "address": "环城路地一大道30号口下",
-        "start_time": "7月8日",
-        "end_time": "7月31日",
-        "status": "2"
-    },
-    {
-        "tenant_id": "xx保安公司", "name": "xx职务",
-        "number": "10",
-        "education": "大专以上",
-        "experience": "5年",
-        "max_salary": "8k",
-        "units_scale": "200人+",
-        "linkman": "XX",
-        "phone": "xxxxxxxxxx",
-        "address": "环城路地一大道30号口下",
-        "start_time": "7月8日",
-        "end_time": "7月31日",
-        "status": "2"
-    },
-    {
-        "tenant_id": "xx保安公司", "name": "xx职务",
-        "number": "10",
-        "education": "大专以上",
-        "experience": "2年",
-        "max_salary": "8k",
-        "units_scale": "200人+",
-        "linkman": "XX",
-        "phone": "xxxxxxxxxx",
-        "address": "环城路地一大道30号口下",
-        "start_time": "7月8日",
-        "end_time": "7月31日",
-        "status": "2"
-    },
-    {
-        "tenant_id": "xx保安公司", "name": "xx职务",
-        "number": "10",
-        "education": "大专以上",
-        "experience": "2年",
-        "max_salary": "8k",
-        "units_scale": "200人+",
-        "linkman": "XX",
-        "phone": "xxxxxxxxxx",
-        "address": "环城路地一大道30号口下",
-        "start_time": "7月8日",
-        "end_time": "7月31日",
-        "status": "2"
-    },
-    {
-        "tenant_id": "xx保安公司", "name": "xx职务",
-        "number": "10",
-        "education": "大专以上",
-        "experience": "2年",
-        "max_salary": "8k",
-        "units_scale": "200人+",
-        "linkman": "XX",
-        "phone": "xxxxxxxxxx",
-        "address": "环城路地一大道30号口下",
-        "start_time": "7月8日",
-        "end_time": "7月31日",
-        "status": "2"
-    },
-    {
-        "tenant_id": "xx保安公司", "name": "xx职务",
-        "number": "10",
-        "education": "大专以上",
-        "experience": "2年",
-        "max_salary": "8k",
-        "units_scale": "200人+",
-        "linkman": "XX",
-        "phone": "xxxxxxxxxx",
-        "address": "环城路地一大道30号口下",
-        "start_time": "7月8日",
-        "end_time": "7月31日",
-        "status": "2"
-    },
-    {
-        "tenant_id": "xx保安公司", "name": "xx职务",
-        "number": "10",
-        "education": "大专以上",
-        "experience": "2年",
-        "max_salary": "8k",
-        "units_scale": "200人+",
-        "linkman": "XX",
-        "phone": "xxxxxxxxxx",
-        "address": "环城路地一大道30号口下",
-        "start_time": "7月8日",
-        "end_time": "7月31日",
-        "status": "2"
-    }
 ]
diff --git a/src/views/recruitmentManagement/index.vue b/src/views/recruitmentManagement/index.vue
index 325d3fd..a712993 100644
--- a/src/views/recruitmentManagement/index.vue
+++ b/src/views/recruitmentManagement/index.vue
@@ -51,10 +51,11 @@
       query: {},
       data: [],
       option: {
-        card: true,
+        // card: true,
+        tip: false,
         searchSize: "mini",
         searchMenuSpan: 6,
-        height: 547,
+        height: 627,
         menuWidth: 160,
         align: "center",
         selection: true,
@@ -68,7 +69,7 @@
       this.selectionList.forEach((ele) => {
         ids.push(ele.id);
       });
-      return ids.join(","); 
+      return ids.join(",");
     },
   },
   methods: {
@@ -85,24 +86,24 @@
     },
     rowSave(form, done, loading) {
       var that = this;
-    //   var form = this.data[0];
-    //   delete form.id;
-    //   for (var k = 0; k < 13; k++) {
-        adddata(form).then(
-          (res) => {
-            this.onLoad(this.page);
-            this.$message({
-              type: "success",
-              message: "操作成功!",
-            });
-            done();
-          },
-          (error) => {
-            window.console.log(error);
-            loading();
-          }
-        );
-    //   }
+      //   var form = this.data[0];
+      //   delete form.id;
+      //   for (var k = 0; k < 13; k++) {
+      adddata(form).then(
+        (res) => {
+          this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+          done();
+        },
+        (error) => {
+          window.console.log(error);
+          loading();
+        }
+      );
+      //   }
     },
     searchChange(params, done) {
       this.query = params;
@@ -196,7 +197,6 @@
     // this.Ourdata = data;
     // this.getData();
     // this.onLoad(this.page);
-    
     // var dept_id = JSON.parse(
     //   window.localStorage.getItem("saber-userInfo")
     // ).content.dept_id;
diff --git a/src/views/securityUnit/data.js b/src/views/securityUnit/data.js
index 28f0ce7..101df9a 100644
--- a/src/views/securityUnit/data.js
+++ b/src/views/securityUnit/data.js
@@ -55,7 +55,7 @@
         label: "企业名称",
         prop: "enterprisename",
         search: true,
-        width: 130,
+        // width: 130,
     },
     {
         label: "企业类型",
@@ -132,13 +132,13 @@
         label: "注册资本(万元人民币)",
         prop: "registeredcapital",
         // search: true,
-        width: 110,
+        width: 140,
         // overHidden: true
     },
     {
         label: "实缴资本(万元人民币)",
         prop: "capital",
-        width: 85,
+        // width: 85,
         hide: true,
         // search: true,
         // searchSpan: 4,
@@ -147,19 +147,21 @@
     {
         label: "组织机构代码",
         prop: "organizationcode",
-        width: 110,
+        // width: 110,
         // search: true,
         // searchSpan: 4,
     },
     {
         label: "工商注册号",
         prop: "registrationnumber",
+        width: 120,
         // search: true,
         // searchSpan: 4,
     },
     {
         label: "纳税人识别号",
         prop: "identificationnumber",
+        width: 140,
         // addDisplay: true,
         // editDisplay: true,
         // viewDisplay: true,
@@ -209,13 +211,13 @@
         prop: "business",
         // search: true,
         hide: true,
-        width: 110,
+        // width: 110,
         overHidden: true
     },
     {
         label: "所属地区",
         prop: "region",
-        width: 110,
+        // width: 110,
         // search: true,
         overHidden: true
     },
@@ -292,7 +294,7 @@
         rules: [
             {
                 required: true,
-                message: "请选择所属部门",
+                message: "请选择所属辖区",
                 trigger: "click",
             },
         ],
@@ -420,6 +422,7 @@
     {
         label: "工商注册号",
         prop: "registrationnumber",
+        
         labelWidth: w,
         span: s,
         rules: [{
@@ -528,7 +531,7 @@
         span: s,
         rules: [{
             required: true,
-            message: "请输入法定代表人",
+            message: "请输入统一社会信用代码",
             trigger: "blur"
         }]
     },
@@ -555,12 +558,22 @@
         label: "股东",
         prop: "shareholder",
         labelWidth: w,
-        span: s
+        span: s,
+        rules: [{
+            required: true,
+            message: "请输入法定代表人",
+            trigger: "blur"
+        }]
     }, {
         label: "持股比例(%)",
         prop: "shareholdingratio",
         labelWidth: w,
-        span: s
+        span: s,
+        rules: [{
+            required: true,
+            message: "请输入持股比例",
+            trigger: "blur"
+        }]
     },
     // {
     //     label: "最终受益股份",
@@ -572,7 +585,12 @@
         label: "出资金额",
         prop: "capital2",
         labelWidth: w,
-        span: s
+        span: s,
+        rules: [{
+            required: true,
+            message: "请输入出资金额",
+            trigger: "blur"
+        }]
     }, {
         label: "出资时间",
         prop: "capitaltime",
@@ -580,17 +598,32 @@
         format: "yyyy-MM-dd",
         valueFormat: "timestamp",
         labelWidth: w,
-        span: s
+        span: s,
+        rules: [{
+            required: true,
+            message: "请输入法定代表人",
+            trigger: "blur"
+        }]
     }, {
         label: "身份证",
         prop: "cardid",
         labelWidth: w,
-        span: s
+        span: s,
+        rules: [{
+            required: true,
+            message: "请输入身份证",
+            trigger: "blur"
+        }]
     }, {
         label: "联系电话",
         prop: "cell",
         labelWidth: w,
-        span: s
+        span: s,
+        rules: [{
+            required: true,
+            message: "请输入联系电话",
+            trigger: "blur"
+        }]
     },
 ]
 
@@ -610,7 +643,12 @@
         prop: "creditcode",
         disabled: true,
         labelWidth: w,
-        span: s
+        span: s,
+        rules: [{
+            required: true,
+            message: "请输入统一社会信用代码",
+            trigger: "blur"
+        }]
     },
     // {
     //     label: "部门",
@@ -635,22 +673,42 @@
         label: "姓名",
         prop: "name",
         labelWidth: w,
-        span: s
+        span: s,
+        rules: [{
+            required: true,
+            message: "请输入姓名",
+            trigger: "blur"
+        }]
     }, {
         label: "职务",
         prop: "post",
         labelWidth: w,
-        span: s
+        span: s,
+        rules: [{
+            required: true,
+            message: "请输入职务",
+            trigger: "blur"
+        }]
     }, {
         label: "身份证",
         prop: "cardid2",
         labelWidth: w,
-        span: s
+        span: s,
+        rules: [{
+            required: true,
+            message: "请输入身份证",
+            trigger: "blur"
+        }]
     }, {
         label: "联系电话",
         prop: "cell2",
         labelWidth: w,
-        span: s
+        span: s,
+        rules: [{
+            required: true,
+            message: "请输入联系电话",
+            trigger: "blur"
+        }]
     }
     // , {
     //     label: "持股比例(%)",
diff --git a/vue.config.js b/vue.config.js
index ce87119..fa7e224 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -23,6 +23,7 @@
   //开发模式反向代理配置,生产模式请使用Nginx部署并配置反向代理。
   devServer: {
     port: 1888,
+    // disableHostCheck: true,
     proxy: {
       '/api': {
         //本地服务接口地址
diff --git "a/\344\277\235\345\256\211\344\274\201\344\270\232\346\234\215\345\212\241.zip" "b/\344\277\235\345\256\211\344\274\201\344\270\232\346\234\215\345\212\241.zip"
new file mode 100644
index 0000000..84b6ec4
--- /dev/null
+++ "b/\344\277\235\345\256\211\344\274\201\344\270\232\346\234\215\345\212\241.zip"
Binary files differ

--
Gitblit v1.9.3