936 lines
		
	
	
		
			43 KiB
		
	
	
	
		
			Vue
		
	
	
	
			
		
		
	
	
			936 lines
		
	
	
		
			43 KiB
		
	
	
	
		
			Vue
		
	
	
	
<template>
 | 
						||
    <div class="app-container">
 | 
						||
      <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="90px">
 | 
						||
        <el-form-item label="日期">
 | 
						||
            <el-date-picker
 | 
						||
                v-model="dateRange"
 | 
						||
                type="daterange"
 | 
						||
                align="right"
 | 
						||
                unlink-panels
 | 
						||
                range-separator="至"
 | 
						||
                start-placeholder="开始日期"
 | 
						||
                end-placeholder="结束日期"
 | 
						||
                format="yyyy-MM-dd" style="width: 220px"
 | 
						||
                :picker-options="pickerOptions" >
 | 
						||
            </el-date-picker>
 | 
						||
        </el-form-item>
 | 
						||
        <el-form-item label="关键字">
 | 
						||
            <el-input v-model="queryParams.custSearchInfo" placeholder="请输入用户姓名,编号,手机号" maxlength="20" clearable style="width: 220px"/>
 | 
						||
        </el-form-item>
 | 
						||
        <el-form-item label="订单号">
 | 
						||
            <el-input v-model.number="queryParams.orderId" placeholder="请输入订单号" maxlength="20" clearable style="width: 220px"/>
 | 
						||
        </el-form-item> 
 | 
						||
        <!-- <el-form-item label="交易号">
 | 
						||
            <el-input v-model="queryParams.tradeNo" placeholder="请输入交易号" maxlength="20" clearable style="width: 220px"/>
 | 
						||
        </el-form-item> -->
 | 
						||
        <el-form-item label="菜品名称">
 | 
						||
            <el-input v-model="queryParams.goodsSearchInfo" placeholder="请输入菜品名称" maxlength="20" clearable style="width: 220px"/>
 | 
						||
        </el-form-item> 
 | 
						||
        <el-form-item label="餐次">
 | 
						||
            <el-select v-model="queryParams.mealtimeTypeList" multiple collapse-tags style="width: 220px" clearable>
 | 
						||
                <el-option label="早餐" value="1"></el-option>
 | 
						||
                <el-option label="午餐" value="2"></el-option>
 | 
						||
                <el-option label="下午茶" value="3"></el-option>
 | 
						||
                <el-option label="晚餐" value="4"></el-option>
 | 
						||
                <el-option label="夜宵" value="5"></el-option>
 | 
						||
            </el-select>  
 | 
						||
        </el-form-item> 
 | 
						||
 | 
						||
        <el-form-item label="所属区域" prop="areaId">
 | 
						||
            <el-cascader v-model="queryParams.areaId"
 | 
						||
            :options="treeAreaOptions" :filterable="true" style="width: 220px" :show-all-levels="false"
 | 
						||
            :props="{ 
 | 
						||
                emitPath: false,// 若设置 false,则只返回该节点的值,只返回最后选择的id
 | 
						||
                checkStrictly: false,//来设置父子节点取消选中关联,从而达到选择任意一级选项的目的
 | 
						||
                value:'id',label:'label'
 | 
						||
            }" clearable collapse-tags @change="handleAreaChange">
 | 
						||
            </el-cascader>
 | 
						||
        </el-form-item>
 | 
						||
        <el-form-item label="所属食堂" prop="canteenId">
 | 
						||
            <el-select v-model="queryParams.canteenId" clearable placeholder="请选择所属食堂" style="width: 220px" @change="handleCanteenChange">
 | 
						||
                <el-option v-for="item in canteenOptions"
 | 
						||
                    :key="item.canteenId"
 | 
						||
                    :label="item.canteenName"
 | 
						||
                    :value="item.canteenId"
 | 
						||
                ></el-option>
 | 
						||
            </el-select> 
 | 
						||
        </el-form-item>
 | 
						||
        <el-form-item label="所属档口" prop="stallId">
 | 
						||
            <el-select v-model="queryParams.stallId" clearable placeholder="请选择所属档口" style="width: 220px" >
 | 
						||
                <el-option v-for="item in stallOptions"
 | 
						||
                    :key="item.stallId"
 | 
						||
                    :label="item.stallName"
 | 
						||
                    :value="item.stallId"
 | 
						||
                ></el-option>
 | 
						||
            </el-select> 
 | 
						||
        </el-form-item> 
 | 
						||
        <el-form-item label="订单状态">
 | 
						||
            <el-select v-model="queryParams.orderStateList" clearable multiple collapse-tags style="width: 220px"> 
 | 
						||
                <el-option
 | 
						||
                    v-for="dict in dict.type.sm_order_status"
 | 
						||
                    :key="dict.value"
 | 
						||
                    :label="dict.label"
 | 
						||
                    :value="Number(dict.value)"
 | 
						||
                    />
 | 
						||
            </el-select>  
 | 
						||
        </el-form-item>
 | 
						||
        <!-- <el-form-item label="支付方式">
 | 
						||
            <el-select v-model="queryParams.payStateList" clearable multiple collapse-tags style="width: 220px"> 
 | 
						||
                <el-option
 | 
						||
                    v-for="dict in dict.type.sm_order_pay_type"
 | 
						||
                    :key="dict.value"
 | 
						||
                    :label="dict.label"
 | 
						||
                    :value="Number(dict.value)"
 | 
						||
                    />
 | 
						||
            </el-select>  
 | 
						||
        </el-form-item> -->
 | 
						||
        <!-- <el-form-item label="用户类别">
 | 
						||
            <el-select v-model="queryParams.psnType" style="width: 220px" clearable> 
 | 
						||
                <el-option
 | 
						||
                v-for="dict in dict.type.sys_user_type"
 | 
						||
                :key="dict.value"
 | 
						||
                :label="dict.label"
 | 
						||
                :value="Number(dict.value)"
 | 
						||
                />
 | 
						||
            </el-select>  
 | 
						||
        </el-form-item>  --> 
 | 
						||
        <el-form-item label="所属组织" prop="deptIdList">  
 | 
						||
            <el-cascader v-model="queryParams.deptIdList"
 | 
						||
            :options="deptOptions" :filterable="true" style="width: 240px" :show-all-levels="false"
 | 
						||
            :props="{ 
 | 
						||
                multiple: true,
 | 
						||
                emitPath: false,// 若设置 false,则只返回该节点的值,只返回最后选择的id
 | 
						||
                checkStrictly: false,//来设置父子节点取消选中关联,从而达到选择任意一级选项的目的
 | 
						||
                value:'id',label:'label' 
 | 
						||
            }" clearable collapse-tags >
 | 
						||
            </el-cascader> 
 | 
						||
        </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>
 | 
						||
  
 | 
						||
      <el-row :gutter="10" class="mb8">
 | 
						||
        <!-- <el-col :span="1.5">
 | 
						||
            <el-button
 | 
						||
            type="primary" 
 | 
						||
            size="mini" :disabled="multiple"
 | 
						||
            @click="handleBatchRefund"
 | 
						||
            >批量退单</el-button>
 | 
						||
        </el-col>  
 | 
						||
        <el-col :span="1.5">
 | 
						||
            <el-button 
 | 
						||
            type="primary" 
 | 
						||
            size="mini" :disabled="multiple"
 | 
						||
            @click="handleBatchWriteOff"
 | 
						||
            >批量核销</el-button>
 | 
						||
        </el-col>  
 | 
						||
        <el-col :span="1.5">
 | 
						||
          <el-button
 | 
						||
            type="primary" 
 | 
						||
            size="mini" :disabled="multiple"
 | 
						||
            @click="handleSyncPayState"
 | 
						||
          >同步订单状态</el-button>
 | 
						||
        </el-col>   -->
 | 
						||
        <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
 | 
						||
      </el-row>
 | 
						||
  
 | 
						||
      <el-table v-loading="loading" :data="tableListData" height="800" ref="multipleTable" :row-key="(row)=>{return row.orderId}" @selection-change="handleOrderSelectionChange">
 | 
						||
        <el-table-column type="selection" width="50" align="center" :reserve-selection="true"/>
 | 
						||
        <el-table-column label="序号" align="center" width="80" type="index" fixed="left">
 | 
						||
                <template slot-scope="scope">
 | 
						||
                    <span>{{(queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1}}</span>
 | 
						||
                </template>
 | 
						||
        </el-table-column>
 | 
						||
        <el-table-column label="订单类型" align="center" prop="orderType" :show-overflow-tooltip="true" width="100">
 | 
						||
            <template slot-scope="scope">
 | 
						||
                <dict-tag :options="dict.type.sm_order_type" :value="scope.row.orderType"/> 
 | 
						||
            </template>
 | 
						||
        </el-table-column>
 | 
						||
        <el-table-column label="就餐日期" align="center" prop="orderDate" :show-overflow-tooltip="true" width="100"/> 
 | 
						||
        <el-table-column label="餐次" align="center" prop="mealtimeName" :show-overflow-tooltip="true" width="80"/>
 | 
						||
        <el-table-column label="菜品明细" align="center" prop="orderDetailList" :show-overflow-tooltip="true" width="120">
 | 
						||
            <template slot-scope="scope">
 | 
						||
                <span v-for="item in scope.row.orderDetailList" :key="item.detailId">{{ item.goodsName }}*{{ item.quantity }};</span>
 | 
						||
            </template>
 | 
						||
        </el-table-column>
 | 
						||
        <el-table-column label="订单金额" align="center" prop="payableAmount" :show-overflow-tooltip="true" width="80">
 | 
						||
            <template slot-scope="scope">
 | 
						||
                <span>{{ (scope.row.payableAmount/100).toFixed(2) }}</span>
 | 
						||
            </template>
 | 
						||
        </el-table-column>
 | 
						||
        <el-table-column label="实付金额" align="center" prop="realAmount" :show-overflow-tooltip="true" width="80">
 | 
						||
            <template slot-scope="scope">
 | 
						||
                <span>{{ ((scope.row.payableAmount-scope.row.refundAmount)/100).toFixed(2) }}</span>
 | 
						||
            </template>
 | 
						||
        </el-table-column>
 | 
						||
        <el-table-column label="备注" align="center" prop="remark" :show-overflow-tooltip="true" width="80"/> 
 | 
						||
        <el-table-column label="用户编号" align="center" prop="userId" :show-overflow-tooltip="true" width="120"/>
 | 
						||
        <el-table-column label="用户姓名" align="center" prop="nickName" :show-overflow-tooltip="true" width="100"/>
 | 
						||
        <el-table-column label="用户手机号" align="center" prop="phoneNumber" :show-overflow-tooltip="true" width="120"/>
 | 
						||
        <el-table-column label="所属组织" align="center" prop="deptFullName" :show-overflow-tooltip="true" width="120"/>
 | 
						||
        <el-table-column label="所属区域" align="center" prop="areaName" :show-overflow-tooltip="true" width="120"/>
 | 
						||
        <el-table-column label="所属食堂" align="center" prop="canteenName" :show-overflow-tooltip="true" width="120"/>
 | 
						||
        <el-table-column label="所属档口" align="center" prop="stallName" :show-overflow-tooltip="true" width="120"/>
 | 
						||
        <!-- <el-table-column label="用户类别" align="center" prop="psnTypeName" :show-overflow-tooltip="true" width="100"/> -->
 | 
						||
        <el-table-column label="订单号" align="center" prop="orderId" :show-overflow-tooltip="true" width="180"/> 
 | 
						||
        <el-table-column label="下单时间" align="center" prop="orderTime" :show-overflow-tooltip="true" width="180"/> 
 | 
						||
        <el-table-column label="设备名称" align="center" prop="deviceName" :show-overflow-tooltip="true" width="150"/>
 | 
						||
        <el-table-column label="订单状态" align="center" prop="orderState" :show-overflow-tooltip="true" width="100">
 | 
						||
            <template slot-scope="scope">
 | 
						||
                <!-- <dict-tag :options="dict.type.sm_order_status" :value="scope.row.orderState"/>  -->
 | 
						||
                <span v-if="scope.row.orderState==1">已下单</span>
 | 
						||
                <span v-if="scope.row.orderState==2">已完成</span>
 | 
						||
                <span v-if="scope.row.orderState==3&&scope.row.payState==3">已退单</span>
 | 
						||
                <span v-if="scope.row.orderState==3&&scope.row.payState==4">已取消</span>
 | 
						||
                <span v-if="scope.row.orderState==4">待下单</span>
 | 
						||
                <span v-if="scope.row.orderState==5">部分退单</span> 
 | 
						||
            </template>
 | 
						||
        </el-table-column>
 | 
						||
        <el-table-column label="操作" align="center" width="180" class-name="small-padding fixed-width" fixed="right">
 | 
						||
          <template slot-scope="scope"> 
 | 
						||
            <el-button
 | 
						||
              size="mini"
 | 
						||
              type="text" 
 | 
						||
              @click="handleView(scope.row)" 
 | 
						||
            >详情</el-button>
 | 
						||
            <el-button
 | 
						||
              size="mini"
 | 
						||
              type="text" v-if="scope.row.orderState==1||scope.row.orderState==2||scope.row.orderState==5"
 | 
						||
              @click="handleRefundPart(scope.row)" 
 | 
						||
            >部分退款</el-button>
 | 
						||
            <el-button
 | 
						||
                size="mini" 
 | 
						||
                type="text" v-if="scope.row.orderState==1||scope.row.orderState==2||scope.row.orderState==4"
 | 
						||
                @click="handleRefund(scope.row)" 
 | 
						||
            >退单</el-button>
 | 
						||
            <el-button
 | 
						||
                size="mini" 
 | 
						||
                type="text" v-if="scope.row.commentState==1"
 | 
						||
                @click="checkEvaluate(scope.row)" 
 | 
						||
            >评价</el-button>
 | 
						||
            <!-- <el-button
 | 
						||
                size="mini" 
 | 
						||
                type="text" v-if="scope.row.orderState==1"
 | 
						||
                @click="writeOffOrder(scope.row)" 
 | 
						||
            >核销</el-button>   -->
 | 
						||
          </template>
 | 
						||
        </el-table-column>
 | 
						||
      </el-table>
 | 
						||
  
 | 
						||
      <pagination
 | 
						||
        v-show="total>0"
 | 
						||
        :total="total"
 | 
						||
        :page.sync="queryParams.pageNum"
 | 
						||
        :limit.sync="queryParams.pageSize"
 | 
						||
        @pagination="getList"
 | 
						||
      />
 | 
						||
  
 | 
						||
      <!-- 详情对话框 -->
 | 
						||
      <el-dialog title="详情" :visible.sync="open" width="1000px" append-to-body>
 | 
						||
        <div style="width: 100%;height: 600px;overflow-y: auto;">
 | 
						||
            <el-descriptions class="margin-top" title="订单信息" :column="3" size="small" border> 
 | 
						||
                <el-descriptions-item>
 | 
						||
                    <template slot="label">订单号</template>
 | 
						||
                    {{orderInfoData.orderId}}
 | 
						||
                </el-descriptions-item>
 | 
						||
                <!-- <el-descriptions-item>
 | 
						||
                    <template slot="label">设备订单号</template>
 | 
						||
                    {{ orderInfoData.macOrderId }}
 | 
						||
                </el-descriptions-item> -->
 | 
						||
                <!-- <el-descriptions-item>
 | 
						||
                    <template slot="label">订单来源</template>
 | 
						||
                    
 | 
						||
                </el-descriptions-item>
 | 
						||
                <el-descriptions-item>
 | 
						||
                    <template slot="label">订餐员</template>
 | 
						||
                    
 | 
						||
                </el-descriptions-item> -->
 | 
						||
                <!-- <el-descriptions-item>
 | 
						||
                    <template slot="label">设备编号</template>
 | 
						||
                    {{ orderInfoData.machineNum }}
 | 
						||
                </el-descriptions-item> -->
 | 
						||
                <el-descriptions-item>
 | 
						||
                    <template slot="label">设备名称</template>
 | 
						||
                    {{ orderInfoData.deviceName }}
 | 
						||
                </el-descriptions-item>
 | 
						||
 | 
						||
                <!-- <el-descriptions-item>
 | 
						||
                    <template slot="label">设备型号</template>
 | 
						||
                    {{ orderInfoData.deviceModel }}
 | 
						||
                </el-descriptions-item>
 | 
						||
                <el-descriptions-item>
 | 
						||
                    <template slot="label">设备SN</template>
 | 
						||
                    {{ orderInfoData.machineSn }}
 | 
						||
                </el-descriptions-item> -->
 | 
						||
                <el-descriptions-item>
 | 
						||
                    <template slot="label">	所属区域</template>
 | 
						||
                    {{ orderInfoData.areaName }}
 | 
						||
                </el-descriptions-item>
 | 
						||
 | 
						||
                <el-descriptions-item>
 | 
						||
                    <template slot="label">	所属食堂</template>
 | 
						||
                    {{ orderInfoData.canteenName }}
 | 
						||
                </el-descriptions-item>
 | 
						||
                <el-descriptions-item>
 | 
						||
                    <template slot="label">	所属档口</template>
 | 
						||
                    {{ orderInfoData.stallName }}
 | 
						||
                </el-descriptions-item>
 | 
						||
                <el-descriptions-item>
 | 
						||
                    <template slot="label">	用户姓名</template>
 | 
						||
                    {{ orderInfoData.nickName }}
 | 
						||
                </el-descriptions-item>
 | 
						||
 | 
						||
                <el-descriptions-item>
 | 
						||
                    <template slot="label">	用户编号</template>
 | 
						||
                    {{ orderInfoData.userId }}
 | 
						||
                </el-descriptions-item>
 | 
						||
                <el-descriptions-item>
 | 
						||
                    <template slot="label">	用户手机号</template>
 | 
						||
                    {{ orderInfoData.phoneNumber }}
 | 
						||
                </el-descriptions-item>
 | 
						||
                <el-descriptions-item>
 | 
						||
                    <template slot="label">	所属组织</template>
 | 
						||
                    {{ orderInfoData.deptFullName }}
 | 
						||
                </el-descriptions-item>
 | 
						||
 | 
						||
                <!-- <el-descriptions-item>
 | 
						||
                    <template slot="label">	用户类别</template>
 | 
						||
                    {{ orderInfoData.psnTypeName }}
 | 
						||
                </el-descriptions-item> -->
 | 
						||
                <el-descriptions-item>
 | 
						||
                    <template slot="label">	就餐日期</template>
 | 
						||
                    {{ orderInfoData.orderDate }}
 | 
						||
                </el-descriptions-item>
 | 
						||
                <el-descriptions-item>
 | 
						||
                    <template slot="label">	餐次</template>
 | 
						||
                    {{ orderInfoData.mealtimeName }}
 | 
						||
                </el-descriptions-item>
 | 
						||
                <el-descriptions-item>
 | 
						||
                    <template slot="label">	订单金额</template> 
 | 
						||
                    {{ (orderInfoData.payableAmount/100).toFixed(2) }}
 | 
						||
                </el-descriptions-item>
 | 
						||
                <!-- <el-descriptions-item>
 | 
						||
                    <template slot="label">	餐券名称</template>
 | 
						||
                    {{ orderInfoData.couponName }}
 | 
						||
                </el-descriptions-item>
 | 
						||
 | 
						||
                <el-descriptions-item>
 | 
						||
                    <template slot="label">	餐券支付金额</template>
 | 
						||
                    {{ (orderInfoData.couponAmount/100).toFixed(2) }}
 | 
						||
                </el-descriptions-item> -->
 | 
						||
                <el-descriptions-item>
 | 
						||
                  <template slot="label">	实付金额</template>
 | 
						||
                  {{ ((orderInfoData.payableAmount-orderInfoData.refundAmount)/100).toFixed(2) }}
 | 
						||
                </el-descriptions-item>
 | 
						||
                <el-descriptions-item>
 | 
						||
                    <template slot="label">	退款金额</template>
 | 
						||
                    {{ (orderInfoData.refundAmount/100).toFixed(2) }}
 | 
						||
                </el-descriptions-item>
 | 
						||
                <el-descriptions-item>
 | 
						||
                    <template slot="label">	支付方式</template>
 | 
						||
                    <dict-tag :options="dict.type.sm_order_pay_type" :value="orderInfoData.payType"/> 
 | 
						||
                </el-descriptions-item>
 | 
						||
                <el-descriptions-item>
 | 
						||
                    <template slot="label">	下单时间</template>
 | 
						||
                    {{ orderInfoData.orderTime }}
 | 
						||
                </el-descriptions-item>
 | 
						||
                <el-descriptions-item>
 | 
						||
                    <template slot="label">	支付时间</template>
 | 
						||
                    {{ orderInfoData.payTime }}
 | 
						||
                </el-descriptions-item>
 | 
						||
 | 
						||
                <el-descriptions-item>
 | 
						||
                    <template slot="label">	订单状态</template>
 | 
						||
                    <span v-if="orderInfoData.orderState==1">已下单</span>
 | 
						||
                    <span v-if="orderInfoData.orderState==2">已完成</span>
 | 
						||
                    <span v-if="orderInfoData.orderState==3&&orderInfoData.payState==3">已退单</span>
 | 
						||
                    <span v-if="orderInfoData.orderState==3&&orderInfoData.payState==4">已取消</span>
 | 
						||
                    <span v-if="orderInfoData.orderState==4">待下单</span>
 | 
						||
                    <span v-if="orderInfoData.orderState==5">部分退单</span> 
 | 
						||
                    <!-- <dict-tag :options="dict.type.sm_order_status" :value="orderInfoData.orderState"/>  -->
 | 
						||
                </el-descriptions-item>
 | 
						||
                <!-- <el-descriptions-item>
 | 
						||
                    <template slot="label">	流水号</template>
 | 
						||
                    {{ orderInfoData.mealCode }}
 | 
						||
                </el-descriptions-item> -->
 | 
						||
                <el-descriptions-item>
 | 
						||
                    <template slot="label">	备注</template>
 | 
						||
                    {{ orderInfoData.remark }}
 | 
						||
                </el-descriptions-item>
 | 
						||
 | 
						||
                <!-- <el-descriptions-item>
 | 
						||
                    <template slot="label">	人脸照片</template>
 | 
						||
                    无
 | 
						||
                </el-descriptions-item>
 | 
						||
                <el-descriptions-item>
 | 
						||
                    <template slot="label">	菜品图片</template>
 | 
						||
                    无
 | 
						||
                </el-descriptions-item> -->
 | 
						||
            </el-descriptions>
 | 
						||
            <div style="margin: 10px 0;font-weight: bold;font-size: 16px;color: #000;">菜品信息</div>
 | 
						||
            <el-table :data="orderInfoData.orderDetailList">
 | 
						||
                <el-table-column label="菜品名称" align="center" prop="goodsName" :show-overflow-tooltip="true"/>
 | 
						||
                <el-table-column label="单价(元)" align="center" prop="salePrice" :show-overflow-tooltip="true">
 | 
						||
                    <template slot-scope="scope">
 | 
						||
                        <span>{{ (scope.row.salePrice/100).toFixed(2) }}</span>
 | 
						||
                    </template> 
 | 
						||
                </el-table-column>
 | 
						||
                <el-table-column label="数量" align="center" prop="quantity" :show-overflow-tooltip="true"/>
 | 
						||
                <el-table-column label="合计(元)" align="center" prop="totalAmount" :show-overflow-tooltip="true">
 | 
						||
                    <template slot-scope="scope">
 | 
						||
                        <span>{{ (scope.row.totalAmount/100).toFixed(2) }}</span>
 | 
						||
                    </template> 
 | 
						||
                </el-table-column>
 | 
						||
                <el-table-column label="退款数量" align="center" prop="refundNum" :show-overflow-tooltip="true"/>
 | 
						||
                <el-table-column label="退款金额(元)" align="center" prop="refundAmount" :show-overflow-tooltip="true">
 | 
						||
                    <template slot-scope="scope">
 | 
						||
                        <span>{{ (scope.row.refundAmount/100).toFixed(2) }}</span>
 | 
						||
                    </template> 
 | 
						||
                </el-table-column>
 | 
						||
            </el-table>
 | 
						||
            <!-- <div style="margin: 10px 0;font-weight: bold;font-size: 16px;color: #000;">优惠明细</div>
 | 
						||
            <el-table :data="orderInfoData.discountList">
 | 
						||
                <el-table-column label="优惠项名称" align="center" prop="" :show-overflow-tooltip="true"/>
 | 
						||
                <el-table-column label="变动类型" align="center" prop="" :show-overflow-tooltip="true"/>
 | 
						||
                <el-table-column label="优惠/上浮金额" align="center" prop="" :show-overflow-tooltip="true"/> 
 | 
						||
            </el-table> -->
 | 
						||
        </div>
 | 
						||
        <div slot="footer" class="dialog-footer">
 | 
						||
          <el-button type="primary" @click="open=false">确 定</el-button>
 | 
						||
          <el-button @click="open=false">取 消</el-button>
 | 
						||
        </div>
 | 
						||
      </el-dialog>
 | 
						||
 | 
						||
 | 
						||
      <!-- 部分退款对话框 -->
 | 
						||
      <el-dialog title="部分退款" :visible.sync="openPart" width="80%" append-to-body>
 | 
						||
            <!-- <el-row>
 | 
						||
                <el-col :span="2">退款方式:</el-col>
 | 
						||
                <el-col :span="22">
 | 
						||
                    <el-radio-group v-model="refundType" @change="choseRefundTypeRadio">
 | 
						||
                        <el-radio label="1" style="font-size: 14px;margin-bottom: 10px;">按数量退款</el-radio>
 | 
						||
                        <el-radio label="2" style="font-size: 14px;margin-bottom: 10px;">按金额退款</el-radio>
 | 
						||
                    </el-radio-group>
 | 
						||
                </el-col>
 | 
						||
            </el-row> -->
 | 
						||
 | 
						||
            <el-table :data="orderDetailList"  @selection-change="handleSelectionChange" :row-key="(row)=>{return row.detailId}" v-if="refundType==1">
 | 
						||
                <el-table-column type="selection" width="50" align="center" :selectable="selectable"/>
 | 
						||
                <el-table-column label="菜品名称" align="center" prop="goodsName" :show-overflow-tooltip="true"/>
 | 
						||
                <el-table-column label="菜品单价" align="center" prop="salePrice" :show-overflow-tooltip="true">
 | 
						||
                    <template slot-scope="scope">
 | 
						||
                        <span>{{ (scope.row.salePrice/100).toFixed(2) }}</span>
 | 
						||
                    </template> 
 | 
						||
                </el-table-column>
 | 
						||
                <el-table-column label="菜品数量" align="center" prop="quantity" :show-overflow-tooltip="true"/>
 | 
						||
                <el-table-column label="菜品金额" align="center" prop="totalAmount" :show-overflow-tooltip="true">
 | 
						||
                    <template slot-scope="scope">
 | 
						||
                        <span>{{ (scope.row.totalAmount/100).toFixed(2) }}</span>
 | 
						||
                    </template> 
 | 
						||
                </el-table-column>
 | 
						||
                <el-table-column label="可退款数量" align="center" prop="unRefundNum" :show-overflow-tooltip="true"/>
 | 
						||
                <el-table-column label="已退款数量" align="center" prop="refundNum" :show-overflow-tooltip="true"/>
 | 
						||
                <el-table-column label="已退款金额" align="center" prop="refundAmount" :show-overflow-tooltip="true">
 | 
						||
                    <template slot-scope="scope">
 | 
						||
                        <span>{{ (scope.row.refundAmount/100).toFixed(2) }}</span>
 | 
						||
                    </template> 
 | 
						||
                </el-table-column>
 | 
						||
 | 
						||
                <el-table-column label="退款数量" align="center" prop="goRefundNum" :show-overflow-tooltip="true">
 | 
						||
                    <template slot-scope="scope">
 | 
						||
                        <el-input v-model="scope.row.goRefundNum" placeholder="退款数量" maxlength="20" clearable style="width: 100%" @change="inputNum(scope.row)"  @input="(v)=>(scope.row.goRefundNum=v.replace(/[^\d]/g,''))"/> 
 | 
						||
                    </template> 
 | 
						||
                </el-table-column>
 | 
						||
                <el-table-column label="退款金额" align="center" prop="refundMoney" :show-overflow-tooltip="true">
 | 
						||
                    <template slot-scope="scope">
 | 
						||
                        <span>{{ (scope.row.refundMoney/100).toFixed(2) }}</span>
 | 
						||
                    </template> 
 | 
						||
                </el-table-column>
 | 
						||
            </el-table>  
 | 
						||
            <div v-if="refundType==2">
 | 
						||
                <el-form :model="rowData" ref="rowData" :rules="refundRules" size="small" label-width="120px">
 | 
						||
                    <el-form-item label="订单金额:">
 | 
						||
                        <span>{{ (rowData.payableAmount/100).toFixed(2) }}</span>
 | 
						||
                    </el-form-item>
 | 
						||
                    <el-form-item label="实付金额:">
 | 
						||
                        <span>{{ (rowData.realAmount/100).toFixed(2) }}</span>
 | 
						||
                    </el-form-item>
 | 
						||
                    <el-form-item label="可退金额:">
 | 
						||
                        <span>{{ (rowData.payableAmount/100).toFixed(2) }}</span>
 | 
						||
                    </el-form-item>
 | 
						||
                    <el-form-item label="已退金额:">
 | 
						||
                        <span>{{ (rowData.refundAmount/100).toFixed(2) }}</span>
 | 
						||
                    </el-form-item>
 | 
						||
                    <el-form-item label="本次退款金额:" prop="refundMoney">
 | 
						||
                        <el-input v-model="rowData.refundMoney" placeholder="请输入本次退款金额" maxlength="20" clearable @input="(v)=>(rowData.refundMoney=v.replace(/[^\d.]/g,''))" style="width: 200px;"/>
 | 
						||
                    </el-form-item>
 | 
						||
                </el-form>
 | 
						||
            </div> 
 | 
						||
            <div slot="footer" class="dialog-footer">
 | 
						||
                <el-button type="primary" @click="confirmRefund">确 定</el-button>
 | 
						||
                <el-button @click="openPart=false">取 消</el-button>
 | 
						||
            </div>
 | 
						||
      </el-dialog>
 | 
						||
      <!-- 评价弹窗 -->
 | 
						||
      <el-dialog title="订单评价" :visible.sync="openEva" width="500px" append-to-body>
 | 
						||
        <div style="width: 100%;height: 200px;overflow-y: auto;">
 | 
						||
        <div v-for="(item,index) in evaluateList" :key="index" style="display: flex;width: 100%;margin-bottom: 15px;align-items: center;">
 | 
						||
            <div style="width: 35%;word-break: break-all;font-size: 16px;text-align: center;">
 | 
						||
                {{ item.dishesName }}
 | 
						||
            </div>
 | 
						||
            <div style="width: 65%;">
 | 
						||
                <el-rate v-model="item.starLevel" size="large" disabled text-color="#ff9900"></el-rate>
 | 
						||
            </div>
 | 
						||
        </div> 
 | 
						||
        </div>
 | 
						||
        <div slot="footer" class="dialog-footer">
 | 
						||
        <el-button type="primary" @click="openEva=false">确 定</el-button>
 | 
						||
        <el-button @click="openEva=false">取 消</el-button>
 | 
						||
        </div>
 | 
						||
      </el-dialog>
 | 
						||
      <!-- 提醒对话框 -->
 | 
						||
      <el-dialog :title="handleType+'提醒'" :visible.sync="openRemind" width="40%" append-to-body>
 | 
						||
        <div class="remind-question">请问是否对以下可{{handleType}}订单进行{{handleType}}操作?</div>
 | 
						||
        <div class="remind-title">可{{handleType}}订单 {{ableList.length}} 笔</div>
 | 
						||
        <div v-for="(item,index) in ableList" :key="item.orderId">{{ (index+1) }}. 订单编号:{{item.orderId}},用户姓名:{{item.nickName}},用户编号:{{item.userId}},订单金额:{{(item.payableAmount/100).toFixed(2)}}</div>
 | 
						||
 | 
						||
        <div class="remind-title">不可{{handleType}}订单 {{unableList.length}}  笔</div>
 | 
						||
        <div v-for="(item,index) in unableList" :key="item.orderId">{{ (index+1) }}. 订单编号:{{item.orderId}},用户姓名:{{item.nickName}}:{{item.userId}},订单金额:{{(item.payableAmount/100).toFixed(2)}}</div>
 | 
						||
 | 
						||
        <div slot="footer" class="dialog-footer">
 | 
						||
            <el-button type="primary" @click="confirmRemind" :disabled="ableList.length==0">确 定</el-button>
 | 
						||
            <el-button @click="openRemind=false">取 消</el-button>
 | 
						||
        </div>
 | 
						||
      </el-dialog>
 | 
						||
 | 
						||
 | 
						||
 | 
						||
    </div>
 | 
						||
  </template>
 | 
						||
  
 | 
						||
  <script>  
 | 
						||
  import { deptTreeSelect } from '@/api/system/user'
 | 
						||
  import { systemAreaTreeApi,getCanteenByAreaApi,getStallByCanteenApi } from "@/api/base/stall"; 
 | 
						||
  import { orderPageListApi,refundOrderPartApi,refundOrderApi,writeOffOrderApi,syncOrderPayStateApi,getEvaluaOrderDetailApi } from "@/api/order/offline";
 | 
						||
  
 | 
						||
  export default {
 | 
						||
    name: "",
 | 
						||
    dicts: ['sys_user_type','sm_order_type','sm_order_status','sm_order_pay_type'],
 | 
						||
    data() {
 | 
						||
      return {
 | 
						||
        // 遮罩层
 | 
						||
        loading: true,
 | 
						||
        // 选中数组
 | 
						||
        ids: [],
 | 
						||
        // 非单个禁用
 | 
						||
        single: true,
 | 
						||
        // 非多个禁用
 | 
						||
        multiple: true,
 | 
						||
        // 显示搜索条件
 | 
						||
        showSearch: true,
 | 
						||
        // 总条数
 | 
						||
        total: 0,
 | 
						||
        //表格数据
 | 
						||
        tableListData: [], 
 | 
						||
        // 是否显示弹出层
 | 
						||
        open: false, 
 | 
						||
        dateRange:[new Date(),new Date()],
 | 
						||
        pickerOptions: {
 | 
						||
            shortcuts: [{
 | 
						||
                text: '最近一周',
 | 
						||
                onClick(picker) {
 | 
						||
                const start = new Date();
 | 
						||
                const end = new Date();
 | 
						||
                start.setTime(start.getTime() - 3600 * 1000 * 24 * 6);
 | 
						||
                picker.$emit('pick', [start, end]);
 | 
						||
                }
 | 
						||
            },{
 | 
						||
                text: '最近一个月',
 | 
						||
                onClick(picker) {
 | 
						||
                const start = new Date();
 | 
						||
                const end = new Date();
 | 
						||
                start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
 | 
						||
                picker.$emit('pick', [start, end]);
 | 
						||
                }
 | 
						||
            },{
 | 
						||
                text: '最近三个月',
 | 
						||
                onClick(picker) {
 | 
						||
                const start = new Date();
 | 
						||
                const end = new Date();
 | 
						||
                start.setTime(start.getTime() - 3600 * 1000 * 24 * 91);
 | 
						||
                picker.$emit('pick', [start, end]);
 | 
						||
                }
 | 
						||
            }]
 | 
						||
        },
 | 
						||
        treeAreaOptions:[],//区域树
 | 
						||
        canteenOptions:[],//查询-食堂下拉选
 | 
						||
        stallOptions:[],//查询-档口下拉选
 | 
						||
        //下拉选数据
 | 
						||
        // orderStateOptions:[],
 | 
						||
        // orderPayOptions:[],
 | 
						||
        // nuclearModeOptions:[], 
 | 
						||
        deptOptions:[],//组织树 
 | 
						||
        // 查询参数
 | 
						||
        queryParams: {
 | 
						||
            pageNum: 1,
 | 
						||
            pageSize: 10,
 | 
						||
            custSearchInfo: undefined,//关键字
 | 
						||
            orderId: undefined, //订单号 
 | 
						||
            orderTypeList:[2],//订单类型2线上
 | 
						||
            goodsSearchInfo: undefined, //菜品名称
 | 
						||
            mealtimeTypeList:[],//餐次
 | 
						||
            areaId:null,//区域-单选
 | 
						||
            canteenId:null,//食堂-单选
 | 
						||
            stallId:null,//档口-单选
 | 
						||
            orderStateList:[],//订单状态
 | 
						||
            payStateList:[], //支付方式 
 | 
						||
            deptIdList:[],  //所属组织
 | 
						||
        },
 | 
						||
        //订单详情
 | 
						||
        orderInfoData: {},
 | 
						||
        //部分退款
 | 
						||
        openPart:false,
 | 
						||
        orderDetailList:[],
 | 
						||
        refundType:'1',
 | 
						||
        refundList:[],
 | 
						||
        rowData:{},
 | 
						||
        refundRules:{
 | 
						||
            refundMoney: [
 | 
						||
                {
 | 
						||
                    required: true,
 | 
						||
                    message: "本次退款金额不能为空",
 | 
						||
                    trigger: "blur",
 | 
						||
                }
 | 
						||
            ]
 | 
						||
        },
 | 
						||
        //批量操作
 | 
						||
        batchIds:[],
 | 
						||
        batchList:[],//批量数据数组
 | 
						||
        //批量核销批量退单提醒对话框
 | 
						||
        handleType:"退单",
 | 
						||
        ableList:[],
 | 
						||
        unableList:[], 
 | 
						||
        openRemind:false,
 | 
						||
        openEva:false,
 | 
						||
        evaluateList:[],
 | 
						||
      };
 | 
						||
    },
 | 
						||
    created() { 
 | 
						||
        this.getAreaTreeData(); 
 | 
						||
        this.getDeptTree();  
 | 
						||
        this.getList()
 | 
						||
    },
 | 
						||
    methods: {
 | 
						||
        //区域树
 | 
						||
        getAreaTreeData() {
 | 
						||
            systemAreaTreeApi({}).then((response) => {
 | 
						||
                this.treeAreaOptions = response.data; 
 | 
						||
            });
 | 
						||
        },
 | 
						||
        handleAreaChange(e){ 
 | 
						||
            let param= {
 | 
						||
                areaId:this.queryParams.areaId,"canteenType": 1
 | 
						||
            }
 | 
						||
            getCanteenByAreaApi(param).then((response) => {
 | 
						||
                this.canteenOptions=response.rows||[]
 | 
						||
                this.queryParams.canteenId=null
 | 
						||
                this.stallOptions=[]
 | 
						||
                this.queryParams.stallId=null
 | 
						||
            });
 | 
						||
        },
 | 
						||
        handleCanteenChange(e){ 
 | 
						||
            let param= {
 | 
						||
                canteenId:this.queryParams.canteenId
 | 
						||
            }
 | 
						||
            getStallByCanteenApi(param).then((response) => {
 | 
						||
                this.stallOptions=response.rows||[]
 | 
						||
                this.queryParams.stallId=null
 | 
						||
            });
 | 
						||
        },
 | 
						||
        
 | 
						||
        /** 查询部门下拉树结构 */
 | 
						||
        getDeptTree() {
 | 
						||
            deptTreeSelect().then((response) => {
 | 
						||
                this.deptOptions = this.filterTree(response.data)
 | 
						||
            })
 | 
						||
        },
 | 
						||
        filterTree(nodes) {
 | 
						||
            return nodes
 | 
						||
                .map((node) => {
 | 
						||
                    if (node.children) {
 | 
						||
                        node.children = this.filterTree(node.children)
 | 
						||
                    }
 | 
						||
                    return node
 | 
						||
                })
 | 
						||
                .filter((node) => node.status !== '1')
 | 
						||
        },
 | 
						||
        /** 搜索按钮操作 */
 | 
						||
        handleQuery() {
 | 
						||
            this.queryParams.pageNum = 1;
 | 
						||
            this.getList();
 | 
						||
        },
 | 
						||
        /** 重置按钮操作 */
 | 
						||
        resetQuery() {
 | 
						||
            this.dateRange = [new Date(),new Date()]
 | 
						||
            this.queryParams = {
 | 
						||
                pageNum: 1,
 | 
						||
                pageSize: 10,
 | 
						||
                custSearchInfo: undefined,//关键字
 | 
						||
                orderId: undefined, //订单号 
 | 
						||
                orderTypeList:[2],//订单类型2线上
 | 
						||
                goodsSearchInfo: undefined, //菜品名称
 | 
						||
                mealtimeTypeList:[],//餐次
 | 
						||
                areaId:null,//区域-单选
 | 
						||
                canteenId:null,//食堂-单选
 | 
						||
                stallId:null,//档口-单选
 | 
						||
                orderStateList:[],//订单状态
 | 
						||
                payStateList:[], //支付方式 
 | 
						||
                deptIdList:[],  //所属组织
 | 
						||
            }
 | 
						||
            this.resetForm("queryForm");
 | 
						||
            this.handleQuery();
 | 
						||
        },
 | 
						||
        /** 查询列表 */
 | 
						||
        getList() {
 | 
						||
            this.loading = true; 
 | 
						||
            let param = { 
 | 
						||
                ...this.queryParams, 
 | 
						||
                "orderTypeList":[11],
 | 
						||
                "startDate":this.formatDate(this.dateRange[0]),
 | 
						||
                "endDate":this.formatDate(this.dateRange[1])
 | 
						||
            }
 | 
						||
            if(this.queryParams.canteenId){
 | 
						||
                param.canteenIdList = [this.queryParams.canteenId]
 | 
						||
            }
 | 
						||
            if(this.queryParams.stallId){
 | 
						||
                param.stallIdList = [this.queryParams.stallId]
 | 
						||
            }
 | 
						||
            orderPageListApi(param).then(response => {
 | 
						||
                this.tableListData = response.rows;
 | 
						||
                this.total = Number(response.total);
 | 
						||
                this.loading = false;
 | 
						||
            });
 | 
						||
        },
 | 
						||
        /** 修改按钮操作 */
 | 
						||
        handleView(row) {
 | 
						||
            this.orderInfoData = Object.assign({}, row) 
 | 
						||
            this.open = true;  
 | 
						||
        },
 | 
						||
        /** 部分退款按钮操作 */
 | 
						||
        handleRefundPart(row) {
 | 
						||
            this.orderDetailList = row.orderDetailList;
 | 
						||
            this.rowData = row;
 | 
						||
            this.$set(this.rowData,"refundMoney","")  
 | 
						||
            console.log(this.rowData)
 | 
						||
            this.orderDetailList.forEach((item,index)=>{
 | 
						||
                this.$set(this.orderDetailList[index],"unRefundNum",item.quantity-item.refundNum)
 | 
						||
              this.$set(this.orderDetailList[index],"goRefundNum",item.unRefundNum)
 | 
						||
                this.$set(this.orderDetailList[index],"refundMoney",Number(item.goRefundNum)*(item.salePrice).toFixed(2))
 | 
						||
            })
 | 
						||
            this.refundList=[] 
 | 
						||
            this.openPart = true; 
 | 
						||
        },
 | 
						||
        inputNum(row){
 | 
						||
            if(Number(row.goRefundNum)>row.unRefundNum){
 | 
						||
                this.$modal.msgError("退款数量不能大于可退款数量!");
 | 
						||
                row.goRefundNum=row.unRefundNum
 | 
						||
            }
 | 
						||
            row.refundMoney = Number(row.goRefundNum)*(row.salePrice).toFixed(2)
 | 
						||
            this.refundList.forEach((item) => {
 | 
						||
                if(item.detailId==row.detailId){
 | 
						||
                    this.$set(item,"quantity",row.goRefundNum)
 | 
						||
                }
 | 
						||
            }) 
 | 
						||
        },
 | 
						||
        choseRefundTypeRadio(e){},
 | 
						||
        handleSelectionChange(selection){
 | 
						||
            // console.log(selection)
 | 
						||
            this.refundList = selection.map((item) => {
 | 
						||
                let obj = {'detailId':item.detailId,'quantity':item.goRefundNum}
 | 
						||
                return obj
 | 
						||
            }) 
 | 
						||
        },
 | 
						||
        selectable(row){
 | 
						||
          return row.unRefundNum>0
 | 
						||
        },
 | 
						||
        confirmRefund(){
 | 
						||
            if(this.refundType==1){
 | 
						||
                if(this.refundList.length==0){
 | 
						||
                    this.$modal.msgError("请先勾选退款菜品!");
 | 
						||
                }else{
 | 
						||
                    console.log(this.refundList)
 | 
						||
                    let param = {
 | 
						||
                        orderPartRefundDetailList:this.refundList,
 | 
						||
                        orderId:this.rowData.orderId
 | 
						||
                    }
 | 
						||
                    refundOrderPartApi(param).then(response => {
 | 
						||
                        if(response.code==200){
 | 
						||
                            this.$modal.msgSuccess("退款成功");
 | 
						||
                        }
 | 
						||
                        this.getList()
 | 
						||
                        this.openPart = false; 
 | 
						||
                    }).catch(err => {
 | 
						||
                        console.log(111)
 | 
						||
                    })
 | 
						||
                }
 | 
						||
            }
 | 
						||
            if(this.refundType==2){
 | 
						||
                this.$refs["rowData"].validate(valid => {
 | 
						||
                    if (valid) {
 | 
						||
                        let param = {
 | 
						||
                            refundAmount:Number(this.rowData.refundMoney),
 | 
						||
                            orderId:this.rowData.orderId
 | 
						||
                        }
 | 
						||
                        refundOrderPartApi(param).then(response => {
 | 
						||
                            if(response.code==200){
 | 
						||
                                this.$modal.msgSuccess("退款成功");
 | 
						||
                            }
 | 
						||
                            this.getList()
 | 
						||
                            this.openPart = false; 
 | 
						||
                        }); 
 | 
						||
                    }
 | 
						||
                }); 
 | 
						||
            }
 | 
						||
        },
 | 
						||
        /** 退单按钮操作 */
 | 
						||
        handleRefund(row) {
 | 
						||
            let param = {
 | 
						||
                // backType: 1,
 | 
						||
                // macOrderId:row.macOrderId,
 | 
						||
                orderId:row.orderId
 | 
						||
            }
 | 
						||
            this.$modal.confirm('是否确认退单?').then(function() {
 | 
						||
                return refundOrderApi(param);
 | 
						||
            }).then(() => {
 | 
						||
                this.getList();
 | 
						||
                this.$modal.msgSuccess("退单成功");
 | 
						||
            }).catch(() => {});
 | 
						||
        },
 | 
						||
        /** 核销按钮操作 */
 | 
						||
        writeOffOrder(row) {
 | 
						||
            let param = { 
 | 
						||
                orderIdList:[row.orderId]
 | 
						||
            }
 | 
						||
            this.$modal.confirm('是否确认核销?').then(function() {
 | 
						||
                return writeOffOrderApi(param);
 | 
						||
            }).then(() => {
 | 
						||
                this.getList();
 | 
						||
                this.$modal.msgSuccess("核销成功");
 | 
						||
            }).catch(() => {});
 | 
						||
        },
 | 
						||
        /** 评价按钮操作 */
 | 
						||
        checkEvaluate(row) {
 | 
						||
            this.evaluateList = []
 | 
						||
            getEvaluaOrderDetailApi(row.orderId).then(response => {
 | 
						||
                console.log(response)
 | 
						||
                this.evaluateList = response.data.detailList;
 | 
						||
                this.openEva = true
 | 
						||
            }).catch(err => {
 | 
						||
                
 | 
						||
            })
 | 
						||
        }, 
 | 
						||
        // ----订单批量操作------
 | 
						||
        handleOrderSelectionChange(selection){
 | 
						||
            this.batchIds = selection.map((item) => item.orderId) 
 | 
						||
            this.batchList = selection;
 | 
						||
            this.single = selection.length !== 1
 | 
						||
            this.multiple = !selection.length 
 | 
						||
        },
 | 
						||
        //批量退单
 | 
						||
        handleBatchRefund(){
 | 
						||
            this.handleType="退单"
 | 
						||
            this.ableList = []
 | 
						||
            this.unableList = [] 
 | 
						||
            this.batchList.forEach(item=>{
 | 
						||
            if(item.orderState==1||item.orderState==2){
 | 
						||
                this.ableList.push(item)
 | 
						||
            }else{
 | 
						||
                this.unableList.push(item)
 | 
						||
            }
 | 
						||
            })
 | 
						||
            this.openRemind = true
 | 
						||
        },
 | 
						||
        //批量核销
 | 
						||
        handleBatchWriteOff(){
 | 
						||
            this.handleType="核销"
 | 
						||
            this.ableList = []
 | 
						||
            this.unableList = [] 
 | 
						||
            this.batchList.forEach(item=>{
 | 
						||
            if(item.orderState==1||item.orderState==5){
 | 
						||
                this.ableList.push(item)
 | 
						||
            }else{
 | 
						||
                this.unableList.push(item)
 | 
						||
            }
 | 
						||
            })
 | 
						||
            this.openRemind = true
 | 
						||
        },
 | 
						||
        confirmRemind(){
 | 
						||
            console.log(this.ableList.length)
 | 
						||
            if(this.ableList.length>0){
 | 
						||
            if(this.handleType=="退单"){
 | 
						||
                this.ableList.forEach(item=>{
 | 
						||
                    let param = {
 | 
						||
                        backType: 1,
 | 
						||
                        macOrderId:item.macOrderId,
 | 
						||
                        orderId:item.orderId
 | 
						||
                    } 
 | 
						||
                    refundOrderApi(param).then(response => {
 | 
						||
                        // if(response.code!=200){
 | 
						||
                        //     this.$modal.msgError(response.msg);
 | 
						||
                        // }
 | 
						||
                    });
 | 
						||
                })
 | 
						||
                this.$modal.msgSuccess("批量退单完成");  
 | 
						||
            }
 | 
						||
            if(this.handleType=="核销"){
 | 
						||
                this.ableList.forEach(item=>{
 | 
						||
                let param = { 
 | 
						||
                    orderId:item.orderId 
 | 
						||
                }
 | 
						||
                writeOffOrderApi(param).then(response => {
 | 
						||
                    // if(response.code!=200){
 | 
						||
                    //     this.$modal.msgError(response.msg);
 | 
						||
                    // }
 | 
						||
                });
 | 
						||
                })
 | 
						||
                this.$modal.msgSuccess("批量核销完成");  
 | 
						||
            }
 | 
						||
            setTimeout(()=>{
 | 
						||
                this.getList()
 | 
						||
                this.$refs.multipleTable.clearSelection()
 | 
						||
                this.openRemind = false
 | 
						||
            },1000)
 | 
						||
            }
 | 
						||
        },
 | 
						||
        //同步订单状态
 | 
						||
        handleSyncPayState(){
 | 
						||
            if(this.batchIds.length>0){
 | 
						||
            this.batchIds.forEach(item=>{
 | 
						||
                syncOrderPayStateApi({orderId:item}).then(response => {
 | 
						||
                    if(response.code!=200){
 | 
						||
                    this.$modal.msgError(response.msg);
 | 
						||
                    }
 | 
						||
                });
 | 
						||
            })
 | 
						||
            this.$modal.msgSuccess("同步已完成");
 | 
						||
            this.getList()
 | 
						||
            this.$refs.multipleTable.clearSelection()
 | 
						||
            }else{
 | 
						||
            this.$modal.msgError("请先勾选订单数据!");
 | 
						||
            }
 | 
						||
        },
 | 
						||
 | 
						||
        //日期
 | 
						||
        formatDate(date) {
 | 
						||
            // 格式化为 YYYY-MM-DD
 | 
						||
            const year = date.getFullYear();
 | 
						||
            const month = String(date.getMonth() + 1).padStart(2, '0'); // 月份从0开始
 | 
						||
            const day = String(date.getDate()).padStart(2, '0');
 | 
						||
            return `${year}-${month}-${day}`;
 | 
						||
        } 
 | 
						||
    }
 | 
						||
  };
 | 
						||
  </script>
 | 
						||
   |