完成图表统计功能

This commit is contained in:
lilong 2020-05-09 10:54:31 +08:00
parent ecedca2952
commit 1a1b201064
12 changed files with 754 additions and 305 deletions

View File

@ -2,15 +2,12 @@
<project version="4">
<component name="ChangeListManager">
<list default="true" id="003b7c19-25d9-476a-8425-57fc330161a6" name="Default Changelist" comment="">
<change afterPath="$PROJECT_DIR$/app/Http/Controllers/Admin/RemindController.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/Http/Controllers/Admin/WasteController.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/resources/views/admin/remind/index.blade.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/resources/views/admin/waste/index.blade.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Http/Controllers/Admin/ProjectDesignController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/Admin/ProjectDesignController.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Http/Controllers/Admin/IndexController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/Admin/IndexController.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/database/seeds/MenuTableSeeder.php" beforeDir="false" afterPath="$PROJECT_DIR$/database/seeds/MenuTableSeeder.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/database/seeds/UserTableSeeder.php" beforeDir="false" afterPath="$PROJECT_DIR$/database/seeds/UserTableSeeder.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/views/admin/project/index.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/admin/project/index.blade.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/views/admin/index/index.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/admin/index/index.blade.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/views/admin/remind/index.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/admin/remind/index.blade.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/routes/admin.php" beforeDir="false" afterPath="$PROJECT_DIR$/routes/admin.php" afterDir="false" />
</list>
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
@ -23,7 +20,21 @@
<pharConfigPath>$PROJECT_DIR$/composer.json</pharConfigPath>
</component>
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300" />
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/resources/views/admin/remind/index.blade.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="314">
<caret line="59" column="44" selection-start-line="59" selection-start-column="44" selection-end-line="59" selection-end-column="44" />
<folding>
<element signature="n#style#0;n#span#0;n#!!top" expanded="true" />
<element signature="n#style#0;n#span#0;n#!!top" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="FindInProjectRecents">
<findStrings>
@ -44,6 +55,10 @@
<find>Merch</find>
<find>merchant</find>
<find>Merchant</find>
<find>options</find>
<find>LAY-index-heapcol</find>
<find>堆积柱状图</find>
<find>直接</find>
</findStrings>
<replaceStrings>
<replace>department</replace>
@ -52,8 +67,8 @@
</replaceStrings>
<dirStrings>
<dir>D:\wnmp\www\freeswitch-gui-laravel\vendor\mews\captcha</dir>
<dir>D:\wnmp\www\freeswitch-gui-laravel\public</dir>
<dir>D:\wnmp\www\freeswitch-gui-laravel\resources\views\admin\project_design</dir>
<dir>D:\wnmp\www\freeswitch-gui-laravel\public</dir>
</dirStrings>
</component>
<component name="Git.Settings">
@ -62,13 +77,6 @@
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<option value="$PROJECT_DIR$/resources/views/admin/department/_form.blade.php" />
<option value="$PROJECT_DIR$/resources/views/admin/department/index.blade.php" />
<option value="$PROJECT_DIR$/app/Http/Controllers/Admin/DepartmentController.php" />
<option value="$PROJECT_DIR$/database/migrations/2014_10_12_000000_create_users_table.php" />
<option value="$PROJECT_DIR$/app/Models/User.php" />
<option value="$PROJECT_DIR$/app/Http/Controllers/Admin/UserController.php" />
<option value="$PROJECT_DIR$/resources/views/admin/user/index.blade.php" />
<option value="$PROJECT_DIR$/resources/views/admin/user/create.blade.php" />
<option value="$PROJECT_DIR$/resources/views/admin/user/edit.blade.php" />
<option value="$PROJECT_DIR$/database/migrations/2019_11_14_110733_project.php" />
@ -104,15 +112,22 @@
<option value="$PROJECT_DIR$/routes/api.php" />
<option value="$PROJECT_DIR$/app/Http/Controllers/Admin/ProjectController.php" />
<option value="$PROJECT_DIR$/app/Http/Controllers/Admin/ProjectDesignController.php" />
<option value="$PROJECT_DIR$/storage/logs/laravel.log" />
<option value="$PROJECT_DIR$/routes/admin.php" />
<option value="$PROJECT_DIR$/resources/views/admin/remind/index.blade.php" />
<option value="$PROJECT_DIR$/app/Http/Controllers/Admin/WasteController.php" />
<option value="$PROJECT_DIR$/database/seeds/UserTableSeeder.php" />
<option value="$PROJECT_DIR$/database/seeds/MenuTableSeeder.php" />
<option value="$PROJECT_DIR$/app/Http/Controllers/Admin/RemindController.php" />
<option value="$PROJECT_DIR$/resources/views/admin/waste/index.blade.php" />
<option value="$PROJECT_DIR$/resources/views/admin/project/index.blade.php" />
<option value="$PROJECT_DIR$/app/Models/Cdr.php" />
<option value="$PROJECT_DIR$/app/Http/Controllers/Admin/CdrController.php" />
<option value="$PROJECT_DIR$/database/migrations/2019_11_20_165744_cdr.php" />
<option value="$PROJECT_DIR$/resources/views/admin/cdr/index.blade.php" />
<option value="$PROJECT_DIR$/database/seeds/MenuTableSeeder.php" />
<option value="$PROJECT_DIR$/database/seeds/UserTableSeeder.php" />
<option value="$PROJECT_DIR$/../index.php" />
<option value="$PROJECT_DIR$/resources/views/admin/index/index.blade.php" />
<option value="$PROJECT_DIR$/routes/admin.php" />
<option value="$PROJECT_DIR$/app/Http/Controllers/Admin/IndexController.php" />
<option value="$PROJECT_DIR$/storage/logs/laravel.log" />
<option value="$PROJECT_DIR$/resources/views/admin/remind/index.blade.php" />
</list>
</option>
</component>
@ -244,6 +259,7 @@
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="Scope" />
<pane id="ProjectPane">
<subPane>
<expand>
@ -251,11 +267,41 @@
<item name="freeswitch-gui-laravel" type="b2602c69:ProjectViewProjectNode" />
<item name="freeswitch-gui-laravel" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="freeswitch-gui-laravel" type="b2602c69:ProjectViewProjectNode" />
<item name="freeswitch-gui-laravel" type="462c0819:PsiDirectoryNode" />
<item name="app" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="freeswitch-gui-laravel" type="b2602c69:ProjectViewProjectNode" />
<item name="freeswitch-gui-laravel" type="462c0819:PsiDirectoryNode" />
<item name="resources" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="freeswitch-gui-laravel" type="b2602c69:ProjectViewProjectNode" />
<item name="freeswitch-gui-laravel" type="462c0819:PsiDirectoryNode" />
<item name="resources" type="462c0819:PsiDirectoryNode" />
<item name="views" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="freeswitch-gui-laravel" type="b2602c69:ProjectViewProjectNode" />
<item name="freeswitch-gui-laravel" type="462c0819:PsiDirectoryNode" />
<item name="resources" type="462c0819:PsiDirectoryNode" />
<item name="views" type="462c0819:PsiDirectoryNode" />
<item name="admin" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="freeswitch-gui-laravel" type="b2602c69:ProjectViewProjectNode" />
<item name="freeswitch-gui-laravel" type="462c0819:PsiDirectoryNode" />
<item name="resources" type="462c0819:PsiDirectoryNode" />
<item name="views" type="462c0819:PsiDirectoryNode" />
<item name="admin" type="462c0819:PsiDirectoryNode" />
<item name="remind" type="462c0819:PsiDirectoryNode" />
</path>
</expand>
<select />
</subPane>
</pane>
<pane id="Scope" />
</panes>
</component>
<component name="PropertiesComponent">
@ -266,11 +312,11 @@
</component>
<component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS">
<recent name="D:\wnmp\www\freeswitch-gui-laravel\app\Http\Controllers\Admin" />
<recent name="D:\wnmp\www\freeswitch-gui-laravel\resources\views\admin" />
<recent name="D:\wnmp\www\freeswitch-gui-laravel\app\Http\Controllers\Admin" />
<recent name="D:\wnmp\www\freeswitch-gui-laravel\database\migrations" />
<recent name="D:\wnmp\www\freeswitch-gui-laravel\app\Http\Controllers" />
<recent name="D:\wnmp\www\freeswitch-gui-laravel\app" />
<recent name="D:\wnmp\www\freeswitch-gui-laravel\app\Http\Requests\Admin\Project" />
</key>
<key name="MoveFile.RECENT_KEYS">
<recent name="D:\wnmp\www\freeswitch-gui-laravel\app\Http\Requests\Admin\Sip" />
@ -324,7 +370,9 @@
<workItem from="1588902619159" duration="186000" />
<workItem from="1588903291343" duration="1434000" />
<workItem from="1588907621373" duration="635000" />
<workItem from="1588915745995" duration="2835000" />
<workItem from="1588915745995" duration="6718000" />
<workItem from="1588936852248" duration="3654000" />
<workItem from="1588986695085" duration="5949000" />
</task>
<task id="LOCAL-00001" summary="完善系统管理">
<created>1588737340771</created>
@ -354,16 +402,24 @@
<option name="project" value="LOCAL" />
<updated>1588904691526</updated>
</task>
<option name="localTasksCounter" value="5" />
<task id="LOCAL-00005" summary="添加公海库功能">
<created>1588926100307</created>
<option name="number" value="00005" />
<option name="presentableId" value="LOCAL-00005" />
<option name="project" value="LOCAL" />
<updated>1588926100307</updated>
</task>
<option name="localTasksCounter" value="6" />
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="96076000" />
<option name="totallyTimeSpent" value="109562000" />
</component>
<component name="ToolWindowManager">
<frame x="-8" y="-8" width="1936" height="1056" extended-state="0" />
<editor active="true" />
<layout>
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.20895523" />
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.21321961" />
<window_info id="Structure" order="1" side_tool="true" weight="0.25" />
<window_info id="Favorites" order="2" side_tool="true" />
<window_info anchor="bottom" id="Message" order="0" />
@ -384,7 +440,7 @@
<window_info anchor="right" id="Database" order="3" />
</layout>
<layout-to-restore>
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.2457356" />
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.21321961" />
<window_info id="Structure" order="1" side_tool="true" weight="0.25" />
<window_info id="Favorites" order="2" side_tool="true" />
<window_info anchor="bottom" id="Message" order="0" />
@ -396,8 +452,8 @@
<window_info anchor="bottom" id="TODO" order="6" />
<window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" />
<window_info anchor="bottom" id="Database Changes" order="8" />
<window_info anchor="bottom" id="Version Control" order="9" />
<window_info anchor="bottom" id="Terminal" order="10" weight="0.6243032" />
<window_info anchor="bottom" id="Version Control" order="9" weight="0.32998884" />
<window_info anchor="bottom" id="Terminal" order="10" weight="0.38127092" />
<window_info anchor="bottom" id="Event Log" order="11" side_tool="true" weight="0.32998884" />
<window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
@ -412,152 +468,10 @@
<MESSAGE value="完善系统管理" />
<MESSAGE value="做到crm的部门管理了" />
<MESSAGE value="完成客户管理" />
<option name="LAST_COMMIT_MESSAGE" value="完成客户管理" />
<MESSAGE value="添加公海库功能" />
<option name="LAST_COMMIT_MESSAGE" value="添加公海库功能" />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/app/Http/Requests/Admin/User/ChangePasswordRequest.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="546">
<caret line="36" column="5" lean-forward="true" selection-start-line="33" selection-start-column="4" selection-end-line="36" selection-end-column="5" />
<folding>
<element signature="e#48#91#0#PHP" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/views/admin/user/_js.blade.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="512">
<caret line="16" column="10" lean-forward="true" selection-start-line="5" selection-start-column="8" selection-end-line="16" selection-end-column="10" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/../freeswitch-gui-laravel - 副本/database/seeds/UserSeeder.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-9504" />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/../freeswitch-gui-laravel - 副本/database/seeds/HomeSeeder.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="96">
<caret line="90" column="22" lean-forward="true" selection-start-line="66" selection-start-column="20" selection-end-line="90" selection-end-column="22" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/views/admin/project/_btn.blade.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="128">
<caret line="4" column="27" selection-start-line="4" selection-start-column="27" selection-end-line="4" selection-end-column="27" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/views/admin/project/_form.blade.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="128">
<caret line="4" column="31" selection-start-line="4" selection-start-column="31" selection-end-line="4" selection-end-column="31" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/views/admin/project_design/create.blade.php">
<provider selected="true" editor-type-id="text-editor">
<state>
<caret column="15" selection-start-column="10" selection-end-column="15" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/../freeswitch-gui-laravel - 副本/config/freeswitch.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="416">
<caret line="106" column="6" lean-forward="true" selection-start-line="98" selection-start-column="4" selection-end-line="106" selection-end-column="6" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/config/freeswitch.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="770">
<caret line="75" column="6" selection-start-line="75" selection-start-column="6" selection-end-line="75" selection-end-column="6" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/views/admin/project_design/index.blade.php">
<provider selected="true" editor-type-id="text-editor">
<state>
<caret column="15" selection-start-column="15" selection-end-column="15" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/views/admin/project/create.blade.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="736">
<caret line="101" column="19" selection-start-line="101" selection-start-column="19" selection-end-line="101" selection-end-column="19" />
<folding>
<element signature="e#1812#1832#0#HTML" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/views/admin/project/edit.blade.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="610">
<caret line="105" column="19" selection-start-line="105" selection-start-column="19" selection-end-line="105" selection-end-column="19" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/../freeswitch-gui-laravel - 副本/composer.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="154">
<caret line="15" column="26" selection-start-line="15" selection-start-column="9" selection-end-line="15" selection-end-column="26" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/Exports/ProjectExport.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="416">
<caret line="13" column="10" lean-forward="true" selection-start-line="13" selection-start-column="10" selection-end-line="13" selection-end-column="10" />
<folding>
<element signature="e#31#72#0#PHP" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/Http/Requests/Admin/Project/ProjectDesignRequest.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1026">
<caret line="38" column="5" selection-start-line="38" selection-start-column="5" selection-end-line="38" selection-end-column="5" />
<folding>
<element signature="e#51#94#0#PHP" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/../freeswitch-gui-laravel - 副本/config/filesystems.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1826">
<caret line="60" column="10" lean-forward="true" selection-start-line="57" selection-start-column="8" selection-end-line="60" selection-end-column="10" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/config/filesystems.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="640">
<caret line="69" column="42" selection-start-line="69" selection-start-column="42" selection-end-line="69" selection-end-column="42" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/Http/Controllers/ApiController.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="288">
<caret line="9" column="19" lean-forward="true" selection-start-line="9" selection-start-column="19" selection-end-line="9" selection-end-column="19" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/Models/Node.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="672">
<caret line="21" column="5" selection-start-line="21" selection-start-column="5" selection-end-line="21" selection-end-column="5" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/../freeswitch-gui-laravel - 副本/app/Models/Node.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="224">
@ -667,16 +581,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/Http/Controllers/Admin/ProjectController.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="556">
<caret line="41" column="29" selection-start-line="41" selection-start-column="29" selection-end-line="41" selection-end-column="29" />
<folding>
<element signature="e#46#76#0#PHP" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/views/admin/project_design/edit.blade.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="448">
@ -698,9 +602,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/storage/logs/laravel.log">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/app/Http/Controllers/Admin/ProjectDesignController.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="538">
@ -715,13 +616,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/../freeswitch-gui-laravel - 副本/routes/web.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="416">
<caret line="154" column="7" lean-forward="true" selection-start-line="148" selection-start-column="4" selection-end-line="154" selection-end-column="7" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/Http/Controllers/Admin/WasteController.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="544">
@ -732,49 +626,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/database/seeds/MenuTableSeeder.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="164">
<caret line="189" column="54" selection-start-line="189" selection-start-column="54" selection-end-line="189" selection-end-column="54" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/database/seeds/UserTableSeeder.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="418">
<caret line="228" column="45" selection-start-line="228" selection-start-column="39" selection-end-line="228" selection-end-column="45" />
<folding>
<element signature="e#1267#3670#1#PHP" />
<element signature="e#1396#2117#1#PHP" />
<element signature="e#2139#2679#1#PHP" />
<element signature="e#2701#3173#1#PHP" />
<element signature="e#3195#3637#1#PHP" />
<element signature="e#3684#6221#1#PHP" />
<element signature="e#3787#6207#1#PHP" />
<element signature="e#6235#8387#1#PHP" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/routes/admin.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="578">
<caret line="350" column="33" selection-start-line="350" selection-start-column="28" selection-end-line="350" selection-end-column="33" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/views/admin/remind/index.blade.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="160">
<caret line="26" column="50" lean-forward="true" selection-start-line="26" selection-start-column="50" selection-end-line="26" selection-end-column="50" />
<folding>
<element signature="e#1122#1155#0#HTML" expanded="true" />
<element signature="n#style#0;n#span#0;n#!!top" expanded="true" />
<element signature="n#style#0;n#span#0;n#!!top" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/views/admin/waste/index.blade.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="160">
@ -796,5 +647,191 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/../freeswitch-gui-laravel - 副本/database/migrations/2019_11_20_165744_cdr.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="384">
<caret line="23" column="71" lean-forward="true" selection-start-line="23" selection-start-column="71" selection-end-line="23" selection-end-column="71" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/../freeswitch-gui-laravel - 副本/database/seeds/HomeSeeder.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-256">
<caret line="100" column="47" lean-forward="true" selection-start-line="100" selection-start-column="47" selection-end-line="100" selection-end-column="47" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/Models/Cdr.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="288">
<caret line="9" column="32" selection-start-line="9" selection-start-column="32" selection-end-line="9" selection-end-column="32" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/../freeswitch-gui-laravel - 副本/app/Models/Cdr.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="128">
<caret line="4" column="14" lean-forward="true" selection-start-line="4" selection-start-column="14" selection-end-line="4" selection-end-column="14" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/Http/Controllers/Admin/CdrController.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1472">
<caret line="46" column="10" selection-start-line="46" selection-start-column="10" selection-end-line="46" selection-end-column="10" />
<folding>
<element signature="e#47#66#0#PHP" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/Http/Controllers/Admin/ProjectController.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="556">
<caret line="65" column="14" lean-forward="true" selection-start-line="56" selection-start-column="12" selection-end-line="65" selection-end-column="14" />
<folding>
<element signature="e#46#76#0#PHP" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/database/migrations/2019_11_20_165744_cdr.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="352">
<caret line="25" column="72" lean-forward="true" selection-start-line="25" selection-start-column="72" selection-end-line="25" selection-end-column="72" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/views/admin/cdr/index.blade.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="610">
<caret line="74" column="16" selection-start-line="74" selection-start-column="16" selection-end-line="74" selection-end-column="16" />
<folding>
<element signature="n#style#0;n#div#0;n#!!top" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/../freeswitch-gui-laravel - 副本/routes/web.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="608">
<caret line="190" column="3" lean-forward="true" selection-start-line="166" selection-end-line="190" selection-end-column="3" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/database/seeds/UserTableSeeder.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="324">
<caret line="255" column="41" lean-forward="true" selection-start-line="255" selection-start-column="41" selection-end-line="255" selection-end-column="41" />
<folding>
<element signature="e#1267#3670#1#PHP" />
<element signature="e#1396#2117#1#PHP" />
<element signature="e#2139#2679#1#PHP" />
<element signature="e#2701#3173#1#PHP" />
<element signature="e#3195#3637#1#PHP" />
<element signature="e#3684#6221#1#PHP" />
<element signature="e#3787#6207#1#PHP" />
<element signature="e#6235#8387#1#PHP" />
<element signature="e#8505#11676#1#PHP" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/database/seeds/MenuTableSeeder.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="480">
<caret line="208" column="53" selection-start-line="208" selection-start-column="53" selection-end-line="208" selection-end-column="53" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/public/layuiadmin/lib/index.js">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/public/layuiadmin/lib/admin.js">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/public/layuiadmin/lib/view.js">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/../freeswitch-gui-laravel - 副本/public/static/admin/layuiadmin/modules/console.js">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/../freeswitch-gui-laravel - 副本/public/static/admin/layuiadmin/modules/common.js">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$USER_HOME$/Desktop/layuiadmin-template/views/senior/echarts/map.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-1854" />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/public/layuiadmin/modules/senior.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-8320">
<caret line="267" column="16" lean-forward="true" selection-start-line="267" selection-start-column="16" selection-end-line="267" selection-end-column="16" />
<folding>
<element signature="e#1979#99755#0" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/../freeswitch-gui-laravel - 副本/app/Http/Controllers/Home/IndexController.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="320">
<caret line="11" column="5" lean-forward="true" selection-start-line="11" selection-start-column="5" selection-end-line="11" selection-end-column="5" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/../freeswitch-gui-laravel - 副本/app/Http/Controllers/Admin/IndexController.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="276">
<caret line="32" column="54" selection-start-line="32" selection-start-column="54" selection-end-line="32" selection-end-column="54" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/../index.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="352">
<caret line="11" column="20" selection-start-line="11" selection-start-column="20" selection-end-line="11" selection-end-column="20" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/routes/admin.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="556">
<caret line="28" column="15" selection-start-line="28" selection-start-column="15" selection-end-line="28" selection-end-column="15" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/storage/logs/laravel.log">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/app/Http/Controllers/Admin/IndexController.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="482">
<caret line="65" column="15" selection-start-line="65" selection-start-column="15" selection-end-line="65" selection-end-column="15" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/views/admin/index/index.blade.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1556">
<caret line="233" column="41" selection-start-line="233" selection-start-column="41" selection-end-line="233" selection-end-column="41" />
<folding>
<element signature="e#10111#11140#0#HTML" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/views/admin/remind/index.blade.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="314">
<caret line="59" column="44" selection-start-line="59" selection-start-column="44" selection-end-line="59" selection-end-column="44" />
<folding>
<element signature="n#style#0;n#span#0;n#!!top" expanded="true" />
<element signature="n#style#0;n#span#0;n#!!top" expanded="true" />
</folding>
</state>
</provider>
</entry>
</component>
</project>

