|
|
@@ -475,6 +475,14 @@
|
|
|
/>
|
|
|
</div>
|
|
|
</div>
|
|
|
+ <div class="df aic jcfe pr20" v-if="shipOwnerForm?.shipInfo?.code">
|
|
|
+ <el-button
|
|
|
+ type="primary"
|
|
|
+ @click="shipDetail(shipOwnerForm?.shipInfo?.code)"
|
|
|
+ >
|
|
|
+ 船舶详情
|
|
|
+ </el-button>
|
|
|
+ </div>
|
|
|
<div
|
|
|
class="df aic jcfe pr20"
|
|
|
v-if="!shipOwnerForm.shipInfo.id && isBindShipVisible"
|
|
|
@@ -715,9 +723,9 @@ const serviceFileList = computed(() => {
|
|
|
);
|
|
|
});
|
|
|
|
|
|
-async function getShipOwnerDetail() {
|
|
|
+async function getShipOwnerDetail(shipOwnerId) {
|
|
|
let { data } = await api.getShipOwnerDetail({
|
|
|
- shipOwnerId: route.query.shipOwnerId,
|
|
|
+ shipOwnerId,
|
|
|
});
|
|
|
|
|
|
if (data.status === 0 && data.result) {
|
|
|
@@ -756,13 +764,30 @@ async function getShipOwnerDetail() {
|
|
|
ElMessage.error(data.msg || "获取船员详情失败");
|
|
|
}
|
|
|
}
|
|
|
+function isPhoneNumber(str) {
|
|
|
+ const phoneNumberRegex = /^1[3-9]\d{9}$/;
|
|
|
+ return phoneNumberRegex.test(str);
|
|
|
+}
|
|
|
|
|
|
+const isBlurPhone = ref(false);
|
|
|
// 手机号失去焦点时检查是否已存在船员信息
|
|
|
-const handlePhoneBlur = () => {
|
|
|
+const handlePhoneBlur = async () => {
|
|
|
if (!shipOwnerForm.value.userPhone) return;
|
|
|
+ if (!isPhoneNumber(shipOwnerForm.value.userPhone)) {
|
|
|
+ ElMessage.error("请输入正确的手机号格式");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ let { data } = await api.searchShipOwner({
|
|
|
+ userPhone: shipOwnerForm.value.userPhone,
|
|
|
+ });
|
|
|
+
|
|
|
+ if (data.status === 0) {
|
|
|
+ getShipOwnerDetail(data.result.id);
|
|
|
+ isBlurPhone.value = true;
|
|
|
+ }
|
|
|
|
|
|
// 如果已经有shipOwnerId,说明已经匹配到了船员,不需要再查询
|
|
|
- if (shipOwnerForm.value.shipOwnerId) return;
|
|
|
+ // if (shipOwnerForm.value.shipOwnerId) return;
|
|
|
};
|
|
|
|
|
|
// 身份证人像面删除处理
|
|
|
@@ -996,7 +1021,7 @@ const saveBasicInfo = () => {
|
|
|
JSON.stringify(shipOwnerForm.value)
|
|
|
);
|
|
|
// 刷新数据
|
|
|
- getShipOwnerDetail();
|
|
|
+ getShipOwnerDetail(shipOwnerForm.value.shipOwnerId);
|
|
|
} else {
|
|
|
ElMessage.error(res.data.msg || "保存失败");
|
|
|
}
|
|
|
@@ -1061,7 +1086,7 @@ const updateShipOwnerCert = () => {
|
|
|
JSON.stringify(shipOwnerForm.value.certificate)
|
|
|
);
|
|
|
// 刷新数据
|
|
|
- getShipOwnerDetail();
|
|
|
+ getShipOwnerDetail(shipOwnerForm.value.shipOwnerId);
|
|
|
} else {
|
|
|
ElMessage.error(res.data.msg || "保存失败");
|
|
|
}
|
|
|
@@ -1077,8 +1102,22 @@ const updateShipOwnerCert = () => {
|
|
|
};
|
|
|
|
|
|
// 保存船员信息
|
|
|
-const saveShipOwner = () => {
|
|
|
+const saveShipOwner = async () => {
|
|
|
// 使用Element Plus表单验证
|
|
|
+ if (isBlurPhone.value && shipOwnerForm.value.shipOwnerId) {
|
|
|
+ if (!(await confirm("确定保存已匹配船员信息吗?"))) return;
|
|
|
+ let { data } = await api.addShipOwner({
|
|
|
+ shipOwnerId: shipOwnerForm.value.shipOwnerId,
|
|
|
+ });
|
|
|
+ if (data.status === 0) {
|
|
|
+ ElMessage.success("保存成功");
|
|
|
+ router.replace({ path: "/shipOwnerManage/shipOwnerList" });
|
|
|
+ } else {
|
|
|
+ ElMessage.error(data.msg || "保存失败");
|
|
|
+ }
|
|
|
+ console.log(data);
|
|
|
+ return;
|
|
|
+ }
|
|
|
shipOwnerFormRef.value.validate((valid1) => {
|
|
|
if (!valid1) return;
|
|
|
|
|
|
@@ -1245,7 +1284,7 @@ async function addShip() {
|
|
|
type: "success",
|
|
|
message: "绑定成功",
|
|
|
});
|
|
|
- getShipOwnerDetail();
|
|
|
+ getShipOwnerDetail(route.query.shipOwnerId);
|
|
|
} else {
|
|
|
ElMessage({
|
|
|
type: "error",
|
|
|
@@ -1282,12 +1321,22 @@ async function confirm(
|
|
|
});
|
|
|
}
|
|
|
|
|
|
+async function shipDetail(shipCode) {
|
|
|
+ store.commit("addAlive", "shipList");
|
|
|
+ router.push({
|
|
|
+ path: "/shipManage/shipDetail",
|
|
|
+ query: {
|
|
|
+ shipCode,
|
|
|
+ },
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
// 初始化数据
|
|
|
onMounted(() => {
|
|
|
// 如果有ID参数,获取船员详情
|
|
|
if (route.query.shipOwnerId) {
|
|
|
shipOwnerForm.value.shipOwnerId = Number(route.query.shipOwnerId);
|
|
|
- getShipOwnerDetail();
|
|
|
+ getShipOwnerDetail(route.query.shipOwnerId);
|
|
|
}
|
|
|
});
|
|
|
</script>
|