7 changed files with 738 additions and 0 deletions
@ -0,0 +1,443 @@ |
|||||
|
using Microsoft.AspNetCore.Mvc; |
||||
|
using Microsoft.AspNetCore.Hosting; |
||||
|
using Microsoft.Extensions.Logging; |
||||
|
using System.Threading.Tasks; |
||||
|
using System.Collections.Generic; |
||||
|
using Microsoft.AspNetCore.Mvc.Rendering; |
||||
|
using Microsoft.AspNetCore.Http; |
||||
|
using System.IO; |
||||
|
using AMESCoreStudio.WebApi.Models.AMES; |
||||
|
using AMESCoreStudio.CommonTools.Result; |
||||
|
using Newtonsoft.Json; |
||||
|
using AMESCoreStudio.WebApi.DTO.AMES; |
||||
|
using AMESCoreStudio.Web.Models; |
||||
|
using Newtonsoft.Json.Linq; |
||||
|
using AMESCoreStudio.WebApi.Models.BAS; |
||||
|
|
||||
|
namespace AMESCoreStudio.Web.Controllers |
||||
|
{ |
||||
|
public class PDSController : Controller |
||||
|
{ |
||||
|
private readonly ILogger<PDSController> _logger; |
||||
|
public readonly IBAS _basApi; |
||||
|
public readonly IPCS _pcsApi; |
||||
|
public readonly IPDS _pdsApi; |
||||
|
|
||||
|
public PDSController(ILogger<PDSController> logger, IPCS pcsApi, IBAS basApi,IPDS pdsApi) |
||||
|
{ |
||||
|
_logger = logger; |
||||
|
_pcsApi = pcsApi; |
||||
|
_basApi = basApi; |
||||
|
_pdsApi = pdsApi; |
||||
|
} |
||||
|
|
||||
|
private async Task GetUnitList() |
||||
|
{ |
||||
|
var result = await _basApi.GetFactoryUnits(); |
||||
|
|
||||
|
var UnitItems = new List<SelectListItem>(); |
||||
|
for (int i = 0; i < result.Count; i++) |
||||
|
{ |
||||
|
UnitItems.Add(new SelectListItem(result[i].UnitName, result[i].UnitNo.ToString())); |
||||
|
} |
||||
|
ViewBag.UnitList = UnitItems; |
||||
|
} |
||||
|
|
||||
|
private async Task GetLineInfoList() |
||||
|
{ |
||||
|
var result = await _basApi.GetLineInfoes(); |
||||
|
|
||||
|
var LineItems = new List<SelectListItem>(); |
||||
|
for (int i = 0; i < result.Count; i++) |
||||
|
{ |
||||
|
LineItems.Add(new SelectListItem(result[i].LineDesc, result[i].LineID.ToString())); |
||||
|
} |
||||
|
ViewBag.LineList = LineItems; |
||||
|
} |
||||
|
|
||||
|
private async Task GetFlowRuleList() |
||||
|
{ |
||||
|
var result = await _basApi.GetFlowRules(); |
||||
|
|
||||
|
var FlowRuleItems = new List<SelectListItem>(); |
||||
|
for (int i = 0; i < result.Count; i++) |
||||
|
{ |
||||
|
FlowRuleItems.Add(new SelectListItem(result[i].UnitNo + result[i].FlowRuleName, result[i].FlowRuleID.ToString())); |
||||
|
} |
||||
|
ViewBag.FlowRuleList = FlowRuleItems; |
||||
|
} |
||||
|
|
||||
|
[HttpPost] |
||||
|
public async Task<JsonResult> GetUnitLineJson(string unit_no) |
||||
|
{ |
||||
|
var result = await _basApi.GetLineInfoByUnit(unit_no); |
||||
|
|
||||
|
var item = new List<SelectListItem>(); |
||||
|
|
||||
|
for (int i = 0; i < result.Count; i++) |
||||
|
{ |
||||
|
item.Add(new SelectListItem(result[i].LineDesc, result[i].LineID.ToString())); |
||||
|
} |
||||
|
|
||||
|
if (item.Count == 0) |
||||
|
{ |
||||
|
item.Add(new SelectListItem("全部", "0")); |
||||
|
} |
||||
|
|
||||
|
//将数据Json化并传到前台视图
|
||||
|
return Json(new { data = item }); |
||||
|
} |
||||
|
|
||||
|
public async Task<IActionResult> PDS003() |
||||
|
{ |
||||
|
await GetUnitList(); |
||||
|
await GetLineInfoList(); |
||||
|
await GetFlowRuleList(); |
||||
|
|
||||
|
return View(); |
||||
|
} |
||||
|
|
||||
|
[HttpPost] |
||||
|
public async Task<IActionResult> PDS003SaveAsync(string unitNo,int lineId,int flowId,IFormFile formFile) |
||||
|
{ |
||||
|
IResultModel result1; |
||||
|
IResultModel<dynamic> result2; |
||||
|
|
||||
|
var userID = ""; |
||||
|
HttpContext.Request.Cookies.TryGetValue("UserID", out userID); |
||||
|
int user_id = 0; |
||||
|
if (userID != null) |
||||
|
{ |
||||
|
if (int.Parse(userID.ToString()) >= 0) |
||||
|
{ |
||||
|
user_id = int.Parse(userID.ToString()); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
await GetUnitList(); |
||||
|
await GetLineInfoList(); |
||||
|
await GetFlowRuleList(); |
||||
|
|
||||
|
var file = formFile; |
||||
|
var msg = ""; |
||||
|
|
||||
|
if (unitNo == "*") |
||||
|
{ |
||||
|
msg += "未選擇製程單位"; |
||||
|
ModelState.AddModelError("error", msg); |
||||
|
return View("PDS003"); |
||||
|
} |
||||
|
|
||||
|
if (lineId == 0) |
||||
|
{ |
||||
|
msg += "未選擇線別"; |
||||
|
ModelState.AddModelError("error", msg); |
||||
|
return View("PDS003"); |
||||
|
} |
||||
|
|
||||
|
if (flowId == 0) |
||||
|
{ |
||||
|
msg += "未選擇流程"; |
||||
|
ModelState.AddModelError("error", msg); |
||||
|
return View("PDS003"); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
if (formFile == null) |
||||
|
{ |
||||
|
msg += "未選取檔案或檔案上傳失敗"; |
||||
|
ModelState.AddModelError("error", msg); |
||||
|
return View("PDS003"); |
||||
|
} |
||||
|
|
||||
|
if (Path.GetExtension(file.FileName) != ".xlsx") |
||||
|
{ |
||||
|
msg += "請使用Excel 2007(.xlsx)格式"; |
||||
|
ModelState.AddModelError("error", msg); |
||||
|
return View("PDS003"); |
||||
|
} |
||||
|
|
||||
|
if (file.Length > 0) |
||||
|
{ |
||||
|
string[] fileTitle = file.FileName.Split("_"); |
||||
|
|
||||
|
string wipNO = fileTitle[2]; |
||||
|
string itemNO = fileTitle[3]; |
||||
|
int playQty = 0; |
||||
|
int.TryParse(fileTitle[4].Replace("pc", ""), out playQty); |
||||
|
int wipID = -1; |
||||
|
bool existFlag = false; |
||||
|
ViewBag.WipNo = wipNO; |
||||
|
|
||||
|
//虛擬工單
|
||||
|
result2 = await _pcsApi.GetWipInfo4PDS003(wipNO); |
||||
|
if (result2.DataTotal == 0) |
||||
|
{ |
||||
|
WipInfo wip_info = new WipInfo(); |
||||
|
wip_info.WipNO = wipNO; |
||||
|
wip_info.PlanQTY = playQty; |
||||
|
wip_info.LineID = lineId; |
||||
|
wip_info.UnitNO = unitNo; |
||||
|
wip_info.FlowRuleID = flowId; |
||||
|
wip_info.StatusNO = "A"; |
||||
|
wip_info.WipTimes = 1; |
||||
|
wip_info.Werks = "YSOS"; |
||||
|
wip_info.WipType = "S"; |
||||
|
wip_info.CustomerType = -1; |
||||
|
wip_info.CreateUserID = user_id; |
||||
|
wip_info.CreateDate = System.DateTime.Now; |
||||
|
|
||||
|
result1 = await _pcsApi.PostWipInfo(JsonConvert.SerializeObject(wip_info)); |
||||
|
|
||||
|
if (!result1.Success) |
||||
|
{ |
||||
|
msg += "虛擬工單建立WIP_INFO失敗!!!原因:" + result1.Msg + "\r\n"; |
||||
|
ModelState.AddModelError("error", msg); |
||||
|
return View("PDS003"); |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
int.TryParse(result1.Msg, out wipID); |
||||
|
|
||||
|
//WIP_ATT
|
||||
|
WipAtt wip_att = new WipAtt(); |
||||
|
wip_att.WipNO = wipNO; |
||||
|
wip_att.ItemNO = itemNO; |
||||
|
wip_att.CreateUserID = user_id; |
||||
|
wip_att.CreateDate = System.DateTime.Now; |
||||
|
|
||||
|
result1 = await _pcsApi.PostWipAtt(JsonConvert.SerializeObject(wip_att)); |
||||
|
if (!result1.Success) |
||||
|
{ |
||||
|
msg += "虛擬工單建立WIP_ATT失敗!!!原因:" + result1.Msg + "\r\n"; |
||||
|
ModelState.AddModelError("error", msg); |
||||
|
return View("PDS003"); |
||||
|
} |
||||
|
|
||||
|
//開線
|
||||
|
var line_info = await _basApi.GetLineInfo(lineId); |
||||
|
LineInfo line = new LineInfo(); |
||||
|
line.LineID = lineId; |
||||
|
line.DeptID = line_info[0].DeptID; |
||||
|
line.LineDesc = line_info[0].LineDesc; |
||||
|
line.Story = line_info[0].Story; |
||||
|
line.UnitNo = line_info[0].UnitNo; |
||||
|
line.WipNo = wipID; |
||||
|
line.StatusNo = line_info[0].StatusNo; |
||||
|
line.CreateUserId = line_info[0].CreateUserId; |
||||
|
line.CreateDate = line_info[0].CreateDate; |
||||
|
line.UpdateDate = line_info[0].UpdateDate; |
||||
|
|
||||
|
result1 = await _basApi.PutLineInfo(lineId, JsonConvert.SerializeObject(line)); |
||||
|
if (!result1.Success) |
||||
|
{ |
||||
|
msg += "虛擬工單開線失敗!!!原因:" + result1.Msg + "\r\n"; |
||||
|
ModelState.AddModelError("error", msg); |
||||
|
return View("PDS003"); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
existFlag = true; |
||||
|
|
||||
|
foreach (var item in result2.Data) |
||||
|
{ |
||||
|
JObject jo = JObject.Parse(item.ToString()); |
||||
|
wipID = int.Parse(jo["wipID"].ToString()); |
||||
|
lineId = int.Parse(jo["lineID"].ToString()); |
||||
|
flowId = int.Parse(jo["flowRuleID"].ToString()); |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
using (var ms = new MemoryStream()) |
||||
|
{ |
||||
|
file.CopyTo(ms); |
||||
|
var fileBytes = ms.ToArray(); |
||||
|
string s = System.Convert.ToBase64String(fileBytes); |
||||
|
ClosedXML.Excel.XLWorkbook wb = new ClosedXML.Excel.XLWorkbook(ms); |
||||
|
|
||||
|
if (wb.Worksheets.Count > 1) |
||||
|
{ |
||||
|
msg = "工作表大於一頁"; |
||||
|
ModelState.AddModelError("error", msg); |
||||
|
return View("PDS003"); |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
// 讀取第一個 Sheet
|
||||
|
ClosedXML.Excel.IXLWorksheet worksheet = wb.Worksheet(1); |
||||
|
|
||||
|
// 定義資料起始/結束 Cell
|
||||
|
var firstCell = worksheet.FirstCellUsed(); |
||||
|
var lastCell = worksheet.LastCellUsed(); |
||||
|
var firstCol1 = worksheet.Cell(1, 1).Value.ToString(); |
||||
|
var firstCol2 = worksheet.Cell(1, 2).Value.ToString(); |
||||
|
var firstCol3 = worksheet.Cell(1, 3).Value.ToString(); |
||||
|
var firstCol4 = worksheet.Cell(1, 4).Value.ToString(); |
||||
|
var firstCol5 = worksheet.Cell(1, 5).Value.ToString(); |
||||
|
var firstCol6 = worksheet.Cell(1, 6).Value.ToString(); |
||||
|
var erroCol = ""; |
||||
|
|
||||
|
|
||||
|
if (lastCell.Address.ColumnNumber != 6) |
||||
|
erroCol += "請確認欄位是否正確,總數應為6欄\r\n"; |
||||
|
|
||||
|
if (firstCol1 != "DATE") |
||||
|
erroCol += "第一個欄位標題應該為DATE\r\n"; |
||||
|
|
||||
|
if (firstCol2 != "ITEM") |
||||
|
erroCol += "第二個欄位標題應該為ITEM\r\n"; |
||||
|
|
||||
|
if (firstCol3 != "SN") |
||||
|
erroCol += "第三個欄位標題應該為SN\r\n"; |
||||
|
|
||||
|
if (firstCol4 != "MB") |
||||
|
erroCol += "第四個欄位標題應該為MB\r\n"; |
||||
|
|
||||
|
if (firstCol5 != "MAC") |
||||
|
erroCol += "第五個欄位標題應該為MAC\r\n"; |
||||
|
|
||||
|
if (firstCol6 != "Panel") |
||||
|
erroCol += "第六個欄位標題應該為Panel\r\n"; |
||||
|
|
||||
|
var resultMsg = ""; |
||||
|
var count = 0; |
||||
|
|
||||
|
for (int i = 2; i <= lastCell.Address.RowNumber; i++) |
||||
|
{ |
||||
|
var Cell1 = worksheet.Cell(i, 1).Value.ToString().ToUpper(); |
||||
|
var Cell2 = worksheet.Cell(i, 2).Value.ToString().ToUpper(); |
||||
|
var Cell3 = worksheet.Cell(i, 3).Value.ToString().ToUpper(); |
||||
|
var Cell4 = worksheet.Cell(i, 4).Value.ToString().ToUpper(); |
||||
|
var Cell5 = worksheet.Cell(i, 5).Value.ToString().ToUpper(); |
||||
|
var Cell6 = worksheet.Cell(i, 6).Value.ToString().ToUpper(); |
||||
|
|
||||
|
if (string.IsNullOrEmpty(Cell1) || string.IsNullOrEmpty(Cell2) || string.IsNullOrEmpty(Cell3) || string.IsNullOrEmpty(Cell4) || string.IsNullOrEmpty(Cell5) || string.IsNullOrEmpty(Cell6)) |
||||
|
{ |
||||
|
resultMsg += "第" + i + "列有缺少資料!!\r\n"; |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
if (!existFlag) |
||||
|
{ |
||||
|
//設定工單條碼起訖
|
||||
|
WipBarcode wip_barcode = new WipBarcode(); |
||||
|
wip_barcode.WipNO = wipNO; |
||||
|
wip_barcode.StartNO = Cell3; |
||||
|
wip_barcode.EndNO = Cell3; |
||||
|
wip_barcode.UnitNO = unitNo; |
||||
|
wip_barcode.WipID = wipID; |
||||
|
|
||||
|
result1 = await _pcsApi.PostWipBarcode(JsonConvert.SerializeObject(wip_barcode)); |
||||
|
if (result1.Success) |
||||
|
{ |
||||
|
resultMsg += "第" + i + "行:設定工單起訖成功!!!" + "\r\n"; |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
resultMsg += "第" + i + "行:設定工單起訖失敗!!!原因:" + result1.Msg + "\r\n"; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
//获取站别
|
||||
|
var rule_station = await _basApi.GetRuleStationsByFlow(flowId); |
||||
|
int ruleStationID = rule_station[0].RuleStationID; |
||||
|
int stationID = rule_station[0].StationID; |
||||
|
//自動過站
|
||||
|
var barCode = new BarCodeCheckDto |
||||
|
{ |
||||
|
wipNo = wipNO, |
||||
|
barcode = Cell3, |
||||
|
barcodeType = "S", |
||||
|
station = stationID, |
||||
|
line = lineId, |
||||
|
unitNo = unitNo, |
||||
|
inputItems = null, |
||||
|
userID = user_id |
||||
|
}; |
||||
|
|
||||
|
var barcode_result = new ResultModel<string>(); |
||||
|
try |
||||
|
{ |
||||
|
barcode_result = await _pcsApi.PassIngByCheck(JsonConvert.SerializeObject(barCode)); |
||||
|
} |
||||
|
catch { } |
||||
|
|
||||
|
if (barcode_result.Success) |
||||
|
{ |
||||
|
resultMsg += "第" + i + "行:資料過站成功!!!" + "\r\n"; |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
resultMsg += "第" + i + "行:資料過站失敗!!!原因:" + barcode_result.Msg + "\r\n"; |
||||
|
} |
||||
|
|
||||
|
//保存資料
|
||||
|
|
||||
|
SNKeyPart snKeyPart = new SNKeyPart(); |
||||
|
snKeyPart.StockInNo = fileTitle[2]; |
||||
|
snKeyPart.StockInPn = fileTitle[3]; |
||||
|
snKeyPart.KPDate = System.DateTime.Parse(Cell1); |
||||
|
snKeyPart.KPItem = int.Parse(Cell2); |
||||
|
snKeyPart.KPSn = Cell3; |
||||
|
snKeyPart.KPMb = Cell4; |
||||
|
snKeyPart.KPMac = Cell5; |
||||
|
snKeyPart.KPPanel = Cell6; |
||||
|
snKeyPart.CreateUserID = user_id; |
||||
|
snKeyPart.CreateDate = System.DateTime.Now; |
||||
|
|
||||
|
result1 = await _pdsApi.PostSNKeyPart(JsonConvert.SerializeObject(snKeyPart)); |
||||
|
|
||||
|
if (!result1.Success) |
||||
|
{ |
||||
|
resultMsg += "第" + i + "行:資料寫入失敗!!!原因:" + result1.Msg + "\r\n"; |
||||
|
} |
||||
|
else |
||||
|
count++; |
||||
|
|
||||
|
/* |
||||
|
if (Cell1.Length > 20) |
||||
|
erroCol += "第" + i + "列DATE資料過長!!\r\n"; |
||||
|
*/ |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
if (resultMsg != "") |
||||
|
{ |
||||
|
ModelState.AddModelError("error", resultMsg); |
||||
|
return View("PDS003"); |
||||
|
|
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
ModelState.AddModelError("error", "資料寫入成功!!"); |
||||
|
return View("PDS003"); |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
|
||||
|
} |
||||
|
|
||||
|
return View("PDS003"); |
||||
|
} |
||||
|
|
||||
|
[ResponseCache(Duration = 0)] |
||||
|
[HttpGet] |
||||
|
public async Task<IActionResult> GetSNKeyPartByStockInNo(string no, int page = 0, int limit = 10) |
||||
|
{ |
||||
|
var result_total = await _pdsApi.GetSNKeyPartByStockInNo(no, 0, limit); |
||||
|
var result = await _pdsApi.GetSNKeyPartByStockInNo(no, page, limit); |
||||
|
|
||||
|
if (result.Count > 0) |
||||
|
{ |
||||
|
return Json(new Table() { code = 0, msg = "", data = result, count = result.Count }); |
||||
|
} |
||||
|
|
||||
|
return Json(new Table() { count = 0, data = null }); |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,61 @@ |
|||||
|
using System.Collections.Generic; |
||||
|
using WebApiClient; |
||||
|
using WebApiClient.Attributes; |
||||
|
using AMESCoreStudio.WebApi; |
||||
|
using Microsoft.AspNetCore.Mvc; |
||||
|
using AMESCoreStudio.WebApi.Models.AMES; |
||||
|
using AMESCoreStudio.WebApi.Models.BAS; |
||||
|
using AMESCoreStudio.CommonTools.Result; |
||||
|
|
||||
|
namespace AMESCoreStudio.Web |
||||
|
{ |
||||
|
[JsonReturn] |
||||
|
public interface IPDS:IHttpApi |
||||
|
{ |
||||
|
#region PDS003 外包機種資料維護
|
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 新增外包機種資料
|
||||
|
/// </summary>
|
||||
|
/// <returns></returns>
|
||||
|
[WebApiClient.Attributes.HttpPost("api/SNKeyParts")] |
||||
|
ITask<ResultModel<SNKeyPart>> PostSNKeyPart([FromBody, RawJsonContent] string model); |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 更新外包機種資料
|
||||
|
/// </summary>
|
||||
|
/// <returns></returns>
|
||||
|
[WebApiClient.Attributes.HttpPut("api/SNKeyParts/{id}")] |
||||
|
ITask<ResultModel<SNKeyPart>> PutSNKeyPart(string id, [FromBody, RawJsonContent] string model); |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 刪除外包機種資料
|
||||
|
/// </summary>
|
||||
|
/// <returns></returns>
|
||||
|
[WebApiClient.Attributes.HttpDelete("api/SNKeyParts/{id}")] |
||||
|
ITask<ResultModel<SNKeyPart>> DeleteSNKeyPart(string id); |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 根據ID獲取指定外包機種資料
|
||||
|
/// </summary>
|
||||
|
/// <returns></returns>
|
||||
|
[WebApiClient.Attributes.HttpGet("api/SNKeyParts/{id}")] |
||||
|
ITask<List<SNKeyPart>> GetSNKeyPart(string id); |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 獲取外包機種資料
|
||||
|
/// </summary>
|
||||
|
/// <returns></returns>
|
||||
|
[WebApiClient.Attributes.HttpGet("api/SNKeyParts")] |
||||
|
ITask<List<SNKeyPart>> GetSNKeyParts(int page = 0, int limit = 10); |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 獲取外包機種資料by入庫單
|
||||
|
/// </summary>
|
||||
|
/// <returns></returns>
|
||||
|
[WebApiClient.Attributes.HttpGet("api/SNKeyParts/StockInNo")] |
||||
|
ITask<List<SNKeyPart>> GetSNKeyPartByStockInNo(string no,int page = 0, int limit = 10); |
||||
|
|
||||
|
#endregion
|
||||
|
} |
||||
|
} |
@ -0,0 +1,163 @@ |
|||||
|
@{ |
||||
|
ViewData["Title"] = "PDS003"; |
||||
|
Layout = "~/Views/Shared/_AMESLayout.cshtml"; |
||||
|
} |
||||
|
|
||||
|
<div class="layui-card"> |
||||
|
<div class="layui-card-header"> |
||||
|
<div class="layui-form"> |
||||
|
<div class="layui-form-item "> |
||||
|
<div class="layui-inline"><i class="fa fa-file-text-o fa-fw"></i> @ViewBag.Title</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
<div class="layui-card-body"> |
||||
|
<form enctype="multipart/form-data" class="layui-form" method="post" asp-action="PDS003Save"> |
||||
|
<div class="layui-form"> |
||||
|
<div class="layui-row"> |
||||
|
<div class="layui-form-item"> |
||||
|
<div class="layui-col-sm3"> |
||||
|
<div class="layui-inline"> |
||||
|
<label class="layui-form-label">生產單位:</label> |
||||
|
<div class="layui-input-inline"> |
||||
|
<select id="unit" lay-filter="unit" lay-verify="required" lay-submit asp-items="@ViewBag.UnitList"> |
||||
|
<option value="*">全部</option> |
||||
|
</select> |
||||
|
</div> |
||||
|
<input id="unitNo" type="hidden" name="unitNo" value="*" /> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="layui-col-sm3"> |
||||
|
<div class="layui-inline"> |
||||
|
<label class="layui-form-label">線別:</label> |
||||
|
<div class="layui-input-inline"> |
||||
|
<select id="line" lay-filter="line" lay-verify="required" lay-submit asp-items="@ViewBag.LineList"> |
||||
|
<option value="0">全部</option> |
||||
|
</select> |
||||
|
</div> |
||||
|
<input id="lineId" type="hidden" name="lineId" value="0" /> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="layui-col-sm3"> |
||||
|
<div class="layui-inline"> |
||||
|
<label class="layui-form-label">流程:</label> |
||||
|
<div class="layui-input-inline"> |
||||
|
<select id="flow" lay-filter="flow" lay-verify="required" lay-submit asp-items="@ViewBag.FlowRuleList"> |
||||
|
<option value="0">全部</option> |
||||
|
</select> |
||||
|
</div> |
||||
|
<input id="flowId" type="hidden" name="flowId" value="0" /> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="layui-row"> |
||||
|
<div class="layui-form-item"> |
||||
|
<div class="layui-inline"> |
||||
|
<label class="layui-form-label">資料上傳:</label> |
||||
|
<label class="layui-btn"> |
||||
|
<input type="file" name="formFile"> |
||||
|
@*<i class="layui-icon"></i>上傳文件*@ |
||||
|
</label> |
||||
|
<input type="submit" id="asubmit" value="上傳" class="layui-btn layui-icon " /> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="layui-row"> |
||||
|
<div class="layui-form-item"> |
||||
|
<div class="layui-inline"> |
||||
|
<pre style="color: firebrick;word-break: break-all;" class="text-danger offset-sm-3">@Html.ValidationMessage("error")</pre> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</form> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
|
||||
|
@section Scripts{ |
||||
|
<script type="text/javascript"> |
||||
|
|
||||
|
function getFlowRuleList(data) |
||||
|
{ |
||||
|
$.ajax( |
||||
|
{ |
||||
|
url: "@Url.Action("GetFlowRuleJson", "BAS")", |
||||
|
dataType: 'json', |
||||
|
data: { "unit_no": $("#unitNo").val()}, |
||||
|
type: 'post', |
||||
|
success: function (result) |
||||
|
{ |
||||
|
console.info(result.data); |
||||
|
$("#flow").empty();//清空下拉框的值 |
||||
|
$("#flow").prepend("<option value='0'>全部</option>"); |
||||
|
$.each(result.data, function (index, item) { |
||||
|
$("#flow").append($("<option>").text(item.text).val(item.value)) |
||||
|
}); |
||||
|
//$("#flow option:eq(1)").attr("selected", 'selected'); //默认选择第一个选项 |
||||
|
layui.form.render("select");//重新渲染 固定写法 |
||||
|
}, |
||||
|
error: function (result) |
||||
|
{ |
||||
|
alert(result); |
||||
|
} |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
|
||||
|
function getLineInfoList(data) |
||||
|
{ |
||||
|
$.ajax( |
||||
|
{ |
||||
|
url: '@Url.Action("GetUnitLineJson", "REP")', |
||||
|
dataType: 'json', |
||||
|
data: { "unit_no": $("#unit").val() }, |
||||
|
type: 'post', |
||||
|
success: function (result) { |
||||
|
console.info(result.data); |
||||
|
$("#line").empty();//清空下拉框的值 |
||||
|
$("#line").prepend("<option value='0'>全部</option>"); |
||||
|
$.each(result.data, function (index, item) { |
||||
|
$("#line").append($("<option>").text(item.text).val(item.value)) |
||||
|
}); |
||||
|
//$("#line option:eq(1)").attr("selected", 'selected'); //默认选择第一个选项 |
||||
|
layui.form.render("select");//重新渲染 固定写法 |
||||
|
}, |
||||
|
error: function (result) { |
||||
|
alert(result); |
||||
|
} |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
layui.use(['form', 'layer'], function () { |
||||
|
form = layui.form; |
||||
|
|
||||
|
form.on('select(unit)', function (data) { |
||||
|
$("#unitNo").val(data.value); |
||||
|
|
||||
|
getFlowRuleList(data.value); |
||||
|
getLineInfoList(data.value); |
||||
|
|
||||
|
|
||||
|
}); |
||||
|
|
||||
|
|
||||
|
//$("#lineId").val($("#line option:selected").val()); |
||||
|
//$("#flowId").val($("#flow").val()); |
||||
|
|
||||
|
form.on('select(line)', function (data) { |
||||
|
$("#lineId").val(data.value); |
||||
|
|
||||
|
}); |
||||
|
|
||||
|
form.on('select(flow)', function (data) { |
||||
|
$("#flowId").val(data.value); |
||||
|
|
||||
|
}); |
||||
|
|
||||
|
}); |
||||
|
|
||||
|
</script> |
||||
|
} |
Loading…
Reference in new issue