dever 5 лет назад
Родитель
Сommit
816ebc5c5f
100 измененных файлов с 3924 добавлено и 0 удалено
  1. 115 0
      app/act/database/collect.php
  2. 154 0
      app/act/database/comment.php
  3. 115 0
      app/act/database/follow.php
  4. 149 0
      app/act/database/form_id.php
  5. 116 0
      app/act/database/like.php
  6. 124 0
      app/act/database/share.php
  7. 159 0
      app/act/database/share_reflux.php
  8. 8 0
      app/act/index.php
  9. 67 0
      app/act/lib/Collect.php
  10. 90 0
      app/act/lib/Comment.php
  11. 38 0
      app/act/lib/Cron.php
  12. 54 0
      app/act/lib/Form.php
  13. 69 0
      app/act/lib/Like.php
  14. 47 0
      app/act/lib/Manage.php
  15. 163 0
      app/act/lib/Share.php
  16. 2 0
      app/boot.php
  17. 161 0
      app/content/database/cate.php
  18. 336 0
      app/content/database/pic.php
  19. 8 0
      app/content/index.php
  20. 60 0
      app/content/lib/Manage.php
  21. 36 0
      app/content/lib/Pic.php
  22. 8 0
      boot.php
  23. 8 0
      common.php
  24. 84 0
      config/base.php
  25. 119 0
      config/env/localhost/default.php
  26. 6 0
      config/route.php
  27. 1 0
      data/readme
  28. 189 0
      main/assets/pc/article.html
  29. 114 0
      main/assets/pc/contact.html
  30. 2 0
      main/assets/pc/css/article.css
  31. 1 0
      main/assets/pc/css/article.css.map
  32. 2 0
      main/assets/pc/css/contact.css
  33. 1 0
      main/assets/pc/css/contact.css.map
  34. 0 0
      main/assets/pc/css/global.css
  35. 1 0
      main/assets/pc/css/global.css.map
  36. 0 0
      main/assets/pc/css/index.css
  37. 1 0
      main/assets/pc/css/index.css.map
  38. 2 0
      main/assets/pc/css/intro.css
  39. 1 0
      main/assets/pc/css/intro.css.map
  40. 2 0
      main/assets/pc/css/legal.css
  41. 1 0
      main/assets/pc/css/legal.css.map
  42. 0 0
      main/assets/pc/css/list.css
  43. 1 0
      main/assets/pc/css/list.css.map
  44. 0 0
      main/assets/pc/css/list1.css
  45. 1 0
      main/assets/pc/css/list1.css.map
  46. 2 0
      main/assets/pc/css/magzine.css
  47. 1 0
      main/assets/pc/css/magzine.css.map
  48. 0 0
      main/assets/pc/css/video.css
  49. 1 0
      main/assets/pc/css/video.css.map
  50. BIN
      main/assets/pc/images/ad.jpg
  51. BIN
      main/assets/pc/images/ad1.jpg
  52. BIN
      main/assets/pc/images/arrow-l.png
  53. BIN
      main/assets/pc/images/arrow-r.png
  54. BIN
      main/assets/pc/images/banner.jpg
  55. BIN
      main/assets/pc/images/btn-next.png
  56. BIN
      main/assets/pc/images/btn-prev.png
  57. BIN
      main/assets/pc/images/close.png
  58. BIN
      main/assets/pc/images/ico-col-cur.png
  59. BIN
      main/assets/pc/images/ico-col.png
  60. BIN
      main/assets/pc/images/ico-email.png
  61. BIN
      main/assets/pc/images/ico-password.png
  62. BIN
      main/assets/pc/images/ico-row-cur.png
  63. BIN
      main/assets/pc/images/ico-row.png
  64. BIN
      main/assets/pc/images/ico-video.png
  65. BIN
      main/assets/pc/images/jpcm.png
  66. BIN
      main/assets/pc/images/jpw.png
  67. BIN
      main/assets/pc/images/logo.png
  68. BIN
      main/assets/pc/images/mag.jpg
  69. BIN
      main/assets/pc/images/qrcode.png
  70. BIN
      main/assets/pc/images/sina.png
  71. BIN
      main/assets/pc/images/tmp1.jpg
  72. BIN
      main/assets/pc/images/tmp2.jpg
  73. BIN
      main/assets/pc/images/top.png
  74. BIN
      main/assets/pc/images/wechat.png
  75. 533 0
      main/assets/pc/index.html
  76. 142 0
      main/assets/pc/intro.html
  77. 2 0
      main/assets/pc/js/article.js
  78. 1 0
      main/assets/pc/js/article.js.map
  79. 155 0
      main/assets/pc/js/config.js
  80. 2 0
      main/assets/pc/js/contact.js
  81. 1 0
      main/assets/pc/js/contact.js.map
  82. 0 0
      main/assets/pc/js/global.js
  83. 0 0
      main/assets/pc/js/global.js.map
  84. 2 0
      main/assets/pc/js/index.js
  85. 1 0
      main/assets/pc/js/index.js.map
  86. 2 0
      main/assets/pc/js/intro.js
  87. 1 0
      main/assets/pc/js/intro.js.map
  88. 2 0
      main/assets/pc/js/legal.js
  89. 1 0
      main/assets/pc/js/legal.js.map
  90. 2 0
      main/assets/pc/js/list.js
  91. 1 0
      main/assets/pc/js/list.js.map
  92. 2 0
      main/assets/pc/js/list1.js
  93. 1 0
      main/assets/pc/js/list1.js.map
  94. 2 0
      main/assets/pc/js/magzine.js
  95. 1 0
      main/assets/pc/js/magzine.js.map
  96. 2 0
      main/assets/pc/js/video.js
  97. 1 0
      main/assets/pc/js/video.js.map
  98. 108 0
      main/assets/pc/legal.html
  99. 170 0
      main/assets/pc/list.html
  100. 169 0
      main/assets/pc/list1.html

+ 115 - 0
app/act/database/collect.php

@@ -0,0 +1,115 @@
+<?php
+
+$table = Dever::config('base')->type;
+return array
+(
+	# 表名
+	'name' => 'collect',
+	# 显示给用户看的名称
+	'lang' => '收藏',
+	# 是否显示在后台菜单
+	'order' => 78,
+	# 数据结构
+	'struct' => array
+	(
+		'id' 		=> array
+		(
+			'type' 		=> 'int-11',
+			'name' 		=> 'ID',
+			'default' 	=> '',
+			'desc' 		=> '',
+			'match' 	=> 'is_numeric',
+			'order'		=> 'desc',
+			//'list'		=> true,
+		),
+		
+
+		'uid'		=> array
+		(
+			'type' 		=> 'int-11',
+			'name' 		=> '用户名',
+			'default' 	=> '0',
+			'desc' 		=> '请选择用户',
+			'match' 	=> 'is_numeric',
+			//'update'	=> 'select',
+			//'search'	=> 'select',
+			'search'    => array
+            (
+                'api' => 'passport/user-all',
+                'col' => 'username',
+                'result' => 'id',
+            ),
+			'list'		=> '{uid} > 0 ? Dever::load("passport/user-one#username", {uid}) : "匿名用户"',
+		),
+
+		'type' 		=> array
+		(
+			'type' 		=> 'tinyint-1',
+			'name' 		=> '收藏类别',
+			'default' 	=> '',
+			'desc' 		=> '收藏类别',
+			'match' 	=> 'option',
+			'search'	=> 'select',
+			'option' 	=> $table,
+			'list'		=> true,
+		),
+		
+		'data_id' 		=> array
+		(
+			'type' 		=> 'int-11',
+			'name' 		=> '标题',
+			'default' 	=> '',
+			'desc' 		=> '标题',
+			'match' 	=> 'option',
+			'list'		=> 'Dever::load("act/lib/manage.load", "{type}", {data_id})',
+		),
+		
+		'state'		=> array
+		(
+			'type' 		=> 'tinyint-1',
+			'name' 		=> '状态',
+			'default' 	=> '1',
+			'desc' 		=> '请选择状态',
+			'match' 	=> 'is_numeric',
+		),
+		
+		'cdate'		=> array
+		(
+			'type' 		=> 'int-11',
+			'name' 		=> '时间',
+			'match' 	=> array('is_numeric', time()),
+			'desc' 		=> '',
+			# 只有insert时才生效
+			'insert'	=> true,
+			'search'	=> 'date',
+			'list'		=> 'date("Y-m-d H:i:s", {cdate})',
+		),
+	),
+
+	'manage' => array
+	(
+		'insert' => false,
+		'edit' => false,
+		'delete' => false,
+	),
+
+	# request 请求接口定义
+	'request' => array
+	(
+		'getAll' => array
+		(
+			# 匹配的正则或函数 选填项
+			'option' => array
+			(
+				'uid' => 'yes',
+				'data_id' => 'yes',
+				'type' => array('yes', 'in'),
+				'state' => 1,
+			),
+			'type' => 'all',
+			'order' => array('id' => 'desc'),
+			'page' => array(15, 'list'),
+			'col' => 'uid,type,data_id,cdate',
+		),
+	)
+);

+ 154 - 0
app/act/database/comment.php

@@ -0,0 +1,154 @@
+<?php
+
+$page = 10;
+$table = Dever::config('base')->type;
+
+return array
+(
+	# 表名
+	'name' => 'comment',
+	# 显示给用户看的名称
+	'lang' => '评论管理',
+	# 是否显示在后台菜单
+	'order' => 80,
+	# 数据结构
+	'struct' => array
+	(
+		'id' 		=> array
+		(
+			'type' 		=> 'int-11',
+			'name' 		=> 'ID',
+			'default' 	=> '',
+			'desc' 		=> '',
+			'match' 	=> 'is_numeric',
+			'order'		=> 'desc',
+			//'list'		=> true,
+		),
+		
+
+		'uid'		=> array
+		(
+			'type' 		=> 'int-11',
+			'name' 		=> '用户名',
+			'default' 	=> '0',
+			'desc' 		=> '请选择用户',
+			'match' 	=> 'is_numeric',
+			//'update'	=> 'select',
+			//'search'	=> 'select',
+			'search'    => array
+            (
+                'api' => 'passport/user-all',
+                'col' => 'username',
+                'result' => 'id',
+            ),
+			'list'		=> '{uid} > 0 ? Dever::load("passport/user-one#username", {uid}) : "匿名用户"',
+		),
+
+		'type' 		=> array
+		(
+			'type' 		=> 'tinyint-1',
+			'name' 		=> '评论类别',
+			'default' 	=> '',
+			'desc' 		=> '评论类别',
+			'match' 	=> 'option',
+			'option' 	=> $table,
+			'search'	=> 'select',
+			'list'		=> true,
+		),
+		
+		'data_id' 		=> array
+		(
+			'type' 		=> 'int-11',
+			'name' 		=> '标题',
+			'default' 	=> '',
+			'desc' 		=> '标题',
+			'match' 	=> 'option',
+			//'list'		=> 'Dever::load("act/lib/manage.load", "{type}", {data_id})',
+		),
+
+		'data_name' 		=> array
+		(
+			'type' 		=> 'varchar-200',
+			'name' 		=> '标题',
+			'default' 	=> '',
+			'desc' 		=> '标题',
+			'match' 	=> 'option',
+			'search'	=> 'fulltext',
+			//'list'		=> 'Dever::load("act/lib/manage.load", "{type}", {data_id})',
+			'list'		=> true,
+		),
+
+		'num_up'		=> array
+		(
+			'type' 		=> 'int-11',
+			'name' 		=> '点赞数',
+			'default' 	=> '0',
+			'desc' 		=> '点赞数',
+			'match' 	=> 'option',
+			//'search'	=> 'order',
+			'list'		=> true,
+		),
+		
+		'content'		=> array
+		(
+			'type' 		=> 'text-255',
+			'name' 		=> '内容',
+			'update' 	=> 'editor',
+			'key'		=> 1,
+			'default' 	=> '',
+			'desc' 		=> '请输入内容',
+			'match' 	=> 'is_string',
+			'search'	=> 'fulltext',
+			//'list'		=> 'table',
+			//'modal'		=> '查看详情',
+			'list'		=> '"<span style=\'display:none;\' class=dever-emoji>{content}</span>"',
+		),
+		
+		'state'		=> array
+		(
+			'type' 		=> 'tinyint-1',
+			'name' 		=> '状态',
+			'default' 	=> '1',
+			'desc' 		=> '请选择状态',
+			'match' 	=> 'is_numeric',
+		),
+		
+		'cdate'		=> array
+		(
+			'type' 		=> 'int-11',
+			'name' 		=> '评论时间',
+			'match' 	=> array('is_numeric', time()),
+			'desc' 		=> '',
+			# 只有insert时才生效
+			'insert'	=> true,
+			'search'	=> 'date',
+			'list'		=> 'date("Y-m-d H:i:s", {cdate})',
+		),
+	),
+
+	'manage' => array
+	(
+		'insert' => false,
+		'edit' => false,
+	),
+
+	# request 请求接口定义
+	'request' => array
+	(
+		'getAll' => array
+		(
+			# 匹配的正则或函数 选填项
+			'option' => array
+			(
+				'uid' => 'yes',
+				'type' => array('yes', 'in'),
+				'data_id' => 'yes',
+				'state' => 1,
+			),
+			'type' => 'all',
+			'order' => array('cdate' => 'desc'),
+			'page' => array($page, 'list'),
+			'col' => '*',
+		),
+	)
+);

+ 115 - 0
app/act/database/follow.php

@@ -0,0 +1,115 @@
+<?php
+
+$table = Dever::config('base')->type;
+return array
+(
+	# 表名
+	'name' => 'follow',
+	# 显示给用户看的名称
+	'lang' => '关注',
+	# 是否显示在后台菜单
+	'order' => 76,
+	# 数据结构
+	'struct' => array
+	(
+		'id' 		=> array
+		(
+			'type' 		=> 'int-11',
+			'name' 		=> 'ID',
+			'default' 	=> '',
+			'desc' 		=> '',
+			'match' 	=> 'is_numeric',
+			'order'		=> 'desc',
+			//'list'		=> true,
+		),
+		
+
+		'uid'		=> array
+		(
+			'type' 		=> 'int-11',
+			'name' 		=> '用户名',
+			'default' 	=> '0',
+			'desc' 		=> '请选择用户',
+			'match' 	=> 'is_numeric',
+			//'update'	=> 'select',
+			//'search'	=> 'select',
+			'search'    => array
+            (
+                'api' => 'passport/user-all',
+                'col' => 'username',
+                'result' => 'id',
+            ),
+			'list'		=> '{uid} > 0 ? Dever::load("passport/user-one#username", {uid}) : "匿名用户"',
+		),
+
+		'type' 		=> array
+		(
+			'type' 		=> 'tinyint-1',
+			'name' 		=> '关注类别',
+			'default' 	=> '',
+			'desc' 		=> '关注类别',
+			'match' 	=> 'option',
+			'search'	=> 'select',
+			'option' 	=> $table,
+			'list'		=> true,
+		),
+		
+		'data_id' 		=> array
+		(
+			'type' 		=> 'int-11',
+			'name' 		=> '标题',
+			'default' 	=> '',
+			'desc' 		=> '标题',
+			'match' 	=> 'option',
+			'list'		=> 'Dever::load("act/lib/manage.load", "{type}", {data_id})',
+		),
+		
+		'state'		=> array
+		(
+			'type' 		=> 'tinyint-1',
+			'name' 		=> '状态',
+			'default' 	=> '1',
+			'desc' 		=> '请选择状态',
+			'match' 	=> 'is_numeric',
+		),
+		
+		'cdate'		=> array
+		(
+			'type' 		=> 'int-11',
+			'name' 		=> '时间',
+			'match' 	=> array('is_numeric', time()),
+			'desc' 		=> '',
+			# 只有insert时才生效
+			'insert'	=> true,
+			'search'	=> 'date',
+			'list'		=> 'date("Y-m-d H:i:s", {cdate})',
+		),
+	),
+
+	'manage' => array
+	(
+		'insert' => false,
+		'edit' => false,
+		'delete' => false,
+	),
+
+	# request 请求接口定义
+	'request' => array
+	(
+		'getAll' => array
+		(
+			# 匹配的正则或函数 选填项
+			'option' => array
+			(
+				'uid' => 'yes',
+				'data_id' => 'yes',
+				'type' => array('yes', 'in'),
+				'state' => 1,
+			),
+			'type' => 'all',
+			'order' => array('id' => 'desc'),
+			'page' => array(15, 'list'),
+			'col' => 'uid,type,data_id,cdate',
+		),
+	)
+);

+ 149 - 0
app/act/database/form_id.php

@@ -0,0 +1,149 @@
+<?php
+$type = array
+(
+    1 => '普通表单',
+    2 => '支付表单',
+);
+$time = time()+(3600*24*7);
+return array
+(
+    # 表名
+    'name' => 'form_id',
+    # 显示给用户看的名称
+    'lang' => '模板form_id收集表',
+    'menu' => false,
+    # 数据结构
+    'struct' => array
+    (
+        'id'        => array
+        (
+            'type'      => 'int-11',
+            'name'      => 'ID',
+            'default'   => '',
+            'desc'      => '',
+            'match'     => 'is_numeric',
+            'search'    => 'order',
+            'list'      => true,
+        ),
+
+        'type'      => array
+        (
+            'type'      => 'tinyint-1',
+            'name'      => '类型',
+            'default'   => '1',
+            'desc'      => '类型',
+            'match'     => 'option',
+            'search'    => 'select',
+            'option'    => $type,
+            'list'      => true,
+        ),
+
+        'cate_id'       => array
+        (
+            'type'      => 'int-11',
+            'name'      => '小刊分类',
+            'default'   => '1',
+            'desc'      => '小刊分类',
+            'match'     => 'is_numeric',
+            //'search'    => 'select',
+            'list'      => true,
+        ),
+        
+        'num'       => array
+        (
+            'type'      => 'int-11',
+            'name'      => '使用次数',
+            'default'   => '0',
+            'desc'      => '使用次数',
+            'match'     => 'is_numeric',
+            'list'      => true,
+        ),
+
+        'uid'       => array
+        (
+            'type'      => 'int-11',
+            'name'      => '用户id',
+            'default'   => '',
+            'desc'      => '用户id',
+            'match'     => 'is_numeric',
+            'list'      => true,
+        ),
+        
+        'form_id'       => array
+        (
+            'type'      => 'varchar-700',
+            'name'      => 'form_id',
+            'default'   => '',
+            'desc'      => 'form_id',
+            'match'     => 'is_string',
+            'update'    => 'text',
+            'search'    => 'fulltext',
+            'list'      => true,
+        ),
+        
+        'state'     => array
+        (
+            'type'      => 'tinyint-1',
+            'name'      => '状态',
+            'default'   => '1',
+            'desc'      => '请选择状态',
+            'match'     => 'is_numeric',
+        ),
+        
+        'cdate'     => array
+        (
+            'type'      => 'int-11',
+            'name'      => '更新时间',
+            'match'     => array('is_numeric', time()),
+            'desc'      => '',
+            'default'   => '',
+            'list'      => 'date("Y-m-d H:i:s", {cdate})',
+        ),
+    ),
+
+    'top' => Dever::config('base', 'applet')->top,
+
+    'manage' => array
+    (
+        //'delete' => false,
+        'insert' => false,
+        'edit' => false,
+    ),
+
+    'request' => array
+    (
+        'getAll' => array
+        (
+            # 匹配的正则或函数 选填项
+            'option' => array
+            (
+                'num' => array('yes', '<'),
+                'type' => 'yes',
+                'uid' => 'yes',
+                'cate_id' => 'yes',
+                'cdate' => array($time, '<='),
+                'state' => 1,
+            ),
+            'type' => 'all',
+            'order' => array('cdate' => 'desc'),
+            'limit' => '0,100',
+            'col' => '*',
+        ),
+
+        'getAllGroupByUid' => array
+        (
+            # 匹配的正则或函数 选填项
+            'option' => array
+            (
+                'type' => 'yes',
+                'cate_id' => 'yes',
+                'cdate' => array($time, '<='),
+                'state' => 1,
+            ),
+            'type' => 'all',
+            'group' => 'uid',
+            'order' => array('cdate' => 'desc'),
+            'col' => '*',
+        ),
+    ),
+);

+ 116 - 0
app/act/database/like.php

