shuishen
2021-07-10 545cf6b362f62da4c3941c264350fe0dc880a485
保安员管理,保安公司管理相关修改
6 files modified
3 files added
886 ■■■■■ changed files
src/api/securityCompany/companyDetails.js 78 ●●●●● patch | view | raw | blame | history
src/router/views/index.js 26 ●●●●● patch | view | raw | blame | history
src/styles/common.scss 2 ●●●●● patch | view | raw | blame | history
src/styles/management.scss 56 ●●●● patch | view | raw | blame | history
src/styles/securityCompany.scss 10 ●●●●● patch | view | raw | blame | history
src/views/management/peopleDetails.vue 2 ●●● patch | view | raw | blame | history
src/views/management/register.vue 4 ●●●● patch | view | raw | blame | history
src/views/securityCompany/companyDetails.vue 662 ●●●●● patch | view | raw | blame | history
src/views/securityCompany/security.vue 46 ●●●● patch | view | raw | blame | history
src/api/securityCompany/companyDetails.js
New file
@@ -0,0 +1,78 @@
import request from '@/router/axios';
export const manifestationList = (securityid) => {
  return request({
    url: '/api/performance/list',
    method: 'get',
    params: {
      securityid
    }
  })
}
export const dispatchList = (cardid) => {
  return request({
    url: '/api/dispatcher/page',
    method: 'get',
    params: {
      cardid
    }
  })
}
export const honorchList = (cardid) => {
  return request({
    url: '/api/honor/list',
    method: 'get',
    params: {
      cardid
    }
  })
}
export const trainList = (cardid) => {
  return request({
    url: '/api/train/selectTrainInfo',
    method: 'post',
    params: {
      cardid
    }
  })
}
export const examinationList = (cardid) => {
  return request({
    url: '/api/examination/selectExaminationInfo',
    method: 'post',
    params: {
      cardid
    }
  })
}
export const getInvestorList = (current, size, params, creditcode) => {
  return request({
    url: '/api/shareholder/selectShareholderInfo',
    method: 'post',
    params: {
      ...params,
      current,
      size,
      creditcode,
    }
  })
}
export const getManageList = (current, size, params, creditcode) => {
  return request({
    url: '/api/member/selectMemberInfo',
    method: 'post',
    params: {
      ...params,
      current,
      size,
      creditcode,
    }
  })
}
src/router/views/index.js
@@ -104,6 +104,19 @@
      import( /* webpackChunkName: "views" */ '@/views/work/process/leave/detail')
  }]
}, {
  path: '/register',
  redirect: '/management/index',
  component: Layout,
  children: [{
    path: 'index',
    name: '保安人员管理',
    meta: {
      i18n: 'index',
    },
    component: () =>
      import( /* webpackChunkName: "views" */ '@/views/management/register')
  }]
}, {
  path: '/management',
  redirect: '/management/index',
  component: Layout,
@@ -116,4 +129,17 @@
    component: () =>
      import( /* webpackChunkName: "views" */ '@/views/management/peopleDetails')
  }]
}, {
  path: '/securityCompany',
  redirect: '/securityCompany/index',
  component: Layout,
  children: [{
    path: 'index',
    name: '保安详细资料',
    meta: {
      i18n: 'index',
    },
    component: () =>
      import( /* webpackChunkName: "views" */ '@/views/securityCompany/companyDetails')
  }]
}, ]
src/styles/common.scss
@@ -20,6 +20,8 @@
@import './normalize.scss';
//保安人员管理相关样式
@import './management.scss';
//保安公司管理相关样式
@import './securityCompany.scss';
a{
  text-decoration: none;
src/styles/management.scss
@@ -1,30 +1,32 @@
// 保安人员管理相关样式
#avue-view {
  & > .morpheus-box {
      position: absolute;
      top: 40px;
      left: 0px;
      right: 0px;
      bottom: 0px;
      padding: 10px !important;
  &>.morpheus-box {
    position: absolute;
    top: 40px;
    left: 0px;
    right: 0px;
    bottom: 0px;
    padding: 10px !important;
  }
}
      .el-col {
          height: 100%;
          .el-card {
              position: relative;
              height: 100%;
              .card-body {
                  position: absolute;
                  top: 0;
                  left: 0;
                  right: 0;
                  bottom: 0;
                  margin: 0;
                  padding: 20px;
                  height: calc(100% - 40px) !important;
              }
          }
      }
.morpheus-box>.el-col {
  height: 100%;
  &>.el-card {
    position: relative;
    height: 100%;
    .card-body {
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      margin: 0;
      padding: 20px;
      height: calc(100% - 40px) !important;
    }
  }
}
@@ -39,7 +41,7 @@
}
.zhengJian-icon {
    i.icon-zhengjian {
        font-size: 12px !important;
    }
  i.icon-zhengjian {
    font-size: 12px !important;
  }
}
src/styles/securityCompany.scss
New file
@@ -0,0 +1,10 @@
.el-tabs__content {
  &>div {
    height: 100%;
  }
}
.company-box {
  height: 100% !important;
}
src/views/management/peopleDetails.vue
@@ -12,7 +12,7 @@
                <div class="card-body">
                    <el-tabs v-model="activeName"
                             @tab-click="handleClick">
                        <el-tab-pane label="基本信息"
                        <el-tab-pane label="详细信息"
                                     name="first">
                            <el-form :model="form"
