소스 검색

图标及人员管理

tianyabing 2 년 전
부모
커밋
9e6fa46cd8

+ 29 - 0
src/api/persons/apiPersons.js

@@ -0,0 +1,29 @@
+import Request from "@/utils/request";
+
+// 获取人员列表
+const getPersonList = (param) => {
+  return Request.get('/person/getPersonList', param)
+}
+
+// 新增用户
+const addUser = (param) => {
+  return Request.post('/person/addPerson', param)
+}
+
+// 修改用户
+const updateUser = (param) => {
+    return Request.post('/person/editPerson', param)
+}
+// 删除用户
+const delUser = (id) => {
+    return Request.postForm('/person/delPerson', {
+        id: id
+    })
+}
+
+export default {
+    getPersonList,
+    addUser,
+    updateUser,
+    delUser,
+}

BIN
src/assets/images/function/asideMenus/人员列表.png


BIN
src/assets/images/function/asideMenus/常见问题.png


BIN
src/assets/images/function/color/人员管理.png


BIN
src/assets/images/function/color/帮助中心.png


BIN
src/assets/images/function/color2/人员管理.png


BIN
src/assets/images/function/color2/帮助中心.png


BIN
src/assets/images/function/人员管理.png


BIN
src/assets/images/function/帮助中心.png


BIN
src/assets/images/functionColor/small2/人员列表.png


BIN
src/assets/images/functionColor/small2/常见问题.png


BIN
src/assets/images/functionColor/人员列表.png


BIN
src/assets/images/functionColor/常见问题.png


+ 21 - 0
src/components/help/commonHelp.vue

@@ -0,0 +1,21 @@
+<template>
+  <div class="commonHelp">
+
+  </div>
+</template>
+<script>
+export default {
+    data() {
+        return {}
+    },
+    mounted() {
+    },
+    methods: {
+
+    }
+}
+</script>
+
+<style lang="less" scoped>
+
+</style>

+ 43 - 0
src/components/help/help.vue

@@ -0,0 +1,43 @@
+<template>
+    <div class="iot-help">
+        <ContainerAside></ContainerAside>
+        <div class="pageContainer-body">
+            <Breadcrumb></Breadcrumb>
+            <a-spin class="pageContainer-content" size="large" tip="加载中..." :spinning="$store.loadingStore().loading">
+                <router-view />
+            </a-spin>
+        </div>
+    </div>
+</template>
+
+<script>
+import {defineAsyncComponent} from "vue";
+
+export default {
+    data() {
+        return {
+        }
+    },
+    components: {
+        ContainerAside: defineAsyncComponent(() => import("@/components/home/ContainerAside.vue")),
+        Breadcrumb: defineAsyncComponent(() => import("@/components/breadcrumb/iotBreadcrumb.vue")),
+    },
+    watch: {
+    },
+    mounted() {
+    },
+    methods: {
+
+    }
+}
+</script>
+
+<style lang="less" scoped>
+.iot-help {
+  width: 100%;
+  height: 100%;
+}
+.myChart {
+  width: 100%;
+}
+</style>

+ 43 - 0
src/components/persons/persons.vue

@@ -0,0 +1,43 @@
+<template>
+    <div class="iot-persons">
+        <ContainerAside></ContainerAside>
+        <div class="pageContainer-body">
+            <Breadcrumb></Breadcrumb>
+            <a-spin class="pageContainer-content" size="large" tip="加载中..." :spinning="$store.loadingStore().loading">
+                <router-view />
+            </a-spin>
+        </div>
+    </div>
+</template>
+
+<script>
+import {defineAsyncComponent} from "vue";
+
+export default {
+    data() {
+        return {
+        }
+    },
+    components: {
+        ContainerAside: defineAsyncComponent(() => import("@/components/home/ContainerAside.vue")),
+        Breadcrumb: defineAsyncComponent(() => import("@/components/breadcrumb/iotBreadcrumb.vue")),
+    },
+    watch: {
+    },
+    mounted() {
+    },
+    methods: {
+
+    }
+}
+</script>
+
+<style lang="less" scoped>
+.iot-persons {
+  width: 100%;
+  height: 100%;
+}
+.myChart {
+  width: 100%;
+}
+</style>

+ 312 - 0
src/components/persons/personsDetail.vue

@@ -0,0 +1,312 @@
+<template>
+    <div class="persons-detail">
+        <div class="persons-detail-left">
+            <a-form-model ref="formRef" :model="form" :rules="formRules" layout="inline" labelAlign="right"
+                          :label-col="{span: 8}"
+                          :wrapper-col="{span: 16}">
+                <div class="formTitle">【基本信息】</div>
+                <a-form-model-item label="姓名" prop="name">
+                    <a-input v-model="form.name" placeholder="姓名" :disabled="disabled"/>
+                </a-form-model-item>
+                <a-form-model-item label="性别">
+                    <a-select v-model="form.gender" allowClear placeholder="性别" :disabled="disabled">
+                        <a-select-option v-for="item in options.sex" :key="item.value" :value="item.value">
+                            {{ item.label }}
+                        </a-select-option>
+                    </a-select>
+                </a-form-model-item>
+                <a-form-model-item label="职务">
+                    <a-input v-model="form.duty" placeholder="职务" :disabled="disabled"/>
+                </a-form-model-item>
+                <a-form-model-item label="公司">
+                    <a-input v-model="form.companyName" placeholder="公司" :disabled="disabled"/>
+                </a-form-model-item>
+                <a-form-model-item label="部门">
+                    <a-input v-model="form.deptName" placeholder="部门" :disabled="disabled"/>
+                </a-form-model-item>
+                <a-form-model-item label="邮箱">
+                    <a-input v-model="form.email" placeholder="邮箱" :disabled="disabled"/>
+                </a-form-model-item>
+                <a-form-model-item label="入职时间">
+                    <a-date-picker v-model="form.hiredate" type="date" placeholder="入职时间" :disabled="disabled"/>
+                </a-form-model-item>
+                <a-form-model-item label="家庭住址">
+                    <a-input v-model="form.address" placeholder="家庭住址" style="width: 460px;" :disabled="disabled"/>
+                </a-form-model-item>
+
+                <div class="formTitle">【管理数据】</div>
+                <a-form-model-item label="员工类型">
+                    <a-select v-model="form.type" allowClear placeholder="员工类型" :disabled="disabled">
+                        <a-select-option v-for="item in options.type" :key="item.value" :value="item.value">
+                            {{ item.label }}
+                        </a-select-option>
+                    </a-select>
+                </a-form-model-item>
+                <a-form-model-item label="职能类型">
+                    <a-select v-model="form.functionType" allowClear placeholder="职能类型" :disabled="disabled">
+                        <a-select-option v-for="item in options.functionType" :key="item.value" :value="item.value">
+                            {{ item.label }}
+                        </a-select-option>
+                    </a-select>
+                </a-form-model-item>
+                <a-form-model-item label="HR编号">
+                    <a-input v-model="form.hrNumber" placeholder="HR编号" :disabled="disabled"/>
+                </a-form-model-item>
+                <a-form-model-item label="办公驻地">
+                    <a-select v-model="form.workAddress" allowClear placeholder="办公驻地" :disabled="disabled">
+                        <a-select-option v-for="item in options.workAddress" :key="item.value" :value="item.value" >
+                            {{ item.label }}
+                        </a-select-option>
+                    </a-select>
+                </a-form-model-item>
+                <a-form-model-item label="办公楼层">
+                    <a-input v-model="form.floor" placeholder="办公楼层" :disabled="disabled"/>
+                </a-form-model-item>
+                <a-form-model-item label="人员编码" v-if="form.workAddress && form.workAddress.indexOf('bj-zy-')==0">
+                    <a-input v-model="form.zyNumber" placeholder="人员编码" :disabled="disabled"/>
+                </a-form-model-item>
+                <a-form-model-item label="房间号">
+                    <a-input v-model="form.roomNumber" placeholder="房间号" :disabled="disabled"/>
+                </a-form-model-item>
+                <a-form-model-item label="工位号">
+                    <a-input v-model="form.siteNumber" placeholder="工位号" :disabled="disabled"/>
+                </a-form-model-item>
+                <a-form-model-item label="卡片编号">
+                    <a-input v-model="form.cardNumber" placeholder="卡片编号" :disabled="disabled"/>
+                </a-form-model-item>
+
+                <div class="formTitle">【权限数据】</div>
+                <a-form-model-item label="身份证号">
+                    <a-input v-model="form.idCard" placeholder="身份证号" :disabled="disabled"/>
+                </a-form-model-item>
+                <a-form-model-item label="手机号">
+                    <a-input v-model="form.phone" placeholder="手机号" :disabled="disabled"/>
+                </a-form-model-item>
+                <a-form-model-item label="物理卡号">
+                    <a-input v-model="form.physicsCard" placeholder="物理卡号" :disabled="disabled"/>
+                </a-form-model-item>
+                <a-form-model-item label="消费账号">
+                    <a-input v-model="form.account" placeholder="消费账号" :disabled="disabled"/>
+                </a-form-model-item>
+                <a-form-model-item label="车牌号">
+                    <a-input v-model="form.carNumber" placeholder="车牌号" :disabled="disabled"/>
+                </a-form-model-item>
+                <a-form-model-item label="角色">
+                    <a-input v-model="form.role" placeholder="角色" :disabled="disabled"/>
+                </a-form-model-item>
+
+                <div class="formTitle">【状态数据】</div>
+                <a-form-model-item label="操作状态">
+                    <a-select v-model="form.operateStatus" allowClear placeholder="操作状态" :disabled="disabled">
+                        <a-select-option v-for="item in options.operateStatus" :key="item.value" :value="item.value">
+                            {{ item.label }}
+                        </a-select-option>
+                    </a-select>
+                </a-form-model-item>
+                <a-form-model-item label="人员状态">
+                    <a-select v-model="form.status" allowClear placeholder="人员状态" :disabled="disabled">
+                        <a-select-option v-for="item in options.status" :key="item.value" :value="item.value">
+                            {{ item.label }}
+                        </a-select-option>
+                    </a-select>
+                </a-form-model-item>
+                <a-form-model-item label="下发状态">
+                    <a-select v-model="form.issueStatus" allowClear placeholder="下发状态" :disabled="disabled">
+                        <a-select-option v-for="item in options.issueStatus" :key="item.value" :value="item.value" >
+                            {{ item.label }}
+                        </a-select-option>
+                    </a-select>
+                </a-form-model-item>
+                <a-form-model-item label="授权时间">
+                    <a-date-picker v-model="form.impowerTime" type="date" placeholder="授权时间" :disabled="disabled"/>
+                </a-form-model-item>
+                <a-form-model-item label="出入口权限">
+                    <a-select v-model="form.inOut" allowClear placeholder="出入口权限" :disabled="disabled">
+                        <a-select-option v-for="item in options.inout" :key="item.value" :value="item.value" >
+                            {{ item.label }}
+                        </a-select-option>
+                    </a-select>
+                </a-form-model-item>
+                <a-form-model-item label="门禁权限">
+                    <a-select v-model="form.access" allowClear placeholder="门禁权限" :disabled="disabled">
+                        <a-select-option v-for="item in options.access" :key="item.value" :value="item.value" >
+                            {{ item.label }}
+                        </a-select-option>
+                    </a-select>
+                </a-form-model-item>
+            </a-form-model>
+
+        </div>
+        <div class="persons-detail-right">
+
+        </div>
+    </div>
+</template>
+
+<script>
+export default {
+    props: {
+        item: Object,
+        disabled: Boolean,
+        statusOption: Array,
+        typeOption: Array,
+    },
+    data() {
+        return {
+            form: {},
+            formRules: {
+                name: [
+                    {required: true, message: '请输入姓名', trigger: 'blur'},
+                    {required: true, message: '请输入姓名', trigger: 'change'}
+                ]
+            },
+            options: {
+                sex: [
+                    {
+                        label: '男',
+                        value: '1'
+                    }, {
+                        label: '女',
+                        value: '2'
+                    },
+                ],
+                functionType: [
+                    {
+                        label: '生产人员',
+                        value: '1'
+                    }, {
+                        label: '职能人员',
+                        value: '2'
+                    },
+                ],
+                workAddress: [
+                    {
+                        label: '主语3',
+                        value: 'bj-zy-3'
+                    }, {
+                        label: '主语4',
+                        value: 'bj-zy-4'
+                    }, {
+                        label: '中鼎B',
+                        value: 'bj-zd-b'
+                    }, {
+                        label: '华通',
+                        value: 'bj-ht'
+                    }, {
+                        label: '亦庄',
+                        value: 'bj-yz'
+                    }, {
+                        label: '集团',
+                        value: 'c'
+                    }, {
+                        label: '京内其他',
+                        value: 'bj-other'
+                    }, {
+                        label: '京外其他',
+                        value: 'other'
+                    },
+                ],
+                operateStatus: [
+                    {
+                        label: '新增',
+                        value: '1'
+                    }, {
+                        label: '修改',
+                        value: '2'
+                    }, {
+                        label: '失效/注销',
+                        value: '3'
+                    },
+                ],
+                status: [],
+                type: [],
+                issueStatus: [
+                    {
+                        label: '正常',
+                        value: '1'
+                    }, {
+                        label: '待审核',
+                        value: '2'
+                    }, {
+                        label: '未成功',
+                        value: '3'
+                    },
+                ],
+                inout: [
+                    {
+                        label: '是',
+                        value: '1'
+                    },
+                    {
+                        label: '否',
+                        value: ''
+                    }
+                ],
+                access: [
+                    {
+                        label: '是',
+                        value: '1'
+                    },
+                    {
+                        label: '否',
+                        value: ''
+                    }
+                ],
+            }
+        }
+    },
+    created() {
+        this.options.type = this.typeOption;
+        this.options.status = this.statusOption;
+        this.form = JSON.parse(JSON.stringify(this.item))
+    },
+    methods: {
+    }
+}
+</script>
+
+<style lang="less" scoped>
+.persons-detail {
+  .persons-detail-left {
+    display: inline-block;
+    width: 80%;
+    box-sizing: border-box;
+    vertical-align: top;
+
+    .formTitle {
+      margin: 12px 0 6px;
+      color: @primary-color;
+      font-size: 15px;
+      letter-spacing: 1px;
+    }
+
+    /deep/ .ant-form-inline .ant-form-item-with-help {
+      margin-bottom: 0;
+    }
+
+    /deep/ .ant-form-inline .ant-form-item > .ant-form-item-label {
+      width: 80px;
+    }
+
+    /deep/ .ant-form-inline .ant-form-item > .ant-form-item-control-wrapper {
+      width: 183px;
+    }
+
+    /deep/ .ant-form label {
+      font-size: 13px !important;
+    }
+
+  }
+
+  .persons-detail-right {
+    display: inline-block;
+    width: 20%;
+    box-sizing: border-box;
+    vertical-align: top;
+  }
+}
+
+/deep/ .ant-modal-body {
+  padding-top: 6px !important;
+}
+</style>

+ 324 - 0
src/components/persons/personsList.vue

@@ -0,0 +1,324 @@
+<template>
+    <div class="ioc-persons-list">
+        <div class="page-query-core" style="padding-left: 30px">
+            <Query :query-data.sync="queryData" :search="search">
+                <template #extraItem>
+                    <a-form-item label="姓名">
+                        <a-input v-model="queryData.name" placeholder="姓名"/>
+                    </a-form-item>
+                    <a-form-item label="电话">
+                        <a-input v-model="queryData.phone" placeholder="联系方式"/>
+                    </a-form-item>
+                    <a-form-item label="公司">
+                        <a-input v-model="queryData.companyName" placeholder="所属公司"/>
+                    </a-form-item>
+                    <a-form-item label="人员状态">
+                        <a-select v-model="queryData.status" style="width: 120px">
+                            <a-select-option value="">全部</a-select-option>
+                            <a-select-option v-for="(item,index) in statusOptions" :key="item.value"
+                                             :value="item.value">{{ item.label }}
+                            </a-select-option>
+                        </a-select>
+                    </a-form-item>
+                    <a-form-item label="人员类型">
+                        <a-select v-model="queryData.type" style="width: 120px">
+                            <a-select-option value="">全部</a-select-option>
+                            <a-select-option v-for="(item,index) in typeOptions" :key="item.value" :value="item.value">
+                                {{ item.label }}
+                            </a-select-option>
+                        </a-select>
+                    </a-form-item>
+                </template>
+            </Query>
+        </div>
+
+        <div class="ioc-persons-list-content">
+            <div class="ioc-persons-list-header">
+                <a-button class="ioc-persons-list-header-btn" type="primary" @click="handleAddUserVisible">新建人员</a-button>
+            </div>
+            <div class="ioc-persons-list-table">
+                <a-table :rowKey="(record, index) => index"
+                         style="min-height: 550px"
+                         :columns="columns"
+                         :data-source="tableData"
+                         :show-header="true"
+                         :scroll="{ y: 600 }"
+                         :pagination="false">
+                    <template #index="text,record,index">
+                        <span>{{index+1}}</span>
+                    </template>
+                    <template #status="text,record">
+                        <template v-for="item in statusOptions" >
+                            <span :key="item.value" v-if="text && text!='' && text==item.value">{{item.label}}</span>
+                        </template>
+                    </template>
+                    <template #type="text,record">
+                        <template v-for="item in typeOptions" >
+                            <span :key="item.value" v-if="text && text!='' && text==item.value">{{item.label}}</span>
+                        </template>
+                    </template>
+                    <template #opr="text,record,index">
+                        <a-button type="link" style="padding: 0 2px" @click="view(record)">查看</a-button>
+                        <a-button type="link" style="padding: 0 2px" @click="edit(record)">编辑</a-button>
+                        <a-popconfirm
+                            title="确定要删除吗?"
+                            ok-text="是"
+                            cancel-text="否"
+                            @confirm="del(record)"
+                        >
+                            <a-button type="link" style="padding: 0 2px" >删除</a-button>
+                        </a-popconfirm>
+
+                    </template>
+                </a-table>
+            </div>
+            <div class="ioc-persons-list-pagination">
+                <a-pagination @change="handlePageChange" v-model="pagination.page" :total="pagination.total" show-less-items />
+            </div>
+        </div>
+
+        <a-modal :title="title"
+                 v-if="showAddUser"
+                 v-model="showAddUser"
+                 class="persons-detail"
+                 width="1100px"
+                 style="height: 600px;overflow-y: auto"
+                 :destroyOnClose="true"
+                 @ok="handleOk"
+                 @cancle="handleCancel"
+        >
+            <PersonsDetail ref="personDetail" :disabled="formDisabled" :item="currItem" :statusOption="statusOptions" :typeOption="typeOptions" />
+            <template #footer>
+                <a-button v-show="title!='用户详情'" type="info" @click="handleCancel">取消</a-button>
+                <a-button v-show="title!='用户详情'" type="primary" @click="handleOk">确认</a-button>
+            </template>
+        </a-modal>
+
+
+    </div>
+</template>
+<script>
+import Query from "@/components/common/query.vue";
+import apiPersons from "@/api/persons/apiPersons";
+import PersonsDetail from "@/components/persons/personsDetail.vue";
+
+export default {
+    components: {
+        Query,
+        PersonsDetail,
+    },
+    data() {
+        return {
+            title: '人员详情',
+            showAddUser: false,
+            queryData: {
+                name: '',
+                phone: '',
+                companyName: '',
+                status: '',
+                type: '',
+            },
+            formDisabled: false,
+            currItem: {},
+            pagination: {
+                page: 1,
+                pageSize: 10,
+                total: 0,
+            },
+            statusOptions: [{
+                    label: '正常',
+                    value: '1'
+                }, {
+                    label: '已离职',
+                    value: '2'
+                }, {
+                    label: '暂时冻结',
+                    value: '3'
+                }
+            ],
+            typeOptions: [{
+                    label: '正式员工',
+                    value: '1'
+                }, {
+                    label: '外协人员',
+                    value: '2'
+                }, {
+                    label: '驻地物业',
+                    value: '3'
+                }, {
+                    label: '施工人员',
+                    value: '4'
+                }, {
+                    label: '厂商',
+                    value: '5'
+                },
+            ],
+            columns: [
+                {
+                    title: '序号',
+                    dataIndex: 'index',
+                    key: 'index',
+                    align: 'center',
+                    width: '80px',
+                    scopedSlots: { customRender: 'index' },
+                },{
+                    title: '姓名',
+                    dataIndex: 'name',
+                    key: 'name',
+                },{
+                    title: '公司',
+                    dataIndex: 'companyName',
+                    key: 'companyName',
+                },{
+                    title: '部门',
+                    dataIndex: 'deptName',
+                    key: 'deptName',
+                },{
+                    title: '电话',
+                    dataIndex: 'phone',
+                    key: 'phone',
+                },{
+                    title: '人员类型',
+                    dataIndex: 'type',
+                    align: 'center',
+                    width: '120px',
+                    key: 'type',
+                    scopedSlots: { customRender: 'type' },
+                },{
+                    title: '人员状态',
+                    dataIndex: 'status',
+                    align: 'center',
+                    width: '120px',
+                    key: 'status',
+                    scopedSlots: { customRender: 'status' },
+                },{
+                    title: '操作',
+                    dataIndex: 'opr',
+                    align: 'center',
+                    key: 'opr',
+                    width: '200px',
+                    scopedSlots: { customRender: 'opr' },
+                },
+            ],
+            tableData: [],
+        }
+    },
+    mounted() {
+        this.getData()
+    },
+    methods: {
+        handlePageChange(page, pageSize) {
+            this.pagination.page = page;
+            this.pagination.pageSize = pageSize;
+            this.getData();
+        },
+        search() {
+          this.pagination.page = 1;
+          this.pagination.pageSize = 10;
+          this.getData()
+        },
+        getData() {
+            let app = this;
+            let param = JSON.parse(JSON.stringify(this.queryData));
+            param.page = this.pagination.page;
+            param.pageSize = this.pagination.pageSize;
+            apiPersons.getPersonList(param).then(res => {
+                app.tableData = res.list;
+                app.pagination.total = res.total;
+            })
+        },
+        handleAddUserVisible() {
+            this.title = '添加人员'
+            this.currItem = {}
+            this.formDisabled = false
+            this.showAddUser = true;
+        },
+        handleOk() {
+            this.$refs.personDetail.$refs.formRef.validate(valid=>{
+                if (valid) {
+                    let param = JSON.parse(JSON.stringify(this.$refs.personDetail.form));
+                    if (this.title=='添加人员') {
+                        this.addUser(param)
+                    } else if (this.title=='编辑用户'){
+                        this.updateUser(param)
+                    }
+                }
+            })
+
+        },
+        addUser(param) {
+            apiPersons.addUser(param).then(res=>{
+                this.$message.success('添加成功')
+                this.getData()
+                this.showAddUser = false
+            })
+        },
+        updateUser(param) {
+            apiPersons.updateUser(param).then(res=>{
+                this.$message.success('修改成功')
+                this.getData()
+                this.showAddUser = false
+            })
+        },
+        delUser(item) {
+
+        },
+        handleCancel() {
+            this.showAddUser=false
+        },
+        view(item) {
+            this.title='用户详情';
+            this.currItem = item;
+            this.formDisabled = true
+            this.showAddUser = true;
+
+
+        },
+        edit(item) {
+            this.title='编辑用户';
+            this.currItem = item;
+            this.formDisabled = false
+            this.showAddUser = true;
+        },
+        del(item) {
+            apiPersons.delUser(item.id).then(res=>{
+                this.$message.success('删除成功');
+                this.getData()
+            })
+        }
+    }
+}
+</script>
+
+<style lang="less" scoped>
+.ioc-persons-list {
+  width: 100%;
+  height: 100%;
+
+  .ioc-persons-list-content {
+      height: auto;
+      background: #FFFFFF;
+      border-radius: 4px;
+      padding: 12px 30px;
+
+      .ioc-persons-list-header {
+          width: 100%;
+          box-sizing: border-box;
+          padding-top: 6px;
+          padding-bottom: 12px;
+          .ioc-persons-list-header-btn {
+              height: 25px;
+              line-height: 25px;
+              font-size: 14px;
+          }
+      }
+
+      .ioc-persons-list-pagination {
+          text-align: right;
+          margin-top: 20px;
+          margin-bottom: 6px;
+      }
+
+  }
+}
+</style>

+ 24 - 0
src/data/json/menuList.json

@@ -281,5 +281,29 @@
         "icon": "权限查看.png"
       }
     ]
+  },
+  {
+    "name": "人员管理",
+    "router": "/persons",
+    "icon": "人员管理.png",
+    "children": [
+      {
+        "name": "人员列表",
+        "router": "/persons/list",
+        "icon": "人员列表.png"
+      }
+    ]
+  },
+  {
+    "name": "帮助中心",
+    "router": "/help",
+    "icon": "帮助中心.png",
+    "children": [
+      {
+        "name": "常见问题",
+        "router": "/help/common",
+        "icon": "常见问题.png"
+      }
+    ]
   }
 ]

+ 28 - 0
src/router/index.js

@@ -450,6 +450,34 @@ const router = new VueRouter({
             },
           ],
         },
+        {
+          path: "/persons",
+          name: "persons",
+          meta: { breadcrumb: "人员管理" },
+          component: () => import("@/components/persons/persons.vue"),
+          children: [
+            {
+              path: "/persons/list",
+              name: "personsList",
+              meta: { breadcrumb: "人员列表" },
+              component: () => import("@/components/persons/personsList.vue"),
+            },
+          ],
+        },
+        {
+          path: "/help",
+          name: "help",
+          meta: { breadcrumb: "帮助中心" },
+          component: () => import("@/components/help/help.vue"),
+          children: [
+            {
+              path: "/help/common",
+              name: "helpCommon",
+              meta: { breadcrumb: "常见问题" },
+              component: () => import("@/components/help/commonHelp.vue"),
+            },
+          ],
+        },
       ],
     },
     {

+ 6 - 2
src/utils/request.js

@@ -53,14 +53,18 @@ function req(method, url, params) {
     delete params.deptId;
   }
   return new Promise((resolve, reject) => {
-    service({
+    let option = {
       method,
       url,
       data: params,
       headers: {
         "token": stores.userStore().token
       },
-    }).then((response) => {
+    }
+    if (method=='GET') {
+      option['params'] = params
+    }
+    service(option).then((response) => {
       if (response.data.code == 200) {
         resolve(response.data.data)
       } else if (response.data.code == 203) {

+ 1 - 1
vite.config.js

@@ -113,7 +113,7 @@ export default defineConfig(({ command }) => {
       proxy: {
         "/ioc-api": {
            //target: "http://127.0.0.1:10099",
-          target: "http://10.12.242.163:10091/ioc-server",
+          target: "http://121.43.55.7:10091/ioc-server",
           changeOrigin: true,
           rewrite: (path) => path.replace(/^\/ioc-api/, ""),
         },