github.com/kotovmak/go-admin@v1.1.1/template/types/tmpl.go (about) 1 package types 2 3 var tmpls = map[string]string{"choose": `{{define "choose"}} 4 <script> 5 $("select.{{.Field}}").on("select2:select", function (e) { 6 if (e.params.data.text === {{.Val}} || e.params.data.id === {{.Val}}) { 7 if ($("select.{{.ChooseField}}").length > 0) { 8 $("select.{{.ChooseField}}").val("{{.Value}}[0]").select2() 9 } else { 10 $(".{{.ChooseField}}").val({{.Value}}) 11 } 12 } 13 }) 14 </script> 15 {{end}}`, "choose_ajax": `{{define "choose_ajax"}} 16 <script> 17 18 let {{.Field}}_updateBoxSelections = function (selectObj, new_opts) { 19 selectObj.html(''); 20 new_opts.forEach(function (opt) { 21 selectObj.append($('<option value="' + opt["id"] + '">' + opt["text"] + '</option>')); 22 }); 23 selectObj.bootstrapDualListbox('refresh', true); 24 }; 25 26 let {{.Field}}_req = function (selectObj, box, event) { 27 $.ajax({ 28 url: "{{.Url}}", 29 type: 'post', 30 dataType: 'text', 31 data: { 32 'value': $("select.{{.Field}}").val(), 33 {{.PassValue}} 34 'event': event 35 }, 36 success: function (data) { 37 if (typeof (data) === "string") { 38 data = JSON.parse(data); 39 } 40 if (data.code === 0) { 41 {{if eq .ActionJS ""}} 42 43 if (selectObj.length > 0) { 44 if (typeof (data.data) === "object") { 45 if (box) { 46 {{.Field}}_updateBoxSelections(selectObj, data.data) 47 } else { 48 if (typeof (selectObj.attr("multiple")) !== "undefined") { 49 selectObj.html(""); 50 } 51 selectObj.select2({ 52 data: data.data 53 }); 54 } 55 } else { 56 if (box) { 57 selectObj.val(data.data).select2() 58 } else { 59 60 } 61 } 62 } else { 63 $('.{{.ChooseField}}').val(data.data); 64 } 65 66 {{else}} 67 68 {{.ActionJS}} 69 70 {{end}} 71 } else { 72 swal(data.msg, '', 'error'); 73 } 74 }, 75 error: function () { 76 alert('error') 77 } 78 }); 79 }; 80 81 if ($("label[for='{{.Field}}']").next().find(".bootstrap-duallistbox-container").length === 0) { 82 $("select.{{.Field}}").on("select2:select", function (e) { 83 let id = '{{.ChooseField}}'; 84 let selectObj = $("select." + id); 85 if (selectObj.length > 0) { 86 selectObj.val("").select2(); 87 selectObj.html('<option value="" selected="selected"></option>') 88 } 89 {{.Field}}_req(selectObj, false, "select"); 90 }); 91 if (typeof ($("select.{{.Field}}").attr("multiple")) !== "undefined") { 92 $("select.{{.Field}}").on("select2:unselect", function (e) { 93 let id = '{{.ChooseField}}'; 94 let selectObj = $("select." + id); 95 if (selectObj.length > 0) { 96 selectObj.val("").select2(); 97 selectObj.html('<option value="" selected="selected"></option>') 98 } 99 {{.Field}}_req(selectObj, false, "unselect"); 100 }) 101 } 102 } else { 103 let {{.Field}}_lastState = $(".{{.Field}}").val(); 104 105 $(".{{.Field}}").on('change', function (e) { 106 var newState = $(this).val(); 107 if ($({{.Field}}_lastState).not(newState).get().length > 0) { 108 let id = '{{.ChooseField}}'; 109 {{.Field}}_req($("." + id), true, "unselect"); 110 } 111 if ($(newState).not({{.Field}}_lastState).get().length > 0) { 112 let id = '{{.ChooseField}}'; 113 {{.Field}}_req($("." + id), true, "select"); 114 } 115 {{.Field}}_lastState = newState; 116 }) 117 } 118 </script> 119 {{end}}`, "choose_custom": `{{define "choose_custom"}} 120 <script> 121 $("select.{{.Field}}").on("select2:select", function (e) { 122 {{.JS}} 123 }) 124 </script> 125 {{end}}`, "choose_disable": `{{define "choose_disable"}} 126 <script> 127 $("select.{{.Field}}").on("select2:select", function (e) { 128 if ({{.Value}}.indexOf(e.params.data.text) !== -1 || {{.Value}}.indexOf(e.params.data.id) !== -1) { 129 {{range $key, $fields := .ChooseFields}} 130 131 $(".{{$fields}}").prop('disabled', true); 132 133 {{end}} 134 } else { 135 {{range $key, $fields := .ChooseFields}} 136 137 $(".{{$fields}}").prop('disabled', false); 138 139 {{end}} 140 } 141 }); 142 </script> 143 {{end}}`, "choose_hide": `{{define "choose_hide"}} 144 <script> 145 $("select.{{.Field}}").on("select2:select", function (e) { 146 if ({{.Value}}.indexOf(e.params.data.text) !== -1 || {{.Value}}.indexOf(e.params.data.id) !== -1) { 147 {{range $key, $fields := .ChooseFields}} 148 149 $("label[for='{{$fields}}']").parent().hide(); 150 151 {{end}} 152 } else { 153 {{range $key, $fields := .ChooseFields}} 154 155 $("label[for='{{$fields}}']").parent().show(); 156 157 {{end}} 158 } 159 }); 160 $(function () { 161 let {{.Field}}data = $(".{{.Field}}").select2("data"); 162 let {{.Field}}text = ""; 163 let {{.Field}}id = ""; 164 if ({{.Field}}data.length > 0) { 165 {{.Field}}text = {{.Field}}data[0].text; 166 {{.Field}}id = {{.Field}}data[0].id; 167 } 168 if ({{.Value}}.indexOf({{$.Field}}text) !== -1 || {{.Value}}.indexOf({{$.Field}}id) !== -1) { 169 {{range $key, $fields := .ChooseFields}} 170 171 $("label[for='{{$fields}}']").parent().hide(); 172 173 {{end}} 174 } 175 }) 176 </script> 177 {{end}}`, "choose_map": `{{define "choose_map"}} 178 <script> 179 $("select.{{.Field}}").on("select2:select", function (e) { 180 {{range $val, $object := .Data}} 181 182 {{if $object.Hide}} 183 184 if (e.params.data.text === "{{$val}}" || e.params.data.id === "{{$val}}") { 185 $("label[for='{{$object.Field}}']").parent().hide() 186 } else { 187 $("label[for='{{$object.Field}}']").parent().show() 188 } 189 190 {{else if $object.Disable}} 191 192 if (e.params.data.text === "{{$val}}" || e.params.data.id === "{{$val}}") { 193 $("label[for='{{$object.Field}}']").prop('disabled', true); 194 } else { 195 $("label[for='{{$object.Field}}']").prop('disabled', false); 196 } 197 198 {{else}} 199 200 if (e.params.data.text === "{{$val}}" || e.params.data.id === "{{$val}}") { 201 if ($("select.{{$object.Field}}").length > 0) { 202 $("select.{{$object.Field}}").val("{{$object.Value}}").select2() 203 } else { 204 $("#{{$object.Field}}").val("{{$object.Value}}") 205 } 206 } 207 208 {{end}} 209 210 {{end}} 211 }) 212 </script> 213 {{end}}`, "choose_show": `{{define "choose_show"}} 214 <script> 215 $("select.{{.Field}}").on("select2:select", function (e) { 216 if ({{.Value}}.indexOf(e.params.data.text) !== -1 || {{.Value}}.indexOf(e.params.data.id) !== -1) { 217 {{range $key, $fields := .ChooseFields}} 218 219 $("label[for='{{$fields}}']").parent().show(); 220 221 {{end}} 222 } else { 223 {{range $key, $fields := .ChooseFields}} 224 225 $("label[for='{{$fields}}']").parent().hide(); 226 227 {{end}} 228 } 229 }); 230 $(function () { 231 let {{.Field}}data = $(".{{.Field}}").select2("data"); 232 let {{.Field}}text = ""; 233 let {{.Field}}id = ""; 234 if ({{.Field}}data.length > 0) { 235 {{.Field}}text = {{.Field}}data[0].text; 236 {{.Field}}id = {{.Field}}data[0].id; 237 } 238 if ({{.Value}}.indexOf({{$.Field}}text) !== -1 || {{.Value}}.indexOf({{$.Field}}id) !== -1) { 239 {{range $key, $fields := .ChooseFields}} 240 241 $("label[for='{{$fields}}']").parent().show(); 242 243 {{end}} 244 } 245 }) 246 </script> 247 {{end}}`}