Browse Source

接口对接

lilei 3 years ago
parent
commit
33856173af

+ 205 - 2
src/views/financialManagement/financialCollection/detail.vue

@@ -1,8 +1,211 @@
 <template>
 <template>
+  <div class="financialCollectionAddwrap">
+    <a-spin :spinning="spinning" tip="Loading...">
+      <a-page-header :ghost="false" :backIcon="false" class="financialCollectionAddcont" >
+        <!-- 自定义的二级文字标题 -->
+        <template slot="subTitle">
+          <a id="purchaseOrderEdit-back-btn" href="javascript:;" @click="handleBack(0)"><a-icon type="left" /> 返回列表</a>
+        </template>
+      </a-page-header>
+      <a-collapse :activeKey="['1']" class="financialCollectionAddcont" v-if="detailData">
+        <a-collapse-panel key="1" header="基础信息">
+          <a-descriptions :column="{ xs: 2, sm: 3, md: 3}">
+            <a-descriptions-item label="创建时间">{{ detailData&&detailData.createDate || '--' }}</a-descriptions-item>
+            <a-descriptions-item label="申请人">{{ detailData&&detailData.applyPersonName || '--' }}</a-descriptions-item>
+            <a-descriptions-item label="审核时间">{{ detailData&&detailData.auditDate || '--' }}</a-descriptions-item>
+            <a-descriptions-item span="2" label="收款事由">{{ detailData&&detailData.bookReason || '--' }}</a-descriptions-item>
+            <a-descriptions-item label="状态">{{ detailData&&detailData.statusDictValue || '--' }}</a-descriptions-item>
+            <a-descriptions-item label="备注" :span="3">{{ detailData&&detailData.remarks||'--' }}</a-descriptions-item>
+            <a-descriptions-item label="附件" :span="3">
+              <a target="_blank" style="color: #00aaff;text-decoration: underline;margin-right: 15px;" :href="item.filePath" v-for="item in detailData.attachmentList" :key="item.id">
+                {{ item.fileName }}
+              </a>
+            </a-descriptions-item>
+          </a-descriptions>
+        </a-collapse-panel>
+      </a-collapse>
+      <!-- 财务明细 -->
+      <a-card :bordered="false" size="small" class="financialCollectionAddcont" v-if="$route.params.sn">
+        <div slot="title">
+          <div style="display: flex;justify-content: space-between;align-items: center;">
+            <div>财务明细</div>
+          </div>
+        </div>
+        <a-alert type="info" style="margin-bottom:10px" v-if="detailData">
+          <div slot="message">
+            共 {{ total }} 条,
+            订单金额合计¥{{ detailData.orderTotalAmount }},
+            收款金额合计¥{{ detailData.receiptTotalAmount }},
+            使用授信合计¥{{ detailData.useTotalAmount }},
+            授信还款合计¥{{ detailData.payTotalAmount }},
+            余款抵扣合计¥{{ detailData.balanceTotalAmount }}
+          </div>
+        </a-alert>
+        <!-- 列表 -->
+        <s-table
+          class="sTable fixPagination"
+          ref="table"
+          size="small"
+          :rowKey="(record) => record.id"
+          :columns="columns"
+          :data="loadData"
+          :defaultLoadData="false"
+          :showPagination="false"
+          bordered>
+          <template slot="expandedRowRender" slot-scope="record">
+            <div style="display:flex;justify-content: space-around;padding:10px;" v-if="record.detailItemUseList.length || record.detailItemPayList.length">
+              <a-table
+                style="width:45%;background:#fff;"
+                :bordered="false"
+                :pagination="false"
+                :columns="useCol"
+                :data-source="record.detailItemUseList">
+              </a-table>
+              <a-table
+                :bordered="false"
+                style="width:45%;background:#fff;"
+                :pagination="false"
+                :columns="payCol"
+                :data-source="record.detailItemPayList">
+              </a-table>
+            </div>
+            <div style="padding:10px;text-align:center;" v-else>暂无数据</div>
+          </template>
+        </s-table>
+      </a-card>
+    </a-spin>
+  </div>
 </template>
 </template>
 
 
 <script>
 <script>
