|
@@ -256,18 +256,18 @@ define(['jquery', 'bootstrap', 'frontend', 'form', 'template'], function ($, und
|
|
|
});
|
|
|
},
|
|
|
submit_manuscript: function () {
|
|
|
- $(document).ready(function () {
|
|
|
- // 初始化分页参数
|
|
|
- var currentPage = 1;
|
|
|
- var pageSize = 10;
|
|
|
-
|
|
|
- var index = 0;
|
|
|
- var is_next = false;
|
|
|
- var button_next = false;
|
|
|
+ // 初始化分页参数
|
|
|
+ var currentPage = 1;
|
|
|
+ var pageSize = 10;
|
|
|
|
|
|
- var manuscript_id = $("#c-manuscript_id").val();
|
|
|
- console.log(manuscript_id);
|
|
|
+ var index = 0;
|
|
|
+ var is_next = false;
|
|
|
+ var button_next = false;
|
|
|
+ var manuscript_id = $("#c-manuscript_id").val();
|
|
|
|
|
|
+ var custom_mousemove_x = 490;
|
|
|
+ var custom_mousemove_y = 350;
|
|
|
+ $(document).ready(function () {
|
|
|
// 下一步按钮
|
|
|
$('.next-button').on('click', function () {
|
|
|
// 规则验证
|
|
@@ -307,8 +307,12 @@ define(['jquery', 'bootstrap', 'frontend', 'form', 'template'], function ($, und
|
|
|
$('.submit-button').css('display', 'block');
|
|
|
$(".manuscript-content").show();
|
|
|
$(".journal-content").show();
|
|
|
- $(".author-content").show();
|
|
|
+ $(".add-author-content").show();
|
|
|
$('.recommended-button').hide();
|
|
|
+
|
|
|
+ // 最后一步设置鼠标移动时div的x与y轴的减少距离
|
|
|
+ custom_mousemove_x = 500;
|
|
|
+ custom_mousemove_y = 2000;
|
|
|
} else if (index == 4) {
|
|
|
$('.recommended-button').show();
|
|
|
$(".form-item").hide();
|
|
@@ -348,8 +352,12 @@ define(['jquery', 'bootstrap', 'frontend', 'form', 'template'], function ($, und
|
|
|
$('.submit-button').css('display', 'block');
|
|
|
$(".manuscript-content").show();
|
|
|
$(".journal-content").show();
|
|
|
- $(".author-content").show();
|
|
|
+ $(".add-author-content").show();
|
|
|
$('.recommended-button').hide();
|
|
|
+
|
|
|
+ // 最后一步设置鼠标移动时div的x与y轴的减少距离
|
|
|
+ custom_mousemove_x = 500;
|
|
|
+ custom_mousemove_y = 2000;
|
|
|
} else if (li_index == 4) {
|
|
|
$('.recommended-button').show();
|
|
|
$(".form-item").hide();
|
|
@@ -388,8 +396,12 @@ define(['jquery', 'bootstrap', 'frontend', 'form', 'template'], function ($, und
|
|
|
$('.submit-button').css('display', 'block');
|
|
|
$(".manuscript-content").show();
|
|
|
$(".journal-content").show();
|
|
|
- $(".author-content").show();
|
|
|
+ $(".add-author-content").show();
|
|
|
$('.recommended-button').hide();
|
|
|
+
|
|
|
+ // 最后一步设置鼠标移动时div的x与y轴的减少距离
|
|
|
+ custom_mousemove_x = 500;
|
|
|
+ custom_mousemove_y = 2000;
|
|
|
} else if (li_index == 4) {
|
|
|
$('.recommended-button').show();
|
|
|
$(".form-item").hide();
|
|
@@ -416,131 +428,6 @@ define(['jquery', 'bootstrap', 'frontend', 'form', 'template'], function ($, und
|
|
|
}
|
|
|
});
|
|
|
|
|
|
- // 添加作者
|
|
|
- $('.author-button').click(function () {
|
|
|
- let input_index = $('.add-author-content').children('.add-author-item').length;
|
|
|
- // let input_index = author_content_length - 1;
|
|
|
- // 克隆作者信息
|
|
|
- let str = `
|
|
|
- <div class="add-author-item">
|
|
|
- <hr style="background: #B8B8B8;">
|
|
|
-
|
|
|
- <div class="form-group">
|
|
|
- <label class="control-label col-xs-12 col-sm-9">
|
|
|
- </label>
|
|
|
-
|
|
|
- <div class="author-delete-button mb-3 col-xs-12 col-sm-3">
|
|
|
- - Delete
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div class="form-group">
|
|
|
- <label class="control-label col-xs-12 col-sm-4">
|
|
|
- <span style="color:#ed534b;margin-right: 10px;">*</span>Institution E-Mail Address:
|
|
|
- </label>
|
|
|
- <div class="col-xs-12 col-sm-8">
|
|
|
- <input type="text" data-rule="required" class="form-control" id="c-email" name="row[author][${input_index}][email]" value="" placeholder="Type here...">
|
|
|
-
|
|
|
- <div class="input-group-addon no-border no-padding">
|
|
|
- <span class="msg-box n-right" for="c-email"></span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div class="form-group">
|
|
|
- <label class="control-label col-xs-12 col-sm-4">
|
|
|
- <span style="color:#ed534b;margin-right: 10px;">*</span>First Name:
|
|
|
- </label>
|
|
|
- <div class="col-xs-12 col-sm-8">
|
|
|
- <input type="text" data-rule="required" class="form-control" id="c-first-name" name="row[author][${input_index}][first_name]" value="" placeholder="Type here...">
|
|
|
-
|
|
|
- <div class="input-group-addon no-border no-padding">
|
|
|
- <span class="msg-box n-right" for="c-first_name"></span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div class="form-group">
|
|
|
- <label class="control-label col-xs-12 col-sm-4">
|
|
|
- Middle Name:
|
|
|
- </label>
|
|
|
- <div class="col-xs-12 col-sm-8">
|
|
|
- <input type="text" class="form-control" id="c-middle-name" name="row[author][${input_index}][middle_name]" value="" placeholder="Type here...">
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div class="form-group">
|
|
|
- <label class="control-label col-xs-12 col-sm-4">
|
|
|
- Last Name:
|
|
|
- </label>
|
|
|
- <div class="col-xs-12 col-sm-8">
|
|
|
- <input type="text" class="form-control" id="c-last-name" name="row[author][${input_index}][last_name]" value="" placeholder="Type here...">
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div class="form-group">
|
|
|
- <label class="control-label col-xs-12 col-sm-4">
|
|
|
- <span style="color:#ed534b;margin-right: 10px;">*</span>Display E-Mail:
|
|
|
- </label>
|
|
|
- <div class="col-xs-12 col-sm-8">
|
|
|
- <div class="input-group mb-3">
|
|
|
- <div class="radio radio-inline pl-0">
|
|
|
- <label for="c-display-e-mail-yes-${input_index}"><input data-rule="required" id="c-display-e-mail-yes-${input_index}" name="row[author][${input_index}][display_email]" type="radio" value="yes" data-tip="" checked/>Yes</label>
|
|
|
- <label for="c-display-e-mail-no-${input_index}"><input data-rule="required" id="c-display-e-mail-no-${input_index}" name="row[author][${input_index}][display_email]" type="radio" value="no" data-tip="" />No</label>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div class="form-group">
|
|
|
- <label class="control-label col-xs-12 col-sm-4">
|
|
|
- <span style="color:#ed534b;margin-right: 10px;">*</span>Correspondsing Author:
|
|
|
- </label>
|
|
|
- <div class="col-xs-12 col-sm-8">
|
|
|
- <div class="input-group mb-3">
|
|
|
- <div class="radio radio-inline pl-0">
|
|
|
- <label for="c-correspondsing-author-yes-${input_index}"><input data-rule="required" id="c-correspondsing-author-yes-${input_index}" name="row[author][${input_index}][correspondsing_author]" type="radio" value="yes" checked/>Yes</label>
|
|
|
- <label for="c-correspondsing-author-no-${input_index}"><input data-rule="required" id="c-correspondsing-author-no-${input_index}" name="row[author][${input_index}][correspondsing_author]" type="radio" value="no" />No</label>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div class="form-group">
|
|
|
- <label class="control-label col-xs-12 col-sm-4">
|
|
|
- <span style="color:#ed534b;margin-right: 10px;">*</span>Affiliation:
|
|
|
- </label>
|
|
|
- <div class="col-xs-12 col-sm-8">
|
|
|
- <input data-rule="required" type="text" class="form-control" id="c-author-affiliation" name="row[author][${input_index}][author_affiliation]" value="" placeholder="Type here...">
|
|
|
-
|
|
|
- <div class="input-group-addon no-border no-padding">
|
|
|
- <span class="msg-box n-right" for="c-author-affiliation"></span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div class="form-group">
|
|
|
- <label class="control-label col-xs-12 col-sm-4">
|
|
|
- <span style="color:#ed534b;margin-right: 10px;">*</span>Country / Temitory:
|
|
|
- </label>
|
|
|
- <div class="col-xs-12 col-sm-8">
|
|
|
- <select id="c-author_country" data-rule="required" class="form-control" name="row[author][${input_index}][author_country]">
|
|
|
- <option value="">Please select</option>
|
|
|
- <option value="china">china</option>
|
|
|
- <option value="japan">japan</option>
|
|
|
- <option value="england">england</option>
|
|
|
- </select>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- </div>
|
|
|
- `;
|
|
|
- $('.add-author-content').append(str);
|
|
|
-
|
|
|
- // 更新 name 值为按顺序增加的索引值
|
|
|
- updateInputNames();
|
|
|
- });
|
|
|
-
|
|
|
// 删除对应作者信息
|
|
|
$(document).on('click', '.author-delete-button', function () {
|
|
|
let author_content_length = $('.add-author-content').children('.add-author-item').length;
|
|
@@ -552,36 +439,6 @@ define(['jquery', 'bootstrap', 'frontend', 'form', 'template'], function ($, und
|
|
|
}
|
|
|
});
|
|
|
|
|
|
- // 排序input 的 name 值
|
|
|
- var updateInputNames = function () {
|
|
|
- // 遍历所有的div元素
|
|
|
- $(".add-author-item").each(function (index) {
|
|
|
- var email_input = $(this).find('input[id="c-email"]');
|
|
|
- var first_name_input = $(this).find('input[id="c-first-name"]');
|
|
|
- var middle_name_input = $(this).find('input[id="c-middle-name"]');
|
|
|
- var last_name_input = $(this).find('input[id="c-last-name"]');
|
|
|
- var author_affiliation_input = $(this).find('input[id="c-author-affiliation"]');
|
|
|
- var display_email_yes_radio = $(this).find("input[type=radio][id=c-display-e-mail-yes]");
|
|
|
- var display_email_no_radio = $(this).find("input[type=radio][id=c-display-e-mail-no]");
|
|
|
- var correspondsing_author_yes_radio = $(this).find("input[type=radio][id=c-correspondsing-author-yes]");
|
|
|
- var correspondsing_author_no_radio = $(this).find("input[type=radio][id=c-correspondsing-author-no]");
|
|
|
- var select = $(this).find("select");
|
|
|
-
|
|
|
- email_input.attr('name', "row[author]["+ index +"][email]");
|
|
|
- first_name_input.attr('name', "row[author]["+ index +"][first_name]");
|
|
|
- middle_name_input.attr('name', "row[author]["+ index +"][middle_name]");
|
|
|
- last_name_input.attr('name', "row[author]["+ index +"][last_name]");
|
|
|
- author_affiliation_input.attr('name', "row[author]["+ index +"][author_affiliation]");
|
|
|
-
|
|
|
- display_email_yes_radio.attr('name', "row[author]["+ index +"][display_email]");
|
|
|
- display_email_no_radio.attr('name', "row[author]["+ index +"][display_email]");
|
|
|
- correspondsing_author_yes_radio.attr('name', "row[author]["+ index +"][correspondsing_author]");
|
|
|
- correspondsing_author_no_radio.attr('name', "row[author]["+ index +"][correspondsing_author]");
|
|
|
-
|
|
|
- select.attr('name', "row[author]["+ index +"][author_country]");
|
|
|
- });
|
|
|
- };
|
|
|
-
|
|
|
// 审稿人列表按钮
|
|
|
$(document).on('click', '.reviewer-list-button', function () {
|
|
|
let selected_id = [];
|
|
@@ -770,7 +627,7 @@ define(['jquery', 'bootstrap', 'frontend', 'form', 'template'], function ($, und
|
|
|
' <label class="control-label col-xs-12 col-sm-11">\n' +
|
|
|
' </label>\n' +
|
|
|
' <div class="reviewer-delete-button text-delete-button mb-3 col-xs-12 col-sm-1">\n' +
|
|
|
- ' - Delete\n' +
|
|
|
+ ' <i class="fa fa-trash"></i> Delete\n' +
|
|
|
' </div>\n' +
|
|
|
' </div>\n' +
|
|
|
' <div class="form-group">\n' +
|
|
@@ -926,7 +783,7 @@ define(['jquery', 'bootstrap', 'frontend', 'form', 'template'], function ($, und
|
|
|
' <label class="control-label col-xs-12 col-sm-11">\n' +
|
|
|
' </label>\n' +
|
|
|
' <div class="reviewer-delete-button text-delete-button mb-3 col-xs-12 col-sm-1">\n' +
|
|
|
- ' - Delete\n' +
|
|
|
+ ' <i class="fa fa-trash"></i> Delete\n' +
|
|
|
' </div>\n' +
|
|
|
' </div>\n' +
|
|
|
' <div class="form-group">\n' +
|
|
@@ -1033,10 +890,334 @@ define(['jquery', 'bootstrap', 'frontend', 'form', 'template'], function ($, und
|
|
|
return pageHtml;
|
|
|
}
|
|
|
});
|
|
|
+ // 添加作者
|
|
|
+ $('.author-button').click(function () {
|
|
|
+ let input_index = $('.add-author-content').children('.add-author-item').length;
|
|
|
+ // let input_index = author_content_length - 1;
|
|
|
+ // 克隆作者信息
|
|
|
+ let str = `<div class="add-author-item div">
|
|
|
+ <hr style="background: #B8B8B8;">
|
|
|
+ <div class="form-group author-content-button-item">
|
|
|
+ <div class="author-delete-button text-delete-button">
|
|
|
+ <i class="fa fa-trash"></i> Delete
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="form-group">
|
|
|
+ <label class="control-label col-xs-12 col-sm-4">
|
|
|
+ <span style="color:#ed534b;margin-right: 10px;">*</span>Institution E-Mail Address:
|
|
|
+ </label>
|
|
|
+ <div class="col-xs-12 col-sm-8">
|
|
|
+ <input type="text" data-rule="required" class="form-control" id="c-email" name="row[author][${input_index}][email]" value="" placeholder="Type here...">
|
|
|
+
|
|
|
+ <div class="input-group-addon no-border no-padding">
|
|
|
+ <span class="msg-box n-right" for="c-email"></span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="form-group">
|
|
|
+ <label class="control-label col-xs-12 col-sm-4">
|
|
|
+ <span style="color:#ed534b;margin-right: 10px;">*</span>First Name:
|
|
|
+ </label>
|
|
|
+ <div class="col-xs-12 col-sm-8">
|
|
|
+ <input type="text" data-rule="required" class="form-control" id="c-first-name" name="row[author][${input_index}][first_name]" value="" placeholder="Type here...">
|
|
|
+
|
|
|
+ <div class="input-group-addon no-border no-padding">
|
|
|
+ <span class="msg-box n-right" for="c-first_name"></span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="form-group">
|
|
|
+ <label class="control-label col-xs-12 col-sm-4">
|
|
|
+ Middle Name:
|
|
|
+ </label>
|
|
|
+ <div class="col-xs-12 col-sm-8">
|
|
|
+ <input type="text" class="form-control" id="c-middle-name" name="row[author][${input_index}][middle_name]" value="" placeholder="Type here...">
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="form-group">
|
|
|
+ <label class="control-label col-xs-12 col-sm-4">
|
|
|
+ Last Name:
|
|
|
+ </label>
|
|
|
+ <div class="col-xs-12 col-sm-8">
|
|
|
+ <input type="text" class="form-control" id="c-last-name" name="row[author][${input_index}][last_name]" value="" placeholder="Type here...">
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="form-group">
|
|
|
+ <label class="control-label col-xs-12 col-sm-4">
|
|
|
+ <span style="color:#ed534b;margin-right: 10px;">*</span>Display E-Mail:
|
|
|
+ </label>
|
|
|
+ <div class="col-xs-12 col-sm-8">
|
|
|
+ <div class="input-group mb-3">
|
|
|
+ <div class="radio radio-inline pl-0">
|
|
|
+ <label for="c-display-e-mail-yes-${input_index}"><input data-rule="required" id="c-display-e-mail-yes-${input_index}" name="row[author][${input_index}][display_email]" type="radio" value="yes" data-tip="" checked/>Yes</label>
|
|
|
+ <label for="c-display-e-mail-no-${input_index}"><input data-rule="required" id="c-display-e-mail-no-${input_index}" name="row[author][${input_index}][display_email]" type="radio" value="no" data-tip="" />No</label>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="form-group">
|
|
|
+ <label class="control-label col-xs-12 col-sm-4">
|
|
|
+ <span style="color:#ed534b;margin-right: 10px;">*</span>Correspondsing Author:
|
|
|
+ </label>
|
|
|
+ <div class="col-xs-12 col-sm-8">
|
|
|
+ <div class="input-group mb-3">
|
|
|
+ <div class="radio radio-inline pl-0">
|
|
|
+ <label for="c-correspondsing-author-yes-${input_index}"><input data-rule="required" id="c-correspondsing-author-yes-${input_index}" name="row[author][${input_index}][correspondsing_author]" type="radio" value="yes" checked/>Yes</label>
|
|
|
+ <label for="c-correspondsing-author-no-${input_index}"><input data-rule="required" id="c-correspondsing-author-no-${input_index}" name="row[author][${input_index}][correspondsing_author]" type="radio" value="no" />No</label>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="form-group">
|
|
|
+ <label class="control-label col-xs-12 col-sm-4">
|
|
|
+ <span style="color:#ed534b;margin-right: 10px;">*</span>Affiliation:
|
|
|
+ </label>
|
|
|
+ <div class="col-xs-12 col-sm-8">
|
|
|
+ <input data-rule="required" type="text" class="form-control" id="c-author-affiliation" name="row[author][${input_index}][author_affiliation]" value="" placeholder="Type here...">
|
|
|
+
|
|
|
+ <div class="input-group-addon no-border no-padding">
|
|
|
+ <span class="msg-box n-right" for="c-author-affiliation"></span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="form-group">
|
|
|
+ <label class="control-label col-xs-12 col-sm-4">
|
|
|
+ <span style="color:#ed534b;margin-right: 10px;">*</span>Country / Temitory:
|
|
|
+ </label>
|
|
|
+ <div class="col-xs-12 col-sm-8">
|
|
|
+ <select id="c-author_country" data-rule="required" class="form-control" name="row[author][${input_index}][author_country]">
|
|
|
+ <option value="">Please select</option>
|
|
|
+ <option value="china">china</option>
|
|
|
+ <option value="japan">japan</option>
|
|
|
+ <option value="england">england</option>
|
|
|
+ </select>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>`;
|
|
|
+ $('.add-author-content').append(str);
|
|
|
+
|
|
|
+ // 更新 name 值为按顺序增加的索引值
|
|
|
+ updateInputNames();
|
|
|
+ });
|
|
|
+
|
|
|
+ // 排序input 的 name 值
|
|
|
+ function updateInputNames () {
|
|
|
+ drags('add-author-item', 'div-dash', 'dash');
|
|
|
+
|
|
|
+ // 遍历所有的div元素
|
|
|
+ $(".add-author-item").each(function (index) {
|
|
|
+ var email_input = $(this).find('input[id="c-email"]');
|
|
|
+ var first_name_input = $(this).find('input[id="c-first-name"]');
|
|
|
+ var middle_name_input = $(this).find('input[id="c-middle-name"]');
|
|
|
+ var last_name_input = $(this).find('input[id="c-last-name"]');
|
|
|
+ var author_affiliation_input = $(this).find('input[id="c-author-affiliation"]');
|
|
|
+ var display_email_yes_radio = $(this).find("input[type=radio][id=c-display-e-mail-yes]");
|
|
|
+ var display_email_no_radio = $(this).find("input[type=radio][id=c-display-e-mail-no]");
|
|
|
+ var correspondsing_author_yes_radio = $(this).find("input[type=radio][id=c-correspondsing-author-yes]");
|
|
|
+ var correspondsing_author_no_radio = $(this).find("input[type=radio][id=c-correspondsing-author-no]");
|
|
|
+ var select = $(this).find("select");
|
|
|
+
|
|
|
+ email_input.attr('name', "row[author]["+ index +"][email]");
|
|
|
+ first_name_input.attr('name', "row[author]["+ index +"][first_name]");
|
|
|
+ middle_name_input.attr('name', "row[author]["+ index +"][middle_name]");
|
|
|
+ last_name_input.attr('name', "row[author]["+ index +"][last_name]");
|
|
|
+ author_affiliation_input.attr('name', "row[author]["+ index +"][author_affiliation]");
|
|
|
+
|
|
|
+ display_email_yes_radio.attr('name', "row[author]["+ index +"][display_email]");
|
|
|
+ display_email_no_radio.attr('name', "row[author]["+ index +"][display_email]");
|
|
|
+ correspondsing_author_yes_radio.attr('name', "row[author]["+ index +"][correspondsing_author]");
|
|
|
+ correspondsing_author_no_radio.attr('name', "row[author]["+ index +"][correspondsing_author]");
|
|
|
+
|
|
|
+ select.attr('name', "row[author]["+ index +"][author_country]");
|
|
|
+ });
|
|
|
+ };
|
|
|
+
|
|
|
+ // 拖拽初始化
|
|
|
+ drags('add-author-item', 'div-dash', 'dash');
|
|
|
+
|
|
|
+ // 拖拽方法
|
|
|
+ function drags(name, name2, name3) {
|
|
|
+ var range = {x: 0, y: 0}; // 鼠标元素偏移量
|
|
|
+ var lastPos = {x: 0, y: 0, x1: 0, y1: 0}; // 拖拽对象的四个坐标
|
|
|
+ var tarPos = {x: 0, y: 0, x1: 0, y1: 0}; // 目标元素对象的坐标初始化
|
|
|
+ var thidDiv = null, move = false, choose = false; // 拖拽对象 拖拽状态 选中状态
|
|
|
+ //拖拽对象的索引、高度、的初始化。
|
|
|
+ var thidDivWidth = 0, thidDivHeight = 0, thidDivHalfW = 0, thidDivHalfH = 0, tarFirstX = 0, tarFirstY = 0;
|
|
|
+ var tarDiv = null, tarFirst, tempDiv; // 要插入的目标元素的对象, 临时的虚线对象
|
|
|
+ var initPos = {x: 0, y: 0}; // 记录拖拽元素初始鼠标元素偏移量
|
|
|
+
|
|
|
+ // 当鼠标按下时
|
|
|
+ $('.' + name).on('mousedown', function (event) {
|
|
|
+ console.log(event.target.tagName);
|
|
|
+ // 判断是否点击了 input 元素
|
|
|
+ if (event.target.tagName === 'INPUT') {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (event.target.tagName === 'SELECT') {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (event.target.tagName === 'LABEL') {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 判断如果鼠标是删除按钮则终止拖拽
|
|
|
+ let class_name = event.target.className.split(" ");
|
|
|
+ if (class_name[0] == 'author-delete-button') {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ choose = true;
|
|
|
+ // 拖拽对象
|
|
|
+ thidDiv = $(this);
|
|
|
+ // 记录拖拽元素初始位置
|
|
|
+ initPos.x = thidDiv.offset().left;
|
|
|
+ initPos.y = thidDiv.offset().top;
|
|
|
+ // 鼠标元素相对偏移量
|
|
|
+ range.x = event.pageX - thidDiv.offset().left;
|
|
|
+ range.y = event.pageY - thidDiv.offset().top;
|
|
|
+
|
|
|
+ thidDivWidth = thidDiv.width();
|
|
|
+ thidDivHeight = thidDiv.height();
|
|
|
+ thidDivHalfW = thidDivWidth / 2;
|
|
|
+ thidDivHalfH = thidDivHeight / 2;
|
|
|
+ thidDiv.attr("class", name2);
|
|
|
+ thidDiv.css({
|
|
|
+ left: (event.pageX + range.x) + 'px',
|
|
|
+ top: (event.pageY + range.y) + 'px',
|
|
|
+ });
|
|
|
+
|
|
|
+ // 创建新元素 插入拖拽元素之前的位置(虚线框)
|
|
|
+ $("<div class='" + name3 + "' style='float: right;'></div>").insertBefore(thidDiv);
|
|
|
+ tempDiv = $("." + name3);
|
|
|
+ });
|
|
|
+
|
|
|
+ // 当鼠标抬起时
|
|
|
+ $(document).on('mouseup', function (event) {
|
|
|
+ if (!choose) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!move) {
|
|
|
+ thidDiv.attr("class", name);
|
|
|
+ tempDiv.remove(); // 删除新建的虚线div
|
|
|
+ choose = false;
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ thidDiv.insertBefore(tempDiv); // 拖拽元素插入到 虚线div的位置上
|
|
|
+ thidDiv.attr("class", name); //恢复对象的初始样式
|
|
|
+ tempDiv.remove(); // 删除新建的虚线div
|
|
|
+ move = false;
|
|
|
+ choose = false;
|
|
|
+
|
|
|
+ // 当鼠标移动时
|
|
|
+ }).on('mousemove', function (event) {
|
|
|
+
|
|
|
+ if (!choose) return false;
|
|
|
+
|
|
|
+ move = true;
|
|
|
+ lastPos.x = event.pageX - range.x;
|
|
|
+ lastPos.y = event.pageY - range.y;
|
|
|
+ lastPos.x1 = lastPos.x + thidDivWidth;
|
|
|
+ lastPos.y1 = lastPos.y + thidDivHeight;
|
|
|
+ // 拖拽元素随鼠标移动
|
|
|
+ thidDiv.css({
|
|
|
+ left: lastPos.x - custom_mousemove_x + 'px',
|
|
|
+ top: lastPos.y - custom_mousemove_y + 'px'
|
|
|
+ });
|
|
|
+ // 拖拽元素随鼠标移动 查找插入目标元素
|
|
|
+ var $main = $('.' + name); // 局部变量:按照重新排列过的顺序 再次获取 各个元素的坐标,
|
|
|
+
|
|
|
+ $main.each(function () {
|
|
|
+
|
|
|
+ tarDiv = $(this);
|
|
|
+ tarPos.x = tarDiv.offset().left;
|
|
|
+ tarPos.y = tarDiv.offset().top;
|
|
|
+ tarPos.x1 = tarPos.x + tarDiv.width() / 2;
|
|
|
+ tarPos.y1 = tarPos.y + tarDiv.height() / 2;
|
|
|
+ tarFirst = $main.eq(0); // 获得第一个元素
|
|
|
+ tarFirstX = tarFirst.offset().left + thidDivHalfW; // 第一个元素对象的中心纵坐标
|
|
|
+ tarFirstY = tarFirst.offset().top + thidDivHalfH; // 第一个元素对象的中心横坐标
|
|
|
+
|
|
|
+ // 根据 拖拽对象x坐标 与 目标元素对象x坐标 对比,来显示 虚线div 在节点前、后出现的位置
|
|
|
+ if (lastPos.x > tarPos.x) {
|
|
|
+
|
|
|
+ // 判断要插入目标元素的 坐标后, 直接插入
|
|
|
+ if (lastPos.x >= tarPos.x - thidDivHalfW && lastPos.x1 >= tarPos.x1 && lastPos.y >= tarPos.y - thidDivHalfH && lastPos.y1 >= tarPos.y1) {
|
|
|
+ tempDiv.insertAfter(tarDiv);
|
|
|
+ }
|
|
|
+
|
|
|
+ //拖拽对象 移动到第一个位置
|
|
|
+ if (lastPos.x <= tarFirstX && lastPos.y <= tarFirstY) {
|
|
|
+ tempDiv.insertBefore(tarFirst);
|
|
|
+ }
|
|
|
+
|
|
|
+ } else {
|
|
|
+
|
|
|
+ //拖拽对象 移动到第一个位置
|
|
|
+ if (lastPos.x <= tarFirstX && lastPos.y <= tarFirstY) {
|
|
|
+ tempDiv.insertBefore(tarFirst);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 判断要插入目标元素的 坐标后, 直接插入
|
|
|
+ if (lastPos.x >= tarPos.x - thidDivHalfW && lastPos.x1 >= tarPos.x1 && lastPos.y >= tarPos.y - thidDivHalfH && lastPos.y1 >= tarPos.y1) {
|
|
|
+ tempDiv.insertAfter(tarDiv);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ });
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ $.fn.serializeObject = function() {
|
|
|
+ var obj = {};
|
|
|
+ var arrayTmp = this.serializeArray();
|
|
|
+ $.each(arrayTmp, function() {
|
|
|
+ if (obj[this.name]) {
|
|
|
+ if (!obj[this.name].push) {
|
|
|
+ obj[this.name] = [ obj[this.name] ];
|
|
|
+ }
|
|
|
+ obj[this.name].push(this.value || '');
|
|
|
+ } else {
|
|
|
+ obj[this.name] = this.value || '';
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ return obj;
|
|
|
+ };
|
|
|
+
|
|
|
+ $(document).on('mouseup', function () {
|
|
|
+ let values = $('#submit-manuscript-form').serializeObject();
|
|
|
+ $.ajax({
|
|
|
+ url: '/api/user/incomplete_submit',
|
|
|
+ type: 'POST',
|
|
|
+ dataType: 'json',
|
|
|
+ data: values,
|
|
|
+ success: function(res) {
|
|
|
+ // 如果保存了就代表接下来都是修改,所以记录返回的id
|
|
|
+ if (res.code == 1) {
|
|
|
+ $('#c-manuscript_id').val(res.data);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ error: function(xhr, status, error) {
|
|
|
+ top.window.Toastr.error('Save failed');
|
|
|
+ }
|
|
|
+ });
|
|
|
+ })
|
|
|
|
|
|
Form.api.bindevent($("#submit-manuscript-form"), function () {
|
|
|
setTimeout(function () {
|
|
|
- location.href = "index/user/display_submitted";
|
|
|
+ location.href = "/index/user/display_submitted";
|
|
|
}, 2000);
|
|
|
});
|
|
|
},
|
|
@@ -1126,7 +1307,7 @@ define(['jquery', 'bootstrap', 'frontend', 'form', 'template'], function ($, und
|
|
|
let html = '<article class="article-item">\n' +
|
|
|
' <div class="media">\n' +
|
|
|
' <div class="media-left">\n' +
|
|
|
- ' <a href="/wearable/109.html">\n' +
|
|
|
+ ' <a href="submit_manuscript?id='+ rowData.id +'">\n' +
|
|
|
' <div class="embed-responsive embed-responsive-4by3 img-zoom">\n' +
|
|
|
' <img src="'+ rowData.image +'">\n' +
|
|
|
' </div>\n' +
|
|
@@ -1134,7 +1315,7 @@ define(['jquery', 'bootstrap', 'frontend', 'form', 'template'], function ($, und
|
|
|
' </div>\n' +
|
|
|
' <div class="media-body">\n' +
|
|
|
' <h3 class="article-title">\n' +
|
|
|
- ' <a href="#">'+ rowData.title +'</a>\n' +
|
|
|
+ ' <a href="submit_manuscript?id='+ rowData.id +'">'+ rowData.title +'</a>\n' +
|
|
|
' <div class="article-title-id">\n' +
|
|
|
' ID:'+ rowData.id +'\n' +
|
|
|
' </div>\n' +
|
|
@@ -1334,7 +1515,7 @@ define(['jquery', 'bootstrap', 'frontend', 'form', 'template'], function ($, und
|
|
|
' <label class="control-label col-xs-12 col-sm-11">\n' +
|
|
|
' </label>\n' +
|
|
|
' <div class="editor-delete-button text-delete-button mb-3 col-xs-12 col-sm-1">\n' +
|
|
|
- ' - Delete\n' +
|
|
|
+ ' <i class="fa fa-trash"></i> Delete\n' +
|
|
|
' </div>\n' +
|
|
|
' </div>\n' +
|
|
|
' <div class="form-group">\n' +
|
|
@@ -1474,7 +1655,7 @@ define(['jquery', 'bootstrap', 'frontend', 'form', 'template'], function ($, und
|
|
|
' <label class="control-label col-xs-12 col-sm-11">\n' +
|
|
|
' </label>\n' +
|
|
|
' <div class="editor-delete-button text-delete-button mb-3 col-xs-12 col-sm-1">\n' +
|
|
|
- ' - Delete\n' +
|
|
|
+ ' <i class="fa fa-trash"></i> Delete\n' +
|
|
|
' </div>\n' +
|
|
|
' </div>\n' +
|
|
|
' <div class="form-group">\n' +
|
|
@@ -1629,6 +1810,73 @@ define(['jquery', 'bootstrap', 'frontend', 'form', 'template'], function ($, und
|
|
|
// $("input[name=captcha]").next(".input-group-btn").find("img").trigger("click");
|
|
|
});
|
|
|
},
|
|
|
+ special_issue_list: function () {
|
|
|
+ // 初始化分页参数
|
|
|
+ var currentPage = 1;
|
|
|
+ var pageSize = 10;
|
|
|
+ $('#c-search').on("keyup", function (e) {
|
|
|
+ if (e.keyCode === 13) {
|
|
|
+ let keyword = $(this).val();
|
|
|
+ // 点击回车后进行搜索
|
|
|
+ $.ajax({
|
|
|
+ url: 'user/special_issue_list',
|
|
|
+ type: 'GET',
|
|
|
+ dataType: 'json',
|
|
|
+ data: {
|
|
|
+ page: currentPage,
|
|
|
+ limit: pageSize,
|
|
|
+ keyword: keyword,
|
|
|
+ },
|
|
|
+ success: function(res) {
|
|
|
+ if (res.code === 1) {
|
|
|
+ $('.article-list').html('');
|
|
|
+ var tableData = res.data.data;
|
|
|
+ for (var i = 0; i < tableData.length; i++) {
|
|
|
+ let rowData = tableData[i];
|
|
|
+ let html = '<article class="article-item">\n' +
|
|
|
+ ' <div class="media">\n' +
|
|
|
+ ' <div class="media-left">\n' +
|
|
|
+ ' <a href="special_issue?id='+ rowData.id +'}">\n' +
|
|
|
+ ' <div class="embed-responsive embed-responsive-4by3 img-zoom p-0">\n' +
|
|
|
+ ' <img src="'+ rowData.image +'">\n' +
|
|
|
+ ' </div>\n' +
|
|
|
+ ' </a>\n' +
|
|
|
+ ' </div>\n' +
|
|
|
+ ' <div class="media-body">\n' +
|
|
|
+ ' <h3 class="article-title">\n' +
|
|
|
+ ' <a href="special_issue?id='+ rowData.id +'">'+ rowData.issue_name +'</a>\n' +
|
|
|
+ ' <div class="article-title-id">\n' +
|
|
|
+ ' ID:'+ rowData.id +'\n' +
|
|
|
+ ' </div>\n' +
|
|
|
+ ' </h3>\n' +
|
|
|
+ ' <div class="article-intro">\n' +
|
|
|
+ ' <span class="label label-info article-intro-label">'+ rowData.journal +'</span>\n' +
|
|
|
+ ' </div>\n' +
|
|
|
+ ' <div class="article-tag">\n' +
|
|
|
+ ' <div itemprop="date">Submission date:'+ rowData.createtime +'</div>\n' +
|
|
|
+ ' </div>\n' +
|
|
|
+ ' <div class="article-tag">\n' +
|
|
|
+ ' <div class="article-read">\n' +
|
|
|
+ ' <a href="special_issue?id='+ rowData.id +'" style="color: #007bff;">\n' +
|
|
|
+ ' <img src="__CDN__/assets/img/index/personal_data_icon.png" alt="">\n' +
|
|
|
+ ' Edit\n' +
|
|
|
+ ' </a>\n' +
|
|
|
+ ' </div>\n' +
|
|
|
+ ' </div>\n' +
|
|
|
+ ' </div>\n' +
|
|
|
+ ' </div>\n' +
|
|
|
+ ' </article>';
|
|
|
+ $('.article-list').append(html);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ error: function(xhr, status, error) {
|
|
|
+ console.error(error);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
};
|
|
|
return Controller;
|
|
|
});
|