瀏覽代碼

Word转html将aspose更换为OpenXml

懒得勤快 6 年之前
父節點
當前提交
456bff29e5

文件差異過大導致無法顯示
+ 0 - 0
src/Masuit.MyBlogs.Core/App_Data/ban.txt


+ 0 - 23
src/Masuit.MyBlogs.Core/Common/DocumentConvert.cs

@@ -1,23 +0,0 @@
-using Aspose.Words;
-using System.IO;
-
-namespace Masuit.MyBlogs.Core.Common
-{
-    /// <summary>
-    /// 文档转换操作
-    /// </summary>
-    public static class DocumentConvert
-    {
-        /// <summary>
-        /// doc转html
-        /// </summary>
-        /// <param name="docPath">doc文件路径</param>
-        /// <param name="htmlDir">生成的html所在目录,由于生成html后会将图片都放到同级的目录下,所以用文件夹保存,默认的html文件名为index.html</param>
-        /// <param name="index">默认文档名为index.html</param>
-        public static void Doc2Html(string docPath, string htmlDir, string index = "index.html")
-        {
-            Document doc = new Document(docPath);
-            doc.Save(Path.Combine(htmlDir, index), SaveFormat.Html);
-        }
-    }
-}

+ 31 - 0
src/Masuit.MyBlogs.Core/Common/TrackData.cs

@@ -0,0 +1,31 @@
+using System;
+using System.Collections.Concurrent;
+using System.IO;
+using System.Linq;
+using System.Text;
+
+namespace Masuit.MyBlogs.Core.Common
+{
+    public class TrackData
+    {
+        /// <summary>
+        /// 请求日志
+        /// </summary>
+        public static ConcurrentDictionary<string, int> RequestLogs { get; } = new ConcurrentDictionary<string, int>();
+
+        /// <summary>
+        /// 刷写日志
+        /// </summary>
+        public static void DumpLog()
+        {
+            var logPath = Path.Combine(AppContext.BaseDirectory + "logs", "req" + DateTime.Now.ToString("yyyyMMdd") + ".txt");
+            if (!File.Exists(logPath))
+            {
+                File.Create(logPath).Dispose();
+            }
+
+            File.WriteAllLines(logPath, RequestLogs.OrderByDescending(x => x.Value).Select(x => x.Value + "\t" + x.Key), Encoding.UTF8);
+            RequestLogs.Clear();
+        }
+    }
+}

+ 0 - 64
src/Masuit.MyBlogs.Core/Controllers/BannerController.cs

@@ -1,64 +0,0 @@
-using Masuit.MyBlogs.Core.Infrastructure.Services.Interface;
-using Masuit.MyBlogs.Core.Models.Entity;
-using Microsoft.AspNetCore.Mvc;
-using Microsoft.EntityFrameworkCore;
-using System.Threading.Tasks;
-
-namespace Masuit.MyBlogs.Core.Controllers
-{
-    /// <summary>
-    /// banner
-    /// </summary>
-    [Route("[controller]/[action]")]
-    public class BannerController : AdminController
-    {
-        /// <summary>
-        /// bannerService
-        /// </summary>
-        public IBannerService BannerService { get; set; }
-
-        /// <summary>
-        /// 获取全部
-        /// </summary>
-        /// <returns></returns>
-        public IActionResult Get()
-        {
-            return ResultData(BannerService.GetAllFromCache(b => b.Id, false));
-        }
-
-        /// <summary>
-        /// 保存banner
-        /// </summary>
-        /// <param name="banner"></param>
-        /// <returns></returns>
-        [HttpPost]
-        public async Task<IActionResult> Save(Banner banner)
-        {
-            var entity = BannerService.GetById(banner.Id);
-            if (entity != null)
-            {
-                entity.Url = banner.Url;
-                entity.Description = banner.Description;
-                entity.ImageUrl = banner.ImageUrl;
-                entity.Title = banner.Title;
-                bool b1 = await BannerService.SaveChangesAsync() > 0;
-                return ResultData(null, b1, b1 ? "修改成功" : "修改失败");
-            }
-
-            bool b = BannerService.AddEntitySaved(banner) != null;
-            return ResultData(null, b, b ? "添加成功" : "添加失败");
-        }
-
-        /// <summary>
-        /// 删除banner
-        /// </summary>
-        /// <param name="id"></param>
-        /// <returns></returns>
-        [HttpPost("{id}"), HttpGet("{id}")]
-        public IActionResult Delete(int id)
-        {
-            bool b = BannerService.DeleteByIdSaved(id);
-            return ResultData(null, b, b ? "删除成功" : "删除失败");
-        }
-    }
-}