src/views/management/register.vue
@@ -2,7 +2,7 @@
 * @Author: Morpheus
 * @Date: 2021-07-05 16:31:54
 * @Last Modified by: Morpheus
 * @Last Modified time: 2021-07-08 20:31:10
 * @Last Modified time: 2021-07-09 15:39:35
 * menu-name 保安员注册查询
 */
<template>
@@ -175,7 +175,7 @@
                searchShow: true,
                searchMenuSpan: 4,
                index: true,
                viewBtn: true,
                viewBtn: false,
                //dialogType: 'drawer',
                dialogClickModal: false,
                // 操作栏宽度
src/views/securityCompany/companyDetails.vue
New file
@@ -0,0 +1,662 @@
/*
 * @Author: Morpheus
 * @Date: 2021-07-05 16:31:54
 * @Last Modified by: Morpheus
 * @Last Modified time: 2021-07-09 17:09:42
 * menu-name 保安公司详细资料
 */
<template>
    <el-row class="morpheus-box">
        <el-col :span="24">
            <el-card>
                <div class="card-body">
                    <el-tabs v-model="activeName"
                             @tab-click="handleClick">
                        <el-tab-pane label="详细信息"
                                     name="first">
                            <el-form :model="form"
                                     label-position="right"
                                     size="mini"
                                     label-width="100px">
                                <el-row>
                                    <el-col span="12">
                                        <el-form-item label="企业名称">
                                            <el-input disabled="true"
                                                      v-model="form.enterprisename"
                                                      autocomplete="off"></el-input>
                                        </el-form-item>
                                    </el-col>
                                    <el-col span="12">
                                        <el-form-item label="法定代表人">
                                            <el-input disabled="true"
                                                      v-model="form.representative"
                                                      autocomplete="off"></el-input>
                                        </el-form-item>
                                    </el-col>
                                </el-row>
                                <el-row>
                                    <el-col span="12">
                                        <el-col span="12">
                                            <el-form-item label="成立日期">
                                                <el-input disabled="true"
                                                          v-model="form.establishtime"
                                                          autocomplete="off"></el-input>
                                            </el-form-item>
                                        </el-col>
                                    </el-col>
                                    <el-col span="12">
                                        <el-form-item label="注册资金">
                                            <el-input disabled="true"
                                                      v-model="form.registeredcapital"
                                                      autocomplete="off"></el-input>
                                        </el-form-item>
                                    </el-col>
                                </el-row>
                                <el-row>
                                    <el-col span="12">
                                        <el-form-item label="实缴资金">
                                            <el-input disabled="true"
                                                      v-model="form.capital"
                                                      autocomplete="off"></el-input>
                                        </el-form-item>
                                    </el-col>
                                    <el-col span="12">
                                        <el-form-item label="组织机构代码">
                                            <el-input disabled="true"
                                                      v-model="form.organizationcode"
                                                      autocomplete="off"></el-input>
                                        </el-form-item>
                                    </el-col>
                                </el-row>
                                <el-row>
                                    <el-col span="12">
                                        <el-form-item label="工商注册号">
                                            <el-input disabled="true"
                                                      v-model="form.registrationnumber"
                                                      autocomplete="off"></el-input>
                                        </el-form-item>
                                    </el-col>
                                    <el-col span="12">
                                        <el-form-item label="企业类型">
                                            <el-input disabled="true"
                                                      v-model="form.enterprises"
                                                      autocomplete="off"></el-input>
                                        </el-form-item>
                                    </el-col>
                                </el-row>
                                <el-row>
                                    <el-col span="12">
                                        <el-form-item label="所属地区">
                                            <el-input disabled="true"
                                                      v-model="form.region"
                                                      autocomplete="off"></el-input>
                                        </el-form-item>
                                    </el-col>
                                    <el-col span="12">
                                        <el-form-item label="所属行业">
                                            <el-input disabled="true"
                                                      v-model="form.industry"
                                                      autocomplete="off"></el-input>
                                        </el-form-item>
                                    </el-col>
                                </el-row>
                                <el-row>
                                    <el-col span="12">
                                        <el-form-item label="登记机关">
                                            <el-input disabled="true"
                                                      v-model="form.registration"
                                                      autocomplete="off"></el-input>
                                        </el-form-item>
                                    </el-col>
                                    <el-col span="12">
                                        <el-form-item label="注册地址">
                                            <el-input disabled="true"
                                                      v-model="form.address"
                                                      autocomplete="off"></el-input>
                                        </el-form-item>
                                    </el-col>
                                </el-row>
                                <el-row>
                                    <el-col span="24">
                                        <el-form-item label="经营范围">
                                            <el-input type="textarea"
                                                      disabled="true"
                                                      v-model="form.business"
                                                      resize='none'
                                                      autocomplete="off"></el-input>
                                        </el-form-item>
                                    </el-col>
                                </el-row>
                            </el-form>
                        </el-tab-pane>
                        <el-tab-pane label="投资人详情"
                                     name="second">
                            <avue-crud class="company-box"
                                       :option="investorOption"
                                       :search.sync="investorSearch"
                                       :table-loading="investorLoading"
                                       :data="investorData"
                                       ref="investorCrud"
                                       :page.sync="investorPage"
                                       @on-load="investorOnLoad"
                                       @selection-change="investorSelectionChange"
                                       @search-change="investorSearchChange"
                                       @search-reset="investorSearchReset"
                                       @current-change="investorCurrentChange"
                                       @size-change="investorSizeChange">
                            </avue-crud>
                        </el-tab-pane>
                        <el-tab-pane label="管理人详情"
                                     name="third">
                            <avue-crud class="company-box"
                                       :option="manageOption"
                                       :search.sync="manageSearch"
                                       :table-loading="manageLoading"
                                       :data="manageData"
                                       ref="manageCrud"
                                       :page.sync="managePage"
                                       @on-load="manageOnLoad"
                                       @selection-change="manageSelectionChange"
                                       @search-change="manageSearchChange"
                                       @search-reset="manageSearchReset"
                                       @current-change="manageCurrentChange"
                                       @size-change="manageSizeChange">
                            </avue-crud>
                        </el-tab-pane>
                        <!-- <el-tab-pane label="获取荣誉"
                                     name="fourth">
                            <el-table :data="honorchData"
                                      style="width: 100%">
                                <el-table-column prop="name"
                                                 label="姓名"
                                                 align="center">
                                </el-table-column>
                                <el-table-column prop="cardid"
                                                 label="身份证号"
                                                 align="center">
                                </el-table-column>
                                <el-table-column prop="honor"
                                                 align="center"
                                                 label="荣誉">
                                </el-table-column>
                                <el-table-column prop="honortime"
                                                 align="center"
                                                 label="获取时间">
                                </el-table-column>
                            </el-table>
                        </el-tab-pane>
                        <el-tab-pane label="培训相关"
                                     name="fifth">
                            <el-table :data="trainData"
                                      style="width: 100%">
                                <el-table-column prop="rname"
                                                 label="姓名"
                                                 align="center">
                                </el-table-column>
                                <el-table-column prop="sex"
                                                 label="性别"
                                                 align="center">
                                </el-table-column>
                                <el-table-column prop="cardid"
                                                 label="身份证号"
                                                 align="center">
                                </el-table-column>
                                <el-table-column prop="train"
                                                 align="center"
                                                 label="培训单位">
                                </el-table-column>
                                <el-table-column prop="traincontent"
                                                 align="center"
                                                 label="培训内容">
                                </el-table-column>
                                <el-table-column prop="traintime"
                                                 align="center"
                                                 label="培训时间">
                                </el-table-column>
                                <el-table-column prop="trainaddrss"
                                                 align="center"
                                                 label="培训地址">
                                </el-table-column>
                            </el-table>
                        </el-tab-pane>
                        <el-tab-pane label="成绩相关"
                                     name="sixth">
                            <el-table :data="examinationData"
                                      style="width: 100%">
                                <el-table-column prop="rname"
                                                 label="姓名"
                                                 align="center">
                                </el-table-column>
                                <el-table-column prop="examinationbegintime"
                                                 label="考试开始时间"
                                                 align="center">
                                </el-table-column>
                                <el-table-column prop="examinationendtime"
                                                 label="开始结束时间"
                                                 align="center">
                                </el-table-column>
                                <el-table-column prop="examinationtype"
                                                 align="center"
                                                 label="考试类别">
                                </el-table-column>
                                <el-table-column prop="examinationc"
                                                 align="center"
                                                 label="考试成绩">
                                </el-table-column>
                                <el-table-column prop="examinationaddress"
                                                 align="center"
                                                 label="考试地点">
                                </el-table-column>
                            </el-table>
                        </el-tab-pane> -->
                    </el-tabs>
                </div>
            </el-card>
        </el-col>
    </el-row>
</template>
<script>
import {
    manifestationList,
    dispatchList,
    honorchList,
    trainList,
    examinationList,
    getInvestorList,
    getManageList
} from "@/api/securityCompany/companyDetails";
export default {
    data () {
        return {
            activeName: 'first',
            form: {},
            manifestationData: [],
            dispatchData: [],
            honorchData: [],
            trainData: [],
            examinationData: [],
            investorOption: {
                // 操作栏多余按钮去除
                delBtn: false,
                editBtn: false,
                addBtn: false,
                selection: false,
                menu: false,
                align: 'center',
                height: 'auto',
                calcHeight: 250,
                tip: false,
                searchShow: false,
                searchMenuSpan: 4,
                index: false,
                viewBtn: true,
                //dialogType: 'drawer',
                dialogClickModal: false,
                // 操作栏宽度
                menuWidth: 156,
                column: [
                    {
                        label: "股东姓名",
                        prop: "shareholder",
                        slot: true,
                        display: false,
                    },
                    {
                        label: "持股比例",
                        prop: "shareholdingratio",
                        slot: true,
                        display: false,
                        formatter: function (row, value) {
                            return value = value + "%"
                        }
                    },
                    {
                        label: "出资金额",
                        prop: "capital",
                        slot: true,
                        display: false,
                        formatter: function (row, value) {
                            return value = value + "万元"
                        }
                    },
                    {
                        label: "入股时间",
                        prop: "capitaltime",
                        slot: true,
                        display: false
                    },
                    {
                        label: "身份证号",
                        prop: "cardid",
                        slot: true,
                        display: false,
                    },
                    {
                        label: "联系电话",
                        prop: "cell",
                        slot: true,
                        display: false,
                    },
                    {
                        label: "统一社会信用代码",
                        prop: "creditcode",
                        slot: true,
                        display: false
                    },
                ]
            },
            investorSearch: {},
            investorLoading: true,
            investorData: [],
            investorPage: {
                pageSize: 10,
                currentPage: 1,
                total: 0
            },
            investorQuery: {},
            investorSelectionList: [],
            manageOption: {
                // 操作栏多余按钮去除
                delBtn: false,
                editBtn: false,
                addBtn: false,
                selection: false,
                menu: false,
                align: 'center',
                height: 'auto',
                calcHeight: 250,
                tip: false,
                searchShow: false,
                searchMenuSpan: 4,
                index: false,
                viewBtn: true,
                //dialogType: 'drawer',
                dialogClickModal: false,
                // 操作栏宽度
                menuWidth: 156,
                column: [
                    {
                        label: "管理人姓名",
                        prop: "name",
                        slot: true,
                        display: false,
                    },
                    {
                        label: "职务",
                        prop: "post",
                        slot: true,
                        display: false,
                    },
                    {
                        label: "持股比例",
                        prop: "shareholdingratio",
                        slot: true,
                        display: false,
                        formatter: function (row, value) {
                            return value = value + "%"
                        }
                    },
                    {
                        label: "身份证号",
                        prop: "cardid",
                        slot: true,
                        display: false,
                    },
                    {
                        label: "联系电话",
                        prop: "cell",
                        slot: true,
                        display: false,
                    },
                    {
                        label: "统一社会信用代码",
                        prop: "creditcode",
                        slot: true,
                        display: false
                    },
                ]
            },
            manageSearch: {},
            manageLoading: true,
            manageData: [],
            managePage: {
                pageSize: 10,
                currentPage: 1,
                total: 0
            },
            manageQuery: {},
            manageSelectionList: [],
        }
    },
    created () {
        var flag = false, i = 0, ind = null
        this.$store.state.tags.tagList.forEach((item, index) => {
            if (item.label == "保安详细资料") {
                if (flag == false) {
                    ind = index
                    flag = true
                }
                i++
            }
        })
        if (i > 1) {
            this.$store.state.tags.tagList.splice(ind, 1)
        }
        this.form = this.$route.query;
        console.log(this.form, 1)
    },
    mounted () {
        // this.$store.state.tags.tag.label = '保安详细资料'
    },
    methods: {
        handleClick (tab) {
            if (tab.index == 1) {
                this.investorSearchReset()
            } else if (tab.index == 2) {
                this.manageSearchReset()
            } else if (tab.index == 3) {
                this.getHonorchData()
            } else if (tab.index == 4) {
                this.getTrainData()
            } else if (tab.index == 5) {
                this.getExaminationData()
            }
        },
        getManifestationData () {
            manifestationList(this.form.cardid).then(res => {
                this.manifestationData = res.data.data.records
                this.manifestationData.forEach(item => {
                    item.name = this.form.realName
                    item.time = item.time.substring(0, 10)
                })
            })
        },
        getDispatchData () {
            dispatchList(this.form.cardid).then(res => {
                this.dispatchData = res.data.data.records
            })
        },
        getHonorchData () {
            honorchList(this.form.cardid).then(res => {
                this.honorchData = res.data.data.records
            })
        },
        getTrainData () {
            trainList(this.form.cardid).then(res => {
                this.trainData = res.data.data
                this.trainData.forEach(item => {
                    if (item.sex == 1) {
                        item.sex = '男'
                    } else {
                        item.sex = '女'
                    }
                })
            })
        },
        getExaminationData () {
            examinationList(this.form.cardid).then(res => {
                this.examinationData = res.data.data
                this.examinationData.forEach(item => {
                    if (item.stat == 1) {
                        item.stat = '不通过'
                    } else {
                        item.stat = '通过'
                    }
                })
            })
        },
        investorOnLoad (page, params = {}) {
            this.investorLoading = true;
            getInvestorList(page.currentPage, page.pageSize, Object.assign(params, this.investorQuery), this.form.creditcode).then(res => {
                const data = res.data.data;
                this.investorPage.total = data.total;
                this.investorData = data.records;
                this.investorLoading = false;
                this.$refs.investorCrud.refreshTable();
                this.$refs.investorCrud.doLayout();
                this.investorSelectionClear();
            });
        },
        investorSelectionClear () {
            this.investorSelectionList = [];
            this.$refs.investorCrud.toggleSelection();
        },
        investorSelectionChange (list) {
            this.investorSelectionList = list;
        },
        investorSearchChange (params, done) {
            this.investorQuery = params;
            this.investorPage.currentPage = 1;
            this.investorOnLoad(this.investorPage, params);
            done();
        },
        investorSearchReset () {
            this.investorQuery = {};
            this.investorOnLoad(this.investorPage);
        },
        investorCurrentChange (currentPage) {
            this.investorPage.currentPage = currentPage;
        },
        investorSizeChange (pageSize) {
            this.investorPage.pageSize = pageSize;
        },
        manageOnLoad (page, params = {}) {
            this.manageLoading = true;
            getManageList(page.currentPage, page.pageSize, Object.assign(params, this.manageQuery), this.form.creditcode).then(res => {
                const data = res.data.data;
                this.managePage.total = data.total;
                this.manageData = data.records;
                this.manageLoading = false;
                this.$refs.manageCrud.refreshTable();
                this.$refs.manageCrud.doLayout();
                this.manageSelectionClear();
            });
        },
        manageSelectionClear () {
            this.manageSelectionList = [];
            this.$refs.manageCrud.toggleSelection();
        },
        manageSelectionChange (list) {
            this.manageSelectionList = list;
        },
        manageSearchChange (params, done) {
            this.manageQuery = params;
            this.managePage.currentPage = 1;
            this.manageOnLoad(this.managePage, params);
            done();
        },
        manageSearchReset () {
            this.manageQuery = {};
            this.manageOnLoad(this.managePage);
        },
        manageCurrentChange (currentPage) {
            this.managePage.currentPage = currentPage;
        },
        manageSizeChange (pageSize) {
            this.managePage.pageSize = pageSize;
        },
    }
}
</script>
<style lang="scss" scoped>
</style>
src/views/securityCompany/security.vue
@@ -2,7 +2,7 @@
 * @Author: Morpheus
 * @Date: 2021-07-07 17:30:05
 * @Last Modified by: Morpheus
 * @Last Modified time: 2021-07-08 09:20:26
 * @Last Modified time: 2021-07-09 17:06:49
 * menu-name 保安服务公司查询
 */
<template>
@@ -24,6 +24,7 @@
                   @current-change="currentChange"
                   @size-change="sizeChange"
                   @refresh-change="refreshChange"
                   @row-click="handleRowClick"
                   @on-load="onLoad">
        </avue-crud>
@@ -52,7 +53,7 @@
                editBtn: false,
                addBtn: false,
                selection: false,
                menu: false,
                align: 'center',
                height: 'auto',
@@ -97,13 +98,13 @@
                        label: "注册资金",
                        prop: "registeredcapital",
                        display: false,
                        width: 160
                        width: 200
                    },
                    {
                        label: "实缴资金",
                        prop: "capital",
                        display: false,
                        width: 160
                        width: 200
                    },
                    {
                        label: "企业类型",
@@ -113,10 +114,30 @@
                    {
                        label: "注册地址",
                        prop: "address",
                        display: false,
                        width: 200
                    },
                    {
                        label: "企业类别",
                        prop: "stats",
                        type: 'select',
                        search: true,
                        searchSpan: 5,
                        dicData: [{
                            label: '自招保安单位',
                            value: '0'
                        }, {
                            label: '保安培训公司',
                            value: '1',
                        }, {
                            label: '保安服务公司',
                            value: '2',
                        }, {
                            label: '武装守押公司',
                            value: '3',
                        }],
                        display: false,
                        width: 80
                        width: 200
                    }
                ]
                ,
@@ -261,7 +282,20 @@
                this.loading = false;
                this.selectionClear();
            });
        }
        },
        // 行单击
        handleRowClick (row) {
            // delete (row["name"]);
            var obj = row
            obj["name"] = "保安公司详细资料"
            this.$router.push({
                path: `/securityCompany/index`,
                query: obj,
            });
        },
    }
};
</script>