Authored by 陈峰

Merge branch 'feature/act_0614' into 'master'

Feature/act 0614



See merge request !1
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DBNavigator.Project.DataEditorManager">
<record-view-column-sorting-type value="BY_INDEX" />
<value-preview-text-wrapping value="true" />
<value-preview-pinned value="false" />
</component>
<component name="DBNavigator.Project.DataExportManager">
<export-instructions>
<create-header value="true" />
<quote-values-containing-separator value="true" />
<quote-all-values value="false" />
<value-separator value="" />
<file-name value="" />
<file-location value="" />
<scope value="GLOBAL" />
<destination value="FILE" />
<format value="EXCEL" />
<charset value="UTF-8" />
</export-instructions>
</component>
<component name="DBNavigator.Project.DatabaseBrowserManager">
<autoscroll-to-editor value="false" />
<autoscroll-from-editor value="true" />
<show-object-properties value="true" />
<loaded-nodes />
</component>
<component name="DBNavigator.Project.EditorStateManager">
<last-used-providers />
</component>
<component name="DBNavigator.Project.MethodExecutionManager">
<method-browser />
<execution-history>
<group-entries value="true" />
<execution-inputs />
</execution-history>
<argument-values-cache />
</component>
<component name="DBNavigator.Project.ObjectDependencyManager">
<last-used-dependency-type value="INCOMING" />
</component>
<component name="DBNavigator.Project.ObjectQuickFilterManager">
<last-used-operator value="EQUAL" />
<filters />
</component>
<component name="DBNavigator.Project.ScriptExecutionManager" clear-outputs="true">
<recently-used-interfaces />
</component>
<component name="DBNavigator.Project.Settings">
<connections />
<browser-settings>
<general>
<display-mode value="TABBED" />
<navigation-history-size value="100" />
<show-object-details value="false" />
</general>
<filters>
<object-type-filter>
<object-type name="SCHEMA" enabled="true" />
<object-type name="USER" enabled="true" />
<object-type name="ROLE" enabled="true" />
<object-type name="PRIVILEGE" enabled="true" />
<object-type name="CHARSET" enabled="true" />
<object-type name="TABLE" enabled="true" />
<object-type name="VIEW" enabled="true" />
<object-type name="MATERIALIZED_VIEW" enabled="true" />
<object-type name="NESTED_TABLE" enabled="true" />
<object-type name="COLUMN" enabled="true" />
<object-type name="INDEX" enabled="true" />
<object-type name="CONSTRAINT" enabled="true" />
<object-type name="DATASET_TRIGGER" enabled="true" />
<object-type name="DATABASE_TRIGGER" enabled="true" />
<object-type name="SYNONYM" enabled="true" />
<object-type name="SEQUENCE" enabled="true" />
<object-type name="PROCEDURE" enabled="true" />
<object-type name="FUNCTION" enabled="true" />
<object-type name="PACKAGE" enabled="true" />
<object-type name="TYPE" enabled="true" />
<object-type name="TYPE_ATTRIBUTE" enabled="true" />
<object-type name="ARGUMENT" enabled="true" />
<object-type name="DIMENSION" enabled="true" />
<object-type name="CLUSTER" enabled="true" />
<object-type name="DBLINK" enabled="true" />
</object-type-filter>
</filters>
<sorting>
<object-type name="COLUMN" sorting-type="NAME" />
<object-type name="FUNCTION" sorting-type="NAME" />
<object-type name="PROCEDURE" sorting-type="NAME" />
<object-type name="ARGUMENT" sorting-type="POSITION" />
</sorting>
<default-editors>
<object-type name="VIEW" editor-type="SELECTION" />
<object-type name="PACKAGE" editor-type="SELECTION" />
<object-type name="TYPE" editor-type="SELECTION" />
</default-editors>
</browser-settings>
<navigation-settings>
<lookup-filters>
<lookup-objects>
<object-type name="SCHEMA" enabled="true" />
<object-type name="USER" enabled="false" />
<object-type name="ROLE" enabled="false" />
<object-type name="PRIVILEGE" enabled="false" />
<object-type name="CHARSET" enabled="false" />
<object-type name="TABLE" enabled="true" />
<object-type name="VIEW" enabled="true" />
<object-type name="MATERIALIZED VIEW" enabled="true" />
<object-type name="NESTED TABLE" enabled="false" />
<object-type name="COLUMN" enabled="false" />
<object-type name="INDEX" enabled="true" />
<object-type name="CONSTRAINT" enabled="true" />
<object-type name="DATASET TRIGGER" enabled="true" />
<object-type name="DATABASE TRIGGER" enabled="true" />
<object-type name="SYNONYM" enabled="false" />
<object-type name="SEQUENCE" enabled="true" />
<object-type name="PROCEDURE" enabled="true" />
<object-type name="FUNCTION" enabled="true" />
<object-type name="PACKAGE" enabled="true" />
<object-type name="TYPE" enabled="true" />
<object-type name="TYPE ATTRIBUTE" enabled="false" />
<object-type name="ARGUMENT" enabled="false" />
<object-type name="DIMENSION" enabled="false" />
<object-type name="CLUSTER" enabled="false" />
<object-type name="DBLINK" enabled="true" />
</lookup-objects>
<force-database-load value="false" />
<prompt-connection-selection value="true" />
<prompt-schema-selection value="true" />
</lookup-filters>
</navigation-settings>
<dataset-grid-settings>
<general>
<enable-zooming value="true" />
</general>
<sorting>
<nulls-first value="true" />
<max-sorting-columns value="4" />
</sorting>
<tracking-columns>
<columnNames value="" />
<visible value="true" />
<editable value="false" />
</tracking-columns>
</dataset-grid-settings>
<dataset-editor-settings>
<text-editor-popup>
<active value="false" />
<active-if-empty value="false" />
<data-length-threshold value="100" />
<popup-delay value="1000" />
</text-editor-popup>
<values-list-popup>
<show-popup-button value="true" />
<element-count-threshold value="1000" />
<data-length-threshold value="250" />
</values-list-popup>
<general>
<fetch-block-size value="100" />
<fetch-timeout value="30" />
<trim-whitespaces value="true" />
<convert-empty-strings-to-null value="true" />
<select-content-on-cell-edit value="true" />
<large-value-preview-active value="true" />
</general>
<filters>
<prompt-filter-dialog value="true" />
<default-filter-type value="BASIC" />
</filters>
<qualified-text-editor text-length-threshold="300">
<content-types>
<content-type name="Text" enabled="true" />
<content-type name="XML" enabled="true" />
<content-type name="DTD" enabled="true" />
<content-type name="HTML" enabled="true" />
<content-type name="XHTML" enabled="true" />
<content-type name="CSS" enabled="true" />
<content-type name="SQL" enabled="true" />
<content-type name="PL/SQL" enabled="true" />
<content-type name="JavaScript" enabled="true" />
<content-type name="JSP" enabled="true" />
<content-type name="JSPx" enabled="true" />
<content-type name="ASP" enabled="true" />
<content-type name="YAML" enabled="true" />
</content-types>
</qualified-text-editor>
<record-navigation>
<navigation-target value="VIEWER" />
</record-navigation>
</dataset-editor-settings>
<code-editor-settings>
<general>
<show-object-navigation-gutter value="false" />
<show-spec-declaration-navigation-gutter value="true" />
</general>
<confirmations>
<save-changes value="false" />
<revert-changes value="true" />
</confirmations>
</code-editor-settings>
<code-completion-settings>
<filters>
<basic-filter>
<filter-element type="RESERVED_WORD" id="keyword" selected="true" />
<filter-element type="RESERVED_WORD" id="function" selected="true" />
<filter-element type="RESERVED_WORD" id="parameter" selected="true" />
<filter-element type="RESERVED_WORD" id="datatype" selected="true" />
<filter-element type="RESERVED_WORD" id="exception" selected="true" />
<filter-element type="OBJECT" id="schema" selected="true" />
<filter-element type="OBJECT" id="role" selected="true" />
<filter-element type="OBJECT" id="user" selected="true" />
<filter-element type="OBJECT" id="privilege" selected="true" />
<user-schema>
<filter-element type="OBJECT" id="table" selected="true" />
<filter-element type="OBJECT" id="view" selected="true" />
<filter-element type="OBJECT" id="materialized view" selected="true" />
<filter-element type="OBJECT" id="index" selected="true" />
<filter-element type="OBJECT" id="constraint" selected="true" />
<filter-element type="OBJECT" id="trigger" selected="true" />
<filter-element type="OBJECT" id="synonym" selected="false" />
<filter-element type="OBJECT" id="sequence" selected="true" />
<filter-element type="OBJECT" id="procedure" selected="true" />
<filter-element type="OBJECT" id="function" selected="true" />
<filter-element type="OBJECT" id="package" selected="true" />
<filter-element type="OBJECT" id="type" selected="true" />
<filter-element type="OBJECT" id="dimension" selected="true" />
<filter-element type="OBJECT" id="cluster" selected="true" />
<filter-element type="OBJECT" id="dblink" selected="true" />
</user-schema>
<public-schema>
<filter-element type="OBJECT" id="table" selected="false" />
<filter-element type="OBJECT" id="view" selected="false" />
<filter-element type="OBJECT" id="materialized view" selected="false" />
<filter-element type="OBJECT" id="index" selected="false" />
<filter-element type="OBJECT" id="constraint" selected="false" />
<filter-element type="OBJECT" id="trigger" selected="false" />
<filter-element type="OBJECT" id="synonym" selected="false" />
<filter-element type="OBJECT" id="sequence" selected="false" />
<filter-element type="OBJECT" id="procedure" selected="false" />
<filter-element type="OBJECT" id="function" selected="false" />
<filter-element type="OBJECT" id="package" selected="false" />
<filter-element type="OBJECT" id="type" selected="false" />
<filter-element type="OBJECT" id="dimension" selected="false" />
<filter-element type="OBJECT" id="cluster" selected="false" />
<filter-element type="OBJECT" id="dblink" selected="false" />
</public-schema>
<any-schema>
<filter-element type="OBJECT" id="table" selected="true" />
<filter-element type="OBJECT" id="view" selected="true" />
<filter-element type="OBJECT" id="materialized view" selected="true" />
<filter-element type="OBJECT" id="index" selected="true" />
<filter-element type="OBJECT" id="constraint" selected="true" />
<filter-element type="OBJECT" id="trigger" selected="true" />
<filter-element type="OBJECT" id="synonym" selected="true" />
<filter-element type="OBJECT" id="sequence" selected="true" />
<filter-element type="OBJECT" id="procedure" selected="true" />
<filter-element type="OBJECT" id="function" selected="true" />
<filter-element type="OBJECT" id="package" selected="true" />
<filter-element type="OBJECT" id="type" selected="true" />
<filter-element type="OBJECT" id="dimension" selected="true" />
<filter-element type="OBJECT" id="cluster" selected="true" />
<filter-element type="OBJECT" id="dblink" selected="true" />
</any-schema>
</basic-filter>
<extended-filter>
<filter-element type="RESERVED_WORD" id="keyword" selected="true" />
<filter-element type="RESERVED_WORD" id="function" selected="true" />
<filter-element type="RESERVED_WORD" id="parameter" selected="true" />
<filter-element type="RESERVED_WORD" id="datatype" selected="true" />
<filter-element type="RESERVED_WORD" id="exception" selected="true" />
<filter-element type="OBJECT" id="schema" selected="true" />
<filter-element type="OBJECT" id="user" selected="true" />
<filter-element type="OBJECT" id="role" selected="true" />
<filter-element type="OBJECT" id="privilege" selected="true" />
<user-schema>
<filter-element type="OBJECT" id="table" selected="true" />
<filter-element type="OBJECT" id="view" selected="true" />
<filter-element type="OBJECT" id="materialized view" selected="true" />
<filter-element type="OBJECT" id="index" selected="true" />
<filter-element type="OBJECT" id="constraint" selected="true" />
<filter-element type="OBJECT" id="trigger" selected="true" />
<filter-element type="OBJECT" id="synonym" selected="true" />
<filter-element type="OBJECT" id="sequence" selected="true" />
<filter-element type="OBJECT" id="procedure" selected="true" />
<filter-element type="OBJECT" id="function" selected="true" />
<filter-element type="OBJECT" id="package" selected="true" />
<filter-element type="OBJECT" id="type" selected="true" />
<filter-element type="OBJECT" id="dimension" selected="true" />
<filter-element type="OBJECT" id="cluster" selected="true" />
<filter-element type="OBJECT" id="dblink" selected="true" />
</user-schema>
<public-schema>
<filter-element type="OBJECT" id="table" selected="true" />
<filter-element type="OBJECT" id="view" selected="true" />
<filter-element type="OBJECT" id="materialized view" selected="true" />
<filter-element type="OBJECT" id="index" selected="true" />
<filter-element type="OBJECT" id="constraint" selected="true" />
<filter-element type="OBJECT" id="trigger" selected="true" />
<filter-element type="OBJECT" id="synonym" selected="true" />
<filter-element type="OBJECT" id="sequence" selected="true" />
<filter-element type="OBJECT" id="procedure" selected="true" />
<filter-element type="OBJECT" id="function" selected="true" />
<filter-element type="OBJECT" id="package" selected="true" />
<filter-element type="OBJECT" id="type" selected="true" />
<filter-element type="OBJECT" id="dimension" selected="true" />
<filter-element type="OBJECT" id="cluster" selected="true" />
<filter-element type="OBJECT" id="dblink" selected="true" />
</public-schema>
<any-schema>
<filter-element type="OBJECT" id="table" selected="true" />
<filter-element type="OBJECT" id="view" selected="true" />
<filter-element type="OBJECT" id="materialized view" selected="true" />
<filter-element type="OBJECT" id="index" selected="true" />
<filter-element type="OBJECT" id="constraint" selected="true" />
<filter-element type="OBJECT" id="trigger" selected="true" />
<filter-element type="OBJECT" id="synonym" selected="true" />
<filter-element type="OBJECT" id="sequence" selected="true" />
<filter-element type="OBJECT" id="procedure" selected="true" />
<filter-element type="OBJECT" id="function" selected="true" />
<filter-element type="OBJECT" id="package" selected="true" />
<filter-element type="OBJECT" id="type" selected="true" />
<filter-element type="OBJECT" id="dimension" selected="true" />
<filter-element type="OBJECT" id="cluster" selected="true" />
<filter-element type="OBJECT" id="dblink" selected="true" />
</any-schema>
</extended-filter>
</filters>
<sorting enabled="true">
<sorting-element type="RESERVED_WORD" id="keyword" />
<sorting-element type="RESERVED_WORD" id="datatype" />
<sorting-element type="OBJECT" id="column" />
<sorting-element type="OBJECT" id="table" />
<sorting-element type="OBJECT" id="view" />
<sorting-element type="OBJECT" id="materialized view" />
<sorting-element type="OBJECT" id="index" />
<sorting-element type="OBJECT" id="constraint" />
<sorting-element type="OBJECT" id="trigger" />
<sorting-element type="OBJECT" id="synonym" />
<sorting-element type="OBJECT" id="sequence" />
<sorting-element type="OBJECT" id="procedure" />
<sorting-element type="OBJECT" id="function" />
<sorting-element type="OBJECT" id="package" />
<sorting-element type="OBJECT" id="type" />
<sorting-element type="OBJECT" id="dimension" />
<sorting-element type="OBJECT" id="cluster" />
<sorting-element type="OBJECT" id="dblink" />
<sorting-element type="OBJECT" id="schema" />
<sorting-element type="OBJECT" id="role" />
<sorting-element type="OBJECT" id="user" />
<sorting-element type="RESERVED_WORD" id="function" />
<sorting-element type="RESERVED_WORD" id="parameter" />
</sorting>
<format>
<enforce-code-style-case value="true" />
</format>
</code-completion-settings>
<execution-engine-settings>
<statement-execution>
<fetch-block-size value="100" />
<execution-timeout value="20" />
<debug-execution-timeout value="600" />
<focus-result value="false" />
<prompt-execution value="false" />
</statement-execution>
<script-execution>
<command-line-interfaces />
<execution-timeout value="300" />
</script-execution>
<method-execution>
<execution-timeout value="30" />
<debug-execution-timeout value="600" />
<parameter-history-size value="10" />
</method-execution>
</execution-engine-settings>
<operation-settings>
<transactions>
<uncommitted-changes>
<on-project-close value="ASK" />
<on-disconnect value="ASK" />
<on-autocommit-toggle value="ASK" />
</uncommitted-changes>
<multiple-uncommitted-changes>
<on-commit value="ASK" />
<on-rollback value="ASK" />
</multiple-uncommitted-changes>
</transactions>
<session-browser>
<disconnect-session value="ASK" />
<kill-session value="ASK" />
<reload-on-filter-change value="false" />
</session-browser>
<compiler>
<compile-type value="KEEP" />
<compile-dependencies value="ASK" />
<always-show-controls value="false" />
</compiler>
<debugger>
<debugger-type value="JDBC" />
<use-generic-runners value="true" />
</debugger>
</operation-settings>
<ddl-file-settings>
<extensions>
<mapping file-type-id="VIEW" extensions="vw" />
<mapping file-type-id="TRIGGER" extensions="trg" />
<mapping file-type-id="PROCEDURE" extensions="prc" />
<mapping file-type-id="FUNCTION" extensions="fnc" />
<mapping file-type-id="PACKAGE" extensions="pkg" />
<mapping file-type-id="PACKAGE_SPEC" extensions="pks" />
<mapping file-type-id="PACKAGE_BODY" extensions="pkb" />
<mapping file-type-id="TYPE" extensions="tpe" />
<mapping file-type-id="TYPE_SPEC" extensions="tps" />
<mapping file-type-id="TYPE_BODY" extensions="tpb" />
</extensions>
<general>
<lookup-ddl-files value="true" />
<create-ddl-files value="false" />
<synchronize-ddl-files value="true" />
<use-qualified-names value="false" />
<make-scripts-rerunnable value="true" />
</general>
</ddl-file-settings>
<general-settings>
<regional-settings>
<date-format value="MEDIUM" />
<number-format value="UNGROUPED" />
<locale value="SYSTEM_DEFAULT" />
<use-custom-formats value="false" />
</regional-settings>
<environment>
<environment-types>
<environment-type id="development" name="Development" description="Development environment" color="-2430209/-12296320" readonly-code="false" readonly-data="false" />
<environment-type id="integration" name="Integration" description="Integration environment" color="-2621494/-12163514" readonly-code="true" readonly-data="false" />
<environment-type id="production" name="Production" description="Productive environment" color="-11574/-10271420" readonly-code="true" readonly-data="true" />
<environment-type id="other" name="Other" description="" color="-1576/-10724543" readonly-code="false" readonly-data="false" />
</environment-types>
<visibility-settings>
<connection-tabs value="true" />
<dialog-headers value="true" />
<object-editor-tabs value="true" />
<script-editor-tabs value="false" />
<execution-result-tabs value="true" />
</visibility-settings>
</environment>
</general-settings>
</component>
<component name="DBNavigator.Project.StatementExecutionManager">
<execution-variables />
</component>
</project>
\ No newline at end of file
... ...
<component name="MarkdownNavigator.ProfileManager">
<settings default="" pdf-export="" />
</component>
\ 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="MarkdownProjectSettings">
<PreviewSettings splitEditorLayout="SPLIT" splitEditorPreview="PREVIEW" useGrayscaleRendering="false" zoomFactor="1.0" maxImageWidth="0" showGitHubPageIfSynced="false" allowBrowsingInPreview="false" synchronizePreviewPosition="true" highlightPreviewType="NONE" highlightFadeOut="5" highlightOnTyping="true" synchronizeSourcePosition="true" verticallyAlignSourceAndPreviewSyncPosition="true" showSearchHighlightsInPreview="false" showSelectionInPreview="true">
<PanelProvider>
<provider providerId="com.vladsch.idea.multimarkdown.editor.swing.html.panel" providerName="Default - Swing" />
</PanelProvider>
</PreviewSettings>
<ParserSettings gitHubSyntaxChange="false">
<PegdownExtensions>
<option name="ABBREVIATIONS" value="false" />
<option name="ANCHORLINKS" value="true" />
<option name="ASIDE" value="false" />
<option name="ATXHEADERSPACE" value="true" />
<option name="AUTOLINKS" value="true" />
<option name="DEFINITIONS" value="false" />
<option name="DEFINITION_BREAK_DOUBLE_BLANK_LINE" value="false" />
<option name="FENCED_CODE_BLOCKS" value="true" />
<option name="FOOTNOTES" value="false" />
<option name="HARDWRAPS" value="false" />
<option name="INSERTED" value="false" />
<option name="QUOTES" value="false" />
<option name="RELAXEDHRULES" value="true" />
<option name="SMARTS" value="false" />
<option name="STRIKETHROUGH" value="true" />
<option name="SUBSCRIPT" value="false" />
<option name="SUPERSCRIPT" value="false" />
<option name="SUPPRESS_HTML_BLOCKS" value="false" />
<option name="SUPPRESS_INLINE_HTML" value="false" />
<option name="TABLES" value="true" />
<option name="TASKLISTITEMS" value="true" />
<option name="TOC" value="false" />
<option name="WIKILINKS" value="true" />
</PegdownExtensions>
<ParserOptions>
<option name="COMMONMARK_LISTS" value="true" />
<option name="DUMMY" value="false" />
<option name="EMOJI_SHORTCUTS" value="true" />
<option name="FLEXMARK_FRONT_MATTER" value="false" />
<option name="GFM_LOOSE_BLANK_LINE_AFTER_ITEM_PARA" value="false" />
<option name="GFM_TABLE_RENDERING" value="true" />
<option name="GITBOOK_URL_ENCODING" value="false" />
<option name="GITHUB_EMOJI_URL" value="false" />
<option name="GITHUB_LISTS" value="false" />
<option name="GITHUB_WIKI_LINKS" value="true" />
<option name="JEKYLL_FRONT_MATTER" value="false" />
<option name="SIM_TOC_BLANK_LINE_SPACER" value="true" />
</ParserOptions>
</ParserSettings>
<HtmlSettings headerTopEnabled="false" headerBottomEnabled="false" bodyTopEnabled="false" bodyBottomEnabled="false" embedUrlContent="false" addPageHeader="true">
<GeneratorProvider>
<provider providerId="com.vladsch.idea.multimarkdown.editor.swing.html.generator" providerName="Default Swing HTML Generator" />
</GeneratorProvider>
<headerTop />
<headerBottom />
<bodyTop />
<bodyBottom />
</HtmlSettings>
<CssSettings previewScheme="UI_SCHEME" cssUri="" isCssUriEnabled="false" isCssTextEnabled="false" isDynamicPageWidth="true">
<StylesheetProvider>
<provider providerId="com.vladsch.idea.multimarkdown.editor.swing.html.css" providerName="Default Swing Stylesheet" />
</StylesheetProvider>
<ScriptProviders />
<cssText />
</CssSettings>
<HtmlExportSettings updateOnSave="false" parentDir="$ProjectFileDir$" targetDir="$ProjectFileDir$" cssDir="" scriptDir="" plainHtml="false" imageDir="" copyLinkedImages="false" imageUniquifyType="0" targetExt="" useTargetExt="false" noCssNoScripts="false" linkToExportedHtml="true" exportOnSettingsChange="true" regenerateOnProjectOpen="false" />
<LinkMapSettings>
<textMaps />
</LinkMapSettings>
</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/ufo-share-act-0606.iml" filepath="$PROJECT_DIR$/.idea/ufo-share-act-0606.iml" />
</modules>
</component>
</project>
\ No newline at end of file
... ...
<?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="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="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="54f07507-1869-472d-9df0-58146e96432b" name="Default" comment="">
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/images/bottom.jpg" afterPath="$PROJECT_DIR$/images/bottom.jpg" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/images/btn_get.png" afterPath="$PROJECT_DIR$/images/btn_get.png" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/images/coupons.jpg" afterPath="$PROJECT_DIR$/images/coupons.jpg" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/images/product_title.jpg" afterPath="$PROJECT_DIR$/images/product_title.jpg" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/images/repeat_bg.jpg" afterPath="$PROJECT_DIR$/images/repeat_bg.jpg" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/images/rules.jpg" afterPath="$PROJECT_DIR$/images/rules.jpg" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/images/share.png" afterPath="$PROJECT_DIR$/images/share.png" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/images/title.jpg" afterPath="$PROJECT_DIR$/images/title.jpg" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/share/logo.jpg" afterPath="$PROJECT_DIR$/share/logo.jpg" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/index.html" afterPath="$PROJECT_DIR$/index.html" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/js/main.js" afterPath="$PROJECT_DIR$/js/main.js" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/js/main.min.js" afterPath="$PROJECT_DIR$/js/main.min.js" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/js/wxshare.js" afterPath="$PROJECT_DIR$/js/wxshare.js" />
</list>
<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="ExecutionTargetManager" SELECTED_TARGET="default_target" />
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file leaf-file-name="index.html" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/index.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-240">
<caret line="7" column="19" lean-forward="false" selection-start-line="7" selection-start-column="19" selection-end-line="7" selection-end-column="19" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="main.css" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/css/main.css">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="381">
<caret line="62" column="16" lean-forward="false" selection-start-line="62" selection-start-column="16" selection-end-line="62" selection-end-column="16" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="main.js" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/js/main.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="328">
<caret line="269" column="29" lean-forward="true" selection-start-line="0" selection-start-column="0" selection-end-line="389" selection-end-column="3" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="main.min.js" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/js/main.min.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="408">
<caret line="24" column="171" lean-forward="false" selection-start-line="24" selection-start-column="171" selection-end-line="24" selection-end-column="171" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="wxshare.js" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/js/wxshare.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="412">
<caret line="72" column="46" lean-forward="false" selection-start-line="72" selection-start-column="46" selection-end-line="72" selection-end-column="46" />
<folding />
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="FindInProjectRecents">
<findStrings>
<find>products-list</find>
<find>couponToken</find>
<find>getServerTime</find>
<find>serverTime</find>
</findStrings>
<replaceStrings>
<replace>'_share_fromid_' + window.shareC.eventName</replace>
<replace>'_share_preid_' + window.shareC.eventName</replace>
</replaceStrings>
</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$/css/main.css" />
<option value="$PROJECT_DIR$/index.html" />
<option value="$PROJECT_DIR$/js/wxshare.js" />
<option value="$PROJECT_DIR$/js/main.js" />
<option value="$PROJECT_DIR$/js/main.min.js" />
</list>
</option>
</component>
<component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" />
<component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER" />
<component name="JsFlowSettings">
<service-enabled>true</service-enabled>
<exe-path />
<annotation-enable>false</annotation-enable>
<other-services-enabled>true</other-services-enabled>
</component>
<component name="JsGulpfileManager">
<detection-done>true</detection-done>
<sorting>DEFINITION_ORDER</sorting>
</component>
<component name="ProjectFrameBounds">
<option name="x" value="243" />
<option name="y" value="23" />
<option name="width" value="1374" />
<option name="height" value="1027" />
</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="Scratches" />
<pane id="ProjectPane">
<subPane>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="ufo-share-act-0606" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="ufo-share-act-0606" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="ufo-share-act-0606" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="ufo-share-act-0606" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="share" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="ufo-share-act-0606" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="ufo-share-act-0606" />
<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="ufo-share-act-0606" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="ufo-share-act-0606" />
<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_ELEMENT>
<option name="myItemId" value="main.js" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.NestingTreeNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="ufo-share-act-0606" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="ufo-share-act-0606" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="images" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="ufo-share-act-0606" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="ufo-share-act-0606" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="css" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
</subPane>
</pane>
<pane id="Scope" />
</panes>
</component>
<component name="PropertiesComponent">
<property name="nodejs_interpreter_path" value="$USER_HOME$/.nvm/versions/node/v8.3.0/bin/node" />
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
<property name="HbShouldOpenHtmlAsHb" value="" />
<property name="settings.editor.selected.configurable" value="Settings.JavaScript" />
<property name="JavaScriptPreferStrict" value="false" />
<property name="JavaScriptWeakerCompletionTypeGuess" value="true" />
</component>
<component name="RunDashboard">
<option name="ruleStates">
<list>
<RuleState>
<option name="name" value="ConfigurationTypeDashboardGroupingRule" />
</RuleState>
<RuleState>
<option name="name" value="StatusDashboardGroupingRule" />
</RuleState>
</list>
</option>
</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="JavaScriptTestRunnerJest" factoryName="Jest">
<node-interpreter value="project" />
<working-dir value="" />
<envs />
<scope-kind value="ALL" />
<method />
</configuration>
<configuration default="true" type="JavaScriptTestRunnerKarma" factoryName="Karma">
<config-file value="" />
<node-interpreter value="project" />
<envs />
<method />
</configuration>
<configuration default="true" type="JavaScriptTestRunnerProtractor" factoryName="Protractor">
<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">
<node-interpreter>project</node-interpreter>
<node-options />
<gulpfile />
<tasks />
<arguments />
<envs />
<method />
</configuration>
<configuration default="true" type="js.build_tools.npm" factoryName="npm">
<command value="run" />
<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="54f07507-1869-472d-9df0-58146e96432b" name="Default" comment="" />
<created>1560302947399</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1560302947399</updated>
<workItem from="1560302951031" duration="11920000" />
<workItem from="1560505621419" duration="3172000" />
</task>
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="15092000" />
</component>
<component name="ToolWindowManager">
<frame x="243" y="23" width="1374" height="1027" extended-state="0" />
<editor active="true" />
<layout>
<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="DB Browser" 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="2" side_tool="false" content_ui="tabs" />
<window_info id="DB Execution Console" 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="7" 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="7" 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="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32941177" sideWeight="0.5" order="7" 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="7" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.24981523" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="MaxCompute Console" 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="7" side_tool="false" content_ui="tabs" />
<window_info id="MaxCompute Job" 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="7" side_tool="false" content_ui="tabs" />
<window_info id="MaxCompute Job Explorer" 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="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="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="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="2" side_tool="true" content_ui="tabs" />
<window_info id="MaxCompute Project Explorer" 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="2" 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="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="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="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="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="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="TypeScriptGeneratedFilesManager">
<option name="processedProjectFiles" value="true" />
</component>
<component name="Vcs.Log.History.Properties">
<option name="COLUMN_ORDER">
<list>
<option value="0" />
<option value="2" />
<option value="3" />
<option value="1" />
</list>
</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$/index.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" 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$/css/main.css">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1054">
<caret line="62" column="16" lean-forward="true" selection-start-line="62" selection-start-column="16" selection-end-line="62" selection-end-column="16" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/js/main.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="4879">
<caret line="287" column="18" lean-forward="true" selection-start-line="287" selection-start-column="18" selection-end-line="287" selection-end-column="18" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/js/main.min.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="408">
<caret line="24" column="171" lean-forward="false" selection-start-line="24" selection-start-column="171" selection-end-line="24" selection-end-column="171" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/js/wxshare.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1445">
<caret line="85" column="0" lean-forward="true" selection-start-line="85" selection-start-column="0" selection-end-line="85" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/images/products/2.jpg">
<provider selected="true" editor-type-id="images">
<state />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/images/share.png">
<provider selected="true" editor-type-id="images">
<state />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/css/main.css">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="381">
<caret line="62" column="16" lean-forward="false" selection-start-line="62" selection-start-column="16" selection-end-line="62" selection-end-column="16" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/index.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-240">
<caret line="7" column="19" lean-forward="false" selection-start-line="7" selection-start-column="19" selection-end-line="7" selection-end-column="19" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/js/product.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" 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$/js/wxshare.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="412">
<caret line="72" column="46" lean-forward="false" selection-start-line="72" selection-start-column="46" selection-end-line="72" selection-end-column="46" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/js/main.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="328">
<caret line="269" column="29" lean-forward="true" selection-start-line="0" selection-start-column="0" selection-end-line="389" selection-end-column="3" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/js/main.min.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="408">
<caret line="24" column="171" lean-forward="false" selection-start-line="24" selection-start-column="171" selection-end-line="24" selection-end-column="171" />
<folding />
</state>
</provider>
</entry>
</component>
</project>
\ No newline at end of file
... ...
... ... @@ -50,8 +50,8 @@ li .left-item {
position: absolute;
width: 7rem;
height: 5.2rem;
left: 2rem;
top: 1rem;
left: 1rem;
top: 0.8rem;
}
li .right-item {
... ... @@ -59,8 +59,23 @@ li .right-item {
position: absolute;
width: 7rem;
height: 5.2rem;
left: 10rem;
top: 1rem;
left: 9rem;
top: 0.8rem;
}
li.repeat-bg {
background-image: url(../images/repeat_bg.jpg);
background-repeat: repeat-y;
background-size: contain;
}
li .products-list {
width: 16.65rem;
margin: 0 auto;
}
li .products-list li {
margin-bottom: 0.5rem;
}
.wrapper {
... ... @@ -92,10 +107,10 @@ li .right-item {
.hand {
position: absolute;
width: 1.875rem;
height: 2.025rem;
top: 1rem;
right: 3.5rem;
width: 1.5rem;
height: 1.65rem;
top: 0.5rem;
right: 5.9rem;
background-image: url('../images/hand.png');
background-size:100% 100%;
z-index: 11;
... ... @@ -106,8 +121,8 @@ li .right-item {
}
.coupon-button {
width: 10.275rem;
height: 2.15rem;
width: 7.575rem;
height: 2.2rem;
margin: 0.1rem auto;
background-image: url(../images/btn_get.png);
background-size: 100% 100%;
... ... @@ -117,7 +132,7 @@ li .right-item {
width: 100%;
line-height: 1rem;
font-size: 0.6rem;
margin-top: 0.5rem;
margin-top: 0.2rem;
text-align: center;
color: #fff;
}
... ...

9.53 KB | W: | H:

12.4 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin

6.64 KB | W: | H:

6.71 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin

87.4 KB | W: | H:

92.7 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin

21.5 KB | W: | H:

26.1 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin

31.8 KB | W: | H:

30.5 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin

31.7 KB | W: | H:

29.9 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin

35.4 KB | W: | H:

30.7 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin

37.1 KB | W: | H:

33.1 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin

36.5 KB | W: | H:

34.2 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin

36.2 KB | W: | H:

33.7 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin

40 KB | W: | H:

36.2 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin

35 KB | W: | H:

31.5 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin

35.6 KB | W: | H:

33.5 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin

36.9 KB | W: | H:

34.7 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin

36.2 KB | W: | H:

32.2 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin

35.7 KB | W: | H:

33.4 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin

35.9 KB | W: | H:

31.9 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin

34.6 KB | W: | H:

32.5 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin

32.3 KB | W: | H:

30.4 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin

34.3 KB | W: | H:

30 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin

36.6 KB | W: | H:

32.1 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin

36.5 KB | W: | H:

34 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin

33.7 KB | W: | H:

30.1 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin

36.8 KB | W: | H:

33 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin

38.2 KB | W: | H:

34.6 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin

34.4 KB | W: | H:

31.5 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin

38.4 KB | W: | H:

33.4 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin

28.4 KB | W: | H:

23.4 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin

30.2 KB | W: | H:

28 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin

137 KB | W: | H:

72.1 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin

64.1 KB | W: | H:

77.4 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin
... ... @@ -5,11 +5,11 @@
<meta http-equiv="X-UA-Compatible" content="chrome=1,IE=edge"/>
<meta content="telephone=no" name="format-detection"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no, viewport-fit=cover">
<title>【有货UFO】年中大促!UFO日670元优惠券限量领!</title>
<title>【有货UFO】520元优惠券打包送你,用券下单更划算</title>
<link rel="stylesheet" href="css/main.css">
<script>
window.shareC = {
eventName: 'cfs',
eventName: 'cfs3',
shareUrl: document.location.href.split('?')[0]
};
(function (win) {
... ... @@ -59,7 +59,7 @@
<script type="text/javascript" src="js/jquery-2.1.3.min.js"></script>
<script type="text/javascript" src="js/utils.js"></script>
<script type="text/javascript" src="js/product.js"></script>
<script type="text/javascript" src="js/main.js?code=101"></script>
<script type="text/javascript" src="js/main.min.js?code=101"></script>
</head>
<body>
<div class="wrapper">
... ... @@ -87,7 +87,7 @@
<img src="images/product_title.jpg">
</div>
</li>
<li>
<li class="repeat-bg">
<!--ufo商品推荐-->
<ul class="products-list">
<li v-for="item in productData">
... ...
... ... @@ -55,13 +55,13 @@ function verion(left, right) {
$(document).ready(function() {
queryObj = Utils.getQueryObj();
try {
var fromid = localStorage.getItem('_share_fromid');
var fromid = localStorage.getItem('_share_fromid_' + window.shareC.eventName);
if (queryObj && +queryObj.fid && +queryObj.fid !== +fromid) {
if (queryObj.fid) {
localStorage.setItem('_share_fromid', queryObj.fid);
localStorage.setItem('_share_fromid_' + window.shareC.eventName, queryObj.fid);
}
localStorage.removeItem('_share_preid');
localStorage.removeItem('_share_preid_' + window.shareC.eventName);
fromid = queryObj.fid;
}
shareC && (shareC.fid = fromid);
... ... @@ -83,62 +83,12 @@ $(document).ready(function() {
},
fromPage: 'iFP_SalesPromotion_h5',
couponToken: {
'2019-06-04': [
'cd67ca39-543c-4899-9926-6d7f77e3e87f',
'228d0ca1-864f-40c1-bf2d-6014617aa008',
'aab792ee-c6a0-43ff-a3b5-125a00425127',
'2aa86e32-2f31-45ce-aaec-2dc6daa0dc32',
'85a3f0a7-22f5-4a45-9ebb-66eb268a1e84'
],
'2019-06-05': [
'31c473ee-a05d-4a9a-a08a-29d8b02eae9f',
'206d445a-5cb7-455f-82e6-37995b459616',
'c87899d1-90e8-47a8-9885-30c42baa7e63',
'e90bdf70-f722-4d6c-a23c-db93d6939213',
'9c6a80b9-3f83-4d65-a6ee-1ad320d04a3f'
],
'2019-06-06': [
'd40e8c95-0d55-4cfd-b93e-468e56cd5970',
'96e94790-c879-4887-98bb-12f1910b0062',
'250878ae-c362-4549-a2c5-06971f67ac95',
'3dc2d254-0d65-4c09-ac34-5520a2f9833c',
'62cfacd7-5d3e-4b1e-9bc1-038ec795c1f6'
],
'2019-06-07': [
'55e57693-23f5-4d51-8e04-aa73947bc708',
'ac0b759b-731c-4dd7-b675-548ab7be969b',
'121fe052-9319-450c-a96d-6540a52836e0',
'7eac5245-92d1-4682-b264-8e199290c633',
'5650b316-dabb-46fe-8390-a53571bec10b'
],
'2019-06-08': [
'b20dd2f5-a245-4ee0-bb1c-1fb9834982d9',
'a76770f3-6cd9-4887-bf69-7e5637c6df27',
'6b47989c-767f-4718-a150-c5e4bd8f2375',
'53f9478d-d5ca-48da-bc7e-0873b4ad4449',
'8e9a3c9f-c463-46df-a785-c168a950f8e2'
],
'2019-06-09': [
'dbf2a75c-5bf5-4239-a145-862434c99c08',
'6a5eaac4-3b76-48dc-a136-f00e16388c34',
'0c052878-e4c8-4b8e-812a-073756ca739c',
'f0fb904e-4ce9-4499-a59e-ff24240d9d5c',
'76326e0d-c53f-4609-a5d0-dbbbc348cad0'
],
'2019-06-10': [
'457e54bc-d5a3-4dcb-8c59-11c3806bb939',
'97434e07-a5d3-4b1e-8c06-8b8ab6901a58',
'c39986f4-973d-45e3-9a65-7488f7ef1cfe',
'dbf8a00c-b5bf-4c87-b2f8-51b30c88f0f6',
'd55df69b-541a-472e-97aa-6a8d8dd3173b'
],
'2019-06-11': [
'fd32080b-7d95-4033-907d-4ded00ed50b8',
'be25fa78-9ae3-4c03-a5e3-225012004dec',
'b246d585-0f99-41e5-a2a8-825a7847abcd',
'85154dc8-26a1-4cc1-b098-8869a44a75e8',
'07564e42-2105-41e2-8737-a2c8f3267d06'
],
'token': [
'3a9deb7d-8dbd-4243-a6db-6bf0d61d3ded',
'5ff12044-a702-4e01-8c2f-c58b44b5f7aa',
'771c821a-583a-4052-a906-160fe3733daf',
'1f16d27e-77a0-4516-a5a0-f6947c92a328'
]
},
productData: [],
serverTime: '',
... ... @@ -166,7 +116,7 @@ $(document).ready(function() {
document.addEventListener('WeixinJSBridgeReady', this.weixinJSReady, false);
}
this.yo_sdk = window.yo_sdk; // 初始化sdk
this.getServerTime();
// this.getServerTime();
this.preshare();
this.getParams();
this.getResource();
... ... @@ -175,7 +125,7 @@ $(document).ready(function() {
preshare() {
try {
var that = this;
var preid = localStorage.getItem('_share_preid');
var preid = localStorage.getItem('_share_preid_' + window.shareC.eventName);
if (preid) {
this.preid = preid;
... ... @@ -193,7 +143,7 @@ $(document).ready(function() {
success: function(res) {
if (res) {
that.preid = res.preid || 0;
localStorage.setItem('_share_preid', that.preid);
localStorage.setItem('_share_preid_' + window.shareC.eventName, that.preid);
that.setShareLink(res.preid);
}
}
... ... @@ -323,8 +273,8 @@ $(document).ready(function() {
{
method: 'go.showshareaction',
arguments: {
title: '【有货UFO】年中大促!UFO日670元优惠券限量领!',
desc: '买潮流好鞋就在有货UFO,用券更划算!全实物鉴定+全程鉴定视频让你的好货更有保障!',
title: '【有货UFO】520元优惠券打包送你,用券下单更划算',
desc: '618火热来袭,全实物鉴定助你入手潮流好物!超万件商品券后直降¥200,买热门尖货就在有货UFO!',
imgUrl: document.location.href.split('?')[0].replace(/\/index\d{0,}\.html/, '') + '/share/logo.jpg',
link: window.shareC && shareC.link || document.location.href.split('?')[0],
hideType: ['4', '5', '6', '7', '8', '9'],
... ... @@ -348,17 +298,7 @@ $(document).ready(function() {
},
getCoupon() { // 领券
let that = this;
// this.isShared = true;
if (!this.serverTime) {
this.showMessage('网络异常,请刷新重试');
return;
}
if (!this.couponToken[this.serverTime]) {
this.showMessage('活动已结束, 感谢您的参与');
return;
}
let couponToken = this.couponToken[this.serverTime].join(',');
let couponToken = this.couponToken['token'].join(',');
if (this.app_info.uid) {
let data = {
... ... @@ -377,7 +317,9 @@ $(document).ready(function() {
if (data.code === 200) {
that.showMessage('领券成功');
} else if (data.code === 401) {
that.showMessage('已领完,请明日再来');
that.showMessage('您已领取过该优惠券');
} else if (data.code === 403) {
that.showMessage('目前券已领完,请稍后再试');
} else {
that.showMessage(data.message);
}
... ...
"use strict";var queryObj=void 0;var getServerTimeApi="//m.yohobuy.com/activity/feature/getServerTimes";var getCouponApi="//m.yohobuy.com/activity/feature/couponSend";var UFO={app:null};function toVersion(){var str=arguments.length<=0||arguments[0]===undefined?"":arguments[0];
var ver=str.split(".").map(function(i){return Number(i)});if(!ver[0]){ver[0]=0}if(!ver[1]){ver[1]=0}if(!ver[2]){ver[2]=0}return ver}function toNumber(ver){var major=ver[0]*10000;var minor=ver[1]*100;var patch=ver[2]*1;
return major+minor+patch}function compare(left,right){if(left>right){return 1}else{if(left<right){return -1}else{return 0}}}function verion(left,right){var leftVersion=toNumber(toVersion(left));var rightVersion=toNumber(toVersion(right));
var result=compare(leftVersion,rightVersion);return result}$(document).ready(function(){queryObj=Utils.getQueryObj();UFO.app=new Vue({el:"#mainContainer",data:{env:"h5",uid:0,isShared:false,app_info:{uid:"0",app_version:"",client_type:"",session_key:""},fromPage:"iFP_SalesPromotion_h5",couponToken:{"2019-06-04":["cd67ca39-543c-4899-9926-6d7f77e3e87f","228d0ca1-864f-40c1-bf2d-6014617aa008","aab792ee-c6a0-43ff-a3b5-125a00425127","2aa86e32-2f31-45ce-aaec-2dc6daa0dc32","85a3f0a7-22f5-4a45-9ebb-66eb268a1e84"],"2019-06-05":["31c473ee-a05d-4a9a-a08a-29d8b02eae9f","206d445a-5cb7-455f-82e6-37995b459616","c87899d1-90e8-47a8-9885-30c42baa7e63","e90bdf70-f722-4d6c-a23c-db93d6939213","9c6a80b9-3f83-4d65-a6ee-1ad320d04a3f"],"2019-06-06":["d40e8c95-0d55-4cfd-b93e-468e56cd5970","96e94790-c879-4887-98bb-12f1910b0062","250878ae-c362-4549-a2c5-06971f67ac95","3dc2d254-0d65-4c09-ac34-5520a2f9833c","62cfacd7-5d3e-4b1e-9bc1-038ec795c1f6"],"2019-06-07":["55e57693-23f5-4d51-8e04-aa73947bc708","ac0b759b-731c-4dd7-b675-548ab7be969b","121fe052-9319-450c-a96d-6540a52836e0","7eac5245-92d1-4682-b264-8e199290c633","5650b316-dabb-46fe-8390-a53571bec10b"],"2019-06-08":["b20dd2f5-a245-4ee0-bb1c-1fb9834982d9","a76770f3-6cd9-4887-bf69-7e5637c6df27","6b47989c-767f-4718-a150-c5e4bd8f2375","53f9478d-d5ca-48da-bc7e-0873b4ad4449","8e9a3c9f-c463-46df-a785-c168a950f8e2"],"2019-06-09":["dbf2a75c-5bf5-4239-a145-862434c99c08","6a5eaac4-3b76-48dc-a136-f00e16388c34","0c052878-e4c8-4b8e-812a-073756ca739c","f0fb904e-4ce9-4499-a59e-ff24240d9d5c","76326e0d-c53f-4609-a5d0-dbbbc348cad0"],"2019-06-10":["457e54bc-d5a3-4dcb-8c59-11c3806bb939","97434e07-a5d3-4b1e-8c06-8b8ab6901a58","c39986f4-973d-45e3-9a65-7488f7ef1cfe","dbf8a00c-b5bf-4c87-b2f8-51b30c88f0f6","d55df69b-541a-472e-97aa-6a8d8dd3173b"],"2019-06-11":["fd32080b-7d95-4033-907d-4ded00ed50b8","be25fa78-9ae3-4c03-a5e3-225012004dec","b246d585-0f99-41e5-a2a8-825a7847abcd","85154dc8-26a1-4cc1-b098-8869a44a75e8","07564e42-2105-41e2-8737-a2c8f3267d06"]},productData:[],serverTime:"",serverTimeNumber:0,isShowShare:false,isShowTips:false,tipsMessage:""},created:function created(){this.productData=productData;
if(navigator.userAgent.match(/ANDROID/i)){this.fromPage="aFP_SalesPromotion_h5"}},mounted:function mounted(){if(queryObj.uid){this.uid=queryObj.uid}if(navigator.userAgent.match(/yohobuy/i)){this.env="app"
}else{if(navigator.userAgent.match(/miniprogram/i)){window.__wxjs_environment="miniprogram";this.weixinJSReady()}else{if(!window.WeixinJSBridge||!window.WeixinJSBridge.invoke){document.addEventListener("WeixinJSBridgeReady",this.weixinJSReady,false)
}}}this.yo_sdk=window.yo_sdk;this.getServerTime();this.getParams();this.getResource()},methods:{weixinJSReady:function weixinJSReady(){if(window.__wxjs_environment==="miniprogram"){this.env="miniprogram"
}},jumpToMiniapp:function jumpToMiniapp(e){var url=decodeURIComponent(e.currentTarget.dataset.url);var params=Utils.getQueryObj(url);if(params["openby:yohobuy"]){if(this.env==="miniprogram"){wx.miniProgram.navigateTo({url:"/pages/common/webback?url="+encodeURIComponent(url)})
}}else{if(url.indexOf("mp.weixin.qq.com")>0){wx.miniProgram.navigateTo({url:"/pages/webview/webview?url="+encodeURIComponent(url)})}}},goLogin:function goLogin(){var that=this;var appInterface=window.yohoInterface;
if(this.env==="app"&&appInterface){var params={method:"get.uid"};var success=function success(uid){if(!parseInt(uid,10)){if(that.yo_sdk.goLogin){that.yo_sdk.goLogin()}}else{that.app_info.uid=that.uid=uid;
appInterface.triggerEvent(function(sid){that.app_info.session_key=sid;that.checkShared()},function(){},{method:"get.sessionId"})}};var fail=function fail(){};appInterface.triggerEvent(success,fail,params)
}else{if(that.yo_sdk.goLogin){that.yo_sdk.goLogin()}}},getParams:function getParams(){var app_uid=this.uid=Utils.getCookie("app_uid")||queryObj.uid||"0";var app_session_key=Utils.getCookie("app_session_key")||queryObj.session_key||"";
var app_version=Utils.getCookie("app_version")||queryObj.app_version||"";var app_client_type=Utils.getCookie("app_client_type")||queryObj.app_client_type||"";this.app_info={uid:app_uid,session_key:app_session_key,app_version:app_version,client_type:app_client_type}
},checkShared:function checkShared(){var that=this;if(!this.isShared){if(this.env==="app"){(function(){var newShare=false;var app_vercode=Utils.getCookie("app_vercode");var app_version=Utils.getCookie("app_version")||queryObj.app_version||"";
if(verion(app_version,"6.9.5")>=0||app_vercode){newShare=true}document.addEventListener("deviceready",function(){var appInterface=window.yohoInterface;window.successShare=function(){that.getCoupon()};appInterface.triggerEvent(function(){},function(){},{method:"go.showshareaction",arguments:{title:"【有货UFO】年中大促!UFO日670元优惠券限量领!",desc:"买潮流好鞋就在有货UFO,用券更划算!全实物鉴定+全程鉴定视频让你的好货更有保障!",imgUrl:document.location.href.split("?")[0].replace("/index.html","")+"/share/logo.jpg",link:document.location.href.split("?")[0],hideType:["4","5","6","7","8","9"],isCareCallBack:"1"}});
if(!newShare){setTimeout(that.getCoupon,5000)}})})()}else{this.showShare();if(this.env==="miniprogram"){setTimeout(this.getCoupon,5000)}}}else{this.getCoupon()}},getCoupon:function getCoupon(){var that=this;
if(!this.serverTime){this.showMessage("网络异常,请刷新重试");return}if(!this.couponToken[this.serverTime]){this.showMessage("活动已结束, 感谢您的参与");return}var couponToken=this.couponToken[this.serverTime].join(",");if(this.app_info.uid){var data={token:couponToken,uid:this.uid,coupontype:"ufo",app:this.app_info};
$.ajax({url:getCouponApi+"?callback=?",type:"get",dataType:"jsonp",data:data,success:function success(data){if(data.code===200){that.showMessage("领券成功")}else{if(data.code===401){that.showMessage("已领完,请明日再来")
}else{that.showMessage(data.message)}}that.hideShare()}})}},getResource:function getResource(){var that=this;$(".products-list a").each(function(){if(that.env==="miniprogram"){$(this).on("click",that.jumpToMiniapp)
}else{$(this).attr("href",$(this).data("url"));$(this).attr("target","_blank")}})},getServerTime:function getServerTime(){var that=this;$.ajax({url:getServerTimeApi+"?callback=?",type:"get",dataType:"jsonp",data:{},success:function success(data){if(data){var time=new Date(data*1000);
that.serverTimeNumber=time.getTime();var year=time.getFullYear();var month=time.getMonth()+1<10?"0"+(time.getMonth()+1):time.getMonth();var day=time.getDate()<10?"0"+time.getDate():time.getDate();that.serverTime=[year,month,day].join("-")
}},error:function error(e){var time=new Date();var year=time.getFullYear();var month=time.getMonth()+1<10?"0"+(time.getMonth()+1):time.getMonth();var day=time.getDate();that.serverTime=[year,month,day].join("-")
}})},showMessage:function showMessage(msg){this.tipsMessage=msg;this.isShowTips=true},showShare:function showShare(){this.isShowShare=true},hideShare:function hideShare(){this.isShowShare=false},closeTips:function closeTips(){this.tipsMessage="";
this.isShowTips=false},refresh:function refresh(){document.location.reload()}}})});
\ No newline at end of file
"use strict";var queryObj=void 0;var getServerTimeApi="//m.yohobuy.com/activity/feature/getServerTimes";var getCouponApi="//m.yohobuy.com/activity/feature/couponSend";var UFO={app:null};function toVersion(){var b=arguments.length<=0||arguments[0]===undefined?"":arguments[0];
var a=b.split(".").map(function(c){return Number(c)});if(!a[0]){a[0]=0}if(!a[1]){a[1]=0}if(!a[2]){a[2]=0}return a}function toNumber(a){var b=a[0]*10000;var c=a[1]*100;var d=a[2]*1;return b+c+d}function compare(b,a){if(b>a){return 1
}else{if(b<a){return -1}else{return 0}}}function verion(e,b){var d=toNumber(toVersion(e));var c=toNumber(toVersion(b));var a=compare(d,c);return a}$(document).ready(function(){queryObj=Utils.getQueryObj();
try{var f=localStorage.getItem("_share_fromid_"+window.shareC.eventName);if(queryObj&&+queryObj.fid&&+queryObj.fid!==+f){if(queryObj.fid){localStorage.setItem("_share_fromid_"+window.shareC.eventName,queryObj.fid)
}localStorage.removeItem("_share_preid_"+window.shareC.eventName);f=queryObj.fid}shareC&&(shareC.fid=f)}catch(o){console.log(o)}UFO.app=new Vue({el:"#mainContainer",data:{preid:0,env:"h5",uid:0,isShared:false,app_info:{uid:"0",app_version:"",client_type:"",session_key:""},fromPage:"iFP_SalesPromotion_h5",couponToken:{"token":["3a9deb7d-8dbd-4243-a6db-6bf0d61d3ded","5ff12044-a702-4e01-8c2f-c58b44b5f7aa","771c821a-583a-4052-a906-160fe3733daf","1f16d27e-77a0-4516-a5a0-f6947c92a328"]},productData:[],serverTime:"",serverTimeNumber:0,isShowShare:false,isShowTips:false,tipsMessage:""},created:function g(){this.productData=productData;
if(navigator.userAgent.match(/ANDROID/i)){this.fromPage="aFP_SalesPromotion_h5"}},mounted:function b(){if(queryObj.uid){this.uid=queryObj.uid}if(navigator.userAgent.match(/yohobuy/i)){this.env="app"}else{if(navigator.userAgent.match(/miniprogram/i)){window.__wxjs_environment="miniprogram";
this.weixinJSReady()}else{if(!window.WeixinJSBridge||!window.WeixinJSBridge.invoke){document.addEventListener("WeixinJSBridgeReady",this.weixinJSReady,false)}}}this.yo_sdk=window.yo_sdk;this.preshare();
this.getParams();this.getResource()},methods:{preshare:function n(){try{var w=this;var u=localStorage.getItem("_share_preid_"+window.shareC.eventName);if(u){this.preid=u;this.setShareLink(u);return}$.ajax({url:"//action.yoho.cn/api/share/preshare?callback=?",dataType:"jsonp",data:{eventName:shareC.eventName,shareUrl:shareC.shareUrl,fid:shareC.fid||0},success:function x(y){if(y){w.preid=y.preid||0;
localStorage.setItem("_share_preid_"+window.shareC.eventName,w.preid);w.setShareLink(y.preid)}}})}catch(v){console.log(v)}},setShareLink:function m(u){shareC.link=document.location.href.split("?")[0]+"?fid="+u;
share&&share()},weixinJSReady:function r(){if(window.__wxjs_environment==="miniprogram"){this.env="miniprogram"}},jumpToMiniapp:function p(v){var u=decodeURIComponent(v.currentTarget.dataset.url);var w=Utils.getQueryObj(u);
if(w["openby:yohobuy"]){if(this.env==="miniprogram"){wx.miniProgram.navigateTo({url:"/pages/common/webback?url="+encodeURIComponent(u)})}}else{if(u.indexOf("mp.weixin.qq.com")>0){wx.miniProgram.navigateTo({url:"/pages/webview/webview?url="+encodeURIComponent(u)})
}}},goLogin:function e(){var v=this;var y=window.yohoInterface;if(this.env==="app"&&y){var x={method:"get.uid"};var w=function w(z){if(!parseInt(z,10)){if(v.yo_sdk.goLogin){v.yo_sdk.goLogin()}}else{v.app_info.uid=v.uid=z;
y.triggerEvent(function(A){v.app_info.session_key=A;v.checkShared()},function(){},{method:"get.sessionId"});v.setShareC(+z)}};var u=function u(){};y.triggerEvent(w,u,x)}else{if(v.yo_sdk.goLogin){v.yo_sdk.goLogin()
}}},setShareC:function k(u){var v=this;shareC.uid=u;if(this.preid){$.ajax({url:"//action.yoho.cn/api/share/collect?callback=?",dataType:"jsonp",data:{uid:u,fid:this.preid}})}else{setTimeout(function(){v.setShareC(u)
},500)}},getParams:function s(){var w=this.uid=Utils.getCookie("app_uid")||queryObj.uid||"0";var u=Utils.getCookie("app_session_key")||queryObj.session_key||"";var v=Utils.getCookie("app_version")||queryObj.app_version||"";
var x=Utils.getCookie("app_client_type")||queryObj.app_client_type||"";this.app_info={uid:w,session_key:u,app_version:v,client_type:x};if(w&&w!=="0"){this.setShareC(+w)}},checkShared:function q(){var u=this;
if(!this.isShared){if(this.env==="app"){(function(){var x=false;var w=Utils.getCookie("app_vercode");var v=Utils.getCookie("app_version")||queryObj.app_version||"";if(verion(v,"6.9.5")>=0||w){x=true}document.addEventListener("deviceready",function(){var y=window.yohoInterface;
window.successShare=function(){u.getCoupon()};y.triggerEvent(function(){},function(){},{method:"go.showshareaction",arguments:{title:"【有货UFO】520元优惠券打包送你,用券下单更划算",desc:"618火热来袭,全实物鉴定助你入手潮流好物!超万件商品券后直降¥200,买热门尖货就在有货UFO!",imgUrl:document.location.href.split("?")[0].replace(/\/index\d{0,}\.html/,"")+"/share/logo.jpg",link:window.shareC&&shareC.link||document.location.href.split("?")[0],hideType:["4","5","6","7","8","9"],isCareCallBack:"1"}});
if(!x){setTimeout(u.getCoupon,5000)}})})()}else{this.showShare();if(this.env==="miniprogram"){setTimeout(this.getCoupon,5000)}}}else{this.getCoupon()}},getCoupon:function h(){var u=this;var w=this.couponToken["token"].join(",");
if(this.app_info.uid){var v={token:w,uid:this.uid,coupontype:"ufo",app:this.app_info};$.ajax({url:getCouponApi+"?callback=?",type:"get",dataType:"jsonp",data:v,success:function x(y){if(y.code===200){u.showMessage("领券成功")
}else{if(y.code===401){u.showMessage("您已领取过该优惠券")}else{if(y.code===403){u.showMessage("目前券已领完,请稍后再试")}else{u.showMessage(y.message)}}}u.hideShare()}})}},getResource:function a(){var u=this;$(".products-list a").each(function(){if(u.env==="miniprogram"){$(this).on("click",u.jumpToMiniapp)
}else{$(this).attr("href",$(this).data("url"));$(this).attr("target","_blank")}})},getServerTime:function t(){var v=this;$.ajax({url:getServerTimeApi+"?callback=?",type:"get",dataType:"jsonp",data:{},success:function w(z){if(z){var B=new Date(z*1000);
v.serverTimeNumber=B.getTime();var y=B.getFullYear();var A=B.getMonth()+1<10?"0"+(B.getMonth()+1):B.getMonth();var x=B.getDate()<10?"0"+B.getDate():B.getDate();v.serverTime=[y,A,x].join("-")}},error:function u(B){var A=new Date();
var y=A.getFullYear();var z=A.getMonth()+1<10?"0"+(A.getMonth()+1):A.getMonth();var x=A.getDate();v.serverTime=[y,z,x].join("-")}})},showMessage:function j(u){this.tipsMessage=u;this.isShowTips=true},showShare:function d(){this.isShowShare=true
},hideShare:function i(){this.isShowShare=false},closeTips:function l(){this.tipsMessage="";this.isShowTips=false},refresh:function c(){document.location.reload()}}})});
\ No newline at end of file
... ...
... ... @@ -68,9 +68,9 @@ function share_success() {
}
var share_data = {
title: '【有货UFO】年中大促!UFO日670元优惠券限量领!!',
title: '【有货UFO】520元优惠券打包送你,用券下单更划算',
imgUrl: document.location.href.split('?')[0].replace(/\/index\d{0,}\.html/, '') + '/share/logo.jpg?_=' + Math.random(),
desc: '买潮流好鞋就在有货UFO,用券更划算!全实物鉴定+全程鉴定视频让你的好货更有保障!',
desc: '618火热来袭,全实物鉴定助你入手潮流好物!超万件商品券后直降¥200,买热门尖货就在有货UFO!',
link: document.location.href.split('?')[0],
success:share_success
};
... ...

13.7 KB | W: | H:

14.6 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin