|
@@ -21,7 +21,7 @@
|
|
|
<el-form ref="ruleFormRef" :model="ruleForm" :rules="rulesForm" label-width="120px" class="demo-ruleForm"
|
|
|
:size="formSize" status-icon :disabled="isShowForm">
|
|
|
<el-collapse v-model="activeName">
|
|
|
- <el-collapse-item title="指标信息" name="zbxx">
|
|
|
+ <el-collapse-item title="指标信息" name="zbInfo">
|
|
|
<el-row>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="指标名称" prop="name">
|
|
@@ -140,7 +140,7 @@
|
|
|
</el-form-item>
|
|
|
</el-collapse-item>
|
|
|
<!-- <el-divider />-->
|
|
|
- <el-collapse-item title="指标计算" name="zbjs">
|
|
|
+ <el-collapse-item title="指标计算" name="zbCalc">
|
|
|
<el-form ref="upFormRef" label-width="100px" :model="sqlForm" class="demo-ruleForm" :size="formSize">
|
|
|
<el-row>
|
|
|
<el-col :span="7">
|
|
@@ -171,7 +171,7 @@
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="5">
|
|
|
- <el-form-item label="得分填写">
|
|
|
+ <el-form-item label="内审得分">
|
|
|
<el-form-item prop="zbScore">
|
|
|
<el-input v-model="zbScore" show-word-limit />
|
|
|
</el-form-item>
|
|
@@ -259,10 +259,10 @@
|
|
|
<el-form ref="upFormRef" label-width="120px" :model="sqlForm" class="demo-ruleForm" :size="formSize" :disabled="false">
|
|
|
<el-row>
|
|
|
<el-table v-show="isShowQtResult" :data="QtResultData" stripe border highlight-current-row row-key="childKey" height="240"
|
|
|
- style="width: 100%">
|
|
|
+ style="width: 100%" :span-method="objectSpanMethod">
|
|
|
<el-table-column prop="reportCycle" label="年度周期" header-align="center" v-if="false"/>
|
|
|
<el-table-column prop="year" label="年份" header-align="center"/>
|
|
|
- <el-table-column prop="dataType" label="数据方式" header-align="center">
|
|
|
+ <el-table-column prop="dataType" label="数据方式" header-align="center" width="120">
|
|
|
<template v-slot="scope">
|
|
|
<el-select v-model="scope.row.dataType" disabled placeholder="请选择数据方式">
|
|
|
<el-option v-for="option in dataTypeOptions" :key="option.code" :label="option.name"
|
|
@@ -270,13 +270,13 @@
|
|
|
</el-select>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="childResult" label="分子结果" header-align="center">
|
|
|
+ <el-table-column prop="childResult" label="分子" header-align="center">
|
|
|
<template v-slot="scope">
|
|
|
<el-input v-if="scope.row.isEdit" size="small" v-model="scope.row.childResult" @blur="tableReportResultFormat(scope.row)"></el-input>
|
|
|
<span v-else>{{ scope.row.childResult }}</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="momResult" label="分母结果" header-align="center">
|
|
|
+ <el-table-column prop="momResult" label="分母" header-align="center">
|
|
|
<template v-slot="scope">
|
|
|
<el-input v-if="scope.row.isEdit" size="small" v-model="scope.row.momResult" @blur="tableReportResultFormat(scope.row)"></el-input>
|
|
|
<span v-else>{{ scope.row.momResult }}</span>
|
|
@@ -288,8 +288,14 @@
|
|
|
<span v-else>{{ scope.row.calcResult }}</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
+ <el-table-column prop="opTime" label="统计时间" header-align="center" width="160"/>
|
|
|
<el-table-column prop="op" label="统计人员" header-align="center" />
|
|
|
- <el-table-column prop="opTime" label="统计时间" header-align="center" width="200"/>
|
|
|
+<!-- <el-table-column prop="fileUpDown" label="附件上传" header-align="center">-->
|
|
|
+<!-- <template v-slot="scope">-->
|
|
|
+<!-- <el-input v-if="scope.row.isEdit" size="small" v-model="scope.row.fileUpDown"></el-input>-->
|
|
|
+<!-- <span v-else>{{ scope.row.fileUpDown }}</span>-->
|
|
|
+<!-- </template>-->
|
|
|
+<!-- </el-table-column>-->
|
|
|
<el-table-column prop="cz" label="操作" min-width="180" width="180" header-align="center">
|
|
|
<template #default="scope">
|
|
|
<el-button type="primary" size="small" v-if="!scope.row.isEdit" @click="editRow(scope.$index, scope.row)">
|
|
@@ -308,6 +314,43 @@
|
|
|
</el-row>
|
|
|
</el-form>
|
|
|
</el-collapse-item>
|
|
|
+ <el-collapse-item title="指标自评与审核" name="zbScore">
|
|
|
+ <el-form ref="upFormRef" label-width="100px" :model="zpfForm" class="demo-ruleForm" :size="formSize" :disabled="false">
|
|
|
+ <el-input v-model="zpfForm.authorId" v-if="false" />
|
|
|
+ <el-input v-model="zpfForm.mainId" v-if="false" />
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="指标名称" prop="name">
|
|
|
+ <el-input v-model="ruleForm.name" disabled />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="4">
|
|
|
+ <el-form-item label="年均增长率" prop="authorScore">
|
|
|
+ <el-input v-model="zpfForm.yearRate" disabled/>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="4">
|
|
|
+ <el-form-item label="自评分" prop="authorScore">
|
|
|
+ <el-input v-model="zpfForm.authorScore" :disabled="!isPf"/>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="4">
|
|
|
+ <el-form-item label="内审得分" prop="reportScore">
|
|
|
+ <el-input v-model="zpfForm.reportScore" :disabled="isPf"/>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="4">
|
|
|
+ <el-form-item label="内审人员" prop="mainName">
|
|
|
+ <el-input v-model="zpfForm.mainName" disabled />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-form-item>
|
|
|
+ <el-button type="primary" @click="saveTargetDictZpf" :disabled="!isPf"> 确认</el-button>
|
|
|
+ <el-button type="primary" @click="saveTargetDictShf" :disabled="isPf"> 审核</el-button>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </el-collapse-item>
|
|
|
</el-collapse>
|
|
|
</el-form>
|
|
|
</div>
|
|
@@ -319,42 +362,45 @@
|
|
|
</el-drawer>
|
|
|
</template>
|
|
|
<script setup name="TargetDictConfig" lang="ts">
|
|
|
-import { ref, reactive, onMounted, nextTick } from 'vue'
|
|
|
+import {nextTick, onMounted, reactive, ref} 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 { queryDept } from '@/api/public-api'
|
|
|
+import type {FormInstance, FormRules, TableColumnCtx} from 'element-plus'
|
|
|
+import {ElMessage, ElMessageBox} from 'element-plus'
|
|
|
+import {clone} from '@/utils/clone'
|
|
|
+import {formatDate} from '@/utils/date'
|
|
|
+import {queryDept} from '@/api/public-api'
|
|
|
import {
|
|
|
- selectTargetDictById,
|
|
|
- selectTargetDictTree,
|
|
|
saveTargetDict,
|
|
|
selectScoreCycle,
|
|
|
- updateTargetReportScore,
|
|
|
+ selectScoreCyclePermissions,
|
|
|
+ selectTargetDictById,
|
|
|
+ selectTargetDictTree,
|
|
|
selectTargetReportScore,
|
|
|
- selectScoreCyclePermissions
|
|
|
+ updateTargetReportScore,
|
|
|
+ updateTargetReportScoreByShf
|
|
|
} from '@/api/target-management/target-dict'
|
|
|
-import { selectTargetZbReportId } from '@/api/target-management/report-dict'
|
|
|
-import { employeeList } from "@/api/zhu-yuan-yi-sheng/pat-info-query"
|
|
|
+import {selectTargetZbReportId} from '@/api/target-management/report-dict'
|
|
|
+import {employeeList} from "@/api/zhu-yuan-yi-sheng/pat-info-query"
|
|
|
import {
|
|
|
- targetSqlExecuteById,
|
|
|
+ delTargetReportResultByYear,
|
|
|
saveTargetReportResult,
|
|
|
saveTargetReportResultSinge,
|
|
|
- delTargetReportResultByYear,
|
|
|
- selectTargetReportResult
|
|
|
+ selectTargetReportResult,
|
|
|
+ targetSqlExecuteById
|
|
|
} from '@/api/target-management/target-sql'
|
|
|
+import {useUserStore} from "@/pinia/user-store";
|
|
|
+import {power} from "@/utils/excel-base-function";
|
|
|
|
|
|
const targetTreeData = ref({
|
|
|
data: [{}],
|
|
|
height: 940,
|
|
|
})
|
|
|
-
|
|
|
+const userInfo = useUserStore().userInfo
|
|
|
const dataTypeOptions = [{ code: '1', name: 'sql统计' }, { code: '2', name: '手动输入' }]
|
|
|
const isShowTree = ref(false)
|
|
|
const isShowTss = ref(true)
|
|
|
-const activeName = ref(['zbxx', 'zbjs'])
|
|
|
+const activeName = ref(['zbInfo', 'zbCalc', 'zbScore'])
|
|
|
const isShowForm = ref(false)
|
|
|
// 是否显示指标sql运行结果
|
|
|
const isShowTargetResult = ref(false)
|
|
@@ -407,6 +453,7 @@ onMounted(() => {
|
|
|
queryScoreCycle()
|
|
|
queryTargetDictTree()
|
|
|
queryTargetZbReportId()
|
|
|
+ queryScoreCyclePermissions()
|
|
|
deptMethod('')
|
|
|
empMethod('')
|
|
|
})
|
|
@@ -471,6 +518,7 @@ let ruleForm = ref({
|
|
|
let sqlForm = reactive({
|
|
|
id: '', // 指标编码
|
|
|
pid: '', // 父级编码
|
|
|
+ name: '', // 指标名称
|
|
|
calcChild: '', // 计算分子sql
|
|
|
calcMom: '', // 计算分母sql
|
|
|
startTime: '', // 计算开始时间
|
|
@@ -697,8 +745,6 @@ const treeNodeClick = (data: any, node: any, obj: any) => {
|
|
|
id: node.data.id,
|
|
|
reportCycle: cycle.value
|
|
|
}
|
|
|
- // 查询指标得分情况
|
|
|
- queryTargetReportScore(params)
|
|
|
|
|
|
resultList.value = []
|
|
|
if (isShowTargetResult.value === false) {
|
|
@@ -720,6 +766,8 @@ const treeNodeClick = (data: any, node: any, obj: any) => {
|
|
|
leafRulesChange(ruleFormRef.value)
|
|
|
|
|
|
upFormRef.value?.resetFields()
|
|
|
+ // 查询指标得分情况
|
|
|
+ queryTargetReportScore(params)
|
|
|
// 获取指标报表结果
|
|
|
queryTargetReportResult()
|
|
|
})
|
|
@@ -845,6 +893,7 @@ const sqlExecute = (formEl: FormInstance | undefined) => {
|
|
|
|
|
|
sqlForm.id = ruleForm.value.id
|
|
|
sqlForm.pid = ruleForm.value.pid
|
|
|
+ sqlForm.name = ruleForm.value.name
|
|
|
sqlForm.childId = ruleForm.value.childId
|
|
|
sqlForm.momId = ruleForm.value.momId
|
|
|
targetSqlExecuteById(sqlForm)
|
|
@@ -876,7 +925,7 @@ const saveTargetDictResult = () => {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- if (QtResultData) {
|
|
|
+ if (QtResultData.value) {
|
|
|
ElMessageBox.confirm('已存在统计结果,请确认是否继续保存统计结果?', {
|
|
|
cancelButtonText: '取消',
|
|
|
confirmButtonText: '确定',
|
|
@@ -942,8 +991,28 @@ const queryData = ref({
|
|
|
startTime: '',
|
|
|
endTime: '',
|
|
|
})
|
|
|
+interface resultData {
|
|
|
+ reportCycle: string
|
|
|
+ year: string
|
|
|
+ dataType: string
|
|
|
+ childResult: string
|
|
|
+ momResult: string
|
|
|
+ calcResult: string
|
|
|
+ op: string
|
|
|
+ opTime: string
|
|
|
+ yearRate: string
|
|
|
+ cz: object
|
|
|
+}
|
|
|
+
|
|
|
+interface SpanMethodProps {
|
|
|
+ row: resultData
|
|
|
+ column: TableColumnCtx<resultData>
|
|
|
+ rowIndex: number
|
|
|
+ columnIndex: number
|
|
|
+}
|
|
|
+// reportCycle: '',year: '',dataType: '',childResult: '',momResult: '',calcResult:'',op: '',opTime: '',yearRate: '',cz:''
|
|
|
let QtResultData = ref([])
|
|
|
-const queryTargetReportResult = () => {
|
|
|
+const queryTargetReportResult = async () => {
|
|
|
|
|
|
if (ruleForm.value.id === '') {
|
|
|
ElMessage({
|
|
@@ -969,7 +1038,7 @@ const queryTargetReportResult = () => {
|
|
|
|
|
|
queryData.value.id = ruleForm.value.id
|
|
|
queryData.value.pid = ruleForm.value.pid
|
|
|
- selectTargetReportResult(queryData.value)
|
|
|
+ await selectTargetReportResult(queryData.value)
|
|
|
.then((res: any) => {
|
|
|
if (isShowQtResult.value === false) {
|
|
|
isShowQtResult.value = true
|
|
@@ -981,6 +1050,13 @@ const queryTargetReportResult = () => {
|
|
|
row['isAdd'] = false
|
|
|
})
|
|
|
QtResultData.value = res
|
|
|
+
|
|
|
+ // 判断自评分的权限
|
|
|
+ callZpfQx()
|
|
|
+ // 计算年均增长率
|
|
|
+ if(QtResultData.value.length > 0){
|
|
|
+ callAverageAnnualGrowthRate(QtResultData.value)
|
|
|
+ }
|
|
|
});
|
|
|
}
|
|
|
|
|
@@ -1018,6 +1094,8 @@ const cycleFormat = () => {
|
|
|
reportCycle: cycle.value
|
|
|
}
|
|
|
queryTargetReportScore(params)
|
|
|
+ // 获取指标报表结果
|
|
|
+ queryTargetReportResult()
|
|
|
}
|
|
|
}
|
|
|
const saveTargetReportScore = () => {
|
|
@@ -1059,7 +1137,7 @@ const callSaveTargetReportScore = () => {
|
|
|
});
|
|
|
return
|
|
|
}
|
|
|
- if (/^(([0-9][0-9]*)|(([0]\.\d{1,2}|[1-9][0-9]*\.\d{1,2})))$/.test(zbScore.value) === false) {
|
|
|
+ if (/^(([0-9]+)|(([0]\.\d{1,2}|[1-9][0-9]*\.\d{1,2})))$/.test(zbScore.value) === false) {
|
|
|
ElMessage({
|
|
|
type: "warning",
|
|
|
message: "填写数据格式不正确,请确认!",
|
|
@@ -1099,24 +1177,42 @@ const callSaveTargetReportScore = () => {
|
|
|
});
|
|
|
}
|
|
|
|
|
|
+// 更新自评分
|
|
|
+const zpfForm = ref({
|
|
|
+ id: '',
|
|
|
+ pid: '',
|
|
|
+ reportCycle: '',
|
|
|
+ reportScore: '',
|
|
|
+ authorId: '',
|
|
|
+ authorName: '',
|
|
|
+ authorScore: '',
|
|
|
+ mainId: '',
|
|
|
+ mainName: '',
|
|
|
+ yearRate: '',
|
|
|
+ flag: ''
|
|
|
+})
|
|
|
const queryTargetReportScore = (params) => {
|
|
|
zbScore.value = ''
|
|
|
+ zpfForm.value = {}
|
|
|
selectTargetReportScore(params)
|
|
|
.then((res: any) => {
|
|
|
if(res){
|
|
|
+ zpfForm.value = clone(res)
|
|
|
zbScore.value = res.reportScore
|
|
|
+ if(qx.value.indexOf(userInfo.code) !== -1){
|
|
|
+ // 存储内审人员信息
|
|
|
+ zpfForm.value.mainId = userInfo.code
|
|
|
+ zpfForm.value.mainName = userInfo.name
|
|
|
+ }
|
|
|
} else {
|
|
|
+ zpfForm.value = {}
|
|
|
zbScore.value = ''
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
// 显示与隐藏指标树
|
|
|
const bigOrSmall = () => {
|
|
|
- if(isShowTss.value) {
|
|
|
- isShowTss.value = false
|
|
|
- } else {
|
|
|
- isShowTss.value = true
|
|
|
- }
|
|
|
+ isShowTss.value = !isShowTss.value;
|
|
|
}
|
|
|
// 手工数据填写计算结果
|
|
|
const reportResultFormat = (e) => {
|
|
@@ -1232,6 +1328,171 @@ const tableReportResultFormat = (row) => {
|
|
|
}
|
|
|
}
|
|
|
// 手工计算数据修改结束
|
|
|
+
|
|
|
+// 合并单元格
|
|
|
+const objectSpanMethod = ({row, column, rowIndex, columnIndex}: SpanMethodProps) => {
|
|
|
+ if('yearRate' === column.property && rowIndex === 0){
|
|
|
+ return {
|
|
|
+ rowspan: 4,
|
|
|
+ colspan: 1,
|
|
|
+ }
|
|
|
+ } else if('yearRate' === column.property){
|
|
|
+ return {
|
|
|
+ rowspan: 0,
|
|
|
+ colspan: 0,
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ return {
|
|
|
+ rowspan: 1,
|
|
|
+ colspan: 1,
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+const qx = ref('')
|
|
|
+const isPf = ref(true)
|
|
|
+const queryScoreCyclePermissions = () => {
|
|
|
+ selectScoreCyclePermissions()
|
|
|
+ .then((res: any) => {
|
|
|
+ qx.value = res.qx
|
|
|
+ })
|
|
|
+}
|
|
|
+// 自评分权限划分
|
|
|
+const callZpfQx = () => {
|
|
|
+ if(qx.value.indexOf(userInfo.code) === -1) {
|
|
|
+ isPf.value = true
|
|
|
+ } else if(qx.value.indexOf(userInfo.code) !== -1){
|
|
|
+ if(!QtResultData.value){
|
|
|
+ isPf.value = userInfo.codeRs === QtResultData.value[0].opId
|
|
|
+ } else {
|
|
|
+ isPf.value = userInfo.code === ruleForm.value.opId
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+// 自评分
|
|
|
+const saveTargetDictZpf = () => {
|
|
|
+ if(!ruleForm.value.id){
|
|
|
+ ElMessage({
|
|
|
+ type: "error",
|
|
|
+ message: '请选择一个指标!',
|
|
|
+ duration: 2500,
|
|
|
+ showClose: true,
|
|
|
+ });
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if(!zpfForm.value.authorScore){
|
|
|
+ ElMessage({
|
|
|
+ type: "error",
|
|
|
+ message: '请填写自评分!',
|
|
|
+ duration: 2500,
|
|
|
+ showClose: true,
|
|
|
+ });
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if (/^(([0-9]+)|(([0]\.\d{1,2}|[1-9][0-9]*\.\d{1,2})))$/.test(zpfForm.value.authorScore) === false) {
|
|
|
+ ElMessage({
|
|
|
+ type: "error",
|
|
|
+ message: "自评分填写数据格式不正确,请确认!",
|
|
|
+ duration: 2500,
|
|
|
+ showClose: true,
|
|
|
+ });
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if (zpfForm.value.authorScore > ruleForm.value.score) {
|
|
|
+ ElMessage({
|
|
|
+ type: "error",
|
|
|
+ message: "自评分不能大于指标总分(" + ruleForm.value.score + "),请确认!",
|
|
|
+ duration: 2500,
|
|
|
+ showClose: true,
|
|
|
+ });
|
|
|
+ return
|
|
|
+ }
|
|
|
+ zpfForm.value.id = ruleForm.value.id
|
|
|
+ zpfForm.value.pid = ruleForm.value.pid
|
|
|
+ zpfForm.value.reportCycle = cycle.value
|
|
|
+ zpfForm.value.criterionScore = ruleForm.value.score
|
|
|
+ zpfForm.value.year
|
|
|
+ updateTargetReportScore(zpfForm.value)
|
|
|
+ .then((res: any) => {
|
|
|
+ ElMessage({
|
|
|
+ type: "success",
|
|
|
+ message: res.cg,
|
|
|
+ duration: 2500,
|
|
|
+ showClose: true,
|
|
|
+ });
|
|
|
+ });
|
|
|
+}
|
|
|
+// 审核得分
|
|
|
+const saveTargetDictShf = () => {
|
|
|
+ if(!ruleForm.value.id){
|
|
|
+ ElMessage({
|
|
|
+ type: "error",
|
|
|
+ message: '请选择一个指标!',
|
|
|
+ duration: 2500,
|
|
|
+ showClose: true,
|
|
|
+ });
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if(!zpfForm.value.reportScore){
|
|
|
+ ElMessage({
|
|
|
+ type: "error",
|
|
|
+ message: '请填写内审得分!',
|
|
|
+ duration: 2500,
|
|
|
+ showClose: true,
|
|
|
+ });
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if (/^(([0-9]+)|(([0]\.\d{1,2}|[1-9][0-9]*\.\d{1,2})))$/.test(zpfForm.value.reportScore) === false) {
|
|
|
+ ElMessage({
|
|
|
+ type: "error",
|
|
|
+ message: "内审得分填写数据格式不正确,请确认!",
|
|
|
+ duration: 2500,
|
|
|
+ showClose: true,
|
|
|
+ });
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if (zpfForm.value.reportScore > ruleForm.value.score) {
|
|
|
+ ElMessage({
|
|
|
+ type: "error",
|
|
|
+ message: "内审得分不能大于指标总分(" + ruleForm.value.score + "),请确认!",
|
|
|
+ duration: 2500,
|
|
|
+ showClose: true,
|
|
|
+ });
|
|
|
+ return
|
|
|
+ }
|
|
|
+ zpfForm.value.id = ruleForm.value.id
|
|
|
+ zpfForm.value.reportCycle = cycle.value
|
|
|
+ updateTargetReportScoreByShf(zpfForm.value)
|
|
|
+ .then((res: any) => {
|
|
|
+ ElMessage({
|
|
|
+ type: "success",
|
|
|
+ message: res.cg,
|
|
|
+ duration: 2500,
|
|
|
+ showClose: true,
|
|
|
+ });
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
+// 计算年均增长率
|
|
|
+const callAverageAnnualGrowthRate = (data) => {
|
|
|
+ let d1 = data.filter((item) => {
|
|
|
+ return item.year === sqlForm.startTime
|
|
|
+ })
|
|
|
+ let d2 = data.filter((item) => {
|
|
|
+ return item.year === sqlForm.endTime
|
|
|
+ })
|
|
|
+ if(d1 && d2){
|
|
|
+ let r1 = d1[0].calcResult
|
|
|
+ let r2 = d2[0].calcResult
|
|
|
+ let v = power(r2/r1, 1/3) - 1
|
|
|
+ zpfForm.value.yearRate = v.toFixed(4)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
</script>
|
|
|
<style lang="scss" scoped>
|
|
|
:deep(.hd-cl) {
|