1、大量页面调整

2、完善运力模块
3、完善规范、需求卡
This commit is contained in:
2026-07-31 01:32:41 +08:00
parent ccaca521d3
commit 81b2a3e99b
54 changed files with 5641 additions and 1965 deletions
+12 -4
View File
@@ -119,11 +119,16 @@ import { exportBlob } from '@/api/common';
import { downloadXls } from '@/utils/util';
import { openImportDialog } from '@/utils/import-excel';
import { getToken } from '@/utils/auth';
import { normalizeSearchRangeParams } from '@/utils/search-range';
import { mapGetters } from 'vuex';
import { excelOption, option } from '@/option/vehicle/accident-record';
import NProgress from 'nprogress';
import 'nprogress/nprogress.css';
const createTimeRangeMap = {
createTimeRange: ['createTimeStart', 'createTimeEnd'],
};
export default {
data() {
return {
@@ -388,9 +393,9 @@ export default {
this.onLoad(this.page);
},
searchChange(params, done) {
this.query = params;
this.query = this.buildQuery(params);
this.page.currentPage = 1;
this.onLoad(this.page, params);
this.onLoad(this.page);
done();
},
selectionChange(list) {
@@ -411,7 +416,7 @@ export default {
},
onLoad(page, params = {}) {
this.loading = true;
getList(page.currentPage, page.pageSize, { ...params, ...this.query })
getList(page.currentPage, page.pageSize, this.buildQuery(params))
.then(res => {
const data = res.data.data;
this.page.total = data.total;
@@ -446,11 +451,14 @@ export default {
},
buildExportParams() {
return {
...this.query,
...this.buildQuery(),
ids: this.ids,
[this.website.tokenHeader]: getToken(),
};
},
buildQuery(params = {}) {
return normalizeSearchRangeParams({ ...params, ...this.query }, createTimeRangeMap);
},
handleTemplate() {
exportBlob(
`/blade-transport/accident-record/export-template?${this.website.tokenHeader}=${getToken()}`
@@ -361,10 +361,15 @@ import { exportBlob } from '@/api/common';
import { downloadXls } from '@/utils/util';
import { openImportDialog } from '@/utils/import-excel';
import { getToken } from '@/utils/auth';
import { normalizeSearchRangeParams } from '@/utils/search-range';
import { mapGetters } from 'vuex';
import NProgress from 'nprogress';
import 'nprogress/nprogress.css';
const createTimeRangeMap = {
createTimeRange: ['createTimeStart', 'createTimeEnd'],
};
export default {
data() {
return {
@@ -409,7 +414,7 @@ export default {
searchShow: true,
searchMenuSpan: 24,
searchIcon: true,
searchIndex: 8,
searchIndex: 4,
searchMenuPosition: 'right',
border: true,
index: true,
@@ -459,20 +464,12 @@ export default {
minWidth: 160,
},
{
label: '创建开始时间',
prop: 'createTimeStart',
label: '创建时间',
prop: 'createTimeRange',
type: 'date',
format: 'YYYY-MM-DD 00:00:00',
valueFormat: 'YYYY-MM-DD 00:00:00',
hide: true,
display: false,
},
{
label: '创建结束时间',
prop: 'createTimeEnd',
type: 'date',
format: 'YYYY-MM-DD 23:59:59',
valueFormat: 'YYYY-MM-DD 23:59:59',
format: 'YYYY-MM-DD',
valueFormat: 'YYYY-MM-DD',
searchRange: true,
hide: true,
display: false,
},
@@ -795,9 +792,9 @@ export default {
this.onLoad(this.page);
},
searchChange(params, done) {
this.query = params;
this.query = this.buildQuery(params);
this.page.currentPage = 1;
this.onLoad(this.page, params);
this.onLoad(this.page);
done();
},
selectionChange(list) {
@@ -814,7 +811,7 @@ export default {
},
onLoad(page, params = {}) {
this.loading = true;
getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
getList(page.currentPage, page.pageSize, this.buildQuery(params)).then(res => {
const data = res.data.data;
this.page.total = data.total;
this.data = data.records;
@@ -845,11 +842,14 @@ export default {
},
buildExportParams() {
return {
...this.query,
...this.buildQuery(),
ids: this.ids,
[this.website.tokenHeader]: getToken(),
};
},
buildQuery(params = {}) {
return normalizeSearchRangeParams({ ...params, ...this.query }, createTimeRangeMap);
},
handleTemplate() {
exportBlob(
`/blade-transport/credit-score-quantification/export-template?${
+18 -19
View File
@@ -600,10 +600,15 @@ import { getDeptTree } from '@/api/system/dept';
import { exportBlob } from '@/api/common';
import { downloadXls } from '@/utils/util';
import { getToken } from '@/utils/auth';
import { normalizeSearchRangeParams } from '@/utils/search-range';
import { mapGetters } from 'vuex';
import NProgress from 'nprogress';
import 'nprogress/nprogress.css';
const createTimeRangeMap = {
createTimeRange: ['createTimeStart', 'createTimeEnd'],
};
const EditableTable = {
props: {
data: {
@@ -788,7 +793,7 @@ export default {
searchShow: true,
searchMenuSpan: 24,
searchIcon: true,
searchIndex: 8,
searchIndex: 4,
searchMenuPosition: 'right',
border: true,
index: true,
@@ -869,21 +874,12 @@ export default {
clearable: true,
},
{
label: '创建开始时间',
prop: 'createTimeStart',
label: '创建时间',
prop: 'createTimeRange',
type: 'date',
format: 'YYYY-MM-DD 00:00:00',
valueFormat: 'YYYY-MM-DD 00:00:00',
search: true,
hide: true,
display: false,
},
{
label: '创建结束时间',
prop: 'createTimeEnd',
type: 'date',
format: 'YYYY-MM-DD 23:59:59',
valueFormat: 'YYYY-MM-DD 23:59:59',
format: 'YYYY-MM-DD',
valueFormat: 'YYYY-MM-DD',
searchRange: true,
search: true,
hide: true,
display: false,
@@ -1377,9 +1373,9 @@ export default {
this.onLoad(this.page);
},
searchChange(params, done) {
this.query = params;
this.query = this.buildQuery(params);
this.page.currentPage = 1;
this.onLoad(this.page, params);
this.onLoad(this.page);
done();
},
selectionChange(list) {
@@ -1400,7 +1396,7 @@ export default {
},
onLoad(page, params = {}) {
this.loading = true;
getList(page.currentPage, page.pageSize, { ...params, ...this.query })
getList(page.currentPage, page.pageSize, this.buildQuery(params))
.then(res => {
const pageData = res.data.data;
this.page.total = pageData.total;
@@ -1432,11 +1428,14 @@ export default {
},
buildExportParams() {
return {
...this.query,
...this.buildQuery(),
ids: this.ids,
[this.website.tokenHeader]: getToken(),
};
},
buildQuery(params = {}) {
return normalizeSearchRangeParams({ ...params, ...this.query }, createTimeRangeMap);
},
},
};
</script>
+55 -46
View File
@@ -157,11 +157,16 @@ import { exportBlob } from '@/api/common';
import { downloadXls } from '@/utils/util';
import { openImportDialog } from '@/utils/import-excel';
import { getToken } from '@/utils/auth';
import { normalizeSearchRangeParams } from '@/utils/search-range';
import { mapGetters } from 'vuex';
import { excelOption, option } from '@/option/vehicle/insurance-record';
import NProgress from 'nprogress';
import 'nprogress/nprogress.css';
const createTimeRangeMap = {
createTimeRange: ['createTimeStart', 'createTimeEnd'],
};
export default {
data() {
return {
@@ -281,6 +286,9 @@ export default {
}
return values;
},
buildQuery(params = {}) {
return normalizeSearchRangeParams({ ...params, ...this.query }, createTimeRangeMap);
},
validateRow(row) {
if (row.startDate && row.endDate && row.endDate < row.startDate) {
this.$message.warning('结束日期不能早于开始日期');
@@ -386,9 +394,9 @@ export default {
this.onLoad(this.page);
},
searchChange(params, done) {
this.query = params;
this.query = this.buildQuery(params);
this.page.currentPage = 1;
this.onLoad(this.page, params);
this.onLoad(this.page);
done();
},
selectionChange(list) {
@@ -409,7 +417,8 @@ export default {
},
onLoad(page, params = {}) {
this.loading = true;
getList(page.currentPage, page.pageSize, { ...params, ...this.query })
const query = this.buildQuery(params);
getList(page.currentPage, page.pageSize, query)
.then(res => {
const data = res.data.data;
this.page.total = data.total;
@@ -444,7 +453,7 @@ export default {
},
buildExportParams() {
return {
...this.query,
...this.buildQuery(),
ids: this.ids,
[this.website.tokenHeader]: getToken(),
};
@@ -493,10 +502,10 @@ export default {
display: flex;
align-items: center;
justify-content: space-between;
min-height: 116px;
padding: 26px 46px 26px 32px;
border: 2px dashed #8b8b8b;
border-radius: 12px;
min-height: 88px;
padding: 16px 28px 16px 22px;
border: 1px dashed #8b8b8b;
border-radius: 8px;
background: #fff;
}
@@ -511,34 +520,34 @@ export default {
display: flex;
align-items: center;
justify-content: center;
width: 56px;
height: 56px;
margin-right: 30px;
width: 42px;
height: 42px;
margin-right: 18px;
color: #707070;
}
:global(.insurance-record-page__upload-icon::before),
:global(.insurance-record-page__upload-icon::after) {
position: absolute;
width: 14px;
height: 14px;
width: 11px;
height: 11px;
content: '';
}
:global(.insurance-record-page__upload-icon::before) {
top: 0;
left: 0;
border-top: 4px solid currentColor;
border-left: 4px solid currentColor;
border-radius: 4px 0 0;
border-top: 3px solid currentColor;
border-left: 3px solid currentColor;
border-radius: 3px 0 0;
}
:global(.insurance-record-page__upload-icon::after) {
right: 0;
bottom: 0;
border-right: 4px solid currentColor;
border-bottom: 4px solid currentColor;
border-radius: 0 0 4px;
border-right: 3px solid currentColor;
border-bottom: 3px solid currentColor;
border-radius: 0 0 3px;
}
:global(.insurance-record-page__upload-card) {
@@ -546,10 +555,10 @@ export default {
display: flex;
align-items: center;
justify-content: center;
width: 36px;
height: 28px;
border: 4px solid currentColor;
border-radius: 4px;
width: 28px;
height: 22px;
border: 3px solid currentColor;
border-radius: 3px;
}
:global(.insurance-record-page__upload-card::before),
@@ -559,38 +568,38 @@ export default {
}
:global(.insurance-record-page__upload-card::before) {
top: 7px;
left: 9px;
width: 8px;
height: 8px;
border: 3px solid currentColor;
top: 5px;
left: 7px;
width: 6px;
height: 6px;
border: 2px solid currentColor;
border-radius: 2px;
}
:global(.insurance-record-page__upload-card::after) {
top: 8px;
right: 7px;
width: 8px;
height: 3px;
top: 6px;
right: 5px;
width: 6px;
height: 2px;
background: currentColor;
box-shadow: 0 8px 0 currentColor;
box-shadow: 0 6px 0 currentColor;
}
:global(.insurance-record-page__upload-card span) {
position: absolute;
right: 7px;
bottom: 5px;
width: 10px;
height: 3px;
right: 5px;
bottom: 4px;
width: 8px;
height: 2px;
background: currentColor;
}
:global(.insurance-record-page__upload-text) {
display: flex;
flex-direction: column;
gap: 8px;
gap: 4px;
color: #303133;
font-size: 20px;
font-size: 16px;
line-height: 1.25;
}
@@ -605,7 +614,7 @@ export default {
:global(.insurance-record-page__upload-action) {
flex: 0 0 auto;
margin-left: 24px;
margin-left: 18px;
}
:global(.insurance-record-page__upload-action .el-upload) {
@@ -613,10 +622,10 @@ export default {
}
:global(.insurance-record-page__upload-button) {
min-width: 156px;
height: 58px;
border-radius: 8px;
font-size: 20px;
min-width: 112px;
height: 40px;
border-radius: 6px;
font-size: 14px;
font-weight: 500;
}
@@ -624,8 +633,8 @@ export default {
:global(.insurance-record-page__upload) {
align-items: stretch;
flex-direction: column;
gap: 18px;
padding: 22px;
gap: 12px;
padding: 16px;
}
:global(.insurance-record-page__upload-action) {
+18 -21
View File
@@ -120,10 +120,15 @@ import { downloadXls } from '@/utils/util';
import { openImportDialog } from '@/utils/import-excel';
import { formatUpdateUserName } from '@/utils/audit';
import { getToken } from '@/utils/auth';
import { normalizeSearchRangeParams } from '@/utils/search-range';
import { mapGetters } from 'vuex';
import NProgress from 'nprogress';
import 'nprogress/nprogress.css';
const createTimeRangeMap = {
createTimeRange: ['createTimeStart', 'createTimeEnd'],
};
export default {
data() {
const validateNonNegative = (rule, value, callback) => {
@@ -160,7 +165,7 @@ export default {
searchShow: true,
searchMenuSpan: 24,
searchIcon: true,
searchIndex: 8,
searchIndex: 4,
searchMenuPosition: 'right',
border: true,
index: true,
@@ -337,23 +342,12 @@ export default {
minWidth: 170,
},
{
label: '创建开始时间',
prop: 'createTimeStart',
label: '创建时间',
prop: 'createTimeRange',
type: 'date',
format: 'YYYY-MM-DD 00:00:00',
valueFormat: 'YYYY-MM-DD 00:00:00',
search: true,
hide: true,
addDisplay: false,
editDisplay: false,
viewDisplay: false,
},
{
label: '创建结束时间',
prop: 'createTimeEnd',
type: 'date',
format: 'YYYY-MM-DD 23:59:59',
valueFormat: 'YYYY-MM-DD 23:59:59',
format: 'YYYY-MM-DD',
valueFormat: 'YYYY-MM-DD',
searchRange: true,
search: true,
hide: true,
addDisplay: false,
@@ -652,9 +646,9 @@ export default {
this.onLoad(this.page);
},
searchChange(params, done) {
this.query = params;
this.query = this.buildQuery(params);
this.page.currentPage = 1;
this.onLoad(this.page, params);
this.onLoad(this.page);
done();
},
selectionChange(list) {
@@ -675,7 +669,7 @@ export default {
},
onLoad(page, params = {}) {
this.loading = true;
getList(page.currentPage, page.pageSize, { ...params, ...this.query })
getList(page.currentPage, page.pageSize, this.buildQuery(params))
.then(res => {
const data = res.data.data;
this.page.total = data.total;
@@ -710,11 +704,14 @@ export default {
},
buildExportParams() {
return {
...this.query,
...this.buildQuery(),
ids: this.ids,
[this.website.tokenHeader]: getToken(),
};
},
buildQuery(params = {}) {
return normalizeSearchRangeParams({ ...params, ...this.query }, createTimeRangeMap);
},
handleTemplate() {
exportBlob(
`/blade-transport/maintenance-plan/export-template?${
+18 -21
View File
@@ -117,10 +117,15 @@ import { downloadXls } from '@/utils/util';
import { openImportDialog } from '@/utils/import-excel';
import { formatUpdateUserName } from '@/utils/audit';
import { getToken } from '@/utils/auth';
import { normalizeSearchRangeParams } from '@/utils/search-range';
import { mapGetters } from 'vuex';
import NProgress from 'nprogress';
import 'nprogress/nprogress.css';
const createTimeRangeMap = {
createTimeRange: ['createTimeStart', 'createTimeEnd'],
};
export default {
data() {
const validateNonNegative = (rule, value, callback) => {
@@ -158,7 +163,7 @@ export default {
searchShow: true,
searchMenuSpan: 24,
searchIcon: true,
searchIndex: 8,
searchIndex: 4,
searchMenuPosition: 'right',
border: true,
index: true,
@@ -333,23 +338,12 @@ export default {
minWidth: 170,
},
{
label: '创建开始时间',
prop: 'createTimeStart',
label: '创建时间',
prop: 'createTimeRange',
type: 'date',
format: 'YYYY-MM-DD 00:00:00',
valueFormat: 'YYYY-MM-DD 00:00:00',
search: true,
hide: true,
addDisplay: false,
editDisplay: false,
viewDisplay: false,
},
{
label: '创建结束时间',
prop: 'createTimeEnd',
type: 'date',
format: 'YYYY-MM-DD 23:59:59',
valueFormat: 'YYYY-MM-DD 23:59:59',
format: 'YYYY-MM-DD',
valueFormat: 'YYYY-MM-DD',
searchRange: true,
search: true,
hide: true,
addDisplay: false,
@@ -637,9 +631,9 @@ export default {
this.onLoad(this.page);
},
searchChange(params, done) {
this.query = params;
this.query = this.buildQuery(params);
this.page.currentPage = 1;
this.onLoad(this.page, params);
this.onLoad(this.page);
done();
},
selectionChange(list) {
@@ -660,7 +654,7 @@ export default {
},
onLoad(page, params = {}) {
this.loading = true;
getList(page.currentPage, page.pageSize, { ...params, ...this.query })
getList(page.currentPage, page.pageSize, this.buildQuery(params))
.then(res => {
const data = res.data.data;
this.page.total = data.total;
@@ -695,11 +689,14 @@ export default {
},
buildExportParams() {
return {
...this.query,
...this.buildQuery(),
ids: this.ids,
[this.website.tokenHeader]: getToken(),
};
},
buildQuery(params = {}) {
return normalizeSearchRangeParams({ ...params, ...this.query }, createTimeRangeMap);
},
handleTemplate() {
exportBlob(
`/blade-transport/maintenance-record/export-template?${
+13 -4
View File
@@ -138,11 +138,16 @@ import { exportBlob } from '@/api/common';
import { downloadXls } from '@/utils/util';
import { openImportDialog } from '@/utils/import-excel';
import { getToken } from '@/utils/auth';
import { normalizeSearchRangeParams } from '@/utils/search-range';
import { mapGetters } from 'vuex';
import { excelOption, option } from '@/option/vehicle/mileage-record';
import NProgress from 'nprogress';
import 'nprogress/nprogress.css';
const createTimeRangeMap = {
createTimeRange: ['createTimeStart', 'createTimeEnd'],
};
export default {
data() {
return {
@@ -464,15 +469,16 @@ export default {
searchReset() {
this.query = {};
if (this.$refs.crud?.search) {
this.$refs.crud.search.createTimeRange = undefined;
this.$refs.crud.search.totalMileageStart = undefined;
this.$refs.crud.search.totalMileageEnd = undefined;
}
this.onLoad(this.page);
},
searchChange(params, done) {
this.query = params;
this.query = this.buildQuery(params);
this.page.currentPage = 1;
this.onLoad(this.page, params);
this.onLoad(this.page);
done();
},
selectionChange(list) {
@@ -493,7 +499,7 @@ export default {
},
onLoad(page, params = {}) {
this.loading = true;
getList(page.currentPage, page.pageSize, { ...params, ...this.query })
getList(page.currentPage, page.pageSize, this.buildQuery(params))
.then(res => {
const data = res.data.data;
this.page.total = data.total;
@@ -528,11 +534,14 @@ export default {
},
buildExportParams() {
return {
...this.query,
...this.buildQuery(),
ids: this.ids,
[this.website.tokenHeader]: getToken(),
};
},
buildQuery(params = {}) {
return normalizeSearchRangeParams({ ...params, ...this.query }, createTimeRangeMap);
},
handleTemplate() {
exportBlob(
`/blade-transport/mileage-record/export-template?${this.website.tokenHeader}=${getToken()}`
+12 -4
View File
@@ -118,11 +118,16 @@ import { exportBlob } from '@/api/common';
import { downloadXls } from '@/utils/util';
import { openImportDialog } from '@/utils/import-excel';
import { getToken } from '@/utils/auth';
import { normalizeSearchRangeParams } from '@/utils/search-range';
import { mapGetters } from 'vuex';
import { excelOption, option } from '@/option/vehicle/tire-replacement-record';
import NProgress from 'nprogress';
import 'nprogress/nprogress.css';
const createTimeRangeMap = {
createTimeRange: ['createTimeStart', 'createTimeEnd'],
};
export default {
data() {
return {
@@ -328,9 +333,9 @@ export default {
this.onLoad(this.page);
},
searchChange(params, done) {
this.query = params;
this.query = this.buildQuery(params);
this.page.currentPage = 1;
this.onLoad(this.page, params);
this.onLoad(this.page);
done();
},
selectionChange(list) {
@@ -351,7 +356,7 @@ export default {
},
onLoad(page, params = {}) {
this.loading = true;
getList(page.currentPage, page.pageSize, { ...params, ...this.query })
getList(page.currentPage, page.pageSize, this.buildQuery(params))
.then(res => {
const data = res.data.data;
this.page.total = data.total;
@@ -386,11 +391,14 @@ export default {
},
buildExportParams() {
return {
...this.query,
...this.buildQuery(),
ids: this.ids,
[this.website.tokenHeader]: getToken(),
};
},
buildQuery(params = {}) {
return normalizeSearchRangeParams({ ...params, ...this.query }, createTimeRangeMap);
},
handleTemplate() {
exportBlob(
`/blade-transport/tire-replacement-record/export-template?${
+12 -4
View File
@@ -101,11 +101,16 @@ import { exportBlob } from '@/api/common';
import { downloadXls } from '@/utils/util';
import { openImportDialog } from '@/utils/import-excel';
import { getToken } from '@/utils/auth';
import { normalizeSearchRangeParams } from '@/utils/search-range';
import { mapGetters } from 'vuex';
import { excelOption, option } from '@/option/vehicle/transport-change-record';
import NProgress from 'nprogress';
import 'nprogress/nprogress.css';
const createTimeRangeMap = {
createTimeRange: ['createTimeStart', 'createTimeEnd'],
};
export default {
data() {
return {
@@ -346,9 +351,9 @@ export default {
this.onLoad(this.page);
},
searchChange(params, done) {
this.query = params;
this.query = this.buildQuery(params);
this.page.currentPage = 1;
this.onLoad(this.page, params);
this.onLoad(this.page);
done();
},
selectionChange(list) {
@@ -369,7 +374,7 @@ export default {
},
onLoad(page, params = {}) {
this.loading = true;
getList(page.currentPage, page.pageSize, { ...params, ...this.query })
getList(page.currentPage, page.pageSize, this.buildQuery(params))
.then(res => {
const data = res.data.data;
this.page.total = data.total;
@@ -404,11 +409,14 @@ export default {
},
buildExportParams() {
return {
...this.query,
...this.buildQuery(),
ids: this.ids,
[this.website.tokenHeader]: getToken(),
};
},
buildQuery(params = {}) {
return normalizeSearchRangeParams({ ...params, ...this.query }, createTimeRangeMap);
},
handleTemplate() {
exportBlob(
`/blade-transport/transport-change-record/export-template?${
+12 -4
View File
@@ -145,11 +145,16 @@ import { exportBlob } from '@/api/common';
import { downloadXls } from '@/utils/util';
import { openImportDialog } from '@/utils/import-excel';
import { getToken } from '@/utils/auth';
import { normalizeSearchRangeParams } from '@/utils/search-range';
import { mapGetters } from 'vuex';
import { excelOption, option } from '@/option/vehicle/violation-record';
import NProgress from 'nprogress';
import 'nprogress/nprogress.css';
const createTimeRangeMap = {
createTimeRange: ['createTimeStart', 'createTimeEnd'],
};
export default {
data() {
return {
@@ -454,9 +459,9 @@ export default {
this.onLoad(this.page);
},
searchChange(params, done) {
this.query = params;
this.query = this.buildQuery(params);
this.page.currentPage = 1;
this.onLoad(this.page, params);
this.onLoad(this.page);
done();
},
selectionChange(list) {
@@ -477,7 +482,7 @@ export default {
},
onLoad(page, params = {}) {
this.loading = true;
getList(page.currentPage, page.pageSize, { ...params, ...this.query })
getList(page.currentPage, page.pageSize, this.buildQuery(params))
.then(res => {
const data = res.data.data;
this.page.total = data.total;
@@ -512,11 +517,14 @@ export default {
},
buildExportParams() {
return {
...this.query,
...this.buildQuery(),
ids: this.ids,
[this.website.tokenHeader]: getToken(),
};
},
buildQuery(params = {}) {
return normalizeSearchRangeParams({ ...params, ...this.query }, createTimeRangeMap);
},
handleTemplate() {
exportBlob(
`/blade-transport/violation-record/export-template?${