zhujiahui1
朱佳辉 9 months ago
commit 8756c265d5

29
.gitignore vendored

@ -0,0 +1,29 @@
### IntelliJ IDEA ###
out/
!**/src/main/**/out/
!**/src/test/**/out/
### Eclipse ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
bin/
!**/src/main/**/bin/
!**/src/test/**/bin/
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
### VS Code ###
.vscode/
### Mac OS ###
.DS_Store

3
.idea/.gitignore vendored

@ -0,0 +1,3 @@
# Default ignored files
/shelf/
/workspace.xml

@ -0,0 +1,403 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DBNavigator.Project.DatabaseFileManager">
<open-files />
</component>
<component name="DBNavigator.Project.Settings">
<connections />
<browser-settings>
<general>
<display-mode value="TABBED" />
<navigation-history-size value="100" />
<show-object-details value="false" />
<enable-sticky-paths value="true" />
</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" />
<object-type name="TYPE ATTRIBUTE" 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="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="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" />
<enable-column-tooltip value="true" />
</general>
<sorting>
<nulls-first value="true" />
<max-sorting-columns value="4" />
</sorting>
<audit-columns>
<column-names value="" />
<visible value="true" />
<editable value="false" />
</audit-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-actions-popup>
<show-popup-button value="true" />
<element-count-threshold value="1000" />
<data-length-threshold value="250" />
</values-actions-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="Properties" 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="Java" enabled="true" />
<content-type name="SQL" enabled="true" />
<content-type name="PL/SQL" enabled="true" />
<content-type name="JSON" enabled="true" />
<content-type name="JSON5" enabled="true" />
<content-type name="Groovy" enabled="true" />
<content-type name="YAML" enabled="true" />
<content-type name="Manifest" 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" />
<enable-spellchecking value="true" />
<enable-reference-spellchecking value="false" />
</general>
<confirmations>
<save-changes value="false" />
<revert-changes value="true" />
<exit-on-changes value="ASK" />
</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>
</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>
</project>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/gitCode2.iml" filepath="$PROJECT_DIR$/gitCode2.iml" />
</modules>
</component>
</project>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

@ -0,0 +1,15 @@
//TIP To <b>Run</b> code, press <shortcut actionId="Run"/> or
// click the <icon src="AllIcons.Actions.Execute"/> icon in the gutter.
public class Main {
public static void main(String[] args) {
//TIP Press <shortcut actionId="ShowIntentionActions"/> with your caret at the highlighted text
// to see how IntelliJ IDEA suggests fixing it.
System.out.printf("Hello and welcome!");
for (int i = 1; i <= 5; i++) {
//TIP Press <shortcut actionId="Debug"/> to start debugging your code. We have set one <icon src="AllIcons.Debugger.Db_set_breakpoint"/> breakpoint
// for you, but you can always add more by pressing <shortcut actionId="ToggleLineBreakpoint"/>.
System.out.println("i = " + i);
}
}
}

@ -0,0 +1,52 @@
# Tomcat
server:
tomcat:
uri-encoding: UTF-8
port: 8080
servlet:
context-path: /springboot1mi5m
spring:
datasource:
driverClassName: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/orderingsystem?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false&serverTimezone=GMT%2b8&allowPublicKeyRetrieval=true
username: root
password: root
# driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver
# url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=springboot1mi5m
# username: sa
# password: 123456
servlet:
multipart:
max-file-size: 10MB
max-request-size: 10MB
resources:
static-locations: classpath:static/,file:static/
#mybatis
mybatis-plus:
mapper-locations: classpath*:mapper/*.xml
#实体扫描多个package用逗号或者分号分隔
typeAliasesPackage: com.entity
global-config:
#主键类型 0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID";
id-type: 1
#字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断"
field-strategy: 2
#驼峰下划线转换
db-column-underline: true
#刷新mapper 调试神器
refresh-mapper: true
#逻辑删除配置
logic-delete-value: -1
logic-not-delete-value: 0
#自定义SQL注入器
sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector
configuration:
map-underscore-to-camel-case: true
cache-enabled: false
call-setters-on-nulls: true
#springboot 项目mybatis plus 设置 jdbcTypeForNull (oracle数据库需配置JdbcType.NULL, 默认是Other)
jdbc-type-for-null: 'null'

File diff suppressed because one or more lines are too long

@ -0,0 +1,22 @@
/**
* css
*/
/* 嵌套文字横线 */
.line-container {
width: 100%;
background: url(../img/line.jpg) left center repeat-x;
text-align: center;
}
.line {
display: inline-block;
padding: 0 10px;
text-align: center;
font-family: 'Microsoft Yahei';
font-size: 24px;
background: #fff;
color: #000000;
line-height: 1.3;
}
/**
* css end
*/

@ -0,0 +1,701 @@
.container {
margin: 0 auto;
width: 980px;
}
label {
margin: 0;
}
/* 导航栏 */
.nav {
text-align: center;
}
.layui-nav * {
font-size: 18px;
}
/* 轮播图 */
.swiper-item {
width: 100%;
}
.layui-carousel-ind li {
width: 80px;
height: 5px;
border-radius: 0;
}
/* 商品推荐标题 */
.recommend-container {
margin-top: 20px;
}
.index-title {
margin: 0 auto;
width: 980px;
text-align: center;
font-size: 42px;
font-family: "Times New Roman", Times, serif;
text-transform: uppercase;
}
.recommend-list {
width: 1000px;
margin: 0 auto;
height: 360px;
padding: 0px 0 0 0;
}
.recommend-item {
float: left;
width: 1000px;
padding: 20px 0 0 0;
}
.recommend-item li {
float: left;
width: 218px;
position: relative;
display: inline;
margin: 0 15px;
}
.recommend-item li a.img {
float: left;
width: 218px;
height: 218px;
position: absolute;
left: 0;
top: 0;
background: url(../img/yuan.png) left top no-repeat;
}
.recommend-item li a.wor {
float: left;
width: 218px;
height: 30px;
line-height: 30px;
text-align: center;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
font-size: 14px;
color: #000;
display: inline;
margin: 10px 0 0 0;
}
/* 首页新闻样式(手风琴) */
.news-home-container {
padding-top: 20px;
margin-bottom: 20px;
padding-bottom: 20px;
}
.news-home-container .layui-collapse {
border: 0;
margin: 0 20px;
}
.news-home-container .layui-colla-item {
margin-top: 14px;
}
.news-home-container .layui-colla-content {
font-size: 16px;
line-height: 40px;
height: 115px;
}
.news-home-container .layui-colla-title {
height: 50px;
line-height: 50px;
font-size: 16px;
font-weight: 500;
}
.news-home-container .card-container {
margin-top: 18px;
}
.news-home-container .layui-card-header {
height: 50px;
line-height: 50px;
}
/* 底部导航 */
.nav-bottom {
text-align: center;
}
/* 底部栏 */
.footer {
margin: 10px;
text-align: center;
}
.footer-item {
color: #515151;
margin-top: 10px;
}
/* 留言 */
.message-container {
width: 980px;
margin: 0 auto;
text-align: center;
}
.message-container .message-form {
margin-top: 20px;
border-bottom: 1px dotted #888888;
}
.message-container .message-list {
text-align: left;
}
.message-container .message-list .message-item {
margin-top: 20px;
border-bottom: 1px solid #EEEEEE;
}
.message-container .message-list .message-item .username-container {
font-size: 18px;
}
.message-container .message-list .message-item .username-container .avator {
width: 60px;
height: 60px;
border-radius: 50%;
}
.message-container .message-list .message-item .content {
margin: 10px;
}
.message-container .message-list .message-item .replay {
background: #EEEEEE;
margin: 10px;
padding: 20px;
border-radius: 20px;
}
/* 论坛 */
.forum-container {
width: 980px;
margin: 0 auto;
text-align: center;
}
.forum-container .forum-list {
text-align: left;
margin-top: 20px;
}
.forum-container .forum-list .forum-item {
display: flex;
justify-content: space-between;
align-items: center;
padding: 20px;
border-bottom: 3px dotted #EEEEEE;
border-top: 3px dotted #EEEEEE;
}
.forum-container .forum-list .forum-item.line {
background: #EEEEEE;
}
.forum-container .forum-list .forum-item .h2 {
font-size: 14px;
}
.forum-container .forum-list .forum-item .create-time {
font-size: 14px;
}
.forum-container {
margin-top: 20px;
}
.forum-container .title {
font-size: 22px;
font-weight: bold;
}
.forum-container .content {
width: 980px;
margin: 0 auto;
text-align: left;
margin-top: 30px;
font-size: 16px;
line-height: 30px;
}
.forum-container .auth-container {
margin-top: 20px;
color: #888888;
border-bottom: 1px dotted #888888;
padding-bottom: 20px;
}
.forum-container .bottom-container {
display: flex;
justify-content: space-between;
width: 980px;
margin: 0 auto;
background: #EEEEEE;
height: 60px;
line-height: 60px;
margin-top: 30px;
}
.forum-container .bottom-container .title {
margin-left: 30px;
font-size: 20px;
color: #515151;
}
.forum-container .bottom-container .btn {
font-size: 20px;
padding: 0 20px;
}
.forum-container .message-list {
text-align: left;
}
.forum-container .message-list .message-item {
margin-top: 20px;
border-bottom: 1px solid #EEEEEE;
}
.forum-container .message-list .message-item .username-container {
font-size: 18px;
}
.forum-container .message-list .message-item .username-container .avator {
width: 60px;
height: 60px;
border-radius: 50%;
}
.forum-container .message-list .message-item .content {
margin: 10px;
}
.forum-container .message-list .message-item .replay {
background: #EEEEEE;
margin: 10px;
padding: 20px;
border-radius: 20px;
}
/* 考试 */
.paper-container {
width: 980px;
margin: 0 auto;
margin-top: 20px;
text-align: center;
}
.paper-container thead {
border-radius: 100px;
}
.paper-container thead tr th {
font-size: 16px;
font-weight: blod;
line-height: 50px;
height: 50px;
text-align: center;
}
.paper-container tbody tr td {
font-size: 16px;
height: 50px;
border-bottom: 5px dotted #EEEEEE;
}
.paper-container tbody tr {
border: 3px dotted #EEEEEE;
}
/* 个人中心 */
.center-container {
width: 980px;
margin: 0 auto;
margin-top: 20px;
text-align: center;
display: flex;
margin-bottom: 20px;
}
.center-container .left-container {
border: 2px dotted #EEEEEE;
background: #FFFFFF;
width: 200px;
padding-top: 20px;
height: 600px;
}
.center-container .right-container {
flex: 1;
border: 2px dotted #EEEEEE;
background: #FFFFFF;
text-align: left;
padding: 20px;
padding-top: 40px;
}
/* 购物车 */
.btn-container {
margin-top: 20px;
text-align: right;
margin-bottom: 60px;
border: 2px dotted #EEEEEE;
padding: 20px;
}
/* 登陆注册 */
.login-container {
background: #FFFFFF;
z-index: 9;
position: relative;
width: 480px;
margin: 0 auto;
border-radius: 20px;
margin-top: 100px;
padding-top: 30px;
}
.login-form {
text-align: center;
padding: 20px;
}
.login-bg {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
opacity: 0.8;
background-size: 100% 100%;
background-repeat: no-repeat;
}
.login-container .bottom-container {
text-align: center;
color: #888888;
padding: 20px;
}
.login-container .bottom-container a {
margin-left: 10px;
border: 2px dotted #888888;
padding: 10px;
}
/* 确认下单页面 */
.address-table {
border: 3px dotted #EEEEEE;
}
/* 图文列表 */
.data-container {
margin: 20px 0;
text-align: center;
display: flex;
flex-direction: column;
}
.data-container .data-list .data-item {
padding: 20px;
text-align: left;
margin-bottom: 10px;
min-height: 330px;
}
.data-container .data-list .data-item:hover {
padding: 10px;
}
.data-container .data-list .data-item .cover {
width: 100%;
height: 200px;
object-fit: cover;
border: 1px solid #EEEEEE;
}
.data-container .data-list .data-item .title {
text-align: center;
padding: 10px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.data-container .data-list .data-item .price {
font-size: 20px;
text-align: right;
}
.data-container .data-list .data-item .data {
font-size: 16px;
border: 1px solid #EEEEEE;
display: flex;
justify-content: space-between;
align-items: center;
flex-wrap: wrap;
}
.data-container .data-list .data-item .data .item {
width: 40%;
text-align: center;
margin: 10px;
}
.search-container {
border: 0;
font-size: 16px;
width: 980px;
margin: 0 auto;
text-align: left;
margin-top: 10px;
margin-bottom: 10px;
}
/* 数据详情页 */
.data-detail {
width: 980px;
margin: 0 auto;
margin-top: 20px;
text-align: left;
margin-bottom: 20px;
}
.data-detail-breadcrumb {
margin: 10px 0;
padding: 20px;
display: flex;
justify-content: space-between;
align-items: center;
}
.data-detail .title {
font-size: 20px;
font-weight: bold;
border: 3px dotted #EEEEEE;
padding: 10px;
}
.data-detail .count-container {
background: url(../img/seckilling.jpg);
margin-top: 20px;
padding: 15px;
display: flex;
justify-content: space-between;
align-items: center;
}
.data-detail .count-container .text {
font-size: 18px;
font-weight: blod;
}
.data-detail .count-container .number {
padding: 10px;
font-size: 16px;
font-weight: blod;
}
.data-detail .tool-container {
display: flex;
justify-content: space-between;
align-items: center;
margin-top: 20px;
font-size: 16px;
font-weight: bolder;
padding: 10px;
}
.data-detail .price {
color: red;
font-size: 16px;
font-weight: bolder;
font-size: 20px;
font-weight: bolder;
}
.data-detail .detail-item {
background: #EEEEEE;
padding: 10px;
display: flex;
align-items: center;
}
.data-detail .desc {
font-size: 16px;
color: #515151;
}
.video-container {
width: 100%;
margin-top: 20px;
}
.num-picker {
display: flex;
align-items: center;
margin-right: 20px;
}
.num-picker button {
border: 0;
font-size: 20px;
}
.num-picker input {
width: 50px;
text-align: center;
height: 40px;
}
.data-add-container{
width: 800px;
margin: 0 auto;
margin-top: 20px;
text-align: left;
margin-bottom: 20px;
background: #FFFFFF;
padding: 20px;
padding-top: 30px;
}
/* 详情页选座 */
.seat-list {
display: flex;
align-items: center;
flex-wrap: wrap;
background: #FFFFFF;
margin: 20px;
border-radius: 20px;
padding: 20px;
font-size: 16px;
}
.seat-item {
width: 10%;
display: flex;
align-items: center;
flex-direction: column;
margin-bottom: 20px;
}
.seat-icon {
width: 30px;
height: 30px;
margin-bottom: 10px;
}
/* banner */
.banner {
width: 100%;
height: 50px;
margin-top: 30px;
}
/* 新闻列表 */
.news-container {
text-align: center;
margin: 0 auto;
margin: 40px 0;
}
.news-container .pager {
margin: 20px 0;
}
.news-container .news-list {
width: 980px;
margin: 0 auto;
text-align: left;
}
.news-container .news-list .news-item {
display: flex;
border-bottom: 1px solid #EEEEEE;
padding: 10px;
}
.news-container .news-list .news-item .cover-container {
margin: 0 20px;
}
.news-container .news-list .news-item .cover-container .cover {
width: 200px;
height: 200px;
object-fit: cover;
}
.news-container .news-list .news-item .detail-container .h2 {
font-size: 18px;
font-weight: bold;
}
.news-container .news-list .news-item .detail-container .desc {
height: 140px;
padding-top: 20px;
}
.news-container .title {
font-size: 22px;
font-weight: bold;
}
.news-container .content {
width: 980px;
margin: 0 auto;
text-align: left;
margin-top: 30px;
font-size: 16px;
line-height: 30px;
}
.news-container .auth-container {
margin-top: 20px;
color: #888888;
border-bottom: 1px dotted #888888;
padding-bottom: 20px;
}
.news-container .bottom-container {
display: flex;
justify-content: space-between;
width: 980px;
margin: 0 auto;
background: #EEEEEE;
height: 60px;
line-height: 60px;
margin-top: 30px;
}
.news-container .bottom-container .title {
margin-left: 30px;
font-size: 20px;
color: #515151;
}
.news-container .bottom-container .btn {
font-size: 20px;
padding: 0 20px;
}

@ -0,0 +1,265 @@
/* 导航栏 */
.nav {
background: #f7f7f7;
}
.layui-nav .layui-nav-item a {
color: #515151;
}
.layui-nav .layui-this:after,
.layui-nav-bar,
.layui-nav-tree .layui-nav-itemed:after {
background-color: #ce0b07;
}
.layui-nav .layui-nav-item a:hover {
color: #FFFFFF;
background-color: #ce0b07;
}
.layui-nav .layui-nav-child dd.layui-this a,
.layui-nav-child dd.layui-this {
background-color: #ce0b07;
}
.layui-nav-tree .layui-nav-child dd.layui-this, .layui-nav-tree .layui-nav-child dd.layui-this a, .layui-nav-tree .layui-this, .layui-nav-tree .layui-this>a, .layui-nav-tree .layui-this>a:hover {
background-color: #ce0b07;
color: #fff;
}
/* 轮播图 */
.layui-carousel[lay-indicator=outside] .layui-carousel-ind ul {
background-color: #FFFFFF;
}
.layui-carousel-ind li.layui-this {
background-color: #ce0b07;
}
.layui-carousel-ind li {
background-color: #888888;
}
/* 首页标题 */
.index-title {
color: #ce0b07;
}
/* 首页新闻 */
.news-home-container {
background: #e5e5e5;
}
.news-home-container .layui-colla-item {
border: 1px solid #EEEEEE;
}
.news-home-container .layui-colla-content {
background: #FFFFFF;
}
.news-home-container .layui-colla-title {
background: #d1d1d1;
border: 1px solid #EEEEEE;
color: #515151;
}
.news-home-container .layui-colla-title:hover {
background: #ce0b07;
color: #FFFFFF;
}
.news-home-container .layui-card-header {
background: #d1d1d1;
border: 1px solid #FFFFFF;
color: #515151;
}
/* 图文列表 */
.data-container .data-list .data-item:hover {
border: 1px solid #ce0b07;
}
.data-container .data-list .data-item .title:hover {
background: #ce0b07;
}
.data-container .data-list .data-item .title {
background: #515151;
color: #FFFFFF;
}
.data-container .data-list .data-item .price {
color: #ce0b07;
}
/* 详情页 */
.data-detail {
background: #FFFFFF;
}
.data-detail-breadcrumb {
background: #EEEEEE;
color: #515151;
}
.data-detail .title {
color: #515151;
border: 3px dotted #EEEEEE;
}
.data-detail .count-container {
color: #FFFFFF;
}
.data-detail .count-container .number {
background: #443b3b;
}
.data-detail .tool-container{
border: 3px dotted #EEEEEE;
}
.data-detail .price{
color: #ce0b07;
}
.layui-tab-card>.layui-tab-title .layui-this {
background-color: #ce0b07;
color: #FFFFFF;
}
/* 底部导航栏 */
.nav-bottom {
background: #ce0b07;
}
.nav-bottom .layui-nav-item a {
color: #FFFFFF;
}
/* banner */
.banner {
background: #ce0b07;
}
/* 新闻资讯 */
.news-container .news-list .news-item .detail-container .h2 {
color: #4e6990;
}
.news-container .news-list .news-item .detail-container .desc {
color: #515151;
}
.news-container .news-list .news-item .detail-container .create-time {
color: #515151;
}
.news-container .title {
color: #ce0b07;
}
.news-container .bottom-container .btn {
background: #ce0b07;
color: #FFFFFF;
}
/* 论坛 */
.forum-container .bottom-container .btn {
background: #ce0b07;
color: #FFFFFF;
}
.forum-container .forum-list .forum-item:hover {
background: #ce0b07;
color: #FFFFFF;
}
.forum-container .forum-list .forum-item.line:hover {
background: #ce0b07;
color: #FFFFFF;
}
/* 考试 */
.paper-container thead tr{
background: #ce0b07 ;
color: #FFFFFF;
}
.paper-container tbody tr:hover{
color: #FFFFFF;
background-color: #ce0b07;
}
/* 个人中心 */
.center-container .layui-nav .layui-nav-more {
border-color: #515151 transparent transparent;
}
.center-container .layui-nav-itemed>a, .layui-nav-tree .layui-nav-title a, .layui-nav-tree .layui-nav-title a:hover {
color: #515151 !important;
}
.center-container .layui-nav .layui-nav-mored, .layui-nav-itemed>a .layui-nav-more {
border-color: transparent transparent #515151;
}
.center-container .layui-nav {
background-color: #FFFFFF;
color: #515151;
}
.center-container .layui-nav-itemed>.layui-nav-child {
background-color: #FFFFFF !important;
}
.center-container .layui-nav-tree .layui-nav-bar {
width: 5px;
height: 0;
background-color: #ce0b07;
}
/* 分页插件 */
.layui-laypage .layui-laypage-curr .layui-laypage-em {
background-color: #ce0b07;
}
.layui-laypage a:hover {
color: #ce0b07;
}
.btn-submit {
background: #ce0b07;
}
.btn-theme{
background: #ce0b07;
}
/* checkbox */
.layui-form-radio>i:hover, .layui-form-radioed>i {
color: #ce0b07;
}
.layui-form-select dl dd.layui-this {
background-color: #ce0b07;
color: #fff;
}
.layui-tab-brief>.layui-tab-title .layui-this {
color: #ce0b07;
}
.layui-tab-brief>.layui-tab-more li.layui-this:after, .layui-tab-brief>.layui-tab-title .layui-this:after {
border-bottom: 2px solid #ce0b07;
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

@ -0,0 +1,303 @@
<!-- 首页 -->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<title>首页</title>
<link rel="stylesheet" href="./layui/css/layui.css">
<link rel="stylesheet" href="./xznstatic/css/common.css"/>
<link rel="stylesheet" href="./xznstatic/css/style.css"/>
</head>
<style type="text/css">
html, body {
height: 100%;
}
#iframe {
width: 100%;
margin-top: 00px;
padding-top: 70px;
}
#header {
height: auto;
background: #fff;
border-bottom: 0;
position: fixed;
top: 0;
left: 0;
width: 100%;
}
#header .nav-top {
display: flex;
align-items: center;
padding: 0 20px;
font-size: 16px;
color: #2a8a15;
box-sizing: border-box;
height: 00px;
background-color: rgba(46, 78, 126, 1);
box-shadow: 0 10px 8px #fff143;
justify-content: space-between;
position: relative;
}
#header .nav-top-img {
width: 124px;
height: 40px;
padding: 0;
margin: 0;
border-radius: 6px;
border-width: 0;
border-style: solid;
border-color: rgba(0,0,0,.3);
box-shadow: 0 0 6px rgba(0,0,0,.3);
}
#header .nav-top-title {
line-height: 40px;
font-size: 30px;
color: rgba(255, 251, 240, 1);
padding: 0 10px;
margin: 0 10px;
border-radius: 6px;
border-width: 0;
border-style: solid;
border-color: rgba(0,0,0,.3);
box-shadow: 0 0 0px ;
}
#header .nav-top-tel {
line-height: 40px;
font-size: 18px;
color: rgba(240, 252, 255, 1);
padding: 0 10px;
margin: 0;
border-radius: 6px;
border-width: 0;
border-style: solid;
border-color: rgba(0,0,0,.3);
box-shadow: 0 0 0px ;
}
#header .navs {
display: flex;
padding: 0 20px;
align-items: center;
box-sizing: border-box;
height: 70px;
background-color: rgba(0, 85, 119, 1);
box-shadow: 0 0px 0px rgba(0,0,0,0);
justify-content: flex-start;
}
#header .navs .title {
width: auto;
line-height: 40px;
font-size: 30px;
color: rgba(255, 255, 255, 1);
padding: 10px 10px 10px;
margin: 50px;
border-radius: 6px;
border-width: 0;
border-style: solid;
border-color: rgba(0,0,0,.3);
box-shadow: 0 0 6px rgba(0,0,0,0);
}
#header .navs li {
display: inline-block;
width: auto;
line-height: 66px;
padding: 0 10px ;
margin: 10px ;
color: rgba(255, 255, 255, 1);
font-size: 22px;
border-radius: 4px;
border-width: 0;
border-style: solid;
border-color: rgba(6, 82, 121, 1);
background-color: rgba(0, 85, 119, 1);
box-shadow: 1px 0 3px rgba(0, 85, 119, 1);
text-align: center;
}
#header .navs li a{
color: inherit;
}
#header .navs li.current a{
color: inherit;
}
#header .navs li a:hover{
color: inherit;
}
#header .navs li.current {
color: rgba(255, 255, 255, 1);
font-size: 22px;
border-radius: 0px;
border-width: 0px;
border-style: solid;
border-color: rgba(255, 255, 255, 1);
background-color: rgba(0, 85, 119, 1);
box-shadow: 0px 3px 0px #ffffff;
}
#header .navs li:hover {
color: #fff;
font-size: 22px;
border-radius: 0px;
border-width: 0;
border-style: solid;
border-color: rgba(255, 255, 255, 1);
background-color: rgba(0, 85, 119, 1);
box-shadow: 0px 3px 0px #ffffff;
}
</style>
<body>
<!-- start 顶部导航栏 -->
<div id="header">
<div v-if='true' class="nav-top">
<img v-if='false' class="nav-top-img" src='https://www.baidu.com/img/flexible/logo/pc/result@2.png'>
<div v-if="false" class="nav-top-title">{{projectName}}</div>
<div class="nav-top-tel"></div>
</div>
<div class="navs">
<!-- <div class="logo" style="font-size: 20px;top: 32px;color: #fff;font-weight: bold;margin-left: -200px;width: 240px;" v-text="projectName"></div> -->
<div class="title" v-if="true" v-text="projectName"></div>
<div class="list">
<ul>
<li class='current'><a href="javascript:navPage('./pages/home/home.html')" class="menumain"><i v-if="false" class="layui-icon layui-icon-home"></i>首页</a></li>
<li v-for="(item,index) in indexNav" v-bind:key="index"><a :href="'javascript:navPage(\''+item.url+'\')'" class="menumain" style="cursor: pointer;"><i v-if="false" class="layui-icon" :class="iconArr[index]"></i>{{item.name}}</a></li>
<li><a href="javascript:centerPage();" class="menumain"><i v-if="false" class="layui-icon layui-icon-username"></i>个人中心</a></li>
<li><a :href="adminurl" target="_blank" class="menumain" style="cursor: pointer;"><i v-if="false" class="layui-icon layui-icon-link"></i>后台管理</a></li>
<li v-if="cartFlag"><a href="javascript:navPage('./pages/shop-cart/list.html')" class="menumain"><i v-if="false" class="layui-icon">&#xe657;</i>购物车</a></li>
<li v-if="chatFlag"><a href="javascript:chatTap()" class="menumain"><i v-if="false" class="layui-icon">&#xe677;</i>客服</a></li>
</ul>
</div>
</div>
</div>
<!-- end 顶部导航栏 -->
<iframe src="./pages/home/home.html" id="iframe" frameborder="0" scrolling="no" width="100%" onload="changeFrameHeight"></iframe>
<div id="tabbar" v-if="true" class="tabbar" :style='{"padding":"30px 0","boxShadow":"0 0 6px ","margin":"30px 0 0 0","borderColor":"rgba(255, 255, 255, 0.3)","backgroundColor":"rgba(6, 82, 121, 1)","borderRadius":"0","borderWidth":"0","borderStyle":"solid"}' style="position: relative;z-index: 999;">
<img v-if='false' :style='{"boxShadow":"0 0 6px rgba(255,0,0,.8)","margin":"0 auto","borderColor":"rgba(0,0,0,.3)","borderRadius":"100%","borderWidth":"1px","width":"44px","borderStyle":"solid","height":"44px"}' style='display: block;' src='http://codegen.caihongy.cn/20201024/ed5e326ca66f403aa3197b5fbb4ec733.jpg' />
<div :style='{"padding":"0 10px","boxShadow":"0 0 0px 0","margin":"10px auto","borderColor":"rgba(6, 82, 121, 1)","backgroundColor":"rgba(6, 82, 121, 1)","color":"#fff","textAlign":"center","borderRadius":"0","borderWidth":"0","width":"100%","lineHeight":"32px","fontSize":"14px","borderStyle":"solid"}' class="company">京ICP备1041289号 </div>
<div :style='{"padding":"0 10px","boxShadow":"0 0 6px rgba(255,0,0,0)","margin":"10px auto","borderColor":"rgba(0,0,0,1)","backgroundColor":"#000","color":"#fff","textAlign":"center","borderRadius":"0","borderWidth":"0","width":"100%","lineHeight":"32px","fontSize":"14px","borderStyle":"solid"}' class="record"></div>
<div :style='{"padding":"0 10px","boxShadow":"0 0 0px ","margin":"10px auto 30px auto","borderColor":"rgba(6, 82, 121, 1)","backgroundColor":"rgba(6, 82, 121, 1)","color":"#fff","textAlign":"center","borderRadius":"0","borderWidth":"1px 0","width":"40%","lineHeight":"32px","fontSize":"14px","borderStyle":"solid"}' class="desc"></div>
</div>
<script src="./xznstatic/js/jquery-1.11.3.min.js"></script>
<script src="./layui/layui.js"></script>
<script src="./js/vue.js"></script>
<script src="./js/config.js"></script>
<script>
var vue1 = new Vue({el: '#tabbar'})
var vue = new Vue({
el: '#header',
data: {
iconArr: ['layui-icon-gift','layui-icon-email','layui-icon-logout','layui-icon-transfer','layui-icon-slider','layui-icon-print','layui-icon-cols','layui-icon-snowflake','layui-icon-note','layui-icon-flag','layui-icon-theme','layui-icon-website','layui-icon-console','layui-icon-face-surprised','layui-icon-template-1','layui-icon-app','layui-icon-read','layui-icon-component','layui-icon-file-b','layui-icon-unlink','layui-icon-tabs','layui-icon-form','layui-icon-chat'],
indexNav: indexNav,
cartFlag: cartFlag,
adminurl: adminurl,
chatFlag: chatFlag,
projectName: projectName,
},
mounted: function() {
this.bindClickOnLi();
},
created() {
this.iconArr.sort(()=>{
return (0.5-Math.random())
})
},
methods: {
jump(url) {
jump(url)
},
bindClickOnLi() {
let list = document.getElementsByTagName("li");
for(var i = 0;i<list.length;i++){
list[i].onclick = function(){
$(this).addClass("current").siblings().removeClass("current");
}
}
}
}
});
layui.use(['element','layer'], function() {
var element = layui.element;
var layer = layui.layer;
});
function chatTap(){
var userTable = localStorage.getItem('userTable');
if (userTable) {
layui.layer.open({
type: 2,
title: '客服',
area: ['600px', '600px'],
content: './pages/chat/chat.html'
});
} else {
window.location.href = './pages/login/login.html'
}
}
// 导航栏跳转
function navPage(url) {
localStorage.setItem('iframeUrl', url);
document.getElementById('iframe').src = url;
}
// 跳转到个人中心也
function centerPage() {
var userTable = localStorage.getItem('userTable');
if (userTable) {
localStorage.setItem('iframeUrl', './pages/' + userTable + '/center.html');
document.getElementById('iframe').src = './pages/' + userTable + '/center.html';
} else {
window.location.href = './pages/login/login.html'
}
}
var iframeUrl = localStorage.getItem('iframeUrl');
document.getElementById('iframe').src = iframeUrl || './pages/home/home.html';
// var i = 0;
setInterval(function(){
// i++;
// if(i<50) changeFrameHeight();
changeFrameHeight();
},200)
function changeFrameHeight() {
var iframe = document.getElementById('iframe');
// iframe.height = 'auto';
if (iframe) {
var iframeWin = iframe.contentWindow || iframe.contentDocument.parentWindow;
if (iframeWin.document.body) {
iframe.height = iframeWin.document.body.scrollHeight;
}
}
};
// 窗口变化时候iframe自适应
// function changeFrameHeight() {
// var header = document.getElementById('header').scrollHeight;
// let isshow = true
// var tabbar = 0
// if(isshow) {
// tabbar = document.getElementById('tabbar').scrollHeight
// }
// var ifm = document.getElementById("iframe");
// ifm.height = document.documentElement.clientHeight - header - tabbar;
// ifm.width = document.documentElement.clientWidth;
// }
// reasize 事件 窗口大小变化后执行的方法
window.onresize = function() {
changeFrameHeight();
}
</script>
</body>
</html>

@ -0,0 +1,121 @@
<!-- 首页 -->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<title>首页</title>
<link rel="stylesheet" href="./layui/css/layui.css">
<link rel="stylesheet" href="./xznstatic/css/common.css"/>
<link rel="stylesheet" href="./xznstatic/css/style.css"/>
</head>
<body scrolling="no" style="overflow-y: hidden;overflow-x: hidden;">
<!-- start 顶部导航栏 -->
<div id="header">
<div class="top">
<div class="logo" style="font-size: 20px;top: 32px;color: #fff;font-weight: bold;margin-left: -200px;width: 240px;" v-text="projectName"></div>
<div class="nav">
<ul>
<li class='current'><a href="javascript:navPage('./pages/home/home.html')" class="menumain">首页</a></li>
<li v-for="(item,index) in indexNav" v-bind:key="index"><a :href="'javascript:navPage(\''+item.url+'\')'" class="menumain" style="cursor: pointer;">{{item.name}}</a></li>
<li><a href="javascript:centerPage();" class="menumain">我的</a></li>
<li><a :href="'javascript:window.location.href=\''+adminurl+'\''" target="_blank" class="menumain" style="cursor: pointer;">跳转到后台</a></li>
<li v-if="cartFlag"><a href="javascript:navPage('./pages/cart/list.html')" class="menumain"><i class="layui-icon" style="font-size: 24px;">&#xe657;</i>购物车</a></li>
<li v-if="chatFlag"><a href="javascript:chatTap()" class="menumain"><i class="layui-icon" style="font-size: 24px;">&#xe677;</i>客服</a></li>
</ul>
</div>
</div>
</div>
<!-- end 顶部导航栏 -->
<iframe src="./pages/home/home.html" id="iframe" frameborder="0" scrolling="auto" onload="changeFrameHeight()"></iframe>
<script src="./xznstatic/js/jquery-1.11.3.min.js"></script>
<script src="./layui/layui.js"></script>
<script src="./js/vue.js"></script>
<script src="./js/config.js"></script>
<script>
var vue = new Vue({
el: '#header',
data: {
indexNav: indexNav,
cartFlag: cartFlag,
adminurl: adminurl,
chatFlag: chatFlag,
projectName: projectName
},
mounted: function() {
this.bindClickOnLi();
},
methods: {
jump(url) {
jump(url)
},
bindClickOnLi() {
let list = document.getElementsByTagName("li");
for(var i = 0;i<list.length;i++){
list[i].onclick = function(){
$(this).addClass("current").siblings().removeClass("current");
}
}
}
}
});
layui.use(['element','layer'], function() {
var element = layui.element;
var layer = layui.layer;
});
function chatTap(){
var userTable = localStorage.getItem('userTable');
if (userTable) {
layui.layer.open({
type: 2,
title: '客服聊天',
area: ['600px', '600px'],
content: './pages/chat/chat.html'
});
} else {
window.location.href = './pages/login/login.html'
}
}
// 导航栏跳转
function navPage(url) {
localStorage.setItem('iframeUrl', url);
document.getElementById('iframe').src = url;
}
// 跳转到个人中心也
function centerPage() {
var userTable = localStorage.getItem('userTable');
if (userTable) {
localStorage.setItem('iframeUrl', './pages/' + userTable + '/center.html');
document.getElementById('iframe').src = './pages/' + userTable + '/center.html';
} else {
window.location.href = './pages/login/login.html'
}
}
var iframeUrl = localStorage.getItem('iframeUrl');
document.getElementById('iframe').src = iframeUrl;
changeFrameHeight();
// 窗口变化时候iframe自适应
function changeFrameHeight() {
var header = document.getElementById('header').scrollHeight;
var ifm = document.getElementById("iframe");
ifm.height = document.documentElement.clientHeight - header;
ifm.width = document.documentElement.clientWidth;
}
// reasize 事件 窗口大小变化后执行的方法
window.onresize = function() {
changeFrameHeight();
}
</script>
</body>
</html>

