12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055 |
- {extend name="public/layout" /}
- {block name="title"}客户数据统计{/block}
- {block name="head"}
- {include file="public/head"}
- <style>
- html,
- body {
- min-width: 1100px;
- }
- .body-h {
- display: block;
- /* box-shadow: 0 0 4px 0 #B6CADE; */
- border-radius: 5px;
- margin: 15px;
- background-color: #ffffff;
- }
- .layui-table th:last-child {
- border-right: none;
- }
- .layui-table-view .layui-table {
- /* width:100% */
- }
- .layui-table thead tr,
- .layui-table-header {
- background-color: #D8E6F1 !important;
- }
- .line-middle {
- width: 10px;
- height: 100%;
- margin: 0px 10px;
- }
- .line {
- width: 10px;
- height: 2px;
- background-color: #999999;
- }
- .mb0 {
- margin-bottom: 0px;
- }
- .layui-btn {
- background-color: #fff;
- color: #555;
- border: 1px solid #c9c9c9
- }
- .layui-btn:hover {
- background-color: #fff;
- color: #555;
- border: 1px solid #249efb;
- }
- .layui-btn-primary,
- .sBtn {
- background-color: #249efb;
- color: #fff;
- border: 1px solid #249efb;
- }
- .layui-btn-primary:hover {
- background-color: #249efb;
- color: #fff;
- border: 1px solid #249efb;
- }
- .sBtn:hover {
- background-color: #249efb;
- color: #fff;
- border: 1px solid #249efb;
- }
- .flex-row,
- .row {
- display: flex;
- }
- .align-center {
- align-items: center;
- }
- .ml10 {
- margin-left: 10px;
- }
- .mt10 {
- margin-top: 10px;
- }
- .padding-tlr {
- padding: 15px 15px 0px;
- }
- .layui-input-block {
- margin-left: 0px;
- }
- .justify-end {
- justify-content: flex-end;
- }
- .justify-between {
- justify-content: space-between;
- }
- .layui-table td,
- .layui-table th {
- box-sizing: border-box !important;
- }
- .layui-table-view .layui-table {
- width: 100%;
- }
- .layui-tab-title {
- /* left: 25px; */
- margin-top: 15px;
- }
- /* .layui-this {
- color: #249EFB !important;
- } */
- .layui-tab-title li {
- margin: 0px 5px;
- border-radius: 2px;
- }
- .layui-tab-brief>.layui-tab-more li.layui-this:after,
- .layui-tab-brief>.layui-tab-title .layui-this:after {
- border: none;
- }
- .layui-tab-title .layui-this:after {
- width: 50px;
- height: 4px;
- background-color: #249EFB;
- top: 37px;
- left: 50%;
- transform: translateX(-50%);
- }
- .layui-tab-content {
- padding: 0;
- }
- .layui-table-body {
- height: 66vh;
- }
- table tr td a {
- color: #249EFB;
- }
- .layui-tab-title li.lineicon {
- float: right;
- background-color: #fff !important;
- margin-top: 10px;
- }
- .lineicon img {
- display: block;
- width: 24px;
- }
- .layui-tab-title {
- border-bottom: 1px solid #f5f5f5;
- }
- .layui-card-body .layui-table-body {
- overflow-y: auto !important;
- height: 75vh;
- }
- .layui-table td,
- .layui-table th,
- .layui-table-col-set,
- .layui-table-fixed-r,
- .layui-table-grid-down,
- .layui-table-header,
- .layui-table-page,
- .layui-table-tips-main,
- .layui-table-tool,
- .layui-table-total,
- .layui-table-view,
- .layui-table[lay-skin=line],
- .layui-table[lay-skin=row] {
- border-color: #ccc !important;
- }
- .lay-mask {
- width: 100%;
- height: 100%;
- background-color: rgba(0, 0, 0, 0.3);
- position: fixed;
- top: 0px;
- left: 0px;
- z-index: 9999 !important;
- }
- .lay-block {
- width: 400px;
- height: 100%;
- background-color: #fff;
- position: absolute;
- right: 0px;
- top: 0px;
- box-sizing: border-box;
- padding: 10px;
- overflow: auto;
- }
- .lay-title {
- width: 100%;
- height: 40px;
- display: flex;
- align-items: center;
- justify-content: space-between;
- }
- .lay-title>span {
- font-size: 16px;
- color: #333333;
- font-weight: 600;
- }
- .lay-title>i {
- font-weight: 600;
- cursor: pointer;
- }
- .layui-content {
- width: 100%;
- height: auto;
- }
- .lay-item {
- width: 100%;
- height: 50px;
- display: flex;
- align-items: center;
- justify-content: space-between;
- }
- .lay-item>div {
- display: flex;
- align-items: center;
- }
- .lay-item>div>span {
- margin-left: 6px;
- }
- .layui-form-switch {
- margin-top: 0px !important;
- transform: scale(0.8, 0.8);
- }
- .layui-fluid{padding:15px 0;}
- .layui-card{padding:15px;}
- .selectDateBox {
- position: absolute;
- width: 330px;
- height: 100px;
- box-shadow: 0 2px 4px rgb(0 0 0 / 12%);
- background-color: #fff;
- z-index: 99999 !important;
- top: 45px;
- box-sizing: border-box;
- padding: 5px 8px;
- }
- .selecstDateBox {
- position: absolute;
- width: 330px;
- height: 100px;
- box-shadow: 0 2px 4px rgb(0 0 0 / 12%);
- background-color: #fff;
- z-index: 99999 !important;
- top: 45px;
- right: 0;
- box-sizing: border-box;
- padding: 5px 8px;
- }
- .date-flex,.date-flex1 {
- display: flex;
- align-items: center;
- }
-
- .date-box {
- padding: 15px 0px 10px;
- }
- #rangeDepart {
- width: 260px;
- height: 38px;
- }
- xm-select > .xm-body {
- z-index: 99999 !important;
- }
- .intelanaly{
- position: relative;
- top: -30px;
- float: right;
- }
- .intelanaly a{
- color:#249EFB;
- margin-left: 10px;
- margin-right: 10px;
- }
- </style>
- {/block}
- {block name="body"}
- <!-- -->
- <div class="layui-tab layui-tab-brief body-h" lay-filter="tabnavs"
- style="background-color: #fff;margin:15px;border-radius: 5px;box-sizing: border-box;height: 96vh;padding: 1px 0;">
- <ul class="layui-tab-title">
- <li class="layui-this customer-data">客户数据统计</li>
- {auth:check name="statistics/clue"}
- <li class="clue-statis">获客统计</li>
- {/auth:check}
-
- {auth:check name="statistics/table"}<li class="large-table">客户跟进数据</li>{/auth:check}
- <li class="statistics_data">渠道统计</li>
- <li class="behavior_statistics">行为统计</li>
- <li class="high_behavior_statistics">高层</li>
- <li class="manage_statistics">管理层</li>
- <li class="customer_list">客户统计列表</li>
- <li class="general_statistics">总统计</li>
- {auth:check name="statistics/new_table_data"}<li class="large-tables">统计部报表</li>{/auth:check}
- {auth:check name="statistics/office_table_data"}<li class="office_statistics">总经办报表</li>{/auth:check}
- <li></li>
- </ul>
- <div class="intelanaly"><a href="/largescreen.html#/intelanaly?r={$rootId}" target="_blank" data-a="{$Request.root}">打开智能大屏</a><a class="copy" href="javascript:void(0)" data-link="{$Request.host}/largescreen.html#/intelanaly?r={$rootId}">复制链接</a></div>
- <div class="channelTips" style="width:100%;background-color: #f2f2f2;padding: 10px 0px;">
- <div
- style="width: 100%;box-sizing: border-box;padding: 15px 10px;background-color: #F0F8FF;color: #0567B4;border-radius: 10px;">
- 只统计填写渠道的客户</div>
- </div>
- <div class="layui-tab-content">
- <!-- 1 -->
- <div class="layui-tab-item layui-show">
- <div class="layui-fluid">
- <div class="layui-card">
- <div class="search-form layui-form padding-tlr">
- <div class="flex-row align-center justify-between">
- <div class="flex-row align-center">
- {if $Request.get.type == 2}
- <div class="layui-inline" style="float: left;">
- <div class="goback">
- <!-- <a href="javascript:history.back(-1)" style="color:#269efb;"> -->
- <a href="{:url('statistics/customer')}" style="color:#269efb;margin-right: 10px;">
- <i class="layui-icon layui-icon-return"></i>
- <span>返回</span>
- </a>
- </div>
- </div>
- {/if}
- <!-- <div class="layui-inline row ml10" id="timeBtn">
- <input type="button" class="layui-btn" value="今日" />
- <input type="button" class="layui-btn" value="3天" />
- <input type="button" class="layui-btn" value="7天" />
- <input type="button" class="layui-btn" value="1个月" />
- </div> -->
- <!-- <div class="layui-inline ml10">
- <input type="text" class="layui-input" id="sDate" autocomplete="off"
- name="start_date" placeholder="选择开始日期">
- </div>
- <div class="line-middle">
- <div class="line"></div>
- </div>
- <div class="layui-inline">
- <input type="text" class="layui-input" autocomplete="off" id="eDate" name="end_date"
- placeholder="选择结束日期">
- </div> -->
-
-
-
- <div class="layui-input-inline layui-form mdt10" style="display:inline-block">
- <!-- <select name="select_org_id" class="type_id" id="select_org_id" lay-search>
- <option value="">请选择部门</option>
- {volist name="org" id="i"}
- <option value="{$i.id}">{$i.name}</option>
- {/volist}
- </select> -->
- <div id="rangeDepart"></div>
- </div>
-
- <div class="layui-input-inline layui-form ml10" style="display:inline-block;width:200px;">
- <!-- <label class="layui-form-label" style="width: 60px;">跟进时间</label> -->
- <div class="layui-input-inline select-date relative">
- <!-- 注意:这一层元素并不是必须的 -->
- <input type="hidden" id="istype" value="">
- <input type="text" class="layui-input" id="sDate" name="start_date" placeholder="开始日期 - 结束日期"
- autocomplete="off">
- <div data-type="" class="selecstDateBox layui-hide">
- <div data-type="" class="date-flex1">
- <div data-type="today" class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs">今日
- </div>
- <div data-type="yesterday" class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs">昨日</div>
- <div data-type="week" class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs">本周
- </div>
- <div data-type="lastWeek" class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs">上周</div>
- <div data-type="month" class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs">本月
- </div>
- <div data-type="lastMonth" class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs">上月</div>
- <div data-type="all" class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs">
- 累计</div>
- </div>
- <div data-type="" class="date-box">
- <input data-type="" type="text" id="select_sDate" placeholder="选择开始时间 - 结束时间" readonly autocomplete="off"
- class="layui-input">
- </div>
- </div>
- </div>
- </div>
-
-
-
-
- </div>
- <div>
- <button class="layui-btn sBtn ml10 submitbtn" lay-submit
- lay-filter="table-search">筛选</button>
- </div>
- </div>
- </div>
- <div class="layui-card-body">
- <table lay-filter="datalist" id="list"></table>
- </div>
- </div>
- </div>
- </div>
- <!-- 1 -->
- {auth:check name="statistics/clue"}
- <!-- 2 -->
- <div class="layui-tab-item" style="height:90vh;">
- <iframe src="clue.html" style="width: 100%;height:100%;" scrolling="0" frameborder="0"></iframe>
- </div>
- <!-- 2 -->
- {/auth:check}
- <!-- 4 -->
- {auth:check name="statistics/table"}
- <div class="layui-tab-item" style="height:90vh;">
- <iframe id="iframe04" src="" style="width: 100%;height:100%;" scrolling="0" frameborder="0"></iframe>
- </div>
- {/auth:check}
- <!-- 5 渠道统计 -->
- <div class="layui-tab-item" style="height:80vh;">
- <iframe id="iframe05" src="" style="width: 100%;height:100%;" scrolling="0" frameborder="0"></iframe>
- </div>
- <!-- 6 行为统计 -->
- <div class="layui-tab-item" style="height:86vh;">
- <iframe id="iframe06" src="" style="width: 100%;height:100%;" scrolling="0" frameborder="0"></iframe>
- </div>
- <!-- 7 高层行为统计 -->
- <div class="layui-tab-item" style="height:86vh;">
- <iframe id="iframe07" src="" style="width: 100%;height:100%;" scrolling="0" frameborder="0"></iframe>
- </div>
- <!-- 8 管理层 -->
- <div class="layui-tab-item" style="height:86vh;">
- <iframe id="iframe08" src="" style="width: 100%;height:100%;" scrolling="0" frameborder="0"></iframe>
- </div>
- <!-- 9 客户统计列表 -->
- <div class="layui-tab-item" style="height:80vh;">
- <iframe id="iframe09" src="" style="width: 100%;height:100%;" scrolling="0" frameborder="0"></iframe>
- </div>
- <!-- 10 总统计 -->
- <div class="layui-tab-item" style="height:86vh;">
- <iframe id="iframe10" src="" style="width: 100%;height:100%;" scrolling="0" frameborder="0"></iframe>
- </div>
- <!-- 11 统计总报表 -->
- {auth:check name="statistics/new_table_data"}
- <div class="layui-tab-item" style="height:86vh;">
- <iframe id="iframe11" src="" style="width: 100%;height:100%;" scrolling="0" frameborder="0"></iframe>
- </div>
- {/auth:check}
- {auth:check name="statistics/office_table_data"}
- <!-- 12 总经办报表 -->
- <div class="layui-tab-item" style="height:86vh;">
- <iframe id="iframe12" src="" style="width: 100%;height:100%;" scrolling="0" frameborder="0"></iframe>
- </div>
- {/auth:check}
- </div>
- </div>
- <!-- -->
- <div class="lay-mask layui-hide">
- <div class="lay-block">
- <div class="lay-title">
- <span>表格显示设置</span>
- <i class="layui-icon layui-icon-close"></i>
- </div>
- <div class="layui-content layui-form">
- </div>
- </div>
- </div>
- {/block}
- {block name="js"}
- <script type="text/html" id="org_name">
- <a href="customer.html?type=2&org_id={{d.id}}">{{d.org_name}}</a>
- </script>
- <script src="__STATIC__/layui/layui/lay/modules/xm-select.js" type="text/javascript" charset="utf-8"></script>
- <script type="text/javascript" src="__STATIC__/js/Sortable.js"></script>
- <script>
- layui.use(['table', 'form', 'laydate', 'element'], function () {
- let table = layui.table,
- form = layui.form,
- element = layui.element,
- laydate = layui.laydate,
- $ = layui.$;
- $('body').attr('layadmin-themealias', 'default');
- var bodyH = $('.body-h').height() * 0.82;
- document.onkeydown = function (event) {
- var e = event || window.event || arguments.callee.caller.arguments[0];
- if (e && e.keyCode == 13) {
- $(".submitbtn").trigger("click");
- }
- };
- //执行一个laydate实例
- // laydate.render({
- // elem: '#sDate' //指定元素
- // });
- // laydate.render({
- // elem: '#eDate' //指定元素
- // });
-
-
- $('#addWechatTime').click(function () {
- $('.selectDateBox').toggleClass('layui-hide');
- $('.selecstDateBox').addClass('layui-hide');
- })
- $('#sDate').click(function () {
- $('.selecstDateBox').toggleClass('layui-hide');
- $('.selectDateBox').addClass('layui-hide');
- })
- laydate.render({
- elem: '#select_date'
- , type: 'date'
- , range: true
- , format: 'yyyy/MM/dd'
- , trigger: 'click',//呼出事件改成click
- done: function (value, date, endDate) {
- $('.selectDateBox').addClass('layui-hide');
- $('#addWechatTime').val(value);
- }
- });
- laydate.render({
- elem: '#select_sDate' //指定元素
- , type: 'date'
- , format: 'yyyy/MM/dd'
- , range: true
- , trigger: 'click',//呼出事件改成click
- done: function (value, date, endDate) {
- $('.selecstDateBox').addClass('layui-hide');
- $('#sDate').val(value);
- }
- });
- var dateObj = {};
- setDate();
- function setDate() {
- let date = new Date();
- let year = date.getFullYear();
- let month = date.getMonth() + 1;
- let day = date.getDate();
- let lastDate = new Date(new Date().getTime() - (1 * 24 * 60 * 60 * 1000));
- let lastYear = lastDate.getFullYear();
- let lastMonth = lastDate.getMonth() + 1;
- let lastDay = lastDate.getDate();
-
- let weekObj = getMondayAndSunday();
- let monthObj = getMonthFirstDayAndLastDay();
- dateObj = {
- today: `${year}/${month}/${day}`,
- yesterday: `${lastYear}/${lastMonth}/${lastDay}`,
- ...weekObj,
- ...monthObj
- }
- }
-
-
- var departTree = xmSelect.render({
- el: "#rangeDepart",
- name: 'select_org_id',
- autoRow: true,
- filterable: true,
- tips: '请选择',
- radio: true,
- tree: {
- show: true,
- showFolderIcon: true,
- showLine: true,
- indent: 20,
- expandedKeys: [ -3 ],
- //是否严格遵守父子模式
- strict: false,
- },
- height: "200px",
- data: [],
- //文本显示模式
- //处理方式
- });
-
- $.ajax({
- url: '{:url("statistics/get_person")}',
- type: "post",
- data: {},
- success: function(res) {
- departTree.update({data:res})
- }
- })
-
-
- $('.date-flex div').click(function () {
- let type = $(this).prop('dataset').type;
- if (type == 'today') {
- $('#select_date').val(`${dateObj.today} - ${dateObj.today}`);
- $('#addWechatTime').val(`${dateObj.today} - ${dateObj.today}`);
- } else if (type == 'yesterday') {
- $('#select_date').val(`${dateObj.yesterday} - ${dateObj.yesterday}`);
- $('#addWechatTime').val(`${dateObj.yesterday} - ${dateObj.yesterday}`);
- } else if (type == 'week') {
- $('#select_date').val(`${dateObj.thisWeekMonday} - ${dateObj.thisWeekSunday}`);
- $('#addWechatTime').val(`${dateObj.thisWeekMonday} - ${dateObj.thisWeekSunday}`);
- } else if (type == 'lastWeek') {
- $('#select_date').val(`${dateObj.lastWeekMonday} - ${dateObj.lastWeekSunday}`);
- $('#addWechatTime').val(`${dateObj.lastWeekMonday} - ${dateObj.lastWeekSunday}`);
- } else if (type == 'month') {
- $('#select_date').val(`${dateObj.thisMonthFirstDay} - ${dateObj.thisMonthLastDay}`);
- $('#addWechatTime').val(`${dateObj.thisMonthFirstDay} - ${dateObj.thisMonthLastDay}`);
- } else if (type == 'lastMonth') {
- $('#select_date').val(`${dateObj.lastMonthFirstDay} - ${dateObj.lastMonthLastDay}`);
- $('#addWechatTime').val(`${dateObj.lastMonthFirstDay} - ${dateObj.lastMonthLastDay}`);
- } else {
- $('#select_date').val('');
- $('#sDate').val('')
- $('#addWechatTime').val('');
- }
- $('.selectDateBox').addClass('layui-hide');
- })
-
- $('.date-flex1 div').click(function () {
- let type = $(this).prop('dataset').type;
- if (type == 'today') {
- itmesss = dateToYYYYMMDD(dateObj.today);
- itmesss2 = dateToYYYYMMDD(dateObj.today);
- $('#select_sDate').val(itmesss+' - '+itmesss2);
- $('#sDate').val(itmesss+' - '+itmesss2);
- } else if (type == 'yesterday') {
- itmesss = dateToYYYYMMDD(dateObj.yesterday);
- itmesss2 = dateToYYYYMMDD(dateObj.yesterday);
- $('#select_sDate').val(itmesss+' - '+itmesss2);
- $('#sDate').val(itmesss+' - '+itmesss2);
- } else if (type == 'week') {
- $('#select_sDate').val(`${dateObj.thisWeekMonday} - ${dateObj.thisWeekSunday}`);
- $('#sDate').val(`${dateObj.thisWeekMonday} - ${dateObj.thisWeekSunday}`);
- } else if (type == 'lastWeek') {
- $('#select_sDate').val(`${dateObj.lastWeekMonday} - ${dateObj.lastWeekSunday}`);
- $('#sDate').val(`${dateObj.lastWeekMonday} - ${dateObj.lastWeekSunday}`);
- } else if (type == 'month') {
- $('#select_sDate').val(`${dateObj.thisMonthFirstDay} - ${dateObj.thisMonthLastDay}`);
- $('#sDate').val(`${dateObj.thisMonthFirstDay} - ${dateObj.thisMonthLastDay}`);
- } else if (type == 'lastMonth') {
- $('#select_sDate').val(`${dateObj.lastMonthFirstDay} - ${dateObj.lastMonthLastDay}`);
- $('#sDate').val(`${dateObj.lastMonthFirstDay} - ${dateObj.lastMonthLastDay}`);
- } else {
- $('#select_sDate').val('');
- $('#sDate').val('');
- }
- $('.selecstDateBox').addClass('layui-hide');
- })
-
- function getMondayAndSunday() {
- var today = new Date();
-
- //构建当前日期,格式:2022-08-22 00:00:00
- var year = today.getFullYear(); //本年
- var month = today.getMonth() + 1; //本月
- var day = today.getDate(); //本日
- var newDate = new Date(year + "/" + month + "/" + day + " 00:00:00"); //年月日拼接
-
- var nowTime = newDate.getTime(); //当前的时间戳
- var weekDay = newDate.getDay(); //当前星期 0.1.2.3.4.5.6 【0 = 周日】
-
- var oneDayTime = 24 * 60 * 60 * 1000; //一天的总ms
-
- // 当前星期减去天数,如今天为周五,则本周一为周五的时间戳减去4天的时间戳。但周日特殊,周一至周六是周几的到的weekDay就是几,但是周日的到的为0,需特殊处理
- var thisWeekMondayTime = (1 - weekDay) * oneDayTime + nowTime; //本周一的时间戳
- if (weekDay == 0) {
- // weekDay = 0 为周日,此时本周一时间为周日减去6天的时间
- thisWeekMondayTime = nowTime - 6 * oneDayTime
- }
-
- var thisWeekSundayTime = thisWeekMondayTime + 6 * 24 * 60 * 60 * 1000 // 本周日
-
- var lastWeekMondayTime = thisWeekMondayTime - 7 * oneDayTime // 上周一
- var lastWeekSundayTime = thisWeekMondayTime - oneDayTime // 上周日
-
- var res = {
- thisWeekMonday: dateToYYYYMMDD(thisWeekMondayTime),
- thisWeekSunday: dateToYYYYMMDD(thisWeekSundayTime),
- lastWeekMonday: dateToYYYYMMDD(lastWeekMondayTime),
- lastWeekSunday: dateToYYYYMMDD(lastWeekSundayTime),
- }
- return res;
- }
-
- function getMonthFirstDayAndLastDay() {
- var date = new Date()
- // 值得注意的是,如果day取值为0,意味着取的是date时间的上一个月的最后一天,简单理解:date当前月的第一天,再减去一天
- var thisMonthFirstDay = date.setDate(1) // 本月第一天
- var thisMonthLastDay = new Date(date.getFullYear(), date.getMonth() + 1, 0) // 本月最后一天
-
- var lastMonthFirstDay = new Date(date.getFullYear(), date.getMonth() - 1, 1) // 上月第一天
-
- var lastMonthLastDay = date.setDate(0) // 上月最后一天
- // var day = new Date(date.getFullYear(), date.getMonth(), 0).getDate()
- // var lastMonthLastDay = new Date(date.getFullYear(), date.getMonth() - 1, day) // 上月最后一天
- var res = {
- thisMonthFirstDay: dateToYYYYMMDD(thisMonthFirstDay),
- thisMonthLastDay: dateToYYYYMMDD(thisMonthLastDay),
- lastMonthFirstDay: dateToYYYYMMDD(lastMonthFirstDay),
- lastMonthLastDay: dateToYYYYMMDD(lastMonthLastDay),
- }
- return res
- }
-
- function dateToYYYYMMDD(date) {
- var time = new Date(date);
- var y = time.getFullYear();
- var m = (time.getMonth() + 1);
- m = m > 9 ? m : '0' + m;
- var d = time.getDate();
- d = d > 9 ? d : '0' + d;
-
- return y + "/" + m + "/" + d;
- }
-
-
-
- $('.channelTips').hide();
- $(document).click('layui-tjbtn', function () {
- $('#iframe02').attr('src', 'follow_up.html');
- })
- $('.clue-statis').click(function () {
- $('.channelTips').hide();
- })
- $('.customer-data').click(function () {
- $('.channelTips').hide();
- })
- $('.large-screen').click(function () {
- $('.channelTips').hide()
- $('#iframe03').attr('src', 'inspectors.html');
- })
- $('.large-table').click(function () {
- $('.channelTips').hide()
- $('#iframe04').attr('src', 'table.html');
- })
- $('.statistics_data').click(function () {
- $('.channelTips').show()
- $('#iframe05').attr('src', 'channelStatistics.html');
- })
- $('.behavior_statistics').click(function () {
- $('.channelTips').hide()
- $('#iframe06').attr('src', 'behaviorStatistics.html');
- })
- $('.high_behavior_statistics').click(function () {
- $('.channelTips').hide()
- $('#iframe07').attr('src', 'highBehaviorStatistics.html');
- })
- $('.manage_statistics').click(function () {
- $('.channelTips').hide()
- $('#iframe08').attr('src', 'manageStatistics.html');
- })
- $('.customer_list').click(function () {
- $('.channelTips').hide()
- $('#iframe09').attr('src', 'customer_list.html');
- })
- $('.general_statistics').click(function () {
- $('.channelTips').hide()
- $('#iframe10').attr('src', 'generalStatistics.html');
- })
- $('.large-tables').click(function () {
- $('.channelTips').hide()
- $('#iframe11').attr('src', 'new_table_data.html');
- })
- $('.office_statistics').click(function () {
- $('.channelTips').hide()
- $('#iframe12').attr('src', 'office_table_data.html');
- })
- let cols1 = [[
- { templet: '#org_name', title: '部门名称', width: '11%', align: 'center', 'fixed': 'left' },
- { field: 'employee_num', title: '人效', width: '5%', align: 'center' },
- { field: 'unconfirm_num', title: '待确认', width: '5%', align: 'center' },
- { field: 'measure_num', title: '量房数', width: '5%', align: 'center' },
- { field: 'shop_num', title: '到店数', width: '5%', align: 'center' },
- { field: 'maika_num', title: '无忧数', width: '5%', align: 'center' },
- { field: 'meet_num', title: '见面数', width: '5%', align: 'center' },
- { field: 'meet_lv', title: '见面率', width: '7%', align: 'center' },
- { field: 'deposit_num', title: "定金数", width: '5%', align: 'center'},
- { field: 'deposit_lv', title: "交定率", width: '5%', align: 'center'},
- { field: 'deposit_total_money', title: "定金金额", width: '7%', align: 'center'},
- { field: 'signed_num', title: "合同数", width: '5%', align: 'center'},
- { field: 'signed_lv', title: "合同率", width: '7%', align: 'center'},
- { field: 'signed_total_money', title: "合同金额", width: '7%', align: 'center'},
- { field: 'average_val', title: '均单值', width: '7%', align: 'center' },
- { field: 'clue_num', title: '获客量', width: '5%', align: 'center' },
- { field: 'customer_num', title: '线索量', width: '5%', align: 'center' },
- { field: 'effective_num', title: '有效线索量', width: '5%', align: 'center' },
- { field: 'effective_lv', title: '有效率', width: '5%', align: 'center' }
- ]];
- let cols2 = [[
- { field: 'name', title: '员工名称', width: '11%', align: 'center', 'fixed': 'left' },
- { field: 'org_name', title: '部门名称', width: '10%', align: 'center' },
- { field: 'unconfirm_num', title: '待确认', width: '6%', align: 'center' },
- { field: 'measure_num', title: '量房数', width: '6%', align: 'center' },
- { field: 'shop_num', title: '到店数', width: '6%', align: 'center' },
- { field: 'maika_num', title: '无忧数', width: '5%', align: 'center' },
- { field: 'meet_num', title: '见面数', width: '6%', align: 'center' },
- { field: 'meet_lv', title: '见面率', width: '6%', align: 'center' },
- { field: 'deposit_num', title: "定金数", width: '5%', align: 'center' },
- { field: 'deposit_lv', title: "交定率", width: '5%', align: 'center' },
- { field: 'deposit_total_money', title: "定金金额", width: '5%', align: 'center' },
- { field: 'signed_num', title: "合同数", width: '5%', align: 'center' },
- { field: 'signed_lv', title: "合同率", width: '5%', align: 'center' },
- { field: 'signed_total_money', title: "合同金额", width: '5%', align: 'center' },
- { field: 'average_val', title: '均单值', width: '5%', align: 'center' },
- { field: 'clue_num', title: '获客量', width: '5%', align: 'center' },
- { field: 'customer_num', title: '线索量', width: '5%', align: 'center' },
- { field: 'effective_num', title: '有效线索量', width: '5%', align: 'center' },
- { field: 'effective_lv', title: '有效率', width: '5%', align: 'center' }
- ]];
- let cols = cols1;
- let url = '{:url("statistics/customer")}';
- if (location.search.search('type=2') > 0) {
- cols = cols2;
- url = '{:url("statistics/customer", ["type"=>2, "org_id"=>$Request.get.org_id])}';
- $('#istype').val(2);
- }
- table.render({
- elem: '#list'
- , url: url
- , page: true
- , height: bodyH
- , cols: cols
- , id: 'tablelist'
- });
- function setYMD(time) {
- let dateTime = new Date(time);
- let year = dateTime.getFullYear();
- let Month = dateTime.getMonth() + 1;
- let days = dateTime.getDate();
- return `${year}-${Month > 9 ? Month : '0' + Month}-${days > 9 ? days : '0' + days}`;
- }
- var dateArr = {};
- var today = new Date().getTime();
- var oneTime = 24 * 60 * 60 * 1000;
- var threeDay1 = today - 3 * oneTime;
- var sevenDay1 = today - 6 * oneTime;
- var oneMonth = today - 30 * oneTime;
- dateArr = {
- nowS: setYMD(today),
- nowE: setYMD(today),
- threeDayS: setYMD(threeDay1),
- threeDayE: setYMD(today),
- sevenDayS: setYMD(sevenDay1),
- sevenDayE: setYMD(today),
- oneMonthS: setYMD(oneMonth),
- oneMonthE: setYMD(today),
- }
- $('.lineicon').on('click', function () {
- window.parent.reloadInternet();
- // location.href="/dashboard/index/welcome.html";
- })
- $('#timeBtn').on('click', function (e) {
- if (!!(e.target.localName != 'input')) return;
- let o = document.querySelector('#timeBtn').children;
- if (e.target.classList.contains('layui-btn-primary') == true) {
- for (var i = 0; i < o.length; i++) {
- o[i].className = 'layui-btn';
- }
- $('#sDate').val('');
- $('#eDate').val('');
- return;
- } else {
- for (var i = 0; i < o.length; i++) {
- o[i].className = 'layui-btn';
- }
- e.target.className = 'layui-btn layui-btn-primary';
- if (!!(e.target.className.indexOf('layui-btn-primary') > 0)) {
- if (e.target.value == '今日') {
- $('#sDate').val(dateArr.nowS);
- $('#eDate').val(dateArr.nowE);
- } else if (e.target.value == '3天') {
- $('#sDate').val(dateArr.threeDayS);
- $('#eDate').val(dateArr.threeDayE);
- } else if (e.target.value == '7天') {
- $('#sDate').val(dateArr.sevenDayS);
- $('#eDate').val(dateArr.sevenDayE);
- } else {
- $('#sDate').val(dateArr.oneMonthS);
- $('#eDate').val(dateArr.oneMonthE);
- }
- }
- }
- })
- // ---------表格设置---------- //
- window.dialogFunc = function (tableData,types) {
- renderTableSwitch(tableData,types);
- $('.lay-mask').removeClass('layui-hide');
- }
- function renderTableSwitch(data,types) {
- let htmls = data.map((item, index) => {
- return `<div class="lay-item sort_time">
- <div>
- <img style="display:${types==55?'none':'block'}" src="__STATIC__/img/sorticon.png" width="16px" alt="">
- <span>${item.name}</span>
- </div>
- <div>
- <input type="checkbox" lay-filter="tableSort" ${item.show == 1 ? 'checked' : ''} name="${item.field}" lay-skin="switch">
- </div>
- </div>`;
- }).join('');
- $('.layui-content').html(htmls);
- setTimeout(() => {
- form.render();
- var check='';
- var names='';
- form.on('switch(tableSort)', function (data) {
- getdatalist(types);
- })
- if(types != 55){
- new Sortable($('.layui-content')[0], {
- handle: '.lay-item', // handle's class
- animation: 150,
- // 结束拖拽
- onEnd: function (/**Event*/evt) {
- getdatalist(types,0);
- },
- });
- }
- }, 300)
- }
-
- function getdatalist(types){
- let getCheckedField = $('.sort_time');
- let itemArr = [];
- let check;
- getCheckedField.each(function (i) {
- let ischeck = $(this).find('input').prop("checked");
- if(ischeck){
- check = 1
- }else{
- check = 0
- }
- let names = $(this).find('input').attr('name');
- itemArr.push({name:names, show: check, sort: i + 1 });
- })
- var datajson = JSON.stringify(itemArr);
- var typeVal = localStorage.getItem('XQ$SORT');
- $.ajax({
- type: "post",
- url: '{:url("statistics/fieldSetting")}',
- data: {
- type: typeVal,
- content:datajson
- },
- success: function (res) {
- window.ajaxslist();
- }
- })
- }
-
-
- $('.layui-icon-close').click(function () {
- $('.lay-mask').addClass('layui-hide');
- })
- $('.lay-block').click(function(e) {
- e.stopPropagation();
- })
- $('.lay-mask').click(function() {
- $(this).addClass('layui-hide');
- })
- // ---------表格设置---------- //
- form.on('submit(table-search)', function (data) {
- let field = data.field;
- let element = $('.layui-btn-primary');
- if (element && element[0]) {
- let el = element[0].value;
- }
- let option = {
- where: field
- , page: {
- curr: 1
- }
- };
- if ($('#istype').val() == 2) {
- option.cols = cols2
- } else {
- option.cols = cols1
- }
- //执行重载
- table.reload('tablelist', option);
- });
- function copyTextToClipboard(text) {
- if (navigator.clipboard && navigator.clipboard.writeText) {
- // 使用 Clipboard API
- navigator.clipboard.writeText(text)
- .then(function() {
- layer.msg('复制成功');
- })
- .catch(function(err) {
- fallbackCopyTextToClipboard(text);
- });
- } else {
- // 回退到 execCommand 方法
- fallbackCopyTextToClipboard(text);
- }
- }
- function fallbackCopyTextToClipboard(text) {
- var textarea = document.createElement('textarea');
- textarea.value = text;
- document.body.appendChild(textarea);
- textarea.select();
- document.execCommand('copy');
- document.body.removeChild(textarea);
- layer.msg('复制成功');
- }
- $('.copy').click(function(){
- let l = $(this).data("link");
- copyTextToClipboard(l);
- });
- })
- </script>
- {/block}
|