From d8518faf6bafc8095b1a5acbd11b3934c159aa12 Mon Sep 17 00:00:00 2001 From: huangchengfa <171504222@qq.com> Date: Wed, 10 Dec 2025 17:36:35 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=95=B0=E6=8D=AE=E6=95=B4=E7=90=86-?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=B8=8B=E5=8F=91=E9=80=9A=E7=9F=A5=EF=BC=8C?= =?UTF-8?q?=E5=92=8C=E7=A1=AE=E8=AE=A4=E7=A0=94=E5=88=A4=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/yj.js | 35 ++++++++++ .../JudgmentHome/dataReduction/addForm.vue | 70 ++++++++++++++++++- 2 files changed, 103 insertions(+), 2 deletions(-) diff --git a/src/api/yj.js b/src/api/yj.js index 3e816bd..c7ecd40 100644 --- a/src/api/yj.js +++ b/src/api/yj.js @@ -160,4 +160,39 @@ export const sjzlGetInfo = (id) => { method: "get", }) } +/** + * 非市情报指挥中心修改状态为完成 - 完成资料准备 + * @param {Object} data 请求数据对象 + * @param {Array} [data.fj] 附件数组,可选 + * @param {string} data.id 数据整理记录ID,必填 + * @param {string} data.wcqk 完成情况,必填(01:准备中, 02:已完成) + * @returns {Promise} 请求Promise对象 + */ +export const sjzlPerfectlnfo = (data) => { + return request({ + url: api + `/ypbg/sjzl/perfectInfo`, + method: "post", + data + }) +} +/** + * 数据整理-发送消息通知 + * @param {String} id id + */ +export const sjzlFstz = (id) => { + return request({ + url: api + `/ypbg/sjzl/fstz/${id}`, + method: "get", + }) +} +/** + * 数据整理-确认研判 + * @param {String} id id + */ +export const sjzlQryp = (id) => { + return request({ + url: api + `/ypbg/sjzl/qryp/${id}`, + method: "get", + }) +} diff --git a/src/views/backOfficeSystem/JudgmentHome/dataReduction/addForm.vue b/src/views/backOfficeSystem/JudgmentHome/dataReduction/addForm.vue index 1c21ac5..a8b850c 100644 --- a/src/views/backOfficeSystem/JudgmentHome/dataReduction/addForm.vue +++ b/src/views/backOfficeSystem/JudgmentHome/dataReduction/addForm.vue @@ -7,7 +7,7 @@ 关闭 -
+
+ +
+ 下发通知 + 确认研判 +
@@ -69,7 +74,7 @@ import FormMessage from "@/components/aboutTable/FormMessage.vue"; import UploadFile from "@/components/MyComponents/Upload/index.vue"; // import ChooseUser from "@/components/ChooseList/ChooseUser/index.vue" import { ref, defineExpose, reactive, defineEmits, getCurrentInstance, watch, computed } from "vue"; -import { sjzlAddEntity, sjzlEditEntity, sjzlGetInfo, sjzlPerfectlnfo } from '@//api/yj.js' +import { sjzlAddEntity, sjzlEditEntity, sjzlGetInfo, sjzlPerfectlnfo, sjzlFstz, sjzlQryp } from '@//api/yj.js' import { getItem } from '@//utils/storage.js' const emit = defineEmits(["updateDate", "getList"]); @@ -102,6 +107,8 @@ const statusForm = ref({ fj: [] }) // 修改状态表单 const currentRow = ref({}) // 当前操作的行 /** 外面行数据 */ const outRow = ref({}) +const noticeLoading = ref(false) // 下发通知加载状态 +const confirmLoading = ref(false) // 确认研判加载状态 const rules = reactive({ // 可以在这里添加表单验证规则 @@ -297,6 +304,47 @@ const closeStatusDialog = () => { statusLoading.value = false } +// 下发通知 +const sendNotice = () => { + proxy.$confirm('确认下发通知?', '提示', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning' + }).then(async () => { + try { + noticeLoading.value = true; + const res = await sjzlFstz(listQuery.value.id); + proxy.$message({ type: "success", message: "下发通知成功" }); + close(); + } catch (error) { + console.log(error); + } finally { + noticeLoading.value = false; + } + }); +}; + +// 确认研判 +const confirmJudgment = () => { + + proxy.$confirm('确认研判完成?', '提示', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning' + }).then(async () => { + try { + confirmLoading.value = true; + const res = await sjzlQryp(listQuery.value.id); + proxy.$message({ type: "success", message: "确认研判成功" }); + close(); + } catch (error) { + console.log(error); + } finally { + confirmLoading.value = false; + } + }); +}; + // 关闭 const close = () => { listQuery.value = {}; @@ -314,4 +362,22 @@ defineExpose({ init }); ::v-deep .form-item-box { width: 100% !important; } + +.bottom-actions { + position: absolute; + bottom: 0; + left: 50%; + + display: flex; + justify-content: center; + gap: 10px; + width: 100%; + transform: translateX(-50%); + padding: 10px 20px; + + border-radius: 4px; + background: white; + box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1); + // z-index: 1000; +}