¶Ô±ÈÐÂÎļþ |
| | |
| | | window.webConfig = { |
| | | "webApiDevelopment": "http://localhost:9291/", |
| | | "webApiProduction": "http://localhost:9291/", |
| | | "webApiDebug": "http://localhost:9291/", |
| | | "webSocketUrl": "ws://localhost:5174/", |
| | | } |
| | |
| | | |
| | | //ç¨æ·æ³¨åæ¥å£ |
| | | export const register = (data) => http.post('api/Registry/UserRegistry', data) |
| | | |
| | | //å é¤saveFaceçç
§ç |
| | | export const CleanUnusedImages = () => http.get('/api/User/CleanUnusedImages') |
| | | |
| | |
| | | import data from "@/views/builder/builderData"; |
| | | import http from "./http"; |
| | | |
| | | //è·åéªè¯ç æ¥å£ |
| | |
| | | //è·åç¨æ·å表 |
| | | export const GetUserList = (data) => http.post('/api/User/GetPageData', data) |
| | | |
| | | //è·åç¨æ·å表 |
| | | export const NewGetUserList = (data) => http.post('/api/User/GetUserFace', data) |
| | | |
| | | //æ°å»ºç¨æ· |
| | | export const AddUser = (data) => http.post('/api/User/AddData', data) |
| | | //æ°æ°å»ºç¨æ· |
| | | export const AdduserData = (data) => http.post('/api/User/AdduserData', data) |
| | | |
| | | //ä¿®æ¹ç¨æ· |
| | | export const UpdateUser = (data) => http.post('/api/User/UpdateData', data) |
| | | |
| | | //æ°æ´æ°ç¨æ· |
| | | export const NewUpdateUser = (data) => http.post('/api/User/UpuserData', data) |
| | | |
| | | //è·åè´¦å·ä¿¡æ¯ |
| | | export const GetUserInfo = (data) => http.post('/api/User/getCurrentUserInfo', data) |
| | |
| | | |
| | | //ç¼è¾ç¨æ· |
| | | export const EditUserApi = (data) => http.post('/api/User/UploaUser', data) |
| | | |
| | | //å é¤ç¨æ· |
| | | export const DeleteUserData = (data) => http.post(`/api/User/DeleteUserData?userAccount=${data.userAccount}`) |
| | | //ä¿åä¸ªäººä¿¡æ¯ |
| | | export const Upuserbase = (data) => http.post('/api/User/Upuserbase', data) |
| | | |
| | | //ç¨æ·ä¸ä¼ å¾ç |
| | | export const UploadImg = (data) => http.post('/api/User/SaveFiles', data) |
| | | |
| | | //è·åç¾åº¦äºåç» |
| | | export const FaceGetPageData = (data) => http.post('/api/FaceRecognition/GetPageData', data) |
| | | |
| | |
| | | import { dayjs } from "element-plus"; |
| | | // import XLSX from "xlsx"; //导å
¥xlsx |
| | | |
| | | export const baseUrl = "http://115.159.85.185:9098/" |
| | | // http://115.159.85.185:9091/ |
| | | export const baseUrl = "http://192.168.0.80:5000/" |
| | | // http://192.168.0.80:5000/ |
| | | // 115.159.85.185:9091 |
| | | // http://115.159.85.185:9098/ |
| | | |
| | | |
| | |
| | | cursor: pointer; |
| | | font-size: 1rem; |
| | | " |
| | | @click="show = false" |
| | | @click="recognition" |
| | | >人è¸è¯å«ç»å½</span |
| | | > |
| | | </div> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div class="face-login" v-else> |
| | | <span style="font-size: 0.88rem; font-weight: bold; color: #333333" |
| | | <span |
| | | style=" |
| | | text-align: center; |
| | | font-size: 0.88rem; |
| | | font-weight: bold; |
| | | color: #333333; |
| | | " |
| | | >请å°è¸é¨æ£å¯¹èè²æ¾ç¤ºæ¡å
ï¼å¹¶ä¿æå
线å
è¶³</span |
| | | > |
| | | <div style="width: 100%; display: flex; justify-content: center"> |
| | | <div |
| | | style=" |
| | | display: flex; |
| | |
| | | background-color: #f1fcff; |
| | | " |
| | | > |
| | | <img src="@/assets/login/face.png" alt="" /> |
| | | <img v-if="!face" src="@/assets/login/face.png" alt="" /> |
| | | <!-- <canvas v-else ref="canvasDom" /> --> |
| | | <div v-else> |
| | | <!-- ææ¾å¨ï¼ç¨æ¥ææ¾ææçè§é¢ --> |
| | | <video class="camera_video" ref="videoDom" /> |
| | | <!-- æ¾ç¤ºç
§ç --> |
| | | <!-- <img |
| | | style="border-radius: 50%; width: 18.75rem; height: 18.75rem" |
| | | v-else |
| | | :src="imgurl" |
| | | /> --> |
| | | </div> |
| | | <el-button type="primary" size="small" style="width: 100%" |
| | | </div> |
| | | </div> |
| | | <!-- <el-button |
| | | v-if="!reBtn" |
| | | type="primary" |
| | | size="small" |
| | | style="width: 100%" |
| | | @click="takePhoto" |
| | | >å¼å§è¯å«</el-button |
| | | > |
| | | <el-button |
| | | v-else |
| | | type="primary" |
| | | size="small" |
| | | style="width: 100%" |
| | | @click="REtakePhoto" |
| | | >éæ°è¯å«</el-button |
| | | > --> |
| | | <div style="width: 100%; margin-top: 1rem; display: flex"> |
| | | <el-button |
| | | type="primary" |
| | | size="small" |
| | | style="width: 100%" |
| | | @click="recognition" |
| | | >éæ°è·åæå头</el-button |
| | | > |
| | | <el-select |
| | | v-if="videoArr.length > 1" |
| | | v-model="constraints" |
| | | placeholder="è¯·éæ©æå头" |
| | | size="samll" |
| | | @change="changeconstraints" |
| | | style="height: 2rem" |
| | | :disabled="!videoArr.length > 1" |
| | | > |
| | | <el-option |
| | | v-for="item in videoArr" |
| | | :key="item.id" |
| | | :label="item.label" |
| | | :value="item.id" |
| | | /> |
| | | </el-select> |
| | | </div> |
| | | <div |
| | | style=" |
| | | display: flex; |
| | |
| | | cursor: pointer; |
| | | font-size: 1rem; |
| | | " |
| | | @click="show = true" |
| | | @click="accountlogin" |
| | | >è´¦å·ç»å½</span |
| | | > |
| | | </div> |
| | |
| | | </template> |
| | | |
| | | <script setup> |
| | | import { getCodeImg, login } from "@/api/login"; |
| | | import { getCodeImg, login, CleanUnusedImages } from "@/api/login"; |
| | | import { UploadImg } from "@/api/user"; |
| | | import { useRouter, useRoute } from "vue-router"; |
| | | import { getCurrentInstance, ref, nextTick, onMounted } from "vue"; |
| | | import { ElMessage } from "element-plus"; |
| | | import store from "@/store"; |
| | | import axios from "axios"; |
| | | |
| | | const router = useRouter(); |
| | | const route = useRoute(); |
| | |
| | | |
| | | const codeUrl = ref(""); // éªè¯ç |
| | | const loading = ref(false); // ç»å½å è½½ç¶æ |
| | | |
| | | const face = ref(false); // 人è¸è¯å«ç»å½ |
| | | // ç
§çè·¯å¾ |
| | | const imgurl = ref(null); |
| | | // canvasæ§ä»¶å¯¹è±¡ |
| | | const canvasDom = ref(null); |
| | | // video æ§ä»¶å¯¹è±¡ |
| | | const videoDom = ref(null); |
| | | const reBtn = ref(false); |
| | | const loginForm = ref({ |
| | | userName: "", |
| | | password: "", |
| | |
| | | nextTick(() => { |
| | | userNameRef.value.focus(); |
| | | }); |
| | | const videoArr = ref([]); |
| | | //éæ©çæå头çid |
| | | const constraints = ref(""); |
| | | const videoConstraints = ref({}); |
| | | //人è¸è¯å«ç»å½ |
| | | const recognition = () => { |
| | | show.value = false; |
| | | videoArr.value = []; |
| | | setTimeout(async () => { |
| | | face.value = true; |
| | | navigator.mediaDevices |
| | | .enumerateDevices() |
| | | .then((devices) => { |
| | | devices.forEach(function (device) { |
| | | if (device.kind == "videoinput") { |
| | | videoArr.value.push({ |
| | | label: device.label, |
| | | id: device.deviceId, |
| | | }); |
| | | constraints.value = videoArr.value[0].id; |
| | | } |
| | | }); |
| | | openCamera(); |
| | | }) |
| | | .catch(function (err) { |
| | | layer.msg(err.name + ": " + err.message); |
| | | }); |
| | | }, 1000); |
| | | ElMessage({ |
| | | message: "æ£å¨è°ç¨æå头ï¼è¯·ç¨ç...", |
| | | type: "warning", |
| | | plain: true, |
| | | duration: 1000, |
| | | }); |
| | | // 人è¸è¯å«ç»å½é»è¾ |
| | | }; |
| | | |
| | | //è´¦å·ç»å½ |
| | | function accountlogin() { |
| | | stop(); |
| | | ElMessage({ |
| | | message: "æ£å¨å
³éæå头ï¼è¯·ç¨ç...", |
| | | type: "warning", |
| | | plain: true, |
| | | duration: 2000, |
| | | }); |
| | | setTimeout(() => { |
| | | ElMessage({ |
| | | message: "å
³éæå头æå", |
| | | type: "success", |
| | | plain: true, |
| | | }); |
| | | }, 3000); |
| | | setTimeout(() => { |
| | | show.value = true; |
| | | face.value = false; |
| | | }, 2000); |
| | | } |
| | | //æå¼æå头 |
| | | const openCamera = async () => { |
| | | videoConstraints.value.deviceId = { exact: constraints.value }; |
| | | |
| | | // æ£æµæµè§å¨æ¯å¦æ¯æmediaDevices |
| | | if (navigator.mediaDevices) { |
| | | navigator.mediaDevices |
| | | // å¼å¯è§é¢ï¼å
³éé³é¢ |
| | | .getUserMedia({ |
| | | audio: false, |
| | | video: { |
| | | width: 300, // 设置è§é¢å®½åº¦ |
| | | height: 300, // 设置è§é¢é«åº¦ |
| | | facingMode: "user", // 使ç¨åç½®æå头 |
| | | deviceId: videoConstraints.value.deviceId, |
| | | }, |
| | | }) |
| | | .then((stream) => { |
| | | // å°è§é¢æµä¼ å
¥viedoæ§ä»¶ |
| | | videoDom.value.srcObject = stream; |
| | | // ææ¾ |
| | | videoDom.value.play(); |
| | | Facerecognition(); |
| | | ElMessage({ |
| | | message: "æå头è°ç¨æå", |
| | | type: "success", |
| | | plain: true, |
| | | }); |
| | | }) |
| | | .catch((err) => { |
| | | console.log(err); |
| | | }); |
| | | } else { |
| | | window.alert("该æµè§å¨ä¸æ¯æå¼å¯æå头ï¼è¯·æ´æ¢ææ°çæµè§å¨"); |
| | | } |
| | | }; |
| | | const changeconstraints = (res) => { |
| | | openCamera(); |
| | | }; |
| | | |
| | | // å¼å§è¯å« |
| | | const takePhoto = async () => { |
| | | // å¦æå·²ç»æç
§äºå°±éæ°å¯å¨æå头 |
| | | // if (imgurl.value) { |
| | | // imgurl.value = null; |
| | | // openCamera(); |
| | | // return; |
| | | // } |
| | | |
| | | console.log(videoDom.value.videoWidth, videoDom.value.videoHeight); |
| | | // å建ä¸ä¸ªç»å¸å
ç´ ï¼è®¾ç½®ç»å¸å°ºå¯¸ä¸ºè§é¢æµç尺寸 |
| | | const canvas = document.createElement("canvas"); |
| | | // 设置ç»å¸å¤§å°ä¸æå大å°ä¸è´ |
| | | canvas.width = videoDom.value.videoWidth; |
| | | canvas.height = videoDom.value.videoHeight; |
| | | // è·åç»å¸ä¸ä¸æå¯¹è±¡ |
| | | const ctx = canvas.getContext("2d"); |
| | | // ç»å¶å½åè§é¢å¸§å°ç»å¸ä¸ |
| | | ctx.drawImage(videoDom.value, 0, 0, canvas.width, canvas.height); |
| | | // å°ç»å¸å
容转为 Base64 æ°æ® |
| | | const imageDataUrl = canvas.toDataURL("image/png"); |
| | | // åå¨å¾çè·¯å¾ |
| | | imgurl.value = imageDataUrl; |
| | | |
| | | // // å建ä¸ä¸ªå¾çå
ç´ |
| | | // const imageElement = new Image(); |
| | | // // å° Base64 æ°æ®è®¾ç½®ä¸ºå¾çç src 屿§ |
| | | // imageElement.src = imageDataUrl; |
| | | // console.log(imageElement, imageDataUrl, "å¾çè·¯å¾"); |
| | | // return; |
| | | // canvasDom.value.width = videoDom.value.videoWidth; |
| | | // canvasDom.value.height = videoDom.value.videoHeight; |
| | | // // æ§è¡ç»çæä½ |
| | | // canvasDom.value.getContext("2d").drawImage(videoDom.value, 0, 0); |
| | | // // å°ç»æè½¬æ¢ä¸ºå¯å±ç¤ºçæ ¼å¼ |
| | | // imgurl.value = canvasDom.value.toDataURL("image/webp"); |
| | | // å
³éæå头 |
| | | let files = dataURLtoFile(imgurl.value, new Date().getTime() + ".png"); |
| | | const formdata = new FormData(); |
| | | formdata.append("files", files); |
| | | let response = await axios.post("/api/User/SaveFiles", formdata, { |
| | | headers: { |
| | | "Content-Type": "multipart/form-data", |
| | | }, |
| | | }); |
| | | ElMessage({ |
| | | message: "å¼å§è¯å«ä¸ï¼è¯·ç¨ç...", |
| | | type: "warning", |
| | | plain: true, |
| | | duration: 2000, |
| | | }); |
| | | setTimeout(() => { |
| | | login({ |
| | | userName: "", |
| | | password: "", |
| | | path: response.data.data, |
| | | }) |
| | | .then((res) => { |
| | | if (res.status) { |
| | | store.commit("setUserInfo", { ...res.data }); |
| | | ElMessage({ |
| | | message: "è¯å«æåï¼å¼å§ç»å½", |
| | | type: "success", |
| | | plain: true, |
| | | duration: 2000, |
| | | }); |
| | | CleanUnusedImages(); |
| | | stop(); |
| | | setTimeout(() => { |
| | | router.push({ path: "/" }); |
| | | }, 1000); |
| | | } |
| | | }) |
| | | .catch((err) => { |
| | | loading.value = false; |
| | | return proxy.$message.error(err.message); |
| | | }); |
| | | setTimeout(() => { |
| | | loading.value = false; |
| | | }, 1000); |
| | | }, 1000); |
| | | reBtn.value = true; |
| | | }; |
| | | //éæ°è¯å« |
| | | // const REtakePhoto = () => { |
| | | // reBtn.value = false; |
| | | // takePhoto(); |
| | | // }; |
| | | // å° base64 转æ¢ä¸º Blob |
| | | const dataURLtoFile = (dataurl, filename) => { |
| | | let arr = dataurl.split(","), |
| | | mime = arr[0].match(/:(.*?);/)[1], |
| | | bstr = atob(arr[1]), |
| | | n = bstr.length, |
| | | u8arr = new Uint8Array(n); |
| | | while (n--) { |
| | | u8arr[n] = bstr.charCodeAt(n); |
| | | } |
| | | return new File([u8arr], filename, { |
| | | type: mime, |
| | | }); |
| | | }; |
| | | // å
³éæå头 |
| | | const stop = () => { |
| | | let stream = videoDom.value.srcObject; |
| | | if (!stream) return; |
| | | let tracks = stream.getTracks(); |
| | | tracks.forEach((x) => { |
| | | x.stop(); |
| | | }); |
| | | clearInterval(timer.value); |
| | | }; |
| | | |
| | | //è·åéªè¯ç |
| | | getCode(); |
| | | //宿¶äººè¸è¯å« |
| | | const timer = ref(null); |
| | | const Facerecognition = () => { |
| | | clearInterval(timer.value); |
| | | if (!show.value) { |
| | | timer.value = setInterval(() => { |
| | | takePhoto(); |
| | | }, 3000); |
| | | } |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | |
| | | } |
| | | } |
| | | .face-login { |
| | | width: 30rem; |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: center; |
| | | align-content: center; |
| | | text-align: center; |
| | | } |
| | | } |
| | | } |
| | | .camera_video { |
| | | width: 18.75rem; |
| | | height: 18.75rem; |
| | | border: 1px black solid; |
| | | border-radius: 50% 50%; |
| | | } |
| | | </style> |
| | |
| | | fontSize: '0.88rem', |
| | | height: '3rem', |
| | | }" |
| | | @select="InfoSelectionChange" |
| | | @selection-change="InfoSelectionChange" |
| | | > |
| | | <el-table-column type="selection" align="center" /> |
| | | <el-table-column prop="articleName" label="ä¿¡æ¯åç§°" align="center" /> |
| | |
| | | fontSize: '0.88rem', |
| | | height: '3rem', |
| | | }" |
| | | @select="ToolSelectionChange" |
| | | @selection-change="ToolSelectionChange" |
| | | > |
| | | <el-table-column type="selection" align="center" /> |
| | | <el-table-column prop="toolName" label="å·¥å
·åç§°" align="center" /> |
| | |
| | | fontSize: '0.88rem', |
| | | height: '3rem', |
| | | }" |
| | | @select="SelectionChange" |
| | | @selection-change="SelectionChange" |
| | | > |
| | | <el-table-column type="selection" align="center" min-width="1%" /> |
| | | <el-table-column |
| | |
| | | fontSize: '0.88rem', |
| | | height: '3rem', |
| | | }" |
| | | @Select="getSelectionRows" |
| | | @selection-change="getSelectionRows" |
| | | > |
| | | <el-table-column type="selection" align="center" /> |
| | | <el-table-column |
| | |
| | | > |
| | | </span> |
| | | </div> |
| | | <div style="position: absolute; width: 62rem; height: 2.5rem"> |
| | | <div style="width: 62rem; height: 2.5rem"> |
| | | <el-table |
| | | empty-text="ææ æ°æ®" |
| | | style="margin-top: 0.88rem" |
| | | 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 |
| | |
| | | min-width="13%" |
| | | > |
| | | <template #default="scope"> |
| | | <el-tooltip placement="bottom" effect="light"> |
| | | <template #content> |
| | | <span style="display: block; width: 15rem">{{ |
| | | scope.row.craftsStep |
| | | }}</span> |
| | | </template> |
| | | <span |
| | | ref="spanHide" |
| | | @click="showDetail1(!contentShow)" |
| | | @click="true" |
| | | style=" |
| | | color: #1ac2f7; |
| | | color: #ffffff; |
| | | font-size: 0.88rem; |
| | | cursor: pointer; |
| | | text-decoration: underline; |
| | | display: -webkit-box; /* 设置为WebKitå
æ ¸çå¼¹æ§ç忍¡å */ |
| | | -webkit-box-orient: vertical; /* åç´æå */ |
| | | -webkit-line-clamp: 1; /* éå¶æ¾ç¤ºä¸¤è¡ */ |
| | | overflow: hidden; /* éèè¶
åºèå´çå
容 */ |
| | | text-overflow: ellipsis; /* 使ç¨çç¥å· */ |
| | | " |
| | | >{{ scope.row.craftsStep }} |
| | | </span></template |
| | | >{{ scope.row.craftsStep }}</span |
| | | > |
| | | </el-tooltip> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <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 |
| | | ref="spanHide" |
| | | @click="true" |
| | | style=" |
| | | color: #ffffff; |
| | | font-size: 0.88rem; |
| | |
| | | overflow: hidden; /* éèè¶
åºèå´çå
容 */ |
| | | text-overflow: ellipsis; /* 使ç¨çç¥å· */ |
| | | " |
| | | >{{ scope.row.tools }} |
| | | </span></template |
| | | ></el-table-column |
| | | >{{ scope.row.tools }}</span |
| | | > |
| | | </el-tooltip> |
| | | </template></el-table-column |
| | | > |
| | | <el-table-column |
| | | property="craftsStep" |
| | |
| | | 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; |
| | |
| | | text-overflow: ellipsis; /* 使ç¨çç¥å· */ |
| | | " |
| | | >{{ scope.row.material }}</span |
| | | ></template |
| | | ></el-table-column |
| | | > |
| | | </el-tooltip> |
| | | </template></el-table-column |
| | | > |
| | | </el-table> |
| | | <div class="consten" v-show="contentShow"> |
| | | <!-- <div class="consten" v-show="contentShow"> |
| | | <el-table |
| | | empty-text="ææ æ°æ®" |
| | | :data="gridData" |
| | |
| | | ></el-table-column |
| | | > |
| | | </el-table> |
| | | </div> |
| | | </div> --> |
| | | </div> |
| | | </div> |
| | | <div class="rect-item3" style="position: relative"> |
| | |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | position: absolute; |
| | | top: 38%; |
| | | left: 50%; |
| | | transform: translateX(-50%); |
| | | z-index: 999; |
| | | " |
| | | > |
| | | <div |
| | |
| | | align-items: center; |
| | | position: absolute; |
| | | bottom: 5%; |
| | | left: 50%; |
| | | transform: translateX(-50%); |
| | | right: 0%; |
| | | transform: translateX(-20%); |
| | | z-index: 999; |
| | | " |
| | | > |
| | | <el-button |
| | |
| | | </div> |
| | | </template> |
| | | <script setup> |
| | | import { ref, onMounted, nextTick } from "vue"; |
| | | import { ref, onMounted, nextTick, onBeforeUnmount } from "vue"; |
| | | import { |
| | | GetScreenData, |
| | | GetPre, |
| | |
| | | takeid: "", |
| | | setnum: 0, |
| | | }); |
| | | |
| | | const client = ref(null); |
| | | |
| | | //æåå¼ |
| | | const torqueFrom = ref({ |
| | |
| | | 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; |
| | | // 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; |
| | | // cameraAnimate( |
| | | // [xPos.value, yPos.value, zPos.value], |
| | | // nodeList[gridData.value[0].setpNum] |
| | | // ); |
| | | // GetTorque(queryData.value).then((res) => { |
| | | // Torque.value = res.data; |
| | | // }); |
| | | // return; |
| | | // } |
| | | gridData.value = [res.data.proNow]; |
| | | sunNUm.value = res.data.maxproce; |
| | | obj.value = res.data.proNow; |
| | |
| | | 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:9098/"); |
| | | |
| | | 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 / 1.01, window.innerHeight / 2.1); |
| | | renderer.setSize(window.innerWidth - 20, window.innerHeight - 100); |
| | | renderer.setClearColor(0xeeeeee); // è®¾ç½®èæ¯è² |
| | | // å¯ç¨ç©çæ¸²ææ¨¡å¼ |
| | | // renderer.physicallyCorrectLights = true; |
| | |
| | | const controls = new OrbitControls(camera, renderer.domElement); |
| | | controls.enablePan = false; //ç¦æ¢å³é®ææ½ |
| | | //ç¸æºä½ç½®ä¸è§å¯ç®æ ç¹æå°å¼ |
| | | controls.minDistance = 650; |
| | | controls.minDistance = 600; |
| | | //ç¸æºä½ç½®ä¸è§å¯ç®æ ç¹æå¤§å¼ |
| | | controls.maxDistance = 900; |
| | | controls.maxDistance = 1000; |
| | | |
| | | camera.position.set(...CAMERA_POS); |
| | | controls.update(); |
| | |
| | | }); |
| | | // }; |
| | | 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: 80%; |
| | | 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: 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: 65rem; |
| | | height: 15.38rem; |
| | | border: 0.1rem solid #02cde6; |
| | | 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; |
| | | } |
| | | |
| | |
| | | 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; |
| | |
| | | >æ°å»º</el-button |
| | | > |
| | | <el-button |
| | | v-if="isactive != 3" |
| | | size="small" |
| | | style="width: 5.5rem; height: 2rem; font-size: 0.88rem" |
| | | @click="printExcel" |
| | |
| | | fontSize: '0.88rem', |
| | | height: '3rem', |
| | | }" |
| | | @select="UserSelectionChange" |
| | | @selection-change="UserSelectionChange" |
| | | > |
| | | <el-table-column type="selection" align="center" min-width="1%" /> |
| | | <el-table-column |
| | |
| | | <template #default="scope"> |
| | | <el-image |
| | | style="width: 70px; height: 70px" |
| | | :src="'http://115.159.85.185:9098' + scope.row.headImageUrl" |
| | | :src=" |
| | | 'http://115.159.85.185:9098' + scope.row.headImageUrl |
| | | " |
| | | show-progress |
| | | :initial-index="4" |
| | | fit="cover" |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="groupID" |
| | | label="ç¾åº¦äºåç»" |
| | | align="center" |
| | | min-width="3%" |
| | | /> |
| | | <el-table-column label="æ¯å¦å¯ç¨" align="center" min-width="2%"> |
| | | <template #default="scope"> |
| | | <el-switch |
| | |
| | | @click="Editpassword(scope.row)" |
| | | >ä¿®æ¹å¯ç </el-button |
| | | > |
| | | <el-button |
| | | size="small" |
| | | type="text" |
| | | @click="deletUser(scope.row)" |
| | | :disabled=" |
| | | scope.row.userName == 'admin' || scope.row.user_Id == '1' |
| | | " |
| | | >å é¤</el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | fontSize: '0.88rem', |
| | | height: '3rem', |
| | | }" |
| | | @select="RoleSelectionChange" |
| | | @selection-change="RoleSelectionChange" |
| | | > |
| | | <el-table-column type="selection" align="center" /> |
| | | <el-table-column prop="roleName" label="è§è²åç§°" align="center" /> |
| | |
| | | @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange" |
| | | /> |
| | | <el-pagination |
| | | v-if="isactive == 2" |
| | | size="small" |
| | | background |
| | | layout="prev, pager, next" |
| | | :current-page="pageQuery.page" |
| | | :page-size="pageQuery.rows" |
| | | :total="pageTotal1" |
| | | @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange" |
| | | /> |
| | | </div> |
| | | </div> |
| | | |
| | |
| | | > |
| | | <el-row :gutter="20"> |
| | | <el-col :span="8"> |
| | | <el-form-item prop="userName"> |
| | | <el-form-item prop="username"> |
| | | <template #label> |
| | | <div style="display: flex; align-items: flex-end"> |
| | | <span style="color: red; margin-right: 0.2rem">*</span> |
| | |
| | | </template> |
| | | <el-input |
| | | size="small" |
| | | v-model="formUser.userName" |
| | | v-model="formUser.username" |
| | | placeholder="请è¾å
¥" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item prop="userTrueName"> |
| | | <el-form-item prop="usertruename"> |
| | | <template #label> |
| | | <div style="display: flex; align-items: flex-end"> |
| | | <span style="color: red; margin-right: 0.2rem">*</span> |
| | |
| | | </template> |
| | | <el-input |
| | | size="small" |
| | | v-model="formUser.userTrueName" |
| | | v-model="formUser.usertruename" |
| | | placeholder="请è¾å
¥" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item prop="phoneNo"> |
| | | <el-form-item prop="phoneno"> |
| | | <template #label> |
| | | <div style="display: flex; align-items: flex-end"> |
| | | <span style="color: red; margin-right: 0.2rem">*</span> |
| | |
| | | </template> |
| | | <el-input |
| | | size="small" |
| | | v-model="formUser.phoneNo" |
| | | v-model="formUser.phoneno" |
| | | placeholder="请è¾å
¥" |
| | | /> |
| | | </el-form-item> |
| | |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="8"> |
| | | <el-form-item prop="role_Id"> |
| | | <el-form-item prop="roleid"> |
| | | <template #label> |
| | | <div style="display: flex; align-items: flex-end"> |
| | | <span style="color: red; margin-right: 0.2rem">*</span> |
| | |
| | | </div> |
| | | </template> |
| | | <el-select |
| | | v-model="formUser.role_Id" |
| | | v-model="formUser.roleid" |
| | | placeholder="è¯·éæ©" |
| | | size="small" |
| | | > |
| | | <el-option |
| | | :disabled="item.roleId == 1" |
| | | :disabled="item.roleId == 20" |
| | | v-for="item in groupOptions" |
| | | :key="item.roleId" |
| | | :label="item.roleName" |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item prop="roleName"> |
| | | <el-form-item prop="rolename"> |
| | | <template #label> |
| | | <div style="display: flex; align-items: flex-end"> |
| | | <span style="color: red; margin-right: 0.2rem">*</span> |
| | |
| | | </div> |
| | | </template> |
| | | <el-select |
| | | v-model="formUser.roleName" |
| | | v-model="formUser.rolename" |
| | | placeholder="è¯·éæ©" |
| | | size="small" |
| | | > |
| | |
| | | @before-upload="beforeAvatarUpload" |
| | | :on-success="handleAvatarSuccess" |
| | | :file-list="fileList != [] ? fileList : []" |
| | | :class="{ hide: showUpload }" |
| | | > |
| | | <el-icon> |
| | | <Plus /> |
| | |
| | | </div> |
| | | </template> |
| | | <el-form |
| | | :model="formUser" |
| | | :model="newobj" |
| | | label-width="auto" |
| | | label-position="top" |
| | | ref="formpasswordRef" |
| | |
| | | <el-input |
| | | style="margin-top: 1rem" |
| | | size="large" |
| | | v-model="formUser.newPwd" |
| | | v-model="newobj.newPwd" |
| | | placeholder="请è¾å
¥" |
| | | /> |
| | | </el-form-item> |
| | |
| | | </el-dialog> |
| | | |
| | | <!-- æé管çå¼¹åºæ¡ --> |
| | | |
| | | <el-dialog v-model="imgdialogVisible"> |
| | | <div |
| | | style=" |
| | |
| | | import { ref, reactive, onMounted, toRef } from "vue"; |
| | | import { ElMessage, ElMessageBox } from "element-plus"; |
| | | import { |
| | | GetUserList, |
| | | AddUser, |
| | | UpdateUser, |
| | | DelApi, |
| | | ExportApi, |
| | | ExportApi1, |
| | | UpdatePassword, |
| | | UpdatePwd, |
| | | AddUserApi, |
| | | EditUserApi, |
| | | NewGetUserList, |
| | | AdduserData, |
| | | NewUpdateUser, |
| | | DeleteUserData, |
| | | FaceGetPageData, |
| | | } from "@/api/user"; |
| | | import { useRouter } from "vue-router"; |
| | | import { formatTime } from "@/utils/index.js"; |
| | |
| | | |
| | | const tableData = ref([]); |
| | | const grideData = ref([]); |
| | | const faceData = ref([]); |
| | | //æ°å»ºç¨æ·ref |
| | | const formUserRef = ref(); |
| | | const options = ref([]); |
| | |
| | | }, |
| | | { value: 1, label: "æ¯" }, |
| | | ]); |
| | | const showUpload = ref(false); |
| | | //åç» |
| | | const groupOptions = ref([]); |
| | | const groupIDOptions = ref([]); |
| | | const formUser = ref({ |
| | | user_Id: undefined, |
| | | userName: "", |
| | | role_Id: 2, |
| | | roleName: "", |
| | | phoneNo: "", |
| | | remark: "", |
| | | userPwd: "123456", |
| | | userTrueName: "", |
| | | dept_Id: 0, |
| | | id: undefined, |
| | | username: "", |
| | | phoneno: "", |
| | | roleid: 21, |
| | | rolename: "", |
| | | enable: 1, |
| | | headImageUrl: "", |
| | | createDate: formatTime(new Date()), //å建æ¶é´ |
| | | creater: JSON.parse(localStorage.getItem("user")).userName, //å建人 |
| | | newPwd: "", |
| | | path: "", |
| | | usertruename: "", |
| | | }); |
| | | const rules = reactive({ |
| | | userName: { |
| | | username: { |
| | | required: true, |
| | | message: "请è¾å
¥ç¨æ·å", |
| | | trigger: "blur", |
| | | }, |
| | | role_Id: { |
| | | roleid: { |
| | | required: true, |
| | | message: "è¯·éæ©è§è²", |
| | | trigger: "change", |
| | |
| | | message: "请è¾å
¥å§å", |
| | | trigger: "blur", |
| | | }, |
| | | phoneNo: { |
| | | phoneno: { |
| | | required: true, |
| | | message: "请è¾å
¥ææºå·", |
| | | trigger: "blur", |
| | | }, |
| | | userTrueName: { |
| | | usertruename: { |
| | | required: true, |
| | | message: "请è¾å
¥çå®å§å", |
| | | trigger: "blur", |
| | |
| | | //ç鿡件 |
| | | const userOptions = [ |
| | | { |
| | | value: "userName", |
| | | value: "username", |
| | | label: "ç»å½è´¦å·", |
| | | }, |
| | | { |
| | | value: "userTrueName", |
| | | value: "usertruename", |
| | | label: "çå®å§å", |
| | | }, |
| | | { |
| | |
| | | }); |
| | | |
| | | const uploadRef = ref(); |
| | | // //ç¨æ·ä¿®æ¹å¯ç |
| | | // const handleUpdatePassword = (row) => { |
| | | // dialogVisible1.value = true; |
| | | // formUser.value = Object.assign({}, row); |
| | | // }; |
| | | // const UpdatePassword = () => { |
| | | // formpasswordRef.value.validate((valid) => { |
| | | // if (valid) { |
| | | // UpdatePassword({ |
| | | // user_Id: formUser.value.user_Id, |
| | | // oldPwd: formpassword.value.oldPwd, |
| | | // newPwd: formpassword.value.newPwd, |
| | | // }).then((res) => { |
| | | // if (res.code == 200) { |
| | | // ElMessage({ |
| | | // message: "ä¿®æ¹æå", |
| | | // type: "success", |
| | | // }); |
| | | // dialogVisible1.value = false; |
| | | // initData(); |
| | | // } else { |
| | | // ElMessage({ |
| | | // message: res.msg, |
| | | // type: "error", |
| | | // }); |
| | | // } |
| | | // }); |
| | | // } |
| | | // }); |
| | | // }; |
| | | |
| | | const pageTotal = ref(0); |
| | | //ç»å½è®°å½ |
| | | const pageTotal1 = ref(0); |
| | | const pageTotal2 = ref(0); |
| | | //ç¨æ·å表 |
| | | const initData = () => { |
| | | // æ¥è¯¢æ¡ä»¶ |
| | | const startTime = formatTime(queryForm.value.selectTime[0]); |
| | |
| | | { name: "createDate", value: startTime, displayType: "ThanOrEqual" }, |
| | | { name: "createDate", value: endTime, displayType: "LessOrEqual" }, |
| | | ]; |
| | | GetUserList({ |
| | | ...pageQuery.value, |
| | | filter, |
| | | NewGetUserList({ |
| | | pageIndex: pageQuery.value.page, |
| | | pageSize: pageQuery.value.rows, |
| | | searchKeyword: queryForm.value.selectInput, |
| | | startDate: startTime, |
| | | endDate: endTime, |
| | | }).then((res) => { |
| | | tableData.value = res.rows; |
| | | pageTotal.value = res.total; |
| | | tableData.value = res.data.items; |
| | | pageTotal.value = res.data.totalCount; |
| | | }); |
| | | getRole(); |
| | | }; |
| | | //å页请æ±åæ° |
| | | const pageQuery = ref({ |
| | |
| | | wheres: "", //æ¡ä»¶æ¥è¯¢ |
| | | }); |
| | | |
| | | //å页请æ±åæ° |
| | | const pageQuery1 = ref({ |
| | | page: 1, //å½åé¡µé¢ |
| | | rows: 10, //æ¯é¡µæ¾ç¤ºæ¡æ° |
| | | order: "desc", //æåºæ¹å¼ |
| | | sort: "", //æåºå段 |
| | | wheres: "", //æ¡ä»¶æ¥è¯¢ |
| | | }); |
| | | |
| | | //å页请æ±åæ° |
| | | const pageQuery2 = ref({ |
| | | page: 1, //å½åé¡µé¢ |
| | | rows: 10, //æ¯é¡µæ¾ç¤ºæ¡æ° |
| | | order: "desc", //æåºæ¹å¼ |
| | | sort: "", //æåºå段 |
| | | wheres: "", //æ¡ä»¶æ¥è¯¢ |
| | | }); |
| | | //æ°æ®æ£ç´¢äºä»¶ |
| | | const handleQuery = () => { |
| | | pageQuery.value.page = 1; |
| | | if (isactive.value == 1) { |
| | | pageQuery.value.page = 1; |
| | | initData(); |
| | | } else { |
| | | } else if (isactive.value == 2) { |
| | | pageQuery1.value.page = 1; |
| | | getRole(); |
| | | } else { |
| | | pageQuery2.value.page = 1; |
| | | GetFacePageData(); |
| | | } |
| | | }; |
| | | //éç½®æ¥è¯¢æ¡ä»¶ |
| | | const resetQuery = () => { |
| | | queryForm.value = Object.assign({}, obj); |
| | | pageQuery.value.page = 1; |
| | | if (isactive.value == 1) { |
| | | pageQuery.value.page = 1; |
| | | initData(); |
| | | } else { |
| | | } else if (isactive.value == 2) { |
| | | pageQuery1.value.page = 1; |
| | | getRole(); |
| | | } else { |
| | | pageQuery2.value.page = 1; |
| | | GetFacePageData(); |
| | | } |
| | | }; |
| | | //å页页é¢å¤§å°æ¹å |
| | |
| | | pageQuery.value.rows = val; |
| | | if (isactive.value == 1) { |
| | | initData(); |
| | | } else { |
| | | } else if (isactive.value == 2) { |
| | | getRole(); |
| | | } else { |
| | | GetFacePageData(); |
| | | } |
| | | }; |
| | | |
| | |
| | | pageQuery.value.page = val; |
| | | if (isactive.value == 1) { |
| | | initData(); |
| | | } else { |
| | | } else if (isactive.value == 2) { |
| | | getRole(); |
| | | } else { |
| | | GetFacePageData(); |
| | | } |
| | | }; |
| | | const handleAvatarSuccess = (val) => { |
| | | formUser.value.headImageUrl = "/image/" + val.data; |
| | | const handleAvatarSuccess = (response, file, fileList) => { |
| | | formUser.value.path = response.data; |
| | | if (fileList.length >= 1) { |
| | | showUpload.value = true; |
| | | } |
| | | }; |
| | | //é置表å |
| | | const resetForm = (formEl) => { |
| | | if (!formEl) return; |
| | | formEl.resetFields(); |
| | | formUser.value = { |
| | | user_Id: undefined, |
| | | userName: "", |
| | | role_Id: 21, |
| | | roleName: "", |
| | | phoneNo: "", |
| | | remark: "", |
| | | userPwd: "123456", |
| | | userTrueName: "", |
| | | dept_Id: 0, |
| | | username: "", |
| | | phoneno: "", |
| | | roleid: 21, |
| | | rolename: "", |
| | | enable: 1, |
| | | headImageUrl: "", |
| | | newPwd: "", |
| | | path: "", |
| | | user_Id: undefined, |
| | | }; |
| | | fileList.value = []; |
| | | }; |
| | | const resetForm1 = (formEl) => { |
| | | if (!formEl) return; |
| | | formEl.resetFields(); |
| | | formRole.value = { |
| | | roleName: "", |
| | | description: "", |
| | | }; |
| | | }; |
| | | const resetForm2 = (formEl) => { |
| | | if (!formEl) return; |
| | | formEl.resetFields(); |
| | | formRole.value = { |
| | |
| | | dialogImageUrl.value = uploadFile.url; |
| | | imgdialogVisible.value = true; |
| | | }; |
| | | const handleRemove = (val) => { |
| | | const handleRemove = (file, fileList1) => { |
| | | fileList.value = []; |
| | | //ç§»é¤å·²ä¸ä¼ çå¾ç |
| | | formUser.value.headImageUrl = ""; |
| | | formUser.value.path = ""; |
| | | if (fileList.value.length < 1) { |
| | | showUpload.value = false; |
| | | } |
| | | }; |
| | | |
| | | const beforeAvatarUpload = (val) => { |
| | | console.log(val); |
| | | }; |
| | | // const submitUpload = () => { |
| | | // let promise = new Promise((resolve, reject) => { |
| | | // setTimeout(async () => { |
| | | // await uploadRef.value.submit(); |
| | | // resolve("ä¸ä¼ æå"); |
| | | // }); |
| | | // }); |
| | | // return promise; |
| | | // }; |
| | | |
| | | //æ°å»ºç¨æ·è´¦å· |
| | | const saveObj = async (formEl) => { |
| | |
| | | if (!formEl) return; |
| | | await formEl.validate((valid, fields) => { |
| | | if (valid) { |
| | | if (formUser.value.user_Id != undefined) { |
| | | UpdateUser(formUser.value).then((res) => { |
| | | if (formUser.value.id != undefined) { |
| | | NewUpdateUser(formUser.value).then((res) => { |
| | | ElMessage({ message: "ä¿®æ¹æå", type: "success" }); |
| | | dialogVisible.value = false; |
| | | initData(); |
| | | }); |
| | | } else { |
| | | AddUser(formUser.value).then((res) => { |
| | | AdduserData(formUser.value).then((res) => { |
| | | ElMessage({ message: "æäº¤æå", type: "success" }); |
| | | dialogVisible.value = false; |
| | | initData(); |
| | |
| | | }; |
| | | //æ¯å¦å¯ç¨ |
| | | const changeSwitch = (val) => { |
| | | let data = Object.assign({}, val); |
| | | console.log(data); |
| | | UpdateUser(data).then((res) => { |
| | | let data = { |
| | | id: val.user_Id, |
| | | username: val.userName, |
| | | phoneno: val.phoneNo, |
| | | roleid: val.role_Id, |
| | | rolename: val.roleName, |
| | | enable: val.enable, |
| | | path: val.headImageUrl, |
| | | usertruename: val.userTrueName, |
| | | }; |
| | | NewUpdateUser(data).then((res) => { |
| | | ElMessage({ message: "ä¿®æ¹æå", type: "success" }); |
| | | dialogVisible.value = false; |
| | | initData(); |
| | |
| | | }; |
| | | //ç¼è¾ç¨æ·è´¦å· |
| | | const Edit = (val) => { |
| | | let obj = Object.assign({}, val); |
| | | let obj = { |
| | | id: val.user_Id, |
| | | username: val.userName, |
| | | phoneno: val.phoneNo, |
| | | roleid: val.role_Id, |
| | | rolename: val.roleName, |
| | | enable: val.enable, |
| | | path: val.headImageUrl, |
| | | usertruename: val.userTrueName, |
| | | }; |
| | | formUser.value = { |
| | | ...obj, |
| | | }; |
| | | if (obj.headImageUrl != "") { |
| | | if (obj.path != "") { |
| | | fileList.value = [ |
| | | { |
| | | name: "1", |
| | | url: "http://115.159.85.185:9098" + obj.headImageUrl, |
| | | url: "http://115.159.85.185:9098" + obj.path, |
| | | }, |
| | | ]; |
| | | } |
| | |
| | | formUser.value = obj; |
| | | formpassword.value = val; |
| | | newobj.value = Object.assign({}, val); |
| | | console.log(newobj.value); |
| | | |
| | | dialogVisible1.value = true; |
| | | }; |
| | | //ä¿åä¿®æ¹å¯ç |
| | | const savePassword = async (formEl) => { |
| | | let obj = Object.assign({}, newobj); |
| | | // obj.password = formpassword.value.password; |
| | | console.log(formUser.value); |
| | | |
| | | let obj = Object.assign({}, newobj.value); |
| | | let formdata = { |
| | | id: formUser.value.user_Id, |
| | | oldPwd: formUser.value.userPwd, |
| | | newPwd: formUser.value.newPwd, |
| | | id: obj.user_Id, |
| | | oldPwd: obj.userPwd, |
| | | newPwd: obj.newPwd, |
| | | }; |
| | | if (!formEl) return; |
| | | await formEl.validate((valid, fields) => { |
| | |
| | | { name: "createDate", value: startTime, displayType: "ThanOrEqual" }, |
| | | { name: "createDate", value: endTime, displayType: "LessOrEqual" }, |
| | | ]; |
| | | GetPageDataApi({ ...pageQuery.value, filter }).then((res) => { |
| | | GetPageDataApi({ ...pageQuery1.value, filter }).then((res) => { |
| | | grideData.value = res.rows; |
| | | pageTotal.value = res.total; |
| | | pageTotal1.value = res.total; |
| | | groupOptions.value = res.rows; |
| | | }); |
| | | }; |
| | | |
| | | //å é¤ç¨æ· |
| | | const deletUser = (val) => { |
| | | ElMessageBox.confirm("确认å é¤è¯¥ç¨æ·åï¼", { |
| | | confirmButtonText: "确认", |
| | | cancelButtonText: "åæ¶", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | DeleteUserData({ |
| | | userAccount: val.userName, |
| | | }).then((res) => { |
| | | ElMessage({ |
| | | type: "success", |
| | | message: "å 餿å", |
| | | }); |
| | | initData(); |
| | | }); |
| | | }) |
| | | .catch(() => { |
| | | ElMessage({ |
| | | type: "info", |
| | | message: "åæ¶å é¤", |
| | | }); |
| | | }); |
| | | }; |
| | | |
| | | //æå°æ°æ® |
| | | const printExcel = () => { |
| | | // æ¥è¯¢æ¡ä»¶ |
| | |
| | | if (isactive.value == 1) { |
| | | selectoptions.value = userOptions; |
| | | initData(); |
| | | } else { |
| | | } else if (isactive.value == 2) { |
| | | selectoptions.value = roleOptions; |
| | | getRole(); |
| | | } else { |
| | | GetFacePageData(); |
| | | } |
| | | }; |
| | | |
| | |
| | | }); |
| | | } |
| | | }; |
| | | |
| | | //管ç |
| | | //è·¯ç±è·³è½¬ |
| | | const toDetail = (row) => { |
| | |
| | | |
| | | onMounted(() => { |
| | | initData(); |
| | | getRole(); |
| | | }); |
| | | </script> |
| | | <style lang="scss" scoped> |
| | |
| | | text-align: center; |
| | | } |
| | | } |
| | | :deep(.hide .el-upload--picture-card) { |
| | | display: none; |
| | | } |
| | | </style> |
| | | <style> |
| | | .confirmButtonClass { |
| | | /* .confirmButtonClass { |
| | | margin-right: 10px; |
| | | } |
| | | |
| | | .el-message-box .el-message-box__btns { |
| | | flex-direction: row-reverse !important; |
| | | justify-content: normal !important; |
| | | } |
| | | } */ |
| | | </style> |