From 0293d4f776f88ebc307a750f38a16454f4553701 Mon Sep 17 00:00:00 2001
From: zjh <2207896513@qq.com>
Date: 星期二, 19 八月 2025 21:01:35 +0800
Subject: [PATCH] 首检、巡检一致性前端代码提交

---
 pages/QC/XJ/Add.vue             |   19 +
 pages/QC/XJ/yzxFrom.vue         |  309 +++++++++++++++++++++++++
 static/img/bj/1738973218634.png |    0 
 manifest.json                   |    2 
 pages/QC/SJ/yzxFrom.vue         |  309 +++++++++++++++++++++++++
 pages.json                      |   26 +
 pages/QC/SJ/List.vue            |   15 +
 pages/QC/SJ/Add.vue             |   13 +
 pages/QC/XJ/List.vue            |   10 
 9 files changed, 688 insertions(+), 15 deletions(-)

diff --git a/manifest.json b/manifest.json
index 6b15b35..72d3d09 100644
--- a/manifest.json
+++ b/manifest.json
@@ -2,7 +2,7 @@
     "name" : "GS-MES-AP",
     "appid" : "__UNI__B38B152",
     "description" : "",
-    "versionName" : "1.1.2.0001",
+    "versionName" : "1.1.2.0002",
     "versionCode" : 1,
     "transformPx" : false,
     /* 5+App鐗规湁鐩稿叧 */
diff --git a/pages.json b/pages.json
index 4bd00da..c309b19 100644
--- a/pages.json
+++ b/pages.json
@@ -9,12 +9,12 @@
 				"iconPath": "static/img/home.png",
 				"selectedIconPath": "static/img/homeHL.png"
 			},
-			{
-				"pagePath": "pages/BasePages/message",
-				"text": "娑堟伅涓績",
-				"iconPath": "static/img/user.png",
-				"selectedIconPath": "static/img/userHL.png"
-			},
+			// {
+			// 	"pagePath": "pages/BasePages/message",
+			// 	"text": "娑堟伅涓績",
+			// 	"iconPath": "static/img/user.png",
+			// 	"selectedIconPath": "static/img/userHL.png"
+			// },
 			{
 				"pagePath": "pages/BasePages/user",
 				"text": "鎴戠殑",
@@ -161,6 +161,20 @@
 			}
 		},
 		{
+			"path": "pages/QC/SJ/yzxFrom",
+			"style": {
+				"navigationBarTitleText": "涓�鑷存�ф牳瀵�",
+				"enablePullDownRefresh": false
+			}
+		},
+		{
+			"path": "pages/QC/XJ/yzxFrom",
+			"style": {
+				"navigationBarTitleText": "涓�鑷存�ф牳瀵�",
+				"enablePullDownRefresh": false
+			}
+		},
+		{
 			"path": "pages/QC/LLJ/Blms",
 			"style": {
 				"navigationBarTitleText": "涓嶈壇鎻忚堪",
diff --git a/pages/QC/SJ/Add.vue b/pages/QC/SJ/Add.vue
index fdedfb1..060cb3c 100644
--- a/pages/QC/SJ/Add.vue
+++ b/pages/QC/SJ/Add.vue
@@ -130,6 +130,7 @@
     <view class="action-buttons">
       <button v-if="isUpdate && !isShowTable" class="secondary-btn" @click="save">鍒涘缓妫�楠屽崟骞剁敓鎴愰儴鍒嗛粯璁ゅ��</button>
       <button v-if="!isUpdate && !isShowTable" class="secondary-btn" @click="toImage">涓婁紶/鏌ョ湅鍥剧墖</button>
+	    <button v-if="!isUpdate && !isShowTable" class="secondary-btn" @click="toYzxSubmitFrom(formData.releaseNo)">涓�鑷存�ф牳瀵�</button>
       <button v-if="!isUpdate && !formData.statusUser && !isShowTable" class="secondary-btn" @click="removeXJ">
         鍒犻櫎鍗曟嵁
       </button>
@@ -207,7 +208,12 @@
     //options涓寘鍚簡url闄勫甫鐨勫弬鏁�
 
     let params = options;
-
+	if(params["current"]==='A')
+		{
+			this.current=true;
+		}else if(params["current"]==='B'){
+			this.current=false;
+		}
     if (params["id"]) {
       this.isUpdate = false;
       this.formData.id = params["id"];
@@ -483,6 +489,11 @@
         this.isUpdate = false;
       })
     },
+		toYzxSubmitFrom(releaseNo){
+			uni.navigateTo({
+				url: 'yzxFrom?id=' +this.formData.id+'&current='+this.current
+			});
+		},
     save() {
 
       // if (this.tableData.length === 0) {
diff --git a/pages/QC/SJ/List.vue b/pages/QC/SJ/List.vue
index 7125a48..6a25c8b 100644
--- a/pages/QC/SJ/List.vue
+++ b/pages/QC/SJ/List.vue
@@ -195,9 +195,18 @@
       this.init();
     },
     navigateToDetail(item) {
-      uni.navigateTo({
-        url: 'Add?id=' + item.id + '&billNo=' + item.billNo
-      });
+		if (this.current === 1) {
+		 uni.navigateTo({
+		   url: 'Add?id=' + item.id + '&billNo=' + item.billNo+
+							'&current=B'
+		 });
+		}else{
+			uni.navigateTo({
+			  url: 'Add?id=' + item.id + '&billNo=' + item.billNo+
+										'&current=A'
+			});
+		}
+    
     }
   },
   /**
diff --git a/pages/QC/SJ/yzxFrom.vue b/pages/QC/SJ/yzxFrom.vue
new file mode 100644
index 0000000..4b0cd2e
--- /dev/null
+++ b/pages/QC/SJ/yzxFrom.vue
@@ -0,0 +1,309 @@
+<template>
+  <view class="container">
+    <!-- 琛ㄦ牸澶撮儴 -->
+    <view class="table-header" v-if="components.length>0">
+      <view class="th name">鍏冨櫒浠跺悕绉�</view>
+      <view class="th spec">瑙勬牸</view>
+      <view class="th manufacturer">鍒堕�犲晢</view>
+	  <view class="th operation">涓婁紶鍥剧墖</view>
+      
+    </view>
+
+    <!-- 琛ㄦ牸鍐呭 -->
+    <view class="table-body" v-if="components.length>0">
+      <!-- 寰幆娓叉煋鍏冨櫒浠� -->
+      <view class="tr" v-for="(item, index) in components" :key="index">
+        <view class="td name">{{ item.name }}</view>
+        
+        <!-- 瑙勬牸鍒� -->
+       <view class="td spec"v-if="current=='true'">
+          <view v-for="(spec, sIndex) in item.specs" :key="sIndex" 
+                class="option-item" @click="selectSpec(item, sIndex)">
+            <radio :value="String(sIndex)" 
+                   :checked="item.selectedSpec === sIndex"/>
+            <text class="option-text">{{ spec }}</text>
+          </view>
+        </view>
+
+        <!-- 鍒堕�犲晢鍒� -->
+       <view class="td manufacturer" v-if="current=='true'">
+          <view v-for="(mfg, mIndex) in item.manufacturers" :key="mIndex" 
+                class="option-item" @click="selectMfg(item, mIndex)">
+            <radio :value="String(mIndex)" 
+                   :checked="item.selectedMfg === mIndex"/>
+            <text class="option-text">{{ mfg }}</text>
+          </view>
+        </view>
+		
+		<view class="td operation" v-if="current=='true'">
+		   <button class="secondary-btn" @click="uploadImages(item.id)">涓婁紶/鏌ョ湅鍥剧墖</button>
+		</view>
+ 
+ <!-- 瑙勬牸鍒� -->
+ <view class="td spec" v-if="current!='true'">
+   <view v-for="(spec, sIndex) in item.specs" :key="sIndex" 
+         class="option-item">
+     <radio :value="String(sIndex)" 
+            :checked="item.selectedSpec === sIndex"
+			:disabled="true"/>
+     <text class="option-text">{{ spec }}</text>
+   </view>
+ </view>
+ 
+ <!-- 鍒堕�犲晢鍒� -->
+ <view class="td manufacturer" v-if="current!='true'">
+   <view v-for="(mfg, mIndex) in item.manufacturers" :key="mIndex" 
+         class="option-item">
+     <radio :value="String(mIndex)" 
+            :checked="item.selectedMfg === mIndex"
+			:disabled="true"/>
+     <text class="option-text">{{ mfg }}</text>
+   </view>
+ </view>
+ <view class="td operation" v-if="current!='true'">
+    <button class="secondary-btn" @click="uploadImages(item.id)">涓婁紶/鏌ョ湅鍥剧墖</button>
+ </view>
+ 
+ 
+      </view>
+    </view>
+
+    <!-- 鎻愪氦鎸夐挳 -->
+    <view class="submit-container" v-if="components.length>0">
+      <button v-if="this.current=='true'" class="primary-btn" 
+              :disabled="isSubmitting" 
+              @tap="handleSubmit">
+        {{ isSubmitting ? '鎻愪氦涓�...' : '淇濆瓨娓呭崟' }}
+      </button>
+	  <!-- <button class="secondary-btn" @click="uploadImages">涓婁紶/鏌ョ湅鍥剧墖</button> -->
+    </view>
+	<view class="submit-container" v-if="components.length==0">
+	  <h1>娓╅Θ鎻愮ず锛�</h1>
+	   <h1>璇ョ墿鏂欐病鏈夌淮鎶や竴鑷存�ф牳瀵归」鐩紝璇峰厛缁存姢锛�</h1>
+	</view>
+  </view>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      isSubmitting: false,
+	  formid:0,
+      components: [],
+	  current:'false'
+    }
+  },
+  methods: {
+    selectSpec(item, index) {
+      if (this.isSubmitting) return
+      item.selectedSpec = index
+      if (index < item.manufacturers.length) {
+        item.selectedMfg = index
+      }
+    },
+    selectMfg(item, index) {
+      if (this.isSubmitting) return
+      item.selectedMfg = index
+      if (index < item.specs.length) {
+        item.selectedSpec = index
+      }
+    },
+	uploadImages(id) {
+	  // 涓婁紶/鏌ョ湅鍥剧墖鐨勯�昏緫
+	 uni.navigateTo({
+	 	url: 'ImageItem?id=999' + id.sort()[0]
+	 });
+	},
+    async handleSubmit() {
+      if (this.isSubmitting) return
+      
+      try {
+        this.isSubmitting = true
+        
+        // 琛ㄥ崟楠岃瘉
+        const validation = this.validateForm()
+        if (!validation.valid) {
+          uni.showToast({
+            title: validation.msg,
+            icon: 'none',
+            duration: 2000
+          })
+          return
+        }
+
+        // 鑾峰彇鎻愪氦鏁版嵁
+        const submitData = this.components.map(item => ({
+          name: item.name,
+          spec: item.specs[item.selectedSpec],
+          manufacturer: item.manufacturers[item.selectedMfg],
+		  id: item.id[item.selectedMfg]
+        }))
+
+        // 瀹為檯鎻愪氦鏃跺彲鍙栨秷娉ㄩ噴浠ヤ笅浠g爜
+        // const res = await uni.request({
+        //   url: 'your_api_url',
+        //   method: 'POST',
+        //   data: submitData
+        // })
+		this.$post({
+			url: "/SJ/saveYzxItem",
+			data: {
+				id:this.formid,
+				data: submitData
+			}
+		}).then(res => {
+			if(res.status==0){
+				uni.showToast({
+				  title: '淇濆瓨鎴愬姛',
+				  icon: 'success',
+				  duration: 2000
+				})
+			}else{
+				uni.showModal({
+					title: "鎻愮ず",
+					content: res.message,
+					confirmText: "纭畾",
+					showCancel: false,
+					success: (res) => {
+						
+					}
+				})
+			}
+		}).catch(() => {
+			this.isLoading = false; // 鍑虹幇閿欒鏃剁粨鏉熷姞杞�
+		});
+
+      
+        
+      } finally {
+        this.isSubmitting = false
+      }
+    },
+    validateForm() {
+      // for (const item of this.components) {
+      //   if (item.selectedSpec === -1 || item.selectedMfg === -1) {
+      //     return {
+      //       valid: false,
+      //       msg: `${item.name} 鏈畬鎴愰�夋嫨`
+      //     }
+      //   }
+      // }
+      return { valid: true }
+    },
+			onLoad(options) {
+				//options涓寘鍚簡url闄勫甫鐨勫弬鏁�
+				let params = options;
+				this.formid = params["id"];
+				this.current=params["current"];
+				 
+				//椤甸潰鍔犺浇鏃惰皟鐢ㄧ殑浜嬩欢
+				this.$post({
+					url: "/SJ/getYzxItem",
+					data: {
+						id:this.formid
+					}
+				}).then(res => {
+					console.log(res);
+					this.components=res.data
+				}).catch(() => {
+					this.isLoading = false; // 鍑虹幇閿欒鏃剁粨鏉熷姞杞�
+				});
+			},
+  }
+}
+</script>
+
+<style scoped>
+.container {
+  padding: 20rpx;
+  background-color: #f5f5f5;
+  min-height: 100vh;
+}
+
+/* 琛ㄦ牸鏍峰紡 */
+.table-header, .tr {
+  display: flex;
+  border-bottom: 1rpx solid #eee;
+  background-color: #fff;
+}
+
+.th, .td {
+  padding: 20rpx;
+  border-right: 1rpx solid #eee;
+}
+
+.th {
+  background-color: #f8f9fa;
+  font-weight: bold;
+  color: #333;
+}
+
+.name { width: 20%; }
+.spec { width: 30%; }
+.manufacturer { width: 30%; }
+.operation { width: 20%; }
+
+/* 閫夐」鏍峰紡 */
+.option-item {
+  display: flex;
+  align-items: center;
+  padding: 20rpx 0;
+  min-height: 80rpx;
+}
+
+radio {
+  transform: scale(0.9);
+  margin-right: 15rpx;
+}
+
+.option-text {
+  flex: 1;
+  font-size: 28rpx;
+  color: #444;
+}
+
+.primary-btn, .secondary-btn {
+  padding: 10px 20px;
+  border: none;
+  border-radius: 4px;
+  font-size: 14px;
+  cursor: pointer;
+  transition: all 0.3s;
+}
+
+.primary-btn {
+  background-color: #3498db;
+  color: white;
+}
+
+.primary-btn:hover {
+  background-color: #2980b9;
+}
+
+/* 鎻愪氦鎸夐挳鏍峰紡 */
+.submit-container {
+  /* margin: 40rpx 20rpx; */
+  padding: 20rpx 0;
+  background-color: #fff;
+  /* border-radius: 16rpx; */
+}
+
+
+/* 鍝嶅簲寮忛�傞厤 */
+@media (max-width: 768px) {
+  .th, .td {
+    padding: 16rpx;
+    font-size: 26rpx;
+  }
+  
+  .option-text {
+    font-size: 26rpx;
+  }
+
+  .submit-btn {
+    width: 95%;
+    font-size: 28rpx;
+  }
+}
+</style>
\ No newline at end of file
diff --git a/pages/QC/XJ/Add.vue b/pages/QC/XJ/Add.vue
index 6190db1..02dfc45 100644
--- a/pages/QC/XJ/Add.vue
+++ b/pages/QC/XJ/Add.vue
@@ -137,6 +137,10 @@
     <!-- 鎿嶄綔鎸夐挳鍖� -->
     <view class="action-buttons">
       <button v-if="isUpdate && !isShowTable" class="secondary-btn" @click="getItem">鍒涘缓妫�楠屽崟骞剁敓鎴愰儴鍒嗛粯璁ゅ��</button>
+	  
+	    <!-- <button class="secondary-btn" @click="toYzxSubmitFrom(formData.releaseNo)">涓�鑷存�ф牳瀵�</button> -->
+	  
+	   <button v-if="!isUpdate && !isShowTable" class="secondary-btn" @click="toYzxSubmitFrom(formData.releaseNo)">涓�鑷存�ф牳瀵�</button>
       <button v-if="!isUpdate && !isShowTable" class="secondary-btn" @click="toImage">涓婁紶/鏌ョ湅鍥剧墖</button>
       <button v-if="!isUpdate && !formData.fsubmit && !isShowTable" class="secondary-btn" @click="removeXJ">
         鍒犻櫎鍗曟嵁
@@ -216,9 +220,14 @@
   },
   onLoad(options) {
     //options涓寘鍚簡url闄勫甫鐨勫弬鏁�
-
+	
     let params = options;
-
+if(params["current"]==='A')
+		{
+			this.current=true;
+		}else if(params["current"]==='B'){
+			this.current=false;
+		}
     if (params["id"]) {
       this.isUpdate = false;
       this.formData.id = params["id"];
@@ -427,7 +436,11 @@
           }
         });
       });
-    },
+    },	toYzxSubmitFrom(releaseNo){
+		uni.navigateTo({
+			url: 'yzxFrom?id=' +this.formData.id+'&current='+this.current
+		});
+	},
     init() {
       this.$post({
         url: "/XJ/getPage",
diff --git a/pages/QC/XJ/List.vue b/pages/QC/XJ/List.vue
index 4a165a2..76c110a 100644
--- a/pages/QC/XJ/List.vue
+++ b/pages/QC/XJ/List.vue
@@ -181,9 +181,17 @@
       }
     },
     navigateToDetail(item) {
+		if (this.current === 1) {
       uni.navigateTo({
-        url: 'Add?id=' + item.id + '&releaseNo=' + item.releaseNo
+        url: 'Add?id=' + item.id + '&releaseNo=' + item.releaseNo+
+							'&current=B'
       });
+	  }else{
+		  uni.navigateTo({
+		    url: 'Add?id=' + item.id + '&releaseNo=' + item.releaseNo+
+		  							'&current=A'
+		  });
+	  }
     }
   },
   /**
diff --git a/pages/QC/XJ/yzxFrom.vue b/pages/QC/XJ/yzxFrom.vue
new file mode 100644
index 0000000..a2c8c89
--- /dev/null
+++ b/pages/QC/XJ/yzxFrom.vue
@@ -0,0 +1,309 @@
+<template>
+  <view class="container">
+    <!-- 琛ㄦ牸澶撮儴 -->
+    <view class="table-header" v-if="components.length>0">
+      <view class="th name">鍏冨櫒浠跺悕绉�</view>
+      <view class="th spec">瑙勬牸</view>
+      <view class="th manufacturer">鍒堕�犲晢</view>
+	  <view class="th operation">涓婁紶鍥剧墖</view>
+      
+    </view>
+
+    <!-- 琛ㄦ牸鍐呭 -->
+    <view class="table-body" v-if="components.length>0">
+      <!-- 寰幆娓叉煋鍏冨櫒浠� -->
+      <view class="tr" v-for="(item, index) in components" :key="index">
+        <view class="td name">{{ item.name }}</view>
+        
+        <!-- 瑙勬牸鍒� -->
+       <view class="td spec"v-if="current=='true'">
+          <view v-for="(spec, sIndex) in item.specs" :key="sIndex" 
+                class="option-item" @click="selectSpec(item, sIndex)">
+            <radio :value="String(sIndex)" 
+                   :checked="item.selectedSpec === sIndex"/>
+            <text class="option-text">{{ spec }}</text>
+          </view>
+        </view>
+
+        <!-- 鍒堕�犲晢鍒� -->
+       <view class="td manufacturer" v-if="current=='true'">
+          <view v-for="(mfg, mIndex) in item.manufacturers" :key="mIndex" 
+                class="option-item" @click="selectMfg(item, mIndex)">
+            <radio :value="String(mIndex)" 
+                   :checked="item.selectedMfg === mIndex"/>
+            <text class="option-text">{{ mfg }}</text>
+          </view>
+        </view>
+		
+		<view class="td operation" v-if="current=='true'">
+		   <button class="secondary-btn" @click="uploadImages(item.id)">涓婁紶/鏌ョ湅鍥剧墖</button>
+		</view>
+ 
+ <!-- 瑙勬牸鍒� -->
+ <view class="td spec" v-if="current!='true'">
+   <view v-for="(spec, sIndex) in item.specs" :key="sIndex" 
+         class="option-item">
+     <radio :value="String(sIndex)" 
+            :checked="item.selectedSpec === sIndex"
+			:disabled="true"/>
+     <text class="option-text">{{ spec }}</text>
+   </view>
+ </view>
+ 
+ <!-- 鍒堕�犲晢鍒� -->
+ <view class="td manufacturer" v-if="current!='true'">
+   <view v-for="(mfg, mIndex) in item.manufacturers" :key="mIndex" 
+         class="option-item">
+     <radio :value="String(mIndex)" 
+            :checked="item.selectedMfg === mIndex"
+			:disabled="true"/>
+     <text class="option-text">{{ mfg }}</text>
+   </view>
+ </view>
+ <view class="td operation" v-if="current!='true'">
+    <button class="secondary-btn" @click="uploadImages(item.id)">涓婁紶/鏌ョ湅鍥剧墖</button>
+ </view>
+ 
+ 
+      </view>
+    </view>
+
+    <!-- 鎻愪氦鎸夐挳 -->
+    <view class="submit-container" v-if="components.length>0">
+      <button v-if="this.current=='true'" class="primary-btn" 
+              :disabled="isSubmitting" 
+              @tap="handleSubmit">
+        {{ isSubmitting ? '鎻愪氦涓�...' : '淇濆瓨娓呭崟' }}
+      </button>
+	  <!-- <button class="secondary-btn" @click="uploadImages">涓婁紶/鏌ョ湅鍥剧墖</button> -->
+    </view>
+	<view class="submit-container" v-if="components.length==0">
+	  <h1>娓╅Θ鎻愮ず锛�</h1>
+	   <h1>璇ョ墿鏂欐病鏈夌淮鎶や竴鑷存�ф牳瀵归」鐩紝璇峰厛缁存姢锛�</h1>
+	</view>
+  </view>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      isSubmitting: false,
+	  formid:0,
+      components: [],
+	  current:'false'
+    }
+  },
+  methods: {
+    selectSpec(item, index) {
+      if (this.isSubmitting) return
+      item.selectedSpec = index
+      if (index < item.manufacturers.length) {
+        item.selectedMfg = index
+      }
+    },
+    selectMfg(item, index) {
+      if (this.isSubmitting) return
+      item.selectedMfg = index
+      if (index < item.specs.length) {
+        item.selectedSpec = index
+      }
+    },
+	uploadImages(id) {
+	  // 涓婁紶/鏌ョ湅鍥剧墖鐨勯�昏緫
+	 uni.navigateTo({
+	 	url: 'ImageItem?id=777' + id.sort()[0]
+	 });
+	},
+    async handleSubmit() {
+      if (this.isSubmitting) return
+      
+      try {
+        this.isSubmitting = true
+        
+        // 琛ㄥ崟楠岃瘉
+        const validation = this.validateForm()
+        if (!validation.valid) {
+          uni.showToast({
+            title: validation.msg,
+            icon: 'none',
+            duration: 2000
+          })
+          return
+        }
+
+        // 鑾峰彇鎻愪氦鏁版嵁
+        const submitData = this.components.map(item => ({
+          name: item.name,
+          spec: item.specs[item.selectedSpec],
+          manufacturer: item.manufacturers[item.selectedMfg],
+		  id: item.id[item.selectedMfg]
+        }))
+
+        // 瀹為檯鎻愪氦鏃跺彲鍙栨秷娉ㄩ噴浠ヤ笅浠g爜
+        // const res = await uni.request({
+        //   url: 'your_api_url',
+        //   method: 'POST',
+        //   data: submitData
+        // })
+		this.$post({
+			url: "/XJ/saveYzxItem",
+			data: {
+				id:this.formid,
+				data: submitData
+			}
+		}).then(res => {
+			if(res.status==0){
+				uni.showToast({
+				  title: '淇濆瓨鎴愬姛',
+				  icon: 'success',
+				  duration: 2000
+				})
+			}else{
+				uni.showModal({
+					title: "鎻愮ず",
+					content: res.message,
+					confirmText: "纭畾",
+					showCancel: false,
+					success: (res) => {
+						
+					}
+				})
+			}
+		}).catch(() => {
+			this.isLoading = false; // 鍑虹幇閿欒鏃剁粨鏉熷姞杞�
+		});
+
+      
+        
+      } finally {
+        this.isSubmitting = false
+      }
+    },
+    validateForm() {
+      // for (const item of this.components) {
+      //   if (item.selectedSpec === -1 || item.selectedMfg === -1) {
+      //     return {
+      //       valid: false,
+      //       msg: `${item.name} 鏈畬鎴愰�夋嫨`
+      //     }
+      //   }
+      // }
+      return { valid: true }
+    },
+			onLoad(options) {
+				//options涓寘鍚簡url闄勫甫鐨勫弬鏁�
+				let params = options;
+				this.formid = params["id"];
+				this.current=params["current"];
+				 
+				//椤甸潰鍔犺浇鏃惰皟鐢ㄧ殑浜嬩欢
+				this.$post({
+					url: "/XJ/getYzxItem",
+					data: {
+						id:this.formid
+					}
+				}).then(res => {
+					console.log(res);
+					this.components=res.data
+				}).catch(() => {
+					this.isLoading = false; // 鍑虹幇閿欒鏃剁粨鏉熷姞杞�
+				});
+			},
+  }
+}
+</script>
+
+<style scoped>
+.container {
+  padding: 20rpx;
+  background-color: #f5f5f5;
+  min-height: 100vh;
+}
+
+/* 琛ㄦ牸鏍峰紡 */
+.table-header, .tr {
+  display: flex;
+  border-bottom: 1rpx solid #eee;
+  background-color: #fff;
+}
+
+.th, .td {
+  padding: 20rpx;
+  border-right: 1rpx solid #eee;
+}
+
+.th {
+  background-color: #f8f9fa;
+  font-weight: bold;
+  color: #333;
+}
+
+.name { width: 20%; }
+.spec { width: 30%; }
+.manufacturer { width: 30%; }
+.operation { width: 20%; }
+
+/* 閫夐」鏍峰紡 */
+.option-item {
+  display: flex;
+  align-items: center;
+  padding: 20rpx 0;
+  min-height: 80rpx;
+}
+
+radio {
+  transform: scale(0.9);
+  margin-right: 15rpx;
+}
+
+.option-text {
+  flex: 1;
+  font-size: 28rpx;
+  color: #444;
+}
+
+.primary-btn, .secondary-btn {
+  padding: 10px 20px;
+  border: none;
+  border-radius: 4px;
+  font-size: 14px;
+  cursor: pointer;
+  transition: all 0.3s;
+}
+
+.primary-btn {
+  background-color: #3498db;
+  color: white;
+}
+
+.primary-btn:hover {
+  background-color: #2980b9;
+}
+
+/* 鎻愪氦鎸夐挳鏍峰紡 */
+.submit-container {
+  /* margin: 40rpx 20rpx; */
+  padding: 20rpx 0;
+  background-color: #fff;
+  /* border-radius: 16rpx; */
+}
+
+
+/* 鍝嶅簲寮忛�傞厤 */
+@media (max-width: 768px) {
+  .th, .td {
+    padding: 16rpx;
+    font-size: 26rpx;
+  }
+  
+  .option-text {
+    font-size: 26rpx;
+  }
+
+  .submit-btn {
+    width: 95%;
+    font-size: 28rpx;
+  }
+}
+</style>
\ No newline at end of file
diff --git a/static/img/bj/1738973218634.png b/static/img/bj/1738973218634.png
new file mode 100644
index 0000000..16d08ed
--- /dev/null
+++ b/static/img/bj/1738973218634.png
Binary files differ

--
Gitblit v1.9.3