From ecad399599cc91ebd70e2ed45262ca1579cbf9d2 Mon Sep 17 00:00:00 2001
From: zhaoxiaoqiang <287285524@qq.com>
Date: Fri, 01 Sep 2023 11:38:10 +0800
Subject: [PATCH] 订单管理接口调整
---
src/views/qyp-project-order/history.vue | 256 ++++++++++++++++++++++++
src/api/user.js | 8
src/views/qyp-project-order/admin.vue | 110 ++++++++++
src/views/qyp-project-order/plan.vue | 44 +++-
src/api/listapi.js | 26 ++
src/utils/excelDownLoadConfig.js | 5
src/views/qyp-project-order/draw.vue | 97 ++++++++-
src/api/credit.js | 16 +
8 files changed, 509 insertions(+), 53 deletions(-)
diff --git a/src/api/credit.js b/src/api/credit.js
index cad6a5a..92a99a9 100644
--- a/src/api/credit.js
+++ b/src/api/credit.js
@@ -1,7 +1,7 @@
/*
* @Author: your name
* @Date: 2021-09-22 10:18:34
- * @LastEditTime: 2023-07-10 10:39:47
+ * @LastEditTime: 2023-09-01 09:45:12
* @LastEditors: zhaoxiaoqiang 287285524@qq.com
* @Description: In User Settings Edit
* @FilePath: \qyp_finlean_plat\src\api\credit.js
@@ -82,10 +82,18 @@
data
})
}
-// 订单详情
-export function orderInit(data) {
+// 支付历史初始化
+export function payInit(data) {
return request({
- url: '/qyp/order/orderInit',
+ url: '/qyp/order/payInit',
+ method: 'post',
+ data
+ })
+}
+// 退款
+export function refund(data) {
+ return request({
+ url: '/qyp/order/refund',
method: 'post',
data
})
diff --git a/src/api/listapi.js b/src/api/listapi.js
index 596aff3..5d2d258 100644
--- a/src/api/listapi.js
+++ b/src/api/listapi.js
@@ -1,7 +1,7 @@
/*
* @Author: your name
* @Date: 2021-09-16 17:39:48
- * @LastEditTime: 2023-08-25 10:09:01
+ * @LastEditTime: 2023-09-01 11:28:03
* @LastEditors: zhaoxiaoqiang 287285524@qq.com
* @Description:这个文件只用作列表和导出接口的使用
* @FilePath: \qyp-plat\src\api\listapi.js
@@ -11,6 +11,7 @@
let accountApi = {
// 用户列表
userList(data) {
+ data.sysType = 4;
return request({
url: "/user/list",
method: "post",
@@ -47,5 +48,28 @@
data,
});
},
+ payList(data) {
+ return request({
+ url: "/qyp/order/payList",
+ method: "post",
+ data,
+ });
+ },
+ // 支付列表
+ payPlanList(data) {
+ return request({
+ url: "/qyp/order/payPlanList",
+ method: "post",
+ data,
+ });
+ },
+ // 权益领取
+ useList(data) {
+ return request({
+ url: "/qyp/order/useList",
+ method: "post",
+ data,
+ });
+ },
};
export default accountApi;
diff --git a/src/api/user.js b/src/api/user.js
index daa10ef..b4541a9 100644
--- a/src/api/user.js
+++ b/src/api/user.js
@@ -9,13 +9,6 @@
})
}
-export function getInfo(token) {
- return request({
- url: '/vue-admin-template/user/info',
- method: 'get',
- params: { token }
- })
-}
// 强制退出
export function logout() {
return request({
@@ -25,6 +18,7 @@
}
//更新用户密码
export function updatePwd(data) {
+ data.sysType = 4;
return request({
url: '/user/updatePwd',
method: 'post',
diff --git a/src/utils/excelDownLoadConfig.js b/src/utils/excelDownLoadConfig.js
index d8150c3..c5afdad 100644
--- a/src/utils/excelDownLoadConfig.js
+++ b/src/utils/excelDownLoadConfig.js
@@ -2,7 +2,7 @@
* @Author: 小明丶
* @Date: 2019-10-25 10:17:56
* @LastEditors: zhaoxiaoqiang 287285524@qq.com
- * @LastEditTime: 2023-07-28 16:27:12
+ * @LastEditTime: 2023-09-01 10:34:18
* @Description:
*/
/**
@@ -62,7 +62,6 @@
downFile(blob, fileName);
},
configDate2: function(res, parFilename, from) {
- console.log(res);
// let fileNamet =/\.{1}[A-Za-z]{1,}$/.exec(res.headers['content-disposition']);
let blob = new Blob([res.data], {type: 'application/vnd.ms-excel'});
let fileName = parFilename?parFilename:"";
@@ -71,8 +70,6 @@
if (window.navigator.msSaveOrOpenBlob) {
navigator.msSaveBlob(blob, fileName);
} else {
- // let objectUrl = URL.createObjectURL(blob);
- // window.location.href = objectUrl;
let link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
link.download = fileName;
diff --git a/src/views/qyp-project-order/admin.vue b/src/views/qyp-project-order/admin.vue
index 8ae691e..7320164 100644
--- a/src/views/qyp-project-order/admin.vue
+++ b/src/views/qyp-project-order/admin.vue
@@ -131,16 +131,23 @@
<el-descriptions-item label="项目名称">{{ orderDetail.projName }}</el-descriptions-item>
</el-descriptions>
</el-dialog>
+ <el-dialog top="2vh" :title="subTitle" fullscreen :visible.sync="productShow" width="60%">
+ <history v-if="isWhith==1"></history>
+ <plan v-else-if="isWhith==2"></plan>
+ <draw v-else-if="isWhith==3"></draw>
+ </el-dialog>
</div>
</template>
-
<script>
- import Etable from "../../components/table.vue";
+ import Etable from "@/components/table.vue";
+ import history from './history.vue';
+ import plan from './plan.vue';
+ import draw from './draw.vue';
import {orderInit,orderDtl} from "@/api/credit";
import uploadImg from "@/components/upload.vue";
export default {
name: "order",
- components: { Etable,uploadImg },
+ components: { Etable,uploadImg,history,plan,draw },
data() {
return {
formInline: {status:"all"},
@@ -205,7 +212,7 @@
{
lable: "操作",
align: "center",
- width: "200",
+ width: "300",
fixed: "right",
render: (h, scope) => {
return h("div", [
@@ -229,6 +236,76 @@
},
},
"查看详情"
+ ),
+ h(
+ "el-button",
+ {
+ props:{
+ type:'text'
+ },
+ style: {
+ // display: this.filterBtnById(150101)
+ // ? "inline-block"
+ // : "none",
+ },
+ on: {
+ click: () => {
+
+ this.isWhith = 1;
+ this.productShow = true;
+ // this.title = '订单详情';
+ // let {orderId} = scope.row;
+ // this.getProductDetail(orderId);
+ },
+ },
+ },
+ "支付历史"
+ ),
+ h(
+ "el-button",
+ {
+ props:{
+ type:'text'
+ },
+ style: {
+ // display: this.filterBtnById(150101)
+ // ? "inline-block"
+ // : "none",
+ },
+ on: {
+ click: () => {
+ this.isWhith = 2;
+ this.productShow = true;
+ // this.title = '订单详情';
+ // let {orderId} = scope.row;
+ // this.getProductDetail(orderId);
+ },
+ },
+ },
+ "扣款计划"
+ ),
+ h(
+ "el-button",
+ {
+ props:{
+ type:'text'
+ },
+ style: {
+ // display: this.filterBtnById(150101)
+ // ? "inline-block"
+ // : "none",
+ },
+ on: {
+ click: () => {
+ this.isWhith = 3;
+ this.productShow = true;
+ // this.title = '订单详情';
+ // let {orderId} = scope.row;
+ // this.getProductDetail(orderId);
+ },
+ },
+ },
+ "权益领取"
)
]);
},
@@ -236,10 +313,23 @@
],
relustObj: {},
addProd:false,
+ productShow:false,
createdTime:[],
title:"新增项目",
orderDetail:{},
- exportExcelList:[]
+ exportExcelList:[],
+ isWhith:''
+ }
+ },
+ computed:{
+ subTitle(){
+ let text ='支付历史';
+ if(this.isWhith==2){
+ text = '扣款计划'
+ }else if(this.isWhith==3){
+ text = '权益领取'
+ }
+ return text;
}
},
watch:{
@@ -249,7 +339,15 @@
}
},
deep: true
- }
+ },
+ productShow:{
+ handler: function(val) {
+ if(!val){
+ this.isWhith ='';
+ }
+ },
+ deep: true
+ },
},
//生命周期 - 创建完成(可以访问当前this实例)
created() {
diff --git a/src/views/qyp-project-order/draw.vue b/src/views/qyp-project-order/draw.vue
index 8a43b3f..05e4283 100644
--- a/src/views/qyp-project-order/draw.vue
+++ b/src/views/qyp-project-order/draw.vue
@@ -1,32 +1,105 @@
+
<!--
* @Author: zhaoxiaoqiang 287285524@qq.com
* @Date: 2023-08-24 15:16:23
* @LastEditors: zhaoxiaoqiang 287285524@qq.com
- * @LastEditTime: 2023-08-24 15:17:26
+ * @LastEditTime: 2023-09-01 11:22:22
* @FilePath: \qyp_plat\src\views\qyp-project-order\history.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
<template>
<div>
-
+ <el-form
+ :model="formInline"
+ inline
+ label-width="120px"
+ class="form-flex"
+ size="small"
+ >
+ <div style="width: 90%">
+ <el-form-item label="权益账号:">
+ <el-input
+ v-model.trim="formInline.mblNo"
+ style="width: 240px"
+ @keyup.native="keyupEvent($event)"
+ type="tel"
+ clearable
+ placeholder="请输入"
+ ></el-input>
+ </el-form-item>
+ <el-form-item label="权益领取时间:">
+ <el-date-picker
+ v-model="createdTime"
+ style="width: 240px"
+ format="yyyy-MM-dd"
+ value-format="yyyy-MM-dd"
+ type="daterange"
+ range-separator="-"
+ start-placeholder="开始日期"
+ end-placeholder="结束日期"
+ >
+ </el-date-picker>
+ </el-form-item>
+ </div>
+ <el-form-item style="text-align: right;">
+ <el-button type="primary" style="margin-left: 10px;margin-bottom: 8px;" @click="onSearch">查 询</el-button>
+ </el-form-item>
+ </el-form>
+ <Etable
+ hasIndex
+ :searchData='searchData'
+ httpUrl="useList"
+ :columns="columns"
+ :exportUrl="{
+ url: '/qyp/order/useExport',
+ powerId: '',
+ name: '权益领取',
+ }"
+ >
+ </Etable>
</div>
</template>
<script>
+import Etable from "@/components/table.vue";
export default {
+ components: { Etable },
data() {
return {
-
- };
+ columns:[
+ {
+ lable: "权益账号",
+ prop: "mblNo",
+ align: "center",
+ },
+ {
+ lable: "权益领取时间",
+ prop: "creTime",
+ align: "center",
+ },
+ {
+ lable: "权益名称",
+ prop: "productName",
+ align: "center",
+ }
+ ],
+ formInline:{},
+ searchData:{},
+ createdTime:[]
+ }
},
- created() {
-
- },
- mounted() {
-
- },
- methods: {
-
+ methods:{
+ onSearch(){
+ this.formInline.creStartTime = this.createdTime[0]?this.createdTime[0]:null;
+ this.formInline.creEndTime = this.createdTime[1]?this.createdTime[1]:null;
+ let objForm = JSON.parse(JSON.stringify(this.formInline));
+ for (let key in objForm) {
+ if (objForm[key] === "all"||objForm[key] === null||objForm[key] === '') {
+ delete objForm[key];
+ }
+ }
+ this.searchData = { ...objForm };
+ }
}
};
</script>
diff --git a/src/views/qyp-project-order/history.vue b/src/views/qyp-project-order/history.vue
index bbe31b8..c8a0d42 100644
--- a/src/views/qyp-project-order/history.vue
+++ b/src/views/qyp-project-order/history.vue
@@ -3,31 +3,273 @@
* @Author: zhaoxiaoqiang 287285524@qq.com
* @Date: 2023-08-24 15:16:23
* @LastEditors: zhaoxiaoqiang 287285524@qq.com
- * @LastEditTime: 2023-08-31 08:58:17
+ * @LastEditTime: 2023-09-01 11:19:29
* @FilePath: \qyp_plat\src\views\qyp-project-order\history.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
<template>
<div>
- 12121212
+ <el-form
+ :model="formInline"
+ inline
+ label-width="100px"
+ class="form-flex"
+ size="small"
+ >
+ <div style="width: 90%">
+ <el-form-item label="支付订单号:">
+ <el-input
+ v-model.trim="formInline.tradeNo"
+ style="width: 240px"
+ @keyup.native="keyupEvent($event)"
+ type="tel"
+ clearable
+ placeholder="请输入"
+ ></el-input>
+ </el-form-item>
+ <el-form-item label="支付时间:">
+ <el-date-picker
+ v-model="createdTime"
+ style="width: 240px"
+ format="yyyy-MM-dd"
+ value-format="yyyy-MM-dd"
+ type="daterange"
+ range-separator="-"
+ start-placeholder="开始日期"
+ end-placeholder="结束日期"
+ >
+ </el-date-picker>
+ </el-form-item>
+ <el-form-item label="支付状态:">
+ <el-select
+ v-model="formInline.payStatus"
+ style="width:240px"
+ clearable
+ placeholder="请选择"
+ >
+ <el-option label="全部" value="all"></el-option>
+ <el-option
+ v-for="item in relustObj.payStatusList"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ ></el-option>
+ </el-select>
+ </el-form-item>
+ </div>
+ <el-form-item style="text-align: right;">
+ <el-button type="primary" style="margin-left: 10px;margin-bottom: 8px;" @click="onSearch">查 询</el-button>
+ </el-form-item>
+ </el-form>
+ <Etable
+ hasIndex
+ httpUrl="payList"
+ :columns="columns"
+ :searchData="searchData"
+ :exportUrl="{
+ url: '/qyp/order/payExport',
+ powerId: '',
+ name: '支付历史',
+ }"
+ >
+ </Etable>
+ <el-dialog top="2vh" title="退款" append-to-body :visible.sync="productShow" width="40%">
+ <el-form :model="ruleForm" :rules="rules" ref="ruleForm" size="small" label-width="100px" class="demo-ruleForm">
+ <el-form-item label="退款类型" prop="refundType">
+ <el-radio-group v-model="ruleForm.refundType">
+ <el-radio v-for="item in relustObj.refundTypeList" :disabled="!item.selected" :key="item.code" :label="item.code">{{ item.name }}</el-radio>
+ </el-radio-group>
+ </el-form-item>
+ <el-form-item label="退款金额" prop="refundAmount">
+ <el-input v-model="ruleForm.refundAmount" placeholder="请输入退款金额"></el-input>
+ </el-form-item>
+ <el-form-item style="text-align: right;">
+ <el-button @click="resetForm('ruleForm')">取消</el-button>
+ <el-button type="primary" @click="submitForm('ruleForm')">确认</el-button>
+ </el-form-item>
+ </el-form>
+ </el-dialog>
</div>
</template>
<script>
+import {payInit,refund} from "@/api/credit";
+import Etable from "@/components/table.vue";
export default {
+ components: { Etable },
data() {
return {
+ productShow:false,
+ formInline:{},
+ searchData:{},
+ createdTime:[],
+ relustObj:{},
+ columns:[
+ {
+ lable: "支付订单号",
+ prop: "tradeNo",
+ align: "center",
+ width: "300",
+ },
+ {
+ lable: "支付时间",
+ prop: "payTime",
+ align: "center",
+ width: "180",
+ },
+ {
+ lable: "支付状态",
+ prop: "payStatusStr",
+ align: "center",
+ width: "180",
+ },
+ {
+ lable: "支付金额",
+ prop: "payAmount",
+ align: "center",
+ width: "180",
+ },
+ {
+ lable: "停车券退款状态",
+ prop: "tcjRefundStatusStr",
+ align: "center",
+ width: "180",
+ },
+ {
+ lable: "停车券退款金额",
+ prop: "tcjRefundAmount",
+ align: "center",
+ width: "180",
+ },
+ {
+ lable: "停车券退款时间",
+ prop: "tcjRefundTime",
+ align: "center",
+ width: "180",
+ },
+ {
+ lable: "权益会员退款状态",
+ prop: "refundStatusStr",
+ align: "center",
+ width: "180",
+ },
+ {
+ lable: "权益会员退款金额",
+ prop: "refundAmount",
+ align: "center",
+ width: "180",
+ },
+ {
+ lable: "权益会员退款时间",
+ prop: "refundTime",
+ align: "center",
+ width: "180",
+ },
+ {
+ lable: "操作",
+ align: "center",
+ width: "200",
+ fixed: "right",
+ render: (h, scope) => {
+ return h("div", [
+ h(
+ "el-button",
+ {
+ props:{
+ type:'text',
+ disabled:!scope.row.canRefund&&!scope.row.tcjCanRefund
+ },
+ style: {
+ // display: this.filterBtnById(150101)
+ // ? "inline-block"
+ // : "none",
+ },
+ on: {
+ click: () => {
+ let {canRefund,tcjCanRefund,payId} = scope.row;
+ this.ruleForm.payId = payId;
+ this.relustObj.refundTypeList.forEach(element => {
+ if(element.code==1){
+ element.selected = canRefund;
+ }
+ if(element.code==2){
+ element.selected = tcjCanRefund;
+ }
+ });
+ this.productShow = true;
+ },
+ },
+ },
+ "退款"
+ )
+ ]);
+ },
+ },
+ ],
+ ruleForm:{},
+ rules:{
+ refundType: [
+ { required: true, message: '请选择退款类型', trigger: 'change' }
+ ],
+ refundAmount: [{ required: true, message: '请输入退款金额', trigger: 'blur' }]
+ }
};
},
- created() {
-
+ watch:{
+ productShow:{
+ handler: function(val) {
+ if(!val){
+ this.$refs['ruleForm'].resetFields();
+ }
+ },
+ deep: true
+ }
},
- mounted() {
-
+ created() {
+ this.initSerch();
},
methods: {
-
+ keyupEvent(e) {
+ //只能输入整数
+ e.target.value = e.target.value.replace(/[^\d]/g, "");
+ },
+ initSerch() {
+ payInit().then(({ body }) => {
+ this.relustObj = body;
+ });
+ },
+ onSearch() {
+ this.formInline.payStartTime = this.createdTime[0]?this.createdTime[0]:null;
+ this.formInline.payEndTime = this.createdTime[1]?this.createdTime[1]:null;
+ let objForm = JSON.parse(JSON.stringify(this.formInline));
+ for (let key in objForm) {
+ if (objForm[key] === "all"||objForm[key] === null||objForm[key] === '') {
+ delete objForm[key];
+ }
+ }
+ this.searchData = { ...objForm };
+ },
+ submitForm(formName) {
+ this.$refs[formName].validate((valid) => {
+ if (valid) {
+ refund(this.ruleForm).then(({body})=>{
+ this.$message.success("退款成功");
+ this.onSearch();
+ this.productShow = false;
+ }).catch(err=>{
+ this.productShow = false;
+ })
+ } else {
+ console.log('error submit!!');
+ return false;
+ }
+ });
+ },
+ resetForm(formName) {
+ this.$refs[formName].resetFields();
+ this.productShow = false;
+ }
}
};
</script>
diff --git a/src/views/qyp-project-order/plan.vue b/src/views/qyp-project-order/plan.vue
index 44775ce..0645fbf 100644
--- a/src/views/qyp-project-order/plan.vue
+++ b/src/views/qyp-project-order/plan.vue
@@ -1,33 +1,53 @@
+
<!--
* @Author: zhaoxiaoqiang 287285524@qq.com
* @Date: 2023-08-24 15:16:23
* @LastEditors: zhaoxiaoqiang 287285524@qq.com
- * @LastEditTime: 2023-08-24 15:17:08
+ * @LastEditTime: 2023-09-01 10:31:52
* @FilePath: \qyp_plat\src\views\qyp-project-order\history.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
<template>
<div>
-
+ <Etable
+ hasIndex
+ httpUrl="payPlanList"
+ :columns="columns"
+ :exportUrl="{
+ url: '/qyp/order/payPlanExport',
+ powerId: '',
+ name: '扣款计划',
+ }"
+ >
+ </Etable>
</div>
</template>
<script>
+import Etable from "@/components/table.vue";
export default {
+ components: { Etable },
data() {
return {
-
+ columns:[
+ {
+ lable: "扣款次数",
+ prop: "term",
+ align: "center",
+ },
+ {
+ lable: "扣款日期",
+ prop: "deductTime",
+ align: "center",
+ },
+ {
+ lable: "扣款金额",
+ prop: "payAmt",
+ align: "center",
+ }
+ ]
};
},
- created() {
-
- },
- mounted() {
-
- },
- methods: {
-
- }
};
</script>
--
Gitblit v1.8.0