From de0dfb6020dc00b554c629dc01b1eb38156e094e Mon Sep 17 00:00:00 2001
From: zhangback <zhangback@163.com>
Date: 星期日, 04 一月 2026 12:29:04 +0800
Subject: [PATCH] 提交

---
 ui/admin-ui3/src/views/tms/tmsArBill/index.vue |  103 +++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 98 insertions(+), 5 deletions(-)

diff --git a/ui/admin-ui3/src/views/tms/tmsArBill/index.vue b/ui/admin-ui3/src/views/tms/tmsArBill/index.vue
index 7fd4697..d906e1a 100644
--- a/ui/admin-ui3/src/views/tms/tmsArBill/index.vue
+++ b/ui/admin-ui3/src/views/tms/tmsArBill/index.vue
@@ -49,9 +49,14 @@
         <el-link size="small" type="primary" v-if="row.status != 2"
                  @click="handleJs(row)" class="link-btn" :underline="false"
                  icon="el-icon-tickets">缁撶畻
-        </el-link><el-link size="small" type="primary"
+        </el-link>
+        <el-link size="small" type="primary"
                            @click="handleEdit(row)" class="link-btn" :underline="false"
                            icon="el-icon-edit">淇敼
+      </el-link>
+        <el-link size="small" type="primary"
+                           @click="handleLog(row)" class="link-btn" :underline="false"
+                           icon="el-icon-tickets">鏃ュ織
       </el-link>
       </template>
     </avue-crud>
@@ -60,9 +65,12 @@
 
     <el-dialog :title="pageF.title" v-model="pageF.open" class="avue-dialog avue-dialog--top" width="80%">
 
-      <avue-form  v-model="boxForm" ref="boxFormRef"
+      <avue-form v-if="opt == 'js'"  v-model="boxForm" ref="boxFormRef"
                   :option="boxFormOption">
+        <template #settleAmount>
+          <avue-input-number :min="0" :max="form.actualSettlementAmount" v-model="boxForm.settleAmount" placeholder="璇疯緭鍏ョ粨绠楅噾棰�"></avue-input-number>
 
+        </template>
       </avue-form>
       <el-descriptions :column="3" title="璐﹀崟鍩烘湰淇℃伅"  border>
         <el-descriptions-item label="璐﹀崟绯荤粺缂栧彿">{{form.systemNo}}</el-descriptions-item>
@@ -74,6 +82,18 @@
         </el-descriptions-item>
         <el-descriptions-item label="瀹㈡埛鍚嶇О">{{form.customerName}}</el-descriptions-item>
         <el-descriptions-item label="搴旂粨绠楅噾棰�">{{form.settleAmount}}</el-descriptions-item>
+        <el-descriptions-item label="鍑忓厤閲戦">
+          <div v-if="opt === 'edit'">
+            <el-input-number :min="0" :max="form.settleAmount" v-model="form.deductionAmount" placeholder="璇疯緭鍏ュ噺鍏嶉噾棰�" @change="deductionAmountChange" />
+          </div>
+          <div v-else>{{form.deductionAmount}}</div>
+        </el-descriptions-item>
+        <el-descriptions-item label="瀹為檯缁撶畻閲戦" v-if="opt == 'edit'">{{form.actualSettlementAmount}}</el-descriptions-item>
+        <el-descriptions-item label="鍑忓厤鍘熷洜" v-if="opt == 'edit'">
+          <div v-if="opt === 'edit'">
+            <el-input v-model="form.reasonReduction" placeholder="璇疯緭鍏ュ噺鍏嶅師鍥�" />
+          </div>
+          <div v-else>{{form.reasonReduction}}</div></el-descriptions-item>
         <el-descriptions-item label="宸茬粨绠楅噾棰�" v-if="opt == 'js'">{{form.settledAmount}}</el-descriptions-item>
         <el-descriptions-item label="寰呯粨绠楅噾棰�" v-if="opt == 'js'">{{Number(form.settleAmount) - Number(form.settledAmount)}}</el-descriptions-item>
       </el-descriptions>
@@ -94,7 +114,22 @@
         </div>
       </template>
     </el-dialog>
+    <el-dialog :title="pageF.title" v-model="open2" class="avue-dialog avue-dialog--top" width="80%">
 
+      <avue-crud
+          :option="logTableOption" ref="itemsTableRef2"
+          :data="logTable"
+      >
+
+      </avue-crud>
+
+
+    <template #footer>
+      <div class="dialog-footer">
+        <el-button @click="open2 = false">鍙� 娑�</el-button>
+      </div>
+    </template>
+    </el-dialog>
 
 
   </basicContainer>
@@ -115,7 +150,7 @@
 import {PagesInterface, PageQueryInterface} from "@/utils/globalInterface";
 import {usePagePlus} from "@/hooks/usePagePlus";
 import {hasPermission} from "@/utils/permissionUtils";
-import {addTmsArSettlement} from "@/api/tms/tmsArSettlement";
+import {addTmsArSettlement, listTmsArSettlement} from "@/api/tms/tmsArSettlement";
 
 const {proxy} = useCurrentInstance();
 const crudRef = ref();
@@ -139,9 +174,10 @@
   },
   selectionList: [],
   opt: '',
-  boxForm:<any> {}
+  boxForm:<any> {},
+  open2: false
 })
-const {queryParams, form, page, selectionList,opt,boxForm} = toRefs(data);
+const {queryParams, form, page, selectionList,opt,boxForm,open2} = toRefs(data);
 const option = ref({
   pageKey: 'TmsArBill',
   rowKey: 'id',
@@ -191,6 +227,20 @@
     },
     settleAmount: {
       label: '搴旂粨绠楅噾棰�',
+      addDisplay: true,minWidth:120,
+      editDisplay: true,
+      viewDisplay: true,
+      hide: false,
+    },
+    deductionAmount: {
+      label: '鍑忓厤閲戦',
+      addDisplay: true,minWidth:120,
+      editDisplay: true,
+      viewDisplay: true,
+      hide: false,
+    },
+    actualSettlementAmount: {
+      label: '瀹為檯缁撶畻閲戦',
       addDisplay: true,minWidth:120,
       editDisplay: true,
       viewDisplay: true,
@@ -368,6 +418,49 @@
     }
   })
 }
+const logTableOption= ref({
+  menu: false,
+  add: false,
+  header:false,
+  selection: false,
+  rowKey:'id',
 
+  column:{
+
+    settleAmount:{
+      label: '缁撶畻閲戦',
+    },
+    createBy:{
+      label: '澶勭悊浜哄憳',
+    },
+    attachment:{
+      label: '闄勪欢涓嬭浇',
+      dataType: 'string',
+      type: 'img'
+    },
+
+    remark:{
+      label: '澶囨敞',
+    },
+    createTime:{
+      label: '鎻愪氦鏃堕棿',
+    },
+  }
+})
+const logTable = ref<any>()
+
+const handleLog = (row:any)=>{
+  listTmsArSettlement({billId:row.id}).then(res=>{
+    logTable.value =  res.rows||[];
+    open2.value = true;
+    pageF.title = '缁撶畻鏃ュ織';
+  })
+}
+
+
+
+const deductionAmountChange = (e:any) => {
+  form.value.actualSettlementAmount =(Number(form.value.settleAmount) || 0) -( Number(form.value.deductionAmount) || 0);
+}
 
 </script>

--
Gitblit v1.8.0