This commit is contained in:
chengdandan 2023-02-24 15:10:28 +08:00
commit a5e2b6271d
6 changed files with 375 additions and 313 deletions

13
src/api/aboutMachine.js Normal file
View File

@ -0,0 +1,13 @@
import request from '@/utils/request.js';
import axios from 'axios';
export const getHostInfoApi = params => {
return axios.get('api/GetHostInfo', {
params
});
};
//保存主机名称
export const getSetHostName = params => {
return axios.get('api/SetHostName', {
params
});
};

13
src/api/iPSetting.js Normal file
View File

@ -0,0 +1,13 @@
import request from '@/utils/request.js';
import axios from 'axios';
export const getHostInfoApi = params => {
return axios.get('api/GetHostInfo', {
params
});
};
//保存主机名称
export const getSetHostName = params => {
return axios.get('api/SetHostName', {
params
});
};

View File

@ -15,13 +15,14 @@ export default {
postSetQuanjsz: 'http://172.16.1.168:5000/api/SetQuanjsz',
saveRoleApi: 'http://172.16.1.168:5000/api/AddZhangh',
editRoleApi: 'http://172.16.1.168:5000/api/EditZhangh',
//保存主机名称
editRoleApi: 'http://172.16.1.168:5000/api/EditZhangh',
//新增图形接口
addFigure: 'http://172.16.1.168:5000/api/AddJianktx',
//编辑图形名称
editFigure: 'http://172.16.1.168:5000/api/EditTuxmc',
//编辑保存组件弹窗传参
editComponent: 'http://172.16.1.168:5000/api/SetMonqjkzjcs'
setHostName: 'http://172.16.1.168:5000/api/SetHostName'
// `http://${ipUurl}:5000/api/AddShipjk`
// dataUrl: `http://${ipUurl}:5000/api/AddShipjk`,

View File

@ -5,13 +5,13 @@
<div class="content">
<div class="welcome">欢迎登录</div>
<el-form :model="param" :rules="rules" ref="login" label-width="100px" label-position="top" class="ms-content">
<el-form-item prop="Account" label="用户名">
<el-input v-model="param.Account" placeholder="输入您的账号">
<el-form-item prop="username" label="用户名">
<el-input v-model="param.username" placeholder="输入您的账号">
<el-button slot="prepend" icon="el-icon-user"></el-button>
</el-input>
</el-form-item>
<el-form-item prop="Password" label="密码" style="margin-top: 15px">
<el-input type="password" placeholder="请输入密码" v-model="param.Password" @keyup.enter.native="submitForm()">
<el-form-item prop="password" label="密码" style="margin-top: 15px">
<el-input type="password" placeholder="请输入密码" v-model="param.password" @keyup.enter.native="submitForm()">
<el-button slot="prepend" icon="el-icon-lock"></el-button>
</el-input>
</el-form-item>
@ -35,34 +35,35 @@ export default {
data() {
return {
param: {
Account: '',
Password: ''
username: 'admin',
password: '123456'
},
checked: false,
rules: {
Account: [{ required: true, message: '账号不能为空', trigger: 'blur' }],
Password: [{ required: true, message: '密码不能为空', trigger: 'blur' }]
username: [{ required: true, message: '账号不能为空', trigger: 'blur' }],
password: [{ required: true, message: '密码不能为空', trigger: 'blur' }]
}
};
},
created() {},
created() {
this.getType();
},
methods: {
getType() {
loginApi(this.param).then(res => {
if (res.data.code == 200) {
localStorage.setItem('user', JSON.stringify(res.data.data));
localStorage.setItem('ms_username', this.param.Account);
this.$router.push('/');
this.$message.success('登录成功');
} else {
this.$message.error(res.data.msg);
}
let datas = {
telephone: '13088888888',
typeCode: 2
};
loginApi(datas).then(res => {
console.log('c', res);
});
},
submitForm() {
this.$refs.login.validate(valid => {
if (valid) {
this.getType();
this.$message.success('登录成功');
localStorage.setItem('ms_username', this.param.username);
this.$router.push('/');
} else {
this.$message.error('请输入账号和密码');
console.log('error submit!!');

View File

@ -1,61 +1,55 @@
<template>
<div class="content-box">
<div class="container">
<p class="title">FTP设置</p>
<!-- <div class="test-div">
<i class="el-icon-edit"></i>
<i class="el-icon-share"></i>
<i class="el-icon-delete"></i>
</div> -->
<div class="content-box">
<div class="container">
<p class="title">FTP设置</p>
<el-form :model="form" label-position="left" label-width="110px" style="width:50%">
<el-form-item label="账号:">
<el-input placeholder="请输入账号名" v-model="form.ComponentPropsname" clearable></el-input>
</el-form-item>
<el-form-item label="密码:">
<el-input placeholder="请输入密码" v-model="form.password" show-password></el-input>
</el-form-item>
<el-form-item label="FTP">
<el-input placeholder="请输入账号名" v-model="form.FTP" clearable></el-input>
</el-form-item>
</el-form>
<el-form :model="form" label-position="left" label-width="110px" style="width:50%">
<el-form-item label="账号:">
<el-input placeholder="请输入账号名" v-model="form.ComponentPropsname" clearable></el-input>
</el-form-item>
<el-form-item label="密码:">
<el-input placeholder="请输入密码" v-model="form.password" show-password></el-input>
</el-form-item>
<el-form-item label="FTP">
<el-input placeholder="请输入账号名" v-model="form.FTP" clearable></el-input>
</el-form-item>
</el-form>
<el-button type="primary" @cilck="Submit">修改</el-button>
<el-button type="primary" @cilck="Submit">修改</el-button>
</div>
</div>
</div>
</template>
<script>
export default {
data() {
return {
form: {
name: '',
password: '',
FTP: '',
}
data() {
return {
form: {
name: '',
password: '',
FTP: ''
}
};
},
methods: {
Submit() {
this.form;
}
}
},
methods:{
Submit() {
this.form;
}
}
}
};
</script>
<style scoped>
.title {
width: 95%;
font-size: 25px;
text-align: left;
border-bottom: 1px solid black;
margin-bottom: 20px;
}
.el-form-item{
margin-bottom: 15px;
width: 95%;
font-size: 25px;
text-align: left;
border-bottom: 1px solid black;
margin-bottom: 20px;
}
.el-form-item {
margin-bottom: 15px;
}
.test-div i {
font-size: 25px;
font-size: 25px;
}
</style>
</style>

View File

@ -1,264 +1,304 @@
<template>
<div class="content-box">
<div class="container">
<el-form ref="form" :model="sizeForm" label-width="140px" >
<p>主机</p>
<el-form-item label="名称:" :label-width="formLabelWidth">
<!-- <el-col :span="6"> -->
<el-input v-model="sizeForm.name" autocomplete="off" style="width:50%"></el-input>
<!-- </el-col> -->
</el-form-item>
<el-form-item label="时间:" :label-width="formLabelWidth">
<!-- <el-col :span="6"> -->
<el-date-picker type="date" placeholder="选择日期" v-model="sizeForm.date1" style="width: 50%;" autocomplete="off" ></el-date-picker>
<!-- </el-col> -->
<!-- <el-col :span="2"> -->
<el-button type="primary" style="margin-left:10px" size="small">自动校验</el-button>
<!-- </el-col> -->
</el-form-item>
<p>备份&恢复</p>
<el-form-item label="备份服务器设置:">
<el-col :span="12">
<el-button type="primary" size="small">备份</el-button>
</el-col>
</el-form-item>
<el-form-item label="还原服务器设置:">
<el-col :span="3">
<el-button type="primary" disabled size="small">备份</el-button>
</el-col>
<el-col :span="4">
<el-upload
class="upload-demo"
action="https://jsonplaceholder.typicode.com/posts/"
:on-preview="handlePreview"
:on-remove="handleRemove"
:before-remove="beforeRemove"
multiple
:limit="3"
:on-exceed="handleExceed"
:file-list="fileList">
<el-button size="small" type="primary">点击上传</el-button>
</el-upload>
</el-col>
</el-form-item>
<p>出厂默认值</p>
<el-form-item label="还原服务器设置:">
<el-col :span="12">
<el-button type="primary" @click="handleReset()" size="small">重置默认值</el-button>
</el-col>
</el-form-item>
<p>重新启动</p>
<el-form-item label="重新启动系统:">
<el-col :span="12">
<el-button type="primary" @click="handleagain()" size="small">重新启动</el-button>
</el-col>
</el-form-item>
<p>全局设置</p>
<el-form-item label="视频接入上限:">
<el-input-number v-model="videoNumber" :min="1" size="mini"
:max="8"></el-input-number>
<i class="el-icon-warning" style="color: #409EFF; margin: 0 3px 0 10px;"></i>范围1-8默认6
</el-form-item>
<div class="content-box">
<div class="container">
<el-form ref="form" :model="sizeForm" label-width="140px">
<p>主机</p>
<el-form-item label="名称:" :label-width="formLabelWidth">
<el-input v-model="sizeForm.name" autocomplete="off" style="width:50%"></el-input>
<el-button type="primary" style="margin-left:10px" @click="saveHostName" size="small">保存</el-button>
</el-form-item>
<el-form-item label="时间:" :label-width="formLabelWidth">
<el-date-picker
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="选择日期"
v-model="sizeForm.date1"
style="width: 50%;"
autocomplete="off"
></el-date-picker>
<el-form-item label="跳帧设置:">
<!-- <el-input-number v-model="FPS" @change="handleChange" size="mini"></el-input-number> -->
<el-select v-model="FPS" size="mini" placeholder="请选择">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
<i class="el-icon-warning" style="color: #409EFF; margin: 0 3px 0 10px;"></i>默认取值单路视频流 0 2-3 路视频流 14-6 路视频流 4
</el-form-item>
<el-button type="primary" size="small" @click="commit()">保存</el-button>
</el-form>
</div>
</div>
<el-button type="primary" style="margin-left:10px" size="small">自动校验</el-button>
</el-form-item>
<p>备份&恢复</p>
<el-form-item label="备份服务器设置:">
<el-col :span="12">
<el-button type="primary" size="small">备份</el-button>
</el-col>
</el-form-item>
<el-form-item label="还原服务器设置:">
<el-col :span="3">
<el-button type="primary" disabled size="small">备份</el-button>
</el-col>
<el-col :span="4">
<el-upload
class="upload-demo"
action="https://jsonplaceholder.typicode.com/posts/"
:on-preview="handlePreview"
:on-remove="handleRemove"
:before-remove="beforeRemove"
multiple
:limit="3"
:on-exceed="handleExceed"
:file-list="fileList"
>
<el-button size="small" type="primary">点击上传</el-button>
</el-upload>
</el-col>
</el-form-item>
<p>出厂默认值</p>
<el-form-item label="还原服务器设置:">
<el-col :span="12">
<el-button type="primary" @click="handleReset()" size="small">重置默认值</el-button>
</el-col>
</el-form-item>
<p>重新启动</p>
<el-form-item label="重新启动系统:">
<el-col :span="12">
<el-button type="primary" @click="handleagain()" size="small">重新启动</el-button>
</el-col>
</el-form-item>
<p>全局设置</p>
<el-form-item label="视频接入上限:">
<el-input-number v-model="videoNumber" :min="1" size="mini" :max="8"></el-input-number>
<i class="el-icon-warning" style="color: #409EFF; margin: 0 3px 0 10px;"></i>范围1-8默认6
</el-form-item>
<el-form-item label="跳帧设置:">
<el-select v-model="FPS" size="mini" placeholder="请选择">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </el-option>
</el-select>
<i class="el-icon-warning" style="color: #409EFF; margin: 0 3px 0 10px;"></i>默认取值单路视频流 0 2-3 路视频流
14-6 路视频流 4
</el-form-item>
<el-button type="primary" size="small" @click="commit()">保存</el-button>
</el-form>
</div>
</div>
</template>
<script>
import {getQuanjszData} from "../../api/index";
import serverUrl from "../../config/apiurl.js"
import {setQuanjsz} from "@/api/index"
import axios from 'axios'
import { getHostInfoApi } from '../../api/aboutMachine';
import { getQuanjszData } from '../../api/index';
import serverUrl from '../../config/apiurl.js';
import { setQuanjsz } from '@/api/index';
import axios from 'axios';
export default {
data(){
return{
formLabelWidth: '120px',
sizeForm: {
name: '',
region: '',
date1: '',
date2: '',
delivery: false,
type: [],
resource: '',
desc: ''
},
fileList:[],
videoNumber: 6,
FPS: '0',
id:'',
options:[
{
value: '0',
label: '0'
},
{
value: '1',
label: '1'
},
{
value: '4',
label: '4'
},
],
}
},
mounted() {
this.getShipjkDatalist()
},
methods:{
handleagain(){
this.$confirm('此操作将重新启动系统, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
// this.$message({
// type: 'success',
// message: '!'
// });
}).catch(() => {
this.$message({
type: 'info',
message: '已取消'
});
});
data() {
return {
formLabelWidth: '120px',
sizeForm: {
name: '',
region: '',
date1: '',
date2: '',
delivery: false,
type: [],
resource: '',
desc: ''
},
fileList: [],
videoNumber: 6,
FPS: '0',
id: '',
options: [
{
value: '0',
label: '0'
},
{
value: '1',
label: '1'
},
{
value: '4',
label: '4'
}
]
};
},
handleReset(){
this.$confirm('此操作将重置默认值, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
// this.$message({
// type: 'success',
// message: '!'
// });
}).catch(() => {
this.$message({
type: 'info',
message: '已取消重置'
});
});
mounted() {
this.getShipjkDatalist();
this.getInfo();
},
handleRemove(file, fileList) {
console.log(file, fileList);
},
handlePreview(file) {
console.log(file);
},
handleExceed(files, fileList) {
this.$message.warning(`当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`);
},
beforeRemove(file, fileList) {
return this.$confirm(`确定移除 ${ file.name }`);
},
handleChangeVideoNumber(value){
console.log("videoNumber",value)
this.videoNumber=value
let formData = new FormData();
formData.append("F_NB_SHIPJRSX",value);
formData.append("F_NB_TIAOZSZ",this.FPS);
formData.append("F_VC_ID",this.id);
axios({
method: "post",
url: serverUrl.postSetQuanjsz,
data:formData
}).then((res) => {
console.log("res",res)
if(res.data.code==200){
this.$message({
message: res.data.msg,
type: 'success'
});
}else{
this.$message({
message: res.data.msg,
type: 'warning'
});
}
})
},
handleChange(value) {
console.log("FPS",value)
this.FPS=value
const formData = new URLSearchParams();
// let formData = new FormData();
formData.append("VideoAccessLimit",this.videoNumber);
formData.append("SkipFrame",value);
formData.append("GlobalSettingId",this.id);
formData(formData).then(res=>{
this.$message({
message: res.data.msg,
type: 'success'
});
})
},
//
getShipjkDatalist(){
getQuanjszData().then(res=>{
console.log("res11111",res)
if(res.data.code==200){
this.videoNumber=res.data.data.videoAccessLimit
this.FPS=res.data.data.skipFrame
this.id = res.data.data.globalSettingId
}
})
},
//
commit(){
const formData = new URLSearchParams();
// let formData = new FormData();
formData.append("VideoAccessLimit",this.videoNumber);
formData.append("SkipFrame",this.FPS);
formData.append("GlobalSettingId",this.id);
setQuanjsz(formData).then(res=>{
this.$message({
message: res.data.msg,
type: 'success'
methods: {
//
saveHostName(value) {
let formData = new FormData();
formData.append('HostName', this.sizeForm.name);
axios({
method: 'post',
url: serverUrl.setHostName,
data: formData
}).then(res => {
console.log('res', res);
if (res.data.code == 200) {
this.$message({
message: res.data.msg,
type: 'success'
});
} else {
this.$message({
message: res.data.msg,
type: 'warning'
});
}
});
})
}
}
}
},
//
getInfo() {
getHostInfoApi()
.then(res => {
this.sizeForm.name = res.data.data.hostname;
this.sizeForm.date1 = res.data.data.time;
console.log(res.data.data, 11111);
})
.catch(err => {
this.$message.error(res.data.msg);
});
},
handleagain() {
this.$confirm('此操作将重新启动系统, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
// this.$message({
// type: 'success',
// message: '!'
// });
})
.catch(() => {
this.$message({
type: 'info',
message: '已取消'
});
});
},
handleReset() {
this.$confirm('此操作将重置默认值, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
// this.$message({
// type: 'success',
// message: '!'
// });
})
.catch(() => {
this.$message({
type: 'info',
message: '已取消重置'
});
});
},
handleRemove(file, fileList) {
console.log(file, fileList);
},
handlePreview(file) {
console.log(file);
},
handleExceed(files, fileList) {
this.$message.warning(
`当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`
);
},
beforeRemove(file, fileList) {
return this.$confirm(`确定移除 ${file.name}`);
},
handleChangeVideoNumber(value) {
this.videoNumber = value;
let formData = new FormData();
formData.append('F_NB_SHIPJRSX', value);
formData.append('F_NB_TIAOZSZ', this.FPS);
formData.append('F_VC_ID', this.id);
axios({
method: 'post',
url: serverUrl.postSetQuanjsz,
data: formData
}).then(res => {
console.log('res', res);
if (res.data.code == 200) {
this.$message({
message: res.data.msg,
type: 'success'
});
} else {
this.$message({
message: res.data.msg,
type: 'warning'
});
}
});
},
handleChange(value) {
console.log('FPS', value);
this.FPS = value;
const formData = new URLSearchParams();
// let formData = new FormData();
formData.append('VideoAccessLimit', this.videoNumber);
formData.append('SkipFrame', value);
formData.append('GlobalSettingId', this.id);
formData(formData).then(res => {
this.$message({
message: res.data.msg,
type: 'success'
});
});
},
//
getShipjkDatalist() {
getQuanjszData().then(res => {
console.log('res11111', res);
if (res.data.code == 200) {
this.videoNumber = res.data.data.videoAccessLimit;
this.FPS = res.data.data.skipFrame;
this.id = res.data.data.globalSettingId;
}
});
},
//
commit() {
const formData = new URLSearchParams();
// let formData = new FormData();
formData.append('VideoAccessLimit', this.videoNumber);
formData.append('SkipFrame', this.FPS);
formData.append('GlobalSettingId', this.id);
setQuanjsz(formData).then(res => {
this.$message({
message: res.data.msg,
type: 'success'
});
});
}
}
};
</script>
<style>
.test-div i{
font-size: 25px;
.test-div i {
font-size: 25px;
}
</style>
<style lang="scss" scoped>
/deep/ .el-form-item__label{
text-align: left;
font-size: 15px;
}
/deep/ .el-form-item{
margin-bottom: 15px;
}
.container{
width: 100%;
height: 100%;
p{
width: 95%;
font-size: 25px;
/deep/ .el-form-item__label {
text-align: left;
border-bottom: 1px solid black;
margin-bottom: 20px;
}
font-size: 15px;
}
/deep/ .el-form-item {
margin-bottom: 15px;
}
.container {
width: 100%;
height: 100%;
p {
width: 95%;
font-size: 25px;
text-align: left;
border-bottom: 1px solid black;
margin-bottom: 20px;
}
}
</style>