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 @@ 关闭 -
- +
+ + + +
+ +
+ 下发通知 + 确认研判 +
+
+ + +
+
+ 修改状态 +
+ 保存 + 关闭 +
+
+
+ + + + + +
+
+ + +
+
+ 提交素材 +
+ 保存 + 关闭 +
+
+
+ + + + +
- + + diff --git a/src/views/backOfficeSystem/JudgmentHome/judgmentCommand/index.vue b/src/views/backOfficeSystem/JudgmentHome/judgmentCommand/index.vue new file mode 100644 index 0000000..034beb1 --- /dev/null +++ b/src/views/backOfficeSystem/JudgmentHome/judgmentCommand/index.vue @@ -0,0 +1,196 @@ + + + + + + + diff --git a/src/views/backOfficeSystem/JudgmentHome/strategicResearch/addForm.vue b/src/views/backOfficeSystem/JudgmentHome/strategicResearch/addForm.vue new file mode 100644 index 0000000..1e9a0ab --- /dev/null +++ b/src/views/backOfficeSystem/JudgmentHome/strategicResearch/addForm.vue @@ -0,0 +1,449 @@ + + + + + diff --git a/src/views/backOfficeSystem/JudgmentHome/strategicResearch/index.vue b/src/views/backOfficeSystem/JudgmentHome/strategicResearch/index.vue new file mode 100644 index 0000000..851dd9d --- /dev/null +++ b/src/views/backOfficeSystem/JudgmentHome/strategicResearch/index.vue @@ -0,0 +1,200 @@ + + + + + + + diff --git a/src/views/backOfficeSystem/JudgmentHome/tacticalResearch/addForm.vue b/src/views/backOfficeSystem/JudgmentHome/tacticalResearch/addForm.vue new file mode 100644 index 0000000..e34b2e6 --- /dev/null +++ b/src/views/backOfficeSystem/JudgmentHome/tacticalResearch/addForm.vue @@ -0,0 +1,449 @@ + + + + + diff --git a/src/views/backOfficeSystem/JudgmentHome/tacticalResearch/index.vue b/src/views/backOfficeSystem/JudgmentHome/tacticalResearch/index.vue new file mode 100644 index 0000000..dac0bb7 --- /dev/null +++ b/src/views/backOfficeSystem/JudgmentHome/tacticalResearch/index.vue @@ -0,0 +1,200 @@ + + + + + + +