@@ -0,0 +1,116 @@
+<?php
+
+$table = Dever::config('base')->type;
+$table[11] = '评论';
+return array
+(
+	# 表名
+	'name' => 'like',
+	# 显示给用户看的名称
+	'lang' => '喜欢日志',
+	# 是否显示在后台菜单
+	'order' => 79,
+	# 数据结构
+	'struct' => array
+	(
+		'id' 		=> array
+		(
+			'type' 		=> 'int-11',
+			'name' 		=> 'ID',
+			'default' 	=> '',
+			'desc' 		=> '',
+			'match' 	=> 'is_numeric',
+			'order'		=> 'desc',
+			//'list'		=> true,
+		),
+		
+
+		'uid'		=> array
+		(
+			'type' 		=> 'int-11',
+			'name' 		=> '用户名',
+			'default' 	=> '0',
+			'desc' 		=> '请选择用户',
+			'match' 	=> 'is_numeric',
+			//'update'	=> 'select',
+			//'search'	=> 'select',
+			'search'    => array
+            (
+                'api' => 'passport/user-all',
+                'col' => 'username',
+                'result' => 'id',
+            ),
+			'list'		=> '{uid} > 0 ? Dever::load("passport/user-one#username", {uid}) : "匿名用户"',
+		),
+
+		'type' 		=> array
+		(
+			'type' 		=> 'tinyint-1',
+			'name' 		=> '喜欢类别',
+			'default' 	=> '',
+			'desc' 		=> '喜欢类别',
+			'match' 	=> 'option',
+			'search'	=> 'select',
+			'option' 	=> $table,
+			'list'		=> true,
+		),
+		
+		'data_id' 		=> array
+		(
+			'type' 		=> 'int-11',
+			'name' 		=> '标题',
+			'default' 	=> '',
+			'desc' 		=> '标题',
+			'match' 	=> 'option',
+			'list'		=> 'Dever::load("act/lib/manage.load", "{type}", {data_id})',
+		),
+		
+		'state'		=> array
+		(
+			'type' 		=> 'tinyint-1',
+			'name' 		=> '状态',
+			'default' 	=> '1',
+			'desc' 		=> '请选择状态',
+			'match' 	=> 'is_numeric',
+		),
+		
+		'cdate'		=> array
+		(
+			'type' 		=> 'int-11',
+			'name' 		=> '时间',
+			'match' 	=> array('is_numeric', time()),
+			'desc' 		=> '',
+			# 只有insert时才生效
+			'insert'	=> true,
+			'search'	=> 'date',
+			'list'		=> 'date("Y-m-d H:i:s", {cdate})',
+		),
+	),
+
+	'manage' => array
+	(
+		'insert' => false,
+		'edit' => false,
+		'delete' => false,
+	),
+
+	# request 请求接口定义
+	'request' => array
+	(
+		'getAll' => array
+		(
+			# 匹配的正则或函数 选填项
+			'option' => array
+			(
+				'uid' => 'yes',
+				'data_id' => 'yes',
+				'type' => array('yes', 'in'),
+				'state' => 1,
+			),
+			'type' => 'all',
+			'order' => array('id' => 'desc'),
+			'page' => array(15, 'list'),
+			'col' => 'uid,type,data_id,cdate',
+		),
+	)
+);

+ 124 - 0
app/act/database/share.php

@@ -0,0 +1,124 @@
+<?php
+
+$table = Dever::config('base')->type;
+return array
+(
+	# 表名
+	'name' => 'share',
+	# 显示给用户看的名称
+	'lang' => '分享日志',
+	# 是否显示在后台菜单
+	'order' => 78,
+	# 数据结构
+	'struct' => array
+	(
+		'id' 		=> array
+		(
+			'type' 		=> 'int-11',
+			'name' 		=> 'ID',
+			'default' 	=> '',
+			'desc' 		=> '',
+			'match' 	=> 'is_numeric',
+			'order'		=> 'desc',
+			//'list'		=> true,
+		),
+		
+
+		'uid'		=> array
+		(
+			'type' 		=> 'int-11',
+			'name' 		=> '用户名',
+			'default' 	=> '0',
+			'desc' 		=> '请选择用户',
+			'match' 	=> 'is_numeric',
+			//'update'	=> 'select',
+			//'search'	=> 'select',
+			'search'    => array
+            (
+                'api' => 'passport/user-all',
+                'col' => 'username',
+                'result' => 'id',
+            ),
+			'list'		=> '{uid} > 0 ? Dever::load("passport/user-one#username", {uid}) : "匿名用户"',
+		),
+
+		'type' 		=> array
+		(
+			'type' 		=> 'tinyint-1',
+			'name' 		=> '分享类别',
+			'default' 	=> '',
+			'desc' 		=> '分享类别',
+			'match' 	=> 'option',
+			'option' 	=> $table,
+			'list'		=> true,
+			'search'	=> 'select',
+		),
+		
+		'data_id' 		=> array
+		(
+			'type' 		=> 'int-11',
+			'name' 		=> '标题',
+			'default' 	=> '',
+			'desc' 		=> '标题',
+			'match' 	=> 'option',
+			'list'		=> 'Dever::load("act/lib/manage.load", "{type}", {data_id})',
+		),
+		
+		'content'		=> array
+		(
+			'type' 		=> 'text-255',
+			'name' 		=> '内容',
+			'update' 	=> 'editor',
+			'key'		=> 1,
+			'default' 	=> '',
+			'desc' 		=> '请输入内容',
+			'match' 	=> 'is_string',
+			//'search'	=> 'fulltext',
+			//'list'		=> 'table',
+			//'modal'		=> '查看详情',
+		),
+
+		'num' 		=> array
+		(
+			'type' 		=> 'int-11',
+			'name' 		=> '分享次数',
+			'default' 	=> '',
+			'desc' 		=> '分享次数',
+			'match' 	=> 'option',
+			'list'		=> true,
+		),
+		
+		'state'		=> array
+		(
+			'type' 		=> 'tinyint-1',
+			'name' 		=> '状态',
+			'default' 	=> '1',
+			'desc' 		=> '请选择状态',
+			'match' 	=> 'is_numeric',
+		),
+		
+		'cdate'		=> array
+		(
+			'type' 		=> 'int-11',
+			'name' 		=> '分享时间',
+			'match' 	=> array('is_numeric', time()),
+			'desc' 		=> '',
+			# 只有insert时才生效
+			'insert'	=> true,
+			'search'	=> 'date',
+			'list'		=> 'date("Y-m-d H:i:s", {cdate})',
+		),
+	),
+
+	'manage' => array
+	(
+		'insert' => false,
+		'edit' => false,
+		'delete' => false,
+
+		'list_button' => array
+		(
+			'list' => array('回流', '"share_reflux&search_option_share_id={id}&oper_parent=share"'),
+		),
+	),
+);

+ 159 - 0
app/act/database/share_reflux.php

@@ -0,0 +1,159 @@
+<?php
+
+$table = Dever::config('base')->type;
+
+$type = array
+(
+    1 => '新用户',
+    2 => '老用户',
+    3 => '未知',
+);
+return array
+(
+    # 表名
+    'name' => 'share_reflux',
+    # 显示给用户看的名称
+    'lang' => '分享回流',
+    # 是否显示在后台菜单
+    'order' => 60,
+    'menu' => false,
+    # 数据结构
+    'struct' => array
+    (
+        'id'        => array
+        (
+            'type'      => 'int-11',
+            'name'      => 'ID',
+            'default'   => '',
+            'desc'      => '',
+            'match'     => 'is_numeric',
+            'order'     => 'desc',
+            //'list'        => true,
+        ),
+        
+
+        'source_uid'        => array
+        (
+            'type'      => 'int-11',
+            'name'      => '分享者',
+            'default'   => '',
+            'desc'      => '分享者',
+            'match'     => 'option',
+            'search'    => array
+            (
+                'api' => 'passport/user-all',
+                'col' => 'username',
+                'result' => 'id',
+            ),
+            'list'      => '{source_uid} > 0 ? Dever::load("passport/user-one#username", {source_uid}) : "匿名用户"',
+        ),
+
+
+        'type'      => array
+        (
+            'type'      => 'tinyint-1',
+            'name'      => '分享类别',
+            'default'   => '',
+            'desc'      => '分享类别',
+            'match'     => 'option',
+            'option'    => $table,
+            'list'      => true,
+            'search'    => 'select',
+        ),
+        
+        'data_id'       => array
+        (
+            'type'      => 'int-11',
+            'name'      => '标题',
+            'default'   => '',
+            'desc'      => '标题',
+            'match'     => 'option',
+            'list'      => 'Dever::load("act/lib/manage.load", "{type}", {data_id})',
+        ),
+
+        'uid'       => array
+        (
+            'type'      => 'int-11',
+            'name'      => '回流用户',
+            'default'   => '0',
+            'desc'      => '请选择用户',
+            'match'     => 'is_numeric',
+            //'update'  => 'select',
+            //'search'  => 'select',
+            'search'    => array
+            (
+                'api' => 'passport/user-all',
+                'col' => 'username',
+                'result' => 'id',
+            ),
+            'list'      => '{uid} > 0 ? Dever::load("passport/user-one#username", {uid}) : "匿名用户"',
+        ),
+
+        'user_type'      => array
+        (
+            'type'      => 'tinyint-1',
+            'name'      => '是否新用户',
+            'default'   => '3',
+            'desc'      => '是否新用户',
+            'match'     => 'option',
+            'option'    => $type,
+            'list'      => true,
+            'search'    => 'select',
+        ),
+
+        'gid'       => array
+        (
+            'type'      => 'varchar-80',
+            'name'      => '群组id',
+            'default'   => '',
+            'desc'      => '群组id',
+            'match'     => 'is_string',
+            'update'    => 'text',
+            'search'    => 'fulltext',
+            //'list'        => true,
+        ),
+
+        'share_id'      => array
+        (
+            'type'      => 'int-11',
+            'name'      => '分享id',
+            'default'   => '',
+            'desc'      => '分享id',
+            'match'     => 'option',
+        ),
+        
+        'state'     => array
+        (
+            'type'      => 'tinyint-1',
+            'name'      => '状态',
+            'default'   => '1',
+            'desc'      => '请选择状态',
+            'match'     => 'is_numeric',
+        ),
+        
+        'cdate'     => array
+        (
+            'type'      => 'int-11',
+            'name'      => '录入时间',
+            'match'     => array('is_numeric', time()),
+            'desc'      => '',
+            # 只有insert时才生效
+            'insert'    => true,
+            'search'    => 'date',
+            'list'      => 'date("Y-m-d H:i:s", {cdate})',
+        ),
+    ),
+
+    'manage' => array
+    (
+        'insert' => false,
+        'edit' => false,
+        'delete' => false,
+    ),
+
+    # request 请求接口定义
+    'request' => array
+    (
+        
+    ),
+);

+ 8 - 0
app/act/index.php

@@ -0,0 +1,8 @@
+<?php
+
+define('DEVER_APP_NAME', 'act');
+define('DEVER_APP_LANG', '互动管理');
+define('DEVER_APP_PATH', dirname(__FILE__) . DIRECTORY_SEPARATOR);
+define('DEVER_MANAGE_ORDER', 199);
+define('DEVER_MANAGE_ICON', 'glyphicon glyphicon-tower layui-icon-theme');
+include(DEVER_APP_PATH . '../boot.php');

+ 67 - 0
app/act/lib/Collect.php

@@ -0,0 +1,67 @@
+<?php
+
+namespace Act\Lib;
+
+use Dever;
+
+class Like
+{
+    private $table = 'act/like';
+
+    # 获取当前用户是否点赞
+    public function get($uid, $id, $type)
+    {
+        $where['uid'] = $uid;
+        $where['type'] = $type;
+        $where['data_id'] = $id;
+        $where['state'] = 1;
+        $info = Dever::db($this->table)->one($where);
+
+        if ($info) {
+            return 1;
+        } else {
+            return 2;
+        }
+    }
+
+    # 获取当前用户的点赞列表
+    public function getList($uid)
+    {
+        $where['uid'] = $uid;
+        //$where['type'] = '1,2,3,6';
+        $info = Dever::db($this->table)->getAll($where);
+
+        return $info;
+    }
+
+    # 点赞
+    public function submit($uid, $id, $type)
+    {
+        $where['uid'] = $uid;
+        $where['data_id'] = $id;
+        $where['type'] = $type;
+        $info = Dever::db($this->table)->one($where);
+        if (!$info) {
+            Dever::db($this->table)->insert($where);
+        } else {
+            if ($info['state'] == 1) {
+                Dever::db($this->table)->update(array('where_id' => $info['id'], 'state' => 2));
+            } else {
+                Dever::db($this->table)->update(array('where_id' => $info['id'], 'state' => 1));
+            }
+        }
+
+        # 更新点赞数
+        $where = array();
+        $where['data_id'] = $id;
+        $where['type'] = $type;
+        $where['state'] = 1;
+        $total = Dever::db($this->table)->total($where);
+        $table = Dever::config('base')->type_table[$type];
+        Dever::db($table)->update(array('where_id' => $id, 'num_up' => $total));
+
+        Dever::score($uid, 'submit_like', '点赞');
+
+        return true;
+    }
+}

+ 90 - 0
app/act/lib/Comment.php

@@ -0,0 +1,90 @@
+<?php
+
+namespace Act\Lib;
+
+use Dever;
+
+class Comment
+{
+    private function table($type) {
+        if ($type == 3) {
+            $table = 'act/live_comment';
+        } else {
+            $table = 'act/comment';
+        }
+        return $table;
+    }
+    # 获取评论列表
+    public function get($id, $type, $uid = false)
+    {
+        $where['type'] = $type;
+        $where['data_id'] = $id;
+        $table = $this->table($type);
+        $data = Dever::db($table)->getAll($where);
+
+        if ($data) {
+            foreach ($data as $k => $v) {
+                $user = Dever::load('passport/api')->info($v['uid']);
+                $data[$k]['time'] = Dever::mdate($v['cdate'], 2);
+                $data[$k]['username'] = $user['username'];
+                $data[$k]['avatar'] = $user['avatar'];
+                $data[$k]['cdate_time'] = date('Y-m-d H:i:s', $v['cdate']);
+
+                # 检查是否点赞
+                if ($uid > 0) {
+                    $data[$k]['up'] = Dever::load('act/lib/like')->get($uid, $v['id'], 11);
+                } else {
+                    $data[$k]['up'] = 2;
+                }
+            }
+        }
+        return $data;
+    }
+
+    # 获取当前用户的评论列表
+    public function getList($uid)
+    {
+        $where['uid'] = $uid;
+        $where['type'] = '1,2,3,6';
+        $info = Dever::db('act/comment')->getAll($where);
+
+        return $info;
+    }
+
+    # 发表评论
+    public function submit($uid, $id, $type, $content)
+    {
+        $where['uid'] = $uid;
+        $where['data_id'] = $id;
+        $where['type'] = $type;
+        $where['content'] = Dever::emoji($content);
+        $table = $this->table($type);
+        $info = Dever::db($table)->one($where);
+        if (!$info) {
+            $data_table = Dever::config('base')->type_table[$type];
+            $data = Dever::db($data_table)->one($id);
+            if (isset($data['name']) && $data['name']) {
+                $where['data_name'] = $data['name'];
+            }
+            
+            Dever::db($table)->insert($where);
+        }
+        Dever::score($uid, 'submit_commit', '发表评论');
+
+        # 更新评论数
+        if ($type == 5) {
+            return true;
+        }
+        $where = array();
+        $where['data_id'] = $id;
+        $where['type'] = $type;
+        $where['state'] = 1;
+        $total = Dever::db($table)->total($where);
+        $table = Dever::config('base')->type_table[$type];
+        Dever::db($table)->update(array('where_id' => $id, 'num_comment' => $total));
+
+        
+
+        return true;
+    }
+}

+ 38 - 0
app/act/lib/Cron.php

@@ -0,0 +1,38 @@
+<?php
+#计划任务
+namespace Act\Lib;
+
+use Dever;
+
+class Cron
+{
+	# 清理一小时前的待支付数据
+	public function drop_order_api()
+	{
+		$where['where_time'] = time() - 3600;
+		Dever::db('act/order')->drop($where);
+		return 'ok';
+	}
+
+	# 将七天前的数据进行迁移 废弃
+	public function mv_order()
+	{
+		return 'error';
+		$where['where_time'] = time() - (86400 * 7);
+		$data = Dever::db('act/order')->getAllByDate($where);
+		if ($data) {
+			$db = Dever::db('act/order_bak');
+			foreach ($data as $k => $v) {
+				$info = $db->one(array('order_id' => $v['order_id']));
+				if (!$info) {
+					$id = $v['id'];
+					unset($v['id']);
+					$db->insert($v);
+					Dever::db('act/order')->delete($id);
+				}
+			}
+		}
+
+		return 'ok';
+	}
+}

+ 54 - 0
app/act/lib/Form.php

@@ -0,0 +1,54 @@
+<?php
+
+namespace Act\Lib;
+
+use Dever;
+
+class Form
+{
+    # 获取当前可用的formid
+    public function get($uid, $type = 1, $system = 1)
+    {
+        $where['uid'] = $uid;
+        if ($type > 0) {
+        	$where['type'] = $type;
+        	if ($type == 2) {
+        		# 支付表单有3次机会
+        		$where['num'] = 3;
+        	} else {
+        		# 普通表单只有一次机会
+        		$where['num'] = 1;
+        	}
+        }
+        $where['cate_id'] = $system;
+        $info = Dever::db('act/form_id')->getAll($where);
+
+        if ($info) {
+            $key = array_rand($info);
+            if (isset($info[$key])) {
+            	$update['where_id'] = $info[$key]['id'];
+            	$update['num'] = $info[$key]['num'] + 1;
+            	Dever::db('act/form_id')->update($update);
+            	return $info[$key]['form_id'];
+            }
+        } else {
+            return false;
+        }
+    }
+
+    # 提交formid
+    public function submit($uid, $id, $type = 1, $system = 1)
+    {
+        $where['uid'] = $uid;
+        $where['type'] = $type;
+        $where['cate_id'] = $system;
+        $where['form_id'] = $id;
+        $info = Dever::db('act/form_id')->one($where);
+        if (!$info) {
+        	$where['num'] = 0;
+            Dever::db('act/form_id')->insert($where);
+        }
+
+        return true;
+    }
+}

+ 69 - 0
app/act/lib/Like.php

@@ -0,0 +1,69 @@
+<?php
+
+namespace Act\Lib;
+
+use Dever;
+
+class Like
+{
+    private $table = 'act/like';
+
+    # 获取当前用户是否点赞
+    public function get($uid, $id, $type)
+    {
+        $where['uid'] = $uid;
+        $where['type'] = $type;
+        $where['data_id'] = $id;
+        $where['state'] = 1;
+        $info = Dever::db($this->table)->one($where);
+
+        if ($info) {
+            return 1;
+        } else {
+            return 2;
+        }
+    }
+
+    # 获取当前用户的点赞列表
+    public function getList($uid)
+    {
+        $where['uid'] = $uid;
+        //$where['type'] = '1,2,3,6';
+        $info = Dever::db($this->table)->getAll($where);
+
+        return $info;
+    }
+
+    # 点赞
+    public function submit($uid, $id, $type)
+    {
+        $where['uid'] = $uid;
+        $where['data_id'] = $id;
+        $where['type'] = $type;
+        $info = Dever::db($this->table)->one($where);
+        if (!$info) {
+            Dever::db($this->table)->insert($where);
+        } else {
+            if ($info['state'] == 1) {
+                Dever::db($this->table)->update(array('where_id' => $info['id'], 'state' => 2));
+            } else {
+                Dever::db($this->table)->update(array('where_id' => $info['id'], 'state' => 1));
+            }
+        }
+
+        # 更新点赞数
+        
+        if (isset(Dever::config('base')->type_table[$type])) {
+            $where = array();
+            $where['data_id'] = $id;
+            $where['type'] = $type;
+            $where['state'] = 1;
+            $total = Dever::db($this->table)->total($where);
+            $table = Dever::config('base')->type_table[$type];
+            Dever::db($table)->update(array('where_id' => $id, 'num_up' => $total));
+
+            Dever::score($uid, 'submit_' . $this->table, $this->name);
+        }
+        return true;
+    }
+}

+ 47 - 0
app/act/lib/Manage.php

