Authored by 邱骏

实时4级转化静态页面

No preview for this file type
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/.tmp" />
<excludeFolder url="file://$MODULE_DIR$/temp" />
<excludeFolder url="file://$MODULE_DIR$/tmp" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
\ No newline at end of file
... ...
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="JavaScriptLibraryMappings">
<includedPredefinedLibrary name="ECMAScript 6" />
</component>
</project>
\ No newline at end of file
... ...
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="JavaScriptSettings">
<option name="languageLevel" value="ES6" />
</component>
<component name="ProjectLevelVcsManager" settingsEditedManually="false">
<OptionsSetting value="true" id="Add" />
<OptionsSetting value="true" id="Remove" />
<OptionsSetting value="true" id="Checkout" />
<OptionsSetting value="true" id="Update" />
<OptionsSetting value="true" id="Status" />
<OptionsSetting value="true" id="Edit" />
<ConfirmationsSetting value="0" id="Add" />
<ConfirmationsSetting value="0" id="Remove" />
</component>
</project>
\ No newline at end of file
... ...
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/dashbord-static.iml" filepath="$PROJECT_DIR$/.idea/dashbord-static.iml" />
</modules>
</component>
</project>
\ No newline at end of file
... ...
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>
\ No newline at end of file
... ...
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectTasksOptions" suppressed-tasks="SCSS;Babel" />
</project>
\ No newline at end of file
... ...
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="0cf1f551-ed8d-4274-8712-bbbbf1aecc77" name="Default" comment="">
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/vcs.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/watcherTasks.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/js/dashboard.page.js" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/pages/dashboard.html" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/sass/dashboard.scss" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/npm-debug.log" afterPath="$PROJECT_DIR$/npm-debug.log" />
</list>
<ignored path="dashbord-static.iws" />
<ignored path=".idea/workspace.xml" />
<ignored path="$PROJECT_DIR$/.tmp/" />
<ignored path="$PROJECT_DIR$/temp/" />
<ignored path="$PROJECT_DIR$/tmp/" />
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="TRACKING_ENABLED" value="true" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="CreatePatchCommitExecutor">
<option name="PATCH_PATH" value="" />
</component>
<component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
<component name="FavoritesManager">
<favorites_list name="dashbord-static" />
</component>
<component name="FileEditorManager">
<leaf>
<file leaf-file-name="dashboard.page.js" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/js/dashboard.page.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="220">
<caret line="78" column="92" selection-start-line="78" selection-start-column="92" selection-end-line="78" selection-end-column="92" />
<folding>
<marker date="1490609211000" expanded="true" signature="5504:5879" ph="..." />
<marker date="1490609211000" expanded="true" signature="5552:5626" ph="..." />
<marker date="1490609211000" expanded="true" signature="5675:5853" ph="..." />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="dashboard.html" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/pages/dashboard.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90">
<caret line="6" column="17" selection-start-line="6" selection-start-column="17" selection-end-line="6" selection-end-column="17" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="dashboard.scss" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/sass/dashboard.scss">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="480">
<caret line="57" column="16" selection-start-line="57" selection-start-column="16" selection-end-line="57" selection-end-column="16" />
<folding />
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES">
<list>
<option value="JavaScript File" />
<option value="HTML File" />
</list>
</option>
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<option value="$PROJECT_DIR$/js/index.page.js" />
<option value="$PROJECT_DIR$/pages/index.html" />
<option value="$PROJECT_DIR$/sass/dashboard.scss" />
<option value="$PROJECT_DIR$/pages/dashboard.html" />
<option value="$PROJECT_DIR$/js/dashboard.page.js" />
</list>
</option>
</component>
<component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" />
<component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER">
<package-json value="$PROJECT_DIR$/package.json" />
</component>
<component name="JsGulpfileManager">
<detection-done>true</detection-done>
<sorting>DEFINITION_ORDER</sorting>
</component>
<component name="NodeModulesDirectoryManager">
<handled-path value="$PROJECT_DIR$/node_modules" />
</component>
<component name="ProjectFrameBounds">
<option name="x" value="464" />
<option name="y" value="23" />
<option name="width" value="1198" />
<option name="height" value="1027" />
</component>
<component name="ProjectLevelVcsManager" settingsEditedManually="false">
<OptionsSetting value="true" id="Add" />
<OptionsSetting value="true" id="Remove" />
<OptionsSetting value="true" id="Checkout" />
<OptionsSetting value="true" id="Update" />
<OptionsSetting value="true" id="Status" />
<OptionsSetting value="true" id="Edit" />
<ConfirmationsSetting value="0" id="Add" />
<ConfirmationsSetting value="0" id="Remove" />
</component>
<component name="ProjectView">
<navigator currentView="ProjectPane" proportions="" version="1">
<flattenPackages />
<showMembers />
<showModules />
<showLibraryContents />
<hideEmptyPackages />
<abbreviatePackageNames />
<autoscrollToSource />
<autoscrollFromSource />
<sortByType />
<manualOrder />
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="Scope" />
<pane id="Scratches" />
<pane id="ProjectPane">
<subPane>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="dashbord-static" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="dashbord-static" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="dashbord-static" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="dashbord-static" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="dashbord-static" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="sass" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="dashbord-static" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="dashbord-static" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="pages" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="dashbord-static" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="dashbord-static" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="js" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="dashbord-static" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="dashbord-static" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="img" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
</subPane>
</pane>
</panes>
</component>
<component name="PropertiesComponent">
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="HbShouldOpenHtmlAsHb" value="" />
<property name="nodejs_interpreter_path" value="$USER_HOME$/.nvm/versions/node/v6.9.2/bin/node" />
<property name="js-jscs-nodeInterpreter" value="$USER_HOME$/.nvm/versions/node/v6.9.2/bin/node" />
<property name="settings.editor.selected.configurable" value="Settings.JavaScript" />
<property name="JavaScriptPreferStrict" value="false" />
<property name="JavaScriptWeakerCompletionTypeGuess" value="true" />
<property name="settings.editor.splitter.proportion" value="0.2" />
<property name="DefaultHtmlFileTemplate" value="HTML File" />
</component>
<component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS">
<recent name="$PROJECT_DIR$/sass" />
</key>
</component>
<component name="RunManager">
<configuration default="true" type="DartCommandLineRunConfigurationType" factoryName="Dart Command Line Application">
<method />
</configuration>
<configuration default="true" type="DartTestRunConfigurationType" factoryName="Dart Test">
<method />
</configuration>
<configuration default="true" type="JavaScriptTestRunnerKarma" factoryName="Karma">
<config-file value="" />
<node-interpreter value="project" />
<envs />
<method />
</configuration>
<configuration default="true" type="JavascriptDebugType" factoryName="JavaScript Debug">
<method />
</configuration>
<configuration default="true" type="NodeJSConfigurationType" factoryName="Node.js" path-to-node="project" working-dir="">
<method />
</configuration>
<configuration default="true" type="cucumber.js" factoryName="Cucumber.js">
<option name="cucumberJsArguments" value="" />
<option name="executablePath" />
<option name="filePath" />
<method />
</configuration>
<configuration default="true" type="js.build_tools.gulp" factoryName="Gulp.js">
<method />
</configuration>
<configuration default="true" type="js.build_tools.npm" factoryName="npm">
<command value="run-script" />
<scripts />
<node-interpreter value="project" />
<envs />
<method />
</configuration>
<configuration default="true" type="mocha-javascript-test-runner" factoryName="Mocha">
<node-interpreter>project</node-interpreter>
<node-options />
<working-directory />
<pass-parent-env>true</pass-parent-env>
<envs />
<ui />
<extra-mocha-options />
<test-kind>DIRECTORY</test-kind>
<test-directory />
<recursive>false</recursive>
<method />
</configuration>
</component>
<component name="ShelveChangesManager" show_recycled="false">
<option name="remove_strategy" value="false" />
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="0cf1f551-ed8d-4274-8712-bbbbf1aecc77" name="Default" comment="" />
<created>1490596185152</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1490596185152</updated>
<workItem from="1490596186697" duration="12518000" />
</task>
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="12518000" />
</component>
<component name="ToolWindowManager">
<frame x="464" y="23" width="1198" height="1027" extended-state="0" />
<editor active="true" />
<layout>
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.2497876" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="npm" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
</layout>
</component>
<component name="Vcs.Log.UiProperties">
<option name="RECENTLY_FILTERED_USER_GROUPS">
<collection />
</option>
<option name="RECENTLY_FILTERED_BRANCH_GROUPS">
<collection />
</option>
</component>
<component name="VcsContentAnnotationSettings">
<option name="myLimit" value="2678400000" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager />
<watches-manager />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/img/ava.png">
<provider selected="true" editor-type-id="images">
<state />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/sass/demo.scss">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/sass/basic.scss">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-1427">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pages/demo.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="135">
<caret line="9" column="0" selection-start-line="9" selection-start-column="0" selection-end-line="13" selection-end-column="7" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/webpack.config.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="240">
<caret line="21" column="20" selection-start-line="21" selection-start-column="20" selection-end-line="21" selection-end-column="20" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/package.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="105">
<caret line="7" column="47" selection-start-line="7" selection-start-column="47" selection-end-line="7" selection-end-column="47" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/../yoho-analytics-platform/public/js/models/api.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="315">
<caret line="21" column="32" selection-start-line="21" selection-start-column="32" selection-end-line="21" selection-end-column="32" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/js/demo.page.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="150">
<caret line="10" column="6" selection-start-line="5" selection-start-column="4" selection-end-line="10" selection-end-column="6" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/../yoho-analytics-platform/public/js/models/index.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-90">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/img/back.png">
<provider selected="true" editor-type-id="images">
<state />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/img/arrow_left.png">
<provider selected="true" editor-type-id="images">
<state />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/sass/dashboard.scss">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="480">
<caret line="57" column="16" selection-start-line="57" selection-start-column="16" selection-end-line="57" selection-end-column="16" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pages/dashboard.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90">
<caret line="6" column="17" selection-start-line="6" selection-start-column="17" selection-end-line="6" selection-end-column="17" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/js/dashboard.page.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="220">
<caret line="78" column="92" selection-start-line="78" selection-start-column="92" selection-end-line="78" selection-end-column="92" />
<folding>
<marker date="1490609211000" expanded="true" signature="5504:5879" ph="..." />
<marker date="1490609211000" expanded="true" signature="5552:5626" ph="..." />
<marker date="1490609211000" expanded="true" signature="5675:5853" ph="..." />
</folding>
</state>
</provider>
</entry>
</component>
</project>
\ No newline at end of file
... ...

