|  | @@ -2,147 +2,53 @@
 | 
											
												
													
														|  |    <div class="orderManage app-container">
 |  |    <div class="orderManage app-container">
 | 
											
												
													
														|  |      <div class="search">
 |  |      <div class="search">
 | 
											
												
													
														|  |        <div>
 |  |        <div>
 | 
											
												
													
														|  | -        <el-input
 |  | 
 | 
											
												
													
														|  | -          v-model="query.billId"
 |  | 
 | 
											
												
													
														|  | -          size="small"
 |  | 
 | 
											
												
													
														|  | -          placeholder="请输入计费号"
 |  | 
 | 
											
												
													
														|  | -          class="item-width-200"
 |  | 
 | 
											
												
													
														|  | -        ></el-input>
 |  | 
 | 
											
												
													
														|  | -        <el-input
 |  | 
 | 
											
												
													
														|  | -          v-model="query.groupName"
 |  | 
 | 
											
												
													
														|  | -          size="small"
 |  | 
 | 
											
												
													
														|  | -          placeholder="请输入集团名称"
 |  | 
 | 
											
												
													
														|  | -          class="item-width-200 ml10"
 |  | 
 | 
											
												
													
														|  | -        ></el-input>
 |  | 
 | 
											
												
													
														|  | -        <el-input
 |  | 
 | 
											
												
													
														|  | -          v-model="query.planningName"
 |  | 
 | 
											
												
													
														|  | -          size="small"
 |  | 
 | 
											
												
													
														|  | -          placeholder="请输入产品策划名称"
 |  | 
 | 
											
												
													
														|  | -          class="item-width-200 ml10"
 |  | 
 | 
											
												
													
														|  | -        ></el-input>
 |  | 
 | 
											
												
													
														|  | -        <el-input
 |  | 
 | 
											
												
													
														|  | -          v-model="query.orderNo"
 |  | 
 | 
											
												
													
														|  | -          size="small"
 |  | 
 | 
											
												
													
														|  | -          placeholder="请输入订单号"
 |  | 
 | 
											
												
													
														|  | -          class="item-width-200 ml10"
 |  | 
 | 
											
												
													
														|  | -        ></el-input>
 |  | 
 | 
											
												
													
														|  | -        <el-select
 |  | 
 | 
											
												
													
														|  | -          v-model="query.groupType"
 |  | 
 | 
											
												
													
														|  | -          size="small"
 |  | 
 | 
											
												
													
														|  | -          clearable
 |  | 
 | 
											
												
													
														|  | -          class="item-width-200 ml10"
 |  | 
 | 
											
												
													
														|  | -          placeholder="请选择状态"
 |  | 
 | 
											
												
													
														|  | -        >
 |  | 
 | 
											
												
													
														|  | -          <el-option
 |  | 
 | 
											
												
													
														|  | -            v-for="item in statusOptions"
 |  | 
 | 
											
												
													
														|  | -            :key="item.value"
 |  | 
 | 
											
												
													
														|  | -            :label="item.label"
 |  | 
 | 
											
												
													
														|  | -            :value="item.value"
 |  | 
 | 
											
												
													
														|  | -          >
 |  | 
 | 
											
												
													
														|  | 
 |  | +        <el-input v-model="query.billId" size="small" placeholder="请输入计费号" class="item-width-200"></el-input>
 | 
											
												
													
														|  | 
 |  | +        <el-input v-model="query.groupName" size="small" placeholder="请输入集团名称" class="item-width-200 ml10"></el-input>
 | 
											
												
													
														|  | 
 |  | +        <el-input v-model="query.planningName" size="small" placeholder="请输入产品策划名称"
 | 
											
												
													
														|  | 
 |  | +          class="item-width-200 ml10"></el-input>
 | 
											
												
													
														|  | 
 |  | +        <el-input v-model="query.orderNo" size="small" placeholder="请输入订单号" class="item-width-200 ml10"></el-input>
 | 
											
												
													
														|  | 
 |  | +        <el-select v-model="query.groupType" size="small" clearable class="item-width-200 ml10" placeholder="请选择状态">
 | 
											
												
													
														|  | 
 |  | +          <el-option v-for="item in statusOptions" :key="item.value" :label="item.label" :value="item.value">
 | 
											
												
													
														|  |            </el-option>
 |  |            </el-option>
 | 
											
												
													
														|  |          </el-select>
 |  |          </el-select>
 | 
											
												
													
														|  | -        <el-select
 |  | 
 | 
											
												
													
														|  | -          v-model="query.actionID"
 |  | 
 | 
											
												
													
														|  | -          size="small"
 |  | 
 | 
											
												
													
														|  | -          clearable
 |  | 
 | 
											
												
													
														|  | -          class="item-width-200 ml10"
 |  | 
 | 
											
												
													
														|  | -          placeholder="请选择订单状态"
 |  | 
 | 
											
												
													
														|  | -        >
 |  | 
 | 
											
												
													
														|  | -          <el-option
 |  | 
 | 
											
												
													
														|  | -            v-for="item in orderStatusoptions"
 |  | 
 | 
											
												
													
														|  | -            :key="item.value"
 |  | 
 | 
											
												
													
														|  | -            :label="item.label"
 |  | 
 | 
											
												
													
														|  | -            :value="item.value"
 |  | 
 | 
											
												
													
														|  | -          >
 |  | 
 | 
											
												
													
														|  | 
 |  | +        <el-select v-model="query.actionID" size="small" clearable class="item-width-200 ml10" placeholder="请选择订单状态">
 | 
											
												
													
														|  | 
 |  | +          <el-option v-for="item in orderStatusoptions" :key="item.value" :label="item.label" :value="item.value">
 | 
											
												
													
														|  |            </el-option>
 |  |            </el-option>
 | 
											
												
													
														|  |          </el-select>
 |  |          </el-select>
 | 
											
												
													
														|  | -        <el-button
 |  | 
 | 
											
												
													
														|  | -          class="ml10"
 |  | 
 | 
											
												
													
														|  | -          type="primary"
 |  | 
 | 
											
												
													
														|  | -          size="small"
 |  | 
 | 
											
												
													
														|  | -          icon="el-icon-search"
 |  | 
 | 
											
												
													
														|  | -          @click="handleSearch"
 |  | 
 | 
											
												
													
														|  | -        >
 |  | 
 | 
											
												
													
														|  | 
 |  | +        <el-button class="ml10" type="primary" size="small" icon="el-icon-search" @click="handleSearch">
 | 
											
												
													
														|  |            搜索
 |  |            搜索
 | 
											
												
													
														|  |          </el-button>
 |  |          </el-button>
 | 
											
												
													
														|  |        </div>
 |  |        </div>
 | 
											
												
													
														|  | 
 |  | +      <el-button class="ml10" type="info" size="small" :loading="downloadLoading" icon="el-icon-printer" @click="exportAllExcel">
 | 
											
												
													
														|  | 
 |  | +          导出
 | 
											
												
													
														|  | 
 |  | +        </el-button>
 | 
											
												
													
														|  |      </div>
 |  |      </div>
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -    <el-table
 |  | 
 | 
											
												
													
														|  | -      :data="tableData"
 |  | 
 | 
											
												
													
														|  | -      tooltip-effect="dark"
 |  | 
 | 
											
												
													
														|  | -      border
 |  | 
 | 
											
												
													
														|  | -      v-loading="loading"
 |  | 
 | 
											
												
													
														|  | -      style="width: 100%"
 |  | 
 | 
											
												
													
														|  | -    >
 |  | 
 | 
											
												
													
														|  | -      <el-table-column
 |  | 
 | 
											
												
													
														|  | -        align="center"
 |  | 
 | 
											
												
													
														|  | -        label="计费号"
 |  | 
 | 
											
												
													
														|  | -        prop="billId"
 |  | 
 | 
											
												
													
														|  | -        show-overflow-tooltip
 |  | 
 | 
											
												
													
														|  | -      >
 |  | 
 | 
											
												
													
														|  | 
 |  | +    <el-table :data="tableData" tooltip-effect="dark" border v-loading="loading" style="width: 100%">
 | 
											
												
													
														|  | 
 |  | +      <el-table-column align="center" label="计费号" prop="billId" show-overflow-tooltip>
 | 
											
												
													
														|  |        </el-table-column>
 |  |        </el-table-column>
 | 
											
												
													
														|  | -      <el-table-column
 |  | 
 | 
											
												
													
														|  | -        prop="groupName"
 |  | 
 | 
											
												
													
														|  | -        align="center"
 |  | 
 | 
											
												
													
														|  | -        label="集团名称"
 |  | 
 | 
											
												
													
														|  | -        show-overflow-tooltip
 |  | 
 | 
											
												
													
														|  | -      >
 |  | 
 | 
											
												
													
														|  | 
 |  | +      <el-table-column prop="groupName" align="center" label="集团名称" show-overflow-tooltip>
 | 
											
												
													
														|  |        </el-table-column>
 |  |        </el-table-column>
 | 
											
												
													
														|  | -      <el-table-column
 |  | 
 | 
											
												
													
														|  | -        prop="orderNo"
 |  | 
 | 
											
												
													
														|  | -        align="center"
 |  | 
 | 
											
												
													
														|  | -        label="订单号"
 |  | 
 | 
											
												
													
														|  | -        show-overflow-tooltip
 |  | 
 | 
											
												
													
														|  | -      >
 |  | 
 | 
											
												
													
														|  | 
 |  | +      <el-table-column prop="orderNo" align="center" label="订单号" show-overflow-tooltip>
 | 
											
												
													
														|  |        </el-table-column>
 |  |        </el-table-column>
 | 
											
												
													
														|  | -      <el-table-column
 |  | 
 | 
											
												
													
														|  | -        prop="groupPlanName"
 |  | 
 | 
											
												
													
														|  | -        align="center"
 |  | 
 | 
											
												
													
														|  | -        label="订购产品策划名称"
 |  | 
 | 
											
												
													
														|  | -        show-overflow-tooltip
 |  | 
 | 
											
												
													
														|  | -      ></el-table-column>
 |  | 
 | 
											
												
													
														|  | -      <el-table-column
 |  | 
 | 
											
												
													
														|  | -        prop="orderPrice"
 |  | 
 | 
											
												
													
														|  | -        align="center"
 |  | 
 | 
											
												
													
														|  | -        label="订购产品单价(元)"
 |  | 
 | 
											
												
													
														|  | -        show-overflow-tooltip
 |  | 
 | 
											
												
													
														|  | -      >
 |  | 
 | 
											
												
													
														|  | 
 |  | +      <el-table-column prop="groupPlanName" align="center" label="订购产品策划名称" show-overflow-tooltip></el-table-column>
 | 
											
												
													
														|  | 
 |  | +      <el-table-column prop="orderPrice" align="center" label="订购产品单价(元)" show-overflow-tooltip>
 | 
											
												
													
														|  |        </el-table-column>
 |  |        </el-table-column>
 | 
											
												
													
														|  |        <el-table-column align="center" label="订购数量" show-overflow-tooltip>
 |  |        <el-table-column align="center" label="订购数量" show-overflow-tooltip>
 | 
											
												
													
														|  |          <template slot-scope="scope">
 |  |          <template slot-scope="scope">
 | 
											
												
													
														|  |            {{ scope.row.orderNum || "--" }}
 |  |            {{ scope.row.orderNum || "--" }}
 | 
											
												
													
														|  |          </template>
 |  |          </template>
 | 
											
												
													
														|  |        </el-table-column>
 |  |        </el-table-column>
 | 
											
												
													
														|  | -      <el-table-column
 |  | 
 | 
											
												
													
														|  | -        prop="orderDate"
 |  | 
 | 
											
												
													
														|  | -        align="center"
 |  | 
 | 
											
												
													
														|  | -        label="订购时间"
 |  | 
 | 
											
												
													
														|  | -        show-overflow-tooltip
 |  | 
 | 
											
												
													
														|  | -      >
 |  | 
 | 
											
												
													
														|  | 
 |  | +      <el-table-column prop="orderDate" align="center" label="订购时间" show-overflow-tooltip>
 | 
											
												
													
														|  |        </el-table-column>
 |  |        </el-table-column>
 | 
											
												
													
														|  | -      <el-table-column
 |  | 
 | 
											
												
													
														|  | -        prop="invalidDate"
 |  | 
 | 
											
												
													
														|  | -        align="center"
 |  | 
 | 
											
												
													
														|  | -        label="失效时间"
 |  | 
 | 
											
												
													
														|  | -        show-overflow-tooltip
 |  | 
 | 
											
												
													
														|  | -      >
 |  | 
 | 
											
												
													
														|  | 
 |  | +      <el-table-column prop="invalidDate" align="center" label="失效时间" show-overflow-tooltip>
 | 
											
												
													
														|  |        </el-table-column>
 |  |        </el-table-column>
 | 
											
												
													
														|  | -      <el-table-column
 |  | 
 | 
											
												
													
														|  | -        align="center"
 |  | 
 | 
											
												
													
														|  | -        label="和校园推送时间"
 |  | 
 | 
											
												
													
														|  | -        show-overflow-tooltip
 |  | 
 | 
											
												
													
														|  | -      >
 |  | 
 | 
											
												
													
														|  | 
 |  | +      <el-table-column align="center" label="和校园推送时间" show-overflow-tooltip>
 | 
											
												
													
														|  |          <template slot-scope="scope">
 |  |          <template slot-scope="scope">
 | 
											
												
													
														|  |            {{ timeFormat(scope.row.createTime) }}
 |  |            {{ timeFormat(scope.row.createTime) }}
 | 
											
												
													
														|  |          </template>
 |  |          </template>
 | 
											
												
													
														|  |        </el-table-column>
 |  |        </el-table-column>
 | 
											
												
													
														|  | -      <el-table-column
 |  | 
 | 
											
												
													
														|  | -        prop="groupType"
 |  | 
 | 
											
												
													
														|  | -        align="center"
 |  | 
 | 
											
												
													
														|  | -        label="状态"
 |  | 
 | 
											
												
													
														|  | -        show-overflow-tooltip
 |  | 
 | 
											
												
													
														|  | -      >
 |  | 
 | 
											
												
													
														|  | 
 |  | +      <el-table-column prop="groupType" align="center" label="状态" show-overflow-tooltip>
 | 
											
												
													
														|  |          <template slot-scope="scope">
 |  |          <template slot-scope="scope">
 | 
											
												
													
														|  |            <span v-if="scope.row.groupType === 1">已生成</span>
 |  |            <span v-if="scope.row.groupType === 1">已生成</span>
 | 
											
												
													
														|  |            <span v-if="scope.row.groupType === 2">待生成</span>
 |  |            <span v-if="scope.row.groupType === 2">待生成</span>
 | 
											
										
											
												
													
														|  | @@ -162,12 +68,7 @@
 | 
											
												
													
														|  |        <el-table-column align="center" label="所属小程序" show-overflow-tooltip>
 |  |        <el-table-column align="center" label="所属小程序" show-overflow-tooltip>
 | 
											
												
													
														|  |          <template slot-scope="scope">{{ "慧研学惠生活" }}</template>
 |  |          <template slot-scope="scope">{{ "慧研学惠生活" }}</template>
 | 
											
												
													
														|  |        </el-table-column>
 |  |        </el-table-column>
 | 
											
												
													
														|  | -      <el-table-column
 |  | 
 | 
											
												
													
														|  | -        prop="action"
 |  | 
 | 
											
												
													
														|  | -        align="center"
 |  | 
 | 
											
												
													
														|  | -        label="订单状态"
 |  | 
 | 
											
												
													
														|  | -        show-overflow-tooltip
 |  | 
 | 
											
												
													
														|  | -      >
 |  | 
 | 
											
												
													
														|  | 
 |  | +      <el-table-column prop="action" align="center" label="订单状态" show-overflow-tooltip>
 | 
											
												
													
														|  |          <template slot-scope="scope">
 |  |          <template slot-scope="scope">
 | 
											
												
													
														|  |            <el-tag v-if="scope.row.action === 1" type="success">订购</el-tag>
 |  |            <el-tag v-if="scope.row.action === 1" type="success">订购</el-tag>
 | 
											
												
													
														|  |            <el-tag type="danger" v-else-if="scope.row.action === 2">退订</el-tag>
 |  |            <el-tag type="danger" v-else-if="scope.row.action === 2">退订</el-tag>
 | 
											
										
											
												
													
														|  | @@ -177,42 +78,19 @@
 | 
											
												
													
														|  |        </el-table-column>
 |  |        </el-table-column>
 | 
											
												
													
														|  |        <el-table-column prop="address" align="center" label="操作">
 |  |        <el-table-column prop="address" align="center" label="操作">
 | 
											
												
													
														|  |          <template slot-scope="scope">
 |  |          <template slot-scope="scope">
 | 
											
												
													
														|  | -          <el-button
 |  | 
 | 
											
												
													
														|  | -            type="text"
 |  | 
 | 
											
												
													
														|  | -            size="small"
 |  | 
 | 
											
												
													
														|  | -            v-if="scope.row.groupType === 2"
 |  | 
 | 
											
												
													
														|  | -            @click="gotoGenerating(scope.row)"
 |  | 
 | 
											
												
													
														|  | -            >生成激活码</el-button
 |  | 
 | 
											
												
													
														|  | -          >
 |  | 
 | 
											
												
													
														|  | -          <el-button
 |  | 
 | 
											
												
													
														|  | -            type="text"
 |  | 
 | 
											
												
													
														|  | -            size="small"
 |  | 
 | 
											
												
													
														|  | -            v-else
 |  | 
 | 
											
												
													
														|  | -            @click="codeDetails(scope.row)"
 |  | 
 | 
											
												
													
														|  | -            >查看激活码</el-button
 |  | 
 | 
											
												
													
														|  | -          >
 |  | 
 | 
											
												
													
														|  | 
 |  | +          <el-button type="text" size="small" v-if="scope.row.groupType === 2"
 | 
											
												
													
														|  | 
 |  | +            @click="gotoGenerating(scope.row)">生成激活码</el-button>
 | 
											
												
													
														|  | 
 |  | +          <el-button type="text" size="small" v-else @click="codeDetails(scope.row)">查看激活码</el-button>
 | 
											
												
													
														|  |          </template>
 |  |          </template>
 | 
											
												
													
														|  |        </el-table-column>
 |  |        </el-table-column>
 | 
											
												
													
														|  |      </el-table>
 |  |      </el-table>
 | 
											
												
													
														|  |      <div class="page-box">
 |  |      <div class="page-box">
 | 
											
												
													
														|  | -      <el-pagination
 |  | 
 | 
											
												
													
														|  | -        @size-change="handleSizeChange"
 |  | 
 | 
											
												
													
														|  | -        @current-change="handleCurrentChange"
 |  | 
 | 
											
												
													
														|  | -        background
 |  | 
 | 
											
												
													
														|  | -        :current-page="query.page"
 |  | 
 | 
											
												
													
														|  | -        :page-sizes="[10, 20, 30, 40]"
 |  | 
 | 
											
												
													
														|  | -        :page-size="query.size"
 |  | 
 | 
											
												
													
														|  | -        layout="total, sizes, prev, pager, next, jumper"
 |  | 
 | 
											
												
													
														|  | -        :total="total"
 |  | 
 | 
											
												
													
														|  | -      >
 |  | 
 | 
											
												
													
														|  | 
 |  | +      <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" background
 | 
											
												
													
														|  | 
 |  | +        :current-page="query.page" :page-sizes="[10, 20, 30, 40]" :page-size="query.size"
 | 
											
												
													
														|  | 
 |  | +        layout="total, sizes, prev, pager, next, jumper" :total="total">
 | 
											
												
													
														|  |        </el-pagination>
 |  |        </el-pagination>
 | 
											
												
													
														|  |      </div>
 |  |      </div>
 | 
											
												
													
														|  | -    <el-dialog
 |  | 
 | 
											
												
													
														|  | -      title="生成激活码"
 |  | 
 | 
											
												
													
														|  | -      :visible.sync="vipDialogVisible"
 |  | 
 | 
											
												
													
														|  | -      :before-close="closeVipDialog"
 |  | 
 | 
											
												
													
														|  | -      width="50%"
 |  | 
 | 
											
												
													
														|  | -    >
 |  | 
 | 
											
												
													
														|  | 
 |  | +    <el-dialog title="生成激活码" :visible.sync="vipDialogVisible" :before-close="closeVipDialog" width="50%">
 | 
											
												
													
														|  |        <el-descriptions class="margin-top" :column="3" border>
 |  |        <el-descriptions class="margin-top" :column="3" border>
 | 
											
												
													
														|  |          <el-descriptions-item>
 |  |          <el-descriptions-item>
 | 
											
												
													
														|  |            <template slot="label"> 计费号 </template>
 |  |            <template slot="label"> 计费号 </template>
 | 
											
										
											
												
													
														|  | @@ -240,124 +118,75 @@
 | 
											
												
													
														|  |          </el-descriptions-item>
 |  |          </el-descriptions-item>
 | 
											
												
													
														|  |        </el-descriptions>
 |  |        </el-descriptions>
 | 
											
												
													
														|  |        <div class="codeInfo">激活码信息</div>
 |  |        <div class="codeInfo">激活码信息</div>
 | 
											
												
													
														|  | -      <el-form
 |  | 
 | 
											
												
													
														|  | -        :model="setQuery"
 |  | 
 | 
											
												
													
														|  | -        ref="setQuery"
 |  | 
 | 
											
												
													
														|  | -        :rules="rules"
 |  | 
 | 
											
												
													
														|  | -        label-width="130px"
 |  | 
 | 
											
												
													
														|  | -        size="small"
 |  | 
 | 
											
												
													
														|  | -      >
 |  | 
 | 
											
												
													
														|  | 
 |  | +      <el-form :model="setQuery" ref="setQuery" :rules="rules" label-width="130px" size="small">
 | 
											
												
													
														|  |          <el-form-item label="激活码有效期:" prop="validDay">
 |  |          <el-form-item label="激活码有效期:" prop="validDay">
 | 
											
												
													
														|  | -          <el-input
 |  | 
 | 
											
												
													
														|  | -            v-model="setQuery.validDay"
 |  | 
 | 
											
												
													
														|  | -            onkeyup="this.value=this.value.replace(/\D/g,'')"
 |  | 
 | 
											
												
													
														|  | -            onafterpaste="this.value=this.value.replace(/\D/g,'')"
 |  | 
 | 
											
												
													
														|  | -            class="item-width-100"
 |  | 
 | 
											
												
													
														|  | -          ></el-input>
 |  | 
 | 
											
												
													
														|  | 
 |  | +          <el-input v-model="setQuery.validDay" onkeyup="this.value=this.value.replace(/\D/g,'')"
 | 
											
												
													
														|  | 
 |  | +            onafterpaste="this.value=this.value.replace(/\D/g,'')" class="item-width-100"></el-input>
 | 
											
												
													
														|  |            天
 |  |            天
 | 
											
												
													
														|  |          </el-form-item>
 |  |          </el-form-item>
 | 
											
												
													
														|  |          <el-form-item label="会员套餐:" prop="selectType">
 |  |          <el-form-item label="会员套餐:" prop="selectType">
 | 
											
												
													
														|  | -          <el-select
 |  | 
 | 
											
												
													
														|  | -            v-model="setQuery.selectType"
 |  | 
 | 
											
												
													
														|  | -            @change="selectChange"
 |  | 
 | 
											
												
													
														|  | -            placeholder="请选择套餐"
 |  | 
 | 
											
												
													
														|  | -          >
 |  | 
 | 
											
												
													
														|  | -            <el-option
 |  | 
 | 
											
												
													
														|  | -              v-for="(item, index) in optionsList"
 |  | 
 | 
											
												
													
														|  | -              :key="item.value"
 |  | 
 | 
											
												
													
														|  | -              :label="item.setMealName"
 |  | 
 | 
											
												
													
														|  | -              :value="{ value: item.setMealCode, label: item.setMealName }"
 |  | 
 | 
											
												
													
														|  | -            ></el-option>
 |  | 
 | 
											
												
													
														|  | 
 |  | +          <el-select v-model="setQuery.selectType" @change="selectChange" placeholder="请选择套餐">
 | 
											
												
													
														|  | 
 |  | +            <el-option v-for="(item, index) in optionsList" :key="item.value" :label="item.setMealName"
 | 
											
												
													
														|  | 
 |  | +              :value="{ value: item.setMealCode, label: item.setMealName }"></el-option>
 | 
											
												
													
														|  |            </el-select>
 |  |            </el-select>
 | 
											
												
													
														|  |          </el-form-item>
 |  |          </el-form-item>
 | 
											
												
													
														|  |          <el-form-item label="会员有效期:" prop="activationType">
 |  |          <el-form-item label="会员有效期:" prop="activationType">
 | 
											
												
													
														|  |            <el-radio-group v-model="setQuery.activationType">
 |  |            <el-radio-group v-model="setQuery.activationType">
 | 
											
												
													
														|  | -            <el-radio
 |  | 
 | 
											
												
													
														|  | -              v-for="item in radioOptions"
 |  | 
 | 
											
												
													
														|  | -              :key="item.value"
 |  | 
 | 
											
												
													
														|  | -              :value="item.value"
 |  | 
 | 
											
												
													
														|  | -              :label="item.label"
 |  | 
 | 
											
												
													
														|  | -            ></el-radio>
 |  | 
 | 
											
												
													
														|  | 
 |  | +            <el-radio v-for="item in radioOptions" :key="item.value" :value="item.value" :label="item.label"></el-radio>
 | 
											
												
													
														|  |            </el-radio-group>
 |  |            </el-radio-group>
 | 
											
												
													
														|  |            <div v-if="setQuery.activationType == '时间段'">
 |  |            <div v-if="setQuery.activationType == '时间段'">
 | 
											
												
													
														|  |              <el-form-item prop="startTime">
 |  |              <el-form-item prop="startTime">
 | 
											
												
													
														|  | -              <el-date-picker
 |  | 
 | 
											
												
													
														|  | -                v-model="date"
 |  | 
 | 
											
												
													
														|  | -                type="daterange"
 |  | 
 | 
											
												
													
														|  | -                range-separator="至"
 |  | 
 | 
											
												
													
														|  | -                start-placeholder="开始日期"
 |  | 
 | 
											
												
													
														|  | -                end-placeholder="结束日期"
 |  | 
 | 
											
												
													
														|  | -              >
 |  | 
 | 
											
												
													
														|  | 
 |  | +              <el-date-picker v-model="date" type="daterange" range-separator="至" start-placeholder="开始日期"
 | 
											
												
													
														|  | 
 |  | +                end-placeholder="结束日期">
 | 
											
												
													
														|  |                </el-date-picker>
 |  |                </el-date-picker>
 | 
											
												
													
														|  |              </el-form-item>
 |  |              </el-form-item>
 | 
											
												
													
														|  |            </div>
 |  |            </div>
 | 
											
												
													
														|  |            <div v-if="setQuery.activationType == '天数'">
 |  |            <div v-if="setQuery.activationType == '天数'">
 | 
											
												
													
														|  |              <el-form-item prop="activationDay">
 |  |              <el-form-item prop="activationDay">
 | 
											
												
													
														|  | -              <el-input
 |  | 
 | 
											
												
													
														|  | -                v-model="setQuery.activationDay"
 |  | 
 | 
											
												
													
														|  | -                onkeyup="this.value=this.value.replace(/\D/g,'')"
 |  | 
 | 
											
												
													
														|  | -                onafterpaste="this.value=this.value.replace(/\D/g,'')"
 |  | 
 | 
											
												
													
														|  | -                class="item-width-100"
 |  | 
 | 
											
												
													
														|  | -              ></el-input>
 |  | 
 | 
											
												
													
														|  | 
 |  | +              <el-input v-model="setQuery.activationDay" onkeyup="this.value=this.value.replace(/\D/g,'')"
 | 
											
												
													
														|  | 
 |  | +                onafterpaste="this.value=this.value.replace(/\D/g,'')" class="item-width-100"></el-input>
 | 
											
												
													
														|  |                天
 |  |                天
 | 
											
												
													
														|  |              </el-form-item>
 |  |              </el-form-item>
 | 
											
												
													
														|  |            </div>
 |  |            </div>
 | 
											
												
													
														|  |          </el-form-item>
 |  |          </el-form-item>
 | 
											
												
													
														|  | -        <div
 |  | 
 | 
											
												
													
														|  | -          style="
 |  | 
 | 
											
												
													
														|  | 
 |  | +        <div style="
 | 
											
												
													
														|  |              color: red;
 |  |              color: red;
 | 
											
												
													
														|  |              font-size: 12px;
 |  |              font-size: 12px;
 | 
											
												
													
														|  |              line-height: 16px;
 |  |              line-height: 16px;
 | 
											
												
													
														|  |              margin-left: 40px;
 |  |              margin-left: 40px;
 | 
											
												
													
														|  | -          "
 |  | 
 | 
											
												
													
														|  | -        >
 |  | 
 | 
											
												
													
														|  | 
 |  | +          ">
 | 
											
												
													
														|  |            注:会员有效期为用户使用激活码后会员生效时间。时间段为用户使用激活码后仅在对应时间段内拥有会员权益;天数为用户使用激活码后对应天数内拥有会员权益。时间段激活码无法叠加使用,天数激活码可叠加使用累计天数。
 |  |            注:会员有效期为用户使用激活码后会员生效时间。时间段为用户使用激活码后仅在对应时间段内拥有会员权益;天数为用户使用激活码后对应天数内拥有会员权益。时间段激活码无法叠加使用,天数激活码可叠加使用累计天数。
 | 
											
												
													
														|  |          </div>
 |  |          </div>
 | 
											
												
													
														|  |          <el-form-item label="激活码数量:">
 |  |          <el-form-item label="激活码数量:">
 | 
											
												
													
														|  | -          <el-input
 |  | 
 | 
											
												
													
														|  | -            v-model="setQuery.totalTicket"
 |  | 
 | 
											
												
													
														|  | -            onkeyup="this.value=this.value.replace(/\D/g,'')"
 |  | 
 | 
											
												
													
														|  | -            onafterpaste="this.value=this.value.replace(/\D/g,'')"
 |  | 
 | 
											
												
													
														|  | -            class="item-width-100"
 |  | 
 | 
											
												
													
														|  | -            @blur="totalTicketChange"
 |  | 
 | 
											
												
													
														|  | -          ></el-input>
 |  | 
 | 
											
												
													
														|  | -          <span style="color: red; font-size: 12px; margin-left: 10px"
 |  | 
 | 
											
												
													
														|  | -            >注:默认为订购数量,激活码数量必须大于订购数量,输入数字须为整数</span
 |  | 
 | 
											
												
													
														|  | -          >
 |  | 
 | 
											
												
													
														|  | 
 |  | +          <el-input v-model="setQuery.totalTicket" onkeyup="this.value=this.value.replace(/\D/g,'')"
 | 
											
												
													
														|  | 
 |  | +            onafterpaste="this.value=this.value.replace(/\D/g,'')" class="item-width-100"
 | 
											
												
													
														|  | 
 |  | +            @blur="totalTicketChange"></el-input>
 | 
											
												
													
														|  | 
 |  | +          <span style="color: red; font-size: 12px; margin-left: 10px">注:默认为订购数量,激活码数量必须大于订购数量,输入数字须为整数</span>
 | 
											
												
													
														|  |          </el-form-item>
 |  |          </el-form-item>
 | 
											
												
													
														|  |          <el-form-item label="激活码开头:" prop="startString">
 |  |          <el-form-item label="激活码开头:" prop="startString">
 | 
											
												
													
														|  | -          <el-input
 |  | 
 | 
											
												
													
														|  | -            v-model="setQuery.startString"
 |  | 
 | 
											
												
													
														|  | -            class="item-width-100"
 |  | 
 | 
											
												
													
														|  | -            maxlength="6"
 |  | 
 | 
											
												
													
														|  | -          ></el-input>
 |  | 
 | 
											
												
													
														|  | -          <span style="color: red; font-size: 12px; margin-left: 10px"
 |  | 
 | 
											
												
													
														|  | -            >注:只能输入大小写英文和数字,最长单位为6位,创建激活码时放在激活码开头</span
 |  | 
 | 
											
												
													
														|  | -          >
 |  | 
 | 
											
												
													
														|  | 
 |  | +          <el-input v-model="setQuery.startString" class="item-width-100" maxlength="6"></el-input>
 | 
											
												
													
														|  | 
 |  | +          <span style="color: red; font-size: 12px; margin-left: 10px">注:只能输入大小写英文和数字,最长单位为6位,创建激活码时放在激活码开头</span>
 | 
											
												
													
														|  |          </el-form-item>
 |  |          </el-form-item>
 | 
											
												
													
														|  |        </el-form>
 |  |        </el-form>
 | 
											
												
													
														|  |        <span slot="footer" class="dialog-footer">
 |  |        <span slot="footer" class="dialog-footer">
 | 
											
												
													
														|  |          <el-button @click="activationCancel('setQuery')">取 消</el-button>
 |  |          <el-button @click="activationCancel('setQuery')">取 消</el-button>
 | 
											
												
													
														|  | -        <el-button
 |  | 
 | 
											
												
													
														|  | -          type="primary"
 |  | 
 | 
											
												
													
														|  | -          :loading="updataLoading"
 |  | 
 | 
											
												
													
														|  | -          @click="vipsubmitForm('setQuery')"
 |  | 
 | 
											
												
													
														|  | -          >生成</el-button
 |  | 
 | 
											
												
													
														|  | -        >
 |  | 
 | 
											
												
													
														|  | 
 |  | +        <el-button type="primary" :loading="updataLoading" @click="vipsubmitForm('setQuery')">生成</el-button>
 | 
											
												
													
														|  |        </span>
 |  |        </span>
 | 
											
												
													
														|  |      </el-dialog>
 |  |      </el-dialog>
 | 
											
												
													
														|  |    </div>
 |  |    </div>
 | 
											
												
													
														|  |  </template>
 |  |  </template>
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  <script>
 |  |  <script>
 | 
											
												
													
														|  | -import { debounce } from "@/utils/index";
 |  | 
 | 
											
												
													
														|  |  import { getGroupList, generateCode, getList } from "@/api/common";
 |  |  import { getGroupList, generateCode, getList } from "@/api/common";
 | 
											
												
													
														|  |  import { timeFormat } from "@/utils/index";
 |  |  import { timeFormat } from "@/utils/index";
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | 
 |  | +import FileSaver from 'file-saver';
 | 
											
												
													
														|  | 
 |  | +import XLSX from 'xlsx';
 | 
											
												
													
														|  |  export default {
 |  |  export default {
 | 
											
												
													
														|  |    name: "orderManage",
 |  |    name: "orderManage",
 | 
											
												
													
														|  |    data() {
 |  |    data() {
 | 
											
												
													
														|  |      return {
 |  |      return {
 | 
											
												
													
														|  | 
 |  | +      downloadLoading: false,
 | 
											
												
													
														|  | 
 |  | +      totalTicketNumber: '',
 | 
											
												
													
														|  |        date: "",
 |  |        date: "",
 | 
											
												
													
														|  |        updataLoading: false,
 |  |        updataLoading: false,
 | 
											
												
													
														|  |        codeData: {},
 |  |        codeData: {},
 | 
											
										
											
												
													
														|  | @@ -457,7 +286,7 @@ export default {
 | 
											
												
													
														|  |            },
 |  |            },
 | 
											
												
													
														|  |          ],
 |  |          ],
 | 
											
												
													
														|  |          startString: [
 |  |          startString: [
 | 
											
												
													
														|  | -          { required: true,pattern:/^[a-z0-9A-Z]+$/, message: "请正确输入激活码开头", trigger: "blur" },
 |  | 
 | 
											
												
													
														|  | 
 |  | +          { required: true, pattern: /^[a-z0-9A-Z]+$/, message: "请正确输入激活码开头", trigger: "blur" },
 | 
											
												
													
														|  |          ],
 |  |          ],
 | 
											
												
													
														|  |        },
 |  |        },
 | 
											
												
													
														|  |        vipDialogVisible: false,
 |  |        vipDialogVisible: false,
 | 
											
										
											
												
													
														|  | @@ -506,6 +335,7 @@ export default {
 | 
											
												
													
														|  |        this.codeData = item;
 |  |        this.codeData = item;
 | 
											
												
													
														|  |        this.setQuery.groupOrderNo = item.orderNo;
 |  |        this.setQuery.groupOrderNo = item.orderNo;
 | 
											
												
													
														|  |        this.setQuery.totalTicket = Math.floor(item.orderNum);
 |  |        this.setQuery.totalTicket = Math.floor(item.orderNum);
 | 
											
												
													
														|  | 
 |  | +      this.totalTicketNumber = Math.floor(item.orderNum);
 | 
											
												
													
														|  |      },
 |  |      },
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      // 套餐选择
 |  |      // 套餐选择
 | 
											
										
											
												
													
														|  | @@ -519,7 +349,7 @@ export default {
 | 
											
												
													
														|  |      totalTicketChange() {
 |  |      totalTicketChange() {
 | 
											
												
													
														|  |        if (Math.trunc(this.codeData.orderNum) > this.setQuery.totalTicket) {
 |  |        if (Math.trunc(this.codeData.orderNum) > this.setQuery.totalTicket) {
 | 
											
												
													
														|  |          this.$message.error("激活码数量必须大于订购数量");
 |  |          this.$message.error("激活码数量必须大于订购数量");
 | 
											
												
													
														|  | -        this.setQuery.totalTicket = "";
 |  | 
 | 
											
												
													
														|  | 
 |  | +        this.setQuery.totalTicket = this.totalTicketNumber;
 | 
											
												
													
														|  |          return;
 |  |          return;
 | 
											
												
													
														|  |        }
 |  |        }
 | 
											
												
													
														|  |      },
 |  |      },
 | 
											
										
											
												
													
														|  | @@ -579,6 +409,67 @@ export default {
 | 
											
												
													
														|  |        });
 |  |        });
 | 
											
												
													
														|  |      },
 |  |      },
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +    // 导出方法
 | 
											
												
													
														|  | 
 |  | +    exportAllExcel() {
 | 
											
												
													
														|  | 
 |  | +      this.downloadLoading=true
 | 
											
												
													
														|  | 
 |  | +      const allData = [];
 | 
											
												
													
														|  | 
 |  | +      let query = JSON.parse(JSON.stringify(this.query))
 | 
											
												
													
														|  | 
 |  | +      query.size = this.total
 | 
											
												
													
														|  | 
 |  | +      query.page=0
 | 
											
												
													
														|  | 
 |  | +      getGroupList(query).then(res => {
 | 
											
												
													
														|  | 
 |  | +        this.downloadLoading=false
 | 
											
												
													
														|  | 
 |  | +        if(res.state == "Success"){
 | 
											
												
													
														|  | 
 |  | +          allData.push(...res.content.content);
 | 
											
												
													
														|  | 
 |  | +          this.exportExcel(allData);
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +      });
 | 
											
												
													
														|  | 
 |  | +    },
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    // 导出数据处理
 | 
											
												
													
														|  | 
 |  | +    exportExcel(r) {
 | 
											
												
													
														|  | 
 |  | +      const data = r.map((item) => {
 | 
											
												
													
														|  | 
 |  | +        let status = "";
 | 
											
												
													
														|  | 
 |  | +        let orderStatus = "";
 | 
											
												
													
														|  | 
 |  | +        if (item.groupType == 1) {
 | 
											
												
													
														|  | 
 |  | +          status = "已生成"
 | 
											
												
													
														|  | 
 |  | +        } else if (item.groupType == 2) {
 | 
											
												
													
														|  | 
 |  | +          status = "未生成"
 | 
											
												
													
														|  | 
 |  | +        } else {
 | 
											
												
													
														|  | 
 |  | +          status = "全部激活"
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        if (item.action == 1) {
 | 
											
												
													
														|  | 
 |  | +          orderStatus = '订购'
 | 
											
												
													
														|  | 
 |  | +        } else if (item.action == 2) {
 | 
											
												
													
														|  | 
 |  | +          orderStatus = '退订'
 | 
											
												
													
														|  | 
 |  | +        } else if (item.action == 3) {
 | 
											
												
													
														|  | 
 |  | +          orderStatus = '激活'
 | 
											
												
													
														|  | 
 |  | +        } else {
 | 
											
												
													
														|  | 
 |  | +          orderStatus = '暂停'
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        return {
 | 
											
												
													
														|  | 
 |  | +          "计费号": item.billId,
 | 
											
												
													
														|  | 
 |  | +          "集团名称": item.groupName,
 | 
											
												
													
														|  | 
 |  | +          "订单号": item.orderNo,
 | 
											
												
													
														|  | 
 |  | +          "订购产品策划名称": item.groupPlanName,
 | 
											
												
													
														|  | 
 |  | +          "订购产品单价(元)": item.orderPrice,
 | 
											
												
													
														|  | 
 |  | +          "订购数量": item.orderNum,
 | 
											
												
													
														|  | 
 |  | +          "订购时间": item.orderDate,
 | 
											
												
													
														|  | 
 |  | +          "失效时间": item.invalidDate,
 | 
											
												
													
														|  | 
 |  | +          "和校园推送时间": timeFormat(item.createTime),
 | 
											
												
													
														|  | 
 |  | +          "状态": status,
 | 
											
												
													
														|  | 
 |  | +          "未激活数量": item.totalTicket - item.useTicket,
 | 
											
												
													
														|  | 
 |  | +          "已激活数量": item.useTicket,
 | 
											
												
													
														|  | 
 |  | +          "所属小程序": '慧研学惠生活',
 | 
											
												
													
														|  | 
 |  | +          "订单状态": orderStatus,
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +      })
 | 
											
												
													
														|  | 
 |  | +      const worksheet = XLSX.utils.json_to_sheet(data);
 | 
											
												
													
														|  | 
 |  | +      const workbook = { Sheets: { data: worksheet }, SheetNames: ['data'] };
 | 
											
												
													
														|  | 
 |  | +      const excelBuffer = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });
 | 
											
												
													
														|  | 
 |  | +      const blob = new Blob([excelBuffer], { type: 'application/octet-stream' });
 | 
											
												
													
														|  | 
 |  | +      FileSaver.saveAs(blob, '集团列表.xlsx');
 | 
											
												
													
														|  | 
 |  | +    },
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |      handleSearch() {
 |  |      handleSearch() {
 | 
											
												
													
														|  |        this.query.page = 1;
 |  |        this.query.page = 1;
 | 
											
												
													
														|  |        this.getList();
 |  |        this.getList();
 |