|
@@ -1,65 +1,61 @@
|
|
|
<template>
|
|
|
<el-row :gutter="5">
|
|
|
<el-col :span="8">
|
|
|
- <TargetTree v-if="isShowTree" :targetTreeData="targetTreeData" @treeNodeClick="treeNodeClick"/>
|
|
|
+ <TargetTree v-if="isShowTree" :targetTreeData="targetTreeData" @treeNodeClick="treeNodeClick" />
|
|
|
</el-col>
|
|
|
<el-col :span="16">
|
|
|
<PageLayer>
|
|
|
<template #header class="hd-cl">
|
|
|
- <el-button type="primary" icon="Plus" @click="addForm(ruleFormRef)"
|
|
|
- style="margin-left: 10px">新增
|
|
|
+ <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 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 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 type="primary" icon="Refresh" @click="resetForm(ruleFormRef)" style="margin-left: 10px">重置
|
|
|
</el-button>
|
|
|
</template>
|
|
|
<template #main>
|
|
|
- <el-form ref="ruleFormRef" :model="ruleForm" :rules="rules" label-width="120px" class="demo-ruleForm"
|
|
|
- :size="formSize" status-icon :disabled="isShowForm">
|
|
|
+ <el-form ref="ruleFormRef" :model="ruleForm" :rules="rulesForm" label-width="120px" class="demo-ruleForm"
|
|
|
+ :size="formSize" status-icon :disabled="isShowForm">
|
|
|
<el-row>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="指标名称" prop="name">
|
|
|
- <el-input v-model="ruleForm.name" minlength="1" maxlength="256" show-word-limit/>
|
|
|
+ <el-input v-model="ruleForm.name" minlength="1" maxlength="256" show-word-limit />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="6">
|
|
|
<el-form-item label="指标编码" prop="id">
|
|
|
- <el-input v-model="ruleForm.id" minlength="1" maxlength="12" show-word-limit/>
|
|
|
+ <el-input v-model="ruleForm.id" minlength="1" maxlength="12" show-word-limit />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="6">
|
|
|
<el-form-item label="父级编码" prop="pid">
|
|
|
- <el-input v-model="ruleForm.pid" minlength="1" maxlength="12" show-word-limit/>
|
|
|
+ <el-input v-model="ruleForm.pid" minlength="1" maxlength="12" show-word-limit />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<el-row>
|
|
|
<el-col :span="6">
|
|
|
<el-form-item label="指标序号" prop="sort">
|
|
|
- <el-input v-model="ruleForm.sort" maxlength="12" show-word-limit/>
|
|
|
+ <el-input v-model="ruleForm.sort" maxlength="12" show-word-limit />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="6">
|
|
|
<el-form-item label="总分" prop="score">
|
|
|
- <el-input v-model="ruleForm.score" placeholder="请输入正整数或两位小数"/>
|
|
|
+ <el-input v-model="ruleForm.score" placeholder="请输入正整数或两位小数" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="6">
|
|
|
<el-form-item label="所占比率" prop="ratio" :disabled="true">
|
|
|
- <el-input v-model="ruleForm.ratio" minlength="0" maxlength="48" show-word-limit/>
|
|
|
+ <el-input v-model="ruleForm.ratio" minlength="0" maxlength="48" show-word-limit />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="6">
|
|
|
<el-form-item label="对接类型">
|
|
|
<el-select v-model="ruleForm.type" placeholder="请选择类型">
|
|
|
- <el-option label="V1" value="0"/>
|
|
|
- <el-option label="V2" value="1"/>
|
|
|
+ <el-option label="V1" value="0" />
|
|
|
+ <el-option label="V2" value="1" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
@@ -68,66 +64,64 @@
|
|
|
<el-col :span="6">
|
|
|
<el-form-item label="状态" prop="state">
|
|
|
<el-select v-model="ruleForm.state" placeholder="请选择状态">
|
|
|
- <el-option label="开启" value="Y"/>
|
|
|
- <el-option label="关闭" value="N"/>
|
|
|
+ <el-option label="开启" value="Y" />
|
|
|
+ <el-option label="关闭" value="N" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="6">
|
|
|
<el-form-item label="启用时间">
|
|
|
<el-form-item prop="openTime">
|
|
|
- <el-date-picker v-model="ruleForm.openTime" type="date" label="选择时间"
|
|
|
- placeholder="选择时间" style="width: 100%"/>
|
|
|
+ <el-date-picker v-model="ruleForm.openTime" type="date" label="选择时间" placeholder="选择时间"
|
|
|
+ style="width: 100%" />
|
|
|
</el-form-item>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="6">
|
|
|
<el-form-item label="责任科室" prop="deptCode">
|
|
|
<el-select-v2 ref="deptInfoRef" v-model="ruleForm.deptCode" clearable remote filterable
|
|
|
- :remote-method="deptMethod" :options="deptWardList"/>
|
|
|
+ :remote-method="deptMethod" :options="deptWardList" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="6">
|
|
|
<el-form-item label="责任人" prop="opId">
|
|
|
<el-select-v2 ref="opInfoRef" v-model="ruleForm.opId" clearable remote filterable
|
|
|
- :remote-method="empMethod" :options="empList"/>
|
|
|
+ :remote-method="empMethod" :options="empList" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<el-form-item label="是否叶子节点" prop="isLeaf">
|
|
|
<el-switch v-model="ruleForm.isLeaf" active-value="1" inactive-value="0" active-color="#13ce66"
|
|
|
- inactive-color="#ff4949" @change='changeNode(ruleFormRef)'/>
|
|
|
+ inactive-color="#ff4949" @change='changeNode(ruleFormRef)' />
|
|
|
</el-form-item>
|
|
|
<el-form-item label="指标定义" prop="definition">
|
|
|
- <el-input v-model="ruleForm.definition" type="textarea"/>
|
|
|
+ <el-input v-model="ruleForm.definition" type="textarea" />
|
|
|
</el-form-item>
|
|
|
<el-form-item label="评审方法" prop="method">
|
|
|
- <el-input v-model="ruleForm.method" type="textarea" :rows="4"/>
|
|
|
+ <el-input v-model="ruleForm.method" type="textarea" :rows="4" />
|
|
|
</el-form-item>
|
|
|
<el-form-item label="计分细则" prop="scoreRule">
|
|
|
- <el-input v-model="ruleForm.scoreRule" type="textarea"/>
|
|
|
+ <el-input v-model="ruleForm.scoreRule" type="textarea" />
|
|
|
</el-form-item>
|
|
|
<el-form-item label="数据来源条件" prop="source">
|
|
|
- <el-input v-model="ruleForm.source" type="textarea"
|
|
|
- placeholder="请描述指标数据来源条件,比如:诊断包含xxx, 诊断编码是xxx等等"/>
|
|
|
+ <el-input v-model="ruleForm.source" type="textarea" placeholder="请描述指标数据来源条件,比如:诊断包含xxx, 诊断编码是xxx等等" />
|
|
|
</el-form-item>
|
|
|
- <el-divider/>
|
|
|
- <el-form ref="upFormRef" label-width="180px" :model="sqlForm" class="demo-ruleForm"
|
|
|
- :size="formSize">
|
|
|
+ <el-divider />
|
|
|
+ <el-form ref="upFormRef" label-width="180px" :model="sqlForm" class="demo-ruleForm" :size="formSize">
|
|
|
<el-row>
|
|
|
<el-col :span="8">
|
|
|
<el-form-item label="开始年份">
|
|
|
<el-form-item prop="startTime">
|
|
|
- <el-date-picker v-model="sqlForm.startTime" type="year" label="选择年份"
|
|
|
- placeholder="选择年份" format="YYYY" value-format="YYYY" :disabled="false"/>
|
|
|
+ <el-date-picker v-model="sqlForm.startTime" type="year" label="选择年份" placeholder="选择年份"
|
|
|
+ format="YYYY" value-format="YYYY" :disabled="false" />
|
|
|
</el-form-item>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
|
<el-form-item label="结束年份">
|
|
|
<el-form-item prop="endTime">
|
|
|
- <el-date-picker v-model="sqlForm.endTime" type="year" label="选择年份"
|
|
|
- placeholder="选择年份" format="YYYY" value-format="YYYY" :disabled="false"/>
|
|
|
+ <el-date-picker v-model="sqlForm.endTime" type="year" label="选择年份" placeholder="选择年份" format="YYYY"
|
|
|
+ value-format="YYYY" :disabled="false" />
|
|
|
</el-form-item>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
@@ -161,70 +155,66 @@
|
|
|
</el-row>
|
|
|
</el-form>
|
|
|
<el-form ref="upFormRef" label-width="180px" :model="sqlForm" class="demo-ruleForm" :size="formSize"
|
|
|
- :disabled="isShowTargetResult" v-show="isShowTargetResult">
|
|
|
+ :disabled="isShowTargetResult" v-show="isShowTargetResult">
|
|
|
<el-row v-for="item in resultList">
|
|
|
<el-col :span="8">
|
|
|
<el-form-item :label="item.childLabel" :prop="item.childLabel + item.index">
|
|
|
- <el-input v-model="item.childResult"/>
|
|
|
+ <el-input v-model="item.childResult" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
|
<el-form-item :label="item.momLabel" :prop="item.momLabel + item.index">
|
|
|
- <el-input v-model="item.momResult"/>
|
|
|
+ <el-input v-model="item.momResult" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
|
<el-form-item :label="item.calcLabel" :prop="item.calcLabel + item.index">
|
|
|
- <el-input v-model="item.calcResult"/>
|
|
|
+ <el-input v-model="item.calcResult" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
</el-form>
|
|
|
<el-form ref="upFormRef" label-width="120px" :model="sqlForm" class="demo-ruleForm" :size="formSize"
|
|
|
- v-show="isShowHandWrite">
|
|
|
+ v-show="isShowHandWrite">
|
|
|
<el-row v-for="e in 4">
|
|
|
<el-col :span="6">
|
|
|
<el-form-item :label="'年份' + e" :prop="'year' + e" :rules="[
|
|
|
- { type: 'number', message: '年份必须是数字' },
|
|
|
- ]">
|
|
|
- <el-input v-model.number="sqlForm['year' + e]" minlength="4" maxlength="4"
|
|
|
- show-word-limit/>
|
|
|
+ { type: 'number', message: '年份必须是数字' },
|
|
|
+ ]">
|
|
|
+ <el-input v-model.number="sqlForm['year' + e]" minlength="4" maxlength="4" show-word-limit />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="6">
|
|
|
<el-form-item :label="'分子结果' + e" :prop="'childResult' + e">
|
|
|
- <el-input v-model="sqlForm['childResult' + e]" minlength="1" maxlength="12"
|
|
|
- show-word-limit/>
|
|
|
+ <el-input v-model="sqlForm['childResult' + e]" minlength="1" maxlength="12" show-word-limit />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="6">
|
|
|
<el-form-item :label="'分母结果' + e" :prop="'momResult' + e">
|
|
|
- <el-input v-model="sqlForm['momResult' + e]" minlength="1" maxlength="12"
|
|
|
- show-word-limit/>
|
|
|
+ <el-input v-model="sqlForm['momResult' + e]" minlength="1" maxlength="12" show-word-limit />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="6">
|
|
|
<el-form-item :label="'分子/分母-结果' + e" :prop="'calcResult' + e">
|
|
|
- <el-input v-model="sqlForm['calcResult' + e]" minlength="1" maxlength="12"
|
|
|
- show-word-limit/>
|
|
|
+ <el-input v-model="sqlForm['calcResult' + e]" minlength="1" maxlength="12" show-word-limit />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
</el-form>
|
|
|
<el-row v-show="isShowQtResult">
|
|
|
- <el-table :data="QtResultData" stripe border highlight-current-row row-key="childKey"
|
|
|
- height="200" style="width: 100%">
|
|
|
- <el-table-column prop="year" label="年份" header-align="center"/>
|
|
|
+ <el-table :data="QtResultData" stripe border highlight-current-row row-key="childKey" height="200"
|
|
|
+ style="width: 100%">
|
|
|
+ <el-table-column prop="year" label="年份" header-align="center" />
|
|
|
<el-table-column prop="dataType" label="数据方式" header-align="center">
|
|
|
<template #default="scope">
|
|
|
{{ scope.row.dataType == '1' ? 'sql统计' : '手动输入' }}
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="childResult" label="分子结果" header-align="center"/>
|
|
|
- <el-table-column prop="momResult" label="分母结果" header-align="center"/>
|
|
|
- <el-table-column prop="calcResult" label="计算结果" header-align="center"/>
|
|
|
- <el-table-column prop="op" label="统计人员" header-align="center"/>
|
|
|
- <el-table-column prop="opTime" label="统计时间" header-align="center" width="200"/>
|
|
|
+ <el-table-column prop="childResult" label="分子结果" header-align="center" />
|
|
|
+ <el-table-column prop="momResult" label="分母结果" header-align="center" />
|
|
|
+ <el-table-column prop="calcResult" label="计算结果" header-align="center" />
|
|
|
+ <el-table-column prop="op" label="统计人员" header-align="center" />
|
|
|
+ <el-table-column prop="opTime" label="统计时间" header-align="center" width="200" />
|
|
|
</el-table>
|
|
|
</el-row>
|
|
|
</el-form>
|
|
@@ -234,21 +224,21 @@
|
|
|
</el-row>
|
|
|
|
|
|
<el-drawer :title="'Sql编辑'" v-model="isSqlEdit" size="80%" destroy-on-close>
|
|
|
- <SqlEditPage :sqlEditData="sqlEditData"/>
|
|
|
+ <SqlEditPage :sqlEditData="sqlEditData" />
|
|
|
</el-drawer>
|
|
|
</template>
|
|
|
<script setup name="TargetDictConfig" lang="ts">
|
|
|
-import {ref, reactive, onMounted, nextTick} from 'vue'
|
|
|
+import { ref, reactive, onMounted, nextTick } from 'vue'
|
|
|
import TargetTree from '../target-comm/targetTree.vue'
|
|
|
import SqlEditPage from '../target-comm/SqlEditPage.vue'
|
|
|
-import {ElMessage, ElMessageBox} from 'element-plus'
|
|
|
-import type {FormInstance, FormRules} from 'element-plus'
|
|
|
-import {clone} from '../../../utils/clone'
|
|
|
-import {formatDate} from '../../../utils/date'
|
|
|
+import { ElMessage, ElMessageBox } from 'element-plus'
|
|
|
+import type { FormInstance, FormRules } from 'element-plus'
|
|
|
+import { clone } from '../../../utils/clone'
|
|
|
+import { formatDate } from '../../../utils/date'
|
|
|
import PageLayer from '../../../layout/PageLayer.vue'
|
|
|
-import {queryDept} from '../../../api/public-api'
|
|
|
-import {selectTargetDictById, selectTargetDictTree, saveTargetDict} from '../../../api/target-management/target-dict'
|
|
|
-import {employeeList} from "../../../api/zhu-yuan-yi-sheng/pat-info-query"
|
|
|
+import { queryDept } from '../../../api/public-api'
|
|
|
+import { selectTargetDictById, selectTargetDictTree, saveTargetDict } from '../../../api/target-management/target-dict'
|
|
|
+import { employeeList } from "../../../api/zhu-yuan-yi-sheng/pat-info-query"
|
|
|
import {
|
|
|
targetSqlExecuteById,
|
|
|
saveTargetReportResult,
|
|
@@ -326,16 +316,16 @@ const qeryTargetDictTree = () => {
|
|
|
queryParam.id = '';
|
|
|
queryParam.pid = '';
|
|
|
selectTargetDictTree(queryParam)
|
|
|
- .then((res: any) => {
|
|
|
- targetTreeData.value.data = res
|
|
|
- isShowTree.value = true
|
|
|
- });
|
|
|
+ .then((res: any) => {
|
|
|
+ targetTreeData.value.data = res
|
|
|
+ isShowTree.value = true
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
// ------ 指标字典新增,修改保存表单开始 ------
|
|
|
// ruleForm.value.name = '123'
|
|
|
// ruleForm.name = '21312'
|
|
|
-let ruleForm = reactive({
|
|
|
+let ruleForm = ref({
|
|
|
id: '', // 指标编码
|
|
|
name: '', // 指标名称
|
|
|
pid: '', // 父级编码
|
|
@@ -356,6 +346,8 @@ let ruleForm = reactive({
|
|
|
isLeaf: '1', // 是否叶子节点(0:否, 1:是)
|
|
|
calcChild: '', // 计算-分子
|
|
|
calcMom: '', // 计算-分母
|
|
|
+ childId: '',
|
|
|
+ momId: '',
|
|
|
})
|
|
|
|
|
|
let sqlForm = reactive({
|
|
@@ -381,30 +373,35 @@ let sqlForm = reactive({
|
|
|
childResult4: '', // 计算分子结果4
|
|
|
momResult4: '', // 计算分母结果4
|
|
|
calcResult4: '', // 计算结果4
|
|
|
+ childResult: '',
|
|
|
+ momResult: '',
|
|
|
+ calcResult: '',
|
|
|
+ childId: '',
|
|
|
+ momId: '',
|
|
|
})
|
|
|
|
|
|
const formSize = ref('default')
|
|
|
const ruleFormRef = ref<FormInstance>()
|
|
|
const upFormRef = ref<FormInstance>()
|
|
|
|
|
|
-const rules = reactive<FormRules>({
|
|
|
+const rulesForm = ref<FormRules>({
|
|
|
name: [
|
|
|
- {required: true, message: '请填写指标名称', trigger: 'blur'},
|
|
|
- {min: 1, max: 256, message: '指标名称长度范围1-256个字符', trigger: 'blur'},
|
|
|
+ { required: true, message: '请填写指标名称', trigger: 'blur' },
|
|
|
+ { min: 1, max: 256, message: '指标名称长度范围1-256个字符', trigger: 'blur' },
|
|
|
],
|
|
|
id: [
|
|
|
- {required: true, message: '请填写指标id', trigger: 'blur'},
|
|
|
- {min: 1, max: 12, message: '指标id长度范围1-12个字符', trigger: 'blur'},
|
|
|
+ { required: true, message: '请填写指标id', trigger: 'blur' },
|
|
|
+ { min: 1, max: 12, message: '指标id长度范围1-12个字符', trigger: 'blur' },
|
|
|
],
|
|
|
pid: [
|
|
|
- {required: true, message: '请填写指标父id', trigger: 'blur'},
|
|
|
- {min: 1, max: 12, message: '指标父id长度范围1-12个字符', trigger: 'blur'},
|
|
|
+ { required: true, message: '请填写指标父id', trigger: 'blur' },
|
|
|
+ { min: 1, max: 12, message: '指标父id长度范围1-12个字符', trigger: 'blur' },
|
|
|
],
|
|
|
sort: [
|
|
|
- {min: 0, max: 12, message: '指标序号长度范围0-12个字符', trigger: 'blur'},
|
|
|
+ { min: 0, max: 12, message: '指标序号长度范围0-12个字符', trigger: 'blur' },
|
|
|
],
|
|
|
score: [
|
|
|
- {required: true, message: '请填写指标总分', trigger: 'blur'},
|
|
|
+ { required: true, message: '请填写指标总分', trigger: 'blur' },
|
|
|
{
|
|
|
validator: (rule: any, value: any, callback: any) => {
|
|
|
if (/^(([1-9][0-9]*)|(([0]\.\d{1,2}|[1-9][0-9]*\.\d{1,2})))$/.test(value) == false) {
|
|
@@ -417,16 +414,16 @@ const rules = reactive<FormRules>({
|
|
|
}
|
|
|
],
|
|
|
ratio: [
|
|
|
- {min: 0, max: 48, message: '指标所占比例长度范围0-48个字符', trigger: 'blur'},
|
|
|
+ { min: 0, max: 48, message: '指标所占比例长度范围0-48个字符', trigger: 'blur' },
|
|
|
],
|
|
|
definition: [
|
|
|
- {required: true, message: '请填写指标定义', trigger: 'blur'},
|
|
|
+ { required: true, message: '请填写指标定义', trigger: 'blur' },
|
|
|
],
|
|
|
method: [
|
|
|
- {required: true, message: '请填写评审方法', trigger: 'blur'},
|
|
|
+ { required: true, message: '请填写评审方法', trigger: 'blur' },
|
|
|
],
|
|
|
scoreRule: [
|
|
|
- {required: true, message: '请填写计分细则', trigger: 'blur'},
|
|
|
+ { required: true, message: '请填写计分细则', trigger: 'blur' },
|
|
|
]
|
|
|
})
|
|
|
|
|
@@ -440,8 +437,8 @@ const submitForm = async (formEl: FormInstance | undefined) => {
|
|
|
|
|
|
await formEl.validate((valid, fields) => {
|
|
|
if (valid) {
|
|
|
- ruleForm.dept = deptInfoRef.value.states.selectedLabel
|
|
|
- ruleForm.op = opInfoRef.value.states.selectedLabel
|
|
|
+ ruleForm.value.dept = deptInfoRef.value.states.selectedLabel
|
|
|
+ ruleForm.value.op = opInfoRef.value.states.selectedLabel
|
|
|
saveTargetDict(ruleForm).then((res: any) => {
|
|
|
if (res) {
|
|
|
nextTick(() => {
|
|
@@ -493,7 +490,7 @@ const addForm = (formEl: FormInstance | undefined) => {
|
|
|
formEl.resetFields()
|
|
|
|
|
|
// 新增自动映射父指标id作为子指标的父id
|
|
|
- ruleForm.pid = queryParam.id
|
|
|
+ ruleForm.value.pid = queryParam.id
|
|
|
sqlForm.startTime = ''
|
|
|
sqlForm.endTime = ''
|
|
|
sqlForm.childResult = ''
|
|
@@ -534,19 +531,21 @@ const changeNode = async (formEl: FormInstance | undefined) => {
|
|
|
const leafRulesChange = async (formEl: FormInstance | undefined) => {
|
|
|
if (!formEl) return
|
|
|
// 父节点
|
|
|
- if (ruleForm.isLeaf === '0') {
|
|
|
+ if (ruleForm.value.isLeaf === '0') {
|
|
|
// 取消叶子节点的字典值校验
|
|
|
leafRuleFields.forEach(e => {
|
|
|
- if (rules[e]) {
|
|
|
- rules[e][0].required = false
|
|
|
+ if (rulesForm.value[e]) {
|
|
|
+ let dfas = rulesForm.value[e] as any
|
|
|
+ dfas[0].required = true
|
|
|
}
|
|
|
})
|
|
|
formEl.clearValidate(leafRuleFields)
|
|
|
} else { // 叶子节点
|
|
|
// 增加叶子节点的字典值校验
|
|
|
leafRuleFields.forEach(e => {
|
|
|
- if (rules[e]) {
|
|
|
- rules[e][0].required = true
|
|
|
+ if (rulesForm.value[e]) {
|
|
|
+ let dfas = rulesForm.value[e] as any
|
|
|
+ dfas[0].required = true
|
|
|
}
|
|
|
})
|
|
|
}
|
|
@@ -556,7 +555,7 @@ const editForm = (formEl: FormInstance | undefined) => {
|
|
|
if (!formEl) return
|
|
|
if (isShowForm.value) {
|
|
|
isShowForm.value = false
|
|
|
- if ('1' === ruleForm.isLeaf) {
|
|
|
+ if ('1' === ruleForm.value.isLeaf) {
|
|
|
changeNode(formEl)
|
|
|
}
|
|
|
}
|
|
@@ -578,23 +577,23 @@ const treeNodeClick = (data: any, node: any, obj: any) => {
|
|
|
queryParam.id = node.data.id
|
|
|
queryParam.pid = node.data.pid
|
|
|
selectTargetDictById(queryParam)
|
|
|
- .then((res: any) => {
|
|
|
- if (res) {
|
|
|
- nextTick(() => {
|
|
|
- isShowForm.value = true
|
|
|
- ruleForm = res
|
|
|
- // 获取点击树的是否叶子节点数据
|
|
|
- queryParam.isLeaf = ruleForm.isLeaf
|
|
|
- ruleFormRef.value?.resetFields()
|
|
|
- ruleFormRef.value?.clearValidate()
|
|
|
- leafRulesChange(ruleFormRef.value)
|
|
|
-
|
|
|
- upFormRef.value?.resetFields()
|
|
|
- // 获取指标报表结果
|
|
|
- queryTargetReportResult()
|
|
|
- })
|
|
|
- }
|
|
|
- });
|
|
|
+ .then((res: any) => {
|
|
|
+ if (res) {
|
|
|
+ nextTick(() => {
|
|
|
+ isShowForm.value = true
|
|
|
+ ruleForm.value = res
|
|
|
+ // 获取点击树的是否叶子节点数据
|
|
|
+ queryParam.isLeaf = ruleForm.value.isLeaf
|
|
|
+ ruleFormRef.value?.resetFields()
|
|
|
+ ruleFormRef.value?.clearValidate()
|
|
|
+ leafRulesChange(ruleFormRef.value)
|
|
|
+
|
|
|
+ upFormRef.value?.resetFields()
|
|
|
+ // 获取指标报表结果
|
|
|
+ queryTargetReportResult()
|
|
|
+ })
|
|
|
+ }
|
|
|
+ });
|
|
|
|
|
|
}
|
|
|
}
|
|
@@ -602,7 +601,7 @@ const treeNodeClick = (data: any, node: any, obj: any) => {
|
|
|
// ------------------------- sql编辑 -----------------------
|
|
|
const sqlEdit = (formEl: FormInstance | undefined) => {
|
|
|
if (!formEl) return
|
|
|
- if (ruleForm.id === '') {
|
|
|
+ if (ruleForm.value.id === '') {
|
|
|
ElMessage({
|
|
|
type: "info",
|
|
|
message: "指标信息不全,请确认!",
|
|
@@ -611,7 +610,7 @@ const sqlEdit = (formEl: FormInstance | undefined) => {
|
|
|
});
|
|
|
return
|
|
|
}
|
|
|
- if (ruleForm.isLeaf === '0') {
|
|
|
+ if (ruleForm.value.isLeaf === '0') {
|
|
|
ElMessage({
|
|
|
type: "info",
|
|
|
message: "不是基础指标,不需要编写sql,请确认!",
|
|
@@ -622,7 +621,12 @@ const sqlEdit = (formEl: FormInstance | undefined) => {
|
|
|
}
|
|
|
|
|
|
isSqlEdit.value = true
|
|
|
- sqlEditData.value = ruleForm
|
|
|
+ sqlEditData.value.id = ruleForm.value.id
|
|
|
+ sqlEditData.value.pid = ruleForm.value.pid
|
|
|
+ sqlEditData.value.name = ruleForm.value.name
|
|
|
+ sqlEditData.value.calcChild = ruleForm.value.calcChild
|
|
|
+ sqlEditData.value.calcMom = ruleForm.value.calcMom
|
|
|
+ sqlEditData.value.sort = ruleForm.value.sort
|
|
|
|
|
|
}
|
|
|
// --------------- sql编写结束 ------------
|
|
@@ -642,12 +646,24 @@ interface DataType {
|
|
|
dataType: string, // 数据统计类型:1 sql计算获得; 2 手动输入填写获得
|
|
|
}
|
|
|
|
|
|
-const resultList = ref(Array<DataType>)
|
|
|
+const resultList = ref([{
|
|
|
+ id: '',
|
|
|
+ pid: '',
|
|
|
+ childLabel: '',
|
|
|
+ childResult: '',
|
|
|
+ momLabel: '',
|
|
|
+ momResult: '',
|
|
|
+ calcLabel: '',
|
|
|
+ calcResult: '',
|
|
|
+ index: 0,
|
|
|
+ year: 0,
|
|
|
+ dataType: '',
|
|
|
+}])
|
|
|
|
|
|
const sqlExecute = (formEl: FormInstance | undefined) => {
|
|
|
if (!formEl) return
|
|
|
// 验证是否填写完整
|
|
|
- if (ruleForm.id === '') {
|
|
|
+ if (ruleForm.value.id === '') {
|
|
|
ElMessage({
|
|
|
type: "info",
|
|
|
message: "指标信息不全,请确认!",
|
|
@@ -656,7 +672,7 @@ const sqlExecute = (formEl: FormInstance | undefined) => {
|
|
|
});
|
|
|
return
|
|
|
}
|
|
|
- if (ruleForm.isLeaf === '0') {
|
|
|
+ if (ruleForm.value.isLeaf === '0') {
|
|
|
ElMessage({
|
|
|
type: "info",
|
|
|
message: "不是基础指标,不需要执行sql,请确认!",
|
|
@@ -666,7 +682,7 @@ const sqlExecute = (formEl: FormInstance | undefined) => {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- if (ruleForm.calcChild === '') {
|
|
|
+ if (ruleForm.value.calcChild === '') {
|
|
|
ElMessage({
|
|
|
type: "info",
|
|
|
message: "未编写sql,请联系管理员编写!",
|
|
@@ -693,14 +709,14 @@ const sqlExecute = (formEl: FormInstance | undefined) => {
|
|
|
isShowTargetResult.value = true
|
|
|
}
|
|
|
|
|
|
- sqlForm.id = ruleForm.id
|
|
|
- sqlForm.pid = ruleForm.pid
|
|
|
- sqlForm.childId = ruleForm.childId
|
|
|
- sqlForm.momId = ruleForm.momId
|
|
|
+ sqlForm.id = ruleForm.value.id
|
|
|
+ sqlForm.pid = ruleForm.value.pid
|
|
|
+ sqlForm.childId = ruleForm.value.childId
|
|
|
+ sqlForm.momId = ruleForm.value.momId
|
|
|
targetSqlExecuteById(sqlForm)
|
|
|
- .then((res: any) => {
|
|
|
- resultList.value = res
|
|
|
- });
|
|
|
+ .then((res: any) => {
|
|
|
+ resultList.value = res
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
// ------------ 手动填值 ---------
|
|
@@ -709,14 +725,14 @@ const handWrite = () => {
|
|
|
if (isShowTargetResult.value) {
|
|
|
isShowTargetResult.value = false
|
|
|
}
|
|
|
- resultList.value = []
|
|
|
+ resultList.value = [] as any
|
|
|
isShowHandWrite.value = true
|
|
|
}
|
|
|
|
|
|
// ------------ 统计结果保存 --------------
|
|
|
const saveTargetDictResult = () => {
|
|
|
|
|
|
- if (ruleForm.id === '') {
|
|
|
+ if (ruleForm.value.id === '') {
|
|
|
ElMessage({
|
|
|
type: "info",
|
|
|
message: "指标信息不全,请确认!",
|
|
@@ -731,51 +747,51 @@ const saveTargetDictResult = () => {
|
|
|
cancelButtonText: '取消',
|
|
|
confirmButtonText: '确定',
|
|
|
})
|
|
|
- .then(() => {
|
|
|
- let targetResultList = [] as any
|
|
|
- if (resultList.value.length > 0) {
|
|
|
- targetResultList = clone(resultList.value)
|
|
|
- } else {
|
|
|
- for (let i = 1; i <= 4; i++) {
|
|
|
- if (sqlForm['year' + i] && sqlForm['calcResult' + i]) {
|
|
|
- let handWriteData = {} as DataType
|
|
|
- handWriteData.id = ruleForm.id
|
|
|
- handWriteData.pid = ruleForm.pid
|
|
|
- handWriteData.dataType = '2'
|
|
|
- handWriteData.year = sqlForm['year' + i]
|
|
|
- handWriteData.childResult = sqlForm['childResult' + i]
|
|
|
- handWriteData.momResult = sqlForm['momResult' + i]
|
|
|
- handWriteData.calcResult = sqlForm['calcResult' + i]
|
|
|
- targetResultList.push(handWriteData)
|
|
|
- }
|
|
|
+ .then(() => {
|
|
|
+ let targetResultList = [] as any
|
|
|
+ if (resultList.value.length > 0) {
|
|
|
+ targetResultList = clone(resultList.value)
|
|
|
+ } else {
|
|
|
+ for (let i = 1; i <= 4; i++) {
|
|
|
+ if (sqlForm['year' + i] && sqlForm['calcResult' + i]) {
|
|
|
+ let handWriteData = {} as DataType
|
|
|
+ handWriteData.id = ruleForm.value.id
|
|
|
+ handWriteData.pid = ruleForm.value.pid
|
|
|
+ handWriteData.dataType = '2'
|
|
|
+ handWriteData.year = sqlForm['year' + i]
|
|
|
+ handWriteData.childResult = sqlForm['childResult' + i]
|
|
|
+ handWriteData.momResult = sqlForm['momResult' + i]
|
|
|
+ handWriteData.calcResult = sqlForm['calcResult' + i]
|
|
|
+ targetResultList.push(handWriteData)
|
|
|
}
|
|
|
}
|
|
|
+ }
|
|
|
|
|
|
- if (targetResultList.length > 0) {
|
|
|
- saveTargetReportResult(targetResultList)
|
|
|
- .then((res: any) => {
|
|
|
- if (res) {
|
|
|
- ElMessage({
|
|
|
- type: "success",
|
|
|
- message: "保存统计结果成功!",
|
|
|
- duration: 2500,
|
|
|
- showClose: true,
|
|
|
- });
|
|
|
- return
|
|
|
- }
|
|
|
+ if (targetResultList.length > 0) {
|
|
|
+ saveTargetReportResult(targetResultList)
|
|
|
+ .then((res: any) => {
|
|
|
+ if (res) {
|
|
|
+ ElMessage({
|
|
|
+ type: "success",
|
|
|
+ message: "保存统计结果成功!",
|
|
|
+ duration: 2500,
|
|
|
+ showClose: true,
|
|
|
});
|
|
|
-
|
|
|
- } else {
|
|
|
- ElMessage({
|
|
|
- type: "info",
|
|
|
- message: "保存统计结果为空,请确认!",
|
|
|
- duration: 2500,
|
|
|
- showClose: true,
|
|
|
+ return
|
|
|
+ }
|
|
|
});
|
|
|
- return
|
|
|
- }
|
|
|
- }).catch(() => {
|
|
|
- })
|
|
|
+
|
|
|
+ } else {
|
|
|
+ ElMessage({
|
|
|
+ type: "info",
|
|
|
+ message: "保存统计结果为空,请确认!",
|
|
|
+ duration: 2500,
|
|
|
+ showClose: true,
|
|
|
+ });
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }).catch(() => {
|
|
|
+ })
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -783,7 +799,7 @@ const saveTargetDictResult = () => {
|
|
|
let QtResultData = ref([])
|
|
|
const queryTargetReportResult = () => {
|
|
|
|
|
|
- if (ruleForm.id === '') {
|
|
|
+ if (ruleForm.value.id === '') {
|
|
|
ElMessage({
|
|
|
type: "info",
|
|
|
message: "指标信息不全,请确认!",
|
|
@@ -806,15 +822,15 @@ const queryTargetReportResult = () => {
|
|
|
startTime: '',
|
|
|
endTime: '',
|
|
|
}
|
|
|
- queryData.id = ruleForm.id
|
|
|
- queryData.pid = ruleForm.pid
|
|
|
+ queryData.id = ruleForm.value.id
|
|
|
+ queryData.pid = ruleForm.value.pid
|
|
|
selectTargetReportResult(queryData)
|
|
|
- .then((res: any) => {
|
|
|
- if (isShowQtResult.value === false) {
|
|
|
- isShowQtResult.value = true
|
|
|
- }
|
|
|
- QtResultData.value = res
|
|
|
- });
|
|
|
+ .then((res: any) => {
|
|
|
+ if (isShowQtResult.value === false) {
|
|
|
+ isShowQtResult.value = true
|
|
|
+ }
|
|
|
+ QtResultData.value = res
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
</script>
|