Browse Source

新增浏览器状态保持

master
С·æ 4 years ago
parent
commit
88b28d9f95
  1. 26
      src/Coldairarrow.Api/Controllers/HuiYan/itemlabelsController.cs
  2. 171
      src/Coldairarrow.Business/HuiYan/itemlabelsBusiness.cs
  3. 42
      src/Coldairarrow.Business/HuiYan/teamitemsBusiness.cs
  4. 50
      src/Coldairarrow.Entity/DTO/ItemLabelDto.cs
  5. 27
      src/Coldairarrow.Entity/DTO/ItemlabelInfoDto.cs
  6. 2
      src/Coldairarrow.Entity/HuiYan/teamitems.cs
  7. 6
      src/Coldairarrow.IBusiness/HuiYan/IitemlabelsBusiness.cs
  8. 121
      客户端/齐越慧眼/齐越慧眼/ApiHelper.cs
  9. 6
      客户端/齐越慧眼/齐越慧眼/App.xaml.cs
  10. 7
      客户端/齐越慧眼/齐越慧眼/MainWindow.xaml
  11. 15
      客户端/齐越慧眼/齐越慧眼/MainWindow.xaml.cs
  12. 48
      客户端/齐越慧眼/齐越慧眼/Models/ItemLabelDto.cs
  13. 81
      客户端/齐越慧眼/齐越慧眼/Models/ItemlabelInfoDto.cs
  14. 92
      客户端/齐越慧眼/齐越慧眼/UserControls/BrowerControl.xaml.cs
  15. 17
      客户端/齐越慧眼/齐越慧眼/UserControls/CatControl.xaml.cs
  16. 8
      客户端/齐越慧眼/齐越慧眼/UserControls/ItemControl.xaml.cs
  17. 8
      客户端/齐越慧眼/齐越慧眼/vuepage/client/src/views/cats/Index.vue
  18. 3
      客户端/齐越慧眼/齐越慧眼/vuepage/client/src/views/items/Index.vue
  19. 1
      客户端/齐越慧眼/齐越慧眼/vuepage/dist/css/app.3528f00e.css
  20. 1
      客户端/齐越慧眼/齐越慧眼/vuepage/dist/css/app.aed7bccd.css
  21. 2
      客户端/齐越慧眼/齐越慧眼/vuepage/dist/css/app.css
  22. 2
      客户端/齐越慧眼/齐越慧眼/vuepage/dist/index.html
  23. BIN
      客户端/齐越慧眼/齐越慧眼/vuepage/dist/jp.png
  24. 2
      客户端/齐越慧眼/齐越慧眼/vuepage/dist/js/app.js
  25. 2
      客户端/齐越慧眼/齐越慧眼/vuepage/dist/js/app.js.map
  26. 22
      客户端/齐越慧眼/齐越慧眼/齐越慧眼.csproj

26
src/Coldairarrow.Api/Controllers/HuiYan/itemlabelsController.cs

@ -1,6 +1,8 @@
using Coldairarrow.Business.HuiYan;
using Coldairarrow.Entity.DTO;
using Coldairarrow.Entity.HuiYan;
using Coldairarrow.Util;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using System.Collections.Generic;
using System.Threading.Tasks;
@ -61,5 +63,29 @@ namespace Coldairarrow.Api.Controllers.HuiYan
}
#endregion
/// <summary>
/// 设置商品标签
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
[HttpPost, AllowAnonymous]
public AjaxResult SetItemLabel(ItemLabelDto model)
{
return _itemlabelsBus.SetItemLabel(model);
}
/// <summary>
/// 获取标签状态
/// </summary>
/// <param name="ids"></param>
/// <param name="platform"></param>
/// <returns></returns>
[HttpPost, AllowAnonymous]
public AjaxResult GetLabelByItemIds([FromBody] List<string> ids, [FromQuery] ItemPlatform platform)
{
return _itemlabelsBus.GetLabelByItemIds(ids, platform);
}
}
}

171
src/Coldairarrow.Business/HuiYan/itemlabelsBusiness.cs

