From 6d56bf4daf08c4c7c6d193d98ed0b547dc473451 Mon Sep 17 00:00:00 2001
From: renmingwang <renmingwang@hnkhzn.com>
Date: 星期三, 25 三月 2026 16:59:14 +0800
Subject: [PATCH] 添加历史任务删除,大屏布局修改
---
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/Task_HtyService.cs | 42 +
项目代码/WMS/WIDESEA_WMSClient/.vs/VSWorkspaceState.json | 6
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITask_HtyService.cs | 14
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskHtyService.cs | 9
项目代码/大屏/src/store/modules/setting.js | 40 +
项目代码/WMS/WIDESEA_WMSClient/package-lock.json | 896 ++++++++++++++++++++++
项目代码/WMS/WIDESEA_WMSServer/.vs/slnx.sqlite | 0
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Inbound.cs | 4
项目代码/WMS/WIDESEA_WMSClient/.vs/slnx.sqlite | 0
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/Task_HtyController.cs | 22
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskHtyService.cs | 44 +
项目代码/大屏/src/api/api.js | 3
项目代码/大屏/src/views/indexs/sc01-task-info.vue | 4
项目代码/大屏/src/views/setting.vue | 40 +
项目代码/WMS/WIDESEA_WMSServer/WIDESEAWCS_Tasks/WIDESEAWMS_Tasks.csproj | 14
项目代码/大屏/src/views/indexs/inventory-stats.vue | 2
项目代码/WMS/WIDESEA_WMSClient/config/buttons.js | 7
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_HomeService/HomeService.cs | 60
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task_HtyJob.cs | 37
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs | 90 +-
项目代码/大屏/src/views/indexs/sc02-location-status.vue | 32
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/ToMes.cs | 168 ++++
项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/.wsuo | 0
项目代码/WMS/WIDESEA_WMSClient/.vs/WIDESEA_WMSClient/v17/DocumentLayout.json | 129 +++
.vs/VSWorkspaceState.json | 7
项目代码/WMS/WIDESEA_WMSClient/.vs/WIDESEA_WMSClient/v17/.wsuo | 0
/dev/null | 237 ------
项目代码/WMS/WIDESEA_WMSClient/src/extension/taskinfo/task.js | 2
项目代码/大屏/src/views/indexs/sc02-task-info.vue | 2
项目代码/大屏/src/views/indexs/index.vue | 64
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs | 137 ++-
项目代码/WMS/WIDESEA_WMSClient/src/extension/taskinfo/task_hty.js | 138 ++-
项目代码/大屏/src/views/indexs/sc01-location-status.vue | 32
33 files changed, 1,812 insertions(+), 470 deletions(-)
diff --git a/.vs/VSWorkspaceState.json b/.vs/VSWorkspaceState.json
index 02e164b..45b405e 100644
--- a/.vs/VSWorkspaceState.json
+++ b/.vs/VSWorkspaceState.json
@@ -1,7 +1,10 @@
{
"ExpandedNodes": [
- ""
+ "",
+ "\\\u9879\u76EE\u4EE3\u7801",
+ "\\\u9879\u76EE\u4EE3\u7801\\WMS",
+ "\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer"
],
- "SelectedNode": "\\WIDESEA_WMSServer.sln (椤圭洰浠g爜澶囦唤\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\WIDESEA_WMSServer.sln)",
+ "SelectedNode": "\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer.sln",
"PreviewInSolutionExplorer": false
}
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/.trae/documents/\344\277\256\345\244\215\350\267\257\347\224\261\345\214\271\351\205\215\351\227\256\351\242\230.md" "b/\351\241\271\347\233\256\344\273\243\347\240\201/.trae/documents/\344\277\256\345\244\215\350\267\257\347\224\261\345\214\271\351\205\215\351\227\256\351\242\230.md"
deleted file mode 100644
index ae47a98..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/.trae/documents/\344\277\256\345\244\215\350\267\257\347\224\261\345\214\271\351\205\215\351\227\256\351\242\230.md"
+++ /dev/null
@@ -1,108 +0,0 @@
-## 闂鍒嗘瀽
-
-1. **鏃ユ湡鏃堕棿瀛楁璁剧疆闂**锛氬湪 `ViewGrid/methods.js` 涓紝鎵�鏈夋棩鏈熷拰鏃ユ湡鏃堕棿绫诲瀷鐨勬煡璇㈠瓧娈甸兘琚己鍒惰缃负 `range = true`锛屾剰鍛崇潃瀹冧滑蹇呴』鏄寖鍥存煡璇�
-
-2. **鏌ヨ鍙傛暟澶勭悊閫昏緫闂**锛氬湪 `getSearchParameters` 鏂规硶涓紝瀵逛簬鏃ユ湡鏃堕棿绫诲瀷鐨勫鐞嗗瓨鍦ㄩ棶棰橈細
- - 浠g爜鏈熸湜鏃ユ湡鏃堕棿鍊兼槸涓�涓暟缁勶紝鍖呭惈寮�濮嬫椂闂村拰缁撴潫鏃堕棿
- - 褰� `value` 鏄瓧绗︿覆鏃讹紝浠g爜鏃犳硶姝g‘澶勭悊
- - 瀵艰嚧鏃ユ湡鏃堕棿鏌ヨ鍙傛暟鏃犳硶姝g‘鐢熸垚
-
-3. **鏌ヨ鏉′欢鏍煎紡闂**锛氱敓鎴愮殑鏌ヨ鏉′欢鏍煎紡鍙兘涓庡悗绔湡鏈涚殑鏍煎紡涓嶄竴鑷�
-
-## 瑙e喅鏂规
-
-1. **淇敼鏃ユ湡鏃堕棿瀛楁璁剧疆**锛�
- - 绉婚櫎寮哄埗灏嗘墍鏈夋棩鏈熸椂闂村瓧娈佃缃负鑼冨洿鏌ヨ鐨勪唬鐮�
- - 鍏佽鏍规嵁瀹為檯闇�姹傝缃崟涓棩鏈熸椂闂存煡璇㈡垨鑼冨洿鏌ヨ
-
-2. **浼樺寲鏌ヨ鍙傛暟澶勭悊閫昏緫**锛�
- - 姝g‘澶勭悊鏃ユ湡鏃堕棿绫诲瀷鐨勫崟涓�煎拰鑼冨洿鍊�
- - 纭繚鐢熸垚鐨勬煡璇㈡潯浠舵牸寮忔纭�
- - 娣诲姞閫傚綋鐨勬棩蹇楄褰曪紝渚夸簬璋冭瘯
-
-3. **澧炲己閿欒澶勭悊**锛�
- - 娣诲姞瀵瑰紓甯告儏鍐电殑澶勭悊
- - 纭繚鏌ヨ鍔熻兘鍦ㄥ悇绉嶆儏鍐典笅閮借兘姝e父宸ヤ綔
-
-## 鍏蜂綋淇敼
-
-1. **淇敼 `ViewGrid/methods.js`**锛�
- - 绉婚櫎鎴栦慨鏀� `initFormOptions` 鏂规硶涓己鍒惰缃� `range = true` 鐨勪唬鐮�
- - 浼樺寲 `getSearchParameters` 鏂规硶涓殑鏃ユ湡鏃堕棿澶勭悊閫昏緫
-
-2. **淇敼寤鸿**锛�
- - 淇濈暀 `range` 灞炴�х殑璁剧疆锛屼絾鍏佽閫氳繃閰嶇疆瑕嗙洊
- - 澧炲己 `getSearchParameters` 鏂规硶锛屾纭鐞嗘棩鏈熸椂闂寸殑鍗曚釜鍊煎拰鑼冨洿鍊�
- - 娣诲姞閫傚綋鐨勬棩蹇楄褰�
-
-3. **淇敼 `getSearchParameters` 鏂规硶**锛�
- ```javascript
- getSearchParameters() {
- // 鑾峰彇鏌ヨ鍙傛暟
- if (!this.fiexdSearchForm) {
- this.searchBoxShow = false;
- }
-
- let query = { wheres: [] };
- for (const key in this.searchFormFields) {
- let value = this.searchFormFields[key];
- if (this.emptyValue(value)) continue;
-
- if (typeof value == 'number') {
- value = value + '';
- }
- let displayType = this.getSearchItem(key);
-
- // 澶勭悊鏃ユ湡鏃堕棿绫诲瀷
- if (['date', 'datetime'].indexOf(displayType) != -1) {
- if (Array.isArray(value)) {
- // 鑼冨洿鏌ヨ
- for (let index = 0; index < value.length; index++) {
- if (!this.emptyValue(value[index])) {
- query.wheres.push({
- name: key,
- value: (value[index] + '').trim(),
- displayType: index === 0 ? 'greaterorequal' : 'lessorequal'
- });
- }
- }
- } else {
- // 鍗曚釜鍊兼煡璇�
- query.wheres.push({
- name: key,
- value: (value + '').trim(),
- displayType: 'equal'
- });
- }
- continue;
- }
-
- // 澶勭悊鍏朵粬绫诲瀷
- query.wheres.push({
- name: key,
- value: typeof value == 'string' ? (value + '').trim() : value.join(','),
- displayType: displayType
- });
- }
- return query;
- }
- ```
-
-4. **淇敼 `initFormOptions` 鏂规硶**锛�
- ```javascript
- initFormOptions(formOptions, keys, formFields, isEdit) {
- // 鍒濆鍖栨煡璇€�佺紪杈戝璞$殑涓嬫媺妗嗘暟鎹簮銆佸浘鐗囦笂浼犻摼鎺ュ湴鍧�
- // ... 鍏朵粬浠g爜 ...
-
- // 绉婚櫎鎴栦慨鏀瑰己鍒惰缃畆ange=true鐨勪唬鐮�
- // this.searchFormOptions.forEach((item) => {
- // item.forEach((x) => {
- // if (x.type == 'date' || x.type == 'datetime') x.range = true;
- // });
- // });
-
- // ... 鍏朵粬浠g爜 ...
- }
- ```
-
-杩欐牱淇敼鍚庯紝鏃ユ湡鏃堕棿鏌ヨ鍔熻兘搴旇鑳藉姝e父宸ヤ綔锛屾棤璁烘槸鍗曚釜鍊兼煡璇㈣繕鏄寖鍥存煡璇㈤兘鑳芥纭鐞嗐��
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskHtyService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskHtyService.cs"
index fad13fd..cf8d914 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskHtyService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskHtyService.cs"
@@ -43,5 +43,14 @@
/// <param name="taskNum">浠诲姟鍙�</param>
/// <returns>鍘嗗彶璁板綍鍒楄〃</returns>
List<Dt_Task_Hty> GetHistoryByTaskNum(int taskNum);
+
+ /// <summary>
+ /// 鍒犻櫎鎸囧畾鏃ユ湡涔嬪墠鐨勫巻鍙蹭换鍔℃暟鎹�
+ /// </summary>
+ /// <param name="keepMonths">淇濈暀鐨勬湀鏁帮紝榛樿涓�3涓湀锛堟湰鏈�+鍚庝袱涓湀锛�</param>
+ /// <returns>鍒犻櫎鐨勮褰曟暟</returns>
+ int DeleteOldTaskHistory(int keepMonths = 3);
+
+ public void Task_Hty_Job();
}
}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskHtyService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskHtyService.cs"
index 892e2c4..80f4848 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskHtyService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskHtyService.cs"
@@ -116,5 +116,47 @@
{
return BaseDal.QueryData(x => x.TaskNum == taskNum).OrderByDescending(x => x.CreateDate).ToList();
}
+
+ /// <summary>
+ /// 鍒犻櫎鎸囧畾鏃ユ湡涔嬪墠鐨勫巻鍙蹭换鍔℃暟鎹�
+ /// </summary>
+ /// <param name="keepMonths">淇濈暀鐨勬湀鏁帮紝榛樿涓�3涓湀锛堟湰鏈�+鍚庝袱涓湀锛�</param>
+ /// <returns>鍒犻櫎鐨勮褰曟暟</returns>
+ public int DeleteOldTaskHistory(int keepMonths = 3)
+ {
+ try
+ {
+ // 璁$畻淇濈暀鏃ユ湡锛氬綋鍓嶆棩鏈熷噺鍘籯eepMonths涓湀
+ DateTime keepDate = DateTime.Now.AddMonths(-keepMonths);
+
+ // 鍏堟煡璇㈠嚭瑕佸垹闄ょ殑鏁版嵁
+ List<Dt_Task_Hty> tasksToDelete = BaseDal.QueryData().Where(x => x.CreateDate < keepDate).ToList();
+
+ // 濡傛灉娌℃湁瑕佸垹闄ょ殑鏁版嵁锛岀洿鎺ヨ繑鍥�0
+ if (tasksToDelete.Count == 0)
+ {
+ return 0;
+ }
+
+ // 鍒犻櫎鏌ヨ鍑虹殑鍘嗗彶璁板綍
+ bool result = BaseDal.DeleteData(tasksToDelete);
+ return result ? tasksToDelete.Count : 0;
+ }
+ catch (Exception ex)
+ {
+ // 璁板綍寮傚父鏃ュ織
+ //Console.WriteLine($"鍒犻櫎鍘嗗彶浠诲姟璁板綍澶辫触: {ex.Message}");
+ return 0;
+ }
+ }
+
+ /// <summary>
+ /// 瀹氭椂浠诲姟璋冪敤鐨勫巻鍙蹭换鍔″垹闄ゆ柟娉�
+ /// </summary>
+ public void Task_Hty_Job()
+ {
+ // 鍒犻櫎3涓湀涔嬪墠鐨勫巻鍙蹭换鍔℃暟鎹紝淇濈暀鏈湀鍜屽悗涓や釜鏈堢殑鏁版嵁
+ DeleteOldTaskHistory(3);
+ }
}
-}
+}
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs"
index 4e3383f..cb22d8e 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs"
@@ -955,37 +955,71 @@
/// <returns></returns>
public WebResponseContent GetRoadwayTaskProgress(string roadway)
{
- WebResponseContent content = new WebResponseContent();
try
{
- var tasks = BaseDal.QueryData(x => x.Roadway == roadway);
+ // 1. 鍏ュ弬鏍¢獙
+ if (string.IsNullOrWhiteSpace(roadway))
+ {
+ return WebResponseContent.Instance.Error("宸烽亾缂栧彿涓嶈兘涓虹┖");
+ }
+ // 2. 涓�娆℃煡璇紝閬垮厤澶氭鏁版嵁搴�/鍐呭瓨閬嶅巻
+ List<Dt_Task> taskList = BaseDal.QueryData(x => x.Roadway == roadway).ToList();
+
+ int totalTasks = taskList.Count;
+ int inProgressTasks = 0;
+ int completedTasks = 0;
+ int cancelledTasks = 0;
+ int exceptionTasks = 0;
+
+ foreach (var task in taskList)
+ {
+ switch ((TaskStatusEnum)task.TaskState)
+ {
+ case TaskStatusEnum.Finish:
+ completedTasks++;
+ break;
+ case TaskStatusEnum.Cancel:
+ cancelledTasks++;
+ break;
+ case TaskStatusEnum.Exception:
+ exceptionTasks++;
+ break;
+ default:
+ inProgressTasks++;
+ break;
+ }
+ }
+
+ var taskDetails = taskList.Select(t => new
+ {
+ taskNum = t.TaskNum,
+ taskType = t.TaskType,
+ taskState = t.TaskState,
+ taskStateName = GetTaskStateName(t.TaskState),
+ createDate = t.CreateDate,
+ modifyDate = t.ModifyDate,
+ sourceAddress = t.SourceAddress,
+ targetAddress = t.TargetAddress
+ }).ToList();
+
+ // 5. 缁熶竴杩斿洖缁撴灉
var progressInfo = new
{
roadway = roadway,
- totalTasks = tasks.Count,
- inProgressTasks = tasks.Count(t => t.TaskState < (int)TaskStatusEnum.Finish && t.TaskState != (int)TaskStatusEnum.Cancel && t.TaskState != (int)TaskStatusEnum.Exception),
- completedTasks = tasks.Count(t => t.TaskState == (int)TaskStatusEnum.Finish),
- cancelledTasks = tasks.Count(t => t.TaskState == (int)TaskStatusEnum.Cancel),
- exceptionTasks = tasks.Count(t => t.TaskState == (int)TaskStatusEnum.Exception),
- tasks = tasks.Select(t => new
- {
- taskNum = t.TaskNum,
- taskType = t.TaskType,
- taskState = t.TaskState,
- taskStateName = GetTaskStateName(t.TaskState),
- createDate = t.CreateDate,
- modifyDate = t.ModifyDate,
- sourceAddress = t.SourceAddress,
- targetAddress = t.TargetAddress
- }).ToList()
+ totalTasks,
+ inProgressTasks,
+ completedTasks,
+ cancelledTasks,
+ exceptionTasks,
+ tasks = taskDetails
};
- content = WebResponseContent.Instance.OK(data: progressInfo);
+
+ return WebResponseContent.Instance.OK(data: progressInfo);
}
catch (Exception ex)
{
- content = WebResponseContent.Instance.Error(ex.Message);
+ return WebResponseContent.Instance.Error($"鑾峰彇宸烽亾浠诲姟杩涘害澶辫触锛歿ex.Message}");
}
- return content;
}
/// <summary>
@@ -994,34 +1028,56 @@
/// <returns></returns>
public WebResponseContent GetAllRoadwayTaskProgress()
{
- WebResponseContent content = new WebResponseContent();
try
{
- var allTasks = BaseDal.QueryData();
- var roadways = allTasks.Select(t => t.Roadway).Distinct().ToList();
- var progressList = new List<object>();
+ // 1. 涓�娆℃�ф煡璇㈡墍鏈夋暟鎹紙閬垮厤澶氭鏌ヨ锛�
+ List<Dt_Task> allTasks = BaseDal.QueryData().ToList();
- foreach (var roadway in roadways)
- {
- var roadwayTasks = allTasks.Where(t => t.Roadway == roadway).ToList();
- progressList.Add(new
+ // 2. 鎸夊贩閬撳垎缁� + 涓�娆¢亶鍘嗙粺璁℃墍鏈夌姸鎬侊紙鎬ц兘鎻愬崌宸ㄥぇ锛�
+ var progressList = allTasks
+ .GroupBy(t => t.Roadway)
+ .Select(group =>
{
- roadway = roadway,
- totalTasks = roadwayTasks.Count,
- inProgressTasks = roadwayTasks.Count(t => t.TaskState < (int)TaskStatusEnum.Finish && t.TaskState != (int)TaskStatusEnum.Cancel && t.TaskState != (int)TaskStatusEnum.Exception),
- completedTasks = roadwayTasks.Count(t => t.TaskState == (int)TaskStatusEnum.Finish),
- cancelledTasks = roadwayTasks.Count(t => t.TaskState == (int)TaskStatusEnum.Cancel),
- exceptionTasks = roadwayTasks.Count(t => t.TaskState == (int)TaskStatusEnum.Exception)
- });
- }
+ var roadway = group.Key;
+ var tasks = group.ToList();
+ var totalTasks = tasks.Count;
+ int inProgress = 0, completed = 0, cancelled = 0, exception = 0;
- content = WebResponseContent.Instance.OK(data: progressList);
+ foreach (var task in tasks)
+ {
+ switch ((TaskStatusEnum)task.TaskState)
+ {
+ case TaskStatusEnum.Finish:
+ completed++;
+ break;
+ case TaskStatusEnum.Cancel:
+ cancelled++;
+ break;
+ case TaskStatusEnum.Exception:
+ exception++;
+ break;
+ default:
+ inProgress++;
+ break;
+ }
+ }
+ return new
+ {
+ roadway = roadway,
+ totalTasks = totalTasks,
+ inProgressTasks = inProgress,
+ completedTasks = completed,
+ cancelledTasks = cancelled,
+ exceptionTasks = exception
+ };
+ })
+ .ToList();
+ return WebResponseContent.Instance.OK(data: progressList);
}
catch (Exception ex)
{
- content = WebResponseContent.Instance.Error(ex.Message);
+ return WebResponseContent.Instance.Error($"鑾峰彇宸烽亾浠诲姟杩涘害澶辫触锛歿ex.Message}");
}
- return content;
}
/// <summary>
@@ -1031,7 +1087,6 @@
/// <returns></returns>
private string GetTaskStateName(int taskState)
{
- // 鐩存帴鏍规嵁鐘舵�佸�艰繑鍥炵姸鎬佸悕绉�
switch (taskState)
{
case (int)TaskStatusEnum.New:
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task_HtyJob.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task_HtyJob.cs"
new file mode 100644
index 0000000..5e076b1
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task_HtyJob.cs"
@@ -0,0 +1,37 @@
+using Quartz;
+using System;
+using System.Threading.Tasks;
+using WIDESEAWCS_ITaskInfoService;
+
+namespace WIDESEAWCS_Tasks
+{
+ /// <summary>
+ /// 浠诲姟鍘嗗彶鍒犻櫎
+ /// </summary>
+ [DisallowConcurrentExecution]
+ public class Task_HtyJob : IJob
+ {
+ private readonly ITaskHtyService _taskHtyService;
+
+ public Task_HtyJob(ITaskHtyService taskHtyService)
+ {
+ _taskHtyService = taskHtyService;
+ }
+
+ public Task Execute(IJobExecutionContext context)
+ {
+ try
+ {
+ // 鍒犻櫎3涓湀涔嬪墠鐨勬墍鏈夊巻鍙蹭换鍔℃暟鎹紝淇濈暀鏈湀鍜屽悗涓や釜鏈堢殑鏁版嵁
+ //int deletedCount = _taskHtyService.DeleteOldTaskHistory(3);
+ //Console.WriteLine($"{DateTime.Now}: 鎴愬姛鍒犻櫎{deletedCount}鏉″巻鍙蹭换鍔¤褰�");
+ }
+ catch (Exception ex)
+ {
+ Console.WriteLine($"{DateTime.Now}: {nameof(Task_HtyJob)}鍒犻櫎鍘嗗彶浠诲姟璁板綍澶辫触: {ex.Message}");
+ }
+
+ return Task.CompletedTask;
+ }
+ }
+}
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/.vs/VSWorkspaceState.json" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/.vs/VSWorkspaceState.json"
new file mode 100644
index 0000000..6b61141
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/.vs/VSWorkspaceState.json"
@@ -0,0 +1,6 @@
+{
+ "ExpandedNodes": [
+ ""
+ ],
+ "PreviewInSolutionExplorer": false
+}
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/.vs/WIDESEA_WMSClient/v17/.wsuo" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/.vs/WIDESEA_WMSClient/v17/.wsuo"
new file mode 100644
index 0000000..640724e
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/.vs/WIDESEA_WMSClient/v17/.wsuo"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/.vs/WIDESEA_WMSClient/v17/DocumentLayout.json" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/.vs/WIDESEA_WMSClient/v17/DocumentLayout.json"
new file mode 100644
index 0000000..3f41e69
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/.vs/WIDESEA_WMSClient/v17/DocumentLayout.json"
@@ -0,0 +1,129 @@
+{
+ "Version": 1,
+ "WorkspaceRootPath": "D:\\ShenYangLiku\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSClient\\",
+ "Documents": [],
+ "DocumentGroupContainers": [
+ {
+ "Orientation": 0,
+ "VerticalTabListWidth": 256,
+ "DocumentGroups": [
+ {
+ "DockedWidth": 200,
+ "SelectedChildIndex": -1,
+ "Children": [
+ {
+ "$type": "Bookmark",
+ "Name": "ST:128:0:{1fc202d4-d401-403c-9834-5b218574bb67}"
+ },
+ {
+ "$type": "Bookmark",
+ "Name": "ST:130:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}"
+ },
+ {
+ "$type": "Bookmark",
+ "Name": "ST:128:0:{13b12e3e-c1b4-4539-9371-4fe9a0d523fc}"
+ }
+ ]
+ },
+ {
+ "DockedWidth": 422,
+ "SelectedChildIndex": -1,
+ "Children": [
+ {
+ "$type": "Bookmark",
+ "Name": "ST:47:0:{e8034f19-ab72-4f06-83fd-f6832b41aa63}"
+ },
+ {
+ "$type": "Bookmark",
+ "Name": "ST:32:0:{d212f56b-c48a-434c-a121-1c5d80b59b9f}"
+ },
+ {
+ "$type": "Bookmark",
+ "Name": "ST:33:0:{d212f56b-c48a-434c-a121-1c5d80b59b9f}"
+ },
+ {
+ "$type": "Bookmark",
+ "Name": "ST:68:0:{e8034f19-ab72-4f06-83fd-f6832b41aa63}"
+ },
+ {
+ "$type": "Bookmark",
+ "Name": "ST:70:0:{e8034f19-ab72-4f06-83fd-f6832b41aa63}"
+ },
+ {
+ "$type": "Bookmark",
+ "Name": "ST:79:0:{e8034f19-ab72-4f06-83fd-f6832b41aa63}"
+ },
+ {
+ "$type": "Bookmark",
+ "Name": "ST:81:0:{e8034f19-ab72-4f06-83fd-f6832b41aa63}"
+ },
+ {
+ "$type": "Bookmark",
+ "Name": "ST:83:0:{e8034f19-ab72-4f06-83fd-f6832b41aa63}"
+ },
+ {
+ "$type": "Bookmark",
+ "Name": "ST:85:0:{e8034f19-ab72-4f06-83fd-f6832b41aa63}"
+ },
+ {
+ "$type": "Bookmark",
+ "Name": "ST:87:0:{e8034f19-ab72-4f06-83fd-f6832b41aa63}"
+ },
+ {
+ "$type": "Bookmark",
+ "Name": "ST:90:0:{e8034f19-ab72-4f06-83fd-f6832b41aa63}"
+ },
+ {
+ "$type": "Bookmark",
+ "Name": "ST:95:0:{e8034f19-ab72-4f06-83fd-f6832b41aa63}"
+ },
+ {
+ "$type": "Bookmark",
+ "Name": "ST:104:0:{e8034f19-ab72-4f06-83fd-f6832b41aa63}"
+ },
+ {
+ "$type": "Bookmark",
+ "Name": "ST:124:0:{e8034f19-ab72-4f06-83fd-f6832b41aa63}"
+ },
+ {
+ "$type": "Bookmark",
+ "Name": "ST:125:0:{e8034f19-ab72-4f06-83fd-f6832b41aa63}"
+ },
+ {
+ "$type": "Bookmark",
+ "Name": "ST:131:0:{e8034f19-ab72-4f06-83fd-f6832b41aa63}"
+ },
+ {
+ "$type": "Bookmark",
+ "Name": "ST:132:0:{e8034f19-ab72-4f06-83fd-f6832b41aa63}"
+ },
+ {
+ "$type": "Bookmark",
+ "Name": "ST:133:0:{e8034f19-ab72-4f06-83fd-f6832b41aa63}"
+ }
+ ]
+ },
+ {
+ "DockedWidth": 602,
+ "SelectedChildIndex": -1,
+ "Children": [
+ {
+ "$type": "Bookmark",
+ "Name": "ST:0:0:{34e76e81-ee4a-11d0-ae2e-00a0c90fffc3}"
+ }
+ ]
+ },
+ {
+ "DockedWidth": 1237,
+ "SelectedChildIndex": -1,
+ "Children": [
+ {
+ "$type": "Bookmark",
+ "Name": "ST:0:0:{d78612c7-9962-4b83-95d9-268046dad23a}"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/.vs/slnx.sqlite" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/.vs/slnx.sqlite"
new file mode 100644
index 0000000..7590fb8
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/.vs/slnx.sqlite"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/config/buttons.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/config/buttons.js"
index aae5347..ffb0cd9 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/config/buttons.js"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/config/buttons.js"
@@ -122,6 +122,13 @@
onClick: function() {}
},
{
+ name: "鍒犻櫎鍘嗗彶浠诲姟淇℃伅",
+ icon: '',
+ class: '',
+ value: 'DeleteOldTaskHistory',
+ onClick: function() {}
+ },
+ {
name: "浠� 鍔� 鍙� 娑�",
icon: 'el-icon-delete',
class: '',
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/package-lock.json" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/package-lock.json"
index 67a3a17..c7e4e2f 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/package-lock.json"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/package-lock.json"
@@ -3654,6 +3654,16 @@
"acorn-walk": "^6.0.1"
}
},
+ "node_modules/acorn-jsx": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+ "dev": true,
+ "peer": true,
+ "peerDependencies": {
+ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ }
+ },
"node_modules/acorn-walk": {
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz",
@@ -4100,6 +4110,16 @@
"node": ">=0.10.0"
}
},
+ "node_modules/astral-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/astral-regex/-/astral-regex-1.0.0.tgz",
+ "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/async": {
"version": "3.2.6",
"resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz",
@@ -4466,6 +4486,16 @@
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/bindings": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmmirror.com/bindings/-/bindings-1.5.0.tgz",
+ "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
+ "dev": true,
+ "optional": true,
+ "dependencies": {
+ "file-uri-to-path": "1.0.0"
}
},
"node_modules/bluebird": {
@@ -7472,6 +7502,19 @@
"buffer-indexof": "^1.0.0"
}
},
+ "node_modules/doctrine": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "esutils": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
"node_modules/dom-converter": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz",
@@ -8028,6 +8071,62 @@
"node": ">=0.10.0"
}
},
+ "node_modules/eslint": {
+ "version": "6.8.0",
+ "resolved": "https://registry.npmmirror.com/eslint/-/eslint-6.8.0.tgz",
+ "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==",
+ "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@babel/code-frame": "^7.0.0",
+ "ajv": "^6.10.0",
+ "chalk": "^2.1.0",
+ "cross-spawn": "^6.0.5",
+ "debug": "^4.0.1",
+ "doctrine": "^3.0.0",
+ "eslint-scope": "^5.0.0",
+ "eslint-utils": "^1.4.3",
+ "eslint-visitor-keys": "^1.1.0",
+ "espree": "^6.1.2",
+ "esquery": "^1.0.1",
+ "esutils": "^2.0.2",
+ "file-entry-cache": "^5.0.1",
+ "functional-red-black-tree": "^1.0.1",
+ "glob-parent": "^5.0.0",
+ "globals": "^12.1.0",
+ "ignore": "^4.0.6",
+ "import-fresh": "^3.0.0",
+ "imurmurhash": "^0.1.4",
+ "inquirer": "^7.0.0",
+ "is-glob": "^4.0.0",
+ "js-yaml": "^3.13.1",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.3.0",
+ "lodash": "^4.17.14",
+ "minimatch": "^3.0.4",
+ "mkdirp": "^0.5.1",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.8.3",
+ "progress": "^2.0.0",
+ "regexpp": "^2.0.1",
+ "semver": "^6.1.2",
+ "strip-ansi": "^5.2.0",
+ "strip-json-comments": "^3.0.1",
+ "table": "^5.2.3",
+ "text-table": "^0.2.0",
+ "v8-compile-cache": "^2.0.3"
+ },
+ "bin": {
+ "eslint": "bin/eslint.js"
+ },
+ "engines": {
+ "node": "^8.10.0 || ^10.13.0 || >=11.10.1"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
"node_modules/eslint-loader": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-2.2.1.tgz",
@@ -8072,6 +8171,33 @@
"node": ">=4.0.0"
}
},
+ "node_modules/eslint-scope": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-5.1.1.tgz",
+ "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^4.1.1"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/eslint-utils": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmmirror.com/eslint-utils/-/eslint-utils-1.4.3.tgz",
+ "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "eslint-visitor-keys": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/eslint-visitor-keys": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
@@ -8079,6 +8205,74 @@
"dev": true,
"engines": {
"node": ">=4"
+ }
+ },
+ "node_modules/eslint/node_modules/import-fresh": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmmirror.com/import-fresh/-/import-fresh-3.3.1.tgz",
+ "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint/node_modules/resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/eslint/node_modules/strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "ansi-regex": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/espree": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmmirror.com/espree/-/espree-6.2.1.tgz",
+ "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "acorn": "^7.1.1",
+ "acorn-jsx": "^5.2.0",
+ "eslint-visitor-keys": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/espree/node_modules/acorn": {
+ "version": "7.4.1",
+ "resolved": "https://registry.npmmirror.com/acorn/-/acorn-7.4.1.tgz",
+ "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
+ "dev": true,
+ "peer": true,
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
}
},
"node_modules/esprima": {
@@ -8092,6 +8286,29 @@
},
"engines": {
"node": ">=4"
+ }
+ },
+ "node_modules/esquery": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmmirror.com/esquery/-/esquery-1.7.0.tgz",
+ "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "estraverse": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/esquery/node_modules/estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=4.0"
}
},
"node_modules/esrecurse": {
@@ -8610,6 +8827,19 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/file-entry-cache": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmmirror.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz",
+ "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "flat-cache": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/file-loader": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/file-loader/-/file-loader-4.3.0.tgz",
@@ -8651,6 +8881,13 @@
"engines": {
"node": ">=4.0.0"
}
+ },
+ "node_modules/file-uri-to-path": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
+ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
+ "dev": true,
+ "optional": true
},
"node_modules/filesize": {
"version": "3.6.1",
@@ -8772,6 +9009,35 @@
"flat": "cli.js"
}
},
+ "node_modules/flat-cache": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/flat-cache/-/flat-cache-2.0.1.tgz",
+ "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "flatted": "^2.0.0",
+ "rimraf": "2.6.3",
+ "write": "1.0.3"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/flat-cache/node_modules/rimraf": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-2.6.3.tgz",
+ "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
+ "deprecated": "Rimraf versions prior to v4 are no longer supported",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ }
+ },
"node_modules/flat/node_modules/is-buffer": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz",
@@ -8794,6 +9060,13 @@
"engines": {
"node": ">=4"
}
+ },
+ "node_modules/flatted": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmmirror.com/flatted/-/flatted-2.0.2.tgz",
+ "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==",
+ "dev": true,
+ "peer": true
},
"node_modules/flush-write-stream": {
"version": "1.1.1",
@@ -8997,6 +9270,13 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/functional-red-black-tree": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
+ "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==",
+ "dev": true,
+ "peer": true
+ },
"node_modules/functions-have-names": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
@@ -9155,7 +9435,6 @@
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
"dev": true,
- "optional": true,
"dependencies": {
"is-glob": "^4.0.1"
},
@@ -9168,6 +9447,32 @@
"resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz",
"integrity": "sha512-Iozmtbqv0noj0uDDqoL0zNq0VBEfK2YFoMAZoxJe4cwphvLR+JskfF30QhXHOR4m3KrE6NLRYw+U9MRXvifyig==",
"dev": true
+ },
+ "node_modules/globals": {
+ "version": "12.4.0",
+ "resolved": "https://registry.npmmirror.com/globals/-/globals-12.4.0.tgz",
+ "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "type-fest": "^0.8.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/globals/node_modules/type-fest": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.8.1.tgz",
+ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=8"
+ }
},
"node_modules/globalthis": {
"version": "1.0.4",
@@ -11221,6 +11526,13 @@
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
"dev": true
},
+ "node_modules/json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
+ "dev": true,
+ "peer": true
+ },
"node_modules/json-stringify-safe": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
@@ -12788,6 +13100,13 @@
"node": ">=6.0.0"
}
},
+ "node_modules/nan": {
+ "version": "2.25.0",
+ "resolved": "https://registry.npmmirror.com/nan/-/nan-2.25.0.tgz",
+ "integrity": "sha512-0M90Ag7Xn5KMLLZ7zliPWP3rT90P6PN+IzVFS0VqmnPktBk3700xUVv8Ikm9EUaUE5SDWdp/BIxdENzVznpm1g==",
+ "dev": true,
+ "optional": true
+ },
"node_modules/nanoid": {
"version": "3.3.11",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
@@ -12826,6 +13145,13 @@
"engines": {
"node": ">=0.10.0"
}
+ },
+ "node_modules/natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmmirror.com/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
+ "dev": true,
+ "peer": true
},
"node_modules/needle": {
"version": "2.9.1",
@@ -13569,6 +13895,29 @@
"dev": true,
"dependencies": {
"no-case": "^2.2.0"
+ }
+ },
+ "node_modules/parent-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "callsites": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/parent-module/node_modules/callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=6"
}
},
"node_modules/parse-asn1": {
@@ -16156,6 +16505,16 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/regexpp": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/regexpp/-/regexpp-2.0.1.tgz",
+ "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=6.5.0"
+ }
+ },
"node_modules/regexpu-core": {
"version": "6.4.0",
"resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.4.0.tgz",
@@ -17342,6 +17701,31 @@
"node": ">=6"
}
},
+ "node_modules/slice-ansi": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/slice-ansi/-/slice-ansi-2.1.0.tgz",
+ "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "ansi-styles": "^3.2.0",
+ "astral-regex": "^1.0.0",
+ "is-fullwidth-code-point": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/snapdragon": {
"version": "0.8.2",
"resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
@@ -17550,6 +17934,12 @@
"engines": {
"node": ">=0.10.0"
}
+ },
+ "node_modules/sortablejs": {
+ "version": "1.15.7",
+ "resolved": "https://registry.npmmirror.com/sortablejs/-/sortablejs-1.15.7.tgz",
+ "integrity": "sha512-Kk8wLQPlS+yi1ZEf48a4+fzHa4yxjC30M/Sr2AnQu+f/MPwvvX9XjZ6OWejiz8crBsLwSq8GHqaxaET7u6ux0A==",
+ "peer": true
},
"node_modules/source-list-map": {
"version": "2.0.1",
@@ -17998,6 +18388,19 @@
"node": ">=4"
}
},
+ "node_modules/strip-json-comments": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/stylehacks": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz",
@@ -18220,6 +18623,67 @@
"integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==",
"dev": true
},
+ "node_modules/table": {
+ "version": "5.4.6",
+ "resolved": "https://registry.npmmirror.com/table/-/table-5.4.6.tgz",
+ "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "ajv": "^6.10.2",
+ "lodash": "^4.17.14",
+ "slice-ansi": "^2.1.0",
+ "string-width": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/table/node_modules/emoji-regex": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-7.0.3.tgz",
+ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/table/node_modules/is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/table/node_modules/string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/table/node_modules/strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "ansi-regex": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/tapable": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz",
@@ -18394,6 +18858,13 @@
"engines": {
"node": ">=0.10.0"
}
+ },
+ "node_modules/text-table": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
+ "dev": true,
+ "peer": true
},
"node_modules/thenify": {
"version": "3.3.1",
@@ -19333,6 +19804,13 @@
"bin": {
"uuid": "bin/uuid"
}
+ },
+ "node_modules/v8-compile-cache": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmmirror.com/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz",
+ "integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==",
+ "dev": true,
+ "peer": true
},
"node_modules/validate-npm-package-license": {
"version": "3.0.4",
@@ -20698,6 +21176,19 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
+ },
+ "node_modules/write": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/write/-/write-1.0.3.tgz",
+ "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "mkdirp": "^0.5.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
},
"node_modules/ws": {
"version": "7.5.3",
@@ -23656,6 +24147,14 @@
"acorn-walk": "^6.0.1"
}
},
+ "acorn-jsx": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+ "dev": true,
+ "peer": true,
+ "requires": {}
+ },
"acorn-walk": {
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz",
@@ -23998,6 +24497,13 @@
"integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==",
"dev": true
},
+ "astral-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/astral-regex/-/astral-regex-1.0.0.tgz",
+ "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==",
+ "dev": true,
+ "peer": true
+ },
"async": {
"version": "3.2.6",
"resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz",
@@ -24264,6 +24770,16 @@
"integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
"dev": true,
"optional": true
+ },
+ "bindings": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmmirror.com/bindings/-/bindings-1.5.0.tgz",
+ "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "file-uri-to-path": "1.0.0"
+ }
},
"bluebird": {
"version": "3.7.2",
@@ -26604,6 +27120,16 @@
"buffer-indexof": "^1.0.0"
}
},
+ "doctrine": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "esutils": "^2.0.2"
+ }
+ },
"dom-converter": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz",
@@ -27059,6 +27585,82 @@
}
}
},
+ "eslint": {
+ "version": "6.8.0",
+ "resolved": "https://registry.npmmirror.com/eslint/-/eslint-6.8.0.tgz",
+ "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "ajv": "^6.10.0",
+ "chalk": "^2.1.0",
+ "cross-spawn": "^6.0.5",
+ "debug": "^4.0.1",
+ "doctrine": "^3.0.0",
+ "eslint-scope": "^5.0.0",
+ "eslint-utils": "^1.4.3",
+ "eslint-visitor-keys": "^1.1.0",
+ "espree": "^6.1.2",
+ "esquery": "^1.0.1",
+ "esutils": "^2.0.2",
+ "file-entry-cache": "^5.0.1",
+ "functional-red-black-tree": "^1.0.1",
+ "glob-parent": "^5.0.0",
+ "globals": "^12.1.0",
+ "ignore": "^4.0.6",
+ "import-fresh": "^3.0.0",
+ "imurmurhash": "^0.1.4",
+ "inquirer": "^7.0.0",
+ "is-glob": "^4.0.0",
+ "js-yaml": "^3.13.1",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.3.0",
+ "lodash": "^4.17.14",
+ "minimatch": "^3.0.4",
+ "mkdirp": "^0.5.1",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.8.3",
+ "progress": "^2.0.0",
+ "regexpp": "^2.0.1",
+ "semver": "^6.1.2",
+ "strip-ansi": "^5.2.0",
+ "strip-json-comments": "^3.0.1",
+ "table": "^5.2.3",
+ "text-table": "^0.2.0",
+ "v8-compile-cache": "^2.0.3"
+ },
+ "dependencies": {
+ "import-fresh": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmmirror.com/import-fresh/-/import-fresh-3.3.1.tgz",
+ "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ }
+ },
+ "resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+ "dev": true,
+ "peer": true
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ }
+ }
+ },
"eslint-loader": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-2.2.1.tgz",
@@ -27094,17 +27696,78 @@
}
}
},
+ "eslint-scope": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-5.1.1.tgz",
+ "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^4.1.1"
+ }
+ },
+ "eslint-utils": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmmirror.com/eslint-utils/-/eslint-utils-1.4.3.tgz",
+ "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "eslint-visitor-keys": "^1.1.0"
+ }
+ },
"eslint-visitor-keys": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
"integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
"dev": true
},
+ "espree": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmmirror.com/espree/-/espree-6.2.1.tgz",
+ "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "acorn": "^7.1.1",
+ "acorn-jsx": "^5.2.0",
+ "eslint-visitor-keys": "^1.1.0"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "7.4.1",
+ "resolved": "https://registry.npmmirror.com/acorn/-/acorn-7.4.1.tgz",
+ "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
+ "dev": true,
+ "peer": true
+ }
+ }
+ },
"esprima": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
"integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
"dev": true
+ },
+ "esquery": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmmirror.com/esquery/-/esquery-1.7.0.tgz",
+ "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "estraverse": "^5.1.0"
+ },
+ "dependencies": {
+ "estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "dev": true,
+ "peer": true
+ }
+ }
},
"esrecurse": {
"version": "4.3.0",
@@ -27521,6 +28184,16 @@
"escape-string-regexp": "^1.0.5"
}
},
+ "file-entry-cache": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmmirror.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz",
+ "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "flat-cache": "^2.0.1"
+ }
+ },
"file-loader": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/file-loader/-/file-loader-4.3.0.tgz",
@@ -27552,6 +28225,13 @@
}
}
}
+ },
+ "file-uri-to-path": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
+ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
+ "dev": true,
+ "optional": true
},
"filesize": {
"version": "3.6.1",
@@ -27657,6 +28337,37 @@
"dev": true
}
}
+ },
+ "flat-cache": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/flat-cache/-/flat-cache-2.0.1.tgz",
+ "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "flatted": "^2.0.0",
+ "rimraf": "2.6.3",
+ "write": "1.0.3"
+ },
+ "dependencies": {
+ "rimraf": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-2.6.3.tgz",
+ "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ }
+ }
+ },
+ "flatted": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmmirror.com/flatted/-/flatted-2.0.2.tgz",
+ "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==",
+ "dev": true,
+ "peer": true
},
"flush-write-stream": {
"version": "1.1.1",
@@ -27802,6 +28513,13 @@
"is-callable": "^1.2.7"
}
},
+ "functional-red-black-tree": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
+ "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==",
+ "dev": true,
+ "peer": true
+ },
"functions-have-names": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
@@ -27917,7 +28635,6 @@
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
"dev": true,
- "optional": true,
"requires": {
"is-glob": "^4.0.1"
}
@@ -27927,6 +28644,25 @@
"resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz",
"integrity": "sha512-Iozmtbqv0noj0uDDqoL0zNq0VBEfK2YFoMAZoxJe4cwphvLR+JskfF30QhXHOR4m3KrE6NLRYw+U9MRXvifyig==",
"dev": true
+ },
+ "globals": {
+ "version": "12.4.0",
+ "resolved": "https://registry.npmmirror.com/globals/-/globals-12.4.0.tgz",
+ "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "type-fest": "^0.8.1"
+ },
+ "dependencies": {
+ "type-fest": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.8.1.tgz",
+ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
+ "dev": true,
+ "peer": true
+ }
+ }
},
"globalthis": {
"version": "1.0.4",
@@ -29439,6 +30175,13 @@
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
"dev": true
},
+ "json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
+ "dev": true,
+ "peer": true
+ },
"json-stringify-safe": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
@@ -30705,6 +31448,13 @@
"rimraf": "^2.6.1"
}
},
+ "nan": {
+ "version": "2.25.0",
+ "resolved": "https://registry.npmmirror.com/nan/-/nan-2.25.0.tgz",
+ "integrity": "sha512-0M90Ag7Xn5KMLLZ7zliPWP3rT90P6PN+IzVFS0VqmnPktBk3700xUVv8Ikm9EUaUE5SDWdp/BIxdENzVznpm1g==",
+ "dev": true,
+ "optional": true
+ },
"nanoid": {
"version": "3.3.11",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
@@ -30728,6 +31478,13 @@
"snapdragon": "^0.8.1",
"to-regex": "^3.0.1"
}
+ },
+ "natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmmirror.com/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
+ "dev": true,
+ "peer": true
},
"needle": {
"version": "2.9.1",
@@ -31314,6 +32071,25 @@
"dev": true,
"requires": {
"no-case": "^2.2.0"
+ }
+ },
+ "parent-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "callsites": "^3.0.0"
+ },
+ "dependencies": {
+ "callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "dev": true,
+ "peer": true
+ }
}
},
"parse-asn1": {
@@ -33303,6 +34079,13 @@
"set-function-name": "^2.0.2"
}
},
+ "regexpp": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/regexpp/-/regexpp-2.0.1.tgz",
+ "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==",
+ "dev": true,
+ "peer": true
+ },
"regexpu-core": {
"version": "6.4.0",
"resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.4.0.tgz",
@@ -34176,6 +34959,27 @@
"integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
"dev": true
},
+ "slice-ansi": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/slice-ansi/-/slice-ansi-2.1.0.tgz",
+ "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "ansi-styles": "^3.2.0",
+ "astral-regex": "^1.0.0",
+ "is-fullwidth-code-point": "^2.0.0"
+ },
+ "dependencies": {
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==",
+ "dev": true,
+ "peer": true
+ }
+ }
+ },
"snapdragon": {
"version": "0.8.2",
"resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
@@ -34354,6 +35158,12 @@
"dev": true
}
}
+ },
+ "sortablejs": {
+ "version": "1.15.7",
+ "resolved": "https://registry.npmmirror.com/sortablejs/-/sortablejs-1.15.7.tgz",
+ "integrity": "sha512-Kk8wLQPlS+yi1ZEf48a4+fzHa4yxjC30M/Sr2AnQu+f/MPwvvX9XjZ6OWejiz8crBsLwSq8GHqaxaET7u6ux0A==",
+ "peer": true
},
"source-list-map": {
"version": "2.0.1",
@@ -34723,6 +35533,13 @@
"integrity": "sha512-RsSNPLpq6YUL7QYy44RnPVTn/lcVZtb48Uof3X5JLbF4zD/Gs7ZFDv2HWol+leoQN2mT86LAzSshGfkTlSOpsA==",
"dev": true
},
+ "strip-json-comments": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+ "dev": true,
+ "peer": true
+ },
"stylehacks": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz",
@@ -34895,6 +35712,57 @@
"integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==",
"dev": true
},
+ "table": {
+ "version": "5.4.6",
+ "resolved": "https://registry.npmmirror.com/table/-/table-5.4.6.tgz",
+ "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "ajv": "^6.10.2",
+ "lodash": "^4.17.14",
+ "slice-ansi": "^2.1.0",
+ "string-width": "^3.0.0"
+ },
+ "dependencies": {
+ "emoji-regex": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-7.0.3.tgz",
+ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
+ "dev": true,
+ "peer": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==",
+ "dev": true,
+ "peer": true
+ },
+ "string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ }
+ }
+ },
"tapable": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz",
@@ -35025,6 +35893,13 @@
"dev": true
}
}
+ },
+ "text-table": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
+ "dev": true,
+ "peer": true
},
"thenify": {
"version": "3.3.1",
@@ -35747,6 +36622,13 @@
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
"integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
"dev": true
+ },
+ "v8-compile-cache": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmmirror.com/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz",
+ "integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==",
+ "dev": true,
+ "peer": true
},
"validate-npm-package-license": {
"version": "3.0.4",
@@ -36829,6 +37711,16 @@
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
},
+ "write": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/write/-/write-1.0.3.tgz",
+ "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "mkdirp": "^0.5.1"
+ }
+ },
"ws": {
"version": "7.5.3",
"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.3.tgz",
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/extension/taskinfo/task.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/extension/taskinfo/task.js"
index a2e1f79..bed2931 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/extension/taskinfo/task.js"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/extension/taskinfo/task.js"
@@ -76,7 +76,7 @@
// PalletCode: param
// }
this.http
- .get(`api/Task/WCSTask?task=${task}`)
+ .get("api/Task/WCSTask?task=${task}")
.then((x) => {
if (x.status) {
this.$Message.success('浠诲姟鎵嬪姩涓嬪彂鎴愬姛.');
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/extension/taskinfo/task_hty.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/extension/taskinfo/task_hty.js"
index 24e1d94..1ec48ea 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/extension/taskinfo/task_hty.js"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/extension/taskinfo/task_hty.js"
@@ -1,58 +1,88 @@
-
//姝s鏂囦欢鏄敤鏉ヨ嚜瀹氫箟鎵╁睍涓氬姟浠g爜锛屽彲浠ユ墿灞曚竴浜涜嚜瀹氫箟椤甸潰鎴栬�呴噸鏂伴厤缃敓鎴愮殑浠g爜
-
let extension = {
- components: {
- //鏌ヨ鐣岄潰鎵╁睍缁勪欢
- gridHeader: '',
- gridBody: '',
- gridFooter: '',
- //鏂板缓銆佺紪杈戝脊鍑烘鎵╁睍缁勪欢
- modelHeader: '',
- modelBody: '',
- modelFooter: ''
- },
- tableAction: '', //鎸囧畾鏌愬紶琛ㄧ殑鏉冮檺(杩欓噷濉啓琛ㄥ悕,榛樿涓嶇敤濉啓)
- buttons: { view: [], box: [], detail: [] }, //鎵╁睍鐨勬寜閽�
- methods: {
- //涓嬮潰杩欎簺鏂规硶鍙互淇濈暀涔熷彲浠ュ垹闄�
- onInit() {
- },
- onInited() {
- //妗嗘灦鍒濆鍖栭厤缃悗
- //濡傛灉瑕侀厤缃槑缁嗚〃,鍦ㄦ鏂规硶鎿嶄綔
- //this.detailOptions.columns.forEach(column=>{ });
- },
- searchBefore(param) {
- //鐣岄潰鏌ヨ鍓�,鍙互缁檖aram.wheres娣诲姞鏌ヨ鍙傛暟
- //杩斿洖false锛屽垯涓嶄細鎵ц鏌ヨ
- return true;
- },
- searchAfter(result) {
- //鏌ヨ鍚庯紝result杩斿洖鐨勬煡璇㈡暟鎹�,鍙互鍦ㄦ樉绀哄埌琛ㄦ牸鍓嶅鐞嗚〃鏍肩殑鍊�
- return true;
- },
- addBefore(formData) {
- //鏂板缓淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛紝鍙互缁欑粰琛ㄥ崟璁剧疆鍊硷紝鑷繁杈撳嚭鐪媐ormData鐨勫��
- return true;
- },
- updateBefore(formData) {
- //缂栬緫淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛ㄣ�佸垹闄よ鐨処d
- return true;
- },
- rowClick({ row, column, event }) {
- //鏌ヨ鐣岄潰鐐瑰嚮琛屼簨浠�
- this.$refs.table.$refs.table.toggleRowSelection(row); //鍗曞嚮琛屾椂閫変腑褰撳墠琛�;
- },
- modelOpenAfter(row) {
- //鐐瑰嚮缂栬緫銆佹柊寤烘寜閽脊鍑烘鍚庯紝鍙互鍦ㄦ澶勫啓閫昏緫锛屽锛屼粠鍚庡彴鑾峰彇鏁版嵁
- //(1)鍒ゆ柇鏄紪杈戣繕鏄柊寤烘搷浣滐細 this.currentAction=='Add';
- //(2)缁欏脊鍑烘璁剧疆榛樿鍊�
- //(3)this.editFormFields.瀛楁='xxx';
- //濡傛灉闇�瑕佺粰涓嬫媺妗嗚缃粯璁ゅ�硷紝璇烽亶鍘唗his.editFormOptions鎵惧埌瀛楁閰嶇疆瀵瑰簲data灞炴�х殑key鍊�
- //鐪嬩笉鎳傚氨鎶婅緭鍑虹湅锛歝onsole.log(this.editFormOptions)
+ components: {
+ //鏌ヨ鐣岄潰鎵╁睍缁勪欢
+ gridHeader: '',
+ gridBody: '',
+ gridFooter: '',
+ //鏂板缓銆佺紪杈戝脊鍑烘鎵╁睍缁勪欢
+ modelHeader: '',
+ modelBody: '',
+ modelFooter: ''
+ },
+ tableAction: '', //鎸囧畾鏌愬紶琛ㄧ殑鏉冮檺(杩欓噷濉啓琛ㄥ悕,榛樿涓嶇敤濉啓)
+ buttons: { view: [], box: [], detail: [] }, //鎵╁睍鐨勬寜閽�
+ methods: {
+ //涓嬮潰杩欎簺鏂规硶鍙互淇濈暀涔熷彲浠ュ垹闄�
+ onInit() {
+ // 鍘熸湁鎸夐挳閫昏緫锛歍askHandCancel
+ let TaskHandCancelBtn = this.buttons.find(x => x.value == 'TaskHandCancel');
+ if (TaskHandCancelBtn) {
+ TaskHandCancelBtn.onClick = function() {
+ this.$message.success('鑷畾涔夋寜閽偣鍑讳簨浠�');
+ }
}
+
+ // ========== 鏂板锛氬垹闄ゆ棫鍘嗗彶鏁版嵁鎸夐挳閫昏緫锛堟棤闇�閫夋嫨鏁版嵁锛� ==========
+ let DeleteOldTaskHistoryBtn = this.buttons.find(x => x.value == 'DeleteOldTaskHistory');
+ if (DeleteOldTaskHistoryBtn) {
+ DeleteOldTaskHistoryBtn.onClick = function() {
+ // 绉婚櫎閫夋嫨鏁版嵁鏍¢獙锛岀洿鎺ュ脊鍑虹‘璁ゅ脊绐楋紙鍖归厤浣犵殑寮圭獥椋庢牸锛�
+ this.$confirm(`鏄惁纭畾鍒犻櫎3涓湀鍓嶇殑鎵�鏈夊巻鍙蹭换鍔℃暟鎹紵姝ゆ搷浣滀笉鍙仮澶嶏紒`, "鎻愮ず", {
+ confirmButtonText: "纭", // 鍜屼綘鐨勬墜鍔ㄥ彂閫佹寜閽枃瀛椾竴鑷�
+ cancelButtonText: "鍙栨秷",
+ showClose: true,
+ type: "warning"
+ }).then(() => {
+ this.http
+ .get(`api/Task_Hty/DeleteOldHistory`)
+ .then((x) => {
+ if (x.status) {
+ this.$Message.success('鍘嗗彶鏁版嵁鍒犻櫎鎴愬姛.');
+ this.refresh();
+ } else {
+ return this.$error(x.message);
+ }
+ });
+ })
+ }
+ }
+
+ },
+ onInited() {
+ //妗嗘灦鍒濆鍖栭厤缃悗
+ //濡傛灉瑕侀厤缃槑缁嗚〃,鍦ㄦ鏂规硶鎿嶄綔
+ //this.detailOptions.columns.forEach(column=>{ });
+ },
+ searchBefore(param) {
+ //鐣岄潰鏌ヨ鍓�,鍙互缁檖aram.wheres娣诲姞鏌ヨ鍙傛暟
+ //杩斿洖false锛屽垯涓嶄細鎵ц鏌ヨ
+ return true;
+ },
+ searchAfter(result) {
+ //鏌ヨ鍚庯紝result杩斿洖鐨勬煡璇㈡暟鎹�,鍙互鍦ㄦ樉绀哄埌琛ㄦ牸鍓嶅鐞嗚〃鏍肩殑鍊�
+ return true;
+ },
+ addBefore(formData) {
+ //鏂板缓淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛紝鍙互缁欑粰琛ㄥ崟璁剧疆鍊硷紝鑷繁杈撳嚭鐪媐ormData鐨勫��
+ return true;
+ },
+ updateBefore(formData) {
+ //缂栬緫淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛ㄣ�佸垹闄よ鐨処d
+ return true;
+ },
+ rowClick({ row, column, event }) {
+ //鏌ヨ鐣岄潰鐐瑰嚮琛屼簨浠�
+ this.$refs.table.$refs.table.toggleRowSelection(row); //鍗曞嚮琛屾椂閫変腑褰撳墠琛�;
+ },
+ modelOpenAfter(row) {
+ //鐐瑰嚮缂栬緫銆佹柊寤烘寜閽脊鍑烘鍚庯紝鍙互鍦ㄦ澶勫啓閫昏緫锛屽锛屼粠鍚庡彴鑾峰彇鏁版嵁
+ //(1)鍒ゆ柇鏄紪杈戣繕鏄柊寤烘搷浣滐細 this.currentAction=='Add';
+ //(2)缁欏脊鍑烘璁剧疆榛樿鍊�
+ //(3)this.editFormFields.瀛楁='xxx';
+ //濡傛灉闇�瑕佺粰涓嬫媺妗嗚缃粯璁ゅ�硷紝璇烽亶鍘唗his.editFormOptions鎵惧埌瀛楁閰嶇疆瀵瑰簲data灞炴�х殑key鍊�
+ //鐪嬩笉鎳傚氨鎶婅緭鍑虹湅锛歝onsole.log(this.editFormOptions)
}
- };
- export default extension;
-
\ No newline at end of file
+ }
+};
+export default extension;
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/.wsuo" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/.wsuo"
index d69b94c..d2c0dbd 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/.wsuo"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/.wsuo"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/slnx.sqlite" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/slnx.sqlite"
index 25a9394..6333f13 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/slnx.sqlite"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/slnx.sqlite"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEAWCS_Tasks/WIDESEAWMS_Tasks.csproj" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEAWCS_Tasks/WIDESEAWMS_Tasks.csproj"
new file mode 100644
index 0000000..6d77aae
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEAWCS_Tasks/WIDESEAWMS_Tasks.csproj"
@@ -0,0 +1,14 @@
+锘�<Project Sdk="Microsoft.NET.Sdk">
+
+ <PropertyGroup>
+ <TargetFramework>net6.0</TargetFramework>
+ <ImplicitUsings>enable</ImplicitUsings>
+ <Nullable>enable</Nullable>
+ </PropertyGroup>
+
+ <ItemGroup>
+ <ProjectReference Include="..\WIDESEA_ITaskInfoService\WIDESEA_ITaskInfoService.csproj" />
+ <ProjectReference Include="..\WIDESEA_TaskInfoService\WIDESEA_TaskInfoService.csproj" />
+ </ItemGroup>
+
+</Project>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_HomeService/HomeService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_HomeService/HomeService.cs"
index b2607b7..9de290f 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_HomeService/HomeService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_HomeService/HomeService.cs"
@@ -26,29 +26,29 @@
/// <returns></returns>
public WebResponseContent GetDt_TaskHty()
{
- var response = new WebResponseContent();
+ WebResponseContent response = new WebResponseContent();
try
{
// 鑾峰彇褰撳墠鏃ユ湡鏃堕棿
- var now = DateTime.Now;
+ DateTime now = DateTime.Now;
// 鑾峰彇浠婃棩鏃ユ湡鑼冨洿
- var todayStart = now.Date;
- var todayEnd = now.Date.AddDays(1);
+ DateTime todayStart = now.Date;
+ DateTime todayEnd = now.Date.AddDays(1);
// 鑾峰彇鏈懆鏃ユ湡鑼冨洿
// 璁$畻鏈懆涓�鐨勬棩鏈燂細濡傛灉浠婂ぉ鏄懆鏃�(0)锛屽噺鍘�6澶╋紱鍚﹀垯鍑忓幓褰撳墠鏄熸湡鍑犲噺1澶�
- var daysToSubtract = (int)now.DayOfWeek == 0 ? 6 : (int)now.DayOfWeek - 1;
- var weekStart = now.Date.AddDays(-daysToSubtract);
- var weekEnd = weekStart.AddDays(7);
+ int daysToSubtract = (int)now.DayOfWeek == 0 ? 6 : (int)now.DayOfWeek - 1;
+ DateTime weekStart = now.Date.AddDays(-daysToSubtract);
+ DateTime weekEnd = weekStart.AddDays(7);
// 鑾峰彇鏈湀鏃ユ湡鑼冨洿
- var monthStart = new DateTime(now.Year, now.Month, 1);
- var monthEnd = monthStart.AddMonths(1);
+ DateTime monthStart = new DateTime(now.Year, now.Month, 1);
+ DateTime monthEnd = monthStart.AddMonths(1);
// 鑾峰彇鎵�鏈夊簱瀛樻暟鎹紝鐢ㄤ簬鍚庣画缁熻
- var allStockData = Repository.Db.Queryable<Dt_StockInfo>().ToList();
- var allTask_HtyData = Repository.Db.Queryable<Dt_Task_Hty>().ToList();
+ List<Dt_StockInfo> allStockData = Repository.Db.Queryable<Dt_StockInfo>().ToList();
+ List<Dt_Task_Hty> allTask_HtyData = BaseDal.QueryData();
// 璋冭瘯淇℃伅锛氭墦鍗版棩鏈熻寖鍥村拰搴撳瓨鏁版嵁鎬绘暟
var debugInfo = new
{
@@ -62,40 +62,40 @@
};
- var toDt_task_hty_in = allTask_HtyData.Count(it => it.TaskStatus == (int)TaskInStatusEnum.InFinish);//鑾峰彇鍑哄叆搴撳瓨鍘嗗彶浠诲姟璁板綍
- var toDt_task_hty_on = allTask_HtyData.Count(it => it.TaskStatus == (int)TaskOutStatusEnum.OutFinish);
+ int toDt_task_hty_in = allTask_HtyData.Count(it => it.TaskStatus == (int)TaskInStatusEnum.InFinish);//鑾峰彇鍑哄叆搴撳瓨鍘嗗彶浠诲姟璁板綍
+ int toDt_task_hty_on = allTask_HtyData.Count(it => it.TaskStatus == (int)TaskOutStatusEnum.OutFinish);
// 浠婃棩鍏ュ簱鏁伴噺锛氫粖澶╁垱寤轰笖搴撳瓨鐘舵�佷负鍏ュ簱瀹屾垚鐨勮褰曟暟閲�
- var todayInbound = allTask_HtyData.Count(it =>
+ int todayInbound = allTask_HtyData.Count(it =>
it.CreateDate >= todayStart && it.CreateDate < todayEnd &&
it.TaskStatus == (int)TaskInStatusEnum.InFinish);
// 浠婃棩鍑哄簱鏁伴噺锛氫粖澶╁垱寤轰笖搴撳瓨鐘舵�佷负鍑哄簱瀹屾垚鐨勮褰曟暟閲�
- var todayOutbound = allTask_HtyData.Count(it =>
+ int todayOutbound = allTask_HtyData.Count(it =>
it.CreateDate >= todayStart && it.CreateDate < todayEnd &&
it.TaskStatus == (int)TaskOutStatusEnum.OutFinish);
// 鏈懆鍏ュ簱鏁伴噺锛氭湰鍛ㄥ垱寤轰笖搴撳瓨鐘舵�佷负鍏ュ簱瀹屾垚鐨勮褰曟暟閲�
- var weekInbound = allTask_HtyData.Count(it =>
+ int weekInbound = allTask_HtyData.Count(it =>
it.CreateDate >= weekStart && it.CreateDate < weekEnd &&
it.TaskStatus == (int)TaskInStatusEnum.InFinish);
// 鏈懆鍑哄簱鏁伴噺锛氭湰鍛ㄥ垱寤轰笖浠诲姟鐘舵�佷负鍑哄簱瀹屾垚鐨勮褰曟暟閲�
- var weekOutbound = allTask_HtyData.Count(it =>
+ int weekOutbound = allTask_HtyData.Count(it =>
it.CreateDate >= weekStart && it.CreateDate < weekEnd &&
it.TaskStatus == (int)TaskOutStatusEnum.OutFinish);
// 鏈湀鍏ュ簱鏁伴噺锛氭湰鏈堝垱寤轰笖搴撳瓨鐘舵�佷负鍏ュ簱瀹屾垚鐨勮褰曟暟閲�
- var monthInbound = allTask_HtyData.Count(it =>
+ int monthInbound = allTask_HtyData.Count(it =>
it.CreateDate >= monthStart && it.CreateDate < monthEnd &&
it.TaskStatus == (int)TaskInStatusEnum.InFinish);
// 鏈湀鍑哄簱鏁伴噺锛氭湰鏈堝垱寤轰笖浠诲姟鐘舵�佷负鍑哄簱瀹屾垚鐨勮褰曟暟閲�
- var monthOutbound = allTask_HtyData.Count(it =>
+ int monthOutbound = allTask_HtyData.Count(it =>
it.CreateDate >= monthStart && it.CreateDate < monthEnd &&
it.TaskStatus == (int)TaskOutStatusEnum.OutFinish);
// 寰呭鐞嗚鍗曟暟閲忥細鐢变簬鍙湁Dt_StockInfo琛紝鏆傛椂杩斿洖0
- var pendingOrders = 0;
+ int pendingOrders = 0;
// 搴撳瓨鐘舵�佸垎甯冿細缁熻涓嶅悓搴撳瓨鐘舵�佺殑鏁伴噺
var stockStatusDistribution = allTask_HtyData
@@ -114,22 +114,22 @@
// 璐т綅鍒╃敤鐜囷細浠庢暟鎹簱鑾峰彇璐т綅淇℃伅
// 鑾峰彇鎵�鏈夎揣浣�
- var allLocations = Repository.Db.Queryable<Dt_LocationInfo>().ToList();
- var totalLocations = allLocations.Count;
+ List<Dt_LocationInfo> allLocations = Repository.Db.Queryable<Dt_LocationInfo>().ToList();
+ int totalLocations = allLocations.Count;
// 缁熻涓嶅悓鐘舵�佺殑璐т綅鏁�
- var freeLocations = allLocations.Count(it => it.LocationStatus == (int)LocationStatusEnum.Free);
- var inStockLocations = allLocations.Count(it => it.LocationStatus == (int)LocationStatusEnum.InStock);
- var inStockLockLocations = allLocations.Count(it => it.LocationStatus == (int)LocationStatusEnum.InStockLock);
- var lockLocations = allLocations.Count(it => it.LocationStatus == (int)LocationStatusEnum.Lock);
- var freeLockLocations = allLocations.Count(it => it.LocationStatus == (int)LocationStatusEnum.FreeLock);
- var palletLockLocations = allLocations.Count(it => it.LocationStatus == (int)LocationStatusEnum.PalletLock);
+ int freeLocations = allLocations.Count(it => it.LocationStatus == (int)LocationStatusEnum.Free);
+ int inStockLocations = allLocations.Count(it => it.LocationStatus == (int)LocationStatusEnum.InStock);
+ int inStockLockLocations = allLocations.Count(it => it.LocationStatus == (int)LocationStatusEnum.InStockLock);
+ int lockLocations = allLocations.Count(it => it.LocationStatus == (int)LocationStatusEnum.Lock);
+ int freeLockLocations = allLocations.Count(it => it.LocationStatus == (int)LocationStatusEnum.FreeLock);
+ int palletLockLocations = allLocations.Count(it => it.LocationStatus == (int)LocationStatusEnum.PalletLock);
// 璁$畻宸蹭娇鐢ㄥ拰鏈娇鐢ㄧ殑璐т綅鏁�
// 宸蹭娇鐢細鏈夎揣銆佹湁璐ч攣瀹�
- var usedLocations = inStockLocations + inStockLockLocations;
+ int usedLocations = inStockLocations + inStockLockLocations;
// 鏈娇鐢細绌洪棽銆佺┖闂查攣瀹�
- var unusedLocations = freeLocations + freeLockLocations;
+ int unusedLocations = freeLocations + freeLockLocations;
// 搴撳瓨鍙樺寲瓒嬪娍锛氭ā鎷熸渶杩�7澶╃殑鏁版嵁
// 瀹為檯搴旀牴鎹暟鎹簱涓殑鍘嗗彶璁板綍鐢熸垚
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITask_HtyService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITask_HtyService.cs"
index 8bd7243..1b61ead 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITask_HtyService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITask_HtyService.cs"
@@ -1,4 +1,4 @@
-锘縰sing SqlSugar;
+using SqlSugar;
using System;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
@@ -15,4 +15,16 @@
public interface ITask_HtyService : IService<Dt_Task_Hty>
{
+ /// <summary>
+ /// 鍒犻櫎鎸囧畾鏃ユ湡涔嬪墠鐨勫巻鍙蹭换鍔℃暟鎹�
+ /// </summary>
+ /// <param name="keepMonths">淇濈暀鐨勬湀鏁帮紝榛樿涓�3涓湀锛堟湰鏈�+鍚庝袱涓湀锛�</param>
+ /// <returns>鍒犻櫎鐨勮褰曟暟</returns>
+ int DeleteOldTaskHistory(int keepMonths = 3);
+
+ /// <summary>
+ /// 杈撳嚭30澶╁墠鏁版嵁
+ /// </summary>
+ /// <param name="task"></param>
+ public void Task_Hty_Job();
}
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Inbound.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Inbound.cs"
index 15a8884..4e186ad 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Inbound.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Inbound.cs"
@@ -227,7 +227,7 @@
location.LocationStatus = (int)LocationStatusEnum.InStockLock;
- //鐢熸垚绉诲姩浠诲姟
+ //鐢熸垚浠诲姟
Dt_Task dt_Task = new()
{
PalletCode = palletInfo.palletCode,
@@ -271,7 +271,7 @@
else
{
_unitOfWorkManage.RollbackTran(); //鍥炴粴浜嬪姟
- return MESresponse($"涓嬪彂鍑哄簱澶辫触锛屽師鍥狅細{respon.Message}锛�", false);
+ return MESresponse($"涓嬪彂鍏ュ簱澶辫触锛屽師鍥狅細{respon.Message}锛�", false);
}
}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs"
index b167a6d..ecad134 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs"
@@ -80,7 +80,7 @@
_roadwayInforepository = roadwayInforepository;
_dt_ApiInfoService = dt_ApiInfoService;
_locationStatusChangeRecordService = locationStatusChangeRecordService;
- _stationMangerService=stationMangerService;
+ _stationMangerService = stationMangerService;
}
public int GetTaskNum(string sequenceName)
{
@@ -127,7 +127,7 @@
return WebResponseContent.Instance.Error(ex.Message);
}
}
-
+
/// <summary>
@@ -158,11 +158,11 @@
//鑾峰彇鍒版繁搴撲綅缂栧彿
Dt_LocationInfo DeepLocation = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == Locatask);
- if(DeepLocation == null) return content.Error($"鏈壘鍒拌璐т綅淇℃伅,璐т綅缂栧彿:{Locatask}");
+ if (DeepLocation == null) return content.Error($"鏈壘鍒拌璐т綅淇℃伅,璐т綅缂栧彿:{Locatask}");
//杩涜鑾峰彇娴呭簱浣嶇紪鍙�
int locrow = DeepLocation.Row == 1 ? 2 : 3;
- Dt_LocationInfo ShallowLocation = _basicService.LocationInfoService.Repository.QueryFirst(x =>x.Row== locrow && x.Layer== DeepLocation.Layer && x.Column== DeepLocation.Column && x.RoadwayNo== DeepLocation.RoadwayNo);
+ Dt_LocationInfo ShallowLocation = _basicService.LocationInfoService.Repository.QueryFirst(x => x.Row == locrow && x.Layer == DeepLocation.Layer && x.Column == DeepLocation.Column && x.RoadwayNo == DeepLocation.RoadwayNo);
if (ShallowLocation == null) return content.Error($"鏈壘鍒拌揣浣嶇紪鍙�:{Locatask}鐨勬祬璐т綅");
if (ShallowLocation.LocationStatus == (int)LocationStatusEnum.Free)
@@ -294,7 +294,7 @@
return webResponse.Error($"绉诲簱浠诲姟瀹屾垚澶辫触锛屼换鍔d锛歿task.TaskNum}");
throw;
}
-
+
}
/// <summary>
@@ -371,9 +371,9 @@
stockInfo.StockStatus = StockStatusEmun.鍑哄簱瀹屾垚.ObjToInt();
-
+
int beforeStatus = locationInfo.LocationStatus;
- locationInfo.LocationStatus =(int)LocationStatusEnum.Free;
+ locationInfo.LocationStatus = (int)LocationStatusEnum.Free;
task.TaskStatus = TaskOutStatusEnum.OutFinish.ObjToInt();
_unitOfWorkManage.BeginTran();
@@ -401,7 +401,7 @@
return webResponse.Error($"鍑哄簱浠诲姟瀹屾垚澶辫触锛屼换鍔d锛歿task.TaskNum},閿欒鍘熷洜锛歿ex.Message}");
throw;
}
-
+
}
@@ -449,24 +449,24 @@
string WCSReceiveTaskAPI = ConfigsAPIInfo.ApiAddress + ConfigsAPIInfo.ApiName;
if (WCSReceiveTaskAPI == null)
{
- return webResponse.Error($"鍑哄簱澶辫触锛屾湭閰嶇疆MES绉诲簱瀹屾垚鍙嶉鎺ュ彛");
+ return webResponse.Error($"鍑哄簱澶辫触锛屾湭閰嶇疆MES绉诲簱瀹屾垚鍙嶉鎺ュ彛");
}
var respon = HttpHelper.Post(WCSReceiveTaskAPI, JsonConvert.SerializeObject(transferRequest));
if (respon != null)
{
- var response = JsonConvert.DeserializeObject<ApiResponse<object>>(respon);
- if (response.Success)
- {
- return webResponse.OK();
- }
- else
- {
- return webResponse.Error($"璋冨彇鎺ュ彛澶辫触锛屽弽棣堝弬鏁板師鍥狅細{response.Message}");
- }
+ var response = JsonConvert.DeserializeObject<ApiResponse<object>>(respon);
+ if (response.Success)
+ {
+ return webResponse.OK();
+ }
+ else
+ {
+ return webResponse.Error($"璋冨彇鎺ュ彛澶辫触锛屽弽棣堝弬鏁板師鍥狅細{response.Message}");
+ }
}
else
{
- return webResponse.Error($"璋冨彇鎺ュ彛澶辫触锛屽弽棣堝弬鏁颁负绌�");
+ return webResponse.Error($"璋冨彇鎺ュ彛澶辫触锛屽弽棣堝弬鏁颁负绌�");
}
return webResponse.OK();
@@ -500,16 +500,16 @@
locationCode = dt_Task.TargetAddress;
}
TaskNotification transferRequest = new TaskNotification()
- {
- //涓氬姟id锛屼换鍔d鍚庣画杩涜鏇存敼
- taskId = dt_Task.MEStaskId, //浠诲姟id
- businessId = dt_Task.MESbusinessId, //涓氬姟id
- palletCode = dt_Task.PalletCode,
- subPalletCode = dt_Task.MESsubPalletCode,//瀛愭墭鐩樼紪鐮�
- locationCode = locationCode,
- errorStatus = "NORMAL",
- errorInfo = "",
- };
+ {
+ //涓氬姟id锛屼换鍔d鍚庣画杩涜鏇存敼
+ taskId = dt_Task.MEStaskId, //浠诲姟id
+ businessId = dt_Task.MESbusinessId, //涓氬姟id
+ palletCode = dt_Task.PalletCode,
+ subPalletCode = dt_Task.MESsubPalletCode,//瀛愭墭鐩樼紪鐮�
+ locationCode = locationCode,
+ errorStatus = "NORMAL",
+ errorInfo = "",
+ };
//鑾峰彇鎺ュ彛杩涜璋冨彇
var ConfigsAPIInfo = _dt_ApiInfoService.GetConfigsByAPIInfo(CateGoryConst.CONFIG_MES_IPAddress, SysConfigConst.MESTaskFeedback); //鑾峰彇鍒皐cs鍏ㄩ儴绫诲瀷鐨勬帴鍙�
@@ -518,12 +518,12 @@
{
return webResponse.Error($"浠诲姟鍙嶉MES澶辫触锛屾湭閰嶇疆MES浠诲姟瀹屾垚鍙嶉鎺ュ彛");
}
-
+
// 娣诲姞璋冭瘯淇℃伅
string requestJson = JsonConvert.SerializeObject(transferRequest);
//Console.WriteLine($"MES鍙嶉鎺ュ彛URL: {WCSReceiveTaskAPI}");
//Console.WriteLine($"MES鍙嶉璇锋眰鏁版嵁: {requestJson}");
-
+
// 浣跨敤淇鍚庣殑PostSync鏂规硶锛堝凡鍦≒ostSync涓缃粯璁よ姹傚ご锛�
var respon = HttpHelper.Post(WCSReceiveTaskAPI, requestJson);
if (respon != null)
@@ -550,7 +550,7 @@
}
}
- public ApiResponse<object> MESresponse(string Message, bool Success,int Code)
+ public ApiResponse<object> MESresponse(string Message, bool Success, int Code)
{
ApiResponse<object> apiResponse = new ApiResponse<object>();
apiResponse.Message = Message;
@@ -570,7 +570,7 @@
try
{
// 鏌ユ壘浠诲姟
- Dt_Task task = BaseDal.QueryFirst(x => x.PalletCode == palletTaskDTO && (x.TaskStatus == TaskOutStatusEnum.OutNew.ObjToInt()|| x.TaskStatus == TaskRelocationStatusEnum.RelocationNew.ObjToInt()|| x.TaskStatus == TaskInStatusEnum.Line_InExecuting.ObjToInt()));
+ Dt_Task task = BaseDal.QueryFirst(x => x.PalletCode == palletTaskDTO && (x.TaskStatus == TaskOutStatusEnum.OutNew.ObjToInt() || x.TaskStatus == TaskRelocationStatusEnum.RelocationNew.ObjToInt() || x.TaskStatus == TaskInStatusEnum.Line_InExecuting.ObjToInt()));
if (task == null)
{
return MESresponse($"鏈壘鍒拌揣浣嶄俊鎭�,鏉$爜锛歿palletTaskDTO}", false, 0);
@@ -607,7 +607,7 @@
.SetColumns(x => x.StockStatus == StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt())
.Where(x => x.PalletCode == task.PalletCode)
.ExecuteCommand();
- if (stockmsseg<=0)
+ if (stockmsseg <= 0)
{
return MESresponse($"鏃犲簱瀛樹俊鎭�", false, 0);
}
@@ -634,7 +634,7 @@
stockmsseg = _stockRepository.DeleteData(stockInfo).ObjToInt();
taskmsseg = BaseDal.DeleteData(task);
}
- BaseDal.DeleteAndMoveIntoHty(task,OperateTypeEnum.浜哄伐鍒犻櫎);
+ BaseDal.DeleteAndMoveIntoHty(task, OperateTypeEnum.浜哄伐鍒犻櫎);
//鑾峰彇鎺ュ彛杩涜璋冨彇
var ConfigsAPIInfo = _dt_ApiInfoService.GetConfigsByAPIInfo(CateGoryConst.CONFIG_WCS_IPAddress, SysConfigConst.WCSCancelinventory); //鑾峰彇鍒皐cs鍏ㄩ儴绫诲瀷鐨勬帴鍙�
string WCSReceiveTaskAPI = ConfigsAPIInfo.ApiAddress + ConfigsAPIInfo.ApiName;
@@ -660,10 +660,10 @@
return MESresponse($"WCS璋冨彇鎺ュ彛澶辫触锛屽弽棣堝弬鏁板師鍥狅細{response.Message}", false, 0);
}
if (stockmsseg <= 0 && locationmsseg <= 0 && taskmsseg)
- {
+ {
_unitOfWorkManage.RollbackTran();
return MESresponse($"浠诲姟鍙栨秷澶辫触", false, 0);
- }
+ }
@@ -702,7 +702,7 @@
catch (Exception ex)
{
_unitOfWorkManage.RollbackTran();
- return MESresponse($"鍙栨秷浠诲姟澶辫触锛屽師鍥狅細{ex.Message}", false, 0);
+ return MESresponse($"鍙栨秷浠诲姟澶辫触锛屽師鍥狅細{ex.Message}", false, 0);
}
}
@@ -738,7 +738,7 @@
int res = _locationInfoRepository.AddData(dt_LocationInfoList);
if (res <= 0)
{
- return MESresponse($"鍒涘缓璐т綅澶辫触",false);
+ return MESresponse($"鍒涘缓璐т綅澶辫触", false);
}
return MESresponse($"", true);
}
@@ -771,7 +771,7 @@
.ExecuteCommand() > 0;
if (!res)
{
- return MESresponse($"淇敼璐т綅澶辫触",false);
+ return MESresponse($"淇敼璐т綅澶辫触", false);
}
return MESresponse($"", true);
}
@@ -788,7 +788,7 @@
int res = _locationInfoRepository.Db.Deleteable<Dt_LocationInfo>().Where(x => locationCode.Contains(x.LocationCode)).ExecuteCommand();
if (res <= 0)
{
- return MESresponse($"鍒犻櫎璐т綅澶辫触",false);
+ return MESresponse($"鍒犻櫎璐т綅澶辫触", false);
}
return MESresponse($"", true);
}
@@ -812,7 +812,7 @@
try
{
- Dt_StockInfo dt_StockInfo = _stockRepository.QueryFirst(x => x.LocationCode.StartsWith("SC01") && x.StockStatus == 6);
+ Dt_StockInfo dt_StockInfo = _stockRepository.QueryFirst(x => x.LocationCode.StartsWith("SC01") && x.StockStatus == 6);
int result = GetLastPart(dt_StockInfo.LocationCode).ObjToInt(); // 杩斿洖 "C03"
List<Dt_Task> dt_s = new List<Dt_Task>();
@@ -896,7 +896,7 @@
{
// 鏌ユ壘浠诲姟
Dt_Task task = BaseDal.QueryFirst(x => x.PalletCode == palletTaskDTO);
-
+
if (task == null)
{
return webResponse.Error($"鏈壘鍒版墭鐩樼紪鐮佷负銆恵palletTaskDTO}銆戠殑浠诲姟淇℃伅");
@@ -939,7 +939,7 @@
// if (locationmsseg1 == null) { webResponse.Error("鏈壘鍒拌揣浣嶄俊鎭�"); }
// locationmsseg1.LocationStatus = LocationStatusEnum.InStock.ObjToInt();
// location1 = _locationInfoRepository.UpdateData(locationmsseg1);
-
+
// }
//}
//else
@@ -1031,7 +1031,7 @@
//鎵嬪姩涓嬪彂浠诲姟鍒癢CS
public WebResponseContent WCSTask(int task)
{
- List<Dt_Task> AddtaskList = BaseDal.QueryData(x=>x.TaskNum == task);
+ List<Dt_Task> AddtaskList = BaseDal.QueryData(x => x.TaskNum == task);
if (!AddtaskList.Any())
{
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/Task_HtyService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/Task_HtyService.cs"
index 73bd716..c88b31e 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/Task_HtyService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/Task_HtyService.cs"
@@ -10,4 +10,46 @@
public Task_HtyService(IRepository<Dt_Task_Hty> BaseDal) : base(BaseDal)
{
}
+
+ /// <summary>
+ /// 鍒犻櫎鎸囧畾鏃ユ湡涔嬪墠鐨勫巻鍙蹭换鍔℃暟鎹�
+ /// </summary>
+ /// <param name="keepMonths">淇濈暀鐨勬湀鏁帮紝榛樿涓�3涓湀锛堟湰鏈�+鍚庝袱涓湀锛�</param>
+ /// <returns>鍒犻櫎鐨勮褰曟暟</returns>
+ public int DeleteOldTaskHistory(int keepMonths = 3)
+ {
+ try
+ {
+ // 璁$畻淇濈暀鏃ユ湡锛氬綋鍓嶆棩鏈熷噺鍘籯eepMonths涓湀
+ DateTime keepDate = DateTime.Now.AddMonths(-keepMonths);
+
+ // 鍏堟煡璇㈠嚭瑕佸垹闄ょ殑鏁版嵁
+ List<Dt_Task_Hty> tasksToDelete = BaseDal.QueryData().Where(x => x.CreateDate < keepDate).ToList();
+
+ // 濡傛灉娌℃湁瑕佸垹闄ょ殑鏁版嵁锛岀洿鎺ヨ繑鍥�0
+ if (tasksToDelete.Count == 0)
+ {
+ return 0;
+ }
+
+ // 鍒犻櫎鏌ヨ鍑虹殑鍘嗗彶璁板綍
+ bool result = BaseDal.DeleteData(tasksToDelete);
+ return result ? tasksToDelete.Count : 0;
+ }
+ catch (Exception ex)
+ {
+ // 璁板綍寮傚父鏃ュ織
+ //Console.WriteLine($"鍒犻櫎鍘嗗彶浠诲姟璁板綍澶辫触: {ex.Message}");
+ return 0;
+ }
+ }
+
+ /// <summary>
+ /// 瀹氭椂浠诲姟璋冪敤鐨勫巻鍙蹭换鍔″垹闄ゆ柟娉�
+ /// </summary>
+ public void Task_Hty_Job()
+ {
+ // 鍒犻櫎3涓湀涔嬪墠鐨勫巻鍙蹭换鍔℃暟鎹紝淇濈暀鏈湀鍜屽悗涓や釜鏈堢殑鏁版嵁
+ DeleteOldTaskHistory(3);
+ }
}
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/Task_HtyController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/Task_HtyController.cs"
index 16f12a7..43e29e9 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/Task_HtyController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/Task_HtyController.cs"
@@ -1,4 +1,4 @@
-锘縰sing Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using WIDESEA_Core;
@@ -19,5 +19,25 @@
public Task_HtyController(ITask_HtyService service) : base(service)
{
}
+
+ /// <summary>
+ /// 鍒犻櫎鏃х殑鍘嗗彶浠诲姟鏁版嵁
+ /// </summary>
+ /// <param name="keepMonths">淇濈暀鐨勬湀鏁帮紝榛樿涓�3涓湀锛堟湰鏈�+鍚庝袱涓湀锛�</param>
+ /// <returns>鍒犻櫎鐨勮褰曟暟</returns>
+ [HttpGet, Route("DeleteOldHistory")]
+ [AllowAnonymous]
+ public IActionResult DeleteOldHistory(int keepMonths = 3)
+ {
+ try
+ {
+ int result = Service.DeleteOldTaskHistory(keepMonths);
+ return Ok(new { Success = true, Message = "鍘嗗彶浠诲姟鍒犻櫎鎴愬姛", DeletedCount = result });
+ }
+ catch (Exception ex)
+ {
+ return Ok(new { Success = false, Message = "鍘嗗彶浠诲姟鍒犻櫎澶辫触: " + ex.Message });
+ }
+ }
}
}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/ToMes.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/ToMes.cs"
new file mode 100644
index 0000000..bd20bf4
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/ToMes.cs"
@@ -0,0 +1,168 @@
+using Autofac.Core;
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Mvc;
+using WIDESEA_Common.Log;
+using WIDESEA_Core;
+using WIDESEA_Core.BaseController;
+using WIDESEA_DTO.ToMes;
+using WIDESEA_ITaskInfoService;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_WMSServer.Controllers
+{
+
+ /// <summary>
+ /// 涓婃父鎺ュ彛
+ /// </summary>
+ [Route("v1/pallet/rmsPalletTask")]
+ [ApiController]
+ public class ToMes : ApiBaseController<ITaskService, Dt_Task>
+ {
+ public ToMes(ITaskService service) : base(service)
+ {
+ }
+ /// <summary>
+ /// MES涓嬪彂鍑哄簱浠诲姟
+ /// </summary>
+ /// <param name="taskNum"></param>
+ /// <returns></returns>
+ [HttpPost, HttpGet, Route("sendExTask"), AllowAnonymous]
+ public ApiResponse<object> sendExTask([FromBody] InOutboundTaskReceived outbound)
+ {
+ ApiResponse<object> api = Service.sendExTask(outbound);
+ if (api.Success == false)
+ {
+ WriteLog.Write_Log("MES涓嬪彂浠诲姟", "MES涓嬪彂鍑哄簱浠诲姟", $"浠诲姟鐢熸垚澶辫触鍘熷洜{api.Message}", outbound);
+ }
+ else
+ {
+ WriteLog.Write_Log("MES涓嬪彂浠诲姟", "MES涓嬪彂鍑哄簱浠诲姟", $"浠诲姟鐢熸垚鎴愬姛", outbound);
+ }
+ return api;
+ }
+
+ /// <summary>
+ /// MES涓嬪彂鍏ュ簱浠诲姟
+ /// </summary>
+ /// <param name="taskNum"></param>
+ /// <returns></returns>
+ [HttpPost, HttpGet, Route("sendEnTask"), AllowAnonymous]
+ public ApiResponse<object> sendEnTask([FromBody] InOutboundTaskReceived outbound)
+ {
+ ApiResponse<object> api = Service.sendEnTask(outbound);
+ if (api.Success == false)
+ {
+ WriteLog.Write_Log("MES涓嬪彂浠诲姟", "MES涓嬪彂鍏ュ簱浠诲姟", $"浠诲姟鐢熸垚澶辫触鍘熷洜{api.Message}", outbound);
+
+ }
+ else
+ {
+ WriteLog.Write_Log("MES涓嬪彂浠诲姟", "MES涓嬪彂鍏ュ簱浠诲姟", $"浠诲姟鐢熸垚鎴愬姛", outbound);
+
+ }
+ return api;
+ }
+
+
+ /// <summary>
+ /// 鏂板缓璐т綅
+ /// </summary>
+ [HttpPost, HttpGet, Route("createLocation"), AllowAnonymous]
+ public ApiResponse<object> createLocation([FromBody] List<LocationInfoDto> locationInfo)
+ {
+ return Service.createLocation(locationInfo);
+ }
+
+ /// <summary>
+ /// 淇敼璐т綅
+ /// </summary>
+ [HttpPost, HttpGet, Route("updateLocation"), AllowAnonymous]
+ public ApiResponse<object> updateLocation([FromBody] LocationInfoDto locationInfo)
+ {
+ return Service.updateLocation(locationInfo);
+ }
+
+ /// <summary>
+ /// 鍒犻櫎璐т綅
+ /// </summary>
+ [HttpPost, HttpGet, Route("deleteLocation"), AllowAnonymous]
+ public ApiResponse<object> deleteLocation([FromBody] List<string> locationCode)
+ {
+ return Service.deleteLocation(locationCode);
+ }
+
+ /// <summary>
+ /// MES涓嬪彂搴撲綅璋冩嫧浠诲姟
+ /// </summary>
+ /// <param name="allocationTask">搴撲綅璋冩嫧浠诲姟淇℃伅</param>
+ /// <returns></returns>
+ [HttpPost, Route("onHandMove"), AllowAnonymous]
+ public ApiResponse<object> sendAllocationTask([FromBody] AllocationTaskReceived allocationTask)
+ {
+ return Service.sendAllocationTask(allocationTask);
+ }
+
+
+
+
+
+
+
+ /// <summary>
+ /// 鎵樼洏浠诲姟鏁版嵁浼犺緭瀵硅薄
+ /// 鐢ㄤ簬鍐呴儴涓氬姟鏁版嵁浼犺緭
+ /// </summary>
+ public class PalletTaskDTO
+ {
+ /// <summary>
+ /// 涓氬姟ID
+ /// </summary>
+ public string BusinessId { get; set; }
+
+ /// <summary>
+ /// 浠诲姟ID
+ /// </summary>
+ public string TaskId { get; set; }
+
+ /// <summary>
+ /// 鎵樼洏缂栫爜
+ /// </summary>
+ public string PalletCode { get; set; }
+
+ }
+
+
+ /// <summary>
+ /// MES鍙栨秷浠诲姟鎺ュ彛
+ /// </summary>
+ /// <param name="taskNum">浠诲姟鍙�</param>
+ /// <returns></returns>
+ [HttpPost, Route("cancelTask"), AllowAnonymous]
+ public ApiResponse<object> Cancelinventory([FromBody] PalletTaskDTO palletTaskDTO)
+ {
+ return Service.Cancelinventory(palletTaskDTO.PalletCode);
+ }
+
+ /// <summary>
+ /// MES鎵嬪姩浠诲姟瀹屾垚
+ /// </summary>
+ /// <param name="taskNum"></param>
+ /// <returns></returns>
+ [HttpPost, Route("mockComplete"), AllowAnonymous]
+ public WebResponseContent ManualTaskCompleted([FromBody] PalletTaskDTO palletTaskDTO)
+ {
+ return Service.ManualTaskCompleted(palletTaskDTO.PalletCode);
+ }
+
+ /// <summary>
+ /// MES浠诲姟缁撴灉鍙嶉鎺ュ彛
+ /// </summary>
+ /// <param name="taskFeedback"></param>
+ /// <returns></returns>
+ [HttpPost, Route("resultReport"), AllowAnonymous]
+ public ApiResponse<object> TaskFeedback([FromBody] TaskNotification taskFeedback)
+ {
+ return Service.TaskFeedback(taskFeedback);
+ }
+ }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/api/api.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/api/api.js"
index 70de31d..9e03176 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/api/api.js"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/api/api.js"
@@ -8,7 +8,8 @@
import router from '@/router'
let baseUrl = UtilVar.baseUrl
-// let wcsBaseUrl = 'http://10.6.100.16:9291'
+//鏈湴娴嬭瘯127,椤圭洰鐢熶骇10
+// let wcsBaseUrl = 'http://10.6.100.116:9291'
// let wmsBaseUrl = 'http://10.6.100.116:9290'
let wmsBaseUrl = 'http://127.0.0.1:9290'
let wcsBaseUrl= 'http://127.0.0.1:9291'
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/store/modules/setting.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/store/modules/setting.js"
index ac0c871..18aa6ac 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/store/modules/setting.js"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/store/modules/setting.js"
@@ -12,6 +12,8 @@
ssyjSwiper:true,//瀹炴椂棰勮杞挱
isScale:true,//鏄惁杩涜鍏ㄥ眬閫傞厤
fullscreen: false, // 娣诲姞锛氬叏灞忕姸鎬�
+ currentTask: 'sc02', // 褰撳墠浠诲姟锛歴c01/sc02
+ currentLocation: 'sc01', // 褰撳墠璐т綅鐘舵�侊細sc01/sc02
defaultOption: {
step: 4.4, // 鏁板�艰秺澶ч�熷害婊氬姩瓒婂揩
hoverStop: true, // 鏄惁寮�鍚紶鏍囨偓鍋渟top
@@ -43,12 +45,48 @@
updateSwiper(state, {val,type}) {
state[type] = val
- // 鍒涘缓瀹屾暣鐨勮缃璞★紝鍖呭惈鍏ㄥ睆鐘舵��
+ // 鍒涘缓瀹屾暣鐨勮缃璞★紝鍖呭惈鍏ㄥ睆鐘舵�佸拰鍒囨崲鐘舵��
const settingData = {
sbtxSwiper: state.sbtxSwiper,
ssyjSwiper: state.ssyjSwiper,
isScale: state.isScale,
fullscreen: state.fullscreen || false, // 纭繚鍖呭惈鍏ㄥ睆鐘舵��
+ currentTask: state.currentTask,
+ currentLocation: state.currentLocation
+ }
+
+ localStorage.setItem('settingData', JSON.stringify(settingData))
+ },
+
+ // 鏇存柊褰撳墠浠诲姟
+ updateCurrentTask(state, val) {
+ state.currentTask = val;
+
+ // 鍒涘缓瀹屾暣鐨勮缃璞★紝鍖呭惈鍏ㄥ睆鐘舵�佸拰鍒囨崲鐘舵��
+ const settingData = {
+ sbtxSwiper: state.sbtxSwiper,
+ ssyjSwiper: state.ssyjSwiper,
+ isScale: state.isScale,
+ fullscreen: state.fullscreen || false,
+ currentTask: state.currentTask,
+ currentLocation: state.currentLocation
+ }
+
+ localStorage.setItem('settingData', JSON.stringify(settingData))
+ },
+
+ // 鏇存柊褰撳墠璐т綅鐘舵��
+ updateCurrentLocation(state, val) {
+ state.currentLocation = val;
+
+ // 鍒涘缓瀹屾暣鐨勮缃璞★紝鍖呭惈鍏ㄥ睆鐘舵�佸拰鍒囨崲鐘舵��
+ const settingData = {
+ sbtxSwiper: state.sbtxSwiper,
+ ssyjSwiper: state.ssyjSwiper,
+ isScale: state.isScale,
+ fullscreen: state.fullscreen || false,
+ currentTask: state.currentTask,
+ currentLocation: state.currentLocation
}
localStorage.setItem('settingData', JSON.stringify(settingData))
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/center-bottom.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/center-bottom.vue"
deleted file mode 100644
index 235fae5..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/center-bottom.vue"
+++ /dev/null
@@ -1,314 +0,0 @@
-<template>
- <dv-scroll-board :config="config" style="width:100%;height:400px" />
-</template>
-
-<script>
-import axios from 'axios';
-
-export default {
- name: 'TaskListScrollBoard',
- components: {
- // 濡傛灉缁勪欢宸插叏灞�娉ㄥ唽锛屽垯涓嶉渶瑕佸湪杩欓噷娉ㄥ唽
- },
- data() {
- return {
- taskList: [],
- refreshInterval: null,
- config: null
- };
- },
- mounted() {
- this.getTaskData();
- this.startAutoRefresh();
- },
- beforeDestroy() {
- this.stopAutoRefresh();
- },
- methods: {
- // 鑾峰彇浠诲姟鏁版嵁
- getTaskData() {
- axios.get("http://127.0.0.1:8889/api/Dashboard/CurrentTasks")
- .then((response) => {
- console.log("浠诲姟鏁版嵁鍝嶅簲:", response);
-
- if (response && Array.isArray(response)) {
- // 涓嶇敤data,閫夋嫨鏈夋暟鎹�
- const tasks = response;
- // 杩囨护鎺夊紓甯哥姸鎬佺殑浠诲姟
- this.taskList = tasks.filter(task =>
- ![999, 298, 299, 198, 199].includes(task.taskStatus)
- );
- this.updateBoardData();
- } else {
- this.taskList = [];
- this.updateBoardData();
- }
- })
- .catch((error) => {
- console.error("鑾峰彇浠诲姟鏁版嵁澶辫触:", error);
- this.taskList = [];
- this.updateBoardData();
- });
- },
-
- // 鏇存柊婊氬姩琛ㄦ牸鏁版嵁
- updateBoardData() {
- let boardData = [];
- if (this.taskList.length === 0) {
- boardData = [['--', '--', '--', '--', '--', '鏆傛棤浠诲姟鏁版嵁']];
- return;
- }
- boardData = this.taskList.map((task) => {
- // 璁剧疆浠诲姟绫诲瀷棰滆壊
- const taskType = this.getTaskType(task);
- const typeColor = this.getTaskTypeColor(taskType);
- const typeHtml = `<span style="color:${typeColor};font-weight:bold;font-size:18px">${taskType}</span>`;
-
- // 璁剧疆鎵樼洏绫诲瀷
- const palletType = this.getPalletTypeText(task);
- const palletColor = this.getPalletTypeColor(task);
- const palletHtml = `<span style="color:${palletColor};font-weight:bold;font-size:18px;padding:2px 6px;border-radius:3px;background:rgba(255,255,255,0.1)">${palletType}</span>`;
-
- // 璁剧疆鐩殑鍦帮紙鍙樉绀哄悗8浣嶏級
- let targetAddress = task.targetAddress || '--';
- if (targetAddress.length > 8) {
- targetAddress = targetAddress.slice(-6); // 鍙彇鍚�8浣�
- }
- const addressHtml = `<span style="color:#67e0e3;font-size:20px;font-weight:bold;font-family:monospace">${targetAddress}</span>`;
-
- // 璁剧疆鐘舵��
- const statusText = this.getStatusText(task);
- const statusClass = this.getStatusClass(task);
- const statusColor = this.getStatusColor(statusClass);
- const statusHtml = `<span style="color:${statusColor};font-weight:bold;font-size:18px;padding:4px 8px;border-radius:4px;background:${this.getStatusBgColor(statusClass)}">${statusText}</span>`;
-
- // 鏍煎紡鍖栨椂闂�
- const timeText = this.formatDate(task.createDate);
-
- return [
- `<span style="color:#37a2da;font-family:monospace;font-size:18px">${task.taskNum || '--'}</span>`,
- typeHtml,
- palletHtml,
- addressHtml,
- `<span style="color:#9fe6b8;font-size:18px">${timeText}</span>`,
- statusHtml
- ];
- });
- this.config = {
- header: ['浠诲姟鍙�', '绫诲瀷', '鐗╂枡', '鐩殑鍦�', '鍒涘缓鏃堕棿', '鐘舵��'],
- data: boardData,
- index: false,
- columnWidth: [110, 80, 130, 170, 140, 170],
- align: ['center', 'center', 'center', 'center', 'center', 'center'],
- waitTime: 2000,
- rowNum: 8,
- headerBGC: 'rgba(0, 0, 0, 0.5)',
- headerHeight: 55,
- oddRowBGC: 'rgba(0, 0, 0, 0.3)',
- evenRowBGC: 'rgba(0, 0, 0, 0.5)',
- carousel: 'single',
- // 娣诲姞瀛椾綋澶у皬璁剧疆
- headerStyle: {
- fontSize: 22,
- fontWeight: 'bold'
- },
- rowStyle: {
- fontSize: 20,
- height: 50
- }
- };
- },
-
- // 鑾峰彇浠诲姟绫诲瀷棰滆壊
- getTaskTypeColor(type) {
- const colorMap = {
- '鍏ュ簱': '#37a2da',
- '鍑哄簱': '#32c5e9',
- '绉诲簱': '#67e0e3',
- '鏈煡': '#ffdb5c'
- };
- return colorMap[type] || '#ffdb5c';
- },
-
- // 鑾峰彇鎵樼洏绫诲瀷鏂囧瓧
- getPalletTypeText(task) {
- // 鏍规嵁 warehouseId 鍜� palletType 鍒ゆ柇
- const warehouseId = task.warehouseId;
- const palletType = task.palletType;
-
- if (warehouseId === 2) {
- // warehouseId=2鏄垚鍝�
- return '鎴愬搧';
- } else if (warehouseId === 1) {
- // warehouseId=1锛屾牴鎹畃alletType鍒ゆ柇
- if (palletType === '1' || palletType === 1) {
- return '甯冨嵎';
- } else if (palletType === '2' || palletType === 2) {
- return '鏉惧竷鍗�';
- }
- }
-
- return '鏈煡';
- },
-
- // 鑾峰彇鎵樼洏绫诲瀷棰滆壊
- getPalletTypeColor(task) {
- const warehouseId = task.warehouseId;
- const palletType = task.palletType;
-
- if (warehouseId === 2) {
- return '#ff9f7f'; // 鎴愬搧 - 姗欒壊
- } else if (warehouseId === 1) {
- if (palletType === '1' || palletType === 1) {
- return '#9fe6b8'; // 甯冨嵎 - 缁胯壊
- } else if (palletType === '2' || palletType === 2) {
- return '#ffdb5c'; // 鏉惧竷鍗� - 榛勮壊
- }
- }
-
- return '#95a5a6'; // 鏈煡 - 鐏拌壊
- },
-
- // 鑾峰彇鐘舵�侀鑹�
- getStatusColor(statusClass) {
- const colorMap = {
- 'status-completed': '#ffffff', // 瀹屾垚 - 鐧借壊鏂囧瓧
- 'status-processing': '#ffffff', // 鎵ц涓� - 鐧借壊鏂囧瓧
- 'status-pending': '#ffffff', // 寰呭鐞� - 鐧借壊鏂囧瓧
- 'status-cancelled': '#ffffff', // 鍙栨秷 - 鐧借壊鏂囧瓧
- 'status-error': '#ffffff', // 閿欒 - 鐧借壊鏂囧瓧
- 'status-default': '#ffffff' // 榛樿 - 鐧借壊鏂囧瓧
- };
- return colorMap[statusClass] || '#ffffff';
- },
-
- // 鑾峰彇鐘舵�佽儗鏅鑹�
- getStatusBgColor(statusClass) {
- const colorMap = {
- 'status-completed': 'rgba(46, 204, 113, 0.7)', // 瀹屾垚 - 缁胯壊
- 'status-processing': 'rgba(52, 152, 219, 0.7)', // 鎵ц涓� - 钃濊壊
- 'status-pending': 'rgba(243, 156, 18, 0.7)', // 寰呭鐞� - 姗欒壊
- 'status-cancelled': 'rgba(149, 165, 166, 0.7)', // 鍙栨秷 - 鐏拌壊
- 'status-error': 'rgba(231, 76, 60, 0.7)', // 閿欒 - 绾㈣壊
- 'status-default': 'rgba(127, 140, 141, 0.7)' // 榛樿 - 娣辩伆鑹�
- };
- return colorMap[statusClass] || 'rgba(127, 140, 141, 0.7)';
- },
-
- // 鍚姩鑷姩鍒锋柊
- startAutoRefresh() {
- this.refreshInterval = setInterval(() => {
- this.getTaskData();
- }, 10000);
- },
-
- // 鍋滄鑷姩鍒锋柊
- stopAutoRefresh() {
- if (this.refreshInterval) {
- clearInterval(this.refreshInterval);
- this.refreshInterval = null;
- }
- },
-
- // 鏍煎紡鍖栨棩鏈燂紙绠�鍖栫増锛�
- formatDate(dateString) {
- if (!dateString) return '--';
- try {
- const date = new Date(dateString);
- return date.toLocaleTimeString('zh-CN', {
- hour: '2-digit',
- minute: '2-digit',
- second: '2-digit',
- hour12: false
- });
- } catch (e) {
- return '--';
- }
- },
-
- // 鑾峰彇浠诲姟绫诲瀷鏂囧瓧
- getTaskType(task) {
- const status = task.taskStatus;
-
- if (status >= 200 && status < 300) {
- return '鍏ュ簱';
- } else if (status >= 100 && status < 200) {
- return '鍑哄簱';
- } else if (status >= 300 && status < 400) {
- return '绉诲簱';
- }
-
- return '鏈煡';
- },
-
- // 鏍规嵁鐘舵�佸�艰幏鍙栫姸鎬佹枃瀛楁弿杩�
- getStatusText(task) {
- const status = task.taskStatus;
-
- if (status >= 200 && status < 300) {
- const inStatusMap = {
- 200: '鏂板缓',
- 230: '杈撻�佺嚎',
- 235: '杈撻�佸畬鎴�',
- 240: '鍫嗗灈鏈�',
- 245: '鍫嗗灈瀹屾垚',
- 290: '瀹屾垚',
- 297: '鍙栨秷',
- 298: '杈撻�佸紓甯�',
- 299: '鍫嗗灈寮傚父'
- };
- return inStatusMap[status] || '鍏ュ簱';
- } else if (status >= 100 && status < 200) {
- const outStatusMap = {
- 100: '鏂板缓',
- 110: '鍫嗗灈鏈�',
- 115: '鍫嗗灈瀹屾垚',
- 120: '杈撻�佺嚎',
- 125: '杈撻�佸畬鎴�',
- 190: '瀹屾垚',
- 197: '鍙栨秷',
- 198: '杈撻�佸紓甯�',
- 199: '鍫嗗灈寮傚父'
- };
- return outStatusMap[status] || '鍑哄簱';
- } else if (status >= 300 && status < 400) {
- const relocationStatusMap = {
- 300: '鏂板缓',
- 315: '绉诲簱涓�',
- 310: '瀹屾垚',
- 330: '寮傚父'
- };
- return relocationStatusMap[status] || '绉诲簱';
- }
-
- return '鏈煡';
- },
-
- // 鑾峰彇鐘舵�佸搴旂殑CSS绫�
- getStatusClass(task) {
- const status = task.taskStatus;
-
- if ([298, 299, 198, 199, 330].includes(status)) {
- return 'status-error';
- } else if ([290, 190, 310].includes(status)) {
- return 'status-completed';
- } else if ([297, 197].includes(status)) {
- return 'status-cancelled';
- } else if ([230, 235, 240, 245, 110, 115, 120, 125, 315].includes(status)) {
- return 'status-processing';
- } else if ([200, 100, 300].includes(status)) {
- return 'status-pending';
- }
-
- return 'status-default';
- }
- }
-};
-</script>
-
-<style scoped>
-/* 纭繚婊氬姩琛ㄦ牸姝g‘鏄剧ず */
-dv-scroll-board {
- font-family: 'Microsoft YaHei', Arial, sans-serif;
-}
-</style>
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/center-map.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/center-map.vue"
deleted file mode 100644
index fc973a0..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/center-map.vue"
+++ /dev/null
@@ -1,454 +0,0 @@
-<template>
- <ItemWrap class="contetn_left-bottom contetn_lr-item" title="鎬讳綋缁熻">
- <div class="dashboard-container">
- <div class="stats-stack">
- <!-- 姹囨�� -->
- <div class="stats-card summary">
- <div class="stats-content">
- <div class="stats-grid">
- <!-- 绗竴琛岋細姹囨�荤粺璁� -->
- <div class="stat-item">
- <div class="stat-label">鎬诲叆搴�</div>
- <div class="stat-number">
- <dv-digital-flop :config="getConfig('totalInbound', rawStats.summary.totalInbound)" />
- </div>
- </div>
- <div class="stat-item">
- <div class="stat-label">鎬诲嚭搴�</div>
- <div class="stat-number">
- <dv-digital-flop :config="getConfig('totalOutbound', rawStats.summary.totalOutbound)" />
- </div>
- </div>
- <div class="stat-item">
- <div class="stat-label">鎬诲緟瀹屾垚</div>
- <div class="stat-number" :class="{
- 'warning': totalPendingTasks > 0,
- 'danger': totalPendingTasks > 20
- }">
- <dv-digital-flop
- :config="getConfig('totalPendingTasks', totalPendingTasks, totalPendingTasks > 20 ? 'danger' : totalPendingTasks > 0 ? 'warning' : 'normal')" />
- </div>
- </div>
- <div class="stat-item">
- <div class="stat-label">鎬诲紓甯�</div>
- <div class="stat-number" :class="{
- 'warning': totalExceptionTasks > 0,
- 'danger': totalExceptionTasks > 10
- }">
- <dv-digital-flop
- :config="getConfig('totalExceptionTasks', totalExceptionTasks, totalExceptionTasks > 10 ? 'danger' : totalExceptionTasks > 0 ? 'warning' : 'normal')" />
- </div>
- </div>
-
- <!-- 绗簩琛岋細鍘熸枡浠� -->
- <div class="stat-item">
- <div class="stat-label">鍘熸枡浠撲粖鏃ュ叆搴�</div>
- <div class="stat-number">
- <dv-digital-flop :config="getConfig('rawTodayInbound', rawStats.rawMaterialWarehouse.todayInbound)" />
- </div>
- </div>
- <div class="stat-item">
- <div class="stat-label">鍘熸枡浠撲粖鏃ュ嚭搴�</div>
- <div class="stat-number">
- <dv-digital-flop
- :config="getConfig('rawTodayOutbound', rawStats.rawMaterialWarehouse.todayOutbound)" />
- </div>
- </div>
- <div class="stat-item">
- <div class="stat-label">鍘熸枡浠撳緟瀹屾垚</div>
- <div class="stat-number" :class="{
- 'warning': rawMaterialPendingTasks > 0,
- 'danger': rawMaterialPendingTasks > 10
- }">
- <dv-digital-flop
- :config="getConfig('rawPendingTasks', rawMaterialPendingTasks, rawMaterialPendingTasks > 10 ? 'danger' : rawMaterialPendingTasks > 0 ? 'warning' : 'normal')" />
- </div>
- </div>
- <div class="stat-item">
- <div class="stat-label">鍘熸枡浠撳紓甯�</div>
- <div class="stat-number" :class="{
- 'warning': rawMaterialExceptionTasks > 0,
- 'danger': rawMaterialExceptionTasks > 5
- }">
- <dv-digital-flop
- :config="getConfig('rawExceptionTasks', rawMaterialExceptionTasks, rawMaterialExceptionTasks > 5 ? 'danger' : rawMaterialExceptionTasks > 0 ? 'warning' : 'normal')" />
- </div>
- </div>
-
- <!-- 绗笁琛岋細鎴愬搧浠� -->
- <div class="stat-item">
- <div class="stat-label">鎴愬搧浠撲粖鏃ュ叆搴�</div>
- <div class="stat-number">
- <dv-digital-flop
- :config="getConfig('finishedTodayInbound', rawStats.finishedProductWarehouse.todayInbound)" />
- </div>
- </div>
- <div class="stat-item">
- <div class="stat-label">鎴愬搧浠撲粖鏃ュ嚭搴�</div>
- <div class="stat-number">
- <dv-digital-flop
- :config="getConfig('finishedTodayOutbound', rawStats.finishedProductWarehouse.todayOutbound)" />
- </div>
- </div>
- <div class="stat-item">
- <div class="stat-label">鎴愬搧浠撳緟瀹屾垚</div>
- <div class="stat-number" :class="{
- 'warning': finishedProductPendingTasks > 0,
- 'danger': finishedProductPendingTasks > 10
- }">
- <dv-digital-flop
- :config="getConfig('finishedPendingTasks', finishedProductPendingTasks, finishedProductPendingTasks > 10 ? 'danger' : finishedProductPendingTasks > 0 ? 'warning' : 'normal')" />
- </div>
- </div>
- <div class="stat-item">
- <div class="stat-label">鎴愬搧浠撳紓甯�</div>
- <div class="stat-number" :class="{
- 'warning': finishedProductExceptionTasks > 0,
- 'danger': finishedProductExceptionTasks > 5
- }">
- <dv-digital-flop
- :config="getConfig('finishedExceptionTasks', finishedProductExceptionTasks, finishedProductExceptionTasks > 5 ? 'danger' : finishedProductExceptionTasks > 0 ? 'warning' : 'normal')" />
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </ItemWrap>
-</template>
-
-<script>
-import axios from 'axios';
-
-export default {
- name: 'WarehouseDashboard',
- data() {
- return {
- rawStats: {
- rawMaterialWarehouse: {
- totalTasks: 0,
- todayInbound: 0,
- todayOutbound: 0
- },
- finishedProductWarehouse: {
- totalTasks: 0,
- todayInbound: 0,
- todayOutbound: 0
- },
- summary: {
- totalAllTasks: 0,
- totalInbound: 0,
- totalOutbound: 0
- }
- },
- taskList: [],
- refreshInterval: null,
- statsRefreshInterval: null,
- // 鏁板瓧缈荤墝鍣ㄩ厤缃紦瀛�
- flopConfigs: new Map(),
- // 榛樿棰滆壊閰嶇疆
- colors: {
- normal: '#ffffff',
- warning: '#f39c12',
- danger: '#e74c3c',
- success: '#2ecc71',
- primary: '#3498db'
- }
- };
- },
- computed: {
- rawMaterialPendingTasks() {
- return this.taskList.filter(task => task.warehouseId === 1).length;
- },
- rawMaterialExceptionTasks() {
- return this.taskList.filter(task =>
- task.warehouseId === 1 && task.taskStatus === 999 ||
- task.taskStatus === 298 || task.taskStatus === 299 ||
- task.taskStatus === 198 || task.taskStatus === 199
- ).length;
- },
- finishedProductPendingTasks() {
- return this.taskList.filter(task => task.warehouseId === 2).length;
- },
- finishedProductExceptionTasks() {
- return this.taskList.filter(task =>
- task.warehouseId === 2 && task.taskStatus === 999 ||
- task.taskStatus === 198 || task.taskStatus === 199 ||
- task.taskStatus === 298 || task.taskStatus === 299
- ).length;
- },
- totalPendingTasks() {
- return this.taskList.length;
- },
- totalExceptionTasks() {
- return this.taskList.filter(task => task.taskStatus === 999).length;
- }
- },
- mounted() {
- this.getStatsData();
- this.getTaskData();
- this.startAutoRefresh();
- },
- beforeDestroy() {
- this.stopAutoRefresh();
- },
- methods: {
- getStatsData() {
- axios.get("http://127.0.0.1:8889/api/Dashboard/WarehouseOperationStats")
- .then((response) => {
- if (response) {
- // 娓呴櫎閰嶇疆缂撳瓨锛屽己鍒堕噸鏂扮敓鎴�
- this.flopConfigs.clear();
-
- // 鍒涘缓鏂板璞$‘淇濆搷搴斿紡
- const newStats = {
- rawMaterialWarehouse: {
- totalTasks: (response.rawMaterialWarehouse && response.rawMaterialWarehouse.totalTasks) || 0,
- todayInbound: (response.rawMaterialWarehouse && response.rawMaterialWarehouse.todayInbound) || 0,
- todayOutbound: (response.rawMaterialWarehouse && response.rawMaterialWarehouse.todayOutbound) || 0
- },
- finishedProductWarehouse: {
- totalTasks: (response.finishedProductWarehouse && response.finishedProductWarehouse.totalTasks) || 0,
- todayInbound: (response.finishedProductWarehouse && response.finishedProductWarehouse.todayInbound) || 0,
- todayOutbound: (response.finishedProductWarehouse && response.finishedProductWarehouse.todayOutbound) || 0
- },
- summary: {
- totalAllTasks: (response.summary && response.summary.totalAllTasks) || 0,
- totalInbound: (response.summary && response.summary.totalInbound) || 0,
- totalOutbound: (response.summary && response.summary.totalOutbound) || 0
- }
- };
- // 鐩存帴璧嬪�兼柊瀵硅薄
- this.rawStats = newStats;
-
- }
- })
- .catch((error) => {
- console.error("鑾峰彇浠撳簱缁熻澶辫触:", error);
- });
- },
-
- getTaskData() {
- axios.get("http://127.0.0.1:8889/api/Dashboard/CurrentTasks")
- .then((response) => {
- if (response && Array.isArray(response)) {
- this.taskList = response;
- } else {
- this.taskList = [];
- }
- })
- .catch((error) => {
- this.taskList = [];
- });
- },
-
- startAutoRefresh() {
- this.refreshInterval = setInterval(() => {
- this.getTaskData();
- }, 5000);
-
- this.statsRefreshInterval = setInterval(() => {
- this.getStatsData();
- }, 10000);
- },
-
- stopAutoRefresh() {
- if (this.refreshInterval) {
- clearInterval(this.refreshInterval);
- this.refreshInterval = null;
- }
- if (this.statsRefreshInterval) {
- clearInterval(this.statsRefreshInterval);
- this.statsRefreshInterval = null;
- }
- },
-
- // 鑾峰彇鏁板瓧缈荤墝鍣ㄩ厤缃�
- getConfig(key, number, type = 'normal') {
- const configKey = `${key}_${type}`;
-
- // 纭繚number鏄湁鏁堢殑鏁板瓧
- const validNumber = isNaN(Number(number)) ? 0 : Number(number);
-
- if (!this.flopConfigs.has(configKey)) {
- const config = {
- number: [validNumber],
- toFixed: 0,
- content: '{nt}',
- duration: 10, // 璁剧疆涓�10绉掔炕鍔ㄥ姩鐢�
- style: {
- fontSize: 24,
- fill: this.getColorByType(type),
- fontWeight: 'bold',
- textShadow: '0 2px 8px rgba(0, 0, 0, 0.3)',
- },
- formatter: (number) => {
- return number.toLocaleString();
- }
- };
- this.flopConfigs.set(configKey, config);
- } else {
- // 鏇存柊鐜版湁閰嶇疆鐨勫��
- const config = this.flopConfigs.get(configKey);
- config.number = [validNumber];
- config.style.fill = this.getColorByType(type);
- config.duration = 1; // 纭繚duration涔熸槸10绉�
- }
-
- return this.flopConfigs.get(configKey);
- },
-
- // 鏍规嵁绫诲瀷鑾峰彇棰滆壊
- getColorByType(type) {
- return this.colors[type] || this.colors.normal;
- }
- }
-};
-</script>
-<style lang="scss" scoped>
-/* 鏍峰紡淇濇寔涓嶅彉 */
-.dashboard-container {
- width: 100%;
- height: 100%;
- // padding-top: 10px;
- box-sizing: border-box;
-}
-
-.stats-stack {
- display: flex;
- flex-direction: column;
- gap: 10px;
- height: 100%;
-}
-
-.stats-card {
- border-radius: 16px;
- transition: all 0.3s ease;
- flex: 1;
- display: flex;
- flex-direction: column;
-
- &:hover {
- transform: translateY(-2px);
- }
-
- &.material {
- border-top: 4px solid #3498db;
- }
-
- &.product {
- border-top: 4px solid #2ecc71;
- }
-}
-
-.card-header {
- display: flex;
- justify-content: space-between;
- align-items: center;
- border-bottom: 1px solid rgba(255, 255, 255, 0.1);
-}
-
-.warehouse-name {
- font-size: 28px; /* 浠�24px澧炲ぇ鍒�28px */
- font-weight: 700;
- color: #ffffff;
- text-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
- letter-spacing: 1px;
-}
-
-.total-count {
- font-size: 40px; /* 浠�36px澧炲ぇ鍒�40px */
- font-weight: 800;
- color: #ffffff;
- text-shadow:
- 0 2px 12px rgba(0, 0, 0, 0.4),
- 0 0 30px currentColor;
- letter-spacing: -0.5px;
-
- .summary & {
- color: #9b59b6;
- }
-}
-
-.stats-content {
- flex: 1;
- align-items: center;
-}
-
-.stats-grid {
- display: grid;
- grid-template-columns: repeat(4, 1fr);
- gap: 20px;
- width: 100%;
-}
-
-.stat-item {
- display: flex;
- margin-top: 10px;
- flex-direction: column;
- align-items: center;
-}
-
-.stat-label {
- font-size: 18px; /* 浠�14px澧炲ぇ鍒�18px */
- font-weight: 500;
- color: rgba(255, 255, 255, 0.7);
- text-transform: uppercase;
- letter-spacing: 1px;
- margin-bottom: 12px; /* 浠�8px澧炲ぇ鍒�12px */
- text-align: center;
- line-height: 1.3;
-}
-
-.stat-number {
- height: 64px; /* 浠�56px澧炲ぇ鍒�64px */
- width: 100%;
- display: flex;
- align-items: center;
- justify-content: center;
- background: rgba(255, 255, 255, 0.05);
- border-radius: 12px;
- border: 2px solid rgba(255, 255, 255, 0.15);
- box-shadow:
- inset 0 2px 8px rgba(0, 0, 0, 0.2),
- 0 4px 16px rgba(0, 0, 0, 0.2);
- overflow: hidden;
- position: relative;
-
- :deep(.dv-digital-flop) {
- width: 100% !important;
- height: 100% !important;
- display: flex;
- align-items: center;
- justify-content: center;
- }
-
- &.warning {
- border-color: rgba(243, 156, 18, 0.4);
- background: rgba(243, 156, 18, 0.1);
- }
-
- &.danger {
- border-color: rgba(231, 76, 60, 0.4);
- background: rgba(231, 76, 60, 0.1);
- }
-}
-
-// 鏁板瓧缈荤墝鍣ㄨ嚜瀹氫箟鏍峰紡
-:deep(.digital-flop-item) {
- display: flex;
- align-items: center;
- justify-content: center;
- height: 100%;
-}
-
-:deep(.digital-flop-dom) {
- font-size: 28px !important; /* 浠�24px澧炲ぇ鍒�28px */
- font-weight: 800 !important;
- text-shadow:
- 0 2px 8px rgba(0, 0, 0, 0.3),
- 0 0 20px currentColor !important;
- line-height: 1;
-}
-</style>
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/index.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/index.vue"
index 5f7a3b6..d44a39a 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/index.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/index.vue"
@@ -11,13 +11,12 @@
<div class="pagetab">
<div class="item">瀹炴椂鐩戞祴</div>
</div>
- <!-- SC01宸烽亾浠诲姟淇℃伅 -->
- <ItemWrap class="contetn_left-bottom contetn_lr-item" title="SC01宸烽亾浠诲姟淇℃伅" style="padding: 0 10px 16px 0px">
- <sc01-task-info />
- </ItemWrap>
- <!-- SC02宸烽亾浠诲姟淇℃伅 -->
- <ItemWrap class="contetn_left-bottom contetn_lr-item" title="SC02宸烽亾浠诲姟淇℃伅">
- <sc02-task-info />
+ <!-- 宸烽亾浠诲姟淇℃伅 -->
+ <ItemWrap class="contetn_left-bottom contetn_lr-item" title="宸烽亾浠诲姟淇℃伅" style="padding: 0 10px 16px 0px; height: 92%;">
+ <div class="task-content">
+ <sc01-task-info v-if="currentTask === 'sc01'" />
+ <sc02-task-info v-else-if="currentTask === 'sc02'" />
+ </div>
</ItemWrap>
</div>
<div class="contetn_center">
@@ -26,24 +25,24 @@
<inventory-stats />
</ItemWrap>
<!-- 鏃ュ嚭鍏ュ簱鏌卞舰鍥惧姣� -->
- <ItemWrap class="contetn_left-bottom contetn_lr-item" title="鏃ュ嚭鍏ュ簱瀵规瘮" style="padding: 0 10px 16px 10px">
+ <ItemWrap class="contetn_left-bottom contetn_lr-item" title="鎶ヨ淇℃伅" style="padding: 0 10px 16px 10px">
<daily-inout-chart />
</ItemWrap>
</div>
<div class="contetn_right">
- <!-- SC01璐т綅鐘舵�� -->
- <ItemWrap class="contetn_left-bottom contetn_lr-item" title="SC01璐т綅鐘舵��">
- <sc01-location-status />
- </ItemWrap>
- <!-- SC02璐т綅鐘舵�� -->
- <ItemWrap class="contetn_left-bottom contetn_lr-item" title="SC02璐т綅鐘舵��">
- <sc02-location-status />
+ <!-- 璐т綅鐘舵�� -->
+ <ItemWrap class="contetn_left-bottom contetn_lr-item" title="璐т綅鐘舵��" style="padding: 0 10px 16px 0px; height: 92%;">
+ <div class="task-content">
+ <sc01-location-status v-if="currentLocation === 'sc01'" />
+ <sc02-location-status v-else-if="currentLocation === 'sc02'" />
+ </div>
</ItemWrap>
</div>
</div>
</template>
<script>
+import { mapState, mapMutations } from 'vuex'
import sc01TaskInfo from './sc01-task-info.vue'
import sc02TaskInfo from './sc02-task-info.vue'
import inventoryStats from './inventory-stats.vue'
@@ -59,10 +58,8 @@
sc01LocationStatus,
sc02LocationStatus
},
- data() {
- return {
-
- };
+ computed: {
+ ...mapState('setting', ['currentTask', 'currentLocation'])
},
filters: {
numsFilter(msg) {
@@ -73,9 +70,8 @@
},
mounted() { },
- methods: {
+ methods: {},
- },
};
</script>
<style lang="scss" scoped>
@@ -84,25 +80,34 @@
display: flex;
justify-content: center;
gap: 10px;
+ height: 100%;
.contetn_left,
.contetn_right {
width: 600px;
- // height: 100%;
box-sizing: border-box;
gap: 10px;
- // padding: 16px 0;
+ display: flex;
+ flex-direction: column;
}
.contetn_center {
width: 660px;
gap: 10px;
+ display: flex;
+ flex-direction: column;
+ }
+
+ // 宸︿晶SC01浠诲姟淇℃伅 - 淇濇寔涓庡叾浠栧尯鍩熺浉鍚岀殑楂樺害
+ .contetn_left-item {
+ height: px; // 鎭㈠鍘熸潵鐨勫浐瀹氶珮搴︼紝鍜屽彸渚у崟涓潡鐨勯珮搴︿竴鑷�
+ flex-shrink: 0; // 闃叉鍘嬬缉
}
//宸﹀彸涓や晶 涓変釜鍧�
.contetn_lr-item {
gap: 10px;
- height: 480px;
+ height: 480px; // 鎭㈠鍘熸潵鐨勫浐瀹氶珮搴�
}
.contetn_center_top {
@@ -114,7 +119,6 @@
display: flex;
flex-direction: column;
gap: 10px;
- // justify-content: space-around;
}
.contetn_center-bottom {
@@ -126,7 +130,6 @@
.contetn_right {
display: flex;
flex-direction: column;
- // justify-content: space-around;
gap: 10px;
position: relative;
}
@@ -164,4 +167,11 @@
transform: rotate(360deg) scale(1);
}
}
-</style>
+
+// 浠诲姟鍐呭鍖哄煙
+.task-content {
+ width: 100%;
+ height: 100%;
+ overflow: hidden;
+}
+</style>
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/inventory-stats.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/inventory-stats.vue"
index 325b5ca..3e0cdb5 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/inventory-stats.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/inventory-stats.vue"
@@ -83,7 +83,7 @@
// 姣�10绉掑埛鏂颁竴娆℃暟鎹�
this.refreshInterval = setInterval(() => {
this.getData();
- }, 10000);
+ }, 30000);
},
beforeDestroy() {
if (this.refreshInterval) {
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/left-bottom.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/left-bottom.vue"
deleted file mode 100644
index 181cd31..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/left-bottom.vue"
+++ /dev/null
@@ -1,278 +0,0 @@
-<!--
- * @Author: daidai
- * @Date: 2022-03-01 09:43:37
- * @LastEditors: Please set LastEditors
- * @LastEditTime: 2022-09-09 11:40:22
- * @FilePath: \web-pc\src\pages\big-screen\view\indexs\left-bottom.vue
--->
-<template>
- <div
- v-if="pageflag"
- class="left_boottom_wrap beautify-scroll-def"
- :class="{ 'overflow-y-auto': !sbtxSwiperFlag }"
- >
- <component :is="components" :data="list" :class-option="defaultOption">
- <ul class="left_boottom">
- <li class="left_boottom_item" v-for="(item, i) in list" :key="i">
- <div class="inner_right">
- <div class="dibu"></div>
- <div class="flex" style="width: 100%;">
- <div class="info">
- <!-- <span class="labels">璁惧ID锛�</span> -->
- <span class="contents zhuyao doudong wangguan">
- {{ item.alarmposition }}</span
- >
- </div>
- <div class="info" style="margin-left: 8%;">
- <!-- <span class="labels">鍦板潃锛�</span> -->
- <span class="contents ciyao" style="font-size: 10px;width: 30px;">
- {{ item.devicename }}</span
- >
- </div>
- <div class="info" style="margin-left: 7%;">
- <!-- <span class="labels">鍦板潃锛�</span> -->
- <span class="contents ciyao" style="font-size: 10px;width: 180px;">
- {{ item.alarmname }}</span
- >
- </div>
- <div class="info">
- <!-- <span class="labels">鏃堕棿锛�</span> -->
- <span class="contents " style="font-size: 10px;width: 180px;">
- {{ item.starttime }}</span
- >
- </div>
- </div>
-
- <!-- <span
- class="types doudong"
- :class="{
- typeRed: item.onlineState == 0,
- typeGreen: item.onlineState == 1,
- }"
- >{{ item.onlineState == 1 ? "涓婄嚎" : "涓嬬嚎" }}</span
- > -->
-
-
- </div>
- </li>
- </ul>
- </component>
- </div>
-
- <Reacquire v-else @onclick="getData" style="line-height: 200px" />
-</template>
-
-<script>
-// import { currentGET } from "api";
-import {FaultInformation} from "@/api/http.js"
-import vueSeamlessScroll from "vue-seamless-scroll"; // vue2寮曞叆鏂瑰紡
-import Kong from "../../components/kong.vue";
-export default {
- components: { vueSeamlessScroll, Kong },
- data() {
- return {
- list: [],
- pageflag: true,
- components: vueSeamlessScroll,
- defaultOption: {
- ...this.$store.state.setting.defaultOption,
- singleHeight: 240,
- limitMoveNum: 5,
- step: 0,
- },
- };
- },
- computed: {
- sbtxSwiperFlag() {
- let sbtxSwiper = this.$store.state.setting.sbtxSwiper;
- if (sbtxSwiper) {
- this.components = vueSeamlessScroll;
- } else {
- this.components = Kong;
- }
- return sbtxSwiper;
- },
- },
- created() {
-
- },
-
- mounted() {
- this.getData();
- this.changeTiming();
- },
- methods: {
- changeTiming() {
- setInterval(() => {
- this.getData();
- }, 5000);
- },
- addressHandle(item) {
- let name = item.provinceName;
- if (item.cityName) {
- name += "/" + item.cityName;
- if (item.countyName) {
- name += "/" + item.countyName;
- }
- }
- return name;
- },
- async getData() {
- this.pageflag = true;
- // this.pageflag =false
- // currentGET("big3", { limitNum: 20 }).then((res) => {
- // console.log("璁惧鎻愰啋", res);
- // if (res.success) {
- // this.countUserNumData = res.data;
- // this.list = res.data.list;
-
- // let timer = setTimeout(() => {
- // clearTimeout(timer);
- // this.defaultOption.step =
- // this.$store.state.setting.defaultOption.step;
- // }, this.$store.state.setting.defaultOption.waitTime);
- // } else {
- // this.pageflag = false;
- // this.$Message({
- // text: res.msg,
- // type: "warning",
- // });
- // }
- // });
- let rep = await FaultInformation((a)=>{
- console.log(a);
- });
-
- this.list=rep;
- let timer = setTimeout(() => {
- clearTimeout(timer);
- this.defaultOption.step =
- this.$store.state.setting.defaultOption.step;
- }, this.$store.state.setting.defaultOption.waitTime);
- },
- },
-};
-</script>
-<style lang='scss' scoped>
-.left_boottom_wrap {
- overflow: hidden;
- width: 100%;
- height: 230px;
-}
-
-.doudong {
- // vertical-align:middle;
- overflow: hidden;
- -webkit-backface-visibility: hidden;
- -moz-backface-visibility: hidden;
- -ms-backface-visibility: hidden;
- backface-visibility: hidden;
-}
-
-.overflow-y-auto {
- overflow-y: auto;
-}
-
-.left_boottom {
- width: 100%;
- height: 100%;
-
- .left_boottom_item {
- display: flex;
- align-items: center;
- justify-content: center;
- padding: 8px;
- font-size: 14px;
- margin: 10px 0;
- .orderNum {
- margin: 0 16px 0 -20px;
- }
-
- .info {
- margin-right: 8%;
- display: flex;
- align-items: center;
- color: #fff;
- .labels {
- flex-shrink: 0;
- font-size: 12px;
- color: rgba(255, 255, 255, 0.6);
- }
-
- .zhuyao {
- color: $primary-color;
- font-size: 15px;
- }
-
- .ciyao {
- color: rgba(255, 255, 255, 0.8);
- }
-
- .warning {
- color: #e6a23c;
- font-size: 15px;
- }
- }
-
- .inner_right {
- position: relative;
- height: 100%;
- width: 650px;
- flex-shrink: 0;
- line-height: 1;
- display: flex;
- align-items: center;
- justify-content: space-between;
- flex-wrap: wrap;
- .dibu {
- position: absolute;
- height: 2px;
- width: 104%;
- background-image: url("../../assets/img/zuo_xuxian.png");
- bottom: -10px;
- left: -2%;
- background-size: cover;
- }
- .addresswrap {
- width: 200px;
- display: flex;
- margin-top: 8px;
- }
- }
-
- .wangguan {
- color: #1890ff;
- font-weight: 900;
- font-size: 15px;
- width: 80px;
- flex-shrink: 0;
- }
-
-
- .time {
- font-size: 12px;
- // color: rgba(211, 210, 210,.8);
- color: #fff;
- }
-
- .address {
- font-size: 12px;
- cursor: pointer;
- // @include text-overflow(1);
- }
-
- .types {
- width: 30px;
- flex-shrink: 0;
- }
-
- .typeRed {
- color: #fc1a1a;
- }
-
- .typeGreen {
- color: #29fc29;
- }
- }
-}
-</style>
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/left-center-right.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/left-center-right.vue"
deleted file mode 100644
index 79b6ad3..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/left-center-right.vue"
+++ /dev/null
@@ -1,257 +0,0 @@
-<!--
- * @Author: daidai
- * @Date: 2022-02-28 16:16:42
- * @LastEditors: Please set LastEditors
- * @LastEditTime: 2022-10-25 09:18:22
- * @FilePath: \web-pc\src\pages\big-screen\view\indexs\left-center.vue
--->
-<template>
- <Echart id="leftcenterright" :options="options" class="left_center_inner" v-if="pageflag" ref="charts" />
- <Reacquire v-else @onclick="getData" style="line-height:200px">
- 閲嶆柊鑾峰彇
- </Reacquire>
- </template>
-
- <script>
- import { currentPOST } from 'api/modules'
- import {Equipmentfault} from "@/api/http.js"
- export default {
- data() {
- return {
- options: {},
- countUserNumData: {
- HoistNum: 0,
- decoderNum: 0,
- uncoderNum: 0,
- elevatorNum:0,
- TransmissionlineNum:0,
- totalNum: 0
- },
- pageflag: true,
- timer: null
- };
- },
- created() {
- this.getData()
- },
- mounted() {
- this.changeTiming();
- },
- beforeDestroy() {
- // this.clearData()
-
- },
- methods: {
- changeTiming() {
- setInterval(() => {
- this.getData();
- }, 5000);
- },
- // clearData() {
- // if (this.timer) {
- // clearInterval(this.timer)
- // this.timer = null
- // }
- // },
- async getData() {
- this.pageflag = true
- // this.pageflag =false
-
- // currentPOST('big1').then(res => {
-
- // //鍙墦鍗颁竴娆�
- // if (!this.timer) {
- // console.log("璁惧鎬昏", res);
- // }
- // if (res.success) {
- // // this.countUserNumData = res.data
- // this.$nextTick(() => {
- // this.init()
- // })
-
- // } else {
- // this.pageflag = false
- // this.$Message({
- // text: res.msg,
- // type: 'warning'
- // })
- // }
- // })
-
-
- let rep = await Equipmentfault((a)=>{
- console.log(a);
- });
-
- this.countUserNumData = rep;
- this.$nextTick(() => {
- this.init()
- })
- },
- //杞
- switper() {
- if (this.timer) {
- return
- }
- let looper = (a) => {
- this.getData()
- };
- this.timer = setInterval(looper, this.$store.state.setting.echartsAutoTime);
- let myChart = this.$refs.charts.chart
- myChart.on('mouseover', params => {
- this.clearData()
- });
- myChart.on('mouseout', params => {
- this.timer = setInterval(looper, this.$store.state.setting.echartsAutoTime);
- });
- },
- init() {
- let total = this.countUserNumData.total;
- let colors = ["#ECA444", "#33A1DB", "#56B557","#ffb8c6","#FF21FA"];
- let piedata = {
- name: "鏁呴殰璁惧棰戠巼",
- type: "pie",
- radius: ["40%", "70%"],
- avoidLabelOverlap: false,
- itemStyle: {
- borderRadius: 4,
- borderColor: "rgba(0,0,0,0)",
- borderWidth: 2,
- },
-
- color: colors,
- data: [
- // {
- // value: 0,
- // name: "鍛婅",
- // label: {
- // shadowColor: colors[0],
- // },
- // },
- {
- value: this.countUserNumData.elevator,
- name: "鎻愬崌鏈烘晠闅�",
- label: {
- shadowColor: colors[0],
- },
- },
- {
- value: this.countUserNumData.discremover,
- name: "鎷嗙爜鏈烘晠闅�",
- label: {
- shadowColor: colors[2],
- },
- },
- {
- value: this.countUserNumData.rgVcCar,
- name: "鍥涘悜杞︽晠闅�",
- label: {
- shadowColor: colors[1],
- },
- },
- {
- value: this.countUserNumData.pipeline,
- name: "杈撻�佺嚎鏁呴殰",
- label: {
- shadowColor: colors[4],
- },
- }
- ],
- };
- this.options = {
- title: {
- // zlevel: 0,
- text: ["{value|" + total + "}", "{name|鎬绘暟}"].join("\n"),
- top: "center",
- left: "center",
- textStyle: {
- rich: {
- value: {
- color: "#ffffff",
- fontSize: 24,
- fontWeight: "bold",
- lineHeight: 20,
- },
- name: {
- color: "#ffffff",
- lineHeight: 20,
- },
- },
- },
- },
- tooltip: {
- trigger: "item",
- backgroundColor: "rgba(0,0,0,.6)",
- borderColor: "rgba(147, 235, 248, .8)",
- textStyle: {
- color: "#FFF",
- },
- },
- legend: {
- show: false,
- top: "5%",
- left: "center",
- },
- series: [
- //灞曠ず鍦嗙偣
- {
- ...piedata,
- tooltip: { show: true },
- label: {
- formatter: " {b|{b}}",
- // formatter: " {b|{b}} \n {c|{c}涓獇 {per|{d}%} ",
- // position: "outside",
- rich: {
- b: {
- color: "#fff",
- fontSize: 12,
- lineHeight: 26,
- },
- c: {
- color: "#31ABE3",
- fontSize: 14,
- },
- per: {
- color: "#31ABE3",
- fontSize: 14,
- },
- },
- },
- labelLine: {
- length: 30, // 绗竴娈电嚎 闀垮害
- length2: 46, // 绗簩娈电嚎 闀垮害
- show: true,
-
- },
- emphasis: {
- show: true,
- },
- },
- {
- ...piedata,
- tooltip: { show: true },
- itemStyle: {},
- label: {
- backgroundColor: "inherit", //鍦嗙偣棰滆壊锛宎uto锛氭槧灏勭殑绯诲垪鑹�
- height: 0,
- width: 0,
- lineHeight: 0,
- borderRadius: 2.5,
- shadowBlur: 8,
- shadowColor: "auto",
- padding: [2.5, -2.5, 2.5, -2.5],
- },
- labelLine: {
- length: 30, // 绗竴娈电嚎 闀垮害
- length2: 46, // 绗簩娈电嚎 闀垮害
- show: false,
- },
- },
- ],
- };
- },
- },
- };
- </script>
- <style lang='scss' scoped>
- </style>
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/left-center.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/left-center.vue"
deleted file mode 100644
index a6bf8da..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/left-center.vue"
+++ /dev/null
@@ -1,256 +0,0 @@
-<!--
- * @Author: daidai
- * @Date: 2022-02-28 16:16:42
- * @LastEditors: Please set LastEditors
- * @LastEditTime: 2022-10-25 09:18:22
- * @FilePath: \web-pc\src\pages\big-screen\view\indexs\left-center.vue
--->
-<template>
- <Echart id="leftCenter" :options="options" class="left_center_inner" v-if="pageflag" ref="charts" />
- <Reacquire v-else @onclick="getData" style="line-height:200px">
- 閲嶆柊鑾峰彇
- </Reacquire>
-</template>
-
-<script>
-import { currentGET } from 'api/modules'
-import {Failuremode} from "@/api/http.js"
-export default {
- data() {
- return {
- options: {},
- countUserNumData: {
- lockNum: 0,
- onlineNum: 0,
- offlineNum: 0,
- totalNum: 0
- },
- pageflag: true,
- timer: null
- };
- },
- created() {
- this.getData()
- },
- mounted() {
- this.changeTiming();
-
- },
- beforeDestroy() {
- // this.clearData()
- },
- methods: {
- changeTiming() {
- setInterval(() => {
- this.getData();
- }, 5000);
- },
- // clearData() {
- // if (this.timer) {
- // clearInterval(this.timer)
- // this.timer = null
- // }
- // },
- async getData() {
- // this.pageflag = true
- let rep = await Failuremode((a)=>{
- console.log(a);
- });
- this.countUserNumData = {
- offlineNum: rep.overtime,
- onlineNum: rep.sensitization,
- lockNum: rep.rgVcCar,
- totalNum: rep.total
- },
- this.$nextTick(() => {
- this.init()
- })
- // this.pageflag =false
-
- // currentGET('big1').then(res => {
- // //鍙墦鍗颁竴娆�
- // if (!this.timer) {
- // console.log("璁惧鎬昏", res);
- // }
- // if (res.success) {
- // this.countUserNumData = res.data
- // this.$nextTick(() => {
- // this.init()
- // })
-
- // } else {
- // this.pageflag = false
- // this.$Message({
- // text: res.msg,
- // type: 'warning'
- // })
- // }
- // })
-
- },
- //杞
- switper() {
- if (this.timer) {
- return
- }
- let looper = (a) => {
- this.getData()
- };
- this.timer = setInterval(looper, this.$store.state.setting.echartsAutoTime);
- let myChart = this.$refs.charts.chart
- myChart.on('mouseover', params => {
- this.clearData()
- });
- myChart.on('mouseout', params => {
- this.timer = setInterval(looper, this.$store.state.setting.echartsAutoTime);
- });
- },
- init() {
- let total = this.countUserNumData.totalNum;
- let colors = ["#ECA444", "#33A1DB", "#56B557","#ffb8c6"];
- let piedata = {
- name: "鏁呴殰绉嶇被棰戠巼",
- type: "pie",
- radius: ["42%", "65%"],
- avoidLabelOverlap: false,
- itemStyle: {
- borderRadius: 4,
- borderColor: "rgba(0,0,0,0)",
- borderWidth: 2,
- },
-
- color: colors,
- data: [
- // {
- // value: 0,
- // name: "鍛婅",
- // label: {
- // shadowColor: colors[0],
- // },
- // },
- {
- value: this.countUserNumData.onlineNum,
- name: "鍏夌數鏁呴殰",
- label: {
- shadowColor: colors[0],
- },
- },
- {
- value: this.countUserNumData.lockNum,
- name: "鍥涘悜杞︽晠闅�",
- label: {
- shadowColor: colors[2],
- },
- },
- // {
- // value: this.countUserNumData.onlineNum,
- // name: "瓒呴檺浣嶆晠闅�",
- // label: {
- // shadowColor: colors[1],
- // },
- // },
- {
- value: this.countUserNumData.offlineNum,
- name: "瓒呮椂鏁呴殰",
- label: {
- shadowColor: colors[3],
- },
- },
- ],
- };
- this.options = {
- title: {
- // zlevel: 0,
- text: ["{value|" + total + "}", "{name|鎬绘暟}"].join("\n"),
- top: "center",
- left: "center",
- textStyle: {
- rich: {
- value: {
- color: "#ffffff",
- fontSize: 24,
- fontWeight: "bold",
- lineHeight: 20,
- },
- name: {
- color: "#ffffff",
- lineHeight: 20,
- },
- },
- },
- },
- tooltip: {
- trigger: "item",
- backgroundColor: "rgba(0,0,0,.6)",
- borderColor: "rgba(147, 235, 248, .8)",
- textStyle: {
- color: "#FFF",
- },
- },
- legend: {
- show: false,
- top: "5%",
- left: "center",
- },
- series: [
- //灞曠ず鍦嗙偣
- {
- ...piedata,
- tooltip: { show: true },
- label: {
- formatter: " {b|{b}}",
- // position: "outside",
- rich: {
- b: {
- color: "#fff",
- fontSize: 12,
- lineHeight: 26,
- },
- c: {
- color: "#31ABE3",
- fontSize: 14,
- },
- per: {
- color: "#31ABE3",
- fontSize: 14,
- },
- },
- },
- labelLine: {
- length: 30, // 绗竴娈电嚎 闀垮害
- length2: 46, // 绗簩娈电嚎 闀垮害
- show: true,
-
- },
- emphasis: {
- show: true,
- },
- },
- {
- ...piedata,
- tooltip: { show: true },
- itemStyle: {},
- label: {
- backgroundColor: "inherit", //鍦嗙偣棰滆壊锛宎uto锛氭槧灏勭殑绯诲垪鑹�
- height: 0,
- width: 0,
- lineHeight: 0,
- borderRadius: 2.5,
- shadowBlur: 8,
- shadowColor: "auto",
- padding: [2.5, -2.5, 2.5, -2.5],
- },
- labelLine: {
- length: 30, // 绗竴娈电嚎 闀垮害
- length2: 46, // 绗簩娈电嚎 闀垮害
- show: false,
- },
- },
- ],
- };
- },
- },
-};
-</script>
-<style lang='scss' scoped>
-</style>
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/left-top.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/left-top.vue"
deleted file mode 100644
index 4f7f439..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/left-top.vue"
+++ /dev/null
@@ -1,250 +0,0 @@
-<!--
- * @Author: daidai
- * @Date: 2022-02-28 16:16:42
- * @LastEditors: Please set LastEditors
- * @LastEditTime: 2022-07-20 17:57:11
- * @FilePath: \web-pc\src\pages\big-screen\view\indexs\left-center.vue
--->
-<template>
- <ul class="user_Overview flex" v-if="pageflag">
- <li class="user_Overview-item" style="color: #00fdfa">
- <div class="user_Overview_nums allnum ">
- <dv-digital-flop :config="onlineconfig" style="width:100%;height:100%;" />
- </div>
- <p>涓夋ゼ璐ф灦</p>
- </li>
- <li class="user_Overview-item" style="color: #07f7a8">
- <div class="user_Overview_nums online">
- <dv-digital-flop :config="config" style="width:100%;height:100%;" />
- </div>
- <p>浜旀ゼ璐ф灦</p>
- </li>
- <li class="user_Overview-item" style="color: #e3b337">
- <div class="user_Overview_nums offline">
- <dv-digital-flop :config="offlineconfig" style="width:100%;height:100%;" />
-
- </div>
- <p>鍏ゼ璐ф灦</p>
- </li>
- <li class="user_Overview-item" style="color: #f5023d">
- <div class="user_Overview_nums laramnum">
- <dv-digital-flop :config="laramnumconfig" style="width:100%;height:100%;" />
- </div>
- <p>涓冩ゼ璐ф灦</p>
- </li>
- </ul>
- <Reacquire v-else @onclick="getData" line-height="200px">
- 閲嶆柊鑾峰彇
- </Reacquire>
-</template>
-
-<script>
-import { currentGET } from 'api/modules'
-import {Floorfault} from "@/api/http.js"
-let style = {
- fontSize: 24
-}
-export default {
- data() {
- return {
- options: {},
- userOverview: {
- alarmNum: 2,
- offlineNum: 3,
- onlineNum: 5,
- totalNum: 10,
- },
- pageflag: true,
- timer: null,
- config: {
- number: [100],
- content: '{nt}',
- style: {
- ...style,
- // stroke: "#00fdfa",
- fill: "#00fdfa",
- },
- },
- onlineconfig: {
- number: [0],
- content: '{nt}',
- style: {
- ...style,
- // stroke: "#07f7a8",
- fill: "#07f7a8",
- },
- },
- offlineconfig: {
- number: [0],
- content: '{nt}',
- style: {
- ...style,
- // stroke: "#e3b337",
- fill: "#e3b337",
- },
- },
- laramnumconfig: {
- number: [0],
- content: '{nt}',
- style: {
- ...style,
- // stroke: "#f5023d",
- fill: "#f5023d",
- },
- }
-
- };
- },
- filters: {
- numsFilter(msg) {
- return msg || 0;
- },
- },
- created() {
- this.getData()
- },
- mounted() {
- },
- beforeDestroy() {
- this.clearData()
-
- },
- methods: {
- clearData() {
- if (this.timer) {
- clearInterval(this.timer)
- this.timer = null
- }
- },
- async getData() {
- this.pageflag = true;
- // currentGET("big2").then((res) => {
- // if (!this.timer) {
- // console.log("璁惧鎬昏2", res);
- // }
- // if (res.success) {
- // this.userOverview = res.data;
- // this.onlineconfig = {
- // ...this.onlineconfig,
- // number: [1]
- // }
- // this.config = {
- // ...this.config,
- // number: [7]
- // }
- // this.offlineconfig = {
- // ...this.offlineconfig,
- // number: [4]
- // }
- // this.laramnumconfig = {
- // ...this.laramnumconfig,
- // number: [10]
- // }
- // this.switper();
- // } else {
- // this.pageflag = false;
- // this.$Message.warning(res.msg);
- // }
- // });
- let rep = await Floorfault((a)=>{
- console.log(a);
- });
- this.onlineconfig = {
- ...this.onlineconfig,
- number: [rep.threefloor]
- }
- this.config = {
- ...this.config,
- number: [rep.fivefloor]
- }
- this.offlineconfig = {
- ...this.offlineconfig,
- number: [rep.sixfloor]
- }
- this.laramnumconfig = {
- ...this.laramnumconfig,
- number: [rep.sevenfloor]
- }
- this.switper();
- },
- //杞
- switper() {
- if (this.timer) {
- return
- }
- let looper = (a) => {
- this.getData()
- };
- this.timer = setInterval(looper, this.$store.state.setting.echartsAutoTime);
- },
- },
-};
-</script>
-<style lang='scss' scoped>
-.user_Overview {
- li {
- flex: 1;
-
- p {
- text-align: center;
- height: 16px;
- font-size: 16px;
- }
-
- .user_Overview_nums {
- width: 100px;
- height: 100px;
- text-align: center;
- line-height: 100px;
- font-size: 22px;
- margin: 50px auto 30px;
- background-size: cover;
- background-position: center center;
- position: relative;
-
- &::before {
- content: '';
- position: absolute;
- width: 100%;
- height: 100%;
- top: 0;
- left: 0;
- }
-
- &.bgdonghua::before {
- animation: rotating 14s linear infinite;
- }
- }
-
- .allnum {
-
- // background-image: url("../../assets/img/left_top_lan.png");
- &::before {
- background-image: url("../../assets/img/left_top_lan.png");
-
- }
- }
-
- .online {
- &::before {
- background-image: url("../../assets/img/left_top_lv.png");
-
- }
- }
-
- .offline {
- &::before {
- background-image: url("../../assets/img/left_top_huang.png");
-
- }
- }
-
- .laramnum {
- &::before {
- background-image: url("../../assets/img/left_top_hong.png");
-
- }
- }
- }
-}
-</style>
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/pass-two.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/pass-two.vue"
deleted file mode 100644
index 3878c67..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/pass-two.vue"
+++ /dev/null
@@ -1,295 +0,0 @@
-<template>
- <dv-scroll-board :config="config" style="width:100%;height:400px" />
-</template>
-
-<script>
-import axios from 'axios';
-
-export default {
- name: 'TaskListScrollBoard',
- components: {
- // 濡傛灉缁勪欢宸插叏灞�娉ㄥ唽锛屽垯涓嶉渶瑕佸湪杩欓噷娉ㄥ唽
- },
- data() {
- return {
- taskList: [],
- refreshInterval: null,
- config: null
- };
- },
- mounted() {
- this.getTaskData();
- this.startAutoRefresh();
- },
- beforeDestroy() {
- this.stopAutoRefresh();
- },
- methods: {
- // 鑾峰彇浠诲姟鏁版嵁
- getTaskData() {
- axios.get("http://127.0.0.1:8889/api/Dashboard/CurrentTasks")
- .then((response) => {
-
- if (response && Array.isArray(response)) {
- // 涓嶇敤data,閫夋嫨鏈夋暟鎹�
- const tasks = response;
- // 杩囨护锛屽彧鏄剧ず寮傚父鐘舵�佺殑浠诲姟 (298, 299, 198, 199, 999)
- this.taskList = tasks.filter(task =>
- [298, 299, 198, 199, 999].includes(task.taskStatus)
- );
- this.updateBoardData();
- } else {
- this.taskList = [];
- this.updateBoardData();
- }
- })
- .catch((error) => {
- console.error("鑾峰彇浠诲姟鏁版嵁澶辫触:", error);
- this.taskList = [];
- this.updateBoardData();
- });
- },
-
- // 鏇存柊婊氬姩琛ㄦ牸鏁版嵁
- updateBoardData() {
- let boardData = [];
- if (this.taskList.length === 0) {
- boardData = [['--', '--', '--', '--', '--', '鏃犲紓甯镐换鍔�']];
- } else {
- boardData = this.taskList.map((task) => {
- // 璁剧疆浠诲姟绫诲瀷棰滆壊
- const taskType = this.getTaskType(task);
- const typeColor = this.getTaskTypeColor(taskType);
- const typeHtml = `<span style="color:${typeColor};font-weight:bold;font-size:18px">${taskType}</span>`;
-
- // 璁剧疆鎵樼洏绫诲瀷
- const palletType = this.getPalletTypeText(task);
- const palletColor = this.getPalletTypeColor(task);
- const palletHtml = `<span style="color:${palletColor};font-weight:bold;font-size:18px;padding:4px 8px;border-radius:3px;background:rgba(255,255,255,0.1)">${palletType}</span>`;
-
- // 璁剧疆鐩殑鍦帮紙鍙樉绀哄悗8浣嶏級
- let targetAddress = task.targetAddress || '--';
- if (targetAddress.length > 8) {
- targetAddress = targetAddress.slice(-8); // 鍙彇鍚�8浣�
- }
- const addressHtml = `<span style="color:#67e0e3;font-size:20px;font-weight:bold;font-family:monospace">${targetAddress}</span>`;
-
- // 璁剧疆鐘舵��
- const statusText = this.getStatusText(task);
- const statusClass = this.getStatusClass(task);
- const statusColor = this.getStatusColor(statusClass);
- const statusHtml = `<span style="color:${statusColor};font-weight:bold;font-size:18px;padding:4px 8px;border-radius:4px;background:${this.getStatusBgColor(statusClass)};animation: pulse 1.5s infinite;">${statusText}</span>`;
-
- // 鏍煎紡鍖栨椂闂�
- const timeText = this.formatDate(task.createDate);
-
- return [
- `<span style="color:#37a2da;font-family:monospace;font-size:18px">${task.taskNum || '--'}</span>`,
- typeHtml,
- palletHtml,
- addressHtml,
- `<span style="color:#9fe6b8;font-size:18px">${timeText}</span>`,
- statusHtml
- ];
- });
- }
-
- this.config = {
- header: ['浠诲姟鍙�', '绫诲瀷', '鐗╂枡', '鐩殑鍦�', '鍒涘缓鏃堕棿', '寮傚父'],
- data: boardData,
- index: false,
- columnWidth: [100, 100, 150, 180, 180, 150],
- align: ['center', 'center', 'center', 'center', 'center', 'center'],
- waitTime: 2000,
- rowNum: 8,
- headerBGC: 'rgba(0, 0, 0, 0.5)',
- headerHeight: 55,
- oddRowBGC: 'rgba(0, 0, 0, 0.3)',
- evenRowBGC: 'rgba(0, 0, 0, 0.5)',
- carousel: 'single',
- // 娣诲姞瀛椾綋澶у皬璁剧疆
- headerStyle: {
- fontSize: 22,
- fontWeight: 'bold'
- },
- rowStyle: {
- fontSize: 20,
- height: 50
- }
- };
- },
-
- // 鑾峰彇浠诲姟绫诲瀷棰滆壊
- getTaskTypeColor(type) {
- const colorMap = {
- '鍏ュ簱': '#37a2da',
- '鍑哄簱': '#32c5e9',
- '绉诲簱': '#67e0e3',
- '鏈煡': '#ffdb5c'
- };
- return colorMap[type] || '#ffdb5c';
- },
-
- // 鑾峰彇鎵樼洏绫诲瀷鏂囧瓧
- getPalletTypeText(task) {
- // 鏍规嵁 warehouseId 鍜� palletType 鍒ゆ柇
- const warehouseId = task.warehouseId;
- const palletType = task.palletType;
-
- if (warehouseId === 2) {
- // warehouseId=2鏄垚鍝�
- return '鎴愬搧';
- } else if (warehouseId === 1) {
- // warehouseId=1锛屾牴鎹畃alletType鍒ゆ柇
- if (palletType === '1' || palletType === 1) {
- return '甯冨嵎';
- } else if (palletType === '2' || palletType === 2) {
- return '鏉惧竷鍗�';
- }
- }
-
- return '鏈煡';
- },
-
- // 鑾峰彇鎵樼洏绫诲瀷棰滆壊
- getPalletTypeColor(task) {
- const warehouseId = task.warehouseId;
- const palletType = task.palletType;
-
- if (warehouseId === 2) {
- return '#ff9f7f'; // 鎴愬搧 - 姗欒壊
- } else if (warehouseId === 1) {
- if (palletType === '1' || palletType === 1) {
- return '#9fe6b8'; // 甯冨嵎 - 缁胯壊
- } else if (palletType === '2' || palletType === 2) {
- return '#ffdb5c'; // 鏉惧竷鍗� - 榛勮壊
- }
- }
-
- return '#95a5a6'; // 鏈煡 - 鐏拌壊
- },
-
- // 鑾峰彇鐘舵�侀鑹�
- getStatusColor(statusClass) {
- const colorMap = {
- 'status-completed': '#ffffff',
- 'status-processing': '#ffffff',
- 'status-pending': '#ffffff',
- 'status-cancelled': '#ffffff',
- 'status-error': '#ffffff',
- 'status-default': '#ffffff'
- };
- return colorMap[statusClass] || '#ffffff';
- },
-
- // 鑾峰彇鐘舵�佽儗鏅鑹�
- getStatusBgColor(statusClass) {
- const colorMap = {
- 'status-completed': 'rgba(46, 204, 113, 0.7)',
- 'status-processing': 'rgba(52, 152, 219, 0.7)',
- 'status-pending': 'rgba(243, 156, 18, 0.7)',
- 'status-cancelled': 'rgba(149, 165, 166, 0.7)',
- 'status-error': 'rgba(231, 76, 60, 0.7)', // 閿欒 - 绾㈣壊鑳屾櫙
- 'status-default': 'rgba(127, 140, 141, 0.7)'
- };
- return colorMap[statusClass] || 'rgba(127, 140, 141, 0.7)';
- },
-
- // 鍚姩鑷姩鍒锋柊
- startAutoRefresh() {
- this.refreshInterval = setInterval(() => {
- this.getTaskData();
- }, 5000);
- },
-
- // 鍋滄鑷姩鍒锋柊
- stopAutoRefresh() {
- if (this.refreshInterval) {
- clearInterval(this.refreshInterval);
- this.refreshInterval = null;
- }
- },
-
- // 鏍煎紡鍖栨棩鏈燂紙绠�鍖栫増锛�
- formatDate(dateString) {
- if (!dateString) return '--';
- try {
- const date = new Date(dateString);
- return date.toLocaleTimeString('zh-CN', {
- hour: '2-digit',
- minute: '2-digit',
- second: '2-digit',
- hour12: false
- });
- } catch (e) {
- return '--';
- }
- },
-
- // 鑾峰彇浠诲姟绫诲瀷鏂囧瓧
- getTaskType(task) {
- const status = task.taskStatus;
-
- // 鍏ュ簱寮傚父鐘舵��
- if (status === 298 || status === 299) {
- return '鍏ュ簱';
- }
- // 鍑哄簱寮傚父鐘舵��
- else if (status === 198 || status === 199) {
- return '鍑哄簱';
- }
- // 绉诲簱寮傚父
- else if (status === 999) {
- return '绉诲簱';
- }
-
- return '鏈煡';
- },
-
- // 鏍规嵁鐘舵�佸�艰幏鍙栫姸鎬佹枃瀛楁弿杩�
- getStatusText(task) {
- const status = task.taskStatus;
-
- const statusMap = {
- 298: '杈撻�佺嚎鍏ュ簱寮傚父',
- 299: '鍫嗗灈鏈哄叆搴撳紓甯�',
- 198: '杈撻�佺嚎鍑哄簱寮傚父',
- 199: '鍫嗗灈鏈哄嚭搴撳紓甯�',
- 999: '绉诲簱寮傚父'
- };
- return statusMap[status] || `鏈煡寮傚父(${status})`;
- },
-
- // 鑾峰彇鐘舵�佸搴旂殑CSS绫�
- getStatusClass(task) {
- const status = task.taskStatus;
-
- // 鎵�鏈夎鏄剧ず鐨勭姸鎬侀兘鏄紓甯哥姸鎬�
- if ([298, 299, 198, 199, 999].includes(status)) {
- return 'status-error';
- }
- return 'status-default';
- }
- }
-};
-</script>
-
-<style scoped>
-/* 纭繚婊氬姩琛ㄦ牸姝g‘鏄剧ず */
-dv-scroll-board {
- font-family: 'Microsoft YaHei', Arial, sans-serif;
-}
-
-/* 閿欒鐘舵�侀棯鐑佸姩鐢� */
-@keyframes pulse {
- 0% {
- opacity: 1;
- }
- 50% {
- opacity: 0.7;
- }
- 100% {
- opacity: 1;
- }
-}
-</style>
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/right-bottom.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/right-bottom.vue"
deleted file mode 100644
index b1fb54d..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/right-bottom.vue"
+++ /dev/null
@@ -1,194 +0,0 @@
-<!--
- * @Author: daidai
- * @Date: 2022-03-01 15:27:58
- * @LastEditors: Please set LastEditors
- * @LastEditTime: 2022-05-07 11:24:14
- * @FilePath: \web-pc\src\pages\big-screen\view\indexs\right-center.vue
--->
-<template>
- <div v-if="pageflag" class="right_center_wrap beautify-scroll-def" :class="{ 'overflow-y-auto': !sbtxSwiperFlag }">
- <component :is="components" :data="list" :class-option="defaultOption">
- <ul class="right_center ">
- <li class="right_center_item" v-for="(item, i) in list" :key="i">
- <span class="orderNum">{{ i + 1 }}</span>
- <div class="inner_right">
- <div class="dibu"></div>
- <div class="flex">
- <div class="info">
- <span class="labels ">璁惧ID锛�</span>
- <span class="contents zhuyao"> {{ item.gatewayno }}</span>
- </div>
- <div class="info">
- <span class="labels">鍨嬪彿锛�</span>
- <span class="contents "> {{ item.terminalno }}</span>
- </div>
- <div class="info">
- <span class="labels">鍛婅鍊硷細</span>
- <span class="contents warning"> {{ item.alertvalue | montionFilter }}</span>
- </div>
- </div>
-
-
- <div class="flex">
-
- <div class="info">
- <span class="labels"> 鍦板潃锛�</span>
- <span class="contents ciyao" style="font-size:12px"> {{ item.provinceName }}/{{ item.cityName }}/{{ item.countyName }}</span>
- </div>
- <div class="info time">
- <span class="labels">鏃堕棿锛�</span>
- <span class="contents" style="font-size:12px"> {{ item.createtime }}</span>
- </div>
-
- </div>
- <div class="flex">
-
- <div class="info">
- <span class="labels">鎶ヨ鍐呭锛�</span>
- <span class="contents ciyao" :class="{ warning: item.alertdetail }"> {{ item.alertdetail || '鏃�'
- }}</span>
- </div>
- </div>
- </div>
- </li>
- </ul>
- </component>
- </div>
- <Reacquire v-else @onclick="getData" style="line-height:200px" />
-
-</template>
-
-<script>
-import { currentGET } from 'api/modules'
-import vueSeamlessScroll from 'vue-seamless-scroll' // vue2寮曞叆鏂瑰紡
-import Kong from '../../components/kong.vue'
-export default {
- components: { vueSeamlessScroll, Kong },
-
- data() {
- return {
- list: [],
- pageflag: true,
- defaultOption: {
- ...this.$store.state.setting.defaultOption,
- limitMoveNum: 3,
- singleHeight: 250,
- step:0,
- }
-
- };
- },
- computed: {
- sbtxSwiperFlag() {
- let ssyjSwiper = this.$store.state.setting.ssyjSwiper
- if (ssyjSwiper) {
- this.components = vueSeamlessScroll
- } else {
- this.components = Kong
- }
- return ssyjSwiper
- }
- },
- created() {
- this.getData()
- },
-
- mounted() { },
- methods: {
- getData() {
- this.pageflag = true
- // this.pageflag =false
- currentGET('big5', { limitNum: 50 }).then(res => {
- console.log('瀹炴椂棰勮', res);
- if (res.success) {
- this.list = res.data.list
- let timer = setTimeout(() => {
- clearTimeout(timer)
- this.defaultOption.step=this.$store.state.setting.defaultOption.step
- }, this.$store.state.setting.defaultOption.waitTime);
- } else {
- this.pageflag = false
- this.$Message.warning(res.msg)
- }
- })
- },
-
- },
-};
-</script>
-<style lang='scss' scoped>
-.right_center {
- width: 100%;
- height: 100%;
-
- .right_center_item {
- display: flex;
- align-items: center;
- justify-content: center;
- height: auto;
- padding: 10px;
- font-size: 14px;
- color: #fff;
-
- .orderNum {
- margin: 0 20px 0 -20px;
- }
-
-
- .inner_right {
- position: relative;
- height: 100%;
- width: 400px;
- flex-shrink: 0;
- line-height: 1.5;
-
- .dibu {
- position: absolute;
- height: 2px;
- width: 104%;
- background-image: url("../../assets/img/zuo_xuxian.png");
- bottom: -12px;
- left: -2%;
- background-size: cover;
- }
- }
-
- .info {
- margin-right: 10px;
- display: flex;
- align-items: center;
-
- .labels {
- flex-shrink: 0;
- font-size: 12px;
- color: rgba(255, 255, 255, 0.6);
- }
-
- .zhuyao {
- color: $primary-color;
- font-size: 15px;
- }
-
- .ciyao {
- color: rgba(255, 255, 255, 0.8);
- }
-
- .warning {
- color: #E6A23C;
- font-size: 15px;
- }
- }
-
- }
-}
-
-.right_center_wrap {
- overflow: hidden;
- width: 100%;
- height: 250px;
-}
-
-.overflow-y-auto {
- overflow-y: auto;
-}
-</style>
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/right-center.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/right-center.vue"
deleted file mode 100644
index dfb83fd..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/right-center.vue"
+++ /dev/null
@@ -1,485 +0,0 @@
-<template>
- <div class="task-trend-container">
- <div class="chart-wrapper">
- <div class="chart" id="task-trend-chart"></div>
- </div>
- </div>
-</template>
-
-<script>
-import * as echarts from "echarts";
-import axios from 'axios';
-
-export default {
- name: 'TaskTrendChart',
- data() {
- return {
- trendData: [],
- chart: null,
- refreshInterval: null,
- currentTimeRange: 'week' // day, week, month
- };
- },
- mounted() {
- this.getTrendData();
- // 鐩戝惉绐楀彛澶у皬鍙樺寲
- window.addEventListener("resize", this.resizeChart);
- },
- beforeDestroy() {
- this.stopAutoRefresh();
- window.removeEventListener("resize", this.resizeChart);
- if (this.chart) {
- this.chart.dispose();
- this.chart = null;
- }
- },
- methods: {
- // 鑾峰彇瓒嬪娍鏁版嵁
- async getTrendData() {
- try {
- const response = await axios.get("http://127.0.0.1:8889/api/Dashboard/TodayTrafficStats");
-
- const responseData = response;
-
- if (responseData && Array.isArray(responseData)) {
- // 澶勭悊API杩斿洖鐨勬暟鎹紝娣诲姞鏍煎紡鍖栧悗鐨勬棩鏈熸爣绛�
- this.trendData = responseData.map(item => ({
- ...item,
- dayLabel: this.formatDateLabel(item.date)
- }));
- this.initChart();
- } else {
- console.error("鑾峰彇浠诲姟瓒嬪娍鏁版嵁澶辫触:", responseData);
- }
- } catch (error) {
- console.error("鑾峰彇浠诲姟瓒嬪娍鏁版嵁澶辫触:", error);
- }
- },
-
- // 鏍煎紡鍖栨棩鏈熸爣绛撅紙浠�"2026-01-17"鏍煎紡鍖栦负"01-17"锛�
- formatDateLabel(dateStr) {
- if (!dateStr) return '';
- const date = new Date(dateStr);
- const month = (date.getMonth() + 1).toString().padStart(2, '0');
- const day = date.getDate().toString().padStart(2, '0');
- return `${month}-${day}`;
- },
-
- // 鑾峰彇鏃堕棿鑼冨洿鏄剧ず鏍囩
- getTimeRangeLabel() {
- const labels = {
- 'day': '浠婃棩',
- 'week': '杩�7澶�',
- 'month': '鏈湀'
- };
- return labels[this.currentTimeRange] || '杩�7澶�';
- },
-
- // 鍚姩鑷姩鍒锋柊
- startAutoRefresh() {
- if (this.refreshInterval) {
- clearInterval(this.refreshInterval);
- }
- this.refreshInterval = setInterval(() => {
- this.getTrendData();
- }, 10000); // 10绉掑埛鏂颁竴娆�
- },
-
- // 鍋滄鑷姩鍒锋柊
- stopAutoRefresh() {
- if (this.refreshInterval) {
- clearInterval(this.refreshInterval);
- this.refreshInterval = null;
- }
- },
-
- // 鍒濆鍖栧浘琛�
- initChart() {
- const chartDom = document.getElementById('task-trend-chart');
- if (!chartDom) return;
-
- if (this.chart) {
- this.chart.dispose();
- }
-
- this.chart = echarts.init(chartDom, 'dark');
- const option = this.getChartOption();
- this.chart.setOption(option);
-
- // 缁戝畾鐐瑰嚮浜嬩欢
- this.chart.on('click', this.handleChartClick);
-
- this.startAutoRefresh();
- },
-
- // 鑾峰彇鍥捐〃閰嶇疆
- getChartOption() {
- const dates = this.trendData.map(item => item.dayLabel);
- const inboundData = this.trendData.map(item => item.inboundCount);
- const outboundData = this.trendData.map(item => item.outboundCount);
- const totalData = this.trendData.map(item => item.totalCount);
-
- // 璁$畻缁熻鏁版嵁
- const totalInbound = inboundData.reduce((a, b) => a + b, 0);
- const totalOutbound = outboundData.reduce((a, b) => a + b, 0);
- const totalTasks = totalData.reduce((a, b) => a + b, 0);
-
- return {
- backgroundColor: 'transparent',
- title: {
- subtext: `${this.getTimeRangeLabel()} | 鍏ュ簱: ${totalInbound} | 鍑哄簱: ${totalOutbound} | 鎬昏: ${totalTasks}`,
- subtextStyle: {
- color: '#8ad3ff',
- fontSize: 12
- }
- },
- tooltip: {
- trigger: 'axis',
- axisPointer: {
- type: 'cross',
- crossStyle: {
- color: '#999'
- }
- },
- backgroundColor: 'rgba(0, 0, 0, 0.85)',
- borderColor: '#00ffff',
- borderWidth: 1,
- textStyle: {
- color: '#ffffff',
- fontSize: 12
- },
- formatter: (params) => {
- let html = `<div style="font-weight: bold; color: #00ffff; margin-bottom: 8px; border-bottom: 1px solid #00ffff; padding-bottom: 5px;">
- ${params[0].axisValue} - 浠诲姟缁熻
- </div>`;
-
- params.forEach(param => {
- const icon = param.seriesType === 'bar' ? '鈻�' : '鈼�';
-
- html += `
- <div style="display: flex; justify-content: space-between; align-items: center; margin: 5px 0;">
- <div style="display: flex; align-items: center;">
- <span style="color: ${param.color}; margin-right: 8px;">${icon}</span>
- <span style="color: #ddd;">${param.seriesName}:</span>
- </div>
- <span style="font-weight: bold; color: ${param.color};">${param.value}涓�</span>
- </div>
- `;
- });
-
- return html;
- }
- },
- legend: {
- data: ['鍏ュ簱鏁伴噺', '鍑哄簱鏁伴噺', '浠诲姟鎬绘暟'],
- top: '15%',
- textStyle: {
- color: '#ffffff',
- fontSize: 12
- },
- itemStyle: {
- borderColor: '#00ffff',
- borderWidth: 1
- }
- },
- grid: {
- left: '10%',
- right: '10%',
- bottom: '15%',
- top: '25%',
- containLabel: true
- },
- xAxis: [
- {
- type: 'category',
- data: dates,
- axisPointer: {
- type: 'shadow'
- },
- axisLabel: {
- color: '#ffffff',
- fontSize: 12,
- rotate: dates.length > 7 ? 45 : 0
- },
- axisLine: {
- lineStyle: {
- color: '#00ffff',
- width: 2,
- shadowBlur: 5,
- shadowColor: '#00ffff'
- }
- },
- axisTick: {
- show: true,
- lineStyle: {
- color: '#00ffff'
- }
- }
- }
- ],
- yAxis: [
- {
- type: 'value',
- name: '浠诲姟鏁伴噺 (涓�)',
- nameTextStyle: {
- color: '#ffffff',
- fontSize: 12,
- textShadow: '0 0 3px #00ffff'
- },
- min: 0,
- axisLabel: {
- color: '#ffffff',
- fontSize: 12,
- formatter: '{value}'
- },
- axisLine: {
- show: true,
- lineStyle: {
- color: '#ff416c',
- width: 2
- }
- },
- splitLine: {
- lineStyle: {
- color: 'rgba(255, 65, 108, 0.2)',
- type: 'dashed'
- }
- }
- }
- ],
- series: [
- {
- name: '鍏ュ簱鏁伴噺',
- type: 'bar',
- yAxisIndex: 0,
- data: inboundData,
- barWidth: '30%',
- itemStyle: {
- color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
- { offset: 0, color: '#0080ff' },
- { offset: 0.5, color: '#0044ff' },
- { offset: 1, color: '#002288' }
- ]),
- borderRadius: [4, 4, 0, 0],
- borderColor: '#8ad3ff',
- borderWidth: 1,
- shadowColor: 'rgba(0, 128, 255, 0.5)',
- shadowBlur: 10,
- shadowOffsetY: 3
- },
- emphasis: {
- itemStyle: {
- shadowColor: 'rgba(0, 128, 255, 0.8)',
- shadowBlur: 15,
- borderColor: '#ffffff',
- borderWidth: 2
- }
- },
- label: {
- show: true,
- position: 'top',
- formatter: '{c}',
- color: '#8ad3ff',
- fontSize: 11,
- fontWeight: 'bold'
- }
- },
- {
- name: '鍑哄簱鏁伴噺',
- type: 'bar',
- yAxisIndex: 0,
- data: outboundData,
- barWidth: '30%',
- itemStyle: {
- color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
- { offset: 0, color: '#ff416c' },
- { offset: 0.5, color: '#ff2b2b' },
- { offset: 1, color: '#cc0000' }
- ]),
- borderRadius: [4, 4, 0, 0],
- borderColor: '#ff8a8a',
- borderWidth: 1,
- shadowColor: 'rgba(255, 65, 108, 0.5)',
- shadowBlur: 10,
- shadowOffsetY: 3
- },
- emphasis: {
- itemStyle: {
- shadowColor: 'rgba(255, 65, 108, 0.8)',
- shadowBlur: 15,
- borderColor: '#ffffff',
- borderWidth: 2
- }
- },
- label: {
- show: true,
- position: 'top',
- formatter: '{c}',
- color: '#ff8a8a',
- fontSize: 11,
- fontWeight: 'bold'
- }
- },
- {
- name: '浠诲姟鎬绘暟',
- type: 'line',
- yAxisIndex: 0,
- data: totalData,
- smooth: true,
- lineStyle: {
- width: 4,
- color: new echarts.graphic.LinearGradient(0, 0, 1, 0, [
- { offset: 0, color: '#ffcc00' },
- { offset: 1, color: '#ff8800' }
- ]),
- shadowColor: 'rgba(255, 204, 0, 0.5)',
- shadowBlur: 10
- },
- symbol: 'circle',
- symbolSize: 10,
- itemStyle: {
- color: '#ffcc00',
- borderColor: '#ffffff',
- borderWidth: 2
- },
- emphasis: {
- itemStyle: {
- color: '#ffffff',
- borderColor: '#ffcc00',
- borderWidth: 3
- }
- },
- label: {
- show: true,
- position: 'top',
- formatter: '{c}',
- color: '#ffcc00',
- fontSize: 12,
- fontWeight: 'bold',
- shadowColor: 'rgba(255, 204, 0, 0.5)',
- shadowBlur: 5
- },
- areaStyle: {
- color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
- { offset: 0, color: 'rgba(255, 204, 0, 0.3)' },
- { offset: 1, color: 'rgba(255, 136, 0, 0.1)' }
- ])
- }
- }
- ],
- graphic: [
- {
- type: 'group',
- left: 'center',
- top: '85%',
- children: [
-
- ]
- }
- ]
- };
- },
-
- // 澶勭悊鍥捐〃鐐瑰嚮浜嬩欢
- handleChartClick(params) {
- // 鍙互鏍规嵁鐐瑰嚮鐨勭郴鍒楁垨鏁版嵁鐐规墽琛岀浉搴旀搷浣�
- },
-
- // 閲嶇粯鍥捐〃
- resizeChart() {
- if (this.chart) {
- this.chart.resize();
- }
- }
- }
-};
-</script>
-
-<style lang="scss" scoped>
-.task-trend-container {
- width: 100%;
- height: 100%;
- padding: 0;
- background: transparent;
- position: relative;
-
- // 绉戝够鑳屾櫙鏁堟灉
- &::before {
- content: '';
- position: absolute;
- top: 0;
- left: 0;
- right: 0;
- bottom: 0;
- background:
- radial-gradient(circle at 20% 30%, rgba(0, 100, 255, 0.1) 0%, transparent 50%),
- radial-gradient(circle at 80% 70%, rgba(255, 0, 100, 0.1) 0%, transparent 50%),
- linear-gradient(45deg, #0a0a0f 0%, #121225 50%, #0a0a1a 100%);
- z-index: -1;
- }
-
- // 缃戞牸绾挎晥鏋�
- &::after {
- content: '';
- position: absolute;
- top: 0;
- left: 0;
- right: 0;
- bottom: 0;
- background-image:
- linear-gradient(rgba(0, 255, 255, 0.05) 1px, transparent 1px),
- linear-gradient(90deg, rgba(0, 255, 255, 0.05) 1px, transparent 1px);
- background-size: 20px 20px;
- z-index: -1;
- opacity: 0.3;
- }
-}
-
-.chart-wrapper {
- width: 100%;
- height: 100%;
- position: relative;
- overflow: hidden;
-
- // 杈规鍏夋晥
- &::before {
- content: '';
- position: absolute;
- top: 0;
- left: 0;
- right: 0;
- bottom: 0;
- border-radius: 4px;
- pointer-events: none;
- z-index: 1;
- }
-}
-
-.chart {
- width: 100%;
- height: 100%;
- position: relative;
- z-index: 0;
-}
-
-// 鍝嶅簲寮忚璁�
-@media (max-width: 768px) {
- .task-trend-container {
- padding: 10px;
- }
-
- .chart-wrapper {
- &::before {
- border-width: 1px;
- }
- }
-}
-
-@media (max-width: 480px) {
- .task-trend-container {
- &::after {
- background-size: 15px 15px;
- }
- }
-}
-</style>
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/right-top.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/right-top.vue"
deleted file mode 100644
index dc9d271..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/right-top.vue"
+++ /dev/null
@@ -1,299 +0,0 @@
-<!--
- * @Author: daidai
- * @Date: 2022-03-01 14:13:04
- * @LastEditors: Please set LastEditors
- * @LastEditTime: 2022-09-27 15:04:49
- * @FilePath: \web-pc\src\pages\big-screen\view\indexs\right-top.vue
--->
-<template>
- <Echart
- id="rightTop"
- :options="option"
- class="right_top_inner"
- v-if="pageflag"
- ref="charts"
- />
- <Reacquire v-else @onclick="getData" style="line-height: 200px">
- 閲嶆柊鑾峰彇
- </Reacquire>
-</template>
-
-<script>
-import { currentGET } from "api/modules";
-import {graphic} from "echarts"
-export default {
- data() {
- return {
- option: {},
- pageflag: false,
- timer: null,
- };
- },
- created() {
-
- },
-
- mounted() {
- this.getData();
- },
- beforeDestroy() {
- this.clearData();
- },
- methods: {
- clearData() {
- if (this.timer) {
- clearInterval(this.timer);
- this.timer = null;
- }
- },
- getData() {
- this.pageflag = true;
- // this.pageflag =false
- currentGET("big4").then((res) => {
- if (!this.timer) {
- console.log("鎶ヨ娆℃暟", res);
- }
- if (res.success) {
- this.countUserNumData = res.data;
- this.$nextTick(() => {
- this.init(res.data.dateList, res.data.numList, res.data.numList2),
- this.switper();
- });
- } else {
- this.pageflag = false;
- this.$Message({
- text: res.msg,
- type: "warning",
- });
- }
- });
- },
- //杞
- switper() {
- if (this.timer) {
- return;
- }
- let looper = (a) => {
- this.getData();
- };
- this.timer = setInterval(
- looper,
- this.$store.state.setting.echartsAutoTime
- );
- let myChart = this.$refs.charts.chart;
- myChart.on("mouseover", (params) => {
- this.clearData();
- });
- myChart.on("mouseout", (params) => {
- this.timer = setInterval(
- looper,
- this.$store.state.setting.echartsAutoTime
- );
- });
- },
- init(xData, yData, yData2) {
- this.option = {
- xAxis: {
- type: "category",
- data: xData,
- boundaryGap: false, // 涓嶇暀鐧斤紝浠庡師鐐瑰紑濮�
- splitLine: {
- show: true,
- lineStyle: {
- color: "rgba(31,99,163,.2)",
- },
- },
- axisLine: {
- // show:false,
- lineStyle: {
- color: "rgba(31,99,163,.1)",
- },
- },
- axisLabel: {
- color: "#7EB7FD",
- fontWeight: "500",
- },
- },
- yAxis: {
- type: "value",
- splitLine: {
- show: true,
- lineStyle: {
- color: "rgba(31,99,163,.2)",
- },
- },
- axisLine: {
- lineStyle: {
- color: "rgba(31,99,163,.1)",
- },
- },
- axisLabel: {
- color: "#7EB7FD",
- fontWeight: "500",
- },
- },
- tooltip: {
- trigger: "axis",
- backgroundColor: "rgba(0,0,0,.6)",
- borderColor: "rgba(147, 235, 248, .8)",
- textStyle: {
- color: "#FFF",
- },
- },
- grid: {
- //甯冨眬
- show: true,
- left: "10px",
- right: "30px",
- bottom: "10px",
- top: "28px",
- containLabel: true,
- borderColor: "#1F63A3",
- },
- series: [
- {
- data: yData,
- type: "line",
- smooth: true,
- symbol: "none", //鍘婚櫎鐐�
- name: "鎶ヨ1娆℃暟",
- color: "rgba(252,144,16,.7)",
- areaStyle: {
- //鍙筹紝涓嬶紝宸︼紝涓�
- color: new graphic.LinearGradient(
- 0,
- 0,
- 0,
- 1,
- [
- {
- offset: 0,
- color: "rgba(252,144,16,.7)",
- },
- {
- offset: 1,
- color: "rgba(252,144,16,.0)",
- },
- ],
- false
- ),
- },
- markPoint: {
- data: [
- {
- name: "鏈�澶у��",
- type: "max",
- valueDim: "y",
- symbol: "rect",
- symbolSize: [60, 26],
- symbolOffset: [0, -20],
- itemStyle: {
- color: "rgba(0,0,0,0)",
- },
- label: {
- color: "#FC9010",
- backgroundColor: "rgba(252,144,16,0.1)",
- borderRadius: 6,
- padding: [7, 14],
- borderWidth: 0.5,
- borderColor: "rgba(252,144,16,.5)",
- formatter: "鎶ヨ1锛歿c}",
- },
- },
- {
- name: "鏈�澶у��",
- type: "max",
- valueDim: "y",
- symbol: "circle",
- symbolSize: 6,
- itemStyle: {
- color: "#FC9010",
- shadowColor: "#FC9010",
- shadowBlur: 8,
- },
- label: {
- formatter: "",
- },
- },
- ],
- },
- },
- {
- data: yData2,
- type: "line",
- smooth: true,
- symbol: "none", //鍘婚櫎鐐�
- name: "鎶ヨ2娆℃暟",
- color: "rgba(9,202,243,.7)",
- areaStyle: {
- //鍙筹紝涓嬶紝宸︼紝涓�
- color: new graphic.LinearGradient(
- 0,
- 0,
- 0,
- 1,
- [
- {
- offset: 0,
- color: "rgba(9,202,243,.7)",
- },
- {
- offset: 1,
- color: "rgba(9,202,243,.0)",
- },
- ],
- false
- ),
- },
- markPoint: {
- data: [
- {
- name: "鏈�澶у��",
- type: "max",
- valueDim: "y",
- symbol: "rect",
- symbolSize: [60, 26],
- symbolOffset: [0, -20],
- itemStyle: {
- color: "rgba(0,0,0,0)",
- },
- label: {
- color: "#09CAF3",
- backgroundColor: "rgba(9,202,243,0.1)",
-
- borderRadius: 6,
- borderColor: "rgba(9,202,243,.5)",
- padding: [7, 14],
- formatter: "鎶ヨ2锛歿c}",
- borderWidth: 0.5,
- },
- },
- {
- name: "鏈�澶у��",
- type: "max",
- valueDim: "y",
- symbol: "circle",
- symbolSize: 6,
- itemStyle: {
- color: "#09CAF3",
- shadowColor: "#09CAF3",
- shadowBlur: 8,
- },
- label: {
- formatter: "",
- },
- },
- ],
- },
- },
- ],
- };
- },
- },
-};
-</script>
-<style lang='scss' scoped>
-.right_top_inner {
- margin-top: -8px;
-}
-</style>
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/sc01-location-status.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/sc01-location-status.vue"
index 257a0c4..6365f48 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/sc01-location-status.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/sc01-location-status.vue"
@@ -25,7 +25,7 @@
// 姣�10绉掑埛鏂颁竴娆℃暟鎹�
this.refreshInterval = setInterval(() => {
this.getData();
- }, 10000);
+ }, 30000);
},
beforeDestroy() {
if (this.chart) {
@@ -61,21 +61,33 @@
}
},
legend: {
- orient: 'vertical',
- right: '10%',
- top: 'center',
+ orient: 'horizontal',
+ bottom: '10%',
+ left: 'center',
textStyle: {
color: '#fff',
- fontSize: 14
+ fontSize: 20
},
- data: ['绌洪棽', '鏈夎揣', '鏈夎揣閿佸畾']
+ data: ['绌洪棽', '鏈夎揣', '鏈夎揣閿佸畾'],
+ width: '80%',
+ itemWidth: 20,
+ itemHeight: 14,
+ itemGap: 30,
+ formatter: function(name) {
+ let value = 0;
+ if (name === '绌洪棽') value = this.locationData.free;
+ if (name === '鏈夎揣') value = this.locationData.occupied;
+ if (name === '鏈夎揣閿佸畾') value = this.locationData.locked;
+ return `${name}\n${value}`;
+ }.bind(this),
+ selectedMode: 'multiple'
},
series: [
{
name: 'SC01璐т綅鐘舵��',
type: 'pie',
- radius: ['50%', '70%'],
- center: ['40%', '50%'],
+ radius: ['40%', '75%'],
+ center: ['50%', '45%'],
avoidLabelOverlap: true,
itemStyle: {
borderRadius: 4,
@@ -86,12 +98,12 @@
show: true,
formatter: '{b}: {c}',
color: '#fff',
- fontSize: 14
+ fontSize: 20
},
emphasis: {
label: {
show: true,
- fontSize: 16,
+ fontSize: 20,
fontWeight: 'bold'
},
itemStyle: {
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/sc01-task-info.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/sc01-task-info.vue"
index 6a3946c..cbb5915 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/sc01-task-info.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/sc01-task-info.vue"
@@ -28,7 +28,7 @@
// 鑾峰彇浠诲姟鏁版嵁
getTaskData() {
import('@/api/api').then(({ WCS_GET }) => {
- WCS_GET('/api/Task/GetRoadwayTaskProgress', { roadway: 'SC01' })
+ WCS_GET("/api/Task/GetRoadwayTaskProgress", { roadway: 'SC01' })
.then((response) => {
console.log("SC01浠诲姟鏁版嵁鍝嶅簲:", response);
@@ -202,7 +202,7 @@
startAutoRefresh() {
this.refreshInterval = setInterval(() => {
this.getTaskData();
- }, 10000);
+ }, 30000);
},
// 鍋滄鑷姩鍒锋柊
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/sc02-location-status.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/sc02-location-status.vue"
index a9eb338..fdb8280 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/sc02-location-status.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/sc02-location-status.vue"
@@ -25,7 +25,7 @@
// 姣�10绉掑埛鏂颁竴娆℃暟鎹�
this.refreshInterval = setInterval(() => {
this.getData();
- }, 10000);
+ }, 30000);
},
beforeDestroy() {
if (this.chart) {
@@ -61,21 +61,33 @@
}
},
legend: {
- orient: 'vertical',
- right: '10%',
- top: 'center',
+ orient: 'horizontal',
+ bottom: '10%',
+ left: 'center',
textStyle: {
color: '#fff',
- fontSize: 14
+ fontSize: 20
},
- data: ['绌洪棽', '鏈夎揣', '鏈夎揣閿佸畾']
+ data: ['绌洪棽', '鏈夎揣', '鏈夎揣閿佸畾'],
+ width: '80%',
+ itemWidth: 20,
+ itemHeight: 14,
+ itemGap: 30,
+ formatter: function(name) {
+ let value = 0;
+ if (name === '绌洪棽') value = this.locationData.free;
+ if (name === '鏈夎揣') value = this.locationData.occupied;
+ if (name === '鏈夎揣閿佸畾') value = this.locationData.locked;
+ return `${name}\n${value}`;
+ }.bind(this),
+ selectedMode: 'multiple'
},
series: [
{
name: 'SC02璐т綅鐘舵��',
type: 'pie',
- radius: ['50%', '70%'],
- center: ['40%', '50%'],
+ radius: ['40%', '75%'],
+ center: ['50%', '45%'],
avoidLabelOverlap: true,
itemStyle: {
borderRadius: 4,
@@ -86,12 +98,12 @@
show: true,
formatter: '{b}: {c}',
color: '#fff',
- fontSize: 14
+ fontSize: 20
},
emphasis: {
label: {
show: true,
- fontSize: 16,
+ fontSize: 20,
fontWeight: 'bold'
},
itemStyle: {
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/sc02-task-info.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/sc02-task-info.vue"
index fc8e8ad..874c886 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/sc02-task-info.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/sc02-task-info.vue"
@@ -202,7 +202,7 @@
startAutoRefresh() {
this.refreshInterval = setInterval(() => {
this.getTaskData();
- }, 10000);
+ }, 30000);
},
// 鍋滄鑷姩鍒锋柊
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/station-four.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/station-four.vue"
deleted file mode 100644
index f402bb9..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/station-four.vue"
+++ /dev/null
@@ -1,461 +0,0 @@
-<template>
- <div class="warehouse-capacity-container">
- <div class="chart-wrapper">
- <div class="chart" id="warehouse-chart"></div>
- </div>
- </div>
-</template>
-
-<script>
-import * as echarts from "echarts";
-import axios from 'axios';
-
-export default {
- name: 'WarehouseCapacity',
- data() {
- return {
- warehouseData: [],
- chart: null,
- refreshInterval: null
- };
- },
- mounted() {
- this.getWarehouseData();
-
- // 鐩戝惉绐楀彛澶у皬鍙樺寲锛岄噸缁樺浘琛�
- window.addEventListener("resize", this.resizeChart);
- },
- beforeDestroy() {
- this.stopAutoRefresh();
- window.removeEventListener("resize", this.resizeChart);
-
- // 閿�姣佸浘琛ㄥ疄渚�
- if (this.chart) {
- this.chart.dispose();
- this.chart = null;
- }
- },
- methods: {
- // 鑾峰彇浠撳簱鏁版嵁
- async getWarehouseData() {
- try {
- const response = await axios.get("http://127.0.0.1:8889/api/Dashboard/Warehouse");
-
- // 鏍规嵁API鍝嶅簲缁撴瀯鑾峰彇鏁版嵁
- const responseData = response;
-
- if (responseData && Array.isArray(responseData)) {
- // 鍙彇鍓嶄袱涓粨搴撶殑鏁版嵁
- const apiData = responseData;
-
- // 杞崲鏁版嵁缁撴瀯浠ラ�傚簲鍥捐〃
- this.warehouseData = apiData.map(item => ({
- warehouseId: item.warehouseId,
- freeLocations: item.freeLocations,
- remainingCapacityPercentage: item.remainingCapacityPercentage,
- // 璁$畻宸蹭娇鐢ㄧ櫨鍒嗘瘮锛�100 - 鍓╀綑瀹归噺鐧惧垎姣旓級
- usagePercentage: 100 - item.remainingCapacityPercentage,
- // 妯℃嫙鎬昏揣浣嶆暟锛堟牴鎹疄闄呮儏鍐佃皟鏁达級
- totalLocations: Math.round(item.freeLocations / (item.remainingCapacityPercentage / 100)),
- // 璁$畻宸蹭娇鐢ㄨ揣浣嶆暟
- usedLocations: Math.round(item.freeLocations / (item.remainingCapacityPercentage / 100)) - item.freeLocations
- }));
-
- this.$nextTick(() => {
- this.initChart();
- });
- } else {
- console.warn("鑾峰彇浠撳簱鏁版嵁澶辫触鎴栨暟鎹牸寮忎笉姝g‘");
- this.warehouseData = [];
- this.$nextTick(() => {
- this.initChart();
- });
- }
- } catch (error) {
- console.error("鑾峰彇浠撳簱鏁版嵁澶辫触:", error);
- this.warehouseData = [];
- this.$nextTick(() => {
- this.initChart();
- });
- }
- },
-
- // 鍚姩鑷姩鍒锋柊
- startAutoRefresh() {
- if (this.refreshInterval) {
- clearInterval(this.refreshInterval);
- }
- this.refreshInterval = setInterval(() => {
- this.getWarehouseData();
- }, 10000);
- },
-
- // 鍋滄鑷姩鍒锋柊
- stopAutoRefresh() {
- if (this.refreshInterval) {
- clearInterval(this.refreshInterval);
- this.refreshInterval = null;
- }
- },
-
- // 鍒濆鍖栧浘琛�
- initChart() {
- const chartDom = document.getElementById('warehouse-chart');
-
- if (chartDom) {
- // 濡傛灉宸叉湁鍥捐〃瀹炰緥锛屽厛閿�姣�
- if (this.chart) {
- this.chart.dispose();
- }
-
- // 鍒涘缓鏂扮殑鍥捐〃瀹炰緥
- this.chart = echarts.init(chartDom, 'dark');
-
- // 妫�鏌ユ槸鍚︽湁鏁版嵁
- if (this.warehouseData.length === 0) {
- // 濡傛灉娌℃湁鏁版嵁锛屾樉绀虹┖鐘舵��
- this.chart.setOption({
- title: {
- text: '鏆傛棤鏁版嵁',
- left: 'center',
- top: 'center',
- textStyle: {
- color: '#aaa',
- fontSize: 16
- }
- }
- });
- return;
- }
-
- // 璁剧疆鍥捐〃閰嶇疆
- const option = this.getChartOption();
- this.chart.setOption(option);
-
- // 鍚姩鑷姩鍒锋柊
- this.startAutoRefresh();
- }
- },
-
- // 鑾峰彇鍥捐〃閰嶇疆 - 绉戝够椋庢牸鏌辩姸鍥�
- getChartOption() {
- // 鎻愬彇涓や釜浠撳簱鐨勬暟鎹�
- const warehouse1 = this.warehouseData[0] || {};
- const warehouse2 = this.warehouseData[1] || {};
-
- const warehouse1Usage = warehouse1.usagePercentage || 0;
- const warehouse1Free = warehouse1.remainingCapacityPercentage || 0;
- const warehouse1Total = warehouse1.totalLocations || 0;
- const warehouse1Used = warehouse1.usedLocations || 0;
- const warehouse1FreeLoc = warehouse1.freeLocations || 0;
-
- const warehouse2Usage = warehouse2.usagePercentage || 0;
- const warehouse2Free = warehouse2.remainingCapacityPercentage || 0;
- const warehouse2Total = warehouse2.totalLocations || 0;
- const warehouse2Used = warehouse2.usedLocations || 0;
- const warehouse2FreeLoc = warehouse2.freeLocations || 0;
-
- // 浠撳簱鍚嶇О
- const warehouse1Name = this.getWarehouseName(warehouse1.warehouseId || 1);
- const warehouse2Name = this.getWarehouseName(warehouse2.warehouseId || 2);
-
- return {
- backgroundColor: 'transparent',
- tooltip: {
- trigger: 'axis',
- axisPointer: {
- type: 'shadow'
- },
- backgroundColor: 'rgba(0, 0, 0, 0.8)',
- borderColor: '#00ffff',
- borderWidth: 1,
- textStyle: {
- color: '#ffffff',
- fontSize: 12
- },
- formatter: (params) => {
- const data = params[0];
- const warehouseIndex = data.dataIndex;
- const warehouse = warehouseIndex === 0 ? warehouse1 : warehouse2;
- const usage = warehouseIndex === 0 ? warehouse1Usage : warehouse2Usage;
- const free = warehouseIndex === 0 ? warehouse1Free : warehouse2Free;
- const used = warehouseIndex === 0 ? warehouse1Used : warehouse2Used;
- const freeLoc = warehouseIndex === 0 ? warehouse1FreeLoc : warehouse2FreeLoc;
- const total = warehouseIndex === 0 ? warehouse1Total : warehouse2Total;
- const name = warehouseIndex === 0 ? warehouse1Name : warehouse2Name;
-
- return `
- <div style="font-weight: bold; color: #00ffff; margin-bottom: 8px; border-bottom: 1px solid #00ffff; padding-bottom: 5px;">
- ${name} - 瀹归噺鐘舵��
- </div>
- <div style="display: flex; align-items: center; margin: 5px 0;">
- <span style="display: inline-block; width: 10px; height: 10px; background: linear-gradient(45deg, #ff416c, #ff4b2b); margin-right: 8px; border-radius: 2px;"></span>
- <span style="color: #ff8a8a;">宸蹭娇鐢細</span>
- <span style="font-weight: bold; color: #ff416c; margin-left: 5px;">${usage.toFixed(1)}% (${used.toLocaleString()}璐т綅)</span>
- </div>
- <div style="display: flex; align-items: center; margin: 5px 0;">
- <span style="display: inline-block; width: 10px; height: 10px; background: linear-gradient(45deg, #00ffff, #0080ff); margin-right: 8px; border-radius: 2px;"></span>
- <span style="color: #8ad3ff;">绌洪棽锛�</span>
- <span style="font-weight: bold; color: #00ffff; margin-left: 5px;">${free.toFixed(1)}% (${freeLoc.toLocaleString()}璐т綅)</span>
- </div>
- <div style="margin-top: 8px; padding-top: 8px; border-top: 1px dashed #555; color: #aaa; font-size: 11px;">
- 鎬诲閲�: ${total.toLocaleString()}璐т綅 | 鐘舵��: ${usage > 80 ? '鈿� 楂樿礋鑽�' : usage > 50 ? '鉁� 姝e父' : '鈼� 绌洪棽'}
- </div>
- `;
- }
- },
- legend: {
- data: ['宸蹭娇鐢ㄥ閲�', '鍓╀綑瀹归噺'],
- top: '5%',
- textStyle: {
- color: '#ffffff',
- fontSize: 12,
- fontWeight: 'bold'
- },
- itemStyle: {
- borderColor: '#00ffff',
- borderWidth: 1
- }
- },
- grid: {
- left: '10%',
- right: '10%',
- bottom: '15%',
- top: '20%',
- containLabel: true
- },
- xAxis: {
- type: 'category',
- data: [warehouse1Name, warehouse2Name],
- axisLabel: {
- color: '#ffffff',
- fontSize: 14,
- fontWeight: 'bold',
- textShadow: '0 0 5px #00ffff'
- },
- axisLine: {
- lineStyle: {
- color: '#00ffff',
- width: 2,
- shadowBlur: 10,
- shadowColor: '#00ffff'
- }
- },
- axisTick: {
- show: false
- }
- },
- yAxis: {
- type: 'value',
- name: '瀹归噺鐧惧垎姣� (%)',
- nameTextStyle: {
- color: '#ffffff',
- fontSize: 12,
- fontWeight: 'bold',
- textShadow: '0 0 3px #00ffff'
- },
- min: 0,
- max: 100,
- axisLabel: {
- color: '#ffffff',
- fontSize: 12,
- formatter: '{value}%',
- textShadow: '0 0 3px #00ffff'
- },
- axisLine: {
- show: true,
- lineStyle: {
- color: '#00ffff',
- width: 2,
- shadowBlur: 10,
- shadowColor: '#00ffff'
- }
- },
- splitLine: {
- lineStyle: {
- color: 'rgba(0, 255, 255, 0.2)',
- type: 'dashed'
- }
- }
- },
- series: [
- {
- name: '宸蹭娇鐢ㄥ閲�',
- type: 'bar',
- data: [warehouse1Usage, warehouse2Usage],
- barWidth: '30%',
- itemStyle: {
- color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
- { offset: 0, color: '#ff416c' },
- { offset: 0.5, color: '#ff4b2b' },
- { offset: 1, color: '#ff2300' }
- ]),
- borderRadius: [4, 4, 0, 0],
- borderColor: '#ff8a8a',
- borderWidth: 1,
- shadowColor: 'rgba(255, 65, 108, 0.5)',
- shadowBlur: 10,
- shadowOffsetY: 3
- },
- label: {
- show: true,
- position: 'top',
- formatter: '{c}%',
- color: '#ff416c',
- fontSize: 14,
- fontWeight: 'bold',
- textShadow: '0 0 5px #ff416c'
- },
- emphasis: {
- itemStyle: {
- shadowColor: 'rgba(255, 65, 108, 0.8)',
- shadowBlur: 15,
- borderColor: '#ffffff',
- borderWidth: 2
- }
- }
- },
- {
- name: '鍓╀綑瀹归噺',
- type: 'bar',
- data: [warehouse1Free, warehouse2Free],
- barWidth: '30%',
- barGap: '10%',
- itemStyle: {
- color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
- { offset: 0, color: '#00ffff' },
- { offset: 0.5, color: '#0080ff' },
- { offset: 1, color: '#0044ff' }
- ]),
- borderRadius: [4, 4, 0, 0],
- borderColor: '#8ad3ff',
- borderWidth: 1,
- shadowColor: 'rgba(0, 255, 255, 0.5)',
- shadowBlur: 10,
- shadowOffsetY: 3
- },
- label: {
- show: true,
- position: 'top',
- formatter: '{c}%',
- color: '#00ffff',
- fontSize: 14,
- fontWeight: 'bold',
- textShadow: '0 0 5px #00ffff'
- },
- emphasis: {
- itemStyle: {
- shadowColor: 'rgba(0, 255, 255, 0.8)',
- shadowBlur: 15,
- borderColor: '#ffffff',
- borderWidth: 2
- }
- }
- }
- ]
- };
- },
-
- // 鑾峰彇浠撳簱鍚嶇О
- getWarehouseName(id) {
- const nameMap = {
- 1: '鍘熸枡浠�',
- 2: '鎴愬搧浠�',
- };
- return nameMap[id] || `浠撳簱${id}`;
- },
-
- // 閲嶇粯鍥捐〃
- resizeChart() {
- if (this.chart) {
- this.chart.resize();
- }
- }
- }
-};
-</script>
-
-<style lang="scss" scoped>
-.warehouse-capacity-container {
- width: 100%;
- height: 100%;
- padding: 0;
- background: transparent;
- position: relative;
-
- // 绉戝够鑳屾櫙鏁堟灉
- &::before {
- content: '';
- position: absolute;
- top: 0;
- left: 0;
- right: 0;
- bottom: 0;
- z-index: -1;
- }
-
- // 缃戞牸绾挎晥鏋�
- &::after {
- content: '';
- position: absolute;
- top: 0;
- left: 0;
- right: 0;
- bottom: 0;
- z-index: -1;
- opacity: 0.3;
- }
-}
-
-.chart-wrapper {
- width: 100%;
- height: 100%;
- position: relative;
- overflow: hidden;
-
- // 杈规鍏夋晥
- &::before {
- content: '';
- position: absolute;
- top: 0;
- left: 0;
- right: 0;
- bottom: 0;
- // border: 1px solid rgba(0, 255, 255, 0.3);
- border-radius: 4px;
- // box-shadow:
- // 0 0 10px rgba(0, 255, 255, 0.3),
- // inset 0 0 10px rgba(0, 255, 255, 0.1);
- pointer-events: none;
- z-index: 1;
- }
-}
-
-.chart {
- width: 100%;
- height: 100%;
- position: relative;
- z-index: 0;
-}
-
-// 鍝嶅簲寮忚璁�
-@media (max-width: 768px) {
- .warehouse-capacity-container {
- padding: 10px;
- }
-
- .chart-wrapper {
- &::before {
- border-width: 1px;
- }
- }
-}
-
-@media (max-width: 480px) {
- .warehouse-capacity-container {
- &::after {
- background-size: 15px 15px;
- }
- }
-}
-</style>
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/station-one.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/station-one.vue"
deleted file mode 100644
index 5829a62..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/station-one.vue"
+++ /dev/null
@@ -1,229 +0,0 @@
-<!--
- * @Author: daidai
- * @Date: 2022-02-28 16:16:42
- * @LastEditors: Please set LastEditors
- * @LastEditTime: 2022-07-20 17:57:11
- * @FilePath: \web-pc\src\pages\big-screen\view\indexs\left-center.vue
--->
-<template>
- <ul class="user_Overview flex" v-if="pageflag">
- <li class="user_Overview-item" style="color: #00fdfa">
- <div class="user_Overview_nums allnum ">
- <dv-digital-flop :config="onlineconfig" style="width:100%;height:100%;" />
- </div>
- <p>1鍙锋淇彴</p>
- <br>
- <p>{{stationstate[0].station_state}}</p>
- </li>
- <li class="user_Overview-item" style="color: #07f7a8">
- <div class="user_Overview_nums online">
- <dv-digital-flop :config="config" style="width:100%;height:100%;" />
- </div>
- <p>2鍙锋淇彴</p>
- <br>
- <p>{{stationstate[1].station_state}}</p>
- </li>
- <li class="user_Overview-item" style="color: #e3b337">
- <div class="user_Overview_nums offline">
- <dv-digital-flop :config="offlineconfig" style="width:100%;height:100%;" />
- </div>
- <p>3鍙锋淇彴</p>
- <br>
- <p>{{stationstate[2].station_state}}</p>
- </li>
-
- </ul>
- <Reacquire v-else @onclick="getData" line-height="200px">
- 閲嶆柊鑾峰彇
- </Reacquire>
-</template>
-
-<script>
-import { currentGET } from 'api/modules'
-import {Floorfault} from "@/api/http.js"
-let style = {
- fontSize: 24
-}
-export default {
- data() {
- return {
- options: {},
- userOverview: {
- alarmNum: 2,
- offlineNum: 3,
- onlineNum: 5,
- totalNum: 10,
- },
- stationstate:[],
- pageflag: true,
- timer: null,
- config: {
- number: [100],
- content: '{nt}',
- style: {
- ...style,
- // stroke: "#00fdfa",
- fill: "#00fdfa",
- },
- },
- onlineconfig: {
- number: [0],
- content: '{nt}',
- style: {
- ...style,
- // stroke: "#07f7a8",
- fill: "#07f7a8",
- },
- },
- };
- },
- filters: {
- numsFilter(msg) {
- return msg || 0;
- },
- },
- created() {
- this.getData()
- },
- mounted() {
- },
- beforeDestroy() {
- this.clearData()
-
- },
- methods: {
- clearData() {
- if (this.timer) {
- clearInterval(this.timer)
- this.timer = null
- }
- },
- async getData() {
- this.pageflag = true;
- // currentGET("big2").then((res) => {
- // if (!this.timer) {
- // console.log("璁惧鎬昏2", res);
- // }
- // if (res.success) {
- // this.userOverview = res.data;
- // this.onlineconfig = {
- // ...this.onlineconfig,
- // number: [1]
- // }
- // this.config = {
- // ...this.config,
- // number: [7]
- // }
- // this.offlineconfig = {
- // ...this.offlineconfig,
- // number: [4]
- // }
- // this.laramnumconfig = {
- // ...this.laramnumconfig,
- // number: [10]
- // }
- // this.switper();
- // } else {
- // this.pageflag = false;
- // this.$Message.warning(res.msg);
- // }
- // });
- let rep = await Floorfault((a)=>{
- });
- this.stationstate=rep;
- console.log(rep);
- this.onlineconfig = {
- ...this.onlineconfig,
- number: [rep[0].station_qty]
- }
- this.config = {
- ...this.config,
- number: [rep[1].station_qty]
- }
- this.offlineconfig = {
- ...this.offlineconfig,
- number: [rep[2].station_qty]
- }
- this.switper();
- },
- //杞
- switper() {
- if (this.timer) {
- return
- }
- let looper = (a) => {
- this.getData()
- };
- this.timer = setInterval(looper, this.$store.state.setting.echartsAutoTime);
- },
- },
-};
-</script>
-<style lang='scss' scoped>
-.user_Overview {
- li {
- flex: 1;
-
- p {
- text-align: center;
- height: 16px;
- font-size: 16px;
- }
-
- .user_Overview_nums {
- width: 100px;
- height: 100px;
- text-align: center;
- line-height: 100px;
- font-size: 22px;
- margin: 50px auto 30px;
- background-size: cover;
- background-position: center center;
- position: relative;
-
- &::before {
- content: '';
- position: absolute;
- width: 100%;
- height: 100%;
- top: 0;
- left: 0;
- }
-
- &.bgdonghua::before {
- animation: rotating 14s linear infinite;
- }
- }
-
- .allnum {
-
- // background-image: url("../../assets/img/left_top_lan.png");
- &::before {
- background-image: url("../../assets/img/left_top_lan.png");
-
- }
- }
-
- .online {
- &::before {
- background-image: url("../../assets/img/left_top_lv.png");
-
- }
- }
-
- .offline {
- &::before {
- background-image: url("../../assets/img/left_top_huang.png");
-
- }
- }
-
- .laramnum {
- &::before {
- background-image: url("../../assets/img/left_top_hong.png");
-
- }
- }
- }
-}
-</style>
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/station-three.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/station-three.vue"
deleted file mode 100644
index d3396c2..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/station-three.vue"
+++ /dev/null
@@ -1,725 +0,0 @@
-<template>
- <div class="dashboard-container">
- <div class="warehouse-charts-container" v-if="pageflag">
- <div class="warehouse-charts vertical-layout">
- <!-- 鍘熸枡浠� - 涓婃柟 -->
- <div class="warehouse-chart-item material-chart">
- <div class="chart-header">
- <h3 class="chart-title" style="color: #07f7a8">
- <span>鍘熸枡浠�</span>
- <span class="total-count">浠诲姟鎬绘暟: {{materialWarehouseData.totalCount || 0}}</span>
- </h3>
- </div>
- <div
- id="materialWarehouseChart"
- class="warehouse-chart"
- ref="materialChart"
- ></div>
- </div>
-
- <!-- 鎴愬搧浠� - 涓嬫柟 -->
- <div class="warehouse-chart-item finished-chart">
- <div class="chart-header">
- <h3 class="chart-title" style="color: #00fdfa">
- <span>鎴愬搧浠�</span>
- <span class="total-count">浠诲姟鎬绘暟: {{finishedWarehouseData.totalCount || 0}}</span>
- </h3>
- </div>
- <div
- id="finishedWarehouseChart"
- class="warehouse-chart"
- ref="finishedChart"
- ></div>
- </div>
- </div>
- </div>
-
- <Reacquire v-else @onclick="getData" line-height="200px">
- 閲嶆柊鑾峰彇
- </Reacquire>
- </div>
-</template>
-
-<script>
-import * as echarts from "echarts";
-import axios from 'axios';
-
-export default {
- name: 'WarehouseTaskDistribution',
- data() {
- return {
- // 浠撳簱鏁版嵁
- finishedWarehouseData: {
- warehouseId: 2,
- stats: [],
- totalCount: 0
- },
- materialWarehouseData: {
- warehouseId: 1,
- stats: [],
- totalCount: 0
- },
-
- // 鐘舵�佹爣蹇�
- pageflag: true,
- chartsInitialized: false,
-
- // 瀹氭椂鍣� - 10绉掑埛鏂�
- refreshTimer: null,
- resizeTimer: null,
-
- // ECharts瀹炰緥
- finishedWarehouseChart: null,
- materialWarehouseChart: null
- };
- },
-
- created() {
- this.getData();
- },
-
- mounted() {
- // 鍒濆鍖栧浘琛�
- this.$nextTick(() => {
- this.initCharts();
- });
-
- // 椤甸潰鍙鎬х洃鍚�
- document.addEventListener('visibilitychange', this.handleVisibilityChange);
-
- // 鐩戝惉绐楀彛澶у皬鍙樺寲
- window.addEventListener('resize', this.handleWindowResize);
- },
-
- // 浣跨敤keep-alive鏃剁殑浜嬩欢
- activated() {
- // 濡傛灉鍥捐〃琚攢姣侊紝閲嶆柊鍒濆鍖�
- if (!this.chartsInitialized && this.pageflag) {
- this.$nextTick(() => {
- this.initCharts();
- });
- }
- // 閲嶆柊鍚姩瀹氭椂鍣�
- this.startAutoRefresh();
- },
-
- deactivated() {
- // 鍋滄瀹氭椂鍣�
- this.stopAutoRefresh();
- },
-
- beforeDestroy() {
- // 缁勪欢閿�姣佹椂褰诲簳娓呯悊
- this.stopAutoRefresh();
- this.disposeCharts();
- document.removeEventListener('visibilitychange', this.handleVisibilityChange);
- window.removeEventListener('resize', this.handleWindowResize);
- },
-
- methods: {
- // 妫�娴嬫槸鍚︿负鐢佃鏈烘ā寮�
- detectTVMode() {
- // 鐢佃鏈洪�氬父鏈夌壒瀹氱殑鍒嗚鲸鐜囨垨瀹介珮姣�
- return window.innerHeight <= 1080 && window.innerWidth >= 1920;
- },
-
- // 澶勭悊椤甸潰鍙鎬у彉鍖�
- handleVisibilityChange() {
- if (document.hidden) {
- // 椤甸潰涓嶅彲瑙佹椂鍋滄鍒锋柊
- this.stopAutoRefresh();
- } else {
- // 椤甸潰鍙鏃剁珛鍗冲埛鏂版暟鎹苟閲嶆柊寮�濮嬭嚜鍔ㄥ埛鏂�
- this.getData();
- }
- },
-
- // 澶勭悊绐楀彛澶у皬鍙樺寲
- handleWindowResize() {
- // 闃叉姈璋冩暣鍥捐〃澶у皬
- clearTimeout(this.resizeTimer);
- this.resizeTimer = setTimeout(() => {
- if (this.finishedWarehouseChart) {
- try {
- this.finishedWarehouseChart.resize();
- } catch (e) {
- console.warn('璋冩暣鎴愬搧浠撳浘琛ㄥぇ灏忔椂鍑洪敊:', e);
- }
- }
- if (this.materialWarehouseChart) {
- try {
- this.materialWarehouseChart.resize();
- } catch (e) {
- console.warn('璋冩暣鍘熸枡浠撳浘琛ㄥぇ灏忔椂鍑洪敊:', e);
- }
- }
- }, 200);
- },
-
- // 鍚姩鑷姩鍒锋柊锛�10绉掞級
- startAutoRefresh() {
- // 鍏堟竻闄ょ幇鏈夌殑瀹氭椂鍣�
- this.stopAutoRefresh();
-
- // 鍒涘缓鏂扮殑瀹氭椂鍣�
- this.refreshTimer = setInterval(() => {
- this.getData();
- }, 10000); // 10绉掕嚜鍔ㄥ埛鏂�
- },
-
- // 鍋滄鑷姩鍒锋柊
- stopAutoRefresh() {
- if (this.refreshTimer) {
- clearInterval(this.refreshTimer);
- this.refreshTimer = null;
- }
- },
-
- // 鍒濆鍖栧浘琛ㄥ疄渚�
- initCharts() {
- try {
- // 闃叉閲嶅鍒濆鍖�
- if (this.chartsInitialized) {
- return;
- }
-
- // 浣跨敤refs鑾峰彇DOM鍏冪礌
- const materialChartEl = this.$refs.materialChart;
- const finishedChartEl = this.$refs.finishedChart;
-
- // 妫�鏌OM鍏冪礌鏄惁瀛樺湪
- if (!materialChartEl || !finishedChartEl) {
- console.warn('鍥捐〃瀹瑰櫒鍏冪礌涓嶅瓨鍦紝寤惰繜鍒濆鍖�');
- setTimeout(() => this.initCharts(), 100);
- return;
- }
-
- // 娓呯悊宸插瓨鍦ㄧ殑鍥捐〃瀹炰緥锛堥槻姝㈠唴瀛樻硠婕忥級
- this.disposeExistingCharts();
-
- // 鍒涘缓鏂扮殑鍥捐〃瀹炰緥
- this.materialWarehouseChart = echarts.init(materialChartEl);
- this.finishedWarehouseChart = echarts.init(finishedChartEl);
-
- // 璁剧疆榛樿鍥捐〃閰嶇疆
- this.setChartOptions();
-
- // 鏍囪涓哄凡鍒濆鍖�
- this.chartsInitialized = true;
-
- // 娣诲姞绐楀彛resize鐩戝惉锛堥槻鎶栧鐞嗭級
- window.addEventListener("resize", this.handleResize);
-
- } catch (error) {
- console.error('鍒濆鍖栧浘琛ㄥけ璐�:', error);
- this.chartsInitialized = false;
- }
- },
-
- // 娓呯悊宸插瓨鍦ㄧ殑鍥捐〃瀹炰緥
- disposeExistingCharts() {
- // 妫�鏌ュ苟閿�姣佸師鏂欎粨鍥捐〃
- if (this.materialWarehouseChart) {
- try {
- this.materialWarehouseChart.dispose();
- } catch (e) {
- console.warn('閿�姣佸師鏂欎粨鍥捐〃鏃跺嚭閿�:', e);
- }
- this.materialWarehouseChart = null;
- }
-
- // 妫�鏌ュ苟閿�姣佹垚鍝佷粨鍥捐〃
- if (this.finishedWarehouseChart) {
- try {
- this.finishedWarehouseChart.dispose();
- } catch (e) {
- console.warn('閿�姣佹垚鍝佷粨鍥捐〃鏃跺嚭閿�:', e);
- }
- this.finishedWarehouseChart = null;
- }
- },
-
- // 澶勭悊绐楀彛澶у皬鍙樺寲锛堥槻鎶栵級- 鍥捐〃涓撶敤
- handleResize() {
- clearTimeout(this.resizeTimer);
- this.resizeTimer = setTimeout(() => {
- if (this.finishedWarehouseChart) {
- try {
- this.finishedWarehouseChart.resize();
- } catch (e) {
- console.warn('璋冩暣鎴愬搧浠撳浘琛ㄥぇ灏忔椂鍑洪敊:', e);
- }
- }
- if (this.materialWarehouseChart) {
- try {
- this.materialWarehouseChart.resize();
- } catch (e) {
- console.warn('璋冩暣鍘熸枡浠撳浘琛ㄥぇ灏忔椂鍑洪敊:', e);
- }
- }
- }, 200);
- },
-
- // 閿�姣佸浘琛ㄥ疄渚�
- disposeCharts() {
- // 绉婚櫎浜嬩欢鐩戝惉
- window.removeEventListener("resize", this.handleResize);
-
- // 娓呴櫎瀹氭椂鍣�
- clearTimeout(this.resizeTimer);
- this.resizeTimer = null;
-
- // 閿�姣佸浘琛ㄥ疄渚�
- this.disposeExistingCharts();
-
- // 閲嶇疆鍒濆鍖栨爣蹇�
- this.chartsInitialized = false;
- },
-
- // 璁剧疆榛樿鍥捐〃閰嶇疆
- setChartOptions() {
- const finishedOption = this.getPieChartOption(
- '鎴愬搧浠撲换鍔″垎甯�',
- '#00fdfa',
- [
- { value: 0, name: '鍏ュ簱', itemStyle: { color: '#00fdfa' } },
- { value: 0, name: '鍑哄簱', itemStyle: { color: '#1e90ff' } },
- { value: 0, name: '绉诲簱', itemStyle: { color: '#9370db' } }
- ]
- );
-
- const materialOption = this.getPieChartOption(
- '鍘熸枡浠撲换鍔″垎甯�',
- '#07f7a7',
- [
- { value: 0, name: '鍏ュ簱', itemStyle: { color: '#07f7a7' } },
- { value: 0, name: '鍑哄簱', itemStyle: { color: '#32cd32' } },
- { value: 0, name: '绉诲簱', itemStyle: { color: '#ffa500' } }
- ]
- );
-
- // 瀹夊叏鍦拌缃浘琛ㄩ�夐」
- this.safeSetChartOption(this.finishedWarehouseChart, finishedOption);
- this.safeSetChartOption(this.materialWarehouseChart, materialOption);
- },
-
- // 瀹夊叏璁剧疆鍥捐〃閫夐」
- safeSetChartOption(chartInstance, option) {
- if (!chartInstance) return;
-
- try {
- chartInstance.setOption(option, true);
- } catch (error) {
- console.error('璁剧疆鍥捐〃閫夐」澶辫触:', error);
- }
- },
-
- // 鑾峰彇楗煎浘閰嶇疆閫夐」
- getPieChartOption(title, titleColor, data) {
- return {
- title: {
- text: title,
- left: 'center',
- textStyle: {
- color: titleColor,
- fontSize: 14,
- fontWeight: 'normal'
- }
- },
- tooltip: {
- trigger: 'item',
- formatter: '{a} <br/>{b}: {c} ({d}%)',
- backgroundColor: 'rgba(0,0,0,0.7)',
- borderColor: '#333',
- textStyle: {
- color: '#fff'
- }
- },
- legend: {
- orient: 'vertical',
- right: '5%',
- top: 'center',
- textStyle: {
- color: '#fff',
- fontSize: 14
- },
- data: data.map(item => item.name)
- },
- series: [
- {
- name: title,
- type: 'pie',
- radius: ['60%', '90%'], // 鍑忓皬楗煎浘鍗婂緞
- center: ['35%', '50%'],
- avoidLabelOverlap: true,
- itemStyle: {
- borderRadius: 4,
- borderColor: '#000',
- borderWidth: 1
- },
- label: {
- show: true,
- formatter: '{b}: {c}',
- color: '#fff',
- fontSize: 14 // 鍑忓皬瀛椾綋
- },
- emphasis: {
- label: {
- show: true,
- fontSize: 14,
- fontWeight: 'bold'
- },
- itemStyle: {
- shadowBlur: 5,
- shadowOffsetX: 0,
- shadowColor: 'rgba(0, 0, 0, 0.5)'
- }
- },
- labelLine: {
- show: true,
- length: 5, // 鍑忕煭绾块暱搴�
- length2: 10
- },
- data: data,
- animationType: 'scale',
- animationEasing: 'elasticOut',
- animationDelay: function(idx) {
- return Math.random() * 200;
- }
- }
- ],
- backgroundColor: 'transparent'
- };
- },
-
- // 鏇存柊鍥捐〃鏁版嵁
- updateCharts() {
- // 纭繚鍥捐〃宸插垵濮嬪寲
- if (!this.chartsInitialized) {
- this.initCharts();
- return;
- }
-
- // 鏇存柊鎴愬搧浠撳浘琛�
- this.updateChartData(this.finishedWarehouseChart, '鎴愬搧浠撲换鍔″垎甯�', '#00fdfa', 'finished');
-
- // 鏇存柊鍘熸枡浠撳浘琛�
- this.updateChartData(this.materialWarehouseChart, '鍘熸枡浠撲换鍔″垎甯�', '#07f7a7', 'material');
- },
-
- // 鏇存柊鍗曚釜鍥捐〃鏁版嵁
- updateChartData(chartInstance, title, titleColor, warehouseType) {
- if (!chartInstance) {
- console.warn(`${title} 鍥捐〃瀹炰緥涓嶅瓨鍦╜);
- return;
- }
-
- try {
- // 鑾峰彇瀵瑰簲浠撳簱鐨勬暟鎹�
- const warehouseData = warehouseType === 'finished'
- ? this.finishedWarehouseData
- : this.materialWarehouseData;
-
- // 杞崲鏁版嵁鏍煎紡
- const chartData = this.transformDataForChart(warehouseData, warehouseType);
-
- // 鐩存帴璁剧疆瀹屾暣鐨勫浘琛ㄩ�夐」
- const newOption = this.getPieChartOption(title, titleColor, chartData);
- chartInstance.setOption(newOption, true);
-
- } catch (error) {
- console.error(`鏇存柊${title}鍥捐〃鏁版嵁澶辫触:`, error);
- }
- },
-
- // 杞崲鏁版嵁涓哄浘琛ㄦ牸寮�
- transformDataForChart(warehouseData, warehouseType) {
- // 纭畾棰滆壊鏂规
- const colorScheme = warehouseType === 'finished'
- ? {
- inbound: '#00fdfa',
- outbound: '#1e90ff',
- relocation: '#9370db'
- }
- : {
- inbound: '#07f7a7',
- outbound: '#32cd32',
- relocation: '#ffa500'
- };
-
- // 鍒濆鍖栭粯璁ゅ��
- let inboundCount = 0;
- let outboundCount = 0;
- let relocationCount = 0;
-
- // 浠巗tats涓彁鍙栨暟鎹�
- if (warehouseData.stats && Array.isArray(warehouseData.stats)) {
- warehouseData.stats.forEach(stat => {
- if (stat.type === 'Inbound' || stat.type === '鍏ュ簱' || stat.type === 'inbound') {
- inboundCount = stat.count || 0;
- } else if (stat.type === 'Outbound' || stat.type === '鍑哄簱' || stat.type === 'outbound') {
- outboundCount = stat.count || 0;
- } else if (stat.type === 'Relocation' || stat.type === '宸烽亾鍐呯Щ搴�' || stat.type === 'relocation') {
- relocationCount = stat.count || 0;
- }
- });
- }
-
- return [
- {
- value: inboundCount,
- name: '鍏ュ簱',
- itemStyle: { color: colorScheme.inbound }
- },
- {
- value: outboundCount,
- name: '鍑哄簱',
- itemStyle: { color: colorScheme.outbound }
- },
- {
- value: relocationCount,
- name: '绉诲簱',
- itemStyle: { color: colorScheme.relocation }
- }
- ];
- },
-
- // 鑾峰彇鏁版嵁
- async getData() {
- this.pageflag = true;
-
- try {
- const response = await axios.get("http://127.0.0.1:8889/api/Dashboard/InOutTypeStats");
-
- // 娉ㄦ剰锛氳繖閲岀洿鎺ヤ娇鐢� response锛屼笉鐢� .data
- if (response && Array.isArray(response)) {
- // 鍒嗙鎴愬搧浠撳拰鍘熸枡浠撴暟鎹�
- const finishedWarehouse = response.find(item => item.warehouseId === 2);
- const materialWarehouse = response.find(item => item.warehouseId === 1);
-
- // 鏇存柊鎴愬搧浠撴暟鎹�
- this.finishedWarehouseData = finishedWarehouse || {
- warehouseId: 2,
- stats: [],
- totalCount: 0
- };
-
- // 鏇存柊鍘熸枡浠撴暟鎹�
- this.materialWarehouseData = materialWarehouse || {
- warehouseId: 1,
- stats: [],
- totalCount: 0
- };
-
- // 鏇存柊鍥捐〃鏁版嵁
- this.updateCharts();
-
- // 鍚姩鑷姩鍒锋柊锛�10绉掞級
- this.startAutoRefresh();
-
- } else {
- this.pageflag = false;
- console.warn("杩斿洖鐨勬暟鎹牸寮忎笉姝g‘鎴栦笉鏄暟缁�", response);
- this.resetData();
- }
- } catch (error) {
- this.pageflag = false;
- console.error('鑾峰彇浠撳簱缁熻鏁版嵁澶辫触:', error);
- this.resetData();
- }
- },
-
- // 閲嶇疆鏁版嵁
- resetData() {
- this.finishedWarehouseData = {
- warehouseId: 2,
- stats: [],
- totalCount: 0
- };
- this.materialWarehouseData = {
- warehouseId: 1,
- stats: [],
- totalCount: 0
- };
-
- // 鏇存柊鍥捐〃鏄剧ず绌烘暟鎹�
- this.updateCharts();
- }
- }
-};
-</script>
-
-<style lang='scss' scoped>
-.dashboard-container {
- display: flex;
- flex-direction: column;
- height: 100%;
- width: 100%;
- background: transparent;
- overflow: hidden; /* 绂佹婊氬姩鏉� */
-}
-
-.warehouse-charts-container {
- flex: 1;
- padding: 8px; /* 鍑忓皬鍐呰竟璺� */
- position: relative;
- width: 100%;
- height: 100%;
- box-sizing: border-box;
- overflow: hidden; /* 绂佹婊氬姩鏉� */
-
- .warehouse-charts.vertical-layout {
- display: flex;
- flex-direction: column; /* 鍨傜洿甯冨眬 */
- gap: 12px; /* 鍑忓皬闂磋窛 */
- height: 100%; /* 鍗犳弧瀹瑰櫒楂樺害 */
- width: 100%;
-
- .warehouse-chart-item {
- flex: 1; /* 姣忎釜鍥捐〃瀹瑰櫒骞冲潎鍒嗛厤楂樺害 */
- min-height: 0; /* 鍏佽鏀剁缉 */
- padding: 10px; /* 鍑忓皬鍐呰竟璺� */
- box-sizing: border-box;
- border-radius: 6px; /* 鍑忓皬鍦嗚 */
- //border: 1px solid rgba(0, 255, 255, 0.1);
- display: flex;
- flex-direction: column;
- position: relative;
- overflow: hidden;
- //background: rgba(0, 20, 40, 0.6);
-
- .chart-header {
- margin-bottom: 8px; /* 鍑忓皬杈硅窛 */
- position: relative;
- z-index: 2;
- flex-shrink: 0;
-
- .chart-title {
- display: flex;
- justify-content: space-between;
- align-items: center;
- margin: 0;
- font-size: 20px; /* 鍑忓皬瀛椾綋 */
- font-weight: bold;
- text-shadow: 0 0 3px currentColor; /* 鍑忓皬闃村奖 */
-
- .total-count {
- font-size: 30px;
- color: #ccc;
- font-weight: normal;
- text-shadow: none;
- }
- }
- }
-
- .warehouse-chart {
- flex: 1;
- min-height: 0;
- position: relative;
- z-index: 2;
- height: 100%;
- width: 100%;
- }
- }
- }
-}
-
-/* 鐢佃鏈洪�傞厤 - 杩涗竴姝ュ帇缂╁浘琛� */
-@media screen and (max-height: 1080px) {
- .warehouse-charts-container {
- padding: 5px;
-
- .warehouse-charts.vertical-layout {
- gap: 8px;
-
- .warehouse-chart-item {
- padding: 8px;
-
- .chart-header {
- margin-bottom: 5px;
-
- .chart-title {
- font-size: 13px;
-
- .total-count {
- font-size: 11px;
- }
- }
- }
- }
- }
- }
-}
-
-/* 瀹藉睆閫傞厤 */
-@media screen and (min-width: 1920px) {
- .warehouse-charts-container {
- .warehouse-charts.vertical-layout {
- .warehouse-chart-item {
- .chart-header {
- .chart-title {
- font-size: 20px;
-
- .total-count {
- font-size: 20px;
- }
- }
- }
- }
- }
- }
-}
-
-/* 鎵嬫満閫傞厤 */
-@media screen and (max-width: 768px) {
- .warehouse-charts-container {
- padding: 5px;
-
- .warehouse-charts.vertical-layout {
- gap: 10px;
-
- .warehouse-chart-item {
- padding: 8px;
- min-height: 200px; /* 鎵嬫満淇濇寔閫傚綋楂樺害 */
-
- .chart-header {
- .chart-title {
- font-size: 20px;
- flex-direction: column;
- align-items: flex-start;
-
- .total-count {
- font-size: 20px;
- margin-top: 3px;
- }
- }
- }
- }
- }
- }
-}
-
-/* 瓒呭皬灞忓箷閫傞厤 */
-@media screen and (max-width: 480px) {
- .warehouse-charts-container {
- .warehouse-charts.vertical-layout {
- gap: 8px;
-
- .warehouse-chart-item {
- min-height: 180px;
- padding: 6px;
-
- .chart-header {
- .chart-title {
- font-size: 20px;
-
- .total-count {
- font-size: 20px;
- }
- }
- }
- }
- }
- }
-}
-</style>
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/station-two.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/station-two.vue"
deleted file mode 100644
index 2c03df5..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/indexs/station-two.vue"
+++ /dev/null
@@ -1,237 +0,0 @@
-<!--
- * @Author: daidai
- * @Date: 2022-02-28 16:16:42
- * @LastEditors: Please set LastEditors
- * @LastEditTime: 2022-07-20 17:57:11
- * @FilePath: \web-pc\src\pages\big-screen\view\indexs\left-center.vue
--->
-<template>
- <ul class="user_Overview flex" v-if="pageflag">
- <li class="user_Overview-item" style="color: #00fdfa">
- <div class="user_Overview_nums allnum ">
- <dv-digital-flop :config="onlineconfig" style="width:100%;height:100%;" />
- </div>
- <p>4鍙锋淇彴</p>
- <br>
- <p>{{stationstate[3].station_state}}</p>
- </li>
- <li class="user_Overview-item" style="color: #07f7a8">
- <div class="user_Overview_nums online">
- <dv-digital-flop :config="config" style="width:100%;height:100%;" />
- </div>
- <p>5鍙锋淇彴</p>
- <br>
- <p>{{stationstate[4].station_state}}</p>
- </li>
- <li class="user_Overview-item" style="color: #e3b337">
- <div class="user_Overview_nums offline">
- <dv-digital-flop :config="offlineconfig" style="width:100%;height:100%;" />
-
- </div>
- <p>6鍙锋淇彴</p>
- <br>
- <p>{{stationstate[5].station_state}}</p>
- </li>
- </ul>
- <Reacquire v-else @onclick="getData" line-height="200px">
- 閲嶆柊鑾峰彇
- </Reacquire>
-</template>
-
-<script>
-import { currentGET } from 'api/modules'
-import {Floorfault} from "@/api/http.js"
-let style = {
- fontSize: 24
-}
-export default {
- data() {
- return {
- options: {},
- stationstate:[],
- userOverview: {
- alarmNum: 2,
- offlineNum: 3,
- onlineNum: 5,
- totalNum: 10,
- },
- pageflag: true,
- timer: null,
- config: {
- number: [100],
- content: '{nt}',
- style: {
- ...style,
- // stroke: "#00fdfa",
- fill: "#00fdfa",
- },
- },
- onlineconfig: {
- number: [0],
- content: '{nt}',
- style: {
- ...style,
- // stroke: "#07f7a8",
- fill: "#07f7a8",
- },
- },
- offlineconfig: {
- number: [0],
- content: '{nt}',
- style: {
- ...style,
- // stroke: "#e3b337",
- fill: "#e3b337",
- },
- },
- };
- },
- filters: {
- numsFilter(msg) {
- return msg || 0;
- },
- },
- created() {
- this.getData()
- },
- mounted() {
- },
- beforeDestroy() {
- this.clearData()
-
- },
- methods: {
- clearData() {
- if (this.timer) {
- clearInterval(this.timer)
- this.timer = null
- }
- },
- async getData() {
- this.pageflag = true;
- // currentGET("big2").then((res) => {
- // if (!this.timer) {
- // console.log("璁惧鎬昏2", res);
- // }
- // if (res.success) {
- // this.userOverview = res.data;
- // this.onlineconfig = {
- // ...this.onlineconfig,
- // number: [1]
- // }
- // this.config = {
- // ...this.config,
- // number: [7]
- // }
- // this.offlineconfig = {
- // ...this.offlineconfig,
- // number: [4]
- // }
- // this.laramnumconfig = {
- // ...this.laramnumconfig,
- // number: [10]
- // }
- // this.switper();
- // } else {
- // this.pageflag = false;
- // this.$Message.warning(res.msg);
- // }
- // });
- let rep = await Floorfault((a)=>{
- });
- this.stationstate=rep;
- this.onlineconfig = {
- ...this.onlineconfig,
- number: [rep[3].station_qty]
- }
- this.config = {
- ...this.config,
- number: [rep[4].station_qty]
- }
- this.offlineconfig = {
- ...this.offlineconfig,
- number: [rep[5].station_qty]
- }
- this.switper();
- },
- //杞
- switper() {
- if (this.timer) {
- return
- }
- let looper = (a) => {
- this.getData()
- };
- this.timer = setInterval(looper, this.$store.state.setting.echartsAutoTime);
- },
- },
-};
-</script>
-<style lang='scss' scoped>
-.user_Overview {
- li {
- flex: 1;
-
- p {
- text-align: center;
- height: 16px;
- font-size: 16px;
- }
-
- .user_Overview_nums {
- width: 100px;
- height: 100px;
- text-align: center;
- line-height: 100px;
- font-size: 22px;
- margin: 50px auto 30px;
- background-size: cover;
- background-position: center center;
- position: relative;
-
- &::before {
- content: '';
- position: absolute;
- width: 100%;
- height: 100%;
- top: 0;
- left: 0;
- }
-
- &.bgdonghua::before {
- animation: rotating 14s linear infinite;
- }
- }
-
- .allnum {
-
- // background-image: url("../../assets/img/left_top_lan.png");
- &::before {
- background-image: url("../../assets/img/left_top_lan.png");
-
- }
- }
-
- .online {
- &::before {
- background-image: url("../../assets/img/left_top_lv.png");
-
- }
- }
-
- .offline {
- &::before {
- background-image: url("../../assets/img/left_top_huang.png");
-
- }
- }
-
- .laramnum {
- &::before {
- background-image: url("../../assets/img/left_top_hong.png");
-
- }
- }
- }
-}
-</style>
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/setting.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/setting.vue"
index bd69b7b..bf40c14 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/setting.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\244\247\345\261\217/src/views/setting.vue"
@@ -61,6 +61,32 @@
</el-radio-group>
</div>
</div>
+
+ <!-- 宸烽亾浠诲姟淇℃伅榛樿鏄剧ず -->
+ <div class="setting_item">
+ <span class="setting_label">
+ 宸烽亾浠诲姟淇℃伅榛樿鏄剧ず:
+ </span>
+ <div class="setting_content">
+ <el-radio-group v-model="currentTaskRadio" @change="(val) => updateCurrentTask(val)">
+ <el-radio :label="'sc01'">SC01</el-radio>
+ <el-radio :label="'sc02'">SC02</el-radio>
+ </el-radio-group>
+ </div>
+ </div>
+
+ <!-- 璐т綅鐘舵�侀粯璁ゆ樉绀� -->
+ <div class="setting_item">
+ <span class="setting_label">
+ 璐т綅鐘舵�侀粯璁ゆ樉绀�:
+ </span>
+ <div class="setting_content">
+ <el-radio-group v-model="currentLocationRadio" @change="(val) => updateCurrentLocation(val)">
+ <el-radio :label="'sc01'">SC01</el-radio>
+ <el-radio :label="'sc02'">SC02</el-radio>
+ </el-radio-group>
+ </div>
+ </div>
<div class="flex justify-center">
<!-- <el-button type="primary" round size="mini">纭畾</el-button> -->
</div>
@@ -82,6 +108,8 @@
isScaleradio:true,
fullscreenRadio: false, // 鍏ㄥ睆鐘舵��
fullscreenElement: null, // 鍏ㄥ睆鍏冪礌
+ currentTaskRadio: 'sc02', // 榛樿浠诲姟鏄剧ず锛歴c01/sc02
+ currentLocationRadio: 'sc01' // 榛樿璐т綅鐘舵�佹樉绀猴細sc01/sc02
};
},
computed: {},
@@ -196,6 +224,16 @@
this.bindFullscreenEvents();
}
}
+ },
+
+ // 鏇存柊褰撳墠浠诲姟
+ updateCurrentTask(val) {
+ this.$store.commit('setting/updateCurrentTask', val);
+ },
+
+ // 鏇存柊褰撳墠璐т綅鐘舵��
+ updateCurrentLocation(val) {
+ this.$store.commit('setting/updateCurrentLocation', val);
}
},
created() {
@@ -204,6 +242,8 @@
this.ssyjradio = this.$store.state.setting.ssyjSwiper,
this.isScaleradio = this.$store.state.setting.isScale;
this.fullscreenRadio = this.$store.state.setting.fullscreen || false;
+ this.currentTaskRadio = this.$store.state.setting.currentTask;
+ this.currentLocationRadio = this.$store.state.setting.currentLocation;
// 鍒濆鍖栨椂妫�鏌ュ叏灞忕姸鎬�
if (this.fullscreenRadio) {
--
Gitblit v1.9.3