Ver Fonte

平台协议应收bug修改

祁鹏飞 há 5 meses atrás
pai
commit
2da2c421a3

+ 268 - 355
src/views/platform/platformRecord.vue

@@ -1,388 +1,301 @@
 <template>
-    <div class="invoiceRecord">
-        <el-form v-model="form" label-width="80">
-            <el-row :gutter="20">
-                <el-col :span="8">
-                    <el-form-item prop="recordId" label="记录编号">
-                        <el-input v-model="form.recordId"></el-input>
-                    </el-form-item>
-                </el-col>
-                <el-col :span="8">
-                    <el-form-item prop="companyId" label="保险公司">
-                        <el-select v-model="form.companyId" placeholder="请选择" clearable filterable>
-                            <el-option v-for="item in companyList" :key="item.companyCode" :value="item.companyCode" :label="item.name"></el-option>
-                        </el-select>
-                    </el-form-item>
-                </el-col>
-                <el-col :span="8">
-                    <el-form-item prop="invoiceParty" label="开票方">
-                        <el-select v-model="form.invoiceParty">
-                            <el-option value="1" label="1"></el-option>
-                        </el-select>
-                    </el-form-item>
-                </el-col>
-                <el-col :span="8">
-                    <el-form-item prop="accountsReceivable" label="应收项">
-                        <el-select v-model="form.accountsReceivable">
-                            <el-option value="1" label="1"></el-option>
-                        </el-select>
-                    </el-form-item>
-                </el-col>
-                <el-col :span="8">
-                    <el-form-item prop="settlementStatus" label="结算状态">
-                        <el-select v-model="form.settlementStatus">
-                            <el-option value="1" label="1"></el-option>
-                        </el-select>
-                    </el-form-item>
-                </el-col>
-                <el-col :span="8">
-                    <el-form-item prop="invoicePerson" label="开票人">
-                        <el-input v-model="form.invoicePerson"></el-input>
-                    </el-form-item>
-                </el-col>
-                <el-col :span="8">
-                    <el-form-item prop="invoiceDate" label="开票时间">
-                        <el-date-picker
-                            type="daterange"
-                            v-model="form.invoiceDate"
-                            value-format="YYYY-MM-DD HH:mm:ss"
-                            format="YYYY-MM-DD HH:mm:ss"
-                        />
-                    </el-form-item>
-                </el-col>
-                <el-col :span="16">
-                    <el-button type="primary" @click="search">查询</el-button>
-                    <el-button plain type="primary" @click="reset">重置</el-button>
-                </el-col>
-            </el-row>
-        </el-form>
-        <el-table
-            :data="tableData"
-            style="height: calc(100% - 210px)"
-        >
-            <el-table-column prop="recordId" label="开票记录编号" width="200"></el-table-column>
-            <el-table-column prop="companyId" label="保险公司" width="150">
-                <template #default="scope">
-                    {{ getCompanyName(scope.row) }}
-                </template>
-            </el-table-column>
-            <el-table-column prop="invoiceParty" label="开票方" width="150"></el-table-column>
-            <el-table-column prop="accountsReceivable" label="应收项" width="100"></el-table-column>
-            <el-table-column prop="receivableSupervisePremium" label="应收手续费" width="120"></el-table-column>
-            <el-table-column prop="overinflatedAmount" label="虚增金额" width="120"></el-table-column>
-            <el-table-column prop="taxPoint" label="税点" width="120"></el-table-column>
-            <el-table-column prop="actualReceivedAmount" label="开票金额" width="120"></el-table-column>
-            <el-table-column prop="receivableSupervisePremium" label="应收金额" width="120"></el-table-column>
-            <el-table-column prop="settlementStatus" label="结算状态" width="120"></el-table-column>
-            <el-table-column prop="a" label="已结算" width="120"></el-table-column>
-            <el-table-column prop="createBy" label="开票人" width="120"></el-table-column>
-            <el-table-column prop="createTime" label="开票时间" width="150"></el-table-column>
-            <el-table-column label="操作" width="150" fixed="right">
-                <template #default="scope">
-                    <el-button link type="primary" @click="handleCount(scope.row)">结算</el-button>
-                    <el-button link type="primary" @click="handleView(scope.row)">明细查询</el-button>
-                </template>
-            </el-table-column>
-        </el-table>
-        <div class="pagination">
-            <el-pagination
-                v-model:current-page="pages"
-                v-model:page-size="size"
-                :page-sizes="[10, 20, 30, 40]"
-                layout="total, sizes, prev, pager, next, jumper"
-                :total="total"
-                @size-change="handleSizeChange"
-                @current-change="handleCurrentChange"
-            ></el-pagination>
-        </div>
-        <el-dialog
-            v-model="countShow"
-            width="600"
-            title="开票并结算"
-        >
-            <el-form ref="CountForm" :model="countForm" :rules="countRules" label-width="120">
-                <el-form-item prop="invoiceParty" label="开票方">
-                    <el-input v-model="countForm.invoiceParty" placeholder="请输入"></el-input>
-                </el-form-item>
-                <el-form-item prop="receivableSupervisePremium" label="应收手续费">
-                    <el-input v-model="countForm.receivableSupervisePremium" placeholder="请输入"></el-input>
-                </el-form-item>
-                <el-form-item prop="overinflatedAmount" label="虚增金额">
-                    <el-input v-model="countForm.overinflatedAmount" placeholder="请输入"></el-input>
-                </el-form-item>
-                <el-form-item prop="taxPoint" label="税点">
-                    <el-input v-model="countForm.taxPoint" placeholder="请输入"></el-input>
-                </el-form-item>
-                <el-form-item prop="receivableSupervisePremium" label="应收金额">
-                    <el-input v-model="countForm.receivableSupervisePremium" placeholder="请输入"></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="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">
-                        <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 plain @click="handelCancel">取消</el-button>
-                <el-button type="primary" @click="handelComfirm(CountForm)">确定</el-button>
-            </template>
-        </el-dialog>
-        <el-dialog
-            v-model="imageShow"
-            width="400"
-            title="查看"
-        >
-            <img class="bigImage" :src="bigImageUrl">
-        </el-dialog>
+  <div class="invoiceRecord">
+    <el-form v-model="form" label-width="120">
+      <el-row :gutter="20">
+        <el-col :span="8">
+          <el-form-item prop="settlementId" label="结算记录编号">
+            <el-input v-model="form.settlementId"></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item prop="a" label="保险公司">
+            <el-select
+              v-model="form.companyId"
+              placeholder="请选择"
+              clearable
+              filterable
+            >
+              <el-option
+                v-for="item in companyList"
+                :key="item.companyCode"
+                :value="item.companyCode"
+                :label="item.name"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item prop="invoiceParty" label="开票方">
+            <el-select v-model="form.invoiceParty">
+              <el-option value="1" label="1"></el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item prop="invoiceType" label="应收项">
+            <el-select v-model="form.invoiceType">
+              <el-option value="1" label="1"></el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item prop="status" label="结算状态">
+            <el-select v-model="form.status">
+              <el-option value="1" label="1"></el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item prop="settlementPerson" label="结算人">
+            <el-input v-model="form.settlementPerson"></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item prop="settlementTime" label="结算时间">
+            <el-date-picker
+              v-model="form.settlementTime"
+              type="daterange"
+              format="YYYY-MM-DD"
+              value-format="YYYY-MM-DD"
+            />
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item prop="invoiceId" label="开票记录编号">
+            <el-input v-model="form.invoiceId"></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8" style="display: flex; justify-content: flex-end">
+          <el-button type="primary" @click="search()">查询</el-button>
+          <el-button plain type="primary" @click="reset()">重置</el-button>
+          <el-button
+            type="primary"
+            @click="exportSuperviseSettlementExcel()"
+            >导出结算记录</el-button
+          >
+        </el-col>
+      </el-row>
+    </el-form>
+    <el-table class="tableRecord" :data="tableData">
+      <el-table-column
+        prop="settlementId"
+        label="结算记录编号"
+        width="200"
+      ></el-table-column>
+      <el-table-column
+        prop="companyName"
+        label="保险公司"
+        width="200"
+      ></el-table-column>
+      <el-table-column
+        prop="invoiceParty"
+        label="开票方"
+        width="150"
+      ></el-table-column>
+      <el-table-column
+        prop="invoiceType"
+        label="应收项"
+        width="100"
+      ></el-table-column>
+      <el-table-column
+        prop="taxPoint"
+        label="税点"
+        width="100"
+      ></el-table-column>
+      <el-table-column
+        prop="actualReceivedAmount"
+        label="实收金额"
+        width="100"
+      ></el-table-column>
+      <el-table-column
+        prop="receivePaymentDate"
+        label="收款日期"
+        width="150"
+      ></el-table-column>
+      <el-table-column label="收款凭证" width="100">
+        <template #default="scope">
+          <el-button link type="primary" @click="view">查看凭证(1)</el-button>
+        </template>
+      </el-table-column>
+      <el-table-column
+        prop="createBy"
+        label="结算人"
+        width="100"
+      ></el-table-column>
+      <el-table-column
+        prop="createTime"
+        label="结算时间"
+        width="200"
+      ></el-table-column>
+      <el-table-column prop="invoiceId" label="开票记录编号"></el-table-column>
+    </el-table>
+    <div class="pagination">
+      <el-pagination
+        v-model:current-page="pages"
+        v-model:page-size="size"
+        :page-sizes="[10, 20, 30, 40]"
+        layout="total, sizes, prev, pager, next, jumper"
+        :total="total"
+        @size-change="handleSizeChange($event)"
+        @current-change="handleCurrentChange($event)"
+      ></el-pagination>
     </div>
