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}}`}