|
|
@@ -1,5 +1,44 @@
|
|
|
<template>
|
|
|
<el-card class="pl30 pt20 mt30" style="width: 1000px">
|
|
|
+ <div>
|
|
|
+ <div class="c6 mb20">船舶信息</div>
|
|
|
+ <div class="df aic mb20">
|
|
|
+ <div class="ship-label">船名</div>
|
|
|
+ <div class="ship-text">{{ shipDetail.shipname }}</div>
|
|
|
+ <div class="ship-label">MMSI</div>
|
|
|
+ <div class="ship-text">{{ shipDetail.mmsi }}</div>
|
|
|
+ <div class="ship-label">IMO</div>
|
|
|
+ <div class="ship-text">{{ shipDetail.imo }}</div>
|
|
|
+ <div class="ship-label">船龄</div>
|
|
|
+ <div class="ship-text">
|
|
|
+ {{ shipDetail.age }}
|
|
|
+ <span class="unit">年</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="df aic mb20">
|
|
|
+ <div class="ship-label">船长</div>
|
|
|
+ <div class="ship-text">
|
|
|
+ {{ shipDetail.length }}
|
|
|
+ <span class="unit">米</span>
|
|
|
+ </div>
|
|
|
+ <div class="ship-label">船宽</div>
|
|
|
+ <div class="ship-text">
|
|
|
+ {{ shipDetail.breadth }}
|
|
|
+ <span class="unit">米</span>
|
|
|
+ </div>
|
|
|
+ <div class="ship-label">吨位</div>
|
|
|
+ <div class="ship-text">
|
|
|
+ {{ shipDetail.loadTons }}
|
|
|
+ <span class="unit">吨</span>
|
|
|
+ </div>
|
|
|
+ <div class="ship-label">满载吃水</div>
|
|
|
+ <div class="ship-text">
|
|
|
+ {{ shipDetail.draught }}
|
|
|
+ <span class="unit">米</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <el-divider />
|
|
|
<div class="df aic mb20">
|
|
|
<div class="c6 mr30">请选择安检模板:</div>
|
|
|
<el-select
|
|
|
@@ -15,6 +54,34 @@
|
|
|
/>
|
|
|
</el-select>
|
|
|
</div>
|
|
|
+ <div v-if="templateDetail.id">
|
|
|
+ <div class="df aic">
|
|
|
+ <div class="c6 mr30 ml20">安检名称:</div>
|
|
|
+ <div class="c6 mr30">{{ templateDetail.securityCheckName }}</div>
|
|
|
+ <div class="c6 mr30">适用船型:</div>
|
|
|
+ <div class="c6 mr30">
|
|
|
+ {{ templateDetail.minShipLen }} - {{ templateDetail.maxShipLen }}
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="mt40 fs16 c6">安检项目</div>
|
|
|
+ <div
|
|
|
+ class="mb20 mt20 df aic fs14 c6"
|
|
|
+ v-for="item in templateDetail.items"
|
|
|
+ >
|
|
|
+ <div class="ml20 mr10 item-title">检查项目名称:</div>
|
|
|
+ <div class="mr30 item-text">{{ item.checkItemName }}</div>
|
|
|
+ <div class="mr10 item-title">检查项目类型:</div>
|
|
|
+ <div class="mr30 item-text">{{ item.checkItemTypeName }}</div>
|
|
|
+ <div class="mr10 item-title">检查项目备注:</div>
|
|
|
+ <div class="mr10 item-text">{{ item.checkItemRemark }}</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <el-divider />
|
|
|
+ <div class="df jcfe">
|
|
|
+ <el-button type="primary" :loading="isSubmit" @click="addSecurityCheck">
|
|
|
+ {{ isSubmit ? "正在提交" : "发起审核" }}
|
|
|
+ </el-button>
|
|
|
+ </div>
|
|
|
</el-card>
|
|
|
</template>
|
|
|
<script setup>
|
|
|
@@ -29,6 +96,7 @@ import _ from "lodash";
|
|
|
import { subTimeStr } from "../../utils/utils";
|
|
|
|
|
|
const route = useRoute();
|
|
|
+let templateId = ref("");
|
|
|
let templateSelect = ref([]);
|
|
|
async function getAddTemplateSelect(shipCode) {
|
|
|
let { data } = await api.getAddTemplateSelect({
|
|
|
@@ -40,9 +108,78 @@ async function getAddTemplateSelect(shipCode) {
|
|
|
templateSelect.value = [];
|
|
|
}
|
|
|
}
|
|
|
+let shipDetail = ref({});
|
|
|
+async function getShipDetail(shipCode) {
|
|
|
+ let { data } = await api.getShipDetail({ shipCode });
|
|
|
+ shipDetail.value = data.result;
|
|
|
+}
|
|
|
+
|
|
|
+let templateDetail = ref({
|
|
|
+ items: [],
|
|
|
+});
|
|
|
+async function getSecurityTemplateDetail(id) {
|
|
|
+ let { data } = await api.getSecurityTemplateDetail({
|
|
|
+ id,
|
|
|
+ });
|
|
|
+ if (data.status == 0) {
|
|
|
+ templateDetail.value = data.result;
|
|
|
+ } else {
|
|
|
+ templateDetail.value = {
|
|
|
+ items: [],
|
|
|
+ };
|
|
|
+ }
|
|
|
+}
|
|
|
+let isSubmit = ref(false);
|
|
|
+async function addSecurityCheck() {
|
|
|
+ if (!templateId.value) {
|
|
|
+ ElMessage({
|
|
|
+ message: "请选择安检模板",
|
|
|
+ type: "warning",
|
|
|
+ });
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ let postData = {
|
|
|
+ templateId: templateId.value,
|
|
|
+ shipCodes: [route.query.code],
|
|
|
+ };
|
|
|
+ isSubmit.value = true;
|
|
|
+ let { data } = await api.addSecurityCheck(postData);
|
|
|
+ isSubmit.value = false;
|
|
|
+ if (data.status == 0) {
|
|
|
+ ElNotification({
|
|
|
+ title: "成功",
|
|
|
+ message: data.msg,
|
|
|
+ type: "success",
|
|
|
+ duration: 1500,
|
|
|
+ });
|
|
|
+ store.commit("removeAlive", "checkShipExamineList");
|
|
|
+ router.replace("/shipSecurityManage/checkShipExamineList");
|
|
|
+ } else {
|
|
|
+ ElNotification({
|
|
|
+ message: data.msg,
|
|
|
+ type: "error",
|
|
|
+ duration: 2500,
|
|
|
+ });
|
|
|
+ }
|
|
|
+}
|
|
|
onMounted(() => {
|
|
|
getAddTemplateSelect(route.query.code);
|
|
|
+ getShipDetail(route.query.code);
|
|
|
});
|
|
|
</script>
|
|
|
|
|
|
-<style scoped></style>
|
|
|
+<style scoped>
|
|
|
+.ship-label {
|
|
|
+ width: 60px;
|
|
|
+ color: #666;
|
|
|
+ font-size: 14px;
|
|
|
+ text-align: right;
|
|
|
+ margin-right: 10px;
|
|
|
+}
|
|
|
+
|
|
|
+.ship-text {
|
|
|
+ width: 140px;
|
|
|
+ color: #333;
|
|
|
+ font-size: 14px;
|
|
|
+}
|
|
|
+</style>
|