From f90fbbc76d23340e4568dd4dadbab5f7f02a030f Mon Sep 17 00:00:00 2001 From: pengwei <2071057782@qq.com> Date: 星期一, 24 三月 2025 14:49:24 +0800 Subject: [PATCH] 3.24功能新增 --- 项目代码/client/src/views/tts/CraftCenter/Craftcenter.vue | 616 ++++++++++++++++++++++++++++++++----------------------- 1 files changed, 357 insertions(+), 259 deletions(-) diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/client/src/views/tts/CraftCenter/Craftcenter.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/client/src/views/tts/CraftCenter/Craftcenter.vue" index b0201d8..dd4bc92 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/client/src/views/tts/CraftCenter/Craftcenter.vue" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/client/src/views/tts/CraftCenter/Craftcenter.vue" @@ -34,11 +34,13 @@ <span>姝や负浠诲姟浣滅敤涓數姘旂殑鐨勮鎯呮楠ゅ伐鑹恒��</span> <div style="display: flex; margin-top: 0.81rem"> <span style="margin-right: 1.25rem" - >姝ラ锛歿{ electric ? electric[0].maxNodal : "0" }}</span + >姝ラ锛歿{ + electric.length != 0 ? electric[0].maxNodal : "0" + }}</span > <span >濂楃瓛鏁伴噺锛歿{ - electric ? electric[0].sumTorqueSum : "0" + electric != 0 ? electric[0].sumTorqueSum : "0" }}</span > </div> @@ -104,11 +106,13 @@ <span>姝や负浠诲姟浣滅敤涓満姊扮殑鐨勮鎯呮楠ゅ伐鑹恒��</span> <div style="display: flex; margin-top: 0.81rem"> <span style="margin-right: 1.25rem" - >姝ラ锛歿{ mechanical ? mechanical[0].maxNodal : "0" }}</span + >姝ラ锛歿{ + mechanical != 0 ? mechanical[0].maxNodal : "0" + }}</span > <span >濂楃瓛鏁伴噺锛歿{ - mechanical ? mechanical[0].sumTorqueSum : "0" + mechanical.length != 0 ? mechanical[0].sumTorqueSum : "0" }}</span > </div> @@ -174,10 +178,14 @@ <span>姝や负浠诲姟浣滅敤涓湴娌熺殑鐨勮鎯呮楠ゅ伐鑹恒��</span> <div style="display: flex; margin-top: 0.81rem"> <span style="margin-right: 1.25rem" - >姝ラ锛歿{ trench ? trench[0].maxNodal : "0" }}</span + >姝ラ锛歿{ + trench.length != 0 ? trench[0].maxNodal : "0" + }}</span > <span - >濂楃瓛鏁伴噺锛歿{ trench ? trench[0].sumTorqueSum : "0" }}</span + >濂楃瓛鏁伴噺锛歿{ + trench.length != 0 ? trench[0].sumTorqueSum : "0" + }}</span > </div> </div> @@ -234,6 +242,7 @@ </el-icon> </div> </template> + <div> <div class="head"> <div class="serch"> @@ -304,6 +313,7 @@ > </div> <el-table + empty-text="鏆傛棤鏁版嵁" style="margin-top: 1.13rem" :data="gridData" height="430" @@ -383,70 +393,72 @@ </h4> </div> </template> - <el-form - :model="form" - label-width="auto" - label-position="top" - :rules="rules" - ref="ruleFormRef" - > - <el-row :gutter="10"> - <el-col :span="8" - ><el-form-item prop="nodal"> - <template #label> - <span style="font-size: 0.88rem; color: black">搴忓彿</span> - </template> - <el-input - size="small" - v-model.number="form.nodal" - placeholder="璇疯緭鍏�" - style="height: 2rem" - /> </el-form-item - ></el-col> + <el-scrollbar height="44rem"> + <el-form + :model="form" + label-width="auto" + label-position="top" + :rules="rules" + ref="ruleFormRef" + > + <el-row :gutter="10"> + <el-col :span="8" + ><el-form-item prop="nodal"> + <template #label> + <span style="font-size: 0.88rem; color: black">搴忓彿</span> + </template> + <el-input + size="small" + v-model.number="form.nodal" + placeholder="璇疯緭鍏�" + style="height: 2rem" + /> </el-form-item + ></el-col> - <el-col :span="8" - ><el-form-item prop="setpNum"> - <template #label> - <span style="font-size: 0.88rem; color: black">鎺掑簭</span> - </template> - <el-input - size="small" - v-model.number="form.setpNum" - placeholder="璇疯緭鍏�" - style="height: 2rem" - /> </el-form-item - ></el-col> - <el-col :span="8" - ><el-form-item prop="DeviceCode"> - <template #label> - <span style="font-size: 0.88rem; color: black">鐗╂枡</span> - </template> - <el-input - v-model="form.material" - style="height: 2rem" - placeholder="璇疯緭鍏�" - /> </el-form-item - ></el-col> - </el-row> - <el-row :gutter="10"> - <el-col - ><el-form-item prop="craftsStep"> - <template #label> - <span style="font-size: 0.88rem; color: black" - >宸ヨ壓椤剁偣/姝ラ</span - > - </template> - <el-input - size="small" - v-model="form.craftsStep" - placeholder="璇疯緭鍏�" - style="height: 2rem" - /> </el-form-item - ></el-col> - </el-row> + <el-col :span="8" + ><el-form-item prop="setpNum"> + <template #label> + <span style="font-size: 0.88rem; color: black">鎺掑簭</span> + </template> + <el-input + size="small" + v-model.number="form.setpNum" + placeholder="璇疯緭鍏�" + style="height: 2rem" + /> </el-form-item + ></el-col> + <el-col :span="8" + ><el-form-item prop="DeviceCode"> + <template #label> + <span style="font-size: 0.88rem; color: black">鐗╂枡</span> + </template> + <el-input + v-model="form.material" + style="height: 2rem" + placeholder="璇疯緭鍏�" + /> </el-form-item + ></el-col> + </el-row> - <el-row :gutter="10"> - <!-- <el-col :span="8" + <el-row :gutter="10"> + <el-col + ><el-form-item prop="craftsStep"> + <template #label> + <span style="font-size: 0.88rem; color: black" + >宸ヨ壓椤剁偣/姝ラ</span + > + </template> + <el-input + size="small" + v-model="form.craftsStep" + placeholder="璇疯緭鍏�" + style="height: 2rem" + /> </el-form-item + ></el-col> + </el-row> + + <el-row :gutter="10"> + <!-- <el-col :span="8" ><el-form-item prop="isinvolved"> <template #label> <span style="font-size: 0.88rem; color: black">鏄惁娑夊強</span> @@ -465,32 +477,105 @@ /> </el-select> </el-form-item ></el-col> --> - <el-col :span="16" - ><el-form-item prop="tools"> - <template #label> - <div style="display: flex; align-items: center"> - <span style="font-size: 0.88rem; color: black">宸ュ叿</span> - </div> - </template> - <el-select - v-model="tools" - placeholder="璇烽�夋嫨" - multiple - filterable - :remote-method="GJremoteMethod" - :loading="GJloading" - size="small" - value-key="id" - > - <el-option - v-for="item in GJoptions" - :key="item.id" - :label="item.toolName" - :value="item" - /> </el-select></el-form-item - ></el-col> - </el-row> - <!-- <el-row> + <el-col :span="8" + ><el-form-item prop="tools"> + <template #label> + <div style="display: flex; align-items: center"> + <span style="font-size: 0.88rem; color: black">宸ュ叿</span> + </div> + </template> + <el-select + style="height: 2rem" + v-model="tools" + placeholder="璇烽�夋嫨" + multiple + filterable + :remote-method="GJremoteMethod" + :loading="GJloading" + size="small" + value-key="id" + > + <el-option + v-for="item in GJoptions" + :key="item.id" + :label="item.toolName" + :value="item" + /> </el-select></el-form-item + ></el-col> + + <el-col :span="4" + ><el-form-item prop="tools"> + <template #label> + <div style="display: flex; align-items: center"> + <span style="font-size: 0.88rem; color: black" + >绗竴娆℃壄鍔涚殑鍊�</span + > + </div> + </template> + <el-input + size="small" + v-model="form.torqueOne" + placeholder="璇疯緭鍏�" + style="height: 2rem" + > + <template #suffix> + <span style="font-size: 0.88rem; color: black">N*m</span> + </template> + </el-input> + </el-form-item></el-col + > + + <el-col :span="4" + ><el-form-item prop="tools"> + <template #label> + <div style="display: flex; align-items: center"> + <span style="font-size: 0.88rem; color: black">鏁伴噺</span> + </div> + </template> + <el-input + size="small" + v-model="form.torqueOneQuantity" + placeholder="璇疯緭鍏�" + style="height: 2rem" /></el-form-item + ></el-col> + + <el-col :span="4" + ><el-form-item prop="tools"> + <template #label> + <div style="display: flex; align-items: center"> + <span style="font-size: 0.88rem; color: black" + >绗簩娆℃壄鍔涚殑鍊�</span + > + </div> + </template> + <el-input + size="small" + v-model="form.torqueTwo" + placeholder="璇疯緭鍏�" + style="height: 2rem" + > + <template #suffix> + <span style="font-size: 0.88rem; color: black">N*m</span> + </template> + </el-input></el-form-item + ></el-col + > + + <el-col :span="4" + ><el-form-item prop="tools"> + <template #label> + <div style="display: flex; align-items: center"> + <span style="font-size: 0.88rem; color: black">鏁伴噺</span> + </div> + </template> + <el-input + size="small" + v-model="form.torqueTwoQuantity" + placeholder="璇疯緭鍏�" + style="height: 2rem" /></el-form-item + ></el-col> + </el-row> + <!-- <el-row> <el-form-item prop="Unit"> <template #label ><span style="font-size: 0.88rem; color: black" @@ -539,68 +624,72 @@ </el-upload> </el-form-item> </el-row> --> - <el-row> - <h4 - style=" - color: rgba(16, 16, 16, 1); - font-size: 1.13rem; - font-weight: bold; - " - > - 宸ヨ壓鍐呭 - </h4> - </el-row> - <el-row> - <el-col> - <el-form-item prop="craftContent"> - <template #label> - <span style="font-size: 0.88rem; color: black">鍐呭鎻忚堪</span> - </template> - <el-input - type="textarea" - :rows="3" - v-model="form.craftContent" - placeholder="璇疯緭鍏�" - /> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-form-item prop="checkList"> - <template #label> - <div style="display: flex; align-items: center"> - <span style="font-size: 0.88rem; color: black">閫夋嫨濂楃瓛</span> - </div> - </template> - <div + <el-row> + <h4 style=" - display: flex; - justify-content: space-between; - width: 32.5rem; - height: 25rem; + color: rgba(16, 16, 16, 1); + font-size: 1.13rem; + font-weight: bold; " > - <div style="width: 50%; height: 100%; background: #f5f5f5"> - <div - style=" - padding: 0.88rem 0.88rem 0 0.88rem; - box-sizing: border-box; - " - > - <el-input + 宸ヨ壓鍐呭 + </h4> + </el-row> + <el-row> + <el-col> + <el-form-item prop="craftContent"> + <template #label> + <span style="font-size: 0.88rem; color: black">鍐呭鎻忚堪</span> + </template> + <el-input + type="textarea" + :rows="3" + v-model="form.craftContent" + placeholder="璇疯緭鍏�" + /> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-form-item prop="checkList"> + <template #label> + <div style="display: flex; align-items: center"> + <span style="font-size: 0.88rem; color: black">閫夋嫨濂楃瓛</span> + </div> + </template> + <div + style=" + display: flex; + justify-content: space-between; + width: 32.5rem; + height: 25rem; + " + > + <div style="width: 50%; height: 100%; background: #f5f5f5"> + <div + style=" + padding: 0.88rem 0.88rem 0 0.88rem; + box-sizing: border-box; + " + > + <!-- <el-input placeholder="鎼滅储" style="height: 2rem; background: #f5f5f5; border: none" :prefix-icon="Search" v-model="value" - ></el-input> - <div - style="height: 1.25rem; display: flex; align-items: center" - > - <span - style="color: rgba(28, 31, 35, 0.8); font-size: 0.75rem" - >鍏眥{ checkList.length }}椤�</span + ></el-input> --> + <div + style=" + height: 1.25rem; + display: flex; + align-items: center; + " > - <!-- <span + <span + style="color: rgba(28, 31, 35, 0.8); font-size: 0.75rem" + >鍏眥{ checkList.length }}椤�</span + > + <!-- <span @click="handleCheckAllChange" style=" color: rgba(28, 31, 35, 0.8); @@ -610,77 +699,79 @@ " >鍏ㄩ��</span > --> + </div> </div> - </div> - <el-scrollbar height="20rem" style="padding-left: 0.88rem"> - <el-checkbox-group - :indeterminate="isIndeterminate" - @change="checkChange" - v-model="checkboxId" - style="display: flex; flex-direction: column" - > - <el-checkbox - :max="2" - v-for="item in sleeveData" - :key="item.id" - :label="item.articleName" - :value="item.id" - /> - </el-checkbox-group> - </el-scrollbar> - </div> - <div style="width: 50%; height: 100%"> - <div - style="padding: 0.88rem 0 0 0.88rem; box-sizing: border-box" - > - <span style="color: rgb(167, 171, 176); font-size: 0.88rem" - >宸查�墈{ checkList.length }}椤�</span - > - <span - @click="clear" - style=" - color: rgb(65, 70, 76); - font-size: 0.88rem; - margin-left: 1rem; - cursor: pointer; - " - >娓呯┖</span - > - </div> - <el-scrollbar - height="calc(25rem - 44.15px)" - style="padding-left: 0.88rem" - > - <p - style=" - display: flex; - justify-content: space-between; - margin: 0.5rem 0; - " - v-for="item in checkList" - :key="item.id" - class="scrollbar-demo-item" - > - <span> - {{ item.articleName }} - </span> - <span> - <el-input-number - size="small" - style="width: 7rem" - v-model="item.num" - :min="1" - :max="100" - @change="handleChange" + <el-scrollbar height="20rem" style="padding-left: 0.88rem"> + <el-checkbox-group + :indeterminate="isIndeterminate" + @change="checkChange" + v-model="checkboxId" + style="display: flex; flex-direction: column" + > + <el-checkbox + :max="2" + v-for="item in sleeveData" + :key="item.id" + :label="item.articleName" + :value="item.id" /> - </span> - </p> - </el-scrollbar> + </el-checkbox-group> + </el-scrollbar> + </div> + <div style="width: 50%; height: 100%"> + <div + style="padding: 0.88rem 0 0 0.88rem; box-sizing: border-box" + > + <span style="color: rgb(167, 171, 176); font-size: 0.88rem" + >宸查�墈{ checkList.length }}椤�</span + > + <span + @click="clear" + style=" + color: rgb(65, 70, 76); + font-size: 0.88rem; + margin-left: 1rem; + cursor: pointer; + " + >娓呯┖</span + > + </div> + <el-scrollbar + height="calc(25rem - 44.15px)" + style="padding-left: 0.88rem" + > + <p + style=" + display: flex; + justify-content: space-between; + margin: 0.5rem 0; + " + v-for="item in checkList" + :key="item ? item.id : ''" + class="scrollbar-demo-item" + > + <span> + {{ item ? item.articleName : "" }} + </span> + <span> + <el-input-number + size="small" + style="width: 7rem" + v-model="item.num" + :min="1" + :max="100" + @change="handleChange" + /> + </span> + </p> + </el-scrollbar> + </div> </div> - </div> - </el-form-item> - </el-row> - </el-form> + </el-form-item> + </el-row> + </el-form> + </el-scrollbar> + <template #footer> <div class="dialog-footer" style="text-align: center"> <el-button @click="craftdialogVisible = false" style="height: 2rem" @@ -699,7 +790,7 @@ </div> </template> <script setup> -import { ref, reactive, onMounted, toRef } from "vue"; +import { ref, reactive, onMounted, toRef, computed } from "vue"; import { Search } from "@element-plus/icons-vue"; import { GetSleeveandStep, @@ -729,11 +820,11 @@ //閫夋嫨鐨勫绛掓暟鎹� const checkList = ref([]); //鐢垫皵鏁伴噺 -const electric = ref(null); +const electric = ref([]); //鏈烘鏁伴噺 -const mechanical = ref(null); +const mechanical = ref([]); //鍦版矡 -const trench = ref(null); +const trench = ref([]); //鏂板宸ヨ壓/缂栬緫宸ヨ壓 const type = ref("鏂板"); //鑾峰彇鏁版嵁 @@ -860,14 +951,15 @@ //缂栬緫宸ヨ壓 const Editcraft = (row) => { - console.log(row); - let data = Object.assign({}, row); type.value = "缂栬緫"; detailsDialogVisible.value = false; craftdialogVisible.value = true; form.value = data; - tools.value = row.tools ? row.tools.split(",") : ""; + tools.value = data.tools ? data.tools.split(",") : ""; + console.log("tools", tools.value); + + checkboxId.value = [Number(row.articleOneid), Number(row.articleTowid)]; ArticleInfom({ page: 1, rows: 100, @@ -887,7 +979,26 @@ ], }).then((res) => { sleeveData.value = res.rows; + checkList.value = res.rows.map((item) => { + if (Number(row.articleOneid) == item.id) { + return { + ...item, + num: row.articleOne, + }; + } else if (item.id == row.articleTowid) { + return { + ...item, + num: row.articleTwo, + }; + } else { + return {}; + } + }); + checkList.value = checkList.value.filter((item) => { + return Object.keys(item).length > 0; + }); }); + GetTool({ page: 1, rows: 100, @@ -920,42 +1031,16 @@ }; //淇濆瓨 const addprocess = async (formEl) => { + console.log(checkboxId.value); userName.value = JSON.parse(localStorage.getItem("user")).userName; let string = ""; - // if (tools.value.length == 0) { - // ElMessage({ - // message: "璇烽�夋嫨宸ュ叿", - // type: "warning", - // }); - // return; - // } if (tools.value.length > 0) { - if (type.value == "缂栬緫") { - string = tools.value - ? tools.value - .map((item) => { - return item; - }) - .join(",") - : ""; - return; - } string = tools.value - ? tools.value - .map((item) => { - return item.toolName; - }) - .join(",") - : ""; + .map((item) => { + return typeof item == "string" ? item : item.toolName; + }) + .join(","); } - - // if (checkList.value.length == 0) { - // ElMessage({ - // message: "璇烽�夋嫨濂楃瓛", - // type: "warning", - // }); - // return; - // } if (form.value.nodal == 0) { ElMessage({ message: "搴忓彿鏈�灏忎负1", @@ -963,22 +1048,33 @@ }); return; } + console.log(checkList.value); form.value.aritcleoneid = checkList.value.length != 0 ? checkList.value[0].id : ""; form.value.articleone = checkList.value.length != 0 ? checkList.value[0].num : ""; form.value.aritcletowid = - checkList.value.length != 0 ? checkList.value[1].id : ""; + checkList.value.length != 0 && checkList.value.length > 1 + ? checkList.value[1].id + : ""; form.value.articletwo = - checkList.value.length != 0 ? checkList.value[1].num : ""; + checkList.value.length != 0 && checkList.value.length > 1 + ? checkList.value[1].num + : ""; form.value.creater = userName.value; form.value.tools = string; form.value.craftstype = title.value; - form.value.torqueOneQuantity = tools.value.length; form.value.id = form.value.craftID ? form.value.craftID : 0; - console.log(form.value); - + form.value.torqueSum = computed(() => { + if (form.value.torqueOne > 1 && form.value.torqueTwo > 1) { + return 2; + } else if (form.value.torqueOne > 1 || form.value.torqueTwo > 1) { + return 1; + } else { + return 0; + } + }); if (!formEl) return; await formEl.validate((valid, fields) => { if (valid) { @@ -1108,6 +1204,8 @@ } ); tools.value = []; + checkList.value = []; + checkboxId.value = []; }; //瀵煎嚭鏂规硶 const printExcel = () => { -- Gitblit v1.9.3