浏览代码

Merge branch 'master' of https://172.16.32.165/lighter/vue-intergration-platform

xiaochan 2 年之前
父节点
当前提交
ceea3d1d09

+ 9 - 0
src/api/target-management/target-dict.js

@@ -19,6 +19,15 @@ export function selectTargetDict(data) {
     })
 }
 
+// 根据id查询指标字典数据
+export function selectTargetDictById(data) {
+    return request({
+        url: '/targetManagement/selectTargetDictById',
+        method: 'post',
+        data,
+    })
+}
+
 // 保存指标字典数据
 export function saveTargetDict(data) {
     return request({

+ 27 - 0
src/api/target-management/target-sql.js

@@ -17,4 +17,31 @@ export function targetSqlSave(data) {
         method: 'post',
         data,
     })
+}
+
+// 查询指标分子/分母sql
+export function selectTargetSql(data) {
+    return request({
+        url: '/targetManagement/selectTargetSql',
+        method: 'post',
+        data,
+    })
+}
+
+// 根据查询指标分子/分母sql
+export function targetSqlExecuteById(data) {
+    return request({
+        url: '/targetManagement/targetSqlExecuteById',
+        method: 'post',
+        data,
+    })
+}
+
+// 查询指标分子/分母sql明细结果
+export function selectTargetSqlDetail(data) {
+    return request({
+        url: '/targetManagement/selectTargetSqlDetail',
+        method: 'post',
+        data,
+    })
 }

+ 2 - 3
src/components/operate-monitoring/ReportFirstPage.vue

@@ -32,11 +32,10 @@
         destroy-on-close>
         <ReportSecondPage :reportSecond="reportSecond" />
     </el-dialog>
-    <el-dialog v-else :title="titleChart" v-model="patientDrawer" width="80%" height="80%" top="40px" draggable
-        destroy-on-close>
+    <el-dialog v-else :title="titleChart" v-model="patientDrawer" width="80%" height="80%" top="40px" destroy-on-close>
         <ReportPatientPage :reportPatient="reportPatient" />
     </el-dialog>
-    <el-dialog :title="titleChart" v-model="patientMxDrawer" width="80%" height="80%" top="40px" draggable destroy-on-close>
+    <el-dialog :title="titleChart" v-model="patientMxDrawer" width="80%" height="80%" top="40px" destroy-on-close>
         <ReportPatientPage :reportPatient="reportPatient" />
     </el-dialog>
 </template>

+ 10 - 2
src/components/operate-monitoring/ReportPatientPage.vue

@@ -1,7 +1,10 @@
 <template>
     <page-layer>
         <template #header>
-            <el-button type="primary" icon="Download" @click="exportData" style="margin-left: 2px">导出</el-button>
+            <el-input v-model="zyh" style="width: 100px;" placeholder="请输入住院号"></el-input>
+            <el-input v-model="xm" style="width: 100px;" placeholder="请输入姓名"></el-input>
+            <el-button icon="Search" type="primary" @click="query" style="margin-left: 5px">查询</el-button>
+            <el-button type="primary" icon="Download" @click="exportData" style="margin-left: 5px">导出全部数据</el-button>
         </template>
         <template #main>
             <xc-table :data="returnData" localPaging :height="105">
@@ -37,6 +40,9 @@ const reportPatient = ref({})
 // 查询信息
 const paramPatient = ref({})
 
+const zyh = ref('')
+const xm = ref('')
+
 reportPatient.value = props.reportPatient.row
 paramPatient.value = props.reportPatient.params
 
@@ -52,7 +58,9 @@ const returnData = ref({
 
 const queryTerm = clone(paramPatient.value)
 const query = async () => {
-    selectReportPortalMenu(queryTerm)
+    queryTerm.zyh = zyh.value
+    queryTerm.xm = xm.value
+    await selectReportPortalMenu(queryTerm)
         .then((res) => {
             returnData.value.tableDisplays = res.tableDisplays
             returnData.value.data = res.dataList

+ 1 - 1
src/components/operate-monitoring/ReportSecondPage.vue

@@ -30,7 +30,7 @@
         fullscreen destroy-on-close>
         <ReportThirdPage :reportThird="reportThird" />
     </el-dialog>
-    <el-dialog v-else :title="titleChart" v-model="patientDrawer" width="80%" height="80%" top="40px" draggable destroy-on-close>
+    <el-dialog v-else :title="titleChart" v-model="patientDrawer" width="80%" height="80%" top="40px" destroy-on-close>
         <ReportPatientPage :reportPatient="reportPatient" />
     </el-dialog>
 </template>

+ 1 - 1
src/components/operate-monitoring/ReportThirdPage.vue

@@ -28,7 +28,7 @@
             <div style="width: 80%; height: 400px" id="thirdDst"></div>
         </template>
     </page-layer>
-    <el-dialog :title="titleChart" v-model="patientDrawer" width="80%" height="80%" top="40px" draggable destroy-on-close>
+    <el-dialog :title="titleChart" v-model="patientDrawer" width="80%" height="80%" top="40px" destroy-on-close>
         <ReportPatientPage :reportPatient="reportPatient" />
     </el-dialog>
 </template>

+ 10 - 0
src/router/modules/dashboard.js

@@ -959,6 +959,16 @@ const route = [
                 path: 'targetDict/targetDictConfig',
                 component: createNameComponent(() => import('@/views/target-management/target-dict/TargetDictConfig.vue')),
                 meta: {title: '指标字典维护'},
+            },
+            {
+                path: 'targetDict/targetDictInfo',
+                component: createNameComponent(() => import('@/views/target-management/target-dict/TargetDictInfo.vue')),
+                meta: {title: '指标详情'},
+            },
+            {
+                path: 'targetDict/targetReportConfig',
+                component: createNameComponent(() => import('@/views/target-management/target-dict/TargetReportConfig.vue')),
+                meta: {title: '指标报表维护'},
             }
         ],
     },

+ 137 - 29
src/views/target-management/target-comm/SqlEditPage.vue

@@ -8,57 +8,100 @@
                     @click="resetForm(sqlFormRef)">重置</el-button>
             </template>
             <template #main>
-                <el-form ref="sqlFormRef" :model="sqlForm" :rules="rules" label-width="120px" class="demo-ruleForm"
-                    :size="formSize" status-icon>
+                <el-form ref="targetFormRef" :model="sqlForm" :rules="rules" label-width="120px" class="demo-ruleForm"
+                    :size="formSize" status-icon :disabled="isTargetForm">
                     <el-row>
                         <el-col :span="12">
-                            <el-form-item label="指标名称" prop="name" :disabled="true">
+                            <el-form-item label="指标名称" prop="name">
                                 <el-input v-model="sqlForm.name" />
                             </el-form-item>
                         </el-col>
                         <el-col :span="4">
-                            <el-form-item label="指标编码" prop="id" :disabled="true">
+                            <el-form-item label="指标编码" prop="id">
                                 <el-input v-model="sqlForm.id" />
                             </el-form-item>
                         </el-col>
                         <el-col :span="4">
-                            <el-form-item label="父级编码" prop="pid" :disabled="true">
+                            <el-form-item label="父级编码" prop="pid">
                                 <el-input v-model="sqlForm.pid" />
                             </el-form-item>
                         </el-col>
                         <el-col :span="4">
-                            <el-form-item label="序号" prop="sort" :disabled="true">
+                            <el-form-item label="序号" prop="sort">
                                 <el-input v-model="sqlForm.sort" />
                             </el-form-item>
                         </el-col>
                     </el-row>
+                </el-form>
+                <el-form ref="sqlFormRef" :model="sqlForm" :rules="rules" label-width="120px" class="demo-ruleForm"
+                    :size="formSize" status-icon>
+                    <el-row>
+                        <el-col :span="6">
+                            <el-form-item label="开始时间" prop="startTime">
+                                <el-date-picker v-model="sqlForm.startTime" type="date" label="选择时间" placeholder="选择开始时间"
+                                    format="YYYY-MM-DD" value-format="YYYY-MM-DD" />
+                            </el-form-item>
+                        </el-col>
+                        <el-col :span="6">
+                            <el-form-item label="结束时间" prop="endTime">
+                                <el-date-picker v-model="sqlForm.endTime" type="date" label="选择时间" placeholder="选择结束时间"
+                                    format="YYYY-MM-DD" value-format="YYYY-MM-DD" />
+                            </el-form-item>
+                        </el-col>
+                        <el-col :span="6">
+                            <el-form-item label="分子指标ID" prop="childId">
+                                <el-input v-model="sqlForm.childId" minlength="1" maxlength="9" show-word-limit
+                                    placeholder="没有分子请填写 /">
+                                    <template #prepend>zb_</template>
+                                </el-input>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :span="6">
+                            <el-form-item label="分母指标ID" prop="momId">
+                                <el-input v-model="sqlForm.momId" minlength="1" maxlength="9" show-word-limit
+                                    placeholder="没有分母请填写 /">
+                                    <template #prepend>zb_</template>
+                                </el-input>
+                            </el-form-item>
+                        </el-col>
+                    </el-row>
+                    <el-row>
+                        <el-col :span="12">
+                            <el-form-item label="分子指标名称" prop="childName">
+                                <el-input v-model="sqlForm.childName" minlength="1" maxlength="512" show-word-limit
+                                    placeholder="没有分子请填写 /" />
+                            </el-form-item>
+                        </el-col>
+                        <el-col :span="12">
+                            <el-form-item label="分母指标名称" prop="momName">
+                                <el-input v-model="sqlForm.momName" minlength="1" maxlength="512" show-word-limit
+                                    placeholder="没有分母请填写 /" />
+                            </el-form-item>
+                        </el-col>
+                    </el-row>
                     <el-row>
                         <el-col :span="12">
-                            <el-form-item label="开始时间">
-                                <el-form-item prop="startTime">
-                                    <el-date-picker v-model="sqlForm.startTime" type="date" label="选择时间" placeholder="选择时间"
-                                        format="YYYYMMDD" value-format="YYYYMMDD" />
-                                </el-form-item>
+                            <el-form-item label="分子聚合函数" prop="childGather">
+                                <el-input v-model="sqlForm.childGather" minlength="1" maxlength="256" show-word-limit
+                                    placeholder="没有分子请填写 /" />
                             </el-form-item>
                         </el-col>
                         <el-col :span="12">
-                            <el-form-item label="结束时间">
-                                <el-form-item prop="endTime">
-                                    <el-date-picker v-model="sqlForm.endTime" type="date" label="选择时间" placeholder="选择时间"
-                                        format="YYYYMMDD" value-format="YYYYMMDD" />
-                                </el-form-item>
+                            <el-form-item label="分母聚合函数" prop="momGather">
+                                <el-input v-model="sqlForm.momGather" minlength="1" maxlength="256" show-word-limit
+                                    placeholder="没有分母请填写 /" />
                             </el-form-item>
                         </el-col>
                     </el-row>
                     <el-row>
                         <el-col :span="12">
                             <el-form-item label="公式-分子" prop="calcChild">
-                                <el-input v-model="sqlForm.calcChild" type="textarea" :rows="24" />
+                                <el-input v-model="sqlForm.calcChild" type="textarea" :rows="20" placeholder="没有分子请填写 /" />
                             </el-form-item>
                         </el-col>
                         <el-col :span="12">
                             <el-form-item label="公式-分母" prop="calcMom">
-                                <el-input v-model="sqlForm.calcMom" type="textarea" :rows="24" />
+                                <el-input v-model="sqlForm.calcMom" type="textarea" :rows="20" placeholder="没有分母请填写 /" />
                             </el-form-item>
                         </el-col>
                     </el-row>
@@ -92,13 +135,19 @@
     </el-row>
 </template>
 <script setup name="SqlEditPage" lang="ts">
-import { ref, watch, onMounted, nextTick } from 'vue'
+import { ref, onMounted, nextTick } from 'vue'
 import type { FormInstance, FormRules } from 'element-plus'
 import PageLayer from '../../../layout/PageLayer.vue'
 import { ElMessage } from 'element-plus'
-import { targetSqlExecute, targetSqlSave } from '../../../api/target-management/target-sql'
+import { seltYearAndNowLast } from '../../../data/shortcuts'
+import { formatDate } from '../../../utils/date'
+import { targetSqlExecute, targetSqlSave, selectTargetSql } from '../../../api/target-management/target-sql'
 
 const formSize = ref('default')
+const isTargetForm = ref(true)
+const start = formatDate(seltYearAndNowLast[0].value[0])
+const end = formatDate(seltYearAndNowLast[1].value[1])
+const targetFormRef = ref<FormInstance>()
 const sqlFormRef = ref<FormInstance>()
 let sqlForm = $ref({
     id: '', // 指标编码
@@ -109,6 +158,12 @@ let sqlForm = $ref({
     endTime: '', // 总分
     calcChild: '', // 计算分子sql
     calcMom: '', // 计算分母sql
+    childId: '', // 计算分子指标ID
+    momId: '', // 计算分母指标ID
+    childName: '', // 计算分子指标名称
+    momName: '', // 计算分母指标名称
+    childGather: '', // 计算分子聚合sql
+    momGather: '', // 计算分母聚合sql
     childResult: '', // 计算分子结果
     momResult: '', // 计算分母结果
     calcResult: '' // 计算结果
@@ -124,19 +179,45 @@ const props = defineProps({
 onMounted(() => {
     nextTick(() => {
         sqlForm = props.sqlEditData
+        sqlForm.startTime = start + ' 00:00:00'
+        sqlForm.endTime = end + ' 23:59:59'
+        // 如果存在指标报表分子分母id,则查询分子分母指标报表信息
+        if (sqlForm.childId || sqlForm.momId) {
+            selectTargetSql(sqlForm)
+                .then((res: any) => {
+                    let childRef = res.reportChild
+                    let momRef = res.reportMom
+                    if (childRef) {
+                        sqlForm.childId = childRef.reportId.replaceAll('zb_', '')
+                        sqlForm.childGather = childRef.gatherSql
+                        sqlForm.childName = childRef.reportName
+                        sqlForm.calcChild = childRef.baseSql
+                    }
+                    if (momRef) {
+                        sqlForm.momId = momRef.reportId.replaceAll('zb_', '')
+                        sqlForm.momGather = momRef.gatherSql
+                        sqlForm.momName = momRef.reportName
+                        sqlForm.calcMom = momRef.baseSql
+                    }
+                    if (childRef && !momRef) {
+                        sqlForm.momId = '/'
+                        sqlForm.momGather = '/'
+                        sqlForm.momName = '/'
+                        sqlForm.calcMom = '/'
+                    }
+                    if (!childRef && momRef) {
+                        sqlForm.childId = '/'
+                        sqlForm.childGather = '/'
+                        sqlForm.childName = '/'
+                        sqlForm.calcChild = '/'
+                    }
+                });
+        }
     })
 })
 
-watch(
-    () => sqlForm,
-    () => {
-
-    })
-
 const resetForm = (formEl: FormInstance | undefined) => {
     if (!formEl) return
-    sqlForm.startTime = ''
-    sqlForm.endTime = ''
     sqlForm.childResult = ''
     sqlForm.momResult = ''
     sqlForm.calcResult = ''
@@ -149,8 +230,29 @@ const rules = ref<FormRules>({
     endTime: [
         { required: true, message: '请选择指标查询结束时间', trigger: 'blur' },
     ],
+    childId: [
+        { required: true, message: '请填写分子指标ID', trigger: 'blur' },
+    ],
+    momId: [
+        { required: true, message: '请填写分母指标ID', trigger: 'blur' },
+    ],
+    childName: [
+        { required: true, message: '请填写分子指标名称', trigger: 'blur' },
+    ],
+    momName: [
+        { required: true, message: '请填写分母指标名称', trigger: 'blur' },
+    ],
+    childGather: [
+        { required: true, message: '请填写分子聚合函数', trigger: 'blur' },
+    ],
+    momGather: [
+        { required: true, message: '请填写分母聚合函数', trigger: 'blur' },
+    ],
     calcChild: [
-        { required: true, message: '请填写sql语句', trigger: 'blur' },
+        { required: true, message: '请填写分子sql语句', trigger: 'blur' },
+    ],
+    calcMom: [
+        { required: true, message: '请填写分母sql语句', trigger: 'blur' },
     ],
 })
 
@@ -159,6 +261,8 @@ const submitForm = async (formEl: FormInstance | undefined) => {
 
     await formEl.validate((valid: boolean, field: any) => {
         if (valid) {
+            sqlForm.childId = 'zb_' + sqlForm.childId.replaceAll('zb_', '')
+            sqlForm.momId = 'zb_' + sqlForm.momId.replaceAll('zb_', '')
             targetSqlSave(sqlForm)
                 .then((res: any) => {
                     let r = JSON.parse(JSON.stringify(res))
@@ -246,4 +350,8 @@ const sqlExecute = (formEl: FormInstance | undefined) => {
 .hd-cl {
     margin-bottom: 1px !important;
 }
+
+:deep(.el-drawer__header) {
+    margin-bottom: 12px !important;
+}
 </style>

+ 1 - 7
src/views/target-management/target-comm/targetTree.vue

@@ -109,13 +109,7 @@ const removeTarget = (node: any, data: any) => {
                     });
             });
     }).catch((action) => {
-        ElMessage({
-            type: "info",
-            message: "删除指标节点失败!",
-            duration: 2500,
-            showClose: true,
-        });
-        return
+
     })
 }
 </script>

+ 9 - 10
src/views/target-management/target-dict/TargetDictConfig.vue

@@ -115,7 +115,7 @@
                                     <el-form-item label="开始时间">
                                         <el-form-item prop="startTime">
                                             <el-date-picker v-model="sqlForm.startTime" type="date" label="选择时间"
-                                                placeholder="选择时间" format="YYYYMMDD" value-format="YYYYMMDD" />
+                                                placeholder="选择时间" format="YYYY-MM-DD" value-format="YYYY-MM-DD" />
                                         </el-form-item>
                                     </el-form-item>
                                 </el-col>
@@ -123,7 +123,7 @@
                                     <el-form-item label="结束时间">
                                         <el-form-item prop="endTime">
                                             <el-date-picker v-model="sqlForm.endTime" type="date" label="选择时间"
-                                                placeholder="选择时间" format="YYYYMMDD" value-format="YYYYMMDD" />
+                                                placeholder="选择时间" format="YYYY-MM-DD" value-format="YYYY-MM-DD" />
                                         </el-form-item>
                                     </el-form-item>
                                 </el-col>
@@ -175,12 +175,11 @@ import SqlEditPage from '../target-comm/SqlEditPage.vue'
 import { ElMessage } from 'element-plus'
 import type { FormInstance, FormRules } from 'element-plus'
 import { formatDate } from '../../../utils/date'
-import { clone } from '../../../utils/clone'
 import PageLayer from '../../../layout/PageLayer.vue'
 import { queryDept } from '../../../api/public-api'
-import { selectTargetDict, selectTargetDictTree, saveTargetDict } from '../../../api/target-management/target-dict'
+import { selectTargetDictById, selectTargetDictTree, saveTargetDict } from '../../../api/target-management/target-dict'
 import { employeeList } from "../../../api/zhu-yuan-yi-sheng/pat-info-query"
-import { targetSqlExecute } from '../../../api/target-management/target-sql'
+import { targetSqlExecuteById } from '../../../api/target-management/target-sql'
 
 const targetTreeData = ref({
     data: [{}],
@@ -474,12 +473,12 @@ const treeNodeClick = (data: any, node: any, obj: any) => {
 
         queryParam.id = node.data.id
         queryParam.pid = node.data.pid
-        selectTargetDict(queryParam)
+        selectTargetDictById(queryParam)
             .then((res: any) => {
                 if (res) {
                     nextTick(() => {
                         isShowForm.value = true
-                        ruleForm = clone(res[0])
+                        ruleForm = res
                         // 获取点击树的是否叶子节点数据
                         queryParam.isLeaf = ruleForm.isLeaf
                         ruleFormRef.value?.resetFields()
@@ -566,9 +565,9 @@ const sqlExecute = (formEl: FormInstance | undefined) => {
 
     sqlForm.id = ruleForm.id
     sqlForm.pid = ruleForm.pid
-    sqlForm.calcChild = ruleForm.calcChild
-    sqlForm.calcMom = ruleForm.calcMom
-    targetSqlExecute(sqlForm)
+    sqlForm.childId = ruleForm.childId
+    sqlForm.momId = ruleForm.momId
+    targetSqlExecuteById(sqlForm)
         .then((res: any) => {
             let r = JSON.parse(JSON.stringify(res))
             sqlForm.childResult = r.r1

+ 246 - 0
src/views/target-management/target-dict/TargetDictInfo.vue

@@ -0,0 +1,246 @@
+<template>
+    <el-row :gutter="5">
+        <el-col :span="8">
+            <TargetTree v-if="isShowTree" :targetTreeData="targetTreeData" @treeNodeClick="treeNodeClick" />
+        </el-col>
+        <el-col :span="16">
+            <PageLayer>
+                <template #header class="hd-cl">
+                    <el-date-picker v-model="queryParam.startTime" type="date" label="选择时间" placeholder="选择时间"
+                        format="YYYY-MM-DD" value-format="YYYY-MM-DD" />
+                    <el-date-picker v-model="queryParam.endTime" type="date" label="选择时间" placeholder="选择时间"
+                        format="YYYY-MM-DD" value-format="YYYY-MM-DD" />
+                    <el-select-v2 ref="deptInfoRef" v-model="queryParam.deptId" clearable remote filterable
+                        :remote-method="deptMethod" :options="deptWardList" />
+                    <el-input v-model="queryParam.calcChild" v-if="isShowSql"></el-input>
+                    <el-input v-model="queryParam.calcMom" v-if="isShowSql"></el-input>
+                    <el-button icon="Search" type="primary" @click="selectTargetDictInfo"
+                        style="margin-left: 10px">查询</el-button>
+                    <el-button icon="Download" type="primary">导出分子</el-button>
+                    <el-button icon="Download" type="primary">导出分母</el-button>
+                </template>
+                <template #main>
+                    <el-form ref="ruleFormRef" label-width="120px" :model="targetForm" class="demo-ruleForm"
+                        :size="formSize" :disabled="isShowForm">
+                        <el-form-item label="指标定义" prop="definition">
+                            <el-input v-model="targetForm.definition" type="textarea" />
+                        </el-form-item>
+                        <el-form-item label="评审方法" prop="method">
+                            <el-input v-model="targetForm.method" type="textarea" :rows="4" />
+                        </el-form-item>
+                        <el-form-item label="计分细则" prop="scoreRule">
+                            <el-input v-model="targetForm.scoreRule" type="textarea" />
+                        </el-form-item>
+                        <el-row>
+                            <el-col :span="8">
+                                <el-form-item label="公式-分子结果" prop="childResult">
+                                    <el-input v-model="targetForm.childResult" type="textarea" />
+                                </el-form-item>
+                            </el-col>
+                            <el-col :span="8">
+                                <el-form-item label="公式-分母结果" prop="momResult">
+                                    <el-input v-model="targetForm.momResult" type="textarea" />
+                                </el-form-item>
+                            </el-col>
+                            <el-col :span="8">
+                                <el-form-item label="分子/分母-结果" prop="calcResult">
+                                    <el-input v-model="targetForm.calcResult" type="textarea" />
+                                </el-form-item>
+                            </el-col>
+                        </el-row>
+                    </el-form>
+                    <el-divider />
+                    <el-tabs type="border-card" v-model="queryParam.tabFlag" @tab-click="handleClick">
+                        <el-tab-pane label="分子" name="child">
+
+                        </el-tab-pane>
+                        <el-tab-pane label="分母" name="mom">
+
+                        </el-tab-pane>
+                    </el-tabs>
+                </template>
+            </PageLayer>
+        </el-col>
+    </el-row>
+</template>
+<script setup name="TargetDictInfo" lang="ts">
+import { ref, reactive, onMounted, nextTick } from 'vue'
+import TargetTree from '../target-comm/targetTree.vue'
+import PageLayer from '../../../layout/PageLayer.vue'
+import { ElMessage } from 'element-plus'
+import { formatDate } from '../../../utils/date'
+import { seltYearAndNowLast } from '../../../data/shortcuts'
+import type { FormInstance } from 'element-plus'
+import { selectTargetDict, selectTargetDictTree } from '../../../api/target-management/target-dict'
+import { targetSqlExecuteById, selectTargetSql } from '../../../api/target-management/target-sql'
+import { queryDept } from '../../../api/public-api'
+
+const targetTreeData = ref({
+    data: [{}],
+    height: 900,
+})
+
+const isShowTree = ref(false)
+const isShowForm = ref(true)
+const isShowSql = ref(false)
+const start = formatDate(seltYearAndNowLast[0].value[0])
+const end = formatDate(seltYearAndNowLast[1].value[1])
+const deptWardList = ref([])
+const formSize = ref('default')
+const ruleFormRef = ref<FormInstance>()
+
+const deptMethod = (val: string) => {
+    queryDept(val).then((res: any) => {
+        deptWardList.value = res
+    })
+}
+
+const queryParam = reactive({
+    id: '', // 指标编码
+    name: '', // 指标名称
+    pid: '', // 父级编码
+    sort: '', // 指标序号
+    type: '', // 对接类型
+    state: '', // 状态
+    startTime: '', // 开始时间
+    endTime: '', // 结束时间
+    deptId: '', // 责任科室id
+    calcChild: '', // 计算分子sql
+    calcMom: '', // 计算分母sql
+    childId: '', // 分子报表id
+    momId: '', // 分母报表id
+    isLeaf: '', //是否叶子节点(0:否, 1:是)
+    tabFlag: 'child', //分子分母(child:分子 默认, mom:分母)
+})
+
+const targetForm = ref({
+    id: '', // 指标编码
+    name: '', // 指标名称
+    pid: '', // 父级编码
+    sort: '', // 指标序号
+    score: '', // 总分
+    ratio: '', // 所占比率
+    type: '0', // 对接类型
+    state: 'Y', // 状态
+    openTime: '', // 启用时间
+    dept: '', // 责任科室
+    deptCode: '', // 责任科室id
+    op: '', // 责任人
+    opId: '', // 责任人id
+    definition: '', // 指标定义
+    method: '', // 评审方法
+    scoreRule: '', // 计分细则
+    source: '', // 数据来源
+    isLeaf: '1', // 是否叶子节点(0:否, 1:是)
+    calcChild: '', // 计算-分子
+    calcMom: '', // 计算-分母
+    childId: '', // 分子报表id
+    momId: '', // 分母报表id
+    childResult: '', // 计算分子结果
+    momResult: '', // 计算分母结果
+    calcResult: '' // 计算结果
+})
+
+onMounted(() => {
+    nextTick(() => {
+        queryParam.startTime = start + ' 00:00:00'
+        queryParam.endTime = end + ' 23:59:59'
+        qeryTargetDictTree()
+        deptMethod('')
+    })
+})
+
+// 查询指标字典树
+const qeryTargetDictTree = () => {
+    isShowTree.value == true ? false : true
+    queryParam.id = '';
+    queryParam.pid = '';
+    selectTargetDictTree(queryParam)
+        .then((res: any) => {
+            targetTreeData.value.data = res
+            isShowTree.value = true
+        });
+}
+
+// ------  接收树页面传来的数据 -------
+const treeNodeClick = async (data: any, node: any, obj: any) => {
+    if (node.data) {
+        // 查询指标字典
+        queryParam.id = node.data.id
+        queryParam.pid = node.data.pid
+        let selectTargetDictRes = await selectTargetDict(queryParam)
+        targetForm.value = selectTargetDictRes[0]
+
+        // 查询指标的分子、分母sql
+        queryParam.childId = targetForm.value.childId
+        queryParam.momId = node.data.momId
+        let selectTargetSqlRes = await selectTargetSql(queryParam)
+        let { reportChild } = selectTargetSqlRes
+        let { reportMom } = selectTargetSqlRes
+        if(reportChild){
+            targetForm.value.calcChild = reportChild.baseSql
+            queryParam.calcChild = reportChild.baseSql
+        }
+        if(reportMom){
+            targetForm.value.calcMom = reportMom.baseSql
+            queryParam.calcMom = reportMom.baseSql
+        }
+
+    }
+}
+
+const selectTargetDictInfo = async () => {
+    if (!queryParam.startTime) {
+        ElMessage({
+            message: '请选择时间!',
+            type: 'warning',
+            duration: 2500,
+            showClose: true,
+        })
+        return
+    }
+
+    // 查询指标结果
+    let targetSqlExecuteRes = await targetSqlExecuteById(queryParam)
+    let r = JSON.parse(JSON.stringify(targetSqlExecuteRes))
+    targetForm.value.childResult = r.r1
+    targetForm.value.momResult = r.r2
+    targetForm.value.calcResult = r.r3
+
+    // 查询指标分子,分母明细结果(默认查询分子)
+    // let selectTargetSqlDetialRes = await selectTargetSqlDetail(queryParam)
+
+
+
+}
+
+// 查询分子,分母数据
+const handleClick = (tab, event) => {
+    if (!queryParam.startTime) {
+        ElMessage({
+            message: '请选择时间!',
+            type: 'warning',
+            duration: 2500,
+            showClose: true,
+        })
+        return
+    }
+
+    // 查询哪个tab页面
+    queryParam.tabFlag = tab.props.name
+
+    if (queryParam.tabFlag === 'first') {
+
+    }
+}
+
+</script>
+<style lang="scss" scoped deep>
+.hd-cl {
+    margin-bottom: 1px !important;
+}
+
+:deep(.el-textarea.is-disabled .el-textarea__inner) {
+    color: #1146f3;
+}
+</style>