+ 1 - 1
src/Masuit.MyBlogs.Core/Controllers/SeminarController.cs

@@ -5,7 +5,6 @@ using Masuit.MyBlogs.Core.Models.DTO;
 using Masuit.MyBlogs.Core.Models.Entity;
 using Masuit.MyBlogs.Core.Models.Enum;
 using Microsoft.AspNetCore.Mvc;
-using Microsoft.Net.Http.Headers;
 using System;
 using System.Collections.Generic;
 using System.Linq;
@@ -66,6 +65,7 @@ namespace Masuit.MyBlogs.Core.Controllers
             ViewBag.Title = s.Title;
             ViewBag.Desc = s.Description;
             ViewBag.SubTitle = s.SubTitle;
+            ViewBag.Ads = AdsService.GetByWeightedPrice(AdvertiseType.PostList);
             return View(posts.Mapper<IList<PostOutputDto>>());
         }
 

+ 58 - 37
src/Masuit.MyBlogs.Core/Controllers/UploadController.cs

@@ -1,8 +1,8 @@
-using Masuit.MyBlogs.Core.Common;
+using HtmlAgilityPack;
+using Masuit.MyBlogs.Core.Common;
 using Masuit.MyBlogs.Core.Extensions.UEditor;
 using Masuit.MyBlogs.Core.Models.DTO;
 using Masuit.MyBlogs.Core.Models.ViewModel;
-using Masuit.Tools;
 using Masuit.Tools.AspNetCore.Mime;
 using Masuit.Tools.AspNetCore.ResumeFileResults.Extensions;
 using Masuit.Tools.Core.Net;
@@ -17,7 +17,6 @@ using System;
 using System.IO;
 using System.Text;
 using System.Text.RegularExpressions;
-using System.Threading;
 using System.Threading.Tasks;
 
 namespace Masuit.MyBlogs.Core.Controllers
@@ -68,7 +67,7 @@ namespace Masuit.MyBlogs.Core.Controllers
         /// </summary>
         /// <returns></returns>
         [HttpPost]
-        public ActionResult UploadWord()
+        public async Task<ActionResult> UploadWord()
         {
             var files = Request.Form.Files;
             if (files.Count <= 0)
@@ -87,44 +86,76 @@ namespace Masuit.MyBlogs.Core.Controllers
                 return ResultData(null, false, "文件格式不支持,只能上传doc或者docx的文档!");
             }
 
-            string upload = HostEnvironment.WebRootPath + "/upload";
-            if (!Directory.Exists(upload))
-            {
-                Directory.CreateDirectory(upload);
-            }
-
-            string resourceName = string.Empty.CreateShortToken(9);
-            string ext = Path.GetExtension(fileName);
-            string docPath = Path.Combine(upload, resourceName + ext);
-            using var fs = new FileStream(docPath, FileMode.OpenOrCreate, FileAccess.ReadWrite);
-            file.CopyTo(fs);
-            string htmlDir = docPath.Replace(".docx", "").Replace(".doc", "");
-            DocumentConvert.Doc2Html(docPath, htmlDir);
-            string htmlfile = Path.Combine(htmlDir, "index.html");
-            string html = System.IO.File.ReadAllText(htmlfile).ReplaceHtmlImgSource("/upload/" + resourceName).ClearHtml().HtmlSantinizerStandard();
-            ThreadPool.QueueUserWorkItem(state => System.IO.File.Delete(htmlfile));
+            await using var reqStream = file.OpenReadStream();
+            await using var ms = new MemoryStream();
+            await reqStream.CopyToAsync(ms);
+            var html = await SaveAsHtml(ms, file);
             if (html.Length < 10)
             {
-                Directory.Delete(htmlDir, true);
-                System.IO.File.Delete(docPath);
                 return ResultData(null, false, "读取文件内容失败,请检查文件的完整性,建议另存后重新上传!");
             }
 
             if (html.Length > 1000000)
             {
-                Directory.Delete(htmlDir, true);
-                System.IO.File.Delete(docPath);
                 return ResultData(null, false, "文档内容超长,服务器拒绝接收,请优化文档内容后再尝试重新上传!");
             }
 
             return ResultData(new
             {
                 Title = Path.GetFileNameWithoutExtension(fileName),
-                Content = html,
-                ResourceName = resourceName + ext
+                Content = html
             });
         }
 
