修改车船税过户显示 营运车辆车牌号唯一

dev
xiepeng 2024-03-25 08:47:41 +08:00
parent abafba83fb
commit 70f430b6b6
68 changed files with 4950 additions and 4006 deletions

View File

@ -1,37 +1,45 @@
import {
getAssignedVehicleModel, getAssignedWay,
getAssignedVehicle, getAssignedVehicleType, getOperationVehicleList
getAssignedVehicleModel,
getAssignedWay,
getAssignedVehicle,
getAssignedVehicleType,
getOperationVehicleList,
} from "@/request/assigned_manage.js";
import { ref } from "vue";
import { getLevels } from "@/request/data_dictionary.js";
export const layoutFnGetAssignedType = async () => { // 过户类型
export const layoutFnGetAssignedType = async () => {
// 过户类型
const resData = await getLevels({
DICTIONARIES_ID: "0000ad963949823e8c9501bab16001aa",
});
return ref(resData.list);
};
export const layoutFnGetAssignedWay = async () => { // 过户方式
export const layoutFnGetAssignedWay = async () => {
// 过户方式
const resData = await getAssignedWay({
DICTIONARIES_ID: "0000ad9639498275391501bab16001aa",
});
return ref(resData.list);
};
export const layoutFnGetAssignedVehicleModel = async () => { // 过户车型
export const layoutFnGetAssignedVehicleModel = async () => {
// 过户车型
const resData = await getAssignedVehicleModel({
DICTIONARIES_ID: "78452f4ec77e4d98ae8cdd9c3386ae0c",
});
return ref(resData.list);
};
export const layoutFnGetAssignedVehicle = async () => { // 过户车型
export const layoutFnGetAssignedVehicle = async () => {
// 过户车型
const resData = await getAssignedVehicle({
DICTIONARIES_ID: "0000ad963951053e8c9501bab16001aa",
});
return ref(resData.list);
};
export const layoutFnGetAssignedVehicleType = async () => { // 过户车型
export const layoutFnGetAssignedVehicleType = async () => {
// 过户车型
const resData = await getAssignedVehicleType({
DICTIONARIES_ID: "08411f2b259a45681512dfad07c4f11a",
});
@ -39,7 +47,6 @@ export const layoutFnGetAssignedVehicleType = async () => { // 过户车型
};
export const layoutFnGetOperationVehicleList = async () => {
const resData = await getOperationVehicleList({
});
const resData = await getOperationVehicleList({});
return ref(resData.list);
};

View File

@ -60,38 +60,45 @@ export const SPECIAL_ENTERPRISES = [
"13cf0f4ec77e4d98ae8cdd9c3386ae0c",
];
export const OPERATING_VEHICLE_TYPE_LIST = [
// 运营车型
{ID:'1',NAME:'运输车辆'},
{ID:'2',NAME:'货运挂车'},
]
// 运营车型
{ ID: "1", NAME: "运输车辆" },
{ ID: "2", NAME: "货运挂车" },
];
export const DUE_STATUS_LIST = [
// 到期状态
{ID:'1',NAME:'未到期'},
{ID:'0',NAME:'已到期'},
{ID:'2',NAME:'即将到期'},
]
// 到期状态
{ ID: "1", NAME: "未到期" },
{ ID: "0", NAME: "已到期" },
{ ID: "2", NAME: "即将到期" },
];
export const REMINDER_STATUS_LIST = [
// 提醒状态
{ID:'1',NAME:'开启'},
{ID:'0',NAME:'关闭'},
]
// 提醒状态
{ ID: "1", NAME: "开启" },
{ ID: "0", NAME: "关闭" },
];
export const DISPOSE_STATUS_LIST = [
// 处理状态
{ID:'1',NAME:'处理中'},
{ID:'0',NAME:'处理完成'},
]
{ ID: "1", NAME: "处理中" },
{ ID: "0", NAME: "处理完成" },
];
export const TAXES_PERIOD = [
// 处理状态
{ ID: "1", NAME: "12个月", NUM: "12" },
{ ID: "0", NAME: "6个月", NUM: "6" },
];
export const EXPIRE_STATUS = [
// 处理状态
{ ID: "1", NAME: "未到期" },
{ ID: "0", NAME: "已到期" },
];
// export const MAINTENANCE_LEVEL_LIST = [
// //维保等级
// {ID:'1',NAME:'一级维保'},
// {ID:'2',NAME:'二级维保'},
// ]

View File

@ -1,9 +1,16 @@
import {
getActiveSafety, getBelongingDepartment,
getDynamicSupervision, getEmissionStandard, getFnGetFuelType, getLicenseStatus, getMobileUnit,
getActiveSafety,
getBelongingDepartment,
getDynamicSupervision,
getEmissionStandard,
getFnGetFuelType,
getLicenseStatus,
getMobileUnit,
getNetworkStatus,
getTransportationEnterprise, getTransportCategory,
getVehicleColor, getVehicleType
getTransportationEnterprise,
getTransportCategory,
getVehicleColor,
getVehicleType,
} from "@/request/operation_vehicle.js";
import { ref } from "vue";
@ -85,5 +92,3 @@ export const layoutFnGetEmissionStandard = async () => {
});
return ref(resData.list);
};

View File

@ -1,6 +1,12 @@
import {
getExpireStatus, getRemindStatus, getTaxesPeriod, getTrailerList, getTrailerVehicle, getTransportEnterprises,
getVehicleType, getTaxationList
getExpireStatus,
getRemindStatus,
getTaxesPeriod,
getTrailerList,
getTrailerVehicle,
getTransportEnterprises,
getVehicleType,
getTaxationList,
} from "@/request/taxation_manage.js";
import { ref } from "vue";
@ -17,14 +23,12 @@ export const layoutFnGetRemindStatus = async () => {
return ref(resData.list);
};
export const layoutFnGetTrailerList = async () => {
const resData = await getTrailerList({
});
const resData = await getTrailerList({});
return ref(resData.list);
};
export const layoutFnGetTaxationList = async () => {
const resData = await getTaxationList({
});
const resData = await getTaxationList({});
return ref(resData.list);
};
@ -47,11 +51,10 @@ export const layoutFnGetTaxesPeriod = async () => {
return ref(resData.list);
};
export const layoutFnGetVehicleType = async () => { // 获取车辆类型
export const layoutFnGetVehicleType = async () => {
// 获取车辆类型
const resData = await getVehicleType({
DICTIONARIES_ID: "08411f2b259a45681512dfad07c4f11a",
});
return ref(resData.list);
};

View File

@ -369,21 +369,21 @@ export function idCardGetDateAndGender(idCard) {
* @param {*} date 要累加的时间
* @param {*} num 累加多少个月 1年就是12个月
*/
export function timeTransformation(date,num) {
date = new Date(date)
let day = date.getDate();
let month = date.getMonth();
let year = date.getFullYear();
year = year + parseInt((month + num) / 12);
month = (month + num) % 12;
// 0-11 转变为 1-12
month += 1;
export function timeTransformation(date, num) {
date = new Date(date);
let day = date.getDate();
let month = date.getMonth();
let year = date.getFullYear();
year = year + parseInt((month + num) / 12);
month = (month + num) % 12;
// 0-11 转变为 1-12
month += 1;
const maxDayCount = new Date(year,month,0).getDate();
if(day > maxDayCount)day = maxDayCount
if(month < 10 )(month = '0' + month)
if(day < 10)(day = '0' + day)
return year + '-' + month + '-' + day
const maxDayCount = new Date(year, month, 0).getDate();
if (day > maxDayCount) day = maxDayCount;
if (month < 10) month = "0" + month;
if (day < 10) day = "0" + day;
return year + "-" + month + "-" + day;
}
/**
@ -392,33 +392,33 @@ export function timeTransformation(date,num) {
* @param {*} daysToSubtract 提醒天数
* @param {*} type false 减法 true加法
*/
export function subtractDaysFromDate(date, daysToSubtract,type=false) {
let newDate = new Date(); // 创建当前时间对象
if (typeof date === 'string') {
// 将字符串类型的日期转换成 Date 对象
newDate.setTime(new Date(date).getTime());
} else if (Object.prototype.toString.call(date) === "[object Date]") {
// 直接传入了 Date 对象
newDate = date;
} else {
console.log("无效的输入参数")
export function subtractDaysFromDate(date, daysToSubtract, type = false) {
let newDate = new Date(); // 创建当前时间对象
if (typeof date === "string") {
// 将字符串类型的日期转换成 Date 对象
newDate.setTime(new Date(date).getTime());
} else if (Object.prototype.toString.call(date) === "[object Date]") {
// 直接传入了 Date 对象
newDate = date;
} else {
console.log("无效的输入参数");
}
if (type) {
newDate.setDate(newDate.getDate() + daysToSubtract);
} else {
newDate.setDate(newDate.getDate() - daysToSubtract); // 在原有基础上减去指定天数
}
const formatDateToString = (dateObj) => {
const year = dateObj.getFullYear().toString();
let month = (dateObj.getMonth() + 1).toString();
let day = dateObj.getDate().toString();
if (month.length < 2) {
month = "0" + month;
}
if(type){
newDate.setDate(newDate.getDate() + daysToSubtract);
}else {
newDate.setDate(newDate.getDate() - daysToSubtract); // 在原有基础上减去指定天数
if (day.length < 2) {
day = "0" + day;
}
const formatDateToString = (dateObj) => {
const year = dateObj.getFullYear().toString();
let month = (dateObj.getMonth() + 1).toString();
let day = dateObj.getDate().toString();
if (month.length < 2) {
month = "0" + month;
}
if (day.length < 2) {
day = "0" + day;
}
return [year, month, day].join("-");
}
return formatDateToString(newDate); // 返回新日期的字符串表示形式
return [year, month, day].join("-");
};
return formatDateToString(newDate); // 返回新日期的字符串表示形式
}

View File

@ -1,32 +1,32 @@
<template>
<el-tree-select
ref="treeSelectRef"
v-model="modelValue"
:data="tree"
:props="{
ref="treeSelectRef"
v-model="modelValue"
:data="tree"
:props="{
value: type !== 'label' ? 'DICTIONARIES_ID' : 'BUS_LABEL_FACTORY_ID',
children: type !== 'label' ? 'nodes' : 'children',
label: 'NAME',
isLeaf: 'isLeaf',
}"
:node-key="type !== 'label' ? 'DICTIONARIES_ID' : 'BUS_LABEL_FACTORY_ID'"
:render-after-expand="false"
accordion
check-strictly
:lazy="type !== 'label'"
:load="fnLoad"
:clearable="true"
show-checkbox
multiple
:collapse-tags="collapseTags"
:node-key="type !== 'label' ? 'DICTIONARIES_ID' : 'BUS_LABEL_FACTORY_ID'"
:render-after-expand="false"
accordion
check-strictly
:lazy="type !== 'label'"
:load="fnLoad"
:clearable="true"
show-checkbox
multiple
:collapse-tags="collapseTags"
/>
</template>
<script setup>
import {nextTick, ref} from "vue";
import {useVModel} from "@vueuse/core";
import {layoutFnGetLevelsAndChildrenNumber} from "@/assets/js/data_dictionary.js";
import {getThreeInstitutionalLibrariesLabel} from "@/request/three_institutional_libraries.js";
import { nextTick, ref } from "vue";
import { useVModel } from "@vueuse/core";
import { layoutFnGetLevelsAndChildrenNumber } from "@/assets/js/data_dictionary.js";
import { getThreeInstitutionalLibrariesLabel } from "@/request/three_institutional_libraries.js";
defineOptions({
name: "LayoutThreeInstitutionalLibraries",
@ -69,17 +69,17 @@ const treeSelectRef = ref(null);
const fnLoad = async (node, resolve) => {
if (props.type === "label") return;
const resData = await layoutFnGetLevelsAndChildrenNumber(
node.data.DICTIONARIES_ID || id
node.data.DICTIONARIES_ID || id
);
resolve(
resData.value.map((item) => {
return {
DICTIONARIES_ID: item.DICTIONARIES_ID,
BIANMA: item.BIANMA,
NAME: item.NAME,
isLeaf: item.zcount === 0,
};
})
resData.value.map((item) => {
return {
DICTIONARIES_ID: item.DICTIONARIES_ID,
BIANMA: item.BIANMA,
NAME: item.NAME,
isLeaf: item.zcount === 0,
};
})
);
};
const getCheckedNodes = async () => {
@ -100,7 +100,7 @@ if (props.type === "regulations") id = "84254cb5b2ae40eb9f451509b2d370ae";
if (props.type === "type") id = idByPathName[props.pathName];
if (props.type === "industry") id = "f2598ba72e864eadabf0ca4b664d26b9";
if (props.type === "label") {
const resData = await getThreeInstitutionalLibrariesLabel({loading: false});
const resData = await getThreeInstitutionalLibrariesLabel({ loading: false });
tree = resData.tree;
}
</script>

View File

@ -3,7 +3,8 @@ import { ref } from "vue";
import { getLevelsByParentId } from "@/request/data_dictionary.js";
export const getAssignedType = (params) =>
post("/dictionaries/getLevels", { // 获取过户类型
post("/dictionaries/getLevels", {
// 获取过户类型
loading: false,
...params,
});
@ -16,24 +17,28 @@ export const layoutFnGetAssignedType = async () => {
};
export const getAssignedWay = (params) =>
post("/dictionaries/getLevels", { // 获取过户方式
post("/dictionaries/getLevels", {
// 获取过户方式
loading: false,
...params,
});
export const getAssignedVehicleType = (params) =>
post("/dictionaries/getLevels", { // 获取过户车辆类型
post("/dictionaries/getLevels", {
// 获取过户车辆类型
loading: false,
...params,
});
export const getAssignedVehicleModel = (params) =>
post("/dictionaries/getAssignedVehicleModel", { // 获取过户车辆车型
post("/dictionaries/getAssignedVehicleModel", {
// 获取过户车辆车型
loading: false,
...params,
});
export const getAssignedVehicle = (params) =>
post("/dictionaries/getAssignedVehicle", { // 获取过户车辆
post("/dictionaries/getAssignedVehicle", {
// 获取过户车辆
loading: false,
...params,
});
@ -44,8 +49,7 @@ export const layoutFnGetScrapVehicleType = async () => {
});
return ref(resData);
};
export const getAssignedList = (params) =>
post("/assignedmanage/list", params); // 过户管理列表
export const getAssignedList = (params) => post("/assignedmanage/list", params); // 过户管理列表
export const setAssignedManageAdd = (params) =>
upload("/assignedmanage/add", params); // 过户管理添加
@ -60,8 +64,13 @@ export const setAssignedManageDelete = (params) =>
post("/assignedmanage/delete", params); // 删除过户信息
export const getOperationVehicleList = (params) =>
upload("/operatingvehicles/operationvehicleList", params); // 获取所有车船税
upload("/operatingvehicles/operationvehicleList", params); // 获取所有车船税
export const getVehicleView = (params) =>
upload("/operatingvehicles/operationvehicleList", params); // 获取所有车船税
upload("/operatingvehicles/operationvehicleList", params); // 获取所有车船税
export const getAssignedOperationVehicleList = (params) =>
post("/assignedmanage/getassignedoperationvehiclelist", params); // 车型选择营运车辆列表
export const getAssignedFreightTrailerList = (params) =>
post("/assignedmanage/getassignedfreighttrailerlist", params); // 车型选择货物挂车列表

View File

@ -53,17 +53,26 @@ export const setElectronicFenceEdit = (params) =>
post("/electronicfence/edit", params); // 电子围栏区域新增
export const getElectronicFenceView = (params) =>
post("/electronicfence/goEdit", params); // 电子围栏区域详情
export const getFreightTrailerList = (params) => post("/freightTrailer/list", params); // 货运挂车列表
export const getFreightTrailerView = (params) => post("/freightTrailer/goEdit", params); // 货运挂车查看
export const setFreightTrailerAdd = (params) => post("/freightTrailer/add", params); // 货运挂车新增
export const setFreightTrailerEdit = (params) => post("/freightTrailer/edit", params); // 货运挂车修改
export const setFreightTrailerDelete = (params) => post("/freightTrailer/delete", params); // 货运挂车删除
const getCorpList = (params) => post("/freightTrailer/corpList", params)
export const getFreightTrailerList = (params) =>
post("/freightTrailer/list", params); // 货运挂车列表
export const getFreightTrailerView = (params) =>
post("/freightTrailer/goEdit", params); // 货运挂车查看
export const setFreightTrailerAdd = (params) =>
post("/freightTrailer/add", params); // 货运挂车新增
export const setFreightTrailerEdit = (params) =>
post("/freightTrailer/edit", params); // 货运挂车修改
export const setFreightTrailerDelete = (params) =>
post("/freightTrailer/delete", params); // 货运挂车删除
export const getChoiceTrailerList = (params) =>
post("/taxationmanage/choicetrailerlist", params); // 车船税添加选择挂车
const getCorpList = (params) => post("/freightTrailer/corpList", params);
export const getFreightTrailerCorpList = async () => {
const resData = await getCorpList()
return ref(resData.list);
};// 货运挂车 企业列表
const resData = await getCorpList();
return ref(resData.list);
}; // 货运挂车 企业列表
export const getFreightTrailerCorpList1 = async () => {
const resData = await getCorpList()
return resData.list;
};// 货运挂车 企业列表
const resData = await getCorpList();
return resData.list;
}; // 货运挂车 企业列表

View File

@ -11,4 +11,3 @@ export const setEnterpriseSafetyProductAdd = (params) =>
export const setEnterpriseSafetyProductDelete = (params) =>
upload("/enterprisesafetyproduction/delete", params); // 新增企业安全生产值班记录

View File

@ -14,4 +14,3 @@ export const setEntrenchThingGrantDelete = (params) =>
export const getEntrenchThingGrantEdit = (params) =>
upload("/labourentrenchthing/edit", params); // 修改企业安全生产值班记录

View File

@ -35,6 +35,3 @@ export const getMaintainEdit = (params) =>
export const setFirefightingMaintainDelete = (params) =>
upload("/firefightingmaintain/delete", params); // 保养删除

View File

@ -1,11 +1,18 @@
import { post } from "@/request/axios.js";
export const getTrailerList = (params) => post("/freightTrailer/vehicleList", params)
export const getInspectAnnuallyList = (params) => post("/inspectAnnually/list", params); // 年检管理列表
export const getInspectAnnuallyView = (params) => post("/inspectAnnually/goEdit", params); // 年检管理查看
export const setInspectAnnuallyAdd = (params) => post("/inspectAnnually/add", params); // 年检管理新增
export const setInspectAnnuallyEdit = (params) => post("/inspectAnnually/edit", params); // 年检管理修改
export const setInspectAnnuallyDelete = (params) => post("/inspectAnnually/delete", params); // 年检管理删除
export const setInspectAnnuallyEdit2 = (params) => post("/inspectAnnually/edit2", params); // 年检管理修改开启关闭
export const getTrailerList = (params) =>
post("/freightTrailer/vehicleList", params);
export const getInspectAnnuallyList = (params) =>
post("/inspectAnnually/list", params); // 年检管理列表
export const getInspectAnnuallyView = (params) =>
post("/inspectAnnually/goEdit", params); // 年检管理查看
export const setInspectAnnuallyAdd = (params) =>
post("/inspectAnnually/add", params); // 年检管理新增
export const setInspectAnnuallyEdit = (params) =>
post("/inspectAnnually/edit", params); // 年检管理修改
export const setInspectAnnuallyDelete = (params) =>
post("/inspectAnnually/delete", params); // 年检管理删除
export const setInspectAnnuallyEdit2 = (params) =>
post("/inspectAnnually/edit2", params); // 年检管理修改开启关闭
export const getInsureList = (params) => post("/insure/list", params); // 保险管理列表
export const getInsureView = (params) => post("/insure/goEdit", params); // 保险管理查看
@ -18,19 +25,23 @@ export const getOperationsList = (params) => post("/operations/list", params); /
export const getOperationsView = (params) => post("/operations/goEdit", params); // 运营管理查看
export const setOperationsAdd = (params) => post("/operations/add", params); // 运营管理新增
export const setOperationsEdit = (params) => post("/operations/edit", params); // 运营管理修改
export const setOperationsDelete = (params) => post("/operations/delete", params); // 运营管理删除
export const setOperationsDelete = (params) =>
post("/operations/delete", params); // 运营管理删除
export const setOperationsEdit2 = (params) => post("/operations/edit2", params); // 运营管理修改开启关闭
export const getMaintenanceList = (params) => post("/maintenance/list", params); // 维保管理列表
export const getMaintenanceView = (params) => post("/maintenance/goEdit", params); // 维保管理查看
export const getMaintenanceView = (params) =>
post("/maintenance/goEdit", params); // 维保管理查看
export const setMaintenanceAdd = (params) => post("/maintenance/add", params); // 维保管理新增
export const setMaintenanceEdit = (params) => post("/maintenance/edit", params); // 维保管理修改
export const setMaintenanceDelete = (params) => post("/maintenance/delete", params); // 维保管理删除
export const setMaintenanceEdit2 = (params) => post("/maintenance/edit2", params); // 维保管理修改开启关闭
export const setMaintenanceDelete = (params) =>
post("/maintenance/delete", params); // 维保管理删除
export const setMaintenanceEdit2 = (params) =>
post("/maintenance/edit2", params); // 维保管理修改开启关闭
export const getBeidouList = (params) => post("/beidou/list", params); // 维保管理列表
export const getBeidouView = (params) => post("/beidou/goEdit", params); // 维保管理查看
export const setBeidouAdd = (params) => post("/beidou/add", params); // 维保管理新增
export const setBeidouEdit = (params) => post("/beidou/edit", params); // 维保管理修改
export const setBeidouDelete = (params) => post("/beidou/delete", params); // 维保管理删除
export const setBeidouEdit2 = (params) => post("/beidou/edit2", params); // 维保管理修改开启关闭
export const setBeidouEdit2 = (params) => post("/beidou/edit2", params); // 维保管理修改开启关闭

View File

@ -1,13 +1,15 @@
import { post, upload } from "@/request/axios.js";
export const getVehicleColor = (params) =>
post("/dictionaries/getVehicleColor", { // 获取车辆颜色
post("/dictionaries/getVehicleColor", {
// 获取车辆颜色
loading: false,
...params,
});
export const getTransportationEnterprise = (params) =>
post("/dictionaries/getTransportationEnterprise", { // 获取运输企业
post("/dictionaries/getTransportationEnterprise", {
// 获取运输企业
loading: false,
...params,
});
@ -18,55 +20,64 @@ export const getMobileUnit = (params) =>
});
export const getNetworkStatus = (params) =>
post("/dictionaries/getNetworkStatus", { // 获取网络状态
post("/dictionaries/getNetworkStatus", {
// 获取网络状态
loading: false,
...params,
});
export const getDynamicSupervision = (params) =>
post("/dictionaries/getDynamicSupervision", { // 获取动态监管
post("/dictionaries/getDynamicSupervision", {
// 获取动态监管
loading: false,
...params,
});
export const getActiveSafety = (params) =>
post("/dictionaries/getActiveSafety", { // 获取主动安全
post("/dictionaries/getActiveSafety", {
// 获取主动安全
loading: false,
...params,
});
export const getLicenseStatus = (params) =>
post("/dictionaries/getLicenseStatus", { // 获取行驶证状态
post("/dictionaries/getLicenseStatus", {
// 获取行驶证状态
loading: false,
...params,
});
export const getTransportCategory = (params) =>
post("/dictionaries/getTransportCategory", { // 获取运输类别
post("/dictionaries/getTransportCategory", {
// 获取运输类别
loading: false,
...params,
});
export const getBelongingDepartment = (params) =>
post("/dictionaries/getBelongingDepartment", { // 获取归属部门
post("/dictionaries/getBelongingDepartment", {
// 获取归属部门
loading: false,
...params,
});
export const getVehicleType = (params) =>
post("/dictionaries/getVehicleType", { // 获取车辆类型
post("/dictionaries/getVehicleType", {
// 获取车辆类型
loading: false,
...params,
});
export const getFnGetFuelType = (params) =>
post("/dictionaries/getFnGetFuelType", { // 获取燃料类型
post("/dictionaries/getFnGetFuelType", {
// 获取燃料类型
loading: false,
...params,
});
export const getEmissionStandard = (params) =>
post("/dictionaries/getEmissionStandard", { // 获取排放标准
post("/dictionaries/getEmissionStandard", {
// 获取排放标准
loading: false,
...params,
});
@ -81,22 +92,22 @@ export const addOperatingVehicleInfo = (params) =>
upload("/operatingvehicles/add", params); // 添加运营车辆信息
export const findByIdOperatingVehicleInfo = (params) =>
post("/operatingvehicles/goEdit", params); // 根据Id获取运营车辆信息
post("/operatingvehicles/goEdit", params); // 根据Id获取运营车辆信息
export const editOperatingVehicleInfo = (params) =>
upload("/operatingvehicles/edit", params); // 修改运营车辆
upload("/operatingvehicles/edit", params); // 修改运营车辆
export const getOperationVehicleInfo = (params) =>
post("/operatingvehicles/findById", params); // 根据Id获取运营车辆信息
post("/operatingvehicles/findById", params); // 根据Id获取运营车辆信息
export const findByPlateNumber = (params) =>
post("/operatingvehicles/findByPlateNumber", params); // 根据Id获取运营车辆信息
const getCorpList = (params) => post("/operatingvehicles/corpList", params);
const getCorpList = (params) =>
post("/operatingvehicles/corpList", params)
export const getOperationVehicleCorpList1 = async () => {
const resData = await getCorpList()
const resData = await getCorpList();
return resData.list;
};// 货运挂车 企业列表
}; // 货运挂车 企业列表

View File

@ -21,20 +21,12 @@ export const getMaintainFindProductionEquipmentFacilityId = (params) =>
export const getProductionEquipmentFacilityEdit = (params) =>
upload("/equipmentfacilitycontroller/edit", params); // 新增企业安全生产值班记录
export const setMaintainAdd = (params) =>
upload("/maintain/add", params); // 新增保养
export const setMaintainAdd = (params) => upload("/maintain/add", params); // 新增保养
export const setMaintainEdit = (params) =>
upload("/maintain/goEdit", params); // 修改保养
export const getMaintainView = (params) =>
post("/maintain/goEdit", params); // 获取保养信息
export const getMaintainEdit = (params) =>
upload("/maintain/edit", params); // 新增企业安全生产值班记录
export const setMaintainDelete = (params) =>
upload("/maintain/delete", params); // 保养删除
export const setMaintainEdit = (params) => upload("/maintain/goEdit", params); // 修改保养
export const getMaintainView = (params) => post("/maintain/goEdit", params); // 获取保养信息
export const getMaintainEdit = (params) => upload("/maintain/edit", params); // 新增企业安全生产值班记录
export const setMaintainDelete = (params) => upload("/maintain/delete", params); // 保养删除

View File

@ -17,4 +17,3 @@ export const findByIdReportedIncidentDisposeInfo = (params) =>
export const setReportedIncidentDispose = (params) =>
upload("/reportedincident/edit", params); // 修改上报事件处理记录

View File

@ -9,14 +9,12 @@ export const layoutFnGetScrapType = async () => {
return ref(resData);
};
export const getScrapManageList = (params) =>
post("/scrapmanage/list", params); // 报废管理列表
export const getScrapManageList = (params) => post("/scrapmanage/list", params); // 报废管理列表
export const setScrapManageDelete = (params) =>
post("/scrapmanage/delete", params); // 报废管理列表
export const setScrapManageAdd = (params) =>
upload("/scrapmanage/add", params); // 过户管理添加
export const setScrapManageAdd = (params) => upload("/scrapmanage/add", params); // 过户管理添加
export const setScrapManageEdit = (params) =>
upload("/scrapmanage/goEdit", params); // 过户管理修改
@ -25,6 +23,10 @@ export const findByIdScrapManageInfo = (params) =>
post("/scrapmanage/goEdit", params); // 查看过户信息
export const getOperationVehicleList = (params) =>
upload("/operatingvehicles/operationvehicleList", params); // 获取所有车船税
upload("/operatingvehicles/operationvehicleList", params); // 获取所有车船税
export const getScrapOperationVehicleList = (params) =>
post("/scrapmanage/getscrapoperationvehiclelist", params); // 车型选择营运车辆列表
export const getScrapFreightTrailerList = (params) =>
post("/scrapmanage/getscrapfreighttrailerlist", params); // 车型选择货物挂车列表

View File

@ -1,6 +1,5 @@
import { post, upload } from "@/request/axios.js";
export const getTaxationManageList = (params) =>
post("/taxationmanage/list", params); // 运营车辆列表export const getOperationVehicleList = (params) =>
@ -43,16 +42,13 @@ export const getVehicleType = (params) =>
...params,
});
export const setTaxationManageAdd = (params) =>
upload("/taxationmanage/add", params); // 新增车船税管理
upload("/taxationmanage/add", params); // 新增车船税管理
export const editTaxationManageInfo = (params) =>
upload("/taxationmanage/edit", params); // 修改车船税管理
upload("/taxationmanage/edit", params); // 修改车船税管理
export const getTrailerList = (params) =>
upload("/freightTrailer/trailerList", params); // 获取所有挂车
upload("/freightTrailer/trailerList", params); // 获取所有挂车
export const getTaxationList = (params) =>
upload("/taxationmanage/taxationList", params); // 获取所有车船税
upload("/taxationmanage/taxationList", params); // 获取所有车船税

View File

@ -1,8 +1,8 @@
<template>
<el-dialog v-model="visible" title="导出" :on-close="fnClose">
<el-checkbox
:indeterminate="isIndeterminate"
v-model="checkAll"
:indeterminate="isIndeterminate"
@change="fnCheckAllChange"
>
全选
@ -13,7 +13,7 @@
<el-divider />
<el-checkbox-group v-model="checkOptions" @change="fnCheckedChange">
<el-row>
<el-col v-for="(item, index) in options" :span="4" :key="index">
<el-col v-for="(item, index) in options" :key="index" :span="4">
<el-checkbox :label="item" :value="item" />
</el-col>
</el-row>
@ -116,7 +116,8 @@ const fnSubmit = debounce(
return;
}
data = {
...data, FREIGHTTRAILER_IDs: ids.join(","),
...data,
FREIGHTTRAILER_IDs: ids.join(","),
};
} else {
const searchForm = props.searchForm;

View File

@ -1,326 +1,394 @@
<template>
<layout-card>
<el-form ref="formRef" :rules="rules" :model="form" label-width="140px">
<el-row :gutter="20">
<el-col :span="24">
<el-divider content-position="left">基本信息</el-divider>
</el-col>
<el-col :span="12">
<el-form-item label="自编号" prop="NUM">
<el-input v-model="form.NUM" maxlength="50" show-word-limit/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="车牌号" prop="PLATE_NUMBER">
<el-input v-model="form.PLATE_NUMBER" maxlength="50" show-word-limit/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="车架号" prop="VIN">
<el-input v-model="form.VIN" maxlength="50" show-word-limit/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="车身编号" prop="VEHICLE_BODY_NUMBER">
<el-input v-model="form.VEHICLE_BODY_NUMBER" maxlength="50" show-word-limit/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="挂车类型" prop="TRAILER_TYPE">
<el-input v-model="form.TRAILER_TYPE" maxlength="50" show-word-limit/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="营运证号" prop="OPER_CERTIFICATE_NUM">
<el-input v-model="form.OPER_CERTIFICATE_NUM" maxlength="50" show-word-limit/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="归属部门" prop="BELONGING_DEPT">
<layout-department v-model="form.BELONGING_DEPT"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="车主/业户" prop="CAR_OWNERS">
<el-input v-model="form.CAR_OWNERS" maxlength="50" show-word-limit/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="车主电话" prop="CAR_OWNERS_TEL">
<el-input v-model="form.CAR_OWNERS_TEL" maxlength="11" show-word-limit/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系人" prop="CONTACTS">
<el-input v-model="form.CONTACTS" maxlength="50" show-word-limit/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系电话" prop="CONTACT_PHONE">
<el-input v-model="form.CONTACT_PHONE" maxlength="11" show-word-limit/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="初登日期" prop="INITIAL_REGISTRATION_DATE">
<el-date-picker
v-model="form.INITIAL_REGISTRATION_DATE"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="发证日期" prop="CERTIFICATE_DATE">
<el-date-picker
v-model="form.CERTIFICATE_DATE"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="到期日期" prop="DUE_DATE">
<el-date-picker
v-model="form.DUE_DATE"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-divider content-position="left">详细信息</el-divider>
</el-col>
<el-col :span="12">
<el-form-item label="挂车品牌" prop="TRAILER_BRAND">
<el-input v-model="form.TRAILER_BRAND" maxlength="50" show-word-limit/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="挂车型号" prop="TRAILER_MODEL">
<el-input v-model="form.TRAILER_MODEL" maxlength="50" show-word-limit/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="核定总质量" prop="APPROVED_TOTAL_MASS">
<el-input v-model="form.APPROVED_TOTAL_MASS" maxlength="50" show-word-limit/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="核定载质量" prop="APPROVED_LOAD_CAPACITY">
<el-input v-model="form.APPROVED_LOAD_CAPACITY" maxlength="50" show-word-limit/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="容积/体积" prop="VOLUME">
<el-input v-model="form.TEAM_NAME" maxlength="50" show-word-limit/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" prop="NOTES">
<el-input
v-model="form.NOTES"
type="textarea"
:autosize="{ minRows: 3 }"
maxlength="250" show-word-limit
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-divider content-position="left">相关照片</el-divider>
</el-col>
<el-col :span="12">
<el-form-item label="挂车照片" prop="TRAILER_IMG">
<layout-upload
v-model:file-list="form.TRAILER_IMG"
list-type="picture-card"
accept=".jpg,.jpeg,.png"
delete-to-server
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="行驶证照片" prop="DRIVING_LICENSE_IMG">
<layout-upload
v-model:file-list="form.DRIVING_LICENSE_IMG"
list-type="picture-card"
accept=".jpg,.jpeg,.png"
delete-to-server
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="运营证照片" prop="OPER_CERTIFICATE_IMG">
<layout-upload
v-model:file-list="form.OPER_CERTIFICATE_IMG"
list-type="picture-card"
accept=".jpg,.jpeg,.png"
delete-to-server
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="挂车资料" prop="TRAILER_INFO">
<layout-upload
v-model:file-list="form.TRAILER_INFO"
list-type="picture-card"
accept=".jpg,.jpeg,.png"
delete-to-server
/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="mt-10 tc">
<el-button type="primary" @click="fnSubmit"></el-button>
</div>
</layout-card>
<layout-card>
<el-form ref="formRef" :rules="rules" :model="form" label-width="140px">
<el-row :gutter="20">
<el-col :span="24">
<el-divider content-position="left">基本信息</el-divider>
</el-col>
<el-col :span="12">
<el-form-item label="自编号" prop="NUM">
<el-input v-model="form.NUM" maxlength="50" show-word-limit />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="车牌号" prop="PLATE_NUMBER">
<el-input
v-model="form.PLATE_NUMBER"
maxlength="50"
show-word-limit
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="车架号" prop="VIN">
<el-input v-model="form.VIN" maxlength="50" show-word-limit />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="车身编号" prop="VEHICLE_BODY_NUMBER">
<el-input
v-model="form.VEHICLE_BODY_NUMBER"
maxlength="50"
show-word-limit
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="挂车类型" prop="TRAILER_TYPE">
<el-input
v-model="form.TRAILER_TYPE"
maxlength="50"
show-word-limit
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="营运证号" prop="OPER_CERTIFICATE_NUM">
<el-input
v-model="form.OPER_CERTIFICATE_NUM"
maxlength="50"
show-word-limit
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="归属部门" prop="BELONGING_DEPT">
<layout-department v-model="form.BELONGING_DEPT" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="车主/业户" prop="CAR_OWNERS">
<el-input
v-model="form.CAR_OWNERS"
maxlength="50"
show-word-limit
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="车主电话" prop="CAR_OWNERS_TEL">
<el-input
v-model="form.CAR_OWNERS_TEL"
maxlength="11"
show-word-limit
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系人" prop="CONTACTS">
<el-input v-model="form.CONTACTS" maxlength="50" show-word-limit />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系电话" prop="CONTACT_PHONE">
<el-input
v-model="form.CONTACT_PHONE"
maxlength="11"
show-word-limit
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="初登日期" prop="INITIAL_REGISTRATION_DATE">
<el-date-picker
v-model="form.INITIAL_REGISTRATION_DATE"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="发证日期" prop="CERTIFICATE_DATE">
<el-date-picker
v-model="form.CERTIFICATE_DATE"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="到期日期" prop="DUE_DATE">
<el-date-picker
v-model="form.DUE_DATE"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-divider content-position="left">详细信息</el-divider>
</el-col>
<el-col :span="12">
<el-form-item label="挂车品牌" prop="TRAILER_BRAND">
<el-input
v-model="form.TRAILER_BRAND"
maxlength="50"
show-word-limit
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="挂车型号" prop="TRAILER_MODEL">
<el-input
v-model="form.TRAILER_MODEL"
maxlength="50"
show-word-limit
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="核定总质量" prop="APPROVED_TOTAL_MASS">
<el-input
v-model="form.APPROVED_TOTAL_MASS"
maxlength="50"
show-word-limit
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="核定载质量" prop="APPROVED_LOAD_CAPACITY">
<el-input
v-model="form.APPROVED_LOAD_CAPACITY"
maxlength="50"
show-word-limit
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="容积/体积" prop="VOLUME">
<el-input v-model="form.TEAM_NAME" maxlength="50" show-word-limit />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" prop="NOTES">
<el-input
v-model="form.NOTES"
type="textarea"
:autosize="{ minRows: 3 }"
maxlength="250"
show-word-limit
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-divider content-position="left">相关照片</el-divider>
</el-col>
<el-col :span="12">
<el-form-item label="挂车照片" prop="TRAILER_IMG">
<layout-upload
v-model:file-list="form.TRAILER_IMG"
list-type="picture-card"
accept=".jpg,.jpeg,.png"
delete-to-server
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="行驶证照片" prop="DRIVING_LICENSE_IMG">
<layout-upload
v-model:file-list="form.DRIVING_LICENSE_IMG"
list-type="picture-card"
accept=".jpg,.jpeg,.png"
delete-to-server
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="运营证照片" prop="OPER_CERTIFICATE_IMG">
<layout-upload
v-model:file-list="form.OPER_CERTIFICATE_IMG"
list-type="picture-card"
accept=".jpg,.jpeg,.png"
delete-to-server
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="挂车资料" prop="TRAILER_INFO">
<layout-upload
v-model:file-list="form.TRAILER_INFO"
list-type="picture-card"
accept=".jpg,.jpeg,.png"
delete-to-server
/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="mt-10 tc">
<el-button type="primary" @click="fnSubmit"></el-button>
</div>
</layout-card>
</template>
<script setup>
import LayoutUpload from "@/components/upload/index.vue";
import LayoutDepartment from "@/components/department/index.vue";
import { ref } from "vue";
import { debounce } from "throttle-debounce";
import {getFreightTrailerView, setFreightTrailerAdd ,setFreightTrailerEdit,} from "@/request/enterprise_management.js";
import { setUploadImg } from "@/request/api.js";
import { ElMessage } from "element-plus";
import { useRoute, useRouter, } from "vue-router";
import useFormValidate from "@/assets/js/useFormValidate.js";
import { addingPrefixToFile } from "@/assets/js/utils.js";
const route = useRoute();
const router = useRouter();
const FREIGHTTRAILER_ID = route.query.FREIGHTTRAILER_ID
const formRef = ref(null);
const form = ref({
NUM:'',
PLATE_NUMBER:'',
VIN:'',
VEHICLE_BODY_NUMBER:'',
TRAILER_TYPE:'',
OPER_CERTIFICATE_NUM:'',
BELONGING_DEPT:'',
CAR_OWNERS:'',
CAR_OWNERS_TEL:'',
CONTACTS:'',
CONTACT_PHONE:'',
INITIAL_REGISTRATION_DATE:'',
CERTIFICATE_DATE:'',
DUE_DATE:'',
TRAILER_BRAND:'',
TRAILER_MODEL:'',
APPROVED_TOTAL_MASS:'',
APPROVED_LOAD_CAPACITY:'',
VOLUME:'',
NOTES:'',
TRAILER_IMG:[],
DRIVING_LICENSE_IMG:[],
OPER_CERTIFICATE_IMG:[],
TRAILER_INFO:[],
});
const isVehicleNumber = (rule, vehicleNumber, callback)=>{
if(vehicleNumber){
var xreg=/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}(([0-9]{5}[DF]$)|([DF][A-HJ-NP-Z0-9][0-9]{4}$))/;
var creg=/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]{1}$/;
if(vehicleNumber.length === 7){
if(creg.test(vehicleNumber)===false){callback(new Error("格式错误"))}else callback();
} else if(vehicleNumber.length === 8){
if(xreg.test(vehicleNumber)===false){callback(new Error("格式错误"))}else callback();
} else{
callback(new Error("格式错误"))
}
}else callback();
import LayoutUpload from "@/components/upload/index.vue";
import LayoutDepartment from "@/components/department/index.vue";
import { ref } from "vue";
import { debounce } from "throttle-debounce";
import {
getFreightTrailerView,
setFreightTrailerAdd,
setFreightTrailerEdit,
} from "@/request/enterprise_management.js";
import { setUploadImg } from "@/request/api.js";
import { ElMessage } from "element-plus";
import { useRoute, useRouter } from "vue-router";
import useFormValidate from "@/assets/js/useFormValidate.js";
import { addingPrefixToFile } from "@/assets/js/utils.js";
const route = useRoute();
const router = useRouter();
const FREIGHTTRAILER_ID = route.query.FREIGHTTRAILER_ID;
const formRef = ref(null);
const form = ref({
NUM: "",
PLATE_NUMBER: "",
VIN: "",
VEHICLE_BODY_NUMBER: "",
TRAILER_TYPE: "",
OPER_CERTIFICATE_NUM: "",
BELONGING_DEPT: "",
CAR_OWNERS: "",
CAR_OWNERS_TEL: "",
CONTACTS: "",
CONTACT_PHONE: "",
INITIAL_REGISTRATION_DATE: "",
CERTIFICATE_DATE: "",
DUE_DATE: "",
TRAILER_BRAND: "",
TRAILER_MODEL: "",
APPROVED_TOTAL_MASS: "",
APPROVED_LOAD_CAPACITY: "",
VOLUME: "",
NOTES: "",
TRAILER_IMG: [],
DRIVING_LICENSE_IMG: [],
OPER_CERTIFICATE_IMG: [],
TRAILER_INFO: [],
});
const isVehicleNumber = (rule, vehicleNumber, callback) => {
if (vehicleNumber) {
const xreg =
/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}(([0-9]{5}[DF]$)|([DF][A-HJ-NP-Z0-9][0-9]{4}$))/;
const creg =
/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]{1}$/;
if (vehicleNumber.length === 7) {
if (creg.test(vehicleNumber) === false) {
callback(new Error("格式错误"));
} else callback();
} else if (vehicleNumber.length === 8) {
if (xreg.test(vehicleNumber) === false) {
callback(new Error("格式错误"));
} else callback();
} else {
callback(new Error("格式错误"));
}
const rules = {
PLATE_NUMBER: [
{ required: true, message: "请输入", trigger: "blur" },
{ validator: isVehicleNumber, trigger: "blur" },
],
VIN: [{ required: true, message: "请输入", trigger: "blur" }],
TRAILER_TYPE: [{ required: true, message: "请输入", trigger: "blur" }],
CAR_OWNERS: [{ required: true, message: "请输入", trigger: "blur" }],
CAR_OWNERS_TEL: [
{ required: true, message: "请输入", trigger: "blur" },
{ min: 11, max: 11, message: "请输入11位手机号码", trigger: "blur" },
{
pattern:
/^(?:(?:\+|00)86)?1(?:(?:3[\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[189]))\d{8}$/,
message: "请输入正确的手机号码",
},
],
CONTACTS: [{ required: true, message: "请输入", trigger: "blur" }],
CONTACT_PHONE: [
{ required: true, message: "请输入", trigger: "blur" },
{ min: 11, max: 11, message: "请输入11位手机号码", trigger: "blur" },
{
pattern:
/^(?:(?:\+|00)86)?1(?:(?:3[\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[189]))\d{8}$/,
message: "请输入正确的手机号码",
},],
INITIAL_REGISTRATION_DATE: [{ required: true, message: "请输入", trigger: "blur" }],
}
const fnGetData = async () => {
if (!FREIGHTTRAILER_ID) return;
const resData = await getFreightTrailerView({ FREIGHTTRAILER_ID });
form.value = resData.pd;
form.value.TRAILER_IMG = addingPrefixToFile(
resData.trailerImgs
);
form.value.DRIVING_LICENSE_IMG = addingPrefixToFile(
resData.drivingLicenseImgs
);
form.value.OPER_CERTIFICATE_IMG = addingPrefixToFile(
resData.operCertificateImgs
);
form.value.TRAILER_INFO = addingPrefixToFile(
resData.trailerInfoImgs
);
};
fnGetData();
} else callback();
};
const rules = {
PLATE_NUMBER: [
{ required: true, message: "请输入", trigger: "blur" },
{ validator: isVehicleNumber, trigger: "blur" },
],
VIN: [{ required: true, message: "请输入", trigger: "blur" }],
TRAILER_TYPE: [{ required: true, message: "请输入", trigger: "blur" }],
CAR_OWNERS: [{ required: true, message: "请输入", trigger: "blur" }],
CAR_OWNERS_TEL: [
{ required: true, message: "请输入", trigger: "blur" },
{ min: 11, max: 11, message: "请输入11位手机号码", trigger: "blur" },
{
pattern:
/^(?:(?:\+|00)86)?1(?:(?:3[\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[189]))\d{8}$/,
message: "请输入正确的手机号码",
},
],
CONTACTS: [{ required: true, message: "请输入", trigger: "blur" }],
CONTACT_PHONE: [
{ required: true, message: "请输入", trigger: "blur" },
{ min: 11, max: 11, message: "请输入11位手机号码", trigger: "blur" },
{
pattern:
/^(?:(?:\+|00)86)?1(?:(?:3[\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[189]))\d{8}$/,
message: "请输入正确的手机号码",
},
],
INITIAL_REGISTRATION_DATE: [
{ required: true, message: "请输入", trigger: "blur" },
],
};
const fnGetData = async () => {
if (!FREIGHTTRAILER_ID) return;
const resData = await getFreightTrailerView({ FREIGHTTRAILER_ID });
form.value = resData.pd;
form.value.TRAILER_IMG = addingPrefixToFile(resData.trailerImgs);
form.value.DRIVING_LICENSE_IMG = addingPrefixToFile(
resData.drivingLicenseImgs
);
form.value.OPER_CERTIFICATE_IMG = addingPrefixToFile(
resData.operCertificateImgs
);
form.value.TRAILER_INFO = addingPrefixToFile(resData.trailerInfoImgs);
};
fnGetData();
const fnSubmit = debounce(
1000,
async () => {
await useFormValidate(formRef);
const resData = !FREIGHTTRAILER_ID
? await setFreightTrailerAdd({ ...form.value })
: await setFreightTrailerEdit({ ...form.value ,FREIGHTTRAILER_ID:FREIGHTTRAILER_ID});
const currentFreighttrailerId =resData.pd.FREIGHTTRAILER_ID
for (let i = 0; i < form.value.TRAILER_IMG.length; i++) {
if (form.value.TRAILER_IMG[i].raw)
await fnUploadImage(currentFreighttrailerId, form.value.TRAILER_IMG[i].raw, 120);
}
for (let i = 0; i < form.value.DRIVING_LICENSE_IMG.length; i++) {
if (form.value.DRIVING_LICENSE_IMG[i].raw)
await fnUploadImage(currentFreighttrailerId, form.value.DRIVING_LICENSE_IMG[i].raw, 121);
}
for (let i = 0; i < form.value.OPER_CERTIFICATE_IMG.length; i++) {
if (form.value.OPER_CERTIFICATE_IMG[i].raw)
await fnUploadImage(currentFreighttrailerId, form.value.OPER_CERTIFICATE_IMG[i].raw, 122);
}
for (let i = 0; i < form.value.TRAILER_INFO.length; i++) {
if (form.value.TRAILER_INFO[i].raw)
await fnUploadImage(currentFreighttrailerId, form.value.TRAILER_INFO[i].raw, 123);
}
ElMessage.success("保存成功");
router.back();
},
{ atBegin: true }
);
const fnUploadImage = async (HIDDEN_ID, FFILE, TYPE) => {
const formData = new FormData();
formData.append("FOREIGN_KEY", HIDDEN_ID);
formData.append("TYPE", TYPE);
formData.append("FFILE", FFILE);
await setUploadImg(formData);
};
const fnSubmit = debounce(
1000,
async () => {
await useFormValidate(formRef);
const resData = !FREIGHTTRAILER_ID
? await setFreightTrailerAdd({ ...form.value })
: await setFreightTrailerEdit({
...form.value,
FREIGHTTRAILER_ID,
});
const currentFreighttrailerId = resData.pd.FREIGHTTRAILER_ID;
for (let i = 0; i < form.value.TRAILER_IMG.length; i++) {
if (form.value.TRAILER_IMG[i].raw)
await fnUploadImage(
currentFreighttrailerId,
form.value.TRAILER_IMG[i].raw,
120
);
}
for (let i = 0; i < form.value.DRIVING_LICENSE_IMG.length; i++) {
if (form.value.DRIVING_LICENSE_IMG[i].raw)
await fnUploadImage(
currentFreighttrailerId,
form.value.DRIVING_LICENSE_IMG[i].raw,
121
);
}
for (let i = 0; i < form.value.OPER_CERTIFICATE_IMG.length; i++) {
if (form.value.OPER_CERTIFICATE_IMG[i].raw)
await fnUploadImage(
currentFreighttrailerId,
form.value.OPER_CERTIFICATE_IMG[i].raw,
122
);
}
for (let i = 0; i < form.value.TRAILER_INFO.length; i++) {
if (form.value.TRAILER_INFO[i].raw)
await fnUploadImage(
currentFreighttrailerId,
form.value.TRAILER_INFO[i].raw,
123
);
}
ElMessage.success("保存成功");
router.back();
},
{ atBegin: true }
);
const fnUploadImage = async (HIDDEN_ID, FFILE, TYPE) => {
const formData = new FormData();
formData.append("FOREIGN_KEY", HIDDEN_ID);
formData.append("TYPE", TYPE);
formData.append("FFILE", FFILE);
await setUploadImg(formData);
};
</script>
<style scoped lang="scss"></style>

View File

@ -1,165 +1,191 @@
<template>
<div>
<el-card>
<el-form
:model="searchForm"
label-width="100px"
@submit.prevent="fnResetPaginationTransfer"
>
<el-row>
<el-col :span="5">
<el-form-item label="车牌号" prop="PLATE_NUMBER">
<el-input v-model="searchForm.PLATE_NUMBER" />
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="车架号" prop="VIN">
<el-input v-model="searchForm.VIN" />
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="自编号" prop="NUM">
<el-input v-model="searchForm.NUM" />
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="归属部门" prop="DEPARTMENT_NAME">
<el-input v-model="searchForm.DEPARTMENT_NAME" />
</el-form-item>
</el-col>
<el-col :span="3">
<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="1">
<el-form-item label-width="10px" class="end">
<el-button @click="fnExport"></el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-card>
<layout-card>
<layout-table
:data="list"
@get-data="fnGetDataTransfer"
v-model:pagination="pagination"
ref="tableRef"
row-key="HIDDEN_ID"
>
<el-table-column reserve-selection type="selection" width="55" />
<el-table-column label="序号" width="60">
<template #default="{ $index }">
{{ serialNumber(pagination, $index) }}
</template>
</el-table-column>
<el-table-column prop="NUM" label="自编号" width="150"/>
<el-table-column prop="PLATE_NUMBER" label="车牌号" width="150"/>
<el-table-column prop="CONTACTS" label="联系人" width="150"/>
<el-table-column prop="CONTACT_PHONE" label="联系电话" width="150"/>
<el-table-column prop="TRAILER_TYPE" label="挂车类型" width="150"/>
<el-table-column prop="INITIAL_REGISTRATION_DATE" label="初登日期" width="150"/>
<el-table-column prop="DUE_DATE" label="到期日期" width="150"/>
<el-table-column prop="DEPARTMENT_NAME" label="归属部门" width="150"/>
<el-table-column label="操作" width="150">
<template #default="{ row }">
<el-button
type="primary"
text
link
@click="router.push({path: '/enterprise_management/basics_info_management/freight_trailer/view',query: { FREIGHTTRAILER_ID: row.FREIGHTTRAILER_ID },})">
查看
</el-button>
<el-button
type="primary"
text
link
@click="router.push({path: '/enterprise_management/basics_info_management/freight_trailer/edit',query: { FREIGHTTRAILER_ID: row.FREIGHTTRAILER_ID },})">
编辑
</el-button>
<el-button
type="primary"
text
link
@click="fnDelete(row.FREIGHTTRAILER_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/freight_trailer/add' })">
新增
</el-button>
</template>
</layout-table>
</layout-card>
<export-excel
v-model:visible="data.exportExcelDialog.visible"
:search-form="searchForm"
:ids="data.exportExcelDialog.ids"
<div>
<el-card>
<el-form
:model="searchForm"
label-width="100px"
@submit.prevent="fnResetPaginationTransfer"
>
<el-row>
<el-col :span="5">
<el-form-item label="车牌号" prop="PLATE_NUMBER">
<el-input v-model="searchForm.PLATE_NUMBER" />
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="车架号" prop="VIN">
<el-input v-model="searchForm.VIN" />
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="自编号" prop="NUM">
<el-input v-model="searchForm.NUM" />
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="归属部门" prop="DEPARTMENT_NAME">
<el-input v-model="searchForm.DEPARTMENT_NAME" />
</el-form-item>
</el-col>
<el-col :span="3">
<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="1">
<el-form-item label-width="10px" class="end">
<el-button @click="fnExport"></el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-card>
<layout-card>
<layout-table
ref="tableRef"
v-model:pagination="pagination"
:data="list"
row-key="HIDDEN_ID"
@get-data="fnGetDataTransfer"
>
<el-table-column reserve-selection type="selection" width="55" />
<el-table-column label="序号" width="60">
<template #default="{ $index }">
{{ serialNumber(pagination, $index) }}
</template>
</el-table-column>
<el-table-column prop="NUM" label="自编号" width="150" />
<el-table-column prop="PLATE_NUMBER" label="车牌号" width="150" />
<el-table-column prop="CONTACTS" label="联系人" width="150" />
<el-table-column prop="CONTACT_PHONE" label="联系电话" width="150" />
<el-table-column prop="TRAILER_TYPE" label="挂车类型" width="150" />
<el-table-column
prop="INITIAL_REGISTRATION_DATE"
label="初登日期"
width="150"
/>
</div>
<el-table-column prop="DUE_DATE" label="到期日期" width="150" />
<el-table-column prop="DEPARTMENT_NAME" label="归属部门" width="150" />
<el-table-column label="操作" width="150">
<template #default="{ row }">
<el-button
type="primary"
text
link
@click="
router.push({
path: '/enterprise_management/basics_info_management/freight_trailer/view',
query: { FREIGHTTRAILER_ID: row.FREIGHTTRAILER_ID },
})
"
>
查看
</el-button>
<el-button
type="primary"
text
link
@click="
router.push({
path: '/enterprise_management/basics_info_management/freight_trailer/edit',
query: { FREIGHTTRAILER_ID: row.FREIGHTTRAILER_ID },
})
"
>
编辑
</el-button>
<el-button
type="primary"
text
link
@click="fnDelete(row.FREIGHTTRAILER_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/freight_trailer/add',
})
"
>
新增
</el-button>
</template>
</layout-table>
</layout-card>
<export-excel
v-model:visible="data.exportExcelDialog.visible"
:search-form="searchForm"
:ids="data.exportExcelDialog.ids"
/>
</div>
</template>
<script setup>
import { useRouter } from "vue-router";
import { serialNumber } from "@/assets/js/utils";
import useButtonJurisdiction from "@/assets/js/useButtonJurisdiction.js";
import useListData from "@/assets/js/useListData.js";
import { getFreightTrailerList ,setFreightTrailerDelete} from "@/request/enterprise_management.js";
import ExportExcel from "./components/export_excel.vue";
import { reactive } from "vue";
import { debounce } from "throttle-debounce";
import { ElMessageBox ,ElMessage} from "element-plus";
const router = useRouter();
const data = reactive({
exportExcelDialog: {
visible: false,
ids: [],
},
});
const { list, pagination, searchForm, fnGetData, fnResetPagination, tableRef } =
useListData(getFreightTrailerList);
const fnGetDataTransfer = () => {
fnGetData({
PLATE_NUMBER: searchForm.value.PLATE_NUMBER,
VIN: searchForm.value.VIN,
NUM: searchForm.value.NUM,
DEPARTMENT_NAME: searchForm.value.DEPARTMENT_NAME,
});
};
const fnResetPaginationTransfer = () => {
fnResetPagination({
PLATE_NUMBER: searchForm.value.PLATE_NUMBER,
VIN: searchForm.value.VIN,
NUM: searchForm.value.NUM,
DEPARTMENT_NAME: searchForm.value.DEPARTMENT_NAME,
});
};
const fnDelete = debounce(
1000,
async (FREIGHTTRAILER_ID) => {
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
await setFreightTrailerDelete({ FREIGHTTRAILER_ID });
ElMessage.success("删除成功");
fnResetPaginationTransfer();
},
{ atBegin: true }
);
const buttonJurisdiction = await useButtonJurisdiction("hidden");
const fnExport = () => {
const selectionData = tableRef.value.getSelectionRows();
data.exportExcelDialog.ids = selectionData.map((item) => item.FREIGHTTRAILER_ID);
data.exportExcelDialog.visible = true;
};
import { useRouter } from "vue-router";
import { serialNumber } from "@/assets/js/utils";
import useButtonJurisdiction from "@/assets/js/useButtonJurisdiction.js";
import useListData from "@/assets/js/useListData.js";
import {
getFreightTrailerList,
setFreightTrailerDelete,
} from "@/request/enterprise_management.js";
import ExportExcel from "./components/export_excel.vue";
import { reactive } from "vue";
import { debounce } from "throttle-debounce";
import { ElMessageBox, ElMessage } from "element-plus";
const router = useRouter();
const data = reactive({
exportExcelDialog: {
visible: false,
ids: [],
},
});
const { list, pagination, searchForm, fnGetData, fnResetPagination, tableRef } =
useListData(getFreightTrailerList);
const fnGetDataTransfer = () => {
fnGetData({
PLATE_NUMBER: searchForm.value.PLATE_NUMBER,
VIN: searchForm.value.VIN,
NUM: searchForm.value.NUM,
DEPARTMENT_NAME: searchForm.value.DEPARTMENT_NAME,
});
};
const fnResetPaginationTransfer = () => {
fnResetPagination({
PLATE_NUMBER: searchForm.value.PLATE_NUMBER,
VIN: searchForm.value.VIN,
NUM: searchForm.value.NUM,
DEPARTMENT_NAME: searchForm.value.DEPARTMENT_NAME,
});
};
const fnDelete = debounce(
1000,
async (FREIGHTTRAILER_ID) => {
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
await setFreightTrailerDelete({ FREIGHTTRAILER_ID });
ElMessage.success("删除成功");
fnResetPaginationTransfer();
},
{ atBegin: true }
);
const buttonJurisdiction = await useButtonJurisdiction("hidden");
const fnExport = () => {
const selectionData = tableRef.value.getSelectionRows();
data.exportExcelDialog.ids = selectionData.map(
(item) => item.FREIGHTTRAILER_ID
);
data.exportExcelDialog.visible = true;
};
</script>
<style scoped></style>

View File

@ -1,177 +1,174 @@
<template>
<layout-card>
<div id="printContainer">
<el-divider content-position="left">基本信息</el-divider>
<el-descriptions :column="2" border>
<el-descriptions-item label-class-name="width_200" label="自编号">
{{ info.NUM }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="车牌号">
{{ info.PLATE_NUMBER }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="车架号">
{{ info.VIN }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="车身编号">
{{ info.VEHICLE_BODY_NUMBER }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="挂车类型">
{{ info.TRAILER_TYPE }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="营运证号">
{{ info.OPER_CERTIFICATE_NUM }}
</el-descriptions-item>
<!--<el-descriptions-item label-class-name="width_200" label="运输企业">-->
<!--{{ info.TRANSPORT_ENTERPRISESNAME }}-->
<!--</el-descriptions-item>-->
<el-descriptions-item label-class-name="width_200" label="归属部门">
{{ info.DEPARTMENT_NAME }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="车主/业户">
{{ info.CAR_OWNERS }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="车主电话">
{{ info.CAR_OWNERS_TEL }}
</el-descriptions-item>
<layout-card>
<div id="printContainer">
<el-divider content-position="left">基本信息</el-divider>
<el-descriptions :column="2" border>
<el-descriptions-item label-class-name="width_200" label="自编号">
{{ info.NUM }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="车牌号">
{{ info.PLATE_NUMBER }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="车架号">
{{ info.VIN }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="车身编号">
{{ info.VEHICLE_BODY_NUMBER }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="挂车类型">
{{ info.TRAILER_TYPE }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="营运证号">
{{ info.OPER_CERTIFICATE_NUM }}
</el-descriptions-item>
<!--<el-descriptions-item label-class-name="width_200" label="运输企业">-->
<!--{{ info.TRANSPORT_ENTERPRISESNAME }}-->
<!--</el-descriptions-item>-->
<el-descriptions-item label-class-name="width_200" label="归属部门">
{{ info.DEPARTMENT_NAME }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="车主/业户">
{{ info.CAR_OWNERS }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="车主电话">
{{ info.CAR_OWNERS_TEL }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="联系人">
{{ info.CONTACTS }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="车主电话">
{{ info.CAR_OWNERS_TEL }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="联系电话">
{{ info.CONTACT_PHONE }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="初登日期">
{{ info.INITIAL_REGISTRATION_DATE }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="发证日期">
{{ info.CERTIFICATE_DATE }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="到期日期">
{{ info.DUE_DATE }}
</el-descriptions-item>
</el-descriptions>
<el-divider content-position="left">详细信息</el-divider>
<el-descriptions :column="2" border>
<el-descriptions-item label-class-name="width_200" label="挂车品牌">
{{ info.TRAILER_BRAND }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="挂车型号">
{{ info.TRAILER_MODEL }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="核定总质量">
{{ info.APPROVED_TOTAL_MASS }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="核定载质量">
{{ info.APPROVED_LOAD_CAPACITY }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="容积/体积">
{{ info.VOLUME }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="备注">
{{ info.NOTES }}
</el-descriptions-item>
</el-descriptions>
<el-divider content-position="left">相关照片</el-divider>
<el-descriptions :column="2" border>
<el-descriptions-item label-class-name="width_200" label="挂车照片">
<img
v-for="item in info.TRAILER_IMG"
:key="item.FILEPATH"
v-viewer
:src="item.url"
width="100"
height="100"
alt=""
class="ml-10"
/>
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="行驶证照片">
<img
v-for="item in info.DRIVING_LICENSE_IMG"
:key="item.FILEPATH"
v-viewer
:src="item.url"
width="100"
height="100"
alt=""
class="ml-10"
/>
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="运营证照片">
<img
v-for="item in info.OPER_CERTIFICATE_IMG"
:key="item.FILEPATH"
v-viewer
:src="item.url"
width="100"
height="100"
alt=""
class="ml-10"
/>
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="挂车资料">
<img
v-for="item in info.TRAILER_INFO"
:key="item.FILEPATH"
v-viewer
:src="item.url"
width="100"
height="100"
alt=""
class="ml-10"
/>
</el-descriptions-item>
</el-descriptions>
</div>
<div class="mt-10 tc">
<el-button v-print="'#printContainer'" type="primary"></el-button>
</div>
<div v-html="PRINT_STYLE" />
</layout-card>
<el-descriptions-item label-class-name="width_200" label="联系人">
{{ info.CONTACTS }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="车主电话">
{{ info.CAR_OWNERS_TEL }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="联系电话">
{{ info.CONTACT_PHONE }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="初登日期">
{{ info.INITIAL_REGISTRATION_DATE }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="发证日期">
{{ info.CERTIFICATE_DATE }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="到期日期">
{{ info.DUE_DATE }}
</el-descriptions-item>
</el-descriptions>
<el-divider content-position="left">详细信息</el-divider>
<el-descriptions :column="2" border>
<el-descriptions-item label-class-name="width_200" label="挂车品牌">
{{ info.TRAILER_BRAND }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="挂车型号">
{{ info.TRAILER_MODEL }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="核定总质量">
{{ info.APPROVED_TOTAL_MASS }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="核定载质量">
{{ info.APPROVED_LOAD_CAPACITY }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="容积/体积">
{{ info.VOLUME }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="备注">
{{ info.NOTES }}
</el-descriptions-item>
</el-descriptions>
<el-divider content-position="left">相关照片</el-divider>
<el-descriptions :column="2" border>
<el-descriptions-item label-class-name="width_200" label="挂车照片">
<img
v-for="item in info.TRAILER_IMG"
:key="item.FILEPATH"
v-viewer
:src="item.url"
width="100"
height="100"
alt=""
class="ml-10"
/>
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="行驶证照片">
<img
v-for="item in info.DRIVING_LICENSE_IMG"
:key="item.FILEPATH"
v-viewer
:src="item.url"
width="100"
height="100"
alt=""
class="ml-10"
/>
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="运营证照片">
<img
v-for="item in info.OPER_CERTIFICATE_IMG"
:key="item.FILEPATH"
v-viewer
:src="item.url"
width="100"
height="100"
alt=""
class="ml-10"
/>
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="挂车资料">
<img
v-for="item in info.TRAILER_INFO"
:key="item.FILEPATH"
v-viewer
:src="item.url"
width="100"
height="100"
alt=""
class="ml-10"
/>
</el-descriptions-item>
</el-descriptions>
</div>
<div class="mt-10 tc">
<el-button v-print="'#printContainer'" type="primary"></el-button>
</div>
<div v-html="PRINT_STYLE" />
</layout-card>
</template>
<script setup>
import { ref } from "vue";
import { getFreightTrailerView,getFreightTrailerCorpList1 } from "@/request/enterprise_management.js";
import { useRoute } from "vue-router";
import { addingPrefixToFile } from "@/assets/js/utils.js";
const transportEnterprisesList = await getFreightTrailerCorpList1()
const route = useRoute();
const FREIGHTTRAILER_ID = route.query;
const info = ref({});
const fnGetData = async () => {
if (!FREIGHTTRAILER_ID) return;
const resData = await getFreightTrailerView(FREIGHTTRAILER_ID);
info.value = resData.pd;
for(let i=0;i<transportEnterprisesList.length;i++){
const item = transportEnterprisesList[i]
if(item.CORPINFO_ID === info.value.TRANSPORT_ENTERPRISES){
info.value.TRANSPORT_ENTERPRISESNAME = item.CORP_NAME
}
}
info.value.TRAILER_IMG = addingPrefixToFile(
resData.trailerImgs
);
info.value.DRIVING_LICENSE_IMG = addingPrefixToFile(
resData.drivingLicenseImgs
);
info.value.OPER_CERTIFICATE_IMG = addingPrefixToFile(
resData.operCertificateImgs
);
info.value.TRAILER_INFO = addingPrefixToFile(
resData.trailerInfoImgs
);
};
fnGetData();
import { ref } from "vue";
import {
getFreightTrailerView,
getFreightTrailerCorpList1,
} from "@/request/enterprise_management.js";
import { useRoute } from "vue-router";
import { addingPrefixToFile } from "@/assets/js/utils.js";
const transportEnterprisesList = await getFreightTrailerCorpList1();
const route = useRoute();
const FREIGHTTRAILER_ID = route.query;
const info = ref({});
const fnGetData = async () => {
if (!FREIGHTTRAILER_ID) return;
const resData = await getFreightTrailerView(FREIGHTTRAILER_ID);
info.value = resData.pd;
for (let i = 0; i < transportEnterprisesList.length; i++) {
const item = transportEnterprisesList[i];
if (item.CORPINFO_ID === info.value.TRANSPORT_ENTERPRISES) {
info.value.TRANSPORT_ENTERPRISESNAME = item.CORP_NAME;
}
}
info.value.TRAILER_IMG = addingPrefixToFile(resData.trailerImgs);
info.value.DRIVING_LICENSE_IMG = addingPrefixToFile(
resData.drivingLicenseImgs
);
info.value.OPER_CERTIFICATE_IMG = addingPrefixToFile(
resData.operCertificateImgs
);
info.value.TRAILER_INFO = addingPrefixToFile(resData.trailerInfoImgs);
};
fnGetData();
</script>
<style lang="scss" scoped>
.width_200{
width: 200px;
}
.width_200 {
width: 200px;
}
</style>

View File

@ -14,7 +14,10 @@
</el-col>
<el-col :span="6">
<el-form-item prop="PLATE_NUMBER" label="车牌号">
<el-input v-model = "form.PLATE_NUMBER" placeholder = "请填写车牌号"></el-input>
<el-input
v-model="form.PLATE_NUMBER"
placeholder="请填写车牌号"
></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
@ -31,17 +34,26 @@
</el-col>
<el-col :span="6">
<el-form-item label="车架号" prop="FRAMES_NUMBER">
<el-input v-model="form.FRAMES_NUMBER" placeholder="请填写车架号"></el-input>
<el-input
v-model="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="form.ENGINE_NUMBER" placeholder="请填写发动机号"></el-input>
<el-input
v-model="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="form.OPERATING_CERTIFICATE" placeholder="请填写营运证号"></el-input>
<el-input
v-model="form.OPERATING_CERTIFICATE"
placeholder="请填写营运证号"
></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
@ -58,8 +70,9 @@
</el-col>
<el-col :span="6">
<el-form-item label="归属部门" prop="BELONGING_DEPARTMENT">
<layout-department v-model="form.BELONGING_DEPARTMENT"
placeholder="请选择归属部门"
<layout-department
v-model="form.BELONGING_DEPARTMENT"
placeholder="请选择归属部门"
/>
</el-form-item>
</el-col>
@ -77,37 +90,58 @@
</el-col>
<el-col :span="6">
<el-form-item label="车主/业主" prop="VEHICLEOWNER">
<el-input v-model="form.VEHICLEOWNER" placeholder="请填写车主/业主"></el-input>
<el-input
v-model="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="form.VEHICLEOWNER_NUMBER" placeholder="请填写车主电话"></el-input>
<el-input
v-model="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="form.VEHICLEOWNER_ADDRESS" placeholder="请填写车主住址"></el-input>
<el-input
v-model="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="form.CONTACT" placeholder="请填写联系人"></el-input>
<el-input
v-model="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="form.CONTACT_NUMBER" placeholder="请填写联系电话"></el-input>
<el-input
v-model="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="form.HOME_ADDRESS" placeholder="请输入家庭住址"></el-input>
<el-input
v-model="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="form.PHYSICAL_ADDRESS" placeholder="请输入实际住址"></el-input>
<el-input
v-model="form.PHYSICAL_ADDRESS"
placeholder="请输入实际住址"
></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
@ -158,12 +192,18 @@
<el-divider content-position="left">详细信息</el-divider>
<el-col :span="6">
<el-form-item label="车辆品牌" prop="VEHICLE_BRAND">
<el-input v-model="form.VEHICLE_BRAND" placeholder="请填写车辆品牌"></el-input>
<el-input
v-model="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="form.VEHICLE_MODEL" placeholder="请填写车辆型号"></el-input>
<el-input
v-model="form.VEHICLE_MODEL"
placeholder="请填写车辆型号"
></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
@ -192,22 +232,34 @@
</el-col>
<el-col :span="6">
<el-form-item label="核定总质量" prop="VOUCH_TOTALMASS">
<el-input v-model="form.VOUCH_TOTALMASS" placeholder="请填写核定总质量"></el-input>
<el-input
v-model="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="form.VOUCH_NUMBERLOAD" placeholder="请填写核定载人数"></el-input>
<el-input
v-model="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="form.VOUCH_PAYLOAD" placeholder="请填写核定载质量"></el-input>
<el-input
v-model="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="form.RACTIONMASS_QUALITY" placeholder="请填写准牵引质量"></el-input>
<el-input
v-model="form.RACTIONMASS_QUALITY"
placeholder="请填写准牵引质量"
></el-input>
</el-form-item>
</el-col>
<el-col :span="24">
@ -282,7 +334,8 @@ import {
import {
addOperatingVehicleInfo,
editOperatingVehicleInfo,
findByIdOperatingVehicleInfo
findByIdOperatingVehicleInfo,
findByPlateNumber,
} from "@/request/operation_vehicle.js";
import useFormValidate from "@/assets/js/useFormValidate.js";
import LayoutUpload from "@/components/upload/index.vue";
@ -294,32 +347,59 @@ import { addingPrefixToFile } from "@/assets/js/utils.js";
import LayoutDepartment from "@/components/department/index.vue";
const router = useRouter();
const route = useRoute();
const OPERATING_ID = route.query.OPERATING_ID
const OPERATING_ID = route.query.OPERATING_ID;
const isVehicleNumber = (rule, vehicleNumber, callback)=>{
if(vehicleNumber){
var xreg=/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}(([0-9]{5}[DF]$)|([DF][A-HJ-NP-Z0-9][0-9]{4}$))/;
var creg=/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]{1}$/;
if(vehicleNumber.length === 7){
if(creg.test(vehicleNumber)===false){callback(new Error("格式错误"))}else callback();
} else if(vehicleNumber.length === 8){
if(xreg.test(vehicleNumber)===false){callback(new Error("格式错误"))}else callback();
} else{
callback(new Error("格式错误"))
const isPlateNumberRepetition = async (rule, vehicleNumber, callback) => {
if (vehicleNumber) {
const vehicleCount = await findByPlateNumber({ vehicleNumber });
if (vehicleCount.pd) {
callback(new Error("车辆已存在"));
} else callback();
}
};
const isVehicleNumber = (rule, vehicleNumber, callback) => {
if (vehicleNumber) {
const xreg =
/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}(([0-9]{5}[DF]$)|([DF][A-HJ-NP-Z0-9][0-9]{4}$))/;
const creg =
/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]{1}$/;
if (vehicleNumber.length === 7) {
if (creg.test(vehicleNumber) === false) {
callback(new Error("格式错误"));
} else callback();
} else if (vehicleNumber.length === 8) {
if (xreg.test(vehicleNumber) === false) {
callback(new Error("格式错误"));
} else callback();
} else {
callback(new Error("格式错误"));
}
}else callback();
}
} else callback();
};
const rules = {
PLATE_NUMBER: [
{ required: true, message: "请输入车牌号", trigger: "blur" },
{ validator: isVehicleNumber, trigger: "blur" },
{ validator: isPlateNumberRepetition, trigger: "blur" },
],
VEHICLE_COLOR: [
{ required: true, message: "车辆颜色不能为空", trigger: "change" },
],
FRAMES_NUMBER: [
{ required: true, message: "车架号不能为空", trigger: "change" },
],
OPERATING_CERTIFICATE: [
{ required: true, message: "营运证号不能为空", trigger: "blur" },
],
TRANSPORT_TYPE: [
{ required: true, message: "运输类别不能为空", trigger: "change" },
],
VEHICLE_TYPE: [
{ required: true, message: "车辆类型不能为空", trigger: "blur" },
],
VEHICLEOWNER: [
{ required: true, message: "车主/业主不能为空", trigger: "blur" },
],
VEHICLE_COLOR: [{required: true, message: "车辆颜色不能为空", trigger: "change"}],
FRAMES_NUMBER: [{required: true, message: "车架号不能为空", trigger: "change"}],
OPERATING_CERTIFICATE: [{required: true, message: "营运证号不能为空", trigger: "blur"}],
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" },
{ min: 11, max: 11, message: "请输入11位手机号码", trigger: "blur" },
@ -329,7 +409,7 @@ const rules = {
message: "请输入正确的手机号码",
},
],
CONTACT: [{required: true, message: "联系人不能为空", trigger: "blur"}],
CONTACT: [{ required: true, message: "联系人不能为空", trigger: "blur" }],
CONTACT_NUMBER: [
{ required: true, message: "请输入", trigger: "blur" },
{ min: 11, max: 11, message: "请输入11位手机号码", trigger: "blur" },
@ -337,59 +417,70 @@ const rules = {
pattern:
/^(?:(?:\+|00)86)?1(?:(?:3[\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[189]))\d{8}$/,
message: "请输入正确的手机号码",
},],
FIRSTSHOW_DATE: [{required: true, message: "初登日期不能为空", trigger: "blur"}],
VEHICLE_EQUIPMENT: [{required: true, message: "车载设备不能为空", trigger: "change"}],
HEADSTOCK_PHOTO: [{required: true, message: "车头照片不能为空", trigger: "blur"}],
DRIVINGLICENSE_PHOTO: [{required: true, message: "行驶证照片不能为空", trigger: "blur"}],
OPERATING_CERTIFICATE_PHOTO: [{required: true, message: "营运证照片不能为空", trigger: "blur"}],
},
],
FIRSTSHOW_DATE: [
{ required: true, message: "初登日期不能为空", trigger: "blur" },
],
VEHICLE_EQUIPMENT: [
{ required: true, message: "车载设备不能为空", trigger: "change" },
],
HEADSTOCK_PHOTO: [
{ required: true, message: "车头照片不能为空", trigger: "blur" },
],
DRIVINGLICENSE_PHOTO: [
{ required: true, message: "行驶证照片不能为空", trigger: "blur" },
],
OPERATING_CERTIFICATE_PHOTO: [
{ required: true, message: "营运证照片不能为空", trigger: "blur" },
],
};
const formRef = ref(null);
const form = ref({
GOODSSELFNUMBER: '',
PLATE_NUMBER: '',
VEHICLE_COLOR: '',
FRAMES_NUMBER: '',
ENGINE_NUMBER: '',
MANAGING_ENTERPRISE: '',
GOODSSELFNUMBER: "",
PLATE_NUMBER: "",
VEHICLE_COLOR: "",
FRAMES_NUMBER: "",
ENGINE_NUMBER: "",
MANAGING_ENTERPRISE: "",
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: '',
VEHICLE_EQUIPMENT: '',
GOVERNMENT_OVERSIGHT: '',
VEHICLE_BRAND: '',
VEHICLE_MODEL: '',
FUEL_TYPE: '',
EMISSION_STANDARD: '',
VOUCH_TOTALMASS: '',
VOUCH_NUMBERLOAD: '',
VOUCH_PAYLOAD: '',
RACTIONMASS_QUALITY: '',
REMARK: '',
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: "",
VEHICLE_EQUIPMENT: "",
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: '',
HOME_TERRITORY: '',
MANAGEMENT_TYPE: ''
NETWORK_STATUS: "",
DYNAMIC_SUPERVISION: "",
ACTIVE_SAFETY: "",
DRIVINGPREMIT_STATUS: "",
TRANSPORT_CATEGORY: "",
VEHICLE_MATERIAL: "",
FREIGHT_TYPE: "",
HOME_TERRITORY: "",
MANAGEMENT_TYPE: "",
});
const getVehicleColorList = await layoutFnGetVehicleColor();
const getTransportCategoryList = await layoutFnGetTransportCategory();
@ -402,9 +493,7 @@ const fnGetData = async () => {
if (!OPERATING_ID) return;
const resData = await findByIdOperatingVehicleInfo({ OPERATING_ID });
form.value = resData.pd;
form.value.HEADSTOCK_PHOTO = addingPrefixToFile(
resData.headstockphoto
);
form.value.HEADSTOCK_PHOTO = addingPrefixToFile(resData.headstockphoto);
form.value.DRIVINGLICENSE_PHOTO = addingPrefixToFile(
resData.drivinglicensephoto
);
@ -418,28 +507,43 @@ const fnSubmit = debounce(
async () => {
await useFormValidate(formRef);
const resData = !OPERATING_ID
? await addOperatingVehicleInfo({...form.value} )
: await editOperatingVehicleInfo({...form.value, OPERATING_ID:OPERATING_ID});
const currentOperatingVehicleId = resData.pd.OPERATING_ID
for (let i = 0; i < form.value.HEADSTOCK_PHOTO.length; i++){
if(form.value.HEADSTOCK_PHOTO[i].raw) {
await fnUploadImage(currentOperatingVehicleId, form.value.HEADSTOCK_PHOTO[i].raw, 130)
? await addOperatingVehicleInfo({ ...form.value })
: await editOperatingVehicleInfo({
...form.value,
OPERATING_ID,
});
const currentOperatingVehicleId = resData.pd.OPERATING_ID;
for (let i = 0; i < form.value.HEADSTOCK_PHOTO.length; i++) {
if (form.value.HEADSTOCK_PHOTO[i].raw) {
await fnUploadImage(
currentOperatingVehicleId,
form.value.HEADSTOCK_PHOTO[i].raw,
130
);
}
}
for (let i = 0; i < form.value.DRIVINGLICENSE_PHOTO.length; i++){
if(form.value.DRIVINGLICENSE_PHOTO[i].raw) {
await fnUploadImage(currentOperatingVehicleId, form.value.DRIVINGLICENSE_PHOTO[i].raw, 131)
for (let i = 0; i < form.value.DRIVINGLICENSE_PHOTO.length; i++) {
if (form.value.DRIVINGLICENSE_PHOTO[i].raw) {
await fnUploadImage(
currentOperatingVehicleId,
form.value.DRIVINGLICENSE_PHOTO[i].raw,
131
);
}
}
for (let i = 0; i < form.value.OPERATING_CERTIFICATE_PHOTO.length; i++){
if(form.value.OPERATING_CERTIFICATE_PHOTO[i].raw) {
await fnUploadImage(currentOperatingVehicleId, form.value.OPERATING_CERTIFICATE_PHOTO[i].raw, 132)
for (let i = 0; i < form.value.OPERATING_CERTIFICATE_PHOTO.length; i++) {
if (form.value.OPERATING_CERTIFICATE_PHOTO[i].raw) {
await fnUploadImage(
currentOperatingVehicleId,
form.value.OPERATING_CERTIFICATE_PHOTO[i].raw,
132
);
}
}
ElMessage.success("提交成功");
router.back();
},
{ atBegin: true }
{ atBegin: true }
);
const fnUploadImage = async (HIDDEN_ID, FFILE, TYPE) => {
const formData = new FormData();

View File

@ -1,5 +1,5 @@
<template>
<el-dialog title="选择其他存在风险" v-model="visible" width="1500">
<el-dialog v-model="visible" title="选择其他存在风险" width="1500">
<el-form
:model="searchForm"
label-width="60px"
@ -43,14 +43,14 @@
</el-form>
<layout-table
ref="tableRef"
:data="list"
v-model:pagination="pagination"
@get-data="fnGetData"
:data="list"
row-key="RISKCHECKITEM_ID"
@get-data="fnGetData"
>
<el-table-column reserve-selection type="selection" width="55" />
<el-table-column label="序号" width="70">
<template v-slot="{ $index }">
<template #default="{ $index }">
{{ serialNumber(pagination, $index) }}
</template>
</el-table-column>

View File

@ -1,21 +1,22 @@
<template>
<layout-card>
<el-divider content-position="left">基本信息</el-divider>
<el-form
ref="formRef"
:model="form"
:rules="rules"
label-width="100px"
>
<el-form ref="formRef" :model="form" :rules="rules" label-width="100px">
<el-row>
<el-col :span="6">
<el-form-item label="编号" prop="GOODSSELFNUMBER">
<el-input v-model="form.GOODSSELFNUMBER" placeholder="请填写自编号" />
<el-input
v-model="form.GOODSSELFNUMBER"
placeholder="请填写自编号"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item prop="PLATE_NUMBER" label="车牌号">
<el-input v-model = "form.PLATE_NUMBER" placeholder = "请填写车牌号"></el-input>
<el-input
v-model="form.PLATE_NUMBER"
placeholder="请填写车牌号"
></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
@ -32,17 +33,26 @@
</el-col>
<el-col :span="6">
<el-form-item label="车架号" prop="FRAMES_NUMBER">
<el-input v-model="form.FRAMES_NUMBER" placeholder="请填写车架号"></el-input>
<el-input
v-model="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="form.ENGINE_NUMBER" placeholder="请填写发动机号"></el-input>
<el-input
v-model="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="form.OPERATING_CERTIFICATE" placeholder="请填写营运证号"></el-input>
<el-input
v-model="form.OPERATING_CERTIFICATE"
placeholder="请填写营运证号"
></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
@ -59,7 +69,10 @@
</el-col>
<el-col :span="6">
<el-form-item label="归属部门" prop="BELONGING_DEPARTMENT">
<el-select v-model="form.BELONGING_DEPARTMENT" placeholder="请选择归属部门">
<el-select
v-model="form.BELONGING_DEPARTMENT"
placeholder="请选择归属部门"
>
<el-option
v-for="item in getBelongingDepartment"
:key="item.BIANMA"
@ -83,37 +96,58 @@
</el-col>
<el-col :span="6">
<el-form-item label="车主/业主" prop="VEHICLEOWNER">
<el-input v-model="form.VEHICLEOWNER" placeholder="请填写车主/业主"></el-input>
<el-input
v-model="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="form.VEHICLEOWNER_NUMBER" placeholder="请填写车主电话"></el-input>
<el-input
v-model="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="form.VEHICLEOWNER_ADDRESS" placeholder="请填写车主住址"></el-input>
<el-input
v-model="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="form.CONTACT" placeholder="请填写联系人"></el-input>
<el-input
v-model="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="form.CONTACT_NUMBER" placeholder="请填写联系电话"></el-input>
<el-input
v-model="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="form.HOME_ADDRESS" placeholder="请输入家庭住址"></el-input>
<el-input
v-model="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="form.PHYSICAL_ADDRESS" placeholder="请输入实际住址"></el-input>
<el-input
v-model="form.PHYSICAL_ADDRESS"
placeholder="请输入实际住址"
></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
@ -164,12 +198,18 @@
<el-divider content-position="left">检查内容</el-divider>
<el-col :span="6">
<el-form-item label="车辆品牌" prop="VEHICLE_BRAND">
<el-input v-model="form.VEHICLE_BRAND" placeholder="请填写车辆品牌"></el-input>
<el-input
v-model="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="form.VEHICLE_MODEL" placeholder="请填写车辆型号"></el-input>
<el-input
v-model="form.VEHICLE_MODEL"
placeholder="请填写车辆型号"
></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
@ -198,22 +238,34 @@
</el-col>
<el-col :span="6">
<el-form-item label="核定总质量" prop="VOUCH_TOTALMASS">
<el-input v-model="form.VOUCH_TOTALMASS" placeholder="请填写核定总质量"></el-input>
<el-input
v-model="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="form.VOUCH_NUMBERLOAD" placeholder="请填写核定载人数"></el-input>
<el-input
v-model="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="form.VOUCH_PAYLOAD" placeholder="请填写核定载质量"></el-input>
<el-input
v-model="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="form.RACTIONMASS_QUALITY" placeholder="请填写准牵引质量"></el-input>
<el-input
v-model="form.RACTIONMASS_QUALITY"
placeholder="请填写准牵引质量"
></el-input>
</el-form-item>
</el-col>
<el-col :span="24">
@ -248,7 +300,10 @@
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="上传营运证照片" prop="OPERATING_CERTIFICATE_PHOTO">
<el-form-item
label="上传营运证照片"
prop="OPERATING_CERTIFICATE_PHOTO"
>
<layout-upload
v-model:file-list="form.OPERATING_CERTIFICATE_PHOTO"
list-type="picture-card"
@ -259,9 +314,7 @@
</el-col>
<el-col :span="24">
<el-form-item label="车辆资料" prop="VEHICLE_MATERIAL">
<el-input
v-model="form.VEHICLE_MATERIAL"
/>
<el-input v-model="form.VEHICLE_MATERIAL" />
</el-form-item>
</el-col>
</el-row>
@ -286,7 +339,7 @@ import {
import {
findByIdOperatingVehicleInfo,
editOperatingVehicleInfo,
addOperatingVehicleInfo
addOperatingVehicleInfo, findByPlateNumber
} from "@/request/operation_vehicle.js";
import useFormValidate from "@/assets/js/useFormValidate.js";
@ -297,25 +350,95 @@ import { useRoute, useRouter } from "vue-router";
import { addingPrefixToFile } from "@/assets/js/utils.js";
import { setUploadImg } from "@/request/api.js";
const route = useRoute();
const router = useRouter();
const { OPERATING_ID } = route.query;
const isPlateNumberRepetition = async (rule, vehicleNumber, callback) => {
if (vehicleNumber) {
console.log("车牌号0-=0",vehicleNumber);
const vehicleCount = await findByPlateNumber({ vehicleNumber });
if (vehicleCount.pd) {
callback(new Error("车辆已存在"));
} else callback();
}
};
const isVehicleNumber = (rule, vehicleNumber, callback) => {
if (vehicleNumber) {
const xreg =
/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}(([0-9]{5}[DF]$)|([DF][A-HJ-NP-Z0-9][0-9]{4}$))/;
const creg =
/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]{1}$/;
if (vehicleNumber.length === 7) {
if (creg.test(vehicleNumber) === false) {
callback(new Error("格式错误"));
} else callback();
} else if (vehicleNumber.length === 8) {
if (xreg.test(vehicleNumber) === false) {
callback(new Error("格式错误"));
} else callback();
} else {
callback(new Error("格式错误"));
}
} else callback();
};
const rules = {
PLATE_NUMBER: [{ required: true, message: "车牌号不能为空", trigger: "blur" }],
VEHICLE_COLOR: [{required: true, message: "车辆颜色不能为空", trigger: "change"}],
FRAMES_NUMBER: [{required: true, message: "车架号不能为空", trigger: "change"}],
OPERATING_CERTIFICATE: [{required: true, message: "营运证号不能为空", trigger: "blur"}],
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"}],
VEHICLE_EQUIPMENT: [{required: true, message: "车载设备不能为空", trigger: "change"}],
PLATE_NUMBER: [
{ required: true, message: "请输入车牌号", trigger: "blur" },
{ validator: isVehicleNumber, trigger: "blur" },
{ validator: isPlateNumberRepetition, trigger: "blur" },
],
VEHICLE_COLOR: [
{ required: true, message: "车辆颜色不能为空", trigger: "change" },
],
FRAMES_NUMBER: [
{ required: true, message: "车架号不能为空", trigger: "change" },
],
OPERATING_CERTIFICATE: [
{ required: true, message: "营运证号不能为空", trigger: "blur" },
],
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" },
{ min: 11, max: 11, message: "请输入11位手机号码", trigger: "blur" },
{
pattern:
/^(?:(?:\+|00)86)?1(?:(?:3[\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[189]))\d{8}$/,
message: "请输入正确的手机号码",
},
],
CONTACT: [{ required: true, message: "联系人不能为空", trigger: "blur" }],
CONTACT_NUMBER: [
{ required: true, message: "请输入", trigger: "blur" },
{ min: 11, max: 11, message: "请输入11位手机号码", trigger: "blur" },
{
pattern:
/^(?:(?:\+|00)86)?1(?:(?:3[\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[189]))\d{8}$/,
message: "请输入正确的手机号码",
},
],
FIRSTSHOW_DATE: [
{ required: true, message: "初登日期不能为空", trigger: "blur" },
],
VEHICLE_EQUIPMENT: [
{ required: true, message: "车载设备不能为空", trigger: "change" },
],
HEADSTOCK_PHOTO: [
{ required: true, message: "车头照片不能为空", trigger: "blur" },
],
DRIVINGLICENSE_PHOTO: [
{ required: true, message: "行驶证照片不能为空", trigger: "blur" },
],
OPERATING_CERTIFICATE_PHOTO: [
{ required: true, message: "营运证照片不能为空", trigger: "blur" },
],
};
const formRef = ref(null);
const form = ref({
@ -358,7 +481,7 @@ const form = ref({
DRIVINGPREMIT_STATUS: "",
TRANSPORT_CATEGORY: "",
VEHICLE_MATERIAL: "",
FREIGHT_TYPE: ""
FREIGHT_TYPE: "",
});
const getVehicleColorList = await layoutFnGetVehicleColor();
const getTransportCategoryList = await layoutFnGetTransportCategory();
@ -372,38 +495,51 @@ const fnGetData = async () => {
if (!OPERATING_ID) return;
const resData = await findByIdOperatingVehicleInfo({ OPERATING_ID });
form.value = resData.pd;
form.value.HEADSTOCK_PHOTO = addingPrefixToFile(
resData.headstockphoto
);
form.value.HEADSTOCK_PHOTO = addingPrefixToFile(resData.headstockphoto);
form.value.DRIVINGLICENSE_PHOTO = addingPrefixToFile(
resData.drivinglicensephoto
);
form.value.OPERATING_CERTIFICATE_PHOTO = addingPrefixToFile(
resData.operatingcertificatephoto
);
}
};
fnGetData();
const fnSubmit = debounce(
1000,
async () => {
await useFormValidate(formRef);
const resData = !OPERATING_ID
? await addOperatingVehicleInfo({...form.value} )
: await editOperatingVehicleInfo({...form.value, OPERATING_ID:OPERATING_ID});
const currentOperatingVehicleId = resData.pd.OPERATING_ID
for (let i = 0; i < form.value.HEADSTOCK_PHOTO.length; i++){
if(form.value.HEADSTOCK_PHOTO[i].raw) {
await fnUploadImage(currentOperatingVehicleId, form.value.HEADSTOCK_PHOTO[i].raw, 130)
? await addOperatingVehicleInfo({ ...form.value })
: await editOperatingVehicleInfo({
...form.value,
OPERATING_ID,
});
const currentOperatingVehicleId = resData.pd.OPERATING_ID;
for (let i = 0; i < form.value.HEADSTOCK_PHOTO.length; i++) {
if (form.value.HEADSTOCK_PHOTO[i].raw) {
await fnUploadImage(
currentOperatingVehicleId,
form.value.HEADSTOCK_PHOTO[i].raw,
130
);
}
}
for (let i = 0; i < form.value.DRIVINGLICENSE_PHOTO.length; i++){
if(form.value.DRIVINGLICENSE_PHOTO[i].raw) {
await fnUploadImage(currentOperatingVehicleId, form.value.DRIVINGLICENSE_PHOTO[i].raw, 131)
for (let i = 0; i < form.value.DRIVINGLICENSE_PHOTO.length; i++) {
if (form.value.DRIVINGLICENSE_PHOTO[i].raw) {
await fnUploadImage(
currentOperatingVehicleId,
form.value.DRIVINGLICENSE_PHOTO[i].raw,
131
);
}
}
for (let i = 0; i < form.value.OPERATING_CERTIFICATE_PHOTO.length; i++){
if(form.value.OPERATING_CERTIFICATE_PHOTO[i].raw) {
await fnUploadImage(currentOperatingVehicleId, form.value.OPERATING_CERTIFICATE_PHOTO[i].raw, 132)
for (let i = 0; i < form.value.OPERATING_CERTIFICATE_PHOTO.length; i++) {
if (form.value.OPERATING_CERTIFICATE_PHOTO[i].raw) {
await fnUploadImage(
currentOperatingVehicleId,
form.value.OPERATING_CERTIFICATE_PHOTO[i].raw,
132
);
}
}
ElMessage.success("提交成功");

View File

@ -58,7 +58,6 @@
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="主动安全" prop="ACTIVE_SAFETY">
<el-select v-model="searchForm.ACTIVE_SAFETY">
@ -81,7 +80,7 @@
</el-col>
<el-col :span="30">
<el-form-item label-width="10px" class="end">
<el-button >导出</el-button>
<el-button>导出</el-button>
</el-form-item>
</el-col>
</el-row>
@ -89,28 +88,33 @@
</el-card>
<layout-card>
<layout-table
:data="list"
v-model:pagination="pagination"
:data="list"
@get-data="fnGetDataTransfer"
>
<el-table-column label="序号" width="70">
<template v-slot="{ $index }">
<template #default="{ $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="GOODSSELFNUMBER" label="编号" />
<el-table-column prop="PLATE_NUMBER" label="车牌号" />
<el-table-column prop="VEHICLE_COLOR" label="车辆颜色" />
<el-table-column prop="FRAMES_NUMBER" label="车架号" width="140"/>
<el-table-column prop="CONTACT" label="联系人"/>
<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="TRANSPORT_TYPE" label="运输类别" width="140"/>
<el-table-column prop="FIRSTSHOW_DATE" label="初登日期"/>
<el-table-column prop="EXPIRE_DATE" label="到期日期"/>
<el-table-column prop="FRAMES_NUMBER" label="车架号" width="140" />
<el-table-column prop="CONTACT" label="联系人" />
<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="TRANSPORT_TYPE" label="运输类别" width="140" />
<el-table-column prop="FIRSTSHOW_DATE" label="初登日期" />
<el-table-column prop="EXPIRE_DATE" label="到期日期" />
<el-table-column label="操作" width="150">
<template v-slot="{ row }">
<template #default="{ row }">
<el-button
type="primary"
text
@ -152,7 +156,7 @@
</el-button>
<el-button
v-if="buttonJurisdiction.del"
type="primary"
type="danger"
text
link
@click="fnDelete(row.OPERATING_ID)"
@ -166,7 +170,9 @@
v-if="buttonJurisdiction.add"
type="primary"
@click="
router.push({ path: '/enterprise_management/basics_info_management/operation_vehicle/add' })
router.push({
path: '/enterprise_management/basics_info_management/operation_vehicle/add',
})
"
>
新增
@ -185,7 +191,10 @@ import {
layoutFnGetNetworkStatus,
layoutFnGetActiveSafety,
} from "@/assets/js/operation_vehicle.js";
import { getOperationVehicleList, setOperationVehicleDelete } from "@/request/operation_vehicle.js";
import {
getOperationVehicleList,
setOperationVehicleDelete,
} from "@/request/operation_vehicle.js";
import { useRouter } from "vue-router";
import useButtonJurisdiction from "@/assets/js/useButtonJurisdiction.js";
import { debounce } from "throttle-debounce";
@ -193,9 +202,7 @@ import { ElMessage, ElMessageBox } from "element-plus";
const router = useRouter();
const { list, pagination, searchForm, fnGetData, fnResetPagination } =
useListData(getOperationVehicleList, {
});
useListData(getOperationVehicleList, {});
const troubleshootingCycleList = await layoutFnGetVehicleColor();
const networkStatusLevelList = await layoutFnGetNetworkStatus();
const activeSafety = await layoutFnGetActiveSafety();
@ -214,7 +221,7 @@ const fnDelete = debounce(
1000,
async (OPERATING_ID) => {
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
await setOperationVehicleDelete({ OPERATING_ID })
await setOperationVehicleDelete({ OPERATING_ID });
ElMessage.success("删除成功");
fnGetDataTransfer();
},

View File

@ -1,5 +1,6 @@
<template>
<layout-card>
<div id="printContainer">
<el-divider content-position="left">车辆档案</el-divider>
<el-descriptions border>
<el-descriptions-item label="车牌号">
@ -128,6 +129,11 @@
{{ info.VEHICLE_MATERIAL }}
</el-descriptions-item>
</el-descriptions>
</div>
<div class="mt-10 tc">
<el-button v-print="'#printContainer'" type="primary"></el-button>
</div>
<div v-html="PRINT_STYLE" />
</layout-card>
</template>
@ -136,16 +142,15 @@ import { findByIdOperatingVehicleInfo } from "@/request/operation_vehicle.js";
import { useRoute } from "vue-router";
import { ref } from "vue";
import { addingPrefixToFile } from "@/assets/js/utils.js";
import { PRINT_STYLE } from "@/assets/js/constant.js";
const route = useRoute();
const { OPERATING_ID } = route.query;
const info = ref({});
const fnGetData = async () => {
if (!OPERATING_ID) return;
const resData = await findByIdOperatingVehicleInfo({OPERATING_ID});
const resData = await findByIdOperatingVehicleInfo({ OPERATING_ID });
info.value = resData.pd;
info.value.HEADSTOCK_PHOTO = addingPrefixToFile(
resData.headstockphoto
);
info.value.HEADSTOCK_PHOTO = addingPrefixToFile(resData.headstockphoto);
info.value.DRIVINGLICENSE_PHOTO = addingPrefixToFile(
resData.drivinglicensephoto
);

View File

@ -209,7 +209,7 @@ const { list, pagination, searchForm, fnGetData, fnResetPagination, tableRef } =
},
defaultSearchForm: { STATE },
});
console.log(searchForm,"asdsadsadas");
console.log(searchForm, "asdsadsadas");
const fnGetDataTransfer = () => {
fnGetData({
STARTTIME: searchForm.value.dates?.[0],

View File

@ -1,23 +1,22 @@
<template>
<layout-card>
<el-divider content-position="left">车辆选择</el-divider>
<el-form
ref="formRef"
:model="form"
:rules="rules"
label-width="100px"
>
<el-form ref="formRef" :model="form" :rules="rules" label-width="100px">
<el-row>
<el-col :span="6">
<el-form-item label="登记编号" prop="RECORD_NUMBER">
<el-input v-model="form.RECORD_NUMBER" placeholder="请输入登记编号"/>
<el-input
v-model="form.RECORD_NUMBER"
placeholder="请输入登记编号"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="过户车型" prop="ASSIGNED_VEHICLE_MODEL">
<el-select v-model="form.ASSIGNED_VEHICLE_MODEL"
placeholder="请选择过户车型"
@change="fnEditVehicleModel"
<el-select
v-model="form.ASSIGNED_VEHICLE_MODEL"
placeholder="请选择过户车型"
@change="fnEditVehicleModel"
>
<el-option
v-for="item in assignedVehicleModelList"
@ -49,43 +48,51 @@
<el-row>
<el-col :span="6">
<el-form-item label="原车牌号" prop="RAW_PLATE_NUMBER">
<el-input v-model="form.VEHICLE.PLATE_NUMBER"
placeholder="--"
disabled
<el-input
v-model="form.VEHICLE.PLATE_NUMBER"
placeholder="--"
disabled
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="原车主/业主" prop="RAW_OWNERS">
<el-input v-model="form.VEHICLE.RAW_OWNERS"
placeholder="--"
disabled
<el-input
v-model="form.VEHICLE.RAW_OWNERS"
placeholder="--"
disabled
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="原车主电话" prop="RAW_OWNERS_NUMBER">
<el-input v-model="form.VEHICLE.RAW_OWNERS_NUMBER"
placeholder="--"
disabled
<el-input
v-model="form.VEHICLE.RAW_OWNERS_NUMBER"
placeholder="--"
disabled
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="原车辆营运证" prop="RAW_VEHICLE_OPERATION_CERTIFICATE">
<el-input v-model="form.VEHICLE.RAW_VEHICLE_OPERATION_CERTIFICATE"
placeholder="--"
disabled
<el-form-item
label="原车辆营运证"
prop="RAW_VEHICLE_OPERATION_CERTIFICATE"
>
<el-input
v-model="form.VEHICLE.RAW_VEHICLE_OPERATION_CERTIFICATE"
placeholder="--"
disabled
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="车架号" prop="FRAMES_NUMBER">
<el-input v-model="form.VEHICLE.FRAMES_NUMBER"
placeholder="--"
disabled
<el-input
v-model="form.VEHICLE.FRAMES_NUMBER"
placeholder="--"
disabled
/>
</el-form-item>
</el-col>
@ -107,7 +114,10 @@
<el-row>
<el-col :span="6">
<el-form-item label="过户类型" prop="ASSIGNED_TYPE">
<el-select v-model="form.ASSIGNED_TYPE" placeholder="请选择过户类型">
<el-select
v-model="form.ASSIGNED_TYPE"
placeholder="请选择过户类型"
>
<el-option
v-for="item in relatedClassificationList"
:key="item.BIANMA"
@ -119,8 +129,10 @@
</el-col>
<el-col :span="6">
<el-form-item label="过户方式" prop="ASSIGNED_WAY">
<el-select v-model="form.ASSIGNED_WAY" placeholder="请选择过户方式"
@change="fnEditAssignedWay"
<el-select
v-model="form.ASSIGNED_WAY"
placeholder="请选择过户方式"
@change="fnEditAssignedWay"
>
<el-option
v-for="item in assignedWayList"
@ -146,12 +158,18 @@
<el-row>
<el-col :span="6">
<el-form-item label="现车主/业主" prop="NOW_OWNERS">
<el-input v-model="form.NOW_OWNERS" placeholder="请填写现车主/业主" />
<el-input
v-model="form.NOW_OWNERS"
placeholder="请填写现车主/业主"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="现车主电话" prop="NOW_OWNERS_NUMBER">
<el-input v-model="form.NOW_OWNERS_NUMBER" placeholder="请填写现车主电话" />
<el-input
v-model="form.NOW_OWNERS_NUMBER"
placeholder="请填写现车主电话"
/>
</el-form-item>
</el-col>
<el-col :span="6">
@ -163,17 +181,21 @@
<el-row>
<el-col :span="6">
<el-form-item label="现车牌号" prop="NOW_PLATE_NUMBER">
<el-input v-model="form.NOW_PLATE_NUMBER"
:disabled="form.ASSIGNED_WAY === '协议过户'" label="1"
placeholder="请填写现车牌号"
<el-input
v-model="form.NOW_PLATE_NUMBER"
:disabled="form.ASSIGNED_WAY === '协议过户'"
label="1"
placeholder="请填写现车牌号"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="现营运证号" prop="NOW_OPERATION_CERTIFICATE">
<el-input v-model="form.NOW_OPERATION_CERTIFICATE"
:disabled="form.ASSIGNED_WAY === '协议过户'" label="1"
placeholder="请填写现营运证号"
<el-input
v-model="form.NOW_OPERATION_CERTIFICATE"
:disabled="form.ASSIGNED_WAY === '协议过户'"
label="1"
placeholder="请填写现营运证号"
/>
</el-form-item>
</el-col>
@ -185,14 +207,18 @@
format="YYYY-MM-DD"
type="date"
placeholder="请填写现登记日期"
:disabled = "form.ASSIGNED_WAY === '协议过户'" label="1"
:disabled="form.ASSIGNED_WAY === '协议过户'"
label="1"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="现车辆营运证照片" prop="NOW_VEHICLE_OPERATION_CERTIFICATE">
<el-form-item
label="现车辆营运证照片"
prop="NOW_VEHICLE_OPERATION_CERTIFICATE"
>
<layout-upload
v-model:file-list="form.NOW_VEHICLE_OPERATION_CERTIFICATE"
list-type="picture-card"
@ -245,16 +271,14 @@
import { onMounted, ref } from "vue";
import {
layoutFnGetAssignedWay,
layoutFnGetAssignedVehicleModel
layoutFnGetAssignedVehicleModel,
} from "@/assets/js/assigned_manage.js";
import {
getFreightTrailerList,
getFreightTrailerView
} from "@/request/enterprise_management.js"
getFreightTrailerView,
} from "@/request/enterprise_management.js";
import {
getOperationVehicleList,
findByIdOperatingVehicleInfo
} from "@/request/operation_vehicle.js"
findByIdOperatingVehicleInfo,
} from "@/request/operation_vehicle.js";
import LayoutUpload from "@/components/upload/index.vue";
import { debounce } from "throttle-debounce";
import useFormValidate from "@/assets/js/useFormValidate.js";
@ -263,17 +287,16 @@ import {
setAssignedManageAdd,
setAssignedManageEdit,
layoutFnGetScrapVehicleType,
getAssignedOperationVehicleList,
getAssignedFreightTrailerList
} from "@/request/assigned_manage.js";
import { setUploadImg } from "@/request/api.js";
import { ElMessage } from "element-plus";
import { useRoute, useRouter } from "vue-router";
const route = useRoute();
const router = useRouter();
const ASSIGNED_ID = route.query.ASSIGNED_ID
const ASSIGNED_ID = route.query.ASSIGNED_ID;
const assignedVehicleModelList = await layoutFnGetAssignedVehicleModel();
const relatedClassificationList = ref(null);
onMounted(async () => {
@ -281,31 +304,34 @@ onMounted(async () => {
relatedClassificationList.value = JSON.parse(data.value.zTreeNodes);
});
const getFreightVehicleList = await getFreightTrailerList();
const getOperationList = await getOperationVehicleList();
const freightVehicleList = await getAssignedFreightTrailerList();
const assignedWayList = await layoutFnGetAssignedWay();
const isVehicleNumber = (rule, vehicleNumber, callback)=>{
if(vehicleNumber){
var xreg=/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}(([0-9]{5}[DF]$)|([DF][A-HJ-NP-Z0-9][0-9]{4}$))/;
var creg=/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]{1}$/;
if(vehicleNumber.length === 7){
if(creg.test(vehicleNumber)===false){callback(new Error("格式错误"))}else callback();
} else if(vehicleNumber.length === 8){
if(xreg.test(vehicleNumber)===false){callback(new Error("格式错误"))}else callback();
} else{
callback(new Error("格式错误"))
}
}else callback();
}
const operationList = await getAssignedOperationVehicleList();
console.log("筛选后的挂车车辆",freightVehicleList);
const rules = {
ASSIGNED_VEHICLE_MODEL: [{ required: true, message: "过户车型不能为空", trigger: "change" }],
ASSIGNED_VEHICLE: [{ required: true, message: "过户车辆不能为空", trigger: "blur" }],
ASSIGNED_TYPE: [{ required: true, message: "过户类型不能为空", trigger: "change" }],
ASSIGNED_WAY: [{ required: true, message: "过户方式不能为空", trigger: "change" }],
TRANSACTION_DATE: [{required: true, message: "办理日期不能为空", trigger: "change"}],
REGISTRANT: [{required: true, message: "登记人不能为空", trigger: "blur"}],
NOW_VEHICLE_OPERATION_CERTIFICATE: [{required: true, message: "现车辆营运证照片不能为空", trigger: "blur"}],
NOW_DRIVINGLICENSE_IMG: [{required: true, message: "现行驶证照片不能为空", trigger: "blur"}],
ASSIGNED_VEHICLE_MODEL: [
{ required: true, message: "过户车型不能为空", trigger: "change" },
],
ASSIGNED_VEHICLE: [
{ required: true, message: "过户车辆不能为空", trigger: "blur" },
],
ASSIGNED_TYPE: [
{ required: true, message: "过户类型不能为空", trigger: "change" },
],
ASSIGNED_WAY: [
{ required: true, message: "过户方式不能为空", trigger: "change" },
],
TRANSACTION_DATE: [
{ required: true, message: "办理日期不能为空", trigger: "change" },
],
REGISTRANT: [{ required: true, message: "登记人不能为空", trigger: "blur" }],
NOW_VEHICLE_OPERATION_CERTIFICATE: [
{ required: true, message: "现车辆营运证照片不能为空", trigger: "blur" },
],
NOW_DRIVINGLICENSE_IMG: [
{ required: true, message: "现行驶证照片不能为空", trigger: "blur" },
],
NOW_OWNERS_NUMBER: [
{ required: true, message: "请输入现车主电话", trigger: "blur" },
{ min: 11, max: 11, message: "请输入11位手机号码", trigger: "blur" },
@ -315,10 +341,6 @@ const rules = {
message: "请输入正确的手机号码",
},
],
NOW_PLATE_NUMBER: [
{ required: true, message: "请输入现车牌号", trigger: "blur" },
{ validator: isVehicleNumber, trigger: "blur" },
],
};
const formRef = ref(null);
const form = ref({
@ -369,69 +391,79 @@ const form = ref({
ALLVEHICLE: {},
OPERATIONVEHICLELIST: [],
FREIGHTVEHICLELIST: [],
VEHICLE:{
VEHICLE: {
PLATE_NUMBER: "",
RAW_OWNERS: "",
RAW_OWNERS_NUMBER: "",
RAW_VEHICLE_OPERATION_CERTIFICATE: "",
FRAMES_NUMBER: "",
RAW_DRIVINGLICENSE_IMG: ""
}
RAW_DRIVINGLICENSE_IMG: "",
},
});
const info = ref({});
const fnEditVehicleModel = async () => {
form.value.VEHICLE_PLATE_NUMBER = null;
form.value.VEHICLE = {};
if(form.value.ASSIGNED_VEHICLE_MODEL === "运输车辆") {
form.value.ALLVEHICLE = getOperationList.varList
form.value.OPERATIONVEHICLELIST = form.value.ALLVEHICLE
}else if(form.value.ASSIGNED_VEHICLE_MODEL === "货运挂车") {
form.value.ALLVEHICLE = getFreightVehicleList.varList
form.value.FREIGHTVEHICLELIST = form.value.ALLVEHICLE
if (form.value.ASSIGNED_VEHICLE_MODEL === "运输车辆") {
form.value.ALLVEHICLE = operationList.varList;
form.value.OPERATIONVEHICLELIST = form.value.ALLVEHICLE;
} else if (form.value.ASSIGNED_VEHICLE_MODEL === "货运挂车") {
form.value.ALLVEHICLE = freightVehicleList.varList;
form.value.FREIGHTVEHICLELIST = form.value.ALLVEHICLE;
}
};
const fnGetVehicleInfo = async () => {
if(form.value.ASSIGNED_VEHICLE_MODEL === "运输车辆") {
if (form.value.ASSIGNED_VEHICLE_MODEL === "运输车辆") {
for (let i = 0; i < form.value.OPERATIONVEHICLELIST.length; i++) {
if(form.value.OPERATIONVEHICLELIST[i].PLATE_NUMBER === form.value.VEHICLE_PLATE_NUMBER) {
const OPERATING_ID = form.value.OPERATIONVEHICLELIST[i].OPERATING_ID
if (
form.value.OPERATIONVEHICLELIST[i].PLATE_NUMBER ===
form.value.VEHICLE_PLATE_NUMBER
) {
const OPERATING_ID = form.value.OPERATIONVEHICLELIST[i].OPERATING_ID;
const resData = await findByIdOperatingVehicleInfo({ OPERATING_ID });
console.log("resData",resData);
info.value = resData.pd;
form.value.VEHICLE.PLATE_NUMBER = info.value.PLATE_NUMBER
form.value.VEHICLE.RAW_OWNERS = info.value.VEHICLEOWNER
form.value.VEHICLE.RAW_OWNERS_NUMBER = info.value.VEHICLEOWNER_NUMBER
form.value.VEHICLE.RAW_VEHICLE_OPERATION_CERTIFICATE = info.value.OPERATING_CERTIFICATE
form.value.VEHICLE.FRAMES_NUMBER = info.value.FRAMES_NUMBER
form.value.VEHICLE.RAW_DRIVINGLICENSE_IMG = info.value.DRIVINGLICENSE_PHOTO
form.value.FRAMES_NUMBER = info.value.FRAMES_NUMBER
form.value.VEHICLE_BRAND = info.value.VEHICLE_BRAND
form.value.VEHICLE_MODEL = info.value.VEHICLE_MODEL
form.value.ENGINE_NUMBER = info.value.ENGINE_NUMBER
form.value.POWER_TYPE = info.value.FUEL_TYPE
form.value.EMISSION_STANDARD = info.value.EMISSION_STANDARD
form.value.RAW_PLATE_NUMBER = info.value.PLATE_NUMBER
form.value.RAW_OWNERS = info.value.VEHICLEOWNER
form.value.RAW_CONTACT_NUMBER = info.value.CONTACT_NUMBER
form.value.RAW_OPERATION_CERTIFICATE = info.value.OPERATING_CERTIFICATE
form.value.VEHICLE.PLATE_NUMBER = info.value.PLATE_NUMBER;
form.value.VEHICLE.RAW_OWNERS = info.value.VEHICLEOWNER;
form.value.VEHICLE.RAW_OWNERS_NUMBER = info.value.VEHICLEOWNER_NUMBER;
form.value.VEHICLE.RAW_VEHICLE_OPERATION_CERTIFICATE =
info.value.OPERATING_CERTIFICATE;
form.value.VEHICLE.FRAMES_NUMBER = info.value.FRAMES_NUMBER;
form.value.VEHICLE.RAW_DRIVINGLICENSE_IMG =
info.value.DRIVINGLICENSE_PHOTO;
form.value.FRAMES_NUMBER = info.value.FRAMES_NUMBER;
form.value.VEHICLE_BRAND = info.value.VEHICLE_BRAND;
form.value.VEHICLE_MODEL = info.value.VEHICLE_MODEL;
form.value.ENGINE_NUMBER = info.value.ENGINE_NUMBER;
form.value.POWER_TYPE = info.value.FUEL_TYPE;
form.value.EMISSION_STANDARD = info.value.EMISSION_STANDARD;
form.value.RAW_PLATE_NUMBER = info.value.PLATE_NUMBER;
form.value.RAW_OWNERS = info.value.VEHICLEOWNER;
form.value.RAW_CONTACT_NUMBER = info.value.CONTACT_NUMBER;
form.value.RAW_OPERATION_CERTIFICATE = info.value.OPERATING_CERTIFICATE;
form.value.VEHICLE.RAW_DRIVINGLICENSE_IMG = addingPrefixToFile(
resData.drivinglicensephoto
)
);
}
}
}else if(form.value.ASSIGNED_VEHICLE_MODEL === "货运挂车") {
} else if (form.value.ASSIGNED_VEHICLE_MODEL === "货运挂车") {
for (let i = 0; i < form.value.FREIGHTVEHICLELIST.length; i++) {
if(form.value.FREIGHTVEHICLELIST[i].PLATE_NUMBER === form.value.VEHICLE_PLATE_NUMBER) {
const FREIGHTTRAILER_ID = form.value.FREIGHTVEHICLELIST[i].FREIGHTTRAILER_ID
if (
form.value.FREIGHTVEHICLELIST[i].PLATE_NUMBER ===
form.value.VEHICLE_PLATE_NUMBER
) {
const FREIGHTTRAILER_ID =
form.value.FREIGHTVEHICLELIST[i].FREIGHTTRAILER_ID;
const resData = await getFreightTrailerView({ FREIGHTTRAILER_ID });
console.log("选中的货运挂车信息",resData);
console.log("选中的货运挂车信息", resData);
info.value = resData.pd;
form.value.VEHICLE.PLATE_NUMBER = info.value.PLATE_NUMBER
form.value.VEHICLE.RAW_OWNERS = info.value.CAR_OWNERS
form.value.VEHICLE.RAW_OWNERS_NUMBER = info.value.CAR_OWNERS_TEL
form.value.VEHICLE.RAW_VEHICLE_OPERATION_CERTIFICATE = info.value.OPER_CERTIFICATE_NUM
form.value.VEHICLE.FRAMES_NUMBER = info.value.VIN
form.value.VEHICLE.RAW_DRIVINGLICENSE_IMG = info.value.DRIVING_LICENSE_IMG
form.value.VEHICLE.PLATE_NUMBER = info.value.PLATE_NUMBER;
form.value.VEHICLE.RAW_OWNERS = info.value.CAR_OWNERS;
form.value.VEHICLE.RAW_OWNERS_NUMBER = info.value.CAR_OWNERS_TEL;
form.value.VEHICLE.RAW_VEHICLE_OPERATION_CERTIFICATE =
info.value.OPER_CERTIFICATE_NUM;
form.value.VEHICLE.FRAMES_NUMBER = info.value.VIN;
form.value.VEHICLE.RAW_DRIVINGLICENSE_IMG =
info.value.DRIVING_LICENSE_IMG;
form.value.VEHICLE_BRAND = info.value.TRAILER_BRAND;
form.value.VEHICLE_MODEL = info.value.TRAILER_MODEL;
form.value.RAW_PLATE_NUMBER = info.value.PLATE_NUMBER;
@ -444,13 +476,13 @@ const fnGetVehicleInfo = async () => {
form.value.POWER_TYPE = info.value.TRAILER_MODEL;
form.value.VEHICLE.RAW_DRIVINGLICENSE_IMG = addingPrefixToFile(
resData.drivingLicenseImgs
)
);
}
}
}
}
};
const fnEditAssignedWay = async () => {
if(form.value.ASSIGNED_WAY === '协议过户') {
if (form.value.ASSIGNED_WAY === "协议过户") {
form.value.NOW_PLATE_NUMBER = null;
form.value.NOW_OPERATION_CERTIFICATE = null;
form.value.NOW_RECORD_DATE = null;
@ -474,15 +506,30 @@ const fnSubmit = debounce(
await useFormValidate(formRef);
const resData = !ASSIGNED_ID
? await setAssignedManageAdd({ ...form.value })
: await setAssignedManageEdit({ ...form.value ,ASSIGNED_ID:ASSIGNED_ID});
const currentAssignedId =resData.pd.ASSIGNED_ID
for (let i = 0; i < form.value.NOW_VEHICLE_OPERATION_CERTIFICATE.length; i++) {
: await setAssignedManageEdit({
...form.value,
ASSIGNED_ID,
});
const currentAssignedId = resData.pd.ASSIGNED_ID;
for (
let i = 0;
i < form.value.NOW_VEHICLE_OPERATION_CERTIFICATE.length;
i++
) {
if (form.value.NOW_VEHICLE_OPERATION_CERTIFICATE[i].raw)
await fnUploadImage(currentAssignedId, form.value.NOW_VEHICLE_OPERATION_CERTIFICATE[i].raw, 120);
await fnUploadImage(
currentAssignedId,
form.value.NOW_VEHICLE_OPERATION_CERTIFICATE[i].raw,
120
);
}
for (let i = 0; i < form.value.NOW_DRIVINGLICENSE_IMG.length; i++) {
if (form.value.NOW_DRIVINGLICENSE_IMG[i].raw)
await fnUploadImage(currentAssignedId, form.value.NOW_DRIVINGLICENSE_IMG[i].raw, 121);
await fnUploadImage(
currentAssignedId,
form.value.NOW_DRIVINGLICENSE_IMG[i].raw,
121
);
}
ElMessage.success("提交成功");
router.back();
@ -496,7 +543,6 @@ const fnUploadImage = async (HIDDEN_ID, FFILE, TYPE) => {
formData.append("FFILE", FFILE);
await setUploadImg(formData);
};
</script>
<style scoped lang="scss"></style>

View File

@ -171,7 +171,7 @@
</el-button>
<el-button
v-if="buttonJurisdiction.del"
type="primary"
type="danger"
text
link
@click="fnDelete(row.ASSIGNED_ID)"
@ -201,7 +201,7 @@ import { serialNumber } from "@/assets/js/utils.js";
import useListData from "@/assets/js/useListData.js";
import {
layoutFnGetAssignedWay,
layoutFnGetAssignedVehicleModel
layoutFnGetAssignedVehicleModel,
} from "@/assets/js/assigned_manage.js";
import {
getAssignedList,
@ -242,8 +242,9 @@ const fnDelete = debounce(
1000,
async (ASSIGNED_ID) => {
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
await setAssignedManageDelete({ ASSIGNED_ID })
await setAssignedManageDelete({ ASSIGNED_ID });
ElMessage.success("删除成功");
fnGetDataTransfer();
},
{ atBegin: true }
);

View File

@ -1,5 +1,6 @@
<template>
<layout-card>
<div id="printContainer">
<el-divider content-position="left">基本信息</el-divider>
<el-descriptions border>
<el-descriptions-item label="登记编号">
@ -102,6 +103,11 @@
{{ info.REMARK }}
</el-descriptions-item>
</el-descriptions>
</div>
<div class="mt-10 tc">
<el-button v-print="'#printContainer'" type="primary"></el-button>
</div>
<div v-html="PRINT_STYLE" />
</layout-card>
</template>
@ -110,6 +116,7 @@ import { findByIdAssignedManageInfo } from "@/request/assigned_manage.js";
import { useRoute } from "vue-router";
import { ref } from "vue";
import { addingPrefixToFile } from "@/assets/js/utils.js";
import { PRINT_STYLE } from "@/assets/js/constant.js";
const route = useRoute();
const { ASSIGNED_ID } = route.query;
@ -119,10 +126,10 @@ const getData = async () => {
info.value = resData.pd;
info.value.NOW_VEHICLE_OPERATION_CERTIFICATE = addingPrefixToFile(
resData.nowVehicleOperationCertificateImgs
)
);
info.value.NOW_DRIVINGLICENSE_IMG = addingPrefixToFile(
resData.nowDrivinglicenseImg
)
);
};
getData();
</script>

View File

@ -1,261 +1,297 @@
<template>
<div>
<el-card>
<el-form
:model="searchForm"
label-width="100px"
@submit.prevent="fnResetPaginationTransfer"
>
<el-row>
<el-col :span="6">
<el-form-item label="车牌号" prop="PLATE_NUMBER">
<el-input v-model="searchForm.PLATE_NUMBER" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="车主业户" prop="CAR_OWNERS">
<el-input v-model="searchForm.CAR_OWNERS" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="登记人" prop="REGISTRANT">
<el-input v-model="searchForm.REGISTRANT" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="到期日期" prop="DUE_DATE">
<el-date-picker
v-model="searchForm.DUE_DATE"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="运营车型" prop="VEHICLE_MODEL">
<el-select v-model="searchForm.VEHICLE_MODEL">
<el-option
v-for="item in OPERATING_VEHICLE_TYPE_LIST"
:key="item.ID"
:label="item.NAME"
:value="item.ID"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="到期状态" prop="DUE_DATE_TYPE">
<el-select v-model="searchForm.DUE_DATE_TYPE">
<el-option
v-for="item in DUE_STATUS_LIST"
:key="item.ID"
:label="item.NAME"
:value="item.ID"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="提醒状态" prop="REMINDER_STATUS">
<el-select v-model="searchForm.REMINDER_STATUS">
<el-option
v-for="item in REMINDER_STATUS_LIST"
:key="item.ID"
:label="item.NAME"
:value="item.ID"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<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="2">
<el-form-item label-width="10px" class="end">
<el-button @click="fnExport"></el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-card>
<layout-card>
<layout-table
:data="list"
@get-data="fnGetDataTransfer"
v-model:pagination="pagination"
ref="tableRef"
row-key="INSPECTANNUALLY_ID"
>
<el-table-column reserve-selection type="selection" width="55" />
<el-table-column label="序号" width="60">
<template #default="{ $index }">
{{ serialNumber(pagination, $index) }}
</template>
</el-table-column>
<el-table-column prop="NUM" label="编号" width="150"/>
<el-table-column prop="VEHICLE_MODEL" label="运营车型" width="150">
<template #default="{ row }">
{{translationStatus(row.VEHICLE_MODEL,OPERATING_VEHICLE_TYPE_LIST)}}
</template>
</el-table-column>
<el-table-column prop="PLATE_NUMBER" label="车牌号" width="150"/>
<el-table-column prop="CAR_OWNERS" label="车主业户" width="150"/>
<el-table-column prop="TELEPHONE" label="联系电话" width="150"/>
<el-table-column prop="PROCESSING_DATE" label="办理日期" width="150"/>
<el-table-column prop="ANNUAL_INSPECTION_CYCLE_NAME" label="年检周期" width="150"/>
<el-table-column prop="DUE_DATE" label="到期日期" width="150"/>
<el-table-column prop="REGISTRANT" label="登记人" width="150"/>
<!--<el-table-column prop="CONTACTS" label="经营企业" width="150"/>-->
<el-table-column prop="REMINDER_STATUS" label="提醒状态" width="150">
<template #default="{ row }">
<span v-if="row.REMINDER_STATUS==='1'"></span>
<span v-else-if="row.REMINDER_STATUS==='0'">关闭</span>
</template>
</el-table-column>
<el-table-column prop="DUE_DATE_TYPE" label="到期状态" width="150">
<template #default="{ row }">
<span v-if="row.DUE_DATE_TYPE===1"></span>
<span v-else-if="row.DUE_DATE_TYPE===0">已到期</span>
<span v-else-if="row.DUE_DATE_TYPE===2">即将到期</span>
</template>
</el-table-column>
<el-table-column prop="ARCHIVES_TYPE" label="档案状态" width="150"/>
<el-table-column prop="CREATTIME" label="创建时间" width="150"/>
<el-table-column prop="OPERATTIME" label="修改时间" width="150"/>
<el-table-column label="操作" width="250">
<template #default="{ row }">
<el-button
type="primary"
text
link
@click="router.push({path: '/mechanical_files/inspect_annually/view',query: { INSPECTANNUALLY_ID: row.INSPECTANNUALLY_ID },})">
查看
</el-button>
<el-button
type="primary"
text
link
@click="router.push({path: '/mechanical_files/inspect_annually/edit',query: { INSPECTANNUALLY_ID: row.INSPECTANNUALLY_ID },})">
编辑
</el-button>
<el-button
type="primary"
text
link
@click="fnDelete(row.INSPECTANNUALLY_ID)">
删除
</el-button>
<el-button
v-if="row.REMINDER_STATUS==='0'"
type="primary"
text
link
@click="fnStatusChange(row.INSPECTANNUALLY_ID,'1')">
开启
</el-button>
<el-button
v-if="row.REMINDER_STATUS==='1'"
type="primary"
text
link
@click="fnStatusChange(row.INSPECTANNUALLY_ID,'0')">
关闭
</el-button>
</template>
</el-table-column>
<template #button>
<el-button
v-if="buttonJurisdiction.add"
type="primary"
@click="router.push({ path: '/mechanical_files/inspect_annually/add' })">
新增
</el-button>
</template>
</layout-table>
</layout-card>
<export-excel
v-model:visible="data.exportExcelDialog.visible"
:search-form="searchForm"
:ids="data.exportExcelDialog.ids"
<div>
<el-card>
<el-form
:model="searchForm"
label-width="100px"
@submit.prevent="fnResetPaginationTransfer"
>
<el-row>
<el-col :span="6">
<el-form-item label="车牌号" prop="PLATE_NUMBER">
<el-input v-model="searchForm.PLATE_NUMBER" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="车主业户" prop="CAR_OWNERS">
<el-input v-model="searchForm.CAR_OWNERS" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="登记人" prop="REGISTRANT">
<el-input v-model="searchForm.REGISTRANT" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="到期日期" prop="DUE_DATE">
<el-date-picker
v-model="searchForm.DUE_DATE"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="运营车型" prop="VEHICLE_MODEL">
<el-select v-model="searchForm.VEHICLE_MODEL">
<el-option
v-for="item in OPERATING_VEHICLE_TYPE_LIST"
:key="item.ID"
:label="item.NAME"
:value="item.ID"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="到期状态" prop="DUE_DATE_TYPE">
<el-select v-model="searchForm.DUE_DATE_TYPE">
<el-option
v-for="item in DUE_STATUS_LIST"
:key="item.ID"
:label="item.NAME"
:value="item.ID"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="提醒状态" prop="REMINDER_STATUS">
<el-select v-model="searchForm.REMINDER_STATUS">
<el-option
v-for="item in REMINDER_STATUS_LIST"
:key="item.ID"
:label="item.NAME"
:value="item.ID"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<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="2">
<el-form-item label-width="10px" class="end">
<el-button @click="fnExport"></el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-card>
<layout-card>
<layout-table
ref="tableRef"
v-model:pagination="pagination"
:data="list"
row-key="INSPECTANNUALLY_ID"
@get-data="fnGetDataTransfer"
>
<el-table-column reserve-selection type="selection" width="55" />
<el-table-column label="序号" width="60">
<template #default="{ $index }">
{{ serialNumber(pagination, $index) }}
</template>
</el-table-column>
<el-table-column prop="NUM" label="编号" width="150" />
<el-table-column prop="VEHICLE_MODEL" label="运营车型" width="150">
<template #default="{ row }">
{{
translationStatus(row.VEHICLE_MODEL, OPERATING_VEHICLE_TYPE_LIST)
}}
</template>
</el-table-column>
<el-table-column prop="PLATE_NUMBER" label="车牌号" width="150" />
<el-table-column prop="CAR_OWNERS" label="车主业户" width="150" />
<el-table-column prop="TELEPHONE" label="联系电话" width="150" />
<el-table-column prop="PROCESSING_DATE" label="办理日期" width="150" />
<el-table-column
prop="ANNUAL_INSPECTION_CYCLE_NAME"
label="年检周期"
width="150"
/>
</div>
<el-table-column prop="DUE_DATE" label="到期日期" width="150" />
<el-table-column prop="REGISTRANT" label="登记人" width="150" />
<!--<el-table-column prop="CONTACTS" label="经营企业" width="150"/>-->
<el-table-column prop="REMINDER_STATUS" label="提醒状态" width="150">
<template #default="{ row }">
<span v-if="row.REMINDER_STATUS === '1'"></span>
<span v-else-if="row.REMINDER_STATUS === '0'">关闭</span>
</template>
</el-table-column>
<el-table-column prop="DUE_DATE_TYPE" label="到期状态" width="150">
<template #default="{ row }">
<span v-if="row.DUE_DATE_TYPE === 1"></span>
<span v-else-if="row.DUE_DATE_TYPE === 0">已到期</span>
<span v-else-if="row.DUE_DATE_TYPE === 2">即将到期</span>
</template>
</el-table-column>
<el-table-column prop="ARCHIVES_TYPE" label="档案状态" width="150" />
<el-table-column prop="CREATTIME" label="创建时间" width="150" />
<el-table-column prop="OPERATTIME" label="修改时间" width="150" />
<el-table-column label="操作" width="250">
<template #default="{ row }">
<el-button
type="primary"
text
link
@click="
router.push({
path: '/mechanical_files/inspect_annually/view',
query: { INSPECTANNUALLY_ID: row.INSPECTANNUALLY_ID },
})
"
>
查看
</el-button>
<el-button
type="primary"
text
link
@click="
router.push({
path: '/mechanical_files/inspect_annually/edit',
query: { INSPECTANNUALLY_ID: row.INSPECTANNUALLY_ID },
})
"
>
编辑
</el-button>
<el-button
type="primary"
text
link
@click="fnDelete(row.INSPECTANNUALLY_ID)"
>
删除
</el-button>
<el-button
v-if="row.REMINDER_STATUS === '0'"
type="primary"
text
link
@click="fnStatusChange(row.INSPECTANNUALLY_ID, '1')"
>
开启
</el-button>
<el-button
v-if="row.REMINDER_STATUS === '1'"
type="primary"
text
link
@click="fnStatusChange(row.INSPECTANNUALLY_ID, '0')"
>
关闭
</el-button>
</template>
</el-table-column>
<template #button>
<el-button
v-if="buttonJurisdiction.add"
type="primary"
@click="
router.push({ path: '/mechanical_files/inspect_annually/add' })
"
>
新增
</el-button>
</template>
</layout-table>
</layout-card>
<export-excel
v-model:visible="data.exportExcelDialog.visible"
:search-form="searchForm"
:ids="data.exportExcelDialog.ids"
/>
</div>
</template>
<script setup>
import { useRouter } from "vue-router";
import { serialNumber ,translationStatus} from "@/assets/js/utils";
import useButtonJurisdiction from "@/assets/js/useButtonJurisdiction.js";
import useListData from "@/assets/js/useListData.js";
import { getInspectAnnuallyList ,setInspectAnnuallyDelete,setInspectAnnuallyEdit2} from "@/request/mechanical_files.js";
import ExportExcel from "./components/export_excel.vue";
import { reactive } from "vue";
import { debounce } from "throttle-debounce";
import { ElMessageBox ,ElMessage} from "element-plus";
import {OPERATING_VEHICLE_TYPE_LIST,DUE_STATUS_LIST,REMINDER_STATUS_LIST} from "@/assets/js/constant.js"
const router = useRouter();
const data = reactive({
exportExcelDialog: {
visible: false,
ids: [],
},
import { useRouter } from "vue-router";
import { serialNumber, translationStatus } from "@/assets/js/utils";
import useButtonJurisdiction from "@/assets/js/useButtonJurisdiction.js";
import useListData from "@/assets/js/useListData.js";
import {
getInspectAnnuallyList,
setInspectAnnuallyDelete,
setInspectAnnuallyEdit2,
} from "@/request/mechanical_files.js";
import ExportExcel from "./components/export_excel.vue";
import { reactive } from "vue";
import { debounce } from "throttle-debounce";
import { ElMessageBox, ElMessage } from "element-plus";
import {
OPERATING_VEHICLE_TYPE_LIST,
DUE_STATUS_LIST,
REMINDER_STATUS_LIST,
} from "@/assets/js/constant.js";
const router = useRouter();
const data = reactive({
exportExcelDialog: {
visible: false,
ids: [],
},
});
const { list, pagination, searchForm, fnGetData, fnResetPagination, tableRef } =
useListData(getInspectAnnuallyList);
const fnGetDataTransfer = () => {
fnGetData({
PLATE_NUMBER: searchForm.value.PLATE_NUMBER,
CAR_OWNERS: searchForm.value.CAR_OWNERS,
REGISTRANT: searchForm.value.REGISTRANT,
DUE_DATE: searchForm.value.DUE_DATE,
VEHICLE_MODEL: searchForm.value.VEHICLE_MODEL,
DUE_DATE_TYPE: searchForm.value.DUE_DATE_TYPE,
REMINDER_STATUS: searchForm.value.REMINDER_STATUS,
});
};
const fnResetPaginationTransfer = () => {
fnResetPagination({
PLATE_NUMBER: searchForm.value.PLATE_NUMBER,
CAR_OWNERS: searchForm.value.CAR_OWNERS,
REGISTRANT: searchForm.value.REGISTRANT,
DUE_DATE: searchForm.value.DUE_DATE,
VEHICLE_MODEL: searchForm.value.VEHICLE_MODEL,
DUE_DATE_TYPE: searchForm.value.DUE_DATE_TYPE,
REMINDER_STATUS: searchForm.value.REMINDER_STATUS,
});
};
const fnDelete = debounce(
1000,
async (INSPECTANNUALLY_ID) => {
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
await setInspectAnnuallyDelete({ INSPECTANNUALLY_ID });
ElMessage.success("删除成功");
fnResetPaginationTransfer();
},
{ atBegin: true }
);
const fnStatusChange = debounce(
1000,
async (INSPECTANNUALLY_ID, REMINDER_STATUS) => {
const msg = REMINDER_STATUS === "0" ? "关闭" : "开启";
await ElMessageBox.confirm("确定要" + msg + "提醒吗?", {
type: "warning",
});
const { list, pagination, searchForm, fnGetData, fnResetPagination, tableRef } =
useListData(getInspectAnnuallyList);
const fnGetDataTransfer = () => {
fnGetData({
PLATE_NUMBER: searchForm.value.PLATE_NUMBER,
CAR_OWNERS: searchForm.value.CAR_OWNERS,
REGISTRANT: searchForm.value.REGISTRANT,
DUE_DATE: searchForm.value.DUE_DATE,
VEHICLE_MODEL: searchForm.value.VEHICLE_MODEL,
DUE_DATE_TYPE: searchForm.value.DUE_DATE_TYPE,
REMINDER_STATUS:searchForm.value.REMINDER_STATUS
});
};
const fnResetPaginationTransfer = () => {
fnResetPagination({
PLATE_NUMBER: searchForm.value.PLATE_NUMBER,
CAR_OWNERS: searchForm.value.CAR_OWNERS,
REGISTRANT: searchForm.value.REGISTRANT,
DUE_DATE: searchForm.value.DUE_DATE,
VEHICLE_MODEL: searchForm.value.VEHICLE_MODEL,
DUE_DATE_TYPE: searchForm.value.DUE_DATE_TYPE,
REMINDER_STATUS:searchForm.value.REMINDER_STATUS
});
};
const fnDelete = debounce(
1000,
async (INSPECTANNUALLY_ID) => {
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
await setInspectAnnuallyDelete({ INSPECTANNUALLY_ID });
ElMessage.success("删除成功");
fnResetPaginationTransfer();
},
{ atBegin: true }
);
const fnStatusChange = debounce(
1000,
async (INSPECTANNUALLY_ID,REMINDER_STATUS) => {
const msg = REMINDER_STATUS==='0'?'关闭':'开启'
await ElMessageBox.confirm("确定要"+msg+"提醒吗?", { type: "warning" });
await setInspectAnnuallyEdit2({ INSPECTANNUALLY_ID ,REMINDER_STATUS});
ElMessage.success(msg+"成功");
fnResetPaginationTransfer();
},
{ atBegin: true }
);
const buttonJurisdiction = await useButtonJurisdiction("hidden");
const fnExport = () => {
const selectionData = tableRef.value.getSelectionRows();
data.exportExcelDialog.ids = selectionData.map((item) => item.INSPECTANNUALLY_ID);
data.exportExcelDialog.visible = true;
};
await setInspectAnnuallyEdit2({ INSPECTANNUALLY_ID, REMINDER_STATUS });
ElMessage.success(msg + "成功");
fnResetPaginationTransfer();
},
{ atBegin: true }
);
const buttonJurisdiction = await useButtonJurisdiction("hidden");
const fnExport = () => {
const selectionData = tableRef.value.getSelectionRows();
data.exportExcelDialog.ids = selectionData.map(
(item) => item.INSPECTANNUALLY_ID
);
data.exportExcelDialog.visible = true;
};
</script>
<style scoped></style>

View File

@ -1,276 +1,312 @@
<template>
<div>
<el-card>
<el-form
:model="searchForm"
label-width="100px"
@submit.prevent="fnResetPaginationTransfer"
>
<el-row>
<el-col :span="6">
<el-form-item label="车牌号" prop="PLATE_NUMBER">
<el-input v-model="searchForm.PLATE_NUMBER" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="车主业户" prop="CAR_OWNERS">
<el-input v-model="searchForm.CAR_OWNERS" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="登记人" prop="REGISTRANT">
<el-input v-model="searchForm.REGISTRANT" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="到期日期" prop="DUE_DATE">
<el-date-picker
v-model="searchForm.DUE_DATE"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="运营车型" prop="VEHICLE_MODEL">
<el-select v-model="searchForm.VEHICLE_MODEL">
<el-option
v-for="item in OPERATING_VEHICLE_TYPE_LIST"
:key="item.ID"
:label="item.NAME"
:value="item.ID"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="到期状态" prop="DUE_DATE_TYPE">
<el-select v-model="searchForm.DUE_DATE_TYPE">
<el-option
v-for="item in DUE_STATUS_LIST"
:key="item.ID"
:label="item.NAME"
:value="item.ID"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="提醒状态" prop="REMINDER_STATUS">
<el-select v-model="searchForm.REMINDER_STATUS">
<el-option
v-for="item in REMINDER_STATUS_LIST"
:key="item.ID"
:label="item.NAME"
:value="item.ID"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="保险年份" prop="PROCESSING_DATE_YEAR">
<el-date-picker
v-model="searchForm.PROCESSING_DATE_YEAR"
type="year"
value-format="YYYY"
format="YYYY"
/>
</el-form-item>
</el-col>
<el-col :span="4">
<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="2">
<el-form-item label-width="10px" class="end">
<el-button @click="fnExport"></el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-card>
<layout-card>
<layout-table
:data="list"
@get-data="fnGetDataTransfer"
v-model:pagination="pagination"
ref="tableRef"
row-key="INSURE_ID"
>
<el-table-column reserve-selection type="selection" width="55" />
<el-table-column label="序号" width="60">
<template #default="{ $index }">
{{ serialNumber(pagination, $index) }}
</template>
</el-table-column>
<el-table-column prop="NUM" label="编号" width="150"/>
<el-table-column prop="VEHICLE_MODEL" label="运营车型" width="150">
<template #default="{ row }">
{{translationStatus(row.VEHICLE_MODEL,OPERATING_VEHICLE_TYPE_LIST)}}
</template>
</el-table-column>
<el-table-column prop="PLATE_NUMBER" label="车牌号" width="150"/>
<el-table-column prop="CAR_OWNERS" label="车主业户" width="150"/>
<el-table-column prop="TELEPHONE" label="联系电话" width="150"/>
<el-table-column prop="PROCESSING_DATE_YEAR" label="保险年份" width="150"/>
<el-table-column prop="INSURANCE_COVERAGE" label="保险项目" width="150"/>
<el-table-column prop="PROCESSING_DATE" label="办理日期" width="150"/>
<el-table-column prop="EFFECTIVE_DATE" label="生效日期" width="150"/>
<el-table-column prop="DUE_DATE" label="到期日期" width="150"/>
<el-table-column prop="REGISTRANT" label="登记人" width="150"/>
<!--<el-table-column prop="NULLL" label="经营类型" width="150"/>-->
<!--<el-table-column prop="CONTACTS" label="经营企业" width="150"/>-->
<el-table-column prop="REMINDER_STATUS" label="提醒状态" width="150">
<template #default="{ row }">
<span v-if="row.REMINDER_STATUS==='1'"></span>
<span v-else-if="row.REMINDER_STATUS==='0'">关闭</span>
</template>
</el-table-column>
<el-table-column prop="DUE_DATE_TYPE" label="到期状态" width="150">
<template #default="{ row }">
<span v-if="row.DUE_DATE_TYPE===1"></span>
<span v-else-if="row.DUE_DATE_TYPE===0">已到期</span>
<span v-else-if="row.DUE_DATE_TYPE===2">即将到期</span>
</template>
</el-table-column>
<el-table-column prop="ARCHIVES_TYPE" label="档案状态" width="150"/>
<el-table-column prop="CREATTIME" label="创建时间" width="150"/>
<el-table-column prop="OPERATTIME" label="修改时间" width="150"/>
<el-table-column label="操作" width="250">
<template #default="{ row }">
<el-button
type="primary"
text
link
@click="router.push({path: '/mechanical_files/insure/view',query: { INSURE_ID: row.INSURE_ID },})">
查看
</el-button>
<el-button
type="primary"
text
link
@click="router.push({path: '/mechanical_files/insure/edit',query: { INSURE_ID: row.INSURE_ID },})">
编辑
</el-button>
<el-button
type="primary"
text
link
@click="fnDelete(row.INSURE_ID)">
删除
</el-button>
<el-button
v-if="row.REMINDER_STATUS==='0'"
type="primary"
text
link
@click="fnStatusChange(row.INSURE_ID,'1')">
开启
</el-button>
<el-button
v-if="row.REMINDER_STATUS==='1'"
type="primary"
text
link
@click="fnStatusChange(row.INSURE_ID,'0')">
关闭
</el-button>
</template>
</el-table-column>
<template #button>
<el-button
v-if="buttonJurisdiction.add"
type="primary"
@click="router.push({ path: '/mechanical_files/insure/add' })">
新增
</el-button>
</template>
</layout-table>
</layout-card>
<export-excel
v-model:visible="data.exportExcelDialog.visible"
:search-form="searchForm"
:ids="data.exportExcelDialog.ids"
<div>
<el-card>
<el-form
:model="searchForm"
label-width="100px"
@submit.prevent="fnResetPaginationTransfer"
>
<el-row>
<el-col :span="6">
<el-form-item label="车牌号" prop="PLATE_NUMBER">
<el-input v-model="searchForm.PLATE_NUMBER" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="车主业户" prop="CAR_OWNERS">
<el-input v-model="searchForm.CAR_OWNERS" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="登记人" prop="REGISTRANT">
<el-input v-model="searchForm.REGISTRANT" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="到期日期" prop="DUE_DATE">
<el-date-picker
v-model="searchForm.DUE_DATE"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="运营车型" prop="VEHICLE_MODEL">
<el-select v-model="searchForm.VEHICLE_MODEL">
<el-option
v-for="item in OPERATING_VEHICLE_TYPE_LIST"
:key="item.ID"
:label="item.NAME"
:value="item.ID"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="到期状态" prop="DUE_DATE_TYPE">
<el-select v-model="searchForm.DUE_DATE_TYPE">
<el-option
v-for="item in DUE_STATUS_LIST"
:key="item.ID"
:label="item.NAME"
:value="item.ID"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="提醒状态" prop="REMINDER_STATUS">
<el-select v-model="searchForm.REMINDER_STATUS">
<el-option
v-for="item in REMINDER_STATUS_LIST"
:key="item.ID"
:label="item.NAME"
:value="item.ID"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="保险年份" prop="PROCESSING_DATE_YEAR">
<el-date-picker
v-model="searchForm.PROCESSING_DATE_YEAR"
type="year"
value-format="YYYY"
format="YYYY"
/>
</el-form-item>
</el-col>
<el-col :span="4">
<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="2">
<el-form-item label-width="10px" class="end">
<el-button @click="fnExport"></el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-card>
<layout-card>
<layout-table
ref="tableRef"
v-model:pagination="pagination"
:data="list"
row-key="INSURE_ID"
@get-data="fnGetDataTransfer"
>
<el-table-column reserve-selection type="selection" width="55" />
<el-table-column label="序号" width="60">
<template #default="{ $index }">
{{ serialNumber(pagination, $index) }}
</template>
</el-table-column>
<el-table-column prop="NUM" label="编号" width="150" />
<el-table-column prop="VEHICLE_MODEL" label="运营车型" width="150">
<template #default="{ row }">
{{
translationStatus(row.VEHICLE_MODEL, OPERATING_VEHICLE_TYPE_LIST)
}}
</template>
</el-table-column>
<el-table-column prop="PLATE_NUMBER" label="车牌号" width="150" />
<el-table-column prop="CAR_OWNERS" label="车主业户" width="150" />
<el-table-column prop="TELEPHONE" label="联系电话" width="150" />
<el-table-column
prop="PROCESSING_DATE_YEAR"
label="保险年份"
width="150"
/>
</div>
<el-table-column
prop="INSURANCE_COVERAGE"
label="保险项目"
width="150"
/>
<el-table-column prop="PROCESSING_DATE" label="办理日期" width="150" />
<el-table-column prop="EFFECTIVE_DATE" label="生效日期" width="150" />
<el-table-column prop="DUE_DATE" label="到期日期" width="150" />
<el-table-column prop="REGISTRANT" label="登记人" width="150" />
<!--<el-table-column prop="NULLL" label="经营类型" width="150"/>-->
<!--<el-table-column prop="CONTACTS" label="经营企业" width="150"/>-->
<el-table-column prop="REMINDER_STATUS" label="提醒状态" width="150">
<template #default="{ row }">
<span v-if="row.REMINDER_STATUS === '1'"></span>
<span v-else-if="row.REMINDER_STATUS === '0'">关闭</span>
</template>
</el-table-column>
<el-table-column prop="DUE_DATE_TYPE" label="到期状态" width="150">
<template #default="{ row }">
<span v-if="row.DUE_DATE_TYPE === 1"></span>
<span v-else-if="row.DUE_DATE_TYPE === 0">已到期</span>
<span v-else-if="row.DUE_DATE_TYPE === 2">即将到期</span>
</template>
</el-table-column>
<el-table-column prop="ARCHIVES_TYPE" label="档案状态" width="150" />
<el-table-column prop="CREATTIME" label="创建时间" width="150" />
<el-table-column prop="OPERATTIME" label="修改时间" width="150" />
<el-table-column label="操作" width="250">
<template #default="{ row }">
<el-button
type="primary"
text
link
@click="
router.push({
path: '/mechanical_files/insure/view',
query: { INSURE_ID: row.INSURE_ID },
})
"
>
查看
</el-button>
<el-button
type="primary"
text
link
@click="
router.push({
path: '/mechanical_files/insure/edit',
query: { INSURE_ID: row.INSURE_ID },
})
"
>
编辑
</el-button>
<el-button
type="primary"
text
link
@click="fnDelete(row.INSURE_ID)"
>
删除
</el-button>
<el-button
v-if="row.REMINDER_STATUS === '0'"
type="primary"
text
link
@click="fnStatusChange(row.INSURE_ID, '1')"
>
开启
</el-button>
<el-button
v-if="row.REMINDER_STATUS === '1'"
type="primary"
text
link
@click="fnStatusChange(row.INSURE_ID, '0')"
>
关闭
</el-button>
</template>
</el-table-column>
<template #button>
<el-button
v-if="buttonJurisdiction.add"
type="primary"
@click="router.push({ path: '/mechanical_files/insure/add' })"
>
新增
</el-button>
</template>
</layout-table>
</layout-card>
<export-excel
v-model:visible="data.exportExcelDialog.visible"
:search-form="searchForm"
:ids="data.exportExcelDialog.ids"
/>
</div>
</template>
<script setup>
import { useRouter } from "vue-router";
import { serialNumber ,translationStatus} from "@/assets/js/utils";
import useButtonJurisdiction from "@/assets/js/useButtonJurisdiction.js";
import useListData from "@/assets/js/useListData.js";
import { getInsureList ,setInsureDelete,setInsureEdit2} from "@/request/mechanical_files.js";
import ExportExcel from "./components/export_excel.vue";
import { reactive } from "vue";
import { debounce } from "throttle-debounce";
import { ElMessageBox ,ElMessage} from "element-plus";
import {OPERATING_VEHICLE_TYPE_LIST,DUE_STATUS_LIST,REMINDER_STATUS_LIST} from "@/assets/js/constant.js"
const router = useRouter();
const data = reactive({
exportExcelDialog: {
visible: false,
ids: [],
},
import { useRouter } from "vue-router";
import { serialNumber, translationStatus } from "@/assets/js/utils";
import useButtonJurisdiction from "@/assets/js/useButtonJurisdiction.js";
import useListData from "@/assets/js/useListData.js";
import {
getInsureList,
setInsureDelete,
setInsureEdit2,
} from "@/request/mechanical_files.js";
import ExportExcel from "./components/export_excel.vue";
import { reactive } from "vue";
import { debounce } from "throttle-debounce";
import { ElMessageBox, ElMessage } from "element-plus";
import {
OPERATING_VEHICLE_TYPE_LIST,
DUE_STATUS_LIST,
REMINDER_STATUS_LIST,
} from "@/assets/js/constant.js";
const router = useRouter();
const data = reactive({
exportExcelDialog: {
visible: false,
ids: [],
},
});
const { list, pagination, searchForm, fnGetData, fnResetPagination, tableRef } =
useListData(getInsureList);
const fnGetDataTransfer = () => {
fnGetData({
PLATE_NUMBER: searchForm.value.PLATE_NUMBER,
CAR_OWNERS: searchForm.value.CAR_OWNERS,
REGISTRANT: searchForm.value.REGISTRANT,
DUE_DATE: searchForm.value.DUE_DATE,
VEHICLE_MODEL: searchForm.value.VEHICLE_MODEL,
DUE_DATE_TYPE: searchForm.value.DUE_DATE_TYPE,
REMINDER_STATUS: searchForm.value.REMINDER_STATUS,
PROCESSING_DATE_YEAR: searchForm.PROCESSING_DATE_YEAR,
});
};
const fnResetPaginationTransfer = () => {
fnResetPagination({
PLATE_NUMBER: searchForm.value.PLATE_NUMBER,
CAR_OWNERS: searchForm.value.CAR_OWNERS,
REGISTRANT: searchForm.value.REGISTRANT,
DUE_DATE: searchForm.value.DUE_DATE,
VEHICLE_MODEL: searchForm.value.VEHICLE_MODEL,
DUE_DATE_TYPE: searchForm.value.DUE_DATE_TYPE,
REMINDER_STATUS: searchForm.value.REMINDER_STATUS,
PROCESSING_DATE_YEAR: searchForm.value.PROCESSING_DATE_YEAR,
});
};
const fnDelete = debounce(
1000,
async (INSURE_ID) => {
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
await setInsureDelete({ INSURE_ID });
ElMessage.success("删除成功");
fnResetPaginationTransfer();
},
{ atBegin: true }
);
const fnStatusChange = debounce(
1000,
async (INSURE_ID, REMINDER_STATUS) => {
const msg = REMINDER_STATUS === "0" ? "关闭" : "开启";
await ElMessageBox.confirm("确定要" + msg + "提醒吗?", {
type: "warning",
});
const { list, pagination, searchForm, fnGetData, fnResetPagination, tableRef } =
useListData(getInsureList);
const fnGetDataTransfer = () => {
fnGetData({
PLATE_NUMBER: searchForm.value.PLATE_NUMBER,
CAR_OWNERS: searchForm.value.CAR_OWNERS,
REGISTRANT: searchForm.value.REGISTRANT,
DUE_DATE: searchForm.value.DUE_DATE,
VEHICLE_MODEL: searchForm.value.VEHICLE_MODEL,
DUE_DATE_TYPE: searchForm.value.DUE_DATE_TYPE,
REMINDER_STATUS:searchForm.value.REMINDER_STATUS,
PROCESSING_DATE_YEAR:searchForm.PROCESSING_DATE_YEAR
});
};
const fnResetPaginationTransfer = () => {
fnResetPagination({
PLATE_NUMBER: searchForm.value.PLATE_NUMBER,
CAR_OWNERS: searchForm.value.CAR_OWNERS,
REGISTRANT: searchForm.value.REGISTRANT,
DUE_DATE: searchForm.value.DUE_DATE,
VEHICLE_MODEL: searchForm.value.VEHICLE_MODEL,
DUE_DATE_TYPE: searchForm.value.DUE_DATE_TYPE,
REMINDER_STATUS:searchForm.value.REMINDER_STATUS,
PROCESSING_DATE_YEAR:searchForm.value.PROCESSING_DATE_YEAR
});
};
const fnDelete = debounce(
1000,
async (INSURE_ID) => {
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
await setInsureDelete({ INSURE_ID });
ElMessage.success("删除成功");
fnResetPaginationTransfer();
},
{ atBegin: true }
);
const fnStatusChange = debounce(
1000,
async (INSURE_ID,REMINDER_STATUS) => {
const msg = REMINDER_STATUS==='0'?'关闭':'开启'
await ElMessageBox.confirm("确定要"+msg+"提醒吗?", { type: "warning" });
await setInsureEdit2({ INSURE_ID ,REMINDER_STATUS});
ElMessage.success(msg+"成功");
fnResetPaginationTransfer();
},
{ atBegin: true }
);
const buttonJurisdiction = await useButtonJurisdiction("hidden");
const fnExport = () => {
const selectionData = tableRef.value.getSelectionRows();
data.exportExcelDialog.ids = selectionData.map((item) => item.INSURE_ID);
data.exportExcelDialog.visible = true;
};
await setInsureEdit2({ INSURE_ID, REMINDER_STATUS });
ElMessage.success(msg + "成功");
fnResetPaginationTransfer();
},
{ atBegin: true }
);
const buttonJurisdiction = await useButtonJurisdiction("hidden");
const fnExport = () => {
const selectionData = tableRef.value.getSelectionRows();
data.exportExcelDialog.ids = selectionData.map((item) => item.INSURE_ID);
data.exportExcelDialog.visible = true;
};
</script>
<style scoped></style>

View File

@ -1,249 +1,281 @@
<template>
<div>
<el-card>
<el-form
:model="searchForm"
label-width="100px"
@submit.prevent="fnResetPaginationTransfer"
>
<el-row>
<el-col :span="6">
<el-form-item label="车牌号" prop="PLATE_NUMBER">
<el-input v-model="searchForm.PLATE_NUMBER" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="车主业户" prop="CAR_OWNERS">
<el-input v-model="searchForm.CAR_OWNERS" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="登记人" prop="REGISTRANT">
<el-input v-model="searchForm.REGISTRANT" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="到期日期" prop="DUE_DATE">
<el-date-picker
v-model="searchForm.DUE_DATE"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="到期状态" prop="DUE_DATE_TYPE">
<el-select v-model="searchForm.DUE_DATE_TYPE">
<el-option
v-for="item in DUE_STATUS_LIST"
:key="item.ID"
:label="item.NAME"
:value="item.ID"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="提醒状态" prop="REMINDER_STATUS">
<el-select v-model="searchForm.REMINDER_STATUS">
<el-option
v-for="item in REMINDER_STATUS_LIST"
:key="item.ID"
:label="item.NAME"
:value="item.ID"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<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="2">
<el-form-item label-width="10px" class="end">
<el-button @click="fnExport"></el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-card>
<layout-card>
<layout-table
:data="list"
@get-data="fnGetDataTransfer"
v-model:pagination="pagination"
ref="tableRef"
row-key="MAINTENANCE_ID"
>
<el-table-column reserve-selection type="selection" width="55" />
<el-table-column label="序号" width="60">
<template #default="{ $index }">
{{ serialNumber(pagination, $index) }}
</template>
</el-table-column>
<el-table-column prop="NUM" label="编号" width="150"/>
<el-table-column prop="PLATE_NUMBER" label="车牌号" width="150"/>
<el-table-column prop="CAR_OWNERS" label="车主业户" width="150"/>
<el-table-column prop="TELEPHONE" label="联系电话" width="150"/>
<el-table-column prop="MAINTENANCE_LEVEL" label="维保等级" width="150">
<template #default="{ row }">
{{translationStatus(row.MAINTENANCE_LEVEL,MAINTENANCE_LEVEL_LIST)}}
</template>
</el-table-column>
<el-table-column prop="PROCESSING_DATE" label="办理日期" width="150"/>
<el-table-column prop="MAINTENANCE_CYCLE" label="维保周期" width="150"/>
<el-table-column prop="DUE_DATE" label="到期日期" width="150"/>
<el-table-column prop="REGISTRANT" label="登记人" width="150"/>
<!--<el-table-column prop="CONTACTS" label="经营企业" width="150"/>-->
<el-table-column prop="REMINDER_STATUS" label="提醒状态" width="150">
<template #default="{ row }">
<span v-if="row.REMINDER_STATUS==='1'"></span>
<span v-else-if="row.REMINDER_STATUS==='0'">关闭</span>
</template>
</el-table-column>
<el-table-column prop="DUE_DATE_TYPE" label="到期状态" width="150">
<template #default="{ row }">
<span v-if="row.DUE_DATE_TYPE===1"></span>
<span v-else-if="row.DUE_DATE_TYPE===0">已到期</span>
<span v-else-if="row.DUE_DATE_TYPE===2">即将到期</span>
</template>
</el-table-column>
<el-table-column prop="ARCHIVES_TYPE" label="档案状态" width="150"/>
<el-table-column prop="CREATTIME" label="创建时间" width="150"/>
<el-table-column prop="OPERATTIME" label="修改时间" width="150"/>
<el-table-column label="操作" width="250">
<template #default="{ row }">
<el-button
type="primary"
text
link
@click="router.push({path: '/mechanical_files/maintenance/view',query: { MAINTENANCE_ID: row.MAINTENANCE_ID },})">
查看
</el-button>
<el-button
type="primary"
text
link
@click="router.push({path: '/mechanical_files/maintenance/edit',query: { MAINTENANCE_ID: row.MAINTENANCE_ID },})">
编辑
</el-button>
<el-button
type="primary"
text
link
@click="fnDelete(row.MAINTENANCE_ID)">
删除
</el-button>
<el-button
v-if="row.REMINDER_STATUS==='0'"
type="primary"
text
link
@click="fnStatusChange(row.MAINTENANCE_ID,'1')">
开启
</el-button>
<el-button
v-if="row.REMINDER_STATUS==='1'"
type="primary"
text
link
@click="fnStatusChange(row.MAINTENANCE_ID,'0')">
关闭
</el-button>
</template>
</el-table-column>
<template #button>
<el-button
v-if="buttonJurisdiction.add"
type="primary"
@click="router.push({ path: '/mechanical_files/maintenance/add' })">
新增
</el-button>
</template>
</layout-table>
</layout-card>
<export-excel
v-model:visible="data.exportExcelDialog.visible"
:search-form="searchForm"
:ids="data.exportExcelDialog.ids"
<div>
<el-card>
<el-form
:model="searchForm"
label-width="100px"
@submit.prevent="fnResetPaginationTransfer"
>
<el-row>
<el-col :span="6">
<el-form-item label="车牌号" prop="PLATE_NUMBER">
<el-input v-model="searchForm.PLATE_NUMBER" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="车主业户" prop="CAR_OWNERS">
<el-input v-model="searchForm.CAR_OWNERS" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="登记人" prop="REGISTRANT">
<el-input v-model="searchForm.REGISTRANT" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="到期日期" prop="DUE_DATE">
<el-date-picker
v-model="searchForm.DUE_DATE"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="到期状态" prop="DUE_DATE_TYPE">
<el-select v-model="searchForm.DUE_DATE_TYPE">
<el-option
v-for="item in DUE_STATUS_LIST"
:key="item.ID"
:label="item.NAME"
:value="item.ID"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="提醒状态" prop="REMINDER_STATUS">
<el-select v-model="searchForm.REMINDER_STATUS">
<el-option
v-for="item in REMINDER_STATUS_LIST"
:key="item.ID"
:label="item.NAME"
:value="item.ID"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<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="2">
<el-form-item label-width="10px" class="end">
<el-button @click="fnExport"></el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-card>
<layout-card>
<layout-table
ref="tableRef"
v-model:pagination="pagination"
:data="list"
row-key="MAINTENANCE_ID"
@get-data="fnGetDataTransfer"
>
<el-table-column reserve-selection type="selection" width="55" />
<el-table-column label="序号" width="60">
<template #default="{ $index }">
{{ serialNumber(pagination, $index) }}
</template>
</el-table-column>
<el-table-column prop="NUM" label="编号" width="150" />
<el-table-column prop="PLATE_NUMBER" label="车牌号" width="150" />
<el-table-column prop="CAR_OWNERS" label="车主业户" width="150" />
<el-table-column prop="TELEPHONE" label="联系电话" width="150" />
<el-table-column prop="MAINTENANCE_LEVEL" label="维保等级" width="150">
<template #default="{ row }">
{{
translationStatus(row.MAINTENANCE_LEVEL, MAINTENANCE_LEVEL_LIST)
}}
</template>
</el-table-column>
<el-table-column prop="PROCESSING_DATE" label="办理日期" width="150" />
<el-table-column
prop="MAINTENANCE_CYCLE"
label="维保周期"
width="150"
/>
</div>
<el-table-column prop="DUE_DATE" label="到期日期" width="150" />
<el-table-column prop="REGISTRANT" label="登记人" width="150" />
<!--<el-table-column prop="CONTACTS" label="经营企业" width="150"/>-->
<el-table-column prop="REMINDER_STATUS" label="提醒状态" width="150">
<template #default="{ row }">
<span v-if="row.REMINDER_STATUS === '1'"></span>
<span v-else-if="row.REMINDER_STATUS === '0'">关闭</span>
</template>
</el-table-column>
<el-table-column prop="DUE_DATE_TYPE" label="到期状态" width="150">
<template #default="{ row }">
<span v-if="row.DUE_DATE_TYPE === 1"></span>
<span v-else-if="row.DUE_DATE_TYPE === 0">已到期</span>
<span v-else-if="row.DUE_DATE_TYPE === 2">即将到期</span>
</template>
</el-table-column>
<el-table-column prop="ARCHIVES_TYPE" label="档案状态" width="150" />
<el-table-column prop="CREATTIME" label="创建时间" width="150" />
<el-table-column prop="OPERATTIME" label="修改时间" width="150" />
<el-table-column label="操作" width="250">
<template #default="{ row }">
<el-button
type="primary"
text
link
@click="
router.push({
path: '/mechanical_files/maintenance/view',
query: { MAINTENANCE_ID: row.MAINTENANCE_ID },
})
"
>
查看
</el-button>
<el-button
type="primary"
text
link
@click="
router.push({
path: '/mechanical_files/maintenance/edit',
query: { MAINTENANCE_ID: row.MAINTENANCE_ID },
})
"
>
编辑
</el-button>
<el-button
type="primary"
text
link
@click="fnDelete(row.MAINTENANCE_ID)"
>
删除
</el-button>
<el-button
v-if="row.REMINDER_STATUS === '0'"
type="primary"
text
link
@click="fnStatusChange(row.MAINTENANCE_ID, '1')"
>
开启
</el-button>
<el-button
v-if="row.REMINDER_STATUS === '1'"
type="primary"
text
link
@click="fnStatusChange(row.MAINTENANCE_ID, '0')"
>
关闭
</el-button>
</template>
</el-table-column>
<template #button>
<el-button
v-if="buttonJurisdiction.add"
type="primary"
@click="router.push({ path: '/mechanical_files/maintenance/add' })"
>
新增
</el-button>
</template>
</layout-table>
</layout-card>
<export-excel
v-model:visible="data.exportExcelDialog.visible"
:search-form="searchForm"
:ids="data.exportExcelDialog.ids"
/>
</div>
</template>
<script setup>
import { useRouter } from "vue-router";
import { serialNumber ,translationStatus} from "@/assets/js/utils";
import useButtonJurisdiction from "@/assets/js/useButtonJurisdiction.js";
import useListData from "@/assets/js/useListData.js";
import { getMaintenanceList ,setMaintenanceDelete,setMaintenanceEdit2} from "@/request/mechanical_files.js";
import ExportExcel from "./components/export_excel.vue";
import { reactive } from "vue";
import { debounce } from "throttle-debounce";
import { ElMessageBox ,ElMessage} from "element-plus";
import {MAINTENANCE_LEVEL_LIST,DUE_STATUS_LIST,REMINDER_STATUS_LIST} from "@/assets/js/constant.js"
const router = useRouter();
const data = reactive({
exportExcelDialog: {
visible: false,
ids: [],
},
import { useRouter } from "vue-router";
import { serialNumber, translationStatus } from "@/assets/js/utils";
import useButtonJurisdiction from "@/assets/js/useButtonJurisdiction.js";
import useListData from "@/assets/js/useListData.js";
import {
getMaintenanceList,
setMaintenanceDelete,
setMaintenanceEdit2,
} from "@/request/mechanical_files.js";
import ExportExcel from "./components/export_excel.vue";
import { reactive } from "vue";
import { debounce } from "throttle-debounce";
import { ElMessageBox, ElMessage } from "element-plus";
import {
MAINTENANCE_LEVEL_LIST,
DUE_STATUS_LIST,
REMINDER_STATUS_LIST,
} from "@/assets/js/constant.js";
const router = useRouter();
const data = reactive({
exportExcelDialog: {
visible: false,
ids: [],
},
});
const { list, pagination, searchForm, fnGetData, fnResetPagination, tableRef } =
useListData(getMaintenanceList);
const fnGetDataTransfer = () => {
fnGetData({
PLATE_NUMBER: searchForm.value.PLATE_NUMBER,
CAR_OWNERS: searchForm.value.CAR_OWNERS,
REGISTRANT: searchForm.value.REGISTRANT,
DUE_DATE: searchForm.value.DUE_DATE,
VEHICLE_MODEL: searchForm.value.VEHICLE_MODEL,
DUE_DATE_TYPE: searchForm.value.DUE_DATE_TYPE,
REMINDER_STATUS: searchForm.value.REMINDER_STATUS,
});
};
const fnResetPaginationTransfer = () => {
fnResetPagination({
PLATE_NUMBER: searchForm.value.PLATE_NUMBER,
CAR_OWNERS: searchForm.value.CAR_OWNERS,
REGISTRANT: searchForm.value.REGISTRANT,
DUE_DATE: searchForm.value.DUE_DATE,
VEHICLE_MODEL: searchForm.value.VEHICLE_MODEL,
DUE_DATE_TYPE: searchForm.value.DUE_DATE_TYPE,
REMINDER_STATUS: searchForm.value.REMINDER_STATUS,
});
};
const fnDelete = debounce(
1000,
async (MAINTENANCE_ID) => {
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
await setMaintenanceDelete({ MAINTENANCE_ID });
ElMessage.success("删除成功");
fnResetPaginationTransfer();
},
{ atBegin: true }
);
const fnStatusChange = debounce(
1000,
async (MAINTENANCE_ID, REMINDER_STATUS) => {
const msg = REMINDER_STATUS === "0" ? "关闭" : "开启";
await ElMessageBox.confirm("确定要" + msg + "提醒吗?", {
type: "warning",
});
const { list, pagination, searchForm, fnGetData, fnResetPagination, tableRef } =
useListData(getMaintenanceList);
const fnGetDataTransfer = () => {
fnGetData({
PLATE_NUMBER: searchForm.value.PLATE_NUMBER,
CAR_OWNERS: searchForm.value.CAR_OWNERS,
REGISTRANT: searchForm.value.REGISTRANT,
DUE_DATE: searchForm.value.DUE_DATE,
VEHICLE_MODEL: searchForm.value.VEHICLE_MODEL,
DUE_DATE_TYPE: searchForm.value.DUE_DATE_TYPE,
REMINDER_STATUS:searchForm.value.REMINDER_STATUS
});
};
const fnResetPaginationTransfer = () => {
fnResetPagination({
PLATE_NUMBER: searchForm.value.PLATE_NUMBER,
CAR_OWNERS: searchForm.value.CAR_OWNERS,
REGISTRANT: searchForm.value.REGISTRANT,
DUE_DATE: searchForm.value.DUE_DATE,
VEHICLE_MODEL: searchForm.value.VEHICLE_MODEL,
DUE_DATE_TYPE: searchForm.value.DUE_DATE_TYPE,
REMINDER_STATUS:searchForm.value.REMINDER_STATUS
});
};
const fnDelete = debounce(
1000,
async (MAINTENANCE_ID) => {
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
await setMaintenanceDelete({ MAINTENANCE_ID });
ElMessage.success("删除成功");
fnResetPaginationTransfer();
},
{ atBegin: true }
);
const fnStatusChange = debounce(
1000,
async (MAINTENANCE_ID,REMINDER_STATUS) => {
const msg = REMINDER_STATUS==='0'?'关闭':'开启'
await ElMessageBox.confirm("确定要"+msg+"提醒吗?", { type: "warning" });
await setMaintenanceEdit2({ MAINTENANCE_ID ,REMINDER_STATUS});
ElMessage.success(msg+"成功");
fnResetPaginationTransfer();
},
{ atBegin: true }
);
const buttonJurisdiction = await useButtonJurisdiction("hidden");
const fnExport = () => {
const selectionData = tableRef.value.getSelectionRows();
data.exportExcelDialog.ids = selectionData.map((item) => item.MAINTENANCE_ID);
data.exportExcelDialog.visible = true;
};
await setMaintenanceEdit2({ MAINTENANCE_ID, REMINDER_STATUS });
ElMessage.success(msg + "成功");
fnResetPaginationTransfer();
},
{ atBegin: true }
);
const buttonJurisdiction = await useButtonJurisdiction("hidden");
const fnExport = () => {
const selectionData = tableRef.value.getSelectionRows();
data.exportExcelDialog.ids = selectionData.map((item) => item.MAINTENANCE_ID);
data.exportExcelDialog.visible = true;
};
</script>
<style scoped></style>

View File

@ -1,373 +1,398 @@
<template>
<layout-card>
<el-form ref="formRef" :rules="rules" :model="form" label-width="140px">
<el-row :gutter="20">
<el-col :span="24">
<el-divider content-position="left">车辆选择</el-divider>
</el-col>
<el-col :span="12">
<el-form-item label="运营车型" prop="VEHICLE_MODEL">
<el-select v-model="form.VEHICLE_MODEL" @change="getVehicle">
<el-option
v-for="item in OPERATING_VEHICLE_TYPE_LIST"
:key="item.ID"
:label="item.NAME"
:value="item.ID"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="运营车辆" prop="VEHICLE">
<el-select v-model="form.VEHICLE" @change="getBusInfo">
<el-option
v-for="item in data.vehicleList"
:key="item.ID"
:label="item.PLATE_NUMBER"
:value="item.ID"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-divider content-position="left">基本信息</el-divider>
</el-col>
<el-col :span="12">
<el-form-item label="行驶证照片" prop="DRIVING_LICENSE_IMG">
<layout-upload
v-model:file-list="data.busInfo.DRIVING_LICENSE_IMG"
list-type="picture-card"
accept=".jpg,.jpeg,.png"
delete-to-server
disabled
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="车牌号" prop="PLATE_NUMBER">
<el-input v-model="data.busInfo.PLATE_NUMBER" disabled />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="车架号" prop="VIN">
<el-input v-model="data.busInfo.VIN" disabled/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="车辆类型" prop="TRAILER_TYPE">
<el-input v-model="data.busInfo.TRAILER_TYPE" disabled/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="车主/业户" prop="CAR_OWNERS ">
<el-input v-model="data.busInfo.CAR_OWNERS " disabled/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="车主电话" prop="CAR_OWNERS_TEL">
<el-input v-model="data.busInfo.CAR_OWNERS_TEL" disabled/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="初登日期" prop="INITIAL_REGISTRATION_DATE">
<el-date-picker
v-model="data.busInfo.INITIAL_REGISTRATION_DATE"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
disabled
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="所属区域" prop="COMPANY_AREA">
<el-input v-model="data.busInfo.COMPANY_AREA" disabled/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-divider content-position="left">运营证信息</el-divider>
</el-col>
<el-col :span="12">
<el-form-item label="编号" prop="NUM">
<el-input v-model="form.NUM" maxlength="50" show-word-limit/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="车主业户" prop="CAR_OWNERS">
<el-input v-model="form.CAR_OWNERS" maxlength="50" show-word-limit/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系电话" prop="TELEPHONE">
<el-input v-model="form.TELEPHONE" maxlength="11" show-word-limit/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="登记人" prop="REGISTRANT">
<el-input v-model="form.REGISTRANT" maxlength="50" show-word-limit/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="办理日期" prop="PROCESSING_DATE">
<el-date-picker
v-model="form.PROCESSING_DATE"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
@change="getDueDate"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="运营周期" prop="CYCLE">
<el-select v-model="form.CYCLE" @change="getDueDate">
<el-option
v-for="item in annualInspectionCycleList"
:key="item.DICTIONARIES_ID"
:label="item.NAME"
:value="item.DICTIONARIES_ID"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="到期日期" prop="DUE_DATE">
<el-date-picker
v-model="form.DUE_DATE"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
disabled
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="提醒天数" prop="REMINDER_DAYS">
<el-input v-model.number="form.REMINDER_DAYS" maxlength="50" show-word-limit @change="getRemiderDate"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="提醒日期" prop="REMINDER_DATE">
<el-date-picker
v-model="form.REMINDER_DATE"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
disabled
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="提醒状态" prop="REMINDER_STATUS">
<el-switch
v-model="form.REMINDER_STATUS"
inline-prompt
active-text="开"
inactive-text="关"
active-value="1"
inactive-value="0"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="运营证资料" prop="OPERATIONSINFO">
<layout-upload
v-model:file-list="form.OPERATIONSINFO"
list-type="picture-card"
accept=".jpg,.jpeg,.png"
:limit="99"
delete-to-server
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" prop="NOTES">
<el-input
v-model="form.NOTES"
type="textarea"
:autosize="{ minRows: 3 }"
maxlength="250" show-word-limit
/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="mt-10 tc">
<el-button type="primary" @click="fnSubmit"></el-button>
</div>
</layout-card>
<layout-card>
<el-form ref="formRef" :rules="rules" :model="form" label-width="140px">
<el-row :gutter="20">
<el-col :span="24">
<el-divider content-position="left">车辆选择</el-divider>
</el-col>
<el-col :span="12">
<el-form-item label="运营车型" prop="VEHICLE_MODEL">
<el-select v-model="form.VEHICLE_MODEL" @change="getVehicle">
<el-option
v-for="item in OPERATING_VEHICLE_TYPE_LIST"
:key="item.ID"
:label="item.NAME"
:value="item.ID"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="运营车辆" prop="VEHICLE">
<el-select v-model="form.VEHICLE" @change="getBusInfo">
<el-option
v-for="item in data.vehicleList"
:key="item.ID"
:label="item.PLATE_NUMBER"
:value="item.ID"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-divider content-position="left">基本信息</el-divider>
</el-col>
<el-col :span="12">
<el-form-item label="行驶证照片" prop="DRIVING_LICENSE_IMG">
<layout-upload
v-model:file-list="data.busInfo.DRIVING_LICENSE_IMG"
list-type="picture-card"
accept=".jpg,.jpeg,.png"
delete-to-server
disabled
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="车牌号" prop="PLATE_NUMBER">
<el-input v-model="data.busInfo.PLATE_NUMBER" disabled />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="车架号" prop="VIN">
<el-input v-model="data.busInfo.VIN" disabled />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="车辆类型" prop="TRAILER_TYPE">
<el-input v-model="data.busInfo.TRAILER_TYPE" disabled />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="车主/业户" prop="CAR_OWNERS ">
<el-input v-model="data.busInfo.CAR_OWNERS" disabled />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="车主电话" prop="CAR_OWNERS_TEL">
<el-input v-model="data.busInfo.CAR_OWNERS_TEL" disabled />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="初登日期" prop="INITIAL_REGISTRATION_DATE">
<el-date-picker
v-model="data.busInfo.INITIAL_REGISTRATION_DATE"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
disabled
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="所属区域" prop="COMPANY_AREA">
<el-input v-model="data.busInfo.COMPANY_AREA" disabled />
</el-form-item>
</el-col>
<el-col :span="24">
<el-divider content-position="left">运营证信息</el-divider>
</el-col>
<el-col :span="12">
<el-form-item label="编号" prop="NUM">
<el-input v-model="form.NUM" maxlength="50" show-word-limit />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="车主业户" prop="CAR_OWNERS">
<el-input
v-model="form.CAR_OWNERS"
maxlength="50"
show-word-limit
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系电话" prop="TELEPHONE">
<el-input v-model="form.TELEPHONE" maxlength="11" show-word-limit />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="登记人" prop="REGISTRANT">
<el-input
v-model="form.REGISTRANT"
maxlength="50"
show-word-limit
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="办理日期" prop="PROCESSING_DATE">
<el-date-picker
v-model="form.PROCESSING_DATE"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
@change="getDueDate"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="运营周期" prop="CYCLE">
<el-select v-model="form.CYCLE" @change="getDueDate">
<el-option
v-for="item in annualInspectionCycleList"
:key="item.DICTIONARIES_ID"
:label="item.NAME"
:value="item.DICTIONARIES_ID"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="到期日期" prop="DUE_DATE">
<el-date-picker
v-model="form.DUE_DATE"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
disabled
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="提醒天数" prop="REMINDER_DAYS">
<el-input
v-model.number="form.REMINDER_DAYS"
maxlength="50"
show-word-limit
@change="getRemiderDate"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="提醒日期" prop="REMINDER_DATE">
<el-date-picker
v-model="form.REMINDER_DATE"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
disabled
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="提醒状态" prop="REMINDER_STATUS">
<el-switch
v-model="form.REMINDER_STATUS"
inline-prompt
active-text="开"
inactive-text="关"
active-value="1"
inactive-value="0"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="运营证资料" prop="OPERATIONSINFO">
<layout-upload
v-model:file-list="form.OPERATIONSINFO"
list-type="picture-card"
accept=".jpg,.jpeg,.png"
:limit="99"
delete-to-server
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" prop="NOTES">
<el-input
v-model="form.NOTES"
type="textarea"
:autosize="{ minRows: 3 }"
maxlength="250"
show-word-limit
/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="mt-10 tc">
<el-button type="primary" @click="fnSubmit"></el-button>
</div>
</layout-card>
</template>
<script setup>
import LayoutUpload from "@/components/upload/index.vue";
import { ref ,reactive} from "vue";
import { debounce } from "throttle-debounce";
import {getOperationsView, setOperationsAdd ,setOperationsEdit,getTrailerList} from "@/request/mechanical_files.js";
import {OPERATING_VEHICLE_TYPE_LIST} from "@/assets/js/constant.js"
import {layoutFnGetAnnualInspectionCycle} from "@/assets/js/data_dictionary.js"
import { setUploadImg } from "@/request/api.js";
import { ElMessage } from "element-plus";
import { useRoute, useRouter, } from "vue-router";
import useFormValidate from "@/assets/js/useFormValidate.js";
import { addingPrefixToFile ,timeTransformation,subtractDaysFromDate} from "@/assets/js/utils.js";
const route = useRoute();
const router = useRouter();
const OPERATIONS_ID = route.query.OPERATIONS_ID
const annualInspectionCycleList = await layoutFnGetAnnualInspectionCycle()
const formRef = ref(null);
const form = ref({
VEHICLE_MODEL : '',
VEHICLE : '',
NUM:'',
CAR_OWNERS : '',
TELEPHONE : '',
REGISTRANT : '',
PROCESSING_DATE : '',
CYCLE : '',
DUE_DATE : '',
REMINDER_DAYS : '',
REMINDER_DATE : '',
REMINDER_STATUS : '',
OPERATIONSINFO : []
});
const data = reactive({
vehicleList: [],
busInfo:{
DRIVING_LICENSE_IMG : [],
PLATE_NUMBER : '',
VIN : '',
TRAILER_TYPE : '',
CAR_OWNERS : '',
CAR_OWNERS_TEL : '',
INITIAL_REGISTRATION_DATE : '',
COMPANY_AREA:'',
}
});
const rules = {
VEHICLE_MODEL: [{ required: true, message: "请输入", trigger: "blur" }],
VEHICLE: [{ required: true, message: "请输入", trigger: "blur" }],
CAR_OWNERS: [{ required: true, message: "请输入", trigger: "blur" }],
TELEPHONE: [
{ required: true, message: "请输入", trigger: "blur" },
{ min: 11, max: 11, message: "请输入11位手机号码", trigger: "blur" },
{
pattern:
/^(?:(?:\+|00)86)?1(?:(?:3[\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[189]))\d{8}$/,
message: "请输入正确的手机号码",
},
],
REGISTRANT: [{ required: true, message: "请输入", trigger: "blur" }],
PROCESSING_DATE: [{ required: true, message: "请输入", trigger: "blur" }],
CYCLE: [{ required: true, message: "请输入", trigger: "blur" }],
DUE_DATE: [{ required: true, message: "请输入", trigger: "blur" }],
REMINDER_DAYS: [{ required: true, message: "请输入", trigger: "blur" }],
REMINDER_DATE: [{ required: true, message: "请输入", trigger: "blur" }],
import LayoutUpload from "@/components/upload/index.vue";
import { ref, reactive } from "vue";
import { debounce } from "throttle-debounce";
import {
getOperationsView,
setOperationsAdd,
setOperationsEdit,
getTrailerList,
} from "@/request/mechanical_files.js";
import { OPERATING_VEHICLE_TYPE_LIST } from "@/assets/js/constant.js";
import { layoutFnGetAnnualInspectionCycle } from "@/assets/js/data_dictionary.js";
import { setUploadImg } from "@/request/api.js";
import { ElMessage } from "element-plus";
import { useRoute, useRouter } from "vue-router";
import useFormValidate from "@/assets/js/useFormValidate.js";
import {
addingPrefixToFile,
timeTransformation,
subtractDaysFromDate,
} from "@/assets/js/utils.js";
const route = useRoute();
const router = useRouter();
const OPERATIONS_ID = route.query.OPERATIONS_ID;
const annualInspectionCycleList = await layoutFnGetAnnualInspectionCycle();
const formRef = ref(null);
const form = ref({
VEHICLE_MODEL: "",
VEHICLE: "",
NUM: "",
CAR_OWNERS: "",
TELEPHONE: "",
REGISTRANT: "",
PROCESSING_DATE: "",
CYCLE: "",
DUE_DATE: "",
REMINDER_DAYS: "",
REMINDER_DATE: "",
REMINDER_STATUS: "",
OPERATIONSINFO: [],
});
const data = reactive({
vehicleList: [],
busInfo: {
DRIVING_LICENSE_IMG: [],
PLATE_NUMBER: "",
VIN: "",
TRAILER_TYPE: "",
CAR_OWNERS: "",
CAR_OWNERS_TEL: "",
INITIAL_REGISTRATION_DATE: "",
COMPANY_AREA: "",
},
});
const rules = {
VEHICLE_MODEL: [{ required: true, message: "请输入", trigger: "blur" }],
VEHICLE: [{ required: true, message: "请输入", trigger: "blur" }],
CAR_OWNERS: [{ required: true, message: "请输入", trigger: "blur" }],
TELEPHONE: [
{ required: true, message: "请输入", trigger: "blur" },
{ min: 11, max: 11, message: "请输入11位手机号码", trigger: "blur" },
{
pattern:
/^(?:(?:\+|00)86)?1(?:(?:3[\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[189]))\d{8}$/,
message: "请输入正确的手机号码",
},
],
REGISTRANT: [{ required: true, message: "请输入", trigger: "blur" }],
PROCESSING_DATE: [{ required: true, message: "请输入", trigger: "blur" }],
CYCLE: [{ required: true, message: "请输入", trigger: "blur" }],
DUE_DATE: [{ required: true, message: "请输入", trigger: "blur" }],
REMINDER_DAYS: [{ required: true, message: "请输入", trigger: "blur" }],
REMINDER_DATE: [{ required: true, message: "请输入", trigger: "blur" }],
};
const getDueDate = () => {
if (form.value.PROCESSING_DATE && form.value.CYCLE) {
const list = annualInspectionCycleList._rawValue;
let num = 0;
for (let i = 0; i < list.length; i++) {
const _item = list[i];
if (form.value.CYCLE === _item.DICTIONARIES_ID) {
num = Number(_item.BIANMA);
}
}
const getDueDate = ()=>{
if(form.value.PROCESSING_DATE&&form.value.CYCLE){
const list = annualInspectionCycleList._rawValue
let num = 0
for(let i=0;i<list.length;i++){
const _item = list[i]
if(form.value.CYCLE === _item.DICTIONARIES_ID){
num = Number(_item.BIANMA)
}
}
form.value.DUE_DATE = timeTransformation(form.value.PROCESSING_DATE,num)
if(form.value.REMINDER_DAYS){
form.value.REMINDER_DATE = subtractDaysFromDate(form.value.DUE_DATE,form.value.REMINDER_DAYS)
}
}else {
form.value.DUE_DATE = ''
form.value.REMINDER_DATE = ''
}
form.value.DUE_DATE = timeTransformation(form.value.PROCESSING_DATE, num);
if (form.value.REMINDER_DAYS) {
form.value.REMINDER_DATE = subtractDaysFromDate(
form.value.DUE_DATE,
form.value.REMINDER_DAYS
);
}
const getRemiderDate = (val)=>{
if(val){
if(form.value.DUE_DATE){
form.value.REMINDER_DATE = subtractDaysFromDate(form.value.DUE_DATE,val)
}
}else {
form.value.REMINDER_DATE = ''
}
} else {
form.value.DUE_DATE = "";
form.value.REMINDER_DATE = "";
}
};
const getRemiderDate = (val) => {
if (val) {
if (form.value.DUE_DATE) {
form.value.REMINDER_DATE = subtractDaysFromDate(form.value.DUE_DATE, val);
}
const getVehicle = async (event) =>{
const resData = await getTrailerList({TRAFFIC_TYPE:event})
data.vehicleList = resData.list
form.value.VEHICLE = ''
data.busInfo.DRIVING_LICENSE_IMG = []
data.busInfo.PLATE_NUMBER = ''
data.busInfo.VIN = ''
data.busInfo.TRAILER_TYPE = ''
data.busInfo.CAR_OWNERS = ''
data.busInfo.CAR_OWNERS_TEL = ''
data.busInfo.INITIAL_REGISTRATION_DATE = ''
data.busInfo.DRIVING_LICENSE_IMG = addingPrefixToFile(
[]
);
}
const fnBusChange = async (event) => {
const resData = await getTrailerList({ID:event})
data.busInfo = resData.list[0]
data.busInfo.DRIVING_LICENSE_IMG = addingPrefixToFile(
resData.drivingLicenseImgs
);
};
const getBusInfo = (val)=>{
if(val){
fnBusChange(val)
}else {
data.busInfo.DRIVING_LICENSE_IMG = []
data.busInfo.PLATE_NUMBER = ''
data.busInfo.VIN = ''
data.busInfo.TRAILER_TYPE = ''
data.busInfo.CAR_OWNERS = ''
data.busInfo.CAR_OWNERS_TEL = ''
data.busInfo.INITIAL_REGISTRATION_DATE = ''
data.busInfo.COMPANY_AREA = ''
data.busInfo.DRIVING_LICENSE_IMG = addingPrefixToFile(
[]
);
}
}
const fnGetData = async () => {
if (!OPERATIONS_ID) return;
const resData = await getOperationsView({ OPERATIONS_ID });
form.value = resData.pd;
form.value.OPERATIONSINFO = []
const listData = await getTrailerList({TRAFFIC_TYPE:form.value.VEHICLE_MODEL})
data.vehicleList = listData.list
fnBusChange(form.value.VEHICLE)
form.value.OPERATIONSINFO = addingPrefixToFile(
resData.operationsinfoImgs
);
};
fnGetData();
} else {
form.value.REMINDER_DATE = "";
}
};
const getVehicle = async (event) => {
const resData = await getTrailerList({ TRAFFIC_TYPE: event });
data.vehicleList = resData.list;
form.value.VEHICLE = "";
data.busInfo.DRIVING_LICENSE_IMG = [];
data.busInfo.PLATE_NUMBER = "";
data.busInfo.VIN = "";
data.busInfo.TRAILER_TYPE = "";
data.busInfo.CAR_OWNERS = "";
data.busInfo.CAR_OWNERS_TEL = "";
data.busInfo.INITIAL_REGISTRATION_DATE = "";
data.busInfo.DRIVING_LICENSE_IMG = addingPrefixToFile([]);
};
const fnBusChange = async (event) => {
const resData = await getTrailerList({ ID: event });
data.busInfo = resData.list[0];
data.busInfo.DRIVING_LICENSE_IMG = addingPrefixToFile(
resData.drivingLicenseImgs
);
};
const getBusInfo = (val) => {
if (val) {
fnBusChange(val);
} else {
data.busInfo.DRIVING_LICENSE_IMG = [];
data.busInfo.PLATE_NUMBER = "";
data.busInfo.VIN = "";
data.busInfo.TRAILER_TYPE = "";
data.busInfo.CAR_OWNERS = "";
data.busInfo.CAR_OWNERS_TEL = "";
data.busInfo.INITIAL_REGISTRATION_DATE = "";
data.busInfo.COMPANY_AREA = "";
data.busInfo.DRIVING_LICENSE_IMG = addingPrefixToFile([]);
}
};
const fnGetData = async () => {
if (!OPERATIONS_ID) return;
const resData = await getOperationsView({ OPERATIONS_ID });
form.value = resData.pd;
form.value.OPERATIONSINFO = [];
const listData = await getTrailerList({
TRAFFIC_TYPE: form.value.VEHICLE_MODEL,
});
data.vehicleList = listData.list;
fnBusChange(form.value.VEHICLE);
form.value.OPERATIONSINFO = addingPrefixToFile(resData.operationsinfoImgs);
};
fnGetData();
const fnSubmit = debounce(
1000,
async () => {
await useFormValidate(formRef);
const resData = !OPERATIONS_ID
? await setOperationsAdd({ ...form.value })
: await setOperationsEdit({ ...form.value ,OPERATIONS_ID:OPERATIONS_ID});
const currentId =resData.pd.OPERATIONS_ID
for (let i = 0; i < form.value.OPERATIONSINFO.length; i++) {
if (form.value.OPERATIONSINFO[i].raw)
await fnUploadImage(currentId, form.value.OPERATIONSINFO[i].raw, 126);
}
ElMessage.success("保存成功");
router.back();
},
{ atBegin: true }
);
const fnUploadImage = async (HIDDEN_ID, FFILE, TYPE) => {
const formData = new FormData();
formData.append("FOREIGN_KEY", HIDDEN_ID);
formData.append("TYPE", TYPE);
formData.append("FFILE", FFILE);
await setUploadImg(formData);
};
const fnSubmit = debounce(
1000,
async () => {
await useFormValidate(formRef);
const resData = !OPERATIONS_ID
? await setOperationsAdd({ ...form.value })
: await setOperationsEdit({
...form.value,
OPERATIONS_ID,
});
const currentId = resData.pd.OPERATIONS_ID;
for (let i = 0; i < form.value.OPERATIONSINFO.length; i++) {
if (form.value.OPERATIONSINFO[i].raw)
await fnUploadImage(currentId, form.value.OPERATIONSINFO[i].raw, 126);
}
ElMessage.success("保存成功");
router.back();
},
{ atBegin: true }
);
const fnUploadImage = async (HIDDEN_ID, FFILE, TYPE) => {
const formData = new FormData();
formData.append("FOREIGN_KEY", HIDDEN_ID);
formData.append("TYPE", TYPE);
formData.append("FFILE", FFILE);
await setUploadImg(formData);
};
</script>
<style scoped lang="scss"></style>

View File

@ -1,373 +1,398 @@
<template>
<layout-card>
<el-form ref="formRef" :rules="rules" :model="form" label-width="140px">
<el-row :gutter="20">
<el-col :span="24">
<el-divider content-position="left">车辆选择</el-divider>
</el-col>
<el-col :span="12">
<el-form-item label="运营车型" prop="VEHICLE_MODEL">
<el-select v-model="form.VEHICLE_MODEL" @change="getVehicle">
<el-option
v-for="item in OPERATING_VEHICLE_TYPE_LIST"
:key="item.ID"
:label="item.NAME"
:value="item.ID"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="运营车辆" prop="VEHICLE">
<el-select v-model="form.VEHICLE" @change="getBusInfo">
<el-option
v-for="item in data.vehicleList"
:key="item.ID"
:label="item.PLATE_NUMBER"
:value="item.ID"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-divider content-position="left">基本信息</el-divider>
</el-col>
<el-col :span="12">
<el-form-item label="行驶证照片" prop="DRIVING_LICENSE_IMG">
<layout-upload
v-model:file-list="data.busInfo.DRIVING_LICENSE_IMG"
list-type="picture-card"
accept=".jpg,.jpeg,.png"
delete-to-server
disabled
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="车牌号" prop="PLATE_NUMBER">
<el-input v-model="data.busInfo.PLATE_NUMBER" disabled />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="车架号" prop="VIN">
<el-input v-model="data.busInfo.VIN" disabled/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="车辆类型" prop="TRAILER_TYPE">
<el-input v-model="data.busInfo.TRAILER_TYPE" disabled/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="车主/业户" prop="CAR_OWNERS ">
<el-input v-model="data.busInfo.CAR_OWNERS " disabled/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="车主电话" prop="CAR_OWNERS_TEL">
<el-input v-model="data.busInfo.CAR_OWNERS_TEL" disabled/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="初登日期" prop="INITIAL_REGISTRATION_DATE">
<el-date-picker
v-model="data.busInfo.INITIAL_REGISTRATION_DATE"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
disabled
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="所属区域" prop="COMPANY_AREA">
<el-input v-model="data.busInfo.COMPANY_AREA" disabled/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-divider content-position="left">运营证信息</el-divider>
</el-col>
<el-col :span="12">
<el-form-item label="编号" prop="NUM">
<el-input v-model="form.NUM" maxlength="50" show-word-limit/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="车主业户" prop="CAR_OWNERS">
<el-input v-model="form.CAR_OWNERS" maxlength="50" show-word-limit/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系电话" prop="TELEPHONE">
<el-input v-model="form.TELEPHONE" maxlength="11" show-word-limit/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="登记人" prop="REGISTRANT">
<el-input v-model="form.REGISTRANT" maxlength="50" show-word-limit/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="办理日期" prop="PROCESSING_DATE">
<el-date-picker
v-model="form.PROCESSING_DATE"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
@change="getDueDate"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="运营周期" prop="CYCLE">
<el-select v-model="form.CYCLE" @change="getDueDate">
<el-option
v-for="item in annualInspectionCycleList"
:key="item.DICTIONARIES_ID"
:label="item.NAME"
:value="item.DICTIONARIES_ID"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="到期日期" prop="DUE_DATE">
<el-date-picker
v-model="form.DUE_DATE"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
disabled
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="提醒天数" prop="REMINDER_DAYS">
<el-input v-model.number="form.REMINDER_DAYS" maxlength="50" show-word-limit @change="getRemiderDate"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="提醒日期" prop="REMINDER_DATE">
<el-date-picker
v-model="form.REMINDER_DATE"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
disabled
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="提醒状态" prop="REMINDER_STATUS">
<el-switch
v-model="form.REMINDER_STATUS"
inline-prompt
active-text="开"
inactive-text="关"
active-value="1"
inactive-value="0"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="运营证资料" prop="OPERATIONSINFO">
<layout-upload
v-model:file-list="form.OPERATIONSINFO"
list-type="picture-card"
accept=".jpg,.jpeg,.png"
:limit="99"
delete-to-server
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" prop="NOTES">
<el-input
v-model="form.NOTES"
type="textarea"
:autosize="{ minRows: 3 }"
maxlength="250" show-word-limit
/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="mt-10 tc">
<el-button type="primary" @click="fnSubmit"></el-button>
</div>
</layout-card>
<layout-card>
<el-form ref="formRef" :rules="rules" :model="form" label-width="140px">
<el-row :gutter="20">
<el-col :span="24">
<el-divider content-position="left">车辆选择</el-divider>
</el-col>
<el-col :span="12">
<el-form-item label="运营车型" prop="VEHICLE_MODEL">
<el-select v-model="form.VEHICLE_MODEL" @change="getVehicle">
<el-option
v-for="item in OPERATING_VEHICLE_TYPE_LIST"
:key="item.ID"
:label="item.NAME"
:value="item.ID"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="运营车辆" prop="VEHICLE">
<el-select v-model="form.VEHICLE" @change="getBusInfo">
<el-option
v-for="item in data.vehicleList"
:key="item.ID"
:label="item.PLATE_NUMBER"
:value="item.ID"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-divider content-position="left">基本信息</el-divider>
</el-col>
<el-col :span="12">
<el-form-item label="行驶证照片" prop="DRIVING_LICENSE_IMG">
<layout-upload
v-model:file-list="data.busInfo.DRIVING_LICENSE_IMG"
list-type="picture-card"
accept=".jpg,.jpeg,.png"
delete-to-server
disabled
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="车牌号" prop="PLATE_NUMBER">
<el-input v-model="data.busInfo.PLATE_NUMBER" disabled />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="车架号" prop="VIN">
<el-input v-model="data.busInfo.VIN" disabled />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="车辆类型" prop="TRAILER_TYPE">
<el-input v-model="data.busInfo.TRAILER_TYPE" disabled />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="车主/业户" prop="CAR_OWNERS ">
<el-input v-model="data.busInfo.CAR_OWNERS" disabled />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="车主电话" prop="CAR_OWNERS_TEL">
<el-input v-model="data.busInfo.CAR_OWNERS_TEL" disabled />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="初登日期" prop="INITIAL_REGISTRATION_DATE">
<el-date-picker
v-model="data.busInfo.INITIAL_REGISTRATION_DATE"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
disabled
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="所属区域" prop="COMPANY_AREA">
<el-input v-model="data.busInfo.COMPANY_AREA" disabled />
</el-form-item>
</el-col>
<el-col :span="24">
<el-divider content-position="left">运营证信息</el-divider>
</el-col>
<el-col :span="12">
<el-form-item label="编号" prop="NUM">
<el-input v-model="form.NUM" maxlength="50" show-word-limit />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="车主业户" prop="CAR_OWNERS">
<el-input
v-model="form.CAR_OWNERS"
maxlength="50"
show-word-limit
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系电话" prop="TELEPHONE">
<el-input v-model="form.TELEPHONE" maxlength="11" show-word-limit />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="登记人" prop="REGISTRANT">
<el-input
v-model="form.REGISTRANT"
maxlength="50"
show-word-limit
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="办理日期" prop="PROCESSING_DATE">
<el-date-picker
v-model="form.PROCESSING_DATE"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
@change="getDueDate"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="运营周期" prop="CYCLE">
<el-select v-model="form.CYCLE" @change="getDueDate">
<el-option
v-for="item in annualInspectionCycleList"
:key="item.DICTIONARIES_ID"
:label="item.NAME"
:value="item.DICTIONARIES_ID"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="到期日期" prop="DUE_DATE">
<el-date-picker
v-model="form.DUE_DATE"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
disabled
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="提醒天数" prop="REMINDER_DAYS">
<el-input
v-model.number="form.REMINDER_DAYS"
maxlength="50"
show-word-limit
@change="getRemiderDate"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="提醒日期" prop="REMINDER_DATE">
<el-date-picker
v-model="form.REMINDER_DATE"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
disabled
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="提醒状态" prop="REMINDER_STATUS">
<el-switch
v-model="form.REMINDER_STATUS"
inline-prompt
active-text="开"
inactive-text="关"
active-value="1"
inactive-value="0"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="运营证资料" prop="OPERATIONSINFO">
<layout-upload
v-model:file-list="form.OPERATIONSINFO"
list-type="picture-card"
accept=".jpg,.jpeg,.png"
:limit="99"
delete-to-server
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" prop="NOTES">
<el-input
v-model="form.NOTES"
type="textarea"
:autosize="{ minRows: 3 }"
maxlength="250"
show-word-limit
/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="mt-10 tc">
<el-button type="primary" @click="fnSubmit"></el-button>
</div>
</layout-card>
</template>
<script setup>
import LayoutUpload from "@/components/upload/index.vue";
import { ref ,reactive} from "vue";
import { debounce } from "throttle-debounce";
import {getOperationsView, setOperationsAdd ,setOperationsEdit,getTrailerList} from "@/request/mechanical_files.js";
import {OPERATING_VEHICLE_TYPE_LIST} from "@/assets/js/constant.js"
import {layoutFnGetAnnualInspectionCycle} from "@/assets/js/data_dictionary.js"
import { setUploadImg } from "@/request/api.js";
import { ElMessage } from "element-plus";
import { useRoute, useRouter, } from "vue-router";
import useFormValidate from "@/assets/js/useFormValidate.js";
import { addingPrefixToFile ,timeTransformation,subtractDaysFromDate} from "@/assets/js/utils.js";
const route = useRoute();
const router = useRouter();
const OPERATIONS_ID = route.query.OPERATIONS_ID
const annualInspectionCycleList = await layoutFnGetAnnualInspectionCycle()
const formRef = ref(null);
const form = ref({
VEHICLE_MODEL : '',
VEHICLE : '',
NUM:'',
CAR_OWNERS : '',
TELEPHONE : '',
REGISTRANT : '',
PROCESSING_DATE : '',
CYCLE : '',
DUE_DATE : '',
REMINDER_DAYS : '',
REMINDER_DATE : '',
REMINDER_STATUS : '',
OPERATIONSINFO : []
});
const data = reactive({
vehicleList: [],
busInfo:{
DRIVING_LICENSE_IMG : [],
PLATE_NUMBER : '',
VIN : '',
TRAILER_TYPE : '',
CAR_OWNERS : '',
CAR_OWNERS_TEL : '',
INITIAL_REGISTRATION_DATE : '',
COMPANY_AREA:'',
}
});
const rules = {
VEHICLE_MODEL: [{ required: true, message: "请输入", trigger: "blur" }],
VEHICLE: [{ required: true, message: "请输入", trigger: "blur" }],
CAR_OWNERS: [{ required: true, message: "请输入", trigger: "blur" }],
TELEPHONE: [
{ required: true, message: "请输入", trigger: "blur" },
{ min: 11, max: 11, message: "请输入11位手机号码", trigger: "blur" },
{
pattern:
/^(?:(?:\+|00)86)?1(?:(?:3[\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[189]))\d{8}$/,
message: "请输入正确的手机号码",
},
],
REGISTRANT: [{ required: true, message: "请输入", trigger: "blur" }],
PROCESSING_DATE: [{ required: true, message: "请输入", trigger: "blur" }],
CYCLE: [{ required: true, message: "请输入", trigger: "blur" }],
DUE_DATE: [{ required: true, message: "请输入", trigger: "blur" }],
REMINDER_DAYS: [{ required: true, message: "请输入", trigger: "blur" }],
REMINDER_DATE: [{ required: true, message: "请输入", trigger: "blur" }],
import LayoutUpload from "@/components/upload/index.vue";
import { ref, reactive } from "vue";
import { debounce } from "throttle-debounce";
import {
getOperationsView,
setOperationsAdd,
setOperationsEdit,
getTrailerList,
} from "@/request/mechanical_files.js";
import { OPERATING_VEHICLE_TYPE_LIST } from "@/assets/js/constant.js";
import { layoutFnGetAnnualInspectionCycle } from "@/assets/js/data_dictionary.js";
import { setUploadImg } from "@/request/api.js";
import { ElMessage } from "element-plus";
import { useRoute, useRouter } from "vue-router";
import useFormValidate from "@/assets/js/useFormValidate.js";
import {
addingPrefixToFile,
timeTransformation,
subtractDaysFromDate,
} from "@/assets/js/utils.js";
const route = useRoute();
const router = useRouter();
const OPERATIONS_ID = route.query.OPERATIONS_ID;
const annualInspectionCycleList = await layoutFnGetAnnualInspectionCycle();
const formRef = ref(null);
const form = ref({
VEHICLE_MODEL: "",
VEHICLE: "",
NUM: "",
CAR_OWNERS: "",
TELEPHONE: "",
REGISTRANT: "",
PROCESSING_DATE: "",
CYCLE: "",
DUE_DATE: "",
REMINDER_DAYS: "",
REMINDER_DATE: "",
REMINDER_STATUS: "",
OPERATIONSINFO: [],
});
const data = reactive({
vehicleList: [],
busInfo: {
DRIVING_LICENSE_IMG: [],
PLATE_NUMBER: "",
VIN: "",
TRAILER_TYPE: "",
CAR_OWNERS: "",
CAR_OWNERS_TEL: "",
INITIAL_REGISTRATION_DATE: "",
COMPANY_AREA: "",
},
});
const rules = {
VEHICLE_MODEL: [{ required: true, message: "请输入", trigger: "blur" }],
VEHICLE: [{ required: true, message: "请输入", trigger: "blur" }],
CAR_OWNERS: [{ required: true, message: "请输入", trigger: "blur" }],
TELEPHONE: [
{ required: true, message: "请输入", trigger: "blur" },
{ min: 11, max: 11, message: "请输入11位手机号码", trigger: "blur" },
{
pattern:
/^(?:(?:\+|00)86)?1(?:(?:3[\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[189]))\d{8}$/,
message: "请输入正确的手机号码",
},
],
REGISTRANT: [{ required: true, message: "请输入", trigger: "blur" }],
PROCESSING_DATE: [{ required: true, message: "请输入", trigger: "blur" }],
CYCLE: [{ required: true, message: "请输入", trigger: "blur" }],
DUE_DATE: [{ required: true, message: "请输入", trigger: "blur" }],
REMINDER_DAYS: [{ required: true, message: "请输入", trigger: "blur" }],
REMINDER_DATE: [{ required: true, message: "请输入", trigger: "blur" }],
};
const getDueDate = () => {
if (form.value.PROCESSING_DATE && form.value.CYCLE) {
const list = annualInspectionCycleList._rawValue;
let num = 0;
for (let i = 0; i < list.length; i++) {
const _item = list[i];
if (form.value.CYCLE === _item.DICTIONARIES_ID) {
num = Number(_item.BIANMA);
}
}
const getDueDate = ()=>{
if(form.value.PROCESSING_DATE&&form.value.CYCLE){
const list = annualInspectionCycleList._rawValue
let num = 0
for(let i=0;i<list.length;i++){
const _item = list[i]
if(form.value.CYCLE === _item.DICTIONARIES_ID){
num = Number(_item.BIANMA)
}
}
form.value.DUE_DATE = timeTransformation(form.value.PROCESSING_DATE,num)
if(form.value.REMINDER_DAYS){
form.value.REMINDER_DATE = subtractDaysFromDate(form.value.DUE_DATE,form.value.REMINDER_DAYS)
}
}else {
form.value.DUE_DATE = ''
form.value.REMINDER_DATE = ''
}
form.value.DUE_DATE = timeTransformation(form.value.PROCESSING_DATE, num);
if (form.value.REMINDER_DAYS) {
form.value.REMINDER_DATE = subtractDaysFromDate(
form.value.DUE_DATE,
form.value.REMINDER_DAYS
);
}
const getRemiderDate = (val)=>{
if(val){
if(form.value.DUE_DATE){
form.value.REMINDER_DATE = subtractDaysFromDate(form.value.DUE_DATE,val)
}
}else {
form.value.REMINDER_DATE = ''
}
} else {
form.value.DUE_DATE = "";
form.value.REMINDER_DATE = "";
}
};
const getRemiderDate = (val) => {
if (val) {
if (form.value.DUE_DATE) {
form.value.REMINDER_DATE = subtractDaysFromDate(form.value.DUE_DATE, val);
}
const getVehicle = async (event) =>{
const resData = await getTrailerList({TRAFFIC_TYPE:event})
data.vehicleList = resData.list
form.value.VEHICLE = ''
data.busInfo.DRIVING_LICENSE_IMG = []
data.busInfo.PLATE_NUMBER = ''
data.busInfo.VIN = ''
data.busInfo.TRAILER_TYPE = ''
data.busInfo.CAR_OWNERS = ''
data.busInfo.CAR_OWNERS_TEL = ''
data.busInfo.INITIAL_REGISTRATION_DATE = ''
data.busInfo.DRIVING_LICENSE_IMG = addingPrefixToFile(
[]
);
}
const fnBusChange = async (event) => {
const resData = await getTrailerList({ID:event})
data.busInfo = resData.list[0]
data.busInfo.DRIVING_LICENSE_IMG = addingPrefixToFile(
resData.drivingLicenseImgs
);
};
const getBusInfo = (val)=>{
if(val){
fnBusChange(val)
}else {
data.busInfo.DRIVING_LICENSE_IMG = []
data.busInfo.PLATE_NUMBER = ''
data.busInfo.VIN = ''
data.busInfo.TRAILER_TYPE = ''
data.busInfo.CAR_OWNERS = ''
data.busInfo.CAR_OWNERS_TEL = ''
data.busInfo.INITIAL_REGISTRATION_DATE = ''
data.busInfo.COMPANY_AREA = ''
data.busInfo.DRIVING_LICENSE_IMG = addingPrefixToFile(
[]
);
}
}
const fnGetData = async () => {
if (!OPERATIONS_ID) return;
const resData = await getOperationsView({ OPERATIONS_ID });
form.value = resData.pd;
form.value.OPERATIONSINFO = []
const listData = await getTrailerList({TRAFFIC_TYPE:form.value.VEHICLE_MODEL})
data.vehicleList = listData.list
fnBusChange(form.value.VEHICLE)
form.value.OPERATIONSINFO = addingPrefixToFile(
resData.operationsinfoImgs
);
};
fnGetData();
} else {
form.value.REMINDER_DATE = "";
}
};
const getVehicle = async (event) => {
const resData = await getTrailerList({ TRAFFIC_TYPE: event });
data.vehicleList = resData.list;
form.value.VEHICLE = "";
data.busInfo.DRIVING_LICENSE_IMG = [];
data.busInfo.PLATE_NUMBER = "";
data.busInfo.VIN = "";
data.busInfo.TRAILER_TYPE = "";
data.busInfo.CAR_OWNERS = "";
data.busInfo.CAR_OWNERS_TEL = "";
data.busInfo.INITIAL_REGISTRATION_DATE = "";
data.busInfo.DRIVING_LICENSE_IMG = addingPrefixToFile([]);
};
const fnBusChange = async (event) => {
const resData = await getTrailerList({ ID: event });
data.busInfo = resData.list[0];
data.busInfo.DRIVING_LICENSE_IMG = addingPrefixToFile(
resData.drivingLicenseImgs
);
};
const getBusInfo = (val) => {
if (val) {
fnBusChange(val);
} else {
data.busInfo.DRIVING_LICENSE_IMG = [];
data.busInfo.PLATE_NUMBER = "";
data.busInfo.VIN = "";
data.busInfo.TRAILER_TYPE = "";
data.busInfo.CAR_OWNERS = "";
data.busInfo.CAR_OWNERS_TEL = "";
data.busInfo.INITIAL_REGISTRATION_DATE = "";
data.busInfo.COMPANY_AREA = "";
data.busInfo.DRIVING_LICENSE_IMG = addingPrefixToFile([]);
}
};
const fnGetData = async () => {
if (!OPERATIONS_ID) return;
const resData = await getOperationsView({ OPERATIONS_ID });
form.value = resData.pd;
form.value.OPERATIONSINFO = [];
const listData = await getTrailerList({
TRAFFIC_TYPE: form.value.VEHICLE_MODEL,
});
data.vehicleList = listData.list;
fnBusChange(form.value.VEHICLE);
form.value.OPERATIONSINFO = addingPrefixToFile(resData.operationsinfoImgs);
};
fnGetData();
const fnSubmit = debounce(
1000,
async () => {
await useFormValidate(formRef);
const resData = !OPERATIONS_ID
? await setOperationsAdd({ ...form.value })
: await setOperationsEdit({ ...form.value ,OPERATIONS_ID:OPERATIONS_ID});
const currentId =resData.pd.OPERATIONS_ID
for (let i = 0; i < form.value.OPERATIONSINFO.length; i++) {
if (form.value.OPERATIONSINFO[i].raw)
await fnUploadImage(currentId, form.value.OPERATIONSINFO[i].raw, 126);
}
ElMessage.success("保存成功");
router.back();
},
{ atBegin: true }
);
const fnUploadImage = async (HIDDEN_ID, FFILE, TYPE) => {
const formData = new FormData();
formData.append("FOREIGN_KEY", HIDDEN_ID);
formData.append("TYPE", TYPE);
formData.append("FFILE", FFILE);
await setUploadImg(formData);
};
const fnSubmit = debounce(
1000,
async () => {
await useFormValidate(formRef);
const resData = !OPERATIONS_ID
? await setOperationsAdd({ ...form.value })
: await setOperationsEdit({
...form.value,
OPERATIONS_ID,
});
const currentId = resData.pd.OPERATIONS_ID;
for (let i = 0; i < form.value.OPERATIONSINFO.length; i++) {
if (form.value.OPERATIONSINFO[i].raw)
await fnUploadImage(currentId, form.value.OPERATIONSINFO[i].raw, 126);
}
ElMessage.success("保存成功");
router.back();
},
{ atBegin: true }
);
const fnUploadImage = async (HIDDEN_ID, FFILE, TYPE) => {
const formData = new FormData();
formData.append("FOREIGN_KEY", HIDDEN_ID);
formData.append("TYPE", TYPE);
formData.append("FFILE", FFILE);
await setUploadImg(formData);
};
</script>
<style scoped lang="scss"></style>

View File

@ -1,261 +1,289 @@
<template>
<div>
<el-card>
<el-form
:model="searchForm"
label-width="100px"
@submit.prevent="fnResetPaginationTransfer"
<div>
<el-card>
<el-form
:model="searchForm"
label-width="100px"
@submit.prevent="fnResetPaginationTransfer"
>
<el-row>
<el-col :span="6">
<el-form-item label="车牌号" prop="PLATE_NUMBER">
<el-input v-model="searchForm.PLATE_NUMBER" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="车主业户" prop="CAR_OWNERS">
<el-input v-model="searchForm.CAR_OWNERS" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="登记人" prop="REGISTRANT">
<el-input v-model="searchForm.REGISTRANT" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="到期日期" prop="DUE_DATE">
<el-date-picker
v-model="searchForm.DUE_DATE"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="运营车型" prop="VEHICLE_MODEL">
<el-select v-model="searchForm.VEHICLE_MODEL">
<el-option
v-for="item in OPERATING_VEHICLE_TYPE_LIST"
:key="item.ID"
:label="item.NAME"
:value="item.ID"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="到期状态" prop="DUE_DATE_TYPE">
<el-select v-model="searchForm.DUE_DATE_TYPE">
<el-option
v-for="item in DUE_STATUS_LIST"
:key="item.ID"
:label="item.NAME"
:value="item.ID"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="提醒状态" prop="REMINDER_STATUS">
<el-select v-model="searchForm.REMINDER_STATUS">
<el-option
v-for="item in REMINDER_STATUS_LIST"
:key="item.ID"
:label="item.NAME"
:value="item.ID"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<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="2">
<el-form-item label-width="10px" class="end">
<el-button @click="fnExport"></el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-card>
<layout-card>
<layout-table
ref="tableRef"
v-model:pagination="pagination"
:data="list"
row-key="OPERATIONS_ID"
@get-data="fnGetDataTransfer"
>
<el-table-column reserve-selection type="selection" width="55" />
<el-table-column label="序号" width="60">
<template #default="{ $index }">
{{ serialNumber(pagination, $index) }}
</template>
</el-table-column>
<el-table-column prop="NUM" label="编号" width="150" />
<el-table-column prop="VEHICLE_MODEL" label="运营车型" width="150">
<template #default="{ row }">
{{
translationStatus(row.VEHICLE_MODEL, OPERATING_VEHICLE_TYPE_LIST)
}}
</template>
</el-table-column>
<el-table-column prop="PLATE_NUMBER" label="车牌号" width="150" />
<el-table-column prop="CAR_OWNERS" label="车主业户" width="150" />
<el-table-column prop="TELEPHONE" label="联系电话" width="150" />
<el-table-column prop="PROCESSING_DATE" label="办理日期" width="150" />
<el-table-column prop="CYCLE_NAME" label="运营周期" width="150" />
<el-table-column prop="DUE_DATE" label="到期日期" width="150" />
<el-table-column prop="REGISTRANT" label="登记人" width="150" />
<!--<el-table-column prop="CONTACTS" label="经营企业" width="150"/>-->
<el-table-column prop="REMINDER_STATUS" label="提醒状态" width="150">
<template #default="{ row }">
<span v-if="row.REMINDER_STATUS === '1'"></span>
<span v-else-if="row.REMINDER_STATUS === '0'">关闭</span>
</template>
</el-table-column>
<el-table-column prop="DUE_DATE_TYPE" label="到期状态" width="150">
<template #default="{ row }">
<span v-if="row.DUE_DATE_TYPE === 1"></span>
<span v-else-if="row.DUE_DATE_TYPE === 0">已到期</span>
<span v-else-if="row.DUE_DATE_TYPE === 2">即将到期</span>
</template>
</el-table-column>
<el-table-column prop="ARCHIVES_TYPE" label="档案状态" width="150" />
<el-table-column prop="CREATTIME" label="创建时间" width="150" />
<el-table-column prop="OPERATTIME" label="修改时间" width="150" />
<el-table-column label="操作" width="250">
<template #default="{ row }">
<el-button
type="primary"
text
link
@click="
router.push({
path: '/mechanical_files/operations/view',
query: { OPERATIONS_ID: row.OPERATIONS_ID },
})
"
>
<el-row>
<el-col :span="6">
<el-form-item label="车牌号" prop="PLATE_NUMBER">
<el-input v-model="searchForm.PLATE_NUMBER" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="车主业户" prop="CAR_OWNERS">
<el-input v-model="searchForm.CAR_OWNERS" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="登记人" prop="REGISTRANT">
<el-input v-model="searchForm.REGISTRANT" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="到期日期" prop="DUE_DATE">
<el-date-picker
v-model="searchForm.DUE_DATE"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="运营车型" prop="VEHICLE_MODEL">
<el-select v-model="searchForm.VEHICLE_MODEL">
<el-option
v-for="item in OPERATING_VEHICLE_TYPE_LIST"
:key="item.ID"
:label="item.NAME"
:value="item.ID"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="到期状态" prop="DUE_DATE_TYPE">
<el-select v-model="searchForm.DUE_DATE_TYPE">
<el-option
v-for="item in DUE_STATUS_LIST"
:key="item.ID"
:label="item.NAME"
:value="item.ID"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="提醒状态" prop="REMINDER_STATUS">
<el-select v-model="searchForm.REMINDER_STATUS">
<el-option
v-for="item in REMINDER_STATUS_LIST"
:key="item.ID"
:label="item.NAME"
:value="item.ID"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<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="2">
<el-form-item label-width="10px" class="end">
<el-button @click="fnExport"></el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-card>
<layout-card>
<layout-table
:data="list"
@get-data="fnGetDataTransfer"
v-model:pagination="pagination"
ref="tableRef"
row-key="OPERATIONS_ID"
查看
</el-button>
<el-button
type="primary"
text
link
@click="
router.push({
path: '/mechanical_files/operations/edit',
query: { OPERATIONS_ID: row.OPERATIONS_ID },
})
"
>
<el-table-column reserve-selection type="selection" width="55" />
<el-table-column label="序号" width="60">
<template #default="{ $index }">
{{ serialNumber(pagination, $index) }}
</template>
</el-table-column>
<el-table-column prop="NUM" label="编号" width="150"/>
<el-table-column prop="VEHICLE_MODEL" label="运营车型" width="150">
<template #default="{ row }">
{{translationStatus(row.VEHICLE_MODEL,OPERATING_VEHICLE_TYPE_LIST)}}
</template>
</el-table-column>
<el-table-column prop="PLATE_NUMBER" label="车牌号" width="150"/>
<el-table-column prop="CAR_OWNERS" label="车主业户" width="150"/>
<el-table-column prop="TELEPHONE" label="联系电话" width="150"/>
<el-table-column prop="PROCESSING_DATE" label="办理日期" width="150"/>
<el-table-column prop="CYCLE_NAME" label="运营周期" width="150"/>
<el-table-column prop="DUE_DATE" label="到期日期" width="150"/>
<el-table-column prop="REGISTRANT" label="登记人" width="150"/>
<!--<el-table-column prop="CONTACTS" label="经营企业" width="150"/>-->
<el-table-column prop="REMINDER_STATUS" label="提醒状态" width="150">
<template #default="{ row }">
<span v-if="row.REMINDER_STATUS==='1'"></span>
<span v-else-if="row.REMINDER_STATUS==='0'">关闭</span>
</template>
</el-table-column>
<el-table-column prop="DUE_DATE_TYPE" label="到期状态" width="150">
<template #default="{ row }">
<span v-if="row.DUE_DATE_TYPE===1"></span>
<span v-else-if="row.DUE_DATE_TYPE===0">已到期</span>
<span v-else-if="row.DUE_DATE_TYPE===2">即将到期</span>
</template>
</el-table-column>
<el-table-column prop="ARCHIVES_TYPE" label="档案状态" width="150"/>
<el-table-column prop="CREATTIME" label="创建时间" width="150"/>
<el-table-column prop="OPERATTIME" label="修改时间" width="150"/>
<el-table-column label="操作" width="250">
<template #default="{ row }">
<el-button
type="primary"
text
link
@click="router.push({path: '/mechanical_files/operations/view',query: { OPERATIONS_ID: row.OPERATIONS_ID },})">
查看
</el-button>
<el-button
type="primary"
text
link
@click="router.push({path: '/mechanical_files/operations/edit',query: { OPERATIONS_ID: row.OPERATIONS_ID },})">
编辑
</el-button>
<el-button
type="primary"
text
link
@click="fnDelete(row.OPERATIONS_ID)">
删除
</el-button>
<el-button
v-if="row.REMINDER_STATUS==='0'"
type="primary"
text
link
@click="fnStatusChange(row.OPERATIONS_ID,'1')">
开启
</el-button>
<el-button
v-if="row.REMINDER_STATUS==='1'"
type="primary"
text
link
@click="fnStatusChange(row.OPERATIONS_ID,'0')">
关闭
</el-button>
</template>
</el-table-column>
<template #button>
<el-button
v-if="buttonJurisdiction.add"
type="primary"
@click="router.push({ path: '/mechanical_files/operations/add' })">
新增
</el-button>
</template>
</layout-table>
</layout-card>
<export-excel
v-model:visible="data.exportExcelDialog.visible"
:search-form="searchForm"
:ids="data.exportExcelDialog.ids"
/>
</div>
编辑
</el-button>
<el-button
type="primary"
text
link
@click="fnDelete(row.OPERATIONS_ID)"
>
删除
</el-button>
<el-button
v-if="row.REMINDER_STATUS === '0'"
type="primary"
text
link
@click="fnStatusChange(row.OPERATIONS_ID, '1')"
>
开启
</el-button>
<el-button
v-if="row.REMINDER_STATUS === '1'"
type="primary"
text
link
@click="fnStatusChange(row.OPERATIONS_ID, '0')"
>
关闭
</el-button>
</template>
</el-table-column>
<template #button>
<el-button
v-if="buttonJurisdiction.add"
type="primary"
@click="router.push({ path: '/mechanical_files/operations/add' })"
>
新增
</el-button>
</template>
</layout-table>
</layout-card>
<export-excel
v-model:visible="data.exportExcelDialog.visible"
:search-form="searchForm"
:ids="data.exportExcelDialog.ids"
/>
</div>
</template>
<script setup>
import { useRouter } from "vue-router";
import { serialNumber ,translationStatus} from "@/assets/js/utils";
import useButtonJurisdiction from "@/assets/js/useButtonJurisdiction.js";
import useListData from "@/assets/js/useListData.js";
import { getOperationsList ,setOperationsDelete,setOperationsEdit2} from "@/request/mechanical_files.js";
import ExportExcel from "./components/export_excel.vue";
import { reactive } from "vue";
import { debounce } from "throttle-debounce";
import { ElMessageBox ,ElMessage} from "element-plus";
import {OPERATING_VEHICLE_TYPE_LIST,DUE_STATUS_LIST,REMINDER_STATUS_LIST} from "@/assets/js/constant.js"
const router = useRouter();
const data = reactive({
exportExcelDialog: {
visible: false,
ids: [],
},
import { useRouter } from "vue-router";
import { serialNumber, translationStatus } from "@/assets/js/utils";
import useButtonJurisdiction from "@/assets/js/useButtonJurisdiction.js";
import useListData from "@/assets/js/useListData.js";
import {
getOperationsList,
setOperationsDelete,
setOperationsEdit2,
} from "@/request/mechanical_files.js";
import ExportExcel from "./components/export_excel.vue";
import { reactive } from "vue";
import { debounce } from "throttle-debounce";
import { ElMessageBox, ElMessage } from "element-plus";
import {
OPERATING_VEHICLE_TYPE_LIST,
DUE_STATUS_LIST,
REMINDER_STATUS_LIST,
} from "@/assets/js/constant.js";
const router = useRouter();
const data = reactive({
exportExcelDialog: {
visible: false,
ids: [],
},
});
const { list, pagination, searchForm, fnGetData, fnResetPagination, tableRef } =
useListData(getOperationsList);
const fnGetDataTransfer = () => {
fnGetData({
PLATE_NUMBER: searchForm.value.PLATE_NUMBER,
CAR_OWNERS: searchForm.value.CAR_OWNERS,
REGISTRANT: searchForm.value.REGISTRANT,
DUE_DATE: searchForm.value.DUE_DATE,
VEHICLE_MODEL: searchForm.value.VEHICLE_MODEL,
DUE_DATE_TYPE: searchForm.value.DUE_DATE_TYPE,
REMINDER_STATUS: searchForm.value.REMINDER_STATUS,
});
};
const fnResetPaginationTransfer = () => {
fnResetPagination({
PLATE_NUMBER: searchForm.value.PLATE_NUMBER,
CAR_OWNERS: searchForm.value.CAR_OWNERS,
REGISTRANT: searchForm.value.REGISTRANT,
DUE_DATE: searchForm.value.DUE_DATE,
VEHICLE_MODEL: searchForm.value.VEHICLE_MODEL,
DUE_DATE_TYPE: searchForm.value.DUE_DATE_TYPE,
REMINDER_STATUS: searchForm.value.REMINDER_STATUS,
});
};
const fnDelete = debounce(
1000,
async (OPERATIONS_ID) => {
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
await setOperationsDelete({ OPERATIONS_ID });
ElMessage.success("删除成功");
fnResetPaginationTransfer();
},
{ atBegin: true }
);
const fnStatusChange = debounce(
1000,
async (OPERATIONS_ID, REMINDER_STATUS) => {
const msg = REMINDER_STATUS === "0" ? "关闭" : "开启";
await ElMessageBox.confirm("确定要" + msg + "提醒吗?", {
type: "warning",
});
const { list, pagination, searchForm, fnGetData, fnResetPagination, tableRef } =
useListData(getOperationsList);
const fnGetDataTransfer = () => {
fnGetData({
PLATE_NUMBER: searchForm.value.PLATE_NUMBER,
CAR_OWNERS: searchForm.value.CAR_OWNERS,
REGISTRANT: searchForm.value.REGISTRANT,
DUE_DATE: searchForm.value.DUE_DATE,
VEHICLE_MODEL: searchForm.value.VEHICLE_MODEL,
DUE_DATE_TYPE: searchForm.value.DUE_DATE_TYPE,
REMINDER_STATUS:searchForm.value.REMINDER_STATUS
});
};
const fnResetPaginationTransfer = () => {
fnResetPagination({
PLATE_NUMBER: searchForm.value.PLATE_NUMBER,
CAR_OWNERS: searchForm.value.CAR_OWNERS,
REGISTRANT: searchForm.value.REGISTRANT,
DUE_DATE: searchForm.value.DUE_DATE,
VEHICLE_MODEL: searchForm.value.VEHICLE_MODEL,
DUE_DATE_TYPE: searchForm.value.DUE_DATE_TYPE,
REMINDER_STATUS:searchForm.value.REMINDER_STATUS
});
};
const fnDelete = debounce(
1000,
async (OPERATIONS_ID) => {
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
await setOperationsDelete({ OPERATIONS_ID });
ElMessage.success("删除成功");
fnResetPaginationTransfer();
},
{ atBegin: true }
);
const fnStatusChange = debounce(
1000,
async (OPERATIONS_ID,REMINDER_STATUS) => {
const msg = REMINDER_STATUS==='0'?'关闭':'开启'
await ElMessageBox.confirm("确定要"+msg+"提醒吗?", { type: "warning" });
await setOperationsEdit2({ OPERATIONS_ID ,REMINDER_STATUS});
ElMessage.success(msg+"成功");
fnResetPaginationTransfer();
},
{ atBegin: true }
);
const buttonJurisdiction = await useButtonJurisdiction("hidden");
const fnExport = () => {
const selectionData = tableRef.value.getSelectionRows();
data.exportExcelDialog.ids = selectionData.map((item) => item.OPERATIONS_ID);
data.exportExcelDialog.visible = true;
};
await setOperationsEdit2({ OPERATIONS_ID, REMINDER_STATUS });
ElMessage.success(msg + "成功");
fnResetPaginationTransfer();
},
{ atBegin: true }
);
const buttonJurisdiction = await useButtonJurisdiction("hidden");
const fnExport = () => {
const selectionData = tableRef.value.getSelectionRows();
data.exportExcelDialog.ids = selectionData.map((item) => item.OPERATIONS_ID);
data.exportExcelDialog.visible = true;
};
</script>
<style scoped></style>

View File

@ -1,130 +1,140 @@
<template>
<layout-card>
<div id="printContainer">
<el-divider content-position="left">{{data.busInfo.PLATE_NUMBER}}车辆档案</el-divider>
<el-descriptions :column="2" border>
<el-descriptions-item label-class-name="width_200" label="登记编号">
{{ info.NUM }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="车牌号">
{{ data.busInfo.PLATE_NUMBER }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="车架号">
{{ data.busInfo.VIN }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="车辆类型">
{{ data.busInfo.TRAILER_TYPE }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="车辆型号">
{{ data.busInfo.VEHICLE_MODEL }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="车辆品牌">
{{ data.busInfo.VEHICLE_BRAND }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="车主业户">
{{ data.busInfo.CAR_OWNERS }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="联系电话">
{{ data.busInfo.CAR_OWNERS_TEL }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="初登日期">
{{ data.busInfo.INITIAL_REGISTRATION_DATE }}
</el-descriptions-item>
<!--<el-descriptions-item label-class-name="width_200" label="经营企业">-->
<!--{{ info.CAR_OWNERS }}-->
<!--</el-descriptions-item>-->
</el-descriptions>
<el-divider content-position="left">运营证信息</el-divider>
<el-descriptions :column="2" border>
<el-descriptions-item label-class-name="width_200" label="登记人">
{{ info.REGISTRANT }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="办理日期">
{{ info.PROCESSING_DATE }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="运营证周期">
{{ info.CYCLE_NAME }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="到期日期">
{{ info.DUE_DATE }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="提醒天数">
{{ info.REMINDER_DAYS }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="提醒日期">
{{ info.REMINDER_DATE }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="提醒状态">
{{ info.REMINDER_STATUS==='1'?'开启':'关闭' }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="运营证资料" span="2">
<img
v-for="item in info.OPERATIONSINFO"
:key="item.FILEPATH"
v-viewer
:src="item.url"
width="100"
height="100"
alt=""
class="ml-10"
/>
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="备注" span=2>
{{ info.NOTES }}
</el-descriptions-item>
</el-descriptions>
</div>
<div class="mt-10 tc">
<el-button v-print="'#printContainer'" type="primary"></el-button>
</div>
<div v-html="PRINT_STYLE" />
</layout-card>
<layout-card>
<div id="printContainer">
<el-divider content-position="left"
>{{ data.busInfo.PLATE_NUMBER }}车辆档案</el-divider
>
<el-descriptions :column="2" border>
<el-descriptions-item label-class-name="width_200" label="登记编号">
{{ info.NUM }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="车牌号">
{{ data.busInfo.PLATE_NUMBER }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="车架号">
{{ data.busInfo.VIN }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="车辆类型">
{{ data.busInfo.TRAILER_TYPE }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="车辆型号">
{{ data.busInfo.VEHICLE_MODEL }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="车辆品牌">
{{ data.busInfo.VEHICLE_BRAND }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="车主业户">
{{ data.busInfo.CAR_OWNERS }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="联系电话">
{{ data.busInfo.CAR_OWNERS_TEL }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="初登日期">
{{ data.busInfo.INITIAL_REGISTRATION_DATE }}
</el-descriptions-item>
<!--<el-descriptions-item label-class-name="width_200" label="经营企业">-->
<!--{{ info.CAR_OWNERS }}-->
<!--</el-descriptions-item>-->
</el-descriptions>
<el-divider content-position="left">运营证信息</el-divider>
<el-descriptions :column="2" border>
<el-descriptions-item label-class-name="width_200" label="登记人">
{{ info.REGISTRANT }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="办理日期">
{{ info.PROCESSING_DATE }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="运营证周期">
{{ info.CYCLE_NAME }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="到期日期">
{{ info.DUE_DATE }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="提醒天数">
{{ info.REMINDER_DAYS }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="提醒日期">
{{ info.REMINDER_DATE }}
</el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="提醒状态">
{{ info.REMINDER_STATUS === "1" ? "开启" : "关闭" }}
</el-descriptions-item>
<el-descriptions-item
label-class-name="width_200"
label="运营证资料"
span="2"
>
<img
v-for="item in info.OPERATIONSINFO"
:key="item.FILEPATH"
v-viewer
:src="item.url"
width="100"
height="100"
alt=""
class="ml-10"
/>
</el-descriptions-item>
<el-descriptions-item
label-class-name="width_200"
label="备注"
span="2"
>
{{ info.NOTES }}
</el-descriptions-item>
</el-descriptions>
</div>
<div class="mt-10 tc">
<el-button v-print="'#printContainer'" type="primary"></el-button>
</div>
<div v-html="PRINT_STYLE" />
</layout-card>
</template>
<script setup>
import { ref ,reactive} from "vue";
import { getOperationsView, getTrailerList} from "@/request/mechanical_files.js";
import { useRoute } from "vue-router";
import { addingPrefixToFile } from "@/assets/js/utils.js";
const route = useRoute();
const OPERATIONS_ID = route.query;
const info = ref({});
const data = reactive({
busInfo:{
NUM:'',
PLATE_NUMBER:'',
VIN:'',
TRAILER_TYPE:'',
VEHICLE_MODEL:'',
VEHICLE_BRAND:'',
CAR_OWNERS:'',
CAR_OWNERS_TEL:'',
INITIAL_REGISTRATION_DATE:'',
}
});
const fnBusChange = async (event) => {
const resData = await getTrailerList({ID:event})
data.busInfo = resData.list[0]
data.busInfo.DRIVING_LICENSE_IMG = addingPrefixToFile(
resData.drivingLicenseImgs
);
};
const fnGetData = async () => {
if (!OPERATIONS_ID) return;
const resData = await getOperationsView(OPERATIONS_ID);
info.value = resData.pd;
info.value.OPERATIONSINFO = []
fnBusChange(resData.pd.VEHICLE)
info.value.OPERATIONSINFO = addingPrefixToFile(
resData.operationsinfoImgs
);
};
fnGetData();
import { ref, reactive } from "vue";
import {
getOperationsView,
getTrailerList,
} from "@/request/mechanical_files.js";
import { useRoute } from "vue-router";
import { addingPrefixToFile } from "@/assets/js/utils.js";
const route = useRoute();
const OPERATIONS_ID = route.query;
const info = ref({});
const data = reactive({
busInfo: {
NUM: "",
PLATE_NUMBER: "",
VIN: "",
TRAILER_TYPE: "",
VEHICLE_MODEL: "",
VEHICLE_BRAND: "",
CAR_OWNERS: "",
CAR_OWNERS_TEL: "",
INITIAL_REGISTRATION_DATE: "",
},
});
const fnBusChange = async (event) => {
const resData = await getTrailerList({ ID: event });
data.busInfo = resData.list[0];
data.busInfo.DRIVING_LICENSE_IMG = addingPrefixToFile(
resData.drivingLicenseImgs
);
};
const fnGetData = async () => {
if (!OPERATIONS_ID) return;
const resData = await getOperationsView(OPERATIONS_ID);
info.value = resData.pd;
info.value.OPERATIONSINFO = [];
fnBusChange(resData.pd.VEHICLE);
info.value.OPERATIONSINFO = addingPrefixToFile(resData.operationsinfoImgs);
};
fnGetData();
</script>
<style lang="scss" scoped>
.width_200{
width: 200px;
}
.width_200 {
width: 200px;
}
</style>

View File

@ -1,23 +1,22 @@
<template>
<layout-card>
<el-divider content-position="left">车辆选择</el-divider>
<el-form
ref="formRef"
:model="form"
:rules="rules"
label-width="100px"
>
<el-form ref="formRef" :model="form" :rules="rules" label-width="100px">
<el-row>
<el-col :span="6">
<el-form-item label="登记编号" prop="RECORD_NUMBER">
<el-input v-model="form.RECORD_NUMBER" placeholder="请输入登记编号"/>
<el-input
v-model="form.RECORD_NUMBER"
placeholder="请输入登记编号"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="移除车型" prop="SCRAP_VEHICLEMODEL">
<el-select v-model="form.SCRAP_VEHICLEMODEL"
placeholder="请选择移除车型"
@change="fnEditVehicleModel"
<el-select
v-model="form.SCRAP_VEHICLEMODEL"
placeholder="请选择移除车型"
@change="fnEditVehicleModel"
>
<el-option
v-for="item in getScrapVehicleModeList"
@ -30,10 +29,7 @@
</el-col>
<el-col :span="6">
<el-form-item label="移除车辆" prop="SCRAP_VEHICLE">
<el-select
v-model="form.SCRAP_VEHICLE"
@change="fnGetVehicleInfo"
>
<el-select v-model="form.SCRAP_VEHICLE" @change="fnGetVehicleInfo">
<el-option
v-for="item in form.ALLVEHICLE"
:key="item.PLATE_NUMBER"
@ -49,25 +45,28 @@
<el-row>
<el-col :span="6">
<el-form-item label="车主/业主" prop="VEHICLEOWNER">
<el-input v-model="form.VEHICLE.VEHICLEOWNER"
placeholder="--"
disabled
<el-input
v-model="form.VEHICLE.VEHICLEOWNER"
placeholder="--"
disabled
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="车主电话" prop="VEHICLEOWNER_NUMBER">
<el-input v-model="form.VEHICLE.VEHICLEOWNER_NUMBER"
placeholder="--"
disabled
<el-input
v-model="form.VEHICLE.VEHICLEOWNER_NUMBER"
placeholder="--"
disabled
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="车牌号" prop="PLATE_NUMBER">
<el-input v-model="form.VEHICLE.PLATE_NUMBER"
placeholder="--"
disabled
<el-input
v-model="form.VEHICLE.PLATE_NUMBER"
placeholder="--"
disabled
/>
</el-form-item>
</el-col>
@ -75,51 +74,53 @@
<el-row>
<el-col :span="6">
<el-form-item label="车架号" prop="FRAMES_NUMBER">
<el-input v-model="form.VEHICLE.FRAMES_NUMBER"
placeholder="--"
disabled
<el-input
v-model="form.VEHICLE.FRAMES_NUMBER"
placeholder="--"
disabled
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="车型" prop="SCRAP_VEHICLEMODEL">
<el-input v-model="form.VEHICLE.SCRAP_VEHICLEMODEL"
placeholder="--"
disabled
<el-input
v-model="form.VEHICLE.SCRAP_VEHICLEMODEL"
placeholder="--"
disabled
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="品牌" prop="BRAND">
<el-input v-model="form.VEHICLE.BRAND"
placeholder="--"
disabled
/>
<el-input v-model="form.VEHICLE.BRAND" placeholder="--" disabled />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="排放标准" prop="EMISSION_STANDARD">
<el-input v-model="form.VEHICLE.EMISSION_STANDARD"
placeholder="--"
disabled
<el-input
v-model="form.VEHICLE.EMISSION_STANDARD"
placeholder="--"
disabled
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="动力类型" prop="POWER_TYPE">
<el-input v-model="form.VEHICLE.POWER_TYPE"
placeholder="--"
disabled
<el-input
v-model="form.VEHICLE.POWER_TYPE"
placeholder="--"
disabled
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="初登日期" prop="FIRSTSHOW_DATE">
<el-input v-model="form.VEHICLE.FIRSTSHOW_DATE"
placeholder="--"
disabled
<el-input
v-model="form.VEHICLE.FIRSTSHOW_DATE"
placeholder="--"
disabled
/>
</el-form-item>
</el-col>
@ -190,12 +191,13 @@ import {
setScrapManageAdd,
setScrapManageEdit,
layoutFnGetScrapType,
getScrapOperationVehicleList,
getScrapFreightTrailerList
} from "@/request/scrap_manage.js";
import {
getFreightTrailerList, getFreightTrailerView
getFreightTrailerView,
} from "@/request/enterprise_management.js";
import {
getOperationVehicleList,
getOperationVehicleInfo,
} from "@/request/operation_vehicle.js";
import LayoutUpload from "@/components/upload/index.vue";
@ -207,21 +209,30 @@ import { addingPrefixToFile } from "@/assets/js/utils.js";
const route = useRoute();
const router = useRouter();
const getAllOperationVehicleList = await getOperationVehicleList();
const getAllFrailerList = await getFreightTrailerList();
const getAllOperationVehicleList = await getScrapOperationVehicleList();
const getAllFrailerList = await getScrapFreightTrailerList();
const getScrapVehicleModeList = ref(null);
onMounted(async () => {
const data = await layoutFnGetScrapType();
getScrapVehicleModeList.value = JSON.parse(data.value.zTreeNodes);
});
const SCRAP_ID = route.query.SCRAP_ID
const SCRAP_ID = route.query.SCRAP_ID;
const rules = {
SCRAP_VEHICLEMODEL: [{ required: true, message: "移除车型不能为空", trigger: "change" }],
SCRAP_VEHICLE: [{ required: true, message: "移除车辆并不能为空", trigger: "blur" }],
SCRAP_DATE: [{ required: true, message: "移除日期不能为空", trigger: "change" }],
REGISTRANT: [{ required: true, message: "登记人不能为空", trigger: "change" }],
SCRAP_VEHICLEMODEL: [
{ required: true, message: "移除车型不能为空", trigger: "change" },
],
SCRAP_VEHICLE: [
{ required: true, message: "移除车辆并不能为空", trigger: "blur" },
],
SCRAP_DATE: [
{ required: true, message: "移除日期不能为空", trigger: "change" },
],
REGISTRANT: [
{ required: true, message: "登记人不能为空", trigger: "change" },
],
};
const formRef = ref(null);
const form = ref({
@ -258,93 +269,114 @@ const form = ref({
EMISSION_STANDARD: "",
POWER_TYPE: "",
FIRSTSHOW_DATE: "",
DRIVINGLICENSE_PHOTO: ""
DRIVINGLICENSE_PHOTO: "",
},
ALLVEHICLE: {},
OPERATIONVEHICLELIST: [],
FREIGHTVEHICLELIST: [],
DRIVING_LICENSE_IMG: []
DRIVING_LICENSE_IMG: [],
});
const fnEditVehicleModel = async () => {
form.value.SCRAP_VEHICLE = null;
form.value.VEHICLE = {}
form.value.DRIVING_LICENSE_IMG = []
if(form.value.SCRAP_VEHICLEMODEL === '运输车辆') {
form.value.ALLVEHICLE = getAllOperationVehicleList.varList
form.value.OPERATIONVEHICLELIST = form.value.ALLVEHICLE
}else if(form.value.SCRAP_VEHICLEMODEL === '货运挂车') {
form.value.ALLVEHICLE = getAllFrailerList.varList
form.value.FREIGHTVEHICLELIST = form.value.ALLVEHICLE
form.value.VEHICLE = {};
form.value.DRIVING_LICENSE_IMG = [];
if (form.value.SCRAP_VEHICLEMODEL === "运输车辆") {
form.value.ALLVEHICLE = getAllOperationVehicleList.varList;
form.value.OPERATIONVEHICLELIST = form.value.ALLVEHICLE;
} else if (form.value.SCRAP_VEHICLEMODEL === "货运挂车") {
form.value.ALLVEHICLE = getAllFrailerList.varList;
form.value.FREIGHTVEHICLELIST = form.value.ALLVEHICLE;
}
};
const info = ref({});
const fnGetVehicleInfo = async () => {
if(form.value.SCRAP_VEHICLEMODEL === '运输车辆') {
if (form.value.SCRAP_VEHICLEMODEL === "运输车辆") {
for (let i = 0; i < form.value.OPERATIONVEHICLELIST.length; i++) {
if(form.value.OPERATIONVEHICLELIST[i].PLATE_NUMBER === form.value.SCRAP_VEHICLE) {
const OPERATING_ID = form.value.OPERATIONVEHICLELIST[i].OPERATING_ID
if (
form.value.OPERATIONVEHICLELIST[i].PLATE_NUMBER ===
form.value.SCRAP_VEHICLE
) {
const OPERATING_ID = form.value.OPERATIONVEHICLELIST[i].OPERATING_ID;
const resData = await getOperationVehicleInfo({ OPERATING_ID });
info.value = resData.pd
form.value.VEHICLE.VEHICLEOWNER = info.value.VEHICLEOWNER
form.value.VEHICLE.VEHICLEOWNER_NUMBER = info.value.VEHICLEOWNER_NUMBER
form.value.VEHICLE.PLATE_NUMBER = info.value.PLATE_NUMBER
form.value.VEHICLE.FRAMES_NUMBER = info.value.FRAMES_NUMBER
form.value.VEHICLE.SCRAP_VEHICLEMODEL = info.value.VEHICLE_MODEL
form.value.VEHICLE.BRAND = info.value.VEHICLE_BRAND
form.value.VEHICLE.EMISSION_STANDARD = info.value.EMISSION_STANDARD
form.value.VEHICLE.POWER_TYPE = info.value.VEHICLE_BRAND
form.value.VEHICLE.FIRSTSHOW_DATE = info.value.FIRSTSHOW_DATE
form.value.VEHICLE.DRIVINGLICENSE_PHOTO = info.value.DRIVINGLICENSE_PHOTO
form.value.PLATE_NUMBER = info.value.PLATE_NUMBER
form.value.VEHICLEOWNER = info.value.VEHICLEOWNER
form.value.CONTACT_NUMBER = info.value.CONTACT_NUMBER
form.value.FRAMES_NUMBER = info.value.FRAMES_NUMBER
form.value.VEHICLEOWNER_NUMBER = info.value.VEHICLEOWNER_NUMBER
form.value.ENGINE_NUMBER = info.value.ENGINE_NUMBER
form.value.FIRSTSHOW_DATE = info.value.FIRSTSHOW_DATE
form.value.BRAND = info.value.VEHICLE_BRAND
form.value.VEHICLE_MODEL = info.value.VEHICLE_MODEL
form.value.POWER_TYPE = info.value.VEHICLE_MODEL
form.value.EMISSION_STANDARD = info.value.EMISSION_STANDARD
info.value = resData.pd;
form.value.VEHICLE.VEHICLEOWNER = info.value.VEHICLEOWNER;
form.value.VEHICLE.VEHICLEOWNER_NUMBER = info.value.VEHICLEOWNER_NUMBER;
form.value.VEHICLE.PLATE_NUMBER = info.value.PLATE_NUMBER;
form.value.VEHICLE.FRAMES_NUMBER = info.value.FRAMES_NUMBER;
form.value.VEHICLE.SCRAP_VEHICLEMODEL = info.value.VEHICLE_MODEL;
form.value.VEHICLE.BRAND = info.value.VEHICLE_BRAND;
form.value.VEHICLE.EMISSION_STANDARD = info.value.EMISSION_STANDARD;
form.value.VEHICLE.POWER_TYPE = info.value.VEHICLE_BRAND;
form.value.VEHICLE.FIRSTSHOW_DATE = info.value.FIRSTSHOW_DATE;
form.value.VEHICLE.DRIVINGLICENSE_PHOTO =
info.value.DRIVINGLICENSE_PHOTO;
form.value.PLATE_NUMBER = info.value.PLATE_NUMBER;
form.value.VEHICLEOWNER = info.value.VEHICLEOWNER;
form.value.CONTACT_NUMBER = info.value.CONTACT_NUMBER;
form.value.FRAMES_NUMBER = info.value.FRAMES_NUMBER;
form.value.VEHICLEOWNER_NUMBER = info.value.VEHICLEOWNER_NUMBER;
form.value.ENGINE_NUMBER = info.value.ENGINE_NUMBER;
form.value.FIRSTSHOW_DATE = info.value.FIRSTSHOW_DATE;
form.value.BRAND = info.value.VEHICLE_BRAND;
form.value.VEHICLE_MODEL = info.value.VEHICLE_MODEL;
form.value.POWER_TYPE = info.value.VEHICLE_MODEL;
form.value.EMISSION_STANDARD = info.value.EMISSION_STANDARD;
form.value.DRIVING_LICENSE_IMG = addingPrefixToFile(
resData.drivinglicensephoto
);
}
}
}else if(form.value.SCRAP_VEHICLEMODEL === '货运挂车'){
} else if (form.value.SCRAP_VEHICLEMODEL === "货运挂车") {
for (let i = 0; i < form.value.FREIGHTVEHICLELIST.length; i++) {
if(form.value.FREIGHTVEHICLELIST[i].PLATE_NUMBER === form.value.SCRAP_VEHICLE) {
form.value.VEHICLE.VEHICLEOWNER = form.value.FREIGHTVEHICLELIST[i].CAR_OWNERS
form.value.VEHICLE.VEHICLEOWNER_NUMBER = form.value.FREIGHTVEHICLELIST[i].CAR_OWNERS_TEL
form.value.VEHICLE.PLATE_NUMBER = form.value.FREIGHTVEHICLELIST[i].PLATE_NUMBER
form.value.VEHICLE.FRAMES_NUMBER = form.value.FREIGHTVEHICLELIST[i].VIN
form.value.VEHICLE.SCRAP_VEHICLEMODEL = form.value.FREIGHTVEHICLELIST[i].TRAILER_MODEL
form.value.VEHICLE.BRAND = form.value.FREIGHTVEHICLELIST[i].TRAILER_BRAND
form.value.VEHICLE.EMISSION_STANDARD = form.value.FREIGHTVEHICLELIST[i].EMISSION_STANDARD
form.value.VEHICLE.POWER_TYPE = form.value.FREIGHTVEHICLELIST[i].VEHICLE_BRAND
form.value.VEHICLE.FIRSTSHOW_DATE = form.value.FREIGHTVEHICLELIST[i].INITIAL_REGISTRATION_DATE
form.value.VEHICLE.DRIVINGLICENSE_PHOTO = form.value.FREIGHTVEHICLELIST[i].DRIVING_LICENSE_IMG
if (
form.value.FREIGHTVEHICLELIST[i].PLATE_NUMBER ===
form.value.SCRAP_VEHICLE
) {
form.value.VEHICLE.VEHICLEOWNER =
form.value.FREIGHTVEHICLELIST[i].CAR_OWNERS;
form.value.VEHICLE.VEHICLEOWNER_NUMBER =
form.value.FREIGHTVEHICLELIST[i].CAR_OWNERS_TEL;
form.value.VEHICLE.PLATE_NUMBER =
form.value.FREIGHTVEHICLELIST[i].PLATE_NUMBER;
form.value.VEHICLE.FRAMES_NUMBER = form.value.FREIGHTVEHICLELIST[i].VIN;
form.value.VEHICLE.SCRAP_VEHICLEMODEL =
form.value.FREIGHTVEHICLELIST[i].TRAILER_MODEL;
form.value.VEHICLE.BRAND =
form.value.FREIGHTVEHICLELIST[i].TRAILER_BRAND;
form.value.VEHICLE.EMISSION_STANDARD =
form.value.FREIGHTVEHICLELIST[i].EMISSION_STANDARD;
form.value.VEHICLE.POWER_TYPE =
form.value.FREIGHTVEHICLELIST[i].VEHICLE_BRAND;
form.value.VEHICLE.FIRSTSHOW_DATE =
form.value.FREIGHTVEHICLELIST[i].INITIAL_REGISTRATION_DATE;
form.value.VEHICLE.DRIVINGLICENSE_PHOTO =
form.value.FREIGHTVEHICLELIST[i].DRIVING_LICENSE_IMG;
form.value.PLATE_NUMBER = form.value.FREIGHTVEHICLELIST[i].PLATE_NUMBER
form.value.VEHICLEOWNER = form.value.FREIGHTVEHICLELIST[i].CAR_OWNERS
form.value.CONTACT_NUMBER = form.value.FREIGHTVEHICLELIST[i].CAR_OWNERS_TEL
form.value.FRAMES_NUMBER = form.value.FREIGHTVEHICLELIST[i].VIN
form.value.VEHICLEOWNER_NUMBER = form.value.FREIGHTVEHICLELIST[i].CAR_OWNERS_TEL
form.value.BRAND = form.value.FREIGHTVEHICLELIST[i].TRAILER_BRAND
form.value.VEHICLE_MODEL = form.value.FREIGHTVEHICLELIST[i].TRAILER_MODEL
form.value.POWER_TYPE = form.value.FREIGHTVEHICLELIST[i].TRAILER_MODEL
form.value.EMISSION_STANDARD = form.value.FREIGHTVEHICLELIST[i].TRAILER_MODEL
form.value.FIRSTSHOW_DATE = form.value.FREIGHTVEHICLELIST[i].INITIAL_REGISTRATION_DATE
const FREIGHTTRAILER_ID = form.value.FREIGHTVEHICLELIST[i].FREIGHTTRAILER_ID
form.value.PLATE_NUMBER = form.value.FREIGHTVEHICLELIST[i].PLATE_NUMBER;
form.value.VEHICLEOWNER = form.value.FREIGHTVEHICLELIST[i].CAR_OWNERS;
form.value.CONTACT_NUMBER =
form.value.FREIGHTVEHICLELIST[i].CAR_OWNERS_TEL;
form.value.FRAMES_NUMBER = form.value.FREIGHTVEHICLELIST[i].VIN;
form.value.VEHICLEOWNER_NUMBER =
form.value.FREIGHTVEHICLELIST[i].CAR_OWNERS_TEL;
form.value.BRAND = form.value.FREIGHTVEHICLELIST[i].TRAILER_BRAND;
form.value.VEHICLE_MODEL =
form.value.FREIGHTVEHICLELIST[i].TRAILER_MODEL;
form.value.POWER_TYPE = form.value.FREIGHTVEHICLELIST[i].TRAILER_MODEL;
form.value.EMISSION_STANDARD =
form.value.FREIGHTVEHICLELIST[i].TRAILER_MODEL;
form.value.FIRSTSHOW_DATE =
form.value.FREIGHTVEHICLELIST[i].INITIAL_REGISTRATION_DATE;
const FREIGHTTRAILER_ID =
form.value.FREIGHTVEHICLELIST[i].FREIGHTTRAILER_ID;
const resData = await getFreightTrailerView({ FREIGHTTRAILER_ID });
form.value.DRIVING_LICENSE_IMG = addingPrefixToFile(
resData.drivingLicenseImgs
);
}
}
}
}
};
const fnGetData = async () => {
if (!SCRAP_ID) return;
const resData = await setScrapManageEdit({ SCRAP_ID });
@ -355,12 +387,12 @@ const fnSubmit = debounce(
1000,
async () => {
await useFormValidate(formRef);
await setScrapManageAdd({...form.value} )
await setScrapManageAdd({ ...form.value });
ElMessage.success("提交成功");
router.back();
},
{ atBegin: true }
)
);
</script>
<style scoped lang="scss"></style>

View File

@ -9,8 +9,9 @@
<el-row>
<el-col :span="6">
<el-form-item label="移除车型" prop="SCRAP_VEHICLEMODEL">
<el-select v-model="searchForm.SCRAP_VEHICLEMODEL"
placeholder="请选择移除车型"
<el-select
v-model="searchForm.SCRAP_VEHICLEMODEL"
placeholder="请选择移除车型"
>
<el-option
v-for="item in relatedClassificationList"
@ -72,22 +73,10 @@
{{ serialNumber(pagination, $index) }}
</template>
</el-table-column>
<el-table-column
prop="RECORD_NUMBER"
label="档案号"
/>
<el-table-column
prop="PLATE_NUMBER"
label="车牌号"
/>
<el-table-column
prop="SCRAP_VEHICLEMODEL"
label="移除车型"
/>
<el-table-column
prop="VEHICLEOWNER"
label="车主业主"
/>
<el-table-column prop="RECORD_NUMBER" label="档案号" />
<el-table-column prop="PLATE_NUMBER" label="车牌号" />
<el-table-column prop="SCRAP_VEHICLEMODEL" label="移除车型" />
<el-table-column prop="VEHICLEOWNER" label="车主业主" />
<el-table-column
prop="CONTACT_NUMBER"
label="联系电话"
@ -148,9 +137,7 @@
<el-button
v-if="buttonJurisdiction.add"
type="primary"
@click="
router.push({ path: '/mechanical_files/scrap_manage/add' })
"
@click="router.push({ path: '/mechanical_files/scrap_manage/add' })"
>
新增
</el-button>
@ -166,7 +153,7 @@ import useListData from "@/assets/js/useListData.js";
import {
getScrapManageList,
layoutFnGetScrapType,
setScrapManageDelete
setScrapManageDelete,
} from "@/request/scrap_manage.js";
import { useRouter } from "vue-router";
import useButtonJurisdiction from "@/assets/js/useButtonJurisdiction.js";
@ -178,7 +165,6 @@ const router = useRouter();
const { list, pagination, searchForm, fnGetData, fnResetPagination } =
useListData(getScrapManageList, {});
const relatedClassificationList = ref(null);
onMounted(async () => {
const data = await layoutFnGetScrapType();
@ -199,7 +185,7 @@ const fnDelete = debounce(
1000,
async (SCRAP_ID) => {
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
await setScrapManageDelete({ SCRAP_ID })
await setScrapManageDelete({ SCRAP_ID });
ElMessage.success("删除成功");
fnGetDataTransfer();
},

View File

@ -1,5 +1,6 @@
<template>
<layout-card>
<div id="printContainer">
<el-divider content-position="left">详情</el-divider>
<el-descriptions border>
<el-descriptions-item label="车牌号">
@ -14,7 +15,7 @@
<el-descriptions-item label="车主电话">
{{ data.VEHICLEOWNER_NUMBER }}
</el-descriptions-item>
<!-- <el-descriptions-item label="发动机号">
<!-- <el-descriptions-item label="发动机号">
{{ data.ENGINE_NUMBER }}
</el-descriptions-item>-->
<el-descriptions-item label="初登日期">
@ -26,7 +27,7 @@
<el-descriptions-item label="车辆型号">
{{ data.VEHICLE_MODEL }}
</el-descriptions-item>
<!-- <el-descriptions-item label="动力类型">
<!-- <el-descriptions-item label="动力类型">
{{ data.POWER_TYPE }}
</el-descriptions-item>
<el-descriptions-item label="排放标准">
@ -55,15 +56,19 @@
{{ data.REMARK }}
</el-descriptions-item>
</el-descriptions>
</div>
<div class="mt-10 tc">
<el-button v-print="'#printContainer'" type="primary"></el-button>
</div>
<div v-html="PRINT_STYLE" />
</layout-card>
</template>
<script setup>
import {
findByIdScrapManageInfo
} from "@/request/scrap_manage.js";
import { findByIdScrapManageInfo } from "@/request/scrap_manage.js";
import { useRoute } from "vue-router";
import { ref } from "vue";
import { PRINT_STYLE } from "@/assets/js/constant.js";
const route = useRoute();
const { SCRAP_ID } = route.query;
const data = ref({});

View File

@ -1,12 +1,7 @@
<template>
<layout-card>
<el-divider content-position="left">车辆选择</el-divider>
<el-form
ref="formRef"
:model="form"
:rules="rules"
label-width="100px"
>
<el-form ref="formRef" :model="form" :rules="rules" label-width="100px">
<el-row>
<el-col :span="6">
<el-form-item label="挂车车辆" prop="FREIGHTTRAILER_ID">
@ -15,7 +10,7 @@
@change="fnGetTrailerInfo"
>
<el-option
v-for="item in getTrailerList"
v-for="item in choiceTrailerList.varList"
:key="item.PLATE_NUMBER"
:label="item.PLATE_NUMBER"
:value="item.FREIGHTTRAILER_ID"
@ -36,36 +31,24 @@
<el-row>
<el-col :span="6">
<el-form-item label="车牌号" prop="PLATE_NUMBER">
<el-input v-model="form.PLATE_NUMBER"
placeholder="--"
disabled
/>
<el-input v-model="form.PLATE_NUMBER" placeholder="--" disabled />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="车架号" prop="FRAMES_NUMBER">
<el-input v-model="form.FRAMES_NUMBER"
placeholder="--"
disabled
/>
<el-input v-model="form.FRAMES_NUMBER" placeholder="--" disabled />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="车辆类型" prop="VEHICLE_TYPE">
<el-input v-model="form.VEHICLE_TYPE"
placeholder="--"
disabled
/>
<el-input v-model="form.VEHICLE_TYPE" placeholder="--" disabled />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="车主业主" prop="CAR_OWNERS">
<el-input v-model="form.CAR_OWNERS"
placeholder="--"
disabled
/>
<el-input v-model="form.CAR_OWNERS" placeholder="--" disabled />
</el-form-item>
</el-col>
<el-col :span="6">
@ -79,37 +62,28 @@
</el-col>
<el-col :span="6">
<el-form-item label="初登日期" prop="FIRSTSHOW_DATE">
<el-input
v-model="form.FIRSTSHOW_DATE"
placeholder="--"
disabled
/>
<el-input v-model="form.FIRSTSHOW_DATE" placeholder="--" disabled />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="所属省份" prop="PROVINCE">
<el-input v-model="form.Trailer.PROVINCE"
placeholder="--"
disabled
<el-input
v-model="form.Trailer.PROVINCE"
placeholder="--"
disabled
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="所属地市" prop="CITY">
<el-input v-model="form.CITY"
placeholder="--"
disabled
/>
<el-input v-model="form.CITY" placeholder="--" disabled />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="所属区县" prop="COUNTY">
<el-input v-model="form.COUNTY"
placeholder="--"
disabled
/>
<el-input v-model="form.COUNTY" placeholder="--" disabled />
</el-form-item>
</el-col>
</el-row>
@ -145,10 +119,7 @@
</el-col>
<el-col :span="6">
<el-form-item label="登记人" prop="REGISTRANT">
<el-input
v-model="form.REGISTRANT"
placeholder="请填写登记人"
/>
<el-input v-model="form.REGISTRANT" placeholder="请填写登记人" />
</el-form-item>
</el-col>
</el-row>
@ -161,15 +132,19 @@
format="YYYY-MM-DD"
type="date"
placeholder="请选择办理日期"
@change="fnGetExpireDate"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="税务周期" prop="TAXESDUES_PERIOD">
<el-select v-model="form.TAXESDUES_PERIOD">
<el-select
v-model="form.TAXESDUES_PERIOD"
@change="fnGetExpireDate"
>
<el-option
v-for="item in TaxesPeriodList"
:key="item.BIANMA"
v-for="item in TAXES_PERIOD"
:key="item.NAME"
:label="item.NAME"
:value="item.NAME"
/>
@ -178,13 +153,7 @@
</el-col>
<el-col :span="6">
<el-form-item label="到期日期" prop="EXPIRE_DATE">
<el-date-picker
v-model="form.EXPIRE_DATE"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
placeholder="请选择到期日期"
/>
<el-input v-model="form.EXPIRE_DATE" disabled />
</el-form-item>
</el-col>
</el-row>
@ -194,18 +163,13 @@
<el-input
v-model="form.REMINDER_DAY"
placeholder="请填写提醒天数"
@change="fnGetReminderData"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="提醒日期" prop="REMINDER_DATA">
<el-date-picker
v-model="form.REMINDER_DATA"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
placeholder="请选择提醒日期"
/>
<el-input v-model="form.REMINDER_DATA" disabled />
</el-form-item>
</el-col>
<el-col :span="6">
@ -251,23 +215,18 @@
<script setup>
import { ref } from "vue";
import {
layoutFnGetTaxesPeriod,
layoutFnGetTrailerList,
} from "@/assets/js/taxation_manage.js";
import LayoutUpload from "@/components/upload/index.vue";
import { debounce } from "throttle-debounce";
import useFormValidate from "@/assets/js/useFormValidate.js";
import { setTaxationManageAdd } from "@/request/taxation_manage.js";
import { getFreightTrailerView } from "@/request/enterprise_management.js";
import { getFreightTrailerView, getChoiceTrailerList } from "@/request/enterprise_management.js";
import { ElMessage } from "element-plus";
import { useRouter } from "vue-router";
import { addingPrefixToFile } from "@/assets/js/utils.js";
import { TAXES_PERIOD } from "@/assets/js/constant.js";
const router = useRouter();
const TaxesPeriodList = await layoutFnGetTaxesPeriod();
const getTrailerList = await layoutFnGetTrailerList();
const choiceTrailerList = await getChoiceTrailerList();
console.log("筛选后的挂车车辆信息",choiceTrailerList);
const rules = {
TRAILER_VEHICLE: [
{ required: true, message: "挂车车辆不能为空", trigger: "blur" },
@ -296,6 +255,7 @@ const rules = {
],
REMINDER_DAY: [
{ required: true, message: "提醒天数不能为空", trigger: "blur" },
{ pattern: /^([1-9][0-9]*)$/, message: "请输入正整数", trigger: "blur" },
],
REMINDER_DATA: [
{ required: true, message: "提醒日期不能为空", trigger: "change" },
@ -303,6 +263,9 @@ const rules = {
DRIVINGLICENSE_PHOTO: [
{ required: true, message: "行驶证照片不能为空", trigger: "change" },
],
FREIGHTTRAILER_ID: [
{ required: true, message: "挂车车辆不能为空", trigger: "change" },
]
};
const formRef = ref(null);
const form = ref({
@ -340,34 +303,60 @@ const form = ref({
TRAILERRECORD_NUMBER: "",
Trailer: {},
CAR_OWNERS: "",
DRIVING_LICENSE_IMG: []
DRIVING_LICENSE_IMG: [],
ALLTRAILERINFO: [],
TAXATIONLISTTRAILER: [],
TRAILER: []
});
form.value.TrailerInfo = getTrailerList;
const fnGetExpireDate = async () => {
if(form.value.TRANSACTION_DATA !== '' && form.value.TAXESDUES_PERIOD !== ''){
const TAXESDUES_PERIOD = Number(form.value.TAXESDUES_PERIOD.substring(0,form.value.TAXESDUES_PERIOD.indexOf("个")));
const date = new Date(form.value.TRANSACTION_DATA);
date.setMonth(date.getMonth() + TAXESDUES_PERIOD);
const year = date.getFullYear();
let month = date.getMonth() + 1;
month = month < 10 ? "0" + month : month;
let day = date.getDate();
day = day < 10 ? "0" + day : day;
form.value.EXPIRE_DATE = year + "-" + month + "-" + day;
}
fnGetReminderData()
};
const fnGetReminderData = async () => {
if(form.value.TRANSACTION_DATA !== '' && form.value.TAXESDUES_PERIOD !== '' && form.value.REMINDER_DAY !== '') {
const REMINDER_DAY = Number(form.value.REMINDER_DAY);
const date = new Date(form.value.EXPIRE_DATE);
date.setDate(date.getDate() - REMINDER_DAY);
const year = date.getFullYear();
let month = date.getMonth() + 1;
month = month < 10 ? "0" + month : month;
let day = date.getDate();
day = day < 10 ? "0" + day : day;
form.value.REMINDER_DATA = year + "-" + month + "-" + day;
}
};
const fnGetTrailerInfo = async () => {
const FREIGHTTRAILER_ID = form.value.FREIGHTTRAILER_ID;
form.value.FREIGHTTRAILER_ID = FREIGHTTRAILER_ID
form.value.FREIGHTTRAILER_ID = FREIGHTTRAILER_ID;
const resData = await getFreightTrailerView({ FREIGHTTRAILER_ID });
form.value.PLATE_NUMBER = resData.pd.PLATE_NUMBER
form.value.FRAMES_NUMBER = resData.pd.VIN
form.value.VEHICLE_TYPE = resData.pd.TRAILER_TYPE
form.value.CAR_OWNERS = resData.pd.CAR_OWNERS
form.value.VEHICLEOWNER_NUMBER = resData.pd.CAR_OWNERS_TEL
form.value.FIRSTSHOW_DATE = resData.pd.INITIAL_REGISTRATION_DATE
form.value.DRIVINGLICENSE_PHOTO = resData.pd.DRIVING_LICENSE_IMG
form.value.VEHICLE_MODEL = resData.pd.TRAILER_MODEL
form.value.VEHICLE_BRAND = resData.pd.TRAILER_BRAND
form.value.PLATE_NUMBER = resData.pd.PLATE_NUMBER;
form.value.FRAMES_NUMBER = resData.pd.VIN;
form.value.VEHICLE_TYPE = resData.pd.TRAILER_TYPE;
form.value.CAR_OWNERS = resData.pd.CAR_OWNERS;
form.value.VEHICLEOWNER_NUMBER = resData.pd.CAR_OWNERS_TEL;
form.value.FIRSTSHOW_DATE = resData.pd.INITIAL_REGISTRATION_DATE;
form.value.DRIVINGLICENSE_PHOTO = resData.pd.DRIVING_LICENSE_IMG;
form.value.VEHICLE_MODEL = resData.pd.TRAILER_MODEL;
form.value.VEHICLE_BRAND = resData.pd.TRAILER_BRAND;
form.value.DRIVINGLICENSE_PHOTO = addingPrefixToFile(
resData.drivingLicenseImgs
);
};
const fnSubmit = debounce(
1000,
async () => {
await useFormValidate(formRef);
await setTaxationManageAdd({...form.value} )
await setTaxationManageAdd({ ...form.value });
ElMessage.success("提交成功");
router.back();
},

View File

@ -1,21 +1,23 @@
<template>
<layout-card>
<el-divider content-position="left">车辆选择</el-divider>
<el-form
ref="formRef"
:model="form"
:rules="rules"
label-width="100px"
>
<el-form ref="formRef" :model="form" :rules="rules" label-width="100px">
<el-row>
<el-col :span="6">
<el-form-item label="登记编号" prop="RECORD_NUMBER">
<el-input v-model="form.RECORD_NUMBER" placeholder="请输入登记编号" />
<el-input
v-model="form.RECORD_NUMBER"
placeholder="请输入登记编号"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="挂车车辆" prop="PLATE_NUMBER">
<el-input v-model="form.PLATE_NUMBER" placeholder="请输入挂车车辆" disabled/>
<el-input
v-model="form.PLATE_NUMBER"
placeholder="请输入挂车车辆"
disabled
/>
</el-form-item>
</el-col>
</el-row>
@ -23,78 +25,55 @@
<el-row>
<el-col :span="6">
<el-form-item label="车牌号" prop="PLATE_NUMBER">
<el-input v-model="form.PLATE_NUMBER"
placeholder="--"
disabled
/>
<el-input v-model="form.PLATE_NUMBER" placeholder="--" disabled />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="车架号" prop="FRAMES_NUMBER">
<el-input v-model="form.FRAMES_NUMBER"
placeholder="--"
disabled
/>
<el-input v-model="form.FRAMES_NUMBER" placeholder="--" disabled />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="车辆类型" prop="VEHICLE_TYPE">
<el-input v-model="form.VEHICLE_TYPE"
placeholder="--"
disabled
/>
<el-input v-model="form.VEHICLE_TYPE" placeholder="--" disabled />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="车主业主" prop="CAR_OWNERS">
<el-input v-model="form.CAR_OWNERS"
placeholder="--"
disabled
/>
<el-input v-model="form.CAR_OWNERS" placeholder="--" disabled />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="车主电话" prop="VEHICLEOWNER_NUMBER">
<el-input v-model="form.VEHICLEOWNER_NUMBER"
placeholder="--"
disabled
<el-input
v-model="form.VEHICLEOWNER_NUMBER"
placeholder="--"
disabled
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="初登日期" prop="FIRSTSHOW_DATE">
<el-input v-model="form.FIRSTSHOW_DATE"
placeholder="--"
disabled
/>
<el-input v-model="form.FIRSTSHOW_DATE" placeholder="--" disabled />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="所属省份" prop="PROVINCE">
<el-input v-model="form.PROVINCE"
placeholder="--"
disabled
/>
<el-input v-model="form.PROVINCE" placeholder="--" disabled />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="所属地市" prop="CITY">
<el-input v-model="form.CITY"
placeholder="--"
disabled
/>
<el-input v-model="form.CITY" placeholder="--" disabled />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="所属区县" prop="COUNTY">
<el-input v-model="form.COUNTY"
placeholder="--"
disabled
/>
<el-input v-model="form.COUNTY" placeholder="--" disabled />
</el-form-item>
</el-col>
</el-row>
@ -115,12 +94,18 @@
<el-row>
<el-col :span="6">
<el-form-item label="车主业主" prop="VEHICLEOWNER">
<el-input v-model="form.VEHICLEOWNER" placeholder="请填写车主业主" />
<el-input
v-model="form.VEHICLEOWNER"
placeholder="请填写车主业主"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="联系电话" prop="CONTACT_NUMBER">
<el-input v-model="form.CONTACT_NUMBER" placeholder="请填写联系电话" />
<el-input
v-model="form.CONTACT_NUMBER"
placeholder="请填写联系电话"
/>
</el-form-item>
</el-col>
<el-col :span="6">
@ -130,12 +115,26 @@
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="办理日期" prop="TRANSACTION_DATA">
<el-date-picker
v-model="form.TRANSACTION_DATA"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
placeholder="请选择办理日期"
@change="fnGetExpireDate"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="税费周期" prop="TAXESDUES_PERIOD">
<el-select v-model="form.TAXESDUES_PERIOD">
<el-select v-model="form.TAXESDUES_PERIOD"
@change="fnGetExpireDate"
>
<el-option
v-for="item in TaxesPeriodList"
:key="item.BIANMA"
v-for="item in TAXES_PERIOD"
:key="item.NAME"
:label="item.NAME"
:value="item.NAME"
/>
@ -144,42 +143,23 @@
</el-col>
<el-col :span="6">
<el-form-item label="到期日期" prop="EXPIRE_DATE">
<el-date-picker
v-model="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="提醒天数" prop="REMINDER_DAY">
<el-input v-model="form.REMINDER_DAY" placeholder="请填写提醒天数" />
<el-input v-model="form.EXPIRE_DATE" disabled />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="提醒日期" prop="REMINDER_DATA">
<el-date-picker
v-model="form.REMINDER_DATA"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
placeholder="请选择提醒日期"
<el-form-item label="提醒天数" prop="REMINDER_DAY">
<el-input
v-model="form.REMINDER_DAY"
placeholder="请填写提醒天数"
@change="fnGetReminderData"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="办理日期" prop="TRANSACTION_DATA">
<el-date-picker
v-model="form.TRANSACTION_DATA"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
placeholder="请选择办理日期"
/>
<el-form-item label="提醒日期" prop="REMINDER_DATA">
<el-input v-model="form.REMINDER_DATA" disabled />
</el-form-item>
</el-col>
<el-col :span="6">
@ -225,34 +205,50 @@
<script setup>
import { ref } from "vue";
import {
layoutFnGetTaxesPeriod,
} from "@/assets/js/taxation_manage.js";
import { debounce } from "throttle-debounce";
import useFormValidate from "@/assets/js/useFormValidate.js";
import { editTaxationManageInfo, findByIdTaxationManageInfo } from "@/request/taxation_manage.js";
import { getFreightTrailerView } from "@/request/enterprise_management.js"
import {
editTaxationManageInfo,
findByIdTaxationManageInfo,
} from "@/request/taxation_manage.js";
import { getFreightTrailerView } from "@/request/enterprise_management.js";
import { ElMessage } from "element-plus";
import { useRoute, useRouter } from "vue-router";
import LayoutUpload from "@/components/upload/index.vue";
import { addingPrefixToFile } from "@/assets/js/utils.js";
import { TAXES_PERIOD } from "@/assets/js/constant.js";
const route = useRoute();
const router = useRouter();
const { TAXATION_ID } = route.query;
const TaxesPeriodList = await layoutFnGetTaxesPeriod();
const rules = {
TRAILER_VEHICLE: [{ required: true, message: "挂车车辆不能为空", trigger: "change" }],
VEHICLEOWNER: [{ required: true, message: "车主/业主不能为空", trigger: "blur" }],
CONTACT_NUMBER: [{required: true, message: "联系电话不能为空", trigger: "blur"}],
REGISTRANT: [{required: true, message: "登记人不能为空", trigger: "blur"}],
TRANSACTION_DATA: [{required: true, message: "办理日期不能为空", trigger: "change"}],
TAXESDUES_PERIOD: [{required: true, message: "税费周期不能为空", trigger: "change"}],
EXPIRE_DATE: [{required: true, message: "到期日期不能为空", trigger: "change"}],
REMINDER_DAY: [{required: true, message: "提醒天数不能为空", trigger: "blur"}],
REMINDER_DATA: [{required: true, message: "提醒日期不能为空", trigger: "change"}]
TRAILER_VEHICLE: [
{ required: true, message: "挂车车辆不能为空", trigger: "change" },
],
VEHICLEOWNER: [
{ required: true, message: "车主/业主不能为空", trigger: "blur" },
],
CONTACT_NUMBER: [
{ required: true, message: "联系电话不能为空", trigger: "blur" },
],
REGISTRANT: [{ required: true, message: "登记人不能为空", trigger: "blur" }],
TRANSACTION_DATA: [
{ required: true, message: "办理日期不能为空", trigger: "change" },
],
TAXESDUES_PERIOD: [
{ required: true, message: "税费周期不能为空", trigger: "change" },
],
EXPIRE_DATE: [
{ required: true, message: "到期日期不能为空", trigger: "change" },
],
REMINDER_DAY: [
{ required: true, message: "提醒天数不能为空", trigger: "blur" },
{ pattern: /^([1-9][0-9]*)$/, message: "请输入正整数", trigger: "blur" },
],
REMINDER_DATA: [
{ required: true, message: "提醒日期不能为空", trigger: "change" },
],
};
const formRef = ref(null);
const form = ref({
@ -288,26 +284,54 @@ const form = ref({
TAXATION_NUMBER: "",
DRIVING_LICENSE_IMG: [],
FREIGHTTRAILER_ID: "",
CAR_OWNERS: ""
CAR_OWNERS: "",
});
const fnGetExpireDate = async () => {
if(form.value.TRANSACTION_DATA !== '' && form.value.TAXESDUES_PERIOD !== ''){
const TAXESDUES_PERIOD = Number(form.value.TAXESDUES_PERIOD.substring(0,form.value.TAXESDUES_PERIOD.indexOf("个")));
const date = new Date(form.value.TRANSACTION_DATA);
date.setMonth(date.getMonth() + TAXESDUES_PERIOD);
const year = date.getFullYear();
let month = date.getMonth() + 1;
month = month < 10 ? "0" + month : month;
let day = date.getDate();
day = day < 10 ? "0" + day : day;
form.value.EXPIRE_DATE = year + "-" + month + "-" + day;
}
fnGetReminderData()
};
const fnGetReminderData = async () => {
if(form.value.REMINDER_DAY !== '') {
const REMINDER_DAY = Number(form.value.REMINDER_DAY);
const date = new Date(form.value.EXPIRE_DATE);
date.setDate(date.getDate() - REMINDER_DAY);
const year = date.getFullYear();
let month = date.getMonth() + 1;
month = month < 10 ? "0" + month : month;
let day = date.getDate();
day = day < 10 ? "0" + day : day;
form.value.REMINDER_DATA = year + "-" + month + "-" + day;
}
};
fnGetReminderData();
const fnGetData = async () => {
if (!TAXATION_ID) return;
const resData = await findByIdTaxationManageInfo({ TAXATION_ID });
form.value = resData.pd;
const FREIGHTTRAILER_ID = form.value.FREIGHTTRAILER_ID
const info = await getFreightTrailerView({ FREIGHTTRAILER_ID })
form.value.CAR_OWNERS = info.pd.CAR_OWNERS
form.value.DRIVINGLICENSE_PHOTO = addingPrefixToFile(
info.drivingLicenseImgs
)
}
const FREIGHTTRAILER_ID = form.value.FREIGHTTRAILER_ID;
const info = await getFreightTrailerView({ FREIGHTTRAILER_ID });
form.value.CAR_OWNERS = info.pd.CAR_OWNERS;
form.value.DRIVINGLICENSE_PHOTO = addingPrefixToFile(info.drivingLicenseImgs);
};
fnGetData();
const fnSubmit = debounce(
1000,
async () => {
await useFormValidate(formRef);
await editTaxationManageInfo({...form.value, TAXATION_ID:TAXATION_ID});
await editTaxationManageInfo({ ...form.value, TAXATION_ID });
ElMessage.success("提交成功");
router.back();
},

View File

@ -49,10 +49,10 @@
placeholder="请选择到期状态"
>
<el-option
v-for="item in expireStatusList"
:key="item.BIANMA"
v-for="item in EXPIRE_STATUS"
:key="item.NAME"
:label="item.NAME"
:value="item.BIANMA"
:value="item.NAME"
/>
</el-select>
</el-form-item>
@ -72,12 +72,16 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-col :span="10">
<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="25">
<el-form-item label-width="10px" class="end">
<el-button>导出</el-button>
</el-form-item>
</el-col>
@ -105,7 +109,7 @@
<el-table-column prop="REGISTRANT" label="登记人" />
<el-table-column prop="CREATTIME" label="创建时间" />
<el-table-column prop="OPERATTIME" label="更改时间" />
<el-table-column prop="REMINDER_STATUS" label="提醒状态" >
<el-table-column prop="REMINDER_STATUS" label="提醒状态">
<template #default="{ row }">
<el-tag v-if="row.REMINDER_STATUS === '0'"></el-tag>
<el-tag v-else-if="row.REMINDER_STATUS === '1'">关闭</el-tag>
@ -117,7 +121,12 @@
<el-tag v-else-if="row.EXPIRE_STATUS === ''">未到期</el-tag>
</template>
</el-table-column>
<el-table-column prop="RECORD_STATUS" label="档案状态" />
<el-table-column prop="RECORD_STATUS" label="档案状态" >
<template #default="{ row }">
<el-tag v-if="row.RECORD_STATUS === ''"></el-tag>
<el-tag v-else></el-tag>
</template>
</el-table-column>
<el-table-column label="操作" width="150">
<template #default="{ row }">
<el-button
@ -134,6 +143,7 @@
查看
</el-button>
<el-button
v-if="row.ASSIGNEDSTATUS !== '1'"
type="primary"
text
link
@ -148,7 +158,7 @@
</el-button>
<el-button
v-if="buttonJurisdiction.del"
type="primary"
type="danger"
text
link
@click="fnDelete(row.TAXATION_ID)"
@ -177,7 +187,6 @@
import { serialNumber } from "@/assets/js/utils.js";
import useListData from "@/assets/js/useListData.js";
import {
layoutFnGetExpireStatus,
layoutFnGetRemindStatus,
} from "@/assets/js/taxation_manage.js";
import {
@ -189,10 +198,9 @@ import useButtonJurisdiction from "@/assets/js/useButtonJurisdiction.js";
import { debounce } from "throttle-debounce";
import { ElMessage, ElMessageBox } from "element-plus";
const router = useRouter();
const remindStatusList = await layoutFnGetRemindStatus();
const { list, pagination, searchForm, fnGetData, fnResetPagination } =
useListData(getTaxationManageList, {});
const expireStatusList = await layoutFnGetExpireStatus();
const remindStatusList = await layoutFnGetRemindStatus();
const fnGetDataTransfer = () => {
fnGetData({
DEPTIDS: searchForm.value.DEPTIDS?.join(","),
@ -214,7 +222,6 @@ const fnDelete = debounce(
},
{ atBegin: true }
);
const buttonJurisdiction = await useButtonJurisdiction("operation");
</script>
<style scoped></style>

View File

@ -1,5 +1,6 @@
<template>
<layout-card>
<div id="printContainer">
<el-divider content-position="left">基本信息</el-divider>
<el-descriptions border>
<el-descriptions-item label="登记编号">
@ -60,15 +61,19 @@
{{ data.REMARK }}
</el-descriptions-item>
</el-descriptions>
</div>
<div class="mt-10 tc">
<el-button v-print="'#printContainer'" type="primary"></el-button>
</div>
<div v-html="PRINT_STYLE" />
</layout-card>
</template>
<script setup>
import {
findByIdTaxationManageInfo,
} from "@/request/taxation_manage.js";
import { findByIdTaxationManageInfo } from "@/request/taxation_manage.js";
import { useRoute } from "vue-router";
import { ref } from "vue";
import { PRINT_STYLE } from "@/assets/js/constant.js";
const route = useRoute();
const { TAXATION_ID } = route.query;

View File

@ -1,24 +1,10 @@
<template>
<layout-card>
<el-form
ref="formRef"
:model="form"
:rules="rules"
label-width="100px"
>
<el-form ref="formRef" :model="form" :rules="rules" label-width="100px">
<el-row>
<el-col :span="6">
<el-form-item label="经营企业" prop="MANAGING_ENTERPRISE">
<layout-department v-model="form.MANAGING_ENTERPRISE"
placeholder="请选择经营企业"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="值班人员" prop="WATCHKEEPER">
<el-input v-model="form.WATCHKEEPER"
placeholder="请输入值班人员"
/>
<el-input v-model="form.WATCHKEEPER" placeholder="请输入值班人员" />
</el-form-item>
</el-col>
<el-col :span="6">
@ -32,39 +18,36 @@
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="值班领导" prop="WATCHLEAD">
<el-input v-model="form.WATCHLEAD" placeholder="请输入值班领导" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="值班领导" prop="WATCHLEAD">
<el-input v-model="form.WATCHLEAD"
placeholder="请输入值班领导"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="值班座机" prop="WATCH_TELEPHONE">
<el-input v-model="form.WATCH_TELEPHONE"
placeholder="请输入值班座机"
<el-input
v-model="form.WATCH_TELEPHONE"
placeholder="请输入值班座机"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="值班人电话" prop="WATCH_PHONE">
<el-input v-model="form.WATCH_PHONE"
placeholder="请输入值班人电话"
<el-input
v-model="form.WATCH_PHONE"
placeholder="请输入值班人电话"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="登记人" prop="REGISTRANT">
<el-input v-model="form.REGISTRANT" placeholder="请输入登记人" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="登记人" prop="REGISTRANT">
<el-input v-model="form.REGISTRANT"
placeholder="请输入登记人"
/>
</el-form-item>
</el-col>
</el-row>
<el-col :span="24">
<el-form-item label="值班情况" prop="WATCH_CONDITION">
<el-input
@ -75,6 +58,7 @@
/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="tc mt-10">
<el-button type="primary" @click="fnSubmit"></el-button>
@ -86,21 +70,26 @@
import { ref } from "vue";
import {
setEnterpriseSafetyProductEdit,
setEnterpriseSafetyProductAdd
setEnterpriseSafetyProductAdd,
} from "@/request/enterprise_safety_production.js";
import { debounce } from "throttle-debounce";
import useFormValidate from "@/assets/js/useFormValidate.js";
import { useRoute, useRouter } from "vue-router";
import { ElMessage } from "element-plus";
import LayoutDepartment from "@/components/department/index.vue";
const route = useRoute();
const router = useRouter();
const SAFETYPRODUCTION_ID = route.query.SAFETYPRODUCTION_ID
const SAFETYPRODUCTION_ID = route.query.SAFETYPRODUCTION_ID;
const rules = {
MANAGING_ENTERPRISE: [{ required: true, message: "经营企业不能为空", trigger: "blur" }],
WATCHKEEPER: [{ required: true, message: "值班人员不能为空", trigger: "blur" }],
WATCH_DATE: [{ required: true, message: "值班日期不能为空", trigger: "change" }],
MANAGING_ENTERPRISE: [
{ required: true, message: "经营企业不能为空", trigger: "blur" },
],
WATCHKEEPER: [
{ required: true, message: "值班人员不能为空", trigger: "blur" },
],
WATCH_DATE: [
{ required: true, message: "值班日期不能为空", trigger: "change" },
],
WATCHLEAD: [{ required: true, message: "值班领导不能为空", trigger: "blur" }],
WATCH_TELEPHONE: [
{ required: true, message: "请输入", trigger: "blur" },
@ -134,7 +123,7 @@ const form = ref({
REGISTRANT: "",
WATCH_CONDITION: "",
MANAGING_ENTERPRISE: "",
MANAGING_TYPE: ""
MANAGING_TYPE: "",
});
const fnGetData = async () => {
if (!SAFETYPRODUCTION_ID) return;
@ -146,7 +135,7 @@ const fnSubmit = debounce(
1000,
async () => {
await useFormValidate(formRef);
await setEnterpriseSafetyProductAdd({ ...form.value })
await setEnterpriseSafetyProductAdd({ ...form.value });
ElMessage.success("提交成功");
router.back();
},

View File

@ -1,17 +1,10 @@
<template>
<layout-card>
<el-form
ref="formRef"
:model="form"
:rules="rules"
label-width="100px"
>
<el-form ref="formRef" :model="form" :rules="rules" label-width="100px">
<el-row>
<el-col :span="6">
<el-form-item label="值班人员" prop="WATCHKEEPER">
<el-input v-model="form.WATCHKEEPER"
placeholder="请输入值班人员"
/>
<el-input v-model="form.WATCHKEEPER" placeholder="请输入值班人员" />
</el-form-item>
</el-col>
<el-col :span="6">
@ -27,45 +20,43 @@
</el-col>
<el-col :span="6">
<el-form-item label="值班领导" prop="WATCHLEAD">
<el-input v-model="form.WATCHLEAD"
placeholder="请输入值班领导"
/>
<el-input v-model="form.WATCHLEAD" placeholder="请输入值班领导" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="值班座机" prop="WATCH_TELEPHONE">
<el-input v-model="form.WATCH_TELEPHONE"
placeholder="请输入值班座机"
<el-input
v-model="form.WATCH_TELEPHONE"
placeholder="请输入值班座机"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="值班人电话" prop="WATCH_PHONE">
<el-input v-model="form.WATCH_PHONE"
placeholder="请输入值班人电话"
<el-input
v-model="form.WATCH_PHONE"
placeholder="请输入值班人电话"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="登记人" prop="REGISTRANT">
<el-input v-model="form.REGISTRANT"
placeholder="请输入登记人"
/>
<el-input v-model="form.REGISTRANT" placeholder="请输入登记人" />
</el-form-item>
</el-col>
</el-row>
<el-col :span="24">
<el-form-item label="值班情况" prop="WATCH_CONDITION">
<el-input
v-model="form.WATCH_CONDITION"
placeholder="请填写值班情况"
type="textarea"
:autosize="{ minRows: 3 }"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="值班情况" prop="WATCH_CONDITION">
<el-input
v-model="form.WATCH_CONDITION"
placeholder="请填写值班情况"
type="textarea"
:autosize="{ minRows: 3 }"
/>
</el-form-item>
</el-col>
</el-form>
<div class="tc mt-10">
<el-button type="primary" @click="fnSubmit"></el-button>
@ -77,7 +68,7 @@
import { ref } from "vue";
import {
setEnterpriseSafetyProductEdit,
setEnterpriseSafetyProductAdd
setEnterpriseSafetyProductAdd,
} from "@/request/enterprise_safety_production.js";
import { debounce } from "throttle-debounce";
import useFormValidate from "@/assets/js/useFormValidate.js";
@ -85,11 +76,15 @@ import { useRoute, useRouter } from "vue-router";
import { ElMessage } from "element-plus";
const route = useRoute();
const router = useRouter();
const SAFETYPRODUCTION_ID = route.query.SAFETYPRODUCTION_ID
const SAFETYPRODUCTION_ID = route.query.SAFETYPRODUCTION_ID;
const rules = {
WATCHKEEPER: [{ required: true, message: "值班人员不能为空", trigger: "blur" }],
WATCH_DATE: [{ required: true, message: "值班日期不能为空", trigger: "change" }],
WATCHKEEPER: [
{ required: true, message: "值班人员不能为空", trigger: "blur" },
],
WATCH_DATE: [
{ required: true, message: "值班日期不能为空", trigger: "change" },
],
WATCHLEAD: [{ required: true, message: "值班领导不能为空", trigger: "blur" }],
WATCH_TELEPHONE: [
{ required: true, message: "请输入", trigger: "blur" },
@ -123,7 +118,7 @@ const form = ref({
REGISTRANT: "",
WATCH_CONDITION: "",
MANAGING_ENTERPRISE: "",
MANAGING_TYPE: ""
MANAGING_TYPE: "",
});
const fnGetData = async () => {
if (!SAFETYPRODUCTION_ID) return;
@ -135,7 +130,7 @@ const fnSubmit = debounce(
1000,
async () => {
await useFormValidate(formRef);
await setEnterpriseSafetyProductAdd({ ...form.value })
await setEnterpriseSafetyProductAdd({ ...form.value });
ElMessage.success("提交成功");
router.back();
},

View File

@ -9,15 +9,17 @@
<el-row>
<el-col :span="6">
<el-form-item label="值班人员" prop="WATCHKEEPER">
<el-input v-model="searchForm.WATCHKEEPER"
placeholder="请填写值班人员"
<el-input
v-model="searchForm.WATCHKEEPER"
placeholder="请填写值班人员"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="值班领导" prop="WATCHLEAD">
<el-input v-model="searchForm.WATCHLEAD"
placeholder="请填写值班领导"
<el-input
v-model="searchForm.WATCHLEAD"
placeholder="请填写值班领导"
/>
</el-form-item>
</el-col>
@ -45,9 +47,9 @@
</el-card>
<layout-card>
<layout-table
v-model:pagination="pagination"
:data="list"
@get-data="fnGetData"
v-model:pagination="pagination"
>
<el-table-column label="序号" width="60">
<template #default="{ $index }">
@ -90,16 +92,18 @@
</template>
</el-table-column>
<template #button>
<el-button
v-if="buttonJurisdiction.add"
type="primary"
@click="
router.push({ path: '/production_course_regulate/enterprise_safety_production_shift/add' })
<el-button
v-if="buttonJurisdiction.add"
type="primary"
@click="
router.push({
path: '/production_course_regulate/enterprise_safety_production_shift/add',
})
"
>
新增
</el-button>
</template>
>
新增
</el-button>
</template>
</layout-table>
</layout-card>
<edit
@ -118,7 +122,7 @@ import { useRouter } from "vue-router";
import { reactive } from "vue";
import {
getEnterpriseSafetyProductionList,
setEnterpriseSafetyProductDelete
setEnterpriseSafetyProductDelete,
} from "@/request/enterprise_safety_production.js";
import { debounce } from "throttle-debounce";
import { ElMessage, ElMessageBox } from "element-plus";
@ -137,14 +141,16 @@ const fnDelete = debounce(
1000,
async (SAFETYPRODUCTION_ID) => {
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
await setEnterpriseSafetyProductDelete({ SAFETYPRODUCTION_ID })
await setEnterpriseSafetyProductDelete({ SAFETYPRODUCTION_ID });
ElMessage.success("删除成功");
fnResetPagination();
},
{ atBegin: true }
);
const buttonJurisdiction = await useButtonJurisdiction("enterpriseSafetyProduction");
const buttonJurisdiction = await useButtonJurisdiction(
"enterpriseSafetyProduction"
);
</script>
<style scoped></style>

View File

@ -1,87 +1,58 @@
<template>
<layout-card>
<el-form
ref="formRef"
:model="form"
:rules="rules"
label-width="100px"
>
<el-form ref="formRef" :model="form" :rules="rules" label-width="100px">
<el-row>
<el-col :span="24">
<el-form-item label="经营企业" prop="MANAGING_ENTERPRISE">
<layout-department v-model="form.MANAGING_ENTERPRISE"
placeholder="请选择经营企业"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="人员名称" prop="PERSON_NAME">
<el-input v-model="form.PERSON_NAME"
placeholder="请输入人员名称"
/>
<el-input v-model="form.PERSON_NAME" placeholder="请输入人员名称" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="手套" prop="GLOVE">
<el-input v-model="form.GLOVE"
placeholder="请输入手套数量"
/>
<el-input v-model="form.GLOVE" placeholder="请输入手套数量" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="口罩" prop="MASK">
<el-input v-model="form.MASK"
placeholder="请输入口罩数量"
/>
<el-input v-model="form.MASK" placeholder="请输入口罩数量" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="工作服" prop="OVERALL">
<el-input v-model="form.OVERALL"
placeholder="请输入工作服数量"
/>
<el-input v-model="form.OVERALL" placeholder="请输入工作服数量" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="工作鞋" prop="FOOTWARE">
<el-input v-model="form.FOOTWARE"
placeholder="请输入工作鞋数量"
/>
<el-input v-model="form.FOOTWARE" placeholder="请输入工作鞋数量" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="防寒服" prop="WINTER_COAT">
<el-input v-model="form.WINTER_COAT"
placeholder="请输入防寒服数量"
<el-input
v-model="form.WINTER_COAT"
placeholder="请输入防寒服数量"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="雨衣" prop="RAINCOAT">
<el-input v-model="form.RAINCOAT"
placeholder="请输入雨衣数量"
/>
<el-input v-model="form.RAINCOAT" placeholder="请输入雨衣数量" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="护目镜" prop="GOGGLES">
<el-input v-model="form.GOGGLES"
placeholder="请输入护目镜数量"
/>
<el-input v-model="form.GOGGLES" placeholder="请输入护目镜数量" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="急救药箱" prop="AID_KIT">
<el-input v-model="form.AID_KIT"
placeholder="请输入急救药箱数量"
/>
<el-input v-model="form.AID_KIT" placeholder="请输入急救药箱数量" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="安全帽" prop="HELMET">
<el-input v-model="form.HELMET"
placeholder="请输入安全帽数量"
/>
<el-input v-model="form.HELMET" placeholder="请输入安全帽数量" />
</el-form-item>
</el-col>
<el-col :span="24">
@ -106,20 +77,48 @@
import { ref } from "vue";
import {
setEntrenchThingGrantEdit,
setEntrenchThingGrantAdd
setEntrenchThingGrantAdd,
} from "@/request/entrench_thing_grant.js";
import { debounce } from "throttle-debounce";
import useFormValidate from "@/assets/js/useFormValidate.js";
import { useRoute, useRouter } from "vue-router";
import { ElMessage } from "element-plus";
import LayoutDepartment from "@/components/department/index.vue";
const route = useRoute();
const router = useRouter();
const PROTECTIVEEQUIPMENT_ID = route.query.PROTECTIVEEQUIPMENT_ID
const PROTECTIVEEQUIPMENT_ID = route.query.PROTECTIVEEQUIPMENT_ID;
const rules = {
MANAGING_ENTERPRISE: [{ required: true, message: "经营企业不能为空", trigger: "blur" }],
}
MANAGING_ENTERPRISE: [
{ required: true, message: "经营企业不能为空", trigger: "blur" },
],
GLOVE: [
{ pattern: /^([1-9][0-9]*)$/, message: "请输入整数", trigger: "blur" },
],
MASK: [
{ pattern: /^([1-9][0-9]*)$/, message: "请输入整数", trigger: "blur" },
],
OVERALL: [
{ pattern: /^([1-9][0-9]*)$/, message: "请输入整数", trigger: "blur" },
],
FOOTWARE: [
{ pattern: /^([1-9][0-9]*)$/, message: "请输入整数", trigger: "blur" },
],
WINTER_COAT: [
{ pattern: /^([1-9][0-9]*)$/, message: "请输入整数", trigger: "blur" },
],
RAINCOAT: [
{ pattern: /^([1-9][0-9]*)$/, message: "请输入整数", trigger: "blur" },
],
GOGGLES: [
{ pattern: /^([1-9][0-9]*)$/, message: "请输入整数", trigger: "blur" },
],
AID_KIT: [
{ pattern: /^([1-9][0-9]*)$/, message: "请输入整数", trigger: "blur" },
],
HELMET: [
{ pattern: /^([1-9][0-9]*)$/, message: "请输入整数", trigger: "blur" },
],
};
const formRef = ref(null);
const form = ref({
@ -137,7 +136,7 @@ const form = ref({
AID_KIT: "",
HELMET: "",
SUPPLIES: "",
MANAGING_TYPE: ""
MANAGING_TYPE: "",
});
const fnGetData = async () => {
if (!PROTECTIVEEQUIPMENT_ID) return;
@ -149,7 +148,7 @@ const fnSubmit = debounce(
1000,
async () => {
await useFormValidate(formRef);
await setEntrenchThingGrantAdd({ ...form.value })
await setEntrenchThingGrantAdd({ ...form.value });
ElMessage.success("提交成功");
router.back();
},

View File

@ -1,80 +1,58 @@
<template>
<layout-card>
<el-form
ref="formRef"
:model="form"
:rules="rules"
label-width="100px"
>
<el-form ref="formRef" :model="form" :rules="rules" label-width="100px">
<el-row>
<el-col :span="24">
<el-form-item label="人员名称" prop="PERSON_NAME">
<el-input v-model="form.PERSON_NAME"
placeholder="请输入人员名称"
/>
<el-input v-model="form.PERSON_NAME" placeholder="请输入人员名称" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="手套" prop="GLOVE">
<el-input v-model="form.GLOVE"
placeholder="请输入手套数量"
/>
<el-input v-model="form.GLOVE" placeholder="请输入手套数量" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="口罩" prop="MASK">
<el-input v-model="form.MASK"
placeholder="请输入口罩数量"
/>
<el-input v-model="form.MASK" placeholder="请输入口罩数量" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="工作服" prop="OVERALL">
<el-input v-model="form.OVERALL"
placeholder="请输入工作服数量"
/>
<el-input v-model="form.OVERALL" placeholder="请输入工作服数量" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="工作鞋" prop="FOOTWARE">
<el-input v-model="form.FOOTWARE"
placeholder="请输入工作鞋数量"
/>
<el-input v-model="form.FOOTWARE" placeholder="请输入工作鞋数量" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="防寒服" prop="WINTER_COAT">
<el-input v-model="form.WINTER_COAT"
placeholder="请输入防寒服数量"
<el-input
v-model="form.WINTER_COAT"
placeholder="请输入防寒服数量"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="雨衣" prop="RAINCOAT">
<el-input v-model="form.RAINCOAT"
placeholder="请输入雨衣数量"
/>
<el-input v-model="form.RAINCOAT" placeholder="请输入雨衣数量" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="护目镜" prop="GOGGLES">
<el-input v-model="form.GOGGLES"
placeholder="请输入护目镜数量"
/>
<el-input v-model="form.GOGGLES" placeholder="请输入护目镜数量" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="急救药箱" prop="AID_KIT">
<el-input v-model="form.AID_KIT"
placeholder="请输入急救药箱数量"
/>
<el-input v-model="form.AID_KIT" placeholder="请输入急救药箱数量" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="安全帽" prop="HELMET">
<el-input v-model="form.HELMET"
placeholder="请输入安全帽数量"
/>
<el-input v-model="form.HELMET" placeholder="请输入安全帽数量" />
</el-form-item>
</el-col>
<el-col :span="24">
@ -99,7 +77,7 @@
import { ref } from "vue";
import {
getEntrenchThingGrantEdit,
setEntrenchThingGrantEdit
setEntrenchThingGrantEdit,
} from "@/request/entrench_thing_grant.js";
import { debounce } from "throttle-debounce";
import useFormValidate from "@/assets/js/useFormValidate.js";
@ -107,7 +85,40 @@ import { useRoute, useRouter } from "vue-router";
import { ElMessage } from "element-plus";
const route = useRoute();
const router = useRouter();
const PROTECTIVEEQUIPMENT_ID = route.query.PROTECTIVEEQUIPMENT_ID
const PROTECTIVEEQUIPMENT_ID = route.query.PROTECTIVEEQUIPMENT_ID;
const rules = {
MANAGING_ENTERPRISE: [
{ required: true, message: "经营企业不能为空", trigger: "blur" },
],
GLOVE: [
{ pattern: /^([1-9][0-9]*)$/, message: "请输入整数", trigger: "blur" },
],
MASK: [
{ pattern: /^([1-9][0-9]*)$/, message: "请输入整数", trigger: "blur" },
],
OVERALL: [
{ pattern: /^([1-9][0-9]*)$/, message: "请输入整数", trigger: "blur" },
],
FOOTWARE: [
{ pattern: /^([1-9][0-9]*)$/, message: "请输入整数", trigger: "blur" },
],
WINTER_COAT: [
{ pattern: /^([1-9][0-9]*)$/, message: "请输入整数", trigger: "blur" },
],
RAINCOAT: [
{ pattern: /^([1-9][0-9]*)$/, message: "请输入整数", trigger: "blur" },
],
GOGGLES: [
{ pattern: /^([1-9][0-9]*)$/, message: "请输入整数", trigger: "blur" },
],
AID_KIT: [
{ pattern: /^([1-9][0-9]*)$/, message: "请输入整数", trigger: "blur" },
],
HELMET: [
{ pattern: /^([1-9][0-9]*)$/, message: "请输入整数", trigger: "blur" },
],
};
const formRef = ref(null);
const form = ref({
@ -125,7 +136,7 @@ const form = ref({
AID_KIT: "",
HELMET: "",
SUPPLIES: "",
MANAGING_TYPE: ""
MANAGING_TYPE: "",
});
const fnGetData = async () => {
if (!PROTECTIVEEQUIPMENT_ID) return;
@ -137,7 +148,7 @@ const fnSubmit = debounce(
1000,
async () => {
await useFormValidate(formRef);
await getEntrenchThingGrantEdit({ ...form.value })
await getEntrenchThingGrantEdit({ ...form.value });
ElMessage.success("提交成功");
router.back();
},

View File

@ -9,8 +9,9 @@
<el-row>
<el-col :span="6">
<el-form-item label="人员名称" prop="PERSON_NAME">
<el-input v-model="searchForm.PERSON_NAME"
placeholder="请填写人员名称"
<el-input
v-model="searchForm.PERSON_NAME"
placeholder="请填写人员名称"
/>
</el-form-item>
</el-col>
@ -27,9 +28,9 @@
</el-card>
<layout-card>
<layout-table
v-model:pagination="pagination"
:data="list"
@get-data="fnGetData"
v-model:pagination="pagination"
>
<el-table-column label="序号" width="60">
<template #default="{ $index }">
@ -76,16 +77,18 @@
</template>
</el-table-column>
<template #button>
<el-button
v-if="buttonJurisdiction.add"
type="primary"
@click="
router.push({ path: '/production_course_regulate/entrench_thing_grant/add' })
<el-button
v-if="buttonJurisdiction.add"
type="primary"
@click="
router.push({
path: '/production_course_regulate/entrench_thing_grant/add',
})
"
>
新增
</el-button>
</template>
>
新增
</el-button>
</template>
</layout-table>
</layout-card>
<edit
@ -104,7 +107,7 @@ import { useRouter } from "vue-router";
import { reactive } from "vue";
import {
getEntrenchThingGrantList,
setEntrenchThingGrantDelete
setEntrenchThingGrantDelete,
} from "@/request/entrench_thing_grant.js";
import { debounce } from "throttle-debounce";
import { ElMessage, ElMessageBox } from "element-plus";
@ -123,14 +126,16 @@ const fnDelete = debounce(
1000,
async (PROTECTIVEEQUIPMENT_ID) => {
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
await setEntrenchThingGrantDelete({ PROTECTIVEEQUIPMENT_ID })
await setEntrenchThingGrantDelete({ PROTECTIVEEQUIPMENT_ID });
ElMessage.success("删除成功");
fnResetPagination();
},
{ atBegin: true }
);
const buttonJurisdiction = await useButtonJurisdiction("enterpriseSafetyProduction");
const buttonJurisdiction = await useButtonJurisdiction(
"enterpriseSafetyProduction"
);
</script>
<style scoped></style>

View File

@ -1,37 +1,28 @@
<template>
<layout-card>
<el-form
ref="formRef"
:model="form"
:rules="rules"
label-width="100px"
>
<el-form ref="formRef" :model="form" :rules="rules" label-width="100px">
<el-row>
<el-col :span="24">
<el-form-item label="经营企业" prop="MANAGING_ENTERPRISE">
<layout-department v-model="form.MANAGING_ENTERPRISE"
placeholder="请选择经营企业"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="设施编号" prop="FACILITY_NUMBER">
<el-input v-model="form.FACILITY_NUMBER"
placeholder="请输入设施编号"
<el-input
v-model="form.FACILITY_NUMBER"
placeholder="请输入设施编号"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="设施名称" prop="FACILITY_NAME">
<el-input v-model="form.FACILITY_NAME"
placeholder="请输入设施名称"
<el-input
v-model="form.FACILITY_NAME"
placeholder="请输入设施名称"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="设施单位" prop="FACILITY_UNIT">
<el-input v-model="form.FACILITY_UNIT"
placeholder="请输入设施单位"
<el-input
v-model="form.FACILITY_UNIT"
placeholder="请输入设施单位"
/>
</el-form-item>
</el-col>
@ -39,22 +30,25 @@
<el-row>
<el-col :span="24">
<el-form-item label="设施数量" prop="FACILITY_COUNT">
<el-input v-model="form.FACILITY_COUNT"
placeholder="请输入设施数量"
<el-input
v-model="form.FACILITY_COUNT"
placeholder="请输入设施数量"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="设施位置" prop="FACILITY_LOCALTION">
<el-input v-model="form.FACILITY_LOCALTION"
placeholder="请输入设施位置"
<el-input
v-model="form.FACILITY_LOCALTION"
placeholder="请输入设施位置"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="设施负责人" prop="FACILITY_PRINCIPAL">
<el-input v-model="form.FACILITY_PRINCIPAL"
placeholder="请输入设施负责人"
<el-input
v-model="form.FACILITY_PRINCIPAL"
placeholder="请输入设施负责人"
/>
</el-form-item>
</el-col>
@ -83,16 +77,16 @@
</el-form-item>
</el-col>
</el-row>
<el-col :span="24">
<el-form-item label="备注" prop="REMARK">
<el-input
v-model="form.REMARK"
placeholder="请填写备注"
type="textarea"
:autosize="{ minRows: 3 }"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="备注" prop="REMARK">
<el-input
v-model="form.REMARK"
placeholder="请填写备注"
type="textarea"
:autosize="{ minRows: 3 }"
/>
</el-form-item>
</el-col>
</el-form>
<div class="tc mt-10">
<el-button type="primary" @click="fnSubmit"></el-button>
@ -105,7 +99,7 @@ import { ref } from "vue";
import {
setFirefightingEquipmentFacilityEdit,
setFirefightingEquipmentFacilityAdd,
getFirefightingEquipmentFacilityView
getFirefightingEquipmentFacilityView,
} from "@/request/firefighting_equipment_facility.js";
import { debounce } from "throttle-debounce";
import useFormValidate from "@/assets/js/useFormValidate.js";
@ -114,20 +108,36 @@ import { ElMessage } from "element-plus";
import LayoutUpload from "@/components/upload/index.vue";
import { setUploadImg } from "@/request/api.js";
import { addingPrefixToFile } from "@/assets/js/utils.js";
import LayoutDepartment from "@/components/department/index.vue";
const route = useRoute();
const router = useRouter();
const FIREFIGHTINGFACILITY_ID = route.query.FIREFIGHTINGFACILITY_ID
const FIREFIGHTINGFACILITY_ID = route.query.FIREFIGHTINGFACILITY_ID;
const rules = {
MANAGING_ENTERPRISE: [{ required: true, message: "经营企业不能为空", trigger: "blur" }],
FACILITY_NUMBER: [{ required: true, message: "设施编号不能为空", trigger: "blur" }],
FACILITY_NAME: [{ required: true, message: "设施名称不能为空", trigger: "blur" }],
FACILITY_UNIT: [{ required: true, message: "设施单位不能为空", trigger: "blur" }],
FACILITY_COUNT: [{ required: true, message: "设施数量不能为空", trigger: "blur" }],
FACILITY_LOCALTION: [{ required: true, message: "设施位置不能为空", trigger: "blur" }],
FACILITY_PRINCIPAL: [{ required: true, message: "设施负责人不能为空", trigger: "blur" }],
REGISTRATION_TIME: [{ required: true, message: "登记时间不能为空", trigger: "change" }],
MANAGING_ENTERPRISE: [
{ required: true, message: "经营企业不能为空", trigger: "blur" },
],
FACILITY_NUMBER: [
{ required: true, message: "设施编号不能为空", trigger: "blur" },
],
FACILITY_NAME: [
{ required: true, message: "设施名称不能为空", trigger: "blur" },
],
FACILITY_UNIT: [
{ required: true, message: "设施单位不能为空", trigger: "blur" },
],
FACILITY_COUNT: [
{ required: true, message: "设施数量不能为空", trigger: "blur" },
{ pattern: /^([1-9][0-9]*)$/, message: "请输入整数", trigger: "blur" },
],
FACILITY_LOCALTION: [
{ required: true, message: "设施位置不能为空", trigger: "blur" },
],
FACILITY_PRINCIPAL: [
{ required: true, message: "设施负责人不能为空", trigger: "blur" },
],
REGISTRATION_TIME: [
{ required: true, message: "登记时间不能为空", trigger: "change" },
],
};
const formRef = ref(null);
const form = ref({
@ -147,7 +157,9 @@ const form = ref({
});
const fnGetData = async () => {
if (!FIREFIGHTINGFACILITY_ID) return;
const resData = await getFirefightingEquipmentFacilityView({ FIREFIGHTINGFACILITY_ID });
const resData = await getFirefightingEquipmentFacilityView({
FIREFIGHTINGFACILITY_ID,
});
form.value = resData.pd;
form.value.EQUIPMENT_FACILITY = addingPrefixToFile(
resData.firefightingequipmentImg
@ -160,12 +172,19 @@ const fnSubmit = debounce(
await useFormValidate(formRef);
const resData = !FIREFIGHTINGFACILITY_ID
? await setFirefightingEquipmentFacilityAdd({ ...form.value })
: await setFirefightingEquipmentFacilityEdit({ ...form.value ,FIREFIGHTINGFACILITY_ID:FIREFIGHTINGFACILITY_ID});
const currentEquipmentFacilityId = resData.pd.FIREFIGHTINGFACILITY_ID
: await setFirefightingEquipmentFacilityEdit({
...form.value,
FIREFIGHTINGFACILITY_ID,
});
const currentEquipmentFacilityId = resData.pd.FIREFIGHTINGFACILITY_ID;
for (let i = 0; i < form.value.EQUIPMENT_FACILITY.length; i++) {
if (form.value.EQUIPMENT_FACILITY[i].raw)
await fnUploadImage(currentEquipmentFacilityId, form.value.EQUIPMENT_FACILITY[i].raw, 120);
await fnUploadImage(
currentEquipmentFacilityId,
form.value.EQUIPMENT_FACILITY[i].raw,
120
);
}
ElMessage.success("提交成功");
router.back();

View File

@ -1,43 +1,56 @@
<template>
<layout-card>
<el-divider content-position="left">修改</el-divider>
<el-form
ref="formRef"
:model="form"
:rules="rules"
label-width="100px"
>
<el-form ref="formRef" :model="form" :rules="rules" label-width="100px">
<el-row>
<el-col :span="6">
<el-form-item label="设施编号" prop="FACILITY_NUMBER">
<el-input v-model="form.FACILITY_NUMBER" placeholder="请输入设施编号" />
<el-input
v-model="form.FACILITY_NUMBER"
placeholder="请输入设施编号"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="设施名称" prop="FACILITY_NAME">
<el-input v-model="form.FACILITY_NAME" placeholder="请输入设施名称"/>
<el-input
v-model="form.FACILITY_NAME"
placeholder="请输入设施名称"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="设施单位" prop="FACILITY_UNIT">
<el-input v-model="form.FACILITY_UNIT" placeholder="请输入设施单位"/>
<el-input
v-model="form.FACILITY_UNIT"
placeholder="请输入设施单位"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="设施数量" prop="FACILITY_COUNT">
<el-input v-model="form.FACILITY_COUNT" placeholder="请输入设施数量"/>
<el-input
v-model="form.FACILITY_COUNT"
placeholder="请输入设施数量"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="设施位置" prop="FACILITY_LOCALTION">
<el-input v-model="form.FACILITY_LOCALTION" placeholder="请输入设施位置"/>
<el-input
v-model="form.FACILITY_LOCALTION"
placeholder="请输入设施位置"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="设施负责人" prop="FACILITY_PRINCIPAL">
<el-input v-model="form.FACILITY_PRINCIPAL" placeholder="请输入设施负责人"/>
<el-input
v-model="form.FACILITY_PRINCIPAL"
placeholder="请输入设施负责人"
/>
</el-form-item>
</el-col>
</el-row>
@ -90,11 +103,11 @@ import useFormValidate from "@/assets/js/useFormValidate.js";
import {
getFirefightingEquipmentFacilityView,
getFirefightingEquipmentFacilityEdit,
setFirefightingEquipmentFacilityAdd
setFirefightingEquipmentFacilityAdd,
} from "@/request/firefighting_equipment_facility.js";
import { ElMessage } from "element-plus";
import { useRoute, useRouter } from "vue-router";
import LayoutUpload from "@/components/upload/index.vue"
import LayoutUpload from "@/components/upload/index.vue";
import { addingPrefixToFile } from "@/assets/js/utils.js";
import { setUploadImg } from "@/request/api.js";
@ -102,13 +115,28 @@ const route = useRoute();
const router = useRouter();
const { FIREFIGHTINGFACILITY_ID } = route.query;
const rules = {
FACILITY_NUMBER: [{ required: true, message: "设施编号不能为空", trigger: "blur" }],
FACILITY_NAME: [{ required: true, message: "设施名称不能为空", trigger: "blur" }],
FACILITY_UNIT: [{ required: true, message: "设施单位不能为空", trigger: "blur" }],
FACILITY_COUNT: [{ required: true, message: "设施数量不能为空", trigger: "blur" }],
FACILITY_LOCALTION: [{ required: true, message: "设施位置不能为空", trigger: "blur" }],
FACILITY_PRINCIPAL: [{ required: true, message: "设施负责人不能为空", trigger: "blur" }],
REGISTRATION_TIME: [{ required: true, message: "登记时间不能为空", trigger: "change" }],
FACILITY_NUMBER: [
{ required: true, message: "设施编号不能为空", trigger: "blur" },
],
FACILITY_NAME: [
{ required: true, message: "设施名称不能为空", trigger: "blur" },
],
FACILITY_UNIT: [
{ required: true, message: "设施单位不能为空", trigger: "blur" },
],
FACILITY_COUNT: [
{ required: true, message: "设施数量不能为空", trigger: "blur" },
{ pattern: /^([1-9][0-9]*)$/, message: "请输入整数", trigger: "blur" },
],
FACILITY_LOCALTION: [
{ required: true, message: "设施位置不能为空", trigger: "blur" },
],
FACILITY_PRINCIPAL: [
{ required: true, message: "设施负责人不能为空", trigger: "blur" },
],
REGISTRATION_TIME: [
{ required: true, message: "登记时间不能为空", trigger: "change" },
],
};
const formRef = ref(null);
const form = ref({
@ -128,14 +156,16 @@ const form = ref({
});
const fnGetData = async () => {
if(FIREFIGHTINGFACILITY_ID) {
const resData = await getFirefightingEquipmentFacilityView({ FIREFIGHTINGFACILITY_ID });
if (FIREFIGHTINGFACILITY_ID) {
const resData = await getFirefightingEquipmentFacilityView({
FIREFIGHTINGFACILITY_ID,
});
form.value = resData.pd;
form.value.EQUIPMENT_FACILITY = addingPrefixToFile(
resData.firefightingequipmentImg
)
);
}
}
};
fnGetData();
const fnSubmit = debounce(
1000,
@ -143,12 +173,19 @@ const fnSubmit = debounce(
await useFormValidate(formRef);
const resData = !FIREFIGHTINGFACILITY_ID
? await setFirefightingEquipmentFacilityAdd({ ...form.value })
: await getFirefightingEquipmentFacilityEdit({ ...form.value ,FIREFIGHTINGFACILITY_ID:FIREFIGHTINGFACILITY_ID});
const currentEquipmentFacilityId = resData.pd.FIREFIGHTINGFACILITY_ID
: await getFirefightingEquipmentFacilityEdit({
...form.value,
FIREFIGHTINGFACILITY_ID,
});
const currentEquipmentFacilityId = resData.pd.FIREFIGHTINGFACILITY_ID;
for (let i = 0; i < form.value.EQUIPMENT_FACILITY.length; i++) {
if (form.value.EQUIPMENT_FACILITY[i].raw)
await fnUploadImage(currentEquipmentFacilityId, form.value.EQUIPMENT_FACILITY[i].raw, 120);
await fnUploadImage(
currentEquipmentFacilityId,
form.value.EQUIPMENT_FACILITY[i].raw,
120
);
}
ElMessage.success("提交成功");
router.back();

View File

@ -23,7 +23,7 @@
</el-descriptions>
<el-divider content-position="left">保养记录</el-divider>
<layout-table :data="list" :show-pagination="false">
<el-table-column type="index" label="序号" align="center" />
<el-table-column type="index" label="序号" align="center" />
<el-table-column prop="MAINTAIN_DATE" label="保养时间" />
<el-table-column prop="MAINTAIN_CONDITION" label="保养情况" />
<el-table-column prop="MAINTAIN_PERSON" label="保养人" />
@ -35,11 +35,11 @@
text
link
@click="
router.push({
path: '/production_course_regulate/firefighting_equipment_facility/firefightingmaintainedit',
query: { FIREFIGHTINGMAINTAIN_ID: row.FIREFIGHTINGMAINTAIN_ID },
})
"
router.push({
path: '/production_course_regulate/firefighting_equipment_facility/firefightingmaintainedit',
query: { FIREFIGHTINGMAINTAIN_ID: row.FIREFIGHTINGMAINTAIN_ID },
})
"
>
修改
</el-button>
@ -59,11 +59,11 @@
v-if="buttonJurisdiction.add"
type="primary"
@click="
router.push({
router.push({
path: '/production_course_regulate/firefighting_equipment_facility/firefightingmaintainadd',
query: {FIREFIGHTINGFACILITY_ID}
})
"
query: { FIREFIGHTINGFACILITY_ID },
})
"
>
新增
</el-button>
@ -76,7 +76,7 @@
import {
getFirefightingEquipmentFacilityView,
getMaintainFindFirefightingId,
setFirefightingMaintainDelete
setFirefightingMaintainDelete,
} from "@/request/firefighting_equipment_facility.js";
import { useRoute, useRouter } from "vue-router";
import { ref } from "vue";
@ -89,12 +89,14 @@ const router = useRouter();
const { FIREFIGHTINGFACILITY_ID } = route.query;
const data = ref({});
const getData = async () => {
const { pd } = await getFirefightingEquipmentFacilityView({ FIREFIGHTINGFACILITY_ID });
const { pd } = await getFirefightingEquipmentFacilityView({
FIREFIGHTINGFACILITY_ID,
});
data.value = pd;
};
getData();
const { list } = useListData(getMaintainFindFirefightingId, {
otherParams: { FIREFIGHTINGFACILITY_ID: FIREFIGHTINGFACILITY_ID },
otherParams: { FIREFIGHTINGFACILITY_ID },
usePagination: false,
});
@ -102,7 +104,7 @@ const fnDelete = debounce(
1000,
async (FIREFIGHTINGMAINTAIN_ID) => {
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
await setFirefightingMaintainDelete({ FIREFIGHTINGMAINTAIN_ID })
await setFirefightingMaintainDelete({ FIREFIGHTINGMAINTAIN_ID });
ElMessage.success("删除成功");
},
{ atBegin: true }

View File

@ -1,11 +1,6 @@
<template>
<layout-card>
<el-form
ref="formRef"
:model="form"
:rules="rules"
label-width="100px"
>
<el-form ref="formRef" :model="form" :rules="rules" label-width="100px">
<el-row>
<el-col :span="6">
<el-form-item label="保养时间" prop="MAINTAIN_DATE">
@ -20,15 +15,17 @@
</el-col>
<el-col :span="6">
<el-form-item label="保养情况" prop="MAINTAIN_CONDITION">
<el-input v-model="form.MAINTAIN_CONDITION"
placeholder="请输入保养情况"
<el-input
v-model="form.MAINTAIN_CONDITION"
placeholder="请输入保养情况"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="保养人" prop="MAINTAIN_PERSON">
<el-input v-model="form.MAINTAIN_PERSON"
placeholder="请输入保养人"
<el-input
v-model="form.MAINTAIN_PERSON"
placeholder="请输入保养人"
/>
</el-form-item>
</el-col>
@ -44,16 +41,16 @@
</el-form-item>
</el-col>
</el-row>
<el-col :span="24">
<el-form-item label="备注" prop="REMARK">
<el-input
v-model="form.REMARK"
placeholder="请填写备注"
type="textarea"
:autosize="{ minRows: 3 }"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="备注" prop="REMARK">
<el-input
v-model="form.REMARK"
placeholder="请填写备注"
type="textarea"
:autosize="{ minRows: 3 }"
/>
</el-form-item>
</el-col>
</el-form>
<div class="tc mt-10">
<el-button type="primary" @click="fnSubmit"></el-button>
@ -66,7 +63,7 @@ import { ref } from "vue";
import {
setMaintainEdit,
setMaintainAdd,
getFirefightingEquipmentFacilityView
getFirefightingEquipmentFacilityView,
} from "@/request/firefighting_equipment_facility.js";
import { debounce } from "throttle-debounce";
import useFormValidate from "@/assets/js/useFormValidate.js";
@ -81,9 +78,15 @@ const router = useRouter();
const { FIREFIGHTINGFACILITY_ID } = route.query;
const rules = {
MAINTAIN_DATE: [{ required: true, message: "保养时间不能为空", trigger: "blur" }],
MAINTAIN_CONDITION: [{ required: true, message: "保养情况不能为空", trigger: "blur" }],
MAINTAIN_PERSON: [{ required: true, message: "保养人不能为空", trigger: "blur" }],
MAINTAIN_DATE: [
{ required: true, message: "保养时间不能为空", trigger: "blur" },
],
MAINTAIN_CONDITION: [
{ required: true, message: "保养情况不能为空", trigger: "blur" },
],
MAINTAIN_PERSON: [
{ required: true, message: "保养人不能为空", trigger: "blur" },
],
};
const formRef = ref(null);
const form = ref({
@ -96,28 +99,35 @@ const form = ref({
MAINTAIN_IMG: [],
});
const FIREFIGHTINGMAINTAIN_ID = form.value.FIREFIGHTINGMAINTAIN_ID
const FIREFIGHTINGMAINTAIN_ID = form.value.FIREFIGHTINGMAINTAIN_ID;
const fnGetData = async () => {
if (!FIREFIGHTINGMAINTAIN_ID) return;
const resData = await getFirefightingEquipmentFacilityView({ FIREFIGHTINGMAINTAIN_ID });
const resData = await getFirefightingEquipmentFacilityView({
FIREFIGHTINGMAINTAIN_ID,
});
form.value = resData.pd;
form.value.MAINTAIN_IMG = addingPrefixToFile(
resData.firefightingmaintainImg
);
form.value.MAINTAIN_IMG = addingPrefixToFile(resData.firefightingmaintainImg);
};
fnGetData();
const fnSubmit = debounce(
1000,
async () => {
await useFormValidate(formRef);
form.value.FIREFIGHTINGFACILITY_ID = FIREFIGHTINGFACILITY_ID
form.value.FIREFIGHTINGFACILITY_ID = FIREFIGHTINGFACILITY_ID;
const resData = !FIREFIGHTINGMAINTAIN_ID
? await setMaintainAdd({ ...form.value })
: await setMaintainEdit({ ...form.value ,FIREFIGHTINGMAINTAIN_ID:FIREFIGHTINGMAINTAIN_ID});
const currentEquipmentFacilityId = resData.pd.FIREFIGHTINGMAINTAIN_ID
: await setMaintainEdit({
...form.value,
FIREFIGHTINGMAINTAIN_ID,
});
const currentEquipmentFacilityId = resData.pd.FIREFIGHTINGMAINTAIN_ID;
for (let i = 0; i < form.value.MAINTAIN_IMG.length; i++) {
if (form.value.MAINTAIN_IMG[i].raw)
await fnUploadImage(currentEquipmentFacilityId, form.value.MAINTAIN_IMG[i].raw, 120);
await fnUploadImage(
currentEquipmentFacilityId,
form.value.MAINTAIN_IMG[i].raw,
120
);
}
ElMessage.success("提交成功");
router.back();

View File

@ -1,12 +1,7 @@
<template>
<layout-card>
<el-divider content-position="left">修改</el-divider>
<el-form
ref="formRef"
:model="form"
:rules="rules"
label-width="100px"
>
<el-form ref="formRef" :model="form" :rules="rules" label-width="100px">
<el-row>
<el-col :span="24">
<el-form-item label="保养时间" prop="MAINTAIN_DATE">
@ -21,12 +16,18 @@
</el-col>
<el-col :span="24">
<el-form-item label="保养情况" prop="MAINTAIN_CONDITION">
<el-input v-model="form.MAINTAIN_CONDITION" placeholder="请输入保养情况"/>
<el-input
v-model="form.MAINTAIN_CONDITION"
placeholder="请输入保养情况"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="保养人" prop="MAINTAIN_PERSON">
<el-input v-model="form.MAINTAIN_PERSON" placeholder="请输入保养人"/>
<el-input
v-model="form.MAINTAIN_PERSON"
placeholder="请输入保养人"
/>
</el-form-item>
</el-col>
</el-row>
@ -68,11 +69,11 @@ import useFormValidate from "@/assets/js/useFormValidate.js";
import {
getMaintainView,
getMaintainEdit,
setMaintainAdd
setMaintainAdd,
} from "@/request/firefighting_equipment_facility.js";
import { ElMessage } from "element-plus";
import { useRoute, useRouter } from "vue-router";
import LayoutUpload from "@/components/upload/index.vue"
import LayoutUpload from "@/components/upload/index.vue";
import { addingPrefixToFile } from "@/assets/js/utils.js";
import { setUploadImg } from "@/request/api.js";
@ -80,13 +81,27 @@ const route = useRoute();
const router = useRouter();
const { FIREFIGHTINGMAINTAIN_ID } = route.query;
const rules = {
FACILITY_NUMBER: [{ required: true, message: "设施编号不能为空", trigger: "blur" }],
FACILITY_NAME: [{ required: true, message: "设施名称不能为空", trigger: "blur" }],
FACILITY_UNIT: [{ required: true, message: "设施单位不能为空", trigger: "blur" }],
FACILITY_COUNT: [{ required: true, message: "设施数量不能为空", trigger: "blur" }],
FACILITY_LOCALTION: [{ required: true, message: "设施位置不能为空", trigger: "blur" }],
FACILITY_PRINCIPAL: [{ required: true, message: "设施负责人不能为空", trigger: "blur" }],
REGISTRATION_TIME: [{ required: true, message: "登记时间不能为空", trigger: "change" }],
FACILITY_NUMBER: [
{ required: true, message: "设施编号不能为空", trigger: "blur" },
],
FACILITY_NAME: [
{ required: true, message: "设施名称不能为空", trigger: "blur" },
],
FACILITY_UNIT: [
{ required: true, message: "设施单位不能为空", trigger: "blur" },
],
FACILITY_COUNT: [
{ required: true, message: "设施数量不能为空", trigger: "blur" },
],
FACILITY_LOCALTION: [
{ required: true, message: "设施位置不能为空", trigger: "blur" },
],
FACILITY_PRINCIPAL: [
{ required: true, message: "设施负责人不能为空", trigger: "blur" },
],
REGISTRATION_TIME: [
{ required: true, message: "登记时间不能为空", trigger: "change" },
],
};
const formRef = ref(null);
const form = ref({
@ -100,14 +115,14 @@ const form = ref({
});
const fnGetData = async () => {
if(FIREFIGHTINGMAINTAIN_ID) {
if (FIREFIGHTINGMAINTAIN_ID) {
const resData = await getMaintainView({ FIREFIGHTINGMAINTAIN_ID });
form.value = resData.pd;
form.value.MAINTAIN_IMG = addingPrefixToFile(
resData.firefightingmaintainImg
)
);
}
}
};
fnGetData();
const fnSubmit = debounce(
1000,
@ -115,11 +130,18 @@ const fnSubmit = debounce(
await useFormValidate(formRef);
const resData = !FIREFIGHTINGMAINTAIN_ID
? await setMaintainAdd({ ...form.value })
: await getMaintainEdit({ ...form.value ,FIREFIGHTINGMAINTAIN_ID:FIREFIGHTINGMAINTAIN_ID});
const currentEquipmentFacilityId = resData.pd.FIREFIGHTINGMAINTAIN_ID
: await getMaintainEdit({
...form.value,
FIREFIGHTINGMAINTAIN_ID,
});
const currentEquipmentFacilityId = resData.pd.FIREFIGHTINGMAINTAIN_ID;
for (let i = 0; i < form.value.MAINTAIN_IMG.length; i++) {
if (form.value.MAINTAIN_IMG[i].raw)
await fnUploadImage(currentEquipmentFacilityId, form.value.MAINTAIN_IMG[i].raw, 120);
await fnUploadImage(
currentEquipmentFacilityId,
form.value.MAINTAIN_IMG[i].raw,
120
);
}
ElMessage.success("提交成功");
router.back();

View File

@ -9,22 +9,25 @@
<el-row>
<el-col :span="6">
<el-form-item label="设施名称" prop="FACILITY_NAME">
<el-input v-model="searchForm.FACILITY_NAME"
placeholder="请填设施名称"
<el-input
v-model="searchForm.FACILITY_NAME"
placeholder="请填设施名称"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="设施编号" prop="FACILITY_NUMBER">
<el-input v-model="searchForm.FACILITY_NUMBER"
placeholder="请填写设施编号"
<el-input
v-model="searchForm.FACILITY_NUMBER"
placeholder="请填写设施编号"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="设施位置" prop="FACILITY_LOCALTION">
<el-input v-model="searchForm.FACILITY_LOCALTION"
placeholder="请填写设施位置"
<el-input
v-model="searchForm.FACILITY_LOCALTION"
placeholder="请填写设施位置"
/>
</el-form-item>
</el-col>
@ -41,9 +44,9 @@
</el-card>
<layout-card>
<layout-table
v-model:pagination="pagination"
:data="list"
@get-data="fnGetData"
v-model:pagination="pagination"
>
<el-table-column label="序号" width="60">
<template #default="{ $index }">
@ -54,9 +57,21 @@
<el-table-column prop="FACILITY_NAME" label="设施名称" width="160" />
<el-table-column prop="FACILITY_UNIT" label="设施单位" width="140" />
<el-table-column prop="FACILITY_COUNT" label="设施数量" width="140" />
<el-table-column prop="FACILITY_LOCALTION" label="设施位置" width="130" />
<el-table-column prop="FACILITY_PRINCIPAL" label="设施负责人" width="150" />
<el-table-column prop="REGISTRATION_TIME" label="登记时间" width="160" />
<el-table-column
prop="FACILITY_LOCALTION"
label="设施位置"
width="130"
/>
<el-table-column
prop="FACILITY_PRINCIPAL"
label="设施负责人"
width="150"
/>
<el-table-column
prop="REGISTRATION_TIME"
label="登记时间"
width="160"
/>
<el-table-column prop="CREATTIME" label="创建时间" width="160" />
<el-table-column prop="OPERATTIME" label="修改时间" width="160" />
<el-table-column label="操作" width="180">
@ -68,7 +83,9 @@
@click="
router.push({
path: '/production_course_regulate/firefighting_equipment_facility/view',
query: { FIREFIGHTINGFACILITY_ID: row.FIREFIGHTINGFACILITY_ID },
query: {
FIREFIGHTINGFACILITY_ID: row.FIREFIGHTINGFACILITY_ID,
},
})
"
>
@ -81,7 +98,9 @@
@click="
router.push({
path: '/production_course_regulate/firefighting_equipment_facility/edit',
query: { FIREFIGHTINGFACILITY_ID: row.FIREFIGHTINGFACILITY_ID },
query: {
FIREFIGHTINGFACILITY_ID: row.FIREFIGHTINGFACILITY_ID,
},
})
"
>
@ -103,7 +122,9 @@
@click="
router.push({
path: '/production_course_regulate/firefighting_equipment_facility/firefightingmaintain',
query: { FIREFIGHTINGFACILITY_ID: row.FIREFIGHTINGFACILITY_ID },
query: {
FIREFIGHTINGFACILITY_ID: row.FIREFIGHTINGFACILITY_ID,
},
})
"
>
@ -112,16 +133,18 @@
</template>
</el-table-column>
<template #button>
<el-button
v-if="buttonJurisdiction.add"
type="primary"
@click="
router.push({ path: '/production_course_regulate/firefighting_equipment_facility/add' })
<el-button
v-if="buttonJurisdiction.add"
type="primary"
@click="
router.push({
path: '/production_course_regulate/firefighting_equipment_facility/add',
})
"
>
新增
</el-button>
</template>
>
新增
</el-button>
</template>
</layout-table>
</layout-card>
<edit
@ -140,7 +163,7 @@ import { useRouter } from "vue-router";
import { reactive } from "vue";
import {
getFirefightingEquipmentFacilityList,
setFirefightingEquipmentFacilityDelete
setFirefightingEquipmentFacilityDelete,
} from "@/request/firefighting_equipment_facility.js";
import { debounce } from "throttle-debounce";
import { ElMessage, ElMessageBox } from "element-plus";
@ -159,14 +182,16 @@ const fnDelete = debounce(
1000,
async (FIREFIGHTINGFACILITY_ID) => {
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
await setFirefightingEquipmentFacilityDelete({ FIREFIGHTINGFACILITY_ID })
await setFirefightingEquipmentFacilityDelete({ FIREFIGHTINGFACILITY_ID });
ElMessage.success("删除成功");
fnResetPagination()
fnResetPagination();
},
{ atBegin: true }
);
const buttonJurisdiction = await useButtonJurisdiction("firethingequipmentfacility");
const buttonJurisdiction = await useButtonJurisdiction(
"firethingequipmentfacility"
);
</script>
<style scoped></style>

View File

@ -1,5 +1,6 @@
<template>
<layout-card>
<div id="printContainer">
<el-divider content-position="left">基本信息</el-divider>
<el-descriptions border>
<el-descriptions-item label="设施编号">
@ -23,33 +24,41 @@
</el-descriptions>
<el-divider content-position="left">保养记录</el-divider>
<layout-table :data="list" :show-pagination="false">
<el-table-column type="index" label="序号" align="center" />
<el-table-column type="index" label="序号" align="center" />
<el-table-column prop="MAINTAIN_DATE" label="保养时间" />
<el-table-column prop="MAINTAIN_CONDITION" label="保养情况" />
<el-table-column prop="MAINTAIN_PERSON" label="保养人" />
<el-table-column prop="REMARK" label="备注" />
</layout-table>
</div>
<div class="mt-10 tc">
<el-button v-print="'#printContainer'" type="primary"></el-button>
</div>
<div v-html="PRINT_STYLE" />
</layout-card>
</template>
<script setup>
import {
getFirefightingEquipmentFacilityView,
getMaintainFindFirefightingId
getMaintainFindFirefightingId,
} from "@/request/firefighting_equipment_facility.js";
import { useRoute } from "vue-router";
import { ref } from "vue";
import useListData from "@/assets/js/useListData.js";
import { PRINT_STYLE } from "@/assets/js/constant.js";
const route = useRoute();
const { FIREFIGHTINGFACILITY_ID } = route.query;
const data = ref({});
const getData = async () => {
const { pd } = await getFirefightingEquipmentFacilityView({ FIREFIGHTINGFACILITY_ID });
const { pd } = await getFirefightingEquipmentFacilityView({
FIREFIGHTINGFACILITY_ID,
});
data.value = pd;
};
getData();
const { list } = useListData(getMaintainFindFirefightingId, {
otherParams: { FIREFIGHTINGFACILITY_ID: FIREFIGHTINGFACILITY_ID },
otherParams: { FIREFIGHTINGFACILITY_ID },
usePagination: false,
});
</script>

View File

@ -1,37 +1,28 @@
<template>
<layout-card>
<el-form
ref="formRef"
:model="form"
:rules="rules"
label-width="100px"
>
<el-form ref="formRef" :model="form" :rules="rules" label-width="100px">
<el-row>
<el-col :span="24">
<el-form-item label="经营企业" prop="CONDUCT_ENTERPRISE">
<layout-department v-model="form.CONDUCT_ENTERPRISE"
placeholder="请选择经营企业"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="设施编号" prop="FACILITY_NUMBER">
<el-input v-model="form.FACILITY_NUMBER"
placeholder="请输入设施编号"
<el-input
v-model="form.FACILITY_NUMBER"
placeholder="请输入设施编号"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="设施名称" prop="FACILITY_NAME">
<el-input v-model="form.FACILITY_NAME"
placeholder="请输入设施名称"
<el-input
v-model="form.FACILITY_NAME"
placeholder="请输入设施名称"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="设施单位" prop="FACILITY_UNIT">
<el-input v-model="form.FACILITY_UNIT"
placeholder="请输入设施单位"
<el-input
v-model="form.FACILITY_UNIT"
placeholder="请输入设施单位"
/>
</el-form-item>
</el-col>
@ -39,22 +30,25 @@
<el-row>
<el-col :span="24">
<el-form-item label="设施数量" prop="FACILITY_COUNT">
<el-input v-model="form.FACILITY_COUNT"
placeholder="请输入设施数量"
<el-input
v-model="form.FACILITY_COUNT"
placeholder="请输入设施数量"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="设施位置" prop="FACILITY_LOCALTION">
<el-input v-model="form.FACILITY_LOCALTION"
placeholder="请输入设施位置"
<el-input
v-model="form.FACILITY_LOCALTION"
placeholder="请输入设施位置"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="设施负责人" prop="FACILITY_PRINCIPAL">
<el-input v-model="form.FACILITY_PRINCIPAL"
placeholder="请输入设施负责人"
<el-input
v-model="form.FACILITY_PRINCIPAL"
placeholder="请输入设施负责人"
/>
</el-form-item>
</el-col>
@ -83,16 +77,16 @@
</el-form-item>
</el-col>
</el-row>
<el-col :span="24">
<el-form-item label="备注" prop="FACILITY_REMARK">
<el-input
v-model="form.FACILITY_REMARK"
placeholder="请填写备注"
type="textarea"
:autosize="{ minRows: 3 }"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="备注" prop="FACILITY_REMARK">
<el-input
v-model="form.FACILITY_REMARK"
placeholder="请填写备注"
type="textarea"
:autosize="{ minRows: 3 }"
/>
</el-form-item>
</el-col>
</el-form>
<div class="tc mt-10">
<el-button type="primary" @click="fnSubmit"></el-button>
@ -105,7 +99,7 @@ import { ref } from "vue";
import {
setProductionEquipmentFacilityEdit,
setProductionEquipmentFacilityAdd,
getProductionEquipmentFacilityView
getProductionEquipmentFacilityView,
} from "@/request/production_equipment_facility.js";
import { debounce } from "throttle-debounce";
import useFormValidate from "@/assets/js/useFormValidate.js";
@ -114,20 +108,36 @@ import { ElMessage } from "element-plus";
import LayoutUpload from "@/components/upload/index.vue";
import { setUploadImg } from "@/request/api.js";
import { addingPrefixToFile } from "@/assets/js/utils.js";
import LayoutDepartment from "@/components/department/index.vue";
const route = useRoute();
const router = useRouter();
const PRODUCTIONFACILITY_ID = route.query.PRODUCTIONFACILITY_ID
const PRODUCTIONFACILITY_ID = route.query.PRODUCTIONFACILITY_ID;
const rules = {
CONDUCT_ENTERPRISE: [{ required: true, message: "经营企业不能为空", trigger: "blur" }],
FACILITY_NUMBER: [{ required: true, message: "设施编号不能为空", trigger: "blur" }],
FACILITY_NAME: [{ required: true, message: "设施名称不能为空", trigger: "blur" }],
FACILITY_UNIT: [{ required: true, message: "设施单位不能为空", trigger: "blur" }],
FACILITY_COUNT: [{ required: true, message: "设施数量不能为空", trigger: "blur" }],
FACILITY_LOCALTION: [{ required: true, message: "设施位置不能为空", trigger: "blur" }],
FACILITY_PRINCIPAL: [{ required: true, message: "设施负责人不能为空", trigger: "blur" }],
REGISTRATION_TIME: [{ required: true, message: "登记时间不能为空", trigger: "change" }],
CONDUCT_ENTERPRISE: [
{ required: true, message: "经营企业不能为空", trigger: "blur" },
],
FACILITY_NUMBER: [
{ required: true, message: "设施编号不能为空", trigger: "blur" },
],
FACILITY_NAME: [
{ required: true, message: "设施名称不能为空", trigger: "blur" },
],
FACILITY_UNIT: [
{ required: true, message: "设施单位不能为空", trigger: "blur" },
],
FACILITY_COUNT: [
{ required: true, message: "设施数量不能为空", trigger: "blur" },
{ pattern: /^([1-9][0-9]*)$/, message: "请输入整数", trigger: "blur" },
],
FACILITY_LOCALTION: [
{ required: true, message: "设施位置不能为空", trigger: "blur" },
],
FACILITY_PRINCIPAL: [
{ required: true, message: "设施负责人不能为空", trigger: "blur" },
],
REGISTRATION_TIME: [
{ required: true, message: "登记时间不能为空", trigger: "change" },
],
};
const formRef = ref(null);
const form = ref({
@ -147,11 +157,11 @@ const form = ref({
});
const fnGetData = async () => {
if (!PRODUCTIONFACILITY_ID) return;
const resData = await getProductionEquipmentFacilityView({ PRODUCTIONFACILITY_ID });
const resData = await getProductionEquipmentFacilityView({
PRODUCTIONFACILITY_ID,
});
form.value = resData.pd;
form.value.EQUIPMENT_FACILITY = addingPrefixToFile(
resData.equipmentFacility
);
form.value.EQUIPMENT_FACILITY = addingPrefixToFile(resData.equipmentFacility);
};
fnGetData();
const fnSubmit = debounce(
@ -160,11 +170,18 @@ const fnSubmit = debounce(
await useFormValidate(formRef);
const resData = !PRODUCTIONFACILITY_ID
? await setProductionEquipmentFacilityAdd({ ...form.value })
: await setProductionEquipmentFacilityEdit({ ...form.value ,PRODUCTIONFACILITY_ID:PRODUCTIONFACILITY_ID});
const currentEquipmentFacilityId = resData.pd.PRODUCTIONFACILITY_ID
: await setProductionEquipmentFacilityEdit({
...form.value,
PRODUCTIONFACILITY_ID,
});
const currentEquipmentFacilityId = resData.pd.PRODUCTIONFACILITY_ID;
for (let i = 0; i < form.value.EQUIPMENT_FACILITY.length; i++) {
if (form.value.EQUIPMENT_FACILITY[i].raw)
await fnUploadImage(currentEquipmentFacilityId, form.value.EQUIPMENT_FACILITY[i].raw, 150);
await fnUploadImage(
currentEquipmentFacilityId,
form.value.EQUIPMENT_FACILITY[i].raw,
150
);
}
ElMessage.success("提交成功");
router.back();

View File

@ -1,43 +1,56 @@
<template>
<layout-card>
<el-divider content-position="left">修改</el-divider>
<el-form
ref="formRef"
:model="form"
:rules="rules"
label-width="100px"
>
<el-form ref="formRef" :model="form" :rules="rules" label-width="100px">
<el-row>
<el-col :span="6">
<el-form-item label="设施编号" prop="FACILITY_NUMBER">
<el-input v-model="form.FACILITY_NUMBER" placeholder="请输入设施编号" />
<el-input
v-model="form.FACILITY_NUMBER"
placeholder="请输入设施编号"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="设施名称" prop="FACILITY_NAME">
<el-input v-model="form.FACILITY_NAME" placeholder="请输入设施名称"/>
<el-input
v-model="form.FACILITY_NAME"
placeholder="请输入设施名称"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="设施单位" prop="FACILITY_UNIT">
<el-input v-model="form.FACILITY_UNIT" placeholder="请输入设施单位"/>
<el-input
v-model="form.FACILITY_UNIT"
placeholder="请输入设施单位"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="设施数量" prop="FACILITY_COUNT">
<el-input v-model="form.FACILITY_COUNT" placeholder="请输入设施数量"/>
<el-input
v-model="form.FACILITY_COUNT"
placeholder="请输入设施数量"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="设施位置" prop="FACILITY_LOCALTION">
<el-input v-model="form.FACILITY_LOCALTION" placeholder="请输入设施位置"/>
<el-input
v-model="form.FACILITY_LOCALTION"
placeholder="请输入设施位置"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="设施负责人" prop="FACILITY_PRINCIPAL">
<el-input v-model="form.FACILITY_PRINCIPAL" placeholder="请输入设施负责人"/>
<el-input
v-model="form.FACILITY_PRINCIPAL"
placeholder="请输入设施负责人"
/>
</el-form-item>
</el-col>
</el-row>
@ -89,11 +102,12 @@ import { debounce } from "throttle-debounce";
import useFormValidate from "@/assets/js/useFormValidate.js";
import {
getProductionEquipmentFacilityView,
getProductionEquipmentFacilityEdit, setProductionEquipmentFacilityAdd
getProductionEquipmentFacilityEdit,
setProductionEquipmentFacilityAdd,
} from "@/request/production_equipment_facility.js";
import { ElMessage } from "element-plus";
import { useRoute, useRouter } from "vue-router";
import LayoutUpload from "@/components/upload/index.vue"
import LayoutUpload from "@/components/upload/index.vue";
import { addingPrefixToFile } from "@/assets/js/utils.js";
import { setUploadImg } from "@/request/api.js";
@ -101,13 +115,28 @@ const route = useRoute();
const router = useRouter();
const { PRODUCTIONFACILITY_ID } = route.query;
const rules = {
FACILITY_NUMBER: [{ required: true, message: "设施编号不能为空", trigger: "blur" }],
FACILITY_NAME: [{ required: true, message: "设施名称不能为空", trigger: "blur" }],
FACILITY_UNIT: [{ required: true, message: "设施单位不能为空", trigger: "blur" }],
FACILITY_COUNT: [{ required: true, message: "设施数量不能为空", trigger: "blur" }],
FACILITY_LOCALTION: [{ required: true, message: "设施位置不能为空", trigger: "blur" }],
FACILITY_PRINCIPAL: [{ required: true, message: "设施负责人不能为空", trigger: "blur" }],
REGISTRATION_TIME: [{ required: true, message: "登记时间不能为空", trigger: "change" }],
FACILITY_NUMBER: [
{ required: true, message: "设施编号不能为空", trigger: "blur" },
],
FACILITY_NAME: [
{ required: true, message: "设施名称不能为空", trigger: "blur" },
],
FACILITY_UNIT: [
{ required: true, message: "设施单位不能为空", trigger: "blur" },
],
FACILITY_COUNT: [
{ required: true, message: "设施数量不能为空", trigger: "blur" },
{ pattern: /^([1-9][0-9]*)$/, message: "请输入整数", trigger: "blur" },
],
FACILITY_LOCALTION: [
{ required: true, message: "设施位置不能为空", trigger: "blur" },
],
FACILITY_PRINCIPAL: [
{ required: true, message: "设施负责人不能为空", trigger: "blur" },
],
REGISTRATION_TIME: [
{ required: true, message: "登记时间不能为空", trigger: "change" },
],
};
const formRef = ref(null);
const form = ref({
@ -127,14 +156,16 @@ const form = ref({
});
const fnGetData = async () => {
if(PRODUCTIONFACILITY_ID) {
const resData = await getProductionEquipmentFacilityView({ PRODUCTIONFACILITY_ID });
if (PRODUCTIONFACILITY_ID) {
const resData = await getProductionEquipmentFacilityView({
PRODUCTIONFACILITY_ID,
});
form.value = resData.pd;
form.value.EQUIPMENT_FACILITY = addingPrefixToFile(
resData.equipmentFacility
)
);
}
}
};
fnGetData();
const fnSubmit = debounce(
1000,
@ -142,11 +173,18 @@ const fnSubmit = debounce(
await useFormValidate(formRef);
const resData = !PRODUCTIONFACILITY_ID
? await setProductionEquipmentFacilityAdd({ ...form.value })
: await getProductionEquipmentFacilityEdit({ ...form.value ,PRODUCTIONFACILITY_ID:PRODUCTIONFACILITY_ID});
const currentEquipmentFacilityId = resData.pd.PRODUCTIONFACILITY_ID
: await getProductionEquipmentFacilityEdit({
...form.value,
PRODUCTIONFACILITY_ID,
});
const currentEquipmentFacilityId = resData.pd.PRODUCTIONFACILITY_ID;
for (let i = 0; i < form.value.EQUIPMENT_FACILITY.length; i++) {
if (form.value.EQUIPMENT_FACILITY[i].raw)
await fnUploadImage(currentEquipmentFacilityId, form.value.EQUIPMENT_FACILITY[i].raw, 150);
await fnUploadImage(
currentEquipmentFacilityId,
form.value.EQUIPMENT_FACILITY[i].raw,
150
);
}
ElMessage.success("提交成功");
router.back();

View File

@ -9,22 +9,25 @@
<el-row>
<el-col :span="6">
<el-form-item label="设施名称" prop="FACILITY_NAME">
<el-input v-model="searchForm.FACILITY_NAME"
placeholder="请填设施名称"
<el-input
v-model="searchForm.FACILITY_NAME"
placeholder="请填设施名称"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="设施编号" prop="FACILITY_NUMBER">
<el-input v-model="searchForm.FACILITY_NUMBER"
placeholder="请填写设施编号"
<el-input
v-model="searchForm.FACILITY_NUMBER"
placeholder="请填写设施编号"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="设施位置" prop="FACILITY_LOCALTION">
<el-input v-model="searchForm.FACILITY_LOCALTION"
placeholder="请填写设施位置"
<el-input
v-model="searchForm.FACILITY_LOCALTION"
placeholder="请填写设施位置"
/>
</el-form-item>
</el-col>
@ -41,22 +44,34 @@
</el-card>
<layout-card>
<layout-table
v-model:pagination="pagination"
:data="list"
@get-data="fnGetData"
v-model:pagination="pagination"
>
<el-table-column label="序号" width="60">
<template #default="{ $index }">
{{ serialNumber(pagination, $index) }}
</template>
</el-table-column>
<el-table-column prop="FACILITY_LOCALTION" label="设施位置" width="160" />
<el-table-column
prop="FACILITY_LOCALTION"
label="设施位置"
width="160"
/>
<el-table-column prop="FACILITY_NUMBER" label="设施编号" width="160" />
<el-table-column prop="FACILITY_NAME" label="设施名称" width="140" />
<el-table-column prop="FACILITY_UNIT" label="设施单位" width="140" />
<el-table-column prop="FACILITY_COUNT" label="设施数量" width="130" />
<el-table-column prop="FACILITY_PRINCIPAL" label="设施负责人" width="150" />
<el-table-column prop="REGISTRATION_TIME" label="登记时间" width="160" />
<el-table-column
prop="FACILITY_PRINCIPAL"
label="设施负责人"
width="150"
/>
<el-table-column
prop="REGISTRATION_TIME"
label="登记时间"
width="160"
/>
<el-table-column prop="CREATTIME" label="创建时间" width="160" />
<el-table-column prop="OPERATTIME" label="修改时间" width="160" />
<el-table-column label="操作" width="180">
@ -112,16 +127,18 @@
</template>
</el-table-column>
<template #button>
<el-button
v-if="buttonJurisdiction.add"
type="primary"
@click="
router.push({ path: '/production_course_regulate/production_equipment_facility/add' })
<el-button
v-if="buttonJurisdiction.add"
type="primary"
@click="
router.push({
path: '/production_course_regulate/production_equipment_facility/add',
})
"
>
新增
</el-button>
</template>
>
新增
</el-button>
</template>
</layout-table>
</layout-card>
<edit
@ -140,7 +157,7 @@ import { useRouter } from "vue-router";
import { reactive } from "vue";
import {
getProductionEquipmentFacilityList,
setProductionEquipmentFacilityDelete
setProductionEquipmentFacilityDelete,
} from "@/request/production_equipment_facility.js";
import { debounce } from "throttle-debounce";
import { ElMessage, ElMessageBox } from "element-plus";
@ -159,14 +176,16 @@ const fnDelete = debounce(
1000,
async (PRODUCTIONFACILITY_ID) => {
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
await setProductionEquipmentFacilityDelete({ PRODUCTIONFACILITY_ID })
await setProductionEquipmentFacilityDelete({ PRODUCTIONFACILITY_ID });
ElMessage.success("删除成功");
fnResetPagination();
},
{ atBegin: true }
);
const buttonJurisdiction = await useButtonJurisdiction("prooductionEquipmentFacility");
const buttonJurisdiction = await useButtonJurisdiction(
"prooductionEquipmentFacility"
);
</script>
<style scoped></style>

View File

@ -26,7 +26,7 @@
</el-descriptions>
<el-divider content-position="left">保养记录</el-divider>
<layout-table :data="list" :show-pagination="false">
<el-table-column type="index" label="序号" align="center" />
<el-table-column type="index" label="序号" align="center" />
<el-table-column prop="MAINTAIN_DATE" label="保养时间" />
<el-table-column prop="MAINTAIN_CONDITION" label="保养情况" />
<el-table-column prop="MAINTAIN_PERSON" label="保养人" />
@ -38,11 +38,11 @@
text
link
@click="
router.push({
path: '/production_course_regulate/production_equipment_facility/maintainedit',
query: { MAINTAIN_ID: row.MAINTAIN_ID },
})
"
router.push({
path: '/production_course_regulate/production_equipment_facility/maintainedit',
query: { MAINTAIN_ID: row.MAINTAIN_ID },
})
"
>
修改
</el-button>
@ -62,11 +62,11 @@
v-if="buttonJurisdiction.add"
type="primary"
@click="
router.push({
router.push({
path: '/production_course_regulate/production_equipment_facility/maintainadd',
query: {PRODUCTIONFACILITY_ID}
})
"
query: { PRODUCTIONFACILITY_ID },
})
"
>
新增
</el-button>
@ -79,7 +79,7 @@
import {
getProductionEquipmentFacilityView,
getMaintainFindProductionEquipmentFacilityId,
setMaintainDelete
setMaintainDelete,
} from "@/request/production_equipment_facility.js";
import { useRoute, useRouter } from "vue-router";
import { ref } from "vue";
@ -92,12 +92,14 @@ const router = useRouter();
const { PRODUCTIONFACILITY_ID } = route.query;
const data = ref({});
const getData = async () => {
const { pd } = await getProductionEquipmentFacilityView({ PRODUCTIONFACILITY_ID });
const { pd } = await getProductionEquipmentFacilityView({
PRODUCTIONFACILITY_ID,
});
data.value = pd;
};
getData();
const { list } = useListData(getMaintainFindProductionEquipmentFacilityId, {
otherParams: { PRODUCTIONFACILITY_ID: PRODUCTIONFACILITY_ID },
otherParams: { PRODUCTIONFACILITY_ID },
usePagination: false,
});
@ -105,7 +107,7 @@ const fnDelete = debounce(
1000,
async (MAINTAIN_ID) => {
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
await setMaintainDelete({ MAINTAIN_ID })
await setMaintainDelete({ MAINTAIN_ID });
ElMessage.success("删除成功");
},
{ atBegin: true }

View File

@ -1,11 +1,6 @@
<template>
<layout-card>
<el-form
ref="formRef"
:model="form"
:rules="rules"
label-width="100px"
>
<el-form ref="formRef" :model="form" :rules="rules" label-width="100px">
<el-row>
<el-col :span="6">
<el-form-item label="保养时间" prop="MAINTAIN_DATE">
@ -20,15 +15,17 @@
</el-col>
<el-col :span="6">
<el-form-item label="保养情况" prop="MAINTAIN_CONDITION">
<el-input v-model="form.MAINTAIN_CONDITION"
placeholder="请输入保养情况"
<el-input
v-model="form.MAINTAIN_CONDITION"
placeholder="请输入保养情况"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="保养人" prop="MAINTAIN_PERSON">
<el-input v-model="form.MAINTAIN_PERSON"
placeholder="请输入保养人"
<el-input
v-model="form.MAINTAIN_PERSON"
placeholder="请输入保养人"
/>
</el-form-item>
</el-col>
@ -44,16 +41,16 @@
</el-form-item>
</el-col>
</el-row>
<el-col :span="24">
<el-form-item label="备注" prop="REMARK">
<el-input
v-model="form.REMARK"
placeholder="请填写备注"
type="textarea"
:autosize="{ minRows: 3 }"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="备注" prop="REMARK">
<el-input
v-model="form.REMARK"
placeholder="请填写备注"
type="textarea"
:autosize="{ minRows: 3 }"
/>
</el-form-item>
</el-col>
</el-form>
<div class="tc mt-10">
<el-button type="primary" @click="fnSubmit"></el-button>
@ -66,7 +63,7 @@ import { ref } from "vue";
import {
setMaintainEdit,
setMaintainAdd,
getProductionEquipmentFacilityView
getProductionEquipmentFacilityView,
} from "@/request/production_equipment_facility.js";
import { debounce } from "throttle-debounce";
import useFormValidate from "@/assets/js/useFormValidate.js";
@ -81,9 +78,15 @@ const router = useRouter();
const { PRODUCTIONFACILITY_ID } = route.query;
const rules = {
MAINTAIN_DATE: [{ required: true, message: "保养时间不能为空", trigger: "blur" }],
MAINTAIN_CONDITION: [{ required: true, message: "保养情况不能为空", trigger: "blur" }],
MAINTAIN_PERSON: [{ required: true, message: "保养人不能为空", trigger: "blur" }],
MAINTAIN_DATE: [
{ required: true, message: "保养时间不能为空", trigger: "blur" },
],
MAINTAIN_CONDITION: [
{ required: true, message: "保养情况不能为空", trigger: "blur" },
],
MAINTAIN_PERSON: [
{ required: true, message: "保养人不能为空", trigger: "blur" },
],
};
const formRef = ref(null);
const form = ref({
@ -96,28 +99,30 @@ const form = ref({
MAINTAIN_IMG: [],
});
const MAINTAIN_ID = form.value.MAINTAIN_ID
const MAINTAIN_ID = form.value.MAINTAIN_ID;
const fnGetData = async () => {
if (!MAINTAIN_ID) return;
const resData = await getProductionEquipmentFacilityView({ MAINTAIN_ID });
form.value = resData.pd;
form.value.EQUIPMENT_FACILITY = addingPrefixToFile(
resData.maintainImg
);
form.value.EQUIPMENT_FACILITY = addingPrefixToFile(resData.maintainImg);
};
fnGetData();
const fnSubmit = debounce(
1000,
async () => {
await useFormValidate(formRef);
form.value.PRODUCTIONFACILITY_ID = PRODUCTIONFACILITY_ID
form.value.PRODUCTIONFACILITY_ID = PRODUCTIONFACILITY_ID;
const resData = !MAINTAIN_ID
? await setMaintainAdd({ ...form.value })
: await setMaintainEdit({ ...form.value ,MAINTAIN_ID:MAINTAIN_ID});
const currentEquipmentFacilityId = resData.pd.MAINTAIN_ID
: await setMaintainEdit({ ...form.value, MAINTAIN_ID });
const currentEquipmentFacilityId = resData.pd.MAINTAIN_ID;
for (let i = 0; i < form.value.MAINTAIN_IMG.length; i++) {
if (form.value.MAINTAIN_IMG[i].raw)
await fnUploadImage(currentEquipmentFacilityId, form.value.MAINTAIN_IMG[i].raw, 120);
await fnUploadImage(
currentEquipmentFacilityId,
form.value.MAINTAIN_IMG[i].raw,
120
);
}
ElMessage.success("提交成功");
router.back();

View File

@ -1,12 +1,7 @@
<template>
<layout-card>
<el-divider content-position="left">修改</el-divider>
<el-form
ref="formRef"
:model="form"
:rules="rules"
label-width="100px"
>
<el-form ref="formRef" :model="form" :rules="rules" label-width="100px">
<el-row>
<el-col :span="24">
<el-form-item label="保养时间" prop="MAINTAIN_DATE">
@ -21,12 +16,18 @@
</el-col>
<el-col :span="24">
<el-form-item label="保养情况" prop="MAINTAIN_CONDITION">
<el-input v-model="form.MAINTAIN_CONDITION" placeholder="请输入保养情况"/>
<el-input
v-model="form.MAINTAIN_CONDITION"
placeholder="请输入保养情况"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="保养人" prop="MAINTAIN_PERSON">
<el-input v-model="form.MAINTAIN_PERSON" placeholder="请输入保养人"/>
<el-input
v-model="form.MAINTAIN_PERSON"
placeholder="请输入保养人"
/>
</el-form-item>
</el-col>
</el-row>
@ -68,11 +69,11 @@ import useFormValidate from "@/assets/js/useFormValidate.js";
import {
getMaintainView,
getMaintainEdit,
setMaintainAdd
setMaintainAdd,
} from "@/request/production_equipment_facility.js";
import { ElMessage } from "element-plus";
import { useRoute, useRouter } from "vue-router";
import LayoutUpload from "@/components/upload/index.vue"
import LayoutUpload from "@/components/upload/index.vue";
import { addingPrefixToFile } from "@/assets/js/utils.js";
import { setUploadImg } from "@/request/api.js";
@ -80,13 +81,27 @@ const route = useRoute();
const router = useRouter();
const { MAINTAIN_ID } = route.query;
const rules = {
FACILITY_NUMBER: [{ required: true, message: "设施编号不能为空", trigger: "blur" }],
FACILITY_NAME: [{ required: true, message: "设施名称不能为空", trigger: "blur" }],
FACILITY_UNIT: [{ required: true, message: "设施单位不能为空", trigger: "blur" }],
FACILITY_COUNT: [{ required: true, message: "设施数量不能为空", trigger: "blur" }],
FACILITY_LOCALTION: [{ required: true, message: "设施位置不能为空", trigger: "blur" }],
FACILITY_PRINCIPAL: [{ required: true, message: "设施负责人不能为空", trigger: "blur" }],
REGISTRATION_TIME: [{ required: true, message: "登记时间不能为空", trigger: "change" }],
FACILITY_NUMBER: [
{ required: true, message: "设施编号不能为空", trigger: "blur" },
],
FACILITY_NAME: [
{ required: true, message: "设施名称不能为空", trigger: "blur" },
],
FACILITY_UNIT: [
{ required: true, message: "设施单位不能为空", trigger: "blur" },
],
FACILITY_COUNT: [
{ required: true, message: "设施数量不能为空", trigger: "blur" },
],
FACILITY_LOCALTION: [
{ required: true, message: "设施位置不能为空", trigger: "blur" },
],
FACILITY_PRINCIPAL: [
{ required: true, message: "设施负责人不能为空", trigger: "blur" },
],
REGISTRATION_TIME: [
{ required: true, message: "登记时间不能为空", trigger: "change" },
],
};
const formRef = ref(null);
const form = ref({
@ -103,9 +118,7 @@ const fnGetData = async () => {
if (!MAINTAIN_ID) return;
const resData = await getMaintainView({ MAINTAIN_ID });
form.value = resData.pd;
form.value.MAINTAIN_IMG = addingPrefixToFile(
resData.maintainImg
)
form.value.MAINTAIN_IMG = addingPrefixToFile(resData.maintainImg);
};
fnGetData();
const fnSubmit = debounce(
@ -114,11 +127,15 @@ const fnSubmit = debounce(
await useFormValidate(formRef);
const resData = !MAINTAIN_ID
? await setMaintainAdd({ ...form.value })
: await getMaintainEdit({ ...form.value ,MAINTAIN_ID:MAINTAIN_ID});
const currentEquipmentFacilityId = resData.pd.MAINTAIN_ID
: await getMaintainEdit({ ...form.value, MAINTAIN_ID });
const currentEquipmentFacilityId = resData.pd.MAINTAIN_ID;
for (let i = 0; i < form.value.MAINTAIN_IMG.length; i++) {
if (form.value.MAINTAIN_IMG[i].raw)
await fnUploadImage(currentEquipmentFacilityId, form.value.MAINTAIN_IMG[i].raw, 120);
await fnUploadImage(
currentEquipmentFacilityId,
form.value.MAINTAIN_IMG[i].raw,
120
);
}
ElMessage.success("提交成功");
router.back();

View File

@ -1,5 +1,6 @@
<template>
<layout-card>
<div id="printContainer">
<el-divider content-position="left">基本信息</el-divider>
<el-descriptions border>
<el-descriptions-item label="设施名称">
@ -26,33 +27,41 @@
</el-descriptions>
<el-divider content-position="left">保养记录</el-divider>
<layout-table :data="list" :show-pagination="false">
<el-table-column type="index" label="序号" align="center" />
<el-table-column type="index" label="序号" align="center" />
<el-table-column prop="MAINTAIN_DATE" label="保养时间" />
<el-table-column prop="MAINTAIN_CONDITION" label="保养情况" />
<el-table-column prop="MAINTAIN_PERSON" label="保养人" />
<el-table-column prop="REMARK" label="备注" />
</layout-table>
</div>
<div class="mt-10 tc">
<el-button v-print="'#printContainer'" type="primary"></el-button>
</div>
<div v-html="PRINT_STYLE" />
</layout-card>
</template>
<script setup>
import {
getProductionEquipmentFacilityView,
getMaintainFindProductionEquipmentFacilityId
getMaintainFindProductionEquipmentFacilityId,
} from "@/request/production_equipment_facility.js";
import { useRoute } from "vue-router";
import { ref } from "vue";
import useListData from "@/assets/js/useListData.js";
import { PRINT_STYLE } from "@/assets/js/constant.js";
const route = useRoute();
const { PRODUCTIONFACILITY_ID } = route.query;
const data = ref({});
const getData = async () => {
const { pd } = await getProductionEquipmentFacilityView({ PRODUCTIONFACILITY_ID });
const { pd } = await getProductionEquipmentFacilityView({
PRODUCTIONFACILITY_ID,
});
data.value = pd;
};
getData();
const { list } = useListData(getMaintainFindProductionEquipmentFacilityId, {
otherParams: { PRODUCTIONFACILITY_ID: PRODUCTIONFACILITY_ID },
otherParams: { PRODUCTIONFACILITY_ID },
usePagination: false,
});
</script>

View File

@ -1,24 +1,10 @@
<template>
<layout-card>
<el-form
ref="formRef"
:model="form"
:rules="rules"
label-width="100px"
>
<el-form ref="formRef" :model="form" :rules="rules" label-width="100px">
<el-row>
<el-col :span="6">
<el-form-item label="经营企业" prop="MANAGING_ENTERPRISE">
<layout-department v-model="form.MANAGING_ENTERPRISE"
placeholder="请选择经营企业"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="上报人" prop="REPORTPERSON">
<el-input v-model="form.REPORTPERSON"
placeholder="请输入上报人"
/>
<el-input v-model="form.REPORTPERSON" placeholder="请输入上报人" />
</el-form-item>
</el-col>
<el-col :span="6">
@ -36,8 +22,9 @@
<el-row>
<el-col :span="6">
<el-form-item label="处理状态" prop="DISPOSE_STATUS">
<el-select v-model="form.DISPOSE_STATUS"
placeholder="请选择处理状态"
<el-select
v-model="form.DISPOSE_STATUS"
placeholder="请选择处理状态"
>
<el-option
v-for="item in DISPOSE_STATUS_LIST"
@ -50,8 +37,9 @@
</el-col>
<el-col :span="6">
<el-form-item label="处理结果" prop="DISPOSE_RESULT">
<el-input v-model="form.DISPOSE_RESULT"
placeholder="请输入处理结果"
<el-input
v-model="form.DISPOSE_RESULT"
placeholder="请输入处理结果"
/>
</el-form-item>
</el-col>
@ -90,17 +78,34 @@
import { ref } from "vue";
import {
setReportedIncidentDisposeEdit,
setReportedIncidentDisposeAdd
setReportedIncidentDisposeAdd,
} from "@/request/reported_incident_dispose.js";
import { debounce } from "throttle-debounce";
import useFormValidate from "@/assets/js/useFormValidate.js";
import { useRoute, useRouter } from "vue-router";
import { ElMessage } from "element-plus";
import LayoutDepartment from "@/components/department/index.vue";
import { DISPOSE_STATUS_LIST } from "@/assets/js/constant.js";
const route = useRoute();
const router = useRouter();
const REPORTEDINCIDENT_ID = route.query.REPORTEDINCIDENT_ID
const REPORTEDINCIDENT_ID = route.query.REPORTEDINCIDENT_ID;
const rules = {
REPORTPERSON: [
{ required: true, message: "上报人不能为空", trigger: "blur" },
],
REPORTED_TIME: [
{ required: true, message: "上报日期不能为空", trigger: "blur" },
],
DISPOSE_STATUS: [
{ required: true, message: "处理状态不能为空", trigger: "blur" },
],
DISPOSE_RESULT: [
{ required: true, message: "处理结果不能为空", trigger: "blur" },
],
DISPOSE_DATE: [
{ required: true, message: "处理时间不能为空", trigger: "blur" },
],
};
const formRef = ref(null);
const form = ref({
@ -114,7 +119,7 @@ const form = ref({
REPORTED_TIME: "",
DISPOSE_DATE: "",
MANAGING_ENTERPRISE: "",
MANAGING_TYPE: ""
MANAGING_TYPE: "",
});
const fnGetData = async () => {
if (!REPORTEDINCIDENT_ID) return;
@ -126,7 +131,7 @@ const fnSubmit = debounce(
1000,
async () => {
await useFormValidate(formRef);
await setReportedIncidentDisposeAdd({ ...form.value })
await setReportedIncidentDisposeAdd({ ...form.value });
ElMessage.success("提交成功");
router.back();
},

View File

@ -1,24 +1,10 @@
<template>
<layout-card>
<el-form
ref="formRef"
:model="form"
:rules="rules"
label-width="100px"
>
<el-form ref="formRef" :model="form" :rules="rules" label-width="100px">
<el-row>
<el-col :span="6">
<el-form-item label="经营企业" prop="MANAGING_ENTERPRISE">
<layout-department v-model="form.MANAGING_ENTERPRISE"
placeholder="请选择经营企业"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="上报人" prop="REPORTPERSON">
<el-input v-model="form.REPORTPERSON"
placeholder="请输入上报人"
/>
<el-input v-model="form.REPORTPERSON" placeholder="请输入上报人" />
</el-form-item>
</el-col>
<el-col :span="6">
@ -36,8 +22,9 @@
<el-row>
<el-col :span="6">
<el-form-item label="处理状态" prop="DISPOSE_STATUS">
<el-select v-model="form.DISPOSE_STATUS"
placeholder="请选择处理状态"
<el-select
v-model="form.DISPOSE_STATUS"
placeholder="请选择处理状态"
>
<el-option
v-for="item in DISPOSE_STATUS_LIST"
@ -50,8 +37,9 @@
</el-col>
<el-col :span="6">
<el-form-item label="处理结果" prop="DISPOSE_RESULT">
<el-input v-model="form.DISPOSE_RESULT"
placeholder="请输入处理结果"
<el-input
v-model="form.DISPOSE_RESULT"
placeholder="请输入处理结果"
/>
</el-form-item>
</el-col>
@ -90,18 +78,34 @@
import { ref } from "vue";
import {
setReportedIncidentDisposeEdit,
setReportedIncidentDispose
setReportedIncidentDispose,
} from "@/request/reported_incident_dispose.js";
import { debounce } from "throttle-debounce";
import useFormValidate from "@/assets/js/useFormValidate.js";
import { useRoute, useRouter } from "vue-router";
import { ElMessage } from "element-plus";
import LayoutDepartment from "@/components/department/index.vue";
import { DISPOSE_STATUS_LIST } from "@/assets/js/constant.js";
const route = useRoute();
const router = useRouter();
const REPORTEDINCIDENT_ID = route.query.REPORTEDINCIDENT_ID
const REPORTEDINCIDENT_ID = route.query.REPORTEDINCIDENT_ID;
const rules = {
REPORTPERSON: [
{ required: true, message: "上报人不能为空", trigger: "blur" },
],
REPORTED_TIME: [
{ required: true, message: "上报日期不能为空", trigger: "blur" },
],
DISPOSE_STATUS: [
{ required: true, message: "处理状态不能为空", trigger: "blur" },
],
DISPOSE_RESULT: [
{ required: true, message: "处理结果不能为空", trigger: "blur" },
],
DISPOSE_DATE: [
{ required: true, message: "处理时间不能为空", trigger: "blur" },
],
};
const formRef = ref(null);
const form = ref({
REPORTEDINCIDENT_ID: "",
@ -114,7 +118,7 @@ const form = ref({
REPORTED_TIME: "",
DISPOSE_DATE: "",
MANAGING_ENTERPRISE: "",
MANAGING_TYPE: ""
MANAGING_TYPE: "",
});
const fnGetData = async () => {
if (!REPORTEDINCIDENT_ID) return;
@ -126,7 +130,7 @@ const fnSubmit = debounce(
1000,
async () => {
await useFormValidate(formRef);
await setReportedIncidentDispose({ ...form.value })
await setReportedIncidentDispose({ ...form.value });
ElMessage.success("提交成功");
router.back();
},

View File

@ -9,15 +9,17 @@
<el-row>
<el-col :span="6">
<el-form-item label="上报人" prop="REPORTPERSON">
<el-input v-model="searchForm.REPORTPERSON"
placeholder="请填写上报人"
<el-input
v-model="searchForm.REPORTPERSON"
placeholder="请填写上报人"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="处理状态" prop="DISPOSE_STATUS">
<el-select v-model="searchForm.DISPOSE_STATUS"
placeholder="请选择处理状态"
<el-select
v-model="searchForm.DISPOSE_STATUS"
placeholder="请选择处理状态"
>
<el-option
v-for="item in DISPOSE_STATUS_LIST"
@ -52,9 +54,9 @@
</el-card>
<layout-card>
<layout-table
v-model:pagination="pagination"
:data="list"
@get-data="fnGetData"
v-model:pagination="pagination"
>
<el-table-column label="序号" width="60">
<template #default="{ $index }">
@ -107,16 +109,18 @@
</template>
</el-table-column>
<template #button>
<el-button
v-if="buttonJurisdiction.add"
type="primary"
@click="
router.push({ path: '/production_course_regulate/reported_incident_dispose/add' })
<el-button
v-if="buttonJurisdiction.add"
type="primary"
@click="
router.push({
path: '/production_course_regulate/reported_incident_dispose/add',
})
"
>
新增
</el-button>
</template>
>
新增
</el-button>
</template>
</layout-table>
</layout-card>
<edit
@ -135,7 +139,7 @@ import { useRouter } from "vue-router";
import { reactive } from "vue";
import {
getReportedIncidentDisposeList,
setReportedIncidentDisposeDelete
setReportedIncidentDisposeDelete,
} from "@/request/reported_incident_dispose.js";
import { debounce } from "throttle-debounce";
import { ElMessage, ElMessageBox } from "element-plus";
@ -155,14 +159,16 @@ const fnDelete = debounce(
1000,
async (REPORTEDINCIDENT_ID) => {
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
await setReportedIncidentDisposeDelete({ REPORTEDINCIDENT_ID })
await setReportedIncidentDisposeDelete({ REPORTEDINCIDENT_ID });
ElMessage.success("删除成功");
fnResetPagination();
},
{ atBegin: true }
);
const buttonJurisdiction = await useButtonJurisdiction("reportedincidentdispose");
const buttonJurisdiction = await useButtonJurisdiction(
"reportedincidentdispose"
);
</script>
<style scoped></style>

View File

@ -1,26 +1,32 @@
<template>
<layout-card>
<el-divider content-position="left">车辆档案</el-divider>
<el-descriptions border>
<el-descriptions-item label="上报人">
{{ data.REPORTPERSON }}
</el-descriptions-item>
<el-descriptions-item label="上报日期">
{{ data.REPORTED_TIME }}
</el-descriptions-item>
<el-descriptions-item label="处理状态">
{{ data.DISPOSE_STATUS }}
</el-descriptions-item>
<el-descriptions-item label="处理结果">
{{ data.DISPOSE_RESULT }}
</el-descriptions-item>
<el-descriptions-item label="处理时间">
{{ data.DISPOSE_DATE }}
</el-descriptions-item>
<el-descriptions-item label="上报内容">
{{ data.REPORTED_CONTENT }}
</el-descriptions-item>
<div id="printContainer">
<el-divider content-position="left">车辆档案</el-divider>
<el-descriptions border>
<el-descriptions-item label="上报人">
{{ data.REPORTPERSON }}
</el-descriptions-item>
<el-descriptions-item label="上报日期">
{{ data.REPORTED_TIME }}
</el-descriptions-item>
<el-descriptions-item label="处理状态">
{{ data.DISPOSE_STATUS }}
</el-descriptions-item>
<el-descriptions-item label="处理结果">
{{ data.DISPOSE_RESULT }}
</el-descriptions-item>
<el-descriptions-item label="处理时间">
{{ data.DISPOSE_DATE }}
</el-descriptions-item>
<el-descriptions-item label="上报内容">
{{ data.REPORTED_CONTENT }}
</el-descriptions-item>
</el-descriptions>
</div>
<div class="mt-10 tc">
<el-button v-print="'#printContainer'" type="primary"></el-button>
</div>
<div v-html="PRINT_STYLE" />
</layout-card>
</template>
@ -28,12 +34,15 @@
import { findByIdReportedIncidentDisposeInfo } from "@/request/reported_incident_dispose.js";
import { useRoute } from "vue-router";
import { ref } from "vue";
import { PRINT_STYLE } from "@/assets/js/constant.js";
const route = useRoute();
const { REPORTEDINCIDENT_ID } = route.query;
const data = ref({});
const getData = async () => {
const { pd } = await findByIdReportedIncidentDisposeInfo({ REPORTEDINCIDENT_ID });
const { pd } = await findByIdReportedIncidentDisposeInfo({
REPORTEDINCIDENT_ID,
});
data.value = pd;
};
getData();