安装包
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from web.controllers.api import route_api
|
||||
from flask import request,jsonify,g
|
||||
from flask import request,jsonify,g,send_file
|
||||
from application import app,db
|
||||
import requests,json
|
||||
from common.models.member.Member import Member
|
||||
@@ -155,21 +155,17 @@ def ruilaizi():
|
||||
resp = {'code': 200, 'msg': 'r操作成功~', 'data': {}}
|
||||
req = request.values
|
||||
app.logger.info(req)
|
||||
# name = req['nickname'] if 'nickname' in req else ''
|
||||
# app.logger.info(name)
|
||||
# mobile = req['mobile'] if 'mobile' in req else 0
|
||||
# app.logger.info(mobile)
|
||||
# token = req['token'] if 'token' in req else ''
|
||||
# app.logger.info(token)
|
||||
# 文件路径 1.txt为测试文件 在项目的static/file目录下
|
||||
# 获取文件的路径和文件名
|
||||
filepath = os.path.join('static/app-release.apk')
|
||||
try:
|
||||
# 尝试打开文件并发送
|
||||
return send_file(filepath, as_attachment=True)
|
||||
except PermissionError:
|
||||
return '文件权限错误,无法访问', 403
|
||||
except Exception as e:
|
||||
return f'发生错误:{str(e)}', 500
|
||||
|
||||
# miya_info = Membermiya.query.filter_by(nickname=name).first()
|
||||
# if not miya_info:
|
||||
# model_membermiya = Membermiya()
|
||||
# model_membermiya.nickname = name
|
||||
# model_membermiya.mobile = mobile
|
||||
# model_membermiya.token = token
|
||||
# db.session.add(model_membermiya)
|
||||
# db.session.commit()
|
||||
return jsonify(resp)
|
||||
|
||||
@route_api.route("/member/ruilaizitest",methods = [ "GET","POST" ])
|
||||
|
||||
8
web/controllers/guanwang/Guanwang.py
Normal file
@@ -0,0 +1,8 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from flask import Blueprint
|
||||
|
||||
route_guanwang = Blueprint('guanwang_page', __name__)
|
||||
|
||||
@route_guanwang.route("/guanwang")
|
||||
def guanwang():
|
||||
return "doudouindex"
|
||||
1
web/controllers/guanwang/__init__.py
Normal file
@@ -0,0 +1 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
BIN
web/controllers/guanwang/__pycache__/Guanwang.cpython-39.pyc
Normal file
BIN
web/controllers/guanwang/__pycache__/__init__.cpython-39.pyc
Normal file
37
web/doudou/.project
Normal file
@@ -0,0 +1,37 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>yaocai</name>
|
||||
<comment>Create By HBuilder</comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>com.aptana.ide.core.unifiedBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>com.aptana.projects.webnature</nature>
|
||||
</natures>
|
||||
<filteredResources>
|
||||
<filter>
|
||||
<id>1605020327496</id>
|
||||
<name></name>
|
||||
<type>10</type>
|
||||
<matcher>
|
||||
<id>org.eclipse.ui.ide.orFilterMatcher</id>
|
||||
<arguments>
|
||||
<matcher>
|
||||
<id>org.eclipse.ui.ide.multiFilter</id>
|
||||
<arguments>1.0-projectRelativePath-matches-false-false-bin</arguments>
|
||||
</matcher>
|
||||
<matcher>
|
||||
<id>org.eclipse.ui.ide.multiFilter</id>
|
||||
<arguments>1.0-projectRelativePath-matches-false-false-setting</arguments>
|
||||
</matcher>
|
||||
</arguments>
|
||||
</matcher>
|
||||
</filter>
|
||||
</filteredResources>
|
||||
</projectDescription>
|
||||
307
web/doudou/doudouindex.html
Normal file
@@ -0,0 +1,307 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>智慧豆豆</title>
|
||||
<script src="yaocai/js/jquery-2.1.1.js"></script>
|
||||
<style type="text/css">
|
||||
*{
|
||||
margin:0;
|
||||
padding:0;
|
||||
}
|
||||
body {
|
||||
|
||||
font-family:"Helvetica Neue", sans-serif;
|
||||
margin:4%;
|
||||
}
|
||||
h1{
|
||||
font-size:30px;
|
||||
|
||||
text-align:center;
|
||||
margin:50px auto;
|
||||
}
|
||||
#content{
|
||||
|
||||
}
|
||||
#content article{
|
||||
background:#E6E6FA;
|
||||
width:20%;
|
||||
float:left;
|
||||
box-sizing:border-box;
|
||||
padding:2%;
|
||||
text-align:center;
|
||||
margin-bottom:25px;
|
||||
}
|
||||
#content article h1{
|
||||
font-size:36px;
|
||||
color:rgba(255,255,255,.9);
|
||||
margin:20px auto;
|
||||
}
|
||||
#content article p{
|
||||
color:rgba(255,255,255,.7);
|
||||
}
|
||||
#content article img{
|
||||
width:50%;
|
||||
}
|
||||
@media screen and (min-width: 768px) and (max-width: 979px) {
|
||||
#content article{
|
||||
width:50%;
|
||||
position:relative;
|
||||
text-align:left;
|
||||
}
|
||||
#content article img{
|
||||
width:20%;
|
||||
position:absolute;
|
||||
}
|
||||
#content article h1{
|
||||
margin:0 0 20px 30%;
|
||||
text-align:left;
|
||||
}
|
||||
#content article p{
|
||||
margin-left:30%;
|
||||
}
|
||||
#content article:nth-child(odd){
|
||||
clear:both;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width: 767px) {
|
||||
#content article{
|
||||
width:50%;
|
||||
}
|
||||
#content article img{
|
||||
width:40%;
|
||||
}
|
||||
#content article:nth-child(odd){
|
||||
clear:both;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width: 480px) {
|
||||
#content article{
|
||||
width:100%;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
#cotenttwo{
|
||||
|
||||
padding:10px 8%;
|
||||
}
|
||||
|
||||
|
||||
@media screen and (max-width: 1200px) {
|
||||
#cotenttwo{
|
||||
padding:10px 8%;
|
||||
}
|
||||
img{
|
||||
width:calc(100% - 350px);
|
||||
}
|
||||
}
|
||||
@media screen and (max-width: 979px) {
|
||||
#cotenttwo{
|
||||
padding:10px 5%;
|
||||
}
|
||||
img{
|
||||
width:50%;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width: 767px) {
|
||||
#cotenttwo{
|
||||
padding:10px 20px;
|
||||
}
|
||||
img{
|
||||
width:100%;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#slideshow{
|
||||
background:#E6E6FA;
|
||||
width:980px;
|
||||
height:450px;
|
||||
overflow:hidden;
|
||||
margin:0 auto;
|
||||
position:relative;
|
||||
}
|
||||
#slideshow ul, #slideshow ul li, #slideshow-nav{
|
||||
list-style:none;
|
||||
position:absolute;
|
||||
}
|
||||
#slideshow-nav{
|
||||
width:100%;
|
||||
bottom:20px;
|
||||
text-align:center;
|
||||
}
|
||||
#slideshow-nav span{
|
||||
display:inline-block;
|
||||
border-radius:50%;
|
||||
width:15px;
|
||||
height:15px;
|
||||
font-size:0;
|
||||
background:rgba(255,255,255,.3);
|
||||
transition:all .5s;
|
||||
-webkit-transition:all .5s;
|
||||
margin:0 7px;
|
||||
cursor:pointer;
|
||||
user-select:none; /*使圆点不能被选中*/
|
||||
-webkit-user-select:none;
|
||||
}
|
||||
#slideshow-nav span.active{
|
||||
background:#FFF;
|
||||
}
|
||||
@media screen and (max-width: 979px) {
|
||||
#slideshow, ul, li, img{
|
||||
width:100%;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<h2>智慧豆豆app</h2>
|
||||
<div id="slideshow">
|
||||
<ul>
|
||||
<li><img src="p1.jpg"></li>
|
||||
<li><img src="p2.jpg"></li>
|
||||
<li><img src="p3.jpg"></li>
|
||||
<li><img src="p4.jpg"></li>
|
||||
</ul>
|
||||
<div id="slideshow-nav"></div>
|
||||
</div>
|
||||
<script type="text/javascript" src="jquery-2.1.4.min.js"></script>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
var duration = 3000; //每张图片的持续显示时间
|
||||
var speed = 1000; //图片切换的动画时间
|
||||
var width = $('#slideshow').width(); //获得单张图片的宽度
|
||||
var curIndex = 0; //设置当前显示图片的索引值
|
||||
var totalIndex = $('#slideshow > ul > li').length; //获得总的图片数量
|
||||
var timer; //设置一个计时变量
|
||||
$('#slideshow > ul > li').each(function(index) {
|
||||
$(this).css("left", index*width+"px"); //设置轮播图片的横向排列
|
||||
$('#slideshow-nav').append("<span>"+(index+1)+"</span>"); //在导航中添加相应的节点
|
||||
});
|
||||
$('#slideshow-nav > span').each(function(index) {
|
||||
$(this).attr("index", index); //存储每个节点的索引值
|
||||
$(this).click(function(){ //当span元素被点击时
|
||||
curIndex = $(this).attr("index")-1; //刷新当前显示图片的索引值
|
||||
clearTimeout(timer); //清除计时
|
||||
move(); //重新执行move函数以显示该图片
|
||||
});
|
||||
});
|
||||
$('#slideshow-nav > span').eq(0).addClass("active"); //设置第一个圆点为active
|
||||
var firstChild = $('#slideshow > ul > li').eq(0).clone(); //将第一张图片复制一份
|
||||
$('#slideshow > ul').append(firstChild); //将该图片添加到列表最末
|
||||
firstChild.css("left", totalIndex*width+"px"); //将复制的第一张图片显示在图片序列最右侧
|
||||
function move(){
|
||||
curIndex++; //使索引值加以1
|
||||
if(curIndex>totalIndex){ //当索引值大于图片总数时
|
||||
curIndex = 1; //表示当前应播放第2张图片
|
||||
$('#slideshow > ul').css("left", "0px"); //将图片序列重置到原点
|
||||
}
|
||||
for(var i=0; i < totalIndex; i++){
|
||||
$('#slideshow-nav > span').eq(i).removeClass("active"); //清除所有导航节点的active类
|
||||
}
|
||||
if(curIndex === totalIndex){
|
||||
$('#slideshow-nav > span').eq(0).addClass("active"); //如果当前索引值等于图片总数,则说明当前正显示第一张图片的副本,因此应激活第一个导航节点
|
||||
}else{
|
||||
$('#slideshow-nav > span').eq(curIndex).addClass("active"); //在其余情况下,则为当前导航节点添加active类
|
||||
}
|
||||
$('#slideshow > ul').animate({left:width*curIndex*-1+"px"},speed); //为图片序列创建动画
|
||||
timer = setTimeout(move,duration+speed); //设置延迟一定时间后执行move函数,延迟时间等于动画时长加上每张图片的持续显示时间
|
||||
}
|
||||
timer = setTimeout(move,duration); //设置延迟一定时间后执行move函数,延迟时间等于每张图片的持续显示时间
|
||||
$('#slideshow').css("height", $('img').height()+"px");
|
||||
$(window).resize(function() {
|
||||
width = $('#slideshow').width();
|
||||
$('#slideshow').css("height", $('img').height()+"px");
|
||||
$('#slideshow > ul > li').each(function(index) {
|
||||
$(this).css("left", index*width+"px"); //设置轮播图片的横向排列
|
||||
});
|
||||
$('#slideshow > ul').stop().animate({left:width*curIndex*-1+"px"},0);
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<section id="cotenttwo">
|
||||
<article>
|
||||
<h1>功能模块简介</h1>
|
||||
</article>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
|
||||
<section id="content">
|
||||
<article>
|
||||
<img src="pic_two.jpg" alt="首页">
|
||||
<h1>首页</h1>
|
||||
<p>平台精彩推荐</p>
|
||||
</article>
|
||||
<article>
|
||||
<img src="pic_three.jpg" alt="发现">
|
||||
<h1>发现</h1>
|
||||
<p>线上可以实时互动的</p>
|
||||
</article>
|
||||
<article>
|
||||
<img src="pic_five.jpg" alt="购物车">
|
||||
<h1>购物车</h1>
|
||||
<p>便民购物</p>
|
||||
</article>
|
||||
<article>
|
||||
<img src="pic_four.jpg" alt="物业">
|
||||
<h1>物业</h1>
|
||||
<p>生活缴费</p>
|
||||
</article>
|
||||
<article>
|
||||
<img src="pic_one.jpg" alt="我的">
|
||||
<h1>我的</h1>
|
||||
<p>订单查询</p>
|
||||
</article>
|
||||
</section>
|
||||
|
||||
|
||||
<section id="cotenttwo">
|
||||
<article>
|
||||
<h1>应用介绍</h1>
|
||||
|
||||
<h1>豆豆智慧社区app是一款量身定制的小区管理软件,可以方便物业进行移动化的管理,实时给大家的生活保驾护航,有任何的需求,都可以直接线上进行反应,提供的服务非常的完善,线上也是可以实时互动的,让大家享受更是便利的社区生活
|
||||
,可以提供物业管理,商城,智能门禁和电梯等系列服务。
|
||||
</h1>
|
||||
</article>
|
||||
</section>
|
||||
|
||||
|
||||
<section id="cotenttwo">
|
||||
<article>
|
||||
<h1>下载地址(android)</h1>
|
||||
|
||||
|
||||
<div style="text-align: center;">
|
||||
<p>https://www.pgyer.com/zcsd</p>
|
||||
<p></p>
|
||||
<p></p>
|
||||
<img style="text-align: center;" src="zcsd.png">
|
||||
</div>
|
||||
</article>
|
||||
|
||||
|
||||
</section>
|
||||
|
||||
</body>
|
||||
|
||||
<script src="yaocai/js/index.js"></script>
|
||||
</html>
|
||||
4
web/doudou/jquery-2.1.4.min.js
vendored
Normal file
50
web/doudou/js/index.js
Normal file
@@ -0,0 +1,50 @@
|
||||
;
|
||||
var food_index_ops = {
|
||||
init:function(){
|
||||
this.eventBind();
|
||||
},
|
||||
eventBind:function(){
|
||||
var that = this;
|
||||
$(".remove").click( function(){
|
||||
that.ops( "remove",$(this).attr("data") )
|
||||
});
|
||||
|
||||
$(".recover").click( function(){
|
||||
that.ops( "recover",$(this).attr("data") )
|
||||
});
|
||||
|
||||
$(".wrap_search .search").click( function(){
|
||||
$(".wrap_search").submit();
|
||||
});
|
||||
},
|
||||
ops:function( act,id ){
|
||||
var callback = {
|
||||
'ok':function(){
|
||||
$.ajax({
|
||||
url:common_ops.buildUrl("/food/ops"),
|
||||
type:'POST',
|
||||
data:{
|
||||
act:act,
|
||||
id:id
|
||||
},
|
||||
dataType:'json',
|
||||
success:function( res ){
|
||||
var callback = null;
|
||||
if( res.code == 200 ){
|
||||
callback = function(){
|
||||
window.location.href = window.location.href;
|
||||
}
|
||||
}
|
||||
common_ops.alert( res.msg,callback );
|
||||
}
|
||||
});
|
||||
},
|
||||
'cancel':null
|
||||
};
|
||||
common_ops.confirm( ( act=="remove" )?"确定删除?":"确定恢复?",callback );
|
||||
}
|
||||
};
|
||||
|
||||
$(document).ready( function(){
|
||||
food_index_ops.init();
|
||||
});
|
||||
BIN
web/doudou/p1.jpg
Normal file
|
After Width: | Height: | Size: 130 KiB |
BIN
web/doudou/p2.jpg
Normal file
|
After Width: | Height: | Size: 69 KiB |
BIN
web/doudou/p3.jpg
Normal file
|
After Width: | Height: | Size: 139 KiB |
BIN
web/doudou/p4.jpg
Normal file
|
After Width: | Height: | Size: 152 KiB |
BIN
web/doudou/pic_five.jpg
Normal file
|
After Width: | Height: | Size: 288 KiB |
BIN
web/doudou/pic_four.jpg
Normal file
|
After Width: | Height: | Size: 112 KiB |
BIN
web/doudou/pic_one.jpg
Normal file
|
After Width: | Height: | Size: 297 KiB |
BIN
web/doudou/pic_three.jpg
Normal file
|
After Width: | Height: | Size: 450 KiB |
BIN
web/doudou/pic_two.jpg
Normal file
|
After Width: | Height: | Size: 368 KiB |
4
web/doudou/plugins/jquery-2.1.1.js
vendored
Normal file
BIN
web/doudou/zcsd.png
Normal file
|
After Width: | Height: | Size: 7.5 KiB |
BIN
web/static/app-release.apk
Normal file
307
web/templates/guanwang/doudouindex.html
Normal file
@@ -0,0 +1,307 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>智慧豆豆</title>
|
||||
<script src="yaocai/js/jquery-2.1.1.js"></script>
|
||||
<style type="text/css">
|
||||
*{
|
||||
margin:0;
|
||||
padding:0;
|
||||
}
|
||||
body {
|
||||
|
||||
font-family:"Helvetica Neue", sans-serif;
|
||||
margin:4%;
|
||||
}
|
||||
h1{
|
||||
font-size:30px;
|
||||
|
||||
text-align:center;
|
||||
margin:50px auto;
|
||||
}
|
||||
#content{
|
||||
|
||||
}
|
||||
#content article{
|
||||
background:#E6E6FA;
|
||||
width:20%;
|
||||
float:left;
|
||||
box-sizing:border-box;
|
||||
padding:2%;
|
||||
text-align:center;
|
||||
margin-bottom:25px;
|
||||
}
|
||||
#content article h1{
|
||||
font-size:36px;
|
||||
color:rgba(255,255,255,.9);
|
||||
margin:20px auto;
|
||||
}
|
||||
#content article p{
|
||||
color:rgba(255,255,255,.7);
|
||||
}
|
||||
#content article img{
|
||||
width:50%;
|
||||
}
|
||||
@media screen and (min-width: 768px) and (max-width: 979px) {
|
||||
#content article{
|
||||
width:50%;
|
||||
position:relative;
|
||||
text-align:left;
|
||||
}
|
||||
#content article img{
|
||||
width:20%;
|
||||
position:absolute;
|
||||
}
|
||||
#content article h1{
|
||||
margin:0 0 20px 30%;
|
||||
text-align:left;
|
||||
}
|
||||
#content article p{
|
||||
margin-left:30%;
|
||||
}
|
||||
#content article:nth-child(odd){
|
||||
clear:both;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width: 767px) {
|
||||
#content article{
|
||||
width:50%;
|
||||
}
|
||||
#content article img{
|
||||
width:40%;
|
||||
}
|
||||
#content article:nth-child(odd){
|
||||
clear:both;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width: 480px) {
|
||||
#content article{
|
||||
width:100%;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
#cotenttwo{
|
||||
|
||||
padding:10px 8%;
|
||||
}
|
||||
|
||||
|
||||
@media screen and (max-width: 1200px) {
|
||||
#cotenttwo{
|
||||
padding:10px 8%;
|
||||
}
|
||||
img{
|
||||
width:calc(100% - 350px);
|
||||
}
|
||||
}
|
||||
@media screen and (max-width: 979px) {
|
||||
#cotenttwo{
|
||||
padding:10px 5%;
|
||||
}
|
||||
img{
|
||||
width:50%;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width: 767px) {
|
||||
#cotenttwo{
|
||||
padding:10px 20px;
|
||||
}
|
||||
img{
|
||||
width:100%;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#slideshow{
|
||||
background:#E6E6FA;
|
||||
width:980px;
|
||||
height:450px;
|
||||
overflow:hidden;
|
||||
margin:0 auto;
|
||||
position:relative;
|
||||
}
|
||||
#slideshow ul, #slideshow ul li, #slideshow-nav{
|
||||
list-style:none;
|
||||
position:absolute;
|
||||
}
|
||||
#slideshow-nav{
|
||||
width:100%;
|
||||
bottom:20px;
|
||||
text-align:center;
|
||||
}
|
||||
#slideshow-nav span{
|
||||
display:inline-block;
|
||||
border-radius:50%;
|
||||
width:15px;
|
||||
height:15px;
|
||||
font-size:0;
|
||||
background:rgba(255,255,255,.3);
|
||||
transition:all .5s;
|
||||
-webkit-transition:all .5s;
|
||||
margin:0 7px;
|
||||
cursor:pointer;
|
||||
user-select:none; /*使圆点不能被选中*/
|
||||
-webkit-user-select:none;
|
||||
}
|
||||
#slideshow-nav span.active{
|
||||
background:#FFF;
|
||||
}
|
||||
@media screen and (max-width: 979px) {
|
||||
#slideshow, ul, li, img{
|
||||
width:100%;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<h2>智慧豆豆app</h2>
|
||||
<div id="slideshow">
|
||||
<ul>
|
||||
<li><img src="p1.jpg"></li>
|
||||
<li><img src="p2.jpg"></li>
|
||||
<li><img src="p3.jpg"></li>
|
||||
<li><img src="p4.jpg"></li>
|
||||
</ul>
|
||||
<div id="slideshow-nav"></div>
|
||||
</div>
|
||||
<script type="text/javascript" src="jquery-2.1.4.min.js"></script>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
var duration = 3000; //每张图片的持续显示时间
|
||||
var speed = 1000; //图片切换的动画时间
|
||||
var width = $('#slideshow').width(); //获得单张图片的宽度
|
||||
var curIndex = 0; //设置当前显示图片的索引值
|
||||
var totalIndex = $('#slideshow > ul > li').length; //获得总的图片数量
|
||||
var timer; //设置一个计时变量
|
||||
$('#slideshow > ul > li').each(function(index) {
|
||||
$(this).css("left", index*width+"px"); //设置轮播图片的横向排列
|
||||
$('#slideshow-nav').append("<span>"+(index+1)+"</span>"); //在导航中添加相应的节点
|
||||
});
|
||||
$('#slideshow-nav > span').each(function(index) {
|
||||
$(this).attr("index", index); //存储每个节点的索引值
|
||||
$(this).click(function(){ //当span元素被点击时
|
||||
curIndex = $(this).attr("index")-1; //刷新当前显示图片的索引值
|
||||
clearTimeout(timer); //清除计时
|
||||
move(); //重新执行move函数以显示该图片
|
||||
});
|
||||
});
|
||||
$('#slideshow-nav > span').eq(0).addClass("active"); //设置第一个圆点为active
|
||||
var firstChild = $('#slideshow > ul > li').eq(0).clone(); //将第一张图片复制一份
|
||||
$('#slideshow > ul').append(firstChild); //将该图片添加到列表最末
|
||||
firstChild.css("left", totalIndex*width+"px"); //将复制的第一张图片显示在图片序列最右侧
|
||||
function move(){
|
||||
curIndex++; //使索引值加以1
|
||||
if(curIndex>totalIndex){ //当索引值大于图片总数时
|
||||
curIndex = 1; //表示当前应播放第2张图片
|
||||
$('#slideshow > ul').css("left", "0px"); //将图片序列重置到原点
|
||||
}
|
||||
for(var i=0; i < totalIndex; i++){
|
||||
$('#slideshow-nav > span').eq(i).removeClass("active"); //清除所有导航节点的active类
|
||||
}
|
||||
if(curIndex === totalIndex){
|
||||
$('#slideshow-nav > span').eq(0).addClass("active"); //如果当前索引值等于图片总数,则说明当前正显示第一张图片的副本,因此应激活第一个导航节点
|
||||
}else{
|
||||
$('#slideshow-nav > span').eq(curIndex).addClass("active"); //在其余情况下,则为当前导航节点添加active类
|
||||
}
|
||||
$('#slideshow > ul').animate({left:width*curIndex*-1+"px"},speed); //为图片序列创建动画
|
||||
timer = setTimeout(move,duration+speed); //设置延迟一定时间后执行move函数,延迟时间等于动画时长加上每张图片的持续显示时间
|
||||
}
|
||||
timer = setTimeout(move,duration); //设置延迟一定时间后执行move函数,延迟时间等于每张图片的持续显示时间
|
||||
$('#slideshow').css("height", $('img').height()+"px");
|
||||
$(window).resize(function() {
|
||||
width = $('#slideshow').width();
|
||||
$('#slideshow').css("height", $('img').height()+"px");
|
||||
$('#slideshow > ul > li').each(function(index) {
|
||||
$(this).css("left", index*width+"px"); //设置轮播图片的横向排列
|
||||
});
|
||||
$('#slideshow > ul').stop().animate({left:width*curIndex*-1+"px"},0);
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<section id="cotenttwo">
|
||||
<article>
|
||||
<h1>功能模块简介</h1>
|
||||
</article>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
|
||||
<section id="content">
|
||||
<article>
|
||||
<img src="pic_two.jpg" alt="首页">
|
||||
<h1>首页</h1>
|
||||
<p>平台精彩推荐</p>
|
||||
</article>
|
||||
<article>
|
||||
<img src="pic_three.jpg" alt="发现">
|
||||
<h1>发现</h1>
|
||||
<p>线上可以实时互动的</p>
|
||||
</article>
|
||||
<article>
|
||||
<img src="pic_five.jpg" alt="购物车">
|
||||
<h1>购物车</h1>
|
||||
<p>便民购物</p>
|
||||
</article>
|
||||
<article>
|
||||
<img src="pic_four.jpg" alt="物业">
|
||||
<h1>物业</h1>
|
||||
<p>生活缴费</p>
|
||||
</article>
|
||||
<article>
|
||||
<img src="pic_one.jpg" alt="我的">
|
||||
<h1>我的</h1>
|
||||
<p>订单查询</p>
|
||||
</article>
|
||||
</section>
|
||||
|
||||
|
||||
<section id="cotenttwo">
|
||||
<article>
|
||||
<h1>应用介绍</h1>
|
||||
|
||||
<h1>豆豆智慧社区app是一款量身定制的小区管理软件,可以方便物业进行移动化的管理,实时给大家的生活保驾护航,有任何的需求,都可以直接线上进行反应,提供的服务非常的完善,线上也是可以实时互动的,让大家享受更是便利的社区生活
|
||||
,可以提供物业管理,商城,智能门禁和电梯等系列服务。
|
||||
</h1>
|
||||
</article>
|
||||
</section>
|
||||
|
||||
|
||||
<section id="cotenttwo">
|
||||
<article>
|
||||
<h1>下载地址(android)</h1>
|
||||
|
||||
|
||||
<div style="text-align: center;">
|
||||
<p>https://www.pgyer.com/zcsd</p>
|
||||
<p></p>
|
||||
<p></p>
|
||||
<img style="text-align: center;" src="zcsd.png">
|
||||
</div>
|
||||
</article>
|
||||
|
||||
|
||||
</section>
|
||||
|
||||
</body>
|
||||
|
||||
<script src="yaocai/js/index.js"></script>
|
||||
</html>
|
||||
2
www.py
@@ -13,6 +13,7 @@ from web.interceptors.ErrorInterceptor import *
|
||||
'''
|
||||
from web.controllers.index import route_index
|
||||
from web.controllers.user.User import route_user
|
||||
from web.controllers.guanwang.Guanwang import route_guanwang
|
||||
from web.controllers.static import route_static
|
||||
|
||||
from web.controllers.food.Food import route_food
|
||||
@@ -26,6 +27,7 @@ from web.controllers.upload.Upload import route_upload
|
||||
from web.controllers.chart import route_chart
|
||||
app.register_blueprint( route_index,url_prefix = "/" )
|
||||
app.register_blueprint( route_user,url_prefix = "/user" )
|
||||
app.register_blueprint( route_guanwang,url_prefix = "/guanwang" )
|
||||
app.register_blueprint( route_static,url_prefix = "/static" )
|
||||
app.register_blueprint( route_account,url_prefix = "/account" )
|
||||
app.register_blueprint( route_food,url_prefix = "/food" )
|
||||
|
||||