View File

@ -0,0 +1,93 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Models\Cdr;
use App\Models\Sip;
use App\Models\User;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;
class CdrController extends Controller
{
public function index()
{
return view('admin.cdr.index');
}
public function data(Request $request)
{
$query = Cdr::query();
$search = $request->all(['src','dst','start_at_start','start_at_end']);
if ($search['src']){
$query = $query->where('src',$search['src']);
}
if ($search['dst']){
$query = $query->where('dst',$search['dst']);
}
if ($search['start_at_start'] && !$search['start_at_end']){
$query = $query->where('aleg_start_at','>=',$search['start_at_start']);
}else if (!$search['start_at_start'] && $search['start_at_end']){
$query = $query->where('aleg_start_at','<=',$search['start_at_end']);
}else if ($search['start_at_start'] && $search['start_at_end']){
$query = $query->whereBetween('aleg_start_at',[$search['start_at_start'],$search['start_at_end']]);
}
$user = $request->user();
$res = $query->where(function ($query) use($user) {
if ($user->hasPermissionTo('data.cdr.list_all')) {
# code...
}elseif ($user->hasPermissionTo('data.cdr.list_department')) {
$user_ids = User::where('department_id',$user->department_id)->pluck('id')->toArray();
return $query->whereIn('user_id',$user_ids);
}else{
return $query->where('user_id',$user->id);
}
})->orderByDesc('id')->paginate($request->get('limit', 30));
$data = [
'code' => 0,
'msg' => '正在请求中...',
'count' => $res->total(),
'data' => $res->items(),
];
return response()->json($data);
}
/**
* 播放录音
* @param $uuid
* @return array
*/
public function play($uuid)
{
$cdr = Cdr::where('uuid',$uuid)->first();
if ($cdr==null){
return ['code'=>'1','msg'=>'通话记录不存在'];
}
if (empty($cdr->record_file)){
return ['code'=>'1','msg'=>'未找到录音文件'];
}
return ['code'=>0,'msg'=>'请求成功','data'=>$cdr->record_file];
}
/**
* 下载录音
* @param $uuid
* @return \Illuminate\Http\RedirectResponse|\Symfony\Component\HttpFoundation\BinaryFileResponse
*/
public function download($uuid)
{
$cdr = Cdr::where('uuid',$uuid)->first();
if ($cdr==null){
return back()->withErrors(['error'=>'通话记录不存在']);
}
if (!file_exists($cdr->record_file)){
return back()->withErrors(['error'=>'未找到录音文件']);
}
return response()->download($cdr->record_file,$uuid.".wav");
}
}

