From 11d7990309ddace2fa600cbeae58e3ab5ac368f9 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期日, 20 九月 2026 19:25:45 +0800
Subject: [PATCH] 新疆-融邦 1. 委外管理:新增合作商档案、委外订单、往来台账三个页面及接口;合作商附件弹框支持直接上传/删除并即时保存。   2. 信托基金与代储台账:客户档案加「信托基金 / 代储金额」并对超限标红提示;销售台账拆「卖油 / 代储」页签,代储走油库+储罐+合同金额,卖油保留产品明细;台账列表加审批状态与超限红字;审批中心显示销售合同号并能下钻台账明细。   3. 储罐号带入库存:储罐信息表单加「是否启用 / 用途 / 租客信息」联动与校验;库存管理、批号明细、入库/出库表单与列表补齐储罐号、油品、物流、过磅等字段展示。   4. 出库即发货与往来备件:出库台账区分「发货单 / 油品出库」两类来源并分别处理详情;新增备件出入库流水页面。   5. 车辆管理与残油联动:新增车辆管理页面;油品出入库表单物流信息顺序调整,车牌/车挂牌号联动只读。   6. 油品出库联动发货台账:发货台账加「发货单号 / 销售合同号」筛选,修复油品出库行批号列取错字段。   7. 采购申请模块:新增采购申请页面及接口。   8. 付款流水组件:抽出公共「付款流水」弹框组件,采购付款分栏、收付款台账与委外往来台账复用。   9. 列调整:收付款台账删除「付款金额 / 退货金额」;委外往来台账删除「回款金额」,并去掉金额列右对齐。

---
 src/views/basicData/tankInfo/index.vue |  140 +++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 135 insertions(+), 5 deletions(-)

diff --git a/src/views/basicData/tankInfo/index.vue b/src/views/basicData/tankInfo/index.vue
index e748b66..a93d11e 100644
--- a/src/views/basicData/tankInfo/index.vue
+++ b/src/views/basicData/tankInfo/index.vue
@@ -18,6 +18,30 @@
                       prefix-icon="Search"
                       @change="handleQuery" />
           </el-form-item>
+          <el-form-item label="鏄惁鍚敤锛�">
+            <el-select v-model="searchForm.isEnabled"
+                       placeholder="璇烽�夋嫨"
+                       clearable
+                       style="width: 140px"
+                       @change="handleQuery">
+              <el-option label="鍚敤"
+                         :value="1" />
+              <el-option label="鏈惎鐢�"
+                         :value="0" />
+            </el-select>
+          </el-form-item>
+          <el-form-item label="鐢ㄩ�旓細">
+            <el-select v-model="searchForm.usageType"
+                       placeholder="璇烽�夋嫨"
+                       clearable
+                       style="width: 140px"
+                       @change="handleQuery">
+              <el-option label="绉熻祦"
+                         :value="1" />
+              <el-option label="鑷敤"
+                         :value="2" />
+            </el-select>
+          </el-form-item>
           <el-form-item>
             <el-button type="primary"
                        @click="handleQuery"> 鎼滅储
@@ -64,6 +88,25 @@
         <el-table-column label="搴撳瓨浣欓噺(m鲁)"
                          prop="remaining"
                          min-width="140" />
+        <el-table-column label="鏄惁鍚敤"
+                         prop="isEnabled"
+                         align="center"
+                         width="100">
+          <template #default="scope">
+            <el-tag :type="scope.row.isEnabled === 1 ? 'success' : 'info'"
+                    size="small">
+              {{ scope.row.isEnabled === 1 ? "鍚敤" : "鏈惎鐢�" }}
+            </el-tag>
+          </template>
+        </el-table-column>
+        <el-table-column label="鐢ㄩ��"
+                         prop="usageType"
+                         align="center"
+                         width="90">
+          <template #default="scope">
+            {{ getUsageTypeText(scope.row.usageType) }}
+          </template>
+        </el-table-column>
         <el-table-column label="绉熷淇℃伅"
                          prop="tenantInfo"
                          min-width="160"
@@ -172,8 +215,38 @@
             </el-form-item>
           </el-col>
           <el-col :span="12">
+            <el-form-item label="鏄惁鍚敤锛�"
+                          prop="isEnabled">
+              <el-switch v-model="form.isEnabled"
+                         :active-value="1"
+                         :inactive-value="0"
+                         active-text="鍚敤"
+                         inactive-text="鏈惎鐢�" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="30"
+                v-if="form.isEnabled === 1">
+          <el-col :span="12">
+            <el-form-item label="鐢ㄩ�旓細"
+                          prop="usageType">
+              <el-radio-group v-model="form.usageType">
+                <el-radio :value="1">绉熻祦</el-radio>
+                <el-radio :value="2">鑷敤</el-radio>
+              </el-radio-group>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12"
+                  v-if="form.usageType === 1">
             <el-form-item label="绉熷淇℃伅锛�"
