Kaynağa Gözat

视频看护新增阿里云平台摄像头。

zhengqiang 5 yıl önce
ebeveyn
işleme
c4d1428848

+ 2 - 2
.env.development

@@ -1,8 +1,8 @@
 OUT_PUT_DIR=dist/jp-housekeeper-portal
 
-#VUE_APP_BACKEND_URL=http://127.0.0.1:8086/jp-housekeeper-server
+VUE_APP_BACKEND_URL=http://127.0.0.1:8086/jp-housekeeper-server
 #VUE_APP_BACKEND_URL=http://ykt-test.xiaoxinda.com/jp-housekeeper-server
-VUE_APP_BACKEND_URL=http://xpgjapi.xiaoxinda.com
+#VUE_APP_BACKEND_URL=http://xpgjapi.xiaoxinda.com
 
 #手机企业版
 VUE_APP_COMPANY_HEALTH_WECHAT_QY_URL=http://wisdomhousewechat.sudaonline.net/prevention/motemwall.html 

+ 79 - 42
src/views/base/cameraInfo-detail.vue

@@ -26,35 +26,43 @@
             width="300px"
           ></el-select-tree>
         </el-form-item>
+        <el-form-item label="所属平台" prop="platform">
+          <el-select v-model="formModel.platform" clearable width="300px">
+            <el-option v-for="(item,index) in platformList" 
+            :label="item.name" :value="item.value" :key="index"></el-option>
+          </el-select>
+        </el-form-item>
         <el-form-item label="设备序列号" prop="deviceSerial">
           <el-input placeholder="设备序列号" v-model="formModel.deviceSerial" style="width:300px;">
-            <el-button slot="append" icon="el-icon-search" @click="queryDeviceInfo">查询</el-button>
+            <!-- <el-button slot="append" icon="el-icon-search" @click="queryDeviceInfo">查询</el-button> -->
           </el-input>
         </el-form-item>
         <el-form-item label="设备名称" prop="deviceName">
           <el-input v-model="formModel.deviceName" placeholder="请输入设备名称" style="width:300px"></el-input>
         </el-form-item>
-        <el-form-item label="通道号" prop="channelNo">
-          <el-input v-model="formModel.channelNo" placeholder="请输入通道号" style="width:300px"></el-input>
-        </el-form-item>
-        <el-form-item label="验证码" prop="validCode">
-          <el-input v-model="formModel.validCode" placeholder="请输入验证码" style="width:300px"></el-input>
-        </el-form-item>
+        <template v-if="formModel.platform=='ys'">
+          <el-form-item label="通道号" prop="channelNo">
+            <el-input v-model="formModel.channelNo" placeholder="请输入通道号" style="width:300px"></el-input>
+          </el-form-item>
+          <el-form-item label="验证码" prop="validCode">
+            <el-input v-model="formModel.validCode" placeholder="请输入验证码" style="width:300px"></el-input>
+          </el-form-item>
+          <el-form-item label="设备账户号" prop="account">
+            <el-input v-model="formModel.account" placeholder="请输入账户号" style="width:300px"></el-input>
+          </el-form-item>
+          <el-form-item label="设备密码" prop="password">
+            <el-input v-model="formModel.password" placeholder="请输入密码" style="width:300px"></el-input>
+          </el-form-item>
+        </template>
         <el-form-item label="所在房间" prop="roomAddress">
           <el-input v-model="formModel.roomAddress" placeholder="请输入所在房间" style="width:300px"></el-input>
         </el-form-item>
-        <el-form-item label="人员ID" prop="personId">
+        <el-form-item label="分配人员ID" prop="personId">
           <el-input v-model="formModel.personId" placeholder="请输入人员ID" style="width:300px"></el-input>
         </el-form-item>
         <el-form-item label="联系电话" prop="contactPhone">
           <el-input v-model="formModel.contactPhone" placeholder="请输入联系电话" style="width:300px"></el-input>
         </el-form-item>
