1
0

evidencedetail.html 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582
  1. {extend name="public/layout" /} {block name="title"}客户见证编辑{/block} {block name="body"}
  2. <script src="/static/js/jquery.min.js"></script>
  3. <style type="text/css">
  4. html,
  5. body {
  6. display: block;
  7. width: 100%;
  8. background-color: #fff;
  9. }
  10. .layui-fluid {
  11. display: block;
  12. border-radius: 5px;
  13. background-color: #ffffff;
  14. padding: 15px 30px;
  15. }
  16. .layui-icon{font-size:18px !important;line-height: 38px;}
  17. .layui-input-inline{line-height: 38px;}
  18. .layui-input-inline input{margin-right: 10px;}
  19. .layui-form-item .layui-input-inline{}
  20. .input-indent-box-small{margin-left:10px;}
  21. .layui-tab {
  22. padding: 15px;
  23. height: 100%;
  24. }
  25. .layui-table-view .layui-table th,
  26. .layui-table-view .layui-table td {
  27. text-align: center;
  28. border-color: #B6CADE;
  29. }
  30. .layui-table thead tr,
  31. .layui-table-header {
  32. background-color: #D8E6F1;
  33. }
  34. .input-indent-box {
  35. display: inline;
  36. width: 80%;
  37. }
  38. .input-indent-box-small {
  39. display: inline;
  40. width: 20%;
  41. }
  42. .adding {
  43. cursor: pointer;
  44. }
  45. .upload-img .area i {
  46. font-size: 50px;
  47. color: #009688;
  48. }
  49. .evi-block {
  50. float: left;
  51. margin-right: 10px;
  52. }
  53. /*///*/
  54. .imageDiv {
  55. display: inline-block;
  56. width: 140px;
  57. height: 125px;
  58. -webkit-box-sizing: border-box;
  59. -moz-box-sizing: border-box;
  60. box-sizing: border-box;
  61. border: 1px dashed darkgray;
  62. background: #f8f8f8;
  63. position: relative;
  64. overflow: hidden;
  65. }
  66. .addImages {
  67. display: inline-block;
  68. width: 140px;
  69. height: 125px;
  70. -webkit-box-sizing: border-box;
  71. -moz-box-sizing: border-box;
  72. box-sizing: border-box;
  73. border: 1px dashed darkgray;
  74. background: #f8f8f8;
  75. position: relative;
  76. overflow: hidden;
  77. }
  78. .text-detail {
  79. margin-top: 40px;
  80. text-align: center;
  81. }
  82. .text-detail>span {
  83. font-size: 40px;
  84. }
  85. .imageDiv div {
  86. width: 100%;
  87. height: 100%;
  88. position: absolute;
  89. top: 0px;
  90. background-color: #e6e6e600;
  91. }
  92. .imageDiv div i {
  93. display: none;
  94. font-size: 31px;
  95. position: absolute;
  96. top: 37%;
  97. left: 40%;
  98. }
  99. .imageDiv div:hover {
  100. background-color: #e6e6e680;
  101. }
  102. .imageDiv div:hover i {
  103. display: block;
  104. cursor: pointer;
  105. }
  106. .rotate180 {
  107. -webkit-transform: rotate(180deg);
  108. transform: rotate(180deg);
  109. }
  110. .layui-edge.rotate180 {
  111. margin-top: -9px;
  112. }
  113. .layui-input-inline.input-longer-inline {
  114. width: 290px;
  115. }
  116. .goback {
  117. float: right;
  118. }
  119. .goback a {
  120. color: #269efb;
  121. }
  122. .goback i {
  123. position: relative !important;
  124. }
  125. .layui-btn-primary {
  126. color: #249EFB;
  127. border: 1px solid #249EFB;
  128. }
  129. .layui-btn-primary:hover {
  130. background-color: #E3F7FF;
  131. color: #249EFB;
  132. }
  133. .layui-card-body {
  134. padding: 10px 0px;
  135. }
  136. .layui-border-btn,.layui-border-btn:hover {
  137. background-color: #fff;
  138. color: #249EFB;
  139. border: 1px solid #249EFB;
  140. }
  141. .isimgupload{width:190px;height: 152px;}
  142. .imageDivss{position: absolute;top:0;left:0;width:100%;height: 100%;background: rgba(230,230,230,.5);display: none;}
  143. .imageDivss i{display: block;width:18px;height: 18px;position: absolute;top:0;left:0;bottom:0;right: 0;margin:auto;}
  144. .layui-upload-drag{width:100%;height: 90px;}
  145. </style>
  146. <body>
  147. <div class="layui-fluid">
  148. <div class="layui-card">
  149. <div class="layui-card-header ">
  150. <div class="layui-form-item">
  151. <div class="layui-inline">
  152. <strong>见证详情</strong>
  153. </div>
  154. </div>
  155. </div>
  156. <div class="layui-card-body">
  157. <form class="layui-form" enctype="multipart/form-data" lay-filter="evidence-form">
  158. <input name="id" type="hidden" value="{$evidence.id}" />
  159. <div class="layui-form-item">
  160. <label class="layui-form-label"><i style="color:red;">*</i>标题</label>
  161. <div class="layui-input-inline">
  162. <input class="layui-input inputBox" name="title" placeholder="请输入标题" type="text" value="">
  163. </div>
  164. </div>
  165. <div class="layui-form-item">
  166. <label class="layui-form-label"><i style="color:red;">*</i>分类</label>
  167. <div class="layui-input-inline">
  168. <select name="cate" lay-filter="type" id="label" lay-verify="required" lay-search>
  169. <option value="">请选择分类</option>
  170. {volist name="cates" id="vo"}
  171. <option value="{$vo.id}">{$vo.name}</option>
  172. {/volist}
  173. </select>
  174. </div>
  175. <i class="layui-icon layui-icon-add-circle adding" style="font-size: 32px" id="cate-add"></i>
  176. </div>
  177. <!-- //视频 -->
  178. <input id="category_name" type="hidden" value="evidence" />
  179. <input type="hidden" name="difference" value="{$evidence.difference}" />
  180. {if condition="$evidence.difference eq 1"}
  181. <div class="layui-form-item video">
  182. <div class="layui-form-item">
  183. <label class="layui-form-label">视频封面图</label>
  184. <div class="isimgupload layui-input-inline" style="position:relative;">
  185. <div class="layui-input-inline" id="upload-drag">
  186. {if condition="$evidence.cover neq ''"}
  187. <img class="fmimages" src="{$evidence.cover}" style="height: 100%;width:100%;">
  188. {else/}
  189. <div class="layui-upload-drag">
  190. <i class="layui-icon">&#xe681;</i>
  191. <p>上传图片</p>
  192. </div>
  193. {/if}
  194. </div>
  195. <div class="imageDivss"><i class="layui-icon layui-icon-delete" prop="del"></i></div>
  196. <input type="hidden" name="covers" id="covers" value="{$evidence.cover}" />
  197. </div>
  198. </div>
  199. <div class="layui-form-item">
  200. <label class="layui-form-label"></label>
  201. <div><i style="color:red;margin-right:5px;">*</i>视频封面比例建议按照全屏比例750X1334,或者宽高比例5:3,图片大小不超过1M</div>
  202. </div>
  203. <div class="layui-form-item">
  204. <label class="layui-form-label">分享封面</label>
  205. <div class="imglistarr" style="margin: 20px 10px 0px;overflow: hidden;display: inline-block;">
  206. <div class="addImages cover_share_img">
  207. {if $evidence.cover_share_img}
  208. <img src="{$evidence.cover_share_img}" alt="" style="width: 100%;height:100%">
  209. {else/}
  210. <div class="text-detail">
  211. <span>+</span>
  212. <p>上传分享封面</p>
  213. </div>
  214. {/if}
  215. </div>
  216. </div>
  217. </div>
  218. <div class="layui-form-item img">
  219. <label class="layui-form-label"></label>
  220. <div><i style="color:red;margin-right: 5px;">*</i>建议上传图片宽高比例5:4,图片大小不超过1M</div>
  221. </div>
  222. <label class="layui-form-label"><span style="color: red;">*</span>视频</label>
  223. <div class="layui-input-inline" style="width: 290px;display: block;" id="container">
  224. <a class="layui-btn btn layui-border-btn" id="selectfiles" href="javascript:void(0);">选择视频</a>
  225. <a class="layui-btn btn layui-border-btn" id="postfiles" href="javascript:void(0);">开始上传</a>
  226. <div id="ossfile"></div>
  227. <div id="symbshowed">
  228. <video style="margin-top:15px;" src="{$evidence.pics}" width="320" height="240" controls="controls"></video>
  229. </div>
  230. <div class="layui-form-mid layui-word-aux" style="color: red!important;margin-left:10px;">注:选择视频并上传,限制100M内</div>
  231. <!--报错信息返回展示-->
  232. <pre id="console"></pre>
  233. <input type="hidden" value="{$evidence.pics}" id="fileuri">
  234. <!--上传到OSS哪个文件下,在这里定义 -->
  235. <input type="hidden" value="dailyWechatArticle" id="wechat_label_name">
  236. </div>
  237. <div class="layui-form-item" style="clear:both;width:100%;">
  238. <label class="layui-form-label"><i style="color:red;">*</i> 视频格式:</label>
  239. <div class="layui-input-block lh45 mdl20" style="max-width: 300px !important;">
  240. <input type="radio" id="1" class="radio_input" lay-filter="video_type"
  241. name="video_type" value="0" title="全屏" {if $evidence.video_type == 0} checked {/if}>
  242. <input type="radio" id="2" class="radio_input" lay-filter="video_type"
  243. name="video_type" value="1" title="横屏" {if $evidence.video_type == 1} checked {/if}>
  244. </div>
  245. </div>
  246. </div>
  247. {else/}
  248. <div class="layui-form-item">
  249. <label class="layui-form-label"><span style="color: red;">*</span>配图片</label>
  250. <div class="picDiv" style="margin: 15px 15px 0px;padding-left: 100px;box-sizing: border-box;">
  251. {volist name="evidence.pics" id="vo"}
  252. <div class="imageDiv" data-id="{index}">
  253. <img src="{$vo}?x-oss-process=image/resize,l_125"
  254. class="layui-upload-img" width="100%" height="100%">
  255. <div><i class="layui-icon layui-icon-delete"></i></div>
  256. <input type="hidden" name="evidence_image_exist[]" value="{$vo}" />
  257. </div>
  258. {/volist}
  259. <div class="addImages" id="evidence_imgs">
  260. <div class="text-detail">
  261. <span>+</span>
  262. <p>选择单、多图</p>
  263. </div>
  264. </div>
  265. </div>
  266. </div>
  267. <div class="layui-form-item">
  268. <label class="layui-form-label"></label>
  269. <div><i style="color:red;margin-right: 5px;">*</i>建议上传图片宽高比例5:3,图片大小不超过1M</div>
  270. </div>
  271. <div class="layui-form-item">
  272. <label class="layui-form-label">分享封面</label>
  273. <div class="imglistarr" style="margin: 20px 10px 0px;overflow: hidden;display: inline-block;">
  274. <div class="addImages cover_share_img">
  275. {if $evidence.cover_share_img}
  276. <img src="{$evidence.cover_share_img}" alt="" style="width: 100%;height:100%">
  277. {else/}
  278. <div class="text-detail">
  279. <span>+</span>
  280. <p>上传分享封面</p>
  281. </div>
  282. {/if}
  283. </div>
  284. </div>
  285. </div>
  286. <div class="layui-form-item img">
  287. <label class="layui-form-label"></label>
  288. <div><i style="color:red;margin-right: 5px;">*</i>建议上传图片宽高比例5:4,图片大小不超过1M</div>
  289. </div>
  290. {/if}
  291. <div class="layui-form-item">
  292. <label class="layui-form-label">见证描述</label>
  293. <div class="layui-input-block">
  294. <textarea id="evidence_content" name="desc" placeholder="图片相关描述" autocomplete="off"
  295. class="layui-textarea"></textarea>
  296. </div>
  297. </div>
  298. <div class="layui-form-item submit-btn">
  299. <input type="hidden" name="id" value="{$evidence.id}">
  300. <input class="layui-btn layui-btn-primary" type="button" lay-submit
  301. lay-filter="layuiadmin-evidence-submit" style="margin-left:110px;" id="layuiadmin-evidence-submit" value="确认提交">
  302. </div>
  303. </form>
  304. </div>
  305. </div>
  306. </div>
  307. </body>
  308. {/block} {block name="js"}
  309. <script type="text/javascript" src="__STATIC__/js/plupload/js/plupload.full.min.js"></script>
  310. <script type="text/javascript" src="__STATIC__/js/plupload/ossupload.js"></script>
  311. <script type="text/javascript" src="__STATIC__/js/Sortable.js"></script>
  312. <script>
  313. layui.config({
  314. base: '__LAYUI__/' //静态资源所在路径
  315. ,
  316. urlbase: '/sys'
  317. }).extend({
  318. index: 'lib/index' //主入口模块
  319. }).use(['index', 'form', 'upload', 'layedit'], function () {
  320. var form = layui.form,
  321. upload = layui.upload,
  322. layedit = layui.layedit,
  323. files = [],
  324. $ = layui.jquery;
  325. form.render();
  326. //视频封面图
  327. upload.render({
  328. elem: '#upload-drag',
  329. accept: 'image',
  330. exts: 'png|jpg|jpeg',
  331. auto: false,
  332. field: 'cover',
  333. size: 3 * 1024,
  334. choose: function(obj) {
  335. obj.preview(function(index, file, result) {
  336. $('#upload-drag').html('<img class="fmimages" src="' + result + '" style="height: 100%;width:100%;">');
  337. });
  338. }
  339. });
  340. upload.render({
  341. elem: '.cover_share_img',
  342. accept: 'image',
  343. exts: 'png|jpg|jpeg',
  344. auto: false,
  345. field: 'cover_share_img',
  346. size: 3 * 1024,
  347. choose: function(obj) {
  348. obj.preview(function(index, file, result) {
  349. $('.cover_share_img').html('<img class="fmimages" src="' + result + '" style="height: 100%;width:100%;">');
  350. });
  351. }
  352. });
  353. $('.isimgupload').hover(function(){
  354. if($("#upload-drag:has(img.fmimages)").length>0){
  355. $('.imageDivss').show();
  356. }
  357. },function(){
  358. $('.imageDivss').hide();
  359. })
  360. $('.imageDivss').on('click', function(e) {
  361. var that = this;
  362. layer.confirm('确定删除该图片么?',{title: ['信息', 'color:#333333;background-color:#D8E6F1;'],}, function(index) {
  363. var imgDiv = $('#upload-drag').find('img');
  364. imgDiv.remove();
  365. $('#covers').val('');
  366. $('#upload-drag').html('<div class="layui-upload-drag"><i class="layui-icon">&#xe681;</i><p>上传图片</p></div>');
  367. layer.close(index);
  368. });
  369. });
  370. /////////
  371. var obj = {
  372. title: "{:$evidence['title']}",
  373. desc: "{:$evidence['desc']}",
  374. cate:"{:$evidence['cate_id']}"
  375. };
  376. // 给表单初始赋值,但是无法实现对复选框赋值
  377. form.val("evidence-form", obj);
  378. $('#select_cate').data('selectedid', "{:$evidence['cate']['id']}");
  379. $('#select_cate').val("{:$evidence['cate']['name']}");
  380. form.on('submit(layuiadmin-evidence-submit)', function (data) {
  381. var index = parent.layer.getFrameIndex(window.name);
  382. var formData = new FormData(data.form);
  383. //监听分类,去除图片或视频
  384. var radio = "{$evidence.difference}";
  385. formData.delete('evidence_image');
  386. if(radio == 1) {
  387. if($('#covers').val()){
  388. formData.append('covers',$('#covers').val());
  389. formData.delete('covers');
  390. }
  391. var video_url = $('#fileuri').val();
  392. formData.append('video_url',video_url);
  393. if (video_url=='') {
  394. layer.msg('请选择视频', {anim: 6,time: 1000,icon: 5});
  395. return false;
  396. }
  397. } else if(radio == 2) {
  398. for (i in files) {
  399. formData.append('evidence_image[]', files[i]);
  400. }
  401. var evidence_image_exist = formData.get('evidence_image_exist[0]');
  402. if (files.length==0 && evidence_image_exist ===null) {
  403. layer.msg('请至少选择一张图片', {anim: 6,time: 1000,icon: 5});
  404. return false;
  405. }
  406. }
  407. formData.append('cate', $('#label').val());
  408. $.ajax({
  409. url: '{:url("material/apieviupdate")}',
  410. type: 'post',
  411. data: formData,
  412. dataType: 'json',
  413. processData: false,
  414. contentType: false,
  415. success: function (res) {
  416. if (res.code === 0) {
  417. layer.msg(res.msg, {
  418. anim: 0,time: 1000,icon: 6,
  419. }, function() {
  420. parent.layui.table.reload('evidence-table');
  421. parent.layer.close(index);
  422. });
  423. } else {
  424. layer.msg(res.msg, {anim: 0,time: 1000,icon: 5});
  425. }
  426. }
  427. });
  428. return false;
  429. });
  430. $('.popwrapper').on('click', function (e) {
  431. if (!$(e.target).hasClass('cate-ele-group')) {
  432. $('#dropdown_cate').hide();
  433. $('#cate_arrow').removeClass('rotate180');
  434. }
  435. });
  436. ///////
  437. $('.select_cate_input').on('click', function () {
  438. $('#dropdown_cate').toggle();
  439. $('#cate_arrow').toggleClass('rotate180');
  440. });
  441. ////////
  442. $(".cate_option").on('click', function () {
  443. var cate_name = $(this).text();
  444. var cate_id = $(this).data('id');
  445. var select_cate = $("#select_cate");
  446. select_cate.val(cate_name);
  447. select_cate.data('selectedid', cate_id);
  448. select_cate.click();
  449. });
  450. ///
  451. $('.topselectbtn').on('click', function () {
  452. console.log($(this).data('ref'));
  453. var gonnado = $(this).data('ref');
  454. if (gonnado == 'addcate') {
  455. addcate();
  456. $('#select_cate').click();
  457. }
  458. });
  459. /////////
  460. $('#cate-add').on('click', function () {
  461. addcate();
  462. });
  463. var addcate = function () {
  464. layer.prompt({
  465. title: ['分类添加', 'color:#333333;background-color:#D8E6F1;'],
  466. }, function(value, index, elem) {
  467. var value = $.trim(value);
  468. if(value == '') {
  469. layer.msg('请输入分类名称', {anim: 6});
  470. return false;
  471. }
  472. if(value.length > 6) {
  473. layer.msg('分类名称超长', {anim: 6});
  474. return false;
  475. }
  476. $.post('{:url("material/apievidencecateadding")}', {
  477. 'cate-name': value
  478. }, function(res) {
  479. if(res.code == 0) {
  480. $('#label').append("<option selected value='"+res.data.id+"'>"+res.data.name+"</option>")
  481. // $("#select_community").val(res.data.name);
  482. // $("#select_community").attr('data-selectedid',res.data.id);
  483. form.render('select');
  484. layer.msg(res.msg, {
  485. anim: 0
  486. }, function() {
  487. layer.close(index); //再执行关闭
  488. });
  489. } else {
  490. layer.msg(res.msg, {
  491. anim: 6
  492. });
  493. }
  494. });
  495. });
  496. }
  497. upload.render({
  498. elem: '#evidence_imgs',
  499. accept: 'images',
  500. url: '/upload/',
  501. exts: 'jpg|png|bmp|jpeg|JPG|PNG|BMP|JPEG',
  502. field: 'evidence_image',
  503. size: 5 * 1024,
  504. auto: false,
  505. multiple: true,
  506. choose: function (obj) {
  507. files = obj.pushFile();
  508. length = $('.imageDiv').length;
  509. obj.preview(function (index, file, result) {
  510. length++;
  511. if (length > 9) {
  512. if (length == 10) layer.msg('限制九张图片以下');
  513. delete files[index];
  514. } else {
  515. $('.picDiv').prepend('<div class="imageDiv" data-id="' + index + '"><img src="' + result + '" alt="' + file.name + '" class="layui-upload-img" width="100%" height="100%"><div><i class="layui-icon layui-icon-delete"></i></div></div>');
  516. }
  517. });
  518. }
  519. });
  520. $('.picDiv').on('click', 'i', function () {
  521. var that = this;
  522. layer.confirm('确定删除该图片么?', function (index) {
  523. var imgDiv = $(that).closest('.imageDiv');
  524. if (id = imgDiv.data('id')) {
  525. delete files[id];
  526. }
  527. imgDiv.remove();
  528. layer.close(index);
  529. });
  530. });
  531. });
  532. </script>
  533. {/block}