|
@@ -0,0 +1,127 @@
|
|
|
+{foreach $fields as $item}
|
|
|
+
|
|
|
+<div class="form-group {$item.name}" {if condition="$item.isassociation == 1"}style="display:none;"{/if}>
|
|
|
+ <div class="control-label col-xs-12 col-sm-3">{$item.title}</div>
|
|
|
+ <div class="col-xs-12 col-sm-8">
|
|
|
+ {switch $item.type_list}
|
|
|
+ {case string}
|
|
|
+ <input type="text" name="row[{$item.name}]" id="c-{$item.name}" value="{$item.value|htmlentities}" class="form-control" data-rule="{$item.rule}" data-msg="{$item.errormsg}" placeholder="{$item.notice}" {$item.extend}/>
|
|
|
+ {/case}
|
|
|
+ {case value="text"}
|
|
|
+ <div class="text_field">{$item.value|htmlentities}</div>
|
|
|
+ {/case}
|
|
|
+ {case value="editor|textarea"}
|
|
|
+ <textarea name="row[{$item.name}]" id="c-{$item.name}" class="form-control {eq name='$item.type_list' value='editor'}editor{/eq}" data-rule="{$item.rule}" data-msg="{$item.errormsg}" rows="5" placeholder="{$item.notice}" {$item.extend}>{$item.value|htmlentities}</textarea>
|
|
|
+ {/case}
|
|
|
+ {case array}
|
|
|
+ {php}$arrList=isset($values[$item['name']])?(array)json_decode($item['value'],true):$item['values_list'];{/php}
|
|
|
+ <dl class="fieldlist" rel="{$arrList|count}" data-name="row[{$item.name}]">
|
|
|
+ <dd>
|
|
|
+ <ins>{:__('Array key')}</ins>
|
|
|
+ <ins>{:__('Array value')}</ins>
|
|
|
+ </dd>
|
|
|
+
|
|
|
+ {foreach $arrList as $key => $vo}
|
|
|
+ <dd class="form-inline">
|
|
|
+ <input type="text" name="row[{$item.name}][field][{$key}]" class="form-control" value="{$key}" size="10"/>
|
|
|
+ <input type="text" name="row[{$item.name}][value][{$key}]" class="form-control" value="{$vo}"/>
|
|
|
+ <span class="btn btn-sm btn-danger btn-remove"><i class="fa fa-times"></i></span>
|
|
|
+ <span class="btn btn-sm btn-primary btn-dragsort"><i class="fa fa-arrows"></i></span>
|
|
|
+ </dd>
|
|
|
+ {/foreach}
|
|
|
+ <dd><a href="javascript:;" class="append btn btn-sm btn-success"><i class="fa fa-plus"></i> {:__('Append')}</a></dd>
|
|
|
+ </dl>
|
|
|
+ {/case}
|
|
|
+ {case date}
|
|
|
+ <input type="text" name="row[{$item.name}]" id="c-{$item.name}" value="{$item.value}" class="form-control datetimepicker" data-date-format="YYYY-MM-DD" placeholder="{$item.notice}" data-rule="{$item.rule}" data-msg="{$item.errormsg}" {$item.extend}/>
|
|
|
+ {/case}
|
|
|
+ {case time}
|
|
|
+ <input type="text" name="row[{$item.name}]" id="c-{$item.name}" value="{$item.value}" class="form-control datetimepicker" data-date-format="HH:mm:ss" placeholder="{$item.notice}" data-rule="{$item.rule}" data-msg="{$item.errormsg}" {$item.extend}/>
|
|
|
+ {/case}
|
|
|
+ {case datetime}
|
|
|
+ <input type="text" name="row[{$item.name}]" id="c-{$item.name}" value="{$item.value}" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" placeholder="{$item.notice}" data-rule="{$item.rule}" data-msg="{$item.errormsg}" {$item.extend}/>
|
|
|
+ {/case}
|
|
|
+ {case number}
|
|
|
+ <input type="number" name="row[{$item.name}]" id="c-{$item.name}" value="{$item.value}" class="form-control" placeholder="{$item.notice}" data-rule="{$item.rule}" data-msg="{$item.errormsg}" {$item.extend}/>
|
|
|
+ {/case}
|
|
|
+ {case checkbox}
|
|
|
+ {foreach name="item.values_list" item="vo"}
|
|
|
+ <label for="row[{$item.name}][]-{$key}"><input id="row[{$item.name}][]-{$key}" name="row[{$item.name}][]" type="checkbox" value="{$key}" data-rule="{$item.rule}" data-msg="{$item.errormsg}" {in name="key" value="$item.value" }checked{/in} /> {$vo}</label>
|
|
|
+ {/foreach}
|
|
|
+ <span class="input_notice">{$item.notice}</span>
|
|
|
+ {/case}
|
|
|
+ {case radio}
|
|
|
+ <div class="input-group mb-3">
|
|
|
+ <div class="radio radio-inline pl-0">
|
|
|
+ {foreach name="item.values_list" item="vo"}
|
|
|
+ <label for="row[{$item.name}]-{$key}" class="radio_label"><input id="row[{$item.name}]-{$key}" data-name="{$item.name}" name="row[{$item.name}]" type="radio" value="{$key}" data-rule="{$item.rule}" data-msg="{$item.errormsg}" {in name="key" value="$item.value" }checked{/in} /> {$vo}</label>
|
|
|
+ {/foreach}
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <span class="input_notice">{$item.notice}</span>
|
|
|
+ {/case}
|
|
|
+ {case value="select" break="0"}{/case}
|
|
|
+ {case value="selects"}
|
|
|
+ <select name="row[{$item.name}]{$item.type_list=='selects'?'[]':''}" class="form-control selectpicker" data-rule="{$item.rule}" data-msg="{$item.errormsg}" {$item.extend} {$item.type_list=='selects'?'multiple':''}>
|
|
|
+ {foreach name="item.values_list" item="vo"}
|
|
|
+ <option value="{$key}" {in name="key" value="$item.value" }selected{/in}>{$vo}</option>
|
|
|
+ {/foreach}
|
|
|
+ </select>
|
|
|
+ <span class="input_notice">{$item.notice}</span>
|
|
|
+ {/case}
|
|
|
+ {case value="image" break="0"}{/case}
|
|
|
+ {case value="images"}
|
|
|
+ <div class="input-group">
|
|
|
+ <input id="c-{$item.name}" class="form-control" name="row[{$item.name}]" type="text" value="{$item.value|htmlentities}" data-rule="{$item.rule}" data-msg="{$item.errormsg}" placeholder="{$item.notice}">
|
|
|
+ <div class="input-group-addon no-border no-padding">
|
|
|
+ <span><button type="button" id="plupload-{$item.name}" class="btn btn-danger plupload" data-input-id="c-{$item.name}" data-preview-id="p-{$item.name}" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp" data-multiple="{$item.type_list=='image'?'false':'true'}" {if $item.maximum}data-maxcount="{$item.maximum}" {/if}><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
|
|
|
+ </div>
|
|
|
+ <span class="msg-box n-right" for="c-{$item.name}"></span>
|
|
|
+ </div>
|
|
|
+ <ul class="row list-inline plupload-preview" id="p-{$item.name}"></ul>
|
|
|
+ {/case}
|
|
|
+ {case value="file" break="0"}{/case}
|
|
|
+ {case value="files"}
|
|
|
+ <div class="input-group">
|
|
|
+ <input id="c-{$item.name}" class="form-control" name="row[{$item.name}]" type="text" value="{$item.value|htmlentities}" data-rule="{$item.rule}" data-msg="{$item.errormsg}" placeholder="{$item.notice}">
|
|
|
+ <div class="input-group-addon no-border no-padding">
|
|
|
+ <span><button type="button" id="plupload-{$item.name}" class="btn btn-danger plupload" data-input-id="c-{$item.name}" data-preview-id="p-{$item.name}" data-multiple="{$item.type_list=='file'?'false':'true'}" {if $item.maximum}data-maxcount="{$item.maximum}" {/if}><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
|
|
|
+ </div>
|
|
|
+ <span class="msg-box n-right" for="c-{$item.name}"></span>
|
|
|
+ </div>
|
|
|
+ <ul class="row list-inline plupload-preview" id="p-{$item.name}"></ul>
|
|
|
+ {/case}
|
|
|
+ {case switch}
|
|
|
+ <input id="c-{$item.name}" name="row[{$item.name}]" type="hidden" value="{:$item.value?1:0}">
|
|
|
+ <a href="javascript:;" data-toggle="switcher" class="btn-switcher" data-input-id="c-{$item.name}" data-yes="1" data-no="0">
|
|
|
+ <i class="fa fa-toggle-on text-success {if !$item.value}fa-flip-horizontal text-gray{/if} fa-2x"></i>
|
|
|
+ </a>
|
|
|
+ <span class="input_notice">{$item.notice}</span>
|
|
|
+ {/case}
|
|
|
+ {case bool}
|
|
|
+ <label for="row[{$item.name}]-yes"><input id="row[{$item.name}]-yes" name="row[{$item.name}]" type="radio" value="1" {$item.value?'checked':''} data-tip="{$item.notice}" /> {:__('Yes')}</label>
|
|
|
+ <label for="row[{$item.name}]-no"><input id="row[{$item.name}]-no" name="row[{$item.name}]" type="radio" value="0" {$item.value?'':'checked'} data-tip="{$item.notice}" /> {:__('No')}</label>
|
|
|
+ {/case}
|
|
|
+ {case city}
|
|
|
+ <input type="text" name="row[{$item.name}]" id="c-{$item.name}" data-toggle="city-picker" value="{$item.value|htmlentities}" class="form-control" data-rule="{$item.rule}" data-msg="{$item.errormsg}" placeholder="{$item.notice}" {$item.extend}/>
|
|
|
+ {/case}
|
|
|
+ {case custom}
|
|
|
+ {$item.content}
|
|
|
+ {/case}
|
|
|
+ {/switch}
|
|
|
+ </div>
|
|
|
+</div>
|
|
|
+{/foreach}
|
|
|
+
|
|
|
+<script>
|
|
|
+ // 单选框选择显示对应input
|
|
|
+ $(document).on('click', '.radio-inline', function () {
|
|
|
+ let radio_value = $(this).find('input[type="radio"]:checked').val();
|
|
|
+ let radio_content_class = $(this).find('input[type="radio"]').attr('data-name') + '_content';
|
|
|
+ if (radio_value == 'normal') {
|
|
|
+ $('.' + radio_content_class).show();
|
|
|
+ } else {
|
|
|
+ $('.' + radio_content_class).hide();
|
|
|
+ }
|
|
|
+ });
|
|
|
+</script>
|