“dzb”
2022-10-21 b9b2d3d63335fa9c72078e64f1ac1b365cf2d8dd
修改用户管理
20个文件已修改
7个文件已添加
2个文件已删除
1770 ■■■■■ 已修改文件
dist.rar 补丁 | 查看 | 原始文档 | blame | 历史
src/api/operate/management.js 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/system/bayonet.js 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/system/role.js 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Table/index.vue 141 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/illdetail/index.vue 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/solveProblem/index.vue 37 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/router/index.js 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/store/index.js 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/store/operate/managenment/shortMessage/index.js 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/store/system/bayonet/index.js 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/helper.js 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/layout/components/Header/index.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/layout/components/Menu/index.vue 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operate/disposal/casepool/dispatch/index.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operate/disposal/casepool/pool/createUser/vio/index.vue 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operate/disposal/casepool/pool/index.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operate/management/message/index.vue 279 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operate/management/mydetail/index.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operate/management/mysovle/index.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operate/message/myIndex/createUser/index.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/operate/myWait/index.vue 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/systemSetting/baseSetting/department/index.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/systemSetting/baseSetting/role/index.vue 72 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/systemSetting/baseSetting/user/components/main/index.vue 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/systemSetting/baseSetting/user/components/myView/index.vue 202 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/systemSetting/baseSetting/user/components/updateUser/index.vue 452 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/systemSetting/device/bayonet/create/index.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/systemSetting/device/bayonet/index.vue 268 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dist.rar
Binary files differ
src/api/operate/management.js
New file
@@ -0,0 +1,16 @@
import axios from "axios";
import {getToken} from '@/utils/helper'
const baseUrl = '/sccg/message_audit'
const token = {
    'Authorization':getToken()
}
export default {
    // 获取短信审核列表
    getMessageList: (data) => axios({
        method: 'post',
        url: baseUrl+'/list',
        headers:{...token},
        data: data
    }),
    //
};
src/api/system/bayonet.js
New file
@@ -0,0 +1,29 @@
import axios from "axios";
import {getToken} from '@/utils/helper'
const baseUrl = '/sccg/equipment_bayonet'
const token = {
    'Authorization':getToken()
}
export default {
    // 获取卡口列表
    getBayonetList: (data) => axios({
        method: 'get',
        url: baseUrl+'/query',
        headers:{...token},
        params: data
    }),
    // 导出卡口设备
    exportBayonetList:(data)=>axios({
        method:'get',
        url:baseUrl + '/export',
        headers:{...token},
        params:data
    }),
    // 新增卡口
    addBayonet:(data)=>axios({
        method:'post',
        url:baseUrl + '/addition',
        headers:{...token},
        data:data
    })
};
src/api/system/role.js
New file
@@ -0,0 +1,28 @@
import axios from "axios";
import {getToken} from '@/utils/helper'
const baseUrl = '/sccg/role'
const token = {
    'Authorization':getToken()
}
export default {
    // 获取角色列表
    getRoleList: (data) => axios({
        method: 'get',
        url: baseUrl+'/query',
        headers:{...token},
        params: data
    }),
    // 获取角色类型
    getRoleTypeList:() => axios({
        method:'get',
        url:baseUrl+'/query_operationType',
        headers:{...token},
    }),
    // 导出日志
    exportLogs:(data)=>axios({
        method:'post',
        url:baseUrl+'/export',
        headers:{...token},
        params:data
    })
};
src/components/Table/index.vue
@@ -12,22 +12,18 @@
                        <div v-if="item.type === 'text'">
                            {{scope.row[item.prop]}}
                        </div>
                        <slot v-else name="operation" :info="scope">
                            <div class="operationBox">
                                <div class="divider" v-for="(child,index) in item.children" :key="child.operationName">
                                    <!-- @click="backMykey(scope.$index,child.mykey)" -->
                                    <span>{{child.operationName}}</span>
                                    <el-divider direction="vertical" v-if="index !== item.children.length-1">
                                    </el-divider>
                                </div>
                            </div>
                        <slot v-else-if="item.type === 'operation'" name="operation" :info="scope">
                        </slot>
                        <slot name="status" v-else-if="item.type === 'status'" :info="scope">
                        </slot>
                        <div class=""></div>
                    </template>
                </el-table-column>
            </el-table>
        </div>
        <!-- tools -->
        <div class="tools">
        <div class="tools" v-if="pageShow">
            <div class="funs">
                <div class="funsItem sp-item">
                    <el-checkbox v-model="all" @change="selectAll()">全选</el-checkbox>
