初始化

This commit is contained in:
hezhidong
2024-01-30 09:30:56 +08:00
parent a38cfb023d
commit ff582f261b
213 changed files with 37514 additions and 4 deletions
@@ -0,0 +1,55 @@
import request from '../../../utils/request'
// 新增订单
export function postAddOrders (data) {
return request({
url: '/schoolpay/orders/add',
method: 'post',
data,
});
}
// get获取列表
export function getOrders (params) {
return request({
url: '/schoolpay/orders/get',
method: 'get',
params
});
}
// 删除订单
export function putOrders (id) {
return request({
url: '/schoolpay/orders/delete',
method: 'put',
params:{
id
}
});
}
// 查看订单缴费详情
export function getUserOrders (orderId) {
return request({
url: '/schoolpay/userOrders/get',
method: 'get',
params:{
orderId
}
});
}
// 查看订单缴费详情
export function getUserOrders1 (params) {
return request({
url: '/schoolpay/userOrders/get',
method: 'get',
params
});
}
// 查看缴费标题字典
export function getSubject () {
return request({
url: '/schoolpay/orders/getSub',
method: 'get',
});
}
@@ -0,0 +1,36 @@
<template>
<div>
<el-button @click="resetClick" type="info" size="mini" icon="iconfont icon-biaodan"
>重置</el-button
>
<el-button @click="searchClick" type="warning" size="mini" icon="el-icon-search"
>搜索</el-button
>
</div>
</template>
<script>
export default {
name: "CommonHead",
data() {
return {
searchData: "",
};
},
methods: {
newlyClick() {
// 在此处调用父组件传入的方法叫父组件做事情
this.$emit("newly-data");
},
resetClick() {
this.$emit("reset-data");
},
searchClick() {
this.$emit("search-data", this.searchData);
},
},
};
</script>
<style lang="scss" scoped></style>
@@ -0,0 +1,94 @@
<template>
<el-card class="box-card">
<el-table :data="tableData" style="width: 100%" height="650" size="mini">
<el-table-column
v-if="column.label !== 'id'"
v-for="(column, index) in tableColumns"
:key="index"
:prop="column.prop"
:label="column.label"
width="auto"
></el-table-column>
</el-table>
</el-card>
</template>
<script>
export default {
props: {
columns: {
type: Array,
required: true,
},
data: {
type: Array,
required: true,
},
deleteFunc: {
type: Function,
default: () => {},
},
editFunc: {
type: Function,
default: () => {},
},
detailFunc: {
type: Function,
default: () => {},
},
},
name: "CommonTables",
data() {
return {};
},
methods: {
// 删除事件
handleDelete(row) {
console.log(row);
// 调用触发父组件的函数叫他发请求删除元素,重新获取数据 id
// this.deleteFunc(id);
this.deleteFunc(row);
const index = this.tableData.indexOf(row); // 找到要删除的数据项在数组中的索引
this.tableData.splice(index, 1); // 使用splice方法从数组中删除该数据项
},
// 编辑事件
handleEdit(row) {
console.log(row);
this.editFunc(row);
},
// 详情事件
handleDetail(row) {
// console.log(row);
this.detailFunc(row);
}
},
computed: {
tableColumns() {
// 处理传进来的列配置,返回符合 Element UI 表格要求的配置
return this.columns.map((column) => {
return {
label: column.label,
prop: column.prop,
};
});
},
tableData() {
// 处理传进来的数据,返回符合 Element UI 表格要求的数据
return this.data.map((rowData) => {
let row = {};
for (let column of this.columns) {
row[column.prop] = rowData[column.prop];
}
return row;
});
},
},
};
</script>
<style lang="scss" scoped>
.s {
color: red;
}
</style>
@@ -0,0 +1,333 @@
<template>
<div>
<!-- 搜索 -->
<div class="form-adapt-container">
<el-card shadow="hover" header="">
<CommonHead @newly-data="fetchData" @reset-data="reset" @search-data="search" />
<el-form :model="form" size="small" label-width="100px" class="mt35 mb35">
<el-row :gutter="35">
<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
<el-form-item label="缴费标题">
<el-select
v-model="query.orderId"
placeholder="请选择缴费标题"
clearable
class="w100"
filterable
>
<el-option v-for="(item, index) in subjectArr" :key="index" :label="item.subject" :value="item.id"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
<el-form-item label="缴费金额">
<el-input v-model="query.totalAmount" placeholder="请输入缴费金额" />
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
<el-form-item label="缴费时间">
<el-date-picker
v-model="query.orderTime"
type="date"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="选择缴费时间">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
<el-form-item label="手机号码">
<el-input type="number" v-model="query.mobile" placeholder="请输入手机号码" />
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
<el-form-item label="用户姓名">
<el-input v-model="query.name" placeholder="请输入用户姓名" />
</el-form-item>
</el-col>
<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" class="mb20">
<el-form-item label="支付宝订单号">
<el-input v-model="query.tradeNo" placeholder="请输入支付宝订单号" />
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-card>
</div>
<!-- 表格 -->
<CommonTables
:delete-func="deleteData"
:edit-func="editData"
:columns="columns"
:data="data"
></CommonTables>
<Pagination
:total="total"
v-show="total > 0"
:pageNum="query.pageNum"
:pageSize="query.pageSize"
@clickCurrent="onClickCurrent"
@clickSize="onClickSize"
/>
<!-- 创建缴费 -->
<el-dialog :title="title" :visible.sync="isVisible" width="30%">
<el-form ref="form" :model="form" :rules="rules" label-width="80px" class="demo-ruleForm">
<el-form-item label="缴费标题" prop="subject">
<el-input size="mini" v-model="form.subject"></el-input>
</el-form-item>
<el-form-item label="缴费金额" prop="money">
<el-input size="mini" type="number" v-model="form.money"></el-input>
</el-form-item>
<el-form-item label="开始时间" prop="startTime">
<el-date-picker
v-model="form.startTime"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="选择开始时间">
</el-date-picker>
</el-form-item>
<el-form-item label="结束时间" prop="endTime" >
<el-date-picker
v-model="form.endTime"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="选择结束时间">
</el-date-picker>
</el-form-item>
<el-form-item label="缴费说明" prop="explain">
<el-input size="mini" v-model="form.explain"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button size="mini" @click="isVisible = false">取 消</el-button>
<el-button size="mini" type="primary" @click="onClickSubmit">确定</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { postAddOrders, getOrders, putOrders, getSubject, getUserOrders1 } from './api'
import CommonTables from './components/CommonTables.vue'
import CommonHead from './components/CommonHead.vue'
export default {
name: "CreatePayment",
data() {
return {
form: {
subject: null, // 缴费标题
money: null, // 金额
explain: null, // 缴费说明
startTime: null, // 开始时间
endTime: null, // 结束时间
},
columns: [
{
label: "id",
prop: "id",
},
{
label: "缴费标题",
prop: "subject",
},
{
label: "缴费说明",
prop: "explain",
},
{
label: "订单号",
prop: "outTradeNo",
},
{
label: "金额",
prop: "totalAmount",
},
{
label: "缴费时间",
prop: "orderTime",
},
{
label: "用户姓名",
prop: "name",
},
{
label: "手机号码",
prop: "mobile",
},
{
label: "支付宝订单号",
prop: "tradeNo",
},
{
label: "系统付款状态",
prop: "status",
},
{
label: "支付宝付款状态",
prop: "tradeStatus",
},
{
label: "系统付款金额",
prop: "buyerPayAmount",
},
],
data: [],
query: {
pageNum: 1,
pageSize: 10,
orderId: null,
totalAmount: null, // 缴费金额
orderTime: null, // 缴费时间
mobile: null, // 手机号码
name: null, // 用户姓名
tradeNo:null, // 支付宝订单号
},
total: 0, // 总页数
isVisible: false, // 弹出层
title: '新增', // 弹出层按钮
rules: {
subject: [
{ required: true, message: '请输入缴费标题', trigger: 'blur' },
],
money: [
{ required: true, message: '请输入缴费金额', trigger: 'blur' },
],
explain: [
{ required: true, message: '请输入缴费说明', trigger: 'blur' },
],
startTime: [
{ required: true, message: '请输入开始时间', trigger: 'blur' },
],
endTime: [
{ required: true, message: '请输入结束时间', trigger: 'blur' },
],
},
statusArr: ['待缴费', '缴费成功', '缴费失败'],
subjectArr: [], // 字典
}
},
components:{
CommonTables,
CommonHead
},
created(){
this.getList()
getSubject().then(res =>{
console.log(res)
this.subjectArr = res.data
})
},
methods:{
// 点击确定提交
onClickSubmit(){
console.log(this.form)
this.$refs['form'].validate((valid) => {
if (valid) {
let obj = { ...this.form }
let startTime = new Date(this.form.startTime)
let endTime = new Date(this.form.endTime)
obj.startTime = startTime
obj.endTime = endTime
console.log(startTime)
console.log(endTime)
postAddOrders(obj).then(res =>{
if(res.code == 200){
this.getList()
this.resetForm()
this.message()
this.isVisible = false;
}else{
this.message('新增失败', 'error')
}
})
}
})
},
// 点击新增
fetchData() {
this.isVisible = true;
this.title = '新增'
this.resetForm()
},
// 重置按钮
reset() {
console.log("按钮重置点击了");
this.query = {
pageNum: 1,
pageSize: 10,
}
this.getList()
},
// 重置表单
resetForm() {
this.form = {
money: null, // 金额
subject: null, // 缴费标题
explain: null, // 缴费说明
startTime: null, // 开始时间
endTime: null, // 结束时间
}
},
// 搜索按钮
search() {
this.getList()
},
// 获取数据
getList(){
getUserOrders1(this.query).then( res =>{
console.log(res)
this.data = res.data.map(item =>{
item.status = this.statusArr[item.status]
item.orderTime = this.formatDate(item.orderTime)
return item
})
this.total = res.total
})
},
// 删除
deleteData(item) {
console.log('------------------------------------------')
console.log(item)
// putOrders().then(res =>{
// })
},
// 编辑
editData() {
this.isVisible = true;
this.title = '修改'
this.resetForm()
},
// 点击切换页数
onClickCurrent(pageNum){
console.log( '点击切换页数' +pageNum)
this.query.pageNum = pageNum
this.getList()
},
// 点击了每页页数
onClickSize(pageSize){
this.pageSize = pageSize
this.query.pageSize = pageSize
this.getList()
console.log(pageSize)
},
message(message = '新增成功',type = 'success'){ // type类型 success成功 warning警告 error错误
if(type == 'success'){
this.$message({
message,
type
});
}
}
}
};
</script>
<style lang="scss" scoped></style>