@ -0,0 +1,6 @@
const menu = {
list() {
return [{"backMenu":[{"child":[{"buttons":["新增","查看","修改","删除"],"menu":"菜品分类","menuJump":"列表","tableName":"caipinfenlei"}],"menu":"菜品分类管理"},{"child":[{"buttons":["新增","查看","修改","删除","查看评论"],"menu":"菜品信息","menuJump":"列表","tableName":"caipinxinxi"}],"menu":"菜品信息管理"},{"child":[{"buttons":["新增","查看","修改","删除"],"menu":"餐桌","menuJump":"列表","tableName":"canzhuo"}],"menu":"餐桌管理"},{"child":[{"buttons":["查看","修改","删除","审核"],"menu":"菜品订单","menuJump":"列表","tableName":"caipindingdan"}],"menu":"菜品订单管理"},{"child":[{"buttons":["查看","修改","删除","审核","报表"],"menu":"菜品评价","menuJump":"列表","tableName":"caipinpingjia"}],"menu":"菜品评价管理"}],"frontMenu":[{"child":[{"buttons":["查看","下单"],"menu":"菜品信息列表","menuJump":"列表","tableName":"caipinxinxi"}],"menu":"菜品信息模块"}],"hasBackLogin":"是","hasBackRegister":"否","hasFrontLogin":"否","hasFrontRegister":"否","roleName":"商家","tableName":"shangjia"},{"backMenu":[{"child":[{"buttons":["新增","查看","修改","删除"],"menu":"用户","menuJump":"列表","tableName":"yonghu"},{"buttons":["新增","查看","修改","删除"],"menu":"商家","menuJump":"列表","tableName":"shangjia"}],"menu":"用户管理"},{"child":[{"buttons":["新增","查看","修改","删除"],"menu":"菜品分类","menuJump":"列表","tableName":"caipinfenlei"}],"menu":"菜品分类管理"},{"child":[{"buttons":["新增","查看","修改","删除","查看评论"],"menu":"菜品信息","menuJump":"列表","tableName":"caipinxinxi"}],"menu":"菜品信息管理"},{"child":[{"buttons":["新增","查看","修改","删除"],"menu":"餐桌","menuJump":"列表","tableName":"canzhuo"}],"menu":"餐桌管理"},{"child":[{"buttons":["查看","修改","删除","审核"],"menu":"菜品订单","menuJump":"列表","tableName":"caipindingdan"}],"menu":"菜品订单管理"},{"child":[{"buttons":["查看","修改","删除","审核","报表"],"menu":"菜品评价","menuJump":"列表","tableName":"caipinpingjia"}],"menu":"菜品评价管理"},{"child":[{"buttons":["新增","查看","修改","删除"],"menu":"菜品资讯","tableName":"news"},{"buttons":["新增","查看","修改","删除"],"menu":"轮播图管理","tableName":"config"}],"menu":"系统管理"}],"frontMenu":[{"child":[{"buttons":["查看","下单"],"menu":"菜品信息列表","menuJump":"列表","tableName":"caipinxinxi"}],"menu":"菜品信息模块"}],"hasBackLogin":"是","hasBackRegister":"否","hasFrontLogin":"否","hasFrontRegister":"否","roleName":"管理员","tableName":"users"},{"backMenu":[{"child":[{"buttons":["查看","删除","支付","评价"],"menu":"菜品订单","menuJump":"列表","tableName":"caipindingdan"}],"menu":"菜品订单管理"},{"child":[{"buttons":["查看","修改","删除"],"menu":"菜品评价","menuJump":"列表","tableName":"caipinpingjia"}],"menu":"菜品评价管理"},{"child":[{"buttons":["查看","删除"],"menu":"我的收藏管理","tableName":"storeup"}],"menu":"我的收藏管理"}],"frontMenu":[{"child":[{"buttons":["查看","下单"],"menu":"菜品信息列表","menuJump":"列表","tableName":"caipinxinxi"}],"menu":"菜品信息模块"}],"hasBackLogin":"是","hasBackRegister":"否","hasFrontLogin":"是","hasFrontRegister":"是","roleName":"用户","tableName":"yonghu"}]
}
}
export default menu;

