临时提交

pull/1642/head
648540858 2024-07-10 17:53:15 +08:00
parent a084fac7cd
commit bec52f687e
2 changed files with 15 additions and 99 deletions

View File

@ -1,25 +1,9 @@
<template> <template>
<div id="ChannelEdit" v-loading="isLoging"> <div id="ChannelEdit" v-loading="isLoging" style="width: 100%">
<el-form ref="passwordForm" :rules="rules" status-icon label-width="80px"> <el-form ref="passwordForm" :rules="rules" status-icon label-width="80px">
<el-form-item label="用户名" prop="username"> <!-- <el-form-item label="gbName" prop="gbName">-->
<el-input v-model="username" autocomplete="off"></el-input> <!-- <el-input v-model="form.gbName"></el-input>-->
</el-form-item> <!-- </el-form-item>-->
<el-form-item label="用户类型" prop="roleId" >
<el-select v-model="roleId" placeholder="请选择" style="width: 100%">
<el-option
v-for="item in options"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="密码" prop="password">
<el-input v-model="password" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="确认密码" prop="confirmPassword">
<el-input v-model="confirmPassword" autocomplete="off"></el-input>
</el-form-item>
<el-form-item> <el-form-item>
<div style="float: right;"> <div style="float: right;">
@ -35,93 +19,22 @@
export default { export default {
name: "channelEdit", name: "channelEdit",
props: {}, props: [ 'id',],
computed: {}, computed: {},
created() { created() {
}, },
data() { data() {
let validatePass1 = (rule, value, callback) => {
if (value === '') {
callback(new Error('请输入新密码'));
} else {
if (this.confirmPassword !== '') {
this.$refs.passwordForm.validateField('confirmPassword');
}
callback();
}
};
let validatePass2 = (rule, value, callback) => {
if (this.confirmPassword === '') {
callback(new Error('请再次输入密码'));
} else if (this.confirmPassword !== this.password) {
callback(new Error('两次输入密码不一致!'));
} else {
callback();
}
};
return { return {
value:"", form: {},
options: [],
loading: false,
username: null,
password: null,
roleId: null,
confirmPassword: null,
listChangeCallback: null,
showDialog: false,
isLoging: false,
rules: {
newPassword: [{required: true, validator: validatePass1, trigger: "blur"}, {
pattern: /^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,.\/]).{8,20}$/,
message: "密码长度在8-20位之间,由字母+数字+特殊字符组成",
},],
confirmPassword: [{required: true, validator: validatePass2, trigger: "blur"}],
},
}; };
}, },
methods: { methods: {
openDialog: function (callback) {
this.listChangeCallback = callback;
this.showDialog = true;
},
onSubmit: function () { onSubmit: function () {
this.$axios({
method: 'post',
url: "/api/user/add",
params: {
username: this.username,
password: this.password,
roleId: this.roleId
}
}).then((res) => {
if (res.data.code === 0) {
this.$message({
showClose: true,
message: '添加成功',
type: 'success',
});
this.showDialog = false;
this.listChangeCallback()
} else {
this.$message({
showClose: true,
message: res.data.msg,
type: 'error'
});
}
}).catch((error) => {
console.error(error)
});
}, },
close: function () { close: function () {
this.showDialog = false;
this.password = null;
this.confirmPassword = null;
this.username = null;
this.roleId = null;
}, },
getAllRole:function () { getAllRole:function () {

View File

@ -1,6 +1,6 @@
<template> <template>
<div id="channelList" style="width: 100%"> <div id="channelList" style="width: 100%">
<div class="page-header"> <div v-if="!editId" class="page-header">
<div class="page-title"> <div class="page-title">
<el-button icon="el-icon-back" size="mini" style="font-size: 20px; color: #000;" type="text" @click="showDevice" ></el-button> <el-button icon="el-icon-back" size="mini" style="font-size: 20px; color: #000;" type="text" @click="showDevice" ></el-button>
<el-divider direction="vertical"></el-divider> <el-divider direction="vertical"></el-divider>
@ -45,7 +45,7 @@
</div> </div>
</div> </div>
<devicePlayer ref="devicePlayer"></devicePlayer> <devicePlayer ref="devicePlayer"></devicePlayer>
<el-container v-loading="isLoging" style="height: 82vh;"> <el-container v-if="!editId" v-loading="isLoging" style="height: 82vh;">
<el-aside width="auto" style="height: 82vh; background-color: #ffffff; overflow: auto" v-if="showTree"> <el-aside width="auto" style="height: 82vh; background-color: #ffffff; overflow: auto" v-if="showTree">
<DeviceTree ref="deviceTree" :device="device" :onlyCatalog="true" :clickEvent="treeNodeClickEvent"></DeviceTree> <DeviceTree ref="deviceTree" :device="device" :onlyCatalog="true" :clickEvent="treeNodeClickEvent"></DeviceTree>
</el-aside> </el-aside>
@ -161,7 +161,7 @@
</el-pagination> </el-pagination>
</el-main> </el-main>
</el-container> </el-container>
<channel-edit v-if="editId" id="editId"></channel-edit>
<!--设备列表--> <!--设备列表-->
</div> </div>
@ -172,13 +172,15 @@ import devicePlayer from './dialog/devicePlayer.vue'
import uiHeader from '../layout/UiHeader.vue' import uiHeader from '../layout/UiHeader.vue'
import DeviceService from "./service/DeviceService"; import DeviceService from "./service/DeviceService";
import DeviceTree from "./common/DeviceTree"; import DeviceTree from "./common/DeviceTree";
import ChannelEdit from "./ChannelEdit";
export default { export default {
name: 'channelList', name: 'channelList',
components: { components: {
devicePlayer, devicePlayer,
uiHeader, uiHeader,
DeviceTree DeviceTree,
ChannelEdit,
}, },
data() { data() {
return { return {
@ -201,6 +203,7 @@ export default {
beforeUrl: "/deviceList", beforeUrl: "/deviceList",
isLoging: false, isLoging: false,
showTree: false, showTree: false,
editId: null,
loadSnap: {}, loadSnap: {},
ptzTypes: { ptzTypes: {
0: "未知", 0: "未知",
@ -545,7 +548,7 @@ export default {
}, },
// //
handleEdit(row) { handleEdit(row) {
this.editId = row.id
} }
} }
}; };