@@ -0,0 +1,47 @@
+<?php
+
+namespace Act\Lib;
+
+use Dever;
+
+class Manage
+{
+    //{source_id} > 0 ? ("{name}" ? "{name}" : Dever::load("sad/supply-one#name", {source_id})) : "{name}"
+    public function load($source_table, $id, $mid = false)
+    {
+        $table = Dever::config('base')->type_table[$source_table];
+        $data = Dever::db($table)->one($id);
+
+        if ($data && isset($data['name']) && $data['name']) {
+            return $data['name'] . '('.$mid.')';
+        }
+        if ($data && isset($data['content']) && $data['content']) {
+            return $data['content'] . '('.$mid.')';
+        }
+        return '未知' . '('.$mid.')';
+    }
+
+    # 根据data_id获取data_name
+    public function getName_api()
+    {
+        $data = Dever::db('act/comment')->state();
+        if ($data) {
+            foreach ($data as $k => $v) {
+                $name = $this->load($v['type'], $v['data_id']);
+                if ($name && $name != $v['data_name']) {
+                    Dever::db('act/comment')->update(array('where_id' => $v['id'], 'data_name' => $name));
+                }
+            }
+        }
+
+        $data = Dever::db('act/live_comment')->state();
+        if ($data) {
+            foreach ($data as $k => $v) {
+                $name = $this->load($v['type'], $v['data_id']);
+                if ($name && $name != $v['data_name']) {
+                    Dever::db('act/live_comment')->update(array('where_id' => $v['id'], 'data_name' => $name));
+                }
+            }
+        }
+    }
+}

+ 163 - 0
app/act/lib/Share.php

@@ -0,0 +1,163 @@
+<?php
+
+namespace Act\Lib;
+
+use Dever;
+
+class Share
+{
+    # 获取某个用户在某个图文的分享回流数
+    public function getRefluxNum($uid, $id, $type)
+    {
+        $where['source_uid'] = $uid;
+        $where['type'] = $type;
+        $where['data_id'] = $id;
+        return Dever::db('act/share_reflux')->total($where);
+    }
+
+    # 提交分享
+    public function submit($uid, $id, $type)
+    {
+        $where['uid'] = $uid;
+        $where['data_id'] = $id;
+        $where['type'] = $type;
+        $info = Dever::db('act/share')->one($where);
+        if (!$info) {
+            $where['num'] = 1;
+            Dever::db('act/share')->insert($where);
+        } else {
+            $where['num'] = $info['num'] + 1;
+            $where['where_id'] = $info['id'];
+            Dever::db('act/share')->update($where);
+        }
+
+        Dever::score($uid, 'share_friend', '邀请好友');
+
+        return true;
+    }
+
+    # 回流
+    public function submit_reflux($source_uid, $uid, $id, $type, $system = 1)
+    {
+        if ($source_uid == $uid) {
+            return false;
+        }
+        $where['uid'] = $source_uid;
+        //$where['uid'] = $uid;
+        $where['data_id'] = $id;
+        $where['type'] = $type;
+
+        $share = Dever::db('act/share')->one($where);
+        if ($share) {
+            $where = array();
+            $user = Dever::db('passport/user')->one($uid);
+
+            $where['user_type'] = 3;
+
+            //if ($user['temp'] == 2 || $user['bind'] == 1) {
+            if ($user) {
+                # 必须是已经绑定手机号或者授权用户才可以增加积分
+
+                # 新用户 增加邀请关系
+                if (Dever::project('invite')) {
+                    $parent = Dever::load('invite/api')->getParent($uid, $level = 1);
+                    if (!$parent) {
+                        # 新用户
+                        $where['user_type'] = 1;
+                        Dever::load('invite/api')->setRelation($uid, $source_uid);
+                    } else {
+                        # 老用户
+                        $where['user_type'] = 2;
+                        
+                    }
+                }
+                if ($type <= 4) {
+                    $method = '';
+                    $name = Dever::config('base')->type[$type];
+                    if ($type == 1) {
+                        $method = 'article';
+                    }
+                    if ($type == 2) {
+                        $method = 'vod';
+                    }
+                    if ($type == 3) {
+                        $method = 'live';
+                    }
+                    if ($type == 4) {
+                        $method = 'journal';
+                    }
+
+                    # 增加积分
+                    if ($where['user_type'] == 1) {
+                        $score = 0;
+                        if ($type == 4) {
+                            $active = Dever::db('journal/active')->one(array('id' => $id));
+                            /*
+                            if ($active && $active['status'] == 1 && time() <= $active['end']) {
+                                $score = $active['invite_score'];
+                            }
+                            */
+                            if ($active) {
+                                $score = $active['invite_score'];
+                            }
+                        }
+                        Dever::score($source_uid, 'share_'.$method.'_new_reflux', '通过'.$name.'邀请到新用户', 'act/lib/score.submit?method=share&type='.$type.'&id=' . $id, $score);
+                        # 插入到邀请列表里
+                        Dever::load('act/lib/invite')->submit($source_uid, $uid, $id, $type);
+
+                        # 小刊订阅
+                        if ($type == 4) {
+                            if (isset($active) && $active) {
+                                $num = $active['invite_num'];
+
+                                $invite_num = Dever::load('act/lib/invite')->getTotal($source_uid, $id, $type);
+
+                                if ($invite_num >= $num) {
+
+                                    # 发消息
+                                    if ($invite_num == $num) {
+                                        $journal = Dever::db('journal/info')->one($id);
+                                        if (Dever::project('message')) {
+                                            Dever::load('message/lib/data')->push(-1, $source_uid, '活动提醒', '邀请人数已达'.$invite_num.'人,您获得了 '.$journal['name'].' 的阅读资格!', 11, $journal['cate_id'], 1, Dever::load('act/lib/note')->push(4, $journal['id'], $journal['name']));
+                                        }
+
+                                        # 发送模板消息 这里没有formid 暂时先不发送模板消息,后续应该通过前端收集formid就好了
+
+                                        # 发短信
+                                        /*
+                                        if (isset($user['mobile']) && $user['mobile'] && Dever::project('sms') && $system == 1) {
+                                            $send = array();
+                                            $send['num'] = $invite_num;
+                                            $send['name'] = $journal['name'];
+                                            Dever::load('sms/api.send', 'share_journal', $user['mobile'], $send);
+                                        }
+                                        */
+                                    }
+                                    
+                                    Dever::load('act/lib/subscribe')->submit($source_uid, $id, 3);
+                                }
+                            }
+                        }
+                        
+                    } elseif ($where['user_type'] == 2) {
+                        Dever::score($source_uid, 'share_'.$method.'_reflux', '通过'.$name.'邀请到老用户');
+                    }
+                }
+            }
+
+            
+            $where['source_uid'] = $source_uid;
+            $where['uid'] = $uid;
+            $where['data_id'] = $id;
+            $where['type'] = $type;
+            $where['share_id'] = $share['id'];
+            $info = Dever::db('act/share_reflux')->one($where);
+            if (!$info) {
+                Dever::db('act/share_reflux')->insert($where);
+                return true;
+            }
+        }
+
+        return false;
+    }
+}

+ 2 - 0
app/boot.php

@@ -0,0 +1,2 @@
+<?php
+include(dirname(__FILE__) . DIRECTORY_SEPARATOR . '../boot.php');

+ 161 - 0
app/content/database/cate.php

@@ -0,0 +1,161 @@
+<?php
+
+return array
+(
+	# 表名
+	'name' => 'cate',
+	# 显示给用户看的名称
+	'lang' => '栏目设置',
+	# 后台菜单排序
+	'order' => 9,
+	# 数据结构
+	'struct' => array
+	(
+		'id' 		=> array
+		(
+			'type' 		=> 'int-11',
+			'name' 		=> 'ID',
+			'default' 	=> '',
+			'desc' 		=> '',
+			'match' 	=> 'is_numeric',
+			'search'	=> 'order',
+			'list'		=> true,
+			'order'		=> 'desc',
+		),
+		
+		'name'		=> array
+		(
+			'type' 		=> 'varchar-32',
+			'name' 		=> '栏目名称',
+			'default' 	=> '',
+			'desc' 		=> '请输入名称',
+			'match' 	=> 'is_string',
+			'update'	=> 'text',
+			'search'	=> 'fulltext',
+			'list'		=> true,
+		),
+
+        'desc'		=> array
+		(
+			'type' 		=> 'varchar-500',
+			'name' 		=> '摘要-摘要,同时也用于分享内容',
+			'default' 	=> '',
+			'desc' 		=> '摘要',
+			'match' 	=> 'is_string',
+			'update'	=> 'textarea',
+		),
+
+        'pic'		=> array
+		(
+			'type' 		=> 'varchar-150',
+			'name' 		=> '图标',
+			'default' 	=> '',
+			'desc' 		=> '图标',
+			'match' 	=> 'is_string',
+			'update'	=> 'image',
+			'key' 		=> '1',
+			'place'		=> '150',
+			//直接上传到云端
+			//'upload'	=> 'qiniu',
+			//上传大数据
+			//'large' 	=> true,
+		),
+
+		'pic_cover'		=> array
+		(
+			'type' 		=> 'varchar-150',
+			'name' 		=> '封面',
+			'default' 	=> '',
+			'desc' 		=> '封面',
+			'match' 	=> 'is_string',
+			'update'	=> 'image',
+			'key' 		=> '1',
+			'place'		=> '150',
+			//直接上传到云端
+			//'upload'	=> 'qiniu',
+			//上传大数据
+			//'large' 	=> true,
+		),
+		
+		'reorder'		=> array
+		(
+			'type' 		=> 'int-11',
+			'name' 		=> '排序(数值越大越靠前)',
+			'default' 	=> '1',
+			'desc' 		=> '请输入排序',
+			'match' 	=> 'option',
+			'update'	=> 'text',
+			'search'	=> 'order',
+			'list'		=> true,
+			'order'		=> 'desc',
+			'edit'		=> true,
+		),
+
+		'state'		=> array
+		(
+			'type' 		=> 'tinyint-1',
+			'name' 		=> '状态',
+			'default' 	=> '1',
+			'desc' 		=> '请选择状态',
+			'match' 	=> 'is_numeric',
+		),
+		
+		'cdate'		=> array
+		(
+			'type' 		=> 'int-11',
+			'name' 		=> '录入时间',
+			'match' 	=> array('is_numeric', time()),
+			'desc' 		=> '',
+			# 只有insert时才生效
+			'insert'	=> true,
+			'list'		=> 'date("Y-m-d H:i:s", {cdate})',
+		),
+	),
+
+	'manage' => array
+	(
+		//'insert' => false,
+		//'edit' => false,
+
+		/*
+		# 自定义快捷新增和编辑
+		'button' => array
+		(
+			'新增' => array('fast'),
+		),
+		# 快捷更新
+		'list_button' => array
+		(
+			'edit' => array('编辑'),
+		),
+		*/
+	),
+
+	'request' => array
+	(
+		'state' => array
+		(
+			# 匹配的正则或函数 选填项
+			'option' => array
+			(
+				'state' => 1,
+			),
+			'type' => 'all',
+			'order' => array('reorder' => 'desc','id' => 'desc'),
+			'col' => '*',
+		),
+		'getAll' => array
+		(
+			# 匹配的正则或函数 选填项
+			'option' => array
+			(
+				'state' => 1,
+				# 小程序去掉视频栏目
+				'id_no' => array('yes-id', '!='),
+			),
+			'type' => 'all',
+			'order' => array('reorder' => 'desc','id' => 'desc'),
+			'col' => '*',
+		),
+	),
+);

+ 336 - 0
app/content/database/pic.php

@@ -0,0 +1,336 @@
+<?php
+
+$status = Dever::config('base')->status;
+
+# 每页的数据量
+$page = 15;
+
+$cate = function()
+{
+	$array = array();
+	$info = Dever::db('content/cate')->state();
+	if($info)
+	{
+		$array += $info;
+	}
+	return $array;
+};
+
+# 常用的col
+$col = 'id,cate_id,name,pic,num_add_view+num_view as num_view,`desc`';
+
+return array
+(
+	# 表名
+	'name' => 'pic',
+	# 显示给用户看的名称
+	'lang' => '图片管理',
+	'order' => 100,
+
+	# 数据结构
+	'struct' => array
+	(
+		'id' 		=> array
+		(
+			'type' 		=> 'int-11',
+			'name' 		=> 'ID',
+			'default' 	=> '',
+			'desc' 		=> '',
+			'match' 	=> 'is_numeric',
+			'list'		=> true,
+		),
+		
+		'name'		=> array
+		(
+			'type' 		=> 'varchar-80',
+			'name' 		=> '标题-标题,同时也用于分享标题',
+			'default' 	=> '',
+			'desc' 		=> '标题',
+			'match' 	=> 'is_string',
+			'update'	=> 'text',
+			'list'		=> true,
+			'search'	=> 'fulltext',
+			//增加预览
+			'preview'	=> true,
+		),
+
+		'desc'		=> array
+		(
+			'type' 		=> 'varchar-500',
+			'name' 		=> '摘要-摘要,同时也用于分享内容',
+			'default' 	=> '',
+			'desc' 		=> '摘要',
+			'match' 	=> 'is_string',
+			'update'	=> 'textarea',
+		),
+		
+		'cate_id'		=> array
+		(
+			'type' 		=> 'int-11',
+			'name' 		=> '所属栏目',
+			'default' 	=> '1',
+			'desc' 		=> '所属栏目',
+			'match' 	=> 'is_numeric',
+			'update'	=> 'select',
+			'option'	=> $cate,
+			'search'	=> 'select',
+			'list'		=> 'Dever::load("content/cate-one#name", {cate_id})',
+		),
+
+  		'pic'		=> array
+		(
+			'type' 		=> 'text-255',
+			'name' 		=> '图片',
+			'default' 	=> '',
+			'desc' 		=> '图片',
+			'match' 	=> 'is_string',
+			'update'	=> 'images',
+			'key' 		=> '1',
+			'place'		=> '150',
+			//直接上传到云端
+			//'upload'	=> 'qiniu',
+			//上传大数据
+			//'large' 	=> true,
+		),
+
+		'num_add_view'		=> array
+		(
+			'type' 		=> 'int-11',
+			'name' 		=> '浏览量基数',
+			'default' 	=> '0',
+			'desc' 		=> '浏览量基数',
+			'match' 	=> 'option',
+			//'update'	=> 'text',
+		),
+
+		'num_view'		=> array
+		(
+			'type' 		=> 'int-11',
+			'name' 		=> '浏览量',
+			'default' 	=> '0',
+			'desc' 		=> '请填写浏览量',
+			'match' 	=> 'option',
+			'search'	=> 'order',
+			'list'		=> '{num_view}+{num_add_view}',
+		),
+
+		'num_up'		=> array
+		(
+			'type' 		=> 'int-11',
+			'name' 		=> '点赞数',
+			'default' 	=> '0',
+			'desc' 		=> '点赞数',
+			'match' 	=> 'option',
+			//'search'	=> 'order',
+			//'list'		=> true,
+		),
+
+		'num_comment'		=> array
+		(
+			'type' 		=> 'int-11',
+			'name' 		=> '评论数',
+			'default' 	=> '0',
+			'desc' 		=> '评论数',
+			'match' 	=> 'option',
+			//'search'	=> 'order',
+			//'list'		=> true,
+		),
+
+		'num_collect'		=> array
+		(
+			'type' 		=> 'int-11',
+			'name' 		=> '收藏数',
+			'default' 	=> '0',
+			'desc' 		=> '收藏数',
+			'match' 	=> 'option',
+			//'search'	=> 'order',
+			//'list'		=> true,
+		),
+
+		'pdate'		=> array
+		(
+			'type' 		=> 'int-11',
+			'name' 		=> '发布时间',
+			'match' 	=> array('is_numeric', time()),
+			'default'	=> '',
+			'desc' 		=> '',
+			'update'	=> 'date',
+			'callback'	=> 'maketime',
+			'insert'	=> true,
+			//'list'		=> 'date("Y-m-d H:i:s", {pdate})',
+			'auth'		=> '"{pdate}" > 0',
+		),
+
+		'reorder'		=> array
+		(
+			'type' 		=> 'int-11',
+			'name' 		=> '排序(数值越大越靠前)',
+			'default' 	=> '1',
+			'desc' 		=> '请输入排序',
+			'match' 	=> 'option',
+			'update'	=> 'text',
+			'search'	=> 'order',
+			'list'		=> true,
+			'order'		=> 'desc',
+			'edit'		=> true,
+		),
+
+		'udate'		=> array
+		(
+			'type' 		=> 'int-11',
+			'name' 		=> '更新时间',
+			'match' 	=> array('is_numeric', time()),
+			'desc' 		=> '',
+		),
+
+		'status'		=> array
+		(
+			'type' 		=> 'int-11',
+			'name' 		=> '发布状态',
+			'default' 	=> '2',
+			'desc' 		=> '发布状态',
+			'match' 	=> 'is_numeric',
+			//'update'	=> 'select',
+			'option'	=> $status,
+			'search'	=> 'select',
+			'list'		=> true,
+			'edit'		=> true,
+		),
+
+		'state'		=> array
+		(
+			'type' 		=> 'tinyint-1',
+			'name' 		=> '状态',
+			'default' 	=> '1',
+			'desc' 		=> '请选择状态',
+			'match' 	=> 'is_numeric',
+		),
+
+		'cdate'		=> array
+		(
+			'type' 		=> 'int-11',
+			'name' 		=> '录入时间',
+			'match' 	=> array('is_numeric', time()),
+			'desc' 		=> '',
+			# 只有insert时才生效
+			'insert'	=> true,
+		),
+	),
+
+	# 索引
+	'index' => array
+	(
+		'version' => 1,
+		
+		1 => array
+		(
+			'i1' => 'cate_id,reorder',
+		)
+	),
+	
+	# 管理功能
+	'manage' => array
+	(
+		//'insert' => false,
+		# 列表
+		'list_button' => array
+		(
+			'edit' => array('预览', str_replace('https://api.', 'http://www.', Dever::url('main/preview.get?type=1'))),
+		),
+	),
+
+	# request 请求接口定义
+	'request' => array
+	(
+		'search' => array
+		(
+			# 匹配的正则或函数 选填项
+			'option' => array
+			(
+				'ids' => array('yes-id', 'in'),
+				'cate_id' => 'yes',
+				'name' => array('yes', 'like'),
+				'id' => 'yes',
+				'state' => 1,
+			),
+			'type' => 'all',
+			'order' => array('reorder' => 'desc', 'pdate' => 'desc'),
+			'limit' => '0,1000',
+			'col' => 'name as name, id, id as value, "" as selected, "" as disabled|id',
+		),
+
+		'getAll' => array
+		(
+			# 匹配的正则或函数 选填项
+			'option' => array
+			(
+				'cate_id' => 'yes',
+				'cate_ids' => array('yes-cate_id', 'in'),
+				'id' => 'yes',
+				'status' => 2,
+				'state' => 1,
+			),
+			'type' => 'all',
+			'order' => array('reorder' => 'desc','pdate' => 'desc'),
+			'page' => array($page, 'list'),
+			'col' => $col,
+		),
+
+		'getList' => array
+		(
+			# 匹配的正则或函数 选填项
+			'option' => array
+			(
+				'cate_id' => 'yes',
+				'status' => 2,
+				'state' => 1,
+			),
+			'type' => 'all',
+			'order' => array('reorder' => 'desc','pdate' => 'desc'),
+			'limit' => '0,10',
+			'col' => $col,
+		),
+
+		'getRelation' => array
+		(
+			# 匹配的正则或函数 选填项
+			'option' => array
+			(
+				'cate_id' => 'yes',
+				'cate_ids' => array('yes-cate_id', 'in'),
+				'noid' => array('yes-id', '!='),
+				'status' => 2,
+				'state' => 1,
+			),
+			'type' => 'all',
+			'order' => array('reorder' => 'desc','pdate' => 'desc'),
+			'limit' => '0,4',
+			'col' => $col,
+		),
+
+		'getOne' => array
+		(
+			# 匹配的正则或函数 选填项
+			'where' => array
+			(
+				'id' => 'yes',
+			),
+			'type' => 'one',
+			'col' => $col,
+		),
+		
+		# 更新浏览量
+		'addView' => array
+		(
+			'type' => 'update',
+			'where' => array
+			(
+				'id' => 'yes',
+			),
+			'set' => array
+			(
+				'num_view' => array('1', '+='),
+			),
+		),
+	),
+);

+ 8 - 0
app/content/index.php

