addfield.php 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211
  1. <?php
  2. use yii\widgets\ActiveForm;
  3. ?>
  4. <div class="row">
  5. <div class="col-12">
  6. <?php $form = ActiveForm::begin(['options' => ['id'=>'modal-form','class' => 'form-horizontal'], 'enableClientValidation' => true]); ?>
  7. <?php
  8. echo $form->field($model, 'form_type', ['template' => '{label}<div class="col-md-10">{input}<div class="help-block"></div></div>','options' =>['class' => 'mb-3 row'],'inputOptions' =>['class' => 'form-select ', 'data-dselect-clearable'=>'true','placeholder'=>'','autocomplete'=>'off'],'labelOptions' => ['class' => 'col-md-2 col-form-label']])->dropDownList($model->getFormTypes(), ['prompt'=>'请选择']);
  9. ?>
  10. <?php
  11. echo $form->field($model, 'field', ['template' => '{label}<div class="col-md-10">{input}<div class="text-muted input-word-aux">提示:保留字"ext_type_",用于匹配栏目扩展配置,如 "ext_type_1"对应栏目配置的第一项</div><div class="help-block"></div></div>','options' =>['class' => 'mb-3 row '],'inputOptions' =>['class' => 'form-control ','placeholder'=>'','autocomplete'=>'off'],'labelOptions' => ['class' => 'col-md-2 col-form-label']]);
  12. ?>
  13. <?php
  14. echo $form->field($model, 'name', ['template' => '{label}<div class="col-md-10">{input}<div class="help-block"></div></div>','options' =>['class' => 'mb-3 row '],'inputOptions' =>['class' => 'form-control ','placeholder'=>'','autocomplete'=>'off'],'labelOptions' => ['class' => 'col-md-2 col-form-label']]);
  15. ?>
  16. <div id="setting-box">
  17. </div>
  18. <?php
  19. echo $form->field($model, 'tips', ['template' => '{label}<div class="col-md-10">{input}<div class="help-block"></div></div>','options' =>['class' => 'mb-3 row '],'inputOptions' =>['class' => 'form-control ','placeholder'=>'','autocomplete'=>'off'],'labelOptions' => ['class' => 'col-md-2 col-form-label']]);
  20. ?>
  21. <?php
  22. echo $form->field($model, 'form_attribute', ['template' => '{label}<div class="col-md-10">{input}<div class="text-muted input-word-aux">提示:可以通过此处加入javascript事件,支持js脚本代码</div><div class="help-block"></div></div>','options' =>['class' => 'mb-3 row ','id'=>'field_form_attribute'],'inputOptions' =>['class' => 'form-control layui-input','placeholder'=>'如:onfocus="alert(\'\')"','autocomplete'=>'off'],'labelOptions' => ['class' => 'col-md-2 col-form-label']])->textarea(['style'=>'height:70px']);
  23. ?>
  24. <?php
  25. echo $form->field($model, 'css', ['template' => '{label}<div class="col-md-10">{input}<div class="text-muted input-word-aux">提示:可以通过此处加入css代码,附加到元素style属性</div><div class="help-block"></div></div>','options' =>['class' => 'mb-3 row ','id'=>'field_css'],'inputOptions' =>['class' => 'form-control layui-input','placeholder'=>'如:width:100px;height:20px;color:#000;','autocomplete'=>'off'],'labelOptions' => ['class' => 'col-md-2 col-form-label']])->textarea(['style'=>'height:70px']);
  26. ?>
  27. <div class="mb-3 row">
  28. <label class="col-md-2 col-form-label" >字符长度</label>
  29. <div class="row col-md-10">
  30. <?php
  31. echo $form->field($model, 'min_length', ['template' => '{label}{input}','options' =>['class' => 'col-sm-auto'],'inputOptions' =>['class' => 'form-control','placeholder'=>'最小长度','autocomplete'=>'off'],'labelOptions' => ['class' => 'visually-hidden']]);
  32. ?>
  33. <?php
  34. echo $form->field($model, 'max_length', ['template' => '{label}{input}','options' =>['class' => 'col-sm-auto'],'inputOptions' =>['class' => 'form-control','placeholder'=>'最大长度','autocomplete'=>'off'],'labelOptions' => ['class' => 'visually-hidden']]);
  35. ?>
  36. <div class="text-muted input-word-aux">提示:系统将在表单提交时检测数据长度范围是否符合要求,如果不想限制长度请留空</div>
  37. </div>
  38. </div>
  39. <div class="mb-3 row">
  40. <label class="col-md-2 col-form-label" >正则校验</label>
  41. <div class="row col-md-10">
  42. <?php
  43. echo $form->field($model, 'pattern', ['template' => '{label}{input}','options' =>['class' => 'col-sm-auto'],'inputOptions' =>['class' => 'form-control','placeholder'=>'','autocomplete'=>'off'],'labelOptions' => ['class' => 'visually-hidden']]);
  44. ?>
  45. <select class="form-select col-md-4" data-dselect-clearable="true" id="pattern_select">
  46. <option value=""><?php echo Yii::t('attr','field_tips.normal_pattern');?></option>
  47. <option value="/^[0-9.-]+$/"><?php echo Yii::t('attr','field_tips.numeric');?></option>
  48. <option value="/^[0-9-]+$/"><?php echo Yii::t('attr','field_tips.int');?></option>
  49. <option value="/^[a-z]+$/i"><?php echo Yii::t('attr','field_tips.letter');?></option>
  50. <option value="/^[0-9a-z]+$/i"><?php echo Yii::t('attr','field_tips.num_letter');?></option>
  51. <option value="/^[\w\-\.]+@[\w\-\.]+(\.\w+)+$/"><?php echo Yii::t('attr','field_tips.email');?></option>
  52. <option value="/^[0-9]{5,20}$/"><?php echo Yii::t('attr','field_tips.qq');?></option>
  53. <option value="/^https?:\/\//"><?php echo Yii::t('attr','field_tips.hyper_link');?></option>
  54. <option value="/^(1)[0-9]{10}$/"><?php echo Yii::t('attr','field_tips.mobile');?></option>
  55. <option value="/^[0-9-]{6,13}$/"><?php echo Yii::t('attr','field_tips.tel');?></option>
  56. <option value="/^[0-9]{6}$/"><?php echo Yii::t('attr','field_tips.zipcode');?></option>
  57. </select>
  58. <div class="text-muted input-word-aux">提示:系统将通过此正则校验表单提交的数据合法性,如果不想校验数据请留空</div>
  59. </div>
  60. </div>
  61. <?php
  62. echo $form->field($model, 'error_tips', ['template' => '{label}<div class="col-md-10">{input}<div class="help-block"></div></div>','options' =>['class' => 'mb-3 row '],'inputOptions' =>['class' => 'form-control ','placeholder'=>'','autocomplete'=>'off'],'labelOptions' => ['class' => 'col-md-2 col-form-label']]);
  63. ?>
  64. <?php
  65. echo $form->field($model, 'is_unique', ['template' => '<label class="col-md-2 col-form-label">'.$model->getAttributeName('is_unique').'</label><div class="col-md-10">{input}{label}</div>','options' =>['class' => 'mb-3 row'],'inputOptions' =>['switch' => 'success','checked'=>$model->is_unique?true:false,'type'=>'checkbox','value'=>1],'labelOptions' => ['data-on-label' => '是','data-off-label' => '否']])->label('');
  66. ?>
  67. <?php
  68. echo $form->field($model, 'is_base', ['template' => '<label class="col-md-2 col-form-label">'.$model->getAttributeName('is_base').'</label><div class="col-md-10">{input}{label}<div class="text-muted input-word-aux">提示:开启后将在发布内容页左侧显示</div></div>','options' =>['class' => 'mb-3 row'],'inputOptions' =>['switch' => 'success','checked'=>$model->is_base?true:false,'type'=>'checkbox','value'=>1],'labelOptions' => ['data-on-label' => '是','data-off-label' => '否']])->label('');
  69. ?>
  70. <?php
  71. echo $form->field($model, 'is_search', ['template' => '<label class="col-md-2 col-form-label">'.$model->getAttributeName('is_search').'</label><div class="col-md-10">{input}{label}<div class="text-muted input-word-aux">提示:列表页将该字段加入信息筛选条件</div></div>','options' =>['class' => 'mb-3 row'],'inputOptions' =>['switch' => 'success','checked'=>$model->is_search?true:false,'type'=>'checkbox','value'=>1],'labelOptions' => ['data-on-label' => '是','data-off-label' => '否']])->label('');
  72. ?>
  73. <?php
  74. echo $form->field($model, 'is_add', ['template' => '<label class="col-md-2 col-form-label">'.$model->getAttributeName('is_add').'</label><div class="col-md-10">{input}{label}</div>','options' =>['class' => 'mb-3 row'],'inputOptions' =>['switch' => 'success','checked'=>$model->is_add?true:false,'type'=>'checkbox','value'=>1],'labelOptions' => ['data-on-label' => '是','data-off-label' => '否']])->label('');
  75. ?>
  76. <?php
  77. echo $form->field($model, 'is_add_admin', ['template' => '<label class="col-md-2 col-form-label">'.$model->getAttributeName('is_add_admin').'</label><div class="col-md-10">{input}{label}</div>','options' =>['class' => 'mb-3 row'],'inputOptions' =>['switch' => 'success','checked'=>$model->is_add_admin?true:false,'type'=>'checkbox','value'=>1],'labelOptions' => ['data-on-label' => '是','data-off-label' => '否']])->label('');
  78. ?>
  79. <?php
  80. echo $form->field($model, 'is_fullsearch', ['template' => '<label class="col-md-2 col-form-label">'.$model->getAttributeName('is_fullsearch').'</label><div class="col-md-10">{input}{label} <div class="text-muted input-word-aux">提示:该字段将作为全站检索信息时候的条件</div></div>','options' =>['class' => 'mb-3 row'],'inputOptions' =>['switch' => 'success','checked'=>$model->is_fullsearch?true:false,'type'=>'checkbox','value'=>1],'labelOptions' => ['data-on-label' => '是','data-off-label' => '否']])->label('');
  81. ?>
  82. <?php
  83. echo $form->field($model, 'is_omnipotent', ['template' => '<label class="col-md-2 col-form-label">'.$model->getAttributeName('is_omnipotent').'</label><div class="col-md-10">{input}{label}</div>','options' =>['class' => 'mb-3 row'],'inputOptions' =>['switch' => 'success','checked'=>$model->is_omnipotent?true:false,'type'=>'checkbox','value'=>1],'labelOptions' => ['data-on-label' => '是','data-off-label' => '否']])->label('');
  84. ?>
  85. <?php
  86. echo $form->field($model, 'is_position', ['template' => '<label class="col-md-2 col-form-label">'.$model->getAttributeName('is_position').'</label><div class="col-md-10">{input}{label}</div>','options' =>['class' => 'mb-3 row'],'inputOptions' =>['switch' => 'success','checked'=>$model->is_position?true:false,'type'=>'checkbox','value'=>1],'labelOptions' => ['data-on-label' => '是','data-off-label' => '否']])->label('');
  87. ?>
  88. <?php
  89. if($contentModel->type==1){
  90. echo $form->field($model, 'is_system', ['template' => '<label class="col-md-2 col-form-label">'.$model->getAttributeName('is_system').'</label><div class="col-md-10">{input}{label}</div>','options' =>['class' => 'mb-3 row'],'inputOptions' =>['switch' => 'success','checked'=>$model->is_system?true:false,'type'=>'checkbox','value'=>1],'labelOptions' => ['data-on-label' => '开启','data-off-label' => '关闭']])->label('');
  91. }
  92. ?>
  93. <div class="mb-3 row">
  94. <label class="col-md-2 col-form-label" >禁止用户组</label>
  95. <div class=" col-md-10">
  96. <ul class="list-group">
  97. <?php
  98. $group_list = $model->userGroupOptions();
  99. if(is_array($group_list))foreach($group_list as $key=>$value)
  100. {
  101. echo "<li class='list-group-item'><div class='form-check'><input type='checkbox' name='unset_group_ids[]' value='".$key."' title='".$value."' class='form-check-input'> <label class='form-check-label'>".$value."</label></div></li>";
  102. }
  103. ?>
  104. </ul>
  105. <div class="text-muted input-word-aux">提示:禁止后无法对该字段值设置</div>
  106. </div>
  107. </div>
  108. <div class="mb-3 row">
  109. <label class="col-md-2 col-form-label" >禁止角色</label>
  110. <div class=" col-md-10">
  111. <ul class="list-group">
  112. <?php
  113. $role_list = $model->roleOptions();
  114. if(is_array($role_list))foreach($role_list as $key=>$value)
  115. {
  116. $diabled = $key==1?'disabled':'';
  117. echo "<li class='list-group-item'><div class='form-check'><input type='checkbox' name='unset_role_ids[]' value='".$key."' title='".$value."' class='form-check-input' $diabled> <label class='form-check-label'>".$value."</label></div></li>";
  118. }
  119. ?>
  120. </ul>
  121. <div class="text-muted input-word-aux">提示:禁止后无法对该字段值设置</div>
  122. </div>
  123. </div>
  124. <?php ActiveForm::end(); ?>
  125. </div> <!-- end col -->
  126. </div>
  127. <script>
  128. $(document).ready(function(){
  129. $("#pattern_select").change(function(){
  130. $('#contentmodelfield-pattern').val($(this).val())
  131. })
  132. $(document).on("change", "#setting_field_type", function(){
  133. if($(this).val()!='varchar'){
  134. $('#min_number').show();
  135. }
  136. else
  137. {
  138. $('#min_number').hide();
  139. }
  140. })
  141. $("#contentmodelfield-form_type").change(function(){
  142. var selectedValue = $(this).val();
  143. $('#field_form_attribute').css('display','none');
  144. $('#field_css').css('display','none');
  145. $.each( ['<?php echo implode("','",\app\common\components\FormElements::getFieldsInfo('att_css_js'));?>'], function(i, n){
  146. if(selectedValue==n) {
  147. $('#field_form_attribute').css('display','');
  148. $('#field_css').css('display','');
  149. }
  150. });
  151. $.get('<?php echo Yii::$app->controller->createRealUrl('admin/contentmodel/fieldsetting');?>',{form_type:selectedValue},function(res){
  152. var data = res.data;
  153. if(data.field_basic_table=='1') {
  154. $("#contentmodelfield-is_system").attr('disabled',false);
  155. $("#contentmodelfield-is_system").attr("checked",true);
  156. } else {
  157. $("#contentmodelfield-is_system").attr('disabled',true);
  158. $("#contentmodelfield-is_system").attr("checked",false);
  159. }
  160. if(data.field_allow_search=='1') {
  161. $("#contentmodelfield-is_search").attr('disabled',false);
  162. $("#contentmodelfield-is_search").attr("checked",true);
  163. } else {
  164. $("#contentmodelfield-is_search").attr('disabled',true);
  165. $("#contentmodelfield-is_search").attr("checked",false);
  166. }
  167. if(data.field_allow_fullsearch=='1') {
  168. $("#contentmodelfield-is_fullsearch").attr('disabled',false);
  169. $("#contentmodelfield-is_fullsearch").attr("checked",true);
  170. } else {
  171. $("#contentmodelfield-is_fullsearch").attr('disabled',true);
  172. $("#contentmodelfield-is_fullsearch").attr("checked",false);
  173. }
  174. if(data.field_allow_isunique=='1') {
  175. $("#contentmodelfield-is_unique").attr('disabled',false);
  176. $("#contentmodelfield-is_unique").attr("checked",true);
  177. } else {
  178. $("#contentmodelfield-is_unique").attr('disabled',true);
  179. $("#contentmodelfield-is_unique").attr("checked",false);
  180. }
  181. $('#contentmodelfield-min_length').val(data.field_minlength);
  182. $('#contentmodelfield-max_length').val(data.field_maxlength);
  183. $('#setting-box').html(data.setting);
  184. })
  185. })
  186. })
  187. </script>