diff --git a/src/App.vue b/src/App.vue index 0a7d3db..c738e86 100644 --- a/src/App.vue +++ b/src/App.vue @@ -6,10 +6,12 @@ diff --git a/src/views/backOfficeSystem/ResearchJudgment/MoralAnalysis/index.vue b/src/views/backOfficeSystem/ResearchJudgment/MoralAnalysis/index.vue index 8ade05b..d4c10be 100644 --- a/src/views/backOfficeSystem/ResearchJudgment/MoralAnalysis/index.vue +++ b/src/views/backOfficeSystem/ResearchJudgment/MoralAnalysis/index.vue @@ -19,17 +19,21 @@ :key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth" - @chooseData="chooseData" > -
+
+ {{ container }} +
导入 - 语义分析 + + 语义分析 + 数据解析中...... +
@@ -46,11 +50,11 @@ :tableHeight="pageData.tableHeight" :key="pageData.keyCount" :tableConfiger="pageData.tableConfigerR" - :controlsWidth="pageData.controlsWidth" - @chooseData="chooseData" + :controlsWidth="pageData.controlsWidthR" > @@ -65,6 +69,7 @@ + @@ -77,12 +82,16 @@ import MyTable from "@/components/aboutTable/MyTable.vue"; import Pages from "@/components/aboutTable/Pages.vue"; import Search from "@/components/aboutTable/Search.vue"; import EditAddForm from "./components/editAddForm.vue"; -import { qcckGet, qcckPost, qcckDelete } from "@/api/qcckApi.js"; +import Detail from "./components/detail.vue"; +import { qcckGet, qcckPost, ParsingText } from "@/api/qcckApi.js"; import { reactive, ref, onMounted, getCurrentInstance } from "vue"; const { proxy } = getCurrentInstance(); +const {D_GS_ZDQT_FXDJ,D_GS_XS_ZLLX,D_GS_XS_CZZT,D_GS_XS_LY, D_BZ_SSZT,D_BZ_SF,D_GS_XS_LX ,D_GS_XS_QTLX,D_BZ_XB,D_BZ_XSSHZT} = proxy.$dict("D_GS_ZDQT_FXDJ","D_GS_XS_ZLLX","D_GS_XS_CZZT","D_GS_XS_LY","D_BZ_SSZT","D_BZ_SF","D_GS_XS_LX","D_GS_XS_QTLX","D_BZ_XB","D_BZ_XSSHZT"); //获取字典数据 const detailDiloag = ref(); +const detailForm = ref(); const searchBox = ref(); //搜索框 const showText = ref(false); +const isShow = ref(false); const searchConfiger = ref([ { label: "语义名称", @@ -104,6 +113,9 @@ const searchConfiger = ref([ } ]); const queryFrom = ref({}); +const container = ref('') +const btnLoading = ref(false) +const prsentText = ref(null) const pageData = reactive({ tableData: [], //表格数据 keyCount: 0, @@ -124,6 +136,7 @@ const pageData = reactive({ pageCurrent: 1 }, //分页 controlsWidth: 120, //操作栏宽度 + controlsWidthR: 140, //操作栏宽度 tableColumn: [ { label: "语义名称", prop: "yymc",showOverflowTooltip:true }, { label: "要素类型", prop: "yslx",showOverflowTooltip:true }, @@ -133,7 +146,6 @@ const pageData = reactive({ tableColumn1: [ { label: "线索名称", prop: "yymc",showOverflowTooltip:true }, { label: "线索类型", prop: "yslx",showOverflowTooltip:true }, - { label: "指向时间", prop: "ysmc",showOverflowTooltip:true }, { label: "指向地点", prop: "ysms",showOverflowTooltip:true }, { label: "线索内容", prop: "ysms",showOverflowTooltip:true }, ], @@ -187,6 +199,13 @@ const delDictItemRight = (id) => { const addForm = (type, id) =>{ detailDiloag.value.init(type, id); } +// 新增数据 -- 左边 +const lookdetail = (type, row) =>{ + isShow.value = true; + setTimeout(()=>{ + detailForm.value.init(type, row); + },500) +} const changeNo = (val) => { @@ -205,6 +224,46 @@ const addEdit = (type, row) => { }; +// 提取数据 +const getText = (val) =>{ + prsentText.value = null; //先清空 + container.value = val.text; + let obj = { + "model": "deepseek-reasoner", + "messages": [ + { + "role": "system", + "content": "# 角色定位\n你是一名资深警务人员,尤其擅长对警情、案件、线索等非结构化文本数据进行阅读理解,并从中提取各种对象特征信息进行结构化,并总结各种对象之间的关联关系。\n##  - person:人物    - id:唯一值   - name:姓名   - enName:英文姓名   - nickName:绰号   - aliasName:别名   - screenName:网名   - idcard:身份证号码   - phoneNo:手机号码   - bankCard:银行卡号   - passporNumber:护照号码   - permanentResidenceAddress:户籍地址   - residenceAddress:现住地址 - jbxx:基本信息     - id:唯一值     - xsmc:线索名称     - xslx:线索类型     - qbly:情报来源     - kssj:开始时间     - jssj:结束时间     - qtlx:群体类型     - qtmc:群体名称     - sjrs:设计人数     - sbdw:送报单位## 注意点\n- 地址信息能够根据上下文信息按照省、市、县、街道/乡镇、路名分段补全并标准化。例如:四川省 成都市 高新区 桂溪街道 交子大道11号\n- 对象之间的关联关系由对象类型、对象id、关系类型、目标对象类型、目标对象id 5个属性组成。\n" + }, + { + "role": "user", + "content": "# 任务\n根据警情信息识别对象信息,以及对象之间的关联关系。最后以json形式输出,不要做任何解释。直接给出完整的json\n## 注意\n- 各种不同类型的对象分别用对象数组存储;\n- 对象之间的关系存储在relation数组中;\n\n# 警情信息\n  - " + } + ], + "max_tokens": 4096, + "stream": false + } + obj.messages[1].content = obj.messages[1].content + val.text; + prsentText.value = obj; +} + +const handleFx = () => { + if(!prsentText.value) return proxy.$message({ type: "warning", message: "请先上传要解析的文件" });; + btnLoading.value = true; + ParsingText( prsentText.value,(res)=>{ + btnLoading.value = false; + let content = res.data.choices[0].message.content; + let message = null; + try{ + message = content ? JSON.parse(content):'' + }catch(err){ + proxy.$message({ type: "danger", message: "解析异常,请重新上传解析" });; + } + if(!message) return; + console.log(message,'=================将结果'); + }) +} + // 表格高度计算 const tabHeightFn = () => { pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 280; @@ -226,10 +285,12 @@ const tabHeightFn = () => { position: absolute; bottom: 50px; height: 210px; - width: 100%; + width: calc(100% - 20px); padding: 0 10px; box-sizing: border-box; - background: #ccc; + border: 2px dashed #ccc; + margin: 0 10px; + color: #333; }