forked from integrated_whb/integrated_whb_vue
Merge remote-tracking branch 'origin/dev' into dev
commit
f96eb0701c
|
@ -88,7 +88,7 @@
|
|||
</tr>
|
||||
<tr>
|
||||
<td class="title">检查照片</td>
|
||||
<td colspan="3">
|
||||
<td colspan="1">
|
||||
<div>
|
||||
<template
|
||||
v-for="(item3, index3) in item1.IMG_PATH.split(',')"
|
||||
|
@ -105,7 +105,25 @@
|
|||
</template>
|
||||
</div>
|
||||
</td>
|
||||
<td v-if="item.CHECKTYPE_NAME === '出车前'" class="title">
|
||||
是否合格
|
||||
</td>
|
||||
<td v-if="item.CHECKTYPE_NAME === '出车前'" colspan="3">
|
||||
<el-tag v-if="item1.pd2Children[0].STATUS === '0'"
|
||||
>合格</el-tag
|
||||
>
|
||||
<el-tag v-else>不合格</el-tag>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- <tr v-if="item.CHECKTYPE_NAME === '出车前'">-->
|
||||
<!-- <td class="title">是否合格</td>-->
|
||||
<!-- <td colspan="7">-->
|
||||
<!-- <el-tag v-if="item1.pd2Children[0].STATUS === '0'"-->
|
||||
<!-- >合格</el-tag-->
|
||||
<!-- >-->
|
||||
<!-- <el-tag v-else>不合格</el-tag>-->
|
||||
<!-- </td>-->
|
||||
<!-- </tr>-->
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -128,6 +146,7 @@ const data = reactive({
|
|||
});
|
||||
const fnGetData = async () => {
|
||||
const resData = await getSafetyDrivingLogView({ WAYBILLREGISTRATION_ID });
|
||||
console.log(resData, "11111111111");
|
||||
data.info = resData.pd;
|
||||
data.commitmentList = resData.commitmentList;
|
||||
};
|
||||
|
|
|
@ -74,32 +74,51 @@ const currentLatitude = ref("");
|
|||
const fnMapInit = async () => {
|
||||
loading.value = true;
|
||||
await nextTick();
|
||||
|
||||
// 定义默认的经纬度
|
||||
const defaultLongitude = "116.3972282409668";
|
||||
const defaultLatitude = "39.90960456049752";
|
||||
|
||||
// 创建地图实例
|
||||
mapInstance = new window.BMapGL.Map("map_container");
|
||||
mapInstance.centerAndZoom(
|
||||
new window.BMapGL.Point(
|
||||
props.longitude || "116.3972282409668",
|
||||
props.latitude || "39.90960456049752"
|
||||
)
|
||||
|
||||
// 设置地图的中心点为传入的props值或者默认值
|
||||
const centerPoint = new window.BMapGL.Point(
|
||||
props.longitude || defaultLongitude,
|
||||
props.latitude || defaultLatitude
|
||||
);
|
||||
|
||||
// 初始化地图的中心点和缩放级别
|
||||
mapInstance.centerAndZoom(centerPoint, 15); // 你可以根据需要设置缩放级别
|
||||
|
||||
// 其他地图初始化设置
|
||||
mapInstance.enableScrollWheelZoom(true);
|
||||
mapInstance.setMapStyleV2({
|
||||
styleId: "6f501abeb2a0cc0d961d110b9407b127",
|
||||
});
|
||||
|
||||
// 添加默认的标记
|
||||
const marker = new window.BMapGL.Marker(centerPoint);
|
||||
mapInstance.addOverlay(marker);
|
||||
currentLongitude.value = centerPoint.lng;
|
||||
currentLatitude.value = centerPoint.lat;
|
||||
|
||||
loading.value = false;
|
||||
if (props.longitude && props.latitude) {
|
||||
const point = new window.BMapGL.Point(props.longitude, props.latitude);
|
||||
const marker = new window.BMapGL.Marker(point);
|
||||
mapInstance.addOverlay(marker);
|
||||
}
|
||||
|
||||
// 添加地图点击事件监听器
|
||||
mapInstance.addEventListener("click", function (event) {
|
||||
mapInstance.clearOverlays();
|
||||
const point = new window.BMapGL.Point(event.latlng.lng, event.latlng.lat);
|
||||
const marker = new window.BMapGL.Marker(point);
|
||||
mapInstance.addOverlay(marker);
|
||||
const clickPoint = new window.BMapGL.Point(
|
||||
event.latlng.lng,
|
||||
event.latlng.lat
|
||||
);
|
||||
const clickMarker = new window.BMapGL.Marker(clickPoint);
|
||||
mapInstance.addOverlay(clickMarker);
|
||||
currentLatitude.value = event.latlng.lat;
|
||||
currentLongitude.value = event.latlng.lng;
|
||||
});
|
||||
};
|
||||
|
||||
const searchLocation = () => {
|
||||
if (searchKeyword.value.trim() === "") {
|
||||
alert("请输入搜索关键字");
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
label="经营企业"
|
||||
prop="OPERATINGCOMPANY"
|
||||
>
|
||||
<span>{{ operatingCompany }}</span>
|
||||
<span>{{ form.OPERATINGCOMPANY }}</span>
|
||||
</el-form-item>
|
||||
<el-form-item label="会议附件" prop="file">
|
||||
<layout-upload
|
||||
|
@ -30,6 +30,7 @@
|
|||
:limit="9"
|
||||
:size="100"
|
||||
/>
|
||||
<!-- <span>{{ form.ATTACHMENT_NAME }}</span>-->
|
||||
</el-form-item>
|
||||
<el-form-item label="到期时间" prop="EXPIRYDATE">
|
||||
<el-date-picker
|
||||
|
@ -49,14 +50,13 @@
|
|||
</template>
|
||||
|
||||
<script setup>
|
||||
import { onMounted, ref, toRaw } from "vue";
|
||||
import { ref, toRaw } from "vue";
|
||||
import { useVModels } from "@vueuse/core";
|
||||
import { ElMessage } from "element-plus";
|
||||
import LayoutUpload from "@/components/upload/index.vue";
|
||||
import {
|
||||
addManagementAgreementView,
|
||||
editManagementAgreementView,
|
||||
getManagementAgreementList,
|
||||
} from "@/request/management_agreement.js";
|
||||
|
||||
const props = defineProps({
|
||||
|
@ -98,15 +98,6 @@ const rules = {
|
|||
],
|
||||
};
|
||||
|
||||
const operatingCompany = ref("");
|
||||
const operationType = ref("");
|
||||
onMounted(async () => {
|
||||
const resData = await getManagementAgreementList();
|
||||
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 fnClose = () => {
|
||||
formRef.value.resetFields();
|
||||
|
|
|
@ -150,17 +150,29 @@ const data = reactive({
|
|||
info: {},
|
||||
},
|
||||
});
|
||||
|
||||
const fnAddOrEdit = async (MANAGEMENTAGREEMENT_ID = "", type = "add") => {
|
||||
data.addOrEditDialog.visible = true;
|
||||
data.addOrEditDialog.type = type;
|
||||
if (type === "edit" && MANAGEMENTAGREEMENT_ID) {
|
||||
data.addOrEditDialog.form.MANAGEMENTAGREEMENT_ID = MANAGEMENTAGREEMENT_ID;
|
||||
const resData = await infoManagementAgreementView({
|
||||
MANAGEMENTAGREEMENT_ID,
|
||||
});
|
||||
if (resData && resData.result === "success") {
|
||||
const detail = resData.pd;
|
||||
const attachmentName = detail.ATTACHMENT_ROUTE.split("/").pop();
|
||||
data.addOrEditDialog.form = {
|
||||
...detail,
|
||||
OPERATINGCOMPANY: detail.CORP_NAME,
|
||||
ATTACHMENT_NAME: attachmentName,
|
||||
};
|
||||
}
|
||||
} else {
|
||||
data.addOrEditDialog.form = {};
|
||||
data.addOrEditDialog.form = {}; // 新增时清空表单
|
||||
}
|
||||
|
||||
await nextTick();
|
||||
};
|
||||
|
||||
// 删除事件
|
||||
const deleteItem = async (value) => {
|
||||
await ElMessageBox.confirm(`确定要删除吗?`, {
|
||||
|
|
|
@ -27,17 +27,17 @@
|
|||
:limit="99"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="电子围栏" prop="ELECTRONIC_FENCE_NAME">
|
||||
<div style="flex: 1; display: flex">
|
||||
<el-input v-model="form.ELECTRONIC_FENCE_NAME" disabled />
|
||||
<el-button type="primary" class="ml-10" @click="data.drawer = true">
|
||||
添加
|
||||
</el-button>
|
||||
<el-button type="danger" class="ml-10" @click="fnRemoveRegName">
|
||||
移除
|
||||
</el-button>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="电子围栏" prop="ELECTRONIC_FENCE_NAME">-->
|
||||
<!-- <div style="flex: 1; display: flex">-->
|
||||
<!-- <el-input v-model="form.ELECTRONIC_FENCE_NAME" disabled />-->
|
||||
<!-- <el-button type="primary" class="ml-10" @click="data.drawer = true">-->
|
||||
<!-- 添加-->
|
||||
<!-- </el-button>-->
|
||||
<!-- <el-button type="danger" class="ml-10" @click="fnRemoveRegName">-->
|
||||
<!-- 移除-->
|
||||
<!-- </el-button>-->
|
||||
<!-- </div>-->
|
||||
<!-- </el-form-item>-->
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<el-button @click="fnClose">取消</el-button>
|
||||
|
@ -113,14 +113,14 @@ const fnClose = () => {
|
|||
visible.value = false;
|
||||
};
|
||||
|
||||
const fnRemoveRegName = debounce(
|
||||
1000,
|
||||
async () => {
|
||||
form.value.ELECTRONIC_FENCE_NAME = "";
|
||||
form.value.ELECTRONIC_FENCE_ID = "";
|
||||
},
|
||||
{ atBegin: true }
|
||||
);
|
||||
// const fnRemoveRegName = debounce(
|
||||
// 1000,
|
||||
// async () => {
|
||||
// form.value.ELECTRONIC_FENCE_NAME = "";
|
||||
// form.value.ELECTRONIC_FENCE_ID = "";
|
||||
// },
|
||||
// { atBegin: true }
|
||||
// );
|
||||
|
||||
const fnSubmit = debounce(
|
||||
1000,
|
||||
|
|
|
@ -74,9 +74,9 @@
|
|||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="人员选择" prop="PERSON">
|
||||
<div class="flexBox">
|
||||
<div style="flex: 1; display: flex">
|
||||
<el-input
|
||||
v-model="data.form.PERSON"
|
||||
type="textarea"
|
||||
|
@ -84,7 +84,7 @@
|
|||
disabled
|
||||
></el-input>
|
||||
<el-button
|
||||
class="addBtn"
|
||||
class="ml-10"
|
||||
type="primary"
|
||||
@click="data.SelectPersonDialogVisible = true"
|
||||
>
|
||||
|
@ -167,6 +167,13 @@ const rules = {
|
|||
RECORDER: [{ required: true, message: "请输入记录人", trigger: "blur" }],
|
||||
MEETING_CONTENT: [
|
||||
{ required: true, message: "请输入会议记要", trigger: "blur" },
|
||||
{
|
||||
validator: (rule, value, callback) => {
|
||||
if (value === "<p><br></p>") callback(new Error("请输入会议记要"));
|
||||
else callback();
|
||||
},
|
||||
trigger: "blur",
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
|
|
|
@ -43,7 +43,7 @@
|
|||
ref="tableRef"
|
||||
v-model:pagination="pagination"
|
||||
:data="list"
|
||||
row-key="RISKCHECKITEM_ID"
|
||||
row-key="USER_ID"
|
||||
@get-data="fnGetData"
|
||||
>
|
||||
<el-table-column reserve-selection type="selection" width="55" />
|
||||
|
@ -94,7 +94,6 @@ const { list, searchForm, pagination, fnGetData, fnResetPagination, tableRef } =
|
|||
useListData(getUserListAll, {
|
||||
key: "userList",
|
||||
immediate: false,
|
||||
clearSelection: false,
|
||||
});
|
||||
|
||||
const stop = watch(
|
||||
|
|
|
@ -39,6 +39,20 @@
|
|||
detailItems.realPersonNum
|
||||
}}/人
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="会议附件">
|
||||
<a
|
||||
:href="VITE_FILE_URL + detailItems.CONFIRM_MESSAGE_SIGN_ROUTE"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>查看会议附件</a
|
||||
>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="会议视频">
|
||||
<video
|
||||
:src="VITE_FILE_URL + detailItems.VIDEO_SIGN_ROUTE"
|
||||
controls
|
||||
></video>
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
<el-table
|
||||
:border="true"
|
||||
|
@ -117,6 +131,7 @@ const detailItems = ref({
|
|||
|
||||
const fnGetData = async () => {
|
||||
const response = await getSafetyMeetingView({ SAFETY_MEETING_ID });
|
||||
console.log(response, "1111111111111111111111111");
|
||||
detailItems.value = response.pd;
|
||||
};
|
||||
fnGetData();
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
>
|
||||
<el-divider content-position="left">添加</el-divider>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="通知标题" prop="TITLE">
|
||||
<el-input
|
||||
v-model="data.form.TITLE"
|
||||
|
@ -17,7 +17,7 @@
|
|||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="5">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="通知等级" prop="LEVEL">
|
||||
<el-select
|
||||
v-model="data.form.LEVEL"
|
||||
|
@ -33,9 +33,9 @@
|
|||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="人员选择" prop="PERSON">
|
||||
<div class="flexBox">
|
||||
<div style="flex: 1; display: flex">
|
||||
<el-input
|
||||
v-model="data.form.PERSON"
|
||||
type="textarea"
|
||||
|
@ -43,7 +43,7 @@
|
|||
disabled
|
||||
></el-input>
|
||||
<el-button
|
||||
class="addBtn"
|
||||
class="ml-10"
|
||||
type="primary"
|
||||
@click="data.SelectPersonDialogVisible = true"
|
||||
>
|
||||
|
@ -125,6 +125,13 @@ const rules = {
|
|||
PERSON: [{ required: true, message: "请选择通知人员", trigger: "blur" }],
|
||||
NOTIFICATIONCONTENT: [
|
||||
{ required: true, message: "请输入通知内容", trigger: "blur" },
|
||||
{
|
||||
validator: (rule, value, callback) => {
|
||||
if (value === "<p><br></p>") callback(new Error("请输入通知内容"));
|
||||
else callback();
|
||||
},
|
||||
trigger: "blur",
|
||||
},
|
||||
],
|
||||
};
|
||||
const relatedClassificationTempList =
|
||||
|
@ -214,13 +221,4 @@ const fnSelectAllRiskSubmit = (allData) => {
|
|||
};
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.flexBox {
|
||||
display: flex;
|
||||
align-items: flex-end;
|
||||
|
||||
.addBtn {
|
||||
margin-left: 12px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<style scoped lang="scss"></style>
|
||||
|
|
|
@ -43,10 +43,10 @@
|
|||
ref="tableRef"
|
||||
v-model:pagination="pagination"
|
||||
:data="list"
|
||||
row-key="RISKCHECKITEM_ID"
|
||||
row-key="USER_ID"
|
||||
@get-data="fnGetData"
|
||||
>
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column reserve-selection type="selection" width="55" />
|
||||
<el-table-column label="序号" width="70">
|
||||
<template #default="{ $index }">
|
||||
{{ serialNumber(pagination, $index) }}
|
||||
|
@ -71,7 +71,6 @@ import { debounce } from "throttle-debounce";
|
|||
import useListData from "@/assets/js/useListData.js";
|
||||
import { watch } from "vue";
|
||||
import { serialNumber } from "@/assets/js/utils.js";
|
||||
import { differenceWith } from "lodash-es";
|
||||
import { getUserListAll } from "@/request/safety_production_related.js";
|
||||
import { PERSONTYPEMENU } from "@/assets/js/constant.js";
|
||||
|
||||
|
@ -94,32 +93,27 @@ const { list, searchForm, pagination, fnGetData, fnResetPagination, tableRef } =
|
|||
useListData(getUserListAll, {
|
||||
key: "userList",
|
||||
immediate: false,
|
||||
clearSelection: false,
|
||||
});
|
||||
|
||||
const stop = watch(
|
||||
() => props.visible,
|
||||
(value) => {
|
||||
if (value) {
|
||||
fnGetData();
|
||||
fnResetPagination();
|
||||
stop && stop();
|
||||
}
|
||||
}
|
||||
);
|
||||
const fnClose = () => {
|
||||
tableRef.value.clearSelection();
|
||||
visible.value = false;
|
||||
};
|
||||
const fnSubmit = debounce(
|
||||
1000,
|
||||
() => {
|
||||
const selectionData = tableRef.value.getSelectionRows();
|
||||
const listData = differenceWith(
|
||||
selectionData,
|
||||
props.listData,
|
||||
(a, b) => a.RISKCHECKITEM_ID === b.RISKCHECKITEM_ID
|
||||
);
|
||||
emits("submit", selectionData);
|
||||
fnClose();
|
||||
emits("submit", listData);
|
||||
},
|
||||
{ atBegin: true }
|
||||
);
|
||||
|
|
Loading…
Reference in New Issue