@@ -0,0 +1,8 @@
+<?php
+
+define('DEVER_APP_NAME', 'content');
+define('DEVER_APP_LANG', '内容管理');
+define('DEVER_APP_PATH', dirname(__FILE__) . DIRECTORY_SEPARATOR);
+define('DEVER_MANAGE_ORDER', 200);
+define('DEVER_MANAGE_ICON', 'glyphicon glyphicon-tower layui-icon-tabs');
+include(DEVER_APP_PATH . '../boot.php');

+ 60 - 0
app/content/lib/Manage.php

@@ -0,0 +1,60 @@
+<?php
+
+namespace Content\Lib;
+
+use Dever;
+
+class Manage
+{
+    private function search($table = 'content/pic')
+    {
+        $keyword = Dever::input('keyword');
+
+        $yes = Dever::input('yes');
+
+        $where = array();
+
+        $cate = Dever::input('cate');
+        if ($cate) {
+            $where['cate_id'] = $cate;
+        }
+
+        if ($yes) {
+            $yes = Dever::db($table)->search(array('ids' => $yes));
+        }
+        if (!$keyword) {
+            $where['limit'] = '0,50';
+            $data = Dever::db($table)->search($where);
+        } else {
+            $where['name'] = $keyword;
+            $data = Dever::db($table)->search($where);
+        }
+
+        $result = array();
+        if ($yes) {
+            foreach ($yes as $k => $v) {
+                if (isset($data[$k])) {
+                    unset($data[$k]);
+                }
+                $yes[$k]['selected'] = 'selected';
+            }
+            $data = $yes + $data;
+
+            $data = array_merge($data, array());
+        } else {
+            $data = array_merge($data, array());
+        }
+
+        if (!$data) {
+            Dever::alert('暂无数据');
+        }
+
+        return $data;
+    }
+
+    # 搜索图片
+    public function search_pic_api()
+    {
+        return $this->search('content/pic');
+    }
+}

+ 36 - 0
app/content/lib/Pic.php

@@ -0,0 +1,36 @@
+<?php
+
+namespace Content\Lib;
+
+use Dever;
+
+class Pic
+{
+    # 根据文章id 获取图片信息
+    public function get($data, $uid = false)
+    {
+        if (!is_array($data)) {
+            $data = Dever::db('content/pic')->getOne($data);
+        }
+        
+        if (!$data) {
+            Dever::alert('错误的图片信息');
+        }
+
+        return $data;
+    }
+
+    # 获取相关推荐
+    public function getRelation($info)
+    {
+        $where['noid'] = $info['id'];
+        $where['cate_id'] = $info['cate_id'];
+        return Dever::db('content/pic')->getRelation($where);
+    }
+
+    # 增加浏览量
+    public function addView($id)
+    {
+        Dever::db('content/pic')->addView($id);
+    }
+}

+ 8 - 0
boot.php

@@ -0,0 +1,8 @@
+<?php 
+define('DEVER_PROJECT', 'sharepic');
+define('DEVER_PROJECT_PATH', dirname(__FILE__) . DIRECTORY_SEPARATOR);
+if (defined('DEVER_PACKAGE')) {
+	include('dever_package/'.DEVER_PACKAGE.'/index.php');
+} else {
+	include('dever/boot.php');
+}

+ 8 - 0
common.php

@@ -0,0 +1,8 @@
+<?php
+
+
+function getInfoAttr()
+{
+    $category = Dever::input('search_option_category', Dever::input('update_category'));
+    return Dever::load('attr/api')->getInfoAttr($category);
+}

+ 84 - 0
config/base.php

@@ -0,0 +1,84 @@
+<?php
+$config['base'] = array
+(
+	'name' => '晒图',
+	'version' => '1.0.0 Beta',
+
+    # 设置分类组件中的栏目下的分类为系统使用的主分类
+    'category' => 1,
+
+    # 设置类型
+    'type' => array
+    (
+        1 => '图片',
+    ),
+
+    # 功能类型
+    'type_table' => array
+    (
+        1 => 'content/pic',
+    ),
+
+    # 审核配置
+    'audit' => array
+    (
+        1 => '未审核',
+        2 => '已审核',
+        3 => '审核未通过',
+    ),
+
+    # 需求状态
+    'status' => array
+    (
+        1 => '新发布',
+        2 => '已结束',
+        3 => '已成交',
+        4 => '已取消',
+    ),
+
+    # 小程序配置
+    'applet' => array
+    (
+        'project' => 'passport/system',
+        'url' => 'https://api.weixin.qq.com/sns/jscode2session',
+    ),
+
+    # 站点使用邮箱还是手机作为主账号
+    'account' => 'mobile',
+);
+
+
+# 前台通用配置
+$config['template'] = array
+(
+    # 静态页面目录
+    'assets' => array('pc', 'mobile'),
+
+    # 模板编译器目录
+    'template' => 'pc',
+
+    # 模板html文件的所在目录,默认为html
+    'path' => '',
+
+    'replace' => array
+    (
+        'css' => 'css/',
+        'js' => 'js/',
+        'images' => 'images/',
+        'script' => 'script/',
+        'static' => './static/',
+    ),
+
+    # 编译器与模板对应关系目录,定义之后,代表可以完全不改动前端的代码,可以为空,为空则一一对应,参考manage
+    'relation' => array
+    (
+        # 首页启动屏幕
+        'home' => 'index',
+        'list_text' => 'list1',
+        'page' => 'intro',
+        'view' => 'article',
+        'magazine' => 'magzine',
+    ),
+    
+);
+return $config;

+ 119 - 0
config/env/localhost/default.php

@@ -0,0 +1,119 @@
+<?php
+
+# 验证dc是否存在,一般在share目录下
+$dc = array();
+$dc_file = '/share/dc/config.php';
+if (is_file($dc_file)) {
+    $dc = include($dc_file);
+}
+
+if (isset($dc['data'])) {
+    $config['base']['data'] = $dc['data'];
+}
+
+$create = -1;
+if (isset($dc['mysql']['create'])) {
+    $create = -1;
+}
+$ip = isset($dc['host']) ? $dc['host'] : '192.168.33.10';
+
+$local = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $ip;
+
+# 数据库配置
+$config['database'] = array
+(
+    'create' => $create,
+	# 默认数据库配置
+	'default' => array
+	(
+		'type' => 'pdo',
+		'host' => array
+		(
+			'read' => isset($dc['mysql']) ? $dc['mysql']['host'] : 'web-mysql:3306',
+			'update' => isset($dc['mysql']) ? $dc['mysql']['host'] : 'web-mysql:3306',
+            'create' => isset($dc['mysql']) ? $dc['mysql']['host_create'] : 'web-mysql:3306',
+		),
+		'database' => 'sharepic',
+		'username' => isset($dc['mysql']) ? $dc['mysql']['username'] : 'root',
+		'password' => isset($dc['mysql']) ? $dc['mysql']['password'] : '123456',
+		'charset' => 'utf8mb4',
+	),
+);
+
+# 缓存配置
+$config['cache'] = array
+(
+    # 启用mysql数据库缓存,这个缓存是根据表名自动生成,dever::load形式和service的all、one形式均自动支持,无需手动添加
+    'mysql' => 0,
+    # 启用页面缓存 会根据当前的url来生成缓存,相当于页面静态化。
+    'html' => 0,
+    # 启用数据级别缓存 这个缓存是程序员自定义的:Dever::cache('name', 'value', 3600);
+    'data' => 0,
+    # 启用load加载器缓存,一般不加载
+    'load' => 0,
+    # 启用load加载器的远程加载缓存
+    'curl' => 0,
+    # 启用路由缓存
+    'route' => 0,
+
+    # 缓存精细控制,根据uri来控制,0则无需缓存
+    'routeKey' => array
+    (
+        
+    ),
+
+    # 哪些路由中的参数不参与生成缓存的key
+    'routeNoParam' => array
+    (
+        'uid' => array
+        (
+            
+        ),
+    ),
+    
+    # 缓存清理的参数名,请通过shell=clearcache执行
+    'shell' => 'clearcache',
+
+    # 是否启用key失效时间记录,启用之后,将会记录每个key的失效时间
+    'expire' => true,
+
+    # 缓存类型
+    'type' => 'redis',//memcache、redis
+
+    # 缓存保存方式,支持多个数据源、多台缓存服务器
+    'store' => array
+    (
+        array
+        (
+            'host' => 'server-redis',
+            'port' => '6379',
+            'weight' => 100,
+            'password' => 'dm_redis_123',
+        ),
+    ),
+);
+
+$config['debug'] = array
+(
+	'log' => false
+);
+
+/*
+if (DEVER_APP_NAME == 'source') {
+    $config['debug']['log'] = array('type' => 'file'); 
+}
+*/
+
+
+$host = 'http://'.$local . '/';
+
+$upload = $host . 'sharepic/package/';
+$uploadcdn = $host . 'sharepic/data/';
+
+$config['host'] = array
+(
+    'upload'=> $upload . 'upload/?save',
+    'uploadRes'     => isset($dc['res']) && $dc['res'] ? $dc['res'] : $uploadcdn . 'upload/',
+);
+
+return $config;

+ 6 - 0
config/route.php

@@ -0,0 +1,6 @@
+<?php
+return array
+(
+	'home' => 'home',
+	'c=v(.*?)_(.*?)' => 'view.get?type=$1&id=$2',
+);

+ 1 - 0
data/readme

@@ -0,0 +1 @@
+dever create

+ 189 - 0
main/assets/pc/article.html

@@ -0,0 +1,189 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+	<meta charset="utf-8">
+	<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
+	<meta content="yes" name="apple-mobile-web-app-capable">
+	<meta content="black" name="apple-mobile-web-app-status-bar-style">
+	<meta content="telephone=no" name="format-detection">
+
+	<title>文章</title>
+
+	<meta name="Keywords" content="" />
+	<meta name="Description" content="" />
+<link href="css/global.css?v=38e4caa9" rel="stylesheet"><link href="css/article.css?v=cfd58660" rel="stylesheet"></head>
+
+<body>
+	<header class="bt10">
+		<div class="wrapper">
+			<div class="clearfix">
+				<a class="logo"><img src="images/logo.png?v=715222a7" alt=""></a>
+				<ul class="menu">
+					<li><a href="">登录</a></li>
+					<li><a href="">注册</a></li>
+					<li><a href="">企业邮箱登录</a></li>
+				</ul>
+			</div>
+			<ul class="tnav">
+				<li><a href="">首页</a></li>
+				<li><a href="">时装</a></li>
+				<li><a href="">美容</a></li>
+				<li><a href="">娱乐</a></li>
+				<li><a href="">视频</a></li>
+				<li><a href="">秀场</a></li>
+				<li class=""><a href="">电子杂志</a></li>
+				<li><a href="">报刊订阅</a></li>
+			</ul>
+		</div>
+	</header>
+
+	<div class="breadcrumb">
+		<div>
+			<div class="wrapper">
+				<a href="">首页</a> > <a href="">时装</a> > <span>先别着急买春装 看完2019秋冬趋势 趁打折买他们</span>
+			</div>
+		</div>
+		<div>
+			<div class="wrapper">
+				<p><span></span></p>
+			</div>
+		</div>
+	</div>
+	<div class="article wrapper">
+		<div class="article-wrap">
+			<h1>先别着急买春装 看完2019秋冬趋势 趁打折买他们</h1>
+			<div class="article-info">
+				<p>编辑:SG精品</p>
+				<p>2019-03-20</p>
+				<p>分享到:<a href="#" class="share-weibo"></a><a href="#" class="share-wechat"></a></p>
+			</div>
+			<div class="article-summary">
+				拥有一条薄纱仙女裙应该是每个小仙女的梦想吧?薄纱裙不嫌多,正值春季赏花的时候,YOKA小姐姐觉得也正是穿薄纱裙出去拍拍拍的时候,国外的时尚博主们演绎了无数套薄纱裙LOOK,难道她们的购物车中都有这件单品?
+			</div>
+			<div class="rich-wrapper">
+				<p>又是一年春好处,当纷繁浪漫的春夏流行趋势铺天盖地,我们的肌肤也提早感受到了那份轻盈和柔软。本季流行趋势我们想从“肌肤”的角度出发,探讨当下风尚在面料上的具体表现,将那份呼之欲出的美好,拓印在与我们朝夕相处的“第二层肌肤”之上。
+				</p>
+				<br>
+				<img src="images/tmp2.jpg?v=4607d319" width="" alt="">
+				<br>
+				<p>霓裳丝绸,如披一身绮丽云霞。没有女人能抵抗丝绸的魅力,天然蛋白纤维娇柔亲肤的质感,以及影影绰绰间如流水般的光泽度,令我们在何时何地都能散发优雅与高贵。与之前略有不同的是,本季伸展台上丝绸被设计师的妙手锻造出了别致轮廓与硬挺造型,有别于以往如瀑倾洒的女性气息,刚柔并济的美学姿态正在注入绸缎所定义的高光时刻。
+				</p>
+				<br>
+				<img src="images/tmp2.jpg?v=4607d319" width="" alt="">
+				<br>
+				<p>风乍起,吹皱一池春水。我们总是期待能够将保养得意的肌肤恰如其分地展现在明媚春色中,于是薄纱便是这一季最唯美的表达方式。将薄纱当做画布,烂漫波点、立体花朵、精致刺绣丰富了透视薄纱的时髦语境,而清新柔和的色彩、恰到好处的留白与飘飘欲仙的材质相得益彰,诠释出本季别开生面的性感面貌——自然清新不流俗。<br>在这个美好的春日里,彩色的衬衫在更有生机更能match季节感,如花朵般绽放,选择彩色衬衫来争奇斗艳吧!
+				</p>
+			</div>
+
+			<div class="star-module">
+				<h2>相关推荐</h2>
+				<div class="wrapper clearfix">
+					<dl>
+						<dt>
+							<a href=""><img src="images/tmp1.jpg?v=c5bb1cf7" alt=""></a>
+						</dt>
+						<dd>
+							<h3><a href="#">明星设计时代的更替 | MODE</a></h3>
+						</dd>
+						<dd>
+							<p>85 岁的 Karl Lagerfeld 走了,Chanel 进入了“后老佛爷”时代。人们说,这标志着一个时装时代的结束。30岁的蕾哈娜(Rihanna)即......</p>
+						</dd>
+					</dl>
+					<dl>
+						<dt>
+							<a href=""><img src="images/tmp1.jpg?v=c5bb1cf7" alt=""></a>
+						</dt>
+						<dd>
+							<h3><a href="#">在长沙找到时尚“新活法”</a></h3>
+						</dd>
+						<dd>
+							<p>85 岁的 Karl Lagerfeld 走了,Chanel 进入了“后老佛爷”时代。人们说,这标志着一个时装时代的结束。30岁的蕾哈娜(Rihanna)即......
+							</p>
+						</dd>
+					</dl>
+				</div>
+			</div>
+			<!-- end 娱乐 -->
+		</div>
+		<div class="r-cont">
+			<a href="" class="ad">
+				<img src="images/ad.jpg?v=86319426" width="380" height="600" alt="">
+			</a>
+			<div class="top-module">
+				<h3>精彩TOP</h3>
+				<ul>
+					<li><em>1</em><a href="#">倪妮看秀造型被称赞,倪妮看秀造型被称赞,平光镜搭...</a></li>
+					<li><em>2</em><a href="#">倪妮看秀造型被称赞,平光镜搭...</a></li>
+					<li><em>3</em><a href="#">倪妮看秀造型被称赞,平光镜搭...</a></li>
+					<li><em>4</em><a href="#">倪妮看秀造型被称赞,平光镜搭...</a></li>
+					<li><em>5</em><a href="#">倪妮看秀造型被称赞,平光镜搭...</a></li>
+					<li><em>6</em><a href="#">倪妮看秀造型被称赞,平光镜搭...</a></li>
+					<li><em>7</em><a href="#">倪妮看秀造型被称赞,平光镜搭...</a></li>
+					<li><em>8</em><a href="#">倪妮看秀造型被称赞,平光镜搭...</a></li>
+					<li><em>9</em><a href="#">倪妮看秀造型被称赞,平光镜搭...</a></li>
+					<li><em>10</em><a href="#">倪妮看秀造型被称赞,平光镜搭...</a></li>
+				</ul>
+			</div>
+		</div>
+	</div>
+
+
+	<footer>
+		<div class="bnav">
+			<div class="wrapper">
+				<ul>
+					<li><a href=""><img src="images/jpw.png?v=79b1ce8d" alt=""></a></li>
+					<li><a href=""><img src="images/jpcm.png?v=8fedd557" alt=""></a></li>
+					<li><a href="">关于我们</a></li>
+					<li><a href="">联系我们</a></li>
+					<li><a href="">法律声明</a></li>
+					<li><a href="">报刊订阅</a></li>
+				</ul>
+			</div>
+		</div>
+		<div class="wrapper">
+			<div class="contact">
+				<p>地址:北京市海淀区中关村大街甲28号海淀文化艺术大厦B座7层</p>
+				<p>邮编:100086 | 总机:(010)51269000</p>
+				<br>
+				<p>Copyright©1996-2016 精品传媒集团版权所有 未经授权禁止复制或建立镜像</p>
+				<p><a href="">京ICP许可证080599号</a> <a href="">京ICP备09028816号</a> <a href="">广告经营许可证</a> <a
+						href="">京海工商广字第190号</a></p>
+				<p>北京市公安局海淀分局 备案号:1101081739</p>
+			</div>
+		</div>
+	</footer>
+	<a href="javascript:;" class="gotop"></a>
+	<div class="mask" style="display: none">
+		<div class="layer share-layer">
+			<a href="#" class="close"></a>
+			<h5>分享到微信朋友圈</h5>
+			<div class="qrcode" id="qrcode"></div>
+			<p>打开微信,使用“扫一扫”即可将网页分享到我的朋友圈</p>
+		</div>
+	</div>
+	<script src="./static/jquery.js"></script>
+	<script src="./static/qrcode.min.js"></script>
+	<script>var wbtitle = '';var wbpic = '';</script>
+	<script>
+		var qrcode = new QRCode(document.getElementById("qrcode"), {
+			text: location.href,
+			width: 246,
+			height: 246,
+			colorDark: "#000000",
+			colorLight: "#ffffff",
+			correctLevel: QRCode.CorrectLevel.H
+		});
+
+		var wbshare = {
+			title: wbtitle,
+			url: location.href,
+			pic: wbpic,
+			ralateUid: '',
+			appkey: wbappkey
+		}
+	</script>
+<script type="text/javascript" src="js/global.js?v=7cc82a43"></script><script type="text/javascript" src="js/article.js?v=794b5df5"></script></body>
+
+</html>

+ 114 - 0
main/assets/pc/contact.html

@@ -0,0 +1,114 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+	<meta charset="utf-8">
+	<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
+	<meta content="yes" name="apple-mobile-web-app-capable">
+	<meta content="black" name="apple-mobile-web-app-status-bar-style">
+	<meta content="telephone=no" name="format-detection">
+
+	<title>联系我们</title>
+
+	<meta name="Keywords" content="" />
+	<meta name="Description" content="" />
+<link href="css/global.css?v=38e4caa9" rel="stylesheet"><link href="css/contact.css?v=52636a5d" rel="stylesheet"></head>
+
+<body>
+	<header class="bt10">
+		<div class="wrapper">
+			<div class="clearfix">
+				<a class="logo"><img src="images/logo.png?v=715222a7" alt=""></a>
+				<ul class="menu">
+					<li><a href="">登录</a></li>
+					<li><a href="">注册</a></li>
+					<li><a href="">企业邮箱登录</a></li>
+				</ul>
+			</div>
+			<ul class="tnav">
+				<li><a href="">首页</a></li>
+				<li><a href="">时装</a></li>
+				<li><a href="">美容</a></li>
+				<li><a href="">娱乐</a></li>
+				<li><a href="">视频</a></li>
+				<li><a href="">秀场</a></li>
+				<li class=""><a href="">电子杂志</a></li>
+				<li><a href="">报刊订阅</a></li>
+			</ul>
+		</div>
+	</header>
+
+	<h3 class="common-tit">
+		<div>
+			<div class="wrapper">CONTACT US</div>
+		</div>
+		<div>
+			<div class="wrapper">
+				<p><span>联系我们</span></p>
+			</div>
+		</div>
+	</h3>
+	<div class="article wrapper">
+		<img src="images/banner.jpg?v=7bbe3c38" alt="">
+		<section>
+			<h5>《精品购物指南》报社</h5>
+			<p>地址:北京市海淀区中关村大街甲28号海淀文化艺术大厦B座7层</p>
+			<p>邮编:100086</p>
+			<p>电话:010-52169000</p>
+			<p>读者热线:80061061000 010-82533658</p>
+			<p>订报热线:4008104000</p>
+			<p>广告热线:8008106918 010-52169122</p>
+		</section>
+		<section>
+			<h5>精品网</h5>
+			<p>地址:北京市海淀区中关村大街甲28号海淀文化艺术大厦B座10层</p>
+			<p>邮编:100086</p>
+			<p>电话:010-62423789</p>
+		</section>
+		<section>
+			<h5>OK!精彩</h5>
+			<p>地址:北京市海淀区中关村大街甲28号海淀文化艺术大厦B座7层</p>
+			<p>邮编:100086</p>
+			<p>电话:010- 52392688</p>
+			<p>邮箱:zhuzhixuan@sg.com.cn</p>
+		</section>
+		<section>
+			<h5>JSTYLE精美</h5>
+			<p>地址:北京市海淀区中关村大街甲28号海淀文化艺术大厦B座十层</p>
+			<p>邮编:100086</p>
+			<p>电话:010-62423789</p>
+			<p>邮箱:jmkf@sg.com.cn</p>
+		</section>
+	</div>
+
+
+	<footer>
+		<div class="bnav">
+			<div class="wrapper">
+				<ul>
+					<li><a href=""><img src="images/jpw.png?v=79b1ce8d" alt=""></a></li>
+					<li><a href=""><img src="images/jpcm.png?v=8fedd557" alt=""></a></li>
+					<li><a href="">关于我们</a></li>
+					<li><a href="">联系我们</a></li>
+					<li><a href="">法律声明</a></li>
+					<li><a href="">报刊订阅</a></li>
+				</ul>
+			</div>
+		</div>
+		<div class="wrapper">
+			<div class="contact">
+				<p>地址:北京市海淀区中关村大街甲28号海淀文化艺术大厦B座7层</p>
+				<p>邮编:100086 | 总机:(010)51269000</p>
+				<br>
+				<p>Copyright©1996-2016 精品传媒集团版权所有 未经授权禁止复制或建立镜像</p>
+				<p><a href="">京ICP许可证080599号</a> <a href="">京ICP备09028816号</a> <a href="">广告经营许可证</a> <a
+						href="">京海工商广字第190号</a></p>
+				<p>北京市公安局海淀分局 备案号:1101081739</p>
+			</div>
+		</div>
+	</footer>
+	<a href="javascript:;" class="gotop"></a>
+	<script src="./static/jquery.js"></script>
+<script type="text/javascript" src="js/global.js?v=7cc82a43"></script><script type="text/javascript" src="js/contact.js?v=6fb007cd"></script></body>
+
+</html>

+ 2 - 0
main/assets/pc/css/article.css