@ -0,0 +1,707 @@
/**
* BootstrapAMapPositionPicker v0.8.3
* @author: Kinegratii
*/
(function (factory) {
'use strict';
if (typeof define === 'function' && define.amd) {
define(['jquery', 'AMap'], factory);
} else if (typeof exports === 'object') {
module.exports = factory(require('jquery'), require('AMap'));
} else {
if (typeof jQuery === 'undefined') {
throw 'AMapPositionPicker requires jQuery to be loaded first';
}
if (typeof AMap == 'undefined') {
throw 'AMapPositionPicker requires AMap to be loaded first';
}
factory(jQuery, AMap);
}
}(function ($, AMap) {
// Global tool functions
String.prototype.format = function (data) {
var result = this;
for (var key in data) {
if (data[key] != undefined) {
var reg = new RegExp("({" + key + "})", "g");
result = result.replace(reg, data[key]);
}
}
return result;
};
if (typeof String.prototype.startsWith != 'function') {
String.prototype.startsWith = function (prefix) {
return this.slice(0, prefix.length) === prefix;
};
}
function wrapFormat(formatter, data) {
if (typeof formatter == 'function') {
return formatter(data);
} else if (typeof formatter == 'string') {
return formatter.format(data);
} else {
return '';
}
}
// Data Structure Start
var Position = (function () {
function Position(longitude, latitude, address, label) {
this.longitude = longitude;
this.latitude = latitude;
this.address = address || '';
this.label = label || '';
}
Position.prototype.isValid = function () {
return this.longitude != undefined && this.longitude != null && this.latitude != undefined && this.latitude != null;
};
Position.prototype.copy = function (data) {
if (data == undefined) {
return new Position(this.longitude, this.latitude, this.address, this.label);
} else {
return new Position(
data.longitude || this.longitude,
data.latitude || this.latitude,
data.address || this.address,
data.label || this.label
);
}
};
Position.prototype.getDisplayString = function () {
if (this.label) {
return this.label;
} else {
return this.address;
}
};
Position.fromOptions = function (options) {
if (options instanceof Position) {
return options;
} else {
return new Position(options.longitude, options.latitude, options.address, options.label);
}
};
Position.empty = function () {
return new Position(null, null, "", "");
};
Position.validate = function (position) {
if (position) {
return position.isValid();
} else {
return false;
}
};
Position.validateLngLat = function (lnglatStr) {
var result = /^([+-]?(0?\d{1,2}(\.\d{1,6})?|1[0-7]?\d{1}(\.\d{1,6})?|180\.0{1,6}))[-;,]([-+]?([0-8]?\d{1}(\.\d{1,6})?|90(\.0{1,6})?))$/.exec(lnglatStr);
if (result) {
return {longitude: parseFloat(result[1]), latitude: parseFloat(result[5])};
} else {
return null;
}
};
Position.LNGLAT_FORMATTER = ['{longitude}-{latitude}', '{longitude};{latitude}', '{longitude},{latitude}'];
return Position;
}());
var Field = (function () {
var idIndex = -1;
function generateSelectorId(selector) {
if (selector.startsWith('#')) {
return selector.substring(1);
} else {
idIndex += 1;
return 'id_ampp_i' + idIndex;
}
}
function Field(options) {
this.name = options.name;
if (options.selector instanceof jQuery) {
this.$widget = options.selector;
this.created = true;
}
else if ($(options.selector).length > 0) {
this.$widget = $(options.selector);
this.created = true;
} else {
var inputHtml = '<input type="hidden" id="{id}" name="{name}"/>'.format({
id: generateSelectorId(options.selector),
name: options.name
});
this.$widget = $(inputHtml);
this.created = false;
}
this.formatter = function (position) {
return wrapFormat(options.formatter, position);
};
}
Field.prototype.render = function (position, hasPicked) {
var v;
if (hasPicked) {
v = this.formatter(position);
} else {
v = '';
}
console.log(v);
if (this.$widget.is('input') || this.$widget.is('textarea')) {
this.$widget.val(v);
} else if (this.$widget.is('div') || this.$widget.is('td') || this.$widget.is('p')) {
this.$widget.html(v);
}
};
return Field;
}());
var FieldManager = (function () {
var fields = [];
function FieldManager() {
fields = [];
}
FieldManager.prototype.addField = function (field) {
fields.push(field);
};
FieldManager.prototype.render = function (position, hasPicked) {
for (var i = 0.; i < fields.length; i++) {
fields[i].render(position, hasPicked);
}
};
return FieldManager;
}());
// Data Structure End
function buildBootstrapModalHTML() {
var toolsHtml = '<div class="btn-group">'
+ '<button id="idAMapPositionPickerLocation" type="button" class="btn btn-default btn-sm"><span class="glyphicon glyphicon-map-marker"></span>&nbsp;定位</button>'
+ '<button id="idAMapPositionPickerReset" type="button" class="btn btn-default btn-sm"><span class="glyphicon glyphicon-repeat"></span>&nbsp;重置</button>'
+ '<button id="idAMapPositionPickerClear" type="button" class="btn btn-default btn-sm"><span class="glyphicon glyphicon-remove"></span>&nbsp;清除</button>'
+ '<button id="idAMapPositionPickerSearch" type="button" class="btn btn-default btn-sm" data-toggle="collapse" data-target="#idAMapPositionPickerSearchPanel"><span class="glyphicon glyphicon-search"></span>&nbsp;搜索</button>'
+ '</div>';
var searchPanelHtml = '<div id="idAMapPositionPickerSearchPanel" class="collapse"><input class="form-control input-sm" id="idAMapPositionPickerSearchInput"/><ul id="idAMapPositionPickerSearchResult" class="list-group"></ul></div>';
var mapPanelHtml = '<div id="idAMapPositionPickerFloatContainer" style="position: absolute;z-index: 2;top:5px;right: 5px;">' + toolsHtml + searchPanelHtml + '</div>';
var modalHtml = '<div class="modal fade" id="idAMapPositionPickerModal">'
+ '<div class="modal-dialog">'
+ '<div class="modal-content">'
+ '<div class="modal-header"><button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button><h4 class="modal-title">请选择地址</h4><small id="idAMapPositionPickerAlert" style="color: red">必须选择一个位置</small></div>'
+ '<div class="modal-body">'
+ '<div id="idAMapPositionPickerMap" style="height: 500px;" class="form-control">'
+ mapPanelHtml
+ '</div>' //End of Map container
+ '<input class="form-control input-sm" style="margin-top:5px;" id="idAMapPositionPickerAddress"/>'
+ '</div>' //End of modal-Body
+ '<div class="modal-footer">'
+ '<button id="idAMapPositionPickerSelect" type="button" class="btn btn-primary btn-sm">确定</button><button id="idAMapPositionPickerCancelBtn" type="button" class="btn btn-default btn-sm" data-dismiss="modal">取消</button>'
+ '</div>' //End of Modal-footer
+ '</div>' //End of Modal-content
+ '</div>' // End of Modal-dialog
+ '</div>';//End of Modal
return modalHtml;
}
var PICKER_CONTROLLER = (function () {
// Common Modal Controller for all elements
// Context pick
var mPicker = null;
var mapObj = null;
var isShowOrPickMode = false;
var $modal = null, $map, $addressInput, $alert, $pickBtn, $locationBtn, $resetBtn, $clearBtn, $cancelBtn;
// Current picked
var selectedMarker = null;
var cachePosition = Position.empty();
// Search plugin
var $searchBtn, $searchPanel, $searchInput, $searchResultList;
var markerList = [];
var geolocation;
var mapClickClickHandler = function (e) {
$alert.hide();
selectMarker(createMarkerFromLnglat(e.lnglat.lng, e.lnglat.lat));
};
function activate(picker) {
mPicker = picker;
showModal();
}
function deactivate() {
mPicker = null;
}
function showModal() {
initializeController();
initializePicker();
var p = mPicker.position();
if (p && p.isValid()) {
selectMarker(createMarkerFromPosition(p));
} else {
if (selectedMarker) {
selectedMarker.setMap(null);
}
$addressInput.val('');
if (mPicker.opts.center.longitude && mPicker.opts.center.latitude) {
mapObj.setCenter(new AMap.LngLat(mPicker.opts.center.longitude, mPicker.opts.center.latitude));
}
}
$modal.modal('show');
}
function initializeController() {
// Initialize global options
if ($modal == null) {
$modal = $(buildBootstrapModalHTML());
$(document.body).append($modal);
mapObj = new AMap.Map("idAMapPositionPickerMap", {
zoom: 15
});
AMap.plugin(['AMap.ToolBar', 'AMap.Scale', 'AMap.OverView'],
function () {
mapObj.addControl(new AMap.ToolBar());
mapObj.addControl(new AMap.Scale());
mapObj.addControl(new AMap.OverView({isOpen: true}));
});
mapObj.on('click', mapClickClickHandler);
mapObj.plugin('AMap.Geolocation', function () {
geolocation = new AMap.Geolocation({
enableHighAccuracy: true,
timeout: 3000,
maximumAge: 0,
convert: true,
panToLocation: true,
zoomToAccuracy: true,
markerOptions: {}
});
});
// DOM Selectors and events
$map = $("#idAMapPositionPickerMap");
$pickBtn = $("#idAMapPositionPickerSelect");
$locationBtn = $("#idAMapPositionPickerLocation");
$resetBtn = $("#idAMapPositionPickerReset");
$clearBtn = $("#idAMapPositionPickerClear");
$addressInput = $("#idAMapPositionPickerAddress");
$cancelBtn = $("#idAMapPositionPickerCancelBtn");
$alert = $("#idAMapPositionPickerAlert");
$searchBtn = $("#idAMapPositionPickerSearch");
$searchPanel = $("#idAMapPositionPickerSearchPanel");
$searchInput = $("#idAMapPositionPickerSearchInput");
$searchResultList = $("#idAMapPositionPickerSearchResult");
$pickBtn.on('click', pickPosition);
$resetBtn.on('click', resetInitialPosition);
$clearBtn.on('click', clearPosition);
$locationBtn.on('click', location);
$searchPanel.on('show.bs.collapse', function () {
$searchBtn.removeClass('btn-default').addClass('btn-primary');
startSearch();
}).on('hide.bs.collapse', function () {
$searchBtn.removeClass('btn-primary').addClass('btn-default');
endSearch();
});
$('ul#idAMapPositionPickerSearchResult').on('click', 'li[data-poi-index]', highlightMarker);
}
}
function initializePicker() {
toggleMode(false);
$map.css('height', mPicker.opts.height);
$modal.find('h4.modal-title').html(mPicker.opts.title);
$alert.hide();
}
function location() {
$alert.hide();
geolocation.getCurrentPosition(function (status, result) {
if (status == 'complete') {
selectMarker(createMarkerFromLnglat(result.position.lng, result.position.lat, result.formattedAddress))
} else {
$alert.html(result.message).show();
}
});
}
function clearPosition() {
cachePosition = Position.empty();
if (selectedMarker != null) {
selectedMarker.setMap(null);
}
$addressInput.val('');
}
function resetInitialPosition() {
cachePosition = mPicker.getInitialPosition();
if (Position.validate(cachePosition)) {
selectMarker(createMarkerFromPosition(cachePosition));
} else if (selectedMarker != null) {
selectedMarker.setMap(null);
$addressInput.val('');
}
}
function isPositionPicked() {
return cachePosition.isValid();
}
function pickPosition() {
if (isShowOrPickMode) {
$modal.modal('hide');
return;
}
var address = $addressInput.val();
cachePosition.address = address;
// Always use new position instance
var pickedPosition;
var hasPicked = isPositionPicked();
if (hasPicked) {
pickedPosition = cachePosition.copy();
} else {
pickedPosition = Position.empty();
}
if (mPicker.opts.required && !hasPicked) {
$alert.html(mPicker.opts.errorTip).show();
} else {
$alert.hide();
$modal.modal('hide');
mPicker._onPickedCallback(pickedPosition, hasPicked);
}
}
// Search Start
function highlightMarker(e) {
var index = $(this).data('poiIndex');
if (index < markerList.length) {
markerList[index].resumeMove();
}
}
function startSearch() {
mapObj.off('click', mapClickClickHandler);
$resetBtn.prop('disabled', true);
$clearBtn.prop('disabled', true);
$locationBtn.prop('disabled', true);
$searchInput.on('keydown', function (e) {
var searchKeyword = $searchInput.val();
if (e.which == '13' && searchKeyword.length > 0) { //Enter
AMap.service('AMap.PlaceSearch', function () {
var placeSearch = new AMap.PlaceSearch({
pageSize: 6,
pageIndex: 1,
extensions: 'all' // return full address for POI
});
// Search in the given bound
placeSearch.searchInBounds(searchKeyword, mapObj.getBounds(), function (status, result) {
$searchResultList.children('li').remove();
for (var i in markerList) {
markerList[i].setMap(null);
}
markerList = [];
if (status == 'complete') {
for (var i in result.poiList.pois) {
var poi = result.poiList.pois[i];
var li = $('<li data-poi-index="{i}" class="list-group-item"><small>{name}</small></li>'.format({
i: i,
name: poi.name
}));
$searchResultList.append(li);
// delay to username poi.address
var mMarker = createMarkerFromLnglat(poi.location.lng, poi.location.lat);
mMarker.on('click', function (e) {
selectMarker(e.target);
});
markerList.push(mMarker);
}
mapObj.panTo(markerList[0].getPosition());
} else {
$searchPanel.append('<li class="list-group-item disabled"><small>抱歉,暂无找到符合条件的结果。</small></li>');
}
});
});
}
});
}
function endSearch() {
mapObj.on('click', mapClickClickHandler);
$resetBtn.prop('disabled', false);
$clearBtn.prop('disabled', false);
$locationBtn.prop('disabled', false);
$searchInput.val('').off('keydown');
for (var i in markerList) {
markerList[i].setMap(null);
}
markerList = [];
$searchResultList.children('li').remove();
}
// Search End
// New tools
function createMarkerFromPosition(position) {
var markerOpts = {
map: mapObj,
position: new AMap.LngLat(position.longitude, position.latitude),
topWhenClick: true,
offset: new AMap.Pixel(-5, -30),
animation: 'AMAP_ANIMATION_DROP',
extData: position
};
if (position.address) {
markerOpts.title = position.address;
}
var marker = new AMap.Marker(markerOpts);
return marker;
}
function createMarkerFromLnglat(longitude, latitude, address) {
var position = new Position(longitude, latitude, address, "");
return createMarkerFromPosition(position);
}
function selectMarker(marker) {
clearPosition();
selectedMarker = marker;
var position = marker.getExtData();
var lngLat = marker.getPosition();
cachePosition.longitude = position.longitude;
cachePosition.latitude = position.latitude;
if (!position.address) {
var geocoder;
mapObj.plugin(["AMap.Geocoder"], function () {
geocoder = new AMap.Geocoder({
radius: 1000,
extensions: "base"
});
AMap.event.addListener(geocoder, "complete", function (GeocoderResult) {
if (GeocoderResult["info"] == "OK") {
var address = GeocoderResult.regeocode.formattedAddress;
position.address = address;
selectedMarker.setExtData(position);
cachePosition.address = address;
$addressInput.val(address);
mapObj.panTo(lngLat);
}
});
geocoder.getAddress(lngLat);
});
} else {
cachePosition.address = position.address;
mapObj.panTo(lngLat);
$addressInput.val(position.address);
}
}
// End Tool functions
function toggleMode(isShowOrPick) {
isShowOrPickMode = isShowOrPick;
$addressInput.prop('readonly', isShowOrPick);
if (isShowOrPick) {
mapObj.off('click', mapClickClickHandler);
$cancelBtn.hide();
$alert.hide();
$('#idAMapPositionPickerFloatContainer').hide();
} else {
mapObj.on('click', mapClickClickHandler);
$('#idAMapPositionPickerFloatContainer').show();
$cancelBtn.show();
}
}
function showPositionInMap(position) {
initializeController();
toggleMode(true);
clearPosition();
var mMarker = createMarkerFromPosition(position);
mapObj.panTo(mMarker.getPosition());
$modal.find('h4.modal-title').html(position.getDisplayString());
$addressInput.val(position.address);
$modal.modal('show');
}
return {
activate: activate,
deactivate: activate,
//Tools
showPositionInMap: showPositionInMap
}
})();
var aMapPositionPicker = function (element, options) {
var picker = {
isFirstLoad: false,
initialPosition: null,
fieldManager: new FieldManager()
};
var $inputEl = null;
function triggerPickedComplete(mPosition, hasPicked) {
if (options.onPicked) {
options.onPicked(mPosition)
} else {
element.trigger('AMPP.PickCompleted', [mPosition, hasPicked]);
}
}
// API for PICKER_CONTROLLER
picker._onPickedCallback = function (mPosition, hasPicked) {
element.data('position', mPosition);
$inputEl.val(wrapFormat(options.formatter, mPosition));
picker.fieldManager.render(mPosition, hasPicked);
triggerPickedComplete(mPosition, hasPicked);
};
// Public API
picker.getInitialPosition = function () {
return initialPosition;
};
picker.position = function () {
var s = JSON.stringify(element.data('position'));
return element.data('position');
};
//
if (element.is('input') || element.is('textarea')) {
$inputEl = element;
} else {
$inputEl = element.children('input');
}
$inputEl.prop("readonly", true);
//Handle initial data
if (Position.LNGLAT_FORMATTER.indexOf(options.formatter)) {
var result = Position.validateLngLat($inputEl.val());
if (result) {
options.value.longitude = parseFloat(result.longitude);
options.value.latitude = parseFloat(result.latitude);
}
}
var initialPosition = new Position(options.value.longitude, options.value.latitude, options.value.address, options.value.label);
element.data('position', initialPosition.copy());
// Register events
element.on('click', function () {
//show modal/
PICKER_CONTROLLER.activate(picker);
});
// 处理fields
var fields = options.fields || [];
for (var i in fields) {
var iEl = new Field(fields[i] || {});
if (!iEl.created) {
$inputEl.after(iEl.$widget);
}
picker.fieldManager.addField(iEl);
}
picker.opts = options;
return picker;
};
$.fn.AMapPositionPicker = function (options) {
options = options || {};
var args = Array.prototype.slice.call(arguments, 1),
isInstance = true,
thisMethods = [], //可级联函数列表
returnValue;
if (typeof options == 'object') {
return this.each(function () {
var $this = $(this);
if (!$this.data('AMapPositionPicker')) {
var dataOptions = {
formatter: $this.data('formatter'),
title: $this.data('title'),
errorTip: $this.data('errorTip'),
height: $this.data('height'),
required: $this.data('required'),
value: {
longitude: $this.data('valueLongitude'),
latitude: $this.data('valueLatitude'),
address: $this.data('valueAddress'),
label: $this.data('valueLabel')
},
center: {
longitude: $this.data('centerLongitude'),
latitude: $this.data('centerLatitude')
}
};
options = $.extend(true, {}, $.fn.AMapPositionPicker.defaults, dataOptions, options);
$this.data('AMapPositionPicker', aMapPositionPicker($this, options));
}
});
} else if (typeof options == 'string') {
this.each(function () {
var $this = $(this),
instance = $this.data('AMapPositionPicker');
if (!instance) {
throw new Error('AMapPositionPicker("' + options + '") method was called on an element that is not using AMapPositionPicker');
}
returnValue = instance[options].apply(instance, args);
isInstance = returnValue === instance;
});
if (isInstance || $.inArray(options, thisMethods) > -1) {
return this;
}
return returnValue;
}
throw new TypeError('Invalid arguments for AMapPositionPicker: ' + options);
};
$.fn.AMapPositionPicker.defaults = {
formatter: '{address}',
onPicked: null,
value: {
longitude: null,
latitude: null,
address: null
},
required: true,
title: '请选择地址',
errorTip: '请选择地址',
height: '500px',
fields: []
};
$.extend({AMapPositionPicker: {}});
$.extend($.AMapPositionPicker, {
showPositionInMap: function (position) {
PICKER_CONTROLLER.showPositionInMap(Position.fromOptions(position));
},
pluginVersion: '0.8.3'
});
$(function () {
$('[data-provide="AMapPositionPicker"]').AMapPositionPicker();
});
}))
;

