From a9561a3189d50f0e33d693b5226ea56adda06a08 Mon Sep 17 00:00:00 2001
From: yyb <995253665@qq.com>
Date: 星期四, 30 十月 2025 23:07:25 +0800
Subject: [PATCH] 巡检编辑和扫码

---
 src/pages/routingInspection/product_card/index.vue |  235 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 235 insertions(+), 0 deletions(-)

diff --git a/src/pages/routingInspection/product_card/index.vue b/src/pages/routingInspection/product_card/index.vue
new file mode 100644
index 0000000..9316cbc
--- /dev/null
+++ b/src/pages/routingInspection/product_card/index.vue
@@ -0,0 +1,235 @@
+<template>
+  <wd-card class="card_bg" @click="handleCardClick">
+    <template #title>
+      <view class="flex justify-between w-full">
+        <text class="font-medium text-[#252525]">鏈哄彴: {{ data[map.deviceModel] }}</text>
+        <wd-tag color="#0D867F" bg-color="#E7F4EC">
+          <text class="text-xs">{{ data[map.model] }}</text>
+        </wd-tag>
+      </view>
+    </template>
+    <wd-row class="my-2">
+      <wd-col :span="24">
+        <view class="flex">
+          <view class="icon_box">
+            <wd-icon name="folder" color="#0D867F"></wd-icon>
+          </view>
+          <text class="text-[#646874] mx-2">
+            棣栨鍗曞彿:
+            <text class="text-[#252525]">{{ data[map.firstNo] }}</text>
+          </text>
+        </view>
+      </wd-col>
+    </wd-row>
+    <wd-row class="my-2">
+      <wd-col :span="24">
+        <view class="flex">
+          <view class="icon_box">
+            <wd-icon name="folder" color="#0D867F"></wd-icon>
+          </view>
+          <text class="text-[#646874] mx-2">
+            鐝:
+            <text class="text-[#252525]">{{ data[map.workShift] }}</text>
+          </text>
+        </view>
+      </wd-col>
+    </wd-row>
+    <wd-row class="my-2">
+      <wd-col :span="24">
+        <view class="flex">
+          <view class="icon_box">
+            <wd-icon name="folder" color="#0D867F"></wd-icon>
+          </view>
+          <text class="text-[#646874] mx-2">
+            鐝粍:
+            <text class="text-[#252525]">{{ data[map.teamName] }}</text>
+          </text>
+        </view>
+      </wd-col>
+    </wd-row>
+    <wd-row class="my-2">
+      <wd-col :span="24">
+        <view class="flex">
+          <view class="icon_box">
+            <wd-icon name="folder" color="#0D867F"></wd-icon>
+          </view>
+          <text class="text-[#646874] mx-2">
+            棰嗙敤鏉嗗彿:
+            <text class="text-[#252525]">{{ data[map.poleNumber] }}</text>
+          </text>
+        </view>
+      </wd-col>
+    </wd-row>
+    <wd-col :span="12">
+      <view class="flex">
+        <view class="icon_box">
+          <wd-icon name="folder" color="#0D867F"></wd-icon>
+        </view>
+        <text class="text-[#646874] mx-2">
+          鏉嗗瀷鍙�:
+          <text class="text-[#252525]">{{ data[map.poleModel] }}</text>
+        </text>
+      </view>
+    </wd-col>
+    <wd-row class="my-2">
+      <wd-col :span="12">
+        <view class="flex">
+          <view class="icon_box">
+            <wd-icon name="folder" color="#0D867F"></wd-icon>
+          </view>
+          <text class="text-[#646874] mx-2">
+            鐢熶骇杞存暟:
+            <text class="text-[#252525]">{{ data[map.outputNumber] }}</text>
+          </text>
+        </view>
+      </wd-col>
+    </wd-row>
+    <wd-row class="my-2">
+      <wd-col :span="12">
+        <view class="flex">
+          <view class="icon_box">
+            <wd-icon name="folder" color="#0D867F"></wd-icon>
+          </view>
+          <text class="text-[#646874] mx-2">
+            鑷浜�:
+            <text class="text-[#252525]">{{ data[map.inspectPerson] }}</text>
+          </text>
+        </view>
+      </wd-col>
+      <wd-col :span="12">
+        <view class="flex">
+          <view class="icon_box">
+            <wd-icon name="folder" color="#0D867F"></wd-icon>
+          </view>
+          <text class="text-[#646874] mx-2">
+            鐘舵��:
+            <text class="text-[#252525]">{{ data[map.status] == 1 ? "琚┏鍥�" : "宸℃" }}</text>
+          </text>
+        </view>
+      </wd-col>
+    </wd-row>
+    <wd-row class="my-2">
+      <wd-col :span="16">
+        <view class="flex">
+          <view class="icon_box">
+            <wd-icon name="folder" color="#0D867F"></wd-icon>
+          </view>
+          <text class="text-[#646874] mx-2">
+            璁板綍鏃堕棿:
+            <text class="text-[#252525]">{{ data[map.recordDate] }}</text>
+          </text>
+        </view>
+      </wd-col>
+      <wd-col :span="8">
+        <view class="flex">
+          <wd-button
+            v-if="data[map.status] == 1"
+            size="small"
+            type="primary"
+            @click.stop="showRejectPopup = true"
+            style="margin-left: auto"
+          >
+            鏌ョ湅椹冲洖淇℃伅
+          </wd-button>
+        </view>
+      </wd-col>
+    </wd-row>
+  </wd-card>
+  <wd-popup
+    v-model="showRejectPopup"
+    title="椹冲洖淇℃伅"
+    custom-style="border-radius:32rpx;height: 800rpx;width: 600rpx;"
+  >
+    <wd-card
+      v-for="(item, index) in data.rejectList"
+      :key="index"
+      :class="index % 2 === 0 ? 'reject-card-bg-1' : 'reject-card-bg-2'"
+      style="margin-bottom: 8px; padding: 10px; border-radius: 8px"
+    >
+      <view class="content">
+        <view>
+          <view
+            style="
+              display: flex;
+              justify-content: space-between;
+              align-items: center;
+              color: rgba(0, 0, 0, 0.85);
+              font-size: 14px;
+              margin-bottom: 8px;
+            "
+          >
+            <view>{{ item.rejectPerson }}</view>
+            <view>{{ item.rejectTime }}</view>
+          </view>
+          <view
+            style="
+              color: rgba(0, 0, 0, 0.85);
+              font-size: 14px;
+              word-break: break-word;
+              overflow-wrap: break-word;
+              max-width: 100%;
+              padding: 5px 0;
+            "
+          >
+            {{ item.rejectReason.reason }}
+          </view>
+        </view>
+      </view>
+    </wd-card>
+  </wd-popup>
+</template>
+
+<script setup lang="ts">
+import { ref } from "vue";
+const emit = defineEmits(["click"]);
+defineProps({
+  data: {
+    type: Object,
+    default: () => {},
+  },
+  map: {
+    type: Object,
+    default: () => {},
+  },
+});
+const showRejectPopup = ref<boolean>(false);
+const handleCardClick = () => {
+  emit("click");
+};
+</script>
+
+<style lang="scss" scoped>
+.card_bg {
+  box-shadow: 0px 0px 12px 0px rgba(0, 0, 0, 0.05);
+  padding-bottom: 10px;
+}
+
+// 娣诲姞锛氫袱绉嶄笉鍚岀殑鑳屾櫙鑹叉牱寮�
+.reject-card-bg-1 {
+  background-color: #f5f7fa;
+}
+
+.reject-card-bg-2 {
+  background-color: #eef2f7;
+}
+
+.page-class {
+  :deep() {
+    .custom-shadow {
+      box-shadow: 0 3px 1px -2px rgb(0 0 0 / 20%), 0 2px 2px 0 rgb(0 0 0 / 14%),
+        0 1px 5px 0 rgb(0 0 0 / 12%);
+    }
+  }
+}
+
+.header {
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+}
+
+// 淇敼锛氳皟鏁村唴瀹瑰尯鍩熺殑鏍峰紡
+.content {
+  padding: 5px;
+}
+</style>
\ No newline at end of file

--
Gitblit v1.9.3