Browse Source

新增我的申请

zhangxiaojun 1 month ago
parent
commit
4a7723b55e

+ 9 - 0
src/api/myAccounts/payment.js

@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+// 我的付款列表
+export function getList(data) {
+  return request({
+    url: '/salesContract/get/page',
+    method: 'post',
+    data
+  })
+}

+ 27 - 0
src/api/myAccounts/receive.js

@@ -0,0 +1,27 @@
+import request from '@/utils/request'
+
+// 交易对手
+export function getCounterpartyList(params) {
+  return request({
+    url: '/salesContract/get/page',
+    method: 'get',
+    params
+  })
+}
+
+// 我的收款列表
+export function getList(params) {
+  return request({
+    url: '/salesContract/get/page',
+    method: 'get',
+    params
+  })
+}
+
+export function getReceiveDetail(params) {
+  return request({
+    url: '/salesContract/get/page',
+    method: 'get',
+    params
+  })
+}

+ 9 - 0
src/api/myApplication/exportTax.js

@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+// 出口退税列表
+export function getList(data) {
+  return request({
+    url: '/salesContract/get/page',
+    method: 'post',
+    data
+  })
+}

+ 3 - 2
src/components/CommTable/index.vue

@@ -433,10 +433,11 @@ export default {
 <style lang="scss" scoped>
 .table-box {
   width: 100%;
+  margin-top: 10px;
   .pagination {
     display: flex;
-    justify-content: flex-end;
-    margin-top: 20px;
+    justify-content: center;
+    margin-top: 35px;
   }
   .el-pagination {
     &:first-of-type {

+ 3 - 1
src/router/index.js

@@ -7,6 +7,7 @@ Vue.use(Router)
 import Layout from '@/layout'
 import businessManage from './moudules/businessManage'
 import myTrade from './moudules/myTrade'
+import myApplication from './moudules/myApplication'
 
 /**
  * constantRoutes
@@ -100,7 +101,8 @@ export const constantRoutes = [
     ]
   },
   businessManage,
-  myTrade
+  myTrade,
+  myApplication
   // 404 page must be placed at the end !!!
   // { path: '*', redirect: '/404', hidden: true }
 ]

+ 60 - 0
src/router/moudules/myApplication.js

@@ -0,0 +1,60 @@
+/* Layout */
+import Layout from '@/layout'
+
+export default {
+  path: '/myApplication',
+  component: Layout,
+  //   redirect: '/exportTax',
+  meta: {
+    title: '我的申请', // 我的申请
+    icon: 'myFinancing'
+  },
+  children: [
+    // {
+    //   path: '/quotaApplication',
+    //   name: 'QuotaApplication',
+    //   component: () => import('@/views/myApplication/quota/index'),
+    //   meta: {
+    //     title: '额度申请' // 额度申请
+    //   },
+    //   children: [
+    //     {
+    //       path: '/importerAdd/:id',
+    //       name: 'ImporterAdd',
+    //       component: () => import('@/views/businessManage/tradeRelations/importer/add'),
+    //       hidden: true,
+    //       meta: { title: '添加进口商', activeMenu: '/tradeRelations' }
+    //     },
+    //     {
+    //       path: '/importerView/:id',
+    //       name: 'ImporterView',
+    //       component: () => import('@/views/businessManage/tradeRelations/importer/view'),
+    //       hidden: true,
+    //       meta: { title: '进口商详情', activeMenu: '/tradeRelations' }
+    //     },
+    //     {
+    //       path: '/supplierAdd/:id',
+    //       name: 'SupplierAdd',
+    //       component: () => import('@/views/businessManage/tradeRelations/supplier/add'),
+    //       hidden: true,
+    //       meta: { title: '添加供应商', activeMenu: '/tradeRelations' }
+    //     },
+    //     {
+    //       path: '/supplierView/:id',
+    //       name: 'SupplierView',
+    //       component: () => import('@/views/businessManage/tradeRelations/supplier/view'),
+    //       hidden: true,
+    //       meta: { title: '供应商详情', activeMenu: '/tradeRelations' }
+    //     }
+    //   ]
+    // },
+    {
+      path: '/exportTax',
+      name: 'ExportTax',
+      component: () => import('@/views/myApplication/tax/index'),
+      meta: {
+        title: '出口退税申请' // 出口退税申请
+      }
+    }
+  ]
+}

+ 2 - 2
src/styles/element/table.scss

@@ -6,10 +6,10 @@
   .el-table {
     color: #333;
     thead.is-group th {
-      background: #D9D9D9;
+      background: #f8f8f8;
     }
     thead th, thead tr {
-      background-color: #D9D9D9 !important;
+      background-color: #f8f8f8 !important;
       color: #656565;
       padding: 0px;
       line-height: 40px;

+ 223 - 0
src/views/myAccounts/payment/index.vue

@@ -0,0 +1,223 @@
+<template>
+  <div class="export-tax">
+    <div class="search">
+      <div class="left" />
+      <div class="right">
+        <div>
+          <el-input v-model="search.contractInfo" placeholder="申报批次" />
+        </div>
+        <div>
+          <el-input v-model="search.contractInfo" placeholder="报关单号" />
+        </div>
+        <div>
+          <el-input v-model="search.contractInfo" placeholder="销售订单ID" />
+        </div>
+        <div>
+          <el-input v-model="search.contractInfo" placeholder="出口发票号" />
+        </div>
+        <div>
+          <el-select v-model="search.contractStatus" placeholder="请选择退税状态" clearable>
+            <el-option
+              v-for="item in constant.sales_contract_status"
+              :key="item.dictCode"
+              :label="item.dictLabel"
+              :value="item.dictValue"
+            />
+          </el-select>
+        </div>
+        <div>
+          <el-date-picker
+            v-model="addDate"
+            type="daterange"
+            range-separator="至"
+            start-placeholder="申报年月日期范围"
+            end-placeholder="申报年月日期范围"
+          />
+        </div>
+        <div>
+          <el-date-picker
+            v-model="addDate"
+            type="daterange"
+            range-separator="至"
+            start-placeholder="出口日期范围"
+            end-placeholder="出口日期范围"
+          />
+        </div>
+        <div class="right-btn">
+          <el-button type="primary" @click="fetchData('search')">查询</el-button>
+          <el-button type="primary" @click="addContract">添加合同</el-button>
+        </div>
+      </div>
+    </div>
+    <cy-comm-table
+      ref="commTable"
+      v-loading="loading"
+      :columns="columns"
+      :data="tableData"
+      :count="count"
+      parent-component="ExportTax"
+    />
+
+  </div>
+</template>
+
+<script>
+import { mapGetters } from 'vuex'
+import {
+  getList
+} from '@/api/myTrade/salesContract'
+import { formatMoney, codeChangeName } from '@/utils'
+
+export default {
+  name: 'ExportTax',
+  components: {
+  },
+  data() {
+    return {
+      count: 0,
+      search: {
+        customerUserInfo: '',
+        importerCertNo: '',
+        agencyCertNo: '',
+        paymentWay: '',
+        contractStatus: ''
+      },
+      page: 1,
+      size: 10,
+      addDate: [],
+      tableData: [],
+      columns: [
+        {
+          label: '序号',
+          index: true
+        },
+        {
+          label: '申报年月',
+          prop: 'contractNo',
+          showTooltip: true
+        },
+        {
+          label: '申报批次',
+          showTooltip: true,
+          prop: 'contractName'
+        },
+        {
+          label: '报关单号',
+          showTooltip: true,
+          prop: 'importerEnterpriseName'
+        },
+        {
+          label: '销售订单ID',
+          showTooltip: true,
+          prop: 'importerEnterpriseName'
+        },
+        {
+          label: '退税额',
+          showTooltip: true,
+          render: (h, row) => {
+            return <div>{ formatMoney(row.contractAmount) }</div>
+          }
+        },
+        {
+          label: '出口发票号',
+          showTooltip: true,
+          prop: 'contractName'
+        },
+        {
+          label: '出口数量',
+          showTooltip: true,
+          prop: 'importerEnterpriseName'
+        },
+        {
+          label: '出口日期',
+          showTooltip: true,
+          prop: 'importerEnterpriseName'
+        },
+        {
+          label: '退税状态',
+          prop: 'paymentWay',
+          showTooltip: true,
+          render: (h, row) => {
+            return <div> <el-tooltip class='item' effect='dark' content={codeChangeName(this.constant.payment_way, row.paymentWay, 'dictValue', 'dictLabel')} placement='top'>
+              <div class='one-ellipsis'>
+                {codeChangeName(this.constant.payment_way, row.paymentWay, 'dictValue', 'dictLabel')}
+              </div>
+            </el-tooltip></div>
+          }
+        }
+
+      ],
+      loading: false,
+      platformList: [],
+      commodityList: [],
+      uploadDialogVisible: false,
+      curContractId: ''
+    }
+  },
+  computed: {
+    ...mapGetters(['constant']),
+    tablePower() {
+      return ({ item, row }) => {
+        const { rowPower } = item
+        if (rowPower) {
+          if (rowPower.includes(row.status)) {
+            return true
+          }
+        } else {
+          return true
+        }
+      }
+    }
+  },
+  created() {
+    this.$store.dispatch('getConstant', ['payment_way', 'sales_contract_status'])
+  },
+  mounted() {
+    this.fetchData()
+  },
+  methods: {
+    fetchData(type) {
+      this.loading = true
+      if (type === 'search') {
+        this.page = 1
+        this.size = 10
+      }
+      const params = {
+        ...this.search,
+        timeStart: this.addDate.length ? this.addDate[0] : '',
+        timeEnd: this.addDate.length ? this.addDate[1] : '',
+        page: this.page || 1,
+        rows: this.size || 10
+      }
+      getList(params).then(({ data }) => {
+        this.loading = false
+        this.tableData = data.rows
+        this.count = Number(data.records)
+      })
+    },
+
+    addContract() {
+      this.$router.push({
+        name: 'SalesContractAdd',
+        query: {
+          type: 'add'
+        }
+      })
+    }
+
+  }
+}
+</script>
+
+  <style lang="scss" scoped>
+      .export-tax {
+
+      }
+  </style>
+  <style lang="scss">
+      .export-tax {
+          .icon-a-Group957, .icon-a-Group1087 {
+              font-size: 28px;
+          }
+      }
+  </style>

+ 245 - 0
src/views/myAccounts/receive/index.vue

@@ -0,0 +1,245 @@
+<template>
+  <div class="my-receive">
+    <div class="search">
+      <div class="left" />
+      <div class="right">
+        <div>
+          <el-input v-model="search.contractInfo" placeholder="融资申请编号 / 出口退税申请ID / 支付业务编号" />
+        </div>
+        <div>
+          <el-select v-model="search.contractStatus" placeholder="请选择款项类型" clearable>
+            <el-option
+              v-for="item in constant.sales_contract_status"
+              :key="item.dictCode"
+              :label="item.dictLabel"
+              :value="item.dictValue"
+            />
+          </el-select>
+        </div>
+        <div>
+          <el-select v-model="search.agencyCertNo" placeholder="请选择交易对手" clearable>
+            <el-option
+              v-for="item in counterpartyList"
+              :key="item.certNo"
+              :label="item.platformName"
+              :value="item.certNo"
+            />
+          </el-select>
+        </div>
+        <div>
+          <el-date-picker
+            v-model="addDate"
+            type="daterange"
+            range-separator="至"
+            start-placeholder="收款日期范围"
+            end-placeholder="收款日期范围"
+          />
+        </div>
+        <div class="right-btn">
+          <el-button type="primary" @click="fetchData('search')">查询</el-button>
+        </div>
+      </div>
+    </div>
+    <cy-comm-table
+      ref="commTable"
+      v-loading="loading"
+      :columns="columns"
+      :data="tableData"
+      :count="count"
+      parent-component="MyReceive"
+    />
+
+  </div>
+</template>
+
+<script>
+import { mapGetters } from 'vuex'
+import store from '@/store'
+import {
+  getList, getCounterpartyList
+} from '@/api/myAccounts/receive'
+import { formatMoney, codeChangeName } from '@/utils'
+
+export default {
+  name: 'MyReceive',
+  components: {
+  },
+  data() {
+    return {
+      count: 0,
+      search: {
+        customerUserInfo: '',
+        importerCertNo: '',
+        agencyCertNo: '',
+        paymentWay: '',
+        contractStatus: ''
+      },
+      page: 1,
+      size: 10,
+      addDate: [],
+      tableData: [],
+      columns: [
+        {
+          label: '序号',
+          index: true
+        },
+        {
+          label: '业务编号',
+          prop: 'contractNo',
+          showTooltip: true
+        },
+        {
+          label: '款项类型',
+          prop: 'paymentWay',
+          showTooltip: true,
+          render: (h, row) => {
+            return <div> <el-tooltip class='item' effect='dark' content={codeChangeName(this.constant.payment_way, row.paymentWay, 'dictValue', 'dictLabel')} placement='top'>
+              <div class='one-ellipsis'>
+                {codeChangeName(this.constant.payment_way, row.paymentWay, 'dictValue', 'dictLabel')}
+              </div>
+            </el-tooltip></div>
+          }
+        },
+        {
+          label: '收款金额',
+          showTooltip: true,
+          render: (h, row) => {
+            return <div>{ formatMoney(row.contractAmount) }</div>
+          }
+        },
+        {
+          label: '收款账户名',
+          showTooltip: true,
+          prop: 'contractName'
+        },
+        {
+          label: '收款账号',
+          showTooltip: true,
+          prop: 'importerEnterpriseName'
+        },
+        {
+          label: '销售合同编号',
+          showTooltip: true,
+          prop: 'importerEnterpriseName'
+        },
+        {
+          label: '交易对手',
+          showTooltip: true,
+          prop: 'importerEnterpriseName'
+        },
+        {
+          label: '出口商品总金额',
+          showTooltip: true,
+          render: (h, row) => {
+            return <div>{ formatMoney(row.contractAmount) }</div>
+          }
+        },
+        {
+          label: '收款日期',
+          showTooltip: true,
+          prop: 'contractName'
+        },
+        {
+          label: '操作',
+          width: 150,
+          render: (h, row) => {
+            const btnList = [
+              {
+                msg: '详情',
+                icon: 'iconfont icon-a-Group957',
+                power: '',
+                // rowPower: [4],
+                category: 'see'
+              }
+            ]
+            const options = btnList.map(item => {
+              return (
+                this.tablePower({ item, row }) && <el-tooltip class='item' effect='dark' content={item.msg} placement='top'>
+                  <span class='table-icon-box'>
+                    <i class={item.icon} style={item.style} onClick={() => { this.handlerOperate(item.category, row) }}></i>
+                  </span>
+                </el-tooltip>
+              )
+            })
+            return <div>{ options }</div>
+          }
+        }
+
+      ],
+      loading: false,
+      counterpartyList: []
+    }
+  },
+  computed: {
+    ...mapGetters(['constant']),
+    tablePower() {
+      return ({ item, row }) => {
+        const { rowPower } = item
+        if (rowPower) {
+          if (rowPower.includes(row.status)) {
+            return true
+          }
+        } else {
+          return true
+        }
+      }
+    }
+  },
+  created() {
+    this.$store.dispatch('getConstant', ['payment_way', 'sales_contract_status'])
+  },
+  mounted() {
+    this.fetchData()
+  },
+  methods: {
+    fetchData(type) {
+      this.loading = true
+      if (type === 'search') {
+        this.page = 1
+        this.size = 10
+      }
+      const params = {
+        ...this.search,
+        timeStart: this.addDate.length ? this.addDate[0] : '',
+        timeEnd: this.addDate.length ? this.addDate[1] : '',
+        page: this.page || 1,
+        rows: this.size || 10
+      }
+      getList(params).then(({ data }) => {
+        this.loading = false
+        this.tableData = data.rows
+        this.count = Number(data.records)
+      })
+    },
+    getCounterparty() {
+      const userId = store.getters.userInfo.id
+      getCounterpartyList({ userId: userId }).then(res => {
+        this.counterpartyList = res.data || []
+      })
+    },
+
+    addContract() {
+      this.$router.push({
+        name: 'SalesContractAdd',
+        query: {
+          type: 'add'
+        }
+      })
+    }
+
+  }
+}
+</script>
+
+  <style lang="scss" scoped>
+      .export-tax {
+
+      }
+  </style>
+  <style lang="scss">
+      .my-receive {
+          .icon-a-Group957, .icon-a-Group1087 {
+              font-size: 28px;
+          }
+      }
+  </style>

+ 253 - 0
src/views/myAccounts/receive/view.vue

@@ -0,0 +1,253 @@
+<template>
+  <div class="my-receive-view">
+
+    <el-form
+      ref="ruleFormRef"
+      :model="ruleForm"
+      :rules="rules"
+      label-position="top"
+      label-width="150px"
+      class="rule-form-orange"
+    >
+      <cy-info-title>收款信息</cy-info-title>
+      <el-form-item label="收款金额">
+        <el-input :value="purchaseAcountVo.accountName" :disabled="disabled" />
+      </el-form-item>
+      <el-form-item label="款项类型">
+        <el-input :value="purchaseAcountVo.accountNumber" :disabled="disabled" />
+      </el-form-item>
+      <el-form-item label="付款时间">
+        <el-input :value="purchaseAcountVo.openingBank" :disabled="disabled" />
+      </el-form-item>
+      <el-form-item label="收款账户名">
+        <el-input :value="purchaseAcountVo.accountName" :disabled="disabled" />
+      </el-form-item>
+      <el-form-item label="收款账号">
+        <el-input :value="purchaseAcountVo.accountNumber" :disabled="disabled" />
+      </el-form-item>
+      <el-form-item label="开户行">
+        <el-input :value="purchaseAcountVo.openingBank" :disabled="disabled" />
+      </el-form-item>
+
+      <cy-info-title>
+        贸易基础信息</cy-info-title>
+      <el-form-item label="销售合同编号">
+        <el-input :value="ruleForm.purchaseOrderNo" :disabled="disabled" />
+      </el-form-item>
+
+      <el-form-item label="销售合同名称">
+        <el-input :value="ruleForm.purchaseContractName" :disabled="disabled" />
+      </el-form-item>
+      <el-form-item label="进口商名称">
+        <el-input :value="ruleForm.purchaseContractNo" :disabled="disabled" />
+      </el-form-item>
+      <el-form-item v-if="exportType === 'proxy_export'" label="代理公司名称">
+        <el-input :value="ruleForm.agencyEnterpriseName" :disabled="disabled" />
+      </el-form-item>
+      <el-form-item label="采购合同编号">
+        <el-input :value="ruleForm.salesOrderNo" :disabled="disabled" />
+      </el-form-item>
+      <el-form-item label="采购合同名称">
+        <el-input
+          :value="ruleForm.settlementCycle"
+          disabled
+        />
+      </el-form-item>
+
+      <div style="width: 100%; margin-top: 15px;" class="table-box">
+        <el-table :data="selectedGoods" style="width: 100%;">
+          <el-table-column label="序号" type="index" width="50" />
+          <el-table-column label="销售订单ID" prop="hsCode" :show-overflow-tooltip="true" />
+          <el-table-column label="资料类别" prop="name" :show-overflow-tooltip="true" />
+          <el-table-column label="资料编号" prop="declarationName" :show-overflow-tooltip="true" />
+          <el-table-column label="资料名称" prop="declarationName" :show-overflow-tooltip="true" />
+          <el-table-column label="资料内容" prop="model" :show-overflow-tooltip="true">
+            <template slot-scope="{ row }">
+              <cy-upload
+                :file-data="[row.file]"
+                :upload-from-orange-status="true"
+                :limit="1"
+                disabled
+              />
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+
+      <cy-info-title style="margin-top: 20px;">融资底层商品信息</cy-info-title>
+      <div style="width: 100%;margin: 0;">
+        <cy-comm-table
+          ref="commTable"
+          :columns="columns"
+          :data="goodsInfoList"
+          :count="0"
+        />
+      </div>
+
+      <cy-info-title style="margin-top: 20px;">订单信息</cy-info-title>
+      <el-form-item label="订单金额" prop="amountTotal">
+        <el-input
+          :value="ruleForm.amountTotal ? '¥ ' + formatMoney(ruleForm.amountTotal) : ''"
+          disabled
+        />
+      </el-form-item>
+      <el-form-item label="订单税额" prop="taxAmountTotal">
+        <el-input
+          :value="ruleForm.taxAmountTotal ? '¥ ' + formatMoney(ruleForm.taxAmountTotal) : ''"
+          disabled
+        />
+      </el-form-item>
+
+      <el-form-item label="申请融资金额">
+        <el-input :value="logisticsVo?logisticsVo.companyName: ''" :disabled="disabled" />
+      </el-form-item>
+      <el-form-item label="申请融资商品总数">
+        <el-input :value="logisticsVo?logisticsVo.logisticsOrderNumber: ''" :disabled="disabled" />
+      </el-form-item>
+    </el-form>
+
+    <div class="submit-btn">
+      <el-button @click="() => { $router.push({name: 'PurchaseBill'}) }">返回</el-button>
+    </div>
+  </div>
+</template>
+
+<script>
+import { mapGetters } from 'vuex'
+import { handleMoney, codeChangeName } from '@/utils'
+import { getReceiveDetail } from '@/api/myAccounts/receive'
+export default {
+  name: 'MyReceiveView',
+  components: {
+  },
+  data() {
+    return {
+      ruleForm: {
+
+      },
+      rules: {
+
+      },
+      logisticsVo: {},
+      purchaseAcountVo: {},
+      columns: [
+        {
+          label: '采购订单ID',
+          index: true
+        },
+        {
+          label: '销售订单ID',
+          index: true
+        },
+        {
+          label: 'HS编码',
+          showTooltip: true,
+          prop: 'hsCode'
+        },
+        {
+          label: '商品名称',
+          showTooltip: true,
+          prop: 'name'
+        },
+        {
+          label: '报关品名',
+          showTooltip: true,
+          prop: 'declarationName'
+        },
+        {
+          label: '型号',
+          showTooltip: true,
+          prop: 'model'
+        },
+        {
+          label: '申报计量单位',
+          showTooltip: true,
+          prop: 'measurementUnit'
+        },
+        {
+          label: '包装规格',
+          showTooltip: true,
+          prop: 'packSpec'
+        },
+        {
+          label: '数量',
+          showTooltip: true,
+          prop: 'number',
+          render: (h, row) => {
+            return <div> <el-tooltip class='item' effect='dark' content={String(row.number)} placement='top'>
+              <div class='one-ellipsis'>
+                {String(row.number)}
+              </div>
+            </el-tooltip></div>
+          }
+        },
+        {
+          label: '采购单价(CNY)',
+          showTooltip: true,
+          prop: 'priceUnit',
+          render: (h, row) => {
+            return <div> <el-tooltip class='item' effect='dark' content={handleMoney(row.priceUnit)} placement='top'>
+              <div class='one-ellipsis'>
+                {handleMoney(row.priceUnit)}
+              </div>
+            </el-tooltip></div>
+          }
+        },
+        {
+          label: '商品金额 (CNY)',
+          showTooltip: true,
+          prop: 'amount',
+          render: (h, row) => {
+            return <div> <el-tooltip class='item' effect='dark' content={handleMoney(row.amount)} placement='top'>
+              <div class='one-ellipsis'>
+                {handleMoney(row.amount)}
+              </div>
+            </el-tooltip></div>
+          }
+        }
+      ],
+      disabled: true,
+      exportType: '',
+      goodsInfoList: []
+
+    }
+  },
+  computed: {
+    ...mapGetters([
+      'constant', 'enterpriseInfo'
+    ]),
+    formatMoney() {
+      return (val) => {
+        return handleMoney(val)
+      }
+    }
+  },
+  created() {
+    this.$store.dispatch('getConstant', ['export_type', 'payment_way', 'sales_order_status'])
+
+    this.getDetails()
+  },
+  methods: {
+    getDetails() {
+      const { id } = this.$route.query
+      getReceiveDetail({ id: id }).then(res => {
+        const { data } = res
+        this.ruleForm = data
+        this.goodsInfoList = data.commodityList
+        this.logisticsVo = data.logisticsVo
+        this.purchaseAcountVo = data.purchaseAcountVo
+      })
+    },
+
+    codeToName(list, type, code, name) {
+      return codeChangeName(list, type, code, name)
+    }
+  }
+}
+</script>
+
+  <style lang="scss" scoped>
+  .my-receive-view {
+      padding: 10px 20px;
+  }
+  </style>

+ 0 - 0
src/views/myApplication/quota/index.vue


+ 223 - 0
src/views/myApplication/tax/index.vue

@@ -0,0 +1,223 @@
+<template>
+  <div class="export-tax">
+    <div class="search">
+      <div class="left" />
+      <div class="right">
+        <div>
+          <el-input v-model="search.contractInfo" placeholder="申报批次" />
+        </div>
+        <div>
+          <el-input v-model="search.contractInfo" placeholder="报关单号" />
+        </div>
+        <div>
+          <el-input v-model="search.contractInfo" placeholder="销售订单ID" />
+        </div>
+        <div>
+          <el-input v-model="search.contractInfo" placeholder="出口发票号" />
+        </div>
+        <div>
+          <el-select v-model="search.contractStatus" placeholder="请选择退税状态" clearable>
+            <el-option
+              v-for="item in constant.sales_contract_status"
+              :key="item.dictCode"
+              :label="item.dictLabel"
+              :value="item.dictValue"
+            />
+          </el-select>
+        </div>
+        <div>
+          <el-date-picker
+            v-model="addDate"
+            type="daterange"
+            range-separator="至"
+            start-placeholder="申报年月日期范围"
+            end-placeholder="申报年月日期范围"
+          />
+        </div>
+        <div>
+          <el-date-picker
+            v-model="addDate"
+            type="daterange"
+            range-separator="至"
+            start-placeholder="出口日期范围"
+            end-placeholder="出口日期范围"
+          />
+        </div>
+        <div class="right-btn">
+          <el-button type="primary" @click="fetchData('search')">查询</el-button>
+          <el-button type="primary" @click="addContract">添加合同</el-button>
+        </div>
+      </div>
+    </div>
+    <cy-comm-table
+      ref="commTable"
+      v-loading="loading"
+      :columns="columns"
+      :data="tableData"
+      :count="count"
+      parent-component="ExportTax"
+    />
+
+  </div>
+</template>
+
+<script>
+import { mapGetters } from 'vuex'
+import {
+  getList
+} from '@/api/myTrade/salesContract'
+import { formatMoney, codeChangeName } from '@/utils'
+
+export default {
+  name: 'ExportTax',
+  components: {
+  },
+  data() {
+    return {
+      count: 0,
+      search: {
+        customerUserInfo: '',
+        importerCertNo: '',
+        agencyCertNo: '',
+        paymentWay: '',
+        contractStatus: ''
+      },
+      page: 1,
+      size: 10,
+      addDate: [],
+      tableData: [],
+      columns: [
+        {
+          label: '序号',
+          index: true
+        },
+        {
+          label: '申报年月',
+          prop: 'contractNo',
+          showTooltip: true
+        },
+        {
+          label: '申报批次',
+          showTooltip: true,
+          prop: 'contractName'
+        },
+        {
+          label: '报关单号',
+          showTooltip: true,
+          prop: 'importerEnterpriseName'
+        },
+        {
+          label: '销售订单ID',
+          showTooltip: true,
+          prop: 'importerEnterpriseName'
+        },
+        {
+          label: '退税额',
+          showTooltip: true,
+          render: (h, row) => {
+            return <div>{ formatMoney(row.contractAmount) }</div>
+          }
+        },
+        {
+          label: '出口发票号',
+          showTooltip: true,
+          prop: 'contractName'
+        },
+        {
+          label: '出口数量',
+          showTooltip: true,
+          prop: 'importerEnterpriseName'
+        },
+        {
+          label: '出口日期',
+          showTooltip: true,
+          prop: 'importerEnterpriseName'
+        },
+        {
+          label: '退税状态',
+          prop: 'paymentWay',
+          showTooltip: true,
+          render: (h, row) => {
+            return <div> <el-tooltip class='item' effect='dark' content={codeChangeName(this.constant.payment_way, row.paymentWay, 'dictValue', 'dictLabel')} placement='top'>
+              <div class='one-ellipsis'>
+                {codeChangeName(this.constant.payment_way, row.paymentWay, 'dictValue', 'dictLabel')}
+              </div>
+            </el-tooltip></div>
+          }
+        }
+
+      ],
+      loading: false,
+      platformList: [],
+      commodityList: [],
+      uploadDialogVisible: false,
+      curContractId: ''
+    }
+  },
+  computed: {
+    ...mapGetters(['constant']),
+    tablePower() {
+      return ({ item, row }) => {
+        const { rowPower } = item
+        if (rowPower) {
+          if (rowPower.includes(row.status)) {
+            return true
+          }
+        } else {
+          return true
+        }
+      }
+    }
+  },
+  created() {
+    this.$store.dispatch('getConstant', ['payment_way', 'sales_contract_status'])
+  },
+  mounted() {
+    this.fetchData()
+  },
+  methods: {
+    fetchData(type) {
+      this.loading = true
+      if (type === 'search') {
+        this.page = 1
+        this.size = 10
+      }
+      const params = {
+        ...this.search,
+        timeStart: this.addDate.length ? this.addDate[0] : '',
+        timeEnd: this.addDate.length ? this.addDate[1] : '',
+        page: this.page || 1,
+        rows: this.size || 10
+      }
+      getList(params).then(({ data }) => {
+        this.loading = false
+        this.tableData = data.rows
+        this.count = Number(data.records)
+      })
+    },
+
+    addContract() {
+      this.$router.push({
+        name: 'SalesContractAdd',
+        query: {
+          type: 'add'
+        }
+      })
+    }
+
+  }
+}
+</script>
+
+  <style lang="scss" scoped>
+      .export-tax {
+
+      }
+  </style>
+  <style lang="scss">
+      .export-tax {
+          .icon-a-Group957, .icon-a-Group1087 {
+              font-size: 28px;
+          }
+      }
+  </style>