浏览代码

音柱配置

zhuangyunsheng 1 周之前
父节点
当前提交
ebaa071ab7
共有 3 个文件被更改,包括 49 次插入76 次删除
  1. 20 0
      src/api/model/speaker.js
  2. 2 2
      src/views/nvr/index.vue
  3. 27 74
      src/views/speaker/index.vue

+ 20 - 0
src/api/model/speaker.js

@@ -0,0 +1,20 @@
+import config from "@/config"
+import http from "@/utils/request"
+
+export default {
+	list: {
+		url: `${config.API_URL}/api/getBroadcast`,
+		name: "音柱配置",
+		get: async function (data = {}) {
+			return await http.post(this.url, data);
+		}
+	},
+
+	edit: {
+		url: `${config.API_URL}/api/updateBroadcast`,
+		name: "音柱配置",
+		post: async function (data = {}) {
+			return await http.post(this.url, data);
+		}
+	}
+}

+ 2 - 2
src/views/nvr/index.vue

@@ -19,8 +19,8 @@
                 </el-form-item>
 
                 <el-form-item class="btn-group-item">
-                    <el-button class="sc-button-primary" icon="el-icon-edit" @click="table_edit">保存</el-button>
-                    <el-button v-if="!hide" class="sc-button-danger" icon="el-icon-delete" @click="table_del">删除</el-button>
+                    <el-button class="sc-button-primary" @click="table_edit">保存</el-button>
+                    <el-button v-if="!hide" class="sc-button-danger" @click="table_del">删除</el-button>
                 </el-form-item>
             </el-form>
         </el-main>

+ 27 - 74
src/views/speaker/index.vue

@@ -4,23 +4,20 @@
             <div class="left-panel"><scTitle>音柱配置</scTitle></div>
         </el-header>
         <el-main class="nopadding">
-            <el-form ref="nvrForm" :model="nvrData" :rules="rules" label-width="80px">
-                <el-form-item label="ip" prop="ip">
-                    <el-input v-model="nvrData.ip" placeholder="输入IP"></el-input>
+            <el-form ref="nvrForm" :model="speakerData" :rules="rules" label-width="80px">
+                <el-form-item label="是否启用" required>
+                    <el-radio-group v-model="speakerData.isOpen">
+                        <el-radio :value="0">否</el-radio>
+                        <el-radio :value="1">是</el-radio>
+                    </el-radio-group>
                 </el-form-item>
-                <el-form-item label="用户名" prop="user">
-                    <el-input v-model="nvrData.user" placeholder="输入用户名"></el-input>
-                </el-form-item>
-                <el-form-item label="密码" prop="password">
-                    <el-input v-model="nvrData.password" type="password" show-password placeholder="输入密码"></el-input>
-                </el-form-item>
-                <el-form-item label="端口" required>
-                    <el-input v-model="nvrData.port" disabled></el-input>
+                <el-form-item label="ip" prop="address">
+                    <el-input v-model="speakerData.address" placeholder="输入IP"></el-input>
                 </el-form-item>
 
                 <el-form-item class="btn-group-item">
-                    <el-button class="sc-button-primary" icon="el-icon-edit" @click="table_edit">保存</el-button>
-                    <el-button v-if="!hide" class="sc-button-danger" icon="el-icon-delete" @click="table_del">删除</el-button>
+                    <el-button class="sc-button-primary" @click="table_edit">保存</el-button>
+                    <el-button class="sc-button-info" @click="reloadTable">取消</el-button>
                 </el-form-item>
             </el-form>
         </el-main>
@@ -32,18 +29,13 @@
         data() {
 			return {
 				isSaveing: false,
-                hide: true,
-                nvrData: {
-                    ip: "",
-					user: "",
-					password: "",
-					port: 554
+                speakerData: {
+                    isOpen: 0,
+                    address: null
                 },
 
                 rules: {
-					ip: [{ required: true, message: "请输入IP" }],
-					user: [{ required: true, message: "请输入用户名" }],
-					password: [{ required: true, message: "请输入密码" }]
+					address: [{ required: true, message: "请输入IP" }]
 				}
             }
         },
@@ -53,24 +45,8 @@
         },
 
 		methods: {
-            async reloadTable() {
-                try {
-                    const res = await this.$API.nvr.list.get();
-                    this.nvrData = res;
-                    if (!res["port"]) {
-                        this.hide = true;
-                        this.nvrData["port"] = 554;
-                        this.$refs.nvrForm.resetFields();
-                    } else this.hide = false;
-                } catch (error) {
-                    this.hide = true;
-                    this.nvrData = {
-                        ip: "",
-                        user: "",
-                        password: "",
-                        port: 554
-                    };
-                }
+            reloadTable() {
+                this.$API.speaker.list.get().then(res => this.speakerData = Object.assign({}, res)).catch(() => this.speakerData = { isOpen: 0, address: null });
             },
 
 			// 编辑配置
@@ -78,7 +54,7 @@
 				this.$refs.nvrForm.validate(valid => {
 					if (valid) {
 						this.isSaveing = true;
-						this.$API.nvr.edit.post(this.nvrData).then(() => {
+						this.$API.speaker.edit.post(this.speakerData).then(() => {
 							this.isSaveing = false;
 							this.$message.success("操作成功");
                             this.reloadTable();
@@ -87,23 +63,6 @@
 						return false;
 					}
 				});
-			},
-
-            // 删除配置
-			table_del() {
-				this.$confirm("确认删除当前的配置吗?", "提示", {
-					type: "warning",
-					confirmButtonText: "删除",
-					confirmButtonClass: "sc-button-danger",
-					cancelButtonClass: "sc-button-info"
-				}).then(() => {
-					this.$API.nvr.del.post().then(res => {
-                        if (res == "success") {
-                            this.$message.success("操作成功");
-                            this.reloadTable();
-                        } else this.$notify.error({ title: "删除失败", message: res.message || res || "未知错误" });
-					}).catch(() => {});
-				}).catch(() => {});
 			}
         }
     }
@@ -111,24 +70,18 @@
 
 <style lang="scss" scoped>
 .aminui-main-container__table-main {
-  width: 100%;
-  padding: 15px;
-  overflow: auto;
+    width: 100%;
+    padding: 15px;
+    overflow: auto;
 
-  .el-form {
-    width: 650px;
-    margin: 40px auto 0;
-
-    --el-disabled-bg-color: #fff;
-    --el-disabled-text-color: #000;
-
-    .el-form-item {
-      margin-bottom: 24px;
-    }
+    .el-form {
+        width: 650px;
+        margin: 40px auto 0;
 
-    .el-form-item.btn-group-item :deep(.el-form-item__content) {
-      justify-content: flex-end;
+        --el-disabled-bg-color: #fff;
+        --el-disabled-text-color: #000;
+        .el-form-item {margin-bottom: 24px;}
+        .el-form-item.btn-group-item :deep(.el-form-item__content) {justify-content: flex-end;}
     }
-  }
 }
 </style>