From 5b34a1458e74f8902d01ebd844c2954f554c9e74 Mon Sep 17 00:00:00 2001
From: xiazhengtongxue <133085197+xiazhengtongxue@users.noreply.github.com>
Date: 星期四, 30 四月 2026 11:05:37 +0800
Subject: [PATCH] 1
---
Code/WCS/WIDESEAWCS_Client/src/extension/taskinfo/extend/AddRobotTask.vue | 196 +++++++++++++++++++++++++++++++++++++++---------
1 files changed, 158 insertions(+), 38 deletions(-)
diff --git a/Code/WCS/WIDESEAWCS_Client/src/extension/taskinfo/extend/AddRobotTask.vue b/Code/WCS/WIDESEAWCS_Client/src/extension/taskinfo/extend/AddRobotTask.vue
index 0146166..aecaf06 100644
--- a/Code/WCS/WIDESEAWCS_Client/src/extension/taskinfo/extend/AddRobotTask.vue
+++ b/Code/WCS/WIDESEAWCS_Client/src/extension/taskinfo/extend/AddRobotTask.vue
@@ -1,26 +1,61 @@
<template>
<div>
- <!-- 鎵嬪姩鍒涘缓鎹㈢洏鏈烘鎵嬩换鍔″脊绐� -->
- <vol-box v-model="showManualCreate" :lazy="true" width="500px" :padding="15" title="鎵嬪姩鍒涘缓鎹㈢洏鏈烘鎵嬩换鍔�">
+ <!-- 鎵嬪姩鍒涘缓鏈哄櫒浜轰换鍔″脊绐� -->
+ <vol-box v-model="showManualCreate" :lazy="true" width="550px" :padding="15" title="鎵嬪姩鍒涘缓鏈哄櫒浜轰换鍔�">
<el-form :model="manualFormData" ref="form" label-width="120px">
- <el-form-item label="鏉ユ簮鍦板潃鎵樼洏鐮�" prop="robotSourceAddressPalletCode" required>
- <el-input v-model="manualFormData.robotSourceAddressPalletCode" placeholder="璇疯緭鍏ユ潵婧愬湴鍧�鎵樼洏鐮�"></el-input>
+ <!-- 浠诲姟绫诲瀷閫夋嫨 -->
+ <el-form-item label="浠诲姟绫诲瀷" prop="robotRoadway" required>
+ <el-select v-model="manualFormData.robotRoadway" placeholder="璇烽�夋嫨浠诲姟绫诲瀷" @change="onTaskTypeChange">
+ <el-option label="缁勭洏浠诲姟" value="GroupPallet"></el-option>
+ <el-option label="鎹㈢洏浠诲姟" value="ChangePallet"></el-option>
+ <el-option label="鎷嗙洏浠诲姟" value="SplitPallet"></el-option>
+ </el-select>
</el-form-item>
- <el-form-item label="鐩爣鍦板潃鎵樼洏鐮�" prop="robotTargetAddressPalletCode" required>
- <el-input v-model="manualFormData.robotTargetAddressPalletCode" placeholder="璇疯緭鍏ョ洰鏍囧湴鍧�鎵樼洏鐮�"></el-input>
- </el-form-item>
- <el-form-item label="鏂瑰悜" prop="forward" required>
- <el-radio-group v-model="manualFormData.forward">
- <el-radio :label="1">鍘诲寲鎴�(婧�:1鈫掔洰鏍�:3)</el-radio>
- <el-radio :label="2">鍘诲寲鎴�(婧�:2鈫掔洰鏍�:4)</el-radio>
- <el-radio :label="3">鍥為珮娓�(婧�:3鈫掔洰鏍�:1)</el-radio>
- <el-radio :label="4">鍥為珮娓�(婧�:4鈫掔洰鏍�:2)</el-radio>
- </el-radio-group>
- </el-form-item>
+
+ <!-- 缁勭洏浠诲姟锛氫粎闇�鐩爣鍦板潃鎵樼洏鐮佸拰浠诲姟鎬绘暟 -->
+ <template v-if="manualFormData.robotRoadway === 'GroupPallet'">
+ <el-form-item label="鐩爣鍦板潃鎵樼洏鐮�" prop="robotTargetAddressPalletCode" required>
+ <el-input v-model="manualFormData.robotTargetAddressPalletCode" placeholder="璇疯緭鍏ョ洰鏍囧湴鍧�鎵樼洏鐮�"></el-input>
+ </el-form-item>
+ <el-form-item label="浠诲姟鎬绘暟" prop="robotTaskTotalNum" required>
+ <el-input-number v-model="manualFormData.robotTaskTotalNum" :min="1" :max="999" label="浠诲姟鎬绘暟"></el-input-number>
+ </el-form-item>
+ </template>
+
+ <!-- 鎹㈢洏浠诲姟锛氶渶鏉ユ簮銆佺洰鏍囨墭鐩樼爜鍜�4涓柟鍚� -->
+ <template v-if="manualFormData.robotRoadway === 'ChangePallet'">
+ <el-form-item label="鏉ユ簮鍦板潃鎵樼洏鐮�" prop="robotSourceAddressPalletCode" required>
+ <el-input v-model="manualFormData.robotSourceAddressPalletCode" placeholder="璇疯緭鍏ユ潵婧愬湴鍧�鎵樼洏鐮�"></el-input>
+ </el-form-item>
+ <el-form-item label="鐩爣鍦板潃鎵樼洏鐮�" prop="robotTargetAddressPalletCode" required>
+ <el-input v-model="manualFormData.robotTargetAddressPalletCode" placeholder="璇疯緭鍏ョ洰鏍囧湴鍧�鎵樼洏鐮�"></el-input>
+ </el-form-item>
+ <el-form-item label="鏂瑰悜" prop="forward" required>
+ <el-radio-group v-model="manualFormData.forward">
+ <el-radio :label="1">鍘诲寲鎴�1: 婧�:1(11010) 鈫� 鐩爣:3(2103)</el-radio>
+ <el-radio :label="2">鍘诲寲鎴�2: 婧�:2(11001) 鈫� 鐩爣:4(2101)</el-radio>
+ <el-radio :label="3">鍥為珮娓�3: 婧�:4(2103) 鈫� 鐩爣:2(11010)</el-radio>
+ <el-radio :label="4">鍥為珮娓�4: 婧�:4(2101) 鈫� 鐩爣:2(11001)</el-radio>
+ </el-radio-group>
+ </el-form-item>
+ <el-form-item label="浠诲姟鎬绘暟" prop="robotTaskTotalNum" required>
+ <el-input-number v-model="manualFormData.robotTaskTotalNum" :min="1" :max="999" label="浠诲姟鎬绘暟"></el-input-number>
+ </el-form-item>
+ </template>
+
+ <!-- 鎷嗙洏浠诲姟锛氫粎闇�鏉ユ簮鍦板潃鎵樼洏鐮佸拰浠诲姟鎬绘暟 -->
+ <template v-if="manualFormData.robotRoadway === 'SplitPallet'">
+ <el-form-item label="鏉ユ簮鍦板潃鎵樼洏鐮�" prop="robotSourceAddressPalletCode" required>
+ <el-input v-model="manualFormData.robotSourceAddressPalletCode" placeholder="璇疯緭鍏ユ潵婧愬湴鍧�鎵樼洏鐮�"></el-input>
+ </el-form-item>
+ <el-form-item label="浠诲姟鎬绘暟" prop="robotTaskTotalNum" required>
+ <el-input-number v-model="manualFormData.robotTaskTotalNum" :min="1" :max="999" label="浠诲姟鎬绘暟"></el-input-number>
+ </el-form-item>
+ </template>
</el-form>
<template #footer>
<el-button type="primary" size="small" @click="submitManualCreate">纭畾</el-button>
- <el-button type="danger" size="small" @click="showManualCreate = false">鍏抽棴</el-button>
+ <el-button type="danger" size="small" @click="closeDialog">鍏抽棴</el-button>
</template>
</vol-box>
</div>
@@ -35,10 +70,25 @@
data() {
return {
showManualCreate: false,
+ // 浠诲姟绫诲瀷鏄犲皠锛堢敤浜庢樉绀轰腑鏂囧悕绉帮級
+ taskTypeMap: {
+ GroupPallet: "缁勭洏浠诲姟",
+ ChangePallet: "鎹㈢洏浠诲姟",
+ SplitPallet: "鎷嗙洏浠诲姟",
+ },
+ // 鏂瑰悜鎻忚堪鏄犲皠
+ directionMap: {
+ 1: "鍘诲寲鎴�1: 婧�:1(11010) 鈫� 鐩爣:3(2103)",
+ 2: "鍘诲寲鎴�2: 婧�:2(11001) 鈫� 鐩爣:4(2101)",
+ 3: "鍥為珮娓�3: 婧�:4(2103) 鈫� 鐩爣:2(11010)",
+ 4: "鍥為珮娓�4: 婧�:4(2101) 鈫� 鐩爣:2(11001)",
+ },
manualFormData: {
- robotSourceAddressPalletCode: "",
- robotTargetAddressPalletCode: "",
- forward: 1, // 1=鍘诲寲鎴�(1鈫�3), 2=鍘诲寲鎴�(2鈫�4), 3=鍥為珮娓�(3鈫�1), 4=鍥為珮娓�(4鈫�2)
+ robotRoadway: "", // 鏈哄櫒浜哄悕绉�/浠诲姟绫诲瀷
+ robotSourceAddressPalletCode: "", // 鏉ユ簮鍦板潃鎵樼洏鐮�
+ robotTargetAddressPalletCode: "", // 鐩爣鍦板潃鎵樼洏鐮�
+ forward: 1, // 鏂瑰悜锛堟崲鐩樹换鍔′娇鐢紝1-4锛�
+ robotTaskTotalNum: 1, // 浠诲姟鎬绘暟
},
};
},
@@ -48,41 +98,111 @@
this.showManualCreate = true;
this.resetManualForm();
},
-
+
+ // 鍏抽棴寮圭獥
+ closeDialog() {
+ this.showManualCreate = false;
+ },
+
// 閲嶇疆琛ㄥ崟
resetManualForm() {
this.manualFormData = {
+ robotRoadway: "",
robotSourceAddressPalletCode: "",
robotTargetAddressPalletCode: "",
forward: 1,
+ robotTaskTotalNum: 1,
};
},
-
+
+ // 浠诲姟绫诲瀷鍒囨崲鏃堕噸缃浉鍏冲瓧娈�
+ onTaskTypeChange(value) {
+ this.manualFormData.robotSourceAddressPalletCode = "";
+ this.manualFormData.robotTargetAddressPalletCode = "";
+ this.manualFormData.forward = 1;
+ },
+
+ // 琛ㄥ崟楠岃瘉
+ validateForm() {
+ const data = this.manualFormData;
+
+ // 1. 蹇呴�変换鍔$被鍨�
+ if (!data.robotRoadway) {
+ this.$message.error("璇烽�夋嫨浠诲姟绫诲瀷");
+ return false;
+ }
+
+ // 2. 鏍规嵁浠诲姟绫诲瀷楠岃瘉蹇呭~瀛楁
+ const taskType = data.robotRoadway;
+
+ if (taskType === "GroupPallet") {
+ if (!data.robotTargetAddressPalletCode) {
+ this.$message.error("缁勭洏浠诲姟锛氳杈撳叆鐩爣鍦板潃鎵樼洏鐮�");
+ return false;
+ }
+ } else if (taskType === "ChangePallet") {
+ if (!data.robotSourceAddressPalletCode) {
+ this.$message.error("鎹㈢洏浠诲姟锛氳杈撳叆鏉ユ簮鍦板潃鎵樼洏鐮�");
+ return false;
+ }
+ if (!data.robotTargetAddressPalletCode) {
+ this.$message.error("鎹㈢洏浠诲姟锛氳杈撳叆鐩爣鍦板潃鎵樼洏鐮�");
+ return false;
+ }
+ // 楠岃瘉鏂瑰悜 1-4
+ if (![1, 2, 3, 4].includes(data.forward)) {
+ this.$message.error("鎹㈢洏浠诲姟锛氳閫夋嫨鏈夋晥鐨勬柟鍚�(1-4)");
+ return false;
+ }
+ } else if (taskType === "SplitPallet") {
+ if (!data.robotSourceAddressPalletCode) {
+ this.$message.error("鎷嗙洏浠诲姟锛氳杈撳叆鏉ユ簮鍦板潃鎵樼洏鐮�");
+ return false;
+ }
+ }
+
+ // 3. 楠岃瘉浠诲姟鎬绘暟
+ if (data.robotTaskTotalNum < 1) {
+ this.$message.error("浠诲姟鎬绘暟涓嶈兘灏忎簬1");
+ return false;
+ }
+
+ return true;
+ },
+
// 鎻愪氦鎵嬪姩鍒涘缓浠诲姟
submitManualCreate() {
// 琛ㄥ崟楠岃瘉
- if (!this.manualFormData.robotSourceAddressPalletCode) {
- return this.$message.error("璇疯緭鍏ユ潵婧愬湴鍧�鎵樼洏鐮�");
- }
- if (!this.manualFormData.robotTargetAddressPalletCode) {
- return this.$message.error("璇疯緭鍏ョ洰鏍囧湴鍧�鎵樼洏鐮�");
- }
- if (this.manualFormData.forward === undefined || this.manualFormData.forward === null) {
- return this.$message.error("璇烽�夋嫨鏂瑰悜");
+ if (!this.validateForm()) {
+ return;
}
- // 璋冪敤鍚庣API鍒涘缓鎹㈢洏鏈烘鎵嬩换鍔�
+ // 鏋勫缓璇锋眰鍙傛暟锛堜笌鍚庣 ManualRobotTaskDto 瀵瑰簲锛�
+ const params = {
+ robotRoadway: this.manualFormData.robotRoadway,
+ robotSourceAddressPalletCode: this.manualFormData.robotSourceAddressPalletCode,
+ robotTargetAddressPalletCode: this.manualFormData.robotTargetAddressPalletCode,
+ robotTaskTotalNum: this.manualFormData.robotTaskTotalNum,
+ forward: this.manualFormData.forward, // 鏂瑰悜锛屾暣鍨� 1-4
+ };
+
+ // 鑾峰彇浠诲姟绫诲瀷涓枃鍚嶇О鐢ㄤ簬鎻愮ず
+ const taskTypeName = this.taskTypeMap[params.robotRoadway] || "鏈哄櫒浜�";
+
+ // 鑾峰彇鏂瑰悜鎻忚堪锛堜粎鎹㈢洏浠诲姟锛�
+ let directionDesc = "";
+ if (params.robotRoadway === "ChangePallet") {
+ directionDesc = this.directionMap[params.forward] || "";
+ }
+
+ // 璋冪敤鍚庣API鍒涘缓鏈哄櫒浜轰换鍔�
this.http
- .post("api/RobotTask/AddRobotTask", {
- robotSourceAddressPalletCode: this.manualFormData.robotSourceAddressPalletCode,
- robotTargetAddressPalletCode: this.manualFormData.robotTargetAddressPalletCode,
- forward: this.manualFormData.forward, // 娉ㄦ剰瀛楁鍚嶆敼涓篺orward锛岀被鍨嬩负鏁存暟
- }, "鍒涘缓鎹㈢洏鏈烘鎵嬩换鍔′腑...")
+ .post("api/RobotTask/CreateRobotTaskManually", params, `鍒涘缓${taskTypeName}${directionDesc ? ' - ' + directionDesc : ''}涓�...`)
.then((res) => {
if (!res.status) {
return this.$message.error(res.message);
}
- this.$message.success("鎹㈢洏鏈烘鎵嬩换鍔″垱寤烘垚鍔�");
+ this.$message.success(`${taskTypeName}${directionDesc ? ' - ' + directionDesc : ''}鍒涘缓鎴愬姛`);
this.showManualCreate = false;
// 鍒锋柊鐖堕〉闈㈡暟鎹�
this.$emit("parentCall", ($vue) => {
@@ -90,9 +210,9 @@
});
})
.catch((err) => {
- this.$message.error("鍒涘缓鎹㈢洏鏈烘鎵嬩换鍔″け璐ワ細" + (err.message || "鏈煡閿欒"));
+ this.$message.error(`鍒涘缓${taskTypeName}澶辫触锛歚 + (err.message || "鏈煡閿欒"));
});
},
},
};
-</script>
\ No newline at end of file
+</script>
--
Gitblit v1.9.3