过户管理

报废管理
企业安全生产值班记录
生产设备设施台账
劳动防护用品发放记录
消防设备设施台账
上报事件处理台账
dev
xiepeng 2024-03-19 14:04:17 +08:00
parent c28033032f
commit 6419d6c50c
46 changed files with 3962 additions and 391 deletions

View File

@ -82,6 +82,12 @@ export const REMINDER_STATUS_LIST = [
{ID:'0',NAME:'关闭'},
]
export const DISPOSE_STATUS_LIST = [
// 处理状态
{ID:'1',NAME:'处理中'},
{ID:'0',NAME:'处理完成'},
]
// export const MAINTENANCE_LEVEL_LIST = [
// //维保等级

View File

@ -0,0 +1,14 @@
import { post, upload } from "@/request/axios.js";
export const getEnterpriseSafetyProductionList = (params) =>
post("/enterprisesafetyproduction/list", params); // 企业安全生产值班记录列表
export const setEnterpriseSafetyProductEdit = (params) =>
upload("/enterprisesafetyproduction/goEdit", params); // 修改企业安全生产值班记录
export const setEnterpriseSafetyProductAdd = (params) =>
upload("/enterprisesafetyproduction/add", params); // 新增企业安全生产值班记录
export const setEnterpriseSafetyProductDelete = (params) =>
upload("/enterprisesafetyproduction/delete", params); // 新增企业安全生产值班记录

View File

@ -0,0 +1,17 @@
import { post, upload } from "@/request/axios.js";
export const getEntrenchThingGrantList = (params) =>
post("/labourentrenchthing/list", params); // 企业安全生产值班记录列表
export const setEntrenchThingGrantEdit = (params) =>
upload("/labourentrenchthing/goEdit", params); // 修改企业安全生产值班记录
export const setEntrenchThingGrantAdd = (params) =>
upload("/labourentrenchthing/add", params); // 新增企业安全生产值班记录
export const setEntrenchThingGrantDelete = (params) =>
upload("/labourentrenchthing/delete", params); // 新增企业安全生产值班记录
export const getEntrenchThingGrantEdit = (params) =>
upload("/labourentrenchthing/edit", params); // 修改企业安全生产值班记录

View File

@ -0,0 +1,40 @@
import { post, upload } from "@/request/axios.js";
export const getFirefightingEquipmentFacilityList = (params) =>
post("/firefightingequipmentfacility/list", params); // 生产设备设施台账列表
export const setFirefightingEquipmentFacilityDelete = (params) =>
upload("/firefightingequipmentfacility/delete", params); // 生产设备设施台账列表删除
export const setFirefightingEquipmentFacilityEdit = (params) =>
upload("/firefightingequipmentfacility/goEdit", params); // 修改企业安全生产值班记录
export const setFirefightingEquipmentFacilityAdd = (params) =>
upload("/firefightingequipmentfacility/add", params); // 新增企业安全生产值班记录
export const getFirefightingEquipmentFacilityView = (params) =>
post("/firefightingequipmentfacility/goEdit", params); // 设备设施查看
export const getMaintainFindFirefightingId = (params) =>
post("/firefightingmaintain/findByFirefightingId", params); // 设备设施查看
export const getFirefightingEquipmentFacilityEdit = (params) =>
upload("/firefightingequipmentfacility/edit", params); // 新增企业安全生产值班记录
export const setMaintainAdd = (params) =>
upload("/firefightingmaintain/add", params); // 新增保养
export const setMaintainEdit = (params) =>
upload("/firefightingmaintain/goEdit", params); // 修改保养
export const getMaintainView = (params) =>
post("/firefightingmaintain/goEdit", params); // 获取保养信息
export const getMaintainEdit = (params) =>
upload("/firefightingmaintain/edit", params); // 新增企业安全生产值班记录
export const setFirefightingMaintainDelete = (params) =>
upload("/firefightingmaintain/delete", params); // 保养删除

View File

@ -90,5 +90,13 @@ export const getOperationVehicleInfo = (params) =>
post("/operatingvehicles/findById", params); // 根据Id获取运营车辆信息
const getCorpList = (params) =>
post("/operatingvehicles/corpList", params)
export const getOperationVehicleCorpList1 = async () => {
const resData = await getCorpList()
return resData.list;
};// 货运挂车 企业列表

View File

@ -0,0 +1,40 @@
import { post, upload } from "@/request/axios.js";
export const getProductionEquipmentFacilityList = (params) =>
post("/equipmentfacilitycontroller/list", params); // 生产设备设施台账列表
export const setProductionEquipmentFacilityDelete = (params) =>
upload("/equipmentfacilitycontroller/delete", params); // 生产设备设施台账列表删除
export const setProductionEquipmentFacilityEdit = (params) =>
upload("/equipmentfacilitycontroller/goEdit", params); // 修改企业安全生产值班记录
export const setProductionEquipmentFacilityAdd = (params) =>
upload("/equipmentfacilitycontroller/add", params); // 新增企业安全生产值班记录
export const getProductionEquipmentFacilityView = (params) =>
post("/equipmentfacilitycontroller/goEdit", params); // 设备设施查看
export const getMaintainFindProductionEquipmentFacilityId = (params) =>
post("/maintain/findByProductionEquipmentFacilityId", params); // 设备设施查看
export const getProductionEquipmentFacilityEdit = (params) =>
upload("/equipmentfacilitycontroller/edit", 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); // 保养删除

View File

@ -0,0 +1,20 @@
import { post, upload } from "@/request/axios.js";
export const getReportedIncidentDisposeList = (params) =>
post("/reportedincident/list", params); // 上报事件处理记录列表
export const setReportedIncidentDisposeEdit = (params) =>
upload("/reportedincident/goEdit", params); // 修改上报事件处理记录
export const setReportedIncidentDisposeAdd = (params) =>
upload("/reportedincident/add", params); // 新增上报事件处理记录
export const setReportedIncidentDisposeDelete = (params) =>
upload("/reportedincident/delete", params); // 删除上报事件处理记录
export const findByIdReportedIncidentDisposeInfo = (params) =>
upload("/reportedincident/goEdit", params); // 删除上报事件处理记录
export const setReportedIncidentDispose = (params) =>
upload("/reportedincident/edit", params); // 修改上报事件处理记录

View File

@ -49,7 +49,7 @@ export const editTaxationManageInfo = (params) =>
upload("/taxationmanage/edit", params); // 修改车船税管理
export const getTrailerList = (params) =>
upload("/freightTrailer/vehicleList", params); // 获取所有挂车
upload("/freightTrailer/trailerList", params); // 获取所有挂车
export const getTaxationList = (params) =>
upload("/taxationmanage/taxationList", params); // 获取所有车船税

View File

@ -58,14 +58,9 @@
</el-col>
<el-col :span="6">
<el-form-item label="归属部门" prop="BELONGING_DEPARTMENT">
<el-select v-model="form.BELONGING_DEPARTMENT">
<el-option
v-for="item in getBelongingDepartment"
:key="item.BIANMA"
:label="item.NAME"
:value="item.NAME"
/>
</el-select>
<layout-department v-model="form.BELONGING_DEPARTMENT"
placeholder="请选择归属部门"
/>
</el-form-item>
</el-col>
<el-col :span="6">
@ -279,7 +274,6 @@ import { ref } from "vue";
import {
layoutFnGetVehicleColor,
layoutFnGetTransportCategory,
layoutFnGetBelongingDepartment,
layoutFnGetFuelType,
layoutFnGetEmissionStandard,
layoutFnGetVehicleType,
@ -297,21 +291,53 @@ import { debounce } from "throttle-debounce";
import { useRoute, useRouter } from "vue-router";
import { setUploadImg } from "@/request/api.js";
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 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 rules = {
PLATE_NUMBER: [{ required: true, message: "车牌号不能为空", trigger: "blur" }],
PLATE_NUMBER: [
{ required: true, message: "请输入车牌号", trigger: "blur" },
{ validator: isVehicleNumber, 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"}],
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"}],
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"}],
@ -367,7 +393,6 @@ const form = ref({
});
const getVehicleColorList = await layoutFnGetVehicleColor();
const getTransportCategoryList = await layoutFnGetTransportCategory();
const getBelongingDepartment = await layoutFnGetBelongingDepartment();
const getFuelTypeList = await layoutFnGetFuelType();
const getEmissionStandardList = await layoutFnGetEmissionStandard();
const getVehicleTypeList = await layoutFnGetVehicleType();
@ -392,23 +417,23 @@ const fnSubmit = debounce(
1000,
async () => {
await useFormValidate(formRef);
const resData = ! OPERATING_ID
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, 120)
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, 121)
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, 122)
await fnUploadImage(currentOperatingVehicleId, form.value.OPERATING_CERTIFICATE_PHOTO[i].raw, 132)
}
}
ElMessage.success("提交成功");

View File

@ -3,24 +3,24 @@
<el-divider content-position="left">基本信息</el-divider>
<el-form
ref="formRef"
:model="data.form"
:model="form"
:rules="rules"
label-width="100px"
>
<el-row>
<el-col :span="6">
<el-form-item label="编号" prop="GOODSSELFNUMBER">
<el-input v-model="data.form.GOODSSELFNUMBER" placeholder="请填写自编号" />
<el-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 = "data.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">
<el-form-item label="车辆颜色" prop="VEHICLE_COLOR">
<el-select v-model="data.form.VEHICLE_COLOR">
<el-select v-model="form.VEHICLE_COLOR">
<el-option
v-for="item in getVehicleColorList"
:key="item.BIANMA"
@ -32,22 +32,22 @@
</el-col>
<el-col :span="6">
<el-form-item label="车架号" prop="FRAMES_NUMBER">
<el-input v-model="data.form.FRAMES_NUMBER" placeholder="请填写车架号"></el-input>
<el-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="data.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="data.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">
<el-form-item label="运输类别" prop="TRANSPORT_TYPE">
<el-select v-model="data.form.TRANSPORT_TYPE">
<el-select v-model="form.TRANSPORT_TYPE">
<el-option
v-for="item in getTransportCategoryList"
:key="item.BIANMA"
@ -59,7 +59,7 @@
</el-col>
<el-col :span="6">
<el-form-item label="归属部门" prop="BELONGING_DEPARTMENT">
<el-select v-model="data.form.BELONGING_DEPARTMENT" placeholder="请选择归属部门">
<el-select v-model="form.BELONGING_DEPARTMENT" placeholder="请选择归属部门">
<el-option
v-for="item in getBelongingDepartment"
:key="item.BIANMA"
@ -71,7 +71,7 @@
</el-col>
<el-col :span="6">
<el-form-item label="车辆类型" prop="VEHICLE_TYPE">
<el-select v-model="data.form.VEHICLE_TYPE">
<el-select v-model="form.VEHICLE_TYPE">
<el-option
v-for="item in getVehicleTypeList"
:key="item.BIANMA"
@ -83,43 +83,43 @@
</el-col>
<el-col :span="6">
<el-form-item label="车主/业主" prop="VEHICLEOWNER">
<el-input v-model="data.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="data.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="data.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="data.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="data.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="data.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="data.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">
<el-form-item label="初登日期" prop="FIRSTSHOW_DATE">
<el-date-picker
v-model="data.form.FIRSTSHOW_DATE"
v-model="form.FIRSTSHOW_DATE"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
@ -130,7 +130,7 @@
<el-col :span="6">
<el-form-item label="发证日期" prop="CERTIFICATE_DATE">
<el-date-picker
v-model="data.form.CERTIFICATE_DATE"
v-model="form.CERTIFICATE_DATE"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
@ -141,7 +141,7 @@
<el-col :span="6">
<el-form-item label="到期日期" prop="EXPIRE_DATE">
<el-date-picker
v-model="data.form.EXPIRE_DATE"
v-model="form.EXPIRE_DATE"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
@ -151,7 +151,7 @@
</el-col>
<el-col :span="6">
<el-form-item label="车载设备" prop="VEHICLE_EQUIPMENT">
<el-select v-model="data.form.VEHICLE_EQUIPMENT">
<el-select v-model="form.VEHICLE_EQUIPMENT">
<el-option
v-for="item in getMobileUnitList"
:key="item.BIANMA"
@ -164,17 +164,17 @@
<el-divider content-position="left">检查内容</el-divider>
<el-col :span="6">
<el-form-item label="车辆品牌" prop="VEHICLE_BRAND">
<el-input v-model="data.form.VEHICLE_BRAND" placeholder="请填写车辆品牌"></el-input>
<el-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="data.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">
<el-form-item label="燃料类型" prop="FUEL_TYPE">
<el-select v-model="data.form.FUEL_TYPE">
<el-select v-model="form.FUEL_TYPE">
<el-option
v-for="item in getFuelTypeList"
:key="item.BIANMA"
@ -186,7 +186,7 @@
</el-col>
<el-col :span="6">
<el-form-item label="排放标准" prop="EMISSION_STANDARD">
<el-select v-model="data.form.EMISSION_STANDARD">
<el-select v-model="form.EMISSION_STANDARD">
<el-option
v-for="item in getEmissionStandardList"
:key="item.BIANMA"
@ -198,28 +198,28 @@
</el-col>
<el-col :span="6">
<el-form-item label="核定总质量" prop="VOUCH_TOTALMASS">
<el-input v-model="data.form.VOUCH_TOTALMASS" placeholder="请填写核定总质量"></el-input>
<el-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="data.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="data.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="data.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">
<el-form-item label="备注" prop="REMARK">
<el-input
v-model="data.form.REMARK"
v-model="form.REMARK"
placeholder="请填写备注"
type="textarea"
:autosize="{ minRows: 3 }"
@ -230,34 +230,37 @@
<el-col :span="7">
<el-form-item label="上传车头图片" prop="HEADSTOCK_PHOTO">
<layout-upload
v-model:file-list="data.form.HEADSTOCK_PHOTO"
v-model:file-list="form.HEADSTOCK_PHOTO"
list-type="picture-card"
accept=".jpg,.jpeg,.png"
delete-to-server
/>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="上传行驶证照片" prop="DRIVINGLICENSE_PHOTO">
<layout-upload
v-model:file-list="data.form.DRIVINGLICENSE_PHOTO"
v-model:file-list="form.DRIVINGLICENSE_PHOTO"
list-type="picture-card"
accept=".jpg,.jpeg,.png"
delete-to-server
/>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="上传营运证照片" prop="OPERATING_CERTIFICATE_PHOTO">
<layout-upload
v-model:file-list="data.form.OPERATING_CERTIFICATE_PHOTO"
v-model:file-list="form.OPERATING_CERTIFICATE_PHOTO"
list-type="picture-card"
accept=".jpg,.jpeg,.png"
delete-to-server
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="车辆资料" prop="VEHICLE_MATERIAL">
<el-input
v-model="data.form.VEHICLE_MATERIAL"
v-model="form.VEHICLE_MATERIAL"
/>
</el-form-item>
</el-col>
@ -270,7 +273,7 @@
</template>
<script setup>
import { reactive, ref } from "vue";
import { ref } from "vue";
import {
layoutFnGetVehicleColor,
layoutFnGetTransportCategory,
@ -282,7 +285,8 @@ import {
} from "@/assets/js/operation_vehicle.js";
import {
findByIdOperatingVehicleInfo,
editOperatingVehicleInfo
editOperatingVehicleInfo,
addOperatingVehicleInfo
} from "@/request/operation_vehicle.js";
import useFormValidate from "@/assets/js/useFormValidate.js";
@ -290,6 +294,8 @@ import LayoutUpload from "@/components/upload/index.vue";
import { ElMessage } from "element-plus";
import { debounce } from "throttle-debounce";
import { useRoute, useRouter } from "vue-router";
import { addingPrefixToFile } from "@/assets/js/utils.js";
import { setUploadImg } from "@/request/api.js";
@ -312,49 +318,47 @@ const rules = {
VEHICLE_EQUIPMENT: [{required: true, message: "车载设备不能为空", trigger: "change"}],
};
const formRef = ref(null);
const data = reactive({
form: {
GOODSSELFNUMBER: "",
PLATE_NUMBER: "",
VEHICLE_COLOR: "",
FRAMES_NUMBER: "",
ENGINE_NUMBER: "",
OPERATING_CERTIFICATE: [],
TRANSPORT_ENTERPRISES: "",
TRANSPORT_TYPE: "",
BELONGING_DEPARTMENT: "",
VEHICLE_TYPE: "",
VEHICLEOWNER: "",
VEHICLEOWNER_NUMBER: "",
VEHICLEOWNER_ADDRESS: "",
CONTACT: "",
CONTACT_NUMBER: "",
HOME_ADDRESS: "",
PHYSICAL_ADDRESS: "",
FIRSTSHOW_DATE: "",
CERTIFICATE_DATE: "",
EXPIRE_DATE: "",
GOVERNMENT_OVERSIGHT: "",
VEHICLE_BRAND: "",
VEHICLE_MODEL: "",
FUEL_TYPE: "",
EMISSION_STANDARD: "",
VOUCH_TOTALMASS: "",
VOUCH_NUMBERLOAD: "",
VOUCH_PAYLOAD: "",
RACTIONMASS_QUALITY: "",
REMARK: "",
HEADSTOCK_PHOTO: [],
DRIVINGLICENSE_PHOTO: [],
OPERATING_CERTIFICATE_PHOTO: [],
NETWORK_STATUS: "",
DYNAMIC_SUPERVISION: "",
ACTIVE_SAFETY: "",
DRIVINGPREMIT_STATUS: "",
TRANSPORT_CATEGORY: "",
VEHICLE_MATERIAL: "",
FREIGHT_TYPE: "",
},
const form = ref({
GOODSSELFNUMBER: "",
PLATE_NUMBER: "",
VEHICLE_COLOR: "",
FRAMES_NUMBER: "",
ENGINE_NUMBER: "",
OPERATING_CERTIFICATE: [],
TRANSPORT_ENTERPRISES: "",
TRANSPORT_TYPE: "",
BELONGING_DEPARTMENT: "",
VEHICLE_TYPE: "",
VEHICLEOWNER: "",
VEHICLEOWNER_NUMBER: "",
VEHICLEOWNER_ADDRESS: "",
CONTACT: "",
CONTACT_NUMBER: "",
HOME_ADDRESS: "",
PHYSICAL_ADDRESS: "",
FIRSTSHOW_DATE: "",
CERTIFICATE_DATE: "",
EXPIRE_DATE: "",
GOVERNMENT_OVERSIGHT: "",
VEHICLE_BRAND: "",
VEHICLE_MODEL: "",
FUEL_TYPE: "",
EMISSION_STANDARD: "",
VOUCH_TOTALMASS: "",
VOUCH_NUMBERLOAD: "",
VOUCH_PAYLOAD: "",
RACTIONMASS_QUALITY: "",
REMARK: "",
HEADSTOCK_PHOTO: [],
DRIVINGLICENSE_PHOTO: [],
OPERATING_CERTIFICATE_PHOTO: [],
NETWORK_STATUS: "",
DYNAMIC_SUPERVISION: "",
ACTIVE_SAFETY: "",
DRIVINGPREMIT_STATUS: "",
TRANSPORT_CATEGORY: "",
VEHICLE_MATERIAL: "",
FREIGHT_TYPE: ""
});
const getVehicleColorList = await layoutFnGetVehicleColor();
const getTransportCategoryList = await layoutFnGetTransportCategory();
@ -365,40 +369,56 @@ const getVehicleTypeList = await layoutFnGetVehicleType();
const getMobileUnitList = await layoutFnGetMobileUnit();
const fnGetData = async () => {
if(OPERATING_ID) {
const resData = await findByIdOperatingVehicleInfo({ OPERATING_ID });
data.form = resData.pd;
}
if (!OPERATING_ID) return;
const resData = await findByIdOperatingVehicleInfo({ OPERATING_ID });
form.value = resData.pd;
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 formData = new FormData();
Object.keys(data.form).forEach((key) => {
formData.append(key, data.form[key]);
});
formData.delete("HEADSTOCK_PHOTO");
formData.delete("DRIVINGLICENSE_PHOTO");
formData.delete("OPERATING_CERTIFICATE_PHOTO");
if(data.form.HEADSTOCK_PHOTO){
if (data.form.HEADSTOCK_PHOTO[0].raw) formData.append("headstockFile", data.form.HEADSTOCK_PHOTO[0].raw);
formData.append("headstockFileType", !!data.form.HEADSTOCK_PHOTO[0].raw);
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)
}
}
if(data.form.DRIVINGLICENSE_PHOTO){
if (data.form.DRIVINGLICENSE_PHOTO[0].raw) formData.append("drivinglicenseFile", data.form.DRIVINGLICENSE_PHOTO[0].raw);
formData.append("drivinglicenseFileType", !!data.form.DRIVINGLICENSE_PHOTO[0].raw);
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)
}
}
if(data.form.OPERATING_CERTIFICATE_PHOTO){
if (data.form.OPERATING_CERTIFICATE_PHOTO[0].raw) formData.append("operatingCertificateFile", data.form.OPERATING_CERTIFICATE_PHOTO[0].raw);
formData.append("operatingCertificateFileType", !!data.form.OPERATING_CERTIFICATE_PHOTO[0].raw);
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)
}
}
await editOperatingVehicleInfo(formData);
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

