GitBucket
4.6.0
Toggle navigation
Sign in
Files
Branches
1
Tags
Issues
Pull Requests
Labels
Milestones
Wiki
08335
/
hivui-platform-template
hivui平台项目模板
Browse code
@中文描述: 统计分析支持多语言
@升级登记:1 @同步后端:0 @同步数据库:0 @同步配置:0 @向下兼容:1
master
1 parent
376c124
commit
638cf5374a48d4ebaf28e6e9d2e7f8f6e13bd3d4
hhb
authored
on 14 Apr 2023
Showing
3 changed files
project/hivuiSam/components/analysisSam/Index.vue
project/hivuiSam/lang/en.js
project/hivuiSam/lang/zh-CN.js
Ignore Space
Show notes
View
project/hivuiSam/components/analysisSam/Index.vue
<template> <div class="container"> <!-- 工具条 --> <div class="btn-toolbar"> <!-- 后退 --> <el-dropdown split-button :size="size" :class="{disabled: backDisabled}" :disabled="backDisabled" @command="backCommand" @click="backClick"> <i class="el-icon-back"></i>{{ $t && $t("hivuiSam_btn_back") || '后退'}} <el-dropdown-menu slot="dropdown"> <el-dropdown-item v-for="(item,index) in deepArr" :key="item.prop" :command="index" v-if="index < curIndex">{{ item.label }}</el-dropdown-item> </el-dropdown-menu> </el-dropdown> <!-- 前进 --> <el-dropdown split-button :size="size" :class="{disabled: goDisabled}" :disabled="goDisabled" @command="goCommand" @click="goClick"> <i class="el-icon-right"></i>{{ $t && $t("hivuiSam_btn_go") || '前进'}} <el-dropdown-menu slot="dropdown"> <el-dropdown-item v-for="(item,index) in deepArr" :key="item.prop" :command="index" v-if="index > curIndex">{{ item.label }}</el-dropdown-item> </el-dropdown-menu> </el-dropdown> <!-- 排序 --> <el-dropdown split-button :size="size" class="sort" @command="sortClick"> <i class="el-icon-sort"></i>{{ $t && $t("hivuiSam_btn_sort") || '排序'}} <el-dropdown-menu slot="dropdown"> <el-dropdown-item :command="-1">{{ $t && $t("hivuiSam_btn_noSort") || '不排序'}}</el-dropdown-item> <el-dropdown-item v-for="(item, index) in sortArr" :key="item.prop" :command="index">{{ item.label }} <i class="el-icon-sort-down" :class="{ sortActive: index == sortIndex && sortType =='desc' }" @click="sortDown"></i> <i class="el-icon-sort-up" :class="{ sortActive: index == sortIndex && sortType =='asc' }" @click="sortUp"></i> </el-dropdown-item> </el-dropdown-menu> </el-dropdown> <!-- 列设置 --> <el-button icon="el-icon-setting" :size="size" @click="analysisClick">{{ $t && $t("hivuiSam_btn_columnSet") || '列设置'}}</el-button> <!-- 图表 --> <el-dropdown :size="size" @command="chartTypeChange"> <el-button :size="size"> <i class="el-icon-s-data"></i> 图表<i class="el-icon-arrow-down el-icon--right"></i> </el-button> <el-dropdown-menu slot="dropdown"> <el-dropdown-item :class="{active: chartType == 'table'}" command="table">表格</el-dropdown-item> <el-dropdown-item :class="{active: chartType == 'pie'}" command="pie">饼图</el-dropdown-item> <el-dropdown-item :class="{active: chartType == 'bar'}" command="bar">柱图</el-dropdown-item> <el-dropdown-item :class="{active: chartType == 'line'}" command="line">线图</el-dropdown-item> <el-dropdown-item :class="{active: chartType == 'area'}" command="area">区域图</el-dropdown-item> <el-dropdown-item :class="{active: chartType == 'stack'}" command="stack">叠加柱图</el-dropdown-item> </el-dropdown-menu> </el-dropdown> <!-- 刷新 --> <el-button icon="el-icon-refresh" :size="size" @click="refresh">{{ $t && $t("hivuiSam_btn_refresh") || '刷新'}}</el-button> <!-- 分析记录 --> <el-popover placement="bottom" popper-class="recordPop" v-model="recordVisible"> <el-table :data="recordData" @row-dblclick="recordDblClick" @selection-change="handleSelectionChange"> <el-table-column type="selection" width="55"> </el-table-column> <el-table-column min-width="150" prop="name" :label="$t && $t("hivuiSam_table_scheme") || '方案名称'"> <template slot-scope="scope"> <el-input v-if="scope.row.isEdit" v-model="scope.row.name"></el-input> <span v-else>{{ scope.row.name }}</span> </template> </el-table-column> <el-table-column width="100" prop="simple" :label="$t && $t("hivuiSam_table_abbreviation") || '缩写'"> <template slot-scope="scope"> <el-input v-model="scope.row.simple"></el-input> </template> </el-table-column> <el-table-column :label="$t && $t("hivuiSam_table_operate") || '操作'" width="150"> <template slot-scope="scope"> <el-button size="mini" type="text" v-if="!scope.row.isEdit" @click="handleEdit(scope.$index, scope.row)">{{ $t && $t("hivuiSam_btn_edit") || '编辑'}}</el-button> <el-button size="mini" type="text" v-else @click="handleConfirm(scope.$index, scope.row)">{{ $t && $t("hivuiSam_btn_confirm") || '确定'}}</el-button> <el-button size="mini" type="text" style="color:red;" @click.stop="handleDelete(scope.$index, scope.row)">{{ $t && $t("hivuiSam_btn_remove") || '删除'}}</el-button> </template> </el-table-column> </el-table> <el-button type="primary" size="mini" icon="el-icon-check" style="margin: 10px 0 0;" @click.stop="doClick" :disabled="btnDisabled">{{ $t && $t("hivuiSam_btn_executeOverlay") || '执行叠加'}}</el-button> <el-button slot="reference" icon="el-icon-edit-outline" :size="size">{{ $t && $t("hivuiSam_btn_analysisRecord") || '分析记录'}}</el-button> </el-popover> <!-- 统计方案 --> <el-popover placement="bottom" v-model="schemeVisible"> <el-table size="mini" :data="schemeData" @row-click="schemeRowClick"> <el-table-column width="150" prop="FSCHEMENAME" :label="$t && $t("hivuiSam_btn_schemeList") || '方案列表'"></el-table-column> <el-table-column :label="$t && $t("hivuiSam_table_operate") || '操作'" width="150"> <template slot-scope="scope"> <el-button size="mini" type="text" style="color:red;" @click.stop="handleSchemeDelete(scope.$index, scope.row)">{{ $t && $t("hivuiSam_btn_remove") || '删除'}}</el-button> </template> </el-table-column> </el-table> <el-button slot="reference" icon="el-icon-edit-outline" :size="size" @click="showSchemeData">{{ $t && $t("hivuiSam_btn_schemeList") || '方案列表'}}</el-button> </el-popover> <!-- 叠加 --> <el-checkbox v-model="superposition" :label="$t && $t("hivuiSam_check_overlay") || '叠加'" border :size="size" ></el-checkbox> <!-- 透视 --> <el-checkbox v-model="perspective" :label="$t && $t("hivuiSam_check_directPerspective") || '直接透视'" border :size="size" ></el-checkbox> <el-button icon="el-icon-download" :size="size" :disabled="this.data && this.data.length == 0" :loading="exportLoading" @click="exportExcel">{{ $t && $t("hivuiSam_btn_export") || '导出excel' }}</el-button> <el-button icon="el-icon-save" :size="size" :loading="schemeLoading" @click="saveScheme">{{ $t && $t("hivuiSam_btn_schemeSave") || '保存方案' }}</el-button> </div> <!-- 内容区 --> <hi-layout :is-fit="true" style="heiht: 100%;"> <!-- 右侧查询面板 --> <hi-layout-right size="300" :title="$t && $t("hivuiSam_layout_panel") || '面板'"> <el-tabs v-model="activeName" class="right-tabs" type="border-card" @tab-click="handleClick"> <el-tab-pane :label="$t && $t("hivuiSam_layout_conditionPanel") || '条件面板'" name="condition"> <div style="height: calc( 100% - 342px );overflow: auto;border:none;"> <birt-work-book style="min-height: calc( 100% - 342px );" :conf="birtModelRight" :ref="birtModelRight.controlId" class="birtModelRight" ></birt-work-book> </div> <el-divider>{{ $t && $t("hivuiSam_layout_summary") || '汇总条件' }}</el-divider> <div style="height: 180px;overflow:auto;"> <el-form @submit.native.prevent ref="havingForm" style="padding: 10px 10px 0 0;" :model="havingForm" label-width="80px" > <el-form-item v-for="(val,name,index) in havingForm" :key="name"> <span slot="label" :title="val.label"> {{ val.label }} </span> <el-col :span="10"> <el-input type="number" v-model="havingForm[name].value" size="mini" controls-position="right" @change="handleChange" :min="0"></el-input> </el-col> <el-col class="line" :span="2">-</el-col> <el-col :span="10"> <el-input type="number" v-model="havingForm[name].value2" size="mini" controls-position="right" @change="handleChange" :min="0"></el-input> </el-col> <el-col class="line" :span="2" style="text-align:center;"> <el-button v-if="val.sign == 'inRange'" size="mini" type="text" @click="signChange(name,'outRange')">内</el-button> <el-button v-else size="mini" type="text" @click="signChange(name,'inRange')">外</el-button> </el-col> </el-form-item> </el-form> </div> <el-form @submit.native.prevent ref="groupForm" style="padding: 10px 10px 0 0;" :model="groupForm" label-width="80px" > <el-form-item :label="$t && $t("hivuiSam_form_group") || '分组条件'"> <i class="el-icon-edit" @click="showtransfer"></i> <el-select v-model="groupForm.prop" style="width: 100%;"> <el-option v-for="item in groupFields" :label="item.label" :value="item.prop" :key="item.prop" ></el-option> </el-select> </el-form-item> <el-form-item> <el-button type="primary" size="mini" :loading="loading" @click="doCount" >执行查询</el-button > <el-button size="mini" @click="reset">重置</el-button> </el-form-item> </el-form> </el-tab-pane> <el-tab-pane :label="$t && $t("hivuiSam_layout_setPanel") || '设置面板'" name="setting"> <el-form @submit.native.prevent ref="settingForm" style="padding: 10px 10px 0 0;" :model="settingForm" label-width="90px"> <el-form-item :label="$t && $t("hivuiSam_form_xInverse") || '横轴翻转'"> <el-checkbox v-model="settingForm.xInverse" label=""></el-checkbox> </el-form-item> <el-form-item :label="$t && $t("hivuiSam_form_toolbox") || '显示工具条'"> <el-checkbox v-model="settingForm.toolbox" label=""></el-checkbox> </el-form-item> <el-form-item :label="$t && $t("hivuiSam_form_toolBar") || '轴标记'"> <el-select v-model="showType" style="width: 100%;"> <el-option v-for="item in axisMarkOptions" :label="item.label" :value="item.value" :key="item.value" ></el-option> </el-select> </el-form-item> <el-form-item :label="$t && $t("hivuiSam_form_legend") || '系列名'"> <el-select v-model="settingForm.legend" style="width: 100%;"> <el-option v-for="item in legendOptions" :label="item.label" :value="item.value" :key="item.value" ></el-option> </el-select> </el-form-item> <el-form-item :label="$t && $t("hivuiSam_form_legend") || '提示风格'"> <el-select v-model="settingForm.tipStyle" style="width: 100%;"> <el-option v-for="item in tipStyleOptions" :label="item.label" :value="item.value" :key="item.value" ></el-option> </el-select> </el-form-item> <el-form-item :label="$t && $t("hivuiSam_form_staField") || '统计字段'"> <el-select v-model="settingForm.staField" style="width: 100%;" @change="changeShowAnalyseList"> <el-option :label="$t && $t("hivuiSam_label_none") || '不显示'" value="none"></el-option> <el-option v-for="item in analyseFields" :label="item.label" :value="item.prop" :key="item.prop" ></el-option> </el-select> </el-form-item> <el-form-item :label="$t && $t("hivuiSam_form_title") || '标题'"> <el-checkbox v-model="settingForm.title" label=""></el-checkbox> </el-form-item> <el-form-item v-if="settingForm.title" :label="$t && $t("hivuiSam_form_mainTitle") || '主标题'"> <el-input v-model="settingForm.mainTitle" /> </el-form-item> <el-form-item v-if="settingForm.title" :label="$t && $t("hivuiSam_form_subTitle") || '副标题'"> <el-input v-model="settingForm.subTitle" /> </el-form-item> <el-form-item :label="$t && $t("hivuiSam_form_weekColumns") || '周栏'"> <el-checkbox v-model="settingForm.weekColumns" label=""></el-checkbox> </el-form-item> <el-form-item v-if="settingForm.weekColumns" :label="$t && $t("hivuiSam_form_column") || '栏数'"> <el-input v-model="settingForm.column" /> </el-form-item> <el-form-item v-if="settingForm.weekColumns" :label="$t && $t("hivuiSam_form_week") || '每栏周期'"> <el-input v-model="settingForm.week" /> </el-form-item> </el-form> </el-tab-pane> </el-tabs> </hi-layout-right> <!-- 图表展示区 --> <hi-layout-center style="heiht: 100%;"> <!-- 图表工具栏 --> <div class="chart-tool"> <i v-if="!showChartMenu" @click="showChartMenu = true" class="el-icon-menu" /> <div v-else class="content"> <i class="iconfont icon-num item" :class="{active: showType == 'num'}" :title="$t && $t("hivuiSam_title_num") || '显示数值'" @click="onChangeShowType('num')" /> <i class="iconfont icon-percentage item" :class="{active: showType == 'percent'}" :title="$t && $t("hivuiSam_title_percent") || '显示百分比'" @click="onChangeShowType('percent')"/> <el-dropdown placement="bottom" @command="changeShowAnalyseList"> <i class="el-icon-s-unfold"></i> <el-dropdown-menu slot="dropdown"> <el-dropdown-item command="none">{{ $t && $t("hivuiSam_label_none") || '不显示' }}</el-dropdown-item> <el-dropdown-item :class="{active: analyseListChecked == item.prop}" v-for="item in analyseFields" :command="item.prop">{{ item.label }}</el-dropdown-item> </el-dropdown-menu> </el-dropdown> <i class="el-icon-close" @click="showChartMenu = false" /> </div> </div> <!-- 深度分析显示区 --> <div class="depth-analysis"> <span>{{ $t && $t('hivuiSam_label_depthAnalysis') || '深度分析:'}}</span> <el-breadcrumb separator-class="el-icon-arrow-right" style="padding: 0 0 0 10px;" > <el-breadcrumb-item v-for="(item,index) in deepArr" :key="item.prop"> <span v-if="item.label.includes(',') && item.selectVal" @click="breadcrumbClick(item.prop)" :class="{ deepActive: index == curIndex }" style="cursor: pointer;"> <span v-for="(it, i) in item.label.split(',')"> {{ it }} <span style="color: rgb(255, 102, 0);margin-left:2px;" v-if="index < curIndex">{{ item.selectVal.split(',')[i] }}<span v-if="i < item.label.split(',').length - 1">,</span></span> </span> </span> <span v-else @click="breadcrumbClick(item.prop)" :class="{ deepActive: index == curIndex }" style="cursor: pointer;"> {{ item.label }} <span style="color: rgb(255, 102, 0);margin-left:2px;" v-if="index < curIndex">{{ item.selectVal }}</span> </span> </el-breadcrumb-item> </el-breadcrumb> </div> <div v-if="showDetail" style="height: calc( 100% - 100px )"> <el-table :data="data" ref="table" height="100%" border stripe :show-summary="showSummary" :summary-method="getSummaries" header-row-class-name="tableHeader" style="width: 100%" > <el-table-column v-if="showIndex" type="index"> </el-table-column> <el-table-column v-for="item in tableColumns" :key="item.prop" :prop="item.prop" :label="item.label" > </el-table-column> </el-table> <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage" :page-sizes="[10, 20, 50, 100]" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="total" > </el-pagination> </div> <div v-if="!showDetail && chartType == 'table'" style="height: calc( 100% - 100px )"> <el-table :data="data" ref="table" height="100%" border stripe @row-dblclick="rowDblclick" :show-summary="showSummary" :summary-method="getSummaries" header-row-class-name="tableHeader" style="width: 100%" > <el-table-column v-if="showIndex" type="index"> </el-table-column> <el-table-column v-for="item in tableColumns" :key="item.prop" :prop="item.prop" :label="item.label" > </el-table-column> </el-table> <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage" :page-sizes="pageSizes" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="total" > </el-pagination> </div> <Pie-chart style="height: calc( 100% - 100px )" v-else-if="!showDetail && chartType == 'pie'" ref="chartConf" :conf="chartConf" ></Pie-chart> <Bar-chart style="height: calc( 100% - 100px )" v-else-if="!showDetail && (chartType == 'bar' || chartType == 'stack') " ref="chartConf" :conf="chartConf" ></Bar-chart> <Line-chart style="height: calc( 100% - 100px )" v-else-if="!showDetail && chartType == 'line'" ref="chartConf" :conf="chartConf" ></Line-chart> <Line-chart style="height: calc( 100% - 100px )" v-else-if="!showDetail && chartType == 'area'" ref="chartConf" :conf="chartConf" ></Line-chart> <!-- 分析列表数据展示区 --> <div class="analyseList" v-show="showAnalyseList "> <div class="analyseList-title"> {{ analyseList_title }} </div> <ul class="analyseList-ul"> <li v-for="(item,index) in data"> <a @click="analyseListOnClick(item,index)">{{ item[curGroupField] }}</a> <span>{{ item[analyseListChecked+'_per'] + '%' }}</span> </li> </ul> </div> </hi-layout-center> </hi-layout> <!-- 分析列 --> <el-dialog :visible.sync="analysisVisible" :title="$t && $t("hivuiSam_title_columnSet") || '分析列设置'" :height="500"> <el-table :data="analysisData" size="small" :height="400"> <el-table-column prop="countField" :label="$t && $t("hivuiSam_table_countField") || '统计字段'"> </el-table-column> <el-table-column prop="tableColumn" :label="$t && $t("hivuiSam_table_tableColumn") || '网格列'" align="center"> <template slot="header" slot-scope="{row}"> <el-checkbox v-model="tableColumnCheck" @change="handelCheckAll('tableColumn')" :label="$t && $t("hivuiSam_table_tableColumn") || '网格列'"></el-checkbox> </template> <template slot-scope="{row}"> <el-checkbox v-model="row.tableColumn"></el-checkbox> </template> </el-table-column> <el-table-column prop="tableColumn" :label="$t && $t("hivuiSam_table_tableColumnCount") || '网格合计列'" align="center"> <template slot="header" slot-scope="{row}"> <el-checkbox v-model="tableColumnCountCheck" @change="handelCheckAll('tableColumnCount')" :label="$t && $t("hivuiSam_table_tableColumnCount") || '网格合计列'"></el-checkbox> </template> <template slot-scope="{row}"> <el-checkbox v-model="row.tableColumnCount"></el-checkbox> </template> </el-table-column> <el-table-column prop="tableColumn" :label="$t && $t("hivuiSam_table_chartColumn") || '图表列'" align="center"> <template slot="header" slot-scope="{row}"> <el-checkbox v-model="chartColumnCheck" @change="handelCheckAll('chartColumn')" :label="$t && $t("hivuiSam_table_chartColumn") || '图表列'"></el-checkbox> </template> <template slot-scope="{row}"> <el-checkbox v-model="row.chartColumn"></el-checkbox> </template> </el-table-column> <el-table-column prop="chartColumnCount" :label="$t && $t("hivuiSam_table_chartColumnCount") || '图表列汇总'" align="center"> <template slot="header" slot-scope="{row}"> <el-checkbox v-model="chartColumnCountCheck" @change="handelCheckAll('chartColumnCount')" :label="$t && $t("hivuiSam_table_chartColumnCount") || '图表列汇总'"></el-checkbox> </template> <template slot-scope="{row}"> <el-checkbox v-model="row.chartColumnCount"></el-checkbox> </template> </el-table-column> <el-table-column :label="$t && $t("hivuiSam_table_operate") || '操作'" width="150"> <template slot-scope="scope"> <el-button size="mini" type="text" @click="columnUp(scope.$index, scope.row)">{{$t && $t("hivuiSam_btn_up") || '上移'}}</el-button> <el-button size="mini" type="text" @click="columnDown(scope.$index, scope.row)">{{$t && $t("hivuiSam_btn_down") || '下移'}}</el-button> </template> </el-table-column> </el-table> </el-dialog> <!-- 分析字段 --> <el-dialog :visible.sync="analysisFieldsVisible" :title="$t && $t("hivuiSam_title_analysisField") || '选择分析字段'" :height="500"> <Pie-chart style="height: 400px;" ref="analysisChart" :conf="analysisChartConf" ></Pie-chart> </el-dialog> <!-- 穿梭框(修改分组字段) --> <el-dialog :visible.sync="transferVisible" :title="$t && $t("hivuiSam_title_groupField") || '选择分组字段'" :height="500" width="640px" center @close="transferClose"> <el-transfer class="sam" v-model="groupFieldsEdit" :data="conf.groupFields" :titles="['来源字段', '目标字段']" target-order="push" :props="{ key: 'prop', label: 'label' }" style="width: 100%;padding: 20px;"> <span slot-scope="{ option }">{{ option.label }} <el-button style="margin-left: 10px;" icon="el-icon-top" type="primary" size="mini" circle @click.stop="transferUp(option)"></el-button> <el-button icon="el-icon-bottom" type="primary" size="mini" circle @click.stop="transferDown(option)"></el-button> </span> </el-transfer> <span slot="footer" class="dialog-footer"> <el-button @click="transferClose" size="small">取 消</el-button> <el-button type="primary" size="small" @click="transferConfirm">确 定</el-button> </span> </el-dialog> </div> </template> <script> import { QueryStyleFactory } from "../templates/query-panel/QueryStyleFactory"; import { GridSingleSelect } from "../templates/GridSingleSelect"; import { getToken } from "../../utils/auth"; import "hi-ui/lib/hi-ui.css"; import { HiLayout, HiLayoutLeft, HiLayoutRight, HiLayoutTop, HiLayoutBottom, HiLayoutCenter } from "hi-ui"; import debounce from 'lodash/debounce' import cloneDeep from 'lodash/cloneDeep' export default { name: "AnalysisSam", props:{ conf:{ type: Object, } }, components:{ HiLayout, HiLayoutLeft, HiLayoutRight, HiLayoutTop, HiLayoutBottom, HiLayoutCenter }, computed: { // 后退 backDisabled(){ return this.curIndex === 0 }, // 前进 goDisabled(){ return this.curIndex == this.deepArr.length - 1 }, // 表格列 tableColumns() { if(this.showDetail){ return this.dataFields }else{ // 组合分组条件分成多个列 let list = this.curGroupField.split(',') // 获取当前分组列 let curGroupArr = this.groupFields.filter(item =>{ return list.includes(item.prop) }) let arr = [] // 执行叠加后,网格添加冗余字段 if(this.superposition){ let newFields = [] let dataList = [] for(let key in this.selectionData){ let selData = this.selectionData[key] let id = selData.id let simple = selData.simple for(let anaField of this.analyseFields){ let obj = {} obj.prop = anaField.prop + '-' + id; obj.label = anaField.label + '-' + simple; newFields.push(obj) } let keyAnalyse = this.analyseFields.map(item =>{ return item.prop }) let data = selData.data.map(sData =>{ for(let key of keyAnalyse){ sData[key+'-'+id] = sData[key] } return sData }) selData.data = data dataList = dataList.concat(data) } // 去重 let keyList = dataList.map(item =>{ return item[this.curGroupField] }) keyList = Array.from(new Set(keyList)) if(keyList && keyList.length){ let newData = [] for(let key in keyList){ let obj = { [this.curGroupField]:keyList[key] }; for(let field of newFields){ obj[field.prop] = 0 } for(let sData of this.selectionData){ // 组合分组 if(this.curGroupField.indexOf(',') > -1){ }else{ let keyArr = sData.data.map(item =>{ return item[this.curGroupField] }) let i = keyArr.indexOf(keyList[key]) if(i > -1){ obj = {...obj, ...sData.data[i]} }else{ for(let j in sData.data[0]){ obj[j+'-'+sData.id] = 0 } } } } newData[key] = obj } this.data = newData }else{ this.data = [] } arr = curGroupArr.concat(newFields) }else{ // 当前分组列+分析列 arr = curGroupArr.concat(this.analyseFields) if(arr && arr.length){ this.sortArr = arr } } arr = arr.filter(item =>{ var show = true this.analysisData.forEach(data =>{ if(data.prop == item.prop){ show = data.tableColumn } }) return show }) return arr } }, showIndex(){ return this.conf && this.conf.showIndex || false }, // 网格是否显示合计行 showSummary(){ let flag = false this.analysisData.some(item =>{ flag = item.tableColumnCount return flag }) return flag }, // 数据列 dataFields(){ return this.conf && this.conf.dataFields || [] }, // 图表配置 chartConf() { debugger let groupBy = this.curGroupField; let calcFields = [] // 系列 var series = []; const tooltipOption = { trigger: 'item', axisPointer: { type: 'shadow' }, } let analysisList = this.analysisData.filter(item =>{ return item.chartColumn }) let showLabel = this.showType == 'none' ? false : true let showPer = this.showType == 'percent' ? true : false let label = { show: showLabel, position: "top", }; if(showPer){ label.formatter = '{c}%' } calcFields = analysisList.map(item =>{ let prop = showPer ? item.prop + '_per' : item.prop let obj = { name: prop, title: item.label } series.push({tooltip: tooltipOption, label: label}) return obj }) let controlName = '' let datas = this.data.map((item) =>{ let obj = {...item} for(let key in obj){ if(typeof(obj[key]) == 'string' && obj[key].includes('%')){ obj[key] = parseFloat(obj[key])/100 }else if(typeof(obj[key]) != 'string' && isNaN(obj[key])){ obj[key] = 0 } } return obj }) // 组合分组条件时,数据添加组合列 if(groupBy.includes(',')){ let keyArr = groupBy.split(','); datas = datas.map(item =>{ let label = [] for(let key of keyArr){ label.push(item[key]) } label=label.join(); item[groupBy] = label return item }) } controlName = this.chartType == "pie" ? "PieChart" : this.chartType == "bar" ? "BarChart" : this.chartType == "stack" ? "BarChart" : this.chartType == "line" ? "LineChart" : this.chartType == "area" ? "LineChart" : 'PieChart' // 区域图 let areaSeries = calcFields.map(item =>{ return { smooth: true, areaStyle: { normal: { color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [{ offset: 0, color: "rgba(30, 231, 231, 0.3)" },{ offset: 1, color: "rgba(30, 231, 231, 0.1)" }]), }, }, label: label, } }) // 饼图 let pieSeries = [] if(this.chartType == "pie"){ let len = calcFields.length if(len > 4){ calcFields = calcFields.filter((item, index)=>{ return index < 4 }) } let formatter = showPer ? '{b}: {d}%' : '{b}: {c}' label = { normal: { show: true, formatter: formatter, position:'outer', alignTo:'labelLine' } } switch(len){ case 1: pieSeries = [{label: label}]; break; case 2: pieSeries = [ { radius: [0,"50%"], center: ["25%", "50%"], label: label, }, { radius: [0,"50%"], center: ["75%", "50%"], label: label, }, ] break; case 3: pieSeries = [ { radius: [0,"50%"], center: ["25%", "50%"], label: label, }, { radius: [0,"35%"], center: ["75%", "30%"], label: label, }, { radius: [0,"35%"], center: ["75%", "70%"], label: label, }, ] break; case 4: pieSeries = [ { radius: [0,"35%"], center: ["25%", "30%"], label: label, }, { radius: [0,"35%"], center: ["25%", "70%"], label: label, }, { radius: [0,"35%"], center: ["75%", "30%"], label: label, }, { radius: [0,"35%"], center: ["75%", "70%"], label: label, }, ] break; default: pieSeries = [ { radius: [0,"35%"], center: ["25%", "30%"], label: label, }, { radius: [0,"35%"], center: ["25%", "70%"], label: label, }, { radius: [0,"35%"], center: ["75%", "30%"], label: label, }, { radius: [0,"35%"], center: ["75%", "70%"], label: label, }, ] break; } } /// 叠加柱图 let stackSeries = calcFields.map(item =>{ label.position = 'inside' return { stack: '总量', label: label, } }) let yAxis = { axisLabel:{ formatter: function(value,index){ return value +'%'; } } } let xAxis = [{ inverse: this.settingForm.xInverse }] let legend = { show: this.settingForm.legend != 1, orient: this.settingForm.legend == 3 ? 'vertical' : 'horizontal', } if(this.settingForm.legend == 3){ legend.top = '20%' legend.right = '3%' }else{ delete legend.top delete legend.right } let tooltip = { show: true, formatter: this.settingForm.tipStyle == 1 ? '{a}: {c}' : this.settingForm.tipStyle == 2 ? '{a}: {d}' : this.settingForm.tipStyle == 3 ? '{a}: {c}<br />{b}' : '{a}: {c}' } let title = { show: this.settingForm.title, text: this.settingForm.mainTitle, subtext: this.settingForm.subTitle, } let option = { legend: legend, toolbox: { show: this.settingForm.toolbox, feature: { dataZoom: { yAxisIndex: "none", title:{zoom:'区域缩放', back:'区域缩放还原'} }, dataView: { readOnly: false, title:'数据视图' }, restore: { title:'还原' }, saveAsImage: { show: true, title: '保存为图片' } } }, tooltip: tooltip, title: title, series: this.chartType == "area" ? areaSeries : this.chartType == "stack" ? stackSeries : this.chartType == "pie" ? pieSeries : series } if(this.chartType != "pie"){ option.xAxis = xAxis; } if(showPer && this.chartType != "pie"){ option.yAxis = yAxis } const conf = { controlName: controlName, controlId: "chart_controlid", height: "100%", isGroupData: true, groupBy: groupBy, datas: datas, calcFields: calcFields, option: option, events:{ click(row){ let _this = this.$parent.$parent.$parent; _this.currentObj = row.data _this.currentObj.prop = _this.curGroupField; if(_this.perspective){ var index = -1 _this.deepArr.forEach((item,i)=>{ if(item.prop == _this.curGroupField){ index = i } }) if(index > -1 && index < _this.deepArr.length - 1){ _this.analysisFieldsVisible = false _this.curIndex = _this.curIndex + 1 _this.currentObj = _this.deepArr[_this.curIndex]; _this.data = _this.currentObj.data _this.curGroupField = _this.currentObj.prop; }else{ _this.analysisChartConf.datas = _this.deepAnalysisFields _this.analysisFieldsVisible = true } }else{ _this.analysisChartConf.datas = _this.deepAnalysisFields _this.analysisFieldsVisible = true } _this.superposition = false } } }; return conf }, // 深度分析字段列表 deepAnalysisFields(){ let fields = this.groupFields if(fields && fields.length == 0){ return [] } let analysisFields = fields.map((item) => { item.value = 1 return item }); // 排除已经统计的分析列 if(this.deepArr && this.deepArr.length > 0){ let arrnew = this.deepArr.slice(0, this.curIndex + 1).map((item) => { return item.prop }); // 多条件的分组 拆开排除 arrnew.forEach(item =>{ if(item.includes(',')){ arrnew.concat(item.split(',')) } }) analysisFields = analysisFields.filter(item =>{ return arrnew.indexOf(item.prop) < 0 }) } // 添加详情 analysisFields.push( { prop: 'detail', label: "详情", value: 1 } ) return analysisFields }, // 查询字段 queryFields(){ let queryFields = [] let fields = this.conf && this.conf.queryFields if(!fields || fields.length == 0){ queryFields = [] }else{ queryFields = fields.map(item =>{ let obj = {} obj.prop = item.prop; obj.label = item.label; if(item.props && item.props.lookup){ let model = item.props.lookup if(item.element === 'hi-select-grid'){ var columns = [] if(model && model.columns && model.columns.length){ columns = model.columns.map(item =>{ item.prop = item.name return item }) } let table = model.tableprops || {} table['columns'] = columns obj.lookup = { type: "data", openstyle: 'selectgrid', bindField: item.prop, lookSelectGrid: { width: 1200, height: 600, table: table, bindField: item.prop }, } if(model && model.sourceDatas){ obj.lookup.lookSelectGrid['tableData'] = model && model.sourceDatas } if(model && model.modelFile){ obj.lookup['lookDataset'] = { modelFilePath: this.conf.dataset.controlId, showSearchField: true } } obj.dbtype = 'dbString' }else if(item.element === 'hi-data-select'){ var columns = [] if(model && model.columns && model.columns.length){ columns = model.columns.map(item =>{ item.prop = item.name return item }) } let queryOptionFields = model.queryOption && model.queryOption.fields let store = model.storeCfg || model.sourceDsCfg let modelFilePath = store.modelFile let fields = store.fields if(!(queryOptionFields && queryOptionFields.length)){ return } let rows = queryOptionFields.map(item =>{ return {children:[ { prop: item.name, label: item.label } ]} }); let cols = queryOptionFields.map(item =>{ return { colWidth: 100} }); let queryPanel = { rows: rows, cols: cols }; let tableColumn = model.columns.map(item =>{ return { prop: item.name, label: item.label } }) // var table = model.tableprops || {} var table = { children:tableColumn, stripe: model.tableprops && model.tableprops.stripe || false } let ds = { controlName: "HcDataset", controlId: modelFilePath, name: model.entityDs, modelFilePath: modelFilePath, _infcPagging: { pageSize: 10, pageNum: 1, returnCount: true }, _infcLoad: { autoActive: true, }, fields: fields, data: [], } obj.lookup = { type: "data", openstyle: 'dialog', birtModel: GridSingleSelect({ mainDataset: ds, hcQueryPanel: queryPanel, hcTable: table }), lookDataset: { modelFilePath: modelFilePath, // 数据模型路径 showSearchField: true }, lookDialog: { title: "", width: 900, height: 600, }, bindField: item.prop, sourceDsId: model.sourceDsId } obj.dbtype = 'dbString' } } // 时间方案 if(item.props && item.element == 'hi-time-scheme'){ obj.dbtype = 'dbDatetime' obj.format = item.props.format obj.element = 'hi-time-scheme' obj.disabledEx = item.disabledEx obj.viewStyle = { viewStyleId: 'DATERANGE', type: item.props.rangeType, format: item.props.format } } return obj }) } return queryFields }, // 数据集字段 fields(){ let fields = this.conf.dataset && this.conf.dataset.config.fields for(let key in this.queryFields){ let prop = this.queryFields[key].prop if(fields[prop] && fields[prop].lookup){ let lookup = Object.assign(fields[prop].lookup, this.queryFields[key].lookup) // 下拉枚举查找 if(lookup.label && lookup.returnFields){ for(let key in lookup.returnFields){ if(lookup.returnFields[key] == lookup.label && lookup.lookSelectGrid){ lookup.bindShowField = key lookup.lookSelectGrid.bindShowField = key } if(lookup.lookSelectGrid && lookup.lookSelectGrid.tableData){ let data = lookup.lookSelectGrid.tableData for(let i in data){ if(data[i][lookup.returnFields[key]]){ data[i][key] = data[i][lookup.returnFields[key]] } } } } } // 数据模型查找 if(lookup.fieldPair){ if(lookup.sourceDsId){ lookup.returnFields = lookup.fieldPair[lookup.sourceDsId].returnFields }else{ let key = Object.keys(lookup.fieldPair)[0] lookup.returnFields = lookup.fieldPair[key].returnFields } } lookup.returnType = "single", fields[prop]['lookup'] = lookup } // 时间方案 if(fields[prop] && this.queryFields[key].element == 'hi-time-scheme'){ let fd = this.queryFields[key] fields[prop].dbtype = 'dbDatetime' fields[prop].format = fd.format fields[prop].disabledEx = fd.disabledEx } } // 应用默认填充表达式 for(let key in fields){ if(fields[key].default && fields[key].default.exps){ fields[key].default['expr'] = fields[key].default.exps } } return fields }, // 数据集 dataset(){ var dataset = {} if(this.conf && this.conf.dataset){ let ds = this.conf.dataset dataset = { controlName: ds.controlName, controlId: ds.controlId, name: ds.name, modelFilePath: ds.modelFilePath, fields: this.fields, _infcLoad: { autoActive: false }, _infcPagging: { returnCount: true, pageSize: 100, pageNum: 1 }, data: [], } } return dataset }, // 查询面板 birtModelRight(){ let rows = this.queryFields.map(item =>{ return {children:[item],colspan: 12} }) let cols = this.queryFields.map(item =>{ return { colWidth: 60 } }) const queryPanel = { rows: rows, cols: cols }; let hcQueryPanel = { controlName: "HcQueryPanel", controlId: "HcQueryPanel_sam", inline: false, dataset: this.dataset && this.dataset.controlId || "dsSam", size: "small", hideBtn: true, style: "width: 100%;", children: [], }; Object.assign(hcQueryPanel, QueryStyleFactory.buildForm(queryPanel) || {}); let birtModelRight = { controlName: "BirtWorkBook", controlId: "BirtWorkBook_right", style: "border-bottom: 1px solid #eee;", showToolBar: false, children: [ { controlName: "BirtSheet", controlId: "BirtSheet_right", name: "sheet0", pageIndex: 0, dataSets: [{ controlName: "HcDataset", controlId: "dsScheme", name: "SysSchemeBizEntity", rowKey: "FGUID", modelFilePath: "/platf/scheme/entity/SysSchemeBizEntity.xml", _infcLoad: { autoActive: false, __zcQuery: true }, _infcPagging: { _isAddingPagging: false, pageSize: -1, }, fields: {}, data: [], }].concat(this.dataset ? this.dataset : []), children: [ { controlName: "BirtFormSheet", controlId: "BirtFormSheet_01", children: [hcQueryPanel] } ] } ], }; return birtModelRight }, // 分组条件(统计字段) groupFields(){ let groupFields = this.conf && cloneDeep(this.conf.groupFields) || [] // 组合分组条件 if(this.curTransferVal && this.curTransferVal.length){ let obj = {} let curTransferLabel = this.curTransferVal.map(item =>{ for(var field of groupFields){ if(field.prop == item){ return field.label } } }) obj = { prop: this.curTransferVal.join(), label: curTransferLabel.join() } groupFields.push(obj) } return groupFields }, // 分析字段 analyseFields(){ return this.conf && this.conf.analyseFields || [] }, // 显示详情 showDetail(){ return this.currentObj.prop == 'detail' }, // 执行叠加按钮 btnDisabled(){ return !this.selectionData || this.selectionData.length < 2 }, analyseList_title(){ if(this.conf.analyseFields && this.conf.analyseFields.length && this.analyseListChecked){ let curField = this.conf.analyseFields.filter(item =>{ return item.prop == this.analyseListChecked })[0] return curField && curField.label || '' }else{ return '' } } }, watch:{ conf:{ deep: true, handler: function(val){ if(val && val.groupFields && !this.groupForm.prop){ this.groupForm.prop = val.groupFields[0] && val.groupFields[0].prop this.curGroupField = this.groupForm.prop } if(val && val.analyseFields && val.analyseFields.length){ this.analysisData=val.analyseFields.map(item =>{ let obj = { prop: item.prop, label: item.label, countField: item.label, tableColumn: true, tableColumnCount: true, chartColumn: true, chartColumnCount: true, } return obj }) } } }, }, data() { return { size: 'small', superposition: false, perspective: false, chartType: "table", groupForm: { prop: "" }, loading: false, currentPage: 1, pageSize: 100, pageSizes: [10,20,50,100], total: 0, data: [], // 排序 sortArr:[], sortIndex:-1, sortType: '', // 分析列 analysisVisible: false, analysisData:[], tableColumnCheck: true, tableColumnCountCheck: true, chartColumnCheck: true, chartColumnCountCheck: true, // 分析字段 analysisFieldsVisible: false, analysisFieldsArr:[], analysisChartConf:{ controlName: "PieChart", controlId: "chart_analysis", height: "100%", isGroupData: true, groupBy: "label", datas: [], calcFields: [ { name: "value", title: "" } ], option: { legend: { show: true } }, events:{ click(row){ debugger; var _this = this.$parent.$parent; _this.analysisChartConf.datas = _this.deepAnalysisFields let data = JSON.parse(JSON.stringify(row.data)) delete data.emphasis // 删除当前分析以后的深度分析 _this.deepArr.splice(_this.curIndex+1, _this.deepArr.length - _this.curIndex - 1) let obj = _this.deepArr[_this.deepArr.length -1] if(_this.currentObj.name){ obj.selectVal = _this.currentObj.name }else{ if(_this.currentObj.prop.includes(',')){ let selectVal = [] let arr = _this.currentObj.prop.split(',') selectVal = arr.map(item =>{ return _this.currentObj[item] }) obj.selectVal = selectVal.join() }else{ obj.selectVal = _this.currentObj[_this.currentObj.prop] } } _this.$set(_this.deepArr,_this.curIndex,obj) _this.$set(_this.deepArr,_this.curIndex + 1, data) _this.curGroupField = data.prop; _this.currentObj = data; _this.curIndex = _this.curIndex + 1; _this.doQuery(); _this.analysisFieldsVisible = false; } } }, // 深度分析 deepArr:[], conf:{}, // 图表当前选中对象 currentObj:{}, // 当前分组字段 curGroupField: '', // 深度分析当前环节下标 curIndex: 0, exportLoading: false, // 穿梭框 transferVisible: false, curTransferVal: [], groupFieldsEdit: [], schemeLoading: false, havingForm:{}, // 分析记录 recordVisible: false, recordData:[], // 已勾选记录 selectionData: [], // 统计方案 schemeData:[], schemeVisible: false, // 是否监听 isMonitor: false, // 底部汇总数据 bottomSummary: {}, // 是否查询面板查询 isQueryModel: false, // 显示图表菜单 showChartMenu: false, showType: 'none', showAnalyseList: false, analyseListChecked: '', // 设置面板 activeName: 'condition', settingForm:{ xInverse: false, toolbox: false, axisMarking: 1, legend: 2, tipStyle: 3, staField: 'none', title: false, mainTitle: '', subTitle: '', weekColumns: false, column: '', week: '', }, axisMarkOptions:[ { label: '不显示', value: 'none' }, { label: '显示值', value: 'num' }, { label: '百分比', value: 'percent' }, ], legendOptions:[ { label: '不显示', value: 1 }, { label: '上边', value: 2 }, { label: '右边', value: 3 }, ], tipStyleOptions:[ { label: '值', value: 1 }, { label: '百分比%', value: 2 }, { label: `值+分类`, value: 3 }, ], } }, updated() { this.$nextTick(() => { this.$refs["table"] && this.$refs["table"].doLayout(); }); }, methods: { // 排序 sortClick(val) { this.sortIndex = val this.doQuery(); }, sortDown(){ this.sortType = 'desc' }, sortUp(){ this.sortType = 'asc' }, // 前进 goCommand(index){ this.curIndex = index; this.currentObj = this.deepArr[index]; this.curGroupField = this.currentObj.prop; this.data = this.currentObj.data }, goClick:debounce(function(){ if(this.curIndex < this.deepArr.length - 1){ this.curIndex = this.curIndex + 1; this.currentObj = this.deepArr[this.curIndex]; this.curGroupField = this.currentObj.prop; this.data = this.currentObj.data } },500), // 后退 backCommand(val){ this.curIndex = val this.currentObj = this.deepArr[val]; this.curGroupField = this.currentObj.prop; this.data = this.currentObj.data }, backClick:debounce(function(){ if(this.curIndex > 0){ this.curIndex = this.curIndex - 1 this.currentObj = this.deepArr[this.curIndex]; this.curGroupField = this.currentObj.prop; this.data = this.currentObj.data } },500), // 深度分析 breadcrumbClick(val) { this.curGroupField = val let arrnew = this.deepArr.map(item =>{ return item.prop }) this.curIndex = arrnew.indexOf(val) this.currentObj = this.deepArr[this.curIndex]; // 数据替换成缓存的数据 this.data = this.currentObj.data }, // 点击表格 rowDblclick(row){ this.currentObj = row this.currentObj.prop = this.curGroupField; this.superposition = false if(this.perspective){ var index = -1 this.deepArr.forEach((item,i)=>{ if(item.prop == this.curGroupField){ index = i } }) if(index > -1 && index < this.deepArr.length - 1){ this.analysisFieldsVisible = false this.curIndex = this.curIndex + 1 this.currentObj = this.deepArr[this.curIndex]; this.data = this.currentObj.data this.curGroupField = this.currentObj.prop; }else{ this.analysisChartConf.datas = this.deepAnalysisFields this.analysisFieldsVisible = true } }else{ this.analysisChartConf.datas = this.deepAnalysisFields this.analysisFieldsVisible = true } }, // 点击查询 doCount() { debugger; // 叠加状态下不执行查询操作 if(this.superposition){ return } // 监听数据集 if(this.dataset){ let ds = this.$refs.BirtWorkBook_right.dataset[this.dataset.controlId] if(!this.isMonitor){ ds && ds.on("afterLoadData", this.afterLoadData); this.isMonitor = true } this.loading = true; let prop = this.groupForm.prop; let fields = this.groupFields.map(item =>{ return item.prop }) this.curGroupField = prop; let index = fields.indexOf(prop) if(this.deepArr.length){ // 如果切换了分组条件,清空深度分析 if(this.deepArr[0] && this.deepArr[0].prop !== prop){ this.deepArr = [] this.currentObj = this.groupFields[index] this.recordData = [] }else{ this.currentObj = this.deepArr[0] } } this.currentPage = 1 let queryModel = ds.getQueryModel() this.doQuery(queryModel); // 添加分析记录 let obj = {} if(Object.keys(queryModel).length === 0){ obj = { id: 'empty', name: this.$t&&this.$t("hivuiSam_name_empty") || '空条件', prop: this.groupForm.prop, } }else{ let keyArr = []; let labelArr = []; for(let key in queryModel){ if(queryModel[key] || queryModel[key] === 0){ keyArr.push(key); // let arr = this.queryFields.filter(item =>{ // return item.prop == key // }) labelArr.push(queryModel[key]); } }; if(keyArr.length && labelArr.length){ obj = { id: keyArr.join() + '_' + labelArr.join(), name: labelArr.join(), prop: this.groupForm.prop, } }else{ obj = { id: 'empty', name: this.$t&&this.$t("hivuiSam_name_empty") || '空条件', prop: this.groupForm.prop, } } } // 判断分析记录中是否含有此条件,有则跳过,无则添加 const ids = this.recordData.map(value=>value.id); if(!ids.includes(obj.id)){ this.isQueryModel = true let simple = this.recordData.length + 1; obj.simple = simple obj.isEdit = false this.recordData.push(obj); }else{ this.isQueryModel = false } // 当前分组加入深度分析 if(index < 0){ this.$message.error('当前分组条件不在分组字段中,请重新配置') }else{ this.$set(this.deepArr,0,this.groupFields[index]) this.curIndex = 0 }; } }, afterLoadData(datas){ let newData = datas let ds = this.$refs.BirtWorkBook_right.dataset[this.dataset.controlId] if(datas && datas.length && this.curGroupField != 'detail'){ newData = datas.map(item =>{ return ds && ds.getFormatRecd(item) }) // 添加百分比数据 newData = newData.map(data =>{ for(let field of this.analyseFields){ let prop = field.prop let percent = prop+'_per' let sum = 0 const values = datas.map(item => Number(item[prop])); if (!values.every(value => isNaN(value))) { sum = values.reduce((prev, curr) => { const value = Number(curr); if (!isNaN(value)) { return prev + curr; } else { return prev; } }, 0); } if(sum && sum > 0){ data[percent] = Number((data[prop]/sum * 100).toFixed(2)) }else{ data[percent] = 0 } } return data }) } this.data = newData // 缓存数据 this.deepArr[this.curIndex].data = newData; // 总条数 this.total = ds._infcPagging.recordCount || this.total; // 底部汇总数据 this.bottomSummary = ds.getBottomSummeryRecd(); // 添加分析记录 if(!this.isQueryModel) return this.recordData[this.recordData.length - 1].data = datas }, // 查询方法 doQuery(model){ let ds = this.$refs.BirtWorkBook_right.dataset[this.dataset.controlId] if(this.showDetail){ ds._infcPagging = { _isPagging: true, pageSize: this.pageSize, pageNum: this.currentPage, returnCount: true }; ds._infcStat = {} ds._infcSort = {} }else{ ds._infcPagging = { _isPagging: true, pageSize: this.pageSize, pageNum: this.currentPage, returnCount: true }; ds._infcStat = { isGroupData: true, groupBy: this.curGroupField, __bottomSummary: true } if(this.sortIndex > -1){ let obj = this.sortArr[this.sortIndex] ds._infcSort.orderBy =[{ name: obj.prop, desc: obj.label, type: this.sortType || 'desc' }] }else{ ds._infcSort.orderBy = [] } if(this.havingForm){ let _infcHaving = {}; for(let item in this.havingForm){ let obj = JSON.parse(JSON.stringify(this.havingForm[item])) let val = obj.value let val2 = obj.value2 if(val === undefined && val === undefined){ }else if((val || val === 0) && (val2 || val2 === 0)){ _infcHaving[item] = obj }else{ if(obj.sign == 'inRange'){ obj.sign = 'lteq' }else{ obj.sign = 'gt' } _infcHaving[item] = obj } } ds._infcHaving = _infcHaving } } if(model){ ds.setQueryModel(model) ds._infcLoad.additionalModel = {}; }else if(this.deepArr && this.deepArr.length > 0){ let queryModel = {} this.deepArr.forEach(item =>{ if(item.prop && item.selectVal){ if(!item.prop.includes(",")){ queryModel[item.prop] = item.selectVal }else{ let arr = item.prop.split(',') arr.forEach((it,i) =>{ queryModel[it] = item.selectVal && item.selectVal.split(',')[i] }) } } }) ds.setAdditionalModel(queryModel) }else{ ds._infcLoad.additionalModel = {}; ds._infcLoad.queryModel = {} } ds.query(); this.loading = false; }, // 重置 reset() { this.$refs.groupForm.resetFields(); this.$refs.havingForm.resetFields(); this.havingForm = JSON.parse(JSON.stringify(this.conf.havingForm)); this.curTransferVal = [] this.groupForm.prop = this.groupFields[0] && this.groupFields[0].prop; var queryPanel = this.$refs.BirtWorkBook_right.$children[0].$children[0].$children[0].$children[0].$children[0].$children[0]; queryPanel.reset(); let ds = this.$refs.BirtWorkBook_right.dataset[this.dataset.controlId] ds._infcLoad.queryModel={} }, handleSizeChange(val) { this.pageSize = val this.doQuery() }, handleCurrentChange(val) { this.currentPage = val this.doQuery() }, // 切换图表 chartTypeChange(command) { this.chartType = command; }, // 打开分析列 analysisClick(){ this.analysisVisible = true }, // 分析列全选 handelCheckAll(val){ let _this = this this.analysisData = this.analysisData.map(item => { if(val == 'tableColumn') { item.tableColumn = _this.tableColumnCheck } if(val == 'tableColumnCount') { item.tableColumnCount = _this.tableColumnCountCheck } if(val == 'chartColumn') { item.chartColumn = _this.chartColumnCheck } if(val == 'chartColumnCount') { item.chartColumnCount = _this.chartColumnCountCheck } return item }) }, // 分析列上移 columnUp(index,row){ let arr = this.analysisData if(index > 0){ arr.splice(index - 1, 1, ...arr.splice(index, 1, arr[index - 1])); } }, columnDown(index, row){ let arr = this.analysisData if(index < arr.length){ arr.splice(index, 1, ...arr.splice(index + 1, 1, arr[index])); }; }, // 刷新 refresh(){ this.doQuery(); this.$refs.chartConf && this.$refs.chartConf.refreshChart(); }, // 导出 exportExcel() { let param = { pageNum: -1, pageSize: -1, __slaveExport: false, }; let __body = {}; let ds = this.$refs.BirtWorkBook_right.dataset[this.dataset.controlId] var cdion = ds.lastLoadCdion console.log('cdion', cdion) if (cdion) { __body['queryCdions'] = JSON.parse(cdion); } if(this.curGroupField !== 'detail'){ __body['groupBy'] = this.curGroupField } param['modelFilePath'] = ds['modelFilePath']; param['__funcpath'] = ds['__funcpath']; param.__body = __body let sheetStyle = {} let cells = [] let columns = [] this.tableColumns.forEach(item => { cells.push({ title: item.label, colspan: 1, rowspan: 1 }) columns.push({ field: item.prop, width: 170 }) }); sheetStyle = { name: '统计分析', titleRows: [ { cells: cells } ], columns: columns } param.__sheetStyle = sheetStyle var time = new Date().getTime() var title = `统计分析${time}` var data = { title: title, __sheetDatas: JSON.stringify([param]) } var url = this.$HI.exportUrl this.exportLoading = true this.$HI.request.post(url,data).then((res) =>{ console.log('res', res) this.exportLoading = false if(res.status == 200){ let token = getToken(); var url = this.$HI.download + `?path=${res.dataPack.path}&access_token=${token}` url = url.replace(/\\/g,"/") const a = document.createElement('a') //创建a标签 a.style.display = 'none' a.href = url // 指定下载链接 a.download = title //指定下载文件名 a.click() //触发下载 } }).catch((e) =>{ this.exportLoading = false }) }, // 打开穿梭框 showtransfer(){ this.groupFieldsEdit = JSON.parse(JSON.stringify(this.curTransferVal)) this.transferVisible = true }, transferConfirm(){ if(this.groupFieldsEdit && this.groupFieldsEdit.length > 1){ this.curTransferVal = JSON.parse(JSON.stringify(this.groupFieldsEdit)) this.groupForm.prop = this.curTransferVal.join(); this.curGroupField = this.groupForm.prop; this.transferVisible = false }else{ this.$message.error("该分组选项已存在") } }, transferClose(){ this.transferVisible = false this.groupFieldsEdit = JSON.parse(JSON.stringify(this.curTransferVal)) }, transferUp(option){ let arr = this.groupFieldsEdit let index = this.groupFieldsEdit.indexOf(option.prop) if(index > 0){ arr.splice(index - 1, 1, ...arr.splice(index, 1, arr[index - 1])); } }, transferDown(option){ let arr = this.groupFieldsEdit let index = this.groupFieldsEdit.indexOf(option.prop) if(index < arr.length){ arr.splice(index, 1, ...arr.splice(index + 1, 1, arr[index])); }; }, // 合计列 getSummaries(parma){ const { columns, data } = parma; const sums = []; // let arr = this.analyseFields.map(item =>{ // return item.prop // }) columns.forEach((column, index) => { let show = true this.analysisData.forEach(item =>{ if(item.prop == column.property){ show = item.tableColumnCount } }) // if(arr.includes(column.property) && show){ // let values = data.map(item => Number(item[column.property])); // sums[index] = values.reduce((prev, curr) => { // const value = Number(curr); // if (!isNaN(value)) { // return prev + curr; // } else { // return prev; // } // }, 0); if(this.bottomSummary && this.bottomSummary[column.property] && show){ sums[index] = this.bottomSummary[column.property] sums[index] = Math.round(sums[index]*100)/100; }else{ sums[index] = ''; } }) sums[0] = this.$t && this.$t("hivuiSam_name_sum") || '统计' return sums; }, // 分析列表 handleEdit(index, row){ row.isEdit = true this.recordData[index] = row }, handleConfirm(index, row){ row.isEdit = false this.recordData[index] = row }, handleDelete(index, row){ this.recordData.splice(index, 1) }, // 执行叠加 doClick(){ this.superposition = true this.recordVisible = false this.curGroupField = this.recordData[0].prop this.curIndex = 0 }, // 分析记录勾选 handleSelectionChange(row){ this.selectionData = row }, // 双击 recordDblClick(row){ this.curIndex = 0 this.data = row.data this.deepArr[0].data = row.data this.currentObj.data = row.data }, signChange(val,sign){ this.havingForm[val]['sign'] = sign }, // 统计方案 schemeRowClick(row){ if(row.FCONTENT){ this.reset(); let conf = JSON.parse(row.FCONTENT); if(conf.deepList){ this.deepArr = conf.deepList } if(conf.curGroupField){ this.curGroupField = conf.curGroupField } if(conf.queryModel){ let ds = this.$refs.BirtWorkBook_right.dataset[this.dataset.controlId] ds.setQueryModel(conf.queryModel) let queryPanel = this.$refs.BirtWorkBook_right.$children[0].$children[0].$children[0].$children[0].$children[0].$children[0]; queryPanel.bindModel = conf.queryModel } if(conf.groupForm){ this.groupForm = conf.groupForm } if(conf.havingForm){ this.havingForm = conf.havingForm } if(conf.sortIndex){ this.sortIndex = conf.sortIndex } if(conf.sortType){ this.sortType = conf.sortType } if(conf.data){ this.data = conf.data } if(conf.currentObj){ this.currentObj = conf.currentObj } if(conf.total){ this.total = conf.total } if(conf.curTransferVal){ this.curTransferVal = conf.curTransferVal } if(conf.perspective){ this.perspective = conf.perspective }else{ this.perspective = false } if(conf.superposition){ this.superposition = conf.superposition }else{ this.superposition = false } } this.schemeVisible = false this.doCount() }, showSchemeData(){ let url = '/data/query'; let funcurl = window.location.pathname || '' let queryCdions = { join: 'and', items: [ { sign: "eq", name: "FFUNCURL", dataType: "string", value: funcurl, enable: true, }, ], } var data = { modelFilePath: "/platf/scheme/entity/SysSchemeBizEntity.xml", pageSize:-1, __body:JSON.stringify({queryCdions: queryCdions}), __bottomSummary: false, // __funcpath: "/eap5csxm/KongJianCeShi/TongJiFenXi/TongJiFenXiCeShi/func/TongJiFenXiRenYuan.func", __zcQuery: true } this.$HI.request.post(url, data).then((res) =>{ this.schemeData = res.dataPack && res.dataPack.rows }).catch(e=>{ console.error(e) }) }, // 保存方案 saveScheme(){ let ds = this.$refs.BirtWorkBook_right.dataset[this.dataset.controlId] let content = { deepList: this.deepArr, curGroupField: this.curGroupField, queryModel: ds.getQueryModel(), havingForm: this.havingForm, groupForm: this.groupForm, sortIndex: this.sortIndex, sortType: this.sortType, data: this.data, currentObj:this.currentObj, perspective: this.perspective, superposition: this.superposition, total:this.total, curTransferVal:this.curTransferVal } let data = { pushType: "add", dataset: "dsScheme", pushAddType: "map", data:[{ FFUNCURL: window.location.pathname || window.location.href, FCONTENT: JSON.stringify(content), }] } this.openByPath('/platf/scheme/func/add.func', {__push: data,__funcpath:'/platf/scheme/func/add.func'},{title: '方案保存'}) }, handleSchemeDelete(index, data){ let url = '/data/save' let removeData = { ...data, $state:"rsDelete", $old:data } let body = [{ modelFilePath:"/platf/scheme/entity/SysSchemeBizEntity.xml", data:[removeData] }] let rData = { __body: JSON.stringify(body) } this.$HI.request.post(url, rData).then((res) =>{ this.$message.success('方案删除成功') this.schemeData.splice(index, 1) }).catch(e=>{ this.$message.error(e) }) }, // 保存方案下推 openByPath(path, query, { title, target } = {}) { query = query || {}; let queryT = {} Object.assign(queryT, query || {}); if (title) queryT.__title = title; if (target) { target = target === '_blank' ? (new Date()).valueOf() : target queryT.__target = target; } if(this.$router){ this.$router.push({ path, query: queryT }) }else{ if(top.window.SysPage && top.window.SysPage.newPage){ top.window.SysPage.newPage(title, path, queryT, "post") }else{ this.createForm(path, "_self", queryT.__push.data[0]) } } }, createForm(url, opentype, paramters) { //创建form表单 let me = this; let id = "samuuid" var formid = `${id}_form`; var temp_form = null; if (document.getElementById(formid)) { temp_form = document.getElementById(formid); temp_form.method = me.postType; temp_form.action = url; // for (var item in paramters) { // var inputObj = document.getElementById(`${id}_${item}`); // if (inputObj) { // inputObj.value = paramters[item]; // } // } } else { temp_form = document.createElement("form"); temp_form.id = `${id}_form`; temp_form.action = url; //如需打开新窗口,form的target属性要设置为'_blank' temp_form.target = opentype; //打开方式 temp_form.method = me.postType; temp_form.style.display = "none"; document.body.appendChild(temp_form); } //添加参数 for (var item in paramters) { var inputObj = document.getElementById(`${id}_${item}`); if (inputObj) { inputObj.value = paramters[item]; } else { var opt = document.createElement("input"); opt.type = "hidden"; opt.id = `${id}_${item}`; //opt.id= opt.name = item; opt.value = paramters[item]; temp_form.appendChild(opt); } } //提交数据 temp_form.submit(); }, // 选择显示数值还是百分比 onChangeShowType(type){ this.showType = this.showType == type ? 'none' : type }, // 右侧工具条显示列表选择显示不同分析字段的数据 changeShowAnalyseList(command){ this.analyseListChecked = command this.settingForm.staField = command if(command == 'none'){ this.showAnalyseList = false }else{ this.showAnalyseList = true } }, // 点击选择深度分析 analyseListOnClick(row, index){ let _this = this _this.currentObj = row _this.currentObj.prop = this.curGroupField if(_this.perspective){ var index = -1 _this.deepArr.forEach((item,i)=>{ if(item.prop == _this.curGroupField){ index = i } }) if(index > -1 && index < _this.deepArr.length - 1){ _this.analysisFieldsVisible = false _this.curIndex = _this.curIndex + 1 _this.currentObj = _this.deepArr[_this.curIndex]; _this.data = _this.currentObj.data _this.curGroupField = _this.currentObj.prop; }else{ _this.analysisChartConf.datas = _this.deepAnalysisFields _this.analysisFieldsVisible = true } }else{ _this.analysisChartConf.datas = _this.deepAnalysisFields _this.analysisFieldsVisible = true } _this.superposition = false } }, mounted() { } }; </script> <style> .birtModelRight .el-main{ padding: 5px !important; } .birtModelRight table.zhc-birt-data-list{ table-layout: auto !important; /* border-collapse: initial !important; */ /* border-spacing: revert !important; */ } .el-transfer.sam .el-transfer-panel:nth-child(1) button{ display: none; } .el-dropdown.disabled .el-button, .el-dropdown.disabled .el-button:hover{ cursor: not-allowed; color: #C0C4CC; cursor: not-allowed; background-image: none; background-color: #FFF; border-color: #EBEEF5; } .tableHeader th, .tableHeader tr{ background: linear-gradient(0deg,rgba(224,240,255,1), rgba(240,247,255,1)); } .el-form-item__label{ overflow: hidden; white-space: nowrap; text-overflow: ellipsis; } .recordPop{ text-align: center; } .right-tabs{ height: 100%; } .el-tabs--border-card .el-tabs__content { height: calc(100% - 56px); overflow: auto; } .el-tabs--border-card .el-tabs__content .el-tab-pane{ height: 100%; } </style> <style lang="scss" scoped> .container { position: relative; display: flex; flex-direction: column; height: 100%; padding: 20px; } .btn-toolbar { * + * { margin-left: 10px; margin-right: 0; } } .el-dropdown-menu__item { min-width: 90px; } .center-content { height: 100%; width: 100%; padding: 10px; box-sizing: border-box; } .depth-analysis { display: flex; align-items: center; padding: 10px; } .el-breadcrumb__item a { cursor: pointer !important; } .deepActive{ color: #06c; font-weight: 600; } .sortActive{ color: rgb(33, 235, 141); font-weight: 600; } >>>.el-dropdown-menu__item:focus, .el-dropdown-menu__item:not(.is-disabled):hover{ background: initial; color: initial; } .el-dropdown-menu__item i{ font-weight: 600; margin: 0 0 0 5px; } .el-dropdown-menu__item i:hover { color: rgb(33, 235, 141); } .birtModelRight .el-main{ padding: 5px !important; } .el-icon-edit{ right: 30px; position: absolute; z-index: 1; line-height: 30px; cursor: pointer; } >>>.el-dropdown.disabled .el-button, >>>.el-dropdown.disabled .el-button:hover{ cursor: not-allowed; color: #C0C4CC; cursor: not-allowed; background-image: none; background-color: #FFF; border-color: #EBEEF5; } .chart-tool{ position: absolute; right: 10px; top:5px; i{ cursor: pointer; color: #06c; } .el-icon-close{ color: #f0797f; } .el-icon-close:hover{ color: #f50814; } .content{ margin-top: 5px; display: flex; justify-content: space-around; align-items: center; width: 150px; height: 30px; line-height: 30px; border: 1px solid #d8d863; border-radius: 5px; background: rgba(237,241,244,0.4); .iconfont{ height: 20px; line-height: 12px; } .item{ padding: 3px; border: 1px solid transparent; border-radius: 3px; } .item:hover,.item:active, .item.active{ border-color: #08df5d; } } } .el-dropdown-menu__item.active{ background-color: #ecf5ff; color: #66b1ff; } >>>.el-dropdown-menu__item:focus, .el-dropdown-menu__item:not(.is-disabled):hover { background-color: #ecf5ff; color: #66b1ff; } .analyseList{ position: absolute; right: 10px; top: 45px; width: 150px; border: 1px solid #d8d863; background: #fff; .analyseList-title{ border-bottom: 1px dotted #b5b5ad; color: #000; padding: 0 10px; } .analyseList-ul{ list-style: none; margin: 0 !important; padding: 0 10px; li{ display: flex; justify-content: space-between; align-items: center; a:hover{ text-decoration: underline; color: #FF6600; } } } } </style>
<template> <div class="container"> <!-- 工具条 --> <div class="btn-toolbar"> <!-- 后退 --> <el-dropdown split-button :size="size" :class="{disabled: backDisabled}" :disabled="backDisabled" @command="backCommand" @click="backClick"> <i class="el-icon-back"></i>后退 <el-dropdown-menu slot="dropdown"> <el-dropdown-item v-for="(item,index) in deepArr" :key="item.prop" :command="index" v-if="index < curIndex">{{ item.label }}</el-dropdown-item> </el-dropdown-menu> </el-dropdown> <!-- 前进 --> <el-dropdown split-button :size="size" :class="{disabled: goDisabled}" :disabled="goDisabled" @command="goCommand" @click="goClick"> <i class="el-icon-right"></i>前进 <el-dropdown-menu slot="dropdown"> <el-dropdown-item v-for="(item,index) in deepArr" :key="item.prop" :command="index" v-if="index > curIndex">{{ item.label }}</el-dropdown-item> </el-dropdown-menu> </el-dropdown> <!-- 排序 --> <el-dropdown split-button :size="size" class="sort" @command="sortClick"> <i class="el-icon-sort"></i>排序 <el-dropdown-menu slot="dropdown"> <el-dropdown-item :command="-1">不排序</el-dropdown-item> <el-dropdown-item v-for="(item, index) in sortArr" :key="item.prop" :command="index">{{ item.label }} <i class="el-icon-sort-down" :class="{ sortActive: index == sortIndex && sortType =='desc' }" @click="sortDown"></i> <i class="el-icon-sort-up" :class="{ sortActive: index == sortIndex && sortType =='asc' }" @click="sortUp"></i> </el-dropdown-item> </el-dropdown-menu> </el-dropdown> <!-- 列设置 --> <el-button icon="el-icon-setting" :size="size" @click="analysisClick">列设置</el-button> <!-- 图表 --> <el-dropdown :size="size" @command="chartTypeChange"> <el-button :size="size"> <i class="el-icon-s-data"></i> 图表<i class="el-icon-arrow-down el-icon--right"></i> </el-button> <el-dropdown-menu slot="dropdown"> <el-dropdown-item :class="{active: chartType == 'table'}" command="table">表格</el-dropdown-item> <el-dropdown-item :class="{active: chartType == 'pie'}" command="pie">饼图</el-dropdown-item> <el-dropdown-item :class="{active: chartType == 'bar'}" command="bar">柱图</el-dropdown-item> <el-dropdown-item :class="{active: chartType == 'line'}" command="line">线图</el-dropdown-item> <el-dropdown-item :class="{active: chartType == 'area'}" command="area">区域图</el-dropdown-item> <el-dropdown-item :class="{active: chartType == 'stack'}" command="stack">叠加柱图</el-dropdown-item> </el-dropdown-menu> </el-dropdown> <!-- 刷新 --> <el-button icon="el-icon-refresh" :size="size" @click="refresh">刷新</el-button> <!-- 分析记录 --> <el-popover placement="bottom" popper-class="recordPop" v-model="recordVisible"> <el-table :data="recordData" @row-dblclick="recordDblClick" @selection-change="handleSelectionChange"> <el-table-column type="selection" width="55"> </el-table-column> <el-table-column min-width="150" prop="name" label="方案名称"> <template slot-scope="scope"> <el-input v-if="scope.row.isEdit" v-model="scope.row.name"></el-input> <span v-else>{{ scope.row.name }}</span> </template> </el-table-column> <el-table-column width="100" prop="simple" label="缩写"> <template slot-scope="scope"> <el-input v-model="scope.row.simple"></el-input> </template> </el-table-column> <el-table-column label="操作" width="150"> <template slot-scope="scope"> <el-button size="mini" type="text" v-if="!scope.row.isEdit" @click="handleEdit(scope.$index, scope.row)">编辑</el-button> <el-button size="mini" type="text" v-else @click="handleConfirm(scope.$index, scope.row)">确定</el-button> <el-button size="mini" type="text" style="color:red;" @click.stop="handleDelete(scope.$index, scope.row)">删除</el-button> </template> </el-table-column> </el-table> <el-button type="primary" size="mini" icon="el-icon-check" style="margin: 10px 0 0;" @click.stop="doClick" :disabled="btnDisabled">执行叠加</el-button> <el-button slot="reference" icon="el-icon-edit-outline" :size="size">分析记录</el-button> </el-popover> <!-- 统计方案 --> <el-popover placement="bottom" v-model="schemeVisible"> <el-table size="mini" :data="schemeData" @row-click="schemeRowClick"> <el-table-column width="150" prop="FSCHEMENAME" label="方案列表"></el-table-column> <el-table-column label="操作" width="150"> <template slot-scope="scope"> <el-button size="mini" type="text" style="color:red;" @click.stop="handleSchemeDelete(scope.$index, scope.row)">删除</el-button> </template> </el-table-column> </el-table> <el-button slot="reference" icon="el-icon-edit-outline" :size="size" @click="showSchemeData">方案列表</el-button> </el-popover> <!-- 叠加 --> <el-checkbox v-model="superposition" label="叠加" border :size="size" ></el-checkbox> <!-- 透视 --> <el-checkbox v-model="perspective" label="直接透视" border :size="size" ></el-checkbox> <el-button icon="el-icon-download" :size="size" :disabled="this.data && this.data.length == 0" :loading="exportLoading" @click="exportExcel">导出excel</el-button> <el-button icon="el-icon-save" :size="size" :loading="schemeLoading" @click="saveScheme">保存方案</el-button> </div> <!-- 内容区 --> <hi-layout :is-fit="true" style="heiht: 100%;"> <!-- 右侧查询面板 --> <hi-layout-right size="300" title="面板"> <el-tabs v-model="activeName" class="right-tabs" type="border-card" @tab-click="handleClick"> <el-tab-pane label="条件面板" name="condition"> <div style="height: calc( 100% - 342px );overflow: auto;border:none;"> <birt-work-book style="min-height: calc( 100% - 342px );" :conf="birtModelRight" :ref="birtModelRight.controlId" class="birtModelRight" ></birt-work-book> </div> <el-divider>汇总条件</el-divider> <div style="height: 180px;overflow:auto;"> <el-form @submit.native.prevent ref="havingForm" style="padding: 10px 10px 0 0;" :model="havingForm" label-width="80px" > <el-form-item v-for="(val,name,index) in havingForm" :key="name"> <span slot="label" :title="val.label"> {{ val.label }} </span> <el-col :span="10"> <el-input type="number" v-model="havingForm[name].value" size="mini" controls-position="right" @change="handleChange" :min="0"></el-input> </el-col> <el-col class="line" :span="2">-</el-col> <el-col :span="10"> <el-input type="number" v-model="havingForm[name].value2" size="mini" controls-position="right" @change="handleChange" :min="0"></el-input> </el-col> <el-col class="line" :span="2" style="text-align:center;"> <el-button v-if="val.sign == 'inRange'" size="mini" type="text" @click="signChange(name,'outRange')">内</el-button> <el-button v-else size="mini" type="text" @click="signChange(name,'inRange')">外</el-button> </el-col> </el-form-item> </el-form> </div> <el-form @submit.native.prevent ref="groupForm" style="padding: 10px 10px 0 0;" :model="groupForm" label-width="80px" > <el-form-item label="分组条件"> <i class="el-icon-edit" @click="showtransfer"></i> <el-select v-model="groupForm.prop" style="width: 100%;" placeholder="请选择分组条件"> <el-option v-for="item in groupFields" :label="item.label" :value="item.prop" :key="item.prop" ></el-option> </el-select> </el-form-item> <el-form-item> <el-button type="primary" size="mini" :loading="loading" @click="doCount" >执行查询</el-button > <el-button size="mini" @click="reset">重置</el-button> </el-form-item> </el-form> </el-tab-pane> <el-tab-pane label="设置面板" name="setting"> <el-form @submit.native.prevent ref="settingForm" style="padding: 10px 10px 0 0;" :model="settingForm" label-width="90px"> <el-form-item label="横轴翻转"> <el-checkbox v-model="settingForm.xInverse" label=""></el-checkbox> </el-form-item> <el-form-item label="显示工具条"> <el-checkbox v-model="settingForm.toolbox" label=""></el-checkbox> </el-form-item> <el-form-item label="轴标记"> <el-select v-model="showType" style="width: 100%;" placeholder="请选择分组条件"> <el-option v-for="item in axisMarkOptions" :label="item.label" :value="item.value" :key="item.value" ></el-option> </el-select> </el-form-item> <el-form-item label="系列名"> <el-select v-model="settingForm.legend" style="width: 100%;" placeholder="请选择分组条件"> <el-option v-for="item in legendOptions" :label="item.label" :value="item.value" :key="item.value" ></el-option> </el-select> </el-form-item> <el-form-item label="提示风格"> <el-select v-model="settingForm.tipStyle" style="width: 100%;" placeholder="请选择分组条件"> <el-option v-for="item in tipStyleOptions" :label="item.label" :value="item.value" :key="item.value" ></el-option> </el-select> </el-form-item> <el-form-item label="统计字段"> <el-select v-model="settingForm.staField" style="width: 100%;" placeholder="请选择分组条件" @change="changeShowAnalyseList"> <el-option label="不显示" value="none"></el-option> <el-option v-for="item in analyseFields" :label="item.label" :value="item.prop" :key="item.prop" ></el-option> </el-select> </el-form-item> <el-form-item label="标题"> <el-checkbox v-model="settingForm.title" label=""></el-checkbox> </el-form-item> <el-form-item v-if="settingForm.title" label="主标题"> <el-input v-model="settingForm.mainTitle" /> </el-form-item> <el-form-item v-if="settingForm.title" label="副标题"> <el-input v-model="settingForm.subTitle" /> </el-form-item> <el-form-item label="周栏"> <el-checkbox v-model="settingForm.weekColumns" label=""></el-checkbox> </el-form-item> <el-form-item v-if="settingForm.weekColumns" label="栏数"> <el-input v-model="settingForm.column" /> </el-form-item> <el-form-item v-if="settingForm.weekColumns" label="每栏周期"> <el-input v-model="settingForm.week" /> </el-form-item> </el-form> </el-tab-pane> </el-tabs> </hi-layout-right> <!-- 图表展示区 --> <hi-layout-center style="heiht: 100%;"> <!-- 图表工具栏 --> <div class="chart-tool"> <i v-if="!showChartMenu" @click="showChartMenu = true" class="el-icon-menu" /> <div v-else class="content"> <i class="iconfont icon-num item" :class="{active: showType == 'num'}" title="显示数值" @click="onChangeShowType('num')" /> <i class="iconfont icon-percentage item" :class="{active: showType == 'percent'}" title="显示百分比" @click="onChangeShowType('percent')"/> <el-dropdown placement="bottom" @command="changeShowAnalyseList"> <i class="el-icon-s-unfold"></i> <el-dropdown-menu slot="dropdown"> <el-dropdown-item command="none">不显示</el-dropdown-item> <el-dropdown-item :class="{active: analyseListChecked == item.prop}" v-for="item in analyseFields" :command="item.prop">{{ item.label }}</el-dropdown-item> </el-dropdown-menu> </el-dropdown> <i class="el-icon-close" @click="showChartMenu = false" /> </div> </div> <!-- 深度分析显示区 --> <div class="depth-analysis"> <span>深度分析:</span> <el-breadcrumb separator-class="el-icon-arrow-right" style="padding: 0 0 0 10px;" > <el-breadcrumb-item v-for="(item,index) in deepArr" :key="item.prop"> <span v-if="item.label.includes(',') && item.selectVal" @click="breadcrumbClick(item.prop)" :class="{ deepActive: index == curIndex }" style="cursor: pointer;"> <span v-for="(it, i) in item.label.split(',')"> {{ it }} <span style="color: rgb(255, 102, 0);margin-left:2px;" v-if="index < curIndex">{{ item.selectVal.split(',')[i] }}<span v-if="i < item.label.split(',').length - 1">,</span></span> </span> </span> <span v-else @click="breadcrumbClick(item.prop)" :class="{ deepActive: index == curIndex }" style="cursor: pointer;"> {{ item.label }} <span style="color: rgb(255, 102, 0);margin-left:2px;" v-if="index < curIndex">{{ item.selectVal }}</span> </span> </el-breadcrumb-item> </el-breadcrumb> </div> <div v-if="showDetail" style="height: calc( 100% - 100px )"> <el-table :data="data" ref="table" height="100%" border stripe :show-summary="showSummary" :summary-method="getSummaries" header-row-class-name="tableHeader" style="width: 100%" > <el-table-column v-if="showIndex" type="index"> </el-table-column> <el-table-column v-for="item in tableColumns" :key="item.prop" :prop="item.prop" :label="item.label" > </el-table-column> </el-table> <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage" :page-sizes="[10, 20, 50, 100]" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="total" > </el-pagination> </div> <div v-if="!showDetail && chartType == 'table'" style="height: calc( 100% - 100px )"> <el-table :data="data" ref="table" height="100%" border stripe @row-dblclick="rowDblclick" :show-summary="showSummary" :summary-method="getSummaries" header-row-class-name="tableHeader" style="width: 100%" > <el-table-column v-if="showIndex" type="index"> </el-table-column> <el-table-column v-for="item in tableColumns" :key="item.prop" :prop="item.prop" :label="item.label" > </el-table-column> </el-table> <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage" :page-sizes="pageSizes" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="total" > </el-pagination> </div> <Pie-chart style="height: calc( 100% - 100px )" v-else-if="!showDetail && chartType == 'pie'" ref="chartConf" :conf="chartConf" ></Pie-chart> <Bar-chart style="height: calc( 100% - 100px )" v-else-if="!showDetail && (chartType == 'bar' || chartType == 'stack') " ref="chartConf" :conf="chartConf" ></Bar-chart> <Line-chart style="height: calc( 100% - 100px )" v-else-if="!showDetail && chartType == 'line'" ref="chartConf" :conf="chartConf" ></Line-chart> <Line-chart style="height: calc( 100% - 100px )" v-else-if="!showDetail && chartType == 'area'" ref="chartConf" :conf="chartConf" ></Line-chart> <!-- 分析列表数据展示区 --> <div class="analyseList" v-show="showAnalyseList "> <div class="analyseList-title"> {{ analyseList_title }} </div> <ul class="analyseList-ul"> <li v-for="(item,index) in data"> <a @click="analyseListOnClick(item,index)">{{ item[curGroupField] }}</a> <span>{{ item[analyseListChecked+'_per'] + '%' }}</span> </li> </ul> </div> </hi-layout-center> </hi-layout> <!-- 分析列 --> <el-dialog :visible.sync="analysisVisible" title="分析列设置" :height="500"> <el-table :data="analysisData" size="small" :height="400"> <el-table-column prop="countField" label="统计字段"> </el-table-column> <el-table-column prop="tableColumn" label="网格列" align="center"> <template slot="header" slot-scope="{row}"> <el-checkbox v-model="tableColumnCheck" @change="handelCheckAll('tableColumn')" label="网格列"></el-checkbox> </template> <template slot-scope="{row}"> <el-checkbox v-model="row.tableColumn"></el-checkbox> </template> </el-table-column> <el-table-column prop="tableColumn" label="网格合计列" align="center"> <template slot="header" slot-scope="{row}"> <el-checkbox v-model="tableColumnCountCheck" @change="handelCheckAll('tableColumnCount')" label="网格合计列"></el-checkbox> </template> <template slot-scope="{row}"> <el-checkbox v-model="row.tableColumnCount"></el-checkbox> </template> </el-table-column> <el-table-column prop="tableColumn" label="图表列" align="center"> <template slot="header" slot-scope="{row}"> <el-checkbox v-model="chartColumnCheck" @change="handelCheckAll('chartColumn')" label="图表列"></el-checkbox> </template> <template slot-scope="{row}"> <el-checkbox v-model="row.chartColumn"></el-checkbox> </template> </el-table-column> <el-table-column prop="chartColumnCount" label="图表列汇总" align="center"> <template slot="header" slot-scope="{row}"> <el-checkbox v-model="chartColumnCountCheck" @change="handelCheckAll('chartColumnCount')" label="图表列汇总"></el-checkbox> </template> <template slot-scope="{row}"> <el-checkbox v-model="row.chartColumnCount"></el-checkbox> </template> </el-table-column> <el-table-column label="操作" width="150"> <template slot-scope="scope"> <el-button size="mini" type="text" @click="columnUp(scope.$index, scope.row)">上移</el-button> <el-button size="mini" type="text" @click="columnDown(scope.$index, scope.row)">下移</el-button> </template> </el-table-column> </el-table> </el-dialog> <!-- 分析字段 --> <el-dialog :visible.sync="analysisFieldsVisible" title="选择分析字段" :height="500"> <Pie-chart style="height: 400px;" ref="analysisChart" :conf="analysisChartConf" ></Pie-chart> </el-dialog> <!-- 穿梭框(修改分组字段) --> <el-dialog :visible.sync="transferVisible" title="选择分组字段" :height="500" width="640px" center @close="transferClose"> <el-transfer class="sam" v-model="groupFieldsEdit" :data="conf.groupFields" :titles="['来源字段', '目标字段']" target-order="push" :props="{ key: 'prop', label: 'label' }" style="width: 100%;padding: 20px;"> <span slot-scope="{ option }">{{ option.label }} <el-button style="margin-left: 10px;" icon="el-icon-top" type="primary" size="mini" circle @click.stop="transferUp(option)"></el-button> <el-button icon="el-icon-bottom" type="primary" size="mini" circle @click.stop="transferDown(option)"></el-button> </span> </el-transfer> <span slot="footer" class="dialog-footer"> <el-button @click="transferClose" size="small">取 消</el-button> <el-button type="primary" size="small" @click="transferConfirm">确 定</el-button> </span> </el-dialog> </div> </template> <script> import { QueryStyleFactory } from "../templates/query-panel/QueryStyleFactory"; import { GridSingleSelect } from "../templates/GridSingleSelect"; import { getToken } from "../../utils/auth"; import "hi-ui/lib/hi-ui.css"; import { HiLayout, HiLayoutLeft, HiLayoutRight, HiLayoutTop, HiLayoutBottom, HiLayoutCenter } from "hi-ui"; import debounce from 'lodash/debounce' import cloneDeep from 'lodash/cloneDeep' export default { name: "AnalysisSam", props:{ conf:{ type: Object, } }, components:{ HiLayout, HiLayoutLeft, HiLayoutRight, HiLayoutTop, HiLayoutBottom, HiLayoutCenter }, computed: { // 后退 backDisabled(){ return this.curIndex === 0 }, // 前进 goDisabled(){ return this.curIndex == this.deepArr.length - 1 }, // 表格列 tableColumns() { if(this.showDetail){ return this.dataFields }else{ // 组合分组条件分成多个列 let list = this.curGroupField.split(',') // 获取当前分组列 let curGroupArr = this.groupFields.filter(item =>{ return list.includes(item.prop) }) let arr = [] // 执行叠加后,网格添加冗余字段 if(this.superposition){ let newFields = [] let dataList = [] for(let key in this.selectionData){ let selData = this.selectionData[key] let id = selData.id let simple = selData.simple for(let anaField of this.analyseFields){ let obj = {} obj.prop = anaField.prop + '-' + id; obj.label = anaField.label + '-' + simple; newFields.push(obj) } let keyAnalyse = this.analyseFields.map(item =>{ return item.prop }) let data = selData.data.map(sData =>{ for(let key of keyAnalyse){ sData[key+'-'+id] = sData[key] } return sData }) selData.data = data dataList = dataList.concat(data) } // 去重 let keyList = dataList.map(item =>{ return item[this.curGroupField] }) keyList = Array.from(new Set(keyList)) if(keyList && keyList.length){ let newData = [] for(let key in keyList){ let obj = { [this.curGroupField]:keyList[key] }; for(let field of newFields){ obj[field.prop] = 0 } for(let sData of this.selectionData){ // 组合分组 if(this.curGroupField.indexOf(',') > -1){ }else{ let keyArr = sData.data.map(item =>{ return item[this.curGroupField] }) let i = keyArr.indexOf(keyList[key]) if(i > -1){ obj = {...obj, ...sData.data[i]} }else{ for(let j in sData.data[0]){ obj[j+'-'+sData.id] = 0 } } } } newData[key] = obj } this.data = newData }else{ this.data = [] } arr = curGroupArr.concat(newFields) }else{ // 当前分组列+分析列 arr = curGroupArr.concat(this.analyseFields) if(arr && arr.length){ this.sortArr = arr } } arr = arr.filter(item =>{ var show = true this.analysisData.forEach(data =>{ if(data.prop == item.prop){ show = data.tableColumn } }) return show }) return arr } }, showIndex(){ return this.conf && this.conf.showIndex || false }, // 网格是否显示合计行 showSummary(){ let flag = false this.analysisData.some(item =>{ flag = item.tableColumnCount return flag }) return flag }, // 数据列 dataFields(){ return this.conf && this.conf.dataFields || [] }, // 图表配置 chartConf() { debugger let groupBy = this.curGroupField; let calcFields = [] // 系列 var series = []; const tooltipOption = { trigger: 'item', axisPointer: { type: 'shadow' }, } let analysisList = this.analysisData.filter(item =>{ return item.chartColumn }) let showLabel = this.showType == 'none' ? false : true let showPer = this.showType == 'percent' ? true : false let label = { show: showLabel, position: "top", }; if(showPer){ label.formatter = '{c}%' } calcFields = analysisList.map(item =>{ let prop = showPer ? item.prop + '_per' : item.prop let obj = { name: prop, title: item.label } series.push({tooltip: tooltipOption, label: label}) return obj }) let controlName = '' let datas = this.data.map((item) =>{ let obj = {...item} for(let key in obj){ if(typeof(obj[key]) == 'string' && obj[key].includes('%')){ obj[key] = parseFloat(obj[key])/100 }else if(typeof(obj[key]) != 'string' && isNaN(obj[key])){ obj[key] = 0 } } return obj }) // 组合分组条件时,数据添加组合列 if(groupBy.includes(',')){ let keyArr = groupBy.split(','); datas = datas.map(item =>{ let label = [] for(let key of keyArr){ label.push(item[key]) } label=label.join(); item[groupBy] = label return item }) } controlName = this.chartType == "pie" ? "PieChart" : this.chartType == "bar" ? "BarChart" : this.chartType == "stack" ? "BarChart" : this.chartType == "line" ? "LineChart" : this.chartType == "area" ? "LineChart" : 'PieChart' // 区域图 let areaSeries = calcFields.map(item =>{ return { smooth: true, areaStyle: { normal: { color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [{ offset: 0, color: "rgba(30, 231, 231, 0.3)" },{ offset: 1, color: "rgba(30, 231, 231, 0.1)" }]), }, }, label: label, } }) // 饼图 let pieSeries = [] if(this.chartType == "pie"){ let len = calcFields.length if(len > 4){ calcFields = calcFields.filter((item, index)=>{ return index < 4 }) } let formatter = showPer ? '{b}: {d}%' : '{b}: {c}' label = { normal: { show: true, formatter: formatter, position:'outer', alignTo:'labelLine' } } switch(len){ case 1: pieSeries = [{label: label}]; break; case 2: pieSeries = [ { radius: [0,"50%"], center: ["25%", "50%"], label: label, }, { radius: [0,"50%"], center: ["75%", "50%"], label: label, }, ] break; case 3: pieSeries = [ { radius: [0,"50%"], center: ["25%", "50%"], label: label, }, { radius: [0,"35%"], center: ["75%", "30%"], label: label, }, { radius: [0,"35%"], center: ["75%", "70%"], label: label, }, ] break; case 4: pieSeries = [ { radius: [0,"35%"], center: ["25%", "30%"], label: label, }, { radius: [0,"35%"], center: ["25%", "70%"], label: label, }, { radius: [0,"35%"], center: ["75%", "30%"], label: label, }, { radius: [0,"35%"], center: ["75%", "70%"], label: label, }, ] break; default: pieSeries = [ { radius: [0,"35%"], center: ["25%", "30%"], label: label, }, { radius: [0,"35%"], center: ["25%", "70%"], label: label, }, { radius: [0,"35%"], center: ["75%", "30%"], label: label, }, { radius: [0,"35%"], center: ["75%", "70%"], label: label, }, ] break; } } /// 叠加柱图 let stackSeries = calcFields.map(item =>{ label.position = 'inside' return { stack: '总量', label: label, } }) let yAxis = { axisLabel:{ formatter: function(value,index){ return value +'%'; } } } let xAxis = [{ inverse: this.settingForm.xInverse }] let legend = { show: this.settingForm.legend != 1, orient: this.settingForm.legend == 3 ? 'vertical' : 'horizontal', } if(this.settingForm.legend == 3){ legend.top = '20%' legend.right = '3%' }else{ delete legend.top delete legend.right } let tooltip = { show: true, formatter: this.settingForm.tipStyle == 1 ? '{a}: {c}' : this.settingForm.tipStyle == 2 ? '{a}: {d}' : this.settingForm.tipStyle == 3 ? '{a}: {c}<br />{b}' : '{a}: {c}' } let title = { show: this.settingForm.title, text: this.settingForm.mainTitle, subtext: this.settingForm.subTitle, } let option = { legend: legend, toolbox: { show: this.settingForm.toolbox, feature: { dataZoom: { yAxisIndex: "none", title:{zoom:'区域缩放', back:'区域缩放还原'} }, dataView: { readOnly: false, title:'数据视图' }, restore: { title:'还原' }, saveAsImage: { show: true, title: '保存为图片' } } }, tooltip: tooltip, title: title, series: this.chartType == "area" ? areaSeries : this.chartType == "stack" ? stackSeries : this.chartType == "pie" ? pieSeries : series } if(this.chartType != "pie"){ option.xAxis = xAxis; } if(showPer && this.chartType != "pie"){ option.yAxis = yAxis } const conf = { controlName: controlName, controlId: "chart_controlid", height: "100%", isGroupData: true, groupBy: groupBy, datas: datas, calcFields: calcFields, option: option, events:{ click(row){ let _this = this.$parent.$parent.$parent; _this.currentObj = row.data _this.currentObj.prop = _this.curGroupField; if(_this.perspective){ var index = -1 _this.deepArr.forEach((item,i)=>{ if(item.prop == _this.curGroupField){ index = i } }) if(index > -1 && index < _this.deepArr.length - 1){ _this.analysisFieldsVisible = false _this.curIndex = _this.curIndex + 1 _this.currentObj = _this.deepArr[_this.curIndex]; _this.data = _this.currentObj.data _this.curGroupField = _this.currentObj.prop; }else{ _this.analysisChartConf.datas = _this.deepAnalysisFields _this.analysisFieldsVisible = true } }else{ _this.analysisChartConf.datas = _this.deepAnalysisFields _this.analysisFieldsVisible = true } _this.superposition = false } } }; return conf }, // 深度分析字段列表 deepAnalysisFields(){ let fields = this.groupFields if(fields && fields.length == 0){ return [] } let analysisFields = fields.map((item) => { item.value = 1 return item }); // 排除已经统计的分析列 if(this.deepArr && this.deepArr.length > 0){ let arrnew = this.deepArr.slice(0, this.curIndex + 1).map((item) => { return item.prop }); // 多条件的分组 拆开排除 arrnew.forEach(item =>{ if(item.includes(',')){ arrnew.concat(item.split(',')) } }) analysisFields = analysisFields.filter(item =>{ return arrnew.indexOf(item.prop) < 0 }) } // 添加详情 analysisFields.push( { prop: 'detail', label: "详情", value: 1 } ) return analysisFields }, // 查询字段 queryFields(){ let queryFields = [] let fields = this.conf && this.conf.queryFields if(!fields || fields.length == 0){ queryFields = [] }else{ queryFields = fields.map(item =>{ let obj = {} obj.prop = item.prop; obj.label = item.label; if(item.props && item.props.lookup){ let model = item.props.lookup if(item.element === 'hi-select-grid'){ var columns = [] if(model && model.columns && model.columns.length){ columns = model.columns.map(item =>{ item.prop = item.name return item }) } let table = model.tableprops || {} table['columns'] = columns obj.lookup = { type: "data", openstyle: 'selectgrid', bindField: item.prop, lookSelectGrid: { width: 1200, height: 600, table: table, bindField: item.prop }, } if(model && model.sourceDatas){ obj.lookup.lookSelectGrid['tableData'] = model && model.sourceDatas } if(model && model.modelFile){ obj.lookup['lookDataset'] = { modelFilePath: this.conf.dataset.controlId, showSearchField: true } } obj.dbtype = 'dbString' }else if(item.element === 'hi-data-select'){ var columns = [] if(model && model.columns && model.columns.length){ columns = model.columns.map(item =>{ item.prop = item.name return item }) } let queryOptionFields = model.queryOption && model.queryOption.fields let store = model.storeCfg || model.sourceDsCfg let modelFilePath = store.modelFile let fields = store.fields if(!(queryOptionFields && queryOptionFields.length)){ return } let rows = queryOptionFields.map(item =>{ return {children:[ { prop: item.name, label: item.label } ]} }); let cols = queryOptionFields.map(item =>{ return { colWidth: 100} }); let queryPanel = { rows: rows, cols: cols }; let tableColumn = model.columns.map(item =>{ return { prop: item.name, label: item.label } }) // var table = model.tableprops || {} var table = { children:tableColumn, stripe: model.tableprops && model.tableprops.stripe || false } let ds = { controlName: "HcDataset", controlId: modelFilePath, name: model.entityDs, modelFilePath: modelFilePath, _infcPagging: { pageSize: 10, pageNum: 1, returnCount: true }, _infcLoad: { autoActive: true, }, fields: fields, data: [], } obj.lookup = { type: "data", openstyle: 'dialog', birtModel: GridSingleSelect({ mainDataset: ds, hcQueryPanel: queryPanel, hcTable: table }), lookDataset: { modelFilePath: modelFilePath, // 数据模型路径 showSearchField: true }, lookDialog: { title: "", width: 900, height: 600, }, bindField: item.prop, sourceDsId: model.sourceDsId } obj.dbtype = 'dbString' } } // 时间方案 if(item.props && item.element == 'hi-time-scheme'){ obj.dbtype = 'dbDatetime' obj.format = item.props.format obj.element = 'hi-time-scheme' obj.disabledEx = item.disabledEx obj.viewStyle = { viewStyleId: 'DATERANGE', type: item.props.rangeType, format: item.props.format } } return obj }) } return queryFields }, // 数据集字段 fields(){ let fields = this.conf.dataset && this.conf.dataset.config.fields for(let key in this.queryFields){ let prop = this.queryFields[key].prop if(fields[prop] && fields[prop].lookup){ let lookup = Object.assign(fields[prop].lookup, this.queryFields[key].lookup) // 下拉枚举查找 if(lookup.label && lookup.returnFields){ for(let key in lookup.returnFields){ if(lookup.returnFields[key] == lookup.label && lookup.lookSelectGrid){ lookup.bindShowField = key lookup.lookSelectGrid.bindShowField = key } if(lookup.lookSelectGrid && lookup.lookSelectGrid.tableData){ let data = lookup.lookSelectGrid.tableData for(let i in data){ if(data[i][lookup.returnFields[key]]){ data[i][key] = data[i][lookup.returnFields[key]] } } } } } // 数据模型查找 if(lookup.fieldPair){ if(lookup.sourceDsId){ lookup.returnFields = lookup.fieldPair[lookup.sourceDsId].returnFields }else{ let key = Object.keys(lookup.fieldPair)[0] lookup.returnFields = lookup.fieldPair[key].returnFields } } lookup.returnType = "single", fields[prop]['lookup'] = lookup } // 时间方案 if(fields[prop] && this.queryFields[key].element == 'hi-time-scheme'){ let fd = this.queryFields[key] fields[prop].dbtype = 'dbDatetime' fields[prop].format = fd.format fields[prop].disabledEx = fd.disabledEx } } // 应用默认填充表达式 for(let key in fields){ if(fields[key].default && fields[key].default.exps){ fields[key].default['expr'] = fields[key].default.exps } } return fields }, // 数据集 dataset(){ var dataset = {} if(this.conf && this.conf.dataset){ let ds = this.conf.dataset dataset = { controlName: ds.controlName, controlId: ds.controlId, name: ds.name, modelFilePath: ds.modelFilePath, fields: this.fields, _infcLoad: { autoActive: false }, _infcPagging: { returnCount: true, pageSize: 100, pageNum: 1 }, data: [], } } return dataset }, // 查询面板 birtModelRight(){ let rows = this.queryFields.map(item =>{ return {children:[item],colspan: 12} }) let cols = this.queryFields.map(item =>{ return { colWidth: 60 } }) const queryPanel = { rows: rows, cols: cols }; let hcQueryPanel = { controlName: "HcQueryPanel", controlId: "HcQueryPanel_sam", inline: false, dataset: this.dataset && this.dataset.controlId || "dsSam", size: "small", hideBtn: true, style: "width: 100%;", children: [], }; Object.assign(hcQueryPanel, QueryStyleFactory.buildForm(queryPanel) || {}); let birtModelRight = { controlName: "BirtWorkBook", controlId: "BirtWorkBook_right", style: "border-bottom: 1px solid #eee;", showToolBar: false, children: [ { controlName: "BirtSheet", controlId: "BirtSheet_right", name: "sheet0", pageIndex: 0, dataSets: [{ controlName: "HcDataset", controlId: "dsScheme", name: "SysSchemeBizEntity", rowKey: "FGUID", modelFilePath: "/platf/scheme/entity/SysSchemeBizEntity.xml", _infcLoad: { autoActive: false, __zcQuery: true }, _infcPagging: { _isAddingPagging: false, pageSize: -1, }, fields: {}, data: [], }].concat(this.dataset ? this.dataset : []), children: [ { controlName: "BirtFormSheet", controlId: "BirtFormSheet_01", children: [hcQueryPanel] } ] } ], }; return birtModelRight }, // 分组条件(统计字段) groupFields(){ let groupFields = this.conf && cloneDeep(this.conf.groupFields) || [] // 组合分组条件 if(this.curTransferVal && this.curTransferVal.length){ let obj = {} let curTransferLabel = this.curTransferVal.map(item =>{ for(var field of groupFields){ if(field.prop == item){ return field.label } } }) obj = { prop: this.curTransferVal.join(), label: curTransferLabel.join() } groupFields.push(obj) } return groupFields }, // 分析字段 analyseFields(){ return this.conf && this.conf.analyseFields || [] }, // 显示详情 showDetail(){ return this.currentObj.prop == 'detail' }, // 执行叠加按钮 btnDisabled(){ return !this.selectionData || this.selectionData.length < 2 }, analyseList_title(){ if(this.conf.analyseFields && this.conf.analyseFields.length && this.analyseListChecked){ let curField = this.conf.analyseFields.filter(item =>{ return item.prop == this.analyseListChecked })[0] return curField && curField.label || '' }else{ return '' } } }, watch:{ conf:{ deep: true, handler: function(val){ if(val && val.groupFields && !this.groupForm.prop){ this.groupForm.prop = val.groupFields[0] && val.groupFields[0].prop this.curGroupField = this.groupForm.prop } if(val && val.analyseFields && val.analyseFields.length){ this.analysisData=val.analyseFields.map(item =>{ let obj = { prop: item.prop, label: item.label, countField: item.label, tableColumn: true, tableColumnCount: true, chartColumn: true, chartColumnCount: true, } return obj }) } } }, }, data() { return { size: 'small', superposition: false, perspective: false, chartType: "table", groupForm: { prop: "" }, loading: false, currentPage: 1, pageSize: 100, pageSizes: [10,20,50,100], total: 0, data: [], // 排序 sortArr:[], sortIndex:-1, sortType: '', // 分析列 analysisVisible: false, analysisData:[], tableColumnCheck: true, tableColumnCountCheck: true, chartColumnCheck: true, chartColumnCountCheck: true, // 分析字段 analysisFieldsVisible: false, analysisFieldsArr:[], analysisChartConf:{ controlName: "PieChart", controlId: "chart_analysis", height: "100%", isGroupData: true, groupBy: "label", datas: [], calcFields: [ { name: "value", title: "" } ], option: { legend: { show: true } }, events:{ click(row){ debugger; var _this = this.$parent.$parent; _this.analysisChartConf.datas = _this.deepAnalysisFields let data = JSON.parse(JSON.stringify(row.data)) delete data.emphasis // 删除当前分析以后的深度分析 _this.deepArr.splice(_this.curIndex+1, _this.deepArr.length - _this.curIndex - 1) let obj = _this.deepArr[_this.deepArr.length -1] if(_this.currentObj.name){ obj.selectVal = _this.currentObj.name }else{ if(_this.currentObj.prop.includes(',')){ let selectVal = [] let arr = _this.currentObj.prop.split(',') selectVal = arr.map(item =>{ return _this.currentObj[item] }) obj.selectVal = selectVal.join() }else{ obj.selectVal = _this.currentObj[_this.currentObj.prop] } } _this.$set(_this.deepArr,_this.curIndex,obj) _this.$set(_this.deepArr,_this.curIndex + 1, data) _this.curGroupField = data.prop; _this.currentObj = data; _this.curIndex = _this.curIndex + 1; _this.doQuery(); _this.analysisFieldsVisible = false; } } }, // 深度分析 deepArr:[], conf:{}, // 图表当前选中对象 currentObj:{}, // 当前分组字段 curGroupField: '', // 深度分析当前环节下标 curIndex: 0, exportLoading: false, // 穿梭框 transferVisible: false, curTransferVal: [], groupFieldsEdit: [], schemeLoading: false, havingForm:{}, // 分析记录 recordVisible: false, recordData:[], // 已勾选记录 selectionData: [], // 统计方案 schemeData:[], schemeVisible: false, // 是否监听 isMonitor: false, // 底部汇总数据 bottomSummary: {}, // 是否查询面板查询 isQueryModel: false, // 显示图表菜单 showChartMenu: false, showType: 'none', showAnalyseList: false, analyseListChecked: '', // 设置面板 activeName: 'condition', settingForm:{ xInverse: false, toolbox: false, axisMarking: 1, legend: 2, tipStyle: 3, staField: 'none', title: false, mainTitle: '', subTitle: '', weekColumns: false, column: '', week: '', }, axisMarkOptions:[ { label: '不显示', value: 'none' }, { label: '显示值', value: 'num' }, { label: '百分比', value: 'percent' }, ], legendOptions:[ { label: '不显示', value: 1 }, { label: '上边', value: 2 }, { label: '右边', value: 3 }, ], tipStyleOptions:[ { label: '值', value: 1 }, { label: '百分比%', value: 2 }, { label: `值+分类`, value: 3 }, ], } }, updated() { this.$nextTick(() => { this.$refs["table"] && this.$refs["table"].doLayout(); }); }, methods: { // 排序 sortClick(val) { this.sortIndex = val this.doQuery(); }, sortDown(){ this.sortType = 'desc' }, sortUp(){ this.sortType = 'asc' }, // 前进 goCommand(index){ this.curIndex = index; this.currentObj = this.deepArr[index]; this.curGroupField = this.currentObj.prop; this.data = this.currentObj.data }, goClick:debounce(function(){ if(this.curIndex < this.deepArr.length - 1){ this.curIndex = this.curIndex + 1; this.currentObj = this.deepArr[this.curIndex]; this.curGroupField = this.currentObj.prop; this.data = this.currentObj.data } },500), // 后退 backCommand(val){ this.curIndex = val this.currentObj = this.deepArr[val]; this.curGroupField = this.currentObj.prop; this.data = this.currentObj.data }, backClick:debounce(function(){ if(this.curIndex > 0){ this.curIndex = this.curIndex - 1 this.currentObj = this.deepArr[this.curIndex]; this.curGroupField = this.currentObj.prop; this.data = this.currentObj.data } },500), // 深度分析 breadcrumbClick(val) { this.curGroupField = val let arrnew = this.deepArr.map(item =>{ return item.prop }) this.curIndex = arrnew.indexOf(val) this.currentObj = this.deepArr[this.curIndex]; // 数据替换成缓存的数据 this.data = this.currentObj.data }, // 点击表格 rowDblclick(row){ this.currentObj = row this.currentObj.prop = this.curGroupField; this.superposition = false if(this.perspective){ var index = -1 this.deepArr.forEach((item,i)=>{ if(item.prop == this.curGroupField){ index = i } }) if(index > -1 && index < this.deepArr.length - 1){ this.analysisFieldsVisible = false this.curIndex = this.curIndex + 1 this.currentObj = this.deepArr[this.curIndex]; this.data = this.currentObj.data this.curGroupField = this.currentObj.prop; }else{ this.analysisChartConf.datas = this.deepAnalysisFields this.analysisFieldsVisible = true } }else{ this.analysisChartConf.datas = this.deepAnalysisFields this.analysisFieldsVisible = true } }, // 点击查询 doCount() { debugger; // 叠加状态下不执行查询操作 if(this.superposition){ return } // 监听数据集 if(this.dataset){ let ds = this.$refs.BirtWorkBook_right.dataset[this.dataset.controlId] if(!this.isMonitor){ ds && ds.on("afterLoadData", this.afterLoadData); this.isMonitor = true } this.loading = true; let prop = this.groupForm.prop; let fields = this.groupFields.map(item =>{ return item.prop }) this.curGroupField = prop; let index = fields.indexOf(prop) if(this.deepArr.length){ // 如果切换了分组条件,清空深度分析 if(this.deepArr[0] && this.deepArr[0].prop !== prop){ this.deepArr = [] this.currentObj = this.groupFields[index] this.recordData = [] }else{ this.currentObj = this.deepArr[0] } } this.currentPage = 1 let queryModel = ds.getQueryModel() this.doQuery(queryModel); // 添加分析记录 let obj = {} if(Object.keys(queryModel).length === 0){ obj = { id: 'empty', name: '空条件', prop: this.groupForm.prop, } }else{ let keyArr = []; let labelArr = []; for(let key in queryModel){ if(queryModel[key] || queryModel[key] === 0){ keyArr.push(key); // let arr = this.queryFields.filter(item =>{ // return item.prop == key // }) labelArr.push(queryModel[key]); } }; if(keyArr.length && labelArr.length){ obj = { id: keyArr.join() + '_' + labelArr.join(), name: labelArr.join(), prop: this.groupForm.prop, } }else{ obj = { id: 'empty', name: '空条件', prop: this.groupForm.prop, } } } // 判断分析记录中是否含有此条件,有则跳过,无则添加 const ids = this.recordData.map(value=>value.id); if(!ids.includes(obj.id)){ this.isQueryModel = true let simple = this.recordData.length + 1; obj.simple = simple obj.isEdit = false this.recordData.push(obj); }else{ this.isQueryModel = false } // 当前分组加入深度分析 if(index < 0){ this.$message.error('当前分组条件不在分组字段中,请重新配置') }else{ this.$set(this.deepArr,0,this.groupFields[index]) this.curIndex = 0 }; } }, afterLoadData(datas){ let newData = datas let ds = this.$refs.BirtWorkBook_right.dataset[this.dataset.controlId] if(datas && datas.length && this.curGroupField != 'detail'){ newData = datas.map(item =>{ return ds && ds.getFormatRecd(item) }) // 添加百分比数据 newData = newData.map(data =>{ for(let field of this.analyseFields){ let prop = field.prop let percent = prop+'_per' let sum = 0 const values = datas.map(item => Number(item[prop])); if (!values.every(value => isNaN(value))) { sum = values.reduce((prev, curr) => { const value = Number(curr); if (!isNaN(value)) { return prev + curr; } else { return prev; } }, 0); } if(sum && sum > 0){ data[percent] = Number((data[prop]/sum * 100).toFixed(2)) }else{ data[percent] = 0 } } return data }) } this.data = newData // 缓存数据 this.deepArr[this.curIndex].data = newData; // 总条数 this.total = ds._infcPagging.recordCount || this.total; // 底部汇总数据 this.bottomSummary = ds.getBottomSummeryRecd(); // 添加分析记录 if(!this.isQueryModel) return this.recordData[this.recordData.length - 1].data = datas }, // 查询方法 doQuery(model){ let ds = this.$refs.BirtWorkBook_right.dataset[this.dataset.controlId] if(this.showDetail){ ds._infcPagging = { _isPagging: true, pageSize: this.pageSize, pageNum: this.currentPage, returnCount: true }; ds._infcStat = {} ds._infcSort = {} }else{ ds._infcPagging = { _isPagging: true, pageSize: this.pageSize, pageNum: this.currentPage, returnCount: true }; ds._infcStat = { isGroupData: true, groupBy: this.curGroupField, __bottomSummary: true } if(this.sortIndex > -1){ let obj = this.sortArr[this.sortIndex] ds._infcSort.orderBy =[{ name: obj.prop, desc: obj.label, type: this.sortType || 'desc' }] }else{ ds._infcSort.orderBy = [] } if(this.havingForm){ let _infcHaving = {}; for(let item in this.havingForm){ let obj = JSON.parse(JSON.stringify(this.havingForm[item])) let val = obj.value let val2 = obj.value2 if(val === undefined && val === undefined){ }else if((val || val === 0) && (val2 || val2 === 0)){ _infcHaving[item] = obj }else{ if(obj.sign == 'inRange'){ obj.sign = 'lteq' }else{ obj.sign = 'gt' } _infcHaving[item] = obj } } ds._infcHaving = _infcHaving } } if(model){ ds.setQueryModel(model) ds._infcLoad.additionalModel = {}; }else if(this.deepArr && this.deepArr.length > 0){ let queryModel = {} this.deepArr.forEach(item =>{ if(item.prop && item.selectVal){ if(!item.prop.includes(",")){ queryModel[item.prop] = item.selectVal }else{ let arr = item.prop.split(',') arr.forEach((it,i) =>{ queryModel[it] = item.selectVal && item.selectVal.split(',')[i] }) } } }) ds.setAdditionalModel(queryModel) }else{ ds._infcLoad.additionalModel = {}; ds._infcLoad.queryModel = {} } ds.query(); this.loading = false; }, // 重置 reset() { this.$refs.groupForm.resetFields(); this.$refs.havingForm.resetFields(); this.havingForm = JSON.parse(JSON.stringify(this.conf.havingForm)); this.curTransferVal = [] this.groupForm.prop = this.groupFields[0] && this.groupFields[0].prop; var queryPanel = this.$refs.BirtWorkBook_right.$children[0].$children[0].$children[0].$children[0].$children[0].$children[0]; queryPanel.reset(); let ds = this.$refs.BirtWorkBook_right.dataset[this.dataset.controlId] ds._infcLoad.queryModel={} }, handleSizeChange(val) { this.pageSize = val this.doQuery() }, handleCurrentChange(val) { this.currentPage = val this.doQuery() }, // 切换图表 chartTypeChange(command) { this.chartType = command; }, // 打开分析列 analysisClick(){ this.analysisVisible = true }, // 分析列全选 handelCheckAll(val){ let _this = this this.analysisData = this.analysisData.map(item => { if(val == 'tableColumn') { item.tableColumn = _this.tableColumnCheck } if(val == 'tableColumnCount') { item.tableColumnCount = _this.tableColumnCountCheck } if(val == 'chartColumn') { item.chartColumn = _this.chartColumnCheck } if(val == 'chartColumnCount') { item.chartColumnCount = _this.chartColumnCountCheck } return item }) }, // 分析列上移 columnUp(index,row){ let arr = this.analysisData if(index > 0){ arr.splice(index - 1, 1, ...arr.splice(index, 1, arr[index - 1])); } }, columnDown(index, row){ let arr = this.analysisData if(index < arr.length){ arr.splice(index, 1, ...arr.splice(index + 1, 1, arr[index])); }; }, // 刷新 refresh(){ this.doQuery(); this.$refs.chartConf && this.$refs.chartConf.refreshChart(); }, // 导出 exportExcel() { let param = { pageNum: -1, pageSize: -1, __slaveExport: false, }; let __body = {}; let ds = this.$refs.BirtWorkBook_right.dataset[this.dataset.controlId] var cdion = ds.lastLoadCdion console.log('cdion', cdion) if (cdion) { __body['queryCdions'] = JSON.parse(cdion); } if(this.curGroupField !== 'detail'){ __body['groupBy'] = this.curGroupField } param['modelFilePath'] = ds['modelFilePath']; param['__funcpath'] = ds['__funcpath']; param.__body = __body let sheetStyle = {} let cells = [] let columns = [] this.tableColumns.forEach(item => { cells.push({ title: item.label, colspan: 1, rowspan: 1 }) columns.push({ field: item.prop, width: 170 }) }); sheetStyle = { name: '统计分析', titleRows: [ { cells: cells } ], columns: columns } param.__sheetStyle = sheetStyle var time = new Date().getTime() var title = `统计分析${time}` var data = { title: title, __sheetDatas: JSON.stringify([param]) } var url = this.$HI.exportUrl this.exportLoading = true this.$HI.request.post(url,data).then((res) =>{ console.log('res', res) this.exportLoading = false if(res.status == 200){ let token = getToken(); var url = this.$HI.download + `?path=${res.dataPack.path}&access_token=${token}` url = url.replace(/\\/g,"/") const a = document.createElement('a') //创建a标签 a.style.display = 'none' a.href = url // 指定下载链接 a.download = title //指定下载文件名 a.click() //触发下载 } }).catch((e) =>{ this.exportLoading = false }) }, // 打开穿梭框 showtransfer(){ this.groupFieldsEdit = JSON.parse(JSON.stringify(this.curTransferVal)) this.transferVisible = true }, transferConfirm(){ if(this.groupFieldsEdit && this.groupFieldsEdit.length > 1){ this.curTransferVal = JSON.parse(JSON.stringify(this.groupFieldsEdit)) this.groupForm.prop = this.curTransferVal.join(); this.curGroupField = this.groupForm.prop; this.transferVisible = false }else{ this.$message.error("该分组选项已存在") } }, transferClose(){ this.transferVisible = false this.groupFieldsEdit = JSON.parse(JSON.stringify(this.curTransferVal)) }, transferUp(option){ let arr = this.groupFieldsEdit let index = this.groupFieldsEdit.indexOf(option.prop) if(index > 0){ arr.splice(index - 1, 1, ...arr.splice(index, 1, arr[index - 1])); } }, transferDown(option){ let arr = this.groupFieldsEdit let index = this.groupFieldsEdit.indexOf(option.prop) if(index < arr.length){ arr.splice(index, 1, ...arr.splice(index + 1, 1, arr[index])); }; }, // 合计列 getSummaries(parma){ const { columns, data } = parma; const sums = []; // let arr = this.analyseFields.map(item =>{ // return item.prop // }) columns.forEach((column, index) => { let show = true this.analysisData.forEach(item =>{ if(item.prop == column.property){ show = item.tableColumnCount } }) // if(arr.includes(column.property) && show){ // let values = data.map(item => Number(item[column.property])); // sums[index] = values.reduce((prev, curr) => { // const value = Number(curr); // if (!isNaN(value)) { // return prev + curr; // } else { // return prev; // } // }, 0); if(this.bottomSummary && this.bottomSummary[column.property] && show){ sums[index] = this.bottomSummary[column.property] sums[index] = Math.round(sums[index]*100)/100; }else{ sums[index] = ''; } }) sums[0] = '统计' return sums; }, // 分析列表 handleEdit(index, row){ row.isEdit = true this.recordData[index] = row }, handleConfirm(index, row){ row.isEdit = false this.recordData[index] = row }, handleDelete(index, row){ this.recordData.splice(index, 1) }, // 执行叠加 doClick(){ this.superposition = true this.recordVisible = false this.curGroupField = this.recordData[0].prop this.curIndex = 0 }, // 分析记录勾选 handleSelectionChange(row){ this.selectionData = row }, // 双击 recordDblClick(row){ this.curIndex = 0 this.data = row.data this.deepArr[0].data = row.data this.currentObj.data = row.data }, signChange(val,sign){ this.havingForm[val]['sign'] = sign }, // 统计方案 schemeRowClick(row){ if(row.FCONTENT){ this.reset(); let conf = JSON.parse(row.FCONTENT); if(conf.deepList){ this.deepArr = conf.deepList } if(conf.curGroupField){ this.curGroupField = conf.curGroupField } if(conf.queryModel){ let ds = this.$refs.BirtWorkBook_right.dataset[this.dataset.controlId] ds.setQueryModel(conf.queryModel) let queryPanel = this.$refs.BirtWorkBook_right.$children[0].$children[0].$children[0].$children[0].$children[0].$children[0]; queryPanel.bindModel = conf.queryModel } if(conf.groupForm){ this.groupForm = conf.groupForm } if(conf.havingForm){ this.havingForm = conf.havingForm } if(conf.sortIndex){ this.sortIndex = conf.sortIndex } if(conf.sortType){ this.sortType = conf.sortType } if(conf.data){ this.data = conf.data } if(conf.currentObj){ this.currentObj = conf.currentObj } if(conf.total){ this.total = conf.total } if(conf.curTransferVal){ this.curTransferVal = conf.curTransferVal } if(conf.perspective){ this.perspective = conf.perspective }else{ this.perspective = false } if(conf.superposition){ this.superposition = conf.superposition }else{ this.superposition = false } } this.schemeVisible = false this.doCount() }, showSchemeData(){ let url = '/data/query'; let funcurl = window.location.pathname || '' let queryCdions = { join: 'and', items: [ { sign: "eq", name: "FFUNCURL", dataType: "string", value: funcurl, enable: true, }, ], } var data = { modelFilePath: "/platf/scheme/entity/SysSchemeBizEntity.xml", pageSize:-1, __body:JSON.stringify({queryCdions: queryCdions}), __bottomSummary: false, // __funcpath: "/eap5csxm/KongJianCeShi/TongJiFenXi/TongJiFenXiCeShi/func/TongJiFenXiRenYuan.func", __zcQuery: true } this.$HI.request.post(url, data).then((res) =>{ this.schemeData = res.dataPack && res.dataPack.rows }).catch(e=>{ console.error(e) }) }, // 保存方案 saveScheme(){ let ds = this.$refs.BirtWorkBook_right.dataset[this.dataset.controlId] let content = { deepList: this.deepArr, curGroupField: this.curGroupField, queryModel: ds.getQueryModel(), havingForm: this.havingForm, groupForm: this.groupForm, sortIndex: this.sortIndex, sortType: this.sortType, data: this.data, currentObj:this.currentObj, perspective: this.perspective, superposition: this.superposition, total:this.total, curTransferVal:this.curTransferVal } let data = { pushType: "add", dataset: "dsScheme", pushAddType: "map", data:[{ FFUNCURL: window.location.pathname || window.location.href, FCONTENT: JSON.stringify(content), }] } this.openByPath('/platf/scheme/func/add.func', {__push: data,__funcpath:'/platf/scheme/func/add.func'},{title: '方案保存'}) }, handleSchemeDelete(index, data){ let url = '/data/save' let removeData = { ...data, $state:"rsDelete", $old:data } let body = [{ modelFilePath:"/platf/scheme/entity/SysSchemeBizEntity.xml", data:[removeData] }] let rData = { __body: JSON.stringify(body) } this.$HI.request.post(url, rData).then((res) =>{ this.$message.success('方案删除成功') this.schemeData.splice(index, 1) }).catch(e=>{ this.$message.error(e) }) }, // 保存方案下推 openByPath(path, query, { title, target } = {}) { query = query || {}; let queryT = {} Object.assign(queryT, query || {}); if (title) queryT.__title = title; if (target) { target = target === '_blank' ? (new Date()).valueOf() : target queryT.__target = target; } if(this.$router){ this.$router.push({ path, query: queryT }) }else{ if(top.window.SysPage && top.window.SysPage.newPage){ top.window.SysPage.newPage(title, path, queryT, "post") }else{ this.createForm(path, "_self", queryT.__push.data[0]) } } }, createForm(url, opentype, paramters) { //创建form表单 let me = this; let id = "samuuid" var formid = `${id}_form`; var temp_form = null; if (document.getElementById(formid)) { temp_form = document.getElementById(formid); temp_form.method = me.postType; temp_form.action = url; // for (var item in paramters) { // var inputObj = document.getElementById(`${id}_${item}`); // if (inputObj) { // inputObj.value = paramters[item]; // } // } } else { temp_form = document.createElement("form"); temp_form.id = `${id}_form`; temp_form.action = url; //如需打开新窗口,form的target属性要设置为'_blank' temp_form.target = opentype; //打开方式 temp_form.method = me.postType; temp_form.style.display = "none"; document.body.appendChild(temp_form); } //添加参数 for (var item in paramters) { var inputObj = document.getElementById(`${id}_${item}`); if (inputObj) { inputObj.value = paramters[item]; } else { var opt = document.createElement("input"); opt.type = "hidden"; opt.id = `${id}_${item}`; //opt.id= opt.name = item; opt.value = paramters[item]; temp_form.appendChild(opt); } } //提交数据 temp_form.submit(); }, // 选择显示数值还是百分比 onChangeShowType(type){ this.showType = this.showType == type ? 'none' : type }, // 右侧工具条显示列表选择显示不同分析字段的数据 changeShowAnalyseList(command){ this.analyseListChecked = command this.settingForm.staField = command if(command == 'none'){ this.showAnalyseList = false }else{ this.showAnalyseList = true } }, // 点击选择深度分析 analyseListOnClick(row, index){ let _this = this _this.currentObj = row _this.currentObj.prop = this.curGroupField if(_this.perspective){ var index = -1 _this.deepArr.forEach((item,i)=>{ if(item.prop == _this.curGroupField){ index = i } }) if(index > -1 && index < _this.deepArr.length - 1){ _this.analysisFieldsVisible = false _this.curIndex = _this.curIndex + 1 _this.currentObj = _this.deepArr[_this.curIndex]; _this.data = _this.currentObj.data _this.curGroupField = _this.currentObj.prop; }else{ _this.analysisChartConf.datas = _this.deepAnalysisFields _this.analysisFieldsVisible = true } }else{ _this.analysisChartConf.datas = _this.deepAnalysisFields _this.analysisFieldsVisible = true } _this.superposition = false } }, mounted() { } }; </script> <style> .birtModelRight .el-main{ padding: 5px !important; } .birtModelRight table.zhc-birt-data-list{ table-layout: auto !important; /* border-collapse: initial !important; */ /* border-spacing: revert !important; */ } .el-transfer.sam .el-transfer-panel:nth-child(1) button{ display: none; } .el-dropdown.disabled .el-button, .el-dropdown.disabled .el-button:hover{ cursor: not-allowed; color: #C0C4CC; cursor: not-allowed; background-image: none; background-color: #FFF; border-color: #EBEEF5; } .tableHeader th, .tableHeader tr{ background: linear-gradient(0deg,rgba(224,240,255,1), rgba(240,247,255,1)); } .el-form-item__label{ overflow: hidden; white-space: nowrap; text-overflow: ellipsis; } .recordPop{ text-align: center; } .right-tabs{ height: 100%; } .el-tabs--border-card .el-tabs__content { height: calc(100% - 56px); overflow: auto; } .el-tabs--border-card .el-tabs__content .el-tab-pane{ height: 100%; } </style> <style lang="scss" scoped> .container { position: relative; display: flex; flex-direction: column; height: 100%; padding: 20px; } .btn-toolbar { * + * { margin-left: 10px; margin-right: 0; } } .el-dropdown-menu__item { min-width: 90px; } .center-content { height: 100%; width: 100%; padding: 10px; box-sizing: border-box; } .depth-analysis { display: flex; align-items: center; padding: 10px; } .el-breadcrumb__item a { cursor: pointer !important; } .deepActive{ color: #06c; font-weight: 600; } .sortActive{ color: rgb(33, 235, 141); font-weight: 600; } >>>.el-dropdown-menu__item:focus, .el-dropdown-menu__item:not(.is-disabled):hover{ background: initial; color: initial; } .el-dropdown-menu__item i{ font-weight: 600; margin: 0 0 0 5px; } .el-dropdown-menu__item i:hover { color: rgb(33, 235, 141); } .birtModelRight .el-main{ padding: 5px !important; } .el-icon-edit{ right: 30px; position: absolute; z-index: 1; line-height: 30px; cursor: pointer; } >>>.el-dropdown.disabled .el-button, >>>.el-dropdown.disabled .el-button:hover{ cursor: not-allowed; color: #C0C4CC; cursor: not-allowed; background-image: none; background-color: #FFF; border-color: #EBEEF5; } .chart-tool{ position: absolute; right: 10px; top:5px; i{ cursor: pointer; color: #06c; } .el-icon-close{ color: #f0797f; } .el-icon-close:hover{ color: #f50814; } .content{ margin-top: 5px; display: flex; justify-content: space-around; align-items: center; width: 150px; height: 30px; line-height: 30px; border: 1px solid #d8d863; border-radius: 5px; background: rgba(237,241,244,0.4); .iconfont{ height: 20px; line-height: 12px; } .item{ padding: 3px; border: 1px solid transparent; border-radius: 3px; } .item:hover,.item:active, .item.active{ border-color: #08df5d; } } } .el-dropdown-menu__item.active{ background-color: #ecf5ff; color: #66b1ff; } >>>.el-dropdown-menu__item:focus, .el-dropdown-menu__item:not(.is-disabled):hover { background-color: #ecf5ff; color: #66b1ff; } .analyseList{ position: absolute; right: 10px; top: 45px; width: 150px; border: 1px solid #d8d863; background: #fff; .analyseList-title{ border-bottom: 1px dotted #b5b5ad; color: #000; padding: 0 10px; } .analyseList-ul{ list-style: none; margin: 0 !important; padding: 0 10px; li{ display: flex; justify-content: space-between; align-items: center; a:hover{ text-decoration: underline; color: #FF6600; } } } } </style>
Ignore Space
Show notes
View
project/hivuiSam/lang/en.js
var GLOBAL_LANG_TPL = { "hivuiBirt_datetime_to": "To", "hivuiBirt_datetime_start": "Start", "hivuiBirt_datetime_end": "End", "hivuiBirt_datetime_now": "Now", "hivuiBirt_datetime_yesterday": "yesterday", "hivuiBirt_datetime_last7": "Recent 7 days", "hivuiBirt_datetime_last28": "Recent 28 days", "hivuiBirt_datetime_last84": "Recent 84 days", "hivuiBirt_datetime_halfYear": "Nearly half a year", "hivuiBirt_datetime_oneYear": "Last 1 year", "hivuiBirt_datetime_overdue": "Expired", "hivuiBirt_datetime_threeMonth": "Within 3 months", "hivuiBirt_datetime_three2six_months": "3 to 6 months", "hivuiBirt_datetime_six2nine_months": "6 to 9 months", "hivuiBirt_datetime_nine_months": "More than 9 months", "hivuiBirt_datetime_eighteen_months": "Over 18 months", "hivuiBirt_datetime_two_years": "More than 2 years", "hivuiBirt_datetime_three_years": "More than 3 years", "hivuiBirt_datetime_week": "This week", "hivuiBirt_datetime_month": "This month", "hivuiBirt_datetime_quarter": "This quarter", "hivuiBirt_datetime_year": "This year", "hivuiSam_btn_back": "back", "hivuiSam_btn_go": "go", "hivuiSam_btn_sort": "sort", "hivuiSam_btn_noSort": "No Sort", "hivuiSam_btn_columnSet": "Column Settings", "hivuiSam_btn_refresh": "refresh", "hivuiSam_btn_edit": "edit", "hivuiSam_btn_confirm": "confirm", "hivuiSam_btn_remove": "remove", "hivuiSam_btn_executeOverlay": "Execute Overlay", "hivuiSam_btn_analysisRecord": "Analysis Record", "hivuiSam_btn_schemeList": "Scheme List", "hivuiSam_btn_export": "Export Excel", "hivuiSam_btn_schemeSave": "Save Scheme", "hivuiSam_btn_up": "Move Up", "hivuiSam_btn_down": "Move Down", "hivuiSam_table_scheme": "Scheme Name", "hivuiSam_table_abbreviation": "Abbreviation", "hivuiSam_table_operate": "Operate", "hivuiSam_table_countField": "Statistical Fields", "hivuiSam_table_tableColumn": "Grid Column", "hivuiSam_table_tableColumnCount": "Grid Total Column", "hivuiSam_table_chartColumn": "Chart Columns", "hivuiSam_table_chartColumnCount": "Chart Column Summary", "hivuiSam_check_overlay": "Overlay", "hivuiSam_check_directPerspective": "Direct Perspective", "hivuiSam_layout_panel": "Panel", "hivuiSam_layout_conditionPanel": "Condition Panel", "hivuiSam_layout_setPanel": "Settings Panel", "hivuiSam_layout_summary": "Summary conditions", "hivuiSam_form_group": "Grouping conditions", "hivuiSam_form_xInverse": "Horizontal Flip", "hivuiSam_form_toolbox": "Toolbox", "hivuiSam_form_axisMarking": "Axis marking", "hivuiSam_form_legend": "Legend", "hivuiSam_form_tipStyle": "Prompt Style", "hivuiSam_form_staField": "Statistical Fields", "hivuiSam_form_title": "Title", "hivuiSam_form_mainTitle": "Main Title", "hivuiSam_form_subTitle": "Sub Title", "hivuiSam_form_weekColumns": "Weekly column", "hivuiSam_form_column": "Column number", "hivuiSam_form_week": "Period per column", "hivuiSam_title_num": "Display values", "hivuiSam_title_percent": "Display percentage", "hivuiSam_title_columnSet": "Analyze Column Settings", "hivuiSam_title_analysisField": "Select Analysis Field", "hivuiSam_title_groupField": "Select Group Gield", "hivuiSam_label_none": "None", "hivuiSam_label_depthAnalysis": "Deep analysis", "hivuiSam_name_empty": "Empty", "hivuiSam_name_sum": "Sum", };
var GLOBAL_LANG_TPL = { "hivuiBirt_formToolBar_add": "Add", "hivuiBirt_formToolBar_cancel": "Cancel", "hivuiBirt_formToolBar_flowOut": "FlowOut", "hivuiBirt_formToolBar_flowBack": "FlowBack", "hivuiBirt_formToolBar_signOut": "SignOut", "hivuiBirt_formToolBar_turnOut": "TurnOut", "hivuiBirt_formToolBar_terminate": "Terminate", "hivuiBirt_formToolBar_monitor": "Monitoring", "hivuiBirt_formToolBar_approval": "Approval", "hivuiBirt_formToolBar_print": "Print", "hivuiBirt_formToolBar_prints": "Prints", "hivuiBirt_formToolBar_export": "Export", "hivuiBirt_formToolBar_import": "Import", "hivuiBirt_formToolBar_remove": "Remove", "hivuiBirt_formToolBar_save": "Save", "hivuiBirt_formToolBar_takenorder": "Takenorder", "hivuiBirt_datetime_to": "To", "hivuiBirt_datetime_start": "Start", "hivuiBirt_datetime_end": "End", "hivuiBirt_datetime_now": "Now", "hivuiBirt_datetime_yesterday": "yesterday", "hivuiBirt_datetime_last7": "Recent 7 days", "hivuiBirt_datetime_last28": "Recent 28 days", "hivuiBirt_datetime_last84": "Recent 84 days", "hivuiBirt_datetime_halfYear": "Nearly half a year", "hivuiBirt_datetime_oneYear": "Last 1 year", "hivuiBirt_datetime_overdue": "Expired", "hivuiBirt_datetime_threeMonth": "Within 3 months", "hivuiBirt_datetime_three2six_months": "3 to 6 months", "hivuiBirt_datetime_six2nine_months": "6 to 9 months", "hivuiBirt_datetime_nine_months": "More than 9 months", "hivuiBirt_datetime_eighteen_months": "Over 18 months", "hivuiBirt_datetime_two_years": "More than 2 years", "hivuiBirt_datetime_three_years": "More than 3 years", "hivuiBirt_datetime_week": "This week", "hivuiBirt_datetime_month": "This month", "hivuiBirt_datetime_quarter": "This quarter", "hivuiBirt_datetime_year": "This year", "hivuiBirt_btn_query": "Query", "hivuiBirt_btn_add": "Add", "hivuiBirt_btn_remove": "Remove", "hivuiBirt_btn_edit": "Edit", "hivuiBirt_btn_save": "Save", "hivuiBirt_btn_disabled": "Disable", "hivuiBirt_btn_confirm": "Ok", "hivuiBirt_btn_cancel": "Cancel", "hivuiBirt_btn_enable": "Enable", "hivuiBirt_btn_resetpw": "Reset pw ", "hivuiBirt_btn_model_download": "Template download", "hivuiBirt_btn_return": "Return", "hivuiBirt_btn_detail": "Detail", "hivuiBirt_btn_start": "Start", "hivuiBirt_btn_run": "Run", "hivuiBirt_btn_stop": "Stop", "hivuiBirt_btn_dispatch_once": "Dispatch once", "hivuiBirt_btn_query_log": "Query log", "hivuiBirt_btn_sync_job": "Sync Job", "hivuiBirt_btn_collect": "Collect", "hivuiBirt_btn_collect_cancel": "Cancel Collection", "hivuiBirt_btn_click_upload": "Click Upload", "hivuiBirt_btn_checked": "Selected", "hivuiBirt_btn_unchecked": "Not selected", "hivuiBirt_btn_all": "All", "hivuiBirt_btn_upload": "upload", "hivuiBirt_table_empty_text": "No data", "hivuiBirt_table_operate": "Operation", "hivuiBirt_table_index": "Index", "hivuiBirt_table_resname": "Function Name", "hivuiBirt_table_assignName": "Authorized objects", "hivuiBirt_table_field": "Field", "hivuiBirt_table_fieldId": "Field Id", "hivuiBirt_table_fieldName": "Field name", "hivuiBirt_table_readOnly": "RadOnly", "hivuiBirt_table_require": "Require", "hivuiBirt_table_hide": "Hide", "hivuiBirt_table_noOutPut": "No output", "hivuiBirt_table_import": "Import", "hivuiBirt_table_unImport": "Not import", "hivuiBirt_table_company": "Company", "hivuiBirt_table_dataAuth": "Data permissions", "hivuiBirt_table_dept": "Dept List", "hivuiBirt_table_role": "Role List", "hivuiBirt_table_user": "User List", "hivuiBirt_table_column": "Column Setting", "hivuiBirt_message_turnOut": "Turn out successful!", "hivuiBirt_message_turnBack": "Turn back successful!", "hivuiBirt_message_remove": "Remove successful!", "hivuiBirt_message_save": "Save successful!", "hivuiBirt_message_sureCheck": "Are you sure to check?", "hivuiBirt_message_login": "Login successful", "hivuiBirt_message_nodeDel": "Please select the node to delete.", "hivuiBirt_message_notDir": "Non directory nodes cannot add child nodes.", "hivuiBirt_message_nodeEdit": "Please select the node to modify.", "hivuiBirt_message_flow_func": "Only process or function nodes can be selected.", "hivuiBirt_message_addData": "Please add data", "hivuiBirt_message_isConfirm": "This will permanently delete the data. Continue?", "hivuiBirt_message_confirm_clearLog": "This will clean up all logs. Continue?", "hivuiBirt_message_confirmCancel": "Are you sure to cancel?", "hivuiBirt_message_confirmDisabled": "Are you sure to disable this user?", "hivuiBirt_message_confirmEnable": "Are you sure to enable this user?", "hivuiBirt_message_tip": "Tips", "hivuiBirt_message_disabled": "Disabled successfully", "hivuiBirt_message_enable": "Enabled successfully", "hivuiBirt_message_cancel": "Canceled", "hivuiBirt_message_resetpw": "Password reset successful!", "hivuiBirt_message_password": "Please enter a new password (password length 4-16)", "hivuiBirt_message_password_error": "Incorrect password format", "hivuiBirt_message_reset_user": "Please select the user to reset", "hivuiBirt_message_No": "No", "hivuiBirt_message_phone": "phone number", "hivuiBirt_message_format_error": "Format error", "hivuiBirt_message_missing_data": "missing data", "hivuiBirt_message_userid": "User Id", "hivuiBirt_message_username": "User name", "hivuiBirt_message_roleid": "Role Id", "hivuiBirt_message_orgid": "Institution Code", "hivuiBirt_message_deptid": "Department Code", "hivuiBirt_message_no_exist": "non-existent", "hivuiBirt_message_import": "Import successfully", "hivuiBirt_message_no_importData": "No imported data detected", "hivuiBirt_message_schedule_empty": "Scheduling configuration is empty", "hivuiBirt_message_operate_suc": "Operation successful", "hivuiBirt_message_sync_suc": "Sync successful", "hivuiBirt_message_next_time": "Next execution time", "hivuiBirt_message_confirm_job": "Are you sure to import the job?", "hivuiBirt_message_clear_suc": "Cleanup successful", "hivuiBirt_message_collect_suc": "Collection succeeded", "hivuiBirt_message_confirm_save": "Are you sure to save?", "hivuiBirt_message_clear_add": "You have selected Clear Add , which will clear all the original permissions of the Selected Function Menu and reassign the current permissions. Please use with caution!", "hivuiBirt_message_fieldError": "Error getting field information", "hivuiBirt_message_dataScheme": "Please select a data scheme", "hivuiBirt_message_res": "Please select the resource menu", "hivuiBirt_message_user": "Please select a user", "hivuiBirt_message_confirmStop": "Are you sure to stop?", "hivuiBirt_message_confirmStart": "Are you sure to start?", "hivuiBirt_message_confirmRemove": "Are you sure to remove?", "hivuiBirt_message_removeContinue": "Do you want to continue deleting data and cannot be restored?", "hivuiBirt_message_input": "Please input ", "hivuiBirt_message_inputKeyWord": "Please input keyword", "hivuiBirt_message_select": "Select", "hivuiBirt_message_confirmCancel": "The data has been changed. Are you sure you want to cancel?", "hivuiBirt_export_name": "User Information", "hivuiBirt_export_username": "User name", "hivuiBirt_export_userid": "User Id", "hivuiBirt_export_sex": "Sex", "hivuiBirt_templates_list": "List", "hivuiBirt_templates_detail": "Detail", "hivuiBirt_templates_add": "Add", "hivuiBirt_templates_adds": "Adds", "hivuiBirt_validate_FMBPHONE": "Please enter the correct phone number", "hivuiBirt_validate_FEMAIL": "Please enter the correct email address", "hivuiBirt_validate_FIDCARD": "Please enter the correct ID number", "hivuiBirt_validate_FUSERID": "Please enter the user id", "hivuiBirt_validate_FTITLE": "Cannot start with a number, and can only contain Chinese, letters, numbers,+, -_", "hivuiBirt_AppversionFields_FGUID": "GUID", "hivuiBirt_AppversionFields_FNAME": "FNAME", "hivuiBirt_AppversionFields_FVERSION": "FVERSION", "hivuiBirt_AppversionFields_FTYPE": "FTYPE", "hivuiBirt_AppversionFields_FDOWNLOADURL": "FDOWNLOADURL", "hivuiBirt_AppversionFields_FUPFORCE": "FUPFORCE", "hivuiBirt_AppversionFields_FRECSTATUS": "FRECSTATUS", "hivuiBirt_AppversionFields_FNOTE": "FNOTE", "hivuiBirt_CommoncodeFields_FGUID": "FGUID", "hivuiBirt_CommoncodeFields_FCODEID": "FCODEID", "hivuiBirt_CommoncodeFields_FFORMAT": "FFORMAT", "hivuiBirt_CommoncodeFields_FCOUNT": "FCOUNT", "hivuiBirt_CommoncodeFields_FCOUNTTYPE": "FCOUNTTYPE", "hivuiBirt_CommoncodeFields_FCOUNTTYPENAME": "FCOUNTTYPENAME", "hivuiBirt_CommoncodeFields_FINIT": "FINIT", "hivuiBirt_CommoncodeFields_FDESCRIPTION": "FDESCRIPTION", "hivuiBirt_ComponentVersionFields_FID": "FID", "hivuiBirt_ComponentVersionFields_FNAME": "FNAME", "hivuiBirt_ComponentVersionFields_FDESC": "FDESC", "hivuiBirt_ComponentVersionFields_FVERSION": "FVERSION", "hivuiBirt_ComponentVersionFields_FBetaVERSION": "FBetaVERSION", "hivuiBirt_ComponentVersionFields_FSOURCETYPE": "FSOURCETYPE", "hivuiBirt_ComponentVersionFields_FUSETYPE": "FUSETYPE", "hivuiBirt_ServerFields_FID": "FID", "hivuiBirt_ServerFields_FDESC": "FDESC", "hivuiBirt_ServerFields_FIP": "FIP", "hivuiBirt_ServerFields_FPORT": "FPORT", "hivuiBirt_ServerFields_FNOTE": "FNOTE", "hivuiBirt_ServerFields_FPASSWORD": "FPASSWORD", "hivuiBirt_ServerFields_FSERVERID": "FSERVERID", "hivuiBirt_ServerFields_FDEPLOYID": "FDEPLOYID", "hivuiBirt_ServerFields_FPROJECTNAME": "FPROJECTNAME", "hivuiBirt_ServerFields_FDEVOWNER": "FDEVOWNER", "hivuiBirt_ServerFields_FOPERATORNAME": "FOPERATORNAME", "hivuiBirt_ServerFields_FCREATETIME": "FCREATETIME", "hivuiBirt_EnumsFields_FENUMSGUID": "FENUMSGUID", "hivuiBirt_EnumsFields_FSCHEME": "FSCHEME", "hivuiBirt_EnumsFields_FGROUPID": "FGROUPID", "hivuiBirt_EnumsFields_FGROUPNAME": "FGROUPNAME", "hivuiBirt_EnumsFields_FOPTIONNAME": "FOPTIONNAME", "hivuiBirt_EnumsFields_FOPTIONVALUE": "FOPTIONVALUE", "hivuiBirt_EnumsFields_FOPTIONORDER": "FOPTIONORDER", "hivuiBirt_ExecutorFields_FGUID": "FGUID", "hivuiBirt_ExecutorFields_FNAME": "FNAME", "hivuiBirt_ExecutorFields_FDISPLAYNAME": "FDISPLAYNAME", "hivuiBirt_ExecutorFields_FLOWPATH": "FLOWPATH", "hivuiBirt_ExecutorFields_FVERSION": "FVERSION", "hivuiBirt_ExecutorFields_FORGID": "FORGID", "hivuiBirt_ExecutorFields_FORGNAME": "FORGNAME", "hivuiBirt_ExecutorDtlFields_FDTLGUID": "FDTLGUID", "hivuiBirt_ExecutorDtlFields_FGUID": "FGUID", "hivuiBirt_ExecutorDtlFields_FNODETYPE": "FNODETYPE", "hivuiBirt_ExecutorDtlFields_FNODETYPENAME": "FNODETYPENAME", "hivuiBirt_ExecutorDtlFields_FTASKNAME": "FTASKNAME", "hivuiBirt_ExecutorDtlFields_FTASKDISPLAYNAME": "FTASKDISPLAYNAME", "hivuiBirt_ExecutorDtlFields_FBZID": "FBZID", "hivuiBirt_ExecutorDtlFields_FBZNAME": "FBZNAME", "hivuiBirt_ExecutorDtlFields_FROLEID": "FROLEID", "hivuiBirt_ExecutorDtlFields_FROLENAME": "FROLENAME", "hivuiBirt_ExecutorDtlFields_FP1": "FP1", "hivuiBirt_ExecutorDtlFields_FP2": "FP2", "hivuiBirt_ExecutorDtlFields_FP3": "FP3", "hivuiBirt_FlowuxFields_FGUID": "FGUID", "hivuiBirt_FlowuxFields_FTITLE": "FTITLE", "hivuiBirt_FlowuxFields_FBIZPATHTPL": "FBIZPATHTPL", "hivuiBirt_FlowuxFields_FBIZPATHUX": "FBIZPATHUX", "hivuiBirt_FlowuxFields_FBIZPATHFUN": "FBIZPATHFUN", "hivuiBirt_FlowuxFields_FNOTE": "FNOTE", "hivuiBirt_JobInfoFields_id": "id", "hivuiBirt_JobInfoFields_jobGroup": "jobGroup", "hivuiBirt_JobInfoFields_jobDesc": "jobDesc", "hivuiBirt_JobInfoFields_addTime": "addTime", "hivuiBirt_JobInfoFields_updateTime": "updateTime", "hivuiBirt_JobInfoFields_author": "author", "hivuiBirt_JobInfoFields_alarmEmail": "alarmEmail", "hivuiBirt_JobInfoFields_scheduleType": "scheduleType", "hivuiBirt_JobInfoFields_scheduleConf": "scheduleConf", "hivuiBirt_JobInfoFields_misfireStrategy": "misfireStrategy", "hivuiBirt_JobInfoFields_executorRouteStrategy": "executorRouteStrategy", "hivuiBirt_JobInfoFields_executorHandler": "executorHandler", "hivuiBirt_JobInfoFields_executorParam": "executorParam", "hivuiBirt_JobInfoFields_executorBlockStrategy": "executorBlockStrategy", "hivuiBirt_JobInfoFields_executorTimeout": "executorTimeout", "hivuiBirt_JobInfoFields_executorFailRetryCount": "executorFailRetryCount", "hivuiBirt_JobInfoFields_glueType": "glueType", "hivuiBirt_JobInfoFields_glueSource": "glueSource", "hivuiBirt_JobInfoFields_glueRemark": "glueRemark", "hivuiBirt_JobInfoFields_glueUpdatetime": "glueUpdatetime", "hivuiBirt_JobInfoFields_childJobId": "childJobId", "hivuiBirt_JobInfoFields_triggerStatus": "triggerStatus", "hivuiBirt_JobInfoFields_triggerLastTime": "triggerLastTime", "hivuiBirt_JobInfoFields_triggerNextTime": "triggerNextTime", "hivuiBirt_JobInfoFields_controlId": "controlId", "hivuiBirt_JobLogFields_id": "id", "hivuiBirt_JobLogFields_jobId": "jobId", "hivuiBirt_JobLogFields_jobGroup": "jobGroup", "hivuiBirt_JobLogFields_executorAddress": "executorAddress", "hivuiBirt_JobLogFields_executorHandler": "executorHandler", "hivuiBirt_JobLogFields_executorParam": "executorParam", "hivuiBirt_JobLogFields_executorShardingParam": "executorShardingParam", "hivuiBirt_JobLogFields_executorFailRetryCount": "executorFailRetryCount", "hivuiBirt_JobLogFields_triggerTime": "triggerTime", "hivuiBirt_JobLogFields_triggerCode": "triggerCode", "hivuiBirt_JobLogFields_triggerMsg": "triggerMsg", "hivuiBirt_JobLogFields_handleTime": "handleTime", "hivuiBirt_JobLogFields_handleCode": "handleCode", "hivuiBirt_JobLogFields_handleMsg": "handleMsg", "hivuiBirt_JobLogFields_alarmStatus": "alarmStatus", "hivuiBirt_LevelFields_FLEVELGUID": "FLEVELGUID", "hivuiBirt_LevelFields_FLEVELPGUID": "FLEVELPGUID", "hivuiBirt_LevelFields_FLEVELID": "FLEVELID", "hivuiBirt_LevelFields_FLEVELNAME": "FLEVELNAME", "hivuiBirt_LevelFields_FLEVELNAMEJP": "FLEVELNAMEJP", "hivuiBirt_LevelFields_FLEVELTREENO": "FLEVELTREENO", "hivuiBirt_LevelFields_FLEVELIDPATH": "FLEVELIDPATH", "hivuiBirt_LevelFields_FLEVELKIND": "FLEVELKIND", "hivuiBirt_LevelFields_FLEVELKINDNAME": "FLEVELKINDNAME", "hivuiBirt_LevelFields_FSTATE": "FSTATE", "hivuiBirt_LevelFields_FNOTE": "FNOTE", "hivuiBirt_LogLoginFields_FUSERID": "FUSERID", "hivuiBirt_LogLoginFields_FUSERNAME": "FUSERNAME", "hivuiBirt_LogLoginFields_FSOFTNAME": "FSOFTNAME", "hivuiBirt_LogLoginFields_FSOFTVER": "FSOFTVER", "hivuiBirt_LogLoginFields_FPCNAME": "FPCNAME", "hivuiBirt_LogLoginFields_FPCIP": "FPCIP", "hivuiBirt_LogLoginFields_FPCMAC": "FPCMAC", "hivuiBirt_LogLoginFields_FSESSIONID": "FSESSIONID", "hivuiBirt_LogLoginFields_FLOGINTIME": "FLOGINTIME", "hivuiBirt_LogLoginFields_FLOGOUTTIME": "FLOGOUTTIME", "hivuiBirt_LogLoginFields_FDEVICETYPE": "FDEVICETYPE", "hivuiBirt_LogLoginFields_FNOTE": "FNOTE", "hivuiBirt_LogReqFields_FGUID": "GUID", "hivuiBirt_LogReqFields_FUSERID": "FUSERID", "hivuiBirt_LogReqFields_FUSERNAME": "FUSERNAME", "hivuiBirt_LogReqFields_FBZID": "FBZID", "hivuiBirt_LogReqFields_FBZNAME": "FBZNAME", "hivuiBirt_LogReqFields_FTERMINAL": "FTERMINAL", "hivuiBirt_LogReqFields_FTERMINALNAME": "FTERMINALNAME", "hivuiBirt_LogReqFields_FIP": "FIP", "hivuiBirt_LogReqFields_FNAME": "FNAME", "hivuiBirt_LogReqFields_FURL": "FURL", "hivuiBirt_LogReqFields_FPARAMS": "FPARAMS", "hivuiBirt_LogReqFields_FSUCCESS": "FSUCCESS", "hivuiBirt_LogReqFields_FEXCEPTION": "FEXCEPTION", "hivuiBirt_LogReqFields_FSTARTTIME": "FSTARTTIME", "hivuiBirt_LogReqFields_FENDTIME": "FENDTIME", "hivuiBirt_LogReqFields_FCOST": "FCOST", "hivuiBirt_MsgFields_FGUID": "GUID", "hivuiBirt_MsgFields_FTITLE": "FTITLE", "hivuiBirt_MsgFields_FSTATE": "FSTATE", "hivuiBirt_MsgFields_FSTATENAME": "FSTATENAME", "hivuiBirt_MsgFields_FMSGTYPE": "FMSGTYPE", "hivuiBirt_MsgFields_FMSGTYPENAME": "FMSGTYPE", "hivuiBirt_MsgFields_FCONTENT": "FCONTENT", "hivuiBirt_MsgFields_FMSGLEVEL": "FMSGLEVEL", "hivuiBirt_MsgFields_FMSGLEVELNAME": "FMSGLEVELNAME", "hivuiBirt_MsgFields_FSAVETAG": "FSAVETAG", "hivuiBirt_MsgSetFields_FGUID": "GUID", "hivuiBirt_MsgSetFields_FUSERID": "FUSERID", "hivuiBirt_MsgSetFields_FMSGTYPE": "FMSGTYPE", "hivuiBirt_MsgSetFields_FMSGTYPENAME": "FMSGTYPENAME", "hivuiBirt_MsgSetFields_FEMAIL": "FEMAIL", "hivuiBirt_MsgSetFields_FSHOTMSG": "FSHOTMSG", "hivuiBirt_MsgSetFields_FWECHAT": "FWECHAT", "hivuiBirt_MsgSetFields_FAPP": "FAPP", "hivuiBirt_MsgTplFields_FGUID": "GUID", "hivuiBirt_MsgTplFields_FMSGID": "FMSGID", "hivuiBirt_MsgTplFields_FMSGTYPE": "FMSGTYPE", "hivuiBirt_MsgTplFields_FMSGTYPENAME": "FMSGTYPENAME", "hivuiBirt_MsgTplFields_FTITLE": "FTITLE", "hivuiBirt_MsgTplFields_FCONTENT": "FCONTENT", "hivuiBirt_OrgFields_FGUID": "GUID", "hivuiBirt_OrgFields_FORGPGUID": "FORGPGUID", "hivuiBirt_OrgFields_FORGTREENO": "FORGTREENO", "hivuiBirt_OrgFields_FORGID": "FORGID", "hivuiBirt_OrgFields_FORGPID": "FORGPID", "hivuiBirt_OrgFields_FPORGID": "FPORGID", "hivuiBirt_OrgFields_FPORGNAME": "FPORGNAME", "hivuiBirt_OrgFields_FC1": "FC1", "hivuiBirt_OrgFields_FORGSNAME": "FORGSNAME", "hivuiBirt_OrgFields_FORGNAMEJP": "FORGNAMEJP", "hivuiBirt_OrgFields_FORGKIND": "FORGKIND", "hivuiBirt_OrgFields_FORGKINDNAME": "FORGKINDNAME", "hivuiBirt_OrgFields_FORGIDPATH": "FORGIDPATH", "hivuiBirt_OrgFields_FORGDIMENSION": "FORGDIMENSION", "hivuiBirt_OrgFields_FORGDIMENSIONNAME": "FORGDIMENSIONNAME", "hivuiBirt_OrgFields_FLEVELID": "FLEVELID", "hivuiBirt_OrgFields_FLEVELNAME": "FLEVELNAME", "hivuiBirt_OrgFields_FORDER": "FORDER", "hivuiBirt_OrgFields_FBZID": "FBZID", "hivuiBirt_OrgFields_FUSERID": "FUSERID", "hivuiBirt_OrgFields_FUSERNAME": "FUSERNAME", "hivuiBirt_OrgFields_FORGNAME": "FORGNAME", "hivuiBirt_OrgFields_FBZNAME": "FBZNAME", "hivuiBirt_OrgFields_FDEFAULTBZ": "FDEFAULTBZ", "hivuiBirt_OrgFields_FSTATE": "FSTATE", "hivuiBirt_OrgFields_FROLEID": "FROLEID", "hivuiBirt_OrgFields_FROLEGUID": "FROLEGUID", "hivuiBirt_OrgFields_FROLENAME": "FROLENAME", "hivuiBirt_OrgFields_FSUPERUSERID": "FSUPERUSERID", "hivuiBirt_OrgFields_FSUPERUSERNAME": "FSUPERUSERNAME", "hivuiBirt_OrgFields_FSUPERBZID": "FSUPERBZID", "hivuiBirt_OrgFields_FSUPERBZNAME": "FSUPERBZNAME", "hivuiBirt_OrgFields_FNOTE": "FNOTE", "hivuiBirt_OrgFields_FDEPTID": "FDEPTID", "hivuiBirt_OrgFields_FDEPTGUID": "FDEPTGUID", "hivuiBirt_OrgFields_FDEPTNAME": "FDEPTNAM", "hivuiBirt_ResourceFields_FRESGUID": "FRESGUID", "hivuiBirt_ResourceFields_FRESPGUID": "FRESPGUID", "hivuiBirt_ResourceFields_FRESTREENO": "FRESTREENO", "hivuiBirt_ResourceFields_FPROJECTID": "FPROJECTID", "hivuiBirt_ResourceFields_FRESURL": "FRESURL", "hivuiBirt_ResourceFields_FC1": "FC1", "hivuiBirt_ResourceFields_FC2": "FC2", "hivuiBirt_ResourceFields_FRESNAME": "FRESNAME", "hivuiBirt_ResourceFields_FRESNAMEJP": "FRESNAMEJP", "hivuiBirt_ResourceFields_FRESTYPE": "FRESTYPE", "hivuiBirt_ResourceFields_FRESTYPENAME": "FRESTYPENAME", "hivuiBirt_ResourceFields_FORDER": "FORDER", "hivuiBirt_ResourceFields_FICONCLASS": "FICONCLASS", "hivuiBirt_ResourceFields_FAPPICONCLASS": "FAPPICONCLASS", "hivuiBirt_ResourceFields_FICONCOLOR": "FICONCOLOR", "hivuiBirt_ResourceFields_FSHOW": "FSHOW", "hivuiBirt_ResourceFields_FSHOWNAME": "FSHOWNAME", "hivuiBirt_ResourceFields_FISACTIVE": "FISACTIVE", "hivuiBirt_ResourceFields_FISOFFLINE": "FISOFFLINE", "hivuiBirt_ResourceFields_FSTATE": "FSTATE", "hivuiBirt_ResourceFields_FPOSITION": "FPOSITION", "hivuiBirt_ResourceFields_FPOSITIONNAME": "FPOSITIONNAME", "hivuiBirt_ResourceFields_FSHOWLABEL": "FSHOWLABEL", "hivuiBirt_ResourceFields_FOPENLABEL": "FOPENLABEL", "hivuiBirt_ResourceFields_FNOTE": "FNOTE", "hivuiBirt_ResourceFields_FBIZPATHUX": "FBIZPATHUX", "hivuiBirt_RoleFields_FROLEGUID": "FROLEGUID", "hivuiBirt_RoleFields_FROLEPGUID": "FROLEPGUID", "hivuiBirt_RoleFields_FC1": "FC1", "hivuiBirt_RoleFields_FC2": "FC2", "hivuiBirt_RoleFields_FROLEID": "FROLEID", "hivuiBirt_RoleFields_FROLENAME": "FROLENAME", "hivuiBirt_RoleFields_FSUPERID": "FSUPERID", "hivuiBirt_RoleFields_FSUPERGUID": "FSUPERGUID", "hivuiBirt_RoleFields_FSUPERNAME": "FSUPERNAME", "hivuiBirt_RoleFields_FRESTYPENAME": "FRESTYPENAME", "hivuiBirt_RoleFields_FORDER": "FORDER", "hivuiBirt_RoleFields_FICONCLASS": "FICONCLASS", "hivuiBirt_RoleFields_FAPPICONCLASS": "FAPPICONCLASS", "hivuiBirt_RoleFields_FICONCOLOR": "FICONCOLOR", "hivuiBirt_RoleFields_FSHOW": "FSHOW", "hivuiBirt_RoleFields_FROLEKIND": "FROLEKIND", "hivuiBirt_RoleFields_FROLEKINDNAME": "FROLEKINDNAME", "hivuiBirt_RoleFields_FISACTIVE": "FISACTIVE", "hivuiBirt_RoleFields_FISOFFLINE": "FISOFFLINE", "hivuiBirt_RoleFields_FSTATE": "FSTATE", "hivuiBirt_RoleFields_FPOSITION": "FPOSITION", "hivuiBirt_RoleFields_FPOSITIONNAME": "FPOSITIONNAME", "hivuiBirt_RoleFields_FSHOWLABEL": "FSHOWLABEL", "hivuiBirt_RoleFields_FOPENLABEL": "FOPENLABEL", "hivuiBirt_RoleFields_FNOTE": "FNOTE", "hivuiBirt_RoleMappingFields_FGUID": "GUID", "hivuiBirt_RoleMappingFields_FSROLEID": "FSROLEID", "hivuiBirt_RoleMappingFields_FSROLENAME": "FSROLENAME", "hivuiBirt_RoleMappingFields_FTORGID": "FTORGID", "hivuiBirt_RoleMappingFields_FTORGNAME": "FTORGNAME", "hivuiBirt_RoleMappingFields_FTROLEID": "FTROLEID", "hivuiBirt_RoleMappingFields_FTROLENAME": "FTROLENAME", "hivuiBirt_RoleMappingFields_FSTATE": "FSTATE", "hivuiBirt_RoleMappingFields_FROLEIDPATH": "FROLEIDPATH", "hivuiBirt_RoleMappingFields_FNOTE": "FNOTE", "hivuiBirt_SchemeFields_FGUID": "FGUID", "hivuiBirt_SchemeFields_FSCHEMENAME": "FSCHEMENAME", "hivuiBirt_SchemeFields_FSCHEMETYPE": "FSCHEMETYPE", "hivuiBirt_SchemeFields_FSCHEMETYPENAME": "FSCHEMETYPENAME", "hivuiBirt_SchemeFields_FCONTENT": "FCONTENT", "hivuiBirt_SchemeFields_FFUNCURL": "FFUNCURL", "hivuiBirt_SchemeFields_FAFFAIRNAME": "FAFFAIRNAME", "hivuiBirt_SchemeFields_FUSERID": "FUSERID", "hivuiBirt_SchemeFields_FROLEID": "FROLEID", "hivuiBirt_SchemeFields_FDEPTID": "FDEPTID", "hivuiBirt_SysFields_SYS_FAUDITPOINT": "FAUDITPOINT", "hivuiBirt_SysFields_SYS_FAUDITTASK": "FAUDITTASK", "hivuiBirt_SysFields_SYS_FAUDITRECORD": "FAUDITRECORD", "hivuiBirt_SysFields_SYS_FAUDITTIME": "FAUDITTIME", "hivuiBirt_SysFields_SYS_FOPERATOR": "FOPERATOR", "hivuiBirt_SysFields_SYS_FOPERATORBZ": "FOPERATORBZ", "hivuiBirt_SysFields_SYS_FOPERATORNAME": "FOPERATORNAME", "hivuiBirt_SysFields_SYS_FAGENT": "FAGENT", "hivuiBirt_SysFields_SYS_FAGENTBZ": "FAGENTBZ", "hivuiBirt_SysFields_SYS_FAGENTNAME": "FAGENTNAME", "hivuiBirt_SysFields_SYS_FORGID": "FORGID", "hivuiBirt_SysFields_SYS_FORGNAME": "FORGNAME", "hivuiBirt_SysFields_SYS_FWRITETIME": "FWRITETIME", "hivuiBirt_SysFields_SYS_FEDITOR": "FEDITOR", "hivuiBirt_SysFields_SYS_FEDITTIME": "FEDITTIME", "hivuiBirt_SysFields_SYS_FMODIFY": "FMODIFY", "hivuiBirt_UpgradeFields_FID": "GUID", "hivuiBirt_UpgradeFields_FTYPE": "FTYPE", "hivuiBirt_UpgradeFields_FTYPENAME": "FTYPENAME", "hivuiBirt_UpgradeFields_FOWNER": "FOWNER", "hivuiBirt_UpgradeFields_FPN": "FPN", "hivuiBirt_UpgradeFields_FPW": "FPW", "hivuiBirt_UpgradeFields_FFILE": "FFILE", "hivuiBirt_UpgradeFields_FVERSION": "FVERSION", "hivuiBirt_UpgradeFields_FOPERATOR": "FOPERATOR", "hivuiBirt_UpgradeFields_FTIME": "FTIME", "hivuiBirt_UserFields_FUSERID": "FUSERID", "hivuiBirt_UserFields_FUSERNAMEID": "FUSERNAMEID", "hivuiBirt_UserFields_FMBPHONE": "FMBPHONE", "hivuiBirt_UserFields_FEMAIL": "FEMAIL", "hivuiBirt_UserFields_FQQ": "FQQ", "hivuiBirt_UserFields_FWEIXIN": "FWEIXIN", "hivuiBirt_UserFields_FPASSWORD": "FPASSWORD", "hivuiBirt_UserFields_FSECONDPWD": "FSECONDPWD", "hivuiBirt_UserFields_FTHIRDPWD": "FTHIRDPWD", "hivuiBirt_UserFields_FSTATE": "FSTATE", "hivuiBirt_UserDetailFields_FBZID": "FBZID", "hivuiBirt_UserDetailFields_FBZNAME": "FBZNAME", "hivuiBirt_UserDetailFields_FUSERID": "FUSERID", "hivuiBirt_UserDetailFields_FUSERNAME": "FUSERNAME", "hivuiBirt_UserDetailFields_FORGNAME": "FORGNAME", "hivuiBirt_UserDetailFields_FROLENAME": "FROLENAME", "hivuiBirt_UserInfoFields_FUSERID": "FUSERID", "hivuiBirt_UserInfoFields_FUSERID2": "FUSERID2", "hivuiBirt_UserInfoFields_FNUMBER": "FNUMBER", "hivuiBirt_UserInfoFields_FBZID": "FBZID", "hivuiBirt_UserInfoFields_FUSERNAME": "FUSERNAME", "hivuiBirt_UserInfoFields_FUSERNAMEJP": "FUSERNAMEJP", "hivuiBirt_UserInfoFields_FCITYLIST": "FCITYLIST", "hivuiBirt_UserInfoFields_FUSERPROVINCE": "FUSERPROVINCE", "hivuiBirt_UserInfoFields_FUSERCITY": "FUSERCITY", "hivuiBirt_UserInfoFields_FUSERSTYLE": "FUSERSTYLE", "hivuiBirt_UserInfoFields_FUSERMAINMBURL": "FUSERMAINMBURL", "hivuiBirt_UserInfoFields_FUSERMAINPCURL": "FUSERMAINPCURL", "hivuiBirt_UserInfoFields_FUSERTYPE": "FUSERTYPE", "hivuiBirt_UserInfoFields_FUSERTYPENAME": "FUSERTYPENAME", "hivuiBirt_UserInfoFields_FUSERSFZ": "FUSERSFZ", "hivuiBirt_UserInfoFields_FUSERSFZPIC1": "FUSERSFZPIC1", "hivuiBirt_UserInfoFields_FUSERSFZPIC2": "FUSERSFZPIC2", "hivuiBirt_UserInfoFields_FBIRTHDAY": "FBIRTHDAY", "hivuiBirt_UserInfoFields_FSTATE": "FSTATE", "hivuiBirt_UserInfoFields_FSEX": "FSEX", "hivuiBirt_UserInfoFields_FADDRESS": "FADDRESS", "hivuiBirt_UserInfoFields_FMBPHONE": "FMBPHONE", "hivuiBirt_UserInfoFields_FPHONE": "FPHONE", "hivuiBirt_UserInfoFields_FEMAIL": "FEMAIL", "hivuiBirt_UserInfoFields_FQQ": "FQQ", "hivuiBirt_UserInfoFields_FWEIXIN": "FWEIXIN", "hivuiBirt_UserInfoFields_FUSERPHOTO": "FUSERPHOTO", "hivuiBirt_UserInfoFields_FUSERSIGN": "FUSERSIGN", "hivuiBirt_UserInfoFields_FUSERSIGN2": "FUSERSIGN2", "hivuiBirt_UserInfoFields_FUSERSIGN3": "FUSERSIGN3", "hivuiBirt_UserInfoFields_FREGIP": "FREGIP", "hivuiBirt_UserInfoFields_FNOTE": "FNOTE", "hivuiBirt_UserInfoFields_FFAX": "FFAX", "hivuiBirt_UserInfoFields_FUSERORGPATH": "FUSERORGPATH", "hivuiBirt_UseroperateFields_FGUID": "GUID", "hivuiBirt_UseroperateFields_FUSERID": "FUSERID", "hivuiBirt_UseroperateFields_FKEY": "FKEY", "hivuiBirt_UseroperateFields_FVALUE": "FVALUE", "hivuiBirt_UseroperateFields_FWRITETIME": "FWRITETIME", "hivuiBirt_UseroperateFields_FNAME": "FNAME", "hivuiBirt_UseroperateFields_FTYPE": "FTYPE", "hivuiBirt_LanguageFields_FGUID": "GUID", "hivuiBirt_LanguageFields_FLANFILE": "FLANFILE", "hivuiBirt_LanguageFields_FTYPE": "FTYPE", "hivuiBirt_title_baseInfo": "Basic information", "hivuiBirt_title_contactInfo": "Contact information", "hivuiBirt_title_certificaInfo": "Certification information", "hivuiBirt_title_operatorInfo": "Voucher Preparation Information", "hivuiBirt_title_job_log": "Job Log", "hivuiBirt_title_clear_log": "Clean up logs", "hivuiBirt_title_cur_node": "Current node information", "hivuiBirt_title_child_node": "Child node information", "hivuiBirt_title_save_confirm": "Save Confirmation", "hivuiBirt_title_loading": "Loading...", "hivuiBirt_title_clear_add": "Clear add", "hivuiBirt_title_query": "Query", "hivuiBirt_tip_disable_node": "If you disable this node, its child nodes will also be disabled. Please consider carefully!", "hivuiBirt_tip_resource_order": "Tips: The default value for sorting is 0, 0 does not participate in sorting", "hivuiBirt_tip_scheme": "Tips: When the transaction name is empty, the scheme is visible within the functional range. When the transaction name has a value, the scheme is only visible within the corresponding transaction range under this function。", "hivuiBirt_tip_schemetype": "Tips: When the scheme type is permission, personnel permission, position permission, and department permission are valid.", "hivuiBirt_step_assign_obj": "Select Assignment Object", "hivuiBirt_step_edit_obj": "Select Modify Object", "hivuiBirt_step_assign_func": "Select distribution function", "hivuiBirt_step_edit_func": "Select Modify Function", "hivuiBirt_step_assign_auth": "Assign data permissions and operation permissions", "hivuiBirt_step_edit_auth": "Modify data permissions and operation permissions", "hivuiBirt_step_assign_data": "Data Permission Assignment", "hivuiBirt_step_assign_operate": "Operation permission assignment", "hivuiBirt_step_editAssignObj": "Modify Authorization Object", "hivuiBirt_step_next": "Next Step", "hivuiBirt_pane_editByObj": "Modify by Assignment Object", "hivuiBirt_pane_editByFunc": "Modify by Assignment Object", "hivuiBirt_pane_checkByFunc": "Reverse check by function", "hivuiBirt_pane_checkByUser": "Reverse Query by User", "hivuiBirt_dialog_res": "Select Resource Tree", "hivuiBirt_dialog_flowux": "Select Custom Process", "hivuiBirt_dialog_outputField": "Output field", "hivuiBirt_dialog_org": "Select Organization", "hivuiBirt_dialog_role": "Select Role", "hivuiBirt_dialog_dept": "Select Department", "hivuiBirt_dialog_flow": "Select process", "hivuiBirt_dialog_level": "Select Level", "hivuiBirt_dialog_user": "Select Responsible Person", "hivuiBirt_dialog_username": "Select User", "hivuiBirt_dialog_menu": "Select Menu", "hivuiBirt_dialog_superRole": "Select Inherited Position", "hivuiBirt_dialog_exportProcess": "Export Progress", "hivuiBirt_icon_root": "Root", "hivuiBirt_icon_dir": "Dir", "hivuiBirt_icon_role": "Role", "hivuiBirt_icon_func": "Function", "hivuiBirt_icon_flow": "Flow", "hivuiBirt_icon_level": "Level", "hivuiBirt_icon_addBrother": "add brother", "hivuiBirt_icon_addChild": "add child", "hivuiBirt_sex_man": "Man", "hivuiBirt_sex_woman": "Woman", "hivuiBirt_state_yes": "Yes", "hivuiBirt_state_no": "No", };
Ignore Space
Show notes
View
project/hivuiSam/lang/zh-CN.js
var GLOBAL_LANG_TPL = { "hivuiBirt_datetime_to": "至", "hivuiBirt_datetime_start": "开始日期", "hivuiBirt_datetime_end": "结束日期", "hivuiBirt_datetime_now": "本日", "hivuiBirt_datetime_yesterday": "昨日", "hivuiBirt_datetime_last7": "近7日", "hivuiBirt_datetime_last28": "近28日", "hivuiBirt_datetime_last84": "近84日", "hivuiBirt_datetime_halfYear": "近半年", "hivuiBirt_datetime_oneYear": "近1年", "hivuiBirt_datetime_overdue": "已过期", "hivuiBirt_datetime_threeMonth": "三个月内", "hivuiBirt_datetime_three2six_months": "三至六个月", "hivuiBirt_datetime_six2nine_months": "六至九个月", "hivuiBirt_datetime_nine_months": "九个月以上", "hivuiBirt_datetime_eighteen_months": "18个月上", "hivuiBirt_datetime_two_years": "二年以上", "hivuiBirt_datetime_three_years": "三年以上", "hivuiBirt_datetime_week": "本周", "hivuiBirt_datetime_month": "本月", "hivuiBirt_datetime_quarter": "本季度", "hivuiBirt_datetime_year": "本年度", "hivuiSam_btn_back": "后退", "hivuiSam_btn_go": "前进", "hivuiSam_btn_sort": "排序", "hivuiSam_btn_noSort": "不排序", "hivuiSam_btn_columnSet": "列设置", "hivuiSam_btn_refresh": "刷新", "hivuiSam_btn_edit": "编辑", "hivuiSam_btn_confirm": "确定", "hivuiSam_btn_remove": "删除", "hivuiSam_btn_executeOverlay": "执行叠加", "hivuiSam_btn_analysisRecord": "分析记录", "hivuiSam_btn_schemeList": "方案列表", "hivuiSam_btn_export": "导出excel", "hivuiSam_btn_schemeSave": "导出excel", "hivuiSam_table_scheme": "方案名称", "hivuiSam_table_abbreviation": "缩写", "hivuiSam_table_operate": "操作", "hivuiSam_check_overlay": "叠加", "hivuiSam_check_directPerspective": "直接透视", "hivuiSam_layout_panel": "面板", "hivuiSam_layout_conditionPanel": "条件面板", "hivuiSam_layout_setPanel": "设置面板", "hivuiSam_layout_summary": "汇总条件", "hivuiSam_form_group": "分组条件", "hivuiSam_form_xInverse": "横轴翻转", "hivuiSam_form_toolBar": "显示工具条", };
var GLOBAL_LANG_TPL = { "hivuiBirt_formToolBar_add": "添加", "hivuiBirt_formToolBar_cancel": "取消", "hivuiBirt_formToolBar_flowOut": "流转", "hivuiBirt_formToolBar_flowBack": "回退", "hivuiBirt_formToolBar_signOut": "加签", "hivuiBirt_formToolBar_turnOut": "转办", "hivuiBirt_formToolBar_terminate": "终止", "hivuiBirt_formToolBar_monitor": "流程监控", "hivuiBirt_formToolBar_approval": "流程审批", "hivuiBirt_formToolBar_print": "打印", "hivuiBirt_formToolBar_prints": "批量打印", "hivuiBirt_formToolBar_export": "导出", "hivuiBirt_formToolBar_import": "导入", "hivuiBirt_formToolBar_remove": "删除", "hivuiBirt_formToolBar_save": "保存", "hivuiBirt_formToolBar_takenorder": "调单", "hivuiBirt_datetime_to": "至", "hivuiBirt_datetime_start": "开始日期", "hivuiBirt_datetime_end": "结束日期", "hivuiBirt_datetime_now": "本日", "hivuiBirt_datetime_yesterday": "昨日", "hivuiBirt_datetime_last7": "近7日", "hivuiBirt_datetime_last28": "近28日", "hivuiBirt_datetime_last84": "近84日", "hivuiBirt_datetime_halfYear": "近半年", "hivuiBirt_datetime_oneYear": "近1年", "hivuiBirt_datetime_overdue": "已过期", "hivuiBirt_datetime_threeMonth": "三个月内", "hivuiBirt_datetime_three2six_months": "三至六个月", "hivuiBirt_datetime_six2nine_months": "六至九个月", "hivuiBirt_datetime_nine_months": "九个月以上", "hivuiBirt_datetime_eighteen_months": "18个月上", "hivuiBirt_datetime_two_years": "二年以上", "hivuiBirt_datetime_three_years": "三年以上", "hivuiBirt_datetime_week": "本周", "hivuiBirt_datetime_month": "本月", "hivuiBirt_datetime_quarter": "本季度", "hivuiBirt_datetime_year": "本年度", "hivuiBirt_btn_query": "查询", "hivuiBirt_btn_add": "新增", "hivuiBirt_btn_remove": "删除", "hivuiBirt_btn_edit": "修改", "hivuiBirt_btn_save": "保存", "hivuiBirt_btn_disabled": "禁用", "hivuiBirt_btn_confirm": "确定", "hivuiBirt_btn_cancel": "取消", "hivuiBirt_btn_enable": "启用", "hivuiBirt_btn_resetpw": "重置密码", "hivuiBirt_btn_model_download": "模板下载", "hivuiBirt_btn_return": "返回", "hivuiBirt_btn_detail": "详情", "hivuiBirt_btn_start": "启动", "hivuiBirt_btn_run": "运行", "hivuiBirt_btn_stop": "停止", "hivuiBirt_btn_dispatch_once": "调度一次", "hivuiBirt_btn_query_log": "查看日志", "hivuiBirt_btn_sync_job": "同步作业", "hivuiBirt_btn_collect": "收藏", "hivuiBirt_btn_collect_cancel": "取消收藏", "hivuiBirt_btn_click_upload": "点击上传", "hivuiBirt_btn_checked": "已选", "hivuiBirt_btn_unchecked": "未选", "hivuiBirt_btn_all": "全部", "hivuiBirt_btn_upload": "上传", "hivuiBirt_table_empty_text": "暂无数据", "hivuiBirt_table_operate": "操作", "hivuiBirt_table_index": "序号", "hivuiBirt_table_resname": "功能名称", "hivuiBirt_table_assignName": "授权对象", "hivuiBirt_table_field": "字段", "hivuiBirt_table_fieldId": "字段id", "hivuiBirt_table_fieldName": "字段名", "hivuiBirt_table_readOnly": "只读", "hivuiBirt_table_require": "必填", "hivuiBirt_table_hide": "隐藏", "hivuiBirt_table_noOutPut": "不输出", "hivuiBirt_table_import": "导入", "hivuiBirt_table_unImport": "不导入", "hivuiBirt_table_company": "所属公司", "hivuiBirt_table_dataAuth": "数据权限", "hivuiBirt_table_dept": "部门列表", "hivuiBirt_table_role": "岗位列表", "hivuiBirt_table_user": "用户列表", "hivuiBirt_table_column": "列设置", "hivuiBirt_message_turnOut": "流转成功!", "hivuiBirt_message_turnBack": "回退成功!", "hivuiBirt_message_remove": "删除成功!", "hivuiBirt_message_save": "保存成功!", "hivuiBirt_message_sureCheck": "确定勾选吗?", "hivuiBirt_message_login": "登录成功", "hivuiBirt_message_nodeDel": "请选择要删除的节点", "hivuiBirt_message_notDir": "非目录节点不能新增子节点", "hivuiBirt_message_nodeEdit": "请选择要修改的节点", "hivuiBirt_message_flow_func": "只能选中流程或功能节点", "hivuiBirt_message_addData": "请添加数据", "hivuiBirt_message_isConfirm": "此操作将永久删除该数据, 是否继续?", "hivuiBirt_message_confirm_clearLog": "此操作将清理所有日志, 是否继续?", "hivuiBirt_message_confirmCancel": "确定取消吗?", "hivuiBirt_message_confirmDisabled": "确定禁用该用户吗?", "hivuiBirt_message_confirmEnable": "确定启用用该用户吗?", "hivuiBirt_message_tip": "提示", "hivuiBirt_message_disabled": "禁用成功", "hivuiBirt_message_enable": "启用成功", "hivuiBirt_message_cancel": "已取消", "hivuiBirt_message_resetpw": "密码重置成功", "hivuiBirt_message_password": "请输入新的密码(密码长度4-16)", "hivuiBirt_message_password_error": "密码格式不正确", "hivuiBirt_message_reset_user": "请选择要重置的用户", "hivuiBirt_message_No": "第", "hivuiBirt_message_phone": "手机号", "hivuiBirt_message_format_error": "格式错误", "hivuiBirt_message_missing_data": "条数据缺少", "hivuiBirt_message_userid": "用户工号", "hivuiBirt_message_username": "用户姓名", "hivuiBirt_message_roleid": "岗位编码", "hivuiBirt_message_orgid": "机构编码", "hivuiBirt_message_deptid": "部门编码", "hivuiBirt_message_no_exist": "不存在", "hivuiBirt_message_import": "导入成功!", "hivuiBirt_message_no_importData": "没有检测到导入的数据", "hivuiBirt_message_schedule_empty": "调度配置为空", "hivuiBirt_message_operate_suc": "操作成功", "hivuiBirt_message_sync_suc": "同步成功", "hivuiBirt_message_next_time": "下次执行时间", "hivuiBirt_message_confirm_job": "确定导入作业吗", "hivuiBirt_message_clear_suc": "清理成功", "hivuiBirt_message_collect_suc": "收藏成功", "hivuiBirt_message_confirm_save": "是否确认保存?", "hivuiBirt_message_clear_add": "您已选择“清空添加”,即将清空“已选功能菜单”原有的所有权限,重新分配当前权限,请慎用?", "hivuiBirt_message_fieldError": "获取字段信息错误", "hivuiBirt_message_dataScheme": "请选择数据方案", "hivuiBirt_message_res": "请选择资源菜单", "hivuiBirt_message_user": "请选择用户", "hivuiBirt_message_confirmStop": "确定停止吗", "hivuiBirt_message_confirmStart": "确定启动吗", "hivuiBirt_message_confirmRemove": "确定删除吗", "hivuiBirt_message_removeContinue": "是否继续删除数据,无法还原?", "hivuiBirt_message_input": "请输入", "hivuiBirt_message_inputKeyWord": "请输入关键字", "hivuiBirt_message_select": "请选择", "hivuiBirt_message_confirmCancel": "数据已更改,是否确定取消?", "hivuiBirt_export_name": "用户信息", "hivuiBirt_export_username": "姓名", "hivuiBirt_export_userid": "工号", "hivuiBirt_export_sex": "性别", "hivuiBirt_templates_list": "列表", "hivuiBirt_templates_detail": "详情", "hivuiBirt_templates_add": "新增", "hivuiBirt_templates_adds": "批量新增", "hivuiBirt_validate_FMBPHONE": "请输入正确的电话号码", "hivuiBirt_validate_FEMAIL": "请输入正确的邮箱地址", "hivuiBirt_validate_FIDCARD": "请输入正确的身份证号", "hivuiBirt_validate_FUSERID": "请输入工号", "hivuiBirt_validate_FTITLE": "不能以数字开头,且只能包含中文、字母、数字、+、-、_", "hivuiBirt_AppversionFields_FGUID": "GUID", "hivuiBirt_AppversionFields_FNAME": "名称", "hivuiBirt_AppversionFields_FVERSION": "版本号", "hivuiBirt_AppversionFields_FTYPE": "类型", "hivuiBirt_AppversionFields_FDOWNLOADURL": "下载地址", "hivuiBirt_AppversionFields_FUPFORCE": "是否强制升级", "hivuiBirt_AppversionFields_FRECSTATUS": "是否开启", "hivuiBirt_AppversionFields_FNOTE": "版本说明", "hivuiBirt_CommoncodeFields_FGUID": "GUID", "hivuiBirt_CommoncodeFields_FCODEID": "功能ID", "hivuiBirt_CommoncodeFields_FFORMAT": "编码格式", "hivuiBirt_CommoncodeFields_FCOUNT": "当前计数", "hivuiBirt_CommoncodeFields_FCOUNTTYPE": "计数方式", "hivuiBirt_CommoncodeFields_FCOUNTTYPENAME": "计数方式名称", "hivuiBirt_CommoncodeFields_FINIT": "初始值", "hivuiBirt_CommoncodeFields_FDESCRIPTION": "说明", "hivuiBirt_ComponentVersionFields_FID": "ID", "hivuiBirt_ComponentVersionFields_FNAME": "组件名称", "hivuiBirt_ComponentVersionFields_FDESC": "组件描述", "hivuiBirt_ComponentVersionFields_FVERSION": "版本", "hivuiBirt_ComponentVersionFields_FBetaVERSION": "Beta版本", "hivuiBirt_ComponentVersionFields_FSOURCETYPE": "源类型", "hivuiBirt_ComponentVersionFields_FUSETYPE": "使用类型", "hivuiBirt_ServerFields_FID": "ID", "hivuiBirt_ServerFields_FDESC": "名称", "hivuiBirt_ServerFields_FIP": "ip地址", "hivuiBirt_ServerFields_FPORT": "端口号", "hivuiBirt_ServerFields_FNOTE": "备注", "hivuiBirt_ServerFields_FPASSWORD": "密码", "hivuiBirt_ServerFields_FSERVERID": "服务器ID", "hivuiBirt_ServerFields_FDEPLOYID": "部署ID", "hivuiBirt_ServerFields_FPROJECTNAME": "项目名称", "hivuiBirt_ServerFields_FDEVOWNER": "项目拥有者", "hivuiBirt_ServerFields_FOPERATORNAME": "操作者", "hivuiBirt_ServerFields_FCREATETIME": "创建时间", "hivuiBirt_EnumsFields_FENUMSGUID": "枚举GUID", "hivuiBirt_EnumsFields_FSCHEME": "方案名称", "hivuiBirt_EnumsFields_FGROUPID": "分组ID", "hivuiBirt_EnumsFields_FGROUPNAME": "分组名称", "hivuiBirt_EnumsFields_FOPTIONNAME": "项名称", "hivuiBirt_EnumsFields_FOPTIONVALUE": "项显示值", "hivuiBirt_EnumsFields_FOPTIONORDER": "排序", "hivuiBirt_ExecutorFields_FGUID": "GUID", "hivuiBirt_ExecutorFields_FNAME": "流程名称", "hivuiBirt_ExecutorFields_FDISPLAYNAME": "流程中文名称", "hivuiBirt_ExecutorFields_FLOWPATH": "流程功能路径", "hivuiBirt_ExecutorFields_FVERSION": "流程版本", "hivuiBirt_ExecutorFields_FORGID": "应用机构ID", "hivuiBirt_ExecutorFields_FORGNAME": "应用机构名称", "hivuiBirt_ExecutorDtlFields_FDTLGUID": "记录GUID", "hivuiBirt_ExecutorDtlFields_FGUID": "父记录GUID", "hivuiBirt_ExecutorDtlFields_FNODETYPE": "环节类型", "hivuiBirt_ExecutorDtlFields_FNODETYPENAME": "环节类型名称", "hivuiBirt_ExecutorDtlFields_FTASKNAME": "环节名称", "hivuiBirt_ExecutorDtlFields_FTASKDISPLAYNAME": "环节中文名称", "hivuiBirt_ExecutorDtlFields_FBZID": "执行者编制ID", "hivuiBirt_ExecutorDtlFields_FBZNAME": "执行者编制名称", "hivuiBirt_ExecutorDtlFields_FROLEID": "执行岗位ID", "hivuiBirt_ExecutorDtlFields_FROLENAME": "执行岗位名称", "hivuiBirt_ExecutorDtlFields_FP1": "排序", "hivuiBirt_ExecutorDtlFields_FP2": "参数2", "hivuiBirt_ExecutorDtlFields_FP3": "参数3", "hivuiBirt_FlowuxFields_FGUID": "GUID", "hivuiBirt_FlowuxFields_FTITLE": "流程标题", "hivuiBirt_FlowuxFields_FBIZPATHTPL": "模板流程业务路径", "hivuiBirt_FlowuxFields_FBIZPATHUX": "自定义流程业务路径", "hivuiBirt_FlowuxFields_FBIZPATHFUN": "功能路径", "hivuiBirt_FlowuxFields_FNOTE": "备注", "hivuiBirt_JobInfoFields_id": "id", "hivuiBirt_JobInfoFields_jobGroup": "执行器主键id", "hivuiBirt_JobInfoFields_jobDesc": "任务名称", "hivuiBirt_JobInfoFields_addTime": "新建时间", "hivuiBirt_JobInfoFields_updateTime": "更新时间", "hivuiBirt_JobInfoFields_author": "作者", "hivuiBirt_JobInfoFields_alarmEmail": "报警邮件", "hivuiBirt_JobInfoFields_scheduleType": "调度类型", "hivuiBirt_JobInfoFields_scheduleConf": "调度配置,值含义取决于调度类型", "hivuiBirt_JobInfoFields_misfireStrategy": "调度过期策略", "hivuiBirt_JobInfoFields_executorRouteStrategy": "执行器路由策略", "hivuiBirt_JobInfoFields_executorHandler": "执行器任务handler", "hivuiBirt_JobInfoFields_executorParam": "执行器任务参数", "hivuiBirt_JobInfoFields_executorBlockStrategy": "阻塞处理策略", "hivuiBirt_JobInfoFields_executorTimeout": "任务执行超时时间,单位秒", "hivuiBirt_JobInfoFields_executorFailRetryCount": "失败重试次数", "hivuiBirt_JobInfoFields_glueType": "GLUE类型", "hivuiBirt_JobInfoFields_glueSource": "GLUE源代码", "hivuiBirt_JobInfoFields_glueRemark": "GLUE备注", "hivuiBirt_JobInfoFields_glueUpdatetime": "GLUE更新时间", "hivuiBirt_JobInfoFields_childJobId": "子任务id,多个逗号分隔", "hivuiBirt_JobInfoFields_triggerStatus": "调度状态", "hivuiBirt_JobInfoFields_triggerLastTime": "上次调度时间", "hivuiBirt_JobInfoFields_triggerNextTime": "下次调度时间", "hivuiBirt_JobInfoFields_controlId": "控件id", "hivuiBirt_JobLogFields_id": "id", "hivuiBirt_JobLogFields_jobId": "任务ID", "hivuiBirt_JobLogFields_jobGroup": "执行器主键ID", "hivuiBirt_JobLogFields_executorAddress": "执行器地址,本次执行的地址", "hivuiBirt_JobLogFields_executorHandler": "执行器任务handler", "hivuiBirt_JobLogFields_executorParam": "执行器任务参数", "hivuiBirt_JobLogFields_executorShardingParam": "执行器任务分片参数,格式如 1/2", "hivuiBirt_JobLogFields_executorFailRetryCount": "失败重试次数", "hivuiBirt_JobLogFields_triggerTime": "调度时间", "hivuiBirt_JobLogFields_triggerCode": "调度结果", "hivuiBirt_JobLogFields_triggerMsg": "调度日志", "hivuiBirt_JobLogFields_handleTime": "执行时间", "hivuiBirt_JobLogFields_handleCode": "执行结果", "hivuiBirt_JobLogFields_handleMsg": "执行日志", "hivuiBirt_JobLogFields_alarmStatus": "告警状态", "hivuiBirt_LevelFields_FLEVELGUID": "职级ID", "hivuiBirt_LevelFields_FLEVELPGUID": "职级父ID", "hivuiBirt_LevelFields_FLEVELID": "职级号", "hivuiBirt_LevelFields_FLEVELNAME": "职级名称", "hivuiBirt_LevelFields_FLEVELNAMEJP": "职级简拼", "hivuiBirt_LevelFields_FLEVELTREENO": "树编号", "hivuiBirt_LevelFields_FLEVELIDPATH": "职级ID路径", "hivuiBirt_LevelFields_FLEVELKIND": "节点类型", "hivuiBirt_LevelFields_FLEVELKINDNAME": "节点类型名称", "hivuiBirt_LevelFields_FSTATE": "是否禁用", "hivuiBirt_LevelFields_FNOTE": "备注", "hivuiBirt_LogLoginFields_FUSERID": "用户ID", "hivuiBirt_LogLoginFields_FUSERNAME": "姓名", "hivuiBirt_LogLoginFields_FSOFTNAME": "软件名称", "hivuiBirt_LogLoginFields_FSOFTVER": "软件版本号", "hivuiBirt_LogLoginFields_FPCNAME": "计算机名", "hivuiBirt_LogLoginFields_FPCIP": "电脑IP", "hivuiBirt_LogLoginFields_FPCMAC": "硬件信息", "hivuiBirt_LogLoginFields_FSESSIONID": "会话sessionID", "hivuiBirt_LogLoginFields_FLOGINTIME": "登录时间", "hivuiBirt_LogLoginFields_FLOGOUTTIME": "登出时间", "hivuiBirt_LogLoginFields_FDEVICETYPE": "设备类型", "hivuiBirt_LogLoginFields_FNOTE": "备注", "hivuiBirt_LogReqFields_FGUID": "GUID", "hivuiBirt_LogReqFields_FUSERID": "用户ID", "hivuiBirt_LogReqFields_FUSERNAME": "姓名", "hivuiBirt_LogReqFields_FBZID": "编制ID", "hivuiBirt_LogReqFields_FBZNAME": "编制名称", "hivuiBirt_LogReqFields_FTERMINAL": "终端类型", "hivuiBirt_LogReqFields_FTERMINALNAME": "终端名称", "hivuiBirt_LogReqFields_FIP": "用户IP", "hivuiBirt_LogReqFields_FNAME": "功能名称", "hivuiBirt_LogReqFields_FURL": "请求URL", "hivuiBirt_LogReqFields_FPARAMS": "请求参数", "hivuiBirt_LogReqFields_FSUCCESS": "是否成功", "hivuiBirt_LogReqFields_FEXCEPTION": "异常信息", "hivuiBirt_LogReqFields_FSTARTTIME": "开始时间", "hivuiBirt_LogReqFields_FENDTIME": "结束时间", "hivuiBirt_LogReqFields_FCOST": "耗费时间(毫秒)", "hivuiBirt_MsgFields_FGUID": "GUID", "hivuiBirt_MsgFields_FTITLE": "消息标题", "hivuiBirt_MsgFields_FSTATE": "消息状态", "hivuiBirt_MsgFields_FSTATENAME": "消息状态名称", "hivuiBirt_MsgFields_FMSGTYPE": "消息类型", "hivuiBirt_MsgFields_FMSGTYPENAME": "消息类型", "hivuiBirt_MsgFields_FCONTENT": "消息内容", "hivuiBirt_MsgFields_FMSGLEVEL": "消息等级", "hivuiBirt_MsgFields_FMSGLEVELNAME": "消息等级名称", "hivuiBirt_MsgFields_FSAVETAG": "是否收藏", "hivuiBirt_MsgSetFields_FGUID": "GUID", "hivuiBirt_MsgSetFields_FUSERID": "订阅工号", "hivuiBirt_MsgSetFields_FMSGTYPE": "消息类型", "hivuiBirt_MsgSetFields_FMSGTYPENAME": "消息类型名称", "hivuiBirt_MsgSetFields_FEMAIL": "邮箱订阅", "hivuiBirt_MsgSetFields_FSHOTMSG": "短信订阅", "hivuiBirt_MsgSetFields_FWECHAT": "微信订阅", "hivuiBirt_MsgSetFields_FAPP": "APP订阅", "hivuiBirt_MsgTplFields_FGUID": "GUID", "hivuiBirt_MsgTplFields_FMSGID": "消息ID", "hivuiBirt_MsgTplFields_FMSGTYPE": "消息类型", "hivuiBirt_MsgTplFields_FMSGTYPENAME": "消息类型名称", "hivuiBirt_MsgTplFields_FTITLE": "消息标题", "hivuiBirt_MsgTplFields_FCONTENT": "消息内容", "hivuiBirt_OrgFields_FGUID": "GUID", "hivuiBirt_OrgFields_FORGPGUID": "机构父ID", "hivuiBirt_OrgFields_FORGTREENO": "树编号", "hivuiBirt_OrgFields_FORGID": "组织机构编码", "hivuiBirt_OrgFields_FORGPID": "组织父机构编码", "hivuiBirt_OrgFields_FPORGID": "父ORGID", "hivuiBirt_OrgFields_FPORGNAME": "父组织机构", "hivuiBirt_OrgFields_FC1": "组织机构编码", "hivuiBirt_OrgFields_FORGSNAME": "机构名称", "hivuiBirt_OrgFields_FORGNAMEJP": "简拼", "hivuiBirt_OrgFields_FORGKIND": "机构类型", "hivuiBirt_OrgFields_FORGKINDNAME": "机构类型", "hivuiBirt_OrgFields_FORGIDPATH": "组织机构路径", "hivuiBirt_OrgFields_FORGDIMENSION": "组织机构维度", "hivuiBirt_OrgFields_FORGDIMENSIONNAME": "组织机构维度", "hivuiBirt_OrgFields_FLEVELID": "职级ID", "hivuiBirt_OrgFields_FLEVELNAME": "职级名称", "hivuiBirt_OrgFields_FORDER": "排序", "hivuiBirt_OrgFields_FBZID": "编制号", "hivuiBirt_OrgFields_FUSERID": "负责人", "hivuiBirt_OrgFields_FUSERNAME": "负责人", "hivuiBirt_OrgFields_FORGNAME": "组织机构", "hivuiBirt_OrgFields_FBZNAME": "编制名称", "hivuiBirt_OrgFields_FDEFAULTBZ": "是否默认编制", "hivuiBirt_OrgFields_FSTATE": "是否禁用", "hivuiBirt_OrgFields_FROLEID": "岗位ID", "hivuiBirt_OrgFields_FROLEGUID": "岗位GUID", "hivuiBirt_OrgFields_FROLENAME": "岗位名称", "hivuiBirt_OrgFields_FSUPERUSERID": "直属上级", "hivuiBirt_OrgFields_FSUPERUSERNAME": "直属上级", "hivuiBirt_OrgFields_FSUPERBZID": "直属上级编制", "hivuiBirt_OrgFields_FSUPERBZNAME": "直属上级编制", "hivuiBirt_OrgFields_FNOTE": "备注", "hivuiBirt_OrgFields_FDEPTID": "部门ID", "hivuiBirt_OrgFields_FDEPTGUID": "部门Guid", "hivuiBirt_OrgFields_FDEPTNAME": "部门名称", "hivuiBirt_ResourceFields_FRESGUID": "菜单GUID", "hivuiBirt_ResourceFields_FRESPGUID": "菜单父GUID", "hivuiBirt_ResourceFields_FRESTREENO": "树编号", "hivuiBirt_ResourceFields_FPROJECTID": "当前项目ID", "hivuiBirt_ResourceFields_FRESURL": "资源(功能)路径", "hivuiBirt_ResourceFields_FC1": "业务路径", "hivuiBirt_ResourceFields_FC2": "打开方式", "hivuiBirt_ResourceFields_FRESNAME": "菜单名称", "hivuiBirt_ResourceFields_FRESNAMEJP": "简拼", "hivuiBirt_ResourceFields_FRESTYPE": "资源类型", "hivuiBirt_ResourceFields_FRESTYPENAME": "资源类型名称", "hivuiBirt_ResourceFields_FORDER": "排序", "hivuiBirt_ResourceFields_FICONCLASS": "PC图标", "hivuiBirt_ResourceFields_FAPPICONCLASS": "手机图标", "hivuiBirt_ResourceFields_FICONCOLOR": "图标颜色", "hivuiBirt_ResourceFields_FSHOW": "菜单显示类型", "hivuiBirt_ResourceFields_FSHOWNAME": "自定义菜单", "hivuiBirt_ResourceFields_FISACTIVE": "是否启动打开", "hivuiBirt_ResourceFields_FISOFFLINE": "是否支持离线", "hivuiBirt_ResourceFields_FSTATE": "是否禁用", "hivuiBirt_ResourceFields_FPOSITION": "方位", "hivuiBirt_ResourceFields_FPOSITIONNAME": "方位名称", "hivuiBirt_ResourceFields_FSHOWLABEL": "菜单显示类型", "hivuiBirt_ResourceFields_FOPENLABEL": "菜单打开方式", "hivuiBirt_ResourceFields_FNOTE": "备注", "hivuiBirt_ResourceFields_FBIZPATHUX": "自定义流程", "hivuiBirt_RoleFields_FROLEGUID": "岗位ID", "hivuiBirt_RoleFields_FROLEPGUID": "岗位父ID", "hivuiBirt_RoleFields_FC1": "组织机构编码", "hivuiBirt_RoleFields_FC2": "所属公司", "hivuiBirt_RoleFields_FROLEID": "岗位号", "hivuiBirt_RoleFields_FROLENAME": "岗位名称", "hivuiBirt_RoleFields_FSUPERID": "指定继承岗位", "hivuiBirt_RoleFields_FSUPERGUID": "指定继承岗位guid", "hivuiBirt_RoleFields_FSUPERNAME": "指定继承岗位", "hivuiBirt_RoleFields_FRESTYPENAME": "资源类型名称", "hivuiBirt_RoleFields_FORDER": "排序", "hivuiBirt_RoleFields_FICONCLASS": "PC图标", "hivuiBirt_RoleFields_FAPPICONCLASS": "手机图标", "hivuiBirt_RoleFields_FICONCOLOR": "图标颜色", "hivuiBirt_RoleFields_FSHOW": "菜单显示类型", "hivuiBirt_RoleFields_FROLEKIND": "节点类型", "hivuiBirt_RoleFields_FROLEKINDNAME": "节点类型", "hivuiBirt_RoleFields_FISACTIVE": "是否启动打开", "hivuiBirt_RoleFields_FISOFFLINE": "是否支持离线", "hivuiBirt_RoleFields_FSTATE": "是否禁用", "hivuiBirt_RoleFields_FPOSITION": "方位", "hivuiBirt_RoleFields_FPOSITIONNAME": "方位名称", "hivuiBirt_RoleFields_FSHOWLABEL": "菜单显示名称", "hivuiBirt_RoleFields_FOPENLABEL": "菜单打开名称", "hivuiBirt_RoleFields_FNOTE": "备注", "hivuiBirt_RoleMappingFields_FGUID": "GUID", "hivuiBirt_RoleMappingFields_FSROLEID": "EAP岗位号", "hivuiBirt_RoleMappingFields_FSROLENAME": "EAP岗位名称", "hivuiBirt_RoleMappingFields_FTORGID": "机构ID", "hivuiBirt_RoleMappingFields_FTORGNAME": "机构名称", "hivuiBirt_RoleMappingFields_FTROLEID": "岗位号", "hivuiBirt_RoleMappingFields_FTROLENAME": "岗位名称", "hivuiBirt_RoleMappingFields_FSTATE": "是否禁用", "hivuiBirt_RoleMappingFields_FROLEIDPATH": "岗位ID路径", "hivuiBirt_RoleMappingFields_FNOTE": "备注", "hivuiBirt_SchemeFields_FGUID": "方案ID", "hivuiBirt_SchemeFields_FSCHEMENAME": "方案名称", "hivuiBirt_SchemeFields_FSCHEMETYPE": "方案类型", "hivuiBirt_SchemeFields_FSCHEMETYPENAME": "机构ID", "hivuiBirt_SchemeFields_FCONTENT": "方案类型名称", "hivuiBirt_SchemeFields_FFUNCURL": "统计功能URL", "hivuiBirt_SchemeFields_FAFFAIRNAME": "事务名称", "hivuiBirt_SchemeFields_FUSERID": "人员权限", "hivuiBirt_SchemeFields_FROLEID": "岗位权限", "hivuiBirt_SchemeFields_FDEPTID": "部门权限", "hivuiBirt_SysFields_SYS_FAUDITPOINT": "审批状态", "hivuiBirt_SysFields_SYS_FAUDITTASK": "单据状态", "hivuiBirt_SysFields_SYS_FAUDITRECORD": "审批记录", "hivuiBirt_SysFields_SYS_FAUDITTIME": "审核时间", "hivuiBirt_SysFields_SYS_FOPERATOR": "制单人", "hivuiBirt_SysFields_SYS_FOPERATORBZ": "制单岗位号", "hivuiBirt_SysFields_SYS_FOPERATORNAME": "制单人", "hivuiBirt_SysFields_SYS_FAGENT": "代理人", "hivuiBirt_SysFields_SYS_FAGENTBZ": "代理岗位号", "hivuiBirt_SysFields_SYS_FAGENTNAME": "代理人", "hivuiBirt_SysFields_SYS_FORGID": "机构ID", "hivuiBirt_SysFields_SYS_FORGNAME": "机构名称", "hivuiBirt_SysFields_SYS_FWRITETIME": "制单时间", "hivuiBirt_SysFields_SYS_FEDITOR": "修改人", "hivuiBirt_SysFields_SYS_FEDITTIME": "修改时间", "hivuiBirt_SysFields_SYS_FMODIFY": "修改记录标识", "hivuiBirt_UpgradeFields_FID": "GUID", "hivuiBirt_UpgradeFields_FTYPE": "升级类型", "hivuiBirt_UpgradeFields_FTYPENAME": "升级类型", "hivuiBirt_UpgradeFields_FOWNER": "拥有者", "hivuiBirt_UpgradeFields_FPN": "项目名", "hivuiBirt_UpgradeFields_FPW": "制单岗位号", "hivuiBirt_UpgradeFields_FFILE": "文件", "hivuiBirt_UpgradeFields_FVERSION": "版本", "hivuiBirt_UpgradeFields_FOPERATOR": "操作者", "hivuiBirt_UpgradeFields_FTIME": "操作时间", "hivuiBirt_UserFields_FUSERID": "工号", "hivuiBirt_UserFields_FUSERNAMEID": "姓名", "hivuiBirt_UserFields_FMBPHONE": "手机号码", "hivuiBirt_UserFields_FEMAIL": "邮箱", "hivuiBirt_UserFields_FQQ": "QQ", "hivuiBirt_UserFields_FWEIXIN": "微信帐号", "hivuiBirt_UserFields_FPASSWORD": "密码", "hivuiBirt_UserFields_FSECONDPWD": "二重密码", "hivuiBirt_UserFields_FTHIRDPWD": "三重密码", "hivuiBirt_UserFields_FSTATE": "是否禁用", "hivuiBirt_UserDetailFields_FBZID": "编制ID", "hivuiBirt_UserDetailFields_FBZNAME": "编制名称", "hivuiBirt_UserDetailFields_FUSERID": "工号", "hivuiBirt_UserDetailFields_FUSERNAME": "姓名", "hivuiBirt_UserDetailFields_FORGNAME": "所属公司", "hivuiBirt_UserDetailFields_FROLENAME": "岗位名称", "hivuiBirt_UserInfoFields_FUSERID": "工号", "hivuiBirt_UserInfoFields_FUSERID2": "工号", "hivuiBirt_UserInfoFields_FNUMBER": "单号", "hivuiBirt_UserInfoFields_FBZID": "主岗编制", "hivuiBirt_UserInfoFields_FUSERNAME": "姓名", "hivuiBirt_UserInfoFields_FUSERNAMEJP": "简拼", "hivuiBirt_UserInfoFields_FCITYLIST": "所在城市", "hivuiBirt_UserInfoFields_FUSERPROVINCE": "所在省份", "hivuiBirt_UserInfoFields_FUSERCITY": "所在城市", "hivuiBirt_UserInfoFields_FUSERSTYLE": "皮肤", "hivuiBirt_UserInfoFields_FUSERMAINMBURL": "个人手机主页", "hivuiBirt_UserInfoFields_FUSERMAINPCURL": "个人PC主页", "hivuiBirt_UserInfoFields_FUSERTYPE": "类型", "hivuiBirt_UserInfoFields_FUSERTYPENAME": "用户类型", "hivuiBirt_UserInfoFields_FUSERSFZ": "身份证号", "hivuiBirt_UserInfoFields_FUSERSFZPIC1": "身份证正面照", "hivuiBirt_UserInfoFields_FUSERSFZPIC2": "身份证反面照", "hivuiBirt_UserInfoFields_FBIRTHDAY": "出生年月", "hivuiBirt_UserInfoFields_FSTATE": "是否禁用", "hivuiBirt_UserInfoFields_FSEX": "性别", "hivuiBirt_UserInfoFields_FADDRESS": "地址", "hivuiBirt_UserInfoFields_FMBPHONE": "手机号码", "hivuiBirt_UserInfoFields_FPHONE": "电话", "hivuiBirt_UserInfoFields_FEMAIL": "邮箱", "hivuiBirt_UserInfoFields_FQQ": "QQ号码", "hivuiBirt_UserInfoFields_FWEIXIN": "微信号码", "hivuiBirt_UserInfoFields_FUSERPHOTO": "用户头像", "hivuiBirt_UserInfoFields_FUSERSIGN": "电子签名", "hivuiBirt_UserInfoFields_FUSERSIGN2": "电子签名2", "hivuiBirt_UserInfoFields_FUSERSIGN3": "电子签名3", "hivuiBirt_UserInfoFields_FREGIP": "注册地址", "hivuiBirt_UserInfoFields_FNOTE": "备注", "hivuiBirt_UserInfoFields_FFAX": "传真", "hivuiBirt_UserInfoFields_FUSERORGPATH": "用户机构路径", "hivuiBirt_UseroperateFields_FGUID": "GUID", "hivuiBirt_UseroperateFields_FUSERID": "工号", "hivuiBirt_UseroperateFields_FKEY": "KEY", "hivuiBirt_UseroperateFields_FVALUE": "值", "hivuiBirt_UseroperateFields_FWRITETIME": "写入时间", "hivuiBirt_UseroperateFields_FNAME": "描述", "hivuiBirt_UseroperateFields_FTYPE": "类型", "hivuiBirt_LanguageFields_FGUID": "GUID", "hivuiBirt_LanguageFields_FLANFILE": "语言文件", "hivuiBirt_LanguageFields_FTYPE": "语言类型", "hivuiBirt_title_baseInfo": "基础信息", "hivuiBirt_title_contactInfo": "联系方式", "hivuiBirt_title_certificaInfo": "认证信息", "hivuiBirt_title_operatorInfo": "制单信息", "hivuiBirt_title_job_log": "作业日志", "hivuiBirt_title_clear_log": "清理日志", "hivuiBirt_title_cur_node": "当前节点信息", "hivuiBirt_title_child_node": "子节点信息", "hivuiBirt_title_save_confirm": "保存确认", "hivuiBirt_title_loading": "执行中...", "hivuiBirt_title_clear_add": "清空添加", "hivuiBirt_title_query": "查看", "hivuiBirt_tip_disable_node": "禁用此节点,其子节点也会被禁用,请慎重考虑!", "hivuiBirt_tip_resource_order": "提示:排序默认值为0,0不参与排序", "hivuiBirt_tip_scheme": "提示:当事务名称为空时方案在功能范围内可见,当事务名称有值时方案仅在此功能下相应事务范围内可见。", "hivuiBirt_tip_schemetype": "提示:当方案类型为权限时,人员权限、岗位权限、部门权限才有效。", "hivuiBirt_step_assign_obj": "选择分配对象", "hivuiBirt_step_edit_obj": "选择修改对象", "hivuiBirt_step_assign_func": "选择分配功能", "hivuiBirt_step_edit_func": "选择修改功能", "hivuiBirt_step_assign_auth": "分配数据权限、操作权限", "hivuiBirt_step_edit_auth": "修改数据权限、操作权限", "hivuiBirt_step_assign_data": "数据权限分配", "hivuiBirt_step_assign_operate": "操作权限分配", "hivuiBirt_step_editAssignObj": "修改授权对象", "hivuiBirt_step_next": "下一步", "hivuiBirt_pane_editByObj": "按分配对象修改", "hivuiBirt_pane_editByFunc": "按分配对象修改", "hivuiBirt_pane_checkByFunc": "按功能反查", "hivuiBirt_pane_checkByUser": "按用户反查", "hivuiBirt_dialog_res": "选择资源树", "hivuiBirt_dialog_flowux": "选择自定义流程", "hivuiBirt_dialog_outputField": "输出字段", "hivuiBirt_dialog_org": "选择组织机构", "hivuiBirt_dialog_role": "选择岗位", "hivuiBirt_dialog_dept": "选择部门", "hivuiBirt_dialog_flow": "选择流程", "hivuiBirt_dialog_level": "选择职级", "hivuiBirt_dialog_user": "选择负责人", "hivuiBirt_dialog_username": "选择用户", "hivuiBirt_dialog_menu": "选择菜单", "hivuiBirt_dialog_superRole": "选择继承岗位", "hivuiBirt_dialog_exportProcess": "导出进度", "hivuiBirt_icon_root": "根节点", "hivuiBirt_icon_dir": "文件夹", "hivuiBirt_icon_role": "岗位", "hivuiBirt_icon_func": "功能", "hivuiBirt_icon_flow": "流程", "hivuiBirt_icon_level": "职级", "hivuiBirt_icon_addBrother": "新增同级", "hivuiBirt_icon_addChild": "新增子级", "hivuiBirt_sex_man": "男", "hivuiBirt_sex_woman": "女", "hivuiBirt_state_yes": "是", "hivuiBirt_state_no": "否", };
Show line notes below