@@ -0,0 +1,2 @@
+.article{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.article .article-wrap{width:790px}.article .article-wrap h1{font-size:34px;font-weight:400;line-height:60px}.article .article-wrap .article-info{padding:50px 0;display:-webkit-box;display:-ms-flexbox;display:flex}.article .article-wrap .article-info p{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-negative:0;flex-shrink:0;margin-right:55px;font-size:16px}.article .article-wrap .article-info p:before{content:"";width:10px;height:10px;background-color:#b59a72;display:block;-webkit-transform:rotate(45deg);transform:rotate(45deg);margin-right:7px}.article .article-wrap .article-info p .share-wechat,.article .article-wrap .article-info p .share-weibo{display:block;width:31px;height:31px;background:url(../images/sina.png?v=9338e28d) no-repeat;background-size:31px 31px;margin-right:10px}.article .article-wrap .article-info p .share-wechat{background-image:url(../images/wechat.png?v=f3cb5ec0)}.article .article-wrap .article-summary{padding:25px 39px;color:#666;background-color:#f2f2f2;line-height:30px;font-size:18px}.article .article-wrap .rich-wrapper{position:relative;margin:40px 0 0;font-size:16px;border-bottom:1px solid #ccc;padding:35px 0}.article .article-wrap .rich-wrapper:before{content:"";display:block;width:60px;height:4px;background-color:#b59a72;position:absolute;top:0;left:0}.article .article-wrap .rich-wrapper p{text-indent:2em}.article .article-wrap .rich-wrapper img{display:block;max-width:100%}.article .ad{display:block;margin-bottom:30px}.article .top-module{height:auto;padding-bottom:20px}.article .star-module .wrapper{width:100%;padding:0}.article .star-module h2{margin:35px 0;font-size:26px;font-weight:400}
+/*# sourceMappingURL=article.css.map?v=cfd58660*/

+ 1 - 0
main/assets/pc/css/article.css.map

@@ -0,0 +1 @@
+{"version":3,"sources":[],"names":[],"mappings":"","file":"css/article.css?v=cfd58660","sourceRoot":""}

+ 2 - 0
main/assets/pc/css/contact.css

@@ -0,0 +1,2 @@
+section{border-bottom:1px solid #ccc;padding-bottom:35px}section h5{font-size:20px;line-height:56px;font-weight:400;padding:22px 0 27px}section h5:after{content:"";display:block;width:60px;height:4px;background-color:#b59a72}section p{font-size:16px;line-break:30px}section:last-child{border-bottom:0}
+/*# sourceMappingURL=contact.css.map?v=52636a5d*/

+ 1 - 0
main/assets/pc/css/contact.css.map

@@ -0,0 +1 @@
+{"version":3,"sources":[],"names":[],"mappings":"","file":"css/contact.css?v=52636a5d","sourceRoot":""}

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
main/assets/pc/css/global.css


+ 1 - 0
main/assets/pc/css/global.css.map

@@ -0,0 +1 @@
+{"version":3,"sources":[],"names":[],"mappings":"","file":"css/global.css?v=38e4caa9","sourceRoot":""}

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
main/assets/pc/css/index.css


+ 1 - 0
main/assets/pc/css/index.css.map

@@ -0,0 +1 @@
+{"version":3,"sources":[],"names":[],"mappings":"","file":"css/index.css?v=e301079b","sourceRoot":""}

+ 2 - 0
main/assets/pc/css/intro.css

@@ -0,0 +1,2 @@
+section{border-bottom:1px solid #ccc;padding-bottom:35px}section h5{font-size:20px;line-height:56px;font-weight:400;padding:22px 0 27px}section h5:after{content:"";display:block;width:60px;height:4px;background-color:#b59a72}section p{font-size:16px;line-break:30px}section:last-child{border-bottom:0}
+/*# sourceMappingURL=intro.css.map?v=52636a5d*/

+ 1 - 0
main/assets/pc/css/intro.css.map

@@ -0,0 +1 @@
+{"version":3,"sources":[],"names":[],"mappings":"","file":"css/intro.css?v=52636a5d","sourceRoot":""}

+ 2 - 0
main/assets/pc/css/legal.css

@@ -0,0 +1,2 @@
+section{border-bottom:1px solid #ccc;padding-bottom:35px}section h5{font-size:20px;line-height:56px;font-weight:400;padding:22px 0 27px}section h5:after{content:"";display:block;width:60px;height:4px;background-color:#b59a72}section p{font-size:16px;line-break:30px}section:last-child{border-bottom:0}
+/*# sourceMappingURL=legal.css.map?v=52636a5d*/

+ 1 - 0
main/assets/pc/css/legal.css.map

@@ -0,0 +1 @@
+{"version":3,"sources":[],"names":[],"mappings":"","file":"css/legal.css?v=52636a5d","sourceRoot":""}

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
main/assets/pc/css/list.css


+ 1 - 0
main/assets/pc/css/list.css.map

@@ -0,0 +1 @@
+{"version":3,"sources":[],"names":[],"mappings":"","file":"css/list.css?v=58ab3ac6","sourceRoot":""}

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
main/assets/pc/css/list1.css


+ 1 - 0
main/assets/pc/css/list1.css.map

@@ -0,0 +1 @@
+{"version":3,"sources":[],"names":[],"mappings":"","file":"css/list1.css?v=58ab3ac6","sourceRoot":""}

+ 2 - 0
main/assets/pc/css/magzine.css

@@ -0,0 +1,2 @@
+.magzines ul{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.magzines ul li{width:220px;padding:0 40px;border-bottom:1px solid #ccc;margin-bottom:40px}.magzines ul li span{display:block;line-height:88px;text-align:center;font-size:18px}.common-pagination ul{padding-top:40px}
+/*# sourceMappingURL=magzine.css.map?v=eb321764*/

+ 1 - 0
main/assets/pc/css/magzine.css.map

@@ -0,0 +1 @@
+{"version":3,"sources":[],"names":[],"mappings":"","file":"css/magzine.css?v=eb321764","sourceRoot":""}

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
main/assets/pc/css/video.css


+ 1 - 0
main/assets/pc/css/video.css.map

@@ -0,0 +1 @@
+{"version":3,"sources":[],"names":[],"mappings":"","file":"css/video.css?v=acf5bfde","sourceRoot":""}

BIN
main/assets/pc/images/ad.jpg


BIN
main/assets/pc/images/ad1.jpg


BIN
main/assets/pc/images/arrow-l.png


BIN
main/assets/pc/images/arrow-r.png


BIN
main/assets/pc/images/banner.jpg


BIN
main/assets/pc/images/btn-next.png


BIN
main/assets/pc/images/btn-prev.png


BIN
main/assets/pc/images/close.png


BIN
main/assets/pc/images/ico-col-cur.png


BIN
main/assets/pc/images/ico-col.png


BIN
main/assets/pc/images/ico-email.png


BIN
main/assets/pc/images/ico-password.png


BIN
main/assets/pc/images/ico-row-cur.png


BIN
main/assets/pc/images/ico-row.png


BIN
main/assets/pc/images/ico-video.png


BIN
main/assets/pc/images/jpcm.png


BIN
main/assets/pc/images/jpw.png


BIN
main/assets/pc/images/logo.png


BIN
main/assets/pc/images/mag.jpg


BIN
main/assets/pc/images/qrcode.png


BIN
main/assets/pc/images/sina.png


BIN
main/assets/pc/images/tmp1.jpg


BIN
main/assets/pc/images/tmp2.jpg


BIN
main/assets/pc/images/top.png


BIN
main/assets/pc/images/wechat.png


+ 533 - 0
main/assets/pc/index.html

@@ -0,0 +1,533 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+	<meta charset="utf-8">
+	<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
+	<meta content="yes" name="apple-mobile-web-app-capable">
+	<meta content="black" name="apple-mobile-web-app-status-bar-style">
+	<meta content="telephone=no" name="format-detection">
+
+	<title>首页</title>
+
+	<meta name="Keywords" content="" />
+	<meta name="Description" content="" />
+	<link rel="stylesheet" href="./static/swiper.min.css" />
+<link href="css/global.css?v=38e4caa9" rel="stylesheet"><link href="css/index.css?v=e301079b" rel="stylesheet"></head>
+
+<body>
+	<header>
+		<div class="wrapper">
+			<div class="clearfix">
+				<a class="logo"><img src="images/logo.png?v=715222a7" alt=""></a>
+				<ul class="menu">
+					<li><a href="#">登录</a></li>
+					<li><a href="#">注册</a></li>
+					<li><a href="#">企业邮箱登录</a></li>
+				</ul>
+			</div>
+			<ul class="tnav">
+				<li><a href="#">首页</a></li>
+				<li><a href="#">时装</a></li>
+				<li><a href="#">美容</a></li>
+				<li><a href="#">娱乐</a></li>
+				<li><a href="#">视频</a></li>
+				<li><a href="#">秀场</a></li>
+				<li><a href="#">电子杂志</a></li>
+				<li><a href="#">报刊订阅</a></li>
+			</ul>
+		</div>
+	</header>
+	<!-- banner swiper -->
+	<div class="index-slide">
+		<div class="swiper-container">
+			<div class="swiper-wrapper clearfix">
+				<div class="swiper-slide">
+					<a href="#" target="_blank" title="">
+						<img src="images/banner.jpg?v=7bbe3c38" width="1200" height="500" alt="" title=""></a>
+				</div>
+				<div class="swiper-slide">
+					<a href="#" target="_blank" title="">
+						<img src="images/banner.jpg?v=7bbe3c38" width="1200" height="500" alt="" title=""></a>
+				</div>
+				<div class="swiper-slide">
+					<a href="#" target="_blank" title="">
+						<img src="images/banner.jpg?v=7bbe3c38" width="1200" height="500" alt="" title=""></a>
+				</div>
+			</div>
+			<a href="javascript:;" class="arrow-l"></a><a href="javascript:;" class="arrow-r"></a>
+			<div class="pagination"></div>
+		</div>
+	</div>
+	<!-- end banner swiper -->
+
+	<!-- 精选 -->
+	<h3 class="common-tit">
+		<div>
+			<div class="wrapper">CAREFULLY CHOSEN</div>
+		</div>
+		<div>
+			<div class="wrapper">
+				<p><span>精选</span></p>
+			</div>
+		</div>
+	</h3>
+	<div class="three-cols-module wrapper clearfix " id="jignxuan">
+		<ul>
+			<li>
+				<a href="#">
+					<div class="imgcont"><img src="images/tmp1.jpg?v=c5bb1cf7" alt=""></div>
+					<p>MONCLER GENIUS一屋·众声</p>
+				</a>
+			</li>
+			<li>
+				<a href="#">
+					<div class="imgcont"><img src="images/tmp1.jpg?v=c5bb1cf7" alt=""></div>
+					<p>Roberto Cavalli 2019春夏系列</p>
+				</a>
+			</li>
+			<li>
+				<a href="#">
+					<div class="imgcont"><img src="images/tmp1.jpg?v=c5bb1cf7" alt=""></div>
+					<p>Roberto Cavalli 2019春夏系列</p>
+				</a>
+			</li>
+			<li>
+				<a href="#">
+					<div class="imgcont"><img src="images/tmp1.jpg?v=c5bb1cf7" alt=""></div>
+					<p>
+						<i class="ico-video"></i> 仙气十足的Erdem为伦敦皇家芭蕾舞团设计了什么样的服装
+					</p>
+				</a>
+			</li>
+			<li>
+				<a href="#">
+					<div class="imgcont"><img src="images/tmp1.jpg?v=c5bb1cf7" alt=""></div>
+					<p>
+						<i class="ico-video"></i> 仙气十足的Erdem为伦敦皇家芭蕾舞团设计了什么样的服装
+					</p>
+				</a>
+			</li>
+			<li>
+				<a href="#">
+					<div class="imgcont"><img src="images/tmp1.jpg?v=c5bb1cf7" alt=""></div>
+					<p>
+						<i class="ico-video"></i> 仙气十足的Erdem为伦敦皇家芭蕾舞团设计了什么样的服装
+					</p>
+				</a>
+			</li>
+		</ul>
+	</div>
+	<!-- end 精选 -->
+
+	<div class="ad wrapper">
+		<a href="#"><img src="images/ad.jpg?v=86319426" alt=""></a>
+	</div>
+
+	<!-- 独家策划 -->
+	<h3 class="common-tit">
+		<div>
+			<div class="wrapper">EXCLUSIVE PLANNING</div>
+		</div>
+		<div>
+			<div class="wrapper">
+				<p><span>独家策划</span></p>
+			</div>
+		</div>
+	</h3>
+	<div class="planning-module wrapper clearfix">
+		<div class="swiper-container" id="dujia">
+			<ul class="swiper-pagination">
+				<li class="active">西方失去宇宙,少了斯坦李的</li>
+				<li>西方失去宇宙,少了斯坦李的</li>
+				<li>西方失去宇宙,少了斯坦李的</li>
+				<li>西方失去宇宙,少了斯坦李的</li>
+				<li>西方失去宇宙,少了斯坦李的</li>
+				<li>西方失去宇宙,少了斯坦李的</li>
+			</ul>
+			<div class="swiper-wrapper">
+				<div class="swiper-slide">
+					<a href="#"><img src="images/ad.jpg?v=86319426" width="380" height="380" alt="" title=""></a>
+				</div>
+				<div class="swiper-slide">
+					<a href="#"><img src="images/banner.jpg?v=7bbe3c38" width="380" height="380" alt="" title=""></a>
+				</div>
+				<div class="swiper-slide">
+					<a href="#"><img src="images/ad.jpg?v=86319426" width="380" height="380" alt="" title=""></a>
+				</div>
+				<div class="swiper-slide">
+					<a href="#"><img src="images/banner.jpg?v=7bbe3c38" width="380" height="380" alt="" title=""></a>
+				</div>
+				<div class="swiper-slide">
+					<a href="#"><img src="images/ad.jpg?v=86319426" width="380" height="380" alt="" title=""></a>
+				</div>
+				<div class="swiper-slide">
+					<a href="#"><img src="images/banner.jpg?v=7bbe3c38" width="380" height="380" alt="" title=""></a>
+				</div>
+			</div>
+		</div>
+		<div class="top-module">
+			<h3>精彩TOP</h3>
+			<ul>
+				<li><em>1</em><a href="#">倪妮看秀造型被称赞,倪妮看秀造型被称赞,平光镜搭...</a></li>
+				<li><em>2</em><a href="#">倪妮看秀造型被称赞,平光镜搭...</a></li>
+				<li><em>3</em><a href="#">倪妮看秀造型被称赞,平光镜搭...</a></li>
+				<li><em>4</em><a href="#">倪妮看秀造型被称赞,平光镜搭...</a></li>
+				<li><em>5</em><a href="#">倪妮看秀造型被称赞,平光镜搭...</a></li>
+				<li><em>6</em><a href="#">倪妮看秀造型被称赞,平光镜搭...</a></li>
+			</ul>
+		</div>
+	</div>
+	<!-- end 独家策划 -->
+
+	<!-- 时装 -->
+	<h3 class="common-tit">
+		<div>
+			<div class="wrapper">FASHION</div>
+		</div>
+		<div>
+			<div class="wrapper">
+				<p><span>时装</span></p>
+			</div>
+		</div>
+	</h3>
+	<div class="fashion-module wrapper">
+		<ul>
+			<li><a href="#"><img src="images/tmp1.jpg?v=c5bb1cf7" /><span>Fil 小白:“独立”定义时尚</span></a></li>
+			<li><a href="#"><img src="images/tmp1.jpg?v=c5bb1cf7" /><span>Fil 小白:“独立”定义时尚</span></a></li>
+			<li><a href="#"><img src="images/tmp1.jpg?v=c5bb1cf7" /><span>Fil 小白:“独立”定义时尚</span></a></li>
+			<li><a href="#"><img src="images/tmp1.jpg?v=c5bb1cf7" /><span>Fil 小白:“独立”定义时尚</span></a></li>
+		</ul>
+		<div class="ad">
+			<a href="#"><img src="images/ad.jpg?v=86319426" alt=""></a>
+		</div>
+	</div>
+	<!-- end 时装 -->
+
+	<!-- 美容 -->
+	<h3 class="common-tit">
+		<div>
+			<div class="wrapper">BEAUTY</div>
+		</div>
+		<div>
+			<div class="wrapper">
+				<p><span>美容</span></p>
+			</div>
+		</div>
+	</h3>
+	<div class="three-cols-module wrapper clearfix " id="beauty">
+		<ul>
+			<li>
+				<a href="#">
+					<div class="imgcont"><img src="images/tmp1.jpg?v=c5bb1cf7" alt=""></div>
+					<p>MONCLER GENIUS一屋·众声</p>
+				</a>
+			</li>
+			<li>
+				<a href="#">
+					<div class="imgcont"><img src="images/tmp1.jpg?v=c5bb1cf7" alt=""></div>
+					<p>Roberto Cavalli 2019春夏系列</p>
+				</a>
+			</li>
+			<li>
+				<a href="#">
+					<div class="imgcont"><img src="images/tmp1.jpg?v=c5bb1cf7" alt=""></div>
+					<p>Roberto Cavalli 2019春夏系列</p>
+				</a>
+			</li>
+			<li>
+				<a href="#">
+					<div class="imgcont"><img src="images/tmp1.jpg?v=c5bb1cf7" alt=""></div>
+					<p>
+						仙气十足的Erdem为伦敦皇家芭蕾舞团设计了什么样的服装
+					</p>
+				</a>
+			</li>
+			<li>
+				<a href="#">
+					<div class="imgcont"><img src="images/tmp1.jpg?v=c5bb1cf7" alt=""></div>
+					<p>
+						仙气十足的Erdem为伦敦皇家芭蕾舞团设计了什么样的服装
+					</p>
+				</a>
+			</li>
+			<li>
+				<a href="#">
+					<div class="imgcont"><img src="images/tmp1.jpg?v=c5bb1cf7" alt=""></div>
+					<p>
+						仙气十足的Erdem为伦敦皇家芭蕾舞团设计了什么样的服装
+					</p>
+				</a>
+			</li>
+		</ul>
+	</div>
+	<!-- end 美容 -->
+
+	<!-- end 秀场 -->
+	<h3 class="common-tit runway-tit">
+		<div>
+			<div class="wrapper">RUNWAY</div>
+		</div>
+		<div>
+			<div class="wrapper">
+				<p><span>秀场</span></p>
+			</div>
+		</div>
+	</h3>
+	<div class="runway-wrapper wrapper">
+		<div class="module-bd">
+			<div class="swiper-container">
+				<ul>
+					<li>
+						<a href="#" target="_blank">
+							<img
+								src="http://shows.vogueimg.com.cn/showspic/FashionImages/F2019RTW/paris/apc/collection/0E9VWGPvgAN1280_h.jpg.360X540.jpg">
+							<span>Roberto Cavalli 2019春夏系列</span>
+						</a>
+					</li>
+					<li><a href="#" target="_blank"><img
+								src="http://shows.vogueimg.com.cn/showspic/FashionImages/F2019RTW/paris/alexander-mcqueen/collection/3640bW7k9b41280_h.jpg.360X540.jpg"><span>Roberto
+								Cavalli 2019春夏系列</span></a>
+					</li>
+					<li><a href="#" target="_blank"><img
+								src="http://shows.vogueimg.com.cn/showspic/FashionImages/F2019RTW/paris/agnes-b/collection/0oLWvvm4gw81280_h.jpg.360X540.jpg"><span>Roberto
+								Cavalli 2019春夏系列</span></a>
+					</li>
+					<li><a href="#" target="_blank"><img
+								src="http://shows.vogueimg.com.cn/showspic/FashionImages/F2019RTW/paris/beautiful-people/collection/1dPg2mZwPDp1280_h.jpg.360X540.jpg"><span>Roberto
+								Cavalli 2019春夏系列</span></a>
+					</li>
+					<li><a href="#" target="_blank"><img
+								src="http://shows.vogueimg.com.cn/showspic/FashionImages/F2019RTW/paris/acne-studios-pre/collection/0eRynrG26x31280_h.jpg.360X540.jpg"><span>Roberto
+								Cavalli 2019春夏系列</span></a>
+					</li>
+					<li><a href="#" target="_blank"><img
+								src="http://shows.vogueimg.com.cn/showspic/FashionImages/F2019RTW/paris/giambattista-valli/collection/0BLqGd1pkyk1280_h.jpg.360X540.jpg"><span>Roberto
+								Cavalli 2019春夏系列</span></a>
+					</li>
+				</ul>
+				<a href="javascript:;" class="btn-prev"></a>
+				<a href="javascript:;" class="btn-next"></a>
+			</div>
+		</div>
+	</div>
+	<!-- end 秀场 -->
+
+	<!-- 娱乐 -->
+	<h3 class="common-tit">
+		<div>
+			<div class="wrapper">STAR</div>
+		</div>
+		<div>
+			<div class="wrapper">
+				<p><span>娱乐</span></p>
+			</div>
+		</div>
+	</h3>
+	<div class="star-module">
+		<div class="wrapper clearfix">
+			<dl>
+				<dt>
+					<a href=""><img src="images/tmp1.jpg?v=c5bb1cf7" alt=""></a>
+				</dt>
+				<dd>
+					<h3><a href="#">明星设计时代的更替 | MODE</a></h3>
+				</dd>
+				<dd>
+					<p>85 岁的 Karl Lagerfeld 走了,Chanel
+						进入了“后老佛爷”时代。人们说,这标志着一个时装时代的结束。30岁的蕾哈娜(Rihanna)即将迎接她对自己做时装设计师规划的全新阶段,如果 LVMH
+						与她的合作如期展开,那么这将是全球最大的奢侈品牌自1987年创立 Christian Lacroix 后,第二个从零开始推出......</p>
+				</dd>
+			</dl>
+			<dl>
+				<dt>
+					<a href=""><img src="images/tmp1.jpg?v=c5bb1cf7" alt=""></a>
+				</dt>
+				<dd>
+					<h3><a href="#">2019FEIA中国时尚文化消费投资影响力论坛暨年度颁奖礼隆重举行</a></h3>
+				</dd>
+				<dd>
+					<p>1月15日,由中国知名产业投资机构清科文创与中国第一时尚生活媒体平台JSTYLE精美联合主办的“新文创与大消费时代——2019FEIA中国时尚文化消费投资影响力论坛暨年度颁奖礼”在北京望京凯悦酒店圆满落幕。
+					</p>
+				</dd>
+			</dl>
+			<dl>
+				<dt>
+					<a href=""><img src="images/tmp1.jpg?v=c5bb1cf7" alt=""></a>
+				</dt>
+				<dd>
+					<h3><a href="#">范丞丞“恋爱点评员”带你在《女儿们的男朋友》中吃瓜吃柠檬!</a></h3>
+				</dd>
+				<dd>
+					<p>爸爸与“小情人”的新综艺《女儿们的男朋友》马上就要开播了,看来我们又有瓜可以吃啦!不但老爸团都是大明星,范丞丞、王子文、张大大和陈铭组成的“点评团”也超值得期待。</p>
+				</dd>
+			</dl>
+		</div>
+	</div>
+	<!-- end 娱乐 -->
+
+	<!-- 推荐 -->
+	<div class="recommend-module wrapper">
+		<ul>
+			<li><a href=""><img src="images/tmp1.jpg?v=c5bb1cf7" alt=""><span>精品购物指南</span></a></li>
+			<li><a href=""><img src="images/tmp1.jpg?v=c5bb1cf7" alt=""><span>精品购物指南</span></a></li>
+			<li><a href=""><img src="images/tmp1.jpg?v=c5bb1cf7" alt=""><span>精品购物指南</span></a></li>
+			<li><a href=""><img src="images/tmp1.jpg?v=c5bb1cf7" alt=""><span>精品购物指南</span></a></li>
+		</ul>
+		<div class="wechats">
+			<dl>
+				<dd>
+					<h4>精品购物指南</h4>
+					<p>官方微信</p>
+					<span>扫一扫立即关注 </span>
+				</dd>
+				<dt>
+					<img src="images/qrcode.png?v=c3386e72" alt="">
+				</dt>
+			</dl>
+			<dl>
+				<dd>
+					<h4>精品购物指南</h4>
+					<p>官方微信</p>
+					<span>扫一扫立即关注 </span>
+				</dd>
+				<dt>
+					<img src="images/qrcode.png?v=c3386e72" alt="">
+				</dt>
+			</dl>
+			<dl>
+				<dd>
+					<h4>精品购物指南</h4>
+					<p>官方微信</p>
+					<span>扫一扫立即关注 </span>
+				</dd>
+				<dt>
+					<img src="images/qrcode.png?v=c3386e72" alt="">
+				</dt>
+			</dl>
+			<dl>
+				<dd>
+					<h4>精品购物指南</h4>
+					<p>官方微信</p>
+					<span>扫一扫立即关注 </span>
+				</dd>
+				<dt>
+					<img src="images/qrcode.png?v=c3386e72" alt="">
+				</dt>
+			</dl>
+		</div>
+	</div>
+	<!-- end 推荐 -->
+
+	<footer>
+		<div class="bnav">
+			<div class="wrapper">
+				<ul>
+					<li><a href="#"><img src="images/jpw.png?v=79b1ce8d" alt=""></a></li>
+					<li><a href="#"><img src="images/jpcm.png?v=8fedd557" alt=""></a></li>
+					<li><a href="#">关于我们</a></li>
+					<li><a href="#">联系我们</a></li>
+					<li><a href="#">法律声明</a></li>
+					<li><a href="#">报刊订阅</a></li>
+				</ul>
+			</div>
+		</div>
+		<div class="wrapper">
+			<div class="contact">
+				<p>地址:北京市海淀区中关村大街甲28号海淀文化艺术大厦B座7层</p>
+				<p>邮编:100086 | 总机:(010)51269000</p>
+				<br>
+				<p>Copyright©1996-2016 精品传媒集团版权所有 未经授权禁止复制或建立镜像</p>
+				<p><a href="#">京ICP许可证080599号</a> <a href="#">京ICP备09028816号</a> <a href="#">广告经营许可证</a> <a
+						href="#">京海工商广字第190号</a></p>
+				<p>北京市公安局海淀分局 备案号:1101081739</p>
+			</div>
+		</div>
+	</footer>
+
+	<a href="javascript:;" class="gotop"></a>
+
+	<div class="mask">
+		<!-- 登录 -->
+		<!-- <div class="layer">
+			<h4><span>账户登录</span></h4>
+			<form action="">
+				<div class="form-item"><i class="ico-email"></i><input type="text" placeholder="邮箱" ></div>
+				<div class="form-item"><i class="ico-password"></i><input type="password" placeholder="密码" ></div>
+				<div class="form-links">
+					<a href="#">忘记密码?</a>
+					<a href="#">注册用户</a>
+				</div>
+				<div class="btn-wrap">
+					<a href="#" class="btn">登录</a>
+				</div>
+			</form>
+		</div> -->
+
+		<!-- 找回密码 -->
+		<!-- <div class="layer">
+				<h4><span>找回密码</span></h4>
+				<form action="">
+					<div class="form-item"><i class="ico-email"></i><input type="text" placeholder="邮箱" ></div>
+					<div class="form-links align-right">
+						<a href="#">点此登录</a><span>|</span>
+						<a href="#">点此注册</a>
+					</div>
+					<div class="btn-wrap">
+						<a href="#" class="btn">确认</a>
+					</div>
+				</form>
+			</div> -->
+
+		<!-- 账号注册 -->
+		<div class="layer">
+			<h4><span>账号注册</span></h4>
+			<form action="">
+				<div class="form-item"><i class="ico-email"></i><input type="text" placeholder="邮箱"></div>
+				<div class="form-item"><i class="ico-password"></i><input type="password" placeholder="密码"></div>
+				<div class="form-item"><i class="ico-password"></i><input type="password" placeholder="密码"></div>
+				<div class="form-links align-right">
+					<a href="#">已有账号?点此登录</a>
+				</div>
+				<div class="btn-wrap">
+					<a href="#" class="btn">注册</a>
+				</div>
+			</form>
+		</div>
+	</div>
+
+	<script src="./static/jquery.js"></script> 
+<script type="text/javascript" src="js/global.js?v=7cc82a43"></script><script type="text/javascript" src="js/index.js?v=68d4b78b"></script></body>
+<script src="./static/expand-slide.js"></script>
+<script src="./static/swiper.min.js"></script>
+<script src="./static/jquery.roundabout2.js"></script>
+<script>
+	new ExpandSlide($('.index-slide'), {
+		nextBtn: $('.index-slide .arrow-r'),
+		prevBtn: $('.index-slide .arrow-l'),
+		autoplay: 5,
+		callback: function (es) {
+
+		}
+	})
+	var planningSwiper = new Swiper('.planning-module .swiper-container', {
+		effect: 'fade'
+	});
+
+	$('.planning-module .swiper-pagination').on('click', 'li', function () {
+		var index = $(this).addClass('active').siblings().removeClass('active').end().index();
+		planningSwiper.slideTo(index);
+	})
+
+	$('.runway-wrapper .swiper-container ul').roundabout({
+		autoplay: true,
+		autoplayDuration: 5000,
+		autoplayPauseOnHover: true,
+		minScale: 0.1,
+		minOpacity: 1,
+		btnPrev: '.runway-wrapper .btn-prev',
+		btnNext: '.runway-wrapper .btn-next'
+	});
+</script>
+
+</html>

+ 142 - 0
main/assets/pc/intro.html

@@ -0,0 +1,142 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+	<meta charset="utf-8">
+	<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
+	<meta content="yes" name="apple-mobile-web-app-capable">
+	<meta content="black" name="apple-mobile-web-app-status-bar-style">
+	<meta content="telephone=no" name="format-detection">
+
+	<title>企业简介</title>
+
+	<meta name="Keywords" content="" />
+	<meta name="Description" content="" />
+<link href="css/global.css?v=38e4caa9" rel="stylesheet"><link href="css/intro.css?v=52636a5d" rel="stylesheet"></head>
+
+<body>
+	<header class="bt10">
+		<div class="wrapper">
+			<div class="clearfix">
+				<a class="logo"><img src="images/logo.png?v=715222a7" alt=""></a>
+				<ul class="menu">
+					<li><a href="">登录</a></li>
+					<li><a href="">注册</a></li>
+					<li><a href="">企业邮箱登录</a></li>
+				</ul>
+			</div>
+			<ul class="tnav">
+				<li><a href="">首页</a></li>
+				<li><a href="">时装</a></li>
+				<li><a href="">美容</a></li>
+				<li><a href="">娱乐</a></li>
+				<li><a href="">视频</a></li>
+				<li><a href="">秀场</a></li>
+				<li class=""><a href="">电子杂志</a></li>
+				<li><a href="">报刊订阅</a></li>
+			</ul>
+		</div>
+	</header>
+
+	<h3 class="common-tit">
+		<div>
+			<div class="wrapper">ENTERPRISE INTRODUCTION</div>
+		</div>
+		<div>
+			<div class="wrapper">
+				<p><span>企业简介</span></p>
+			</div>
+		</div>
+	</h3>
+	<div class="article wrapper">
+		<img src="images/banner.jpg?v=7bbe3c38" alt="">
+		<section>
+			<h5>《精品购物指南》</h5>
+			<p>
+				《精品购物指南》报社创办于1992年12月,是由中国社科院主管的全民所有制事业单位,主办单位为《中国经营报》社。我报社目前拥有一报三刊共四个全国统一刊号:分别为《精品购物指南》,以及《精品购物指南》主办的《精彩》、《风尚志》、《新视线》。
+			</p>
+			<p>
+				《精品购物指南》是全国第一份彩色印刷的时尚生活报,创刊25年以来,深受读者好评,影响力巨大。1997年北京地区发行量即达数十万份,广告收入超亿元;1998年进入“全国报业广告十强”;连续多年被全国文明办和国家工商行政管理总局等单位评为“全国广告行业文明单位”;2006年荣获“北京市著名商标”称号,是北京地区第一家获此殊荣的报纸;2005—2007连续三年入选国家新闻出版总署报刊颁布的“全国生活服务类报纸竞争力10强”,并蝉联第一;
+				2011年被中国报业协会评为“全国报业经营管理优秀单位”;2013年,被国家新闻出版广电总局评为“全国百强报纸”。2017年被北京市工商局·北京广告协会评为北京广告产业发展30周年杰出贡献单位奖。2018年3月,又一次被国家新闻出版广电总局评为全国“百强报刊”。
+			</p>
+			<p>
+				精品传媒是中国本土经营规模最大、最具影响力的时尚媒体品牌,旗下拥有费加罗Madame Figaro、 OK!精彩、T风尚志、Ttravel新视线等时尚生活杂志,以及精品网、精美app等新媒体产品。
+			</p>
+			<p>
+				作为一份创办已有25年的全国知名时尚生活报纸,《精品购物指南》曾经创造了中国报业的奇迹,为本土时尚媒体事业的发展做出了应有的贡献。《精品购物指南》影响着北京、上海等中国一线城市超过百万时尚人士的品牌认知、生活理念直至消费选择,被誉为时尚人群的“消费参考”和“生活顾问”。
+			</p>
+			<p>
+				依托得天独厚的资源优势,《精品购物指南》将努力打造集合报纸、杂志、线上阅读、移动终端阅读、微博、微信、APP产品群在内的全媒体时尚传播平台。
+			</p>
+		</section>
+		<section>
+			<h5>《OK!精彩》</h5>
+			<p>《OK!精彩》是中国第一本新闻型时尚周刊 也是中国第一本专注于明星名人的时尚周刊。
+			</p>
+			<p>
+				OK! Magazine 来自英国,是全球最大的明星名人时尚杂志,也是全球发行量最大的明星杂志,全球每周发行量超过920万,全球读者超过6200万。
+			</p>
+			<p>
+				- 1993年4月,OK!诞生于英国伦敦,目前全球已有近30个国家的版本。
+			</p>
+			<p>
+				- 2012年5月, 《OK!精彩》 杂志以时尚的姿态来到中国,以专业时尚的角度,年轻活力不八卦的态度,为读者带来集国际及本地名人、高级时尚、流行文化于一体的多层次报道。
+			</p>
+			<p>
+				《OK!精彩》流行度高,大众辨识度广,直接明了的呈现了明星名人的状态,规避了不高级的明星私生活与低级趣味的八卦内容,是一本强调社交与分享的明星名人时尚周刊。
+			</p>
+		</section>
+		<section>
+			<h5>精品网</h5>
+			<p>
+				精品网系精品购物指南报社官方垂直门户网站。由精品网(北京)科技发展有限公司主办,定位为北京时尚生活门户,是国内具有影响力的时尚生活消费门户网站。
+			</p>
+			<p>
+				精品网依托《精品购物指南》时尚媒体群资源优势,热力提倡鲜活、潮流的生活态度。精品网内容涵盖时尚生活的方方面面,生活资讯服务信息实现周更新不少于4000条,日均访问独立IP超过30万。
+			</p>
+			<p>
+				精品网每周被几百万的都市白领人群所关注,占访问总量的85%,职业涵盖时尚消费前沿的所有行业,消费能力极强,其中年轻时尚的都市女性占受众总数的60%以上。
+			</p>
+			<p>
+				精品网与精品旗下媒体共同举办线上线下活动,为客户提供更加有效的整合传播方式。自2004年以来,纸网互动成功组织的一系列大型活动,如环球接力游、时尚盛典、名车品鉴、高尔夫名人邀请赛、美食风暴、时尚主流之夜、风尚小姐大赛、美发大赛等,精品网作为唯一指定的官方网站,负责现场录、直播报道,第一时间展现北京时尚生活最前端的方方面面。现此类活动都已成熟运作,成为北京时尚界的风向标。
+			</p>
+			<p>
+				敢于尝试、乐于挑战,在时尚、美食、休闲、旅游等消费领域具有极强的活力。
+			</p>
+			<p>
+				敏锐,独特的视角,捕捉时尚消费资讯;积极,健康的理念,引领高品位的生活诉求;前瞻,助力新数字化生活;诚信,创造合作共赢典范。综合《精品购物指南》时尚媒体群和精品网网络媒体的传播实力与专业服务精神,我们为您提供多种跨媒体宣传组合方案,全面覆盖泛北京地区高端人群,为您提供理想的超值服务。
+			</p>
+		</section>
+	</div>
+
+
+	<footer>
+		<div class="bnav">
+			<div class="wrapper">
+				<ul>
+					<li><a href=""><img src="images/jpw.png?v=79b1ce8d" alt=""></a></li>
+					<li><a href=""><img src="images/jpcm.png?v=8fedd557" alt=""></a></li>
+					<li><a href="">关于我们</a></li>
+					<li><a href="">联系我们</a></li>
+					<li><a href="">法律声明</a></li>
+					<li><a href="">报刊订阅</a></li>
+				</ul>
+			</div>
+		</div>
+		<div class="wrapper">
+			<div class="contact">
+				<p>地址:北京市海淀区中关村大街甲28号海淀文化艺术大厦B座7层</p>
+				<p>邮编:100086 | 总机:(010)51269000</p>
+				<br>
+				<p>Copyright©1996-2016 精品传媒集团版权所有 未经授权禁止复制或建立镜像</p>
+				<p><a href="">京ICP许可证080599号</a> <a href="">京ICP备09028816号</a> <a href="">广告经营许可证</a> <a
+						href="">京海工商广字第190号</a></p>
+				<p>北京市公安局海淀分局 备案号:1101081739</p>
+			</div>
+		</div>
+	</footer>
+	<a href="javascript:;" class="gotop"></a>
+	<script src="./static/jquery.js"></script>
+<script type="text/javascript" src="js/global.js?v=7cc82a43"></script><script type="text/javascript" src="js/intro.js?v=6fb007cd"></script></body>
+
+</html>

+ 2 - 0
main/assets/pc/js/article.js

@@ -0,0 +1,2 @@
+webpackJsonp([8],{12:function(n,t){},18:function(n,t,c){n.exports=c(3)},3:function(n,t,c){"use strict";c(0),c(12)}},[18]);
+//# sourceMappingURL=article.js.map?v=794b5df5

+ 1 - 0
main/assets/pc/js/article.js.map

@@ -0,0 +1 @@
+{"version":3,"sources":["webpack:///js/article.js","webpack:///./pc/src/router/article.js"],"names":["webpackJsonp","12","module","exports","18","__webpack_require__","3"],"mappings":"AAAAA,cAAc,IAERC,GACA,SAAUC,EAAQC,KAMlBC,GACA,SAAUF,EAAQC,EAASE,GAEjCH,EAAOC,QAAUE,EAAoB,IAK/BC,EACA,SAAUJ,EAAQC,EAASE,GAEjC,YCpBAA,GAAA,GACAA,EAAA,OD4BG","file":"js/article.js?v=794b5df5","sourcesContent":["webpackJsonp([8],{\n\n/***/ 12:\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ 18:\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(3);\n\n\n/***/ }),\n\n/***/ 3:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(0);\n\n__webpack_require__(12);\n\n/***/ })\n\n},[18]);\n\n\n// WEBPACK FOOTER //\n// js/article.js?v=794b5df5","import './global';\nimport '../css/article.css';\n\n\n// WEBPACK FOOTER //\n// ./pc/src/router/article.js"],"sourceRoot":""}

+ 155 - 0
main/assets/pc/js/config.js

@@ -0,0 +1,155 @@
+function getUrlParam(name)
+{
+    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
+    var r = window.location.search.substr(1).match(reg);  //匹配目标参数
+    if (r != null) return unescape(r[2]); return null; //返回参数值
+}
+
+function login()
+{
+	var html = '<div class="form-item"><i class="ico-email"></i><input type="text" placeholder="邮箱" id="email" name="email"></div><div class="form-item"><i class="ico-password"></i><input type="password" placeholder="密码"  id="password" name="password"></div><div class="form-links"><a href="javascript:;" onclick="forget()">忘记密码?</a><a href="javascript:;" onclick="reg()">注册用户</a></div><div class="btn-wrap">';
+
+	return layer('login', '登录', html, '登录');
+}
+
+function reg()
+{
+	var html = '<div class="form-item"><i class="ico-email"></i><input type="text" placeholder="邮箱" id="email" name="email"></div><div class="form-item"><i class="ico-password"></i><input type="password" placeholder="密码" id="password" name="password"></div><div class="form-item"><i class="ico-password"></i><input type="password" placeholder="确认密码" id="cpassword" name="cpassword"></div><div class="form-links align-right"><a href="javascript:;" onclick="login()">已有账号?点此登录</a></div>';
+
+	return layer('reg', '注册', html, '注册');
+}
+
+function forget()
+{
+	var html = '<div class="form-item"><i class="ico-email"></i><input type="text" placeholder="邮箱" id="email" name="email"></div><div class="form-links align-right"><a href="javascript:;" onclick="login()">点此登录</a><span>|</span><a href="javascript:;" onclick="reg()">点此注册</a></div>';
+
+	return layer('find_password', '找回密码', html, '确认');
+}
+
+function edit_password()
+{
+	var signature = getUrlParam('signature');
+	var email = getUrlParam('email');
+	var html = '<div class="form-item"><i class="ico-email"></i><input type="hidden" id="signature" name="signature" value="'+signature+'"><input type="text" placeholder="邮箱" id="email" name="email" value="'+email+'" readonly></div><div class="form-item"><i class="ico-password"></i><input type="password" placeholder="密码" id="password" name="password"></div><div class="form-item"><i class="ico-password"></i><input type="password" placeholder="确认密码" id="cpassword" name="cpassword"></div><div class="form-links align-right"><a href="javascript:;" onclick="login()">已有账号?点此登录</a></div>';
+
+	return layer('edit_password', '密码重置', html, '确认');
+}
+
+function layer(id, title, content, button)
+{
+	var refer = location.href;
+	var mask = '<div class="mask">';
+	var html = '';
+
+	html += '<div class="layer">';
+	html += '<h4><span>'+title+'</span></h4>';
+	html += '<form id="layer_form">';
+	html += content;
+	html += '<div class="btn-wrap"><a href="javascript:;" id="'+id+'" class="btn">'+button+'</a><input type="hidden" id="refer" name="refer" value="'+refer+'"></div>';
+	html += '</form>';
+	html += '</div>';
+
+	if (!$('.mask').length) {
+		$('body').append(mask + html + '</div>');
+	} else {
+		$('.mask').html(html);
+	}
+	$('.mask').show();
+
+	Dever.User().Init();
+}
+
+//定义用户相关的一些信息
+Dever.User().config = 
+{
+	//初始化,绑定click
+	'click' : 
+	{
+		//登录
+		0 : '#login'
+		//注册
+		,1 : '#reg'
+		//找回密码
+		,2 : '#find_password'
+		//找回密码
+		,3 : '#edit_password'
+	}
+
+	//登录信息
+	,0 :
+	{
+		'input' :
+		{
+			'email' : '#email'
+			,'password' : '#password'
+			,'refer' : '#refer|'
+		}
+		//错误提示的div
+		,'status' : '#dever_alert'
+		//错误提示
+		,'error' : '您的邮箱或密码错误'
+		//登录要提交的url
+		,'url' : Dever.Host('passport', 'login.action')
+	}
+
+	//注册信息
+	,1 :
+	{
+		'input' :
+		{
+			'email' : '#email'
+			,'username' : '#email'
+			,'password' : '#password'
+			,'cpassword' : '#cpassword'
+			,'refer' : '#refer|'
+		}
+		//错误提示的div
+		,'status' : '#dever_alert'
+		//错误提示
+		,'error' : '您填写的信息有误'
+		//登录要提交的url
+		,'url' : Dever.Host('passport', 'reg.action')
+	}
+	
+	//找回密码发送邮件
+	,2 :
+	{
+		'input' :
+		{
+			'email' : '#email'
+			,'refer' : '#refer|'
+		}
+		//错误提示的div
+		,'status' : '#dever_alert'
+		//错误提示
+		,'error' : '您填写的信息有误'
+		//找回密码发送邮件
+		,'url' : Dever.Host('passport', 'reg.forget_email')
+	}
+
+	,3 :
+	{
+		'input' :
+		{
+			'email' : '#email'
+			,'password' : '#password'
+			,'cpassword' : '#cpassword'
+			,'signature' : '#signature'
+			,'refer' : '#refer|'
+		}
+		//错误提示的div
+		,'status' : '#dever_alert'
+		//错误提示
+		,'error' : '您填写的信息有误'
+		//找回密码操作
+		,'url' : Dever.Host('passport', 'reg.forget')
+	}
+};
+
+$(document).ready(function()
+{
+	var html = location.href;
+	if (html.indexOf('signature') != -1) {
+		edit_password();
+	}
+});

+ 2 - 0
main/assets/pc/js/contact.js

@@ -0,0 +1,2 @@
+webpackJsonp([7],{1:function(n,t){},19:function(n,t,c){n.exports=c(4)},4:function(n,t,c){"use strict";c(0),c(1)}},[19]);
+//# sourceMappingURL=contact.js.map?v=6fb007cd

+ 1 - 0
main/assets/pc/js/contact.js.map

@@ -0,0 +1 @@
+{"version":3,"sources":["webpack:///js/contact.js","webpack:///./pc/src/router/contact.js"],"names":["webpackJsonp","1","module","exports","19","__webpack_require__","4"],"mappings":"AAAAA,cAAc,IAERC,EACA,SAAUC,EAAQC,KAMlBC,GACA,SAAUF,EAAQC,EAASE,GAEjCH,EAAOC,QAAUE,EAAoB,IAK/BC,EACA,SAAUJ,EAAQC,EAASE,GAEjC,YCpBAA,GAAA,GACAA,EAAA,MD4BG","file":"js/contact.js?v=6fb007cd","sourcesContent":["webpackJsonp([7],{\n\n/***/ 1:\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ 19:\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(4);\n\n\n/***/ }),\n\n/***/ 4:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(0);\n\n__webpack_require__(1);\n\n/***/ })\n\n},[19]);\n\n\n// WEBPACK FOOTER //\n// js/contact.js?v=6fb007cd","import './global';\nimport '../css/static_article.css';\n\n\n// WEBPACK FOOTER //\n// ./pc/src/router/contact.js"],"sourceRoot":""}

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
main/assets/pc/js/global.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
main/assets/pc/js/global.js.map


+ 2 - 0
main/assets/pc/js/index.js

@@ -0,0 +1,2 @@
+webpackJsonp([6],{14:function(n,t){},21:function(n,t,c){n.exports=c(5)},5:function(n,t,c){"use strict";c(0),c(14)}},[21]);
+//# sourceMappingURL=index.js.map?v=68d4b78b

+ 1 - 0
main/assets/pc/js/index.js.map

@@ -0,0 +1 @@
+{"version":3,"sources":["webpack:///js","webpack:///./pc/src/router/index.js"],"names":["webpackJsonp","14","module","exports","21","__webpack_require__","5"],"mappings":"AAAAA,cAAc,IAERC,GACA,SAAUC,EAAQC,KAMlBC,GACA,SAAUF,EAAQC,EAASE,GAEjCH,EAAOC,QAAUE,EAAoB,IAK/BC,EACA,SAAUJ,EAAQC,EAASE,GAEjC,YCpBAA,GAAA,GACAA,EAAA,OD4BG","file":"js/index.js?v=68d4b78b","sourcesContent":["webpackJsonp([6],{\n\n/***/ 14:\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ 21:\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(5);\n\n\n/***/ }),\n\n/***/ 5:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(0);\n\n__webpack_require__(14);\n\n/***/ })\n\n},[21]);\n\n\n// WEBPACK FOOTER //\n// js?v=68d4b78b","import './global';\r\nimport '../css/index.css';\n\n\n// WEBPACK FOOTER //\n// ./pc/src/router/index.js"],"sourceRoot":""}

+ 2 - 0
main/assets/pc/js/intro.js

@@ -0,0 +1,2 @@
+webpackJsonp([5],{1:function(n,t){},22:function(n,t,c){n.exports=c(6)},6:function(n,t,c){"use strict";c(0),c(1)}},[22]);
+//# sourceMappingURL=intro.js.map?v=6fb007cd

+ 1 - 0
main/assets/pc/js/intro.js.map

@@ -0,0 +1 @@
+{"version":3,"sources":["webpack:///js/intro.js","webpack:///./pc/src/router/intro.js"],"names":["webpackJsonp","1","module","exports","22","__webpack_require__","6"],"mappings":"AAAAA,cAAc,IAERC,EACA,SAAUC,EAAQC,KAMlBC,GACA,SAAUF,EAAQC,EAASE,GAEjCH,EAAOC,QAAUE,EAAoB,IAK/BC,EACA,SAAUJ,EAAQC,EAASE,GAEjC,YCpBAA,GAAA,GACAA,EAAA,MD4BG","file":"js/intro.js?v=6fb007cd","sourcesContent":["webpackJsonp([5],{\n\n/***/ 1:\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ 22:\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(6);\n\n\n/***/ }),\n\n/***/ 6:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(0);\n\n__webpack_require__(1);\n\n/***/ })\n\n},[22]);\n\n\n// WEBPACK FOOTER //\n// js/intro.js?v=6fb007cd","import './global';\nimport '../css/static_article.css';\n\n\n// WEBPACK FOOTER //\n// ./pc/src/router/intro.js"],"sourceRoot":""}

+ 2 - 0
main/assets/pc/js/legal.js

@@ -0,0 +1,2 @@
+webpackJsonp([4],{1:function(n,t){},23:function(n,t,c){n.exports=c(7)},7:function(n,t,c){"use strict";c(0),c(1)}},[23]);
+//# sourceMappingURL=legal.js.map?v=6fb007cd

+ 1 - 0
main/assets/pc/js/legal.js.map

@@ -0,0 +1 @@
+{"version":3,"sources":["webpack:///js/legal.js","webpack:///./pc/src/router/legal.js"],"names":["webpackJsonp","1","module","exports","23","__webpack_require__","7"],"mappings":"AAAAA,cAAc,IAERC,EACA,SAAUC,EAAQC,KAMlBC,GACA,SAAUF,EAAQC,EAASE,GAEjCH,EAAOC,QAAUE,EAAoB,IAK/BC,EACA,SAAUJ,EAAQC,EAASE,GAEjC,YCpBAA,GAAA,GACAA,EAAA,MD4BG","file":"js/legal.js?v=6fb007cd","sourcesContent":["webpackJsonp([4],{\n\n/***/ 1:\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ 23:\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(7);\n\n\n/***/ }),\n\n/***/ 7:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(0);\n\n__webpack_require__(1);\n\n/***/ })\n\n},[23]);\n\n\n// WEBPACK FOOTER //\n// js/legal.js?v=6fb007cd","import './global';\nimport '../css/static_article.css';\n\n\n// WEBPACK FOOTER //\n// ./pc/src/router/legal.js"],"sourceRoot":""}

+ 2 - 0
main/assets/pc/js/list.js

@@ -0,0 +1,2 @@
+webpackJsonp([3],{2:function(n,t){},24:function(n,t,c){n.exports=c(8)},8:function(n,t,c){"use strict";c(0),c(2)}},[24]);
+//# sourceMappingURL=list.js.map?v=95fe5860

+ 1 - 0
main/assets/pc/js/list.js.map

@@ -0,0 +1 @@
+{"version":3,"sources":["webpack:///js/list.js","webpack:///./pc/src/router/list.js"],"names":["webpackJsonp","2","module","exports","24","__webpack_require__","8"],"mappings":"AAAAA,cAAc,IAERC,EACA,SAAUC,EAAQC,KAMlBC,GACA,SAAUF,EAAQC,EAASE,GAEjCH,EAAOC,QAAUE,EAAoB,IAK/BC,EACA,SAAUJ,EAAQC,EAASE,GAEjC,YCpBAA,GAAA,GACAA,EAAA,MD4BG","file":"js/list.js?v=95fe5860","sourcesContent":["webpackJsonp([3],{\n\n/***/ 2:\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ 24:\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(8);\n\n\n/***/ }),\n\n/***/ 8:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(0);\n\n__webpack_require__(2);\n\n/***/ })\n\n},[24]);\n\n\n// WEBPACK FOOTER //\n// js/list.js?v=95fe5860","import './global';\nimport '../css/list.css';\n\n\n// WEBPACK FOOTER //\n// ./pc/src/router/list.js"],"sourceRoot":""}

+ 2 - 0
main/assets/pc/js/list1.js

@@ -0,0 +1,2 @@
+webpackJsonp([2],{2:function(n,t){},25:function(n,t,c){n.exports=c(9)},9:function(n,t,c){"use strict";c(0),c(2)}},[25]);
+//# sourceMappingURL=list1.js.map?v=95fe5860

+ 1 - 0
main/assets/pc/js/list1.js.map

@@ -0,0 +1 @@
+{"version":3,"sources":["webpack:///js/list1.js","webpack:///./pc/src/router/list1.js"],"names":["webpackJsonp","2","module","exports","25","__webpack_require__","9"],"mappings":"AAAAA,cAAc,IAERC,EACA,SAAUC,EAAQC,KAMlBC,GACA,SAAUF,EAAQC,EAASE,GAEjCH,EAAOC,QAAUE,EAAoB,IAK/BC,EACA,SAAUJ,EAAQC,EAASE,GAEjC,YCpBAA,GAAA,GACAA,EAAA,MD4BG","file":"js/list1.js?v=95fe5860","sourcesContent":["webpackJsonp([2],{\n\n/***/ 2:\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ 25:\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(9);\n\n\n/***/ }),\n\n/***/ 9:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(0);\n\n__webpack_require__(2);\n\n/***/ })\n\n},[25]);\n\n\n// WEBPACK FOOTER //\n// js/list1.js?v=95fe5860","import './global';\nimport '../css/list.css';\n\n\n// WEBPACK FOOTER //\n// ./pc/src/router/list1.js"],"sourceRoot":""}

+ 2 - 0
main/assets/pc/js/magzine.js

@@ -0,0 +1,2 @@
+webpackJsonp([1],{10:function(n,t,c){"use strict";c(0),c(15)},15:function(n,t){},26:function(n,t,c){n.exports=c(10)}},[26]);
+//# sourceMappingURL=magzine.js.map?v=dcf771fb

+ 1 - 0
main/assets/pc/js/magzine.js.map

@@ -0,0 +1 @@
+{"version":3,"sources":["webpack:///js/magzine.js","webpack:///./pc/src/router/magzine.js"],"names":["webpackJsonp","10","module","exports","__webpack_require__","15","26"],"mappings":"AAAAA,cAAc,IAERC,GACA,SAAUC,EAAQC,EAASC,GAEjC,YCLAA,GAAA,GACAA,EAAA,KDaMC,GACA,SAAUH,EAAQC,KAMlBG,GACA,SAAUJ,EAAQC,EAASC,GAEjCF,EAAOC,QAAUC,EAAoB,OAKlC","file":"js/magzine.js?v=dcf771fb","sourcesContent":["webpackJsonp([1],{\n\n/***/ 10:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(0);\n\n__webpack_require__(15);\n\n/***/ }),\n\n/***/ 15:\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ 26:\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(10);\n\n\n/***/ })\n\n},[26]);\n\n\n// WEBPACK FOOTER //\n// js/magzine.js?v=dcf771fb","import './global';\nimport '../css/magzine.css';\n\n\n// WEBPACK FOOTER //\n// ./pc/src/router/magzine.js"],"sourceRoot":""}

+ 2 - 0
main/assets/pc/js/video.js

@@ -0,0 +1,2 @@
+webpackJsonp([0],{11:function(n,t,c){"use strict";c(0),c(17)},17:function(n,t){},27:function(n,t,c){n.exports=c(11)}},[27]);
+//# sourceMappingURL=video.js.map?v=619630c6

+ 1 - 0
main/assets/pc/js/video.js.map

@@ -0,0 +1 @@
+{"version":3,"sources":["webpack:///js/video.js","webpack:///./pc/src/router/video.js"],"names":["webpackJsonp","11","module","exports","__webpack_require__","17","27"],"mappings":"AAAAA,cAAc,IAERC,GACA,SAAUC,EAAQC,EAASC,GAEjC,YCLAA,GAAA,GACAA,EAAA,KDaMC,GACA,SAAUH,EAAQC,KAMlBG,GACA,SAAUJ,EAAQC,EAASC,GAEjCF,EAAOC,QAAUC,EAAoB,OAKlC","file":"js/video.js?v=619630c6","sourcesContent":["webpackJsonp([0],{\n\n/***/ 11:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(0);\n\n__webpack_require__(17);\n\n/***/ }),\n\n/***/ 17:\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ 27:\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(11);\n\n\n/***/ })\n\n},[27]);\n\n\n// WEBPACK FOOTER //\n// js/video.js?v=619630c6","import './global';\nimport '../css/video.css';\n\n\n// WEBPACK FOOTER //\n// ./pc/src/router/video.js"],"sourceRoot":""}

+ 108 - 0
main/assets/pc/legal.html

@@ -0,0 +1,108 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+	<meta charset="utf-8">
+	<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
+	<meta content="yes" name="apple-mobile-web-app-capable">
+	<meta content="black" name="apple-mobile-web-app-status-bar-style">
+	<meta content="telephone=no" name="format-detection">
+
+	<title>法律声明</title>
+
+	<meta name="Keywords" content="" />
+	<meta name="Description" content="" />
+<link href="css/global.css?v=38e4caa9" rel="stylesheet"><link href="css/legal.css?v=52636a5d" rel="stylesheet"></head>
+
+<body>
+	<header class="bt10">
+		<div class="wrapper">
+			<div class="clearfix">
+				<a class="logo"><img src="images/logo.png?v=715222a7" alt=""></a>
+				<ul class="menu">
+					<li><a href="">登录</a></li>
+					<li><a href="">注册</a></li>
+					<li><a href="">企业邮箱登录</a></li>
+				</ul>
+			</div>
+			<ul class="tnav">
+				<li><a href="">首页</a></li>
+				<li><a href="">时装</a></li>
+				<li><a href="">美容</a></li>
+				<li><a href="">娱乐</a></li>
+				<li><a href="">视频</a></li>
+				<li><a href="">秀场</a></li>
+				<li class=""><a href="">电子杂志</a></li>
+				<li><a href="">报刊订阅</a></li>
+			</ul>
+		</div>
+	</header>
+
+	<h3 class="common-tit">
+		<div>
+			<div class="wrapper">LEGAL STATEMENT</div>
+		</div>
+		<div>
+			<div class="wrapper">
+				<p><span>法律声明</span></p>
+			</div>
+		</div>
+	</h3>
+	<div class="article wrapper">
+		<img src="images/banner.jpg?v=7bbe3c38" alt="">
+		<section>
+			<h5>法律声明</h5>
+			<p>欢迎登录精品网,在使用精品网提供的各项服务时,请您务必遵守适用于各项服务的规则、指引、政策、条件或条款。精品网谨此提示您认真仔细阅读本法律声明的各项条款,并及时关注本法律声明的任何变化。</p>
+		</section>
+		<section>
+			<h5>法律声明</h5>
+			<p>精品网(北京)科技有限公司对其发行的或其与合作公司共同发行的包括但不限于产品或服务的全部内容及本网站上的材料(除转载和用户自行发布的信息之外)拥有版权等知识产权,受法律保护。未经精品网(北京)科技有限公司有限公司书面许可,任何其他个人或组织均不得以任何形式将本网站的各项资源转载、复制、编辑、修改或抄录于其他任何场合;不得将上述资源在其他服务器或文档中作镜像复制或保存。如需使用,请与本网站联系。</p>
+			<p>凡本网站注明"来源:XXX(非精品网)"的作品,均转载自其他媒体,转载目的在于传递更多信息,并不代表本网站赞同其观点和/或对其真实性负责。本网站转载其他媒体之作品,意在为公众提供免费服务。如权利所有人拒绝在本网站发布其作品,可与本网站联系,本网站将视情况予以撤除。</p>
+			<p>本网站不对由本网站链接到的、属于其他网站之内容负责。任何对其他网站内容的链接仅为方便本网站用户之目的而设,本网站不保证该外部链接的准确性和完整性。</p>
+			<p>信息发布规则</p>
+			<p>本网站对于用户发布的信息和言论不承担任何法律责任,该信息和言论的真实性、准确性和合法性均由发布者自行负责。本网站有权删除不当信息和言论。</p>
+			<p>用户在本网站发布信息和言论应遵守以下规则:</p>
+			<p>1、不利用本网站进行任何违反法律、法规或违背公序良俗的活动,包括不在本网站上载、张贴、复制、发布、传播含有下列内容的信息:</p>
+			<p>(1)反对宪法所确定的基本原则的;</p>
+			<p>(2)危害国家安全、泄漏国家机密、颠覆国家政权、破坏国家统一的;</p>
+			<p>(3)损害国家荣誉和利益的;</p>
+			<p>(4)煽动民族仇恨、民族歧视、破坏民族团结的;</p>
+			<p>(6)散播谣言、扰乱社会秩序、破坏社会稳定的;</p>
+			<p>(7)散布淫秽、色情、赌博、暴力、凶杀、恐怖或者教唆犯罪的;;</p>
+			<p>(8)侮辱或者诽谤他人、侵害他人合法权益的;</p>
+			<p>(9)侵犯版权的;</p>
+			<p>(10)含有法律、行政法规禁止的其他内容的。</p>
+		</section>
+	</div>
+
+
+	<footer>
+		<div class="bnav">
+			<div class="wrapper">
+				<ul>
+					<li><a href=""><img src="images/jpw.png?v=79b1ce8d" alt=""></a></li>
+					<li><a href=""><img src="images/jpcm.png?v=8fedd557" alt=""></a></li>
+					<li><a href="">关于我们</a></li>
+					<li><a href="">联系我们</a></li>
+					<li><a href="">法律声明</a></li>
+					<li><a href="">报刊订阅</a></li>
+				</ul>
+			</div>
+		</div>
+		<div class="wrapper">
+			<div class="contact">
+				<p>地址:北京市海淀区中关村大街甲28号海淀文化艺术大厦B座7层</p>
+				<p>邮编:100086 | 总机:(010)51269000</p>
+				<br>
+				<p>Copyright©1996-2016 精品传媒集团版权所有 未经授权禁止复制或建立镜像</p>
+				<p><a href="">京ICP许可证080599号</a> <a href="">京ICP备09028816号</a> <a href="">广告经营许可证</a> <a
+						href="">京海工商广字第190号</a></p>
+				<p>北京市公安局海淀分局 备案号:1101081739</p>
+			</div>
+		</div>
+	</footer>
+	<a href="javascript:;" class="gotop"></a>
+	<script src="./static/jquery.js"></script>
+<script type="text/javascript" src="js/global.js?v=7cc82a43"></script><script type="text/javascript" src="js/legal.js?v=6fb007cd"></script></body>
+
+</html>

+ 170 - 0
main/assets/pc/list.html

@@ -0,0 +1,170 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+	<meta charset="utf-8">
+	<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
+	<meta content="yes" name="apple-mobile-web-app-capable">
+	<meta content="black" name="apple-mobile-web-app-status-bar-style">
+	<meta content="telephone=no" name="format-detection">
+
+	<title>列表</title>
+
+	<meta name="Keywords" content="" />
+	<meta name="Description" content="" />
+<link href="css/global.css?v=38e4caa9" rel="stylesheet"><link href="css/list.css?v=58ab3ac6" rel="stylesheet"></head>
+
+<body>
+	<header class="bt10">
+		<div class="wrapper">
+			<div class="clearfix">
+				<a class="logo"><img src="images/logo.png?v=715222a7" alt=""></a>
+				<ul class="menu">
+					<li><a href="">登录</a></li>
+					<li><a href="">注册</a></li>
+					<li><a href="">企业邮箱登录</a></li>
+				</ul>
+			</div>
+			<ul class="tnav">
+				<li><a href="">首页</a></li>
+				<li><a href="">时装</a></li>
+				<li><a href="">美容</a></li>
+				<li><a href="">娱乐</a></li>
+				<li><a href="">视频</a></li>
+				<li><a href="">秀场</a></li>
+				<li class=""><a href="">电子杂志</a></li>
+				<li><a href="">报刊订阅</a></li>
+			</ul>
+		</div>
+	</header>
+	<div class="banner-ad">
+		<a href="" class="wrapper"><img src="images/ad1.jpg?v=e6a3c127" alt=""></a>
+	</div>
+	<h3 class="common-tit">
+		<div>
+			<div class="wrapper">CAREFULLY CHOSEN</div>
+		</div>
+		<div>
+			<div class="wrapper">
+				<p><span>精选</span></p>
+				<div class="list-switch">
+					<a href="#" class="ico-row cur"></a>
+					<a href="#" class="ico-col"></a>
+				</div>
+			</div>
+		</div>
+	</h3>
+	<div class="article wrapper">
+		<div class="article-wrap star-module">
+			<div class="wrapper clearfix">
+				<dl>
+					<dt>
+						<a href=""><img src="images/tmp1.jpg?v=c5bb1cf7" alt=""></a>
+					</dt>
+					<dd>
+						<h3><a href="#">明星设计时代的更替 | MODE</a></h3>
+						<p>85 岁的 Karl Lagerfeld 走了,Chanel 进入了“后老佛爷”时代。人们说,这标志着一个时装时代的结束。30岁的蕾哈娜(Rihanna)即......</p>
+					</dd>
+				</dl>
+				<dl>
+					<dt>
+						<a href=""><img src="images/tmp1.jpg?v=c5bb1cf7" alt=""></a>
+					</dt>
+					<dd>
+						<h3><a href="#">在长沙找到时尚“新活法”</a></h3>
+						<p>85 岁的 Karl Lagerfeld 走了,Chanel 进入了“后老佛爷”时代。人们说,这标志着一个时装时代的结束。30岁的蕾哈娜(Rihanna)即......
+						</p>
+					</dd>
+				</dl>
+				<dl>
+					<dt>
+						<a href=""><img src="images/tmp1.jpg?v=c5bb1cf7" alt=""></a>
+					</dt>
+					<dd>
+						<h3><a href="#">明星设计时代的更替 | MODE</a></h3>
+						<p>85 岁的 Karl Lagerfeld 走了,Chanel 进入了“后老佛爷”时代。人们说,这标志着一个时装时代的结束。30岁的蕾哈娜(Rihanna)即......</p>
+					</dd>
+				</dl>
+				<dl>
+					<dt>
+						<a href=""><img src="images/tmp1.jpg?v=c5bb1cf7" alt=""></a>
+					</dt>
+					<dd>
+						<h3><a href="#">在长沙找到时尚“新活法”</a></h3>
+						<p>85 岁的 Karl Lagerfeld 走了,Chanel 进入了“后老佛爷”时代。人们说,这标志着一个时装时代的结束。30岁的蕾哈娜(Rihanna)即......
+						</p>
+					</dd>
+				</dl>
+			</div>
+		</div>
+		<div class="r-cont">
+			<a href="" class="ad">
+				<img src="images/ad.jpg?v=86319426" width="380" height="600" alt="">
+			</a>
+			<div class="top-module">
+				<h3>精彩TOP</h3>
+				<ul>
+					<li><em>1</em><a href="#">倪妮看秀造型被称赞,倪妮看秀造型被称赞,平光镜搭...</a></li>
+					<li><em>2</em><a href="#">倪妮看秀造型被称赞,平光镜搭...</a></li>
+					<li><em>3</em><a href="#">倪妮看秀造型被称赞,平光镜搭...</a></li>
+					<li><em>4</em><a href="#">倪妮看秀造型被称赞,平光镜搭...</a></li>
+					<li><em>5</em><a href="#">倪妮看秀造型被称赞,平光镜搭...</a></li>
+					<li><em>6</em><a href="#">倪妮看秀造型被称赞,平光镜搭...</a></li>
+					<li><em>7</em><a href="#">倪妮看秀造型被称赞,平光镜搭...</a></li>
+					<li><em>8</em><a href="#">倪妮看秀造型被称赞,平光镜搭...</a></li>
+					<li><em>9</em><a href="#">倪妮看秀造型被称赞,平光镜搭...</a></li>
+					<li><em>10</em><a href="#">倪妮看秀造型被称赞,平光镜搭...</a></li>
+				</ul>
+			</div>
+		</div>
+	</div>
+
+	<div class="wrapper">
+		<div class="common-pagination ">
+			<ul>
+				<li class="pg-prev"><a href="">上一页</a></li>
+				<li><a href="">1</a></li>
+				<li><a href="">2</a></li>
+				<li><a href="">3</a></li>
+				<li><a href="">4</a></li>
+				<li><a href="">5</a></li>
+				<li><a href="">6</a></li>
+				<li><a href="">7</a></li>
+				<li><a href="">8</a></li>
+				<li><span>...</span></li>
+				<li><a href="">20</a></li>
+				<li class="pg-next"><a href="">下一页</a></li>
+			</ul>
+		</div>
+	</div>
+
+	<footer>
+		<div class="bnav">
+			<div class="wrapper">
+				<ul>
+					<li><a href=""><img src="images/jpw.png?v=79b1ce8d" alt=""></a></li>
+					<li><a href=""><img src="images/jpcm.png?v=8fedd557" alt=""></a></li>
+					<li><a href="">关于我们</a></li>
+					<li><a href="">联系我们</a></li>
+					<li><a href="">法律声明</a></li>
+					<li><a href="">报刊订阅</a></li>
+				</ul>
+			</div>
+		</div>
+		<div class="wrapper">
+			<div class="contact">
+				<p>地址:北京市海淀区中关村大街甲28号海淀文化艺术大厦B座7层</p>
+				<p>邮编:100086 | 总机:(010)51269000</p>
+				<br>
+				<p>Copyright©1996-2016 精品传媒集团版权所有 未经授权禁止复制或建立镜像</p>
+				<p><a href="">京ICP许可证080599号</a> <a href="">京ICP备09028816号</a> <a href="">广告经营许可证</a> <a
+						href="">京海工商广字第190号</a></p>
+				<p>北京市公安局海淀分局 备案号:1101081739</p>
+			</div>
+		</div>
+	</footer>
+	<a href="javascript:;" class="gotop"></a>
+	<script src="./static/jquery.js"></script>
+<script type="text/javascript" src="js/global.js?v=7cc82a43"></script><script type="text/javascript" src="js/list.js?v=95fe5860"></script></body>
+
+</html>

+ 169 - 0
main/assets/pc/list1.html

@@ -0,0 +1,169 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+	<meta charset="utf-8">
+	<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
+	<meta content="yes" name="apple-mobile-web-app-capable">
+	<meta content="black" name="apple-mobile-web-app-status-bar-style">
+	<meta content="telephone=no" name="format-detection">
+
+	<title>列表</title>
+
+	<meta name="Keywords" content="" />
+	<meta name="Description" content="" />
+<link href="css/global.css?v=38e4caa9" rel="stylesheet"><link href="css/list1.css?v=58ab3ac6" rel="stylesheet"></head>
+
+<body>
+	<header class="bt10">
+		<div class="wrapper">
+			<div class="clearfix">
+				<a class="logo"><img src="images/logo.png?v=715222a7" alt=""></a>
+				<ul class="menu">
+					<li><a href="">登录</a></li>
+					<li><a href="">注册</a></li>
+					<li><a href="">企业邮箱登录</a></li>
+				</ul>
+			</div>
+			<ul class="tnav">
+				<li><a href="">首页</a></li>
+				<li><a href="">时装</a></li>
+				<li><a href="">美容</a></li>
+				<li><a href="">娱乐</a></li>
+				<li><a href="">视频</a></li>
+				<li><a href="">秀场</a></li>
+				<li class=""><a href="">电子杂志</a></li>
+				<li><a href="">报刊订阅</a></li>
+			</ul>
+		</div>
+	</header>
+	<div class="banner-ad">
+		<a href="" class="wrapper"><img src="images/ad1.jpg?v=e6a3c127" alt=""></a>
+	</div>
+	<h3 class="common-tit">
+		<div>
+			<div class="wrapper">CAREFULLY CHOSEN</div>
+		</div>
+		<div>
+			<div class="wrapper">
+				<p><span>精选</span></p>
+				<div class="list-switch">
+					<a href="#" class="ico-row "></a>
+					<a href="#" class="ico-col cur"></a>
+				</div>
+			</div>
+		</div>
+	</h3>
+	<div class="article wrapper">
+		<div class="article-wrap star-module list-col">
+			<div class="wrapper clearfix">
+				<dl>
+					<dt>
+						<a href=""><img src="images/tmp1.jpg?v=c5bb1cf7" alt=""></a>
+					</dt>
+					<dd>
+						<h3><a href="#">明星设计时代的更替 | MODE</a></h3>
+						<p>85 岁的 Karl Lagerfeld 走了,Chanel 进入了“后老佛爷”时代。人们说,这标志着一个时装时代的结束。30岁的蕾哈娜(Rihanna)即......</p>
+					</dd>
+				</dl>
+				<dl>
+					<dt>
+						<a href=""><img src="images/tmp1.jpg?v=c5bb1cf7" alt=""></a>
+					</dt>
+					<dd>
+						<h3><a href="#">在长沙找到时尚“新活法”</a></h3>
+						<p>H&M STUDIO2019春夏系列今日正式发售。不久前,H&M就邀请了众多嘉宾齐聚美国亚利桑那州的沙漠小镇塞多纳,为宾客们呈现了一场精彩绝伦的视觉和听觉盛宴。我们也和H&M......</p>
+					</dd>
+				</dl>
+				<dl>
+					<dt>
+						<a href=""><img src="images/tmp1.jpg?v=c5bb1cf7" alt=""></a>
+					</dt>
+					<dd>
+						<h3><a href="#">明星设计时代的更替 | MODE</a></h3>
+						<p>85 岁的 Karl Lagerfeld 走了,Chanel 进入了“后老佛爷”时代。人们说,这标志着一个时装时代的结束。30岁的蕾哈娜(Rihanna)即......</p>
+					</dd>
+				</dl>
+				<dl>
+						<dt>
+							<a href=""><img src="images/tmp1.jpg?v=c5bb1cf7" alt=""></a>
+						</dt>
+						<dd>
+							<h3><a href="#">明星设计时代的更替 | MODE</a></h3>
+							<p>H&M STUDIO2019春夏系列今日正式发售。不久前,H&M就邀请了众多嘉宾齐聚美国亚利桑那州的沙漠小镇塞多纳,为宾客们呈现了一场精彩绝伦的视觉和听觉盛宴。我们也和H&M......</p>
+						</dd>
+					</dl>
+			</div>
+			<!-- end 娱乐 -->
+		</div>
+		<div class="r-cont">
+			<a href="" class="ad">
+				<img src="images/ad.jpg?v=86319426" width="380" height="600" alt="">
+			</a>
+			<div class="top-module">
+				<h3>精彩TOP</h3>
+				<ul>
+					<li><em>1</em><a href="#">倪妮看秀造型被称赞,倪妮看秀造型被称赞,平光镜搭...</a></li>
+					<li><em>2</em><a href="#">倪妮看秀造型被称赞,平光镜搭...</a></li>
+					<li><em>3</em><a href="#">倪妮看秀造型被称赞,平光镜搭...</a></li>
+					<li><em>4</em><a href="#">倪妮看秀造型被称赞,平光镜搭...</a></li>
+					<li><em>5</em><a href="#">倪妮看秀造型被称赞,平光镜搭...</a></li>
+					<li><em>6</em><a href="#">倪妮看秀造型被称赞,平光镜搭...</a></li>
+					<li><em>7</em><a href="#">倪妮看秀造型被称赞,平光镜搭...</a></li>
+					<li><em>8</em><a href="#">倪妮看秀造型被称赞,平光镜搭...</a></li>
+					<li><em>9</em><a href="#">倪妮看秀造型被称赞,平光镜搭...</a></li>
+					<li><em>10</em><a href="#">倪妮看秀造型被称赞,平光镜搭...</a></li>
+				</ul>
+			</div>
+		</div>
+	</div>
+
+	<div class="wrapper">
+		<div class="common-pagination ">
+			<ul>
+				<li class="pg-prev"><a href="">上一页</a></li>
+				<li><a href="">1</a></li>
+				<li><a href="">2</a></li>
+				<li><a href="">3</a></li>
+				<li><a href="">4</a></li>
+				<li><a href="">5</a></li>
+				<li><a href="">6</a></li>
+				<li><a href="">7</a></li>
+				<li><a href="">8</a></li>
+				<li><span>...</span></li>
+				<li><a href="">20</a></li>
+				<li class="pg-next"><a href="">下一页</a></li>
+			</ul>
+		</div>
+	</div>
+
+	<footer>
+		<div class="bnav">
+			<div class="wrapper">
+				<ul>
+					<li><a href=""><img src="images/jpw.png?v=79b1ce8d" alt=""></a></li>
+					<li><a href=""><img src="images/jpcm.png?v=8fedd557" alt=""></a></li>
+					<li><a href="">关于我们</a></li>
+					<li><a href="">联系我们</a></li>
+					<li><a href="">法律声明</a></li>
+					<li><a href="">报刊订阅</a></li>
+				</ul>
+			</div>
+		</div>
+		<div class="wrapper">
+			<div class="contact">
+				<p>地址:北京市海淀区中关村大街甲28号海淀文化艺术大厦B座7层</p>
+				<p>邮编:100086 | 总机:(010)51269000</p>
+				<br>
+				<p>Copyright©1996-2016 精品传媒集团版权所有 未经授权禁止复制或建立镜像</p>
+				<p><a href="">京ICP许可证080599号</a> <a href="">京ICP备09028816号</a> <a href="">广告经营许可证</a> <a
+						href="">京海工商广字第190号</a></p>
+				<p>北京市公安局海淀分局 备案号:1101081739</p>
+			</div>
+		</div>
+	</footer>
+	<a href="javascript:;" class="gotop"></a>
+	<script src="./static/jquery.js"></script>
+<script type="text/javascript" src="js/global.js?v=7cc82a43"></script><script type="text/javascript" src="js/list1.js?v=95fe5860"></script></body>
+
+</html>

Некоторые файлы не были показаны из-за большого количества измененных файлов