feat(应用市场): 三方应用对接

This commit is contained in:
wangjiahao 2022-10-26 19:39:20 +08:00
parent 9623343d4b
commit 2b67bec9ab
12 changed files with 125 additions and 91 deletions

View File

@ -336,7 +336,6 @@ export function editApply(data) {
})
}
export function findOneWithParent(panelId) {
return request({
url: 'panel/group/findOneWithParent/' + panelId,

View File

@ -27,8 +27,8 @@
currentTemplateShowList.length
}})
<deBtn
type="primary"
v-if="showPositionCheck('system-setting')"
type="primary"
icon="el-icon-upload2"
@click="templateImport(currentTemplateId)"
>
@ -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: {

View File

@ -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
}
}

View File

@ -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"
@ -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

View File

@ -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: {},

View File

@ -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>

View File

@ -1,7 +1,10 @@
<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"
@ -11,7 +14,10 @@
{{ 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,
@ -61,10 +63,10 @@ export default {
},
methods: {
appApply() {
this.$emit("appApply")
this.$emit('appApply')
},
closePreview() {
this.$emit("closePreview")
this.$emit('closePreview')
}
}
}
@ -102,7 +104,6 @@ export default {
color: var(--TextPrimary, #1F2329);
}
.icon16 {
font-size: 16px!important;
color: var(--TextPrimary, #1F2329);

View File

@ -31,7 +31,13 @@
</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'"
@ -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,

View File

@ -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,7 +189,7 @@
width="420px"
>
<el-row>
<el-checkbox v-model="deleteItemInfo.deleteResource"></el-checkbox>
<el-checkbox v-model="deleteItemInfo.deleteResource" />
{{ $t('app_template.log_resource_delete_tips') }}
</el-row>
<span slot="footer">
@ -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',

View File

@ -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"
@ -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
@ -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