MrShi
2024-02-04 7617ab95d74747e8fa784b207dcfcf7c77393a94
Mr.Shi
已添加2个文件
已修改6个文件
879 ■■■■■ 文件已修改
company/.env.development 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/api/business/taxes.js 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/assets/style/variables.scss 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/common/GlobalWindow.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/enterprise/directInsuranceDetails.vue 363 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/enterprise/directInvoicingApplication.vue 395 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/enterprise/entrustmentHistory.vue 59 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/views/enterprise/directInvoicing.vue 42 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/.env.development
@@ -2,13 +2,13 @@
NODE_ENV = 'development'
# ä¼ä¸šç«¯-仁康
#VUE_APP_API = 'http://192.168.0.134:10025/'
VUE_APP_API = 'http://192.168.0.134:10025/'
# å¹³å°ç«¯-仁康
# VUE_APP_API = 'http://192.168.0.134:10023/'
# å¹³å°ç«¯-萍姐
 VUE_APP_API = 'http://192.168.0.103:10023/'
# VUE_APP_API = 'http://192.168.0.103:10023/'
# VUE_APP_API = 'http://localhost:10023/'
# VUE_APP_API = 'http://localhost:10023/'
company/src/api/business/taxes.js
@@ -27,3 +27,15 @@
        trim: true
    })
}
// èŽ·å–ç›´ä¿æ•°æ®ä¿¡æ¯
export function getDirectTaxes (id) {
    return request.get(`/business/taxes/getDirectTaxes?id=${id}`)
}
// æäº¤ç›´æ‰˜æŠ•报开票
export function directInvoicing(data) {
    return request.post('/business/taxes/directInvoicing', data, {
        trim: true
    })
}
company/src/assets/style/variables.scss
@@ -10,7 +10,7 @@
// å¤´éƒ¨é«˜åº¦
$header-height: 60px;
// èœå•宽度
$menu-width: 208px;
$menu-width: 250px;
// é¡µé¢æœ€å°å®½åº¦
$page-min-width: 1000px;
company/src/components/common/GlobalWindow.vue
@@ -78,7 +78,7 @@
$input-height: 32px;
.global-window {
  top: 80px !important;
  left: 218px !important;
  left: 250px !important;
  // å¤´éƒ¨æ ‡é¢˜
  ::v-deep .el-drawer__header {
    padding: 0 10px 0 0;
company/src/components/enterprise/directInsuranceDetails.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,363 @@
<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>
            <!--      å†²çº¢å•      -->
            <el-table
                :data="list2"
                border
                show-summary
                :summary-method="getSummaries2"
                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="solutionsName"
                    label="保险方案">
                </el-table-column>
                <el-table-column
                    align="center"
                    prop="downCode"
                    label="发票号">
                </el-table-column>
                <el-table-column
                    align="center"
                    prop="createTime"
                    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: 'directInsuranceDetails',
        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 == 4) {
                        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>
company/src/components/enterprise/directInvoicingApplication.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,395 @@
<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%;">
                    <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
                :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="solutionsName"
                    label="保险方案">
                </el-table-column>
                <el-table-column
                    align="center"
                    prop="insuranceCode"
                    label="保单号">
                </el-table-column>
                <el-table-column
                    align="center"
                    label="金额">
                    <template slot-scope="{row}">
                        <span style="color:rgba(249, 86, 1, 0.996078431372549);">{{row.amount}}</span>
                    </template>
                </el-table-column>
            </el-table>
            <!--      å†²çº¢å•      -->
            <el-table
                :data="list2"
                border
                show-summary
                :summary-method="getSummaries2"
                @selection-change="handleSelectionChange"
                style="width: 100%; margin-bottom: 20px;">
                <el-table-column type="selection" fixed="left" width="55"></el-table-column>
                <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="solutionsName"
                    label="保险方案">
                </el-table-column>
                <el-table-column
                    align="center"
                    prop="downCode"
                    label="发票号">
                </el-table-column>
                <el-table-column
                    align="center"
                    prop="createTime"
                    label="申请开票时间">
                </el-table-column>
                <el-table-column
                    align="center"
                    label="金额">
                    <template slot-scope="{row}">
                        <span style="color:rgba(249, 86, 1, 0.996078431372549);">{{row.amount}}</span>
                    </template>
                </el-table-column>
            </el-table>
        </div>
    </GlobalWindow>
</template>
<script>
    import BaseOpera from '@/components/base/BaseOpera'
    import GlobalWindow from '@/components/common/GlobalWindow'
    import { getDirectTaxes, directInvoicing } from '@/api/business/taxes'
    import { mapState } from 'vuex'
    export default {
        name: 'directInvoicingApplication',
        extends: BaseOpera,
        components: { GlobalWindow },
        data () {
            return {
                list1: [],
                list2: [],
                form: {
                    id: null
                },
                setectData: [],
                type: '0',
                val: '',
                val1: '',
                rules: {
                    backInfo: [
                        { required: true, message: '请输入退回说明' }
                    ]
                }
            }
        },
        created () {
            this.config({
                api: '/business/taxes',
                'field.id': 'id'
            })
        },
        computed: {
            ...mapState(['userInfo']),
            totalPrice() {
                let price = 0
                this.list1.forEach(item => {
                    price += item.amount
                })
                this.setectData.forEach(item => {
                    this.list2.forEach(row => {
                        if (item.id === row.id) {
                            price += row.amount
                        }
                    })
                })
                return price
            }
        },
        watch: {
            type: {
                handler(news) {
                    this.val = ''
                    this.val1 = ''
                }
            }
        },
        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()
                })
            },
            confirm () {
                if (!this.val && !this.val1) {
                    this.$message.warning('请输入接收地址')
                    return
                }
                if (this.setectData.length === 0) {
                    this.$message.warning('至少勾选一项冲红单数据')
                    return
                }
                this.isWorking = true
                directInvoicing({
                    address: this.val1 || this.val,
                    id: this.form.id,
                    invoicingDetailDTOList: this.setectData.map(item => item.id),
                    invoicingMoney: this.totalPrice,
                    type: this.type
                }).then(res => {
                    this.visible = false
                    this.$tip.apiSuccess('操作成功')
                    this.$emit('success')
                }).catch(e => {
                    this.$tip.apiFailed(e)
                }).finally(() => {
                    this.isWorking = false
                })
            },
            handleSelectionChange(e) {
                this.setectData = e
            },
            getData() {
                getDirectTaxes(this.form.id)
                    .then(res => {
                        res.forEach(item => {
                            if (item.type === 2) {
                                this.list2.push(item)
                            } else {
                                this.list1.push(item)
                            }
                        })
                    })
            },
            getSummaries1 (param) {
                const { columns, data } = param
                const sums = []
                columns.forEach((column, index) => {
                    if (index === 0) {
                        sums[index] = '合计'
                    } else if (index == 4) {
                        let price = 0
                        data.forEach(item => {
                            price += item.amount
                        })
                        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.amount
                        })
                        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_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;
                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>
company/src/components/enterprise/entrustmentHistory.vue
@@ -20,28 +20,50 @@
                </template>
            </el-table-column>
            <el-table-column
                prop="solutionName"
                prop="createDate"
                label="申请开票时间">
            </el-table-column>
            <el-table-column
                prop="bdCode"
                label="开票状态">
                <template slot-scope="{row}">
                    <span v-if="row.status === 1">已开票</span>
                    <span v-else-if="row.status === 2">平台撤回</span>
                    <span v-else-if="row.status === 3">已冲红</span>
                    <span v-else>待处理</span>
                </template>
            </el-table-column>
            <el-table-column
                prop="applyChangeId"
                prop="price"
                label="开票金额(元)">
            </el-table-column>
            <el-table-column
                prop="duName"
                label="接收方式">
                <template slot-scope="{row}">
                    <span v-if="row.type === 1">纸质发票</span>
                    <span v-else>电子发票</span>
                </template>
            </el-table-column>
            <el-table-column
                label="电子发票">
                <template slot-scope="{row}">
                    <el-image
                        style="width: 50px; height: 50px"
                        :src="row.imgurlFull"
                        :preview-src-list="[row.imgurlFull]">
                    </el-image>
                </template>
            </el-table-column>
            <el-table-column
                label="操作">
                <template slot-scope="{row}">
                    <el-button type="text">申请详情</el-button>
                    <el-button type="text" @click="see(row)">申请详情</el-button>
                </template>
            </el-table-column>
        </el-table>
        <template v-slot:footer>
            <el-button @click="close">返回</el-button>
        </template>
        <directInsuranceDetails ref="directInsuranceDetails" />
    </GlobalWindow>
</template>
@@ -49,10 +71,11 @@
    import BaseOpera from '@/components/base/BaseOpera'
    import GlobalWindow from '@/components/common/GlobalWindow'
    import { list } from '@/api/business/taxes'
    import directInsuranceDetails from '@/components/enterprise/directInsuranceDetails'
    export default {
        name: 'entrustmentHistory',
        extends: BaseOpera,
        components: { GlobalWindow },
        components: { GlobalWindow, directInsuranceDetails },
        data () {
            return {
                form: {
@@ -72,6 +95,7 @@
        methods: {
            open (title, target) {
                this.title = title
                this.list = []
                this.visible = true
                // ç¼–辑
                this.$nextTick(() => {
@@ -81,13 +105,34 @@
                    this.getList()
                })
            },
            see(row) {
                let info = ''
                if (row.status === 1) {
                    info = '已开票'
                } else if (row.status === 2) {
                    info = '平台撤回'
                } else if (row.status === 3) {
                    info = '已冲红'
                } else {
                    info = '待处理'
                }
                this.$refs.directInsuranceDetails.open(`开票详情(${info})`, row)
            },
            getList() {
                list({ insuranceApplyId: this.form.id })
                    .then(res => {
                        console.log(res)
                        this.list = res
                    })
            },
            close () {
                this.visible = false
            }
        }
    }
</script>
<style>
    .el-image-viewer__wrapper {
        z-index: 3000 !important;
    }
</style>
company/src/views/enterprise/directInvoicing.vue
@@ -4,15 +4,12 @@
        <template v-slot:table-wrap>
            <ul style="margin-bottom: 30px;width: 100%;display: flex;align-items: center;justify-content: space-between;">
                <li style="font-size: 18px;font-weight: bold;">申请开票</li>
                <li><el-button type="primary" @click="apply">提交开票</el-button></li>
            </ul>
            <el-table
                    v-loading="isWorking.search"
                    :data="tableData.list"
                    stripe
                    @selection-change="handleSelectionChange"
                v-loading="isWorking.search"
                :data="tableData.list"
                stripe
            >
                <el-table-column type="selection" fixed="left" width="55"></el-table-column>
                <el-table-column label="序号" width="80px">
                    <template slot-scope="scope">
                        <span>{{scope.$index + 1}}</span>
@@ -42,18 +39,19 @@
                <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.directInvoicingApplication.open('开票申请', row)">申请开票</el-button>
                    </template>
                </el-table-column>
            </el-table>
            <pagination
                    @size-change="handleSizeChange"
                    @current-change="handlePageChange"
                    :pagination="tableData.pagination"
                @size-change="handleSizeChange"
                @current-change="handlePageChange"
                :pagination="tableData.pagination"
            >
            </pagination>
        </template>
        <!--   ç”³è¯·    -->
        <entrustedInvoicingApplication ref="entrustedInvoicingApplication" @success="handlePageChange" />
        <directInvoicingApplication ref="directInvoicingApplication" @success="handlePageChange" />
        <!--    å¼€ç¥¨åŽ†å²    -->
        <entrustmentHistory ref="entrustmentHistory" @success="handlePageChange" />
    </TableLayout>
@@ -63,12 +61,12 @@
    import BaseTable from '@/components/base/BaseTable'
    import TableLayout from '@/layouts/TableLayout'
    import Pagination from '@/components/common/Pagination'
    import entrustedInvoicingApplication from '@/components/enterprise/entrustedInvoicingApplication'
    import directInvoicingApplication from '@/components/enterprise/directInvoicingApplication'
    import entrustmentHistory from '@/components/enterprise/entrustmentHistory'
    export default {
        name: 'directInvoicing',
        extends: BaseTable,
        components: { TableLayout, Pagination, entrustedInvoicingApplication, entrustmentHistory },
        components: { TableLayout, Pagination, directInvoicingApplication, entrustmentHistory },
        data () {
            return {
                searchForm: {
@@ -86,25 +84,7 @@
            this.search()
        },
        methods: {
            apply() {
                if (this.tableData.selectedRows.length === 0) {
                    this.$message.warning('至少选择一项内容')
                    return
                }
                for (let i = 0; i < this.tableData.selectedRows.length; i++) {
                    if (this.tableData.selectedRows[i].currentFee - this.tableData.selectedRows[i].taxesMoney === 0) {
                        this.$message.warning(`第${i + 1}项可开票金额为0,不能进行开票!`)
                        return
                    }
                }
                let obj = {}
                obj.list = JSON.parse(JSON.stringify(this.tableData.selectedRows))
                obj.list.forEach(item => {
                    item.totalPrice = item.currentFee - item.taxesMoney
                })
                console.log(obj.list)
                this.$refs.entrustedInvoicingApplication.open('申请开票', obj)
            }
        }
    }
</script>