@@ -93,20 +89,25 @@
        // 弹窗
        openDialog: {
            type: Function,
            default: () => {}
            default: () => { }
        },
        // 获取当前页
        getCurrentPage:{
        getCurrentPage: {
            type: Function,
            default: () => {}
            default: () => { }
        },
        // 分页总数
        totalNum:{
            type:Number,
            default:1
        totalNum: {
            type: Number,
            default: 1
        },
        // 是否展示分页
        pageShow:{
            type: Boolean,
            default: false,
        }
    },
    created(){
    created() {
        this.myTotalNum = JSON.parse(JSON.stringify(this.totalNum));
    },
    computed: {
@@ -127,7 +128,7 @@
        // 当前页改变触发事件
        changeCurrentPage(page) {
            this.currentPage = page;
            this.$emit('getCurrentPage',page);
            this.$emit('getCurrentPage', page);
        },
        // 全选
        selectAll() {
@@ -169,68 +170,72 @@
    .el-table {
        color: #4b9bb7;
    }
    .tools {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 0 20px;
        .funs {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 0 20px;
            .funs {
                display: flex;
                .sp-item{
                    border: 1px solid #17324c;
                }
                .funsItem {
                    line-height: 28px;
                    display: flex;
                    align-items: center;
                    border-radius: 4px;
                    font-size: 12px;
                    margin-left: 10px;
                    .el-checkbox {
                        width: 80px;
                        padding: 0 10px;
                    }
                    .el-select {
                        width: 120px;
                    }
                    &::v-deep .el-input__inner {
                        border: none;
                        background-color: #09152f;
                    }
                    &:hover .el-checkbox {
                        color: #4b9bb7;
                    }
                }
            .sp-item {
                border: 1px solid #17324c;
            }
            .pagination {
                margin-top: 50px;
            .funsItem {
                line-height: 28px;
                display: flex;
                line-height: 50px;
                justify-content: center;
                align-items: center;
                border-radius: 4px;
                font-size: 12px;
                margin-left: 10px;
                .el-pagination {
                .el-checkbox {
                    width: 80px;
                    padding: 0 10px;
                }
                    &::v-deep li,
                    &::v-deep .btn-prev,
                    &::v-deep .btn-next {
                        background-color: #071f39;
                        color: #4b9bb7;
                    }
                .el-select {
                    width: 120px;
                }
                    &::v-deep .active {
                        background-color: #409eff;
                        color: #fff;
                    }
                &::v-deep .el-input__inner {
                    border: none;
                    background-color: #09152f;
                }
                &:hover .el-checkbox {
                    color: #4b9bb7;
                }
            }
        }
        .pagination {
            margin-top: 50px;
            display: flex;
            line-height: 50px;
            justify-content: center;
            .el-pagination {
                &::v-deep li,
                &::v-deep .btn-prev,
                &::v-deep .btn-next {
                    background-color: #071f39;
                    color: #4b9bb7;
                }
                &::v-deep .active {
                    background-color: #409eff;
                    color: #fff;
                }
            }
        }
    }
    &::v-deep .warning-row {
        background-color: #06122c;
    }
src/components/illdetail/index.vue
@@ -7,7 +7,7 @@
                        <span class="data-detail">违建</span>
                    </el-form-item>
                    <el-form-item label="违建类别:">
                        <span class="data-detail">{{baseCase.illegalBuilding.categoryText}}</span>
                        <span class="data-detail">{{baseCase.categoryText}}</span>
                    </el-form-item>
                </div>
                <div class="data-item">
@@ -27,7 +27,7 @@
                </div>
                <div class="data-item">
                    <el-form-item label="违建地点:">
                        <span class="data-detail">{{baseCase.illegalBuilding.site}}</span>
                        <span class="data-detail">{{baseCase.site}}</span>
                    </el-form-item>
                    <el-form-item label="所属社区:">
                        <span class="data-detail">{{baseCase.communityText}}</span>
@@ -150,15 +150,16 @@
    .view-data {
        color: #4b9bb7;
        flex: 4;
        // flex: 4;
        padding: 0 30px 0 20px;
        img{
            width: 100px;
            height: 100px;
            border-radius: 4px;
        }
        .data-item {
            display: flex;
            justify-content: space-between;
            // justify-content: space-between;
            line-height: 20px;
        }
src/components/solveProblem/index.vue
@@ -8,9 +8,11 @@
            <el-timeline>
                <el-timeline-item :color="mycolor" v-for="item in list" :key="item.id">
                    <div class="title">
                        <div class="title-left">【{{item.name}}】处理人: {{item.disposeRecords && item.disposeRecords.length != 0 ?  item.disposeRecords[0].handlerText:''}}
                        <div class="title-left">【{{item.name}}】处理人: {{item.disposeRecords && item.disposeRecords.length
                        != 0 ? item.disposeRecords[0].handlerText:''}} {{item.disposeRecords && item.disposeRecords.length}}
                        </div>
                        <div class="title-right">{{item.disposeRecords.length !==0 ? filterTime(item.disposeRecords[0].endTime):''}}
                        <div class="title-right">{{item.disposeRecords.length !==0 ?
                        filterTime(item.disposeRecords[0].endTime):''}}
                        </div>
                    </div>
                    <div class="message">{{filterPerson(item.name)}}</div>
@@ -21,7 +23,7 @@
</template> 
<script>
import helper from '@/utils/mydate'
import {computeTime} from '@/utils/helper'
import { computeTime } from '@/utils/helper'
export default {
    data() {
        return {
@@ -33,9 +35,11 @@
    props: ['handlePassVo', 'baseCase'],
    created() {
        const { handlePassVo: mylist, baseCase } = this;
        console.log(baseCase, mylist);
        console.log(baseCase, mylist);
        if (mylist) {
            this.list = mylist.workflowConfigSteps;
            this.list = mylist.workflowConfigSteps.filter(item => {
                return item.id !== 2
            });
        }
        if (baseCase.dispatchInfo) {
            this.dispatchInfo = baseCase.dispatchInfo;
@@ -44,32 +48,31 @@
    methods: {
        // 获得意见
        filterPerson(name) {
            const { baseCase, dispatchInfo } = this;
            const { dispatchInfo } = this;
            if (name === '调度') {
                return '【派遣意见】' + dispatchInfo.dispatchOpinion
            } else if (name === '核查') {
                return '【核查结果】' + baseCase.handlingOpinion
                return '【核查结果】'
            } else if (name === '结案') {
                return '【评定结果】' + baseCase.finalOpinion
            } else {
                return '【处理结果】' + baseCase.handlingOpinion
                return '【评定结果】'
            }
            return
        },
        // 处理时间
        filterTime(time){
            if(time){
        filterTime(time) {
            if (time) {
                return helper(time)
            }else{
            } else {
                return
            }
        },
        // 获得剩余时间
        getRestTime(limitTime){
            if(limitTime){
        getRestTime(limitTime) {
            if (limitTime) {
                return computeTime(limitTime)
            }
            return
            return
        }
    }
}
src/router/index.js
@@ -202,7 +202,12 @@
                path: 'myIndex',
                name: 'myIndex',
                component: () => import('@/views/operate/management/myIndex'),
              }
              },
              {
                path: 'managementMessage',
                name: 'managementMessage',
                component: () => import('@/views/operate/management/message'),
              },
            ]
          },
          {
src/store/index.js
@@ -2,6 +2,8 @@
import Vuex from 'vuex'
import users from "./users"
import logs from "./logs"
import bayonet from './system/bayonet'
import shortMessage from './operate/managenment/shortMessage'
Vue.use(Vuex)
export default new Vuex.Store({
@@ -14,6 +16,6 @@
  actions: {
  },
  modules: {
    users,logs
    users,logs,bayonet,shortMessage
  }
})
src/store/operate/managenment/shortMessage/index.js
New file
@@ -0,0 +1,14 @@
import mangenmentApi from "@/api/operate/management";
// import { Message } from "element-ui";
export default {
  namespaced: true,
  state: {
    userInfo: {},
  },
  actions: {
    async getMessageList({ state }, params) {
      const res = await mangenmentApi.getMessageList(params);
      return res;
    },
  },
};
src/store/system/bayonet/index.js
New file
@@ -0,0 +1,22 @@
import bayonetApi from "@/api/system/bayonet";
// import { Message } from "element-ui";
export default {
  namespaced: true,
  state: {
    userInfo: {},
  },
  actions: {
    async getBayonetList({ state }, params) {
      const res = await bayonetApi.getBayonetList(params);
      return res;
    },
    async exportBayonetList({ state },params) {
      const res = await bayonetApi.exportBayonetList(params);
      return res;
    },
    async addBayonet({ state },params) {
      const res = await bayonetApi.addBayonet(params);
      return res;
    },
  },
};
src/utils/helper.js
@@ -33,6 +33,30 @@
        })
    return arr;
}
export async function myDownLoad(arr){
    let fileName = arr.headers['content-disposition'];
            console.log(fileName);
            if (fileName) {
                fileName = fileName.slice(fileName.indexOf('filename=') + 9);
            }
            const blob = new Blob([arr.data], {
                type: 'application/octet-stream'
            })
            // content-disposition
            const downloadElement = document.createElement('a')
            // 创建下载的链接
            const href = window.URL.createObjectURL(blob)
            downloadElement.href = href
            // // 下载后文件名
            downloadElement.download = fileName
            document.body.appendChild(downloadElement)
            // 点击下载
            downloadElement.click()
            // 下载完成移除元素
            document.body.removeChild(downloadElement)
            // 释放掉blob对象
            window.URL.revokeObjectURL(href)
}
// 获取token
export function getToken() {
    const token = sessionStorage.getItem('token');
src/views/layout/components/Header/index.vue
@@ -130,8 +130,7 @@
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        sessionStorage.removeItem('token');
        sessionStorage.removeItem('tokenHead');
        sessionStorage.clear();
        this.$router.push({ path: "/login" })
      }).catch(err => {
        console.log(err);
src/views/layout/components/Menu/index.vue
@@ -72,7 +72,14 @@
              <el-menu-item index="/home/operate/casepool/learn">再学习管理</el-menu-item>
              <el-menu-item index="/home/operate/casepool/notDeal">暂不处理</el-menu-item>
            </el-submenu>
            <el-menu-item index="/home/operate/management">审核管理</el-menu-item>
            <el-submenu index="/home/operate/management" class="secondMenu">
              <template slot="title">
                <span class="secondSpan">审核管理</span>
              </template>
              <el-menu-item index="/home/operate/management">审核管理</el-menu-item>
              <el-menu-item index="/home/operate/management/managementMessage">短信审核管理</el-menu-item>
              <!-- <el-menu-item index="/home/operate/baseSetting/threepack">门前三包设置</el-menu-item> -->
            </el-submenu>
            <el-menu-item index="/home/operate/myWait">我的待办</el-menu-item>
            <el-submenu index="/home/operate/rectification" class="secondMenu">
              <template slot="title">
src/views/operate/disposal/casepool/dispatch/index.vue
@@ -58,7 +58,7 @@
                        </template>
                    </el-table-column>
                    <el-table-column :prop="mystatus === 1 ? 'street' :'buildingArea'"
                        :label="mystatus===1 ? '所属区域' : '违法建筑面积'" min-width="10">
                        :label="mystatus===1 ? '所属区域' : '违法建筑面积'" min-width="12">
                    </el-table-column>
                    <el-table-column prop="alarmTime" label="报警时间" min-width="15" v-if="mystatus===1">
                        <template slot-scope="scope">
@@ -66,9 +66,9 @@
                        </template>
                    </el-table-column>
                    <el-table-column :prop="mystatus === 1 ? 'continueTime' :'materials'"
                        :label="mystatus===1 ? '持续时间' : '违法建筑材料'" min-width="10">
                        :label="mystatus===1 ? '持续时间' : '违法建筑材料'" min-width="12">
                    </el-table-column>
                    <el-table-column prop="operation" label="操作" min-width="20">
                    <el-table-column prop="operation" label="操作" min-width="15">
                        <template slot-scope="scope">
                            <div class="operation">
                                <div class="btn">
src/views/operate/disposal/casepool/pool/createUser/vio/index.vue
@@ -47,10 +47,9 @@
                    <!-- 案由 -->
                    <el-form-item class="optionItem anyou" label="案由:" prop="actionCause">
                        <el-select v-model="vio.actionCause" placeholder="请输入案由" filterable @blur="selectBlur">
                            <el-option v-for="item in anYouList" :key="item.id" :label="item.name" :value="item.name" >
                            <el-option v-for="item in anYouList" :key="item.id" :label="item.name" :value="item.name">
                            </el-option>
                        </el-select>
                        <!-- <el-input v-model="vio.actionCause" placeholder="请输入案由"></el-input> -->
                    </el-form-item>
                    <!-- 所属区县 -->
                    <!-- <el-form-item class="optionItems" label="所属区县:" prop="status">
@@ -64,16 +63,16 @@
                        <!-- 所属街道 -->
                        <el-form-item class="optionItems" label="所属街道:" prop="streetId">
                            <el-select v-model="vio.streetId" placeholder="请选择所属街道" @change="handleStreet">
                                <el-option v-for="item in streetList" :key="item.id" :label="item.name" :value="item.id"
                                    :disabled="item.disabled">
                                <el-option v-for="item in streetList" :key="item.id" :label="item.regionName" :value="item.id"
                                    >
                                </el-option>
                            </el-select>
                        </el-form-item>
                        <!-- 所属社区 -->
                        <el-form-item class="optionItems" label="所属社区:" prop="communityId">
                            <el-select v-model="vio.communityId" placeholder="请选择所属社区">
                                <el-option v-for="item in communityList" :key="item.id" :label="item.name"
                                    :value="item.id" :disabled="item.disabled">
                                <el-option v-for="item in communityList" :key="item.id" :label="item.regionName"
                                    :value="item.id" >
                                </el-option>
                            </el-select>
                        </el-form-item>
@@ -106,11 +105,18 @@
                            v-model="vio.description">
                        </el-input>
                    </el-form-item>
                    <!-- 报警时间 -->
                    <el-form-item class="optionItems" label="报警时间:" prop="alarmTime">
                        <el-date-picker v-model="vio.alarmTime" type="datetime" placeholder="选择报警时间">
                        </el-date-picker>
                    </el-form-item>
                    <div class="user-item">
                        <!-- 报警时间 -->
                        <el-form-item class="optionItems" label="报警时间:" prop="alarmTime">
                            <el-date-picker v-model="vio.alarmTime" type="datetime" placeholder="选择报警时间">
                            </el-date-picker>
                        </el-form-item>
                        <!-- 调度时限 -->
                        <el-form-item class="optionItems" label="调度时限:" prop="limitTime">
                            <el-date-picker v-model="vio.limitTime" type="datetime" placeholder="选择调度时限">
                            </el-date-picker>
                        </el-form-item>
                    </div>
                    <!-- 填写反映人信息 -->
                    <el-form-item class="optionItems" label="填写反映人信息">
                    </el-form-item>
@@ -141,8 +147,8 @@
<script>
import MyMap from '@/components/map'
import { validateName, validatePhone, validateCarNum, validateCardId } from '@/utils/validate'
import {getTypeList} from '@/utils/helper'
import {parseTime} from "@/utils/index"
import { getTypeList } from '@/utils/helper'
import { parseTime } from "@/utils/index"
export default {
    components: {
        MyMap
@@ -254,6 +260,13 @@
                }
            }
        }
        const checkLimit = (rule, value, callback) => {
            if (value) {
                callback();
            } else {
                callback(new Error('调度时限时间不能为空'))
            }
        }
        return {
            vio: {
                actionCause: "",//案由
@@ -271,7 +284,8 @@
                streetId: '',//所属街道
                typeId: '',//小类
                gradeId: '',//案件等级
                alarmTime: ''
                alarmTime: '',
                limitTime: '',//调度时限
            },
            createRoleRules: {
                //案由
@@ -353,6 +367,11 @@
                    {
                        required: true, trigger: 'change', validator: checkDate
                    }
                ],
                limitTime: [
                    {
                        required: true, trigger: 'change', validator: checkLimit
                    }
                ]
            },
@@ -379,7 +398,7 @@
        console.log(this.mytype);
        this.vio.category = this.mytype + 1;
        setBigKindList();
        getStreetList();
        getStreetList(0);
        getEventLevel();
    },
    methods: {
@@ -435,7 +454,7 @@
        },
        // 获取案件等级列表
        async getEventLevel() {
            this.eventLevelList = await getTypeList(1,'02');
            this.eventLevelList = await getTypeList(1, '02');
        },
        // 查询所属案由
        async getAnYouList() {
@@ -460,7 +479,8 @@
                        url: 'sccg/base_case/addition_violation',
                        data: {
                            ...vio,
                            alarmTime:parseTime(vio.alarmTime),
                            alarmTime: parseTime(vio.alarmTime),
                            limitTime:parseTime(vio.limitTime),
                        }
                    })
                        .then(res => {
@@ -489,8 +509,18 @@
            this.$emit('changeDialog', { flag: false })
        },
        // 获取街道信息
        async getStreetList() {
            this.streetList = await getTypeList(1,'10');
        async getStreetList(id) {
            let arr
            await this.$axios({
                method:'get',
                url:`sccg/sccg_region/getChildren/${id}`,
            })
            .then(res=>{
                if(res.code === 200){
                    arr = res.data;
                }
            })
            this.streetList = arr;
        },
        // 街道更改
        handleStreet(id) {
@@ -499,7 +529,7 @@
            // this.communityList = getTypeList(1,'11')
            this.$axios({
                method: 'get',
                url: 'sccg/dict/query_social_type?id=' + id
                url: `sccg/sccg_region/getChildren/${id}`
            })
                .then(res => {
                    this.communityList = res.data;
@@ -521,8 +551,8 @@
            this.setAnYouList(id);
        },
        // 案由输入
        selectBlur(e){
            if(e.target.value){
        selectBlur(e) {
            if (e.target.value) {
                this.vio.actionCause = e.target.value;
                console.log(e.target.value);
            }
@@ -537,7 +567,7 @@
    padding: 20px 10px 50px;
    .input-area {
        flex: 1;
        flex: 3;
        padding: 10px 20px;
        .input-header {
@@ -584,10 +614,11 @@
    }
    .map-area {
        flex: 1;
        flex: 2;
    }
    .anyou{
        :deep(.el-select){
    .anyou {
        :deep(.el-select) {
            display: block;
        }
    }
src/views/operate/disposal/casepool/pool/index.vue
@@ -422,6 +422,7 @@
                    item.checked = false;
                }
            })
            this.mystatus = 1
            this.typeList[0].checked = true;
            this.typeList[1].checked = false;
            this.statusArr[0] = this.tagList[idx].value;
src/views/operate/management/message/index.vue
New file
@@ -0,0 +1,279 @@
<template>
    <div class="message">
        <header>
            <div class="header-title">筛选条件</div>
            <div class="header-content">
                <div class="search">
                    <span>ID:</span>
                    <el-input placeholder="ID" v-model="context"></el-input>
                </div>
                <div class="status">
                    <span>短信状态:</span>
                    <el-radio-group v-model="status">
                        <el-radio :label="0">待审核</el-radio>
                        <el-radio :label="1">已审核</el-radio>
                    </el-radio-group>
                </div>
                <div class="btns">
                    <el-button type="primary" icon="el-icon-search">查询</el-button>
                    <el-button icon="el-icon-delete-solid">重置</el-button>
                </div>
            </div>
        </header>
        <main>
            <div class="main-content">
                <div class="main-title">
                    数据列表
                </div>
                <!-- 数据展示 -->
                <MyTable :tableOption="tableOption" :tableData="list" :pageShow="false">
                    <template #operation="info">
                        <el-link :underline="false" style="color:#4b9bb7">编辑</el-link>
                    </template>
                </MyTable>
            </div>
        </main>
        <footer>
        </footer>
    </div>
</template>
<script>
import MyTable from '@/components/Table'
import { myDownLoad } from '@/utils/helper'
import { createNamespacedHelpers } from "vuex";
const { mapActions } = createNamespacedHelpers("shortMessage");
export default {
    components: {
        MyTable,
    },
    data() {
        return {
            context: '',
            status:0,
            options: [
                {
                    value: 0,
                    label: '离线',
                },
                {
                    value: 1,
                    label: '在线',
                }
            ],
            list: [],
            current: 1,
            pageSize: 10,
            total:1,
            tableOption: {
                group: [
                    {
                        label: 'ID',
                        type: 'text',
                        prop: 'messageId',
                        'min-width':8
                    },
                    {
                        label: '短信标题',
                        type: 'text',
                        prop: 'latitude',
                        'min-width':12
                    },
                    {
                        label: '短信内容',
                        type: 'text',
                        prop: 'text',
                        'min-width':12
                    },
                    {
                        label: '短信签名',
                        type: 'text',
                        prop: 'ipAddress',
                        'min-width':10
                    },
                    {
                        label: '更新时间',
                        type: 'time',
                        prop: 'updateTime',
                        'min-width':12
                    },
                    {
                        label: '更新人',
                        type: 'text',
                        prop: 'updateUser',
                        'min-width':8
                    },
                    {
                        label: '操作',
                        type: 'operation',
                        prop: 'operation',
                        'min-width':15
                    },
                ]
            },
        }
    },
    created() {
        const { setTableData } = this;
        setTableData();
    },
    methods: {
        // 弹窗关闭
        handleClose(done) {
            this.$confirm('确认关闭?')
                .then(_ => {
                    done();
                })
        },
        ...mapActions(['getMessageList']),
        // 设置tableData
        async setTableData() {
            const { current, pageSize, context } = this;
            let arr = await this.getMessageList({
                current,pageSize,messageId:parseFloat(context)
            })
            this.list = arr.data.data.records
            this.total = arr.data.data.total
        },
    }
}
</script>
<style lang="scss" scoped>
.message {
    text-align: left;
    margin: 10px 20px;
    color: #4b9bb7;
    header {
        background-color: #09152f;
        border: 1pox solid #fff;
        .header-title{
            line-height: 40px;
            padding: 0 20px;
            border-bottom: 1px solid #4b9bb7;
        }
        .header-content {
            padding: 0 40px;
            display: flex;
            line-height: 100px;
            justify-content: space-between;
            align-items: center;
            .search {
                display: flex;
                justify-content: flex-start;
                span {
                    flex: 1;
                }
                .el-input {
                    flex: 2;
                    color: #1d3f57;
                    &::v-deep .el-input__inner {
                        background-color: #09152f;
                        border: 1px solid #17324c;
                    }
                }
            }
        }
    }
    main {
        background-color: #09152f;
        margin-top: 20px;
        padding-bottom: 50px;
        border: 1pox solid #fff;
        .main-title {
            line-height: 60px;
            padding: 10px 20px;
        }
        .tools {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 0 20px;
            .funs {
                display: flex;
                .funsItem {
                    line-height: 28px;
                    display: flex;
                    align-items: center;
                    border: 1px solid #17324c;
                    border-radius: 4px;
                    font-size: 12px;
                    margin-left: 10px;
                    .el-checkbox {
                        width: 80px;
                        padding: 0 10px;
                    }
                    .el-select {
                        width: 120px;
                    }
                    &::v-deep .el-input__inner {
                        border: none;
                        background-color: #09152f;
                    }
                    &:hover {
                        border: 1px solid #4b9bb7;
                    }
                    &:hover .el-checkbox {
                        color: #4b9bb7;
                    }
                }
            }
            .pagination {
                margin-top: 50px;
                display: flex;
                line-height: 50px;
                justify-content: center;
                .el-pagination {
                    &::v-deep li,
                    &::v-deep .btn-prev,
                    &::v-deep .btn-next {
                        background-color: #071f39;
                        color: #4b9bb7;
                    }
                    &::v-deep .active {
                        background-color: #409eff;
                        color: #fff;
                    }
                }
            }
        }
        .el-table {
            color: #4b9bb7;
            font-size: 10px;
            .operation {
                display: flex;
                .line {
                    padding: 0 5px;
                }
                span:hover {
                    cursor: pointer;
                }
            }
        }
    }
}
</style>
src/views/operate/management/mydetail/index.vue
File was deleted
src/views/operate/management/mysovle/index.vue
File was deleted
src/views/operate/message/myIndex/createUser/index.vue
@@ -238,6 +238,7 @@
                            sendTime: new Date(),
                            targetTo: checkedList.join(','),
                            targetFrom:`${role.targetFrom}`,
                            status:1,
                        }
                    })
                    .then(res=>{
src/views/operate/myWait/index.vue
@@ -25,14 +25,20 @@
                    </el-table-column>
                    <el-table-column prop="code" label="事件编号" min-width="10">
                    </el-table-column>
                    <el-table-column prop="category" label="问题小类" min-width="10">
                    </el-table-column>
                    <el-table-column prop="eventSource" label="问题描述" min-width="10">
                    <el-table-column prop="eventSource" label="问题来源" min-width="10">
                        <template slot-scope="scope">
                            <span>{{scope.row.eventSource===1 ? '违规': '违建'}}</span>
                            <span>{{scope.row.eventSource===1 ? '视频巡查': '人工上报'}}</span>
                        </template>
                    </el-table-column>
                    <el-table-column prop="category" label="问题类别" min-width="10">
                        <template slot-scope="scope">
                            <span>{{scope.row.category===1 ? '违规': '违建'}}</span>
                        </template>
                    </el-table-column>
                    <el-table-column prop="createTime" label="创建时间" min-width="10">
                        <template slot-scope="scope">
                            <span>{{changeTime(scope.row.createTime)}}</span>
                        </template>
                    </el-table-column>
                    <el-table-column prop="type" label="剩余时间" min-width="10">
                        <template slot-scope="scope">
@@ -91,6 +97,7 @@
import updateUser from "./updateUser"
import createUser from "./createUser"
import {computeTime} from '@/utils/helper'
import filterTime from '@/utils/mydate'
export default {
    components: {
        updateUser,createUser
@@ -266,8 +273,13 @@
        },
        // 计算时间
        getRestTime(time2){
            console.log(time2);
            return computeTime(time2);
        },
        // 改变日期格式
        changeTime(time){
            if(time){
                return filterTime(time);
            }
        }
    }
}
src/views/systemSetting/baseSetting/department/index.vue
@@ -57,11 +57,8 @@
          </el-table-column>
          <el-table-column prop="departDes" label="部门描述" min-width="30">
          </el-table-column>
          <!-- <el-table-column prop="createTime" label="创建时间" min-width="10">
                    </el-table-column> -->
          <el-table-column prop="status" label="启用" min-width="5">
            <template slot-scope="scope">
              <!-- @change="handleChangeStatus(scope.row)" -->
              <el-switch
                class="switchStyle"
                v-model="scope.row.status"
src/views/systemSetting/baseSetting/role/index.vue
@@ -13,7 +13,7 @@
                    <el-button class="addBtn" type="primary" @click="dialogCreate = true">新建角色</el-button>
                    <el-dialog :visible.sync="dialogCreate" title="新增角色" width="45%" v-if="dialogCreate"
                        :before-close="handleClose2">
                        <createUser :refresh="context==='' ? getUserList : search" />
                        <createUser :refresh="context==='' ? getRoleList : search" />
                    </el-dialog>
                </div>
            </div>
@@ -27,20 +27,14 @@
                    @selection-change="tableChange">
                    <el-table-column type="selection" min-width="5">
                    </el-table-column>
                    <!-- <el-table-column label="用户ID" min-width="5">
                        <template slot-scope="scope">{{ scope.row.id }}</template>
                    </el-table-column> -->
                    <el-table-column prop="name" label="角色名称" min-width="10">
                    </el-table-column>
                    <el-table-column prop="typeText" label="角色类型" min-width="10">
                    </el-table-column>
                    <!-- <el-table-column prop="adminCount" label="默认角色" min-width="10">
                    </el-table-column> -->
                    <el-table-column prop="description" label="备注" min-width="10">
                    </el-table-column>
                    <el-table-column prop="status" label="启用" min-width="5">
                        <template slot-scope="scope">
                            <!-- active-text="开" inactive-text="关" -->
                            <el-switch class="switchStyle" v-model="scope.row.status" 
                                active-color="#3fef9a" inactive-color="#000212" disabled>
                            </el-switch>
@@ -49,11 +43,8 @@
                    <el-table-column prop="operation" label="操作" min-width="15">
                        <template slot-scope="scope">
                            <div class="operation">
                                <!-- <span @click="handleChangeRole(scope.row)">修改角色</span> -->
                                <span @click="handleFind(scope.row)">查看</span>
                                <span class="line">|</span>
                                <!-- <span>修改密码</span> -->
                                <!-- <span>删除</span> -->
                                <span @click="handleUpdate(scope.row)">权限设置</span>
                                <span class="line">|</span>
                                <span @click="handleChangeStatus(scope.row)">{{scope.row.status === true ?'停用':'启用' }}</span>
@@ -62,25 +53,25 @@
                            </div>
                        </template>
                    </el-table-column>
                </el-table>
                </el-table>
                <!-- 修改页面 -->
                <el-dialog :visible.sync="dialogUpdate" width="45%" :title="updateFlag ? '权限设置' :'查看角色信息'"
                    v-if="dialogUpdate" :before-close="handleClose">
                    <updateUser :updateFlag="updateFlag" :userInfo=userInfo
                        :getUserList=" context ? getUserList : getUserList" @changeDialog="changeDialog" />
                        :getRoleList=" context ? getRoleList : getRoleList" @changeDialog="changeDialog" />
                </el-dialog>
                <!-- 查看页面 -->
                <el-dialog :visible.sync="dialogView" width="45%" title="查看角色信息"
                    v-if="dialogView" :before-close="handleClose">
                <el-dialog :visible.sync="dialogView" width="45%" title="查看角色信息" v-if="dialogView"
                    :before-close="handleClose">
                    <MyView :userInfo=userInfo @changeDialog="changeDialog" />
                </el-dialog>
                <!-- tools -->
                <div class="tools">
                    <div class="funs">
                        <!-- <div class="funsItem">
                         <div class="funsItem funs-sp">
                            <el-checkbox v-model="all" @change="selectAll()">全选</el-checkbox>
                        </div>
                        <div class="funsItem">
                        <div class="funsItem funs-sp">
                            <el-checkbox v-model="unsame" @change="disSame(tableData)">反选</el-checkbox>
                        </div>
                        <div class="funsItem">
@@ -89,7 +80,7 @@
                                    :value="item.value" :disabled="item.disabled">
                                </el-option>
                            </el-select>
                        </div> -->
                        </div>
                    </div>
                    <div class="pagination">
                        <el-pagination background :current-page="currentPage" layout="prev, pager, next"
@@ -107,9 +98,10 @@
import updateUser from "./updateUser"
import helper from "@/utils/mydate.js"
import MyView from './viewRole'
import MyTable from '@/components/Table'
export default {
    components: {
        createUser, updateUser,MyView
        createUser, updateUser, MyView, MyTable
    },
    data() {
        return {
@@ -117,7 +109,7 @@
            context: "",
            dialogCreate: false,
            dialogUpdate: false,
            dialogView:false,
            dialogView: false,
            updateFlag: false,
            userInfo: '',
            totalNum: null,
@@ -146,11 +138,11 @@
                    label: '批量删除',
                }
            ],
            tempList: []
            tempList: [],
        }
    },
    created() {
        this.getUserList();
        this.getRoleList();
    },
    methods: {
        async selectChange(list) {
@@ -186,7 +178,7 @@
                                    type: 'success',
                                    message: '更改用户状态成功',
                                })
                                this.getUserList();
                                this.getRoleList();
                            } else {
                                this.$message({
                                    type: 'error',
@@ -239,7 +231,7 @@
                                message: res.message
                            })
                            this.getUserList();
                            this.getRoleList();
                        })
                })
                .catch(_ => { });
@@ -255,14 +247,13 @@
            let { id, status } = obj;
            status == true ? status = 0 : status = 1;
            this.$axios.post(`/sccg/role/updateStatus/` + id + '?status=' + status).then(res => {
                if(res.code ===200){
                if (res.code === 200) {
                    this.search();
                }
            })
        },
        // 获取用户列表
        getUserList() {
            const that = this;
        getRoleList() {
            this.dialogCreate = false;
            // 获取所有用户信息
            this.$axios.get('sccg/role/listAll').then(res => {
@@ -337,26 +328,26 @@
            this.currentPage = page;
            this.search();
        },
        changeDialog({flag}) {
        changeDialog({ flag }) {
            this.dialogUpdate = flag;
            this.dialogCreate = flag;
            this.dialogView = flag;
        },
        handleClose(done) {
            if(this.updateFlag){
            if (this.updateFlag) {
                this.$confirm('确认关闭?')
                .then(_ => {
                    this.dialogUpdate = false;
                    this.dialogCreate = false;
                    this.updateFlag = false;
                    done();
                })
                .catch(_ => { });
            }else{
                    .then(_ => {
                        this.dialogUpdate = false;
                        this.dialogCreate = false;
                        this.updateFlag = false;
                        done();
                    })
                    .catch(_ => { });
            } else {
                done();
            }
        },
        handleClose2(done){
        handleClose2(done) {
            this.$confirm('确认关闭?')
                .then(_ => {
                    done();
@@ -440,7 +431,9 @@
            justify-content: space-between;
            align-items: center;
            padding: 0 20px;
            .funs-sp{
                border: 1px solid #17324c;
            }
            .funs {
                display: flex;
@@ -448,7 +441,6 @@
                    line-height: 28px;
                    display: flex;
                    align-items: center;
                    border: 1px solid #17324c;
                    border-radius: 4px;
                    font-size: 12px;
                    margin-left: 10px;
@@ -504,6 +496,7 @@
        .el-table {
            color: #4b9bb7;
            font-size: 10px;
            .operation {
                display: flex;
@@ -516,6 +509,7 @@
                }
            }
        }
        // &::v-deep .switchStyle .el-switch__label {
        //     position: absolute;
        //     display: none;
src/views/systemSetting/baseSetting/user/components/main/index.vue
@@ -55,9 +55,14 @@
                    </template>
                </el-table-column>
            </el-table>
            <!-- 查看修改页面 -->
            <!-- 查看页面 -->
            <el-dialog :visible.sync="dialogView" width="45%" v-if="dialogView"
                title="查看用户信息">
                <MyView :userInfo=userInfo></MyView>
            </el-dialog>
            <!-- 修改页面 -->
            <el-dialog :visible.sync="dialogUpdate" width="45%" v-if="dialogUpdate"
                :title="updateFlag ? flag.role ? '修改用户角色信息' : flag.depart ? '修改用户部门信息': '修改用户密码' :'查看用户信息'"
                :title="updateFlag ? flag.role ? '修改用户角色信息' : flag.depart ? '修改用户部门信息': '修改用户密码' :''"
                :before-close="handleClose">
                <updateUser :updateFlag="updateFlag" :userInfo=userInfo :flag=flag @closeDialog="closeDialog"
                    :getUserList="getUserList" v-if="!flag.password" />
@@ -94,15 +99,17 @@
import helper from '@/utils/mydate'
import updateUser from '../updateUser';
import MyPwd from '../password'
import MyView from '../myView'
export default {
    components: {
        updateUser, MyPwd
        updateUser, MyPwd,MyView
    },
    data() {
        return {
            tableData: [],
            search: "",
            dialogUpdate: false,
            dialogView:false,
            updateFlag: false,
            userInfo: '',
            totalNum: 200,
@@ -327,13 +334,8 @@
        },
        // 查看用户信息(不可修改)
        handleFind(rowData) {
            this.dialogUpdate = true;
            this.updateFlag = false;
            this.dialogView = true;
            this.userInfo = rowData;
            const { flag } = this;
            for (let key in flag) {
                flag[key] = false;
            }
        },
        // 设置表格斑马纹
        tableRowClassName({ row, rowIndex }) {
src/views/systemSetting/baseSetting/user/components/myView/index.vue
New file
@@ -0,0 +1,202 @@
<template>
    <div class="updateUser">
        <main>
            <div class="mainContent">
                <el-form ref="user" label-width="140px" autoComplete="on" :model="user" :rules="createUserRules"
                    label-position="right">
                    <!-- 用户名称 -->
                    <el-form-item class="optionItem" label="用户名称:" prop="username">
                        <el-input v-model="user.username" placeholder="填写用户名称" disabled></el-input>
                    </el-form-item>
                    <!-- 用户密码 -->
                    <el-form-item class="optionItems" label="用户密码:" prop="password">
                        <el-input v-model="user.password" type="password" placeholder="请输入用户密码" disabled>
                        </el-input>
                    </el-form-item>
                    <!-- 所属用户姓名 -->
                    <el-form-item class="optionItem" label="所属用户姓名:" prop="nickName">
                        <el-input v-model="user.nickName" placeholder="请填写用户姓名" disabled></el-input>
                    </el-form-item>
                    <!-- 性别 -->
                    <el-form-item class="optionItem" label="性别:" prop="sex">
                        <el-radio-group v-model="user.sex" disabled>
                            <el-radio :label="1">男</el-radio>
                            <el-radio :label="0">女</el-radio>
                        </el-radio-group>
                    </el-form-item>
                    <!-- 是否党员 -->
                    <el-form-item class="optionItem" label="是否党员:" prop="isDy">
                        <el-radio-group v-model="user.isDy" disabled>
                            <el-radio :label="1">是</el-radio>
                            <el-radio :label="0">否</el-radio>
                        </el-radio-group>
                    </el-form-item>
                    <!-- 所属手机号码 -->
                    <el-form-item class="optionItem" label="所属手机号码:" prop="mobile">
                        <el-input v-model="user.mobile" placeholder="请填写手机号码" disabled></el-input>
                    </el-form-item>
                    <!-- 邮箱地址 -->
                    <el-form-item class="optionItem" label="邮箱地址:" prop="email">
                        <el-input v-model="user.email" placeholder="请填写邮箱地址" disabled></el-input>
                    </el-form-item>
                    <!-- 选择角色 -->
                    <el-form-item class="optionItem" label="选择角色:" prop="role">
                        <el-select v-model="user.role" placeholder="请选择所属角色" multiple collapse-tags
                        disabled>
                            <el-option v-for="item in roleList" :key="item.id" :label="item.name" :value="item.id">
                            </el-option>
                        </el-select>
                    </el-form-item>
                    <!-- 用户类型 -->
                    <el-form-item class="optionItem" label="用户类型:" prop="userType">
                        <el-select v-model="user.userType" placeholder="请选择用户类型" disabled>
                            <el-option v-for="item in typeList" :key="item.id" :label="item.name" :value="item.id">
                            </el-option>
                        </el-select>
                    </el-form-item>
                    <!-- 所属部门 -->
                    <el-form-item class="optionItem" label="所属部门:" prop="departmentId">
                        <el-input  v-model="user.departName"></el-input>
                    </el-form-item>
                    <!-- 当前职务 -->
                    <el-form-item class="optionItem" label="当前职务:" prop="jobTitle">
                        <el-input v-model="user.jobTitle" placeholder="请输入当前职务" disabled></el-input>
                    </el-form-item>
                    <!-- 填写所属mac地址 -->
                    <el-form-item class="optionItem" label="填写所属mac地址:" prop="mac">
                        <el-input v-model="user.mac" placeholder="请填写所属mac地址" disabled></el-input>
                    </el-form-item>
                    <!-- 填写所属ip地址 -->
                    <el-form-item class="optionItem" label="填写所属ip地址:" prop="ip">
                        <el-input v-model="user.ip" placeholder="请填写所属ip地址" disabled></el-input>
                    </el-form-item>
                </el-form>
            </div>
        </main>
    </div>
</template>
<script>
export default {
    data() {
        return {
            user: {
            },
            createUserRules: {
            },
            roleList: [
            ],
            typeList: [],
            departList: [],
        }
    },
    created() {
        const that = this;
        this.user = JSON.parse(JSON.stringify(that.userInfo));
        this.user.departName  = this.user.departName ? this.user.departName : '暂无所属部门'
        // 获取所有角色列表
        this.getRoleList();
        // 获取当前用户角色列表
        this.getUserRole(this.user.id)
        // 获取全部部门列表
        this.$axios.get('/sccg/depart/tree').then(res => {
            this.departList = res.data;
        })
    },
    methods: {
        // 获取角色列表
        getRoleList() {
            this.$axios({
                method: 'get',
                url: 'sccg/role/listAll',
            })
                .then(res => {
                    this.roleList = res.data;
                })
        },
        // 获取用户的角色列表
        getUserRole(id) {
            this.$axios({
                method: 'get',
                url: `sccg/admin/role/${id}`
            })
                .then(res => {
                    const arr = [];
                    res.data.forEach(item => {
                        arr.push(item.id);
                    })
                    this.user.role = arr;
                })
        },
    },
    props: ['userInfo']
}
</script>
<style lang="scss" scoped>
.updateUser {
    border-radius: 1px;
    background-color: #09152f;
    :deep(.el-tag) {
        background-color: #09152f;
    }
    .el-select-dropdown.is-multiple .el-select-dropdown__item.selected {
        background-color: #09152f;
        color: #4b9bb7;
    }
    main {
        text-align: left;
        padding: 0 55px;
        background-color: #09152f;
        padding-bottom: 50px;
        .mainContent {
            display: flex;
            justify-content: center;
            padding-top: 50px;
            .el-form-item__content {
                width: 400px;
                .el-select {
                    width: 100%;
                }
            }
            .optionHandleSp {
                display: flex;
                .areaNumber,
                .moreNumber {
                    flex: 1;
                }
                .telNumber {
                    flex: 2;
                }
            }
            .optionBtn {
                display: flex;
                margin-top: 20px;
                .btn {
                    padding: 12px 50px;
                }
            }
        }
    }
}
.updateUser::v-deep .el-form-item__label {
    color: #4b9bb7;
}
.updateUser::v-deep .el-input__inner {
    background-color: #09152f;
    border: 1px solid #17324c;
}
</style>
src/views/systemSetting/baseSetting/user/components/updateUser/index.vue
@@ -4,94 +4,25 @@
            <div class="mainContent">
                <el-form ref="user" label-width="140px" autoComplete="on" :model="user" :rules="createUserRules"
                    label-position="right">
                    <!-- 用户名称 -->
                    <el-form-item class="optionItem" label="用户名称:" prop="username">
                        <el-input v-model="user.username" placeholder="填写用户名称" :disabled="true"></el-input>
                    </el-form-item>
                    <!-- 用户密码 -->
                    <el-form-item class="optionItems" label="用户密码:" prop="password">
                        <el-input v-model="user.password" type="password" placeholder="请输入用户密码" disabled>
                        </el-input>
                    </el-form-item>
                    <!-- 所属用户姓名 -->
                    <!-- <el-form-item class="optionItem" label="所属用户姓名:" prop="true_name">
                        <el-input v-model="user.true_name" placeholder="请填写用户姓名"></el-input>
                    </el-form-item> -->
                    <!-- 性别 -->
                    <el-form-item class="optionItem" label="性别:" prop="sex">
                        <el-radio-group v-model="user.sex" :disabled="!flag.role">
                            <el-radio :label="1">男</el-radio>
                            <el-radio :label="0">女</el-radio>
                        </el-radio-group>
                    </el-form-item>
                    <!-- 是否党员 -->
                    <el-form-item class="optionItem" label="是否党员:" prop="isDy">
                        <el-radio-group v-model="user.isDy" disabled>
                            <el-radio :label="1">是</el-radio>
                            <el-radio :label="0">否</el-radio>
                        </el-radio-group>
                    </el-form-item>
                    <!-- 所属手机号码 -->
                    <el-form-item class="optionItem" label="所属手机号码:" prop="mobile">
                        <el-input v-model="user.mobile" placeholder="请填写手机号码" :disabled="true"></el-input>
                    </el-form-item>
                    <!-- 邮箱地址 -->
                    <el-form-item class="optionItem" label="邮箱地址:" prop="email">
                        <el-input v-model="user.email" placeholder="请填写邮箱地址" :disabled="true"></el-input>
                    </el-form-item>
                    <!-- 选择角色 -->
                    <el-form-item class="optionItem" label="选择角色:" prop="role">
                        <el-select v-model="user.role" placeholder="请选择所属角色" multiple collapse-tags
                            @change="handleChangeRole" :disabled="!flag.role">
                    <el-form-item class="optionItem" label="选择角色:" prop="role" v-if="flag.role">
                        <el-select v-model="user.role" placeholder="请选择所属角色" multiple collapse-tags>
                            <el-option v-for="item in roleList" :key="item.id" :label="item.name" :value="item.id">
                            </el-option>
                        </el-select>
                        <!-- <el-select v-model="user.role" placeholder="请选择所属角色" :disabled="!flag.role">
                            <el-option v-for="item in roleList" :key="item.id" :label="item.name" :value="item.id"
                                :disabled="item.disabled">
                            </el-option>
                        </el-select> -->
                    </el-form-item>
                    <!-- 用户类型 -->
                    <el-form-item class="optionItem" label="用户类型:" prop="userType">
                        <el-select v-model="user.userType" placeholder="请选择用户类型" disabled>
                            <el-option v-for="item in typeList" :key="item.id" :label="item.name" :value="item.id">
                            </el-option>
                        </el-select>
                    </el-form-item>
                    <!-- 座机/分机 -->
                    <!-- <el-form-item class="optionItem" label="座机/分机:" prop="zj">
                        <div class="optionHandleSp">
                            <el-input class="areaNumber" v-model="user.zj.areaNumber" placeholder="电话区号">
                            </el-input>
                            <el-input class="telNumber" v-model="user.zj.phoneNumber" placeholder="电话号码">
                            </el-input>
                            <el-input class="moreNumber" v-model="user.zj.moreNumber" placeholder="分机号码">
                            </el-input>
                        </div>
                    </el-form-item> -->
                    <!-- 所属部门 -->
                    <el-form-item class="optionItem" label="所属部门:" prop="departmentId">
                        <el-select v-model="user.departmentId" placeholder="请选择所属部门" :disabled="!flag.depart"
                            @change="changeDepart">
                            <el-option v-for="item in departList" :key="item.id" :label="item.departName"
                                :value="item.id">
                    <el-form-item class="optionItem" label="所属部门:" prop="departmentId" v-else>
                        <el-select v-model="user.departName" placeholder="请选择所属部门" :disabled="!flag.depart">
                            <el-option :value="mylabel">
                                <el-tree ref="tree" :check-strictly="true" :data="departList" :props="defaultProps"
                                    show-checkbox @check-change="handleCheck"
                                    :default-checked-keys="[selectOrg.orgsid[0],]" default-expand-all node-key="id">
                                </el-tree>
                            </el-option>
                        </el-select>
                    </el-form-item>
                    <!-- 当前职务 -->
                    <el-form-item class="optionItem" label="当前职务:" prop="jobTitle">
                        <el-input v-model="user.jobTitle" placeholder="请输入当前职务" :disabled="true"></el-input>
                    </el-form-item>
                    <!-- 填写所属mac地址 -->
                    <el-form-item class="optionItem" label="填写所属mac地址:" prop="mac">
                        <el-input v-model="user.mac" placeholder="请填写所属mac地址" disabled></el-input>
                    </el-form-item>
                    <!-- 填写所属ip地址 -->
                    <el-form-item class="optionItem" label="填写所属ip地址:" prop="ip">
                        <el-input v-model="user.ip" placeholder="请填写所属ip地址" disabled></el-input>
                    </el-form-item>
                    <el-form-item v-if="updateFlag">
                    <el-form-item>
                        <div class="optionBtn">
                            <el-button type="primary" class="btn submit" @click.native.prevent="handleUser">提交
                            </el-button>
@@ -106,194 +37,43 @@
<script>
export default {
    data() {
        const validateNickname = (rule, value, callback) => {
            if (!value) {
                callback(new Error("请填写用户名称"));
            } else {
                callback();
            }
        };
        const validatePass = (rule, value, callback) => {
            if (!value) {
                callback(new Error("请填写登录密码"));
            } else {
                callback();
                // const rep = /^\w+$/;
                // if (!rep.test(value)) {
                //     callback(new Error("密码只能是以数字、26个英文字母或者下划线组成的字符串"));
                // } else {
                //     callback();
                // }
            }
        };
        const validateTruename = (rule, value, callback) => {
            if (!value) {
                callback(new Error("请填写用户姓名"));
            } else {
                callback();
                // const rep = /^[\u4E00-\u9FA5]{2,4}$/;
                // if (!rep.test(value)) {
                //     callback("请输入正确的用户姓名");
                // } else {
                //     callback();
                // }
            }
        };
        const validatePhone = (rule, value, callback) => {
            if (!value) {
                callback(new Error("请填写手机号码"));
            } else {
                const rep = /(^1[3|4|5|7|8|9]\d{9}$)|(^09\d{8}$)/
                if (!rep.test(value)) {
                    callback("请输入正确的手机号码");
                } else {
                    callback();
                }
            }
        };
        const validateMail = (rule, value, callback) => {
            if (value) {
                const rep = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
                if (!rep.test(value)) {
                    callback(new Error("请输入正确的邮箱"))
                } else {
                    callback();
                }
            } else {
                callback();
            }
        };
        // const validateRole = (rule, value, callback) => {
        //     console.log(value);
        //     if (!value) {
        //         callback(new Error("请选择用户角色"));
        //     } else {
        //         callback();
        //     }
        // };
        const validateType = (rule, value, callback) => {
            if (!value && value !== 0) {
                callback(new Error("请选择用户类型"));
            } else {
                callback();
            }
        };
        const validateDepartment = (rule, value, callback) => {
            if (!value && value !== 0) {
                callback(new Error("请选择所属部门"));
            } else {
                callback();
            }
        };
        const validateWork = (rule, value, callback) => {
            if (!value) {
                callback(new Error("请填写当前职务"));
            } else {
                callback();
            }
        };
        const validateMac = (rule, value, callback) => {
            if (!value) {
                callback();
            } else {
                callback();
            }
        };
        const validateIp = (rule, value, callback) => {
            if (!value) {
                callback();
            } else {
                callback();
            }
        };
        return {
            user: {
                nickName: '',
                password: '',
                username: '',
                sex: 1,
                isDy: 1,
                mobile: '',
                email: '',
                // role: null,
                userType: null,
                zj: {
                    areaNumber: '',
                    phoneNumber: "",
                    moreNumber: "",
                },
                // departmentId: null,
                // jobTitle: null,
                mac: '',
                ip: '',
            },
            createUserRules: {
                nickName: [
                    { required: true, trigger: "blur", validator: validateNickname },
                ],
                password: [
                    { required: true, trigger: "blur", validator: validatePass },
                ],
                username: [
                    { required: true, trigger: "blur", validator: validateTruename },
                ],
                sex: [
                    { required: true, trigger: "blur" },
                ],
                isDy: [
                    { required: true, trigger: "blur" },
                ],
                mobile: [
                    { required: true, trigger: "blur", validator: validatePhone },
                ],
                email: [
                    { required: false, trigger: "blur", validator: validateMail },
                ],
                // role: [
                //     { required: true, trigger: "change", validator: validateRole },
                // ],
                userType: [
                    { required: true, trigger: "change", validator: validateType },
                ],
                zj: [
                    { required: false, trigger: "blur" },
                ],
                departmentId: [
                    { required: true, trigger: "change", validator: validateDepartment },
                ],
                jobTitle: [
                    { required: true, trigger: "blur", validator: validateWork },
                ],
                // mac: [
                //     { required: false, trigger: "blur", validator: validateMac },
                // ],
                // ip: [
                //     { required: false, trigger: "blur", validator: validateIp },
                // ],
            },
            roleList: [
                { name: '角色1', value: 1 }, { name: '角色2', value: 2 }
            ],
            typeList: [],
            departList: []
            departList: [],
            mylabel: "",
            defaultProps: {
                children: "children",
                label: "departName",
            },
            selectOrg: {
                orgsid: [],
            },
            tempName: '',
            tempRole: []
        }
    },
    created() {
        const that = this;
        this.user = JSON.parse(JSON.stringify(that.userInfo));
        console.log(this.user);
        this.user = JSON.parse(JSON.stringify(this.userInfo));
        this.tempName = this.user.departName;
        this.selectOrg.orgsid.push(this.user.departmentId);
        // 获取所有角色列表
        this.getRoleList();
        // 获取当前用户角色列表
        this.getUserRole(this.user.id)
        // 获取全部部门列表
        this.$axios.get('sccg/depart/page').then(res => {
            that.departList = res.data.records;
        this.$axios.get('/sccg/depart/tree').then(res => {
            this.departList = res.data;
        })
    },
    methods: {
        // 修改部门
        changeDepart(data) {
            console.log(data);
            this.departList.forEach(item => {
                if (item.id === data) {
                    this.user.departName = item.departName;
@@ -302,60 +82,87 @@
        },
        // 修改用户信息
        handleUser() {
            const { depart, role } = this.flag;
            const { flag, user, tempName, selectOrg, tempRole, isArraySame } = this;
            this.$refs.user.validate((valid) => {
                if (valid) {
                    const { user } = this;
                    user.isDy = `${user.isDy}`;
                    if (depart) {
                        console.log(this.user);
                        this.$axios({
                            method: 'post',
                            url: `sccg/admin/update/${user.id}`,
                            data: {
                                "id": user.id,
                                "username": user.username,
                                "password": user.password,
                                "icon": user.icon,
                                "email": user.email,
                                "nickName": user.nickName,
                                "note": user.note,
                                "createTime": user.createTime,
                                "loginTime": user.loginTime,
                                "status": user.status ? 1 : 0,
                                "macAddress": user.macAddress,
                                "ipAddress": user.ipAddress,
                                "isDy": `${user.isDy}`,
                                "sex": `${user.sex}`,
                                "jobTitle": user.jobTitle,
                                "departmentId": user.departmentId,
                                "departName": user.departName,
                                "userType": user.userType,
                                "zj": user.zj,
                                "mobile": user.mobile,
                    if (flag.depart) {
                        if (tempName === user.departName) {
                            this.$message({
                                type: 'warning',
                                message: '您的部门还未更改'
                            })
                        } else {
                            if (user.departName) {
                                this.$axios({
                                    method: 'post',
                                    url: `sccg/admin/update/${user.id}`,
                                    data: {
                                        "id": user.id,
                                        "username": user.username,
                                        "password": user.password,
                                        "icon": user.icon,
                                        "email": user.email,
                                        "nickName": user.nickName,
                                        "note": user.note,
                                        "createTime": user.createTime,
                                        "loginTime": user.loginTime,
                                        "status": user.status ? 1 : 0,
                                        "macAddress": user.macAddress,
                                        "ipAddress": user.ipAddress,
                                        "isDy": `${user.isDy}`,
                                        "sex": `${user.sex}`,
                                        "jobTitle": user.jobTitle,
                                        "departmentId": selectOrg.orgsid[0],
                                        "departName": user.departName,
                                        "userType": user.userType,
                                        "zj": user.zj,
                                        "mobile": user.mobile,
                                    }
                                })
                                    .then(res => {
                                        this.$message({
                                            type: res.code === 200 ? 'success' : 'warning',
                                            message: res.message,
                                        })
                                        this.getUserList();
                                        this.$emit('closeDialog', { flag: false });
                                    })
                            } else {
                                this.$message({
                                    type: 'warning',
                                    message: '用户部门不能为空'
                                })
                            }
                        })
                            .then(res => {
                                this.$message({
                                    type: res.code === 200 ? 'success' : 'warning',
                                    message: res.message,
                                })
                                this.getUserList();
                                this.$emit('closeDialog', { flag: false });
                            })
                        }
                    } else {
                        this.$axios({
                            method: 'post',
                            url: 'sccg/admin/role/update?adminId=' + user.id + '&roleIds=' + user.role,
                        })
                            .then(res => {
                                this.$message({
                                    type: res.code === 200 ? 'success' : 'warning',
                                    message: res.message,
                                })
                                this.getUserList();
                                this.$emit('closeDialog', { flag: false });
                        if (user.role.length === 0) {
                            this.$message({
                                type: 'warning',
                                message: '用户角色不能为空',
                            })
                        }
                        else if (isArraySame(tempRole, user.role) && tempRole.length === user.role.length) {
                            this.$message({
                                type: 'warning',
                                message: '您还未更改角色',
                            })
                        }
                        else {
                            this.$axios({
                                method: 'post',
                                url: 'sccg/admin/role/update?adminId=' + user.id + '&roleIds=' + user.role,
                            })
                                .then(res => {
                                    this.$message({
                                        type: res.code === 200 ? 'success' : 'warning',
                                        message: res.message,
                                    })
                                    this.getUserList();
                                    this.$emit('closeDialog', { flag: false });
                                })
                        }
                    }
                } else {
                    return false;
@@ -372,11 +179,6 @@
                    this.roleList = res.data;
                })
        },
        // 改变用户角色
        handleChangeRole(data) {
            console.log(this.user.role);
            // console.log(data);
        },
        // 获取用户的角色列表
        getUserRole(id) {
            this.$axios({
@@ -384,16 +186,59 @@
                url: `sccg/admin/role/${id}`
            })
                .then(res => {
                    console.log(res);
                    const arr = [];
                    res.data.forEach(item => {
                        arr.push(item.id);
                    })
                    this.user.role = arr;
                    this.tempRole = arr;
                })
        },
        // 部门修改
        handleCheck(data, checked) {
            this.user.departName = data.departName;
            // 获取当前选择的id在数组中的索引
            const indexs = this.selectOrg.orgsid.indexOf(data.id);
            // 如果不存在数组中,并且数组中已经有一个id并且checked为true的时候,代表不能再次选择。
            if (indexs < 0 && this.selectOrg.orgsid.length === 1 && checked) {
                this.$message({
                    message: "只能选择一个部门!",
                    type: "warning",
                    showClose: true,
                });
                // 设置已选择的节点为false 很重要
                this.$refs.tree.setChecked(data, false);
            } else if (this.selectOrg.orgsid.length === 0 && checked) {
                // 发现数组为空 并且是已选择
                // 防止数组有值,首先清空,再push
                this.selectOrg.orgsid = [];
                this.selectOrg.orgsid.push(data.id);
            } else if (
                indexs >= 0 &&
                this.selectOrg.orgsid.length === 1 &&
                !checked
            ) {
                // 再次直接进行赋值为空操作
                this.selectOrg.orgsid = [];
                this.user.departName = ''
            }
        },
        // 判断数组是否相等
        isArraySame(arr1, arr2) {
            let flag = true
            arr1.sort((a, b) => a - b)
            arr2.sort((a, b) => a - b)
            arr1.forEach(item => {
                arr2.forEach(child => {
                    if (item !== child) {
                        flag = false
                    }
                })
            })
            return flag
        }
    },
    props: ['userInfo', 'updateFlag', 'flag', 'closeDialog', 'getUserList']
    props: ['userInfo', 'flag', 'closeDialog', 'getUserList']
}
</script>
<style lang="scss" scoped>
@@ -409,6 +254,7 @@
        background-color: #09152f;
        color: #4b9bb7;
    }
    main {
        text-align: left;
        padding: 0 55px;
src/views/systemSetting/device/bayonet/create/index.vue
@@ -89,14 +89,14 @@
    data() {
        return {
            bayonet: {
                name: '',
                bayonetName: '',
                latitude: '',
                longitude: '',
                area: '',
                domainName: '',
                ipAddress: '',
                port: '',
                webType: '',
                cityType: '',
                frontEndType: '',
                inOutCityType: '',
                description: '',
            },
            rules: {
src/views/systemSetting/device/bayonet/index.vue
@@ -8,7 +8,6 @@
                        <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
                        </el-option>
                    </el-select>
                    <!-- <el-input placeholder="请输入内容" v-model="context"></el-input> -->
                </div>
            </div>
        </header>
@@ -16,90 +15,41 @@
            <div class="main-content">
                <div class="main-title">
                    <el-button class="el-icon-plus" type="primary" @click="dialogCreate = true">添加</el-button>
                    <el-button class="">导出卡口</el-button>
                    <el-button @click="handleExport">导出卡口</el-button>
                </div>
                <!-- 数据展示 -->
                <el-table ref="multipleTable"
                    :header-cell-style="{background:'#06122c','font-size':'12px',color:'#4b9bb7','font-weight':'650','line-height':'45px'}"
                    :data="tableData" style="width: 100%" :row-class-name="tableRowClassName"
                    @selection-change="tableChange">
                    <el-table-column type="selection" min-width="5">
                    </el-table-column>
                    <el-table-column prop="name" label="卡口名称" min-width="10">
                    </el-table-column>
                    <el-table-column prop="sort" label="经纬度位置" min-width="10">
                    </el-table-column>
                    <el-table-column prop="adminCount" label="所属区域" min-width="10">
                    </el-table-column>
                    <el-table-column prop="description" label="域名/IP" min-width="10">
                    </el-table-column>
                    <el-table-column prop="description" label="端口号" min-width="10">
                    </el-table-column>
                    <el-table-column prop="description" label="前端类型" min-width="10">
                    </el-table-column>
                    <el-table-column prop="description" label="出入城类型" min-width="10">
                    </el-table-column>
                    <el-table-column prop="operation" label="操作" min-width="15">
                        <template slot-scope="scope">
                            <div class="operation">
                                <span>编辑</span>
                            </div>
                        </template>
                    </el-table-column>
                </el-table>
                <!-- tools -->
                <!-- <div class="tools">
                    <div class="funs">
                        <div class="funsItem">
                            <el-checkbox v-model="all" @change="selectAll()">全选</el-checkbox>
                        </div>
                        <div class="funsItem">
                            <el-checkbox v-model="unsame" @change="disSame(tableData)">反选</el-checkbox>
                        </div>
                        <div class="funsItem">
                            <el-select v-model="myIdx" placeholder="批量操作" @change="selectChange">
                                <el-option v-for="item in options" :key="item.value" :label="item.label"
                                    :value="item.value" :disabled="item.disabled">
                                </el-option>
                            </el-select>
                        </div>
                    </div>
                    <div class="pagination">
                        <el-pagination background :current-page="currentPage" layout="prev, pager, next"
                            :total="totalNum" :page-size="pageSize" @current-change="changeCurrentPage"
                            @prev-click="handlePrev" @next-click="handleNext">
                        </el-pagination>
                    </div>
                </div> -->
                <MyTable
                    :tableOption="tableOption"
                    :tableData="list"
                    :pageShow="false">
                    <template #operation="info">
                        <el-link :underline="false" style="color:#4b9bb7">编辑</el-link>
                    </template>
                </MyTable>
            </div>
        </main>
        <footer>
            <!-- 添加卡口 -->
            <el-dialog title="添加卡口" :visible.sync="dialogCreate" width="60%" :before-close="handleClose">
                <MyCreate></MyCreate>
                <MyCreate :addBayonet="addBayonet"></MyCreate>
            </el-dialog>
        </footer>
    </div>
</template>
<script>
import helper from "@/utils/mydate.js"
import MyCreate from './create'
import MyTable from '@/components/Table'
import {myDownLoad} from '@/utils/helper'
import { createNamespacedHelpers } from "vuex";
const { mapActions } = createNamespacedHelpers("bayonet");
export default {
    components: {
        MyCreate
        MyCreate, MyTable,
    },
    data() {
        return {
            tableData: [],
            context: 0,
            dialogCreate: false,
            totalNum: null,
            pageSize: 10,
            currentPage: 1,
            all: false,
            unsame: false,
            myIdx: 0,
            preMyIdx: 0,
            context: 0,
            options: [
                {
                    value: 0,
@@ -110,131 +60,85 @@
                    label: '在线',
                }
            ],
            tempList: []
            list: [],
            current: 1,
            size: 10,
            tableOption: {
                group: [
                    {
                        label: '卡口名称',
                        type: 'text',
                        prop: 'bayonetName',
                    },
                    {
                        label: '经纬度位置',
                        type: 'text',
                        prop: 'latitude',
                    },
                    // {
                    //     label: '所属区域',
                    //     type: 'text',
                    //     prop: '',
                    // },
                    {
                        label: '域名/IP',
                        type: 'text',
                        prop: 'ipAddress',
                    },
                    {
                        label: '端口号',
                        type: 'text',
                        prop: 'port',
                    },
                    {
                        label: '前端类型',
                        type: 'text',
                        prop: 'frontEndType',
                    },
                    {
                        label: '出入城类型',
                        type: 'text',
                        prop: 'inOutCityType',
                    },
                    {
                        label: '操作',
                        type: 'operation',
                        prop: 'operation',
                    },
                ]
            },
        }
    },
    created() {
        const { setTableData } = this;
        setTableData();
    },
    methods: {
        async selectChange(list) {
            console.log(this.tempList);
            if (this.tempList.length !== 0) {
                this.preMyIdx = list;
                if (list === 3) {
                    await this.handleDelete(this.tempList);
                } else if (list === 2) {
                    await this.mulUpdateStatus(this.tempList, 0);
                } else {
                    await this.mulUpdateStatus(this.tempList, 1);
                }
                this.myIdx = 0;
            } else {
                this.myIdx = this.preMyIdx;
                this.$message({
                    type: 'warning',
                    message: '您还没选中任何数据',
                })
            }
        },
        mulUpdateStatus(idArr, flag) {
            this.$confirm(flag === 1 ? "您确定要进行批量启用角色吗?" : '您确定要进行批量禁用角色吗?')
                .then(_ => {
                    this.$axios({
                        method: 'post',
                        url: 'sccg/role/updateStatusBatch?ids=' + idArr + '&status=' + flag,
                    })
                        .then(res => {
                            if (res.code === 200) {
                                this.$message({
                                    type: 'success',
                                    message: '更改用户状态成功',
                                })
                                this.getUserList();
                            } else {
                                this.$message({
                                    type: 'error',
                                    message: res.message
                                })
                            }
                            console.log(res);
                        })
                })
                .catch(err => { console.log(err) })
        },
        tableChange(list) {
            this.tempList = [];
            list.forEach(item => {
                this.tempList.push(item.id);
            })
            if (list.length === this.tableData.length) {
                this.all = true;
            } else {
                this.all = false
            }
        },
        changeTime({ createTime }) {
            return helper(createTime);
        },
        selectAll() {
            this.$refs.multipleTable.toggleAllSelection();
        },
        disSame(list) {
            list.forEach(row => {
                this.$refs.multipleTable.toggleRowSelection(row)
            })
        },
        handleDelete(id) {
            const that = this;
            // let arr = [];
            // arr.push(id);
            this.$confirm('确认删除?')
                .then(_ => {
                    that.$axios({
                        method: 'post',
                        url: 'sccg/role/delete?ids=' + id,
                    })
                        .then(res => {
                            this.myIdx = 0;
                            this.preMyIdx = 0;
                            console.log(res);
                            this.$message({
                                type: 'success',
                                message: res.message
                            })
                            this.getUserList();
                        })
                })
                .catch(_ => { });
        },
        // 设置表格斑马纹
        tableRowClassName({ row, rowIndex }) {
            if ((rowIndex + 1) % 2 == 0) {
                return 'warning-row';
            } else {
                return 'success-row';
            }
            return '';
        },
        // 当前页改变触发事件
        changeCurrentPage(page) {
            this.currentPage = page;
        },
        // 上一页点击事件
        handlePrev(page) {
            this.currentPage = page;
        },
        // 下一页点击事件
        handleNext(page) {
            this.currentPage = page;
        },
        // 关闭弹窗
        // 弹窗关闭
        handleClose(done) {
            this.$confirm('确认关闭?')
            this.$confirm('确认关闭?')
                .then(_ => {
                    done();
                })
                .catch(_ => { });
        },
        ...mapActions(['getBayonetList', 'exportBayonetList','addBayonet']),
        // 设置tableData
        async setTableData() {
            const { current, size, context } = this;
            let arr = await this.getBayonetList({
                // bayonetName:context,
                current, size
            })
            this.list = arr.data.data
        },
        // 导出
        async handleExport(){
            const { current, size, context } = this;
            let arr = await this.exportBayonetList({
                current, size
            })
            myDownLoad(arr);
            console.log(arr);
        }
    }
}