web_src/src/components/dialog/StreamProxyEdit.vue
old mode 100644 new mode 100755
@@ -33,13 +33,13 @@
              <el-form-item label="拉流地址" prop="url" v-if="proxyParam.type=='default'">
                <el-input v-model="proxyParam.url" clearable></el-input>
              </el-form-item>
              <el-form-item label="拉流地址" prop="src_url" v-if="proxyParam.type=='ffmpeg'">
                <el-input v-model="proxyParam.src_url" clearable></el-input>
              <el-form-item label="拉流地址" prop="srcUrl" v-if="proxyParam.type=='ffmpeg'">
                <el-input v-model="proxyParam.srcUrl" clearable></el-input>
              </el-form-item>
              <el-form-item label="超时时间:毫秒" prop="timeout_ms" v-if="proxyParam.type=='ffmpeg'">
                <el-input v-model="proxyParam.timeout_ms" clearable></el-input>
              <el-form-item label="超时时间:毫秒" prop="timeoutMs" v-if="proxyParam.type=='ffmpeg'">
                <el-input v-model="proxyParam.timeoutMs" clearable></el-input>
              </el-form-item>
              <el-form-item label="节点选择" prop="rtp_type">
              <el-form-item label="节点选择" prop="rtpType">
                <el-select
                  v-model="proxyParam.mediaServerId"
                  @change="mediaServerIdChange"
@@ -54,10 +54,9 @@
                  </el-option>
                </el-select>
              </el-form-item>
              <el-form-item label="FFmpeg命令模板" prop="ffmpeg_cmd_key" v-if="proxyParam.type=='ffmpeg'">
<!--                <el-input v-model="proxyParam.ffmpeg_cmd_key" clearable></el-input>-->
              <el-form-item label="FFmpeg命令模板" prop="ffmpegCmdKey" v-if="proxyParam.type=='ffmpeg'">
                <el-select
                  v-model="proxyParam.ffmpeg_cmd_key"
                  v-model="proxyParam.ffmpegCmdKey"
                  style="width: 100%"
                  placeholder="请选择FFmpeg命令模板"
                >
@@ -72,9 +71,9 @@
              <el-form-item label="国标编码" prop="gbId">
                <el-input v-model="proxyParam.gbId" placeholder="设置国标编码可推送到国标" clearable></el-input>
              </el-form-item>
              <el-form-item label="拉流方式" prop="rtp_type" v-if="proxyParam.type=='default'">
              <el-form-item label="拉流方式" prop="rtpType" v-if="proxyParam.type=='default'">
                <el-select
                  v-model="proxyParam.rtp_type"
                  v-model="proxyParam.rtpType"
                  style="width: 100%"
                  placeholder="请选择拉流方式"
                >
@@ -84,30 +83,26 @@
                </el-select>
              </el-form-item>
              <el-form-item label="国标平台">
                <el-select
                  v-model="proxyParam.platformGbId"
                  style="width: 100%"
                  placeholder="请选择国标平台"
                >
                  <el-option
                    v-for="item in platformList"
                    :key="item.name"
                    :label="item.name"
                    :value="item.serverGBId">
                    <span style="float: left">{{ item.name }}</span>
                    <span style="float: right; color: #8492a6; font-size: 13px">{{ item.serverGBId }}</span>
                  </el-option>
                </el-select>
              </el-form-item>
            <el-form-item label="无人观看" prop="rtpType" >
              <el-radio v-model="proxyParam.noneReader" label="0">不做处理</el-radio>
              <el-radio v-model="proxyParam.noneReader" label="1">停用</el-radio>
              <el-radio v-model="proxyParam.noneReader" label="2">移除</el-radio>
<!--              <el-select-->
<!--                @change="noneReaderHandler"-->
<!--                v-model="proxyParam.noneReader"-->
<!--                style="width: 100%"-->
<!--                placeholder="请选择无人观看的处理方式"-->
<!--              >-->
<!--                <el-option label="不做处理" value="0"></el-option>-->
<!--                <el-option label="停用" value="1"></el-option>-->
<!--                <el-option label="移除" value="2"></el-option>-->
<!--              </el-select>-->
            </el-form-item>
              <el-form-item label="其他选项">
                <div style="float: left;">
                  <el-checkbox label="启用" v-model="proxyParam.enable" ></el-checkbox>
                  <el-checkbox label="转HLS" v-model="proxyParam.enable_hls" ></el-checkbox>
                  <el-checkbox label="MP4录制" v-model="proxyParam.enable_mp4" ></el-checkbox>
                  <el-checkbox label="无人观看自动删除" v-model="proxyParam.enable_remove_none_reader" @change="removeNoneReader"></el-checkbox>
                  <el-checkbox label="无人观看停止拉流" v-model="proxyParam.enable_disable_none_reader" @change="disableNoneReaderHandType"></el-checkbox>
                  <el-checkbox label="开启音频" v-model="proxyParam.enableAudio" ></el-checkbox>
                  <el-checkbox label="录制" v-model="proxyParam.enableMp4" ></el-checkbox>
                </div>
              </el-form-item>
