| | |
| | | </div> |
| | | </div> |
| | | <div class="sub-account" v-else-if="isShowAdd"> |
| | | <div class="add-title" @click="isShowAdd = false"> |
| | | <!-- <div class="add-title" @click="isShowAdd = false"> |
| | | <span class="iconfont"></span> |
| | | <span>添加子账户</span> |
| | | </div> |
| | | <span>子账户管理</span> |
| | | </div> --> |
| | | <div class="head-name" style="margin-bottom:20px">子账户编辑</div> |
| | | <el-form |
| | | :model="ruleForm" |
| | | :rules="rules" |
| | |
| | | /> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="短信推送" v-show="isEditing"> |
| | | <el-select v-model="smsSceneConfig" multiple collapse-tags style="width: 250px" placeholder="请选择"> |
| | | <el-option |
| | | v-for="item in taskOptions" |
| | | style="font-size: 12px" |
| | | :key="item.id" |
| | | :value="item.name" |
| | | :label="item.name" |
| | | :title="item.name" |
| | | ></el-option> |
| | | </el-select> |
| | | <el-select |
| | | v-model="smsLevelConfig" |
| | | multiple |
| | | collapse-tags |
| | | style="margin-left:10px;width: 150px" |
| | | placeholder="请选择" |
| | | > |
| | | <el-option v-for="item in levelOptions" :key="item.value" :label="item.label" :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | <el-checkbox v-model="smsEnable" style="margin-left:20px">启用</el-checkbox> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div class="right"> |
| | | <div class="button searchBtn" @click="saveSubUser">保存</div> |
| | | <div class="button searchBtn" @click="saveUser">保存</div> |
| | | <div class="button resetBtn" @click="resetUser">重置</div> |
| | | <div class="button resetBtn" style="margin-left:20px" @click="goback">返回</div> |
| | | </div> |
| | |
| | | |
| | | <script> |
| | | import { findUserList, saveSubUser, getMenu, getDataTree, deleteUser } from "@/api/user" |
| | | import { findTaskById, updateTask } from "@/api/report" |
| | | import { getAreas, getDic } from "@/api/login" |
| | | |
| | | import Steps from "./Steps" |
| | |
| | | Steps, |
| | | StepsCard, |
| | | TreeMenu |
| | | }, |
| | | computed: { |
| | | taskOptions() { |
| | | return this.VideoPhotoData.tasks.filter((item) => !item.isDelete) |
| | | } |
| | | }, |
| | | data() { |
| | | const validateTree = (rule, value, callback) => { |
| | |
| | | }, |
| | | sysMenus: [], |
| | | DataTree: [], |
| | | smsSceneConfig: [], |
| | | smsLevelConfig: [], |
| | | smsEnable: false, |
| | | userInfo: {}, |
| | | curEditId: "", |
| | | defaultProp: { |
| | | children: "children", |
| | | label: "name" |
| | | } |
| | | }, |
| | | levelOptions: [ |
| | | { value: "一级", label: "一级" }, |
| | | { value: "二级", label: "二级" }, |
| | | { value: "三级", label: "三级" }, |
| | | { value: "四级", label: "四级" }, |
| | | { value: "五级", label: "五级" } |
| | | ] |
| | | } |
| | | }, |
| | | created() { |
| | |
| | | mounted() { |
| | | this.TreeDataPool.reset() |
| | | this.TreeDataPool.multiple = true |
| | | this.VideoPhotoData.queryTaskList() |
| | | }, |
| | | methods: { |
| | | fetchDataTree() { |
| | |
| | | this.checkedMenu = row.menuIds |
| | | this.checkedData = row.dataIds |
| | | |
| | | this.smsSceneConfig = [] |
| | | this.smsLevelConfig = [] |
| | | this.smsEnable = false |
| | | findTaskById({ id: row.id }).then((rsp) => { |
| | | if (rsp && rsp.success && rsp.data != "") { |
| | | this.smsSceneConfig = rsp.data.taskName.split(",") |
| | | this.smsLevelConfig = rsp.data.level.split(",") |
| | | this.smsEnable = rsp.data.enable |
| | | } |
| | | }) |
| | | |
| | | // 查询当前用户权限下所有可管理的摄像机 |
| | | if (row.dataIds) { |
| | | sessionStorage.setItem("clusterId", row.dataIds[0]) |
| | | await this.TreeDataPool.fetchTreeData() |
| | | } |
| | | |
| | | // 用email字段暂时代替摄像机集合字段 |
| | | let checkedCameras = row.email |
| | | |
| | |
| | | provinceId: "", |
| | | authDuration: 1 |
| | | } |
| | | this.smsSceneConfig = [] |
| | | this.smsLevelConfig = [] |
| | | this.smsEnable = false |
| | | this.$nextTick(() => { |
| | | this.$refs.treeMenus.setCheckedKeys([]) |
| | | this.$refs.treeData.setCheckedKeys([]) |
| | |
| | | console.log("查询行业列表失败!") |
| | | } |
| | | }, |
| | | saveSubUser() { |
| | | saveUser() { |
| | | let _this = this |
| | | this.ruleForm.menuIds = this.$refs.treeMenus.getCheckedKeys() |
| | | this.ruleForm.dataIds = this.$refs.treeData.getCheckedKeys() |
| | |
| | | saveSubUser(json) |
| | | .then((res) => { |
| | | if (res.success) { |
| | | this.$notify.success(res.data) |
| | | this.isShowAdd = false |
| | | this.isEditing = false |
| | | this.findUserList() |
| | | // 保存消息推送 |
| | | if (_this.isEditing) { |
| | | let smsTaskInfo = { |
| | | id: _this.ruleForm.id, |
| | | taskName: _this.smsSceneConfig.join(","), |
| | | level: _this.smsLevelConfig.join(","), |
| | | cameras: json.email, |
| | | person: json.trueName, |
| | | tel: json.phoneNum, |
| | | enable: _this.smsEnable, |
| | | IsDel: "0" |
| | | } |
| | | |
| | | updateTask(smsTaskInfo).then((rsp) => { |
| | | // console.log(rsp) |
| | | }) |
| | | } |
| | | |
| | | _this.$notify.success(res.data) |
| | | _this.isShowAdd = false |
| | | _this.isEditing = false |
| | | _this.findUserList() |
| | | } else { |
| | | this.$notify.error(res.msg) |
| | | _this.$notify.error(res.msg) |
| | | } |
| | | }) |
| | | .catch((err) => { |
| | | this.$notify.error(err.data.msg) |
| | | _this.$notify.error(err.data.msg) |
| | | }) |
| | | } else { |
| | | return false |
| | |
| | | this.inputText = "" |
| | | this.timeLength = null |
| | | }, |
| | | // 跳到设备详情 |
| | | checkDetail(row) { |
| | | this.$router.push({ |
| | | path: "/equipmentDetail", |
| | | query: { |
| | | id: row.devId, |
| | | ip: row.devIp, |
| | | port: row.serverPort, |
| | | ndid: row.id |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | // 跳到算法详情 |
| | | algorithmDetail(row) { |
| | | this.$router.push({ |
| | | path: "/algorithmDetail", |
| | | query: { |
| | | id: row.devId, |
| | | ip: row.devIp, |
| | | port: row.serverPort |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | // 查询列表 |
| | | |
| | | save() {}, |
| | | //分页功能 |
| | | handleSizeChange(size) { |
| | | this.size = size |
| | |
| | | this.findUserList() |
| | | }, |
| | | |
| | | //解绑按钮 |
| | | Untying(row) { |
| | | console.log(row) |
| | | this.unbindId = row.id |
| | | this.isShowUnbind = true |
| | | }, |
| | | |
| | | //获得默认时间 |
| | | getDateInit() { |
| | | // 要求 默认一个月 |
| | | const end = new Date() |
| | | const start = new Date() |
| | | const nowDate = new Date() |
| | | nowDate.setHours(0) |
| | | nowDate.setMinutes(0) |
| | | nowDate.setSeconds(0) |
| | | nowDate.setMilliseconds(0) |
| | | start.setTime(nowDate.getTime() - 3600 * 1000 * 24 * 30) |
| | | end.setTime(nowDate.getTime() + 3600 * 1000 * 24 - 1) |
| | | return [this.$moment(start).format("YYYY-MM-DD HH:mm:ss"), this.$moment(end).format("YYYY-MM-DD HH:mm:ss")] |
| | | }, |
| | | |
| | | // 关闭解绑弹窗 |
| | | closeUnbindBox() { |
| | | this.isShowUnbind = false |
| | | }, |
| | | |
| | | //解绑成功回调 |
| | | reflash() { |
| | | this.isShowUnbind = false |
| | | }, |
| | | |
| | | clearSearch() { |
| | | this.searchTime = this.getDateInit() |
| | | this.inputText = "" |
| | | }, |
| | | |
| | | //退出集群 |
| | | quitCluster(equipment) { |
| | | this.activeEquipment = equipment |
| | | this.showQuit = true |
| | | }, |
| | | |
| | | //加入集群 |
| | | joinCluster(equipment) { |
| | | this.activeEquipment = equipment |
| | | this.showJoin = true |
| | | // 生成uuid |
| | | getUuid() { |
| | | let originStr = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" |
| | | let originChar = "0123456789abcdef" |
| | | let len = originChar.length |
| | | return originStr.replace(/x/g, function(match) { |
| | | return originChar.charAt(Math.floor(Math.random() * len)) |
| | | }) |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | } |
| | | .searchBtn { |
| | | width: 60px; |
| | | height: 32px; |
| | | line-height: 32px; |
| | | width: 50px; |
| | | height: 25px; |
| | | line-height: 25px; |
| | | font-size: 14px; |
| | | text-align: center; |
| | | color: #fff; |
| | | background: #0065ff; |
| | |
| | | display: flex; |
| | | } |
| | | .resetBtn { |
| | | width: 60px; |
| | | height: 32px; |
| | | line-height: 32px; |
| | | width: 50px; |
| | | height: 25px; |
| | | line-height: 25px; |
| | | font-size: 14px; |
| | | text-align: center; |
| | | color: #0065ff; |
| | | box-sizing: border-box; |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | .el-select ::v-deep { |
| | | .el-select__tags-text { |
| | | color: #3d3d3d; |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | | |