forked from github/dataease
feat(应用市场): 三方应用对接
This commit is contained in:
parent
9623343d4b
commit
2b67bec9ab
@ -336,10 +336,9 @@ export function editApply(data) {
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
export function findOneWithParent(panelId) {
|
||||
return request({
|
||||
url: 'panel/group/findOneWithParent/'+panelId,
|
||||
url: 'panel/group/findOneWithParent/' + panelId,
|
||||
method: 'get',
|
||||
loading: false
|
||||
})
|
||||
|
@ -42,7 +42,7 @@ export default {
|
||||
return backPath || backName || backTo
|
||||
},
|
||||
needInnerPadding() {
|
||||
return ['system-app-template','sys-identification', 'sys-abutment', 'sys-task-email', 'system-dept', 'system-dept-form', 'system-auth', 'sys-appearance', 'system-param', 'system-template', 'sys-task-dataset', 'sys-msg-web-all', 'system-plugin'].includes(this.$route.name)
|
||||
return ['system-app-template', 'sys-identification', 'sys-abutment', 'sys-task-email', 'system-dept', 'system-dept-form', 'system-auth', 'sys-appearance', 'system-param', 'system-template', 'sys-task-dataset', 'sys-msg-web-all', 'system-plugin'].includes(this.$route.name)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -27,8 +27,8 @@
|
||||
currentTemplateShowList.length
|
||||
}})
|
||||
<deBtn
|
||||
type="primary"
|
||||
v-if="showPositionCheck('system-setting')"
|
||||
type="primary"
|
||||
icon="el-icon-upload2"
|
||||
@click="templateImport(currentTemplateId)"
|
||||
>
|
||||
@ -77,7 +77,7 @@
|
||||
:label="dialogTitleLabel"
|
||||
prop="name"
|
||||
>
|
||||
<el-input v-model="templateEditForm.name"/>
|
||||
<el-input v-model="templateEditForm.name" />
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
:label="$t('app_template.app_group_icon')"
|
||||
@ -95,7 +95,7 @@
|
||||
:http-request="upload"
|
||||
:file-list="fileList"
|
||||
>
|
||||
<i class="el-icon-plus"/>
|
||||
<i class="el-icon-plus" />
|
||||
</el-upload>
|
||||
<el-dialog
|
||||
top="25vh"
|
||||
@ -151,7 +151,6 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import DeLayoutContent from '@/components/business/DeLayoutContent'
|
||||
import TemplateList from './component/TemplateList'
|
||||
import TemplateItem from './component/TemplateItem'
|
||||
import TemplateImport from './component/TemplateImport'
|
||||
@ -163,7 +162,7 @@ import { imgUrlTrans } from '@/components/canvas/utils/utils'
|
||||
|
||||
export default {
|
||||
name: 'AppTemplateContent',
|
||||
components: { DeLayoutContent, TemplateList, TemplateItem, TemplateImport },
|
||||
components: { TemplateList, TemplateItem, TemplateImport },
|
||||
mixins: [msgCfm],
|
||||
props: {
|
||||
showPosition: {
|
||||
|
@ -7,19 +7,22 @@
|
||||
size="600px"
|
||||
direction="rtl"
|
||||
>
|
||||
<ds-form v-if="applyDrawer" :reference-position="'appMarket'" :outer-params="outerParams" @closeDraw="close"></ds-form>
|
||||
<ds-form
|
||||
v-if="applyDrawer"
|
||||
:reference-position="'appMarket'"
|
||||
:outer-params="outerParams"
|
||||
@closeDraw="close"
|
||||
/>
|
||||
</el-drawer>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import DeDatePick from '@/components/deCustomCm/deDatePick.vue'
|
||||
import DsForm from '@/views/system/datasource/DsForm'
|
||||
export default {
|
||||
components: {
|
||||
DsForm,
|
||||
DeDatePick
|
||||
},
|
||||
name: 'AppTemplateApply',
|
||||
components: {
|
||||
DsForm
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
outerParams: {},
|
||||
@ -40,7 +43,7 @@ export default {
|
||||
this.outerParams = params
|
||||
},
|
||||
close() {
|
||||
this.$emit("closeDraw")
|
||||
this.$emit('closeDraw')
|
||||
this.applyDrawer = false
|
||||
}
|
||||
}
|
||||
|
@ -12,7 +12,10 @@
|
||||
alt=""
|
||||
>
|
||||
</div>
|
||||
<div class="card-info" v-if="showPositionCheck('system-setting')">
|
||||
<div
|
||||
v-if="showPositionCheck('system-setting')"
|
||||
class="card-info"
|
||||
>
|
||||
<el-tooltip
|
||||
class="item"
|
||||
effect="dark"
|
||||
@ -26,18 +29,18 @@
|
||||
trigger="click"
|
||||
@command="handleCommand"
|
||||
>
|
||||
<i class="el-icon-more"/>
|
||||
<i class="el-icon-more" />
|
||||
<el-dropdown-menu
|
||||
slot="dropdown"
|
||||
class="de-card-dropdown"
|
||||
>
|
||||
<slot>
|
||||
<el-dropdown-item command="update">
|
||||
<i class="el-icon-edit"/>
|
||||
<i class="el-icon-edit" />
|
||||
{{ $t('commons.update') }}
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item command="delete">
|
||||
<i class="el-icon-delete"/>
|
||||
<i class="el-icon-delete" />
|
||||
{{ $t('commons.uninstall') }}
|
||||
</el-dropdown-item>
|
||||
</slot>
|
||||
@ -45,7 +48,10 @@
|
||||
</el-dropdown>
|
||||
</div>
|
||||
|
||||
<div class="card-info-apply" v-if="showPositionCheck('market-manage')">
|
||||
<div
|
||||
v-if="showPositionCheck('market-manage')"
|
||||
class="card-info-apply"
|
||||
>
|
||||
<el-row>
|
||||
<el-row>
|
||||
<el-tooltip
|
||||
|
@ -29,12 +29,17 @@
|
||||
:class="[{ select: activeTemplate === ele.id }]"
|
||||
@click="nodeClick(ele)"
|
||||
>
|
||||
<img :src="iconImgRul(ele.icon)" style="margin-right: 8px;border-radius: 4px" width="24" height="24"/>
|
||||
<img
|
||||
:src="iconImgRul(ele.icon)"
|
||||
style="margin-right: 8px;border-radius: 4px"
|
||||
width="24"
|
||||
height="24"
|
||||
>
|
||||
<span>{{ ele.name }}</span>
|
||||
<span
|
||||
v-if="showPositionCheck('system-setting')"
|
||||
class="more"
|
||||
@click.stop
|
||||
v-if="showPositionCheck('system-setting')"
|
||||
>
|
||||
<el-dropdown
|
||||
trigger="click"
|
||||
@ -87,7 +92,6 @@
|
||||
import msgCfm from '@/components/msgCfm/index'
|
||||
import { imgUrlTrans } from '@/components/canvas/utils/utils'
|
||||
|
||||
|
||||
export default {
|
||||
name: 'TemplateList',
|
||||
components: {},
|
||||
@ -126,10 +130,10 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
showPositionCheck(requiredPosition){
|
||||
showPositionCheck(requiredPosition) {
|
||||
return this.showPosition === requiredPosition
|
||||
},
|
||||
iconImgRul(iconUrl){
|
||||
iconImgRul(iconUrl) {
|
||||
return imgUrlTrans(iconUrl)
|
||||
},
|
||||
clickMore(type, data) {
|
||||
|
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<de-layout-content>
|
||||
<app-template-content :show-position="'system-setting'"></app-template-content>
|
||||
<app-template-content :show-position="'system-setting'" />
|
||||
</de-layout-content>
|
||||
</template>
|
||||
|
||||
@ -9,7 +9,7 @@ import AppTemplateContent from '@/views/panel/appTemplate/AppTemplateContent'
|
||||
import DeLayoutContent from '@/components/business/DeLayoutContent'
|
||||
export default {
|
||||
name: 'AppTemplate',
|
||||
components: { DeLayoutContent, AppTemplateContent }
|
||||
components: { DeLayoutContent, AppTemplateContent }
|
||||
}
|
||||
</script>
|
||||
|
||||
|
@ -1,17 +1,23 @@
|
||||
<template>
|
||||
<el-row>
|
||||
<el-row style="height: 56px">
|
||||
<el-col :span="12" style="text-align: left;line-height: 56px">
|
||||
<el-col
|
||||
:span="12"
|
||||
style="text-align: left;line-height: 56px"
|
||||
>
|
||||
<svg-icon
|
||||
icon-class="icon_left_outlined"
|
||||
class="toolbar-icon-active icon20 margin-left20"
|
||||
@click="closePreview"
|
||||
/>
|
||||
<span class="text16 margin-left12">
|
||||
{{templateInfo.name}}
|
||||
{{ templateInfo.name }}
|
||||
</span>
|
||||
</el-col>
|
||||
<el-col :span="12" style="text-align: right;line-height: 56px;padding-right: 24px">
|
||||
<el-col
|
||||
:span="12"
|
||||
style="text-align: right;line-height: 56px;padding-right: 24px"
|
||||
>
|
||||
<el-button
|
||||
size="small"
|
||||
type="primary"
|
||||
@ -32,13 +38,9 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import TemplateMarketPreviewItem from '@/views/panel/appTemplateMarket/component/TemplateMarketPreviewItem'
|
||||
import AppTemplateLog from '@/views/panel/appTemplateMarket/log'
|
||||
import DsAppForm from '@/views/system/datasource/DsAppForm'
|
||||
|
||||
export default {
|
||||
name: 'AppMarketPreview',
|
||||
components: { DsAppForm, AppTemplateLog, TemplateMarketPreviewItem },
|
||||
components: { },
|
||||
props: {
|
||||
templateInfo: {
|
||||
type: Object,
|
||||
@ -60,11 +62,11 @@ export default {
|
||||
|
||||
},
|
||||
methods: {
|
||||
appApply(){
|
||||
this.$emit("appApply")
|
||||
appApply() {
|
||||
this.$emit('appApply')
|
||||
},
|
||||
closePreview(){
|
||||
this.$emit("closePreview")
|
||||
closePreview() {
|
||||
this.$emit('closePreview')
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -102,7 +104,6 @@ export default {
|
||||
color: var(--TextPrimary, #1F2329);
|
||||
}
|
||||
|
||||
|
||||
.icon16 {
|
||||
font-size: 16px!important;
|
||||
color: var(--TextPrimary, #1F2329);
|
||||
|
@ -31,13 +31,19 @@
|
||||
</el-tabs>
|
||||
</el-row>
|
||||
<el-row v-show="marketActiveTab==='apps'">
|
||||
<app-template-content :ref="'appTemplateContent'" class="template-main-content" :show-position="'market-manage'" @previewApp="previewApp" @applyNew="applyNew"></app-template-content>
|
||||
<app-template-content
|
||||
:ref="'appTemplateContent'"
|
||||
class="template-main-content"
|
||||
:show-position="'market-manage'"
|
||||
@previewApp="previewApp"
|
||||
@applyNew="applyNew"
|
||||
/>
|
||||
</el-row>
|
||||
<el-row
|
||||
v-show="marketActiveTab==='apply_logs'"
|
||||
class="main-log-area template-main"
|
||||
>
|
||||
<app-template-log class="log-area"/>
|
||||
<app-template-log class="log-area" />
|
||||
</el-row>
|
||||
</el-row>
|
||||
|
||||
@ -114,18 +120,15 @@
|
||||
import { searchAppTemplate } from '@/api/appTemplateMarket'
|
||||
import { groupTree, panelSave } from '@/api/panel/panel'
|
||||
import { DEFAULT_COMMON_CANVAS_STYLE_STRING } from '@/views/panel/panel'
|
||||
import MarketPreview from '@/views/panel/appTemplateMarket/component/MarketPreview'
|
||||
import elementResizeDetectorMaker from 'element-resize-detector'
|
||||
import AppTemplateItem from '@/views/panel/appTemplateMarket/component/AppTemplateItem'
|
||||
import AppTemplateLog from '@/views/panel/appTemplateMarket/log'
|
||||
import AppTemplate from '@/views/panel/appTemplate'
|
||||
import AppTemplateContent from '@/views/panel/appTemplate/AppTemplateContent'
|
||||
import AppMarketPreview from '@/views/panel/appTemplateMarket/component/AppMarketPreview'
|
||||
import AppTemplateApply from '@/views/panel/appTemplate/component/AppTemplateApply'
|
||||
|
||||
export default {
|
||||
name: 'AppTemplateMarket',
|
||||
components: { AppTemplateApply, AppMarketPreview, AppTemplateContent, AppTemplate, AppTemplateLog, AppTemplateItem, MarketPreview },
|
||||
components: { AppTemplateApply, AppMarketPreview, AppTemplateContent, AppTemplateLog },
|
||||
data() {
|
||||
return {
|
||||
previewItem: null,
|
||||
@ -203,10 +206,10 @@ export default {
|
||||
}
|
||||
this.$refs.templateApply.init(param)
|
||||
},
|
||||
appApply(){
|
||||
appApply() {
|
||||
this.applyNew(this.previewItem)
|
||||
},
|
||||
previewApp(item){
|
||||
previewApp(item) {
|
||||
this.previewModel = true
|
||||
this.previewItem = item
|
||||
},
|
||||
|
@ -35,8 +35,8 @@
|
||||
icon="iconfont icon-icon-filter"
|
||||
@click="filterShow"
|
||||
>{{
|
||||
$t('user.filter')
|
||||
}}
|
||||
$t('user.filter')
|
||||
}}
|
||||
<template v-if="filterTexts.length">
|
||||
({{ cacheCondition.length }})
|
||||
</template>
|
||||
@ -49,7 +49,7 @@
|
||||
>
|
||||
<span class="sum">{{ paginationConfig.total }}</span>
|
||||
<span class="title">{{ $t('user.result_one') }}</span>
|
||||
<el-divider direction="vertical"/>
|
||||
<el-divider direction="vertical" />
|
||||
<i
|
||||
v-if="showScroll"
|
||||
class="el-icon-arrow-left arrow-filter"
|
||||
@ -62,9 +62,9 @@
|
||||
class="text"
|
||||
>
|
||||
{{ ele }} <i
|
||||
class="el-icon-close"
|
||||
@click="clearOneFilter(index)"
|
||||
/>
|
||||
class="el-icon-close"
|
||||
@click="clearOneFilter(index)"
|
||||
/>
|
||||
</p>
|
||||
</div>
|
||||
<i
|
||||
@ -100,7 +100,11 @@
|
||||
:label="$t('app_template.datasource')"
|
||||
>
|
||||
<template #default="{ row }">
|
||||
<span v-if="row.datasourceId" class="link-span" @click="goToDatasource(row)">{{ row.datasourceName }}</span>
|
||||
<span
|
||||
v-if="row.datasourceId"
|
||||
class="link-span"
|
||||
@click="goToDatasource(row)"
|
||||
>{{ row.datasourceName }}</span>
|
||||
<span v-else>{{ row.datasourceName }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@ -115,7 +119,11 @@
|
||||
:label="$t('app_template.panel')"
|
||||
>
|
||||
<template #default="{ row }">
|
||||
<span v-if="row.panelId" class="link-span" @click="goPanel(row)">{{ row.panelName }}</span>
|
||||
<span
|
||||
v-if="row.panelId"
|
||||
class="link-span"
|
||||
@click="goPanel(row)"
|
||||
>{{ row.panelName }}</span>
|
||||
<span v-else>{{ row.panelName }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@ -181,20 +189,20 @@
|
||||
width="420px"
|
||||
>
|
||||
<el-row>
|
||||
<el-checkbox v-model="deleteItemInfo.deleteResource"></el-checkbox>
|
||||
{{$t('app_template.log_resource_delete_tips')}}
|
||||
<el-checkbox v-model="deleteItemInfo.deleteResource" />
|
||||
{{ $t('app_template.log_resource_delete_tips') }}
|
||||
</el-row>
|
||||
<span slot="footer">
|
||||
<el-button
|
||||
size="mini"
|
||||
@click="closeDel"
|
||||
>{{ $t('commons.cancel') }}</el-button>
|
||||
<el-button
|
||||
type="danger"
|
||||
size="mini"
|
||||
@click="confirmDel"
|
||||
>{{ $t('commons.confirm') }}</el-button>
|
||||
</span>
|
||||
<el-button
|
||||
size="mini"
|
||||
@click="closeDel"
|
||||
>{{ $t('commons.cancel') }}</el-button>
|
||||
<el-button
|
||||
type="danger"
|
||||
size="mini"
|
||||
@click="confirmDel"
|
||||
>{{ $t('commons.confirm') }}</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</el-row>
|
||||
</template>
|
||||
@ -211,7 +219,6 @@ import {
|
||||
import { deleteLogAndResource, logGrid } from '@/api/appTemplateMarket/log'
|
||||
import { findOneWithParent } from '@/api/panel/panel'
|
||||
import AppTemplateApply from '@/views/panel/appTemplate/component/AppTemplateApply'
|
||||
import { deepCopy } from '@/components/canvas/utils/utils'
|
||||
|
||||
export default {
|
||||
name: 'AppTemplateLog',
|
||||
@ -274,7 +281,7 @@ export default {
|
||||
this.deleteConfirmDialog = false
|
||||
},
|
||||
confirmDel() {
|
||||
deleteLogAndResource(this.deleteItemInfo).then(()=>{
|
||||
deleteLogAndResource(this.deleteItemInfo).then(() => {
|
||||
this.closeDel()
|
||||
this.search()
|
||||
})
|
||||
|
@ -17,7 +17,7 @@
|
||||
style="border-bottom: 1px solid;border-bottom-color:#E6E6E6;"
|
||||
>
|
||||
<div style="height: 100%;">
|
||||
<share-head/>
|
||||
<share-head />
|
||||
</div>
|
||||
</el-row>
|
||||
<el-row
|
||||
@ -45,7 +45,7 @@
|
||||
width="400"
|
||||
trigger="click"
|
||||
>
|
||||
<panel-detail-info/>
|
||||
<panel-detail-info />
|
||||
<i
|
||||
slot="reference"
|
||||
class="el-icon-warning icon-class"
|
||||
|
@ -3,7 +3,10 @@
|
||||
v-loading="formLoading"
|
||||
:class="positionCheck('datasource')?'de-ds-form':'de-ds-form-app'"
|
||||
>
|
||||
<div v-if="positionCheck('datasource')" class="de-ds-top">
|
||||
<div
|
||||
v-if="positionCheck('datasource')"
|
||||
class="de-ds-top"
|
||||
>
|
||||
<span class="name">
|
||||
<i
|
||||
class="el-icon-arrow-left"
|
||||
@ -11,10 +14,10 @@
|
||||
/>
|
||||
{{
|
||||
params &&
|
||||
params.id &&
|
||||
params.showModel &&
|
||||
params.showModel === 'show' &&
|
||||
!canEdit
|
||||
params.id &&
|
||||
params.showModel &&
|
||||
params.showModel === 'show' &&
|
||||
!canEdit
|
||||
? $t('datasource.show_info')
|
||||
: formType == 'add'
|
||||
? `${$t('commons.create') + typeMap}${$t('commons.datasource')}`
|
||||
@ -64,15 +67,18 @@
|
||||
<div class="de-ds-inner">
|
||||
<div class="w600">
|
||||
<el-form
|
||||
ref="attachParamsForm"
|
||||
v-if="positionCheck('appMarket')"
|
||||
ref="attachParamsForm"
|
||||
:model="attachForm"
|
||||
:rules="attachRule"
|
||||
class="de-form-item"
|
||||
label-width="180px"
|
||||
label-position="right"
|
||||
>
|
||||
<div class="de-row-rules" style="margin: 0 0 16px 0;">
|
||||
<div
|
||||
class="de-row-rules"
|
||||
style="margin: 0 0 16px 0;"
|
||||
>
|
||||
<span>{{ $t('datasource.basic_info') }}</span>
|
||||
</div>
|
||||
<el-form-item
|
||||
@ -94,7 +100,7 @@
|
||||
:label="$t('app_template.panel_name')"
|
||||
prop="panelName"
|
||||
>
|
||||
<el-input v-model="attachForm.panelName"/>
|
||||
<el-input v-model="attachForm.panelName" />
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
:label="$t('app_template.dataset_group_position')"
|
||||
@ -115,7 +121,7 @@
|
||||
:label="$t('app_template.dataset_group_name')"
|
||||
prop="datasetGroupName"
|
||||
>
|
||||
<el-input v-model="attachForm.datasetGroupName"/>
|
||||
<el-input v-model="attachForm.datasetGroupName" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
@ -137,8 +143,8 @@
|
||||
>
|
||||
<div class="de-row-rules">
|
||||
<span>{{
|
||||
positionCheck('appMarket') ? $t('app_template.datasource_info') : $t('datasource.basic_info')
|
||||
}}</span>
|
||||
positionCheck('appMarket') ? $t('app_template.datasource_info') : $t('datasource.basic_info')
|
||||
}}</span>
|
||||
</div>
|
||||
<el-form-item
|
||||
:label="$t('datasource.display_name')"
|
||||
@ -222,8 +228,14 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="positionCheck('appMarket')" class="de-ds-bottom">
|
||||
<div class="apply" style="width: 100%">
|
||||
<div
|
||||
v-if="positionCheck('appMarket')"
|
||||
class="de-ds-bottom"
|
||||
>
|
||||
<div
|
||||
class="apply"
|
||||
style="width: 100%"
|
||||
>
|
||||
<template v-if="canEdit">
|
||||
<deBtn
|
||||
secondary
|
||||
@ -871,10 +883,10 @@ export default {
|
||||
}
|
||||
if (this.positionCheck('appMarket')) {
|
||||
this.$refs.attachParamsForm.validate(valid => {
|
||||
if (!valid) {
|
||||
return false
|
||||
}
|
||||
if (!valid) {
|
||||
return false
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
||||
this.$refs.dsForm.validate((valid) => {
|
||||
@ -1016,10 +1028,10 @@ export default {
|
||||
}
|
||||
if (this.positionCheck('appMarket')) {
|
||||
this.$refs.attachParamsForm.validate(valid => {
|
||||
if (!valid) {
|
||||
return false
|
||||
}
|
||||
if (!valid) {
|
||||
return false
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
||||
this.$refs.dsForm.validate((valid) => {
|
||||
|
Loading…
Reference in New Issue
Block a user