forked from integrated_whb/integrated_whb_vue
bug优化
parent
6c1000d5f9
commit
558799d0c9
2
.env
2
.env
|
@ -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/
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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 };
|
||||||
}
|
}
|
||||||
|
|
|
@ -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}`;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -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();
|
||||||
|
|
||||||
|
// 假设128为北斗信息图片类型,129为合同图片类型
|
||||||
|
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>
|
||||||
|
|
|
@ -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="备注"
|
||||||
|
|
|
@ -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)"
|
||||||
>删除
|
>删除
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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 };
|
||||||
}
|
}
|
||||||
|
|
|
@ -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}`;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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 = {};
|
||||||
}
|
}
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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 };
|
||||||
}
|
}
|
||||||
|
|
|
@ -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}`;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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 };
|
||||||
}
|
}
|
||||||
|
|
|
@ -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}`;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue