Commit 6fca0e26 by guanzhenshan

增加自动任务下载模版管理,任务报表,根据规则自动生成任务服务

parent cf8a8aeb
using System;
using System.Collections.Generic;
using System.Text;
namespace Bailun.DC.Models
{
public class dc_semi_stock_log_new
{
/// <summary>
///
/// </summary>
public int id { get; set; }
/// <summary>
/// 流水ID
/// </summary>
public int log_id { get; set; }
/// <summary>
/// 原料sku编码
/// </summary>
public string sku_code { get; set; }
/// <summary>
/// 原料sku名称
/// </summary>
public string sku_name { get; set; }
/// <summary>
/// 流水类型ID
/// </summary>
public int log_type_id { get; set; }
/// <summary>
/// 流水类型名称
/// </summary>
public string log_type { get; set; }
/// <summary>
/// 流水数量
/// </summary>
public int log_quantity { get; set; }
/// <summary>
/// 当前库存
/// </summary>
public decimal final_stock { get; set; }
/// <summary>
/// 仓库ID
/// </summary>
public int warehouse_id { get; set; }
/// <summary>
/// 仓库名称
/// </summary>
public string warehouse_name { get; set; }
/// <summary>
/// 半成品仓流水创建日期
/// </summary>
public DateTime create_time { get; set; }
/// <summary>
/// 冗余库存
/// </summary>
public decimal? redundancy_stock { get; set; }
/// <summary>
/// 仓库类型:1-jit仓,2-计划仓
/// </summary>
public int warehouse_type { get; set; }
/// <summary>
/// 取数时间
/// </summary>
public DateTime update_time { get; set; }
/// <summary>
/// 产品大类id
/// </summary>
public int product_category_id { get; set; }
/// <summary>
/// 产品大类
/// </summary>
public string product_category_name { get; set; }
/// <summary>
/// 产品小类id
/// </summary>
public int type_id { get; set; }
/// <summary>
/// 产品小类
/// </summary>
public string type_name { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Text;
namespace Bailun.DC.Models
{
public class dc_semi_supplier_offer_log
{
/// <summary>
///
/// </summary>
public int id { get; set; }
/// <summary>
/// 流水ID
/// </summary>
public int log_id { get; set; }
/// <summary>
/// 供应商ID
/// </summary>
public int? supplier_id { get; set; }
/// <summary>
/// 供应商名称
/// </summary>
public string supplier_name { get; set; }
/// <summary>
/// 币种ID
/// </summary>
public int unit_id { get; set; }
/// <summary>
/// 币种名称
/// </summary>
public string unit_name { get; set; }
/// <summary>
/// 半成品系统创建时间
/// </summary>
public DateTime create_time { get; set; }
/// <summary>
/// 报价
/// </summary>
public decimal price { get; set; }
/// <summary>
/// 原料sku编码
/// </summary>
public string sku_code { get; set; }
/// <summary>
/// 原料sku名称
/// </summary>
public string sku_name { get; set; }
/// <summary>
/// 原料sku ID
/// </summary>
public int? sku_id { get; set; }
/// <summary>
/// 取数时间
/// </summary>
public DateTime update_time { get; set; }
}
public class dc_semi_supplier_offer_log_new
{
/// <summary>
///
/// </summary>
public int id { get; set; }
/// <summary>
/// 流水ID
/// </summary>
public int log_id { get; set; }
/// <summary>
/// 供应商ID
/// </summary>
public int? supplier_id { get; set; }
/// <summary>
/// 供应商名称
/// </summary>
public string supplier_name { get; set; }
/// <summary>
/// 币种ID
/// </summary>
public int unit_id { get; set; }
/// <summary>
/// 币种名称
/// </summary>
public string unit_name { get; set; }
/// <summary>
/// 半成品系统创建时间
/// </summary>
public DateTime create_time { get; set; }
/// <summary>
/// 报价
/// </summary>
public decimal price { get; set; }
/// <summary>
/// 原料sku编码
/// </summary>
public string sku_code { get; set; }
/// <summary>
/// 原料sku名称
/// </summary>
public string sku_name { get; set; }
/// <summary>
/// 原料sku ID
/// </summary>
public int? sku_id { get; set; }
/// <summary>
/// 取数时间
/// </summary>
public DateTime update_time { get; set; }
}
}
...@@ -399,6 +399,124 @@ namespace Bailun.DC.Services ...@@ -399,6 +399,124 @@ namespace Bailun.DC.Services
return ""; return "";
} }
} }
#endregion
#region 任务帐号
/// <summary>
/// 获取任务帐号列表
/// </summary>
/// <param name="templateid"></param>
/// <returns></returns>
public List<taskcenter_accounts> ListAccount(int data_type)
{
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString_read))
{
if(cn.State== System.Data.ConnectionState.Closed)
{
cn.Open();
}
var sql = "select * from taskcenter_accounts where data_type="+ data_type;
return cn.Query<taskcenter_accounts>(sql).AsList();
}
}
/// <summary>
/// 获取帐号详情
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public taskcenter_accounts GetAccountInfo(int id)
{
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString_read))
{
if(cn.State== System.Data.ConnectionState.Closed)
{
cn.Open();
}
return cn.QueryFirstOrDefault<taskcenter_accounts>("select * from taskcenter_accounts where id=" + id);
}
}
/// <summary>
/// 保存帐号信息
/// </summary>
/// <param name="m"></param>
/// <param name="uid">当前用户id</param>
/// <param name="username">当前用户名称</param>
/// <returns></returns>
public string SaveAccount(taskcenter_accounts m,int uid,string username)
{
try
{
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString))
{
if (cn.State == System.Data.ConnectionState.Closed)
{
cn.Open();
}
var countPlatform = cn.QueryFirstOrDefault<int>($"select count(*) from taskcenter_accounts where platform_index={m.platform_index} and platform!='{m.platform}'");
if(countPlatform>0)
{
return "平台索引值冲突,请重新设置。";
}
var obj = cn.QueryFirstOrDefault<taskcenter_accounts>("select * from taskcenter_accounts where id=" + m.id);
if (obj == null)
{
obj = new taskcenter_accounts
{
status = m.status,
account = m.account,
apiurl = m.apiurl,
data_type = m.data_type,
frequency = m.frequency??"",
note = m.note??"",
platform = m.platform,
platform_index = m.platform_index,
pwd = m.pwd??"",
token = m.token??"",
website = m.website??"",
};
cn.Insert(obj);
}
else
{
obj.account = m.account;
obj.apiurl = m.apiurl;
obj.data_type = m.data_type;
obj.frequency = m.frequency??"";
obj.note = m.note??"";
obj.platform = m.platform;
obj.platform_index = m.platform_index;
obj.pwd = m.pwd??"";
obj.token = m.token??"";
obj.website = m.website??"";
obj.status = m.status;
cn.Update(obj);
}
}
return "";
}
catch (Exception ex)
{
return ex.Message;
}
}
#endregion #endregion
} }
......
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
<LangVersion>latest</LangVersion>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Dapper" Version="2.0.90" />
<PackageReference Include="Dapper.SimpleCRUD" Version="2.3.0" />
<PackageReference Include="Microsoft.Extensions.Hosting" Version="3.1.16" />
<PackageReference Include="MySql.Data" Version="8.0.25" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Bailun.DC.Common\Bailun.DC.Common.csproj" />
<ProjectReference Include="..\Bailun.DC.Models\Bailun.DC.Models.csproj" />
</ItemGroup>
</Project>
#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.
FROM mcr.microsoft.com/dotnet/runtime:3.1 AS base
WORKDIR /app
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
FROM mcr.microsoft.com/dotnet/sdk:3.1 AS build
WORKDIR /src
COPY ["Bailun.DC.SyncSemiStock/Bailun.DC.SyncSemiStock.csproj", "Bailun.DC.SyncSemiStock/"]
COPY ["Bailun.DC.Common/Bailun.DC.Common.csproj", "Bailun.DC.Common/"]
COPY ["Bailun.DC.Models/Bailun.DC.Models.csproj", "Bailun.DC.Models/"]
RUN dotnet restore "Bailun.DC.SyncSemiStock/Bailun.DC.SyncSemiStock.csproj"
COPY . .
WORKDIR "/src/Bailun.DC.SyncSemiStock"
RUN dotnet build "Bailun.DC.SyncSemiStock.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "Bailun.DC.SyncSemiStock.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Bailun.DC.SyncSemiStock.dll"]
using System;
using System.Collections.Generic;
using System.Text;
namespace Bailun.DC.SyncSemiStock.Models
{
public class response_StockData
{
public bool success { get; set; }
public Data data { get; set; }
public string message { get; set; }
}
public class Data
{
public int CurrentPage { get; set; }
public int TotalPages { get; set; }
public int TotalItems { get; set; }
public int ItemsPerPage { get; set; }
public List<DataItem> Items { get; set; }
}
public class DataItem
{
public int material_id { get; set; }
public int warehouse_id { get; set; }
public decimal jit_prod_stock { get; set; }
public decimal plan_prod_stock { get; set; }
public string warehouse_name { get; set; }
public string material_code { get; set; }
public string material_name { get; set; }
public string material_category { get; set; }
public decimal new_price { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Text;
namespace Bailun.DC.SyncSemiStock.Models
{
public class response_StockLog
{
public bool success { get; set; }
public response_StockLog_Data data { get; set; }
public string message { get; set; }
}
public class response_StockLog_Data
{
public int CurrentPage { get; set; }
public int TotalPages { get; set; }
public int TotalItems { get; set; }
public int ItemsPerPage { get; set; }
public List<response_StockLog_Data_Items> Items { get; set; }
}
public class response_StockLog_Data_Items
{
public int log_id { get; set; }
public int type_id { get; set; }
public string type_name { get; set; }
public int product_category_id { get; set; }
public string product_category_id_name { get; set; }
public string sku { get; set; }
public string sku_name { get; set; }
public int log_type_id { get; set; }
public string log_type { get; set; }
public decimal log_quantity { get; set; }
public decimal final_stock { get; set; }
public int warehouse_id { get; set; }
public string warehouse_name { get; set; }
public DateTime create_time { get; set; }
public decimal redundancy_stock { get; set; }
public int warehouse_type { get; set; }
public int is_zichang { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Text;
namespace Bailun.DC.SyncSemiStock.Models
{
public class response_SupplierPrice
{
public bool success { get; set; }
public List<DC.Models.dc_semi_supplier_offer_log_new> data { get; set; }
public string message { get; set; }
}
}
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using System;
using System.Threading.Tasks;
namespace Bailun.DC.SyncSemiStock
{
class Program
{
static async Task Main(string[] args)
{
//Console.WriteLine("进入 保存半成品库存服务");
//var builder = new HostBuilder().ConfigureServices((hostContext, services) =>
//{
// services.AddHostedService<Services>();
//});
//await builder.RunConsoleAsync();
new Services().SyncSupplierPrice();
}
}
}
...@@ -13,15 +13,15 @@ namespace Bailun.DC.TaskCenter ...@@ -13,15 +13,15 @@ namespace Bailun.DC.TaskCenter
/// <param name="args"></param> /// <param name="args"></param>
static async Task Main(string[] args) static async Task Main(string[] args)
{ {
Console.WriteLine("启动服务 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); //Console.WriteLine("启动服务 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
var builder = new HostBuilder().ConfigureServices((hostContext, services) => //var builder = new HostBuilder().ConfigureServices((hostContext, services) =>
{ //{
services.AddHostedService<Services>(); // services.AddHostedService<Services>();
}); //});
await builder.RunConsoleAsync(); //await builder.RunConsoleAsync();
//new Services().Init(); new Services().Init();
} }
} }
......
...@@ -133,7 +133,167 @@ namespace Bailun.DC.Web.Areas.TaskCenter.Controllers ...@@ -133,7 +133,167 @@ namespace Bailun.DC.Web.Areas.TaskCenter.Controllers
} }
#endregion #endregion
#region 任务帐号管理
public ActionResult ListAccount(int datatype)
{
ViewBag.datatype = datatype; //数据类型
return View();
}
/// <summary>
/// 获取任务帐号列表
/// </summary>
/// <param name="templateid">模版id</param>
/// <returns></returns>
[HttpPost]
public JsonResult ListAccountJson(int datatype)
{
try
{
var obj = new Services.TaskCenterServices().ListAccount(datatype);
var list = obj.Select(a => new {
a.platform,
a.platform_index,
a.account,
a.apiurl,
data_type = Enum.GetName(typeof(Enum_download_type), a.data_type),
a.frequency,
a.id,
note = a.note??"",
a.pwd,
status = a.status==1?"启用":"禁用",
a.token,
a.website,
});
return Json(new
{
success = true,
msg = "",
data = list
});
}
catch (Exception ex)
{
return Json(new {
success = false,
msg = ex.Message
});
}
}
public ActionResult AccountDetail(int? id,int datatype)
{
var m = new Services.TaskCenterServices().GetAccountInfo(id ?? 0);
if(m==null)
{
m = new taskcenter_accounts();
m.data_type = datatype;
}
ViewBag.m = m;
return View();
}
/// <summary>
/// 保存帐号信息
/// </summary>
/// <param name="datatype">数据类型</param>
/// <param name="platform">平台名称</param>
/// <param name="platformindex">平台值</param>
/// <param name="website">站点</param>
/// <param name="account">帐号</param>
/// <param name="pwd">密码</param>
/// <param name="token">token</param>
/// <param name="apiurl">访问地址</param>
/// <param name="frequency">启动频率</param>
/// <param name="status">帐号状态,1:启用,0:停用</param>
/// <param name="note">备注</param>
/// <returns></returns>
[BailunAuthentication(LoginMode.Enforce)]
[HttpPost]
public JsonResult SaveAccount(int id,int datatype, string platform, int platformindex, string website, string account, string pwd, string token, string apiurl, string frequency, int status, string note)
{
if(string.IsNullOrEmpty(platform))
{
return Json(new {
success = false,
msg = "请填写平台名称",
});
}
if(platformindex<=0)
{
return Json(new
{
success = false,
msg = "平台索引值必须大于0",
});
}
if (string.IsNullOrEmpty(account))
{
return Json(new
{
success = false,
msg = "请填写帐号。",
});
}
if(string.IsNullOrEmpty(pwd)&&string.IsNullOrEmpty(token))
{
return Json(new
{
success = false,
msg = "密码和token必须填写一个,请确认是否已填写。",
});
}
if (string.IsNullOrEmpty(apiurl))
{
return Json(new
{
success = false,
msg = "请填写访问地址",
});
}
var m = new taskcenter_accounts {
account = account,
apiurl = apiurl,
data_type = datatype,
frequency = frequency,
note = note,
platform = platform,
platform_index = platformindex,
pwd = pwd,
status = status,
website = website,
token = token,
id = id,
};
var user = HttpContextHelper.Current?.User;
var result = new Services.TaskCenterServices().SaveAccount(m, (user != null ? user.GetUid() : 0), (user != null ? user.GetUserName() : ""));
return Json(new {
success = string.IsNullOrEmpty(result),
msg = result
});
}
#endregion
} }
} }
@{
ViewData["Title"] = "自动下载模版设置";
Layout = "~/Pages/Shared/_MainLayout.cshtml";
ViewBag.Nav = new string[] { "自动下载中心", "自动下载模版设置", "模版详情" };
}
<div class="row">
<div class="col-sm-12">
<div class="ibox-content m-b-sm border-bottom">
<form id="toolbar">
<div style="line-height:40px;">
<input id="id" name="id" type="hidden" value="@ViewBag.m.id" />
<input id="datatype" name="datatype" type="hidden" value="@ViewBag.m.data_type" />
<div class="row">
<div class="col-sm-12">
<label style="width:110px">平台名称:</label>
<input id="platform" name="platform" class="form-control" value="@ViewBag.m.platform" placeholder="请填写平台名称" style="width:200px;display:inline" />
</div>
</div>
<div class="row">
<div class="col-sm-12">
<label style="width:110px">平台索引值:</label>
<input type="number" style="width:100px;display:inline" id="platformindex" name="platformindex" class="form-control" value="@ViewBag.m.platform_index" placeholder="请填写平台索引值(唯一)" />
</div>
</div>
<div class="row">
<div class="col-sm-12">
<label style="width:110px">站点:</label>
<input id="website" name="website" class="form-control" value="@ViewBag.m.website" placeholder="平台站点" style="width:200px;display:inline" />
</div>
</div>
<div class="row">
<div class="col-sm-12">
<label style="width:110px">帐号:</label>
<input id="account" name="account" class="form-control" value="@ViewBag.m.account" placeholder="帐号" style="width:200px;display:inline" />
</div>
</div>
<div class="row">
<div class="col-sm-12">
<label style="width:110px">密码:</label>
<input id="pwd" name="pwd" class="form-control" value="@ViewBag.m.pwd" placeholder="帐号" style="width:200px;display:inline" />
</div>
</div>
<div class="row">
<div class="col-sm-12">
<label style="width:110px">请求地址:</label>
<input id="apiurl" name="apiurl" class="form-control" value="@ViewBag.m.apiurl" placeholder="请求地址" style="width:600px;display:inline" />
</div>
</div>
<div class="row">
<div class="col-sm-12">
<label style="width:110px">token:</label>
<input id="token" name="token" class="form-control" value="@ViewBag.m.token" placeholder="token" style="width:600px;display:inline" />
</div>
</div>
<div class="row">
<div class="col-sm-12">
<label style="width:110px">状态:</label>
<select id="status" name="status" class="form-control" style="width:110px;display:inline">
<option value="1">启用</option>
<option value="0">禁用</option>
</select>
</div>
</div>
<div class="row">
<div class="col-sm-12">
<label style="width:110px">备注说明:</label>
<input id="note" name="note" class="form-control" value="@ViewBag.m.note" placeholder="备注说明" style="width:600px;display:inline" />
</div>
</div>
</div>
</form>
<div style="margin-top:10px;text-align:center;">
<button class="btn btn-primary" onclick="Save();">保存</button>
</div>
</div>
</div>
</div>
@section scripts{
<script>
$(document).ready(function () {
if ('@ViewBag.m.id' > 0) {
$('#status').val('@ViewBag.m.status');
$('#platformindex').prop('disabled', true);
}
})
function Save() {
var platform = $('#platform').val();
var platformindex = $('#platformindex').val();
var account = $('#account').val();
var pwd = $('#pwd').val();
var apiurl = $('#apiurl').val();
var token = $('#token').val();
if (platform == '') {
alert('请填写平台名称');
return false;
}
if (platformindex == '' || platformindex < 0) {
alert('请填写平台索引值,并且大于0');
return false;
}
if (account == '') {
alert('请填写帐号');
return false;
}
if (pwd == '' && token == '') {
alert('密码和token不能同时为空!');
return false;
}
if (apiurl == '') {
alert('请填写请求地址。');
return false;
}
$.submit({
url: '@Url.Content("~/TaskCenter/Home/SaveAccount")',
paramData: $('#toolbar').serialize(),
type:'Post',
func: function (result) {
if (result.success) {
alert('提交成功!');
window.location = window.location;
}
else {
alert(result.msg);
}
}
})
}
</script>
}
\ No newline at end of file
@{
ViewData["Title"] = "自动下载帐号管理";
Layout = "~/Pages/Shared/_MainLayout.cshtml";
ViewBag.Nav = new string[] { "自动下载中心", "自动下载模版","帐号管理" };
}
<div class="row">
<div class="col-sm-12">
<div class="ibox-content m-b-sm border-bottom">
<form id="toolbar">
<div class="form-inline" style="line-height:40px;">
<div class="form-group">
<label>&nbsp;</label>
<button type="button" class="btn btn-warning" onclick="Detail(0);">新增帐号</button>
</div>
<div class="form-group">
<label>&nbsp;</label>
<input class="form-control" style="width:180px" placeholder="可输入帐号" />
</div>
<div class="form-group">
<button type="button" class="btn btn-primary" onclick="list();">查询</button>
</div>
</div>
</form>
</div>
<div class="ibox-content m-b-sm border-bottom">
<table id="roletable" class="table table-border table-bordered table-hover table-bg table-sort form-inline" style="table-layout:fixed;">
<thead>
<tr>
<th style="width:160px;">平台名称</th>
<th style="width:120px;">平台索引值</th>
<th style="width:100px;">站点</th>
<th style="width:120px;">下载数据类型</th>
<th style="width:150px;">帐号</th>
<th style="width:150px;">密码</th>
<th style="width:80px;">状态</th>
<th style="width:120px;">Token</th>
<th style="width:240px;">请求地址</th>
<th style="width:160px;">备注</th>
<th style="width:120px;">操作</th>
</tr>
</thead>
<tbody id="tb">
</tbody>
</table>
</div>
</div>
</div>
@section css{
<style>
.mules {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
</style>
}
@section scripts{
<script>
$(document).ready(function () {
var height = document.body.clientHeight;
$("#roletable").attr("data-height", (height - 170));
list();
})
function list() {
$.submit({
url: '@Url.Content("~/TaskCenter/Home/ListAccountJson")',
type:'POST',
paramData: 'datatype=@(ViewBag.datatype)',
func: function (result) {
$('#tb').html('');
if (result.success) {
for (var i in result.data) {
var _obj = result.data[i];
var s = '<tr>';
s += '<td>' + _obj.platform + '</td>';
s += '<td>' + _obj.platform_index + '</td>';
s += '<td>' + _obj.website + '</td>';
s += '<td>' + _obj.data_type + '</td>';
s += '<td>' + _obj.account + '</td>';
s += '<td>' + _obj.pwd + '</td>';
s += '<td>' + _obj.status + '</td>';
s += '<td><div class="mules" title="' + _obj.token + '">' + _obj.token + '</div></td>';
s += '<td><div class="mules" title="' + _obj.apiurl + '">' + _obj.apiurl + '</div></td>';
s += '<td>' + _obj.note + '</td>';
s += '<td><a href="javascript:;" class="btn btn-success btn-xs" onclick="Detail(' + _obj.id + ')">查看详情</a></td>';
$('#tb').append(s);
}
}
}
})
}
function Detail(id) {
layer_show('帐号详情信息', '@Url.Content("~/TaskCenter/Home/AccountDetail?datatype="+ ViewBag.datatype + "&id=")'+id, '90%', '90%');
}
</script>
}
...@@ -11,17 +11,19 @@ ...@@ -11,17 +11,19 @@
<div class="form-inline" style="line-height:40px;"> <div class="form-inline" style="line-height:40px;">
<div class="form-group"> <div class="form-group">
<label>下载类型</label> <label>下载类型</label>
<select id="datatype" name="datatype" class="form-control" style="width:120px"> <select id="datatype" name="datatype" class="form-control" style="width:150px">
<option value="">请选择下载类型</option> <option value="">请选择下载类型</option>
<option value="1">物流账单</option> <option value="1">物流账单</option>
</select> </select>
</div> </div>
<div class="form-group"> <div class="form-group">
<label></label> <label></label>
<select id="status" name="status" class="form-control" style="width:130px"> <select id="status" name="status" class="form-control" style="width:150px">
<option value="">请选择任务状态</option> <option value="">请选择任务状态</option>
<option value="1">启用</option> <option value="0">未认领</option>
<option value="0">停用</option> <option value="1">任务执行失败</option>
<option value="2">已认领</option>
<option value="3">执行成功</option>
</select> </select>
</div> </div>
<div class="form-group"> <div class="form-group">
......
...@@ -61,7 +61,8 @@ ...@@ -61,7 +61,8 @@
{ field: 'note', title: '备注', width: '200' }, { field: 'note', title: '备注', width: '200' },
{ {
field: '', title: '操作', width: '100', formatter: function (idx, data) { field: '', title: '操作', width: '100', formatter: function (idx, data) {
return '<a href="javascript:;" onclick="Detail('+data.id+')" class="btn btn-success btn-xs">查看详情</a>'; return '<a href="javascript:;" onclick="Detail(' + data.id + ')" class="btn btn-success btn-xs">查看详情</a>' +
'<a href="javascript:;" onclick="ShowAccount(' + data.id + ')" class="btn btn-warning btn-xs" style="margin-left:3px;">帐号管理</a>';
} }
} }
]; ];
...@@ -84,6 +85,10 @@ ...@@ -84,6 +85,10 @@
layer_show('模板详情', '@Url.Content("~/TaskCenter/Home/AddTaskTemplate?id=")'+id, '90%', '90%'); layer_show('模板详情', '@Url.Content("~/TaskCenter/Home/AddTaskTemplate?id=")'+id, '90%', '90%');
} }
function ShowAccount(id) {
layer_show('帐号列表', '@Url.Content("~/TaskCenter/Home/ListAccount?datatype=")'+id, '90%', '90%');
}
</script> </script>
} }
...@@ -85,6 +85,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Bailun.DC.DailyStockAge", " ...@@ -85,6 +85,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Bailun.DC.DailyStockAge", "
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bailun.DC.TaskCenter", "Bailun.DC.TaskCenter\Bailun.DC.TaskCenter.csproj", "{2215D072-9F97-45DD-AD4D-2691581B5305}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bailun.DC.TaskCenter", "Bailun.DC.TaskCenter\Bailun.DC.TaskCenter.csproj", "{2215D072-9F97-45DD-AD4D-2691581B5305}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bailun.DC.SyncSemiStock", "Bailun.DC.SyncSemiStock\Bailun.DC.SyncSemiStock.csproj", "{B0E4B05A-2330-46E1-8CF7-C6D69DBB7850}"
EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU Debug|Any CPU = Debug|Any CPU
...@@ -251,6 +253,10 @@ Global ...@@ -251,6 +253,10 @@ Global
{2215D072-9F97-45DD-AD4D-2691581B5305}.Debug|Any CPU.Build.0 = Debug|Any CPU {2215D072-9F97-45DD-AD4D-2691581B5305}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2215D072-9F97-45DD-AD4D-2691581B5305}.Release|Any CPU.ActiveCfg = Release|Any CPU {2215D072-9F97-45DD-AD4D-2691581B5305}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2215D072-9F97-45DD-AD4D-2691581B5305}.Release|Any CPU.Build.0 = Release|Any CPU {2215D072-9F97-45DD-AD4D-2691581B5305}.Release|Any CPU.Build.0 = Release|Any CPU
{B0E4B05A-2330-46E1-8CF7-C6D69DBB7850}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B0E4B05A-2330-46E1-8CF7-C6D69DBB7850}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B0E4B05A-2330-46E1-8CF7-C6D69DBB7850}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B0E4B05A-2330-46E1-8CF7-C6D69DBB7850}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE
...@@ -290,6 +296,7 @@ Global ...@@ -290,6 +296,7 @@ Global
{56375C2F-C51D-481C-9668-208BD0330067} = {AE2CE86A-8538-4142-920F-684DCF47C064} {56375C2F-C51D-481C-9668-208BD0330067} = {AE2CE86A-8538-4142-920F-684DCF47C064}
{09E1882E-CF92-449C-8C70-5BD4E33EB355} = {AE2CE86A-8538-4142-920F-684DCF47C064} {09E1882E-CF92-449C-8C70-5BD4E33EB355} = {AE2CE86A-8538-4142-920F-684DCF47C064}
{2215D072-9F97-45DD-AD4D-2691581B5305} = {AE2CE86A-8538-4142-920F-684DCF47C064} {2215D072-9F97-45DD-AD4D-2691581B5305} = {AE2CE86A-8538-4142-920F-684DCF47C064}
{B0E4B05A-2330-46E1-8CF7-C6D69DBB7850} = {AE2CE86A-8538-4142-920F-684DCF47C064}
EndGlobalSection EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {6E53AF28-A282-4FB0-A769-EAEA9769C02A} SolutionGuid = {6E53AF28-A282-4FB0-A769-EAEA9769C02A}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment