Browse Source

对接用户系统和团队

master
С·æ 4 years ago
parent
commit
a4c387d747
  1. 15
      src/Coldairarrow.Api/Controllers/HuiYan/catsController.cs
  2. 4
      src/Coldairarrow.Api/Controllers/HuiYan/itemlabelsController.cs
  3. 8
      src/Coldairarrow.Api/Controllers/HuiYan/teamitemsController.cs
  4. 15
      src/Coldairarrow.Api/DependencyInjection/Operator.cs
  5. 25
      src/Coldairarrow.Business/HuiYan/catsBusiness.cs
  6. 14
      src/Coldairarrow.Business/HuiYan/itemlabelsBusiness.cs
  7. 15
      src/Coldairarrow.Business/HuiYan/teamitemsBusiness.cs
  8. 16
      src/Coldairarrow.IBusiness/HuiYan/IcatsBusiness.cs
  9. 4
      src/Coldairarrow.IBusiness/IOperator.cs
  10. 72
      客户端/齐越慧眼/齐越慧眼/ApiHelper.cs
  11. 8
      客户端/齐越慧眼/齐越慧眼/App.xaml
  12. 3
      客户端/齐越慧眼/齐越慧眼/App.xaml.cs
  13. 28
      客户端/齐越慧眼/齐越慧眼/LoginWindow.xaml
  14. 32
      客户端/齐越慧眼/齐越慧眼/LoginWindow.xaml.cs
  15. 110
      客户端/齐越慧眼/齐越慧眼/LoginWindowViewModel.cs
  16. 2
      客户端/齐越慧眼/齐越慧眼/MainWindow.xaml
  17. 2
      客户端/齐越慧眼/齐越慧眼/MainWindow.xaml.cs
  18. 75
      客户端/齐越慧眼/齐越慧眼/ToStringConverter.cs
  19. 51
      客户端/齐越慧眼/齐越慧眼/UserControls/BrowerControl.xaml.cs
  20. 1
      客户端/齐越慧眼/齐越慧眼/UserControls/CatControl.xaml
  21. 16
      客户端/齐越慧眼/齐越慧眼/UserControls/CatControl.xaml.cs
  22. 1
      客户端/齐越慧眼/齐越慧眼/UserControls/ItemControl.xaml.cs
  23. 26
      客户端/齐越慧眼/齐越慧眼/vuepage/client/src/views/cats/Index.vue
  24. 4
      客户端/齐越慧眼/齐越慧眼/vuepage/client/src/views/items/Index.vue
  25. 1
      客户端/齐越慧眼/齐越慧眼/vuepage/dist/css/app.3528f00e.css
  26. 1
      客户端/齐越慧眼/齐越慧眼/vuepage/dist/css/app.66edb6c9.css
  27. 2
      客户端/齐越慧眼/齐越慧眼/vuepage/dist/js/about.js
  28. 1
      客户端/齐越慧眼/齐越慧眼/vuepage/dist/js/about.js.map
  29. 2
      客户端/齐越慧眼/齐越慧眼/vuepage/dist/js/app.js
  30. 2
      客户端/齐越慧眼/齐越慧眼/vuepage/dist/js/app.js.map
  31. 15
      客户端/齐越慧眼/齐越慧眼/齐越慧眼.csproj

15
src/Coldairarrow.Api/Controllers/HuiYan/catsController.cs

@ -86,7 +86,7 @@ namespace Coldairarrow.Api.Controllers.HuiYan
/// 获取所有品类词列表 /// 获取所有品类词列表
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
[HttpGet, AllowAnonymous] [HttpGet]
public async Task<List<CatTreeDTO>> GetCatDatas() public async Task<List<CatTreeDTO>> GetCatDatas()
{ {
return await _catsBus.GetTreeDataListAsync(); return await _catsBus.GetTreeDataListAsync();
@ -97,12 +97,23 @@ namespace Coldairarrow.Api.Controllers.HuiYan
/// </summary> /// </summary>
/// <param name="model"></param> /// <param name="model"></param>
/// <returns></returns> /// <returns></returns>
[HttpPost, AllowAnonymous] [HttpPost]
public AjaxResult AddPLKeyWord(KeyWordDto model) public AjaxResult AddPLKeyWord(KeyWordDto model)
{ {
return _catsBus.AddKeyWord(model); return _catsBus.AddKeyWord(model);
} }
/// <summary>
/// 更新打开时间
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpPost]
public AjaxResult SetKeyOpenTime(string id,ItemPlatform platform)
{
return _catsBus.SetKeyOpenTime(id);
}
#endregion #endregion
} }
} }

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