-        <el-form-item label="设备账户号" prop="account">
-          <el-input v-model="formModel.account" placeholder="请输入账户号" style="width:300px"></el-input>
-        </el-form-item>
-        <el-form-item label="设备密码" prop="password">
-          <el-input v-model="formModel.password" placeholder="请输入密码" style="width:300px"></el-input>
-        </el-form-item>
       </el-form>
     </div>
     <span slot="footer" class="dialog-footer">
@@ -68,42 +76,64 @@ import Constant from "@/constant";
 import cameraInfoApi from "@/api/base/cameraInfo";
 import companyInfoApi from "@/api/base/companyInfo";
 import SelectTree from "@/components/SelectTree";
+import dataDictionaryApi from "@/api/sys/dataDictionary";
 
 export default {
   props: ["businessKey", "title"],
+  computed: {
+      ruleValidate (){
+        var rules = null;
+
+        if(this.formModel.platform =='aliyun'){
+          rules = {
+            deviceSerial: [
+              { required: true, message: "设备序列号不能为空", trigger: "blur" }
+            ],
+            deviceName: [
+              { required: true, message: "设备名称不能为空", trigger: "blur" }
+            ],
+            companyId: [
+              { required: true, message: "单位不能为空", trigger: "blur" }
+            ]
+          };
+        }
+        else{
+          rules = {
+            deviceSerial: [
+              { required: true, message: "设备序列号不能为空", trigger: "blur" }
+            ],
+            deviceName: [
+              { required: true, message: "设备名称不能为空", trigger: "blur" }
+            ],
+            companyId: [
+              { required: true, message: "单位不能为空", trigger: "blur" }
+            ],
+            channelNo: [
+              { required: true, message: "通道号不能为空", trigger: "blur" }
+            ],
+            validCode: [
+              { required: true, message: "验证码不能为空", trigger: "blur" }
+            ],
+            account: [
+              { required: true, message: "账户不能为空", trigger: "blur" }
+            ],
+            password: [
+              { required: true, message: "密码不能为空", trigger: "blur" }
+            ]
+          };
+        }
+
+        return rules;
+      }
+  },
   data() {
     return {
-      ruleValidate: {
-        deviceSerial: [
-          { required: true, message: "设备序列号", trigger: "blur" },
-        ],
-        channelNo: [
-          { required: true, message: "通道号不能为空", trigger: "blur" },
-        ],
-        deviceName: [
-          { required: true, message: "设备名称不能为空", trigger: "blur" },
-        ],
-        validCode: [
-          { required: true, message: "验证码不能为空", trigger: "blur" },
-        ],
-        companyId: [
-          { required: true, message: "单位不能为空", trigger: "blur" },
-        ],
-        classify: [
-          { required: true, message: "设备分类", trigger: "blur" },
-        ],
-        personId: [
-          { required: true, message: "人员ID不能为空", trigger: "blur" },
-        ],
-        contactPhone: [
-          { required: true, message: "联系电话不能为空", trigger: "blur" },
-        ],
-      },
       showDialog: true,
       loading: false,
       submitting: false,
       formModel: {},
-      companyList: []
+      companyList: [],
+      platformList: []
     };
   },
   methods: {
@@ -163,7 +193,7 @@ export default {
                 type: "warning",
               });
 
-              self.$emit("close", false);
+              //self.$emit("close", false);
             }
           });
         }
@@ -178,6 +208,13 @@ export default {
         this.companyList = jsonData.data;
       }
     });
