| | |
| | | <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" |
| | |
| | | >ä»»å¡è¯¦æ
ï¼</span |
| | | > |
| | | <span |
| | | ref="spanHide1" |
| | | @click="showDetail(!contentShow1)" |
| | | style="color: #1ac2f7; font-size: 0.88rem; cursor: pointer" |
| | | >æ¥ç</span |
| | |
| | | " |
| | | > |
| | | <el-table |
| | | empty-text="ææ æ°æ®" |
| | | :data="taskData" |
| | | width="100%" |
| | | :header-cell-style="{ |
| | |
| | | > |
| | | </span> |
| | | </div> |
| | | <div style="position: absolute; width: 47rem; height: 2.5rem"> |
| | | <div style="width: 62rem; height: 2.5rem"> |
| | | <el-table |
| | | style="margin-top: 0.88rem" |
| | | empty-text="ææ æ°æ®" |
| | | style="margin-top: 0.88rem; opacity: 0.8" |
| | | :data="gridData" |
| | | width="100%" |
| | | :header-cell-style="{ |
| | | height: '1.61rem', |
| | | color: '#1AC8FE', |
| | | background: '#0A5B91', |
| | | color: '#fff', |
| | | fontSize: '0.88rem', |
| | | border: 'solid 1px #1ac2f7', |
| | | }" |
| | | :cell-style="{ |
| | | color: '#fff', |
| | | background: '#147BAF', |
| | | }" |
| | | > |
| | | <el-table-column |
| | | property="craftsStep" |
| | | label="å·¥èºé¡¹ç¹/æ¥éª¤" |
| | | min-width="30%" |
| | | min-width="13%" |
| | | > |
| | | <template #default="scope"> |
| | | <span |
| | | @click="showDetail1(!contentShow)" |
| | | style=" |
| | | color: #1ac2f7; |
| | | font-size: 0.88rem; |
| | | cursor: pointer; |
| | | text-decoration: underline; |
| | | " |
| | | >{{ scope.row.craftsStep }} |
| | | </span></template |
| | | ></el-table-column |
| | | > |
| | | <el-tooltip placement="bottom" effect="light"> |
| | | <template #content> |
| | | <span style="display: block; width: 15rem">{{ |
| | | scope.row.craftsStep |
| | | }}</span> |
| | | </template> |
| | | <span |
| | | @click="true" |
| | | style=" |
| | | color: #ffffff; |
| | | font-size: 0.88rem; |
| | | display: -webkit-box; /* 设置为WebKitå
æ ¸çå¼¹æ§ç忍¡å */ |
| | | -webkit-box-orient: vertical; /* åç´æå */ |
| | | -webkit-line-clamp: 1; /* éå¶æ¾ç¤ºä¸¤è¡ */ |
| | | overflow: hidden; /* éèè¶
åºèå´çå
容 */ |
| | | text-overflow: ellipsis; /* 使ç¨çç¥å· */ |
| | | " |
| | | >{{ scope.row.craftsStep }}</span |
| | | > |
| | | </el-tooltip> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | property="craftContent" |
| | | label="å·¥èºå
容" |
| | | min-width="70%" |
| | | min-width="40%" |
| | | > |
| | | <template #default="scope"> |
| | | <span |
| | | @click="true" |
| | | style=" |
| | | color: #ffffff; |
| | | font-size: 0.88rem; |
| | | display: -webkit-box; /* 设置为WebKitå
æ ¸çå¼¹æ§ç忍¡å */ |
| | | -webkit-box-orient: vertical; /* åç´æå */ |
| | | -webkit-line-clamp: 2; /* éå¶æ¾ç¤ºä¸¤è¡ */ |
| | | overflow: hidden; /* éèè¶
åºèå´çå
容 */ |
| | | text-overflow: ellipsis; /* 使ç¨çç¥å· */ |
| | | " |
| | | >{{ scope.row.craftContent }}</span |
| | | ></template |
| | | ></el-table-column |
| | | <el-tooltip placement="bottom" effect="light"> |
| | | <template #content> |
| | | <span style="display: block; width: 15rem">{{ |
| | | scope.row.craftContent |
| | | }}</span> |
| | | </template> |
| | | <span |
| | | @click="true" |
| | | style=" |
| | | color: #ffffff; |
| | | font-size: 0.88rem; |
| | | display: -webkit-box; /* 设置为WebKitå
æ ¸çå¼¹æ§ç忍¡å */ |
| | | -webkit-box-orient: vertical; /* åç´æå */ |
| | | -webkit-line-clamp: 2; /* éå¶æ¾ç¤ºä¸¤è¡ */ |
| | | overflow: hidden; /* éèè¶
åºèå´çå
容 */ |
| | | text-overflow: ellipsis; /* 使ç¨çç¥å· */ |
| | | " |
| | | >{{ scope.row.craftContent }}</span |
| | | > |
| | | </el-tooltip> |
| | | </template></el-table-column |
| | | > |
| | | <el-table-column property="tools" label="å·¥å
·" min-width="12%"> |
| | | <template #default="scope"> |
| | | <el-tooltip placement="bottom" effect="light"> |
| | | <template #content> |
| | | <span style="display: block; width: 15rem">{{ |
| | | scope.row.tools |
| | | }}</span> |
| | | </template> |
| | | <span |
| | | @click="true" |
| | | style=" |
| | | color: #ffffff; |
| | | font-size: 0.88rem; |
| | | display: -webkit-box; /* 设置为WebKitå
æ ¸çå¼¹æ§ç忍¡å */ |
| | | -webkit-box-orient: vertical; /* åç´æå */ |
| | | -webkit-line-clamp: 2; /* éå¶æ¾ç¤ºä¸¤è¡ */ |
| | | overflow: hidden; /* éèè¶
åºèå´çå
容 */ |
| | | text-overflow: ellipsis; /* 使ç¨çç¥å· */ |
| | | " |
| | | >{{ scope.row.tools }}</span |
| | | > |
| | | </el-tooltip> |
| | | </template></el-table-column |
| | | > |
| | | <el-table-column |
| | | property="craftsStep" |
| | | label="ç©æ" |
| | | min-width="15%" |
| | | > |
| | | <template #default="scope"> |
| | | <el-tooltip placement="bottom" effect="light"> |
| | | <template #content> |
| | | <span style="display: block; width: 15rem">{{ |
| | | scope.row.material |
| | | }}</span> |
| | | </template> |
| | | <span |
| | | @click="true" |
| | | style=" |
| | | color: #ffffff; |
| | | font-size: 0.88rem; |
| | | display: -webkit-box; /* 设置为WebKitå
æ ¸çå¼¹æ§ç忍¡å */ |
| | | -webkit-box-orient: vertical; /* åç´æå */ |
| | | -webkit-line-clamp: 2; /* éå¶æ¾ç¤ºä¸¤è¡ */ |
| | | overflow: hidden; /* éèè¶
åºèå´çå
容 */ |
| | | text-overflow: ellipsis; /* 使ç¨çç¥å· */ |
| | | " |
| | | >{{ scope.row.material }}</span |
| | | > |
| | | </el-tooltip> |
| | | </template></el-table-column |
| | | > |
| | | </el-table> |
| | | <div class="consten" v-if="contentShow"> |
| | | <!-- <div class="consten" v-show="contentShow"> |
| | | <el-table |
| | | empty-text="ææ æ°æ®" |
| | | :data="gridData" |
| | | width="100%" |
| | | :header-cell-style="{ |
| | |
| | | ></el-table-column |
| | | > |
| | | </el-table> |
| | | </div> |
| | | </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" |
| | | >{{ |
| | |
| | | }}</span |
| | | > |
| | | </div> |
| | | <el-input |
| | | type="number" |
| | | v-if="isTorque" |
| | | v-model="torqueFrom.torqueSize" |
| | | style="font-size: 0.75rem; height: 2rem" |
| | | placeholder="请è¾å
¥æåå¼" |
| | | ><template #suffix> |
| | | <span style="font-size: 0.88rem; color: black">N*m</span> |
| | | </template> |
| | | </el-input> |
| | | <!-- @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> |
| | |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | z-index: 999; |
| | | position: absolute; |
| | | top: 42%; |
| | | left: 15%; |
| | | " |
| | | > |
| | | <model-gltf |
| | | <div |
| | | ref="container" |
| | | class="my-three" |
| | | style="width: 100%; height: 100%" |
| | | ></div> |
| | | <!-- <model-gltf |
| | | :width="400" |
| | | :height="400" |
| | | :backgroundAlpha="0" |
| | |
| | | :controlsOptions="{ |
| | | enableZoom, |
| | | }" |
| | | /> |
| | | /> --> |
| | | </div> |
| | | <div style="position: absolute; bottom: 5%; left: 2%"> |
| | | <span style="color: rgba(26, 201, 255, 1); font-size: 1.5em" |
| | | >X:{{ xPos }} Y:{{ yPos }} Z:{{ zPos }}</span |
| | | > |
| | | </div> |
| | | <div |
| | | style=" |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | margin-top: 30rem; |
| | | position: absolute; |
| | | bottom: 5%; |
| | | right: 0%; |
| | | transform: translateX(-20%); |
| | | z-index: 999; |
| | | " |
| | | > |
| | | <el-button |
| | |
| | | > |
| | | <el-button |
| | | :disabled="obj.setpNum == sunNUm" |
| | | @click="Next(false)" |
| | | @click="DialogVisible = true" |
| | | type="primary" |
| | | :style="{ |
| | | width: '5rem', |
| | |
| | | |
| | | <!-- 强å¶è·³è½¬ç¡®è®¤æ¡ --> |
| | | <el-dialog v-model="centerDialogVisible" title="确认" width="300" center> |
| | | <span> å½å任塿ªå®æï¼æ¯å¦å¼ºå¶è·³è½¬å°ä¸ä¸æ¥ï¼ </span> |
| | | <span sty> å½å任塿ªå®æï¼æ¯å¦å¼ºå¶è·³è½¬å°ä¸ä¸æ¥ï¼ </span> |
| | | <template #footer> |
| | | <div class="dialog-footer"> |
| | | <el-button style="width: 5rem" @click="centerDialogVisible = false" |
| | |
| | | </div> |
| | | </template> |
| | | </el-dialog> |
| | | |
| | | <!-- æ¯å¦åæ ¼æå·²å®æ --> |
| | | <el-dialog v-model="DialogVisible" title="确认" width="300" center> |
| | | <span style="display: block; text-align: center; font-size: 1.5rem"> |
| | | 请确认å½åæ¥éª¤å·²å®æä¸åæ ¼ |
| | | </span> |
| | | <template #footer> |
| | | <div class="dialog-footer"> |
| | | <el-button style="width: 5rem" @click="DialogVisible = false" |
| | | >åæ¶</el-button |
| | | > |
| | | <el-button style="width: 5rem" type="primary" @click="Next(false)"> |
| | | 确认 |
| | | </el-button> |
| | | </div> |
| | | </template> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | <script setup> |
| | | import { ref, onMounted } from "vue"; |
| | | import { ref, onMounted, nextTick, onBeforeUnmount } from "vue"; |
| | | import { |
| | | GetScreenData, |
| | | GetPre, |
| | |
| | | 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 |
| | | import { DRACOLoader } from "three/examples/jsm/loaders/DRACOLoader"; |
| | | |
| | | const container = ref(null); |
| | | |
| | | const router = useRouter(); |
| | | const gridData = ref([]); |
| | | const contentShow = ref(false); |
| | | const contentShow1 = ref(false); |
| | | const DialogVisible = ref(false); |
| | | const info = ref({}); |
| | | info.value = history.state?.info ? JSON.parse(history.state?.info) : {}; |
| | | const title = ref(""); |
| | |
| | | const Torque = ref(""); |
| | | const showDetail1 = (va1) => { |
| | | contentShow1.value = false; |
| | | contentShow.value = va1; |
| | | contentShow.value = true; |
| | | }; |
| | | const showDetail = (va1) => { |
| | | contentShow1.value = va1; |
| | |
| | | takeid: "", |
| | | setnum: 0, |
| | | }); |
| | | |
| | | const client = ref(null); |
| | | |
| | | //æåå¼ |
| | | 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 isJob = ref([]); //å·²ç»å®æçæ¥éª¤ |
| | | |
| | | //ä¸ä¸æ¥ |
| | | const Previous = (val) => { |
| | | //ä¸ä¸ä¸ªçå¼ |
| | | from.value.group = info.value.grouptype; |
| | | from.value.takeid = info.value.njtakeid; |
| | | from.value.setnum = obj.value.setpNum; |
| | | flag.value = val; |
| | | console.log(from.value, info.value); |
| | | GetPre(from.value, flag.value).then((res) => { |
| | | gridData.value = [res.data.nex]; |
| | | obj.value = res.data.nex; |
| | | xPos.value = |
| | | gridData.value[0].pointAxisXYZ != null && |
| | | gridData.value[0].pointAxisXYZ != 0 |
| | | ? gridData.value[0].pointAxisXYZ.split(",")[0] |
| | | : -585; |
| | | yPos.value = |
| | | gridData.value[0].pointAxisXYZ != null && |
| | | gridData.value[0].pointAxisXYZ != 0 |
| | | ? gridData.value[0].pointAxisXYZ.split(",")[1] |
| | | : 692; |
| | | zPos.value = |
| | | gridData.value[0].pointAxisXYZ != null && |
| | | gridData.value[0].pointAxisXYZ != 0 |
| | | ? gridData.value[0].pointAxisXYZ.split(",")[2] |
| | | : 692; |
| | | isJob.value = nodeList.slice(0, gridData.value[0].setpNum - 1); //å·²ç»å®æçæ¥éª¤ |
| | | cameraAnimate( |
| | | [xPos.value, yPos.value, zPos.value], |
| | | gridData.value[0].moduleName |
| | | ); |
| | | queryData.value.setnum = obj.value.setpNum; |
| | | GetTorque(queryData.value).then((res) => { |
| | | Torque.value = res.data; |
| | |
| | | }; |
| | | //ä¸ä¸æ¥ |
| | | const Next = (val) => { |
| | | console.log(obj.value); |
| | | from.value.group = info.value.grouptype; |
| | | from.value.takeid = info.value.njtakeid; |
| | | from.value.setnum = obj.value.setpNum; |
| | | flag.value = val; |
| | | |
| | | GetNext(from.value, flag.value).then((res) => { |
| | | if (res.message == "没æå®æå½åæ¥éª¤") { |
| | | gridData.value = res.data.nowdate; |
| | | obj.value = res.data.nowdate[0]; |
| | | if (res.data.nowdate[0].setpNum == obj.value.setpNum) { |
| | | centerDialogVisible.value = true; |
| | | DialogVisible.value = false; |
| | | return; |
| | | } |
| | | return; |
| | | } |
| | | centerDialogVisible.value = false; |
| | | DialogVisible.value = false; |
| | | gridData.value = [res.data.nex]; |
| | | xPos.value = |
| | | gridData.value[0].pointAxisXYZ != null && |
| | | gridData.value[0].pointAxisXYZ != 0 |
| | | ? gridData.value[0].pointAxisXYZ.split(",")[0] |
| | | : -585; |
| | | yPos.value = |
| | | gridData.value[0].pointAxisXYZ != null && |
| | | gridData.value[0].pointAxisXYZ != 0 |
| | | ? gridData.value[0].pointAxisXYZ.split(",")[1] |
| | | : 692; |
| | | zPos.value = |
| | | gridData.value[0].pointAxisXYZ != null && |
| | | gridData.value[0].pointAxisXYZ != 0 |
| | | ? gridData.value[0].pointAxisXYZ.split(",")[2] |
| | | : 692; |
| | | isJob.value = res.data.finish.map((item) => { |
| | | return item.moduleName; |
| | | }); |
| | | cameraAnimate( |
| | | [xPos.value, yPos.value, zPos.value], |
| | | gridData.value[0].moduleName |
| | | ); |
| | | obj.value = res.data.nex; |
| | | |
| | | queryData.value.setnum = obj.value.setpNum; |
| | | GetTorque(queryData.value).then((res) => { |
| | | Torque.value = res.data; |
| | |
| | | from.value.gruops = info.value.grouptype; |
| | | from.value.id = info.value.njtakeid; |
| | | from.value.creater = info.value.creater; |
| | | console.log(from.value, info.value); |
| | | |
| | | ChangeStatus(from.value).then((res) => { |
| | | ElMessage({ |
| | |
| | | }; |
| | | //æ¥çæ°æ® |
| | | const checko = () => { |
| | | console.log(info.value); |
| | | GetPageData({ |
| | | page: 1, |
| | | rows: 10, |
| | |
| | | }, |
| | | ], |
| | | }).then((res) => { |
| | | console.log(res); |
| | | taskData.value = res.rows; |
| | | }); |
| | | }; |
| | |
| | | takeid: info.value.njtakeid, |
| | | setnum: "", |
| | | }); |
| | | const initData = () => { |
| | | GetScreenData({ |
| | | const initData = async () => { |
| | | await GetScreenData({ |
| | | group: info.value.grouptype, |
| | | takeid: info.value.njtakeid, |
| | | }).then((res) => { |
| | | if (res.message == "è¿åå·¥èºè¡¨ä¸çç¬¬ä¸æ¡") { |
| | | gridData.value = res.data.proNoe; |
| | | obj.value = res.data.proNoe[0]; |
| | | sunNUm.value = res.data.maxproce; |
| | | queryData.value.setnum = obj.value.setpNum; |
| | | GetTorque(queryData.value).then((res) => { |
| | | Torque.value = res.data; |
| | | }); |
| | | return; |
| | | } |
| | | gridData.value = res.data.maxpro; |
| | | gridData.value = [res.data.proNow]; |
| | | sunNUm.value = res.data.maxproce; |
| | | obj.value = res.data.maxpro[0]; |
| | | obj.value = res.data.proNow; |
| | | queryData.value.setnum = obj.value.setpNum; |
| | | xPos.value = |
| | | gridData.value[0].pointAxisXYZ != null && |
| | | gridData.value[0].pointAxisXYZ != 0 |
| | | ? gridData.value[0].pointAxisXYZ.split(",")[0] |
| | | : -585; |
| | | yPos.value = |
| | | gridData.value[0].pointAxisXYZ != null && |
| | | gridData.value[0].pointAxisXYZ != 0 |
| | | ? gridData.value[0].pointAxisXYZ.split(",")[1] |
| | | : 692; |
| | | zPos.value = |
| | | gridData.value[0].pointAxisXYZ != null && |
| | | gridData.value[0].pointAxisXYZ != 0 |
| | | ? gridData.value[0].pointAxisXYZ.split(",")[2] |
| | | : 692; |
| | | isJob.value = res.data.finish; |
| | | cameraAnimate( |
| | | [xPos.value, yPos.value, zPos.value], |
| | | gridData.value[0].moduleName |
| | | ); |
| | | GetTorque(queryData.value).then((res) => { |
| | | Torque.value = res.data; |
| | | }); |
| | | }); |
| | | }; |
| | | |
| | | const CAMERA_POS = [100, 100, 150]; |
| | | const BASE_COLOR = [0.2, 0.4, 0.6]; |
| | | const RED_COLOR = [3.0, 0.2, 0.4]; |
| | | const GREEN_COLOR = [0.0, 1.0, 0.0]; |
| | | |
| | | const xPos = ref(""); |
| | | const yPos = ref(""); |
| | | const zPos = ref(""); |
| | | const scene = new THREE.Scene(); |
| | | const camera = new THREE.PerspectiveCamera( |
| | | 75, |
| | | window.innerWidth / window.innerHeight, |
| | | 0.1, |
| | | 3000 |
| | | ); |
| | | const renderer = new THREE.WebGLRenderer({ |
| | | antialias: true, |
| | | alpha: true, |
| | | precision: "highp", |
| | | }); |
| | | |
| | | const painting = (part) => { |
| | | let newArr = []; |
| | | // let newArr = flatten(isJob.value); |
| | | scene.traverse(function (child) { |
| | | // æ£æ¥å¯¹è±¡æ¯å¦å
·ææè´¨å±æ§ |
| | | if (child.isMesh) { |
| | | let materials = child.material; |
| | | // 妿æè´¨æ¯å个对象è䏿¯æ°ç»ï¼åå°å
¶æ¾å
¥æ°ç»ä¸ä»¥ä¾¿ç»ä¸å¤ç |
| | | if (!Array.isArray(materials)) { |
| | | materials = [materials]; |
| | | } |
| | | let isString = []; // 夿æ¯å¦æ¯å符串 |
| | | // éåæè´¨æ°ç»å¹¶è®¾ç½®é¢è² |
| | | //å·²ç»å®æçèç¹ |
| | | isJob.value.forEach((item) => { |
| | | if ( |
| | | item == |
| | | "æèè¡åæ¯å¨èºæ 1,æèè¡åæ¯å¨èºæ 2,æèè¡åæ¯å¨èºæ 3,æèè¡åæ¯å¨èºæ 4" && |
| | | item != part |
| | | ) { |
| | | isString = item.split(","); |
| | | materials.forEach(function (material) { |
| | | if (isString.includes(material.name)) { |
| | | material.color.setRGB(...GREEN_COLOR); |
| | | } |
| | | material.needsUpdate = true; // å¼ºå¶æ´æ°æè´¨ |
| | | }); |
| | | } |
| | | materials.forEach(function (material) { |
| | | if (material.name === item) { |
| | | material.color.setRGB(...GREEN_COLOR); |
| | | } |
| | | material.needsUpdate = true; // å¼ºå¶æ´æ°æè´¨ |
| | | }); |
| | | }); |
| | | if ( |
| | | part == |
| | | "æèè¡åæ¯å¨èºæ 1,æèè¡åæ¯å¨èºæ 2,æèè¡åæ¯å¨èºæ 3,æèè¡åæ¯å¨èºæ 4" |
| | | ) { |
| | | materials.forEach(function (material) { |
| | | if (part.split(",").includes(material.name)) { |
| | | material.color.setRGB(...RED_COLOR); |
| | | } |
| | | material.needsUpdate = true; // å¼ºå¶æ´æ°æè´¨ |
| | | }); |
| | | } else { |
| | | materials.forEach(function (material) { |
| | | if (material.name == part) { |
| | | material.color.setRGB(...RED_COLOR); |
| | | } |
| | | material.needsUpdate = true; // å¼ºå¶æ´æ°æè´¨ |
| | | }); |
| | | } |
| | | |
| | | // if ( |
| | | // typeof part == |
| | | // "æèè¡åæ¯å¨èºæ 1,æèè¡åæ¯å¨èºæ 2,æèè¡åæ¯å¨èºæ 3,æèè¡åæ¯å¨èºæ 4" |
| | | // ) { |
| | | // newArr = part.split(","); |
| | | // materials.forEach(function (material) { |
| | | // if (newArr.includes(material.name)) { |
| | | // material.color.setRGB(...GREEN_COLOR); |
| | | // } |
| | | // if (part.includes(material.name)) { |
| | | // material.color.setRGB(...RED_COLOR); |
| | | // } else { |
| | | // material.color.setRGB(...BASE_COLOR); |
| | | // } |
| | | // material.needsUpdate = true; // å¼ºå¶æ´æ°æè´¨ |
| | | // }); |
| | | // } else { |
| | | // materials.forEach(function (material) { |
| | | // if (newArr.includes(material.name)) { |
| | | // material.color.setRGB(...GREEN_COLOR); |
| | | // } else if (material.name === part) { |
| | | // material.color.setRGB(...RED_COLOR); |
| | | // } else { |
| | | // material.color.setRGB(...BASE_COLOR); |
| | | // } |
| | | // // if (newArr.includes(material.name)) { |
| | | // // material.color.setRGB(...GREEN_COLOR); |
| | | // // } |
| | | // material.needsUpdate = true; // å¼ºå¶æ´æ°æè´¨ |
| | | // }); |
| | | // } |
| | | } |
| | | }); |
| | | }; |
| | | const cameraAnimate = ( |
| | | targetPosition = CAMERA_POS, |
| | | part = null, |
| | | duration = 500 |
| | | ) => { |
| | | let startTime = null; |
| | | const startPosition = { |
| | | x: camera.position.x, |
| | | y: camera.position.y, |
| | | z: camera.position.z, |
| | | }; |
| | | const distance = { |
| | | x: targetPosition[0] - startPosition.x, |
| | | y: targetPosition[1] - startPosition.y, |
| | | z: targetPosition[2] - startPosition.z, |
| | | }; |
| | | |
| | | function animate(time) { |
| | | if (!startTime) startTime = time; |
| | | const elapsed = time - startTime; |
| | | const progress = Math.min(elapsed / duration, 1); |
| | | |
| | | // 使ç¨çº¿æ§æå¼è®¡ç®æ°çä½ç½® |
| | | camera.position.x = startPosition.x + distance.x * progress; |
| | | camera.position.y = startPosition.y + distance.y * progress; |
| | | camera.position.z = startPosition.z + distance.z * progress; |
| | | xPos.value = Math.floor(camera.position.x); |
| | | yPos.value = Math.floor(camera.position.y); |
| | | zPos.value = Math.floor(camera.position.z); |
| | | if (progress < 1) { |
| | | requestAnimationFrame(animate); |
| | | } |
| | | } |
| | | requestAnimationFrame(animate); |
| | | painting(part); |
| | | renderer.render(scene, camera); // å¼ºå¶æ¸²æä¸æ¬¡ |
| | | }; |
| | | const flatten = (arr) => { |
| | | return arr.reduce( |
| | | (acc, val) => |
| | | Array.isArray(val) ? acc.concat(flatten(val)) : acc.concat(val), |
| | | [] |
| | | ); |
| | | }; |
| | | // window.addEventListener("resize", () => { |
| | | // // console.log("åå§ååºæ¯", window.innerWidth, window.innerHeight); |
| | | // // camera.aspect = window.innerWidth / window.innerHeight; |
| | | // // camera.updateProjectionMatrix(); |
| | | // // renderer.setSize(window.innerWidth, window.innerHeight); |
| | | // }); |
| | | const nodeList = [ |
| | | "è½¬åæ¶", |
| | | "æèè¡åæ¯å¨èºæ 1,æèè¡åæ¯å¨èºæ 2,æèè¡åæ¯å¨èºæ 3,æèè¡åæ¯å¨èºæ 4", |
| | | "æèè¡åæ¯å¨èºæ 1,æèè¡åæ¯å¨èºæ 2,æèè¡åæ¯å¨èºæ 3,æèè¡åæ¯å¨èºæ 4", |
| | | "æèè¡åæ¯å¨èºæ 2", |
| | | "æèè¡åæ¯å¨èºæ 3", |
| | | "æèè¡åæ¯å¨èºæ 4", |
| | | "æèè¡åæ¯å¨èºæ 1,æèè¡åæ¯å¨èºæ 2,æèè¡åæ¯å¨èºæ 3,æèè¡åæ¯å¨èºæ 4", |
| | | "æèè¡åæ¯å¨èºæ 2", |
| | | "æèè¡åæ¯å¨èºæ 3", |
| | | "æèè¡åæ¯å¨èºæ 4", |
| | | "é«åº¦è°æ´æ", |
| | | "é«åº¦è°æ´æ", |
| | | "é«åº¦è°æ´æ", |
| | | "è½¬åæ¶", |
| | | "è½¬åæ¶", |
| | | "è½¬åæ¶", |
| | | "è½¬åæ¶", |
| | | "è½¬åæ¶", |
| | | "è½¬åæ¶", |
| | | "è½¬åæ¶", |
| | | "æèè¡åæ¯å¨èºæ 1,æèè¡åæ¯å¨èºæ 2,æèè¡åæ¯å¨èºæ 3,æèè¡åæ¯å¨èºæ 4", |
| | | "æèè¡åæ¯å¨èºæ 2", |
| | | "æèè¡åæ¯å¨èºæ 3", |
| | | "æèè¡åæ¯å¨èºæ 4", |
| | | "æèè¡åæ¯å¨èºæ 1,æèè¡åæ¯å¨èºæ 2,æèè¡åæ¯å¨èºæ 3,æèè¡åæ¯å¨èºæ 4", |
| | | "æèè¡åæ¯å¨èºæ 1,æèè¡åæ¯å¨èºæ 2,æèè¡åæ¯å¨èºæ 3,æèè¡åæ¯å¨èºæ 4", |
| | | "é«åº¦è°æ´æ", |
| | | "é«åº¦è°æ´æ", |
| | | "é«åº¦è°æ´æ", |
| | | "è½¬åæ¶", |
| | | "è½¬åæ¶", |
| | | "è½¬åæ¶", |
| | | "è½¬åæ¶", |
| | | "è½¬åæ¶", |
| | | "è½¬åæ¶", |
| | | "è½¬åæ¶", |
| | | "è½¬åæ¶", |
| | | ]; |
| | | |
| | | 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 = queryData.value.setnum; |
| | | torqueFrom.value.takeId = queryData.value.takeid; |
| | | torqueFrom.value.groupOp = queryData.value.grop; |
| | | if ( |
| | | torqueFrom.value.torqueSize == null || |
| | | torqueFrom.value.torqueSize == "" || |
| | | torqueFrom.value.torqueSize == 0 |
| | | ) { |
| | | ElMessage({ |
| | | message: "请è¾å
¥åç©å¼", |
| | | type: "warning", |
| | | }); |
| | | return; |
| | | } |
| | | |
| | | AddTorque(torqueFrom.value) |
| | | .then((res) => { |
| | | if (res.code == 400) { |
| | | ElMessage({ |
| | | message: res.message, |
| | | type: "warning", |
| | | }); |
| | | return; |
| | | } |
| | | ElMessage({ |
| | | message: "æ·»å æå", |
| | | type: "success", |
| | | }); |
| | | isTorque.value = false; |
| | | initData(); |
| | | }) |
| | | .catch((error) => { |
| | | console.error("æ·»å 失败", error); |
| | | }); |
| | | }; |
| | | const timer = ref(null); |
| | | |
| | | const createSocket = (url) => { |
| | | clearInterval(timer.value); |
| | | // å建WebSocketè¿æ¥ |
| | | //"ws://127.0.0.1:9295/admin" |
| | | client.value = new WebSocket("ws://115.159.85.185:5173/"); |
| | | |
| | | client.value.onopen = function () { |
| | | console.log("WebSocket è¿æ¥æå"); |
| | | }; |
| | | client.value.onmessage = function (event) { |
| | | let data = JSON.parse(event.data); |
| | | (gridData.value = [data.process.proNow].map((item) => { |
| | | return { |
| | | articleOne: item.ArticleOne, |
| | | articleOneid: item.ArticleOneid, |
| | | articleTowid: item.ArticleTowid, |
| | | articleTwo: item.ArticleTwo, |
| | | craftContent: item.CraftContent, |
| | | craftID: item.CraftID, |
| | | craftType: item.CraftType, |
| | | craftsStep: item.CraftsStep, |
| | | createDate: item.CreateDate, |
| | | creater: item.Creater, |
| | | material: item.Material, |
| | | modifier: item.Modifier, |
| | | modifyDate: item.ModifyDate, |
| | | moduleName: item.ModuleName, |
| | | nodal: item.Nodal, |
| | | pointAxisHPB: item.PointAxisHPB, |
| | | pointAxisXYZ: item.PointAxisXYZ, |
| | | setpNum: item.SetpNum, |
| | | tools: item.Tools, |
| | | torqueOne: item.TorqueOne, |
| | | torqueOneQuantity: item.TorqueOneQuantity, |
| | | torqueSum: item.TorqueSum, |
| | | torqueTwo: item.TorqueTwo, |
| | | torqueTwoQuantity: item.TorqueTwoQuantity, |
| | | }; |
| | | })), |
| | | (sunNUm.value = data.process.maxproce); |
| | | obj.value = [data.process.proNow].map((item) => { |
| | | return { |
| | | articleOne: item.ArticleOne, |
| | | articleOneid: item.ArticleOneid, |
| | | articleTowid: item.ArticleTowid, |
| | | articleTwo: item.ArticleTwo, |
| | | craftContent: item.CraftContent, |
| | | craftID: item.CraftID, |
| | | craftType: item.CraftType, |
| | | craftsStep: item.CraftsStep, |
| | | createDate: item.CreateDate, |
| | | creater: item.Creater, |
| | | material: item.Material, |
| | | modifier: item.Modifier, |
| | | modifyDate: item.ModifyDate, |
| | | moduleName: item.ModuleName, |
| | | nodal: item.Nodal, |
| | | pointAxisHPB: item.PointAxisHPB, |
| | | pointAxisXYZ: item.PointAxisXYZ, |
| | | setpNum: item.SetpNum, |
| | | tools: item.Tools, |
| | | torqueOne: item.TorqueOne, |
| | | torqueOneQuantity: item.TorqueOneQuantity, |
| | | torqueSum: item.TorqueSum, |
| | | torqueTwo: item.TorqueTwo, |
| | | torqueTwoQuantity: item.TorqueTwoQuantity, |
| | | }; |
| | | })[0]; |
| | | Torque.value = data.operation.map((item) => { |
| | | return { |
| | | createDate: item.CreateDate, |
| | | creater: item.Creater, |
| | | deviceCode: item.SystemDeviceCode, |
| | | groupOp: item.GroupOp, |
| | | id: item.ID, |
| | | modifier: item.Modifier, |
| | | modifyDate: item.ModifyDate, |
| | | processSte: item.ProcessSte, |
| | | takeId: item.TakeId, |
| | | torqueSize: item.TorqueSize, |
| | | }; |
| | | }); |
| | | xPos.value = |
| | | gridData.value[0].pointAxisXYZ != null && |
| | | gridData.value[0].pointAxisXYZ != 0 |
| | | ? gridData.value[0].pointAxisXYZ.split(",")[0] |
| | | : -585; |
| | | yPos.value = |
| | | gridData.value[0].pointAxisXYZ != null && |
| | | gridData.value[0].pointAxisXYZ != 0 |
| | | ? gridData.value[0].pointAxisXYZ.split(",")[1] |
| | | : 692; |
| | | zPos.value = |
| | | gridData.value[0].pointAxisXYZ != null && |
| | | gridData.value[0].pointAxisXYZ != 0 |
| | | ? gridData.value[0].pointAxisXYZ.split(",")[2] |
| | | : 692; |
| | | isJob.value = data.process.finish.map((item) => { |
| | | return item.moduleName; |
| | | }); |
| | | cameraAnimate( |
| | | [xPos.value, yPos.value, zPos.value], |
| | | gridData.value[0].moduleName |
| | | ); |
| | | console.log( |
| | | "WebSocket æ¥æ¶å°æ¶æ¯", |
| | | data, |
| | | gridData.value, |
| | | sunNUm.value, |
| | | Torque.value, |
| | | isJob.value |
| | | ); |
| | | }; |
| | | client.value.onclose = function () { |
| | | console.log("WebSocket è¿æ¥å
³é"); |
| | | timer.value = setTimeout(createSocket, 1000); |
| | | }; |
| | | |
| | | client.value.onerror = function () {}; |
| | | }; |
| | | |
| | | onMounted(() => { |
| | | console.log("mounted", window.innerWidth, window.innerHeight); |
| | | |
| | | // åå§ååºæ¯ |
| | | renderer.setSize(window.innerWidth - 20, window.innerHeight - 100); |
| | | renderer.setClearColor(0xeeeeee); // è®¾ç½®èæ¯è² |
| | | // å¯ç¨ç©çæ¸²ææ¨¡å¼ |
| | | // renderer.physicallyCorrectLights = true; |
| | | // renderer.toneMapping = THREE.ACESFilmicToneMapping; |
| | | const mainTag = document.querySelector(".my-three"); |
| | | mainTag.appendChild(renderer.domElement); |
| | | |
| | | // æ·»å äº¤äºæ§å¶å¨ï¼é¼ æ ææ½ç¼©æ¾ï¼ |
| | | const controls = new OrbitControls(camera, renderer.domElement); |
| | | controls.enablePan = false; //ç¦æ¢å³é®ææ½ |
| | | //ç¸æºä½ç½®ä¸è§å¯ç®æ ç¹æå°å¼ |
| | | controls.minDistance = 600; |
| | | //ç¸æºä½ç½®ä¸è§å¯ç®æ ç¹æå¤§å¼ |
| | | controls.maxDistance = 1000; |
| | | |
| | | camera.position.set(...CAMERA_POS); |
| | | controls.update(); |
| | | |
| | | // æ·»å å
æºï¼éè¦ï¼å¦å模åå¯è½æ¾ç¤ºä¸ºå
¨é»ï¼ |
| | | const light = new THREE.DirectionalLight(0xffffff, 3); |
| | | light.position.set(5, 5, 5); |
| | | scene.add(light); |
| | | scene.add(new THREE.AmbientLight(0x404040)); |
| | | renderer.setClearAlpha(0); |
| | | renderer.setPixelRatio(window.devicePixelRatio); |
| | | scene.background = null; |
| | | let dracoLoader = new DRACOLoader(); |
| | | dracoLoader.setDecoderPath("ThreeModel/draco/"); |
| | | dracoLoader.setDecoderConfig({ type: "js" }); |
| | | dracoLoader.preload(); |
| | | // å è½½GLTF模å |
| | | const loader = new GLTFLoader(); |
| | | loader.setDRACOLoader(dracoLoader); |
| | | loader.load( |
| | | "ThreeModel/modelDraco.glb", // æ¿æ¢ä¸ºä½ ç.gltfæä»¶è·¯å¾ |
| | | (gltf) => { |
| | | const model = gltf.scene; |
| | | model.scale.set(80, 80, 80); |
| | | scene.add(model); |
| | | // èªå¨å±
䏿¨¡åï¼å¯éï¼ |
| | | const box = new THREE.Box3().setFromObject(model); |
| | | const center = box.getCenter(new THREE.Vector3()); |
| | | model.position.sub(center); |
| | | }, |
| | | (xhr) => { |
| | | // å è½½è¿åº¦åè° |
| | | // console.log(`${(xhr.loaded / xhr.total * 100).toFixed(1)}% loaded`); |
| | | }, |
| | | (error) => { |
| | | console.error("å 载失败:", error); |
| | | } |
| | | ); |
| | | // å¨ç»å¾ªç¯ |
| | | const animate = () => { |
| | | requestAnimationFrame(animate); |
| | | controls.update(); // å¯ç¨æ§å¶å¨æ¶éè¦ |
| | | renderer.render(scene, camera); |
| | | }; |
| | | initData(); |
| | | |
| | | animate(); |
| | | mainTag.addEventListener("wheel", () => { |
| | | xPos.value = Math.floor(camera.position.x); |
| | | yPos.value = Math.floor(camera.position.y); |
| | | zPos.value = Math.floor(camera.position.z); |
| | | }); |
| | | mainTag.addEventListener("mousemove", () => { |
| | | xPos.value = Math.floor(camera.position.x); |
| | | yPos.value = Math.floor(camera.position.y); |
| | | zPos.value = Math.floor(camera.position.z); |
| | | }); |
| | | // }; |
| | | document.addEventListener("click", handleClickOutside); |
| | | console.log(window.webConfig); |
| | | |
| | | createSocket(); |
| | | // showModel(); |
| | | }); |
| | | onBeforeUnmount(() => { |
| | | clearInterval(timer.value); |
| | | }); |
| | | </script> |
| | | <style lang="scss" scoped> |
| | |
| | | background-size: 0.3rem 2rem, 2rem 0.3rem, 0.3rem 2rem, 2rem 0.3rem; |
| | | padding: 0.2rem; |
| | | box-sizing: border-box; |
| | | background-color: rgba(0, 0, 0, 0.3); |
| | | background-color: rgba(0, 0, 0, 0.1); |
| | | overflow: hidden; |
| | | |
| | | .rect { |
| | |
| | | |
| | | .rect-center { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | width: 170vh; |
| | | justify-content: space-around; |
| | | width: 100%; |
| | | margin: 0 auto; |
| | | padding: 0.8rem 2.15rem; |
| | | box-sizing: border-box; |
| | | |
| | | position: absolute; |
| | | left: 50%; |
| | | top: 5%; |
| | | transform: translateX(-50%); |
| | | .rect-item1 { |
| | | display: flex; |
| | | flex-direction: column; |
| | | width: 14.31rem; |
| | | width: 16rem; |
| | | height: 15.38rem; |
| | | background-image: url("../../../assets/TheCurrentJob/bg.png"); |
| | | background-repeat: no-repeat; |
| | | background-size: 100% 100%; |
| | | padding: 0.28rem 0.28rem; |
| | | // background-image: url("../../../assets/TheCurrentJob/bg.png"); |
| | | // background-repeat: no-repeat; |
| | | // background-size: 100% 100%; |
| | | border-radius: 8px; |
| | | background: linear-gradient( |
| | | 0deg, |
| | | rgba(0, 0, 0, 0.001), |
| | | rgba(0, 0, 0, 0.001) |
| | | ), |
| | | rgba(0, 0, 0, 0), |
| | | linear-gradient( |
| | | 135deg, |
| | | rgba(30, 58, 138, 0.6) -3%, |
| | | rgba(49, 46, 129, 0.6) 99% |
| | | ); |
| | | box-sizing: border-box; |
| | | border: 1px solid rgba(96, 165, 250, 0.3); |
| | | box-shadow: 0px 4px 6px -4px rgba(0, 0, 0, 0.1), |
| | | 0px 10px 15px -3px rgba(0, 0, 0, 0.1); |
| | | padding: 0.28rem 1.28rem; |
| | | box-sizing: border-box; |
| | | } |
| | | |
| | | .rect-item2 { |
| | | width: 49.88rem; |
| | | height: 15.38rem; |
| | | border: 0.1rem solid #02cde6; |
| | | width: 65rem; |
| | | height: 14.38rem; |
| | | border-radius: 8px; |
| | | background: linear-gradient( |
| | | 0deg, |
| | | rgba(0, 0, 0, 0.001), |
| | | rgba(0, 0, 0, 0.001) |
| | | ), |
| | | rgba(0, 0, 0, 0), |
| | | linear-gradient( |
| | | 135deg, |
| | | rgba(30, 58, 138, 0.6) -3%, |
| | | rgba(49, 46, 129, 0.6) 99% |
| | | ); |
| | | box-sizing: border-box; |
| | | border: 1px solid rgba(96, 165, 250, 0.3); |
| | | box-shadow: 0px 4px 6px -4px rgba(0, 0, 0, 0.1), |
| | | 0px 10px 15px -3px rgba(0, 0, 0, 0.1); |
| | | padding: 0.69rem 1.44rem; |
| | | position: relative; |
| | | |
| | | .el-table :deep(.el-table__header th) { |
| | | border: solid 1px #1ac0f6; |
| | | // border: solid 1px #1ac0f6; |
| | | color: white; |
| | | } |
| | | |
| | | .consten { |
| | | position: relative; |
| | | top: 0; |
| | | width: 100%; |
| | | position: absolute; |
| | | top: 10rem; |
| | | z-index: 999; |
| | | } |
| | | } |
| | |
| | | flex-direction: column; |
| | | width: 11.31rem; |
| | | height: 15.38rem; |
| | | background-image: url("../../../assets/TheCurrentJob/bg.png"); |
| | | background-repeat: no-repeat; |
| | | background-size: 100% 100%; |
| | | // background-image: url("../../../assets/TheCurrentJob/bg.png"); |
| | | // background-repeat: no-repeat; |
| | | // background-size: 100% 100%; |
| | | border-radius: 8px; |
| | | background: linear-gradient( |
| | | 0deg, |
| | | rgba(0, 0, 0, 0.001), |
| | | rgba(0, 0, 0, 0.001) |
| | | ), |
| | | rgba(0, 0, 0, 0), |
| | | linear-gradient( |
| | | 135deg, |
| | | rgba(30, 58, 138, 0.6) -3%, |
| | | rgba(49, 46, 129, 0.6) 99% |
| | | ); |
| | | box-sizing: border-box; |
| | | border: 1px solid rgba(96, 165, 250, 0.3); |
| | | box-shadow: 0px 4px 6px -4px rgba(0, 0, 0, 0.1), |
| | | 0px 10px 15px -3px rgba(0, 0, 0, 0.1); |
| | | padding: 0.28rem 0.28rem; |
| | | box-sizing: border-box; |
| | | } |
| | |
| | | // border-bottom: solid 1px #1ac2f7; |
| | | // color: white; |
| | | // } |
| | | .el-table { |
| | | --el-table-border-color: transparent; |
| | | --el-table-border: none; |
| | | --el-table-text-color: #bdbdbe; |
| | | --el-table-header-text-color: #bdbdbe; |
| | | --el-table-row-hover-bg-color: transparent; |
| | | --el-table-current-row-bg-color: transparent; |
| | | --el-table-header-bg-color: transparent; |
| | | --el-table-bg-color: transparent; |
| | | --el-table-tr-bg-color: transparent; |
| | | --el-table-expanded-cell-bg-color: transparent; |
| | | } |
| | | |
| | | .el-table :deep(.el-table__row td) { |
| | | border: solid 1px #1ac2f7; |
| | | color: white; |
| | |
| | | color: #1ac2f7; |
| | | } |
| | | |
| | | .el-table :deep(.el-table__body-wrapper) { |
| | | background-color: #1ac2f7; |
| | | } |
| | | // .el-table :deep(.el-table__body-wrapper) { |
| | | // background-color: #1ac2f7; |
| | | // } |
| | | |
| | | :deep(.el-popper) { |
| | | background-color: #ad2525; |