@ -69,7 +69,7 @@ namespace Coldairarrow.Api.Controllers.HuiYan
/// </summary> /// </summary>
/// <param name="model"></param> /// <param name="model"></param>
/// <returns></returns> /// <returns></returns>
[HttpPost, AllowAnonymous] [HttpPost]
public AjaxResult SetItemLabel(ItemLabelDto model) public AjaxResult SetItemLabel(ItemLabelDto model)
{ {
return _itemlabelsBus.SetItemLabel(model); return _itemlabelsBus.SetItemLabel(model);
@ -81,7 +81,7 @@ namespace Coldairarrow.Api.Controllers.HuiYan
/// <param name="ids"></param> /// <param name="ids"></param>
/// <param name="platform"></param> /// <param name="platform"></param>
/// <returns></returns> /// <returns></returns>
[HttpPost, AllowAnonymous] [HttpPost]
public AjaxResult GetLabelByItemIds([FromBody] List<string> ids, [FromQuery] ItemPlatform platform) public AjaxResult GetLabelByItemIds([FromBody] List<string> ids, [FromQuery] ItemPlatform platform)
{ {

8
src/Coldairarrow.Api/Controllers/HuiYan/teamitemsController.cs

@ -69,7 +69,7 @@ namespace Coldairarrow.Api.Controllers.HuiYan
/// </summary> /// </summary>
/// <param name="input"></param> /// <param name="input"></param>
/// <returns></returns> /// <returns></returns>
[HttpPost, AllowAnonymous] [HttpPost]
public PageResult<TeamitemDto> GetItems(PageInput<ConditionDTO> input) public PageResult<TeamitemDto> GetItems(PageInput<ConditionDTO> input)
{ {
return _teamitemsBus.GetItems(input); return _teamitemsBus.GetItems(input);
@ -80,7 +80,7 @@ namespace Coldairarrow.Api.Controllers.HuiYan
/// </summary> /// </summary>
/// <param name="model"></param> /// <param name="model"></param>
/// <returns></returns> /// <returns></returns>
[HttpPost, AllowAnonymous] [HttpPost]
public AjaxResult AddItem(TeamitemDto model) public AjaxResult AddItem(TeamitemDto model)
{ {
return _teamitemsBus.AddItem(model); return _teamitemsBus.AddItem(model);
@ -91,7 +91,7 @@ namespace Coldairarrow.Api.Controllers.HuiYan
/// </summary> /// </summary>
/// <param name="model"></param> /// <param name="model"></param>
/// <returns></returns> /// <returns></returns>
[HttpPost, AllowAnonymous] [HttpPost]
public AjaxResult SetItem(TeamitemDto model) public AjaxResult SetItem(TeamitemDto model)
{ {
return _teamitemsBus.SetItem(model); return _teamitemsBus.SetItem(model);
@ -103,7 +103,7 @@ namespace Coldairarrow.Api.Controllers.HuiYan
/// <param name="id"></param> /// <param name="id"></param>
/// <param name="state"></param> /// <param name="state"></param>
/// <returns></returns> /// <returns></returns>
[HttpPost, AllowAnonymous] [HttpPost]
public AjaxResult SetState(string id, int state) public AjaxResult SetState(string id, int state)
{ {
return _teamitemsBus.SetState(id, state); return _teamitemsBus.SetState(id, state);

15
src/Coldairarrow.Api/DependencyInjection/Operator.cs

@ -25,11 +25,26 @@ namespace Coldairarrow.Api
_userCache = userCache; _userCache = userCache;
UserId = httpContextAccessor?.HttpContext?.User.Claims UserId = httpContextAccessor?.HttpContext?.User.Claims
.Where(x => x.Type == "userId").FirstOrDefault()?.Value; .Where(x => x.Type == "userId").FirstOrDefault()?.Value;
if (string.IsNullOrEmpty(UserId))
{
string json = httpContextAccessor?.HttpContext?.User.Claims
.Where(x => x.Type == "user").FirstOrDefault()?.Value;
if (!string.IsNullOrEmpty(json))
{
var user = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(json);
UserId = user.Id;
TeamId = user.TeamId;
}
}
} }
private Base_UserDTO _property; private Base_UserDTO _property;
private object _lockObj = new object(); private object _lockObj = new object();
public string TeamId { get; set; }
/// <summary> /// <summary>
/// 当前操作者UserId /// 当前操作者UserId
/// </summary> /// </summary>

25
src/Coldairarrow.Business/HuiYan/catsBusiness.cs

@ -1,5 +1,6 @@
using Coldairarrow.Entity.DTO; using Coldairarrow.Entity.DTO;
using Coldairarrow.Entity.HuiYan; using Coldairarrow.Entity.HuiYan;
using Coldairarrow.IBusiness;
using Coldairarrow.Util; using Coldairarrow.Util;
using EFCore.Sharding; using EFCore.Sharding;
using LinqKit; using LinqKit;
@ -14,9 +15,11 @@ namespace Coldairarrow.Business.HuiYan
{ {
public class catsBusiness : BaseBusiness<cats>, IcatsBusiness, ITransientDependency public class catsBusiness : BaseBusiness<cats>, IcatsBusiness, ITransientDependency
{ {
public catsBusiness(IDbAccessor db) readonly IOperator _operator;
public catsBusiness(IDbAccessor db, IOperator @operator)
: base(db) : base(db)
{ {
_operator = @operator;
} }
#region 外部接口 #region 外部接口
@ -208,7 +211,7 @@ namespace Coldairarrow.Business.HuiYan
public async Task<List<CatTreeDTO>> GetTreeDataListAsync() public async Task<List<CatTreeDTO>> GetTreeDataListAsync()
{ {
var where = LinqHelper.True<cats>().And(c => c.Type == 0 || string.IsNullOrEmpty(c.TeamId)); var where = LinqHelper.True<cats>().And(c => c.Type == 0 || c.TeamId== _operator.TeamId);
var list = await GetIQueryable().Where(where).ToListAsync(); var list = await GetIQueryable().Where(where).ToListAsync();
var treeList = list var treeList = list
@ -218,12 +221,25 @@ namespace Coldairarrow.Business.HuiYan
ParentId = x.ParentId, ParentId = x.ParentId,
Text = x.Name, Text = x.Name,
Value = x.Id, Value = x.Id,
Type = x.Type Type = x.Type,
IsShowJDTime= x.LastShowJDTime==null?true:(DateTime.Now- x.LastShowJDTime.Value).TotalDays>3,
IsShowPddTime = x.LastShowPddTime == null ? true : (DateTime.Now - x.LastShowPddTime.Value).TotalDays > 3,
IsShowTBTime = x.LastShowTBTime == null ? true : (DateTime.Now - x.LastShowTBTime.Value).TotalDays > 3,
}).ToList(); }).ToList();
return TreeHelper.BuildTree(treeList); return TreeHelper.BuildTree(treeList);
} }
public AjaxResult SetKeyOpenTime(string id)
{
if (Db.Update<cats>(c => c.Id == id, (item) =>
{
item.LastShowTBTime = DateTime.Now;
}) > 0)
return Success();
return Error();
}
public AjaxResult AddKeyWord(KeyWordDto model) public AjaxResult AddKeyWord(KeyWordDto model)
{ {
var cat = new cats() var cat = new cats()
@ -237,7 +253,8 @@ namespace Coldairarrow.Business.HuiYan
//设置为团队库 //设置为团队库
Type = model.Type, Type = model.Type,
//暂时没有登录信息 //暂时没有登录信息
TeamId = string.Empty TeamId = _operator.TeamId
}; };
int row = Db.Insert<cats>(cat); int row = Db.Insert<cats>(cat);

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

@ -10,18 +10,22 @@ using System.Linq.Dynamic.Core;
using System; using System;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Linq.Expressions; using System.Linq.Expressions;
using Coldairarrow.IBusiness;
namespace Coldairarrow.Business.HuiYan namespace Coldairarrow.Business.HuiYan
{ {
public class itemlabelsBusiness : BaseBusiness<itemlabels>, IitemlabelsBusiness, ITransientDependency public class itemlabelsBusiness : BaseBusiness<itemlabels>, IitemlabelsBusiness, ITransientDependency
{ {
IteamitemsBusiness iteamitemsBusiness; IteamitemsBusiness iteamitemsBusiness;
public itemlabelsBusiness(IDbAccessor db, IteamitemsBusiness _iteamitemsBusiness) readonly IOperator _operator;
public itemlabelsBusiness(IDbAccessor db, IteamitemsBusiness _iteamitemsBusiness, IOperator @operator)
: base(db) : base(db)
{ {
iteamitemsBusiness = _iteamitemsBusiness; iteamitemsBusiness = _iteamitemsBusiness;
_operator = @operator;
} }
#region 外部接口 #region 外部接口
public async Task<PageResult<itemlabels>> GetDataListAsync(PageInput<ConditionDTO> input) public async Task<PageResult<itemlabels>> GetDataListAsync(PageInput<ConditionDTO> input)
@ -88,7 +92,7 @@ namespace Coldairarrow.Business.HuiYan
//查询这边还需要添加 (Teamid筛选,或者HasFilter=True) 的二选一查询 //查询这边还需要添加 (Teamid筛选,或者HasFilter=True) 的二选一查询
var where = LinqHelper.True<ItemlabelInfoDto>().And(c => c.Platform == (int)platform && ids.Contains(c.GoodsId)); var where = LinqHelper.True<ItemlabelInfoDto>().And(c => c.Platform == (int)platform && ids.Contains(c.GoodsId));
//where = where.And(c => c.TeamId == "" || c.HasFilter ==true); where = where.And(c => c.TeamId == _operator.TeamId || c.HasFilter ==true);
var list = q.Where(where).ToListAsync().Result; var list = q.Where(where).ToListAsync().Result;
@ -140,9 +144,9 @@ namespace Coldairarrow.Business.HuiYan
Deleted = false, Deleted = false,
Id = IdHelper.GetId(), Id = IdHelper.GetId(),
ItemsId = item.Id, ItemsId = item.Id,
CreatorId = string.Empty, CreatorId =_operator.UserId,
TeamId = string.Empty, TeamId =_operator.TeamId,
UserId = string.Empty UserId = _operator.UserId
}; };
switch (model.Status) switch (model.Status)

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

@ -1,5 +1,6 @@
using Coldairarrow.Entity.DTO; using Coldairarrow.Entity.DTO;
using Coldairarrow.Entity.HuiYan; using Coldairarrow.Entity.HuiYan;
using Coldairarrow.IBusiness;
using Coldairarrow.Util; using Coldairarrow.Util;
using EFCore.Sharding; using EFCore.Sharding;
using LinqKit; using LinqKit;
@ -16,9 +17,11 @@ namespace Coldairarrow.Business.HuiYan
{ {
public class teamitemsBusiness : BaseBusiness<teamitems>, IteamitemsBusiness, ITransientDependency public class teamitemsBusiness : BaseBusiness<teamitems>, IteamitemsBusiness, ITransientDependency
{ {
public teamitemsBusiness(IDbAccessor db) readonly IOperator _operator;
public teamitemsBusiness(IDbAccessor db, IOperator @operator)
: base(db) : base(db)
{ {
_operator = @operator;
} }
#region 外部接口 #region 外部接口
@ -87,6 +90,7 @@ namespace Coldairarrow.Business.HuiYan
//查询对应状态 //查询对应状态
var where = LinqHelper.True<TeamitemDto>().And(c => c.State == int.Parse(search.Keyword)); var where = LinqHelper.True<TeamitemDto>().And(c => c.State == int.Parse(search.Keyword));
where = where.And(c => c.TeamId == _operator.TeamId);
var list = q.Where(where).GetPageResultAsync(input).Result; var list = q.Where(where).GetPageResultAsync(input).Result;
@ -113,7 +117,7 @@ namespace Coldairarrow.Business.HuiYan
GoodsId = model.GoodsId, GoodsId = model.GoodsId,
CreateTime = DateTime.Now, CreateTime = DateTime.Now,
CreatorId = string.Empty, CreatorId =_operator.UserId,
Deleted = false, Deleted = false,
HasFilter = false, HasFilter = false,
Id = IdHelper.GetId(), Id = IdHelper.GetId(),
@ -134,14 +138,13 @@ namespace Coldairarrow.Business.HuiYan
{ {
State = 0, State = 0,
CreateTime = DateTime.Now, CreateTime = DateTime.Now,
CreatorId = string.Empty, CreatorId = _operator.UserId,
Deleted = false, Deleted = false,
ExtensionJson = Newtonsoft.Json.JsonConvert.SerializeObject(model.Extensions), ExtensionJson = Newtonsoft.Json.JsonConvert.SerializeObject(model.Extensions),
Id = IdHelper.GetId(), Id = IdHelper.GetId(),
//待完善 TeamId = _operator.TeamId,
TeamId = string.Empty, UserId =_operator.UserId,
UserId = string.Empty,
Price = model.Price, Price = model.Price,
ItemImg = model.ItemImg, ItemImg = model.ItemImg,

16
src/Coldairarrow.IBusiness/HuiYan/IcatsBusiness.cs

@ -21,6 +21,7 @@ namespace Coldairarrow.Business.HuiYan
AjaxResult AddKeyWord(CatDto model); AjaxResult AddKeyWord(CatDto model);
Task<List<CatTreeDTO>> GetTreeDataListAsync(); Task<List<CatTreeDTO>> GetTreeDataListAsync();
AjaxResult AddKeyWord(KeyWordDto model); AjaxResult AddKeyWord(KeyWordDto model);
AjaxResult SetKeyOpenTime(string id);
} }
@ -37,5 +38,20 @@ namespace Coldairarrow.Business.HuiYan
public string key { get => Id; } public string key { get => Id; }
public int Type { get; set; } public int Type { get; set; }
/// <summary>
/// 淘宝时间是否超时
/// </summary>
public bool IsShowTBTime { get; set; }
/// <summary>
/// 京东时间
/// </summary>
public bool IsShowJDTime { get; set; }
/// <summary>
/// 拼多多时间是否超时
/// </summary>
public bool IsShowPddTime { get; set; }
} }
} }

4
src/Coldairarrow.IBusiness/IOperator.cs

@ -8,6 +8,10 @@ namespace Coldairarrow.IBusiness
/// </summary> /// </summary>
public interface IOperator public interface IOperator
{ {
/// <summary>
/// 团队ID
/// </summary>
string TeamId { get; }
/// <summary> /// <summary>
/// 当前操作者UserId /// 当前操作者UserId
/// </summary> /// </summary>

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

@ -14,6 +14,40 @@ namespace 齐越慧眼
public static string JwtToken { get; set; } public static string JwtToken { get; set; }
/// <summary>
/// 登录
/// </summary>
/// <param name="userName"></param>
/// <param name="password"></param>
/// <returns></returns>
public static (bool isOk, string msg) LoginUser(string userName, string password)
{
string result = Http("http://mdsapi.qiyue666.com/TaskList/User/SubmitLogin", Newtonsoft.Json.JsonConvert.SerializeObject(new { userName, password }));
if (string.IsNullOrEmpty(result))
return (false, "服务器异常");
var data = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(result);
bool isSuccess = data.Success;
if (isSuccess)
{
string msg = data.Data.ToString();
if (msg.Contains("账号"))
{
return (false, msg);
}
JwtToken = msg;
return (true, data.Msg ?? "");
}
else
{
return (false, data.Msg ?? "");
}
}
/// <summary> /// <summary>
/// 设置商品标签 /// 设置商品标签
@ -32,6 +66,8 @@ namespace 齐越慧眼
} }
/// <summary> /// <summary>
/// 获取标签信息 /// 获取标签信息
/// </summary> /// </summary>
@ -61,6 +97,31 @@ namespace 齐越慧眼
} }
/// <summary>
/// 设置关键词打开时间
/// </summary>
/// <param name="id"></param>
/// <param name="platform"></param>
/// <returns></returns>
public static (bool isOk, string msg) SetKeyOpenTime(string id, ItemPlatform platform)
{
try
{
var result = Http($"/HuiYan/cats/SetKeyOpenTime?platform={platform}&id={id}", string.Empty);
var data = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(result);
bool isSuccess = data.Success;
return (isSuccess, data.Msg??"操作失败");
}
catch
{
return (false,"系统异常");
}
}
/// <summary> /// <summary>
/// http接口调用 /// http接口调用
/// </summary> /// </summary>
@ -71,6 +132,13 @@ namespace 齐越慧眼
{ {
try try
{ {
string url = api;
if (!url.StartsWith("http"))
{
url = ApiBase + api;
}
HttpClient http = new HttpClient(); HttpClient http = new HttpClient();
http.Timeout = new TimeSpan(0, 0, 35); http.Timeout = new TimeSpan(0, 0, 35);
http.DefaultRequestHeaders.Add("Authorization", "Bearer " + JwtToken); http.DefaultRequestHeaders.Add("Authorization", "Bearer " + JwtToken);
@ -78,11 +146,11 @@ namespace 齐越慧眼
{ {
StringContent content = new StringContent(postData); StringContent content = new StringContent(postData);
content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json"); content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");
var result = http.PostAsync(ApiBase + api, content).Result.Content.ReadAsStringAsync().Result; var result = http.PostAsync(url, content).Result.Content.ReadAsStringAsync().Result;
return result; return result;
} }
var request = new HttpRequestMessage() { Method = HttpMethod.Get, RequestUri = new Uri(ApiBase + api) }; var request = new HttpRequestMessage() { Method = HttpMethod.Get, RequestUri = new Uri(url) };
var res = http.SendAsync(request).Result; var res = http.SendAsync(request).Result;

8
客户端/齐越慧眼/齐越慧眼/App.xaml

@ -2,12 +2,16 @@
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:齐越慧眼" xmlns:local="clr-namespace:齐越慧眼"
StartupUri="MainWindow.xaml"> xmlns:conver="clr-namespace:WPF.Converters"
StartupUri="LoginWindow.xaml">
<Application.Resources> <Application.Resources>
<ResourceDictionary> <ResourceDictionary >
<ResourceDictionary.MergedDictionaries> <ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/HandyControl;component/Themes/SkinDefault.xaml"/> <ResourceDictionary Source="pack://application:,,,/HandyControl;component/Themes/SkinDefault.xaml"/>
<ResourceDictionary Source="pack://application:,,,/HandyControl;component/Themes/Theme.xaml"/> <ResourceDictionary Source="pack://application:,,,/HandyControl;component/Themes/Theme.xaml"/>
<ResourceDictionary>
<conver:ToStringConverter x:Key="toString"></conver:ToStringConverter>
</ResourceDictionary>
</ResourceDictionary.MergedDictionaries> </ResourceDictionary.MergedDictionaries>
</ResourceDictionary> </ResourceDictionary>
</Application.Resources> </Application.Resources>

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

@ -20,7 +20,8 @@ namespace 齐越慧眼
var settings = new CefSettings() { var settings = new CefSettings() {
CachePath = System.Environment.CurrentDirectory + "\\webDatas\\data", CachePath = System.Environment.CurrentDirectory + "\\webDatas\\data",
// LocalesDirPath = System.Environment.CurrentDirectory + "\\webDatas", // LocalesDirPath = System.Environment.CurrentDirectory + "\\webDatas",
RootCachePath= System.Environment.CurrentDirectory + "\\rootCache" RootCachePath= System.Environment.CurrentDirectory + "\\rootCache",
}; };
// ... // ...

28
客户端/齐越慧眼/齐越慧眼/LoginWindow.xaml

@ -0,0 +1,28 @@
<hc:GlowWindow x:Class="齐越慧眼.LoginWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:齐越慧眼"
xmlns:hc="https://handyorg.github.io/handycontrol"
mc:Ignorable="d" Background="White"
WindowStartupLocation="CenterScreen"
ActiveGlowColor="{DynamicResource PrimaryColor}"
DataContext="{x:Static local:LoginWindowViewModel.Main}"
Title="登录" Height="250" Width="350">
<Border Padding="20">
<StackPanel>
<DockPanel Margin="0 20 0 0" VerticalAlignment="Center">
<TextBlock VerticalAlignment="Center" Text="账号:"></TextBlock>
<hc:TextBox VerticalAlignment="Center" hc:InfoElement.Placeholder="请输入账号" Text="{Binding UserName}"></hc:TextBox>
</DockPanel>
<DockPanel Margin="0 20 0 20">
<TextBlock Text="密码:" VerticalAlignment="Center"></TextBlock>
<hc:PasswordBox hc:InfoElement.Placeholder="请输入密码" VerticalAlignment="Center" PasswordBox.PasswordChanged="PasswordBox_PasswordChanged"></hc:PasswordBox>
</DockPanel>
<Button Command="{Binding _Btn_OkClick}" Style="{StaticResource ButtonPrimary}" Content="{Binding IsLogin,Converter={StaticResource toString},ConverterParameter=true----请稍后|false----登录|null----请稍后}" Width="200" Cursor="Hand"/>
</StackPanel>
</Border>
</hc:GlowWindow>

32
客户端/齐越慧眼/齐越慧眼/LoginWindow.xaml.cs

@ -0,0 +1,32 @@
using HandyControl.Controls;
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
namespace
{
/// <summary>
/// LoginWindow.xaml 的交互逻辑
/// </summary>
public partial class LoginWindow : GlowWindow
{
public LoginWindow()
{
InitializeComponent();
LoginWindowViewModel.Main.Window = this;
}
private void PasswordBox_PasswordChanged(object sender, RoutedEventArgs e)
{
LoginWindowViewModel.Main.UserPwd = (sender as HandyControl.Controls.PasswordBox).Password;
}
}
}

110
客户端/齐越慧眼/齐越慧眼/LoginWindowViewModel.cs

@ -0,0 +1,110 @@
using GalaSoft.MvvmLight;
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;
using System.Windows;
namespace
{
public class LoginWindowViewModel : ViewModelBase
{
public LoginWindow Window { get; set; }
private static LoginWindowViewModel _main = new LoginWindowViewModel();
public static LoginWindowViewModel Main
{
get
{
return _main;
}
}
public LoginWindowViewModel()
{
_Btn_OkClick = new GalaSoft.MvvmLight.Command.RelayCommand(Btn_OkClick);
}
private string _UserName;
/// <summary>
/// 用戶名
/// </summary>
public string UserName
{
get { return _UserName; }
set { Set(ref _UserName, value); }
}
private string _UserPwd;
/// <summary>
/// 用户密码
/// </summary>
public string UserPwd
{
get { return _UserPwd; }
set { Set(ref _UserPwd, value); }
}
private bool _IsLogin;
public bool IsLogin
{
get { return _IsLogin; }
set { Set(ref _IsLogin, value); }
}
/// <summary>
/// 确定按钮被点击
/// </summary>
public GalaSoft.MvvmLight.Command.RelayCommand _Btn_OkClick { get; set; }
/// <summary>
/// 确定按钮点击
/// </summary>
public void Btn_OkClick()
{
Thread t = new Thread(() =>
{
try
{
if (IsLogin)
return;
IsLogin = true;
//登录
var res = ApiHelper.LoginUser(UserName, UserPwd);
if (res.isOk)
{
Application.Current.Dispatcher.Invoke(() =>
{
MainWindow mainWindow = new MainWindow();
mainWindow.Show();
Application.Current.MainWindow = mainWindow;
Window.Close();
});
}
else
{
MessageBox.Show(res.msg, "登录失败");
}
}
catch (Exception ex)
{
MessageBox.Show("初始化窗口异常!", "提示");
}
finally
{
IsLogin = false;
}
});
t.IsBackground = true;
t.Start();
}
}
}

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

@ -5,7 +5,7 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:hc="https://handyorg.github.io/handycontrol" xmlns:hc="https://handyorg.github.io/handycontrol"
xmlns:local="clr-namespace:齐越慧眼" xmlns:local="clr-namespace:齐越慧眼"
xmlns:uc="clr-namespace:齐越慧眼.UserControls" xmlns:uc="clr-namespace:齐越慧眼.UserControls"
mc:Ignorable="d" mc:Ignorable="d"
Background="White" Background="White"
WindowStartupLocation="CenterScreen" WindowStartupLocation="CenterScreen"

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

@ -30,8 +30,6 @@ namespace 齐越慧眼
} }
public void ChangeTab(string keyWord,int type) public void ChangeTab(string keyWord,int type)
{ {
Application.Current.Dispatcher.Invoke(() => Application.Current.Dispatcher.Invoke(() =>

75
客户端/齐越慧眼/齐越慧眼/ToStringConverter.cs

@ -0,0 +1,75 @@

using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Windows.Data;
namespace WPF.Converters
{
public class ToStringConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (parameter == null)
{
return value;
}
string key = string.Empty;
if (value == null)
{
key = "null";
}
else
{
key = value.ToString().ToLower();
}
string[] arr = parameter.ToString().Split('|');
Dictionary<string, string> dic = new Dictionary<string, string>();
foreach (var str in arr)
{
string[] drr = str.Split(new string[] { "----" }, StringSplitOptions.None);
dic.Add(drr[0].ToLower(), drr[1]);
}
string defa = dic.FirstOrDefault().Value.ToString();
if (dic.ContainsKey(key))
{
if (dic[key] == "Collapsed")
return System.Windows.Visibility.Collapsed;
if (dic[key] == "Visible")
return System.Windows.Visibility.Visible;
return dic[key];
}
else if (defa == "Visible")
{
return System.Windows.Visibility.Collapsed;
}
else
if (defa == "Collapsed")
return System.Windows.Visibility.Visible;
else
if (defa.ToLower() == "false")
return true;
else if (defa.ToLower() == "true")
return false;
return defa;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
string strValue = value.ToString();
return value;
}
}
}

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

@ -14,6 +14,8 @@ namespace 齐越慧眼.UserControls
/// </summary> /// </summary>
public partial class BrowerControl : UserControl public partial class BrowerControl : UserControl
{ {
public static BrowerControl Main = null;
public ChromiumWebBrowser web; public ChromiumWebBrowser web;
public BrowerControl() public BrowerControl()
{ {
@ -39,12 +41,34 @@ namespace 齐越慧眼.UserControls
web.JavascriptObjectRepository.Settings.LegacyBindingEnabled = true; web.JavascriptObjectRepository.Settings.LegacyBindingEnabled = true;
web.JavascriptObjectRepository.Register("hyCoreModel", new CefAsyncJS(), BindingOptions.DefaultBinder); web.JavascriptObjectRepository.Register("hyCoreModel", new CefAsyncJS(), BindingOptions.DefaultBinder);
Main = this;
} }
private void BrowerControl_Loaded(object sender, RoutedEventArgs e) private void BrowerControl_Loaded(object sender, RoutedEventArgs e)
{ {
web.WebBrowser.LoadingStateChanged += WebBrowser_LoadingStateChanged; Thread t = new Thread(() => {
IWebBrowser webBrowser = null;
Application.Current.Dispatcher.Invoke(() => {
webBrowser = web.WebBrowser;
});
while (webBrowser == null)
{
Thread.Sleep(100);
Application.Current.Dispatcher.Invoke(() => {
webBrowser = web.WebBrowser;
});
}
Application.Current.Dispatcher.Invoke(() => {
web.WebBrowser.LoadingStateChanged += WebBrowser_LoadingStateChanged;
});
});
t.Start();
} }
private string lastUrl = string.Empty; private string lastUrl = string.Empty;
@ -57,7 +81,6 @@ namespace 齐越慧眼.UserControls
//开始单页查询 //开始单页查询
if (lastUrl.StartsWith("https://s.taobao.com/search")) if (lastUrl.StartsWith("https://s.taobao.com/search"))
{ {
web.ShowDevTools();
StartPage(); StartPage();
} }
@ -94,7 +117,7 @@ namespace 齐越慧眼.UserControls
} }
lastUrl = string.Empty;
}); });
t.Start(); t.Start();
@ -151,6 +174,8 @@ namespace 齐越慧眼.UserControls
} }
/// <summary> /// <summary>
/// 添加操作面板 /// 添加操作面板
/// </summary> /// </summary>
@ -283,7 +308,7 @@ namespace 齐越慧眼.UserControls
/// </summary> /// </summary>
/// <param name="js"></param> /// <param name="js"></param>
/// <returns></returns> /// <returns></returns>
private (bool isOk, object result) DoJavaScript(string js) public (bool isOk, object result) DoJavaScript(string js)
{ {
js = js.Replace("\n", "").Replace("\r\n", "").Replace(System.Environment.NewLine, "").Replace("\r", ""); js = js.Replace("\n", "").Replace("\r\n", "").Replace(System.Environment.NewLine, "").Replace("\r", "");
Task<JavascriptResponse> task = null; Task<JavascriptResponse> task = null;
@ -329,6 +354,24 @@ namespace 齐越慧眼.UserControls
Title = title Title = title
}); });
if (result.isOk)
{
//判断是否团队过滤
if (type == 1)
{
BrowerControl.Main.DoJavaScript($@"$($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{itemId}""]').parent().parent()).find('.myitemState').addClass(""falseBg"")");
}
if (type == 3)
{
BrowerControl.Main.DoJavaScript($@"$($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{itemId}""]').parent().parent()).find('.myitemState').prepend('<div style=""width:20%;height:20%"" class=""bgYellow"">竞</div>')");
}
if (type == 1)
{
BrowerControl.Main.DoJavaScript($@"$($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{itemId}""]').parent().parent()).find('.myitemState').addClass(""trueBg"")");
}
}
MessageBox.Show(result.msg, "提示"); MessageBox.Show(result.msg, "提示");
return result.isOk; return result.isOk;

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

@ -8,5 +8,6 @@
mc:Ignorable="d" mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800"> d:DesignHeight="450" d:DesignWidth="800">
<Grid x:Name="grid"> <Grid x:Name="grid">
</Grid> </Grid>
</UserControl> </UserControl>

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

@ -32,9 +32,9 @@ namespace 齐越慧眼.UserControls
DefaultEncoding = "UTF-8", DefaultEncoding = "UTF-8",
Plugins= CefState.Enabled, Plugins= CefState.Enabled,
//关于跨域限制 //关于跨域限制
WebSecurity = CefState.Disabled WebSecurity = CefState.Disabled,
}, },
}; };
@ -43,14 +43,24 @@ namespace 齐越慧眼.UserControls
web.JavascriptObjectRepository.Settings.LegacyBindingEnabled = true; web.JavascriptObjectRepository.Settings.LegacyBindingEnabled = true;
web.JavascriptObjectRepository.Register("hyCoreModel", new CatsAsyncJS(), BindingOptions.DefaultBinder); web.JavascriptObjectRepository.Register("hyCoreModel", new CatsAsyncJS(), BindingOptions.DefaultBinder);
web.ExecuteScriptAsyncWhenPageLoaded(@$"localStorage.setItem('user', '{{""token"":""{ApiHelper.JwtToken}""}}');window.getDatas();");
} }
private void Button_Click(object sender, RoutedEventArgs e)
{
web.ShowDevTools();
}
} }
public class CatsAsyncJS public class CatsAsyncJS
{ {
public void openTabByKey(string keyWord,int type) public void openTabByKey(string keyWord,string id,int type)
{ {
var result= ApiHelper.SetKeyOpenTime(id, (Models.ItemPlatform)type);
MainWindow.Main.ChangeTab(keyWord, type); MainWindow.Main.ChangeTab(keyWord, type);
} }
} }

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

