From e0a31f7013898540948f4d4d86ade1a5414b44d4 Mon Sep 17 00:00:00 2001
From: pengwei <2071057782@qq.com>
Date: 星期四, 20 三月 2025 17:32:42 +0800
Subject: [PATCH] 优化数据大屏页面
---
项目代码/client/src/utils/index.js | 2
项目代码/client/package.json | 2
项目代码/client/src/views/tts/TheCurrentJob/Startjob.vue | 263 ++++++++++++++++++++++++++++++++++++++++---
项目代码/client/package-lock.json | 20 ++
项目代码/client/src/api/newapi/Thecurrentjob.js | 3
项目代码/client/src/views/tts/CraftCenter/Craftcenter.vue | 65 ++++++----
项目代码/client/dist.7z | 0
7 files changed, 309 insertions(+), 46 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/client/dist.7z" "b/\351\241\271\347\233\256\344\273\243\347\240\201/client/dist.7z"
index 7a2aef6..5e6238a 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/client/dist.7z"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/client/dist.7z"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/client/package-lock.json" "b/\351\241\271\347\233\256\344\273\243\347\240\201/client/package-lock.json"
index f953880..889b8b7 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/client/package-lock.json"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/client/package-lock.json"
@@ -17,6 +17,8 @@
"element-plus": "^2.9.6",
"pinia": "^2.3.0",
"scss": "^0.2.4",
+ "three": "^0.174.0",
+ "three-orbit-controls": "^82.1.0",
"vue": "^3.5.13",
"vue-3d-model": "2.0.0-alpha.4",
"vue-chartjs": "^5.3.2",
@@ -8145,9 +8147,15 @@
}
},
"node_modules/three": {
- "version": "0.141.0",
- "resolved": "https://registry.npmmirror.com/three/-/three-0.141.0.tgz",
- "integrity": "sha512-JaSDAPWuk4RTzG5BYRQm8YZbERUxTfTDVouWgHMisS2to4E5fotMS9F2zPFNOIJyEFTTQDDKPpsgZVThKU3pXA==",
+ "version": "0.174.0",
+ "resolved": "https://registry.npmmirror.com/three/-/three-0.174.0.tgz",
+ "integrity": "sha512-p+WG3W6Ov74alh3geCMkGK9NWuT62ee21cV3jEnun201zodVF4tCE5aZa2U122/mkLRmhJJUQmLLW1BH00uQJQ==",
+ "license": "MIT"
+ },
+ "node_modules/three-orbit-controls": {
+ "version": "82.1.0",
+ "resolved": "https://registry.npmmirror.com/three-orbit-controls/-/three-orbit-controls-82.1.0.tgz",
+ "integrity": "sha512-hIWxGoHqIbeq0S2lA14m9VRzo7SamKKVJ9mKMT/rdh0Qa3nV5Umvhlx4zsHl0Y6jLKVZhjatJfeD/K08Tr/g4A==",
"license": "MIT"
},
"node_modules/through": {
@@ -8824,6 +8832,12 @@
"vue": ">=3.0.0"
}
},
+ "node_modules/vue-3d-model/node_modules/three": {
+ "version": "0.141.0",
+ "resolved": "https://registry.npmmirror.com/three/-/three-0.141.0.tgz",
+ "integrity": "sha512-JaSDAPWuk4RTzG5BYRQm8YZbERUxTfTDVouWgHMisS2to4E5fotMS9F2zPFNOIJyEFTTQDDKPpsgZVThKU3pXA==",
+ "license": "MIT"
+ },
"node_modules/vue-chartjs": {
"version": "5.3.2",
"resolved": "https://registry.npmmirror.com/vue-chartjs/-/vue-chartjs-5.3.2.tgz",
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/client/package.json" "b/\351\241\271\347\233\256\344\273\243\347\240\201/client/package.json"
index 3e6cff4..f398f33 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/client/package.json"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/client/package.json"
@@ -18,6 +18,8 @@
"element-plus": "^2.9.6",
"pinia": "^2.3.0",
"scss": "^0.2.4",
+ "three": "^0.174.0",
+ "three-orbit-controls": "^82.1.0",
"vue": "^3.5.13",
"vue-3d-model": "2.0.0-alpha.4",
"vue-chartjs": "^5.3.2",
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/client/src/api/newapi/Thecurrentjob.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/client/src/api/newapi/Thecurrentjob.js"
index dc25265..a67e21f 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/client/src/api/newapi/Thecurrentjob.js"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/client/src/api/newapi/Thecurrentjob.js"
@@ -26,3 +26,6 @@
//鑾峰彇鍔涚煩鍊�
export const GetTorque = (data) => http.post(`/api/TorqueOp/Checkvalue`, data)
+
+//娣诲姞鎵姏鍊�
+export const AddTorque = (data) => http.post(`/api/TorqueOp/AddData`, data)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/client/src/utils/index.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/client/src/utils/index.js"
index 540d4eb..83bc025 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/client/src/utils/index.js"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/client/src/utils/index.js"
@@ -1,7 +1,7 @@
import { dayjs } from "element-plus";
// import XLSX from "xlsx"; //瀵煎叆xlsx
-export const baseUrl = "http://192.168.0.80:5000/"
+export const baseUrl = "http://115.159.85.185:9098/"
// http://115.159.85.185:9091/
// http://192.168.0.80:5000/
// 115.159.85.185:9091
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 27e58a9..ad852c4 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"
@@ -446,13 +446,13 @@
</el-select> </el-form-item
></el-col>
<el-col :span="8"
- ><el-form-item prop="sort">
+ ><el-form-item prop="setnum">
<template #label>
<span style="font-size: 0.88rem; color: black">鎺掑簭</span>
</template>
<el-input
size="small"
- v-model="form.setpNum"
+ v-model.number="form.setnum"
placeholder="璇疯緭鍏�"
style="height: 2rem"
/> </el-form-item
@@ -461,9 +461,6 @@
><el-form-item prop="tools">
<template #label>
<div style="display: flex; align-items: center">
- <span style="display: flex; color: red; margin-right: 0.25rem"
- >*</span
- >
<span style="font-size: 0.88rem; color: black">宸ュ叿</span>
</div>
</template>
@@ -484,6 +481,20 @@
:label="item.toolName"
:value="item"
/> </el-select></el-form-item
+ ></el-col>
+ </el-row>
+ <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-row>
<!-- <el-row>
@@ -560,9 +571,6 @@
<el-form-item prop="checkList">
<template #label>
<div style="display: flex; align-items: center">
- <span style="display: flex; color: red; margin-right: 0.25rem"
- >*</span
- >
<span style="font-size: 0.88rem; color: black">閫夋嫨濂楃瓛</span>
</div>
</template>
@@ -770,24 +778,24 @@
craftstype: [
{ required: true, message: "璇烽�夋嫨宸ヨ壓绫诲瀷", trigger: "change" },
],
- nodal: [{ required: true, message: "璇烽�夋嫨鑺傜偣", trigger: "change" }],
craftsStep: [{ required: true, message: "璇疯緭鍏ュ伐鑹烘楠�", trigger: "blur" }],
craftContent: [
{ required: true, message: "璇疯緭鍏ュ伐鑹哄唴瀹�", trigger: "blur" },
],
- sleeveNum: [{ required: true, message: "璇疯緭鍏ュ绛掓暟閲�", trigger: "blur" }],
+ nodal: [{ required: true, message: "璇疯緭鍏ュ簭鍙�", trigger: "blur" }],
+ setnum: [{ required: true, message: "璇疯緭鍏ユ帓搴忓彿", trigger: "blur" }],
});
+// isinvolved: "", //鏄惁娑夊強
//鏂板宸ヨ壓/缂栬緫宸ヨ壓琛ㄥ崟鏁版嵁
const form = ref({
craftstype: "", //宸ヨ壓绫诲瀷锛堢粍锛�
- nodal: 0, //鑺傜偣
+ nodal: null, //鑺傜偣
craftsStep: "", //宸ヨ壓姝ラ
craftContent: "", //宸ヨ壓鍐呭
sleeveNum: "", //濂楃瓛鏁伴噺
tools: "", //宸ュ叿
- isinvolved: "", //鏄惁娑夊強
- setpNum: "",
+ setnum: null,
torqueOne: 0,
torqueOneQuantity: 0,
articleOne: "",
@@ -802,6 +810,7 @@
: "",
createDate: formatTime(new Date()),
});
+
const props = { multiple: true };
const userName = ref("");
@@ -914,25 +923,33 @@
const addprocess = async (formEl) => {
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) {
+ // ElMessage({
+ // message: "璇烽�夋嫨宸ュ叿",
+ // type: "warning",
+ // });
+ // return;
+ // }
string = tools.value
.map((item) => {
return item.toolName;
})
.join(",");
- if (checkList.value.length == 0) {
+ // if (checkList.value.length == 0) {
+ // ElMessage({
+ // message: "璇烽�夋嫨濂楃瓛",
+ // type: "warning",
+ // });
+ // return;
+ // }
+ if (form.value.nodal == 0) {
ElMessage({
- message: "璇烽�夋嫨濂楃瓛",
+ message: "搴忓彿鏈�灏忎负1",
type: "warning",
});
return;
}
+
form.value.articleOneid = checkList.value[0].id;
form.value.articleOne = checkList.value[0].num;
form.value.articleTowid = checkList.value[1].id;
@@ -941,7 +958,7 @@
form.value.tools = string;
form.value.craftstype = title.value;
form.value.torqueOneQuantity = tools.value.length;
- form.value.id = form.value.craftID ? form.value.craftID : "";
+ form.value.id = form.value.craftID ? form.value.craftID : 0;
console.log(form.value);
if (!formEl) return;
@@ -997,7 +1014,7 @@
//鍒嗛〉璇锋眰鍙傛暟
const pageQuery = ref({
page: 1, //褰撳墠椤甸潰
- rows: 10, //姣忛〉鏄剧ず鏉℃暟
+ rows: 100, //姣忛〉鏄剧ず鏉℃暟
order: "desc", //鎺掑簭鏂瑰紡
sort: "", //鎺掑簭瀛楁
wheres: "", //鏉′欢鏌ヨ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/client/src/views/tts/TheCurrentJob/Startjob.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/client/src/views/tts/TheCurrentJob/Startjob.vue"
index 7c7dd51..4ef70a6 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/client/src/views/tts/TheCurrentJob/Startjob.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/client/src/views/tts/TheCurrentJob/Startjob.vue"
@@ -1,7 +1,7 @@
<template>
<div class="Startjob">
- <div class="rect">
- <div class="rect-top" style="position: relative">
+ <div class="rect" style="position: relative">
+ <div class="rect-top">
<img src="@/assets/TheCurrentJob/left.png" alt="" />
<img
style="margin-left: -1.5rem; margin-right: 4rem"
@@ -111,6 +111,7 @@
>浠诲姟璇︽儏锛�</span
>
<span
+ ref="spanHide1"
@click="showDetail(!contentShow1)"
style="color: #1ac2f7; font-size: 0.88rem; cursor: pointer"
>鏌ョ湅</span
@@ -192,6 +193,7 @@
>
<template #default="scope">
<span
+ ref="spanHide"
@click="showDetail1(!contentShow)"
style="
color: #1ac2f7;
@@ -277,27 +279,27 @@
</div>
</div>
</div>
- <div class="rect-item3">
- <div style="overflow: hidden">
+ <div class="rect-item3" style="position: relative">
+ <div style="overflow: hidden; padding-bottom: 1rem">
<img src="@/assets/TheCurrentJob/icon/icon.png" alt="" />
<span style="color: rgba(26, 201, 255, 1); font-size: 0.88rem"
>鍔涚煩鍊兼樉绀�</span
>
-
- <el-scrollbar>
+ <el-scrollbar ref="scrollbarRef" height="130rpx">
<div
+ ref="innerRef"
style="
display: flex;
justify-content: center;
flex-direction: column;
padding-left: 1.5rem;
padding-top: 0.5rem;
- padding-bottom: 1.5rem;
+ padding-bottom: 1rem;
box-sizing: border-box;
"
>
<span
- style="color: #ffffff; font-size: 1rem; margin: 0.5rem 0"
+ style="color: #ffffff; font-size: 1rem; margin: 0.4rem 0"
v-for="(item, index) in Torque"
:key="item.id"
>{{
@@ -305,7 +307,44 @@
}}</span
>
</div>
+ <el-input
+ v-if="isTorque"
+ v-model.number="torqueFrom.torqueSize"
+ style="font-size: 0.75rem; height: 2rem"
+ placeholder="璇疯緭鍏ユ壄鍔涘��"
+ />
+ <!-- @blur="addTorque" -->
</el-scrollbar>
+ </div>
+ <div
+ style="
+ position: absolute;
+ bottom: -2.3rem;
+ left: -0.1rem;
+ width: 100%;
+ "
+ >
+ <el-button
+ v-if="!isTorque"
+ type="primary"
+ style="font-size: 0.75rem; width: 100%; height: 2rem"
+ @click="showTorque"
+ >鎵嬪姩妯℃嫙鎵姏鍊�</el-button
+ >
+ <div v-else style="display: flex; justify-content: space-between">
+ <el-button
+ type="primary"
+ style="font-size: 0.75rem; width: 100%; height: 2rem"
+ @click="addTorque"
+ >纭</el-button
+ >
+ <el-button
+ type="primary"
+ style="font-size: 0.75rem; width: 100%; height: 2rem"
+ @click="isTorque = false"
+ >鍙栨秷</el-button
+ >
+ </div>
</div>
</div>
</div>
@@ -316,13 +355,14 @@
display: flex;
justify-content: center;
align-items: center;
- z-index: 999;
position: absolute;
- top: 42%;
- left: 15%;
+ top: 33%;
+ left: 50%;
+ transform: translateX(-50%);
"
>
- <model-gltf
+ <div ref="container" style="width: 100%; height: 100%"></div>
+ <!-- <model-gltf
:width="400"
:height="400"
:backgroundAlpha="0"
@@ -331,14 +371,17 @@
:controlsOptions="{
enableZoom,
}"
- />
+ /> -->
</div>
<div
style="
display: flex;
justify-content: center;
align-items: center;
- margin-top: 30rem;
+ position: absolute;
+ bottom: 5%;
+ left: 50%;
+ transform: translateX(-50%);
"
>
<el-button
@@ -409,7 +452,7 @@
</div>
</template>
<script setup>
-import { ref, onMounted } from "vue";
+import { ref, onMounted, nextTick } from "vue";
import {
GetScreenData,
GetPre,
@@ -417,11 +460,20 @@
Complete,
GetTorque,
ChangeStatus,
+ AddTorque, //娣诲姞鎵姏鍊兼帴鍙�
} from "@/api/newapi/Thecurrentjob";
import { GetPageData } from "@/api/newapi/NjTask";
import { useRouter } from "vue-router";
import { ElMessage, ElMessageBox } from "element-plus";
import { ModelCollada, ModelGltf } from "vue-3d-model";
+import { formatTime } from "@/utils/index.js";
+import * as THREE from "three";
+import { OrbitControls } from "three/examples/jsm/controls/OrbitControls";
+import { GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader"; //gltf
+
+const container = ref(null);
+
+let scene, camera, renderer, controls;
const router = useRouter();
const gridData = ref([]);
@@ -451,7 +503,26 @@
takeid: "",
setnum: 0,
});
+
+//鎵姏鍊�
+const torqueFrom = ref({
+ creater: JSON.parse(localStorage.getItem("user")).userName, //褰撳墠鐧婚檰浜�
+ createDate: formatTime(new Date()), //褰撳墠鏃堕棿
+ modifier: JSON.parse(localStorage.getItem("user")).userName,
+ modifyDate: formatTime(new Date()),
+ id: 0,
+ deviceCode: "", //璁惧缂栧彿
+ takeId: "", //浠诲姟id
+ groupOp: "", //鐝粍
+ processSte: 0, //褰撳墠姝ラ
+ torqueSize: null, //杈撳叆鐨勬壄鍔涘��
+});
+
+const isTorque = ref(false);
const flag = ref(false);
+
+const innerRef = ref();
+const scrollbarRef = ref();
//涓婁竴姝�
const Previous = (val) => {
from.value.group = info.value.grouptype;
@@ -513,7 +584,6 @@
};
//鏌ョ湅鏁版嵁
const checko = () => {
- console.log(info.value);
GetPageData({
page: 1,
rows: 10,
@@ -532,7 +602,6 @@
},
],
}).then((res) => {
- console.log(res);
taskData.value = res.rows;
});
};
@@ -542,6 +611,7 @@
setnum: "",
});
const initData = () => {
+ console.log(obj.value);
GetScreenData({
group: info.value.grouptype,
takeid: info.value.njtakeid,
@@ -566,8 +636,165 @@
});
};
+const showModel = () => {
+ scene = new THREE.Scene();
+ console.log("model", window.innerWidth, window.innerHeight);
+
+ // 鍒涘缓鐩告満 (瑙嗚锛屽楂樻瘮锛岃繎瑁佸壀闈紝杩滆鍓潰)
+ camera = new THREE.PerspectiveCamera(75, 1, 0.1, 1000);
+
+ // 鍒涘缓娓叉煋鍣�
+ renderer = new THREE.WebGLRenderer({
+ antialias: true,
+ alpha: true,
+ });
+ renderer.setSize(400, 400); // 璁剧疆娓叉煋鍣ㄧ殑澶у皬
+ container.value.appendChild(renderer.domElement);
+ scene.background = null;
+ // 鍔犺浇GLTF妯″瀷
+ const loader = new GLTFLoader();
+ loader.load(
+ "ThreeModel/test.gltf",
+ (gltf) => {
+ const model = gltf.scene;
+
+ // 璁$畻妯″瀷鐨勮竟鐣屾骞惰幏鍙栦腑蹇冪偣
+ const box = new THREE.Box3().setFromObject(model);
+ const center = box.getCenter(new THREE.Vector3());
+
+ // 鍒涘缓涓�涓┖瀵硅薄浣滀负鐖惰妭鐐癸紝灏嗗潗鏍囪酱鍜屾ā鍨嬫坊鍔犲埌杩欎釜鐖惰妭鐐�
+ const parent = new THREE.Object3D();
+ scene.add(parent);
+
+ // 灏嗘ā鍨嬬殑浣嶇疆璁剧疆涓烘ā鍨嬬殑杈圭晫妗嗙殑涓績锛岀‘淇濆畠灞呬腑
+ model.position.sub(center); // 璁╂ā鍨嬬殑涓績涓庣埗鑺傜偣瀵归綈
+
+ // 灏嗗潗鏍囪酱鍔╂墜娣诲姞鍒扮埗鑺傜偣
+ // const axesHelper = new THREE.AxesHelper(100); // 杞寸殑闀垮害涓�100 x,y,z鐨勯鑹插垎鍒负锛堢孩鑹诧紝缁胯壊锛岃摑鑹诧級
+ // parent.add(axesHelper); // 灏嗗潗鏍囪酱娣诲姞鍒扮埗鑺傜偣
+
+ // 灏嗘ā鍨嬫坊鍔犲埌鐖惰妭鐐�
+ parent.add(model);
+
+ // 纭繚妯″瀷鐨勫ぇ灏忛�傚綋锛屽彲浠ヨ皟鏁存ā鍨嬬殑澶у皬
+ model.scale.set(1, 1, 1); // 濡傛灉闇�瑕佺殑璇濆彲浠ョ缉鏀炬ā鍨�
+ },
+ undefined,
+ (error) => {
+ console.error("妯″瀷鍔犺浇澶辫触", error);
+ }
+ );
+
+ const metalMaterial = new THREE.MeshStandardMaterial({
+ color: 0xaaaaaa,
+ metalness: 1,
+ roughness: 0.2,
+ });
+
+ const sphereGeometry = new THREE.SphereGeometry(1, 32, 32);
+ const metalSphere = new THREE.Mesh(sphereGeometry, metalMaterial);
+ scene.add(metalSphere);
+
+ // 鍒涘缓鐏厜
+ const light = new THREE.AmbientLight(0xffffff); // 鐜鍏夋槸涓�绉嶅叏灞�鎬х殑鍏夋簮锛屽潎鍖�鍦扮収浜暣涓満鏅紝骞朵笖涓嶄細鏈夐槾褰辨晥鏋�
+ scene.add(light);
+
+ const directionalLight = new THREE.DirectionalLight(0xffffff, 3); //杩欐浠g爜鍒涘缓浜嗕竴涓櫧鑹层�佸己搴︿负 1 鐨勫钩琛屽厜婧�
+ directionalLight.position.set(300, 300, 300).normalize(); //骞跺皢鍏朵綅缃缃湪 (300, 300, 300)銆傜劧鍚庯紝閫氳繃 normalize() 鏂规硶锛岀‘淇濆钩琛屽厜婧愮殑鍏夌嚎浠ヤ竴涓爣鍑嗙殑鏂瑰悜鐓у皠
+ scene.add(directionalLight);
+
+ // 璁剧疆鐩告満鍒濆浣嶇疆锛坸,y,z锛�
+ camera.position.set(100, 100, 50); // 璁剧疆鐩告満浣嶇疆锛岀‘淇濆彲浠ョ湅鍒版ā鍨�
+
+ // 鍒涘缓 OrbitControls 瀹炰緥
+ controls = new OrbitControls(camera, renderer.domElement);
+ controls.enableZoom = false;
+ controls.enablePan = false;
+ controls.enableDamping = true; // 鍚敤闃诲凹鏁堟灉
+ controls.dampingFactor = 0.25; // 闃诲凹绯绘暟
+ controls.screenSpacePanning = false; // 绂佺敤灞忓箷绌洪棿骞崇Щ
+ controls.maxPolarAngle = Math.PI / 2; // 闄愬埗鐩告満鍨傜洿鏃嬭浆鐨勮搴︼紝闃叉缈昏浆
+ controls.target.set(0, 0, 0); // 纭繚鐩告満濮嬬粓鍥寸粫鍦烘櫙涓績锛堟ā鍨嬩綅缃級
+ controls.minDistance = 2; // 鏈�灏忚窛绂伙紝闃叉缂╁緱澶繎
+ controls.maxDistance = 500; // 鏈�澶ц窛绂伙紝闃叉缂╁緱澶繙
+
+ // 娓叉煋寰幆
+ function animate() {
+ requestAnimationFrame(animate);
+
+ // 鏇存柊鎺у埗鍣�
+ controls.update(); // 鍙湁鍦ㄥ惎鐢ㄩ樆灏肩殑鏃跺�欓渶瑕佽皟鐢ㄦ鍑芥暟
+
+ // 娓叉煋鍦烘櫙
+ renderer.render(scene, camera);
+ }
+
+ animate();
+
+ // 鍝嶅簲绐楀彛澶у皬鍙樺寲;
+ window.addEventListener("resize", onWindowResize, false);
+
+ function onWindowResize() {
+ console.log(window.innerWidth, window.innerHeight);
+
+ camera.aspect = window.innerWidth / window.innerHeight;
+ camera.updateProjectionMatrix();
+ renderer.setSize(window.innerWidth / 2, window.innerHeight / 2);
+ }
+};
+const spanHide = ref();
+const spanHide1 = ref();
+const handleClickOutside = () => {
+ if (spanHide.value && !spanHide.value.contains(event.target)) {
+ contentShow.value = false;
+ }
+ if (spanHide1.value && !spanHide1.value.contains(event.target)) {
+ contentShow1.value = false;
+ }
+};
+const showTorque = () => {
+ isTorque.value = true;
+ nextTick(() => {
+ if (innerRef.value.clientHeight > 150) {
+ scrollbarRef.value.setScrollTop(innerRef.value.clientHeight);
+ }
+ });
+};
+//娣诲姞鎵姏鍊�
+const addTorque = () => {
+ torqueFrom.value.processSte = Torque.value[0].processSte;
+ torqueFrom.value.takeId = Torque.value[0].takeId;
+ torqueFrom.value.groupOp = Torque.value[0].groupOp;
+ if (
+ torqueFrom.value.torqueSize == null ||
+ torqueFrom.value.torqueSize == "" ||
+ torqueFrom.value.torqueSize == 0
+ ) {
+ ElMessage({
+ message: "璇疯緭鍏ュ姏鐭╁��",
+ type: "warning",
+ });
+ return;
+ }
+
+ AddTorque(torqueFrom.value)
+ .then((res) => {
+ console.log("娣诲姞鎴愬姛", res);
+ ElMessage({
+ message: "娣诲姞鎴愬姛",
+ type: "success",
+ });
+ isTorque.value = false;
+ initData();
+ })
+ .catch((error) => {
+ console.error("娣诲姞澶辫触", error);
+ });
+};
onMounted(() => {
+ document.addEventListener("click", handleClickOutside);
initData();
+ showModel();
});
</script>
<style lang="scss" scoped>
@@ -625,7 +852,7 @@
.rect-center {
display: flex;
justify-content: space-between;
- width: 170vh;
+ width: 80%;
margin: 0 auto;
padding: 0.8rem 2.15rem;
box-sizing: border-box;
--
Gitblit v1.9.3