├── README.md
├── src
└── WechatBribery
│ ├── Views
│ ├── _ViewStart.cshtml
│ ├── Shared
│ │ ├── Prompt.cshtml
│ │ ├── Exceeded.cshtml
│ │ └── Bribery.cshtml
│ ├── _ViewImports.cshtml
│ ├── Account
│ │ ├── Charge.cshtml
│ │ ├── ResetPwd.cshtml
│ │ ├── Password.cshtml
│ │ ├── Index.cshtml
│ │ ├── Profile.cshtml
│ │ ├── Create.cshtml
│ │ └── Login.cshtml
│ ├── Home
│ │ ├── Index.cshtml
│ │ ├── History.cshtml
│ │ ├── Deliver.cshtml
│ │ └── Activity.cshtml
│ └── WeChat
│ │ ├── History.cshtml
│ │ └── Bribery.cshtml
│ ├── wwwroot
│ ├── images
│ │ ├── blue.png
│ │ ├── cry.jpg
│ │ ├── main.png
│ │ ├── top.jpg
│ │ ├── avatar.png
│ │ ├── bottom.jpg
│ │ ├── bottom.png
│ │ ├── drawn.png
│ │ ├── icons.png
│ │ ├── person.png
│ │ ├── photo1.png
│ │ ├── photo2.png
│ │ ├── photo3.jpg
│ │ ├── photo4.jpg
│ │ ├── avatar04.png
│ │ ├── avatar2.png
│ │ ├── avatar3.png
│ │ ├── avatar5.png
│ │ ├── blue@2x.png
│ │ ├── boxed-bg.jpg
│ │ ├── boxed-bg.png
│ │ ├── close-1.png
│ │ ├── close-2.png
│ │ ├── drawn-2.png
│ │ ├── pending.png
│ │ ├── undrawn.png
│ │ ├── credit
│ │ │ ├── visa.png
│ │ │ ├── cirrus.png
│ │ │ ├── mestro.png
│ │ │ ├── paypal.png
│ │ │ ├── paypal2.png
│ │ │ ├── mastercard.png
│ │ │ └── american-express.png
│ │ ├── default-50x50.gif
│ │ ├── user1-128x128.jpg
│ │ ├── user2-160x160.jpg
│ │ ├── user3-128x128.jpg
│ │ ├── user4-128x128.jpg
│ │ ├── user5-128x128.jpg
│ │ ├── user6-128x128.jpg
│ │ ├── user7-128x128.jpg
│ │ ├── user8-128x128.jpg
│ │ └── system
│ │ │ └── HelpfurExample.jpg
│ ├── fonts
│ │ ├── FontAwesome.otf
│ │ ├── fontawesome-webfont.eot
│ │ ├── fontawesome-webfont.ttf
│ │ ├── fontawesome-webfont.woff
│ │ ├── fontawesome-webfont.woff2
│ │ ├── glyphicons-halflings-regular.eot
│ │ ├── glyphicons-halflings-regular.ttf
│ │ ├── glyphicons-halflings-regular.woff
│ │ └── glyphicons-halflings-regular.woff2
│ ├── sounds
│ │ └── shake_sound.mp3
│ ├── styles
│ │ ├── mobile.css
│ │ ├── bootstrapValidator.min.css
│ │ ├── jquery-jvectormap-1.2.2.css
│ │ ├── style.css
│ │ ├── blue.css
│ │ ├── shaked.css
│ │ ├── skins
│ │ │ ├── skin-red.min.css
│ │ │ ├── skin-green.min.css
│ │ │ ├── skin-purple.min.css
│ │ │ ├── skin-yellow.min.css
│ │ │ ├── skin-blue.min.css
│ │ │ ├── skin-black.min.css
│ │ │ ├── skin-red-light.min.css
│ │ │ ├── skin-green-light.min.css
│ │ │ ├── skin-purple-light.min.css
│ │ │ ├── skin-yellow-light.min.css
│ │ │ ├── skin-blue-light.min.css
│ │ │ ├── skin-black-light.min.css
│ │ │ ├── skin-red.css
│ │ │ ├── skin-green.css
│ │ │ ├── skin-purple.css
│ │ │ ├── skin-yellow.css
│ │ │ ├── skin-blue.css
│ │ │ ├── skin-black.css
│ │ │ ├── skin-red-light.css
│ │ │ ├── skin-green-light.css
│ │ │ ├── skin-purple-light.css
│ │ │ ├── skin-yellow-light.css
│ │ │ ├── skin-blue-light.css
│ │ │ └── skin-black-light.css
│ │ ├── bootstrap-colorpicker.min.css
│ │ ├── bootstrap-timepicker.css
│ │ └── bootstrap-colorpicker.css
│ └── scripts
│ │ ├── html5shiv.min.js
│ │ ├── pages
│ │ ├── dashboard2.js
│ │ └── dashboard.js
│ │ ├── respond.min.js
│ │ ├── icheck.min.js
│ │ └── jquery.slimscroll.min.js
│ ├── config.json
│ ├── Hubs
│ └── BriberyHub.cs
│ ├── Controllers
│ ├── BaseController.cs
│ └── WeChatApiController.cs
│ ├── Models
│ ├── PayLog.cs
│ ├── RuleViewModel.cs
│ ├── OpenId.cs
│ ├── Activity.cs
│ ├── Bribery.cs
│ ├── User.cs
│ ├── SampleData.cs
│ └── BriberyContext.cs
│ ├── web.config
│ ├── Program.cs
│ ├── Properties
│ ├── launchSettings.json
│ └── PublishProfiles
│ │ └── Publish-publish.ps1
│ ├── WechatBribery.xproj
│ ├── project.json
│ ├── Startup.cs
│ └── Common
│ └── Wxpay.cs
├── global.json
├── NuGet.config
├── LICENSE
├── WechatBribery.sln
└── .gitignore
/README.md:
--------------------------------------------------------------------------------
1 | # WechatBribery
--------------------------------------------------------------------------------
/src/WechatBribery/Views/_ViewStart.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | Layout = "_Layout";
3 | }
4 |
--------------------------------------------------------------------------------
/global.json:
--------------------------------------------------------------------------------
1 | {
2 | "projects": [ "src", "test" ],
3 | "sdk": {
4 | "version": "1.0.0-preview2-003121"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/images/blue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yukozh/WechatBribery/HEAD/src/WechatBribery/wwwroot/images/blue.png
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/images/cry.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yukozh/WechatBribery/HEAD/src/WechatBribery/wwwroot/images/cry.jpg
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/images/main.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yukozh/WechatBribery/HEAD/src/WechatBribery/wwwroot/images/main.png
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/images/top.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yukozh/WechatBribery/HEAD/src/WechatBribery/wwwroot/images/top.jpg
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/images/avatar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yukozh/WechatBribery/HEAD/src/WechatBribery/wwwroot/images/avatar.png
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/images/bottom.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yukozh/WechatBribery/HEAD/src/WechatBribery/wwwroot/images/bottom.jpg
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/images/bottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yukozh/WechatBribery/HEAD/src/WechatBribery/wwwroot/images/bottom.png
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/images/drawn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yukozh/WechatBribery/HEAD/src/WechatBribery/wwwroot/images/drawn.png
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/images/icons.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yukozh/WechatBribery/HEAD/src/WechatBribery/wwwroot/images/icons.png
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/images/person.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yukozh/WechatBribery/HEAD/src/WechatBribery/wwwroot/images/person.png
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/images/photo1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yukozh/WechatBribery/HEAD/src/WechatBribery/wwwroot/images/photo1.png
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/images/photo2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yukozh/WechatBribery/HEAD/src/WechatBribery/wwwroot/images/photo2.png
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/images/photo3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yukozh/WechatBribery/HEAD/src/WechatBribery/wwwroot/images/photo3.jpg
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/images/photo4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yukozh/WechatBribery/HEAD/src/WechatBribery/wwwroot/images/photo4.jpg
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/images/avatar04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yukozh/WechatBribery/HEAD/src/WechatBribery/wwwroot/images/avatar04.png
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/images/avatar2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yukozh/WechatBribery/HEAD/src/WechatBribery/wwwroot/images/avatar2.png
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/images/avatar3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yukozh/WechatBribery/HEAD/src/WechatBribery/wwwroot/images/avatar3.png
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/images/avatar5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yukozh/WechatBribery/HEAD/src/WechatBribery/wwwroot/images/avatar5.png
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/images/blue@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yukozh/WechatBribery/HEAD/src/WechatBribery/wwwroot/images/blue@2x.png
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/images/boxed-bg.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yukozh/WechatBribery/HEAD/src/WechatBribery/wwwroot/images/boxed-bg.jpg
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/images/boxed-bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yukozh/WechatBribery/HEAD/src/WechatBribery/wwwroot/images/boxed-bg.png
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/images/close-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yukozh/WechatBribery/HEAD/src/WechatBribery/wwwroot/images/close-1.png
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/images/close-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yukozh/WechatBribery/HEAD/src/WechatBribery/wwwroot/images/close-2.png
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/images/drawn-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yukozh/WechatBribery/HEAD/src/WechatBribery/wwwroot/images/drawn-2.png
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/images/pending.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yukozh/WechatBribery/HEAD/src/WechatBribery/wwwroot/images/pending.png
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/images/undrawn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yukozh/WechatBribery/HEAD/src/WechatBribery/wwwroot/images/undrawn.png
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/fonts/FontAwesome.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yukozh/WechatBribery/HEAD/src/WechatBribery/wwwroot/fonts/FontAwesome.otf
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/images/credit/visa.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yukozh/WechatBribery/HEAD/src/WechatBribery/wwwroot/images/credit/visa.png
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/sounds/shake_sound.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yukozh/WechatBribery/HEAD/src/WechatBribery/wwwroot/sounds/shake_sound.mp3
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/images/credit/cirrus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yukozh/WechatBribery/HEAD/src/WechatBribery/wwwroot/images/credit/cirrus.png
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/images/credit/mestro.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yukozh/WechatBribery/HEAD/src/WechatBribery/wwwroot/images/credit/mestro.png
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/images/credit/paypal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yukozh/WechatBribery/HEAD/src/WechatBribery/wwwroot/images/credit/paypal.png
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/images/credit/paypal2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yukozh/WechatBribery/HEAD/src/WechatBribery/wwwroot/images/credit/paypal2.png
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/images/default-50x50.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yukozh/WechatBribery/HEAD/src/WechatBribery/wwwroot/images/default-50x50.gif
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/images/user1-128x128.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yukozh/WechatBribery/HEAD/src/WechatBribery/wwwroot/images/user1-128x128.jpg
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/images/user2-160x160.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yukozh/WechatBribery/HEAD/src/WechatBribery/wwwroot/images/user2-160x160.jpg
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/images/user3-128x128.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yukozh/WechatBribery/HEAD/src/WechatBribery/wwwroot/images/user3-128x128.jpg
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/images/user4-128x128.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yukozh/WechatBribery/HEAD/src/WechatBribery/wwwroot/images/user4-128x128.jpg
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/images/user5-128x128.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yukozh/WechatBribery/HEAD/src/WechatBribery/wwwroot/images/user5-128x128.jpg
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/images/user6-128x128.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yukozh/WechatBribery/HEAD/src/WechatBribery/wwwroot/images/user6-128x128.jpg
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/images/user7-128x128.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yukozh/WechatBribery/HEAD/src/WechatBribery/wwwroot/images/user7-128x128.jpg
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/images/user8-128x128.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yukozh/WechatBribery/HEAD/src/WechatBribery/wwwroot/images/user8-128x128.jpg
--------------------------------------------------------------------------------
/src/WechatBribery/Views/Shared/Prompt.cshtml:
--------------------------------------------------------------------------------
1 | @model Prompt
2 | @{
3 | ViewBag.Title = Model.Title;
4 | }
5 |
6 |
@ViewBag.Title
7 | @Model.Details
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/fonts/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yukozh/WechatBribery/HEAD/src/WechatBribery/wwwroot/fonts/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/fonts/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yukozh/WechatBribery/HEAD/src/WechatBribery/wwwroot/fonts/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/fonts/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yukozh/WechatBribery/HEAD/src/WechatBribery/wwwroot/fonts/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/images/credit/mastercard.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yukozh/WechatBribery/HEAD/src/WechatBribery/wwwroot/images/credit/mastercard.png
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/fonts/fontawesome-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yukozh/WechatBribery/HEAD/src/WechatBribery/wwwroot/fonts/fontawesome-webfont.woff2
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/images/system/HelpfurExample.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yukozh/WechatBribery/HEAD/src/WechatBribery/wwwroot/images/system/HelpfurExample.jpg
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/images/credit/american-express.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yukozh/WechatBribery/HEAD/src/WechatBribery/wwwroot/images/credit/american-express.png
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yukozh/WechatBribery/HEAD/src/WechatBribery/wwwroot/fonts/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/fonts/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yukozh/WechatBribery/HEAD/src/WechatBribery/wwwroot/fonts/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/fonts/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yukozh/WechatBribery/HEAD/src/WechatBribery/wwwroot/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/fonts/glyphicons-halflings-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yukozh/WechatBribery/HEAD/src/WechatBribery/wwwroot/fonts/glyphicons-halflings-regular.woff2
--------------------------------------------------------------------------------
/src/WechatBribery/config.json:
--------------------------------------------------------------------------------
1 | {
2 | "WeChat": {
3 | "AppId": "",
4 | "Secret": "",
5 | "MchId": "",
6 | "SignKey": "",
7 | "TransferDescription": "红包"
8 | },
9 | "Ip": ""
10 | }
11 |
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/styles/mobile.css:
--------------------------------------------------------------------------------
1 | body {
2 | margin: 0;
3 | background-image: url(../images/main.png);
4 | background-color: #fefae1;
5 | background-repeat: no-repeat;
6 | background-position: top;
7 | background-size: 100% auto;
8 | height: 100%;
9 | }
--------------------------------------------------------------------------------
/src/WechatBribery/Views/_ViewImports.cshtml:
--------------------------------------------------------------------------------
1 | @using Microsoft.AspNetCore.Html
2 | @using Microsoft.AspNetCore.Http
3 | @using WechatBribery.Models
4 | @using System.Security.Claims
5 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
6 | @inject Microsoft.AspNetCore.Identity.SmartUser User
--------------------------------------------------------------------------------
/NuGet.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/src/WechatBribery/Hubs/BriberyHub.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.AspNetCore.SignalR;
2 |
3 | namespace WechatBribery.Hubs
4 | {
5 | public class BriberyHub : Hub
6 | {
7 | public void Join(string name)
8 | {
9 | Groups.Add(Context.ConnectionId, name);
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/src/WechatBribery/Controllers/BaseController.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.AspNetCore.Mvc;
2 | using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
3 | using WechatBribery.Models;
4 |
5 | namespace WechatBribery.Controllers
6 | {
7 | public class BaseController : BaseController
8 | {
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/src/WechatBribery/Models/PayLog.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.ComponentModel.DataAnnotations.Schema;
3 |
4 | namespace WechatBribery.Models
5 | {
6 | public class PayLog
7 | {
8 | public Guid Id { get; set; }
9 |
10 | [ForeignKey("User")]
11 | public string UserId { get; set; }
12 |
13 | public virtual User User { get; set; }
14 |
15 | public double Price { get; set; }
16 |
17 | public double Current { get; set; }
18 |
19 | public DateTime Time { get; set; }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/WechatBribery/Views/Account/Charge.cshtml:
--------------------------------------------------------------------------------
1 | @model User
2 | @{
3 | ViewBag.Title = "商户充值 - " + Model.UserName;
4 | }
5 |
6 | @ViewBag.Title
7 |
8 |
--------------------------------------------------------------------------------
/src/WechatBribery/Views/Account/ResetPwd.cshtml:
--------------------------------------------------------------------------------
1 | @model User
2 | @{
3 | ViewBag.Title = "重置密码 - " + Model.UserName;
4 | }
5 |
6 | @ViewBag.Title
7 |
8 |
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/styles/bootstrapValidator.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * BootstrapValidator (http://bootstrapvalidator.com)
3 | * The best jQuery plugin to validate form fields. Designed to use with Bootstrap 3
4 | *
5 | * @version v0.5.1-dev, built on 2014-07-23 6:05:15 AM
6 | * @author https://twitter.com/nghuuphuoc
7 | * @copyright (c) 2013 - 2014 Nguyen Huu Phuoc
8 | * @license MIT
9 | */
10 |
11 | .bv-form .help-block{margin-bottom:0}.bv-form .tooltip-inner{text-align:left}.nav-tabs li.bv-tab-success>a{color:#3c763d}.nav-tabs li.bv-tab-error>a{color:#a94442}
--------------------------------------------------------------------------------
/src/WechatBribery/Models/RuleViewModel.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Threading.Tasks;
5 |
6 | namespace WechatBribery.Models
7 | {
8 | public class RuleViewModel
9 | {
10 | ///
11 | /// 以分为单位
12 | ///
13 | public int From { get; set; }
14 |
15 | ///
16 | /// 以分为单位
17 | ///
18 | public int To { get; set; }
19 |
20 | public double Ratio { get; set; }
21 |
22 | public long Count { get; set; }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/src/WechatBribery/web.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/src/WechatBribery/Models/OpenId.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.ComponentModel.DataAnnotations;
3 |
4 | namespace WechatBribery.Models
5 | {
6 | public class OpenIdViewModel
7 | {
8 | [MaxLength(128)]
9 | public string Id { get; set; }
10 |
11 | public string AccessToken { get; set; }
12 |
13 | public string RefreshToken { get; set; }
14 |
15 | public DateTime AccessTokenExpire { get; set; }
16 |
17 | public DateTime RefreshTokenExpire { get; set; }
18 |
19 | public string NickName { get; set; }
20 |
21 | public string AvatarUrl { get; set; }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/WechatBribery/Views/Shared/Exceeded.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | Layout = null;
3 | }
4 |
5 |
6 |
7 |
8 | 摇一摇抽红包
9 |
10 |
11 |
12 |
13 |
14 | 
15 | 今天您已经抢到@(WechatBribery.Startup.Config["MaxPerDay"])个红包了,把好运留给别人吧!
16 |
17 |
--------------------------------------------------------------------------------
/src/WechatBribery/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Linq;
5 | using System.Threading.Tasks;
6 | using Microsoft.AspNetCore.Hosting;
7 |
8 | namespace WechatBribery
9 | {
10 | public class Program
11 | {
12 | public static void Main(string[] args)
13 | {
14 | var host = new WebHostBuilder()
15 | .UseKestrel()
16 | .UseUrls("http://*:80")
17 | .UseContentRoot(Directory.GetCurrentDirectory())
18 | .UseIISIntegration()
19 | .UseStartup()
20 | .Build();
21 |
22 | host.Run();
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/WechatBribery/Properties/launchSettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "iisSettings": {
3 | "windowsAuthentication": false,
4 | "anonymousAuthentication": true,
5 | "iisExpress": {
6 | "applicationUrl": "http://localhost:43677/",
7 | "sslPort": 0
8 | }
9 | },
10 | "profiles": {
11 | "IIS Express": {
12 | "commandName": "IISExpress",
13 | "launchBrowser": true,
14 | "environmentVariables": {
15 | "ASPNETCORE_ENVIRONMENT": "Development"
16 | }
17 | },
18 | "WechatBribery": {
19 | "commandName": "Project",
20 | "launchBrowser": true,
21 | "launchUrl": "http://localhost",
22 | "environmentVariables": {
23 | "ASPNETCORE_ENVIRONMENT": "Development"
24 | }
25 | }
26 | }
27 | }
--------------------------------------------------------------------------------
/src/WechatBribery/Models/Activity.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.ComponentModel.DataAnnotations.Schema;
3 |
4 | namespace WechatBribery.Models
5 | {
6 | public class Activity
7 | {
8 | public Guid Id { get; set; }
9 |
10 | public string Title { get; set; }
11 |
12 | public string RuleJson { get; set; }
13 |
14 | public DateTime Begin { get; set; }
15 |
16 | public DateTime? End { get; set; }
17 |
18 | public double Ratio { get; set; }
19 |
20 | public long BriberiesCount { get; set; }
21 |
22 | public long Price { get; set; }
23 |
24 | public long Attend { get; set; }
25 |
26 | [ForeignKey("Owner")]
27 | public string OwnerId { get; set; }
28 |
29 | public virtual User Owner { get; set; }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/src/WechatBribery/Models/Bribery.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Threading.Tasks;
5 |
6 | namespace WechatBribery.Models
7 | {
8 | public class Bribery
9 | {
10 | public Guid Id { get; set; }
11 |
12 | public Guid ActivityId { get; set; }
13 |
14 | public virtual Activity Activity { get; set; }
15 |
16 | ///
17 | /// 领取时间
18 | ///
19 | public DateTime? ReceivedTime { get; set; }
20 |
21 | ///
22 | /// 以分为单位
23 | ///
24 | public long Price { get; set; }
25 |
26 | public string OpenId { get; set; }
27 |
28 | public string AvatarUrl { get; set; }
29 |
30 | public string NickName { get; set; }
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/src/WechatBribery/Models/User.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.ComponentModel.DataAnnotations;
3 | using System.ComponentModel.DataAnnotations.Schema;
4 | using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
5 | using Pomelo.AspNetCore.Extensions.BlobStorage.Models;
6 |
7 | namespace WechatBribery.Models
8 | {
9 | public class User : IdentityUser
10 | {
11 | public double Balance { get; set; }
12 |
13 | [ForeignKey("TopPicture")]
14 | public Guid? TopPictureId { get; set; }
15 |
16 | public virtual Blob TopPicture { get; set; }
17 |
18 | [ForeignKey("BottomPicture")]
19 | public Guid? BottomPictureId { get; set; }
20 |
21 | public virtual Blob BottomPicture { get; set; }
22 |
23 | [MaxLength(256)]
24 | public string ActivityURL { get; set; }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/WechatBribery/Views/Account/Password.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | ViewBag.Title = "修改密码";
3 | }
4 |
5 | @ViewBag.Title
6 |
7 |
--------------------------------------------------------------------------------
/src/WechatBribery/Properties/PublishProfiles/Publish-publish.ps1:
--------------------------------------------------------------------------------
1 | [cmdletbinding(SupportsShouldProcess=$true)]
2 | param($publishProperties=@{}, $packOutput, $pubProfilePath)
3 |
4 | # to learn more about this file visit https://go.microsoft.com/fwlink/?LinkId=524327
5 |
6 | try{
7 | if ($publishProperties['ProjectGuid'] -eq $null){
8 | $publishProperties['ProjectGuid'] = '4c144181-5d5b-4722-bfbe-30633e19b287'
9 | }
10 |
11 | $publishModulePath = Join-Path (Split-Path $MyInvocation.MyCommand.Path) 'publish-module.psm1'
12 | Import-Module $publishModulePath -DisableNameChecking -Force
13 |
14 | # call Publish-AspNet to perform the publish operation
15 | Publish-AspNet -publishProperties $publishProperties -packOutput $packOutput -pubProfilePath $pubProfilePath
16 | }
17 | catch{
18 | "An error occurred during publish.`n{0}" -f $_.Exception.Message | Write-Error
19 | }
--------------------------------------------------------------------------------
/src/WechatBribery/Views/Home/Index.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | ViewBag.Title = "后台首页";
3 | }
4 |
5 | @ViewBag.Title
6 |
7 |
--------------------------------------------------------------------------------
/src/WechatBribery/Views/Account/Index.cshtml:
--------------------------------------------------------------------------------
1 | @model IEnumerable
2 | @{
3 | ViewBag.Title = "用户列表";
4 | }
5 | @ViewBag.Title
6 |
7 |
8 |
9 | | 用户名 |
10 | 角色 |
11 | 余额 |
12 | 操作 |
13 |
14 |
15 |
16 | @foreach(var x in Model)
17 | {
18 |
19 | | @x.UserName |
20 | @((await User.Manager.GetRolesAsync(x)).First() == "Root" ? "管理员" : "普通商户") |
21 | ¥@(x.Balance.ToString("0.00")) |
22 |
23 | 充值
24 | 修改密码
25 | |
26 |
27 | }
28 |
29 |
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/styles/jquery-jvectormap-1.2.2.css:
--------------------------------------------------------------------------------
1 | .jvectormap-label {
2 | position: absolute;
3 | display: none;
4 | border: solid 1px #CDCDCD;
5 | -webkit-border-radius: 3px;
6 | -moz-border-radius: 3px;
7 | border-radius: 3px;
8 | background: #292929;
9 | color: white;
10 | font-size: 10px!important;
11 | padding: 3px;
12 | z-index: 9999;
13 | }
14 |
15 | .jvectormap-zoomin, .jvectormap-zoomout {
16 | position: absolute;
17 | top: 100%;
18 | margin-top: -25px;
19 | -webkit-border-radius: 2px;
20 | -moz-border-radius: 2px;
21 | border-radius: 2px;
22 | background: #d2d6de;//rgba(0,0,0,0.4);
23 | padding: 5px;
24 | color: #444;
25 | cursor: pointer;
26 | line-height: 10px;
27 | text-align: center;
28 | font-weight: bold;
29 | box-shadow: 0 1px 2px rgba(0,0,0,0.2);
30 | }
31 |
32 | .jvectormap-zoomin {
33 | left: 100%;
34 | margin-left: -50px;
35 | }
36 |
37 | .jvectormap-zoomout {
38 | left: 100%;
39 | margin-left: -30px;
40 | }
--------------------------------------------------------------------------------
/src/WechatBribery/Models/SampleData.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Threading.Tasks;
3 | using Microsoft.AspNetCore.Identity;
4 | using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
5 | using Microsoft.Extensions.DependencyInjection;
6 |
7 | namespace WechatBribery.Models
8 | {
9 | public static class SampleData
10 | {
11 | public static async Task InitDB(IServiceProvider services)
12 | {
13 | var DB = services.GetRequiredService();
14 | var UserManager = services.GetRequiredService>();
15 | var RoleManager = services.GetRequiredService>();
16 | DB.Database.EnsureCreated();
17 | await RoleManager.CreateAsync(new IdentityRole("Root"));
18 | await RoleManager.CreateAsync(new IdentityRole("Member"));
19 | var user = new User { UserName = "admin", Balance = 10000.00 };
20 | await UserManager.CreateAsync(user, "123456");
21 | await UserManager.AddToRoleAsync(user, "Root");
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/src/WechatBribery/Views/Account/Profile.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | ViewBag.Title = "修改商户信息";
3 | }
4 |
5 | @ViewBag.Title
6 |
7 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2016 あまみや ゆうこ
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/src/WechatBribery/Views/Account/Create.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | ViewBag.Title = "创建用户";
3 | }
4 |
5 |
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/styles/style.css:
--------------------------------------------------------------------------------
1 | .row-title
2 | {
3 | width: 120px;
4 | background-color: #eee;
5 | font-weight: bold;
6 | }
7 |
8 | .detail-table {
9 | background-color: #fff;
10 | }
11 |
12 | .table td {
13 | border-color: #ccc!important;
14 | }
15 |
16 | .post-nav {
17 | padding: 0;
18 | }
19 |
20 | .post-nav-page {
21 | display: block;
22 | float: left;
23 | background: #ececec;
24 | line-height: 30px;
25 | width: 29px;
26 | margin-right: 1px;
27 | text-align: center;
28 | font-size: .8em;
29 | -webkit-transition: background-color .2s linear;
30 | transition: background-color .2s linear;
31 | }
32 |
33 | .post-nav-page:hover {
34 | background: #e7e7e7!important;
35 | }
36 |
37 | .post-nav-page a, .post-nav-page a:active, .post-nav-page a:hover, .post-nav-page a:visited {
38 | color: #222;
39 | text-decoration: none;
40 | }
41 |
42 | .post-nav-page-current {
43 | background: #323232 !important;
44 | }
45 |
46 | .post-nav-page-current a {
47 | color: #fff !important;
48 | }
49 |
50 | .post-nav-page-current:hover {
51 | background: #636363 !important;
52 | }
53 |
54 | .post-nav-page-current:hover a {
55 | color: #fff!important;
56 | }
--------------------------------------------------------------------------------
/src/WechatBribery/WechatBribery.xproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 14.0
5 | $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
6 |
7 |
8 |
9 |
10 | 4c144181-5d5b-4722-bfbe-30633e19b287
11 | WechatBribery
12 | .\obj
13 | .\bin\
14 | v4.5.2
15 |
16 |
17 |
18 | 2.0
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/src/WechatBribery/Controllers/WeChatApiController.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Linq;
3 | using System.Threading.Tasks;
4 | using Microsoft.AspNetCore.Http;
5 | using Microsoft.AspNetCore.Mvc;
6 | using Microsoft.AspNetCore.SignalR;
7 | using WechatBribery.Hubs;
8 | using static WechatBribery.Common.Wxpay;
9 |
10 | namespace WechatBribery.Controllers
11 | {
12 | public class WeChatApiController : BaseController
13 | {
14 | [Route("[controller]/ExchangeCode/{owner}")]
15 | public async Task ExchangeCode(string code, string state, string owner, [FromServices] IHubContext Hub)
16 | {
17 | try
18 | {
19 | var oid = await AuthorizeAsync(code);
20 | HttpContext.Session.SetString("OpenId", oid.Id);
21 | HttpContext.Session.SetString("AccessToken", oid.AccessToken);
22 | HttpContext.Session.SetString("Expire", oid.AccessTokenExpire.ToString());
23 | HttpContext.Session.SetString("Nickname", oid.NickName);
24 | HttpContext.Session.SetString("AvatarUrl", oid.AvatarUrl);
25 | return RedirectToAction("Index", "WeChat", new { id = owner });
26 | }
27 | catch
28 | {
29 | return RedirectToAction("Index", "WeChat", new { id = owner });
30 | }
31 | }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/src/WechatBribery/Views/WeChat/History.cshtml:
--------------------------------------------------------------------------------
1 | @model IEnumerable
2 | @{
3 | Layout = null;
4 | }
5 |
6 |
7 |
8 |
9 | 摇一摇抽红包
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | @foreach(var x in Model)
18 | {
19 |
20 |
21 |  |
22 | @x.NickName
23 | @x.Time
24 | |
25 | ¥@((x.Price / 100.0).ToString("0.00")) |
26 |
27 | }
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/WechatBribery.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 14
4 | VisualStudioVersion = 14.0.25420.1
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{77800E57-8703-46C3-89B3-09716FD37A10}"
7 | EndProject
8 | Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{15683B52-D1BB-47A4-BD7E-B749A6FF402B}"
9 | ProjectSection(SolutionItems) = preProject
10 | global.json = global.json
11 | NuGet.config = NuGet.config
12 | EndProjectSection
13 | EndProject
14 | Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "WechatBribery", "src\WechatBribery\WechatBribery.xproj", "{4C144181-5D5B-4722-BFBE-30633E19B287}"
15 | EndProject
16 | Global
17 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
18 | Debug|Any CPU = Debug|Any CPU
19 | Release|Any CPU = Release|Any CPU
20 | EndGlobalSection
21 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
22 | {4C144181-5D5B-4722-BFBE-30633E19B287}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
23 | {4C144181-5D5B-4722-BFBE-30633E19B287}.Debug|Any CPU.Build.0 = Debug|Any CPU
24 | {4C144181-5D5B-4722-BFBE-30633E19B287}.Release|Any CPU.ActiveCfg = Release|Any CPU
25 | {4C144181-5D5B-4722-BFBE-30633E19B287}.Release|Any CPU.Build.0 = Release|Any CPU
26 | EndGlobalSection
27 | GlobalSection(SolutionProperties) = preSolution
28 | HideSolutionNode = FALSE
29 | EndGlobalSection
30 | GlobalSection(NestedProjects) = preSolution
31 | {4C144181-5D5B-4722-BFBE-30633E19B287} = {77800E57-8703-46C3-89B3-09716FD37A10}
32 | EndGlobalSection
33 | EndGlobal
34 |
--------------------------------------------------------------------------------
/src/WechatBribery/Models/BriberyContext.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.EntityFrameworkCore;
2 | using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
3 | using Npgsql.EntityFrameworkCore.PostgreSQL;
4 | using Pomelo.AspNetCore.Extensions.BlobStorage.Models;
5 |
6 | namespace WechatBribery.Models
7 | {
8 | public class BriberyContext : IdentityDbContext, IBlobStorageDbContext
9 | {
10 | public BriberyContext(DbContextOptions opt)
11 | : base(opt)
12 | {
13 | }
14 |
15 | public DbSet PayLogs { get; set; }
16 |
17 | public DbSet Blobs { get; set; }
18 |
19 | public DbSet Briberies { get; set; }
20 |
21 | public DbSet Activities { get; set; }
22 |
23 | protected override void OnModelCreating(ModelBuilder builder)
24 | {
25 | base.OnModelCreating(builder);
26 |
27 | builder.HasPostgresExtension("uuid-ossp");
28 |
29 | builder.Entity(e =>
30 | {
31 | e.HasIndex(x => x.ReceivedTime);
32 | e.HasIndex(x => x.Price);
33 | });
34 |
35 | builder.Entity(e =>
36 | {
37 | e.HasIndex(x => x.Price);
38 | e.HasIndex(x => x.Time);
39 | });
40 |
41 | builder.Entity(e =>
42 | {
43 | e.HasIndex(x => x.Price);
44 | e.HasIndex(x => x.Begin);
45 | e.HasIndex(x => x.End);
46 | });
47 |
48 | builder.Entity(e =>
49 | {
50 | e.HasIndex(x => x.ReceivedTime);
51 | });
52 | }
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/src/WechatBribery/Views/Home/History.cshtml:
--------------------------------------------------------------------------------
1 | @model IEnumerable
2 | @{
3 | ViewBag.Title = "历史活动";
4 | }
5 |
6 | @ViewBag.Title
7 |
8 |
9 |
10 |
11 | | 活动名称 |
12 | @if (User.IsInRole("Root"))
13 | {
14 | 创建者 |
15 | }
16 | 状态 |
17 | 开始时间 |
18 | 结束时间 |
19 | 总金额 |
20 | 红包数 |
21 | 中奖率 |
22 | 操作 |
23 |
24 |
25 |
26 | @foreach(var x in Model)
27 | {
28 |
29 | | @x.Title |
30 | @if (x.End.HasValue)
31 | {
32 | 已经结束 |
33 | }
34 | else
35 | {
36 | 正在进行 |
37 | }
38 | @if (User.IsInRole("Root"))
39 | {
40 | @x.Owner.UserName |
41 | }
42 | @x.Begin |
43 | @x.End |
44 | ¥@((x.Price / 100.0).ToString("0.00")) |
45 | @x.BriberiesCount |
46 | @((x.Ratio * 100).ToString("0.00"))% |
47 |
48 | 查看详情
49 | 导出报表
50 | |
51 |
52 | }
53 |
54 |
55 | @Html.Paging("post-nav-page", "post-nav-page-current", "post-nav", null, new[] { "raw" })
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/styles/blue.css:
--------------------------------------------------------------------------------
1 | /* iCheck plugin Square skin, blue
2 | ----------------------------------- */
3 | .icheckbox_square-blue,
4 | .iradio_square-blue {
5 | display: inline-block;
6 | *display: inline;
7 | vertical-align: middle;
8 | margin: 0;
9 | padding: 0;
10 | width: 22px;
11 | height: 22px;
12 | background: url(/img/blue.png) no-repeat;
13 | border: none;
14 | cursor: pointer;
15 | }
16 |
17 | .icheckbox_square-blue {
18 | background-position: 0 0;
19 | }
20 | .icheckbox_square-blue.hover {
21 | background-position: -24px 0;
22 | }
23 | .icheckbox_square-blue.checked {
24 | background-position: -48px 0;
25 | }
26 | .icheckbox_square-blue.disabled {
27 | background-position: -72px 0;
28 | cursor: default;
29 | }
30 | .icheckbox_square-blue.checked.disabled {
31 | background-position: -96px 0;
32 | }
33 |
34 | .iradio_square-blue {
35 | background-position: -120px 0;
36 | }
37 | .iradio_square-blue.hover {
38 | background-position: -144px 0;
39 | }
40 | .iradio_square-blue.checked {
41 | background-position: -168px 0;
42 | }
43 | .iradio_square-blue.disabled {
44 | background-position: -192px 0;
45 | cursor: default;
46 | }
47 | .iradio_square-blue.checked.disabled {
48 | background-position: -216px 0;
49 | }
50 |
51 | /* Retina support */
52 | @media only screen and (-webkit-min-device-pixel-ratio: 1.5),
53 | only screen and (-moz-min-device-pixel-ratio: 1.5),
54 | only screen and (-o-min-device-pixel-ratio: 3/2),
55 | only screen and (min-device-pixel-ratio: 1.5) {
56 | .icheckbox_square-blue,
57 | .iradio_square-blue {
58 | background-image: url(/img/blue@2x.png);
59 | -webkit-background-size: 240px 24px;
60 | background-size: 240px 24px;
61 | }
62 | }
--------------------------------------------------------------------------------
/src/WechatBribery/Views/Shared/Bribery.cshtml:
--------------------------------------------------------------------------------
1 | @model Bribery
2 | @{
3 | Layout = null;
4 | }
5 |
6 |
7 |
8 |
9 | 摇一摇抽红包
10 |
11 |
12 |
13 |
14 |
33 |
34 |
35 |
36 | ¥@((Model.Price / 100.0).ToString("0.00"))
37 | 再来一次
38 |
49 |
50 |
--------------------------------------------------------------------------------
/src/WechatBribery/Views/WeChat/Bribery.cshtml:
--------------------------------------------------------------------------------
1 | @model Bribery
2 | @{
3 | Layout = null;
4 | }
5 |
6 |
7 |
8 |
9 | 摇一摇抽红包
10 |
11 |
12 |
13 |
14 |
33 |
34 |
35 |
36 | ¥@((Model.Price / 100.0).ToString("0.00"))
37 | 再来一次
38 |
49 |
50 |
--------------------------------------------------------------------------------
/src/WechatBribery/project.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "Microsoft.AspNetCore.Diagnostics": "1.0.0",
4 | "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
5 | "Microsoft.AspNetCore.Server.Kestrel": "1.0.0",
6 | "Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.0.0",
7 | "Microsoft.AspNetCore.Mvc": "1.0.0",
8 | "Microsoft.AspNetCore.Mvc.TagHelpers": "1.0.0",
9 | "Microsoft.AspNetCore.SignalR.Server": "0.1.0",
10 | "Microsoft.AspNetCore.StaticFiles": "1.0.0",
11 | "Microsoft.AspNetCore.Session": "1.0.0",
12 | "Microsoft.Extensions.Logging.Console": "1.0.0",
13 | "Pomelo.EntityFrameworkCore.MySql": "1.0.0",
14 | "Npgsql.EntityFrameworkCore.PostgreSQL": "1.0.0",
15 | "Pomelo.AspNetCore.Extensions": "1.0.0",
16 | "Pomelo.AspNetCore.TimedJob": "1.0.0",
17 | "Pomelo.Data.Excel": "1.0.0"
18 | },
19 |
20 | "tools": {
21 | "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final"
22 | },
23 |
24 | "frameworks": {
25 | "netcoreapp1.0": {
26 | "dependencies": {
27 | "Microsoft.NETCore.App": {
28 | "version": "1.0.0",
29 | "type": "platform"
30 | },
31 | "System.Security.Cryptography.Algorithms": "4.2.0"
32 | },
33 | "imports": [
34 | "dotnet5.6",
35 | "portable-net45+win8"
36 | ]
37 | }
38 | },
39 |
40 | "buildOptions": {
41 | "emitEntryPoint": true,
42 | "preserveCompilationContext": true
43 | },
44 |
45 | "runtimeOptions": {
46 | "configProperties": {
47 | "System.GC.Server": true
48 | }
49 | },
50 |
51 | "publishOptions": {
52 | "include": [
53 | "wwwroot",
54 | "Views",
55 | "web.config",
56 | "config.json",
57 | "apiclient_cert.p12"
58 | ]
59 | },
60 |
61 | "scripts": {
62 | "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
63 | }
64 | }
65 |
--------------------------------------------------------------------------------
/src/WechatBribery/Startup.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.AspNetCore.Builder;
2 | using Microsoft.AspNetCore.Hosting;
3 | using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
4 | using Microsoft.Extensions.Configuration;
5 | using Microsoft.Extensions.DependencyInjection;
6 | using Microsoft.Extensions.Logging;
7 | using Microsoft.EntityFrameworkCore;
8 | using WechatBribery.Models;
9 |
10 | namespace WechatBribery
11 | {
12 | public class Startup
13 | {
14 | public static IConfiguration Config;
15 |
16 | public void ConfigureServices(IServiceCollection services)
17 | {
18 | services.AddMvc();
19 | services.AddSignalR();
20 | services.AddLogging();
21 | services.AddConfiguration(out Config);
22 | services.AddSmartCookies();
23 | services.AddSmartUser();
24 | services.AddMemoryCache();
25 | services.AddSession(o =>
26 | {
27 | o.IdleTimeout = new System.TimeSpan(0, 20, 0);
28 | });
29 |
30 | services.AddDbContext(x => x.UseNpgsql(Config["Conn"]));
31 |
32 | services.AddIdentity(x =>
33 | {
34 | x.Password.RequireDigit = false;
35 | x.Password.RequiredLength = 0;
36 | x.Password.RequireLowercase = false;
37 | x.Password.RequireNonAlphanumeric = false;
38 | x.Password.RequireUppercase = false;
39 | x.User.AllowedUserNameCharacters = null;
40 | })
41 | .AddDefaultTokenProviders()
42 | .AddEntityFrameworkStores();
43 | }
44 |
45 | public async void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
46 | {
47 | loggerFactory.AddConsole(LogLevel.Error, true);
48 | app.UseSession();
49 | app.UseSignalR();
50 | app.UseIdentity();
51 | app.UseDeveloperExceptionPage();
52 | app.UseBlobStorage();
53 | app.UseMvcWithDefaultRoute();
54 | app.UseStaticFiles();
55 |
56 | await SampleData.InitDB(app.ApplicationServices);
57 | }
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/styles/shaked.css:
--------------------------------------------------------------------------------
1 | *{padding:0;margin:0;-webkit-tap-highlight-color:rgba(0,0,0,0);text-decoration:none;}
2 | .zhezhaoceng{width:100%;height:100%;background:rgba(52, 52, 52, 0.8);position:absolute;z-index:9998}
3 | .shakTop {
4 | background:url(../images/top.jpg) no-repeat;background-size:100% 100%;
5 | position : absolute;
6 | width : 100%;
7 | height: 50%;
8 | }
9 | .shakBottom {
10 | background:url(../images/bottom.jpg) no-repeat;background-size:100% 100%;
11 | position : absolute;
12 | width : 100%;
13 | height: 50%;
14 | }
15 | .shakTop {top : 0;}
16 | .shakBottom {bottom : 0;}
17 |
18 | .shakTop span,.shakBottom span{
19 |
20 | }
21 | .shakTop span{bottom : 0;}
22 | .shakBottom span{
23 |
24 | top : 0;
25 | }
26 |
27 | .shake_box_focus .shakTop{
28 | animation : shakTop 1s 1 linear;
29 | -moz-animation : shakTop 1s 1 linear;
30 | -webkit-animation: shakTop 1s 1 linear;
31 | -ms-animation : shakTop 1s 1 linear;
32 | -o-animation : shakTop 1s 1 linear;
33 | }
34 | .shake_box_focus .shakBottom{
35 | animation : shakBottom 1s 1 linear;
36 | -moz-animation : shakBottom 1s 1 linear;
37 | -webkit-animation: shakBottom 1s 1 linear;
38 | -ms-animation : shakBottom 1s 1 linear;
39 | -o-animation : shakBottom 1s 1 linear;
40 | }
41 |
42 | /* 向上拉动画效果 */
43 | @-webkit-keyframes shakTop {
44 | 0% {top: 0;}
45 | 50% {top: -200px;}
46 | 100% {top: 0;}
47 | }
48 | @-moz-keyframes shakTop {
49 | 0% {top: 0;}
50 | 50% {top: -200px;}
51 | 100% {top: 0;}
52 | }
53 | @-ms-keyframes shakTop {
54 | 0% {top: 0;}
55 | 50% {top: -200px;}
56 | 100% {top: 0;}
57 | }
58 | @-o-keyframes shakTop {
59 | 0% {top: 0;}
60 | 50% {top: -200px;}
61 | 100% {top: 0;}
62 | }
63 |
64 | /* 向下拉动画效果 */
65 | @-webkit-keyframes shakBottom {
66 | 0% {bottom: 0;}
67 | 50% {bottom: -200px;}
68 | 100% {bottom: 0;}
69 | }
70 | @-moz-keyframes shakBottom {
71 | 0% {bottom: 0;}
72 | 50% {bottom: -200px;}
73 | 100% {bottom: 0;}
74 | }
75 | @-ms-keyframes shakBottom {
76 | 0% {bottom: 0;}
77 | 50% {bottom: -200px;}
78 | 100% {bottom: 0;}
79 | }
80 | @-o-keyframes shakBottom {
81 | 0% {bottom: 0;}
82 | 50% {bottom: -200px;}
83 | 100% {bottom: 0;}
84 | }
85 |
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/scripts/html5shiv.min.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @preserve HTML5 Shiv 3.7.3 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
3 | */
4 | !function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=t.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=t.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),t.elements=c+" "+a,j(b)}function f(a){var b=s[a[q]];return b||(b={},r++,a[q]=r,s[r]=b),b}function g(a,c,d){if(c||(c=b),l)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():p.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||o.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),l)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return t.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(t,b.frag)}function j(a){a||(a=b);var d=f(a);return!t.shivCSS||k||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),l||i(a,d),a}var k,l,m="3.7.3",n=a.html5||{},o=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,p=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,q="_html5shiv",r=0,s={};!function(){try{var a=b.createElement("a");a.innerHTML="",k="hidden"in a,l=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){k=!0,l=!0}}();var t={elements:n.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:m,shivCSS:n.shivCSS!==!1,supportsUnknownElements:l,shivMethods:n.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=t,j(b),"object"==typeof module&&module.exports&&(module.exports=t)}("undefined"!=typeof window?window:this,document);
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/styles/skins/skin-red.min.css:
--------------------------------------------------------------------------------
1 | .skin-red .main-header .navbar{background-color:#dd4b39}.skin-red .main-header .navbar .nav>li>a{color:#fff}.skin-red .main-header .navbar .nav>li>a:hover,.skin-red .main-header .navbar .nav>li>a:active,.skin-red .main-header .navbar .nav>li>a:focus,.skin-red .main-header .navbar .nav .open>a,.skin-red .main-header .navbar .nav .open>a:hover,.skin-red .main-header .navbar .nav .open>a:focus,.skin-red .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-red .main-header .navbar .sidebar-toggle{color:#fff}.skin-red .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-red .main-header .navbar .sidebar-toggle{color:#fff}.skin-red .main-header .navbar .sidebar-toggle:hover{background-color:#d73925}@media (max-width:767px){.skin-red .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-red .main-header .navbar .dropdown-menu li a{color:#fff}.skin-red .main-header .navbar .dropdown-menu li a:hover{background:#d73925}}.skin-red .main-header .logo{background-color:#d73925;color:#fff;border-bottom:0 solid transparent}.skin-red .main-header .logo:hover{background-color:#d33724}.skin-red .main-header li.user-header{background-color:#dd4b39}.skin-red .content-header{background:transparent}.skin-red .wrapper,.skin-red .main-sidebar,.skin-red .left-side{background-color:#222d32}.skin-red .user-panel>.info,.skin-red .user-panel>.info>a{color:#fff}.skin-red .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-red .sidebar-menu>li>a{border-left:3px solid transparent}.skin-red .sidebar-menu>li:hover>a,.skin-red .sidebar-menu>li.active>a{color:#fff;background:#1e282c;border-left-color:#dd4b39}.skin-red .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-red .sidebar a{color:#b8c7ce}.skin-red .sidebar a:hover{text-decoration:none}.skin-red .treeview-menu>li>a{color:#8aa4af}.skin-red .treeview-menu>li.active>a,.skin-red .treeview-menu>li>a:hover{color:#fff}.skin-red .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px 10px}.skin-red .sidebar-form input[type="text"],.skin-red .sidebar-form .btn{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px;-webkit-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.skin-red .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-red .sidebar-form input[type="text"]:focus,.skin-red .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-red .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-red .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/styles/skins/skin-green.min.css:
--------------------------------------------------------------------------------
1 | .skin-green .main-header .navbar{background-color:#00a65a}.skin-green .main-header .navbar .nav>li>a{color:#fff}.skin-green .main-header .navbar .nav>li>a:hover,.skin-green .main-header .navbar .nav>li>a:active,.skin-green .main-header .navbar .nav>li>a:focus,.skin-green .main-header .navbar .nav .open>a,.skin-green .main-header .navbar .nav .open>a:hover,.skin-green .main-header .navbar .nav .open>a:focus,.skin-green .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-green .main-header .navbar .sidebar-toggle{color:#fff}.skin-green .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-green .main-header .navbar .sidebar-toggle{color:#fff}.skin-green .main-header .navbar .sidebar-toggle:hover{background-color:#008d4c}@media (max-width:767px){.skin-green .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-green .main-header .navbar .dropdown-menu li a{color:#fff}.skin-green .main-header .navbar .dropdown-menu li a:hover{background:#008d4c}}.skin-green .main-header .logo{background-color:#008d4c;color:#fff;border-bottom:0 solid transparent}.skin-green .main-header .logo:hover{background-color:#008749}.skin-green .main-header li.user-header{background-color:#00a65a}.skin-green .content-header{background:transparent}.skin-green .wrapper,.skin-green .main-sidebar,.skin-green .left-side{background-color:#222d32}.skin-green .user-panel>.info,.skin-green .user-panel>.info>a{color:#fff}.skin-green .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-green .sidebar-menu>li>a{border-left:3px solid transparent}.skin-green .sidebar-menu>li:hover>a,.skin-green .sidebar-menu>li.active>a{color:#fff;background:#1e282c;border-left-color:#00a65a}.skin-green .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-green .sidebar a{color:#b8c7ce}.skin-green .sidebar a:hover{text-decoration:none}.skin-green .treeview-menu>li>a{color:#8aa4af}.skin-green .treeview-menu>li.active>a,.skin-green .treeview-menu>li>a:hover{color:#fff}.skin-green .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px 10px}.skin-green .sidebar-form input[type="text"],.skin-green .sidebar-form .btn{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px;-webkit-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.skin-green .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-green .sidebar-form input[type="text"]:focus,.skin-green .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-green .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-green .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/styles/skins/skin-purple.min.css:
--------------------------------------------------------------------------------
1 | .skin-purple .main-header .navbar{background-color:#605ca8}.skin-purple .main-header .navbar .nav>li>a{color:#fff}.skin-purple .main-header .navbar .nav>li>a:hover,.skin-purple .main-header .navbar .nav>li>a:active,.skin-purple .main-header .navbar .nav>li>a:focus,.skin-purple .main-header .navbar .nav .open>a,.skin-purple .main-header .navbar .nav .open>a:hover,.skin-purple .main-header .navbar .nav .open>a:focus,.skin-purple .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-purple .main-header .navbar .sidebar-toggle{color:#fff}.skin-purple .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-purple .main-header .navbar .sidebar-toggle{color:#fff}.skin-purple .main-header .navbar .sidebar-toggle:hover{background-color:#555299}@media (max-width:767px){.skin-purple .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-purple .main-header .navbar .dropdown-menu li a{color:#fff}.skin-purple .main-header .navbar .dropdown-menu li a:hover{background:#555299}}.skin-purple .main-header .logo{background-color:#555299;color:#fff;border-bottom:0 solid transparent}.skin-purple .main-header .logo:hover{background-color:#545096}.skin-purple .main-header li.user-header{background-color:#605ca8}.skin-purple .content-header{background:transparent}.skin-purple .wrapper,.skin-purple .main-sidebar,.skin-purple .left-side{background-color:#222d32}.skin-purple .user-panel>.info,.skin-purple .user-panel>.info>a{color:#fff}.skin-purple .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-purple .sidebar-menu>li>a{border-left:3px solid transparent}.skin-purple .sidebar-menu>li:hover>a,.skin-purple .sidebar-menu>li.active>a{color:#fff;background:#1e282c;border-left-color:#605ca8}.skin-purple .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-purple .sidebar a{color:#b8c7ce}.skin-purple .sidebar a:hover{text-decoration:none}.skin-purple .treeview-menu>li>a{color:#8aa4af}.skin-purple .treeview-menu>li.active>a,.skin-purple .treeview-menu>li>a:hover{color:#fff}.skin-purple .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px 10px}.skin-purple .sidebar-form input[type="text"],.skin-purple .sidebar-form .btn{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px;-webkit-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.skin-purple .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-purple .sidebar-form input[type="text"]:focus,.skin-purple .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-purple .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-purple .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/styles/skins/skin-yellow.min.css:
--------------------------------------------------------------------------------
1 | .skin-yellow .main-header .navbar{background-color:#f39c12}.skin-yellow .main-header .navbar .nav>li>a{color:#fff}.skin-yellow .main-header .navbar .nav>li>a:hover,.skin-yellow .main-header .navbar .nav>li>a:active,.skin-yellow .main-header .navbar .nav>li>a:focus,.skin-yellow .main-header .navbar .nav .open>a,.skin-yellow .main-header .navbar .nav .open>a:hover,.skin-yellow .main-header .navbar .nav .open>a:focus,.skin-yellow .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-yellow .main-header .navbar .sidebar-toggle{color:#fff}.skin-yellow .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-yellow .main-header .navbar .sidebar-toggle{color:#fff}.skin-yellow .main-header .navbar .sidebar-toggle:hover{background-color:#e08e0b}@media (max-width:767px){.skin-yellow .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-yellow .main-header .navbar .dropdown-menu li a{color:#fff}.skin-yellow .main-header .navbar .dropdown-menu li a:hover{background:#e08e0b}}.skin-yellow .main-header .logo{background-color:#e08e0b;color:#fff;border-bottom:0 solid transparent}.skin-yellow .main-header .logo:hover{background-color:#db8b0b}.skin-yellow .main-header li.user-header{background-color:#f39c12}.skin-yellow .content-header{background:transparent}.skin-yellow .wrapper,.skin-yellow .main-sidebar,.skin-yellow .left-side{background-color:#222d32}.skin-yellow .user-panel>.info,.skin-yellow .user-panel>.info>a{color:#fff}.skin-yellow .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-yellow .sidebar-menu>li>a{border-left:3px solid transparent}.skin-yellow .sidebar-menu>li:hover>a,.skin-yellow .sidebar-menu>li.active>a{color:#fff;background:#1e282c;border-left-color:#f39c12}.skin-yellow .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-yellow .sidebar a{color:#b8c7ce}.skin-yellow .sidebar a:hover{text-decoration:none}.skin-yellow .treeview-menu>li>a{color:#8aa4af}.skin-yellow .treeview-menu>li.active>a,.skin-yellow .treeview-menu>li>a:hover{color:#fff}.skin-yellow .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px 10px}.skin-yellow .sidebar-form input[type="text"],.skin-yellow .sidebar-form .btn{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px;-webkit-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.skin-yellow .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-yellow .sidebar-form input[type="text"]:focus,.skin-yellow .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-yellow .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-yellow .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/styles/skins/skin-blue.min.css:
--------------------------------------------------------------------------------
1 | .skin-blue .main-header .navbar{background-color:#3c8dbc}.skin-blue .main-header .navbar .nav>li>a{color:#fff}.skin-blue .main-header .navbar .nav>li>a:hover,.skin-blue .main-header .navbar .nav>li>a:active,.skin-blue .main-header .navbar .nav>li>a:focus,.skin-blue .main-header .navbar .nav .open>a,.skin-blue .main-header .navbar .nav .open>a:hover,.skin-blue .main-header .navbar .nav .open>a:focus,.skin-blue .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-blue .main-header .navbar .sidebar-toggle{color:#fff}.skin-blue .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-blue .main-header .navbar .sidebar-toggle{color:#fff}.skin-blue .main-header .navbar .sidebar-toggle:hover{background-color:#367fa9}@media (max-width:767px){.skin-blue .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-blue .main-header .navbar .dropdown-menu li a{color:#fff}.skin-blue .main-header .navbar .dropdown-menu li a:hover{background:#367fa9}}.skin-blue .main-header .logo{background-color:#367fa9;color:#fff;border-bottom:0 solid transparent}.skin-blue .main-header .logo:hover{background-color:#357ca5}.skin-blue .main-header li.user-header{background-color:#3c8dbc}.skin-blue .content-header{background:transparent}.skin-blue .wrapper,.skin-blue .main-sidebar,.skin-blue .left-side{background-color:#222d32}.skin-blue .user-panel>.info,.skin-blue .user-panel>.info>a{color:#fff}.skin-blue .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-blue .sidebar-menu>li>a{border-left:3px solid transparent}.skin-blue .sidebar-menu>li:hover>a,.skin-blue .sidebar-menu>li.active>a{color:#fff;background:#1e282c;border-left-color:#3c8dbc}.skin-blue .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-blue .sidebar a{color:#b8c7ce}.skin-blue .sidebar a:hover{text-decoration:none}.skin-blue .treeview-menu>li>a{color:#8aa4af}.skin-blue .treeview-menu>li.active>a,.skin-blue .treeview-menu>li>a:hover{color:#fff}.skin-blue .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px 10px}.skin-blue .sidebar-form input[type="text"],.skin-blue .sidebar-form .btn{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px;-webkit-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.skin-blue .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-blue .sidebar-form input[type="text"]:focus,.skin-blue .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-blue .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-blue .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}.skin-blue.layout-top-nav .main-header>.logo{background-color:#3c8dbc;color:#fff;border-bottom:0 solid transparent}.skin-blue.layout-top-nav .main-header>.logo:hover{background-color:#3b8ab8}
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/styles/bootstrap-colorpicker.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Colorpicker
3 | * http://mjolnic.github.io/bootstrap-colorpicker/
4 | *
5 | * Originally written by (c) 2012 Stefan Petre
6 | * Licensed under the Apache License v2.0
7 | * http://www.apache.org/licenses/LICENSE-2.0.txt
8 | *
9 | */.colorpicker-saturation{float:left;width:100px;height:100px;cursor:crosshair;background-image:url("img/saturation.png")}.colorpicker-saturation i{position:absolute;top:0;left:0;display:block;width:5px;height:5px;margin:-4px 0 0 -4px;border:1px solid #000;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.colorpicker-saturation i b{display:block;width:5px;height:5px;border:1px solid #fff;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.colorpicker-hue,.colorpicker-alpha{float:left;width:15px;height:100px;margin-bottom:4px;margin-left:4px;cursor:row-resize}.colorpicker-hue i,.colorpicker-alpha i{position:absolute;top:0;left:0;display:block;width:100%;height:1px;margin-top:-1px;background:#000;border-top:1px solid #fff}.colorpicker-hue{background-image:url("img/hue.png")}.colorpicker-alpha{display:none;background-image:url("img/alpha.png")}.colorpicker{top:0;left:0;z-index:2500;min-width:130px;padding:4px;margin-top:1px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*zoom:1}.colorpicker:before,.colorpicker:after{display:table;line-height:0;content:""}.colorpicker:after{clear:both}.colorpicker:before{position:absolute;top:-7px;left:6px;display:inline-block;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,0.2);content:''}.colorpicker:after{position:absolute;top:-6px;left:7px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.colorpicker div{position:relative}.colorpicker.colorpicker-with-alpha{min-width:140px}.colorpicker.colorpicker-with-alpha .colorpicker-alpha{display:block}.colorpicker-color{height:10px;margin-top:5px;clear:both;background-image:url("img/alpha.png");background-position:0 100%}.colorpicker-color div{height:10px}.colorpicker-element .input-group-addon i{display:block;width:16px;height:16px;cursor:pointer}.colorpicker.colorpicker-inline{position:relative;display:inline-block;float:none}.colorpicker.colorpicker-horizontal{width:110px;height:auto;min-width:110px}.colorpicker.colorpicker-horizontal .colorpicker-saturation{margin-bottom:4px}.colorpicker.colorpicker-horizontal .colorpicker-color{width:100px}.colorpicker.colorpicker-horizontal .colorpicker-hue,.colorpicker.colorpicker-horizontal .colorpicker-alpha{float:left;width:100px;height:15px;margin-bottom:4px;margin-left:0;cursor:col-resize}.colorpicker.colorpicker-horizontal .colorpicker-hue i,.colorpicker.colorpicker-horizontal .colorpicker-alpha i{position:absolute;top:0;left:0;display:block;width:1px;height:15px;margin-top:0;background:#fff;border:0}.colorpicker.colorpicker-horizontal .colorpicker-hue{background-image:url("img/hue-horizontal.png")}.colorpicker.colorpicker-horizontal .colorpicker-alpha{background-image:url("img/alpha-horizontal.png")}.colorpicker.colorpicker-hidden{display:none}.colorpicker.colorpicker-visible{display:block}.colorpicker-inline.colorpicker-visible{display:inline-block}
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/styles/skins/skin-black.min.css:
--------------------------------------------------------------------------------
1 | .skin-black .main-header{-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.skin-black .main-header .navbar-toggle{color:#333}.skin-black .main-header .navbar-brand{color:#333;border-right:1px solid #eee}.skin-black .main-header>.navbar{background-color:#fff}.skin-black .main-header>.navbar .nav>li>a{color:#333}.skin-black .main-header>.navbar .nav>li>a:hover,.skin-black .main-header>.navbar .nav>li>a:active,.skin-black .main-header>.navbar .nav>li>a:focus,.skin-black .main-header>.navbar .nav .open>a,.skin-black .main-header>.navbar .nav .open>a:hover,.skin-black .main-header>.navbar .nav .open>a:focus,.skin-black .main-header>.navbar .nav>.active>a{background:#fff;color:#999}.skin-black .main-header>.navbar .sidebar-toggle{color:#333}.skin-black .main-header>.navbar .sidebar-toggle:hover{color:#999;background:#fff}.skin-black .main-header>.navbar>.sidebar-toggle{color:#333;border-right:1px solid #eee}.skin-black .main-header>.navbar .navbar-nav>li>a{border-right:1px solid #eee}.skin-black .main-header>.navbar .navbar-custom-menu .navbar-nav>li>a,.skin-black .main-header>.navbar .navbar-right>li>a{border-left:1px solid #eee;border-right-width:0}.skin-black .main-header>.logo{background-color:#fff;color:#333;border-bottom:0 solid transparent;border-right:1px solid #eee}.skin-black .main-header>.logo:hover{background-color:#fcfcfc}@media (max-width:767px){.skin-black .main-header>.logo{background-color:#222;color:#fff;border-bottom:0 solid transparent;border-right:none}.skin-black .main-header>.logo:hover{background-color:#1f1f1f}}.skin-black .main-header li.user-header{background-color:#222}.skin-black .content-header{background:transparent;box-shadow:none}.skin-black .wrapper,.skin-black .main-sidebar,.skin-black .left-side{background-color:#222d32}.skin-black .user-panel>.info,.skin-black .user-panel>.info>a{color:#fff}.skin-black .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-black .sidebar-menu>li>a{border-left:3px solid transparent}.skin-black .sidebar-menu>li:hover>a,.skin-black .sidebar-menu>li.active>a{color:#fff;background:#1e282c;border-left-color:#fff}.skin-black .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-black .sidebar a{color:#b8c7ce}.skin-black .sidebar a:hover{text-decoration:none}.skin-black .treeview-menu>li>a{color:#8aa4af}.skin-black .treeview-menu>li.active>a,.skin-black .treeview-menu>li>a:hover{color:#fff}.skin-black .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px 10px}.skin-black .sidebar-form input[type="text"],.skin-black .sidebar-form .btn{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px;-webkit-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.skin-black .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-black .sidebar-form input[type="text"]:focus,.skin-black .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-black .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-black .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/styles/bootstrap-timepicker.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Timepicker Component for Twitter Bootstrap
3 | *
4 | * Copyright 2013 Joris de Wit
5 | *
6 | * Contributors https://github.com/jdewit/bootstrap-timepicker/graphs/contributors
7 | *
8 | * For the full copyright and license information, please view the LICENSE
9 | * file that was distributed with this source code.
10 | */
11 | .bootstrap-timepicker {
12 | position: relative;
13 | }
14 | .bootstrap-timepicker.pull-right .bootstrap-timepicker-widget.dropdown-menu {
15 | left: auto;
16 | right: 0;
17 | }
18 | .bootstrap-timepicker.pull-right .bootstrap-timepicker-widget.dropdown-menu:before {
19 | left: auto;
20 | right: 12px;
21 | }
22 | .bootstrap-timepicker.pull-right .bootstrap-timepicker-widget.dropdown-menu:after {
23 | left: auto;
24 | right: 13px;
25 | }
26 | .bootstrap-timepicker .add-on {
27 | cursor: pointer;
28 | }
29 | .bootstrap-timepicker .add-on i {
30 | display: inline-block;
31 | width: 16px;
32 | height: 16px;
33 | }
34 | .bootstrap-timepicker-widget.dropdown-menu {
35 | padding: 2px 3px 2px 2px;
36 | }
37 | .bootstrap-timepicker-widget.dropdown-menu.open {
38 | display: inline-block;
39 | }
40 | .bootstrap-timepicker-widget.dropdown-menu:before {
41 | border-bottom: 7px solid rgba(0, 0, 0, 0.2);
42 | border-left: 7px solid transparent;
43 | border-right: 7px solid transparent;
44 | content: "";
45 | display: inline-block;
46 | left: 9px;
47 | position: absolute;
48 | top: -7px;
49 | }
50 | .bootstrap-timepicker-widget.dropdown-menu:after {
51 | border-bottom: 6px solid #FFFFFF;
52 | border-left: 6px solid transparent;
53 | border-right: 6px solid transparent;
54 | content: "";
55 | display: inline-block;
56 | left: 10px;
57 | position: absolute;
58 | top: -6px;
59 | }
60 | .bootstrap-timepicker-widget a.btn,
61 | .bootstrap-timepicker-widget input {
62 | border-radius: 4px;
63 | }
64 | .bootstrap-timepicker-widget table {
65 | width: 100%;
66 | margin: 0;
67 | }
68 | .bootstrap-timepicker-widget table td {
69 | text-align: center;
70 | height: 30px;
71 | margin: 0;
72 | padding: 2px;
73 | }
74 | .bootstrap-timepicker-widget table td:not(.separator) {
75 | min-width: 30px;
76 | }
77 | .bootstrap-timepicker-widget table td span {
78 | width: 100%;
79 | }
80 | .bootstrap-timepicker-widget table td a {
81 | border: 1px transparent solid;
82 | width: 100%;
83 | display: inline-block;
84 | margin: 0;
85 | padding: 8px 0;
86 | outline: 0;
87 | color: #333;
88 | }
89 | .bootstrap-timepicker-widget table td a:hover {
90 | text-decoration: none;
91 | background-color: #eee;
92 | -webkit-border-radius: 4px;
93 | -moz-border-radius: 4px;
94 | border-radius: 4px;
95 | border-color: #ddd;
96 | }
97 | .bootstrap-timepicker-widget table td a i {
98 | margin-top: 2px;
99 | }
100 | .bootstrap-timepicker-widget table td input {
101 | width: 25px;
102 | margin: 0;
103 | text-align: center;
104 | }
105 | .bootstrap-timepicker-widget .modal-content {
106 | padding: 4px;
107 | }
108 | @media (min-width: 767px) {
109 | .bootstrap-timepicker-widget.modal {
110 | width: 200px;
111 | margin-left: -100px;
112 | }
113 | }
114 | @media (max-width: 767px) {
115 | .bootstrap-timepicker {
116 | width: 100%;
117 | }
118 | .bootstrap-timepicker .dropdown-menu {
119 | width: 100%;
120 | }
121 | }
122 |
--------------------------------------------------------------------------------
/src/WechatBribery/Views/Home/Deliver.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | ViewBag.Title = "发放红包";
3 | }
4 |
5 | @ViewBag.Title
6 |
7 |
40 |
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/styles/skins/skin-red-light.min.css:
--------------------------------------------------------------------------------
1 | .skin-red-light .main-header .navbar{background-color:#dd4b39}.skin-red-light .main-header .navbar .nav>li>a{color:#fff}.skin-red-light .main-header .navbar .nav>li>a:hover,.skin-red-light .main-header .navbar .nav>li>a:active,.skin-red-light .main-header .navbar .nav>li>a:focus,.skin-red-light .main-header .navbar .nav .open>a,.skin-red-light .main-header .navbar .nav .open>a:hover,.skin-red-light .main-header .navbar .nav .open>a:focus,.skin-red-light .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-red-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-red-light .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-red-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-red-light .main-header .navbar .sidebar-toggle:hover{background-color:#d73925}@media (max-width:767px){.skin-red-light .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-red-light .main-header .navbar .dropdown-menu li a{color:#fff}.skin-red-light .main-header .navbar .dropdown-menu li a:hover{background:#d73925}}.skin-red-light .main-header .logo{background-color:#dd4b39;color:#fff;border-bottom:0 solid transparent}.skin-red-light .main-header .logo:hover{background-color:#dc4735}.skin-red-light .main-header li.user-header{background-color:#dd4b39}.skin-red-light .content-header{background:transparent}.skin-red-light .wrapper,.skin-red-light .main-sidebar,.skin-red-light .left-side{background-color:#f9fafc}.skin-red-light .content-wrapper,.skin-red-light .main-footer{border-left:1px solid #d2d6de}.skin-red-light .user-panel>.info,.skin-red-light .user-panel>.info>a{color:#444}.skin-red-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-red-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-red-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-red-light .sidebar-menu>li:hover>a,.skin-red-light .sidebar-menu>li.active>a{color:#000;background:#f4f4f5}.skin-red-light .sidebar-menu>li.active{border-left-color:#dd4b39}.skin-red-light .sidebar-menu>li.active>a{font-weight:600}.skin-red-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-red-light .sidebar a{color:#444}.skin-red-light .sidebar a:hover{text-decoration:none}.skin-red-light .treeview-menu>li>a{color:#777}.skin-red-light .treeview-menu>li.active>a,.skin-red-light .treeview-menu>li>a:hover{color:#000}.skin-red-light .treeview-menu>li.active>a{font-weight:600}.skin-red-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px 10px}.skin-red-light .sidebar-form input[type="text"],.skin-red-light .sidebar-form .btn{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px;-webkit-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.skin-red-light .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-red-light .sidebar-form input[type="text"]:focus,.skin-red-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-red-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-red-light .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}@media (min-width:768px){.skin-red-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}}
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/styles/skins/skin-green-light.min.css:
--------------------------------------------------------------------------------
1 | .skin-green-light .main-header .navbar{background-color:#00a65a}.skin-green-light .main-header .navbar .nav>li>a{color:#fff}.skin-green-light .main-header .navbar .nav>li>a:hover,.skin-green-light .main-header .navbar .nav>li>a:active,.skin-green-light .main-header .navbar .nav>li>a:focus,.skin-green-light .main-header .navbar .nav .open>a,.skin-green-light .main-header .navbar .nav .open>a:hover,.skin-green-light .main-header .navbar .nav .open>a:focus,.skin-green-light .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-green-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-green-light .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-green-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-green-light .main-header .navbar .sidebar-toggle:hover{background-color:#008d4c}@media (max-width:767px){.skin-green-light .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-green-light .main-header .navbar .dropdown-menu li a{color:#fff}.skin-green-light .main-header .navbar .dropdown-menu li a:hover{background:#008d4c}}.skin-green-light .main-header .logo{background-color:#00a65a;color:#fff;border-bottom:0 solid transparent}.skin-green-light .main-header .logo:hover{background-color:#00a157}.skin-green-light .main-header li.user-header{background-color:#00a65a}.skin-green-light .content-header{background:transparent}.skin-green-light .wrapper,.skin-green-light .main-sidebar,.skin-green-light .left-side{background-color:#f9fafc}.skin-green-light .content-wrapper,.skin-green-light .main-footer{border-left:1px solid #d2d6de}.skin-green-light .user-panel>.info,.skin-green-light .user-panel>.info>a{color:#444}.skin-green-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-green-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-green-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-green-light .sidebar-menu>li:hover>a,.skin-green-light .sidebar-menu>li.active>a{color:#000;background:#f4f4f5}.skin-green-light .sidebar-menu>li.active{border-left-color:#00a65a}.skin-green-light .sidebar-menu>li.active>a{font-weight:600}.skin-green-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-green-light .sidebar a{color:#444}.skin-green-light .sidebar a:hover{text-decoration:none}.skin-green-light .treeview-menu>li>a{color:#777}.skin-green-light .treeview-menu>li.active>a,.skin-green-light .treeview-menu>li>a:hover{color:#000}.skin-green-light .treeview-menu>li.active>a{font-weight:600}.skin-green-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px 10px}.skin-green-light .sidebar-form input[type="text"],.skin-green-light .sidebar-form .btn{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px;-webkit-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.skin-green-light .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-green-light .sidebar-form input[type="text"]:focus,.skin-green-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-green-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-green-light .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}@media (min-width:768px){.skin-green-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}}
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/styles/skins/skin-purple-light.min.css:
--------------------------------------------------------------------------------
1 | .skin-purple-light .main-header .navbar{background-color:#605ca8}.skin-purple-light .main-header .navbar .nav>li>a{color:#fff}.skin-purple-light .main-header .navbar .nav>li>a:hover,.skin-purple-light .main-header .navbar .nav>li>a:active,.skin-purple-light .main-header .navbar .nav>li>a:focus,.skin-purple-light .main-header .navbar .nav .open>a,.skin-purple-light .main-header .navbar .nav .open>a:hover,.skin-purple-light .main-header .navbar .nav .open>a:focus,.skin-purple-light .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-purple-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-purple-light .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-purple-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-purple-light .main-header .navbar .sidebar-toggle:hover{background-color:#555299}@media (max-width:767px){.skin-purple-light .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-purple-light .main-header .navbar .dropdown-menu li a{color:#fff}.skin-purple-light .main-header .navbar .dropdown-menu li a:hover{background:#555299}}.skin-purple-light .main-header .logo{background-color:#605ca8;color:#fff;border-bottom:0 solid transparent}.skin-purple-light .main-header .logo:hover{background-color:#5d59a6}.skin-purple-light .main-header li.user-header{background-color:#605ca8}.skin-purple-light .content-header{background:transparent}.skin-purple-light .wrapper,.skin-purple-light .main-sidebar,.skin-purple-light .left-side{background-color:#f9fafc}.skin-purple-light .content-wrapper,.skin-purple-light .main-footer{border-left:1px solid #d2d6de}.skin-purple-light .user-panel>.info,.skin-purple-light .user-panel>.info>a{color:#444}.skin-purple-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-purple-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-purple-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-purple-light .sidebar-menu>li:hover>a,.skin-purple-light .sidebar-menu>li.active>a{color:#000;background:#f4f4f5}.skin-purple-light .sidebar-menu>li.active{border-left-color:#605ca8}.skin-purple-light .sidebar-menu>li.active>a{font-weight:600}.skin-purple-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-purple-light .sidebar a{color:#444}.skin-purple-light .sidebar a:hover{text-decoration:none}.skin-purple-light .treeview-menu>li>a{color:#777}.skin-purple-light .treeview-menu>li.active>a,.skin-purple-light .treeview-menu>li>a:hover{color:#000}.skin-purple-light .treeview-menu>li.active>a{font-weight:600}.skin-purple-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px 10px}.skin-purple-light .sidebar-form input[type="text"],.skin-purple-light .sidebar-form .btn{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px;-webkit-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.skin-purple-light .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-purple-light .sidebar-form input[type="text"]:focus,.skin-purple-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-purple-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-purple-light .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}@media (min-width:768px){.skin-purple-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}}
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/styles/skins/skin-yellow-light.min.css:
--------------------------------------------------------------------------------
1 | .skin-yellow-light .main-header .navbar{background-color:#f39c12}.skin-yellow-light .main-header .navbar .nav>li>a{color:#fff}.skin-yellow-light .main-header .navbar .nav>li>a:hover,.skin-yellow-light .main-header .navbar .nav>li>a:active,.skin-yellow-light .main-header .navbar .nav>li>a:focus,.skin-yellow-light .main-header .navbar .nav .open>a,.skin-yellow-light .main-header .navbar .nav .open>a:hover,.skin-yellow-light .main-header .navbar .nav .open>a:focus,.skin-yellow-light .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-yellow-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-yellow-light .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-yellow-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-yellow-light .main-header .navbar .sidebar-toggle:hover{background-color:#e08e0b}@media (max-width:767px){.skin-yellow-light .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-yellow-light .main-header .navbar .dropdown-menu li a{color:#fff}.skin-yellow-light .main-header .navbar .dropdown-menu li a:hover{background:#e08e0b}}.skin-yellow-light .main-header .logo{background-color:#f39c12;color:#fff;border-bottom:0 solid transparent}.skin-yellow-light .main-header .logo:hover{background-color:#f39a0d}.skin-yellow-light .main-header li.user-header{background-color:#f39c12}.skin-yellow-light .content-header{background:transparent}.skin-yellow-light .wrapper,.skin-yellow-light .main-sidebar,.skin-yellow-light .left-side{background-color:#f9fafc}.skin-yellow-light .content-wrapper,.skin-yellow-light .main-footer{border-left:1px solid #d2d6de}.skin-yellow-light .user-panel>.info,.skin-yellow-light .user-panel>.info>a{color:#444}.skin-yellow-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-yellow-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-yellow-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-yellow-light .sidebar-menu>li:hover>a,.skin-yellow-light .sidebar-menu>li.active>a{color:#000;background:#f4f4f5}.skin-yellow-light .sidebar-menu>li.active{border-left-color:#f39c12}.skin-yellow-light .sidebar-menu>li.active>a{font-weight:600}.skin-yellow-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-yellow-light .sidebar a{color:#444}.skin-yellow-light .sidebar a:hover{text-decoration:none}.skin-yellow-light .treeview-menu>li>a{color:#777}.skin-yellow-light .treeview-menu>li.active>a,.skin-yellow-light .treeview-menu>li>a:hover{color:#000}.skin-yellow-light .treeview-menu>li.active>a{font-weight:600}.skin-yellow-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px 10px}.skin-yellow-light .sidebar-form input[type="text"],.skin-yellow-light .sidebar-form .btn{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px;-webkit-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.skin-yellow-light .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-yellow-light .sidebar-form input[type="text"]:focus,.skin-yellow-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-yellow-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-yellow-light .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}@media (min-width:768px){.skin-yellow-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}}
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/scripts/pages/dashboard2.js:
--------------------------------------------------------------------------------
1 | $(function () {
2 |
3 | 'use strict';
4 |
5 |
6 | /* jVector Maps
7 | * ------------
8 | * Create a world map with markers
9 | */
10 | $('#world-map-markers').vectorMap({
11 | map: 'world_mill_en',
12 | normalizeFunction: 'polynomial',
13 | hoverOpacity: 0.7,
14 | hoverColor: false,
15 | backgroundColor: 'transparent',
16 | regionStyle: {
17 | initial: {
18 | fill: 'rgba(210, 214, 222, 1)',
19 | "fill-opacity": 1,
20 | stroke: 'none',
21 | "stroke-width": 0,
22 | "stroke-opacity": 1
23 | },
24 | hover: {
25 | "fill-opacity": 0.7,
26 | cursor: 'pointer'
27 | },
28 | selected: {
29 | fill: 'yellow'
30 | },
31 | selectedHover: {
32 | }
33 | },
34 | markerStyle: {
35 | initial: {
36 | fill: '#00a65a',
37 | stroke: '#111'
38 | }
39 | },
40 | markers: [
41 | {latLng: [41.90, 12.45], name: 'Vatican City'},
42 | {latLng: [43.73, 7.41], name: 'Monaco'},
43 | {latLng: [-0.52, 166.93], name: 'Nauru'},
44 | {latLng: [-8.51, 179.21], name: 'Tuvalu'},
45 | {latLng: [43.93, 12.46], name: 'San Marino'},
46 | {latLng: [47.14, 9.52], name: 'Liechtenstein'},
47 | {latLng: [7.11, 171.06], name: 'Marshall Islands'},
48 | {latLng: [17.3, -62.73], name: 'Saint Kitts and Nevis'},
49 | {latLng: [3.2, 73.22], name: 'Maldives'},
50 | {latLng: [35.88, 14.5], name: 'Malta'},
51 | {latLng: [12.05, -61.75], name: 'Grenada'},
52 | {latLng: [13.16, -61.23], name: 'Saint Vincent and the Grenadines'},
53 | {latLng: [13.16, -59.55], name: 'Barbados'},
54 | {latLng: [17.11, -61.85], name: 'Antigua and Barbuda'},
55 | {latLng: [-4.61, 55.45], name: 'Seychelles'},
56 | {latLng: [7.35, 134.46], name: 'Palau'},
57 | {latLng: [42.5, 1.51], name: 'Andorra'},
58 | {latLng: [14.01, -60.98], name: 'Saint Lucia'},
59 | {latLng: [6.91, 158.18], name: 'Federated States of Micronesia'},
60 | {latLng: [1.3, 103.8], name: 'Singapore'},
61 | {latLng: [1.46, 173.03], name: 'Kiribati'},
62 | {latLng: [-21.13, -175.2], name: 'Tonga'},
63 | {latLng: [15.3, -61.38], name: 'Dominica'},
64 | {latLng: [-20.2, 57.5], name: 'Mauritius'},
65 | {latLng: [26.02, 50.55], name: 'Bahrain'},
66 | {latLng: [0.33, 6.73], name: 'São Tomé and Príncipe'}
67 | ]
68 | });
69 |
70 | /* SPARKLINE CHARTS
71 | * ----------------
72 | * Create a inline charts with spark line
73 | */
74 |
75 | //-----------------
76 | //- SPARKLINE BAR -
77 | //-----------------
78 | $('.sparkbar').each(function () {
79 | var $this = $(this);
80 | $this.sparkline('html', {
81 | type: 'bar',
82 | height: $this.data('height') ? $this.data('height') : '30',
83 | barColor: $this.data('color')
84 | });
85 | });
86 |
87 | //-----------------
88 | //- SPARKLINE PIE -
89 | //-----------------
90 | $('.sparkpie').each(function () {
91 | var $this = $(this);
92 | $this.sparkline('html', {
93 | type: 'pie',
94 | height: $this.data('height') ? $this.data('height') : '90',
95 | sliceColors: $this.data('color')
96 | });
97 | });
98 |
99 | //------------------
100 | //- SPARKLINE LINE -
101 | //------------------
102 | $('.sparkline').each(function () {
103 | var $this = $(this);
104 | $this.sparkline('html', {
105 | type: 'line',
106 | height: $this.data('height') ? $this.data('height') : '90',
107 | width: '100%',
108 | lineColor: $this.data('linecolor'),
109 | fillColor: $this.data('fillcolor'),
110 | spotColor: $this.data('spotcolor')
111 | });
112 | });
113 | });
114 |
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/styles/skins/skin-blue-light.min.css:
--------------------------------------------------------------------------------
1 | .skin-blue-light .main-header .navbar{background-color:#3c8dbc}.skin-blue-light .main-header .navbar .nav>li>a{color:#fff}.skin-blue-light .main-header .navbar .nav>li>a:hover,.skin-blue-light .main-header .navbar .nav>li>a:active,.skin-blue-light .main-header .navbar .nav>li>a:focus,.skin-blue-light .main-header .navbar .nav .open>a,.skin-blue-light .main-header .navbar .nav .open>a:hover,.skin-blue-light .main-header .navbar .nav .open>a:focus,.skin-blue-light .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-blue-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-blue-light .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-blue-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-blue-light .main-header .navbar .sidebar-toggle:hover{background-color:#367fa9}@media (max-width:767px){.skin-blue-light .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-blue-light .main-header .navbar .dropdown-menu li a{color:#fff}.skin-blue-light .main-header .navbar .dropdown-menu li a:hover{background:#367fa9}}.skin-blue-light .main-header .logo{background-color:#3c8dbc;color:#fff;border-bottom:0 solid transparent}.skin-blue-light .main-header .logo:hover{background-color:#3b8ab8}.skin-blue-light .main-header li.user-header{background-color:#3c8dbc}.skin-blue-light .content-header{background:transparent}.skin-blue-light .wrapper,.skin-blue-light .main-sidebar,.skin-blue-light .left-side{background-color:#f9fafc}.skin-blue-light .content-wrapper,.skin-blue-light .main-footer{border-left:1px solid #d2d6de}.skin-blue-light .user-panel>.info,.skin-blue-light .user-panel>.info>a{color:#444}.skin-blue-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-blue-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-blue-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-blue-light .sidebar-menu>li:hover>a,.skin-blue-light .sidebar-menu>li.active>a{color:#000;background:#f4f4f5}.skin-blue-light .sidebar-menu>li.active{border-left-color:#3c8dbc}.skin-blue-light .sidebar-menu>li.active>a{font-weight:600}.skin-blue-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-blue-light .sidebar a{color:#444}.skin-blue-light .sidebar a:hover{text-decoration:none}.skin-blue-light .treeview-menu>li>a{color:#777}.skin-blue-light .treeview-menu>li.active>a,.skin-blue-light .treeview-menu>li>a:hover{color:#000}.skin-blue-light .treeview-menu>li.active>a{font-weight:600}.skin-blue-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px 10px}.skin-blue-light .sidebar-form input[type="text"],.skin-blue-light .sidebar-form .btn{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px;-webkit-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.skin-blue-light .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-blue-light .sidebar-form input[type="text"]:focus,.skin-blue-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-blue-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-blue-light .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}@media (min-width:768px){.skin-blue-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}}.skin-blue-light .main-footer{border-top-color:#d2d6de}.skin-blue.layout-top-nav .main-header>.logo{background-color:#3c8dbc;color:#fff;border-bottom:0 solid transparent}.skin-blue.layout-top-nav .main-header>.logo:hover{background-color:#3b8ab8}
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/styles/skins/skin-black-light.min.css:
--------------------------------------------------------------------------------
1 | .skin-black-light .main-header{-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.skin-black-light .main-header .navbar-toggle{color:#333}.skin-black-light .main-header .navbar-brand{color:#333;border-right:1px solid #eee}.skin-black-light .main-header>.navbar{background-color:#fff}.skin-black-light .main-header>.navbar .nav>li>a{color:#333}.skin-black-light .main-header>.navbar .nav>li>a:hover,.skin-black-light .main-header>.navbar .nav>li>a:active,.skin-black-light .main-header>.navbar .nav>li>a:focus,.skin-black-light .main-header>.navbar .nav .open>a,.skin-black-light .main-header>.navbar .nav .open>a:hover,.skin-black-light .main-header>.navbar .nav .open>a:focus,.skin-black-light .main-header>.navbar .nav>.active>a{background:#fff;color:#999}.skin-black-light .main-header>.navbar .sidebar-toggle{color:#333}.skin-black-light .main-header>.navbar .sidebar-toggle:hover{color:#999;background:#fff}.skin-black-light .main-header>.navbar>.sidebar-toggle{color:#333;border-right:1px solid #eee}.skin-black-light .main-header>.navbar .navbar-nav>li>a{border-right:1px solid #eee}.skin-black-light .main-header>.navbar .navbar-custom-menu .navbar-nav>li>a,.skin-black-light .main-header>.navbar .navbar-right>li>a{border-left:1px solid #eee;border-right-width:0}.skin-black-light .main-header>.logo{background-color:#fff;color:#333;border-bottom:0 solid transparent;border-right:1px solid #eee}.skin-black-light .main-header>.logo:hover{background-color:#fcfcfc}@media (max-width:767px){.skin-black-light .main-header>.logo{background-color:#222;color:#fff;border-bottom:0 solid transparent;border-right:none}.skin-black-light .main-header>.logo:hover{background-color:#1f1f1f}}.skin-black-light .main-header li.user-header{background-color:#222}.skin-black-light .content-header{background:transparent;box-shadow:none}.skin-black-light .wrapper,.skin-black-light .main-sidebar,.skin-black-light .left-side{background-color:#f9fafc}.skin-black-light .content-wrapper,.skin-black-light .main-footer{border-left:1px solid #d2d6de}.skin-black-light .user-panel>.info,.skin-black-light .user-panel>.info>a{color:#444}.skin-black-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-black-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-black-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-black-light .sidebar-menu>li:hover>a,.skin-black-light .sidebar-menu>li.active>a{color:#000;background:#f4f4f5}.skin-black-light .sidebar-menu>li.active{border-left-color:#fff}.skin-black-light .sidebar-menu>li.active>a{font-weight:600}.skin-black-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-black-light .sidebar a{color:#444}.skin-black-light .sidebar a:hover{text-decoration:none}.skin-black-light .treeview-menu>li>a{color:#777}.skin-black-light .treeview-menu>li.active>a,.skin-black-light .treeview-menu>li>a:hover{color:#000}.skin-black-light .treeview-menu>li.active>a{font-weight:600}.skin-black-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px 10px}.skin-black-light .sidebar-form input[type="text"],.skin-black-light .sidebar-form .btn{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px;-webkit-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.skin-black-light .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-black-light .sidebar-form input[type="text"]:focus,.skin-black-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-black-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-black-light .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}@media (min-width:768px){.skin-black-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}}
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/styles/skins/skin-red.css:
--------------------------------------------------------------------------------
1 | /*
2 | * Skin: Red
3 | * ---------
4 | */
5 | .skin-red .main-header .navbar {
6 | background-color: #dd4b39;
7 | }
8 | .skin-red .main-header .navbar .nav > li > a {
9 | color: #ffffff;
10 | }
11 | .skin-red .main-header .navbar .nav > li > a:hover,
12 | .skin-red .main-header .navbar .nav > li > a:active,
13 | .skin-red .main-header .navbar .nav > li > a:focus,
14 | .skin-red .main-header .navbar .nav .open > a,
15 | .skin-red .main-header .navbar .nav .open > a:hover,
16 | .skin-red .main-header .navbar .nav .open > a:focus,
17 | .skin-red .main-header .navbar .nav > .active > a {
18 | background: rgba(0, 0, 0, 0.1);
19 | color: #f6f6f6;
20 | }
21 | .skin-red .main-header .navbar .sidebar-toggle {
22 | color: #ffffff;
23 | }
24 | .skin-red .main-header .navbar .sidebar-toggle:hover {
25 | color: #f6f6f6;
26 | background: rgba(0, 0, 0, 0.1);
27 | }
28 | .skin-red .main-header .navbar .sidebar-toggle {
29 | color: #fff;
30 | }
31 | .skin-red .main-header .navbar .sidebar-toggle:hover {
32 | background-color: #d73925;
33 | }
34 | @media (max-width: 767px) {
35 | .skin-red .main-header .navbar .dropdown-menu li.divider {
36 | background-color: rgba(255, 255, 255, 0.1);
37 | }
38 | .skin-red .main-header .navbar .dropdown-menu li a {
39 | color: #fff;
40 | }
41 | .skin-red .main-header .navbar .dropdown-menu li a:hover {
42 | background: #d73925;
43 | }
44 | }
45 | .skin-red .main-header .logo {
46 | background-color: #d73925;
47 | color: #ffffff;
48 | border-bottom: 0 solid transparent;
49 | }
50 | .skin-red .main-header .logo:hover {
51 | background-color: #d33724;
52 | }
53 | .skin-red .main-header li.user-header {
54 | background-color: #dd4b39;
55 | }
56 | .skin-red .content-header {
57 | background: transparent;
58 | }
59 | .skin-red .wrapper,
60 | .skin-red .main-sidebar,
61 | .skin-red .left-side {
62 | background-color: #222d32;
63 | }
64 | .skin-red .user-panel > .info,
65 | .skin-red .user-panel > .info > a {
66 | color: #fff;
67 | }
68 | .skin-red .sidebar-menu > li.header {
69 | color: #4b646f;
70 | background: #1a2226;
71 | }
72 | .skin-red .sidebar-menu > li > a {
73 | border-left: 3px solid transparent;
74 | }
75 | .skin-red .sidebar-menu > li:hover > a,
76 | .skin-red .sidebar-menu > li.active > a {
77 | color: #ffffff;
78 | background: #1e282c;
79 | border-left-color: #dd4b39;
80 | }
81 | .skin-red .sidebar-menu > li > .treeview-menu {
82 | margin: 0 1px;
83 | background: #2c3b41;
84 | }
85 | .skin-red .sidebar a {
86 | color: #b8c7ce;
87 | }
88 | .skin-red .sidebar a:hover {
89 | text-decoration: none;
90 | }
91 | .skin-red .treeview-menu > li > a {
92 | color: #8aa4af;
93 | }
94 | .skin-red .treeview-menu > li.active > a,
95 | .skin-red .treeview-menu > li > a:hover {
96 | color: #ffffff;
97 | }
98 | .skin-red .sidebar-form {
99 | border-radius: 3px;
100 | border: 1px solid #374850;
101 | margin: 10px 10px;
102 | }
103 | .skin-red .sidebar-form input[type="text"],
104 | .skin-red .sidebar-form .btn {
105 | box-shadow: none;
106 | background-color: #374850;
107 | border: 1px solid transparent;
108 | height: 35px;
109 | -webkit-transition: all 0.3s ease-in-out;
110 | -o-transition: all 0.3s ease-in-out;
111 | transition: all 0.3s ease-in-out;
112 | }
113 | .skin-red .sidebar-form input[type="text"] {
114 | color: #666;
115 | border-top-left-radius: 2px;
116 | border-top-right-radius: 0;
117 | border-bottom-right-radius: 0;
118 | border-bottom-left-radius: 2px;
119 | }
120 | .skin-red .sidebar-form input[type="text"]:focus,
121 | .skin-red .sidebar-form input[type="text"]:focus + .input-group-btn .btn {
122 | background-color: #fff;
123 | color: #666;
124 | }
125 | .skin-red .sidebar-form input[type="text"]:focus + .input-group-btn .btn {
126 | border-left-color: #fff;
127 | }
128 | .skin-red .sidebar-form .btn {
129 | color: #999;
130 | border-top-left-radius: 0;
131 | border-top-right-radius: 2px;
132 | border-bottom-right-radius: 2px;
133 | border-bottom-left-radius: 0;
134 | }
135 |
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/styles/skins/skin-green.css:
--------------------------------------------------------------------------------
1 | /*
2 | * Skin: Green
3 | * -----------
4 | */
5 | .skin-green .main-header .navbar {
6 | background-color: #00a65a;
7 | }
8 | .skin-green .main-header .navbar .nav > li > a {
9 | color: #ffffff;
10 | }
11 | .skin-green .main-header .navbar .nav > li > a:hover,
12 | .skin-green .main-header .navbar .nav > li > a:active,
13 | .skin-green .main-header .navbar .nav > li > a:focus,
14 | .skin-green .main-header .navbar .nav .open > a,
15 | .skin-green .main-header .navbar .nav .open > a:hover,
16 | .skin-green .main-header .navbar .nav .open > a:focus,
17 | .skin-green .main-header .navbar .nav > .active > a {
18 | background: rgba(0, 0, 0, 0.1);
19 | color: #f6f6f6;
20 | }
21 | .skin-green .main-header .navbar .sidebar-toggle {
22 | color: #ffffff;
23 | }
24 | .skin-green .main-header .navbar .sidebar-toggle:hover {
25 | color: #f6f6f6;
26 | background: rgba(0, 0, 0, 0.1);
27 | }
28 | .skin-green .main-header .navbar .sidebar-toggle {
29 | color: #fff;
30 | }
31 | .skin-green .main-header .navbar .sidebar-toggle:hover {
32 | background-color: #008d4c;
33 | }
34 | @media (max-width: 767px) {
35 | .skin-green .main-header .navbar .dropdown-menu li.divider {
36 | background-color: rgba(255, 255, 255, 0.1);
37 | }
38 | .skin-green .main-header .navbar .dropdown-menu li a {
39 | color: #fff;
40 | }
41 | .skin-green .main-header .navbar .dropdown-menu li a:hover {
42 | background: #008d4c;
43 | }
44 | }
45 | .skin-green .main-header .logo {
46 | background-color: #008d4c;
47 | color: #ffffff;
48 | border-bottom: 0 solid transparent;
49 | }
50 | .skin-green .main-header .logo:hover {
51 | background-color: #008749;
52 | }
53 | .skin-green .main-header li.user-header {
54 | background-color: #00a65a;
55 | }
56 | .skin-green .content-header {
57 | background: transparent;
58 | }
59 | .skin-green .wrapper,
60 | .skin-green .main-sidebar,
61 | .skin-green .left-side {
62 | background-color: #222d32;
63 | }
64 | .skin-green .user-panel > .info,
65 | .skin-green .user-panel > .info > a {
66 | color: #fff;
67 | }
68 | .skin-green .sidebar-menu > li.header {
69 | color: #4b646f;
70 | background: #1a2226;
71 | }
72 | .skin-green .sidebar-menu > li > a {
73 | border-left: 3px solid transparent;
74 | }
75 | .skin-green .sidebar-menu > li:hover > a,
76 | .skin-green .sidebar-menu > li.active > a {
77 | color: #ffffff;
78 | background: #1e282c;
79 | border-left-color: #00a65a;
80 | }
81 | .skin-green .sidebar-menu > li > .treeview-menu {
82 | margin: 0 1px;
83 | background: #2c3b41;
84 | }
85 | .skin-green .sidebar a {
86 | color: #b8c7ce;
87 | }
88 | .skin-green .sidebar a:hover {
89 | text-decoration: none;
90 | }
91 | .skin-green .treeview-menu > li > a {
92 | color: #8aa4af;
93 | }
94 | .skin-green .treeview-menu > li.active > a,
95 | .skin-green .treeview-menu > li > a:hover {
96 | color: #ffffff;
97 | }
98 | .skin-green .sidebar-form {
99 | border-radius: 3px;
100 | border: 1px solid #374850;
101 | margin: 10px 10px;
102 | }
103 | .skin-green .sidebar-form input[type="text"],
104 | .skin-green .sidebar-form .btn {
105 | box-shadow: none;
106 | background-color: #374850;
107 | border: 1px solid transparent;
108 | height: 35px;
109 | -webkit-transition: all 0.3s ease-in-out;
110 | -o-transition: all 0.3s ease-in-out;
111 | transition: all 0.3s ease-in-out;
112 | }
113 | .skin-green .sidebar-form input[type="text"] {
114 | color: #666;
115 | border-top-left-radius: 2px;
116 | border-top-right-radius: 0;
117 | border-bottom-right-radius: 0;
118 | border-bottom-left-radius: 2px;
119 | }
120 | .skin-green .sidebar-form input[type="text"]:focus,
121 | .skin-green .sidebar-form input[type="text"]:focus + .input-group-btn .btn {
122 | background-color: #fff;
123 | color: #666;
124 | }
125 | .skin-green .sidebar-form input[type="text"]:focus + .input-group-btn .btn {
126 | border-left-color: #fff;
127 | }
128 | .skin-green .sidebar-form .btn {
129 | color: #999;
130 | border-top-left-radius: 0;
131 | border-top-right-radius: 2px;
132 | border-bottom-right-radius: 2px;
133 | border-bottom-left-radius: 0;
134 | }
135 |
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/styles/skins/skin-purple.css:
--------------------------------------------------------------------------------
1 | /*
2 | * Skin: Purple
3 | * ------------
4 | */
5 | .skin-purple .main-header .navbar {
6 | background-color: #605ca8;
7 | }
8 | .skin-purple .main-header .navbar .nav > li > a {
9 | color: #ffffff;
10 | }
11 | .skin-purple .main-header .navbar .nav > li > a:hover,
12 | .skin-purple .main-header .navbar .nav > li > a:active,
13 | .skin-purple .main-header .navbar .nav > li > a:focus,
14 | .skin-purple .main-header .navbar .nav .open > a,
15 | .skin-purple .main-header .navbar .nav .open > a:hover,
16 | .skin-purple .main-header .navbar .nav .open > a:focus,
17 | .skin-purple .main-header .navbar .nav > .active > a {
18 | background: rgba(0, 0, 0, 0.1);
19 | color: #f6f6f6;
20 | }
21 | .skin-purple .main-header .navbar .sidebar-toggle {
22 | color: #ffffff;
23 | }
24 | .skin-purple .main-header .navbar .sidebar-toggle:hover {
25 | color: #f6f6f6;
26 | background: rgba(0, 0, 0, 0.1);
27 | }
28 | .skin-purple .main-header .navbar .sidebar-toggle {
29 | color: #fff;
30 | }
31 | .skin-purple .main-header .navbar .sidebar-toggle:hover {
32 | background-color: #555299;
33 | }
34 | @media (max-width: 767px) {
35 | .skin-purple .main-header .navbar .dropdown-menu li.divider {
36 | background-color: rgba(255, 255, 255, 0.1);
37 | }
38 | .skin-purple .main-header .navbar .dropdown-menu li a {
39 | color: #fff;
40 | }
41 | .skin-purple .main-header .navbar .dropdown-menu li a:hover {
42 | background: #555299;
43 | }
44 | }
45 | .skin-purple .main-header .logo {
46 | background-color: #555299;
47 | color: #ffffff;
48 | border-bottom: 0 solid transparent;
49 | }
50 | .skin-purple .main-header .logo:hover {
51 | background-color: #545096;
52 | }
53 | .skin-purple .main-header li.user-header {
54 | background-color: #605ca8;
55 | }
56 | .skin-purple .content-header {
57 | background: transparent;
58 | }
59 | .skin-purple .wrapper,
60 | .skin-purple .main-sidebar,
61 | .skin-purple .left-side {
62 | background-color: #222d32;
63 | }
64 | .skin-purple .user-panel > .info,
65 | .skin-purple .user-panel > .info > a {
66 | color: #fff;
67 | }
68 | .skin-purple .sidebar-menu > li.header {
69 | color: #4b646f;
70 | background: #1a2226;
71 | }
72 | .skin-purple .sidebar-menu > li > a {
73 | border-left: 3px solid transparent;
74 | }
75 | .skin-purple .sidebar-menu > li:hover > a,
76 | .skin-purple .sidebar-menu > li.active > a {
77 | color: #ffffff;
78 | background: #1e282c;
79 | border-left-color: #605ca8;
80 | }
81 | .skin-purple .sidebar-menu > li > .treeview-menu {
82 | margin: 0 1px;
83 | background: #2c3b41;
84 | }
85 | .skin-purple .sidebar a {
86 | color: #b8c7ce;
87 | }
88 | .skin-purple .sidebar a:hover {
89 | text-decoration: none;
90 | }
91 | .skin-purple .treeview-menu > li > a {
92 | color: #8aa4af;
93 | }
94 | .skin-purple .treeview-menu > li.active > a,
95 | .skin-purple .treeview-menu > li > a:hover {
96 | color: #ffffff;
97 | }
98 | .skin-purple .sidebar-form {
99 | border-radius: 3px;
100 | border: 1px solid #374850;
101 | margin: 10px 10px;
102 | }
103 | .skin-purple .sidebar-form input[type="text"],
104 | .skin-purple .sidebar-form .btn {
105 | box-shadow: none;
106 | background-color: #374850;
107 | border: 1px solid transparent;
108 | height: 35px;
109 | -webkit-transition: all 0.3s ease-in-out;
110 | -o-transition: all 0.3s ease-in-out;
111 | transition: all 0.3s ease-in-out;
112 | }
113 | .skin-purple .sidebar-form input[type="text"] {
114 | color: #666;
115 | border-top-left-radius: 2px;
116 | border-top-right-radius: 0;
117 | border-bottom-right-radius: 0;
118 | border-bottom-left-radius: 2px;
119 | }
120 | .skin-purple .sidebar-form input[type="text"]:focus,
121 | .skin-purple .sidebar-form input[type="text"]:focus + .input-group-btn .btn {
122 | background-color: #fff;
123 | color: #666;
124 | }
125 | .skin-purple .sidebar-form input[type="text"]:focus + .input-group-btn .btn {
126 | border-left-color: #fff;
127 | }
128 | .skin-purple .sidebar-form .btn {
129 | color: #999;
130 | border-top-left-radius: 0;
131 | border-top-right-radius: 2px;
132 | border-bottom-right-radius: 2px;
133 | border-bottom-left-radius: 0;
134 | }
135 |
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/styles/skins/skin-yellow.css:
--------------------------------------------------------------------------------
1 | /*
2 | * Skin: Yellow
3 | * ------------
4 | */
5 | .skin-yellow .main-header .navbar {
6 | background-color: #f39c12;
7 | }
8 | .skin-yellow .main-header .navbar .nav > li > a {
9 | color: #ffffff;
10 | }
11 | .skin-yellow .main-header .navbar .nav > li > a:hover,
12 | .skin-yellow .main-header .navbar .nav > li > a:active,
13 | .skin-yellow .main-header .navbar .nav > li > a:focus,
14 | .skin-yellow .main-header .navbar .nav .open > a,
15 | .skin-yellow .main-header .navbar .nav .open > a:hover,
16 | .skin-yellow .main-header .navbar .nav .open > a:focus,
17 | .skin-yellow .main-header .navbar .nav > .active > a {
18 | background: rgba(0, 0, 0, 0.1);
19 | color: #f6f6f6;
20 | }
21 | .skin-yellow .main-header .navbar .sidebar-toggle {
22 | color: #ffffff;
23 | }
24 | .skin-yellow .main-header .navbar .sidebar-toggle:hover {
25 | color: #f6f6f6;
26 | background: rgba(0, 0, 0, 0.1);
27 | }
28 | .skin-yellow .main-header .navbar .sidebar-toggle {
29 | color: #fff;
30 | }
31 | .skin-yellow .main-header .navbar .sidebar-toggle:hover {
32 | background-color: #e08e0b;
33 | }
34 | @media (max-width: 767px) {
35 | .skin-yellow .main-header .navbar .dropdown-menu li.divider {
36 | background-color: rgba(255, 255, 255, 0.1);
37 | }
38 | .skin-yellow .main-header .navbar .dropdown-menu li a {
39 | color: #fff;
40 | }
41 | .skin-yellow .main-header .navbar .dropdown-menu li a:hover {
42 | background: #e08e0b;
43 | }
44 | }
45 | .skin-yellow .main-header .logo {
46 | background-color: #e08e0b;
47 | color: #ffffff;
48 | border-bottom: 0 solid transparent;
49 | }
50 | .skin-yellow .main-header .logo:hover {
51 | background-color: #db8b0b;
52 | }
53 | .skin-yellow .main-header li.user-header {
54 | background-color: #f39c12;
55 | }
56 | .skin-yellow .content-header {
57 | background: transparent;
58 | }
59 | .skin-yellow .wrapper,
60 | .skin-yellow .main-sidebar,
61 | .skin-yellow .left-side {
62 | background-color: #222d32;
63 | }
64 | .skin-yellow .user-panel > .info,
65 | .skin-yellow .user-panel > .info > a {
66 | color: #fff;
67 | }
68 | .skin-yellow .sidebar-menu > li.header {
69 | color: #4b646f;
70 | background: #1a2226;
71 | }
72 | .skin-yellow .sidebar-menu > li > a {
73 | border-left: 3px solid transparent;
74 | }
75 | .skin-yellow .sidebar-menu > li:hover > a,
76 | .skin-yellow .sidebar-menu > li.active > a {
77 | color: #ffffff;
78 | background: #1e282c;
79 | border-left-color: #f39c12;
80 | }
81 | .skin-yellow .sidebar-menu > li > .treeview-menu {
82 | margin: 0 1px;
83 | background: #2c3b41;
84 | }
85 | .skin-yellow .sidebar a {
86 | color: #b8c7ce;
87 | }
88 | .skin-yellow .sidebar a:hover {
89 | text-decoration: none;
90 | }
91 | .skin-yellow .treeview-menu > li > a {
92 | color: #8aa4af;
93 | }
94 | .skin-yellow .treeview-menu > li.active > a,
95 | .skin-yellow .treeview-menu > li > a:hover {
96 | color: #ffffff;
97 | }
98 | .skin-yellow .sidebar-form {
99 | border-radius: 3px;
100 | border: 1px solid #374850;
101 | margin: 10px 10px;
102 | }
103 | .skin-yellow .sidebar-form input[type="text"],
104 | .skin-yellow .sidebar-form .btn {
105 | box-shadow: none;
106 | background-color: #374850;
107 | border: 1px solid transparent;
108 | height: 35px;
109 | -webkit-transition: all 0.3s ease-in-out;
110 | -o-transition: all 0.3s ease-in-out;
111 | transition: all 0.3s ease-in-out;
112 | }
113 | .skin-yellow .sidebar-form input[type="text"] {
114 | color: #666;
115 | border-top-left-radius: 2px;
116 | border-top-right-radius: 0;
117 | border-bottom-right-radius: 0;
118 | border-bottom-left-radius: 2px;
119 | }
120 | .skin-yellow .sidebar-form input[type="text"]:focus,
121 | .skin-yellow .sidebar-form input[type="text"]:focus + .input-group-btn .btn {
122 | background-color: #fff;
123 | color: #666;
124 | }
125 | .skin-yellow .sidebar-form input[type="text"]:focus + .input-group-btn .btn {
126 | border-left-color: #fff;
127 | }
128 | .skin-yellow .sidebar-form .btn {
129 | color: #999;
130 | border-top-left-radius: 0;
131 | border-top-right-radius: 2px;
132 | border-bottom-right-radius: 2px;
133 | border-bottom-left-radius: 0;
134 | }
135 |
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/scripts/respond.min.js:
--------------------------------------------------------------------------------
1 | /*
2 | ! Respond.js v1.4.2: min/max-width media query polyfill * Copyright 2013 Scott Jehl
3 | * Licensed under https://github.com/scottjehl/Respond/blob/master/LICENSE-MIT
4 | * */
5 |
6 | !function(a){"use strict";a.matchMedia=a.matchMedia||function(a){var b,c=a.documentElement,d=c.firstElementChild||c.firstChild,e=a.createElement("body"),f=a.createElement("div");return f.id="mq-test-1",f.style.cssText="position:absolute;top:-100em",e.style.background="none",e.appendChild(f),function(a){return f.innerHTML='',c.insertBefore(e,d),b=42===f.offsetWidth,c.removeChild(e),{matches:b,media:a}}}(a.document)}(this),function(a){"use strict";function b(){u(!0)}var c={};a.respond=c,c.update=function(){};var d=[],e=function(){var b=!1;try{b=new a.XMLHttpRequest}catch(c){b=new a.ActiveXObject("Microsoft.XMLHTTP")}return function(){return b}}(),f=function(a,b){var c=e();c&&(c.open("GET",a,!0),c.onreadystatechange=function(){4!==c.readyState||200!==c.status&&304!==c.status||b(c.responseText)},4!==c.readyState&&c.send(null))};if(c.ajax=f,c.queue=d,c.regex={media:/@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi,keyframes:/@(?:\-(?:o|moz|webkit)\-)?keyframes[^\{]+\{(?:[^\{\}]*\{[^\}\{]*\})+[^\}]*\}/gi,urls:/(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g,findStyles:/@media *([^\{]+)\{([\S\s]+?)$/,only:/(only\s+)?([a-zA-Z]+)\s?/,minw:/\([\s]*min\-width\s*:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/,maxw:/\([\s]*max\-width\s*:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/},c.mediaQueriesSupported=a.matchMedia&&null!==a.matchMedia("only all")&&a.matchMedia("only all").matches,!c.mediaQueriesSupported){var g,h,i,j=a.document,k=j.documentElement,l=[],m=[],n=[],o={},p=30,q=j.getElementsByTagName("head")[0]||k,r=j.getElementsByTagName("base")[0],s=q.getElementsByTagName("link"),t=function(){var a,b=j.createElement("div"),c=j.body,d=k.style.fontSize,e=c&&c.style.fontSize,f=!1;return b.style.cssText="position:absolute;font-size:1em;width:1em",c||(c=f=j.createElement("body"),c.style.background="none"),k.style.fontSize="100%",c.style.fontSize="100%",c.appendChild(b),f&&k.insertBefore(c,k.firstChild),a=b.offsetWidth,f?k.removeChild(c):c.removeChild(b),k.style.fontSize=d,e&&(c.style.fontSize=e),a=i=parseFloat(a)},u=function(b){var c="clientWidth",d=k[c],e="CSS1Compat"===j.compatMode&&d||j.body[c]||d,f={},o=s[s.length-1],r=(new Date).getTime();if(b&&g&&p>r-g)return a.clearTimeout(h),h=a.setTimeout(u,p),void 0;g=r;for(var v in l)if(l.hasOwnProperty(v)){var w=l[v],x=w.minw,y=w.maxw,z=null===x,A=null===y,B="em";x&&(x=parseFloat(x)*(x.indexOf(B)>-1?i||t():1)),y&&(y=parseFloat(y)*(y.indexOf(B)>-1?i||t():1)),w.hasquery&&(z&&A||!(z||e>=x)||!(A||y>=e))||(f[w.media]||(f[w.media]=[]),f[w.media].push(m[w.rules]))}for(var C in n)n.hasOwnProperty(C)&&n[C]&&n[C].parentNode===q&&q.removeChild(n[C]);n.length=0;for(var D in f)if(f.hasOwnProperty(D)){var E=j.createElement("style"),F=f[D].join("\n");E.type="text/css",E.media=D,q.insertBefore(E,o.nextSibling),E.styleSheet?E.styleSheet.cssText=F:E.appendChild(j.createTextNode(F)),n.push(E)}},v=function(a,b,d){var e=a.replace(c.regex.keyframes,"").match(c.regex.media),f=e&&e.length||0;b=b.substring(0,b.lastIndexOf("/"));var g=function(a){return a.replace(c.regex.urls,"$1"+b+"$2$3")},h=!f&&d;b.length&&(b+="/"),h&&(f=1);for(var i=0;f>i;i++){var j,k,n,o;h?(j=d,m.push(g(a))):(j=e[i].match(c.regex.findStyles)&&RegExp.$1,m.push(RegExp.$2&&g(RegExp.$2))),n=j.split(","),o=n.length;for(var p=0;o>p;p++)k=n[p],l.push({media:k.split("(")[0].match(c.regex.only)&&RegExp.$2||"all",rules:m.length-1,hasquery:k.indexOf("(")>-1,minw:k.match(c.regex.minw)&&parseFloat(RegExp.$1)+(RegExp.$2||""),maxw:k.match(c.regex.maxw)&&parseFloat(RegExp.$1)+(RegExp.$2||"")})}u()},w=function(){if(d.length){var b=d.shift();f(b.href,function(c){v(c,b.href,b.media),o[b.href]=!0,a.setTimeout(function(){w()},0)})}},x=function(){for(var b=0;b li > a {
9 | color: #ffffff;
10 | }
11 | .skin-blue .main-header .navbar .nav > li > a:hover,
12 | .skin-blue .main-header .navbar .nav > li > a:active,
13 | .skin-blue .main-header .navbar .nav > li > a:focus,
14 | .skin-blue .main-header .navbar .nav .open > a,
15 | .skin-blue .main-header .navbar .nav .open > a:hover,
16 | .skin-blue .main-header .navbar .nav .open > a:focus,
17 | .skin-blue .main-header .navbar .nav > .active > a {
18 | background: rgba(0, 0, 0, 0.1);
19 | color: #f6f6f6;
20 | }
21 | .skin-blue .main-header .navbar .sidebar-toggle {
22 | color: #ffffff;
23 | }
24 | .skin-blue .main-header .navbar .sidebar-toggle:hover {
25 | color: #f6f6f6;
26 | background: rgba(0, 0, 0, 0.1);
27 | }
28 | .skin-blue .main-header .navbar .sidebar-toggle {
29 | color: #fff;
30 | }
31 | .skin-blue .main-header .navbar .sidebar-toggle:hover {
32 | background-color: #367fa9;
33 | }
34 | @media (max-width: 767px) {
35 | .skin-blue .main-header .navbar .dropdown-menu li.divider {
36 | background-color: rgba(255, 255, 255, 0.1);
37 | }
38 | .skin-blue .main-header .navbar .dropdown-menu li a {
39 | color: #fff;
40 | }
41 | .skin-blue .main-header .navbar .dropdown-menu li a:hover {
42 | background: #367fa9;
43 | }
44 | }
45 | .skin-blue .main-header .logo {
46 | background-color: #367fa9;
47 | color: #ffffff;
48 | border-bottom: 0 solid transparent;
49 | }
50 | .skin-blue .main-header .logo:hover {
51 | background-color: #357ca5;
52 | }
53 | .skin-blue .main-header li.user-header {
54 | background-color: #3c8dbc;
55 | }
56 | .skin-blue .content-header {
57 | background: transparent;
58 | }
59 | .skin-blue .wrapper,
60 | .skin-blue .main-sidebar,
61 | .skin-blue .left-side {
62 | background-color: #222d32;
63 | }
64 | .skin-blue .user-panel > .info,
65 | .skin-blue .user-panel > .info > a {
66 | color: #fff;
67 | }
68 | .skin-blue .sidebar-menu > li.header {
69 | color: #4b646f;
70 | background: #1a2226;
71 | }
72 | .skin-blue .sidebar-menu > li > a {
73 | border-left: 3px solid transparent;
74 | }
75 | .skin-blue .sidebar-menu > li:hover > a,
76 | .skin-blue .sidebar-menu > li.active > a {
77 | color: #ffffff;
78 | background: #1e282c;
79 | border-left-color: #3c8dbc;
80 | }
81 | .skin-blue .sidebar-menu > li > .treeview-menu {
82 | margin: 0 1px;
83 | background: #2c3b41;
84 | }
85 | .skin-blue .sidebar a {
86 | color: #b8c7ce;
87 | }
88 | .skin-blue .sidebar a:hover {
89 | text-decoration: none;
90 | }
91 | .skin-blue .treeview-menu > li > a {
92 | color: #8aa4af;
93 | }
94 | .skin-blue .treeview-menu > li.active > a,
95 | .skin-blue .treeview-menu > li > a:hover {
96 | color: #ffffff;
97 | }
98 | .skin-blue .sidebar-form {
99 | border-radius: 3px;
100 | border: 1px solid #374850;
101 | margin: 10px 10px;
102 | }
103 | .skin-blue .sidebar-form input[type="text"],
104 | .skin-blue .sidebar-form .btn {
105 | box-shadow: none;
106 | background-color: #374850;
107 | border: 1px solid transparent;
108 | height: 35px;
109 | -webkit-transition: all 0.3s ease-in-out;
110 | -o-transition: all 0.3s ease-in-out;
111 | transition: all 0.3s ease-in-out;
112 | }
113 | .skin-blue .sidebar-form input[type="text"] {
114 | color: #666;
115 | border-top-left-radius: 2px;
116 | border-top-right-radius: 0;
117 | border-bottom-right-radius: 0;
118 | border-bottom-left-radius: 2px;
119 | }
120 | .skin-blue .sidebar-form input[type="text"]:focus,
121 | .skin-blue .sidebar-form input[type="text"]:focus + .input-group-btn .btn {
122 | background-color: #fff;
123 | color: #666;
124 | }
125 | .skin-blue .sidebar-form input[type="text"]:focus + .input-group-btn .btn {
126 | border-left-color: #fff;
127 | }
128 | .skin-blue .sidebar-form .btn {
129 | color: #999;
130 | border-top-left-radius: 0;
131 | border-top-right-radius: 2px;
132 | border-bottom-right-radius: 2px;
133 | border-bottom-left-radius: 0;
134 | }
135 | .skin-blue.layout-top-nav .main-header > .logo {
136 | background-color: #3c8dbc;
137 | color: #ffffff;
138 | border-bottom: 0 solid transparent;
139 | }
140 | .skin-blue.layout-top-nav .main-header > .logo:hover {
141 | background-color: #3b8ab8;
142 | }
143 |
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/scripts/icheck.min.js:
--------------------------------------------------------------------------------
1 | /*! iCheck v1.0.1 by Damir Sultanov, http://git.io/arlzeA, MIT Licensed */
2 | (function(h){function F(a,b,d){var c=a[0],e=/er/.test(d)?m:/bl/.test(d)?s:l,f=d==H?{checked:c[l],disabled:c[s],indeterminate:"true"==a.attr(m)||"false"==a.attr(w)}:c[e];if(/^(ch|di|in)/.test(d)&&!f)D(a,e);else if(/^(un|en|de)/.test(d)&&f)t(a,e);else if(d==H)for(e in f)f[e]?D(a,e,!0):t(a,e,!0);else if(!b||"toggle"==d){if(!b)a[p]("ifClicked");f?c[n]!==u&&t(a,e):D(a,e)}}function D(a,b,d){var c=a[0],e=a.parent(),f=b==l,A=b==m,B=b==s,K=A?w:f?E:"enabled",p=k(a,K+x(c[n])),N=k(a,b+x(c[n]));if(!0!==c[b]){if(!d&&
3 | b==l&&c[n]==u&&c.name){var C=a.closest("form"),r='input[name="'+c.name+'"]',r=C.length?C.find(r):h(r);r.each(function(){this!==c&&h(this).data(q)&&t(h(this),b)})}A?(c[b]=!0,c[l]&&t(a,l,"force")):(d||(c[b]=!0),f&&c[m]&&t(a,m,!1));L(a,f,b,d)}c[s]&&k(a,y,!0)&&e.find("."+I).css(y,"default");e[v](N||k(a,b)||"");B?e.attr("aria-disabled","true"):e.attr("aria-checked",A?"mixed":"true");e[z](p||k(a,K)||"")}function t(a,b,d){var c=a[0],e=a.parent(),f=b==l,h=b==m,q=b==s,p=h?w:f?E:"enabled",t=k(a,p+x(c[n])),
4 | u=k(a,b+x(c[n]));if(!1!==c[b]){if(h||!d||"force"==d)c[b]=!1;L(a,f,p,d)}!c[s]&&k(a,y,!0)&&e.find("."+I).css(y,"pointer");e[z](u||k(a,b)||"");q?e.attr("aria-disabled","false"):e.attr("aria-checked","false");e[v](t||k(a,p)||"")}function M(a,b){if(a.data(q)){a.parent().html(a.attr("style",a.data(q).s||""));if(b)a[p](b);a.off(".i").unwrap();h(G+'[for="'+a[0].id+'"]').add(a.closest(G)).off(".i")}}function k(a,b,d){if(a.data(q))return a.data(q).o[b+(d?"":"Class")]}function x(a){return a.charAt(0).toUpperCase()+
5 | a.slice(1)}function L(a,b,d,c){if(!c){if(b)a[p]("ifToggled");a[p]("ifChanged")[p]("if"+x(d))}}var q="iCheck",I=q+"-helper",u="radio",l="checked",E="un"+l,s="disabled",w="determinate",m="in"+w,H="update",n="type",v="addClass",z="removeClass",p="trigger",G="label",y="cursor",J=/ipad|iphone|ipod|android|blackberry|windows phone|opera mini|silk/i.test(navigator.userAgent);h.fn[q]=function(a,b){var d='input[type="checkbox"], input[type="'+u+'"]',c=h(),e=function(a){a.each(function(){var a=h(this);c=a.is(d)?
6 | c.add(a):c.add(a.find(d))})};if(/^(check|uncheck|toggle|indeterminate|determinate|disable|enable|update|destroy)$/i.test(a))return a=a.toLowerCase(),e(this),c.each(function(){var c=h(this);"destroy"==a?M(c,"ifDestroyed"):F(c,!0,a);h.isFunction(b)&&b()});if("object"!=typeof a&&a)return this;var f=h.extend({checkedClass:l,disabledClass:s,indeterminateClass:m,labelHover:!0,aria:!1},a),k=f.handle,B=f.hoverClass||"hover",x=f.focusClass||"focus",w=f.activeClass||"active",y=!!f.labelHover,C=f.labelHoverClass||
7 | "hover",r=(""+f.increaseArea).replace("%","")|0;if("checkbox"==k||k==u)d='input[type="'+k+'"]';-50>r&&(r=-50);e(this);return c.each(function(){var a=h(this);M(a);var c=this,b=c.id,e=-r+"%",d=100+2*r+"%",d={position:"absolute",top:e,left:e,display:"block",width:d,height:d,margin:0,padding:0,background:"#fff",border:0,opacity:0},e=J?{position:"absolute",visibility:"hidden"}:r?d:{position:"absolute",opacity:0},k="checkbox"==c[n]?f.checkboxClass||"icheckbox":f.radioClass||"i"+u,m=h(G+'[for="'+b+'"]').add(a.closest(G)),
8 | A=!!f.aria,E=q+"-"+Math.random().toString(36).replace("0.",""),g='")[p]("ifCreated").parent().append(f.insert);d=h('').css(d).appendTo(g);a.data(q,{o:f,s:a.attr("style")}).css(e);f.inheritClass&&g[v](c.className||"");f.inheritID&&b&&g.attr("id",q+"-"+b);"static"==g.css("position")&&g.css("position","relative");F(a,!0,H);
9 | if(m.length)m.on("click.i mouseover.i mouseout.i touchbegin.i touchend.i",function(b){var d=b[n],e=h(this);if(!c[s]){if("click"==d){if(h(b.target).is("a"))return;F(a,!1,!0)}else y&&(/ut|nd/.test(d)?(g[z](B),e[z](C)):(g[v](B),e[v](C)));if(J)b.stopPropagation();else return!1}});a.on("click.i focus.i blur.i keyup.i keydown.i keypress.i",function(b){var d=b[n];b=b.keyCode;if("click"==d)return!1;if("keydown"==d&&32==b)return c[n]==u&&c[l]||(c[l]?t(a,l):D(a,l)),!1;if("keyup"==d&&c[n]==u)!c[l]&&D(a,l);else if(/us|ur/.test(d))g["blur"==
10 | d?z:v](x)});d.on("click mousedown mouseup mouseover mouseout touchbegin.i touchend.i",function(b){var d=b[n],e=/wn|up/.test(d)?w:B;if(!c[s]){if("click"==d)F(a,!1,!0);else{if(/wn|er|in/.test(d))g[v](e);else g[z](e+" "+w);if(m.length&&y&&e==B)m[/ut|nd/.test(d)?z:v](C)}if(J)b.stopPropagation();else return!1}})})}})(window.jQuery||window.Zepto);
11 |
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/styles/skins/skin-black.css:
--------------------------------------------------------------------------------
1 | /*
2 | * Skin: Black
3 | * -----------
4 | */
5 | /* skin-black navbar */
6 | .skin-black .main-header {
7 | -webkit-box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.05);
8 | box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.05);
9 | }
10 | .skin-black .main-header .navbar-toggle {
11 | color: #333;
12 | }
13 | .skin-black .main-header .navbar-brand {
14 | color: #333;
15 | border-right: 1px solid #eee;
16 | }
17 | .skin-black .main-header > .navbar {
18 | background-color: #ffffff;
19 | }
20 | .skin-black .main-header > .navbar .nav > li > a {
21 | color: #333333;
22 | }
23 | .skin-black .main-header > .navbar .nav > li > a:hover,
24 | .skin-black .main-header > .navbar .nav > li > a:active,
25 | .skin-black .main-header > .navbar .nav > li > a:focus,
26 | .skin-black .main-header > .navbar .nav .open > a,
27 | .skin-black .main-header > .navbar .nav .open > a:hover,
28 | .skin-black .main-header > .navbar .nav .open > a:focus,
29 | .skin-black .main-header > .navbar .nav > .active > a {
30 | background: #ffffff;
31 | color: #999999;
32 | }
33 | .skin-black .main-header > .navbar .sidebar-toggle {
34 | color: #333333;
35 | }
36 | .skin-black .main-header > .navbar .sidebar-toggle:hover {
37 | color: #999999;
38 | background: #ffffff;
39 | }
40 | .skin-black .main-header > .navbar > .sidebar-toggle {
41 | color: #333;
42 | border-right: 1px solid #eee;
43 | }
44 | .skin-black .main-header > .navbar .navbar-nav > li > a {
45 | border-right: 1px solid #eee;
46 | }
47 | .skin-black .main-header > .navbar .navbar-custom-menu .navbar-nav > li > a,
48 | .skin-black .main-header > .navbar .navbar-right > li > a {
49 | border-left: 1px solid #eee;
50 | border-right-width: 0;
51 | }
52 | .skin-black .main-header > .logo {
53 | background-color: #ffffff;
54 | color: #333333;
55 | border-bottom: 0 solid transparent;
56 | border-right: 1px solid #eee;
57 | }
58 | .skin-black .main-header > .logo:hover {
59 | background-color: #fcfcfc;
60 | }
61 | @media (max-width: 767px) {
62 | .skin-black .main-header > .logo {
63 | background-color: #222222;
64 | color: #ffffff;
65 | border-bottom: 0 solid transparent;
66 | border-right: none;
67 | }
68 | .skin-black .main-header > .logo:hover {
69 | background-color: #1f1f1f;
70 | }
71 | }
72 | .skin-black .main-header li.user-header {
73 | background-color: #222;
74 | }
75 | .skin-black .content-header {
76 | background: transparent;
77 | box-shadow: none;
78 | }
79 | .skin-black .wrapper,
80 | .skin-black .main-sidebar,
81 | .skin-black .left-side {
82 | background-color: #222d32;
83 | }
84 | .skin-black .user-panel > .info,
85 | .skin-black .user-panel > .info > a {
86 | color: #fff;
87 | }
88 | .skin-black .sidebar-menu > li.header {
89 | color: #4b646f;
90 | background: #1a2226;
91 | }
92 | .skin-black .sidebar-menu > li > a {
93 | border-left: 3px solid transparent;
94 | }
95 | .skin-black .sidebar-menu > li:hover > a,
96 | .skin-black .sidebar-menu > li.active > a {
97 | color: #ffffff;
98 | background: #1e282c;
99 | border-left-color: #ffffff;
100 | }
101 | .skin-black .sidebar-menu > li > .treeview-menu {
102 | margin: 0 1px;
103 | background: #2c3b41;
104 | }
105 | .skin-black .sidebar a {
106 | color: #b8c7ce;
107 | }
108 | .skin-black .sidebar a:hover {
109 | text-decoration: none;
110 | }
111 | .skin-black .treeview-menu > li > a {
112 | color: #8aa4af;
113 | }
114 | .skin-black .treeview-menu > li.active > a,
115 | .skin-black .treeview-menu > li > a:hover {
116 | color: #ffffff;
117 | }
118 | .skin-black .sidebar-form {
119 | border-radius: 3px;
120 | border: 1px solid #374850;
121 | margin: 10px 10px;
122 | }
123 | .skin-black .sidebar-form input[type="text"],
124 | .skin-black .sidebar-form .btn {
125 | box-shadow: none;
126 | background-color: #374850;
127 | border: 1px solid transparent;
128 | height: 35px;
129 | -webkit-transition: all 0.3s ease-in-out;
130 | -o-transition: all 0.3s ease-in-out;
131 | transition: all 0.3s ease-in-out;
132 | }
133 | .skin-black .sidebar-form input[type="text"] {
134 | color: #666;
135 | border-top-left-radius: 2px;
136 | border-top-right-radius: 0;
137 | border-bottom-right-radius: 0;
138 | border-bottom-left-radius: 2px;
139 | }
140 | .skin-black .sidebar-form input[type="text"]:focus,
141 | .skin-black .sidebar-form input[type="text"]:focus + .input-group-btn .btn {
142 | background-color: #fff;
143 | color: #666;
144 | }
145 | .skin-black .sidebar-form input[type="text"]:focus + .input-group-btn .btn {
146 | border-left-color: #fff;
147 | }
148 | .skin-black .sidebar-form .btn {
149 | color: #999;
150 | border-top-left-radius: 0;
151 | border-top-right-radius: 2px;
152 | border-bottom-right-radius: 2px;
153 | border-bottom-left-radius: 0;
154 | }
155 |
--------------------------------------------------------------------------------
/src/WechatBribery/Common/Wxpay.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Threading.Tasks;
5 | using System.Net.Http;
6 | using System.Text;
7 | using System.IO;
8 | using System.Security.Cryptography;
9 | using WechatBribery.Models;
10 | using static Newtonsoft.Json.JsonConvert;
11 |
12 | namespace WechatBribery.Common
13 | {
14 | public static class Wxpay
15 | {
16 | public static async Task AuthorizeAsync(string code)
17 | {
18 | using (var client = new HttpClient { BaseAddress = new Uri("https://api.weixin.qq.com") })
19 | {
20 | // 获取用户基本信息
21 | var result = await client.GetAsync($"/sns/oauth2/access_token?appid={ Startup.Config["WeChat:AppId"] }&secret={ Startup.Config["WeChat:Secret"] }&code={ code }&grant_type=authorization_code");
22 | var jsonStr = await result.Content.ReadAsStringAsync();
23 | var json = DeserializeObject(jsonStr);
24 | var ret = new OpenIdViewModel();
25 | ret.AccessToken = json.access_token;
26 | ret.AccessTokenExpire = DateTime.Now.AddSeconds((int)json.expires_in);
27 | ret.RefreshToken = json.refresh_token;
28 | ret.AccessTokenExpire = DateTime.Now.AddDays(30);
29 | ret.Id = json.openid;
30 |
31 | // 获取用户头像及昵称
32 | var result2 = await client.GetAsync($"/sns/userinfo?access_token={ ret.AccessToken }&openid={ ret.Id }&lang=zh_CN");
33 | var jsonStr2 = await result2.Content.ReadAsStringAsync();
34 | var json2 = DeserializeObject(jsonStr2);
35 | ret.AvatarUrl = json2.headimgurl;
36 | ret.NickName = json2.nickname;
37 |
38 | return ret;
39 | }
40 | }
41 |
42 | public static async Task TransferMoneyAsync(Guid DeliverId, string OpenId, long Price, string Description)
43 | {
44 | var nounce = Guid.NewGuid().ToString().Replace("-", "");
45 | var requestUrl = "";
46 | var dic = new Dictionary();
47 | dic.Add("mch_appid", Startup.Config["WeChat:AppId"]);
48 | dic.Add("mchid", Startup.Config["WeChat:MchId"]);
49 | dic.Add("nonce_str", nounce);
50 | dic.Add("partner_trade_no", DeliverId.ToString());
51 | dic.Add("openid", OpenId);
52 | dic.Add("amount", Price.ToString());
53 | dic.Add("desc", Description);
54 | dic.Add("spbill_create_ip", Startup.Config["Ip"]);
55 | dic.Add("check_name", "NO_CHECK");
56 | foreach (var x in dic.OrderBy(x => x.Key))
57 | requestUrl += x.Key + "=" + x.Value + "&";
58 | requestUrl += "key=" + Startup.Config["WeChat:SignKey"];
59 | string requestXml;
60 |
61 | using (var md5 = MD5.Create())
62 | {
63 | var result = md5.ComputeHash(Encoding.UTF8.GetBytes(requestUrl));
64 | var strResult = ToHex(result, true);
65 | requestXml = $@"
66 | { Startup.Config["WeChat:AppId"] }
67 | { Startup.Config["WeChat:MchId"] }
68 | { nounce }
69 | { DeliverId }
70 | { OpenId }
71 | { Price }
72 | { Description }
73 | { Startup.Config["Ip"] }
74 | NO_CHECK
75 | { strResult }
76 | ";
77 | }
78 |
79 | var handler = new HttpClientHandler();
80 | var path = Path.Combine(Directory.GetCurrentDirectory(), "apiclient_cert.p12");
81 | handler.ClientCertificates.Add(new System.Security.Cryptography.X509Certificates.X509Certificate2(path, Startup.Config["WeChat:MchId"]));
82 | using (var client = new HttpClient(handler) { BaseAddress = new Uri("https://api.mch.weixin.qq.com") })
83 | {
84 | var result = await client.PostAsync("/mmpaymkttransfers/promotion/transfers", new ByteArrayContent(Encoding.UTF8.GetBytes(requestXml)));
85 | var html = await result.Content.ReadAsStringAsync();
86 | if (html.IndexOf("ERROR") == 0)
87 | return true;
88 | return false;
89 | }
90 | }
91 |
92 | public static string ToHex(this byte[] bytes, bool upperCase)
93 | {
94 | StringBuilder result = new StringBuilder(bytes.Length * 2);
95 |
96 | for (int i = 0; i < bytes.Length; i++)
97 | result.Append(bytes[i].ToString(upperCase ? "X2" : "x2"));
98 |
99 | return result.ToString();
100 | }
101 | }
102 | }
103 |
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/styles/bootstrap-colorpicker.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Colorpicker
3 | * http://mjolnic.github.io/bootstrap-colorpicker/
4 | *
5 | * Originally written by (c) 2012 Stefan Petre
6 | * Licensed under the Apache License v2.0
7 | * http://www.apache.org/licenses/LICENSE-2.0.txt
8 | *
9 | */
10 |
11 | .colorpicker-saturation {
12 | float: left;
13 | width: 100px;
14 | height: 100px;
15 | cursor: crosshair;
16 | background-image: url("img/saturation.png");
17 | }
18 |
19 | .colorpicker-saturation i {
20 | position: absolute;
21 | top: 0;
22 | left: 0;
23 | display: block;
24 | width: 5px;
25 | height: 5px;
26 | margin: -4px 0 0 -4px;
27 | border: 1px solid #000;
28 | -webkit-border-radius: 5px;
29 | -moz-border-radius: 5px;
30 | border-radius: 5px;
31 | }
32 |
33 | .colorpicker-saturation i b {
34 | display: block;
35 | width: 5px;
36 | height: 5px;
37 | border: 1px solid #fff;
38 | -webkit-border-radius: 5px;
39 | -moz-border-radius: 5px;
40 | border-radius: 5px;
41 | }
42 |
43 | .colorpicker-hue,
44 | .colorpicker-alpha {
45 | float: left;
46 | width: 15px;
47 | height: 100px;
48 | margin-bottom: 4px;
49 | margin-left: 4px;
50 | cursor: row-resize;
51 | }
52 |
53 | .colorpicker-hue i,
54 | .colorpicker-alpha i {
55 | position: absolute;
56 | top: 0;
57 | left: 0;
58 | display: block;
59 | width: 100%;
60 | height: 1px;
61 | margin-top: -1px;
62 | background: #000;
63 | border-top: 1px solid #fff;
64 | }
65 |
66 | .colorpicker-hue {
67 | background-image: url("img/hue.png");
68 | }
69 |
70 | .colorpicker-alpha {
71 | display: none;
72 | background-image: url("img/alpha.png");
73 | }
74 |
75 | .colorpicker {
76 | top: 0;
77 | left: 0;
78 | z-index: 2500;
79 | min-width: 130px;
80 | padding: 4px;
81 | margin-top: 1px;
82 | -webkit-border-radius: 4px;
83 | -moz-border-radius: 4px;
84 | border-radius: 4px;
85 | *zoom: 1;
86 | }
87 |
88 | .colorpicker:before,
89 | .colorpicker:after {
90 | display: table;
91 | line-height: 0;
92 | content: "";
93 | }
94 |
95 | .colorpicker:after {
96 | clear: both;
97 | }
98 |
99 | .colorpicker:before {
100 | position: absolute;
101 | top: -7px;
102 | left: 6px;
103 | display: inline-block;
104 | border-right: 7px solid transparent;
105 | border-bottom: 7px solid #ccc;
106 | border-left: 7px solid transparent;
107 | border-bottom-color: rgba(0, 0, 0, 0.2);
108 | content: '';
109 | }
110 |
111 | .colorpicker:after {
112 | position: absolute;
113 | top: -6px;
114 | left: 7px;
115 | display: inline-block;
116 | border-right: 6px solid transparent;
117 | border-bottom: 6px solid #ffffff;
118 | border-left: 6px solid transparent;
119 | content: '';
120 | }
121 |
122 | .colorpicker div {
123 | position: relative;
124 | }
125 |
126 | .colorpicker.colorpicker-with-alpha {
127 | min-width: 140px;
128 | }
129 |
130 | .colorpicker.colorpicker-with-alpha .colorpicker-alpha {
131 | display: block;
132 | }
133 |
134 | .colorpicker-color {
135 | height: 10px;
136 | margin-top: 5px;
137 | clear: both;
138 | background-image: url("img/alpha.png");
139 | background-position: 0 100%;
140 | }
141 |
142 | .colorpicker-color div {
143 | height: 10px;
144 | }
145 |
146 | .colorpicker-element .input-group-addon i {
147 | display: block;
148 | width: 16px;
149 | height: 16px;
150 | cursor: pointer;
151 | }
152 |
153 | .colorpicker.colorpicker-inline {
154 | position: relative;
155 | display: inline-block;
156 | float: none;
157 | }
158 |
159 | .colorpicker.colorpicker-horizontal {
160 | width: 110px;
161 | height: auto;
162 | min-width: 110px;
163 | }
164 |
165 | .colorpicker.colorpicker-horizontal .colorpicker-saturation {
166 | margin-bottom: 4px;
167 | }
168 |
169 | .colorpicker.colorpicker-horizontal .colorpicker-color {
170 | width: 100px;
171 | }
172 |
173 | .colorpicker.colorpicker-horizontal .colorpicker-hue,
174 | .colorpicker.colorpicker-horizontal .colorpicker-alpha {
175 | float: left;
176 | width: 100px;
177 | height: 15px;
178 | margin-bottom: 4px;
179 | margin-left: 0;
180 | cursor: col-resize;
181 | }
182 |
183 | .colorpicker.colorpicker-horizontal .colorpicker-hue i,
184 | .colorpicker.colorpicker-horizontal .colorpicker-alpha i {
185 | position: absolute;
186 | top: 0;
187 | left: 0;
188 | display: block;
189 | width: 1px;
190 | height: 15px;
191 | margin-top: 0;
192 | background: #ffffff;
193 | border: none;
194 | }
195 |
196 | .colorpicker.colorpicker-horizontal .colorpicker-hue {
197 | background-image: url("img/hue-horizontal.png");
198 | }
199 |
200 | .colorpicker.colorpicker-horizontal .colorpicker-alpha {
201 | background-image: url("img/alpha-horizontal.png");
202 | }
203 |
204 | .colorpicker.colorpicker-hidden {
205 | display: none;
206 | }
207 |
208 | .colorpicker.colorpicker-visible {
209 | display: block;
210 | }
211 |
212 | .colorpicker-inline.colorpicker-visible {
213 | display: inline-block;
214 | }
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/styles/skins/skin-red-light.css:
--------------------------------------------------------------------------------
1 | /*
2 | * Skin: Red
3 | * ---------
4 | */
5 | .skin-red-light .main-header .navbar {
6 | background-color: #dd4b39;
7 | }
8 | .skin-red-light .main-header .navbar .nav > li > a {
9 | color: #ffffff;
10 | }
11 | .skin-red-light .main-header .navbar .nav > li > a:hover,
12 | .skin-red-light .main-header .navbar .nav > li > a:active,
13 | .skin-red-light .main-header .navbar .nav > li > a:focus,
14 | .skin-red-light .main-header .navbar .nav .open > a,
15 | .skin-red-light .main-header .navbar .nav .open > a:hover,
16 | .skin-red-light .main-header .navbar .nav .open > a:focus,
17 | .skin-red-light .main-header .navbar .nav > .active > a {
18 | background: rgba(0, 0, 0, 0.1);
19 | color: #f6f6f6;
20 | }
21 | .skin-red-light .main-header .navbar .sidebar-toggle {
22 | color: #ffffff;
23 | }
24 | .skin-red-light .main-header .navbar .sidebar-toggle:hover {
25 | color: #f6f6f6;
26 | background: rgba(0, 0, 0, 0.1);
27 | }
28 | .skin-red-light .main-header .navbar .sidebar-toggle {
29 | color: #fff;
30 | }
31 | .skin-red-light .main-header .navbar .sidebar-toggle:hover {
32 | background-color: #d73925;
33 | }
34 | @media (max-width: 767px) {
35 | .skin-red-light .main-header .navbar .dropdown-menu li.divider {
36 | background-color: rgba(255, 255, 255, 0.1);
37 | }
38 | .skin-red-light .main-header .navbar .dropdown-menu li a {
39 | color: #fff;
40 | }
41 | .skin-red-light .main-header .navbar .dropdown-menu li a:hover {
42 | background: #d73925;
43 | }
44 | }
45 | .skin-red-light .main-header .logo {
46 | background-color: #dd4b39;
47 | color: #ffffff;
48 | border-bottom: 0 solid transparent;
49 | }
50 | .skin-red-light .main-header .logo:hover {
51 | background-color: #dc4735;
52 | }
53 | .skin-red-light .main-header li.user-header {
54 | background-color: #dd4b39;
55 | }
56 | .skin-red-light .content-header {
57 | background: transparent;
58 | }
59 | .skin-red-light .wrapper,
60 | .skin-red-light .main-sidebar,
61 | .skin-red-light .left-side {
62 | background-color: #f9fafc;
63 | }
64 | .skin-red-light .content-wrapper,
65 | .skin-red-light .main-footer {
66 | border-left: 1px solid #d2d6de;
67 | }
68 | .skin-red-light .user-panel > .info,
69 | .skin-red-light .user-panel > .info > a {
70 | color: #444444;
71 | }
72 | .skin-red-light .sidebar-menu > li {
73 | -webkit-transition: border-left-color 0.3s ease;
74 | -o-transition: border-left-color 0.3s ease;
75 | transition: border-left-color 0.3s ease;
76 | }
77 | .skin-red-light .sidebar-menu > li.header {
78 | color: #848484;
79 | background: #f9fafc;
80 | }
81 | .skin-red-light .sidebar-menu > li > a {
82 | border-left: 3px solid transparent;
83 | font-weight: 600;
84 | }
85 | .skin-red-light .sidebar-menu > li:hover > a,
86 | .skin-red-light .sidebar-menu > li.active > a {
87 | color: #000000;
88 | background: #f4f4f5;
89 | }
90 | .skin-red-light .sidebar-menu > li.active {
91 | border-left-color: #dd4b39;
92 | }
93 | .skin-red-light .sidebar-menu > li.active > a {
94 | font-weight: 600;
95 | }
96 | .skin-red-light .sidebar-menu > li > .treeview-menu {
97 | background: #f4f4f5;
98 | }
99 | .skin-red-light .sidebar a {
100 | color: #444444;
101 | }
102 | .skin-red-light .sidebar a:hover {
103 | text-decoration: none;
104 | }
105 | .skin-red-light .treeview-menu > li > a {
106 | color: #777777;
107 | }
108 | .skin-red-light .treeview-menu > li.active > a,
109 | .skin-red-light .treeview-menu > li > a:hover {
110 | color: #000000;
111 | }
112 | .skin-red-light .treeview-menu > li.active > a {
113 | font-weight: 600;
114 | }
115 | .skin-red-light .sidebar-form {
116 | border-radius: 3px;
117 | border: 1px solid #d2d6de;
118 | margin: 10px 10px;
119 | }
120 | .skin-red-light .sidebar-form input[type="text"],
121 | .skin-red-light .sidebar-form .btn {
122 | box-shadow: none;
123 | background-color: #fff;
124 | border: 1px solid transparent;
125 | height: 35px;
126 | -webkit-transition: all 0.3s ease-in-out;
127 | -o-transition: all 0.3s ease-in-out;
128 | transition: all 0.3s ease-in-out;
129 | }
130 | .skin-red-light .sidebar-form input[type="text"] {
131 | color: #666;
132 | border-top-left-radius: 2px;
133 | border-top-right-radius: 0;
134 | border-bottom-right-radius: 0;
135 | border-bottom-left-radius: 2px;
136 | }
137 | .skin-red-light .sidebar-form input[type="text"]:focus,
138 | .skin-red-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn {
139 | background-color: #fff;
140 | color: #666;
141 | }
142 | .skin-red-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn {
143 | border-left-color: #fff;
144 | }
145 | .skin-red-light .sidebar-form .btn {
146 | color: #999;
147 | border-top-left-radius: 0;
148 | border-top-right-radius: 2px;
149 | border-bottom-right-radius: 2px;
150 | border-bottom-left-radius: 0;
151 | }
152 | @media (min-width: 768px) {
153 | .skin-red-light.sidebar-mini.sidebar-collapse .sidebar-menu > li > .treeview-menu {
154 | border-left: 1px solid #d2d6de;
155 | }
156 | }
157 |
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/styles/skins/skin-green-light.css:
--------------------------------------------------------------------------------
1 | /*
2 | * Skin: Green
3 | * -----------
4 | */
5 | .skin-green-light .main-header .navbar {
6 | background-color: #00a65a;
7 | }
8 | .skin-green-light .main-header .navbar .nav > li > a {
9 | color: #ffffff;
10 | }
11 | .skin-green-light .main-header .navbar .nav > li > a:hover,
12 | .skin-green-light .main-header .navbar .nav > li > a:active,
13 | .skin-green-light .main-header .navbar .nav > li > a:focus,
14 | .skin-green-light .main-header .navbar .nav .open > a,
15 | .skin-green-light .main-header .navbar .nav .open > a:hover,
16 | .skin-green-light .main-header .navbar .nav .open > a:focus,
17 | .skin-green-light .main-header .navbar .nav > .active > a {
18 | background: rgba(0, 0, 0, 0.1);
19 | color: #f6f6f6;
20 | }
21 | .skin-green-light .main-header .navbar .sidebar-toggle {
22 | color: #ffffff;
23 | }
24 | .skin-green-light .main-header .navbar .sidebar-toggle:hover {
25 | color: #f6f6f6;
26 | background: rgba(0, 0, 0, 0.1);
27 | }
28 | .skin-green-light .main-header .navbar .sidebar-toggle {
29 | color: #fff;
30 | }
31 | .skin-green-light .main-header .navbar .sidebar-toggle:hover {
32 | background-color: #008d4c;
33 | }
34 | @media (max-width: 767px) {
35 | .skin-green-light .main-header .navbar .dropdown-menu li.divider {
36 | background-color: rgba(255, 255, 255, 0.1);
37 | }
38 | .skin-green-light .main-header .navbar .dropdown-menu li a {
39 | color: #fff;
40 | }
41 | .skin-green-light .main-header .navbar .dropdown-menu li a:hover {
42 | background: #008d4c;
43 | }
44 | }
45 | .skin-green-light .main-header .logo {
46 | background-color: #00a65a;
47 | color: #ffffff;
48 | border-bottom: 0 solid transparent;
49 | }
50 | .skin-green-light .main-header .logo:hover {
51 | background-color: #00a157;
52 | }
53 | .skin-green-light .main-header li.user-header {
54 | background-color: #00a65a;
55 | }
56 | .skin-green-light .content-header {
57 | background: transparent;
58 | }
59 | .skin-green-light .wrapper,
60 | .skin-green-light .main-sidebar,
61 | .skin-green-light .left-side {
62 | background-color: #f9fafc;
63 | }
64 | .skin-green-light .content-wrapper,
65 | .skin-green-light .main-footer {
66 | border-left: 1px solid #d2d6de;
67 | }
68 | .skin-green-light .user-panel > .info,
69 | .skin-green-light .user-panel > .info > a {
70 | color: #444444;
71 | }
72 | .skin-green-light .sidebar-menu > li {
73 | -webkit-transition: border-left-color 0.3s ease;
74 | -o-transition: border-left-color 0.3s ease;
75 | transition: border-left-color 0.3s ease;
76 | }
77 | .skin-green-light .sidebar-menu > li.header {
78 | color: #848484;
79 | background: #f9fafc;
80 | }
81 | .skin-green-light .sidebar-menu > li > a {
82 | border-left: 3px solid transparent;
83 | font-weight: 600;
84 | }
85 | .skin-green-light .sidebar-menu > li:hover > a,
86 | .skin-green-light .sidebar-menu > li.active > a {
87 | color: #000000;
88 | background: #f4f4f5;
89 | }
90 | .skin-green-light .sidebar-menu > li.active {
91 | border-left-color: #00a65a;
92 | }
93 | .skin-green-light .sidebar-menu > li.active > a {
94 | font-weight: 600;
95 | }
96 | .skin-green-light .sidebar-menu > li > .treeview-menu {
97 | background: #f4f4f5;
98 | }
99 | .skin-green-light .sidebar a {
100 | color: #444444;
101 | }
102 | .skin-green-light .sidebar a:hover {
103 | text-decoration: none;
104 | }
105 | .skin-green-light .treeview-menu > li > a {
106 | color: #777777;
107 | }
108 | .skin-green-light .treeview-menu > li.active > a,
109 | .skin-green-light .treeview-menu > li > a:hover {
110 | color: #000000;
111 | }
112 | .skin-green-light .treeview-menu > li.active > a {
113 | font-weight: 600;
114 | }
115 | .skin-green-light .sidebar-form {
116 | border-radius: 3px;
117 | border: 1px solid #d2d6de;
118 | margin: 10px 10px;
119 | }
120 | .skin-green-light .sidebar-form input[type="text"],
121 | .skin-green-light .sidebar-form .btn {
122 | box-shadow: none;
123 | background-color: #fff;
124 | border: 1px solid transparent;
125 | height: 35px;
126 | -webkit-transition: all 0.3s ease-in-out;
127 | -o-transition: all 0.3s ease-in-out;
128 | transition: all 0.3s ease-in-out;
129 | }
130 | .skin-green-light .sidebar-form input[type="text"] {
131 | color: #666;
132 | border-top-left-radius: 2px;
133 | border-top-right-radius: 0;
134 | border-bottom-right-radius: 0;
135 | border-bottom-left-radius: 2px;
136 | }
137 | .skin-green-light .sidebar-form input[type="text"]:focus,
138 | .skin-green-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn {
139 | background-color: #fff;
140 | color: #666;
141 | }
142 | .skin-green-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn {
143 | border-left-color: #fff;
144 | }
145 | .skin-green-light .sidebar-form .btn {
146 | color: #999;
147 | border-top-left-radius: 0;
148 | border-top-right-radius: 2px;
149 | border-bottom-right-radius: 2px;
150 | border-bottom-left-radius: 0;
151 | }
152 | @media (min-width: 768px) {
153 | .skin-green-light.sidebar-mini.sidebar-collapse .sidebar-menu > li > .treeview-menu {
154 | border-left: 1px solid #d2d6de;
155 | }
156 | }
157 |
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/styles/skins/skin-purple-light.css:
--------------------------------------------------------------------------------
1 | /*
2 | * Skin: Purple
3 | * ------------
4 | */
5 | .skin-purple-light .main-header .navbar {
6 | background-color: #605ca8;
7 | }
8 | .skin-purple-light .main-header .navbar .nav > li > a {
9 | color: #ffffff;
10 | }
11 | .skin-purple-light .main-header .navbar .nav > li > a:hover,
12 | .skin-purple-light .main-header .navbar .nav > li > a:active,
13 | .skin-purple-light .main-header .navbar .nav > li > a:focus,
14 | .skin-purple-light .main-header .navbar .nav .open > a,
15 | .skin-purple-light .main-header .navbar .nav .open > a:hover,
16 | .skin-purple-light .main-header .navbar .nav .open > a:focus,
17 | .skin-purple-light .main-header .navbar .nav > .active > a {
18 | background: rgba(0, 0, 0, 0.1);
19 | color: #f6f6f6;
20 | }
21 | .skin-purple-light .main-header .navbar .sidebar-toggle {
22 | color: #ffffff;
23 | }
24 | .skin-purple-light .main-header .navbar .sidebar-toggle:hover {
25 | color: #f6f6f6;
26 | background: rgba(0, 0, 0, 0.1);
27 | }
28 | .skin-purple-light .main-header .navbar .sidebar-toggle {
29 | color: #fff;
30 | }
31 | .skin-purple-light .main-header .navbar .sidebar-toggle:hover {
32 | background-color: #555299;
33 | }
34 | @media (max-width: 767px) {
35 | .skin-purple-light .main-header .navbar .dropdown-menu li.divider {
36 | background-color: rgba(255, 255, 255, 0.1);
37 | }
38 | .skin-purple-light .main-header .navbar .dropdown-menu li a {
39 | color: #fff;
40 | }
41 | .skin-purple-light .main-header .navbar .dropdown-menu li a:hover {
42 | background: #555299;
43 | }
44 | }
45 | .skin-purple-light .main-header .logo {
46 | background-color: #605ca8;
47 | color: #ffffff;
48 | border-bottom: 0 solid transparent;
49 | }
50 | .skin-purple-light .main-header .logo:hover {
51 | background-color: #5d59a6;
52 | }
53 | .skin-purple-light .main-header li.user-header {
54 | background-color: #605ca8;
55 | }
56 | .skin-purple-light .content-header {
57 | background: transparent;
58 | }
59 | .skin-purple-light .wrapper,
60 | .skin-purple-light .main-sidebar,
61 | .skin-purple-light .left-side {
62 | background-color: #f9fafc;
63 | }
64 | .skin-purple-light .content-wrapper,
65 | .skin-purple-light .main-footer {
66 | border-left: 1px solid #d2d6de;
67 | }
68 | .skin-purple-light .user-panel > .info,
69 | .skin-purple-light .user-panel > .info > a {
70 | color: #444444;
71 | }
72 | .skin-purple-light .sidebar-menu > li {
73 | -webkit-transition: border-left-color 0.3s ease;
74 | -o-transition: border-left-color 0.3s ease;
75 | transition: border-left-color 0.3s ease;
76 | }
77 | .skin-purple-light .sidebar-menu > li.header {
78 | color: #848484;
79 | background: #f9fafc;
80 | }
81 | .skin-purple-light .sidebar-menu > li > a {
82 | border-left: 3px solid transparent;
83 | font-weight: 600;
84 | }
85 | .skin-purple-light .sidebar-menu > li:hover > a,
86 | .skin-purple-light .sidebar-menu > li.active > a {
87 | color: #000000;
88 | background: #f4f4f5;
89 | }
90 | .skin-purple-light .sidebar-menu > li.active {
91 | border-left-color: #605ca8;
92 | }
93 | .skin-purple-light .sidebar-menu > li.active > a {
94 | font-weight: 600;
95 | }
96 | .skin-purple-light .sidebar-menu > li > .treeview-menu {
97 | background: #f4f4f5;
98 | }
99 | .skin-purple-light .sidebar a {
100 | color: #444444;
101 | }
102 | .skin-purple-light .sidebar a:hover {
103 | text-decoration: none;
104 | }
105 | .skin-purple-light .treeview-menu > li > a {
106 | color: #777777;
107 | }
108 | .skin-purple-light .treeview-menu > li.active > a,
109 | .skin-purple-light .treeview-menu > li > a:hover {
110 | color: #000000;
111 | }
112 | .skin-purple-light .treeview-menu > li.active > a {
113 | font-weight: 600;
114 | }
115 | .skin-purple-light .sidebar-form {
116 | border-radius: 3px;
117 | border: 1px solid #d2d6de;
118 | margin: 10px 10px;
119 | }
120 | .skin-purple-light .sidebar-form input[type="text"],
121 | .skin-purple-light .sidebar-form .btn {
122 | box-shadow: none;
123 | background-color: #fff;
124 | border: 1px solid transparent;
125 | height: 35px;
126 | -webkit-transition: all 0.3s ease-in-out;
127 | -o-transition: all 0.3s ease-in-out;
128 | transition: all 0.3s ease-in-out;
129 | }
130 | .skin-purple-light .sidebar-form input[type="text"] {
131 | color: #666;
132 | border-top-left-radius: 2px;
133 | border-top-right-radius: 0;
134 | border-bottom-right-radius: 0;
135 | border-bottom-left-radius: 2px;
136 | }
137 | .skin-purple-light .sidebar-form input[type="text"]:focus,
138 | .skin-purple-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn {
139 | background-color: #fff;
140 | color: #666;
141 | }
142 | .skin-purple-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn {
143 | border-left-color: #fff;
144 | }
145 | .skin-purple-light .sidebar-form .btn {
146 | color: #999;
147 | border-top-left-radius: 0;
148 | border-top-right-radius: 2px;
149 | border-bottom-right-radius: 2px;
150 | border-bottom-left-radius: 0;
151 | }
152 | @media (min-width: 768px) {
153 | .skin-purple-light.sidebar-mini.sidebar-collapse .sidebar-menu > li > .treeview-menu {
154 | border-left: 1px solid #d2d6de;
155 | }
156 | }
157 |
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/styles/skins/skin-yellow-light.css:
--------------------------------------------------------------------------------
1 | /*
2 | * Skin: Yellow
3 | * ------------
4 | */
5 | .skin-yellow-light .main-header .navbar {
6 | background-color: #f39c12;
7 | }
8 | .skin-yellow-light .main-header .navbar .nav > li > a {
9 | color: #ffffff;
10 | }
11 | .skin-yellow-light .main-header .navbar .nav > li > a:hover,
12 | .skin-yellow-light .main-header .navbar .nav > li > a:active,
13 | .skin-yellow-light .main-header .navbar .nav > li > a:focus,
14 | .skin-yellow-light .main-header .navbar .nav .open > a,
15 | .skin-yellow-light .main-header .navbar .nav .open > a:hover,
16 | .skin-yellow-light .main-header .navbar .nav .open > a:focus,
17 | .skin-yellow-light .main-header .navbar .nav > .active > a {
18 | background: rgba(0, 0, 0, 0.1);
19 | color: #f6f6f6;
20 | }
21 | .skin-yellow-light .main-header .navbar .sidebar-toggle {
22 | color: #ffffff;
23 | }
24 | .skin-yellow-light .main-header .navbar .sidebar-toggle:hover {
25 | color: #f6f6f6;
26 | background: rgba(0, 0, 0, 0.1);
27 | }
28 | .skin-yellow-light .main-header .navbar .sidebar-toggle {
29 | color: #fff;
30 | }
31 | .skin-yellow-light .main-header .navbar .sidebar-toggle:hover {
32 | background-color: #e08e0b;
33 | }
34 | @media (max-width: 767px) {
35 | .skin-yellow-light .main-header .navbar .dropdown-menu li.divider {
36 | background-color: rgba(255, 255, 255, 0.1);
37 | }
38 | .skin-yellow-light .main-header .navbar .dropdown-menu li a {
39 | color: #fff;
40 | }
41 | .skin-yellow-light .main-header .navbar .dropdown-menu li a:hover {
42 | background: #e08e0b;
43 | }
44 | }
45 | .skin-yellow-light .main-header .logo {
46 | background-color: #f39c12;
47 | color: #ffffff;
48 | border-bottom: 0 solid transparent;
49 | }
50 | .skin-yellow-light .main-header .logo:hover {
51 | background-color: #f39a0d;
52 | }
53 | .skin-yellow-light .main-header li.user-header {
54 | background-color: #f39c12;
55 | }
56 | .skin-yellow-light .content-header {
57 | background: transparent;
58 | }
59 | .skin-yellow-light .wrapper,
60 | .skin-yellow-light .main-sidebar,
61 | .skin-yellow-light .left-side {
62 | background-color: #f9fafc;
63 | }
64 | .skin-yellow-light .content-wrapper,
65 | .skin-yellow-light .main-footer {
66 | border-left: 1px solid #d2d6de;
67 | }
68 | .skin-yellow-light .user-panel > .info,
69 | .skin-yellow-light .user-panel > .info > a {
70 | color: #444444;
71 | }
72 | .skin-yellow-light .sidebar-menu > li {
73 | -webkit-transition: border-left-color 0.3s ease;
74 | -o-transition: border-left-color 0.3s ease;
75 | transition: border-left-color 0.3s ease;
76 | }
77 | .skin-yellow-light .sidebar-menu > li.header {
78 | color: #848484;
79 | background: #f9fafc;
80 | }
81 | .skin-yellow-light .sidebar-menu > li > a {
82 | border-left: 3px solid transparent;
83 | font-weight: 600;
84 | }
85 | .skin-yellow-light .sidebar-menu > li:hover > a,
86 | .skin-yellow-light .sidebar-menu > li.active > a {
87 | color: #000000;
88 | background: #f4f4f5;
89 | }
90 | .skin-yellow-light .sidebar-menu > li.active {
91 | border-left-color: #f39c12;
92 | }
93 | .skin-yellow-light .sidebar-menu > li.active > a {
94 | font-weight: 600;
95 | }
96 | .skin-yellow-light .sidebar-menu > li > .treeview-menu {
97 | background: #f4f4f5;
98 | }
99 | .skin-yellow-light .sidebar a {
100 | color: #444444;
101 | }
102 | .skin-yellow-light .sidebar a:hover {
103 | text-decoration: none;
104 | }
105 | .skin-yellow-light .treeview-menu > li > a {
106 | color: #777777;
107 | }
108 | .skin-yellow-light .treeview-menu > li.active > a,
109 | .skin-yellow-light .treeview-menu > li > a:hover {
110 | color: #000000;
111 | }
112 | .skin-yellow-light .treeview-menu > li.active > a {
113 | font-weight: 600;
114 | }
115 | .skin-yellow-light .sidebar-form {
116 | border-radius: 3px;
117 | border: 1px solid #d2d6de;
118 | margin: 10px 10px;
119 | }
120 | .skin-yellow-light .sidebar-form input[type="text"],
121 | .skin-yellow-light .sidebar-form .btn {
122 | box-shadow: none;
123 | background-color: #fff;
124 | border: 1px solid transparent;
125 | height: 35px;
126 | -webkit-transition: all 0.3s ease-in-out;
127 | -o-transition: all 0.3s ease-in-out;
128 | transition: all 0.3s ease-in-out;
129 | }
130 | .skin-yellow-light .sidebar-form input[type="text"] {
131 | color: #666;
132 | border-top-left-radius: 2px;
133 | border-top-right-radius: 0;
134 | border-bottom-right-radius: 0;
135 | border-bottom-left-radius: 2px;
136 | }
137 | .skin-yellow-light .sidebar-form input[type="text"]:focus,
138 | .skin-yellow-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn {
139 | background-color: #fff;
140 | color: #666;
141 | }
142 | .skin-yellow-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn {
143 | border-left-color: #fff;
144 | }
145 | .skin-yellow-light .sidebar-form .btn {
146 | color: #999;
147 | border-top-left-radius: 0;
148 | border-top-right-radius: 2px;
149 | border-bottom-right-radius: 2px;
150 | border-bottom-left-radius: 0;
151 | }
152 | @media (min-width: 768px) {
153 | .skin-yellow-light.sidebar-mini.sidebar-collapse .sidebar-menu > li > .treeview-menu {
154 | border-left: 1px solid #d2d6de;
155 | }
156 | }
157 |
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/styles/skins/skin-blue-light.css:
--------------------------------------------------------------------------------
1 | /*
2 | * Skin: Blue
3 | * ----------
4 | */
5 | .skin-blue-light .main-header .navbar {
6 | background-color: #3c8dbc;
7 | }
8 | .skin-blue-light .main-header .navbar .nav > li > a {
9 | color: #ffffff;
10 | }
11 | .skin-blue-light .main-header .navbar .nav > li > a:hover,
12 | .skin-blue-light .main-header .navbar .nav > li > a:active,
13 | .skin-blue-light .main-header .navbar .nav > li > a:focus,
14 | .skin-blue-light .main-header .navbar .nav .open > a,
15 | .skin-blue-light .main-header .navbar .nav .open > a:hover,
16 | .skin-blue-light .main-header .navbar .nav .open > a:focus,
17 | .skin-blue-light .main-header .navbar .nav > .active > a {
18 | background: rgba(0, 0, 0, 0.1);
19 | color: #f6f6f6;
20 | }
21 | .skin-blue-light .main-header .navbar .sidebar-toggle {
22 | color: #ffffff;
23 | }
24 | .skin-blue-light .main-header .navbar .sidebar-toggle:hover {
25 | color: #f6f6f6;
26 | background: rgba(0, 0, 0, 0.1);
27 | }
28 | .skin-blue-light .main-header .navbar .sidebar-toggle {
29 | color: #fff;
30 | }
31 | .skin-blue-light .main-header .navbar .sidebar-toggle:hover {
32 | background-color: #367fa9;
33 | }
34 | @media (max-width: 767px) {
35 | .skin-blue-light .main-header .navbar .dropdown-menu li.divider {
36 | background-color: rgba(255, 255, 255, 0.1);
37 | }
38 | .skin-blue-light .main-header .navbar .dropdown-menu li a {
39 | color: #fff;
40 | }
41 | .skin-blue-light .main-header .navbar .dropdown-menu li a:hover {
42 | background: #367fa9;
43 | }
44 | }
45 | .skin-blue-light .main-header .logo {
46 | background-color: #3c8dbc;
47 | color: #ffffff;
48 | border-bottom: 0 solid transparent;
49 | }
50 | .skin-blue-light .main-header .logo:hover {
51 | background-color: #3b8ab8;
52 | }
53 | .skin-blue-light .main-header li.user-header {
54 | background-color: #3c8dbc;
55 | }
56 | .skin-blue-light .content-header {
57 | background: transparent;
58 | }
59 | .skin-blue-light .wrapper,
60 | .skin-blue-light .main-sidebar,
61 | .skin-blue-light .left-side {
62 | background-color: #f9fafc;
63 | }
64 | .skin-blue-light .content-wrapper,
65 | .skin-blue-light .main-footer {
66 | border-left: 1px solid #d2d6de;
67 | }
68 | .skin-blue-light .user-panel > .info,
69 | .skin-blue-light .user-panel > .info > a {
70 | color: #444444;
71 | }
72 | .skin-blue-light .sidebar-menu > li {
73 | -webkit-transition: border-left-color 0.3s ease;
74 | -o-transition: border-left-color 0.3s ease;
75 | transition: border-left-color 0.3s ease;
76 | }
77 | .skin-blue-light .sidebar-menu > li.header {
78 | color: #848484;
79 | background: #f9fafc;
80 | }
81 | .skin-blue-light .sidebar-menu > li > a {
82 | border-left: 3px solid transparent;
83 | font-weight: 600;
84 | }
85 | .skin-blue-light .sidebar-menu > li:hover > a,
86 | .skin-blue-light .sidebar-menu > li.active > a {
87 | color: #000000;
88 | background: #f4f4f5;
89 | }
90 | .skin-blue-light .sidebar-menu > li.active {
91 | border-left-color: #3c8dbc;
92 | }
93 | .skin-blue-light .sidebar-menu > li.active > a {
94 | font-weight: 600;
95 | }
96 | .skin-blue-light .sidebar-menu > li > .treeview-menu {
97 | background: #f4f4f5;
98 | }
99 | .skin-blue-light .sidebar a {
100 | color: #444444;
101 | }
102 | .skin-blue-light .sidebar a:hover {
103 | text-decoration: none;
104 | }
105 | .skin-blue-light .treeview-menu > li > a {
106 | color: #777777;
107 | }
108 | .skin-blue-light .treeview-menu > li.active > a,
109 | .skin-blue-light .treeview-menu > li > a:hover {
110 | color: #000000;
111 | }
112 | .skin-blue-light .treeview-menu > li.active > a {
113 | font-weight: 600;
114 | }
115 | .skin-blue-light .sidebar-form {
116 | border-radius: 3px;
117 | border: 1px solid #d2d6de;
118 | margin: 10px 10px;
119 | }
120 | .skin-blue-light .sidebar-form input[type="text"],
121 | .skin-blue-light .sidebar-form .btn {
122 | box-shadow: none;
123 | background-color: #fff;
124 | border: 1px solid transparent;
125 | height: 35px;
126 | -webkit-transition: all 0.3s ease-in-out;
127 | -o-transition: all 0.3s ease-in-out;
128 | transition: all 0.3s ease-in-out;
129 | }
130 | .skin-blue-light .sidebar-form input[type="text"] {
131 | color: #666;
132 | border-top-left-radius: 2px;
133 | border-top-right-radius: 0;
134 | border-bottom-right-radius: 0;
135 | border-bottom-left-radius: 2px;
136 | }
137 | .skin-blue-light .sidebar-form input[type="text"]:focus,
138 | .skin-blue-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn {
139 | background-color: #fff;
140 | color: #666;
141 | }
142 | .skin-blue-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn {
143 | border-left-color: #fff;
144 | }
145 | .skin-blue-light .sidebar-form .btn {
146 | color: #999;
147 | border-top-left-radius: 0;
148 | border-top-right-radius: 2px;
149 | border-bottom-right-radius: 2px;
150 | border-bottom-left-radius: 0;
151 | }
152 | @media (min-width: 768px) {
153 | .skin-blue-light.sidebar-mini.sidebar-collapse .sidebar-menu > li > .treeview-menu {
154 | border-left: 1px solid #d2d6de;
155 | }
156 | }
157 | .skin-blue-light .main-footer {
158 | border-top-color: #d2d6de;
159 | }
160 | .skin-blue.layout-top-nav .main-header > .logo {
161 | background-color: #3c8dbc;
162 | color: #ffffff;
163 | border-bottom: 0 solid transparent;
164 | }
165 | .skin-blue.layout-top-nav .main-header > .logo:hover {
166 | background-color: #3b8ab8;
167 | }
168 |
--------------------------------------------------------------------------------
/src/WechatBribery/Views/Home/Activity.cshtml:
--------------------------------------------------------------------------------
1 | @model Activity
2 | @{
3 | ViewBag.Title = Model.Title;
4 | }
5 |
6 |
7 | @ViewBag.Title
8 | @if (Model.End.HasValue)
9 | {
10 | 已经结束
11 | }
12 | else
13 | {
14 | 正在进行
15 | }
16 |
17 |
18 |
19 |
20 |
21 | | 活动用时 |
22 | 当前领取钱数 |
23 | 本轮总钱数 |
24 | 当前领取红包数 |
25 | 本轮总红包数 |
26 | 中奖率 |
27 | 参与人数 |
28 |
29 |
30 |
31 |
32 | |
33 | @((ViewBag.Price / 100.0).ToString("0.00")) 元 |
34 | @((Model.Price / 100.0).ToString("0.00")) 元 |
35 | @ViewBag.Amount 个 |
36 | @Model.BriberiesCount 个 |
37 | @((Model.Ratio * 100).ToString("0.00"))% |
38 | @Model.Attend 人 |
39 |
40 |
41 |
42 | @if (!Model.End.HasValue)
43 | {
44 |
47 |
55 | }
56 |
57 | 红包分发规则
58 |
59 |
60 |
61 |
62 | | 类型 |
63 | 金额(元) |
64 | 数量(个) |
65 |
66 |
67 |
68 | @foreach(var x in Newtonsoft.Json.JsonConvert.DeserializeObject>(Model.RuleJson))
69 | {
70 |
71 | @if (x.From == x.To)
72 | {
73 | | 固定金额 |
74 | ¥@((x.From / 100.0).ToString("0.00")) |
75 | }
76 | else
77 | {
78 | 区间金额 |
79 | ¥@((x.From / 100.0).ToString("0.00")) ~ ¥@((x.To / 100.0).ToString("0.00")) |
80 | }
81 | @x.Count |
82 |
83 |
84 | }
85 |
86 |
87 |
88 | 实时红包领取详情
89 |
90 |
91 |
92 |
93 | | ID |
94 | 头像 |
95 | 昵称 |
96 | 金额 |
97 | 时间 |
98 |
99 |
100 |
101 | @foreach(Bribery x in ViewBag.Briberies)
102 | {
103 |
104 | | @x.OpenId |
105 |  |
106 | @x.NickName |
107 | ¥@((x.Price / 100.0).ToString("0.00")) |
108 | @x.ReceivedTime |
109 |
110 | }
111 |
112 |
113 |
114 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | ## Ignore Visual Studio temporary files, build results, and
2 | ## files generated by popular Visual Studio add-ons.
3 |
4 | # User-specific files
5 | *.suo
6 | *.user
7 | *.userosscache
8 | *.sln.docstates
9 |
10 | # User-specific files (MonoDevelop/Xamarin Studio)
11 | *.userprefs
12 |
13 | # Build results
14 | [Dd]ebug/
15 | [Dd]ebugPublic/
16 | [Rr]elease/
17 | [Rr]eleases/
18 | x64/
19 | x86/
20 | bld/
21 | [Bb]in/
22 | [Oo]bj/
23 | [Ll]og/
24 |
25 | # Visual Studio 2015 cache/options directory
26 | .vs/
27 | # Uncomment if you have tasks that create the project's static files in wwwroot
28 | #wwwroot/
29 |
30 | # MSTest test Results
31 | [Tt]est[Rr]esult*/
32 | [Bb]uild[Ll]og.*
33 |
34 | # NUNIT
35 | *.VisualState.xml
36 | TestResult.xml
37 |
38 | # Build Results of an ATL Project
39 | [Dd]ebugPS/
40 | [Rr]eleasePS/
41 | dlldata.c
42 |
43 | # DNX
44 | project.lock.json
45 | artifacts/
46 |
47 | *_i.c
48 | *_p.c
49 | *_i.h
50 | *.ilk
51 | *.meta
52 | *.obj
53 | *.pch
54 | *.pdb
55 | *.pgc
56 | *.pgd
57 | *.rsp
58 | *.sbr
59 | *.tlb
60 | *.tli
61 | *.tlh
62 | *.tmp
63 | *.tmp_proj
64 | *.log
65 | *.vspscc
66 | *.vssscc
67 | .builds
68 | *.pidb
69 | *.svclog
70 | *.scc
71 |
72 | # Chutzpah Test files
73 | _Chutzpah*
74 |
75 | # Visual C++ cache files
76 | ipch/
77 | *.aps
78 | *.ncb
79 | *.opendb
80 | *.opensdf
81 | *.sdf
82 | *.cachefile
83 | *.VC.db
84 | *.VC.VC.opendb
85 |
86 | # Visual Studio profiler
87 | *.psess
88 | *.vsp
89 | *.vspx
90 | *.sap
91 |
92 | # TFS 2012 Local Workspace
93 | $tf/
94 |
95 | # Guidance Automation Toolkit
96 | *.gpState
97 |
98 | # ReSharper is a .NET coding add-in
99 | _ReSharper*/
100 | *.[Rr]e[Ss]harper
101 | *.DotSettings.user
102 |
103 | # JustCode is a .NET coding add-in
104 | .JustCode
105 |
106 | # TeamCity is a build add-in
107 | _TeamCity*
108 |
109 | # DotCover is a Code Coverage Tool
110 | *.dotCover
111 |
112 | # NCrunch
113 | _NCrunch_*
114 | .*crunch*.local.xml
115 | nCrunchTemp_*
116 |
117 | # MightyMoose
118 | *.mm.*
119 | AutoTest.Net/
120 |
121 | # Web workbench (sass)
122 | .sass-cache/
123 |
124 | # Installshield output folder
125 | [Ee]xpress/
126 |
127 | # DocProject is a documentation generator add-in
128 | DocProject/buildhelp/
129 | DocProject/Help/*.HxT
130 | DocProject/Help/*.HxC
131 | DocProject/Help/*.hhc
132 | DocProject/Help/*.hhk
133 | DocProject/Help/*.hhp
134 | DocProject/Help/Html2
135 | DocProject/Help/html
136 |
137 | # Click-Once directory
138 | publish/
139 |
140 | # Publish Web Output
141 | *.[Pp]ublish.xml
142 | *.azurePubxml
143 | # TODO: Comment the next line if you want to checkin your web deploy settings
144 | # but database connection strings (with potential passwords) will be unencrypted
145 | *.pubxml
146 | *.publishproj
147 |
148 | # Microsoft Azure Web App publish settings. Comment the next line if you want to
149 | # checkin your Azure Web App publish settings, but sensitive information contained
150 | # in these scripts will be unencrypted
151 | PublishScripts/
152 |
153 | # NuGet Packages
154 | *.nupkg
155 | # The packages folder can be ignored because of Package Restore
156 | **/packages/*
157 | # except build/, which is used as an MSBuild target.
158 | !**/packages/build/
159 | # Uncomment if necessary however generally it will be regenerated when needed
160 | #!**/packages/repositories.config
161 | # NuGet v3's project.json files produces more ignoreable files
162 | *.nuget.props
163 | *.nuget.targets
164 |
165 | # Microsoft Azure Build Output
166 | csx/
167 | *.build.csdef
168 |
169 | # Microsoft Azure Emulator
170 | ecf/
171 | rcf/
172 |
173 | # Windows Store app package directories and files
174 | AppPackages/
175 | BundleArtifacts/
176 | Package.StoreAssociation.xml
177 | _pkginfo.txt
178 |
179 | # Visual Studio cache files
180 | # files ending in .cache can be ignored
181 | *.[Cc]ache
182 | # but keep track of directories ending in .cache
183 | !*.[Cc]ache/
184 |
185 | # Others
186 | ClientBin/
187 | ~$*
188 | *~
189 | *.dbmdl
190 | *.dbproj.schemaview
191 | *.pfx
192 | *.publishsettings
193 | node_modules/
194 | orleans.codegen.cs
195 |
196 | # Since there are multiple workflows, uncomment next line to ignore bower_components
197 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
198 | #bower_components/
199 |
200 | # RIA/Silverlight projects
201 | Generated_Code/
202 |
203 | # Backup & report files from converting an old project file
204 | # to a newer Visual Studio version. Backup files are not needed,
205 | # because we have git ;-)
206 | _UpgradeReport_Files/
207 | Backup*/
208 | UpgradeLog*.XML
209 | UpgradeLog*.htm
210 |
211 | # SQL Server files
212 | *.mdf
213 | *.ldf
214 |
215 | # Business Intelligence projects
216 | *.rdl.data
217 | *.bim.layout
218 | *.bim_*.settings
219 |
220 | # Microsoft Fakes
221 | FakesAssemblies/
222 |
223 | # GhostDoc plugin setting file
224 | *.GhostDoc.xml
225 |
226 | # Node.js Tools for Visual Studio
227 | .ntvs_analysis.dat
228 |
229 | # Visual Studio 6 build log
230 | *.plg
231 |
232 | # Visual Studio 6 workspace options file
233 | *.opt
234 |
235 | # Visual Studio LightSwitch build output
236 | **/*.HTMLClient/GeneratedArtifacts
237 | **/*.DesktopClient/GeneratedArtifacts
238 | **/*.DesktopClient/ModelManifest.xml
239 | **/*.Server/GeneratedArtifacts
240 | **/*.Server/ModelManifest.xml
241 | _Pvt_Extensions
242 |
243 | # Paket dependency manager
244 | .paket/paket.exe
245 | paket-files/
246 |
247 | # FAKE - F# Make
248 | .fake/
249 |
250 | # JetBrains Rider
251 | .idea/
252 | *.sln.iml
253 |
--------------------------------------------------------------------------------
/src/WechatBribery/Views/Account/Login.cshtml:
--------------------------------------------------------------------------------
1 | @{
2 | Layout = null;
3 | }
4 |
5 |
6 |
7 |
8 |
9 | 登录
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
29 |
30 |
31 |
52 |
53 |
54 |
55 |
56 |
57 |
129 |
130 |
131 |
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/styles/skins/skin-black-light.css:
--------------------------------------------------------------------------------
1 | /*
2 | * Skin: Black
3 | * -----------
4 | */
5 | /* skin-black navbar */
6 | .skin-black-light .main-header {
7 | -webkit-box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.05);
8 | box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.05);
9 | }
10 | .skin-black-light .main-header .navbar-toggle {
11 | color: #333;
12 | }
13 | .skin-black-light .main-header .navbar-brand {
14 | color: #333;
15 | border-right: 1px solid #eee;
16 | }
17 | .skin-black-light .main-header > .navbar {
18 | background-color: #ffffff;
19 | }
20 | .skin-black-light .main-header > .navbar .nav > li > a {
21 | color: #333333;
22 | }
23 | .skin-black-light .main-header > .navbar .nav > li > a:hover,
24 | .skin-black-light .main-header > .navbar .nav > li > a:active,
25 | .skin-black-light .main-header > .navbar .nav > li > a:focus,
26 | .skin-black-light .main-header > .navbar .nav .open > a,
27 | .skin-black-light .main-header > .navbar .nav .open > a:hover,
28 | .skin-black-light .main-header > .navbar .nav .open > a:focus,
29 | .skin-black-light .main-header > .navbar .nav > .active > a {
30 | background: #ffffff;
31 | color: #999999;
32 | }
33 | .skin-black-light .main-header > .navbar .sidebar-toggle {
34 | color: #333333;
35 | }
36 | .skin-black-light .main-header > .navbar .sidebar-toggle:hover {
37 | color: #999999;
38 | background: #ffffff;
39 | }
40 | .skin-black-light .main-header > .navbar > .sidebar-toggle {
41 | color: #333;
42 | border-right: 1px solid #eee;
43 | }
44 | .skin-black-light .main-header > .navbar .navbar-nav > li > a {
45 | border-right: 1px solid #eee;
46 | }
47 | .skin-black-light .main-header > .navbar .navbar-custom-menu .navbar-nav > li > a,
48 | .skin-black-light .main-header > .navbar .navbar-right > li > a {
49 | border-left: 1px solid #eee;
50 | border-right-width: 0;
51 | }
52 | .skin-black-light .main-header > .logo {
53 | background-color: #ffffff;
54 | color: #333333;
55 | border-bottom: 0 solid transparent;
56 | border-right: 1px solid #eee;
57 | }
58 | .skin-black-light .main-header > .logo:hover {
59 | background-color: #fcfcfc;
60 | }
61 | @media (max-width: 767px) {
62 | .skin-black-light .main-header > .logo {
63 | background-color: #222222;
64 | color: #ffffff;
65 | border-bottom: 0 solid transparent;
66 | border-right: none;
67 | }
68 | .skin-black-light .main-header > .logo:hover {
69 | background-color: #1f1f1f;
70 | }
71 | }
72 | .skin-black-light .main-header li.user-header {
73 | background-color: #222;
74 | }
75 | .skin-black-light .content-header {
76 | background: transparent;
77 | box-shadow: none;
78 | }
79 | .skin-black-light .wrapper,
80 | .skin-black-light .main-sidebar,
81 | .skin-black-light .left-side {
82 | background-color: #f9fafc;
83 | }
84 | .skin-black-light .content-wrapper,
85 | .skin-black-light .main-footer {
86 | border-left: 1px solid #d2d6de;
87 | }
88 | .skin-black-light .user-panel > .info,
89 | .skin-black-light .user-panel > .info > a {
90 | color: #444444;
91 | }
92 | .skin-black-light .sidebar-menu > li {
93 | -webkit-transition: border-left-color 0.3s ease;
94 | -o-transition: border-left-color 0.3s ease;
95 | transition: border-left-color 0.3s ease;
96 | }
97 | .skin-black-light .sidebar-menu > li.header {
98 | color: #848484;
99 | background: #f9fafc;
100 | }
101 | .skin-black-light .sidebar-menu > li > a {
102 | border-left: 3px solid transparent;
103 | font-weight: 600;
104 | }
105 | .skin-black-light .sidebar-menu > li:hover > a,
106 | .skin-black-light .sidebar-menu > li.active > a {
107 | color: #000000;
108 | background: #f4f4f5;
109 | }
110 | .skin-black-light .sidebar-menu > li.active {
111 | border-left-color: #ffffff;
112 | }
113 | .skin-black-light .sidebar-menu > li.active > a {
114 | font-weight: 600;
115 | }
116 | .skin-black-light .sidebar-menu > li > .treeview-menu {
117 | background: #f4f4f5;
118 | }
119 | .skin-black-light .sidebar a {
120 | color: #444444;
121 | }
122 | .skin-black-light .sidebar a:hover {
123 | text-decoration: none;
124 | }
125 | .skin-black-light .treeview-menu > li > a {
126 | color: #777777;
127 | }
128 | .skin-black-light .treeview-menu > li.active > a,
129 | .skin-black-light .treeview-menu > li > a:hover {
130 | color: #000000;
131 | }
132 | .skin-black-light .treeview-menu > li.active > a {
133 | font-weight: 600;
134 | }
135 | .skin-black-light .sidebar-form {
136 | border-radius: 3px;
137 | border: 1px solid #d2d6de;
138 | margin: 10px 10px;
139 | }
140 | .skin-black-light .sidebar-form input[type="text"],
141 | .skin-black-light .sidebar-form .btn {
142 | box-shadow: none;
143 | background-color: #fff;
144 | border: 1px solid transparent;
145 | height: 35px;
146 | -webkit-transition: all 0.3s ease-in-out;
147 | -o-transition: all 0.3s ease-in-out;
148 | transition: all 0.3s ease-in-out;
149 | }
150 | .skin-black-light .sidebar-form input[type="text"] {
151 | color: #666;
152 | border-top-left-radius: 2px;
153 | border-top-right-radius: 0;
154 | border-bottom-right-radius: 0;
155 | border-bottom-left-radius: 2px;
156 | }
157 | .skin-black-light .sidebar-form input[type="text"]:focus,
158 | .skin-black-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn {
159 | background-color: #fff;
160 | color: #666;
161 | }
162 | .skin-black-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn {
163 | border-left-color: #fff;
164 | }
165 | .skin-black-light .sidebar-form .btn {
166 | color: #999;
167 | border-top-left-radius: 0;
168 | border-top-right-radius: 2px;
169 | border-bottom-right-radius: 2px;
170 | border-bottom-left-radius: 0;
171 | }
172 | @media (min-width: 768px) {
173 | .skin-black-light.sidebar-mini.sidebar-collapse .sidebar-menu > li > .treeview-menu {
174 | border-left: 1px solid #d2d6de;
175 | }
176 | }
177 |
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/scripts/jquery.slimscroll.min.js:
--------------------------------------------------------------------------------
1 | (function($){$.fn.extend({slimScroll:function(options){var defaults={width:"auto",height:"250px",size:"7px",color:"#000",position:"right",distance:"1px",start:"top",opacity:.4,alwaysVisible:false,disableFadeOut:false,railVisible:false,railColor:"#333",railOpacity:.2,railDraggable:true,railClass:"slimScrollRail",barClass:"slimScrollBar",wrapperClass:"slimScrollDiv",allowPageScroll:false,wheelStep:20,touchScrollStep:200,borderRadius:"7px",railBorderRadius:"7px"};var o=$.extend(defaults,options);this.each(function(){var isOverPanel,isOverBar,isDragg,queueHide,touchDif,barHeight,percentScroll,lastScroll,divS="",minBarHeight=30,releaseScroll=false;var me=$(this);if(me.parent().hasClass(o.wrapperClass)){var offset=me.scrollTop();bar=me.parent().find("."+o.barClass);rail=me.parent().find("."+o.railClass);getBarHeight();if($.isPlainObject(options)){if("height"in options&&options.height=="auto"){me.parent().css("height","auto");me.css("height","auto");var height=me.parent().parent().height();me.parent().css("height",height);me.css("height",height)}if("scrollTo"in options){offset=parseInt(o.scrollTo)}else if("scrollBy"in options){offset+=parseInt(o.scrollBy)}else if("destroy"in options){bar.remove();rail.remove();me.unwrap();return}scrollContent(offset,false,true)}return}else if($.isPlainObject(options)){if("destroy"in options){return}}o.height=o.height=="auto"?me.parent().height():o.height;var wrapper=$(divS).addClass(o.wrapperClass).css({position:"relative",overflow:"hidden",width:o.width,height:o.height});me.css({overflow:"hidden",width:o.width,height:o.height,"-ms-touch-action":"none"});var rail=$(divS).addClass(o.railClass).css({width:o.size,height:"100%",position:"absolute",top:0,display:o.alwaysVisible&&o.railVisible?"block":"none","border-radius":o.railBorderRadius,background:o.railColor,opacity:o.railOpacity,zIndex:90});var bar=$(divS).addClass(o.barClass).css({background:o.color,width:o.size,position:"absolute",top:0,opacity:o.opacity,display:o.alwaysVisible?"block":"none","border-radius":o.borderRadius,BorderRadius:o.borderRadius,MozBorderRadius:o.borderRadius,WebkitBorderRadius:o.borderRadius,zIndex:99});var posCss=o.position=="right"?{right:o.distance}:{left:o.distance};rail.css(posCss);bar.css(posCss);me.wrap(wrapper);me.parent().append(bar);me.parent().append(rail);if(o.railDraggable){bar.bind("mousedown",function(e){var $doc=$(document);isDragg=true;t=parseFloat(bar.css("top"));pageY=e.pageY;$doc.bind("mousemove.slimscroll",function(e){currTop=t+e.pageY-pageY;bar.css("top",currTop);scrollContent(0,bar.position().top,false)});$doc.bind("mouseup.slimscroll",function(e){isDragg=false;hideBar();$doc.unbind(".slimscroll")});return false}).bind("selectstart.slimscroll",function(e){e.stopPropagation();e.preventDefault();return false})}rail.hover(function(){showBar()},function(){hideBar()});bar.hover(function(){isOverBar=true},function(){isOverBar=false});me.hover(function(){isOverPanel=true;showBar();hideBar()},function(){isOverPanel=false;hideBar()});if(window.navigator.msPointerEnabled){me.bind("MSPointerDown",function(e,b){if(e.originalEvent.targetTouches.length){touchDif=e.originalEvent.targetTouches[0].pageY}});me.bind("MSPointerMove",function(e){e.originalEvent.preventDefault();if(e.originalEvent.targetTouches.length){var diff=(touchDif-e.originalEvent.targetTouches[0].pageY)/o.touchScrollStep;scrollContent(diff,true);touchDif=e.originalEvent.targetTouches[0].pageY}})}else{me.bind("touchstart",function(e,b){if(e.originalEvent.touches.length){touchDif=e.originalEvent.touches[0].pageY}});me.bind("touchmove",function(e){if(!releaseScroll){e.originalEvent.preventDefault()}if(e.originalEvent.touches.length){var diff=(touchDif-e.originalEvent.touches[0].pageY)/o.touchScrollStep;scrollContent(diff,true);touchDif=e.originalEvent.touches[0].pageY}})}getBarHeight();if(o.start==="bottom"){bar.css({top:me.outerHeight()-bar.outerHeight()});scrollContent(0,true)}else if(o.start!=="top"){scrollContent($(o.start).position().top,null,true);if(!o.alwaysVisible){bar.hide()}}attachWheel();function _onWheel(e){if(!isOverPanel){return}var e=e||window.event;var delta=0;if(e.wheelDelta){delta=-e.wheelDelta/120}if(e.detail){delta=e.detail/3}var target=e.target||e.srcTarget||e.srcElement;if($(target).closest("."+o.wrapperClass).is(me.parent())){scrollContent(delta,true)}if(e.preventDefault&&!releaseScroll){e.preventDefault()}if(!releaseScroll){e.returnValue=false}}function scrollContent(y,isWheel,isJump){releaseScroll=false;var delta=y;var maxTop=me.outerHeight()-bar.outerHeight();if(isWheel){delta=parseInt(bar.css("top"))+y*parseInt(o.wheelStep)/100*bar.outerHeight();delta=Math.min(Math.max(delta,0),maxTop);delta=y>0?Math.ceil(delta):Math.floor(delta);bar.css({top:delta+"px"})}percentScroll=parseInt(bar.css("top"))/(me.outerHeight()-bar.outerHeight());delta=percentScroll*(me[0].scrollHeight-me.outerHeight());if(isJump){delta=y;var offsetTop=delta/me[0].scrollHeight*me.outerHeight();offsetTop=Math.min(Math.max(offsetTop,0),maxTop);bar.css({top:offsetTop+"px"})}me.scrollTop(delta);me.trigger("slimscrolling",~~delta);showBar();hideBar()}function attachWheel(){if(window.addEventListener){this.addEventListener("DOMMouseScroll",_onWheel,false);this.addEventListener("mousewheel",_onWheel,false)}else{document.attachEvent("onmousewheel",_onWheel)}}function getBarHeight(){barHeight=Math.max(me.outerHeight()/me[0].scrollHeight*me.outerHeight(),minBarHeight);bar.css({height:barHeight+"px"});var display=barHeight==me.outerHeight()?"none":"block";bar.css({display:display})}function showBar(){getBarHeight();clearTimeout(queueHide);if(percentScroll==~~percentScroll){releaseScroll=o.allowPageScroll;if(lastScroll!=percentScroll){var msg=~~percentScroll==0?"top":"bottom";me.trigger("slimscroll",msg)}}else{releaseScroll=false}lastScroll=percentScroll;if(barHeight>=me.outerHeight()){releaseScroll=true;return}bar.stop(true,true).fadeIn("fast");if(o.railVisible){rail.stop(true,true).fadeIn("fast")}}function hideBar(){if(!o.alwaysVisible){queueHide=setTimeout(function(){if(!(o.disableFadeOut&&isOverPanel)&&!isOverBar&&!isDragg){bar.fadeOut("slow");rail.fadeOut("slow")}},1e3)}}});return this}});$.fn.extend({slimscroll:$.fn.slimScroll})})(jQuery);
--------------------------------------------------------------------------------
/src/WechatBribery/wwwroot/scripts/pages/dashboard.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Author: Abdullah A Almsaeed
3 | * Date: 4 Jan 2014
4 | * Description:
5 | * This is a demo file used only for the main dashboard (index.html)
6 | **/
7 |
8 | $(function () {
9 |
10 | "use strict";
11 |
12 | //Make the dashboard widgets sortable Using jquery UI
13 | $(".connectedSortable").sortable({
14 | placeholder: "sort-highlight",
15 | connectWith: ".connectedSortable",
16 | handle: ".box-header, .nav-tabs",
17 | forcePlaceholderSize: true,
18 | zIndex: 999999
19 | });
20 | $(".connectedSortable .box-header, .connectedSortable .nav-tabs-custom").css("cursor", "move");
21 |
22 | //jQuery UI sortable for the todo list
23 | $(".todo-list").sortable({
24 | placeholder: "sort-highlight",
25 | handle: ".handle",
26 | forcePlaceholderSize: true,
27 | zIndex: 999999
28 | });
29 |
30 | //bootstrap WYSIHTML5 - text editor
31 | $(".textarea").wysihtml5();
32 |
33 | $('.daterange').daterangepicker({
34 | ranges: {
35 | 'Today': [moment(), moment()],
36 | 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],
37 | 'Last 7 Days': [moment().subtract(6, 'days'), moment()],
38 | 'Last 30 Days': [moment().subtract(29, 'days'), moment()],
39 | 'This Month': [moment().startOf('month'), moment().endOf('month')],
40 | 'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')]
41 | },
42 | startDate: moment().subtract(29, 'days'),
43 | endDate: moment()
44 | }, function (start, end) {
45 | window.alert("You chose: " + start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY'));
46 | });
47 |
48 | /* jQueryKnob */
49 | $(".knob").knob();
50 |
51 | //jvectormap data
52 | var visitorsData = {
53 | "US": 398, //USA
54 | "SA": 400, //Saudi Arabia
55 | "CA": 1000, //Canada
56 | "DE": 500, //Germany
57 | "FR": 760, //France
58 | "CN": 300, //China
59 | "AU": 700, //Australia
60 | "BR": 600, //Brazil
61 | "IN": 800, //India
62 | "GB": 320, //Great Britain
63 | "RU": 3000 //Russia
64 | };
65 | //World map by jvectormap
66 | $('#world-map').vectorMap({
67 | map: 'world_mill_en',
68 | backgroundColor: "transparent",
69 | regionStyle: {
70 | initial: {
71 | fill: '#e4e4e4',
72 | "fill-opacity": 1,
73 | stroke: 'none',
74 | "stroke-width": 0,
75 | "stroke-opacity": 1
76 | }
77 | },
78 | series: {
79 | regions: [{
80 | values: visitorsData,
81 | scale: ["#92c1dc", "#ebf4f9"],
82 | normalizeFunction: 'polynomial'
83 | }]
84 | },
85 | onRegionLabelShow: function (e, el, code) {
86 | if (typeof visitorsData[code] != "undefined")
87 | el.html(el.html() + ': ' + visitorsData[code] + ' new visitors');
88 | }
89 | });
90 |
91 | //Sparkline charts
92 | var myvalues = [1000, 1200, 920, 927, 931, 1027, 819, 930, 1021];
93 | $('#sparkline-1').sparkline(myvalues, {
94 | type: 'line',
95 | lineColor: '#92c1dc',
96 | fillColor: "#ebf4f9",
97 | height: '50',
98 | width: '80'
99 | });
100 | myvalues = [515, 519, 520, 522, 652, 810, 370, 627, 319, 630, 921];
101 | $('#sparkline-2').sparkline(myvalues, {
102 | type: 'line',
103 | lineColor: '#92c1dc',
104 | fillColor: "#ebf4f9",
105 | height: '50',
106 | width: '80'
107 | });
108 | myvalues = [15, 19, 20, 22, 33, 27, 31, 27, 19, 30, 21];
109 | $('#sparkline-3').sparkline(myvalues, {
110 | type: 'line',
111 | lineColor: '#92c1dc',
112 | fillColor: "#ebf4f9",
113 | height: '50',
114 | width: '80'
115 | });
116 |
117 | //The Calender
118 | $("#calendar").datepicker();
119 |
120 | //SLIMSCROLL FOR CHAT WIDGET
121 | $('#chat-box').slimScroll({
122 | height: '250px'
123 | });
124 |
125 | /* Morris.js Charts */
126 | // Sales chart
127 | var area = new Morris.Area({
128 | element: 'revenue-chart',
129 | resize: true,
130 | data: [
131 | {y: '2011 Q1', item1: 2666, item2: 2666},
132 | {y: '2011 Q2', item1: 2778, item2: 2294},
133 | {y: '2011 Q3', item1: 4912, item2: 1969},
134 | {y: '2011 Q4', item1: 3767, item2: 3597},
135 | {y: '2012 Q1', item1: 6810, item2: 1914},
136 | {y: '2012 Q2', item1: 5670, item2: 4293},
137 | {y: '2012 Q3', item1: 4820, item2: 3795},
138 | {y: '2012 Q4', item1: 15073, item2: 5967},
139 | {y: '2013 Q1', item1: 10687, item2: 4460},
140 | {y: '2013 Q2', item1: 8432, item2: 5713}
141 | ],
142 | xkey: 'y',
143 | ykeys: ['item1', 'item2'],
144 | labels: ['Item 1', 'Item 2'],
145 | lineColors: ['#a0d0e0', '#3c8dbc'],
146 | hideHover: 'auto'
147 | });
148 | var line = new Morris.Line({
149 | element: 'line-chart',
150 | resize: true,
151 | data: [
152 | {y: '2011 Q1', item1: 2666},
153 | {y: '2011 Q2', item1: 2778},
154 | {y: '2011 Q3', item1: 4912},
155 | {y: '2011 Q4', item1: 3767},
156 | {y: '2012 Q1', item1: 6810},
157 | {y: '2012 Q2', item1: 5670},
158 | {y: '2012 Q3', item1: 4820},
159 | {y: '2012 Q4', item1: 15073},
160 | {y: '2013 Q1', item1: 10687},
161 | {y: '2013 Q2', item1: 8432}
162 | ],
163 | xkey: 'y',
164 | ykeys: ['item1'],
165 | labels: ['Item 1'],
166 | lineColors: ['#efefef'],
167 | lineWidth: 2,
168 | hideHover: 'auto',
169 | gridTextColor: "#fff",
170 | gridStrokeWidth: 0.4,
171 | pointSize: 4,
172 | pointStrokeColors: ["#efefef"],
173 | gridLineColor: "#efefef",
174 | gridTextFamily: "Open Sans",
175 | gridTextSize: 10
176 | });
177 |
178 | //Donut Chart
179 | var donut = new Morris.Donut({
180 | element: 'sales-chart',
181 | resize: true,
182 | colors: ["#3c8dbc", "#f56954", "#00a65a"],
183 | data: [
184 | {label: "Download Sales", value: 12},
185 | {label: "In-Store Sales", value: 30},
186 | {label: "Mail-Order Sales", value: 20}
187 | ],
188 | hideHover: 'auto'
189 | });
190 |
191 | //Fix for charts under tabs
192 | $('.box ul.nav a').on('shown.bs.tab', function () {
193 | area.redraw();
194 | donut.redraw();
195 | line.redraw();
196 | });
197 |
198 | /* The todo list plugin */
199 | $(".todo-list").todolist({
200 | onCheck: function (ele) {
201 | window.console.log("The element has been checked");
202 | return ele;
203 | },
204 | onUncheck: function (ele) {
205 | window.console.log("The element has been unchecked");
206 | return ele;
207 | }
208 | });
209 |
210 | });
211 |
--------------------------------------------------------------------------------