diff --git a/src/api/huiShangyp/judgmentCommand.js b/src/api/huiShangyp/judgmentCommand.js
new file mode 100644
index 0000000..d4b632e
--- /dev/null
+++ b/src/api/huiShangyp/judgmentCommand.js
@@ -0,0 +1,54 @@
+import request from "@/utils/request";
+const api = "/mosty-api/mosty-gsxt";
+
+
+// =================== 指令 ====================
+/**
+ * 研判指令列表
+ * @param {Object} params 查询参数
+ * @param {number} [params.pageSize] 每页显示数量
+ * @param {number} [params.pageCurrent] 页码
+ * @param {string} [params.zlbt] 指令标题
+ * @param {string} [params.zlnr] 指令内容
+ * @param {string} [params.fqrxm] 发起人姓名
+ * @returns {Promise} 请求Promise对象
+ */
+export const getJudgmentCommandList = (params) => {
+ return request({
+ url: api + `/ypbg/zlxx/getPageList`,
+ method: "get",
+ params
+ })
+}
+
+/**
+ * 指令签收
+ * @param {Object} data 签收数据
+ * @param {string|number} data.zlid 指令ID(签收必传)
+ * @param {string} [data.bglx] 报告类型:01 战术报告 02 战略报告
+ * @param {string} [data.ypid] 研判业务ID(研判报告ID)
+ * @returns {Promise} 请求Promise对象
+ */
+export const signCommand = (data) => {
+ return request({
+ url: api + `/ypbg/zlxx/zlqs`,
+ method: "post",
+ data
+ })
+}
+
+/**
+ * 指令反馈
+ * @param {Object} data 反馈数据
+ * @param {string|number} data.zlid 指令ID(反馈必传)
+ * @param {string} data.bglx 报告类型:01 战术报告 02 战略报告(反馈必传)
+ * @param {string} data.ypid 研判业务ID(研判报告ID)(反馈必传)
+ * @returns {Promise} 请求Promise对象
+ */
+export const feedbackCommand = (data) => {
+ return request({
+ url: api + `/ypbg/zlxx/zlfk`,
+ method: "post",
+ data
+ })
+}
diff --git a/src/api/huiShangyp/strategicApi.js b/src/api/huiShangyp/strategicApi.js
new file mode 100644
index 0000000..4605ce5
--- /dev/null
+++ b/src/api/huiShangyp/strategicApi.js
@@ -0,0 +1,46 @@
+import request from "@/utils/request";
+const api = "/mosty-api/mosty-gsxt";
+
+// 战略研判-分页查询
+export const strategicGet = (data, url) => {
+ return request({
+ url: url + `/ypbg/sjzl/getPageYpList`,
+ method: "post",
+ data
+ })
+}
+
+// 战略研判-新增
+export const strategicPost = (data, url) => {
+ return request({
+ url: url,
+ method: "post",
+ data
+ })
+}
+
+// 战略研判-删除
+export const strategicDelete = (data, url) => {
+ return request({
+ url: url,
+ method: "delete",
+ data
+ })
+}
+
+// 战略研判-根据ID查询详情
+export const strategicGetInfo = (id) => {
+ return request({
+ url: api + `/strategic/${id}`,
+ method: "get"
+ })
+}
+
+// 战略研判-编辑
+export const strategicPut = (data, url) => {
+ return request({
+ url: url,
+ method: "put",
+ data
+ })
+}
diff --git a/src/api/huiShangyp/tacticalApi.js b/src/api/huiShangyp/tacticalApi.js
new file mode 100644
index 0000000..76825c9
--- /dev/null
+++ b/src/api/huiShangyp/tacticalApi.js
@@ -0,0 +1,150 @@
+import request from "@/utils/request";
+const api = "/mosty-api/mosty-gsxt";
+
+/**
+ * 战术研判-分页查询
+ * @param {Object} params 查询参数
+ * @param {number} [params.pageSize] 每页显示数量
+ * @param {number} [params.pageCurrent] 页码
+ * @param {string} [params.startTime] 开始时间
+ * @param {string} [params.endTime] 结束时间
+ * @param {string} [params.timeField] 时间范围查询字段
+ * @param {string} [params.sort] 排序字段
+ * @param {string} [params.order] 排序方式
+ * @param {string} [params.ypyt] 研判议题
+ * @param {string} [params.yppyq] 研判要求
+ * @param {string} [params.ypfs] 研判方式(01 线上、02 线下、03 自建)
+ * @param {string} [params.bglx] 报告类型(01 战术研判 02 战略研判)查询研判列表必传
+ * @param {string} [params.ssbmdm] 所属部门代码
+ * @returns {Promise} 请求Promise对象
+ */
+export const tacticalGet = (params) => {
+ return request({
+ url: api + `/ypbg/sjzl/getPageYpList`,
+ method: "get",
+ params
+ })
+}
+
+// 战术研判-新增
+export const tacticalPost = (data, url) => {
+ return request({
+ url: api,
+ method: "post",
+ data
+ })
+}
+
+// 战术研判-删除
+export const tacticalDelete = (data, url) => {
+ return request({
+ url: api,
+ method: "delete",
+ data
+ })
+}
+
+// 战术研判-根据ID查询详情
+export const tacticalGetInfo = (id) => {
+ return request({
+ url: api + `/tactical/${id}`,
+ method: "get"
+ })
+}
+
+// 战术研判-编辑
+export const tacticalPut = (data, url) => {
+ return request({
+ url: api,
+ method: "put",
+ data
+ })
+}
+
+
+/**
+ * 开始研判
+ * @param {string|number} id 研判ID
+ * @returns {Promise} 请求Promise对象
+ */
+export const startJudgment = (id) => {
+ return request({
+ url: api + `/ypbg/sjzl/ksyp/${id}`,
+ method: "post"
+ })
+}
+
+/**
+ * 结束研判
+ * @param {string|number} id 研判ID
+ * @returns {Promise} 请求Promise对象
+ */
+export const endJudgment = (id) => {
+ return request({
+ url: api + `/ypbg/sjzl/jsyp/${id}`,
+ method: "post"
+ })
+}
+
+/**
+ * 自建研判报告
+ * @param {Object} data 自建研判数据
+ * @returns {Promise} 请求Promise对象
+ */
+export const selfBuildJudgment = (data) => {
+ return request({
+ url: api + `/ypbg/sjzl/selfBuild`,
+ method: "post",
+ data
+ })
+}
+// =================== 指令 ====================
+/**
+ * 研判指令列表
+ * @param {Object} params 查询参数
+ * @param {number} [params.pageSize] 每页显示数量
+ * @param {number} [params.pageCurrent] 页码
+ * @param {string} [params.zlbt] 指令标题
+ * @param {string} [params.zlnr] 指令内容
+ * @param {string} [params.fqrxm] 发起人姓名
+ * @returns {Promise} 请求Promise对象
+ */
+export const getJudgmentCommandList = (params) => {
+ return request({
+ url: api + `/ypbg/zlxx/getPageList`,
+ method: "get",
+ params
+ })
+}
+
+/**
+ * 指令签收
+ * @param {Object} data 签收数据
+ * @param {string|number} data.zlid 指令ID(签收必传)
+ * @param {string} [data.bglx] 报告类型:01 战术报告 02 战略报告
+ * @param {string} [data.ypid] 研判业务ID(研判报告ID)
+ * @returns {Promise} 请求Promise对象
+ */
+export const signCommand = (data) => {
+ return request({
+ url: api + `/ypbg/zlxx/zlqs`,
+ method: "post",
+ data
+ })
+}
+
+/**
+ * 指令反馈
+ * @param {Object} data 反馈数据
+ * @param {string|number} data.zlid 指令ID(反馈必传)
+ * @param {string} data.bglx 报告类型:01 战术报告 02 战略报告(反馈必传)
+ * @param {string} data.ypid 研判业务ID(研判报告ID)(反馈必传)
+ * @returns {Promise} 请求Promise对象
+ */
+export const feedbackCommand = (data) => {
+ return request({
+ url: api + `/ypbg/zlxx/zlfk`,
+ method: "post",
+ data
+ })
+}
diff --git a/src/api/yj.js b/src/api/yj.js
index 3e816bd..e6a1192 100644
--- a/src/api/yj.js
+++ b/src/api/yj.js
@@ -160,4 +160,54 @@ 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 {Object} data 请求数据对象
+ * @param {Array} [data.fj] 附件数组,可选
+ * @param {string} data.id 数据整理记录ID,必填
+ * @param {string} data.wcqk 完成情况,必填(01:准备中, 02:已完成)
+ * @returns {Promise} 请求Promise对象
+ */
+export const sjzlPerfectSorce = (data) => {
+ return request({
+ url: api + `/ypbg/sjzl/perfectSorce`,
+ 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/components/MyComponents/Upload/index.vue b/src/components/MyComponents/Upload/index.vue
index 190a955..8ced42e 100644
--- a/src/components/MyComponents/Upload/index.vue
+++ b/src/components/MyComponents/Upload/index.vue
@@ -200,9 +200,30 @@ const handlePictureCardPreview = (file) => {
dialogImageUrl.value = file.url || '';
dialogVisible.value = true;
};
+function downloadFile(url, filename) {
+ fetch(url)
+ .then((response) => response.blob())
+ .then((blob) => {
+ const link = document.createElement("a");
+ link.href = URL.createObjectURL(blob);
+ link.download = filename;
+ document.body.appendChild(link);
+ link.click();
+ document.body.removeChild(link);
+ URL.revokeObjectURL(link.href);
+ })
+ .catch((error) => console.error("下载失败:", error));
+}
const handleDownload = (file) => {
- window.open(file.response?file.response.data:file.url);
+ if (file?.response?.data) {
+ window.open(file.response.data);
+ } else if (file?.url) {
+ downloadFile(file.url, file.name);
+ }
};
+// const handleDownload = (file) => {
+// window.open(file.response.data);
+// };
// 删除文件 触发父组件更新
const beforeRemove = (file) => {
diff --git a/src/router/index.js b/src/router/index.js
index 6890c96..539c16a 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -676,24 +676,33 @@ export const publicRoutes = [
}
},
{
- path: "/ResearchHome",
- name: "ResearchHome",
- component: () => import("@/views/backOfficeSystem/JudgmentHome/ResearchHome/index"),
+ path: "/tacticalResearch",
+ name: "tacticalResearch",
+ component: () => import("@/views/backOfficeSystem/JudgmentHome/tacticalResearch/index.vue"),
meta: {
title: "战术研判",
icon: "article"
}
},
-
{
- path: "/situationHome",
- name: "situationHome",
- component: () => import("@/views/backOfficeSystem/JudgmentHome/situationHome/index"),
+ path: "/strategicResearch",
+ name: "strategicResearch",
+ component: () => import("@/views/backOfficeSystem/JudgmentHome/strategicResearch/index.vue"),
meta: {
title: "战略研判",
icon: "article"
}
},
+ {
+ path: "/judgmentCommand",
+ name: "judgmentCommand",
+ component: () => import("@/views/backOfficeSystem/JudgmentHome/judgmentCommand/index.vue"),
+ meta: {
+ title: "研判指令",
+ icon: "article"
+ }
+ },
+
// {
// path: "/analysisReport",
// name: "AnalysisReport",
@@ -851,6 +860,25 @@ export const publicRoutes = [
component: () => import("@/views/backOfficeSystem/HumanIntelligence/CollectCrculate/index"),
meta: { title: "信息采集", icon: "article" },
},
+ {
+ path: "/ResearchHome",
+ name: "ResearchHome",
+ component: () => import("@/views/backOfficeSystem/JudgmentHome/ResearchHome/index"),
+ meta: {
+ title: "战术研判",
+ icon: "article"
+ }
+ },
+
+ {
+ path: "/situationHome",
+ name: "situationHome",
+ component: () => import("@/views/backOfficeSystem/JudgmentHome/situationHome/index"),
+ meta: {
+ title: "战略研判",
+ icon: "article"
+ }
+ },
]
},
]
diff --git a/src/views/backOfficeSystem/JudgmentHome/MeetingRoom/components/Communications/personnel.vue b/src/views/backOfficeSystem/JudgmentHome/MeetingRoom/components/Communications/personnel.vue
index c118b00..db58218 100644
--- a/src/views/backOfficeSystem/JudgmentHome/MeetingRoom/components/Communications/personnel.vue
+++ b/src/views/backOfficeSystem/JudgmentHome/MeetingRoom/components/Communications/personnel.vue
@@ -42,13 +42,16 @@ const handleClick = (tab) => {
console.log(tab)
}
onMounted(() => {
- lemon.basedata.fetchSystemOrg({
- flat: true,
- key_word: ""
- }).then(res => {
- console.log(res);
-
- })
+ try {
+ lemon?.basedata?.fetchSystemOrg({
+ flat: true,
+ key_word: ""
+ }).then(res => {
+ console.log(res);
+ })
+ } catch (error) {
+ console.log('error: ', error);
+ }
})
const getJgList = () => {
diff --git a/src/views/backOfficeSystem/JudgmentHome/dataReduction/addForm.vue b/src/views/backOfficeSystem/JudgmentHome/dataReduction/addForm.vue
index 401fa3a..38571e0 100644
--- a/src/views/backOfficeSystem/JudgmentHome/dataReduction/addForm.vue
+++ b/src/views/backOfficeSystem/JudgmentHome/dataReduction/addForm.vue
@@ -7,19 +7,97 @@