Merge remote-tracking branch 'origin/dev' into dev

dev
WenShiJun 2024-03-01 14:37:48 +08:00
commit c2c9d83777
9 changed files with 1746 additions and 1 deletions

2
.env
View File

@ -1,4 +1,4 @@
VITE_BASE_URL=http://192.168.0.49:8093/ VITE_BASE_URL=http://192.168.0.62:8093/
VITE_PROXY=/api/ VITE_PROXY=/api/
VITE_PROXY_QAAQ=/qaaq_api/ VITE_PROXY_QAAQ=/qaaq_api/
VITE_QAAQ_URL=https://gateway.qhdsafety.com/ VITE_QAAQ_URL=https://gateway.qhdsafety.com/

View File

@ -0,0 +1,83 @@
import {
getActiveSafety, getBelongingDepartment,
getDynamicSupervision, getEmissionStandard, getFnGetFuelType, getLicenseStatus,
getNetworkStatus,
getTransportationEnterprise, getTransportCategory,
getVehicleColor, getVehicleType
} from "@/request/operation_vehicle.js";
import { ref } from "vue";
export const layoutFnGetVehicleColor = async () => {
const resData = await getVehicleColor({
DICTIONARIES_ID: "xer11f2b259a42609512dfad07c4fb53",
});
return ref(resData.list);
};
export const layoutFnGetTransportationEnterprise = async () => {
const resData = await getTransportationEnterprise({
DICTIONARIES_ID: "73211f2b259a42609512dfad07c4f11a",
});
return ref(resData.list);
};
export const layoutFnGetNetworkStatus = async () => {
const resData = await getNetworkStatus({
DICTIONARIES_ID: "xes11f2b259a42609512dfad07c4fb53",
});
return ref(resData.list);
};
export const layoutFnGetDynamicSupervision = async () => {
const resData = await getDynamicSupervision({
DICTIONARIES_ID: "51011f2b259a42609512dfad07c4f11a",
});
return ref(resData.list);
};
export const layoutFnGetActiveSafety = async () => {
const resData = await getActiveSafety({
DICTIONARIES_ID: "59111f2b259a42609512dfad07c4f11a",
});
return ref(resData.list);
};
export const layoutFnGetLicenseStatus = async () => {
const resData = await getLicenseStatus({
DICTIONARIES_ID: "77711f2b259a42609512dfad07c4f11a",
});
return ref(resData.list);
};
export const layoutFnGetTransportCategory = async () => {
const resData = await getTransportCategory({
DICTIONARIES_ID: "08411f2b259a42609512dfad07c4f11a",
});
return ref(resData.list);
};
export const layoutFnGetBelongingDepartment = async () => {
const resData = await getBelongingDepartment({
DICTIONARIES_ID: "80x11f2b259a42609512dfad07c4f11a",
});
return ref(resData.list);
};
export const layoutFnGetVehicleType = async () => {
const resData = await getVehicleType({
DICTIONARIES_ID: "08411f2b259a45681512dfad07c4f11a",
});
return ref(resData.list);
};
export const layoutFnGetFuelType = async () => {
const resData = await getFnGetFuelType({
DICTIONARIES_ID: "8xe11f2b259a42609512dfad07c4f11a",
});
return ref(resData.list);
};
export const layoutFnGetEmissionStandard = async () => {
const resData = await getEmissionStandard({
DICTIONARIES_ID: "4xe11f2b259a42609512dfad07c4f11a",
});
return ref(resData.list);
};

View File

@ -0,0 +1,207 @@
<template>
<el-row :gutter="24">
<el-col
:span="
hiddenType === 'unqualified' || hiddenType === 'otherHidden' ? 12 : 24
"
>
<el-form ref="formRef" :model="form" :rules="rules" label-width="100px">
<el-row>
<el-col :span="24" v-if="hiddenType === 'unqualified'">
<el-form-item label="检查内容" prop="CHECK_CONTENT">
<el-input
:model-value="info.CHECK_CONTENT"
disabled
type="textarea"
autosize
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="隐患部位" prop="HIDDENPART">
<el-input
v-model="form.HIDDENPART"
placeholder="请输入内容"
@blur="fnGetHiddenDangerDatabaseList"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="隐患描述" prop="HIDDENDESCR">
<el-input
v-model="form.HIDDENDESCR"
placeholder="请输入内容"
type="textarea"
:autosize="{ minRows: 3 }"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="隐患级别" prop="HIDDENLEVEL">
<el-select
v-model="form.HIDDENLEVEL"
@change="
form.HIDDENLEVEL === 'hiddenLevel0002'
? (form.RECTIFICATIONTYPE = '2')
: null
"
>
<el-option
v-for="item in hazardLevelList"
:key="item.BIANMA"
:label="item.NAME"
:value="item.BIANMA"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24" v-if="info.BAO_BAO_TYPE === '1'">
<el-form-item label="隐患类别" prop="HIDDEN_CATEGORY">
<el-select v-model="form.HIDDEN_CATEGORY">
<el-option
v-for="item in hazardCategoriesList"
:key="item.DICTIONARIES_ID"
:label="item.NAME"
:value="item.DICTIONARIES_ID"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="隐患类型" prop="HIDDENTYPE">
<layout-hidden-danger-type
v-model="form.HIDDENTYPE"
ref="hiddenDangerTypeRef"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="隐患图片" prop="hiddenImgs">
<layout-upload
v-model:file-list="form.hiddenImgs"
list-type="picture-card"
accept=".jpg,.jpeg,.png"
:limit="99"
delete-to-server
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="隐患视频" prop="videoFiles">
<layout-upload
v-model:file-list="form.videoFiles"
accept=".mp4"
:size="50"
@preview="fnVideoPreview"
>
<template #tip>只能上传mp4文件且不超过50M</template>
</layout-upload>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="隐患处置" prop="RECTIFICATIONTYPE">
<el-radio-group v-model="form.RECTIFICATIONTYPE">
<el-radio
:disabled="form.HIDDENLEVEL === 'hiddenLevel0002'"
label="1"
>
立即整改
</el-radio>
<el-radio label="2">限期整改</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<template v-if="form.RECTIFICATIONTYPE === '1'">
<el-col :span="24">
<el-form-item prop="RECTIFYDESCR" label="整改描述">
<el-input
v-model="form.RECTIFYDESCR"
placeholder="请输入内容"
type="textarea"
:autosize="{ minRows: 3 }"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="整改后图片" prop="rectifyImgs">
<layout-upload
v-model:file-list="form.rectifyImgs"
list-type="picture-card"
accept=".jpg,.jpeg,.png"
:limit="99"
delete-to-server
/>
</el-form-item>
</el-col>
</template>
<template v-if="form.RECTIFICATIONTYPE === '2'">
<el-col :span="24">
<el-form-item prop="RECTIFICATIONDEADLINE" label="整改期限">
<el-date-picker
v-model="form.RECTIFICATIONDEADLINE"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
type="date"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="整改部门" prop="RECTIFICATIONDEPT">
<layout-department
v-model="form.RECTIFICATIONDEPT"
@update:model-value="form.RECTIFICATIONOR = ''"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="整改人" prop="RECTIFICATIONOR">
<el-select v-model="form.RECTIFICATIONOR">
<el-option
v-for="item in data.rectifyUserList"
:key="item.USER_ID"
:label="item.NAME"
:value="item.USER_ID"
/>
</el-select>
</el-form-item>
</el-col>
</template>
</el-row>
</el-form>
</el-col>
<el-col
:span="12"
v-if="hiddenType === 'unqualified' || hiddenType === 'otherHidden'"
>
<div
v-for="item in data.list"
:key="item.HIDDEN_LIBRARY_ID"
class="item"
@click="fnChoice(item)"
>
<el-descriptions :column="1" border>
<el-descriptions-item label="风险单元名称">
{{ item.RISK_UNIT_NAME }}
</el-descriptions-item>
<el-descriptions-item label="隐患部位">
{{ item.HIDDEN_PART }}
</el-descriptions-item>
<el-descriptions-item label="隐患描述">
{{ item.INSPECTION_BASIS }}
</el-descriptions-item>
</el-descriptions>
</div>
</el-col>
</el-row>
</template>
<script setup>
import LayoutHiddenDangerType from "@/components/hazard_type/index.vue";
import LayoutDepartment from "@/components/department/index.vue";
import LayoutUpload from "@/components/upload/index.vue";
</script>
<style scoped lang="scss">
</style>