+  </div>
 </template>
 
 <script setup lang="ts">
-
 import api from "@/api";
-import { ElMessage } from 'element-plus'
-
-let form = ref({})
-let tableData = ref([])
 
-const getCompanyName = (row) => {
-    let company = companyList.value.find(item => item.companyCode === row.companyId)
-    return company?.name || ''
-}
+let form = ref({});
+let tableData = ref([]);
 
-let pages = ref(1)
-let size = ref(10)
-let total = ref(0)
+let pages = ref(1);
+let size = ref(10);
+let total = ref(0);
 const handleSizeChange = (size) => {
-    size.value = size
-    initList()
-}
+  size.value = size;
+  initList();
+};
 const handleCurrentChange = (pages) => {
-    pages.value = pages
-    initList()
-}
+  pages.value = pages;
+  initList();
+};
 const search = () => {
-    pages.value = 1
-    size.value = 10
-    initList()
-}
+  pages.value = 1;
+  size.value = 10;
+  initList();
+};
 const reset = () => {
-    form.value = {
-        recordId: '',
-        companyId: '',
-        invoiceParty: '',
-        accountsReceivable: '',
-        settlementStatus: '',
-        invoicePerson: '',
-        invoiceDate: []
-    }
-    pages.value = 1
-    size.value = 10
-    initList()
-}
-
-let countShow = ref(false)
-let countForm = ref({})
-let countRules = ref({
-    actualReceivedAmount: [{ required: true, trigger: "blur", message: "请输入" }],
-    receivePaymentDate: [{ required: true, trigger: "change", message: "请选择" }],
-    attachmentIds: [{ required: true, message: "请上传" }]
-})
-let imageUrl = ref([])
-let attachmentIds = ref([])
-let invoicingId = ref('')
-const handleCount = (row) => {
-    countShow.value = true
-    invoicingId.value = row.id
-    countForm.value = {
-        invoiceParty: row.invoiceParty,
-        receivableSupervisePremium: row.receivableSupervisePremium,
-        overinflatedAmount: row.overinflatedAmount,
-        taxPoint: row.taxPoint,
-    }
-}
-const uploadImage = async (file, fileList) => {
-    let files = file.raw
-    const params = new FormData(); // 声明formData数据类型
-    params.append("file", files);
-    params.append("type", "image");
-    const { code, data, msg } = await api.commonApi.fileUpload(params)
-    if(code == 200) {
-        imageUrl.value.push(data.downloadUrl)
-        attachmentIds.value.push(data.id)
-    }
-}
-const handleView = () => {
+  form.value = {
+    recordId: "",
+    companyId: "",
+    invoiceParty: "",
+    accountsReceivable: "",
+    settlementStatus: "",
+    invoicePerson: "",
+    invoiceDate: [],
+  };
+  pages.value = 1;
+  size.value = 10;
+  initList();
+};
 
