Browse Source

feature/ 消息确认接口联调&&呼叫页面功能实现

dy 11 months ago
parent
commit
2cbc35d4c4

+ 9 - 0
src/api/user/index.ts

@@ -147,3 +147,12 @@ export function userMessage(data: any) {
     data,
   });
 }
+
+//实时消息确认
+export function readMessage(data: any) {
+  return request({
+    url: "/api/v1/sys/message/readMessage",
+    method: "post",
+    data,
+  });
+}

+ 9 - 1
src/components/RealTimeMsg/index.vue

@@ -10,7 +10,7 @@
             <div>{{ item.content }}</div>
           </div>
           <div class="btns">
-            <el-button type="primary" class="btn">收到</el-button>
+            <el-button type="primary" class="btn" @click="submit(item, index)">收到</el-button>
           </div>
         </div>
         <div class="describeText">
@@ -28,6 +28,7 @@
 
 <script setup lang="ts">
 import { useDictionaryStore } from "@/store";
+import { readMessage } from "@/api/user";
 const dictS = useDictionaryStore();
 const porps = defineProps({
   modelValue: {
@@ -40,6 +41,13 @@ const showStatus = ref(true);
 const messages = ref([]);
 const page = ref(1);
 const emits = defineEmits(["update:modelValue"]);
+const submit = async (item, index) => {
+  const { data, code } = await readMessage([item.id]);
+  if (code == "200") {
+    messages.value.splice(index, 1);
+    ElMessage.success("操作成功!");
+  }
+};
 //连接地址
 const ws = new WebSocket(
   `ws://192.168.101.4:8079/websocket/${localStorage.getItem("token")}`

+ 45 - 12
src/views/process/popUpView/operatePop.vue

@@ -1,11 +1,22 @@
 <template>
   <div class="midPopUp" @click="emits('update:modelValue', false)" v-if="modelValue">
     <div class="container" @click.stop>
-      <div :class="lcDisabled ? 'operatorBox disableOp' : 'operatorBox'" @click="lastOpCall">
-        <div>
-          <div class="titleText">流程叫料</div>
-          <div class="describeText">(向上一流程工序呼叫流程物料)</div>
-        </div>
+      <div :class="lcDisabled ? 'operatorBox disableOp' : 'operatorBox'" @click="lastOpCall"
+        :style="lcRes ? 'background-color: white !important;' : ''">
+        <transition>
+          <div v-if="!lcRes">
+            <div class="titleText">流程叫料</div>
+            <div class="describeText">(向上一流程工序呼叫流程物料)</div>
+          </div>
+          <div v-else>
+            <el-progress type="circle" :percentage="100" status="success">
+              <template #default>
+                <div class="percentage-label">叫料成功</div>
+                <div class="percentage-label">请等待{{ time }}秒后再试</div>
+              </template>
+            </el-progress>
+          </div>
+        </transition>
       </div>
 
       <div :class="gxDisabled ? 'operatorBox disableOp' : 'operatorBox'" @click="opeateCall">
@@ -24,6 +35,8 @@ import { emitter, EventsNames } from "@/utils/common";
 import { callItems } from "@/api/process";
 const store = useProcessStore();
 const router = useRouter();
+const lcRes = ref(false);
+const time = ref(10);
 const props = defineProps({
   modelValue: {
     type: Boolean,
@@ -41,14 +54,28 @@ const opeateCall = () => {
   emits("update:modelValue", false);
 };
 const callLast = async () => {
-  const { data } = await callItems({
-    operationId,
-    seqNo,
+  const { data, code } = await callItems({
+    operationId: store.odersData.operationId,
+    seqNo: store.useSeqNo,
   });
+  if (code == "200") {
+    lcRes.value = true;
+    const intervalID = setInterval(() => {
+      if (time.value > 0) {
+        time.value = time.value - 1;
+      }
+    }, 1000);
+    setTimeout(() => {
+      clearInterval(intervalID);
+      lcRes.value = false;
+      time.value = 10;
+    }, 10000);
+  }
 };
 //流程叫料
 const lastOpCall = () => {
-  if (lcDisabled.value) return;
+  if (lcDisabled.value || lcRes.value) return;
+  callLast();
 };
 //监听工序index等
 emitter.on(EventsNames.PROCESS_STEPOBJ, (data: any) => {
@@ -66,9 +93,15 @@ emitter.on(EventsNames.PROCESS_STEPOBJ, (data: any) => {
 });
 watch(
   () => props.modelValue,
-  () => {
-    if (store.useSeqNo == "") {
-      lcDisabled.value = true;
+  (val) => {
+    if (val == true) {
+      if (lcDisabled.value == false) {
+        if (store.useSeqNo == "") {
+          lcDisabled.value = true;
+        } else {
+          lcDisabled.value = false;
+        }
+      }
     }
   }
 );