|
@@ -6,7 +6,7 @@
|
|
<a href="#">系统管理</a>
|
|
<a href="#">系统管理</a>
|
|
</el-breadcrumb-item>
|
|
</el-breadcrumb-item>
|
|
<el-breadcrumb-item>
|
|
<el-breadcrumb-item>
|
|
- <a href="/parkingCoupon">商户优惠卷管理</a>
|
|
|
|
|
|
+ <a href="/parkingCoupon">停车劵使用明细</a>
|
|
</el-breadcrumb-item>
|
|
</el-breadcrumb-item>
|
|
</el-breadcrumb>
|
|
</el-breadcrumb>
|
|
<el-divider></el-divider>
|
|
<el-divider></el-divider>
|
|
@@ -19,6 +19,23 @@
|
|
inline
|
|
inline
|
|
class="demo-form-inline"
|
|
class="demo-form-inline"
|
|
>
|
|
>
|
|
|
|
+ <el-form-item label="车牌号码" prop="carNum">
|
|
|
|
+ <el-input
|
|
|
|
+ type="text"
|
|
|
|
+ size="mini"
|
|
|
|
+ v-model="queryModel.carNum"
|
|
|
|
+ ></el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="所属物业公司" prop="companyId">
|
|
|
|
+ <el-select-tree
|
|
|
|
+ :props="props"
|
|
|
|
+ :options="companyResult"
|
|
|
|
+ v-model="queryModel.companyId"
|
|
|
|
+ height="200"
|
|
|
|
+ style="width: 230px"
|
|
|
|
+ size="mini"
|
|
|
|
+ ></el-select-tree>
|
|
|
|
+ </el-form-item>
|
|
<el-form-item label="商户名称" prop="merchantName">
|
|
<el-form-item label="商户名称" prop="merchantName">
|
|
<el-input
|
|
<el-input
|
|
type="text"
|
|
type="text"
|
|
@@ -26,21 +43,25 @@
|
|
v-model="queryModel.merchantName"
|
|
v-model="queryModel.merchantName"
|
|
></el-input>
|
|
></el-input>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="优惠券类型" prop="type">
|
|
|
|
- <el-select
|
|
|
|
- filterable
|
|
|
|
- placeholder="请选择"
|
|
|
|
- style="width: 180px"
|
|
|
|
- v-model="queryModel.type"
|
|
|
|
|
|
+ <el-form-item label="使用状态" prop="useStatus">
|
|
|
|
+ <el-select size="mini" v-model="queryModel.useStatus">
|
|
|
|
+ <el-option label="全部" value=""></el-option>
|
|
|
|
+ <el-option label="未使用" value="0"></el-option>
|
|
|
|
+ <el-option label="已使用" value="1"></el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="核销时间" prop="verifyTimeRange">
|
|
|
|
+ <el-date-picker
|
|
|
|
+ v-model="queryModel.verifyTimeRange"
|
|
|
|
+ type="daterange"
|
|
size="mini"
|
|
size="mini"
|
|
|
|
+ range-separator="至"
|
|
|
|
+ start-placeholder="开始时间"
|
|
|
|
+ end-placeholder="结束时间"
|
|
|
|
+ placeholder="选择时间范围"
|
|
|
|
+ value-format="yyyy-MM-dd"
|
|
>
|
|
>
|
|
- <el-option
|
|
|
|
- v-for="result in typeResult"
|
|
|
|
- :key="result.value"
|
|
|
|
- :label="result.name"
|
|
|
|
- :value="result.value"
|
|
|
|
- ></el-option>
|
|
|
|
- </el-select>
|
|
|
|
|
|
+ </el-date-picker>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item>
|
|
<el-form-item>
|
|
<el-button
|
|
<el-button
|
|
@@ -62,7 +83,14 @@
|
|
</el-form>
|
|
</el-form>
|
|
<el-divider></el-divider>
|
|
<el-divider></el-divider>
|
|
<el-row class="button-group">
|
|
<el-row class="button-group">
|
|
-
|
|
|
|
|
|
+ <el-button
|
|
|
|
+ type="primary"
|
|
|
|
+ size="small"
|
|
|
|
+ plain
|
|
|
|
+ icon="el-icon-download"
|
|
|
|
+ :loading="downloadLoading"
|
|
|
|
+ @click="downloadXls"
|
|
|
|
+ >导出数据</el-button>
|
|
</el-row>
|
|
</el-row>
|
|
<el-table
|
|
<el-table
|
|
:data="tableData"
|
|
:data="tableData"
|
|
@@ -74,48 +102,50 @@
|
|
>
|
|
>
|
|
<el-table-column type="selection" width="55"></el-table-column>
|
|
<el-table-column type="selection" width="55"></el-table-column>
|
|
<el-table-column
|
|
<el-table-column
|
|
- prop="merchantName"
|
|
|
|
- label="商户名称"
|
|
|
|
- width="180"
|
|
|
|
|
|
+ type="index"
|
|
|
|
+ label="序号"
|
|
|
|
+ :index="indexMethod"
|
|
|
|
+ width="50"
|
|
></el-table-column>
|
|
></el-table-column>
|
|
<el-table-column
|
|
<el-table-column
|
|
- prop="typeName"
|
|
|
|
- label="优惠券类型"
|
|
|
|
- width="180"
|
|
|
|
|
|
+ prop="carNum"
|
|
|
|
+ label="车牌号码"
|
|
|
|
+ width="130"
|
|
></el-table-column>
|
|
></el-table-column>
|
|
<el-table-column
|
|
<el-table-column
|
|
- prop="reduce"
|
|
|
|
- label="优惠额度"
|
|
|
|
- width="180"
|
|
|
|
|
|
+ prop="companyName"
|
|
|
|
+ label="所属物业"
|
|
|
|
+ width="150"
|
|
></el-table-column>
|
|
></el-table-column>
|
|
<el-table-column
|
|
<el-table-column
|
|
- prop="parkingRecordId"
|
|
|
|
- label="停车记录id"
|
|
|
|
- width="180"
|
|
|
|
|
|
+ prop="merchantName"
|
|
|
|
+ label="登记商户"
|
|
|
|
+ width="150"
|
|
></el-table-column>
|
|
></el-table-column>
|
|
- <el-table-column
|
|
|
|
- prop="useStatus"
|
|
|
|
- label="使用状态"
|
|
|
|
- width="180"
|
|
|
|
- >
|
|
|
|
- <template slot-scope="{ row }">
|
|
|
|
- <span v-if="row.useStatus">使用</span>
|
|
|
|
- <span v-else>未使用</span>
|
|
|
|
- </template>
|
|
|
|
|
|
+ <el-table-column prop="useStatus" label="使用状态" width="90">
|
|
|
|
+ <template slot-scope="{ row }">
|
|
|
|
+ <span v-if="row.useStatus">使用</span>
|
|
|
|
+ <span v-else>未使用</span>
|
|
|
|
+ </template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
<el-table-column
|
|
<el-table-column
|
|
- prop="useQuote"
|
|
|
|
- label="使用额度"
|
|
|
|
|
|
+ prop="reduce"
|
|
|
|
+ label="折扣卷金额(元)"
|
|
|
|
+ width="130"
|
|
|
|
+ ></el-table-column>
|
|
|
|
+ <el-table-column
|
|
|
|
+ prop="inParkingTime"
|
|
|
|
+ label="入场时间"
|
|
width="180"
|
|
width="180"
|
|
></el-table-column>
|
|
></el-table-column>
|
|
<el-table-column
|
|
<el-table-column
|
|
- prop="useTime"
|
|
|
|
- label="使用时间"
|
|
|
|
|
|
+ prop="outParkingTime"
|
|
|
|
+ label="出场时间"
|
|
width="180"
|
|
width="180"
|
|
></el-table-column>
|
|
></el-table-column>
|
|
<el-table-column
|
|
<el-table-column
|
|
- prop="invalidTime"
|
|
|
|
- label="失效时间"
|
|
|
|
|
|
+ prop="createTime"
|
|
|
|
+ label="发放时间"
|
|
width="180"
|
|
width="180"
|
|
></el-table-column>
|
|
></el-table-column>
|
|
<el-table-column
|
|
<el-table-column
|
|
@@ -132,19 +162,14 @@
|
|
@size-change="pageSizeChange"
|
|
@size-change="pageSizeChange"
|
|
layout="total, sizes, prev, pager, next, jumper"
|
|
layout="total, sizes, prev, pager, next, jumper"
|
|
></el-pagination>
|
|
></el-pagination>
|
|
- <parkingCoupon-detail
|
|
|
|
- v-if="showModal"
|
|
|
|
- :businessKey="businessKey"
|
|
|
|
- :title="modalTitle"
|
|
|
|
- @close="onDetailModalClose"
|
|
|
|
- ></parkingCoupon-detail>
|
|
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
<script>
|
|
<script>
|
|
import Constant from "@/constant";
|
|
import Constant from "@/constant";
|
|
-import ParkingCouponDetail from "./parkingCoupon-detail";
|
|
|
|
import parkingCouponApi from "@/api/base/parkingCoupon";
|
|
import parkingCouponApi from "@/api/base/parkingCoupon";
|
|
import dataDictionaryApi from "@/api/sys/dataDictionary";
|
|
import dataDictionaryApi from "@/api/sys/dataDictionary";
|
|
|
|
+import companyInfoApi from "@/api/base/companyInfo";
|
|
|
|
+import SelectTree from "@/components/SelectTree";
|
|
import NProgress from "nprogress"; // progress bar
|
|
import NProgress from "nprogress"; // progress bar
|
|
import "nprogress/nprogress.css"; // progress bar style
|
|
import "nprogress/nprogress.css"; // progress bar style
|
|
|
|
|
|
@@ -155,9 +180,13 @@ export default {
|
|
|
|
|
|
return {
|
|
return {
|
|
queryModel: {
|
|
queryModel: {
|
|
- id:"",
|
|
|
|
|
|
+ id: "",
|
|
merchantName: "",
|
|
merchantName: "",
|
|
- type:""
|
|
|
|
|
|
+ type: "",
|
|
|
|
+ companyId: "",
|
|
|
|
+ verifyTimeRange: ["", ""],
|
|
|
|
+ carNum: "",
|
|
|
|
+ useStatus: "",
|
|
},
|
|
},
|
|
loading: false,
|
|
loading: false,
|
|
tableData: [],
|
|
tableData: [],
|
|
@@ -173,21 +202,32 @@ export default {
|
|
modalTitle: "",
|
|
modalTitle: "",
|
|
businessKey: "",
|
|
businessKey: "",
|
|
typeResult: [],
|
|
typeResult: [],
|
|
|
|
+ companyResult: [],
|
|
|
|
+ props: {
|
|
|
|
+ // 配置项(必选)
|
|
|
|
+ value: "id",
|
|
|
|
+ label: "name",
|
|
|
|
+ children: "children",
|
|
|
|
+ },
|
|
|
|
+ downloadLoading: false,
|
|
};
|
|
};
|
|
},
|
|
},
|
|
created() {
|
|
created() {
|
|
var self = this;
|
|
var self = this;
|
|
|
|
|
|
- dataDictionaryApi
|
|
|
|
- .findByCatalogName({
|
|
|
|
- catalogName: "优惠券类型",
|
|
|
|
- })
|
|
|
|
- .then((response) => {
|
|
|
|
- var jsonData = response.data;
|
|
|
|
- this.typeResult = jsonData.data;
|
|
|
|
- });
|
|
|
|
|
|
+ companyInfoApi.treeList().then(function (response) {
|
|
|
|
+ var jsonData = response.data;
|
|
|
|
+ if (jsonData.result) {
|
|
|
|
+ if (jsonData.data != null && jsonData.data != "") {
|
|
|
|
+ self.companyResult = jsonData.data;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ });
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
|
|
+ indexMethod(index) {
|
|
|
|
+ return (this.pageIndex - 1) * this.pageSize + (index + 1);
|
|
|
|
+ },
|
|
changePage(pageIndex) {
|
|
changePage(pageIndex) {
|
|
var self = this;
|
|
var self = this;
|
|
|
|
|
|
@@ -203,6 +243,22 @@ export default {
|
|
formData.append("merchantName", self.queryModel.merchantName);
|
|
formData.append("merchantName", self.queryModel.merchantName);
|
|
formData.append("type", self.queryModel.type);
|
|
formData.append("type", self.queryModel.type);
|
|
|
|
|
|
|
|
+ if (self.queryModel.companyId != null) {
|
|
|
|
+ formData.append("companyId", self.queryModel.companyId);
|
|
|
|
+ }
|
|
|
|
+ formData.append("carNum", self.queryModel.carNum);
|
|
|
|
+ formData.append("verifyTime", self.queryModel.verifyTime);
|
|
|
|
+
|
|
|
|
+ if (self.queryModel.verifyTimeRange[0] != null) {
|
|
|
|
+ formData.append("verifyStartTime", self.queryModel.verifyTimeRange[0]);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (self.queryModel.verifyTimeRange[1] != null) {
|
|
|
|
+ formData.append("verifyEndTime", self.queryModel.verifyTimeRange[1]);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ formData.append("useStatus", self.queryModel.useStatus);
|
|
|
|
+
|
|
if (this.field != null) {
|
|
if (this.field != null) {
|
|
formData.append("field", this.field);
|
|
formData.append("field", this.field);
|
|
}
|
|
}
|
|
@@ -316,12 +372,71 @@ export default {
|
|
this.changePage(this.pageIndex);
|
|
this.changePage(this.pageIndex);
|
|
}
|
|
}
|
|
},
|
|
},
|
|
|
|
+ downloadXls() {
|
|
|
|
+ //导出
|
|
|
|
+ var self = this;
|
|
|
|
+ self.downloadLoading = true;
|
|
|
|
+ self.loading = true;
|
|
|
|
+ self.loadingText = "数据导出中,请稍后...";
|
|
|
|
+
|
|
|
|
+ var formData = new FormData();
|
|
|
|
+
|
|
|
|
+ formData.append("pageIndex", self.pageIndex);
|
|
|
|
+ formData.append("pageSize", self.pageSize);
|
|
|
|
+
|
|
|
|
+ formData.append("id", self.queryModel.id);
|
|
|
|
+ formData.append("merchantName", self.queryModel.merchantName);
|
|
|
|
+ formData.append("type", self.queryModel.type);
|
|
|
|
+
|
|
|
|
+ if (self.queryModel.companyId != null) {
|
|
|
|
+ formData.append("companyId", self.queryModel.companyId);
|
|
|
|
+ }
|
|
|
|
+ formData.append("carNum", self.queryModel.carNum);
|
|
|
|
+ formData.append("verifyTime", self.queryModel.verifyTime);
|
|
|
|
+
|
|
|
|
+ if (self.queryModel.verifyTimeRange[0] != null) {
|
|
|
|
+ formData.append("verifyStartTime", self.queryModel.verifyTimeRange[0]);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (self.queryModel.verifyTimeRange[1] != null) {
|
|
|
|
+ formData.append("verifyEndTime", self.queryModel.verifyTimeRange[1]);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ formData.append("useStatus", self.queryModel.useStatus);
|
|
|
|
+
|
|
|
|
+ if (this.field != null) {
|
|
|
|
+ formData.append("field", this.field);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (this.direction != null) {
|
|
|
|
+ formData.append("direction", this.direction);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ parkingCouponApi.exportXls(formData).then(function(response) {
|
|
|
|
+ var jsonData = response.data;
|
|
|
|
+ self.downloadLoading = false;
|
|
|
|
+ self.loading = false;
|
|
|
|
+ if (jsonData.result) {
|
|
|
|
+ //下载有错误信息提示的报表
|
|
|
|
+ self.$message({
|
|
|
|
+ showClose: true,
|
|
|
|
+ dangerouslyUseHTMLString: true,
|
|
|
|
+ message: `报表已生成,<a href="${jsonData.data}" target="_blank">点击下载报表</a> `,
|
|
|
|
+ duration: 60000,
|
|
|
|
+ type: 'success'
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ else{
|
|
|
|
+ self.$message.error(jsonData.message);
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ },
|
|
},
|
|
},
|
|
mounted: function () {
|
|
mounted: function () {
|
|
this.changePage(1);
|
|
this.changePage(1);
|
|
},
|
|
},
|
|
components: {
|
|
components: {
|
|
- "parkingCoupon-detail": ParkingCouponDetail,
|
|
|
|
|
|
+ "el-select-tree": SelectTree,
|
|
},
|
|
},
|
|
};
|
|
};
|
|
</script>
|
|
</script>
|