MrShi
2024-03-08 d2bc6e096f0806b78ea92d4b90a21d3627d406c7
company/src/components/business/OperaTaxesWindow.vue
@@ -46,16 +46,18 @@
                    <div class="info_list_item_label">接收地址:</div>
                    <div class="info_list_item_val">{{ model.addr }}</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);">{{ model.price }}</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);">{{ model.price }}</div>-->
<!--                </div>-->
            </div>
            <el-table v-if="model.type ==0"
<!--            show-summary-->
<!--            :summary-method="getSummaries1"-->
            <el-table
                v-if="model.applyType ==0"
                :data="tableData"
                border
                show-summary
                :summary-method="getSummaries"
                style="width: 100%; margin-bottom: 20px;">
                <el-table-column
                    label="序号"
@@ -75,26 +77,23 @@
                    prop="applyCode"
                    label="保单号">
                </el-table-column>
                <el-table-column
                    align="center"
                    prop="createDate"
                    label="申请开票时间">
                </el-table-column>
                <el-table-column
                    align="center"
                    prop="fee"
                    label="金额">
                  <template slot-scope="{row}">
                    <span  style="color:rgba(249, 86, 1, 0.996078431372549);">{{row.fee}}</span>
                  </template>
                </el-table-column>
<!--                <el-table-column-->
<!--                    align="center"-->
<!--                    prop="fee"-->
<!--                    label="金额">-->
<!--                  <template slot-scope="{row}">-->
<!--                    <span  style="color:rgba(249, 86, 1, 0.996078431372549);">{{row.fee}}</span>-->
<!--                  </template>-->
<!--                </el-table-column>-->
            </el-table>
          <el-table v-if="model.type ==1"
                    :data="tableData1"
                    border
                    show-summary
                    :summary-method="getSummaries"
                    style="width: 100%; margin-bottom: 20px;">
<!--            show-summary-->
<!--            :summary-method="getSummaries"-->
          <el-table
            v-if="model.applyType ==1"
            :data="tableData1"
            border
            style="width: 100%; margin-bottom: 20px;">
            <el-table-column
                label="保单"
                align="center"
@@ -109,29 +108,34 @@
                label="保险方案">
            </el-table-column>
            <el-table-column
                v-if="model.applyType == 1"
                align="center"
                prop="applyCode"
                label="保单号">
            </el-table-column>
            <el-table-column
                align="center"
                prop="changApplyCode"
                label="批单号">
                <template slot-scope="{row}">
                    <span>{{row.changApplyCode ? row.changApplyCode : '-'}}</span>
                </template>
            </el-table-column>
            <el-table-column
                align="center"
                prop="fee"
                label="金额">
              <template slot-scope="{row}">
                <span  style="color:rgba(249, 86, 1, 0.996078431372549);">{{row.fee}}</span>
              </template>
            </el-table-column>
<!--            <el-table-column-->
<!--                align="center"-->
<!--                prop="fee"-->
<!--                label="金额">-->
<!--              <template slot-scope="{row}">-->
<!--                <span  style="color:rgba(249, 86, 1, 0.996078431372549);">{{row.fee}}</span>-->
<!--              </template>-->
<!--            </el-table-column>-->
          </el-table>
            <el-table v-if="model.type == 1"
<!--            show-summary-->
<!--            :summary-method="getSummaries"-->
            <el-table
                v-if="model.applyType == 1"
                :data="tableData2"
                border
                show-summary
                :summary-method="getSummaries"
                style="width: 100%; margin-bottom: 20px;">
                <el-table-column
                    label="冲红单"
@@ -156,23 +160,54 @@
                    prop="taxCreateDate"
                    label="申请开票时间">
                </el-table-column>
                <el-table-column
                    align="center"
                    prop="fee"
                    label="发票金额">
                  <template slot-scope="{row}">
                    <span  style="color:rgba(249, 86, 1, 0.996078431372549);">{{row.fee}}</span>
                  </template>
                </el-table-column>
