1256 lines
143 KiB
HTML
1256 lines
143 KiB
HTML
<div class="forminput-data-content"
|
||
data-config="{{:urlencode(base64_encode(json_encode($module_data.form_input_data.config.overall_config)))}}"
|
||
data-list="{{:urlencode(base64_encode(json_encode($module_data.form_input_data.config.diy_data)))}}"
|
||
data-address-url="{{:MyUrl('index/region/index')}}"
|
||
data-address-code-url="{{:MyUrl('index/region/codedata')}}"
|
||
data-id="{{$module_data.form_input_data.id}}"
|
||
data-item-event="{{if empty($module_data.form_input_item_event)}}FormInputItemEvent{{else /}}{{$module_data.form_input_item_event}}{{/if}}"
|
||
data-data-event="{{if empty($module_data.form_input_data_event)}}FormInputDataEvent{{else /}}{{$module_data.form_input_data_event}}{{/if}}"
|
||
data-not-fill-in-error="{{:MyLang('not_fill_in_error')}}"
|
||
data-not-choice-error="{{:MyLang('not_choice_error')}}"
|
||
data-please-select-tips="{{:MyLang('please_select_tips')}}"
|
||
>
|
||
{{php}}
|
||
// pc全局配置
|
||
$form_input_style_settings_computer = $module_data['form_input_data']['config']['overall_config']['style_settings']['computer'];
|
||
// 输入框标题字体大小的控制类型
|
||
$form_input_style_filed_title_size_type = $form_input_style_settings_computer['filed_title_size_type'];
|
||
// 输入框字体大小
|
||
$form_input_item_size = (isset($form_input_style_filed_title_size_type) && $form_input_style_filed_title_size_type == 'big') ? 'item-big-size' : ((isset($form_input_style_filed_title_size_type) && $form_input_style_filed_title_size_type == 'middle') ? 'item-size' : '');
|
||
// 输入框的高度和不可输入区域的字体大小
|
||
$form_input_item_content_class = (isset($form_input_style_filed_title_size_type) && $form_input_style_filed_title_size_type == 'big') ? 'item-content-big' : ((isset($form_input_style_filed_title_size_type) && $form_input_style_filed_title_size_type == 'middle') ? 'item-content' : 'item-content-small');
|
||
// 下拉框和复选单选框的样式
|
||
$form_input_item_multicolour_class = (isset($form_input_style_filed_title_size_type) && $form_input_style_filed_title_size_type == 'big') ? 'item-multicolour-big' : ((isset($form_input_style_filed_title_size_type) && $form_input_style_filed_title_size_type == 'middle') ? 'item-multicolour' : 'item-multicolour-small');
|
||
// 下拉框和复选单选框的样式
|
||
$form_input_item_radio_or_checkbox_height_class = (isset($form_input_style_filed_title_size_type) && $form_input_style_filed_title_size_type == 'big') ? 'radio_or_checkbox_big_height' : ((isset($form_input_style_filed_title_size_type) && $form_input_style_filed_title_size_type == 'middle') ? 'radio_or_checkbox_height' : '');
|
||
// 输入框的最大宽度
|
||
$form_input_item_content_style = $form_input_style_settings_computer['input_width_type'] == 'default' ? 'max-width:'.$form_input_style_settings_computer['input_width'].'px;' : 'max-width:100%;';
|
||
// 输入框的不参与样式的key
|
||
$form_input_array = ["multi-text", 'checkbox', 'radio-btns'];
|
||
// 单行文本框的几个组件
|
||
$form_input_radio_array = ['single-text', 'select', 'radio-btns'];
|
||
// 下拉复选框的几个组件
|
||
$form_input_checkbox_array = ['checkbox', 'select-multi'];
|
||
// 模式
|
||
$form_input_mode_type_value = $module_data['form_input_data']['config']['overall_config']['type_value'];
|
||
// 左右还是上下的样式
|
||
$form_input_style_flex_direction = $form_input_style_settings_computer['flex_direction'];
|
||
// 不需要全局隐藏的组件
|
||
$form_input_data_array = ['single-text', 'select', 'radio-btns', 'checkbox', 'select-multi'];
|
||
$form_input_type_array = ['select', 'select-multi'];
|
||
// 不同大小需要改变的高度
|
||
$form_input_size_height = (isset($form_input_style_filed_title_size_type) && $form_input_style_filed_title_size_type == 'big') ? 45 : ((isset($form_input_style_filed_title_size_type) && $form_input_style_filed_title_size_type == 'middle') ? 36 : 29);
|
||
// 不限制宽度的组件
|
||
$form_input_no_width_array = ['attachments', 'rich-text', 'subform'];
|
||
// 不需要标题的组件
|
||
$form_input_no_free_title_array = ['auxiliary-line', 'rect', 'round', 'video', 'img'];
|
||
// 带其他的组件
|
||
$form_input_other_array = ['select', 'radio-btns'];
|
||
{{/php}}
|
||
<input type="hidden" name="forminput_id" value="{{$module_data.form_input_data.id}}">
|
||
<input type="hidden" name="id" value="{{if !empty($module_data['form_input_data']['forminput_data_id'])}}{{$module_data.form_input_data.forminput_data_id}}{{/if}}">
|
||
{{foreach :array_values($module_data.form_input_data.config.diy_data) as $k=>$v}}
|
||
{{if $v.is_enable eq '1'}}
|
||
<div class="forminput-hidden forminput-data-item {{if $form_input_mode_type_value neq 'free'}}forminput-data-item-padding {{/if}} {{if $form_input_style_flex_direction == 'row' and $v.key neq 'subform'}}am-flex-row {{else/}}am-flex-col {{/if}}{{if $form_input_style_flex_direction == 'row' and !in_array($v.key, $form_input_array)}}am-flex-items-center{{/if}}" style="{{if $v.key neq 'subform'}}flex-direction: {{$form_input_style_flex_direction}}{{/if}};{{if $form_input_style_flex_direction eq 'column'}}justify-items:flex-start;{{else/}}align-items: {{if in_array($v.key, ['rich-text', 'img', 'video', 'multi-text', 'subform'])}}flex-start{{elseif in_array($v.key, ['address', 'phone', 'upload-img', 'upload-attachments', 'upload-video'])}}baseline{{else/}}center{{/if}};{{/if}}{{if $form_input_mode_type_value eq 'free'}}position:absolute;{{if !(in_array($v.key, $form_input_data_array) and (isset($v.com_data.type) and in_array($v.com_data.type, $form_input_type_array))) and $v.key neq 'address'}}overflow: hidden;z-index: {{if !empty($v.is_enable) and $v.is_enable eq '1' }}{{:count($module_data.form_input_data.config.diy_data) - ($k + 1)}};{{else/}}-999;{{/if}}{{/if}}{{if !empty($v.location.x) }}left:{{$v.location.x}}px;{{/if}};{{if !empty($v.location.y) }}top:{{$v.location.y}}px;{{/if}};{{if !empty($v.com_data.com_width) }}width:{{$v.com_data.com_width}}px;{{/if}}{{if !empty($v.com_data.com_height) }}height:{{$v.com_data.com_height}}px;{{/if}}{{elseif $v.key eq 'subform'}}position:relative;z-index:1;{{/if}}">
|
||
{{if ($v.key neq 'auxiliary-line' and $form_input_mode_type_value neq 'free') or (!in_array($v.key, $form_input_no_free_title_array) and $form_input_mode_type_value eq 'free') }}
|
||
<div class="am-flex-row am-gap-1" style="{{if $form_input_style_flex_direction eq 'column'}}justify-content:flex-start;{{else/}}width:{{$form_input_style_settings_computer['filed_title_width']}}px;{{if $v.key neq 'subform'}}justify-content:{{$form_input_style_settings_computer['filed_title_justification'] }};{{/if}}{{/if}}{{if $form_input_mode_type_value eq 'free' and $form_input_style_flex_direction eq 'row'}}overflow:hidden;height:{{$v.com_data.com_height}}px;{{/if}}{{if $form_input_mode_type_value eq 'free'}}z-index: {{if !empty($v.is_enable) and $v.is_enable eq '1' }}{{:count($module_data.form_input_data.config.diy_data) - ($k + 1)}}{{else/}}-999;{{/if}}{{/if}}">
|
||
<!-- 标题 -->
|
||
<div class="item-name {{if isset($form_input_style_filed_title_size_type) and $form_input_style_filed_title_size_type eq 'big'}}big-title{{elseif isset($form_input_style_filed_title_size_type) and $form_input_style_filed_title_size_type eq 'middle'}}title{{else/}}small-title{{/if}}">
|
||
{{$v.com_data.title}}
|
||
<span class="am-text-danger">{{if isset($v.com_data.is_required) and $v.com_data.is_required == '1'}}*{{/if}}</span>
|
||
</div>
|
||
<!-- 帮助说明 -->
|
||
{{if $v.com_data.common_config.help_is_show == '1' and !empty($v.com_data.common_config.help_explain)}}
|
||
<div class="tooltip">
|
||
<span class="tooltip-text">{{$v.com_data.common_config.help_explain}}</span>
|
||
<div class="iconfont icon-help {{if isset($form_input_style_filed_title_size_type) and $form_input_style_filed_title_size_type eq 'big'}}item-name-big-icon{{elseif isset($form_input_style_filed_title_size_type) and $form_input_style_filed_title_size_type eq 'middle'}}item-name-icon{{else/}}item-name-small-icon{{/if}}"></div>
|
||
</div>
|
||
{{/if}}
|
||
</div>
|
||
{{/if}}
|
||
<div id="{{$v.id}}" {{if in_array($v.key, $form_input_radio_array) and in_array($v.com_data.type, $form_input_other_array)}}class="am-flex-col forminput-gap-10"{{/if}} style="flex:1;width:100%;{{if !in_array($v.key, $form_input_no_width_array) and (!(in_array($v.key, $form_input_radio_array) and $v.com_data.type eq 'radio-btns') and !(in_array($v.key, $form_input_checkbox_array) and $v.com_data.type eq 'checkbox'))}}{{$form_input_item_content_style}}{{/if}}">
|
||
{{if in_array($v.key, $form_input_radio_array) and $v.com_data.type eq 'single-text'}}
|
||
<!-- 单行文本 -->
|
||
<div class="forminput-data-item-content {{$form_input_item_content_class}}" style="{{$v.common_style}}">
|
||
<input
|
||
type="text"
|
||
name="{{$v.form_name}}"
|
||
value="{{$v.com_data.form_value}}"
|
||
{{if $v.com_data.is_required == '1'}}required="required" data-validation-message="{{:MyLang('not_fill_in_error')}}({{$v.com_data.title}})"{{/if}}
|
||
placeholder="{{$v.com_data.placeholder}}"
|
||
{{if $v.com_data.is_limit_num == '1' and !empty($v.com_data.min_num)}}minlength="{{$v.com_data.min_num}}"{{/if}}
|
||
{{if $v.com_data.is_limit_num == '1' and !empty($v.com_data.max_num)}}maxlength="{{$v.com_data.max_num}}"{{/if}}
|
||
class="forminput-input forminput-no-border forminput-w forminput-h {{$form_input_item_size}}"
|
||
/>
|
||
{{if $v.com_data.is_limit_num == '1' and !empty($v.com_data.max_num)}}
|
||
<div class="forminput-cr-gray"><span class="limit-num">{{:strlen($v.com_data.form_value) }}</span>/{{$v.com_data.max_num }}</div>
|
||
{{/if}}
|
||
</div>
|
||
{{elseif $v.key eq 'number'}}
|
||
<!-- 数字 -->
|
||
<div class="forminput-data-item-content {{$form_input_item_content_class}}" style="{{$v.common_style}}">
|
||
{{if $v.com_data.is_display_money == '1' }}
|
||
<div class="forminput-cr-gray">{{$v.com_data.money_sign }}</div>
|
||
{{/if}}
|
||
<input type="text"
|
||
name="{{$v.form_name}}"
|
||
value="{{$v.com_data.form_value}}"
|
||
{{if $v.com_data.is_required == '1'}}required="required" data-validation-message="{{:MyLang('not_fill_in_error')}}({{$v.com_data.title}})"{{/if}}
|
||
placeholder="{{$v.com_data.placeholder}}"
|
||
class="forminput-input forminput-no-border forminput-w forminput-h {{$form_input_item_size}}"
|
||
/>
|
||
{{if $v.com_data.format == 'percentage'}}
|
||
<div class="forminput-cr-gray">%</div>
|
||
{{/if}}
|
||
</div>
|
||
{{elseif $v.key eq 'multi-text'}}
|
||
<!-- 多行文本 -->
|
||
<div class="forminput-data-item-content {{$form_input_item_content_class}} forminput-re" style="{{$v.common_style}}height:auto;">
|
||
<textarea
|
||
rows="6"
|
||
name="{{$v.form_name}}"
|
||
{{if $v.com_data.is_required == '1'}}required="required" data-validation-message="{{:MyLang('not_fill_in_error')}}({{$v.com_data.title}})"{{/if}}
|
||
placeholder="{{$v.com_data.placeholder}}"
|
||
{{if $v.com_data.is_limit_num == '1' and !empty($v.com_data.min_num)}}minlength="{{$v.com_data.min_num}}"{{/if}}
|
||
{{if $v.com_data.is_limit_num == '1' and !empty($v.com_data.max_num)}}maxlength="{{$v.com_data.max_num}}"{{/if}}
|
||
class="forminput-input forminput-no-border forminput-w {{$form_input_item_size}}"
|
||
>{{if !empty($v.com_data.form_value)}}{{$v.com_data.form_value}}{{/if}}</textarea>
|
||
{{if $v.com_data.is_limit_num == '1' and !empty($v.com_data.max_num)}}
|
||
<div class="forminput-cr-gray forminput-textarea"><span class="limit-num">{{:strlen($v.com_data.form_value) }}</span>/{{$v.com_data.max_num }}</div>
|
||
{{/if}}
|
||
</div>
|
||
{{elseif $v.key eq 'pwd'}}
|
||
<!-- 密码 -->
|
||
<div class="forminput-data-item-content {{$form_input_item_content_class}}" style="{{$v.common_style}}">
|
||
{{if !empty($v.com_data.icon_name)}}
|
||
<div class="iconfont icon-{{$v.com_data.icon_name}} forminput-cr-gray"></div>
|
||
{{/if}}
|
||
<input type="password" autocomplete="off"
|
||
name="{{$v.form_name}}"
|
||
value="{{$v.com_data.form_value}}"
|
||
{{if $v.com_data.is_required == '1'}}required="required" data-validation-message="{{:MyLang('not_fill_in_error')}}({{$v.com_data.title}})"{{/if}}
|
||
placeholder="{{$v.com_data.placeholder}}"
|
||
class="forminput-input forminput-no-border forminput-w forminput-h {{$form_input_item_size}}"
|
||
/>
|
||
<div class="iconfont icon-eye forminput-cr-gray forminput-password"></div>
|
||
</div>
|
||
{{elseif $v.key eq 'date-group'}}
|
||
<!-- 日期时间组 -->
|
||
<div class="forminput-data-item-content {{$form_input_item_content_class}}" style="{{$v.common_style}}">
|
||
{{if !in_array($v.com_data.date_type, ['option1', 'option2'])}}
|
||
<div class="form-table-search-section form-table-search-time am-flex-row forminput-w forminput-h align-items-center">
|
||
<input type="text" {{if $v.com_data.is_required == '1'}}required="required" data-validation-message="{{:MyLang('not_choice_error')}}({{$v.com_data.title}})"{{/if}} autocomplete="off" class="am-form-field am-input-sm am-radius am-inline-block Wdate forminput-no-border forminput-w forminput-h forminput-input-text-center forminput-input-date-group-start {{$form_input_item_size}}" id="form-table-search-time-start-{{$v.id}}" name="{{$v.form_name}}_start" value="{{if !empty($v.com_data.form_value) and isset($v.com_data.form_value[0])}}{{$v.com_data.form_value[0]}}{{/if}}" placeholder="{{if isset($v['com_data']['start_placeholder'])}}{{$v.com_data.start_placeholder}}{{/if}}" onclick="WdatePicker({firstDayOfWeek:1,dateFmt:'{{$v.com_data.format}}',maxDate:'#F{$dp.$D(\'form-table-search-time-end-{{$v.id}}\',{d:-1});}'})" autocomplete="off" />
|
||
<span class="am-flex-row align-items-center forminput-divider">-</span>
|
||
<input type="text" {{if $v.com_data.is_required == '1'}}required="required" data-validation-message="{{:MyLang('not_choice_error')}}({{$v.com_data.title}})"{{/if}} autocomplete="off" class="am-form-field am-input-sm am-radius am-inline-block Wdate forminput-no-border forminput-w forminput-h forminput-input-text-center forminput-input-date-group-end {{$form_input_item_size}}" id="form-table-search-time-end-{{$v.id}}" name="{{$v.form_name}}_end" value="{{if !empty($v.com_data.form_value) and isset($v.com_data.form_value[1])}}{{$v.com_data.form_value[1]}}{{/if}}" placeholder="{{if isset($v['com_data']['end_placeholder'])}}{{$v.com_data.end_placeholder}}{{/if}}" onclick="WdatePicker({firstDayOfWeek:1,dateFmt:'{{$v.com_data.format}}',minDate:'#F{$dp.$D(\'form-table-search-time-start-{{$v.id}}\',{d:+1});}'})" autocomplete="off" />
|
||
</div>
|
||
{{else/}}
|
||
<div class="form-table-search-section form-table-search-time am-flex-row forminput-w forminput-h align-items-center">
|
||
<input type="text" {{if $v.com_data.is_required == '1'}}required="required" data-validation-message="{{:MyLang('not_choice_error')}}({{$v.com_data.title}})"{{/if}} autocomplete="off" class="am-form-field am-input-sm am-radius am-inline-block Wdate forminput-no-border forminput-w forminput-h forminput-input-text-center forminput-input-date-group-start {{$form_input_item_size}}" id="form-table-search-time-start-{{$v.id}}" name="{{$v.form_name}}_start" value="{{if !empty($v.com_data.form_value) and isset($v.com_data.form_value[0])}}{{$v.com_data.form_value[0]}}{{/if}}" placeholder="{{if isset($v['com_data']['start_placeholder'])}}{{$v.com_data.start_placeholder}}{{/if}}" onclick="WdatePicker({firstDayOfWeek:1,dateFmt:'{{$v.com_data.format}}',maxDate:'#F{$dp.$D(\'form-table-search-time-end-{{$v.id}}\');}'})" autocomplete="off" />
|
||
<span class="am-flex-row align-items-center forminput-divider">-</span>
|
||
<input type="text" {{if $v.com_data.is_required == '1'}}required="required" data-validation-message="{{:MyLang('not_choice_error')}}({{$v.com_data.title}})"{{/if}} autocomplete="off" class="am-form-field am-input-sm am-radius am-inline-block Wdate forminput-no-border forminput-w forminput-h forminput-input-text-center forminput-input-date-group-end {{$form_input_item_size}}" id="form-table-search-time-end-{{$v.id}}" name="{{$v.form_name}}_end" value="{{if !empty($v.com_data.form_value) and isset($v.com_data.form_value[1])}}{{$v.com_data.form_value[1]}}{{/if}}" placeholder="{{if isset($v['com_data']['end_placeholder'])}}{{$v.com_data.end_placeholder}}{{/if}}" onclick="WdatePicker({firstDayOfWeek:1,dateFmt:'{{$v.com_data.format}}',minDate:'#F{$dp.$D(\'form-table-search-time-start-{{$v.id}}\');}'})" autocomplete="off" />
|
||
</div>
|
||
{{/if}}
|
||
<i class="iconfont icon-{{$v.com_data.icon_name}}" style="color: 333;"></i>
|
||
</div>
|
||
{{elseif $v.key eq 'date'}}
|
||
<!-- 日期时间 -->
|
||
<div class="forminput-data-item-content {{$form_input_item_content_class}}" style="{{$v.common_style}}">
|
||
<input type="text" autocomplete="off" class="forminput-input-date am-form-field am-input-sm am-radius am-inline-block Wdate forminput-no-border forminput-w forminput-h {{$form_input_item_size}}" {{if $v.com_data.is_required == '1'}}required="required" data-validation-message="{{:MyLang('not_choice_error')}}({{$v.com_data.title}})"{{/if}} id="form-table-search-time-{{$v.id}}" name="{{$v.form_name}}" value="{{if !empty($v.com_data.form_value) and isset($v.com_data.form_value)}}{{$v.com_data.form_value}}{{/if}}" placeholder="{{if isset($v['com_data']['placeholder'])}}{{$v.com_data.placeholder}}{{/if}}" onclick="WdatePicker({firstDayOfWeek:1,dateFmt:'{{$v.com_data.format}}'})" autocomplete="off" />
|
||
<i class="iconfont icon-{{$v.com_data.icon_name}}" style="color: 333;"></i>
|
||
</div>
|
||
{{elseif $v.key eq 'position'}}
|
||
<!-- 定位 -->
|
||
<div class="forminput-data-item-disabled {{$form_input_item_content_class}} justify-content-center forminput-cr-gray" style="{{$v.common_style}}">
|
||
<div class="iconfont icon-address"></div>请在移动端打开表单进行定位
|
||
</div>
|
||
{{elseif in_array($v.key, $form_input_checkbox_array) and $v.com_data.type eq 'checkbox'}}
|
||
<!-- 复选按钮组 -->
|
||
<div class="am-flex-col forminput-gap-10">
|
||
<div class="option-add {{if $v.com_data.arrangement == 'horizontal'}}am-flex-row align-items-center am-flex-warp{{else/}}am-flex-col{{/if}} forminput-gap-10">
|
||
{{foreach :array_values(array_merge($v.com_data.option_list, empty($v['com_data']['custom_option_list']) ? [] : $v.com_data.custom_option_list)) as $k=>$d}}
|
||
<label class="am-checkbox-click {{if $v.com_data.arrangement == 'horizontal'}}am-checkbox-inline {{else/}}am-checkbox {{/if}} {{if $v.com_data.is_multicolour == '1'}}{{$form_input_item_radio_or_checkbox_height_class}}{{/if}}">
|
||
<input type="checkbox" name="{{$v.form_name}}" value="{{$d.value}}" {{if in_array($d.value, $v.com_data.form_value)}}checked="checked"{{/if}} data-am-ucheck {{if $k == 0 and $v.com_data.is_required == '1'}}required {{/if}} data-validation-message="{{:MyLang('not_choice_error')}}({{$v.com_data.title}})" {{if $k == 0 and $v.com_data.is_limit_num == '1' and !empty($v.com_data.min_num)}}minchecked="{{$v.com_data.min_num}}"{{/if}} {{if $k == 0 and $v.com_data.is_limit_num == '1' and !empty($v.com_data.max_num)}}maxchecked="{{$v.com_data.max_num}}"{{/if}}>
|
||
<div class="{{$form_input_item_multicolour_class}} am-flex-row align-items-center forminput-gap-5" style="{{if $v.com_data.is_multicolour == '1'}}background: {{$d.color}};color:{{if isset($d.is_other) and $d.is_other == '1'}}#141E31{{else/}}#fff{{/if}};border-radius:4px;{{else/}}padding: 0;{{/if}}">{{$d.name}}{{if isset($d.type) and $d.type eq 'add'}}<i data-value="{{$d.value}}" data-id="{{$v.id}}" data-subform-option-id="" data-subform-option-index="" class="add-option-icon iconfont icon-close {{if $v.com_data.is_multicolour neq '1'}}forminput-cr-gray{{/if}}"></i>{{/if}}</div>
|
||
</label>
|
||
{{/foreach}}
|
||
</div>
|
||
{{if $v.com_data.is_add_option == '1'}}
|
||
<div class="add-option am-flex-row align-items-center forminput-gap-10 forminput-cursor-p add-option-max-width">
|
||
<i class="iconfont icon-add forminput-cr-blue"></i>
|
||
<span class="size-14 forminput-cr-blue">添加选项</span>
|
||
</div>
|
||
<input type="hidden" name="{{$v.form_name}}_custom_option_list" value="{{:urlencode(base64_encode(json_encode($v.com_data.custom_option_list)))}}" class="forminput-custom-option-list" placeholder="请输入选项名称">
|
||
{{/if}}
|
||
</div>
|
||
{{elseif in_array($v.key, $form_input_radio_array) and $v.com_data.type eq 'radio-btns'}}
|
||
<!-- 单选按钮组 -->
|
||
<div class="am-flex-col forminput-gap-10">
|
||
<div class="{{if $v.com_data.arrangement == 'horizontal'}}am-flex-row align-items-center am-flex-warp{{else/}}am-flex-col{{/if}} forminput-gap-10">
|
||
{{foreach :array_values($v.com_data.option_list) as $k=>$d}}
|
||
<label class="am-radio-click {{if $v.com_data.arrangement == 'horizontal'}}am-radio-inline {{else/}}am-radio {{/if}} {{if $v.com_data.is_multicolour == '1'}}{{$form_input_item_radio_or_checkbox_height_class}}{{/if}}">
|
||
<input type="radio" name="{{$v.form_name}}" value="{{$d.value}}" {{if $v.com_data.form_value eq $d.value }}checked="checked"{{/if}} data-am-ucheck {{if $k == 0 and $v.com_data.is_required == '1'}}required data-validation-message="{{:MyLang('not_choice_error')}}({{$v.com_data.title}})"{{/if}} {{if $k == 0 and $v.com_data.is_limit_num == '1' and !empty($v.com_data.min_num)}}minchecked="{{$v.com_data.min_num}}"{{/if}} {{if $k == 0 and $v.com_data.is_limit_num == '1' and !empty($v.com_data.max_num)}}maxchecked="{{$v.com_data.max_num}}"{{/if}}>
|
||
<span class="{{$form_input_item_multicolour_class}}" style="{{if $v.com_data.is_multicolour == '1'}}background: {{$d.color}};color:{{if isset($d.is_other) and $d.is_other == '1'}}#141E31{{else/}}#fff{{/if}};border-radius:4px;{{else/}}padding: 0;{{/if}}">{{$d.name}}</span>
|
||
</label>
|
||
{{/foreach}}
|
||
</div>
|
||
{{if is_array($v.com_data.option_list)}}
|
||
{{foreach :array_values($v.com_data.option_list) as $vol}}
|
||
{{if isset($vol.is_other) and $vol.is_other eq '1' and $vol.value eq $v.com_data.form_value }}
|
||
<div class="forminput-data-item-content {{$v.id}}-other {{$form_input_item_content_class}}" style="{{$v.common_style}}">
|
||
<input
|
||
type="text"
|
||
name="{{$v.form_name}}_other_value"
|
||
value="{{$v.com_data.other_value}}"
|
||
placeholder="请输入其他内容"
|
||
class="forminput-input-other forminput-no-border forminput-w forminput-h {{$form_input_item_size}}"
|
||
/>
|
||
</div>
|
||
{{/if}}
|
||
{{/foreach}}
|
||
{{/if}}
|
||
</div>
|
||
{{elseif in_array($v.key, $form_input_radio_array) and $v.com_data.type eq 'select'}}
|
||
<!-- 下拉框 -->
|
||
<div class="am-selected am-dropdown forminput-w am-flex-row {{$v.id}}-dropdown" data-am-dropdown>
|
||
<select name="{{$v.form_name}}" autocomplete="off" class="forminput-visiable-hidden">
|
||
<option value="">请选择</option>
|
||
{{foreach :array_values($v.com_data.option_list) as $k=>$d}}
|
||
<option value="{{$d.value}}" {{if isset($v.com_data.form_value) and $v.com_data.form_value eq $d.value}}selected="selected"{{/if}}>{{$d.name}}</option>
|
||
{{/foreach}}
|
||
</select>
|
||
<div class="{{if $form_input_mode_type_value eq 'free'}}forminput-free-column{{/if}} am-flex-row" style="width: 100%;height:100%;{{if $form_input_mode_type_value eq 'free' and $form_input_style_flex_direction eq 'column'}}overflow:hidden;width: {{$v.com_data.com_width}}px;height:{{$v.com_data.com_height - $form_input_size_height}}px;{{elseif $form_input_mode_type_value eq 'free' and $form_input_style_flex_direction eq 'row' }}overflow:hidden;width:{{$v.com_data.com_width - $form_input_style_settings_computer['filed_title_width']}}px;height:{{$v.com_data.com_height}}px;{{/if}}{{if $form_input_mode_type_value eq 'free'}}z-index: {{if !empty($v.is_enable) and $v.is_enable eq '1' }}{{:count($module_data.form_input_data.config.diy_data) - ($k + 1)}}{{else/}}-999;{{/if}}{{/if}}">
|
||
<button type="button" class="am-selected-btn am-btn am-dropdown-toggle am-flex-row align-items-center forminput-data-item-content {{$form_input_item_content_class}}" style="{{$v.common_style}}">
|
||
<div class="am-selected-status am-fl am-flex-row align-items-center forminput-gap-10">
|
||
{{if empty($v.com_data.form_value) }}
|
||
<span class="forminput-cr-gray">{{$v.com_data.placeholder}}</span>
|
||
{{else/}}
|
||
{{foreach :array_values($v.com_data.option_list) as $k=>$d}}
|
||
{{if $d.value == $v.com_data.form_value}}
|
||
<span class="{{$form_input_item_multicolour_class}}" style="{{if $v.com_data.is_multicolour == '1'}}background: {{$d.color}};color:{{if isset($d.is_other) and $d.is_other == '1'}}#141E31{{else/}}#fff{{/if}};border-radius:4px;{{else/}}padding: 0;{{/if}}">{{$d.name}}</span>
|
||
{{/if}}
|
||
{{/foreach}}
|
||
{{/if}}
|
||
</div>
|
||
<i class="am-selected-icon am-icon-caret-down"></i>
|
||
</button>
|
||
</div>
|
||
<div id="dropdown-{{$v.id}}" class="am-selected-content am-dropdown-content am-radius" style="min-width: 354px;">
|
||
<ul class="am-selected-list">
|
||
<li class="forminput-show-hidden-click am-selected-item am-flex-row align-items-center {{if empty($v.com_data.form_value)}}am-checked{{/if}}" data-index="0" data-group="0" data-value="">
|
||
<span class="{{$form_input_item_multicolour_class}} am-selected-text am-color-grey am-padding-0">{{:MyLang('please_select_tips')}}</span>
|
||
</li>
|
||
{{foreach :array_values($v.com_data.option_list) as $k=>$d}}
|
||
<li value="{{$d.value}}" class="forminput-show-hidden-click am-selected-item am-flex-row align-items-center {{if $d.value == $v.com_data.form_value}}am-checked{{/if}}" data-index="{{$k}}" data-group="0" data-value="{{$d.value}}">
|
||
<span class="{{$form_input_item_multicolour_class}} am-selected-text" style="{{if $v.com_data.is_multicolour == '1'}}background: {{$d.color}};color:{{if isset($d.is_other) and $d.is_other == '1'}}#141E31{{else/}}#fff{{/if}};border-radius:4px;{{else/}}padding: 0;{{/if}}">{{$d.name}}</span>
|
||
<i class="am-icon-check"></i></li>
|
||
{{/foreach}}
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
{{if is_array($v.com_data.option_list)}}
|
||
{{foreach :array_values($v.com_data.option_list) as $vol}}
|
||
{{if isset($vol.is_other) and $vol.is_other eq '1' and $vol.value eq $v.com_data.form_value }}
|
||
<div class="forminput-data-item-content {{$v.id}}-other {{$form_input_item_content_class}}" style="{{$v.common_style}}">
|
||
<input
|
||
type="text"
|
||
name="{{$v.form_name}}_other_value"
|
||
value="{{$v.com_data.other_value}}"
|
||
placeholder="请输入其他内容"
|
||
class="forminput-input-other forminput-no-border forminput-w forminput-h {{$form_input_item_size}}"
|
||
/>
|
||
</div>
|
||
{{/if}}
|
||
{{/foreach}}
|
||
{{/if}}
|
||
{{elseif in_array($v.key, $form_input_checkbox_array) and $v.com_data.type eq 'select-multi'}}
|
||
<!-- 下拉框复选框 -->
|
||
<div class="am-selected am-dropdown forminput-w am-flex-row" data-am-dropdown>
|
||
<select name="{{$v.form_name}}" multiple class="forminput-visiable-hidden forminput-select-multi">
|
||
{{foreach :array_values(array_merge($v.com_data.option_list, empty($v['com_data']['custom_option_list']) ? [] : $v.com_data.custom_option_list)) as $k=>$d}}
|
||
<option value="{{$d.value}}" {{if !empty($v.com_data.form_value) and is_array($v.com_data.form_value) and in_array($d.value, $v.com_data.form_value)}}selected{{/if}}>{{$d.name}}</option>
|
||
{{/foreach}}
|
||
</select>
|
||
<div class="{{if $form_input_mode_type_value eq 'free'}}forminput-free-column{{/if}} am-flex-row" style="width: 100%;height:100%;{{if $form_input_mode_type_value eq 'free' and $form_input_style_flex_direction eq 'column' }}overflow:hidden;width: {{$v.com_data.com_width}}px;height:{{$v.com_data.com_height - $form_input_size_height}}px;{{elseif $form_input_mode_type_value eq 'free' and $form_input_style_flex_direction eq 'row'}}overflow:hidden;width:{{$v.com_data.com_width - $form_input_style_settings_computer['filed_title_width']}}px;height:{{$v.com_data.com_height}}px;{{/if}}{{if $form_input_mode_type_value eq 'free'}}z-index: {{if !empty($v.is_enable) and $v.is_enable eq '1' }}{{:count($module_data.form_input_data.config.diy_data) - ($k + 1)}}{{else/}}-999;{{/if}}{{/if}}">
|
||
<button type="button" class="am-selected-btn am-btn am-dropdown-toggle am-flex-row align-items-center forminput-data-item-content {{$form_input_item_content_class}}" style="{{$v.common_style}}">
|
||
<div class="am-selected-status am-fl am-flex-row align-items-center {{if $v.com_data.is_multicolour == '1'}}forminput-gap-10{{/if}}">
|
||
{{if empty($v.com_data.form_value) }}
|
||
<span class="forminput-cr-gray">{{$v.com_data.placeholder}}</span>
|
||
{{else/}}
|
||
{{php}}$selected_status=0;{{/php}}
|
||
{{foreach :array_values(array_merge($v.com_data.option_list, empty($v['com_data']['custom_option_list']) ? [] : $v.com_data.custom_option_list)) as $k=>$d}}
|
||
{{if in_array($d.value, $v.com_data.form_value)}}
|
||
<span class="{{$form_input_item_multicolour_class}}" style="{{if $v.com_data.is_multicolour == '1'}}background: {{$d.color}};color:{{if isset($d.is_other) and $d.is_other == '1'}}#141E31{{else/}}#fff{{/if}};border-radius:4px;{{else/}}padding: 0;{{/if}}">{{if $v.com_data.is_multicolour neq 1 and $selected_status eq 1}},{{/if}}{{$d.name}}</span>
|
||
{{php}}$selected_status=1;{{/php}}
|
||
{{/if}}
|
||
{{/foreach}}
|
||
{{/if}}
|
||
</div>
|
||
<i class="am-selected-icon am-icon-caret-down"></i>
|
||
</button>
|
||
</div>
|
||
<div id="dropdown-{{$v.id}}" class="am-selected-content am-dropdown-content am-radius" style="min-width: 354px;">
|
||
<ul class="am-selected-list">
|
||
{{foreach :array_values(array_merge($v.com_data.option_list, empty($v['com_data']['custom_option_list']) ? [] : $v.com_data.custom_option_list)) as $k=>$d}}
|
||
<li value="{{$d.value}}" class="am-selected-item am-flex-row align-items-center {{if in_array($d.value, $v.com_data.form_value)}}am-checked{{/if}}" data-index="{{$k}}" data-group="0" data-value="{{$d.value}}">
|
||
<div class="{{$form_input_item_multicolour_class}} am-selected-text am-flex-row align-items-center forminput-gap-5" style="{{if $v.com_data.is_multicolour == '1'}}background: {{$d.color}};color:{{if isset($d.is_other) and $d.is_other == '1'}}#141E31{{else/}}#fff{{/if}};border-radius:4px;{{else/}}padding: 0;{{/if}}">{{$d.name}}{{if isset($d.type) and $d.type eq 'add'}}<i data-value="{{$d.value}}" data-id="{{$v.id}}" data-subform-option-id="" data-subform-option-index="" class="add-option-icon iconfont icon-close {{if $v.com_data.is_multicolour neq '1'}}forminput-cr-gray{{/if}}"></i>{{/if}}</div>
|
||
<i class="am-icon-check"></i></li>
|
||
{{/foreach}}
|
||
</ul>
|
||
{{if $v.com_data.is_add_option == '1'}}
|
||
<div class="add-option am-flex-row align-items-center forminput-gap-10 forminput-cursor-p">
|
||
<i class="iconfont icon-add forminput-cr-blue"></i>
|
||
<span class="size-14 forminput-cr-blue">添加选项</span>
|
||
</div>
|
||
<input type="hidden" name="{{$v.form_name}}_custom_option_list" value="{{:urlencode(base64_encode(json_encode($v.com_data.custom_option_list)))}}" class="forminput-custom-option-list" placeholder="请输入选项名称">
|
||
{{/if}}
|
||
</div>
|
||
</div>
|
||
{{elseif $v.key eq 'score'}}
|
||
<!-- 评分 -->
|
||
<div class="am-flex-row align-items-center forminput-gap-10 forminput-score am-flex-wrap">
|
||
{{foreach :array_values(range(1, $v.com_data.total)) as $i => $d}}
|
||
{{if $v.com_data.score_type eq 0}}
|
||
<!-- 评分样式1 -->
|
||
<i data-index="{{$i}}" class="iconfont {{if $i < $v.com_data.form_value}}icon-pointed{{else/}}icon-pointed-o{{/if}} forminput-score-icon" style="color: {{if $i < $v.com_data.form_value}}{{$v.com_data.select_color}}{{else/}}#ccc{{/if}};"></i>
|
||
{{elseif $v.com_data.score_type eq 1}}
|
||
<!-- 评分样式2 -->
|
||
<i data-index="{{$i}}" class="iconfont {{if $i < $v.com_data.form_value}}icon-the-heart{{else/}}icon-the-heart-o{{/if}} forminput-score-icon" style="color: {{if $i < $v.com_data.form_value}}{{$v.com_data.select_color}}{{else/}}#ccc{{/if}};"></i>
|
||
{{elseif $v.com_data.score_type eq 2}}
|
||
<!-- 评分样式3 -->
|
||
<span data-index="{{$i}}" class="nowrap forminput-score-icon" style="color: {{if $i eq $v.com_data.form_value - 1}}{{$v.com_data.select_color}}{{else/}}#666{{/if}};">{{$i + 1 }}分</span>
|
||
{{/if}}
|
||
{{/foreach}}
|
||
<input type="text" name="{{$v.form_name}}" class="am-input am-input-sm forminput-visiable-hidden" value="{{$v.com_data.form_value}}">
|
||
</div>
|
||
{{elseif $v.key eq 'text'}}
|
||
<!-- 文本 -->
|
||
<div class="forminput-wrap item-small-size {{$form_input_item_size}}" style="{{$form_input_item_content_style}}color:{{$v.com_data.text_color}};">{{$v.com_data.form_value}}</div>
|
||
{{elseif $v.key eq 'img'}}
|
||
<!-- 图片 -->
|
||
<div style="{{if $form_input_mode_type_value neq 'free'}}width: {{$v.com_data.img_width}}px;height: {{if $v.com_data.img_scale_type == '1'}}{{$v.com_data.img_width}}{{elseif $v.com_data.img_scale_type == '0'}}{{$v.com_data.img_width * 9 / 16}}{{else/}}{{$v.com_data.img_width * 3 / 4}}{{/if}}px;{{/if}}">
|
||
{{if empty($v.com_data.img_src)}}
|
||
<div class="item-img-empty forminput-w forminput-h">
|
||
<img src="{{$attachment_host}}/static/form_input/images/empty.png" style="width: 100%;height: 100%;object-fit: cover;"/>
|
||
</div>
|
||
{{else/}}
|
||
<img src="{{$v.com_data.img_src[0]['url']}}" data-rel="{{$v.com_data.img_src[0]['url']}}" class="common-annex-view-event" style="width: 100%;height: 100%;object-fit: cover;"/>
|
||
{{/if}}
|
||
</div>
|
||
{{elseif $v.key eq 'video'}}
|
||
<!-- 视频 -->
|
||
<div style="{{if $form_input_mode_type_value neq 'free'}}width: {{$v.com_data.video_width}}px;height: {{if $v.com_data.video_scale_type == '1'}}{{$v.com_data.video_width}}{{elseif $v.com_data.video_scale_type == '0'}}{{$v.com_data.video_width * 9 / 16}}{{else/}}{{$v.com_data.video_width * 3 / 4}}{{/if}}px;{{else/}}{{if !empty($v.com_data.com_width) }}width:{{$v.com_data.com_width}}px;{{/if}}{{if !empty($v.com_data.com_height) }}height:{{$v.com_data.com_height}}px;{{/if}}{{/if}}">
|
||
{{if isset($v.com_data.video) and !empty($v.com_data.video)}}
|
||
<video src="{{$v.com_data.video[0]['url']}}" {{if isset($v.com_data.video_img[0])}}poster="{{$v.com_data.video_img[0]['url']}}"{{/if}} controls="controls" style="width: 100%;height: 100%;object-fit: contain;"></video>
|
||
{{/if}}
|
||
</div>
|
||
{{elseif $v.key eq 'auxiliary-line'}}
|
||
<!-- 辅助线 -->
|
||
<div class="am-flex-row align-items-center" style="width: 100%;{{$form_input_item_content_style}}justify-content:{{$v.com_data.line_location}};">
|
||
<div style="width:{{$v.com_data.line_width}}%;border-bottom:{{$v.com_data.line_size}}px {{$v.com_data.line_style}} {{$v.com_data.line_color}}"></div>
|
||
</div>
|
||
{{elseif $v.key eq 'attachments'}}
|
||
<!-- 文件 -->
|
||
{{if !empty($v.com_data.file)}}
|
||
<div class="am-flex-row align-items-center forminput-gap-10">
|
||
<span class="file-title am-text-truncate" style="width: auto;{{$form_input_item_content_style}}">{{$v.com_data.file[0]['original']}}</span>
|
||
<div class="forminput-oprate">
|
||
<div class="icon attachments-click"><i class="iconfont icon-copy"></i></div>
|
||
<span class="divider"></span>
|
||
<div class="icon attachments-click"><i class="iconfont icon-download-b-line"></i></div>
|
||
</div>
|
||
</div>
|
||
{{else/}}
|
||
<span class="file-title" style="color:#606266;font-size:14px;width: auto;{{$form_input_item_content_style}}">暂无文件</span>
|
||
{{/if}}
|
||
{{elseif $v.key eq 'phone'}}
|
||
<!-- 手机 --->
|
||
<div class="am-flex-col forminput-gap-10">
|
||
<div class="forminput-data-item-content am-flex-row {{$form_input_item_content_class}}" style="{{$v.common_style}}">
|
||
<i class="iconfont icon-{{$v.com_data.icon_name}}" style="color: 666;"></i>
|
||
<input type="text"
|
||
name="{{$v.form_name}}"
|
||
value="{{$v.com_data.form_value}}"
|
||
{{if $v.com_data.is_required == '1'}}required="required" data-validation-message="{{:MyLang('not_fill_in_error')}}({{$v.com_data.title}})"{{/if}}
|
||
{{if $v.com_data.is_telephone == '1'}}pattern="({{:MyConst('common_regex_mobile')}})|(^0\d{0,3}-?\d{7,8}$)"{{else /}}pattern="{{:MyConst('common_regex_mobile')}}"{{/if}}
|
||
placeholder="{{$v.com_data.placeholder}}"
|
||
class="forminput-input forminput-no-border forminput-w forminput-h {{$form_input_item_size}}"
|
||
/>
|
||
</div>
|
||
{{if $v.com_data.is_sms_verification == '1'}}
|
||
<div class="am-flex-row forminput-gap-10">
|
||
<div class="forminput-data-item-content forminput-w {{$form_input_item_content_class}}" style="{{$v.common_style}}">
|
||
<input type="text"
|
||
name="{{$v.form_name}}_verify"
|
||
value="{{$v.com_data.form_value_code}}"
|
||
{{if $v.com_data.is_required == '1'}}required="required" data-validation-message="{{:MyLang('not_fill_in_error')}}({{$v.com_data.title}}短信验证码)"{{/if}}
|
||
placeholder="请输入验证码"
|
||
class="forminput-input-verify forminput-no-border forminput-w forminput-h {{$form_input_item_size}}"
|
||
/>
|
||
</div>
|
||
<button id="{{$v.id}}_verify" class="am-btn forminput-btn-disabled am-radius verify-submit" disabled type="button" data-am-loading="{spinner:'circle-o-notch', loadingText:'发送中...'}" data-url="{{:MyUrl('index/forminput/verifysend')}}" data-time="60" data-text="获取验证码" data-send-text="还有 {time} 秒">获取验证码</button>
|
||
</div>
|
||
{{/if}}
|
||
</div>
|
||
{{elseif $v.key eq 'address'}}
|
||
<!-- 地址 --->
|
||
<div class="am-flex-col forminput-gap-10">
|
||
<div class="region-linkage" data-url="{{:MyUrl('index/region/index')}}" data-code-url="{{:MyUrl('index/region/codedata')}}">
|
||
<div class="am-cascader">
|
||
<div class="am-cascader-suffix forminput-reactive {{if $form_input_mode_type_value eq 'free'}}forminput-free-column{{/if}}" style="width: 100%;height:100%;{{if $form_input_mode_type_value eq 'free' and $form_input_style_flex_direction eq 'column'}}overflow:hidden;width: {{$v.com_data.com_width}}px;height:{{$v.com_data.com_height - $form_input_size_height}}px;{{elseif $form_input_mode_type_value eq 'free' and $form_input_style_flex_direction eq 'row'}}overflow:hidden;width:{{$v.com_data.com_width - $form_input_style_settings_computer['filed_title_width']}}px;height:{{$v.com_data.com_height}}px;{{/if}}{{if $form_input_mode_type_value eq 'free'}}z-index: {{if !empty($v.is_enable) and $v.is_enable eq '1' }}{{:count($module_data.form_input_data.config.diy_data) - ($k + 1)}}{{else/}}-999;{{/if}}{{/if}}">
|
||
<div class="forminput-data-item-content {{$form_input_item_content_class}}" style="{{$v.common_style}}">
|
||
<input type="text" readonly="readonly" name="province_city_county" autocomplete="off" placeholder="{{$v.com_data.placeholder}}"
|
||
value="{{if !empty($v['com_data']['province_name'])}}{{$v.com_data.province_name}}{{/if}}{{if !empty($v['com_data']['city_name'])}}-{{$v.com_data.city_name}}{{/if}}{{if !empty($v['com_data']['county_name'])}}-{{$v.com_data.county_name}}{{/if}}"
|
||
class="am-input-inner forminput-no-border forminput-w forminput-h {{$form_input_item_size}}" {{if isset($v.com_data.required) and $v.com_data.required eq '1'}}required data-validation-message="{{:MyLang('not_choice_error')}}({{$v.com_data.title}})"{{/if}}>
|
||
<input type="hidden" name="{{$v.form_name}}_province" value="{{if isset($v['com_data']['form_value'][0])}}{{$v.com_data.form_value[0]}}{{/if}}">
|
||
<input type="hidden" name="{{$v.form_name}}_city" value="{{if isset($v['com_data']['form_value'][1])}}{{$v.com_data.form_value[0]}}{{/if}}">
|
||
<input type="hidden" name="{{$v.form_name}}_county" value="{{if isset($v['com_data']['form_value'][2])}}{{$v.com_data.form_value[0]}}{{/if}}">
|
||
<input type="hidden" name="{{$v.form_name}}_province_name" value="{{if isset($v['com_data']['province_name'])}}{{$v.com_data.province_name}}{{/if}}">
|
||
<input type="hidden" name="{{$v.form_name}}_city_name" value="{{if isset($v['com_data']['city_name'])}}{{$v.com_data.city_name}}{{/if}}">
|
||
<input type="hidden" name="{{$v.form_name}}_county_name" value="{{if isset($v['com_data']['county_name'])}}{{$v.com_data.county_name}}{{/if}}">
|
||
<span class="am-input-suffix">
|
||
<i class="iconfont icon-angle-down"></i>
|
||
</span>
|
||
</div>
|
||
</div>
|
||
<div class="am-cascader-dropdown">
|
||
<div id="{{$v.id}}-cascader-panel" class="am-cascader-panel">
|
||
<div class="am-scrollbar province am-cascader-menu {{if isset($v['province'])}}am-active{{/if}}" data-key="province">
|
||
<div class="am-cascader-menu-wrap am-scrollbar-wrap am-scrollbar-wrap-hidden-default">
|
||
<ul class="am-scrollbar-view am-cascader-menu-list">
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="am-scrollbar city am-cascader-menu {{if isset($v['city'])}}am-active{{/if}}" data-key="city">
|
||
<div class="am-cascader-menu-wrap am-scrollbar-wrap am-scrollbar-wrap-hidden-default">
|
||
<ul class="am-scrollbar-view am-cascader-menu-list">
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="am-scrollbar county am-cascader-menu {{if isset($v['county'])}}am-active{{/if}}" data-key="county">
|
||
<div class="am-cascader-menu-wrap am-scrollbar-wrap am-scrollbar-wrap-hidden-default">
|
||
<ul class="am-scrollbar-view am-cascader-menu-list">
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="am-popper-arrow"></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
{{if $v.com_data.address_type eq 'detailed'}}
|
||
<div class="forminput-data-item-content" style="{{$v.common_style}}">
|
||
<textarea
|
||
rows="6"
|
||
name="{{$v.form_name}}_address"
|
||
placeholder="请输入详细地址"
|
||
class="forminput-input-address forminput-no-border forminput-w {{$form_input_item_size}}"
|
||
>{{if !empty(trim($v.com_data.address))}}{{$v.com_data.address}}{{/if}}</textarea>
|
||
</div>
|
||
{{/if}}
|
||
</div>
|
||
{{elseif $v.key eq 'upload-img'}}
|
||
<div class="am-flex-col forminput-gap-10">
|
||
<button class="plug-file-upload-submit am-flex-row align-items-center justify-content-center {{$form_input_item_content_class}}" style="{{$v.common_style}}" data-dialog-type="images" data-is-direct="1" data-back-fun="ForminputUploadEvent" data-back-mark="{{$v.id}}">
|
||
<div class="upload-text am-text-truncate"><span style="color: #2A94FF;">请选择</span>(点击选择图片,{{if $v.com_data.is_limit_num == '1' and !empty($v.com_data.limit) }}最多{{:$v.com_data.limit}}张{{/if}}{{if $v.com_data.is_limit_size == '1' and !empty($v.com_data.upload_size) }}、最多{{:$v.com_data.upload_size}}MB{{/if}} )</div>
|
||
</button>
|
||
<div class="file-upload-view-list am-flex-row am-flex-wrap forminput-gap-10 {{if empty($v.com_data.form_value)}}file-upload-hidden{{/if}}">
|
||
{{if is_array($v.com_data.form_value)}}
|
||
{{foreach $v.com_data.form_value as $key => $upload_data}}
|
||
{{if !empty($upload_data.url)}}
|
||
<div data-index="{{$key}}" data-id="{{$v.id}}" data-subform-index-id="{{$v.id}}" data-subform-index="" class="file-upload-view-item">
|
||
<div class="file-upload-view-close file-abs-close forminput-cursor-p">
|
||
<i class="iconfont icon-close"></i>
|
||
</div>
|
||
<div class="am am-figure am-figure-default am-no-layout file-upload-view-item-img file-upload-view-item-preview">
|
||
<img src="{{$upload_data.url}}" data-rel="{{$upload_data.url}}" style="width: 100%;height: 100%;object-fit: contain;">
|
||
</div>
|
||
<div class="file-upload-view-item-info">
|
||
<div class="am-flex-row align-items-center upload-title">
|
||
{{if !empty($upload_data.name)}}
|
||
<span class="am-text-truncate">{{:pathinfo($upload_data.name, PATHINFO_FILENAME)}}</span>
|
||
{{if !empty($upload_data.ext)}}<span>{{$upload_data.ext}}</span>{{/if}}
|
||
{{/if}}
|
||
</div>
|
||
{{if !empty($upload_data.size)}}<div class="mb-2 upload-size">{{:AnnexSizeToUnit($upload_data.size)}}</div>{{/if}}
|
||
</div>
|
||
</div>
|
||
{{/if}}
|
||
{{/foreach}}
|
||
{{/if}}
|
||
</div>
|
||
<input type="hidden" name="{{$v.form_name}}" value="{{:urlencode(base64_encode(json_encode($v.com_data.form_value)))}}" />
|
||
</div>
|
||
{{elseif $v.key eq 'upload-video'}}
|
||
<div class="am-flex-col forminput-gap-10">
|
||
<button class="plug-file-upload-submit am-flex-row align-items-center justify-content-center {{$form_input_item_content_class}}" style="{{$v.common_style}}" data-dialog-type="video" data-is-direct="1" data-back-fun="ForminputUploadEvent" data-back-mark="{{$v.id}}">
|
||
<div class="upload-text am-text-truncate"><span style="color: #2A94FF;">请选择</span>(点击选择视频,{{if $v.com_data.is_limit_num == '1' and !empty($v.com_data.limit) }}最多{{:$v.com_data.limit}}个{{/if}}{{if $v.com_data.is_limit_size == '1' and !empty($v.com_data.upload_size) }}、最多{{:$v.com_data.upload_size}}MB{{/if}} )</div>
|
||
</button>
|
||
<div class="file-upload-view-list am-flex-row am-flex-wrap forminput-gap-10 {{if empty($v.com_data.form_value)}}file-upload-hidden{{/if}}">
|
||
{{if is_array($v.com_data.form_value)}}
|
||
{{foreach $v.com_data.form_value as $key => $upload_data}}
|
||
{{if !empty($upload_data.url)}}
|
||
<div data-index="{{$key}}" data-id="{{$v.id}}" data-subform-index-id="{{$v.id}}" data-subform-index="" class="file-upload-view-item">
|
||
<div class="file-upload-view-close file-abs-close forminput-cursor-p">
|
||
<i class="iconfont icon-close"></i>
|
||
</div>
|
||
<div class="file-upload-view-item-video file-upload-view-item-preview">
|
||
<i class="iconfont icon-finish_zb forminput-cursor-p file-upload-bofang"></i>
|
||
<video src="{{$upload_data.url}}" style="width: 100%;height: 100%;object-fit: contain;"></video>
|
||
</div>
|
||
<div class="file-upload-view-item-info">
|
||
<div class="am-flex-row align-items-center upload-title">
|
||
{{if !empty($upload_data.name)}}
|
||
<span class="am-text-truncate">{{:pathinfo($upload_data.name, PATHINFO_FILENAME)}}</span>
|
||
{{if !empty($upload_data.ext)}}<span>{{$upload_data.ext}}</span>{{/if}}
|
||
{{/if}}
|
||
</div>
|
||
{{if !empty($upload_data.size)}}<div class="mb-2 upload-size">{{:AnnexSizeToUnit($upload_data.size)}}</div>{{/if}}
|
||
</div>
|
||
</div>
|
||
{{/if}}
|
||
{{/foreach}}
|
||
{{/if}}
|
||
</div>
|
||
<input type="hidden" name="{{$v.form_name}}" value="{{:urlencode(base64_encode(json_encode($v.com_data.form_value)))}}" />
|
||
</div>
|
||
{{elseif $v.key eq 'upload-attachments'}}
|
||
<div class="am-flex-col forminput-gap-10">
|
||
<button class="plug-file-upload-submit am-flex-row align-items-center justify-content-center {{$form_input_item_content_class}}" style="{{$v.common_style}}" data-dialog-type="file" data-is-direct="1" data-back-fun="ForminputUploadEvent" data-back-mark="{{$v.id}}">
|
||
<div class="upload-text am-text-truncate"><span style="color: #2A94FF;">请选择</span>(点击选择文件,{{if $v.com_data.is_limit_num == '1' and !empty($v.com_data.limit) }}最多{{:$v.com_data.limit}}个{{/if}}{{if $v.com_data.is_limit_size == '1' and !empty($v.com_data.upload_size) }}、最多{{:$v.com_data.upload_size}}MB{{/if}} )</div>
|
||
</button>
|
||
<div class="file-upload-view-list am-flex-row am-flex-wrap forminput-gap-10 {{if empty($v.com_data.form_value)}}file-upload-hidden{{/if}}">
|
||
{{if is_array($v.com_data.form_value)}}
|
||
{{foreach $v.com_data.form_value as $key => $upload_data}}
|
||
{{if !empty($upload_data.name)}}
|
||
<div data-index="{{$key}}" data-id="{{$v.id}}" data-subform-index-id="{{$v.id}}" data-subform-index="" class="file-upload-view-item file-upload-view-item-attachments-item">
|
||
<div class="am-flex-row align-items-center upload-title file-upload-view-item-preview" data-size="{{$upload_data.size}}">
|
||
<span class="am-text-truncate">{{:pathinfo($upload_data.name, PATHINFO_FILENAME)}}</span>
|
||
{{if !empty($upload_data.ext)}}<span>{{$upload_data.ext}}</span>{{/if}}
|
||
{{if !empty($upload_data.size)}}<span class="file-size">({{:AnnexSizeToUnit($upload_data.size)}})</span>{{/if}}
|
||
</div>
|
||
<div class="file-upload-view-close file-upload-view-attachments-close forminput-cursor-p">
|
||
<i class="iconfont icon-close"></i>
|
||
</div>
|
||
</div>
|
||
{{/if}}
|
||
{{/foreach}}
|
||
{{/if}}
|
||
</div>
|
||
<input type="hidden" name="{{$v.form_name}}" value="{{:urlencode(base64_encode(json_encode($v.com_data.form_value)))}}" />
|
||
</div>
|
||
{{elseif $v.key eq 'rich-text'}}
|
||
<div id="editor—wrapper-{{$v.id}}" class="{{$form_input_item_content_class}}" style="{{$v.common_style}}height: 350px;">
|
||
<div id="toolbar-container-{{$v.id}}"><!-- 工具栏 --></div>
|
||
<div id="editor-container-{{$v.id}}" style="height: 270px;"><!-- 编辑器 --></div>
|
||
<input type="hidden" id="{{$v.id}}-value" name="{{$v.form_name}}" value="{{$v.com_data.form_value}}" />
|
||
<input id="{{$v.id}}-rich-file-upload" class="rich-file-upload-input" data-url="{{:MyUrl('api/attachmentapi/upload')}}" type="file" name="{{$v.form_name}}" accept="image/*" style="display: none;" />
|
||
</div>
|
||
{{elseif $v.key eq 'round' and $form_input_mode_type_value eq 'free'}}
|
||
<div class="rect-or-round">
|
||
<div style="border-radius: 50%; width: 100%; height: 100%;box-sizing: border-box;border:{{$v.com_data.border_size }}px {{$v.com_data.border_style }} {{$v.com_data.border_color}};"></div>
|
||
</div>
|
||
{{elseif $v.key eq 'rect' and $form_input_mode_type_value eq 'free'}}
|
||
<div class="rect-or-round">
|
||
<div style="width: 100%; height: 100%;box-sizing: border-box;border:{{$v.com_data.border_size }}px {{$v.com_data.border_style }} {{$v.com_data.border_color}};"></div>
|
||
</div>
|
||
{{elseif $v.key eq 'subform'}}
|
||
{{if isset($v.com_data.children) and count($v.com_data.children) > 0}}
|
||
<div class="am-flex-col forminput-gap-10">
|
||
<div class="subform-button am-flex-row align-items-center forminput-gap-10">
|
||
<div data-id="{{$v.id}}" class="am-flex-row align-items-center forminput-default-button forminput-primary-button subform-add am-cursor-pointer"><i class="iconfont icon-add-wide"></i>添加</div>
|
||
<div data-id="{{$v.id}}" class="am-flex-row align-items-center forminput-default-button subform-delete am-cursor-pointer"><i class="iconfont icon-delete"></i>删除</div>
|
||
<div data-id="{{$v.id}}" class="subform-button-hidden am-flex-row align-items-center forminput-default-button subform-cancel am-cursor-pointer">取消操作</div>
|
||
<div data-id="{{$v.id}}" class="subform-button-hidden am-flex-row align-items-center forminput-default-button subform-delete-selected am-cursor-pointer">删除选中</div>
|
||
</div>
|
||
<div class="forminput-table-container" style="{{if $form_input_mode_type_value eq 'free'}}height: {{$v.com_data.com_height - $form_input_size_height - 42}}px;{{/if}}">
|
||
<div class="forminput-table-header am-flex">
|
||
<div class="am-flex-row align-items-center justify-content-center head">
|
||
<div class="head-label am-flex-row align-items-center justify-content-center shrink" style="{{if $v.com_data.computer.is_fixed == '1'}}position: sticky;left: 0;z-index: 99999;{{/if}}">
|
||
<div class="subform-header-checkbox">
|
||
<input type="checkbox" data-id="{{$v.id}}" class="subform-checkbox">
|
||
</div>
|
||
</div>
|
||
<div class="am-flex-row align-items-center">
|
||
<!-- 头部标题显示 -->
|
||
{{foreach $v.com_data.children as $k1=>$v1}}
|
||
<div id="subform-header-{{$v1.id}}" class="subform-header forminput-subform-hidden">
|
||
<div class="am-flex-row item-label shrink">
|
||
<div>
|
||
{{if isset($v1.com_data.is_required) and $v1.com_data.is_required == '1'}}
|
||
<span class="am-text-danger">*</span>
|
||
{{/if}}
|
||
{{$v1.com_data.title}}
|
||
</div>
|
||
<!-- 帮助说明 -->
|
||
{{if $v1.com_data.common_config.help_is_show == '1' and !empty($v1.com_data.common_config.help_explain)}}
|
||
<div class="tooltip">
|
||
<span class="tooltip-text">{{$v1.com_data.common_config.help_explain}}</span>
|
||
<div class="iconfont icon-help {{if isset($form_input_style_filed_title_size_type) and $form_input_style_filed_title_size_type eq 'big'}}item-name-big-icon{{elseif isset($form_input_style_filed_title_size_type) and $form_input_style_filed_title_size_type eq 'middle'}}item-name-icon{{else/}}item-name-small-icon{{/if}}"></div>
|
||
</div>
|
||
{{/if}}
|
||
</div>
|
||
</div>
|
||
{{/foreach}}
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="forminput-table-body">
|
||
<div class="flex-1 am-flex-col subform-data-list">
|
||
{{foreach $v.com_data.form_value as $k1=>$v1}}
|
||
<div class="table-row am-flex-row">
|
||
<div class="cell-num am-flex-row align-items-center justify-content-center shrink re" style="{{if $v.com_data.computer.is_fixed == '1'}}position: sticky;left: 0;z-index:{{:intval(9999 - $k1)}};{{/if}}">
|
||
<div class="row-num am-flex-row align-items-center justify-content-center">{{$k1 + 1 }}</div>
|
||
<div class="subform-num-checkbox">
|
||
<input type="checkbox" data-index="{{$k1}}" data-id="{{$v.id}}" class="subform-index-checkbox">
|
||
</div>
|
||
<div class="operate am-flex-row align-items-center justify-content-center forminput-gap-5">
|
||
<!-- <i data-id="{{$v.id}}" data-index="{{$k1}}" class="iconfont icon-enlarge operate-icon operate-enlarge am-cursor-pointer"></i> -->
|
||
<i data-id="{{$v.id}}" data-index="{{$k1}}" class="iconfont icon-delete operate-icon operate-delete am-cursor-pointer"></i>
|
||
<div id="{{$v.id}}-{{$k1}}-selected" class="subform-dropdown am-dropdown" data-am-dropdown>
|
||
<div data-id="{{$v.id}}-{{$k1}}-selected" class="selected-click am-dropdown-toggle">
|
||
<i class="iconfont icon-more-o operate-icon am-cursor-pointer"></i>
|
||
</div>
|
||
<div class="am-dropdown-content am-radius select-fixed-position">
|
||
<div class="am-flex-col forminput-gap-10">
|
||
<div data-id="{{$v.id}}" data-index="{{$k1}}" data-type="copy" class="am-dropdown-item am-cursor-pointer subform-dropdown-item">复制到下一行</div>
|
||
<div data-id="{{$v.id}}" data-index="{{$k1}}" data-type="copy_last" class="am-dropdown-item am-cursor-pointer subform-dropdown-item">复制到最后一行</div>
|
||
<div data-id="{{$v.id}}" data-index="{{$k1}}" data-type="insert_top" class="am-dropdown-item am-cursor-pointer subform-dropdown-item">向上插入一行</div>
|
||
<div data-id="{{$v.id}}" data-index="{{$k1}}" data-type="insert_bottom" class="am-dropdown-item am-cursor-pointer subform-dropdown-item">向下插入一行</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
{{if isset($v.com_data.children)}}
|
||
{{foreach $v.com_data.children as $k2=>$v2}}
|
||
<div id="{{$v2.id}}-{{$k1}}" data-index="{{$k1}}" data-subform-id="{{$v.id}}" data-id="{{$v2.id}}" class="am-flex-row align-items-center subform-cell">
|
||
{{if in_array($v2.key, $form_input_radio_array) and $v2.com_data.type eq 'single-text'}}
|
||
<!-- 单行文本 -->
|
||
<div class="forminput-data-item-content {{$form_input_item_content_class}}" style="{{$v2.common_style}}">
|
||
<input
|
||
type="text"
|
||
name="{{$v.form_name}}[{{$k1}}][{{$v2.form_name}}]"
|
||
value="{{$v1[$v2.form_name]}}"
|
||
{{if $v2.com_data.is_required == '1'}}required="required" data-validation-message="{{:MyLang('not_fill_in_error')}}({{$v.com_data.title}}-{{$v2.com_data.title}})"{{/if}}
|
||
placeholder="{{$v2.com_data.placeholder}}"
|
||
{{if $v2.com_data.is_limit_num == '1' and !empty($v2.com_data.min_num)}}minlength="{{$v2.com_data.min_num}}"{{/if}}
|
||
{{if $v2.com_data.is_limit_num == '1' and !empty($v2.com_data.max_num)}}maxlength="{{$v2.com_data.max_num}}"{{/if}}
|
||
class="forminput-input forminput-no-border forminput-w forminput-h {{$form_input_item_size}}"
|
||
/>
|
||
{{if $v2.com_data.is_limit_num == '1' and !empty($v2.com_data.max_num)}}
|
||
<div class="forminput-cr-gray"><span class="limit-num">{{:strlen($v1[$v2.form_name]) }}</span>/{{$v2.com_data.max_num }}</div>
|
||
{{/if}}
|
||
</div>
|
||
{{elseif $v2.key eq 'number'}}
|
||
<!-- 数字 -->
|
||
<div class="forminput-data-item-content {{$form_input_item_content_class}}" style="{{$v2.common_style}}">
|
||
{{if $v2.com_data.is_display_money == '1' }}
|
||
<div class="forminput-cr-gray">{{$v2.com_data.money_sign }}</div>
|
||
{{/if}}
|
||
<input type="text"
|
||
name="{{$v.form_name}}[{{$k1}}][{{$v2.form_name}}]"
|
||
value="{{$v1[$v2.form_name]}}"
|
||
{{if $v2.com_data.is_required == '1'}}required="required" data-validation-message="{{:MyLang('not_fill_in_error')}}({{$v.com_data.title}}-{{$v2.com_data.title}})"{{/if}}
|
||
placeholder="{{$v2.com_data.placeholder}}"
|
||
class="forminput-input forminput-no-border forminput-w forminput-h {{$form_input_item_size}}"
|
||
/>
|
||
{{if $v2.com_data.format == 'percentage'}}
|
||
<div class="forminput-cr-gray">%</div>
|
||
{{/if}}
|
||
</div>
|
||
{{elseif $v2.key eq 'multi-text'}}
|
||
<!-- 多行文本 -->
|
||
<div class="forminput-data-item-content {{$form_input_item_content_class}} forminput-re" style="{{$v2.common_style}}height:auto;">
|
||
<textarea
|
||
rows="6"
|
||
name="{{$v.form_name}}[{{$k1}}][{{$v2.form_name}}]"
|
||
{{if $v2.com_data.is_required == '1'}}required="required" data-validation-message="{{:MyLang('not_fill_in_error')}}({{$v.com_data.title}}-{{$v2.com_data.title}})"{{/if}}
|
||
placeholder="{{$v2.com_data.placeholder}}"
|
||
{{if $v2.com_data.is_limit_num == '1' and !empty($v2.com_data.min_num)}}minlength="{{$v2.com_data.min_num}}"{{/if}}
|
||
{{if $v2.com_data.is_limit_num == '1' and !empty($v2.com_data.max_num)}}maxlength="{{$v2.com_data.max_num}}"{{/if}}
|
||
class="forminput-input forminput-no-border forminput-w {{$form_input_item_size}}"
|
||
>{{if !empty($v1[$v2.form_name])}}{{$v1[$v2.form_name]}}{{/if}}</textarea>
|
||
{{if $v2.com_data.is_limit_num == '1' and !empty($v2.com_data.max_num)}}
|
||
<div class="forminput-cr-gray forminput-textarea"><span class="limit-num">{{:strlen($v1[$v2.form_name]) }}</span>/{{$v2.com_data.max_num }}</div>
|
||
{{/if}}
|
||
</div>
|
||
{{elseif $v2.key eq 'pwd'}}
|
||
<!-- 密码 -->
|
||
<div class="forminput-data-item-content {{$form_input_item_content_class}}" style="{{$v2.common_style}}">
|
||
{{if !empty($v2.com_data.icon_name)}}
|
||
<div class="iconfont icon-{{$v2.com_data.icon_name}} forminput-cr-gray"></div>
|
||
{{/if}}
|
||
<input type="password" autocomplete="off"
|
||
name="{{$v.form_name}}[{{$k1}}][{{$v2.form_name}}]"
|
||
value="{{$v1[$v2.form_name]}}"
|
||
{{if $v2.com_data.is_required == '1'}}required="required" data-validation-message="{{:MyLang('not_fill_in_error')}}({{$v.com_data.title}}-{{$v2.com_data.title}})"{{/if}}
|
||
placeholder="{{$v2.com_data.placeholder}}"
|
||
class="forminput-input forminput-no-border forminput-w forminput-h {{$form_input_item_size}}"
|
||
/>
|
||
<div class="iconfont icon-eye forminput-cr-gray forminput-password"></div>
|
||
</div>
|
||
{{elseif $v2.key eq 'date-group'}}
|
||
<!-- 日期时间组 -->
|
||
<div class="forminput-data-item-content {{$form_input_item_content_class}}" style="{{$v2.common_style}}">
|
||
{{if !in_array($v2.com_data.date_type, ['option1', 'option2'])}}
|
||
<div class="form-table-search-section form-table-search-time am-flex-row forminput-w forminput-h align-items-center">
|
||
<input type="text" {{if $v2.com_data.is_required == '1'}}required="required" data-validation-message="{{:MyLang('not_choice_error')}}({{$v.com_data.title}}-{{$v2.com_data.title}})"{{/if}} autocomplete="off" class="am-form-field am-input-sm am-radius am-inline-block Wdate forminput-no-border forminput-w forminput-h forminput-input-text-center forminput-input-date-group-start {{$form_input_item_size}}" id="form-table-search-time-start-{{$v2.id}}-{{$k1}}" name="{{$v.form_name}}[{{$k1}}][{{$v2.form_name}}_start]" value="{{if !empty($v1[$v2.form_name]) and isset($v1[$v2.form_name][0])}}{{$v1[$v2.form_name][0]}}{{/if}}" placeholder="{{if isset($v2['com_data']['start_placeholder'])}}{{$v2.com_data.start_placeholder}}{{/if}}" onclick="WdatePicker({firstDayOfWeek:1,dateFmt:'{{$v2.com_data.format}}',maxDate:'#F{$dp.$D(\'form-table-search-time-end-{{$v2.id}}-{{$k1}}\',{d:-1});}'})" autocomplete="off" />
|
||
<span class="am-flex-row align-items-center forminput-divider">-</span>
|
||
<input type="text" {{if $v2.com_data.is_required == '1'}}required="required" data-validation-message="{{:MyLang('not_choice_error')}}({{$v.com_data.title}}-{{$v2.com_data.title}})"{{/if}} autocomplete="off" class="am-form-field am-input-sm am-radius am-inline-block Wdate forminput-no-border forminput-w forminput-h forminput-input-text-center forminput-input-date-group-end {{$form_input_item_size}}" id="form-table-search-time-end-{{$v2.id}}-{{$k1}}" name="{{$v.form_name}}[{{$k1}}][{{$v2.form_name}}_end]" value="{{if !empty($v1[$v2.form_name]) and isset($v1[$v2.form_name][1])}}{{$v1[$v2.form_name][1]}}{{/if}}" placeholder="{{if isset($v2['com_data']['end_placeholder'])}}{{$v2.com_data.end_placeholder}}{{/if}}" onclick="WdatePicker({firstDayOfWeek:1,dateFmt:'{{$v2.com_data.format}}',minDate:'#F{$dp.$D(\'form-table-search-time-start-{{$v2.id}}-{{$k1}}\',{d:+1});}'})" autocomplete="off" />
|
||
</div>
|
||
{{else/}}
|
||
<div class="form-table-search-section form-table-search-time am-flex-row forminput-w forminput-h align-items-center">
|
||
<input type="text" {{if $v2.com_data.is_required == '1'}}required="required" data-validation-message="{{:MyLang('not_choice_error')}}({{$v.com_data.title}}-{{$v2.com_data.title}})"{{/if}} autocomplete="off" class="am-form-field am-input-sm am-radius am-inline-block Wdate forminput-no-border forminput-w forminput-h forminput-input-text-center forminput-input-date-group-start {{$form_input_item_size}}" id="form-table-search-time-start-{{$v2.id}}-{{$k1}}" name="{{$v.form_name}}[{{$k1}}][{{$v2.form_name}}_start]" value="{{if !empty($v1[$v2.form_name]) and isset($v1[$v2.form_name][0])}}{{$v1[$v2.form_name][0]}}{{/if}}" placeholder="{{if isset($v2['com_data']['start_placeholder'])}}{{$v2.com_data.start_placeholder}}{{/if}}" onclick="WdatePicker({firstDayOfWeek:1,dateFmt:'{{$v2.com_data.format}}',maxDate:'#F{$dp.$D(\'form-table-search-time-end-{{$v2.id}}-{{$k1}}\');}'})" autocomplete="off" />
|
||
<span class="am-flex-row align-items-center forminput-divider">-</span>
|
||
<input type="text" {{if $v2.com_data.is_required == '1'}}required="required" data-validation-message="{{:MyLang('not_choice_error')}}({{$v.com_data.title}}-{{$v2.com_data.title}})"{{/if}} autocomplete="off" class="am-form-field am-input-sm am-radius am-inline-block Wdate forminput-no-border forminput-w forminput-h forminput-input-text-center forminput-input-date-group-end {{$form_input_item_size}}" id="form-table-search-time-end-{{$v2.id}}-{{$k1}}" name="{{$v.form_name}}[{{$k1}}][{{$v2.form_name}}_end]" value="{{if !empty($v1[$v2.form_name]) and isset($v1[$v2.form_name][1])}}{{$v1[$v2.form_name][1]}}{{/if}}" placeholder="{{if isset($v2['com_data']['end_placeholder'])}}{{$v2.com_data.end_placeholder}}{{/if}}" onclick="WdatePicker({firstDayOfWeek:1,dateFmt:'{{$v2.com_data.format}}',minDate:'#F{$dp.$D(\'form-table-search-time-start-{{$v2.id}}-{{$k1}}\');}'})" autocomplete="off" />
|
||
</div>
|
||
{{/if}}
|
||
<i class="iconfont icon-{{$v2.com_data.icon_name}}" style="color: 333;"></i>
|
||
</div>
|
||
{{elseif $v2.key eq 'date'}}
|
||
<!-- 日期时间 -->
|
||
<div class="forminput-data-item-content {{$form_input_item_content_class}}" style="{{$v2.common_style}}">
|
||
<input type="text" autocomplete="off" {{if $v2.com_data.is_required == '1'}}required="required" data-validation-message="{{:MyLang('not_choice_error')}}({{$v.com_data.title}}-{{$v2.com_data.title}})"{{/if}} class="forminput-input-date am-form-field am-input-sm am-radius am-inline-block Wdate forminput-no-border forminput-w forminput-h {{$form_input_item_size}}" id="form-table-search-time-{{$v2.id}}-{{$k1}}" name="{{$v.form_name}}[{{$k1}}][{{$v2.form_name}}]" value="{{if !empty($v1[$v2.form_name]) and isset($v1[$v2.form_name])}}{{$v1[$v2.form_name]}}{{/if}}" placeholder="{{if isset($v2['com_data']['placeholder'])}}{{$v2.com_data.placeholder}}{{/if}}" onclick="WdatePicker({firstDayOfWeek:1,dateFmt:'{{$v2.com_data.format}}'})" autocomplete="off" />
|
||
<i class="iconfont icon-{{$v2.com_data.icon_name}}" style="color: 333;"></i>
|
||
</div>
|
||
{{elseif (in_array($v2.key, $form_input_radio_array) and $v2.com_data.type eq 'select') or (in_array($v2.key, $form_input_radio_array) and $v2.com_data.type eq 'radio-btns')}}
|
||
<!-- 下拉框 -->
|
||
<div id="{{$v.id}}-{{$k1}}-selected" class="am-selected subform-dropdown am-dropdown forminput-w am-flex-row" data-am-dropdown>
|
||
<select name="{{$v.form_name}}[{{$k1}}][{{$v2.form_name}}]" autocomplete="off" class="forminput-visiable-hidden">
|
||
<option value="">请选择</option>
|
||
{{foreach :array_values($v2.com_data.option_list) as $k=>$d}}
|
||
<option style="color: #000" value="{{$d.value}}" {{if isset($v1[$v2.form_name]) and $v1[$v2.form_name] eq $d.value}}selected="selected"{{/if}}>
|
||
{{$d.name}}
|
||
</option>
|
||
{{/foreach}}
|
||
</select>
|
||
<div data-id="{{$v.id}}-{{$k1}}-selected" class="am-flex-row selected-click forminput-w forminput-h">
|
||
<button type="button" class="am-selected-btn am-btn am-dropdown-toggle am-flex-row align-items-center forminput-data-item-content {{$form_input_item_content_class}}" style="{{$v2.common_style}}">
|
||
<div class="am-selected-status am-fl am-flex-row align-items-center forminput-gap-10">
|
||
{{if empty($v1[$v2.form_name]) }}
|
||
<span class="forminput-cr-gray">{{$v2.com_data.placeholder}}</span>
|
||
{{else/}}
|
||
{{foreach :array_values($v2.com_data.option_list) as $k=>$d}}
|
||
{{if $d.value == $v1[$v2.form_name]}}
|
||
<span class="{{$form_input_item_multicolour_class}}" style="{{if $v2.com_data.is_multicolour == '1'}}background: {{$d.color}};color:{{if isset($d.is_other) and $d.is_other == '1'}}#141E31{{else/}}#fff{{/if}};border-radius:4px;{{else/}}padding: 0;{{/if}}">{{$d.name}}</span>
|
||
{{/if}}
|
||
{{/foreach}}
|
||
{{/if}}
|
||
</div>
|
||
<i class="am-selected-icon am-icon-caret-down"></i>
|
||
</button>
|
||
</div>
|
||
<div id="dropdown-{{$v2.id}}-{{$k1}}" data-subform-id="{{$v.id}}" data-id="{{$v2.id}}" data-index="{{$k1}}" class="am-selected-content am-dropdown-content am-radius select-fixed-position" style="min-width: 354px;">
|
||
<ul class="am-selected-list">
|
||
<li class="forminput-show-hidden-click am-selected-item am-flex-row align-items-center {{if empty($v1[$v2.form_name])}}am-checked{{/if}}" data-index="0" data-group="0" data-value="">
|
||
<span class="{{$form_input_item_multicolour_class}} am-selected-text am-color-grey am-padding-0">{{:MyLang('please_select_tips')}}</span>
|
||
</li>
|
||
{{foreach :array_values($v2.com_data.option_list) as $k=>$d}}
|
||
<li class="forminput-show-hidden-click am-selected-item am-flex-row align-items-center {{if $d.value == $v1[$v2.form_name]}}am-checked{{/if}}" data-index="{{$k}}" data-group="0" data-value="{{$d.value}}">
|
||
<span class="{{$form_input_item_multicolour_class}} am-selected-text" style="{{if $v2.com_data.is_multicolour == '1'}}background: {{$d.color}};color:{{if isset($d.is_other) and $d.is_other == '1'}}#141E31{{else/}}#fff{{/if}};border-radius:4px;{{else/}}padding: 0;{{/if}}">{{$d.name}}</span>
|
||
<i class="am-icon-check"></i></li>
|
||
{{/foreach}}
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
{{elseif in_array($v2.key, $form_input_checkbox_array) }}
|
||
<!-- 下拉框复选框 -->
|
||
<div id="{{$v.id}}-{{$k1}}-selected" class="am-selected subform-dropdown am-dropdown forminput-w am-flex-row" data-am-dropdown>
|
||
<select name="{{$v.form_name}}[{{$k1}}][{{$v2.form_name}}]" multiple class="forminput-visiable-hidden forminput-select-multi">
|
||
{{foreach :array_values(array_merge($v2.com_data.option_list, empty($v1[$v2['form_name'].'_custom_option_list']) ? [] : $v1[$v2['form_name'].'_custom_option_list'])) as $k=>$d}}
|
||
<option value="{{$d.value}}" {{if !empty($v1[$v2.form_name]) and is_array($v1[$v2.form_name]) and in_array($d.value, $v1[$v2.form_name])}}selected{{/if}}>{{$d.name}}</option>
|
||
{{/foreach}}
|
||
</select>
|
||
<div data-id="{{$v.id}}-{{$k1}}-selected" class="am-flex-row selected-click forminput-w forminput-h">
|
||
<button type="button" class="am-selected-btn am-btn am-dropdown-toggle am-flex-row align-items-center forminput-data-item-content {{$form_input_item_content_class}}" style="{{$v2.common_style}}">
|
||
<div class="am-selected-status am-fl am-flex-row align-items-center {{if $v2.com_data.is_multicolour == '1'}}forminput-gap-10{{/if}}">
|
||
{{if empty($v1[$v2.form_name]) }}
|
||
<span class="forminput-cr-gray">{{$v2.com_data.placeholder}}</span>
|
||
{{else/}}
|
||
{{php}}$selected_status=0;{{/php}}
|
||
{{foreach :array_values(array_merge($v2.com_data.option_list, empty($v1[$v2['form_name'].'_custom_option_list']) ? [] : $v1[$v2['form_name'].'_custom_option_list'])) as $k=>$d}}
|
||
{{if in_array($d.value, $v1[$v2.form_name])}}
|
||
<span class="{{$form_input_item_multicolour_class}}" style="{{if $v2.com_data.is_multicolour == '1'}}background: {{$d.color}};color:{{if isset($d.is_other) and $d.is_other == '1'}}#141E31{{else/}}#fff{{/if}};border-radius:4px;{{else/}}padding: 0;{{/if}}">{{if $v2.com_data.is_multicolour neq 1 and $selected_status eq 1}},{{/if}}{{$d.name}}</span>
|
||
{{php}}$selected_status=1;{{/php}}
|
||
{{/if}}
|
||
{{/foreach}}
|
||
{{/if}}
|
||
</div>
|
||
<i class="am-selected-icon am-icon-caret-down"></i>
|
||
</button>
|
||
</div>
|
||
<div id="dropdown-{{$v2.id}}-{{$k1}}" data-subform-id="{{$v.id}}" data-id="{{$v2.id}}" data-index="{{$k1}}" class="am-selected-content am-dropdown-content am-radius select-fixed-position" style="min-width: 354px;">
|
||
<ul class="am-selected-list">
|
||
{{foreach :array_values(array_merge($v2.com_data.option_list, empty($v1[$v2['form_name'].'_custom_option_list']) ? [] : $v1[$v2['form_name'].'_custom_option_list'])) as $k=>$d}}
|
||
<li value="{{$d.value}}" class="am-selected-item am-flex-row align-items-center {{if isset($v1[$v2.form_name]) and is_array($v1[$v2.form_name]) and in_array($d.value, $v1[$v2.form_name])}}am-checked{{/if}}" data-index="{{$k}}" data-group="0" data-value="{{$d.value}}">
|
||
<div class="{{$form_input_item_multicolour_class}} am-selected-text am-flex-row align-items-center forminput-gap-5" style="{{if $v2.com_data.is_multicolour == '1'}}background: {{$d.color}};color:{{if isset($d.is_other) and $d.is_other == '1'}}#141E31{{else/}}#fff{{/if}};border-radius:4px;{{else/}}padding: 0;{{/if}}">{{$d.name}}{{if isset($d.type) and $d.type eq 'add'}}<i data-value="{{$d.value}}" data-id="{{$v.id}}" data-subform-option-id="{{$v2.id}}" data-subform-option-index="{{$k1}}" class="add-option-icon iconfont icon-close {{if $v2.com_data.is_multicolour neq '1'}}forminput-cr-gray{{/if}}"></i>{{/if}}</div>
|
||
<i class="am-icon-check"></i></li>
|
||
{{/foreach}}
|
||
</ul>
|
||
{{if $v2.com_data.is_add_option == '1'}}
|
||
<div class="add-option am-flex-row align-items-center forminput-gap-10 forminput-cursor-p">
|
||
<i class="iconfont icon-add forminput-cr-blue"></i>
|
||
<span class="size-14 forminput-cr-blue">添加选项</span>
|
||
</div>
|
||
<input type="hidden" name="{{$v.form_name}}[{{$k1}}][{{$v2.form_name}}_custom_option_list]" value="{{if !empty($v1[$v2['form_name'].'_custom_option_list'])}}{{:urlencode(base64_encode(json_encode($v1[$v2['form_name'].'_custom_option_list'])))}}{{/if}}" class="forminput-custom-option-list" placeholder="请输入选项名称">
|
||
{{/if}}
|
||
</div>
|
||
</div>
|
||
{{elseif $v2.key eq 'score'}}
|
||
<!-- 评分 -->
|
||
<div class="am-flex-row align-items-center forminput-gap-10 forminput-score am-flex-wrap">
|
||
{{foreach :array_values(range(1, $v2.com_data.total)) as $i => $d}}
|
||
{{if $v2.com_data.score_type eq 0}}
|
||
<!-- 评分样式1 -->
|
||
<i data-index="{{$i}}" class="iconfont {{if $i < $v1[$v2.form_name]}}icon-pointed{{else/}}icon-pointed-o{{/if}} forminput-score-icon" style="color: {{if $i < $v1[$v2.form_name]}}{{$v2.com_data.select_color}}{{else/}}#ccc{{/if}};"></i>
|
||
{{elseif $v2.com_data.score_type eq 1}}
|
||
<!-- 评分样式2 -->
|
||
<i data-index="{{$i}}" class="iconfont {{if $i < $v1[$v2.form_name]}}icon-the-heart{{else/}}icon-the-heart-o{{/if}} forminput-score-icon" style="color: {{if $i < $v1[$v2.form_name]}}{{$v2.com_data.select_color}}{{else/}}#ccc{{/if}};"></i>
|
||
{{elseif $v2.com_data.score_type eq 2}}
|
||
<!-- 评分样式3 -->
|
||
<span data-index="{{$i}}" class="nowrap forminput-score-icon" style="color: {{if $i eq $v1[$v2.form_name] - 1}}{{$v2.com_data.select_color}}{{else/}}#666{{/if}};">{{$i + 1 }}分</span>
|
||
{{/if}}
|
||
{{/foreach}}
|
||
<input type="text" name="{{$v.form_name}}[{{$k1}}][{{$v2.form_name}}]" class="am-input am-input-sm forminput-visiable-hidden" value="{{$v1[$v2.form_name]}}">
|
||
</div>
|
||
{{elseif $v2.key eq 'text'}}
|
||
<!-- 文本 -->
|
||
<div class="forminput-wrap item-small-size {{$form_input_item_size}}" style="color:{{$v2.com_data.text_color}};">{{$v1[$v2.form_name]}}</div>
|
||
{{elseif $v2.key eq 'img'}}
|
||
<!-- 图片 -->
|
||
<div>
|
||
{{if empty($v2.com_data.img_src)}}
|
||
<div class="item-img-empty forminput-w forminput-h">
|
||
<img src="{{$attachment_host}}/static/form_input/images/empty.png" style="width: 100%;height: 100%;object-fit: cover;"/>
|
||
</div>
|
||
{{else/}}
|
||
<img src="{{$v2.com_data.img_src[0]['url']}}" data-rel="{{$v2.com_data.img_src[0]['url']}}" class="common-annex-view-event" style="width: 100%;height: 100%;object-fit: cover;"/>
|
||
{{/if}}
|
||
</div>
|
||
{{elseif $v2.key eq 'video'}}
|
||
<!-- 视频 -->
|
||
<div>
|
||
{{if isset($v2.com_data.video) and !empty($v2.com_data.video)}}
|
||
<video src="{{$v2.com_data.video[0]['url']}}" {{if isset($v2.com_data.video_img[0])}}poster="{{$v2.com_data.video_img[0]['url']}}"{{/if}} controls="controls" style="width: 100%;height: 100%;object-fit: contain;"></video>
|
||
{{/if}}
|
||
</div>
|
||
{{elseif $v2.key eq 'position'}}
|
||
<!-- 定位 -->
|
||
<div class="forminput-data-item-disabled {{$form_input_item_content_class}} justify-content-center forminput-cr-gray" style="{{$v2.common_style}}">
|
||
<div class="iconfont icon-address"></div>
|
||
<div class="am-text-truncate">请在移动端打开表单进行定位</div>
|
||
</div>
|
||
{{elseif $v2.key eq 'attachments'}}
|
||
<!-- 文件 -->
|
||
{{if !empty($v2.com_data.file)}}
|
||
<div class="am-flex-row align-items-center forminput-gap-10">
|
||
<span class="file-title am-text-truncate" style="width: auto;">{{$v2.com_data.file[0]['original']}}</span>
|
||
<div class="forminput-oprate">
|
||
<div class="icon attachments-click"><i class="iconfont icon-copy"></i></div>
|
||
<span class="divider"></span>
|
||
<div class="icon attachments-click"><i class="iconfont icon-download-b-line"></i></div>
|
||
</div>
|
||
</div>
|
||
{{else/}}
|
||
<span class="file-title" style="color:#606266;font-size:14px;width: auto;">暂无文件</span>
|
||
{{/if}}
|
||
{{elseif $v2.key eq 'phone'}}
|
||
<!-- 手机 --->
|
||
<div class="am-flex-col forminput-gap-10">
|
||
<div class="forminput-data-item-content am-flex-row {{$form_input_item_content_class}}" style="{{$v2.common_style}}">
|
||
<i class="iconfont icon-{{$v2.com_data.icon_name}}" style="color: 666;"></i>
|
||
<input type="text"
|
||
name="{{$v.form_name}}[{{$k1}}][{{$v2.form_name}}]"
|
||
value="{{$v1[$v2.form_name]}}"
|
||
{{if $v2.com_data.is_required == '1'}}required="required" data-validation-message="{{:MyLang('not_fill_in_error')}}({{$v.com_data.title}}-{{$v2.com_data.title}})"{{/if}}
|
||
placeholder="{{$v2.com_data.placeholder}}"
|
||
class="forminput-input forminput-no-border forminput-w forminput-h {{$form_input_item_size}}"
|
||
/>
|
||
</div>
|
||
</div>
|
||
{{elseif $v2.key eq 'address'}}
|
||
<!-- 地址 --->
|
||
<div class="region-linkage" data-url="{{:MyUrl('index/region/index')}}" data-code-url="{{:MyUrl('index/region/codedata')}}">
|
||
<div class="am-cascader">
|
||
<div class="selected-click am-cascader-suffix forminput-reactive">
|
||
<div class="forminput-data-item-content {{$form_input_item_content_class}}" style="{{$v2.common_style}}">
|
||
<input type="text" readonly="readonly" name="province_city_county" autocomplete="off" placeholder="{{$v2.com_data.placeholder}}"
|
||
value="{{if !empty($v2['com_data']['province_name'])}}{{$v2.com_data.province_name}}{{/if}}{{if !empty($v2['com_data']['city_name'])}}-{{$v2.com_data.city_name}}{{/if}}{{if !empty($v2['com_data']['county_name'])}}-{{$v2.com_data.county_name}}{{/if}}"
|
||
class="am-input-inner forminput-no-border forminput-w forminput-h {{$form_input_item_size}}" {{if isset($v2.com_data.required) and $v2.com_data.required eq '1'}}required data-validation-message="{{:MyLang('not_choice_error')}}({{$v.com_data.title}}-{{$v2.com_data.title}})"{{/if}}>
|
||
<input type="hidden" name="{{$v.form_name}}[{{$k1}}][{{$v2.form_name}}_province]" value="{{if isset($v2['com_data']['form_value'][0])}}{{$v1[$v2.form_name][0]}}{{/if}}">
|
||
<input type="hidden" name="{{$v.form_name}}[{{$k1}}][{{$v2.form_name}}_city]" value="{{if isset($v2['com_data']['form_value'][1])}}{{$v1[$v2.form_name][1]}}{{/if}}">
|
||
<input type="hidden" name="{{$v.form_name}}[{{$k1}}][{{$v2.form_name}}_county]" value="{{if isset($v2['com_data']['form_value'][2])}}{{$v1[$v2.form_name][2]}}{{/if}}">
|
||
<input type="hidden" name="{{$v.form_name}}[{{$k1}}][{{$v2.form_name}}_province_name]" value="{{if isset($v2['com_data']['province_name'])}}{{$v2.com_data.province_name}}{{/if}}">
|
||
<input type="hidden" name="{{$v.form_name}}[{{$k1}}][{{$v2.form_name}}_city_name]" value="{{if isset($v2['com_data']['city_name'])}}{{$v2.com_data.city_name}}{{/if}}">
|
||
<input type="hidden" name="{{$v.form_name}}[{{$k1}}][{{$v2.form_name}}_county_name]" value="{{if isset($v2['com_data']['county_name'])}}{{$v2.com_data.county_name}}{{/if}}">
|
||
<span class="am-input-suffix">
|
||
<i class="iconfont icon-angle-down"></i>
|
||
</span>
|
||
</div>
|
||
</div>
|
||
<div class="am-cascader-dropdown select-fixed-position">
|
||
<div id="{{$v2.id}}-cascader-panel-{{$k1}}" data-subform-id="{{$v.id}}" data-index="{{$k1}}" data-id="{{$v2.id}}" class="am-cascader-panel">
|
||
<div class="am-scrollbar province am-cascader-menu {{if isset($v2['province'])}}am-active{{/if}}" data-key="province">
|
||
<div class="am-cascader-menu-wrap am-scrollbar-wrap am-scrollbar-wrap-hidden-default">
|
||
<ul class="am-scrollbar-view am-cascader-menu-list">
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="am-scrollbar city am-cascader-menu {{if isset($v2['city'])}}am-active{{/if}}" data-key="city">
|
||
<div class="am-cascader-menu-wrap am-scrollbar-wrap am-scrollbar-wrap-hidden-default">
|
||
<ul class="am-scrollbar-view am-cascader-menu-list">
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="am-scrollbar county am-cascader-menu {{if isset($v2['county'])}}am-active{{/if}}" data-key="county">
|
||
<div class="am-cascader-menu-wrap am-scrollbar-wrap am-scrollbar-wrap-hidden-default">
|
||
<ul class="am-scrollbar-view am-cascader-menu-list">
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="am-popper-arrow"></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
{{elseif $v2.key eq 'upload-img'}}
|
||
<div class="am-flex-col forminput-gap-10">
|
||
<button class="plug-file-upload-submit am-flex-row align-items-center justify-content-center {{$form_input_item_content_class}}" style="{{$v2.common_style}}" data-dialog-type="images" data-is-direct="1" data-back-fun="ForminputUploadEvent" data-back-mark="{{$v2.id}}-{{$k1}}_{{$v.id}}">
|
||
<div class="upload-text am-text-truncate"><span style="color: #2A94FF;">请选择</span>(点击选择图片,{{if $v2.com_data.is_limit_num == '1' and !empty($v2.com_data.limit) }}最多{{:$v2.com_data.limit}}张{{/if}}{{if $v2.com_data.is_limit_size == '1' and !empty($v2.com_data.upload_size) }}、最多{{:$v2.com_data.upload_size}}MB{{/if}} )</div>
|
||
</button>
|
||
<div class="file-upload-view-list am-flex-row am-flex-wrap forminput-gap-10 {{if empty($v.com_data.form_value)}}file-upload-hidden{{/if}}">
|
||
{{if is_array($v1[$v2.form_name])}}
|
||
{{foreach $v1[$v2.form_name] as $key => $upload_data}}
|
||
{{if !empty($upload_data.url)}}
|
||
<div data-index="{{$key}}" data-id="{{$v.id}}" data-subform-index-id="{{$v2.id}}" data-subform-index="{{$k1}}" class="file-upload-view-item">
|
||
<div class="file-upload-view-close file-abs-close forminput-cursor-p">
|
||
<i class="iconfont icon-close"></i>
|
||
</div>
|
||
<div class="am am-figure am-figure-default am-no-layout file-upload-view-item-img file-upload-view-item-preview">
|
||
<img src="{{$upload_data.url}}" data-rel="{{$upload_data.url}}" style="width: 100%;height: 100%;object-fit: contain;">
|
||
</div>
|
||
<div class="file-upload-view-item-info">
|
||
<div class="am-flex-row align-items-center upload-title">
|
||
{{if !empty($upload_data.name)}}
|
||
<span class="am-text-truncate">{{:pathinfo($upload_data.name, PATHINFO_FILENAME)}}</span>
|
||
{{if !empty($upload_data.ext)}}<span>{{$upload_data.ext}}</span>{{/if}}
|
||
{{/if}}
|
||
</div>
|
||
{{if !empty($upload_data.size)}}<div class="mb-2 upload-size">{{:AnnexSizeToUnit($upload_data.size)}}</div>{{/if}}
|
||
</div>
|
||
</div>
|
||
{{/if}}
|
||
{{/foreach}}
|
||
{{/if}}
|
||
</div>
|
||
<input type="hidden" name="{{$v.form_name}}[{{$k1}}][{{$v2.form_name}}]" value="{{:urlencode(base64_encode(json_encode($v1[$v2.form_name])))}}" />
|
||
</div>
|
||
{{elseif $v2.key eq 'upload-video'}}
|
||
<div class="am-flex-col forminput-gap-10">
|
||
<button class="plug-file-upload-submit am-flex-row align-items-center justify-content-center {{$form_input_item_content_class}}" style="{{$v2.common_style}}" data-dialog-type="video" data-is-direct="1" data-back-fun="ForminputUploadEvent" data-back-mark="{{$v2.id}}-{{$k1}}_{{$v.id}}">
|
||
<div class="upload-text am-text-truncate"><span style="color: #2A94FF;">请选择</span>(点击选择视频,{{if $v2.com_data.is_limit_num == '1' and !empty($v2.com_data.limit) }}最多{{:$v2.com_data.limit}}个{{/if}}{{if $v2.com_data.is_limit_size == '1' and !empty($v2.com_data.upload_size) }}、最多{{:$v2.com_data.upload_size}}MB{{/if}} )</div>
|
||
</button>
|
||
<div class="file-upload-view-list am-flex-row am-flex-wrap forminput-gap-10 {{if empty($v.com_data.form_value)}}file-upload-hidden{{/if}}">
|
||
{{if is_array($v1[$v2.form_name])}}
|
||
{{foreach $v1[$v2.form_name] as $key => $upload_data}}
|
||
{{if !empty($upload_data.url)}}
|
||
<div data-index="{{$key}}" data-id="{{$v.id}}" data-subform-index-id="{{$v2.id}}" data-subform-index="{{$k1}}" class="file-upload-view-item">
|
||
<div class="file-upload-view-close file-abs-close forminput-cursor-p">
|
||
<i class="iconfont icon-close"></i>
|
||
</div>
|
||
<div class="file-upload-view-item-video file-upload-view-item-preview">
|
||
<i class="iconfont icon-finish_zb forminput-cursor-p file-upload-bofang"></i>
|
||
<video src="{{$upload_data.url}}" style="width: 100%;height: 100%;object-fit: contain;"></video>
|
||
</div>
|
||
<div class="file-upload-view-item-info">
|
||
<div class="am-flex-row align-items-center upload-title">
|
||
{{if !empty($upload_data.name)}}
|
||
<span class="am-text-truncate">{{:pathinfo($upload_data.name, PATHINFO_FILENAME)}}</span>
|
||
{{if !empty($upload_data.ext)}}<span>{{$upload_data.ext}}</span>{{/if}}
|
||
{{/if}}
|
||
</div>
|
||
{{if !empty($upload_data.size)}}<div class="mb-2 upload-size">{{:AnnexSizeToUnit($upload_data.size)}}</div>{{/if}}
|
||
</div>
|
||
</div>
|
||
{{/if}}
|
||
{{/foreach}}
|
||
{{/if}}
|
||
</div>
|
||
<input type="hidden" name="{{$v.form_name}}[{{$k1}}][{{$v2.form_name}}]" value="{{:urlencode(base64_encode(json_encode($v1[$v2.form_name])))}}"" />
|
||
</div>
|
||
{{elseif $v2.key eq 'upload-attachments'}}
|
||
<div class="am-flex-col forminput-gap-10">
|
||
<button class="plug-file-upload-submit am-flex-row align-items-center justify-content-center {{$form_input_item_content_class}}" style="{{$v2.common_style}}" data-dialog-type="file" data-is-direct="1" data-back-fun="ForminputUploadEvent" data-back-mark="{{$v2.id}}-{{$k1}}_{{$v.id}}">
|
||
<div class="upload-text am-text-truncate"><span style="color: #2A94FF;">请选择</span>(点击选择文件,{{if $v2.com_data.is_limit_num == '1' and !empty($v2.com_data.limit) }}最多{{:$v2.com_data.limit}}个{{/if}}{{if $v2.com_data.is_limit_size == '1' and !empty($v2.com_data.upload_size) }}、最多{{:$v2.com_data.upload_size}}MB{{/if}} )</div>
|
||
</button>
|
||
<div class="file-upload-view-list am-flex-row am-flex-wrap forminput-gap-10 {{if empty($v.com_data.form_value)}}file-upload-hidden{{/if}}">
|
||
{{if is_array($v1[$v2.form_name])}}
|
||
{{foreach $v1[$v2.form_name] as $key => $upload_data}}
|
||
{{if !empty($upload_data.name)}}
|
||
<div data-index="{{$key}}" data-id="{{$v.id}}" data-subform-index-id="{{$v2.id}}" data-subform-index="{{$k1}}" class="file-upload-view-item file-upload-view-item-attachments-item">
|
||
<div class="am-flex-row align-items-center upload-title file-upload-view-item-preview">
|
||
<span class="am-text-truncate">{{:pathinfo($upload_data.name, PATHINFO_FILENAME)}}</span>
|
||
{{if !empty($upload_data.ext)}}<span>{{$upload_data.ext}}</span>{{/if}}
|
||
{{if !empty($upload_data.size)}}<span class="file-size">({{:AnnexSizeToUnit($upload_data.size)}})</span>{{/if}}
|
||
</div>
|
||
<div class="file-upload-view-close file-upload-view-attachments-close forminput-cursor-p">
|
||
<i class="iconfont icon-close"></i>
|
||
</div>
|
||
</div>
|
||
{{/if}}
|
||
{{/foreach}}
|
||
{{/if}}
|
||
</div>
|
||
<input type="hidden" name="{{$v.form_name}}[{{$k1}}][{{$v2.form_name}}]" value="{{:urlencode(base64_encode(json_encode($v1[$v2.form_name])))}}"" />
|
||
</div>
|
||
{{/if}}
|
||
</div>
|
||
{{/foreach}}
|
||
{{/if}}
|
||
</div>
|
||
{{/foreach}}
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
{{else/}}
|
||
<div class="subform-no-data">暂无可用字段</div>
|
||
{{/if}}
|
||
{{/if}}
|
||
</div>
|
||
</div>
|
||
{{/if}}
|
||
{{/foreach}}
|
||
</div>
|
||
|
||
<!-- 添加新选项的输入框 -->
|
||
<div class="am-popup am-radius" id="forminput-add-option-popup">
|
||
<div class="am-popup-inner">
|
||
<div class="am-popup-hd">
|
||
<h4 class="am-popup-title">添加新选项</h4>
|
||
<span data-am-modal-close class="am-close">×</span>
|
||
</div>
|
||
<div class="am-popup-bd">
|
||
<div class="am-form am-form-popup-fixed form-validation">
|
||
<div class="upgrade-content">
|
||
<input type="text" class="am-radius" required="required" autocomplete="off" data-validation-message="请输入选项名称" placeholder="请输入选项名称">
|
||
</div>
|
||
<div class="am-form-popup-submit">
|
||
<button type="button" class="am-btn am-btn-warning am-radius am-btn-xs am-margin-right-lg" data-am-modal-close>
|
||
<span>{{:MyLang('cancel_title')}}</span>
|
||
</button>
|
||
<button type="button" class="am-btn am-btn-primary am-radius am-btn-xs btn-loading-example add-option-confirm" data-am-loading="{spinner: 'circle-o-notch', loadingText:'{{:MyLang('save_title')}}'}">
|
||
<span>{{:MyLang('save_title')}}</span>
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="am-modal am-modal-no-btn" tabindex="-1" id="forminput-user-verify-win">
|
||
<div class="forminput-am-modal-dialog am-modal-dialog am-radius">
|
||
<div class="am-modal-hd">
|
||
<span>{{:MyLang('verify_images_title')}}</span>
|
||
<a href="javascript:;" class="am-close" data-am-modal-close>×</a>
|
||
</div>
|
||
<div class="am-modal-bd">
|
||
<div class="am-form-input-material">
|
||
<input type="text" minlength="4" maxlength="4" id="user-verify-win-img-value" data-validation-message="{{:MyLang('form_images_verify_message')}}" class="am-form-field am-radius input-padding-right-max" autocomplete="off" data-is-clearout="0" />
|
||
<div class="am-position-verify">
|
||
<img src="" class="am-cursor-pointer am-radius" id="user-verify-win-img" onClick="this.src='{{:MyUrl('index/forminput/verifyentry', ['type'=>isset($module_data['type']) ? $module_data['type'] : ''])}}'+(({{$url_model}} == 0) ? '&t=' : '?t=')+Math.random();" />
|
||
<a href="javascript:;" class="form-verify-tips am-radius" onClick="document.getElementById('user-verify-win-img').src='{{:MyUrl('index/forminput/verifyentry', ['type'=>isset($module_data['type']) ? $module_data['type'] : ''])}}{{if $url_model eq 0}}&t={{else /}}?t={{/if}}'+Math.random();">{{:MyLang('form_images_verify_button_text')}}</a>
|
||
</div>
|
||
<span class="am-material-bar"></span>
|
||
<label class="am-material-label">{{:MyLang('form_verify_title')}}</label>
|
||
</div>
|
||
<button type="button" class="am-btn am-btn-primary am-radius am-btn-md am-block am-margin-top-lg btn-loading-example user-verify-win-submit" data-am-loading="{spinner:'circle-o-notch', loadingText:'{{:MyLang('confirm_title')}}'}" data-win="1">
|
||
<i class="am-icon-check"></i>
|
||
<span>{{:MyLang('confirm_title')}}</span>
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="am-popup" id="forminput-upload-popup-preview">
|
||
<div class="am-popup-inner">
|
||
<div class="am-popup-hd">
|
||
<h4 class="am-popup-title">上传预览</h4>
|
||
<span data-am-modal-close class="am-close">×</span>
|
||
</div>
|
||
<div class="am-popup-bd">
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="am-modal am-modal-confirm" tabindex="-1" id="forminput-subform-data">
|
||
<div class="forminput-am-modal-dialog am-modal-dialog">
|
||
<div class="am-modal-hd">{{:MyLang('reminder_title')}}</div>
|
||
<div class="am-modal-bd">{{:MyLang('delete_confirm_tips')}}</div>
|
||
<div class="am-modal-footer">
|
||
<span class="am-modal-btn" data-am-modal-cancel>取消</span>
|
||
<span class="am-modal-btn" data-am-modal-confirm>确定</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<script>
|
||
function ForminputUploadEvent(e){
|
||
const upload_data = e.data[0] || {};
|
||
if (upload_data) {
|
||
// 获取当前选中的数据的id名称
|
||
let upload_id = e.mark;
|
||
// 当前选中数据的子表单id
|
||
let subform_id = e.mark;
|
||
let subform_index = '';
|
||
// 获取当前选中数据的索引id 如果不是子表单的话,直接使用传递的id
|
||
let subform_index_id = e.mark;
|
||
if (upload_id.indexOf('_') > -1) {
|
||
const split_id = JSON.parse(JSON.stringify(upload_id)).split('_');
|
||
upload_id = split_id[0];
|
||
if (upload_id.indexOf('-') > -1) {
|
||
const split_index = JSON.parse(JSON.stringify(upload_id)).split('-');
|
||
subform_index_id = split_index[0];
|
||
subform_index = split_index[1];
|
||
}
|
||
subform_id = split_id[1];
|
||
}
|
||
let find_id_data = $forminput_data_list .find(item => item.id == subform_id);
|
||
// 获取子表单里对应这一行的数据
|
||
if (find_id_data && find_id_data.key == 'subform') {
|
||
find_id_data = JSON.parse(JSON.stringify(find_id_data)).com_data.data_list[subform_index].data_list.find(item => item.id == subform_index_id);
|
||
}
|
||
const item_length = $('#' + upload_id).find('.file-upload-view-list .file-upload-view-item').length;
|
||
// 获取当前上传的key的名称
|
||
const find_key_name = find_id_data.key == 'upload-img' ? '图片' : find_id_data.key == 'upload-video' ? '视频' : '文件';
|
||
// 获取上传文件数量限制
|
||
let limit = find_id_data.com_data.limit || 0;
|
||
// 获取上传文件大小限制
|
||
let upload_size = find_id_data.com_data.upload_size || 0;
|
||
// 判断是否超出上传数量限制
|
||
if (find_id_data.com_data.is_limit_num == '1' && item_length >= limit) {
|
||
Prompt('最多上传' + limit + (find_id_data.key == 'upload-img' ? '张' : '个') + find_key_name);
|
||
return false;
|
||
}
|
||
// 判断是否超出上传大小限制
|
||
if (find_id_data.com_data.is_limit_size == '1' && upload_data.size > upload_size * 1024 * 1024) {
|
||
Prompt(find_key_name + '大小不能超过' + upload_size + 'MB');
|
||
return false;
|
||
}
|
||
// 真实数据组装
|
||
let new_html = '';
|
||
if (find_id_data.key == 'upload-img') {
|
||
new_html = ForminputFileUploadImg(item_length, upload_data, subform_id, subform_index_id, subform_index);
|
||
} else if (find_id_data.key == 'upload-video') {
|
||
new_html = ForminputFileUploadVideo(item_length, upload_data, subform_id, subform_index_id, subform_index);
|
||
} else if (find_id_data.key == 'upload-attachments') {
|
||
new_html = ForminputFileUploadAttachments(item_length, upload_data, subform_id, subform_index_id, subform_index);
|
||
}
|
||
const $element = $('#' + upload_id).find('.file-upload-view-list');
|
||
// 判断是否存在class, 存在则删除对应的class
|
||
if ($element.hasClass('file-upload-hidden')) {
|
||
$element.removeClass('file-upload-hidden');
|
||
}
|
||
$element.append(new_html);
|
||
// 将上传数据放置到数据中去
|
||
let upload_input_data = [];
|
||
$forminput_data_list.forEach(item => {
|
||
if (item.id == subform_id) {
|
||
let new_data = item;
|
||
let is_subform = false;
|
||
if (item.key == "subform") {
|
||
is_subform = true;
|
||
new_data = item.com_data.data_list[subform_index].data_list.find(item => item.id == subform_index_id);
|
||
}
|
||
new_data.com_data.form_value.push({
|
||
url: upload_data.url,
|
||
name: upload_data.original,
|
||
size: upload_data.size,
|
||
ext: upload_data.ext,
|
||
});
|
||
upload_input_data = JSON.parse(JSON.stringify(new_data.com_data.form_value));
|
||
if (is_subform) {
|
||
ForminputVerifyWhenDataChanges(item.id);
|
||
} else {
|
||
OnItemEvent({ id: item.id, key: item.key, value: new_data.com_data.form_value, is_error: '0', error_text: '' });
|
||
}
|
||
}
|
||
})
|
||
// 赋值
|
||
$('#' + upload_id).find('input').val(encodeURIComponent(CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(JSON.stringify(upload_input_data)))));
|
||
}
|
||
}
|
||
// 图片添加处理
|
||
function ForminputFileUploadImg(item_length, upload_data, id, subform_index_id, subform_index) {
|
||
// 上传文件名称
|
||
const upload_data_name = !IsEmpty(upload_data.original) ? upload_data.original : upload_data.name;
|
||
let index = upload_data_name.lastIndexOf('.'); // 获取最后一个/的位置
|
||
let upload_name = upload_data_name.substring(0, index);
|
||
const new_html = `<div data-index="`+ item_length +`" data-id="`+ id +`" data-subform-index-id="`+ subform_index_id +`" data-subform-index="`+ subform_index +`" class="file-upload-view-item">
|
||
<div class="file-upload-view-close file-abs-close forminput-cursor-p">
|
||
<i class="iconfont icon-close"></i>
|
||
</div>
|
||
<div class="am am-figure am-figure-default am-no-layout file-upload-view-item-img file-upload-view-item-preview">
|
||
<img src="`+ upload_data.url +`" data-rel="`+ upload_data.url +`" alt="`+ upload_data_name +`" style="width: 100%;height: 100%;object-fit: contain;">
|
||
</div>
|
||
<div class="file-upload-view-item-info">
|
||
<div class="am-flex-row align-items-center upload-title">
|
||
<span class="am-text-truncate">`+ upload_name +`</span><span>`+ upload_data.ext +`</span>
|
||
</div>
|
||
<div class="mb-2 upload-size">`+ AnnexSizeToUnit(upload_data.size) +`</div>
|
||
</div>
|
||
</div>`;
|
||
return new_html;
|
||
}
|
||
// 视频上传处理
|
||
function ForminputFileUploadVideo(item_length, upload_data, id, subform_index_id, subform_index) {
|
||
// 上传文件名称
|
||
const upload_data_name = !IsEmpty(upload_data.original) ? upload_data.original : upload_data.name;
|
||
let index = upload_data_name.lastIndexOf('.'); // 获取最后一个/的位置
|
||
let upload_name = upload_data_name.substring(0, index);
|
||
// 视频上传
|
||
const new_html = `<div data-index="`+ item_length +`" data-id="`+ id +`" data-subform-index-id="`+ subform_index_id +`" data-subform-index="`+ subform_index +`" class="file-upload-view-item">
|
||
<div class="file-upload-view-close file-abs-close forminput-cursor-p">
|
||
<i class="iconfont icon-close"></i>
|
||
</div>
|
||
<div class="file-upload-view-item-video file-upload-view-item-preview">
|
||
<i class="iconfont icon-finish_zb forminput-cursor-p file-upload-bofang"></i>
|
||
<video src="`+ upload_data.url +`" style="width: 100%;height: 100%;object-fit: contain;"></video>
|
||
</div>
|
||
<div class="file-upload-view-item-info">
|
||
<div class="am-flex-row align-items-center upload-title">
|
||
<span class="am-text-truncate">`+ upload_name +`</span><span>`+ upload_data.ext +`</span>
|
||
</div>
|
||
<div class="mb-2 upload-size">`+ AnnexSizeToUnit(upload_data.size) +`</div>
|
||
</div>
|
||
</div>`;
|
||
return new_html;
|
||
}
|
||
// 文件上传处理
|
||
function ForminputFileUploadAttachments(item_length, upload_data, id, subform_index_id, subform_index) {
|
||
// 上传文件名称
|
||
const upload_data_name = !IsEmpty(upload_data.original) ? upload_data.original : upload_data.name;
|
||
let index = upload_data_name.lastIndexOf('.'); // 获取最后一个.的位置
|
||
let upload_name, upload_ext;
|
||
|
||
// 处理没有扩展名的情况
|
||
if (index === -1) {
|
||
upload_name = upload_data_name;
|
||
} else {
|
||
upload_name = upload_data_name.substring(0, index);
|
||
}
|
||
|
||
// 计算文件大小
|
||
let fileSize = upload_data.size || 0;
|
||
let fileSizeStr = AnnexSizeToUnit(fileSize);
|
||
// 文件上传
|
||
const new_html = `<div data-index="`+ item_length +`" data-id="`+ id +`" data-subform-index-id="`+ subform_index_id +`" data-subform-index="`+ subform_index +`" class="file-upload-view-item file-upload-view-item-attachments-item">
|
||
<div class="am-flex-row align-items-center upload-title file-upload-view-item-preview" data-size="`+ fileSize +`">
|
||
<span class="am-text-truncate">`+ upload_name +`</span><span>`+ upload_data.ext +`</span>
|
||
<span class="file-size">(`+ fileSizeStr +`)</span>
|
||
</div>
|
||
<div class="file-upload-view-close file-upload-view-attachments-close forminput-cursor-p">
|
||
<i class="iconfont icon-close"></i>
|
||
</div>
|
||
</div>`;
|
||
return new_html;
|
||
}
|
||
</script> |