cate_talkskill.html 29 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039
  1. {extend name="public/layout" /} {block name="title"}分类管理{/block} {block name="body"}
  2. <script src="/static/js/jquery.min.js"></script>
  3. <script src="/static/js/echarts.min.js"></script>
  4. <style type="text/css">
  5. html,
  6. body {
  7. display: block;
  8. min-width: 1100px;
  9. }
  10. .layui-fluid {
  11. display: block;
  12. box-shadow: 0 0 4px 0 #B6CADE;
  13. border-radius: 5px;
  14. margin: 15px;
  15. background-color: #ffffff;
  16. height: auto;
  17. }
  18. .layui-form-label{
  19. width: auto;
  20. }
  21. #data_statistics{
  22. /*background: red;*/
  23. width: 100%;
  24. height: 300px;
  25. float: left;
  26. }
  27. .tab_1{
  28. width: 10%;
  29. }
  30. #echartbox_a{
  31. display: block;
  32. width: 40%;
  33. height: 300px;
  34. /*background: red;*/
  35. float: left;
  36. }
  37. #data_statistics_b{
  38. /*background: blue;*/
  39. width: 48%;
  40. height: 300px;
  41. float: left;
  42. }
  43. .all{
  44. width: 100%;
  45. background: red;
  46. }
  47. #echartbox_b{
  48. display: block;
  49. width: 80%;
  50. height: 400px;
  51. margin:0 auto;
  52. }
  53. #data_statistics_c{
  54. width: 80%;
  55. margin:0 auto;
  56. overflow: hidden;
  57. }
  58. #echartbox_c{
  59. display: block;
  60. width: 80%;
  61. height: 400px;
  62. margin:0 auto;
  63. }
  64. #data_statistics_d{
  65. width: 80%;
  66. margin:0 auto;
  67. overflow: hidden;
  68. }
  69. #echartbox_d{
  70. display: block;
  71. width: 80%;
  72. height: 400px;
  73. margin:0 auto;
  74. }
  75. #data_statistics_e{
  76. width: 80%;
  77. margin:0 auto;
  78. overflow: hidden;
  79. }
  80. .layui_fluid1{display: none;}
  81. .layui-nav-tabs-ul{margin-bottom: 10px;}
  82. .layui-nav-tab_li{float:left;padding: 0px 20px;text-align: center;cursor: pointer;line-height: 38px;height: 38px;}
  83. .add-layui-nav-li{color: #fff;white-space: nowrap;text-align: center;font-size: 14px;border-radius: 2px;
  84. }
  85. .layui-tab-brief>.layui-tab-more li.layui-this:after, .layui-tab-brief>.layui-tab-title .layui-this:after{border-bottom: 2px solid #249efb !important;}
  86. /*//*/
  87. .layui_fluid1{display: none;}
  88. .layui-nav-tabs-ul{margin-bottom: 10px;padding-bottom:0;border-bottom: 1px solid #e6e6e6;overflow: hidden;}
  89. .layui-nav-tab_li{float:left;padding: 0px 20px;text-align: center;cursor: pointer;line-height: 38px;height: 38px;position: relative;}
  90. .add-layui-nav-li{color: #f3f3f3;;white-space: nowrap;text-align: center;font-size: 14px;border-radius: 2px;}
  91. .layui-bor-b{position: absolute;bottom:0;width:65px;left:50%;transform: translateX(-50%);height: 1px;background: #249efb;}
  92. .layui-tab-brief>.layui-tab-more li.layui-this:after, .layui-tab-brief>.layui-tab-title .layui-this:after{border-bottom: 2px solid #249efb !important;}
  93. .layui-bor-b{display: none;}
  94. .add-layui-nav-li .layui-bor-b{display: block !important;}
  95. .layui-title-b{font-size: 20px;font-weight: bold;}
  96. .layui-li-box{padding-bottom: 30px;border-bottom: 1px solid #e6e6e6;}
  97. .woverflow{overflow: hidden;}
  98. .layui-bolu{color:#249efb}
  99. .layui-data-ul{width:100%;}
  100. .layui-data-ul li{float:left;width:33.33%;line-height: 40px;}
  101. .mdt70{margin-top:30px;}
  102. .width33_33{width:33.33%;}
  103. .wleft{float:left;}
  104. .mdt40{margin-top:40px;}
  105. .width80_{width:80%;}
  106. .wauto{margin:0 auto;}
  107. .layui-data-ul-b{height: 126px;overflow-y: auto;}
  108. .layui-data-ul-b li{float:left;width:33.33%;line-height: 30px;}
  109. .layui_box_con{display: none;height: 100%;}
  110. .layadmin-iframe-if{width:100%;height: 100%;position: absolute;top:56px;left:0;}
  111. .layui-p-bt{font-weight:bold;}
  112. .layui_bm{overflow: hidden;text-overflow: ellipsis;white-space: nowrap;max-width:70%;}
  113. .layui-data-ul-b li span{display: block;float:left;}
  114. /*热词搜索*/
  115. /* .layui-form-item .layui-inline {
  116. display: block;
  117. float: left;
  118. width: 145px;
  119. height: 38px;
  120. line-height: 38px;
  121. background: #FFFFFF;
  122. margin-right: 16px;
  123. }
  124. .layui-form-item .layui-input-inline {
  125. width: 145px;
  126. height: 38px;
  127. line-height: 38px;
  128. margin-bottom: 0;
  129. }*/
  130. /* .layui-form-item .layui-input-inline .layui-input {
  131. border: 1px solid #9DB6CF;
  132. border-radius: 5px;
  133. }*/
  134. .layui-form-select dl dd.layui-this {
  135. background-color: #249EFB;
  136. }
  137. .layui-form-item div.searchBox {
  138. width: 320px;
  139. background: #FFFFFF;
  140. border: 1px solid #B6CADE;
  141. /* border-radius: 24px; */
  142. height: 38px;
  143. overflow: hidden;
  144. padding-left: 10px;
  145. position: relative;
  146. margin-bottom: 0px;
  147. /* float: right; */
  148. }
  149. .searchBox .inputBox {
  150. width: 240px;
  151. /* float: left; */
  152. height: 36px;
  153. line-height: 36px;
  154. border-width: 0;
  155. }
  156. /* .searchBtn {
  157. position: absolute;
  158. top: 0;
  159. right: 0;
  160. width: 51px;
  161. height: 38px;
  162. background-color: #fff;
  163. }*/
  164. .searchBtn img {
  165. position: absolute;
  166. width: 26px;
  167. top: 6px;
  168. left: 0;
  169. }
  170. .layui-btn.layui-btn-success {
  171. background-color: #009688;
  172. }
  173. .layui-table thead tr,
  174. .layui-table-header {
  175. background-color: #D8E6F1 !important;
  176. }
  177. .layui-btn-primary {
  178. color: #249EFB;
  179. border: 1px solid #249EFB;
  180. }
  181. .layui-btn-primary:hover {
  182. background-color: #E3F7FF;
  183. color: #249EFB;
  184. }
  185. .layui-bor-b {
  186. height: 4px;
  187. background-color: #249EFB;
  188. }
  189. .add-layui-nav-li {
  190. color: #249EFB;
  191. }
  192. .layui-btn-xs,.layui-btn-xs:hover {
  193. border: 1px solid #249EFB;
  194. background-color: #fff;
  195. color: #249EFB;
  196. padding: 0px 10px;
  197. }
  198. .layui-btn-danger,.layui-btn-danger:hover{
  199. color: #FF5722;
  200. background-color: #fff;
  201. border: 1px solid #FF5722;
  202. padding: 0px 10px;
  203. }
  204. #data_statistics_b{
  205. border: 1px solid #E4E4E4;
  206. box-sizing: border-box;
  207. padding: 20px;
  208. }
  209. #data_statistics_c,#data_statistics_d,#data_statistics_e {
  210. border: 1px solid #E4E4E4;
  211. padding: 15px;
  212. }
  213. .mt15 {
  214. margin-top: 15px;
  215. }
  216. </style>
  217. <body>
  218. <div class="layui-fluid">
  219. <ul class="layui-nav-tabs-ul">
  220. <li class="layui-nav-tab_li add-layui-nav-li">话术管理<span class="layui-bor-b"></span></li>
  221. <li class="layui-nav-tab_li">量化复盘<span class="layui-bor-b"></li>
  222. <li class="layui-nav-tab_li">热搜大数据<span class="layui-bor-b"></li>
  223. <!-- <li class="layui-nav-tab_li add-layui-nav-li">数据复盘</li>
  224. <li class="layui-nav-tab_li">谈单场景</li> -->
  225. </ul>
  226. <div class="">
  227. <div class="layui_fluid1" style="display: block;">
  228. <div class="layui-card">
  229. <div class="layui-form layui-card-header layuiadmin-card-header-auto">
  230. <div class="layui-form-item">
  231. <div style="float:right;">
  232. <div class="layui-inline">
  233. <label class="layui-form-label">关键词</label>
  234. <div class="layui-input-inline">
  235. <input type="text" id="keyword" name="keyword" placeholder="请输入话术关键词" autocomplete="off" class="layui-input keyword">
  236. </div>
  237. </div>
  238. <div class="layui-inline">
  239. <label class="layui-form-label">场景</label>
  240. <div class="layui-input-inline">
  241. <select name="type" lay-filter="type" id="type">
  242. <option value="">请选择场景</option>
  243. {volist name="type" id="t"}
  244. <option value="{$t.label_name}">{$t.label_name}</option>
  245. {/volist}
  246. </select>
  247. </div>
  248. </div>
  249. <div class="layui-inline" style="margin-right:0;">
  250. <button class="layui-btn layuiadmin-btn-useradmin searchBtn submitbtn" lay-submit lay-filter="search">
  251. <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
  252. </button>
  253. </div>
  254. </div>
  255. <div class="layui-inline" style="float: left;">
  256. <!-- {auth:check name="talkskill/cate_talkskill_add"}
  257. <button class="layui-btn layuiadmin-btn layui-btn-primary" id="cate_add">添加场景</button>
  258. {/auth:check} -->
  259. {auth:check name="talkskill/add_talkskill"}
  260. <button class="layui-btn layuiadmin-btn layui-btn-primary" data-type="add">添加话术</button>
  261. {/auth:check}
  262. <!-- {auth:check name="talkskill/importing"}
  263. <button class="layui-btn layuiadmin-btn layui-btn-primary" id="importcustomer">导入话术</button>
  264. {/auth:check} -->
  265. <!-- <button class="layui-btn layuiadmin-btn layui-btn-primary" data-type="person" id="person">适用部门</button> -->
  266. <button class="layui-btn layuiadmin-btn layui-btn-primary" data-type="dictionary" id="dictionary">字典管理</button>
  267. </div>
  268. </div>
  269. </div>
  270. <div class="layui-card-body">
  271. <table id="label-table" lay-filter="label-table"></table>
  272. </div>
  273. </div>
  274. </div>
  275. <div class="layui_fluid1 layui_box_con">
  276. <div class="layui-li-box woverflow" style="margin-top: 20px;">
  277. <p class="layui-title-b">总话术来源占比</p>
  278. <div class="woverflow">
  279. <div id='echartbox_a'></div>
  280. <div id="data_statistics_b" class="woverflow">
  281. <ul class="woverflow layui-data-ul mdt70">
  282. <li class="layui-li-tj1">话术总数 : <b class="layui-bolu">{$data.count}条</b></span></li>
  283. <li class="layui-li-tj1">应用场景 : <b class="layui-bolu">{$data.label_count}个</b></span></li>
  284. <li class="layui-li-tj1">官方话术占比 : <b class="layui-bolu">{$data.gf_huashu_grwth}</b></span></li>
  285. </ul>
  286. <ul class="woverflow layui-data-ul mt15">
  287. <li class="layui-li-tj1">官方上传 : <b class="layui-bolu">{$data.gf_upload}条</b></span></li>
  288. <li class="layui-li-tj1">官方回答 : <b class="layui-bolu">{$data.gf_huida}条</b></span></li>
  289. <li class="layui-li-tj1">业务员回答 : <b class="layui-bolu">{$data.yewu_huida}条</b></span></li>
  290. </ul>
  291. <ul class="woverflow layui-data-ul mt15">
  292. <li class="layui-li-tj1">业务员共享 : <b class="layui-bolu">{$data.yewu_upload}条</b></span></li>
  293. <li class="layui-li-tj1">业务员提问 : <b class="layui-bolu">{$data.yewu_tiwen}条</b></span></li>
  294. </ul>
  295. <ul class="woverflow layui-data-ul mt15">
  296. <li class="layui-li-tj1">业务员话术占比 : <b class="layui-bolu">{$data.yewu_huashu_grawth}</b></span></li>
  297. </ul>
  298. </div>
  299. </div>
  300. </div>
  301. <div class="mdt40 woverflow">
  302. <ul class="woverflow">
  303. {auth:check name="talkskill/org_talkskill"}
  304. <li class="width33_33 wleft">
  305. <p class="layui-title-b">部门话术共享占比</p>
  306. <div class="">
  307. <div id='echartbox_b'></div>
  308. </div>
  309. <div class="width80_ wauto" id="data_statistics_c"></div>
  310. </li>
  311. {/auth:check}
  312. {auth:check name="talkskill/talkskill_pro"}
  313. <li class="width33_33 wleft">
  314. <p class="layui-title-b">部门提问占比</p>
  315. <div class="">
  316. <div id='echartbox_c'></div>
  317. </div>
  318. <div class="width80_ wauto" id="data_statistics_d"></div>
  319. </li>
  320. {/auth:check}
  321. {auth:check name="talkskill/talkskill_ans"}
  322. <li class="width33_33 wleft">
  323. <p class="layui-title-b">部门回答占比</p>
  324. <div class="">
  325. <div id='echartbox_d'></div>
  326. </div>
  327. <div class="width80_ wauto" id="data_statistics_e"></div>
  328. </li>
  329. {/auth:check}
  330. </ul>
  331. </div>
  332. </div>
  333. <div class="layui_fluid1">
  334. <style type="text/css">
  335. .searchBtns {
  336. position: absolute;
  337. top: 0;
  338. right: 0;
  339. width: 51px;
  340. height: 38px;
  341. background-color: #fff;
  342. }
  343. </style>
  344. <script type="text/html" id="table-edit">
  345. {auth:check name="talkskill/how_keyword_del"}
  346. <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="hot-keyword-del">删除</a>
  347. {/auth:check}
  348. </script>
  349. <div class="layui-fluid" style="box-shadow: none;">
  350. <div class="layui-card">
  351. <div class="layui-form layui-card-header layuiadmin-card-header-auto" style="padding-top: 0;">
  352. <div class="layui-form-item clearfix" style="display: flex;justify-content: flex-end;">
  353. <div>
  354. <div class="layui-inline searchBox">
  355. <input type="text" name="keyword" placeholder="请输入搜索关键字" autocomplete="off" class="layui-input inputBox keywords">
  356. </div>
  357. <!-- <button class="layui-btn layuiadmin-btn-useradmin layui-btn-primary" lay-submit lay-filter="customer-search">
  358. <img src="/static/layuiadmin//image/sous.png" alt="">
  359. 查找
  360. </button> -->
  361. <button class="layui-btn layuiadmin-btn-useradmin searchBtn" lay-submit lay-filter="customer-search">
  362. <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
  363. </button>
  364. </div>
  365. </div>
  366. </div>
  367. <div class="layui-card-body">
  368. <table lay-filter="talkskill-table" id="talkskill-table"></table>
  369. </div>
  370. </div>
  371. </div>
  372. </div>
  373. </div>
  374. </div>
  375. </body>
  376. {/block} {block name="js"}
  377. <script type="text/html" id="table-evidence-action">
  378. {{# if(d.from_type == 0){ }}
  379. {auth:check name="talkskill/cate_talkskill_add"}
  380. <a class="layui-btn layui-btn-xs" lay-event="addhs">添加话术</a>
  381. {{# if(d.show == 0){ }}
  382. <a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>
  383. <a class="layui-btn layui-btn-xs layui-btn-danger" lay-event="delete">删除</a>
  384. {{# }else{ }}
  385. <a class="layui-btn layui-btn-xs layui-btn-disabled" style="border: 1px solid #ccc;color: #ccc;">编辑</a>
  386. <a class="layui-btn layui-btn-xs layui-btn-disabled" style="border: 1px solid #ccc;color: #ccc;">删除</a>
  387. {{# } }}
  388. {/auth:check}
  389. {{# }else{ }}
  390. <span>无</span>
  391. {{# } }}
  392. </script>
  393. <script type="text/html" id="update_time">
  394. {{# if(d.update_time == ''){ }}
  395. <span>/</span>
  396. {{# }else{ }}
  397. {{d.update_time}}
  398. {{# } }}
  399. </script>
  400. <script type="text/html" id="talkill_count">
  401. {{d.talkill_count}}
  402. </script>
  403. <script type="text/html" id="label_name">
  404. {{# if(d.from_type == 2){ }}
  405. <a href="{:url('talkskill/talkskilltable')}?type={{d.id}}&name={{d.label_name}}" lay-event="talkill_list" style="color: #0066CC">
  406. <i class="layui-icon">&#xe609;</i>&nbsp;&nbsp;{{d.label_name}}
  407. </a>
  408. {{# }else{ }}
  409. <a href="{:url('talkskill/talkskilltable')}?type={{d.id}}&name={{d.label_name}}" lay-event="talkill_list" style="color: #0066CC">
  410. {{d.label_name}}
  411. </a>
  412. {{# } }}
  413. </script>
  414. <script>
  415. layui.config({
  416. base: '__LAYUI__/',
  417. urlbase: '/sys'
  418. }).extend({
  419. index: 'lib/index'
  420. }).use(['index', 'table', 'element'], function() {
  421. var $ = layui.$,
  422. form = layui.form,
  423. element = layui.element,
  424. table = layui.table;
  425. $('.layui-nav-tab_li').click(function(){
  426. var this_s=$(this).index();
  427. $(this).addClass('add-layui-nav-li').siblings().removeClass('add-layui-nav-li');
  428. $('.layui_fluid1').eq(this_s).show().siblings('.layui_fluid1').hide();
  429. if(this_s===1){
  430. // setTimeout(function(){
  431. active.echartline('echartbox_a');
  432. active.echartlineb(0);
  433. active.echartlineb(0,'submit','echartbox_c');
  434. active.echartlineb(0,'comment','echartbox_d');
  435. // },500)
  436. } else if (this_s==2) {
  437. //热词搜索
  438. table.render({
  439. elem: '#talkskill-table',
  440. autoSort: false,
  441. url: "{:url('talkskill/hot_word')}",
  442. cols: [
  443. [{
  444. type: 'numbers',
  445. field: 'id',
  446. width: 80,
  447. title: '序号',
  448. sort: true
  449. }, {
  450. field: 'keyword',
  451. title: '热词'
  452. }, {
  453. field: 'use_count',
  454. title: '热搜次数'
  455. }, {
  456. title: '操作',
  457. width: 150,
  458. align: 'center',
  459. fixed: 'right',
  460. toolbar: '#table-edit'
  461. }]
  462. ],
  463. page: true,
  464. limit: 30,
  465. height: 'full-240',
  466. text: '对不起,加载出现异常!'
  467. });
  468. //监听列表
  469. table.on('tool(talkskill-table)', function(obj) {
  470. var data = obj.data;
  471. if(obj.event === 'hot-keyword-del') {
  472. $.ajax({
  473. url: "{:url('talkskill/how_keyword_del')}?id=" + data.id,
  474. type: 'post',
  475. success:function(res){
  476. obj.del();
  477. layer.msg(res.msg, {anim: 0 , time: 800});
  478. }
  479. });
  480. }
  481. });
  482. var field = {};
  483. form.on('submit(customer-search)', function(data) {
  484. var keyword = $('.keywords').val();
  485. field['keyword'] = keyword;
  486. //执行重载
  487. table.reload('talkskill-table', {
  488. where: field
  489. ,page: {curr:1}
  490. });
  491. });
  492. } else {
  493. // var myChart1 = echarts.init(document.getElementById('echartbox_a'));
  494. // var myChart2 = echarts.init(document.getElementById('echartbox_c'));
  495. // var myChart2 = echarts.init(document.getElementById('echartbox_b'));
  496. // myChart1.dispose();
  497. // myChart2.dispose();
  498. // myChart3.dispose();
  499. }
  500. })
  501. //添加分类
  502. $('#cate_add').click(function() {
  503. layer.prompt({
  504. title: ['添加', 'color:#333333;background-color:#D8E6F1;'],
  505. value: ''
  506. }, function(value, index) {
  507. if($.trim(value) == '') {
  508. layer.msg('请填写名称', {anim: 6,time: 800});
  509. return false;
  510. }
  511. if($.trim(value).length > 20) {
  512. layer.msg('场景名称超长', {anim: 6,time: 800});
  513. return false;
  514. }
  515. $.ajax({
  516. url: '{:url("talkskill/cate_talkskill_add")}',
  517. type: 'post',
  518. data: {
  519. name: $.trim(value)
  520. },
  521. dataType: 'json',
  522. success: function(res) {
  523. if(res.code === 0) {
  524. layer.msg(res.msg, {anim: 0,time: 800});
  525. //执行重载
  526. table.reload('label-table');
  527. } else {
  528. layer.msg(res.msg, {anim: 6,time: 800});
  529. }
  530. }
  531. });
  532. layer.close(index);
  533. });
  534. });
  535. $('#importcustomer').on('click', function () {
  536. layer.open({
  537. type:2,
  538. title:['批量导入话术', 'color:#333333;background-color:#D8E6F1;'],
  539. content:'{:url("talkskill/importing")}',
  540. resize: false,
  541. area:['80%', '80%'],
  542. });
  543. });
  544. var field = {};
  545. form.on('submit(search)', function (data) {
  546. var type = $('#type').val();
  547. var keyword = $('#keyword').val();
  548. field['type'] = type;
  549. field['keyword'] = keyword;
  550. //执行重载
  551. table.reload('label-table', {
  552. where: field
  553. ,page: {curr:1}
  554. });
  555. });
  556. var active = {
  557. add: function() {
  558. layer.open({
  559. type: 2,
  560. title:['话术添加', 'color:#333333;background-color:#D8E6F1;'],
  561. content: '{:url("talkskill/talkskilladd")}',
  562. resize: false,
  563. area: ['80%', '77%'],
  564. btn: ['确定', '取消'],
  565. yes: function(index, layero) {
  566. //点击确认触发 iframe 内容中的按钮提交
  567. var submit = layero.find('iframe').contents().find("#talkskill-submit");
  568. submit.click();
  569. }
  570. });
  571. },echartline: function(tab) {
  572. var myChart = echarts.init(document.getElementById('echartbox_a'));
  573. var option = {
  574. title: {
  575. text: '',
  576. subtext: '',
  577. left: 'center'
  578. },
  579. tooltip: {
  580. trigger: 'item'
  581. },
  582. legend: {
  583. orient: 'horizontal',
  584. bottom: '20',
  585. type:'scroll'
  586. },
  587. series: [
  588. {
  589. name: '合计:{$data.count}',
  590. type: 'pie',
  591. radius: '50%',
  592. center: ['50%','50%'],
  593. data: [
  594. { value: '{$data.gf_upload}', name: '官方上传:{$data.gf_huashu_grwth}' },
  595. { value: '{$data.yewu_upload}', name: '业务员共享:{$data.yewu_huashu_grawth}' },
  596. { value: '{$data.yewu_tiwen}', name: '业务员提问:{$data.yewu_tiwen_grawth}' }
  597. ],
  598. emphasis: {
  599. itemStyle: {
  600. shadowBlur: 10,
  601. shadowOffsetX: 10,
  602. shadowColor: 'rgba(0, 0, 0, 0.5)'
  603. }
  604. }
  605. }
  606. ]
  607. }
  608. myChart.setOption(option);
  609. $(window).resize(function(){
  610. myChart.resize();
  611. });
  612. },echartlineb: function(org_id,type='talkskill',id='echartbox_b') {
  613. //查询数据
  614. var datas = {};
  615. $.ajax({
  616. url: '{:url("talkskill/get_org_data")}',
  617. type: 'post',
  618. data: {org_id:org_id,type:type},
  619. dataType: 'json',
  620. success: function(talk) {
  621. // console.log(talk);
  622. var arrs=JSON.parse(talk);
  623. var arr = arrs.data;
  624. if (id=='echartbox_b') {
  625. $('#data_statistics_c').html(arrs.html);
  626. } else if (id=='echartbox_c'){
  627. $('#data_statistics_d').html(arrs.html);
  628. } else if (id=='echartbox_d'){
  629. $('#data_statistics_e').html(arrs.html);
  630. }
  631. var myChart = echarts.init(document.getElementById(id));
  632. var option = {
  633. title: {
  634. text: '',
  635. subtext: '',
  636. left: 'center'
  637. },
  638. tooltip: {
  639. trigger: 'item'
  640. },
  641. legend: {
  642. orient: 'horizontal',
  643. bottom: '20',
  644. type:'scroll'
  645. },
  646. series: [
  647. {
  648. name: '合计',
  649. type: 'pie',
  650. radius: '50%',
  651. center: ['50%', '50%'],
  652. data:arr,
  653. emphasis: {
  654. itemStyle: {
  655. shadowBlur: 10,
  656. shadowOffsetX: 10,
  657. shadowColor: 'rgba(0, 0, 0, 0.5)'
  658. }
  659. }
  660. }
  661. ]
  662. }
  663. myChart.setOption(option);
  664. $(window).resize(function(){
  665. myChart.resize();
  666. });
  667. }
  668. });
  669. },
  670. //适用部门
  671. person:function(){
  672. layer.open({
  673. type: 2,
  674. title:['适用部门', 'color:#333333;background-color:#D8E6F1;'],
  675. content: '{:url("talkskill/person")}',
  676. resize: false,
  677. area: ['80%', '80%'],
  678. // btn: ['确定', '取消'],
  679. yes: function(index, layero) {
  680. }
  681. });
  682. },
  683. //字典管理
  684. dictionary:function() {
  685. layer.open({
  686. type: 2,
  687. title:['字典管理', 'color:#333333;background-color:#D8E6F1;'],
  688. content: '{:url("talkskill/dictionary")}',
  689. resize: false,
  690. area: ['80%', '80%'],
  691. // btn: ['确定', '取消'],
  692. yes: function(index, layero) {
  693. }
  694. });
  695. }
  696. };
  697. // //总话术来源占比
  698. // active.echartline('echartbox_a');
  699. // //部门话术共享占比
  700. // active.echartlineb(0);
  701. // active.echartlineb(0);
  702. //监听饼形图选项卡
  703. element.on('tab(nav)',function(e){
  704. console.log(e)
  705. // var con = e.text();
  706. // var tabId = e.children('a').attr("hid");
  707. // var url = e.children('a').attr("url");
  708. // createTab(tabId, con , url);
  709. $('#data_statistics_c').empty();
  710. $('#data_statistics_d').empty();
  711. if (e.index==1) {
  712. active.echartlineb(0);
  713. } else if(e.index==2) {
  714. active.echartlineb(0,'comment','echartbox_c');
  715. } else if(e.index==3) {
  716. active.echartlineb(0,'submit','echartbox_d');
  717. }
  718. });
  719. //列表
  720. table.render({
  721. elem: '#label-table',
  722. autoSort: false,
  723. url: '{:url("talkskill/cate_talkskill_list")}',
  724. cols: [
  725. [{
  726. type: 'numbers',
  727. field: 'id',
  728. width: 80,
  729. title: '序号',
  730. }, {
  731. field: 'label_name',
  732. align: 'center',
  733. title: '场景',
  734. templet: '#label_name'
  735. }, {
  736. field: 'talkill_count',
  737. align: 'center',
  738. title: '话术条数',
  739. templet: '#talkill_count'
  740. }, {
  741. align: 'center',
  742. title: '使用人次',
  743. field: 'use_count'
  744. }, {
  745. align: 'center',
  746. title: '浏览量',
  747. field: 'view_num'
  748. }, {
  749. field: 'update_time',
  750. align: 'center',
  751. title: '更新时间',
  752. templet: '#update_time'
  753. }, {
  754. title: '操作',
  755. width: 240,
  756. align: 'center',
  757. toolbar: '#table-evidence-action',
  758. fixed:'right'
  759. }]
  760. ],
  761. page: true,
  762. limit: 30,
  763. height: 'full-220',
  764. text: '对不起,加载出现异常!'
  765. });
  766. //监听列表
  767. table.on('tool(label-table)', function(obj) {
  768. var data = obj.data;
  769. if(obj.event === 'delete') {
  770. layer.confirm('确定要删除该场景么?',{title:['信息', 'color:#333333;background-color:#D8E6F1;'],}, function() {
  771. $.get("{:url('talkskill/cate_del')}?type=0&id=" + data.id, function(res) {
  772. if(res.code === 0) {
  773. layer.msg(res.msg, {
  774. anim: 0,time:800
  775. }, function() {
  776. table.reload('label-table');
  777. });
  778. } else {
  779. layer.msg(res.msg, {
  780. anim: 6,time:800
  781. });
  782. }
  783. });
  784. });
  785. } else if(obj.event === 'edit') {
  786. layer.prompt({
  787. title:['编辑', 'color:#333333;background-color:#D8E6F1;'],
  788. value: data.label_name
  789. }, function(value, index) {
  790. if($.trim(value) == data.label_name || $.trim(value) == '') {
  791. layer.msg('请修改名称', {anim: 6,time: 800});
  792. return false;
  793. }
  794. if($.trim(value).length > 20) {
  795. layer.msg('场景名称超长', {anim: 6,time: 800});
  796. return false;
  797. }
  798. $.ajax({
  799. url: '{:url("talkskill/dictionary_ajax_edit")}',
  800. type: 'post',
  801. data: {
  802. id: data.id,
  803. name: $.trim(value),
  804. type:0
  805. },
  806. dataType: 'json',
  807. success: function(res) {
  808. if(res.code === 0) {
  809. layer.msg(res.msg, {anim: 0,time: 800});
  810. //执行重载
  811. table.reload('label-table');
  812. } else {
  813. layer.msg(res.msg, {anim: 6,time: 800});
  814. }
  815. }
  816. });
  817. layer.close(index);
  818. });
  819. }else if(obj.event === 'talkill_list') {
  820. }else if(obj.event === 'addhs') {
  821. layer.open({
  822. type: 2,
  823. title:['添加 #'+data.name+'# 话术', 'color:#333333;background-color:#D8E6F1;'],
  824. content: '{:url("talkskill/new_add_talkskill")}?id='+data.id+'&name='+data.name,
  825. resize: false,
  826. area: ['80%', '80%'],
  827. btn: ['确定', '取消'],
  828. yes: function(index, layero) {
  829. var submit = layero.find('iframe').contents().find("#talkskill-submit");
  830. submit.click();
  831. }
  832. });
  833. }
  834. });
  835. $('.layui-btn.layuiadmin-btn').on('click', function() {
  836. var type = $(this).data('type');
  837. active[type] ? active[type].call(this) : '';
  838. });
  839. });
  840. function getorgdata(org_id,index){
  841. var type = $('#type'+index+org_id).attr('type');
  842. //查询数据
  843. var datas = {};
  844. $.ajax({
  845. url: '{:url("talkskill/get_org_data")}',
  846. type: 'post',
  847. data: {org_id:org_id,type:type},
  848. dataType: 'json',
  849. success: function(talk) {
  850. // console.log(talk);
  851. var arrs=JSON.parse(talk);
  852. var arr = arrs.data;
  853. console.log(arr.length);
  854. if (arrs.ok==0) {
  855. layer.msg('暂无数据')
  856. return false;
  857. }
  858. console.log(type)
  859. if (type=='talkskill') {
  860. $('#data_statistics_c').html(arrs.html);
  861. var id = 'echartbox_b';
  862. } else if(type=='comment'){
  863. $('#data_statistics_e').html(arrs.html);
  864. var id = 'echartbox_d';
  865. } else if(type=='submit'){
  866. $('#data_statistics_d').html(arrs.html);
  867. var id = 'echartbox_c';
  868. }
  869. var myChart = echarts.init(document.getElementById(id));
  870. var option = {
  871. title: {
  872. text: '',
  873. subtext: '',
  874. left: 'center'
  875. },
  876. tooltip: {
  877. trigger: 'item'
  878. },
  879. legend: {
  880. orient: 'horizontal',
  881. bottom: '20',
  882. type:'scroll'
  883. },
  884. series: [
  885. {
  886. name: '合计',
  887. type: 'pie',
  888. radius: '50%',
  889. center: ['50%', '50%'],
  890. data:arr,
  891. emphasis: {
  892. itemStyle: {
  893. shadowBlur: 10,
  894. shadowOffsetX: 10,
  895. shadowColor: 'rgba(0, 0, 0, 0.5)'
  896. }
  897. }
  898. }
  899. ]
  900. }
  901. myChart.setOption(option);
  902. $(window).resize(function(){
  903. myChart.resize();
  904. });
  905. }
  906. });
  907. }
  908. function getperson(org_id){
  909. return false;
  910. var type = $('#person'+org_id).attr('type');
  911. //查询数据
  912. var datas = {};
  913. $.ajax({
  914. url: '{:url("talkskill/get_person")}',
  915. type: 'post',
  916. data: {org_id:org_id,type:type},
  917. dataType: 'json',
  918. success: function(talk) {
  919. var arrs=JSON.parse(talk);
  920. var arr = arrs.data;
  921. // console.log(arr);
  922. // console.log(33);
  923. // return false;
  924. // if (arrs.ok==0) return false;
  925. if (type=='talkskill') {
  926. $('#data_statistics_c').html(arrs.html);
  927. var id = 'echartbox_b';
  928. } else if (type=='submit') {
  929. $('#data_statistics_e').html(arrs.html);
  930. var id = 'echartbox_d';
  931. } else {
  932. $('#data_statistics_d').html(arrs.html);
  933. var id = 'echartbox_c';
  934. }
  935. // console.log(arr);
  936. var myChart = echarts.init(document.getElementById(id));
  937. var option = {
  938. title: {
  939. text: '',
  940. subtext: '',
  941. left: 'center'
  942. },
  943. tooltip: {
  944. trigger: 'item'
  945. },
  946. legend: {
  947. orient: 'vertical',
  948. left: '20',
  949. type:'scroll',
  950. },
  951. series: [
  952. {
  953. name: '合计',
  954. type: 'pie',
  955. radius: '40%',
  956. center: ['50%', '43%'],
  957. data:arr,
  958. emphasis: {
  959. itemStyle: {
  960. shadowBlur: 10,
  961. shadowOffsetX: 10,
  962. shadowColor: 'rgba(0, 0, 0, 0.5)'
  963. }
  964. }
  965. }
  966. ]
  967. }
  968. myChart.setOption(option);
  969. $(window).resize(function(){
  970. myChart.resize();
  971. });
  972. }
  973. });
  974. }
  975. </script>
  976. {/block}