2025-09-23 13:22:38 +00:00
< div class = "forminput-data-content"
2025-10-26 07:57:22 +00:00
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)))}}"
2025-09-23 13:22:38 +00:00
data-address-url="{{:MyUrl('index/region/index')}}"
data-address-code-url="{{:MyUrl('index/region/codedata')}}"
2025-10-26 07:57:22 +00:00
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}}"
2025-09-26 13:03:41 +00:00
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')}}"
2025-09-23 13:22:38 +00:00
>
{{php}}
// pc全局配置
2025-10-26 07:57:22 +00:00
$form_input_style_settings_computer = $module_data['form_input_data']['config']['overall_config']['style_settings']['computer'];
2025-09-23 13:22:38 +00:00
// 输入框标题字体大小的控制类型
$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'];
// 模式
2025-10-26 07:57:22 +00:00
$form_input_mode_type_value = $module_data['form_input_data']['config']['overall_config']['type_value'];
2025-09-23 13:22:38 +00:00
// 左右还是上下的样式
$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'];
2025-09-26 13:03:41 +00:00
// 带其他的组件
$form_input_other_array = ['select', 'radio-btns'];
2025-09-23 13:22:38 +00:00
{{/php}}
2025-10-26 07:57:22 +00:00
< 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}}
2025-09-26 13:03:41 +00:00
{{if $v.is_enable eq '1'}}
2025-10-26 07:57:22 +00:00
< 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}}" >
2025-09-26 13:03:41 +00:00
{{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') }}
2025-10-26 07:57:22 +00:00
< 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}}" >
2025-09-26 13:03:41 +00:00
<!-- 标题 -->
< 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 >
2025-09-23 13:22:38 +00:00
< / div >
2025-09-26 13:03:41 +00:00
<!-- 帮助说明 -->
{{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 >
2025-09-23 13:22:38 +00:00
< / div >
{{/if}}
< / div >
2025-09-26 13:03:41 +00:00
{{/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}}
2025-09-23 13:22:38 +00:00
< / div >
2025-09-26 13:03:41 +00:00
{{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}}
2025-09-23 13:22:38 +00:00
< / div >
2025-09-26 13:03:41 +00:00
{{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}}"
2025-10-26 07:57:22 +00:00
>{{if !empty($v.com_data.form_value)}}{{$v.com_data.form_value}}{{/if}}< / textarea >
2025-09-26 13:03:41 +00:00
{{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}}
2025-09-23 13:22:38 +00:00
< / div >
2025-09-26 13:03:41 +00:00
{{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 >
2025-09-23 13:22:38 +00:00
< / div >
2025-09-26 13:03:41 +00:00
{{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" >
2025-10-26 07:57:22 +00:00
< 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" / >
2025-09-26 13:03:41 +00:00
< span class = "am-flex-row align-items-center forminput-divider" > -< / span >
2025-10-26 07:57:22 +00:00
< 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" / >
2025-09-26 13:03:41 +00:00
< / div >
{{else/}}
< div class = "form-table-search-section form-table-search-time am-flex-row forminput-w forminput-h align-items-center" >
2025-10-26 07:57:22 +00:00
< 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" / >
2025-09-26 13:03:41 +00:00
< span class = "am-flex-row align-items-center forminput-divider" > -< / span >
2025-10-26 07:57:22 +00:00
< 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" / >
2025-09-23 13:22:38 +00:00
< / div >
2025-09-26 13:03:41 +00:00
{{/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}}" >
2025-10-26 07:57:22 +00:00
< 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" / >
2025-09-26 13:03:41 +00:00
< i class = "iconfont icon-{{$v.com_data.icon_name}}" style = "color: 333;" > < / i >
2025-09-23 13:22:38 +00:00
< / div >
2025-09-26 13:03:41 +00:00
{{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" >
2025-09-23 13:22:38 +00:00
{{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}}
2025-10-26 07:57:22 +00:00
< 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}}" >
2025-09-26 13:03:41 +00:00
< 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 >
2025-09-23 13:22:38 +00:00
{{/foreach}}
2025-09-26 13:03:41 +00:00
< / div >
2025-09-23 13:22:38 +00:00
{{if $v.com_data.is_add_option == '1'}}
2025-09-26 13:03:41 +00:00
< div class = "add-option am-flex-row align-items-center forminput-gap-10 forminput-cursor-p add-option-max-width" >
2025-09-23 13:22:38 +00:00
< 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 >
2025-09-26 13:03:41 +00:00
{{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="请输入其他内容"
2025-10-26 07:57:22 +00:00
class="forminput-input-other forminput-no-border forminput-w forminput-h {{$form_input_item_size}}"
2025-09-26 13:03:41 +00:00
/>
< / div >
{{/if}}
{{/foreach}}
2025-09-23 13:22:38 +00:00
{{/if}}
2025-09-26 13:03:41 +00:00
< / 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 >
2025-10-26 07:57:22 +00:00
< 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}}" >
2025-09-26 13:03:41 +00:00
< 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 >
2025-09-23 13:22:38 +00:00
< / div >
2025-09-26 13:03:41 +00:00
< 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="请输入其他内容"
2025-10-26 07:57:22 +00:00
class="forminput-input-other forminput-no-border forminput-w forminput-h {{$form_input_item_size}}"
2025-09-26 13:03:41 +00:00
/>
< / div >
{{/if}}
{{/foreach}}
2025-09-23 13:22:38 +00:00
{{/if}}
2025-09-26 13:03:41 +00:00
{{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}}
2025-10-26 07:57:22 +00:00
< 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 >
2025-09-26 13:03:41 +00:00
{{/foreach}}
< / select >
2025-10-26 07:57:22 +00:00
< 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}}" >
2025-09-26 13:03:41 +00:00
< 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/}}
2025-10-26 07:57:22 +00:00
{{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}}
2025-09-26 13:03:41 +00:00
{{if in_array($d.value, $v.com_data.form_value)}}
2025-10-26 07:57:22 +00:00
< 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}}
2025-09-26 13:03:41 +00:00
{{/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}}
2025-09-23 13:22:38 +00:00
< / div >
< / div >
2025-09-26 13:03:41 +00:00
{{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}}" >
2025-09-23 13:22:38 +00:00
< / div >
2025-09-26 13:03:41 +00:00
{{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 >
2025-09-23 13:22:38 +00:00
< / div >
< / div >
2025-09-26 13:03:41 +00:00
{{else/}}
< span class = "file-title" style = "color:#606266;font-size:14px;width: auto;{{$form_input_item_content_style}}" > 暂无文件< / span >
2025-09-23 13:22:38 +00:00
{{/if}}
2025-09-26 13:03:41 +00:00
{{elseif $v.key eq 'phone'}}
2025-10-26 07:57:22 +00:00
<!-- 手机 - -->
2025-09-26 13:03:41 +00:00
< 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="请输入验证码"
2025-10-26 07:57:22 +00:00
class="forminput-input-verify forminput-no-border forminput-w forminput-h {{$form_input_item_size}}"
2025-09-26 13:03:41 +00:00
/>
2025-09-23 13:22:38 +00:00
< / div >
2025-09-26 13:03:41 +00:00
< 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 >
2025-09-23 13:22:38 +00:00
< / div >
2025-09-26 13:03:41 +00:00
{{/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" >
2025-10-26 07:57:22 +00:00
< 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}}" >
2025-09-26 13:03:41 +00:00
< 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 >
2025-09-23 13:22:38 +00:00
< / div >
2025-09-26 13:03:41 +00:00
< / 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 >
2025-09-23 13:22:38 +00:00
< / div >
2025-09-26 13:03:41 +00:00
< 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 >
2025-09-23 13:22:38 +00:00
< / div >
< / div >
2025-09-26 13:03:41 +00:00
< div class = "am-popper-arrow" > < / div >
2025-09-23 13:22:38 +00:00
< / div >
< / div >
< / div >
2025-09-26 13:03:41 +00:00
{{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="请输入详细地址"
2025-10-26 07:57:22 +00:00
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 >
2025-09-26 13:03:41 +00:00
< / div >
{{/if}}
2025-09-23 13:22:38 +00:00
< / div >
2025-09-26 13:03:41 +00:00
{{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}}
2025-09-23 13:22:38 +00:00
< / div >
2025-09-26 13:03:41 +00:00
< input type = "hidden" name = "{{$v.form_name}}" value = "{{:urlencode(base64_encode(json_encode($v.com_data.form_value)))}}" / >
2025-09-23 13:22:38 +00:00
< / div >
2025-09-26 13:03:41 +00:00
{{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)))}}" / >
2025-09-23 13:22:38 +00:00
< / div >
2025-09-26 13:03:41 +00:00
{{elseif $v.key eq 'upload-attachments'}}
2025-09-23 13:22:38 +00:00
< div class = "am-flex-col forminput-gap-10" >
2025-09-26 13:03:41 +00:00
< 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}}
2025-09-23 13:22:38 +00:00
< / div >
2025-09-26 13:03:41 +00:00
< 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}}" / >
2025-10-26 07:57:22 +00:00
< 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;" / >
2025-09-26 13:03:41 +00:00
< / 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 >
2025-09-23 13:22:38 +00:00
< / div >
2025-09-26 13:03:41 +00:00
< 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 >
2025-09-23 13:22:38 +00:00
{{/if}}
< / div >
< / div >
2025-09-26 13:03:41 +00:00
{{/foreach}}
< / div >
2025-09-23 13:22:38 +00:00
< / div >
< / div >
2025-09-26 13:03:41 +00:00
< div class = "forminput-table-body" >
< div class = "flex-1 am-flex-col subform-data-list" >
2025-10-26 07:57:22 +00:00
{{foreach $v.com_data.form_value as $k1=>$v1}}
2025-09-26 13:03:41 +00:00
< 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 >
2025-09-23 13:22:38 +00:00
< / div >
< / div >
< / div >
< / div >
2025-10-26 07:57:22 +00:00
{{if isset($v.com_data.children)}}
{{foreach $v.com_data.children as $k2=>$v2}}
2025-09-26 13:03:41 +00:00
< 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}}]"
2025-10-26 07:57:22 +00:00
value="{{$v1[$v2.form_name]}}"
2025-09-26 13:03:41 +00:00
{{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)}}
2025-10-26 07:57:22 +00:00
< div class = "forminput-cr-gray" > < span class = "limit-num" > {{:strlen($v1[$v2.form_name]) }}< / span > /{{$v2.com_data.max_num }}< / div >
2025-09-26 13:03:41 +00:00
{{/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}}]"
2025-10-26 07:57:22 +00:00
value="{{$v1[$v2.form_name]}}"
2025-09-26 13:03:41 +00:00
{{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}}"
2025-10-26 07:57:22 +00:00
>{{if !empty($v1[$v2.form_name])}}{{$v1[$v2.form_name]}}{{/if}}< / textarea >
2025-09-26 13:03:41 +00:00
{{if $v2.com_data.is_limit_num == '1' and !empty($v2.com_data.max_num)}}
2025-10-26 07:57:22 +00:00
< div class = "forminput-cr-gray forminput-textarea" > < span class = "limit-num" > {{:strlen($v1[$v2.form_name]) }}< / span > /{{$v2.com_data.max_num }}< / div >
2025-09-26 13:03:41 +00:00
{{/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}}]"
2025-10-26 07:57:22 +00:00
value="{{$v1[$v2.form_name]}}"
2025-09-26 13:03:41 +00:00
{{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" >
2025-10-26 07:57:22 +00:00
< 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" / >
2025-09-26 13:03:41 +00:00
< span class = "am-flex-row align-items-center forminput-divider" > -< / span >
2025-10-26 07:57:22 +00:00
< 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" / >
2025-09-26 13:03:41 +00:00
< / div >
{{else/}}
< div class = "form-table-search-section form-table-search-time am-flex-row forminput-w forminput-h align-items-center" >
2025-10-26 07:57:22 +00:00
< 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" / >
2025-09-26 13:03:41 +00:00
< span class = "am-flex-row align-items-center forminput-divider" > -< / span >
2025-10-26 07:57:22 +00:00
< 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" / >
2025-09-23 13:22:38 +00:00
< / div >
2025-09-26 13:03:41 +00:00
{{/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}}" >
2025-10-26 07:57:22 +00:00
< 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" / >
2025-09-26 13:03:41 +00:00
< i class = "iconfont icon-{{$v2.com_data.icon_name}}" style = "color: 333;" > < / i >
2025-09-23 13:22:38 +00:00
< / div >
2025-09-26 13:03:41 +00:00
{{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 >
2025-09-23 13:22:38 +00:00
{{foreach :array_values($v2.com_data.option_list) as $k=>$d}}
2025-10-26 07:57:22 +00:00
< option style = "color: #000" value = "{{$d.value}}" { { if isset ( $ v1 [ $ v2 . form_name ] ) and $ v1 [ $ v2 . form_name ] eq $ d . value } } selected = "selected" { { / if } } >
2025-09-26 13:03:41 +00:00
{{$d.name}}
< / option >
2025-09-23 13:22:38 +00:00
{{/foreach}}
2025-09-26 13:03:41 +00:00
< / 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" >
2025-10-26 07:57:22 +00:00
{{if empty($v1[$v2.form_name]) }}
2025-09-26 13:03:41 +00:00
< span class = "forminput-cr-gray" > {{$v2.com_data.placeholder}}< / span >
{{else/}}
{{foreach :array_values($v2.com_data.option_list) as $k=>$d}}
2025-10-26 07:57:22 +00:00
{{if $d.value == $v1[$v2.form_name]}}
2025-09-26 13:03:41 +00:00
< 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" >
2025-10-26 07:57:22 +00:00
< 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 = "" >
2025-09-26 13:03:41 +00:00
< 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}}
2025-10-26 07:57:22 +00:00
< 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}}" >
2025-09-26 13:03:41 +00:00
< 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 >
2025-09-23 13:22:38 +00:00
< / div >
2025-09-26 13:03:41 +00:00
{{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" >
2025-10-26 07:57:22 +00:00
{{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 >
2025-09-23 13:22:38 +00:00
{{/foreach}}
2025-09-26 13:03:41 +00:00
< / 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}}" >
2025-10-26 07:57:22 +00:00
{{if empty($v1[$v2.form_name]) }}
2025-09-26 13:03:41 +00:00
< span class = "forminput-cr-gray" > {{$v2.com_data.placeholder}}< / span >
{{else/}}
2025-10-26 07:57:22 +00:00
{{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}}
2025-09-26 13:03:41 +00:00
{{/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" >
2025-10-26 07:57:22 +00:00
{{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}}" >
2025-09-26 13:03:41 +00:00
< 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 >
2025-10-26 07:57:22 +00:00
< 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 = "请输入选项名称" >
2025-09-26 13:03:41 +00:00
{{/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 -->
2025-10-26 07:57:22 +00:00
< 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 >
2025-09-26 13:03:41 +00:00
{{elseif $v2.com_data.score_type eq 1}}
<!-- 评分样式2 -->
2025-10-26 07:57:22 +00:00
< 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 >
2025-09-26 13:03:41 +00:00
{{elseif $v2.com_data.score_type eq 2}}
<!-- 评分样式3 -->
2025-10-26 07:57:22 +00:00
< 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 >
2025-09-26 13:03:41 +00:00
{{/if}}
{{/foreach}}
2025-10-26 07:57:22 +00:00
< 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]}}" >
2025-09-26 13:03:41 +00:00
< / div >
{{elseif $v2.key eq 'text'}}
<!-- 文本 -->
2025-10-26 07:57:22 +00:00
< div class = "forminput-wrap item-small-size {{$form_input_item_size}}" style = "color:{{$v2.com_data.text_color}};" > {{$v1[$v2.form_name]}}< / div >
2025-09-26 13:03:41 +00:00
{{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;" / >
2025-09-23 13:22:38 +00:00
< / div >
2025-09-26 13:03:41 +00:00
{{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;" / >
2025-09-23 13:22:38 +00:00
{{/if}}
< / div >
2025-09-26 13:03:41 +00:00
{{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 >
2025-09-23 13:22:38 +00:00
{{/if}}
2025-09-26 13:03:41 +00:00
< / 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 >
2025-09-23 13:22:38 +00:00
< / div >
{{else/}}
2025-09-26 13:03:41 +00:00
< span class = "file-title" style = "color:#606266;font-size:14px;width: auto;" > 暂无文件< / span >
2025-09-23 13:22:38 +00:00
{{/if}}
2025-09-26 13:03:41 +00:00
{{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}}]"
2025-10-26 07:57:22 +00:00
value="{{$v1[$v2.form_name]}}"
2025-09-26 13:03:41 +00:00
{{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}}"
/>
2025-09-23 13:22:38 +00:00
< / div >
< / div >
2025-09-26 13:03:41 +00:00
{{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}}>
2025-10-26 07:57:22 +00:00
< 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}}" >
2025-09-26 13:03:41 +00:00
< 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 >
2025-09-23 13:22:38 +00:00
< / div >
2025-09-26 13:03:41 +00:00
< 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 >
2025-09-23 13:22:38 +00:00
< / div >
2025-09-26 13:03:41 +00:00
< 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 >
2025-09-23 13:22:38 +00:00
< / div >
2025-09-26 13:03:41 +00:00
< 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 >
2025-09-23 13:22:38 +00:00
< / div >
< / div >
2025-09-26 13:03:41 +00:00
< div class = "am-popper-arrow" > < / div >
2025-09-23 13:22:38 +00:00
< / div >
< / div >
< / div >
2025-09-26 13:03:41 +00:00
{{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}}" >
2025-10-26 07:57:22 +00:00
{{if is_array($v1[$v2.form_name])}}
{{foreach $v1[$v2.form_name] as $key => $upload_data}}
2025-09-26 13:03:41 +00:00
{{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 >
2025-10-26 07:57:22 +00:00
< input type = "hidden" name = "{{$v.form_name}}[{{$k1}}][{{$v2.form_name}}]" value = "{{:urlencode(base64_encode(json_encode($v1[$v2.form_name])))}}" / >
2025-09-23 13:22:38 +00:00
< / div >
2025-09-26 13:03:41 +00:00
{{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}}" >
2025-10-26 07:57:22 +00:00
{{if is_array($v1[$v2.form_name])}}
{{foreach $v1[$v2.form_name] as $key => $upload_data}}
2025-09-26 13:03:41 +00:00
{{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 >
2025-10-26 07:57:22 +00:00
< input type = "hidden" name = "{{$v.form_name}}[{{$k1}}][{{$v2.form_name}}]" value = "{{:urlencode(base64_encode(json_encode($v1[$v2.form_name])))}}" " / >
2025-09-23 13:22:38 +00:00
< / div >
2025-09-26 13:03:41 +00:00
{{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}}" >
2025-10-26 07:57:22 +00:00
{{if is_array($v1[$v2.form_name])}}
{{foreach $v1[$v2.form_name] as $key => $upload_data}}
2025-09-26 13:03:41 +00:00
{{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 >
2025-10-26 07:57:22 +00:00
< input type = "hidden" name = "{{$v.form_name}}[{{$k1}}][{{$v2.form_name}}]" value = "{{:urlencode(base64_encode(json_encode($v1[$v2.form_name])))}}" " / >
2025-09-23 13:22:38 +00:00
< / div >
2025-09-26 13:03:41 +00:00
{{/if}}
< / div >
{{/foreach}}
{{/if}}
< / div >
{{/foreach}}
< / div >
2025-09-23 13:22:38 +00:00
< / div >
< / div >
< / div >
2025-09-26 13:03:41 +00:00
{{else/}}
< div class = "subform-no-data" > 暂无可用字段< / div >
{{/if}}
2025-09-23 13:22:38 +00:00
{{/if}}
2025-09-26 13:03:41 +00:00
< / div >
2025-09-23 13:22:38 +00:00
< / div >
2025-09-26 13:03:41 +00:00
{{/if}}
2025-09-23 13:22:38 +00:00
{{/foreach}}
< / div >
2025-10-26 07:57:22 +00:00
<!-- 添加新选项的输入框 -->
< 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 >
2026-03-04 02:21:47 +00:00
< div class = "am-modal-bd am-padding-lg" >
< div class = "am-form-input-material am-margin-top" >
2025-10-26 07:57:22 +00:00
< 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 >
2025-09-23 13:22:38 +00:00
< script >
2025-09-26 13:03:41 +00:00
function ForminputUploadEvent(e){
2025-09-23 13:22:38 +00:00
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') {
2025-09-26 13:03:41 +00:00
new_html = ForminputFileUploadImg(item_length, upload_data, subform_id, subform_index_id, subform_index);
2025-09-23 13:22:38 +00:00
} else if (find_id_data.key == 'upload-video') {
2025-09-26 13:03:41 +00:00
new_html = ForminputFileUploadVideo(item_length, upload_data, subform_id, subform_index_id, subform_index);
2025-09-23 13:22:38 +00:00
} else if (find_id_data.key == 'upload-attachments') {
2025-09-26 13:03:41 +00:00
new_html = ForminputFileUploadAttachments(item_length, upload_data, subform_id, subform_index_id, subform_index);
2025-09-23 13:22:38 +00:00
}
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;
2025-10-26 07:57:22 +00:00
let is_subform = false;
2025-09-23 13:22:38 +00:00
if (item.key == "subform") {
2025-10-26 07:57:22 +00:00
is_subform = true;
2025-09-23 13:22:38 +00:00
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,
2025-09-26 13:03:41 +00:00
ext: upload_data.ext,
2025-09-23 13:22:38 +00:00
});
upload_input_data = JSON.parse(JSON.stringify(new_data.com_data.form_value));
2025-10-26 07:57:22 +00:00
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: '' });
}
2025-09-23 13:22:38 +00:00
}
})
// 赋值
$('#' + upload_id).find('input').val(encodeURIComponent(CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(JSON.stringify(upload_input_data)))));
}
}
// 图片添加处理
2025-09-26 13:03:41 +00:00
function ForminputFileUploadImg(item_length, upload_data, id, subform_index_id, subform_index) {
2025-09-23 13:22:38 +00:00
// 上传文件名称
2025-09-26 13:03:41 +00:00
const upload_data_name = !IsEmpty(upload_data.original) ? upload_data.original : upload_data.name;
2025-09-23 13:22:38 +00:00
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 >
2025-09-26 13:03:41 +00:00
< div class = "am am-figure am-figure-default am-no-layout file-upload-view-item-img file-upload-view-item-preview" >
2025-09-23 13:22:38 +00:00
< 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" >
2025-09-26 13:03:41 +00:00
< span class = "am-text-truncate" > `+ upload_name +`< / span > < span > `+ upload_data.ext +`< / span >
2025-09-23 13:22:38 +00:00
< / div >
2025-09-26 13:03:41 +00:00
< div class = "mb-2 upload-size" > `+ AnnexSizeToUnit(upload_data.size) +`< / div >
2025-09-23 13:22:38 +00:00
< / div >
< / div > `;
return new_html;
}
// 视频上传处理
2025-09-26 13:03:41 +00:00
function ForminputFileUploadVideo(item_length, upload_data, id, subform_index_id, subform_index) {
2025-09-23 13:22:38 +00:00
// 上传文件名称
2025-09-26 13:03:41 +00:00
const upload_data_name = !IsEmpty(upload_data.original) ? upload_data.original : upload_data.name;
2025-09-23 13:22:38 +00:00
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" >
2025-09-26 13:03:41 +00:00
< span class = "am-text-truncate" > `+ upload_name +`< / span > < span > `+ upload_data.ext +`< / span >
2025-09-23 13:22:38 +00:00
< / div >
2025-09-26 13:03:41 +00:00
< div class = "mb-2 upload-size" > `+ AnnexSizeToUnit(upload_data.size) +`< / div >
2025-09-23 13:22:38 +00:00
< / div >
< / div > `;
return new_html;
}
// 文件上传处理
2025-09-26 13:03:41 +00:00
function ForminputFileUploadAttachments(item_length, upload_data, id, subform_index_id, subform_index) {
2025-09-23 13:22:38 +00:00
// 上传文件名称
2025-09-26 13:03:41 +00:00
const upload_data_name = !IsEmpty(upload_data.original) ? upload_data.original : upload_data.name;
2025-09-23 13:22:38 +00:00
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;
2025-09-26 13:03:41 +00:00
let fileSizeStr = AnnexSizeToUnit(fileSize);
2025-09-23 13:22:38 +00:00
// 文件上传
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 +`" >
2025-09-26 13:03:41 +00:00
< span class = "am-text-truncate" > `+ upload_name +`< / span > < span > `+ upload_data.ext +`< / span >
2025-09-23 13:22:38 +00:00
< 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 >