|
@@ -162,6 +162,7 @@
|
|
|
type="textarea" :rows="3" maxlength="66" show-word-limit
|
|
type="textarea" :rows="3" maxlength="66" show-word-limit
|
|
|
placeholder="输入要转为语音的内容" style="width: 90%;margin-top: 10px;"
|
|
placeholder="输入要转为语音的内容" style="width: 90%;margin-top: 10px;"
|
|
|
@input="handleInputVideoText(item.value,item)"/>
|
|
@input="handleInputVideoText(item.value,item)"/>
|
|
|
|
|
+ <el-button type="primary" size="mini" plain style="margin-top: 10px;" @click="openVoiceDialog(item)">快捷语音</el-button>
|
|
|
</div>
|
|
</div>
|
|
|
<div v-if="item.contentType == 8">
|
|
<div v-if="item.contentType == 8">
|
|
|
<el-button type="primary"
|
|
<el-button type="primary"
|
|
@@ -300,14 +301,16 @@
|
|
|
|
|
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item label="发送时间" prop="sendTime" v-if="msgForm.draftStrategy==1" >
|
|
<el-form-item label="发送时间" prop="sendTime" v-if="msgForm.draftStrategy==1" >
|
|
|
- <el-time-picker
|
|
|
|
|
|
|
+ <el-date-picker
|
|
|
class="custom-input"
|
|
class="custom-input"
|
|
|
v-model="msgForm.sendTime"
|
|
v-model="msgForm.sendTime"
|
|
|
- value-format="HH:mm"
|
|
|
|
|
- format="HH:mm"
|
|
|
|
|
- placeholder="时间"
|
|
|
|
|
- style="width: 100px;height: 20px;">
|
|
|
|
|
- </el-time-picker>
|
|
|
|
|
|
|
+ type="datetime"
|
|
|
|
|
+ value-format="yyyy-MM-dd HH:mm:ss"
|
|
|
|
|
+ format="yyyy-MM-dd HH:mm:ss"
|
|
|
|
|
+ placeholder="选择日期时间"
|
|
|
|
|
+ :picker-options="pickerOptions"
|
|
|
|
|
+ style="width: 220px;">
|
|
|
|
|
+ </el-date-picker>
|
|
|
<span class="tip" style="margin-left: 2%"> 不填时,默认为系统当前时间(立即发送)</span>
|
|
<span class="tip" style="margin-left: 2%"> 不填时,默认为系统当前时间(立即发送)</span>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
|
|
|
|
@@ -320,6 +323,30 @@
|
|
|
<el-dialog :title="videoNumOptions.title" :visible.sync="videoNumOptions.open" width="1500px" append-to-body>
|
|
<el-dialog :title="videoNumOptions.title" :visible.sync="videoNumOptions.open" width="1500px" append-to-body>
|
|
|
<userVideo ref="QwUserVideo" @videoResult="qwUserVideoResult"></userVideo>
|
|
<userVideo ref="QwUserVideo" @videoResult="qwUserVideoResult"></userVideo>
|
|
|
</el-dialog>
|
|
</el-dialog>
|
|
|
|
|
+ <el-dialog :title="voiceOptions.title" :visible.sync="voiceOptions.open" width="800px" append-to-body>
|
|
|
|
|
+ <div style="margin-bottom: 10px;">
|
|
|
|
|
+ <el-input v-model="voiceOptions.keyword" placeholder="请输入关键词搜索" style="width: 300px;" clearable @clear="searchVoice" @keyup.enter.native="searchVoice">
|
|
|
|
|
+ <el-button slot="append" icon="el-icon-search" @click="searchVoice">搜索</el-button>
|
|
|
|
|
+ </el-input>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <el-table :data="voiceOptions.list" v-loading="voiceOptions.loading" highlight-current-row @current-change="handleVoiceSelect">
|
|
|
|
|
+ <el-table-column prop="voiceTxt" label="语音内容" min-width="200" show-overflow-tooltip></el-table-column>
|
|
|
|
|
+ <el-table-column label="操作" width="80" align="center">
|
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
|
+ <el-button type="text" size="mini" @click="selectVoice(scope.row)">选择</el-button>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-table-column>
|
|
|
|
|
+ </el-table>
|
|
|
|
|
+ <el-pagination
|
|
|
|
|
+ style="margin-top: 10px; text-align: right;"
|
|
|
|
|
+ background
|
|
|
|
|
+ layout="total, prev, pager, next"
|
|
|
|
|
+ :total="voiceOptions.total"
|
|
|
|
|
+ :page-size="voiceOptions.pageSize"
|
|
|
|
|
+ :current-page.sync="voiceOptions.pageNum"
|
|
|
|
|
+ @current-change="searchVoice">
|
|
|
|
|
+ </el-pagination>
|
|
|
|
|
+ </el-dialog>
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
@@ -330,6 +357,7 @@ import {courseList, videoList} from "@/api/qw/sop";
|
|
|
import userVideo from "@/views/qw/userVideo/userVideo";
|
|
import userVideo from "@/views/qw/userVideo/userVideo";
|
|
|
import {listReward} from "@/api/qw/luckyBag";
|
|
import {listReward} from "@/api/qw/luckyBag";
|
|
|
import {listToLiveNoEnd} from "@/api/live/live";
|
|
import {listToLiveNoEnd} from "@/api/live/live";
|
|
|
|
|
+import { getQwSopTempVoiceCompanyUser } from "@/api/qw/QwSopTempVoice";
|
|
|
|
|
|
|
|
|
|
|
|
|
export default {
|
|
export default {
|
|
@@ -352,6 +380,17 @@ export default {
|
|
|
content: null,
|
|
content: null,
|
|
|
contentIndex: null,
|
|
contentIndex: null,
|
|
|
},
|
|
},
|
|
|
|
|
+ voiceOptions: {
|
|
|
|
|
+ title: '快捷语音',
|
|
|
|
|
+ open: false,
|
|
|
|
|
+ keyword: '',
|
|
|
|
|
+ list: [],
|
|
|
|
|
+ loading: false,
|
|
|
|
|
+ total: 0,
|
|
|
|
|
+ pageNum: 1,
|
|
|
|
|
+ pageSize: 10,
|
|
|
|
|
+ currentItem: null,
|
|
|
|
|
+ },
|
|
|
//上传语音的遮罩层
|
|
//上传语音的遮罩层
|
|
|
voiceLoading :false,
|
|
voiceLoading :false,
|
|
|
uploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS",
|
|
uploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS",
|
|
@@ -438,6 +477,48 @@ export default {
|
|
|
],
|
|
],
|
|
|
},
|
|
},
|
|
|
msgRules:{},
|
|
msgRules:{},
|
|
|
|
|
+ pickerOptions: {
|
|
|
|
|
+ shortcuts: [
|
|
|
|
|
+ {
|
|
|
|
|
+ text: '现在',
|
|
|
|
|
+ onClick(picker) {
|
|
|
|
|
+ picker.$emit('pick', new Date());
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ text: '1小时后',
|
|
|
|
|
+ onClick(picker) {
|
|
|
|
|
+ const date = new Date();
|
|
|
|
|
+ date.setTime(date.getTime() + 3600 * 1000);
|
|
|
|
|
+ picker.$emit('pick', date);
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ text: '明天此时',
|
|
|
|
|
+ onClick(picker) {
|
|
|
|
|
+ const date = new Date();
|
|
|
|
|
+ date.setTime(date.getTime() + 3600 * 1000 * 24);
|
|
|
|
|
+ picker.$emit('pick', date);
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ text: '后天此时',
|
|
|
|
|
+ onClick(picker) {
|
|
|
|
|
+ const date = new Date();
|
|
|
|
|
+ date.setTime(date.getTime() + 3600 * 1000 * 24 * 2);
|
|
|
|
|
+ picker.$emit('pick', date);
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ text: '一周后',
|
|
|
|
|
+ onClick(picker) {
|
|
|
|
|
+ const date = new Date();
|
|
|
|
|
+ date.setTime(date.getTime() + 3600 * 1000 * 24 * 7);
|
|
|
|
|
+ picker.$emit('pick', date);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ ]
|
|
|
|
|
+ },
|
|
|
};
|
|
};
|
|
|
},
|
|
},
|
|
|
|
|
|
|
@@ -521,7 +602,7 @@ export default {
|
|
|
this.$set(this.setting[i], 'linkImageUrl', selectedCourse.dictImgUrl);
|
|
this.$set(this.setting[i], 'linkImageUrl', selectedCourse.dictImgUrl);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- if ( this.setting[i].contentType == 4 || this.setting[i].contentType == 10 || this.setting[i].contentType == 17
|
|
|
|
|
|
|
+ if ( this.setting[i].contentType == 4 || this.setting[i].contentType == 10 || this.setting[i].contentType == 17
|
|
|
|| this.setting[i].contentType == 23){//新增APP 看课 跳转短链回填封面
|
|
|| this.setting[i].contentType == 23){//新增APP 看课 跳转短链回填封面
|
|
|
this.$set(this.setting[i], 'miniprogramPicUrl', selectedCourse.dictImgUrl);
|
|
this.$set(this.setting[i], 'miniprogramPicUrl', selectedCourse.dictImgUrl);
|
|
|
}
|
|
}
|
|
@@ -552,7 +633,7 @@ export default {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- if (this.setting[i].contentType == 4 || this.setting[i].contentType == 10 || this.setting[i].contentType == 17
|
|
|
|
|
|
|
+ if (this.setting[i].contentType == 4 || this.setting[i].contentType == 10 || this.setting[i].contentType == 17
|
|
|
|| this.setting[i].contentType == 23){//新增APP 看课 跳转短链回填标题
|
|
|| this.setting[i].contentType == 23){//新增APP 看课 跳转短链回填标题
|
|
|
this.$set(this.setting[i], 'miniprogramTitle', selectedVideo.dictLabel);
|
|
this.$set(this.setting[i], 'miniprogramTitle', selectedVideo.dictLabel);
|
|
|
|
|
|
|
@@ -781,7 +862,7 @@ export default {
|
|
|
this.$set(this.setting[i], 'linkImageUrl', selectedCourse.dictImgUrl);
|
|
this.$set(this.setting[i], 'linkImageUrl', selectedCourse.dictImgUrl);
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
- if (this.setting[i].contentType == 4 || this.setting[i].contentType == 10 || this.setting[i].contentType == 17
|
|
|
|
|
|
|
+ if (this.setting[i].contentType == 4 || this.setting[i].contentType == 10 || this.setting[i].contentType == 17
|
|
|
|| this.setting[i].contentType == 23){
|
|
|| this.setting[i].contentType == 23){
|
|
|
this.$set(this.setting[i], 'miniprogramPicUrl', selectedCourse.dictImgUrl);
|
|
this.$set(this.setting[i], 'miniprogramPicUrl', selectedCourse.dictImgUrl);
|
|
|
|
|
|
|
@@ -809,7 +890,7 @@ export default {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
- if (this.setting[i].contentType == 4 || this.setting[i].contentType == 10 || this.setting[i].contentType == 17
|
|
|
|
|
|
|
+ if (this.setting[i].contentType == 4 || this.setting[i].contentType == 10 || this.setting[i].contentType == 17
|
|
|
|| this.setting[i].contentType == 23){
|
|
|| this.setting[i].contentType == 23){
|
|
|
this.$set(this.setting[i], 'miniprogramTitle', selectedVideo.dictLabel);
|
|
this.$set(this.setting[i], 'miniprogramTitle', selectedVideo.dictLabel);
|
|
|
|
|
|
|
@@ -964,6 +1045,35 @@ export default {
|
|
|
this.sendMsgOpen.open = false;
|
|
this.sendMsgOpen.open = false;
|
|
|
this.resetSendMsgSop();
|
|
this.resetSendMsgSop();
|
|
|
},
|
|
},
|
|
|
|
|
+ openVoiceDialog(item) {
|
|
|
|
|
+ this.voiceOptions.open = true;
|
|
|
|
|
+ this.voiceOptions.currentItem = item;
|
|
|
|
|
+ this.voiceOptions.keyword = '';
|
|
|
|
|
+ this.voiceOptions.pageNum = 1;
|
|
|
|
|
+ this.searchVoice();
|
|
|
|
|
+ },
|
|
|
|
|
+ searchVoice() {
|
|
|
|
|
+ this.voiceOptions.loading = true;
|
|
|
|
|
+ getQwSopTempVoiceCompanyUser({
|
|
|
|
|
+ pageNum: this.voiceOptions.pageNum,
|
|
|
|
|
+ pageSize: this.voiceOptions.pageSize,
|
|
|
|
|
+ keyword: this.voiceOptions.keyword || undefined,
|
|
|
|
|
+ }).then(response => {
|
|
|
|
|
+ this.voiceOptions.list = response.rows || response.list || [];
|
|
|
|
|
+ this.voiceOptions.total = response.total || 0;
|
|
|
|
|
+ }).finally(() => {
|
|
|
|
|
+ this.voiceOptions.loading = false;
|
|
|
|
|
+ });
|
|
|
|
|
+ },
|
|
|
|
|
+ selectVoice(row) {
|
|
|
|
|
+ if (this.voiceOptions.currentItem) {
|
|
|
|
|
+ this.$set(this.voiceOptions.currentItem, 'value', row.voiceTxt || '');
|
|
|
|
|
+ }
|
|
|
|
|
+ this.voiceOptions.open = false;
|
|
|
|
|
+ },
|
|
|
|
|
+ handleVoiceSelect(row) {
|
|
|
|
|
+ // 预留行选中事件
|
|
|
|
|
+ },
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|