|
@@ -27,11 +27,85 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|
|
}, 1500);
|
|
|
});
|
|
|
|
|
|
+ //渲染关联显示字段和存储字段
|
|
|
+ var renderselect = function (id, data, defaultvalue) {
|
|
|
+ var html = [];
|
|
|
+ for (var i = 0; i < data.length; i++) {
|
|
|
+ html.push("<option value='" + data[i].name + "' " + (defaultvalue == data[i].name ? "selected" : "") + " data-subtext='" + data[i].title + "'>" + data[i].name + "</option>");
|
|
|
+ }
|
|
|
+ var select = $(id);
|
|
|
+ $(select).html(html.join(""));
|
|
|
+ select.trigger("change");
|
|
|
+ if (select.data("selectpicker")) {
|
|
|
+ select.selectpicker('refresh');
|
|
|
+ }
|
|
|
+ };
|
|
|
+ //关联表切换
|
|
|
+ $(document).on('change', "#c-selectpage-table", function (e, first) {
|
|
|
+ var that = this;
|
|
|
+ Fast.api.ajax({
|
|
|
+ url: "general/config/get_fields_list",
|
|
|
+ data: {table: $(that).val()},
|
|
|
+ }, function (data, ret) {
|
|
|
+ renderselect("#c-selectpage-primarykey", data.fieldList, first ? $("#c-selectpage-primarykey").data("value") : '');
|
|
|
+ renderselect("#c-selectpage-field", data.fieldList, first ? $("#c-selectpage-field").data("value") : '');
|
|
|
+ return false;
|
|
|
+ });
|
|
|
+ return false;
|
|
|
+ });
|
|
|
+ //如果编辑模式则渲染已知数据
|
|
|
+ if (['selectpage', 'selectpages'].indexOf($("#c-type").val()) > -1) {
|
|
|
+ $("#c-selectpage-table").trigger("change", true);
|
|
|
+ }
|
|
|
+
|
|
|
+ //切换类型时
|
|
|
+ $(document).on("change", "#c-type", function () {
|
|
|
+ var value = $(this).val();
|
|
|
+ $(".tf").addClass("hidden");
|
|
|
+ $(".tf.tf-" + value).removeClass("hidden");
|
|
|
+ if (["selectpage", "selectpages"].indexOf(value) > -1 && $("#c-selectpage-table option").length == 1) {
|
|
|
+ //异步加载表列表
|
|
|
+ Fast.api.ajax({
|
|
|
+ url: "general/config/get_table_list",
|
|
|
+ }, function (data, ret) {
|
|
|
+ renderselect("#c-selectpage-table", data.tableList);
|
|
|
+ return false;
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
//切换显示隐藏变量字典列表
|
|
|
$(document).on("change", "form#add-form select[name='row[type]']", function (e) {
|
|
|
$("#add-content-container").toggleClass("hide", ['select', 'selects', 'checkbox', 'radio'].indexOf($(this).val()) > -1 ? false : true);
|
|
|
});
|
|
|
|
|
|
+ //选择规则
|
|
|
+ $(document).on("click", ".rulelist > li > a", function () {
|
|
|
+ var ruleArr = $("#rule").val() == '' ? [] : $("#rule").val().split(";");
|
|
|
+ var rule = $(this).data("value");
|
|
|
+ var index = ruleArr.indexOf(rule);
|
|
|
+ if (index > -1) {
|
|
|
+ ruleArr.splice(index, 1);
|
|
|
+ } else {
|
|
|
+ ruleArr.push(rule);
|
|
|
+ }
|
|
|
+ $("#rule").val(ruleArr.join(";"));
|
|
|
+ $(this).parent().toggleClass("active");
|
|
|
+ });
|
|
|
+
|
|
|
+ //添加向发件人发送测试邮件按钮和方法
|
|
|
+ $('input[name="row[mail_from]"]').parent().next().append('<a class="btn btn-info testmail">' + __('Send a test message') + '</a>');
|
|
|
+ $(document).on("click", ".testmail", function () {
|
|
|
+ var that = this;
|
|
|
+ Layer.prompt({title: __('Please input your email'), formType: 0}, function (value, index) {
|
|
|
+ Backend.api.ajax({
|
|
|
+ url: "general/config/emailtest",
|
|
|
+ data: $(that).closest("form").serialize() + "&receiver=" + value
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ });
|
|
|
+
|
|
|
//删除配置
|
|
|
$(document).on("click", ".btn-delcfg", function () {
|
|
|
var that = this;
|
|
@@ -40,7 +114,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|
|
title: '提示'
|
|
|
}, function (index) {
|
|
|
Backend.api.ajax({
|
|
|
- url: "general/ai_measure_config/del",
|
|
|
+ url: "general/config/del",
|
|
|
data: {name: $(that).data("name")}
|
|
|
}, function () {
|
|
|
$(that).closest("tr").remove();
|
|
@@ -49,86 +123,6 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|
|
});
|
|
|
|
|
|
});
|
|
|
-
|
|
|
- // AI测量配置特有的验证逻辑
|
|
|
- $(document).on("submit", "form.edit-form", function (e) {
|
|
|
- // 检查图片类型的配置项是否有有效的图片URL
|
|
|
- var hasError = false;
|
|
|
- $(this).find('input[name*="image"], input[name*="picture"]').each(function() {
|
|
|
- var value = $(this).val();
|
|
|
- if (value && !value.match(/\.(jpg|jpeg|png|gif|webp)$/i)) {
|
|
|
- Toastr.error('请上传有效的图片文件');
|
|
|
- hasError = true;
|
|
|
- return false;
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
- if (hasError) {
|
|
|
- e.preventDefault();
|
|
|
- return false;
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
- // 为特定的AI测量配置项添加提示信息
|
|
|
- $(document).ready(function() {
|
|
|
- // 为自拍模式配置添加特殊提示
|
|
|
- $('#tab-ai_measure_selfie input, #tab-ai_measure_selfie textarea, #tab-ai_measure_selfie select').each(function() {
|
|
|
- var name = $(this).attr('name');
|
|
|
- if (name && name.indexOf('guide') > -1) {
|
|
|
- $(this).attr('data-toggle', 'tooltip');
|
|
|
- $(this).attr('title', '引导用户进行自拍的相关配置');
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
- // 为帮拍模式配置添加特殊提示
|
|
|
- $('#tab-ai_measure_helper input, #tab-ai_measure_helper textarea, #tab-ai_measure_helper select').each(function() {
|
|
|
- var name = $(this).attr('name');
|
|
|
- if (name && name.indexOf('guide') > -1) {
|
|
|
- $(this).attr('data-toggle', 'tooltip');
|
|
|
- $(this).attr('title', '引导他人协助拍摄的相关配置');
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
- // 初始化提示信息
|
|
|
- $('[data-toggle="tooltip"]').tooltip();
|
|
|
- });
|
|
|
-
|
|
|
- // 图片预览功能增强
|
|
|
- $(document).on('change', 'input[type="text"][name*="image"], input[type="text"][name*="picture"]', function() {
|
|
|
- var $input = $(this);
|
|
|
- var imageUrl = $input.val();
|
|
|
- var $preview = $input.closest('.form-inline').find('.faupload-preview');
|
|
|
-
|
|
|
- if (!$preview.length) {
|
|
|
- $preview = $('<div class="image-preview" style="margin-top: 10px;"></div>');
|
|
|
- $input.closest('.form-inline').append($preview);
|
|
|
- }
|
|
|
-
|
|
|
- $preview.empty();
|
|
|
-
|
|
|
- if (imageUrl && imageUrl.match(/\.(jpg|jpeg|png|gif|webp)$/i)) {
|
|
|
- $preview.html('<img src="' + imageUrl + '" style="max-width: 200px; max-height: 150px; border: 1px solid #ddd; border-radius: 4px;" />');
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
- // 配置项分组折叠功能
|
|
|
- $(document).on('click', '.panel-heading .nav-tabs li a', function() {
|
|
|
- var target = $(this).attr('href');
|
|
|
- var groupName = target.replace('#tab-', '');
|
|
|
-
|
|
|
- // 记住当前选中的分组
|
|
|
- localStorage.setItem('ai_measure_config_active_tab', groupName);
|
|
|
- });
|
|
|
-
|
|
|
- // 恢复上次选中的分组
|
|
|
- var lastActiveTab = localStorage.getItem('ai_measure_config_active_tab');
|
|
|
- if (lastActiveTab) {
|
|
|
- $('.nav-tabs li').removeClass('active');
|
|
|
- $('.tab-pane').removeClass('active in');
|
|
|
-
|
|
|
- $('.nav-tabs a[href="#tab-' + lastActiveTab + '"]').closest('li').addClass('active');
|
|
|
- $('#tab-' + lastActiveTab).addClass('active in');
|
|
|
- }
|
|
|
},
|
|
|
add: function () {
|
|
|
Controller.api.bindevent();
|