old mode 100644
new mode 100755
| | |
| | | <el-input v-model="platform.name"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="SIP服务国标编码" prop="serverGBId"> |
| | | <el-input v-model="platform.serverGBId" clearable></el-input> |
| | | <el-input v-model="platform.serverGBId" clearable @input="serverGBIdChange"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="SIP服务国标域" prop="serverGBDomain"> |
| | | <el-input v-model="platform.serverGBDomain" clearable></el-input> |
| | |
| | | <el-input v-model="platform.serverIP" clearable></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="SIP服务端口" prop="serverPort"> |
| | | <el-input v-model="platform.serverPort" clearable></el-input> |
| | | <el-input v-model="platform.serverPort" clearable type="number"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="设备国标编号" prop="deviceGBId"> |
| | | <el-input v-model="platform.deviceGBId" clearable></el-input> |
| | | <el-input v-model="platform.deviceGBId" clearable @input="deviceGBIdChange"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="本地IP" prop="deviceIp"> |
| | | <el-input v-model="platform.deviceIp" :disabled="true"></el-input> |
| | | <el-select v-model="platform.deviceIp" placeholder="请选择与上级相通的网卡" style="width: 100%"> |
| | | <el-option |
| | | v-for="ip in deviceIp" |
| | | :key="ip" |
| | | :label="ip" |
| | | :value="ip"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="本地端口" prop="devicePort"> |
| | | <el-input v-model="platform.devicePort" :disabled="true"></el-input> |
| | | <el-input v-model="platform.devicePort" :disabled="true" type="number"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="SDP发流IP" prop="sendStreamIp"> |
| | | <el-input v-model="platform.sendStreamIp"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form ref="platform2" :rules="rules" :model="platform" label-width="160px"> |
| | | <el-form-item label="行政区划" prop="administrativeDivision"> |
| | | <el-input v-model="platform.administrativeDivision" clearable></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="SIP认证用户名" prop="username"> |
| | | <el-input v-model="platform.username"></el-input> |
| | | </el-form-item> |
| | |
| | | <el-option label="TCP" value="TCP"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="目录分组" prop="catalogGroup"> |
| | | <el-select |
| | | v-model="platform.catalogGroup" |
| | | style="width: 100%" |
| | | placeholder="请选择目录分组" |
| | | > |
| | | <el-option label="1" value="1"></el-option> |
| | | <el-option label="2" value="2"></el-option> |
| | | <el-option label="4" value="4"></el-option> |
| | | <el-option label="8" value="8"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="字符集" prop="characterSet"> |
| | | <el-select |
| | | v-model="platform.characterSet" |
| | |
| | | </el-form-item> |
| | | <el-form-item label="其他选项"> |
| | | <el-checkbox label="启用" v-model="platform.enable" @change="checkExpires"></el-checkbox> |
| | | <el-checkbox label="云台控制" v-model="platform.ptz"></el-checkbox> |
| | | <el-checkbox label="RTCP保活" v-model="platform.rtcp"></el-checkbox> |
| | | <!-- <el-checkbox label="云台控制" v-model="platform.ptz"></el-checkbox>--> |
| | | <el-checkbox label="拉起推流" v-model="platform.startOfflinePush"></el-checkbox> |
| | | <el-checkbox label="RTCP保活" v-model="platform.rtcp" @change="rtcpCheckBoxChange"></el-checkbox> |
| | | <el-checkbox label="消息通道" v-model="platform.asMessageChannel" ></el-checkbox> |
| | | <el-checkbox label="推送通道" v-model="platform.autoPushChannel" ></el-checkbox> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" @click="onSubmit">{{ |
| | |
| | | name: "platformEdit", |
| | | props: {}, |
| | | computed: {}, |
| | | created() {}, |
| | | data() { |
| | | var deviceGBIdRules = async (rule, value, callback) => { |
| | | console.log(value); |
| | |
| | | callback(new Error("请输入设备国标编号")); |
| | | } else { |
| | | var exit = await this.deviceGBIdExit(value); |
| | | console.log(exit); |
| | | console.log(exit == "true"); |
| | | console.log(exit === "true"); |
| | | if (exit) { |
| | | callback(new Error("设备国标编号已存在")); |
| | | } else { |
| | |
| | | showDialog: false, |
| | | isLoging: false, |
| | | onSubmit_text: "立即创建", |
| | | saveUrl: "/api/platform/save", |
| | | |
| | | platform: { |
| | | id: null, |
| | | enable: true, |
| | | ptz: true, |
| | | rtcp: false, |
| | | name: "测试001", |
| | | serverGBId: "34020000002000000001", |
| | | serverGBDomain: "3402000000", |
| | | serverIP: "192.168.1.141", |
| | | serverPort: "5060", |
| | | deviceGBId: "34020000001320001101", |
| | | deviceIp: "192.168.1.20", |
| | | devicePort: "5060", |
| | | username: "34020000001320001101", |
| | | password: "12345678", |
| | | expires: 300, |
| | | asMessageChannel: false, |
| | | autoPushChannel: false, |
| | | name: null, |
| | | serverGBId: null, |
| | | serverGBDomain: null, |
| | | serverIP: null, |
| | | serverPort: null, |
| | | deviceGBId: null, |
| | | deviceIp: null, |
| | | devicePort: null, |
| | | username: null, |
| | | password: null, |
| | | expires: 3600, |
| | | keepTimeout: 60, |
| | | transport: "UDP", |
| | | characterSet: "GB2312", |
| | | startOfflinePush: false, |
| | | catalogGroup: 1, |
| | | administrativeDivision: "", |
| | | sendStreamIp: null, |
| | | }, |
| | | deviceIp: [], // 存储用户选择的设备IP |
| | | rules: { |
| | | name: [{ required: true, message: "请输入平台名称", trigger: "blur" }], |
| | | serverGBId: [ |
| | |
| | | methods: { |
| | | openDialog: function (platform, callback) { |
| | | var that = this; |
| | | this.$axios({ |
| | | method: 'get', |
| | | url:`/api/platform/server_config` |
| | | }).then(function (res) { |
| | | console.log(res); |
| | | that.platform.deviceGBId = res.data.username; |
| | | that.platform.deviceIp = res.data.deviceIp; |
| | | that.platform.devicePort = res.data.devicePort; |
| | | that.platform.username = res.data.username; |
| | | that.platform.password = res.data.password; |
| | | }).catch(function (error) { |
| | | console.log(error); |
| | | }); |
| | | this.showDialog = true; |
| | | this.listChangeCallback = callback; |
| | | if (platform != null) { |
| | | this.platform = platform; |
| | | this.onSubmit_text = "保存"; |
| | | } else { |
| | | if (platform == null) { |
| | | this.onSubmit_text = "立即创建"; |
| | | } |
| | | }, |
| | | onSubmit: function () { |
| | | console.log("onSubmit"); |
| | | var that = this; |
| | | that.$axios({ |
| | | method: 'post', |
| | | url:`/api/platform/save`, |
| | | data: that.platform |
| | | }).then(function (res) { |
| | | if (res.data == "success") { |
| | | that.$message({ |
| | | showClose: true, |
| | | message: "保存成功", |
| | | type: "success", |
| | | }); |
| | | that.showDialog = false; |
| | | if (that.listChangeCallback != null) { |
| | | that.listChangeCallback(); |
| | | } |
| | | this.saveUrl = "/api/platform/add"; |
| | | this.$axios({ |
| | | method: 'get', |
| | | url:`/api/platform/server_config` |
| | | }).then(function (res) { |
| | | console.log(res); |
| | | if (res.data.code === 0) { |
| | | that.platform.deviceGBId = res.data.data.username; |
| | | that.deviceIp = res.data.data.deviceIp.split(','); |
| | | that.platform.devicePort = res.data.data.devicePort; |
| | | that.platform.username = res.data.data.username; |
| | | that.platform.password = res.data.data.password; |
| | | that.platform.sendStreamIp = res.data.data.sendStreamIp; |
| | | that.platform.administrativeDivision = res.data.data.username.substr(0, 6); |
| | | } |
| | | |
| | | }).catch(function (error) { |
| | | console.log(error); |
| | | }); |
| | | }else { |
| | | this.platform.id = platform.id; |
| | | this.platform.enable = platform.enable; |
| | | this.platform.ptz = platform.ptz; |
| | | this.platform.rtcp = platform.rtcp; |
| | | this.platform.asMessageChannel = platform.asMessageChannel; |
| | | this.platform.autoPushChannel = platform.autoPushChannel; |
| | | this.platform.name = platform.name; |
| | | this.platform.serverGBId = platform.serverGBId; |
| | | this.platform.serverGBDomain = platform.serverGBDomain; |
| | | this.platform.serverIP = platform.serverIP; |
| | | this.platform.serverPort = platform.serverPort; |
| | | this.platform.deviceGBId = platform.deviceGBId; |
| | | this.deviceIp = platform.deviceIp.split(','); |
| | | this.platform.devicePort = platform.devicePort; |
| | | this.platform.username = platform.username; |
| | | this.platform.password = platform.password; |
| | | this.platform.expires = platform.expires; |
| | | this.platform.keepTimeout = platform.keepTimeout; |
| | | this.platform.transport = platform.transport; |
| | | this.platform.characterSet = platform.characterSet; |
| | | this.platform.catalogId = platform.catalogId; |
| | | this.platform.startOfflinePush = platform.startOfflinePush; |
| | | this.platform.catalogGroup = platform.catalogGroup; |
| | | this.platform.sendStreamIp = platform.sendStreamIp; |
| | | this.platform.administrativeDivision = platform.administrativeDivision; |
| | | this.onSubmit_text = "保存"; |
| | | this.saveUrl = "/api/platform/save"; |
| | | } |
| | | this.showDialog = true; |
| | | this.listChangeCallback = callback; |
| | | }, |
| | | serverGBIdChange: function () { |
| | | if (this.platform.serverGBId.length > 10) { |
| | | this.platform.serverGBDomain = this.platform.serverGBId.substr(0, 10); |
| | | } |
| | | }, |
| | | deviceGBIdChange: function () { |
| | | |
| | | this.platform.username = this.platform.deviceGBId ; |
| | | if (this.platform.administrativeDivision == null) { |
| | | this.platform.administrativeDivision = this.platform.deviceGBId.substr(0, 6); |
| | | } |
| | | }, |
| | | onSubmit: function () { |
| | | this.saveForm() |
| | | }, |
| | | saveForm: function (){ |
| | | this.$axios({ |
| | | method: 'post', |
| | | url: this.saveUrl, |
| | | data: this.platform |
| | | }).then((res) =>{ |
| | | if (res.data.code === 0) { |
| | | this.$message({ |
| | | showClose: true, |
| | | message: "保存成功", |
| | | type: "success", |
| | | }); |
| | | this.showDialog = false; |
| | | if (this.listChangeCallback != null) { |
| | | this.listChangeCallback(); |
| | | } |
| | | }else { |
| | | this.$message({ |
| | | showClose: true, |
| | | message: res.data.msg, |
| | | type: "error", |
| | | }); |
| | | } |
| | | }).catch((error)=> { |
| | | console.log(error); |
| | | }); |
| | | }, |
| | | close: function () { |
| | | console.log("关闭添加视频平台"); |
| | | this.showDialog = false; |
| | | this.$refs.platform1.resetFields(); |
| | | this.$refs.platform2.resetFields(); |
| | | this.platform = { |
| | | id: null, |
| | | enable: true, |
| | | ptz: true, |
| | | rtcp: false, |
| | | asMessageChannel: false, |
| | | autoPushChannel: false, |
| | | name: null, |
| | | serverGBId: null, |
| | | administrativeDivision: null, |
| | | serverGBDomain: null, |
| | | serverIP: null, |
| | | serverPort: null, |
| | | deviceGBId: null, |
| | | deviceIp: null, |
| | | devicePort: null, |
| | | username: null, |
| | | password: null, |
| | | expires: 3600, |
| | | keepTimeout: 60, |
| | | transport: "UDP", |
| | | characterSet: "GB2312", |
| | | startOfflinePush: false, |
| | | catalogGroup: 1, |
| | | } |
| | | }, |
| | | deviceGBIdExit: async function (deviceGbId) { |
| | | var result = false; |
| | | var that = this; |
| | | await that.$axios({ |
| | | method: 'post', |
| | | method: 'get', |
| | | url:`/api/platform/exit/${deviceGbId}`}) |
| | | .then(function (res) { |
| | | result = res.data; |
| | | if (res.data.code === 0) { |
| | | result = res.data.data; |
| | | } |
| | | }) |
| | | .catch(function (error) { |
| | | console.log(error); |
| | |
| | | return result; |
| | | }, |
| | | checkExpires: function() { |
| | | if (this.platform.enable && this.platform.expires == "0") { |
| | | this.platform.expires = "300"; |
| | | if (this.platform.enable && this.platform.expires === "0") { |
| | | this.platform.expires = "3600"; |
| | | } |
| | | } |
| | | }, |
| | | rtcpCheckBoxChange: function (result){ |
| | | if (result) { |
| | | this.$message({ |
| | | showClose: true, |
| | | message: "开启RTCP保活需要上级平台支持,可以避免无效推流", |
| | | type: "warning", |
| | | }); |
| | | } |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style> |
| | | /* 谷歌 */ |
| | | input::-webkit-outer-spin-button, |
| | | input::-webkit-inner-spin-button { |
| | | -webkit-appearance: none; |
| | | appearance: none; |
| | | margin: 0; |
| | | } |
| | | /* 火狐 */ |
| | | input{ |
| | | -moz-appearance:textfield; |
| | | } |
| | | .control-wrapper-not-used { |
| | | position: relative; |
| | | width: 6.25rem; |