@ -1,4 +1,5 @@
using Coldairarrow.Entity.HuiYan;
using Coldairarrow.Entity.DTO;
using Coldairarrow.Entity.HuiYan;
using Coldairarrow.Util;
using EFCore.Sharding;
using LinqKit;
@ -6,15 +7,19 @@ using Microsoft.EntityFrameworkCore;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Dynamic.Core;
using System;
using System.Threading.Tasks;
using System.Linq.Expressions;
namespace Coldairarrow.Business.HuiYan
{
public class itemlabelsBusiness : BaseBusiness<itemlabels>, IitemlabelsBusiness, ITransientDependency
{
public itemlabelsBusiness(IDbAccessor db)
IteamitemsBusiness iteamitemsBusiness;
public itemlabelsBusiness(IDbAccessor db, IteamitemsBusiness _iteamitemsBusiness)
: base(db)
{
iteamitemsBusiness = _iteamitemsBusiness;
}
#region 外部接口
@ -61,5 +66,167 @@ namespace Coldairarrow.Business.HuiYan
#region 私有成员
#endregion
public AjaxResult GetLabelByItemIds(List<string> ids, ItemPlatform platform)
{
Expression<Func<itemlabels, items, ItemlabelInfoDto>> select = (a, b) => new ItemlabelInfoDto
{
GoodsId = b.GoodsId,
HasFilter = b.HasFilter,
Platform = b.Platform
};
select = select.BuildExtendSelectExpre();
var q_titem = GetIQueryable();
var q = from a in q_titem.AsExpandable()
join b in Db.GetIQueryable<items>() on a.ItemsId equals b.Id into ab
from b in ab.DefaultIfEmpty()
select @select.Invoke(a, b);
//查询这边还需要添加 (Teamid筛选,或者HasFilter=True) 的二选一查询
var where = LinqHelper.True<ItemlabelInfoDto>().And(c => c.Platform == (int)platform && ids.Contains(c.GoodsId));
//where = where.And(c => c.TeamId == "" || c.HasFilter ==true);
var list = q.Where(where).ToListAsync().Result;
return Success(list);
}
public AjaxResult SetItemLabel(ItemLabelDto model)
{
var item= Db.GetIQueryable<items>().FirstOrDefault(c => c.GoodsId == model.ItemId);
if (item == null)
{
item = new items()
{
CreateTime = DateTime.Now,
CreatorId = string.Empty,
Deleted = false,
GoodsId = model.ItemId,
Id = IdHelper.GetId(),
HasFilter = model.Status == 1,
Platform = (int)model.Platform
};
int row = Db.Insert(item);
if (row <= 0)
return Error("添加失败!");
}
var where = LinqHelper.True<itemlabels>().And(c => c.ItemsId == item.Id);
//团队筛选
//where = where.And(c=>c.TeamId=="");
var result = Db.RunTransaction(() =>
{
int row = 0;
bool hasAdded = false;
var label = GetIQueryable().FirstOrDefault(where);
//新增
if (label == null)
{
label = new itemlabels()
{
CreateTime = DateTime.Now,
Deleted = false,
Id = IdHelper.GetId(),
ItemsId = item.Id,
CreatorId = string.Empty,
TeamId = string.Empty,
UserId = string.Empty
};
switch (model.Status)
{
case 0:
label.IsScreening = true;
break;
case 1:
label.IsFilter = true;
break;
case 2:
label.IsAdded = true;
break;
case 3:
label.IsCompeting = true;
break;
}
row = Db.Insert<itemlabels>(label);
if (row <= 0)
throw new Exception("标签设置失败!");
}
//更新
else
{
hasAdded = label.IsAdded;
//更新状态
row = Db.Update<itemlabels>(c => c.Id == label.Id, (data) =>
{
switch (model.Status)
{
case 0:
if (label.IsFilter)
throw new Exception("该商品已被过滤!");
data.IsScreening = true;
break;
case 1:
if (label.IsScreening)
throw new Exception("该商品已被筛选!");
data.IsFilter = true;
break;
case 2:
data.IsAdded = true;
break;
case 3:
data.IsCompeting = true;
break;
}
});
if (row <= 0)
throw new Exception("标签设置失败!");
}
//设置集团过滤
if (model.Status == 1)
{
Db.Update<items>(c => c.Id == item.Id, (i) => { i.HasFilter = true; });
}
//判断是否添加产品库
if (model.Status==2&&!hasAdded)
{
if (!iteamitemsBusiness.AddItem(new TeamitemDto()
{
GoodsId = model.ItemId,
ItemId = item.Id,
ItemImg = model.Img,
Price = model.Price,
Platform = item.Platform,
Sales = model.Sales,
Title = model.Title
}).Success)
{
throw new Exception("添加产品库失败!");
}
}
});
if (result.Success)
return Success("操作成功!");
return Error(result.ex.Message);
}
}
}

42
src/Coldairarrow.Business/HuiYan/teamitemsBusiness.cs