@@ -163,16 +158,17 @@
          app: null,
          stream: null,
          url: "",
          src_url: null,
          timeout_ms: null,
          ffmpeg_cmd_key: null,
          srcUrl: null,
          timeoutMs: null,
          ffmpegCmdKey: null,
          gbId: null,
          rtp_type: null,
          rtpType: null,
          enable: true,
          enable_hls: true,
          enable_mp4: false,
          enable_remove_none_reader: false,
          enable_disable_none_reader: true,
          enableAudio: true,
          enableMp4: false,
          noneReader: null,
          enableRemoveNoneReader: false,
          enableDisableNoneReader: false,
          platformGbId: null,
          mediaServerId: null,
      },
@@ -184,9 +180,9 @@
        app: [{ required: true, message: "请输入应用名", trigger: "blur" }],
        stream: [{ required: true, message: "请输入流ID", trigger: "blur" }],
        url: [{ required: true, message: "请输入要代理的流", trigger: "blur" }],
        src_url: [{ required: true, message: "请输入要代理的流", trigger: "blur" }],
        timeout_ms: [{ required: true, message: "请输入FFmpeg推流成功超时时间", trigger: "blur" }],
        ffmpeg_cmd_key: [{ required: false, message: "请输入FFmpeg命令参数模板(可选)", trigger: "blur" }],
        srcUrl: [{ required: true, message: "请输入要代理的流", trigger: "blur" }],
        timeoutMs: [{ required: true, message: "请输入FFmpeg推流成功超时时间", trigger: "blur" }],
        ffmpegCmdKey: [{ required: false, message: "请输入FFmpeg命令参数模板(可选)", trigger: "blur" }],
      },
    };
  },
@@ -196,6 +192,7 @@
      this.listChangeCallback = callback;
      if (proxyParam != null) {
        this.proxyParam = proxyParam;
        this.proxyParam.noneReader = null;
      }
      let that = this;
@@ -224,7 +221,7 @@
          }
        }).then(function (res) {
          that.ffmpegCmdList = res.data.data;
          that.proxyParam.ffmpeg_cmd_key = Object.keys(res.data.data)[0];
          that.proxyParam.ffmpegCmdKey = Object.keys(res.data.data)[0];
        }).catch(function (error) {
          console.log(error);
        });
@@ -233,26 +230,26 @@
    },
    onSubmit: function () {
      this.dialogLoading = true;
      var that = this;
      that.$axios({
      this.noneReaderHandler();
      this.$axios({
        method: 'post',
        url:`/api/proxy/save`,
        data: that.proxyParam
      }).then(function (res) {
        that.dialogLoading = false;
        data: this.proxyParam
      }).then((res)=> {
        this.dialogLoading = false;
        if (typeof (res.data.code) != "undefined" && res.data.code === 0) {
          that.$message({
          this.$message({
            showClose: true,
            message: res.data.msg,
            type: "success",
          });
          that.showDialog = false;
          if (that.listChangeCallback != null) {
            that.listChangeCallback();
            that.dialogLoading = false;
          this.showDialog = false;
          if (this.listChangeCallback != null) {
            this.listChangeCallback();
            this.dialogLoading = false;
          }
        }
      }).catch(function (error) {
      }).catch((error) =>{
        console.log(error);
        this.dialogLoading = false;
      });
@@ -280,12 +277,18 @@
        this.platform.expires = "300";
      }
    },
    removeNoneReader: function(checked) {
      this.proxyParam.enable_disable_none_reader = !checked;
    noneReaderHandler: function() {
      if (this.proxyParam.noneReader === null || this.proxyParam.noneReader === "0") {
        this.proxyParam.enableDisableNoneReader = false;
        this.proxyParam.enableRemoveNoneReader = false;
      }else if (this.proxyParam.noneReader === "1"){
        this.proxyParam.enableDisableNoneReader = true;
        this.proxyParam.enableRemoveNoneReader = false;
      }else if (this.proxyParam.noneReader ==="2"){
        this.proxyParam.enableDisableNoneReader = false;
        this.proxyParam.enableRemoveNoneReader = true;
      }
    },
    disableNoneReaderHandType: function(checked) {
      this.proxyParam.enable_remove_none_reader = !checked;
    }
  },
};
</script>