github.com/kotovmak/go-admin@v1.1.1/template/types/tmpls/choose_ajax.tmpl (about) 1 {{define "choose_ajax"}} 2 <script> 3 4 let {{.Field}}_updateBoxSelections = function (selectObj, new_opts) { 5 selectObj.html(''); 6 new_opts.forEach(function (opt) { 7 selectObj.append($('<option value="' + opt["id"] + '">' + opt["text"] + '</option>')); 8 }); 9 selectObj.bootstrapDualListbox('refresh', true); 10 }; 11 12 let {{.Field}}_req = function (selectObj, box, event) { 13 $.ajax({ 14 url: "{{.Url}}", 15 type: 'post', 16 dataType: 'text', 17 data: { 18 'value': $("select.{{.Field}}").val(), 19 {{.PassValue}} 20 'event': event 21 }, 22 success: function (data) { 23 if (typeof (data) === "string") { 24 data = JSON.parse(data); 25 } 26 if (data.code === 0) { 27 {{if eq .ActionJS ""}} 28 29 if (selectObj.length > 0) { 30 if (typeof (data.data) === "object") { 31 if (box) { 32 {{.Field}}_updateBoxSelections(selectObj, data.data) 33 } else { 34 if (typeof (selectObj.attr("multiple")) !== "undefined") { 35 selectObj.html(""); 36 } 37 selectObj.select2({ 38 data: data.data 39 }); 40 } 41 } else { 42 if (box) { 43 selectObj.val(data.data).select2() 44 } else { 45 46 } 47 } 48 } else { 49 $('.{{.ChooseField}}').val(data.data); 50 } 51 52 {{else}} 53 54 {{.ActionJS}} 55 56 {{end}} 57 } else { 58 swal(data.msg, '', 'error'); 59 } 60 }, 61 error: function () { 62 alert('error') 63 } 64 }); 65 }; 66 67 if ($("label[for='{{.Field}}']").next().find(".bootstrap-duallistbox-container").length === 0) { 68 $("select.{{.Field}}").on("select2:select", function (e) { 69 let id = '{{.ChooseField}}'; 70 let selectObj = $("select." + id); 71 if (selectObj.length > 0) { 72 selectObj.val("").select2(); 73 selectObj.html('<option value="" selected="selected"></option>') 74 } 75 {{.Field}}_req(selectObj, false, "select"); 76 }); 77 if (typeof ($("select.{{.Field}}").attr("multiple")) !== "undefined") { 78 $("select.{{.Field}}").on("select2:unselect", function (e) { 79 let id = '{{.ChooseField}}'; 80 let selectObj = $("select." + id); 81 if (selectObj.length > 0) { 82 selectObj.val("").select2(); 83 selectObj.html('<option value="" selected="selected"></option>') 84 } 85 {{.Field}}_req(selectObj, false, "unselect"); 86 }) 87 } 88 } else { 89 let {{.Field}}_lastState = $(".{{.Field}}").val(); 90 91 $(".{{.Field}}").on('change', function (e) { 92 var newState = $(this).val(); 93 if ($({{.Field}}_lastState).not(newState).get().length > 0) { 94 let id = '{{.ChooseField}}'; 95 {{.Field}}_req($("." + id), true, "unselect"); 96 } 97 if ($(newState).not({{.Field}}_lastState).get().length > 0) { 98 let id = '{{.ChooseField}}'; 99 {{.Field}}_req($("." + id), true, "select"); 100 } 101 {{.Field}}_lastState = newState; 102 }) 103 } 104 </script> 105 {{end}}