├── ImageEnhance.py
├── README.md
├── app.py
├── createImage.py
├── data.py
├── model.h5
├── model.png
├── models.py
├── settings.py
├── spider.py
├── static
├── assembly
│ ├── jqarticle
│ │ └── jparticle.min.js
│ └── zylVerificationCode
│ │ └── zylVerificationCode.js
├── css
│ ├── bootstrap.css
│ ├── font.css
│ ├── main.css
│ ├── reset.css
│ ├── style.css
│ ├── swiper-bundle.min.css
│ └── xadmin.css
├── images
│ ├── bg.gif
│ ├── p1.jpg
│ ├── p2.jpg
│ ├── p3.jpg
│ ├── p4.jpg
│ ├── p5.jpg
│ ├── s1.jpg
│ ├── s2.jpg
│ ├── s3.jpg
│ └── s4.jpg
├── js
│ ├── jquery.min.js
│ ├── main.js
│ ├── nav.js
│ ├── swiper-bundle.min.js
│ ├── tool.js
│ └── xadmin.js
└── lib
│ ├── layui
│ ├── css
│ │ ├── layui.css
│ │ ├── layui.mobile.css
│ │ ├── login.css
│ │ └── modules
│ │ │ ├── code.css
│ │ │ ├── laydate
│ │ │ └── default
│ │ │ │ └── laydate.css
│ │ │ └── layer
│ │ │ └── default
│ │ │ ├── icon-ext.png
│ │ │ ├── icon.png
│ │ │ ├── layer.css
│ │ │ ├── loading-0.gif
│ │ │ ├── loading-1 2.gif
│ │ │ ├── loading-1.gif
│ │ │ ├── loading-2 2.gif
│ │ │ └── loading-2.gif
│ ├── font
│ │ ├── iconfont.eot
│ │ ├── iconfont.svg
│ │ ├── iconfont.ttf
│ │ └── iconfont.woff
│ ├── images
│ │ └── face
│ │ │ ├── 0.gif
│ │ │ ├── 1.gif
│ │ │ ├── 10.gif
│ │ │ ├── 11.gif
│ │ │ ├── 12.gif
│ │ │ ├── 13.gif
│ │ │ ├── 14.gif
│ │ │ ├── 15.gif
│ │ │ ├── 16.gif
│ │ │ ├── 17.gif
│ │ │ ├── 18.gif
│ │ │ ├── 19.gif
│ │ │ ├── 2.gif
│ │ │ ├── 20.gif
│ │ │ ├── 21.gif
│ │ │ ├── 22.gif
│ │ │ ├── 23.gif
│ │ │ ├── 24.gif
│ │ │ ├── 25.gif
│ │ │ ├── 26.gif
│ │ │ ├── 27.gif
│ │ │ ├── 28.gif
│ │ │ ├── 29.gif
│ │ │ ├── 3.gif
│ │ │ ├── 30.gif
│ │ │ ├── 31.gif
│ │ │ ├── 32.gif
│ │ │ ├── 33.gif
│ │ │ ├── 34.gif
│ │ │ ├── 35.gif
│ │ │ ├── 36.gif
│ │ │ ├── 37.gif
│ │ │ ├── 38.gif
│ │ │ ├── 39.gif
│ │ │ ├── 4.gif
│ │ │ ├── 40.gif
│ │ │ ├── 41.gif
│ │ │ ├── 42.gif
│ │ │ ├── 43.gif
│ │ │ ├── 44.gif
│ │ │ ├── 45.gif
│ │ │ ├── 46.gif
│ │ │ ├── 47.gif
│ │ │ ├── 48.gif
│ │ │ ├── 49.gif
│ │ │ ├── 5.gif
│ │ │ ├── 50.gif
│ │ │ ├── 51.gif
│ │ │ ├── 52.gif
│ │ │ ├── 53.gif
│ │ │ ├── 54.gif
│ │ │ ├── 55.gif
│ │ │ ├── 56.gif
│ │ │ ├── 57.gif
│ │ │ ├── 58.gif
│ │ │ ├── 59.gif
│ │ │ ├── 6.gif
│ │ │ ├── 60.gif
│ │ │ ├── 61.gif
│ │ │ ├── 62.gif
│ │ │ ├── 63.gif
│ │ │ ├── 64.gif
│ │ │ ├── 65.gif
│ │ │ ├── 66.gif
│ │ │ ├── 67.gif
│ │ │ ├── 68.gif
│ │ │ ├── 69.gif
│ │ │ ├── 7.gif
│ │ │ ├── 70.gif
│ │ │ ├── 71.gif
│ │ │ ├── 8.gif
│ │ │ └── 9.gif
│ ├── lay
│ │ └── modules
│ │ │ ├── carousel.js
│ │ │ ├── code.js
│ │ │ ├── element.js
│ │ │ ├── flow.js
│ │ │ ├── form.js
│ │ │ ├── jquery.js
│ │ │ ├── laydate.js
│ │ │ ├── layedit.js
│ │ │ ├── layer.js
│ │ │ ├── laypage.js
│ │ │ ├── laytpl.js
│ │ │ ├── mobile.js
│ │ │ ├── table.js
│ │ │ ├── tree.js
│ │ │ ├── upload.js
│ │ │ └── util.js
│ ├── layui.all.js
│ └── layui.js
│ └── layuiadmin
│ ├── config.js
│ ├── json
│ ├── console
│ │ ├── prograss.js
│ │ ├── top-card.js
│ │ └── top-search.js
│ ├── content
│ │ ├── comment.js
│ │ ├── list.js
│ │ └── tags.js
│ ├── forum
│ │ ├── list.js
│ │ └── replys.js
│ ├── layer
│ │ └── photos.js
│ ├── layim
│ │ ├── getList.js
│ │ └── getMembers.js
│ ├── mall
│ │ └── order.js
│ ├── menu.js
│ ├── message
│ │ ├── all.js
│ │ ├── detail.js
│ │ ├── direct.js
│ │ ├── new.js
│ │ └── notice.js
│ ├── table
│ │ ├── demo.js
│ │ ├── demo2.js
│ │ ├── demo3.js
│ │ ├── user.js
│ │ └── user30.js
│ ├── upload
│ │ └── demo.js
│ ├── user
│ │ ├── forget.js
│ │ ├── login.js
│ │ ├── logout.js
│ │ ├── reg.js
│ │ ├── resetpass.js
│ │ ├── session.js
│ │ └── sms.js
│ ├── useradmin
│ │ ├── mangadmin.js
│ │ ├── role.js
│ │ └── webuser.js
│ ├── workorder
│ │ └── demo.js
│ └── 说明.txt
│ ├── lib
│ ├── admin.js
│ ├── extend
│ │ ├── echarts.js
│ │ └── echartsTheme.js
│ ├── index.js
│ ├── layui
│ │ ├── css
│ │ │ ├── layui.css
│ │ │ ├── layui.mobile 2.css
│ │ │ ├── layui.mobile.css
│ │ │ ├── layui_old.css
│ │ │ └── modules
│ │ │ │ ├── code 2.css
│ │ │ │ ├── code.css
│ │ │ │ ├── laydate
│ │ │ │ └── default
│ │ │ │ │ ├── laydate 2.css
│ │ │ │ │ └── laydate.css
│ │ │ │ └── layer
│ │ │ │ └── default
│ │ │ │ ├── icon 2.png
│ │ │ │ ├── icon-ext 2.png
│ │ │ │ ├── icon-ext.png
│ │ │ │ ├── icon.png
│ │ │ │ ├── layer 2.css
│ │ │ │ ├── layer.css
│ │ │ │ ├── loading-0 2.gif
│ │ │ │ ├── loading-0.gif
│ │ │ │ ├── loading-1 2.gif
│ │ │ │ ├── loading-1.gif
│ │ │ │ ├── loading-2 2.gif
│ │ │ │ └── loading-2.gif
│ │ ├── font
│ │ │ ├── iconfont.eot
│ │ │ ├── iconfont.svg
│ │ │ ├── iconfont.ttf
│ │ │ └── iconfont.woff
│ │ ├── lay
│ │ │ └── modules
│ │ │ │ ├── carousel 2.js
│ │ │ │ ├── carousel.js
│ │ │ │ ├── code 2.js
│ │ │ │ ├── code.js
│ │ │ │ ├── element 2.js
│ │ │ │ ├── element.js
│ │ │ │ ├── flow 2.js
│ │ │ │ ├── flow.js
│ │ │ │ ├── form 2.js
│ │ │ │ ├── form.js
│ │ │ │ ├── jquery 2.js
│ │ │ │ ├── jquery.js
│ │ │ │ ├── laydate 2.js
│ │ │ │ ├── laydate.js
│ │ │ │ ├── layedit 2.js
│ │ │ │ ├── layedit.js
│ │ │ │ ├── layer 2.js
│ │ │ │ ├── layer.js
│ │ │ │ ├── laypage 2.js
│ │ │ │ ├── laypage.js
│ │ │ │ ├── laytpl 2.js
│ │ │ │ ├── laytpl.js
│ │ │ │ ├── mobile 2.js
│ │ │ │ ├── mobile.js
│ │ │ │ ├── table 2.js
│ │ │ │ ├── table.js
│ │ │ │ ├── tree 2.js
│ │ │ │ ├── tree.js
│ │ │ │ ├── upload 2.js
│ │ │ │ ├── upload.js
│ │ │ │ ├── util 2.js
│ │ │ │ └── util.js
│ │ ├── layui.all.js
│ │ └── layui.js
│ └── view.js
│ ├── modules
│ ├── common.js
│ ├── console.js
│ ├── contlist.js
│ ├── forum.js
│ ├── im.js
│ ├── message.js
│ ├── sample.js
│ ├── senior.js
│ ├── set.js
│ ├── user.js
│ ├── useradmin.js
│ └── workorder.js
│ ├── style
│ ├── admin.css
│ ├── login.css
│ ├── res
│ │ ├── bg-none.jpg
│ │ ├── layui-logo.jpg
│ │ ├── logo-black.png
│ │ ├── logo.png
│ │ └── template
│ │ │ ├── character.jpg
│ │ │ ├── huge 2.jpg
│ │ │ ├── huge.jpg
│ │ │ └── portrait.png
│ └── template.css
│ └── tpl
│ ├── layim
│ └── demo.html
│ ├── system
│ ├── about.html
│ ├── get.html
│ ├── more.html
│ ├── theme.html
│ └── 说明.txt
│ └── 说明.txt
├── templates
├── dict.html
├── favicon.ico
├── index.html
└── vue.js
└── train.py
/ImageEnhance.py:
--------------------------------------------------------------------------------
1 | from createImage import createImage
2 |
3 | imageDir = "photos/01" #要改变的图片的路径文件夹
4 | saveDir = "photos/01" #数据增强生成图片的路径文件夹
5 | createImage(imageDir,saveDir)
6 |
7 | imageDir = "photos/02" #要改变的图片的路径文件夹
8 | saveDir = "photos/02" #数据增强生成图片的路径文件夹
9 | createImage(imageDir,saveDir)
10 |
11 | imageDir = "photos/03" #要改变的图片的路径文件夹
12 | saveDir = "photos/03" #数据增强生成图片的路径文件夹
13 | createImage(imageDir,saveDir)
14 |
15 | imageDir = "photos/04" #要改变的图片的路径文件夹
16 | saveDir = "photos/04" #数据增强生成图片的路径文件夹
17 | createImage(imageDir,saveDir)
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # 水果分类 fruit-classifer
2 |
3 | 基于深度学习的水果分类
4 |
5 | 本项目使用迁移学习技术,对在ImageNet数据集上带有预训练权重VGG16、ResNet50、MobileNetV2、DenseNet121模型进行微调,然后将其用在水果数据集上。最终训练后的模型能够准确对输入图片进行分类,并且最高准确率达到93.08%。
6 |
7 | #### 一、数据集制作
8 |
9 | ##### 1.1爬虫获取数据
10 |
11 | ```python
12 | FRUIT_CLASS = {
13 | '苹果': '01',
14 | '香蕉': '02',
15 | '桃子': '03',
16 | '葡萄': '04'
17 | }
18 | #spider.py实现本功能
19 | ```
20 |
21 | ##### 1.2手动删除不相关图片
22 |
23 | ##### 1.3数据增强扩充数据集
24 |
25 | ```python
26 | def Brightness(root_path, img_name): #亮度增强
27 | def Contrast(root_path, img_name): #对比度增强
28 | def crop(root_path, img_name): #随机裁剪
29 | def flip(root_path, img_name): #左右翻转
30 | def rotation(root_path, img_name): #随机旋转
31 | #createImage.py ImageEnhance.py实现本功能
32 | ```
33 |
34 | #### 二、模型训练
35 |
36 | ##### 2.1迁移学习
37 |
38 | ```python
39 | # 模型加载,指定图片处理的大小和是否进行迁移学习
40 | def my_densenet():
41 | IMG_SHAPE = (224, 224, 3)
42 | # 选择base model
43 | base_model = tf.keras.applications.MobileNetV2(include_top=False, weights='imagenet', input_shape=IMG_SHAPE)
44 |
45 | base_model.trainable = False
46 | model = tf.keras.models.Sequential([
47 | # 输入层,shape为(None,224,224,3)
48 | tf.keras.layers.Input((224, 224, 3)),
49 | # 输入到base_model中
50 | base_model,
51 | # 将base_model的输出展平,以作为全连接层的输入
52 | tf.keras.layers.Flatten(),
53 | # BN层
54 | tf.keras.layers.BatchNormalization(),
55 | # 输出层,为了保证输出结果的稳定,这里就不添加Dropout层了
56 | tf.keras.layers.Dense(settings.CLASS_NUM, activation=tf.nn.softmax)
57 | ])
58 | return model
59 | #models.py实现本功能
60 | ```
61 |
62 | ##### 2.2模型训练
63 |
64 | ```python
65 | # settings.py 参数设置
66 | # data.py 数据预处理
67 | # train.py 训练模型
68 | ```
69 |
70 | #### 三、系统实现
71 |
72 | 设计并实现前后端分离系统,前端Vue,后端Flask
73 |
74 | 后端模型对输入图片识别并返回用户
75 |
76 | 运行app.py在本地计算机使用系统,地址为http://192.168.1.29:5000/
77 |
78 |
--------------------------------------------------------------------------------
/app.py:
--------------------------------------------------------------------------------
1 | import tensorflow as tf
2 | from flask import Flask
3 | from flask import jsonify
4 | from flask import request, render_template
5 |
6 | import settings
7 | from models import my_densenet
8 |
9 | app = Flask(__name__)
10 |
11 | # 导入模型
12 | model = my_densenet()
13 | # 加载训练好的参数
14 | model.load_weights(settings.MODEL_PATH)
15 |
16 |
17 | @app.route('/', methods=['GET'])
18 | def index():
19 | """
20 | 首页,vue入口
21 | """
22 | return render_template('index.html')
23 |
24 |
25 | @app.route('/index.html', methods=['GET'])
26 | def index2():
27 | """
28 | 首页,vue入口
29 | """
30 | return render_template('index.html')
31 |
32 |
33 | @app.route('/dict.html', methods=['GET'])
34 | def get_dict():
35 | """
36 | 百科
37 | """
38 | return render_template('dict.html')
39 |
40 |
41 | @app.route('/api/v1/pets_classify/', methods=['POST'])
42 | def pets_classify():
43 | """
44 | 宠物图片分类接口,上传一张图片,返回此图片上的宠物是那种类别,概率多少
45 | """
46 | # 获取用户上传的图片
47 | img_str = request.files.get('file').read()
48 | # 进行数据预处理
49 | x = tf.image.decode_image(img_str, channels=3)
50 | x = tf.image.resize(x, (224, 224))
51 | x = x / 255.
52 | x = (x - tf.constant(settings.IMAGE_MEAN)) / tf.constant(settings.IMAGE_STD)
53 | x = tf.reshape(x, (1, 224, 224, 3))
54 | # 预测
55 | y_pred = model(x)
56 | pet_cls_code = tf.argmax(y_pred, axis=1).numpy()[0]
57 | pet_cls_prob = float(y_pred.numpy()[0][pet_cls_code])
58 | pet_cls_prob = '{}%'.format(int(pet_cls_prob * 100))
59 | pet_class = settings.CODE_CLASS_MAP.get(pet_cls_code)
60 | # 将预测结果组织成json
61 | res = {
62 | 'code': 0,
63 | 'data': {
64 | 'pet_cls': pet_class,
65 | 'probability': pet_cls_prob,
66 | 'msg': '
{}
概率{}'
69 | .format(pet_class, pet_cls_prob),
70 | }
71 | }
72 | # 返回json数据
73 | return jsonify(res)
74 |
75 |
76 | if __name__ == '__main__':
77 | app.run(use_reloader=False, host='0.0.0.0', port=settings.WEB_PORT, debug=Flask)
78 |
79 |
--------------------------------------------------------------------------------
/createImage.py:
--------------------------------------------------------------------------------
1 | from PIL import ImageEnhance
2 | import os
3 | import numpy as np
4 | from PIL import Image
5 |
6 |
7 | def Brightness(root_path, img_name): #亮度增强
8 | image = Image.open(os.path.join(root_path, img_name))
9 | enh_bri = ImageEnhance.Brightness(image)
10 | brightness = 1.5
11 | image_brightened = enh_bri.enhance(brightness)
12 | return image_brightened
13 |
14 |
15 | def Contrast(root_path, img_name): #对比度增强
16 | image = Image.open(os.path.join(root_path, img_name))
17 | enh_con = ImageEnhance.Contrast(image)
18 | contrast = 1.5
19 | image_contrasted = enh_con.enhance(contrast)
20 | return image_contrasted
21 |
22 |
23 | def crop(root_path, img_name): #随机裁剪
24 | img = Image.open(os.path.join(root_path, img_name))
25 | crop_img = img.crop((100, 100, 250, 250))
26 | return crop_img
27 |
28 |
29 | def flip(root_path, img_name): #左右翻转
30 | img = Image.open(os.path.join(root_path, img_name))
31 | filp_img = img.transpose(Image.FLIP_LEFT_RIGHT)
32 | return filp_img
33 |
34 |
35 | def rotation(root_path, img_name): #随机旋转
36 | img = Image.open(os.path.join(root_path, img_name))
37 | random_angle = np.random.randint(-2, 2) * 90
38 | if random_angle == 0:
39 | rotation_img = img.rotate(-90)
40 | else:
41 | rotation_img = img.rotate(random_angle)
42 | return rotation_img
43 |
44 |
45 |
46 | def createImage(imageDir, saveDir):
47 | for name in sorted(os.listdir(imageDir)):
48 | print(name)
49 | saveName1 = "bright" + name + ".jpg"
50 | saveImage1 = Brightness(imageDir, name)
51 | saveImage1.save(os.path.join(saveDir, saveName1))
52 |
53 | saveName2 = "contrast" + name + ".jpg"
54 | saveImage2 = Contrast(imageDir, name)
55 | saveImage2.save(os.path.join(saveDir, saveName2))
56 |
57 | saveName3 = "crop" + name + ".jpg"
58 | saveImage3 = crop(imageDir, name)
59 | saveImage3.save(os.path.join(saveDir, saveName3))
60 |
61 | saveName4 = "flip" + name + ".jpg"
62 | saveImage4 = flip(imageDir, name)
63 | saveImage4.save(os.path.join(saveDir, saveName4))
64 |
65 | saveName5 = "rotate" + name + ".jpg"
66 | saveImage5 = rotation(imageDir, name)
67 | saveImage5.save(os.path.join(saveDir, saveName5))
68 |
--------------------------------------------------------------------------------
/data.py:
--------------------------------------------------------------------------------
1 | import os
2 | import random
3 | import tensorflow as tf
4 | import settings
5 |
6 | # 每个类别选取的图片数量
7 | samples_per_class = settings.SAMPLES_PER_CLASS
8 | # 图片根目录
9 | images_root = settings.IMAGES_ROOT
10 | # 类别->编码的映射
11 | class_code_map = settings.CLASS_CODE_MAP
12 |
13 | # 我们准备使用经典网络在imagenet数据集上的与训练权重,所以归一化时也要使用imagenet的平均值和标准差
14 | image_mean = tf.constant(settings.IMAGE_MEAN)
15 | image_std = tf.constant(settings.IMAGE_STD)
16 |
17 |
18 | def normalization(x):
19 | """
20 | 对输入图片x进行归一化,返回归一化的值
21 | """
22 | return (x - image_mean) / image_std
23 |
24 |
25 | def train_preprocess(x, y):
26 | """
27 | 对训练数据进行预处理。
28 | 注意,这里的参数x是图片的路径,不是图片本身;y是图片的标签值
29 | """
30 | # 读取图片
31 | x = tf.io.read_file(x)
32 | # 解码成张量
33 | x = tf.image.decode_jpeg(x, channels=3)
34 | # 将图片缩放到[244,244],比输入[224,224]稍大一些,方便后面数据增强
35 | x = tf.image.resize(x, [244, 244])
36 | # 随机决定是否左右镜像
37 | if random.choice([0, 1]):
38 | x = tf.image.random_flip_left_right(x)
39 | # 随机从x中剪裁出(224,224,3)大小的图片
40 | x = tf.image.random_crop(x, [224, 224, 3])
41 | # 读完上面的代码可以发现,这里的数据增强并不增加图片数量,一张图片经过变换后,
42 | # 仍然只是一张图片,跟我们前面说的增加图片数量的逻辑不太一样。
43 | # 这么做主要是应对我们的数据集里可能会存在相同图片的情况。
44 |
45 | # 将图片的像素值缩放到[0,1]之间
46 | x = tf.cast(x, dtype=tf.float32) / 255.
47 | # 归一化
48 | x = normalization(x)
49 |
50 | # 将标签转成one-hot形式
51 | y = tf.cast(y, dtype=tf.int32)
52 | y = tf.one_hot(y, settings.CLASS_NUM)
53 |
54 | return x, y
55 |
56 |
57 | def dev_preprocess(x, y):
58 | """
59 | 对验证集和测试集进行数据预处理的方法。
60 | 和train_preprocess的主要区别在于,不进行数据增强,以保证验证结果的稳定性。
61 | """
62 | # 读取并缩放图片
63 | x = tf.io.read_file(x)
64 | x = tf.image.decode_jpeg(x, channels=3)
65 | x = tf.image.resize(x, [224, 224])
66 | # 归一化
67 | x = tf.cast(x, dtype=tf.float32) / 255.
68 | x = normalization(x)
69 | # 将标签转成one-hot形式
70 | y = tf.cast(y, dtype=tf.int32)
71 | y = tf.one_hot(y, settings.CLASS_NUM)
72 |
73 | return x, y
74 |
75 |
76 | # (图片路径,标签)的列表
77 | image_path_and_labels = []
78 | # 排序,保证每次拿到的顺序都一样
79 | sub_images_dir_list = sorted(list(os.listdir(images_root)))
80 | # 遍历每一个子目录
81 | for sub_images_dir in sub_images_dir_list:
82 | sub_path = os.path.join(images_root, sub_images_dir)
83 | # 如果给定路径是文件夹,并且这个类别参与训练
84 | if os.path.isdir(sub_path) and sub_images_dir in settings.CLASSES:
85 | # 获取当前类别的编码
86 | current_label = class_code_map.get(sub_images_dir)
87 | # 获取子目录下的全部图片名称
88 | images = sorted(list(os.listdir(sub_path)))
89 | # 随机打乱(排序和置随机数种子都是为了保证每次的结果都一样)
90 | random.seed(settings.RANDOM_SEED)
91 | random.shuffle(images)
92 | # 保留前settings.SAMPLES_PER_CLASS个
93 | images = images[:samples_per_class]
94 | # 构建(x,y)对
95 | for image_name in images:
96 | abs_image_path = os.path.join(sub_path, image_name)
97 | image_path_and_labels.append((abs_image_path, current_label))
98 | # 计算各数据集样例数
99 | total_samples = len(image_path_and_labels) # 总样例数
100 | train_samples = int(total_samples * settings.TRAIN_DATASET) # 训练集样例数
101 | dev_samples = int(total_samples * settings.DEV_DATASET) # 开发集样例数
102 | test_samples = total_samples - train_samples - dev_samples # 测试集样例数
103 | # 打乱数据集
104 | random.seed(settings.RANDOM_SEED)
105 | random.shuffle(image_path_and_labels)
106 | # 将图片数据和标签数据分开,此时它们仍是一一对应的
107 | x_data = tf.constant([img for img, label in image_path_and_labels])
108 | y_data = tf.constant([label for img, label in image_path_and_labels])
109 | # 开始划分数据集
110 | # 训练集
111 | train_db = tf.data.Dataset.from_tensor_slices((x_data[:train_samples], y_data[:train_samples]))
112 | # 打乱顺序,数据预处理,设置批大小
113 | train_db = train_db.shuffle(10000).map(train_preprocess).batch(settings.BATCH_SIZE)
114 | # 开发集(验证集)
115 | dev_db = tf.data.Dataset.from_tensor_slices(
116 | (x_data[train_samples:train_samples + dev_samples], y_data[train_samples:train_samples + dev_samples]))
117 | # 数据预处理,设置批大小
118 | dev_db = dev_db.map(dev_preprocess).batch(settings.BATCH_SIZE)
119 | # 测试集
120 | test_db = tf.data.Dataset.from_tensor_slices(
121 | (x_data[train_samples + dev_samples:], y_data[train_samples + dev_samples:]))
122 | # 数据预处理,设置批大小
123 | test_db = test_db.map(dev_preprocess).batch(settings.BATCH_SIZE)
124 |
125 | print('总样例数:',total_samples)
126 | print('训练集样例数:',train_samples)
127 | print('开发集样例数:',dev_samples)
128 | print('测试集样例数:',test_samples)
129 |
--------------------------------------------------------------------------------
/model.h5:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/model.h5
--------------------------------------------------------------------------------
/model.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/model.png
--------------------------------------------------------------------------------
/models.py:
--------------------------------------------------------------------------------
1 | import tensorflow as tf
2 | import matplotlib.pyplot as plt
3 | from tensorflow.python.keras.utils.vis_utils import plot_model
4 | import settings
5 |
6 | # 模型加载,指定图片处理的大小和是否进行迁移学习
7 | def my_densenet():
8 | IMG_SHAPE = (224, 224, 3)
9 | # 选择base model
10 | # base_model = tf.keras.applications.VGG16(include_top=False, weights='imagenet', input_shape=IMG_SHAPE)
11 | # base_model = tf.keras.applications.ResNet50(include_top=False, weights='imagenet', input_shape=IMG_SHAPE)
12 | # base_model = tf.keras.applications.DenseNet121(include_top=False, weights='imagenet', pooling='max')
13 | base_model = tf.keras.applications.MobileNetV2(include_top=False, weights='imagenet', input_shape=IMG_SHAPE)
14 |
15 | base_model.trainable = False
16 | model = tf.keras.models.Sequential([
17 | # 输入层,shape为(None,224,224,3)
18 | tf.keras.layers.Input((224, 224, 3)),
19 | # 输入到base_model中
20 | base_model,
21 | # 将base_model的输出展平,以作为全连接层的输入
22 | tf.keras.layers.Flatten(),
23 | # BN层
24 | tf.keras.layers.BatchNormalization(),
25 | # 输出层,为了保证输出结果的稳定,这里就不添加Dropout层了
26 | tf.keras.layers.Dense(settings.CLASS_NUM, activation=tf.nn.softmax)
27 | ])
28 | # 输出模型结构
29 | plot_model(model, to_file='model.png', show_shapes=True, show_layer_names=False)
30 | return model
31 |
32 |
33 |
34 | # 展示训练过程的曲线
35 | def show_loss_acc(history):
36 | acc = history.history['accuracy']
37 | val_acc = history.history['val_accuracy']
38 |
39 | loss = history.history['loss']
40 | val_loss = history.history['val_loss']
41 |
42 | plt.figure(figsize=(8, 8))
43 | plt.subplot(2, 1, 1)
44 | plt.plot(acc, label='Training Accuracy')
45 | plt.plot(val_acc, label='Validation Accuracy')
46 | plt.legend(loc='lower right')
47 | plt.ylabel('Accuracy')
48 | plt.ylim([min(plt.ylim()), 1])
49 | plt.title('Training and Validation Accuracy')
50 |
51 | plt.subplot(2, 1, 2)
52 | plt.plot(loss, label='Training Loss')
53 | plt.plot(val_loss, label='Validation Loss')
54 | plt.legend(loc='upper right')
55 | plt.ylabel('Cross Entropy')
56 | plt.ylim([0, 1.0])
57 | plt.title('Training and Validation Loss')
58 | plt.xlabel('epoch')
59 | plt.show()
60 |
61 |
62 | if __name__ == '__main__':
63 | model = my_densenet()
64 | model.summary()
65 |
--------------------------------------------------------------------------------
/settings.py:
--------------------------------------------------------------------------------
1 | # 图片类别
2 | FRUIT_CLASS = {
3 | '苹果': '01',
4 | '香蕉': '02',
5 | '桃子': '03',
6 | '葡萄': '04'
7 | }
8 |
9 | # 图片保存根目录
10 | IMAGES_ROOT = 'photos'
11 |
12 | # 每个类别选取的图片数量
13 | SAMPLES_PER_CLASS = 400
14 |
15 | # 参与训练的类别
16 | CLASSES = ['01', '02', '03', '04']
17 |
18 | # 参与训练的类别数量
19 | CLASS_NUM = len(CLASSES)
20 |
21 | # 类别->编号的映射
22 | CLASS_CODE_MAP = {
23 | '01': 0,
24 | '02': 1,
25 | '03': 2,
26 | '04': 3
27 | }
28 |
29 | # 编号->类别的映射
30 | CODE_CLASS_MAP = {
31 | 0: '苹果',
32 | 1: '香蕉',
33 | 2: '桃子',
34 | 3: '葡萄'
35 | }
36 |
37 | # 随机数种子
38 | RANDOM_SEED = 13 # 四个类别时样本较为均衡的随机数种子
39 | # RANDOM_SEED = 19 # 三个类别时样本较为均衡的随机数种子
40 |
41 | # 训练集比例
42 | TRAIN_DATASET = 0.6
43 | # 开发集比例
44 | DEV_DATASET = 0.2
45 | # 测试集比例
46 | TEST_DATASET = 0.2
47 |
48 | # mini_batch大小
49 | BATCH_SIZE = 16
50 |
51 | # imagenet数据集均值
52 | IMAGE_MEAN = [0.485, 0.456, 0.406]
53 | # imagenet数据集标准差
54 | IMAGE_STD = [0.299, 0.224, 0.225]
55 |
56 | # 学习率
57 | LEARNING_RATE = 0.001
58 | # 训练epoch数
59 | TRAIN_EPOCHS = 3
60 | # 保存训练模型的路径
61 | MODEL_PATH = 'model.h5'
62 |
63 | # Web服务端口
64 | WEB_PORT = 5000
--------------------------------------------------------------------------------
/spider.py:
--------------------------------------------------------------------------------
1 | import requests
2 | import os
3 | import urllib
4 | import settings
5 |
6 | class Spider_baidu_image():
7 | def __init__(self):
8 | self.url = 'http://image.baidu.com/search/acjson?'
9 | self.headers = {
10 | 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.\
11 | 3497.81 Safari/537.36'}
12 | self.headers_image = {
13 | 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.\
14 | 3497.81 Safari/537.36',
15 | 'Referer': 'http://image.baidu.com/search/index?tn=baiduimage&ipn=r&ct=201326592&cl=2&lm=-1&st=-1&fm=result&fr=&sf=1&fmq=1557124645631_R&pv=&ic=&nc=1&z=&hd=1&latest=0©right=0&se=1&showtab=0&fb=0&width=&height=&face=0&istype=2&ie=utf-8&sid=&word=%E8%83%A1%E6%AD%8C'}
16 |
17 | self.keyword = fruit_keyword
18 | print(self.keyword,fruit_keyword)
19 | # 下载图片页数
20 | self.paginator = 1
21 |
22 | def get_param(self):
23 | """
24 | 获取url请求的参数,存入列表并返回
25 | :return:
26 | """
27 | keyword = urllib.parse.quote(self.keyword)
28 | params = []
29 | for i in range(1, self.paginator + 1):
30 | params.append(
31 | 'tn=resultjson_com&ipn=rj&ct=201326592&is=&fp=result&queryWord={}&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=-1&z=&ic=&hd=1&latest=0©right=0&word={}&s=&se=&tab=&width=&height=&face=0&istype=2&qc=&nc=1&fr=&expermode=&force=&cg=star&pn={}&rn=30&gsm=78&1557125391211='.format(
32 | keyword, keyword, 30 * i))
33 | return params
34 |
35 | def get_urls(self, params):
36 | """
37 | 由url参数返回各个url拼接后的响应,存入列表并返回
38 | :return:
39 | """
40 | urls = []
41 | for i in params:
42 | urls.append(self.url + i)
43 | return urls
44 |
45 | def get_image_url(self, urls):
46 | image_url = []
47 | for url in urls:
48 | json_data = requests.get(url, headers=self.headers).json()
49 | json_data = json_data.get('data')
50 | for i in json_data:
51 | if i:
52 | image_url.append(i.get('thumbURL'))
53 | return image_url
54 |
55 | def get_image(self, image_url):
56 | """
57 | 根据图片url,在本地目录下新建一个以搜索关键字命名的文件夹,然后将每一个图片存入。
58 | :param image_url:
59 | :return:
60 | """
61 | cwd = os.getcwd()
62 | file_name = os.path.join(cwd, self.keyword)
63 | if not os.path.exists(self.keyword):
64 | os.mkdir(file_name)
65 | for index, url in enumerate(image_url, start=1):
66 | with open(file_name + '\\{}.jpg'.format(index), 'wb') as f:
67 | f.write(requests.get(url, headers=self.headers_image).content)
68 | if index != 0 and index % 30 == 0:
69 | print('{}第{}页下载完成'.format(self.keyword, index / 30))
70 |
71 | def __call__(self, *args, **kwargs):
72 | params = self.get_param()
73 | urls = self.get_urls(params)
74 | image_url = self.get_image_url(urls)
75 | self.get_image(image_url)
76 |
77 |
78 |
79 | if __name__ == '__main__':
80 | for fruit_keyword in settings.FRUIT_CLASS.keys():
81 | fruit_keyword = Spider_baidu_image()
82 | fruit_keyword()
83 |
--------------------------------------------------------------------------------
/static/assembly/zylVerificationCode/zylVerificationCode.js:
--------------------------------------------------------------------------------
1 | $(function(){
2 | zylVerCode();//初始化生成随机数
3 | });
4 |
5 |
6 | //生成随机数
7 | function zylVerCode(len){
8 | len = len || 4;
9 | var $chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678';//默认去掉了容易混淆的字符oOLl,9gq,Vv,Uu,I1
10 | var maxPos = $chars.length;
11 | var zylCode = '';
12 | for (i = 0; i < len; i++) {
13 | zylCode += $chars.charAt(Math.floor(Math.random() * maxPos));
14 | }
15 | $(".zylVerCode").html(zylCode);
16 | }
--------------------------------------------------------------------------------
/static/css/font.css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: 'iconfont';
3 | src: url('../fonts/iconfont.eot');
4 | src: url('../fonts/iconfont.eot?#iefix') format('embedded-opentype'),
5 | url('../fonts/iconfont.woff') format('woff'),
6 | url('../fonts/iconfont.ttf') format('truetype'),
7 | url('../fonts/iconfont.svg#iconfont') format('svg');
8 | }
9 | .iconfont{
10 | font-family:"iconfont" !important;
11 | font-size:16px;font-style:normal;
12 | -webkit-font-smoothing: antialiased;
13 | -webkit-text-stroke-width: 0.2px;
14 | -moz-osx-font-smoothing: grayscale;
15 | }
16 |
17 |
--------------------------------------------------------------------------------
/static/css/reset.css:
--------------------------------------------------------------------------------
1 | /* 把标签默认的间距设为0 */
2 | body,ul,ol,p,h1,h2,h3,h4,h5,h6,dl,dd,select,input,textarea,form{margin:0;padding:0}
3 |
4 | /* 让h标签文字大小继承body的文字设置 */
5 | h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}
6 |
7 | /* 去掉列表默认的图标 */
8 | ul,ol{list-style:none;}
9 |
10 | /* 去掉em默认的斜体 */
11 | em{font-style: normal;}
12 |
13 | /* 去掉a标签默认的下划线 */
14 | a{text-decoration:none;}
15 |
16 |
17 | /* 去掉加链接时产生的框线 */
18 | img{border:0;}
19 |
20 | /* 清除浮动 */
21 | .clearfix:before,.clearfix:after{content:"";display:table}
22 | .clearfix:after{clear:both;}
23 | .clearfix{zoom:1}
24 |
25 | /* 浮动 */
26 | .fl{float:left}
27 | .fr{float:right}
28 |
29 |
30 | /*评论区专用css*/
31 |
32 | .content {
33 | box-shadow: 2px 2px 2px rgba(0, 0, 0, .2);
34 | padding: 20px 30px;
35 | margin-top: 50px;
36 | border-radius: 5px;
37 | background-color: #ffffff;
38 | }
39 | .content .title {
40 | padding: 10px;
41 | }
42 |
43 | .yd-wrap {
44 | padding: 15px;
45 | border: 1px solid #f0f0f0;
46 | border-radius: 5px;
47 | }
48 | .rt{float:right}
49 | .yd-header input{
50 | border-bottom: 1px dashed #dedede;
51 |
52 | }
53 | .yd-header input:focus{
54 | border-color: #eb5055;
55 | }
56 |
57 | .yd-textarea textarea {
58 | height: 10rem;
59 | }
60 |
61 | .yd-commit button {
62 | width: 100px;
63 | background-color: blue;
64 | color: white;
65 | }
66 |
67 | .yd-comment-num span{
68 | font-size: 20px;
69 | font-weight: 800;
70 | font-family: bold;
71 | }
72 |
73 | .yd-comment-item img {
74 | width: 50px;
75 | }
76 |
77 | .yd-comment-content a {
78 | font-weight: 600;
79 | }
80 |
81 | .yd-comment-head {
82 | margin-bottom: 5px;
83 | }
84 |
85 | .yd-comment-body {
86 | margin-bottom: 10px;
87 | }
88 |
89 | .yd-comment-footer {
90 | color: #b3b3b3;
91 | border-bottom: 1px solid #f5f5f5;
92 | }
93 | .container {
94 | max-width: 1080px;
95 | }
96 | .market {
97 | background-color: #4285f4;
98 | height: 398px;
99 | position: absolute;
100 | top: 60px;
101 | width: 100%;
102 | outline: none;
103 | display: block;
104 | z-index: -1;
105 | }
106 | .row {
107 | margin-bottom: 0.75rem;
108 |
109 | }
110 |
111 | input, textarea{
112 | resize: none;
113 | outline: none;
114 | border: none;
115 | width: 100%;
116 | margin: 10px px;
117 | border-bottom: 1px dashed #dedede;
118 | }
--------------------------------------------------------------------------------
/static/css/style.css:
--------------------------------------------------------------------------------
1 | * {
2 | margin: 0;
3 | padding: 0;
4 | }
5 | body {
6 | font-size: 18px;
7 | font-family:Microsoft Yahei,Verdana,Helvetica,Arial,sans-serif;
8 | }
9 | div#ksLeftNav {
10 | position: fixed;
11 | width: 190px;
12 | float: left;
13 | margin-top: 300px;
14 | margin: 0;
15 | padding: 15px;
16 | }
17 | div#ksLeftNav * {
18 | margin: 0;
19 | padding: 0;
20 | }
21 | div#ksLeftNav div#nav-con {
22 | position: relative;
23 | }
24 | div#ksLeftNav div#nav-con ul.nav {
25 | margin: 15px;
26 | position: relative;
27 | z-index: 2;
28 | }
29 | div#ksLeftNav div#nav-con ul.nav li {
30 | list-style: none;
31 | }
32 | div#ksLeftNav div#nav-con ul.nav li a.nav-title {
33 | display: inline-block;
34 | text-decoration: none;
35 | color: #333;
36 | height: 36px;
37 | line-height: 36px;
38 | padding-left: 26px;
39 | font-weight: bold;
40 | background: url(../images/quan.png) left center no-repeat;
41 | }
42 | div#ksLeftNav div#nav-con ul.nav li a.nav-title.active {
43 | color: #00bfe9;
44 | background: url(../images/sign_right.png) 2px center no-repeat;
45 | }
46 | div#ksLeftNav div#nav-con div.nav-detail {
47 | }
48 | div#ksLeftNav div#nav-con div.nav-detail a {
49 | display: block;
50 | color: #666;
51 | padding: 5px 15px 5px 40px;
52 | text-decoration: none;
53 | }
54 | div#ksLeftNav div#nav-con div.nav-detail a.active {
55 | color: #00bfe9;
56 | }
57 | div#ksLeftNav div#nav-con div.nav-detail a:hover {
58 | text-decoration: none;
59 | }
60 | div#ksLeftNav div#nav-con div.line {
61 | position: absolute;
62 | top: 0;
63 | left: 23px;
64 | height: 100%;
65 | width: 1px;
66 | border-left: 1px solid #ccc;
67 | }
68 | div#ksLeftNav div#nav-con div.circle-top {
69 | position: absolute;
70 | top: -17px;
71 | left: 17px;
72 | }
73 | div#ksLeftNav div#nav-con div.circle-bottom {
74 | position: absolute;
75 | bottom: -17px;
76 | left: 17px;
77 | }
78 |
79 | div.right-con {
80 | margin-top: 10px;
81 | margin-left: 220px;
82 | border-left: 3px solid #00BFE9;
83 | }
84 | div.right-con div.item {
85 | padding: 15px;
86 | }
87 | div.right-con div.item div {
88 | padding: 15px 0;
89 | }
90 | div.right-con div.item h5 {
91 | font-size: 24px;
92 | color: #00BFE9;
93 | padding-bottom: 10px;
94 | border-bottom: 1px dotted #CCC;
95 | }
96 | div.right-con div.item p {
97 | padding: 15px 0;
98 | line-height: 25px;
99 | }
100 |
101 |
102 | .intro-img{
103 | height: 200px;
104 | margin-top: 20px;
105 | margin-left: 100px;
106 | }
107 |
108 | .header_baike{
109 | font-family:宋体;
110 | font-weight:bold;
111 | font-size:80px
112 | }
--------------------------------------------------------------------------------
/static/images/bg.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/images/bg.gif
--------------------------------------------------------------------------------
/static/images/p1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/images/p1.jpg
--------------------------------------------------------------------------------
/static/images/p2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/images/p2.jpg
--------------------------------------------------------------------------------
/static/images/p3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/images/p3.jpg
--------------------------------------------------------------------------------
/static/images/p4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/images/p4.jpg
--------------------------------------------------------------------------------
/static/images/p5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/images/p5.jpg
--------------------------------------------------------------------------------
/static/images/s1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/images/s1.jpg
--------------------------------------------------------------------------------
/static/images/s2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/images/s2.jpg
--------------------------------------------------------------------------------
/static/images/s3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/images/s3.jpg
--------------------------------------------------------------------------------
/static/images/s4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/images/s4.jpg
--------------------------------------------------------------------------------
/static/js/main.js:
--------------------------------------------------------------------------------
1 | const commitButton = e('.btn-commit')
2 |
3 | const template = function(comment) {
4 | const t = `
5 |
16 | `
17 | return t
18 | }
19 |
20 | const insertComment = function(comment) {
21 | const commentWrap = e('.yd-comment-wrap')
22 | const t = template(comment)
23 | commentWrap.insertAdjacentHTML('beforeend', t)
24 | }
25 |
26 | const saveComment = function() {
27 | // 把所有评论存入到localStorge
28 | let items = document.querySelectorAll('.yd-comment-item')
29 | var comments = []
30 | for (let i = 0; i < items.length; i++) {
31 | // 在单个评论页中读取用户信息
32 | const item = items[i];
33 | var comment = {
34 | name: find(item, '.nm').innerText,
35 | content: find(item, '.panel-body').innerText,
36 | time: find(item, '.rt').innerText,
37 | }
38 | // 得到图片的src路径 x.png 的 x 这个属性
39 | var avatar = find(item, '.yd-comment-avatar').src.slice(-5, -4)
40 | comment.avatar = avatar
41 | comments.push(comment)
42 | }
43 | console.log('comments', comments);
44 | localStorage.comments = JSON.stringify(comments)
45 | }
46 |
47 | const loadComment = function() {
48 | // 从localStorge中读取所有的评论并载入, 一开始没有评论, localStorage为空
49 | var num = e('.span-comment-num')
50 | var s = localStorage.comments
51 | if (s !== '') {
52 | var comments = JSON.parse(localStorage.comments)
53 | num.innerText = comments.length
54 | for (let i = 0; i < comments.length; i++) {
55 | insertComment(comments[i])
56 | }
57 | }
58 | }
59 |
60 | bindEvent(commitButton, 'click', function(event) {
61 | // 1. 读取信息, 存入object中, 随机给一个头像
62 | let user = {
63 | name: e('.yd-name').value,
64 | email: e('.yd-email').value,
65 | url: e('.yd-url').value,
66 | content: e('.yd-editor').value,
67 | time: getTime(),
68 | avatar: parseInt(Math.random()*2) + 1
69 | }
70 | // 2. 如果用户没输入名字, 给一个自定义的名字
71 | if (user.name == "") {
72 | user.name = '高大锤'
73 | }
74 | // 3. 插入用户到页面中
75 | insertComment(user)
76 | // 4. 读取页面中所有的评论信息写入到localStorge中
77 | saveComment()
78 | })
79 |
80 | loadComment()
81 |
82 |
--------------------------------------------------------------------------------
/static/js/nav.js:
--------------------------------------------------------------------------------
1 | var scrollTagEvent = (function() {
2 |
3 | $(function(){
4 |
5 | var arr = [];
6 | init();
7 |
8 | /**
9 | * 初始化
10 | * @return {[type]} [description]
11 | */
12 | function init() {
13 |
14 | $('div#ksLeftNav a.nav-title').each(function(){
15 | arr.push(parseInt($($(this).attr("href")).offset().top));
16 | });
17 |
18 | $(document).on('click','div#ksLeftNav a',function(e){
19 |
20 | e.preventDefault();
21 | unbindScroll();
22 |
23 | // 判断是否为子集
24 | $('div#ksLeftNav a.nav-title').removeClass('active');
25 | if ($(this).parent().hasClass('nav-detail')) {
26 | $(this).parent().siblings('a').addClass('active');
27 | } else {
28 | $(this).addClass('active');
29 | }
30 |
31 | $("html, body").animate({
32 | scrollTop: $($(this).attr("href")).offset().top + 'px'
33 | },500,function(){
34 | bindScroll();
35 | });
36 |
37 | });
38 |
39 | $('div#ksLeftNav a.nav-title').first().trigger('click');
40 | }
41 |
42 | /**
43 | * 滚动事件绑定
44 | * 滚动高度对应的内容响应左侧导航
45 | * @return {[type]} [description]
46 | */
47 | function bindScroll() {
48 |
49 | $(window).on('scroll.tag',function(e){
50 |
51 | var scrollT = $(this).scrollTop();
52 |
53 | for (var i = 0; i < arr.length; i++) {
54 | if (scrollT >= arr[i]) {
55 | $('a.active').removeClass('active');
56 | $('div#ksLeftNav a.nav-title:eq(' + i + ')').addClass('active');
57 | }
58 | }
59 | });
60 | }
61 |
62 | // 取消滚动事件的绑定,防止影响左侧导航点击事件
63 | function unbindScroll() {
64 | $(window).off('scroll.tag');
65 | }
66 |
67 | });
68 |
69 | })();
--------------------------------------------------------------------------------
/static/js/tool.js:
--------------------------------------------------------------------------------
1 | var e = function(selector) {
2 | return document.querySelector(selector)
3 | }
4 |
5 | var bindEvent = function(element, event, callBack) {
6 | element.addEventListener(event, callBack)
7 | }
8 |
9 | var getTime = function() {
10 | var d = new Date()
11 |
12 | var year = d.getFullYear()
13 | var month = d.getMonth()+1
14 | var day = d.getDate()
15 |
16 | var xs = d.getHours()
17 | var fz = d.getMinutes()
18 | var ms = d.getSeconds()
19 | if (xs < 10) {
20 | xs = '0' + xs
21 | }
22 | if (fz < 10) {
23 | fz = '0' + fz
24 | }
25 | if (ms < 10) {
26 | ms = '0' + ms
27 | }
28 | return `${year}-${month}-${day} ${xs}:${fz}:${ms}`
29 | }
30 |
31 | // find函数可以查找 element 的所有子元素
32 | var find = function(element, selector) {
33 | return element.querySelector(selector)
34 | }
--------------------------------------------------------------------------------
/static/lib/layui/css/modules/code.css:
--------------------------------------------------------------------------------
1 | /** layui-v2.0.2 MIT License By http://www.layui.com */
2 | html #layuicss-skincodecss{display:none;position:absolute;width:1989px}.layui-code-h3,.layui-code-view{position:relative;font-size:12px}.layui-code-view{display:block;margin:10px 0;padding:0;border:1px solid #e2e2e2;border-left-width:6px;background-color:#F2F2F2;color:#333;font-family:Courier New}.layui-code-h3{padding:0 10px;height:32px;line-height:32px;border-bottom:1px solid #e2e2e2}.layui-code-h3 a{position:absolute;right:10px;top:0;color:#999}.layui-code-view .layui-code-ol{position:relative;overflow:auto}.layui-code-view .layui-code-ol li{position:relative;margin-left:45px;line-height:20px;padding:0 5px;border-left:1px solid #e2e2e2;list-style-type:decimal-leading-zero;*list-style-type:decimal;background-color:#fff}.layui-code-view pre{margin:0}.layui-code-notepad{border:1px solid #0C0C0C;border-left-color:#3F3F3F;background-color:#0C0C0C;color:#C2BE9E}.layui-code-notepad .layui-code-h3{border-bottom:none}.layui-code-notepad .layui-code-ol li{background-color:#3F3F3F;border-left:none}
--------------------------------------------------------------------------------
/static/lib/layui/css/modules/layer/default/icon-ext.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/css/modules/layer/default/icon-ext.png
--------------------------------------------------------------------------------
/static/lib/layui/css/modules/layer/default/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/css/modules/layer/default/icon.png
--------------------------------------------------------------------------------
/static/lib/layui/css/modules/layer/default/loading-0.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/css/modules/layer/default/loading-0.gif
--------------------------------------------------------------------------------
/static/lib/layui/css/modules/layer/default/loading-1 2.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/css/modules/layer/default/loading-1 2.gif
--------------------------------------------------------------------------------
/static/lib/layui/css/modules/layer/default/loading-1.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/css/modules/layer/default/loading-1.gif
--------------------------------------------------------------------------------
/static/lib/layui/css/modules/layer/default/loading-2 2.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/css/modules/layer/default/loading-2 2.gif
--------------------------------------------------------------------------------
/static/lib/layui/css/modules/layer/default/loading-2.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/css/modules/layer/default/loading-2.gif
--------------------------------------------------------------------------------
/static/lib/layui/font/iconfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/font/iconfont.eot
--------------------------------------------------------------------------------
/static/lib/layui/font/iconfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/font/iconfont.ttf
--------------------------------------------------------------------------------
/static/lib/layui/font/iconfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/font/iconfont.woff
--------------------------------------------------------------------------------
/static/lib/layui/images/face/0.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/0.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/1.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/1.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/10.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/10.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/11.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/11.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/12.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/12.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/13.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/13.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/14.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/14.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/15.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/15.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/16.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/16.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/17.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/17.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/18.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/18.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/19.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/19.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/2.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/2.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/20.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/20.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/21.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/21.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/22.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/22.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/23.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/23.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/24.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/24.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/25.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/25.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/26.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/26.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/27.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/27.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/28.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/28.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/29.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/29.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/3.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/3.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/30.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/30.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/31.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/31.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/32.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/32.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/33.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/33.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/34.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/34.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/35.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/35.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/36.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/36.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/37.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/37.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/38.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/38.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/39.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/39.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/4.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/4.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/40.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/40.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/41.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/41.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/42.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/42.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/43.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/43.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/44.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/44.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/45.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/45.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/46.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/46.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/47.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/47.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/48.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/48.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/49.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/49.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/5.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/5.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/50.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/50.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/51.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/51.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/52.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/52.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/53.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/53.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/54.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/54.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/55.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/55.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/56.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/56.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/57.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/57.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/58.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/58.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/59.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/59.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/6.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/6.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/60.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/60.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/61.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/61.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/62.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/62.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/63.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/63.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/64.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/64.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/65.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/65.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/66.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/66.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/67.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/67.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/68.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/68.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/69.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/69.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/7.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/7.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/70.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/70.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/71.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/71.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/8.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/8.gif
--------------------------------------------------------------------------------
/static/lib/layui/images/face/9.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layui/images/face/9.gif
--------------------------------------------------------------------------------
/static/lib/layui/lay/modules/carousel.js:
--------------------------------------------------------------------------------
1 | /** layui-v2.0.2 MIT License By http://www.layui.com */
2 | ;layui.define("jquery",function(e){"use strict";var i=layui.$,n=(layui.hint(),layui.device(),{config:{},set:function(e){var n=this;return n.config=i.extend({},n.config,e),n},on:function(e,i){return layui.onevent.call(this,t,e,i)}}),t="carousel",a="layui-this",o=">*[carousel-item]>*",l="layui-carousel-left",r="layui-carousel-right",d="layui-carousel-prev",s="layui-carousel-next",u="layui-carousel-arrow",c="layui-carousel-ind",m=function(e){var t=this;t.config=i.extend({},t.config,n.config,e),t.render()};m.prototype.config={width:"600px",height:"280px",full:!1,arrow:"hover",indicator:"inside",autoplay:!0,interval:3e3,anim:"",trigger:"click",index:0},m.prototype.render=function(){var e=this,n=e.config;n.elem=i(n.elem),n.elem[0]&&(e.elemItem=n.elem.find(o),n.index<0&&(n.index=0),n.index>=e.elemItem.length&&(n.index=e.elemItem.length-1),n.interval<800&&(n.interval=800),n.full?n.elem.css({position:"fixed",width:"100%",height:"100%",zIndex:9999}):n.elem.css({width:n.width,height:n.height}),n.elem.attr("lay-anim",n.anim),e.elemItem.eq(n.index).addClass(a),e.indicator(),e.elemItem.length<=1||(e.arrow(),e.autoplay(),e.events()))},m.prototype.reload=function(e){var n=this;clearInterval(n.timer),n.config=i.extend({},n.config,e),n.render()},m.prototype.prevIndex=function(){var e=this,i=e.config,n=i.index-1;return n<0&&(n=e.elemItem.length-1),n},m.prototype.nextIndex=function(){var e=this,i=e.config,n=i.index+1;return n>=e.elemItem.length&&(n=0),n},m.prototype.addIndex=function(e){var i=this,n=i.config;e=e||1,n.index=n.index+e,n.index>=i.elemItem.length&&(n.index=0)},m.prototype.subIndex=function(e){var i=this,n=i.config;e=e||1,n.index=n.index-e,n.index<0&&(n.index=i.elemItem.length-1)},m.prototype.autoplay=function(){var e=this,i=e.config;i.autoplay&&(e.timer=setInterval(function(){e.slide()},i.interval))},m.prototype.arrow=function(){var e=this,n=e.config,t=i(['",'"].join(""));n.elem.attr("lay-arrow",n.arrow),n.elem.find("."+u)[0]&&n.elem.find("."+u).remove(),n.elem.append(t),t.on("click",function(){var n=i(this),t=n.attr("lay-type");e.slide(t)})},m.prototype.indicator=function(){var e=this,n=e.config,t=e.elemInd=i(['',function(){var i=[];return layui.each(e.elemItem,function(e){i.push("")}),i.join("")}(),"
"].join(""));n.elem.attr("lay-indicator",n.indicator),n.elem.find("."+c)[0]&&n.elem.find("."+c).remove(),n.elem.append(t),"updown"===n.anim&&t.css("margin-top",-(t.height()/2)),t.find("li").on("hover"===n.trigger?"mouseover":n.trigger,function(){var t=i(this),a=t.index();a>n.index?e.slide("add",a-n.index):a/g,">").replace(/'/g,"'").replace(/"/g,""")),c.html('- '+o.replace(/[\r\t\n]+/g,"
- ")+"
"),c.find(">.layui-code-h3")[0]||c.prepend(''+(c.attr("lay-title")||e.title||"code")+(e.about?'layui.code':"")+"
");var d=c.find(">.layui-code-ol");c.addClass("layui-box layui-code-view"),(c.attr("lay-skin")||e.skin)&&c.addClass("layui-code-"+(c.attr("lay-skin")||e.skin)),(d.find("li").length/100|0)>0&&d.css("margin-left",(d.find("li").length/100|0)+"px"),(c.attr("lay-height")||e.height)&&d.css("max-height",c.attr("lay-height")||e.height)})})}).addcss("modules/code.css","skincodecss");
--------------------------------------------------------------------------------
/static/lib/layui/lay/modules/flow.js:
--------------------------------------------------------------------------------
1 | /** layui-v2.0.2 MIT License By http://www.layui.com */
2 | ;layui.define("jquery",function(e){"use strict";var l=layui.$,o=function(e){},t='';o.prototype.load=function(e){var o,i,n,r,a=this,c=0;e=e||{};var f=l(e.elem);if(f[0]){var m=l(e.scrollElem||document),u=e.mb||50,s=!("isAuto"in e)||e.isAuto,v=e.end||"没有更多了",y=e.scrollElem&&e.scrollElem!==document,d="加载更多",h=l('");f.find(".layui-flow-more")[0]||f.append(h);var p=function(e,t){e=l(e),h.before(e),t=0==t||null,t?h.html(v):h.find("a").html(d),i=t,o=null,n&&n()},g=function(){o=!0,h.find("a").html(t),"function"==typeof e.done&&e.done(++c,p)};if(g(),h.find("a").on("click",function(){l(this);i||o||g()}),e.isLazyimg)var n=a.lazyimg({elem:e.elem+" img",scrollElem:e.scrollElem});return s?(m.on("scroll",function(){var e=l(this),t=e.scrollTop();r&&clearTimeout(r),i||(r=setTimeout(function(){var i=y?e.height():l(window).height(),n=y?e.prop("scrollHeight"):document.documentElement.scrollHeight;n-t-i<=u&&(o||g())},100))}),a):a}},o.prototype.lazyimg=function(e){var o,t=this,i=0;e=e||{};var n=l(e.scrollElem||document),r=e.elem||"img",a=e.scrollElem&&e.scrollElem!==document,c=function(e,l){var o=n.scrollTop(),r=o+l,c=a?function(){return e.offset().top-n.offset().top+o}():e.offset().top;if(c>=o&&c<=r&&!e.attr("src")){var m=e.attr("lay-src");layui.img(m,function(){var l=t.lazyimg.elem.eq(i);e.attr("src",m).removeAttr("lay-src"),l[0]&&f(l),i++})}},f=function(e,o){var f=a?(o||n).height():l(window).height(),m=n.scrollTop(),u=m+f;if(t.lazyimg.elem=l(r),e)c(e,f);else for(var s=0;su)break}};if(f(),!o){var m;n.on("scroll",function(){var e=l(this);m&&clearTimeout(m),m=setTimeout(function(){f(null,e)},50)}),o=!0}return f},e("flow",new o)});
--------------------------------------------------------------------------------
/static/lib/layui/lay/modules/laypage.js:
--------------------------------------------------------------------------------
1 | /** layui-v2.0.2 MIT License By http://www.layui.com */
2 | ;layui.define(function(e){"use strict";var a=document,t="getElementById",r="getElementsByTagName",n="laypage",i="layui-disabled",u=function(e){var a=this;a.config=e||{},a.config.index=++s.index,a.render(!0)};u.prototype.type=function(){var e=this.config;if("object"==typeof e.elem)return void 0===e.elem.length?2:3},u.prototype.view=function(){var e=this,a=e.config;a.layout="object"==typeof a.layout?a.layout:["prev","page","next"],a.count=0|a.count,a.curr=0|a.curr||1,a.groups=0|a.groups||5,a.limits="object"==typeof a.limits?a.limits:[10,20,30,40,50],a.limit=0|a.limit||10,a.pages=Math.ceil(a.count/a.limit)||1,a.curr>a.pages&&(a.curr=a.pages),a.groups<0?a.groups=0:a.groups>a.pages&&(a.groups=a.pages),a.prev="prev"in a?a.prev:"上一页",a.next="next"in a?a.next:"下一页";var t=a.pages>a.groups?Math.ceil((a.curr+(a.groups>1?1:0))/(a.groups>0?a.groups:1)):1,r={prev:function(){return a.prev?''+a.prev+"":""}(),page:function(){var e=[];if(a.count<1)return"";t>1&&a.first!==!1&&0!==a.groups&&e.push(''+(a.first||1)+"");var r=Math.floor((a.groups-1)/2),n=t>1?a.curr-r:1,i=t>1?function(){var e=a.curr+(a.groups-r-1);return e>a.pages?a.pages:e}():a.groups;for(i-n2&&e.push('…');n<=i;n++)n===a.curr?e.push('"+n+""):e.push(''+n+"");return a.pages>a.groups&&a.pages>i&&a.last!==!1&&(i+1…'),0!==a.groups&&e.push(''+(a.last||a.pages)+"")),e.join("")}(),next:function(){return a.next?''+a.next+"":""}(),count:'共 '+a.count+" 条",limit:function(){var e=['"}(),skip:function(){return['到第','','页',""].join("")}()};return['',function(){var e=[];return layui.each(a.layout,function(a,t){r[t]&&e.push(r[t])}),e.join("")}(),"
"].join("")},u.prototype.jump=function(e,a){if(e){var t=this,n=t.config,i=e.children,u=e[r]("button")[0],p=e[r]("input")[0],l=e[r]("select")[0],o=function(){var e=0|p.value.replace(/\s|\D/g,"");e&&(n.curr=e,t.render())};if(a)return o();for(var c=0,g=i.length;cn.pages||(n.curr=e,t.render())});l&&s.on(l,"change",function(){var e=this.value;n.curr*e>n.count&&(n.curr=Math.ceil(n.count/e)),n.limit=e,t.render()}),u&&s.on(u,"click",function(){o()})}},u.prototype.skip=function(e){if(e){var a=this,t=e[r]("input")[0];t&&s.on(t,"keyup",function(t){var r=this.value,n=t.keyCode;/^(37|38|39|40)$/.test(n)||(/\D/.test(r)&&(this.value=r.replace(/\D/,"")),13===n&&a.jump(e,!0))})}},u.prototype.render=function(e){var r=this,n=r.config,i=r.type(),u=r.view();2===i?n.elem&&(n.elem.innerHTML=u):3===i?n.elem.html(u):a[t](n.elem)&&(a[t](n.elem).innerHTML=u),n.jump&&n.jump(n,e);var s=a[t]("layui-laypage-"+n.index);r.jump(s),n.hash&&!e&&(location.hash="!"+n.hash+"="+n.curr),r.skip(s)};var s={render:function(e){var a=new u(e);return a.index},index:layui.laypage?layui.laypage.index+1e4:0,on:function(e,a,t){return e.attachEvent?e.attachEvent("on"+a,function(a){t.call(e,a)}):e.addEventListener(a,t,!1),this}};e(n,s)});
--------------------------------------------------------------------------------
/static/lib/layui/lay/modules/laytpl.js:
--------------------------------------------------------------------------------
1 | /** layui-v2.0.2 MIT License By http://www.layui.com */
2 | ;layui.define(function(e){"use strict";var r={open:"{{",close:"}}"},n={exp:function(e){return new RegExp(e,"g")},query:function(e,n,t){var o=["#([\\s\\S])+?","([^{#}])*?"][e||0];return c((n||"")+r.open+o+r.close+(t||""))},escape:function(e){return String(e||"").replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&").replace(//g,">").replace(/'/g,"'").replace(/"/g,""")},error:function(e,r){var n="Laytpl Error:";return"object"==typeof console&&console.error(n+e+"\n"+(r||"")),n+e}},c=n.exp,t=function(e){this.tpl=e};t.pt=t.prototype,window.errors=0,t.pt.parse=function(e,t){var o=this,p=e,a=c("^"+r.open+"#",""),l=c(r.close+"$","");e=e.replace(/\s+|\r|\t|\n/g," ").replace(c(r.open+"#"),r.open+"# ").replace(c(r.close+"}"),"} "+r.close).replace(/\\/g,"\\\\").replace(/(?="|')/g,"\\").replace(n.query(),function(e){return e=e.replace(a,"").replace(l,""),'";'+e.replace(/\\/g,"")+';view+="'}).replace(n.query(1),function(e){var n='"+(';return e.replace(/\s/g,"")===r.open+r.close?"":(e=e.replace(c(r.open+"|"+r.close),""),/^=/.test(e)&&(e=e.replace(/^=/,""),n='"+_escape_('),n+e.replace(/\\/g,"")+')+"')}),e='"use strict";var view = "'+e+'";return view;';try{return o.cache=e=new Function("d, _escape_",e),e(t,n.escape)}catch(u){return delete o.cache,n.error(u,p)}},t.pt.render=function(e,r){var c,t=this;return e?(c=t.cache?t.cache(e,n.escape):t.parse(t.tpl,e),r?void r(c):c):n.error("no data")};var o=function(e){return"string"!=typeof e?n.error("Template not found"):new t(e)};o.config=function(e){e=e||{};for(var n in e)r[n]=e[n]},o.v="1.2.0",e("laytpl",o)});
--------------------------------------------------------------------------------
/static/lib/layui/lay/modules/tree.js:
--------------------------------------------------------------------------------
1 | /** layui-v2.0.2 MIT License By http://www.layui.com */
2 | ;layui.define("jquery",function(e){"use strict";var o=layui.$,a=layui.hint(),i="layui-tree-enter",r=function(e){this.options=e},t={arrow:["",""],checkbox:["",""],radio:["",""],branch:["",""],leaf:""};r.prototype.init=function(e){var o=this;e.addClass("layui-box layui-tree"),o.options.skin&&e.addClass("layui-tree-skin-"+o.options.skin),o.tree(e),o.on(e)},r.prototype.tree=function(e,a){var i=this,r=i.options,n=a||r.nodes;layui.each(n,function(a,n){var l=n.children&&n.children.length>0,c=o(''),s=o(["",function(){return l?''+(n.spread?t.arrow[1]:t.arrow[0])+"":""}(),function(){return r.check?''+("checkbox"===r.check?t.checkbox[0]:"radio"===r.check?t.radio[0]:"")+"":""}(),function(){return'"+(''+(l?n.spread?t.branch[1]:t.branch[0]:t.leaf)+"")+(""+(n.name||"未命名")+"")}(),""].join(""));l&&(s.append(c),i.tree(c,n.children)),e.append(s),"function"==typeof r.click&&i.click(s,n),i.spread(s,n),r.drag&&i.drag(s,n)})},r.prototype.click=function(e,o){var a=this,i=a.options;e.children("a").on("click",function(e){layui.stope(e),i.click(o)})},r.prototype.spread=function(e,o){var a=this,i=(a.options,e.children(".layui-tree-spread")),r=e.children("ul"),n=e.children("a"),l=function(){e.data("spread")?(e.data("spread",null),r.removeClass("layui-show"),i.html(t.arrow[0]),n.find(".layui-icon").html(t.branch[0])):(e.data("spread",!0),r.addClass("layui-show"),i.html(t.arrow[1]),n.find(".layui-icon").html(t.branch[1]))};r[0]&&(i.on("click",l),n.on("dblclick",l))},r.prototype.on=function(e){var a=this,r=a.options,t="layui-tree-drag";e.find("i").on("selectstart",function(e){return!1}),r.drag&&o(document).on("mousemove",function(e){var i=a.move;if(i.from){var r=(i.to,o(''));e.preventDefault(),o("."+t)[0]||o("body").append(r);var n=o("."+t)[0]?o("."+t):r;n.addClass("layui-show").html(i.from.elem.children("a").html()),n.css({left:e.pageX+10,top:e.pageY+10})}}).on("mouseup",function(){var e=a.move;e.from&&(e.from.elem.children("a").removeClass(i),e.to&&e.to.elem.children("a").removeClass(i),a.move={},o("."+t).remove())})},r.prototype.move={},r.prototype.drag=function(e,a){var r=this,t=(r.options,e.children("a")),n=function(){var t=o(this),n=r.move;n.from&&(n.to={item:a,elem:e},t.addClass(i))};t.on("mousedown",function(){var o=r.move;o.from={item:a,elem:e}}),t.on("mouseenter",n).on("mousemove",n).on("mouseleave",function(){var e=o(this),a=r.move;a.from&&(delete a.to,e.removeClass(i))})},e("tree",function(e){var i=new r(e=e||{}),t=o(e.elem);return t[0]?void i.init(t):a.error("layui.tree 没有找到"+e.elem+"元素")})});
--------------------------------------------------------------------------------
/static/lib/layui/lay/modules/util.js:
--------------------------------------------------------------------------------
1 | /** layui-v2.0.2 MIT License By http://www.layui.com */
2 | ;layui.define("jquery",function(e){"use strict";var o=layui.$,t={fixbar:function(e){var t,a,i="layui-fixbar",l="layui-fixbar-top",r=o(document),c=o("body");e=o.extend({showHeight:200},e),e.bar1=e.bar1===!0?"":e.bar1,e.bar2=e.bar2===!0?"":e.bar2,e.bgcolor=e.bgcolor?"background-color:"+e.bgcolor:"";var n=[e.bar1,e.bar2,""],u=o(['',e.bar1?'- '+n[0]+"
":"",e.bar2?'- '+n[1]+"
":"",'- '+n[2]+"
","
"].join("")),s=u.find("."+l),b=function(){var o=r.scrollTop();o>=e.showHeight?t||(s.show(),t=1):t&&(s.hide(),t=0)};o("."+i)[0]||("object"==typeof e.css&&u.css(e.css),c.append(u),b(),u.find("li").on("click",function(){var t=o(this),a=t.attr("lay-type");"top"===a&&o("html,body").animate({scrollTop:0},200),e.click&&e.click.call(this,a)}),r.on("scroll",function(){clearTimeout(a),a=setTimeout(function(){b()},100)}))},countdown:function(e,o,t){var a=this,i="function"==typeof o,l=new Date(e).getTime(),r=new Date(!o||i?(new Date).getTime():o).getTime(),c=l-r,n=[Math.floor(c/864e5),Math.floor(c/36e5)%24,Math.floor(c/6e4)%60,Math.floor(c/1e3)%60];i&&(t=o);var u=setTimeout(function(){a.countdown(e,r+1e3,t)},1e3);return t&&t(c>0?n:[0,0,0,0],o,u),c<=0&&clearTimeout(u),u},timeAgo:function(e,o){var t=(new Date).getTime()-new Date(e).getTime();return t>2592e6?(t=new Date(e).toLocaleString(),o&&(t=t.replace(/\s[\S]+$/g,"")),t):t>=864e5?(t/1e3/60/60/24|0)+"天前":t>=36e5?(t/1e3/60/60|0)+"小时前":t>=18e4?(t/1e3/60|0)+"分钟前":t<0?"未来":"刚刚"}};e("util",t)});
--------------------------------------------------------------------------------
/static/lib/layuiadmin/config.js:
--------------------------------------------------------------------------------
1 | /**
2 |
3 | @Name:layuiAdmin iframe版全局配置
4 | @Author:贤心
5 | @Site:http://www.layui.com/admin/
6 | @License:LPPL(layui付费产品协议)
7 |
8 | */
9 |
10 | layui.define(['laytpl', 'layer', 'element', 'util'], function(exports){
11 | exports('setter', {
12 | container: 'LAY_app' //容器ID
13 | ,base: layui.cache.base //记录静态资源所在路径
14 | ,views: layui.cache.base + 'tpl/' //动态模板所在目录
15 | ,entry: 'index' //默认视图文件名
16 | ,engine: '.html' //视图文件后缀名
17 | ,pageTabs: true //是否开启页面选项卡功能。iframe版推荐开启
18 |
19 | ,name: 'layuiAdmin'
20 | ,tableName: 'layuiAdmin' //本地存储表名
21 | ,MOD_NAME: 'admin' //模块事件名
22 |
23 | ,debug: true //是否开启调试模式。如开启,接口异常时会抛出异常 URL 等信息
24 |
25 | //自定义请求字段
26 | ,request: {
27 | tokenName: false //自动携带 token 的字段名(如:access_token)。可设置 false 不携带。
28 | }
29 |
30 | //自定义响应字段
31 | ,response: {
32 | statusName: 'code' //数据状态的字段名称
33 | ,statusCode: {
34 | ok: 0 //数据状态一切正常的状态码
35 | ,logout: 1001 //登录状态失效的状态码
36 | }
37 | ,msgName: 'msg' //状态信息的字段名称
38 | ,dataName: 'data' //数据详情的字段名称
39 | }
40 |
41 | //扩展的第三方模块
42 | ,extend: [
43 | 'echarts', //echarts 核心包
44 | 'echartsTheme' //echarts 主题
45 | ]
46 |
47 | //主题配置
48 | ,theme: {
49 | //内置主题配色方案
50 | color: [{
51 | main: '#20222A' //主题色
52 | ,selected: '#009688' //选中色
53 | ,alias: 'default' //默认别名
54 | },{
55 | main: '#03152A'
56 | ,selected: '#3B91FF'
57 | ,alias: 'dark-blue' //藏蓝
58 | },{
59 | main: '#2E241B'
60 | ,selected: '#A48566'
61 | ,alias: 'coffee' //咖啡
62 | },{
63 | main: '#50314F'
64 | ,selected: '#7A4D7B'
65 | ,alias: 'purple-red' //紫红
66 | },{
67 | main: '#344058'
68 | ,logo: '#1E9FFF'
69 | ,selected: '#1E9FFF'
70 | ,alias: 'ocean' //海洋
71 | },{
72 | main: '#3A3D49'
73 | ,logo: '#2F9688'
74 | ,selected: '#5FB878'
75 | ,alias: 'green' //墨绿
76 | },{
77 | main: '#20222A'
78 | ,logo: '#F78400'
79 | ,selected: '#F78400'
80 | ,alias: 'red' //橙色
81 | },{
82 | main: '#28333E'
83 | ,logo: '#AA3130'
84 | ,selected: '#AA3130'
85 | ,alias: 'fashion-red' //时尚红
86 | },{
87 | main: '#24262F'
88 | ,logo: '#3A3D49'
89 | ,selected: '#009688'
90 | ,alias: 'classic-black' //经典黑
91 | },{
92 | logo: '#226A62'
93 | ,header: '#2F9688'
94 | ,alias: 'green-header' //墨绿头
95 | },{
96 | main: '#344058'
97 | ,logo: '#0085E8'
98 | ,selected: '#1E9FFF'
99 | ,header: '#1E9FFF'
100 | ,alias: 'ocean-header' //海洋头
101 | },{
102 | header: '#393D49'
103 | ,alias: 'classic-black-header' //经典黑头
104 | },{
105 | main: '#50314F'
106 | ,logo: '#50314F'
107 | ,selected: '#7A4D7B'
108 | ,header: '#50314F'
109 | ,alias: 'purple-red-header' //紫红头
110 | },{
111 | main: '#28333E'
112 | ,logo: '#28333E'
113 | ,selected: '#AA3130'
114 | ,header: '#AA3130'
115 | ,alias: 'fashion-red-header' //时尚红头
116 | },{
117 | main: '#28333E'
118 | ,logo: '#009688'
119 | ,selected: '#009688'
120 | ,header: '#009688'
121 | ,alias: 'green-header' //墨绿头
122 | }]
123 |
124 | //初始的颜色索引,对应上面的配色方案数组索引
125 | //如果本地已经有主题色记录,则以本地记录为优先,除非请求本地数据(localStorage)
126 | ,initColorIndex: 0
127 | }
128 | });
129 | });
130 |
--------------------------------------------------------------------------------
/static/lib/layuiadmin/json/console/prograss.js:
--------------------------------------------------------------------------------
1 | {
2 | "code": 0
3 | ,"msg": ""
4 | ,"count": "100"
5 | ,"data": [{
6 | "prograss": "开会"
7 | ,"time": "一小时"
8 | ,"complete": "已完成"
9 | ,"LAY_CHECKED": true
10 | },{
11 | "prograss": "项目开发"
12 | ,"time": "两小时"
13 | ,"complete": "进行中"
14 | ,"LAY_CHECKED": true
15 | },{
16 | "prograss": "陪吃饭"
17 | ,"time": "一小时"
18 | ,"complete": "未完成"
19 | },{
20 | "prograss": "修改小bug"
21 | ,"time": "半小时"
22 | ,"complete": "未完成"
23 | },{
24 | "prograss": "修改大bug"
25 | ,"time": "两小时"
26 | ,"complete": "未完成"
27 | },{
28 | "prograss": "修改小bug"
29 | ,"time": "半小时"
30 | ,"complete": "未完成"
31 | },{
32 | "prograss": "修改大bug"
33 | ,"time": "两小时"
34 | ,"complete": "未完成"
35 | }]
36 | }
--------------------------------------------------------------------------------
/static/lib/layuiadmin/json/console/top-card.js:
--------------------------------------------------------------------------------
1 | {
2 | "code": 0
3 | ,"msg": ""
4 | ,"count": "100"
5 | ,"data": [{
6 | "id": 111
7 | ,"title": "社区开始接受 “赞助商广告” 投放"
8 | ,"username": "贤心"
9 | ,"channel": "公告"
10 | ,"href": "http://fly.layui.com/jie/15697/"
11 | ,"crt": 61632
12 | },{
13 | "id": 222
14 | ,"title": "layui 一周年"
15 | ,"username": "猫吃"
16 | ,"channel": "讨论"
17 | ,"href": "http://fly.layui.com/jie/16622/"
18 | ,"crt": 61632
19 | },{
20 | "id": 333
21 | ,"title": "四个月的前端"
22 | ,"username": "fd"
23 | ,"channel": "分享"
24 | ,"href": "http://fly.layui.com/jie/16651/"
25 | ,"crt": 61632
26 | },{
27 | "id": 333
28 | ,"title": "如何评价LayUI和他的作者闲心"
29 | ,"username": "纸飞机"
30 | ,"channel": "提问"
31 | ,"href": "http://fly.layui.com/jie/9352/"
32 | ,"crt": 61632
33 | },{
34 | "id": 333
35 | ,"title": "如何评价LayUI和他的作者闲心"
36 | ,"username": "纸飞机"
37 | ,"channel": "提问"
38 | ,"href": "http://fly.layui.com/jie/9352/"
39 | ,"crt": 61632
40 | },{
41 | "id": 333
42 | ,"title": "如何评价LayUI和他的作者闲心"
43 | ,"username": "纸飞机"
44 | ,"channel": "提问"
45 | ,"href": "http://fly.layui.com/jie/9352/"
46 | ,"crt": 61632
47 | },{
48 | "id": 333
49 | ,"title": "如何评价LayUI和他的作者闲心"
50 | ,"username": "纸飞机"
51 | ,"channel": "提问"
52 | ,"href": "http://fly.layui.com/jie/9352/"
53 | ,"crt": 61632
54 | },{
55 | "id": 333
56 | ,"title": "如何评价LayUI和他的作者闲心"
57 | ,"username": "纸飞机"
58 | ,"channel": "提问"
59 | ,"href": "http://fly.layui.com/jie/9352/"
60 | ,"crt": 61632
61 | },{
62 | "id": 333
63 | ,"title": "如何评价LayUI和他的作者闲心"
64 | ,"username": "纸飞机"
65 | ,"channel": "提问"
66 | ,"href": "http://fly.layui.com/jie/9352/"
67 | ,"crt": 61632
68 | },{
69 | "id": 333
70 | ,"title": "如何评价LayUI和他的作者闲心"
71 | ,"username": "纸飞机"
72 | ,"channel": "提问"
73 | ,"href": "http://fly.layui.com/jie/9352/"
74 | ,"crt": 61632
75 | }]
76 | }
--------------------------------------------------------------------------------
/static/lib/layuiadmin/json/console/top-search.js:
--------------------------------------------------------------------------------
1 | {
2 | "code": 0
3 | ,"msg": ""
4 | ,"count": "100"
5 | ,"data": [{
6 | "keywords": "贤心是男是女"
7 | ,"frequency": 8520
8 | ,"userNums": 2216
9 | },{
10 | "keywords": "Java程序员能找到女朋友吗"
11 | ,"frequency": 666
12 | ,"userNums": 333
13 | },{
14 | "keywords": "此表格是静态模拟数据"
15 | ,"frequency": 666
16 | ,"userNums": 333
17 | },{
18 | "keywords": "layui官方教程"
19 | ,"frequency": 666
20 | ,"userNums": 333
21 | },{
22 | "keywords": "layui官方教程"
23 | ,"frequency": 666
24 | ,"userNums": 333
25 | },{
26 | "keywords": "layui官方教程"
27 | ,"frequency": 666
28 | ,"userNums": 333
29 | },{
30 | "keywords": "layui官方教程"
31 | ,"frequency": 666
32 | ,"userNums": 333
33 | },{
34 | "keywords": "layui官方教程"
35 | ,"frequency": 666
36 | ,"userNums": 333
37 | },{
38 | "keywords": "layui官方教程"
39 | ,"frequency": 666
40 | ,"userNums": 333
41 | },{
42 | "keywords": "layui官方教程"
43 | ,"frequency": 666
44 | ,"userNums": 333
45 | }]
46 | }
--------------------------------------------------------------------------------
/static/lib/layuiadmin/json/content/comment.js:
--------------------------------------------------------------------------------
1 | {
2 | "code": 0
3 | ,"msg": ""
4 | ,"count": "100"
5 | ,"data": [{
6 | "id": "001"
7 | ,"reviewers": "赵"
8 | ,"content": "我又爱上编程了"
9 | ,"commtime": 20160312
10 | },{
11 | "id": "002"
12 | ,"reviewers": "钱"
13 | ,"content": "女生出门要小心"
14 | ,"commtime": 20160821
15 | },{
16 | "id": "003"
17 | ,"reviewers": "孙"
18 | ,"content": "框架就用layui"
19 | ,"commtime": 20161212
20 | },{
21 | "id": "004"
22 | ,"reviewers": "李"
23 | ,"content": "心姐么么哒"
24 | ,"commtime": 20170311
25 | },{
26 | "id": "005"
27 | ,"reviewers": "周"
28 | ,"content": "希望明天是个好天气"
29 | ,"commtime": 20170612
30 | },{
31 | "id": "006"
32 | ,"reviewers": "吴"
33 | ,"content": "我又爱上编程了"
34 | ,"commtime": 20171112
35 | },{
36 | "id": "007"
37 | ,"reviewers": "郑"
38 | ,"content": "女生出门要小心"
39 | ,"commtime": 20171230
40 | },{
41 | "id": "008"
42 | ,"reviewers": "王"
43 | ,"content": "框架就用layui"
44 | ,"commtime": 20180112
45 | },{
46 | "id": "009"
47 | ,"reviewers": "冯"
48 | ,"content": "心姐么么哒"
49 | ,"commtime": 20180221
50 | },{
51 | "id": "010"
52 | ,"reviewers": "陈"
53 | ,"content": "希望明天是个好天气"
54 | ,"commtime": 20180312
55 | }]
56 | }
--------------------------------------------------------------------------------
/static/lib/layuiadmin/json/content/list.js:
--------------------------------------------------------------------------------
1 | {
2 | "code": 0
3 | ,"msg": ""
4 | ,"count": "100"
5 | ,"data": [{
6 | "id": "001"
7 | ,"label": "美食"
8 | ,"title": "舌尖上的中国第一季"
9 | ,"author": "作者-1"
10 | ,"content": "通过中华美食的多个侧面,来展现食物给中国人生活带来的仪式、伦理等方面的文化;见识中国特色食材以及与食物相关、构成中国美食特有气质的一系列元素;了解中华饮食文化的精致和源远流长"
11 | ,"uploadtime": 20121204
12 | ,"status": true
13 | },{
14 | "id": "002"
15 | ,"label": "美食"
16 | ,"title": "舌尖上的中国第二季"
17 | ,"author": "作者-2"
18 | ,"content": "以食物为窗口,读懂中国——通过美食,使人们可以有滋有味地认知这个古老的东方国度。“一方水土一方人”,本片将通过展示人们日常生活中与美食相关的多重侧面,描绘与感知中国人的文化传统、家族观念、生活态度与故土难离。人们收获、保存、烹饪、生产美食,并在其过程中留存和传承食物所承载的味觉记忆、饮食习俗、文化样态与家常情感。"
19 | ,"uploadtime": 20141204
20 | ,"status": false
21 | },{
22 | "id": "003"
23 | ,"label": "美食"
24 | ,"title": "舌尖上的中国第三季"
25 | ,"author": "作者-3"
26 | ,"content": "以食物为窗口,读懂中国——通过美食,使人们可以有滋有味地认知这个古老的东方国度。“一方水土一方人”,本片将通过展示人们日常生活中与美食相关的多重侧面,描绘与感知中国人的文化传统、家族观念、生活态度与故土难离。人们收获、保存、烹饪、生产美食,并在其过程中留存和传承食物所承载的味觉记忆、饮食习俗、文化样态与家常情感将世界美食和中国美食进行比照。春耕、夏耘、秋收、冬藏,天人合一的东方哲学让中国饮食依时而变,智慧灵动,中医营养摄生学说创造了食材运用的新天地,儒家人伦道德则把心意和家的味道端上我们的餐桌。淘洗历史,糅合时光,一代又一代的中国人在天地间升起烟火,用至精至诚的心意烹制食物,一餐一食之间,中国人展示个性,确认归属,构建文明,理解和把握着世界的奥妙。"
27 | ,"uploadtime": 20161204
28 | ,"status": false
29 | },{
30 | "id": "004"
31 | ,"label": "历史"
32 | ,"title": "诸葛亮骂王朗"
33 | ,"author": "作者-1"
34 | ,"content": "皓首匹夫!苍髯老贼!你即将命归于九泉之下,届时,有何面目见汉朝二十四代先帝?二臣贼子!你枉活七十有六,一生未立寸功,只会摇唇舞舌,助曹为虐!一条断脊之犬,还敢在我军阵前狺狺狂吠!我从未见过如此厚颜无耻之人!!!"
35 | ,"uploadtime": 20180201
36 | ,"status": false
37 | },{
38 | "id": "005"
39 | ,"label": "新闻"
40 | ,"title": "新时代特色中国梦"
41 | ,"author": "作者-1"
42 | ,"content": "今天,我们比历史上任何时期都更接近、更有信心和能力实现中华民族伟大复兴的目标。新时代已经到来,蓝图已经绘就,中国梦离我们越来越近了。"
43 | ,"uploadtime": 20180512
44 | ,"status": false
45 | },{
46 | "id": "006"
47 | ,"label": "新闻"
48 | ,"title": "新时代特色中国梦"
49 | ,"author": "作者-2"
50 | ,"content": "梦想不会主动走向我们,只有我们去主动实现梦想。行百里者半九十。虽然中国梦离我们越来越近了,但是要实现中国梦,还要靠我们以永不懈怠的精神状态、功在不舍的坚强意志,不忘初心,继续前进。"
51 | ,"uploadtime": 20180514
52 | ,"status": false
53 | },{
54 | "id": "007"
55 | ,"label": "体育"
56 | ,"title": "皇马大战利物浦"
57 | ,"author": "作者-3"
58 | ,"content": "对欧足联而言,更想要产生个新冠军。连续三年都是同一个冠军队,这会毁掉欧冠……”格里姆表态,“皇马有梦幻般的阵容,但从促进竞争的角度而言,另一支球队获胜会更好。"
59 | ,"uploadtime": 20180515
60 | ,"status": false
61 | }]
62 | }
--------------------------------------------------------------------------------
/static/lib/layuiadmin/json/content/tags.js:
--------------------------------------------------------------------------------
1 | {
2 | "code": 0
3 | ,"msg": ""
4 | ,"count": "100"
5 | ,"data": [{
6 | "id": "001"
7 | ,"tags": "美食"
8 | },{
9 | "id": "002"
10 | ,"tags": "新闻"
11 | },{
12 | "id": "003"
13 | ,"tags": "八卦"
14 | },{
15 | "id": "004"
16 | ,"tags": "体育"
17 | },{
18 | "id": "005"
19 | ,"tags": "音乐"
20 | }]
21 | }
--------------------------------------------------------------------------------
/static/lib/layuiadmin/json/forum/list.js:
--------------------------------------------------------------------------------
1 | {
2 | "code": 0
3 | ,"msg": ""
4 | ,"count": "100"
5 | ,"data": [{
6 | "id": "1001"
7 | ,"poster": "赵"
8 | ,"avatar": "https://wx4.sinaimg.cn/mw1024/5db11ff4gy1fmx4keaw9pj20dw08caa4.jpg"
9 | ,"content": "为什么花儿这么么红"
10 | ,"posttime": 20160805
11 | ,"top": false
12 | },{
13 | "id": "1002"
14 | ,"poster": "钱"
15 | ,"avatar": "https://wx4.sinaimg.cn/mw1024/5db11ff4gy1fmx4keaw9pj20dw08caa4.jpg"
16 | ,"content": "喜欢胡歌,赞赞赞"
17 | ,"posttime": 20161205
18 | ,"top": true
19 | },{
20 | "id": "1003"
21 | ,"poster": "孙"
22 | ,"avatar": "https://wx4.sinaimg.cn/mw1024/5db11ff4gy1fmx4keaw9pj20dw08caa4.jpg"
23 | ,"content": "明天就要考试了,好紧张,求保佑"
24 | ,"posttime": 20170405
25 | ,"top": false
26 | },{
27 | "id": "1004"
28 | ,"poster": "李"
29 | ,"avatar": "https://wx4.sinaimg.cn/mw1024/5db11ff4gy1fmx4keaw9pj20dw08caa4.jpg"
30 | ,"content": "希望明天是个好天气"
31 | ,"posttime": 20171005
32 | ,"top": false
33 | },{
34 | "id": "1005"
35 | ,"poster": "周"
36 | ,"avatar": "https://wx4.sinaimg.cn/mw1024/5db11ff4gy1fmx4keaw9pj20dw08caa4.jpg"
37 | ,"content": "女追男隔层纱,是不是真的"
38 | ,"posttime": 20180205
39 | ,"top": false
40 | },{
41 | "id": "1006"
42 | ,"poster": "吴"
43 | ,"avatar": "https://wx4.sinaimg.cn/mw1024/5db11ff4gy1fmx4keaw9pj20dw08caa4.jpg"
44 | ,"content": "竟然有人跳楼,年轻人想不开啊!"
45 | ,"posttime": 20180512
46 | ,"top": false
47 | },{
48 | "id": "1007"
49 | ,"poster": "郑"
50 | ,"avatar": "https://wx4.sinaimg.cn/mw1024/5db11ff4gy1fmx4keaw9pj20dw08caa4.jpg"
51 | ,"content": "大家一定不能学那个年轻人,珍爱生命啊"
52 | ,"posttime": 20180512
53 | ,"top": false
54 | },{
55 | "id": "1008"
56 | ,"poster": "王"
57 | ,"avatar": "https://wx4.sinaimg.cn/mw1024/5db11ff4gy1fmx4keaw9pj20dw08caa4.jpg"
58 | ,"content": "想知道南昌哪里有好吃的西安肉夹馍"
59 | ,"posttime": 20180514
60 | ,"top": false
61 | }]
62 | }
--------------------------------------------------------------------------------
/static/lib/layuiadmin/json/forum/replys.js:
--------------------------------------------------------------------------------
1 | {
2 | "code": 0
3 | ,"msg": ""
4 | ,"count": "100"
5 | ,"data": [{
6 | "id": "001"
7 | ,"replyer": "吴"
8 | ,"cardid": "1002"
9 | ,"avatar": "https://wx2.sinaimg.cn/mw690/5db11ff4gy1fmx4kec5bvj20eb0h3mxh.jpg"
10 | ,"content": "有眼光,我也喜欢胡歌!"
11 | ,"replytime": 20161205
12 | },{
13 | "id": "002"
14 | ,"replyer": "郑"
15 | ,"cardid": "1002"
16 | ,"avatar": "https://wx2.sinaimg.cn/mw690/5db11ff4gy1fmx4kec5bvj20eb0h3mxh.jpg"
17 | ,"content": "同上同上。"
18 | ,"replytime": 20161205
19 | },{
20 | "id": "003"
21 | ,"replyer": "王"
22 | ,"cardid": "1003"
23 | ,"avatar": "https://wx2.sinaimg.cn/mw690/5db11ff4gy1fmx4kec5bvj20eb0h3mxh.jpg"
24 | ,"content": "能过一定过,不能过紧张也没用"
25 | ,"replytime": 20170405
26 | },{
27 | "id": "004"
28 | ,"replyer": "冯"
29 | ,"cardid": "1001"
30 | ,"avatar": "https://wx2.sinaimg.cn/mw690/5db11ff4gy1fmx4kec5bvj20eb0h3mxh.jpg"
31 | ,"content": "可能因为你流鼻血了。"
32 | ,"replytime": 20170405
33 | },{
34 | "id": "005"
35 | ,"replyer": "陈"
36 | ,"cardid": "1003"
37 | ,"avatar": "https://wx2.sinaimg.cn/mw690/5db11ff4gy1fmx4kec5bvj20eb0h3mxh.jpg"
38 | ,"content": "加油加油,看好你"
39 | ,"replytime": 20170405
40 | },{
41 | "id": "006"
42 | ,"replyer": "褚"
43 | ,"cardid": "1005"
44 | ,"avatar": "https://wx2.sinaimg.cn/mw690/5db11ff4gy1fmx4kec5bvj20eb0h3mxh.jpg"
45 | ,"content": "纯属放屁"
46 | ,"replytime": 20180207
47 | },{
48 | "id": "007"
49 | ,"replyer": "卫"
50 | ,"cardid": "1005"
51 | ,"avatar": "https://wx2.sinaimg.cn/mw690/5db11ff4gy1fmx4kec5bvj20eb0h3mxh.jpg"
52 | ,"content": "可以试试"
53 | ,"replytime": 20180207
54 | },{
55 | "id": "006"
56 | ,"replyer": "蒋"
57 | ,"cardid": "1006"
58 | ,"avatar": "https://wx2.sinaimg.cn/mw690/5db11ff4gy1fmx4kec5bvj20eb0h3mxh.jpg"
59 | ,"content": "是啊是啊,太恐怖了。"
60 | ,"replytime": 20180512
61 | },{
62 | "id": "007"
63 | ,"replyer": "沈"
64 | ,"cardid": "1008"
65 | ,"avatar": "https://wx2.sinaimg.cn/mw690/5db11ff4gy1fmx4kec5bvj20eb0h3mxh.jpg"
66 | ,"content": "魏家凉皮的凉皮就很不错奥。"
67 | ,"replytime": 20180515
68 | }]
69 | }
--------------------------------------------------------------------------------
/static/lib/layuiadmin/json/layer/photos.js:
--------------------------------------------------------------------------------
1 | {
2 | "code": 0,
3 | "msg": "",
4 | "title": "JSON请求的相册",
5 | "id": 8,
6 | "start": 0,
7 | "data": [
8 | {
9 | "alt": "layer",
10 | "pid": 109,
11 | "src": "https://wx4.sinaimg.cn/mw1024/5db11ff4gy1fmx4keaw9pj20dw08caa4.jpg",
12 | "thumb": ""
13 | },
14 | {
15 | "alt": "说好的,一起Fly",
16 | "pid": 110,
17 | "src": "https://wx4.sinaimg.cn/mw1024/5db11ff4gy1fmx4kebemcj20ga09saa1.jpg",
18 | "thumb": ""
19 | },
20 | {
21 | "alt": "佟丽娅女神",
22 | "pid": 111,
23 | "src": "https://wx2.sinaimg.cn/mw690/5db11ff4gy1fmx4kec5bvj20eb0h3mxh.jpg",
24 | "thumb": ""
25 | },
26 | {
27 | "alt": "凤姐是个好人",
28 | "pid": 112,
29 | "src": "https://wx3.sinaimg.cn/mw690/5db11ff4gy1fmx4kec9vuj20b20dwmyk.jpg",
30 | "thumb": ""
31 | },
32 | {
33 | "alt": "星空如此深邃",
34 | "pid": 113,
35 | "src": "https://wx3.sinaimg.cn/mw690/5db11ff4gy1fmx4keca8ag208g06iglw.gif",
36 | "thumb": ""
37 | }
38 | ]
39 | }
--------------------------------------------------------------------------------
/static/lib/layuiadmin/json/layim/getList.js:
--------------------------------------------------------------------------------
1 | {
2 | "code": 0
3 | ,"msg": ""
4 | ,"data": {
5 | "mine": {
6 | "username": "纸飞机"
7 | ,"id": "100000"
8 | ,"status": "online"
9 | ,"sign": "在深邃的编码世界,做一枚轻盈的纸飞机"
10 | ,"avatar": "//res.layui.com/images/fly/avatar/00.jpg"
11 | }
12 | ,"friend": [{
13 | "groupname": "知名人物"
14 | ,"id": 0
15 | ,"list": [{
16 | "username": "贤心"
17 | ,"id": "100001"
18 | ,"avatar": "//tva1.sinaimg.cn/crop.0.0.118.118.180/5db11ff4gw1e77d3nqrv8j203b03cweg.jpg"
19 | ,"sign": "这些都是测试数据,实际使用请严格按照该格式返回"
20 | ,"status": "online"
21 | },{
22 | "username": "刘涛tamia"
23 | ,"id": "100001222"
24 | ,"sign": "如约而至,不负姊妹欢乐颂"
25 | ,"avatar": "//tva4.sinaimg.cn/crop.0.1.1125.1125.180/475bb144jw8f9nwebnuhkj20v90vbwh9.jpg"
26 | },{
27 | "username": "谢楠"
28 | ,"id": "10034001"
29 | ,"avatar": "//tva2.sinaimg.cn/crop.1.0.747.747.180/633f068fjw8f9h040n951j20ku0kr74t.jpg"
30 | ,"sign": ""
31 | },{
32 | "username": "马小云"
33 | ,"id": "168168"
34 | ,"avatar": "//tva1.sinaimg.cn/crop.0.0.180.180.180/7fde8b93jw1e8qgp5bmzyj2050050aa8.jpg"
35 | ,"sign": "让天下没有难写的代码"
36 | },{
37 | "username": "徐小峥"
38 | ,"id": "666666"
39 | ,"avatar": "//tva1.sinaimg.cn/crop.0.0.512.512.180/6a4acad5jw8eqi6yaholjj20e80e8t9f.jpg"
40 | ,"sign": "代码在囧途,也要写到底"
41 | }]
42 | },{
43 | "groupname": "网红声优"
44 | ,"id": 1
45 | ,"list": [{
46 | "username": "罗玉凤"
47 | ,"id": "121286"
48 | ,"avatar": "//tva4.sinaimg.cn/crop.0.0.640.640.180/4a02849cjw8fc8vn18vktj20hs0hs75v.jpg"
49 | ,"sign": "在自己实力不济的时候,不要去相信什么媒体和记者。他们不是善良的人,有时候候他们的采访对当事人而言就是陷阱"
50 | },{
51 | "username": "Z_子晴"
52 | ,"id": "108101"
53 | ,"avatar": "//tva1.sinaimg.cn/crop.0.23.1242.1242.180/8693225ajw8fbimjimpjwj20yi0zs77l.jpg"
54 | ,"sign": "微电商达人"
55 | },{
56 | "username": "大鱼_MsYuyu"
57 | ,"id": "12123454"
58 | ,"avatar": "//tva2.sinaimg.cn/crop.0.0.512.512.180/005LMAegjw8f2bp9qg4mrj30e80e8dg5.jpg"
59 | ,"sign": "我瘋了!這也太準了吧 超級笑點低"
60 | },{
61 | "username": "醋醋cucu"
62 | ,"id": "102101"
63 | ,"avatar": "//tva2.sinaimg.cn/crop.0.0.640.640.180/648fbe5ejw8ethmg0u9egj20hs0ht0tn.jpg"
64 | ,"sign": ""
65 | },{
66 | "username": "柏雪近在它香"
67 | ,"id": "3435343"
68 | ,"avatar": "//tva2.sinaimg.cn/crop.0.8.751.751.180/961a9be5jw8fczq7q98i7j20kv0lcwfn.jpg"
69 | ,"sign": ""
70 | }]
71 | },{
72 | "groupname": "女神艺人"
73 | ,"id": 2
74 | ,"list": [{
75 | "username": "王祖贤"
76 | ,"id": "76543"
77 | ,"avatar": "//wx2.sinaimg.cn/mw690/5db11ff4gy1flxmew7edlj203d03wt8n.jpg"
78 | ,"sign": "我爱贤心"
79 | },{
80 | "username": "佟丽娅"
81 | ,"id": "4803920"
82 | ,"avatar": "//tva3.sinaimg.cn/crop.0.0.750.750.180/5033b6dbjw8etqysyifpkj20ku0kuwfw.jpg"
83 | ,"sign": "我也爱贤心吖吖啊"
84 | }]
85 | }]
86 | ,"group": [{
87 | "groupname": "前端群"
88 | ,"id": "101"
89 | ,"avatar": "//tva1.sinaimg.cn/crop.0.0.200.200.50/006q8Q6bjw8f20zsdem2mj305k05kdfw.jpg"
90 | },{
91 | "groupname": "Fly社区官方群"
92 | ,"id": "102"
93 | ,"avatar": "//tva2.sinaimg.cn/crop.0.0.199.199.180/005Zseqhjw1eplix1brxxj305k05kjrf.jpg"
94 | }]
95 | }
96 | }
--------------------------------------------------------------------------------
/static/lib/layuiadmin/json/layim/getMembers.js:
--------------------------------------------------------------------------------
1 | {
2 | "code": 0
3 | ,"msg": ""
4 | ,"data": {
5 | "list": [{
6 | "username": "贤心"
7 | ,"id": "100001"
8 | ,"avatar": "//tva1.sinaimg.cn/crop.0.0.118.118.180/5db11ff4gw1e77d3nqrv8j203b03cweg.jpg"
9 | ,"sign": "这些都是测试数据,实际使用请严格按照该格式返回"
10 | },{
11 | "username": "Z_子晴"
12 | ,"id": "108101"
13 | ,"avatar": "//tva1.sinaimg.cn/crop.0.23.1242.1242.180/8693225ajw8fbimjimpjwj20yi0zs77l.jpg"
14 | ,"sign": "微电商达人"
15 | },{
16 | "username": "Lemon_CC"
17 | ,"id": "102101"
18 | ,"avatar": "//tva4.sinaimg.cn/crop.0.0.180.180.180/6d424ea5jw1e8qgp5bmzyj2050050aa8.jpg"
19 | ,"sign": ""
20 | },{
21 | "username": "马小云"
22 | ,"id": "168168"
23 | ,"avatar": "//tva1.sinaimg.cn/crop.0.0.180.180.180/7fde8b93jw1e8qgp5bmzyj2050050aa8.jpg"
24 | ,"sign": "让天下没有难写的代码"
25 | },{
26 | "username": "徐小峥"
27 | ,"id": "666666"
28 | ,"avatar": "//tva1.sinaimg.cn/crop.0.0.512.512.180/6a4acad5jw8eqi6yaholjj20e80e8t9f.jpg"
29 | ,"sign": "代码在囧途,也要写到底"
30 | },{
31 | "username": "罗玉凤"
32 | ,"id": "121286"
33 | ,"avatar": "//tva4.sinaimg.cn/crop.0.0.640.640.180/4a02849cjw8fc8vn18vktj20hs0hs75v.jpg"
34 | ,"sign": "在自己实力不济的时候,不要去相信什么媒体和记者。他们不是善良的人,有时候候他们的采访对当事人而言就是陷阱"
35 | },{
36 | "username": "刘涛tamia"
37 | ,"id": "100001222"
38 | ,"avatar": "//tva4.sinaimg.cn/crop.0.1.1125.1125.180/475bb144jw8f9nwebnuhkj20v90vbwh9.jpg"
39 | ,"sign": "如约而至,不负姊妹欢乐颂"
40 | },{
41 | "username": "大鱼_MsYuyu"
42 | ,"id": "12123454"
43 | ,"avatar": "//tva2.sinaimg.cn/crop.0.0.512.512.180/005LMAegjw8f2bp9qg4mrj30e80e8dg5.jpg"
44 | ,"sign": "我瘋了!這也太準了吧 超級笑點低"
45 | },{
46 | "username": "谢楠"
47 | ,"id": "10034001"
48 | ,"avatar": "//tva2.sinaimg.cn/crop.1.0.747.747.180/633f068fjw8f9h040n951j20ku0kr74t.jpg"
49 | ,"sign": ""
50 | },{
51 | "username": "柏雪近在它香"
52 | ,"id": "3435343"
53 | ,"avatar": "//tva2.sinaimg.cn/crop.0.8.751.751.180/961a9be5jw8fczq7q98i7j20kv0lcwfn.jpg"
54 | ,"sign": ""
55 | },{
56 | "username": "林心如"
57 | ,"id": "76543"
58 | ,"avatar": "//tva3.sinaimg.cn/crop.0.0.512.512.180/48f122e6jw8fcmi072lkyj20e80e8t9i.jpg"
59 | ,"sign": "我爱贤心"
60 | },{
61 | "username": "佟丽娅"
62 | ,"id": "4803920"
63 | ,"avatar": "//tva3.sinaimg.cn/crop.0.0.750.750.180/5033b6dbjw8etqysyifpkj20ku0kuwfw.jpg"
64 | ,"sign": "我也爱贤心吖吖啊"
65 | }]
66 | }
67 | }
--------------------------------------------------------------------------------
/static/lib/layuiadmin/json/mall/order.js:
--------------------------------------------------------------------------------
1 | {
2 | "code": 0
3 | ,"msg": ""
4 | ,"count": "100"
5 | ,"data": [{
6 | "invoice": "X123565541"
7 | ,"username": "张小三"
8 | ,"orderDate": "2017-11-10"
9 | ,"amount": 800
10 | ,"status": 1
11 | },{
12 | "invoice": "X123565542"
13 | ,"username": "李小四"
14 | ,"orderDate": "2017-11-10"
15 | ,"amount": 800
16 | ,"status": 0
17 | },{
18 | "invoice": "X123565543"
19 | ,"username": "王老五"
20 | ,"orderDate": "2017-11-10"
21 | ,"amount": 800
22 | ,"status": 1
23 | },{
24 | "invoice": "X123565544"
25 | ,"username": "赵小六"
26 | ,"orderDate": "2017-11-09"
27 | ,"amount": 1600
28 | ,"status": 1
29 | },{
30 | "invoice": "X123565545"
31 | ,"username": "孙小七"
32 | ,"orderDate": "2017-11-09"
33 | ,"amount": 1600
34 | ,"status": -1
35 | },{
36 | "invoice": "X123565546"
37 | ,"username": "周小八"
38 | ,"orderDate": "2017-11-08"
39 | ,"amount": 2600
40 | ,"status": 1
41 | }]
42 | }
--------------------------------------------------------------------------------
/static/lib/layuiadmin/json/menu.js:
--------------------------------------------------------------------------------
1 |
2 | {"code":0,"msg":"","data":[{"title":"主页","icon":"layui-icon-home","list":[{"title":"控制台","jump":"/"},{"name":"homepage1","title":"主页一","jump":"home/homepage1"},{"name":"homepage2","title":"主页二","jump":"home/homepage2"}]},{"name":"component","title":"组件","icon":"layui-icon-component","list":[{"name":"grid","title":"栅格","list":[{"name":"list","title":"等比例列表排列"},{"name":"mobile","title":"按移动端排列"},{"name":"mobile-pc","title":"移动桌面端组合"},{"name":"all","title":"全端复杂组合"},{"name":"stack","title":"低于桌面堆叠排列"},{"name":"speed-dial","title":"九宫格"}]},{"name":"button","title":"按钮"},{"name":"form","title":"表单","list":[{"name":"element","title":"表单元素"},{"name":"group","title":"表单组合"}]},{"name":"nav","title":"导航"},{"name":"tabs","title":"选项卡"},{"name":"progress","title":"进度条"},{"name":"panel","title":"面板"},{"name":"badge","title":"徽章"},{"name":"timeline","title":"时间线"},{"name":"anim","title":"动画"},{"name":"auxiliar","title":"辅助"},{"name":"layer","title":"通用弹层","list":[{"name":"list","title":"功能演示"},{"name":"special-demo","title":"特殊示例"},{"name":"theme","title":"风格定制"}]},{"name":"laydate","title":"日期时间","list":[{"name":"demo1","title":"功能演示一"},{"name":"demo2","title":"功能演示二"},{"name":"theme","title":"设定主题"},{"name":"special-demo","title":"特殊示例"}]},{"name":"table","title":"表格","list":[{"name":"simple","title":"简单数据表格"},{"name":"auto","title":"列宽自动分配"},{"name":"data","title":"赋值已知数据"},{"name":"tostatic","title":"转化静态表格"},{"name":"page","title":"开启分页"},{"name":"resetPage","title":"自定义分页"},{"name":"toolbar","title":"开启头部工具栏"},{"name":"totalRow","title":"开启合计行"},{"name":"height","title":"高度最大适应"},{"name":"checkbox","title":"开启复选框"},{"name":"radio","title":"开启单选框"},{"name":"cellEdit","title":"开启单元格编辑"},{"name":"form","title":"加入表单元素"},{"name":"style","title":"设置单元格样式"},{"name":"fixed","title":"固定列"},{"name":"operate","title":"数据操作"},{"name":"parseData","title":"解析任意数据格式"},{"name":"onrow","title":"监听行事件"},{"name":"reload","title":"数据表格的重载"},{"name":"initSort","title":"设置初始排序"},{"name":"cellEvent","title":"监听单元格事件"},{"name":"thead","title":"复杂表头"}]},{"name":"laypage","title":"分页","list":[{"name":"demo1","title":"功能演示一"},{"name":"demo2","title":"功能演示二"}]},{"name":"upload","title":"上传","list":[{"name":"demo1","title":"功能演示一"},{"name":"demo2","title":"功能演示二"}]},{"name":"colorpicker","title":"颜色选择器"},{"name":"slider","title":"滑块组件"},{"name":"rate","title":"评分"},{"name":"carousel","title":"轮播"},{"name":"flow","title":"流加载"},{"name":"util","title":"工具"},{"name":"code","title":"代码修饰"},{"name":"layim","title":"即时聊天","jump":"senior/im/"}]},{"name":"template","title":"页面","icon":"layui-icon-template","list":[{"name":"personalpage","title":"个人主页","jump":"template/personalpage"},{"name":"addresslist","title":"通讯录","jump":"template/addresslist"},{"name":"caller","title":"客户列表","jump":"template/caller"},{"name":"goodslist","title":"商品列表","jump":"template/goodslist"},{"name":"msgboard","title":"留言板","jump":"template/msgboard"},{"name":"search","title":"搜索结果","jump":"template/search"},{"name":"reg","title":"注册","jump":"user/reg"},{"name":"login","title":"登入","jump":"user/login"},{"name":"forget","title":"忘记密码","jump":"user/forget"},{"name":"404","title":"404","jump":"template/tips/404"},{"name":"error","title":"错误提示","jump":"template/tips/error"},{"name":"","title":"内嵌页面","spread":true,"list":[{"name":"","title":"百度一下","jump":"/iframe/link/baidu"},{"name":"","title":"layui官网","jump":"/iframe/link/layui"},{"name":"","title":"layuiAdmin官网","jump":"/iframe/link/layuiAdmin"}]}]},{"name":"app","title":"应用","icon":"layui-icon-app","list":[{"name":"content","title":"内容系统","list":[{"name":"list","title":"文章列表"},{"name":"tags","title":"分类管理"},{"name":"comment","title":"评论管理"}]},{"name":"forum","title":"社区系统","list":[{"name":"list","title":"帖子列表"},{"name":"replys","title":"回帖列表"}]},{"name":"message","title":"消息中心"},{"name":"workorder","title":"工单系统","jump":"app/workorder/list"}]},{"name":"senior","title":"高级","icon":"layui-icon-senior","list":[{"name":"im","title":"通讯系统"},{"name":"echarts","title":"Echarts集成","list":[{"name":"line","title":"折线图"},{"name":"bar","title":"柱状图"},{"name":"map","title":"地图"}]}]},{"name":"user","title":"用户","icon":"layui-icon-user","list":[{"name":"user","title":"网站用户","jump":"user/user/list"},{"name":"administrators-list","title":"后台管理员","jump":"user/administrators/list"},{"name":"administrators-rule","title":"角色管理","jump":"user/administrators/role"}]},{"name":"set","title":"设置","icon":"layui-icon-set","list":[{"name":"system","title":"系统设置","spread":true,"list":[{"name":"website","title":"网站设置"},{"name":"email","title":"邮件服务"}]},{"name":"user","title":"我的设置","spread":true,"list":[{"name":"info","title":"基本资料"},{"name":"password","title":"修改密码"}]}]},{"name":"get","title":"授权","icon":"layui-icon-auz","jump":"system/get"}]}
--------------------------------------------------------------------------------
/static/lib/layuiadmin/json/message/all.js:
--------------------------------------------------------------------------------
1 | {
2 | "code": 0
3 | ,"msg": ""
4 | ,"count": 60
5 | ,"data": [{
6 | "id": 123
7 | ,"title": "你好新朋友,感谢使用 layuiAdmin"
8 | ,"time": 1510363800000
9 | }, {
10 | "id": 111
11 | ,"title": "贤心发来了一段私信"
12 | ,"time": 1510212370000
13 | }, {
14 | "id": 111
15 | ,"title": "贤心发来了一段私信"
16 | ,"time": 1510212370000
17 | }, {
18 | "id": 111
19 | ,"title": "贤心发来了一段私信"
20 | ,"time": 1510212370000
21 | }, {
22 | "id": 111
23 | ,"title": "贤心发来了一段私信"
24 | ,"time": 1510212370000
25 | }, {
26 | "id": 111
27 | ,"title": "贤心发来了一段私信"
28 | ,"time": 1510212370000
29 | }, {
30 | "id": 111
31 | ,"title": "贤心发来了一段私信"
32 | ,"time": 1510212370000
33 | }, {
34 | "id": 111
35 | ,"title": "贤心发来了一段私信"
36 | ,"time": 1510212370000
37 | }, {
38 | "id": 111
39 | ,"title": "贤心发来了一段私信"
40 | ,"time": 1510212370000
41 | }, {
42 | "id": 111
43 | ,"title": "贤心发来了一段私信"
44 | ,"time": 1507447570000
45 | }]
46 | }
--------------------------------------------------------------------------------
/static/lib/layuiadmin/json/message/detail.js:
--------------------------------------------------------------------------------
1 | {
2 | "code": 0
3 | ,"msg": ""
4 | ,"data": {
5 | "id": 111
6 | ,"title": "你好新朋友,感谢使用 layuiAdmin"
7 | ,"content": "一直以来,layui 秉承无偿开源的初心,虔诚致力于服务各层次前后端 Web 开发者,在商业横飞的当今时代,这一信念从未动摇。即便身单力薄,仍然重拾决心,埋头造轮,以尽可能地填补产品本身的缺口。在过去的一段的时间,我一直在寻求持久之道,已维持你眼前所见的一切。而 layuiAdmin 是我们尝试解决的手段之一。我相信真正有爱于 layui 生态的你,定然不会错过这一拥抱吧。
子曰:君子不用防,小人防不住。请务必通过官网正规渠道,获得 layuiAdmin!
—— 贤心(layui.com)
"
8 | ,"time": 1510363800000
9 | }
10 | }
--------------------------------------------------------------------------------
/static/lib/layuiadmin/json/message/direct.js:
--------------------------------------------------------------------------------
1 | {
2 | "code": 0
3 | ,"msg": ""
4 | ,"count": 60
5 | ,"data": [{
6 | "id": 123
7 | ,"title": "贤心发来了一段私信"
8 | ,"time": 1510363800000
9 | }, {
10 | "id": 111
11 | ,"title": "贤心发来了一段私信"
12 | ,"time": 1510212370000
13 | }, {
14 | "id": 111
15 | ,"title": "贤心发来了一段私信"
16 | ,"time": 1510212370000
17 | }, {
18 | "id": 111
19 | ,"title": "贤心发来了一段私信"
20 | ,"time": 1510212370000
21 | }, {
22 | "id": 111
23 | ,"title": "贤心发来了一段私信"
24 | ,"time": 1510212370000
25 | }, {
26 | "id": 111
27 | ,"title": "贤心发来了一段私信"
28 | ,"time": 1510212370000
29 | }, {
30 | "id": 111
31 | ,"title": "贤心发来了一段私信"
32 | ,"time": 1510212370000
33 | }, {
34 | "id": 111
35 | ,"title": "贤心发来了一段私信"
36 | ,"time": 1510212370000
37 | }, {
38 | "id": 111
39 | ,"title": "贤心发来了一段私信"
40 | ,"time": 1510212370000
41 | }, {
42 | "id": 111
43 | ,"title": "贤心发来了一段私信"
44 | ,"time": 1507447570000
45 | }]
46 | }
--------------------------------------------------------------------------------
/static/lib/layuiadmin/json/message/new.js:
--------------------------------------------------------------------------------
1 | {
2 | "code": 0
3 | ,"msg": ""
4 | ,"data": {
5 | "newmsg": 3
6 | }
7 | }
--------------------------------------------------------------------------------
/static/lib/layuiadmin/json/message/notice.js:
--------------------------------------------------------------------------------
1 | {
2 | "code": 0
3 | ,"msg": ""
4 | ,"count": 60
5 | ,"data": [{
6 | "id": 123
7 | ,"title": "你好新朋友,感谢使用 layuiAdmin"
8 | ,"time": 1510363800000
9 | }, {
10 | "id": 111
11 | ,"title": "你好新朋友,感谢使用 layuiAdmin"
12 | ,"time": 1510212370000
13 | }, {
14 | "id": 111
15 | ,"title": "你好新朋友,感谢使用 layuiAdmin"
16 | ,"time": 1510212370000
17 | }, {
18 | "id": 111
19 | ,"title": "你好新朋友,感谢使用 layuiAdmin"
20 | ,"time": 1510212370000
21 | }, {
22 | "id": 111
23 | ,"title": "你好新朋友,感谢使用 layuiAdmin"
24 | ,"time": 1510212370000
25 | }, {
26 | "id": 111
27 | ,"title": "你好新朋友,感谢使用 layuiAdmin"
28 | ,"time": 1510212370000
29 | }, {
30 | "id": 111
31 | ,"title": "你好新朋友,感谢使用 layuiAdmin"
32 | ,"time": 1510212370000
33 | }, {
34 | "id": 111
35 | ,"title": "你好新朋友,感谢使用 layuiAdmin"
36 | ,"time": 1510212370000
37 | }, {
38 | "id": 111
39 | ,"title": "你好新朋友,感谢使用 layuiAdmin"
40 | ,"time": 1510212370000
41 | }, {
42 | "id": 111
43 | ,"title": "你好新朋友,感谢使用 layuiAdmin"
44 | ,"time": 1507447570000
45 | }]
46 | }
--------------------------------------------------------------------------------
/static/lib/layuiadmin/json/table/demo.js:
--------------------------------------------------------------------------------
1 |
2 | {"code":0,"msg":"","count":3000000,"data":[{"id":"10001","username":"杜甫","email":"xianxin@layui.com","sex":"男","city":"浙江杭州","sign":"点击此处,显示更多。当内容超出时,点击单元格会自动显示更多内容。","experience":"116","ip":"192.168.0.8","logins":"108","joinTime":"2016-10-14"},{"id":"10002","username":"李白","email":"xianxin@layui.com","sex":"男","city":"浙江杭州","sign":"君不见,黄河之水天上来,奔流到海不复回。 君不见,高堂明镜悲白发,朝如青丝暮成雪。 人生得意须尽欢,莫使金樽空对月。 天生我材必有用,千金散尽还复来。 烹羊宰牛且为乐,会须一饮三百杯。 岑夫子,丹丘生,将进酒,杯莫停。 与君歌一曲,请君为我倾耳听。(倾耳听 一作:侧耳听) 钟鼓馔玉不足贵,但愿长醉不复醒。(不足贵 一作:何足贵;不复醒 一作:不愿醒/不用醒) 古来圣贤皆寂寞,惟有饮者留其名。(古来 一作:自古;惟 通:唯) 陈王昔时宴平乐,斗酒十千恣欢谑。 主人何为言少钱,径须沽取对君酌。 五花马,千金裘,呼儿将出换美酒,与尔同销万古愁。","experience":"12","ip":"192.168.0.8","logins":"106","joinTime":"2016-10-14","LAY_CHECKED":true},{"id":"10003","username":"王勃","email":"xianxin@layui.com","sex":"男","city":"浙江杭州","sign":"人生恰似一场修行","experience":"65","ip":"192.168.0.8","logins":"106","joinTime":"2016-10-14"},{"id":"10004","username":"李清照","email":"xianxin@layui.com","sex":"女","city":"浙江杭州","sign":"人生恰似一场修行","experience":"666","ip":"192.168.0.8","logins":"106","joinTime":"2016-10-14"},{"id":"10005","username":"冰心","email":"xianxin@layui.com","sex":"女","city":"浙江杭州","sign":"人生恰似一场修行","experience":"86","ip":"192.168.0.8","logins":"106","joinTime":"2016-10-14"},{"id":"10006","username":"贤心","email":"xianxin@layui.com","sex":"男","city":"浙江杭州","sign":"人生恰似一场修行","experience":"12","ip":"192.168.0.8","logins":"106","joinTime":"2016-10-14"},{"id":"10007","username":"贤心","email":"xianxin@layui.com","sex":"男","city":"浙江杭州","sign":"人生恰似一场修行","experience":"16","ip":"192.168.0.8","logins":"106","joinTime":"2016-10-14"},{"id":"10008","username":"贤心","email":"xianxin@layui.com","sex":"男","city":"浙江杭州","sign":"人生恰似一场修行","experience":"106","ip":"192.168.0.8","logins":"106","joinTime":"2016-10-14"}]}
--------------------------------------------------------------------------------
/static/lib/layuiadmin/json/table/demo2.js:
--------------------------------------------------------------------------------
1 |
2 | {"code":0,"msg":"","count":66,"data":[{"username":"张小三","amount":18,"province":"浙江","city":"杭州","zone":"西湖区","street":"西溪街道","address":"西溪花园","house":"30栋1单元"},{"username":"李小四","amount":39,"province":"江苏","city":"苏州","zone":"姑苏区","street":"丝绸路","address":"天墅之城","house":"9幢2单元"},{"username":"王小五","amount":8,"province":"江西","city":"南昌","zone":"青山湖区","street":"艾溪湖办事处","address":"中兴和园","house":"1幢3单元"},{"username":"赵小六","amount":16,"province":"福建","city":"泉州","zone":"丰泽区","street":"南洋街道","address":"南洋村","house":"6幢1单元"},{"username":"孙小七","amount":12,"province":"湖北","city":"武汉","zone":"武昌区","street":"武昌大道","address":"两湖花园","house":"16幢2单元"},{"username":"周小八","amount":11,"province":"安徽","city":"黄山","zone":"黄山区","street":"汤口镇","address":"温泉村","house":"21号"}]}
--------------------------------------------------------------------------------
/static/lib/layuiadmin/json/table/demo3.js:
--------------------------------------------------------------------------------
1 |
2 | {"status":200,"message":"","total":8,"rows":{"item":[{"id":"10001","username":"杜甫","email":"xianxin@layui.com","sex":"男","city":"浙江杭州","sign":"点击此处,显示更多。当内容超出时,点击单元格会自动显示更多内容。","experience":"116","ip":"192.168.0.8","logins":"108","joinTime":"2016-10-14"},{"id":"10002","username":"李白","email":"xianxin@layui.com","sex":"男","city":"浙江杭州","sign":"君不见,黄河之水天上来,奔流到海不复回。 君不见,高堂明镜悲白发,朝如青丝暮成雪。 人生得意须尽欢,莫使金樽空对月。 天生我材必有用,千金散尽还复来。 烹羊宰牛且为乐,会须一饮三百杯。 岑夫子,丹丘生,将进酒,杯莫停。 与君歌一曲,请君为我倾耳听。(倾耳听 一作:侧耳听) 钟鼓馔玉不足贵,但愿长醉不复醒。(不足贵 一作:何足贵;不复醒 一作:不愿醒/不用醒) 古来圣贤皆寂寞,惟有饮者留其名。(古来 一作:自古;惟 通:唯) 陈王昔时宴平乐,斗酒十千恣欢谑。 主人何为言少钱,径须沽取对君酌。 五花马,千金裘,呼儿将出换美酒,与尔同销万古愁。","experience":"12","ip":"192.168.0.8","logins":"106","joinTime":"2016-10-14"},{"id":"10003","username":"王勃","email":"xianxin@layui.com","sex":"男","city":"浙江杭州","sign":"人生恰似一场修行","experience":"65","ip":"192.168.0.8","logins":"106","joinTime":"2016-10-14"},{"id":"10004","username":"李清照","email":"xianxin@layui.com","sex":"女","city":"浙江杭州","sign":"人生恰似一场修行","experience":"666","ip":"192.168.0.8","logins":"106","joinTime":"2016-10-14"},{"id":"10005","username":"冰心","email":"xianxin@layui.com","sex":"女","city":"浙江杭州","sign":"人生恰似一场修行","experience":"86","ip":"192.168.0.8","logins":"106","joinTime":"2016-10-14"},{"id":"10006","username":"贤心","email":"xianxin@layui.com","sex":"男","city":"浙江杭州","sign":"人生恰似一场修行","experience":"12","ip":"192.168.0.8","logins":"106","joinTime":"2016-10-14"},{"id":"10007","username":"贤心","email":"xianxin@layui.com","sex":"男","city":"浙江杭州","sign":"人生恰似一场修行","experience":"16","ip":"192.168.0.8","logins":"106","joinTime":"2016-10-14"},{"id":"10008","username":"贤心","email":"xianxin@layui.com","sex":"男","city":"浙江杭州","sign":"人生恰似一场修行","experience":"106","ip":"192.168.0.8","logins":"106","joinTime":"2016-10-14"}]}}
--------------------------------------------------------------------------------
/static/lib/layuiadmin/json/table/user.js:
--------------------------------------------------------------------------------
1 |
2 | {"code":0,"msg":"","count":1000,"data":[{"id":10000,"username":"user-0","sex":"女","city":"城市-0","sign":"签名-0","experience":255,"logins":24,"wealth":82830700,"classify":"作家","score":57},{"id":10001,"username":"user-1","sex":"男","city":"城市-1","sign":"签名-1","experience":884,"logins":58,"wealth":64928690,"classify":"词人","score":27},{"id":10002,"username":"user-2","sex":"女","city":"城市-2","sign":"签名-2","experience":650,"logins":77,"wealth":6298078,"classify":"酱油","score":31},{"id":10003,"username":"user-3","sex":"女","city":"城市-3","sign":"签名-3","experience":362,"logins":157,"wealth":37117017,"classify":"诗人","score":68},{"id":10004,"username":"user-4","sex":"男","city":"城市-4","sign":"签名-4","experience":807,"logins":51,"wealth":76263262,"classify":"作家","score":6},{"id":10005,"username":"user-5","sex":"女","city":"城市-5","sign":"签名-5","experience":173,"logins":68,"wealth":60344147,"classify":"作家","score":87},{"id":10006,"username":"user-6","sex":"女","city":"城市-6","sign":"签名-6","experience":982,"logins":37,"wealth":57768166,"classify":"作家","score":34},{"id":10007,"username":"user-7","sex":"男","city":"城市-7","sign":"签名-7","experience":727,"logins":150,"wealth":82030578,"classify":"作家","score":28},{"id":10008,"username":"user-8","sex":"男","city":"城市-8","sign":"签名-8","experience":951,"logins":133,"wealth":16503371,"classify":"词人","score":14},{"id":10009,"username":"user-9","sex":"女","city":"城市-9","sign":"签名-9","experience":484,"logins":25,"wealth":86801934,"classify":"词人","score":75}]}
--------------------------------------------------------------------------------
/static/lib/layuiadmin/json/table/user30.js:
--------------------------------------------------------------------------------
1 |
2 | {"code":0,"msg":"","count":1000,"data":[{"id":10000,"username":"user-0","sex":"女","city":"城市-0","sign":"签名-0","experience":255,"logins":24,"wealth":82830700,"classify":"作家","score":57},{"id":10001,"username":"user-1","sex":"男","city":"城市-1","sign":"签名-1","experience":884,"logins":58,"wealth":64928690,"classify":"词人","score":27},{"id":10002,"username":"user-2","sex":"女","city":"城市-2","sign":"签名-2","experience":650,"logins":77,"wealth":6298078,"classify":"酱油","score":31},{"id":10003,"username":"user-3","sex":"女","city":"城市-3","sign":"签名-3","experience":362,"logins":157,"wealth":37117017,"classify":"诗人","score":68},{"id":10004,"username":"user-4","sex":"男","city":"城市-4","sign":"签名-4","experience":807,"logins":51,"wealth":76263262,"classify":"作家","score":6},{"id":10005,"username":"user-5","sex":"女","city":"城市-5","sign":"签名-5","experience":173,"logins":68,"wealth":60344147,"classify":"作家","score":87},{"id":10006,"username":"user-6","sex":"女","city":"城市-6","sign":"签名-6","experience":982,"logins":37,"wealth":57768166,"classify":"作家","score":34},{"id":10007,"username":"user-7","sex":"男","city":"城市-7","sign":"签名-7","experience":727,"logins":150,"wealth":82030578,"classify":"作家","score":28},{"id":10008,"username":"user-8","sex":"男","city":"城市-8","sign":"签名-8","experience":951,"logins":133,"wealth":16503371,"classify":"词人","score":14},{"id":10009,"username":"user-9","sex":"女","city":"城市-9","sign":"签名-9","experience":484,"logins":25,"wealth":86801934,"classify":"词人","score":75},{"id":10010,"username":"user-10","sex":"女","city":"城市-10","sign":"签名-10","experience":1016,"logins":182,"wealth":71294671,"classify":"诗人","score":34},{"id":10011,"username":"user-11","sex":"女","city":"城市-11","sign":"签名-11","experience":492,"logins":107,"wealth":8062783,"classify":"诗人","score":6},{"id":10012,"username":"user-12","sex":"女","city":"城市-12","sign":"签名-12","experience":106,"logins":176,"wealth":42622704,"classify":"词人","score":54},{"id":10013,"username":"user-13","sex":"男","city":"城市-13","sign":"签名-13","experience":1047,"logins":94,"wealth":59508583,"classify":"诗人","score":63},{"id":10014,"username":"user-14","sex":"男","city":"城市-14","sign":"签名-14","experience":873,"logins":116,"wealth":72549912,"classify":"词人","score":8},{"id":10015,"username":"user-15","sex":"女","city":"城市-15","sign":"签名-15","experience":1068,"logins":27,"wealth":52737025,"classify":"作家","score":28},{"id":10016,"username":"user-16","sex":"女","city":"城市-16","sign":"签名-16","experience":862,"logins":168,"wealth":37069775,"classify":"酱油","score":86},{"id":10017,"username":"user-17","sex":"女","city":"城市-17","sign":"签名-17","experience":1060,"logins":187,"wealth":66099525,"classify":"作家","score":69},{"id":10018,"username":"user-18","sex":"女","city":"城市-18","sign":"签名-18","experience":866,"logins":88,"wealth":81722326,"classify":"词人","score":74},{"id":10019,"username":"user-19","sex":"女","city":"城市-19","sign":"签名-19","experience":682,"logins":106,"wealth":68647362,"classify":"词人","score":51},{"id":10020,"username":"user-20","sex":"男","city":"城市-20","sign":"签名-20","experience":770,"logins":24,"wealth":92420248,"classify":"诗人","score":87},{"id":10021,"username":"user-21","sex":"男","city":"城市-21","sign":"签名-21","experience":184,"logins":131,"wealth":71566045,"classify":"词人","score":99},{"id":10022,"username":"user-22","sex":"男","city":"城市-22","sign":"签名-22","experience":739,"logins":152,"wealth":60907929,"classify":"作家","score":18},{"id":10023,"username":"user-23","sex":"女","city":"城市-23","sign":"签名-23","experience":127,"logins":82,"wealth":14765943,"classify":"作家","score":30},{"id":10024,"username":"user-24","sex":"女","city":"城市-24","sign":"签名-24","experience":212,"logins":133,"wealth":59011052,"classify":"词人","score":76},{"id":10025,"username":"user-25","sex":"女","city":"城市-25","sign":"签名-25","experience":938,"logins":182,"wealth":91183097,"classify":"作家","score":69},{"id":10026,"username":"user-26","sex":"男","city":"城市-26","sign":"签名-26","experience":978,"logins":7,"wealth":48008413,"classify":"作家","score":65},{"id":10027,"username":"user-27","sex":"女","city":"城市-27","sign":"签名-27","experience":371,"logins":44,"wealth":64419691,"classify":"诗人","score":60},{"id":10028,"username":"user-28","sex":"女","city":"城市-28","sign":"签名-28","experience":977,"logins":21,"wealth":75935022,"classify":"作家","score":37},{"id":10029,"username":"user-29","sex":"男","city":"城市-29","sign":"签名-29","experience":647,"logins":107,"wealth":97450636,"classify":"酱油","score":27}]}
--------------------------------------------------------------------------------
/static/lib/layuiadmin/json/upload/demo.js:
--------------------------------------------------------------------------------
1 | {
2 | "code": 0,
3 | "msg": "",
4 | "data": {
5 | "src": "https://wx2.sinaimg.cn/mw690/5db11ff4gy1fmx4kec5bvj20eb0h3mxh.jpg"
6 | }
7 | }
--------------------------------------------------------------------------------
/static/lib/layuiadmin/json/user/forget.js:
--------------------------------------------------------------------------------
1 | {
2 | "code": 0
3 | ,"msg": "注册成功"
4 | ,"data": {
5 |
6 | }
7 | }
--------------------------------------------------------------------------------
/static/lib/layuiadmin/json/user/login.js:
--------------------------------------------------------------------------------
1 | {
2 | "code": 0
3 | ,"msg": "登入成功"
4 | ,"data": {
5 | "access_token": "c262e61cd13ad99fc650e6908c7e5e65b63d2f32185ecfed6b801ee3fbdd5c0a"
6 | }
7 | }
--------------------------------------------------------------------------------
/static/lib/layuiadmin/json/user/logout.js:
--------------------------------------------------------------------------------
1 | {
2 | "code": 0
3 | ,"msg": "退出成功"
4 | ,"data": null
5 | }
--------------------------------------------------------------------------------
/static/lib/layuiadmin/json/user/reg.js:
--------------------------------------------------------------------------------
1 | {
2 | "code": 0
3 | ,"msg": "注册成功"
4 | ,"data": {
5 |
6 | }
7 | }
--------------------------------------------------------------------------------
/static/lib/layuiadmin/json/user/resetpass.js:
--------------------------------------------------------------------------------
1 | {
2 | "code": 0
3 | ,"msg": "注册成功"
4 | ,"data": {
5 |
6 | }
7 | }
--------------------------------------------------------------------------------
/static/lib/layuiadmin/json/user/session.js:
--------------------------------------------------------------------------------
1 | {
2 | "code": 0
3 | ,"msg": ""
4 | ,"data": {
5 | "username": "贤心"
6 | ,"sex": "男"
7 | ,"role": 1
8 | }
9 | }
--------------------------------------------------------------------------------
/static/lib/layuiadmin/json/user/sms.js:
--------------------------------------------------------------------------------
1 | {
2 | "code": 0
3 | ,"msg": "注册成功"
4 | ,"data": {
5 |
6 | }
7 | }
--------------------------------------------------------------------------------
/static/lib/layuiadmin/json/useradmin/mangadmin.js:
--------------------------------------------------------------------------------
1 | {
2 | "code": 0
3 | ,"msg": ""
4 | ,"count": "100"
5 | ,"data": [{
6 | "id": "1001"
7 | ,"loginname": "admin"
8 | ,"telphone": "11111111111"
9 | ,"email": "111@qq.com"
10 | ,"role": "超级管理员"
11 | ,"jointime": "20150217"
12 | ,"check": true
13 | },{
14 | "id": "1002"
15 | ,"loginname": "common-1"
16 | ,"telphone": "22222222222"
17 | ,"email": "222@qq.com"
18 | ,"role": "管理员"
19 | ,"jointime": "20160217"
20 | ,"check": false
21 | },{
22 | "id": "1003"
23 | ,"loginname": "common-2"
24 | ,"telphone": "33333333333"
25 | ,"email": "333@qq.com"
26 | ,"role": "管理员"
27 | ,"jointime": "20161012"
28 | ,"check": false
29 | },{
30 | "id": "1004"
31 | ,"loginname": "common-3"
32 | ,"telphone": "44444444444"
33 | ,"email": "444@qq.com"
34 | ,"role": "管理员"
35 | ,"jointime": "20170518"
36 | ,"check": true
37 | },{
38 | "id": "1005"
39 | ,"loginname": "common-4"
40 | ,"telphone": "55555555555"
41 | ,"email": "555@qq.com"
42 | ,"role": "管理员"
43 | ,"jointime": "20180101"
44 | ,"check": false
45 | },{
46 | "id": "1006"
47 | ,"loginname": "common-5"
48 | ,"telphone": "66666666666"
49 | ,"email": "666@qq.com"
50 | ,"role": "管理员"
51 | ,"jointime": "20160217"
52 | ,"check": false
53 | },{
54 | "id": "1007"
55 | ,"loginname": "common-6"
56 | ,"telphone": "77777777777"
57 | ,"email": "777@qq.com"
58 | ,"role": "管理员"
59 | ,"jointime": "20161012"
60 | ,"check": false
61 | },{
62 | "id": "1008"
63 | ,"loginname": "common-7"
64 | ,"telphone": "88888888888"
65 | ,"email": "888@qq.com"
66 | ,"role": "管理员"
67 | ,"jointime": "20170518"
68 | ,"check": true
69 | },{
70 | "id": "1009"
71 | ,"loginname": "common-8"
72 | ,"telphone": "99999999999"
73 | ,"email": "999@qq.com"
74 | ,"role": "管理员"
75 | ,"jointime": "20180101"
76 | ,"check": false
77 | }]
78 | }
79 |
--------------------------------------------------------------------------------
/static/lib/layuiadmin/json/useradmin/role.js:
--------------------------------------------------------------------------------
1 | {
2 | "code": 0
3 | ,"msg": ""
4 | ,"count": "100"
5 | ,"data": [{
6 | "id": "1"
7 | ,"rolename": "超级管理员"
8 | ,"limits": "管理所有的管理员"
9 | ,"descr": "拥有至高无上的权利"
10 | ,"check": true
11 | },{
12 | "id": "2"
13 | ,"rolename": "管理员"
14 | ,"limits": "所有列表的管理"
15 | ,"descr": "事情很多,权力很大"
16 | ,"check": true
17 | },{
18 | "id": "3"
19 | ,"rolename": "文章撰写员"
20 | ,"limits": "负责文章的编写"
21 | ,"descr": "文采第一的人才集合"
22 | ,"check": false
23 | },{
24 | "id": "4"
25 | ,"rolename": "纠错员"
26 | ,"limits": "负责文章内容的修改"
27 | ,"descr": "暂无"
28 | ,"check": false
29 | },{
30 | "id": "5"
31 | ,"rolename": "统计人员"
32 | ,"limits": "对数据进行统计"
33 | ,"descr": "暂无"
34 | ,"check": false
35 | },{
36 | "id": "6"
37 | ,"rolename": "评估员"
38 | ,"limits": "对统计数据进行评估"
39 | ,"descr": "及时捕捉市场发展动态"
40 | ,"check": false
41 | },{
42 | "id": "7"
43 | ,"rolename": "采购员"
44 | ,"limits": "负责员工的伙食"
45 | ,"descr": "暂无"
46 | ,"check": false
47 | },{
48 | "id": "8"
49 | ,"rolename": "推销员"
50 | ,"limits": "介绍销售公司产品"
51 | ,"descr": "暂无"
52 | ,"check": false
53 | }]
54 | }
--------------------------------------------------------------------------------
/static/lib/layuiadmin/json/useradmin/webuser.js:
--------------------------------------------------------------------------------
1 | {
2 | "code": 0
3 | ,"msg": ""
4 | ,"count": "100"
5 | ,"data": [{
6 | "id": "001"
7 | ,"username": "用户-1"
8 | ,"avatar": "https://wx4.sinaimg.cn/mw1024/5db11ff4gy1fmx4keaw9pj20dw08caa4.jpg"
9 | ,"phone": 12345678901
10 | ,"email": "11111@qq.com"
11 | ,"sex": "男"
12 | ,"ip": "1111111"
13 | ,"jointime": 20171204
14 | },{
15 | "id": "002"
16 | ,"username": "用户-2"
17 | ,"avatar": "https://wx4.sinaimg.cn/mw1024/5db11ff4gy1fmx4keaw9pj20dw08caa4.jpg"
18 | ,"phone": 12345678901
19 | ,"email": "11111@qq.com"
20 | ,"sex": "男"
21 | ,"ip": "1111111"
22 | ,"jointime": 20171204
23 | },{
24 | "id": "003"
25 | ,"username": "用户-3"
26 | ,"avatar": "https://wx2.sinaimg.cn/mw690/5db11ff4gy1fmx4kec5bvj20eb0h3mxh.jpg"
27 | ,"phone": 12345678901
28 | ,"email": "11111@qq.com"
29 | ,"sex": "女"
30 | ,"ip": "1111111"
31 | ,"jointime": 20171011
32 | ,"LAY_CHECKED": true
33 | },{
34 | "id": "004"
35 | ,"username": "用户-4"
36 | ,"avatar": "https://wx4.sinaimg.cn/mw1024/5db11ff4gy1fmx4keaw9pj20dw08caa4.jpg"
37 | ,"phone": 12345678901
38 | ,"email": "11111@qq.com"
39 | ,"sex": "男"
40 | ,"ip": "1111111"
41 | ,"jointime": 20160505
42 | },{
43 | "id": "005"
44 | ,"username": "用户-5"
45 | ,"avatar": "https://wx2.sinaimg.cn/mw690/5db11ff4gy1fmx4kec5bvj20eb0h3mxh.jpg"
46 | ,"phone": 12345678901
47 | ,"email": "11111@qq.com"
48 | ,"sex": "男"
49 | ,"ip": "1111111"
50 | ,"jointime": 20171204
51 | },{
52 | "id": "006"
53 | ,"username": "用户-6"
54 | ,"avatar": "https://wx2.sinaimg.cn/mw690/5db11ff4gy1fmx4kec5bvj20eb0h3mxh.jpg"
55 | ,"phone": 12345678901
56 | ,"email": "11111@qq.com"
57 | ,"sex": "男"
58 | ,"ip": "1111111"
59 | ,"jointime": 20171204
60 | },{
61 | "id": "007"
62 | ,"username": "用户-7"
63 | ,"avatar": "https://wx3.sinaimg.cn/mw690/5db11ff4gy1fmx4keca8ag208g06iglw.gif"
64 | ,"phone": 12345678901
65 | ,"email": "11111@qq.com"
66 | ,"sex": "男"
67 | ,"ip": "1111111"
68 | ,"jointime": 20180210
69 | },{
70 | "id": "008"
71 | ,"username": "用户-8"
72 | ,"avatar": "https://wx2.sinaimg.cn/mw690/5db11ff4gy1fmx4kec5bvj20eb0h3mxh.jpg"
73 | ,"phone": 12345678901
74 | ,"email": "11111@qq.com"
75 | ,"sex": "女"
76 | ,"ip": "1111111"
77 | ,"jointime": 20171204
78 | },{
79 | "id": "009"
80 | ,"username": "用户-9"
81 | ,"avatar": "https://wx2.sinaimg.cn/mw690/5db11ff4gy1fmx4kec5bvj20eb0h3mxh.jpg"
82 | ,"phone": 12345678901
83 | ,"email": "11111@qq.com"
84 | ,"sex": "女"
85 | ,"ip": "1111111"
86 | ,"jointime": 20171204
87 | },{
88 | "id": "010"
89 | ,"username": "用户-10"
90 | ,"avatar": "https://wx4.sinaimg.cn/mw1024/5db11ff4gy1fmx4keaw9pj20dw08caa4.jpg"
91 | ,"phone": 12345678901
92 | ,"email": "11111@qq.com"
93 | ,"sex": "男"
94 | ,"ip": "1111111"
95 | ,"jointime": 20170719
96 | },{
97 | "id": "011"
98 | ,"username": "用户-11"
99 | ,"avatar": "https://wx2.sinaimg.cn/mw690/5db11ff4gy1fmx4kec5bvj20eb0h3mxh.jpg"
100 | ,"phone": 12345678901
101 | ,"email": "11111@qq.com"
102 | ,"sex": "男"
103 | ,"ip": "1111111"
104 | ,"jointime": 20171204
105 | },{
106 | "id": "012"
107 | ,"username": "用户-12"
108 | ,"avatar": "https://wx2.sinaimg.cn/mw690/5db11ff4gy1fmx4kec5bvj20eb0h3mxh.jpg"
109 | ,"phone": 12345678901
110 | ,"email": "11111@qq.com"
111 | ,"sex": "女"
112 | ,"ip": "1111111"
113 | ,"jointime": 20171204
114 | },{
115 | "id": "013"
116 | ,"username": "用户-13"
117 | ,"avatar": "https://wx2.sinaimg.cn/mw690/5db11ff4gy1fmx4kec5bvj20eb0h3mxh.jpg"
118 | ,"phone": 12345678901
119 | ,"email": "11111@qq.com"
120 | ,"sex": "女"
121 | ,"ip": "1111111"
122 | ,"jointime": 20171204
123 | ,"LAY_CHECKED": true
124 | },{
125 | "id": "014"
126 | ,"username": "用户-14"
127 | ,"avatar": "https://wx3.sinaimg.cn/mw690/5db11ff4gy1fmx4keca8ag208g06iglw.gif"
128 | ,"phone": 12345678901
129 | ,"email": "11111@qq.com"
130 | ,"sex": "男"
131 | ,"ip": "1111111"
132 | ,"jointime": 20171204
133 | },{
134 | "id": "015"
135 | ,"username": "用户-15"
136 | ,"avatar": "https://wx2.sinaimg.cn/mw690/5db11ff4gy1fmx4kec5bvj20eb0h3mxh.jpg"
137 | ,"phone": 12345678901
138 | ,"email": "11111@qq.com"
139 | ,"sex": "男"
140 | ,"ip": "1111111"
141 | ,"jointime": 20171204
142 | }]
143 | }
--------------------------------------------------------------------------------
/static/lib/layuiadmin/json/workorder/demo.js:
--------------------------------------------------------------------------------
1 | {
2 | "code": 0
3 | ,"msg": ""
4 | ,"count": "100"
5 | ,"data": [{
6 | "orderid": 111
7 | ,"title": "移动支付踏入马来西亚,聚合支付紧随其后"
8 | ,"attr": "公告"
9 | ,"progress": "25%"
10 | ,"submit": "贤心"
11 | ,"accept": "员工-1"
12 | ,"state": "处理中"
13 | },{
14 | "orderid": 222
15 | ,"title": "凡科拖拽式免费建站神器,享双重优惠!"
16 | ,"attr": "讨论"
17 | ,"progress": "100%"
18 | ,"submit": "猫吃"
19 | ,"accept": "员工-1"
20 | ,"state": "已处理"
21 | },{
22 | "orderid": 333
23 | ,"title": "看着别人的老板给员工送汽车有感"
24 | ,"attr": "分享"
25 | ,"progress": "0%"
26 | ,"submit": "纸飞机"
27 | ,"accept": ""
28 | ,"state": "未分配"
29 | },{
30 | "orderid": 444
31 | ,"title": "DISCUZ的云平台应该彻底完了"
32 | ,"attr": "提问"
33 | ,"progress": "0%"
34 | ,"submit": "纸飞机"
35 | ,"accept": ""
36 | ,"state": "未分配"
37 | },{
38 | "orderid": 555
39 | ,"title": "现在个人网站还有必要长期坚持下去吗?"
40 | ,"attr": "提问"
41 | ,"progress": "50%"
42 | ,"submit": "纸飞机"
43 | ,"accept": "员工-2"
44 | ,"state": "处理中"
45 | },{
46 | "orderid": 666
47 | ,"title": "向北京公安局投诉了京东商城"
48 | ,"attr": "公告"
49 | ,"progress": "25%"
50 | ,"submit": "纸飞机"
51 | ,"accept": "员工-3"
52 | ,"state": "处理中"
53 | },{
54 | "orderid": 777
55 | ,"title": "游戏 网页美工,一个月多少工资才正常?"
56 | ,"attr": "提问"
57 | ,"progress": "100%"
58 | ,"submit": "纸飞机"
59 | ,"accept": "员工-1"
60 | ,"state": "已处理"
61 | },{
62 | "orderid": 888
63 | ,"title": "几年没来了,蓝色理想帖子这么少了啊"
64 | ,"attr": "提问"
65 | ,"progress": "0%"
66 | ,"submit": "纸飞机"
67 | ,"accept": ""
68 | ,"state": "未分配"
69 | },{
70 | "orderid": 999
71 | ,"title": "我的天,求推荐靠谱的学习网站"
72 | ,"attr": "提问"
73 | ,"progress": "50%"
74 | ,"submit": "纸飞机"
75 | ,"accept": "员工-2"
76 | ,"state": "处理中"
77 | }]
78 | }
--------------------------------------------------------------------------------
/static/lib/layuiadmin/json/说明.txt:
--------------------------------------------------------------------------------
1 |
2 | 注意:这里是模拟的数据。
3 | 实际应用时,请在模板文件(.html)中的 lay-url="" 和其它相关接口的 url 设置成你真实的接口地址
--------------------------------------------------------------------------------
/static/lib/layuiadmin/lib/extend/echartsTheme.js:
--------------------------------------------------------------------------------
1 | /** layuiAdmin.std-v1.4.0 LPPL License By https://www.layui.com/admin/ */
2 | ;layui.define(function(e){e("echartsTheme",{color:["#009688","#1E9FFF","#5FB878","#FFB980","#D87A80","#8d98b3","#e5cf0d","#97b552","#95706d","#dc69aa","#07a2a4","#9a7fd1","#588dd5","#f5994e","#c05050","#59678c","#c9ab00","#7eb00a","#6f5553","#c14089"],title:{textStyle:{fontWeight:"normal",color:"#666"}},dataRange:{itemWidth:15,color:["#009688","#e0ffff"]},toolbox:{color:["#1e90ff","#1e90ff","#1e90ff","#1e90ff"],effectiveColor:"#ff4500"},tooltip:{backgroundColor:"rgba(50,50,50,0.5)",axisPointer:{type:"line",lineStyle:{color:"#009688"},crossStyle:{color:"#008acd"},shadowStyle:{color:"rgba(200,200,200,0.2)"}}},dataZoom:{dataBackgroundColor:"#efefff",fillerColor:"rgba(182,162,222,0.2)",handleColor:"#008acd"},grid:{borderColor:"#eee"},categoryAxis:{axisLine:{lineStyle:{color:"#009688"}},axisTick:{show:!1},splitLine:{lineStyle:{color:["#eee"]}}},valueAxis:{axisLine:{lineStyle:{color:"#009688"}},splitArea:{show:!0,areaStyle:{color:["rgba(250,250,250,0.1)","rgba(200,200,200,0.1)"]}},splitLine:{lineStyle:{color:["#eee"]}}},polar:{axisLine:{lineStyle:{color:"#ddd"}},splitArea:{show:!0,areaStyle:{color:["rgba(250,250,250,0.2)","rgba(200,200,200,0.2)"]}},splitLine:{lineStyle:{color:"#ddd"}}},timeline:{lineStyle:{color:"#009688"},controlStyle:{normal:{color:"#009688"},emphasis:{color:"#009688"}},symbol:"emptyCircle",symbolSize:3},bar:{itemStyle:{normal:{barBorderRadius:2},emphasis:{barBorderRadius:2}}},line:{smooth:!0,symbol:"emptyCircle",symbolSize:3},k:{itemStyle:{normal:{color:"#d87a80",color0:"#2ec7c9",lineStyle:{color:"#d87a80",color0:"#2ec7c9"}}}},scatter:{symbol:"circle",symbolSize:4},radar:{symbol:"emptyCircle",symbolSize:3},map:{itemStyle:{normal:{areaStyle:{color:"#ddd"},label:{textStyle:{color:"#d87a80"}}},emphasis:{areaStyle:{color:"#fe994e"}}}},force:{itemStyle:{normal:{linkStyle:{color:"#1e90ff"}}}},chord:{itemStyle:{normal:{borderWidth:1,borderColor:"rgba(128, 128, 128, 0.5)",chordStyle:{lineStyle:{color:"rgba(128, 128, 128, 0.5)"}}},emphasis:{borderWidth:1,borderColor:"rgba(128, 128, 128, 0.5)",chordStyle:{lineStyle:{color:"rgba(128, 128, 128, 0.5)"}}}}},gauge:{axisLine:{lineStyle:{color:[[.2,"#2ec7c9"],[.8,"#5ab1ef"],[1,"#d87a80"]],width:10}},axisTick:{splitNumber:10,length:15,lineStyle:{color:"auto"}},splitLine:{length:22,lineStyle:{color:"auto"}},pointer:{width:5}},textStyle:{fontFamily:"微软雅黑, Arial, Verdana, sans-serif"}})});
--------------------------------------------------------------------------------
/static/lib/layuiadmin/lib/index.js:
--------------------------------------------------------------------------------
1 | /** layuiAdmin.std-v1.4.0 LPPL License By https://www.layui.com/admin/ */
2 | ;layui.extend({setter:"config",admin:"lib/admin",view:"lib/view"}).define(["setter","admin"],function(a){var e=layui.setter,i=layui.element,n=layui.admin,t=n.tabsPage,d=layui.view,l=function(a,d){var l,u=r("#LAY_app_tabsheader>li"),b=a.replace(/(^http(s*):)|(\?[\s\S]*$)/g,"");u.each(function(e){var i=r(this),n=i.attr("lay-id");n===a&&(l=!0,t.index=e)}),d=d||"新标签页";var y=function(){i.tabChange(o,a),n.tabsBodyChange(t.index,{url:a,text:d})};if(e.pageTabs)l||(setTimeout(function(){r(s).append(['','',"
"].join("")),y()},10),t.index=u.length,i.tabAdd(o,{title:""+d+"",id:a,attr:b}));else{var m=n.tabsBody(n.tabsPage.index).find(".layadmin-iframe");m[0].contentWindow.location.href=a}y()},s="#LAY_app_body",o="layadmin-layout-tabs",r=layui.$;r(window);n.screen()<2&&n.sideFlexible(),layui.config({base:e.base+"modules/"}),layui.each(e.extend,function(a,i){var n={};n[i]="{/}"+e.base+"lib/extend/"+i,layui.extend(n)}),d().autoRender(),layui.use("common"),a("index",{openTabsPage:l})});
--------------------------------------------------------------------------------
/static/lib/layuiadmin/lib/layui/css/modules/code 2.css:
--------------------------------------------------------------------------------
1 | /** layui-v2.0.2 MIT License By http://www.layui.com */
2 | html #layuicss-skincodecss{display:none;position:absolute;width:1989px}.layui-code-h3,.layui-code-view{position:relative;font-size:12px}.layui-code-view{display:block;margin:10px 0;padding:0;border:1px solid #e2e2e2;border-left-width:6px;background-color:#F2F2F2;color:#333;font-family:Courier New}.layui-code-h3{padding:0 10px;height:32px;line-height:32px;border-bottom:1px solid #e2e2e2}.layui-code-h3 a{position:absolute;right:10px;top:0;color:#999}.layui-code-view .layui-code-ol{position:relative;overflow:auto}.layui-code-view .layui-code-ol li{position:relative;margin-left:45px;line-height:20px;padding:0 5px;border-left:1px solid #e2e2e2;list-style-type:decimal-leading-zero;*list-style-type:decimal;background-color:#fff}.layui-code-view pre{margin:0}.layui-code-notepad{border:1px solid #0C0C0C;border-left-color:#3F3F3F;background-color:#0C0C0C;color:#C2BE9E}.layui-code-notepad .layui-code-h3{border-bottom:none}.layui-code-notepad .layui-code-ol li{background-color:#3F3F3F;border-left:none}
--------------------------------------------------------------------------------
/static/lib/layuiadmin/lib/layui/css/modules/code.css:
--------------------------------------------------------------------------------
1 | /** layui-v2.0.2 MIT License By http://www.layui.com */
2 | html #layuicss-skincodecss{display:none;position:absolute;width:1989px}.layui-code-h3,.layui-code-view{position:relative;font-size:12px}.layui-code-view{display:block;margin:10px 0;padding:0;border:1px solid #e2e2e2;border-left-width:6px;background-color:#F2F2F2;color:#333;font-family:Courier New}.layui-code-h3{padding:0 10px;height:32px;line-height:32px;border-bottom:1px solid #e2e2e2}.layui-code-h3 a{position:absolute;right:10px;top:0;color:#999}.layui-code-view .layui-code-ol{position:relative;overflow:auto}.layui-code-view .layui-code-ol li{position:relative;margin-left:45px;line-height:20px;padding:0 5px;border-left:1px solid #e2e2e2;list-style-type:decimal-leading-zero;*list-style-type:decimal;background-color:#fff}.layui-code-view pre{margin:0}.layui-code-notepad{border:1px solid #0C0C0C;border-left-color:#3F3F3F;background-color:#0C0C0C;color:#C2BE9E}.layui-code-notepad .layui-code-h3{border-bottom:none}.layui-code-notepad .layui-code-ol li{background-color:#3F3F3F;border-left:none}
--------------------------------------------------------------------------------
/static/lib/layuiadmin/lib/layui/css/modules/layer/default/icon 2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layuiadmin/lib/layui/css/modules/layer/default/icon 2.png
--------------------------------------------------------------------------------
/static/lib/layuiadmin/lib/layui/css/modules/layer/default/icon-ext 2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layuiadmin/lib/layui/css/modules/layer/default/icon-ext 2.png
--------------------------------------------------------------------------------
/static/lib/layuiadmin/lib/layui/css/modules/layer/default/icon-ext.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layuiadmin/lib/layui/css/modules/layer/default/icon-ext.png
--------------------------------------------------------------------------------
/static/lib/layuiadmin/lib/layui/css/modules/layer/default/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layuiadmin/lib/layui/css/modules/layer/default/icon.png
--------------------------------------------------------------------------------
/static/lib/layuiadmin/lib/layui/css/modules/layer/default/loading-0 2.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layuiadmin/lib/layui/css/modules/layer/default/loading-0 2.gif
--------------------------------------------------------------------------------
/static/lib/layuiadmin/lib/layui/css/modules/layer/default/loading-0.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layuiadmin/lib/layui/css/modules/layer/default/loading-0.gif
--------------------------------------------------------------------------------
/static/lib/layuiadmin/lib/layui/css/modules/layer/default/loading-1 2.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layuiadmin/lib/layui/css/modules/layer/default/loading-1 2.gif
--------------------------------------------------------------------------------
/static/lib/layuiadmin/lib/layui/css/modules/layer/default/loading-1.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layuiadmin/lib/layui/css/modules/layer/default/loading-1.gif
--------------------------------------------------------------------------------
/static/lib/layuiadmin/lib/layui/css/modules/layer/default/loading-2 2.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layuiadmin/lib/layui/css/modules/layer/default/loading-2 2.gif
--------------------------------------------------------------------------------
/static/lib/layuiadmin/lib/layui/css/modules/layer/default/loading-2.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layuiadmin/lib/layui/css/modules/layer/default/loading-2.gif
--------------------------------------------------------------------------------
/static/lib/layuiadmin/lib/layui/font/iconfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layuiadmin/lib/layui/font/iconfont.eot
--------------------------------------------------------------------------------
/static/lib/layuiadmin/lib/layui/font/iconfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layuiadmin/lib/layui/font/iconfont.ttf
--------------------------------------------------------------------------------
/static/lib/layuiadmin/lib/layui/font/iconfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layuiadmin/lib/layui/font/iconfont.woff
--------------------------------------------------------------------------------
/static/lib/layuiadmin/lib/layui/lay/modules/carousel 2.js:
--------------------------------------------------------------------------------
1 | /** layui-v2.0.2 MIT License By http://www.layui.com */
2 | ;layui.define("jquery",function(e){"use strict";var i=layui.$,n=(layui.hint(),layui.device(),{config:{},set:function(e){var n=this;return n.config=i.extend({},n.config,e),n},on:function(e,i){return layui.onevent.call(this,t,e,i)}}),t="carousel",a="layui-this",o=">*[carousel-item]>*",l="layui-carousel-left",r="layui-carousel-right",d="layui-carousel-prev",s="layui-carousel-next",u="layui-carousel-arrow",c="layui-carousel-ind",m=function(e){var t=this;t.config=i.extend({},t.config,n.config,e),t.render()};m.prototype.config={width:"600px",height:"280px",full:!1,arrow:"hover",indicator:"inside",autoplay:!0,interval:3e3,anim:"",trigger:"click",index:0},m.prototype.render=function(){var e=this,n=e.config;n.elem=i(n.elem),n.elem[0]&&(e.elemItem=n.elem.find(o),n.index<0&&(n.index=0),n.index>=e.elemItem.length&&(n.index=e.elemItem.length-1),n.interval<800&&(n.interval=800),n.full?n.elem.css({position:"fixed",width:"100%",height:"100%",zIndex:9999}):n.elem.css({width:n.width,height:n.height}),n.elem.attr("lay-anim",n.anim),e.elemItem.eq(n.index).addClass(a),e.indicator(),e.elemItem.length<=1||(e.arrow(),e.autoplay(),e.events()))},m.prototype.reload=function(e){var n=this;clearInterval(n.timer),n.config=i.extend({},n.config,e),n.render()},m.prototype.prevIndex=function(){var e=this,i=e.config,n=i.index-1;return n<0&&(n=e.elemItem.length-1),n},m.prototype.nextIndex=function(){var e=this,i=e.config,n=i.index+1;return n>=e.elemItem.length&&(n=0),n},m.prototype.addIndex=function(e){var i=this,n=i.config;e=e||1,n.index=n.index+e,n.index>=i.elemItem.length&&(n.index=0)},m.prototype.subIndex=function(e){var i=this,n=i.config;e=e||1,n.index=n.index-e,n.index<0&&(n.index=i.elemItem.length-1)},m.prototype.autoplay=function(){var e=this,i=e.config;i.autoplay&&(e.timer=setInterval(function(){e.slide()},i.interval))},m.prototype.arrow=function(){var e=this,n=e.config,t=i(['",'"].join(""));n.elem.attr("lay-arrow",n.arrow),n.elem.find("."+u)[0]&&n.elem.find("."+u).remove(),n.elem.append(t),t.on("click",function(){var n=i(this),t=n.attr("lay-type");e.slide(t)})},m.prototype.indicator=function(){var e=this,n=e.config,t=e.elemInd=i(['',function(){var i=[];return layui.each(e.elemItem,function(e){i.push("")}),i.join("")}(),"
"].join(""));n.elem.attr("lay-indicator",n.indicator),n.elem.find("."+c)[0]&&n.elem.find("."+c).remove(),n.elem.append(t),"updown"===n.anim&&t.css("margin-top",-(t.height()/2)),t.find("li").on("hover"===n.trigger?"mouseover":n.trigger,function(){var t=i(this),a=t.index();a>n.index?e.slide("add",a-n.index):a*[carousel-item]>*",l="layui-carousel-left",r="layui-carousel-right",d="layui-carousel-prev",s="layui-carousel-next",u="layui-carousel-arrow",c="layui-carousel-ind",m=function(e){var t=this;t.config=i.extend({},t.config,n.config,e),t.render()};m.prototype.config={width:"600px",height:"280px",full:!1,arrow:"hover",indicator:"inside",autoplay:!0,interval:3e3,anim:"",trigger:"click",index:0},m.prototype.render=function(){var e=this,n=e.config;n.elem=i(n.elem),n.elem[0]&&(e.elemItem=n.elem.find(o),n.index<0&&(n.index=0),n.index>=e.elemItem.length&&(n.index=e.elemItem.length-1),n.interval<800&&(n.interval=800),n.full?n.elem.css({position:"fixed",width:"100%",height:"100%",zIndex:9999}):n.elem.css({width:n.width,height:n.height}),n.elem.attr("lay-anim",n.anim),e.elemItem.eq(n.index).addClass(a),e.indicator(),e.elemItem.length<=1||(e.arrow(),e.autoplay(),e.events()))},m.prototype.reload=function(e){var n=this;clearInterval(n.timer),n.config=i.extend({},n.config,e),n.render()},m.prototype.prevIndex=function(){var e=this,i=e.config,n=i.index-1;return n<0&&(n=e.elemItem.length-1),n},m.prototype.nextIndex=function(){var e=this,i=e.config,n=i.index+1;return n>=e.elemItem.length&&(n=0),n},m.prototype.addIndex=function(e){var i=this,n=i.config;e=e||1,n.index=n.index+e,n.index>=i.elemItem.length&&(n.index=0)},m.prototype.subIndex=function(e){var i=this,n=i.config;e=e||1,n.index=n.index-e,n.index<0&&(n.index=i.elemItem.length-1)},m.prototype.autoplay=function(){var e=this,i=e.config;i.autoplay&&(e.timer=setInterval(function(){e.slide()},i.interval))},m.prototype.arrow=function(){var e=this,n=e.config,t=i(['",'"].join(""));n.elem.attr("lay-arrow",n.arrow),n.elem.find("."+u)[0]&&n.elem.find("."+u).remove(),n.elem.append(t),t.on("click",function(){var n=i(this),t=n.attr("lay-type");e.slide(t)})},m.prototype.indicator=function(){var e=this,n=e.config,t=e.elemInd=i(['',function(){var i=[];return layui.each(e.elemItem,function(e){i.push("")}),i.join("")}(),"
"].join(""));n.elem.attr("lay-indicator",n.indicator),n.elem.find("."+c)[0]&&n.elem.find("."+c).remove(),n.elem.append(t),"updown"===n.anim&&t.css("margin-top",-(t.height()/2)),t.find("li").on("hover"===n.trigger?"mouseover":n.trigger,function(){var t=i(this),a=t.index();a>n.index?e.slide("add",a-n.index):a/g,">").replace(/'/g,"'").replace(/"/g,""")),c.html('- '+o.replace(/[\r\t\n]+/g,"
- ")+"
"),c.find(">.layui-code-h3")[0]||c.prepend(''+(c.attr("lay-title")||e.title||"code")+(e.about?'layui.code':"")+"
");var d=c.find(">.layui-code-ol");c.addClass("layui-box layui-code-view"),(c.attr("lay-skin")||e.skin)&&c.addClass("layui-code-"+(c.attr("lay-skin")||e.skin)),(d.find("li").length/100|0)>0&&d.css("margin-left",(d.find("li").length/100|0)+"px"),(c.attr("lay-height")||e.height)&&d.css("max-height",c.attr("lay-height")||e.height)})})}).addcss("modules/code.css","skincodecss");
--------------------------------------------------------------------------------
/static/lib/layuiadmin/lib/layui/lay/modules/code.js:
--------------------------------------------------------------------------------
1 | /** layui-v2.0.2 MIT License By http://www.layui.com */
2 | ;layui.define("jquery",function(e){"use strict";var a=layui.$,l="http://www.layui.com/doc/modules/code.html";e("code",function(e){var t=[];e=e||{},e.elem=a(e.elem||".layui-code"),e.about=!("about"in e)||e.about,e.elem.each(function(){t.push(this)}),layui.each(t.reverse(),function(t,i){var c=a(i),o=c.html();(c.attr("lay-encode")||e.encode)&&(o=o.replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&").replace(//g,">").replace(/'/g,"'").replace(/"/g,""")),c.html('- '+o.replace(/[\r\t\n]+/g,"
- ")+"
"),c.find(">.layui-code-h3")[0]||c.prepend(''+(c.attr("lay-title")||e.title||"code")+(e.about?'layui.code':"")+"
");var d=c.find(">.layui-code-ol");c.addClass("layui-box layui-code-view"),(c.attr("lay-skin")||e.skin)&&c.addClass("layui-code-"+(c.attr("lay-skin")||e.skin)),(d.find("li").length/100|0)>0&&d.css("margin-left",(d.find("li").length/100|0)+"px"),(c.attr("lay-height")||e.height)&&d.css("max-height",c.attr("lay-height")||e.height)})})}).addcss("modules/code.css","skincodecss");
--------------------------------------------------------------------------------
/static/lib/layuiadmin/lib/layui/lay/modules/flow 2.js:
--------------------------------------------------------------------------------
1 | /** layui-v2.0.2 MIT License By http://www.layui.com */
2 | ;layui.define("jquery",function(e){"use strict";var l=layui.$,o=function(e){},t='';o.prototype.load=function(e){var o,i,n,r,a=this,c=0;e=e||{};var f=l(e.elem);if(f[0]){var m=l(e.scrollElem||document),u=e.mb||50,s=!("isAuto"in e)||e.isAuto,v=e.end||"没有更多了",y=e.scrollElem&&e.scrollElem!==document,d="加载更多",h=l('");f.find(".layui-flow-more")[0]||f.append(h);var p=function(e,t){e=l(e),h.before(e),t=0==t||null,t?h.html(v):h.find("a").html(d),i=t,o=null,n&&n()},g=function(){o=!0,h.find("a").html(t),"function"==typeof e.done&&e.done(++c,p)};if(g(),h.find("a").on("click",function(){l(this);i||o||g()}),e.isLazyimg)var n=a.lazyimg({elem:e.elem+" img",scrollElem:e.scrollElem});return s?(m.on("scroll",function(){var e=l(this),t=e.scrollTop();r&&clearTimeout(r),i||(r=setTimeout(function(){var i=y?e.height():l(window).height(),n=y?e.prop("scrollHeight"):document.documentElement.scrollHeight;n-t-i<=u&&(o||g())},100))}),a):a}},o.prototype.lazyimg=function(e){var o,t=this,i=0;e=e||{};var n=l(e.scrollElem||document),r=e.elem||"img",a=e.scrollElem&&e.scrollElem!==document,c=function(e,l){var o=n.scrollTop(),r=o+l,c=a?function(){return e.offset().top-n.offset().top+o}():e.offset().top;if(c>=o&&c<=r&&!e.attr("src")){var m=e.attr("lay-src");layui.img(m,function(){var l=t.lazyimg.elem.eq(i);e.attr("src",m).removeAttr("lay-src"),l[0]&&f(l),i++})}},f=function(e,o){var f=a?(o||n).height():l(window).height(),m=n.scrollTop(),u=m+f;if(t.lazyimg.elem=l(r),e)c(e,f);else for(var s=0;su)break}};if(f(),!o){var m;n.on("scroll",function(){var e=l(this);m&&clearTimeout(m),m=setTimeout(function(){f(null,e)},50)}),o=!0}return f},e("flow",new o)});
--------------------------------------------------------------------------------
/static/lib/layuiadmin/lib/layui/lay/modules/flow.js:
--------------------------------------------------------------------------------
1 | /** layui-v2.0.2 MIT License By http://www.layui.com */
2 | ;layui.define("jquery",function(e){"use strict";var l=layui.$,o=function(e){},t='';o.prototype.load=function(e){var o,i,n,r,a=this,c=0;e=e||{};var f=l(e.elem);if(f[0]){var m=l(e.scrollElem||document),u=e.mb||50,s=!("isAuto"in e)||e.isAuto,v=e.end||"没有更多了",y=e.scrollElem&&e.scrollElem!==document,d="加载更多",h=l('");f.find(".layui-flow-more")[0]||f.append(h);var p=function(e,t){e=l(e),h.before(e),t=0==t||null,t?h.html(v):h.find("a").html(d),i=t,o=null,n&&n()},g=function(){o=!0,h.find("a").html(t),"function"==typeof e.done&&e.done(++c,p)};if(g(),h.find("a").on("click",function(){l(this);i||o||g()}),e.isLazyimg)var n=a.lazyimg({elem:e.elem+" img",scrollElem:e.scrollElem});return s?(m.on("scroll",function(){var e=l(this),t=e.scrollTop();r&&clearTimeout(r),i||(r=setTimeout(function(){var i=y?e.height():l(window).height(),n=y?e.prop("scrollHeight"):document.documentElement.scrollHeight;n-t-i<=u&&(o||g())},100))}),a):a}},o.prototype.lazyimg=function(e){var o,t=this,i=0;e=e||{};var n=l(e.scrollElem||document),r=e.elem||"img",a=e.scrollElem&&e.scrollElem!==document,c=function(e,l){var o=n.scrollTop(),r=o+l,c=a?function(){return e.offset().top-n.offset().top+o}():e.offset().top;if(c>=o&&c<=r&&!e.attr("src")){var m=e.attr("lay-src");layui.img(m,function(){var l=t.lazyimg.elem.eq(i);e.attr("src",m).removeAttr("lay-src"),l[0]&&f(l),i++})}},f=function(e,o){var f=a?(o||n).height():l(window).height(),m=n.scrollTop(),u=m+f;if(t.lazyimg.elem=l(r),e)c(e,f);else for(var s=0;su)break}};if(f(),!o){var m;n.on("scroll",function(){var e=l(this);m&&clearTimeout(m),m=setTimeout(function(){f(null,e)},50)}),o=!0}return f},e("flow",new o)});
--------------------------------------------------------------------------------
/static/lib/layuiadmin/lib/layui/lay/modules/laypage 2.js:
--------------------------------------------------------------------------------
1 | /** layui-v2.0.2 MIT License By http://www.layui.com */
2 | ;layui.define(function(e){"use strict";var a=document,t="getElementById",r="getElementsByTagName",n="laypage",i="layui-disabled",u=function(e){var a=this;a.config=e||{},a.config.index=++s.index,a.render(!0)};u.prototype.type=function(){var e=this.config;if("object"==typeof e.elem)return void 0===e.elem.length?2:3},u.prototype.view=function(){var e=this,a=e.config;a.layout="object"==typeof a.layout?a.layout:["prev","page","next"],a.count=0|a.count,a.curr=0|a.curr||1,a.groups=0|a.groups||5,a.limits="object"==typeof a.limits?a.limits:[10,20,30,40,50],a.limit=0|a.limit||10,a.pages=Math.ceil(a.count/a.limit)||1,a.curr>a.pages&&(a.curr=a.pages),a.groups<0?a.groups=0:a.groups>a.pages&&(a.groups=a.pages),a.prev="prev"in a?a.prev:"上一页",a.next="next"in a?a.next:"下一页";var t=a.pages>a.groups?Math.ceil((a.curr+(a.groups>1?1:0))/(a.groups>0?a.groups:1)):1,r={prev:function(){return a.prev?''+a.prev+"":""}(),page:function(){var e=[];if(a.count<1)return"";t>1&&a.first!==!1&&0!==a.groups&&e.push(''+(a.first||1)+"");var r=Math.floor((a.groups-1)/2),n=t>1?a.curr-r:1,i=t>1?function(){var e=a.curr+(a.groups-r-1);return e>a.pages?a.pages:e}():a.groups;for(i-n2&&e.push('…');n<=i;n++)n===a.curr?e.push('"+n+""):e.push(''+n+"");return a.pages>a.groups&&a.pages>i&&a.last!==!1&&(i+1…'),0!==a.groups&&e.push(''+(a.last||a.pages)+"")),e.join("")}(),next:function(){return a.next?''+a.next+"":""}(),count:'共 '+a.count+" 条",limit:function(){var e=['"}(),skip:function(){return['到第','','页',""].join("")}()};return['',function(){var e=[];return layui.each(a.layout,function(a,t){r[t]&&e.push(r[t])}),e.join("")}(),"
"].join("")},u.prototype.jump=function(e,a){if(e){var t=this,n=t.config,i=e.children,u=e[r]("button")[0],p=e[r]("input")[0],l=e[r]("select")[0],o=function(){var e=0|p.value.replace(/\s|\D/g,"");e&&(n.curr=e,t.render())};if(a)return o();for(var c=0,g=i.length;cn.pages||(n.curr=e,t.render())});l&&s.on(l,"change",function(){var e=this.value;n.curr*e>n.count&&(n.curr=Math.ceil(n.count/e)),n.limit=e,t.render()}),u&&s.on(u,"click",function(){o()})}},u.prototype.skip=function(e){if(e){var a=this,t=e[r]("input")[0];t&&s.on(t,"keyup",function(t){var r=this.value,n=t.keyCode;/^(37|38|39|40)$/.test(n)||(/\D/.test(r)&&(this.value=r.replace(/\D/,"")),13===n&&a.jump(e,!0))})}},u.prototype.render=function(e){var r=this,n=r.config,i=r.type(),u=r.view();2===i?n.elem&&(n.elem.innerHTML=u):3===i?n.elem.html(u):a[t](n.elem)&&(a[t](n.elem).innerHTML=u),n.jump&&n.jump(n,e);var s=a[t]("layui-laypage-"+n.index);r.jump(s),n.hash&&!e&&(location.hash="!"+n.hash+"="+n.curr),r.skip(s)};var s={render:function(e){var a=new u(e);return a.index},index:layui.laypage?layui.laypage.index+1e4:0,on:function(e,a,t){return e.attachEvent?e.attachEvent("on"+a,function(a){t.call(e,a)}):e.addEventListener(a,t,!1),this}};e(n,s)});
--------------------------------------------------------------------------------
/static/lib/layuiadmin/lib/layui/lay/modules/laypage.js:
--------------------------------------------------------------------------------
1 | /** layui-v2.0.2 MIT License By http://www.layui.com */
2 | ;layui.define(function(e){"use strict";var a=document,t="getElementById",r="getElementsByTagName",n="laypage",i="layui-disabled",u=function(e){var a=this;a.config=e||{},a.config.index=++s.index,a.render(!0)};u.prototype.type=function(){var e=this.config;if("object"==typeof e.elem)return void 0===e.elem.length?2:3},u.prototype.view=function(){var e=this,a=e.config;a.layout="object"==typeof a.layout?a.layout:["prev","page","next"],a.count=0|a.count,a.curr=0|a.curr||1,a.groups=0|a.groups||5,a.limits="object"==typeof a.limits?a.limits:[10,20,30,40,50],a.limit=0|a.limit||10,a.pages=Math.ceil(a.count/a.limit)||1,a.curr>a.pages&&(a.curr=a.pages),a.groups<0?a.groups=0:a.groups>a.pages&&(a.groups=a.pages),a.prev="prev"in a?a.prev:"上一页",a.next="next"in a?a.next:"下一页";var t=a.pages>a.groups?Math.ceil((a.curr+(a.groups>1?1:0))/(a.groups>0?a.groups:1)):1,r={prev:function(){return a.prev?''+a.prev+"":""}(),page:function(){var e=[];if(a.count<1)return"";t>1&&a.first!==!1&&0!==a.groups&&e.push(''+(a.first||1)+"");var r=Math.floor((a.groups-1)/2),n=t>1?a.curr-r:1,i=t>1?function(){var e=a.curr+(a.groups-r-1);return e>a.pages?a.pages:e}():a.groups;for(i-n2&&e.push('…');n<=i;n++)n===a.curr?e.push('"+n+""):e.push(''+n+"");return a.pages>a.groups&&a.pages>i&&a.last!==!1&&(i+1…'),0!==a.groups&&e.push(''+(a.last||a.pages)+"")),e.join("")}(),next:function(){return a.next?''+a.next+"":""}(),count:'共 '+a.count+" 条",limit:function(){var e=['"}(),skip:function(){return['到第','','页',""].join("")}()};return['',function(){var e=[];return layui.each(a.layout,function(a,t){r[t]&&e.push(r[t])}),e.join("")}(),"
"].join("")},u.prototype.jump=function(e,a){if(e){var t=this,n=t.config,i=e.children,u=e[r]("button")[0],p=e[r]("input")[0],l=e[r]("select")[0],o=function(){var e=0|p.value.replace(/\s|\D/g,"");e&&(n.curr=e,t.render())};if(a)return o();for(var c=0,g=i.length;cn.pages||(n.curr=e,t.render())});l&&s.on(l,"change",function(){var e=this.value;n.curr*e>n.count&&(n.curr=Math.ceil(n.count/e)),n.limit=e,t.render()}),u&&s.on(u,"click",function(){o()})}},u.prototype.skip=function(e){if(e){var a=this,t=e[r]("input")[0];t&&s.on(t,"keyup",function(t){var r=this.value,n=t.keyCode;/^(37|38|39|40)$/.test(n)||(/\D/.test(r)&&(this.value=r.replace(/\D/,"")),13===n&&a.jump(e,!0))})}},u.prototype.render=function(e){var r=this,n=r.config,i=r.type(),u=r.view();2===i?n.elem&&(n.elem.innerHTML=u):3===i?n.elem.html(u):a[t](n.elem)&&(a[t](n.elem).innerHTML=u),n.jump&&n.jump(n,e);var s=a[t]("layui-laypage-"+n.index);r.jump(s),n.hash&&!e&&(location.hash="!"+n.hash+"="+n.curr),r.skip(s)};var s={render:function(e){var a=new u(e);return a.index},index:layui.laypage?layui.laypage.index+1e4:0,on:function(e,a,t){return e.attachEvent?e.attachEvent("on"+a,function(a){t.call(e,a)}):e.addEventListener(a,t,!1),this}};e(n,s)});
--------------------------------------------------------------------------------
/static/lib/layuiadmin/lib/layui/lay/modules/laytpl 2.js:
--------------------------------------------------------------------------------
1 | /** layui-v2.0.2 MIT License By http://www.layui.com */
2 | ;layui.define(function(e){"use strict";var r={open:"{{",close:"}}"},n={exp:function(e){return new RegExp(e,"g")},query:function(e,n,t){var o=["#([\\s\\S])+?","([^{#}])*?"][e||0];return c((n||"")+r.open+o+r.close+(t||""))},escape:function(e){return String(e||"").replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&").replace(//g,">").replace(/'/g,"'").replace(/"/g,""")},error:function(e,r){var n="Laytpl Error:";return"object"==typeof console&&console.error(n+e+"\n"+(r||"")),n+e}},c=n.exp,t=function(e){this.tpl=e};t.pt=t.prototype,window.errors=0,t.pt.parse=function(e,t){var o=this,p=e,a=c("^"+r.open+"#",""),l=c(r.close+"$","");e=e.replace(/\s+|\r|\t|\n/g," ").replace(c(r.open+"#"),r.open+"# ").replace(c(r.close+"}"),"} "+r.close).replace(/\\/g,"\\\\").replace(/(?="|')/g,"\\").replace(n.query(),function(e){return e=e.replace(a,"").replace(l,""),'";'+e.replace(/\\/g,"")+';view+="'}).replace(n.query(1),function(e){var n='"+(';return e.replace(/\s/g,"")===r.open+r.close?"":(e=e.replace(c(r.open+"|"+r.close),""),/^=/.test(e)&&(e=e.replace(/^=/,""),n='"+_escape_('),n+e.replace(/\\/g,"")+')+"')}),e='"use strict";var view = "'+e+'";return view;';try{return o.cache=e=new Function("d, _escape_",e),e(t,n.escape)}catch(u){return delete o.cache,n.error(u,p)}},t.pt.render=function(e,r){var c,t=this;return e?(c=t.cache?t.cache(e,n.escape):t.parse(t.tpl,e),r?void r(c):c):n.error("no data")};var o=function(e){return"string"!=typeof e?n.error("Template not found"):new t(e)};o.config=function(e){e=e||{};for(var n in e)r[n]=e[n]},o.v="1.2.0",e("laytpl",o)});
--------------------------------------------------------------------------------
/static/lib/layuiadmin/lib/layui/lay/modules/laytpl.js:
--------------------------------------------------------------------------------
1 | /** layui-v2.0.2 MIT License By http://www.layui.com */
2 | ;layui.define(function(e){"use strict";var r={open:"{{",close:"}}"},n={exp:function(e){return new RegExp(e,"g")},query:function(e,n,t){var o=["#([\\s\\S])+?","([^{#}])*?"][e||0];return c((n||"")+r.open+o+r.close+(t||""))},escape:function(e){return String(e||"").replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&").replace(//g,">").replace(/'/g,"'").replace(/"/g,""")},error:function(e,r){var n="Laytpl Error:";return"object"==typeof console&&console.error(n+e+"\n"+(r||"")),n+e}},c=n.exp,t=function(e){this.tpl=e};t.pt=t.prototype,window.errors=0,t.pt.parse=function(e,t){var o=this,p=e,a=c("^"+r.open+"#",""),l=c(r.close+"$","");e=e.replace(/\s+|\r|\t|\n/g," ").replace(c(r.open+"#"),r.open+"# ").replace(c(r.close+"}"),"} "+r.close).replace(/\\/g,"\\\\").replace(/(?="|')/g,"\\").replace(n.query(),function(e){return e=e.replace(a,"").replace(l,""),'";'+e.replace(/\\/g,"")+';view+="'}).replace(n.query(1),function(e){var n='"+(';return e.replace(/\s/g,"")===r.open+r.close?"":(e=e.replace(c(r.open+"|"+r.close),""),/^=/.test(e)&&(e=e.replace(/^=/,""),n='"+_escape_('),n+e.replace(/\\/g,"")+')+"')}),e='"use strict";var view = "'+e+'";return view;';try{return o.cache=e=new Function("d, _escape_",e),e(t,n.escape)}catch(u){return delete o.cache,n.error(u,p)}},t.pt.render=function(e,r){var c,t=this;return e?(c=t.cache?t.cache(e,n.escape):t.parse(t.tpl,e),r?void r(c):c):n.error("no data")};var o=function(e){return"string"!=typeof e?n.error("Template not found"):new t(e)};o.config=function(e){e=e||{};for(var n in e)r[n]=e[n]},o.v="1.2.0",e("laytpl",o)});
--------------------------------------------------------------------------------
/static/lib/layuiadmin/lib/layui/lay/modules/tree 2.js:
--------------------------------------------------------------------------------
1 | /** layui-v2.0.2 MIT License By http://www.layui.com */
2 | ;layui.define("jquery",function(e){"use strict";var o=layui.$,a=layui.hint(),i="layui-tree-enter",r=function(e){this.options=e},t={arrow:["",""],checkbox:["",""],radio:["",""],branch:["",""],leaf:""};r.prototype.init=function(e){var o=this;e.addClass("layui-box layui-tree"),o.options.skin&&e.addClass("layui-tree-skin-"+o.options.skin),o.tree(e),o.on(e)},r.prototype.tree=function(e,a){var i=this,r=i.options,n=a||r.nodes;layui.each(n,function(a,n){var l=n.children&&n.children.length>0,c=o(''),s=o(["",function(){return l?''+(n.spread?t.arrow[1]:t.arrow[0])+"":""}(),function(){return r.check?''+("checkbox"===r.check?t.checkbox[0]:"radio"===r.check?t.radio[0]:"")+"":""}(),function(){return'"+(''+(l?n.spread?t.branch[1]:t.branch[0]:t.leaf)+"")+(""+(n.name||"未命名")+"")}(),""].join(""));l&&(s.append(c),i.tree(c,n.children)),e.append(s),"function"==typeof r.click&&i.click(s,n),i.spread(s,n),r.drag&&i.drag(s,n)})},r.prototype.click=function(e,o){var a=this,i=a.options;e.children("a").on("click",function(e){layui.stope(e),i.click(o)})},r.prototype.spread=function(e,o){var a=this,i=(a.options,e.children(".layui-tree-spread")),r=e.children("ul"),n=e.children("a"),l=function(){e.data("spread")?(e.data("spread",null),r.removeClass("layui-show"),i.html(t.arrow[0]),n.find(".layui-icon").html(t.branch[0])):(e.data("spread",!0),r.addClass("layui-show"),i.html(t.arrow[1]),n.find(".layui-icon").html(t.branch[1]))};r[0]&&(i.on("click",l),n.on("dblclick",l))},r.prototype.on=function(e){var a=this,r=a.options,t="layui-tree-drag";e.find("i").on("selectstart",function(e){return!1}),r.drag&&o(document).on("mousemove",function(e){var i=a.move;if(i.from){var r=(i.to,o(''));e.preventDefault(),o("."+t)[0]||o("body").append(r);var n=o("."+t)[0]?o("."+t):r;n.addClass("layui-show").html(i.from.elem.children("a").html()),n.css({left:e.pageX+10,top:e.pageY+10})}}).on("mouseup",function(){var e=a.move;e.from&&(e.from.elem.children("a").removeClass(i),e.to&&e.to.elem.children("a").removeClass(i),a.move={},o("."+t).remove())})},r.prototype.move={},r.prototype.drag=function(e,a){var r=this,t=(r.options,e.children("a")),n=function(){var t=o(this),n=r.move;n.from&&(n.to={item:a,elem:e},t.addClass(i))};t.on("mousedown",function(){var o=r.move;o.from={item:a,elem:e}}),t.on("mouseenter",n).on("mousemove",n).on("mouseleave",function(){var e=o(this),a=r.move;a.from&&(delete a.to,e.removeClass(i))})},e("tree",function(e){var i=new r(e=e||{}),t=o(e.elem);return t[0]?void i.init(t):a.error("layui.tree 没有找到"+e.elem+"元素")})});
--------------------------------------------------------------------------------
/static/lib/layuiadmin/lib/layui/lay/modules/tree.js:
--------------------------------------------------------------------------------
1 | /** layui-v2.0.2 MIT License By http://www.layui.com */
2 | ;layui.define("jquery",function(e){"use strict";var o=layui.$,a=layui.hint(),i="layui-tree-enter",r=function(e){this.options=e},t={arrow:["",""],checkbox:["",""],radio:["",""],branch:["",""],leaf:""};r.prototype.init=function(e){var o=this;e.addClass("layui-box layui-tree"),o.options.skin&&e.addClass("layui-tree-skin-"+o.options.skin),o.tree(e),o.on(e)},r.prototype.tree=function(e,a){var i=this,r=i.options,n=a||r.nodes;layui.each(n,function(a,n){var l=n.children&&n.children.length>0,c=o(''),s=o(["",function(){return l?''+(n.spread?t.arrow[1]:t.arrow[0])+"":""}(),function(){return r.check?''+("checkbox"===r.check?t.checkbox[0]:"radio"===r.check?t.radio[0]:"")+"":""}(),function(){return'"+(''+(l?n.spread?t.branch[1]:t.branch[0]:t.leaf)+"")+(""+(n.name||"未命名")+"")}(),""].join(""));l&&(s.append(c),i.tree(c,n.children)),e.append(s),"function"==typeof r.click&&i.click(s,n),i.spread(s,n),r.drag&&i.drag(s,n)})},r.prototype.click=function(e,o){var a=this,i=a.options;e.children("a").on("click",function(e){layui.stope(e),i.click(o)})},r.prototype.spread=function(e,o){var a=this,i=(a.options,e.children(".layui-tree-spread")),r=e.children("ul"),n=e.children("a"),l=function(){e.data("spread")?(e.data("spread",null),r.removeClass("layui-show"),i.html(t.arrow[0]),n.find(".layui-icon").html(t.branch[0])):(e.data("spread",!0),r.addClass("layui-show"),i.html(t.arrow[1]),n.find(".layui-icon").html(t.branch[1]))};r[0]&&(i.on("click",l),n.on("dblclick",l))},r.prototype.on=function(e){var a=this,r=a.options,t="layui-tree-drag";e.find("i").on("selectstart",function(e){return!1}),r.drag&&o(document).on("mousemove",function(e){var i=a.move;if(i.from){var r=(i.to,o(''));e.preventDefault(),o("."+t)[0]||o("body").append(r);var n=o("."+t)[0]?o("."+t):r;n.addClass("layui-show").html(i.from.elem.children("a").html()),n.css({left:e.pageX+10,top:e.pageY+10})}}).on("mouseup",function(){var e=a.move;e.from&&(e.from.elem.children("a").removeClass(i),e.to&&e.to.elem.children("a").removeClass(i),a.move={},o("."+t).remove())})},r.prototype.move={},r.prototype.drag=function(e,a){var r=this,t=(r.options,e.children("a")),n=function(){var t=o(this),n=r.move;n.from&&(n.to={item:a,elem:e},t.addClass(i))};t.on("mousedown",function(){var o=r.move;o.from={item:a,elem:e}}),t.on("mouseenter",n).on("mousemove",n).on("mouseleave",function(){var e=o(this),a=r.move;a.from&&(delete a.to,e.removeClass(i))})},e("tree",function(e){var i=new r(e=e||{}),t=o(e.elem);return t[0]?void i.init(t):a.error("layui.tree 没有找到"+e.elem+"元素")})});
--------------------------------------------------------------------------------
/static/lib/layuiadmin/lib/layui/lay/modules/util 2.js:
--------------------------------------------------------------------------------
1 | /** layui-v2.0.2 MIT License By http://www.layui.com */
2 | ;layui.define("jquery",function(e){"use strict";var o=layui.$,t={fixbar:function(e){var t,a,i="layui-fixbar",l="layui-fixbar-top",r=o(document),c=o("body");e=o.extend({showHeight:200},e),e.bar1=e.bar1===!0?"":e.bar1,e.bar2=e.bar2===!0?"":e.bar2,e.bgcolor=e.bgcolor?"background-color:"+e.bgcolor:"";var n=[e.bar1,e.bar2,""],u=o(['',e.bar1?'- '+n[0]+"
":"",e.bar2?'- '+n[1]+"
":"",'- '+n[2]+"
","
"].join("")),s=u.find("."+l),b=function(){var o=r.scrollTop();o>=e.showHeight?t||(s.show(),t=1):t&&(s.hide(),t=0)};o("."+i)[0]||("object"==typeof e.css&&u.css(e.css),c.append(u),b(),u.find("li").on("click",function(){var t=o(this),a=t.attr("lay-type");"top"===a&&o("html,body").animate({scrollTop:0},200),e.click&&e.click.call(this,a)}),r.on("scroll",function(){clearTimeout(a),a=setTimeout(function(){b()},100)}))},countdown:function(e,o,t){var a=this,i="function"==typeof o,l=new Date(e).getTime(),r=new Date(!o||i?(new Date).getTime():o).getTime(),c=l-r,n=[Math.floor(c/864e5),Math.floor(c/36e5)%24,Math.floor(c/6e4)%60,Math.floor(c/1e3)%60];i&&(t=o);var u=setTimeout(function(){a.countdown(e,r+1e3,t)},1e3);return t&&t(c>0?n:[0,0,0,0],o,u),c<=0&&clearTimeout(u),u},timeAgo:function(e,o){var t=(new Date).getTime()-new Date(e).getTime();return t>2592e6?(t=new Date(e).toLocaleString(),o&&(t=t.replace(/\s[\S]+$/g,"")),t):t>=864e5?(t/1e3/60/60/24|0)+"天前":t>=36e5?(t/1e3/60/60|0)+"小时前":t>=18e4?(t/1e3/60|0)+"分钟前":t<0?"未来":"刚刚"}};e("util",t)});
--------------------------------------------------------------------------------
/static/lib/layuiadmin/lib/layui/lay/modules/util.js:
--------------------------------------------------------------------------------
1 | /** layui-v2.0.2 MIT License By http://www.layui.com */
2 | ;layui.define("jquery",function(e){"use strict";var o=layui.$,t={fixbar:function(e){var t,a,i="layui-fixbar",l="layui-fixbar-top",r=o(document),c=o("body");e=o.extend({showHeight:200},e),e.bar1=e.bar1===!0?"":e.bar1,e.bar2=e.bar2===!0?"":e.bar2,e.bgcolor=e.bgcolor?"background-color:"+e.bgcolor:"";var n=[e.bar1,e.bar2,""],u=o(['',e.bar1?'- '+n[0]+"
":"",e.bar2?'- '+n[1]+"
":"",'- '+n[2]+"
","
"].join("")),s=u.find("."+l),b=function(){var o=r.scrollTop();o>=e.showHeight?t||(s.show(),t=1):t&&(s.hide(),t=0)};o("."+i)[0]||("object"==typeof e.css&&u.css(e.css),c.append(u),b(),u.find("li").on("click",function(){var t=o(this),a=t.attr("lay-type");"top"===a&&o("html,body").animate({scrollTop:0},200),e.click&&e.click.call(this,a)}),r.on("scroll",function(){clearTimeout(a),a=setTimeout(function(){b()},100)}))},countdown:function(e,o,t){var a=this,i="function"==typeof o,l=new Date(e).getTime(),r=new Date(!o||i?(new Date).getTime():o).getTime(),c=l-r,n=[Math.floor(c/864e5),Math.floor(c/36e5)%24,Math.floor(c/6e4)%60,Math.floor(c/1e3)%60];i&&(t=o);var u=setTimeout(function(){a.countdown(e,r+1e3,t)},1e3);return t&&t(c>0?n:[0,0,0,0],o,u),c<=0&&clearTimeout(u),u},timeAgo:function(e,o){var t=(new Date).getTime()-new Date(e).getTime();return t>2592e6?(t=new Date(e).toLocaleString(),o&&(t=t.replace(/\s[\S]+$/g,"")),t):t>=864e5?(t/1e3/60/60/24|0)+"天前":t>=36e5?(t/1e3/60/60|0)+"小时前":t>=18e4?(t/1e3/60|0)+"分钟前":t<0?"未来":"刚刚"}};e("util",t)});
--------------------------------------------------------------------------------
/static/lib/layuiadmin/lib/view.js:
--------------------------------------------------------------------------------
1 | /** layuiAdmin.std-v1.4.0 LPPL License By https://www.layui.com/admin/ */
2 | ;layui.define(["laytpl","layer"],function(e){var t=layui.jquery,a=layui.laytpl,n=layui.layer,r=layui.setter,o=(layui.device(),layui.hint()),i=function(e){return new d(e)},s="LAY_app_body",d=function(e){this.id=e,this.container=t("#"+(e||s))};i.loading=function(e){e.append(this.elemLoad=t(''))},i.removeLoad=function(){this.elemLoad&&this.elemLoad.remove()},i.exit=function(e){layui.data(r.tableName,{key:r.request.tokenName,remove:!0}),e&&e()},i.req=function(e){var a=e.success,n=e.error,o=r.request,s=r.response,d=function(){return r.debug?"
URL:"+e.url:""};if(e.data=e.data||{},e.headers=e.headers||{},o.tokenName){var l="string"==typeof e.data?JSON.parse(e.data):e.data;e.data[o.tokenName]=o.tokenName in l?e.data[o.tokenName]:layui.data(r.tableName)[o.tokenName]||"",e.headers[o.tokenName]=o.tokenName in e.headers?e.headers[o.tokenName]:layui.data(r.tableName)[o.tokenName]||""}return delete e.success,delete e.error,t.ajax(t.extend({type:"get",dataType:"json",success:function(t){var n=s.statusCode;if(t[s.statusName]==n.ok)"function"==typeof e.done&&e.done(t);else if(t[s.statusName]==n.logout)i.exit();else{var r=["Error: "+(t[s.msgName]||"返回状态码异常"),d()].join("");i.error(r)}"function"==typeof a&&a(t)},error:function(e,t){var a=["请求异常,请重试
错误信息:"+t,d()].join("");i.error(a),"function"==typeof n&&n(res)}},e))},i.popup=function(e){var a=e.success,r=e.skin;return delete e.success,delete e.skin,n.open(t.extend({type:1,title:"提示",content:"",id:"LAY-system-view-popup",skin:"layui-layer-admin"+(r?" "+r:""),shadeClose:!0,closeBtn:!1,success:function(e,r){var o=t('ဆ');e.append(o),o.on("click",function(){n.close(r)}),"function"==typeof a&&a.apply(this,arguments)}},e))},i.error=function(e,a){return i.popup(t.extend({content:e,maxWidth:300,offset:"t",anim:6,id:"LAY_adminError"},a))},d.prototype.render=function(e,a){var n=this;layui.router();return e=r.views+e+r.engine,t("#"+s).children(".layadmin-loading").remove(),i.loading(n.container),t.ajax({url:e,type:"get",dataType:"html",data:{v:layui.cache.version},success:function(e){e=""+e+"
";var r=t(e).find("title"),o=r.text()||(e.match(/\([\s\S]*)\<\/title>/)||[])[1],s={title:o,body:e};r.remove(),n.params=a||{},n.then&&(n.then(s),delete n.then),n.parse(e),i.removeLoad(),n.done&&(n.done(s),delete n.done)},error:function(e){return i.removeLoad(),n.render.isError?i.error("请求视图文件异常,状态:"+e.status):(404===e.status?n.render("template/tips/404"):n.render("template/tips/error"),void(n.render.isError=!0))}}),n},d.prototype.parse=function(e,n,r){var s=this,d="object"==typeof e,l=d?e:t(e),u=d?e:l.find("*[template]"),c=function(e){var n=a(e.dataElem.html()),o=t.extend({params:p.params},e.res);e.dataElem.after(n.render(o)),"function"==typeof r&&r();try{e.done&&new Function("d",e.done)(o)}catch(i){console.error(e.dataElem[0],"\n存在错误回调脚本\n\n",i)}},p=layui.router();l.find("title").remove(),s.container[n?"after":"html"](l.children()),p.params=s.params||{};for(var y=u.length;y>0;y--)!function(){var e=u.eq(y-1),t=e.attr("lay-done")||e.attr("lay-then"),n=a(e.attr("lay-url")||"").render(p),r=a(e.attr("lay-data")||"").render(p),s=a(e.attr("lay-headers")||"").render(p);try{r=new Function("return "+r+";")()}catch(d){o.error("lay-data: "+d.message),r={}}try{s=new Function("return "+s+";")()}catch(d){o.error("lay-headers: "+d.message),s=s||{}}n?i.req({type:e.attr("lay-type")||"get",url:n,data:r,dataType:"json",headers:s,success:function(a){c({dataElem:e,res:a,done:t})}}):c({dataElem:e,done:t})}();return s},d.prototype.autoRender=function(e,a){var n=this;t(e||"body").find("*[template]").each(function(e,a){var r=t(this);n.container=r,n.parse(r,"refresh")})},d.prototype.send=function(e,t){var n=a(e||this.container.html()).render(t||{});return this.container.html(n),this},d.prototype.refresh=function(e){var t=this,a=t.container.next(),n=a.attr("lay-templateid");return t.id!=n?t:(t.parse(t.container,"refresh",function(){t.container.siblings('[lay-templateid="'+t.id+'"]:last').remove(),"function"==typeof e&&e()}),t)},d.prototype.then=function(e){return this.then=e,this},d.prototype.done=function(e){return this.done=e,this},e("view",i)});
--------------------------------------------------------------------------------
/static/lib/layuiadmin/modules/common.js:
--------------------------------------------------------------------------------
1 | /** layuiAdmin.std-v1.4.0 LPPL License By https://www.layui.com/admin/ */
2 | ;layui.define(function(e){var i=(layui.$,layui.layer,layui.laytpl,layui.setter,layui.view,layui.admin);i.events.logout=function(){i.req({url:layui.setter.base+"json/user/logout.js",type:"get",data:{},done:function(e){i.exit(function(){location.href="user/login.html"})}})},e("common",{})});
--------------------------------------------------------------------------------
/static/lib/layuiadmin/modules/console.js:
--------------------------------------------------------------------------------
1 | /** layuiAdmin.std-v1.4.0 LPPL License By https://www.layui.com/admin/ */
2 | ;layui.define(function(e){layui.use(["admin","carousel"],function(){var e=layui.$,t=(layui.admin,layui.carousel),a=layui.element,i=layui.device();e(".layadmin-carousel").each(function(){var a=e(this);t.render({elem:this,width:"100%",arrow:"none",interval:a.data("interval"),autoplay:a.data("autoplay")===!0,trigger:i.ios||i.android?"click":"hover",anim:a.data("anim")})}),a.render("progress")}),layui.use(["admin","carousel","echarts"],function(){var e=layui.$,t=layui.admin,a=layui.carousel,i=layui.echarts,l=[],n=[{title:{text:"今日流量趋势",x:"center",textStyle:{fontSize:14}},tooltip:{trigger:"axis"},legend:{data:["",""]},xAxis:[{type:"category",boundaryGap:!1,data:["06:00","06:30","07:00","07:30","08:00","08:30","09:00","09:30","10:00","11:30","12:00","12:30","13:00","13:30","14:00","14:30","15:00","15:30","16:00","16:30","17:00","17:30","18:00","18:30","19:00","19:30","20:00","20:30","21:00","21:30","22:00","22:30","23:00","23:30"]}],yAxis:[{type:"value"}],series:[{name:"PV",type:"line",smooth:!0,itemStyle:{normal:{areaStyle:{type:"default"}}},data:[111,222,333,444,555,666,3333,33333,55555,66666,33333,3333,6666,11888,26666,38888,56666,42222,39999,28888,17777,9666,6555,5555,3333,2222,3111,6999,5888,2777,1666,999,888,777]},{name:"UV",type:"line",smooth:!0,itemStyle:{normal:{areaStyle:{type:"default"}}},data:[11,22,33,44,55,66,333,3333,5555,12666,3333,333,666,1188,2666,3888,6666,4222,3999,2888,1777,966,655,555,333,222,311,699,588,277,166,99,88,77]}]},{title:{text:"访客浏览器分布",x:"center",textStyle:{fontSize:14}},tooltip:{trigger:"item",formatter:"{a}
{b} : {c} ({d}%)"},legend:{orient:"vertical",x:"left",data:["Chrome","Firefox","IE 8.0","Safari","其它浏览器"]},series:[{name:"访问来源",type:"pie",radius:"55%",center:["50%","50%"],data:[{value:9052,name:"Chrome"},{value:1610,name:"Firefox"},{value:3200,name:"IE 8.0"},{value:535,name:"Safari"},{value:1700,name:"其它浏览器"}]}]},{title:{text:"最近一周新增的用户量",x:"center",textStyle:{fontSize:14}},tooltip:{trigger:"axis",formatter:"{b}
新增用户:{c}"},xAxis:[{type:"category",data:["11-07","11-08","11-09","11-10","11-11","11-12","11-13"]}],yAxis:[{type:"value"}],series:[{type:"line",data:[200,300,400,610,150,270,380]}]}],r=e("#LAY-index-dataview").children("div"),o=function(e){l[e]=i.init(r[e],layui.echartsTheme),l[e].setOption(n[e]),t.resize(function(){l[e].resize()})};if(r[0]){o(0);var d=0;a.on("change(LAY-index-dataview)",function(e){o(d=e.index)}),layui.admin.on("side",function(){setTimeout(function(){o(d)},300)}),layui.admin.on("hash(tab)",function(){layui.router().path.join("")||o(d)})}}),layui.use("table",function(){var e=(layui.$,layui.table);e.render({elem:"#LAY-index-topSearch",url:layui.setter.base+"json/console/top-search.js",page:!0,cols:[[{type:"numbers",fixed:"left"},{field:"keywords",title:"关键词",minWidth:300,templet:''},{field:"frequency",title:"搜索次数",minWidth:120,sort:!0},{field:"userNums",title:"用户数",sort:!0}]],skin:"line"}),e.render({elem:"#LAY-index-topCard",url:layui.setter.base+"json/console/top-card.js",page:!0,cellMinWidth:120,cols:[[{type:"numbers",fixed:"left"},{field:"title",title:"标题",minWidth:300,templet:''},{field:"username",title:"发帖者"},{field:"channel",title:"类别"},{field:"crt",title:"点击率",sort:!0}]],skin:"line"})}),e("console",{})});
--------------------------------------------------------------------------------
/static/lib/layuiadmin/modules/contlist.js:
--------------------------------------------------------------------------------
1 | /** layuiAdmin.std-v1.4.0 LPPL License By https://www.layui.com/admin/ */
2 | ;layui.define(["table","form"],function(t){var e=layui.$,i=layui.table,n=layui.form;i.render({elem:"#LAY-app-content-list",url:layui.setter.base+"json/content/list.js",cols:[[{type:"checkbox",fixed:"left"},{field:"id",width:100,title:"文章ID",sort:!0},{field:"label",title:"文章标签",minWidth:100},{field:"title",title:"文章标题"},{field:"author",title:"作者"},{field:"uploadtime",title:"上传时间",sort:!0},{field:"status",title:"发布状态",templet:"#buttonTpl",minWidth:80,align:"center"},{title:"操作",minWidth:150,align:"center",fixed:"right",toolbar:"#table-content-list"}]],page:!0,limit:10,limits:[10,15,20,25,30],text:"对不起,加载出现异常!"}),i.on("tool(LAY-app-content-list)",function(t){var e=t.data;"del"===t.event?layer.confirm("确定删除此文章?",function(e){t.del(),layer.close(e)}):"edit"===t.event&&layer.open({type:2,title:"编辑文章",content:"../../../views/app/content/listform.html?id="+e.id,maxmin:!0,area:["550px","550px"],btn:["确定","取消"],yes:function(e,i){var l=window["layui-layer-iframe"+e],a=i.find("iframe").contents().find("#layuiadmin-app-form-edit");l.layui.form.on("submit(layuiadmin-app-form-edit)",function(i){var l=i.field;t.update({label:l.label,title:l.title,author:l.author,status:l.status}),n.render(),layer.close(e)}),a.trigger("click")}})}),i.render({elem:"#LAY-app-content-tags",url:layui.setter.base+"json/content/tags.js",cols:[[{type:"numbers",fixed:"left"},{field:"id",width:100,title:"ID",sort:!0},{field:"tags",title:"分类名",minWidth:100},{title:"操作",width:150,align:"center",fixed:"right",toolbar:"#layuiadmin-app-cont-tagsbar"}]],text:"对不起,加载出现异常!"}),i.on("tool(LAY-app-content-tags)",function(t){var i=t.data;if("del"===t.event)layer.confirm("确定删除此分类?",function(e){t.del(),layer.close(e)});else if("edit"===t.event){e(t.tr);layer.open({type:2,title:"编辑分类",content:"../../../views/app/content/tagsform.html?id="+i.id,area:["450px","200px"],btn:["确定","取消"],yes:function(e,i){var n=i.find("iframe").contents().find("#layuiadmin-app-form-tags"),l=n.find('input[name="tags"]').val();l.replace(/\s/g,"")&&(t.update({tags:l}),layer.close(e))},success:function(t,e){var n=t.find("iframe").contents().find("#layuiadmin-app-form-tags").click();n.find('input[name="tags"]').val(i.tags)}})}}),i.render({elem:"#LAY-app-content-comm",url:layui.setter.base+"json/content/comment.js",cols:[[{type:"checkbox",fixed:"left"},{field:"id",width:100,title:"ID",sort:!0},{field:"reviewers",title:"评论者",minWidth:100},{field:"content",title:"评论内容",minWidth:100},{field:"commtime",title:"评论时间",minWidth:100,sort:!0},{title:"操作",width:150,align:"center",fixed:"right",toolbar:"#table-content-com"}]],page:!0,limit:10,limits:[10,15,20,25,30],text:"对不起,加载出现异常!"}),i.on("tool(LAY-app-content-comm)",function(t){t.data;"del"===t.event?layer.confirm("确定删除此条评论?",function(e){t.del(),layer.close(e)}):"edit"===t.event&&layer.open({type:2,title:"编辑评论",content:"../../../views/app/content/contform.html",area:["450px","300px"],btn:["确定","取消"],yes:function(t,e){var n=window["layui-layer-iframe"+t],l="layuiadmin-app-comm-submit",a=e.find("iframe").contents().find("#"+l);n.layui.form.on("submit("+l+")",function(e){e.field;i.reload("LAY-app-content-comm"),layer.close(t)}),a.trigger("click")},success:function(t,e){}})}),t("contlist",{})});
--------------------------------------------------------------------------------
/static/lib/layuiadmin/modules/forum.js:
--------------------------------------------------------------------------------
1 | /** layuiAdmin.std-v1.4.0 LPPL License By https://www.layui.com/admin/ */
2 | ;layui.define(["table","form"],function(e){var t=layui.$,i=layui.table;layui.form;i.render({elem:"#LAY-app-forum-list",url:layui.setter.base+"json/forum/list.js",cols:[[{type:"checkbox",fixed:"left"},{field:"id",width:100,title:"ID",sort:!0},{field:"poster",title:"发帖人"},{field:"avatar",title:"头像",width:100,templet:"#imgTpl"},{field:"content",title:"发帖内容"},{field:"posttime",title:"发帖时间",sort:!0},{field:"top",title:"置顶",templet:"#buttonTpl",minWidth:80,align:"center"},{title:"操作",width:150,align:"center",fixed:"right",toolbar:"#table-forum-list"}]],page:!0,limit:10,limits:[10,15,20,25,30],text:"对不起,加载出现异常!"}),i.on("tool(LAY-app-forum-list)",function(e){e.data;if("del"===e.event)layer.confirm("确定删除此条帖子?",function(t){e.del(),layer.close(t)});else if("edit"===e.event){t(e.tr);layer.open({type:2,title:"编辑帖子",content:"../../../views/app/forum/listform.html",area:["550px","400px"],btn:["确定","取消"],resize:!1,yes:function(e,t){var l=window["layui-layer-iframe"+e],r="LAY-app-forum-submit",o=t.find("iframe").contents().find("#"+r);l.layui.form.on("submit("+r+")",function(t){t.field;i.reload("LAY-app-forum-list"),layer.close(e)}),o.trigger("click")},success:function(e,t){}})}}),i.render({elem:"#LAY-app-forumreply-list",url:layui.setter.base+"json/forum/replys.js",cols:[[{type:"checkbox",fixed:"left"},{field:"id",width:100,title:"ID",sort:!0},{field:"replyer",title:"回帖人"},{field:"cardid",title:"回帖ID",sort:!0},{field:"avatar",title:"头像",width:100,templet:"#imgTpl"},{field:"content",title:"回帖内容",width:200},{field:"replytime",title:"回帖时间",sort:!0},{title:"操作",width:150,align:"center",fixed:"right",toolbar:"#table-forum-replys"}]],page:!0,limit:10,limits:[10,15,20,25,30],text:"对不起,加载出现异常!"}),i.on("tool(LAY-app-forumreply-list)",function(e){e.data;if("del"===e.event)layer.confirm("确定删除此条评论?",function(t){e.del(),layer.close(t)});else if("edit"===e.event){t(e.tr);layer.open({type:2,title:"编辑评论",content:"../../../views/app/forum/replysform.html",area:["550px","350px"],btn:["确定","取消"],resize:!1,yes:function(t,i){var l=i.find("iframe").contents().find("#layuiadmin-form-replys"),r=l.find('textarea[name="content"]').val();e.update({content:r}),layer.close(t)},success:function(e,t){}})}}),e("forum",{})});
--------------------------------------------------------------------------------
/static/lib/layuiadmin/modules/im.js:
--------------------------------------------------------------------------------
1 | /** layuiAdmin.std-v1.4.0 LPPL License By https://www.layui.com/admin/ */
2 | ;layui.define(["index","layim"],function(e){var a=layui.$,t=(layui.admin,layui.element,layui.router(),layui.layim),n=["您好,我现在有事不在,一会再和您联系。","你没发错吧?face[微笑] ","洗澡中,请勿打扰,偷窥请购票,个体四十,团体八折,订票电话:一般人我不告诉他!face[哈哈] ","你好,我是主人的美女秘书,有什么事就跟我说吧,等他回来我会转告他的。face[心] face[心] face[心] ","face[威武] face[威武] face[威武] face[威武] ","<(@ ̄︶ ̄@)>","你要和我说话?你真的要和我说话?你确定自己想说吗?你一定非说不可吗?那你说吧,这是自动回复。","face[黑线] 你慢慢说,别急……","(*^__^*) face[嘻嘻] ,是贤心吗?"];t.config({init:{url:layui.setter.base+"json/layim/getList.js",data:{}},members:{url:layui.setter.base+"json/layim/getMembers.js",data:{}},uploadImage:{url:"",type:""},uploadFile:{url:"",type:""},isAudio:!0,isVideo:!0,tool:[{alias:"code",title:"代码",icon:""}],initSkin:"3.jpg",msgbox:"/layim/demo/msgbox.html",find:"/layim/demo/find.html",chatLog:"/layim/demo/chatlog.html"}),t.on("online",function(e){layer.msg(e)}),t.on("sign",function(e){layer.msg(e)}),t.on("tool(code)",function(e){layer.prompt({title:"插入代码 - 工具栏扩展示例",formType:2,shade:0},function(a,t){layer.close(t),e("[pre class=layui-code]"+a+"[/pre]")})}),t.on("ready",function(e){t.msgbox(5)}),t.on("sendMessage",function(e){var a=e.to;"friend"===a.type&&t.setChatStatus('对方正在输入。。。'),setTimeout(function(){var e={};"group"===a.type?e={username:"模拟群员"+(100*Math.random()|0),avatar:layui.cache.dir+"images/face/"+(72*Math.random()|0)+".gif",id:a.id,type:a.type,content:n[9*Math.random()|0]}:(e={username:a.name,avatar:a.avatar,id:a.id,type:a.type,content:n[9*Math.random()|0]},t.setChatStatus('在线')),t.getMessage(e)},1e3)}),t.on("members",function(e){}),t.on("chatChange",function(e){var a=e.data.type;console.log(e.data.id),"friend"===a||"group"===a&&t.getMessage({system:!0,id:e.data.id,type:"group",content:"模拟群员"+(100*Math.random()|0)+"加入群聊"})});var a=layui.jquery,i={chat:function(){t.chat({name:"小闲",type:"friend",avatar:"//tva3.sinaimg.cn/crop.0.0.180.180.180/7f5f6861jw1e8qgp5bmzyj2050050aa8.jpg",id:1008612}),layer.msg("也就是说,此人可以不在好友面板里")},message:function(){t.getMessage({username:"贤心",avatar:"//tp1.sinaimg.cn/1571889140/180/40030060651/1",id:"100001",type:"friend",content:"嗨,你好!欢迎体验LayIM。演示标记:"+(new Date).getTime(),timestamp:(new Date).getTime()})},messageAudio:function(){t.getMessage({username:"林心如",avatar:"//tp3.sinaimg.cn/1223762662/180/5741707953/0",id:"76543",type:"friend",content:"audio[http://gddx.sc.chinaz.com/Files/DownLoad/sound1/201510/6473.mp3]",timestamp:(new Date).getTime()})},messageVideo:function(){t.getMessage({username:"林心如",avatar:"//tp3.sinaimg.cn/1223762662/180/5741707953/0",id:"76543",type:"friend",content:"video[http://www.w3school.com.cn//i/movie.ogg]",timestamp:(new Date).getTime()})},messageTemp:function(){t.getMessage({username:"小酱",avatar:"//tva1.sinaimg.cn/crop.7.0.736.736.50/bd986d61jw8f5x8bqtp00j20ku0kgabx.jpg",id:"198909151014",type:"friend",content:"临时:"+(new Date).getTime()})},add:function(){t.add({type:"friend",username:"麻花疼",avatar:"//tva1.sinaimg.cn/crop.0.0.720.720.180/005JKVuPjw8ers4osyzhaj30k00k075e.jpg",submit:function(e,a,t){layer.msg("好友申请已发送,请等待对方确认",{icon:1,shade:.5},function(){layer.close(t)})}})},addqun:function(){t.add({type:"group",username:"LayIM会员群",avatar:"//tva2.sinaimg.cn/crop.0.0.180.180.50/6ddfa27bjw1e8qgp5bmzyj2050050aa8.jpg",submit:function(e,a,t){layer.msg("申请已发送,请等待管理员确认",{icon:1,shade:.5},function(){layer.close(t)})}})},addFriend:function(){var e={type:"friend",id:1234560,username:"李彦宏",avatar:"//tva4.sinaimg.cn/crop.0.0.996.996.180/8b2b4e23jw8f14vkwwrmjj20ro0rpjsq.jpg",sign:"全球最大的中文搜索引擎"};t.setFriendGroup({type:e.type,username:e.username,avatar:e.avatar,group:t.cache().friend,submit:function(a,n){t.addList({type:e.type,username:e.username,avatar:e.avatar,groupid:a,id:e.id,sign:e.sign}),layer.close(n)}})},addGroup:function(){layer.msg("已成功把[Angular开发]添加到群组里",{icon:1}),t.addList({type:"group",avatar:"//tva3.sinaimg.cn/crop.64.106.361.361.50/7181dbb3jw8evfbtem8edj20ci0dpq3a.jpg",groupname:"Angular开发",id:"12333333",members:0})},removeFriend:function(){layer.msg("已成功删除[凤姐]",{icon:1}),t.removeList({id:121286,type:"friend"})},removeGroup:function(){layer.msg("已成功删除[前端群]",{icon:1}),t.removeList({id:101,type:"group"})},setGray:function(){t.setFriendStatus(168168,"offline"),layer.msg("已成功将好友[马小云]置灰",{icon:1})},unGray:function(){t.setFriendStatus(168168,"online"),layer.msg("成功取消好友[马小云]置灰状态",{icon:1})},kefu1:function(){t.chat({name:"在线客服一",type:"kefu",avatar:"//tp1.sinaimg.cn/5619439268/180/40030060651/1",id:1111111})},kefu2:function(){t.chat({name:"在线客服二",type:"kefu",avatar:"//tp1.sinaimg.cn/5619439268/180/40030060651/1",id:2222222})},mobile:function(){var e=layui.device(),a="/layim/demo/mobile.html";if(e.android||e.ios)return location.href=a;var t=layer.open({type:2,title:"移动版演示 (或手机扫右侧二维码预览)",content:a,area:["375px","667px"],shadeClose:!0,shade:.8,end:function(){layer.close(t+2)}});layer.photos({photos:{data:[{src:"http://cdn.layui.com/upload/2016_12/168_1481056358469_50288.png"}]},anim:0,shade:!1,success:function(e){e.css("margin-left","350px")}})}};a(".LAY-senior-im-chat-demo .layui-btn").on("click",function(){var e=a(this).data("type");i[e]?i[e].call(this):""}),e("im",{})});
--------------------------------------------------------------------------------
/static/lib/layuiadmin/modules/message.js:
--------------------------------------------------------------------------------
1 | /** layuiAdmin.std-v1.4.0 LPPL License By https://www.layui.com/admin/ */
2 | ;layui.define(["admin","table","util"],function(e){var t=layui.$,i=(layui.admin,layui.table),l=(layui.element,{all:{text:"全部消息",id:"LAY-app-message-all"},notice:{text:"通知",id:"LAY-app-message-notice"},direct:{text:"私信",id:"LAY-app-message-direct"}}),a=function(e){return''+e.title};i.render({elem:"#LAY-app-message-all",url:layui.setter.base+"json/message/all.js",page:!0,cols:[[{type:"checkbox",fixed:"left"},{field:"title",title:"标题内容",minWidth:300,templet:a},{field:"time",title:"时间",width:170,templet:"{{ layui.util.timeAgo(d.time) }}
"}]],skin:"line"}),i.render({elem:"#LAY-app-message-notice",url:layui.setter.base+"json/message/notice.js",page:!0,cols:[[{type:"checkbox",fixed:"left"},{field:"title",title:"标题内容",minWidth:300,templet:a},{field:"time",title:"时间",width:170,templet:"{{ layui.util.timeAgo(d.time) }}
"}]],skin:"line"}),i.render({elem:"#LAY-app-message-direct",url:layui.setter.base+"json/message/direct.js",page:!0,cols:[[{type:"checkbox",fixed:"left"},{field:"title",title:"标题内容",minWidth:300,templet:a},{field:"time",title:"时间",width:170,templet:"{{ layui.util.timeAgo(d.time) }}
"}]],skin:"line"});var d={del:function(e,t){var a=l[t],d=i.checkStatus(a.id),s=d.data;return 0===s.length?layer.msg("未选中行"):void layer.confirm("确定删除选中的数据吗?",function(){layer.msg("删除成功",{icon:1}),i.reload(a.id)})},ready:function(e,t){var a=l[t],d=i.checkStatus(a.id),s=d.data;return 0===s.length?layer.msg("未选中行"):(layer.msg("标记已读成功",{icon:1}),void i.reload(a.id))},readyAll:function(e,t){var i=l[t];layer.msg(i.text+":全部已读",{icon:1})}};t(".LAY-app-message-btns .layui-btn").on("click",function(){var e=t(this),i=e.data("events"),l=e.data("type");d[i]&&d[i].call(this,e,l)}),e("message",{})});
--------------------------------------------------------------------------------
/static/lib/layuiadmin/modules/sample.js:
--------------------------------------------------------------------------------
1 | /** layuiAdmin.std-v1.4.0 LPPL License By https://www.layui.com/admin/ */
2 | ;layui.define(function(e){var a=layui.admin;layui.use(["admin","carousel"],function(){var e=layui.$,a=(layui.admin,layui.carousel),l=layui.element,t=layui.device();e(".layadmin-carousel").each(function(){var l=e(this);a.render({elem:this,width:"100%",arrow:"none",interval:l.data("interval"),autoplay:l.data("autoplay")===!0,trigger:t.ios||t.android?"click":"hover",anim:l.data("anim")})}),l.render("progress")}),layui.use(["carousel","echarts"],function(){var e=layui.$,a=(layui.carousel,layui.echarts),l=[],t=[{title:{subtext:"完全实况球员数据",textStyle:{fontSize:14}},tooltip:{trigger:"axis"},legend:{x:"left",data:["罗纳尔多","舍普琴科"]},polar:[{indicator:[{text:"进攻",max:100},{text:"防守",max:100},{text:"体能",max:100},{text:"速度",max:100},{text:"力量",max:100},{text:"技巧",max:100}],radius:130}],series:[{type:"radar",center:["50%","50%"],itemStyle:{normal:{areaStyle:{type:"default"}}},data:[{value:[97,42,88,94,90,86],name:"舍普琴科"},{value:[97,32,74,95,88,92],name:"罗纳尔多"}]}]}],i=e("#LAY-index-pageone").children("div"),n=function(e){l[e]=a.init(i[e],layui.echartsTheme),l[e].setOption(t[e]),window.onresize=l[e].resize};i[0]&&n(0)}),layui.use(["carousel","echarts"],function(){var e=layui.$,a=(layui.carousel,layui.echarts),l=[],t=[{tooltip:{trigger:"axis"},calculable:!0,legend:{data:["访问量","下载量","平均访问量"]},xAxis:[{type:"category",data:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"]}],yAxis:[{type:"value",name:"访问量",axisLabel:{formatter:"{value} 万"}},{type:"value",name:"下载量",axisLabel:{formatter:"{value} 万"}}],series:[{name:"访问量",type:"line",data:[900,850,950,1e3,1100,1050,1e3,1150,1250,1370,1250,1100]},{name:"下载量",type:"line",yAxisIndex:1,data:[850,850,800,950,1e3,950,950,1150,1100,1240,1e3,950]},{name:"平均访问量",type:"line",data:[870,850,850,950,1050,1e3,980,1150,1e3,1300,1150,1e3]}]}],i=e("#LAY-index-pagetwo").children("div"),n=function(e){l[e]=a.init(i[e],layui.echartsTheme),l[e].setOption(t[e]),window.onresize=l[e].resize};i[0]&&n(0)}),layui.use(["carousel","echarts"],function(){var e=layui.$,a=(layui.carousel,layui.echarts),l=[],t=[{title:{text:"全国的 layui 用户分布",subtext:"不完全统计"},tooltip:{trigger:"item"},dataRange:{orient:"horizontal",min:0,max:6e4,text:["高","低"],splitNumber:0},series:[{name:"全国的 layui 用户分布",type:"map",mapType:"china",selectedMode:"multiple",itemStyle:{normal:{label:{show:!0}},emphasis:{label:{show:!0}}},data:[{name:"西藏",value:60},{name:"青海",value:167},{name:"宁夏",value:210},{name:"海南",value:252},{name:"甘肃",value:502},{name:"贵州",value:570},{name:"新疆",value:661},{name:"云南",value:8890},{name:"重庆",value:10010},{name:"吉林",value:5056},{name:"山西",value:2123},{name:"天津",value:9130},{name:"江西",value:10170},{name:"广西",value:6172},{name:"陕西",value:9251},{name:"黑龙江",value:5125},{name:"内蒙古",value:1435},{name:"安徽",value:9530},{name:"北京",value:51919},{name:"福建",value:3756},{name:"上海",value:59190},{name:"湖北",value:37109},{name:"湖南",value:8966},{name:"四川",value:31020},{name:"辽宁",value:7222},{name:"河北",value:3451},{name:"河南",value:9693},{name:"浙江",value:62310},{name:"山东",value:39231},{name:"江苏",value:35911},{name:"广东",value:55891}]}]}],i=e("#LAY-index-pagethree").children("div"),n=function(e){l[e]=a.init(i[e],layui.echartsTheme),l[e].setOption(t[e]),window.onresize=l[e].resize};i[0]&&n(0)}),layui.use("table",function(){var e=(layui.$,layui.table);e.render({elem:"#LAY-index-prograss",url:layui.setter.base+"json/console/prograss.js",cols:[[{type:"checkbox",fixed:"left"},{field:"prograss",title:"任务"},{field:"time",title:"所需时间"},{field:"complete",title:"完成情况",templet:function(e){return"已完成"==e.complete?''+e.complete+"":"进行中"==e.complete?''+e.complete+"":''+e.complete+""}}]],skin:"line"})}),a.events.replyNote=function(e){var a=e.data("id");layer.prompt({title:"回复留言 ID:"+a,formType:2},function(e,a){layer.msg("得到:"+e),layer.close(a)})},e("sample",{})});
--------------------------------------------------------------------------------
/static/lib/layuiadmin/modules/set.js:
--------------------------------------------------------------------------------
1 | /** layuiAdmin.std-v1.4.0 LPPL License By https://www.layui.com/admin/ */
2 | ;layui.define(["form","upload"],function(t){var i=layui.$,e=layui.layer,a=(layui.laytpl,layui.setter,layui.view,layui.admin),n=layui.form,s=layui.upload;i("body");n.verify({nickname:function(t,i){return new RegExp("^[a-zA-Z0-9_一-龥\\s·]+$").test(t)?/(^\_)|(\__)|(\_+$)/.test(t)?"用户名首尾不能出现下划线'_'":/^\d+\d+\d$/.test(t)?"用户名不能全为数字":void 0:"用户名不能有特殊字符"},pass:[/^[\S]{6,12}$/,"密码必须6到12位,且不能出现空格"],repass:function(t){if(t!==i("#LAY_password").val())return"两次密码输入不一致"}}),n.on("submit(set_website)",function(t){return e.msg(JSON.stringify(t.field)),!1}),n.on("submit(set_system_email)",function(t){return e.msg(JSON.stringify(t.field)),!1}),n.on("submit(setmyinfo)",function(t){return e.msg(JSON.stringify(t.field)),!1});var r=i("#LAY_avatarSrc");s.render({url:"/api/upload/",elem:"#LAY_avatarUpload",done:function(t){0==t.status?r.val(t.url):e.msg(t.msg,{icon:5})}}),a.events.avartatPreview=function(t){var i=r.val();e.photos({photos:{title:"查看头像",data:[{src:i}]},shade:.01,closeBtn:1,anim:5})},n.on("submit(setmypass)",function(t){return e.msg(JSON.stringify(t.field)),!1}),t("set",{})});
--------------------------------------------------------------------------------
/static/lib/layuiadmin/modules/user.js:
--------------------------------------------------------------------------------
1 | /** layuiAdmin.std-v1.4.0 LPPL License By https://www.layui.com/admin/ */
2 | ;layui.define("form",function(e){var s=layui.$,t=(layui.layer,layui.laytpl,layui.setter,layui.view,layui.admin),i=layui.form,a=s("body");i.verify({nickname:function(e,s){return new RegExp("^[a-zA-Z0-9_一-龥\\s·]+$").test(e)?/(^\_)|(\__)|(\_+$)/.test(e)?"用户名首尾不能出现下划线'_'":/^\d+\d+\d$/.test(e)?"用户名不能全为数字":void 0:"用户名不能有特殊字符"},pass:[/^[\S]{6,12}$/,"密码必须6到12位,且不能出现空格"]}),t.sendAuthCode({elem:"#LAY-user-getsmscode",elemPhone:"#LAY-user-login-cellphone",elemVercode:"#LAY-user-login-vercode",ajax:{url:layui.setter.base+"json/user/sms.js"}}),a.on("click","#LAY-user-get-vercode",function(){s(this);this.src="https://www.oschina.net/action/user/captcha?t="+(new Date).getTime()}),e("user",{})});
--------------------------------------------------------------------------------
/static/lib/layuiadmin/modules/useradmin.js:
--------------------------------------------------------------------------------
1 | /** layuiAdmin.std-v1.4.0 LPPL License By https://www.layui.com/admin/ */
2 | ;layui.define(["table","form"],function(e){var t=layui.$,i=layui.table;layui.form;i.render({elem:"#LAY-user-manage",url:layui.setter.base+"json/useradmin/webuser.js",cols:[[{type:"checkbox",fixed:"left"},{field:"id",width:100,title:"ID",sort:!0},{field:"username",title:"用户名",minWidth:100},{field:"avatar",title:"头像",width:100,templet:"#imgTpl"},{field:"phone",title:"手机"},{field:"email",title:"邮箱"},{field:"sex",width:80,title:"性别"},{field:"ip",title:"IP"},{field:"jointime",title:"加入时间",sort:!0},{title:"操作",width:150,align:"center",fixed:"right",toolbar:"#table-useradmin-webuser"}]],page:!0,limit:30,height:"full-220",text:"对不起,加载出现异常!"}),i.on("tool(LAY-user-manage)",function(e){e.data;if("del"===e.event)layer.prompt({formType:1,title:"敏感操作,请验证口令"},function(t,i){layer.close(i),layer.confirm("真的删除行么",function(t){e.del(),layer.close(t)})});else if("edit"===e.event){t(e.tr);layer.open({type:2,title:"编辑用户",content:"../../../views/user/user/userform.html",maxmin:!0,area:["500px","450px"],btn:["确定","取消"],yes:function(e,t){var l=window["layui-layer-iframe"+e],r="LAY-user-front-submit",n=t.find("iframe").contents().find("#"+r);l.layui.form.on("submit("+r+")",function(t){t.field;i.reload("LAY-user-manage"),layer.close(e)}),n.trigger("click")},success:function(e,t){}})}}),i.render({elem:"#LAY-user-back-manage",url:layui.setter.base+"json/useradmin/mangadmin.js",cols:[[{type:"checkbox",fixed:"left"},{field:"id",width:80,title:"ID",sort:!0},{field:"loginname",title:"登录名"},{field:"telphone",title:"手机"},{field:"email",title:"邮箱"},{field:"role",title:"角色"},{field:"jointime",title:"加入时间",sort:!0},{field:"check",title:"审核状态",templet:"#buttonTpl",minWidth:80,align:"center"},{title:"操作",width:150,align:"center",fixed:"right",toolbar:"#table-useradmin-admin"}]],text:"对不起,加载出现异常!"}),i.on("tool(LAY-user-back-manage)",function(e){e.data;if("del"===e.event)layer.prompt({formType:1,title:"敏感操作,请验证口令"},function(t,i){layer.close(i),layer.confirm("确定删除此管理员?",function(t){console.log(e),e.del(),layer.close(t)})});else if("edit"===e.event){t(e.tr);layer.open({type:2,title:"编辑管理员",content:"../../../views/user/administrators/adminform.html",area:["420px","420px"],btn:["确定","取消"],yes:function(e,t){var l=window["layui-layer-iframe"+e],r="LAY-user-back-submit",n=t.find("iframe").contents().find("#"+r);l.layui.form.on("submit("+r+")",function(t){t.field;i.reload("LAY-user-front-submit"),layer.close(e)}),n.trigger("click")},success:function(e,t){}})}}),i.render({elem:"#LAY-user-back-role",url:layui.setter.base+"json/useradmin/role.js",cols:[[{type:"checkbox",fixed:"left"},{field:"id",width:80,title:"ID",sort:!0},{field:"rolename",title:"角色名"},{field:"limits",title:"拥有权限"},{field:"descr",title:"具体描述"},{title:"操作",width:150,align:"center",fixed:"right",toolbar:"#table-useradmin-admin"}]],text:"对不起,加载出现异常!"}),i.on("tool(LAY-user-back-role)",function(e){e.data;if("del"===e.event)layer.confirm("确定删除此角色?",function(t){e.del(),layer.close(t)});else if("edit"===e.event){t(e.tr);layer.open({type:2,title:"编辑角色",content:"../../../views/user/administrators/roleform.html",area:["500px","480px"],btn:["确定","取消"],yes:function(e,t){var l=window["layui-layer-iframe"+e],r=t.find("iframe").contents().find("#LAY-user-role-submit");l.layui.form.on("submit(LAY-user-role-submit)",function(t){t.field;i.reload("LAY-user-back-role"),layer.close(e)}),r.trigger("click")},success:function(e,t){}})}}),e("useradmin",{})});
--------------------------------------------------------------------------------
/static/lib/layuiadmin/modules/workorder.js:
--------------------------------------------------------------------------------
1 | /** layuiAdmin.std-v1.4.0 LPPL License By https://www.layui.com/admin/ */
2 | ;layui.define(["table","form","element"],function(e){var t=layui.$,i=layui.table,r=(layui.form,layui.element);i.render({elem:"#LAY-app-system-order",url:layui.setter.base+"json/workorder/demo.js",cols:[[{type:"numbers",fixed:"left"},{field:"orderid",width:100,title:"工单号",sort:!0},{field:"attr",width:100,title:"业务性质"},{field:"title",width:100,title:"工单标题",width:300},{field:"progress",title:"进度",width:200,align:"center",templet:"#progressTpl"},{field:"submit",width:100,title:"提交者"},{field:"accept",width:100,title:"受理人员"},{field:"state",title:"工单状态",templet:"#buttonTpl",minWidth:80,align:"center"},{title:"操作",align:"center",fixed:"right",toolbar:"#table-system-order"}]],page:!0,limit:10,limits:[10,15,20,25,30],text:"对不起,加载出现异常!",done:function(){r.render("progress")}}),i.on("tool(LAY-app-system-order)",function(e){e.data;if("edit"===e.event){t(e.tr);layer.open({type:2,title:"编辑工单",content:"../../../views/app/workorder/listform.html",area:["450px","450px"],btn:["确定","取消"],yes:function(e,t){var r=window["layui-layer-iframe"+e],l="LAY-app-workorder-submit",o=t.find("iframe").contents().find("#"+l);r.layui.form.on("submit("+l+")",function(t){t.field;i.reload("LAY-user-front-submit"),layer.close(e)}),o.trigger("click")},success:function(e,t){}})}}),e("workorder",{})});
--------------------------------------------------------------------------------
/static/lib/layuiadmin/style/login.css:
--------------------------------------------------------------------------------
1 | /** layuiAdmin.std-v1.4.0 LPPL License By https://www.layui.com/admin/ */
2 | #LAY_app,body,html{height:100%}.layui-layout-body{overflow:auto}#LAY-user-login,.layadmin-user-display-show{display:block!important}.layadmin-user-login{position:relative;left:0;top:0;padding:110px 0;min-height:100%;box-sizing:border-box}.layadmin-user-login-main{width:375px;margin:0 auto;box-sizing:border-box}.layadmin-user-login-box{padding:20px}.layadmin-user-login-header{text-align:center}.layadmin-user-login-header h2{margin-bottom:10px;font-weight:300;font-size:30px;color:#000}.layadmin-user-login-header p{font-weight:300;color:#999}.layadmin-user-login-body .layui-form-item{position:relative}.layadmin-user-login-icon{position:absolute;left:1px;top:1px;width:38px;line-height:36px;text-align:center;color:#d2d2d2}.layadmin-user-login-body .layui-form-item .layui-input{padding-left:38px}.layadmin-user-login-codeimg{max-height:38px;width:100%;cursor:pointer;box-sizing:border-box}.layadmin-user-login-other{position:relative;font-size:0;line-height:38px;padding-top:20px}.layadmin-user-login-other>*{display:inline-block;vertical-align:middle;margin-right:10px;font-size:14px}.layadmin-user-login-other .layui-icon{position:relative;top:2px;font-size:26px}.layadmin-user-login-other a:hover{opacity:.8}.layadmin-user-jump-change{float:right}.layadmin-user-login-footer{position:absolute;left:0;bottom:0;width:100%;line-height:30px;padding:20px;text-align:center;box-sizing:border-box;color:rgba(0,0,0,.5)}.layadmin-user-login-footer span{padding:0 5px}.layadmin-user-login-footer a{padding:0 5px;color:rgba(0,0,0,.5)}.layadmin-user-login-footer a:hover{color:rgba(0,0,0,1)}.layadmin-user-login-main[bgimg]{background-color:#fff;box-shadow:0 0 5px rgba(0,0,0,.05)}.ladmin-user-login-theme{position:fixed;bottom:0;left:0;width:100%;text-align:center}.ladmin-user-login-theme ul{display:inline-block;padding:5px;background-color:#fff}.ladmin-user-login-theme ul li{display:inline-block;vertical-align:top;width:64px;height:43px;cursor:pointer;transition:all .3s;-webkit-transition:all .3s;background-color:#f2f2f2}.ladmin-user-login-theme ul li:hover{opacity:.9}@media screen and (max-width:768px){.layadmin-user-login{padding-top:60px}.layadmin-user-login-main{width:300px}.layadmin-user-login-box{padding:10px}}
--------------------------------------------------------------------------------
/static/lib/layuiadmin/style/res/bg-none.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layuiadmin/style/res/bg-none.jpg
--------------------------------------------------------------------------------
/static/lib/layuiadmin/style/res/layui-logo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layuiadmin/style/res/layui-logo.jpg
--------------------------------------------------------------------------------
/static/lib/layuiadmin/style/res/logo-black.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layuiadmin/style/res/logo-black.png
--------------------------------------------------------------------------------
/static/lib/layuiadmin/style/res/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layuiadmin/style/res/logo.png
--------------------------------------------------------------------------------
/static/lib/layuiadmin/style/res/template/character.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layuiadmin/style/res/template/character.jpg
--------------------------------------------------------------------------------
/static/lib/layuiadmin/style/res/template/huge 2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layuiadmin/style/res/template/huge 2.jpg
--------------------------------------------------------------------------------
/static/lib/layuiadmin/style/res/template/huge.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layuiadmin/style/res/template/huge.jpg
--------------------------------------------------------------------------------
/static/lib/layuiadmin/style/res/template/portrait.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/static/lib/layuiadmin/style/res/template/portrait.png
--------------------------------------------------------------------------------
/static/lib/layuiadmin/tpl/layim/demo.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/static/lib/layuiadmin/tpl/system/about.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
13 |
14 |
15 |
16 |
17 |
18 | layuiAdmin 受国家计算机软件著作权保护(登记号:2018SR410669),必须经官网授权才可获得源文件使用权。不得恶意分享产品源代码、二次转售等,违者将承担相应的法律责任。
19 |
详见:《layui 付费产品服务条款》
20 |
21 |
© 2020 layui.com 版权所有
22 |
--------------------------------------------------------------------------------
/static/lib/layuiadmin/tpl/system/get.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | 授权获得 layuiAdmin
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
专业版
21 |
22 | - 始终基于全新的 layui 版本
23 | - 单页面应用,所有操作无需跳转
24 | - 支持前后端分离开发模式
25 | - 面向全屏幕尺寸的响应式适配能力
26 | - 灵活的主题色配置
27 | - 专属的开发者文档,助你快速掌握
28 | - 版本的持续更新,集大众之所需
29 | - 专属的会员群,与同道中人隔空交流
30 | - layui 社区 VIP 标识
31 | - 不限制域名、不限制应用的项目数量
32 |
33 |
44 |
45 |
46 |
47 | 你所获得的不仅仅是一款高精品的后台管理模板系统,更是一项关于时间与效率的高收益回报
48 |
49 |
50 |
51 |
52 |
53 |
60 |
61 |
--------------------------------------------------------------------------------
/static/lib/layuiadmin/tpl/system/more.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
23 |
--------------------------------------------------------------------------------
/static/lib/layuiadmin/tpl/system/theme.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
28 |
29 |
44 |
--------------------------------------------------------------------------------
/static/lib/layuiadmin/tpl/system/说明.txt:
--------------------------------------------------------------------------------
1 |
2 | 注意:
3 | 该目录存放的是 layuiAdmin 的系统模板碎片,很多界面需要依赖到它,切勿随意剔除。
--------------------------------------------------------------------------------
/static/lib/layuiadmin/tpl/说明.txt:
--------------------------------------------------------------------------------
1 |
2 | 注意:
3 | 该目录存放的是 layuiAdmin 的动态模板碎片
--------------------------------------------------------------------------------
/templates/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jiamin329/fruit-classifer/ab62141fa78fdebcdcd8a7439349cbfaad88553f/templates/favicon.ico
--------------------------------------------------------------------------------
/train.py:
--------------------------------------------------------------------------------
1 | import tensorflow as tf
2 | from data import train_db, dev_db
3 | import models
4 | import settings
5 | from models import show_loss_acc
6 |
7 | # 从models文件中导入模型
8 | model = models.my_densenet()
9 | model.summary()
10 |
11 | # 配置优化器、损失函数、以及监控指标
12 | model.compile(tf.keras.optimizers.Adam(settings.LEARNING_RATE),
13 | loss=tf.keras.losses.categorical_crossentropy,
14 | metrics=['accuracy'])
15 |
16 | # 在每个epoch结束后尝试保存模型参数,只有当前参数的val_accuracy比之前保存的更优时,才会覆盖掉之前保存的参数
17 | model_check_point = tf.keras.callbacks.ModelCheckpoint(filepath=settings.MODEL_PATH,
18 | monitor='val_accuracy',
19 | save_best_only=True)
20 | # 使用tf.keras的高级接口进行训练
21 | history = model.fit(train_db, epochs=settings.TRAIN_EPOCHS,
22 | validation_data=dev_db, callbacks=[model_check_point])
23 | show_loss_acc(history)
24 |
25 |
--------------------------------------------------------------------------------