From 07f464a5ca04788d38086803433b979ae58ff4b0 Mon Sep 17 00:00:00 2001
From: yaowanxin <3588231647@qq.com>
Date: 星期五, 26 十二月 2025 13:32:07 +0800
Subject: [PATCH] 统一输入框模糊查询,黑名单,添加资质管理字段,可上传资质文件

---
 src/views/procurementManagement/procurementLedger/index.vue |   89 +++++++++++++++++++++++++++++++++-----------
 1 files changed, 66 insertions(+), 23 deletions(-)

diff --git a/src/views/procurementManagement/procurementLedger/index.vue b/src/views/procurementManagement/procurementLedger/index.vue
index b93ed18..f6f2fce 100644
--- a/src/views/procurementManagement/procurementLedger/index.vue
+++ b/src/views/procurementManagement/procurementLedger/index.vue
@@ -54,6 +54,7 @@
         :summary-method="summarizeMainTable"
         @expand-change="expandChange"
         height="calc(100vh - 18.5em)"
+        :row-class-name="tableRowClassName"
       >
         <el-table-column align="center" type="selection" width="55" />
         <el-table-column type="expand">
@@ -112,6 +113,12 @@
           prop="supplierName"
           show-overflow-tooltip
         />
+        <el-table-column label="鐘舵��" width="100" align="center">
+          <template #default="scope">
+            <el-tag v-if="scope.row.isInvalid" type="danger" size="small">澶辨晥</el-tag>
+            <el-tag v-else type="success" size="small">姝e父</el-tag>
+          </template>
+        </el-table-column>
         <el-table-column
           label="椤圭洰鍚嶇О"
           prop="projectName"
@@ -155,7 +162,6 @@
               type="primary"
               size="small"
               @click="openForm('edit', scope.row)"
-							:disabled="scope.row.receiptPaymentAmount>0 || scope.row.recorderName !== userStore.nickName"
               >缂栬緫</el-button
             >
             <el-button
@@ -226,6 +232,8 @@
                 v-model="form.supplierId"
                 placeholder="璇烽�夋嫨"
                 clearable
+                filterable
+                allow-create
               >
                 <el-option
                   v-for="item in supplierList"
@@ -246,6 +254,30 @@
             </el-form-item>
           </el-col>
         </el-row>
+				<el-row :gutter="30">
+					<el-col :span="12">
+						<el-form-item label="浠樻鏂瑰紡">
+							<el-input
+								v-model="form.paymentMethod"
+								placeholder="璇疯緭鍏�"
+								clearable
+							/>
+						</el-form-item>
+					</el-col>
+					<el-col :span="12">
+						<el-form-item label="绛捐鏃ユ湡锛�" prop="executionDate">
+							<el-date-picker
+								style="width: 100%"
+								v-model="form.executionDate"
+								value-format="YYYY-MM-DD"
+								format="YYYY-MM-DD"
+								type="date"
+								placeholder="璇烽�夋嫨"
+								clearable
+							/>
+						</el-form-item>
+					</el-col>
+				</el-row>
         <el-row :gutter="30">
           <el-col :span="12">
             <el-form-item label="褰曞叆浜猴細" prop="recorderId">
@@ -273,17 +305,6 @@
                 format="YYYY-MM-DD"
                 type="date"
                 placeholder="璇烽�夋嫨"
-                clearable
-              />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="30">
-          <el-col :span="12">
-            <el-form-item label="浠樻鏂瑰紡">
-              <el-input
-                v-model="form.paymentMethod"
-                placeholder="璇疯緭鍏�"
                 clearable
               />
             </el-form-item>
@@ -853,6 +874,7 @@
     supplierName: "",
     supplierId: "",
     paymentMethod: "",
+		executionDate: "",
   },
   rules: {
     purchaseContractNumber: [
@@ -860,6 +882,8 @@
     ],
     projectName: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
     supplierId: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+		entryDate: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
+		executionDate: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
   },
 });
 const {  form, rules } = toRefs(data);
@@ -894,7 +918,7 @@
       { required: true, message: "璇疯緭鍏�", trigger: "blur" },
     ],
     taxRate: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
-		warnNum: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
+		warnNum: [{ required: false, message: "璇烽�夋嫨", trigger: "change" }],
     taxInclusiveTotalPrice: [
       { required: true, message: "璇疯緭鍏�", trigger: "blur" },
     ],
@@ -962,7 +986,12 @@
   purchaseListPage({ ...rest, ...page })
     .then((res) => {
       tableLoading.value = false;
-      tableData.value = res.data.records;
+      // tableData.value = res.data.records;
+      // 澶勭悊鏁版嵁锛屾坊鍔犲け鏁堢姸鎬佹爣璁�
+      tableData.value = res.data.records.map(record => ({
+        ...record,
+        isInvalid: record.isWhite === 1
+      }));
       tableData.value.map((item) => {
         item.children = [];
       });
@@ -1030,7 +1059,8 @@
     salesContractList.value = res;
   });
   getOptions().then((res) => {
-    supplierList.value = res.data;
+    // 渚涘簲鍟嗚繃婊ゅ嚭isWhite=0 鐨勬暟鎹�
+    supplierList.value = res.data.filter((item) => item.isWhite == 0);
   });
   form.value.recorderId = userStore.id;
   form.value.entryDate = getCurrentDate();
@@ -1136,10 +1166,15 @@
   });
 };
 const getModels = (value) => {
-  productForm.value.productCategory = findNodeById(productOptions.value, value);
-  modelList({ id: value }).then((res) => {
-    modelOptions.value = res;
-  });
+  if (value) {
+    productForm.value.productCategory = findNodeById(productOptions.value, value) || "";
+    modelList({ id: value }).then((res) => {
+      modelOptions.value = res;
+    });
+  } else {
+    productForm.value.productCategory = "";
+    modelOptions.value = [];
+  }
 };
 const getProductModel = (value) => {
   const index = modelOptions.value.findIndex((item) => item.id === value);
@@ -1154,12 +1189,12 @@
 const findNodeById = (nodes, productId) => {
   for (let i = 0; i < nodes.length; i++) {
     if (nodes[i].value === productId) {
-      return nodes[i].label; // 鎵惧埌鑺傜偣锛岃繑鍥炶鑺傜偣
+      return nodes[i].label; // 鎵惧埌鑺傜偣锛岃繑鍥炶鑺傜偣鐨刲abel
     }
     if (nodes[i].children && nodes[i].children.length > 0) {
       const foundNode = findNodeById(nodes[i].children, productId);
       if (foundNode) {
-        return foundNode.label; // 鍦ㄥ瓙鑺傜偣涓壘鍒帮紝杩斿洖璇ヨ妭鐐�
+        return foundNode; // 鍦ㄥ瓙鑺傜偣涓壘鍒帮紝鐩存帴杩斿洖锛堝凡缁忔槸label瀛楃涓诧級
       }
     }
   }
@@ -1577,11 +1612,19 @@
   return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
 }
 
-
+// 娣诲姞琛岀被鍚嶆柟娉�
+const tableRowClassName = ({ row }) => {
+  return row.isInvalid ? 'invalid-row' : '';
+};
 
 onMounted(() => {
   getList();
 });
 </script>
 
-<style scoped lang="scss"></style>
+<style scoped lang="scss">
+.invalid-row {
+  opacity: 0.6;
+  background-color: #f5f7fa;
+}
+</style>

--
Gitblit v1.9.3