76.5 KB

/**
* Created by qiujun on 2017/3/27.
*/
var $ = require('yoho-jquery');
require('dashboard.scss');
var $dashboard_tab = $('.dashboard-tab');
var dashboard_interface = 'http://run.yohops.com/data-analysis-web/cvrkpi/queryCvrKpi';
var dashboard_data;
var now_tab_index = 0;
var data_arr = [];
$(document).ready(function() {
init_tabs();
init_data();
});
/**
* 选项卡
*/
function init_tabs() {
$dashboard_tab.each(function(i) {
let tab_index = i;
$(this).on('click',function() {
now_tab_index = tab_index;
if(!$(this).hasClass('active')) {
$(this).siblings().removeClass('active');
$(this).addClass('active');
change_list(now_tab_index);
}
});
});
}
function init_data() {
$.ajax({
url: dashboard_interface,
type: 'get',
data:'',
success: function(res) {
dashboard_data = res;
change_list(now_tab_index);
setTimeout(init_data,30000);
}
})
}
function change_list(tab_index) {
console.log('dashboard_data=',dashboard_data);
if(dashboard_data) {
let data;
switch (tab_index) {
case 0:
data = dashboard_data.data.androidCvrKpi;
break;
case 1:
data = dashboard_data.data.iosCvrKpi;
break;
case 2:
data = dashboard_data.data.totalCvrKpi;
break;
default:
data = dashboard_data.data.androidCvrKpi;
}
manage_list(data);
}
}
function manage_list(data) {
console.log('data=',data);
if(data) {
data_arr = [];
let obj = {};
let todayTotalUv = data.todayTotalUv;
let yesterdayTotalUv = data.yesterdayTotalUv;
let totalUvRate = get_rate((todayTotalUv - yesterdayTotalUv) / yesterdayTotalUv,true);
obj = {};
obj.name = '总UV';
obj.total = todayTotalUv;
obj.rate = totalUvRate;
data_arr.push(obj);
let todayDetailUv = data.todayDetailUv;
let yesterdayDetailUv = data.yesterdayDetailUv;
let detailUvRate = get_rate((todayDetailUv - yesterdayDetailUv) / yesterdayDetailUv,true);
obj = {};
obj.name = '商品详情页UV';
obj.total = todayDetailUv;
obj.rate = detailUvRate;
data_arr.push(obj);
let todayShopCartUv = data.todayShopCartUv;
let yesterdayShopCartUv = data.yesterdayShopCartUv;
let shopcartUvRate = get_rate((todayShopCartUv - yesterdayShopCartUv) / yesterdayShopCartUv,true);
obj = {};
obj.name = '加购物车UV';
obj.total = todayShopCartUv;
obj.rate = shopcartUvRate;
data_arr.push(obj);
let todayTotalOrder = data.todayTotalOrder;
let yesterdayTotalOrder = data.yesterdayTotalOrder;
let totalOrderRate = get_rate((todayTotalOrder - yesterdayTotalOrder) / yesterdayTotalOrder,true);
obj.name = '下单数';
obj.total = todayTotalOrder;
obj.rate = totalOrderRate;
data_arr.push(obj);
let todayTotalPayedOrder = data.todayTotalPayedOrder;
let yesterdayTotalPayedOrder = data.yesterdayTotalPayedOrder;
let totalPayedOrderRate = get_rate((todayTotalPayedOrder - yesterdayTotalPayedOrder)
/ yesterdayTotalPayedOrder,true);
obj = {};
obj.name = '支付成功订单数';
obj.total = todayTotalPayedOrder;
obj.rate = totalPayedOrderRate;
data_arr.push(obj);
let firstRate = get_rate(todayDetailUv / todayTotalUv,false);
let firstRateChange = get_rate((todayDetailUv / todayTotalUv - yesterdayDetailUv / yesterdayTotalUv)
/ (yesterdayDetailUv / yesterdayTotalUv),true);
obj = {};
obj.name = '一级转化';
obj.total = firstRate;
obj.rate = firstRateChange;
data_arr.push(obj);
let secondRate = get_rate(todayShopCartUv / todayDetailUv,false);
let secondRateChange = get_rate((todayShopCartUv / todayDetailUv - yesterdayShopCartUv / yesterdayDetailUv)
/ (yesterdayShopCartUv / yesterdayDetailUv),true);
obj = {};
obj.name = '二级转化';
obj.total = secondRate;
obj.rate = secondRateChange;
data_arr.push(obj);
let thirdRate = get_rate(todayTotalOrder / todayShopCartUv,false);
let thirdRateChange = get_rate((todayTotalOrder / todayShopCartUv - yesterdayTotalOrder / yesterdayShopCartUv)
/ (yesterdayTotalOrder / yesterdayShopCartUv),true);
obj = {};
obj.name = '三级转化';
obj.total = thirdRate;
obj.rate = thirdRateChange;
data_arr.push(obj);
let fourthRate = get_rate(todayTotalPayedOrder / todayTotalOrder,false);
let fourthRateChange = get_rate((todayTotalPayedOrder / todayTotalOrder - yesterdayTotalPayedOrder / yesterdayTotalOrder)
/ (yesterdayTotalPayedOrder / yesterdayTotalOrder),true);
obj = {};
obj.name = '四级转化';
obj.total = fourthRate;
obj.rate = fourthRateChange;
data_arr.push(obj);
let li_html = '';
for (let i = 0; i < data_arr.length; i ++) {
li_html += list_template(data_arr[i]);
}
$('.dashboard-data ul').html(li_html);
}
}
function list_template(obj) {
let rate_class = obj.rate.includes('-') ? 'rate-down' : 'rate-up';
return `<li>
<div class="list-left">
${obj.name} :
</div>
<div class="list-right">
<p class="total-num">${obj.total}</p>
<p class="change-rate ${rate_class}">${obj.rate}</p>
</div>
</li>`;
}
function get_rate(num,need_arrow) {
let new_num;
let arrow = '';
if(!isNaN(num)) {
if(num > 0) {
if(need_arrow) {
arrow = '↑'
}
}
else if(num < 0) {
if(need_arrow) {
arrow = '↓'
}
}
new_num = (num * 100).toFixed(2) + '%' + arrow;
}
else {
new_num = '0.00%'
}
return new_num;
}
\ No newline at end of file
... ...
0 info it worked if it ends with ok
1 verbose cli [ '/Users/chenfeng/Documents/source/nvm/versions/node/v6.10.1/bin/node',
1 verbose cli '/Users/chenfeng/Documents/source/nvm/versions/node/v6.10.1/bin/npm',
1 verbose cli [ '/Users/qiujun/.nvm/versions/node/v6.9.2/bin/node',
1 verbose cli '/Users/qiujun/.nvm/versions/node/v6.9.2/bin/npm',
1 verbose cli 'run',
1 verbose cli 'build' ]
2 info using npm@3.10.10
3 info using node@v6.10.1
2 info using npm@3.10.9
3 info using node@v6.9.2
4 verbose run-script [ 'prebuild', 'build', 'postbuild' ]
5 info lifecycle dashborad@1.0.0~prebuild: dashborad@1.0.0
6 silly lifecycle dashborad@1.0.0~prebuild: no script for prebuild, continuing
7 info lifecycle dashborad@1.0.0~build: dashborad@1.0.0
8 verbose lifecycle dashborad@1.0.0~build: unsafe-perm in lifecycle true
9 verbose lifecycle dashborad@1.0.0~build: PATH: /Users/chenfeng/Documents/source/nvm/versions/node/v6.10.1/lib/node_modules/npm/bin/node-gyp-bin:/Users/chenfeng/Documents/source/yoho/dashborad/node_modules/.bin:/Users/chenfeng/Documents/source/nvm/versions/node/v6.10.1/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/share/dotnet
10 verbose lifecycle dashborad@1.0.0~build: CWD: /Users/chenfeng/Documents/source/yoho/dashborad
9 verbose lifecycle dashborad@1.0.0~build: PATH: /Users/qiujun/.nvm/versions/node/v6.9.2/lib/node_modules/npm/bin/node-gyp-bin:/Users/qiujun/Documents/git.yoho.cn/dashbord-static/node_modules/.bin:/Users/qiujun/.nvm/versions/node/v6.9.2/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
10 verbose lifecycle dashborad@1.0.0~build: CWD: /Users/qiujun/Documents/git.yoho.cn/dashbord-static
11 silly lifecycle dashborad@1.0.0~build: Args: [ '-c', 'NODE_ENV=build webpack --progress --colors' ]
12 silly lifecycle dashborad@1.0.0~build: Returned: code: 2 signal: null
13 info lifecycle dashborad@1.0.0~build: Failed to exec build script
14 verbose stack Error: dashborad@1.0.0 build: `NODE_ENV=build webpack --progress --colors`
14 verbose stack Exit status 2
14 verbose stack at EventEmitter.<anonymous> (/Users/chenfeng/Documents/source/nvm/versions/node/v6.10.1/lib/node_modules/npm/lib/utils/lifecycle.js:255:16)
14 verbose stack at EventEmitter.<anonymous> (/Users/qiujun/.nvm/versions/node/v6.9.2/lib/node_modules/npm/lib/utils/lifecycle.js:255:16)
14 verbose stack at emitTwo (events.js:106:13)
14 verbose stack at EventEmitter.emit (events.js:191:7)
14 verbose stack at ChildProcess.<anonymous> (/Users/chenfeng/Documents/source/nvm/versions/node/v6.10.1/lib/node_modules/npm/lib/utils/spawn.js:40:14)
14 verbose stack at ChildProcess.<anonymous> (/Users/qiujun/.nvm/versions/node/v6.9.2/lib/node_modules/npm/lib/utils/spawn.js:40:14)
14 verbose stack at emitTwo (events.js:106:13)
14 verbose stack at ChildProcess.emit (events.js:191:7)
14 verbose stack at maybeClose (internal/child_process.js:886:16)
14 verbose stack at maybeClose (internal/child_process.js:877:16)
14 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:226:5)
15 verbose pkgid dashborad@1.0.0
16 verbose cwd /Users/chenfeng/Documents/source/yoho/dashborad
17 error Darwin 16.4.0
18 error argv "/Users/chenfeng/Documents/source/nvm/versions/node/v6.10.1/bin/node" "/Users/chenfeng/Documents/source/nvm/versions/node/v6.10.1/bin/npm" "run" "build"
19 error node v6.10.1
20 error npm v3.10.10
16 verbose cwd /Users/qiujun/Documents/git.yoho.cn/dashbord-static
17 error Darwin 16.1.0
18 error argv "/Users/qiujun/.nvm/versions/node/v6.9.2/bin/node" "/Users/qiujun/.nvm/versions/node/v6.9.2/bin/npm" "run" "build"
19 error node v6.9.2
20 error npm v3.10.9
21 error code ELIFECYCLE
22 error dashborad@1.0.0 build: `NODE_ENV=build webpack --progress --colors`
22 error Exit status 2
... ...
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>实时4级转化</title>
<link rel="stylesheet" href="/css/dashboard.css">
</head>
<body>
<div class="wrapper">
<div class="main-container">
<div class="dashboard-header">
<a href="javascript:history.back()">
<img src="../img/arrow_left.png">
</a>
<div class="title">
<span>实时4级转化<br><b>(UV、详情、购物车、下单、支付、转化)</b></span>
</div>
</div>
<div class="dashboard-container">
<div class="dashboard-tabs">
<ul>
<li class="dashboard-tab active">
Android
</li>
<li class="dashboard-tab">
Ios
</li>
<li class="dashboard-tab">
全部
</li>
</ul>
</div>
<div class="dashboard-data">
<ul>
</ul>
</div>
</div>
</div>
</div>
<script src="/js/libs.js"></script>
<script src="/js/dashboard.js"></script>
</body>
</html>
\ No newline at end of file
... ...
@import 'basic.scss';
html,body {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
font-size: 20px;
font-family: Arial "Microsoft YaHei" sans-serif;
background-color: #000000;
background: url("../img/back.png") center top repeat-y;
background-size: 100% auto;
}
.wrapper {
width: 100%;
overflow: hidden;
color: #ffffff;
}
.main-container {
width: 100%;
max-width: 750px;
margin: 0 auto;
}
ul {
list-style: none;
}
.clear{
clear: both;
}
/*head*/
.dashboard-header {
position: relative;
width: 100%;
height: 50px;
margin-top: 10px;
background-color: #FF641C;
-webkit-border-radius: 30px;
border-radius: 25px;
line-height: 25px;
font-weight: bold;
text-align: center;
overflow: hidden;
.title {
color: #fff;
};
b {
font-size: 70%;
};
a {
position: absolute;
left: 5%;
top: 10%;
}
}
.dashboard-container {
width: 96%;
margin: 0 auto;
}
.dashboard-tabs {
width: 100%;
height: 50px;
border: 1px solid #ffffff;
border-right: none;
-webkit-border-radius:10px;
-moz-border-radius: 10px;
border-radius: 10px;
margin-top: 20px;
box-sizing: content-box;
ul {
width: 100%;
box-sizing: border-box;
li{
width: 33.3%;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
float: left;
overflow: hidden;
line-height: 50px;
text-align: center;
border-right:1px solid #ffffff;
cursor: pointer;
}
li:nth-child(1) {
-webkit-border-top-left-radius: 10px;
border-top-left-radius: 10px;
-webkit-border-bottom-left-radius: 10px;
border-bottom-left-radius: 10px;
}
li:nth-child(3){
-webkit-border-top-right-radius: 10px;
border-top-right-radius: 10px;
-webkit-border-bottom-right-radius: 10px;
border-bottom-right-radius: 10px;
}
li.active {
background-color: #ffffff;
color: #000000;
}
}
}
.dashboard-data {
position: relative;
width: 100%;
ul {
width: 100%;
li {
width: 100%;
height: 50px;
display: inline-block;
font-weight:bold;
.list-left {
float: left;
display: inline-block;
width: 30%;
box-sizing: border-box;
text-align: right;
line-height: 50px;
font-size: 80%;
}
.list-right {
display: inline-block;
width: 65%;
box-sizing: border-box;
text-align: right;
}
.change-rate {
font-size: 50%;
line-height: 10px;
}
.change-rate.rate-up {
color: red;
}
.change-rate.rate-down {
color: green;
}
.total-num {
margin-top: 10px;
font-size: 125%;
color: #FC652D;
}
}
}
}
... ...