bug优化

dev
WenShiJun 2024-03-26 18:02:32 +08:00
parent 6c1000d5f9
commit 558799d0c9
21 changed files with 257 additions and 131 deletions

2
.env
View File

@ -1,4 +1,4 @@
VITE_BASE_URL=http://192.168.0.55:8093/ VITE_BASE_URL=http://192.168.0.49:8093/
VITE_PROXY=/api/ VITE_PROXY=/api/
VITE_FILE_URL=https://file.zcloudchina.com/YTHFile VITE_FILE_URL=https://file.zcloudchina.com/YTHFile
VITE_TEMPLATE_URL=https://qaaq.qhdsafety.com/file/ VITE_TEMPLATE_URL=https://qaaq.qhdsafety.com/file/

View File

@ -4,10 +4,23 @@
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="24"> <el-col :span="24">
<el-divider content-position="left">基本信息</el-divider> <el-divider content-position="left">基本信息</el-divider>
<div class="buttons-container">
<el-button type="primary" @click="fnDownloadTemplate"
>下载模板</el-button
>
<el-button type="primary" @click="fnUploadQuestions"
>上传</el-button
>
</div>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="自编号" prop="NUM"> <el-form-item label="自编号" prop="NUM">
<el-input v-model="form.NUM" maxlength="50" show-word-limit /> <el-input
v-model="form.NUM"
maxlength="50"
show-word-limit
clearable
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
@ -16,12 +29,18 @@
v-model="form.PLATE_NUMBER" v-model="form.PLATE_NUMBER"
maxlength="50" maxlength="50"
show-word-limit show-word-limit
clearable
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="车架号" prop="VIN"> <el-form-item label="车架号" prop="VIN">
<el-input v-model="form.VIN" maxlength="50" show-word-limit /> <el-input
v-model="form.VIN"
maxlength="50"
show-word-limit
clearable
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
@ -30,6 +49,7 @@
v-model="form.VEHICLE_BODY_NUMBER" v-model="form.VEHICLE_BODY_NUMBER"
maxlength="50" maxlength="50"
show-word-limit show-word-limit
clearable
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -39,6 +59,7 @@
v-model="form.TRAILER_TYPE" v-model="form.TRAILER_TYPE"
maxlength="50" maxlength="50"
show-word-limit show-word-limit
clearable
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -48,6 +69,7 @@
v-model="form.OPER_CERTIFICATE_NUM" v-model="form.OPER_CERTIFICATE_NUM"
maxlength="50" maxlength="50"
show-word-limit show-word-limit
clearable
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -62,6 +84,7 @@
v-model="form.CAR_OWNERS" v-model="form.CAR_OWNERS"
maxlength="50" maxlength="50"
show-word-limit show-word-limit
clearable
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -71,12 +94,18 @@
v-model="form.CAR_OWNERS_TEL" v-model="form.CAR_OWNERS_TEL"
maxlength="11" maxlength="11"
show-word-limit show-word-limit
clearable
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="联系人" prop="CONTACTS"> <el-form-item label="联系人" prop="CONTACTS">
<el-input v-model="form.CONTACTS" maxlength="50" show-word-limit /> <el-input
v-model="form.CONTACTS"
maxlength="50"
show-word-limit
clearable
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
@ -85,6 +114,7 @@
v-model="form.CONTACT_PHONE" v-model="form.CONTACT_PHONE"
maxlength="11" maxlength="11"
show-word-limit show-word-limit
clearable
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -95,6 +125,7 @@
value-format="YYYY-MM-DD" value-format="YYYY-MM-DD"
format="YYYY-MM-DD" format="YYYY-MM-DD"
type="date" type="date"
clearable
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -105,6 +136,7 @@
value-format="YYYY-MM-DD" value-format="YYYY-MM-DD"
format="YYYY-MM-DD" format="YYYY-MM-DD"
type="date" type="date"
clearable
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -115,6 +147,7 @@
value-format="YYYY-MM-DD" value-format="YYYY-MM-DD"
format="YYYY-MM-DD" format="YYYY-MM-DD"
type="date" type="date"
clearable
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -127,6 +160,7 @@
v-model="form.TRAILER_BRAND" v-model="form.TRAILER_BRAND"
maxlength="50" maxlength="50"
show-word-limit show-word-limit
clearable
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -136,6 +170,7 @@
v-model="form.TRAILER_MODEL" v-model="form.TRAILER_MODEL"
maxlength="50" maxlength="50"
show-word-limit show-word-limit
clearable
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -145,6 +180,7 @@
v-model="form.APPROVED_TOTAL_MASS" v-model="form.APPROVED_TOTAL_MASS"
maxlength="50" maxlength="50"
show-word-limit show-word-limit
clearable
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -154,12 +190,18 @@
v-model="form.APPROVED_LOAD_CAPACITY" v-model="form.APPROVED_LOAD_CAPACITY"
maxlength="50" maxlength="50"
show-word-limit show-word-limit
clearable
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="容积/体积" prop="VOLUME"> <el-form-item label="容积/体积" prop="VOLUME">
<el-input v-model="form.TEAM_NAME" maxlength="50" show-word-limit /> <el-input
v-model="form.VOLUME"
maxlength="50"
show-word-limit
clearable
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
@ -170,6 +212,7 @@
:autosize="{ minRows: 3 }" :autosize="{ minRows: 3 }"
maxlength="250" maxlength="250"
show-word-limit show-word-limit
clearable
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -235,7 +278,7 @@ import {
setFreightTrailerEdit, setFreightTrailerEdit,
} from "@/request/enterprise_management.js"; } from "@/request/enterprise_management.js";
import { setUploadImg } from "@/request/api.js"; import { setUploadImg } from "@/request/api.js";
import { ElMessage } from "element-plus"; import { ElMessage, ElMessageBox } from "element-plus";
import { useRoute, useRouter } from "vue-router"; import { useRoute, useRouter } from "vue-router";
import useFormValidate from "@/assets/js/useFormValidate.js"; import useFormValidate from "@/assets/js/useFormValidate.js";
import { addingPrefixToFile } from "@/assets/js/utils.js"; import { addingPrefixToFile } from "@/assets/js/utils.js";
@ -334,6 +377,16 @@ const fnGetData = async () => {
}; };
fnGetData(); fnGetData();
const fnDownloadTemplate = async () => {
await ElMessageBox.confirm("确定要下载excel模板吗", {
type: "warning",
});
window.open(
import.meta.env[import.meta.env.DEV ? "VITE_PROXY" : "VITE_BASE_URL"] +
"freightTrailer/downExcel"
);
};
const fnSubmit = debounce( const fnSubmit = debounce(
1000, 1000,
async () => { async () => {
@ -391,4 +444,10 @@ const fnUploadImage = async (HIDDEN_ID, FFILE, TYPE) => {
}; };
</script> </script>
<style scoped lang="scss"></style> <style scoped>
.buttons-container {
display: flex;
justify-content: flex-end;
padding-bottom: 20px;
}
</style>

View File

@ -7,24 +7,24 @@
@submit.prevent="fnResetPaginationTransfer" @submit.prevent="fnResetPaginationTransfer"
> >
<el-row> <el-row>
<el-col :span="5"> <el-col :span="4">
<el-form-item label="车牌号" prop="PLATE_NUMBER"> <el-form-item label="车牌号" prop="PLATE_NUMBER">
<el-input v-model="searchForm.PLATE_NUMBER" /> <el-input v-model="searchForm.PLATE_NUMBER" clearable />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item label="车架号" prop="VIN"> <el-form-item label="车架号" prop="VIN">
<el-input v-model="searchForm.VIN" /> <el-input v-model="searchForm.VIN" clearable />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item label="自编号" prop="NUM"> <el-form-item label="自编号" prop="NUM">
<el-input v-model="searchForm.NUM" /> <el-input v-model="searchForm.NUM" clearable />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item label="归属部门" prop="DEPARTMENT_NAME"> <el-form-item label="归属部门" prop="DEPARTMENT_NAME">
<el-input v-model="searchForm.DEPARTMENT_NAME" /> <el-input v-model="searchForm.DEPARTMENT_NAME" clearable />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="3"> <el-col :span="3">
@ -35,9 +35,12 @@
</el-button> </el-button>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="1"> <el-col :span="6" :offset="18">
<el-form-item label-width="10px" class="end"> <el-form-item label-width="10px" class="end">
<el-button @click="fnExport"></el-button> <el-button type="primary" @click="fnImportDialogChangeShow">
导入
</el-button>
<el-button type="primary" @click="fnExport"></el-button>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -67,7 +70,7 @@
label="初登日期" label="初登日期"
width="150" width="150"
/> />
<el-table-column prop="DUE_DATE" label="到期日期" width="150" /> <el-table-column prop="DUE_DATE" label="到期日期" width="200" />
<el-table-column prop="DEPARTMENT_NAME" label="归属部门" width="150" /> <el-table-column prop="DEPARTMENT_NAME" label="归属部门" width="150" />
<el-table-column label="操作" width="150"> <el-table-column label="操作" width="150">
<template #default="{ row }"> <template #default="{ row }">
@ -98,7 +101,7 @@
编辑 编辑
</el-button> </el-button>
<el-button <el-button
type="primary" type="danger"
text text
link link
@click="fnDelete(row.FREIGHTTRAILER_ID)" @click="fnDelete(row.FREIGHTTRAILER_ID)"
@ -122,11 +125,6 @@
</template> </template>
</layout-table> </layout-table>
</layout-card> </layout-card>
<export-excel
v-model:visible="data.exportExcelDialog.visible"
:search-form="searchForm"
:ids="data.exportExcelDialog.ids"
/>
</div> </div>
</template> </template>
@ -139,17 +137,9 @@ import {
getFreightTrailerList, getFreightTrailerList,
setFreightTrailerDelete, setFreightTrailerDelete,
} from "@/request/enterprise_management.js"; } from "@/request/enterprise_management.js";
import ExportExcel from "./components/export_excel.vue";
import { reactive } from "vue";
import { debounce } from "throttle-debounce"; import { debounce } from "throttle-debounce";
import { ElMessageBox, ElMessage } from "element-plus"; import { ElMessageBox, ElMessage } from "element-plus";
const router = useRouter(); const router = useRouter();
const data = reactive({
exportExcelDialog: {
visible: false,
ids: [],
},
});
const { list, pagination, searchForm, fnGetData, fnResetPagination, tableRef } = const { list, pagination, searchForm, fnGetData, fnResetPagination, tableRef } =
useListData(getFreightTrailerList); useListData(getFreightTrailerList);
const fnGetDataTransfer = () => { const fnGetDataTransfer = () => {
@ -168,6 +158,22 @@ const fnResetPaginationTransfer = () => {
DEPARTMENT_NAME: searchForm.value.DEPARTMENT_NAME, DEPARTMENT_NAME: searchForm.value.DEPARTMENT_NAME,
}); });
}; };
const fnExport = async () => {
const selectionData = tableRef.value.getSelectionRows();
if (selectionData.length === 0) {
ElMessage.warning("请选择需要导出至excel报表的记录信息");
return;
}
await ElMessageBox.confirm("确定要导出到excel吗", { type: "warning" });
const DATA_IDS = selectionData.map((item) => item.RISKUNIT_ID).join(",");
window.location.href =
import.meta.env[import.meta.env.DEV ? "VITE_PROXY" : "VITE_BASE_URL"] +
"/freightTrailer/excel?" +
"&KEYWORDS=" +
(searchForm.value.KEYWORDS || "") +
"&DATA_IDS=" +
DATA_IDS;
};
const fnDelete = debounce( const fnDelete = debounce(
1000, 1000,
async (FREIGHTTRAILER_ID) => { async (FREIGHTTRAILER_ID) => {
@ -179,13 +185,6 @@ const fnDelete = debounce(
{ atBegin: true } { atBegin: true }
); );
const buttonJurisdiction = await useButtonJurisdiction("hidden"); const buttonJurisdiction = await useButtonJurisdiction("hidden");
const fnExport = () => {
const selectionData = tableRef.value.getSelectionRows();
data.exportExcelDialog.ids = selectionData.map(
(item) => item.FREIGHTTRAILER_ID
);
data.exportExcelDialog.visible = true;
};
</script> </script>
<style scoped></style> <style scoped></style>

View File

@ -37,9 +37,9 @@
<el-descriptions-item label-class-name="width_200" label="联系人"> <el-descriptions-item label-class-name="width_200" label="联系人">
{{ info.CONTACTS }} {{ info.CONTACTS }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label-class-name="width_200" label="车主电话"> <!-- <el-descriptions-item label-class-name="width_200" label="车主电话">-->
{{ info.CAR_OWNERS_TEL }} <!-- {{ info.CAR_OWNERS_TEL }}-->
</el-descriptions-item> <!-- </el-descriptions-item>-->
<el-descriptions-item label-class-name="width_200" label="联系电话"> <el-descriptions-item label-class-name="width_200" label="联系电话">
{{ info.CONTACT_PHONE }} {{ info.CONTACT_PHONE }}
</el-descriptions-item> </el-descriptions-item>

View File

@ -18,7 +18,7 @@
label="经营企业" label="经营企业"
prop="OPERATINGCOMPANY" prop="OPERATINGCOMPANY"
> >
<span>{{ operatingCompany }}</span> <span>{{ form.OPERATINGCOMPANY }}</span>
</el-form-item> </el-form-item>
<el-form-item label="合同文件" prop="file"> <el-form-item label="合同文件" prop="file">
<layout-upload <layout-upload
@ -38,9 +38,9 @@
clearable clearable
/> />
</el-form-item> </el-form-item>
<el-form-item label="备注" prop="MEETING_CONTENT"> <el-form-item label="备注" prop="CONTENT">
<el-input <el-input
v-model="form.MEETING_CONTENT" v-model="form.CONTENT"
type="textarea" type="textarea"
placeholder="请输入内容" placeholder="请输入内容"
style="width: 300px" style="width: 300px"
@ -55,14 +55,13 @@
</template> </template>
<script setup> <script setup>
import { onMounted, ref, toRaw } from "vue"; import { ref, toRaw } from "vue";
import { useVModels } from "@vueuse/core"; import { useVModels } from "@vueuse/core";
import { ElMessage } from "element-plus"; import { ElMessage } from "element-plus";
import LayoutUpload from "@/components/upload/index.vue"; import LayoutUpload from "@/components/upload/index.vue";
import { import {
addContractView, addContractView,
editContractView, editContractView,
getSafetyContractList,
} from "@/request/traffic_safety_contract.js"; } from "@/request/traffic_safety_contract.js";
const props = defineProps({ const props = defineProps({
@ -101,13 +100,6 @@ const rules = {
], ],
}; };
const operatingCompany = ref("");
onMounted(async () => {
const resData = await getSafetyContractList();
if (resData && resData.varList && resData.varList.length > 0) {
operatingCompany.value = resData.varList[0].CORP_NAME;
}
});
const formRef = ref(null); const formRef = ref(null);
const fnClose = () => { const fnClose = () => {
formRef.value.resetFields(); formRef.value.resetFields();

View File

@ -109,6 +109,7 @@ import Add from "@/views/labor_contract/components/add.vue";
import LayoutPdf from "@/components/pdf/index.vue"; import LayoutPdf from "@/components/pdf/index.vue";
import { import {
deleteContractView, deleteContractView,
getSafetyContractList,
getSafetyContractUserList, getSafetyContractUserList,
} from "@/request/traffic_safety_contract.js"; } from "@/request/traffic_safety_contract.js";
@ -152,7 +153,16 @@ const fnAddOrEdit = async (
data.addOrEditDialog.type = type; data.addOrEditDialog.type = type;
data.addOrEditDialog.form = {}; data.addOrEditDialog.form = {};
if (type === "edit" && LABORCONTRACT_ID) { if (type === "edit" && LABORCONTRACT_ID) {
data.addOrEditDialog.form.LABORCONTRACT_ID = LABORCONTRACT_ID; const resData = await getSafetyContractList({ LABORCONTRACT_ID });
if (resData && resData.varList && resData.varList.length > 0) {
const detail = resData.varList.find(
(detail) => detail.USER_ID === USER_ID
);
data.addOrEditDialog.form = {
...detail,
OPERATINGCOMPANY: detail.CORP_NAME,
};
}
} else { } else {
data.addOrEditDialog.form = { USER_ID }; data.addOrEditDialog.form = { USER_ID };
} }

View File

@ -52,8 +52,9 @@
{{ serialNumber(pagination, $index) }} {{ serialNumber(pagination, $index) }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="NEWCONTRACTNAME" label="合同名称" width="250" /> <el-table-column prop="NEWCONTRACTNAME" label="用户名称" width="100" />
<el-table-column prop="COMPLETIONSTATUS" label="完成状态" width="250"> <el-table-column prop="CONTRACTNAME" label="合同名称" width="250" />
<el-table-column prop="COMPLETIONSTATUS" label="完成状态" width="150">
<template #default="{ row }"> <template #default="{ row }">
<el-tag v-if="row.COMPLETIONSTATUS === '1'"></el-tag> <el-tag v-if="row.COMPLETIONSTATUS === '1'"></el-tag>
<el-tag v-else></el-tag> <el-tag v-else></el-tag>
@ -146,7 +147,7 @@ const data = reactive({
watchEffect(() => { watchEffect(() => {
if (list.value.length > 0) { if (list.value.length > 0) {
list.value.forEach((item) => { list.value.forEach((item) => {
item.NEWCONTRACTNAME = `${item.NAME} 合同书`; item.NEWCONTRACTNAME = `${item.NAME}`;
}); });
} }
}); });

View File

@ -195,6 +195,17 @@
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12">
<el-form-item label="合同" prop="CONTRACT">
<layout-upload
v-model:file-list="form.CONTRACT"
list-type="picture-card"
accept=".jpg,.jpeg,.png"
:limit="99"
delete-to-server
/>
</el-form-item>
</el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="备注" prop="NOTES"> <el-form-item label="备注" prop="NOTES">
<el-input <el-input
@ -248,6 +259,7 @@ const form = ref({
REMINDER_DATE: "", REMINDER_DATE: "",
REMINDER_STATUS: "", REMINDER_STATUS: "",
BEIDOUINFO: [], BEIDOUINFO: [],
CONTRACT: [],
}); });
const data = reactive({ const data = reactive({
vehicleList: [], vehicleList: [],
@ -339,6 +351,15 @@ const fnGetData = async () => {
}; };
fnGetData(); fnGetData();
// 128129
const fnUploadImage = async (currentId, FFILE, TYPE) => {
const formData = new FormData();
formData.append("FOREIGN_KEY", currentId);
formData.append("TYPE", TYPE); // TYPE
formData.append("FFILE", FFILE);
await setUploadImg(formData);
};
const fnSubmit = debounce( const fnSubmit = debounce(
1000, 1000,
async () => { async () => {
@ -347,22 +368,33 @@ const fnSubmit = debounce(
? await setBeidouAdd({ ...form.value }) ? await setBeidouAdd({ ...form.value })
: await setBeidouEdit({ ...form.value, BEIDOU_ID }); : await setBeidouEdit({ ...form.value, BEIDOU_ID });
const currentId = resData.pd.BEIDOU_ID; const currentId = resData.pd.BEIDOU_ID;
//
for (let i = 0; i < form.value.BEIDOUINFO.length; i++) { for (let i = 0; i < form.value.BEIDOUINFO.length; i++) {
if (form.value.BEIDOUINFO[i].raw) if (form.value.BEIDOUINFO[i].raw) {
await fnUploadImage(currentId, form.value.BEIDOUINFO[i].raw, 128); await fnUploadImage(currentId, form.value.BEIDOUINFO[i].raw, "128"); //
}
} }
//
for (let i = 0; i < form.value.CONTRACT.length; i++) {
if (form.value.CONTRACT[i].raw) {
await fnUploadImage(currentId, form.value.CONTRACT[i].raw, "130"); //
}
}
ElMessage.success("保存成功"); ElMessage.success("保存成功");
router.back(); router.back();
}, },
{ atBegin: true } { atBegin: true }
); );
const fnUploadImage = async (HIDDEN_ID, FFILE, TYPE) => { // const fnUploadImage = async (currentId, FFILE, TYPE) => {
const formData = new FormData(); // const formData = new FormData();
formData.append("FOREIGN_KEY", HIDDEN_ID); // formData.append("FOREIGN_KEY", currentId);
formData.append("TYPE", TYPE); // formData.append("TYPE", TYPE);
formData.append("FFILE", FFILE); // formData.append("FFILE", FFILE);
await setUploadImg(formData); // await setUploadImg(formData);
}; // };
</script> </script>
<style scoped lang="scss"></style> <style scoped lang="scss"></style>

View File

@ -81,6 +81,22 @@
class="ml-10" class="ml-10"
/> />
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item
label-class-name="width_200"
label="合同"
span="2"
>
<img
v-for="item in info.CONTRACT"
:key="item.FILEPATH"
v-viewer
:src="item.url"
width="100"
height="100"
alt=""
class="ml-10"
/>
</el-descriptions-item>
<el-descriptions-item <el-descriptions-item
label-class-name="width_200" label-class-name="width_200"
label="备注" label="备注"

View File

@ -160,7 +160,7 @@
</el-button> </el-button>
<el-button <el-button
v-if="expandedRows[row.INSPECTANNUALLY_ID]" v-if="expandedRows[row.INSPECTANNUALLY_ID]"
type="primary" type="danger"
link link
@click="fnDelete(row.INSPECTANNUALLY_ID)" @click="fnDelete(row.INSPECTANNUALLY_ID)"
>删除 >删除

View File

@ -22,7 +22,7 @@
label="经营企业" label="经营企业"
prop="OPERATINGCOMPANY" prop="OPERATINGCOMPANY"
> >
<span>{{ operatingCompany }}</span> <span>{{ form.OPERATINGCOMPANY }}</span>
</el-form-item> </el-form-item>
<el-form-item label="职业危害告知书" prop="file"> <el-form-item label="职业危害告知书" prop="file">
<layout-upload <layout-upload
@ -42,9 +42,9 @@
clearable clearable
/> />
</el-form-item> </el-form-item>
<el-form-item label="备注" prop="MEETING_CONTENT"> <el-form-item label="备注" prop="CONTENT">
<el-input <el-input
v-model="form.MEETING_CONTENT" v-model="form.CONTENT"
type="textarea" type="textarea"
placeholder="请输入内容" placeholder="请输入内容"
style="width: 300px" style="width: 300px"
@ -59,14 +59,13 @@
</template> </template>
<script setup> <script setup>
import { onMounted, ref, toRaw } from "vue"; import { ref, toRaw } from "vue";
import { useVModels } from "@vueuse/core"; import { useVModels } from "@vueuse/core";
import { ElMessage } from "element-plus"; import { ElMessage } from "element-plus";
import LayoutUpload from "@/components/upload/index.vue"; import LayoutUpload from "@/components/upload/index.vue";
import { import {
addOccupationalHazardsView, addOccupationalHazardsView,
editOccupationalHazardsView, editOccupationalHazardsView,
getSafetyOccupationalHazardsList,
} from "@/request/traffic_occupational_hazards.js"; } from "@/request/traffic_occupational_hazards.js";
const props = defineProps({ const props = defineProps({
@ -107,13 +106,6 @@ const rules = {
], ],
}; };
const operatingCompany = ref("");
onMounted(async () => {
const resData = await getSafetyOccupationalHazardsList();
if (resData && resData.varList && resData.varList.length > 0) {
operatingCompany.value = resData.varList[0].CORP_NAME;
}
});
const formRef = ref(null); const formRef = ref(null);
const fnClose = () => { const fnClose = () => {
formRef.value.resetFields(); formRef.value.resetFields();

View File

@ -111,6 +111,7 @@ import Add from "@/views/occupational_hazards/components/add.vue";
import LayoutPdf from "@/components/pdf/index.vue"; import LayoutPdf from "@/components/pdf/index.vue";
import { import {
deleteOccupationalHazardsView, deleteOccupationalHazardsView,
getSafetyOccupationalHazardsList,
getSafetyOccupationalHazardsUserList, getSafetyOccupationalHazardsUserList,
} from "@/request/traffic_occupational_hazards.js"; } from "@/request/traffic_occupational_hazards.js";
@ -154,7 +155,18 @@ const fnAddOrEdit = async (
data.addOrEditDialog.type = type; data.addOrEditDialog.type = type;
data.addOrEditDialog.form = {}; data.addOrEditDialog.form = {};
if (type === "edit" && OCCUPATIONALHAZARDS_ID) { if (type === "edit" && OCCUPATIONALHAZARDS_ID) {
data.addOrEditDialog.form.OCCUPATIONALHAZARDS_ID = OCCUPATIONALHAZARDS_ID; const resData = await getSafetyOccupationalHazardsList({
OCCUPATIONALHAZARDS_ID,
});
if (resData && resData.varList && resData.varList.length > 0) {
const detail = resData.varList.find(
(detail) => detail.USER_ID === USER_ID
);
data.addOrEditDialog.form = {
...detail,
OPERATINGCOMPANY: detail.CORP_NAME,
};
}
} else { } else {
data.addOrEditDialog.form = { USER_ID }; data.addOrEditDialog.form = { USER_ID };
} }

View File

@ -58,22 +58,27 @@
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="NEWOCCUPATIONALNAME" prop="NEWOCCUPATIONALNAME"
label="用户名称"
width="100"
/>
<el-table-column
prop="OCCUPATIONALNAME"
label="职业危害告知书" label="职业危害告知书"
width="250" width="250"
/> />
<el-table-column prop="COMPLETIONSTATUS" label="完成状态" width="250"> <el-table-column prop="COMPLETIONSTATUS" label="完成状态" width="100">
<template #default="{ row }"> <template #default="{ row }">
<el-tag v-if="row.COMPLETIONSTATUS === '1'"></el-tag> <el-tag v-if="row.COMPLETIONSTATUS === '1'"></el-tag>
<el-tag v-else></el-tag> <el-tag v-else></el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="有效状态" prop="VALIDSTATUS"> <el-table-column label="有效状态" prop="VALIDSTATUS" width="100">
<template #default="{ row }"> <template #default="{ row }">
<el-tag v-if="row.VALIDSTATUS === '1'"></el-tag> <el-tag v-if="row.VALIDSTATUS === '1'"></el-tag>
<el-tag v-else></el-tag> <el-tag v-else></el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="CORP_NAME" label="经营企业" width="150" /> <el-table-column prop="CORP_NAME" label="经营企业" width="220" />
<el-table-column prop="OPERATIONTYPE" label="经营类型" width="150" /> <el-table-column prop="OPERATIONTYPE" label="经营类型" width="150" />
<el-table-column prop="EXPIRYDATE" label="到期时间" width="150" /> <el-table-column prop="EXPIRYDATE" label="到期时间" width="150" />
<el-table-column prop="CREATETIME" label="创建时间" width="150" /> <el-table-column prop="CREATETIME" label="创建时间" width="150" />
@ -154,7 +159,7 @@ const data = reactive({
watchEffect(() => { watchEffect(() => {
if (list.value.length > 0) { if (list.value.length > 0) {
list.value.forEach((item) => { list.value.forEach((item) => {
item.NEWOCCUPATIONALNAME = `${item.NAME} 职业危害告知书`; item.NEWOCCUPATIONALNAME = `${item.NAME}`;
}); });
} }
}); });

View File

@ -18,7 +18,7 @@
label="经营企业" label="经营企业"
prop="OPERATINGCOMPANY" prop="OPERATINGCOMPANY"
> >
<span>{{ operatingCompany }}</span> <span>{{ form.OPERATINGCOMPANY }}</span>
</el-form-item> </el-form-item>
<el-form-item label="会议附件" prop="file"> <el-form-item label="会议附件" prop="file">
<layout-upload <layout-upload
@ -47,14 +47,13 @@
</template> </template>
<script setup> <script setup>
import { onMounted, ref, toRaw } from "vue"; import { ref, toRaw } from "vue";
import { useVModels } from "@vueuse/core"; import { useVModels } from "@vueuse/core";
import { ElMessage } from "element-plus"; import { ElMessage } from "element-plus";
import LayoutUpload from "@/components/upload/index.vue"; import LayoutUpload from "@/components/upload/index.vue";
import { import {
addProductionView, addProductionView,
editProductionView, editProductionView,
getSafetyProductionList,
} from "@/request/traffic_safety_production.js"; } from "@/request/traffic_safety_production.js";
const props = defineProps({ const props = defineProps({
@ -91,15 +90,6 @@ const rules = {
SYSTEMNAME: [{ required: true, message: "请输入名称", trigger: "blur" }], SYSTEMNAME: [{ required: true, message: "请输入名称", trigger: "blur" }],
}; };
const operatingCompany = ref("");
const operationType = ref("");
onMounted(async () => {
const resData = await getSafetyProductionList();
if (resData && resData.varList && resData.varList.length > 0) {
operatingCompany.value = resData.varList[0].CORP_NAME;
operationType.value = resData.varList[0].OPERATIONTYPE;
}
});
const formRef = ref(null); const formRef = ref(null);
const fnClose = () => { const fnClose = () => {
formRef.value.resetFields(); formRef.value.resetFields();

View File

@ -150,7 +150,15 @@ const fnAddOrEdit = async (SAFETYPRODUCTION_ID = "", type = "add") => {
data.addOrEditDialog.visible = true; data.addOrEditDialog.visible = true;
data.addOrEditDialog.type = type; data.addOrEditDialog.type = type;
if (type === "edit" && SAFETYPRODUCTION_ID) { if (type === "edit" && SAFETYPRODUCTION_ID) {
data.addOrEditDialog.form.SAFETYPRODUCTION_ID = SAFETYPRODUCTION_ID; const resData = await getSafetyProductionList({ SAFETYPRODUCTION_ID });
if (resData && resData.varList && resData.varList.length > 0) {
const detail = resData.varList[0];
data.addOrEditDialog.form = {
...detail,
OPERATINGCOMPANY: detail.CORP_NAME,
EXPIRYDATE: detail.EXPIRYDATE,
};
}
} else { } else {
data.addOrEditDialog.form = {}; data.addOrEditDialog.form = {};
} }

View File

@ -22,7 +22,7 @@
label="经营企业" label="经营企业"
prop="OPERATINGCOMPANY" prop="OPERATINGCOMPANY"
> >
<span>{{ operatingCompany }}</span> <span>{{ form.OPERATINGCOMPANY }}</span>
</el-form-item> </el-form-item>
<el-form-item label="岗位安全责任书" prop="file"> <el-form-item label="岗位安全责任书" prop="file">
<layout-upload <layout-upload
@ -39,12 +39,13 @@
format="YYYY-MM-DD" format="YYYY-MM-DD"
value-format="YYYY-MM-DD" value-format="YYYY-MM-DD"
placeholder="选择时间" placeholder="选择时间"
style="width: 200px"
clearable clearable
/> />
</el-form-item> </el-form-item>
<el-form-item label="备注" prop="MEETING_CONTENT"> <el-form-item label="备注" prop="CONTENT">
<el-input <el-input
v-model="form.MEETING_CONTENT" v-model="form.CONTENT"
type="textarea" type="textarea"
placeholder="请输入内容" placeholder="请输入内容"
style="width: 300px" style="width: 300px"
@ -60,14 +61,13 @@
</template> </template>
<script setup> <script setup>
import { onMounted, ref, toRaw } from "vue"; import { ref, toRaw } from "vue";
import { useVModels } from "@vueuse/core"; import { useVModels } from "@vueuse/core";
import { ElMessage } from "element-plus"; import { ElMessage } from "element-plus";
import LayoutUpload from "@/components/upload/index.vue"; import LayoutUpload from "@/components/upload/index.vue";
import { import {
addResponsibilityView, addResponsibilityView,
editResponsibilityView, editResponsibilityView,
getSafetyResponsibilityList,
} from "@/request/traffic_safety_responsibility.js"; } from "@/request/traffic_safety_responsibility.js";
const props = defineProps({ const props = defineProps({
@ -108,13 +108,6 @@ const rules = {
], ],
}; };
const operatingCompany = ref("");
onMounted(async () => {
const resData = await getSafetyResponsibilityList();
if (resData && resData.varList && resData.varList.length > 0) {
operatingCompany.value = resData.varList[0].CORP_NAME;
}
});
const formRef = ref(null); const formRef = ref(null);
const fnClose = () => { const fnClose = () => {
formRef.value.resetFields(); formRef.value.resetFields();

View File

@ -111,6 +111,7 @@ import Add from "@/views/safety_responsibility/components/add.vue";
import LayoutPdf from "@/components/pdf/index.vue"; import LayoutPdf from "@/components/pdf/index.vue";
import { import {
deleteResponsibilityView, deleteResponsibilityView,
getSafetyResponsibilityList,
getSafetyResponsibilityUserList, getSafetyResponsibilityUserList,
} from "@/request/traffic_safety_responsibility.js"; } from "@/request/traffic_safety_responsibility.js";
@ -154,7 +155,18 @@ const fnAddOrEdit = async (
data.addOrEditDialog.type = type; data.addOrEditDialog.type = type;
data.addOrEditDialog.form = {}; data.addOrEditDialog.form = {};
if (type === "edit" && SAFETYRESPONSIBILITY_ID) { if (type === "edit" && SAFETYRESPONSIBILITY_ID) {
data.addOrEditDialog.form.SAFETYRESPONSIBILITY_ID = SAFETYRESPONSIBILITY_ID; const resData = await getSafetyResponsibilityList({
SAFETYRESPONSIBILITY_ID,
});
if (resData && resData.varList && resData.varList.length > 0) {
const detail = resData.varList.find(
(detail) => detail.USER_ID === USER_ID
);
data.addOrEditDialog.form = {
...detail,
OPERATINGCOMPANY: detail.CORP_NAME,
};
}
} else { } else {
data.addOrEditDialog.form = { USER_ID }; data.addOrEditDialog.form = { USER_ID };
} }

View File

@ -56,12 +56,13 @@
{{ serialNumber(pagination, $index) }} {{ serialNumber(pagination, $index) }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="NEWCONTRACTNAME" label="用户名称" width="100" />
<el-table-column <el-table-column
prop="NEWCONTRACTNAME" prop="RESPONSIBILITYNAME"
label="岗位安全责任书" label="岗位安全责任书"
width="250" width="250"
/> />
<el-table-column prop="COMPLETIONSTATUS" label="完成状态" width="250"> <el-table-column prop="COMPLETIONSTATUS" label="完成状态" width="100">
<template #default="{ row }"> <template #default="{ row }">
<el-tag v-if="row.COMPLETIONSTATUS === '1'"></el-tag> <el-tag v-if="row.COMPLETIONSTATUS === '1'"></el-tag>
<el-tag v-else></el-tag> <el-tag v-else></el-tag>
@ -154,7 +155,7 @@ const data = reactive({
watchEffect(() => { watchEffect(() => {
if (list.value.length > 0) { if (list.value.length > 0) {
list.value.forEach((item) => { list.value.forEach((item) => {
item.NEWCONTRACTNAME = `${item.NAME} 岗位安全责任书`; item.NEWCONTRACTNAME = `${item.NAME}`;
}); });
} }
}); });

View File

@ -23,7 +23,7 @@
label="经营企业" label="经营企业"
prop="OPERATINGCOMPANY" prop="OPERATINGCOMPANY"
> >
<span>{{ operatingCompany }}</span> <span>{{ form.OPERATINGCOMPANY }}</span>
</el-form-item> </el-form-item>
<el-form-item label="承诺书文件" prop="file"> <el-form-item label="承诺书文件" prop="file">
<layout-upload <layout-upload
@ -44,9 +44,9 @@
clearable clearable
/> />
</el-form-item> </el-form-item>
<el-form-item label="备注" prop="MEETING_CONTENT"> <el-form-item label="备注" prop="CONTENT">
<el-input <el-input
v-model="form.MEETING_CONTENT" v-model="form.CONTENT"
type="textarea" type="textarea"
placeholder="请输入内容" placeholder="请输入内容"
style="width: 300px" style="width: 300px"
@ -61,14 +61,13 @@
</template> </template>
<script setup> <script setup>
import { onMounted, ref, toRaw } from "vue"; import { ref, toRaw } from "vue";
import { useVModels } from "@vueuse/core"; import { useVModels } from "@vueuse/core";
import { ElMessage } from "element-plus"; import { ElMessage } from "element-plus";
import LayoutUpload from "@/components/upload/index.vue"; import LayoutUpload from "@/components/upload/index.vue";
import { import {
addCommitmentView, addCommitmentView,
editCommitmentView, editCommitmentView,
getSafetyCommitmentList,
} from "@/request/traffic_safety_commitment.js"; } from "@/request/traffic_safety_commitment.js";
const props = defineProps({ const props = defineProps({
@ -108,14 +107,6 @@ const rules = {
{ required: true, message: "请输入承诺书名称", trigger: "blur" }, { required: true, message: "请输入承诺书名称", trigger: "blur" },
], ],
}; };
const operatingCompany = ref("");
onMounted(async () => {
const resData = await getSafetyCommitmentList();
if (resData && resData.varList && resData.varList.length > 0) {
operatingCompany.value = resData.varList[0].CORP_NAME;
}
});
const formRef = ref(null); const formRef = ref(null);
const fnClose = () => { const fnClose = () => {
formRef.value.resetFields(); formRef.value.resetFields();

View File

@ -105,6 +105,7 @@
import { useRoute } from "vue-router"; import { useRoute } from "vue-router";
import { import {
deleteCommitmentView, deleteCommitmentView,
getSafetyCommitmentList,
getSafetyCommitmentUserList, getSafetyCommitmentUserList,
} from "@/request/traffic_safety_commitment.js"; } from "@/request/traffic_safety_commitment.js";
import useListData from "@/assets/js/useListData.js"; import useListData from "@/assets/js/useListData.js";
@ -154,9 +155,20 @@ const fnAddOrEdit = async (
) => { ) => {
data.addOrEditDialog.visible = true; data.addOrEditDialog.visible = true;
data.addOrEditDialog.type = type; data.addOrEditDialog.type = type;
data.addOrEditDialog.form = {}; if (type === "edit" && SECURITYCOMMITMENT_ID && USER_ID) {
if (type === "edit" && SECURITYCOMMITMENT_ID) { const resData = await getSafetyCommitmentList({
data.addOrEditDialog.form.SECURITYCOMMITMENT_ID = SECURITYCOMMITMENT_ID; SECURITYCOMMITMENT_ID,
USER_ID,
});
if (resData && resData.varList && resData.varList.length > 0) {
const detail = resData.varList.find(
(detail) => detail.USER_ID === USER_ID
);
data.addOrEditDialog.form = {
...detail,
OPERATINGCOMPANY: detail.CORP_NAME,
};
}
} else { } else {
data.addOrEditDialog.form = { USER_ID }; data.addOrEditDialog.form = { USER_ID };
} }

View File

@ -54,10 +54,11 @@
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="NEWCOMMITMENTNAME" prop="NEWCOMMITMENTNAME"
label="承诺书名称" label="用户名称"
width="250" width="100"
/> />
<el-table-column prop="COMPLETIONSTATUS" label="完成状态" width="250"> <el-table-column prop="COMMITMENTNAME" label="承诺书名称" width="250" />
<el-table-column prop="COMPLETIONSTATUS" label="完成状态" width="100">
<template #default="{ row }"> <template #default="{ row }">
<el-tag v-if="row.COMPLETIONSTATUS === '1'"></el-tag> <el-tag v-if="row.COMPLETIONSTATUS === '1'"></el-tag>
<el-tag v-else></el-tag> <el-tag v-else></el-tag>
@ -150,7 +151,7 @@ const data = reactive({
watchEffect(() => { watchEffect(() => {
if (list.value.length > 0) { if (list.value.length > 0) {
list.value.forEach((item) => { list.value.forEach((item) => {
item.NEWCOMMITMENTNAME = `${item.NAME} 安全承诺书`; item.NEWCOMMITMENTNAME = `${item.NAME}`;
}); });
} }
}); });