|
@@ -1,4 +1,4 @@
|
|
|
-let form, table, uploadInst;
|
|
|
+let form, table, uploadInst, upload;
|
|
|
let ACCEPT = 'images';
|
|
|
layui.config({
|
|
|
base: 'js/encryption/'
|
|
@@ -134,41 +134,7 @@ layui.config({
|
|
|
}
|
|
|
});
|
|
|
|
|
|
- uploadInst = upload.render({
|
|
|
- elem: '#uploadBtn', //绑定元素
|
|
|
- url: PAGE_BASIC + '/upload/fileUpload',
|
|
|
- accept: ACCEPT,
|
|
|
- headers: {
|
|
|
- 'timestamp': new Date().getTime(),
|
|
|
- 'Authorization': sessionStorage.TOKEN_TYPE + ' ' + sessionStorage.ACCESS_TOKEN
|
|
|
- },
|
|
|
- data: {
|
|
|
- 'prefix': ACCEPT
|
|
|
- },
|
|
|
- before: function (obj) {
|
|
|
- layer.load(2); //上传loading
|
|
|
- },
|
|
|
- done: function (res) {
|
|
|
- layer.closeAll('loading');
|
|
|
- //上传完毕回调
|
|
|
- console.info(res)
|
|
|
- if (res.data) {
|
|
|
- let fileUrl = $('#fileUrl').val();
|
|
|
- if (fileUrl) {
|
|
|
- fileUrl = fileUrl + ';' + res.data.filePath;
|
|
|
- } else {
|
|
|
- fileUrl = res.data.filePath;
|
|
|
- }
|
|
|
- $('#fileUrl').val(fileUrl);
|
|
|
- console.info($('#fileUrl').val())
|
|
|
- }
|
|
|
- },
|
|
|
- error: function (err) {
|
|
|
- //请求异常回调
|
|
|
- console.error(err)
|
|
|
- layer.closeAll('loading');
|
|
|
- }
|
|
|
- });
|
|
|
+ uploadInst = loadUpload("#uploadBtn")
|
|
|
|
|
|
// 验证表单
|
|
|
form.verify({
|
|
@@ -240,6 +206,10 @@ layui.config({
|
|
|
$(".back").click(function () {
|
|
|
$(".main").addClass("layui-show").removeClass("layui-hide");
|
|
|
$(".add").addClass("layui-hide").removeClass("layui-show");
|
|
|
+ $("#list").html($("#list .listItem:first"))
|
|
|
+ $("#list").addClass("layui-hide").removeClass("layui-show");
|
|
|
+ $("#list .listItem:first").find(".content").val("")
|
|
|
+ $("#list .listItem:first").find(".fileUrl").val("")
|
|
|
});
|
|
|
|
|
|
});
|
|
@@ -249,6 +219,9 @@ layui.config({
|
|
|
*/
|
|
|
function addExplain() {
|
|
|
let postData = form.val('explainInfo');
|
|
|
+ //封装参数
|
|
|
+ postData = loadParams(postData)
|
|
|
+ console.log(postData)
|
|
|
let index = layer.load(2);
|
|
|
ly.ajax({
|
|
|
type: 'POST',
|
|
@@ -277,6 +250,8 @@ function addExplain() {
|
|
|
*/
|
|
|
function updateExplain() {
|
|
|
let postData = form.val('explainInfo');
|
|
|
+ //封装参数
|
|
|
+ postData = loadParams(postData)
|
|
|
let index = layer.load(2);
|
|
|
ly.ajax({
|
|
|
type: 'POST',
|
|
@@ -312,11 +287,18 @@ function echoExplainInfo(id) {
|
|
|
dataType: 'json',
|
|
|
success: function (json) {
|
|
|
if (json.result) {
|
|
|
+ let data = json.data
|
|
|
$('#id').val(id);
|
|
|
$('#explainName').val(json.data.explainName);
|
|
|
$('#explainType').val(json.data.explainType);
|
|
|
- $('#fileUrl').val(json.data.fileUrl);
|
|
|
- $('#content').val(json.data.content);
|
|
|
+ data.fileUrl = JSON.parse(data.fileUrl)
|
|
|
+ data.content = JSON.parse(data.content)
|
|
|
+ //加载文件列表
|
|
|
+ $("#list").empty()
|
|
|
+ loadFileList(data)
|
|
|
+
|
|
|
+ /*$('#fileUrl').val(json.data.fileUrl);
|
|
|
+ $('#content').val(json.data.content);*/
|
|
|
$('#list').removeClass('layui-hide');
|
|
|
if (json.data.explainType == 10) {
|
|
|
ACCEPT = 'video';
|
|
@@ -349,6 +331,45 @@ function echoExplainInfo(id) {
|
|
|
});
|
|
|
}
|
|
|
|
|
|
+function loadFileList(data) {
|
|
|
+ data.fileUrl.forEach((t, i) => {
|
|
|
+ let html = `<div class="listItem">
|
|
|
+ <div class="layui-form-item">
|
|
|
+ <label class="layui-form-label">
|
|
|
+ <button type="button" class="layui-btn uploadBtn" id="uploadBtn` + i + `">
|
|
|
+ <i class="layui-icon"></i>上传文件
|
|
|
+ </button>
|
|
|
+ </label>
|
|
|
+ <div class="layui-input-inline" style="display: flex;margin-left: 50px;">
|
|
|
+ <input type="hidden" class="fileUrl" name="fileUrl" lay-verify="fileUrl" value="` + t + `">
|
|
|
+ <input type="number" class="layui-input timestamp" style="width: 300px;" step="100" placeholder="间隔时间,最小100毫秒,最大10分钟" max="600000" autocomplete="off">
|
|
|
+ 毫秒
|
|
|
+ <button type="button" class="layui-btn" style="margin-left: 20px;" onclick="insertTime(this);">
|
|
|
+ <i class="layui-icon"></i>插入间隔时间
|
|
|
+ </button>
|
|
|
+ <button type="button" class="layui-btn" style="margin-left: 20px;" onclick="removeItem(this)">
|
|
|
+ <i class="layui-icon"></i>移除
|
|
|
+ </button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <div class="layui-form-item">
|
|
|
+ <label class="layui-form-label"><span class="font-red">*</span>语音内容:</label>
|
|
|
+ <div class="layui-input-inline">
|
|
|
+ <textarea class="layui-textarea content" id="content` + i + `" name="content" lay-verify="content" placeholder="请输入语音内容" autocomplete="off" ></textarea>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>`;
|
|
|
+
|
|
|
+ $("#list").append(html)
|
|
|
+ //设置文本域的值
|
|
|
+ $("#content" + i).val(data.content[i])
|
|
|
+ //加载上传组件
|
|
|
+ loadUpload("#uploadBtn" + i)
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
/**
|
|
|
* 删除智能讲解
|
|
|
* @param id
|
|
@@ -391,8 +412,8 @@ function reloadTable() {
|
|
|
/**
|
|
|
* 插入语言间隔时间
|
|
|
*/
|
|
|
-function insertTime() {
|
|
|
- let timestamp = $.trim($('#timestamp').val());
|
|
|
+function insertTime(obj) {
|
|
|
+ let timestamp = $.trim($(obj).parent().find(".timestamp").val());
|
|
|
if (!timestamp) {
|
|
|
layer.msg('请输入语音时间间隔', {icon: 5});
|
|
|
return false;
|
|
@@ -401,13 +422,16 @@ function insertTime() {
|
|
|
layer.msg('语音时间间隔,最小100毫秒,最大10分钟', {icon: 5});
|
|
|
return false;
|
|
|
}
|
|
|
- let tc = document.getElementById("content");
|
|
|
+ let tc = $(obj).parent().parent().parent().find(".content")
|
|
|
+ //把jquery对象转换成js对象
|
|
|
+ tc = tc.get(0)
|
|
|
let tclen = tc.value.length;
|
|
|
tc.focus();
|
|
|
// 兼容性检查
|
|
|
if (typeof document.selection != "undefined") {
|
|
|
// document.selection.createRange().text = timestamp;
|
|
|
} else {
|
|
|
+ console.log(tc.selectionStart)
|
|
|
tc.value =
|
|
|
// 获取光标的开始位置
|
|
|
tc.value.substr(0, tc.selectionStart) + `[p` + (timestamp).toString() + `]` + tc.value.substring(tc.selectionStart, tclen);
|
|
@@ -449,16 +473,44 @@ function updateStatus(id, status) {
|
|
|
*/
|
|
|
function addItem() {
|
|
|
let count = $('.content').length;
|
|
|
- let html = `<div class="layui-form-item">
|
|
|
- <label class="layui-form-label"><span class="font-red">*</span>语音内容` + (++count) + `:</label>
|
|
|
- <div class="layui-input-inline" style="display: flex">
|
|
|
- <textarea class="layui-textarea content" lay-verify="content" placeholder="请输入语音内容" autocomplete="off"></textarea>
|
|
|
- <button type="button" class="layui-btn" style="margin-left: 20px;" onclick="removeItem(this)">
|
|
|
+ let html = `<div class="listItem">
|
|
|
+ <div class="layui-form-item">
|
|
|
+ <label class="layui-form-label">
|
|
|
+ <button type="button" class="layui-btn uploadBtn" id="uploadBtn` + count + `">
|
|
|
+ <i class="layui-icon"></i>上传文件
|
|
|
+ </button>
|
|
|
+ </label>
|
|
|
+ <div class="layui-input-inline" style="display: flex;margin-left: 50px;">
|
|
|
+ <input type="hidden" class="fileUrl" name="fileUrl" lay-verify="fileUrl">
|
|
|
+ <input type="number" class="layui-input timestamp" style="width: 300px;" step="100" placeholder="间隔时间,最小100毫秒,最大10分钟" max="600000" autocomplete="off">
|
|
|
+ 毫秒
|
|
|
+ <button type="button" class="layui-btn" style="margin-left: 20px;" onclick="insertTime(this);">
|
|
|
+ <i class="layui-icon"></i>插入间隔时间
|
|
|
+ </button>
|
|
|
+ <button type="button" class="layui-btn" style="margin-left: 20px;" onclick="removeItem(this)">
|
|
|
<i class="layui-icon"></i>移除
|
|
|
</button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <div class="layui-form-item">
|
|
|
+ <label class="layui-form-label"><span class="font-red">*</span>语音内容:</label>
|
|
|
+ <div class="layui-input-inline">
|
|
|
+ <textarea class="layui-textarea content" name="content" lay-verify="content" placeholder="请输入语音内容" autocomplete="off"></textarea>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>`;
|
|
|
$('#list').append(html);
|
|
|
+ //添加完之后重新加载上传组件
|
|
|
+ loadUpload("#uploadBtn" + count).reload({
|
|
|
+ accept: ACCEPT,
|
|
|
+ acceptMime: ACCEPT == "images" ? 'image/*' : 'video/*',
|
|
|
+ data: {
|
|
|
+ 'prefix': ACCEPT
|
|
|
+ },
|
|
|
+ }
|
|
|
+ )
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -466,5 +518,59 @@ function addItem() {
|
|
|
* @param obj
|
|
|
*/
|
|
|
function removeItem(obj) {
|
|
|
- $(obj).parent().parent().remove();
|
|
|
+ $(obj).parent().parent().parent().remove();
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * 加载上传组件
|
|
|
+ * @param el
|
|
|
+ * @returns {*}
|
|
|
+ */
|
|
|
+function loadUpload(el) {
|
|
|
+ return upload.render({
|
|
|
+ elem: el, //绑定元素
|
|
|
+ url: PAGE_BASIC + '/upload/fileUpload',
|
|
|
+ accept: ACCEPT,
|
|
|
+ headers: {
|
|
|
+ 'timestamp': new Date().getTime(),
|
|
|
+ 'Authorization': sessionStorage.TOKEN_TYPE + ' ' + sessionStorage.ACCESS_TOKEN
|
|
|
+ },
|
|
|
+ data: {
|
|
|
+ 'prefix': ACCEPT
|
|
|
+ },
|
|
|
+ before: function (obj) {
|
|
|
+ layer.load(2); //上传loading
|
|
|
+ },
|
|
|
+ done: function (res) {
|
|
|
+ let item = this.item
|
|
|
+ layer.closeAll('loading');
|
|
|
+ //上传完毕回调
|
|
|
+ if (res.data) {
|
|
|
+ item.parent().parent().find(".fileUrl").val(res.data.filePath)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ error: function (err) {
|
|
|
+ //请求异常回调
|
|
|
+ console.error(err)
|
|
|
+ layer.closeAll('loading');
|
|
|
+ }
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * 封装请求参数
|
|
|
+ * @param postData
|
|
|
+ */
|
|
|
+function loadParams(postData) {
|
|
|
+ //取到文件list
|
|
|
+ let items = $("#list").children(".listItem")
|
|
|
+ postData.fileUrl = []
|
|
|
+ postData.content = []
|
|
|
+ for (let i = 0; i < items.length; i++) {
|
|
|
+ postData.fileUrl.push($(items[i]).find(".fileUrl").val())
|
|
|
+ postData.content.push($(items[i]).find(".content").val())
|
|
|
+ }
|
|
|
+ postData.fileUrl = JSON.stringify(postData.fileUrl)
|
|
|
+ postData.content = JSON.stringify(postData.content)
|
|
|
+ return postData
|
|
|
}
|