View File

@ -3,7 +3,13 @@
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Models\Cdr;
use App\Models\Department;
use App\Models\Project;
use App\Models\User;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Response;
use Illuminate\Support\Facades\View;
use Illuminate\Support\Facades\Cache;
@ -17,6 +23,48 @@ class IndexController extends Controller
public function index()
{
return View::make('admin.index.index');
//部门数量
$departmentCount = Department::count();
//用户数量
$userCount = User::where('id','!=',config('freeswitch.user_root_id'))->count();
//总客户数
$projectCount = Project::count();
//公海客户数
$wasteCount = Project::onlyTrashed()->count();
return View::make('admin.index.index',compact('departmentCount','userCount','projectCount','wasteCount'));
}
public function chart()
{
$data = [
'months' => [],
'calls' => [],
'success' => [],
];
for ($m=1;$m<=12;$m++){
$data['year_month'][$m] = [
'start' => mktime(0,0,0,$m,1,date('Y')),
'end' => mktime(0,0,0,$m+1,1,date('Y')),
];
$data['months'][] = $m.'月';
$data['calls'][$m] = 0;
$data['success'][$m] = 0;
}
Cdr::whereYear('aleg_start_at', date('Y'))
->orderBy('id')
->chunk(1000, function ($result) use(&$data){
foreach ($result as $item) {
foreach ($data['year_month'] as $key=>$time){
if (strtotime($item->aleg_start_at)>=$time['start'] && strtotime($item->aleg_start_at)<$time['end']){
$data['calls'][$key] += 1;
if ($item->billsec>0){
$data['success'][$key] += 1;
}
}
}
}
});
return Response::json(['code'=>0,'msg'=>'请求成功','data'=>$data]);
}
}

11
app/Models/Cdr.php Normal file
View File

@ -0,0 +1,11 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Cdr extends Model
{
protected $table = 'cdr';
protected $guarded = ['id'];
}

View File

@ -0,0 +1,49 @@
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class Cdr extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('cdr', function (Blueprint $table) {
$table->bigIncrements('id');
$table->unsignedBigInteger('user_id')->nullable()->comment('用户ID');
$table->string('uuid')->nullable()->comment('通话唯一标识');
$table->string('aleg_uuid')->nullable()->comment('aleg唯一标识');
$table->string('bleg_uuid')->nullable()->comment('bleg唯一标识');
$table->tinyInteger('direction')->default(1)->comment('1呼出,2呼入');
$table->string('src')->nullable()->comment('主叫号码');
$table->string('dst')->nullable()->comment('主叫号码');
$table->integer('duration')->default(0)->comment('A通话时长');
$table->integer('billsec')->default(0)->comment('B通话时长');
$table->dateTime('aleg_start_at')->nullable()->comment('主叫开始时间');
$table->dateTime('aleg_answer_at')->nullable()->comment('主叫应答时间');
$table->dateTime('aleg_end_at')->nullable()->comment('主叫结束时间');
$table->dateTime('bleg_start_at')->nullable()->comment('被叫开始时间');
$table->dateTime('bleg_answer_at')->nullable()->comment('被叫应答时间');
$table->dateTime('bleg_end_at')->nullable()->comment('被叫结束时间');
$table->string('record_file')->nullable()->comment('通话录音地址');
$table->string('user_data')->nullable()->comment('扩展数据json格式');
$table->timestamps();
});
\DB::statement("ALTER TABLE `cdr` comment '通话记录表'");
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('cdr');
}
}

