success_index.html 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384
  1. {extend name="public/layout" /} {block name="title"}话术库{/block} {block name="body"}
  2. <style type="text/css">
  3. html,
  4. body {
  5. display: block;
  6. min-width: 1100px;
  7. }
  8. .layui-fluid {
  9. display: block;
  10. box-shadow: 0 0 4px 0 #B6CADE;
  11. border-radius: 5px;
  12. margin: 15px;
  13. background-color: #ffffff;
  14. }
  15. .layui-table thead tr,
  16. .layui-table-header {
  17. background-color: #D8E6F1 !important;
  18. }
  19. .layui-form-label{
  20. width: auto;
  21. }
  22. .goback {
  23. float: left;
  24. margin-right: 20px;
  25. }
  26. .goback a {
  27. color: #269efb;
  28. }
  29. .goback i {
  30. position: relative !important;
  31. }
  32. .layui-btn-xs,.layui-btn-xs:hover {
  33. border: 1px solid #249EFB;
  34. background-color: #fff;
  35. color: #249EFB;
  36. padding: 0px 10px;
  37. }
  38. .layui-btn-danger,.layui-btn-danger:hover{
  39. color: #FF5722;
  40. background-color: #fff;
  41. border: 1px solid #FF5722;
  42. padding: 0px 10px;
  43. }
  44. .deletebtn{display:none}
  45. .commentcount img{width:18px;display: inline-block;vertical-align: -13%;margin-right: 2px;}
  46. .layui-form-item .layui-input-inline,.layui-select-title{max-width:160px !important;}
  47. .layui-btn-primary {
  48. color: #249EFB;
  49. border: 1px solid #249EFB;
  50. }
  51. </style>
  52. <body>
  53. <div class="layui-fluid">
  54. <div class="layui-card">
  55. <div class="layui-form layui-card-header layuiadmin-card-header-auto">
  56. <div class="layui-form-item">
  57. <div style="float:right;">
  58. <div class="layui-inline">
  59. <!-- <label class="layui-form-label">问题</label> -->
  60. <div class="layui-input-inline">
  61. <input type="text" name="keyword" placeholder="请输入关键词" autocomplete="off" class="layui-input keyword">
  62. </div>
  63. </div>
  64. <div class="layui-inline">
  65. <label >上传时间</label>
  66. <input type="text" style="border:1px solid #e6e6e6;height:36px;max-width:212px;text-align: center;" class="pdl40 huise999 ds" name="time" id="time_date" placeholder="开始时间 - 结束时间" autocomplete="off" class="layui-input">
  67. </div>
  68. <div class="layui-inline">
  69. <select name="cate1" lay-filter="cate" id="cate">
  70. <option value="">请选择场景</option>
  71. {volist name='cate' id='vo'}
  72. <option value="{$vo.id}">{$vo.name}</option>
  73. {/volist}
  74. </select>
  75. </div>
  76. <div class="layui-inline">
  77. <select name="cate2" id="cate2">
  78. <option value="">请选择分类</option>
  79. </select>
  80. </div>
  81. <div class="layui-inline">
  82. <select name="user_cate">
  83. <option value="">请选择适用部门</option>
  84. {volist name='user_cate' id='vo'}
  85. <option value="{$vo.id}">{$vo.name}</option>
  86. {/volist}
  87. </select>
  88. </div>
  89. <div class="layui-inline">
  90. <select name="house_type">
  91. <option value="">请选择房屋类型</option>
  92. {volist name='house_type' id='vo'}
  93. <option value="{$vo.id}">{$vo.name}</option>
  94. {/volist}
  95. </select>
  96. </div>
  97. <div class="layui-inline" style="margin-right:0;">
  98. <button class="layui-btn layuiadmin-btn-useradmin searchBtn submitbtn" lay-submit lay-filter="customer-search">
  99. <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
  100. </button>
  101. </div>
  102. </div>
  103. <div class="layui-inline" style="float: left;">
  104. {auth:check name="talkskill/add_talkskill"}
  105. <button class="layui-btn layuiadmin-btn layui-btn-primary" data-type="add">添加成功案例</button>
  106. {/auth:check}
  107. <!-- <div class="goback">
  108. <a href="{:url('talkskill/success_cate')}"><i class="layui-icon layui-icon-return"></i>
  109. <span>返回</span>
  110. </a>
  111. </div> -->
  112. <!-- {auth:check name="talkskill/add_talkskill"}
  113. <button class="layui-btn layuiadmin-btn" data-type="add">添加标准话术</button>
  114. {/auth:check} -->
  115. {auth:check name="talkskill/talkskill_delete"}
  116. <button class="layui-btn layuiadmin-btn deletebtn" data-type="delete">批量删除</button>
  117. {/auth:check}
  118. </div>
  119. </div>
  120. </div>
  121. <div class="layui-card-body">
  122. <table lay-filter="talkskill-table" id="talkskill-table"></table>
  123. </div>
  124. </div>
  125. </div>
  126. </body>
  127. {/block} {block name="js"}
  128. <script type="text/html" id="table-talkskill-action">
  129. <a class="layui-btn layui-btn-xs" lay-event="talkskill-edit">编辑</a>
  130. <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="talkskill-del">删除</a>
  131. </script>
  132. <script type="text/html" id="user_cate">
  133. {{# if(d.user_cate_name){ }}
  134. <span>{{d.user_cate_name}}</span>
  135. {{# }else{ }}
  136. <span style="color: #cccccc;">无</span>
  137. {{# } }}
  138. </script>
  139. <script type="text/html" id="house_type">
  140. {{# if(d.house_type_name){ }}
  141. <span>{{d.house_type_name}}</span>
  142. {{# }else{ }}
  143. <span style="color: #cccccc;">无</span>
  144. {{# } }}
  145. </script>
  146. <script type="text/html" id="templet_cate2">
  147. {{# if(d.cate2_name){ }}
  148. <span>{{d.cate2_name}}</span>
  149. {{# }else{ }}
  150. <span style="color: #cccccc;">无</span>
  151. {{# } }}
  152. </script>
  153. <script type="text/html" id="templet_cate1">
  154. {{# if(d.cate1_name){ }}
  155. <span>{{d.cate1_name}}</span>
  156. {{# }else{ }}
  157. <span style="color: #cccccc;">无</span>
  158. {{# } }}
  159. </script>
  160. <script type="text/html" id="title">
  161. <div class="commentcount">
  162. {{# if(d.img){ }}
  163. <img src="__STATIC__/img/viewicos.png" alt="">
  164. {{d.title}}
  165. {{# }else{ }}
  166. {{d.title}}
  167. {{# } }}
  168. </div>
  169. </script>
  170. <script>
  171. layui.config({
  172. base: '__LAYUI__/',
  173. urlbase: '/sys'
  174. }).extend({
  175. index: 'lib/index'
  176. }).use(['index', 'table', 'layedit', 'laydate','element'], function() {
  177. var $ = layui.$,
  178. table = layui.table,
  179. element = layui.element,
  180. laydate = layui.laydate,
  181. form = layui.form;
  182. laydate.render({
  183. elem: '#time_date'
  184. , type: 'date'
  185. , range: true
  186. , trigger: 'click'//呼出事件改成click
  187. });
  188. var field = {};
  189. form.on('submit(customer-search)', function (data) {
  190. var keyword = $('.keyword').val();
  191. var cate1 = $('select[name="cate1"]').val();
  192. var cate2 = $('select[name="cate2"]').val();
  193. var house_type = $('select[name="house_type"]').val();
  194. var user_cate = $('select[name="user_cate"]').val();
  195. var addtime = $('#time_date').val();
  196. console.log(cate)
  197. var type = $('#type').val();
  198. field['keyword'] = keyword;
  199. field['type'] = type;
  200. field['cate1'] = cate1;
  201. field['cate2'] = cate2;
  202. field['house_type'] = house_type;
  203. field['user_cate'] = user_cate;
  204. field['addtime'] = addtime;
  205. //执行重载
  206. table.reload('talkskill-table', {
  207. where: field
  208. ,page: {curr:1}
  209. });
  210. });
  211. //下拉框关联
  212. var typeData = JSON.parse('{$cate2|raw}');
  213. form.on('select(cate)', function (data) {
  214. var typeJson = typeData[data.value];
  215. var typeLabel = $('#cate2');
  216. typeLabel.empty().append('<option value="">请选择分类</option>');
  217. for (r in typeJson) {
  218. typeLabel.append('<option value=' + r + '>' + typeJson[r] + '</option>');
  219. }
  220. form.render();
  221. });
  222. document.onkeydown=function(event){
  223. var e = event || window.event || arguments.callee.caller.arguments[0];
  224. if(e && e.keyCode==13){
  225. $(".submitbtn").trigger("click");
  226. }
  227. };
  228. //事件
  229. var active = {
  230. add: function() {
  231. layer.open({
  232. type: 2,
  233. title:['话术上传', 'color:#333333;background-color:#D8E6F1;'],
  234. content: '{:url("talkskill/success_add")}',
  235. resize: false,
  236. area: ['80%', '90%'],
  237. btn: ['确定', '取消'],
  238. yes: function(index, layero) {
  239. //点击确认触发 iframe 内容中的按钮提交
  240. var submit = layero.find('iframe').contents().find("#talkskill-submit");
  241. submit.click();
  242. }
  243. });
  244. },
  245. // 批量删除
  246. delete: function() {
  247. var data = layui.table.checkStatus('talkskill-table');
  248. //console.log(checkStatus.data) //获取选中行的数据即 多个行对象
  249. //console.log(checkStatus.data.length) //获取选中行数量,可作为是否有选中行的条件
  250. //console.log(checkStatus.isAll ) //表格是否全选
  251. if (data.data.length==0) {
  252. layer.msg('请选择要删除的话术', {anim: 6,time: 800});
  253. return false;
  254. } else {
  255. var ids = [];
  256. for (var i = 0; i < data.data.length; i++) {
  257. ids.push(data.data[i].id);
  258. }
  259. layer.confirm('确定要删除么?',{title:['信息', 'color:#333333;background-color:#D8E6F1;'],}, function() {
  260. $.ajax({
  261. url: '{:url("talkskill/success_delete")}',
  262. type: 'post',
  263. data: {ids:ids},
  264. dataType: 'json',
  265. success: function(res) {
  266. // console.log(res)
  267. if(res.code === 0) {
  268. layer.msg(res.msg, {anim: 0,time: 800});
  269. //执行重载
  270. table.reload('talkskill-table');
  271. } else {
  272. layer.msg(res.msg, {anim: 6,time: 800});
  273. }
  274. }
  275. });
  276. });
  277. }
  278. }
  279. };
  280. //话术列表
  281. table.render({
  282. elem: '#talkskill-table',
  283. autoSort: false,
  284. url: "{:url('talkskill/success_index')}",
  285. cols: [
  286. [
  287. {type: 'checkbox',field:'id'},
  288. {
  289. type: 'numbers',
  290. field: 'id',
  291. width: 80,
  292. title: '序号',
  293. sort: true
  294. }, {
  295. title: '话术标题',
  296. templet: '#title'
  297. }, {
  298. templet: '#templet_cate1',
  299. title: '场景'
  300. }, {
  301. title: '分类',
  302. templet: '#templet_cate2'
  303. }, {
  304. title: '房屋类型',
  305. templet: '#house_type'
  306. }, {
  307. title: '适用部门',
  308. templet: '#user_cate'
  309. },{
  310. title: '添加时间',
  311. field: 'addtime'
  312. }, {
  313. field: 'view_times',
  314. title: '浏览量'
  315. }, {
  316. title: '操作',
  317. width: 150,
  318. align: 'center',
  319. fixed: 'right',
  320. toolbar: '#table-talkskill-action'
  321. }]
  322. ],
  323. page: true,
  324. limit: 30,
  325. height: 'full-220',
  326. text: '对不起,加载出现异常!'
  327. });
  328. //监听列表
  329. table.on('tool(talkskill-table)', function(obj) {
  330. var data = obj.data;
  331. if(obj.event === 'talkskill-edit') {
  332. layer.open({
  333. type: 2,
  334. title:['话术编辑', 'color:#333333;background-color:#D8E6F1;'],
  335. content: "{:url('talkskill/success_edit')}?id=" + data.id,
  336. resize: false,
  337. area: ['80%', '80%'],
  338. btn: ['确定', '取消'],
  339. yes: function(index, layero) {
  340. //点击确认触发 iframe 内容中的按钮提交
  341. var submit = layero.find('iframe').contents().find("#talkskill-submit");
  342. submit.click();
  343. }
  344. });
  345. }else if(obj.event === 'talkskill-del') {
  346. layer.confirm('确定删除?',{title:['信息', 'color:#333333;background-color:#D8E6F1;'],}, function(index) {
  347. $.ajax({
  348. url: "{:url('talkskill/success_delete')}?id=" + data.id,
  349. type: 'post'
  350. });
  351. obj.del();
  352. layer.close(index);
  353. });
  354. }
  355. });
  356. table.on('checkbox(talkskill-table)', function(obj){
  357. var arrlist = table.checkStatus('talkskill-table').data;
  358. if(arrlist.length>0){
  359. $(this).prop('checked',true)
  360. $('.deletebtn').show();
  361. }else{
  362. $('.deletebtn').hide();
  363. }
  364. console.log(11111)
  365. });
  366. $('.layui-btn.layuiadmin-btn').on('click', function() {
  367. var type = $(this).data('type');
  368. active[type] ? active[type].call(this) : '';
  369. });
  370. });
  371. </script>
  372. {/block}