+const exportSuperviseSettlementExcel = () => {
+    api.settlementApi.exportSuperviseSettlementExcel({}).then((res: any) => {
+        const blob = new Blob([res], { type: 'application/vnd.ms-excel' });
+        const fileName = '手续费应收结算报表明细' + new Date().getTime() + '.xlsx';
+        if ('download' in document.createElement('a')) {
+            const elink = document.createElement('a');
+            elink.download = fileName;
+            elink.style.display = 'none';
+            elink.href = URL.createObjectURL(blob);
+            document.body.appendChild(elink);
+            elink.click();
+            URL.revokeObjectURL(elink.href);
+            document.body.removeChild(elink);
+        } else {
+            navigator.msSaveBlob(blob, fileName);
+        }
+    })
 }
 
 // 列表
 const initList = () => {
-    api.invoiceRecordApi.invoiceRecord({
-        pages: pages.value,
-        size: size.value,
-        invoiceType: '3',
-        ...form.value
-    }).then((res: any) => {
-        if(res.code == 200) {
-            tableData.value = res.data.records
-            total.value = res.data.total
-        }
+  api.settlementApi
+    .superviseSettlementExcel({
+      pages: pages.value,
+      size: size.value,
+      agreementType: "1",
+      invoiceTypes: ["1", "3"],
+      ...form.value,
     })
-}
+    .then((res: any) => {
+      if (res.code == 200) {
+        tableData.value = res.data.records;
+        total.value = res.data.total;
+      }
+    });
+};
 
 // 保险公司
-let companyList = ref([])
+let companyList = ref([]);
 const initCompany = () => {
-    api.insuranceApi.leftList('').then((res: any) => {
-        if(res.code == 200) {
-            companyList.value = res.data
-        }
-    })
-}
-
-let imageShow = ref(false)
-let bigImageUrl = ref('')
-const handelViewImage = (item, index) => {
-    bigImageUrl.value = item
-    imageShow.value = true
-}
-const handelDelImage = (item, index) => {
-    imageUrl.value.splice(index, 1)
-    attachmentIds.value.splice(index, 1)
-}
-
-let CountForm = ref()
-const handelComfirm = (CountForm) => {
-    countForm.value.attachmentIds = attachmentIds.value
-    if(!CountForm) return
-    CountForm.validate((valid) => {
-        if(valid) {
-            api.financeApi.settlement({
-                invoicingId: invoicingId.value,
-                actualReceivedAmount: countForm.value.actualReceivedAmount,
-                receivePaymentDate: countForm.value.receivePaymentDate,
-                attachmentIds: countForm.value.attachmentIds
-            }).then((res: any) => {
-                countShow.value = false
-                if(res.code == 200) {
-                    ElMessage({
-                        message: res.msg,
-                        type: 'success'
-                    })
-                } else {
-                    ElMessage({
-                        message: res.msg,
-                        type: 'warning'
-                    })
-                }
-            })
-        }
-    })
-}
-
-const handelCancel = () => {
-    countShow.value = false
-    countForm.value = {
-        invoiceParty: '',
-        receivableSupervisePremium: '',
-        overinflatedAmount: '',
-        taxPoint: '',
-        actualReceivedAmount: '',
-        receivePaymentDate: [],
-        attachmentIds: []
+  api.insuranceApi.leftList("").then((res: any) => {
+    if (res.code == 200) {
+      companyList.value = res.data;
     }
-    imageUrl.value = []
-}
+  });
+};
 
 onMounted(() => {
-    initList();
-    initCompany();
-})
-
+  initList();
+  initCompany();
+});
 </script>
 
 <style scoped lang="scss">