<!--                <el-table-column-->
<!--                    align="center"-->
<!--                    prop="fee"-->
<!--                    label="发票金额">-->
<!--                  <template slot-scope="{row}">-->
<!--                    <span  style="color:rgba(249, 86, 1, 0.996078431372549);">{{row.fee}}</span>-->
<!--                  </template>-->
<!--                </el-table-column>-->
            </el-table>
        </div>
        <span style="font-size: 14px;" v-if="model.status === 2">退回原因:{{model.cancelInfo}} 开票员-{{model.cancelUserId}} {{model.cancelUserName}}</span>
      <el-dialog
          title="上传发票"
          :visible.sync="visible1"
          width="500px"
          style="margin-top: 150px"
          :show-close="false"
          append-to-body
          :close-on-click-modal="false"
          center>
        <div class="form">
          <div class="form_item">
            <div class="form_item_val">
              <el-form :model="form" ref="form" :rules="rules" style="width: 100%;">
                <el-form-item label="填写退回说明:":inline="true"  prop="backInfo">
                  <el-input   v-model="form.backInfo" type="textarea"  placeholder="请输入" />
                </el-form-item>
              </el-form>
            </div>
          </div>
          </div>
        <span slot="footer" class="dialog-footer">
                <el-button @click="visible1 = false">取 消</el-button>
                <el-button type="primary" @click="backDo()">提 交</el-button>
            </span>
      </el-dialog>
      <template v-slot:footer>
        <el-button v-if="userInfo.type !== 1 && model.status ==0 && !visible1" type="danger" @click="visible1 = true">退回申请</el-button>
        <el-button @click="visible = false">取消</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 { getDetail,backApply } from '@/api/business/taxes'
import { mapState } from 'vuex'
export default {
  name: 'OperaCompanyWindow',
  extends: BaseOpera,
@@ -181,16 +216,24 @@
    return {
      // 表单数据
      model: {},
      visible1:false,
      form: {
        id: null
        id: null,
        backInfo:''
      },
      // 验证规则
      rules: {},
      rules: {
        backInfo: [
          { required: true, message: '请输入退回说明' }
        ],
      },
      tableData: [],
      tableData1: [],
      tableData2: []
    }
  },
    computed: {
      ...mapState(['userInfo'])
    },
  created () {
    this.config({
      api: '/business/taxes',
@@ -201,25 +244,71 @@
    open (title, target) {
      this.title = title
      this.visible = true
      this.visible1 = false
      this.form.backInfo=''
      this.model = {}
      this.tableData = []
      this.tableData1 = []
      this.tableData2 = []
      this.model = target
      this.form.id = target.id
      this.getDetails()
    },
    backDo(){
      this.$refs.form.validate((valid) => {
        if (!valid) {
          return
        }
        this.isWorking = true
        backApply(this.form)
            .then(response => {
              this.visible1 = false
              this.getDetails()
              this.$emit('success')
            }).catch(err => {
          this.$tip.apiFailed(err)
        }).finally(() => {
          this.isWorking = false
        })
      })
    },
    getDetails  () {
      getDetail(this.model.id).then(res => {
        this.model = res
        if (res.type == 0) {
        if (res.applyType == 0) {
          this.tableData=(res.applyList)
        } else {
            console.log(res.applyList)
            console.log(res.delTaxList)
          this.tableData1=(res.applyList)
          this.tableData2=(res.delTaxList)
        }
        console.log(this.tableData)
      }).catch(err => {
      })
    },
    getSummaries1 (param) {
        const { columns, data } = param
        const sums = []
        columns.forEach((column, index) => {
            if (index === 0) {
                sums[index] = '合计'
            } else {
                if (index == 3) {
                    const values = data.map(item => Number(item[column.property]))
                    if (!values.every(value => isNaN(value))) {
                        sums[index] = values.reduce((prev, curr) => {
                            const value = Number(curr)
                            if (!isNaN(value)) {
                                return prev + curr
                            } else {
                                return prev
                            }
                        }, 0)
                    }
                }
            }
        })
        return  sums
    },
    getSummaries (param) {
      const { columns, data } = param
@@ -257,17 +346,17 @@
        color:rgba(249, 86, 1, 0.996078431372549);
      }
    }
    ::v-deep .el-table__header-wrapper   th:first-child .cell{
        color:rgba(249, 86, 1, 0.996078431372549) !important
    }
    ::v-deep  table:first-of-type th:first-child .cell{
         //color:rgba(249, 86, 1, 0.996078431372549) !important
    }
  /*  ::v-deep   .el-table--border th:first-child .cell {
      &:nth-child(2) {
        color:rgba(249, 86, 1, 0.996078431372549);
      }
    }*/
    /*   ::v-deep .el-table__header-wrapper   th:first-child .cell{
          color:rgba(249, 86, 1, 0.996078431372549) !important
       }
       ::v-deep  table:first-of-type th:first-child .cell{
            //color:rgba(249, 86, 1, 0.996078431372549) !important
       }
       ::v-deep   .el-table--border th:first-child .cell {
         &:nth-child(2) {
           color:rgba(249, 86, 1, 0.996078431372549);
         }
       }*/
    .info {
@@ -296,7 +385,7 @@
                font-size: 14px;
                margin-bottom: 20px;
                .info_list_item_label {
                    width: 150px;
                    width: 100px;
                    flex-shrink: 0;
                }
                .info_list_item_val {
@@ -318,4 +407,41 @@
            }
        }
    }
    .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>