@ -101,27 +101,32 @@ namespace Coldairarrow.Business.HuiYan
model.Extensions = new List<TeamItemExtension>();
for (int i = 0; i < 5; i++)
model.Extensions.Add(new TeamItemExtension() { Platform = 0 });
model.Extensions.Add(new TeamItemExtension() { Platform = model.Platform });
var item = Db.GetIQueryable<items>().FirstOrDefault(c => c.GoodsId == model.GoodsId);
if (item == null)
if (string.IsNullOrEmpty(model.ItemId))
{
item = new items()
var item = Db.GetIQueryable<items>().FirstOrDefault(c => c.GoodsId == model.GoodsId);
if (item == null)
{
GoodsId = model.GoodsId,
CreateTime = DateTime.Now,
CreatorId = string.Empty,
Deleted = false,
HasFilter = false,
Id = IdHelper.GetId(),
Platform = 0
};
if (Db.Insert<items>(item) <= 0)
{
return Error("商品添加失败!");
item = new items()
{
GoodsId = model.GoodsId,
CreateTime = DateTime.Now,
CreatorId = string.Empty,
Deleted = false,
HasFilter = false,
Id = IdHelper.GetId(),
Platform = 0
};
if (Db.Insert<items>(item) <= 0)
{
return Error("商品添加失败!");
}
}
model.ItemId = item.Id;
}
//设置为初选
@ -133,6 +138,7 @@ namespace Coldairarrow.Business.HuiYan
Deleted = false,
ExtensionJson = Newtonsoft.Json.JsonConvert.SerializeObject(model.Extensions),
Id = IdHelper.GetId(),
//待完善
TeamId = string.Empty,
UserId = string.Empty,
@ -142,7 +148,7 @@ namespace Coldairarrow.Business.HuiYan
Sales = model.Sales,
Title = model.Title,
ItemId = item.Id
ItemId = model.ItemId
});
if (row <= 0)

50
src/Coldairarrow.Entity/DTO/ItemLabelDto.cs

@ -0,0 +1,50 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Coldairarrow.Entity.DTO
{
public class ItemLabelDto
{
public string ItemId { get; set; }
public string Title { get; set; }
public decimal Price { get; set; }
public string Sales { get; set; }
public string Img { get; set; }
/// <summary>
/// 标签状态
/// </summary>
public int Status { get; set; }
/// <summary>
/// 平台
/// </summary>
public ItemPlatform Platform { get; set; }
}
/// <summary>
/// 平台类型
/// </summary>
public enum ItemPlatform
{
/// <summary>
/// 淘宝
/// </summary>
Taobao = 0,
/// <summary>
/// 京东
/// </summary>
Jd = 1,
/// <summary>
/// 拼多多
/// </summary>
Pdd = 2
}
}

27
src/Coldairarrow.Entity/DTO/ItemlabelInfoDto.cs

@ -0,0 +1,27 @@
using Coldairarrow.Entity.HuiYan;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Coldairarrow.Entity.DTO
{
public class ItemlabelInfoDto:itemlabels
{
/// <summary>
/// 平台
/// </summary>
public int Platform { get; set; }
/// <summary>
/// 是否集团过滤
/// </summary>
public bool HasFilter { get; set; }
/// <summary>
/// 宝贝ID
/// </summary>
public string GoodsId { get; set; }
}
}

2
src/Coldairarrow.Entity/HuiYan/teamitems.cs

@ -50,7 +50,7 @@ namespace Coldairarrow.Entity.HuiYan
/// <summary>
/// 收货人数
/// </summary>
public Int32? Sales { get; set; }
public string Sales { get; set; }
/// <summary>
/// 商品图片

6
src/Coldairarrow.IBusiness/HuiYan/IitemlabelsBusiness.cs

@ -1,4 +1,5 @@
using Coldairarrow.Entity.HuiYan;
using Coldairarrow.Entity.DTO;
using Coldairarrow.Entity.HuiYan;
using Coldairarrow.Util;
using System.Collections.Generic;
using System.Threading.Tasks;
@ -12,5 +13,8 @@ namespace Coldairarrow.Business.HuiYan
Task AddDataAsync(itemlabels data);
Task UpdateDataAsync(itemlabels data);
Task DeleteDataAsync(List<string> ids);
AjaxResult SetItemLabel(ItemLabelDto model);
AjaxResult GetLabelByItemIds(List<string> ids, ItemPlatform platform);
}
}

121
客户端/齐越慧眼/齐越慧眼/ApiHelper.cs