+        private async Task<string> SaveAsHtml(MemoryStream ms, IFormFile file)
+        {
+            var html = DocxToHtml.Docx.ConvertToHtml(ms);
+            var doc = new HtmlDocument();
+            doc.LoadHtml(html);
+            var body = doc.DocumentNode.SelectSingleNode("//body");
+            var nodes = body.SelectNodes("//img");
+            foreach (var img in nodes)
+            {
+                var attr = img.Attributes["src"].Value;
+                var strs = attr.Split(",");
+                var base64 = strs[1];
+                var bytes = Convert.FromBase64String(base64);
+                var ext = strs[0].Split(";")[0].Split("/")[1];
+                await using var image = new MemoryStream(bytes);
+                var imgFile = $"{SnowFlake.NewId}.{ext}";
+                var (url, success) = await _imagebedClient.UploadImage(image, imgFile);
+                if (success)
+                {
+                    img.Attributes["src"].Value = url;
+                }
+                else
+                {
+                    var path = Path.Combine(HostEnvironment.WebRootPath, "upload", "images", imgFile);
+                    await SaveFile(file, path);
+                    img.Attributes["src"].Value = path.Substring(HostEnvironment.WebRootPath.Length).Replace("\\", "/");
+                }
+            }
+
+            html = body.InnerHtml.HtmlSantinizerStandard().HtmlSantinizerCustom(attributes: new[]
+            {
+                "dir",
+                "lang"
+            });
+            return html;
+        }
+
+        private static async Task SaveFile(IFormFile file, string path)
+        {
+            var dir = Path.GetDirectoryName(path);
+            if (!Directory.Exists(dir))
+            {
+                Directory.CreateDirectory(dir);
+            }
+
+            await using var fs = new FileStream(path, FileMode.OpenOrCreate, FileAccess.ReadWrite);
+            file.CopyTo(fs);
+        }
+
         #endregion
 
         /// <summary>
@@ -264,17 +295,7 @@ namespace Masuit.MyBlogs.Core.Controllers
             }
             try
             {
-                var dir = Path.GetDirectoryName(path);
-                if (!Directory.Exists(dir))
-                {
-                    Directory.CreateDirectory(dir);
-                }
-
-                await using (var fs = new FileStream(path, FileMode.OpenOrCreate, FileAccess.ReadWrite))
-                {
-                    file.CopyTo(fs);
-                }
-
+                await SaveFile(file, path);
                 return ResultData(path.Substring(HostEnvironment.WebRootPath.Length).Replace("\\", "/"));
             }
             catch (Exception e)

+ 2 - 0
src/Masuit.MyBlogs.Core/Extensions/Hangfire/HangfireBackJob.cs

@@ -160,6 +160,8 @@ namespace Masuit.MyBlogs.Core.Extensions.Hangfire
             RedisHelper.IncrBy("Interview:RunningDays");
             DateTime time = DateTime.Now.AddMonths(-1);
             _searchDetailsService.DeleteEntitySaved(s => s.SearchTime < time);
+
+            TrackData.DumpLog();
         }
 
         /// <summary>

+ 0 - 69
src/Masuit.MyBlogs.Core/Extensions/LuceneHelper.cs

