knowledge.js 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511
  1. var delFiles = []; //用于删除图片
  2. var filesContainer= {}; //存储最终要上传的图片
  3. var files ; //存储选择图片的数量
  4. var fContainer= {}; //用于传父级传变量,格式 parent.fContainer
  5. var depositImg =[];//用于存放弹窗图片
  6. layui.use(['form','layer','laydate','table','upload'],function(){
  7. var form = layui.form,
  8. layer = layui.layer,
  9. $ = layui.jquery,
  10. table = layui.table,
  11. upload = layui.upload;
  12. var tableIds = 'newsList';
  13. //楼盘列表
  14. var tableIns = table.render({
  15. elem: '#'+tableIds,
  16. url : '/newsknowledge/homeform',
  17. cellMinWidth : 95,
  18. method:'post',
  19. page : true,
  20. height : 600,
  21. limit : 20,
  22. id:'tablerReload',
  23. cols : [[
  24. {type: "checkbox", width:50},
  25. {type:'numbers'},
  26. {field: 'id', title: 'ID', width:80, align:"center",sort: true},
  27. {field: 'subject', title: '标题',align:'center',templet:function(d){
  28. // return '<a href="http://www.taofangwang.com/news/details/'+d.id+'/" target="_blank">'+d.subject+'</a>'
  29. return '<span>'+d.subject+'</span>'
  30. }},
  31. {field: 'name', title: '栏目',width:120, align:'center'},
  32. {field: 'clicks', title: '点击数',width:100, edit: 'text',align:'center',clicks: true,templet:"#clicksBox"},
  33. {field: 'sort', title: '排序',width:100, edit: 'text',align:'center',clicks: true,templet:"#sortBox"},
  34. {field: 'true_click', title: '真实点击数',width:120, align:'center',sort: true},
  35. {field: 'create_at', title: '添加时间',width:120, event:'sortData', align:'center',sort: true},
  36. {field: 'is_show', title: '审核',width:75, event:'housesNews', align:'center',templet:function (d) {
  37. if(d.is_show == 2){
  38. return '<input type="checkbox" value="'+d.id+'" name="'+d.is_show+'" lay-skin="switch" lay-filter="switchTest" lay-text="|">'
  39. } else {
  40. return '<input type="checkbox" checked value="'+d.id+'" name="'+d.is_show+'" lay-skin="switch" lay-filter="switchTest" lay-text="|">'
  41. }
  42. }},
  43. {title: '操作', width:100, templet:'#housesListBar',fixed:"right",align:"center"}
  44. ]]
  45. });
  46. table.reload('tablerReload'); //重新加载
  47. //加载省数据
  48. function loadProvince() {
  49. $.ajax({
  50. url : '/dictionarynews/pidlist',
  51. type : 'post',
  52. data : {'pid':0},//这里使用json对象
  53. success : function(data){
  54. var areaData = data.data;
  55. var proHtml = '';
  56. $.each(areaData,function (k,v) {
  57. proHtml += '<option value="' + v.id +'">' + v.name + '</option>';
  58. })
  59. //初始化省数据
  60. $('select[name=province]').append(proHtml);
  61. form.render();
  62. },
  63. fail:function(){
  64. }
  65. });
  66. }
  67. loadProvince();
  68. form.on('select(province)',function (data) {
  69. $.post('/dictionarynews/pidlist',{'pid':data.value},function (data) {
  70. $('select[name=label_id]').html('');
  71. var proHtml = '<option value="">请选择子类栏目</option>';
  72. if(data.code == 200){
  73. var areaData = data.data;
  74. for (var i = 0; i < areaData.length; i++) {
  75. proHtml += '<option value="' + areaData[i].id +'">' + areaData[i].name + '</option>';
  76. }
  77. //初始化省数据
  78. $('select[name=label_id]').append(proHtml);
  79. }
  80. form.render();
  81. })
  82. })
  83. //表格头部操作菜单
  84. var $ = layui.$, active = {
  85. addData: function(){ //获取选中数据
  86. var index = layui.layer.open({
  87. title : "添加资讯",
  88. type : 2,
  89. area:['80%','100%'],
  90. maxmin: true,
  91. content : "/newsknowledge/create",
  92. end:function () {
  93. table.reload('tablerReload');
  94. }
  95. })
  96. layui.layer.full(index);
  97. },
  98. reload:function () {
  99. var form = pfgs_serialize($('form'));
  100. console.log(form);
  101. var name = '';
  102. var id = '';
  103. if(form.input_house == 'name'){
  104. name = form.input_house_text;
  105. } else if(form.input_house == 'id'){
  106. id = form.input_house_text;
  107. }
  108. var city = '';
  109. if(form.province != ''){
  110. city = form.province;
  111. }
  112. if(form.label_id != '' && typeof form.label_id != 'undefined'){ //父类存在 子类不存在的情况
  113. city = form.label_id;
  114. }
  115. table.reload('tablerReload',{
  116. where:{
  117. id:id,
  118. name:name,
  119. city:city
  120. },
  121. page:{
  122. curr:1
  123. }
  124. })
  125. }
  126. };
  127. //监听指定开关
  128. form.on('switch(switchTest)', function(data){
  129. var state = '';
  130. if(data.elem.name == 1){
  131. state = 2;
  132. }else if(data.elem.name == 2){
  133. state = 1;
  134. }
  135. layer.confirm('确定要修改此操作吗?',{btn: ['确定', '取消']},function () {
  136. $.post('/newsknowledge/editfrom',{id:data.value,is_show:state},function (data) {
  137. if(data.data != null){
  138. layer.msg(ReturnInfo(data.data),{icon:5});
  139. return false;
  140. }
  141. layer.msg(data.msg);
  142. })
  143. },function (aa) {
  144. table.reload('tablerReload'); //重新加载
  145. })
  146. });
  147. $('.demoTable .layui-btn').on('click', function(){
  148. var type = $(this).data('type');
  149. active[type] ? active[type].call(this) : '';
  150. });
  151. /* 列表操作 edit 修改后执行 2018.7.24*/
  152. table.on('edit('+tableIds+')', function(obj){
  153. var data = obj.data;
  154. var event = obj.field;
  155. switch (event){
  156. case 'clicks':
  157. $.post("/newsknowledge/editfrom",{id:data.id,clicks:obj.value,},function (data) {
  158. if(data.data != null){
  159. layer.msg(ReturnInfo(data.data),{icon:5});
  160. return false;
  161. }
  162. layer.msg(data.msg)
  163. })
  164. break;
  165. case 'sort':
  166. $.post("/newsknowledge/editfrom",{id:data.id,sort:obj.value,},function (data) {
  167. if(data.data != null){
  168. layer.msg(ReturnInfo(data.data),{icon:5});
  169. return false;
  170. }
  171. layer.msg(data.msg)
  172. })
  173. break;
  174. }
  175. })
  176. //表格右边操作栏目
  177. table.on('tool('+tableIds+')', function(obj){
  178. var data = obj.data;
  179. if(obj.event === 'edit'){ //编辑操作
  180. var index = layui.layer.open({
  181. title : "编辑资讯",
  182. type : 2,
  183. area:['','100%'],
  184. maxmin: true,
  185. content : "/newsknowledge/edit?id="+data.id
  186. })
  187. layui.layer.full(index);
  188. }
  189. });
  190. //添加and修改图片
  191. upload.render({
  192. elem: '#upload_edit',
  193. url: '/news/newseditform'
  194. ,data:{token:csrfToken}
  195. ,multiple: true
  196. ,number:3
  197. ,auto:false
  198. ,size:1000 //限制上传图片的大小,单位为KB
  199. ,exts: 'png|jpg|jpeg' //只允许上传压缩文件
  200. ,bindAction:'#addcity'
  201. ,choose: function(obj){
  202. //将每次选择的文件追加到文件队列
  203. files = obj.pushFile();
  204. //预读本地文件,如果是多文件,则会遍历。(不支持ie8/9)
  205. obj.preview(function(index, file, result){
  206. depositImg.push({src:result,data:file});
  207. filesContainer[index] = file;
  208. $('#popup_1_imgBox').append('<div class="layui-upload-img"><div class="delete-list" id="delimg"><i class="layui-icon fa-trash-o" >&#xe640;</i></div><img delIdentification="'+index+'" src="'+ result +'" alt="'+ file.name +'"></div>');
  209. });
  210. }
  211. });
  212. layer.photos({
  213. photos: '#demo2',
  214. closeBtn: 1
  215. ,anim: 5 //0-6的选择,指定弹出图片动画类型,默认随机(请注意,3.0之前的版本用shift参数)
  216. });
  217. // 正文上传事件
  218. $('#popup_2').on('click','.layui-upload-img',function(){
  219. // 处理选中与取消
  220. $(this).find('.layui_w_triangle').toggle('30',function(){
  221. $(this).parent().attr('data-id','pitch')
  222. if($(this).is(":hidden")){
  223. $(this).parent().removeAttr('data-id');
  224. var _fsrc = $(this).parents('.layui-upload-img').find('img.pitch_img').attr('src');
  225. for(i in depositImg){
  226. if(depositImg[i] == _fsrc){
  227. depositImg.splice(i, 1); //取消选择时,从数组中删除
  228. }
  229. }
  230. }else{
  231. $(this).parent().attr('data-id','pitch')
  232. var _fsrc = $(this).parents('.layui-upload-img').find('img.pitch_img').attr('src');
  233. depositImg.push(_fsrc); //选中的图片,把src地址存入数组
  234. }
  235. });
  236. })
  237. // 封面图功能
  238. $('.upload_box').on('click',function(){
  239. var txtData = UE.getEditor('editor_content').getContent();
  240. var imgReg = /<img.*?(?:>|\/>)/gi; //匹配图片(g表示匹配所有结果i表示区分大小写)
  241. var srcReg = /src=[\'\"]?([^\'\"]*)[\'\"]?/i; //匹配src属性
  242. var txtImg = txtData.match(imgReg);
  243. var index = layer.open({
  244. type: 2,
  245. title:'选择封面',
  246. skin: 'layui-layer-rim', //加上边框
  247. area: ['650px', '500px'], //宽高
  248. content : "/news/popup",
  249. success: function(layero, index){
  250. var poupBody = layer.getChildFrame('body', index); //获取当前弹窗的doc
  251. for(i in txtImg){
  252. var _src = txtImg[i].match(srcReg)[0];
  253. poupBody.find('#popup_2').append('<div class="layui-upload-img"><div class="layui_w_triangle"><img src="/static/images/triangle.png" alt="" /></div><img class="pitch_img" '+_src+'/></div>');
  254. }
  255. }
  256. })
  257. })
  258. $('#layui_confirm').on('click',function(){
  259. var doc = $('#demo2', window.parent.document); //JQ获取弹窗父层doc
  260. var index = parent.layer.getFrameIndex(window.name); //获取窗口索引
  261. if(depositImg.length > 3){
  262. layer.msg('封面图只能选择3张!!',{time:1000,shade:0.5})
  263. return false;
  264. }
  265. var _leng = doc.find('.layui-upload-img').length;
  266. if(_leng < 3){
  267. for(i in depositImg){
  268. if(typeof depositImg[i] == "object"){
  269. doc.append('<div class="layui-upload-img"><div class="delete-list" id="delimg"><i class="layui-icon fa-trash-o" >&#xe640;</i></div><img src="'+ depositImg[i].src +'" ></div>');
  270. parent.fContainer[i]=depositImg[i].data
  271. }else{
  272. doc.append('<div class="layui-upload-img"><div class="delete-list" id="delimg"><i class="layui-icon fa-trash-o" >&#xe640;</i></div><img src="'+ depositImg[i] +'" ></div>')
  273. parent.fContainer[i]=depositImg[i];
  274. }
  275. }
  276. }else if(_leng >3){
  277. layer.msg('封面图只能选择3张!!',{time:1000,shade:0.5})
  278. }
  279. parent.layer.close(index); //关闭iframe页面
  280. })
  281. delImg("popup_1_imgBox","delimg"); // 删除图片
  282. //添加
  283. form.on('submit(tijiao)',function (data) {
  284. var index = layer.msg('数据提交中,请稍候',{icon: 16,time:false,shade:0.8}); //数据提交提示
  285. var formData = new FormData($( "#signupForm" )[0]);
  286. for(i in fContainer){
  287. formData.append('img[]',fContainer[i]);
  288. }
  289. $.ajax({
  290. cache : true,
  291. type : "post",
  292. url : "/newsknowledge/createform",
  293. data : formData, // 你的formid
  294. contentType: false, //jax 中 contentType 设置为 false 是为了避免 JQuery 对其操作,从而失去分界符,而使服务器不能正常解析文件
  295. processData: false, //当设置为true的时候,jquery ajax 提交的时候不会序列化 data,而是直接使用data
  296. error : function(request) {
  297. layer.close(index);
  298. layer.alert("网络超时");
  299. },
  300. success : function(data) {
  301. if(data.data != null){
  302. layer.msg(ReturnInfo(data.data),{icon:5});
  303. return false;
  304. }
  305. layer.msg(data.msg)
  306. }
  307. });
  308. return false;
  309. })
  310. //修改
  311. form.on('submit(edit)',function (data) {
  312. layer.msg('数据提交中,请稍候',{icon: 16,time:false,shade:0.8}); //数据提交提示
  313. var formData = new FormData($( "#signupForm" )[0]);
  314. for(i in fContainer){
  315. formData.append('img[]',fContainer[i]);
  316. }
  317. //需要删除的图片
  318. if(delFiles.length > 0){
  319. $.each(delFiles,function (k,v) {
  320. formData.append('delimg[]',v);
  321. })
  322. }
  323. $.ajax({
  324. cache : true,
  325. type : "post",
  326. url : "/newsknowledge/editfrom",
  327. data : formData, // 你的formid
  328. contentType: false, //jax 中 contentType 设置为 false 是为了避免 JQuery 对其操作,从而失去分界符,而使服务器不能正常解析文件
  329. processData: false, //当设置为true的时候,jquery ajax 提交的时候不会序列化 data,而是直接使用data
  330. error : function(request) {
  331. layer.alert("网络超时");
  332. },
  333. success : function(data) {
  334. if(data.data != null){
  335. layer.msg(ReturnInfo(data.data),{icon:5});
  336. return false;
  337. }
  338. layer.msg(data.msg)
  339. }
  340. });
  341. return false;
  342. })
  343. //批量删除
  344. form.on('submit(del_alls_news)',function (data) {
  345. var checkStatus = table.checkStatus('tablerReload');
  346. if(typeof checkStatus.data[0] == 'object'){
  347. layer.confirm('您确定要删除吗?',{btn:['确认','取消']},function(){
  348. layer.msg('数据提交中,请稍候',{icon: 16,time:false,shade:0.8}); //数据提交提示
  349. var formdat = new FormData();
  350. $.each(checkStatus.data,function (key,val) {
  351. formdat.append('id[]',val.id);
  352. })
  353. $.ajax({
  354. cache : true,
  355. type : "post",
  356. url : "/newsknowledge/dels",
  357. data : formdat, // 你的formid
  358. contentType: false, //jax 中 contentType 设置为 false 是为了避免 JQuery 对其操作,从而失去分界符,而使服务器不能正常解析文件
  359. processData: false, //当设置为true的时候,jquery ajax 提交的时候不会序列化 data,而是直接使用data
  360. error : function(request) {
  361. layer.msg("请联系管理员");
  362. },
  363. success : function(data) {
  364. layer.msg(data.msg);
  365. table.reload('tablerReload');
  366. }
  367. });
  368. })
  369. return false;
  370. }
  371. layer.msg('请选择需要删除的内容',{icon:5});
  372. return false;
  373. })
  374. });
  375. //删除图片
  376. $('#demo2').on("click","#delimg",function () {
  377. var name = $(this).next().attr("imgname");
  378. console.log(name);
  379. var delIdentification = $(this).next().attr("delIdentification");
  380. if(typeof(delIdentification) != 'undefined'){
  381. delete filesContainer[delIdentification];
  382. delete files[delIdentification] ;
  383. }
  384. if(typeof(name) != 'undefined'){
  385. delFiles.push(name);
  386. }
  387. $(this).parent().remove();
  388. })
  389. $(function(){
  390. // 动态添加批量删除按钮
  391. var _btn = '<div class="layui-inline " style="float:left;position:relative;left:10px;bottom:35px">'
  392. + '<a class="layui-btn layui-btn-danger search_btn layui_w_btn" style="height:30px;line-height:30px;font-size:14px;" lay-submit="" lay-filter="del_alls_news">批量删除</a>'
  393. + '</div>'
  394. $('.layui-form').append(_btn)
  395. })
  396. //判断是否需要编辑,需要才加载
  397. var verdict = $('#editor_content').html();
  398. if(typeof verdict == "string"){
  399. var ue = UE.getEditor('editor_content'); //编辑器
  400. }
  401. // 选择封面图弹窗选择项卡
  402. $('.layui-tab-title .site-demo-active').on('click', function(){
  403. $(this).addClass('layui-this').siblings().removeClass('layui-this');
  404. var lay_id = $(this).attr('lay-id');
  405. $('.layui-tab-item').removeClass('layui-show')
  406. $('.layui-tab-content #'+lay_id).addClass('layui-show')
  407. });
  408. // 弹窗本地选择图片删除功能
  409. function delImg (oid,delId){
  410. $('#' +oid).on("click","#"+delId,function () {
  411. var name = $(this).next().attr("imgname");
  412. var delIdentification = $(this).next().attr("delIdentification");
  413. if(typeof(delIdentification) != 'undefined'){
  414. delete filesContainer[delIdentification];
  415. delete files[delIdentification] ;
  416. }
  417. if(typeof(name) != 'undefined'){
  418. delFiles.push(name);
  419. }
  420. var _ksrc = $(this).parents('.layui-upload-img').find('img').attr('src');
  421. for(i in depositImg){
  422. if(typeof depositImg[i] == "object"){
  423. if(depositImg[i].src == _ksrc){
  424. depositImg.splice(i, 1); //取消选择时,从数组中删除
  425. }
  426. }else if(depositImg[i] == _ksrc){
  427. depositImg.splice(i, 1); //取消选择时,从数组中删除
  428. }
  429. }
  430. $(this).parent().remove();
  431. })
  432. }
  433. //获取标题
  434. $("#keywords").blur(function(){
  435. var title=$(this).val();
  436. var keyword='';
  437. $.ajax({
  438. url:"/newsknowledge/participle",
  439. type:"POST",
  440. data:{title:title},
  441. dataType:"json",
  442. success:function(data){
  443. $.each(data.data, function (i, data) {
  444. keyword+=data.word+'、';
  445. $('input[name="keywords"]').val(keyword);
  446. })
  447. }
  448. });
  449. //$('input[name="keywords"]').val(tex);
  450. });