View File

@ -135,7 +135,7 @@ class MenuTableSeeder extends Seeder
]
],
[
'name' => '客户管理',
'name' => 'CRM管理',
'route' => null,
'url' => null,
'icon' => 'layui-icon-android',
@ -193,6 +193,26 @@ class MenuTableSeeder extends Seeder
],
]
],
[
'name' => '数据监控',
'route' => null,
'url' => null,
'icon' => 'layui-icon-slider',
'type' => 2,
'sort' => 2,
'permission_name' => 'data',
'child' => [
[
'name' => '通话记录',
'route' => 'admin.cdr',
'url' => null,
'icon' => 'layui-icon-service',
'type' => 1,
'permission_name' => 'data.cdr',
],
]
],
];
$permissions = \App\Models\Permission::pluck('id','name')->toArray();
foreach ($datas as $k1 => $d1){

View File

@ -234,6 +234,23 @@ class UserTableSeeder extends Seeder
],
]
],
[
'name' => 'data',
'display_name' => '数据监控',
'child' => [
[
'name' => 'data.cdr',
'display_name' => '通话记录',
'child' => [
['name' => 'data.cdr.play', 'display_name' => '播放'],
['name' => 'data.cdr.download', 'display_name' => '下载'],
['name' => 'data.cdr.list_all', 'display_name' => '查看所有记录'],
['name' => 'data.cdr.list_department', 'display_name' => '查看部门记录'],
]
],
]
],
];
foreach ($permissions as $pem1) {

BIN
public/uploads/client.zip Normal file

Binary file not shown.

View File

@ -0,0 +1,113 @@
@extends('admin.base')
@section('content')
<div class="layui-card">
<div class="layui-card-header layuiadmin-card-header-auto">
<form class="layui-form">
<button class="layui-btn layui-btn-sm" lay-submit lay-filter="*" >搜索</button>
<div class="layui-form-item">
<div class="layui-inline">
<label for="" class="layui-form-label">主叫号码</label>
<div class="layui-input-block">
<input type="text" name="src" class="layui-input" placeholder="主叫号码">
</div>
</div>
<div class="layui-inline">
<label for="" class="layui-form-label">被叫号码</label>
<div class="layui-input-block">
<input type="text" name="dst" class="layui-input" placeholder="被叫号码">
</div>
</div>
<div class="layui-inline">
<label for="" class="layui-form-label">呼叫时间</label>
<div class="layui-input-inline" style="width: 160px">
<input type="text" name="start_stamp_start" id="start_at_start" class="layui-input" placeholder="开始时间">
</div>
<div class="layui-form-mid layui-word-aux">-</div>
<div class="layui-input-inline" style="width: 160px">
<input type="text" name="start_stamp_end" id="start_at_end" class="layui-input" placeholder="结束时间">
</div>
</div>
</div>
</form>
</div>
<div class="layui-card-body">
<table id="dataTable" lay-filter="dataTable"></table>
<script type="text/html" id="options">
<div class="layui-btn-group">
<a class="layui-btn layui-btn-sm" lay-event="play">播放</a>
<a class="layui-btn layui-btn-sm" lay-event="download">下载</a>
</div>
</script>
</div>
</div>
@endsection
@section('script')
<script>
layui.use(['layer','table','form','laydate'],function () {
var $ = layui.jquery;
var layer = layui.layer;
var form = layui.form;
var table = layui.table;
var laydate = layui.laydate;
//用户表格初始化
var dataTable = table.render({
elem: '#dataTable'
,height: 500
,url: "{{ route('admin.cdr.data') }}" //数据接口
,page: true //开启分页
,cols: [[ //表头
//{checkbox: true,fixed: true}
{field: 'id', title: 'ID', sort: true,width:80,fixed:'left'}
,{field: 'caller_id_number', title: '主叫号码',style:'color:green'}
,{field: 'destination_number', title: '被叫号码',style:'color:#2F4056'}
,{field: 'aleg_start_at', title: '呼叫时间', sort: true}
,{field: 'billsec', title: '通话时长(秒)', sort: true, style:'color: green'}
,{width: 220, align:'center', toolbar: '#options', title:'操作',fixed:'right'}
]]
});
//监听工具条
table.on('tool(dataTable)', function(obj){ //注tool是工具条事件名dataTable是table原始容器的属性 lay-filter="对应的值"
var data = obj.data //获得当前行数据
,layEvent = obj.event; //获得 lay-event 对应的值
if (layEvent === 'play'){
var index = layer.load()
$.get('/admin/cdr/'+data.uuid+'/play',function (res) {
layer.close(index);
if (res.code==0){
var _html = '<div style="padding:20px;">';
_html += '<audio controls="controls" autoplay src="'+res.data+'"></audio>';
_html += '</div>';
layer.open({
title : '播放录音',
type : 1,
area : ['360px','auto'],
content : _html
})
}else {
layer.msg(res.msg,{icon:5})
}
})
} else if (layEvent === 'download'){
location.href = '/admin/cdr/'+data.uuid+'/download';
}
});
//时间选择
laydate.render({type: 'datetime', elem: '#start_stamp_start'});
laydate.render({type: 'datetime', elem: '#start_stamp_end'});
//监听搜索提交
form.on('submit(*)', function(data){
dataTable.reload({
where: data.field,
page: {curr:1}
})
return false;
});
})
</script>
@endsection

View File

@ -2,7 +2,7 @@
@section('content')
<div class="layui-row layui-col-space15">
{{--<div class="layui-col-md12">
<div class="layui-col-md12">
<div class="layui-row layui-col-space15">
<div class="layui-col-md4">
<div class="layui-card">
@ -24,15 +24,15 @@
</a>
</li>
<li class="layui-col-xs3">
<a lay-href="{{route('admin.merchant')}}">
<a lay-href="{{route('admin.department')}}">
<i class="layui-icon layui-icon-template-1"></i>
<cite>商户管理</cite>
<cite>部门管理</cite>
</a>
</li>
<li class="layui-col-xs3">
<a lay-href="{{route('admin.member')}}">
<a lay-href="{{route('admin.node')}}">
<i class="layui-icon layui-icon-chat"></i>
<cite>员工管理</cite>
<cite>节点管理</cite>
</a>
</li>
<li class="layui-col-xs3">
@ -74,26 +74,26 @@
<ul class="layui-row layui-col-space10">
<li class="layui-col-xs6">
<a class="layadmin-backlog-body">
<h3>商户数量</h3>
<p><cite>{{$merchantNum}}</cite></p>
<h3>部门数量</h3>
<p><cite>{{$departmentCount}}</cite></p>
</a>
</li>
<li class="layui-col-xs6">
<a class="layadmin-backlog-body">
<h3>员工数量</h3>
<p><cite>{{$memberNum}}</cite></p>
<h3>用户数量</h3>
<p><cite>{{$userCount}}</cite></p>
</a>
</li>
<li class="layui-col-xs6">
<a class="layadmin-backlog-body">
<h3>网关数量</h3>
<p><cite>{{$gatewayNum}}</cite></p>
<h3>总客户数</h3>
<p><cite>{{$projectCount}}</cite></p>
</a>
</li>
<li class="layui-col-xs6">
<a class="layadmin-backlog-body">
<h3>分机数量</h3>
<p><cite>{{$sipNum}}</cite></p>
<h3>公海客户数量</h3>
<p><cite>{{$wasteCount}}</cite></p>
</a>
</li>
</ul>
@ -139,66 +139,106 @@
</div>
<div class="layui-col-md12">
<div class="layui-card">
<div class="layui-card-header">呼叫统计</div>
<div class="layui-card-body layui-text">
<table class="layui-table">
<colgroup>
<col align="center"><col>
</colgroup>
<thead>
<tr>
<td rowspan="2"><b>商户</b></td>
<td rowspan="2"><b>分机</b></td>
<td align="center" colspan="3"><b>当日</b></td>
<td align="center" colspan="3"><b>本周</b></td>
<td align="center" colspan="3"><b>本月</b></td>
</tr>
<tr>
<td align="center">呼出</td>
<td align="center">接通</td>
<td align="center">接通率</td>
<td align="center">呼出</td>
<td align="center">接通</td>
<td align="center">接通率</td>
<td align="center">呼出</td>
<td align="center">接通</td>
<td align="center">接通率</td>
</tr>
</thead>
<tbody>
@forelse($datas as $data)
@foreach($data->sips as $sip)
<tr>
@if($loop->first)
<td rowspan="{{count($data->sips)}}">{{$data->info->company_name}}</td>
@endif
<td>{{$sip->username}}</td>
<td align="center" style="color: red">{{$sip->todayCalls}}</td>
<td align="center" style="color: green">{{$sip->todaySuccessCalls}}</td>
<td align="center" style="color: #0000FF">{{$sip->todayRateCalls}}%</td>
<td align="center" style="color: red">{{$sip->weekCalls}}</td>
<td align="center" style="color: green">{{$sip->weekSuccessCalls}}</td>
<td align="center" style="color: #0000FF">{{$sip->weekRateCalls}}%</td>
<td align="center" style="color: red">{{$sip->monthCalls}}</td>
<td align="center" style="color: green">{{$sip->monthSuccessCalls}}</td>
<td align="center" style="color: #0000FF">{{$sip->monthRateCalls}}%</td>
</tr>
@endforeach
@empty
<tr><td colspan="11" align="center">暂无数据</td></tr>
@endforelse
</tbody>
</table>
<div class="layui-card-header">最近15天数据</div>
<div class="layui-card-body">
<div class="layui-row layui-col-space30">
<div class="layui-col-md6">
<div id="calls" style="height: 400px"></div>
</div>
<div class="layui-col-md6">
<div id="projects" style="height: 400px"></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>--}}
</div>
</div>
@endsection
@section('script')
<script>
layui.use(['index', 'sample']);
layui.extend({
echarts: 'lib/extend/echarts' ,
echartsTheme: 'lib/extend/echartsTheme' ,
}).use(['layer','table','form','echarts','echartsTheme'],function () {
var $ = layui.jquery;
var layer = layui.layer;
var form = layui.form;
var table = layui.table;
var echarts = layui.echarts;
var echartsTheme = layui.echartsTheme;
var myechart1 = echarts.init(document.getElementById('calls'), echartsTheme);
$.post("{{route('admin.remind.count')}}", {}, function (res) {
if (res.code == 0) {
var legend = [];
var series = [];
$.each(res.data, function (index, elem) {
legend.push(index);
series.push({
value: elem,
name: index
})
});
myechart1.setOption({
title: {text: "各节点客户分布", x: "center", textStyle: {fontSize: 14}},
tooltip: {trigger: "item", formatter: "{a} <br/>{b} : {c} ({d}%)"},
legend: {orient: "vertical", x: "left", data: legend},
series: [{
name: "客户数",
type: "pie",
radius: "55%",
center: ["50%", "50%"],
data: series
}]
});
}
});
window.onresize = myechart1.resize;
var myechart2 = echarts.init(document.getElementById('projects'), echartsTheme);
$.post("{{route('admin.index.chart')}}", {}, function (res) {
if (res.code == 0) {
var months = [];
var calls = [];
var success = [];
$.each(res.data.months, function (index, elem) {
months.push(elem);
});
$.each(res.data.calls, function (index, elem) {
calls.push(elem);
});
$.each(res.data.success, function (index, elem) {
success.push(elem);
});
myechart2.setOption({
title: {text: "本年度总呼叫量和接通量", subtext: ""},
tooltip: {trigger: "axis"},
legend: {data: ["总呼叫量", "接通量"]},
calculable: !0,
xAxis: [{
type: "category",
data: months
}],
yAxis: [{type: "value"}],
series: [{
name: "总呼叫量",
type: "bar",
data: calls,
markPoint: {data: [{type: "max", name: "最大值"}, {type: "min", name: "最小值"}]},
markLine: {data: [{type: "average", name: "平均值"}]}
}, {
name: "接通量",
type: "bar",
data: success,
markPoint: {data: [{type: "max", name: "最大值"}, {type: "min", name: "最小值"}]},
markLine: {data: [{type: "average", name: "平均值"}]}
}]
});
}
});
window.onresize = myechart2.resize;
})
</script>
@endsection

View File

@ -57,7 +57,7 @@
})
})
myechart.setOption({
title: {text: "各节点项目分布情况", x: "center", textStyle: {fontSize: 14}},
title: {text: "各节点客户分布情况", x: "center", textStyle: {fontSize: 14}},
tooltip: {trigger: "item", formatter: "{a} <br/>{b} : {c} ({d}%)"},
legend: {orient: "vertical", x: "left", data: legend},
series: [{

View File

@ -25,6 +25,8 @@ Route::group(['namespace'=>'Admin','prefix'=>'admin','middleware'=>'auth'],funct
Route::get('/','IndexController@layout')->name('admin.layout');
//后台首页
Route::get('/index','IndexController@index')->name('admin.index');
//后台首页图表统计
Route::post('/index/chart','IndexController@chart')->name('admin.index.chart');
});
/*
@ -351,5 +353,24 @@ Route::group(['namespace'=>'Admin','prefix'=>'admin','middleware'=>['auth','perm
Route::post('remind/count','RemindController@count')->name('admin.remind.count')->middleware('permission:crm.remind.count');
});
});
/*
|--------------------------------------------------------------------------
| 数据监控模块
|--------------------------------------------------------------------------
*/
Route::group(['namespace'=>'Admin','prefix'=>'admin','middleware'=>['auth','permission:data']],function (){
//通话记录
Route::group([],function (){
Route::get('cdr','CdrController@index')->name('admin.cdr')->middleware('permission:data.cdr');
Route::get('cdr/data','CdrController@data')->name('admin.cdr.data')->middleware('permission:data.cdr');
//播放
Route::get('cdr/{uuid}/play','CdrController@play')->name('admin.cdr.play')->middleware('permission:data.cdr.play');
//下载
Route::get('cdr/{uuid}/download','CdrController@download')->name('admin.cdr.download')->middleware('permission:data.cdr.download');
});
});