@ -37,6 +37,7 @@ namespace 齐越慧眼.UserControls
}; };
grid.Children.Add(web); grid.Children.Add(web);
web.ExecuteScriptAsyncWhenPageLoaded(@$"localStorage.setItem('user', '{{""token"":""{ApiHelper.JwtToken}""}}');window.getDatas(0);");
} }
} }

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

@ -1,13 +1,13 @@
<template> <template>
<div class="card-container"> <div class="card-container">
<a-tabs> <a-tabs @change="changeTab">
<a-tab-pane key="1" tab="淘宝"> <a-tab-pane key="0" tab="淘宝">
</a-tab-pane> </a-tab-pane>
<a-tab-pane key="2" tab="京东"> <a-tab-pane key="1" tab="京东">
</a-tab-pane> </a-tab-pane>
<a-tab-pane key="3" tab="拼多多"> <a-tab-pane key="2" tab="拼多多">
</a-tab-pane> </a-tab-pane>
</a-tabs> </a-tabs>
@ -55,7 +55,7 @@
集团库 集团库
</a-col> </a-col>
<a-col :span="16"> <a-col :span="16">
<a-tag style="cursor: pointer;" :key="i4" @click="openKey(keyword.title)" <a-tag style="cursor: pointer;" :key="i4" @click="openKey(keyword,keyword.title,keyword.Id)"
v-for="(keyword,i4) in lastCat.children.filter(c=>c.Type==0)"> v-for="(keyword,i4) in lastCat.children.filter(c=>c.Type==0)">
{{keyword.title}}</a-tag> {{keyword.title}}</a-tag>
</a-col> </a-col>
@ -68,7 +68,7 @@
团队库 团队库
</a-col> </a-col>
<a-col :span="16"> <a-col :span="16">
<a-tag style="cursor: pointer;" :key="i4" @click="openKey(keyword.title)" <a-tag style="cursor: pointer;" :key="i4" @click="openKey(keyword,keyword.title,keyword.Id)" :color="keyword.IsShowTBTime?'gray':''"
v-for="(keyword,i4) in lastCat.children.filter(c=>c.Type==1)"> v-for="(keyword,i4) in lastCat.children.filter(c=>c.Type==1)">
{{keyword.title}}</a-tag> {{keyword.title}}</a-tag>
</a-col> </a-col>
@ -91,16 +91,22 @@
export default { export default {
data() { data() {
return { return {
datas: [] datas: [],
currentTab:0
} }
}, },
mounted() { mounted() {
this.getDatas() window.getDatas = this.getDatas
}, },
methods: { methods: {
openKey(key) changeTab(e){
this.getDatas()
this.currentTab=e
},
openKey(obj,key,id)
{ {
hyCoreModel.openTabByKey(key,0) obj.IsShowTBTime=false
hyCoreModel.openTabByKey(key,id,0)
}, },
getDatas() { getDatas() {
this.http.get('/HuiYan/cats/GetCatDatas').then(res => { this.http.get('/HuiYan/cats/GetCatDatas').then(res => {

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

@ -58,7 +58,7 @@
<img :src="'http:'+item.ItemImg" width="200" height="165"> <img :src="'http:'+item.ItemImg" width="200" height="165">
<a-row> <a-row>
<a-col :span="12" style="text-align: left;">¥{{item.Price}}</a-col> <a-col :span="12" style="text-align: left;">¥{{item.Price}}</a-col>
<a-col :span="12" style="text-align: right;">{{item.Sales}}人收货</a-col> <a-col :span="12" style="text-align: right;">{{item.Sales}}</a-col>
</a-row> </a-row>
</div> </div>
</div> </div>
@ -188,7 +188,7 @@
} }
}, },
mounted() { mounted() {
this.getDatas(0) window.getDatas = this.getDatas
}, },
methods: { methods: {
changeTab(e){ changeTab(e){

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

File diff suppressed because one or more lines are too long

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

File diff suppressed because one or more lines are too long

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

@ -1,2 +0,0 @@
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["about"],{f820:function(t,e,n){"use strict";n.r(e);var a=function(){var t=this,e=t.$createElement;t._self._c;return t._m(0)},s=[function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"about"},[n("h1",[t._v("This is an about page")])])}],u=n("2877"),c={},i=Object(u["a"])(c,a,s,!1,null,null,null);e["default"]=i.exports}}]);
//# sourceMappingURL=about.js.map

1
客户端/齐越慧眼/齐越慧眼/vuepage/dist/js/about.js.map

@ -1 +0,0 @@
{"version":3,"sources":["webpack:///./src/views/About.vue?e60c","webpack:///./src/views/About.vue"],"names":["render","_vm","this","_h","$createElement","_self","_c","_m","staticRenderFns","staticClass","_v","script","component"],"mappings":"8GAAA,IAAIA,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAsBH,EAAII,MAAMC,GAAO,OAAOL,EAAIM,GAAG,IACnGC,EAAkB,CAAC,WAAa,IAAIP,EAAIC,KAASC,EAAGF,EAAIG,eAAmBE,EAAGL,EAAII,MAAMC,IAAIH,EAAG,OAAOG,EAAG,MAAM,CAACG,YAAY,SAAS,CAACH,EAAG,KAAK,CAACL,EAAIS,GAAG,+B,YCAtJC,EAAS,GAKTC,EAAY,eACdD,EACAX,EACAQ,GACA,EACA,KACA,KACA,MAIa,aAAAI,E","file":"js/about.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"about\"},[_c('h1',[_vm._v(\"This is an about page\")])])}]\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./About.vue?vue&type=template&id=1ae8a7be&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""}

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

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

@ -40,8 +40,6 @@
<None Remove="vuepage\client\.eslintrc.js" /> <None Remove="vuepage\client\.eslintrc.js" />
<None Remove="vuepage\client\.gitignore" /> <None Remove="vuepage\client\.gitignore" />
<None Remove="vuepage\client\.postcssrc.js" /> <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.aed7bccd.css" />
<None Remove="vuepage\dist\css\app.b0aefef5.css" /> <None Remove="vuepage\dist\css\app.b0aefef5.css" />
<None Remove="vuepage\dist\css\app.css" /> <None Remove="vuepage\dist\css\app.css" />
@ -49,14 +47,12 @@
<None Remove="vuepage\dist\css\chunk-vendors.css" /> <None Remove="vuepage\dist\css\chunk-vendors.css" />
<None Remove="vuepage\dist\img\close.png" /> <None Remove="vuepage\dist\img\close.png" />
<None Remove="vuepage\dist\img\true.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\client\index.html" /> <None Remove="vuepage\client\index.html" />
<None Remove="vuepage\client\package.json" /> <None Remove="vuepage\client\package.json" />
<None Remove="vuepage\client\README.md" /> <None Remove="vuepage\client\README.md" />
<None Remove="vuepage\client\vue.config.js" /> <None Remove="vuepage\client\vue.config.js" />
<None Remove="vuepage\client\yarn.lock" /> <None Remove="vuepage\client\yarn.lock" />
<None Remove="vuepage\dist\jp.png" />
<None Remove="vuepage\dist\js\app.js" /> <None Remove="vuepage\dist\js\app.js" />
<None Remove="vuepage\dist\js\app.js.map" /> <None Remove="vuepage\dist\js\app.js.map" />
<None Remove="vuepage\dist\js\chunk-vendors.js" /> <None Remove="vuepage\dist\js\chunk-vendors.js" />
@ -66,26 +62,23 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="CefSharp.Wpf.NETCore" Version="89.0.170" /> <PackageReference Include="CefSharp.Wpf.NETCore" Version="89.0.170" />
<PackageReference Include="HandyControl" Version="3.2.0" /> <PackageReference Include="HandyControl" Version="3.2.0" />
<PackageReference Include="MvvmLightLibsStd10" Version="5.4.1.1" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" /> <PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
</ItemGroup> </ItemGroup>
<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.aed7bccd.css" />
<EmbeddedResource Include="vuepage\dist\css\app.css" /> <EmbeddedResource Include="vuepage\dist\css\app.css" />
<EmbeddedResource Include="vuepage\dist\css\chunk-vendors.09af4a6b.css" /> <EmbeddedResource Include="vuepage\dist\css\chunk-vendors.09af4a6b.css" />
<EmbeddedResource Include="vuepage\dist\css\chunk-vendors.css" /> <EmbeddedResource Include="vuepage\dist\css\chunk-vendors.css" />
<EmbeddedResource Include="vuepage\dist\img\close.png" /> <EmbeddedResource Include="vuepage\dist\img\close.png" />
<EmbeddedResource Include="vuepage\dist\img\true.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" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<EmbeddedResource Include="vuepage\dist\favicon.ico" /> <EmbeddedResource Include="vuepage\dist\favicon.ico" />
<EmbeddedResource Include="vuepage\dist\index.html" /> <EmbeddedResource Include="vuepage\dist\index.html" />
<EmbeddedResource Include="vuepage\dist\jp.png" />
<EmbeddedResource Include="vuepage\dist\js\app.js" /> <EmbeddedResource Include="vuepage\dist\js\app.js" />
<EmbeddedResource Include="vuepage\dist\js\app.js.map" /> <EmbeddedResource Include="vuepage\dist\js\app.js.map" />
<EmbeddedResource Include="vuepage\dist\js\chunk-vendors.js" /> <EmbeddedResource Include="vuepage\dist\js\chunk-vendors.js" />
@ -94,6 +87,8 @@
<ItemGroup> <ItemGroup>
<Folder Include="vuepage\client\" /> <Folder Include="vuepage\client\" />
<Folder Include="vuepage\client\dist\css\" />
<Folder Include="vuepage\client\dist\js\" />
</ItemGroup> </ItemGroup>
</Project> </Project>

Loading…
Cancel
Save