From 6fb9618fa2a815fda3700c182dfbba976f181c21 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期日, 04 二月 2024 16:13:21 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
company/src/views/enterprise/entrustedInvoicing.vue | 2
company/src/components/enterprise/commissionDetails.vue | 325 ++++++++++++++++++++++++++++++++++++++++
company/src/components/enterprise/directInvoicingApplication.vue | 3
company/src/api/business/taxes.js | 7
company/src/components/enterprise/entrustmentHistory.vue | 15 +
company/src/components/enterprise/entrustedInvoicingApplication.vue | 86 ++++++++++
6 files changed, 427 insertions(+), 11 deletions(-)
diff --git a/company/src/api/business/taxes.js b/company/src/api/business/taxes.js
index 953bfb7..0fc1f00 100644
--- a/company/src/api/business/taxes.js
+++ b/company/src/api/business/taxes.js
@@ -39,3 +39,10 @@
trim: true
})
}
+
+// 鎻愪氦濮旀墭鎶曟姤寮�绁�
+export function entrustInvoicing(data) {
+ return request.post('/business/taxes/entrustInvoicing', data, {
+ trim: true
+ })
+}
diff --git a/company/src/components/enterprise/commissionDetails.vue b/company/src/components/enterprise/commissionDetails.vue
new file mode 100644
index 0000000..551eec0
--- /dev/null
+++ b/company/src/components/enterprise/commissionDetails.vue
@@ -0,0 +1,325 @@
+<template>
+ <GlobalWindow
+ :title="title"
+ width="100%"
+ :visible.sync="visible"
+ :confirm-working="isWorking"
+ @confirm="confirm"
+ >
+ <div class="info">
+ <div class="info_list">
+ <div class="info_list_item">
+ <div class="info_list_item_label">寮�绁ㄥ悕绉帮細</div>
+ <div class="info_list_item_val">{{userInfo.company.name}}</div>
+ </div>
+ <div class="info_list_item">
+ <div class="info_list_item_label">绾崇◣浜鸿瘑鍒彿锛�</div>
+ <div class="info_list_item_val">{{userInfo.company.code}}</div>
+ </div>
+ <div class="info_list_item">
+ <div class="info_list_item_label">寮�鎴疯锛�</div>
+ <div class="info_list_item_val">{{userInfo.company.taxBank}}</div>
+ </div>
+ <div class="info_list_item">
+ <div class="info_list_item_label">璐﹀彿锛�</div>
+ <div class="info_list_item_val">
+ {{userInfo.company.taxAccount}}
+ </div>
+ </div>
+ <div class="info_list_item" style="width: 100%;">
+ <div class="info_list_item_label">鍦板潃銆佺數璇濓細</div>
+ <div class="info_list_item_val">{{userInfo.company.invoiceAddr}} {{userInfo.company.phone}}</div>
+ </div>
+ <div class="info_list_item" style="width: 100%;">
+ <div class="info_list_item_label">寮�绁ㄩ噾棰濓細</div>
+ <div class="info_list_item_val" style="color:rgba(249, 86, 1, 0.996078431372549);">{{totalPrice}}</div>
+ </div>
+ <div class="list" style="width: 100%;" v-if="form.type === 0">
+ <div class="list_label">
+ 鎺ユ敹鏂瑰紡锛氱數瀛愬彂绁�
+ </div>
+ <div class="list_val">
+ <div class="list_val_label">鎺ユ敹鍦板潃锛�</div>
+ <div class="list_val_info">{{form.addr}}</div>
+ </div>
+ </div>
+ <div class="list" style="width: 100%;" v-else>
+ <div class="list_label">
+ 鎺ユ敹鏂瑰紡锛氱焊璐ㄥ彂绁�
+ </div>
+ <div class="list_val">
+ <div class="list_val_label">鎺ユ敹鍦板潃锛�</div>
+ <div class="list_val_info">{{form.addr}}</div>
+ </div>
+ </div>
+ </div>
+ <!-- 鍔犲噺淇� -->
+ <el-table
+ :data="list1"
+ border
+ show-summary
+ :summary-method="getSummaries1"
+ style="width: 100%; margin-bottom: 20px;">
+ <el-table-column
+ label="搴忓彿"
+ align="center"
+ width="80">
+ <template slot-scope="scope">
+ <span>{{scope.$index + 1}}</span>
+ </template>
+ </el-table-column>
+ <el-table-column
+ align="center"
+ prop="solutionName"
+ label="淇濋櫓鏂规">
+ </el-table-column>
+ <el-table-column
+ align="center"
+ prop="applyCode"
+ label="淇濆崟鍙�">
+ </el-table-column>
+ <el-table-column
+ align="center"
+ label="閲戦">
+ <template slot-scope="{row}">
+ <span style="color:rgba(249, 86, 1, 0.996078431372549);">{{row.totalFee}}</span>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ <template v-slot:footer>
+ <el-button @click="close">杩斿洖</el-button>
+ </template>
+ </GlobalWindow>
+</template>
+
+<script>
+ import BaseOpera from '@/components/base/BaseOpera'
+ import GlobalWindow from '@/components/common/GlobalWindow'
+ import { getDetail } from '@/api/business/taxes'
+ import { mapState } from 'vuex'
+ export default {
+ name: 'commissionDetails',
+ extends: BaseOpera,
+ components: { GlobalWindow },
+ data () {
+ return {
+ list1: [],
+ list2: [],
+ totalPrice: 0,
+ form: {
+ id: null,
+ type: '',
+ addr: ''
+ }
+ }
+ },
+ created () {
+ this.config({
+ api: '/business/taxes',
+ 'field.id': 'id'
+ })
+ },
+ computed: {
+ ...mapState(['userInfo'])
+ },
+ methods: {
+ open (title, target) {
+ this.title = title
+ this.visible = true
+ this.list1 = []
+ this.list2 = []
+ this.$nextTick(() => {
+ for (const key in this.form) {
+ this.form[key] = target[key]
+ }
+ this.getData()
+ })
+ },
+ close () {
+ this.visible = false
+ },
+ getData() {
+ getDetail(this.form.id)
+ .then(res => {
+ let price = 0
+ this.list1 = res.applyList
+ this.list2 = res.delTaxList
+ if (this.list1 && this.list1.length > 0) {
+ this.list1.forEach(item => {
+ price += item.totalFee
+ })
+ }
+ if (this.list2 && this.list2.length > 0) {
+ this.list2.forEach(row => {
+ price += row.totalFee
+ })
+ }
+ this.totalPrice = price
+ })
+ },
+ getSummaries1 (param) {
+ const { columns, data } = param
+ const sums = []
+ columns.forEach((column, index) => {
+ if (index === 0) {
+ sums[index] = '鍚堣'
+ } else if (index == 3) {
+ let price = 0
+ data.forEach(item => {
+ price += item.totalFee
+ })
+ sums[index] = price
+ }
+ })
+ return sums;
+ },
+ getSummaries2 (param) {
+ const { columns, data } = param
+ const sums = []
+ columns.forEach((column, index) => {
+ if (index === 0) {
+ sums[index] = '鍚堣'
+ } else if (index == 5) {
+ let price = 0
+ data.forEach(item => {
+ price += item.totalFee
+ })
+ sums[index] = price
+ }
+ })
+ return sums;
+ }
+ }
+ }
+</script>
+
+<style lang="scss" scoped>
+ ::v-deep .el-table__footer-wrapper tbody td {
+ cursor: pointer;
+ text-align: center;
+ &:nth-child(5) {
+ color:rgba(249, 86, 1, 0.996078431372549);
+ }
+ }
+ .red {
+ color: red;
+ }
+ .info {
+ width: 100%;
+ .info_label {
+ width: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ margin-bottom: 20px;
+ span {
+ font-size: 14px;
+ font-weight: 500;
+ color: #000000;
+ }
+ }
+ .info_list {
+ width: 100%;
+ display: flex;
+ align-items: left;
+ flex-wrap: wrap;
+ .list::v-deep {
+ width: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ margin-bottom: 15px;
+ .el-radio__label {
+ color: black;
+ font-size: 14px;
+ }
+ .list_label {
+ color: black;
+ font-size: 14px;
+ margin-right: 20px;
+ }
+ .list_val {
+ flex: 1;
+ display: flex;
+ align-items: center;
+ .list_val_label {
+ font-size: 14px;
+ color: black;
+ flex-shrink: 0;
+ margin-right: 15px;
+ }
+ .list_val_info {
+ flex: 1;
+ font-size: 14px;
+ color: black;
+ }
+ }
+ }
+ .info_list_item {
+ width: 50%;
+ display: flex;
+ align-items: start;
+ font-size: 14px;
+ margin-bottom: 20px;
+ .info_list_item_label {
+ width: 150px;
+ flex-shrink: 0;
+ }
+ .info_list_item_val {
+ flex: 1;
+ display: flex;
+ align-items: center;
+ .image {
+ width: 100px;
+ height: 100px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ overflow: hidden;
+ img {
+ width: 100%;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ .form {
+ width: 100%;
+ display: flex;
+ flex-direction: column;
+ .form_item {
+ width: 100%;
+ display: flex;
+ align-items: center;
+ margin-bottom: 20px;
+ &:last-child {
+ margin-bottom: 0 !important;
+ }
+ .form_item_label {
+ width: 100px;
+ flex-shrink: 0;
+ font-size: 14px;
+ color: black;
+ }
+ .form_item_val {
+ flex: 1;
+ min-height: 35px;
+ display: flex;
+ align-items: center;
+ input {
+ width: 100%;
+ height: 100%;
+ font-size: 14px;
+ color: black;
+ padding: 5px 10px;
+ outline: none;
+ box-sizing: border-box;
+ border: 1px solid #ececec;
+ }
+ }
+ }
+ }
+</style>
diff --git a/company/src/components/enterprise/directInvoicingApplication.vue b/company/src/components/enterprise/directInvoicingApplication.vue
index f5dbcc1..9ece041 100644
--- a/company/src/components/enterprise/directInvoicingApplication.vue
+++ b/company/src/components/enterprise/directInvoicingApplication.vue
@@ -188,6 +188,9 @@
open (title, target) {
this.title = title
this.visible = true
+ this.type = '0'
+ this.val = ''
+ this.val1 = ''
this.list1 = []
this.list2 = []
this.$nextTick(() => {
diff --git a/company/src/components/enterprise/entrustedInvoicingApplication.vue b/company/src/components/enterprise/entrustedInvoicingApplication.vue
index 1406ffc..95a98d1 100644
--- a/company/src/components/enterprise/entrustedInvoicingApplication.vue
+++ b/company/src/components/enterprise/entrustedInvoicingApplication.vue
@@ -34,10 +34,19 @@
<div class="info_list_item_label">寮�绁ㄩ噾棰濓細</div>
<div class="info_list_item_val" style="color:rgba(249, 86, 1, 0.996078431372549);">{{total}}</div>
</div>
- <div class="info_list_item" style="width: 100%;">
- <div class="info_list_item_label">鎺ユ敹鏂瑰紡锛�</div>
- <div class="info_list_item_val">鐢靛瓙鍙戠エ</div>
-<!-- <div v-if="model.type === 1" class="info_list_item_val">绾歌川鍙戠エ</div>-->
+ <div class="list" style="width: 100%;">
+ <el-radio v-model="type" label="0">鐢靛瓙鍙戠エ</el-radio>
+ <div class="list_val">
+ <div class="list_val_label">鎺ユ敹鍦板潃锛�</div>
+ <el-input v-model="val" :disabled="type === '1'" placeholder="111222333@qq.com"></el-input>
+ </div>
+ </div>
+ <div class="list" style="width: 100%;">
+ <el-radio v-model="type" label="1">绾歌川鍙戠エ</el-radio>
+ <div class="list_val">
+ <div class="list_val_label">鎺ユ敹鍦板潃锛�</div>
+ <el-input v-model="val1" :disabled="type === '0'" placeholder="瀹夊窘鐪佸悎鑲ュ競缁忔祹鎶�鏈紑鍙戝尯鑾茶姳璺互涓溿�佺煶闂ㄨ矾浠ュ崡鑾茶姳璺�1锛� 0551-63450845"></el-input>
+ </div>
</div>
</div>
<el-table
@@ -79,6 +88,7 @@
<script>
import BaseOpera from '@/components/base/BaseOpera'
import GlobalWindow from '@/components/common/GlobalWindow'
+ import { entrustInvoicing } from '@/api/business/taxes'
import { mapState } from 'vuex'
export default {
name: 'entrustedInvoicingApplication',
@@ -91,6 +101,9 @@
backInfo:'',
list: []
},
+ val: '',
+ val1: '',
+ type: '0',
rules: {
backInfo: [
{ required: true, message: '璇疯緭鍏ラ��鍥炶鏄�' }
@@ -99,11 +112,18 @@
}
},
created () {
- console.log(this.userInfo)
this.config({
api: '/business/taxes',
'field.id': 'id'
})
+ },
+ watch: {
+ type: {
+ handler(news) {
+ this.val = ''
+ this.val1 = ''
+ }
+ }
},
computed: {
...mapState(['userInfo']),
@@ -118,11 +138,41 @@
methods: {
open (title, target) {
this.title = title
+ this.type = '0'
+ this.val = ''
+ this.val1 = ''
this.visible = true
this.$nextTick(() => {
for (const key in this.form) {
this.form[key] = target[key]
}
+ })
+ },
+ confirm () {
+ if (!this.val && !this.val1) {
+ this.$message.warning('璇疯緭鍏ユ帴鏀跺湴鍧�')
+ return
+ }
+ this.isWorking = true
+ entrustInvoicing({
+ address: this.val || this.val1,
+ invoicingMoney: this.total,
+ taxDetialList: this.form.list.map(item => {
+ return {
+ insuranceApplyId: item.id,
+ fee: item.totalPrice,
+ applyCode: item.code
+ }
+ }),
+ type: this.type
+ }).then(res => {
+ this.visible = false
+ this.$tip.apiSuccess('鎿嶄綔鎴愬姛')
+ this.$emit('success')
+ }).catch(e => {
+ this.$tip.apiFailed(e)
+ }).finally(() => {
+ this.isWorking = false
})
},
getSummaries (param) {
@@ -131,7 +181,8 @@
columns.forEach((column, index) => {
if (index === 0) {
sums[index] = '鍚堣'
- } else if (index == 4) {
+ return
+ } else if (index == 3) {
let price = 0
data.forEach(item => {
price += item.totalPrice
@@ -139,6 +190,7 @@
sums[index] = price
}
})
+ return sums;
}
}
}
@@ -184,6 +236,28 @@
display: flex;
align-items: left;
flex-wrap: wrap;
+ .list::v-deep {
+ width: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ margin-bottom: 15px;
+ .el-radio__label {
+ color: black;
+ font-size: 14px;
+ }
+ .list_val {
+ flex: 1;
+ display: flex;
+ align-items: center;
+ .list_val_label {
+ font-size: 14px;
+ color: black;
+ flex-shrink: 0;
+ margin-right: 15px;
+ }
+ }
+ }
.info_list_item {
width: 50%;
display: flex;
diff --git a/company/src/components/enterprise/entrustmentHistory.vue b/company/src/components/enterprise/entrustmentHistory.vue
index 50c2ca9..7861835 100644
--- a/company/src/components/enterprise/entrustmentHistory.vue
+++ b/company/src/components/enterprise/entrustmentHistory.vue
@@ -64,6 +64,7 @@
<el-button @click="close">杩斿洖</el-button>
</template>
<directInsuranceDetails ref="directInsuranceDetails" />
+ <commissionDetails ref="commissionDetails" />
</GlobalWindow>
</template>
@@ -72,16 +73,18 @@
import GlobalWindow from '@/components/common/GlobalWindow'
import { list } from '@/api/business/taxes'
import directInsuranceDetails from '@/components/enterprise/directInsuranceDetails'
+ import commissionDetails from '@/components/enterprise/commissionDetails'
export default {
name: 'entrustmentHistory',
extends: BaseOpera,
- components: { GlobalWindow, directInsuranceDetails },
+ components: { GlobalWindow, directInsuranceDetails, commissionDetails },
data () {
return {
form: {
id: null,
solutionsName: '',
- code: ''
+ code: '',
+ determine: ''
},
list: []
}
@@ -116,10 +119,14 @@
} else {
info = '寰呭鐞�'
}
- this.$refs.directInsuranceDetails.open(`寮�绁ㄨ鎯咃紙${info}锛塦, row)
+ if (this.form.determine === 1) {
+ this.$refs.commissionDetails.open(`寮�绁ㄨ鎯咃紙${info}锛塦, row)
+ } else {
+ this.$refs.directInsuranceDetails.open(`寮�绁ㄨ鎯咃紙${info}锛塦, row)
+ }
},
getList() {
- list({ insuranceApplyId: this.form.id })
+ list({ applyId: this.form.id })
.then(res => {
this.list = res
})
diff --git a/company/src/views/enterprise/entrustedInvoicing.vue b/company/src/views/enterprise/entrustedInvoicing.vue
index 4298144..988a7f2 100644
--- a/company/src/views/enterprise/entrustedInvoicing.vue
+++ b/company/src/views/enterprise/entrustedInvoicing.vue
@@ -41,7 +41,7 @@
<el-table-column prop="endTime" label="鎶曚繚澶辨晥鏃ユ湡"></el-table-column>
<el-table-column label="鎿嶄綔" min-width="180px">
<template slot-scope="{row}">
- <el-button type="text" @click="$refs.entrustmentHistory.open('寮�绁ㄥ巻鍙�', row)">寮�绁ㄥ巻鍙�</el-button>
+ <el-button type="text" @click="$refs.entrustmentHistory.open('寮�绁ㄥ巻鍙�', {...row, determine: 1})">寮�绁ㄥ巻鍙�</el-button>
</template>
</el-table-column>
</el-table>
--
Gitblit v1.9.3