MONSTER-ygh преди 5 месеца
родител
ревизия
3ba1b87a35

+ 163 - 149
src/views/finance/InvoiceRecords/index.vue

@@ -1,158 +1,172 @@
 <template>
   <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item label="订单号">
-        <el-input
-          v-model="queryParams.orderId"
-          placeholder="请输入订单号"
-          clearable
-          style="width: 240px;"
-          @keyup.enter.native="handleQuery"
+    <div class="app-container_flex_auto">
+      <div class="app-container_form" v-show="showSearch">
+        <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px">
+          <el-form-item label="订单号" label-width="58px">
+            <el-input
+              v-model="queryParams.orderId"
+              placeholder="请输入订单号"
+              clearable
+              style="width: 220px;"
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+          <el-form-item label="抬头名称" >
+            <el-input
+              v-model="queryParams.name"
+              placeholder="请输入抬头名称"
+              clearable
+              style="width: 220px;"
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+          <el-form-item label="类型" label-width="48px">
+            <el-select
+              v-model="queryParams.handlerType"
+              placeholder="类型"
+              clearable
+              style="width: 120px"
+            >
+              <el-option
+                v-for="dict in dict.type.lookup_type"
+                :key="dict.value"
+                :label="dict.label"
+                :value="dict.value"
+              />
+            </el-select>
+          </el-form-item>
+          <el-form-item label="状态" label-width="48px">
+            <el-select
+              v-model="queryParams.status"
+              placeholder="状态"
+              clearable
+              style="width: 120px"
+            >
+              <el-option
+                v-for="dict in dict.type.Invoicing_type"
+                :key="dict.value"
+                :label="dict.label"
+                :value="dict.value"
+              />
+            </el-select>
+          </el-form-item>
+          <el-form-item label="开票来源">
+            <el-select
+              v-model="queryParams.invoiceSource"
+              placeholder="开票来源"
+              clearable
+              style="width: 150px"
+            >
+              <el-option
+                v-for="dict in [
+                  { label: '小程序',value: 0 },
+                  { label: '团购H5',value: 1 },
+                  { label: '线下(诺诺系统)',value: 2 },
+                ]"
+                :key="dict.value"
+                :label="dict.label"
+                :value="dict.value"
+              />
+            </el-select>
+          </el-form-item>
+          <el-form-item>
+            <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+            <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+          </el-form-item>
+        </el-form>
+      </div>
+      <div class="app-container_table app-container-main" :class="showSearch ? 'mt15' : ''">
+        <el-row :gutter="10" class="mb8">
+          <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+        </el-row>
+        <div class="app-container_table_main">
+          <el-table ref="tables" v-loading="loading" :data="dataList" border height="100%">
+            <el-table-column label="序号" align="center" type="index" width="60"></el-table-column>
+            <el-table-column label="订单号" align="center" prop="orderId" />
+            <el-table-column label="订单金额(元)" align="center" prop="invoiceAmount" />
+            <el-table-column label="类型" align="center">
+              <template slot-scope="scope">
+                <dict-tag :options="dict.type.lookup_type" :value="scope.row.handlerType"/>
+              </template>
+            </el-table-column>
+            <el-table-column label="申请类型" align="center">
+              <template slot-scope="scope">
+                <span v-if="scope.row.invoiceLine == 'bs'">数电专票</span>
+                <span v-else-if="scope.row.invoiceLine == 'pc'">数电普票</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="抬头名称" align="center" prop="name" />
+            <el-table-column label="税号" align="center" prop="creditCode" />
+            <el-table-column label="状态" align="center">
+              <template slot-scope="scope">
+                <dict-tag :options="dict.type.Invoicing_type" :value="scope.row.status"/>
+              </template>
+            </el-table-column>
+            <el-table-column label="开票来源" align="center">
+              <template slot-scope="scope">
+                <dict-tag :options="[
+                    { label: '小程序',value: '0',raw: {listClass:'default'} },
+                    { label: '团购H5',value: '1',raw: {listClass:'default'} },
+                    { label: '线下(诺诺系统)',value: '2',raw: {listClass:'default'} },
+                  ]" :value="scope.row.invoiceSource"/>
+              </template>
+            </el-table-column>
+            <el-table-column label="申请时间" align="center">
+              <template slot-scope="scope">
+                <span>{{ parseTime(scope.row.createTime) }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+              <template slot-scope="scope">
+                <el-button
+                  size="mini"
+                  type="text"
+                  @click="openDetails(scope.row)"
+                  v-hasPermi="['finance:InvoiceRecords:details']"
+                >详情</el-button>
+                
+                <span v-hasPermi="['finance:InvoiceRecords:redblood']" style="display: inline-block;">
+                  <el-button
+                    size="mini"
+                    type="text"
+                    style="margin-left: 10px;"
+                    v-if="scope.row.status == 1 || scope.row.status == 7"
+                    @click="openRedBlood(scope.row)"
+                  >冲红</el-button>
+                </span>
+                <!-- v-hasPermi="['finance:InvoiceRecords:relatedOrders']" -->
+                <span style="display: inline-block;" v-hasPermi="['finance:InvoiceRecords:relatedOrders']">
+                  <el-button
+                    size="mini"
+                    type="text"
+                    style="margin-left: 10px;"
+                    v-if="scope.row.invoiceSource == 2"
+                    @click="openRelatedOrders(scope.row)"
+                  >{{ scope.row.orderId && scope.row.orderId != '0'  ? '重新关联订单': '关联订单' }}</el-button>
+                </span>
+              </template>
+            </el-table-column>
+          </el-table>
+        </div>
+      </div>
+      <div class="app-container_table_page">
+        <pagination
+          v-show="total>0"
+          :total="total"
+          :page.sync="queryParams.pageNum"
+          :limit.sync="queryParams.pageSize"
+          @pagination="getList"
         />
-      </el-form-item>
-      <el-form-item label="抬头名称">
-        <el-input
-          v-model="queryParams.name"
-          placeholder="请输入抬头名称"
-          clearable
-          style="width: 240px;"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="类型">
-        <el-select
-          v-model="queryParams.handlerType"
-          placeholder="类型"
-          clearable
-          style="width: 100%"
-        >
-          <el-option
-            v-for="dict in dict.type.lookup_type"
-            :key="dict.value"
-            :label="dict.label"
-            :value="dict.value"
-          />
-        </el-select>
-      </el-form-item>
-      <el-form-item label="状态">
-        <el-select
-          v-model="queryParams.status"
-          placeholder="状态"
-          clearable
-          style="width: 100%"
-        >
-          <el-option
-            v-for="dict in dict.type.Invoicing_type"
-            :key="dict.value"
-            :label="dict.label"
-            :value="dict.value"
-          />
-        </el-select>
-      </el-form-item>
-      <el-form-item label="开票来源">
-        <el-select
-          v-model="queryParams.invoiceSource"
-          placeholder="开票来源"
-          clearable
-          style="width: 100%"
-        >
-          <el-option
-            v-for="dict in [
-              { label: '小程序',value: 0 },
-              { label: '团购H5',value: 1 },
-              { label: '线下(诺诺系统)',value: 2 },
-            ]"
-            :key="dict.value"
-            :label="dict.label"
-            :value="dict.value"
-          />
-        </el-select>
-      </el-form-item>
-      <el-form-item>
-        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
-        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
-      </el-form-item>
-    </el-form>
+      </div>
+    </div>
+    
 
-    <el-row :gutter="10" class="mb8">
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
-    </el-row>
+    
 
-    <el-table ref="tables" v-loading="loading" :data="dataList" border>
-      <el-table-column label="序号" align="center" type="index" width="60"></el-table-column>
-      <el-table-column label="订单号" align="center" prop="orderId" />
-      <el-table-column label="订单金额(元)" align="center" prop="invoiceAmount" />
-      <el-table-column label="类型" align="center">
-        <template slot-scope="scope">
-          <dict-tag :options="dict.type.lookup_type" :value="scope.row.handlerType"/>
-        </template>
-      </el-table-column>
-      <el-table-column label="申请类型" align="center">
-        <template slot-scope="scope">
-          <span v-if="scope.row.invoiceLine == 'bs'">数电专票</span>
-          <span v-else-if="scope.row.invoiceLine == 'pc'">数电普票</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="抬头名称" align="center" prop="name" />
-      <el-table-column label="税号" align="center" prop="creditCode" />
-      <el-table-column label="状态" align="center">
-        <template slot-scope="scope">
-          <dict-tag :options="dict.type.Invoicing_type" :value="scope.row.status"/>
-        </template>
-      </el-table-column>
-      <el-table-column label="开票来源" align="center">
-        <template slot-scope="scope">
-          <dict-tag :options="[
-              { label: '小程序',value: '0',raw: {listClass:'default'} },
-              { label: '团购H5',value: '1',raw: {listClass:'default'} },
-              { label: '线下(诺诺系统)',value: '2',raw: {listClass:'default'} },
-            ]" :value="scope.row.invoiceSource"/>
-        </template>
-      </el-table-column>
-      <el-table-column label="申请时间" align="center">
-        <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.createTime) }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
-        <template slot-scope="scope">
-          <el-button
-            size="mini"
-            type="text"
-            @click="openDetails(scope.row)"
-            v-hasPermi="['finance:InvoiceRecords:details']"
-          >详情</el-button>
-          
-          <span v-hasPermi="['finance:InvoiceRecords:redblood']" style="display: inline-block;">
-            <el-button
-              size="mini"
-              type="text"
-              style="margin-left: 10px;"
-              v-if="scope.row.status == 1 || scope.row.status == 7"
-              @click="openRedBlood(scope.row)"
-            >冲红</el-button>
-          </span>
-          <!-- v-hasPermi="['finance:InvoiceRecords:relatedOrders']" -->
-          <span style="display: inline-block;" v-hasPermi="['finance:InvoiceRecords:relatedOrders']">
-            <el-button
-              size="mini"
-              type="text"
-              style="margin-left: 10px;"
-              v-if="scope.row.invoiceSource == 2"
-              @click="openRelatedOrders(scope.row)"
-            >{{ scope.row.orderId && scope.row.orderId != '0'  ? '重新关联订单': '关联订单' }}</el-button>
-          </span>
-        </template>
-      </el-table-column>
-    </el-table>
+    
 