+
+    dataDictionaryApi.findByCatalogName({
+      "catalogName" : "摄像头云平台"
+    }).then(response => {
+      var jsonData = response.data;
+      this.platformList = jsonData.data;
+    });
   },
   mounted: function () {
     var self = this;

+ 35 - 7
src/views/base/cameraInfo-list.vue

@@ -43,6 +43,12 @@
       <el-form-item label="所在房间" prop="roomAddress">
         <el-input type="text" size="mini" v-model="queryModel.roomAddress"></el-input>
       </el-form-item>
+      <el-form-item label="所属平台" prop="platform">
+        <el-select v-model="queryModel.platform" size="mini" style="width:100px;" clearable>
+          <el-option v-for="(item,index) in platformList" 
+          :label="item.name" :value="item.value" :key="index"></el-option>
+        </el-select>
+      </el-form-item>
       <el-form-item>
         <el-button
           type="primary"
@@ -98,6 +104,11 @@
         sortable="custom"
         width="180"
       ></el-table-column>
+      <el-table-column
+        prop="platformN"
+        label="所属平台"
+        width="100"
+      ></el-table-column>
       <el-table-column
         prop="deviceSerial"
         sort-by="device_serial"
@@ -107,7 +118,7 @@
       ></el-table-column>
       <el-table-column prop="status" label="在线状态" width="100">
         <template slot-scope="{row}">
-          <span v-if="row.status" style="color:green;">在线</span>
+          <span v-if="row.status==1" style="color:green;">在线</span>
           <span v-else>不在线</span>
         </template>
       </el-table-column>
@@ -161,7 +172,6 @@
         <template slot-scope="{row}">
           <el-link type="primary" :underline="false" @click="queryLiveAddressUrl(row)">直播地址</el-link>-
           <el-link type="primary" :underline="false" @click="handleEdit(row)">编辑</el-link>-
-          <!-- <el-link type="primary" :underline="false" @click="handleBindClass(row)">关联班级</el-link>- -->
           <el-link type="primary" :underline="false" @click="handleRefresh(row)">刷新</el-link>-
           <el-link type="primary" :underline="false" @click="handleDelete(row)">删除</el-link>
         </template>
@@ -198,8 +208,16 @@
         width="800" height="450"
       >
       </video>
-      <label>直播地址</label>
-      <span v-html="liveAddressUrl"></span>
+      <div>
+        <label>直播地址:</label>
+        <span v-html="liveAddressUrl"></span>
+      </div>
+      <template v-if="pushAddress!=null">
+      <div>
+        <label>推流地址:</label>
+        <span v-html="pushAddress"></span>
+      </div>
+      </template>
     </el-dialog>
     <cameraInfo-bindClass
       v-if="showBindModal"
@@ -217,6 +235,7 @@ import NProgress from "nprogress"; // progress bar
 import "nprogress/nprogress.css"; // progress bar style
 import SelectTree from "@/components/SelectTree";
 import companyInfoApi from "@/api/base/companyInfo";
+import dataDictionaryApi from "@/api/sys/dataDictionary";
 import Hls from "hls.js";
 
 export default {
@@ -250,7 +269,9 @@ export default {
       liveAddressUrl: "",
       player: null,
       selectedRow: {},
-      showBindModal: false
+      showBindModal: false,
+      platformList: [],
+      pushAddress: null
     };
   },
   methods: {
@@ -270,8 +291,7 @@ export default {
         .queryLiveAddressUrl({
           id:row.id,
           deviceSerial: row.deviceSerial,
-          classify: row.classify,
-          channelNo: row.channelNo,
+          channelNo: row.channelNo == null ? 0 : row.channelNo,
           expireTime: 1800,
         })
         .then((response) => {
@@ -282,6 +302,7 @@ export default {
             this.showLiveAddressDialog = true;
             
             this.liveAddressUrl = jsonData.data.hdAddress.replace("http:","https:");
+            this.pushAddress = jsonData.data.pushAddress;
 
             this.$nextTick(()=>{
               this.player = this.$refs["myPlayer"];
@@ -469,6 +490,13 @@ export default {
         this.companyList = jsonData.data;
       }
     });
+
+    dataDictionaryApi.findByCatalogName({
+      "catalogName" : "摄像头云平台"
+    }).then(response => {
+      var jsonData = response.data;
+      this.platformList = jsonData.data;
+    });
   },
   mounted: function () {
     this.changePage(1);