@ -45,15 +45,6 @@
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="归属部门" prop="BELONGING_DEPARTMENT">
<el-input
v-model="searchForm.BELONGING_DEPARTMENT"
placeholder="请填写归属部门"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="入网状态" prop="NETWORK_STATUS">
<el-select v-model="searchForm.NETWORK_STATUS">
@ -88,7 +79,7 @@
</el-button>
</el-form-item>
</el-col>
<el-col :span="6">
<el-col :span="30">
<el-form-item label-width="10px" class="end">
<el-button >导出</el-button>
</el-form-item>
@ -117,7 +108,7 @@
<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="BELONGING_DEPARTMENT" label="归属部门" width="140" show-overflow-tooltip />
<el-table-column label="操作" width="150">
<template v-slot="{ row }">
<el-button
@ -208,7 +199,6 @@ const { list, pagination, searchForm, fnGetData, fnResetPagination } =
const troubleshootingCycleList = await layoutFnGetVehicleColor();
const networkStatusLevelList = await layoutFnGetNetworkStatus();
const activeSafety = await layoutFnGetActiveSafety();
console.log(list,"userListData");
const fnGetDataTransfer = () => {
fnGetData({
DEPTIDS: searchForm.value.DEPTIDS?.join(","),
@ -226,6 +216,7 @@ const fnDelete = debounce(
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
await setOperationVehicleDelete({ OPERATING_ID })
ElMessage.success("删除成功");
fnGetDataTransfer();
},
{ atBegin: true }
);

View File

@ -3,120 +3,129 @@
<el-divider content-position="left">车辆档案</el-divider>
<el-descriptions border>
<el-descriptions-item label="车牌号">
{{ data.PLATE_NUMBER }}
{{ info.PLATE_NUMBER }}
</el-descriptions-item>
<el-descriptions-item label="车辆颜色">
{{ data.VEHICLE_COLOR }}
{{ info.VEHICLE_COLOR }}
</el-descriptions-item>
<el-descriptions-item label="车架号">
{{ data.FRAMES_NUMBER }}
{{ info.FRAMES_NUMBER }}
</el-descriptions-item>
<el-descriptions-item label="发动机号">
{{ data.ENGINE_NUMBER }}
{{ info.ENGINE_NUMBER }}
</el-descriptions-item>
<el-descriptions-item label="营运证号">
{{ data.OPERATING_CERTIFICATE }}
{{ info.OPERATING_CERTIFICATE }}
</el-descriptions-item>
<el-descriptions-item label="运输类别">
{{ data.TRANSPORT_TYPE }}
{{ info.TRANSPORT_TYPE }}
</el-descriptions-item>
<el-descriptions-item label="初登日期">
{{ data.FIRSTSHOW_DATE }}
{{ info.FIRSTSHOW_DATE }}
</el-descriptions-item>
<el-descriptions-item label="发证日期">
{{ data.CERTIFICATE_DATE }}
{{ info.CERTIFICATE_DATE }}
</el-descriptions-item>
<el-descriptions-item label="到期日期">
{{ data.EXPIRE_DATE }}
{{ info.EXPIRE_DATE }}
</el-descriptions-item>
<el-descriptions-item label="车主/业主">
{{ data.VEHICLEOWNER }}
{{ info.VEHICLEOWNER }}
</el-descriptions-item>
<el-descriptions-item label="车主电话">
{{ data.VEHICLEOWNER_NUMBER }}
{{ info.VEHICLEOWNER_NUMBER }}
</el-descriptions-item>
<el-descriptions-item label="归属地区">
{{ data.HOME_TERRITORY }}
{{ info.HOME_TERRITORY }}
</el-descriptions-item>
<el-descriptions-item label="车主住址">
{{ data.VEHICLEOWNER_ADDRESS }}
{{ info.VEHICLEOWNER_ADDRESS }}
</el-descriptions-item>
<el-descriptions-item label="联系人">
{{ data.CONTACT }}
{{ info.CONTACT }}
</el-descriptions-item>
<el-descriptions-item label="联系电话">
{{ data.CONTACT_NUMBER }}
{{ info.CONTACT_NUMBER }}
</el-descriptions-item>
<el-descriptions-item label="家庭住址">
{{ data.HOME_ADDRESS }}
{{ info.HOME_ADDRESS }}
</el-descriptions-item>
<el-descriptions-item label="实际住址">
{{ data.PHYSICAL_ADDRESS }}
{{ info.PHYSICAL_ADDRESS }}
</el-descriptions-item>
</el-descriptions>
<el-divider content-position="left">详细信息</el-divider>
<el-descriptions border>
<el-descriptions-item label="车辆品牌">
{{ data.VEHICLE_BRAND }}
{{ info.VEHICLE_BRAND }}
</el-descriptions-item>
<el-descriptions-item label="车辆型号">
{{ data.VEHICLE_MODEL }}
{{ info.VEHICLE_MODEL }}
</el-descriptions-item>
<el-descriptions-item label="燃料类型">
{{ data.FUEL_TYPE }}
{{ info.FUEL_TYPE }}
</el-descriptions-item>
<el-descriptions-item label="排放标准">
{{ data.EMISSION_STANDARD }}
{{ info.EMISSION_STANDARD }}
</el-descriptions-item>
<el-descriptions-item label="核定总质量">
{{ data.VOUCH_TOTALMASS }}
{{ info.VOUCH_TOTALMASS }}
</el-descriptions-item>
<el-descriptions-item label="核定载质量">
{{ data.VOUCH_PAYLOAD }}
{{ info.VOUCH_PAYLOAD }}
</el-descriptions-item>
<el-descriptions-item label="准牵引质量">
{{ data.RACTIONMASS_QUALITY }}
{{ info.RACTIONMASS_QUALITY }}
</el-descriptions-item>
<el-descriptions-item label="运输类别">
{{ data.TRANSPORT_TYPE }}
{{ info.TRANSPORT_TYPE }}
</el-descriptions-item>
</el-descriptions>
<el-descriptions :column="1" border>
<el-descriptions-item label="备注">
{{ data.REMARK }}
{{ info.REMARK }}
</el-descriptions-item>
</el-descriptions>
<el-divider content-position="left">相关照片</el-divider>
<el-descriptions :column="3" border>
<el-descriptions-item label="车头照片">
<img
v-for="item in info.HEADSTOCK_PHOTO"
:key="item.FILEPATH"
v-viewer
:src="VITE_FILE_URL + data.HEADSTOCK_PHOTO"
:src="item.url"
width="100"
height="100"
alt=""
class="ml-10"
/>
</el-descriptions-item>
<el-descriptions-item label="行驶证照片">
<img
v-for="item in info.DRIVINGLICENSE_PHOTO"
:key="item.FILEPATH"
v-viewer
:src="VITE_FILE_URL + data.DRIVINGLICENSE_PHOTO"
:src="item.url"
width="100"
height="100"
alt=""
class="ml-10"
/>
</el-descriptions-item>
<el-descriptions-item label="营运证照片">
<img
v-for="item in info.OPERATING_CERTIFICATE_PHOTO"
:key="item.FILEPATH"
v-viewer
:src="VITE_FILE_URL + data.OPERATING_CERTIFICATE_PHOTO"
:src="item.url"
width="100"
height="100"
alt=""
class="ml-10"
/>
</el-descriptions-item>
<el-descriptions-item label="车辆资料">
{{ data.VEHICLE_MATERIAL }}
{{ info.VEHICLE_MATERIAL }}
</el-descriptions-item>
</el-descriptions>
</layout-card>
@ -126,16 +135,25 @@
import { findByIdOperatingVehicleInfo } from "@/request/operation_vehicle.js";
import { useRoute } from "vue-router";
import { ref } from "vue";
const VITE_FILE_URL = import.meta.env.VITE_FILE_URL;
import { addingPrefixToFile } from "@/assets/js/utils.js";
const route = useRoute();
const { OPERATING_ID } = route.query;
const data = ref({});
const getData = async () => {
const { pd } = await findByIdOperatingVehicleInfo({ OPERATING_ID });
data.value = pd;
const info = ref({});
const fnGetData = async () => {
if (!OPERATING_ID) return;
const resData = await findByIdOperatingVehicleInfo({OPERATING_ID});
info.value = resData.pd;
info.value.HEADSTOCK_PHOTO = addingPrefixToFile(
resData.headstockphoto
);
info.value.DRIVINGLICENSE_PHOTO = addingPrefixToFile(
resData.drivinglicensephoto
);
info.value.OPERATING_CERTIFICATE_PHOTO = addingPrefixToFile(
resData.operatingcertificatephoto
);
};
getData();
fnGetData();
</script>
<style scoped></style>

View File

@ -24,6 +24,7 @@
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="检查状态" prop="TYPE">
<el-select
@ -35,6 +36,7 @@
</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>

View File

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

View File

@ -97,6 +97,8 @@
v-model:file-list="form.VEHICLE.RAW_DRIVINGLICENSE_IMG"
list-type="picture-card"
accept=".jpg,.jpeg,.png"
delete-to-server
disabled
/>
</el-form-item>
</el-col>
@ -195,6 +197,7 @@
v-model:file-list="form.NOW_VEHICLE_OPERATION_CERTIFICATE"
list-type="picture-card"
accept=".jpg,.jpeg,.png"
delete-to-server
/>
</el-form-item>
</el-col>
@ -204,6 +207,7 @@
v-model:file-list="form.NOW_DRIVINGLICENSE_IMG"
list-type="picture-card"
accept=".jpg,.jpeg,.png"
delete-to-server
/>
</el-form-item>
</el-col>
@ -279,9 +283,20 @@ onMounted(async () => {
const getFreightVehicleList = await getFreightTrailerList();
const getOperationList = await getOperationVehicleList();
console.log(getOperationList,'55555555');
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 rules = {
ASSIGNED_VEHICLE_MODEL: [{ required: true, message: "过户车型不能为空", trigger: "change" }],
ASSIGNED_VEHICLE: [{ required: true, message: "过户车辆不能为空", trigger: "blur" }],
@ -291,6 +306,19 @@ const rules = {
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" },
{
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: "请输入正确的手机号码",
},
],
NOW_PLATE_NUMBER: [
{ required: true, message: "请输入现车牌号", trigger: "blur" },
{ validator: isVehicleNumber, trigger: "blur" },
],
};
const formRef = ref(null);
const form = ref({
@ -368,6 +396,7 @@ const fnGetVehicleInfo = async () => {
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
@ -375,7 +404,6 @@ const fnGetVehicleInfo = async () => {
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
@ -386,6 +414,9 @@ const fnGetVehicleInfo = async () => {
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 === "货运挂车") {
@ -411,6 +442,9 @@ const fnGetVehicleInfo = async () => {
form.value.ENGINE_NUMBER = info.value.TRAILER_MODEL;
form.value.POWER_TYPE = info.value.TRAILER_MODEL;
form.value.VEHICLE.RAW_DRIVINGLICENSE_IMG = addingPrefixToFile(
resData.drivingLicenseImgs
)
}
}
}

View File

@ -3,97 +3,103 @@
<el-divider content-position="left">基本信息</el-divider>
<el-descriptions border>
<el-descriptions-item label="登记编号">
{{ data.RECORD_NUMBER }}
{{ info.RECORD_NUMBER }}
</el-descriptions-item>
<el-descriptions-item label="办理日期">
{{ data.TRANSACTION_DATE }}
{{ info.TRANSACTION_DATE }}
</el-descriptions-item>
<el-descriptions-item label="登记人">
{{ data.REGISTRANT }}
{{ info.REGISTRANT }}
</el-descriptions-item>
<el-descriptions-item label="过户类型">
{{ data.ASSIGNED_TYPE }}
{{ info.ASSIGNED_TYPE }}
</el-descriptions-item>
<el-descriptions-item label="车辆类型">
{{ data.VEHICLE_TYPE }}
{{ info.VEHICLE_TYPE }}
</el-descriptions-item>
<el-descriptions-item label="车架号">
{{ data.FRAMES_NUMBER }}
{{ info.FRAMES_NUMBER }}
</el-descriptions-item>
<el-descriptions-item label="车辆类型">
{{ data.VEHICLE_TYPE }}
{{ info.VEHICLE_TYPE }}
</el-descriptions-item>
<el-descriptions-item label="车辆品牌">
{{ data.VEHICLE_BRAND }}
{{ info.VEHICLE_BRAND }}
</el-descriptions-item>
<el-descriptions-item label="车辆型号">
{{ data.VEHICLE_MODEL }}
{{ info.VEHICLE_MODEL }}
</el-descriptions-item>
<el-descriptions-item label="发动机号">
{{ data.ENGINE_NUMBER }}
{{ info.ENGINE_NUMBER }}
</el-descriptions-item>
<el-descriptions-item label="动力类型">
{{ data.POWER_TYPE }}
{{ info.POWER_TYPE }}
</el-descriptions-item>
<el-descriptions-item label="排放标准">
{{ data.EMISSION_STANDARD }}
{{ info.EMISSION_STANDARD }}
</el-descriptions-item>
</el-descriptions>
<el-divider content-position="left">过户信息</el-divider>
<el-descriptions border>
<el-descriptions-item label="原车牌号">
{{ data.RAW_PLATE_NUMBER }}
{{ info.RAW_PLATE_NUMBER }}
</el-descriptions-item>
<el-descriptions-item label="原车主业主">
{{ data.RAW_OWNERS }}
{{ info.RAW_OWNERS }}
</el-descriptions-item>
<el-descriptions-item label="原联系电话">
{{ data.RAW_CONTACT_NUMBER }}
{{ info.RAW_CONTACT_NUMBER }}
</el-descriptions-item>
<el-descriptions-item label="现车牌号">
{{ data.NOW_PLATE_NUMBER }}
{{ info.NOW_PLATE_NUMBER }}
</el-descriptions-item>
<el-descriptions-item label="现车主业主">
{{ data.NOW_OWNERS }}
{{ info.NOW_OWNERS }}
</el-descriptions-item>
<el-descriptions-item label="现联系电话">
{{ data.NOW_CONTACT_NUMBER }}
{{ info.NOW_CONTACT_NUMBER }}
</el-descriptions-item>
<el-descriptions-item label="原营运证号">
{{ data.RAW_OPERATION_CERTIFICATE }}
{{ info.RAW_OPERATION_CERTIFICATE }}
</el-descriptions-item>
<el-descriptions-item label="现营运证号">
{{ data.NOW_OPERATION_CERTIFICATE }}
{{ info.NOW_OPERATION_CERTIFICATE }}
</el-descriptions-item>
</el-descriptions>
<el-descriptions border>
<el-descriptions-item label="现营运证照片">
<img
v-for="item in info.NOW_VEHICLE_OPERATION_CERTIFICATE"
:key="item.FILEPATH"
v-viewer
:src="VITE_FILE_URL + data.NOW_VEHICLE_OPERATION_CERTIFICATE"
:src="item.url"
width="100"
height="100"
alt=""
class="ml-10"
/>
</el-descriptions-item>
<el-descriptions-item label="现行驶证照片">
<img
v-for="item in info.NOW_DRIVINGLICENSE_IMG"
:key="item.FILEPATH"
v-viewer
:src="VITE_FILE_URL + data.NOW_DRIVINGLICENSE_IMG"
:src="item.url"
width="100"
height="100"
alt=""
class="ml-10"
/>
</el-descriptions-item>
</el-descriptions>
<el-descriptions :column="1" border>
<el-descriptions-item label="过户资料">
{{ data.ASSIGNED_MATERIAL }}
{{ info.ASSIGNED_MATERIAL }}
</el-descriptions-item>
</el-descriptions>
<el-descriptions :column="1" border>
<el-descriptions-item label="备注">
{{ data.REMARK }}
{{ info.REMARK }}
</el-descriptions-item>
</el-descriptions>
</layout-card>
@ -103,14 +109,20 @@
import { findByIdAssignedManageInfo } from "@/request/assigned_manage.js";
import { useRoute } from "vue-router";
import { ref } from "vue";
import { addingPrefixToFile } from "@/assets/js/utils.js";
const VITE_FILE_URL = import.meta.env.VITE_FILE_URL;
const route = useRoute();
const { ASSIGNED_ID } = route.query;
const data = ref({});
const info = ref({});
const getData = async () => {
const { pd } = await findByIdAssignedManageInfo({ ASSIGNED_ID });
data.value = pd;
const resData = await findByIdAssignedManageInfo({ ASSIGNED_ID });
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

@ -126,11 +126,12 @@
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="行驶证照片" prop="DRIVINGLICENSE_PHOTO">
<el-form-item label="行驶证照片" prop="DRIVING_LICENSE_IMG">
<layout-upload
v-model:file-list="form.VEHICLE.DRIVINGLICENSE_PHOTO"
v-model:file-list="form.DRIVING_LICENSE_IMG"
list-type="picture-card"
accept=".jpg,.jpeg,.png"
disabled
/>
</el-form-item>
</el-col>
@ -191,7 +192,7 @@ import {
layoutFnGetScrapType,
} from "@/request/scrap_manage.js";
import {
getFreightTrailerList
getFreightTrailerList, getFreightTrailerView
} from "@/request/enterprise_management.js";
import {
getOperationVehicleList,
@ -202,6 +203,7 @@ import { debounce } from "throttle-debounce";
import useFormValidate from "@/assets/js/useFormValidate.js";
import { useRoute, useRouter } from "vue-router";
import { ElMessage } from "element-plus";
import { addingPrefixToFile } from "@/assets/js/utils.js";
const route = useRoute();
const router = useRouter();
@ -260,11 +262,13 @@ const form = ref({
},
ALLVEHICLE: {},
OPERATIONVEHICLELIST: [],
FREIGHTVEHICLELIST: []
FREIGHTVEHICLELIST: [],
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
@ -291,7 +295,6 @@ const fnGetVehicleInfo = async () => {
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
@ -303,6 +306,9 @@ const fnGetVehicleInfo = async () => {
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 === '货运挂车'){
@ -329,7 +335,13 @@ const fnGetVehicleInfo = async () => {
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
);
}
}
}
}
@ -343,12 +355,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

@ -201,6 +201,7 @@ const fnDelete = debounce(
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
await setScrapManageDelete({ SCRAP_ID })
ElMessage.success("删除成功");
fnGetDataTransfer();
},
{ atBegin: true }
);

View File

@ -3,22 +3,22 @@
<el-divider content-position="left">车辆选择</el-divider>
<el-form
ref="formRef"
:model="data.form"
:model="form"
:rules="rules"
label-width="100px"
>
<el-row>
<el-col :span="6">
<el-form-item label="挂车车辆" prop="TRAILER_VEHICLE">
<el-form-item label="挂车车辆" prop="FREIGHTTRAILER_ID">
<el-select
v-model="data.form.TRAILER_VEHICLE"
v-model="form.FREIGHTTRAILER_ID"
@change="fnGetTrailerInfo"
>
<el-option
v-for="item in getTrailerList"
:key="item.PLATE_NUMBER"
:label="item.PLATE_NUMBER"
:value="(data.TRAILERRECORD_NUMBER = item.FREIGHTTRAILER_ID)"
:value="item.FREIGHTTRAILER_ID"
/>
</el-select>
</el-form-item>
@ -26,7 +26,7 @@
<el-col :span="6">
<el-form-item label="登记编号" prop="RECORD_NUMBER">
<el-input
v-model="data.form.RECORD_NUMBER"
v-model="form.RECORD_NUMBER"
placeholder="请输入登记编号"
/>
</el-form-item>
@ -36,7 +36,7 @@
<el-row>
<el-col :span="6">
<el-form-item label="车牌号" prop="PLATE_NUMBER">
<el-input v-model="data.Trailer.PLATE_NUMBER"
<el-input v-model="form.PLATE_NUMBER"
placeholder="--"
disabled
/>
@ -44,7 +44,7 @@
</el-col>
<el-col :span="6">
<el-form-item label="车架号" prop="FRAMES_NUMBER">
<el-input v-model="data.Trailer.VIN"
<el-input v-model="form.FRAMES_NUMBER"
placeholder="--"
disabled
/>
@ -52,7 +52,7 @@
</el-col>
<el-col :span="6">
<el-form-item label="车辆类型" prop="VEHICLE_TYPE">
<el-input v-model="data.Trailer.TRAILER_TYPE"
<el-input v-model="form.VEHICLE_TYPE"
placeholder="--"
disabled
/>
@ -62,7 +62,7 @@
<el-row>
<el-col :span="6">
<el-form-item label="车主业主" prop="CAR_OWNERS">
<el-input v-model="data.Trailer.CAR_OWNERS"
<el-input v-model="form.CAR_OWNERS"
placeholder="--"
disabled
/>
@ -71,7 +71,7 @@
<el-col :span="6">
<el-form-item label="车主电话" prop="VEHICLEOWNER_NUMBER">
<el-input
v-model="data.Trailer.CAR_OWNERS_TEL"
v-model="form.VEHICLEOWNER_NUMBER"
placeholder="--"
disabled
/>
@ -80,7 +80,7 @@
<el-col :span="6">
<el-form-item label="初登日期" prop="FIRSTSHOW_DATE">
<el-input
v-model="data.Trailer.INITIAL_REGISTRATION_DATE"
v-model="form.FIRSTSHOW_DATE"
placeholder="--"
disabled
/>
@ -90,7 +90,7 @@
<el-row>
<el-col :span="6">
<el-form-item label="所属省份" prop="PROVINCE">
<el-input v-model="data.Trailer.PROVINCE"
<el-input v-model="form.Trailer.PROVINCE"
placeholder="--"
disabled
/>
@ -98,7 +98,7 @@
</el-col>
<el-col :span="6">
<el-form-item label="所属地市" prop="CITY">
<el-input v-model="data.form.CITY"
<el-input v-model="form.CITY"
placeholder="--"
disabled
/>
@ -106,7 +106,7 @@
</el-col>
<el-col :span="6">
<el-form-item label="所属区县" prop="COUNTY">
<el-input v-model="data.form.COUNTY"
<el-input v-model="form.COUNTY"
placeholder="--"
disabled
/>
@ -117,9 +117,10 @@
<el-col :span="6">
<el-form-item label="行驶证照片" prop="DRIVINGLICENSE_PHOTO">
<layout-upload
v-model:file-list="data.form.DRIVINGLICENSE_PHOTO"
v-model:file-list="form.DRIVINGLICENSE_PHOTO"
list-type="picture-card"
accept=".jpg,.jpeg,.png"
disabled
/>
</el-form-item>
</el-col>
@ -129,7 +130,7 @@
<el-col :span="6">
<el-form-item label="车主业主" prop="VEHICLEOWNER">
<el-input
v-model="data.form.VEHICLEOWNER"
v-model="form.VEHICLEOWNER"
placeholder="请填写车主业主"
/>
</el-form-item>
@ -137,7 +138,7 @@
<el-col :span="6">
<el-form-item label="联系电话" prop="CONTACT_NUMBER">
<el-input
v-model="data.form.CONTACT_NUMBER"
v-model="form.CONTACT_NUMBER"
placeholder="请填写联系电话"
/>
</el-form-item>
@ -145,7 +146,7 @@
<el-col :span="6">
<el-form-item label="登记人" prop="REGISTRANT">
<el-input
v-model="data.form.REGISTRANT"
v-model="form.REGISTRANT"
placeholder="请填写登记人"
/>
</el-form-item>
@ -155,7 +156,7 @@
<el-col :span="6">
<el-form-item label="办理日期" prop="TRANSACTION_DATA">
<el-date-picker
v-model="data.form.TRANSACTION_DATA"
v-model="form.TRANSACTION_DATA"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
@ -165,7 +166,7 @@
</el-col>
<el-col :span="6">
<el-form-item label="税务周期" prop="TAXESDUES_PERIOD">
<el-select v-model="data.form.TAXESDUES_PERIOD">
<el-select v-model="form.TAXESDUES_PERIOD">
<el-option
v-for="item in TaxesPeriodList"
:key="item.BIANMA"
@ -178,7 +179,7 @@
<el-col :span="6">
<el-form-item label="到期日期" prop="EXPIRE_DATE">
<el-date-picker
v-model="data.form.EXPIRE_DATE"
v-model="form.EXPIRE_DATE"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
@ -191,7 +192,7 @@
<el-col :span="6">
<el-form-item label="提醒天数" prop="REMINDER_DAY">
<el-input
v-model="data.form.REMINDER_DAY"
v-model="form.REMINDER_DAY"
placeholder="请填写提醒天数"
/>
</el-form-item>
@ -199,7 +200,7 @@
<el-col :span="6">
<el-form-item label="提醒日期" prop="REMINDER_DATA">
<el-date-picker
v-model="data.form.REMINDER_DATA"
v-model="form.REMINDER_DATA"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
@ -210,7 +211,7 @@
<el-col :span="6">
<el-form-item label="提醒状态">
<el-switch
v-model="data.form.REMINDER_STATUS"
v-model="form.REMINDER_STATUS"
active-value="0"
inactive-value="1"
/>
@ -221,7 +222,7 @@
<el-col :span="24">
<el-form-item label="税费资料" prop="TAXESDUES_MATERIAL">
<el-input
v-model="data.form.TAXESDUES_MATERIAL"
v-model="form.TAXESDUES_MATERIAL"
placeholder="请填写税费资料"
type="textarea"
:autosize="{ minRows: 3 }"
@ -233,7 +234,7 @@
<el-col :span="24">
<el-form-item label="备注" prop="REMARK">
<el-input
v-model="data.form.REMARK"
v-model="form.REMARK"
placeholder="请填写备注"
type="textarea"
:autosize="{ minRows: 3 }"
@ -249,7 +250,7 @@
</template>
<script setup>
import { reactive, ref } from "vue";
import { ref } from "vue";
import {
layoutFnGetTaxesPeriod,
layoutFnGetTrailerList,
@ -262,6 +263,7 @@ import { getFreightTrailerView } from "@/request/enterprise_management.js";
import { ElMessage } from "element-plus";
import { useRouter } from "vue-router";
import { addingPrefixToFile } from "@/assets/js/utils.js";
const router = useRouter();
const TaxesPeriodList = await layoutFnGetTaxesPeriod();
const getTrailerList = await layoutFnGetTrailerList();
@ -274,7 +276,13 @@ const rules = {
{ required: true, message: "车主/业主不能为空", trigger: "blur" },
],
CONTACT_NUMBER: [
{ required: true, message: "联系电话不能为空", trigger: "blur" },
{ 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" }],
TRANSACTION_DATA: [
@ -292,87 +300,74 @@ const rules = {
REMINDER_DATA: [
{ required: true, message: "提醒日期不能为空", trigger: "change" },
],
DRIVINGLICENSE_PHOTO: [
{ required: true, message: "行驶证照片不能为空", trigger: "change" },
],
};
const formRef = ref(null);
const data = reactive({
form: {
TAXATION_ID: "",
RECORD_NUMBER: "",
PLATE_NUMBER: "",
VEHICLEOWNER: "",
CONTACT_NUMBER: "",
TRANSACTION_DATA: "",
TAXESDUES_PERIOD: "",
EXPIRE_DATE: "",
REGISTRANT: "",
TRANSPORT_ENTERPRISES: "",
REMINDER_STATUS: "",
EXPIRE_STATUS: "",
RECORD_STATUS: "",
TRAILER_VEHICLE: "",
FRAMES_NUMBER: "",
VEHICLE_TYPE: "",
VEHICLEOWNER_NUMBER: "",
FIRSTSHOW_DATE: "",
PROVINCE: "",
CITY: "",
COUNTY: "",
REMINDER_DAY: "",
REMINDER_DATA: "",
TAXESDUES_MATERIAL: "",
REMARK: "",
REGISTER_NUMBER: "",
VEHICLE_MODEL: "",
VEHICLE_BRAND: "",
DRIVINGLICENSE_PHOTO: [],
},
const form = ref({
FREIGHTTRAILER_ID: "",
TAXATION_ID: "",
RECORD_NUMBER: "",
PLATE_NUMBER: "",
VEHICLEOWNER: "",
CONTACT_NUMBER: "",
TRANSACTION_DATA: "",
TAXESDUES_PERIOD: "",
EXPIRE_DATE: "",
REGISTRANT: "",
TRANSPORT_ENTERPRISES: "",
REMINDER_STATUS: "",
EXPIRE_STATUS: "",
RECORD_STATUS: "",
TRAILER_VEHICLE: "",
FRAMES_NUMBER: "",
VEHICLE_TYPE: "",
VEHICLEOWNER_NUMBER: "",
FIRSTSHOW_DATE: "",
PROVINCE: "",
CITY: "",
COUNTY: "",
REMINDER_DAY: "",
REMINDER_DATA: "",
TAXESDUES_MATERIAL: "",
REMARK: "",
REGISTER_NUMBER: "",
VEHICLE_MODEL: "",
VEHICLE_BRAND: "",
DRIVINGLICENSE_PHOTO: [],
TrailerInfo: [],
TRAILERRECORD_NUMBER: "",
Trailer: {},
CAR_OWNERS: "",
DRIVING_LICENSE_IMG: []
});
data.TrailerInfo = getTrailerList;
const info = ref({});
form.value.TrailerInfo = getTrailerList;
const fnGetTrailerInfo = async () => {
const FREIGHTTRAILER_ID = data.form.TRAILER_VEHICLE;
const FREIGHTTRAILER_ID = form.value.FREIGHTTRAILER_ID;
form.value.FREIGHTTRAILER_ID = FREIGHTTRAILER_ID
const resData = await getFreightTrailerView({ FREIGHTTRAILER_ID });
info.value = resData.pd;
info.value.TRAILER_IMG = addingPrefixToFile(resData.trailerImgs);
info.value.DRIVING_LICENSE_IMG = addingPrefixToFile(
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
);
info.value.OPER_CERTIFICATE_IMG = addingPrefixToFile(
resData.operCertificateImgs
);
info.value.TRAILER_INFO = addingPrefixToFile(resData.trailerInfoImgs);
data.Trailer = info.value
data.form.PLATE_NUMBER = data.Trailer.PLATE_NUMBER
data.form.FRAMES_NUMBER = data.Trailer.VIN
data.form.VEHICLE_TYPE = data.Trailer.TRAILER_TYPE
data.form.VEHICLEOWNER_NUMBER = data.Trailer.CAR_OWNERS_TEL
data.form.FIRSTSHOW_DATE = data.Trailer.INITIAL_REGISTRATION_DATE
data.form.DRIVINGLICENSE_PHOTO = data.Trailer.DRIVING_LICENSE_IMG
data.form.VEHICLE_MODEL = data.Trailer.TRAILER_MODEL
data.form.VEHICLE_BRAND = data.Trailer.TRAILER_BRAND
};
const fnSubmit = debounce(
1000,
async () => {
await useFormValidate(formRef);
const formData = new FormData();
Object.keys(data.form).forEach((key) => {
formData.append(key, data.form[key]);
});
formData.delete("DRIVINGLICENSE_PHOTO");
if (data.form.DRIVINGLICENSE_PHOTO[0].raw)
formData.append(
"drivinglicenseFile",
data.form.DRIVINGLICENSE_PHOTO[0].raw
);
formData.append(
"drivinglicenseFileType",
!!data.form.DRIVINGLICENSE_PHOTO[0].raw
);
await setTaxationManageAdd(formData);
await setTaxationManageAdd({...form.value} )
ElMessage.success("提交成功");
router.back();
},

View File

@ -3,19 +3,19 @@
<el-divider content-position="left">车辆选择</el-divider>
<el-form
ref="formRef"
:model="data.form"
:model="form"
:rules="rules"
label-width="100px"
>
<el-row>
<el-col :span="6">
<el-form-item label="登记编号" prop="RECORD_NUMBER">
<el-input v-model="data.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="data.form.PLATE_NUMBER" placeholder="请输入挂车车辆" disabled/>
<el-input v-model="form.PLATE_NUMBER" placeholder="请输入挂车车辆" disabled/>
</el-form-item>
</el-col>
</el-row>
@ -23,7 +23,7 @@
<el-row>
<el-col :span="6">
<el-form-item label="车牌号" prop="PLATE_NUMBER">
<el-input v-model="data.form.PLATE_NUMBER"
<el-input v-model="form.PLATE_NUMBER"
placeholder="--"
disabled
/>
@ -31,7 +31,7 @@
</el-col>
<el-col :span="6">
<el-form-item label="车架号" prop="FRAMES_NUMBER">
<el-input v-model="data.form.FRAMES_NUMBER"
<el-input v-model="form.FRAMES_NUMBER"
placeholder="--"
disabled
/>
@ -39,7 +39,7 @@
</el-col>
<el-col :span="6">
<el-form-item label="车辆类型" prop="VEHICLE_TYPE">
<el-input v-model="data.form.VEHICLE_TYPE"
<el-input v-model="form.VEHICLE_TYPE"
placeholder="--"
disabled
/>
@ -48,8 +48,8 @@
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="车主业主" prop="VEHICLEOWNER">
<el-input v-model="data.form.VEHICLEOWNER"
<el-form-item label="车主业主" prop="CAR_OWNERS">
<el-input v-model="form.CAR_OWNERS"
placeholder="--"
disabled
/>
@ -57,7 +57,7 @@
</el-col>
<el-col :span="6">
<el-form-item label="车主电话" prop="VEHICLEOWNER_NUMBER">
<el-input v-model="data.form.VEHICLEOWNER_NUMBER"
<el-input v-model="form.VEHICLEOWNER_NUMBER"
placeholder="--"
disabled
/>
@ -65,7 +65,7 @@
</el-col>
<el-col :span="6">
<el-form-item label="初登日期" prop="FIRSTSHOW_DATE">
<el-input v-model="data.form.FIRSTSHOW_DATE"
<el-input v-model="form.FIRSTSHOW_DATE"
placeholder="--"
disabled
/>
@ -75,7 +75,7 @@
<el-row>
<el-col :span="6">
<el-form-item label="所属省份" prop="PROVINCE">
<el-input v-model="data.form.PROVINCE"
<el-input v-model="form.PROVINCE"
placeholder="--"
disabled
/>
@ -83,7 +83,7 @@
</el-col>
<el-col :span="6">
<el-form-item label="所属地市" prop="CITY">
<el-input v-model="data.form.CITY"
<el-input v-model="form.CITY"
placeholder="--"
disabled
/>
@ -91,33 +91,48 @@
</el-col>
<el-col :span="6">
<el-form-item label="所属区县" prop="COUNTY">
<el-input v-model="data.form.COUNTY"
<el-input v-model="form.COUNTY"
placeholder="--"
disabled
/>
</el-form-item>
</el-col>
<el-divider content-position="left">挂车税务信息</el-divider>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="行驶证照片" prop="DRIVINGLICENSE_PHOTO">
<layout-upload
v-model:file-list="form.DRIVINGLICENSE_PHOTO"
list-type="picture-card"
accept=".jpg,.jpeg,.png"
disabled
delete-to-server
/>
</el-form-item>
</el-col>
</el-row>
<el-divider content-position="left">挂车税务信息</el-divider>
<el-row>
<el-col :span="6">
<el-form-item label="车主业主" prop="VEHICLEOWNER">
<el-input v-model="data.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="data.form.CONTACT_NUMBER" placeholder="请填写联系电话" />
<el-input v-model="form.CONTACT_NUMBER" placeholder="请填写联系电话" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="登记人" prop="REGISTRANT">
<el-input v-model="data.form.REGISTRANT" placeholder="请填写登记人" />
<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="TAXESDUES_PERIOD">
<el-select v-model="data.form.TAXESDUES_PERIOD">
<el-select v-model="form.TAXESDUES_PERIOD">
<el-option
v-for="item in TaxesPeriodList"
:key="item.BIANMA"
@ -130,7 +145,7 @@
<el-col :span="6">
<el-form-item label="到期日期" prop="EXPIRE_DATE">
<el-date-picker
v-model="data.form.EXPIRE_DATE"
v-model="form.EXPIRE_DATE"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
@ -140,7 +155,7 @@
</el-col>
<el-col :span="6">
<el-form-item label="提醒天数" prop="REMINDER_DAY">
<el-input v-model="data.form.REMINDER_DAY" placeholder="请填写提醒天数" />
<el-input v-model="form.REMINDER_DAY" placeholder="请填写提醒天数" />
</el-form-item>
</el-col>
</el-row>
@ -148,7 +163,7 @@
<el-col :span="6">
<el-form-item label="提醒日期" prop="REMINDER_DATA">
<el-date-picker
v-model="data.form.REMINDER_DATA"
v-model="form.REMINDER_DATA"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
@ -159,7 +174,7 @@
<el-col :span="6">
<el-form-item label="办理日期" prop="TRANSACTION_DATA">
<el-date-picker
v-model="data.form.TRANSACTION_DATA"
v-model="form.TRANSACTION_DATA"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
@ -170,31 +185,18 @@
<el-col :span="6">
<el-form-item label="提醒状态">
<el-switch
v-model="data.form.REMINDER_STATUS"
v-model="form.REMINDER_STATUS"
active-value="0"
inactive-value="1"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="行驶证照片" prop="OPERATING_CERTIFICATE_PHOTO">
<layout-upload
v-model:file-list="data.form.OPERATING_CERTIFICATE_PHOTO"
list-type="picture-card"
accept=".jpg,.jpeg,.png"
delete-to-server
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="税费资料" prop="TAXESDUES_MATERIAL">
<el-input
v-model="data.form.TAXESDUES_MATERIAL"
v-model="form.TAXESDUES_MATERIAL"
placeholder="请填写税费资料"
type="textarea"
:autosize="{ minRows: 3 }"
@ -206,7 +208,7 @@
<el-col :span="24">
<el-form-item label="备注" prop="REMARK">
<el-input
v-model="data.form.REMARK"
v-model="form.REMARK"
placeholder="请填写备注"
type="textarea"
:autosize="{ minRows: 3 }"
@ -222,16 +224,19 @@
</template>
<script setup>
import { reactive, ref } from "vue";
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 { ElMessage } from "element-plus";
import { useRoute, useRouter } from "vue-router";
import LayoutUpload from "@/components/upload/index.vue";
import { addingPrefixToFile } from "@/assets/js/utils.js";
const route = useRoute();
const router = useRouter();
@ -250,68 +255,64 @@ const rules = {
REMINDER_DATA: [{required: true, message: "提醒日期不能为空", trigger: "change"}]
};
const formRef = ref(null);
const data = reactive({
form: {
TAXATION_ID: "",
RECORD_NUMBER: "",
PLATE_NUMBER: "",
VEHICLEOWNER: "",
CONTACT_NUMBER: "",
TRANSACTION_DATA: "",
TAXESDUES_PERIOD: "",
EXPIRE_DATE: "",
REGISTRANT: "",
TRANSPORT_ENTERPRISES: "",
REMINDER_STATUS: "",
EXPIRE_STATUS: "",
RECORD_STATUS: "",
TRAILER_VEHICLE: "",
FRAMES_NUMBER: "",
VEHICLE_TYPE: "",
VEHICLEOWNER_NUMBER: "",
FIRSTSHOW_DATE: "",
PROVINCE: "",
CITY: "",
COUNTY: "",
REMINDER_DAY: "",
REMINDER_DATA: "",
TAXESDUES_MATERIAL: "",
REMARK: "",
REGISTER_NUMBER: "",
VEHICLE_MODEL: "",
VEHICLE_BRAND: "",
DRIVINGLICENSE_PHOTO: ""
},
const form = ref({
TAXATION_ID: "",
RECORD_NUMBER: "",
PLATE_NUMBER: "",
VEHICLEOWNER: "",
CONTACT_NUMBER: "",
TRANSACTION_DATA: "",
TAXESDUES_PERIOD: "",
EXPIRE_DATE: "",
REGISTRANT: "",
TRANSPORT_ENTERPRISES: "",
REMINDER_STATUS: "",
EXPIRE_STATUS: "",
RECORD_STATUS: "",
TRAILER_VEHICLE: "",
FRAMES_NUMBER: "",
VEHICLE_TYPE: "",
VEHICLEOWNER_NUMBER: "",
FIRSTSHOW_DATE: "",
PROVINCE: "",
CITY: "",
COUNTY: "",
REMINDER_DAY: "",
REMINDER_DATA: "",
TAXESDUES_MATERIAL: "",
REMARK: "",
REGISTER_NUMBER: "",
VEHICLE_MODEL: "",
VEHICLE_BRAND: "",
DRIVINGLICENSE_PHOTO: [],
TAXATION_NUMBER: "",
DRIVING_LICENSE_IMG: [],
FREIGHTTRAILER_ID: "",
CAR_OWNERS: ""
});
const fnGetData = async () => {
if(TAXATION_ID) {
const resData = await findByIdTaxationManageInfo({ TAXATION_ID });
data.form = resData.pd;
}
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
)
}
fnGetData();
const fnSubmit = debounce(
1000,
async () => {
await useFormValidate(formRef);
const formData = new FormData();
Object.keys(data.form).forEach((key) => {
formData.append(key, data.form[key]);
});
formData.delete("DRIVINGLICENSE_PHOTO");
if(data.form.DRIVINGLICENSE_PHOTO){
if (data.form.DRIVINGLICENSE_PHOTO[0].raw) formData.append("drivinglicenseFile", data.form.DRIVINGLICENSE_PHOTO[0].raw);
formData.append("drivinglicenseFile", !!data.form.DRIVINGLICENSE_PHOTO[0].raw);
}
await editTaxationManageInfo(formData);
await editTaxationManageInfo({...form.value, TAXATION_ID:TAXATION_ID});
ElMessage.success("提交成功");
router.back();
},
{ atBegin: true }
);
</script>
<style scoped lang="scss"></style>

View File

@ -210,6 +210,7 @@ const fnDelete = debounce(
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
await setTaxatonManageDelete({ TAXATION_ID });
ElMessage.success("删除成功");
fnGetDataTransfer();
},
{ atBegin: true }
);

View File

@ -14,12 +14,6 @@
<el-descriptions-item label="车辆类型">
{{ data.VEHICLE_TYPE }}
</el-descriptions-item>
<el-descriptions-item label="车辆型号">
{{ data.VEHICLE_MODEL }}
</el-descriptions-item>
<el-descriptions-item label="车辆品牌">
{{ data.VEHICLE_BRAND }}
</el-descriptions-item>
<el-descriptions-item label="车主业主">
{{ data.VEHICLEOWNER }}
</el-descriptions-item>

View File

@ -0,0 +1,157 @@
<template>
<layout-card>
<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-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="值班日期" prop="WATCH_DATE">
<el-date-picker
v-model="form.WATCH_DATE"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
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-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="值班人电话" prop="WATCH_PHONE">
<el-input v-model="form.WATCH_PHONE"
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
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>
</div>
</layout-card>
</template>
<script setup>
import { ref } from "vue";
import {
setEnterpriseSafetyProductEdit,
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 rules = {
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" },
{ 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: "请输入正确的手机号码",
},
],
WATCH_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: "请输入正确的手机号码",
},
],
REGISTRANT: [{ required: true, message: "登记人不能为空", trigger: "blur" }],
};
const formRef = ref(null);
const form = ref({
SAFETYPRODUCTION_ID: "",
CORPINFO_ID: "",
WATCHKEEPER: "",
WATCHLEAD: "",
WATCH_DATE: "",
WATCH_TELEPHONE: "",
WATCH_PHONE: "",
REGISTRANT: "",
WATCH_CONDITION: "",
MANAGING_ENTERPRISE: "",
MANAGING_TYPE: ""
});
const fnGetData = async () => {
if (!SAFETYPRODUCTION_ID) return;
const resData = await setEnterpriseSafetyProductEdit({ SAFETYPRODUCTION_ID });
form.value = resData.pd;
};
fnGetData();
const fnSubmit = debounce(
1000,
async () => {
await useFormValidate(formRef);
await setEnterpriseSafetyProductAdd({ ...form.value })
ElMessage.success("提交成功");
router.back();
},
{ atBegin: true }
);
</script>
<style scoped lang="scss"></style>

View File

@ -0,0 +1,146 @@
<template>
<layout-card>
<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-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="值班日期" prop="WATCH_DATE">
<el-date-picker
v-model="form.WATCH_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="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="WATCH_TELEPHONE">
<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-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-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>
</div>
</layout-card>
</template>
<script setup>
import { ref } from "vue";
import {
setEnterpriseSafetyProductEdit,
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";
const route = useRoute();
const router = useRouter();
const SAFETYPRODUCTION_ID = route.query.SAFETYPRODUCTION_ID
const rules = {
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" },
{ 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: "请输入正确的手机号码",
},
],
WATCH_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: "请输入正确的手机号码",
},
],
REGISTRANT: [{ required: true, message: "登记人不能为空", trigger: "blur" }],
};
const formRef = ref(null);
const form = ref({
SAFETYPRODUCTION_ID: "",
CORPINFO_ID: "",
WATCHKEEPER: "",
WATCHLEAD: "",
WATCH_DATE: "",
WATCH_TELEPHONE: "",
WATCH_PHONE: "",
REGISTRANT: "",
WATCH_CONDITION: "",
MANAGING_ENTERPRISE: "",
MANAGING_TYPE: ""
});
const fnGetData = async () => {
if (!SAFETYPRODUCTION_ID) return;
const resData = await setEnterpriseSafetyProductEdit({ SAFETYPRODUCTION_ID });
form.value = resData.pd;
};
fnGetData();
const fnSubmit = debounce(
1000,
async () => {
await useFormValidate(formRef);
await setEnterpriseSafetyProductAdd({ ...form.value })
ElMessage.success("提交成功");
router.back();
},
{ atBegin: true }
);
</script>
<style scoped lang="scss"></style>

View File

@ -0,0 +1,150 @@
<template>
<div>
<el-card>
<el-form
:model="searchForm"
label-width="100px"
@submit.prevent="fnResetPagination"
>
<el-row>
<el-col :span="6">
<el-form-item label="值班人员" prop="WATCHKEEPER">
<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-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="值班日期" prop="WATCH_DATE">
<el-date-picker
v-model="searchForm.WATCH_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-width="10px">
<el-button type="primary" native-type="submit">搜索</el-button>
<el-button native-type="reset" @click="fnResetPagination">
重置
</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-card>
<layout-card>
<layout-table
: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="WATCHKEEPER" label="值班人员" width="130" />
<el-table-column prop="WATCH_DATE" label="值班日期" width="130" />
<el-table-column prop="WATCHLEAD" label="值班领导" width="130" />
<el-table-column prop="WATCH_TELEPHONE" label="值班座机" width="130" />
<el-table-column prop="WATCH_PHONE" label="值班人电话" width="180" />
<el-table-column prop="REGISTRANT" label="登记人" width="130" />
<el-table-column prop="WATCH_CONDITION" label="值班情况" width="200" />
<el-table-column prop="CREATTIME" label="创建时间" width="180" />
<el-table-column prop="OPERATTIME" label="修改时间" width="180" />
<el-table-column label="操作" width="150">
<template #default="{ row }">
<el-button
type="primary"
text
link
@click="
router.push({
path: '/production_course_regulate/enterprise_safety_production_shift/edit',
query: { SAFETYPRODUCTION_ID: row.SAFETYPRODUCTION_ID },
})
"
>
修改
</el-button>
<el-button
v-if="buttonJurisdiction.del"
type="primary"
text
link
@click="fnDelete(row.SAFETYPRODUCTION_ID)"
>
删除
</el-button>
</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>
</template>
</layout-table>
</layout-card>
<edit
v-model:visible="data.analysisDialog.visible"
:info="data.analysisDialog.info"
@get-data="fnResetPagination"
/>
</div>
</template>
<script setup>
import { serialNumber } from "@/assets/js/utils";
import useButtonJurisdiction from "@/assets/js/useButtonJurisdiction.js";
import useListData from "@/assets/js/useListData.js";
import { useRouter } from "vue-router";
import { reactive } from "vue";
import {
getEnterpriseSafetyProductionList,
setEnterpriseSafetyProductDelete
} from "@/request/enterprise_safety_production.js";
import { debounce } from "throttle-debounce";
import { ElMessage, ElMessageBox } from "element-plus";
const router = useRouter();
const { list, pagination, searchForm, fnGetData, fnResetPagination } =
useListData(getEnterpriseSafetyProductionList);
const data = reactive({
analysisDialog: {
visible: false,
info: {},
},
});
const fnDelete = debounce(
1000,
async (SAFETYPRODUCTION_ID) => {
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
await setEnterpriseSafetyProductDelete({ SAFETYPRODUCTION_ID })
ElMessage.success("删除成功");
fnResetPagination();
},
{ atBegin: true }
);
const buttonJurisdiction = await useButtonJurisdiction("enterpriseSafetyProduction");
</script>
<style scoped></style>

View File

@ -0,0 +1,160 @@
<template>
<layout-card>
<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-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="手套" prop="GLOVE">
<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-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="工作服" prop="OVERALL">
<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-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="防寒服" prop="WINTER_COAT">
<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-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="护目镜" prop="GOGGLES">
<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-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="安全帽" prop="HELMET">
<el-input v-model="form.HELMET"
placeholder="请输入安全帽数量"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="其他用品" prop="SUPPLIES">
<el-input
v-model="form.SUPPLIES"
placeholder="请输入其他用品"
type="textarea"
:autosize="{ minRows: 3 }"
/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="tc mt-10">
<el-button type="primary" @click="fnSubmit"></el-button>
</div>
</layout-card>
</template>
<script setup>
import { ref } from "vue";
import {
setEntrenchThingGrantEdit,
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 rules = {
MANAGING_ENTERPRISE: [{ required: true, message: "经营企业不能为空", trigger: "blur" }],
}
const formRef = ref(null);
const form = ref({
PROTECTIVEEQUIPMENT_ID: "",
CORPINFO_ID: "",
PERSON_NAME: "",
MANAGING_ENTERPRISE: "",
GLOVE: "",
MASK: "",
OVERALL: "",
FOOTWARE: "",
WINTER_COAT: "",
RAINCOAT: "",
GOGGLES: "",
AID_KIT: "",
HELMET: "",
SUPPLIES: "",
MANAGING_TYPE: ""
});
const fnGetData = async () => {
if (!PROTECTIVEEQUIPMENT_ID) return;
const resData = await setEntrenchThingGrantEdit({ PROTECTIVEEQUIPMENT_ID });
form.value = resData.pd;
};
fnGetData();
const fnSubmit = debounce(
1000,
async () => {
await useFormValidate(formRef);
await setEntrenchThingGrantAdd({ ...form.value })
ElMessage.success("提交成功");
router.back();
},
{ atBegin: true }
);
</script>
<style scoped lang="scss"></style>

View File

@ -0,0 +1,148 @@
<template>
<layout-card>
<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-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="手套" prop="GLOVE">
<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-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="工作服" prop="OVERALL">
<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-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="防寒服" prop="WINTER_COAT">
<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-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="护目镜" prop="GOGGLES">
<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-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="安全帽" prop="HELMET">
<el-input v-model="form.HELMET"
placeholder="请输入安全帽数量"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="其他用品" prop="SUPPLIES">
<el-input
v-model="form.SUPPLIES"
placeholder="请输入其他用品"
type="textarea"
:autosize="{ minRows: 3 }"
/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="tc mt-10">
<el-button type="primary" @click="fnSubmit"></el-button>
</div>
</layout-card>
</template>
<script setup>
import { ref } from "vue";
import {
getEntrenchThingGrantEdit,
setEntrenchThingGrantEdit
} 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";
const route = useRoute();
const router = useRouter();
const PROTECTIVEEQUIPMENT_ID = route.query.PROTECTIVEEQUIPMENT_ID
const formRef = ref(null);
const form = ref({
PROTECTIVEEQUIPMENT_ID: "",
CORPINFO_ID: "",
PERSON_NAME: "",
MANAGING_ENTERPRISE: "",
GLOVE: "",
MASK: "",
OVERALL: "",
FOOTWARE: "",
WINTER_COAT: "",
RAINCOAT: "",
GOGGLES: "",
AID_KIT: "",
HELMET: "",
SUPPLIES: "",
MANAGING_TYPE: ""
});
const fnGetData = async () => {
if (!PROTECTIVEEQUIPMENT_ID) return;
const resData = await setEntrenchThingGrantEdit({ PROTECTIVEEQUIPMENT_ID });
form.value = resData.pd;
};
fnGetData();
const fnSubmit = debounce(
1000,
async () => {
await useFormValidate(formRef);
await getEntrenchThingGrantEdit({ ...form.value })
ElMessage.success("提交成功");
router.back();
},
{ atBegin: true }
);
</script>
<style scoped lang="scss"></style>

View File

@ -0,0 +1,136 @@
<template>
<div>
<el-card>
<el-form
:model="searchForm"
label-width="100px"
@submit.prevent="fnResetPagination"
>
<el-row>
<el-col :span="6">
<el-form-item label="人员名称" prop="PERSON_NAME">
<el-input v-model="searchForm.PERSON_NAME"
placeholder="请填写人员名称"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label-width="10px">
<el-button type="primary" native-type="submit">搜索</el-button>
<el-button native-type="reset" @click="fnResetPagination">
重置
</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-card>
<layout-card>
<layout-table
: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="PERSON_NAME" label="人员名称" width="130" />
<el-table-column prop="GLOVE" label="手套" width="130" />
<el-table-column prop="MASK" label="口罩" width="130" />
<el-table-column prop="OVERALL" label="工作服" width="130" />
<el-table-column prop="FOOTWARE" label="工作鞋" width="180" />
<el-table-column prop="WINTER_COAT" label="防寒服" width="130" />
<el-table-column prop="RAINCOAT" label="雨衣" width="200" />
<el-table-column prop="GOGGLES" label="护目镜" width="180" />
<el-table-column prop="AID_KIT" label="急救药箱" width="180" />
<el-table-column prop="HELMET" label="安全帽" width="180" />
<el-table-column prop="SUPPLIES" label="其他用品" width="180" />
<el-table-column prop="CREATTIME" label="创建时间" width="180" />
<el-table-column prop="OPERATTIME" label="修改时间" width="180" />
<el-table-column label="操作" width="150">
<template #default="{ row }">
<el-button
type="primary"
text
link
@click="
router.push({
path: '/production_course_regulate/entrench_thing_grant/edit',
query: { PROTECTIVEEQUIPMENT_ID: row.PROTECTIVEEQUIPMENT_ID },
})
"
>
修改
</el-button>
<el-button
v-if="buttonJurisdiction.del"
type="primary"
text
link
@click="fnDelete(row.PROTECTIVEEQUIPMENT_ID)"
>
删除
</el-button>
</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>
</template>
</layout-table>
</layout-card>
<edit
v-model:visible="data.analysisDialog.visible"
:info="data.analysisDialog.info"
@get-data="fnResetPagination"
/>
</div>
</template>
<script setup>
import { serialNumber } from "@/assets/js/utils";
import useButtonJurisdiction from "@/assets/js/useButtonJurisdiction.js";
import useListData from "@/assets/js/useListData.js";
import { useRouter } from "vue-router";
import { reactive } from "vue";
import {
getEntrenchThingGrantList,
setEntrenchThingGrantDelete
} from "@/request/entrench_thing_grant.js";
import { debounce } from "throttle-debounce";
import { ElMessage, ElMessageBox } from "element-plus";
const router = useRouter();
const { list, pagination, searchForm, fnGetData, fnResetPagination } =
useListData(getEntrenchThingGrantList);
const data = reactive({
analysisDialog: {
visible: false,
info: {},
},
});
const fnDelete = debounce(
1000,
async (PROTECTIVEEQUIPMENT_ID) => {
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
await setEntrenchThingGrantDelete({ PROTECTIVEEQUIPMENT_ID })
ElMessage.success("删除成功");
fnResetPagination();
},
{ atBegin: true }
);
const buttonJurisdiction = await useButtonJurisdiction("enterpriseSafetyProduction");
</script>
<style scoped></style>

View File

@ -0,0 +1,184 @@
<template>
<layout-card>
<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-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="设施名称" prop="FACILITY_NAME">
<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-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="设施数量" prop="FACILITY_COUNT">
<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-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="设施负责人" prop="FACILITY_PRINCIPAL">
<el-input v-model="form.FACILITY_PRINCIPAL"
placeholder="请输入设施负责人"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="登记时间" prop="REGISTRATION_TIME">
<el-date-picker
v-model="form.REGISTRATION_TIME"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
placeholder="请选择登记时间"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="设备设施" prop="EQUIPMENT_FACILITY">
<layout-upload
v-model:file-list="form.EQUIPMENT_FACILITY"
list-type="picture-card"
accept=".jpg,.jpeg,.png"
/>
</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-form>
<div class="tc mt-10">
<el-button type="primary" @click="fnSubmit"></el-button>
</div>
</layout-card>
</template>
<script setup>
import { ref } from "vue";
import {
setFirefightingEquipmentFacilityEdit,
setFirefightingEquipmentFacilityAdd,
getFirefightingEquipmentFacilityView
} from "@/request/firefighting_equipment_facility.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 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 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" }],
};
const formRef = ref(null);
const form = ref({
FIREFIGHTINGFACILITY_ID: "",
CORPINFO_ID: "",
FACILITY_NAME: "",
FACILITY_NUMBER: "",
FACILITY_LOCALTION: "",
CONDUCT_ENTERPRISE: "",
FACILITY_UNIT: "",
FACILITY_COUNT: "",
CONDUCT_TYPE: "",
FACILITY_PRINCIPAL: "",
REGISTRATION_TIME: "",
EQUIPMENT_FACILITY: [],
REMARK: "",
});
const fnGetData = async () => {
if (!FIREFIGHTINGFACILITY_ID) return;
const resData = await getFirefightingEquipmentFacilityView({ FIREFIGHTINGFACILITY_ID });
form.value = resData.pd;
form.value.EQUIPMENT_FACILITY = addingPrefixToFile(
resData.firefightingequipmentImg
);
};
fnGetData();
const fnSubmit = debounce(
1000,
async () => {
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
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);
}
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

@ -0,0 +1,167 @@
<template>
<layout-card>
<el-divider content-position="left">修改</el-divider>
<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-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="设施名称" prop="FACILITY_NAME">
<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-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-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="设施位置" prop="FACILITY_LOCALTION">
<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-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="登记时间" prop="REGISTRATION_TIME">
<el-date-picker
v-model="form.REGISTRATION_TIME"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
placeholder="请选择登记时间"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="设备设施" prop="EQUIPMENT_FACILITY">
<layout-upload
v-model:file-list="form.EQUIPMENT_FACILITY"
list-type="picture-card"
accept=".jpg,.jpeg,.png"
delete-to-server
/>
</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-row>
</el-form>
<div class="tc mt-10">
<el-button type="primary" @click="fnSubmit"></el-button>
</div>
</layout-card>
</template>
<script setup>
import { ref } from "vue";
import { debounce } from "throttle-debounce";
import useFormValidate from "@/assets/js/useFormValidate.js";
import {
getFirefightingEquipmentFacilityView,
getFirefightingEquipmentFacilityEdit,
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 { addingPrefixToFile } from "@/assets/js/utils.js";
import { setUploadImg } from "@/request/api.js";
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" }],
};
const formRef = ref(null);
const form = ref({
FIREFIGHTINGFACILITY_ID: "",
CORPINFO_ID: "",
FACILITY_NAME: "",
FACILITY_NUMBER: "",
FACILITY_LOCALTION: "",
CONDUCT_ENTERPRISE: "",
FACILITY_UNIT: "",
FACILITY_COUNT: "",
CONDUCT_TYPE: "",
FACILITY_PRINCIPAL: "",
REGISTRATION_TIME: "",
EQUIPMENT_FACILITY: [],
REMARK: "",
});
const fnGetData = async () => {
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,
async () => {
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
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);
}
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

@ -0,0 +1,114 @@
<template>
<layout-card>
<el-divider content-position="left">基本信息</el-divider>
<el-descriptions border>
<el-descriptions-item label="设施名称">
{{ data.FACILITY_NAME }}
</el-descriptions-item>
<el-descriptions-item label="设施单位">
{{ data.FACILITY_UNIT }}
</el-descriptions-item>
<el-descriptions-item label="设施数量">
{{ data.FACILITY_COUNT }}
</el-descriptions-item>
<el-descriptions-item label="设施位置">
{{ data.FACILITY_LOCALTION }}
</el-descriptions-item>
<el-descriptions-item label="设施负责人">
{{ data.FACILITY_PRINCIPAL }}
</el-descriptions-item>
<el-descriptions-item label="登记时间">
{{ data.REGISTRATION_TIME }}
</el-descriptions-item>
</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 prop="MAINTAIN_DATE" label="保养时间" />
<el-table-column prop="MAINTAIN_CONDITION" label="保养情况" />
<el-table-column prop="MAINTAIN_PERSON" label="保养人" />
<el-table-column prop="REMARK" label="备注" />
<el-table-column label="操作" width="180">
<template #default="{ row }">
<el-button
type="primary"
text
link
@click="
router.push({
path: '/production_course_regulate/firefighting_equipment_facility/firefightingmaintainedit',
query: { FIREFIGHTINGMAINTAIN_ID: row.FIREFIGHTINGMAINTAIN_ID },
})
"
>
修改
</el-button>
<el-button
v-if="buttonJurisdiction.del"
type="primary"
text
link
@click="fnDelete(row.FIREFIGHTINGMAINTAIN_ID)"
>
删除
</el-button>
</template>
</el-table-column>
<template #button>
<el-button
v-if="buttonJurisdiction.add"
type="primary"
@click="
router.push({
path: '/production_course_regulate/firefighting_equipment_facility/firefightingmaintainadd',
query: {FIREFIGHTINGFACILITY_ID}
})
"
>
新增
</el-button>
</template>
</layout-table>
</layout-card>
</template>
<script setup>
import {
getFirefightingEquipmentFacilityView,
getMaintainFindFirefightingId,
setFirefightingMaintainDelete
} from "@/request/firefighting_equipment_facility.js";
import { useRoute, useRouter } from "vue-router";
import { ref } from "vue";
import useListData from "@/assets/js/useListData.js";
import useButtonJurisdiction from "@/assets/js/useButtonJurisdiction.js";
import { debounce } from "throttle-debounce";
import { ElMessage, ElMessageBox } from "element-plus";
const route = useRoute();
const router = useRouter();
const { FIREFIGHTINGFACILITY_ID } = route.query;
const data = ref({});
const getData = async () => {
const { pd } = await getFirefightingEquipmentFacilityView({ FIREFIGHTINGFACILITY_ID });
data.value = pd;
};
getData();
const { list } = useListData(getMaintainFindFirefightingId, {
otherParams: { FIREFIGHTINGFACILITY_ID: FIREFIGHTINGFACILITY_ID },
usePagination: false,
});
const fnDelete = debounce(
1000,
async (FIREFIGHTINGMAINTAIN_ID) => {
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
await setFirefightingMaintainDelete({ FIREFIGHTINGMAINTAIN_ID })
ElMessage.success("删除成功");
},
{ atBegin: true }
);
const buttonJurisdiction = await useButtonJurisdiction("firefightingmaintain");
</script>
<style scoped></style>

View File

@ -0,0 +1,136 @@
<template>
<layout-card>
<el-form
ref="formRef"
:model="form"
:rules="rules"
label-width="100px"
>
<el-row>
<el-col :span="6">
<el-form-item label="保养时间" prop="MAINTAIN_DATE">
<el-date-picker
v-model="form.MAINTAIN_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="MAINTAIN_CONDITION">
<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-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="保养照片" prop="MAINTAIN_IMG">
<layout-upload
v-model:file-list="form.MAINTAIN_IMG"
list-type="picture-card"
accept=".jpg,.jpeg,.png"
/>
</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-form>
<div class="tc mt-10">
<el-button type="primary" @click="fnSubmit"></el-button>
</div>
</layout-card>
</template>
<script setup>
import { ref } from "vue";
import {
setMaintainEdit,
setMaintainAdd,
getFirefightingEquipmentFacilityView
} from "@/request/firefighting_equipment_facility.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 LayoutUpload from "@/components/upload/index.vue";
import { setUploadImg } from "@/request/api.js";
import { addingPrefixToFile } from "@/assets/js/utils.js";
const route = useRoute();
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" }],
};
const formRef = ref(null);
const form = ref({
FIREFIGHTINGMAINTAIN_ID: "",
FIREFIGHTINGFACILITY_ID: "",
MAINTAIN_DATE: "",
MAINTAIN_CONDITION: "",
MAINTAIN_PERSON: "",
REMARK: "",
MAINTAIN_IMG: [],
});
const FIREFIGHTINGMAINTAIN_ID = form.value.FIREFIGHTINGMAINTAIN_ID
const fnGetData = async () => {
if (!FIREFIGHTINGMAINTAIN_ID) return;
const resData = await getFirefightingEquipmentFacilityView({ FIREFIGHTINGMAINTAIN_ID });
form.value = resData.pd;
form.value.MAINTAIN_IMG = addingPrefixToFile(
resData.firefightingmaintainImg
);
};
fnGetData();
const fnSubmit = debounce(
1000,
async () => {
await useFormValidate(formRef);
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
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);
}
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

@ -0,0 +1,138 @@
<template>
<layout-card>
<el-divider content-position="left">修改</el-divider>
<el-form
ref="formRef"
:model="form"
:rules="rules"
label-width="100px"
>
<el-row>
<el-col :span="24">
<el-form-item label="保养时间" prop="MAINTAIN_DATE">
<el-date-picker
v-model="form.MAINTAIN_DATE"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
placeholder="请选择保养时间"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="保养情况" prop="MAINTAIN_CONDITION">
<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-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="保养照片" prop="MAINTAIN_IMG">
<layout-upload
v-model:file-list="form.MAINTAIN_IMG"
list-type="picture-card"
accept=".jpg,.jpeg,.png"
delete-to-server
/>
</el-form-item>
</el-col>
</el-row>
<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-row>
</el-form>
<div class="tc mt-10">
<el-button type="primary" @click="fnSubmit"></el-button>
</div>
</layout-card>
</template>
<script setup>
import { ref } from "vue";
import { debounce } from "throttle-debounce";
import useFormValidate from "@/assets/js/useFormValidate.js";
import {
getMaintainView,
getMaintainEdit,
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 { addingPrefixToFile } from "@/assets/js/utils.js";
import { setUploadImg } from "@/request/api.js";
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" }],
};
const formRef = ref(null);
const form = ref({
FIREFIGHTINGMAINTAIN_ID: "",
FIREFIGHTINGFACILITY_ID: "",
MAINTAIN_DATE: "",
MAINTAIN_CONDITION: "",
MAINTAIN_PERSON: "",
REMARK: "",
MAINTAIN_IMG: [],
});
const fnGetData = async () => {
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,
async () => {
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
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);
}
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

@ -0,0 +1,172 @@
<template>
<div>
<el-card>
<el-form
:model="searchForm"
label-width="100px"
@submit.prevent="fnResetPagination"
>
<el-row>
<el-col :span="6">
<el-form-item label="设施名称" prop="FACILITY_NAME">
<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-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="设施位置" prop="FACILITY_LOCALTION">
<el-input v-model="searchForm.FACILITY_LOCALTION"
placeholder="请填写设施位置"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label-width="10px">
<el-button type="primary" native-type="submit">搜索</el-button>
<el-button native-type="reset" @click="fnResetPagination">
重置
</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-card>
<layout-card>
<layout-table
: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_NUMBER" label="设施编号" width="160" />
<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="CREATTIME" label="创建时间" width="160" />
<el-table-column prop="OPERATTIME" label="修改时间" width="160" />
<el-table-column label="操作" width="180">
<template #default="{ row }">
<el-button
type="primary"
text
link
@click="
router.push({
path: '/production_course_regulate/firefighting_equipment_facility/view',
query: { FIREFIGHTINGFACILITY_ID: row.FIREFIGHTINGFACILITY_ID },
})
"
>
查看
</el-button>
<el-button
type="primary"
text
link
@click="
router.push({
path: '/production_course_regulate/firefighting_equipment_facility/edit',
query: { FIREFIGHTINGFACILITY_ID: row.FIREFIGHTINGFACILITY_ID },
})
"
>
修改
</el-button>
<el-button
v-if="buttonJurisdiction.del"
type="primary"
text
link
@click="fnDelete(row.FIREFIGHTINGFACILITY_ID)"
>
删除
</el-button>
<el-button
type="primary"
text
link
@click="
router.push({
path: '/production_course_regulate/firefighting_equipment_facility/firefightingmaintain',
query: { FIREFIGHTINGFACILITY_ID: row.FIREFIGHTINGFACILITY_ID },
})
"
>
保养
</el-button>
</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>
</template>
</layout-table>
</layout-card>
<edit
v-model:visible="data.analysisDialog.visible"
:info="data.analysisDialog.info"
@get-data="fnResetPagination"
/>
</div>
</template>
<script setup>
import { serialNumber } from "@/assets/js/utils";
import useButtonJurisdiction from "@/assets/js/useButtonJurisdiction.js";
import useListData from "@/assets/js/useListData.js";
import { useRouter } from "vue-router";
import { reactive } from "vue";
import {
getFirefightingEquipmentFacilityList,
setFirefightingEquipmentFacilityDelete
} from "@/request/firefighting_equipment_facility.js";
import { debounce } from "throttle-debounce";
import { ElMessage, ElMessageBox } from "element-plus";
const router = useRouter();
const { list, pagination, searchForm, fnGetData, fnResetPagination } =
useListData(getFirefightingEquipmentFacilityList);
const data = reactive({
analysisDialog: {
visible: false,
info: {},
},
});
const fnDelete = debounce(
1000,
async (FIREFIGHTINGFACILITY_ID) => {
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
await setFirefightingEquipmentFacilityDelete({ FIREFIGHTINGFACILITY_ID })
ElMessage.success("删除成功");
fnResetPagination()
},
{ atBegin: true }
);
const buttonJurisdiction = await useButtonJurisdiction("firethingequipmentfacility");
</script>
<style scoped></style>

View File

@ -0,0 +1,57 @@
<template>
<layout-card>
<el-divider content-position="left">基本信息</el-divider>
<el-descriptions border>
<el-descriptions-item label="设施编号">
{{ data.FACILITY_NUMBER }}
</el-descriptions-item>
<el-descriptions-item label="登记时间">
{{ data.REGISTRATION_TIME }}
</el-descriptions-item>
<el-descriptions-item label="设施单位">
{{ data.FACILITY_UNIT }}
</el-descriptions-item>
<el-descriptions-item label="设施数量">
{{ data.FACILITY_COUNT }}
</el-descriptions-item>
<el-descriptions-item label="设施位置">
{{ data.FACILITY_LOCALTION }}
</el-descriptions-item>
<el-descriptions-item label="设施负责人">
{{ data.FACILITY_PRINCIPAL }}
</el-descriptions-item>
</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 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>
</layout-card>
</template>
<script setup>
import {
getFirefightingEquipmentFacilityView,
getMaintainFindFirefightingId
} from "@/request/firefighting_equipment_facility.js";
import { useRoute } from "vue-router";
import { ref } from "vue";
import useListData from "@/assets/js/useListData.js";
const route = useRoute();
const { FIREFIGHTINGFACILITY_ID } = route.query;
const data = ref({});
const getData = async () => {
const { pd } = await getFirefightingEquipmentFacilityView({ FIREFIGHTINGFACILITY_ID });
data.value = pd;
};
getData();
const { list } = useListData(getMaintainFindFirefightingId, {
otherParams: { FIREFIGHTINGFACILITY_ID: FIREFIGHTINGFACILITY_ID },
usePagination: false,
});
</script>
<style scoped></style>

View File

@ -0,0 +1,183 @@
<template>
<layout-card>
<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-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="设施名称" prop="FACILITY_NAME">
<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-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="设施数量" prop="FACILITY_COUNT">
<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-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="设施负责人" prop="FACILITY_PRINCIPAL">
<el-input v-model="form.FACILITY_PRINCIPAL"
placeholder="请输入设施负责人"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="登记时间" prop="REGISTRATION_TIME">
<el-date-picker
v-model="form.REGISTRATION_TIME"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
placeholder="请选择登记时间"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="设备设施" prop="EQUIPMENT_FACILITY">
<layout-upload
v-model:file-list="form.EQUIPMENT_FACILITY"
list-type="picture-card"
accept=".jpg,.jpeg,.png"
/>
</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-form>
<div class="tc mt-10">
<el-button type="primary" @click="fnSubmit"></el-button>
</div>
</layout-card>
</template>
<script setup>
import { ref } from "vue";
import {
setProductionEquipmentFacilityEdit,
setProductionEquipmentFacilityAdd,
getProductionEquipmentFacilityView
} from "@/request/production_equipment_facility.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 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 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" }],
};
const formRef = ref(null);
const form = ref({
PRODUCTIONFACILITY_ID: "",
CORPINFO_ID: "",
FACILITY_NAME: "",
FACILITY_NUMBER: "",
FACILITY_LOCALTION: "",
CONDUCT_ENTERPRISE: "",
FACILITY_UNIT: "",
FACILITY_COUNT: "",
CONDUCT_TYPE: "",
FACILITY_PRINCIPAL: "",
REGISTRATION_TIME: "",
EQUIPMENT_FACILITY: [],
FACILITY_REMARK: "",
});
const fnGetData = async () => {
if (!PRODUCTIONFACILITY_ID) return;
const resData = await getProductionEquipmentFacilityView({ PRODUCTIONFACILITY_ID });
form.value = resData.pd;
form.value.EQUIPMENT_FACILITY = addingPrefixToFile(
resData.equipmentFacility
);
};
fnGetData();
const fnSubmit = debounce(
1000,
async () => {
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
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);
}
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

@ -0,0 +1,165 @@
<template>
<layout-card>
<el-divider content-position="left">修改</el-divider>
<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-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="设施名称" prop="FACILITY_NAME">
<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-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-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="设施位置" prop="FACILITY_LOCALTION">
<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-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="登记时间" prop="REGISTRATION_TIME">
<el-date-picker
v-model="form.REGISTRATION_TIME"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
placeholder="请选择登记时间"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="设备设施" prop="EQUIPMENT_FACILITY">
<layout-upload
v-model:file-list="form.EQUIPMENT_FACILITY"
list-type="picture-card"
accept=".jpg,.jpeg,.png"
delete-to-server
/>
</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-row>
</el-form>
<div class="tc mt-10">
<el-button type="primary" @click="fnSubmit"></el-button>
</div>
</layout-card>
</template>
<script setup>
import { ref } from "vue";
import { debounce } from "throttle-debounce";
import useFormValidate from "@/assets/js/useFormValidate.js";
import {
getProductionEquipmentFacilityView,
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 { addingPrefixToFile } from "@/assets/js/utils.js";
import { setUploadImg } from "@/request/api.js";
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" }],
};
const formRef = ref(null);
const form = ref({
PRODUCTIONFACILITY_ID: "",
CORPINFO_ID: "",
FACILITY_NAME: "",
FACILITY_NUMBER: "",
FACILITY_LOCALTION: "",
CONDUCT_ENTERPRISE: "",
FACILITY_UNIT: "",
FACILITY_COUNT: "",
CONDUCT_TYPE: "",
FACILITY_PRINCIPAL: "",
REGISTRATION_TIME: "",
EQUIPMENT_FACILITY: [],
FACILITY_REMARK: "",
});
const fnGetData = async () => {
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,
async () => {
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
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);
}
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

@ -0,0 +1,172 @@
<template>
<div>
<el-card>
<el-form
:model="searchForm"
label-width="100px"
@submit.prevent="fnResetPagination"
>
<el-row>
<el-col :span="6">
<el-form-item label="设施名称" prop="FACILITY_NAME">
<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-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="设施位置" prop="FACILITY_LOCALTION">
<el-input v-model="searchForm.FACILITY_LOCALTION"
placeholder="请填写设施位置"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label-width="10px">
<el-button type="primary" native-type="submit">搜索</el-button>
<el-button native-type="reset" @click="fnResetPagination">
重置
</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-card>
<layout-card>
<layout-table
: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_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="CREATTIME" label="创建时间" width="160" />
<el-table-column prop="OPERATTIME" label="修改时间" width="160" />
<el-table-column label="操作" width="180">
<template #default="{ row }">
<el-button
type="primary"
text
link
@click="
router.push({
path: '/production_course_regulate/production_equipment_facility/view',
query: { PRODUCTIONFACILITY_ID: row.PRODUCTIONFACILITY_ID },
})
"
>
查看
</el-button>
<el-button
type="primary"
text
link
@click="
router.push({
path: '/production_course_regulate/production_equipment_facility/edit',
query: { PRODUCTIONFACILITY_ID: row.PRODUCTIONFACILITY_ID },
})
"
>
修改
</el-button>
<el-button
v-if="buttonJurisdiction.del"
type="primary"
text
link
@click="fnDelete(row.PRODUCTIONFACILITY_ID)"
>
删除
</el-button>
<el-button
type="primary"
text
link
@click="
router.push({
path: '/production_course_regulate/production_equipment_facility/maintain',
query: { PRODUCTIONFACILITY_ID: row.PRODUCTIONFACILITY_ID },
})
"
>
保养
</el-button>
</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>
</template>
</layout-table>
</layout-card>
<edit
v-model:visible="data.analysisDialog.visible"
:info="data.analysisDialog.info"
@get-data="fnResetPagination"
/>
</div>
</template>
<script setup>
import { serialNumber } from "@/assets/js/utils";
import useButtonJurisdiction from "@/assets/js/useButtonJurisdiction.js";
import useListData from "@/assets/js/useListData.js";
import { useRouter } from "vue-router";
import { reactive } from "vue";
import {
getProductionEquipmentFacilityList,
setProductionEquipmentFacilityDelete
} from "@/request/production_equipment_facility.js";
import { debounce } from "throttle-debounce";
import { ElMessage, ElMessageBox } from "element-plus";
const router = useRouter();
const { list, pagination, searchForm, fnGetData, fnResetPagination } =
useListData(getProductionEquipmentFacilityList);
const data = reactive({
analysisDialog: {
visible: false,
info: {},
},
});
const fnDelete = debounce(
1000,
async (PRODUCTIONFACILITY_ID) => {
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
await setProductionEquipmentFacilityDelete({ PRODUCTIONFACILITY_ID })
ElMessage.success("删除成功");
fnResetPagination();
},
{ atBegin: true }
);
const buttonJurisdiction = await useButtonJurisdiction("prooductionEquipmentFacility");
</script>
<style scoped></style>

View File

@ -0,0 +1,117 @@
<template>
<layout-card>
<el-divider content-position="left">基本信息</el-divider>
<el-descriptions border>
<el-descriptions-item label="设施名称">
{{ data.FACILITY_NAME }}
</el-descriptions-item>
<el-descriptions-item label="设施编号">
{{ data.FACILITY_NUMBER }}
</el-descriptions-item>
<el-descriptions-item label="设施单位">
{{ data.FACILITY_UNIT }}
</el-descriptions-item>
<el-descriptions-item label="设施数量">
{{ data.FACILITY_COUNT }}
</el-descriptions-item>
<el-descriptions-item label="设施位置">
{{ data.FACILITY_LOCALTION }}
</el-descriptions-item>
<el-descriptions-item label="设施负责人">
{{ data.FACILITY_PRINCIPAL }}
</el-descriptions-item>
<el-descriptions-item label="登记时间">
{{ data.REGISTRATION_TIME }}
</el-descriptions-item>
</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 prop="MAINTAIN_DATE" label="保养时间" />
<el-table-column prop="MAINTAIN_CONDITION" label="保养情况" />
<el-table-column prop="MAINTAIN_PERSON" label="保养人" />
<el-table-column prop="REMARK" label="备注" />
<el-table-column label="操作" width="180">
<template #default="{ row }">
<el-button
type="primary"
text
link
@click="
router.push({
path: '/production_course_regulate/production_equipment_facility/maintainedit',
query: { MAINTAIN_ID: row.MAINTAIN_ID },
})
"
>
修改
</el-button>
<el-button
v-if="buttonJurisdiction.del"
type="primary"
text
link
@click="fnDelete(row.MAINTAIN_ID)"
>
删除
</el-button>
</template>
</el-table-column>
<template #button>
<el-button
v-if="buttonJurisdiction.add"
type="primary"
@click="
router.push({
path: '/production_course_regulate/production_equipment_facility/maintainadd',
query: {PRODUCTIONFACILITY_ID}
})
"
>
新增
</el-button>
</template>
</layout-table>
</layout-card>
</template>
<script setup>
import {
getProductionEquipmentFacilityView,
getMaintainFindProductionEquipmentFacilityId,
setMaintainDelete
} from "@/request/production_equipment_facility.js";
import { useRoute, useRouter } from "vue-router";
import { ref } from "vue";
import useListData from "@/assets/js/useListData.js";
import useButtonJurisdiction from "@/assets/js/useButtonJurisdiction.js";
import { debounce } from "throttle-debounce";
import { ElMessage, ElMessageBox } from "element-plus";
const route = useRoute();
const router = useRouter();
const { PRODUCTIONFACILITY_ID } = route.query;
const data = ref({});
const getData = async () => {
const { pd } = await getProductionEquipmentFacilityView({ PRODUCTIONFACILITY_ID });
data.value = pd;
};
getData();
const { list } = useListData(getMaintainFindProductionEquipmentFacilityId, {
otherParams: { PRODUCTIONFACILITY_ID: PRODUCTIONFACILITY_ID },
usePagination: false,
});
const fnDelete = debounce(
1000,
async (MAINTAIN_ID) => {
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
await setMaintainDelete({ MAINTAIN_ID })
ElMessage.success("删除成功");
},
{ atBegin: true }
);
const buttonJurisdiction = await useButtonJurisdiction("maintain");
</script>
<style scoped></style>

View File

@ -0,0 +1,136 @@
<template>
<layout-card>
<el-form
ref="formRef"
:model="form"
:rules="rules"
label-width="100px"
>
<el-row>
<el-col :span="6">
<el-form-item label="保养时间" prop="MAINTAIN_DATE">
<el-date-picker
v-model="form.MAINTAIN_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="MAINTAIN_CONDITION">
<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-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="保养照片" prop="MAINTAIN_IMG">
<layout-upload
v-model:file-list="form.MAINTAIN_IMG"
list-type="picture-card"
accept=".jpg,.jpeg,.png"
/>
</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-form>
<div class="tc mt-10">
<el-button type="primary" @click="fnSubmit"></el-button>
</div>
</layout-card>
</template>
<script setup>
import { ref } from "vue";
import {
setMaintainEdit,
setMaintainAdd,
getProductionEquipmentFacilityView
} from "@/request/production_equipment_facility.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 LayoutUpload from "@/components/upload/index.vue";
import { setUploadImg } from "@/request/api.js";
import { addingPrefixToFile } from "@/assets/js/utils.js";
const route = useRoute();
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" }],
};
const formRef = ref(null);
const form = ref({
MAINTAIN_ID: "",
PRODUCTIONFACILITY_ID: "",
MAINTAIN_DATE: "",
MAINTAIN_CONDITION: "",
MAINTAIN_PERSON: "",
REMARK: "",
MAINTAIN_IMG: [],
});
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
);
};
fnGetData();
const fnSubmit = debounce(
1000,
async () => {
await useFormValidate(formRef);
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
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);
}
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

@ -0,0 +1,137 @@
<template>
<layout-card>
<el-divider content-position="left">修改</el-divider>
<el-form
ref="formRef"
:model="form"
:rules="rules"
label-width="100px"
>
<el-row>
<el-col :span="24">
<el-form-item label="保养时间" prop="MAINTAIN_DATE">
<el-date-picker
v-model="form.MAINTAIN_DATE"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
placeholder="请选择保养时间"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="保养情况" prop="MAINTAIN_CONDITION">
<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-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="保养照片" prop="MAINTAIN_IMG">
<layout-upload
v-model:file-list="form.MAINTAIN_IMG"
list-type="picture-card"
accept=".jpg,.jpeg,.png"
delete-to-server
/>
</el-form-item>
</el-col>
</el-row>
<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-row>
</el-form>
<div class="tc mt-10">
<el-button type="primary" @click="fnSubmit"></el-button>
</div>
</layout-card>
</template>
<script setup>
import { ref } from "vue";
import { debounce } from "throttle-debounce";
import useFormValidate from "@/assets/js/useFormValidate.js";
import {
getMaintainView,
getMaintainEdit,
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 { addingPrefixToFile } from "@/assets/js/utils.js";
import { setUploadImg } from "@/request/api.js";
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" }],
};
const formRef = ref(null);
const form = ref({
MAINTAIN_ID: "",
PRODUCTIONFACILITY_ID: "",
MAINTAIN_DATE: "",
MAINTAIN_CONDITION: "",
MAINTAIN_PERSON: "",
REMARK: "",
MAINTAIN_IMG: [],
});
const fnGetData = async () => {
if (!MAINTAIN_ID) return;
const resData = await getMaintainView({ MAINTAIN_ID });
form.value = resData.pd;
form.value.MAINTAIN_IMG = addingPrefixToFile(
resData.maintainImg
)
};
fnGetData();
const fnSubmit = debounce(
1000,
async () => {
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
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);
}
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

@ -0,0 +1,60 @@
<template>
<layout-card>
<el-divider content-position="left">基本信息</el-divider>
<el-descriptions border>
<el-descriptions-item label="设施名称">
{{ data.FACILITY_NAME }}
</el-descriptions-item>
<el-descriptions-item label="设施编号">
{{ data.FACILITY_NUMBER }}
</el-descriptions-item>
<el-descriptions-item label="设施单位">
{{ data.FACILITY_UNIT }}
</el-descriptions-item>
<el-descriptions-item label="设施数量">
{{ data.FACILITY_COUNT }}
</el-descriptions-item>
<el-descriptions-item label="设施位置">
{{ data.FACILITY_LOCALTION }}
</el-descriptions-item>
<el-descriptions-item label="设施负责人">
{{ data.FACILITY_PRINCIPAL }}
</el-descriptions-item>
<el-descriptions-item label="登记时间">
{{ data.REGISTRATION_TIME }}
</el-descriptions-item>
</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 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>
</layout-card>
</template>
<script setup>
import {
getProductionEquipmentFacilityView,
getMaintainFindProductionEquipmentFacilityId
} from "@/request/production_equipment_facility.js";
import { useRoute } from "vue-router";
import { ref } from "vue";
import useListData from "@/assets/js/useListData.js";
const route = useRoute();
const { PRODUCTIONFACILITY_ID } = route.query;
const data = ref({});
const getData = async () => {
const { pd } = await getProductionEquipmentFacilityView({ PRODUCTIONFACILITY_ID });
data.value = pd;
};
getData();
const { list } = useListData(getMaintainFindProductionEquipmentFacilityId, {
otherParams: { PRODUCTIONFACILITY_ID: PRODUCTIONFACILITY_ID },
usePagination: false,
});
</script>
<style scoped></style>

View File

@ -0,0 +1,137 @@
<template>
<layout-card>
<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-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="上报日期" prop="REPORTED_TIME">
<el-date-picker
v-model="form.REPORTED_TIME"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
placeholder="请选择上报日期"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="处理状态" prop="DISPOSE_STATUS">
<el-select v-model="form.DISPOSE_STATUS"
placeholder="请选择处理状态"
>
<el-option
v-for="item in DISPOSE_STATUS_LIST"
:key="item.ID"
:label="item.NAME"
:value="item.NAME"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="处理结果" prop="DISPOSE_RESULT">
<el-input v-model="form.DISPOSE_RESULT"
placeholder="请输入处理结果"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="处理时间" prop="DISPOSE_DATE">
<el-date-picker
v-model="form.DISPOSE_DATE"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
placeholder="请选择处理时间"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="上报内容" prop="REPORTED_CONTENT">
<el-input
v-model="form.REPORTED_CONTENT"
placeholder="请填写上报内容"
type="textarea"
:autosize="{ minRows: 3 }"
/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="tc mt-10">
<el-button type="primary" @click="fnSubmit"></el-button>
</div>
</layout-card>
</template>
<script setup>
import { ref } from "vue";
import {
setReportedIncidentDisposeEdit,
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 formRef = ref(null);
const form = ref({
REPORTEDINCIDENT_ID: "",
CORPINFO_ID: "",
REPORTPERSON: "",
DISPOSE_RESULT: "",
DISPOSE_STATUS: "",
REPORTED_DATE: "",
REPORTED_CONTENT: "",
REPORTED_TIME: "",
DISPOSE_DATE: "",
MANAGING_ENTERPRISE: "",
MANAGING_TYPE: ""
});
const fnGetData = async () => {
if (!REPORTEDINCIDENT_ID) return;
const resData = await setReportedIncidentDisposeEdit({ REPORTEDINCIDENT_ID });
form.value = resData.pd;
};
fnGetData();
const fnSubmit = debounce(
1000,
async () => {
await useFormValidate(formRef);
await setReportedIncidentDisposeAdd({ ...form.value })
ElMessage.success("提交成功");
router.back();
},
{ atBegin: true }
);
</script>
<style scoped lang="scss"></style>

View File

@ -0,0 +1,137 @@
<template>
<layout-card>
<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-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="上报日期" prop="REPORTED_TIME">
<el-date-picker
v-model="form.REPORTED_TIME"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
placeholder="请选择上报日期"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="处理状态" prop="DISPOSE_STATUS">
<el-select v-model="form.DISPOSE_STATUS"
placeholder="请选择处理状态"
>
<el-option
v-for="item in DISPOSE_STATUS_LIST"
:key="item.ID"
:label="item.NAME"
:value="item.NAME"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="处理结果" prop="DISPOSE_RESULT">
<el-input v-model="form.DISPOSE_RESULT"
placeholder="请输入处理结果"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="处理时间" prop="DISPOSE_DATE">
<el-date-picker
v-model="form.DISPOSE_DATE"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD"
type="date"
placeholder="请选择处理时间"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="上报内容" prop="REPORTED_CONTENT">
<el-input
v-model="form.REPORTED_CONTENT"
placeholder="请填写上报内容"
type="textarea"
:autosize="{ minRows: 3 }"
/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="tc mt-10">
<el-button type="primary" @click="fnSubmit"></el-button>
</div>
</layout-card>
</template>
<script setup>
import { ref } from "vue";
import {
setReportedIncidentDisposeEdit,
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 formRef = ref(null);
const form = ref({
REPORTEDINCIDENT_ID: "",
CORPINFO_ID: "",
REPORTPERSON: "",
DISPOSE_RESULT: "",
DISPOSE_STATUS: "",
REPORTED_DATE: "",
REPORTED_CONTENT: "",
REPORTED_TIME: "",
DISPOSE_DATE: "",
MANAGING_ENTERPRISE: "",
MANAGING_TYPE: ""
});
const fnGetData = async () => {
if (!REPORTEDINCIDENT_ID) return;
const resData = await setReportedIncidentDisposeEdit({ REPORTEDINCIDENT_ID });
form.value = resData.pd;
};
fnGetData();
const fnSubmit = debounce(
1000,
async () => {
await useFormValidate(formRef);
await setReportedIncidentDispose({ ...form.value })
ElMessage.success("提交成功");
router.back();
},
{ atBegin: true }
);
</script>
<style scoped lang="scss"></style>

View File

@ -0,0 +1,168 @@
<template>
<div>
<el-card>
<el-form
:model="searchForm"
label-width="100px"
@submit.prevent="fnResetPagination"
>
<el-row>
<el-col :span="6">
<el-form-item label="上报人" prop="REPORTPERSON">
<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-option
v-for="item in DISPOSE_STATUS_LIST"
:key="item.ID"
:label="item.NAME"
:value="item.NAME"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="上报日期" prop="REPORTED_DATE">
<el-date-picker
v-model="searchForm.REPORTED_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-width="10px">
<el-button type="primary" native-type="submit">搜索</el-button>
<el-button native-type="reset" @click="fnResetPagination">
重置
</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-card>
<layout-card>
<layout-table
: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="REPORTPERSON" label="上报人" width="150" />
<el-table-column prop="DISPOSE_STATUS" label="处理状态" width="150" />
<el-table-column prop="REPORTED_CONTENT" label="上报内容" width="300" />
<el-table-column prop="DISPOSE_RESULT" label="处理结果" width="150" />
<el-table-column prop="REPORTED_TIME" label="上报时间" width="180" />
<el-table-column prop="DISPOSE_DATE" label="处理时间" width="180" />
<el-table-column label="操作" width="150">
<template #default="{ row }">
<el-button
type="primary"
text
link
@click="
router.push({
path: '/production_course_regulate/reported_incident_dispose/view',
query: { REPORTEDINCIDENT_ID: row.REPORTEDINCIDENT_ID },
})
"
>
查看
</el-button>
<el-button
type="primary"
text
link
@click="
router.push({
path: '/production_course_regulate/reported_incident_dispose/edit',
query: { REPORTEDINCIDENT_ID: row.REPORTEDINCIDENT_ID },
})
"
>
修改
</el-button>
<el-button
v-if="buttonJurisdiction.del"
type="primary"
text
link
@click="fnDelete(row.REPORTEDINCIDENT_ID)"
>
删除
</el-button>
</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>
</template>
</layout-table>
</layout-card>
<edit
v-model:visible="data.analysisDialog.visible"
:info="data.analysisDialog.info"
@get-data="fnResetPagination"
/>
</div>
</template>
<script setup>
import { serialNumber } from "@/assets/js/utils";
import useButtonJurisdiction from "@/assets/js/useButtonJurisdiction.js";
import useListData from "@/assets/js/useListData.js";
import { useRouter } from "vue-router";
import { reactive } from "vue";
import {
getReportedIncidentDisposeList,
setReportedIncidentDisposeDelete
} from "@/request/reported_incident_dispose.js";
import { debounce } from "throttle-debounce";
import { ElMessage, ElMessageBox } from "element-plus";
import { DISPOSE_STATUS_LIST } from "@/assets/js/constant.js";
const router = useRouter();
const { list, pagination, searchForm, fnGetData, fnResetPagination } =
useListData(getReportedIncidentDisposeList);
const data = reactive({
analysisDialog: {
visible: false,
info: {},
},
});
const fnDelete = debounce(
1000,
async (REPORTEDINCIDENT_ID) => {
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
await setReportedIncidentDisposeDelete({ REPORTEDINCIDENT_ID })
ElMessage.success("删除成功");
fnResetPagination();
},
{ atBegin: true }
);
const buttonJurisdiction = await useButtonJurisdiction("reportedincidentdispose");
</script>
<style scoped></style>

View File

@ -0,0 +1,42 @@
<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>
</el-descriptions>
</layout-card>
</template>
<script setup>
import { findByIdReportedIncidentDisposeInfo } from "@/request/reported_incident_dispose.js";
import { useRoute } from "vue-router";
import { ref } from "vue";
const route = useRoute();
const { REPORTEDINCIDENT_ID } = route.query;
const data = ref({});
const getData = async () => {
const { pd } = await findByIdReportedIncidentDisposeInfo({ REPORTEDINCIDENT_ID });
data.value = pd;
};
getData();
</script>
<style scoped></style>