基本配置修改 优化

This commit is contained in:
lizhenhua 2025-12-02 10:48:29 +08:00
parent ae396e22df
commit 540a487d2d
2 changed files with 199 additions and 66 deletions

View File

@ -2,24 +2,21 @@
<div class="app-container"> <div class="app-container">
<!-- 查询条件 --> <!-- 查询条件 -->
<el-form :inline="true" :model="queryParams" class="demo-form-inline" style="display: flex; align-items: center; flex-wrap: wrap;"> <el-form :inline="true" :model="queryParams" class="demo-form-inline" style="display: flex; align-items: center; flex-wrap: wrap;">
<el-form-item label="支付开始时间"> <el-form-item label="日期时间">
<el-date-picker <el-date-picker
v-model="queryParams.startPayTime" v-model="dateRange"
type="datetime" type="daterange"
placeholder="选择开始时间" align="right"
value-format="yyyy-MM-dd HH:mm:ss" unlink-panels
clearable range-separator="至"
/> start-placeholder="开始日期"
</el-form-item> end-placeholder="结束日期"
<el-form-item label="支付结束时间"> format="yyyy-MM-dd"
<el-date-picker style="width: 340px"
v-model="queryParams.endPayTime" :default-time="['00:00:00', '23:59:59']"
type="datetime" :picker-options="pickerOptions"
placeholder="选择结束时间" ></el-date-picker>
value-format="yyyy-MM-dd HH:mm:ss" <el-button type="primary" @click="handleQuery" style="margin-left: 8px;">查询</el-button>
clearable
/>
<el-button type="primary" @click="handleQuery">查询</el-button>
<el-button type="success" @click="exportExcel" style="margin-left: 8px;">导出</el-button> <el-button type="success" @click="exportExcel" style="margin-left: 8px;">导出</el-button>
</el-form-item> </el-form-item>
<!-- 查询按钮和合计在同一行 --> <!-- 查询按钮和合计在同一行 -->
@ -208,19 +205,12 @@ import { saveAs } from "file-saver";
export default { export default {
name: "CanteenRecord", name: "CanteenRecord",
data() { data() {
const today = new Date();
const startOfDay = `${today.getFullYear()}-${String(today.getMonth() + 1).padStart(2, "0")}-${String(
today.getDate()
).padStart(2, "0")} 00:00:00`;
const endOfDay = `${today.getFullYear()}-${String(today.getMonth() + 1).padStart(2, "0")}-${String(
today.getDate()
).padStart(2, "0")} 23:59:59`;
return { return {
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
startPayTime: startOfDay, startPayTime: '',
endPayTime: endOfDay, endPayTime: '',
orgId: null, orgId: null,
}, },
detailType: "", detailType: "",
@ -237,9 +227,33 @@ export default {
pageNum: 1, pageNum: 1,
pageSize: 20, pageSize: 20,
}, },
dateRange: [],
pickerOptions: {
shortcuts: [
{
text: '最近一周',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit('pick', [start, end]);
}
},
{
text: '最近一个月',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit('pick', [start, end]);
}
},
]
},
}; };
}, },
created() { created() {
this.dateRange = this.defaultDateRange();
this.getList(); this.getList();
}, },
computed: { computed: {
@ -264,6 +278,13 @@ export default {
} }
}, },
methods: { methods: {
//
defaultDateRange() {
const today = new Date();
const start = new Date(today.getFullYear(), today.getMonth(), today.getDate());
const end = new Date(today.getFullYear(), today.getMonth(), today.getDate());
return [start, end];
},
exportExcel() { exportExcel() {
if (!this.tableData || this.tableData.length === 0) { if (!this.tableData || this.tableData.length === 0) {
this.$message.warning("暂无数据可导出"); this.$message.warning("暂无数据可导出");
@ -462,25 +483,37 @@ export default {
/** 查询主表 */ /** 查询主表 */
getList() { getList() {
this.loading = true; // this.loading = true; //
//
let startTime = '';
let endTime = '';
if (this.dateRange && this.dateRange.length === 2) {
const start = new Date(this.dateRange[0]);
const end = new Date(this.dateRange[1]);
startTime = `${start.getFullYear()}-${String(start.getMonth() + 1).padStart(2, "0")}-${String(
start.getDate()
).padStart(2, "0")} 00:00:00`;
endTime = `${end.getFullYear()}-${String(end.getMonth() + 1).padStart(2, "0")}-${String(
end.getDate()
).padStart(2, "0")} 23:59:59`;
}
this.queryParams.startPayTime = startTime;
this.queryParams.endPayTime = endTime;
listCanteenRecord(this.queryParams).then((res) => { listCanteenRecord(this.queryParams).then((res) => {
this.tableData = res|| []; this.tableData = res|| [];
this.loading = false; this.loading = false;
}); });
}, },
handleQuery() { handleQuery() {
if (
this.queryParams.startPayTime &&
this.queryParams.endPayTime &&
this.queryParams.endPayTime < this.queryParams.startPayTime
) {
this.$message.error("结束时间不能早于开始时间");
return;
}
this.queryParams.pageNum = 1; this.queryParams.pageNum = 1;
this.getList(); this.getList();
}, },
resetQuery() { resetQuery() {
this.queryParams = { pageNum: 1, pageSize: 10, startPayTime: null, endPayTime: null, orgId: null }; this.queryParams = { pageNum: 1, pageSize: 10, startPayTime: '', endPayTime: '', orgId: null };
this.dateRange = this.defaultDateRange();
this.getList(); this.getList();
}, },
/** 查看详情 */ /** 查看详情 */
@ -522,13 +555,28 @@ export default {
}, },
/** 获取详情分页数据 */ /** 获取详情分页数据 */
getDetailList(status) { getDetailList(status) {
//
let startTime = '';
let endTime = '';
if (this.dateRange && this.dateRange.length === 2) {
const start = new Date(this.dateRange[0]);
const end = new Date(this.dateRange[1]);
startTime = `${start.getFullYear()}-${String(start.getMonth() + 1).padStart(2, "0")}-${String(
start.getDate()
).padStart(2, "0")} 00:00:00`;
endTime = `${end.getFullYear()}-${String(end.getMonth() + 1).padStart(2, "0")}-${String(
end.getDate()
).padStart(2, "0")} 23:59:59`;
}
const params = { const params = {
conSource: status, conSource: status,
orgName: this.detail.orgName, orgName: this.detail.orgName,
pageNum: this.detailParams.pageNum, pageNum: this.detailParams.pageNum,
pageSize: this.detailParams.pageSize, pageSize: this.detailParams.pageSize,
startPayTime: this.queryParams.startPayTime, startPayTime: startTime,
endPayTime: this.queryParams.endPayTime, endPayTime: endTime,
}; };
getDetailList(params).then((res) => { getDetailList(params).then((res) => {
this.detailData = res || []; this.detailData = res || [];

View File

@ -28,23 +28,20 @@
<el-form-item label="用户姓名"> <el-form-item label="用户姓名">
<el-input v-model="queryParams.custName" placeholder="请输入用户姓名" clearable /> <el-input v-model="queryParams.custName" placeholder="请输入用户姓名" clearable />
</el-form-item> </el-form-item>
<el-form-item label="支付开始时间"> <el-form-item label="日期时间">
<el-date-picker <el-date-picker
v-model="queryParams.startPayTime" v-model="dateRange"
type="datetime" type="daterange"
placeholder="选择开始时间" align="right"
value-format="yyyy-MM-dd HH:mm:ss" unlink-panels
clearable range-separator="至"
/> start-placeholder="开始日期"
</el-form-item> end-placeholder="结束日期"
<el-form-item label="支付结束时间"> format="yyyy-MM-dd"
<el-date-picker style="width: 340px"
v-model="queryParams.endPayTime" :default-time="['00:00:00', '23:59:59']"
type="datetime" :picker-options="pickerOptions"
placeholder="选择结束时间" ></el-date-picker>
value-format="yyyy-MM-dd HH:mm:ss"
clearable
/>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" @click="handleQuery">查询</el-button> <el-button type="primary" @click="handleQuery">查询</el-button>
@ -171,19 +168,39 @@ import ExcelJS from "exceljs";
import { saveAs } from "file-saver"; import { saveAs } from "file-saver";
export default { export default {
data() { data() {
const today = new Date();
const startOfDay = `${today.getFullYear()}-${String(today.getMonth() + 1).padStart(2, "0")}-${String(today.getDate()).padStart(2,"0")} 00:00:00`;
const endOfDay = `${today.getFullYear()}-${String(today.getMonth() + 1).padStart(2,"0")}-${String(today.getDate()).padStart(2,"0")} 23:59:59`;
return { return {
totalConsume: 0, // totalConsume: 0, //
totalRefund: 0, // 退 totalRefund: 0, // 退
selectedOrg: [], // selectedOrg: [], //
orgOptions:[], orgOptions:[],
dateRange: [],
pickerOptions: {
shortcuts: [
{
text: '最近一周',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit('pick', [start, end]);
}
},
{
text: '最近一个月',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit('pick', [start, end]);
}
},
]
},
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
startPayTime: startOfDay, startPayTime: '',
endPayTime: endOfDay, endPayTime: '',
orgName: "", orgName: "",
}, },
detailVisible: false, detailVisible: false,
@ -199,10 +216,17 @@ export default {
}; };
}, },
created() { created() {
this.dateRange = this.defaultDateRange();
this.getList(); this.getList();
this.getTree(); this.getTree();
}, },
methods: { methods: {
//
defaultDateRange() {
const end = new Date();
const start = new Date();
return [start, end];
},
getTree(){ getTree(){
getTree().then(res => { getTree().then(res => {
this.orgOptions = res; this.orgOptions = res;
@ -261,10 +285,6 @@ export default {
tableCellStyle() { return { textAlign: "center" }; }, tableCellStyle() { return { textAlign: "center" }; },
handleQuery() { handleQuery() {
if(this.queryParams.startPayTime && this.queryParams.endPayTime && this.queryParams.endPayTime < this.queryParams.startPayTime){
this.$message.error("结束时间不能早于开始时间");
return;
}
this.queryParams.pageNum = 1; this.queryParams.pageNum = 1;
this.getList(); this.getList();
}, },
@ -281,8 +301,31 @@ export default {
}, },
getList() { getList() {
this.loading = true; this.loading = true;
// orgId
this.queryParams.selectedOrg = this.getSelectedOrgIds(); // id //
let startTime = '';
let endTime = '';
if (this.dateRange && this.dateRange.length === 2) {
const start = this.dateRange[0];
const end = this.dateRange[1];
const formatDate = d => {
const date = new Date(d);
const y = date.getFullYear();
const m = String(date.getMonth() + 1).padStart(2, '0');
const day = String(date.getDate()).padStart(2, '0');
return `${y}-${m}-${day}`;
};
startTime = formatDate(start) + ' 00:00:00';
endTime = formatDate(end) + ' 23:59:59';
}
// orgId
this.queryParams.selectedOrg = this.getSelectedOrgIds(); // id
this.queryParams.startPayTime = startTime;
this.queryParams.endPayTime = endTime;
// queryParams.orgPath = this.selectedOrg.join(','); // queryParams.orgPath = this.selectedOrg.join(',');
peoplelistRecord(this.queryParams).then(res => { peoplelistRecord(this.queryParams).then(res => {
this.tableData = res.rows || []; this.tableData = res.rows || [];
@ -296,8 +339,30 @@ export default {
// ID // ID
this.queryParams.selectedOrg = this.getSelectedOrgIds(); this.queryParams.selectedOrg = this.getSelectedOrgIds();
//
let startTime = '';
let endTime = '';
if (this.dateRange && this.dateRange.length === 2) {
const start = this.dateRange[0];
const end = this.dateRange[1];
const formatDate = d => {
const date = new Date(d);
const y = date.getFullYear();
const m = String(date.getMonth() + 1).padStart(2, '0');
const day = String(date.getDate()).padStart(2, '0');
return `${y}-${m}-${day}`;
};
startTime = formatDate(start) + ' 00:00:00';
endTime = formatDate(end) + ' 23:59:59';
}
// encodeURIComponent // encodeURIComponent
const params = { ...this.queryParams }; const params = { ...this.queryParams };
params.startPayTime = startTime;
params.endPayTime = endTime;
if (params.custName) { if (params.custName) {
params.custName = encodeURIComponent(params.custName); // params.custName = encodeURIComponent(params.custName); //
} }
@ -317,12 +382,32 @@ export default {
}, },
getDetailList() { getDetailList() {
//
let startTime = '';
let endTime = '';
if (this.dateRange && this.dateRange.length === 2) {
const start = this.dateRange[0];
const end = this.dateRange[1];
const formatDate = d => {
const date = new Date(d);
const y = date.getFullYear();
const m = String(date.getMonth() + 1).padStart(2, '0');
const day = String(date.getDate()).padStart(2, '0');
return `${y}-${m}-${day}`;
};
startTime = formatDate(start) + ' 00:00:00';
endTime = formatDate(end) + ' 23:59:59';
}
const params = { const params = {
orgName: this.detail.orgName, orgName: this.detail.orgName,
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
startPayTime: this.queryParams.startPayTime, startPayTime: startTime,
endPayTime: this.queryParams.endPayTime, endPayTime: endTime,
}; };
getDetailList(params).then(res => { getDetailList(params).then(res => {
this.detailData = res.list || []; this.detailData = res.list || [];