File diff suppressed because one or more lines are too long

@ -0,0 +1,101 @@
var projectName = '餐厅点餐系统';
/**
* 轮播图配置
*/
var swiper = {
// 设定轮播容器宽度,支持像素和百分比
width: '100%',
height: '400px',
// hover悬停显示
// always始终显示
// none始终不显示
arrow: 'none',
// default左右切换
// updown上下切换
// fade渐隐渐显切换
anim: 'default',
// 自动切换的时间间隔
// 默认3000
interval: 2000,
// 指示器位置
// inside容器内部
// outside容器外部
// none不显示
indicator: 'outside'
}
/**
* 个人中心菜单
*/
var centerMenu = [{
name: '个人中心',
url: '../' + localStorage.getItem('userTable') + '/center.html'
},
{
name: '我的收藏',
url: '../storeup/list.html'
}
]
var indexNav = [
{
name: '菜品信息',
url: './pages/caipinxinxi/list.html'
},
{
name: '菜品资讯',
url: './pages/news/list.html'
},
]
var adminurl = "http://localhost:8080/springboot1mi5m/admin/dist/index.html";
var cartFlag = false
var chatFlag = false
var menu = [{"backMenu":[{"child":[{"buttons":["新增","查看","修改","删除"],"menu":"用户","menuJump":"列表","tableName":"yonghu"}],"menu":"用户管理"},{"child":[{"buttons":["新增","查看","修改","删除"],"menu":"菜品分类","menuJump":"列表","tableName":"caipinfenlei"}],"menu":"菜品分类管理"},{"child":[{"buttons":["新增","查看","修改","删除","查看评论"],"menu":"菜品信息","menuJump":"列表","tableName":"caipinxinxi"}],"menu":"菜品信息管理"},{"child":[{"buttons":["新增","查看","修改","删除"],"menu":"餐桌","menuJump":"列表","tableName":"canzhuo"}],"menu":"餐桌管理"},{"child":[{"buttons":["查看","修改","删除","审核"],"menu":"菜品订单","menuJump":"列表","tableName":"caipindingdan"}],"menu":"菜品订单管理"},{"child":[{"buttons":["查看","修改","删除","审核","报表"],"menu":"菜品评价","menuJump":"列表","tableName":"caipinpingjia"}],"menu":"菜品评价管理"},{"child":[{"buttons":["新增","查看","修改","删除"],"menu":"菜品资讯","tableName":"news"},{"buttons":["新增","查看","修改","删除"],"menu":"轮播图管理","tableName":"config"}],"menu":"系统管理"}],"frontMenu":[{"child":[{"buttons":["查看","下单"],"menu":"菜品信息列表","menuJump":"列表","tableName":"caipinxinxi"}],"menu":"菜品信息模块"}],"hasBackLogin":"是","hasBackRegister":"否","hasFrontLogin":"否","hasFrontRegister":"否","roleName":"管理员","tableName":"users"},{"backMenu":[{"child":[{"buttons":["查看","删除","支付","评价"],"menu":"菜品订单","menuJump":"列表","tableName":"caipindingdan"}],"menu":"菜品订单管理"},{"child":[{"buttons":["查看","修改","删除"],"menu":"菜品评价","menuJump":"列表","tableName":"caipinpingjia"}],"menu":"菜品评价管理"},{"child":[{"buttons":["查看","删除"],"menu":"我的收藏管理","tableName":"storeup"}],"menu":"我的收藏管理"}],"frontMenu":[{"child":[{"buttons":["查看","下单"],"menu":"菜品信息列表","menuJump":"列表","tableName":"caipinxinxi"}],"menu":"菜品信息模块"}],"hasBackLogin":"是","hasBackRegister":"否","hasFrontLogin":"是","hasFrontRegister":"是","roleName":"用户","tableName":"yonghu"}]
var isAuth = function (tableName,key) {
let role = localStorage.getItem("userTable");
let menus = menu;
for(let i=0;i<menus.length;i++){
if(menus[i].tableName==role){
for(let j=0;j<menus[i].backMenu.length;j++){
for(let k=0;k<menus[i].backMenu[j].child.length;k++){
if(tableName==menus[i].backMenu[j].child[k].tableName){
let buttons = menus[i].backMenu[j].child[k].buttons.join(',');
return buttons.indexOf(key) !== -1 || false
}
}
}
}
}
return false;
}
var isFrontAuth = function (tableName,key) {
let role = localStorage.getItem("userTable");
let menus = menu;
for(let i=0;i<menus.length;i++){
if(menus[i].tableName==role){
for(let j=0;j<menus[i].frontMenu.length;j++){
for(let k=0;k<menus[i].frontMenu[j].child.length;k++){
if(tableName==menus[i].frontMenu[j].child[k].tableName){
let buttons = menus[i].frontMenu[j].child[k].buttons.join(',');
return buttons.indexOf(key) !== -1 || false
}
}
}
}
}
return false;
}

