Commit 3226f369 authored by 陶进's avatar 陶进

提交一下

parent a8139a60
.mini-size .el-tabs__item {
font-size: 12px;
height: 28px;
line-height: 28px;
}
.industry-tree-box {
max-height: 300px;
overflow: scroll;
overflow-x: hidden;
font-size: 12px;
}
.mini-size .el-tree-node__label {
font-size: 12px;
}
/* .single-column{
display: flex;
align-items: center;
}
.single-column .title{
min-width: 80px;
margin-right: 12px;
text-align: right;
} */
.small-checkbox .el-checkbox__label{
font-size: 12px;
}
\ No newline at end of file
This diff is collapsed.
<template>
<div class="flex-form-detail no-bg">
<div style="margin-bottom: 20px" class="small-checkbox">
<el-checkbox
:indeterminate="companyStatusCheck.isIndeterminate"
v-model="companyStatusCheck.checkAll"
@change="handleCheckAllChange($event, companyStatusCheck)"
>全选</el-checkbox>
<el-checkbox-group
v-model="companyStatusCheck.checkedItems"
@change="handleCheckedResults($event, companyStatusCheck)"
>
<el-checkbox
v-for="item in companyStatusData"
:value="item['F90063V']"
:label="item['F90063V']"
:key="item['F90063V']"
>{{item['F90064V']}}</el-checkbox>
</el-checkbox-group>
</div>
<div style="margin-bottom: 20px" class="small-checkbox">
<el-checkbox
:indeterminate="companyTypeCheck.isIndeterminate"
v-model="companyTypeCheck.checkAll"
@change="handleCheckAllChange($event, companyTypeCheck)"
>全选</el-checkbox>
<el-checkbox-group
v-model="companyTypeCheck.checkedItems"
@change="handleCheckedResults($event, companyTypeCheck)"
>
<el-checkbox value="001001" label="001001">A股</el-checkbox>
<el-checkbox value="001002" label="001002">B股</el-checkbox>
<el-checkbox value="001013" label="001013">CDR</el-checkbox>
</el-checkbox-group>
</div>
<el-tabs v-model="activeRangeTab" class="mini-size" style="margin-bottom: 12px" type="card">
<el-tab-pane label="单个添加" :name="'3'">
<div>
<el-select
v-model="rangeCompany"
filterable
remote
@change="addRangeCompany"
placeholder="请输入名称或代码"
:remote-method="searchRunningCompany"
:loading="searchCompanyLoading"
size="mini"
>
<el-option
v-for="item in runningCompanyList"
:key="item.F90001V"
:label="item.F90002V + ' ' + item.F90001V"
:value="item.F90002V + ',' + item.F90001V"
></el-option>
</el-select>
</div>
</el-tab-pane>
<el-tab-pane label="excel导入" :name="'6'">
<div
style="padding-bottom: 8px; color: #999; font-size: 12px"
>excel格式:表为两列, 表头必须为字符"name"、"code", 表身对应为证券简称、证券代码</div>
<div>
<input type="file" @change="selectedExcel($event, selectedRangeCompany, 0)" />
</div>
<div style="padding-top: 12px">
<span style="color: #d0021b; font-size: 12px; cursor: pointer" @click="downloadExample">下载示例表格</span>
</div>
</el-tab-pane>
<!-- <el-tab-pane label="证监会行业" :name="'1'">
<div class="mini-size industry-tree-box">
<el-tree
:indent="8"
accordion
:expand-on-click-node="false"
@node-click="searchCompanyByIndustry($event, 1)"
:data="zjhIndustryData"
node-key="id"
ref="zjhCategory"
highlight-current
></el-tree>
</div>
</el-tab-pane> -->
<el-tab-pane label="行业分类" :name="'2'">
<div class="mini-size industry-tree-box">
<el-tree
:indent="8"
accordion
:expand-on-click-node="false"
@node-click="searchCompanyByIndustry($event, 1)"
:data="zjhIndustryData"
node-key="id"
ref="zjhCategory"
></el-tree>
<el-tree
:indent="8"
accordion
:expand-on-click-node="false"
@node-click="searchCompanyByIndustry($event, 2)"
:data="swIndustryData"
node-key="id"
ref="swCategory"
></el-tree>
</div>
</el-tab-pane>
<el-tab-pane label="市场分类" :name="'5'">
<div class="mini-size industry-tree-box">
<el-tree
:indent="8"
accordion
:data="marketData"
highlight-current
ref="marketCategory"
:expand-on-click-node="false"
@node-click="searchCompanyByIndustry($event, 3)"
></el-tree>
</div>
</el-tab-pane>
<el-tab-pane label="地域分类" :name="'4'">
<div class="mini-size industry-tree-box">
<el-tree
:indent="8"
accordion
:data="positionData"
highlight-current
ref="posCategory"
:expand-on-click-node="false"
@node-click="searchCompanyByIndustry($event, 4)"
></el-tree>
</div>
</el-tab-pane>
</el-tabs>
<pl-table
size="mini"
style="width:521px"
max-height="300"
height="300"
use-virtual
:row-height="24"
v-loading="searchCompanyLoading"
:data="selectedRangeCompany"
:header-cell-style="{background:'#f5f7fa',color:'#666'}"
border>
<pl-table-column fixed width="50" label="序号" type="index"></pl-table-column>
<pl-table-column>
<template slot="header" slot-scope="scope">
<span>证券名称</span>
</template>
<template slot-scope="scope">{{scope.row.name}}</template>
</pl-table-column>
<pl-table-column>
<template slot="header" slot-scope="scope">
<span>证券代码</span>
</template>
<template slot-scope="scope">{{scope.row.code}}</template>
</pl-table-column>
<pl-table-column width="80">
<template slot="header" slot-scope="scope">
<span>操作</span>
</template>
<template slot-scope="scope">
<span
class="hover-icon el-icon-delete"
@click="selectedRangeCompany.splice(scope.$index, 1)"
>删除</span>
</template>
</pl-table-column>
</pl-table>
<div style="font-size: 12px; margin-top: 8px; color: #d0021b">
<span
class="el-icon-refresh-right"
style="cursor: pointer"
@click="selectedRangeCompany = []"
>清空表格</span>
</div>
</div>
</template>
\ No newline at end of file
.calculater-display{
border-bottom: 1px solid #eaeaea;
height: 320px;
box-sizing: border-box;
padding: 10px;
max-width: 600px;
overflow: scroll;
overflow-x: hidden;
}
.calculater-keybord{
font-size: 0px;
border-bottom: 1px solid #eaeaea;
border-top: 0;
/* border-bottom: 0; */
box-sizing: border-box;
max-width: 600px;
height: 40px;
}
.calculater-keybord .single-bord:last-child{
border-right: 1px solid #eaeaea;
}
.calculater-keybord .single-bord{
width: 40px;
height: 40px;
text-align: center;
line-height: 40px;
font-size: 20px;
color: #333;
box-sizing: border-box;
cursor: pointer;
user-select: none;
float: left;
border-right: 1px solid #eaeaea;
}
.calculater-keybord .single-bord.long{
width: 80px;
}
.calculater-keybord .single-bord.active{
color: #d0021b;
background: #FFE7E7;
}
.calculater-keybord .single-bord.active:active{
color: #fff;
background: #d0021b;
}
.calculater-keybord .single-bord:active{
background: #FFE7E7;
}
.calculater-keybord .single-bord:hover{
color: #d0021b;
}
.calculater-keybord .single-bord+.single-bord{
/* border-left: 1px solid #eaeaea; */
}
.calculater-keybord .single-bord.text{
font-size: 12px;
}
.calculater-operation{
margin-top: 12px;
}
/* .calculater-tip{
font-size: 12px;
} */
.calculater-operation span{
display: inline-block;
padding: 4px 8px;
border: 1px solid #eaeaea;
border-radius: 4px;
cursor: pointer;
}
.calculater-operation span:active{
color: #d0021b;
background: #FFE7E7;
}
.calculater-operation span:hover{
background: #FFE7E7;
}
.cal-index-detail{
border: 1px solid #eaeaea;
font-size: 12px;
padding: 10px;
box-sizing: border-box;
margin-left: 10px;
height: 400px;
overflow: overlay;
min-width: 240px;
max-width: 240px;
}
#invented{
position: fixed;
opacity: 0;
left: 0;
top: 0;
z-index: -1;
font-size: 12px;
}
.flex{
display: flex;
}
.calculater-display input{
outline: 0;
border: 0;
cursor: pointer;
font-size: 12px;
margin-bottom: 4px;
}
.calculater-display input:focus{
outline: 0;
}
.calculater-display .cal-index.brackets{
background: #d0daff;
}
.cal-index{
background: #FFE7E7;
margin: 0 2px;
}
.cal-index.active{
color: #d0021b;
}
.calculater-display:focus{
outline: 0;
}
.index-choose-dialog .single-column {
display: flex;
align-items: center;
padding: 8px 0;
}
.mini.el-input--mini .el-input__inner{
height: 20px;
line-height: 20px;
/* border-radius: 4px; */
padding: 0 4px;
}
.mini.el-input--mini .el-input-group__append{
min-width: 10px;
text-align: center;
padding: 0 4px;
}
.mini.el-select .el-input--mini .el-input__inner{
height: 20px;
line-height: 20px;
padding-left: 4px;
padding-right: 4px;
}
.mini.el-select .el-input .el-select__caret{
line-height: 20px;
}
.controller-item+.controller-item{
margin-top: 8px;
}
.mini .el-switch__core{
height: 14px;
}
.mini .el-switch__core:after{
height: 10px;
width: 10px;
}
.mini.el-switch.is-checked .el-switch__core::after{
width: 10px;
height: 10px;
}
.mini.el-switch.is-checked .el-switch__core::after{
margin-left: -11px;
}
.mini .el-input__inner{
height: 20px;
line-height: 20px;
font-size: 12px;
}
.mini .el-input__icon{
line-height: 20px;
}
.mini.el-input--suffix .el-input__inner{
padding-right: 0;
}
.mini .el-input__icon{
width: 20px;
}
.mini .el-input__inner{
font-size: 12px;
line-height: 20px;
height: 20px;
}
.mini.el-select .el-input__inner{
padding-left: 4px;
}
.absolute-operation{
position: absolute;
right: 4px;
top: 8px;
font-size: 14px;
cursor: pointer;
}
.absolute-operation:hover{
color: #D0021B;
}
.index-controller .column {
margin-bottom: 12px;
}
.index-controller .column .column-title {
color: #999;
margin-bottom: 6px;
}
.function-params-item {
background: rgb(245, 247, 250);
padding: 8px;
border-radius: 4px;
position: relative;
}
.function-params-item .item-title {
margin-bottom: 4px;
}
.func-show-dom {
padding-bottom: 4px;
}
.function-params-item+.function-params-item {
margin-top: 8px;
}
.index-choose-dialog-inner {
display: flex;
}
.index-choose-dialog .index-detail {
padding-left: 20px;
border-left: 1px solid #EBEEF5;
flex: auto;
}
.index-detail {
flex: auto;
padding-left: 20px;
display: flex;
flex-direction: column;
/* overflow: scroll; */
position: relative;
}
.index-choose-dialog .index-list {
padding-right: 20px;
}
.index-list {
border: 1px solid #f0f0f0;
background: #F9F9F9;
border-radius: 2px;
padding: 4px;
}
.index-choose-dialog .el-dialog__body{
font-size: 12px;
}
.cal-container{
border: 1px solid #eaeaea;
}
.index-list-tree{
overflow: scroll;
overflow-x: hidden;
}
.mini .el-radio__inner {
width: 10px;
height: 10px;
}
.mini .el-radio__label {
font-size: 12px;
font-weight: normal;
padding-left: 6px;
}
.mini .el-radio{
margin-right: 16px;
}
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
.detail-index{
display: flex;
align-items: center;
}
.detail-index .title{
color: #999;
min-width: 104px;
margin-right: 12px;
font-size: 13px;
}
.detail-index+.detail-index{
margin-top: 20px;
}
.el-radio__label{
font-size: 12px;
}
\ No newline at end of file
async function getCondition() {
var value = await loadComponent('condition', window.global.urls.loadUrl + '/src/views/main_components/condition/index.vue')
return {
name: value.name,
data: function () {
return {
testYear: '',
testQuarter: '',
testMergeType: '',
requiredCondition: [],
allParams: []
}
},
props: ['params'],
template: value.template,
computed: {
},
mounted() {
this.getAllParams().then(res => {
this.getRequiredCondition()
}).catch(err => {
this.$messae({
message: '获取条件类型出错',
type: 'error'
})
})
},
methods: {
getAllParams() {
return new Promise((resolve, reject) => {
http.netPost('Data/CustomIndex/GetAllIndexArgs', {
"AccountId": info.accountId
})
.then((res) => {
if (res.data.Status == 1) {
this.allParams = res.data.Data
resolve()
}
})
})
},
getRequiredCondition() { //1证券代码 2合并类型 4报告期
var arr = []
this.allParams.forEach(item => {
if (this.params & item.Id) {
arr.push(item)
}
})
this.requiredCondition = arr
},
isContains(id) {
var isRequired = false
this.requiredCondition.forEach(item => {
if (item.Id == id) {
isRequired = true
}
})
return isRequired
}
}
}
}
\ No newline at end of file
<template>
<div>
<div class="detail-index" v-show="isContains(4)">
<div class="title">报告期:</div>
<div class="detail">
<el-date-picker
style="width: 120px"
size="mini"
v-model="testYear"
type="year"
value-format="yyyy"
placeholder="选择年度"
></el-date-picker>
<el-select
placeholder="选择季度"
style="width: 120px; margin-left: 12px"
size="mini"
v-model="testQuarter"
>
<el-option value="03-31">03-31</el-option>
<el-option value="06-30">06-30</el-option>
<el-option value="09-30">09-30</el-option>
<el-option value="12-31">12-31</el-option>
</el-select>
</div>
</div>
<div class="detail-index" v-show="isContains(2)">
<div class="title">合并类型:</div>
<div class="detail">
<el-select style="width: 120px" size="mini" v-model="testMergeType" placeholder="选择合并类型">
<el-option value="合并本期">合并本期</el-option>
<el-option value="合并上期">合并上期</el-option>
<el-option value="母公司本期">母公司本期</el-option>
<el-option value="母公司上期">母公司上期</el-option>
</el-select>
</div>
</div>
</div>
</template>
\ No newline at end of file
.structure-condition-item{
border-radius: 2px;
position: relative;
padding: 1px;
}
.condition-box>div{
margin-bottom: 12px;
}
.structure-condition-item{
margin-top: 12px;
}
.structure-condition-item.active{
background: repeating-linear-gradient(
135deg,
transparent,
transparent 4px,
#D8D8D8 4px,
#D8D8D8 8px
);
animation: move 1s infinite linear;
}
.condition-item-inner{
background-color: #fff;
padding: 8px 12px;
box-sizing: border-box;
background: rgb(245, 247, 250);
display: block;
width: 100%;
}
.structure-condition-item.active .close-condition-item{
display: block;
}
@keyframes move {
from {
background-position: -1px;
}
to {
background-position: -12px;
}
}
.close-condition-item span{
font-size: 16px;
color: #D0021B;
cursor: pointer;
}
.sub-condition-item+.sub-condition-item{
margin-top: 4px;
}
.sub-condition-link{
color: #999;
}
.sub-condition-link.active{
color: #D0021B;
}
.link-symbol{
margin: 0 4px;
font-size: 16px;
font-weight: bold;
}
.structure-condition-edit{
padding: 10px 0;
}
.structure-condition-edit .el-link{
font-size: 12px;
color: #D0021B;
}
.structure-condition-edit .el-link+.el-link{
margin-left: 10px;
}
.condition-item-action{
color: #D0021B;
cursor: pointer;
display: inline-block;
margin-right: 8px;
}
.condition-item-action:hover{
color: #FF001F;
}
.condition-structure{
display: inline;
}
.condition-label{
position: absolute;
top: 0;
right: -20px;
width: 20px;
height: 20px;
text-align: center;
line-height: 20px;
border: 1px solid #eaeaea;
border-left: 0;
border-top-right-radius: 4px;
border-bottom-right-radius: 4px;
}
.close-condition-item{
font-size: 0;
position: absolute;
background: #fff;
border-radius: 100px;
padding: 1px;
right: -6px;
top: -8px;
box-shadow: 0 0px 4px rgba(0, 0, 0, 0.3);
display: none;
}
.condition-box{
font-size: 13px;
}
.small-radio .el-radio__label{
font-size: 13px;
}
.small-radio .el-radio{
margin-right: 20px;
}
.small-icon-link{
font-size: 12px;
}
.smallSize .el-radio__label{
font-size: 12px;
}
.smallSize .el-radio{
margin-right: 20px;
}
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="../../../static/plTable/index.css">
<link rel="stylesheet" href="../../../static/element/theme/index.css">
<link rel="stylesheet" href="../../../static/global/global.css">
<link rel="stylesheet" href="./moduleIndexRelate.css">
</head>
<body>
<div id="app" class="editor-container" v-cloak>
<router-view></router-view>
</div>
</body>
<script>
const { app } = require('electron').remote
const { ipcRenderer } = require('electron')
window.global.urls = require(app.getAppPath() + '/build_config/url')
</script>
<script src="../../../static/vue/vue.min.js"></script>
<script src="../../../static/element/index.js"></script>
<script src="../../../static/plTable/index.js"></script>
<script src="../../../static/vue-router/vue-router.js"></script>
<script src="../../../assist/loadVue.js"></script>
<script src="../../../assist/axios.js"></script>
<!-- 引入路由 -->
<script src="./routers/checkIndex/checkIndex.js"></script>
<script src="./routers/multipleTest/multipleTest.js"></script>
<script src="./routers/relateIndex/relateIndex.js"></script>
<script src="./routers/singleTest/singleTest.js"></script>
<script src="./moduleIndexRelate.js"></script>
<script>
var http = newHttp()
var info = JSON.parse(localStorage.getItem('userInfo'))
async function init() {
var checkIndex = await getCheckIndex()
var multipleTest = await getMultipleTest()
var relateIndex = await getRelateIndex()
var singleTest = await getSingleTest()
var routes = [
{ path: '/', component: relateIndex },
{ path: '/checkIndex', component: checkIndex },
{ path: '/singleTest', component: singleTest },
{ path: '/multipleTest', component: multipleTest },
]
var router = new VueRouter({ routes })
window.global.router = router
new Vue({
router,
el: '#app',
data: function () {
return {
}
},
mounted() {
},
methods: {
}
})
}
init()
</script>
</html>
\ No newline at end of file
async function getCheckIndex() {
var value = await loadComponent('checkIndex', window.global.urls.loadUrl + '/src/views/main_views/moduleIndexRelate/routers/checkIndex/checkIndex.vue')
return {
data: function () {
return {
moduleData: [],
indexData: [],
indexProps: {
label: 'IndexName',
children: 'children'
},
currentIndex: null,
indexSearchInput: ''
}
},
components: {},
template: value.template,
mounted () {
this.getIndexsModules()
},
methods: {
getIndexsModules () {
return new Promise((resolve, reject) => {
http.netPost('Module/Basic/GetModuleList', {
"ModelId": 1,
"Current": 0,
"Psize": 10000,
"AccountId": info.accountId
})
.then((res) => {
this.indexData = this.handleTreeData(res.data.Data.Records)
})
})
},
// 递归形成树状结构
handleTreeData(array){
var newObj = {}
var newArray = []
array.forEach((item)=>{
if(!newObj[item.ParentCode.Name]){
var subObj = JSON.parse(JSON.stringify(item.ParentCode))
subObj.IndexName = subObj.Name
subObj.isParent = true
subObj.IndexEncode = subObj.Code
subObj.children = []
subObj.children.push(item)
newObj[item.ParentCode.Name] = subObj
}else{
newObj[item.ParentCode.Name].children.push(item)
}
})
for(var key in newObj){
newArray.push(newObj[key])
}
return newArray
},
indexNodeClick (item) {
if(item.isParent){
return false
}else{
this.currentIndex = item
}
this.getIndexModules(item)
},
filterIndexTreeNode (value, data) {
if (!value) return true;
return data.IndexName.indexOf(value) !== -1;
},
filterText(type) {
if(type == 'index'){
this.$refs.indextree.filter(this.indexSearchInput)
}else if(type == 'industry'){
this.$refs.industryTree.filter(this.industrySearchInput)
}
},
getIndexModules (item) {
return new Promise((resolve, reject) => {
http.netPost('Module/Basic/GetIndexEncodeBindModuleList', {
"IndexEncode": item.IndexEncode,
"AccountId": info.accountId
})
.then((res) => {
this.moduleData = res.data.Data
})
})
},
getKeywords (array) {
var string = ''
array.forEach((item)=>{
string = string + ',' + item.Name
})
return string.replace(',','')
}
}
}
}
\ No newline at end of file
<template>
<div class="editor-inner" style="height: 100%">
<div class="analyzer-header shadow">
<div class="analyzer-header-title">
<div class="analyzer-header-title-name">模块管理</div>
<div class="analyzer-header-tab">
<router-link to="/" tag="div" active-class="active" exact>模块关联管理</router-link>
<router-link to="/checkIndex" tag="div" active-class="active" exact>指标绑定查询</router-link>
<router-link to="/singleTest" tag="div" active-class="active" exact>单指标多公司检测</router-link>
<router-link to="/multipleTest" tag="div" active-class="active" exact>多指标单公司检测</router-link>
</div>
</div>
<div class="analyzer-header-condition">
<div class="common-condition">
<div class="condition-column">
<div class="single-condition">
<el-button size="mini">功能占位</el-button>
</div>
</div>
</div>
</div>
</div>
<div class="analyzer-editor-content">
<div class="shadow editor-content-left module-index-container">
<div class="title">可选指标</div>
<div class="list-container test-condition-content" style="overflow: hidden; display: flex; flex-direction: column; padding-top: 0">
<div class="with-search-header">
<el-input
size="mini"
placeholder="请输入指标名称"
v-model="indexSearchInput"
@keyup.enter.native="filterText('index')"
clearable>
</el-input>
</div>
<div class="with-search-content">
<el-tree
ref="indextree"
:props="indexProps"
expand-on-click-node
:data="indexData"
:indent="8"
@node-click="indexNodeClick"
:highlight-current="true"
:filter-node-method="filterIndexTreeNode"
:default-expand-all="true">
</el-tree>
</div>
</div>
</div>
<div class="shadow editor-content-right">
<h3>
<span v-if="currentIndex">当前测试指标:{{currentIndex.IndexName}}</span>
<span v-if="!currentIndex">当前测试指标:请选择指标</span>
</h3>
<div style="margin-top: 16px">
<el-table size="mini"
style="color: #333"
row-key="id"
default-expand-all
:tree-props="{children: 'children', hasChildren: 'hasChildren'}"
:data="moduleData"
:header-cell-style="{background:'#f5f7fa',color:'#666'}" border>
<el-table-column :label="'指标名称:' + (currentIndex?currentIndex.IndexName:'请选择指标')">
<el-table-column label='分析维度全称'>
<template slot-scope="scope">{{scope.row.ModelName}}</template>
</el-table-column>
<el-table-column label='分析维度简称'>
<template slot-scope="scope">
{{scope.row.ModelShortName}}
</template>
</el-table-column>
<el-table-column label='已绑定维度置换词'>
<template slot-scope="scope">
<span v-for="item in scope.row.Dimensions">{{item.Name}}<br></span>
<span v-if="scope.row.Dimensions.length == 0">-</span>
</template>
</el-table-column>
<el-table-column label='已绑定分析结论关键词'>
<template slot-scope="scope">
<span v-for="item in scope.row.Keywords">{{getKeywords(item.Keywords)}}<br></span>
<span v-if="scope.row.Keywords.length == 0">-</span>
</template>
</el-table-column>
</el-table-column>
</el-table>
</div>
</div>
</div>
</div>
</template>
\ No newline at end of file
<template>
<div class="editor-inner" style="height: 100%">
<div class="analyzer-header shadow">
<div class="analyzer-header-title">
<div class="analyzer-header-title-name">模块管理</div>
<div class="analyzer-header-tab">
<router-link to="/" tag="div" active-class="active" exact>模块关联管理</router-link>
<router-link to="/checkIndex" tag="div" active-class="active" exact>指标绑定查询</router-link>
<router-link to="/singleTest" tag="div" active-class="active" exact>单指标多公司检测</router-link>
<router-link to="/multipleTest" tag="div" active-class="active" exact>多指标单公司检测</router-link>
</div>
</div>
<div class="analyzer-header-condition">
<div class="common-condition">
<div class="condition-column">
<div class="single-condition">
<div style="white-space: nowrap">指标筛选:</div>
<!-- <el-input v-model="inputedIndex" style="width: 200px" size="mini" placeholder="请输入指标名称"></el-input> -->
<el-select
v-model="selectedIndex"
multiple
filterable
remote
style="width: 400px"
size="mini"
placeholder="请输入指标名称(可多选)"
:remote-method="searchIndex"
:loading="searchLoading">
<el-option
v-for="item in indexList"
:key="item.IndexEncode"
:label="item.IndexName"
:value="item.IndexEncode">
</el-option>
</el-select>
<el-button size="mini" type="primary" style="margin-left: 12px" @click.native="confirmSearchIndex">搜索</el-button>
</div>
</div>
</div>
</div>
</div>
<div class="analyzer-editor-content">
<div class="shadow editor-content-left module-index-container">
<div class="title">可选模型</div>
<div class="list-container">
<div class="list" v-for="(item,index) in moduleData" :key="item.ModelId" :class="{active: item.isOpen}">
<div class="list-index">
<div style="flex: auto;display: flex; align-items: center">
<span class="el-icon-arrow-right" style="margin-right: 4px" @click="item.isOpen = !item.isOpen"></span>
<span class="list-index-name">{{item.ShortName}}</span>
</div>
<div>
<div class="module-radio" :class="{active: item.ModelId == activeModule.ModelId}" @click="setActiveModule(item)"></div>
</div>
</div>
<div class="list-content" v-show="item.isOpen">
<div class="list-title-child">
<div class="list-title">全称</div>
<div class="list-detail">{{item.Name}}</div>
</div>
<div class="list-title-child">
<div class="list-title">简称</div>
<div class="list-detail">{{item.ShortName}}</div>
</div>
<div class="list-title-child">
<div class="list-title">计算公式</div>
<div class="list-detail">{{item.Content.FormulaMode.Eval}}</div>
</div>
<div class="list-title-child">
<div class="list-title">计算结果</div>
<div class="list-detail">{{getResult(item.Content.Results)}}</div>
</div>
</div>
</div>
</div>
</div>
<div class="shadow editor-content-right" style="box-sizing: border-box;">
<h3 v-if="activeModule"><span>当前测试模型:{{activeModule.Name}}</span></h3>
<div v-loading="tableLoading" id="tableBox" style="margin-top: 16px; flex: auto; display: flex; flex-direction: column; overflow: scroll">
<pl-table
size="mini"
:indent="4"
use-virtual
v-if="showTable && tableHeight"
:row-height="48"
style="color: #333;"
row-key="IndexEncode"
:tree-props="{children: 'children'}"
:tree-config="{hasChildren: 'isParent', expandAll: false}"
:data="indexData"
:height="tableHeight"
:header-cell-style="{background:'#f5f7fa',color:'#666'}"
border>
<pl-table-column
prop="IndexName"
:tree-node="true"
fixed
label="科目/指标名称"
width="250">
</pl-table-column>
<pl-table-column label="关键词绑定"
v-if="activeModule && activeModule.Keywords && activeModule.Keywords.length > 0">
<pl-table-column width="200" v-for="item in activeModule.Keywords">
<template slot="header" slot-scope="scope">
<div style="line-height: 24px; display: block; padding-left: 0">{{item.Name}}</div>
<div style="line-height: 24px; display: block; padding-left: 0">{{getKeywords(item.Keywords)}}</div>
<div style="line-height: 24px; display: block; padding-left: 0">
<el-link class="small-icon-link" type="success" @click="bindAllKeywords(item.ModelKeywordId, 1)">全绑定</el-link>
<el-link class="small-icon-link" type="primary" @click="bindAllKeywords(item.ModelKeywordId, 0)">全取消</el-link>
</div>
</template>
<template slot-scope="scope">
<el-link class="small-icon-link" v-if="scope.row.isParent" type="success" @click="bindSomeAllKeywords(scope.row, item.ModelKeywordId, 1)">全绑定</el-link>
<el-link class="small-icon-link" v-if="scope.row.isParent" type="primary" @click="bindSomeAllKeywords(scope.row, item.ModelKeywordId, 0)">全取消</el-link>
<el-switch v-if="!scope.row.isParent" class="small-size" @change="bindKeyword($event, item.ModelKeywordId, scope.row.ModuleId, scope.row.parentIndex, scope.row.childIndex, scope.row)" v-model="scope.row['Keywords' + item.ModelKeywordId].isLink" :width="32"></el-switch>
</template>
</pl-table-column>
</pl-table-column>
<pl-table-column label="分析维度备选词绑定" v-if="activeModule && activeModule.DimensionNames && activeModule.DimensionNames.length > 0">
<pl-table-column width="200" v-for="item in activeModule.DimensionNames">
<template slot="header" slot-scope="scope">
<div style="line-height: 24px; display: block; padding-left: 0">{{item.Name}}</div>
<div style="line-height: 24px; display: block; padding-left: 0">
<el-link class="small-icon-link" type="success" @click="bindAllDimensions(item.ModelDimensionId, 1)">全绑定</el-link>
<el-link class="small-icon-link" type="primary" @click="bindAllDimensions(item.ModelDimensionId, 0)">全取消</el-link>
</div>
</template>
<template slot-scope="scope">
<el-link class="small-icon-link" v-if="scope.row.isParent" type="success" @click="bindSomeAllDimensions(scope.row, item.ModelDimensionId, 1)">全绑定</el-link>
<el-link class="small-icon-link" v-if="scope.row.isParent" type="primary" @click="bindSomeAllDimensions(scope.row, item.ModelDimensionId, 0)">全取消</el-link>
<el-switch v-if="!scope.row.isParent" class="small-size" @change="bindDimensionName($event, item.ModelDimensionId, scope.row.ModuleId, scope.row.parentIndex, scope.row.childIndex)" v-model="scope.row['DimensionNames' + item.ModelDimensionId].isLink" :width="32"></el-switch>
</template>
</pl-table-column>
</pl-table-column>
<pl-table-column width="120" label="操作">
<template slot-scope="scope">
<el-link class="small-icon-link" type="success" @click="scope.row.isParent?isBindAllKeywordsAndDimensions(scope.row, 1, 'all'):isBindAllKeywordsAndDimensions([scope.row.ModuleId], 1, 'single')">全绑定</el-link>
<el-link class="small-icon-link" type="primary" @click="scope.row.isParent?isBindAllKeywordsAndDimensions(scope.row, 0, 'all'):isBindAllKeywordsAndDimensions([scope.row.ModuleId], 0, 'single')">全取消</el-link>
</template>
</pl-table-column>
</pl-table>
</div>
</div>
</div>
</div>
</template>
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
//合并类型数据
var mergeData = ['合并本期','合并上期','母公司本期','母公司上期']
module.exports = {
mergeData
}
This diff is collapsed.
This diff is collapsed.
......@@ -142,7 +142,7 @@
</div>
<div class="words-detail-inner" v-show="detailType == 1 && !activeIndex.isIndex">
<div class="empty-status">
<img src="../../static/image/empty.png" />
<img src="../../../static/images/empty.png" />
<div class="empty-tip">请从左侧点击指标或者分类</div>
</div>
</div>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment