form.blade.php 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  1. <input type="hidden" name="course_id" class="form-control" value="{{$id}}"/>
  2. <input type="hidden" name="id" class="form-control" value="{{$coursevideo->id}}"/>
  3. <div class="form-group">
  4. {!! Form::label('name','章节标题:', ['class' => 'col-md-2 control-label']) !!}
  5. <div class="col-md-9">
  6. <input type="text" class="form-control" name="name" value="{{$coursevideo->name }}"/>
  7. </div>
  8. </div>
  9. <div class="form-group">
  10. {!! Form::label('name','章节目录:', ['class' => 'col-md-2 control-label']) !!}
  11. <div class="col-md-9">
  12. <select class="form-control m-b " name="parent_id">
  13. <option value="0">请选择上级目录 (顶级目录无需选择)</option>
  14. @foreach($coursevideos as $key => $val)
  15. <option @if($coursevideo->parent_id == $val->id) selected
  16. @endif value="{{$val->id}}">{{ $val->html }} @if($val->parent_id !=0 )
  17. ﹂@endif {{ $val->name }}</option>
  18. @endforeach
  19. </select>
  20. </div>
  21. </div>
  22. <div class="form-group">
  23. {!! Form::label('name','章节封面:', ['class' => 'col-md-2 control-label']) !!}
  24. <div class="col-md-2" id="AuthorAvatarPicker">选择图片</div>
  25. <div class="col-md-3">
  26. <input type="hidden" name="cover" value="{{ $coursevideo->cover }}"/>
  27. <img class="banner-image" src="{{ $coursevideo->cover }}"
  28. style="max-width:360px;max-height:360px" alt="">
  29. </div>
  30. </div>
  31. <div class="form-group" id="aetherupload-wrapper">
  32. {!! Form::label('name','上传视频:', ['class' => 'col-md-2 control-label']) !!}
  33. <div class="col-md-8" id="container">
  34. <button type="button" class="btn btn-primary btn-lg active" id="pickfiles">上传文件</button>
  35. {{-- <a id="pickfiles">上传文件</a>--}}
  36. <input type="hidden" name="resource" id="resource" value="{{$coursevideo->resource}}">
  37. <div class="progress">
  38. <div class="progress-bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100"
  39. style="width: 0%;">
  40. 0%
  41. </div>
  42. </div>
  43. {{-- <input type="file" id="aetherupload-resource" onchange="aetherupload(this).upload()"/>--}}
  44. {{-- <div class="progress " style="height: 6px;margin-bottom: 2px;margin-top: 10px;width: 200px;">--}}
  45. {{-- <div id="aetherupload-progressbar" style="background:blue;height:6px;width:0;"></div>--}}
  46. {{-- </div>--}}
  47. {{-- <span style="font-size:12px;color:#aaa;" id="aetherupload-output"></span>--}}
  48. {{-- <input type="hidden" name="resource" id="aetherupload-savedpath" value="{{$coursevideo->resource}}">--}}
  49. </div>
  50. </div>
  51. <div class="form-group">
  52. {!! Form::label('name','章节简介:', ['class' => 'col-md-2 control-label']) !!}
  53. <div class="col-md-9">
  54. <textarea class="form-control" name="description">{{$coursevideo->description}}</textarea>
  55. </div>
  56. </div>
  57. <div class="form-group">
  58. {!! Form::label('sort','排序:', ['class' => 'col-md-2 control-label']) !!}
  59. <div class="col-md-9">
  60. <input type="number" class="form-control" name="sort" value="{{$coursevideo->sort }}"/>
  61. </div>
  62. </div>
  63. <div class="hr-line-dashed"></div>
  64. <div class="form-group">
  65. <div class="col-md-offset-2 col-md-8 controls">
  66. <button type="submit" class="btn btn-primary">保存</button>
  67. </div>
  68. </div>
  69. {{--<script src="https://unpkg.com/qiniu-js@2.5.5/dist/qiniu.min.js"></script>--}}
  70. <script src="/js/qiniu.min.js"></script>
  71. <script>
  72. // $(function () {
  73. // $('.progress .progress-bar').width(20);
  74. // $('.progress .progress-bar').text(20 + '%');
  75. // })
  76. var uploader = Qiniu.uploader({
  77. runtimes: 'html5,flash,html4', //上传模式,依次退化
  78. browse_button: 'pickfiles', //上传选择的点选按钮,**必需**
  79. uptoken_url: '/admin/course/t', //Ajax请求upToken的Url,**强烈建议设置**(服务端提供)
  80. // uptoken : '', //若未指定uptoken_url,则必须指定 uptoken ,uptoken由其他程序生成
  81. // unique_names: true, // 默认 false,key为文件名。若开启该选项,SDK为自动生成上传成功后的key(文件名)。
  82. // save_key: true, // 默认 false。若在服务端生成uptoken的上传策略中指定了 `sava_key`,则开启,SDK会忽略对key的处理
  83. domain: 'http://resource.course.tianzhihua.cn/', //bucket 域名,下载资源时用到,**必需**
  84. get_new_uptoken: false, //设置上传文件的时候是否每次都重新获取新的token
  85. container: 'container', //上传区域DOM ID,默认是browser_button的父元素,
  86. max_file_size: '1000mb', //最大文件体积限制
  87. flash_swf_url: 'js/plupload/Moxie.swf', //引入flash,相对路径
  88. max_retries: 3, //上传失败最大重试次数
  89. dragdrop: true, //开启可拖曳上传
  90. drop_element: 'container', //拖曳上传区域元素的ID,拖曳文件或文件夹后可触发上传
  91. chunk_size: '4mb', //分块上传时,每片的体积
  92. auto_start: true, //选择文件后自动上传,若关闭需要自己绑定事件触发上传
  93. init: {
  94. 'FilesAdded': function (up, files) {
  95. plupload.each(files, function (file) {
  96. // 文件添加进队列后,处理相关的事情
  97. });
  98. },
  99. 'BeforeUpload': function (up, file) {
  100. // 每个文件上传前,处理相关的事情
  101. },
  102. 'UploadProgress': function (up, file) {
  103. // 每个文件上传时,处理相关的事情
  104. $('.progress .progress-bar').css('width', file.percent + '%');
  105. $('.progress .progress-bar').text(file.percent + '%');
  106. // console.log(file.percent)
  107. },
  108. 'FileUploaded': function (up, file, info) {
  109. console.log(up, file)
  110. var res = JSON.parse(info.response);
  111. $('#resource').val(res.key)
  112. },
  113. 'Error': function (up, err, errTip) {
  114. //上传出错时,处理相关的事情
  115. },
  116. 'UploadComplete': function () {
  117. //队列文件处理完毕后,处理相关的事情
  118. },
  119. 'Key': function (up, file) {
  120. // 若想在前端对每个文件的key进行个性化处理,可以配置该函数
  121. // 该配置必须要在 unique_names: false , save_key: false 时才生效
  122. var key = "";
  123. // do something with key here
  124. return key
  125. }
  126. }
  127. });
  128. </script>
  129. {{--<script type="text/javascript">--}}
  130. {{-- qiniu.upload({--}}
  131. {{-- runtimes: 'html5,flash,html4',--}}
  132. {{-- browse_button: 'AuthorAvatarPicker',--}}
  133. {{-- flash_swf_url: 'https://cdn.bootcss.com/plupload/2.1.1/Moxie.swf',--}}
  134. {{-- chunk_size: '4mb',--}}
  135. {{-- uptoken: 'xozWSPMxkMjIVoHg2JyXq4-7-oJaEADLOKHVR0vU:HpzPL-1S10uavBUePK5JcaoA4WY=:eyJkZWxldGVBZnRlckRheXMiOjcsInNjb3BlIjoianNzZGsiLCJkZWFkbGluZSI6MTUxOTM4NjQ4MX0=',--}}
  136. {{-- // uptoken_url: 'http://jssdk.demo.qiniu.io/uptoken',--}}
  137. {{-- domain: 'http://resource.course.tianzhihua.cn/',--}}
  138. {{-- get_new_uptoken: false,--}}
  139. {{-- auto_start: true,--}}
  140. {{-- max_retries: 3,--}}
  141. {{-- filters: {--}}
  142. {{-- max_file_size: '10000mb',--}}
  143. {{-- prevent_duplicates: false--}}
  144. {{-- // Specify what files to browse for--}}
  145. {{-- // mime_types: [--}}
  146. {{-- // {title : 'apk files', extensions : 'apk'} // 限定apk后缀上传格式上传--}}
  147. {{-- // ]--}}
  148. {{-- },--}}
  149. {{-- init: {--}}
  150. {{-- 'FilesAdded': (up, files) => {--}}
  151. {{-- console.log('文件就绪', files);--}}
  152. {{-- },--}}
  153. {{-- BeforeUpload: (up, file) => {--}}
  154. {{-- console.log('上传之前', file);--}}
  155. {{-- },--}}
  156. {{-- UploadProgress: (up, file) => {--}}
  157. {{-- console.log('上传中 file',file);--}}
  158. {{-- this.progress = file.percent + '%';--}}
  159. {{-- },--}}
  160. {{-- FileUploaded: (up, file, info) => {--}}
  161. {{-- console.log('文件上传完毕')--}}
  162. {{-- },--}}
  163. {{-- Error: (up, err, errTip) => {--}}
  164. {{-- console.log('上传失败', err);--}}
  165. {{-- },--}}
  166. {{-- Key: (up, file) => {}--}}
  167. {{-- }--}}
  168. {{-- });--}}
  169. {{--</script>--}}
  170. {{--<script src="{{ URL::asset('vendor/aetherupload/js/spark-md5.min.js') }}"></script><!--(可选)需要引入spark-md5.min.js,用以支持秒传功能-->--}}
  171. {{--<script src="{{ URL::asset('vendor/aetherupload/js/aetherupload.js') }}"></script><!--需要引入aetherupload.js-->--}}
  172. {{--<script>--}}
  173. {{-- // success(someCallback)中声名的回调方法需在此定义,参数someCallback可为任意名称,此方法将会在上传完成后被调用--}}
  174. {{-- // 可使用this对象获得resourceName,resourceSize,resourceTempBaseName,resourceExt,groupSubdir,group,savedPath等属性的值--}}
  175. {{-- someCallback = function () {--}}
  176. {{-- // Example--}}
  177. {{-- $('#result').append(--}}
  178. {{-- '<p>执行回调 - 文件已上传,原名:<span >' + this.resourceName + '</span> | 大小:<span >' + parseFloat(this.resourceSize / (1000 * 1000)).toFixed(2) + 'MB' + '</span> | 储存名:<span >' + this.savedPath.substr(this.savedPath.lastIndexOf('_') + 1) + '</span></p>'--}}
  179. {{-- );--}}
  180. {{-- }--}}
  181. {{--</script>--}}