From c6e8b600398de38b6684f5fa1eaaaade8562859b Mon Sep 17 00:00:00 2001 From: wangxinhui <wangxinhui@hnkhzn.com> Date: 星期六, 20 九月 2025 15:16:56 +0800 Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/ZhiHuiQiCe/LongDeLiLiKu --- 项目代码/WCS/WCSClient/src/views/LineInfocopy.vue | 325 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 325 insertions(+), 0 deletions(-) diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSClient/src/views/LineInfocopy.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSClient/src/views/LineInfocopy.vue" new file mode 100644 index 0000000..338a8f0 --- /dev/null +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSClient/src/views/LineInfocopy.vue" @@ -0,0 +1,325 @@ +<template> + <div :class="update()" :style="{ left: left, top: top, marginBottom: 0 + 'px', marginTop: 15 + 'px' }" + @click="mouseClick" v-loading.fullscreen.lock="fullscreenLoading"> + <img v-if="imgType === '2'" src="../../public/lines.png" /> + <img v-if="imgType === '1'" src="../../public/lines2.png" /> + <label v-if="equipNo" class="equip-no">{{ equipNo }}</label> + </div> + <el-dialog v-model="dialogVisible" title="杈撻�佺嚎淇℃伅鏌ョ湅" :before-close="handleClose"> + <el-form ref="$form" :model="lineItemInfo" label-position="left" label-width="100px" size="medium"> + <el-row :gutter="20" type="flex" justify="start" align="top" tag="div"> + <el-col :span="12" :offset="0" :push="0" :pull="0" tag="div"> + <el-form-item label="璁惧缂栧彿锛�"> + <j-el-description :value="equipNo" type="primary" ellipsis></j-el-description> + </el-form-item> + </el-col> + <el-col :span="12" :offset="0" :push="0" :pull="0" tag="div"> + <el-form-item label="鏄惁鏈夌洏:"> + <j-el-description :value="lineItemInfo.inStock" type="primary" ellipsis></j-el-description> + </el-form-item> + </el-col> + </el-row> + <el-row :gutter="20" type="flex" justify="start" align="top" tag="div"> + <el-col :span="12" :offset="0" :push="0" :pull="0" tag="div"> + <el-form-item label="浠诲姟鍙�:"> + <j-el-description :value="lineItemInfo.taskNum" type="primary" ellipsis></j-el-description> + </el-form-item> + </el-col> + <el-col :span="12" :offset="0" :push="0" :pull="0" tag="div"> + <el-form-item label="鎶ヨ浠g爜锛�"> + <j-el-description :value="lineItemInfo.alarm" type="primary" ellipsis></j-el-description> + </el-form-item> + </el-col> + </el-row> + + </el-form><el-divider /> + <h4 style="margin-bottom: 20px;">鎵嬪姩鎿嶄綔</h4> + <el-form ref="form" :model="form" label-width="100px"> + <el-row :gutter="20" type="flex" justify="start" align="top" tag="div"> + <el-col :span="16" :offset="0" :push="0" :pull="0" tag="div"> + <el-form-item label="浠� 鍔� 鍛� 浠�" prop="TargetAddress"> + <el-select size="large" v-model="form.TaskType" placeholder="璇烽�夋嫨浠诲姟鍛戒护"> + <el-option label="鍏ュ簱" value="1" /> + <el-option label="鍑哄簱" value="2" /> + </el-select> + </el-form-item> + </el-col> + </el-row> + <el-row :gutter="20" type="flex" justify="start" align="top" tag="div"> + <el-col :span="16" :offset="0" :push="0" :pull="0" tag="div"> + <el-form-item label="涓嬩竴鐩爣鍦板潃:"> + <el-input size="large" v-model="form.TargetAddress" placeholder="璇疯緭鍏ヤ笅涓�鐩爣鍦板潃" /> + </el-form-item> + </el-col> + </el-row> + </el-form> + <el-divider /> + <el-row :gutter="20" type="flex" justify="start" align="top" tag="div"> + <el-col :span="4" :offset="0" :push="0" :pull="0" tag="div"> + <el-button type="primary" size="small" plain @click="SendCommand"> + <i class="el-icon-check">鍙戦�佸懡浠�</i> + </el-button> + </el-col> + <el-col :span="4" :offset="0" :push="0" :pull="0" tag="div"> + <el-button type="warning" size="small" plain @click="ConveyorLineReset"> + <i class="el-icon-check">澶嶄綅</i> + </el-button> + + </el-col> + <el-col :span="4" :offset="0" :push="0" :pull="0" tag="div"> + <el-button type="danger" size="small" plain @click="ConveyorLineEmergencyStop"> + <i class="el-icon-check">鍋滄</i> + </el-button> + </el-col> + <el-col :span="4" :offset="0" :push="0" :pull="0" tag="div"> + <el-button type="danger" size="small" plain @click="ConveyorLineReturn"> + <i class="el-icon-check">閫�鍥�</i> + </el-button> + </el-col> + <el-col :span="4" :offset="0" :push="0" :pull="0" tag="div"> + <el-button type="danger" size="small" plain @click="ConveyorLineCancel"> + <i class="el-icon-check">鍙栨秷浠诲姟</i> + </el-button> + </el-col> + <el-col :span="4" :offset="0" :push="0" :pull="0" tag="div"> + <el-button type="danger" size="small" plain @click="ConveyorLineInitialize"> + <i class="el-icon-check">宸ヤ綅鍒濆鍖�</i> + </el-button> + </el-col> + </el-row> + <template #footer> + <div class="dialog-footer"> + <el-button @click="dialogVisible = false">鍙栨秷</el-button> + <el-button type="primary" @click="dialogVisible = false"> + 纭 + </el-button> + </div> + </template> + </el-dialog> +</template> + +<script> +import { defineComponent } from "vue"; +import JElDescription from "./JElDescription"; +export default defineComponent({ + components: { + JElDescription + }, + props: { + equipNoFontColor: { + type: String, + default: "blue", + }, + equipNo: { + type: String, + default: "0", + }, + imgType: { + type: String, + default: "1", + }, + positionX: { + type: Int32Array, + default: 1, + }, + positionY: { + type: Int32Array, + default: 1, + }, + url: { + type: String, + default: "", + }, + condition: { + type: Boolean, + default: false, + }, + }, + data() { + return { + left: "500px", + top: "400px", + dialogVisible: false, + lineItemInfo: { + inStock: "", + taskNum: "", + alarm: "", + }, + form: { + TaskType: "", + TargetAddress: "", + DeviceCode: "", + }, + }; + }, + mounted() { + const axisX = (this.positionX - 1) * 40 + 100; + const axisY = (this.positionY - 1) + 50; + this.$nextTick(() => { + this.left = `${axisX}px`; + this.top = `${axisY}px`; + }); + }, + methods: { + mouseClick() { + this.fullscreenLoading = true; + this.dialogVisible = true; + // 澶勭悊鐐瑰嚮浜嬩欢 + this.http.post("api/DeviceInfo/GetConveyorLineInfo?DeviceChildCode=" + this.equipNo, null, "") + .then((x) => { + if (x.status) { + this.lineItemInfo = x.data; + } else { + this.$message({ + type: "error", + message: x.message, + }); + } + }); + + this.fullscreenLoading = false; + }, + + SendCommand() { + this.fullscreenLoading = true; + this.form.DeviceCode=this.equipNo; + this.http.post("api/DeviceInfo/ConveyorLineHandTask" ,this.form) + .then((x) => { + if (!x.status) { + this.$message.error(x.message); + } else { + this.$Message.success(x.message); + } + }) + .finally(() => { + this.fullscreenLoading = false; + }); + }, + ConveyorLineReset() { + this.fullscreenLoading = true; + this.http.post("api/DeviceInfo/ConveyorLineReset?DeviceChildCode=" + this.equipNo, null, "") + .then((x) => { + if (!x.status) { + this.$message.error(x.message); + } else { + this.$Message.success(x.message); + + } + }) + .finally(() => { + this.fullscreenLoading = false; + }); + }, + ConveyorLineEmergencyStop() { + this.fullscreenLoading = true; + this.http.post("api/DeviceInfo/ConveyorLineEmergencyStop?DeviceChildCode=" + this.equipNo, null, "") + .then((x) => { + if (!x.status) { + this.$message.error(x.message); + } else { + this.$Message.success(x.message); + + } + }) + .finally(() => { + this.fullscreenLoading = false; + }); + }, + ConveyorLineReturn() { + this.fullscreenLoading = true; + this.http.post("api/DeviceInfo/ConveyorLineReturn?DeviceChildCode=" + this.equipNo, null, "") + .then((x) => { + if (!x.status) { + this.$message.error(x.message); + } else { + this.$Message.success(x.message); + } + }) + .finally(() => { + this.fullscreenLoading = false; + }); + }, + ConveyorLineCancel() { + this.fullscreenLoading = true; + this.http.post("api/DeviceInfo/ConveyorLineCancel?DeviceChildCode=" + this.equipNo, null, "") + .then((x) => { + if (!x.status) { + this.$message.error(x.message); + } else { + this.$Message.success(x.message); + } + }) + .finally(() => { + this.fullscreenLoading = false; + }); + }, + ConveyorLineInitialize() { + this.fullscreenLoading = true; + this.http.post("api/DeviceInfo/ConveyorLineInitialize?DeviceChildCode=" + this.equipNo, null, "") + .then((x) => { + if (!x.status) { + this.$message.error(x.message); + } else { + this.$Message.success(x.message); + } + }) + .finally(() => { + this.fullscreenLoading = false; + }); + }, + update() { + return !this.condition ? 'custom-img' : 'custom-img-color' + }, + startTimer() { + // 寮�鍚畾鏃跺櫒锛屾瘡3绉掓墽琛屼竴娆� + this.timer1 = setInterval(() => { + update(); + }, 500); + }, + }, +}); +</script> + +<style scoped> +.custom-img { + position: relative; + display: inline-block; + /* background-color: #d9ecff ; */ +} + +.custom-img-color { + position: relative; + display: inline-block; + background-color: #05fa7f; + color: white; + text-align: center; +} + +/* .custom-img-color::before { + content: ""; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + background-color: #05fa7f; + border-radius: 50%; +} */ + +.custom-img img { + width: 40px; + height: 40px; +} + +.custom-img-color img { + width: 40px; + height: 40px; +} + +.equip-no { + position: absolute; + top: 15px; + font-size: 12px; + margin-left: -35px; +} +</style> -- Gitblit v1.9.3