@ -0,0 +1,121 @@
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Text;
using System.Threading;
using System.Windows;
using .Models;
namespace
{
public class ApiHelper
{
public static string ApiBase { get; set; } = "http://localhost:5000";
public static string JwtToken { get; set; }
/// <summary>
/// 设置商品标签
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public static (bool isOk,string msg) SetItemLabel(ItemLabelDto model)
{
var result= Http("/HuiYan/itemlabels/SetItemLabel", Newtonsoft.Json.JsonConvert.SerializeObject(model));
var data = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(result);
bool isSuccess = data.Success;
return (isSuccess, data.Msg ?? "");
}
/// <summary>
/// 获取标签信息
/// </summary>
/// <param name="ids"></param>
/// <param name="platform"></param>
/// <returns></returns>
public static (bool isOk,List<ItemlabelInfoDto> datas) GetLabelByItemIds(List<string>ids,ItemPlatform platform)
{
try
{
var result = Http($"/HuiYan/itemlabels/GetLabelByItemIds?platform={platform}", Newtonsoft.Json.JsonConvert.SerializeObject(ids));
var data = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(result);
string json = data.Data.ToString();
var datas = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ItemlabelInfoDto>>(json);
bool isSuccess = data.Success;
return (isSuccess, datas ?? new List<ItemlabelInfoDto>());
}
catch
{
return (false, new List<ItemlabelInfoDto>());
}
}
/// <summary>
/// http接口调用
/// </summary>
/// <param name="api"></param>
/// <param name="postData"></param>
/// <returns></returns>
private static string Http(string api, string postData = null, bool isAgain = false)
{
try
{
HttpClient http = new HttpClient();
http.Timeout = new TimeSpan(0, 0, 35);
http.DefaultRequestHeaders.Add("Authorization", "Bearer " + JwtToken);
if (postData!=null)
{
StringContent content = new StringContent(postData);
content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");
var result = http.PostAsync(ApiBase + api, content).Result.Content.ReadAsStringAsync().Result;
return result;
}
var request = new HttpRequestMessage() { Method = HttpMethod.Get, RequestUri = new Uri(ApiBase + api) };
var res = http.SendAsync(request).Result;
if (res.StatusCode == System.Net.HttpStatusCode.Unauthorized)
{
return string.Empty;
}
else
{
//服务器挂掉
if (res.StatusCode != System.Net.HttpStatusCode.OK)
{
if (isAgain)
return null;
Thread.Sleep(60000);
return Http(api, postData, true);
}
return res.Content.ReadAsStringAsync().Result;
}
}
catch (HttpRequestException ex)
{
if (isAgain)
return null;
Thread.Sleep(60000);
return Http(api, postData, true);
}
catch (Exception ex)
{
return null;
}
}
}
}

6
客户端/齐越慧眼/齐越慧眼/App.xaml.cs

