123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484 |
- {extend name="public/layout" /} {block name="title"}新增训练计划{/block} {block name="body"}
- <style type="text/css">
- html,
- body {
- display: block;
- min-width: 1100px;
- }
- body::-webkit-scrollbar {
- /*滚动条整体样式*/
- width: 4px;
- /*高宽分别对应横竖滚动条的尺寸*/
- height: 1px;
- }
- body::-webkit-scrollbar-thumb {
- /*滚动条里面小方块*/
- border-radius: 10px;
- box-shadow: inset 0 0 5px rgba(97, 184, 179, 0.1);
- background: #78b4b4;
- }
- body::-webkit-scrollbar-track {
- /*滚动条里面轨道*/
- box-shadow: inset 0 0 5px rgba(87, 175, 187, 0.1);
- border-radius: 10px;
- background: #ededed;
- }
- .layui-table thead tr,
- .layui-table-header {
- background-color: #D8E6F1 !important;
- }
- .layui-fluid {
- display: block;
- box-shadow: 0 0 4px 0 #B6CADE;
- border-radius: 5px;
- margin: 15px;
- background-color: #ffffff;
- }
- .layui-form-label {
- width: auto;
- }
- .layui-tab-title .layui-this {
- background-color: #fff !important;
- color: #249EFB !important;
- }
- .layui-tab-title .layui-this:after {
- border: none;
- border-bottom: 4px solid #28A1FF !important;
- width: 60%;
- left: 50%;
- transform: translateX(-50%);
- }
- .layui-tab-title li {
- background-color: #FFF;
- margin: 0px 5px;
- }
- .layui-btn-xs,
- .layui-btn-xs:hover {
- border: 1px solid #249EFB;
- background-color: #fff;
- color: #249EFB;
- padding: 0px 10px;
- }
- .layui-btn-danger,
- .layui-btn-danger:hover {
- color: #FF5722;
- background-color: #fff;
- border: 1px solid #FF5722;
- padding: 0px 10px;
- }
- .layui-btn-primary {
- color: #249EFB;
- border: 1px solid #249EFB;
- }
- .layui-btn-primary:hover {
- background-color: #E3F7FF;
- color: #249EFB;
- }
- .flex-row {
- display: flex;
- justify-content: space-around;
- align-items: center;
- background-color: #fff;
- margin: 15px;
- height: 130px;
- box-shadow: 0 0 4px 0 #b6cade;
- border-radius: 5px;
- }
- .flex-item {
- display: flex;
- flex-direction: column;
- justify-content: center;
- align-items: center;
- }
- .font-weight {
- font-weight: 600;
- }
- .font32 {
- font-size: 32px;
- }
- .mt10 {
- margin-top: 10px;
- }
- .layui-form-item .layui-inline {
- margin-bottom: 0px;
- margin-right: 0px !important;
- }
- .block {
- display: inline-block;
- width: 100%;
- height: 100%;
- }
- .layui-tab-title {
- border-bottom: 1px solid #f5f5f5;
- }
- .layui-layer-iframe .layui-layer-btn, .layui-layer-page .layui-layer-btn {
- display: flex !important;
- justify-content: center !important;
- }
- </style>
- <body>
- <div class="flex-row">
- <div class="flex-item">
- <span class="font-weight font32">{$data.plan_count}</span>
- <span class="mt10">训练计划数</span>
- </div>
- <div class="flex-item">
- <span class="font-weight font32">{$data.person_time}</span>
- <span class="mt10">训练人次</span>
- </div>
- <div class="flex-item">
- <span class="font-weight font32">{$data.passed_count}</span>
- <span class="mt10">通过训练人次</span>
- </div>
- <div class="flex-item">
- <span class="font-weight font32">{$data.no_passed_count}</span>
- <span class="mt10">未通过训练人次</span>
- </div>
- <div class="flex-item">
- <span class="font-weight font32">{$data.reviewed}</span>
- <span class="mt10">待审核</span>
- </div>
- </div>
- <div class="layui-fluid">
- <div class="layui-card">
- <div class="layui-tab">
- <ul class="layui-tab-title">
- <li class="layui-this">
- 训练营管理
- </li>
- <li>
- <a href="{:url('camp/personnel')}">训练人员管理</a>
- </li>
- <li>
- <a href="{:url('camp/verify')}">转正审核</a>
- </li>
- </ul>
- </div>
- <div class="layui-form layui-card-header layuiadmin-card-header-auto">
- <div class="layui-form-item">
- <div style="float: left;">
- <div class="layui-inline">
- <div class="layui-input-inline">
- <button class="layui-btn layui-btn-primary layuiadmin-btn-course"
- data-type="add">创建训练营</button>
- </div>
- </div>
- </div>
- <div style="float:right;" class="flexRow">
- <div class="layui-inline">
- <div class="layui-input-inline">
- <input type="text" name="keyword" id="" class="layui-input keyword"
- placeholder="请输入关键字" />
- </div>
- </div>
- <div class="layui-inline">
- <button class="layui-btn layuiadmin-btn-useradmin searchBtn submitbtn" lay-submit
- lay-filter="search">
- <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
- </button>
- </div>
- </div>
- </div>
- </div>
- <div class="layui-card-body">
- <table lay-filter="training-plan" id="training-plan"></table>
- </div>
- </div>
- </div>
- </body>
- {/block} {block name="js"}
- <script type="text/html" id="table-train-action">
- <a class="layui-btn layui-btn-xs" href="{:url('camp/settrainingcamp')}?id={{d.id}}" lay-event="train-setting">设置训练营</a>
- <a class="layui-btn layui-btn-xs" lay-event="train-obj">训练对象</a>
- <!-- <a class="layui-btn layui-btn-xs" lay-event="train-on">上架</a> -->
- <a class="layui-btn layui-btn-xs" lay-event="train-edit">编辑</a>
- <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="train-del">删除</a>
- </script>
- <script type="text/html" id="comment">
- <a class="layui-table-link" lay-event="commentCount">{{d.commentCount}}</a>
- </script>
- <script type="text/html" id="statistics">
- <a href="javascript:void(0)" lay-event="viewStatistics" style="color:blue;">查看</a>
- </script>
- <script type="text/html" id="complete">
- <a href="javascript:void(0)" lay-event="completePeople" style="color:blue;">500</a>
- </script>
- <script type="text/html" id="noPass">
- <a href="javascript:void(0)" lay-event="NOPassPeople" style="color:blue;">600</a>
- </script>
- <script type="text/html" id="addtimeTpl">
- {{d.start_date}}至{{d.end_date}}
- </script>
- <script>
- layui.config({
- base: '__LAYUI__/',
- urlbase: '/sys'
- }).extend({
- index: 'lib/index'
- }).use(['index', 'table', 'layedit', 'element'], function () {
- var $ = layui.$,
- table = layui.table,
- element = layui.element,
- form = layui.form,
- cancelIds = [],
- campIdNum = null;
- var field = {};
- form.on('submit(search)', function (data) {
- var keyword = $('.keyword').val();
- field['keyword'] = keyword;
- //执行重载
- table.reload('training-plan', {
- where: field
- , page: { curr: 1 }
- });
- });
- document.onkeydown = function (event) {
- var e = event || window.event || arguments.callee.caller.arguments[0];
- if (e && e.keyCode == 13) {
- $(".submitbtn").trigger("click");
- }
- };
- window.setCampFunc = function(ids, id) {
- cancelIds = JSON.parse(JSON.stringify(ids));
- campIdNum = JSON.parse(JSON.stringify(id));
- }
- //事件
- var active = {
- add: function () {
- layer.open({
- type: 2,
- title: ['创建训练营', 'color:#333333;background-color:#D8E6F1;'],
- content: '{:url("camp/createtrainingcamp")}',
- resize: false,
- area: ['80%', '80%'],
- // btn: ['确定', '取消'],
- yes: function (index, layero) {
- //点击确认触发 iframe 内容中的按钮提交
- // var submit = layero.find('iframe').contents().find("#activity-submit");
- // submit.click();
- }
- });
- }
- };
- //话术列表
- table.render({
- elem: '#training-plan',
- autoSort: false,
- url: "{:url('camp/list')}",
- cols: [
- [{
- type: 'numbers',
- field: 'id',
- width: '8%',
- title: '编号',
- sort: true
- }, {
- field: 'title',
- title: '训练名称',
- }, {
- title: '添加时间',
- field: 'addtime',
- }, {
- title: '训练时间',
- field: 'addtime',
- templet: '#addtimeTpl',
- }, {
- title: '数据统计',
- templet: '#statistics',
- }, {
- title: '操作',
- width: '30%',
- align: 'center',
- fixed: 'right',
- toolbar: '#table-train-action'
- }]
- ],
- page: true,
- limit: 30,
- height: 'full-350',
- text: '对不起,加载出现异常!'
- });
- showDialog();
- function showDialog() {
- setTimeout(() => {
- let msg = sessionStorage.getItem('Dialog');
- let data = sessionStorage.getItem('trainData') ? JSON.parse(sessionStorage.getItem('trainData')) : '';
- if (msg && (data && data.id)) {
- $.ajax({
- url: "{:url('camp/check')}",
- type: 'post',
- data: {
- id: data.id
- },
- success: function (res) {
- if (res.code == 0) {
- if (res.data == 0) {
- layer.alert('训练人员无法在规定训练周期内完成训练,请重新更改训练周期', { title: ['信息', 'color:#333333;background-color:#D8E6F1;'], }, function (index) {
- layer.close(index);
- });
- }
- }
- }
- });
- sessionStorage.removeItem('Dialog');
- sessionStorage.removeItem('trainData');
- }
- }, 1500)
- }
- //监听列表
- table.on('tool(training-plan)', function (obj) {
- switch (obj.event) {
- case 'NOPassPeople':
- layer.open({
- type: 2,
- title: ['未通过人员', 'color:#333333;background-color:#D8E6F1;'],
- content: '{:url("camp/nopass")}',
- resize: false,
- area: ['80%', '80%'],
- });
- break;
- case 'completePeople':
- layer.open({
- type: 2,
- title: ['已完成人员', 'color:#333333;background-color:#D8E6F1;'],
- content: '{:url("camp/complete")}',
- resize: false,
- area: ['80%', '80%'],
- });
- break;
- case 'viewStatistics':
- layer.open({
- type: 2,
- title: ['数据统计', 'color:#333333;background-color:#D8E6F1;'],
- content: '{:url("camp/datastatistics")}?id=' + obj.data.id,
- resize: false,
- area: ['80%', '80%'],
- });
- break;
- case 'train-setting':
- sessionStorage.setItem('trainData', JSON.stringify(obj.data));
- break;
- case 'train-obj':
- if (obj.data.campPlan && obj.data.campPlan.length) {
- sessionStorage.setItem('trainData', JSON.stringify(obj.data));
- layer.open({
- type: 2,
- title: ['训练对象', 'color:#333333;background-color:#D8E6F1;'],
- content: '{:url("camp/training_object")}?id=' + obj.data.id,
- area: ['80%', '80%'],
- btn: ['确定指派'],
- end: function (index, layero) {
- // layer.close(index);
- showDialog();
- },
- yes: function (index, layero) {
- cancelIds = [];
- campIdNum = null;
- //点击确认触发 iframe 内容中的按钮提交
- var submit = layero.find('iframe').contents().find("#activity-submit");
- submit.click();
- },
- cancel: function () {
- if (campIdNum && cancelIds.length) {
- $.ajax({
- url: '{:url("camp/training_object")}?id=' + campIdNum,
- data: {
- pid: cancelIds.join(','), type: 'per', res: '0'
- },
- type: 'get',
- success: function(res) {
- if (res.code==0) {
- cancelIds = [];
- campIdNum = null;
- console.log('取消当前所有选中的员工');
- }
- },
- });
- }
- }
- });
- } else {
- layer.msg('请先创建训练计划', {
- anim: 6
- , time: 2000
- });
- }
- break;
- case 'train-on':
- break;
- case 'train-edit':
- layer.open({
- type: 2,
- title: ['编辑', 'color:#333333;background-color:#D8E6F1;'],
- content: "{:url('camp/edittrainingcamp')}?id=" + obj.data.id,
- resize: false,
- area: ['80%', '80%'],
- // btn: ['确定', '取消'],
- end: function (index, layero) {
- //点击确认触发 iframe 内容中的按钮提交
- // var submit = layero.find('iframe').contents().find("#talkskill-submit");
- // submit.click();
- showDialog();
- }
- });
- break;
- case 'train-del':
- layer.confirm('确定删除?', { title: ['信息', 'color:#333333;background-color:#D8E6F1;'], }, function (index) {
- $.ajax({
- url: "{:url('camp/camp_del')}?id=" + obj.data.id,
- type: 'post',
- success: function (res) {
- if (res.code == 0) {
- table.reload('training-plan', {
- page: { curr: 1 }
- });
- layer.msg('删除成功', {
- anim: 6
- , time: 2000
- });
- } else {
- layer.msg(res.msg, {
- anim: 6
- , time: 2000
- });
- }
- }
- });
- layer.close(index);
- });
- break;
- }
- });
- $('.layui-btn.layuiadmin-btn-course').on('click', function () {
- var type = $(this).data('type');
- active[type] ? active[type].call(this) : '';
- });
- });
- </script>
- {/block}
|