View File

@ -0,0 +1,82 @@
import { post, upload } from "@/request/axios.js";
export const getVehicleColor = (params) =>
post("/dictionaries/getVehicleColor", {
loading: false,
...params,
});
export const getTransportationEnterprise = (params) =>
post("/dictionaries/getTransportationEnterprise", {
loading: false,
...params,
});
export const getNetworkStatus = (params) =>
post("/dictionaries/getNetworkStatus", {
loading: false,
...params,
});
export const getDynamicSupervision = (params) =>
post("/dictionaries/getDynamicSupervision", {
loading: false,
...params,
});
export const getActiveSafety = (params) =>
post("/dictionaries/getActiveSafety", {
loading: false,
...params,
});
export const getLicenseStatus = (params) =>
post("/dictionaries/getLicenseStatus", {
loading: false,
...params,
});
export const getTransportCategory = (params) =>
post("/dictionaries/getTransportCategory", {
loading: false,
...params,
});
export const getBelongingDepartment = (params) =>
post("/dictionaries/getBelongingDepartment", {
loading: false,
...params,
});
export const getVehicleType = (params) =>
post("/dictionaries/getVehicleType", {
loading: false,
...params,
});
export const getFnGetFuelType = (params) =>
post("/dictionaries/getFnGetFuelType", {
loading: false,
...params,
});
export const getEmissionStandard = (params) =>
post("/dictionaries/getEmissionStandard", {
loading: false,
...params,
});
export const getOperationVehicleList = (params) =>
post("/operatingvehicles/list", params); // 运营车辆列表export const getOperationVehicleList = (params) =>
export const addOperatingVehicleInfo = (params) =>
upload("/operatingvehicles/add", params); // 资料课件维护添加
export const findByIdOperatingVehicleInfo = (params) =>
post("/operatingvehicles/goEdit", params); // 新增运营车辆
export const editOperatingVehicleInfo = (params) =>
upload("/operatingvehicles/edit", params); // 修改运营车辆

View File

@ -0,0 +1,391 @@
<template>
<layout-card>
<el-divider content-position="left">基本信息</el-divider>
<el-form
ref="formRef"
:model="data.form"
:rules="rules"
label-width="100px"
>
<el-row>
<el-col :span="6">
<el-form-item label="自编号" prop="GOODSSELFNUMBER">
<el-input v-model="data.form.GOODSSELFNUMBER" placeholder="请填写自编号" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item prop="PLATE_NUMBER" label="车牌号">
<el-input v-model = "data.form.PLATE_NUMBER" placeholder = "请填写车牌号"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="车辆颜色" prop="VEHICLE_COLOR">
<el-select v-model="data.form.VEHICLE_COLOR">
<el-option
v-for="item in getVehicleColorList"
:key="item.BIANMA"
:label="item.NAME"
:value="item.NAME"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="车架号" prop="FRAMES_NUMBER">
<el-input v-model="data.form.FRAMES_NUMBER" placeholder="请填写车架号"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="发动机号" prop="ENGINE_NUMBER">
<el-input v-model="data.form.ENGINE_NUMBER" placeholder="请填写发动机号"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="营运证号" prop="OPERATING_CERTIFICATE">
<el-input v-model="data.form.OPERATING_CERTIFICATE" placeholder="请填写营运证号"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="运输企业" prop="TRANSPORT_ENTERPRISES">
<el-select v-model="data.form.TRANSPORT_ENTERPRISES">
<el-option
v-for="item in getTransportationEnterpriseList"
:key="item.BIANMA"
:label="item.NAME"
:value="item.NAME"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="运输类别" prop="TRANSPORT_TYPE">
<el-select v-model="data.form.TRANSPORT_TYPE">
<el-option
v-for="item in getTransportCategoryList"
:key="item.BIANMA"
:label="item.NAME"
:value="item.NAME"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="归属部门" prop="BELONGING_DEPARTMENT">
<el-select v-model="data.form.BELONGING_DEPARTMENT">
<el-option
v-for="item in getBelongingDepartment"
:key="item.BIANMA"
:label="item.NAME"
:value="item.NAME"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="车辆类型" prop="VEHICLE_TYPE">
<el-select v-model="data.form.VEHICLE_TYPE">
<el-option
v-for="item in getVehicleTypeList"
:key="item.BIANMA"
:label="item.NAME"
:value="item.NAME"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="车主/业主" prop="VEHICLEOWNER">
<el-input v-model="data.form.VEHICLEOWNER" placeholder="请填写车主/业主"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="车主电话" prop="VEHICLEOWNER_NUMBER">
<el-input v-model="data.form.VEHICLEOWNER_NUMBER" placeholder="请填写车主电话"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="车主住址" prop="VEHICLEOWNER_ADDRESS">
<el-input v-model="data.form.VEHICLEOWNER_ADDRESS" placeholder="请填写车主住址"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="联系人" prop="CONTACT">
<el-input v-model="data.form.CONTACT" placeholder="请填写联系人"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="联系电话" prop="CONTACT_NUMBER">
<el-input v-model="data.form.CONTACT_NUMBER" placeholder="请填写联系电话"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="家庭住址" prop="HOME_ADDRESS">
<el-input v-model="data.form.HOME_ADDRESS" placeholder="请输入家庭住址"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="实际住址" prop="PHYSICAL_ADDRESS">
<el-input v-model="data.form.PHYSICAL_ADDRESS" placeholder="请输入实际住址"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="初登日期" prop="FIRSTSHOW_DATE">
<el-date-picker
v-model="data.form.FIRSTSHOW_DATE"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
placeholder="请选择初登日期"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="发证日期" prop="CERTIFICATE_DATE">
<el-date-picker
v-model="data.form.CERTIFICATE_DATE"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
placeholder="请选择发证日期"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="到期日期" prop="EXPIRE_DATE">
<el-date-picker
v-model="data.form.EXPIRE_DATE"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
placeholder="请选择到期日期"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="政府监管">
<el-switch
v-model="data.form.GOVERNMENT_OVERSIGHT"
active-value="0"
inactive-value="1"
/>
</el-form-item>
</el-col>
<el-divider content-position="left">检查内容</el-divider>
<el-col :span="6">
<el-form-item label="车辆品牌" prop="VEHICLE_BRAND">
<el-input v-model="data.form.VEHICLE_BRAND" placeholder="请填写车辆品牌"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="车辆型号" prop="VEHICLE_MODEL">
<el-input v-model="data.form.VEHICLE_MODEL" placeholder="请填写车辆型号"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="燃料类型" prop="FUEL_TYPE">
<el-select v-model="data.form.FUEL_TYPE">
<el-option
v-for="item in getFuelTypeList"
:key="item.BIANMA"
:label="item.NAME"
:value="item.NAME"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="排放标准" prop="EMISSION_STANDARD">
<el-select v-model="data.form.EMISSION_STANDARD">
<el-option
v-for="item in getEmissionStandardList"
:key="item.BIANMA"
:label="item.NAME"
:value="item.NAME"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="核定总质量" prop="VOUCH_TOTALMASS">
<el-input v-model="data.form.VOUCH_TOTALMASS" placeholder="请填写核定总质量"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="核定载人数" prop="VOUCH_NUMBERLOAD">
<el-input v-model="data.form.VOUCH_NUMBERLOAD" placeholder="请填写核定载人数"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="核定载质量" prop="VOUCH_PAYLOAD">
<el-input v-model="data.form.VOUCH_PAYLOAD" placeholder="请填写核定载质量"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="准牵引质量" prop="RACTIONMASS_QUALITY">
<el-input v-model="data.form.RACTIONMASS_QUALITY" placeholder="请填写准牵引质量"></el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="备注" prop="REMARK">
<el-input
v-model="data.form.REMARK"
placeholder="请填写备注"
type="textarea"
:autosize="{ minRows: 3 }"
/>
</el-form-item>
</el-col>
<el-divider content-position="left">相关照片</el-divider>
<el-col :span="7">
<el-form-item label="上传车头图片" prop="HEADSTOCK_PHOTO">
<layout-upload
v-model:file-list="data.form.HEADSTOCK_PHOTO"
list-type="picture-card"
accept=".jpg,.jpeg,.png"
/>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="上传行驶证照片" prop="DRIVINGLICENSE_PHOTO">
<layout-upload
v-model:file-list="data.form.DRIVINGLICENSE_PHOTO"
list-type="picture-card"
accept=".jpg,.jpeg,.png"
/>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="上传营运证照片" prop="OPERATING_CERTIFICATE_PHOTO">
<layout-upload
v-model:file-list="data.form.OPERATING_CERTIFICATE_PHOTO"
list-type="picture-card"
accept=".jpg,.jpeg,.png"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="车辆资料" prop="VEHICLE_MATERIAL">
<el-input
v-model="data.form.VEHICLE_MATERIAL"
/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="tc mt-10">
<el-button type="primary" @click="fnSubmit"></el-button>
</div>
</layout-card>
</template>
<script setup>
import { reactive, ref } from "vue";
import {
layoutFnGetVehicleColor,
layoutFnGetTransportationEnterprise,
layoutFnGetTransportCategory,
layoutFnGetBelongingDepartment,
layoutFnGetFuelType,
layoutFnGetEmissionStandard,
layoutFnGetVehicleType
} from "@/assets/js/operation_vehicle.js";
import {
addOperatingVehicleInfo,
} from "@/request/operation_vehicle.js";
import useFormValidate from "@/assets/js/useFormValidate.js";
import LayoutUpload from "@/components/upload/index.vue";
import { ElMessage } from "element-plus";
import { debounce } from "throttle-debounce";
const rules = {
PLATE_NUMBER: [{ required: true, message: "车牌号不能为空", trigger: "blur" }],
VEHICLE_COLOR: [{required: true, message: "车辆颜色不能为空", trigger: "change"}],
FRAMES_NUMBER: [{required: true, message: "车架号不能为空", trigger: "change"}],
TRANSPORT_ENTERPRISES: [{required: true, message: "运输企业不能为空", trigger: "change"}],
TRANSPORT_TYPE: [{ required: true, message: "运输类别不能为空", trigger: "change" }],
VEHICLE_TYPE: [{ required: true, message: "车辆类型不能为空", trigger: "blur" }],
VEHICLEOWNER: [{ required: true, message: "车主/业主不能为空", trigger: "blur" }],
VEHICLEOWNER_NUMBER: [{required: true, message: "车主电话不能为空", trigger: "blur"}],
CONTACT: [{required: true, message: "联系人不能为空", trigger: "blur"}],
CONTACT_NUMBER: [{required: true, message: "联系电话不能为空", trigger: "blur"}],
FIRSTSHOW_DATE: [{required: true, message: "初登日期不能为空", trigger: "blur"}],
};
const formRef = ref(null);
const data = reactive({
form: {
GOODSSELFNUMBER: "",
PLATE_NUMBER: "",
VEHICLE_COLOR: "",
FRAMES_NUMBER: "",
ENGINE_NUMBER: "",
OPERATING_CERTIFICATE: [],
TRANSPORT_ENTERPRISES: "",
TRANSPORT_TYPE: "",
BELONGING_DEPARTMENT: "",
VEHICLE_TYPE: "",
VEHICLEOWNER: "",
VEHICLEOWNER_NUMBER: "",
VEHICLEOWNER_ADDRESS: "",
CONTACT: "",
CONTACT_NUMBER: "",
HOME_ADDRESS: "",
PHYSICAL_ADDRESS: "",
FIRSTSHOW_DATE: "",
CERTIFICATE_DATE: "",
EXPIRE_DATE: "",
GOVERNMENT_OVERSIGHT: "",
VEHICLE_BRAND: "",
VEHICLE_MODEL: "",
FUEL_TYPE: "",
EMISSION_STANDARD: "",
VOUCH_TOTALMASS: "",
VOUCH_NUMBERLOAD: "",
VOUCH_PAYLOAD: "",
RACTIONMASS_QUALITY: "",
REMARK: "",
HEADSTOCK_PHOTO: [],
DRIVINGLICENSE_PHOTO: [],
OPERATING_CERTIFICATE_PHOTO: [],
NETWORK_STATUS: "",
DYNAMIC_SUPERVISION: "",
ACTIVE_SAFETY: "",
DRIVINGPREMIT_STATUS: "",
TRANSPORT_CATEGORY: "",
VEHICLE_MATERIAL: "",
FREIGHT_TYPE: "",
},
});
const getVehicleColorList = await layoutFnGetVehicleColor();
const getTransportationEnterpriseList = await layoutFnGetTransportationEnterprise();
const getTransportCategoryList = await layoutFnGetTransportCategory();
const getBelongingDepartment = await layoutFnGetBelongingDepartment();
const getFuelTypeList = await layoutFnGetFuelType();
const getEmissionStandardList = await layoutFnGetEmissionStandard();
const getVehicleTypeList = await layoutFnGetVehicleType();
const fnSubmit = debounce(
1000,
async () => {
await useFormValidate(formRef);
const formData = new FormData();
Object.keys(data.form).forEach((key) => {
formData.append(key, data.form[key]);
});
formData.delete("HEADSTOCK_PHOTO");
formData.delete("DRIVINGLICENSE_PHOTO");
formData.delete("OPERATING_CERTIFICATE_PHOTO");
if (data.form.HEADSTOCK_PHOTO[0].raw) formData.append("headstockFile", data.form.HEADSTOCK_PHOTO[0].raw);
if (data.form.DRIVINGLICENSE_PHOTO[0].raw) formData.append("drivinglicenseFile", data.form.DRIVINGLICENSE_PHOTO[0].raw);
if (data.form.OPERATING_CERTIFICATE_PHOTO[0].raw) formData.append("operatingCertificateFile", data.form.OPERATING_CERTIFICATE_PHOTO[0].raw);
formData.append("headstockFileType", !!data.form.HEADSTOCK_PHOTO[0].raw);
formData.append("drivinglicenseFileType", !!data.form.DRIVINGLICENSE_PHOTO[0].raw);
formData.append("operatingCertificateFileType", !!data.form.OPERATING_CERTIFICATE_PHOTO[0].raw);
await addOperatingVehicleInfo(formData);
ElMessage.success("提交成功");
},
{ atBegin: true }
);
</script>
<style scoped lang="scss"></style>