+import { commonMixin } from '@/utils/mixin'
+import { VSelect, STable } from '@/components'
+import { financeBookFindBySn, financeBookDetailQueryList } from '@/api/financeBook.js'
+export default {
+  name: 'FinancialCollectionEdit',
+  mixins: [commonMixin],
+  components: { VSelect, STable },
+  data () {
+    return {
+      spinning: false,
+      detailData: null,
+      openDepartUserModal: false,
+      total: 0,
+      loadData: parameter => {
+        const params = Object.assign(parameter, { bookSn: this.$route.params.sn })
+        return financeBookDetailQueryList(params).then(res => {
+          let data
+          if (res.status == 200) {
+            data = res.data
+            const no = 0
+            for (var i = 0; i < data.length; i++) {
+              data[i].no = no + i + 1
+              // 计算使用授信和授信还款的合计
+              data[i].useTotalAmount = this.getTotal(data[i].detailItemUseList)
+              data[i].payTotalAmount = this.getTotal(data[i].detailItemPayList)
+            }
+            this.total = data.length
+            this.disabled = false
+            this.spinning = false
+          }
+          return data
+        })
+      },
+      columns: [
+        { title: '序号', dataIndex: 'no', width: '5%', align: 'center' },
+        { title: '收款日期', dataIndex: 'receiptDate', align: 'center', width: '8%', customRender: function (text) { return text || '--' } },
+        { title: '客户名称', dataIndex: 'dealerEntity.dealerName', align: 'center', width: '8%', customRender: function (text) { return text || '--' } },
+        { title: '客户编码', dataIndex: 'dealerEntity.dealerCode', align: 'center', width: '8%', customRender: function (text) { return text || '--' } },
+        { title: '营业执照名称', dataIndex: 'dealerEntity.licenseName', align: 'center', width: '8%', customRender: function (text) { return text || '--' } },
+        { title: '订单金额', dataIndex: 'orderAmount', align: 'center', width: '5%', customRender: function (text) { return (text == 0 || text) ? text : '--' } },
+        { title: '收款金额', dataIndex: 'receiptAmount', align: 'center', width: '5%', customRender: function (text) { return (text == 0 || text) ? text : '--' } },
+        { title: '使用授信', dataIndex: 'useTotalAmount', align: 'center', width: '5%', customRender: function (text) { return (text == 0 || text) ? text : '--' } },
+        { title: '授信还款', dataIndex: 'payTotalAmount', align: 'center', width: '5%', customRender: function (text) { return (text == 0 || text) ? text : '--' } },
+        { title: '跨月打款', dataIndex: 'nextMonthAmount', align: 'center', width: '5%', customRender: function (text) { return (text == 0 || text) ? text : '--' } },
+        { title: '户名', dataIndex: 'bankAccount', align: 'center', width: '10%', customRender: function (text) { return text || '--' } },
+        { title: '汇入银行', dataIndex: 'bankName', align: 'center', width: '10%', customRender: function (text) { return text || '--' } },
+        { title: '足额打款', dataIndex: 'fullPaymentFlagDictValue', align: 'center', width: '5%', customRender: function (text) { return (text == 0 || text) ? text : '--' } },
+        { title: '备注', dataIndex: 'remarks', align: 'center', width: '13%', customRender: function (text) { return text || '--' } }
+      ],
+      useCol: [
+        { title: '使用授信项目', dataIndex: 'itemName', width: '50%', align: 'center' },
+        { title: '使用授信金额', dataIndex: 'itemAmount', width: '50%', align: 'center' }
+      ],
+      payCol: [
+        { title: '授信还款项目', dataIndex: 'itemName', width: '50%', align: 'center' },
+        { title: '授信还款金额', dataIndex: 'itemAmount', width: '50%', align: 'center' }
+      ]
+    }
+  },
+  methods: {
+    getTotal (data) {
+      let ret = 0
+      data.map(item => {
+        ret = ret + item.itemAmount
+      })
+      return ret.toFixed(2)
+    },
+    //  财务单基础详情
+    getDetail (type) {
+      this.spinning = true
+      this.disabled = true
+      financeBookFindBySn({ bookSn: this.$route.params.sn }).then(res => {
+        if (res.status == 200) {
+          this.detailData = res.data
+          if (!type) {
+            // 刷新明细列表
+            this.$refs.table.refresh()
+          } else {
+            this.spinning = false
+            this.disabled = false
+          }
+        }
+      })
+    },
+    // 返回
+    handleBack (data) {
+      this.$router.push({ name: 'financialCollectionList' })
+    },
+    pageInit () {
+      if (this.$route.params.sn) { //  编辑页
+        this.getDetail()
+      }
+    }
+  },
+  mounted () {
+    if (!this.$store.state.app.isNewTab) { // 页签刷新时调用
+      this.pageInit()
+    }
+  },
+  activated () {
+    // 如果是新页签打开或者进入新的子页(例:存在列表第2条数据编辑页页签时再打开第4条数据的编辑页),则重置当前页面
+    if (this.$store.state.app.isNewTab || !this.$store.state.app.isNewSubTab) {
+      this.pageInit()
+    }
+  },
+  beforeRouteEnter (to, from, next) {
+    next(vm => {})
+  }
+}
 </script>
 </script>
 
 
-<style>
-</style>
+<style lang="less">
+  .financialCollectionAddwrap{
+    position: relative;
+    height: 100%;
+    padding-bottom: 51px;
+    box-sizing: border-box;
+    >.ant-spin-nested-loading{
+      overflow-y: scroll;
+      height: 100%;
+    }
+    .financialCollectionAddcont{
+      margin-bottom: 10px;
+    }
+    .affix{
+      .ant-affix{
+        z-index: 101;
+      }
+    }
+  }
+</style>

+ 3 - 2
src/views/financialManagement/financialCollection/edit.vue

@@ -58,8 +58,8 @@
           :defaultLoadData="false"
           :defaultLoadData="false"
           :showPagination="false"
           :showPagination="false"
           bordered>
           bordered>
-          <template slot="expandedRowRender" slot-scope="record" v-if="record.detailItemUseList.length || record.detailItemPayList.length">
-            <div style="display:flex;justify-content: space-around;padding:10px;">
+          <template slot="expandedRowRender" slot-scope="record">
+            <div style="display:flex;justify-content: space-around;padding:10px;" v-if="record.detailItemUseList.length || record.detailItemPayList.length">
               <a-table
               <a-table
                 style="width:45%;background:#fff;"
                 style="width:45%;background:#fff;"
                 :bordered="false"
                 :bordered="false"
@@ -75,6 +75,7 @@
                 :data-source="record.detailItemPayList">
                 :data-source="record.detailItemPayList">
               </a-table>
               </a-table>
             </div>
             </div>
+            <div style="padding:10px;text-align:center;" v-else>暂无数据</div>
           </template>
           </template>
           <template slot="action" slot-scope="text,record">
           <template slot="action" slot-scope="text,record">
             <a-button
             <a-button