-    <pagination
-      v-show="total>0"
-      :total="total"
-      :page.sync="queryParams.pageNum"
-      :limit.sync="queryParams.pageSize"
-      @pagination="getList"
-    />
+    
 
     <!-- 详情 -->
     <details-dia ref="detailsDia" @getList="getList"></details-dia>

+ 6 - 1
src/views/finance/Statements/StatementsIndexNew.vue

@@ -140,6 +140,11 @@
               <el-table-column label="分销税率(%)" align="center" width="200" prop="personRetailRate" />
               <el-table-column label="分销提现金额(元)" align="center" width="200" prop="personWithdrawRealPrice" />
               <el-table-column label="分销账户" align="center" width="200" prop="personUnionMid" />
+              <el-table-column label="存在对账单" align="center" width="100" prop="hasBill">
+                <template slot-scope="scope">
+                  <dict-tag :options="dict.type.has_bill" :value="scope.row.hasBill" />
+                </template>
+              </el-table-column>
             </el-table>
             <!-- 页面表格数据区域 End -->
         </div>
@@ -162,7 +167,7 @@ import { pagePerformTimeList } from "@/api/schedulingMr/schedulingMr"
 import moment from "moment"
 export default {
   name: 'Statements',
-  dicts: ['order_form_type', 'pay_way_type', 'transaction_type', 'order_withdraw_status', 'person_withdraw_status'],
+  dicts: ['order_form_type', 'pay_way_type', 'transaction_type', 'order_withdraw_status', 'person_withdraw_status','has_bill'],
   data() {
     return {
       // 遮罩层

+ 188 - 181
src/views/finance/flowingWaterMr/index.vue

@@ -1,186 +1,193 @@
 <template>
   <div class="app-container app-container-scheduling">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="120px">
-      <el-form-item v-if="queryShow.id" label="订单号" label-width="60px">
-        <el-input
-          v-model="queryParams.id"
-          placeholder="请输入订单号"
-          clearable
-          style="width: 240px;"
-          @keyup.enter.native="handleQuery"
-        />
-        <span @click="clearQuery('id')" class="query_clear"><i class="el-icon-circle-close"></i></span>
-      </el-form-item>
-      <el-form-item v-if="queryShow.payWay" label-width="80px" label="支付方式">
-        <el-select
-          v-model="queryParams.payWay"
-          placeholder="支付方式"
-          clearable
-          style="width: 100%"
-        >
-            <el-option
-              v-for="dict in dict.type.pay_way_type"
-              :key="dict.value"
-              :label="dict.label"
-              :value="dict.value"
-            />
-        </el-select>
-        <span @click="clearQuery('payWay')" class="query_clear"><i class="el-icon-circle-close"></i></span>
-      </el-form-item>
-      <el-form-item v-if="queryShow.incomeExpenses" label-width="80px" label="变动类型">
-        <el-select
-          v-model="queryParams.incomeExpenses"
-          placeholder="变动类型"
-          clearable
-          style="width: 100%"
-        >
-          <el-option
-            v-for="dict in incomeExpensesList"
-            :key="dict.id"
-            :label="dict.name"
-            :value="dict.value"
-          />
-        </el-select>
-        <span @click="clearQuery('incomeExpenses')" class="query_clear"><i class="el-icon-circle-close"></i></span>
-      </el-form-item>
-      <el-form-item v-if="queryShow.businessType" label-width="80px" label="业务类型">
-        <el-select
-          v-model="queryParams.businessType"
-          placeholder="业务类型"
-          clearable
-          style="width: 100%"
-        >
-          <el-option
-            v-for="dict in businessTypeList"
-            :key="dict.id"
-            :label="dict.name"
-            :value="dict.value"
-          />
-        </el-select>
-        <span @click="clearQuery('businessType')" class="query_clear"><i class="el-icon-circle-close"></i></span>
-      </el-form-item>
-      <el-form-item v-if="queryShow.time" label="支付时间" label-width="80px">
-          <el-date-picker
-            style="width: 230px;"
-            v-model="queryParams.time"
-            type="daterange"
-            value-format="yyyy-MM-dd"
-            range-separator="至"
-            start-placeholder="开始日期"
-            end-placeholder="结束日期">
-          </el-date-picker>
-          <span @click="clearQuery('time')" class="query_clear"><i class="el-icon-circle-close"></i></span>
-      </el-form-item>
-      <el-form-item v-if="queryShow.performDate" label="场次时间" label-width="80px">
-          <el-date-picker
-            style="width: 250px;"
-            v-model="queryParams.performDate"
-            @change="pagePerformTimeListFun"
-            type="daterange"
-            value-format="yyyy-MM-dd"
-            range-separator="至"
-            start-placeholder="开始日期"
-            end-placeholder="结束日期">
-          </el-date-picker>
-          <span @click="clearQuery('performDate')" class="query_clear"><i class="el-icon-circle-close"></i></span>
-        </el-form-item>
-        <el-form-item label="场次" label-width="60px" v-if="!multiPerformDate && queryShow.performDate">
-          <el-select
-            v-model="queryParams.performTimeId"
-            placeholder="场次"
-            clearable
-            style="width: 100%"
-          >
-            <el-option
-              v-for="dict in pagePerformTimeList"
-              :key="dict.id"
-              :label="dict.timeSnapshot+'('+dict.performTimeStart+'-'+dict.performTimeEnd+')'"
-              :value="dict.id"
+    <div class="app-container_flex_auto">
+      <div class="app-container_form" v-show="showSearch">
+        <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="120px">
+          <el-form-item v-if="queryShow.id" label="订单号" label-width="60px">
+            <el-input
+              v-model="queryParams.id"
+              placeholder="请输入订单号"
+              clearable
+              style="width: 240px;"
+              @keyup.enter.native="handleQuery"
             />
-          </el-select>
-          <span @click="clearQuery('performDate')" class="query_clear"><i class="el-icon-circle-close"></i></span>
-        </el-form-item>
-      <el-form-item>
-        <el-dropdown @command="openQuery">
-          <el-button size="mini" type="primary" icon="el-icon-plus"></el-button>
-          <el-dropdown-menu slot="dropdown">
-            <el-dropdown-item command="id">订单号</el-dropdown-item>
-            <el-dropdown-item command="payWay">支付方式</el-dropdown-item>
-            <el-dropdown-item command="incomeExpenses">变动类型</el-dropdown-item>
-            <el-dropdown-item command="businessType">业务类型</el-dropdown-item>
-            <el-dropdown-item command="time">支付时间</el-dropdown-item>
-            <el-dropdown-item command="performDate">场次时间/场次</el-dropdown-item>
-          </el-dropdown-menu>
-        </el-dropdown>
-        <el-button style="margin-left: 10px;" type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
-        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
-      </el-form-item>
-    </el-form>
-    <el-row :gutter="10" class="mb8"  style="margin-left: 0; margin-top: 10px">
-      <el-button
-        type="primary"
-        size="mini"
-        icon="el-icon-download"
-        :disabled="tableData.length === 0"
-        v-hasPermi="['flowingWaterMr:flowingWaterMr:downloadExcel']"
-        @click="handleExport"
-        v-loading.fullscreen.lock="handleExportLoading"
-        element-loading-text="正在拼命生成数据中..."
-        element-loading-spinner="el-icon-loading"
-        element-loading-background="rgba(0, 0, 0, 0.5)"
-      >导出excel</el-button>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
-    </el-row>
-
-    <el-table ref="tables" v-loading="loading" :data="dataList" border>
-      <el-table-column label="序号" align="center" type="index" width="60"></el-table-column>
-      <el-table-column label="订单号" align="center" prop="id">
-        <template slot-scope="scope">
-          <span style="color: #1890ff;cursor: pointer;" @click="openDetails(scope.row)">{{ scope.row.id }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="购票数量" align="center" prop="quantity" />
-      <el-table-column label="实付单价" align="center" prop="price" />
-      <el-table-column label="支付方式" align="center" prop="payWay">
-        <template slot-scope="scope">
-          <dict-tag :options="dict.type.pay_way_type" :value="scope.row.payWay"/>
-        </template>
-      </el-table-column>
-      <el-table-column label="变动类型" align="center" prop="incomeExpenses" />
-      <el-table-column label="变动金额(元)" align="center" prop="type">
-        <template slot-scope="scope">
-          <span>¥{{ scope.row.orderPrice && scope.row.orderPrice != 0 ? ( (scope.row.incomeExpenses=='支出'?'-':'') + scope.row.orderPrice) : '' }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="业务类型" align="center" prop="businessType" />
-      <el-table-column label="产生渠道" align="center" prop="refundTime" width="160" >
-        <template slot-scope="scope">
-          <!-- <span>{{ sourceMap[scope.row.source] }}</span> -->
-          <dict-tag :options="dict.type.order_form_type" :value="scope.row.source"/>
-        </template>
-      </el-table-column>
-      <el-table-column label="支付时间" align="center" prop="payTime" width="160" >
-            <template slot-scope="scope">
-              <span>{{ parseTime(scope.row.payTime) }}</span>
-            </template>
-      </el-table-column>
-      <el-table-column label="场次时间" align="center" prop="performDate" />
-      <el-table-column label="场次" width="120" align="center" prop="performTime" />
-      <el-table-column label="产生时间" align="center" prop="createTime" width="160" >
-        <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.createTime) }}</span>
-        </template>
-      </el-table-column>
+            <span @click="clearQuery('id')" class="query_clear"><i class="el-icon-circle-close"></i></span>
+          </el-form-item>
+          <el-form-item v-if="queryShow.payWay" label-width="80px" label="支付方式">
+            <el-select
+              v-model="queryParams.payWay"
+              placeholder="支付方式"
+              clearable
+              style="width: 100%"
+            >
+                <el-option
+                  v-for="dict in dict.type.pay_way_type"
+                  :key="dict.value"
+                  :label="dict.label"
+                  :value="dict.value"
+                />
+            </el-select>
+            <span @click="clearQuery('payWay')" class="query_clear"><i class="el-icon-circle-close"></i></span>
+          </el-form-item>
+          <el-form-item v-if="queryShow.incomeExpenses" label-width="80px" label="变动类型">
+            <el-select
+              v-model="queryParams.incomeExpenses"
+              placeholder="变动类型"
+              clearable
+              style="width: 100%"
+            >
+              <el-option
+                v-for="dict in incomeExpensesList"
+                :key="dict.id"
+                :label="dict.name"
+                :value="dict.value"
+              />
+            </el-select>
+            <span @click="clearQuery('incomeExpenses')" class="query_clear"><i class="el-icon-circle-close"></i></span>
+          </el-form-item>
+          <el-form-item v-if="queryShow.businessType" label-width="80px" label="业务类型">
+            <el-select
+              v-model="queryParams.businessType"
+              placeholder="业务类型"
+              clearable
+              style="width: 100%"
+            >
+              <el-option
+                v-for="dict in businessTypeList"
+                :key="dict.id"
+                :label="dict.name"
+                :value="dict.value"
+              />
+            </el-select>
+            <span @click="clearQuery('businessType')" class="query_clear"><i class="el-icon-circle-close"></i></span>
+          </el-form-item>
+          <el-form-item v-if="queryShow.time" label="支付时间" label-width="80px">
+              <el-date-picker
+                style="width: 230px;"
+                v-model="queryParams.time"
+                type="daterange"
+                value-format="yyyy-MM-dd"
+                range-separator="至"
+                start-placeholder="开始日期"
+                end-placeholder="结束日期">
+              </el-date-picker>
+              <span @click="clearQuery('time')" class="query_clear"><i class="el-icon-circle-close"></i></span>
+          </el-form-item>
+          <el-form-item v-if="queryShow.performDate" label="场次时间" label-width="80px">
+              <el-date-picker
+                style="width: 250px;"
+                v-model="queryParams.performDate"
+                @change="pagePerformTimeListFun"
+                type="daterange"
+                value-format="yyyy-MM-dd"
+                range-separator="至"
+                start-placeholder="开始日期"
+                end-placeholder="结束日期">
+              </el-date-picker>
+              <span @click="clearQuery('performDate')" class="query_clear"><i class="el-icon-circle-close"></i></span>
+            </el-form-item>
+            <el-form-item label="场次" label-width="60px" v-if="!multiPerformDate && queryShow.performDate">
+              <el-select
+                v-model="queryParams.performTimeId"
+                placeholder="场次"
+                clearable
+                style="width: 100%"
+              >
+                <el-option
+                  v-for="dict in pagePerformTimeList"
+                  :key="dict.id"
+                  :label="dict.timeSnapshot+'('+dict.performTimeStart+'-'+dict.performTimeEnd+')'"
+                  :value="dict.id"
+                />
+              </el-select>
+              <span @click="clearQuery('performDate')" class="query_clear"><i class="el-icon-circle-close"></i></span>
+            </el-form-item>
+          <el-form-item>
+            <el-dropdown @command="openQuery">
+              <el-button size="mini" type="primary" icon="el-icon-plus"></el-button>
+              <el-dropdown-menu slot="dropdown">
+                <el-dropdown-item command="id">订单号</el-dropdown-item>
+                <el-dropdown-item command="payWay">支付方式</el-dropdown-item>
+                <el-dropdown-item command="incomeExpenses">变动类型</el-dropdown-item>
+                <el-dropdown-item command="businessType">业务类型</el-dropdown-item>
+                <el-dropdown-item command="time">支付时间</el-dropdown-item>
+                <el-dropdown-item command="performDate">场次时间/场次</el-dropdown-item>
+              </el-dropdown-menu>
+            </el-dropdown>
+            <el-button style="margin-left: 10px;" type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+            <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+          </el-form-item>
+        </el-form>
+      </div>
+      <div class="app-container_table" :class="showSearch ? 'mt15' : ''">
+        <el-row :gutter="10" class="mb8" style="margin-left: 0;">
+          <el-button
+            type="primary"
+            size="mini"
+            icon="el-icon-download"
+            :disabled="tableData.length === 0"
+            v-hasPermi="['flowingWaterMr:flowingWaterMr:downloadExcel']"
+            @click="handleExport"
+            v-loading.fullscreen.lock="handleExportLoading"
+            element-loading-text="正在拼命生成数据中..."
+            element-loading-spinner="el-icon-loading"
+            element-loading-background="rgba(0, 0, 0, 0.5)"
+          >导出excel</el-button>
+          <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+        </el-row>
+        <div class="app-container_table_main">
+          <el-table ref="tables" v-loading="loading" :data="dataList" border height="100%">
+            <el-table-column label="序号" align="center" type="index" width="60"></el-table-column>
+            <el-table-column label="订单号" align="center" prop="id">
+              <template slot-scope="scope">
+                <span style="color: #1890ff;cursor: pointer;" @click="openDetails(scope.row)">{{ scope.row.id }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="购票数量" align="center" prop="quantity" />
+            <el-table-column label="实付单价" align="center" prop="price" />
+            <el-table-column label="支付方式" align="center" prop="payWay">
+              <template slot-scope="scope">
+                <dict-tag :options="dict.type.pay_way_type" :value="scope.row.payWay"/>
+              </template>
+            </el-table-column>
+            <el-table-column label="变动类型" align="center" prop="incomeExpenses" />
+            <el-table-column label="变动金额(元)" align="center" prop="type">
+              <template slot-scope="scope">
+                <span>¥{{ scope.row.orderPrice && scope.row.orderPrice != 0 ? ( (scope.row.incomeExpenses=='支出'?'-':'') + scope.row.orderPrice) : '' }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="业务类型" align="center" prop="businessType" />
+            <el-table-column label="产生渠道" align="center" prop="refundTime" width="160" >
+              <template slot-scope="scope">
+                <!-- <span>{{ sourceMap[scope.row.source] }}</span> -->
+                <dict-tag :options="dict.type.order_form_type" :value="scope.row.source"/>
+              </template>
+            </el-table-column>
+            <el-table-column label="支付时间" align="center" prop="payTime" width="160" >
+                  <template slot-scope="scope">
+                    <span>{{ parseTime(scope.row.payTime) }}</span>
+                  </template>
+            </el-table-column>
+            <el-table-column label="场次时间" align="center" prop="performDate" />
+            <el-table-column label="场次" width="120" align="center" prop="performTime" />
+            <el-table-column label="产生时间" align="center" prop="createTime" width="160" >
+              <template slot-scope="scope">
+                <span>{{ parseTime(scope.row.createTime) }}</span>
+              </template>
+            </el-table-column>
 
-    </el-table>
-
-    <pagination
-      v-show="total>0"
-      :total="total"
-      :page.sync="queryParams.pageNum"
-      :limit.sync="queryParams.pageSize"
-      @pagination="getList"
-    />
+          </el-table>
+        </div>
+      </div>
+      <div class="app-container_table_page">
+        <pagination
+          :total="total"
+          :page.sync="queryParams.pageNum"
+          :limit.sync="queryParams.pageSize"
+          @pagination="getList"
+        />
+      </div>
+    </div>
     <!-- 详情 -->
     <details-dia ref="detailsDia" @getList="getList"></details-dia>
   </div>
@@ -300,8 +307,8 @@ export default {
       }
       pageList(params)
       .then(response => {
-          this.dataList = response.data.rows;
-          this.total = response.data.total;
+          this.dataList = response?.data?.rows || [];
+          this.total = response?.data?.total || 0;
           this.loading = false;
         }
       ).catch(()=>{

+ 156 - 151
src/views/finance/refundMr/index.vue

@@ -1,155 +1,160 @@
 <template>
   <div class="app-container app-container-scheduling">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item v-if="queryShow.refundId" label="退款单号">
-        <el-input
-          v-model="queryParams.refundId"
-          placeholder="请输入退款单号"
-          clearable
-          style="width: 240px;"
-          @keyup.enter.native="handleQuery"
+    <div class="app-container_flex_auto">
+      <div class="app-container_form"  v-show="showSearch">
+        <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px">
+          <el-form-item v-if="queryShow.refundId" label="退款单号">
+            <el-input
+              v-model="queryParams.refundId"
+              placeholder="请输入退款单号"
+              clearable
+              style="width: 220px;"
+              @keyup.enter.native="handleQuery"
+            />
+            <span @click="clearQuery('refundId')" class="query_clear"><i class="el-icon-circle-close"></i></span>
+          </el-form-item>
+          <el-form-item v-if="queryShow.orderId" label="原订单号">
+            <el-input
+              v-model="queryParams.orderId"
+              placeholder="请输入原订单号"
+              clearable
+              style="width: 220px;"
+              @keyup.enter.native="handleQuery"
+            />
+            <span @click="clearQuery('orderId')" class="query_clear"><i class="el-icon-circle-close"></i></span>
+          </el-form-item>
+          <el-form-item v-if="queryShow.refundMobile" label="手机号码">
+            <el-input
+              v-model="queryParams.refundMobile"
+              placeholder="请输入手机号码"
+              clearable
+              style="width: 220px;"
+              @keyup.enter.native="handleQuery"
+            />
+            <span @click="clearQuery('refundMobile')" class="query_clear"><i class="el-icon-circle-close"></i></span>
+          </el-form-item>
+          <el-form-item v-if="queryShow.transactionId" label="支付单号">
+            <el-input
+              v-model="queryParams.transactionId"
+              placeholder="请输入支付单号"
+              clearable
+              style="width: 220px;"
+              @keyup.enter.native="handleQuery"
+            />
+            <span @click="clearQuery('transactionId')" class="query_clear"><i class="el-icon-circle-close"></i></span>
+          </el-form-item>
+          <el-form-item v-if="queryShow.status" label="退款状态">
+            <el-select
+              v-model="queryParams.status"
+              placeholder="退款状态"
+              clearable
+              style="width: 100%"
+            >
+              <el-option
+                v-for="dict in statusList"
+                :key="dict.id"
+                :label="dict.name"
+                :value="dict.value"
+              />
+            </el-select>
+            <span @click="clearQuery('status')" class="query_clear"><i class="el-icon-circle-close"></i></span>
+          </el-form-item>
+          <el-form-item>
+            <el-dropdown @command="openQuery">
+              <el-button size="mini" type="primary" icon="el-icon-plus"></el-button>
+              <el-dropdown-menu slot="dropdown">
+                <el-dropdown-item command="refundId">退款单号</el-dropdown-item>
+                <el-dropdown-item command="orderId">原订单号</el-dropdown-item>
+                <el-dropdown-item command="refundMobile">手机号码</el-dropdown-item>
+                <el-dropdown-item command="transactionId">支付单号</el-dropdown-item>
+                <el-dropdown-item command="status">退款状态</el-dropdown-item>
+              </el-dropdown-menu>
+            </el-dropdown>
+            <el-button style="margin-left: 10px;" type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+            <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+          </el-form-item>
+        </el-form>
+      </div>
+      <div class="app-container_table">
+        <el-row :gutter="10" class="mb8">
+          <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+        </el-row>
+        <div class="app-container_table_main">
+          <el-table ref="tables" v-loading="loading" :data="dataList" border height="100%">
+            <el-table-column label="序号" align="center" type="index" width="60"></el-table-column>
+            <el-table-column label="退款单号" align="center" prop="id" />
+      <!--      <el-table-column label="原订单号" align="center" prop="orderId" />-->
+            <el-table-column label="原订单号" align="center" prop="orderId" width="160" sortable="custom" >
+              <template slot-scope="scope">
+                <el-button type="text" @click="openDetails(scope.row, 'order')">{{ scope.row.orderId }}</el-button>
+              </template>
+            </el-table-column>
+            <el-table-column label="手机号码" align="center" prop="refundMobile" />
+            <el-table-column label="支付单号" align="center" prop="transactionId" />
+            <el-table-column label="退款金额" align="center" prop="type">
+              <template slot-scope="scope">
+                <span>{{ scope.row.refundAmount === 0 ? ( '¥' + scope.row.refundAmount) : ('¥-' + scope.row.refundAmount) }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="申请原因" align="center" prop="refundReason" />
+            <el-table-column label="申请时间" align="center" prop="refundTime" width="160" >
+              <template slot-scope="scope">
+                <span>{{ parseTime(scope.row.refundTime) }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="申请状态" align="center" prop="type">
+              <template slot-scope="scope">
+                <el-tag v-if="scope.row.status == 0">申请中</el-tag>
+                <el-tag v-if="scope.row.status == 1" type="success">退款成功</el-tag>
+                <el-tag v-if="scope.row.status == 2" type="warning">退款驳回</el-tag>
+                <el-tag v-if="scope.row.status == 3" type="info">退款中</el-tag>
+                <el-tag v-if="scope.row.status == 4" type="danger">退款失败</el-tag>
+              </template>
+            </el-table-column>
+            <el-table-column label="退款时间" align="center" prop="refundSuccessTime" width="160" >
+              <template slot-scope="scope">
+                <span>{{ parseTime(scope.row.refundSuccessTime) }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="操作人" align="center" prop="refundName" />
+            <el-table-column label="操作" align="center" width="200" class-name="small-padding fixed-width">
+              <template slot-scope="scope">
+                <el-button
+                  size="mini"
+                  type="text"
+                  @click="openDetails(scope.row)"
+                  v-hasPermi="['refundMr:refundMr:details']"
+                >详情</el-button>
+      <!--          <el-button-->
+      <!--            size="mini"-->
+      <!--            type="text"-->
+      <!--            @click="openDetails(scope.row)"-->
+      <!--            v-hasPermi="['refundMr:refundMr:edit']"-->
+      <!--          >查看</el-button>-->
+                
+                <span v-hasPermi="['refundMr:refundMr:delete']" style="display: inline-block;">
+                  <el-button
+                    size="mini"
+                    type="text"
+                    style="margin-left: 10px;"
+                    v-if="scope.row.status == 0 || scope.row.status == 4"
+                    @click="openDetails(scope.row, 'refund')"
+                  >审核</el-button>
+                </span>
+              </template>
+            </el-table-column>
+          </el-table>
+        </div>
+      </div>
+      <div class="app-container_table_page">
+        <pagination
+          :total="total"
+          :page.sync="queryParams.pageNum"
+          :limit.sync="queryParams.pageSize"
+          @pagination="getList"
         />
-        <span @click="clearQuery('refundId')" class="query_clear"><i class="el-icon-circle-close"></i></span>
-      </el-form-item>
-      <el-form-item v-if="queryShow.orderId" label="原订单号">
-        <el-input
-          v-model="queryParams.orderId"
-          placeholder="请输入原订单号"
-          clearable
-          style="width: 240px;"
-          @keyup.enter.native="handleQuery"
-        />
-        <span @click="clearQuery('orderId')" class="query_clear"><i class="el-icon-circle-close"></i></span>
-      </el-form-item>
-      <el-form-item v-if="queryShow.refundMobile" label="手机号码">
-        <el-input
-          v-model="queryParams.refundMobile"
-          placeholder="请输入手机号码"
-          clearable
-          style="width: 240px;"
-          @keyup.enter.native="handleQuery"
-        />
-        <span @click="clearQuery('refundMobile')" class="query_clear"><i class="el-icon-circle-close"></i></span>
-      </el-form-item>
-      <el-form-item v-if="queryShow.transactionId" label="支付单号">
-        <el-input
-          v-model="queryParams.transactionId"
-          placeholder="请输入支付单号"
-          clearable
-          style="width: 240px;"
-          @keyup.enter.native="handleQuery"
-        />
-        <span @click="clearQuery('transactionId')" class="query_clear"><i class="el-icon-circle-close"></i></span>
-      </el-form-item>
-      <el-form-item v-if="queryShow.status" label="退款状态">
-        <el-select
-          v-model="queryParams.status"
-          placeholder="退款状态"
-          clearable
-          style="width: 100%"
-        >
-          <el-option
-            v-for="dict in statusList"
-            :key="dict.id"
-            :label="dict.name"
-            :value="dict.value"
-          />
-        </el-select>
-        <span @click="clearQuery('status')" class="query_clear"><i class="el-icon-circle-close"></i></span>
-      </el-form-item>
-      <el-form-item>
-        <el-dropdown @command="openQuery">
-          <el-button size="mini" type="primary" icon="el-icon-plus"></el-button>
-          <el-dropdown-menu slot="dropdown">
-            <el-dropdown-item command="refundId">退款单号</el-dropdown-item>
-            <el-dropdown-item command="orderId">原订单号</el-dropdown-item>
-            <el-dropdown-item command="refundMobile">手机号码</el-dropdown-item>
-            <el-dropdown-item command="transactionId">支付单号</el-dropdown-item>
-            <el-dropdown-item command="status">退款状态</el-dropdown-item>
-          </el-dropdown-menu>
-        </el-dropdown>
-        <el-button style="margin-left: 10px;" type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
-        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
-      </el-form-item>
-    </el-form>
-
-    <el-row :gutter="10" class="mb8">
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
-    </el-row>
-
-    <el-table ref="tables" v-loading="loading" :data="dataList" border>
-      <el-table-column label="序号" align="center" type="index" width="60"></el-table-column>
-      <el-table-column label="退款单号" align="center" prop="id" />
-<!--      <el-table-column label="原订单号" align="center" prop="orderId" />-->
-      <el-table-column label="原订单号" align="center" prop="orderId" width="160" sortable="custom" >
-        <template slot-scope="scope">
-          <el-button type="text" @click="openDetails(scope.row, 'order')">{{ scope.row.orderId }}</el-button>
-        </template>
-      </el-table-column>
-      <el-table-column label="手机号码" align="center" prop="refundMobile" />
-      <el-table-column label="支付单号" align="center" prop="transactionId" />
-      <el-table-column label="退款金额" align="center" prop="type">
-        <template slot-scope="scope">
-          <span>{{ scope.row.refundAmount === 0 ? ( '¥' + scope.row.refundAmount) : ('¥-' + scope.row.refundAmount) }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="申请原因" align="center" prop="refundReason" />
-      <el-table-column label="申请时间" align="center" prop="refundTime" width="160" >
-        <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.refundTime) }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="申请状态" align="center" prop="type">
-        <template slot-scope="scope">
-          <el-tag v-if="scope.row.status == 0">申请中</el-tag>
-          <el-tag v-if="scope.row.status == 1" type="success">退款成功</el-tag>
-          <el-tag v-if="scope.row.status == 2" type="warning">退款驳回</el-tag>
-          <el-tag v-if="scope.row.status == 3" type="info">退款中</el-tag>
-          <el-tag v-if="scope.row.status == 4" type="danger">退款失败</el-tag>
-        </template>
-      </el-table-column>
-      <el-table-column label="退款时间" align="center" prop="refundSuccessTime" width="160" >
-        <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.refundSuccessTime) }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="操作人" align="center" prop="refundName" />
-      <el-table-column label="操作" align="center" width="200" class-name="small-padding fixed-width">
-        <template slot-scope="scope">
-          <el-button
-            size="mini"
-            type="text"
-            @click="openDetails(scope.row)"
-            v-hasPermi="['refundMr:refundMr:details']"
-          >详情</el-button>
-<!--          <el-button-->
-<!--            size="mini"-->
-<!--            type="text"-->
-<!--            @click="openDetails(scope.row)"-->
-<!--            v-hasPermi="['refundMr:refundMr:edit']"-->
-<!--          >查看</el-button>-->
-          
-          <span v-hasPermi="['refundMr:refundMr:delete']" style="display: inline-block;">
-            <el-button
-              size="mini"
-              type="text"
-              style="margin-left: 10px;"
-              v-if="scope.row.status == 0 || scope.row.status == 4"
-              @click="openDetails(scope.row, 'refund')"
-            >审核</el-button>
-          </span>
-        </template>
-      </el-table-column>
-    </el-table>
-
-    <pagination
-      v-show="total>0"
-      :total="total"
-      :page.sync="queryParams.pageNum"
-      :limit.sync="queryParams.pageSize"
-      @pagination="getList"
-    />
-
+      </div>
+    </div>
     <!-- 详情 -->
     <details-dia ref="detailsDia" @getList="getList"></details-dia>
 
@@ -230,8 +235,8 @@ export default {
       this.loading = true;
       pageList(this.addDateRange(this.queryParams, this.dateRange))
       .then(response => {
-          this.dataList = response.data.rows;
-          this.total = response.data.total;
+          this.dataList = response?.data?.rows || [];
+          this.total = response?.data?.total || 0;
           this.loading = false;
         }
       ).catch(()=>{