View File

@ -0,0 +1,130 @@
<template>
<el-dialog title="选择其他存在风险" v-model="visible" width="1500">
<el-form
:model="searchForm"
label-width="60px"
@submit.prevent="fnResetPagination"
>
<el-row>
<el-col :span="6">
<el-form-item label="关键字" prop="KEYWORDS">
<el-input
v-model="searchForm.KEYWORDS"
placeholder="请输入关键字"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="部门" prop="DEPARTMENT_ID">
<layout-department v-model="searchForm.DEPARTMENT_ID" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="类型" prop="OTHERLEVELID">
<el-select v-model="searchForm.OTHERLEVELID">
<el-option
v-for="item in riskClassificationList"
:key="item.BIANMA"
:label="item.NAME"
:value="item.BIANMA"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label-width="10px">
<el-button type="primary" native-type="submit">搜索</el-button>
<el-button native-type="reset" @click="fnResetPagination">
重置
</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
<layout-table
ref="tableRef"
:data="list"
v-model:pagination="pagination"
@get-data="fnGetData"
row-key="RISKCHECKITEM_ID"
>
<el-table-column reserve-selection type="selection" width="55" />
<el-table-column label="序号" width="70">
<template v-slot="{ $index }">
{{ serialNumber(pagination, $index) }}
</template>
</el-table-column>
<el-table-column prop="RISKUNITNAME" label="风险点(单元)" width="105" />
<el-table-column prop="PARTSNAME" label="辨识部位" width="90" />
<el-table-column prop="RISK_DESCR" label="存在风险" />
<el-table-column prop="DNAME5" label="风险分级" width="100" />
<el-table-column prop="USERNAME" label="管控负责人" width="90" />
<el-table-column prop="CHECK_CONTENT" label="检查内容" />
</layout-table>
<template #footer>
<el-button @click="fnClose"></el-button>
<el-button type="primary" @click="fnSubmit"> </el-button>
</template>
</el-dialog>
</template>
<script setup>
import { useVModel } from "@vueuse/core";
import { debounce } from "throttle-debounce";
import LayoutDepartment from "@/components/department/index.vue";
import useListData from "@/assets/js/useListData.js";
import { getInventoryManagementOtherRiskList } from "@/request/hazard_investigation.js";
import { watch } from "vue";
import { serialNumber } from "@/assets/js/utils.js";
import { layoutFnGetRiskClassification } from "@/assets/js/data_dictionary.js";
import { differenceWith } from "lodash-es";
const props = defineProps({
visible: {
type: Boolean,
required: true,
default: false,
},
listData: {
type: Array,
required: true,
default: () => [],
},
});
const emits = defineEmits(["update:visible", "submit"]);
const visible = useVModel(props, "visible", emits);
const { list, searchForm, pagination, fnGetData, fnResetPagination, tableRef } =
useListData(getInventoryManagementOtherRiskList, {
immediate: false,
clearSelection: false,
});
const riskClassificationList = await layoutFnGetRiskClassification();
const stop = watch(
() => props.visible,
(value) => {
if (value) {
fnGetData();
stop && stop();
}
}
);
const fnClose = () => {
visible.value = false;
};
const fnSubmit = debounce(
1000,
() => {
const selectionData = tableRef.value.getSelectionRows();
const listData = differenceWith(
selectionData,
props.listData,
(a, b) => a.RISKCHECKITEM_ID === b.RISKCHECKITEM_ID
);
fnClose();
emits("submit", listData);
},
{ atBegin: true }
);
</script>
<style scoped lang="scss"></style>

