Przeglądaj źródła

解决产品里面sip配置不显示的bug

jishenghua 9 miesięcy temu
rodzic
commit
aef9735fac

+ 4 - 1
gyj-iot-boot/gyjiot-open-api/src/main/java/com/gyjiot/data/controller/media/SipConfigController.java

@@ -32,7 +32,10 @@ public class SipConfigController extends BaseController {
     @PreAuthorize("@ss.hasPermi('iot:video:query')")
     @GetMapping(value = "/{productId}/{isDefault}")
     public AjaxResult getInfo(@PathVariable("productId") Long productId, @PathVariable("isDefault") Boolean isDefault) {
-        SipConfig sipConfig = isDefault ? sipConfigService.GetDefaultSipConfig() : sipConfigService.selectSipConfigByProductId(productId);
+        SipConfig sipConfig = sipConfigService.selectSipConfigByProductId(productId);
+        if(sipConfig == null) {
+            sipConfig = sipConfigService.GetDefaultSipConfig();
+        }
         return AjaxResult.success(sipConfig);
     }
 

+ 1 - 1
gyj-iot-boot/gyjiot-server/sip-server/src/main/java/com/gyjiot/sip/service/impl/SipConfigServiceImpl.java

@@ -57,7 +57,7 @@ public class SipConfigServiceImpl implements ISipConfigService {
             sipConfig.setDomain(sysSipConfig.getDomain());
             sipConfig.setServerSipid(sysSipConfig.getId());
             sipConfig.setPassword(sysSipConfig.getPassword());
-            redisCache.setCacheObject(GyjConstant.REDIS.DEFAULT_SIP_CONFIG, temp);
+            redisCache.setCacheObject(GyjConstant.REDIS.DEFAULT_SIP_CONFIG, sipConfig);
         } else if (temp instanceof SipConfig){
             sipConfig = (SipConfig) temp;
             updateDefaultSipConfig((SipConfig) temp);

+ 2 - 1
gyj-iot-web/src/views/iot/product/product-edit.vue

@@ -242,12 +242,13 @@ const data = reactive({
     // 表单参数
     form: {
         networkMethod: 1,
-        deviceType: 1,
+        deviceType: 3,
         vertificateMethod: 3,
         transport: 'MQTT',
         imgUrl: "",
         protocolCode: "JSON",
         isAuthorize: 0,
+        productId: 0
     },
     // 表单校验
     rules: {

+ 15 - 10
gyj-iot-web/src/views/iot/sip/sipconfig.vue

@@ -1,6 +1,6 @@
 <template>
   <div style="padding:6px;">
-    <el-form ref="form" :model="form" label-width="100px">
+    <el-form ref="sipConfigRef" :model="form" label-width="100px">
       <el-row :gutter="100">
         <el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="8">
           <el-form-item label="默认配置" prop="isdefault">
@@ -66,6 +66,7 @@ const sipconfigList = ref([]);
 const title = ref('');
 // 是否显示弹出层
 const open = ref(false);
+const productInfo = ref({});
 
 const data = reactive({
   // 查询参数
@@ -75,7 +76,15 @@ const data = reactive({
     productId: null,
   },
   // 表单参数
-  form: {},
+  form: {
+    id: null,
+    isdefault: 1,
+    ip: '',
+    domain: '',
+    password: '',
+    port: '',
+    serverSipid: ''
+  },
   // 表单校验
   rules: {
     domain: [{
@@ -108,6 +117,7 @@ const props = defineProps({
 // 获取到父组件传递的productId后,刷新列表
 watch(props.product, (newVal, oldVal) => {
   productInfo.value = newVal;
+  console.log(productInfo.value)
   if (productInfo.value && productInfo.value.productId != 0) {
     // 表单没有数据则获取默认配置
     if (!form.value.id) {
@@ -120,16 +130,16 @@ watch(props.product, (newVal, oldVal) => {
 function getSipconfigInfo(isDefault) {
   getSipconfig(productInfo.value.productId, isDefault).then(response => {
     form.value = response.data;
-    if (isDefault) {
+    if (!form.value.id) {
       submitForm();
     }
   });
 }
 /** 提交按钮 */
 function submitForm() {
-  proxy.$refs['form'].validate(valid => {
+  proxy.$refs['sipConfigRef'].validate(valid => {
     if (valid) {
-      form.value.productId = product.value.productId;
+      form.value.productId = props.product.productId;
       if (form.value.isdefault == null) {
         form.value.isdefault = 0;
       }
@@ -146,11 +156,6 @@ function submitForm() {
     }
   });
 }
-
-productInfo.value = product.value;
-if (productInfo.value && productInfo.value.productId != 0) {
-  getSipconfigInfo(false);
-}
 </script>
 
 <style>