1
0

edit.html 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342
  1. {extend name="public/layout" /} {block name="title"}文章修改{/block} {block name="head"} {include file="public/head"}
  2. <style>
  3. html {
  4. background: #fff;
  5. }
  6. @media screen and (max-width: 450px){
  7. .layui-form-item{
  8. position: relative;
  9. }
  10. .layui-form-item .layui-input-inline {
  11. padding-right: 40px !important;
  12. }
  13. .adding {
  14. position: absolute;
  15. right: 10px;
  16. top: 0;
  17. }
  18. }
  19. .xm-label-block{
  20. background-color: #249efb !important;
  21. }
  22. </style>
  23. {/block} {block name="body"}
  24. <body>
  25. <form class="layui-form" lay-filter="layuiadmin-app-form-list" id="layuiadmin-app-form-list" style="padding: 20px 30px 0 0;">
  26. <div class="layui-form-item">
  27. <label class="layui-form-label"><i style="color:red;">*</i>标题</label>
  28. <div class="layui-input-inline">
  29. <input type="text" name="title" lay-verify="required" placeholder="请输入标题" autocomplete="off" class="layui-input" value="{$data.title}">
  30. </div>
  31. </div>
  32. <div class="layui-form-item">
  33. <label class="layui-form-label"><i style="color:red;">*</i>分类</label>
  34. <div class="layui-input-inline">
  35. <select name="type" lay-filter="type" id="type" lay-verify="required" lay-search>
  36. <option value="">请选择分类</option>
  37. {volist name="type" id="t"}
  38. <option value="{$t.id}" {if condition="$data.type eq $t.id"}selected{/if}>{$t.name}</option>
  39. {/volist}
  40. </select>
  41. </div>
  42. <i class="layui-icon layui-icon-add-circle adding" style="font-size: 32px" id="addType"></i>
  43. </div>
  44. <div class="layui-form-item">
  45. <label class="layui-form-label">标签</label>
  46. <div class="layui-input-inline" id="label" style="width: 40%;">
  47. <!-- <select name="label" id="label" lay-verify="required">
  48. <option value="">请选择标签</option>
  49. {volist name="checked" id="t"}
  50. <option value="{$key}" {if condition="$data.label eq $key"}selected{/if}>{$t}</option>
  51. {/volist}
  52. </select> -->
  53. </div>
  54. <i class="layui-icon layui-icon-add-circle adding" style="font-size: 32px" id="addLabel"></i>
  55. </div>
  56. <div class="layui-form-item">
  57. <label class="layui-form-label"><i style="color:red;">*</i>封面图</label>
  58. <div class="layui-input-inline" id="upload-drag">
  59. <img src="{$data.cover_img}" style="height: 100%;width:100%;">
  60. </div>
  61. </div>
  62. <div class="layui-form-item">
  63. <label class="layui-form-label"></label>
  64. <div><i style="color:red;margin-right: 5px;">*</i>建议上传封面图片宽高比例5:3,图片大小不超过5M</div>
  65. </div>
  66. <div class="layui-form-item">
  67. <label class="layui-form-label">分享封面</label>
  68. <div class="layui-input-inline" id="upload-share-drag">
  69. {if $data.cover_share_img}
  70. <img src="{$data.cover_share_img}" style="height: 100%;width:100%;">
  71. {else/}
  72. <div class="layui-upload-drag">
  73. <i class="layui-icon">&#xe681;</i>
  74. <p>上传分享封面</p>
  75. </div>
  76. {/if}
  77. </div>
  78. </div>
  79. <div class="layui-form-item">
  80. <label class="layui-form-label"></label>
  81. <div><i style="color:red;margin-right: 5px;">*</i>建议上传封面图片宽高比例5:4,图片大小不超过5M</div>
  82. </div>
  83. <div class="layui-form-item">
  84. <label class="layui-form-label">详情</label>
  85. <div class="layui-input-block">
  86. <textarea placeholder="请输入内容" class="layui-textarea" id="content"
  87. style="border:0;padding:0;height: 180px;">{$data.content}</textarea>
  88. </div>
  89. </div>
  90. <div class="layui-form-item layui-hide">
  91. <input type="button" lay-submit lay-filter="layuiadmin-app-form-submit" id="layuiadmin-app-form-submit"
  92. value="确认添加">
  93. <input type="button" lay-submit lay-filter="layuiadmin-app-form-edit" id="layuiadmin-app-form-edit"
  94. value="确认编辑">
  95. </div>
  96. <input type="hidden" name="id" value="{$data.id}" />
  97. </form>
  98. </body>
  99. {/block} {block name="js"}
  100. <script src="__STATIC__/layui/layui/lay/modules/xm-select.js" type="text/javascript" charset="utf-8"></script>
  101. <script src="__STATIC__/layui/layui/layui.js"></script>
  102. <script src="__STATIC__/layui/ace/ace.js"></script>
  103. <!-- 配置文件 -->
  104. <script type="text/javascript" src="__STATIC__/ueditor/dist/utf8-php/ueditor.config.js"></script>
  105. <!-- 编辑器源码文件 -->
  106. <script type="text/javascript" src="__STATIC__/ueditor/dist/utf8-php/ueditor.all.js"></script>
  107. <!-- 实例化编辑器 -->
  108. <script type="text/javascript">
  109. var ue = UE.getEditor('content', {
  110. zIndex: 99
  111. });
  112. </script>
  113. <script>
  114. layui.config({
  115. base: '__LAYUI__/',
  116. urlbase: '/sys'
  117. }).extend({
  118. index: 'lib/index' //主入口模块
  119. }).use(['index', 'form', 'element', 'layedit', 'upload'], function () {
  120. var form = layui.form,
  121. layedit = layui.layedit,
  122. element = layui.element,
  123. upload = layui.upload,
  124. admin = layui.admin,
  125. $ = layui.jquery;
  126. //下拉框关联
  127. // var typeData = JSON.parse('{$label|raw}');
  128. form.on('select(type)', function (data) {
  129. // var typeJson = typeData[data.value];
  130. // var typeLabel = $('#label');
  131. // typeLabel.empty().append('<option value="">请选择标签</option>');
  132. // for (r in typeJson) {
  133. // typeLabel.append('<option value=' + r + '>' + typeJson[r] + '</option>');
  134. // }
  135. // form.render();
  136. selectdata(0);
  137. });
  138. //拖拽上传
  139. upload.render({
  140. elem: '#upload-drag',
  141. accept: 'image',
  142. exts: 'png|jpg|ico|jpeg|bmp',
  143. auto: false,
  144. field: 'cover_img',
  145. size: 5 * 1024,
  146. choose: function(obj) {
  147. obj.preview(function(index, file, result) {
  148. $('#upload-drag').html('<img src="' + result + '" style="height: 100%;width:100%;">');
  149. });
  150. }
  151. });
  152. upload.render({
  153. elem: '#upload-share-drag',
  154. url:'{:url("fileupload")}',
  155. accept: 'images',
  156. exts: 'jpg|png|bmp|jpeg|JPG|PNG|BMP|JPEG',
  157. auto: false,
  158. field: 'cover_share_img',
  159. size: 5 * 1024,
  160. choose: function(obj) {
  161. obj.preview(function(index, file, result) {
  162. $('#upload-share-drag').html('<img src="' + result + '" style="height: 100%;width:100%;">');
  163. });
  164. }
  165. });
  166. form.on('submit(layuiadmin-app-form-submit)', function(data) {
  167. var index = parent.layer.getFrameIndex(window.name);
  168. var formData = new FormData(data.form);
  169. ue.ready(function () {
  170. formData.append('content', ue.getContent());
  171. });
  172. var sd = layer.load(1, {
  173. shade: [0.8, '#000']
  174. });
  175. admin.req({
  176. url: '{:url("article/save")}',
  177. data: formData,
  178. type: 'post',
  179. processData: false,
  180. contentType: false,
  181. done: function(res) {
  182. if(res.code == 0) {
  183. layer.msg('添加成功', {
  184. anim: 0,time: 1000,icon: 6,
  185. });
  186. parent.layui.table.reload('layui-table-article');
  187. parent.layer.close(index);
  188. }else{
  189. layer.msg(res.msg, {anim: 0,time: 1000,icon: 5});
  190. }
  191. layer.close(sd);
  192. }
  193. });
  194. });
  195. //添加分类
  196. $('#addType').click(function(){
  197. layer.prompt({
  198. title: ['添加分类', 'color:#333333;background-color:#D8E6F1;'],
  199. }, function(value, index, elem) {
  200. var value = $.trim(value);
  201. if(value == '') {
  202. layer.msg('请输入分类名称', {anim: 0,time: 1000,icon: 5});
  203. return false;
  204. }
  205. if(value.length > 6) {
  206. layer.msg('分类名称超长', {anim: 0,time: 1000,icon: 5});
  207. return false;
  208. }
  209. $.post('{:url("article/addtype")}', {
  210. value: value
  211. }, function(res) {
  212. if(res.code == 0) {
  213. $('#type').append("<option selected value='"+res.data.id+"'>"+res.data.value+"</option>")
  214. form.render();
  215. layer.msg(res.msg, {
  216. anim: 0,time: 1000,icon: 6,
  217. }, function() {
  218. layer.close(index); //再执行关闭
  219. });
  220. } else {
  221. layer.msg(res.msg, {anim: 0,time: 1000,icon: 5});
  222. }
  223. });
  224. });
  225. });
  226. //添加分类下的标签
  227. $('#addLabel').click(function(){
  228. var checktTypeId = $('#type').val();
  229. if(checktTypeId == ''){
  230. layer.msg('请先选择归属分类', {anim: 0,time: 1000,icon: 5});
  231. return false;
  232. }
  233. layer.prompt({
  234. title: ['添加标签', 'color:#333333;background-color:#D8E6F1;'],
  235. }, function(value, index, elem) {
  236. var value = $.trim(value);
  237. if(value == '') {
  238. layer.msg('请输入标签名称', {anim: 0,time: 1000,icon: 5});
  239. return false;
  240. }
  241. if(value.length > 6) {
  242. layer.msg('标签名称超长', {anim: 0,time: 1000,icon: 5});
  243. return false;
  244. }
  245. $.post('{:url("article/addtype")}', {
  246. value: value , id: checktTypeId
  247. }, function(res) {
  248. if(res.code == 0) {
  249. // $('#label').append("<option value='"+res.data.id+"'>"+res.data.value+"</option>")
  250. selectdata(res.data.id);
  251. form.render();
  252. layer.msg(res.msg, {
  253. anim: 0,time: 1000,icon: 6,
  254. }, function() {
  255. layer.close(index); //再执行关闭
  256. });
  257. } else {
  258. layer.msg(res.msg, {anim: 0,time: 1000,icon: 5});
  259. }
  260. });
  261. });
  262. });
  263. //下拉多选
  264. var options = {
  265. el: '#label',
  266. name: 'label',//表单的name属性
  267. // layVerify: 'required',
  268. //layVerType: 'tips',//提示类型 同layui
  269. tips: '所属分类',
  270. toolbar: {
  271. //工具条,全选,清空,反选,自定义
  272. show: true,
  273. list: [
  274. 'ALL',
  275. 'CLEAR',
  276. 'REVERSE',
  277. // {
  278. // name: '添加分类',
  279. // icon: 'layui-icon layui-icon-add-circle',
  280. // method(data){
  281. // addtslabel();
  282. // }
  283. // }
  284. ]
  285. },
  286. data: [],
  287. };
  288. var label = xmSelect.render(options)
  289. $(function () {
  290. selectdata(0);
  291. });
  292. function selectdata(lid) {
  293. var type = $('#type').val();
  294. var zid = "{$data.id}";
  295. setTimeout(function () {
  296. //data是ajax异步获取的
  297. $.ajax({
  298. type: "get",
  299. url: "{:url('article/label_list')}",
  300. data: { id: type, zid: zid, lid: lid },
  301. dataType: 'json',
  302. success: function (data) {
  303. var data = data;
  304. //通过ajax 获取json数据,异步更新多选下拉框的值
  305. label.update({ data: data })
  306. }
  307. });
  308. }, 100);
  309. }
  310. var addtslabel = function() {
  311. layer.prompt({
  312. title: ['话术分类添加', 'color:#333333;background-color:#D8E6F1;'],
  313. }, function(value, index, elem) {
  314. $.post('{:url("talkskill/add_talkskill_label")}', {
  315. value: value
  316. }, function(res) {
  317. if(res.code == 0) {
  318. $(function(){
  319. selectdata(0);
  320. });
  321. layer.msg(res.msg, {anim: 0,time: 1000,icon: 6}, function() {
  322. layer.close(index); //再执行关闭
  323. });
  324. } else {
  325. layer.msg(res.msg, {anim: 0,time: 1000,icon: 5});
  326. }
  327. });
  328. });
  329. }
  330. });
  331. </script>
  332. {/block}