View File

@ -0,0 +1,412 @@
<template>
<layout-card>
<el-divider content-position="left">基本信息</el-divider>
<el-form
ref="formRef"
:model="data.form"
:rules="rules"
label-width="100px"
>
<el-row>
<el-col :span="6">
<el-form-item label="自编号" prop="GOODSSELFNUMBER">
<el-input v-model="data.form.GOODSSELFNUMBER" placeholder="请填写自编号" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item prop="PLATE_NUMBER" label="车牌号">
<el-input v-model = "data.form.PLATE_NUMBER" placeholder = "请填写车牌号"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="车辆颜色" prop="VEHICLE_COLOR">
<el-select v-model="data.form.VEHICLE_COLOR">
<el-option
v-for="item in getVehicleColorList"
:key="item.BIANMA"
:label="item.NAME"
:value="item.NAME"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="车架号" prop="FRAMES_NUMBER">
<el-input v-model="data.form.FRAMES_NUMBER" placeholder="请填写车架号"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="发动机号" prop="ENGINE_NUMBER">
<el-input v-model="data.form.ENGINE_NUMBER" placeholder="请填写发动机号"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="营运证号" prop="OPERATING_CERTIFICATE">
<el-input v-model="data.form.OPERATING_CERTIFICATE" placeholder="请填写营运证号"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="运输企业" prop="TRANSPORT_ENTERPRISES">
<el-select v-model="data.form.TRANSPORT_ENTERPRISES">
<el-option
v-for="item in getTransportationEnterpriseList"
:key="item.BIANMA"
:label="item.NAME"
:value="item.NAME"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="运输类别" prop="TRANSPORT_TYPE">
<el-select v-model="data.form.TRANSPORT_TYPE">
<el-option
v-for="item in getTransportCategoryList"
:key="item.BIANMA"
:label="item.NAME"
:value="item.NAME"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="归属部门" prop="BELONGING_DEPARTMENT">
<el-select v-model="data.form.BELONGING_DEPARTMENT">
<el-option
v-for="item in getBelongingDepartment"
:key="item.BIANMA"
:label="item.NAME"
:value="item.NAME"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="车辆类型" prop="VEHICLE_TYPE">
<el-select v-model="data.form.VEHICLE_TYPE">
<el-option
v-for="item in getVehicleTypeList"
:key="item.BIANMA"
:label="item.NAME"
:value="item.NAME"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="车主/业主" prop="VEHICLEOWNER">
<el-input v-model="data.form.VEHICLEOWNER" placeholder="请填写车主/业主"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="车主电话" prop="VEHICLEOWNER_NUMBER">
<el-input v-model="data.form.VEHICLEOWNER_NUMBER" placeholder="请填写车主电话"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="车主住址" prop="VEHICLEOWNER_ADDRESS">
<el-input v-model="data.form.VEHICLEOWNER_ADDRESS" placeholder="请填写车主住址"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="联系人" prop="CONTACT">
<el-input v-model="data.form.CONTACT" placeholder="请填写联系人"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="联系电话" prop="CONTACT_NUMBER">
<el-input v-model="data.form.CONTACT_NUMBER" placeholder="请填写联系电话"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="家庭住址" prop="HOME_ADDRESS">
<el-input v-model="data.form.HOME_ADDRESS" placeholder="请输入家庭住址"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="实际住址" prop="PHYSICAL_ADDRESS">
<el-input v-model="data.form.PHYSICAL_ADDRESS" placeholder="请输入实际住址"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="初登日期" prop="FIRSTSHOW_DATE">
<el-date-picker
v-model="data.form.FIRSTSHOW_DATE"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
placeholder="请选择初登日期"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="发证日期" prop="CERTIFICATE_DATE">
<el-date-picker
v-model="data.form.CERTIFICATE_DATE"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
placeholder="请选择发证日期"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="到期日期" prop="EXPIRE_DATE">
<el-date-picker
v-model="data.form.EXPIRE_DATE"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
placeholder="请选择到期日期"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="政府监管">
<el-switch
v-model="data.form.GOVERNMENT_OVERSIGHT"
active-value="0"
inactive-value="1"
/>
</el-form-item>
</el-col>
<el-divider content-position="left">检查内容</el-divider>
<el-col :span="6">
<el-form-item label="车辆品牌" prop="VEHICLE_BRAND">
<el-input v-model="data.form.VEHICLE_BRAND" placeholder="请填写车辆品牌"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="车辆型号" prop="VEHICLE_MODEL">
<el-input v-model="data.form.VEHICLE_MODEL" placeholder="请填写车辆型号"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="燃料类型" prop="FUEL_TYPE">
<el-select v-model="data.form.FUEL_TYPE">
<el-option
v-for="item in getFuelTypeList"
:key="item.BIANMA"
:label="item.NAME"
:value="item.NAME"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="排放标准" prop="EMISSION_STANDARD">
<el-select v-model="data.form.EMISSION_STANDARD">
<el-option
v-for="item in getEmissionStandardList"
:key="item.BIANMA"
:label="item.NAME"
:value="item.NAME"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="核定总质量" prop="VOUCH_TOTALMASS">
<el-input v-model="data.form.VOUCH_TOTALMASS" placeholder="请填写核定总质量"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="核定载人数" prop="VOUCH_NUMBERLOAD">
<el-input v-model="data.form.VOUCH_NUMBERLOAD" placeholder="请填写核定载人数"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="核定载质量" prop="VOUCH_PAYLOAD">
<el-input v-model="data.form.VOUCH_PAYLOAD" placeholder="请填写核定载质量"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="准牵引质量" prop="RACTIONMASS_QUALITY">
<el-input v-model="data.form.RACTIONMASS_QUALITY" placeholder="请填写准牵引质量"></el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="备注" prop="REMARK">
<el-input
v-model="data.form.REMARK"
placeholder="请填写备注"
type="textarea"
:autosize="{ minRows: 3 }"
/>
</el-form-item>
</el-col>
<el-divider content-position="left">相关照片</el-divider>
<el-col :span="7">
<el-form-item label="上传车头图片" prop="HEADSTOCK_PHOTO">
<layout-upload
v-model:file-list="data.form.HEADSTOCK_PHOTO"
list-type="picture-card"
accept=".jpg,.jpeg,.png"
/>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="上传行驶证照片" prop="DRIVINGLICENSE_PHOTO">
<layout-upload
v-model:file-list="data.form.DRIVINGLICENSE_PHOTO"
list-type="picture-card"
accept=".jpg,.jpeg,.png"
/>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="上传营运证照片" prop="OPERATING_CERTIFICATE_PHOTO">
<layout-upload
v-model:file-list="data.form.OPERATING_CERTIFICATE_PHOTO"
list-type="picture-card"
accept=".jpg,.jpeg,.png"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="车辆资料" prop="VEHICLE_MATERIAL">
<el-input
v-model="data.form.VEHICLE_MATERIAL"
/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="tc mt-10">
<el-button type="primary" @click="fnSubmit"></el-button>
</div>
</layout-card>
</template>
<script setup>
import { reactive, ref } from "vue";
import {
layoutFnGetVehicleColor,
layoutFnGetTransportationEnterprise,
layoutFnGetTransportCategory,
layoutFnGetBelongingDepartment,
layoutFnGetFuelType,
layoutFnGetEmissionStandard,
layoutFnGetVehicleType
} from "@/assets/js/operation_vehicle.js";
import {
findByIdOperatingVehicleInfo,
editOperatingVehicleInfo
} from "@/request/operation_vehicle.js";
import useFormValidate from "@/assets/js/useFormValidate.js";
import LayoutUpload from "@/components/upload/index.vue";
import { ElMessage } from "element-plus";
import { debounce } from "throttle-debounce";
import { useRoute, useRouter } from "vue-router";
const route = useRoute();
const router = useRouter();
const { OPERATING_ID } = route.query;
const rules = {
PLATE_NUMBER: [{ required: true, message: "车牌号不能为空", trigger: "blur" }],
VEHICLE_COLOR: [{required: true, message: "车辆颜色不能为空", trigger: "change"}],
FRAMES_NUMBER: [{required: true, message: "车架号不能为空", trigger: "change"}],
TRANSPORT_ENTERPRISES: [{required: true, message: "运输企业不能为空", trigger: "change"}],
TRANSPORT_TYPE: [{ required: true, message: "运输类别不能为空", trigger: "change" }],
VEHICLE_TYPE: [{ required: true, message: "车辆类型不能为空", trigger: "blur" }],
VEHICLEOWNER: [{ required: true, message: "车主/业主不能为空", trigger: "blur" }],
VEHICLEOWNER_NUMBER: [{required: true, message: "车主电话不能为空", trigger: "blur"}],
CONTACT: [{required: true, message: "联系人不能为空", trigger: "blur"}],
CONTACT_NUMBER: [{required: true, message: "联系电话不能为空", trigger: "blur"}],
FIRSTSHOW_DATE: [{required: true, message: "初登日期不能为空", trigger: "blur"}],
};
const formRef = ref(null);
const data = reactive({
form: {
GOODSSELFNUMBER: "",
PLATE_NUMBER: "",
VEHICLE_COLOR: "",
FRAMES_NUMBER: "",
ENGINE_NUMBER: "",
OPERATING_CERTIFICATE: [],
TRANSPORT_ENTERPRISES: "",
TRANSPORT_TYPE: "",
BELONGING_DEPARTMENT: "",
VEHICLE_TYPE: "",
VEHICLEOWNER: "",
VEHICLEOWNER_NUMBER: "",
VEHICLEOWNER_ADDRESS: "",
CONTACT: "",
CONTACT_NUMBER: "",
HOME_ADDRESS: "",
PHYSICAL_ADDRESS: "",
FIRSTSHOW_DATE: "",
CERTIFICATE_DATE: "",
EXPIRE_DATE: "",
GOVERNMENT_OVERSIGHT: "",
VEHICLE_BRAND: "",
VEHICLE_MODEL: "",
FUEL_TYPE: "",
EMISSION_STANDARD: "",
VOUCH_TOTALMASS: "",
VOUCH_NUMBERLOAD: "",
VOUCH_PAYLOAD: "",
RACTIONMASS_QUALITY: "",
REMARK: "",
HEADSTOCK_PHOTO: [],
DRIVINGLICENSE_PHOTO: [],
OPERATING_CERTIFICATE_PHOTO: [],
NETWORK_STATUS: "",
DYNAMIC_SUPERVISION: "",
ACTIVE_SAFETY: "",
DRIVINGPREMIT_STATUS: "",
TRANSPORT_CATEGORY: "",
VEHICLE_MATERIAL: "",
FREIGHT_TYPE: "",
},
});
const getVehicleColorList = await layoutFnGetVehicleColor();
const getTransportationEnterpriseList = await layoutFnGetTransportationEnterprise();
const getTransportCategoryList = await layoutFnGetTransportCategory();
const getBelongingDepartment = await layoutFnGetBelongingDepartment();
const getFuelTypeList = await layoutFnGetFuelType();
const getEmissionStandardList = await layoutFnGetEmissionStandard();
const getVehicleTypeList = await layoutFnGetVehicleType();
const fnGetData = async () => {
if(OPERATING_ID) {
const resData = await findByIdOperatingVehicleInfo({ OPERATING_ID });
data.form = resData.pd;
}
}
fnGetData();
const fnSubmit = debounce(
1000,
async () => {
await useFormValidate(formRef);
const formData = new FormData();
Object.keys(data.form).forEach((key) => {
formData.append(key, data.form[key]);
});
formData.delete("HEADSTOCK_PHOTO");
formData.delete("DRIVINGLICENSE_PHOTO");
formData.delete("OPERATING_CERTIFICATE_PHOTO");
if(data.form.HEADSTOCK_PHOTO){
if (data.form.HEADSTOCK_PHOTO[0].raw) formData.append("headstockFile", data.form.HEADSTOCK_PHOTO[0].raw);
formData.append("headstockFileType", !!data.form.HEADSTOCK_PHOTO[0].raw);
}
if(data.form.DRIVINGLICENSE_PHOTO){
if (data.form.DRIVINGLICENSE_PHOTO[0].raw) formData.append("drivinglicenseFile", data.form.DRIVINGLICENSE_PHOTO[0].raw);
formData.append("drivinglicenseFileType", !!data.form.DRIVINGLICENSE_PHOTO[0].raw);
}
if(data.form.OPERATING_CERTIFICATE_PHOTO){
if (data.form.OPERATING_CERTIFICATE_PHOTO[0].raw) formData.append("operatingCertificateFile", data.form.OPERATING_CERTIFICATE_PHOTO[0].raw);
formData.append("operatingCertificateFileType", !!data.form.OPERATING_CERTIFICATE_PHOTO[0].raw);
}
await editOperatingVehicleInfo(formData);
ElMessage.success("提交成功");
router.back();
},
);
</script>
<style scoped lang="scss"></style>

