Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
aixianling
2022-03-28 18:12:23 +08:00
2 changed files with 94 additions and 71 deletions

View File

@@ -45,7 +45,7 @@
</ai-card> </ai-card>
<ai-dialog <ai-dialog
:visible.sync="isShow" :visible.sync="isShow"
width="820px" width="920px"
title="数据源" title="数据源"
@close="onClose" @close="onClose"
@onConfirm="onConfirm"> @onConfirm="onConfirm">
@@ -58,7 +58,21 @@
v-model="form.description"> v-model="form.description">
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item label="村微应用" style="width: 100%;" prop="appId" :rules="[{ required: true, message: '请选择村微应用', trigger: 'change' }]"> <el-form-item label="类型" style="width: 100%;" prop="dataRange" :rules="[{ required: true, message: '请选择数据范围', trigger: 'change' }]">
<el-radio-group v-model="form.type">
<el-radio label="0">村微应用</el-radio>
<el-radio label="1">SQL</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item v-if="form.type === '1'" label="sql语句" style="width: 100%;" prop="description" :rules="[{ required: true, message: '请输入sql语句', trigger: 'blur' }]">
<el-input
size="small"
type="textarea"
placeholder="请输入数据源描述"
v-model="form.sqlContent">
</el-input>
</el-form-item>
<el-form-item v-if="form.type === '0'" label="村微应用" style="width: 100%;" prop="appId" :rules="[{ required: true, message: '请选择村微应用', trigger: 'change' }]">
<el-select size="small" style="width: 100%;" v-model="form.appId" placeholder="请选择村微应用" @change="onAppChange"> <el-select size="small" style="width: 100%;" v-model="form.appId" placeholder="请选择村微应用" @change="onAppChange">
<el-option <el-option
v-for="item in appList" v-for="item in appList"
@@ -68,7 +82,7 @@
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="数据范围" style="width: 100%;" prop="dataRange" :rules="[{ required: true, message: '请选择数据范围', trigger: 'change' }]"> <el-form-item v-if="form.type === '0'" label="数据范围" style="width: 100%;" prop="dataRange" :rules="[{ required: true, message: '请选择数据范围', trigger: 'change' }]">
<el-radio-group v-model="form.dataRange"> <el-radio-group v-model="form.dataRange">
<el-radio label="0">全部</el-radio> <el-radio label="0">全部</el-radio>
<el-radio label="1">自定义条数</el-radio> <el-radio label="1">自定义条数</el-radio>
@@ -81,75 +95,81 @@
v-model="form.count"> v-model="form.count">
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item :label="'统计项' + index" style="width: 100%;" v-for="(item, index) in form.statisticsConfigs" :key="'statisticsConfigs' + index"> <div v-if="form.type === '0'">
<div class="form-flex"> <el-form-item :label="'统计项' + index" style="width: 100%;" v-for="(item, index) in form.statisticsConfigs" :key="'statisticsConfigs' + index">
<div> <div class="form-flex">
<el-select size="small" style="width: 160px;" v-model="item.fieldName" @change="e => onChooseField('statisticsConfigs', e, index)" placeholder="请选择" clearable> <div>
<el-option <el-select size="small" style="width: 160px;" v-model="item.fieldName" @change="e => onChooseField('statisticsConfigs', e, index)" placeholder="请选择" clearable>
v-for="(item, index) in filedList" <el-option
:key="index" v-for="(item, index) in filedList"
:label="item.fieldCnName" :key="index"
:value="item.fieldName"> :label="item.fieldCnName"
</el-option> :value="item.fieldName">
</el-select> </el-option>
<el-select size="small" style="margin: 0 10px; width: 160px;" v-model="item.calcType" placeholder="请选择" clearable> </el-select>
<el-option <el-select size="small" style="margin: 0 10px; width: 160px;" v-model="item.calcType" placeholder="请选择" clearable>
v-for="item in dict.getDict('diyLargeScreenDatasourceCalcType2')" <el-option
:key="item.id" v-for="item in dict.getDict('diyLargeScreenDatasourceCalcType2')"
:label="item.dictName" :key="item.id"
:value="item.dictValue"> :label="item.dictName"
</el-option> :value="item.dictValue">
</el-select> </el-option>
<el-input size="small" style="width: 165px;" placeholder="请输入别名" v-model="item.alias"></el-input> </el-select>
<el-input size="small" style="width: 165px;" placeholder="请输入别名" v-model="item.alias"></el-input>
</div>
<el-button type="danger" v-if="index > 0" @click="removeConfig('statisticsConfigs', index)">删除</el-button>
</div> </div>
<el-button type="danger" v-if="index > 0" @click="removeConfig('statisticsConfigs', index)">删除</el-button> </el-form-item>
</div> </div>
</el-form-item> <el-form-item style="width: 100%;" v-if="form.type === '0'">
<el-form-item style="width: 100%;">
<el-button type="primary" @click="add('statisticsConfigs')">添加统计项</el-button> <el-button type="primary" @click="add('statisticsConfigs')">添加统计项</el-button>
</el-form-item> </el-form-item>
<el-form-item :label="'分组' + index" style="width: 100%;" v-for="(item, index) in form.groupConfigs" :key="'groupConfigs' + item.fieldName"> <div v-if="form.type === '0'">
<div class="form-flex"> <el-form-item :label="'分组' + index" style="width: 100%;" v-for="(item, index) in form.groupConfigs" :key="'groupConfigs' + item.fieldName">
<div> <div class="form-flex">
<el-select size="small" style="width: 160px;" v-model="item.fieldName" placeholder="请选择" clearable> <div>
<el-option <el-select size="small" style="width: 160px;" v-model="item.fieldName" placeholder="请选择" clearable>
v-for="item in filedList" <el-option
:key="item.id" v-for="item in filedList"
:label="item.fieldCnName" :key="item.id"
:value="item.fieldName"> :label="item.fieldCnName"
</el-option> :value="item.fieldName">
</el-select> </el-option>
</el-select>
</div>
<el-button type="danger" @click="removeConfig('groupConfigs', index)">删除</el-button>
</div> </div>
<el-button type="danger" @click="removeConfig('groupConfigs', index)">删除</el-button> </el-form-item>
</div> </div>
</el-form-item> <el-form-item style="width: 100%;" v-if="form.type === '0'">
<el-form-item style="width: 100%;">
<el-button type="primary" @click="add('groupConfigs')">添加分组</el-button> <el-button type="primary" @click="add('groupConfigs')">添加分组</el-button>
</el-form-item> </el-form-item>
<el-form-item :label="'统计项' + index" style="width: 100%;" v-for="(item, index) in form.orderConfigs" :key="'orderConfigs' + item.fieldName"> <div v-if="form.type === '0'">
<div class="form-flex"> <el-form-item :label="'统计项' + index" style="width: 100%;" v-for="(item, index) in form.orderConfigs" :key="'orderConfigs' + item.fieldName">
<div> <div class="form-flex">
<el-select size="small" style="width: 160px;" v-model="item.fieldName" placeholder="请选择" clearable> <div>
<el-option <el-select size="small" style="width: 160px;" v-model="item.fieldName" placeholder="请选择" clearable>
v-for="item in filedList" <el-option
:key="item.id" v-for="item in filedList"
:label="item.fieldCnName" :key="item.id"
:value="item.fieldName"> :label="item.fieldCnName"
</el-option> :value="item.fieldName">
</el-select> </el-option>
<el-select size="small" style="width: 160px; margin-left: 10px;" v-model="item.orderType" placeholder="请选择" clearable> </el-select>
<el-option <el-select size="small" style="width: 160px; margin-left: 10px;" v-model="item.orderType" placeholder="请选择" clearable>
v-for="item in orderTypeDict" <el-option
:key="item.id" v-for="item in orderTypeDict"
:label="item.label" :key="item.id"
:value="item.value"> :label="item.label"
</el-option> :value="item.value">
</el-select> </el-option>
</el-select>
</div>
<el-button type="danger" @click="removeConfig('orderConfigs', index)">删除</el-button>
</div> </div>
<el-button type="danger" @click="removeConfig('orderConfigs', index)">删除</el-button> </el-form-item>
</div> </div>
</el-form-item> <el-form-item style="width: 100%;" v-if="form.type === '0'">
<el-form-item style="width: 100%;">
<el-button type="primary" @click="add('orderConfigs')">添加排序</el-button> <el-button type="primary" @click="add('orderConfigs')">添加排序</el-button>
</el-form-item> </el-form-item>
</div> </div>
@@ -181,9 +201,10 @@
total: 0, total: 0,
colConfigs: [ colConfigs: [
{ prop: 'appName', label: '应用名' }, { prop: 'appName', label: '应用名' },
{ prop: 'appTableName', label: '表名' }, { prop: 'appTableName', align: 'center', label: '表名' },
{ prop: 'createUserName', label: '创建人' }, { prop: 'description', align: 'center', label: '描述' },
{ prop: 'description', label: '描述' }, { prop: 'type', align: 'center', label: '类型', formart: v => v === '0' ? '村微应用' : 'sql语句' },
{ prop: 'createUserName', align: 'center', label: '创建人' },
{ prop: 'createTime', align: 'center', label: '创建时间' } { prop: 'createTime', align: 'center', label: '创建时间' }
], ],
tableData: [], tableData: [],
@@ -192,6 +213,8 @@
form: { form: {
orderType: 'asc', orderType: 'asc',
dataRange: '0', dataRange: '0',
type: '0',
sqlContent: '',
appId: '', appId: '',
description: '', description: '',
appName: '', appName: '',
@@ -277,9 +300,10 @@
this.form = { this.form = {
...res.data ...res.data
} }
this.form.dataRange = this.form.dataRange === '0' ? '0' : '1' this.form.dataRange = this.form.dataRange === '0' ? '0' : '1'
this.form.count = res.data.dataRange this.form.count = res.data.dataRange
this.filedList = this.appList.filter(v => v.id === res.data.appId)[0].fields.map(item => { this.filedList = this.appList.filter(v => v.id === res.data.appId).length && this.appList.filter(v => v.id === res.data.appId)[0].fields.map(item => {
let value = [] let value = []
res.data.configs.forEach(v => { res.data.configs.forEach(v => {
if (v.fieldName === item.fieldName) { if (v.fieldName === item.fieldName) {
@@ -292,7 +316,6 @@
value value
} }
}) })
this.isShow = true this.isShow = true
} }
}) })

View File

@@ -28,7 +28,7 @@
@node-click="handleNodeClick" @node-contextmenu="nodeContextmenu" @node-click="handleNodeClick" @node-contextmenu="nodeContextmenu"
:filter-node-method="handleFilter"/> :filter-node-method="handleFilter"/>
<ul <ul
v-if="isShowMenu && menuInfo.node.type==1" v-if="isShowMenu && menuInfo.node.type==1 && permissions('video_config')"
class="el-dropdown-menu el-popper" class="el-dropdown-menu el-popper"
:style="{top: menuInfo.y + 'px', left: menuInfo.x + 'px', position: 'fixed', zIndex: 2023}" :style="{top: menuInfo.y + 'px', left: menuInfo.x + 'px', position: 'fixed', zIndex: 2023}"
x-placement="top-end"> x-placement="top-end">