@@ -1,69 +0,0 @@
-using Masuit.MyBlogs.Core.Models.ViewModel;
-using Newtonsoft.Json;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Net;
-using System.Net.Http;
-using System.Text.RegularExpressions;
-
-namespace Masuit.MyBlogs.Core.Extensions
-{
-    /// <summary>
-    /// Lucene帮助类
-    /// </summary>
-    public static class LuceneHelper
-    {
-        /// <summary>
-        /// 分词
-        /// </summary>
-        /// <param name="keyword"></param>
-        /// <returns></returns>
-        public static List<string> CutKeywords(string keyword)
-        {
-            var list = new HashSet<string>
-            {
-                keyword
-            };
-            var mc = Regex.Matches(keyword, @"(([A-Z]*[a-z]*)[\d]*)([\u4E00-\u9FA5]+)*((?!\p{P}).)*");
-            foreach (Match m in mc)
-            {
-                list.Add(m.Value);
-                foreach (Group g in m.Groups)
-                {
-                    list.Add(g.Value);
-                }
-            }
-            if (keyword.Length >= 6)
-            {
-                using (HttpClient client = new HttpClient()
-                {
-                    BaseAddress = new Uri("http://zhannei.baidu.com")
-                })
-                {
-                    try
-                    {
-                        var res = client.GetAsync($"/api/customsearch/keywords?title={keyword}").Result;
-                        if (res.StatusCode == HttpStatusCode.OK)
-                        {
-                            BaiduAnalysisModel model = JsonConvert.DeserializeObject<BaiduAnalysisModel>(res.Content.ReadAsStringAsync().Result, new JsonSerializerSettings()
-                            {
-                                NullValueHandling = NullValueHandling.Ignore
-                            });
-                            if (model.Result.Res.KeywordList != null && model.Result.Res.KeywordList.Any())
-                            {
-                                list.AddRange(model.Result.Res.KeywordList.ToArray());
-                            }
-                        }
-                    }
-                    catch
-                    {
-                        // ignored
-                    }
-                }
-            }
-            list.RemoveWhere(s => s.Length < 2 || Regex.IsMatch(s, @"^\p{P}.*"));
-            return list.OrderByDescending(s => s.Length).ToList();
-        }
-    }
-}

+ 3 - 1
src/Masuit.MyBlogs.Core/Extensions/RequestInterceptMiddleware.cs

@@ -33,12 +33,13 @@ namespace Masuit.MyBlogs.Core.Extensions
         {
             var request = context.Request;
             var path = HttpUtility.UrlDecode(request.Path + request.QueryString, Encoding.UTF8);
+            var requestUrl = HttpUtility.UrlDecode(request.Scheme + "://" + request.Host + path);
             if (Regex.Match(path ?? "", CommonHelper.BanRegex).Length > 0)
             {
                 BackgroundJob.Enqueue(() => HangfireBackJob.InterceptLog(new IpIntercepter()
                 {
                     IP = context.Connection.RemoteIpAddress.MapToIPv4().ToString(),
-                    RequestUrl = HttpUtility.UrlDecode(request.Scheme + "://" + request.Host + path),
+                    RequestUrl = requestUrl,
                     Time = DateTime.Now,
                     UserAgent = request.Headers[HeaderNames.UserAgent]
                 }));
@@ -71,6 +72,7 @@ namespace Masuit.MyBlogs.Core.Extensions
                 }
             }
 
+            TrackData.RequestLogs.AddOrUpdate(requestUrl, 1, (s, i) => i + 1);
             await _next.Invoke(context);
         }
     }

+ 1 - 1
src/Masuit.MyBlogs.Core/Masuit.MyBlogs.Core.csproj

@@ -49,12 +49,12 @@
 
   <ItemGroup>
     <PackageReference Include="Aliyun.OSS.SDK.NetCore" Version="2.9.1" />
-    <PackageReference Include="Aspose.Words" Version="19.6.0" />
     <PackageReference Include="Autofac.Extensions.DependencyInjection" Version="5.0.1" />
     <PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="7.0.0" />
     <PackageReference Include="CacheManager.Microsoft.Extensions.Caching.Memory" Version="2.0.0-beta-1629" />
     <PackageReference Include="CacheManager.Serialization.Json" Version="2.0.0-beta-1629" />
     <PackageReference Include="CSRedisCore" Version="3.1.10" />
+    <PackageReference Include="DocxToHtml" Version="1.0.4" />
     <PackageReference Include="EFSecondLevelCache.Core" Version="2.8.1" />
     <PackageReference Include="Hangfire" Version="1.7.7" />
     <PackageReference Include="Hangfire.Autofac" Version="2.3.1" />

+ 0 - 36
src/Masuit.MyBlogs.Core/Models/Entity/Banner.cs

@@ -1,36 +0,0 @@
-using System.ComponentModel.DataAnnotations;
-using System.ComponentModel.DataAnnotations.Schema;
-
-namespace Masuit.MyBlogs.Core.Models.Entity
-{
-    /// <summary>
-    /// banner
-    /// </summary>
-    [Table("Banner")]
-    public class Banner : BaseEntity
-    {
-        /// <summary>
-        /// 标题
-        /// </summary>
-        [Required(ErrorMessage = "Banner标题不能为空!")]
-        public string Title { get; set; }
-
-        /// <summary>
-        /// 描述
-        /// </summary>
-        [Required(ErrorMessage = "banner描述不能为空!"), StringLength(255)]
-        public string Description { get; set; }
-
-        /// <summary>
-        /// banner指向地址
-        /// </summary>
-        [Required(ErrorMessage = "banner目标地址不能为空!"), StringLength(255)]
-        public string Url { get; set; }
-
-        /// <summary>
-        /// 图片地址
-        /// </summary>
-        [Required(ErrorMessage = "banner图片不能为空!"), StringLength(255)]
-        public string ImageUrl { get; set; }
-    }
-}

+ 6 - 22
src/Masuit.MyBlogs.Core/Views/Misc/Donate.cshtml

@@ -52,7 +52,7 @@
 </div>
 <div class="container-fluid">
     <div class="row">
-        <div class="col-md-3">
+        <div class="col-md-4">
             <div class="page-header margin-clear margin-top10">
                 <h2 class="size28">
                     支付宝二维码
@@ -60,7 +60,7 @@
             </div>
             <img class="img-responsive img-thumbnail" style="width: 100%" src="@CommonHelper.SystemSettings["Donate"]" />
         </div>
-        <div class="col-md-3">
+        <div class="col-md-4">
             <div class="page-header margin-clear margin-top10">
                 <h2 class="size28">
                     微信二维码
@@ -71,7 +71,7 @@
                 <span class="text-red size20">注意:支付宝和微信无法看见支付人的名称,所以打赏时最好附上完整个人信息,否则无法将您加入到赞助名单中。</span>
             </div>
         </div>
-        <div class="col-md-3">
+        <div class="col-md-4">
             <div class="page-header margin-clear margin-top10">
                 <h2 class="size28">
                     QQ二维码
@@ -79,22 +79,6 @@
             </div>
             <img class="img-responsive img-thumbnail" style="width: 100%" src="@CommonHelper.SystemSettings["DonateQQ"]" />
         </div>
-        <div class="col-md-3">
-            <div class="page-header margin-clear margin-top10">
-                <h2 class="size28">
-                    京东金融收钱码
-                </h2>
-            </div>
-            <img class="img-responsive img-thumbnail" style="width: 100%" src="@CommonHelper.SystemSettings["DonateJingdong"]" />
-        </div>
-        @*<div class="col-md-3">
-                <div class="page-header margin-clear margin-top10">
-                    <h2 class="size28">
-                        支付宝,领红包
-                    </h2>
-                </div>
-                <img class="img-responsive img-thumbnail" style="width: 100%" src="http://wx1.sinaimg.cn/mw690/0060lm7Tly1fsnrd1z8shj31kw26ugsz.jpg" />
-            </div>*@
     </div>
 </div>
 <div class="container margintop20">
@@ -182,9 +166,9 @@
                     self.tableParams = new NgTableParams({
                         count: 50000
                     }, {
-                            filterDelay: 0,
-                            dataset: res.data.Data
-                        });
+                        filterDelay: 0,
+                        dataset: res.data.Data
+                    });
                     window.loadingDone();
                 });
             }

+ 3 - 19
src/Masuit.MyBlogs.Core/Views/Misc/Donate_Admin.cshtml

@@ -81,22 +81,6 @@
             </div>
             <img class="img-responsive img-thumbnail" style="width: 100%" src="@CommonHelper.SystemSettings["DonateQQ"]" />
         </div>
-        <div>
-            <div class="page-header margin-clear margin-top10">
-                <h2 class="size28">
-                    京东金融收钱码
-                </h2>
-            </div>
-            <img class="img-responsive img-thumbnail" style="width: 100%" src="@CommonHelper.SystemSettings["DonateJingdong"]" />
-        </div>
-        @*<div>
-                <div class="page-header margin-clear margin-top10">
-                    <h2 class="size28">
-                        支付宝,领红包
-                    </h2>
-                </div>
-                <img class="img-responsive img-thumbnail" style="width: 100%" src="http://wx1.sinaimg.cn/mw690/0060lm7Tly1fsnrd1z8shj31kw26ugsz.jpg" />
-            </div>*@
     </div>
 </div>
 <div class="container margintop20">
@@ -195,9 +179,9 @@
                     self.tableParams = new NgTableParams({
                         count: 50000
                     }, {
-                            filterDelay: 0,
-                            dataset: res.data.Data
-                        });
+                        filterDelay: 0,
+                        dataset: res.data.Data
+                    });
                     window.loadingDone();
                 });
             }

+ 10 - 1
src/Masuit.MyBlogs.Core/Views/Seminar/Index.cshtml

@@ -1,4 +1,5 @@
 @using Masuit.MyBlogs.Core.Models.DTO
+@using Masuit.MyBlogs.Core.Models.Entity
 @using Masuit.MyBlogs.Core.Models.ViewModel
 @using Masuit.Tools.Core.Net
 @model IList<Masuit.MyBlogs.Core.Models.DTO.PostOutputDto>
@@ -6,6 +7,7 @@
     Layout = "~/Views/Shared/_Layout.cshtml";
     Random r = new Random();
     UserInfoOutputDto user = Context.Session.Get<UserInfoOutputDto>(SessionKey.UserInfo) ?? new UserInfoOutputDto();
+    Advertisement ad = ViewBag.Ads;
 }
 <style>
     .bg-title {
@@ -93,8 +95,15 @@
                     </div>
                 </div>
             </div>
-            foreach (PostOutputDto post in Model)
+            var rnd = new Random().Next(2, Model.Count);
+            for (var i = 0; i < Model.Count; i++)
             {
+                if (rnd == i && ad != null)
+                {
+                    await Html.RenderPartialAsync("_ArticleListAdvertisement", ad);
+                }
+
+                var post = Model[i];
                 await Html.RenderPartialAsync(user.IsAdmin ? "_ArticleListItem_Admin" : "_ArticleListItem", post);
             }
         }

+ 4 - 0
src/Masuit.MyBlogs.Core/wwwroot/Content/common/articlestyle.css

@@ -156,6 +156,10 @@
         text-align: center;
     }
 