View File

@ -0,0 +1,275 @@
<template>
<div>
<el-card>
<el-form
:model="searchForm"
label-width="90px"
@submit.prevent="fnGetDataTransfer"
>
<el-row>
<el-col :span="6">
<el-form-item label="车牌号" prop="PLATE_NUMBER">
<el-input
v-model="searchForm.PLATE_NUMBER"
placeholder="请填写车牌号"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="车辆颜色" prop="VEHICLE_COLOR">
<el-select v-model="searchForm.VEHICLE_COLOR">
<el-option
v-for="item in troubleshootingCycleList"
:key="item.BIANMA"
:label="item.NAME"
:value="item.NAME"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="车架号" prop="FRAMES_NUMBER">
<el-input
v-model="searchForm.FRAMES_NUMBER"
placeholder="请填写车架号"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="自编号" prop="GOODSSELFNUMBER">
<el-input
v-model="searchForm.GOODSSELFNUMBER"
placeholder="请填写自编号"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="归属部门" prop="BELONGING_DEPARTMENT">
<el-input
v-model="searchForm.BELONGING_DEPARTMENT"
placeholder="请填写归属部门"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="运输企业" prop="TRANSPORT_ENTERPRISES">
<el-select v-model="searchForm.TRANSPORT_ENTERPRISES">
<el-option
v-for="item in enterpriseLevelList"
:key="item.BIANMA"
:label="item.NAME"
:value="item.NAME"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="入网状态" prop="NETWORK_STATUS">
<el-select v-model="searchForm.NETWORK_STATUS">
<el-option
v-for="item in networkStatusLevelList"
:key="item.BIANMA"
:label="item.NAME"
:value="item.NAME"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="动态监管" prop="DYNAMIC_SUPERVISION">
<el-select v-model="searchForm.DYNAMIC_SUPERVISION">
<el-option
v-for="item in dynamicSupervision"
:key="item.BIANMA"
:label="item.NAME"
:value="item.NAME"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="主动安全" prop="ACTIVE_SAFETY">
<el-select v-model="searchForm.ACTIVE_SAFETY">
<el-option
v-for="item in activeSafety"
:key="item.BIANMA"
:label="item.NAME"
:value="item.NAME"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="行驶证状态" prop="DRIVINGPREMIT_STATUS">
<el-select v-model="searchForm.DRIVINGPREMIT_STATUS">
<el-option
v-for="item in licenseStatus"
:key="item.BIANMA"
:label="item.NAME"
:value="item.NAME"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label-width="10px">
<el-button type="primary" native-type="submit">搜索</el-button>
<el-button native-type="reset" @click="fnResetPaginationTransfer">
重置
</el-button>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label-width="10px" class="end">
<el-button >导出</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-card>
<layout-card>
<layout-table
:data="list"
v-model:pagination="pagination"
@get-data="fnGetDataTransfer"
>
<el-table-column label="序号" width="70">
<template v-slot="{ $index }">
{{ serialNumber(pagination, $index) }}
</template>
</el-table-column>
<el-table-column prop="GOODSSELFNUMBER" label="自编号" />
<el-table-column prop="PLATE_NUMBER" label="车牌号"/>
<el-table-column prop="VEHICLE_COLOR" label="车辆颜色">
<template v-slot="{ row }">
<span v-if="row.VEHICLE_COLOR === 'vehiclecolor_001'"></span>
<span v-else-if="row.VEHICLE_COLOR === 'vehiclecolor_002'">黑色</span>
</template>
</el-table-column>
<el-table-column prop="FRAMES_NUMBER" label="车架号" />
<el-table-column prop="CONTACT" label="联系人" width="140" show-overflow-tooltip />
<el-table-column prop="CONTACT_NUMBER" label="联系电话" width="140" show-overflow-tooltip />
<el-table-column prop="VEHICLE_TYPE" label="车辆类型" width="140"/>
<el-table-column prop="FIRSTSHOW_DATE" label="初登日期" width="140" show-overflow-tooltip />
<el-table-column prop="EXPIRE_DATE" label="到期日期" width="140" show-overflow-tooltip />
<el-table-column prop="BELONGING_DEPARTMENT" label="归属部门" width="140" show-overflow-tooltip>
<template v-slot="{ row }">
{{ translationStatus(row.NAME, belongingDepartmentList)}}
</template>
</el-table-column>
<el-table-column prop="TRANSPORT_ENTERPRISES" label="运输企业" width="140" show-overflow-tooltip >
<template v-slot="{ row }">
<span v-if="row.TRANSPORT_ENTERPRISES === 'transportenterprises_001'"></span>
</template>
</el-table-column>
<el-table-column label="操作" width="150">
<template v-slot="{ row }">
<el-button
type="primary"
text
link
@click="
router.push({
path: '/enterprise_management/basics_info_management/operation_vehicle/view',
query: { OPERATING_ID: row.OPERATING_ID },
})
"
>
查看
</el-button>
<el-button
type="primary"
text
link
@click="
router.push({
path: '/enterprise_management/basics_info_management/operation_vehicle/view',
query: { OPERATING_ID: row.OPERATING_ID },
})
"
>
画像
</el-button>
<el-button
type="primary"
text
link
@click="
router.push({
path: '/enterprise_management/basics_info_management/operation_vehicle/edit',
query: { OPERATING_ID: row.OPERATING_ID },
})
"
>
修改
</el-button>
</template>
</el-table-column>
<template #button>
<el-button
v-if="buttonJurisdiction.add"
type="primary"
@click="
router.push({ path: '/enterprise_management/basics_info_management/operation_vehicle/add' })
"
>
新增
</el-button>
</template>
</layout-table>
</layout-card>
</div>
</template>
<script setup>
import { serialNumber, translationStatus } from "@/assets/js/utils.js";
import useListData from "@/assets/js/useListData.js";
import {
layoutFnGetVehicleColor,
layoutFnGetTransportationEnterprise,
layoutFnGetNetworkStatus,
layoutFnGetDynamicSupervision,
layoutFnGetActiveSafety,
layoutFnGetLicenseStatus,
layoutFnGetBelongingDepartment,
} from "@/assets/js/operation_vehicle.js";
import { getOperationVehicleList } from "@/request/operation_vehicle.js";
import { useRouter } from "vue-router";
import useButtonJurisdiction from "@/assets/js/useButtonJurisdiction.js";
const router = useRouter();
const { list, pagination, searchForm, fnGetData, fnResetPagination } =
useListData(getOperationVehicleList, {
});
const troubleshootingCycleList = await layoutFnGetVehicleColor();
const enterpriseLevelList = await layoutFnGetTransportationEnterprise();
const networkStatusLevelList = await layoutFnGetNetworkStatus();
const dynamicSupervision = await layoutFnGetDynamicSupervision();
const activeSafety = await layoutFnGetActiveSafety();
const licenseStatus = await layoutFnGetLicenseStatus();
const belongingDepartmentList = await layoutFnGetBelongingDepartment();
console.log(list,"userListData");
const fnGetDataTransfer = () => {
fnGetData({
DEPTIDS: searchForm.value.DEPTIDS?.join(","),
});
};
const fnResetPaginationTransfer = () => {
searchForm.value = {};
fnResetPagination({
DEPTIDS: searchForm.value.DEPTIDS?.join(","),
});
};
const buttonJurisdiction = await useButtonJurisdiction("operation");
</script>
<style scoped></style>