@ -17,8 +17,10 @@ namespace 齐越慧眼
public partial class App : Application
{
public App() {
var settings = new CefSettings() {
var settings = new CefSettings() {
CachePath = System.Environment.CurrentDirectory + "\\webDatas\\data",
// LocalesDirPath = System.Environment.CurrentDirectory + "\\webDatas",
RootCachePath= System.Environment.CurrentDirectory + "\\rootCache"
};
// ...

7
客户端/齐越慧眼/齐越慧眼/MainWindow.xaml

@ -11,9 +11,10 @@
WindowStartupLocation="CenterScreen"
ActiveGlowColor="{DynamicResource PrimaryColor}"
Height="450"
Width="800" >
Width="800"
>
<Border Padding="0 10" Background="#EEEEEE">
<hc:TabControl IsAnimationEnabled="True" IsTabFillEnabled="False" TabItemWidth="150">
<hc:TabControl IsAnimationEnabled="True" IsTabFillEnabled="False" TabItemWidth="150" Name="tab">
<hc:TabItem IsSelected="True" Header="品类词库">
<uc:CatControl></uc:CatControl>
</hc:TabItem>
@ -21,7 +22,7 @@
<uc:ItemControl></uc:ItemControl>
</hc:TabItem>
<hc:TabItem Header="浏览器">
<uc:BrowerControl></uc:BrowerControl>
<uc:BrowerControl x:Name="brower"></uc:BrowerControl>
</hc:TabItem>
</hc:TabControl>
</Border>

15
客户端/齐越慧眼/齐越慧眼/MainWindow.xaml.cs

@ -21,9 +21,24 @@ namespace 齐越慧眼
/// </summary>
public partial class MainWindow : GlowWindow
{
public static MainWindow Main;
public MainWindow()
{
InitializeComponent();
Main = this;
}
public void ChangeTab(string keyWord,int type)
{
Application.Current.Dispatcher.Invoke(() =>
{
tab.SelectedIndex = 2;
brower.web.Load($"https://s.taobao.com/search?q={keyWord}&imgfile=&commend=all&ssid=s5-e&search_type=item&sourceId=tb.index");
});
}
}
}

48
客户端/齐越慧眼/齐越慧眼/Models/ItemLabelDto.cs

@ -0,0 +1,48 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace .Models
{
public class ItemLabelDto
{
public string ItemId { get; set; }
public string Title { get; set; }
public decimal Price { get; set; }
public string Sales { get; set; }
public string Img { get; set; }
/// <summary>
/// 标签状态
/// </summary>
public int Status { get; set; }
/// <summary>
/// 平台
/// </summary>
public ItemPlatform Platform { get; set; }
}
/// <summary>
/// 平台类型
/// </summary>
public enum ItemPlatform
{
/// <summary>
/// 淘宝
/// </summary>
Taobao = 0,
/// <summary>
/// 京东
/// </summary>
Jd = 1,
/// <summary>
/// 拼多多
/// </summary>
Pdd = 2
}
}

81
客户端/齐越慧眼/齐越慧眼/Models/ItemlabelInfoDto.cs

@ -0,0 +1,81 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace .Models
{
public class ItemlabelInfoDto : itemlabels
{
/// <summary>
/// 平台
/// </summary>
public int Platform { get; set; }
/// <summary>
/// 是否集团过滤
/// </summary>
public bool HasFilter { get; set; }
/// <summary>
/// 宝贝ID
/// </summary>
public string GoodsId { get; set; }
}
public class itemlabels
{
public String Id { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreateTime { get; set; }
/// <summary>
/// 创建人Id
/// </summary>
public String CreatorId { get; set; }
/// <summary>
/// 否已删除
/// </summary>
public Boolean Deleted { get; set; }
/// <summary>
/// 宝贝ID
/// </summary>
public String ItemsId { get; set; }
/// <summary>
/// 是否筛选
/// </summary>
public Boolean IsScreening { get; set; }
/// <summary>
/// 是否过滤
/// </summary>
public Boolean IsFilter { get; set; }
/// <summary>
/// 是否竞品
/// </summary>
public Boolean IsCompeting { get; set; }
/// <summary>
/// 是否加入产品库
/// </summary>
public Boolean IsAdded { get; set; }
/// <summary>
/// 添加人
/// </summary>
public String UserId { get; set; }
/// <summary>
/// 团队ID
/// </summary>
public String TeamId { get; set; }
}
}

92
客户端/齐越慧眼/齐越慧眼/UserControls/BrowerControl.xaml.cs

@ -1,5 +1,7 @@
using CefSharp;
using CefSharp.Wpf;
using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using System.Windows;
@ -12,7 +14,7 @@ namespace 齐越慧眼.UserControls
/// </summary>
public partial class BrowerControl : UserControl
{
ChromiumWebBrowser web;
public ChromiumWebBrowser web;
public BrowerControl()
{
InitializeComponent();
@ -36,7 +38,6 @@ namespace 齐越慧眼.UserControls
web.JavascriptObjectRepository.Settings.LegacyBindingEnabled = true;
web.JavascriptObjectRepository.Settings.LegacyBindingEnabled = true;
web.JavascriptObjectRepository.Register("hyCoreModel", new CefAsyncJS(), BindingOptions.DefaultBinder);
}
@ -86,6 +87,7 @@ namespace 齐越慧眼.UserControls
if (result.Success)
{
AddOptionDiv();
CheckPageItem();
break;
}
@ -99,13 +101,53 @@ namespace 齐越慧眼.UserControls
}
/// <summary>
/// 检测页面商品
/// </summary>
/// <returns></returns>
private void CheckPageItem()
{
var res = DoJavaScript(@"var ids=[]; $('div#mainsrp-itemlist .items .item .J_ItemPicA').each(function(){ids.push($(this).attr(""data-nid""))});return ids;");
List<string> itemIds = Newtonsoft.Json.JsonConvert.DeserializeObject<List<string>>(Newtonsoft.Json.JsonConvert.SerializeObject(res.result));
var result= ApiHelper.GetLabelByItemIds(itemIds, Models.ItemPlatform.Taobao);
if (result.isOk)
{
foreach (var item in result.datas)
{
//判断是否团队过滤
if (item.IsFilter)
{
DoJavaScript($@"$($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{item.GoodsId}""]').parent().parent()).find('.myitemState').addClass(""falseBg"")");
}
//判断是否集团过滤
if (item.HasFilter){
DoJavaScript($@"$($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{item.GoodsId}""]').parent().parent()).find('.myitemState').prepend('<div class=""smallfalseBg""></div>')");
}
if (item.IsCompeting)
{
//<div style=""width:20%;height:20%"" class=""bgYellow"">竞</div>
DoJavaScript($@"$($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{item.GoodsId}""]').parent().parent()).find('.myitemState').prepend('<div style=""width:20%;height:20%"" class=""bgYellow"">竞</div>')");
}
if (item.IsScreening)
{
DoJavaScript($@"$($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{item.GoodsId}""]').parent().parent()).find('.myitemState').addClass(""trueBg"")");
}
}
}
}
/// <summary>
/// 添加jq操作类
/// </summary>
/// <returns></returns>
private bool AddJquery()
{
return DoJavaScript("var script=document.createElement('script'); script.type='text/javascript'; script.src='https://code.jquery.com/jquery-1.12.4.min.js'; document.getElementsByTagName('head')[0].appendChild(script); ");
return DoJavaScript("var script=document.createElement('script'); script.type='text/javascript'; script.src='https://code.jquery.com/jquery-1.12.4.min.js'; document.getElementsByTagName('head')[0].appendChild(script); ").isOk;
}
@ -124,17 +166,17 @@ namespace 齐越慧眼.UserControls
var sales=infoDiv.find("".deal-cnt"").text();
var title=infoDiv.find("".title"").text();
var img=$(ele).parent().parent().find(""img"").attr(""src"");
hyCoreModel.setItemData(price+""\r\n""+sales+""\r\n""+title+""\r\n""+img+""\r\n""+itemid);
hyCoreModel.setItemData({itemid:itemid,price:price,sales:sales,title:title,img:img,type:type});
};
");
DoJavaScript(@"$('div#mainsrp-itemlist .items .item .pic').before('<div class=""myitemState""><div class=""stateGraydiv""></div></div><div class=""myopdiv"">
<div class=""bgGreen"" onclick=""optClick(this,1)""></div>
<div class=""bgPig"" onclick=""optClick(this,2)""></div>
<div class=""bgZs"" onclick=""optClick(this,3)""></div>
<div class=""bgYellow"" style=""display:flex"" onclick=""optClick(this,4)""></div>
<div class=""bgGreen"" onclick=""optClick(this,0)""></div>
<div class=""bgPig"" onclick=""optClick(this,1)""></div>
<div class=""bgZs"" onclick=""optClick(this,2)""></div>
<div class=""bgYellow"" style=""display:flex"" onclick=""optClick(this,3)""></div>
</div>')");
@ -170,6 +212,7 @@ namespace 齐越慧眼.UserControls
top: unset;
background: url(""nacollector://home/img/close.png"") no-repeat;
background-size: 100% 100%;
position: absolute;
}
.stateGraydiv
@ -193,6 +236,7 @@ namespace 齐越慧眼.UserControls
width: 23%;
height: 20%;
display: inline-block;
cursor: pointer;
}
.pic-box:hover .myopdiv
@ -229,7 +273,7 @@ namespace 齐越慧眼.UserControls
font-family: ""global-iconfont"";
font-weight: 999;
}
</style>')".Replace("\n", "").Replace("\r\n", ""));
</style>')".Replace("\n", "").Replace("\r\n", "")).isOk;
}
@ -239,7 +283,7 @@ namespace 齐越慧眼.UserControls
/// </summary>
/// <param name="js"></param>
/// <returns></returns>
private bool DoJavaScript(string js)
private (bool isOk, object result) DoJavaScript(string js)
{
js = js.Replace("\n", "").Replace("\r\n", "").Replace(System.Environment.NewLine, "").Replace("\r", "");
Task<JavascriptResponse> task = null;
@ -252,7 +296,7 @@ namespace 齐越慧眼.UserControls
var result = task.Result;
//判断是否加载完成
return result.Success;
return (result.Success,result.Result);
}
}
@ -263,9 +307,31 @@ namespace 齐越慧眼.UserControls
{
return "我草";
}
public void setItemData(string data)
public bool setItemData(dynamic data)
{
MessageBox.Show(data);
int type = data.type;
string price = data.price;
price = price.Replace("¥", "").Trim();
string sales = data.sales;
string title = data.title;
title = title.Trim();
string img = data.img;
string itemId = data.itemid;
var result = ApiHelper.SetItemLabel(new Models.ItemLabelDto()
{
Img = img,
ItemId = itemId,
Platform = Models.ItemPlatform.Taobao,
Price = Convert.ToDecimal(price),
Sales = sales,
Status = type,
Title = title
});
MessageBox.Show(result.msg, "提示");
return result.isOk;
}
}

17
客户端/齐越慧眼/齐越慧眼/UserControls/CatControl.xaml.cs

@ -20,14 +20,10 @@ namespace 齐越慧眼.UserControls
/// </summary>
public partial class CatControl : UserControl
{
ChromiumWebBrowser web;
public CatControl()
{
InitializeComponent();
Loaded += CatControl_Loaded;
}
ChromiumWebBrowser web;
private void CatControl_Loaded(object sender, RoutedEventArgs e)
{
web = new ChromiumWebBrowser("nacollector://home")
{
@ -44,11 +40,18 @@ namespace 齐越慧眼.UserControls
grid.Children.Add(web);
web.JavascriptObjectRepository.Settings.LegacyBindingEnabled = true;
web.JavascriptObjectRepository.Register("hyCoreModel", new CatsAsyncJS(), BindingOptions.DefaultBinder);
}
private void Button_Click(object sender, RoutedEventArgs e)
}
public class CatsAsyncJS
{
public void openTabByKey(string keyWord,int type)
{
web.ShowDevTools();
MainWindow.Main.ChangeTab(keyWord, type);
}
}
}

8
客户端/齐越慧眼/齐越慧眼/UserControls/ItemControl.xaml.cs

@ -20,15 +20,10 @@ namespace 齐越慧眼.UserControls
/// </summary>
public partial class ItemControl : UserControl
{
ChromiumWebBrowser web;
public ItemControl()
{
InitializeComponent();
Loaded += ItemControl_Loaded;
}
ChromiumWebBrowser web;
private void ItemControl_Loaded(object sender, RoutedEventArgs e)
{
web = new ChromiumWebBrowser("nacollector://home/item")
{
BrowserSettings =
@ -43,5 +38,6 @@ namespace 齐越慧眼.UserControls
grid.Children.Add(web);
}
}
}

8
客户端/齐越慧眼/齐越慧眼/vuepage/client/src/views/cats/Index.vue

@ -55,7 +55,7 @@
集团库
</a-col>
<a-col :span="16">
<a-tag style="cursor: pointer;" :key="i4"
<a-tag style="cursor: pointer;" :key="i4" @click="openKey(keyword.title)"
v-for="(keyword,i4) in lastCat.children.filter(c=>c.Type==0)">
{{keyword.title}}</a-tag>
</a-col>
@ -68,7 +68,7 @@
团队库
</a-col>
<a-col :span="16">
<a-tag style="cursor: pointer;" :key="i4"
<a-tag style="cursor: pointer;" :key="i4" @click="openKey(keyword.title)"
v-for="(keyword,i4) in lastCat.children.filter(c=>c.Type==1)">
{{keyword.title}}</a-tag>
</a-col>
@ -98,6 +98,10 @@
this.getDatas()
},
methods: {
openKey(key)
{
hyCoreModel.openTabByKey(key,0)
},
getDatas() {
this.http.get('/HuiYan/cats/GetCatDatas').then(res => {
this.datas = res.Data

3
客户端/齐越慧眼/齐越慧眼/vuepage/client/src/views/items/Index.vue

@ -55,7 +55,7 @@
<a-col :span="4">
<div class="borderRight">
<div style="padding-top: 10px;padding-bottom: 10px;width: 200px;margin: 0px auto;height: 215px;">
<img :src="item.ItemImg" width="200" height="165">
<img :src="'http:'+item.ItemImg" width="200" height="165">
<a-row>
<a-col :span="12" style="text-align: left;">¥{{item.Price}}</a-col>
<a-col :span="12" style="text-align: right;">{{item.Sales}}人收货</a-col>
@ -268,7 +268,6 @@
border: 1px solid rgba(215, 215, 215, 1);
border-left: 0px;
border-right: 0px;
border-bottom: 0px;
}
.border {

1
客户端/齐越慧眼/齐越慧眼/vuepage/dist/css/app.3528f00e.css

File diff suppressed because one or more lines are too long

1
客户端/齐越慧眼/齐越慧眼/vuepage/dist/css/app.aed7bccd.css

File diff suppressed because one or more lines are too long

2
客户端/齐越慧眼/齐越慧眼/vuepage/dist/css/app.css

File diff suppressed because one or more lines are too long

2
客户端/齐越慧眼/齐越慧眼/vuepage/dist/index.html

@ -1 +1 @@
<!DOCTYPE html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/favicon.ico"><title>client</title><link href="/js/about.js" rel="prefetch"><link href="/css/app.66edb6c9.css" rel="preload" as="style"><link href="/css/app.css" rel="preload" as="style"><link href="/css/chunk-vendors.09af4a6b.css" rel="preload" as="style"><link href="/css/chunk-vendors.css" rel="preload" as="style"><link href="/js/app.js" rel="preload" as="script"><link href="/js/chunk-vendors.js" rel="preload" as="script"><link href="/css/chunk-vendors.09af4a6b.css" rel="stylesheet"><link href="/css/chunk-vendors.css" rel="stylesheet"><link href="/css/app.66edb6c9.css" rel="stylesheet"><link href="/css/app.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but client doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="/js/chunk-vendors.js"></script><script src="/js/app.js"></script></body></html>
<!DOCTYPE html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/favicon.ico"><title>client</title><link href="/css/app.aed7bccd.css" rel="preload" as="style"><link href="/css/app.css" rel="preload" as="style"><link href="/css/chunk-vendors.09af4a6b.css" rel="preload" as="style"><link href="/css/chunk-vendors.css" rel="preload" as="style"><link href="/js/app.js" rel="preload" as="script"><link href="/js/chunk-vendors.js" rel="preload" as="script"><link href="/css/chunk-vendors.09af4a6b.css" rel="stylesheet"><link href="/css/chunk-vendors.css" rel="stylesheet"><link href="/css/app.aed7bccd.css" rel="stylesheet"><link href="/css/app.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but client doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="/js/chunk-vendors.js"></script><script src="/js/app.js"></script></body></html>

BIN
客户端/齐越慧眼/齐越慧眼/vuepage/dist/jp.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

2
客户端/齐越慧眼/齐越慧眼/vuepage/dist/js/app.js

File diff suppressed because one or more lines are too long

2
客户端/齐越慧眼/齐越慧眼/vuepage/dist/js/app.js.map

File diff suppressed because one or more lines are too long

22
客户端/齐越慧眼/齐越慧眼/齐越慧眼.csproj

@ -40,24 +40,27 @@
<None Remove="vuepage\client\.eslintrc.js" />
<None Remove="vuepage\client\.gitignore" />
<None Remove="vuepage\client\.postcssrc.js" />
<None Remove="vuepage\dist\css\app.3528f00e.css" />
<None Remove="vuepage\dist\css\app.66edb6c9.css" />
<None Remove="vuepage\dist\css\app.aed7bccd.css" />
<None Remove="vuepage\dist\css\app.b0aefef5.css" />
<None Remove="vuepage\dist\css\app.css" />
<None Remove="vuepage\dist\css\chunk-vendors.09af4a6b.css" />
<None Remove="vuepage\dist\css\chunk-vendors.css" />
<None Remove="vuepage\dist\img\close.png" />
<None Remove="vuepage\dist\img\true.png" />
<None Remove="vuepage\dist\jp.png" />
<None Remove="vuepage\dist\js\about.js" />
<None Remove="vuepage\dist\js\about.js.map" />
<None Remove="vuepage\dist\js\app.js" />
<None Remove="vuepage\dist\js\app.js.map" />
<None Remove="vuepage\dist\js\chunk-vendors.js" />
<None Remove="vuepage\dist\js\chunk-vendors.js.map" />
<None Remove="vuepage\client\index.html" />
<None Remove="vuepage\client\package.json" />
<None Remove="vuepage\client\README.md" />
<None Remove="vuepage\client\vue.config.js" />
<None Remove="vuepage\client\yarn.lock" />
<None Remove="vuepage\dist\js\app.js" />
<None Remove="vuepage\dist\js\app.js.map" />
<None Remove="vuepage\dist\js\chunk-vendors.js" />
<None Remove="vuepage\dist\js\chunk-vendors.js.map" />
</ItemGroup>
<ItemGroup>
@ -67,23 +70,26 @@
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="vuepage\dist\css\app.3528f00e.css" />
<EmbeddedResource Include="vuepage\dist\css\app.66edb6c9.css" />
<EmbeddedResource Include="vuepage\dist\css\app.aed7bccd.css" />
<EmbeddedResource Include="vuepage\dist\css\app.css" />
<EmbeddedResource Include="vuepage\dist\css\chunk-vendors.09af4a6b.css" />
<EmbeddedResource Include="vuepage\dist\css\chunk-vendors.css" />
<EmbeddedResource Include="vuepage\dist\img\close.png" />
<EmbeddedResource Include="vuepage\dist\img\true.png" />
<EmbeddedResource Include="vuepage\dist\jp.png" />
<EmbeddedResource Include="vuepage\dist\js\about.js" />
<EmbeddedResource Include="vuepage\dist\js\about.js.map" />
<EmbeddedResource Include="vuepage\dist\js\app.js" />
<EmbeddedResource Include="vuepage\dist\js\app.js.map" />
<EmbeddedResource Include="vuepage\dist\js\chunk-vendors.js" />
<EmbeddedResource Include="vuepage\dist\js\chunk-vendors.js.map" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="vuepage\dist\favicon.ico" />
<EmbeddedResource Include="vuepage\dist\index.html" />
<EmbeddedResource Include="vuepage\dist\js\app.js" />
<EmbeddedResource Include="vuepage\dist\js\app.js.map" />
<EmbeddedResource Include="vuepage\dist\js\chunk-vendors.js" />
<EmbeddedResource Include="vuepage\dist\js\chunk-vendors.js.map" />
</ItemGroup>
<ItemGroup>

Loading…
Cancel
Save