This commit is contained in:
2026-08-25 00:10:45 +08:00
parent e1bade226f
commit 1ef050dda6
35 changed files with 2041 additions and 263 deletions
+2 -2
View File
@@ -78,7 +78,7 @@
placeholder="请输入"
@input="value => normalizeDecimalInput('directEconomicLoss', value)"
>
<template #suffix></template>
<template #append></template>
</el-input>
</template>
<template #insuranceClaimAmountForm>
@@ -89,7 +89,7 @@
placeholder="请输入"
@input="value => normalizeDecimalInput('insuranceClaimAmount', value)"
>
<template #suffix></template>
<template #append></template>
</el-input>
</template>
<template #attachments="{ row }">
@@ -78,7 +78,7 @@
placeholder="请输入"
@input="value => normalizeDecimalInput('fee', value)"
>
<template #suffix></template>
<template #append></template>
</el-input>
</template>
<template #attachments="{ row }">
+48 -4
View File
@@ -634,11 +634,20 @@
</el-select>
</template>
</el-table-column>
<el-table-column label="文件名称" min-width="180">
<el-table-column label="文件名称" min-width="180" align="left">
<template #default="{ row }">
<el-link type="primary" :disabled="!row.url" @click="previewQualificationFile(row)">{{
row.originalName || row.name || '-'
}}</el-link>
<div
class="qualification-file-name-cell"
:title="row.originalName || row.name || '-'"
>
<span
class="qualification-file-name"
:class="{ 'is-disabled': !row.url }"
@click="row.url && previewQualificationFile(row)"
>
{{ row.originalName || row.name || '-' }}
</span>
</div>
</template>
</el-table-column>
<el-table-column label="附件描述" min-width="220">
@@ -4461,6 +4470,41 @@ export default {
font-weight: 400;
}
.qualification-file-name-cell {
display: block;
width: 100%;
min-width: 0;
overflow: hidden;
text-align: left;
text-overflow: ellipsis;
white-space: nowrap;
}
.qualification-file-name {
display: block;
width: 100%;
overflow: hidden;
text-overflow: ellipsis;
vertical-align: middle;
white-space: nowrap;
cursor: pointer;
color: #606266;
transition: color 0.2s ease;
&:hover {
color: #409eff;
}
&.is-disabled {
cursor: default;
color: #606266;
&:hover {
color: #606266;
}
}
}
.qualification-upload-bar {
display: grid;
grid-template-columns: 1fr auto 1fr;
+30
View File
@@ -70,6 +70,15 @@
class="maintenance-plan-page__input"
/>
</template>
<template #address-form>
<el-input
v-model="form.address"
:disabled="boxType === 'view'"
readonly
placeholder="点击地图选址"
@click="openAddressMapPicker"
/>
</template>
<template #mileageForm>
<el-input
v-model="form.mileage"
@@ -140,6 +149,11 @@
</template>
</avue-form>
</el-dialog>
<address-map-picker
v-model="addressMapPickerVisible"
:address="form.address"
@confirm="handleAddressMapConfirm"
/>
</basic-container>
</template>
@@ -154,6 +168,7 @@ import { openImportDialog } from '@/utils/import-excel';
import { formatUpdateUserName } from '@/utils/audit';
import { getToken } from '@/utils/auth';
import { normalizeSearchRangeParams } from '@/utils/search-range';
import AddressMapPicker from '@/components/address-map-picker/main.vue';
import { mapGetters } from 'vuex';
import NProgress from 'nprogress';
import 'nprogress/nprogress.css';
@@ -163,6 +178,9 @@ const createTimeRangeMap = {
};
export default {
components: {
AddressMapPicker,
},
data() {
const validateNonNegative = (rule, value, callback) => {
if (value === undefined || value === null || value === '') {
@@ -178,6 +196,7 @@ export default {
query: {},
loading: true,
excelBox: false,
addressMapPickerVisible: false,
excelForm: {},
page: {
pageSize: 10,
@@ -203,6 +222,7 @@ export default {
border: true,
index: true,
indexLabel: '序号',
indexWidth: 90,
viewBtn: true,
selection: true,
dialogClickModal: false,
@@ -315,6 +335,8 @@ export default {
{
label: '地址',
prop: 'address',
slot: true,
formslot: true,
minWidth: 180,
overHidden: true,
span: 24,
@@ -483,6 +505,14 @@ export default {
},
},
methods: {
openAddressMapPicker() {
if (this.boxType !== 'view') {
this.addressMapPickerVisible = true;
}
},
handleAddressMapConfirm(address) {
this.form.address = address;
},
hasPermission(code) {
return this.isAdmin || this.validData(this.permission[code], false);
},
+30
View File
@@ -70,6 +70,15 @@
class="maintenance-record-page__input"
/>
</template>
<template #address-form>
<el-input
v-model="form.address"
:disabled="boxType === 'view'"
readonly
placeholder="点击地图选址"
@click="openAddressMapPicker"
/>
</template>
<template #costForm>
<el-input
v-model="form.cost"
@@ -126,6 +135,11 @@
</template>
</avue-form>
</el-dialog>
<address-map-picker
v-model="addressMapPickerVisible"
:address="form.address"
@confirm="handleAddressMapConfirm"
/>
</basic-container>
</template>
@@ -140,6 +154,7 @@ import { openImportDialog } from '@/utils/import-excel';
import { formatUpdateUserName } from '@/utils/audit';
import { getToken } from '@/utils/auth';
import { normalizeSearchRangeParams } from '@/utils/search-range';
import AddressMapPicker from '@/components/address-map-picker/main.vue';
import { mapGetters } from 'vuex';
import NProgress from 'nprogress';
import 'nprogress/nprogress.css';
@@ -149,6 +164,9 @@ const createTimeRangeMap = {
};
export default {
components: {
AddressMapPicker,
},
data() {
const validateNonNegative = (rule, value, callback) => {
if (value === undefined || value === null || value === '') {
@@ -164,6 +182,7 @@ export default {
query: {},
loading: true,
excelBox: false,
addressMapPickerVisible: false,
excelForm: {},
isDetailLoading: false,
page: {
@@ -190,6 +209,7 @@ export default {
border: true,
index: true,
indexLabel: '序号',
indexWidth: 90,
viewBtn: true,
selection: true,
dialogClickModal: false,
@@ -291,6 +311,8 @@ export default {
{
label: '地址',
prop: 'address',
slot: true,
formslot: true,
minWidth: 180,
overHidden: true,
span: 24,
@@ -478,6 +500,14 @@ export default {
},
},
methods: {
openAddressMapPicker() {
if (this.boxType !== 'view') {
this.addressMapPickerVisible = true;
}
},
handleAddressMapConfirm(address) {
this.form.address = address;
},
hasPermission(code) {
return this.isAdmin || this.validData(this.permission[code], false);
},
+4 -4
View File
@@ -90,7 +90,7 @@
placeholder="请输入"
@input="value => normalizeIntegerInput('previousMonthMileage', value)"
>
<template #suffix>km</template>
<template #append>km</template>
</el-input>
</template>
<template #currentMonthMileageForm>
@@ -101,7 +101,7 @@
placeholder="请输入"
@input="value => normalizeIntegerInput('currentMonthMileage', value)"
>
<template #suffix>km</template>
<template #append>km</template>
</el-input>
</template>
<template #monthlyMileageForm>
@@ -112,7 +112,7 @@
placeholder="请输入"
@input="value => normalizeIntegerInput('monthlyMileage', value)"
>
<template #suffix>km</template>
<template #append>km</template>
</el-input>
</template>
<template #totalMileageForm>
@@ -123,7 +123,7 @@
placeholder="请输入"
@input="value => normalizeIntegerInput('totalMileage', value)"
>
<template #suffix>km</template>
<template #append>km</template>
</el-input>
</template>
<template #totalMileageStart-search="{ row }">
+1 -1
View File
@@ -87,7 +87,7 @@
placeholder="请输入"
@input="value => normalizeDecimalInput('unitPrice', value)"
>
<template #suffix></template>
<template #append>/</template>
</el-input>
</template>
<template #transactionAmountForm>
+27
View File
@@ -110,6 +110,15 @@
@input="value => normalizeIntegerInput('deductPoints', value)"
/>
</template>
<template #location-form>
<el-input
v-model="form.location"
:disabled="boxType === 'view'"
readonly
placeholder="点击地图选址"
@click="openLocationMapPicker"
/>
</template>
<template #processStatus="{ row }">
<span :class="row.processStatus === '未处理' ? 'violation-record-page__danger' : ''">
{{ row.processStatus }}
@@ -152,6 +161,11 @@
</template>
</avue-form>
</el-dialog>
<address-map-picker
v-model="locationMapPickerVisible"
:address="form.location"
@confirm="handleLocationMapConfirm"
/>
</basic-container>
</template>
@@ -167,6 +181,7 @@ import { downloadXls } from '@/utils/util';
import { openImportDialog } from '@/utils/import-excel';
import { getToken } from '@/utils/auth';
import { normalizeSearchRangeParams } from '@/utils/search-range';
import AddressMapPicker from '@/components/address-map-picker/main.vue';
import { mapGetters } from 'vuex';
import { excelOption, option } from '@/option/vehicle/violation-record';
import NProgress from 'nprogress';
@@ -177,12 +192,16 @@ const createTimeRangeMap = {
};
export default {
components: {
AddressMapPicker,
},
data() {
return {
form: {},
query: {},
loading: true,
excelBox: false,
locationMapPickerVisible: false,
excelForm: {},
isDetailLoading: false,
option,
@@ -242,6 +261,14 @@ export default {
},
},
methods: {
openLocationMapPicker() {
if (this.boxType !== 'view') {
this.locationMapPickerVisible = true;
}
},
handleLocationMapConfirm(address) {
this.form.location = address;
},
hasPermission(code) {
return this.isAdmin || this.validData(this.permission[code], false);
},