+    .ibox-content div.col-md-3 {
+        text-align: center;
+    }
+
 .article>.ibox>.ibox-content>main header.page-header a h2 {
     font-size: 24px;
     line-height: 32px;

+ 0 - 120
src/Masuit.MyBlogs.Core/wwwroot/ng-views/views/post/top.html

@@ -1,120 +0,0 @@
-<div class="card">
-    <div class="card-header">
-        <h2>设置头图轮播页</h2>
-        <ul class="actions">
-            <li>
-                <a ng-click="getdata();"><i class="zmdi zmdi-refresh-alt"></i></a>
-            </li>
-            <li>
-                <a ng-click="add()"><i class="zmdi zmdi-plus"></i></a>
-            </li>
-        </ul>
-    </div>
-    <div class="card-body">
-        <div class="card-body card-padding">
-            <div class="row">
-                <div class="col-sm-6 col-md-3" ng-repeat="item in banners">
-                    <div class="card" style="max-height: 500px;overflow: hidden;">
-                        <div class="card-header ch-alt">
-                            <h4>{{item.Title}}</h4>
-                            <ul class="actions">
-                                <li>
-                                    <a ng-click="remove(item)">
-                                        <i class="zmdi zmdi-delete"></i>
-                                    </a>
-                                </li>
-                                <li>
-                                    <a ng-click="edit(item)">
-                                        <i class="zmdi zmdi-edit"></i>
-                                    </a>
-                                </li>
-                            </ul>
-                        </div>
-
-                        <div class="card-body">
-                            <div class="thumbnail">
-                                <img class="img img-responsive img-thumbnail img-rounded" style="max-height: 300px;min-height: 300px;" ng-src="{{item.ImageUrl}}" alt="{{item.Title}}">
-                                <div class="caption">
-                                    <p>{{item.Description}}</p>
-                                </div>
-                            </div>
-                        </div>
-                    </div>
-                </div>
-            </div>
-        </div>
-    </div>
-</div>
-<div id="modal" class="modal">
-    <div class="container-fluid" style="margin: 15px 0;">
-        <div class="card-body bgm-white">
-            <div class="form-group">
-                <div class="input-group">
-                    <label for="desc" class="input-group-addon control-label">banner标题:</label>
-                    <div class="fg-line">
-                        <input type="text" class="form-control" id="title" placeholder="请输入banner标题" ng-model="banner.Title">
-                    </div>
-                </div>
-            </div>
-            <div class="form-group">
-                <div class="input-group">
-                    <label for="desc" class="input-group-addon control-label">banner地址:</label>
-                    <div class="fg-line">
-                        <input type="text" class="form-control" id="url" placeholder="请输入banner目标地址" ng-model="banner.Url">
-                    </div>
-                </div>
-            </div>
-            <div ng-show="!isAdd">
-                <input type="hidden" ng-model="banner.Id">
-            </div>
-            <div class="form-group">
-                <div class="input-group">
-                    <label for="desc" class="input-group-addon control-label">banner描述:</label>
-                    <div class="fg-line">
-                        <textarea type="text" class="form-control" id="desc" placeholder="请输入banner描述" ng-model="banner.Description" rows="5"></textarea>
-                    </div>
-                </div>
-            </div>
-            <div class="form-group">
-                <div class="input-group">
-                    <label for="desc" class="input-group-addon control-label">banner图片:</label>
-                    <div class="fg-line">
-                        <input type="text" class="form-control" id="imgurl" placeholder="请输入头图URL" ng-model="banner.ImageUrl">
-                    </div>
-                    <span class="input-group-btn">
-                        <button class="btn btn-success" ng-click="upload()">上传本地图片</button>
-                    </span>
-                </div>
-                <form id="coverform" onsubmit="return false" enctype="multipart/form-data" ng-show="allowUpload">
-                    <div class="file-box">
-                        <div class="input-group">
-                            <span class="input-group-addon">上传封面图:</span>
-                            <div class="fg-line">
-                                <input type="text" name="file0" disabled class="form-control" placeholder="请选择一张图片" />
-                            </div>
-                            <span class="input-group-btn hidden">
-                                <a href="javascript:void(0);" class="btn btn-info ">浏览</a>
-                            </span>
-                            <input type="file" class="uploadFile" name="file" onchange="getFile(this, 'file0')" />
-                            <span class="input-group-btn"><button type="button" class="btn btn-primary" ng-click="uploadImage()"> 开始上传图片 </button></span>
-                        </div>
-                    </div>
-                </form>
-            </div>
-            <div class="form-group">
-                <div class="col-xs-12">
-                    <div class="fg-line">
-                        <div class="btn-group">
-                            <button type="button" class="btn btn-info" ng-click="submit(banner)">
-                                确认添加
-                            </button>
-                            <button type="button" class="btn btn-danger" ng-click="closeAll()">
-                                取消
-                            </button>
-                        </div>
-                    </div>
-                </div>
-            </div>
-        </div>
-    </div>
-</div>

+ 3 - 10
src/Masuit.MyBlogs.Core/wwwroot/ng-views/views/system/home.html

@@ -152,34 +152,27 @@
     </div>
     <div class="row">
         <h2>打赏二维码</h2>
-        <div class="col-md-3 col-xs-6">
+        <div class="col-md-2 col-xs-6">
             <h3>支付宝:</h3>
             <img class="img img-responsive img-thumbnail img-rounded" ng-src="{{Settings.Donate}}" style="max-height: 300px;" ng-click="setImage('Donate')" />
             <span class="input-group-btn">
                 <button type="button" class="btn btn-danger waves-effect" ng-click="setImage('Donate')">修改</button>
             </span>
         </div>
-        <div class="col-md-3 col-xs-6">
+        <div class="col-md-2 col-xs-6">
             <h3>微信:</h3>
             <img class="img img-responsive img-thumbnail img-rounded" ng-src="{{Settings.DonateWechat}}" style="max-height: 300px;" ng-click="setImage('DonateWechat')" />
             <span class="input-group-btn">
                 <button type="button" class="btn btn-danger waves-effect" ng-click="setImage('DonateWechat')">修改</button>
             </span>
         </div>
-        <div class="col-md-3 col-xs-6">
+        <div class="col-md-2 col-xs-6">
             <h3>QQ:</h3>
             <img class="img img-responsive img-thumbnail img-rounded" ng-src="{{Settings.DonateQQ}}" style="max-height: 300px;" ng-click="setImage('DonateQQ')" />
             <span class="input-group-btn">
                 <button type="button" class="btn btn-danger waves-effect" ng-click="setImage('DonateQQ')">修改</button>
             </span>
         </div>
-        <div class="col-md-3 col-xs-6">
-            <h3>京东金融收钱码:</h3>
-            <img class="img img-responsive img-thumbnail img-rounded" ng-src="{{Settings.DonateJingdong}}" style="max-height: 300px;" ng-click="setImage('DonateJingdong')" />
-            <span class="input-group-btn">
-                <button type="button" class="btn btn-danger waves-effect" ng-click="setImage('DonateJingdong')">修改</button>
-            </span>
-        </div>
     </div>
 </div>
 <div style="position: absolute;left: -20000px">

部分文件因文件數量過多而無法顯示