-                          prop="tenantInfo">
+                          prop="tenantInfo"
+                          :rules="[
+                {
+                required: true,
+                message: '绉熻祦鐨勫偍缃愬繀椤诲~鍐欑瀹俊鎭�',
+                trigger: 'blur',
+              }
+            ]">
               <el-input v-model="form.tenantInfo"
                         placeholder="璇疯緭鍏ョ瀹俊鎭�"
                         clearable />
@@ -188,7 +261,7 @@
 <script setup>
   import FormDialog from "@/components/Dialog/FormDialog.vue";
   import pagination from "@/components/PIMTable/Pagination.vue";
-  import { ref, reactive, toRefs, getCurrentInstance } from "vue";
+  import { ref, reactive, toRefs, watch, getCurrentInstance } from "vue";
   import { Search } from "@element-plus/icons-vue";
   import { ElMessageBox } from "element-plus";
   import {
@@ -214,6 +287,8 @@
     searchForm: {
       tankNo: "",
       category: "",
+      isEnabled: "",
+      usageType: "",
     },
     form: {
       id: null,
@@ -222,6 +297,8 @@
       oilProduct: "",
       capacity: null,
       remaining: null,
+      isEnabled: 1,
+      usageType: null,
       tenantInfo: "",
     },
     rules: {
@@ -230,6 +307,24 @@
     },
   });
   const { searchForm, form, rules } = toRefs(data);
+
+  // 鐢ㄩ�旀枃妗堬細1 绉熻祦 / 2 鑷敤
+  const getUsageTypeText = value => ({ 1: "绉熻祦", 2: "鑷敤" })[value] || "--";
+
+  // 鏈惎鐢ㄦ椂鐢ㄩ�斾笌绉熷淇℃伅涓�寰嬫竻绌猴紱閫夎嚜鐢ㄦ椂绉熷淇℃伅鑷姩娓呯┖锛堢璧佹墠闇�瑕佺瀹級
+  watch(
+    () => [form.value.isEnabled, form.value.usageType],
+    () => {
+      if (form.value.isEnabled !== 1) {
+        form.value.usageType = null;
+        form.value.tenantInfo = "";
+        return;
+      }
+      if (form.value.usageType !== 1) {
+        form.value.tenantInfo = "";
+      }
+    }
+  );
 
   const getList = () => {
     tableLoading.value = true;
@@ -259,14 +354,49 @@
     selectedRows.value = selection;
   };
 
+  const buildEmptyForm = () => ({
+    id: null,
+    tankNo: "",
+    category: "",
+    oilProduct: "",
+    capacity: null,
+    remaining: null,
+    isEnabled: 1,
+    usageType: null,
+    tenantInfo: "",
+  });
+
   const openForm = (type, row) => {
     operationType.value = type;
-    form.value = {};
+    // 鍏堥噸缃啀璧嬪�硷細resetFields 浼氭妸瀛楁鎵撳洖鎸傝浇鏃剁殑鍒濆�硷紝鏀惧悗闈細鎶婂垰濉ソ鐨勫�兼竻鎺�
     proxy.resetForm("formRef");
+    form.value = buildEmptyForm();
     dialogFormVisible.value = true;
     if (type === "edit" && row) {
-      const { id, tankNo, category, oilProduct, capacity, remaining, tenantInfo } = row;
-      form.value = { id, tankNo, category, oilProduct, capacity, remaining, tenantInfo };
+      const {
+        id,
+        tankNo,
+        category,
+        oilProduct,
+        capacity,
+        remaining,
+        isEnabled,
+        usageType,
+        tenantInfo,
+      } = row;
+      form.value = {
+        ...buildEmptyForm(),
+        id,
+        tankNo,
+        category,
+        oilProduct,
+        capacity,
+        remaining,
+        // 鍘嗗彶鏁版嵁娌℃湁璇ュ瓧娈碉紝缂哄け鏃舵寜銆屽惎鐢ㄣ�嶅鐞嗭紝閬垮厤淇濆瓨鏃惰璇疆涓烘湭鍚敤
+        isEnabled: isEnabled ?? 1,
+        usageType: usageType ?? null,
+        tenantInfo: tenantInfo ?? "",
+      };
     }
   };
 

--
Gitblit v1.9.3