-.invoiceRecord{
-    height: calc(100vh - 134px);
-    width: calc(100% - 24px);
-    margin: 12px auto;
-    padding: 12px;
-    background: #FFFFFF;
-    overflow-y: auto;
-    .pagination{
-        margin-top: 20px;
-        display: flex;
-        justify-content: flex-end;
+.tableRecord {
+  height: calc(100% - 210px);
+}
+.invoiceRecord {
+  height: calc(100vh - 134px);
+  width: calc(100% - 24px);
+  margin: 12px auto;
+  padding: 12px;
+  background: #ffffff;
+  overflow-y: auto;
+  .pagination {
+    margin-top: 20px;
+    display: flex;
+    justify-content: flex-end;
+  }
+  .upload-btn {
+    :deep(.el-button) {
+      width: 80px;
+      height: 80px;
+      font-size: 30px;
+      color: #ccc;
     }
-    .upload-btn{
-        :deep(.el-button) {
-            width: 80px;
-            height: 80px;
-            font-size: 30px;
-            color: #ccc;
-        }
+  }
+  .imageDiv {
+    position: relative;
+    width: 80px;
+    height: 80px;
+    margin: 0 10px 10px 0;
+    &:hover {
+      .model {
+        display: flex;
+        align-items: center;
+        justify-content: center;
+        background-color: rgba(0, 0, 0, 0.3);
+      }
     }
-    .imageDiv{
-        position: relative;
-        width: 80px;
-        height: 80px;
-        margin: 0 10px 10px 0;
-        &:hover{
-            .model{
-                display: flex;
-                align-items: center;
-                justify-content: center;
-                background-color: rgba(0, 0, 0, .3);
-            }
-        }
-        img{
-            display: block;
-            width: 100%;
-            height: 100%;
-            border-radius: 4px;
-        }
-        .model{
-            position: absolute;
-            width: 80px;
-            height: 80px;
-            border-radius: 4px;
-            display: none;
-            top: 0;
-            left: 0;
-            .icon-view, .icon-del{
-                color: #FFFFFF;
-                margin: 0 10px;
-                cursor: pointer;
-            }
-        }
+    img {
+      display: block;
+      width: 100%;
+      height: 100%;
+      border-radius: 4px;
     }
-    .bigImage{
-        display: block;
-        width: 100%;
-        height: 100%;
+    .model {
+      position: absolute;
+      width: 80px;
+      height: 80px;
+      border-radius: 4px;
+      display: none;
+      top: 0;
+      left: 0;
+      .icon-view,
+      .icon-del {
+        color: #ffffff;
+        margin: 0 10px;
+        cursor: pointer;
+      }
     }
+  }
+  .bigImage {
+    display: block;
+    width: 100%;
+    height: 100%;
+  }
 }
 </style>

+ 1 - 0
src/views/receivable/documentary/documentaryReport.vue

@@ -455,6 +455,7 @@ const initData1 = () => {
 }
 const initData2 = () => {
     api.settlementApi.superviseSettlementExcel({
+        agreementType: '2',
         settlementId: recordForm1.settlementId,
         companyId: recordForm1.companyId,
         invoiceParty: recordForm1.invoiceParty,

+ 1 - 0
src/views/receivable/handingFee/report.vue

@@ -462,6 +462,7 @@ const initData1 = () => {
 }
 const initData2 = () => {
     api.settlementApi.superviseSettlementExcel({
+        agreementType: '2',
         settlementId: recordForm1.settlementId,
         companyId: recordForm1.companyId,
         invoiceParty: recordForm1.invoiceParty,

+ 9 - 11
src/views/receivable/ticket.vue

@@ -291,17 +291,16 @@ const handleBack = () => {
     router.back()
 }
 const handleTicket = () => {
-    let arr = JSON.parse(route.query.selectedList).map(item => {
-        return item.id
-    })
+    const selectedList=route.query.selectedList?JSON.parse(route.query.selectedList):[]
     api.financeApi.invoicingCheck({
-        incomeIds: arr,
+        incomeIds: selectedList.map(v =>v.id),
         companyId: route.query.id,
         invoiceType: route.query.invoiceType
     }).then((res: any) => {
         if(res.code == 200) {
             api.financeApi.commissionInvoicing({
-                incomeIds: arr,
+                incomeIds: selectedList.map(v =>v.id),
+                orderNos: selectedList.map(v =>v.orderNo),
                 companyId: route.query.id,
                 invoiceType: route.query.invoiceType
             }).then((sub: any) => {
@@ -327,17 +326,16 @@ const handleTicket = () => {
     })
 }
 const handleInvoice = () => {
-    let arr = JSON.parse(route.query.selectedList).map(item => {
-        return item.id
-    })
+    const selectedList=route.query.selectedList?JSON.parse(route.query.selectedList):[]
     api.financeApi.invoicingCheck({
-        incomeIds: arr,
+        incomeIds: selectedList.map(v =>v.id),
         companyId: route.query.id,
         invoiceType: route.query.invoiceType
     }).then((res: any) => {
         if(res.code == 200) {
             api.financeApi.commissionInvoicing({
-                incomeIds: arr,
+                incomeIds: selectedList.map(v =>v.id),
+                orderNos: selectedList.map(v =>v.orderNo),
                 companyId: route.query.id,
                 invoiceType: route.query.invoiceType
             }).then((sub: any) => {
@@ -356,7 +354,7 @@ const initData = () => {
   // router
     console.log("🚀 ~ initData ~ router:", route)
     const orderNos=route.query.selectedList?JSON.parse(route.query.selectedList):[]
-    api.financeApi.getSelectedReceivableList({orderNos:orderNos.map(v=>v.id)}).then((res: any) => {
+    api.financeApi.getSelectedReceivableList({orderNos:orderNos.map(v=>v.orderNo)}).then((res: any) => {
         if(res.code == 200) {
             tableData.value = res.data
         }