|
@@ -227,21 +227,14 @@
|
|
|
|
|
|
<div class="content-top">
|
|
|
<el-button-group>
|
|
|
- <el-button type="primary" size="small" icon="el-icon-document"
|
|
|
+ <el-button type="primary" size="mini" icon="el-icon-document"
|
|
|
@click="pickFile()">添加文件</el-button>
|
|
|
- <el-button type="primary" size="small" icon="el-icon-folder"
|
|
|
+ <el-button type="primary" size="mini" icon="el-icon-folder"
|
|
|
@click="pickDir()">添加文件夹</el-button>
|
|
|
- <el-button type="primary" size="small" icon="el-icon-delete"
|
|
|
+ <el-button type="primary" size="mini" icon="el-icon-delete"
|
|
|
@click="clearList()">清空列表</el-button>
|
|
|
</el-button-group>
|
|
|
- <div>
|
|
|
- <span>保存目录:</span>
|
|
|
- <el-input :title="handleData.newPath" ref="upload-input" @focus="pickPath" placeholder="请选择输出目录" size="mini" v-model="handleData.newPath" readonly style="width:180px;" prefix-icon="el-icon-folder"></el-input>
|
|
|
- <el-popover placement="bottom" popper-class="popper-open" trigger="hover" content="打开保存目录">
|
|
|
- <i class="el-icon-folder-opened" slot="reference" style="padding-left: 5px; cursor: pointer; font-size: 22px; vertical-align: middle;" @click="openFolder()"></i>
|
|
|
- </el-popover>
|
|
|
- <el-button type="danger" style="margin: 0 20px;" @click="exportFile()" :loading="loading">开始转换</el-button>
|
|
|
- </div>
|
|
|
+
|
|
|
</div>
|
|
|
|
|
|
<div v-if="activeName && this[listStr+'List'].length == 0" class="upload-area">
|
|
@@ -322,204 +315,68 @@
|
|
|
<!-- 底部设置区域 -->
|
|
|
<div class="img-footer-area" v-if="this[listStr + 'List'].length > 0">
|
|
|
<div class="footer-line-between">
|
|
|
- <!-- 1格式转化 -->
|
|
|
- <div class="handle-item" v-if="menuIndex == '1' || menuIndex == '2'">
|
|
|
- <label class="handle-label">输出格式:</label>
|
|
|
- <el-select v-model="handleData.format" style="width:80px;" size="small">
|
|
|
- <el-option v-for="(item, key) in outputVedio" :key="key" :value="item" :label="item"></el-option>
|
|
|
- </el-select>
|
|
|
-
|
|
|
- <label class="handle-label">视频清晰度:</label>
|
|
|
- <el-select v-model="handleData.type" style="width:100px" size="small" @change="selectVideoType">
|
|
|
- <el-option :value="1" label="画质区分"></el-option>
|
|
|
- <el-option :value="2" label="码率区分"></el-option>
|
|
|
- </el-select>
|
|
|
-
|
|
|
- <template v-if="handleData.type == 2">
|
|
|
- <label class="handle-label">视频码率:</label>
|
|
|
- <el-select v-model="handleData.quality" style="width:100px;" size="small">
|
|
|
- <el-option value="1" label="同源视频"></el-option>
|
|
|
- <el-option value="1m" label="1Mbit/s"></el-option>
|
|
|
- <el-option value="1.5m" label="1.5Mbit/s"></el-option>
|
|
|
- <el-option value="2m" label="2Mbit/s"></el-option>
|
|
|
- <el-option value="3m" label="3Mbit/s"></el-option>
|
|
|
- <el-option value="4m" label="4Mbit/s"></el-option>
|
|
|
- <el-option value="5m" label="5Mbit/s"></el-option>
|
|
|
- <el-option value="8m" label="8Mbit/s"></el-option>
|
|
|
- <el-option value="10m" label="10Mbit/s"></el-option>
|
|
|
- </el-select>
|
|
|
- </template>
|
|
|
- <template v-else>
|
|
|
- <label class="handle-label">视频画质:</label>
|
|
|
- <el-select v-model="handleData.quality" style="width:80px" size="small">
|
|
|
- <el-option value="1" label="原画"></el-option>
|
|
|
- <el-option value="2" label="高清"></el-option>
|
|
|
- <el-option value="3" label="流畅"></el-option>
|
|
|
- </el-select>
|
|
|
- </template>
|
|
|
-
|
|
|
- <label class="handle-label">视频分辨率:</label>
|
|
|
- <el-select v-model="handleData.fenbianlv" style="width:120px;" size="small" @change="changeFenbianlv">
|
|
|
- <el-option :value="-1" label="同原视频"></el-option>
|
|
|
- <el-option :value="1" label="3840*2160"></el-option>
|
|
|
- <el-option :value="2" label="1280*720"></el-option>
|
|
|
- <el-option :value="3" label="720*576"></el-option>
|
|
|
- <el-option :value="4" label="640*480"></el-option>
|
|
|
- <el-option :value="5" label="自定义"></el-option>
|
|
|
- <el-option :value="6" label="自定义(16:9)"></el-option>
|
|
|
- <el-option :value="7" label="自定义(4:3)"></el-option>
|
|
|
- </el-select>
|
|
|
-
|
|
|
- <template v-if="[5, 6, 7].includes(handleData.fenbianlv)">
|
|
|
- <label class="handle-label">宽:</label>
|
|
|
- <el-input-number size="small" v-model="handleData.width" style="width: 100px;" controls-position="right" @change="changeWidth" :min="1"></el-input-number>
|
|
|
-
|
|
|
- <label class="handle-label">高:</label>
|
|
|
- <el-input-number size="small" v-model="handleData.height" style="width: 100px;" controls-position="right" @change="changeHeight" :min="1"></el-input-number>
|
|
|
- </template>
|
|
|
-
|
|
|
+ <div class="handle-item" v-if="activeName == '1-1'">
|
|
|
+ <label class="handle-label">转换格式:</label>
|
|
|
+ <el-radio-group v-model="handleData.docType">
|
|
|
+ <el-radio label="docx">docx</el-radio>
|
|
|
+ <el-radio label="doc">doc</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
</div>
|
|
|
|
|
|
- <!-- 3视频转gif -->
|
|
|
- <div class="handle-item" v-if="menuIndex == '3'">
|
|
|
- <label class="handle-label">视频分辨率:</label>
|
|
|
- <el-select v-model="handleData.fenbianlv" style="width:100px;" size="small" @change="changeFenbianlv">
|
|
|
- <el-option :value="-1" label="同原视频"></el-option>
|
|
|
- <el-option :value="1" label="3840*2160"></el-option>
|
|
|
- <el-option :value="2" label="1280*720"></el-option>
|
|
|
- <el-option :value="3" label="720*576"></el-option>
|
|
|
- <el-option :value="4" label="640*480"></el-option>
|
|
|
- <el-option :value="5" label="自定义"></el-option>
|
|
|
- <el-option :value="6" label="自定义(16:9)"></el-option>
|
|
|
- <el-option :value="7" label="自定义(4:3)"></el-option>
|
|
|
- </el-select>
|
|
|
- <template v-if="[5, 6, 7].includes(handleData.fenbianlv)">
|
|
|
- <label class="handle-label">宽:</label>
|
|
|
- <el-input-number size="small" v-model="handleData.width" style="width: 100px;" controls-position="right" @change="changeWidth" :min="1"></el-input-number>
|
|
|
-
|
|
|
- <label class="handle-label">高:</label>
|
|
|
- <el-input-number size="small" v-model="handleData.height" style="width: 100px;" controls-position="right" @change="changeHeight" :min="1"></el-input-number>
|
|
|
- </template>
|
|
|
-
|
|
|
-
|
|
|
- <label class="handle-label">开始时间:</label>
|
|
|
- 第 <el-input-number size="small" v-model="handleData.start" style="width: 90px;" controls-position="right" :min="0"></el-input-number> 秒
|
|
|
-
|
|
|
- <label class="handle-label">结束时间:</label>
|
|
|
- <el-select v-model="handleData.isVideoDuration" size="small" style="width:120px">
|
|
|
- <el-option :value="1" label="同原视频"></el-option>
|
|
|
- <el-option :value="2" label="自定义时间"></el-option>
|
|
|
- </el-select>
|
|
|
- <template v-if="handleData.isVideoDuration != 1">
|
|
|
- <label class="handle-label"> </label>
|
|
|
- 第 <el-input-number size="small" v-model="handleData.limit" style="width: 90px;" controls-position="right" :min="1"></el-input-number> 秒
|
|
|
- </template>
|
|
|
+ <div class="handle-item" v-if="activeName == '1-2'">
|
|
|
+ <label class="handle-label">转换格式:</label>
|
|
|
+ <el-radio-group v-model="handleData.pptType">
|
|
|
+ <el-radio label="pptx">pptx</el-radio>
|
|
|
+ <el-radio label="ppt">ppt</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
</div>
|
|
|
|
|
|
- <!-- 4视频转音频 -->
|
|
|
- <div class="handle-item" v-if="menuIndex == '4'">
|
|
|
- <label class="handle-label">音频格式:</label>
|
|
|
- <el-select v-model="handleData.auto_format" style="width:100px;" size="small">
|
|
|
- <el-option v-for="(item,key) in outputAudio" :key="key" :value="item" :label="item"></el-option>
|
|
|
- </el-select>
|
|
|
+ <div class="handle-item" v-if="activeName == '1-3'">
|
|
|
+ <label class="handle-label">转换格式:</label>
|
|
|
+ <el-radio-group v-model="handleData.xlsType">
|
|
|
+ <el-radio label="xlsx">xlsx</el-radio>
|
|
|
+ <el-radio label="xls">xls</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
</div>
|
|
|
|
|
|
- <!-- 5视频压缩 -->
|
|
|
- <div class="handle-item" v-if="menuIndex == '5'">
|
|
|
- <label class="handle-label">视频分辨率:</label>
|
|
|
- <el-select v-model="handleData.fenbianlv" style="width:100px;" size="small" @change="changeFenbianlv">
|
|
|
- <el-option :value="-1" label="同原视频"></el-option>
|
|
|
- <el-option :value="1" label="3840*2160"></el-option>
|
|
|
- <el-option :value="2" label="1280*720"></el-option>
|
|
|
- <el-option :value="3" label="720*576"></el-option>
|
|
|
- <el-option :value="4" label="640*480"></el-option>
|
|
|
- <el-option :value="5" label="自定义"></el-option>
|
|
|
- <el-option :value="6" label="自定义(16:9)"></el-option>
|
|
|
- <el-option :value="7" label="自定义(4:3)"></el-option>
|
|
|
- </el-select>
|
|
|
- <template v-if="[5, 6, 7].includes(handleData.fenbianlv)">
|
|
|
- <label class="handle-label">宽:</label>
|
|
|
- <el-input-number size="small" v-model="handleData.width" style="width: 100px;" controls-position="right" @change="changeWidth" :min="1"></el-input-number>
|
|
|
-
|
|
|
- <label class="handle-label">高:</label>
|
|
|
- <el-input-number size="small" v-model="handleData.height" style="width: 100px;" controls-position="right" @change="changeHeight" :min="1"></el-input-number>
|
|
|
- </template>
|
|
|
-
|
|
|
- <label class="handle-label">视频码率:</label>
|
|
|
- <el-select v-model="handleData.videoQuality" style="width:100px;" size="small">
|
|
|
- <el-option value="-1" label="同原视频"></el-option>
|
|
|
- <el-option value="0.9" label="90%"></el-option>
|
|
|
- <el-option value="0.8" label="80%"></el-option>
|
|
|
- <el-option value="0.7" label="70%"></el-option>
|
|
|
- <el-option value="0.6" label="60%"></el-option>
|
|
|
- <el-option value="0.5" label="50%"></el-option>
|
|
|
- <el-option value="0.4" label="40%"></el-option>
|
|
|
- <el-option value="0.3" label="30%"></el-option>
|
|
|
- <el-option value="0.2" label="20%"></el-option>
|
|
|
- <el-option value="0.1" label="10%"></el-option>
|
|
|
- </el-select>
|
|
|
+ <!-- 2-4 -->
|
|
|
+ <div class="handle-item" v-if="activeName == '2-4'">
|
|
|
+ <label style="font-weight: 600;">将所有图片合成一个PDF:</label>
|
|
|
+ <el-radio-group v-model="handleData.imgContact">
|
|
|
+ <el-radio label="1">否</el-radio>
|
|
|
+ <el-radio label="2">是</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
|
|
|
- <label class="handle-label">音频码率:</label>
|
|
|
- <el-select v-model="handleData.audioQuality" style="width:100px;" size="small">
|
|
|
- <el-option value="-1" label="同原视频"></el-option>
|
|
|
- <el-option value="64" label="64"></el-option>
|
|
|
- <el-option value="96" label="96"></el-option>
|
|
|
- <el-option value="128" label="128(标准)"></el-option>
|
|
|
- <el-option value="160" label="160"></el-option>
|
|
|
- <el-option value="192" label="192(较高)"></el-option>
|
|
|
- <el-option value="256" label="256"></el-option>
|
|
|
- </el-select>
|
|
|
+ <template v-if="handleData.imgContact == '2'">
|
|
|
+ <label class="handle-label">合并名称:</label>
|
|
|
+ <el-input placeholder="合并名称" size="mini" v-model="handleData.contactImgname" style="width:150px;"></el-input>.pdf
|
|
|
+ </template>
|
|
|
</div>
|
|
|
|
|
|
- <!-- 6音频消音 -->
|
|
|
- <div class="handle-item remove" v-if="menuIndex == '6'">
|
|
|
- <label class="handle-label">去除声音:</label>
|
|
|
- <el-checkbox v-model="handleData.audioRemove" disabled></el-checkbox>
|
|
|
- <el-input-number size="small" disabled style="opacity: 0;"></el-input-number>
|
|
|
+ <!-- 3-2 pdf合并 -->
|
|
|
+ <div class="handle-item" v-if="activeName == '3-2'">
|
|
|
+ <label class="handle-label">合并名称:</label>
|
|
|
+ <el-input placeholder="合并名称" size="mini" v-model="handleData.contactName" style="width:150px;"></el-input>.pdf
|
|
|
</div>
|
|
|
|
|
|
- <!-- 7视频变速 -->
|
|
|
- <div class="handle-item" style="padding: 4px 0;" v-if="menuIndex == '7'">
|
|
|
- <label class="handle-label">选择设置:</label>
|
|
|
- <el-radio-group v-model="handleData.reverseSet" size="mini">
|
|
|
- <el-radio-button :label="1" >变速</el-radio-button>
|
|
|
- <el-radio-button :label="2" >倒放</el-radio-button>
|
|
|
- </el-radio-group>
|
|
|
- <template v-if="handleData.reverseSet == 1">
|
|
|
- <label class="handle-label">播放速度:</label>
|
|
|
- <el-slider class="info-input" v-model="handleData.speed" :min="0.5" :max="2.0" :step="0.05" style="margin-right: 10px;"></el-slider> {{handleData.speed}}倍
|
|
|
- </template>
|
|
|
- <template v-else>
|
|
|
- <label class="handle-label">视频倒放:</label>
|
|
|
- <el-checkbox v-model="handleData.reverse"></el-checkbox>
|
|
|
- <label class="handle-label">声音倒放:</label>
|
|
|
- <el-checkbox v-model="handleData.areverse"></el-checkbox>
|
|
|
-
|
|
|
- <span style="margin-left: 20px;color: #F56C6C;font-size: 12px;">倒放视频会消耗大量的CPU资源和时间,请控制视频时长不超过5分钟</span>
|
|
|
- </template>
|
|
|
+ <!-- 3-3 加密/解密 -->
|
|
|
+ <div class="handle-item" v-if="activeName == '3-3' || activeName == '3-4'">
|
|
|
+ <label class="handle-label">输入密码:</label>
|
|
|
+ <el-input placeholder="请输入密码" size="mini" v-model="handleData.pwd" style="width:150px;"></el-input>
|
|
|
</div>
|
|
|
|
|
|
- <!-- 8音量调整 -->
|
|
|
- <div class="handle-item" v-if="menuIndex == '8'" style="margin-bottom: 5px;">
|
|
|
- <label class="handle-label">音量调整:</label>
|
|
|
- <el-slider class="info-input" v-model="handleData.volume" :min="0.5" :max="2.0" :step="0.05" style="margin-right: 10px;"></el-slider> {{handleData.volume}}倍
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div style="display: flex; justify-content: space-between; margin-top: 5px;">
|
|
|
+ <div v-else></div>
|
|
|
+
|
|
|
<div>
|
|
|
- <label class="handle-label">保存目录:</label>
|
|
|
- <el-input :title="handleData.newPath" ref="upload-input" @focus="pickPath" placeholder="请选择输出目录" size="small" v-model="handleData.newPath" readonly style="width:240px;" prefix-icon="el-icon-folder"></el-input>
|
|
|
+ <span>保存目录:</span>
|
|
|
+ <el-input :title="handleData.newPath" ref="upload-input" @focus="pickPath" placeholder="请选择输出目录" size="mini" v-model="handleData.newPath" readonly style="width:180px;" prefix-icon="el-icon-folder"></el-input>
|
|
|
<el-popover placement="bottom" popper-class="popper-open" trigger="hover" content="打开保存目录">
|
|
|
- <i class="el-icon-folder-opened" slot="reference" style="padding-left: 5px; cursor: pointer; font-size: 22px; vertical-align: middle;" @click="openFolder()"></i>
|
|
|
+ <i class="el-icon-folder-opened" slot="reference" style="padding-left: 5px; cursor: pointer; font-size: 22px; vertical-align: middle;" @click="openFolder()"></i>
|
|
|
</el-popover>
|
|
|
+ <el-button type="danger" style="margin: 0 20px;" @click="exportFile()" :loading="loading">开始转换</el-button>
|
|
|
</div>
|
|
|
-
|
|
|
- <el-button type="danger" style="margin-left: 20px;" @click="exportFile()" :loading="exportLoading">开始处理</el-button>
|
|
|
</div>
|
|
|
</div>
|
|
|
-
|
|
|
-
|
|
|
</template>
|
|
|
|
|
|
<!-- 合并进度 -->
|
|
@@ -629,7 +486,14 @@
|
|
|
downloadDir: '', // 默认下载目录
|
|
|
handleData: {
|
|
|
pathType: 2,
|
|
|
- newPath: os.userInfo().homedir + separator + "Downloads", // 新路径
|
|
|
+ docType: "docx",
|
|
|
+ pptType: "pptx",
|
|
|
+ xlsType: "xlsx",
|
|
|
+ imgContact: "2",
|
|
|
+ pwd: "", // 加密密码
|
|
|
+ pages: "1", // 页码
|
|
|
+ contactName: "PDF合并",
|
|
|
+ contactImgname: "图片合并",
|
|
|
},
|
|
|
dowloadModel: false,
|
|
|
finishModel: false,
|