View File

@ -0,0 +1,165 @@
<template>
<layout-card>
<el-divider content-position="left">基本信息</el-divider>
<el-descriptions border>
<el-descriptions-item label="自编号">
{{ data.GOODSSELFNUMBER }}
</el-descriptions-item>
<el-descriptions-item label="车牌号">
{{ data.PLATE_NUMBER }}
</el-descriptions-item>
<el-descriptions-item label="车架号">
{{ data.FRAMES_NUMBER }}
</el-descriptions-item>
<el-descriptions-item label="车辆颜色">
{{ data.VEHICLE_COLOR }}
</el-descriptions-item>
<el-descriptions-item label="发动机号">
{{ data.ENGINE_NUMBER }}
</el-descriptions-item>
<el-descriptions-item label="车辆类型">
{{ data.VEHICLE_TYPE }}
</el-descriptions-item>
<el-descriptions-item label="车主/业主">
{{ data.VEHICLEOWNER }}
</el-descriptions-item>
<el-descriptions-item label="车主电话">
{{ data.VEHICLEOWNER_NUMBER }}
</el-descriptions-item>
<el-descriptions-item label="货运类型">
{{ data.FREIGHT_TYPE }}
</el-descriptions-item>
<el-descriptions-item label="营运证号">
{{ data.OPERATING_CERTIFICATE }}
</el-descriptions-item>
<el-descriptions-item label="车主地址">
{{ data.VEHICLEOWNER_ADDRESS }}
</el-descriptions-item>
<el-descriptions-item label="联系人">
{{ data.CONTACT }}
</el-descriptions-item>
<el-descriptions-item label="联系电话">
{{ data.CONTACT_NUMBER }}
</el-descriptions-item>
<el-descriptions-item label="家庭住址">
{{ data.HOME_ADDRESS }}
</el-descriptions-item>
<el-descriptions-item label="实际住址">
{{ data.PHYSICAL_ADDRESS }}
</el-descriptions-item>
<el-descriptions-item label="初登日期">
{{ data.FIRSTSHOW_DATE }}
</el-descriptions-item>
<el-descriptions-item label="发证日期">
{{ data.CERTIFICATE_DATE }}
</el-descriptions-item>
<el-descriptions-item label="到期日期">
{{ data.EXPIRE_DATE }}
</el-descriptions-item>
<el-descriptions-item label="运输企业">
{{ data.TRANSPORT_ENTERPRISES }}
</el-descriptions-item>
</el-descriptions>
<el-divider content-position="left">车辆状态</el-divider>
<el-descriptions :column="2" border>
<el-descriptions-item label="入网状态">
<span v-if="data.NETWORK_STATUS === 'networkstatus_001'"> </span>
</el-descriptions-item>
<el-descriptions-item label="动态监管">
<span v-if="data.DYNAMIC_SUPERVISION === 'dynamicsupervision_001'">
未绑定
</span>
</el-descriptions-item>
<el-descriptions-item label="主动安全">
<span v-if="data.ACTIVE_SAFETY === 'activesafety_001'"> </span>
</el-descriptions-item>
<el-descriptions-item label="行驶证状态">
<span v-if="data.DRIVINGPREMIT_STATUS === 'licensestatus_001'">
未到期
</span>
</el-descriptions-item>
</el-descriptions>
<el-divider content-position="left">详细信息</el-divider>
<el-descriptions border>
<el-descriptions-item label="车辆品牌">
{{ data.VEHICLE_BRAND }}
</el-descriptions-item>
<el-descriptions-item label="车辆型号">
{{ data.VEHICLE_MODEL }}
</el-descriptions-item>
<el-descriptions-item label="燃料类型">
{{ data.FUEL_TYPE }}
</el-descriptions-item>
<el-descriptions-item label="排放标准">
{{ data.EMISSION_STANDARD }}
</el-descriptions-item>
<el-descriptions-item label="核定总质量">
{{ data.VOUCH_TOTALMASS }}
</el-descriptions-item>
<el-descriptions-item label="核定载质量">
{{ data.VOUCH_PAYLOAD }}
</el-descriptions-item>
<el-descriptions-item label="准牵引质量">
{{ data.RACTIONMASS_QUALITY }}
</el-descriptions-item>
<el-descriptions-item label="运输类别">
{{ data.TRANSPORT_TYPE }}
</el-descriptions-item>
</el-descriptions>
<el-descriptions :column="1" border>
<el-descriptions-item label="备注">
{{ data.REMARK }}
</el-descriptions-item>
</el-descriptions>
<el-divider content-position="left">相关照片</el-divider>
<el-descriptions :column="3" border>
<el-descriptions-item label="车头照片">
<img
v-viewer
:src="VITE_FILE_URL + data.HEADSTOCK_PHOTO"
width="100"
height="100"
alt=""
/>
</el-descriptions-item>
<el-descriptions-item label="行驶证照片">
<img
v-viewer
:src="VITE_FILE_URL + data.DRIVINGLICENSE_PHOTO"
width="100"
height="100"
alt=""
/>
</el-descriptions-item>
<el-descriptions-item label="营运证照片">
<img
v-viewer
:src="VITE_FILE_URL + data.OPERATING_CERTIFICATE_PHOTO"
width="100"
height="100"
alt=""
/>
</el-descriptions-item>
<el-descriptions-item label="车辆资料">
{{ data.VEHICLE_MATERIAL }}
</el-descriptions-item>
</el-descriptions>
</layout-card>
</template>
<script setup>
import { findByIdOperatingVehicleInfo } from "@/request/operation_vehicle.js";
import { useRoute } from "vue-router";
import { ref } from "vue";
const route = useRoute();
const { OPERATING_ID } = route.query;
const data = ref({});
const getData = async () => {
const { pd } = await findByIdOperatingVehicleInfo({ OPERATING_ID });
data.value = pd;
};
getData();
</script>
<style scoped></style>