增加司机列表、车辆列表、项目列表页面
parent
a4a67b81de
commit
4e2c8f99f8
|
|
@ -23,6 +23,8 @@ declare module 'vue' {
|
|||
ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
|
||||
ElContainer: typeof import('element-plus/es')['ElContainer']
|
||||
ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
|
||||
ElDescriptions: typeof import('element-plus/es')['ElDescriptions']
|
||||
ElDescriptionsItem: typeof import('element-plus/es')['ElDescriptionsItem']
|
||||
ElDialog: typeof import('element-plus/es')['ElDialog']
|
||||
ElDivider: typeof import('element-plus/es')['ElDivider']
|
||||
ElDropdown: typeof import('element-plus/es')['ElDropdown']
|
||||
|
|
@ -76,6 +78,8 @@ declare global {
|
|||
const ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
|
||||
const ElContainer: typeof import('element-plus/es')['ElContainer']
|
||||
const ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
|
||||
const ElDescriptions: typeof import('element-plus/es')['ElDescriptions']
|
||||
const ElDescriptionsItem: typeof import('element-plus/es')['ElDescriptionsItem']
|
||||
const ElDialog: typeof import('element-plus/es')['ElDialog']
|
||||
const ElDivider: typeof import('element-plus/es')['ElDivider']
|
||||
const ElDropdown: typeof import('element-plus/es')['ElDropdown']
|
||||
|
|
|
|||
|
|
@ -0,0 +1,204 @@
|
|||
<template>
|
||||
<Page>
|
||||
<ElForm v-show="showSearchForm" inline @submit.prevent="paging">
|
||||
<ElFormItem label="归属用户">
|
||||
<ElInput v-model="searchForm.userId" placeholder="归属用户" />
|
||||
</ElFormItem>
|
||||
<!-- <ElFormItem label="归属客户">
|
||||
<ElInput
|
||||
v-model="searchForm.customerId"
|
||||
placeholder="归属客户"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="归属公司">
|
||||
<ElInput
|
||||
v-model="searchForm.orgId"
|
||||
placeholder="归属公司"/>
|
||||
</ElFormItem> -->
|
||||
<ElFormItem label="驾驶证编号">
|
||||
<ElInput v-model="searchForm.drivingLicenceNo" placeholder="驾驶证编号" />
|
||||
</ElFormItem>
|
||||
<ElFormItem label="司机姓名">
|
||||
<ElInput v-model="searchForm.driverName" placeholder="司机姓名" />
|
||||
</ElFormItem>
|
||||
<ElFormItem label="手机号">
|
||||
<ElInput v-model="searchForm.phone" placeholder="手机号" />
|
||||
</ElFormItem>
|
||||
|
||||
<!-- <ElFormItem label="忙碌中">
|
||||
<ElInput
|
||||
v-model="searchForm.busy"
|
||||
placeholder="忙碌中"/>
|
||||
</ElFormItem> -->
|
||||
|
||||
<ElFormItem label="创建时间">
|
||||
<ElInput v-model="searchForm.createTime" placeholder="创建时间" />
|
||||
</ElFormItem>
|
||||
<ElFormItem label="修改时间">
|
||||
<ElInput v-model="searchForm.modifyTime" placeholder="修改时间" />
|
||||
</ElFormItem>
|
||||
<ElFormItem>
|
||||
<ElButton :icon="elIcons.Search" :loading="searching" native-type="submit" type="primary">搜索</ElButton>
|
||||
<ElButton :icon="elIcons.Refresh" :loading="searching" @click="reset">重置</ElButton>
|
||||
</ElFormItem>
|
||||
</ElForm>
|
||||
|
||||
<div class="tool-bar">
|
||||
<div></div>
|
||||
<!-- <ElButton :icon="elIcons.Plus" type="primary" @click="addHandler">新建</ElButton> -->
|
||||
<ElButton :icon="elIcons.Filter" type="default" @click="showSearchForm = !showSearchForm" />
|
||||
</div>
|
||||
|
||||
<ElTable v-loading="searching" :data="tableData" cell-class-name="table-cell" class="table-list" empty-text="暂无数据" header-row-class-name="table-header" row-key="id">
|
||||
<ElTableColumn label="司机名称" prop="driverName" />
|
||||
<ElTableColumn label="归属公司" prop="orgName" />
|
||||
<ElTableColumn label="驾驶证编号" prop="drivingLicenceNo" />
|
||||
<ElTableColumn label="手机号" prop="phone" />
|
||||
<ElTableColumn label="驾驶证有效期" prop="licenceStartTime" />
|
||||
<ElTableColumn label="驾驶证有效期" prop="licenceEndTime" />
|
||||
<ElTableColumn label="忙碌中" prop="busy" />
|
||||
<ElTableColumn label="创建时间" prop="createTime" />
|
||||
<ElTableColumn label="修改时间" prop="modifyTime" />
|
||||
<ElTableColumn label="操作" width="180">
|
||||
<template #default="scope">
|
||||
<div class="action-btn">
|
||||
<ElPopconfirm confirm-button-text="是" cancel-button-text="否" confirm-button-type="danger" cancel-button-type="primary" placement="top" title="是否删除当前数据?" width="180" @confirm="delHandler(scope)">
|
||||
<template #reference>
|
||||
<ElButton text type="danger" :loading="deling">删除</ElButton>
|
||||
</template>
|
||||
</ElPopconfirm>
|
||||
<ElButton text type="primary" @click="showDetail(scope)">详情</ElButton>
|
||||
<!-- <ElButton text type="primary" @click="modifyHandler(scope)">修改</ElButton> -->
|
||||
</div>
|
||||
</template>
|
||||
</ElTableColumn>
|
||||
</ElTable>
|
||||
<ElPagination layout="->, sizes, total, prev, pager, next" v-model:current-page="searchForm.current" v-model:page-size="searchForm.size" :total="totalCount" :page-sizes="[10, 20, 50, 100, 500]" :hide-on-single-page="false" :teleported="false" @change="paging" />
|
||||
<DriverForm ref="driverForm" @edit-succ="paging" />
|
||||
<DriverDetail ref="driverDetail" @edit-succ="paging" />
|
||||
</Page>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import DriverApi from "@/pages/cst/driver/driver-api.ts";
|
||||
import DriverForm from "@/pages/cst/driver/DriverForm.vue";
|
||||
import Page from "@/components/page/Page.vue";
|
||||
import { elIcons } from "@/common/element/element.ts";
|
||||
import DriverDetail from '@/pages/cst/driver/DriverDetail.vue'
|
||||
|
||||
const driverDetailIns = useTemplateRef<InstanceType<typeof DriverDetail>>('driverDetail')
|
||||
const totalCount = ref(0);
|
||||
const tableData = ref<DriverTypes.SearchDriverResult[]>([]);
|
||||
const searchForm = ref<DriverTypes.SearchDriverParam>({
|
||||
current: 1,
|
||||
size: 20,
|
||||
});
|
||||
const searching = ref(false);
|
||||
const deling = ref(false);
|
||||
const showSearchForm = ref(true);
|
||||
const driverFormIns = useTemplateRef<InstanceType<typeof DriverForm>>("driverForm");
|
||||
|
||||
function showDialog(data?: DriverTypes.SearchDriverResult) {
|
||||
driverFormIns.value?.open(data);
|
||||
}
|
||||
|
||||
function delHandler({ row }: { row: DriverTypes.SearchDriverResult }) {
|
||||
deling.value = true;
|
||||
DriverApi.del([row.id!])
|
||||
.then(() => {
|
||||
ElMessage.success("删除成功");
|
||||
paging();
|
||||
})
|
||||
.finally(() => {
|
||||
deling.value = false;
|
||||
});
|
||||
}
|
||||
|
||||
// function modifyHandler({ row }: { row: DriverTypes.SearchDriverResult }) {
|
||||
// showDialog(row);
|
||||
// }
|
||||
|
||||
// function addHandler() {
|
||||
// showDialog();
|
||||
// }
|
||||
|
||||
function reset() {
|
||||
searchForm.value = {
|
||||
current: 1,
|
||||
size: 20,
|
||||
};
|
||||
paging();
|
||||
}
|
||||
|
||||
function showDetail({row}: { row: ProjectTypes.SearchProjectResult }) {
|
||||
driverDetailIns.value?.open(row)
|
||||
}
|
||||
|
||||
function paging() {
|
||||
searching.value = true;
|
||||
DriverApi.paging(searchForm.value)
|
||||
.then((res) => {
|
||||
totalCount.value = res.data?.total ?? 0;
|
||||
tableData.value = res.data?.records ?? [];
|
||||
})
|
||||
.finally(() => {
|
||||
searching.value = false;
|
||||
});
|
||||
}
|
||||
onMounted(() => {
|
||||
paging();
|
||||
});
|
||||
</script>
|
||||
|
||||
<style lang="stylus" scoped>
|
||||
.table-list {
|
||||
flex 1;
|
||||
margin 0 0 20px 0
|
||||
width 100%
|
||||
|
||||
:deep(.table-header) {
|
||||
color #454C59
|
||||
|
||||
th {
|
||||
background-color #EDF1F7
|
||||
font-weight 500
|
||||
position relative
|
||||
|
||||
& > div {
|
||||
display flex
|
||||
gap 5px
|
||||
align-items center
|
||||
}
|
||||
|
||||
&:not(:first-child) > div::before {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 1px;
|
||||
width: 1px;
|
||||
background-color: #D3D7DE;
|
||||
transform: translateY(-50%);
|
||||
content: "";
|
||||
height 50%
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
:deep(.table-cell) {
|
||||
color #2F3540
|
||||
}
|
||||
.action-btn {
|
||||
width 100%
|
||||
display flex
|
||||
flex-wrap wrap
|
||||
|
||||
& > button {
|
||||
margin 0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.tool-bar {
|
||||
display flex
|
||||
justify-content space-between
|
||||
margin 0 0 20px 0
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,120 @@
|
|||
<template>
|
||||
<ElDialog v-model="showDialog" :close-on-click-modal="false" destroy-on-close width="fit-content" @close="dialogCloseHandler">
|
||||
<el-descriptions class="margin-top" title="司机详情" :column="3" border>
|
||||
<el-descriptions-item label="司机姓名">
|
||||
{{ formData.driverName }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="所属公司">
|
||||
{{ formData.orgName }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="证书编号">
|
||||
{{ formData?.drivingLicenceNo }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="手机号">
|
||||
{{ formData.phone }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="创建时间">
|
||||
{{ formData.createTime }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="修改时间">
|
||||
{{ formData.modifyTime }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="驾驶证">
|
||||
<el-image style="width: 100px; height: 100px" :src="AppApi.fileUrl(formData.drivingLicence)" :preview-src-list="[AppApi.fileUrl(formData.drivingLicence)]" show-progress></el-image>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="驾驶证有效期"> {{ formData.licenceStartTime }} ~ {{ formData.licenceEndTime }} </el-descriptions-item>
|
||||
<!-- <el-descriptions-item>
|
||||
<el-tag size="small">School</el-tag>
|
||||
</el-descriptions-item> -->
|
||||
</el-descriptions>
|
||||
<template #footer>
|
||||
<ElButton @click="showDialog = false">关闭</ElButton>
|
||||
</template>
|
||||
</ElDialog>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import DriverApi from "@/pages/cst/driver/driver-api.ts";
|
||||
import Strings from "@/common/utils/strings.ts";
|
||||
import FormUtil from "@/common/utils/formUtil.ts";
|
||||
import { ElMessage, type FormInstance, type FormRules } from "element-plus";
|
||||
import AppApi from "@/common/app/app-api.ts";
|
||||
|
||||
const emits = defineEmits(["editSucc"]);
|
||||
const showDialog = ref(false);
|
||||
const submiting = ref(false);
|
||||
const status = ref<"add" | "view" | "modify">("add");
|
||||
|
||||
const driverFormIns = useTemplateRef<FormInstance>("driverForm");
|
||||
|
||||
const formData = ref<DriverTypes.SearchDriverResult>({});
|
||||
const rules = reactive<FormRules<DriverTypes.SearchDriverResult>>({
|
||||
id: [{ required: true, message: "请填写Id", trigger: "blur" }],
|
||||
userId: [{ required: true, message: "请填写归属用户 Id;sys_user.id", trigger: "blur" }],
|
||||
customerId: [{ required: true, message: "请填写归属客户 Id;cst_customer.id", trigger: "blur" }],
|
||||
orgId: [{ required: true, message: "请填写归属公司 Id;cst_org.id", trigger: "blur" }],
|
||||
drivingLicenceNo: [{ required: true, message: "请填写驾驶证编号", trigger: "blur" }],
|
||||
driverName: [{ required: true, message: "请填写司机姓名", trigger: "blur" }],
|
||||
phone: [{ required: true, message: "请填写手机号", trigger: "blur" }],
|
||||
drivingLicence: [{ required: true, message: "请填写驾驶证图片", trigger: "blur" }],
|
||||
licenceStartTime: [{ required: true, message: "请填写驾驶证有效期", trigger: "blur" }],
|
||||
licenceEndTime: [{ required: true, message: "请填写驾驶证有效期", trigger: "blur" }],
|
||||
busy: [{ required: true, message: "请填写忙碌中", trigger: "blur" }],
|
||||
creatorId: [{ required: true, message: "请填写创建人 Id;sys_user.id", trigger: "blur" }],
|
||||
modifierId: [{ required: true, message: "请填写修改人 Id; sys_user.id", trigger: "blur" }],
|
||||
createTime: [{ required: true, message: "请填写创建时间", trigger: "blur" }],
|
||||
modifyTime: [{ required: true, message: "请填写修改时间", trigger: "blur" }],
|
||||
deleted: [{ required: true, message: "请填写是否删除; 0-->未删除、1-->已删除", trigger: "blur" }],
|
||||
});
|
||||
|
||||
function dialogCloseHandler() {
|
||||
formData.value = {};
|
||||
}
|
||||
|
||||
function submitHandler() {
|
||||
if (status.value === "view") return;
|
||||
submiting.value = true;
|
||||
if (formData.value.id != null) {
|
||||
FormUtil.submit(driverFormIns, () => DriverApi.modify(formData.value))
|
||||
.then(() => {
|
||||
ElMessage.success("修改成功");
|
||||
emits("editSucc");
|
||||
showDialog.value = false;
|
||||
})
|
||||
.finally(() => {
|
||||
submiting.value = false;
|
||||
});
|
||||
} else {
|
||||
FormUtil.submit(driverFormIns, () => DriverApi.add(formData.value))
|
||||
.then(() => {
|
||||
ElMessage.success("添加成功");
|
||||
emits("editSucc");
|
||||
showDialog.value = false;
|
||||
})
|
||||
.finally(() => {
|
||||
submiting.value = false;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
defineExpose({
|
||||
open(data: DriverTypes.SearchDriverResult = {}) {
|
||||
showDialog.value = true;
|
||||
if (!Strings.isBlank(data.id)) {
|
||||
status.value = "modify";
|
||||
DriverApi.detail(data.id!).then((res) => {
|
||||
formData.value = res.data;
|
||||
});
|
||||
} else {
|
||||
status.value = "add";
|
||||
formData.value = data;
|
||||
}
|
||||
},
|
||||
});
|
||||
</script>
|
||||
|
||||
<style lang="stylus" scoped>
|
||||
.form-panel {
|
||||
padding 20px
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,204 @@
|
|||
<template>
|
||||
<ElDialog v-model="showDialog"
|
||||
:close-on-click-modal="false"
|
||||
destroy-on-close
|
||||
width="fit-content"
|
||||
@close="dialogCloseHandler">
|
||||
<ElForm :model="formData"
|
||||
:rules="rules"
|
||||
ref="driverForm"
|
||||
class="form-panel"
|
||||
label-width="auto">
|
||||
<ElFormItem label="Id" prop="id">
|
||||
<ElInput
|
||||
v-model="formData.id"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="Id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="归属用户 Id;sys_user.id" prop="userId">
|
||||
<ElInput
|
||||
v-model="formData.userId"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="归属用户 Id;sys_user.id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="归属客户 Id;cst_customer.id" prop="customerId">
|
||||
<ElInput
|
||||
v-model="formData.customerId"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="归属客户 Id;cst_customer.id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="归属公司 Id;cst_org.id" prop="orgId">
|
||||
<ElInput
|
||||
v-model="formData.orgId"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="归属公司 Id;cst_org.id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="驾驶证编号" prop="drivingLicenceNo">
|
||||
<ElInput
|
||||
v-model="formData.drivingLicenceNo"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="驾驶证编号"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="司机姓名" prop="driverName">
|
||||
<ElInput
|
||||
v-model="formData.driverName"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="司机姓名"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="手机号" prop="phone">
|
||||
<ElInput
|
||||
v-model="formData.phone"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="手机号"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="驾驶证图片" prop="drivingLicence">
|
||||
<ElInput
|
||||
v-model="formData.drivingLicence"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="驾驶证图片"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="驾驶证有效期" prop="licenceStartTime">
|
||||
<ElInput
|
||||
v-model="formData.licenceStartTime"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="驾驶证有效期"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="驾驶证有效期" prop="licenceEndTime">
|
||||
<ElInput
|
||||
v-model="formData.licenceEndTime"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="驾驶证有效期"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="忙碌中" prop="busy">
|
||||
<ElInput
|
||||
v-model="formData.busy"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="忙碌中"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="创建人 Id;sys_user.id" prop="creatorId">
|
||||
<ElInput
|
||||
v-model="formData.creatorId"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="创建人 Id;sys_user.id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="修改人 Id; sys_user.id" prop="modifierId">
|
||||
<ElInput
|
||||
v-model="formData.modifierId"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="修改人 Id; sys_user.id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="创建时间" prop="createTime">
|
||||
<ElInput
|
||||
v-model="formData.createTime"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="创建时间"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="修改时间" prop="modifyTime">
|
||||
<ElInput
|
||||
v-model="formData.modifyTime"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="修改时间"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="是否删除; 0-->未删除、1-->已删除" prop="deleted">
|
||||
<ElInput
|
||||
v-model="formData.deleted"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="是否删除; 0-->未删除、1-->已删除"/>
|
||||
</ElFormItem>
|
||||
</ElForm>
|
||||
<template #footer>
|
||||
<ElButton @click="showDialog = false">{{ status === 'view' ? '关闭' : '取消' }}</ElButton>
|
||||
<ElButton v-if="status !== 'view'" :loading="submiting" type="primary" @click="submitHandler">提交</ElButton>
|
||||
</template>
|
||||
</ElDialog>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import DriverApi from '@/pages/cst/driver/driver-api.ts'
|
||||
import Strings from '@/common/utils/strings.ts'
|
||||
import FormUtil from '@/common/utils/formUtil.ts'
|
||||
import {
|
||||
ElMessage,
|
||||
type FormInstance,
|
||||
type FormRules,
|
||||
} from 'element-plus'
|
||||
|
||||
const emits = defineEmits(['editSucc'])
|
||||
const showDialog = ref(false)
|
||||
const submiting = ref(false)
|
||||
const status = ref<'add' | 'view' | 'modify'>('add')
|
||||
|
||||
const driverFormIns = useTemplateRef<FormInstance>('driverForm')
|
||||
|
||||
const formData = ref<DriverTypes.SearchDriverResult>({})
|
||||
const rules = reactive<FormRules<DriverTypes.SearchDriverResult>>({
|
||||
id: [{ required: true, message: '请填写Id', trigger: 'blur' }],
|
||||
userId: [{ required: true, message: '请填写归属用户 Id;sys_user.id', trigger: 'blur' }],
|
||||
customerId: [{ required: true, message: '请填写归属客户 Id;cst_customer.id', trigger: 'blur' }],
|
||||
orgId: [{ required: true, message: '请填写归属公司 Id;cst_org.id', trigger: 'blur' }],
|
||||
drivingLicenceNo: [{ required: true, message: '请填写驾驶证编号', trigger: 'blur' }],
|
||||
driverName: [{ required: true, message: '请填写司机姓名', trigger: 'blur' }],
|
||||
phone: [{ required: true, message: '请填写手机号', trigger: 'blur' }],
|
||||
drivingLicence: [{ required: true, message: '请填写驾驶证图片', trigger: 'blur' }],
|
||||
licenceStartTime: [{ required: true, message: '请填写驾驶证有效期', trigger: 'blur' }],
|
||||
licenceEndTime: [{ required: true, message: '请填写驾驶证有效期', trigger: 'blur' }],
|
||||
busy: [{ required: true, message: '请填写忙碌中', trigger: 'blur' }],
|
||||
creatorId: [{ required: true, message: '请填写创建人 Id;sys_user.id', trigger: 'blur' }],
|
||||
modifierId: [{ required: true, message: '请填写修改人 Id; sys_user.id', trigger: 'blur' }],
|
||||
createTime: [{ required: true, message: '请填写创建时间', trigger: 'blur' }],
|
||||
modifyTime: [{ required: true, message: '请填写修改时间', trigger: 'blur' }],
|
||||
deleted: [{ required: true, message: '请填写是否删除; 0-->未删除、1-->已删除', trigger: 'blur' }],
|
||||
})
|
||||
|
||||
function dialogCloseHandler() {
|
||||
formData.value = {}
|
||||
}
|
||||
|
||||
function submitHandler() {
|
||||
if (status.value === 'view') return
|
||||
submiting.value = true
|
||||
if (formData.value.id != null) {
|
||||
FormUtil.submit(driverFormIns, () => DriverApi.modify(formData.value))
|
||||
.then(() => {
|
||||
ElMessage.success('修改成功')
|
||||
emits('editSucc')
|
||||
showDialog.value = false
|
||||
})
|
||||
.finally(() => {
|
||||
submiting.value = false
|
||||
})
|
||||
} else {
|
||||
FormUtil.submit(driverFormIns, () => DriverApi.add(formData.value))
|
||||
.then(() => {
|
||||
ElMessage.success('添加成功')
|
||||
emits('editSucc')
|
||||
showDialog.value = false
|
||||
})
|
||||
.finally(() => {
|
||||
submiting.value = false
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
defineExpose({
|
||||
open(data: DriverTypes.SearchDriverResult = {}) {
|
||||
showDialog.value = true
|
||||
if (!Strings.isBlank(data.id)) {
|
||||
status.value = 'modify'
|
||||
DriverApi.detail(data.id!)
|
||||
.then(res => {
|
||||
formData.value = res.data
|
||||
})
|
||||
} else {
|
||||
status.value = 'add'
|
||||
formData.value = data
|
||||
}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<style lang="stylus" scoped>
|
||||
.form-panel {
|
||||
padding 20px
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
import {
|
||||
get,
|
||||
post
|
||||
} from '@/common/utils/http-util.ts'
|
||||
|
||||
export default {
|
||||
paging(data: DriverTypes.SearchDriverParam) {
|
||||
return get<G.PageResult<DriverTypes.SearchDriverResult>>('/driver/paging', data)
|
||||
},
|
||||
detail(id: string) {
|
||||
return get<DriverTypes.SearchDriverResult>('/driver/detail', {id})
|
||||
},
|
||||
add(data: DriverTypes.AddDriverParam) {
|
||||
return post('/driver/add', data)
|
||||
},
|
||||
modify(data: DriverTypes.ModifyDriverParam) {
|
||||
return post('/driver/modify', data)
|
||||
},
|
||||
del(ids: string[]) {
|
||||
return post('/driver/del', ids)
|
||||
},
|
||||
}
|
||||
|
|
@ -0,0 +1,149 @@
|
|||
export {}
|
||||
|
||||
declare global {
|
||||
namespace DriverTypes {
|
||||
interface SearchDriverParam extends G.PageParam {
|
||||
// Id
|
||||
id?: string;
|
||||
// 归属用户 Id;sys_user.id
|
||||
userId?: string;
|
||||
// 归属客户 Id;cst_customer.id
|
||||
customerId?: string;
|
||||
// 归属公司 Id;cst_org.id
|
||||
orgId?: string;
|
||||
orgName?: string;
|
||||
// 驾驶证编号
|
||||
drivingLicenceNo?: string;
|
||||
// 司机姓名
|
||||
driverName?: string;
|
||||
// 手机号
|
||||
phone?: string;
|
||||
// 驾驶证图片
|
||||
drivingLicence?: string;
|
||||
// 驾驶证有效期
|
||||
licenceStartTime?: string;
|
||||
// 驾驶证有效期
|
||||
licenceEndTime?: string;
|
||||
// 忙碌中
|
||||
busy?: boolean;
|
||||
// 创建人 Id;sys_user.id
|
||||
creatorId?: string;
|
||||
// 修改人 Id; sys_user.id
|
||||
modifierId?: string;
|
||||
// 创建时间
|
||||
createTime?: string;
|
||||
// 修改时间
|
||||
modifyTime?: string;
|
||||
// 是否删除; 0-->未删除、1-->已删除
|
||||
deleted?: boolean;
|
||||
}
|
||||
|
||||
interface SearchDriverResult {
|
||||
// Id
|
||||
id?: string;
|
||||
// 归属用户 Id;sys_user.id
|
||||
userId?: string;
|
||||
// 归属客户 Id;cst_customer.id
|
||||
customerId?: string;
|
||||
// 归属公司 Id;cst_org.id
|
||||
orgId?: string;
|
||||
orgName?: string;
|
||||
// 驾驶证编号
|
||||
drivingLicenceNo?: string;
|
||||
// 司机姓名
|
||||
driverName?: string;
|
||||
// 手机号
|
||||
phone?: string;
|
||||
// 驾驶证图片
|
||||
drivingLicence?: string;
|
||||
// 驾驶证有效期
|
||||
licenceStartTime?: string;
|
||||
// 驾驶证有效期
|
||||
licenceEndTime?: string;
|
||||
// 忙碌中
|
||||
busy?: boolean;
|
||||
// 创建人 Id;sys_user.id
|
||||
creatorId?: string;
|
||||
// 修改人 Id; sys_user.id
|
||||
modifierId?: string;
|
||||
// 创建时间
|
||||
createTime?: string;
|
||||
// 修改时间
|
||||
modifyTime?: string;
|
||||
// 是否删除; 0-->未删除、1-->已删除
|
||||
deleted?: boolean;
|
||||
}
|
||||
|
||||
interface AddDriverParam {
|
||||
// Id
|
||||
id?: string;
|
||||
// 归属用户 Id;sys_user.id
|
||||
userId?: string;
|
||||
// 归属客户 Id;cst_customer.id
|
||||
customerId?: string;
|
||||
// 归属公司 Id;cst_org.id
|
||||
orgId?: string;
|
||||
orgName?: string;
|
||||
// 驾驶证编号
|
||||
drivingLicenceNo?: string;
|
||||
// 司机姓名
|
||||
driverName?: string;
|
||||
// 手机号
|
||||
phone?: string;
|
||||
// 驾驶证图片
|
||||
drivingLicence?: string;
|
||||
// 驾驶证有效期
|
||||
licenceStartTime?: string;
|
||||
// 驾驶证有效期
|
||||
licenceEndTime?: string;
|
||||
// 忙碌中
|
||||
busy?: boolean;
|
||||
// 创建人 Id;sys_user.id
|
||||
creatorId?: string;
|
||||
// 修改人 Id; sys_user.id
|
||||
modifierId?: string;
|
||||
// 创建时间
|
||||
createTime?: string;
|
||||
// 修改时间
|
||||
modifyTime?: string;
|
||||
// 是否删除; 0-->未删除、1-->已删除
|
||||
deleted?: boolean;
|
||||
}
|
||||
|
||||
interface ModifyDriverParam {
|
||||
// Id
|
||||
id?: string;
|
||||
// 归属用户 Id;sys_user.id
|
||||
userId?: string;
|
||||
// 归属客户 Id;cst_customer.id
|
||||
customerId?: string;
|
||||
// 归属公司 Id;cst_org.id
|
||||
orgId?: string;
|
||||
orgName?: string;
|
||||
// 驾驶证编号
|
||||
drivingLicenceNo?: string;
|
||||
// 司机姓名
|
||||
driverName?: string;
|
||||
// 手机号
|
||||
phone?: string;
|
||||
// 驾驶证图片
|
||||
drivingLicence?: string;
|
||||
// 驾驶证有效期
|
||||
licenceStartTime?: string;
|
||||
// 驾驶证有效期
|
||||
licenceEndTime?: string;
|
||||
// 忙碌中
|
||||
busy?: boolean;
|
||||
// 创建人 Id;sys_user.id
|
||||
creatorId?: string;
|
||||
// 修改人 Id; sys_user.id
|
||||
modifierId?: string;
|
||||
// 创建时间
|
||||
createTime?: string;
|
||||
// 修改时间
|
||||
modifyTime?: string;
|
||||
// 是否删除; 0-->未删除、1-->已删除
|
||||
deleted?: boolean;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
export default {
|
||||
component: () => import('@/pages/cst/driver/Driver.vue'),
|
||||
} as RouterTypes.RouteConfig
|
||||
|
|
@ -0,0 +1,235 @@
|
|||
<template>
|
||||
<Page>
|
||||
<ElForm v-show="showSearchForm" inline @submit.prevent="paging">
|
||||
<ElFormItem label="项目名称">
|
||||
<ElInput
|
||||
v-model="searchForm.projectName"
|
||||
placeholder="项目名称"/>
|
||||
</ElFormItem>
|
||||
|
||||
<!-- <ElFormItem label="运输方客户 Id">
|
||||
<ElInput
|
||||
v-model="searchForm.transCustomerId"
|
||||
placeholder="运输方客户 Id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="运输方组织 Id">
|
||||
<ElInput
|
||||
v-model="searchForm.transOrgId"
|
||||
placeholder="运输方组织 Id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="产废方/购买方客户 Id">
|
||||
<ElInput
|
||||
v-model="searchForm.fringeCustomerId"
|
||||
placeholder="产废方/购买方客户 Id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="产废方/购买方组织 Id">
|
||||
<ElInput
|
||||
v-model="searchForm.fringeOrgId"
|
||||
placeholder="产废方/购买方组织 Id"/>
|
||||
</ElFormItem> -->
|
||||
<ElFormItem label="区县">
|
||||
<ElInput
|
||||
v-model="searchForm.areaName"
|
||||
placeholder="区县"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="乡镇街道">
|
||||
<ElInput
|
||||
v-model="searchForm.townName"
|
||||
placeholder="乡镇街道"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="详细地址">
|
||||
<ElInput
|
||||
v-model="searchForm.address"
|
||||
placeholder="详细地址"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem>
|
||||
<ElButton :icon="elIcons.Search" :loading="searching" native-type="submit" type="primary">搜索</ElButton>
|
||||
<ElButton :icon="elIcons.Refresh" :loading="searching" @click="reset">重置</ElButton>
|
||||
</ElFormItem>
|
||||
</ElForm>
|
||||
|
||||
<div class="tool-bar">
|
||||
<!-- <ElButton :icon="elIcons.Plus" type="primary" @click="addHandler">新建</ElButton> -->
|
||||
<ElButton :icon="elIcons.Filter" type="default" @click="showSearchForm = !showSearchForm"/>
|
||||
</div>
|
||||
|
||||
<ElTable v-loading="searching" :data="tableData"
|
||||
cell-class-name="table-cell"
|
||||
class="table-list"
|
||||
empty-text="暂无数据"
|
||||
header-row-class-name="table-header"
|
||||
row-key="id">
|
||||
<!-- <ElTableColumn label="Id" prop="id"/> -->
|
||||
<ElTableColumn label="项目名称" prop="projectName"/>
|
||||
<!-- <ElTableColumn label="合同图片" prop="contractPicture"/> -->
|
||||
<ElTableColumn label="运输方组织" prop="transOrgInfo.orgName"/>
|
||||
<ElTableColumn label="产废方/购买方组织" prop="fringeOrgInfo.orgName"/>
|
||||
<!-- <ElTableColumn label="市" prop="cityName"/> -->
|
||||
<ElTableColumn label="区县" prop="areaName"/>
|
||||
<ElTableColumn label="乡镇街道" prop="townName"/>
|
||||
<ElTableColumn label="详细地址" prop="address"/>
|
||||
<ElTableColumn label="合同有效期" prop="contractStartDate"/>
|
||||
<ElTableColumn label="合同有效期" prop="contractEndDate"/>
|
||||
<ElTableColumn label="创建时间" prop="createTime"/>
|
||||
<ElTableColumn label="修改时间" prop="modifyTime"/>
|
||||
<ElTableColumn label="操作" width="180">
|
||||
<template #default="scope">
|
||||
<div class="action-btn">
|
||||
<ElPopconfirm
|
||||
confirm-button-text="是"
|
||||
cancel-button-text="否"
|
||||
confirm-button-type="danger"
|
||||
cancel-button-type="primary"
|
||||
placement="top"
|
||||
title="是否删除当前数据?"
|
||||
width="180"
|
||||
@confirm="delHandler(scope)">
|
||||
<template #reference>
|
||||
<ElButton text type="danger" :loading="deling">删除</ElButton>
|
||||
</template>
|
||||
</ElPopconfirm>
|
||||
<!-- <ElButton text type="primary" @click="modifyHandler(scope)">修改</ElButton> -->
|
||||
<ElButton text type="primary" @click="showDetail(scope)">详情</ElButton>
|
||||
</div>
|
||||
</template>
|
||||
</ElTableColumn>
|
||||
</ElTable>
|
||||
<ElPagination
|
||||
layout="->, sizes, total, prev, pager, next"
|
||||
v-model:current-page="searchForm.current"
|
||||
v-model:page-size="searchForm.size"
|
||||
:total="totalCount"
|
||||
:page-sizes="[10, 20, 50, 100, 500]"
|
||||
:hide-on-single-page="false"
|
||||
:teleported="false"
|
||||
@change="paging"/>
|
||||
<ProjectForm ref="projectForm" @edit-succ="paging"/>
|
||||
<ProjectDetail ref="projectDetail" @edit-succ="paging"/>
|
||||
</Page>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import ProjectApi from '@/pages/cst/project/project-api.ts'
|
||||
import ProjectDetail from '@/pages/cst/project/ProjectDetail.vue'
|
||||
import ProjectForm from '@/pages/cst/project/ProjectForm.vue'
|
||||
import Page from '@/components/page/Page.vue'
|
||||
import { elIcons } from '@/common/element/element.ts'
|
||||
|
||||
const totalCount = ref(0)
|
||||
const tableData = ref<ProjectTypes.SearchProjectResult[]>([])
|
||||
const searchForm = ref<ProjectTypes.SearchProjectParam>({
|
||||
current: 1,
|
||||
size: 20,
|
||||
})
|
||||
const searching = ref(false)
|
||||
const deling = ref(false)
|
||||
const showSearchForm = ref(true)
|
||||
const projectFormIns = useTemplateRef<InstanceType<typeof ProjectForm>>('projectForm')
|
||||
const projectDetailIns = useTemplateRef<InstanceType<typeof ProjectDetail>>('projectDetail')
|
||||
|
||||
function showDialog(data?: ProjectTypes.SearchProjectResult) {
|
||||
projectFormIns.value?.open(data)
|
||||
}
|
||||
|
||||
function delHandler({row}: { row: ProjectTypes.SearchProjectResult }) {
|
||||
deling.value = true
|
||||
ProjectApi.del([ row.id! ])
|
||||
.then(() => {
|
||||
ElMessage.success('删除成功')
|
||||
paging()
|
||||
})
|
||||
.finally(() => {
|
||||
deling.value = false
|
||||
})
|
||||
}
|
||||
|
||||
function showDetail({row}: { row: ProjectTypes.SearchProjectResult }) {
|
||||
projectDetailIns.value?.open(row)
|
||||
}
|
||||
|
||||
// function modifyHandler({row}: { row: ProjectTypes.SearchProjectResult }) {
|
||||
// showDialog(row)
|
||||
// }
|
||||
|
||||
// function addHandler() {
|
||||
// showDialog()
|
||||
// }
|
||||
|
||||
function reset() {
|
||||
searchForm.value = {
|
||||
current: 1,
|
||||
size: 20,
|
||||
}
|
||||
paging()
|
||||
}
|
||||
|
||||
function paging() {
|
||||
searching.value = true
|
||||
ProjectApi.paging(searchForm.value)
|
||||
.then(res => {
|
||||
totalCount.value = res.data?.total ?? 0
|
||||
tableData.value = res.data?.records ?? []
|
||||
})
|
||||
.finally(() => {
|
||||
searching.value = false
|
||||
})
|
||||
}
|
||||
onMounted(() => {
|
||||
paging()
|
||||
})
|
||||
|
||||
</script>
|
||||
|
||||
<style lang="stylus" scoped>
|
||||
.table-list {
|
||||
flex 1;
|
||||
margin 0 0 20px 0
|
||||
width 100%
|
||||
|
||||
:deep(.table-header) {
|
||||
color #454C59
|
||||
|
||||
th {
|
||||
background-color #EDF1F7
|
||||
font-weight 500
|
||||
position relative
|
||||
|
||||
& > div {
|
||||
display flex
|
||||
gap 5px
|
||||
align-items center
|
||||
}
|
||||
|
||||
&:not(:first-child) > div::before {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 1px;
|
||||
width: 1px;
|
||||
background-color: #D3D7DE;
|
||||
transform: translateY(-50%);
|
||||
content: "";
|
||||
height 50%
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
:deep(.table-cell) {
|
||||
color #2F3540
|
||||
}
|
||||
.action-btn {
|
||||
width 100%
|
||||
display flex
|
||||
flex-wrap wrap
|
||||
|
||||
& > button {
|
||||
margin 0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.tool-bar {
|
||||
display flex
|
||||
justify-content space-between
|
||||
margin 0 0 20px 0
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,117 @@
|
|||
<template>
|
||||
<ElDialog v-model="showDialog" :close-on-click-modal="false" destroy-on-close width="fit-content" @close="dialogCloseHandler">
|
||||
<el-descriptions class="margin-top" title="项目详情" :column="3" border>
|
||||
<el-descriptions-item label="项目名称">
|
||||
{{ formData.projectName }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="运输方组织">
|
||||
{{ formData?.transOrgInfo?.orgName }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="产废方/购买方组织">
|
||||
{{ formData.fringeOrgInfo?.orgName }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="区县">
|
||||
{{ formData.areaName }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="乡镇街道">
|
||||
{{ formData.townName }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="详细地址">
|
||||
{{ formData.address }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="合同有效期">
|
||||
{{ formData.contractStartDate }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="合同有效期">
|
||||
{{ formData.contractEndDate }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="创建时间">
|
||||
{{ formData.createTime }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="修改时间">
|
||||
{{ formData.modifyTime }}
|
||||
</el-descriptions-item>
|
||||
<!-- <el-descriptions-item label="合同">
|
||||
<img :src="AppApi.fileUrl(formData.contractPicture)" alt="合同" style="width: 4rem; height: 4rem; object-fit: cover; border-radius: 4px" />
|
||||
</el-descriptions-item> -->
|
||||
|
||||
<el-descriptions-item label="合同">
|
||||
<el-image style="width: 100px;height: 100px;" :src="AppApi.fileUrl(formData.contractPicture)" :preview-src-list="[AppApi.fileUrl(formData.contractPicture)]" show-progress></el-image>
|
||||
</el-descriptions-item>
|
||||
<!-- <el-descriptions-item>
|
||||
<el-tag size="small">School</el-tag>
|
||||
</el-descriptions-item> -->
|
||||
</el-descriptions>
|
||||
<template #footer>
|
||||
<ElButton @click="showDialog = false">关闭</ElButton>
|
||||
</template>
|
||||
</ElDialog>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import ProjectApi from "@/pages/cst/project/project-api.ts";
|
||||
import Strings from "@/common/utils/strings.ts";
|
||||
import FormUtil from "@/common/utils/formUtil.ts";
|
||||
import AppApi from "@/common/app/app-api.ts";
|
||||
import { ElMessage, type FormInstance } from "element-plus";
|
||||
|
||||
const emits = defineEmits(["editSucc"]);
|
||||
const showDialog = ref(false);
|
||||
const submiting = ref(false);
|
||||
const status = ref<"add" | "view" | "modify">("add");
|
||||
|
||||
const projectDetailIns = useTemplateRef<FormInstance>("projectDetail");
|
||||
|
||||
const formData = ref<any>({});
|
||||
|
||||
function dialogCloseHandler() {
|
||||
formData.value = {};
|
||||
}
|
||||
|
||||
function submitHandler() {
|
||||
if (status.value === "view") return;
|
||||
submiting.value = true;
|
||||
if (formData.value.id != null) {
|
||||
FormUtil.submit(projectDetailIns, () => ProjectApi.modify(formData.value))
|
||||
.then(() => {
|
||||
ElMessage.success("修改成功");
|
||||
emits("editSucc");
|
||||
showDialog.value = false;
|
||||
})
|
||||
.finally(() => {
|
||||
submiting.value = false;
|
||||
});
|
||||
} else {
|
||||
FormUtil.submit(projectDetailIns, () => ProjectApi.add(formData.value))
|
||||
.then(() => {
|
||||
ElMessage.success("添加成功");
|
||||
emits("editSucc");
|
||||
showDialog.value = false;
|
||||
})
|
||||
.finally(() => {
|
||||
submiting.value = false;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
defineExpose({
|
||||
open(data: ProjectTypes.SearchProjectResult = {}) {
|
||||
showDialog.value = true;
|
||||
if (!Strings.isBlank(data.id)) {
|
||||
status.value = "modify";
|
||||
ProjectApi.detail(data.id!).then((res) => {
|
||||
formData.value = res.data;
|
||||
});
|
||||
} else {
|
||||
status.value = "add";
|
||||
formData.value = data;
|
||||
}
|
||||
},
|
||||
});
|
||||
</script>
|
||||
|
||||
<style lang="stylus" scoped>
|
||||
.form-panel {
|
||||
padding 20px
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,261 @@
|
|||
<template>
|
||||
<ElDialog v-model="showDialog"
|
||||
:close-on-click-modal="false"
|
||||
destroy-on-close
|
||||
width="fit-content"
|
||||
@close="dialogCloseHandler">
|
||||
<ElForm :model="formData"
|
||||
:rules="rules"
|
||||
ref="projectForm"
|
||||
class="form-panel"
|
||||
label-width="auto">
|
||||
<ElFormItem label="Id" prop="id">
|
||||
<ElInput
|
||||
v-model="formData.id"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="Id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="项目名称" prop="projectName">
|
||||
<ElInput
|
||||
v-model="formData.projectName"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="项目名称"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="合同图片" prop="contractPicture">
|
||||
<ElInput
|
||||
v-model="formData.contractPicture"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="合同图片"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="运输方客户 Id" prop="transCustomerId">
|
||||
<ElInput
|
||||
v-model="formData.transCustomerId"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="运输方客户 Id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="运输方组织 Id" prop="transOrgId">
|
||||
<ElInput
|
||||
v-model="formData.transOrgId"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="运输方组织 Id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="产废方/购买方客户 Id" prop="fringeCustomerId">
|
||||
<ElInput
|
||||
v-model="formData.fringeCustomerId"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="产废方/购买方客户 Id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="产废方/购买方组织 Id" prop="fringeOrgId">
|
||||
<ElInput
|
||||
v-model="formData.fringeOrgId"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="产废方/购买方组织 Id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="省;代码" prop="province">
|
||||
<ElInput
|
||||
v-model="formData.province"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="省;代码"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="市;代码" prop="city">
|
||||
<ElInput
|
||||
v-model="formData.city"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="市;代码"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="区县;代码" prop="area">
|
||||
<ElInput
|
||||
v-model="formData.area"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="区县;代码"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="乡镇街道;代码" prop="town">
|
||||
<ElInput
|
||||
v-model="formData.town"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="乡镇街道;代码"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="省;名称" prop="provinceName">
|
||||
<ElInput
|
||||
v-model="formData.provinceName"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="省;名称"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="市;名称" prop="cityName">
|
||||
<ElInput
|
||||
v-model="formData.cityName"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="市;名称"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="区县;名称" prop="areaName">
|
||||
<ElInput
|
||||
v-model="formData.areaName"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="区县;名称"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="乡镇街道;名称" prop="townName">
|
||||
<ElInput
|
||||
v-model="formData.townName"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="乡镇街道;名称"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="详细地址" prop="address">
|
||||
<ElInput
|
||||
v-model="formData.address"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="详细地址"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="经度" prop="lng">
|
||||
<ElInput
|
||||
v-model="formData.lng"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="经度"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="纬度" prop="lat">
|
||||
<ElInput
|
||||
v-model="formData.lat"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="纬度"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="合同有效期" prop="contractStartDate">
|
||||
<ElInput
|
||||
v-model="formData.contractStartDate"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="合同有效期"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="合同有效期" prop="contractEndDate">
|
||||
<ElInput
|
||||
v-model="formData.contractEndDate"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="合同有效期"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="创建人 Id; sys_user.id" prop="creatorId">
|
||||
<ElInput
|
||||
v-model="formData.creatorId"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="创建人 Id; sys_user.id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="修改人 Id; sys_user.id" prop="modifierId">
|
||||
<ElInput
|
||||
v-model="formData.modifierId"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="修改人 Id; sys_user.id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="创建时间" prop="createTime">
|
||||
<ElInput
|
||||
v-model="formData.createTime"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="创建时间"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="修改时间" prop="modifyTime">
|
||||
<ElInput
|
||||
v-model="formData.modifyTime"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="修改时间"/>
|
||||
</ElFormItem>
|
||||
</ElForm>
|
||||
<template #footer>
|
||||
<ElButton @click="showDialog = false">{{ status === 'view' ? '关闭' : '取消' }}</ElButton>
|
||||
<ElButton v-if="status !== 'view'" :loading="submiting" type="primary" @click="submitHandler">提交</ElButton>
|
||||
</template>
|
||||
</ElDialog>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import ProjectApi from '@/pages/cst/project/project-api.ts'
|
||||
import Strings from '@/common/utils/strings.ts'
|
||||
import FormUtil from '@/common/utils/formUtil.ts'
|
||||
import {
|
||||
ElMessage,
|
||||
type FormInstance,
|
||||
type FormRules,
|
||||
} from 'element-plus'
|
||||
|
||||
const emits = defineEmits(['editSucc'])
|
||||
const showDialog = ref(false)
|
||||
const submiting = ref(false)
|
||||
const status = ref<'add' | 'view' | 'modify'>('add')
|
||||
|
||||
const projectFormIns = useTemplateRef<FormInstance>('projectForm')
|
||||
|
||||
const formData = ref<ProjectTypes.SearchProjectResult>({})
|
||||
const rules = reactive<FormRules<ProjectTypes.SearchProjectResult>>({
|
||||
id: [{ required: true, message: '请填写Id', trigger: 'blur' }],
|
||||
projectName: [{ required: true, message: '请填写项目名称', trigger: 'blur' }],
|
||||
contractPicture: [{ required: true, message: '请填写合同图片', trigger: 'blur' }],
|
||||
transCustomerId: [{ required: true, message: '请填写运输方客户 Id', trigger: 'blur' }],
|
||||
transOrgId: [{ required: true, message: '请填写运输方组织 Id', trigger: 'blur' }],
|
||||
fringeCustomerId: [{ required: true, message: '请填写产废方/购买方客户 Id', trigger: 'blur' }],
|
||||
fringeOrgId: [{ required: true, message: '请填写产废方/购买方组织 Id', trigger: 'blur' }],
|
||||
province: [{ required: true, message: '请填写省;代码', trigger: 'blur' }],
|
||||
city: [{ required: true, message: '请填写市;代码', trigger: 'blur' }],
|
||||
area: [{ required: true, message: '请填写区县;代码', trigger: 'blur' }],
|
||||
town: [{ required: true, message: '请填写乡镇街道;代码', trigger: 'blur' }],
|
||||
provinceName: [{ required: true, message: '请填写省;名称', trigger: 'blur' }],
|
||||
cityName: [{ required: true, message: '请填写市;名称', trigger: 'blur' }],
|
||||
areaName: [{ required: true, message: '请填写区县;名称', trigger: 'blur' }],
|
||||
townName: [{ required: true, message: '请填写乡镇街道;名称', trigger: 'blur' }],
|
||||
address: [{ required: true, message: '请填写详细地址', trigger: 'blur' }],
|
||||
lng: [{ required: true, message: '请填写经度', trigger: 'blur' }],
|
||||
lat: [{ required: true, message: '请填写纬度', trigger: 'blur' }],
|
||||
contractStartDate: [{ required: true, message: '请填写合同有效期', trigger: 'blur' }],
|
||||
contractEndDate: [{ required: true, message: '请填写合同有效期', trigger: 'blur' }],
|
||||
creatorId: [{ required: true, message: '请填写创建人 Id; sys_user.id', trigger: 'blur' }],
|
||||
modifierId: [{ required: true, message: '请填写修改人 Id; sys_user.id', trigger: 'blur' }],
|
||||
createTime: [{ required: true, message: '请填写创建时间', trigger: 'blur' }],
|
||||
modifyTime: [{ required: true, message: '请填写修改时间', trigger: 'blur' }],
|
||||
deleted: [{ required: true, message: '请填写是否删除; 0-->未删除、1-->已删除', trigger: 'blur' }],
|
||||
})
|
||||
|
||||
function dialogCloseHandler() {
|
||||
formData.value = {}
|
||||
}
|
||||
|
||||
function submitHandler() {
|
||||
if (status.value === 'view') return
|
||||
submiting.value = true
|
||||
if (formData.value.id != null) {
|
||||
FormUtil.submit(projectFormIns, () => ProjectApi.modify(formData.value))
|
||||
.then(() => {
|
||||
ElMessage.success('修改成功')
|
||||
emits('editSucc')
|
||||
showDialog.value = false
|
||||
})
|
||||
.finally(() => {
|
||||
submiting.value = false
|
||||
})
|
||||
} else {
|
||||
FormUtil.submit(projectFormIns, () => ProjectApi.add(formData.value))
|
||||
.then(() => {
|
||||
ElMessage.success('添加成功')
|
||||
emits('editSucc')
|
||||
showDialog.value = false
|
||||
})
|
||||
.finally(() => {
|
||||
submiting.value = false
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
defineExpose({
|
||||
open(data: ProjectTypes.SearchProjectResult = {}) {
|
||||
showDialog.value = true
|
||||
if (!Strings.isBlank(data.id)) {
|
||||
status.value = 'modify'
|
||||
ProjectApi.detail(data.id!)
|
||||
.then(res => {
|
||||
formData.value = res.data
|
||||
})
|
||||
} else {
|
||||
status.value = 'add'
|
||||
formData.value = data
|
||||
}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<style lang="stylus" scoped>
|
||||
.form-panel {
|
||||
padding 20px
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
export default {
|
||||
component: () => import('@/pages/cst/project/Project.vue'),
|
||||
} as RouterTypes.RouteConfig
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
import {
|
||||
get,
|
||||
post
|
||||
} from '@/common/utils/http-util.ts'
|
||||
|
||||
export default {
|
||||
paging(data: ProjectTypes.SearchProjectParam) {
|
||||
return get<G.PageResult<ProjectTypes.SearchProjectResult>>('/project/paging', data)
|
||||
},
|
||||
detail(id: string) {
|
||||
return get<ProjectTypes.SearchProjectResult>('/project/detail', {id})
|
||||
},
|
||||
add(data: ProjectTypes.AddProjectParam) {
|
||||
return post('/project/add', data)
|
||||
},
|
||||
modify(data: ProjectTypes.ModifyProjectParam) {
|
||||
return post('/project/modify', data)
|
||||
},
|
||||
del(ids: string[]) {
|
||||
return post('/project/del', ids)
|
||||
},
|
||||
}
|
||||
|
|
@ -0,0 +1,217 @@
|
|||
export {}
|
||||
|
||||
declare global {
|
||||
namespace ProjectTypes {
|
||||
interface SearchProjectParam extends G.PageParam {
|
||||
// Id
|
||||
id?: string
|
||||
// 项目名称
|
||||
projectName?: string
|
||||
// 合同图片
|
||||
contractPicture?: string
|
||||
// 运输方客户 Id
|
||||
transCustomerId?: string
|
||||
// 运输方组织 Id
|
||||
transOrgId?: string
|
||||
// 产废方/购买方客户 Id
|
||||
fringeCustomerId?: string
|
||||
// 产废方/购买方组织 Id
|
||||
fringeOrgId?: string
|
||||
// 省;代码
|
||||
province?: string
|
||||
// 市;代码
|
||||
city?: string
|
||||
// 区县;代码
|
||||
area?: string
|
||||
// 乡镇街道;代码
|
||||
town?: string
|
||||
// 省;名称
|
||||
provinceName?: string
|
||||
// 市;名称
|
||||
cityName?: string
|
||||
// 区县;名称
|
||||
areaName?: string
|
||||
// 乡镇街道;名称
|
||||
townName?: string
|
||||
// 详细地址
|
||||
address?: string
|
||||
// 经度
|
||||
lng?: number
|
||||
// 纬度
|
||||
lat?: number
|
||||
// 合同有效期
|
||||
contractStartDate?: string
|
||||
// 合同有效期
|
||||
contractEndDate?: string
|
||||
// 创建人 Id; sys_user.id
|
||||
creatorId?: string
|
||||
// 修改人 Id; sys_user.id
|
||||
modifierId?: string
|
||||
// 创建时间
|
||||
createTime?: string
|
||||
// 修改时间
|
||||
modifyTime?: string
|
||||
// 是否删除; 0-->未删除、1-->已删除
|
||||
deleted?: boolean
|
||||
}
|
||||
|
||||
interface SearchProjectResult {
|
||||
// Id
|
||||
id?: string
|
||||
// 项目名称
|
||||
projectName?: string
|
||||
// 合同图片
|
||||
contractPicture?: string
|
||||
// 运输方客户 Id
|
||||
transCustomerId?: string
|
||||
// 运输方组织 Id
|
||||
transOrgId?: string
|
||||
// 产废方/购买方客户 Id
|
||||
fringeCustomerId?: string
|
||||
// 产废方/购买方组织 Id
|
||||
fringeOrgId?: string
|
||||
// 省;代码
|
||||
province?: string
|
||||
// 市;代码
|
||||
city?: string
|
||||
// 区县;代码
|
||||
area?: string
|
||||
// 乡镇街道;代码
|
||||
town?: string
|
||||
// 省;名称
|
||||
provinceName?: string
|
||||
// 市;名称
|
||||
cityName?: string
|
||||
// 区县;名称
|
||||
areaName?: string
|
||||
// 乡镇街道;名称
|
||||
townName?: string
|
||||
// 详细地址
|
||||
address?: string
|
||||
// 经度
|
||||
lng?: number
|
||||
// 纬度
|
||||
lat?: number
|
||||
// 合同有效期
|
||||
contractStartDate?: string
|
||||
// 合同有效期
|
||||
contractEndDate?: string
|
||||
// 创建人 Id; sys_user.id
|
||||
creatorId?: string
|
||||
// 修改人 Id; sys_user.id
|
||||
modifierId?: string
|
||||
// 创建时间
|
||||
createTime?: string
|
||||
// 修改时间
|
||||
modifyTime?: string
|
||||
// 是否删除; 0-->未删除、1-->已删除
|
||||
deleted?: boolean
|
||||
}
|
||||
|
||||
interface AddProjectParam {
|
||||
// Id
|
||||
id?: string
|
||||
// 项目名称
|
||||
projectName?: string
|
||||
// 合同图片
|
||||
contractPicture?: string
|
||||
// 运输方客户 Id
|
||||
transCustomerId?: string
|
||||
// 运输方组织 Id
|
||||
transOrgId?: string
|
||||
// 产废方/购买方客户 Id
|
||||
fringeCustomerId?: string
|
||||
// 产废方/购买方组织 Id
|
||||
fringeOrgId?: string
|
||||
// 省;代码
|
||||
province?: string
|
||||
// 市;代码
|
||||
city?: string
|
||||
// 区县;代码
|
||||
area?: string
|
||||
// 乡镇街道;代码
|
||||
town?: string
|
||||
// 省;名称
|
||||
provinceName?: string
|
||||
// 市;名称
|
||||
cityName?: string
|
||||
// 区县;名称
|
||||
areaName?: string
|
||||
// 乡镇街道;名称
|
||||
townName?: string
|
||||
// 详细地址
|
||||
address?: string
|
||||
// 经度
|
||||
lng?: number
|
||||
// 纬度
|
||||
lat?: number
|
||||
// 合同有效期
|
||||
contractStartDate?: string
|
||||
// 合同有效期
|
||||
contractEndDate?: string
|
||||
// 创建人 Id; sys_user.id
|
||||
creatorId?: string
|
||||
// 修改人 Id; sys_user.id
|
||||
modifierId?: string
|
||||
// 创建时间
|
||||
createTime?: string
|
||||
// 修改时间
|
||||
modifyTime?: string
|
||||
// 是否删除; 0-->未删除、1-->已删除
|
||||
deleted?: boolean
|
||||
}
|
||||
|
||||
interface ModifyProjectParam {
|
||||
// Id
|
||||
id?: string
|
||||
// 项目名称
|
||||
projectName?: string
|
||||
// 合同图片
|
||||
contractPicture?: string
|
||||
// 运输方客户 Id
|
||||
transCustomerId?: string
|
||||
// 运输方组织 Id
|
||||
transOrgId?: string
|
||||
// 产废方/购买方客户 Id
|
||||
fringeCustomerId?: string
|
||||
// 产废方/购买方组织 Id
|
||||
fringeOrgId?: string
|
||||
// 省;代码
|
||||
province?: string
|
||||
// 市;代码
|
||||
city?: string
|
||||
// 区县;代码
|
||||
area?: string
|
||||
// 乡镇街道;代码
|
||||
town?: string
|
||||
// 省;名称
|
||||
provinceName?: string
|
||||
// 市;名称
|
||||
cityName?: string
|
||||
// 区县;名称
|
||||
areaName?: string
|
||||
// 乡镇街道;名称
|
||||
townName?: string
|
||||
// 详细地址
|
||||
address?: string
|
||||
// 经度
|
||||
lng?: number
|
||||
// 纬度
|
||||
lat?: number
|
||||
// 合同有效期
|
||||
contractStartDate?: string
|
||||
// 合同有效期
|
||||
contractEndDate?: string
|
||||
// 创建人 Id; sys_user.id
|
||||
creatorId?: string
|
||||
// 修改人 Id; sys_user.id
|
||||
modifierId?: string
|
||||
// 创建时间
|
||||
createTime?: string
|
||||
// 修改时间
|
||||
modifyTime?: string
|
||||
// 是否删除; 0-->未删除、1-->已删除
|
||||
deleted?: boolean
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,209 @@
|
|||
<template>
|
||||
<Page>
|
||||
<ElForm v-show="showSearchForm" inline @submit.prevent="paging">
|
||||
<ElFormItem label="车牌">
|
||||
<ElInput v-model="searchForm.licensePlate" placeholder="车牌" />
|
||||
</ElFormItem>
|
||||
|
||||
<ElFormItem label="车架号">
|
||||
<ElInput v-model="searchForm.vnCode" placeholder="车架号" />
|
||||
</ElFormItem>
|
||||
|
||||
<ElFormItem>
|
||||
<ElButton :icon="elIcons.Search" :loading="searching" native-type="submit" type="primary">搜索</ElButton>
|
||||
<ElButton :icon="elIcons.Refresh" :loading="searching" @click="reset">重置</ElButton>
|
||||
</ElFormItem>
|
||||
</ElForm>
|
||||
|
||||
<div class="tool-bar">
|
||||
<div></div>
|
||||
<!-- <ElButton :icon="elIcons.Plus" type="primary" @click="addHandler">新建</ElButton> -->
|
||||
<ElButton :icon="elIcons.Filter" type="default" @click="showSearchForm = !showSearchForm" />
|
||||
</div>
|
||||
|
||||
<ElTable v-loading="searching" :data="tableData" cell-class-name="table-cell" class="table-list" empty-text="暂无数据" header-row-class-name="table-header" row-key="id">
|
||||
<ElTableColumn label="车牌" prop="licensePlate" width="100px"/>
|
||||
<!-- <ElTableColumn label="行驶证图片" prop="truckLicense" /> -->
|
||||
<ElTableColumn label="行驶证图片" width="100px">
|
||||
<template #default="{ row }">
|
||||
<el-image style="width: 60px; height: 60px" :src="AppApi.fileUrl(row.truckLicense[0])" :preview-src-list="[AppApi.fileUrl(row.truckLicense[0])]" show-progress></el-image>
|
||||
</template>
|
||||
</ElTableColumn>
|
||||
<ElTableColumn label="车架号" prop="vnCode" />
|
||||
<!-- <ElTableColumn label="合格证图片" prop="qualification" /> -->
|
||||
<ElTableColumn label="合格证图片" width="100px">
|
||||
<template #default="{ row }">
|
||||
<el-image style="width: 60px; height: 60px" :src="AppApi.fileUrl(row.qualification[0])" :preview-src-list="[AppApi.fileUrl(row.qualification[0])]" show-progress></el-image>
|
||||
</template>
|
||||
</ElTableColumn>
|
||||
<!-- <ElTableColumn label="最大载重(千克)" prop="carryingCapacity" /> -->
|
||||
|
||||
<ElTableColumn label="行驶证有效期" width="120px">
|
||||
<template #default="{ row }"> {{ row.licenseStartDate }} ~ {{ row.licenseEndDate }} </template>
|
||||
</ElTableColumn>
|
||||
|
||||
|
||||
<ElTableColumn label="合格证有效期" width="120px">
|
||||
<template #default="{ row }"> {{ row.qualificationStartDate }} ~ {{ row.qualificationEndDate }} </template>
|
||||
</ElTableColumn>
|
||||
|
||||
<ElTableColumn label="车辆类型" prop="truckCategory" />
|
||||
<ElTableColumn label="车辆图片" width="100px">
|
||||
<template #default="{ row }">
|
||||
<el-image style="width: 60px; height: 60px" :src="AppApi.fileUrl(row.picture)" :preview-src-list="[AppApi.fileUrl(row.picture)]" show-progress></el-image>
|
||||
</template>
|
||||
</ElTableColumn>
|
||||
|
||||
<ElTableColumn label="状态" prop="busy">
|
||||
<template #default="{ row }">
|
||||
{{ row.busy?'运输中':'空闲' }}
|
||||
</template>
|
||||
</ElTableColumn>
|
||||
|
||||
<ElTableColumn label="创建时间" prop="createTime" width="100px"/>
|
||||
<ElTableColumn label="修改时间" prop="modifyTime" width="100px"/>
|
||||
<ElTableColumn label="操作" width="180" fixed="right">
|
||||
<template #default="scope">
|
||||
<div class="action-btn">
|
||||
<ElPopconfirm confirm-button-text="是" cancel-button-text="否" confirm-button-type="danger" cancel-button-type="primary" placement="top" title="是否删除当前数据?" width="180" @confirm="delHandler(scope)">
|
||||
<template #reference>
|
||||
<ElButton text type="danger" :loading="deling">删除</ElButton>
|
||||
</template>
|
||||
</ElPopconfirm>
|
||||
<!-- <ElButton text type="primary" @click="modifyHandler(scope)">修改</ElButton> -->
|
||||
<ElButton text type="primary" @click="showDetail(scope)">详情</ElButton>
|
||||
</div>
|
||||
</template>
|
||||
</ElTableColumn>
|
||||
</ElTable>
|
||||
<ElPagination layout="->, sizes, total, prev, pager, next" v-model:current-page="searchForm.current" v-model:page-size="searchForm.size" :total="totalCount" :page-sizes="[10, 20, 50, 100, 500]" :hide-on-single-page="false" :teleported="false" @change="paging" />
|
||||
<TruckForm ref="truckForm" @edit-succ="paging" />
|
||||
<TruckDetail ref="truckDetail" />
|
||||
</Page>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import TruckApi from "@/pages/cst/truck/truck-api.ts";
|
||||
import TruckForm from "@/pages/cst/truck/TruckForm.vue";
|
||||
import TruckDetail from "@/pages/cst/truck/TruckDetail.vue";
|
||||
import Page from "@/components/page/Page.vue";
|
||||
import { elIcons } from "@/common/element/element.ts";
|
||||
import AppApi from "@/common/app/app-api.ts";
|
||||
|
||||
const totalCount = ref(0);
|
||||
const tableData = ref<TruckTypes.SearchTruckResult[]>([]);
|
||||
const searchForm = ref<TruckTypes.SearchTruckParam>({
|
||||
current: 1,
|
||||
size: 20,
|
||||
});
|
||||
|
||||
const searching = ref(false);
|
||||
const deling = ref(false);
|
||||
const showSearchForm = ref(true);
|
||||
const truckFormIns = useTemplateRef<InstanceType<typeof TruckForm>>("truckForm");
|
||||
const truckDetailIns = useTemplateRef<InstanceType<typeof TruckDetail>>("truckDetail");
|
||||
|
||||
function showDialog(data?: TruckTypes.SearchTruckResult) {
|
||||
truckDetailIns.value?.open(data);
|
||||
}
|
||||
|
||||
function delHandler({ row }: { row: TruckTypes.SearchTruckResult }) {
|
||||
deling.value = true;
|
||||
TruckApi.del([row.id!])
|
||||
.then(() => {
|
||||
ElMessage.success("删除成功");
|
||||
paging();
|
||||
})
|
||||
.finally(() => {
|
||||
deling.value = false;
|
||||
});
|
||||
}
|
||||
|
||||
function showDetail({row}: { row: ProjectTypes.SearchProjectResult }) {
|
||||
truckDetailIns.value?.open(row)
|
||||
}
|
||||
// function modifyHandler({ row }: { row: TruckTypes.SearchTruckResult }) {
|
||||
// showDialog(row);
|
||||
// }
|
||||
|
||||
// function addHandler() {
|
||||
// showDialog();
|
||||
// }
|
||||
|
||||
function reset() {
|
||||
searchForm.value = {
|
||||
current: 1,
|
||||
size: 20,
|
||||
};
|
||||
paging();
|
||||
}
|
||||
|
||||
function paging() {
|
||||
searching.value = true;
|
||||
TruckApi.paging(searchForm.value)
|
||||
.then((res) => {
|
||||
totalCount.value = res.data?.total ?? 0;
|
||||
tableData.value = res.data?.records ?? [];
|
||||
})
|
||||
.finally(() => {
|
||||
searching.value = false;
|
||||
});
|
||||
}
|
||||
onMounted(() => {
|
||||
paging();
|
||||
});
|
||||
</script>
|
||||
|
||||
<style lang="stylus" scoped>
|
||||
.table-list {
|
||||
flex 1;
|
||||
margin 0 0 20px 0
|
||||
width 100%
|
||||
|
||||
:deep(.table-header) {
|
||||
color #454C59
|
||||
|
||||
th {
|
||||
background-color #EDF1F7
|
||||
font-weight 500
|
||||
position relative
|
||||
|
||||
& > div {
|
||||
display flex
|
||||
gap 5px
|
||||
align-items center
|
||||
}
|
||||
|
||||
&:not(:first-child) > div::before {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 1px;
|
||||
width: 1px;
|
||||
background-color: #D3D7DE;
|
||||
transform: translateY(-50%);
|
||||
content: "";
|
||||
height 50%
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
:deep(.table-cell) {
|
||||
color #2F3540
|
||||
}
|
||||
.action-btn {
|
||||
width 100%
|
||||
display flex
|
||||
flex-wrap wrap
|
||||
|
||||
& > button {
|
||||
margin 0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.tool-bar {
|
||||
display flex
|
||||
justify-content space-between
|
||||
margin 0 0 20px 0
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,145 @@
|
|||
<template>
|
||||
<ElDialog v-model="showDialog" :close-on-click-modal="false" destroy-on-close width="fit-content" @close="dialogCloseHandler">
|
||||
<el-descriptions class="margin-top" title="车辆详情" :column="3" border>
|
||||
<el-descriptions-item label="车牌">
|
||||
{{ formData.licensePlate }}
|
||||
</el-descriptions-item>
|
||||
|
||||
|
||||
|
||||
<el-descriptions-item label="行驶证图片">
|
||||
<el-image v-for="(item,i) in formData.truckLicense" :key="i" style="width: 100px; height: 100px" :src="AppApi.fileUrl(item)" :preview-src-list="[AppApi.fileUrl(item)]" show-progress></el-image>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="行驶证有效期">
|
||||
{{ formData.licenseStartDate }} ~ {{ formData.licenseEndDate }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="车架号">
|
||||
{{ formData.vnCode }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="合格证图片">
|
||||
<el-image v-for="(item,i) in formData.qualification" :key="i" style="width: 100px; height: 100px" :src="AppApi.fileUrl(item)" :preview-src-list="[AppApi.fileUrl(item)]" show-progress></el-image>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="合格证有效期">
|
||||
{{ formData.qualificationStartDate }} ~ {{ formData.qualificationEndDate }}
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="最大载重">
|
||||
{{ Number(formData.carryingCapacity)/1000 }}吨
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="状态">
|
||||
{{ formData.busy?'运输中':'空闲' }}
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="车辆图片">
|
||||
<el-image style="width: 100px; height: 100px" :src="AppApi.fileUrl(formData.picture)" :preview-src-list="[AppApi.fileUrl(formData.picture)]" show-progress></el-image>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="车辆类型">
|
||||
{{ formData.truckCategory }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="创建时间">
|
||||
{{ formData.createTime }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="修改时间">
|
||||
{{ formData.modifyTime }}
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
<template #footer>
|
||||
<ElButton @click="showDialog = false">关闭</ElButton>
|
||||
</template>
|
||||
</ElDialog>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import TruckApi from "@/pages/cst/truck/truck-api.ts";
|
||||
import Strings from "@/common/utils/strings.ts";
|
||||
import FormUtil from "@/common/utils/formUtil.ts";
|
||||
import { ElMessage, type FormInstance, type FormRules } from "element-plus";
|
||||
import AppApi from "@/common/app/app-api.ts";
|
||||
|
||||
const emits = defineEmits(["editSucc"]);
|
||||
const showDialog = ref(false);
|
||||
const submiting = ref(false);
|
||||
const status = ref<"add" | "view" | "modify">("add");
|
||||
|
||||
const truckFormIns = useTemplateRef<FormInstance>("truckForm");
|
||||
|
||||
const formData = ref<TruckTypes.SearchTruckResult>({});
|
||||
const rules = reactive<FormRules<TruckTypes.SearchTruckResult>>({
|
||||
id: [{ required: true, message: "请填写Id", trigger: "blur" }],
|
||||
customerId: [{ required: true, message: "请填写归属客户 Id;cst_customer.id", trigger: "blur" }],
|
||||
orgId: [{ required: true, message: "请填写归属组织", trigger: "blur" }],
|
||||
licensePlate: [{ required: true, message: "请填写车牌", trigger: "blur" }],
|
||||
truckLicense: [{ required: true, message: "请填写行驶证图片", trigger: "blur" }],
|
||||
vnCode: [{ required: true, message: "请填写车架号", trigger: "blur" }],
|
||||
qualification: [{ required: true, message: "请填写合格证图片", trigger: "blur" }],
|
||||
carryingCapacity: [{ required: true, message: "请填写最大载重;单位:千克", trigger: "blur" }],
|
||||
tareWeight: [{ required: true, message: "请填写皮重;单位:千克", trigger: "blur" }],
|
||||
licenseStartDate: [{ required: true, message: "请填写行驶证有效期", trigger: "blur" }],
|
||||
licenseEndDate: [{ required: true, message: "请填写行驶证有效期", trigger: "blur" }],
|
||||
qualificationStartDate: [{ required: true, message: "请填写合格证有效期", trigger: "blur" }],
|
||||
qualificationEndDate: [{ required: true, message: "请填写合格证有效期", trigger: "blur" }],
|
||||
truckCategory: [{ required: true, message: "请填写车辆类型", trigger: "blur" }],
|
||||
picture: [{ required: true, message: "请填写车辆图片", trigger: "blur" }],
|
||||
busy: [{ required: true, message: "请填写忙碌中", trigger: "blur" }],
|
||||
creatorId: [{ required: true, message: "请填写创建人 Id; sys_user.id", trigger: "blur" }],
|
||||
modifierId: [{ required: true, message: "请填写修改人 Id; sys_user.id", trigger: "blur" }],
|
||||
createTime: [{ required: true, message: "请填写创建时间", trigger: "blur" }],
|
||||
modifyTime: [{ required: true, message: "请填写修改时间", trigger: "blur" }],
|
||||
deleted: [{ required: true, message: "请填写是否删除; 0-->未删除、1-->已删除", trigger: "blur" }],
|
||||
});
|
||||
|
||||
function dialogCloseHandler() {
|
||||
formData.value = {};
|
||||
}
|
||||
|
||||
function submitHandler() {
|
||||
if (status.value === "view") return;
|
||||
submiting.value = true;
|
||||
if (formData.value.id != null) {
|
||||
FormUtil.submit(truckFormIns, () => TruckApi.modify(formData.value))
|
||||
.then(() => {
|
||||
ElMessage.success("修改成功");
|
||||
emits("editSucc");
|
||||
showDialog.value = false;
|
||||
})
|
||||
.finally(() => {
|
||||
submiting.value = false;
|
||||
});
|
||||
} else {
|
||||
FormUtil.submit(truckFormIns, () => TruckApi.add(formData.value))
|
||||
.then(() => {
|
||||
ElMessage.success("添加成功");
|
||||
emits("editSucc");
|
||||
showDialog.value = false;
|
||||
})
|
||||
.finally(() => {
|
||||
submiting.value = false;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
defineExpose({
|
||||
open(data: TruckTypes.SearchTruckResult = {}) {
|
||||
showDialog.value = true;
|
||||
if (!Strings.isBlank(data.id)) {
|
||||
status.value = "modify";
|
||||
TruckApi.detail(data.id!).then((res) => {
|
||||
formData.value = res.data;
|
||||
});
|
||||
} else {
|
||||
status.value = "add";
|
||||
formData.value = data;
|
||||
}
|
||||
},
|
||||
});
|
||||
</script>
|
||||
|
||||
<style lang="stylus" scoped>
|
||||
.form-panel {
|
||||
padding 20px
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,239 @@
|
|||
<template>
|
||||
<ElDialog v-model="showDialog"
|
||||
:close-on-click-modal="false"
|
||||
destroy-on-close
|
||||
width="fit-content"
|
||||
@close="dialogCloseHandler">
|
||||
<ElForm :model="formData"
|
||||
:rules="rules"
|
||||
ref="truckForm"
|
||||
class="form-panel"
|
||||
label-width="auto">
|
||||
<ElFormItem label="Id" prop="id">
|
||||
<ElInput
|
||||
v-model="formData.id"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="Id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="归属客户 Id;cst_customer.id" prop="customerId">
|
||||
<ElInput
|
||||
v-model="formData.customerId"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="归属客户 Id;cst_customer.id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="归属组织" prop="orgId">
|
||||
<ElInput
|
||||
v-model="formData.orgId"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="归属组织"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="车牌" prop="licensePlate">
|
||||
<ElInput
|
||||
v-model="formData.licensePlate"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="车牌"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="行驶证图片" prop="truckLicense">
|
||||
<ElInput
|
||||
v-model="formData.truckLicense"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="行驶证图片"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="车架号" prop="vnCode">
|
||||
<ElInput
|
||||
v-model="formData.vnCode"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="车架号"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="合格证图片" prop="qualification">
|
||||
<ElInput
|
||||
v-model="formData.qualification"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="合格证图片"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="最大载重;单位:千克" prop="carryingCapacity">
|
||||
<ElInput
|
||||
v-model="formData.carryingCapacity"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="最大载重;单位:千克"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="皮重;单位:千克" prop="tareWeight">
|
||||
<ElInput
|
||||
v-model="formData.tareWeight"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="皮重;单位:千克"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="行驶证有效期" prop="licenseStartDate">
|
||||
<ElInput
|
||||
v-model="formData.licenseStartDate"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="行驶证有效期"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="行驶证有效期" prop="licenseEndDate">
|
||||
<ElInput
|
||||
v-model="formData.licenseEndDate"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="行驶证有效期"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="合格证有效期" prop="qualificationStartDate">
|
||||
<ElInput
|
||||
v-model="formData.qualificationStartDate"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="合格证有效期"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="合格证有效期" prop="qualificationEndDate">
|
||||
<ElInput
|
||||
v-model="formData.qualificationEndDate"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="合格证有效期"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="车辆类型" prop="truckCategory">
|
||||
<ElInput
|
||||
v-model="formData.truckCategory"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="车辆类型"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="车辆图片" prop="picture">
|
||||
<ElInput
|
||||
v-model="formData.picture"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="车辆图片"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="忙碌中" prop="busy">
|
||||
<ElInput
|
||||
v-model="formData.busy"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="忙碌中"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="创建人 Id; sys_user.id" prop="creatorId">
|
||||
<ElInput
|
||||
v-model="formData.creatorId"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="创建人 Id; sys_user.id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="修改人 Id; sys_user.id" prop="modifierId">
|
||||
<ElInput
|
||||
v-model="formData.modifierId"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="修改人 Id; sys_user.id"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="创建时间" prop="createTime">
|
||||
<ElInput
|
||||
v-model="formData.createTime"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="创建时间"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="修改时间" prop="modifyTime">
|
||||
<ElInput
|
||||
v-model="formData.modifyTime"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="修改时间"/>
|
||||
</ElFormItem>
|
||||
<ElFormItem label="是否删除; 0-->未删除、1-->已删除" prop="deleted">
|
||||
<ElInput
|
||||
v-model="formData.deleted"
|
||||
:disabled="status === 'view'"
|
||||
placeholder="是否删除; 0-->未删除、1-->已删除"/>
|
||||
</ElFormItem>
|
||||
</ElForm>
|
||||
<template #footer>
|
||||
<ElButton @click="showDialog = false">{{ status === 'view' ? '关闭' : '取消' }}</ElButton>
|
||||
<ElButton v-if="status !== 'view'" :loading="submiting" type="primary" @click="submitHandler">提交</ElButton>
|
||||
</template>
|
||||
</ElDialog>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import TruckApi from '@/pages/cst/truck/truck-api.ts'
|
||||
import Strings from '@/common/utils/strings.ts'
|
||||
import FormUtil from '@/common/utils/formUtil.ts'
|
||||
import {
|
||||
ElMessage,
|
||||
type FormInstance,
|
||||
type FormRules,
|
||||
} from 'element-plus'
|
||||
|
||||
const emits = defineEmits(['editSucc'])
|
||||
const showDialog = ref(false)
|
||||
const submiting = ref(false)
|
||||
const status = ref<'add' | 'view' | 'modify'>('add')
|
||||
|
||||
const truckFormIns = useTemplateRef<FormInstance>('truckForm')
|
||||
|
||||
const formData = ref<TruckTypes.SearchTruckResult>({})
|
||||
const rules = reactive<FormRules<TruckTypes.SearchTruckResult>>({
|
||||
id: [{ required: true, message: '请填写Id', trigger: 'blur' }],
|
||||
customerId: [{ required: true, message: '请填写归属客户 Id;cst_customer.id', trigger: 'blur' }],
|
||||
orgId: [{ required: true, message: '请填写归属组织', trigger: 'blur' }],
|
||||
licensePlate: [{ required: true, message: '请填写车牌', trigger: 'blur' }],
|
||||
truckLicense: [{ required: true, message: '请填写行驶证图片', trigger: 'blur' }],
|
||||
vnCode: [{ required: true, message: '请填写车架号', trigger: 'blur' }],
|
||||
qualification: [{ required: true, message: '请填写合格证图片', trigger: 'blur' }],
|
||||
carryingCapacity: [{ required: true, message: '请填写最大载重;单位:千克', trigger: 'blur' }],
|
||||
tareWeight: [{ required: true, message: '请填写皮重;单位:千克', trigger: 'blur' }],
|
||||
licenseStartDate: [{ required: true, message: '请填写行驶证有效期', trigger: 'blur' }],
|
||||
licenseEndDate: [{ required: true, message: '请填写行驶证有效期', trigger: 'blur' }],
|
||||
qualificationStartDate: [{ required: true, message: '请填写合格证有效期', trigger: 'blur' }],
|
||||
qualificationEndDate: [{ required: true, message: '请填写合格证有效期', trigger: 'blur' }],
|
||||
truckCategory: [{ required: true, message: '请填写车辆类型', trigger: 'blur' }],
|
||||
picture: [{ required: true, message: '请填写车辆图片', trigger: 'blur' }],
|
||||
busy: [{ required: true, message: '请填写忙碌中', trigger: 'blur' }],
|
||||
creatorId: [{ required: true, message: '请填写创建人 Id; sys_user.id', trigger: 'blur' }],
|
||||
modifierId: [{ required: true, message: '请填写修改人 Id; sys_user.id', trigger: 'blur' }],
|
||||
createTime: [{ required: true, message: '请填写创建时间', trigger: 'blur' }],
|
||||
modifyTime: [{ required: true, message: '请填写修改时间', trigger: 'blur' }],
|
||||
deleted: [{ required: true, message: '请填写是否删除; 0-->未删除、1-->已删除', trigger: 'blur' }],
|
||||
})
|
||||
|
||||
function dialogCloseHandler() {
|
||||
formData.value = {}
|
||||
}
|
||||
|
||||
function submitHandler() {
|
||||
if (status.value === 'view') return
|
||||
submiting.value = true
|
||||
if (formData.value.id != null) {
|
||||
FormUtil.submit(truckFormIns, () => TruckApi.modify(formData.value))
|
||||
.then(() => {
|
||||
ElMessage.success('修改成功')
|
||||
emits('editSucc')
|
||||
showDialog.value = false
|
||||
})
|
||||
.finally(() => {
|
||||
submiting.value = false
|
||||
})
|
||||
} else {
|
||||
FormUtil.submit(truckFormIns, () => TruckApi.add(formData.value))
|
||||
.then(() => {
|
||||
ElMessage.success('添加成功')
|
||||
emits('editSucc')
|
||||
showDialog.value = false
|
||||
})
|
||||
.finally(() => {
|
||||
submiting.value = false
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
defineExpose({
|
||||
open(data: TruckTypes.SearchTruckResult = {}) {
|
||||
showDialog.value = true
|
||||
if (!Strings.isBlank(data.id)) {
|
||||
status.value = 'modify'
|
||||
TruckApi.detail(data.id!)
|
||||
.then(res => {
|
||||
formData.value = res.data
|
||||
})
|
||||
} else {
|
||||
status.value = 'add'
|
||||
formData.value = data
|
||||
}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<style lang="stylus" scoped>
|
||||
.form-panel {
|
||||
padding 20px
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
export default {
|
||||
component: () => import('@/pages/cst/truck/Truck.vue'),
|
||||
} as RouterTypes.RouteConfig
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
import {
|
||||
get,
|
||||
post
|
||||
} from '@/common/utils/http-util.ts'
|
||||
|
||||
export default {
|
||||
paging(data: TruckTypes.SearchTruckParam) {
|
||||
return get<G.PageResult<TruckTypes.SearchTruckResult>>('/truck/paging', data)
|
||||
},
|
||||
detail(id: string) {
|
||||
return get<TruckTypes.SearchTruckResult>('/truck/detail', {id})
|
||||
},
|
||||
add(data: TruckTypes.AddTruckParam) {
|
||||
return post('/truck/add', data)
|
||||
},
|
||||
modify(data: TruckTypes.ModifyTruckParam) {
|
||||
return post('/truck/modify', data)
|
||||
},
|
||||
del(ids: string[]) {
|
||||
return post('/truck/del', ids)
|
||||
},
|
||||
}
|
||||
|
|
@ -0,0 +1,185 @@
|
|||
export {}
|
||||
|
||||
declare global {
|
||||
namespace TruckTypes {
|
||||
interface SearchTruckParam extends G.PageParam {
|
||||
// Id
|
||||
id?: string
|
||||
// 归属客户 Id;cst_customer.id
|
||||
customerId?: string
|
||||
// 归属组织
|
||||
orgId?: string
|
||||
// 车牌
|
||||
licensePlate?: string
|
||||
// 行驶证图片
|
||||
truckLicense?: string
|
||||
// 车架号
|
||||
vnCode?: string
|
||||
// 合格证图片
|
||||
qualification?: string
|
||||
// 最大载重;单位:千克
|
||||
carryingCapacity?: number
|
||||
// 皮重;单位:千克
|
||||
tareWeight?: number
|
||||
// 行驶证有效期
|
||||
licenseStartDate?: string
|
||||
// 行驶证有效期
|
||||
licenseEndDate?: string
|
||||
// 合格证有效期
|
||||
qualificationStartDate?: string
|
||||
// 合格证有效期
|
||||
qualificationEndDate?: string
|
||||
// 车辆类型
|
||||
truckCategory?: string
|
||||
// 车辆图片
|
||||
picture?: string
|
||||
// 忙碌中
|
||||
busy?: boolean
|
||||
// 创建人 Id; sys_user.id
|
||||
creatorId?: string
|
||||
// 修改人 Id; sys_user.id
|
||||
modifierId?: string
|
||||
// 创建时间
|
||||
createTime?: string
|
||||
// 修改时间
|
||||
modifyTime?: string
|
||||
// 是否删除; 0-->未删除、1-->已删除
|
||||
deleted?: boolean
|
||||
}
|
||||
|
||||
interface SearchTruckResult {
|
||||
// Id
|
||||
id?: string
|
||||
// 归属客户 Id;cst_customer.id
|
||||
customerId?: string
|
||||
// 归属组织
|
||||
orgId?: string
|
||||
// 车牌
|
||||
licensePlate?: string
|
||||
// 行驶证图片
|
||||
truckLicense?: string
|
||||
// 车架号
|
||||
vnCode?: string
|
||||
// 合格证图片
|
||||
qualification?: string
|
||||
// 最大载重;单位:千克
|
||||
carryingCapacity?: number
|
||||
// 皮重;单位:千克
|
||||
tareWeight?: number
|
||||
// 行驶证有效期
|
||||
licenseStartDate?: string
|
||||
// 行驶证有效期
|
||||
licenseEndDate?: string
|
||||
// 合格证有效期
|
||||
qualificationStartDate?: string
|
||||
// 合格证有效期
|
||||
qualificationEndDate?: string
|
||||
// 车辆类型
|
||||
truckCategory?: string
|
||||
// 车辆图片
|
||||
picture?: string
|
||||
// 忙碌中
|
||||
busy?: boolean
|
||||
// 创建人 Id; sys_user.id
|
||||
creatorId?: string
|
||||
// 修改人 Id; sys_user.id
|
||||
modifierId?: string
|
||||
// 创建时间
|
||||
createTime?: string
|
||||
// 修改时间
|
||||
modifyTime?: string
|
||||
// 是否删除; 0-->未删除、1-->已删除
|
||||
deleted?: boolean
|
||||
}
|
||||
|
||||
interface AddTruckParam {
|
||||
// Id
|
||||
id?: string
|
||||
// 归属客户 Id;cst_customer.id
|
||||
customerId?: string
|
||||
// 归属组织
|
||||
orgId?: string
|
||||
// 车牌
|
||||
licensePlate?: string
|
||||
// 行驶证图片
|
||||
truckLicense?: string
|
||||
// 车架号
|
||||
vnCode?: string
|
||||
// 合格证图片
|
||||
qualification?: string
|
||||
// 最大载重;单位:千克
|
||||
carryingCapacity?: number
|
||||
// 皮重;单位:千克
|
||||
tareWeight?: number
|
||||
// 行驶证有效期
|
||||
licenseStartDate?: string
|
||||
// 行驶证有效期
|
||||
licenseEndDate?: string
|
||||
// 合格证有效期
|
||||
qualificationStartDate?: string
|
||||
// 合格证有效期
|
||||
qualificationEndDate?: string
|
||||
// 车辆类型
|
||||
truckCategory?: string
|
||||
// 车辆图片
|
||||
picture?: string
|
||||
// 忙碌中
|
||||
busy?: boolean
|
||||
// 创建人 Id; sys_user.id
|
||||
creatorId?: string
|
||||
// 修改人 Id; sys_user.id
|
||||
modifierId?: string
|
||||
// 创建时间
|
||||
createTime?: string
|
||||
// 修改时间
|
||||
modifyTime?: string
|
||||
// 是否删除; 0-->未删除、1-->已删除
|
||||
deleted?: boolean
|
||||
}
|
||||
|
||||
interface ModifyTruckParam {
|
||||
// Id
|
||||
id?: string
|
||||
// 归属客户 Id;cst_customer.id
|
||||
customerId?: string
|
||||
// 归属组织
|
||||
orgId?: string
|
||||
// 车牌
|
||||
licensePlate?: string
|
||||
// 行驶证图片
|
||||
truckLicense?: string
|
||||
// 车架号
|
||||
vnCode?: string
|
||||
// 合格证图片
|
||||
qualification?: string
|
||||
// 最大载重;单位:千克
|
||||
carryingCapacity?: number
|
||||
// 皮重;单位:千克
|
||||
tareWeight?: number
|
||||
// 行驶证有效期
|
||||
licenseStartDate?: string
|
||||
// 行驶证有效期
|
||||
licenseEndDate?: string
|
||||
// 合格证有效期
|
||||
qualificationStartDate?: string
|
||||
// 合格证有效期
|
||||
qualificationEndDate?: string
|
||||
// 车辆类型
|
||||
truckCategory?: string
|
||||
// 车辆图片
|
||||
picture?: string
|
||||
// 忙碌中
|
||||
busy?: boolean
|
||||
// 创建人 Id; sys_user.id
|
||||
creatorId?: string
|
||||
// 修改人 Id; sys_user.id
|
||||
modifierId?: string
|
||||
// 创建时间
|
||||
createTime?: string
|
||||
// 修改时间
|
||||
modifyTime?: string
|
||||
// 是否删除; 0-->未删除、1-->已删除
|
||||
deleted?: boolean
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue