|
@@ -1,171 +1,171 @@
|
|
|
<template>
|
|
|
- <el-row :gutter="5">
|
|
|
- <el-col :span="6">
|
|
|
- <ReportTree v-if="isShowTree" :reportTreeData="reportTreeData" @treeNodeClick="treeNodeClick" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="18">
|
|
|
- <PageLayer>
|
|
|
- <template #header class="hd-cl">
|
|
|
- <el-button type="primary" icon="Plus" @click="addForm(ruleFormRef)"
|
|
|
- style="margin-left: 10px">新增</el-button>
|
|
|
- <el-button type="primary" icon="Edit" @click="editForm(ruleFormRef)"
|
|
|
- style="margin-left: 10px">编辑</el-button>
|
|
|
- <el-button type="primary" icon="Check" @click="submitForm(ruleFormRef)"
|
|
|
- style="margin-left: 10px">保存</el-button>
|
|
|
- <el-button type="primary" icon="Refresh" @click="resetForm(ruleFormRef)"
|
|
|
- style="margin-left: 10px">重置</el-button>
|
|
|
- <el-button type="primary" style="margin-left: 10px" @click="reportLevel()"> 报表分组类型配置 </el-button>
|
|
|
- <el-button type="primary" style="margin-left: 10px" @click="reportDetails()"> 报表页面详情配置 </el-button>
|
|
|
- </template>
|
|
|
- <template #main>
|
|
|
- <el-form ref="ruleFormRef" :model="reportForm" :rules="rules" label-width="120px"
|
|
|
- class="demo-ruleForm" :size="formSize" status-icon :disabled="isDisabledForm">
|
|
|
- <el-row>
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item label="报表名称" prop="reportName">
|
|
|
- <el-input v-model="reportForm.reportName" minlength="1" maxlength="256"
|
|
|
- show-word-limit />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="6">
|
|
|
- <el-form-item label="报表编码" prop="reportId">
|
|
|
- <el-input v-model="reportForm.reportId" minlength="1" maxlength="12"
|
|
|
- show-word-limit />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="6">
|
|
|
- <el-form-item label="报表类型" prop="reportType">
|
|
|
- <el-select v-model="reportForm.reportType" placeholder="请选择报表类型">
|
|
|
- <el-option v-for="item in reportTypeList" :key="item.reportType"
|
|
|
- :label="item.reportLabel" :value="item.reportType">
|
|
|
- <span style="float: left">{{ item.reportType }}</span>
|
|
|
- <span
|
|
|
- style="float: right; color: var(--el-text-color-secondary); font-size: 13px; ">
|
|
|
- {{ item.reportLabel }}
|
|
|
- </span>
|
|
|
- </el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- <el-row>
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item label="聚合sql" prop="gatherSql">
|
|
|
- <el-input v-model="reportForm.gatherSql" minlength="1" maxlength="256"
|
|
|
- show-word-limit />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="6">
|
|
|
- <el-form-item label="单位" prop="unit">
|
|
|
- <el-input v-model="reportForm.unit" minlength="0" maxlength="8" show-word-limit />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="6">
|
|
|
- <el-form-item label="报表分组类型" prop="level">
|
|
|
- <el-select v-model="levelId" filterable :filter-method="levelFilterMethod"
|
|
|
- value-key="id" placeholder="请选择报表分组类型">
|
|
|
- <el-option v-for="item in levelList" :key="item.reportId"
|
|
|
- :label="item.levelName" :value="item.levelId">
|
|
|
- <span style="float: left">{{ item.levelId }}</span>
|
|
|
- <span
|
|
|
- style="float: right; color: var(--el-text-color-secondary); font-size: 13px; ">
|
|
|
- {{ item.levelName }}
|
|
|
- </span>
|
|
|
- </el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- <el-form-item label="基础sql" prop="baseSql">
|
|
|
- <el-input v-model="reportForm.baseSql" type="textarea" :rows="8" />
|
|
|
- </el-form-item>
|
|
|
- <el-row>
|
|
|
- <el-col :span="6">
|
|
|
- <el-form-item label="菜单id" prop="menuId">
|
|
|
- <el-input v-model.number="reportForm.menuId" minlength="0" maxlength="12"
|
|
|
- show-word-limit />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="6">
|
|
|
- <el-form-item label="面板排序" prop="sort">
|
|
|
- <el-input v-model.number="reportForm.sort" minlength="0" maxlength="12"
|
|
|
- show-word-limit />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item label="指标排序" prop="reportSort">
|
|
|
- <el-input v-model="reportForm.reportSort" minlength="0" maxlength="256"
|
|
|
- show-word-limit />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- <el-row>
|
|
|
- <el-col :span="6">
|
|
|
- <el-form-item label="是否财务报表" prop="isCw">
|
|
|
- <el-switch v-model="reportForm.isCw" active-value="Y" inactive-value="N"
|
|
|
- active-color="#13ce66" inactive-color="#ff4949" />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="6">
|
|
|
- <el-form-item label="是否医技报表" prop="isYj">
|
|
|
- <el-switch v-model="reportForm.isYj" active-value="Y" inactive-value="N"
|
|
|
- active-color="#13ce66" inactive-color="#ff4949" />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="6">
|
|
|
- <el-form-item label="是否有效" prop="flag">
|
|
|
- <el-switch v-model="reportForm.flag" active-value="Y" inactive-value="N"
|
|
|
- active-color="#13ce66" inactive-color="#ff4949" />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- </el-form>
|
|
|
- <el-divider />
|
|
|
- <el-form ref="ruleFormRef" label-width="120px" :model="sqlForm" class="demo-ruleForm"
|
|
|
- :size="formSize">
|
|
|
- <el-row>
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item label="开始时间">
|
|
|
- <el-form-item prop="startTime">
|
|
|
- <el-date-picker v-model="sqlForm.startTime" type="date" aria-label="选择时间"
|
|
|
- placeholder="选择时间" format="YYYY-MM-DD" value-format="YYYY-MM-DD" />
|
|
|
- </el-form-item>
|
|
|
- </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" aria-label="选择时间"
|
|
|
- placeholder="选择时间" format="YYYY-MM-DD" value-format="YYYY-MM-DD" />
|
|
|
- </el-form-item>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- <el-row>
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item label="计算结果测试" prop="childResult">
|
|
|
- <el-input v-model="sqlForm.calcResult" type="textarea" />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item>
|
|
|
- <el-button type="primary" @click="sqlExecute(ruleFormRef)"> 指标运行结果 </el-button>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- </el-form>
|
|
|
- <el-dialog v-model="showReportLevel" :close-on-click-modal="false" :close-on-press-escape="false"
|
|
|
- :title="reportLevelTitle" width="80%" height="50%">
|
|
|
- <ReportLevel :reportLevelDetail="reportLevelDetail" />
|
|
|
- </el-dialog>
|
|
|
- <el-dialog v-model="showReportDetails" :close-on-click-modal="false" :close-on-press-escape="false"
|
|
|
- :title="reportDetailsTitle" width="80%" height="70%">
|
|
|
- <ReportDetails :reportDetailsData="reportDetailsData" />
|
|
|
- </el-dialog>
|
|
|
- </template>
|
|
|
- </PageLayer>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
+ <div class="layout_container">
|
|
|
+ <div class="layout_main layout_container layout-horizontal">
|
|
|
+ <aside style="width: 600px;">
|
|
|
+ <ReportTree v-if="isShowTree" :reportTreeData="reportTreeData" @treeNodeClick="treeNodeClick" />
|
|
|
+ </aside>
|
|
|
+ <div class="layout_container layout_overflow_auto">
|
|
|
+ <header>
|
|
|
+ <el-button type="primary" icon="Plus" @click="addForm(ruleFormRef)"
|
|
|
+ style="margin-left: 10px">新增</el-button>
|
|
|
+ <el-button type="primary" icon="Edit" @click="editForm(ruleFormRef)"
|
|
|
+ style="margin-left: 10px">编辑</el-button>
|
|
|
+ <el-button type="primary" icon="Check" @click="submitForm(ruleFormRef)"
|
|
|
+ style="margin-left: 10px">保存</el-button>
|
|
|
+ <el-button type="primary" icon="Refresh" @click="resetForm(ruleFormRef)"
|
|
|
+ style="margin-left: 10px">重置</el-button>
|
|
|
+ <el-button type="primary" style="margin-left: 10px" @click="reportLevel()"> 报表分组类型配置 </el-button>
|
|
|
+ <el-button type="primary" style="margin-left: 10px" @click="reportDetails()"> 报表页面详情配置 </el-button>
|
|
|
+ </header>
|
|
|
+ <div class="layout_main layout_card">
|
|
|
+ <el-form ref="ruleFormRef" :model="reportForm" :rules="rules" label-width="120px"
|
|
|
+ class="demo-ruleForm" :size="formSize" status-icon :disabled="isDisabledForm">
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="报表名称" prop="reportName">
|
|
|
+ <el-input v-model="reportForm.reportName" minlength="1" maxlength="256"
|
|
|
+ show-word-limit />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="报表编码" prop="reportId">
|
|
|
+ <el-input v-model="reportForm.reportId" minlength="1" maxlength="12"
|
|
|
+ show-word-limit />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="报表类型" prop="reportType">
|
|
|
+ <el-select v-model="reportForm.reportType" placeholder="请选择报表类型">
|
|
|
+ <el-option v-for="item in reportTypeList" :key="item.reportType"
|
|
|
+ :label="item.reportLabel" :value="item.reportType">
|
|
|
+ <span style="float: left">{{ item.reportType }}</span>
|
|
|
+ <span
|
|
|
+ style="float: right; color: var(--el-text-color-secondary); font-size: 13px; ">
|
|
|
+ {{ item.reportLabel }}
|
|
|
+ </span>
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="聚合sql" prop="gatherSql">
|
|
|
+ <el-input v-model="reportForm.gatherSql" minlength="1" maxlength="256"
|
|
|
+ show-word-limit />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="单位" prop="unit">
|
|
|
+ <el-input v-model="reportForm.unit" minlength="0" maxlength="8" show-word-limit />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="报表分组类型" prop="level">
|
|
|
+ <el-select v-model="levelId" filterable :filter-method="levelFilterMethod"
|
|
|
+ value-key="id" placeholder="请选择报表分组类型">
|
|
|
+ <el-option v-for="item in levelList" :key="item.reportId"
|
|
|
+ :label="item.levelName" :value="item.levelId">
|
|
|
+ <span style="float: left">{{ item.levelId }}</span>
|
|
|
+ <span
|
|
|
+ style="float: right; color: var(--el-text-color-secondary); font-size: 13px; ">
|
|
|
+ {{ item.levelName }}
|
|
|
+ </span>
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-form-item label="基础sql" prop="baseSql">
|
|
|
+ <el-input v-model="reportForm.baseSql" type="textarea" :rows="8" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="菜单id" prop="menuId">
|
|
|
+ <el-input v-model.number="reportForm.menuId" minlength="0" maxlength="12"
|
|
|
+ show-word-limit />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="面板排序" prop="sort">
|
|
|
+ <el-input v-model.number="reportForm.sort" minlength="0" maxlength="12"
|
|
|
+ show-word-limit />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="指标排序" prop="reportSort">
|
|
|
+ <el-input v-model="reportForm.reportSort" minlength="0" maxlength="256"
|
|
|
+ show-word-limit />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="是否财务报表" prop="isCw">
|
|
|
+ <el-switch v-model="reportForm.isCw" active-value="Y" inactive-value="N"
|
|
|
+ active-color="#13ce66" inactive-color="#ff4949" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="是否医技报表" prop="isYj">
|
|
|
+ <el-switch v-model="reportForm.isYj" active-value="Y" inactive-value="N"
|
|
|
+ active-color="#13ce66" inactive-color="#ff4949" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="是否有效" prop="flag">
|
|
|
+ <el-switch v-model="reportForm.flag" active-value="Y" inactive-value="N"
|
|
|
+ active-color="#13ce66" inactive-color="#ff4949" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </el-form>
|
|
|
+ <el-divider />
|
|
|
+ <el-form ref="ruleFormRef" label-width="120px" :model="sqlForm" class="demo-ruleForm"
|
|
|
+ :size="formSize">
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="开始时间">
|
|
|
+ <el-form-item prop="startTime">
|
|
|
+ <el-date-picker v-model="sqlForm.startTime" type="date" aria-label="选择时间"
|
|
|
+ placeholder="选择时间" format="YYYY-MM-DD" value-format="YYYY-MM-DD" />
|
|
|
+ </el-form-item>
|
|
|
+ </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" aria-label="选择时间"
|
|
|
+ placeholder="选择时间" format="YYYY-MM-DD" value-format="YYYY-MM-DD" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="计算结果测试" prop="childResult">
|
|
|
+ <el-input v-model="sqlForm.calcResult" type="textarea" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item>
|
|
|
+ <el-button type="primary" @click="sqlExecute(ruleFormRef)"> 指标运行结果 </el-button>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </el-form>
|
|
|
+ <el-dialog v-model="showReportLevel" :close-on-click-modal="false" :close-on-press-escape="false"
|
|
|
+ :title="reportLevelTitle" width="80%" height="50%">
|
|
|
+ <ReportLevel :reportLevelDetail="reportLevelDetail" />
|
|
|
+ </el-dialog>
|
|
|
+ <el-dialog v-model="showReportDetails" :close-on-click-modal="false" :close-on-press-escape="false"
|
|
|
+ :title="reportDetailsTitle" width="80%" height="70%">
|
|
|
+ <ReportDetails :reportDetailsData="reportDetailsData" />
|
|
|
+ </el-dialog>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</template>
|
|
|
<script setup name="TargetDictInfo" lang="ts">
|
|
|
import { ref, reactive, onMounted, nextTick } from 'vue'
|