File diff suppressed because one or more lines are too long

@ -0,0 +1,34 @@
/**
* 页面跳转
* @param {Object} url
*/
function jump(url) {
if (!url || url == 'null' || url == null) {
window.location.href = './index.html';
}
// 路径访问设置
localStorage.setItem('iframeUrl', url.replace('../', './pages/'));
window.location.href = url;
}
/**
* 返回
*/
function back(num = -1) {
window.history.go(num)
}
/**
* 生成订单
*/
function genTradeNo() {
var date = new Date();
var tradeNo = date.getFullYear().toString() + (date.getMonth() + 1).toString() +
date.getDate().toString() + date.getHours().toString() + date.getMinutes().toString() +
date.getSeconds().toString() + date.getMilliseconds().toString();
for (var i = 0; i < 5; i++) //5位随机数用以加在时间戳后面。
{
tradeNo += Math.floor(Math.random() * 10);
}
return tradeNo;
}

@ -0,0 +1,74 @@
/**
* 邮箱
* @param {*} s
*/
function isEmail(s) {
if(s){
return /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3}){1,2})$/.test(s)
}
return true;
}
/**
* 手机号码
* @param {*} s
*/
function isMobile(s) {
if(s){
return /^1[0-9]{10}$/.test(s)
}
return true;
}
/**
* 电话号码
* @param {*} s
*/
function isPhone(s) {
if(s){
return /^([0-9]{3,4}-)?[0-9]{7,8}$/.test(s)
}
return true;
}
/**
* URL地址
* @param {*} s
*/
function isURL(s) {
if(s){
return /^http[s]?:\/\/.*/.test(s)
}
return true;
}
/**
* 匹配数字可以是小数不可以是负数,可以为空
* @param {*} s
*/
function isNumber(s) {
if(s){
return /(^-?[+-]?([0-9]*\.?[0-9]+|[0-9]+\.?[0-9]*)([eE][+-]?[0-9]+)?$)|(^$)/.test(s);
}
return true;
}
/**
* 匹配整数可以为空
* @param {*} s
*/
function isIntNumer(s) {
if(s){
return /(^-?\d+$)|(^$)/.test(s);
}
return true;
}
/**
* 身份证校验
*/
function isIdentity(idcard) {
const regIdCard = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
if(idcard){
return regIdCard.test(idcard);
}
return true;
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1,2 @@
/** layui-v2.5.6 MIT License By https://www.layui.com */
html #layuicss-skincodecss{display:none;position:absolute;width:1989px}.layui-code-h3,.layui-code-view{position:relative;font-size:12px}.layui-code-view{display:block;margin:10px 0;padding:0;border:1px solid #e2e2e2;border-left-width:6px;background-color:#F2F2F2;color:#333;font-family:Courier New}.layui-code-h3{padding:0 10px;height:32px;line-height:32px;border-bottom:1px solid #e2e2e2}.layui-code-h3 a{position:absolute;right:10px;top:0;color:#999}.layui-code-view .layui-code-ol{position:relative;overflow:auto}.layui-code-view .layui-code-ol li{position:relative;margin-left:45px;line-height:20px;padding:0 5px;border-left:1px solid #e2e2e2;list-style-type:decimal-leading-zero;*list-style-type:decimal;background-color:#fff}.layui-code-view pre{margin:0}.layui-code-notepad{border:1px solid #0C0C0C;border-left-color:#3F3F3F;background-color:#0C0C0C;color:#C2BE9E}.layui-code-notepad .layui-code-h3{border-bottom:none}.layui-code-notepad .layui-code-ol li{background-color:#3F3F3F;border-left:none}

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 701 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 299 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save