Kaynağa Gözat

平台协议直接结算

祁鹏飞 3 ay önce
ebeveyn
işleme
21ee1ab4f4
2 değiştirilmiş dosya ile 76 ekleme ve 54 silme
  1. 10 4
      src/views/platform/index.vue
  2. 66 50
      src/views/platform/ticket.vue

+ 10 - 4
src/views/platform/index.vue

@@ -198,8 +198,10 @@
           <el-table-column prop="syStartDate" label="商业险起保日期" width="150"></el-table-column>
           <el-table-column prop="createTime" label="创建时间" width="150"></el-table-column>
           <el-table-column prop="dockingPerson" label="对接人" width="100"></el-table-column>
-          <el-table-column label="操作" width="120" fixed="right">
+          <el-table-column label="操作" width="180" fixed="right">
             <template #default="scope">
+              <el-button link type="primary"
+                @click="ticketRef.openSettlement([scope.row], scope.row.companyId)">结算</el-button>
               <el-button link type="primary" @click="toEdit(scope.row)">编辑</el-button>
               <el-button link type="primary" @click="toDelete([scope.row.id])">删除</el-button>
             </template>
@@ -356,8 +358,10 @@
           <el-table-column prop="syStartDate" label="商业险起保日期" width="150"></el-table-column>
           <el-table-column prop="createTime" label="创建时间" width="150"></el-table-column>
           <el-table-column prop="dockingPerson" label="对接人" width="100"></el-table-column>
-          <el-table-column label="操作" width="120" fixed="right">
+          <el-table-column label="操作" width="180" fixed="right">
             <template #default="scope">
+              <el-button link type="primary"
+                @click="ticketRef.openSettlement([scope.row], scope.row.companyId)">结算</el-button>
               <el-button link type="primary" @click="toEdit(scope.row)">编辑</el-button>
               <el-button link type="primary" @click="toDelete([scope.row.id])">删除</el-button>
               <el-dropdown class="width-100" trigger="click" placement="bottom" @command="dropdownCommand">
@@ -538,16 +542,18 @@
       </template>
     </el-dialog>
   </PageMain>
+  <ticket ref="ticketRef" />
 </template>
 
 <script setup lang="ts">
 import { ElMessage, ElMessageBox } from "element-plus";
 import { useRouter } from 'vue-router'
-
+import ticket from "./ticket.vue";
 import api from '@/api'
 
 let myRouter = useRouter()
 
+let ticketRef = ref(null)
 let activeName = ref('1')
 let subActiveName = ref('first')
 
@@ -1017,7 +1023,7 @@ const batchSettle = () => {
     })
     return
   }
-  if(selectedList.value.some((item:any) => item.settlementStatusName == '已结算')) {
+  if (selectedList.value.some((item: any) => item.settlementStatusName == '已结算')) {
     ElMessage({
       message: '存在已结算数据,不能结算!',
       type: 'warning'

+ 66 - 50
src/views/platform/ticket.vue

@@ -1,5 +1,5 @@
 <template>
-  <div class="ticket">
+  <div class="ticket" v-if="showTicket">
     <div class="search-list">
       <div class="search-left">
         <el-select v-model="logicJudge">
@@ -149,54 +149,55 @@
         <el-button type="primary" @click="handleAddSubmit">确定</el-button>
       </template>
     </el-dialog>
-    <el-dialog v-model="settlementDialog" width="600" title="结算">
-      <el-form ref="CountFormRef" :model="countForm" :rules="settlementRules" label-width="120">
-        <el-form-item  label="应收金额">
-          <el-input v-model="receivablePremium" placeholder="请输入" disabled></el-input>
-        </el-form-item>
-        <el-form-item prop="actualReceivedAmount" label="实收金额">
-          <el-input v-model="countForm.actualReceivedAmount" placeholder="请输入"></el-input>
-        </el-form-item>
-        <el-form-item prop="paymentDifference" label="回款金额">
-          <el-input v-model="countForm.paymentDifference" placeholder="请输入" disabled></el-input>
-        </el-form-item>
-        <el-form-item prop="paymentReason" label="差额原因">
-          <el-input v-model="countForm.paymentReason" placeholder="请输入"></el-input>
-        </el-form-item>
-        <el-form-item prop="receivePaymentDate" label="收款日期">
-          <el-date-picker v-model="countForm.receivePaymentDate" type="datetime" value-format="YYYY-MM-DD HH:mm:ss"
-            format="YYYY-MM-DD HH:mm:ss" />
-        </el-form-item>
-        <el-form-item prop="attachmentIds" label="收款凭证" class="upload-btn">
-          <el-upload style="margin: 0 10px 10px 0" :auto-upload="false" multiple v-if="!countForm.h"
-            :show-file-list="false" accept=".png, .jpg, .jpeg" @change="uploadImage" drag>
-            <el-button size="large" icon="Plus" />
-          </el-upload>
-          <div class="imageDiv" v-for="(item, index) in imageUrl" :key="item">
-            <img :src="item" />
-            <div class="model">
-              <span class="icon-view" @click="handelViewImage(item, index)">
-                <el-icon>
-                  <View />
-                </el-icon>
-              </span>
-              <span class="icon-del" @click="handelDelImage(item, index)">
-                <el-icon>
-                  <Delete />
-                </el-icon>
-              </span>
-            </div>
-          </div>
-        </el-form-item>
-      </el-form>
-      <template #footer>
-        <el-button class="border-[#0083FF] color-[#0083FF]" plain @click="settlementDialog = false">取消</el-button>
-        <el-button type="primary" @click="handelComfirm(CountFormRef)">确定结算</el-button>
-      </template>
-    </el-dialog>
+
     <el-image-viewer v-if="imageShow" :url-list="[bigImageUrl]" @close="imageShow = false" />
 
   </div>
+  <el-dialog v-model="settlementDialog" width="600" title="结算">
+    <el-form ref="CountFormRef" :model="countForm" :rules="settlementRules" label-width="120">
+      <el-form-item label="应收金额">
+        <el-input v-model="receivablePremium" placeholder="请输入" disabled></el-input>
+      </el-form-item>
+      <el-form-item prop="actualReceivedAmount" label="实收金额">
+        <el-input v-model="countForm.actualReceivedAmount" placeholder="请输入"></el-input>
+      </el-form-item>
+      <el-form-item prop="paymentDifference" label="回款金额">
+        <el-input v-model="countForm.paymentDifference" placeholder="请输入" disabled></el-input>
+      </el-form-item>
+      <el-form-item prop="paymentReason" label="差额原因">
+        <el-input v-model="countForm.paymentReason" placeholder="请输入"></el-input>
+      </el-form-item>
+      <el-form-item prop="receivePaymentDate" label="收款日期">
+        <el-date-picker v-model="countForm.receivePaymentDate" type="datetime" value-format="YYYY-MM-DD HH:mm:ss"
+          format="YYYY-MM-DD HH:mm:ss" />
+      </el-form-item>
+      <el-form-item prop="attachmentIds" label="收款凭证" class="upload-btn">
+        <el-upload style="margin: 0 10px 10px 0" :auto-upload="false" multiple v-if="!countForm.h"
+          :show-file-list="false" accept=".png, .jpg, .jpeg" @change="uploadImage" drag>
+          <el-button size="large" icon="Plus" />
+        </el-upload>
+        <div class="imageDiv" v-for="(item, index) in imageUrl" :key="item">
+          <img :src="item" />
+          <div class="model">
+            <span class="icon-view" @click="handelViewImage(item, index)">
+              <el-icon>
+                <View />
+              </el-icon>
+            </span>
+            <span class="icon-del" @click="handelDelImage(item, index)">
+              <el-icon>
+                <Delete />
+              </el-icon>
+            </span>
+          </div>
+        </div>
+      </el-form-item>
+    </el-form>
+    <template #footer>
+      <el-button class="border-[#0083FF] color-[#0083FF]" plain @click="settlementDialog = false">取消</el-button>
+      <el-button type="primary" @click="handelComfirm(CountFormRef)">确定结算</el-button>
+    </template>
+  </el-dialog>
 </template>
 
 <script setup lang="ts">
@@ -224,7 +225,7 @@ const countForm = ref({
   receivePaymentDate: '',
   attachmentIds: [],
 })
-  const receivablePremium= ref('')
+const receivablePremium = ref('')
 
 const settlementDialog = ref(false)//结算弹窗
 let settlementRules = ref({
@@ -275,12 +276,17 @@ let searchList = ref([
     search: ''
   }
 ])
-if (route.query) {
+const showTicket = ref(false)
+const companyId = ref('')
+if (route.query?.companyId) {
   console.log(route.query)
-
+  showTicket.value = true
   selectedList.value = JSON.parse(route.query.selectedList || '[]')
   searchList.value[0].search = route.query.companyId || ''
+  companyId.value = route.query.companyId || ''
   getByCompanyId()
+} else {
+  showTicket.value = false
 }
 
 
@@ -425,7 +431,7 @@ const handelComfirm = (formEl: FormInstance | undefined) => {
         invoicingVo: {
           incomeIds: selectedList.value.map(item => item.id),
           orderNos: selectedList.value.map(item => item.orderNo),
-          companyId: route.query.companyId,
+          companyId: companyId.value,
           receivablePremium: receivablePremium.value,
           invoiceType: "5"
         }
@@ -471,6 +477,16 @@ const initCompany = () => {
   })
 }
 
+const openSettlement = (list,id) => {
+  companyId.value = id
+  selectedList.value = list
+  handleSettlement()
+}
+
+defineExpose({
+  openSettlement,
+});
+
 onMounted(() => {
   initData()
   initCompany()