| | |
| | | export default { |
| | | type: [ |
| | | { |
| | | label: '长期', |
| | | label: 'Longterm', |
| | | value: 1 |
| | | }, |
| | | { |
| | | label: '临时', |
| | | label: 'Temporary', |
| | | value: 2 |
| | | } |
| | | ], |
| | | status: [ |
| | | { |
| | | label: '激活', |
| | | label: 'Activate', |
| | | value: 1 |
| | | }, |
| | | { |
| | | label: '休眠', |
| | | label: 'Sleep', |
| | | value: 2 |
| | | }, |
| | | { |
| | | label: '锁定', |
| | | label: 'Lock', |
| | | value: 3 |
| | | }, |
| | | { |
| | | label: '连续登录失败锁定', |
| | | label: 'Locked1', |
| | | value: 4 |
| | | }, |
| | | { |
| | | label: '注销', |
| | | label: 'Logout', |
| | | value: 0 |
| | | }, |
| | | ], |
| | | roleList: [ |
| | | { |
| | | label: "领导层", |
| | | value: 10 |
| | | }, |
| | | { |
| | | label: "管理员", |
| | | label: "Administrator", |
| | | value: 0, |
| | | }, |
| | | { |
| | | label: "运维层", |
| | | label: "teamlead", |
| | | value: 1, |
| | | }, |
| | | { |
| | | label: "监控层", |
| | | label: "Members", |
| | | value: 2, |
| | | }, |
| | | { |
| | | label: "专员层", |
| | | value: 4 |
| | | label: "Leadership", |
| | | value: 10 |
| | | }, |
| | | { |
| | | label: "OMLayer", |
| | | value: 11, |
| | | }, |
| | | { |
| | | label: "MonitoringLayer", |
| | | value: 12, |
| | | }, |
| | | { |
| | | label: "CommissionorLayer", |
| | | value: 14 |
| | | } |
| | | ] |
| | | } |
| | | } |
| | |
| | | allCount: '全部(共{n}种) | 全部(共{n}种) | 全部(共{n}种)', |
| | | selectDate: '选择日期', |
| | | selectMsg: '请选择', |
| | | inputMsg: '请输入', |
| | | yes: '是', |
| | | no: '否', |
| | | }, |
| | |
| | | operation: '操作', |
| | | successMsg: '操作成功', |
| | | failMsg: '操作失败', |
| | | delete: '删除', |
| | | edit: '编辑', |
| | | }, |
| | | }, |
| | | US: { |
| | |
| | | allCount: 'All({n}) | All({n}) | All({n})', |
| | | selectDate: 'Select Date', |
| | | selectMsg: 'Please Select', |
| | | inputMsg: 'Please Input', |
| | | yes: 'Yes', |
| | | no: 'No', |
| | | }, |
| | |
| | | operation: 'Operation', |
| | | successMsg: 'Operation Successful!', |
| | | failMsg: 'Operation Failed!', |
| | | delete: 'Delete', |
| | | edit: 'Edit', |
| | | }, |
| | | } |
| | | } |
| | |
| | | CommunicationAlarm: "通讯告警", |
| | | DeviceOverheatAlarm: "设备过温告警", |
| | | DiodeD1Alarm: "二极管D1告警", |
| | | |
| | | |
| | | }, |
| | | US: { |
| | | OnlineFloatingCharge: 'Online Floating Charge', |
| | |
| | | CommunicationAlarm: "Communication Alarm", |
| | | DeviceOverheatAlarm: "Device Overheat Alarm", |
| | | DiodeD1Alarm: "Diode D1 Alarm", |
| | | |
| | | |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | export default { |
| | | messages: { |
| | | CN: { |
| | | Longterm: '长期', |
| | | Temporary: '临时', |
| | | Activate: '激活', |
| | | Sleep: '休眠', |
| | | Lock: '锁定', |
| | | Locked1: '连续登录失败锁定', |
| | | Logout: '注销', |
| | | Administrator: "管理员", |
| | | teamlead: "维护组长", |
| | | Members: "维护组员", |
| | | Leadership: "领导层", |
| | | OMLayer: "运维层", |
| | | MonitoringLayer: "监控层", |
| | | CommissionorLayer: "专员层", |
| | | }, |
| | | US: { |
| | | Longterm: 'Long-term', |
| | | Temporary: 'Temporary', |
| | | Activate: 'Activate', |
| | | Sleep: 'Sleep', |
| | | Lock: 'Lock', |
| | | Locked1: 'Locked, continuous login failed', |
| | | Logout: 'Logout', |
| | | Administrator: "Administrator", |
| | | teamlead: "Team Lead", |
| | | Members: "Members", |
| | | Leadership: "Leadership", |
| | | OMLayer: "O&M Layer", |
| | | MonitoringLayer: "Monitoring Layer", |
| | | CommissionorLayer: "Commissionor Layer", |
| | | } |
| | | } |
| | | } |
| | |
| | | this.params.devWorkstate = status * 1; |
| | | } |
| | | }, |
| | | // // 展示数据数量 |
| | | // handleSizeChange(val) { |
| | | // this.pageSize = val; |
| | | // this.queryList(); |
| | | // }, |
| | | // // 翻页 |
| | | // handleCurrentChange(val) { |
| | | // this.pageCurr = val; |
| | | // this.queryList(); |
| | | // }, |
| | | // startQueryList() { |
| | | // this.timer.start(() => { |
| | | // this.$axios |
| | | // .all([this.queryList()]) |
| | | // .then(() => { |
| | | // this.timer.open(); |
| | | // }) |
| | | // .catch((error) => { |
| | | // this.timer.open(); |
| | | // console.log(error); |
| | | // }); |
| | | // }, 4000); |
| | | // }, |
| | | onWSOpen() { |
| | | this.sendMessage(); |
| | | }, |
| | |
| | | TestedCapacity: '已测容量', |
| | | DeviceAlarm: '设备告警', |
| | | TestedTime: '已测时间', |
| | | |
| | | |
| | | |
| | | deletealarmMsg: '确定删除这条告警记录吗, 是否继续?', |
| | | message: '提示', |
| | | devId: "设备ID", |
| | | devName: "设备名", |
| | | devIp: "设备IP", |
| | | Delete: '删除', |
| | | almTypeName: "告警事件", |
| | | alarmLevelName: "告警等级", |
| | | almStartTime: "告警开始时间", |
| | | almConfirmedTime: "告警确认时间", |
| | | almEndTime: '告警结束时间', |
| | | ConfirmAlarm: '确认告警', |
| | | OperationRecordTime: '操作记录时间段', |
| | | Realtime: '实时', |
| | | DeviceAlarmHistoryData: '设备告警历史数据', |
| | | }, |
| | | US: { |
| | | EquipmentRoomName: 'Equipment Room Name', |
| | |
| | | TestedCapacity: 'Tested Capacity', |
| | | DeviceAlarm: 'Device Alarm', |
| | | TestedTime: 'Tested Time', |
| | | |
| | | |
| | | |
| | | |
| | | deletealarmMsg: 'Confirm to delete this alarm record? Continue?', |
| | | message: 'Message', |
| | | devId: "Device ID", |
| | | devName: "Device Name", |
| | | devIp: "Device IP", |
| | | Delete: 'Delete', |
| | | almTypeName: "Alarm Event", |
| | | alarmLevelName: "Alarm Level", |
| | | almStartTime: "Alarm Start Time", |
| | | almConfirmedTime: "Alarm Confirm Time", |
| | | almEndTime: 'Alarm Finish Time', |
| | | ConfirmAlarm: 'Confirm Alarm', |
| | | OperationRecordTime: 'Operation Record Time', |
| | | Realtime: 'Real-time', |
| | | DeviceAlarmHistoryData: 'Device Alarm History Data', |
| | | } |
| | | } |
| | | } |
| | |
| | | <template> |
| | | <div class="params-container"> |
| | | <el-form |
| | | class="params-dialog formDataBox bg-white" |
| | | :model="formData" |
| | | :rules="rules" |
| | | ref="formDataBox" |
| | | label-width="80px" |
| | | > |
| | | <el-form class="params-dialog formDataBox bg-white" size="mini" :model="formData" :rules="rules" label-position="top" |
| | | ref="formDataBox"> |
| | | <div class="staff"> |
| | | <p><span class="iconfont el-icon-duoyonghu"></span> 员工基本信息</p> |
| | | <div class="table-row"> |
| | | <el-form-item label="维护区:" class="table-cell"> |
| | | <el-select |
| | | v-model="formData.udepartment" |
| | | size="mini" |
| | | placeholder="请选择维护区" |
| | | class="width_140" |
| | | > |
| | | <el-option |
| | | v-for="item in udepartmentList" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="姓名:" class="table-cell" prop="uname"> |
| | | <el-input |
| | | class="width_140" |
| | | v-model="formData.uname" |
| | | size="mini" |
| | | placeholder="请输入姓名" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item |
| | | label="密码:" |
| | | class="table-cell" |
| | | prop="upassword" |
| | | v-if="status == 'add'" |
| | | > |
| | | <el-input |
| | | class="width_140" |
| | | v-model="formData.upassword" |
| | | type="password" |
| | | size="mini" |
| | | placeholder="请输入密码" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <div class="clear" v-if="status == 'add'"></div> |
| | | <el-form-item label="性别:" class="table-cell"> |
| | | <el-select |
| | | class="width_140" |
| | | v-model="formData.usex" |
| | | size="mini" |
| | | placeholder="请选择性别" |
| | | > |
| | | <el-option label="男" value="男"></el-option> |
| | | <el-option label="女" value="女"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <div class="clear" v-if="status == 'edit'"></div> |
| | | <el-form-item label="手机:" class="table-cell" prop="umobilephone"> |
| | | <el-input |
| | | class="width_140" |
| | | v-model="formData.umobilephone" |
| | | size="mini" |
| | | placeholder="请输入手机" |
| | | > |
| | | </el-input> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="邮箱:" class="table-cell"> |
| | | <el-input |
| | | class="width_140" |
| | | v-model="formData.uemail" |
| | | size="mini" |
| | | placeholder="请输入邮箱" |
| | | > |
| | | </el-input> |
| | | </el-form-item> |
| | | <div class="clear" v-if="status == 'add'"></div> |
| | | <el-form-item label="工作班组:" class="table-cell"> |
| | | <el-select |
| | | v-model="formData.ujobGroup" |
| | | size="mini" |
| | | placeholder="请选择工作班组" |
| | | class="width_140" |
| | | > |
| | | <el-option |
| | | v-for="item in ujobGroupList" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <div class="clear"></div> |
| | | <el-form-item label="用户角色:" class="table-cell"> |
| | | <el-select |
| | | v-model="formData.urole" |
| | | size="mini" |
| | | placeholder="请选择用户角色" |
| | | class="width_140"> |
| | | <el-option |
| | | v-for="item in uroleList" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="用户类型:" class="table-cell"> |
| | | <el-select |
| | | v-model="formData.type" |
| | | size="mini" |
| | | placeholder="请选择用户类型" |
| | | class="width_140"> |
| | | <el-option |
| | | v-for="item in type" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="过期时间:" class="table-cell" v-if="formData.type==2"> |
| | | <el-date-picker |
| | | v-model="expirationTime" |
| | | type="datetime" |
| | | size="mini" |
| | | :start-placeholder="startTime" |
| | | placeholder="选择日期时间"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <div class="clear" v-if="formData.type==2"></div> |
| | | <el-form-item label="用户权限:" class="table-cell" prop="permitGroupId" v-if="status=='add'"> |
| | | <el-select |
| | | v-model="formData.permitGroupId" |
| | | size="mini" |
| | | placeholder="请选择用户权限组" |
| | | class="width_140"> |
| | | <el-option |
| | | v-for="item in groupList" |
| | | :key="item.value" |
| | | :label="item.txt" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <div class="clear"></div> |
| | | <el-form-item label="访问控制时间:" class="table-cell" prop="visitTime" v-if="isSysAdmin"> |
| | | <el-time-picker |
| | | popper-class="white-bg" |
| | | is-range |
| | | size="mini" |
| | | arrow-control |
| | | v-model="rangeTime" |
| | | range-separator="至" |
| | | start-placeholder="开始时间" |
| | | end-placeholder="结束时间" |
| | | placeholder="选择时间范围" |
| | | <p><span class="iconfont el-icon-duoyonghu"></span>{{ $t('UserInfo') }}</p> |
| | | <el-row :gutter="row.gutter"> |
| | | <el-col :span="row.span"> |
| | | <el-form-item :label="$t('MaintenanceArea') + ':'"> |
| | | <el-select v-model="formData.udepartment" size="mini" :placeholder="$t('form.selectMsg')" class=""> |
| | | <el-option v-for="item in udepartmentList" :key="item.value" :label="item.label" :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="row.span"> |
| | | <el-form-item :label="$t('Name') + ':'" prop="uname"> |
| | | <el-input class="" v-model="formData.uname" size="mini" |
| | | :placeholder="$t('form.inputMsg')"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="row.span"> |
| | | <el-form-item :label="$t('Password') + ':'" class="" prop="upassword" v-if="status == 'add'"> |
| | | <el-input class="" v-model="formData.upassword" type="password" size="mini" |
| | | :placeholder="$t('form.inputMsg')"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <!-- <div class="clear" v-if="status == 'add'"></div> --> |
| | | <el-row :gutter="row.gutter"> |
| | | <el-col :span="row.span"> |
| | | <el-form-item :label="$t('Gender') + ':'" class=""> |
| | | <el-select class="" v-model="formData.usex" size="mini" :placeholder="$t('form.selectMsg')"> |
| | | <el-option :label="$t('Male')" value="0"></el-option> |
| | | <el-option :label="$t('Female')" value="1"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="row.gutter"> |
| | | <!-- <div class="clear" v-if="status == 'edit'"></div> --> |
| | | <el-col :span="row.span"> |
| | | <el-form-item :label="$t('Phone') + ':'" class="" prop="umobilephone"> |
| | | <el-input class="" v-model="formData.umobilephone" size="mini" :placeholder="$t('form.inputMsg')"> |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="row.span"> |
| | | <el-form-item :label="$t('Email') + ':'" class=""> |
| | | <el-input class="" v-model="formData.uemail" size="mini" :placeholder="$t('form.inputMsg')"> |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <!-- <div class="clear" v-if="status == 'add'"></div> --> |
| | | <el-col :span="row.span"> |
| | | <el-form-item :label="$t('WorkTeam') + ':'" class=""> |
| | | <el-select v-model="formData.ujobGroup" size="mini" :placeholder="$t('form.selectMsg')" class=""> |
| | | <el-option v-for="item in ujobGroupList" :key="item.value" :label="item.label" :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <!-- <div class="clear"></div> --> |
| | | <el-col :span="row.span"> |
| | | <el-form-item :label="$t('UserRole') + ':'" class=""> |
| | | <el-select v-model="formData.urole" size="mini" :placeholder="$t('form.selectMsg')" class=""> |
| | | <el-option v-for="item in uroleList" :key="item.value" :label="$t('user.' + item.label)" |
| | | :value="item.value"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="row.span"> |
| | | <el-form-item :label="$t('UserType') + ':'" class=""> |
| | | <el-select v-model="formData.type" size="mini" :placeholder="$t('form.selectMsg')" class=""> |
| | | <el-option v-for="item in type" :key="item.value" :label="$t('user.' + item.label)" :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="row.span"> |
| | | <el-form-item :label="$t('ExpirationDate') + ':'" class="" v-if="!0 || formData.type == 2"> |
| | | <el-date-picker v-model="expirationTime" type="datetime" size="mini" :start-placeholder="startTime"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | | <!-- <div class="clear" v-if="!0 || formData.type == 2"></div> --> |
| | | <el-col :span="row.span"> |
| | | <el-form-item :label="$t('UserAuthority') + ':'" class="" prop="permitGroupId" |
| | | v-if="status == 'add'"> |
| | | <el-select v-model="formData.permitGroupId" size="mini" :placeholder="$t('form.selectMsg')" |
| | | class=""> |
| | | <el-option v-for="item in groupList" :key="item.value" :label="item.txt" :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="row.span"> |
| | | <el-form-item label="访问控制时间:" class="" prop="visitTime" v-if="!0 || isSysAdmin"> |
| | | <el-time-picker popper-class="white-bg" is-range size="mini" arrow-control v-model="rangeTime" |
| | | range-separator="-" start-placeholder="开始时间" end-placeholder="结束时间" placeholder="选择时间范围" |
| | | @change="timeChange"> |
| | | </el-time-picker> |
| | | </el-form-item> |
| | | <el-form-item label="IP白名单:" prop="visitIp" v-if="isSysAdmin"> |
| | | <el-input |
| | | type="textarea" |
| | | :rows="6" |
| | | placeholder="请输入内容" |
| | | resize="none" |
| | | </el-time-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="row.span"> |
| | | <el-form-item label="IP白名单:" prop="visitIp" v-if="isSysAdmin"> |
| | | <el-input type="textarea" :rows="6" :placeholder="$t('form.inputMsg')" resize="none" |
| | | v-model="formData.visitIp"> |
| | | </el-input> |
| | | </el-form-item> |
| | | |
| | | </div> |
| | | <!-- <div class="clear" v-if="status == 'edit'"></div> --> |
| | | <!-- <el-form-item label="身份证号:" class="table-cell"> |
| | | <el-input class="width_140" v-model="formData.ushenFenId" size="mini" placeholder="请输入身份证号"></el-input> |
| | | </el-form-item> --> |
| | | <!-- <el-form-item label="员工编号:" class="table-cell"> |
| | | <el-input class="width_140" v-model="formData.uemployeeId" size="mini" placeholder="请输入员工编号"></el-input> |
| | | </el-form-item> --> |
| | | <!-- <div class="clear" style="clear:both" v-if="status == 'add'"></div> --> |
| | | <!-- <el-form-item label="出生日期:" class="table-cell" prop="ubirthDay"> |
| | | <el-date-picker class="width_140" v-model="formData.ubirthDay" size="mini" type="date" placeholder="选择日期"> </el-date-picker> |
| | | </el-form-item> --> |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | <!-- <div class="staff"> |
| | | <p> <span class="iconfont el-icon-icon-sms"></span> 员工联系方式</p> |
| | | <div class="table-row"> |
| | | <el-form-item label="电话:" class="table-cell"> |
| | | <el-input class="width_140" v-model="formData.utelephone" size="mini" placeholder="请输入电话"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="手机:" class="table-cell" prop="umobilephone"> |
| | | <el-input class="width_140" v-model="formData.umobilephone" size="mini" placeholder="请输入手机"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="邮箱:" class="table-cell"> |
| | | <el-input class="width_140" v-model="formData.uemail" size="mini" placeholder="请输入邮箱"></el-input> |
| | | </el-form-item> |
| | | <div class="clear" style="clear:both"></div> |
| | | <el-form-item label="地址:" class="table-cell"> |
| | | <el-input class="width_140" v-model="formData.uaddr" size="mini" placeholder="请输入地址"></el-input> |
| | | </el-form-item> |
| | | </div> |
| | | </div> --> |
| | | <!-- <div class="staff"> |
| | | <p> <span class="iconfont el-icon-yanjiangzhe"></span> 员工工作内容</p> |
| | | <div class="table-row"> |
| | | <el-form-item label="职称:" class="table-cell"> |
| | | <el-input class="width_140" v-model="formData.uproTitle" size="mini" placeholder="请输入职称"></el-input> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="备注:" class="table-cell"> |
| | | <el-input class="width_140" v-model="formData.unote" size="mini" placeholder="请输入备注"></el-input> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="工作内容:" class="table-cell"> |
| | | <el-input class="width_140" v-model="formData.utasks" size="mini" placeholder="请输入工作内容"></el-input> |
| | | </el-form-item> |
| | | <div class="clear:both"></div> |
| | | <el-form-item label="工作职责:" class="table-cell"> |
| | | <el-input class="width_140" v-model="formData.uduties" size="mini" placeholder="请输入工作职责"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="权限描述:" class="table-cell"> |
| | | <el-input class="width_140" v-model="formData.uauthority" size="mini" placeholder="请输入权限描述"></el-input> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="工作班组:" class="table-cell"> |
| | | <el-select v-model="formData.ujobGroup" size="mini" placeholder="请选择工作班组" class="width_140"> |
| | | <el-option |
| | | v-for="item in ujobGroupList" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <div class="clear:both"></div> |
| | | <el-form-item label="是否包机人:" class="table-cell"> |
| | | <el-select v-model="formData.ubaojiusr" size="mini" placeholder="请选择是否包机人" class="width_140"> |
| | | <el-option label="是" :value="1"></el-option> |
| | | <el-option label="否" :value="0"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="入职日期:" class="table-cell" prop="UAccessionDay"> |
| | | <el-date-picker class="width_140" v-model="formData.UAccessionDay" size="mini" type="date" placeholder="选择入职日期"> </el-date-picker> |
| | | </el-form-item> |
| | | </div> |
| | | </div> --> |
| | | <div class="btn_box"> |
| | | <el-button size="small" @click="cancelOpen">取 消</el-button> |
| | | <el-button size="small" type="primary" @click="confirmOpen" |
| | | >确 定</el-button |
| | | > |
| | | <!-- <el-button size="small" v-if="status == 'edit'" type="primary" @click="updateLicense">更新license</el-button> --> |
| | | <el-button size="small" @click="cancelOpen">{{ $t('operate.cancel') }}</el-button> |
| | | <el-button size="small" type="primary" @click="confirmOpen">{{ $t('operate.ok') }}</el-button> |
| | | </div> |
| | | </el-form> |
| | | <el-dialog :visible.sync="dialog"> </el-dialog> |
| | |
| | | </template> |
| | | <script> |
| | | import { searchProvince } from "../../assets/js/api"; |
| | | import { groupAndUserListOfCurrentUser,user,getPermitGroupList } from './apis/apis' |
| | | import { groupAndUserListOfCurrentUser, user, getPermitGroupList } from './apis/apis' |
| | | import { testVal } from '@/assets/js/tools' |
| | | import RSA from "@/assets/js/tools/RSA"; |
| | | import const_user from "@/assets/js/const/const_user"; |
| | | import const_rules from "@/assets/js/const/const_rules"; |
| | | import formatPassword from "@/assets/js/tools/formatPassword"; |
| | | import i18n from './i18n/addEdit'; |
| | | import { createI18nOption } from '@/assets/js/tools/i18n'; |
| | | import i18nConstUser from '@/assets/js/i18n/const_user'; |
| | | const i18nMixin = createI18nOption(i18n, [[i18nConstUser, 'user']]); |
| | | export default { |
| | | name:'addEdit', |
| | | name: 'addEdit', |
| | | mixins: [i18nMixin], |
| | | props: ["status", "opt", "index", "seft"], |
| | | data() { |
| | | let userId = sessionStorage.getItem("userPowerGroup"); |
| | | let constRules = const_rules; |
| | | return { |
| | | row: { |
| | | gutter: 16, |
| | | span: 8, |
| | | }, |
| | | expirationTime: new Date(), |
| | | startTime: new Date().format("yyyy-MM-dd hh:mm:ss"), |
| | | userId: userId, |
| | |
| | | utelephone: this.opt.utelephone || "", |
| | | uemail: this.opt.uemail || "", |
| | | uaddr: this.opt.uaddr || "", |
| | | // ubirthDay: |
| | | // this.opt.ubirthDay || new Date().format("yyyy-MM-dd hh:mm:ss"), |
| | | // uaccessionDay: |
| | | // this.opt.uaccessionDay || new Date().format("yyyy-MM-dd hh:mm:ss"), |
| | | usex: this.opt.usex || "", |
| | | udepartment: this.opt.udepartment || "", |
| | | uproTitle: this.opt.uproTitle || "", |
| | |
| | | uauthority: this.opt.uauthority || "", |
| | | umobilephone: this.opt.umobilephone || "", |
| | | uemployeeId: this.opt.uemployeeId || "", |
| | | type:this.opt.type || 1, |
| | | status: this.opt.status || 1, |
| | | type: this.opt.type || 1, |
| | | status: this.opt.status || 1, |
| | | urole: 0, |
| | | expirationTime: this.opt.expirationTime || null, |
| | | permitGroupId: this.opt.permitGroupId || "", // 用户所在权限组 |
| | | visitTime: this.opt.visitTime || "00:00:01~23:59:59", // 默认值 全天 |
| | | visitIp: this.opt.visitIp ||"*" // 允许访问的IP * 代表全部 |
| | | visitIp: this.opt.visitIp || "*" // 允许访问的IP * 代表全部 |
| | | }, |
| | | groupList: [], |
| | | rangeTime: [ |
| | |
| | | uname: [ |
| | | { |
| | | required: true, |
| | | message: "请输入姓名", |
| | | // message: "请输入姓名", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | upassword: [ |
| | | { |
| | | required: true, |
| | | message: "请输入密码", |
| | | // message: "请输入密码", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | ubirthDay: [ |
| | | { |
| | | required: true, |
| | | message: "请选择出生日期", |
| | | // message: "请选择出生日期", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | umobilephone: [ |
| | | { |
| | | required: true, |
| | | message: "请输入手机", |
| | | // message: "请输入手机", |
| | | trigger: "blur", |
| | | }, |
| | | { |
| | | min: 11, |
| | | max: 11, |
| | | message: "请输入正确的手机号", |
| | | message: this.$t('phoneMsg'), |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | uaccessionDay: [ |
| | | { |
| | | required: true, |
| | | message: "请选择入职日期", |
| | | // message: "请选择入职日期", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | |
| | | permitGroupId: [ |
| | | { |
| | | required: true, |
| | | message: "请选择用户权限组", |
| | | // message: "请选择用户权限组", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | |
| | | }, |
| | | computed: { |
| | | isSysAdmin() { |
| | | return this.userId==1?true:false; |
| | | return this.userId == 1 ? true : false; |
| | | } |
| | | }, |
| | | mounted() { |
| | |
| | | this.formData.permitGroupId = 100; |
| | | let times = this.opt.visitTime.split("~"); |
| | | this.rangeTime = [ |
| | | new Date("2016-10-1 "+times[0]), |
| | | new Date("2016-10-1 "+times[1]), |
| | | new Date("2016-10-1 " + times[0]), |
| | | new Date("2016-10-1 " + times[1]), |
| | | ]; |
| | | } |
| | | }, |
| | |
| | | timeChange(time) { |
| | | let time1 = time[0].format("hh:mm:ss"); |
| | | let time2 = time[1].format("hh:mm:ss"); |
| | | this.formData.visitTime = time1+"~"+time2; |
| | | this.formData.visitTime = time1 + "~" + time2; |
| | | }, |
| | | // 查询工作班组 |
| | | queryGzbz: function() { |
| | | queryGzbz: function () { |
| | | let vm = this; |
| | | groupAndUserListOfCurrentUser().then((res) => { |
| | | let re = res.data; |
| | | let params = []; |
| | | if (re.code == 1) { |
| | | re.data.forEach((list) => { |
| | | let objs = { |
| | | label: list.baoJiGroupName, |
| | | value: list.baoJiGroupName//list.baoJiGroupId, |
| | | }; |
| | | params.push(objs); |
| | | }); |
| | | vm.ujobGroupList = params; |
| | | } |
| | | if (vm.formData.ujobGroup == "" && params.length > 0) { |
| | | vm.formData.ujobGroup = vm.ujobGroupList[0].value; |
| | | } |
| | | }) |
| | | .catch((error) => {}); |
| | | let re = res.data; |
| | | let params = []; |
| | | if (re.code == 1) { |
| | | re.data.forEach((list) => { |
| | | let objs = { |
| | | label: list.baoJiGroupName, |
| | | value: list.baoJiGroupName//list.baoJiGroupId, |
| | | }; |
| | | params.push(objs); |
| | | }); |
| | | vm.ujobGroupList = params; |
| | | } |
| | | if (vm.formData.ujobGroup == "" && params.length > 0) { |
| | | vm.formData.ujobGroup = vm.ujobGroupList[0].value; |
| | | } |
| | | }) |
| | | .catch((error) => { }); |
| | | }, |
| | | // 查询维护区 |
| | | queryWhq: function() { |
| | | queryWhq: function () { |
| | | let vm = this; |
| | | searchProvince().then((res) => { |
| | | let rs = res.data; |
| | | let params = []; |
| | | if (rs.code == 1) { |
| | | rs.data.forEach((list) => { |
| | | let obj = { |
| | | label: list, |
| | | value: list, |
| | | }; |
| | | params.push(obj); |
| | | }); |
| | | vm.udepartmentList = params; |
| | | } |
| | | let rs = res.data; |
| | | let params = []; |
| | | if (rs.code == 1) { |
| | | rs.data.forEach((list) => { |
| | | let obj = { |
| | | label: list, |
| | | value: list, |
| | | }; |
| | | params.push(obj); |
| | | }); |
| | | vm.udepartmentList = params; |
| | | } |
| | | |
| | | if (vm.formData.udepartment == "") { |
| | | vm.formData.udepartment = vm.udepartmentList[0].value; |
| | | } |
| | | }) |
| | | .catch((err) => {}); |
| | | if (vm.formData.udepartment == "") { |
| | | vm.formData.udepartment = vm.udepartmentList[0].value; |
| | | } |
| | | }) |
| | | .catch((err) => { }); |
| | | }, |
| | | // 取消隐藏弹框 |
| | | cancelOpen: function() { |
| | | cancelOpen: function () { |
| | | let vm = this; |
| | | vm.$emit("onClose"); |
| | | }, |
| | | // 确定 |
| | | confirmOpen: function() { |
| | | confirmOpen: function () { |
| | | let vm = this; |
| | | vm.$refs.formDataBox.validate((valid) => { |
| | | if (valid) { |
| | | let data = vm.formData; |
| | | if(data.type == 1) { |
| | | data.expirationTime = null; |
| | | }else { |
| | | data.expirationTime = new Date(this.expirationTime).format("yyyy-MM-dd hh:mm:ss"); |
| | | } |
| | | if (data.type == 1) { |
| | | data.expirationTime = null; |
| | | } else { |
| | | data.expirationTime = new Date(this.expirationTime).format("yyyy-MM-dd hh:mm:ss"); |
| | | } |
| | | switch (vm.status) { |
| | | case "add": //新增 |
| | | // vm.updateLicense(); |
| | | // let psw = RSA.encrypt(vm.formData.upassword); |
| | | // debugger |
| | | let psw = vm.formData.upassword; |
| | | vm.formData.upassword = encodeURIComponent(formatPassword(psw)); |
| | | vm.addUser(vm.formData); |
| | | vm.formData.upassword = encodeURIComponent(formatPassword(psw)); |
| | | vm.addUser(vm.formData); |
| | | break; |
| | | case "edit": //修改 |
| | | user(data,"PUT").then((res) => { |
| | | let result = res.data; |
| | | if (result.code == 1) { |
| | | if(result.data ===false){ |
| | | vm.$layer.msg(result.msg); |
| | | }else{ |
| | | vm.$emit("success", result); |
| | | } |
| | | user(data, "PUT").then((res) => { |
| | | let result = res.data; |
| | | if (result.code == 1) { |
| | | if (result.data === false) { |
| | | this.$message.info(this.$t('operate.failMsg')); |
| | | } else { |
| | | vm.$layer.msg(result.msg); |
| | | vm.$emit("success", result); |
| | | } |
| | | }) |
| | | } else { |
| | | this.$message.info(this.$t('operate.failMsg')) |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | vm.$layer.msg("修改失败,请仔细核对信息!"); |
| | | this.$message.info(this.$t('operate.failMsg')) |
| | | }); |
| | | break; |
| | | default: |
| | |
| | | addUser(data) { |
| | | let vm = this; |
| | | data.usnId = data.upassword; |
| | | user(data,"POST").then((res) => { |
| | | let result = res.data; |
| | | vm.formData.upassword = ""; |
| | | if (result.code == 1) { |
| | | if(result.data === false){ |
| | | vm.$layer.msg(result.msg); |
| | | }else{ |
| | | vm.$emit("success", result); |
| | | } |
| | | |
| | | } else { |
| | | user(data, "POST").then((res) => { |
| | | let result = res.data; |
| | | vm.formData.upassword = ""; |
| | | if (result.code == 1) { |
| | | if (result.data === false) { |
| | | vm.$layer.msg(result.msg); |
| | | } else { |
| | | vm.$emit("success", result); |
| | | } |
| | | }) |
| | | |
| | | } else { |
| | | vm.$layer.msg(result.msg); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | vm.$layer.msg("新增失败,请仔细核对信息!"); |
| | | this.$message.info(this.$t('operate.failMsg')) |
| | | }); |
| | | }, |
| | | // 添加/更新license |
| | | updateLicense: function() { |
| | | let vm = this; |
| | | vm.$layer.prompt( |
| | | { |
| | | title: "请输入license", |
| | | // value:'', |
| | | formType: 3, |
| | | }, |
| | | (value, index) => { |
| | | if (!value) { |
| | | vm.$layer.msg("未输入license"); |
| | | return false; |
| | | } |
| | | // 校验license |
| | | vm.$axios({ |
| | | method: "post", |
| | | url: "LicenseAction!checkLicense", |
| | | data: "json=" + value, |
| | | }) |
| | | .then((res) => { |
| | | let result = JSON.parse(res.data.result); |
| | | if (result.code == 1) { |
| | | // 关闭弹窗 |
| | | vm.$layer.close(index); |
| | | // 添加license参数 |
| | | vm.formData.license = value; |
| | | if (vm.status == "add") { |
| | | vm.addUser(vm.formData); |
| | | } else { |
| | | vm.$layer.msg("已添加license,保存后生效!"); |
| | | } |
| | | } else { |
| | | vm.$layer.msg(result.msg); |
| | | } |
| | | }) |
| | | .catch((err) => { |
| | | vm.$layer.msg("license验证失败!"); |
| | | }); |
| | | } |
| | | ); |
| | | }, |
| | | // updateLicense: function () { |
| | | // let vm = this; |
| | | // vm.$layer.prompt( |
| | | // { |
| | | // title: "请输入license", |
| | | // // value:'', |
| | | // formType: 3, |
| | | // }, |
| | | // (value, index) => { |
| | | // if (!value) { |
| | | // vm.$layer.msg("未输入license"); |
| | | // return false; |
| | | // } |
| | | // // 校验license |
| | | // vm.$axios({ |
| | | // method: "post", |
| | | // url: "LicenseAction!checkLicense", |
| | | // data: "json=" + value, |
| | | // }) |
| | | // .then((res) => { |
| | | // let result = JSON.parse(res.data.result); |
| | | // if (result.code == 1) { |
| | | // // 关闭弹窗 |
| | | // vm.$layer.close(index); |
| | | // // 添加license参数 |
| | | // vm.formData.license = value; |
| | | // if (vm.status == "add") { |
| | | // vm.addUser(vm.formData); |
| | | // } else { |
| | | // vm.$layer.msg("已添加license,保存后生效!"); |
| | | // } |
| | | // } else { |
| | | // vm.$layer.msg(result.msg); |
| | | // } |
| | | // }) |
| | | // .catch((err) => { |
| | | // vm.$layer.msg("license验证失败!"); |
| | | // }); |
| | | // } |
| | | // ); |
| | | // }, |
| | | }, |
| | | }; |
| | | </script> |
| | | <style scoped> |
| | | .staff .width_140 { |
| | | /* .staff .width_140 { |
| | | width: 140px; |
| | | } |
| | | } */ |
| | | |
| | | .table-row { |
| | | /* .table-row { |
| | | padding: 2px 10px; |
| | | } */ |
| | | /deep/ .el-form--label-top .el-form-item__label { |
| | | line-height: normal; |
| | | } |
| | | |
| | | .staff { |
| | | margin-bottom: 6px; |
| | | } |
| | | |
| | | .staff > p { |
| | | .staff>p { |
| | | padding: 6px 5px; |
| | | background: #c9dcfa; |
| | | margin-bottom: 8px; |
New file |
| | |
| | | export default { |
| | | messages: { |
| | | CN: { |
| | | UserInfo: '用户信息', |
| | | MaintenanceArea: '维护区', |
| | | Name: '姓名', |
| | | Password: '密码', |
| | | Gender: '性别', |
| | | Phone: '手机', |
| | | Female: '女', |
| | | Male: '男', |
| | | Email: '邮箱', |
| | | WorkTeam: '工作班组', |
| | | UserRole: '用户角色', |
| | | UserType: '用户类型', |
| | | ExpirationDate: '过期时间', |
| | | UserAuthority: '用户权限', |
| | | phoneMsg: '请输入正确的手机号', |
| | | }, |
| | | US: { |
| | | UserInfo: 'User Info', |
| | | MaintenanceArea: 'Maintenance Area', |
| | | Name: 'Name', |
| | | Password: 'Password', |
| | | Gender: 'Gender', |
| | | Phone: 'Phone', |
| | | Female: 'Female', |
| | | Male: 'Male', |
| | | Email: 'E-mail', |
| | | WorkTeam: 'Work Team', |
| | | UserRole: 'User Role', |
| | | UserType: 'User Type', |
| | | ExpirationDate: 'Expiration Time', |
| | | UserAuthority: 'User Authority', |
| | | phoneMsg: 'Please input the correct phone number.', |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | export default { |
| | | messages: { |
| | | CN: { |
| | | MaintenanceArea: '维护区', |
| | | Name: '姓名', |
| | | Phone: '手机', |
| | | Email: '邮箱', |
| | | EntryDate: '录入日期', |
| | | Gender: '性别', |
| | | WorkTeam: '工作班组', |
| | | WorkTeamMember: '是否包机人', |
| | | AuthorityGroup: '权限组', |
| | | UserRole: '用户角色', |
| | | UserType: '用户类型', |
| | | ExpirationDate: '过期时间', |
| | | UserState: '用户状态', |
| | | AccessTimeControl: '访问时间控制', |
| | | IPWhitelist: 'IP白名单', |
| | | Unlock: '解锁', |
| | | AddUser: '添加用户', |
| | | Female: '女', |
| | | Male: '男', |
| | | UserInfo: '用户信息', |
| | | Confirmunlock: '确定解锁', |
| | | Edituserinfo: '编辑用户信息', |
| | | Confirmdelete: '确定删除', |
| | | message: '提示', |
| | | }, |
| | | US: { |
| | | MaintenanceArea: 'Maintenance Area', |
| | | Name: 'Name', |
| | | Phone: 'Phone', |
| | | Email: 'E-mail', |
| | | EntryDate: 'Entry Date', |
| | | Gender: 'Gender', |
| | | WorkTeam: 'Work Team', |
| | | WorkTeamMember: 'Work Team Member', |
| | | AuthorityGroup: 'Authority Group', |
| | | UserRole: 'User Role', |
| | | UserType: 'User Type', |
| | | ExpirationDate: 'Expiration Time', |
| | | UserState: 'User State', |
| | | AccessTimeControl: 'Access Time Control', |
| | | IPWhitelist: 'IP Whitelist', |
| | | Unlock: 'Unlock', |
| | | AddUser: 'Add User', |
| | | Female: 'Female', |
| | | Male: 'Male', |
| | | UserInfo: 'User Info', |
| | | Confirmunlock: 'Confirm unlock', |
| | | Edituserinfo: 'Edit user info', |
| | | Confirmdelete: 'Confirm delete', |
| | | message: 'Message', |
| | | } |
| | | } |
| | | } |
| | |
| | | <template> |
| | | <!-- 用户信息 --> |
| | | <flex-layout> |
| | | <div class="flex-page-content"> |
| | | <el-table ref="tableBox" stripe size="mini" header-row-class-name="header-primary" height="100%" |
| | | :data="userList"> |
| | | <el-table-column prop="udepartment" align="center" label="维护区" :min-width="120"></el-table-column> |
| | | <el-table-column prop="uname" align="center" label="姓名" :min-width="120"></el-table-column> |
| | | <!-- <el-table-column prop="UShenFenId" width="90px" align="center" label="身份证号"></el-table-column> --> |
| | | <!-- <el-table-column prop="UEmployeeId" width="90px" align="center" label="员工编号"></el-table-column> --> |
| | | <!-- <el-table-column prop="UTelephone" width="90px" align="center" label="电话"></el-table-column> --> |
| | | <el-table-column prop="umobilephone" align="center" label="手机" :min-width="120"></el-table-column> |
| | | <el-table-column prop="uemail" align="center" label="邮箱" :min-width="180"></el-table-column> |
| | | <!-- <el-table-column prop="UAddr" width="100px" align="center" label="地址"></el-table-column> |
| | | <el-table-column prop="UBirthDay" width="140px" align="center" label="出生日期"></el-table-column> --> |
| | | <el-table-column prop="uaccessionDay" align="center" label="录入日期" :min-width="180"></el-table-column> |
| | | <el-table-column prop="usex" align="center" label="性别" :min-width="80"></el-table-column> |
| | | <!-- <el-table-column prop="UProTitle" width="90px" align="center" label="职称"></el-table-column> |
| | | <el-table-column prop="UAuthority" width="100px" align="center" label="权限描述"></el-table-column> --> |
| | | <el-table-column prop="ujobGroup" align="center" label="工作班组" :min-width="120"></el-table-column> |
| | | <!-- <el-table-column prop="UDuties" width="90px" align="center" label="工作职责"></el-table-column> |
| | | <el-table-column prop="UTasks" width="90px" align="center" label="工作内容"></el-table-column> --> |
| | | <el-table-column prop="ubaojiusr" align="center" label="是否包机人" :min-width="120"> |
| | | <template slot-scope="scope"> |
| | | <el-checkbox :checked="scope.row.ubaojiusr == 1" readonly="true"></el-checkbox> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="permitGroupName" align="center" :min-width="120" label="权限组"></el-table-column> |
| | | <el-table-column prop="URoleText" :min-width="120" align="center" label="用户角色"></el-table-column> |
| | | <!-- <el-table-column prop="UNote" width="90px" align="center" label="备注"></el-table-column> --> |
| | | <el-table-column prop="typeText" :min-width="120" align="center" label="用户类型"> |
| | | <template slot-scope="scope"> |
| | | <el-tag type="success" size="mini" v-if="scope.row.type == 1">{{ scope.row.typeText }}</el-tag> |
| | | <el-tag type="danger" size="mini" v-if="scope.row.type == 2">{{ scope.row.typeText }}</el-tag> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="expirationTime" :min-width="180" align="center" label="过期日期"></el-table-column> |
| | | <el-table-column prop="status" :min-width="120" align="center" label="用户状态"> |
| | | <template slot-scope="scope"> |
| | | <el-tag type="success" size="mini" v-if="scope.row.status == 1">{{ scope.row.statusText }}</el-tag> |
| | | <el-tag type="danger" size="mini" v-else>{{ scope.row.statusText }}</el-tag> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="visitTime" width="160" align="center" label="访问时间控制"></el-table-column> |
| | | <el-table-column :show-overflow-tooltip="true" prop="visitIp" width="160" align="center" label="IP白名单"></el-table-column> |
| | | <el-table-column prop="cztime" fixed="right" width="260px" align="center" label="操作"> |
| | | <template slot-scope="scope"> |
| | | <el-button :disabled="!isCanEdit" type="primary" size="mini" |
| | | @click="editUser(scope.$index, scope.row)">编辑</el-button> |
| | | <el-button :disabled="!(scope.row.status==4 || scope.row.status==3)" type="warning" |
| | | size="mini" v-if="isSysAdmin" |
| | | @click="unlock(scope.$index, scope.row)">解锁</el-button> |
| | | <el-button :disabled="!isCanEdit" type="danger" size="mini" |
| | | @click="deleteUser(scope.$index, scope.row)">删除</el-button> |
| | | </template> |
| | | <!-- 用户信息 --> |
| | | <flex-layout> |
| | | <div class="flex-page-content"> |
| | | <el-table ref="tableBox" stripe size="mini" header-row-class-name="header-primary" height="100%" :data="userList"> |
| | | <el-table-column prop="udepartment" show-overflow-tooltip align="center" :label="$t('MaintenanceArea')" |
| | | :min-width="160"></el-table-column> |
| | | <el-table-column prop="uname" align="center" show-overflow-tooltip :label="$t('Name')" |
| | | :min-width="120"></el-table-column> |
| | | <el-table-column prop="umobilephone" align="center" :label="$t('Phone')" :min-width="120"></el-table-column> |
| | | <el-table-column prop="uemail" align="center" show-overflow-tooltip :label="$t('Email')" |
| | | :min-width="180"></el-table-column> |
| | | <el-table-column prop="uaccessionDay" align="center" :label="$t('EntryDate')" :min-width="180"></el-table-column> |
| | | <el-table-column prop="usexStr" align="center" :label="$t('Gender')" :min-width="80"></el-table-column> |
| | | <el-table-column prop="ujobGroup" align="center" show-overflow-tooltip :label="$t('WorkTeam')" |
| | | :min-width="120"></el-table-column> |
| | | <!-- <el-table-column prop="ubaojiusr" align="center" :label="$t('WorkTeamMember')" :min-width="180"> |
| | | <template slot-scope="scope"> |
| | | <el-checkbox :checked="scope.row.ubaojiusr == 1" readonly="true"></el-checkbox> |
| | | </template> |
| | | </el-table-column> --> |
| | | <el-table-column prop="permitGroupName" align="center" show-overflow-tooltip :min-width="180" |
| | | :label="$t('AuthorityGroup')"></el-table-column> |
| | | <el-table-column prop="URoleText" :min-width="120" align="center" show-overflow-tooltip |
| | | :label="$t('UserRole')"></el-table-column> |
| | | <el-table-column prop="typeText" :min-width="120" show-overflow-tooltip align="center" :label="$t('UserType')"> |
| | | <template slot-scope="scope"> |
| | | <el-tag type="success" size="mini" v-if="scope.row.type == 1">{{ scope.row.typeText }}</el-tag> |
| | | <el-tag type="danger" size="mini" v-if="scope.row.type == 2">{{ scope.row.typeText }}</el-tag> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="expirationTime" :min-width="180" align="center" |
| | | :label="$t('ExpirationDate')"></el-table-column> |
| | | <el-table-column prop="status" :min-width="120" align="center" :label="$t('UserState')"> |
| | | <template slot-scope="scope"> |
| | | <el-tag type="success" size="mini" v-if="scope.row.status == 1">{{ scope.row.statusText }}</el-tag> |
| | | <el-tag type="danger" size="mini" v-else>{{ scope.row.statusText }}</el-tag> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="visitTime" width="180" align="center" :label="$t('AccessTimeControl')"></el-table-column> |
| | | <el-table-column :show-overflow-tooltip="true" prop="visitIp" width="160" align="center" |
| | | :label="$t('IPWhitelist')"></el-table-column> |
| | | <el-table-column prop="cztime" fixed="right" width="260px" align="center" :label="$t('operate.operation')"> |
| | | <template slot-scope="scope"> |
| | | <el-button :disabled="!isCanEdit" type="primary" size="mini" @click="editUser(scope.$index, scope.row)">{{ |
| | | $t('operate.edit') }}</el-button> |
| | | <el-button :disabled="!(scope.row.status == 4 || scope.row.status == 3)" type="warning" size="mini" |
| | | v-if="isSysAdmin" @click="unlock(scope.$index, scope.row)">{{ $t('Unlock') }}</el-button> |
| | | <el-button :disabled="!isCanEdit" type="danger" size="mini" @click="deleteUser(scope.row)">{{ |
| | | $t('operate.delete') }}</el-button> |
| | | </template> |
| | | |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | |
| | | <div class="flex-page-footer" slot="footer"> |
| | | <div class="el-pagination-btns"> |
| | | <el-button type="primary" @click="queryData" round size="mini" icon="el-icon-search">查询</el-button> |
| | | <el-button type="primary" round size="mini" icon="el-icon-wallet" @click="exportFile">导出</el-button> |
| | | </div> |
| | | <el-pagination size="mini" @size-change="handleSizeChange" @current-change="handleCurrentChange" |
| | | :current-page="currentPage" :page-sizes="[10, 20, 30, 50, 100]" :page-size="pagesize" |
| | | layout="total, sizes, prev, pager, next, jumper" :total="totalNum"></el-pagination> |
| | | <div class="el-pagination-btns"> |
| | | <el-button :disabled="!isCanEdit" type="primary" icon="el-icon-plus" round size="mini" @click="addUser"> |
| | | 添加用户</el-button> |
| | | </div> |
| | | </div> |
| | | <Dialog :title="dialogTitle" :visible.sync="centerDialogVisible" top='0' :close-on-click-modal="false" |
| | | class="dialog-center" width="700px" center> |
| | | <!-- addEdit --> |
| | | <add-edit v-if="reFresh" :seft="this" @success="success" @onClose="onClose" :status="status" |
| | | :index="thisIndex" :opt="opt"></add-edit> |
| | | </Dialog> |
| | | </flex-layout> |
| | | |
| | | <div class="flex-page-footer" slot="footer"> |
| | | <div class="el-pagination-btns"> |
| | | <el-button type="primary" @click="queryData" round size="mini" icon="el-icon-search">{{ $t('operate.search') |
| | | }}</el-button> |
| | | <el-button type="primary" round size="mini" icon="el-icon-wallet" @click="exportFile">{{ $t('operate.export') |
| | | }}</el-button> |
| | | </div> |
| | | <el-pagination size="mini" @size-change="handleSizeChange" @current-change="handleCurrentChange" |
| | | :current-page="currentPage" :page-sizes="[10, 20, 30, 50, 100]" :page-size="pagesize" |
| | | layout="total, sizes, prev, pager, next, jumper" :total="totalNum"></el-pagination> |
| | | <div class="el-pagination-btns"> |
| | | <el-button :disabled="!isCanEdit" type="primary" icon="el-icon-plus" round size="mini" @click="addUser"> |
| | | {{ $t('AddUser') }}</el-button> |
| | | </div> |
| | | </div> |
| | | <Dialog :title="dialogTitle" :visible.sync="centerDialogVisible" top='0' :close-on-click-modal="false" |
| | | class="dialog-center" width="700px" center> |
| | | <!-- addEdit --> |
| | | <add-edit v-if="reFresh" :seft="this" @success="success" @onClose="onClose" :status="status" :index="thisIndex" |
| | | :opt="opt"></add-edit> |
| | | </Dialog> |
| | | </flex-layout> |
| | | </template> |
| | | |
| | | <script> |
| | | // import { Form } from 'element-ui' |
| | | import addEdit from './addEdit' |
| | | import { Dialog } from 'element-ui' |
| | | // import { searchProvince } from '../../assets/js/api' |
| | | // 引入导出表格 |
| | | import { export_json_to_excel } from '@/assets/js/excel/Export2Excel' |
| | | import { isHasPermit,getLabelByValue } from "@/assets/js/tools"; |
| | | import { userPage,deleteInfo,unLock } from './apis/apis' |
| | | import const_user from "@/assets/js/const/const_user"; |
| | | export default { |
| | | name:"userInfo", |
| | | data() { |
| | | let permits = this.$store.state.user.permits; |
| | | let isCanEdit = isHasPermit('usr_edit_permit', permits); |
| | | let userId = sessionStorage.getItem("userId"); |
| | | return { |
| | | userId: userId, |
| | | isCanEdit: true,//isCanEdit, |
| | | userType: const_user.type, |
| | | userStatus: const_user.status, |
| | | userRoles: const_user.roleList, |
| | | currentPage: 1, |
| | | pagesize: 10, |
| | | totalNum: 0, |
| | | userList: [], |
| | | w: document.documentElement.offsetWidth + 'px', |
| | | h: `${document.documentElement.offsetHeight - 344} + 'px'`, |
| | | // 新增编辑弹窗 |
| | | centerDialogVisible: false, |
| | | dialogTitle: '', |
| | | status: '', |
| | | thisIndex: '', |
| | | opt: {}, |
| | | <script> |
| | | import addEdit from './addEdit' |
| | | import { Dialog } from 'element-ui' |
| | | // 引入导出表格 |
| | | import { export_json_to_excel } from '@/assets/js/excel/Export2Excel' |
| | | import { isHasPermit, getLabelByValue } from "@/assets/js/tools"; |
| | | import { userPage, deleteInfo, unLock } from './apis/apis' |
| | | import const_user from "@/assets/js/const/const_user"; |
| | | import i18nConstUser from '@/assets/js/i18n/const_user'; |
| | | import i18n from './i18n/userInfo'; |
| | | import { createI18nOption } from '@/assets/js/tools/i18n'; |
| | | const i18nMixin = createI18nOption(i18n, [[i18nConstUser, 'user']]); |
| | | export default { |
| | | name: "userInfo", |
| | | mixins: [i18nMixin], |
| | | data() { |
| | | let permits = this.$store.state.user.permits; |
| | | let isCanEdit = isHasPermit('usr_edit_permit', permits); |
| | | let userId = sessionStorage.getItem("userId"); |
| | | return { |
| | | userId: userId, |
| | | isCanEdit: true,//isCanEdit, |
| | | userType: const_user.type, |
| | | userStatus: const_user.status, |
| | | userRoles: const_user.roleList, |
| | | currentPage: 1, |
| | | pagesize: 10, |
| | | totalNum: 0, |
| | | userList: [], |
| | | w: document.documentElement.offsetWidth + 'px', |
| | | h: `${document.documentElement.offsetHeight - 344} + 'px'`, |
| | | // 新增编辑弹窗 |
| | | centerDialogVisible: false, |
| | | dialogTitle: '', |
| | | status: '', |
| | | thisIndex: '', |
| | | opt: {}, |
| | | |
| | | reFresh: true |
| | | } |
| | | }, |
| | | watch: { |
| | | |
| | | }, |
| | | components: { |
| | | Dialog, |
| | | addEdit |
| | | }, |
| | | created() { |
| | | |
| | | }, |
| | | computed: { |
| | | isSysAdmin() { |
| | | return this.userId==1?true:false; |
| | | } |
| | | }, |
| | | mounted() { |
| | | let vm = this; |
| | | vm.queryData(); |
| | | }, |
| | | methods: { |
| | | // 导出表格 |
| | | exportFile() { |
| | | let tHeader = ['维护区','姓名','手机','邮箱','录入日期','性别','工作班组','是否包机人','权限组','用户角色','用户类型','过期日期','用户状态','访问时间控制','IP白名单']; |
| | | let filterVal = ['udepartment','uname','umobilephone','uemail','uaccessionDay','usex','ujobGroup','uisBaojiusr','permitGroupName','uroleText','typeText','expirationTime','statusText','visitTime','visitIp']; |
| | | let list = this.userList; |
| | | if (list.length > 0) { |
| | | list.map((item, index) => { |
| | | if (item.ubaojiusr === 1) { |
| | | item.uisBaojiusr = '是' |
| | | } else { |
| | | item.uisBaojiusr = '否' |
| | | } |
| | | }) |
| | | } |
| | | let excelData = this.formatJson(filterVal, list); |
| | | export_json_to_excel(tHeader, excelData, "用户信息"); |
| | | }, |
| | | formatJson(filterVal, jsonData) { |
| | | return jsonData.map(v => filterVal.map(j => v[j])); |
| | | }, |
| | | // 初始化组件 |
| | | installComponents: function () { |
| | | let vm = this; |
| | | vm.reFresh = false |
| | | vm.$nextTick(() => { |
| | | vm.reFresh = true |
| | | }) |
| | | }, |
| | | // 添加用户 |
| | | addUser: function () { |
| | | let vm = this; |
| | | vm.installComponents(); |
| | | vm.dialogTitle = '添加新用户'; |
| | | vm.centerDialogVisible = true; |
| | | vm.status = 'add'; |
| | | vm.thisIndex = -1; |
| | | vm.opt = {}; |
| | | }, |
| | | unlock(index, data) { |
| | | let vm = this; |
| | | vm.$layer.confirm('确定解锁' + data.uname, { |
| | | icon: 3 |
| | | }, function (index) { |
| | | vm.$layer.close(index); |
| | | unLock({uId:data.uid,unLockType:1}).then(res => { |
| | | let result = res.data; |
| | | if(result.code == 1){ |
| | | vm.$layer.msg("解锁成功"); |
| | | vm.queryData(); |
| | | }else{ |
| | | vm.$layer.msg("解锁失败,请重新操作!"); |
| | | } |
| | | }).catch(error => { |
| | | vm.$layer.msg('解锁失败'); |
| | | }); |
| | | |
| | | }) |
| | | }, |
| | | // 编辑 |
| | | editUser: function (index, data) { |
| | | let vm = this; |
| | | vm.installComponents(); |
| | | vm.dialogTitle = '编辑用户信息'; |
| | | vm.centerDialogVisible = true; |
| | | vm.status = 'edit'; |
| | | vm.thisIndex = index; |
| | | vm.opt = data; |
| | | }, |
| | | // 删除 |
| | | deleteUser: function (index, data) { |
| | | let vm = this; |
| | | vm.$layer.confirm('确定删除' + data.uname, { |
| | | icon: 3 |
| | | }, function (index) { |
| | | vm.$layer.close(index); |
| | | deleteInfo({id:data.uid}).then(res => { |
| | | let result = res.data; |
| | | vm.$layer.msg(result.msg) |
| | | vm.queryData(); |
| | | }).catch(error => { |
| | | vm.$layer.msg('删除失败!请联系管理员') |
| | | }); |
| | | |
| | | }) |
| | | |
| | | }, |
| | | // 显示条数改变时 |
| | | handleSizeChange(val) { |
| | | this.pagesize = val; |
| | | this.queryData(); |
| | | }, |
| | | // 翻页 |
| | | handleCurrentChange(val) { |
| | | this.currentPage = val; |
| | | this.queryData(); |
| | | }, |
| | | // 查询列表数据 |
| | | queryData: function () { |
| | | let vm = this; |
| | | let loading = this.$layer.loading(1); |
| | | let searchParams = { |
| | | pageNum:vm.currentPage, |
| | | pageSize:vm.pagesize |
| | | } |
| | | |
| | | userPage(searchParams).then(res => { |
| | | // 关闭等待框 |
| | | this.$layer.close(loading); |
| | | let rs = res.data; |
| | | let data = []; |
| | | if (rs.data.data.list.length>0) { |
| | | data = rs.data.data.list.map(item => { |
| | | return item; |
| | | }); |
| | | if (data.length > 0) { |
| | | vm.totalNum = rs.data.data.total; |
| | | } else { |
| | | vm.totalNum = 0; |
| | | } |
| | | } |
| | | vm.userList = data; |
| | | vm.userList.map(item => { |
| | | item.URoleText = getLabelByValue(item.urole, this.userRoles); |
| | | item.typeText = getLabelByValue(item.type, this.userType); |
| | | item.statusText = getLabelByValue(item.status, this.userStatus); |
| | | return item; |
| | | }).filter(item=>{ |
| | | return item.UId>100 |
| | | }); |
| | | }).catch(error => { |
| | | |
| | | }); |
| | | }, |
| | | // 弹窗取消 |
| | | onClose: function () { |
| | | let vm = this; |
| | | vm.centerDialogVisible = false; |
| | | }, |
| | | // 确定回调 |
| | | success: function (result) { |
| | | let vm = this; |
| | | vm.centerDialogVisible = false; |
| | | if(vm.status=="add"){ |
| | | vm.$layer.msg("新增用户成功!") |
| | | }else{ |
| | | vm.$layer.msg("更新用户信息成功!") |
| | | } |
| | | |
| | | vm.queryData(); |
| | | } |
| | | }, |
| | | reFresh: true |
| | | } |
| | | }, |
| | | watch: { |
| | | |
| | | }, |
| | | components: { |
| | | Dialog, |
| | | addEdit |
| | | }, |
| | | created() { |
| | | |
| | | }, |
| | | computed: { |
| | | isSysAdmin() { |
| | | return this.userId == 1 ? true : false; |
| | | } |
| | | }, |
| | | mounted() { |
| | | let vm = this; |
| | | vm.queryData(); |
| | | this.$bus.$on('langChanged', () => { |
| | | this.queryData(); |
| | | }); |
| | | }, |
| | | methods: { |
| | | // 导出表格 |
| | | exportFile() { |
| | | let tHeader = ['MaintenanceArea', 'Name', 'Phone', 'Email', 'EntryDate', 'Gender', 'WorkTeam', 'AuthorityGroup', 'UserRole', 'UserType', 'ExpirationDate', 'UserState', 'AccessTimeControl', 'IPWhitelist'].map((v) => this.$t(v)); |
| | | let filterVal = ['udepartment', 'uname', 'umobilephone', 'uemail', 'uaccessionDay', 'usexStr', 'ujobGroup', 'permitGroupName', 'uroleText', 'typeText', 'expirationTime', 'statusText', 'visitTime', 'visitIp']; |
| | | let list = this.userList; |
| | | // if (list.length > 0) { |
| | | // list.map((item, index) => { |
| | | // if (item.ubaojiusr === 1) { |
| | | // item.uisBaojiusr = '是' |
| | | // } else { |
| | | // item.uisBaojiusr = '否' |
| | | // } |
| | | // }) |
| | | // } |
| | | let excelData = this.formatJson(filterVal, list); |
| | | export_json_to_excel(tHeader, excelData, this.$t('UserInfo')); |
| | | }, |
| | | formatJson(filterVal, jsonData) { |
| | | return jsonData.map(v => filterVal.map(j => v[j])); |
| | | }, |
| | | // 初始化组件 |
| | | installComponents: function () { |
| | | let vm = this; |
| | | vm.reFresh = false |
| | | vm.$nextTick(() => { |
| | | vm.reFresh = true |
| | | }) |
| | | }, |
| | | // 添加用户 |
| | | addUser: function () { |
| | | let vm = this; |
| | | vm.installComponents(); |
| | | vm.dialogTitle = this.$t('AddUser'); |
| | | vm.centerDialogVisible = true; |
| | | vm.status = 'add'; |
| | | vm.thisIndex = -1; |
| | | vm.opt = {}; |
| | | }, |
| | | unlock(index, data) { |
| | | let vm = this; |
| | | vm.$confirm(this.$t('Confirmunlock') + data.uname, this.$t('message'), { |
| | | confirmButtonText: this.$t('operate.ok'), |
| | | cancelButtonText: this.$t('operate.cancel'), |
| | | type: "warning", |
| | | }).then((re) => { |
| | | if (re != 'confirm') { |
| | | return false; |
| | | } |
| | | unLock({ uId: data.uid, unLockType: 1 }).then(res => { |
| | | let result = res.data; |
| | | if (result.code == 1) { |
| | | this.$message.info(this.$t('operate.successMsg')); |
| | | vm.queryData(); |
| | | } else { |
| | | this.$message.info(this.$t('operate.failMsg')); |
| | | } |
| | | }).catch(error => { |
| | | this.$message.info(this.$t('operate.failMsg')); |
| | | }); |
| | | |
| | | }) |
| | | }, |
| | | // 编辑 |
| | | editUser: function (index, data) { |
| | | let vm = this; |
| | | vm.installComponents(); |
| | | vm.dialogTitle = this.$t('Edituserinfo'); |
| | | vm.centerDialogVisible = true; |
| | | vm.status = 'edit'; |
| | | vm.thisIndex = index; |
| | | vm.opt = data; |
| | | }, |
| | | // 删除 |
| | | deleteUser: function (data) { |
| | | let vm = this; |
| | | this.$confirm(this.$t('Confirmdelete') + data.uname, this.$t('message'), { |
| | | confirmButtonText: this.$t('operate.ok'), |
| | | cancelButtonText: this.$t('operate.cancel'), |
| | | type: "warning", |
| | | }).then((re) => { |
| | | if (re != 'confirm') { |
| | | return false; |
| | | } |
| | | deleteInfo({ id: data.uid }).then(res => { |
| | | let result = res.data; |
| | | if (result.code) { |
| | | this.$message.info(this.$t('operate.successMsg')); |
| | | } else { |
| | | this.$message.info(this.$t('operate.failMsg')); |
| | | } |
| | | vm.queryData(); |
| | | }).catch(error => { |
| | | this.$message.info(this.$t('operate.failMsg')) |
| | | }); |
| | | |
| | | }) |
| | | |
| | | }, |
| | | // 显示条数改变时 |
| | | handleSizeChange(val) { |
| | | this.pagesize = val; |
| | | this.queryData(); |
| | | }, |
| | | // 翻页 |
| | | handleCurrentChange(val) { |
| | | this.currentPage = val; |
| | | this.queryData(); |
| | | }, |
| | | // 查询列表数据 |
| | | queryData: function () { |
| | | let vm = this; |
| | | let loading = this.$layer.loading(1); |
| | | let searchParams = { |
| | | pageNum: vm.currentPage, |
| | | pageSize: vm.pagesize |
| | | } |
| | | |
| | | userPage(searchParams).then(res => { |
| | | // 关闭等待框 |
| | | this.$layer.close(loading); |
| | | let rs = res.data; |
| | | let data = []; |
| | | if (rs.data.data.list.length > 0) { |
| | | data = rs.data.data.list.map(item => { |
| | | item.usexStr = 1 == item.usex ? this.$t('Female') : this.$t('Male'); |
| | | return item; |
| | | }); |
| | | if (data.length > 0) { |
| | | vm.totalNum = rs.data.data.total; |
| | | } else { |
| | | vm.totalNum = 0; |
| | | } |
| | | } |
| | | vm.userList = data; |
| | | vm.userList.map(item => { |
| | | item.URoleText = this.$t('user.' + getLabelByValue(item.urole, this.userRoles)); |
| | | item.typeText = this.$t('user.' + getLabelByValue(item.type, this.userType)); |
| | | item.statusText = this.$t('user.' + getLabelByValue(item.status, this.userStatus)); |
| | | return item; |
| | | }); |
| | | }).catch(error => { |
| | | |
| | | }); |
| | | }, |
| | | // 弹窗取消 |
| | | onClose: function () { |
| | | let vm = this; |
| | | vm.centerDialogVisible = false; |
| | | }, |
| | | // 确定回调 |
| | | success: function (result) { |
| | | let vm = this; |
| | | vm.centerDialogVisible = false; |
| | | if (vm.status == "add") { |
| | | vm.$layer.msg(this.$t('operate.successMsg')); |
| | | } else { |
| | | vm.$layer.msg(this.$t('operate.successMsg')); |
| | | } |
| | | |
| | | vm.queryData(); |
| | | } |
| | | }, |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | |
| | | </style> |
| | | <style scoped></style> |