Преглед изворни кода

Merge branch 'dev' of http://39.101.143.165:8090/dong_k/tenant-Platform into dev

祁鹏飞 пре 3 месеци
родитељ
комит
e5b449bdcd

+ 7 - 4
src/api/index.ts

@@ -79,14 +79,17 @@ axiosInstance.interceptors.response.use(
      * 规则是当 status 为 1 时表示请求成功,为 0 时表示接口需要登录或者登录状态失效,需要重新登录
      * 规则是当 status 为 1 时表示请求成功,为 0 时表示接口需要登录或者登录状态失效,需要重新登录
      * 请求出错时 error 会返回错误信息
      * 请求出错时 error 会返回错误信息
      */
      */
+    // 检查是否需要跳过全局错误提示
+    const skipGlobalError = response.config?.skipGlobalError || response.config?.headers?.['skip-global-error']
+
     if (response.data.code === 500) {
     if (response.data.code === 500) {
-      if (response.data.msg !== '') {
+      if (response.data.msg !== '' && !skipGlobalError) {
         // 错误提示
         // 错误提示
         Message.error(response.data.msg, {
         Message.error(response.data.msg, {
           zIndex: 9000,
           zIndex: 9000,
         })
         })
-        return Promise.resolve(response.data)
       }
       }
+      return Promise.resolve(response.data)
     }
     }
     else {
     else {
       if (response.data.code === 401) {
       if (response.data.code === 401) {
@@ -96,7 +99,7 @@ axiosInstance.interceptors.response.use(
           duration: 2000,
           duration: 2000,
         })
         })
         useUserStore().logout()
         useUserStore().logout()
-      } else if(response.data.code === 400) {
+      } else if(response.data.code === 400 && !skipGlobalError) {
         ElMessage({
         ElMessage({
           message: `${response.data.msg}!!!`,
           message: `${response.data.msg}!!!`,
           type: 'error',
           type: 'error',
@@ -155,4 +158,4 @@ const api = {
   dictApi: dictApi(axiosInstance),
   dictApi: dictApi(axiosInstance),
   homeApi: homeApi(axiosInstance)
   homeApi: homeApi(axiosInstance)
 }
 }
-export default api
+export default api

+ 2 - 2
src/api/modules/insurancePolicy.ts

@@ -3,7 +3,7 @@ import { ApiInstance } from '../type'
 const insurancePolicyApi = (axiosInstance: ApiInstance) => ({
 const insurancePolicyApi = (axiosInstance: ApiInstance) => ({
   againLogin: (data: any) => axiosInstance.post('/unify/order/guoRenlogin', data), // 保司重新登录
   againLogin: (data: any) => axiosInstance.post('/unify/order/guoRenlogin', data), // 保司重新登录
   getGuoRenCaptcha: (data: any) => axiosInstance.post('/unify/order/getGuoRenCaptcha', data), // 保司重新登录
   getGuoRenCaptcha: (data: any) => axiosInstance.post('/unify/order/getGuoRenCaptcha', data), // 保司重新登录
-  quote: (data: any) => axiosInstance.post('/unify/order/quote', data), // 报价
+  quote: (data: any, config?: any) => axiosInstance.post('/unify/order/quote', data, config), // 报价
   getQuoteNo:(data: any) => axiosInstance.get(`/unify/order/getQuoteNo?licenseNo=${data.licenseNo}&vinNo=${data.vinNo}&engineNo=${data.engineNo}`), // 获取报价号
   getQuoteNo:(data: any) => axiosInstance.get(`/unify/order/getQuoteNo?licenseNo=${data.licenseNo}&vinNo=${data.vinNo}&engineNo=${data.engineNo}`), // 获取报价号
   ruleFilterCompany: (data: any) => axiosInstance.post('/scheme/ruleFilterCompany', data, {
   ruleFilterCompany: (data: any) => axiosInstance.post('/scheme/ruleFilterCompany', data, {
     headers: {
     headers: {
@@ -47,4 +47,4 @@ const insurancePolicyApi = (axiosInstance: ApiInstance) => ({
   downloadPolicy: (data: any) => axiosInstance.post(`/unify/order/downloadPolicy`,data), // 下载电子保单
   downloadPolicy: (data: any) => axiosInstance.post(`/unify/order/downloadPolicy`,data), // 下载电子保单
 })
 })
 
 
-export default insurancePolicyApi
+export default insurancePolicyApi

Разлика између датотеке није приказан због своје велике величине
+ 421 - 471
src/views/insurancePolicy/index.vue


+ 34 - 5
src/views/receivable/handingFee/invoiceRecord.vue

@@ -85,7 +85,7 @@
         layout="total, sizes, prev, pager, next, jumper" :total="total" @size-change="handleSizeChange"
         layout="total, sizes, prev, pager, next, jumper" :total="total" @size-change="handleSizeChange"
         @current-change="handleCurrentChange"></el-pagination>
         @current-change="handleCurrentChange"></el-pagination>
     </div>
     </div>
-    <el-dialog v-model="countShow" width="600" title="开票并结算">
+    <el-dialog v-model="countShow" width="600" title="结算">
       <el-form ref="CountForm" :model="countForm" :rules="countRules" label-width="120">
       <el-form ref="CountForm" :model="countForm" :rules="countRules" label-width="120">
         <el-form-item prop="invoiceParty" label="开票方">
         <el-form-item prop="invoiceParty" label="开票方">
           <el-input v-model="countForm.invoiceParty" disabled placeholder="请输入"></el-input>
           <el-input v-model="countForm.invoiceParty" disabled placeholder="请输入"></el-input>
@@ -94,10 +94,10 @@
           <el-input v-model="countForm.receivableSupervisePremium" disabled placeholder="请输入"></el-input>
           <el-input v-model="countForm.receivableSupervisePremium" disabled placeholder="请输入"></el-input>
         </el-form-item>
         </el-form-item>
         <el-form-item prop="overinflatedAmount" label="虚增金额">
         <el-form-item prop="overinflatedAmount" label="虚增金额">
-          <el-input v-model="countForm.overinflatedAmount" placeholder="请输入"></el-input>
+          <el-input v-model="countForm.overinflatedAmount" disabled placeholder="请输入"></el-input>
         </el-form-item>
         </el-form-item>
         <el-form-item prop="taxPoint" label="税点">
         <el-form-item prop="taxPoint" label="税点">
-          <el-input v-model="countForm.taxPoint" placeholder="请输入"></el-input>
+          <el-input v-model="countForm.taxPoint" disabled placeholder="请输入"></el-input>
         </el-form-item>
         </el-form-item>
         <el-form-item prop="receivableSupervisePremium" label="应收金额">
         <el-form-item prop="receivableSupervisePremium" label="应收金额">
           <el-input v-model="countForm.receivableSupervisePremium" disabled placeholder="请输入"></el-input>
           <el-input v-model="countForm.receivableSupervisePremium" disabled placeholder="请输入"></el-input>
@@ -105,6 +105,12 @@
         <el-form-item prop="actualReceivedAmount" label="实收金额">
         <el-form-item prop="actualReceivedAmount" label="实收金额">
           <el-input v-model="countForm.actualReceivedAmount" placeholder="请输入"></el-input>
           <el-input v-model="countForm.actualReceivedAmount" placeholder="请输入"></el-input>
         </el-form-item>
         </el-form-item>
+        <el-form-item label="回款差额">
+          <el-input v-model="countForm.paymentDifference" disabled placeholder="自动计算" />
+        </el-form-item>
+        <el-form-item prop="actualReceivedAmount" label="回款原因">
+          <el-input v-model="countForm.paymentReason" placeholder="请输入"></el-input>
+        </el-form-item>
         <el-form-item prop="receivePaymentDate" label="收款日期">
         <el-form-item prop="receivePaymentDate" label="收款日期">
           <el-date-picker v-model="countForm.receivePaymentDate" type="datetime" value-format="YYYY-MM-DD HH:mm:ss"
           <el-date-picker v-model="countForm.receivePaymentDate" type="datetime" value-format="YYYY-MM-DD HH:mm:ss"
             format="YYYY-MM-DD HH:mm:ss" />
             format="YYYY-MM-DD HH:mm:ss" />
@@ -188,6 +194,11 @@ let imageUrl = ref([])
 let attachmentIds = ref([])
 let attachmentIds = ref([])
 let invoicingId = ref('')
 let invoicingId = ref('')
 const handleCount = (row) => {
 const handleCount = (row) => {
+  if (row.settlementStatus === "已结算"){
+    ElMessage.warning('当前开票记录已结算完成,不能结算!')
+    return
+  }
+
   countShow.value = true
   countShow.value = true
   invoicingId.value = row.id
   invoicingId.value = row.id
   countForm.value = {
   countForm.value = {
@@ -196,8 +207,22 @@ const handleCount = (row) => {
     overinflatedAmount: row.overinflatedAmount,
     overinflatedAmount: row.overinflatedAmount,
     actualReceivedAmount: row.remainSettlementAmount,
     actualReceivedAmount: row.remainSettlementAmount,
     taxPoint: row.taxPoint,
     taxPoint: row.taxPoint,
+    paymentDifference: row.paymentDifference, // 回款差额(自动计算)
+    paymentReason: row.paymentReason, // 回款原因
+    receivePaymentDate: row.receivePaymentDate, // 收款日期
+    attachmentIds: row.attachmentIds // 凭证
   }
   }
 }
 }
+// 监听实收金额变化 → 自动计算回款差额
+watch(
+  () => countForm.value.actualReceivedAmount,
+  (newVal) => {
+    const receivable = Number(countForm.value.receivableSupervisePremium) || 0
+    const actual = Number(newVal) || 0
+    // 回款差额 = 实收 - 应收
+    countForm.value.paymentDifference = (actual - receivable).toFixed(5)
+  }
+)
 const uploadImage = async (file, fileList) => {
 const uploadImage = async (file, fileList) => {
   let files = file.raw
   let files = file.raw
   const params = new FormData(); // 声明formData数据类型
   const params = new FormData(); // 声明formData数据类型
@@ -289,7 +314,9 @@ const handelComfirm = (CountForm) => {
         invoicingId: invoicingId.value,
         invoicingId: invoicingId.value,
         actualReceivedAmount: countForm.value.actualReceivedAmount,
         actualReceivedAmount: countForm.value.actualReceivedAmount,
         receivePaymentDate: countForm.value.receivePaymentDate,
         receivePaymentDate: countForm.value.receivePaymentDate,
-        attachmentIds: countForm.value.attachmentIds
+        attachmentIds: countForm.value.attachmentIds,
+        paymentDifference: countForm.value.paymentDifference,
+        paymentReason: countForm.value.paymentReason
       }).then((res: any) => {
       }).then((res: any) => {
         countShow.value = false
         countShow.value = false
         if (res.code == 200) {
         if (res.code == 200) {
@@ -317,7 +344,9 @@ const handelCancel = () => {
     taxPoint: '',
     taxPoint: '',
     actualReceivedAmount: '',
     actualReceivedAmount: '',
     receivePaymentDate: [],
     receivePaymentDate: [],
-    attachmentIds: []
+    attachmentIds: [],
+    paymentDifference: '', // 回款差额(自动计算)
+    paymentReason: '' // 回款原因
   }
   }
   imageUrl.value = []
   imageUrl.value = []
 }
 }

+ 4 - 1
src/views/receivable/handingFee/ticket.vue

@@ -374,13 +374,14 @@ const handleBack = () => {
   router.back()
   router.back()
 }
 }
 const handleTicket = () => {
 const handleTicket = () => {
-  countShow.value = true
+
   api.financeApi.invoicingCheck({
   api.financeApi.invoicingCheck({
     incomeIds: selectedList.value.map(v => v.id),
     incomeIds: selectedList.value.map(v => v.id),
     companyId: route.query.id,
     companyId: route.query.id,
     invoiceType: route.query.invoiceType
     invoiceType: route.query.invoiceType
   }).then((res: any) => {
   }).then((res: any) => {
     if (res.code == 200) {
     if (res.code == 200) {
+      countShow.value = true
       api.financeApi.commissionInvoicing({
       api.financeApi.commissionInvoicing({
         incomeIds: selectedList.value.map(v => v.id),
         incomeIds: selectedList.value.map(v => v.id),
         orderNos: selectedList.value.map(v => v.orderNo),
         orderNos: selectedList.value.map(v => v.orderNo),
@@ -405,6 +406,8 @@ const handleTicket = () => {
           })
           })
         }
         }
       })
       })
+    }else{
+
     }
     }
   })
   })
 }
 }

Неке датотеке нису приказане због велике количине промена