info.blade.php 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. @extends('admin.layouts')
  2. @section('css')
  3. <link href="/assets/global/vendor/dropify/dropify.min.css" rel="stylesheet">
  4. <link href="/assets/global/vendor/bootstrap-select/bootstrap-select.min.css" rel="stylesheet">
  5. @endsection
  6. @section('content')
  7. <div class="page-content container">
  8. <div class="panel">
  9. <div class="panel-heading">
  10. <h2 class="panel-title">{{isset($article)?'添加':'编辑'}} 文章</h2>
  11. </div>
  12. @if($errors->any())
  13. <x-alert type="danger" :message="$errors->all()"/>
  14. @endif
  15. @if (Session::has('successMsg'))
  16. <x-alert type="success" :message="Session::get('successMsg')"/>
  17. @endif
  18. <div class="panel-body">
  19. <form action="{{ isset($article) ? route('admin.article.update', $article) : route('admin.article.store')}}" class="form-horizontal" enctype="multipart/form-data"
  20. method="post">@csrf
  21. @isset($article)
  22. @method('PUT')
  23. @endisset
  24. <div class="form-group row">
  25. <label class="col-form-label col-md-2" for="type"> 类 型 </label>
  26. <div class="col-md-10 d-flex align-items-center">
  27. <div class="radio-custom radio-primary radio-inline">
  28. <input type="radio" name="type" value="1" checked/>
  29. <label for="type">文章</label>
  30. </div>
  31. <div class="radio-custom radio-primary radio-inline">
  32. <input type="radio" name="type" value="2"/>
  33. <label for="type">公告</label>
  34. </div>
  35. </div>
  36. </div>
  37. <div class="form-group row">
  38. <label class="col-form-label col-md-2" for="title"> 标 题 </label>
  39. <div class="col-md-4">
  40. <input type="text" class="form-control" name="title" id="title" autofocus required/>
  41. </div>
  42. </div>
  43. <div class="form-group row article">
  44. <label class="col-form-label col-md-2" for="category"> 类 别 </label>
  45. <div class="col-md-4">
  46. @if(isset($categories))
  47. <input type="text" class="form-control" list="category_list" id="category" name="category"/>
  48. <datalist id="category_list">
  49. @foreach($categories as $category)
  50. <option value="{{$category->category}}">{{$category->category}}</option>
  51. @endforeach
  52. </datalist>
  53. @else
  54. <input type="text" class="form-control" id="category" name="category"/>
  55. @endif
  56. <span class="text-help"> 同一类别将归类与同一文件夹下 </span>
  57. </div>
  58. </div>
  59. <div class="form-group row">
  60. <label class="col-form-label col-md-2" for="language"> 语 言 </label>
  61. <div class="col-md-4">
  62. <select class="form-control" data-plugin="selectpicker" id="language" name="language" data-style="btn-outline btn-primary">
  63. @foreach (config('common.language') as $key => $value)
  64. <option value="{{$key}}">
  65. <i class="fi fi-{{$value[1]}}"></i> <span style="padding: inherit;">{{$value[0]}}</span>
  66. </option>
  67. @endforeach
  68. </select>
  69. </div>
  70. </div>
  71. <div class="form-group row article">
  72. <label class="col-form-label col-md-2" for="sort"> 排 序 </label>
  73. <div class="col-md-2">
  74. <input type="number" class="form-control" name="sort" id="sort" value="10" min="0" max="255" required/>
  75. <span class="text-help"> 值越高显示时越靠前 </span>
  76. </div>
  77. </div>
  78. <div class="form-group row">
  79. <label class="col-form-label col-md-2" for="logo"> 头 图 </label>
  80. <div class="col-md-4" id="logoUpload">
  81. <input type="file" id="logo" name="logo" data-plugin="dropify" data-default-file="{{asset($article->logo ?? '/assets/images/default.png')}}"/>
  82. <span class="text-help"> 推荐尺寸:100x75 </span>
  83. </div>
  84. </div>
  85. <div class="form-group row">
  86. <label class="col-form-label col-md-2" for="content"> 内 容 </label>
  87. <div class="col-md-10">
  88. <textarea class="form-control" name="content">
  89. @isset($article)
  90. {!! $article->content !!}
  91. @endisset
  92. </textarea>
  93. </div>
  94. </div>
  95. <div class="form-actions text-right">
  96. <div class="btn-group">
  97. <a href="{{route('admin.article.index')}}" class="btn btn-danger">返 回</a>
  98. <button type="submit" class="btn btn-success">提 交</button>
  99. </div>
  100. </div>
  101. </form>
  102. </div>
  103. </div>
  104. </div>
  105. @endsection
  106. @section('javascript')
  107. <script src="/assets/global/vendor/dropify/dropify.min.js"></script>
  108. <script src="/assets/global/js/Plugin/dropify.js"></script>
  109. <script src="/assets/custom/tinymce/tinymce.min.js"></script>
  110. <script src="/assets/global/vendor/bootstrap-select/bootstrap-select.min.js"></script>
  111. <script src="/assets/global/js/Plugin/bootstrap-select.js"></script>
  112. <script>
  113. @isset($article)
  114. $(document).ready(function() {
  115. $("input[name='type'][value='{{$article->type}}']").click();
  116. $('#title').val(@json($article->title));
  117. $('#category').val(@json($article->category));
  118. $('#language').selectpicker('val', '{{$article->language}}');
  119. $('#sort').val('{{$article->sort}}');
  120. });
  121. @endisset
  122. tinymce.init({
  123. selector: 'textarea', // change this value according to your HTML
  124. plugins: 'advlist autolink autoresize autosave code emoticons help image importcss link lists media ' +
  125. 'preview quickbars searchreplace table visualblocks visualchars wordcount',
  126. toolbar: 'restoredraft undo redo | styles | bold italic forecolor backcolor emoticons| alignleft aligncenter alignright alignjustify' +
  127. ' | bullist numlist outdent indent | link image media',
  128. menubar: 'view edit insert format table tools help',
  129. link_default_target: '_blank',
  130. quickbars_insert_toolbar: 'quicktable image media',
  131. quickbars_selection_toolbar: 'bold italic underline | blocks | bullist numlist | blockquote quicklink',
  132. extended_valid_elements: 'i[class|aria-hidden]',
  133. language: '{{app()->getLocale()}}',
  134. content_css: '/assets/bundle/app.min.css',
  135. min_height: 500,
  136. max_height: 800,
  137. });
  138. $('input:radio[name=\'type\']').on('change', function() {
  139. const article = $('.article');
  140. if ($(this).val() === '1') {
  141. article.show();
  142. } else {
  143. article.hide();
  144. }
  145. });
  146. </script>
  147. @endsection